diff --git a/docker-compose.yml b/docker-compose.yml
index 12416fbff..53ee97c31 100644
--- a/docker-compose.yml
+++ b/docker-compose.yml
@@ -42,6 +42,7 @@ services:
- DUES=0
- MAIL_USERNAME=blahblahblah@gmail.com
- MAIL_PASSWORD=3435tdfsdudebussylmaoxxt43
+ - CHRISTMAS=1
links:
- "redis"
- "postgres"
diff --git a/env b/env
index 7054dabfd..a3f4b83fb 100644
--- a/env
+++ b/env
@@ -30,4 +30,5 @@ export DUES="0"
export DEFAULT_THEME="midnight"
export DEFAULT_COLOR="ff66ac" # YOU HAVE TO PICK ONE OF THOSE COLORS OR SHIT WILL BREAK: ff66ac, 805ad5, 62ca56, 38a169, 80ffff, 2a96f3, eb4963, ff0000, f39731, 30409f, 3e98a7, e4432d, 7b9ae4, ec72de, 7f8fa6, f8db58
export MAIL_USERNAME="blahblahblah@gmail.com"
-export MAIL_PASSWORD="3435tdfsdudebussylmaoxxt43"
\ No newline at end of file
+export MAIL_PASSWORD="3435tdfsdudebussylmaoxxt43"
+export CHRISTMAS="0"
\ No newline at end of file
diff --git a/files/__main__.py b/files/__main__.py
index 913d3f38b..724a7996d 100644
--- a/files/__main__.py
+++ b/files/__main__.py
@@ -16,9 +16,7 @@ import gevent
from werkzeug.middleware.proxy_fix import ProxyFix
import redis
-if environ.get("CHRISTMAS"): templates = 'templates/CHRISTMAS'
-else: templates = 'templates'
-app = Flask(__name__, template_folder=templates)
+app = Flask(__name__, template_folder='templates/CHRISTMAS')
app.wsgi_app = ProxyFix(app.wsgi_app, x_for=3)
app.url_map.strict_slashes = False
diff --git a/files/assets/CHRISTMAS/Drama.apk b/files/assets/CHRISTMAS/Drama.apk
new file mode 100644
index 000000000..ee92083d5
Binary files /dev/null and b/files/assets/CHRISTMAS/Drama.apk differ
diff --git a/files/assets/CHRISTMAS/PCM.apk b/files/assets/CHRISTMAS/PCM.apk
new file mode 100644
index 000000000..88726aede
Binary files /dev/null and b/files/assets/CHRISTMAS/PCM.apk differ
diff --git a/files/assets/CHRISTMAS/banners/banner-1.jpg b/files/assets/CHRISTMAS/banners/banner-1.jpg
new file mode 100644
index 000000000..d92afa59e
Binary files /dev/null and b/files/assets/CHRISTMAS/banners/banner-1.jpg differ
diff --git a/files/assets/CHRISTMAS/banners/banner-10.jpg b/files/assets/CHRISTMAS/banners/banner-10.jpg
new file mode 100644
index 000000000..0f92f46ca
Binary files /dev/null and b/files/assets/CHRISTMAS/banners/banner-10.jpg differ
diff --git a/files/assets/CHRISTMAS/banners/banner-2.jpg b/files/assets/CHRISTMAS/banners/banner-2.jpg
new file mode 100644
index 000000000..9835a279f
Binary files /dev/null and b/files/assets/CHRISTMAS/banners/banner-2.jpg differ
diff --git a/files/assets/CHRISTMAS/banners/banner-3.jpg b/files/assets/CHRISTMAS/banners/banner-3.jpg
new file mode 100644
index 000000000..bc7b292fe
Binary files /dev/null and b/files/assets/CHRISTMAS/banners/banner-3.jpg differ
diff --git a/files/assets/CHRISTMAS/banners/banner-4.jpg b/files/assets/CHRISTMAS/banners/banner-4.jpg
new file mode 100644
index 000000000..b08352849
Binary files /dev/null and b/files/assets/CHRISTMAS/banners/banner-4.jpg differ
diff --git a/files/assets/CHRISTMAS/banners/banner-5.jpg b/files/assets/CHRISTMAS/banners/banner-5.jpg
new file mode 100644
index 000000000..4069db6bf
Binary files /dev/null and b/files/assets/CHRISTMAS/banners/banner-5.jpg differ
diff --git a/files/assets/CHRISTMAS/banners/banner-6.jpg b/files/assets/CHRISTMAS/banners/banner-6.jpg
new file mode 100644
index 000000000..e5ba4dc15
Binary files /dev/null and b/files/assets/CHRISTMAS/banners/banner-6.jpg differ
diff --git a/files/assets/CHRISTMAS/banners/banner-7.jpg b/files/assets/CHRISTMAS/banners/banner-7.jpg
new file mode 100644
index 000000000..626270f97
Binary files /dev/null and b/files/assets/CHRISTMAS/banners/banner-7.jpg differ
diff --git a/files/assets/CHRISTMAS/banners/banner-8.jpg b/files/assets/CHRISTMAS/banners/banner-8.jpg
new file mode 100644
index 000000000..404056559
Binary files /dev/null and b/files/assets/CHRISTMAS/banners/banner-8.jpg differ
diff --git a/files/assets/CHRISTMAS/banners/banner-9.jpg b/files/assets/CHRISTMAS/banners/banner-9.jpg
new file mode 100644
index 000000000..89832269b
Binary files /dev/null and b/files/assets/CHRISTMAS/banners/banner-9.jpg differ
diff --git a/files/assets/CHRISTMAS/browserconfig.xml b/files/assets/CHRISTMAS/browserconfig.xml
new file mode 100644
index 000000000..1107561bc
--- /dev/null
+++ b/files/assets/CHRISTMAS/browserconfig.xml
@@ -0,0 +1,9 @@
+
+
+
+
+
+ #FF66AC
+
+
+
diff --git a/files/assets/CHRISTMAS/css/4chan.css b/files/assets/CHRISTMAS/css/4chan.css
new file mode 100644
index 000000000..93a208291
--- /dev/null
+++ b/files/assets/CHRISTMAS/css/4chan.css
@@ -0,0 +1,96 @@
+@charset "UTF-8";
+
+:root {
+ --dark: #3E2C18;
+ --secondary: #F0E0D6;
+ --white: #F1E7D0;
+ --black: #433434;
+ --light: #F0E0D6;
+ --muted: #AA9881;
+ --gray: #AA9881;
+ --gray-100: #817261;
+ --gray-200: #433434;
+ --gray-300: #433434;
+ --gray-400: #AA9881;
+ --gray-500: #F0E0D6;
+ --gray-600: #F0E0D6;
+ --gray-700: #F0E0D6;
+ --gray-800: #F0E0D6;
+ --gray-900: #F0E0D6;
+
+}
+
+
+blockquote {
+ background-color: #c0c0c0;
+}
+
+.text-muted {
+ color: var(--black) !important;
+}
+
+.text-white {
+ color: var(--primary) !important;
+}
+
+.modal .comment-actions a {
+ color: var(--gray-500);
+}
+
+.navbar-light .navbar-nav .nav-link .fa, .navbar-light .navbar-nav .nav-link .fas, .navbar-light .navbar-nav .nav-link .far, .navbar-light .navbar-nav .nav-link .fab {
+ color: var(--black);
+}
+
+.dropdown-item:hover, .dropdown-item:focus, .dropdown-item.active {
+ background-color: #bda78e !important;
+}
+
+html * {
+ font-family: arial, helvetica, sans-serif !important;
+ color: #800000
+ }
+body, #main-content-col {
+ background-color: var(--secondary) !important;
+ }
+.border-right, .border-left, .border-top, .border-bottom, .border {
+ border-color: #D9BFB7 !important
+ }
+.card-header {
+ border-color: #D9BFB7 !important
+ }
+.post-title a {
+ color: #800000 !important;
+ }
+.comment, .card {
+ background-color: var(--secondary) !important;
+ border-color: #D9BFB7 !important;
+ }
+.form-control {
+ border-color: #D9BFB7 !important;
+ }
+.post-actions *:hover, .comment-actions *:hover, .comment-actions .copy-link:hover {
+ color: #F00 !important
+ }
+a {
+ color: var(--primary);
+}
+
+blockquote p {
+ color: green !important;
+}
+
+.transparent {
+ background: None !important;
+}
+
+#frontpage .post-title a:visited {
+ color: #949494 !important;
+}
+
+.btn {
+ color: var(--primary) !important;
+}
+
+#profilestuff > * {
+ color: #cfcfcf !important;
+}
\ No newline at end of file
diff --git a/files/assets/CHRISTMAS/css/agendaposter.css b/files/assets/CHRISTMAS/css/agendaposter.css
new file mode 100644
index 000000000..bb5623199
--- /dev/null
+++ b/files/assets/CHRISTMAS/css/agendaposter.css
@@ -0,0 +1,16 @@
+html {
+ cursor:url('https://i.ibb.co/4VZB08S/Image.webp'), auto;
+}
+
+.nav-item .text-small.font-weight-bold::before {
+ content: "((("
+}
+.nav-item .text-small.font-weight-bold::after {
+ content: ")))"
+}
+.nav-item .text-small-extra.text-primary {
+ font-size: 0 !important
+}
+.nav-item .text-small-extra.text-primary i {
+ font-size: 11px !important
+}
\ No newline at end of file
diff --git a/files/assets/CHRISTMAS/css/coffee.css b/files/assets/CHRISTMAS/css/coffee.css
new file mode 100644
index 000000000..f174bb1e7
--- /dev/null
+++ b/files/assets/CHRISTMAS/css/coffee.css
@@ -0,0 +1,98 @@
+@charset "UTF-8";
+
+/* latin-ext */
+@font-face {
+ font-family: 'Lato';
+ font-style: normal;
+ font-weight: 400;
+ src: url(../fonts/S6uyw4BMUTPHjxAwXjeu.woff2) format('woff2');
+ unicode-range: U+0100-024F, U+0259, U+1E00-1EFF, U+2020, U+20A0-20AB, U+20AD-20CF, U+2113, U+2C60-2C7F, U+A720-A7FF;
+ }
+ /* latin */
+ @font-face {
+ font-family: 'Lato';
+ font-style: normal;
+ font-weight: 400;
+ src: url(../fonts/S6uyw4BMUTPHjx4wXg.woff2) format('woff2');
+ unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
+ }
+ /* latin-ext */
+ @font-face {
+ font-family: 'Lato';
+ font-style: normal;
+ font-weight: 700;
+ src: url(../fonts/S6u9w4BMUTPHh6UVSwaPGR_p.woff2) format('woff2');
+ unicode-range: U+0100-024F, U+0259, U+1E00-1EFF, U+2020, U+20A0-20AB, U+20AD-20CF, U+2113, U+2C60-2C7F, U+A720-A7FF;
+ }
+ /* latin */
+ @font-face {
+ font-family: 'Lato';
+ font-style: normal;
+ font-weight: 700;
+ src: url(../fonts/S6u9w4BMUTPHh6UVSwiPGQ.woff2) format('woff2');
+ unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
+ }
+
+:root {
+ --dark: #3E2C18;
+ --secondary: #DDD2C4;
+ --white: #F1E7D0;
+ --black: #433434;
+ --light: #DDD2C4;
+ --muted: #AA9881;
+ --gray: #AA9881;
+ --gray-100: #817261;
+ --gray-200: #433434;
+ --gray-300: #433434;
+ --gray-400: #AA9881;
+ --gray-500: #DDD2C4;
+ --gray-600: #DDD2C4;
+ --gray-700: #DDD2C4;
+ --gray-800: #DDD2C4;
+ --gray-900: #DDD2C4;
+}
+
+
+* {
+ font-family: 'Lato' !important;
+}
+
+blockquote {
+ background-color: #c0c0c0;
+}
+
+.text-muted {
+ color: var(--black) !important;
+}
+
+.modal .comment-actions a {
+ color: var(--gray-500);
+}
+
+.navbar-light .navbar-nav .nav-link .fa, .navbar-light .navbar-nav .nav-link .fas, .navbar-light .navbar-nav .nav-link .far, .navbar-light .navbar-nav .nav-link .fab {
+ color: var(--black);
+}
+
+.dropdown-item:hover, .dropdown-item:focus, .dropdown-item.active {
+ background-color: #bda78e !important;
+}
+
+.transparent {
+ background: None !important;
+}
+
+#frontpage .post-title a:visited {
+ color: #949494 !important;
+}
+
+.btn {
+ color: var(--primary) !important;
+}
+
+.table {
+ color: #433434 !important;
+}
+
+#profilestuff > * {
+ color: #cfcfcf !important;
+}
\ No newline at end of file
diff --git a/files/assets/CHRISTMAS/css/dark.css b/files/assets/CHRISTMAS/css/dark.css
new file mode 100644
index 000000000..2a153420e
--- /dev/null
+++ b/files/assets/CHRISTMAS/css/dark.css
@@ -0,0 +1,71 @@
+@charset "UTF-8";
+
+:root {
+ --dark: #383838;
+ --secondary: #383838;
+ --white: #E1E1E1;
+ --black: #CFCFCF;
+ --light: #000000;
+ --muted: #E1E1E1;
+ --gray: #383838;
+ --gray-100: #E1E1E1;
+ --gray-200: #E1E1E1;
+ --gray-300: #383838;
+ --gray-400: #303030;
+ --gray-500: #000000;
+ --gray-600: #000000;
+ --gray-700: #000000;
+ --gray-800: #000000;
+ --gray-900: #000000;
+}
+
+* {
+ border-color: var(--primary);
+}
+
+.border {
+ border-color: var(--primary) !important;
+}
+
+.form-control {
+ background: transparent;
+ border-color: var(--primary) !important;
+}
+
+.btn {
+ background: transparent;
+ border-color: var(--primary) !important;
+}
+
+.form-control:disabled, .form-control[readonly] {
+ background: transparent;
+ border-color: var(--primary) !important;
+}
+
+.btn-success {
+ border-color: #38A169 !important;
+}
+
+.btn-danger {
+ border-color: #E53E3E !important;
+}
+
+#frontpage .pseudo-submit-form.card .card-body .form-control {
+ border-color: transparent !important;
+}
+
+.btn-lg {
+ border-color: transparent !important;
+}
+
+pre {
+ color: #CFCFCF;
+}
+
+.transparent {
+ background: None !important;
+}
+
+#frontpage .post-title a:visited {
+ color: #7a7a7a !important;
+}
\ No newline at end of file
diff --git a/files/assets/css/default.css b/files/assets/CHRISTMAS/css/default.css
similarity index 100%
rename from files/assets/css/default.css
rename to files/assets/CHRISTMAS/css/default.css
diff --git a/files/assets/CHRISTMAS/css/fa.css b/files/assets/CHRISTMAS/css/fa.css
new file mode 100644
index 000000000..8c18f7172
--- /dev/null
+++ b/files/assets/CHRISTMAS/css/fa.css
@@ -0,0 +1 @@
+.fa,.fas,.far,.fal,.fad,.fab{-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;display:inline-block;font-style:normal;font-variant:normal;text-rendering:auto;line-height:1}.fa-lg{font-size:1.33333em;line-height:.75em;vertical-align:-.0667em}.fa-xs{font-size:.75em}.fa-sm{font-size:.875em}.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-fw{text-align:center;width:1.25em}.fa-ul{list-style-type:none;margin-left:2.5em;padding-left:0}.fa-ul>li{position:relative}.fa-li{left:-2em;position:absolute;text-align:center;width:2em;line-height:inherit}.fa-border{border:solid .08em #eee;border-radius:.1em;padding:.2em .25em .15em}.fa-pull-left{float:left}.fa-pull-right{float:right}.fa.fa-pull-left,.fas.fa-pull-left,.far.fa-pull-left,.fal.fa-pull-left,.fab.fa-pull-left{margin-right:.3em}.fa.fa-pull-right,.fas.fa-pull-right,.far.fa-pull-right,.fal.fa-pull-right,.fab.fa-pull-right{margin-left:.3em}.fa-spin{-webkit-animation:fa-spin 2s infinite linear;animation:fa-spin 2s infinite linear}.fa-pulse{-webkit-animation:fa-spin 1s infinite steps(8);animation:fa-spin 1s infinite steps(8)}@-webkit-keyframes fa-spin{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}100%{-webkit-transform:rotate(360deg);transform:rotate(360deg)}}@keyframes fa-spin{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}100%{-webkit-transform:rotate(360deg);transform:rotate(360deg)}}.fa-rotate-90{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=1)";-webkit-transform:rotate(90deg);transform:rotate(90deg)}.fa-rotate-180{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=2)";-webkit-transform:rotate(180deg);transform:rotate(180deg)}.fa-rotate-270{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=3)";-webkit-transform:rotate(270deg);transform:rotate(270deg)}.fa-flip-horizontal{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=0, mirror=1)";-webkit-transform:scale(-1,1);transform:scale(-1,1)}.fa-flip-vertical{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=2, mirror=1)";-webkit-transform:scale(1,-1);transform:scale(1,-1)}.fa-flip-both,.fa-flip-horizontal.fa-flip-vertical{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=2, mirror=1)";-webkit-transform:scale(-1,-1);transform:scale(-1,-1)}:root .fa-rotate-90,:root .fa-rotate-180,:root .fa-rotate-270,:root .fa-flip-horizontal,:root .fa-flip-vertical,:root .fa-flip-both{-webkit-filter:none;filter: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:0;position:absolute;text-align:center;width:100%}.fa-stack-1x{line-height:inherit}.fa-stack-2x{font-size:2em}.fa-inverse{color:#fff}.fa-500px:before{content:"\f26e"}.fa-abacus:before{content:"\f640"}.fa-accessible-icon:before{content:"\f368"}.fa-accusoft:before{content:"\f369"}.fa-acorn:before{content:"\f6ae"}.fa-acquisitions-incorporated:before{content:"\f6af"}.fa-ad:before{content:"\f641"}.fa-address-book:before{content:"\f2b9"}.fa-address-card:before{content:"\f2bb"}.fa-adjust:before{content:"\f042"}.fa-adn:before{content:"\f170"}.fa-adobe:before{content:"\f778"}.fa-adversal:before{content:"\f36a"}.fa-affiliatetheme:before{content:"\f36b"}.fa-air-conditioner:before{content:"\f8f4"}.fa-air-freshener:before{content:"\f5d0"}.fa-airbnb:before{content:"\f834"}.fa-alarm-clock:before{content:"\f34e"}.fa-alarm-exclamation:before{content:"\f843"}.fa-alarm-plus:before{content:"\f844"}.fa-alarm-snooze:before{content:"\f845"}.fa-album:before{content:"\f89f"}.fa-album-collection:before{content:"\f8a0"}.fa-algolia:before{content:"\f36c"}.fa-alicorn:before{content:"\f6b0"}.fa-alien:before{content:"\f8f5"}.fa-alien-monster:before{content:"\f8f6"}.fa-align-center:before{content:"\f037"}.fa-align-justify:before{content:"\f039"}.fa-align-left:before{content:"\f036"}.fa-align-right:before{content:"\f038"}.fa-align-slash:before{content:"\f846"}.fa-alipay:before{content:"\f642"}.fa-allergies:before{content:"\f461"}.fa-amazon:before{content:"\f270"}.fa-amazon-pay:before{content:"\f42c"}.fa-ambulance:before{content:"\f0f9"}.fa-american-sign-language-interpreting:before{content:"\f2a3"}.fa-amilia:before{content:"\f36d"}.fa-amp-guitar:before{content:"\f8a1"}.fa-analytics:before{content:"\f643"}.fa-anchor:before{content:"\f13d"}.fa-android:before{content:"\f17b"}.fa-angel:before{content:"\f779"}.fa-angellist:before{content:"\f209"}.fa-angle-double-down:before{content:"\f103"}.fa-angle-double-left:before{content:"\f100"}.fa-angle-double-right:before{content:"\f101"}.fa-angle-double-up:before{content:"\f102"}.fa-angle-down:before{content:"\f107"}.fa-angle-left:before{content:"\f104"}.fa-angle-right:before{content:"\f105"}.fa-angle-up:before{content:"\f106"}.fa-angry:before{content:"\f556"}.fa-angrycreative:before{content:"\f36e"}.fa-angular:before{content:"\f420"}.fa-ankh:before{content:"\f644"}.fa-app-store:before{content:"\f36f"}.fa-app-store-ios:before{content:"\f370"}.fa-apper:before{content:"\f371"}.fa-apple:before{content:"\f179"}.fa-apple-alt:before{content:"\f5d1"}.fa-apple-crate:before{content:"\f6b1"}.fa-apple-pay:before{content:"\f415"}.fa-archive:before{content:"\f187"}.fa-archway:before{content:"\f557"}.fa-arrow-alt-circle-down:before{content:"\f358"}.fa-arrow-alt-circle-left:before{content:"\f359"}.fa-arrow-alt-circle-right:before{content:"\f35a"}.fa-arrow-alt-circle-up:before{content:"\f35b"}.fa-arrow-alt-down:before{content:"\f354"}.fa-arrow-alt-from-bottom:before{content:"\f346"}.fa-arrow-alt-from-left:before{content:"\f347"}.fa-arrow-alt-from-right:before{content:"\f348"}.fa-arrow-alt-from-top:before{content:"\f349"}.fa-arrow-alt-left:before{content:"\f355"}.fa-arrow-alt-right:before{content:"\f356"}.fa-arrow-alt-square-down:before{content:"\f350"}.fa-arrow-alt-square-left:before{content:"\f351"}.fa-arrow-alt-square-right:before{content:"\f352"}.fa-arrow-alt-square-up:before{content:"\f353"}.fa-arrow-alt-to-bottom:before{content:"\f34a"}.fa-arrow-alt-to-left:before{content:"\f34b"}.fa-arrow-alt-to-right:before{content:"\f34c"}.fa-arrow-alt-to-top:before{content:"\f34d"}.fa-arrow-alt-up:before{content:"\f357"}.fa-arrow-circle-down:before{content:"\f0ab"}.fa-arrow-circle-left:before{content:"\f0a8"}.fa-arrow-circle-right:before{content:"\f0a9"}.fa-arrow-circle-up:before{content:"\f0aa"}.fa-arrow-down:before{content:"\f063"}.fa-arrow-from-bottom:before{content:"\f342"}.fa-arrow-from-left:before{content:"\f343"}.fa-arrow-from-right:before{content:"\f344"}.fa-arrow-from-top:before{content:"\f345"}.fa-arrow-left:before{content:"\f060"}.fa-arrow-right:before{content:"\f061"}.fa-arrow-square-down:before{content:"\f339"}.fa-arrow-square-left:before{content:"\f33a"}.fa-arrow-square-right:before{content:"\f33b"}.fa-arrow-square-up:before{content:"\f33c"}.fa-arrow-to-bottom:before{content:"\f33d"}.fa-arrow-to-left:before{content:"\f33e"}.fa-arrow-to-right:before{content:"\f340"}.fa-arrow-to-top:before{content:"\f341"}.fa-arrow-up:before{content:"\f062"}.fa-arrows:before{content:"\f047"}.fa-arrows-alt:before{content:"\f0b2"}.fa-arrows-alt-h:before{content:"\f337"}.fa-arrows-alt-v:before{content:"\f338"}.fa-arrows-h:before{content:"\f07e"}.fa-arrows-v:before{content:"\f07d"}.fa-artstation:before{content:"\f77a"}.fa-assistive-listening-systems:before{content:"\f2a2"}.fa-asterisk:before{content:"\f069"}.fa-asymmetrik:before{content:"\f372"}.fa-at:before{content:"\f1fa"}.fa-atlas:before{content:"\f558"}.fa-atlassian:before{content:"\f77b"}.fa-atom:before{content:"\f5d2"}.fa-atom-alt:before{content:"\f5d3"}.fa-audible:before{content:"\f373"}.fa-audio-description:before{content:"\f29e"}.fa-autoprefixer:before{content:"\f41c"}.fa-avianex:before{content:"\f374"}.fa-aviato:before{content:"\f421"}.fa-award:before{content:"\f559"}.fa-aws:before{content:"\f375"}.fa-axe:before{content:"\f6b2"}.fa-axe-battle:before{content:"\f6b3"}.fa-baby:before{content:"\f77c"}.fa-baby-carriage:before{content:"\f77d"}.fa-backpack:before{content:"\f5d4"}.fa-backspace:before{content:"\f55a"}.fa-backward:before{content:"\f04a"}.fa-bacon:before{content:"\f7e5"}.fa-badge:before{content:"\f335"}.fa-badge-check:before{content:"\f336"}.fa-badge-dollar:before{content:"\f645"}.fa-badge-percent:before{content:"\f646"}.fa-badge-sheriff:before{content:"\f8a2"}.fa-badger-honey:before{content:"\f6b4"}.fa-bags-shopping:before{content:"\f847"}.fa-bahai:before{content:"\f666"}.fa-balance-scale:before{content:"\f24e"}.fa-balance-scale-left:before{content:"\f515"}.fa-balance-scale-right:before{content:"\f516"}.fa-ball-pile:before{content:"\f77e"}.fa-ballot:before{content:"\f732"}.fa-ballot-check:before{content:"\f733"}.fa-ban:before{content:"\f05e"}.fa-band-aid:before{content:"\f462"}.fa-bandcamp:before{content:"\f2d5"}.fa-banjo:before{content:"\f8a3"}.fa-barcode:before{content:"\f02a"}.fa-barcode-alt:before{content:"\f463"}.fa-barcode-read:before{content:"\f464"}.fa-barcode-scan:before{content:"\f465"}.fa-bars:before{content:"\f0c9"}.fa-baseball:before{content:"\f432"}.fa-baseball-ball:before{content:"\f433"}.fa-basketball-ball:before{content:"\f434"}.fa-basketball-hoop:before{content:"\f435"}.fa-bat:before{content:"\f6b5"}.fa-bath:before{content:"\f2cd"}.fa-battery-bolt:before{content:"\f376"}.fa-battery-empty:before{content:"\f244"}.fa-battery-full:before{content:"\f240"}.fa-battery-half:before{content:"\f242"}.fa-battery-quarter:before{content:"\f243"}.fa-battery-slash:before{content:"\f377"}.fa-battery-three-quarters:before{content:"\f241"}.fa-battle-net:before{content:"\f835"}.fa-bed:before{content:"\f236"}.fa-bed-alt:before{content:"\f8f7"}.fa-bed-bunk:before{content:"\f8f8"}.fa-bed-empty:before{content:"\f8f9"}.fa-beer:before{content:"\f0fc"}.fa-behance:before{content:"\f1b4"}.fa-behance-square:before{content:"\f1b5"}.fa-bell:before{content:"\f0f3"}.fa-bell-exclamation:before{content:"\f848"}.fa-bell-on:before{content:"\f8fa"}.fa-bell-plus:before{content:"\f849"}.fa-bell-school:before{content:"\f5d5"}.fa-bell-school-slash:before{content:"\f5d6"}.fa-bell-slash:before{content:"\f1f6"}.fa-bells:before{content:"\f77f"}.fa-betamax:before{content:"\f8a4"}.fa-bezier-curve:before{content:"\f55b"}.fa-bible:before{content:"\f647"}.fa-bicycle:before{content:"\f206"}.fa-biking:before{content:"\f84a"}.fa-biking-mountain:before{content:"\f84b"}.fa-bimobject:before{content:"\f378"}.fa-binoculars:before{content:"\f1e5"}.fa-biohazard:before{content:"\f780"}.fa-birthday-cake:before{content:"\f1fd"}.fa-bitbucket:before{content:"\f171"}.fa-bitcoin:before{content:"\f379"}.fa-bity:before{content:"\f37a"}.fa-black-tie:before{content:"\f27e"}.fa-blackberry:before{content:"\f37b"}.fa-blanket:before{content:"\f498"}.fa-blender:before{content:"\f517"}.fa-blender-phone:before{content:"\f6b6"}.fa-blind:before{content:"\f29d"}.fa-blinds:before{content:"\f8fb"}.fa-blinds-open:before{content:"\f8fc"}.fa-blinds-raised:before{content:"\f8fd"}.fa-blog:before{content:"\f781"}.fa-blogger:before{content:"\f37c"}.fa-blogger-b:before{content:"\f37d"}.fa-bluetooth:before{content:"\f293"}.fa-bluetooth-b:before{content:"\f294"}.fa-bold:before{content:"\f032"}.fa-bolt:before{content:"\f0e7"}.fa-bomb:before{content:"\f1e2"}.fa-bone:before{content:"\f5d7"}.fa-bone-break:before{content:"\f5d8"}.fa-bong:before{content:"\f55c"}.fa-book:before{content:"\f02d"}.fa-book-alt:before{content:"\f5d9"}.fa-book-dead:before{content:"\f6b7"}.fa-book-heart:before{content:"\f499"}.fa-book-medical:before{content:"\f7e6"}.fa-book-open:before{content:"\f518"}.fa-book-reader:before{content:"\f5da"}.fa-book-spells:before{content:"\f6b8"}.fa-book-user:before{content:"\f7e7"}.fa-bookmark:before{content:"\f02e"}.fa-books:before{content:"\f5db"}.fa-books-medical:before{content:"\f7e8"}.fa-boombox:before{content:"\f8a5"}.fa-boot:before{content:"\f782"}.fa-booth-curtain:before{content:"\f734"}.fa-bootstrap:before{content:"\f836"}.fa-border-all:before{content:"\f84c"}.fa-border-bottom:before{content:"\f84d"}.fa-border-center-h:before{content:"\f89c"}.fa-border-center-v:before{content:"\f89d"}.fa-border-inner:before{content:"\f84e"}.fa-border-left:before{content:"\f84f"}.fa-border-none:before{content:"\f850"}.fa-border-outer:before{content:"\f851"}.fa-border-right:before{content:"\f852"}.fa-border-style:before{content:"\f853"}.fa-border-style-alt:before{content:"\f854"}.fa-border-top:before{content:"\f855"}.fa-bow-arrow:before{content:"\f6b9"}.fa-bowling-ball:before{content:"\f436"}.fa-bowling-pins:before{content:"\f437"}.fa-box:before{content:"\f466"}.fa-box-alt:before{content:"\f49a"}.fa-box-ballot:before{content:"\f735"}.fa-box-check:before{content:"\f467"}.fa-box-fragile:before{content:"\f49b"}.fa-box-full:before{content:"\f49c"}.fa-box-heart:before{content:"\f49d"}.fa-box-open:before{content:"\f49e"}.fa-box-up:before{content:"\f49f"}.fa-box-usd:before{content:"\f4a0"}.fa-boxes:before{content:"\f468"}.fa-boxes-alt:before{content:"\f4a1"}.fa-boxing-glove:before{content:"\f438"}.fa-brackets:before{content:"\f7e9"}.fa-brackets-curly:before{content:"\f7ea"}.fa-braille:before{content:"\f2a1"}.fa-brain:before{content:"\f5dc"}.fa-bread-loaf:before{content:"\f7eb"}.fa-bread-slice:before{content:"\f7ec"}.fa-briefcase:before{content:"\f0b1"}.fa-briefcase-medical:before{content:"\f469"}.fa-bring-forward:before{content:"\f856"}.fa-bring-front:before{content:"\f857"}.fa-broadcast-tower:before{content:"\f519"}.fa-broom:before{content:"\f51a"}.fa-browser:before{content:"\f37e"}.fa-brush:before{content:"\f55d"}.fa-btc:before{content:"\f15a"}.fa-buffer:before{content:"\f837"}.fa-bug:before{content:"\f188"}.fa-building:before{content:"\f1ad"}.fa-bullhorn:before{content:"\f0a1"}.fa-bullseye:before{content:"\f140"}.fa-bullseye-arrow:before{content:"\f648"}.fa-bullseye-pointer:before{content:"\f649"}.fa-burger-soda:before{content:"\f858"}.fa-burn:before{content:"\f46a"}.fa-buromobelexperte:before{content:"\f37f"}.fa-burrito:before{content:"\f7ed"}.fa-bus:before{content:"\f207"}.fa-bus-alt:before{content:"\f55e"}.fa-bus-school:before{content:"\f5dd"}.fa-business-time:before{content:"\f64a"}.fa-buy-n-large:before{content:"\f8a6"}.fa-buysellads:before{content:"\f20d"}.fa-cabinet-filing:before{content:"\f64b"}.fa-cactus:before{content:"\f8a7"}.fa-calculator:before{content:"\f1ec"}.fa-calculator-alt:before{content:"\f64c"}.fa-calendar:before{content:"\f133"}.fa-calendar-alt:before{content:"\f073"}.fa-calendar-check:before{content:"\f274"}.fa-calendar-day:before{content:"\f783"}.fa-calendar-edit:before{content:"\f333"}.fa-calendar-exclamation:before{content:"\f334"}.fa-calendar-minus:before{content:"\f272"}.fa-calendar-plus:before{content:"\f271"}.fa-calendar-star:before{content:"\f736"}.fa-calendar-times:before{content:"\f273"}.fa-calendar-week:before{content:"\f784"}.fa-camcorder:before{content:"\f8a8"}.fa-camera:before{content:"\f030"}.fa-camera-alt:before{content:"\f332"}.fa-camera-home:before{content:"\f8fe"}.fa-camera-movie:before{content:"\f8a9"}.fa-camera-polaroid:before{content:"\f8aa"}.fa-camera-retro:before{content:"\f083"}.fa-campfire:before{content:"\f6ba"}.fa-campground:before{content:"\f6bb"}.fa-canadian-maple-leaf:before{content:"\f785"}.fa-candle-holder:before{content:"\f6bc"}.fa-candy-cane:before{content:"\f786"}.fa-candy-corn:before{content:"\f6bd"}.fa-cannabis:before{content:"\f55f"}.fa-capsules:before{content:"\f46b"}.fa-car:before{content:"\f1b9"}.fa-car-alt:before{content:"\f5de"}.fa-car-battery:before{content:"\f5df"}.fa-car-building:before{content:"\f859"}.fa-car-bump:before{content:"\f5e0"}.fa-car-bus:before{content:"\f85a"}.fa-car-crash:before{content:"\f5e1"}.fa-car-garage:before{content:"\f5e2"}.fa-car-mechanic:before{content:"\f5e3"}.fa-car-side:before{content:"\f5e4"}.fa-car-tilt:before{content:"\f5e5"}.fa-car-wash:before{content:"\f5e6"}.fa-caravan:before{content:"\f8ff"}.fa-caravan-alt:before{content:"\f900"}.fa-caret-circle-down:before{content:"\f32d"}.fa-caret-circle-left:before{content:"\f32e"}.fa-caret-circle-right:before{content:"\f330"}.fa-caret-circle-up:before{content:"\f331"}.fa-caret-down:before{content:"\f0d7"}.fa-caret-left:before{content:"\f0d9"}.fa-caret-right:before{content:"\f0da"}.fa-caret-square-down:before{content:"\f150"}.fa-caret-square-left:before{content:"\f191"}.fa-caret-square-right:before{content:"\f152"}.fa-caret-square-up:before{content:"\f151"}.fa-caret-up:before{content:"\f0d8"}.fa-carrot:before{content:"\f787"}.fa-cars:before{content:"\f85b"}.fa-cart-arrow-down:before{content:"\f218"}.fa-cart-plus:before{content:"\f217"}.fa-cash-register:before{content:"\f788"}.fa-cassette-tape:before{content:"\f8ab"}.fa-cat:before{content:"\f6be"}.fa-cat-space:before{content:"\f901"}.fa-cauldron:before{content:"\f6bf"}.fa-cc-amazon-pay:before{content:"\f42d"}.fa-cc-amex:before{content:"\f1f3"}.fa-cc-apple-pay:before{content:"\f416"}.fa-cc-diners-club:before{content:"\f24c"}.fa-cc-discover:before{content:"\f1f2"}.fa-cc-jcb:before{content:"\f24b"}.fa-cc-mastercard:before{content:"\f1f1"}.fa-cc-paypal:before{content:"\f1f4"}.fa-cc-stripe:before{content:"\f1f5"}.fa-cc-visa:before{content:"\f1f0"}.fa-cctv:before{content:"\f8ac"}.fa-centercode:before{content:"\f380"}.fa-centos:before{content:"\f789"}.fa-certificate:before{content:"\f0a3"}.fa-chair:before{content:"\f6c0"}.fa-chair-office:before{content:"\f6c1"}.fa-chalkboard:before{content:"\f51b"}.fa-chalkboard-teacher:before{content:"\f51c"}.fa-charging-station:before{content:"\f5e7"}.fa-chart-area:before{content:"\f1fe"}.fa-chart-bar:before{content:"\f080"}.fa-chart-line:before{content:"\f201"}.fa-chart-line-down:before{content:"\f64d"}.fa-chart-network:before{content:"\f78a"}.fa-chart-pie:before{content:"\f200"}.fa-chart-pie-alt:before{content:"\f64e"}.fa-chart-scatter:before{content:"\f7ee"}.fa-check:before{content:"\f00c"}.fa-check-circle:before{content:"\f058"}.fa-check-double:before{content:"\f560"}.fa-check-square:before{content:"\f14a"}.fa-cheese:before{content:"\f7ef"}.fa-cheese-swiss:before{content:"\f7f0"}.fa-cheeseburger:before{content:"\f7f1"}.fa-chess:before{content:"\f439"}.fa-chess-bishop:before{content:"\f43a"}.fa-chess-bishop-alt:before{content:"\f43b"}.fa-chess-board:before{content:"\f43c"}.fa-chess-clock:before{content:"\f43d"}.fa-chess-clock-alt:before{content:"\f43e"}.fa-chess-king:before{content:"\f43f"}.fa-chess-king-alt:before{content:"\f440"}.fa-chess-knight:before{content:"\f441"}.fa-chess-knight-alt:before{content:"\f442"}.fa-chess-pawn:before{content:"\f443"}.fa-chess-pawn-alt:before{content:"\f444"}.fa-chess-queen:before{content:"\f445"}.fa-chess-queen-alt:before{content:"\f446"}.fa-chess-rook:before{content:"\f447"}.fa-chess-rook-alt:before{content:"\f448"}.fa-chevron-circle-down:before{content:"\f13a"}.fa-chevron-circle-left:before{content:"\f137"}.fa-chevron-circle-right:before{content:"\f138"}.fa-chevron-circle-up:before{content:"\f139"}.fa-chevron-double-down:before{content:"\f322"}.fa-chevron-double-left:before{content:"\f323"}.fa-chevron-double-right:before{content:"\f324"}.fa-chevron-double-up:before{content:"\f325"}.fa-chevron-down:before{content:"\f078"}.fa-chevron-left:before{content:"\f053"}.fa-chevron-right:before{content:"\f054"}.fa-chevron-square-down:before{content:"\f329"}.fa-chevron-square-left:before{content:"\f32a"}.fa-chevron-square-right:before{content:"\f32b"}.fa-chevron-square-up:before{content:"\f32c"}.fa-chevron-up:before{content:"\f077"}.fa-child:before{content:"\f1ae"}.fa-chimney:before{content:"\f78b"}.fa-chrome:before{content:"\f268"}.fa-chromecast:before{content:"\f838"}.fa-church:before{content:"\f51d"}.fa-circle:before{content:"\f111"}.fa-circle-notch:before{content:"\f1ce"}.fa-city:before{content:"\f64f"}.fa-clarinet:before{content:"\f8ad"}.fa-claw-marks:before{content:"\f6c2"}.fa-clinic-medical:before{content:"\f7f2"}.fa-clipboard:before{content:"\f328"}.fa-clipboard-check:before{content:"\f46c"}.fa-clipboard-list:before{content:"\f46d"}.fa-clipboard-list-check:before{content:"\f737"}.fa-clipboard-prescription:before{content:"\f5e8"}.fa-clipboard-user:before{content:"\f7f3"}.fa-clock:before{content:"\f017"}.fa-clone:before{content:"\f24d"}.fa-closed-captioning:before{content:"\f20a"}.fa-cloud:before{content:"\f0c2"}.fa-cloud-download:before{content:"\f0ed"}.fa-cloud-download-alt:before{content:"\f381"}.fa-cloud-drizzle:before{content:"\f738"}.fa-cloud-hail:before{content:"\f739"}.fa-cloud-hail-mixed:before{content:"\f73a"}.fa-cloud-meatball:before{content:"\f73b"}.fa-cloud-moon:before{content:"\f6c3"}.fa-cloud-moon-rain:before{content:"\f73c"}.fa-cloud-music:before{content:"\f8ae"}.fa-cloud-rain:before{content:"\f73d"}.fa-cloud-rainbow:before{content:"\f73e"}.fa-cloud-showers:before{content:"\f73f"}.fa-cloud-showers-heavy:before{content:"\f740"}.fa-cloud-sleet:before{content:"\f741"}.fa-cloud-snow:before{content:"\f742"}.fa-cloud-sun:before{content:"\f6c4"}.fa-cloud-sun-rain:before{content:"\f743"}.fa-cloud-upload:before{content:"\f0ee"}.fa-cloud-upload-alt:before{content:"\f382"}.fa-clouds:before{content:"\f744"}.fa-clouds-moon:before{content:"\f745"}.fa-clouds-sun:before{content:"\f746"}.fa-cloudscale:before{content:"\f383"}.fa-cloudsmith:before{content:"\f384"}.fa-cloudversify:before{content:"\f385"}.fa-club:before{content:"\f327"}.fa-cocktail:before{content:"\f561"}.fa-code:before{content:"\f121"}.fa-code-branch:before{content:"\f126"}.fa-code-commit:before{content:"\f386"}.fa-code-merge:before{content:"\f387"}.fa-codepen:before{content:"\f1cb"}.fa-codiepie:before{content:"\f284"}.fa-coffee:before{content:"\f0f4"}.fa-coffee-pot:before{content:"\f902"}.fa-coffee-togo:before{content:"\f6c5"}.fa-coffin:before{content:"\f6c6"}.fa-cog:before{content:"\f013"}.fa-cogs:before{content:"\f085"}.fa-coin:before{content:"\f85c"}.fa-coins:before{content:"\f51e"}.fa-columns:before{content:"\f0db"}.fa-comet:before{content:"\f903"}.fa-comment:before{content:"\f075"}.fa-comment-alt:before{content:"\f27a"}.fa-comment-alt-check:before{content:"\f4a2"}.fa-comment-alt-dollar:before{content:"\f650"}.fa-comment-alt-dots:before{content:"\f4a3"}.fa-comment-alt-edit:before{content:"\f4a4"}.fa-comment-alt-exclamation:before{content:"\f4a5"}.fa-comment-alt-lines:before{content:"\f4a6"}.fa-comment-alt-medical:before{content:"\f7f4"}.fa-comment-alt-minus:before{content:"\f4a7"}.fa-comment-alt-music:before{content:"\f8af"}.fa-comment-alt-plus:before{content:"\f4a8"}.fa-comment-alt-slash:before{content:"\f4a9"}.fa-comment-alt-smile:before{content:"\f4aa"}.fa-comment-alt-times:before{content:"\f4ab"}.fa-comment-check:before{content:"\f4ac"}.fa-comment-dollar:before{content:"\f651"}.fa-comment-dots:before{content:"\f4ad"}.fa-comment-edit:before{content:"\f4ae"}.fa-comment-exclamation:before{content:"\f4af"}.fa-comment-lines:before{content:"\f4b0"}.fa-comment-medical:before{content:"\f7f5"}.fa-comment-minus:before{content:"\f4b1"}.fa-comment-music:before{content:"\f8b0"}.fa-comment-plus:before{content:"\f4b2"}.fa-comment-slash:before{content:"\f4b3"}.fa-comment-smile:before{content:"\f4b4"}.fa-comment-times:before{content:"\f4b5"}.fa-comments:before{content:"\f086"}.fa-comments-alt:before{content:"\f4b6"}.fa-comments-alt-dollar:before{content:"\f652"}.fa-comments-dollar:before{content:"\f653"}.fa-compact-disc:before{content:"\f51f"}.fa-compass:before{content:"\f14e"}.fa-compass-slash:before{content:"\f5e9"}.fa-compress:before{content:"\f066"}.fa-compress-alt:before{content:"\f422"}.fa-compress-arrows-alt:before{content:"\f78c"}.fa-compress-wide:before{content:"\f326"}.fa-computer-classic:before{content:"\f8b1"}.fa-computer-speaker:before{content:"\f8b2"}.fa-concierge-bell:before{content:"\f562"}.fa-confluence:before{content:"\f78d"}.fa-connectdevelop:before{content:"\f20e"}.fa-construction:before{content:"\f85d"}.fa-container-storage:before{content:"\f4b7"}.fa-contao:before{content:"\f26d"}.fa-conveyor-belt:before{content:"\f46e"}.fa-conveyor-belt-alt:before{content:"\f46f"}.fa-cookie:before{content:"\f563"}.fa-cookie-bite:before{content:"\f564"}.fa-copy:before{content:"\f0c5"}.fa-copyright:before{content:"\f1f9"}.fa-corn:before{content:"\f6c7"}.fa-cotton-bureau:before{content:"\f89e"}.fa-couch:before{content:"\f4b8"}.fa-cow:before{content:"\f6c8"}.fa-cowbell:before{content:"\f8b3"}.fa-cowbell-more:before{content:"\f8b4"}.fa-cpanel:before{content:"\f388"}.fa-creative-commons:before{content:"\f25e"}.fa-creative-commons-by:before{content:"\f4e7"}.fa-creative-commons-nc:before{content:"\f4e8"}.fa-creative-commons-nc-eu:before{content:"\f4e9"}.fa-creative-commons-nc-jp:before{content:"\f4ea"}.fa-creative-commons-nd:before{content:"\f4eb"}.fa-creative-commons-pd:before{content:"\f4ec"}.fa-creative-commons-pd-alt:before{content:"\f4ed"}.fa-creative-commons-remix:before{content:"\f4ee"}.fa-creative-commons-sa:before{content:"\f4ef"}.fa-creative-commons-sampling:before{content:"\f4f0"}.fa-creative-commons-sampling-plus:before{content:"\f4f1"}.fa-creative-commons-share:before{content:"\f4f2"}.fa-creative-commons-zero:before{content:"\f4f3"}.fa-credit-card:before{content:"\f09d"}.fa-credit-card-blank:before{content:"\f389"}.fa-credit-card-front:before{content:"\f38a"}.fa-cricket:before{content:"\f449"}.fa-critical-role:before{content:"\f6c9"}.fa-croissant:before{content:"\f7f6"}.fa-crop:before{content:"\f125"}.fa-crop-alt:before{content:"\f565"}.fa-cross:before{content:"\f654"}.fa-crosshairs:before{content:"\f05b"}.fa-crow:before{content:"\f520"}.fa-crown:before{content:"\f521"}.fa-crutch:before{content:"\f7f7"}.fa-crutches:before{content:"\f7f8"}.fa-css3:before{content:"\f13c"}.fa-css3-alt:before{content:"\f38b"}.fa-cube:before{content:"\f1b2"}.fa-cubes:before{content:"\f1b3"}.fa-curling:before{content:"\f44a"}.fa-cut:before{content:"\f0c4"}.fa-cuttlefish:before{content:"\f38c"}.fa-d-and-d:before{content:"\f38d"}.fa-d-and-d-beyond:before{content:"\f6ca"}.fa-dagger:before{content:"\f6cb"}.fa-dashcube:before{content:"\f210"}.fa-database:before{content:"\f1c0"}.fa-deaf:before{content:"\f2a4"}.fa-debug:before{content:"\f7f9"}.fa-deer:before{content:"\f78e"}.fa-deer-rudolph:before{content:"\f78f"}.fa-delicious:before{content:"\f1a5"}.fa-democrat:before{content:"\f747"}.fa-deploydog:before{content:"\f38e"}.fa-deskpro:before{content:"\f38f"}.fa-desktop:before{content:"\f108"}.fa-desktop-alt:before{content:"\f390"}.fa-dev:before{content:"\f6cc"}.fa-deviantart:before{content:"\f1bd"}.fa-dewpoint:before{content:"\f748"}.fa-dharmachakra:before{content:"\f655"}.fa-dhl:before{content:"\f790"}.fa-diagnoses:before{content:"\f470"}.fa-diamond:before{content:"\f219"}.fa-diaspora:before{content:"\f791"}.fa-dice:before{content:"\f522"}.fa-dice-d10:before{content:"\f6cd"}.fa-dice-d12:before{content:"\f6ce"}.fa-dice-d20:before{content:"\f6cf"}.fa-dice-d4:before{content:"\f6d0"}.fa-dice-d6:before{content:"\f6d1"}.fa-dice-d8:before{content:"\f6d2"}.fa-dice-five:before{content:"\f523"}.fa-dice-four:before{content:"\f524"}.fa-dice-one:before{content:"\f525"}.fa-dice-six:before{content:"\f526"}.fa-dice-three:before{content:"\f527"}.fa-dice-two:before{content:"\f528"}.fa-digg:before{content:"\f1a6"}.fa-digging:before{content:"\f85e"}.fa-digital-ocean:before{content:"\f391"}.fa-digital-tachograph:before{content:"\f566"}.fa-diploma:before{content:"\f5ea"}.fa-directions:before{content:"\f5eb"}.fa-disc-drive:before{content:"\f8b5"}.fa-discord:before{content:"\f392"}.fa-discourse:before{content:"\f393"}.fa-disease:before{content:"\f7fa"}.fa-divide:before{content:"\f529"}.fa-dizzy:before{content:"\f567"}.fa-dna:before{content:"\f471"}.fa-do-not-enter:before{content:"\f5ec"}.fa-dochub:before{content:"\f394"}.fa-docker:before{content:"\f395"}.fa-dog:before{content:"\f6d3"}.fa-dog-leashed:before{content:"\f6d4"}.fa-dollar-sign:before{content:"\f155"}.fa-dolly:before{content:"\f472"}.fa-dolly-empty:before{content:"\f473"}.fa-dolly-flatbed:before{content:"\f474"}.fa-dolly-flatbed-alt:before{content:"\f475"}.fa-dolly-flatbed-empty:before{content:"\f476"}.fa-donate:before{content:"\f4b9"}.fa-door-closed:before{content:"\f52a"}.fa-door-open:before{content:"\f52b"}.fa-dot-circle:before{content:"\f192"}.fa-dove:before{content:"\f4ba"}.fa-download:before{content:"\f019"}.fa-draft2digital:before{content:"\f396"}.fa-drafting-compass:before{content:"\f568"}.fa-dragon:before{content:"\f6d5"}.fa-draw-circle:before{content:"\f5ed"}.fa-draw-polygon:before{content:"\f5ee"}.fa-draw-square:before{content:"\f5ef"}.fa-dreidel:before{content:"\f792"}.fa-dribbble:before{content:"\f17d"}.fa-dribbble-square:before{content:"\f397"}.fa-drone:before{content:"\f85f"}.fa-drone-alt:before{content:"\f860"}.fa-dropbox:before{content:"\f16b"}.fa-drum:before{content:"\f569"}.fa-drum-steelpan:before{content:"\f56a"}.fa-drumstick:before{content:"\f6d6"}.fa-drumstick-bite:before{content:"\f6d7"}.fa-drupal:before{content:"\f1a9"}.fa-dryer:before{content:"\f861"}.fa-dryer-alt:before{content:"\f862"}.fa-duck:before{content:"\f6d8"}.fa-dumbbell:before{content:"\f44b"}.fa-dumpster:before{content:"\f793"}.fa-dumpster-fire:before{content:"\f794"}.fa-dungeon:before{content:"\f6d9"}.fa-dyalog:before{content:"\f399"}.fa-ear:before{content:"\f5f0"}.fa-ear-muffs:before{content:"\f795"}.fa-earlybirds:before{content:"\f39a"}.fa-ebay:before{content:"\f4f4"}.fa-eclipse:before{content:"\f749"}.fa-eclipse-alt:before{content:"\f74a"}.fa-edge:before{content:"\f282"}.fa-edit:before{content:"\f044"}.fa-egg:before{content:"\f7fb"}.fa-egg-fried:before{content:"\f7fc"}.fa-eject:before{content:"\f052"}.fa-elementor:before{content:"\f430"}.fa-elephant:before{content:"\f6da"}.fa-ellipsis-h:before{content:"\f141"}.fa-ellipsis-h-alt:before{content:"\f39b"}.fa-ellipsis-v:before{content:"\f142"}.fa-ellipsis-v-alt:before{content:"\f39c"}.fa-ello:before{content:"\f5f1"}.fa-ember:before{content:"\f423"}.fa-empire:before{content:"\f1d1"}.fa-empty-set:before{content:"\f656"}.fa-engine-warning:before{content:"\f5f2"}.fa-envelope:before{content:"\f0e0"}.fa-envelope-open:before{content:"\f2b6"}.fa-envelope-open-dollar:before{content:"\f657"}.fa-envelope-open-text:before{content:"\f658"}.fa-envelope-square:before{content:"\f199"}.fa-envira:before{content:"\f299"}.fa-equals:before{content:"\f52c"}.fa-eraser:before{content:"\f12d"}.fa-erlang:before{content:"\f39d"}.fa-ethereum:before{content:"\f42e"}.fa-ethernet:before{content:"\f796"}.fa-etsy:before{content:"\f2d7"}.fa-euro-sign:before{content:"\f153"}.fa-evernote:before{content:"\f839"}.fa-exchange:before{content:"\f0ec"}.fa-exchange-alt:before{content:"\f362"}.fa-exclamation:before{content:"\f12a"}.fa-exclamation-circle:before{content:"\f06a"}.fa-exclamation-square:before{content:"\f321"}.fa-exclamation-triangle:before{content:"\f071"}.fa-expand:before{content:"\f065"}.fa-expand-alt:before{content:"\f424"}.fa-expand-arrows:before{content:"\f31d"}.fa-expand-arrows-alt:before{content:"\f31e"}.fa-expand-wide:before{content:"\f320"}.fa-expeditedssl:before{content:"\f23e"}.fa-external-link:before{content:"\f08e"}.fa-external-link-alt:before{content:"\f35d"}.fa-external-link-square:before{content:"\f14c"}.fa-external-link-square-alt:before{content:"\f360"}.fa-eye:before{content:"\f06e"}.fa-eye-dropper:before{content:"\f1fb"}.fa-eye-evil:before{content:"\f6db"}.fa-eye-slash:before{content:"\f070"}.fa-facebook:before{content:"\f09a"}.fa-facebook-f:before{content:"\f39e"}.fa-facebook-messenger:before{content:"\f39f"}.fa-facebook-square:before{content:"\f082"}.fa-fan:before{content:"\f863"}.fa-fan-table:before{content:"\f904"}.fa-fantasy-flight-games:before{content:"\f6dc"}.fa-farm:before{content:"\f864"}.fa-fast-backward:before{content:"\f049"}.fa-fast-forward:before{content:"\f050"}.fa-faucet:before{content:"\f905"}.fa-faucet-drip:before{content:"\f906"}.fa-fax:before{content:"\f1ac"}.fa-feather:before{content:"\f52d"}.fa-feather-alt:before{content:"\f56b"}.fa-fedex:before{content:"\f797"}.fa-fedora:before{content:"\f798"}.fa-female:before{content:"\f182"}.fa-field-hockey:before{content:"\f44c"}.fa-fighter-jet:before{content:"\f0fb"}.fa-figma:before{content:"\f799"}.fa-file:before{content:"\f15b"}.fa-file-alt:before{content:"\f15c"}.fa-file-archive:before{content:"\f1c6"}.fa-file-audio:before{content:"\f1c7"}.fa-file-certificate:before{content:"\f5f3"}.fa-file-chart-line:before{content:"\f659"}.fa-file-chart-pie:before{content:"\f65a"}.fa-file-check:before{content:"\f316"}.fa-file-code:before{content:"\f1c9"}.fa-file-contract:before{content:"\f56c"}.fa-file-csv:before{content:"\f6dd"}.fa-file-download:before{content:"\f56d"}.fa-file-edit:before{content:"\f31c"}.fa-file-excel:before{content:"\f1c3"}.fa-file-exclamation:before{content:"\f31a"}.fa-file-export:before{content:"\f56e"}.fa-file-image:before{content:"\f1c5"}.fa-file-import:before{content:"\f56f"}.fa-file-invoice:before{content:"\f570"}.fa-file-invoice-dollar:before{content:"\f571"}.fa-file-medical:before{content:"\f477"}.fa-file-medical-alt:before{content:"\f478"}.fa-file-minus:before{content:"\f318"}.fa-file-music:before{content:"\f8b6"}.fa-file-pdf:before{content:"\f1c1"}.fa-file-plus:before{content:"\f319"}.fa-file-powerpoint:before{content:"\f1c4"}.fa-file-prescription:before{content:"\f572"}.fa-file-search:before{content:"\f865"}.fa-file-signature:before{content:"\f573"}.fa-file-spreadsheet:before{content:"\f65b"}.fa-file-times:before{content:"\f317"}.fa-file-upload:before{content:"\f574"}.fa-file-user:before{content:"\f65c"}.fa-file-video:before{content:"\f1c8"}.fa-file-word:before{content:"\f1c2"}.fa-files-medical:before{content:"\f7fd"}.fa-fill:before{content:"\f575"}.fa-fill-drip:before{content:"\f576"}.fa-film:before{content:"\f008"}.fa-film-alt:before{content:"\f3a0"}.fa-film-canister:before{content:"\f8b7"}.fa-filter:before{content:"\f0b0"}.fa-fingerprint:before{content:"\f577"}.fa-fire:before{content:"\f06d"}.fa-fire-alt:before{content:"\f7e4"}.fa-fire-extinguisher:before{content:"\f134"}.fa-fire-smoke:before{content:"\f74b"}.fa-firefox:before{content:"\f269"}.fa-firefox-browser:before{content:"\f907"}.fa-fireplace:before{content:"\f79a"}.fa-first-aid:before{content:"\f479"}.fa-first-order:before{content:"\f2b0"}.fa-first-order-alt:before{content:"\f50a"}.fa-firstdraft:before{content:"\f3a1"}.fa-fish:before{content:"\f578"}.fa-fish-cooked:before{content:"\f7fe"}.fa-fist-raised:before{content:"\f6de"}.fa-flag:before{content:"\f024"}.fa-flag-alt:before{content:"\f74c"}.fa-flag-checkered:before{content:"\f11e"}.fa-flag-usa:before{content:"\f74d"}.fa-flame:before{content:"\f6df"}.fa-flashlight:before{content:"\f8b8"}.fa-flask:before{content:"\f0c3"}.fa-flask-poison:before{content:"\f6e0"}.fa-flask-potion:before{content:"\f6e1"}.fa-flickr:before{content:"\f16e"}.fa-flipboard:before{content:"\f44d"}.fa-flower:before{content:"\f7ff"}.fa-flower-daffodil:before{content:"\f800"}.fa-flower-tulip:before{content:"\f801"}.fa-flushed:before{content:"\f579"}.fa-flute:before{content:"\f8b9"}.fa-flux-capacitor:before{content:"\f8ba"}.fa-fly:before{content:"\f417"}.fa-fog:before{content:"\f74e"}.fa-folder:before{content:"\f07b"}.fa-folder-minus:before{content:"\f65d"}.fa-folder-open:before{content:"\f07c"}.fa-folder-plus:before{content:"\f65e"}.fa-folder-times:before{content:"\f65f"}.fa-folder-tree:before{content:"\f802"}.fa-folders:before{content:"\f660"}.fa-font:before{content:"\f031"}.fa-font-awesome:before{content:"\f2b4"}.fa-font-awesome-alt:before{content:"\f35c"}.fa-font-awesome-flag:before{content:"\f425"}.fa-font-awesome-logo-full:before{content:"\f4e6"}.fa-font-case:before{content:"\f866"}.fa-fonticons:before{content:"\f280"}.fa-fonticons-fi:before{content:"\f3a2"}.fa-football-ball:before{content:"\f44e"}.fa-football-helmet:before{content:"\f44f"}.fa-forklift:before{content:"\f47a"}.fa-fort-awesome:before{content:"\f286"}.fa-fort-awesome-alt:before{content:"\f3a3"}.fa-forumbee:before{content:"\f211"}.fa-forward:before{content:"\f04e"}.fa-foursquare:before{content:"\f180"}.fa-fragile:before{content:"\f4bb"}.fa-free-code-camp:before{content:"\f2c5"}.fa-freebsd:before{content:"\f3a4"}.fa-french-fries:before{content:"\f803"}.fa-frog:before{content:"\f52e"}.fa-frosty-head:before{content:"\f79b"}.fa-frown:before{content:"\f119"}.fa-frown-open:before{content:"\f57a"}.fa-fulcrum:before{content:"\f50b"}.fa-function:before{content:"\f661"}.fa-funnel-dollar:before{content:"\f662"}.fa-futbol:before{content:"\f1e3"}.fa-galactic-republic:before{content:"\f50c"}.fa-galactic-senate:before{content:"\f50d"}.fa-galaxy:before{content:"\f908"}.fa-game-board:before{content:"\f867"}.fa-game-board-alt:before{content:"\f868"}.fa-game-console-handheld:before{content:"\f8bb"}.fa-gamepad:before{content:"\f11b"}.fa-gamepad-alt:before{content:"\f8bc"}.fa-garage:before{content:"\f909"}.fa-garage-car:before{content:"\f90a"}.fa-garage-open:before{content:"\f90b"}.fa-gas-pump:before{content:"\f52f"}.fa-gas-pump-slash:before{content:"\f5f4"}.fa-gavel:before{content:"\f0e3"}.fa-gem:before{content:"\f3a5"}.fa-genderless:before{content:"\f22d"}.fa-get-pocket:before{content:"\f265"}.fa-gg:before{content:"\f260"}.fa-gg-circle:before{content:"\f261"}.fa-ghost:before{content:"\f6e2"}.fa-gift:before{content:"\f06b"}.fa-gift-card:before{content:"\f663"}.fa-gifts:before{content:"\f79c"}.fa-gingerbread-man:before{content:"\f79d"}.fa-git:before{content:"\f1d3"}.fa-git-alt:before{content:"\f841"}.fa-git-square:before{content:"\f1d2"}.fa-github:before{content:"\f09b"}.fa-github-alt:before{content:"\f113"}.fa-github-square:before{content:"\f092"}.fa-gitkraken:before{content:"\f3a6"}.fa-gitlab:before{content:"\f296"}.fa-gitter:before{content:"\f426"}.fa-glass:before{content:"\f804"}.fa-glass-champagne:before{content:"\f79e"}.fa-glass-cheers:before{content:"\f79f"}.fa-glass-citrus:before{content:"\f869"}.fa-glass-martini:before{content:"\f000"}.fa-glass-martini-alt:before{content:"\f57b"}.fa-glass-whiskey:before{content:"\f7a0"}.fa-glass-whiskey-rocks:before{content:"\f7a1"}.fa-glasses:before{content:"\f530"}.fa-glasses-alt:before{content:"\f5f5"}.fa-glide:before{content:"\f2a5"}.fa-glide-g:before{content:"\f2a6"}.fa-globe:before{content:"\f0ac"}.fa-globe-africa:before{content:"\f57c"}.fa-globe-americas:before{content:"\f57d"}.fa-globe-asia:before{content:"\f57e"}.fa-globe-europe:before{content:"\f7a2"}.fa-globe-snow:before{content:"\f7a3"}.fa-globe-stand:before{content:"\f5f6"}.fa-gofore:before{content:"\f3a7"}.fa-golf-ball:before{content:"\f450"}.fa-golf-club:before{content:"\f451"}.fa-goodreads:before{content:"\f3a8"}.fa-goodreads-g:before{content:"\f3a9"}.fa-google:before{content:"\f1a0"}.fa-google-drive:before{content:"\f3aa"}.fa-google-play:before{content:"\f3ab"}.fa-google-plus:before{content:"\f2b3"}.fa-google-plus-g:before{content:"\f0d5"}.fa-google-plus-square:before{content:"\f0d4"}.fa-google-wallet:before{content:"\f1ee"}.fa-gopuram:before{content:"\f664"}.fa-graduation-cap:before{content:"\f19d"}.fa-gramophone:before{content:"\f8bd"}.fa-gratipay:before{content:"\f184"}.fa-grav:before{content:"\f2d6"}.fa-greater-than:before{content:"\f531"}.fa-greater-than-equal:before{content:"\f532"}.fa-grimace:before{content:"\f57f"}.fa-grin:before{content:"\f580"}.fa-grin-alt:before{content:"\f581"}.fa-grin-beam:before{content:"\f582"}.fa-grin-beam-sweat:before{content:"\f583"}.fa-grin-hearts:before{content:"\f584"}.fa-grin-squint:before{content:"\f585"}.fa-grin-squint-tears:before{content:"\f586"}.fa-grin-stars:before{content:"\f587"}.fa-grin-tears:before{content:"\f588"}.fa-grin-tongue:before{content:"\f589"}.fa-grin-tongue-squint:before{content:"\f58a"}.fa-grin-tongue-wink:before{content:"\f58b"}.fa-grin-wink:before{content:"\f58c"}.fa-grip-horizontal:before{content:"\f58d"}.fa-grip-lines:before{content:"\f7a4"}.fa-grip-lines-vertical:before{content:"\f7a5"}.fa-grip-vertical:before{content:"\f58e"}.fa-gripfire:before{content:"\f3ac"}.fa-grunt:before{content:"\f3ad"}.fa-guitar:before{content:"\f7a6"}.fa-guitar-electric:before{content:"\f8be"}.fa-guitars:before{content:"\f8bf"}.fa-gulp:before{content:"\f3ae"}.fa-h-square:before{content:"\f0fd"}.fa-h1:before{content:"\f313"}.fa-h2:before{content:"\f314"}.fa-h3:before{content:"\f315"}.fa-h4:before{content:"\f86a"}.fa-hacker-news:before{content:"\f1d4"}.fa-hacker-news-square:before{content:"\f3af"}.fa-hackerrank:before{content:"\f5f7"}.fa-hamburger:before{content:"\f805"}.fa-hammer:before{content:"\f6e3"}.fa-hammer-war:before{content:"\f6e4"}.fa-hamsa:before{content:"\f665"}.fa-hand-heart:before{content:"\f4bc"}.fa-hand-holding:before{content:"\f4bd"}.fa-hand-holding-box:before{content:"\f47b"}.fa-hand-holding-heart:before{content:"\f4be"}.fa-hand-holding-magic:before{content:"\f6e5"}.fa-hand-holding-seedling:before{content:"\f4bf"}.fa-hand-holding-usd:before{content:"\f4c0"}.fa-hand-holding-water:before{content:"\f4c1"}.fa-hand-lizard:before{content:"\f258"}.fa-hand-middle-finger:before{content:"\f806"}.fa-hand-paper:before{content:"\f256"}.fa-hand-peace:before{content:"\f25b"}.fa-hand-point-down:before{content:"\f0a7"}.fa-hand-point-left:before{content:"\f0a5"}.fa-hand-point-right:before{content:"\f0a4"}.fa-hand-point-up:before{content:"\f0a6"}.fa-hand-pointer:before{content:"\f25a"}.fa-hand-receiving:before{content:"\f47c"}.fa-hand-rock:before{content:"\f255"}.fa-hand-scissors:before{content:"\f257"}.fa-hand-spock:before{content:"\f259"}.fa-hands:before{content:"\f4c2"}.fa-hands-heart:before{content:"\f4c3"}.fa-hands-helping:before{content:"\f4c4"}.fa-hands-usd:before{content:"\f4c5"}.fa-handshake:before{content:"\f2b5"}.fa-handshake-alt:before{content:"\f4c6"}.fa-hanukiah:before{content:"\f6e6"}.fa-hard-hat:before{content:"\f807"}.fa-hashtag:before{content:"\f292"}.fa-hat-chef:before{content:"\f86b"}.fa-hat-cowboy:before{content:"\f8c0"}.fa-hat-cowboy-side:before{content:"\f8c1"}.fa-hat-santa:before{content:"\f7a7"}.fa-hat-winter:before{content:"\f7a8"}.fa-hat-witch:before{content:"\f6e7"}.fa-hat-wizard:before{content:"\f6e8"}.fa-hdd:before{content:"\f0a0"}.fa-head-side:before{content:"\f6e9"}.fa-head-side-brain:before{content:"\f808"}.fa-head-side-headphones:before{content:"\f8c2"}.fa-head-side-medical:before{content:"\f809"}.fa-head-vr:before{content:"\f6ea"}.fa-heading:before{content:"\f1dc"}.fa-headphones:before{content:"\f025"}.fa-headphones-alt:before{content:"\f58f"}.fa-headset:before{content:"\f590"}.fa-heart:before{content:"\f004"}.fa-heart-broken:before{content:"\f7a9"}.fa-heart-circle:before{content:"\f4c7"}.fa-heart-rate:before{content:"\f5f8"}.fa-heart-square:before{content:"\f4c8"}.fa-heartbeat:before{content:"\f21e"}.fa-heat:before{content:"\f90c"}.fa-helicopter:before{content:"\f533"}.fa-helmet-battle:before{content:"\f6eb"}.fa-hexagon:before{content:"\f312"}.fa-highlighter:before{content:"\f591"}.fa-hiking:before{content:"\f6ec"}.fa-hippo:before{content:"\f6ed"}.fa-hips:before{content:"\f452"}.fa-hire-a-helper:before{content:"\f3b0"}.fa-history:before{content:"\f1da"}.fa-hockey-mask:before{content:"\f6ee"}.fa-hockey-puck:before{content:"\f453"}.fa-hockey-sticks:before{content:"\f454"}.fa-holly-berry:before{content:"\f7aa"}.fa-home:before{content:"\f015"}.fa-home-alt:before{content:"\f80a"}.fa-home-heart:before{content:"\f4c9"}.fa-home-lg:before{content:"\f80b"}.fa-home-lg-alt:before{content:"\f80c"}.fa-hood-cloak:before{content:"\f6ef"}.fa-hooli:before{content:"\f427"}.fa-horizontal-rule:before{content:"\f86c"}.fa-hornbill:before{content:"\f592"}.fa-horse:before{content:"\f6f0"}.fa-horse-head:before{content:"\f7ab"}.fa-horse-saddle:before{content:"\f8c3"}.fa-hospital:before{content:"\f0f8"}.fa-hospital-alt:before{content:"\f47d"}.fa-hospital-symbol:before{content:"\f47e"}.fa-hospital-user:before{content:"\f80d"}.fa-hospitals:before{content:"\f80e"}.fa-hot-tub:before{content:"\f593"}.fa-hotdog:before{content:"\f80f"}.fa-hotel:before{content:"\f594"}.fa-hotjar:before{content:"\f3b1"}.fa-hourglass:before{content:"\f254"}.fa-hourglass-end:before{content:"\f253"}.fa-hourglass-half:before{content:"\f252"}.fa-hourglass-start:before{content:"\f251"}.fa-house:before{content:"\f90d"}.fa-house-damage:before{content:"\f6f1"}.fa-house-day:before{content:"\f90e"}.fa-house-flood:before{content:"\f74f"}.fa-house-leave:before{content:"\f90f"}.fa-house-night:before{content:"\f910"}.fa-house-return:before{content:"\f911"}.fa-house-signal:before{content:"\f912"}.fa-houzz:before{content:"\f27c"}.fa-hryvnia:before{content:"\f6f2"}.fa-html5:before{content:"\f13b"}.fa-hubspot:before{content:"\f3b2"}.fa-humidity:before{content:"\f750"}.fa-hurricane:before{content:"\f751"}.fa-i-cursor:before{content:"\f246"}.fa-ice-cream:before{content:"\f810"}.fa-ice-skate:before{content:"\f7ac"}.fa-icicles:before{content:"\f7ad"}.fa-icons:before{content:"\f86d"}.fa-icons-alt:before{content:"\f86e"}.fa-id-badge:before{content:"\f2c1"}.fa-id-card:before{content:"\f2c2"}.fa-id-card-alt:before{content:"\f47f"}.fa-ideal:before{content:"\f913"}.fa-igloo:before{content:"\f7ae"}.fa-image:before{content:"\f03e"}.fa-image-polaroid:before{content:"\f8c4"}.fa-images:before{content:"\f302"}.fa-imdb:before{content:"\f2d8"}.fa-inbox:before{content:"\f01c"}.fa-inbox-in:before{content:"\f310"}.fa-inbox-out:before{content:"\f311"}.fa-indent:before{content:"\f03c"}.fa-industry:before{content:"\f275"}.fa-industry-alt:before{content:"\f3b3"}.fa-infinity:before{content:"\f534"}.fa-info:before{content:"\f129"}.fa-info-circle:before{content:"\f05a"}.fa-info-square:before{content:"\f30f"}.fa-inhaler:before{content:"\f5f9"}.fa-instagram:before{content:"\f16d"}.fa-integral:before{content:"\f667"}.fa-intercom:before{content:"\f7af"}.fa-internet-explorer:before{content:"\f26b"}.fa-intersection:before{content:"\f668"}.fa-inventory:before{content:"\f480"}.fa-invision:before{content:"\f7b0"}.fa-ioxhost:before{content:"\f208"}.fa-island-tropical:before{content:"\f811"}.fa-italic:before{content:"\f033"}.fa-itch-io:before{content:"\f83a"}.fa-itunes:before{content:"\f3b4"}.fa-itunes-note:before{content:"\f3b5"}.fa-jack-o-lantern:before{content:"\f30e"}.fa-java:before{content:"\f4e4"}.fa-jedi:before{content:"\f669"}.fa-jedi-order:before{content:"\f50e"}.fa-jenkins:before{content:"\f3b6"}.fa-jira:before{content:"\f7b1"}.fa-joget:before{content:"\f3b7"}.fa-joint:before{content:"\f595"}.fa-joomla:before{content:"\f1aa"}.fa-journal-whills:before{content:"\f66a"}.fa-joystick:before{content:"\f8c5"}.fa-js:before{content:"\f3b8"}.fa-js-square:before{content:"\f3b9"}.fa-jsfiddle:before{content:"\f1cc"}.fa-jug:before{content:"\f8c6"}.fa-kaaba:before{content:"\f66b"}.fa-kaggle:before{content:"\f5fa"}.fa-kazoo:before{content:"\f8c7"}.fa-kerning:before{content:"\f86f"}.fa-key:before{content:"\f084"}.fa-key-skeleton:before{content:"\f6f3"}.fa-keybase:before{content:"\f4f5"}.fa-keyboard:before{content:"\f11c"}.fa-keycdn:before{content:"\f3ba"}.fa-keynote:before{content:"\f66c"}.fa-khanda:before{content:"\f66d"}.fa-kickstarter:before{content:"\f3bb"}.fa-kickstarter-k:before{content:"\f3bc"}.fa-kidneys:before{content:"\f5fb"}.fa-kiss:before{content:"\f596"}.fa-kiss-beam:before{content:"\f597"}.fa-kiss-wink-heart:before{content:"\f598"}.fa-kite:before{content:"\f6f4"}.fa-kiwi-bird:before{content:"\f535"}.fa-knife-kitchen:before{content:"\f6f5"}.fa-korvue:before{content:"\f42f"}.fa-lambda:before{content:"\f66e"}.fa-lamp:before{content:"\f4ca"}.fa-lamp-desk:before{content:"\f914"}.fa-lamp-floor:before{content:"\f915"}.fa-landmark:before{content:"\f66f"}.fa-landmark-alt:before{content:"\f752"}.fa-language:before{content:"\f1ab"}.fa-laptop:before{content:"\f109"}.fa-laptop-code:before{content:"\f5fc"}.fa-laptop-medical:before{content:"\f812"}.fa-laravel:before{content:"\f3bd"}.fa-lasso:before{content:"\f8c8"}.fa-lastfm:before{content:"\f202"}.fa-lastfm-square:before{content:"\f203"}.fa-laugh:before{content:"\f599"}.fa-laugh-beam:before{content:"\f59a"}.fa-laugh-squint:before{content:"\f59b"}.fa-laugh-wink:before{content:"\f59c"}.fa-layer-group:before{content:"\f5fd"}.fa-layer-minus:before{content:"\f5fe"}.fa-layer-plus:before{content:"\f5ff"}.fa-leaf:before{content:"\f06c"}.fa-leaf-heart:before{content:"\f4cb"}.fa-leaf-maple:before{content:"\f6f6"}.fa-leaf-oak:before{content:"\f6f7"}.fa-leanpub:before{content:"\f212"}.fa-lemon:before{content:"\f094"}.fa-less:before{content:"\f41d"}.fa-less-than:before{content:"\f536"}.fa-less-than-equal:before{content:"\f537"}.fa-level-down:before{content:"\f149"}.fa-level-down-alt:before{content:"\f3be"}.fa-level-up:before{content:"\f148"}.fa-level-up-alt:before{content:"\f3bf"}.fa-life-ring:before{content:"\f1cd"}.fa-light-ceiling:before{content:"\f916"}.fa-light-switch:before{content:"\f917"}.fa-light-switch-off:before{content:"\f918"}.fa-light-switch-on:before{content:"\f919"}.fa-lightbulb:before{content:"\f0eb"}.fa-lightbulb-dollar:before{content:"\f670"}.fa-lightbulb-exclamation:before{content:"\f671"}.fa-lightbulb-on:before{content:"\f672"}.fa-lightbulb-slash:before{content:"\f673"}.fa-lights-holiday:before{content:"\f7b2"}.fa-line:before{content:"\f3c0"}.fa-line-columns:before{content:"\f870"}.fa-line-height:before{content:"\f871"}.fa-link:before{content:"\f0c1"}.fa-linkedin:before{content:"\f08c"}.fa-linkedin-in:before{content:"\f0e1"}.fa-linode:before{content:"\f2b8"}.fa-linux:before{content:"\f17c"}.fa-lips:before{content:"\f600"}.fa-lira-sign:before{content:"\f195"}.fa-list:before{content:"\f03a"}.fa-list-alt:before{content:"\f022"}.fa-list-music:before{content:"\f8c9"}.fa-list-ol:before{content:"\f0cb"}.fa-list-ul:before{content:"\f0ca"}.fa-location:before{content:"\f601"}.fa-location-arrow:before{content:"\f124"}.fa-location-circle:before{content:"\f602"}.fa-location-slash:before{content:"\f603"}.fa-lock:before{content:"\f023"}.fa-lock-alt:before{content:"\f30d"}.fa-lock-open:before{content:"\f3c1"}.fa-lock-open-alt:before{content:"\f3c2"}.fa-long-arrow-alt-down:before{content:"\f309"}.fa-long-arrow-alt-left:before{content:"\f30a"}.fa-long-arrow-alt-right:before{content:"\f30b"}.fa-long-arrow-alt-up:before{content:"\f30c"}.fa-long-arrow-down:before{content:"\f175"}.fa-long-arrow-left:before{content:"\f177"}.fa-long-arrow-right:before{content:"\f178"}.fa-long-arrow-up:before{content:"\f176"}.fa-loveseat:before{content:"\f4cc"}.fa-low-vision:before{content:"\f2a8"}.fa-luchador:before{content:"\f455"}.fa-luggage-cart:before{content:"\f59d"}.fa-lungs:before{content:"\f604"}.fa-lyft:before{content:"\f3c3"}.fa-mace:before{content:"\f6f8"}.fa-magento:before{content:"\f3c4"}.fa-magic:before{content:"\f0d0"}.fa-magnet:before{content:"\f076"}.fa-mail-bulk:before{content:"\f674"}.fa-mailbox:before{content:"\f813"}.fa-mailchimp:before{content:"\f59e"}.fa-male:before{content:"\f183"}.fa-mandalorian:before{content:"\f50f"}.fa-mandolin:before{content:"\f6f9"}.fa-map:before{content:"\f279"}.fa-map-marked:before{content:"\f59f"}.fa-map-marked-alt:before{content:"\f5a0"}.fa-map-marker:before{content:"\f041"}.fa-map-marker-alt:before{content:"\f3c5"}.fa-map-marker-alt-slash:before{content:"\f605"}.fa-map-marker-check:before{content:"\f606"}.fa-map-marker-edit:before{content:"\f607"}.fa-map-marker-exclamation:before{content:"\f608"}.fa-map-marker-minus:before{content:"\f609"}.fa-map-marker-plus:before{content:"\f60a"}.fa-map-marker-question:before{content:"\f60b"}.fa-map-marker-slash:before{content:"\f60c"}.fa-map-marker-smile:before{content:"\f60d"}.fa-map-marker-times:before{content:"\f60e"}.fa-map-pin:before{content:"\f276"}.fa-map-signs:before{content:"\f277"}.fa-markdown:before{content:"\f60f"}.fa-marker:before{content:"\f5a1"}.fa-mars:before{content:"\f222"}.fa-mars-double:before{content:"\f227"}.fa-mars-stroke:before{content:"\f229"}.fa-mars-stroke-h:before{content:"\f22b"}.fa-mars-stroke-v:before{content:"\f22a"}.fa-mask:before{content:"\f6fa"}.fa-mastodon:before{content:"\f4f6"}.fa-maxcdn:before{content:"\f136"}.fa-mdb:before{content:"\f8ca"}.fa-meat:before{content:"\f814"}.fa-medal:before{content:"\f5a2"}.fa-medapps:before{content:"\f3c6"}.fa-medium:before{content:"\f23a"}.fa-medium-m:before{content:"\f3c7"}.fa-medkit:before{content:"\f0fa"}.fa-medrt:before{content:"\f3c8"}.fa-meetup:before{content:"\f2e0"}.fa-megaphone:before{content:"\f675"}.fa-megaport:before{content:"\f5a3"}.fa-meh:before{content:"\f11a"}.fa-meh-blank:before{content:"\f5a4"}.fa-meh-rolling-eyes:before{content:"\f5a5"}.fa-memory:before{content:"\f538"}.fa-mendeley:before{content:"\f7b3"}.fa-menorah:before{content:"\f676"}.fa-mercury:before{content:"\f223"}.fa-meteor:before{content:"\f753"}.fa-microblog:before{content:"\f91a"}.fa-microchip:before{content:"\f2db"}.fa-microphone:before{content:"\f130"}.fa-microphone-alt:before{content:"\f3c9"}.fa-microphone-alt-slash:before{content:"\f539"}.fa-microphone-slash:before{content:"\f131"}.fa-microphone-stand:before{content:"\f8cb"}.fa-microscope:before{content:"\f610"}.fa-microsoft:before{content:"\f3ca"}.fa-microwave:before{content:"\f91b"}.fa-mind-share:before{content:"\f677"}.fa-minus:before{content:"\f068"}.fa-minus-circle:before{content:"\f056"}.fa-minus-hexagon:before{content:"\f307"}.fa-minus-octagon:before{content:"\f308"}.fa-minus-square:before{content:"\f146"}.fa-mistletoe:before{content:"\f7b4"}.fa-mitten:before{content:"\f7b5"}.fa-mix:before{content:"\f3cb"}.fa-mixcloud:before{content:"\f289"}.fa-mizuni:before{content:"\f3cc"}.fa-mobile:before{content:"\f10b"}.fa-mobile-alt:before{content:"\f3cd"}.fa-mobile-android:before{content:"\f3ce"}.fa-mobile-android-alt:before{content:"\f3cf"}.fa-modx:before{content:"\f285"}.fa-monero:before{content:"\f3d0"}.fa-money-bill:before{content:"\f0d6"}.fa-money-bill-alt:before{content:"\f3d1"}.fa-money-bill-wave:before{content:"\f53a"}.fa-money-bill-wave-alt:before{content:"\f53b"}.fa-money-check:before{content:"\f53c"}.fa-money-check-alt:before{content:"\f53d"}.fa-money-check-edit:before{content:"\f872"}.fa-money-check-edit-alt:before{content:"\f873"}.fa-monitor-heart-rate:before{content:"\f611"}.fa-monkey:before{content:"\f6fb"}.fa-monument:before{content:"\f5a6"}.fa-moon:before{content:"\f186"}.fa-moon-cloud:before{content:"\f754"}.fa-moon-stars:before{content:"\f755"}.fa-mortar-pestle:before{content:"\f5a7"}.fa-mosque:before{content:"\f678"}.fa-motorcycle:before{content:"\f21c"}.fa-mountain:before{content:"\f6fc"}.fa-mountains:before{content:"\f6fd"}.fa-mouse:before{content:"\f8cc"}.fa-mouse-alt:before{content:"\f8cd"}.fa-mouse-pointer:before{content:"\f245"}.fa-mp3-player:before{content:"\f8ce"}.fa-mug:before{content:"\f874"}.fa-mug-hot:before{content:"\f7b6"}.fa-mug-marshmallows:before{content:"\f7b7"}.fa-mug-tea:before{content:"\f875"}.fa-music:before{content:"\f001"}.fa-music-alt:before{content:"\f8cf"}.fa-music-alt-slash:before{content:"\f8d0"}.fa-music-slash:before{content:"\f8d1"}.fa-napster:before{content:"\f3d2"}.fa-narwhal:before{content:"\f6fe"}.fa-neos:before{content:"\f612"}.fa-network-wired:before{content:"\f6ff"}.fa-neuter:before{content:"\f22c"}.fa-newspaper:before{content:"\f1ea"}.fa-nimblr:before{content:"\f5a8"}.fa-node:before{content:"\f419"}.fa-node-js:before{content:"\f3d3"}.fa-not-equal:before{content:"\f53e"}.fa-notes-medical:before{content:"\f481"}.fa-npm:before{content:"\f3d4"}.fa-ns8:before{content:"\f3d5"}.fa-nutritionix:before{content:"\f3d6"}.fa-object-group:before{content:"\f247"}.fa-object-ungroup:before{content:"\f248"}.fa-octagon:before{content:"\f306"}.fa-odnoklassniki:before{content:"\f263"}.fa-odnoklassniki-square:before{content:"\f264"}.fa-oil-can:before{content:"\f613"}.fa-oil-temp:before{content:"\f614"}.fa-old-republic:before{content:"\f510"}.fa-om:before{content:"\f679"}.fa-omega:before{content:"\f67a"}.fa-opencart:before{content:"\f23d"}.fa-openid:before{content:"\f19b"}.fa-opera:before{content:"\f26a"}.fa-optin-monster:before{content:"\f23c"}.fa-orcid:before{content:"\f8d2"}.fa-ornament:before{content:"\f7b8"}.fa-osi:before{content:"\f41a"}.fa-otter:before{content:"\f700"}.fa-outdent:before{content:"\f03b"}.fa-outlet:before{content:"\f91c"}.fa-oven:before{content:"\f91d"}.fa-overline:before{content:"\f876"}.fa-page-break:before{content:"\f877"}.fa-page4:before{content:"\f3d7"}.fa-pagelines:before{content:"\f18c"}.fa-pager:before{content:"\f815"}.fa-paint-brush:before{content:"\f1fc"}.fa-paint-brush-alt:before{content:"\f5a9"}.fa-paint-roller:before{content:"\f5aa"}.fa-palette:before{content:"\f53f"}.fa-palfed:before{content:"\f3d8"}.fa-pallet:before{content:"\f482"}.fa-pallet-alt:before{content:"\f483"}.fa-paper-plane:before{content:"\f1d8"}.fa-paperclip:before{content:"\f0c6"}.fa-parachute-box:before{content:"\f4cd"}.fa-paragraph:before{content:"\f1dd"}.fa-paragraph-rtl:before{content:"\f878"}.fa-parking:before{content:"\f540"}.fa-parking-circle:before{content:"\f615"}.fa-parking-circle-slash:before{content:"\f616"}.fa-parking-slash:before{content:"\f617"}.fa-passport:before{content:"\f5ab"}.fa-pastafarianism:before{content:"\f67b"}.fa-paste:before{content:"\f0ea"}.fa-patreon:before{content:"\f3d9"}.fa-pause:before{content:"\f04c"}.fa-pause-circle:before{content:"\f28b"}.fa-paw:before{content:"\f1b0"}.fa-paw-alt:before{content:"\f701"}.fa-paw-claws:before{content:"\f702"}.fa-paypal:before{content:"\f1ed"}.fa-peace:before{content:"\f67c"}.fa-pegasus:before{content:"\f703"}.fa-pen:before{content:"\f304"}.fa-pen-alt:before{content:"\f305"}.fa-pen-fancy:before{content:"\f5ac"}.fa-pen-nib:before{content:"\f5ad"}.fa-pen-square:before{content:"\f14b"}.fa-pencil:before{content:"\f040"}.fa-pencil-alt:before{content:"\f303"}.fa-pencil-paintbrush:before{content:"\f618"}.fa-pencil-ruler:before{content:"\f5ae"}.fa-pennant:before{content:"\f456"}.fa-penny-arcade:before{content:"\f704"}.fa-people-carry:before{content:"\f4ce"}.fa-pepper-hot:before{content:"\f816"}.fa-percent:before{content:"\f295"}.fa-percentage:before{content:"\f541"}.fa-periscope:before{content:"\f3da"}.fa-person-booth:before{content:"\f756"}.fa-person-carry:before{content:"\f4cf"}.fa-person-dolly:before{content:"\f4d0"}.fa-person-dolly-empty:before{content:"\f4d1"}.fa-person-sign:before{content:"\f757"}.fa-phabricator:before{content:"\f3db"}.fa-phoenix-framework:before{content:"\f3dc"}.fa-phoenix-squadron:before{content:"\f511"}.fa-phone:before{content:"\f095"}.fa-phone-alt:before{content:"\f879"}.fa-phone-laptop:before{content:"\f87a"}.fa-phone-office:before{content:"\f67d"}.fa-phone-plus:before{content:"\f4d2"}.fa-phone-rotary:before{content:"\f8d3"}.fa-phone-slash:before{content:"\f3dd"}.fa-phone-square:before{content:"\f098"}.fa-phone-square-alt:before{content:"\f87b"}.fa-phone-volume:before{content:"\f2a0"}.fa-photo-video:before{content:"\f87c"}.fa-php:before{content:"\f457"}.fa-pi:before{content:"\f67e"}.fa-piano:before{content:"\f8d4"}.fa-piano-keyboard:before{content:"\f8d5"}.fa-pie:before{content:"\f705"}.fa-pied-piper:before{content:"\f2ae"}.fa-pied-piper-alt:before{content:"\f1a8"}.fa-pied-piper-hat:before{content:"\f4e5"}.fa-pied-piper-pp:before{content:"\f1a7"}.fa-pied-piper-square:before{content:"\f91e"}.fa-pig:before{content:"\f706"}.fa-piggy-bank:before{content:"\f4d3"}.fa-pills:before{content:"\f484"}.fa-pinterest:before{content:"\f0d2"}.fa-pinterest-p:before{content:"\f231"}.fa-pinterest-square:before{content:"\f0d3"}.fa-pizza:before{content:"\f817"}.fa-pizza-slice:before{content:"\f818"}.fa-place-of-worship:before{content:"\f67f"}.fa-plane:before{content:"\f072"}.fa-plane-alt:before{content:"\f3de"}.fa-plane-arrival:before{content:"\f5af"}.fa-plane-departure:before{content:"\f5b0"}.fa-planet-moon:before{content:"\f91f"}.fa-planet-ringed:before{content:"\f920"}.fa-play:before{content:"\f04b"}.fa-play-circle:before{content:"\f144"}.fa-playstation:before{content:"\f3df"}.fa-plug:before{content:"\f1e6"}.fa-plus:before{content:"\f067"}.fa-plus-circle:before{content:"\f055"}.fa-plus-hexagon:before{content:"\f300"}.fa-plus-octagon:before{content:"\f301"}.fa-plus-square:before{content:"\f0fe"}.fa-podcast:before{content:"\f2ce"}.fa-podium:before{content:"\f680"}.fa-podium-star:before{content:"\f758"}.fa-police-box:before{content:"\f921"}.fa-poll:before{content:"\f681"}.fa-poll-h:before{content:"\f682"}.fa-poll-people:before{content:"\f759"}.fa-poo:before{content:"\f2fe"}.fa-poo-storm:before{content:"\f75a"}.fa-poop:before{content:"\f619"}.fa-popcorn:before{content:"\f819"}.fa-portal-enter:before{content:"\f922"}.fa-portal-exit:before{content:"\f923"}.fa-portrait:before{content:"\f3e0"}.fa-pound-sign:before{content:"\f154"}.fa-power-off:before{content:"\f011"}.fa-pray:before{content:"\f683"}.fa-praying-hands:before{content:"\f684"}.fa-prescription:before{content:"\f5b1"}.fa-prescription-bottle:before{content:"\f485"}.fa-prescription-bottle-alt:before{content:"\f486"}.fa-presentation:before{content:"\f685"}.fa-print:before{content:"\f02f"}.fa-print-search:before{content:"\f81a"}.fa-print-slash:before{content:"\f686"}.fa-procedures:before{content:"\f487"}.fa-product-hunt:before{content:"\f288"}.fa-project-diagram:before{content:"\f542"}.fa-projector:before{content:"\f8d6"}.fa-pumpkin:before{content:"\f707"}.fa-pushed:before{content:"\f3e1"}.fa-puzzle-piece:before{content:"\f12e"}.fa-python:before{content:"\f3e2"}.fa-qq:before{content:"\f1d6"}.fa-qrcode:before{content:"\f029"}.fa-question:before{content:"\f128"}.fa-question-circle:before{content:"\f059"}.fa-question-square:before{content:"\f2fd"}.fa-quidditch:before{content:"\f458"}.fa-quinscape:before{content:"\f459"}.fa-quora:before{content:"\f2c4"}.fa-quote-left:before{content:"\f10d"}.fa-quote-right:before{content:"\f10e"}.fa-quran:before{content:"\f687"}.fa-r-project:before{content:"\f4f7"}.fa-rabbit:before{content:"\f708"}.fa-rabbit-fast:before{content:"\f709"}.fa-racquet:before{content:"\f45a"}.fa-radar:before{content:"\f924"}.fa-radiation:before{content:"\f7b9"}.fa-radiation-alt:before{content:"\f7ba"}.fa-radio:before{content:"\f8d7"}.fa-radio-alt:before{content:"\f8d8"}.fa-rainbow:before{content:"\f75b"}.fa-raindrops:before{content:"\f75c"}.fa-ram:before{content:"\f70a"}.fa-ramp-loading:before{content:"\f4d4"}.fa-random:before{content:"\f074"}.fa-raspberry-pi:before{content:"\f7bb"}.fa-ravelry:before{content:"\f2d9"}.fa-raygun:before{content:"\f925"}.fa-react:before{content:"\f41b"}.fa-reacteurope:before{content:"\f75d"}.fa-readme:before{content:"\f4d5"}.fa-rebel:before{content:"\f1d0"}.fa-receipt:before{content:"\f543"}.fa-record-vinyl:before{content:"\f8d9"}.fa-rectangle-landscape:before{content:"\f2fa"}.fa-rectangle-portrait:before{content:"\f2fb"}.fa-rectangle-wide:before{content:"\f2fc"}.fa-recycle:before{content:"\f1b8"}.fa-red-river:before{content:"\f3e3"}.fa-reddit:before{content:"\f1a1"}.fa-reddit-alien:before{content:"\f281"}.fa-reddit-square:before{content:"\f1a2"}.fa-redhat:before{content:"\f7bc"}.fa-redo:before{content:"\f01e"}.fa-redo-alt:before{content:"\f2f9"}.fa-refrigerator:before{content:"\f926"}.fa-registered:before{content:"\f25d"}.fa-remove-format:before{content:"\f87d"}.fa-renren:before{content:"\f18b"}.fa-repeat:before{content:"\f363"}.fa-repeat-1:before{content:"\f365"}.fa-repeat-1-alt:before{content:"\f366"}.fa-repeat-alt:before{content:"\f364"}.fa-reply:before{content:"\f3e5"}.fa-reply-all:before{content:"\f122"}.fa-replyd:before{content:"\f3e6"}.fa-republican:before{content:"\f75e"}.fa-researchgate:before{content:"\f4f8"}.fa-resolving:before{content:"\f3e7"}.fa-restroom:before{content:"\f7bd"}.fa-retweet:before{content:"\f079"}.fa-retweet-alt:before{content:"\f361"}.fa-rev:before{content:"\f5b2"}.fa-ribbon:before{content:"\f4d6"}.fa-ring:before{content:"\f70b"}.fa-rings-wedding:before{content:"\f81b"}.fa-road:before{content:"\f018"}.fa-robot:before{content:"\f544"}.fa-rocket:before{content:"\f135"}.fa-rocket-launch:before{content:"\f927"}.fa-rocketchat:before{content:"\f3e8"}.fa-rockrms:before{content:"\f3e9"}.fa-route:before{content:"\f4d7"}.fa-route-highway:before{content:"\f61a"}.fa-route-interstate:before{content:"\f61b"}.fa-router:before{content:"\f8da"}.fa-rss:before{content:"\f09e"}.fa-rss-square:before{content:"\f143"}.fa-ruble-sign:before{content:"\f158"}.fa-ruler:before{content:"\f545"}.fa-ruler-combined:before{content:"\f546"}.fa-ruler-horizontal:before{content:"\f547"}.fa-ruler-triangle:before{content:"\f61c"}.fa-ruler-vertical:before{content:"\f548"}.fa-running:before{content:"\f70c"}.fa-rupee-sign:before{content:"\f156"}.fa-rv:before{content:"\f7be"}.fa-sack:before{content:"\f81c"}.fa-sack-dollar:before{content:"\f81d"}.fa-sad-cry:before{content:"\f5b3"}.fa-sad-tear:before{content:"\f5b4"}.fa-safari:before{content:"\f267"}.fa-salad:before{content:"\f81e"}.fa-salesforce:before{content:"\f83b"}.fa-sandwich:before{content:"\f81f"}.fa-sass:before{content:"\f41e"}.fa-satellite:before{content:"\f7bf"}.fa-satellite-dish:before{content:"\f7c0"}.fa-sausage:before{content:"\f820"}.fa-save:before{content:"\f0c7"}.fa-sax-hot:before{content:"\f8db"}.fa-saxophone:before{content:"\f8dc"}.fa-scalpel:before{content:"\f61d"}.fa-scalpel-path:before{content:"\f61e"}.fa-scanner:before{content:"\f488"}.fa-scanner-image:before{content:"\f8f3"}.fa-scanner-keyboard:before{content:"\f489"}.fa-scanner-touchscreen:before{content:"\f48a"}.fa-scarecrow:before{content:"\f70d"}.fa-scarf:before{content:"\f7c1"}.fa-schlix:before{content:"\f3ea"}.fa-school:before{content:"\f549"}.fa-screwdriver:before{content:"\f54a"}.fa-scribd:before{content:"\f28a"}.fa-scroll:before{content:"\f70e"}.fa-scroll-old:before{content:"\f70f"}.fa-scrubber:before{content:"\f2f8"}.fa-scythe:before{content:"\f710"}.fa-sd-card:before{content:"\f7c2"}.fa-search:before{content:"\f002"}.fa-search-dollar:before{content:"\f688"}.fa-search-location:before{content:"\f689"}.fa-search-minus:before{content:"\f010"}.fa-search-plus:before{content:"\f00e"}.fa-searchengin:before{content:"\f3eb"}.fa-seedling:before{content:"\f4d8"}.fa-sellcast:before{content:"\f2da"}.fa-sellsy:before{content:"\f213"}.fa-send-back:before{content:"\f87e"}.fa-send-backward:before{content:"\f87f"}.fa-sensor:before{content:"\f928"}.fa-sensor-alert:before{content:"\f929"}.fa-sensor-fire:before{content:"\f92a"}.fa-sensor-on:before{content:"\f92b"}.fa-sensor-smoke:before{content:"\f92c"}.fa-server:before{content:"\f233"}.fa-servicestack:before{content:"\f3ec"}.fa-shapes:before{content:"\f61f"}.fa-share:before{content:"\f064"}.fa-share-all:before{content:"\f367"}.fa-share-alt:before{content:"\f1e0"}.fa-share-alt-square:before{content:"\f1e1"}.fa-share-square:before{content:"\f14d"}.fa-sheep:before{content:"\f711"}.fa-shekel-sign:before{content:"\f20b"}.fa-shield:before{content:"\f132"}.fa-shield-alt:before{content:"\f3ed"}.fa-shield-check:before{content:"\f2f7"}.fa-shield-cross:before{content:"\f712"}.fa-ship:before{content:"\f21a"}.fa-shipping-fast:before{content:"\f48b"}.fa-shipping-timed:before{content:"\f48c"}.fa-shirtsinbulk:before{content:"\f214"}.fa-shish-kebab:before{content:"\f821"}.fa-shoe-prints:before{content:"\f54b"}.fa-shopping-bag:before{content:"\f290"}.fa-shopping-basket:before{content:"\f291"}.fa-shopping-cart:before{content:"\f07a"}.fa-shopware:before{content:"\f5b5"}.fa-shovel:before{content:"\f713"}.fa-shovel-snow:before{content:"\f7c3"}.fa-shower:before{content:"\f2cc"}.fa-shredder:before{content:"\f68a"}.fa-shuttle-van:before{content:"\f5b6"}.fa-shuttlecock:before{content:"\f45b"}.fa-sickle:before{content:"\f822"}.fa-sigma:before{content:"\f68b"}.fa-sign:before{content:"\f4d9"}.fa-sign-in:before{content:"\f090"}.fa-sign-in-alt:before{content:"\f2f6"}.fa-sign-language:before{content:"\f2a7"}.fa-sign-out:before{content:"\f08b"}.fa-sign-out-alt:before{content:"\f2f5"}.fa-signal:before{content:"\f012"}.fa-signal-1:before{content:"\f68c"}.fa-signal-2:before{content:"\f68d"}.fa-signal-3:before{content:"\f68e"}.fa-signal-4:before{content:"\f68f"}.fa-signal-alt:before{content:"\f690"}.fa-signal-alt-1:before{content:"\f691"}.fa-signal-alt-2:before{content:"\f692"}.fa-signal-alt-3:before{content:"\f693"}.fa-signal-alt-slash:before{content:"\f694"}.fa-signal-slash:before{content:"\f695"}.fa-signal-stream:before{content:"\f8dd"}.fa-signature:before{content:"\f5b7"}.fa-sim-card:before{content:"\f7c4"}.fa-simplybuilt:before{content:"\f215"}.fa-siren:before{content:"\f92d"}.fa-siren-on:before{content:"\f92e"}.fa-sistrix:before{content:"\f3ee"}.fa-sitemap:before{content:"\f0e8"}.fa-sith:before{content:"\f512"}.fa-skating:before{content:"\f7c5"}.fa-skeleton:before{content:"\f620"}.fa-sketch:before{content:"\f7c6"}.fa-ski-jump:before{content:"\f7c7"}.fa-ski-lift:before{content:"\f7c8"}.fa-skiing:before{content:"\f7c9"}.fa-skiing-nordic:before{content:"\f7ca"}.fa-skull:before{content:"\f54c"}.fa-skull-cow:before{content:"\f8de"}.fa-skull-crossbones:before{content:"\f714"}.fa-skyatlas:before{content:"\f216"}.fa-skype:before{content:"\f17e"}.fa-slack:before{content:"\f198"}.fa-slack-hash:before{content:"\f3ef"}.fa-slash:before{content:"\f715"}.fa-sledding:before{content:"\f7cb"}.fa-sleigh:before{content:"\f7cc"}.fa-sliders-h:before{content:"\f1de"}.fa-sliders-h-square:before{content:"\f3f0"}.fa-sliders-v:before{content:"\f3f1"}.fa-sliders-v-square:before{content:"\f3f2"}.fa-slideshare:before{content:"\f1e7"}.fa-smile:before{content:"\f118"}.fa-smile-beam:before{content:"\f5b8"}.fa-smile-plus:before{content:"\f5b9"}.fa-smile-wink:before{content:"\f4da"}.fa-smog:before{content:"\f75f"}.fa-smoke:before{content:"\f760"}.fa-smoking:before{content:"\f48d"}.fa-smoking-ban:before{content:"\f54d"}.fa-sms:before{content:"\f7cd"}.fa-snake:before{content:"\f716"}.fa-snapchat:before{content:"\f2ab"}.fa-snapchat-ghost:before{content:"\f2ac"}.fa-snapchat-square:before{content:"\f2ad"}.fa-snooze:before{content:"\f880"}.fa-snow-blowing:before{content:"\f761"}.fa-snowboarding:before{content:"\f7ce"}.fa-snowflake:before{content:"\f2dc"}.fa-snowflakes:before{content:"\f7cf"}.fa-snowman:before{content:"\f7d0"}.fa-snowmobile:before{content:"\f7d1"}.fa-snowplow:before{content:"\f7d2"}.fa-socks:before{content:"\f696"}.fa-solar-panel:before{content:"\f5ba"}.fa-solar-system:before{content:"\f92f"}.fa-sort:before{content:"\f0dc"}.fa-sort-alpha-down:before{content:"\f15d"}.fa-sort-alpha-down-alt:before{content:"\f881"}.fa-sort-alpha-up:before{content:"\f15e"}.fa-sort-alpha-up-alt:before{content:"\f882"}.fa-sort-alt:before{content:"\f883"}.fa-sort-amount-down:before{content:"\f160"}.fa-sort-amount-down-alt:before{content:"\f884"}.fa-sort-amount-up:before{content:"\f161"}.fa-sort-amount-up-alt:before{content:"\f885"}.fa-sort-circle:before{content:"\f930"}.fa-sort-circle-down:before{content:"\f931"}.fa-sort-circle-up:before{content:"\f932"}.fa-sort-down:before{content:"\f0dd"}.fa-sort-numeric-down:before{content:"\f162"}.fa-sort-numeric-down-alt:before{content:"\f886"}.fa-sort-numeric-up:before{content:"\f163"}.fa-sort-numeric-up-alt:before{content:"\f887"}.fa-sort-shapes-down:before{content:"\f888"}.fa-sort-shapes-down-alt:before{content:"\f889"}.fa-sort-shapes-up:before{content:"\f88a"}.fa-sort-shapes-up-alt:before{content:"\f88b"}.fa-sort-size-down:before{content:"\f88c"}.fa-sort-size-down-alt:before{content:"\f88d"}.fa-sort-size-up:before{content:"\f88e"}.fa-sort-size-up-alt:before{content:"\f88f"}.fa-sort-up:before{content:"\f0de"}.fa-soundcloud:before{content:"\f1be"}.fa-soup:before{content:"\f823"}.fa-sourcetree:before{content:"\f7d3"}.fa-spa:before{content:"\f5bb"}.fa-space-shuttle:before{content:"\f197"}.fa-space-station-moon:before{content:"\f933"}.fa-space-station-moon-alt:before{content:"\f934"}.fa-spade:before{content:"\f2f4"}.fa-sparkles:before{content:"\f890"}.fa-speakap:before{content:"\f3f3"}.fa-speaker:before{content:"\f8df"}.fa-speaker-deck:before{content:"\f83c"}.fa-speakers:before{content:"\f8e0"}.fa-spell-check:before{content:"\f891"}.fa-spider:before{content:"\f717"}.fa-spider-black-widow:before{content:"\f718"}.fa-spider-web:before{content:"\f719"}.fa-spinner:before{content:"\f110"}.fa-spinner-third:before{content:"\f3f4"}.fa-splotch:before{content:"\f5bc"}.fa-spotify:before{content:"\f1bc"}.fa-spray-can:before{content:"\f5bd"}.fa-sprinkler:before{content:"\f935"}.fa-square:before{content:"\f0c8"}.fa-square-full:before{content:"\f45c"}.fa-square-root:before{content:"\f697"}.fa-square-root-alt:before{content:"\f698"}.fa-squarespace:before{content:"\f5be"}.fa-squirrel:before{content:"\f71a"}.fa-stack-exchange:before{content:"\f18d"}.fa-stack-overflow:before{content:"\f16c"}.fa-stackpath:before{content:"\f842"}.fa-staff:before{content:"\f71b"}.fa-stamp:before{content:"\f5bf"}.fa-star:before{content:"\f005"}.fa-star-and-crescent:before{content:"\f699"}.fa-star-christmas:before{content:"\f7d4"}.fa-star-exclamation:before{content:"\f2f3"}.fa-star-half:before{content:"\f089"}.fa-star-half-alt:before{content:"\f5c0"}.fa-star-of-david:before{content:"\f69a"}.fa-star-of-life:before{content:"\f621"}.fa-star-shooting:before{content:"\f936"}.fa-starfighter:before{content:"\f937"}.fa-starfighter-alt:before{content:"\f938"}.fa-stars:before{content:"\f762"}.fa-starship:before{content:"\f939"}.fa-starship-freighter:before{content:"\f93a"}.fa-staylinked:before{content:"\f3f5"}.fa-steak:before{content:"\f824"}.fa-steam:before{content:"\f1b6"}.fa-steam-square:before{content:"\f1b7"}.fa-steam-symbol:before{content:"\f3f6"}.fa-steering-wheel:before{content:"\f622"}.fa-step-backward:before{content:"\f048"}.fa-step-forward:before{content:"\f051"}.fa-stethoscope:before{content:"\f0f1"}.fa-sticker-mule:before{content:"\f3f7"}.fa-sticky-note:before{content:"\f249"}.fa-stocking:before{content:"\f7d5"}.fa-stomach:before{content:"\f623"}.fa-stop:before{content:"\f04d"}.fa-stop-circle:before{content:"\f28d"}.fa-stopwatch:before{content:"\f2f2"}.fa-store:before{content:"\f54e"}.fa-store-alt:before{content:"\f54f"}.fa-strava:before{content:"\f428"}.fa-stream:before{content:"\f550"}.fa-street-view:before{content:"\f21d"}.fa-stretcher:before{content:"\f825"}.fa-strikethrough:before{content:"\f0cc"}.fa-stripe:before{content:"\f429"}.fa-stripe-s:before{content:"\f42a"}.fa-stroopwafel:before{content:"\f551"}.fa-studiovinari:before{content:"\f3f8"}.fa-stumbleupon:before{content:"\f1a4"}.fa-stumbleupon-circle:before{content:"\f1a3"}.fa-subscript:before{content:"\f12c"}.fa-subway:before{content:"\f239"}.fa-suitcase:before{content:"\f0f2"}.fa-suitcase-rolling:before{content:"\f5c1"}.fa-sun:before{content:"\f185"}.fa-sun-cloud:before{content:"\f763"}.fa-sun-dust:before{content:"\f764"}.fa-sun-haze:before{content:"\f765"}.fa-sunglasses:before{content:"\f892"}.fa-sunrise:before{content:"\f766"}.fa-sunset:before{content:"\f767"}.fa-superpowers:before{content:"\f2dd"}.fa-superscript:before{content:"\f12b"}.fa-supple:before{content:"\f3f9"}.fa-surprise:before{content:"\f5c2"}.fa-suse:before{content:"\f7d6"}.fa-swatchbook:before{content:"\f5c3"}.fa-swift:before{content:"\f8e1"}.fa-swimmer:before{content:"\f5c4"}.fa-swimming-pool:before{content:"\f5c5"}.fa-sword:before{content:"\f71c"}.fa-sword-laser:before{content:"\f93b"}.fa-sword-laser-alt:before{content:"\f93c"}.fa-swords:before{content:"\f71d"}.fa-swords-laser:before{content:"\f93d"}.fa-symfony:before{content:"\f83d"}.fa-synagogue:before{content:"\f69b"}.fa-sync:before{content:"\f021"}.fa-sync-alt:before{content:"\f2f1"}.fa-syringe:before{content:"\f48e"}.fa-table:before{content:"\f0ce"}.fa-table-tennis:before{content:"\f45d"}.fa-tablet:before{content:"\f10a"}.fa-tablet-alt:before{content:"\f3fa"}.fa-tablet-android:before{content:"\f3fb"}.fa-tablet-android-alt:before{content:"\f3fc"}.fa-tablet-rugged:before{content:"\f48f"}.fa-tablets:before{content:"\f490"}.fa-tachometer:before{content:"\f0e4"}.fa-tachometer-alt:before{content:"\f3fd"}.fa-tachometer-alt-average:before{content:"\f624"}.fa-tachometer-alt-fast:before{content:"\f625"}.fa-tachometer-alt-fastest:before{content:"\f626"}.fa-tachometer-alt-slow:before{content:"\f627"}.fa-tachometer-alt-slowest:before{content:"\f628"}.fa-tachometer-average:before{content:"\f629"}.fa-tachometer-fast:before{content:"\f62a"}.fa-tachometer-fastest:before{content:"\f62b"}.fa-tachometer-slow:before{content:"\f62c"}.fa-tachometer-slowest:before{content:"\f62d"}.fa-taco:before{content:"\f826"}.fa-tag:before{content:"\f02b"}.fa-tags:before{content:"\f02c"}.fa-tally:before{content:"\f69c"}.fa-tanakh:before{content:"\f827"}.fa-tape:before{content:"\f4db"}.fa-tasks:before{content:"\f0ae"}.fa-tasks-alt:before{content:"\f828"}.fa-taxi:before{content:"\f1ba"}.fa-teamspeak:before{content:"\f4f9"}.fa-teeth:before{content:"\f62e"}.fa-teeth-open:before{content:"\f62f"}.fa-telegram:before{content:"\f2c6"}.fa-telegram-plane:before{content:"\f3fe"}.fa-telescope:before{content:"\f93e"}.fa-temperature-down:before{content:"\f93f"}.fa-temperature-frigid:before{content:"\f768"}.fa-temperature-high:before{content:"\f769"}.fa-temperature-hot:before{content:"\f76a"}.fa-temperature-low:before{content:"\f76b"}.fa-temperature-up:before{content:"\f940"}.fa-tencent-weibo:before{content:"\f1d5"}.fa-tenge:before{content:"\f7d7"}.fa-tennis-ball:before{content:"\f45e"}.fa-terminal:before{content:"\f120"}.fa-text:before{content:"\f893"}.fa-text-height:before{content:"\f034"}.fa-text-size:before{content:"\f894"}.fa-text-width:before{content:"\f035"}.fa-th:before{content:"\f00a"}.fa-th-large:before{content:"\f009"}.fa-th-list:before{content:"\f00b"}.fa-the-red-yeti:before{content:"\f69d"}.fa-theater-masks:before{content:"\f630"}.fa-themeco:before{content:"\f5c6"}.fa-themeisle:before{content:"\f2b2"}.fa-thermometer:before{content:"\f491"}.fa-thermometer-empty:before{content:"\f2cb"}.fa-thermometer-full:before{content:"\f2c7"}.fa-thermometer-half:before{content:"\f2c9"}.fa-thermometer-quarter:before{content:"\f2ca"}.fa-thermometer-three-quarters:before{content:"\f2c8"}.fa-theta:before{content:"\f69e"}.fa-think-peaks:before{content:"\f731"}.fa-thumbs-down:before{content:"\f165"}.fa-thumbs-up:before{content:"\f164"}.fa-thumbtack:before{content:"\f08d";padding:2px;}.fa-thunderstorm:before{content:"\f76c"}.fa-thunderstorm-moon:before{content:"\f76d"}.fa-thunderstorm-sun:before{content:"\f76e"}.fa-ticket:before{content:"\f145"}.fa-ticket-alt:before{content:"\f3ff"}.fa-tilde:before{content:"\f69f"}.fa-times:before{content:"\f00d"}.fa-times-circle:before{content:"\f057"}.fa-times-hexagon:before{content:"\f2ee"}.fa-times-octagon:before{content:"\f2f0"}.fa-times-square:before{content:"\f2d3"}.fa-tint:before{content:"\f043"}.fa-tint-slash:before{content:"\f5c7"}.fa-tire:before{content:"\f631"}.fa-tire-flat:before{content:"\f632"}.fa-tire-pressure-warning:before{content:"\f633"}.fa-tire-rugged:before{content:"\f634"}.fa-tired:before{content:"\f5c8"}.fa-toggle-off:before{content:"\f204"}.fa-toggle-on:before{content:"\f205"}.fa-toilet:before{content:"\f7d8"}.fa-toilet-paper:before{content:"\f71e"}.fa-toilet-paper-alt:before{content:"\f71f"}.fa-tombstone:before{content:"\f720"}.fa-tombstone-alt:before{content:"\f721"}.fa-toolbox:before{content:"\f552"}.fa-tools:before{content:"\f7d9"}.fa-tooth:before{content:"\f5c9"}.fa-toothbrush:before{content:"\f635"}.fa-torah:before{content:"\f6a0"}.fa-torii-gate:before{content:"\f6a1"}.fa-tornado:before{content:"\f76f"}.fa-tractor:before{content:"\f722"}.fa-trade-federation:before{content:"\f513"}.fa-trademark:before{content:"\f25c"}.fa-traffic-cone:before{content:"\f636"}.fa-traffic-light:before{content:"\f637"}.fa-traffic-light-go:before{content:"\f638"}.fa-traffic-light-slow:before{content:"\f639"}.fa-traffic-light-stop:before{content:"\f63a"}.fa-trailer:before{content:"\f941"}.fa-train:before{content:"\f238"}.fa-tram:before{content:"\f7da"}.fa-transgender:before{content:"\f224"}.fa-transgender-alt:before{content:"\f225"}.fa-transporter:before{content:"\f942"}.fa-transporter-1:before{content:"\f943"}.fa-transporter-2:before{content:"\f944"}.fa-transporter-3:before{content:"\f945"}.fa-transporter-empty:before{content:"\f946"}.fa-trash:before{content:"\f1f8"}.fa-trash-alt:before{content:"\f2ed"}.fa-trash-restore:before{content:"\f829"}.fa-trash-restore-alt:before{content:"\f82a"}.fa-trash-undo:before{content:"\f895"}.fa-trash-undo-alt:before{content:"\f896"}.fa-treasure-chest:before{content:"\f723"}.fa-tree:before{content:"\f1bb"}.fa-tree-alt:before{content:"\f400"}.fa-tree-christmas:before{content:"\f7db"}.fa-tree-decorated:before{content:"\f7dc"}.fa-tree-large:before{content:"\f7dd"}.fa-tree-palm:before{content:"\f82b"}.fa-trees:before{content:"\f724"}.fa-trello:before{content:"\f181"}.fa-triangle:before{content:"\f2ec"}.fa-triangle-music:before{content:"\f8e2"}.fa-tripadvisor:before{content:"\f262"}.fa-trophy:before{content:"\f091"}.fa-trophy-alt:before{content:"\f2eb"}.fa-truck:before{content:"\f0d1"}.fa-truck-container:before{content:"\f4dc"}.fa-truck-couch:before{content:"\f4dd"}.fa-truck-loading:before{content:"\f4de"}.fa-truck-monster:before{content:"\f63b"}.fa-truck-moving:before{content:"\f4df"}.fa-truck-pickup:before{content:"\f63c"}.fa-truck-plow:before{content:"\f7de"}.fa-truck-ramp:before{content:"\f4e0"}.fa-trumpet:before{content:"\f8e3"}.fa-tshirt:before{content:"\f553"}.fa-tty:before{content:"\f1e4"}.fa-tumblr:before{content:"\f173"}.fa-tumblr-square:before{content:"\f174"}.fa-turkey:before{content:"\f725"}.fa-turntable:before{content:"\f8e4"}.fa-turtle:before{content:"\f726"}.fa-tv:before{content:"\f26c"}.fa-tv-alt:before{content:"\f8e5"}.fa-tv-music:before{content:"\f8e6"}.fa-tv-retro:before{content:"\f401"}.fa-twitch:before{content:"\f1e8"}.fa-twitter:before{content:"\f099"}.fa-twitter-square:before{content:"\f081"}.fa-typewriter:before{content:"\f8e7"}.fa-typo3:before{content:"\f42b"}.fa-uber:before{content:"\f402"}.fa-ubuntu:before{content:"\f7df"}.fa-ufo:before{content:"\f947"}.fa-ufo-beam:before{content:"\f948"}.fa-uikit:before{content:"\f403"}.fa-umbraco:before{content:"\f8e8"}.fa-umbrella:before{content:"\f0e9"}.fa-umbrella-beach:before{content:"\f5ca"}.fa-underline:before{content:"\f0cd"}.fa-undo:before{content:"\f0e2"}.fa-undo-alt:before{content:"\f2ea"}.fa-unicorn:before{content:"\f727"}.fa-union:before{content:"\f6a2"}.fa-uniregistry:before{content:"\f404"}.fa-unity:before{content:"\f949"}.fa-universal-access:before{content:"\f29a"}.fa-university:before{content:"\f19c"}.fa-unlink:before{content:"\f127"}.fa-unlock:before{content:"\f09c"}.fa-unlock-alt:before{content:"\f13e"}.fa-untappd:before{content:"\f405"}.fa-upload:before{content:"\f093"}.fa-ups:before{content:"\f7e0"}.fa-usb:before{content:"\f287"}.fa-usb-drive:before{content:"\f8e9"}.fa-usd-circle:before{content:"\f2e8"}.fa-usd-square:before{content:"\f2e9"}.fa-user:before{content:"\f007"}.fa-user-alien:before{content:"\f94a"}.fa-user-alt:before{content:"\f406"}.fa-user-alt-slash:before{content:"\f4fa"}.fa-user-astronaut:before{content:"\f4fb"}.fa-user-chart:before{content:"\f6a3"}.fa-user-check:before{content:"\f4fc"}.fa-user-circle:before{content:"\f2bd"}.fa-user-clock:before{content:"\f4fd"}.fa-user-cog:before{content:"\f4fe"}.fa-user-cowboy:before{content:"\f8ea"}.fa-user-crown:before{content:"\f6a4"}.fa-user-edit:before{content:"\f4ff"}.fa-user-friends:before{content:"\f500"}.fa-user-graduate:before{content:"\f501"}.fa-user-hard-hat:before{content:"\f82c"}.fa-user-headset:before{content:"\f82d"}.fa-user-injured:before{content:"\f728"}.fa-user-lock:before{content:"\f502"}.fa-user-md:before{content:"\f0f0"}.fa-user-md-chat:before{content:"\f82e"}.fa-user-minus:before{content:"\f503"}.fa-user-music:before{content:"\f8eb"}.fa-user-ninja:before{content:"\f504"}.fa-user-nurse:before{content:"\f82f"}.fa-user-plus:before{content:"\f234"}.fa-user-robot:before{content:"\f94b"}.fa-user-secret:before{content:"\f21b"}.fa-user-shield:before{content:"\f505"}.fa-user-slash:before{content:"\f506"}.fa-user-tag:before{content:"\f507"}.fa-user-tie:before{content:"\f508"}.fa-user-times:before{content:"\f235"}.fa-user-visor:before{content:"\f94c"}.fa-users:before{content:"\f0c0"}.fa-users-class:before{content:"\f63d"}.fa-users-cog:before{content:"\f509"}.fa-users-crown:before{content:"\f6a5"}.fa-users-medical:before{content:"\f830"}.fa-usps:before{content:"\f7e1"}.fa-ussunnah:before{content:"\f407"}.fa-utensil-fork:before{content:"\f2e3"}.fa-utensil-knife:before{content:"\f2e4"}.fa-utensil-spoon:before{content:"\f2e5"}.fa-utensils:before{content:"\f2e7"}.fa-utensils-alt:before{content:"\f2e6"}.fa-vaadin:before{content:"\f408"}.fa-vacuum:before{content:"\f94d"}.fa-vacuum-robot:before{content:"\f94e"}.fa-value-absolute:before{content:"\f6a6"}.fa-vector-square:before{content:"\f5cb"}.fa-venus:before{content:"\f221"}.fa-venus-double:before{content:"\f226"}.fa-venus-mars:before{content:"\f228"}.fa-vhs:before{content:"\f8ec"}.fa-viacoin:before{content:"\f237"}.fa-viadeo:before{content:"\f2a9"}.fa-viadeo-square:before{content:"\f2aa"}.fa-vial:before{content:"\f492"}.fa-vials:before{content:"\f493"}.fa-viber:before{content:"\f409"}.fa-video:before{content:"\f03d"}.fa-video-plus:before{content:"\f4e1"}.fa-video-slash:before{content:"\f4e2"}.fa-vihara:before{content:"\f6a7"}.fa-vimeo:before{content:"\f40a"}.fa-vimeo-square:before{content:"\f194"}.fa-vimeo-v:before{content:"\f27d"}.fa-vine:before{content:"\f1ca"}.fa-violin:before{content:"\f8ed"}.fa-vk:before{content:"\f189"}.fa-vnv:before{content:"\f40b"}.fa-voicemail:before{content:"\f897"}.fa-volcano:before{content:"\f770"}.fa-volleyball-ball:before{content:"\f45f"}.fa-volume:before{content:"\f6a8"}.fa-volume-down:before{content:"\f027"}.fa-volume-mute:before{content:"\f6a9"}.fa-volume-off:before{content:"\f026"}.fa-volume-slash:before{content:"\f2e2"}.fa-volume-up:before{content:"\f028"}.fa-vote-nay:before{content:"\f771"}.fa-vote-yea:before{content:"\f772"}.fa-vr-cardboard:before{content:"\f729"}.fa-vuejs:before{content:"\f41f"}.fa-wagon-covered:before{content:"\f8ee"}.fa-walker:before{content:"\f831"}.fa-walkie-talkie:before{content:"\f8ef"}.fa-walking:before{content:"\f554"}.fa-wallet:before{content:"\f555"}.fa-wand:before{content:"\f72a"}.fa-wand-magic:before{content:"\f72b"}.fa-warehouse:before{content:"\f494"}.fa-warehouse-alt:before{content:"\f495"}.fa-washer:before{content:"\f898"}.fa-watch:before{content:"\f2e1"}.fa-watch-calculator:before{content:"\f8f0"}.fa-watch-fitness:before{content:"\f63e"}.fa-water:before{content:"\f773"}.fa-water-lower:before{content:"\f774"}.fa-water-rise:before{content:"\f775"}.fa-wave-sine:before{content:"\f899"}.fa-wave-square:before{content:"\f83e"}.fa-wave-triangle:before{content:"\f89a"}.fa-waveform:before{content:"\f8f1"}.fa-waveform-path:before{content:"\f8f2"}.fa-waze:before{content:"\f83f"}.fa-webcam:before{content:"\f832"}.fa-webcam-slash:before{content:"\f833"}.fa-weebly:before{content:"\f5cc"}.fa-weibo:before{content:"\f18a"}.fa-weight:before{content:"\f496"}.fa-weight-hanging:before{content:"\f5cd"}.fa-weixin:before{content:"\f1d7"}.fa-whale:before{content:"\f72c"}.fa-whatsapp:before{content:"\f232"}.fa-whatsapp-square:before{content:"\f40c"}.fa-wheat:before{content:"\f72d"}.fa-wheelchair:before{content:"\f193"}.fa-whistle:before{content:"\f460"}.fa-whmcs:before{content:"\f40d"}.fa-wifi:before{content:"\f1eb"}.fa-wifi-1:before{content:"\f6aa"}.fa-wifi-2:before{content:"\f6ab"}.fa-wifi-slash:before{content:"\f6ac"}.fa-wikipedia-w:before{content:"\f266"}.fa-wind:before{content:"\f72e"}.fa-wind-turbine:before{content:"\f89b"}.fa-wind-warning:before{content:"\f776"}.fa-window:before{content:"\f40e"}.fa-window-alt:before{content:"\f40f"}.fa-window-close:before{content:"\f410"}.fa-window-frame:before{content:"\f94f"}.fa-window-frame-open:before{content:"\f950"}.fa-window-maximize:before{content:"\f2d0"}.fa-window-minimize:before{content:"\f2d1"}.fa-window-restore:before{content:"\f2d2"}.fa-windows:before{content:"\f17a"}.fa-windsock:before{content:"\f777"}.fa-wine-bottle:before{content:"\f72f"}.fa-wine-glass:before{content:"\f4e3"}.fa-wine-glass-alt:before{content:"\f5ce"}.fa-wix:before{content:"\f5cf"}.fa-wizards-of-the-coast:before{content:"\f730"}.fa-wolf-pack-battalion:before{content:"\f514"}.fa-won-sign:before{content:"\f159"}.fa-wordpress:before{content:"\f19a"}.fa-wordpress-simple:before{content:"\f411"}.fa-wpbeginner:before{content:"\f297"}.fa-wpexplorer:before{content:"\f2de"}.fa-wpforms:before{content:"\f298"}.fa-wpressr:before{content:"\f3e4"}.fa-wreath:before{content:"\f7e2"}.fa-wrench:before{content:"\f0ad"}.fa-x-ray:before{content:"\f497"}.fa-xbox:before{content:"\f412"}.fa-xing:before{content:"\f168"}.fa-xing-square:before{content:"\f169"}.fa-y-combinator:before{content:"\f23b"}.fa-yahoo:before{content:"\f19e"}.fa-yammer:before{content:"\f840"}.fa-yandex:before{content:"\f413"}.fa-yandex-international:before{content:"\f414"}.fa-yarn:before{content:"\f7e3"}.fa-yelp:before{content:"\f1e9"}.fa-yen-sign:before{content:"\f157"}.fa-yin-yang:before{content:"\f6ad"}.fa-yoast:before{content:"\f2b1"}.fa-youtube:before{content:"\f167"}.fa-youtube-square:before{content:"\f431"}.fa-zhihu:before{content:"\f63f"}.sr-only{border:0;clip:rect(0,0,0,0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px}.sr-only-focusable:active,.sr-only-focusable:focus{clip:auto;height:auto;margin:0;overflow:visible;position:static;width:auto}@font-face{font-family:'font awesome 5 brands';font-style:normal;font-weight:400;font-display:auto;src:url(../fonts/fa-brands-400.eot);src:url(../fonts/fa-brands-400.eot?#iefix) format("embedded-opentype"),url(../fonts/fa-brands-400.woff2) format("woff2"),url(../fonts/fa-brands-400.woff) format("woff"),url(../fonts/fa-brands-400.ttf) format("truetype"),url(../fonts/fa-brands-400.svg#fontawesome) format("svg")}.fab{font-family:'font awesome 5 brands'!important}@font-face{font-family:'font awesome 5 duotone';font-style:normal;font-weight:900;font-display:auto;src:url(../fonts/fa-duotone-900.eot);src:url(../fonts/fa-duotone-900.eot?#iefix) format("embedded-opentype"),url(../fonts/fa-duotone-900.woff2) format("woff2"),url(../fonts/fa-duotone-900.woff) format("woff"),url(../fonts/fa-duotone-900.ttf) format("truetype"),url(../fonts/fa-duotone-900.svg#fontawesome) format("svg")}.fad{position:relative;font-family:'font awesome 5 duotone'!important;font-weight:900}.fad:before{position:absolute;color:var(--fa-primary-color,inherit);opacity:1;opacity:var(--fa-primary-opacity,1)}.fad:after{color:var(--fa-secondary-color,inherit);opacity:.4;opacity:var(--fa-secondary-opacity,0.4)}.fa-swap-opacity .fad:before,.fad.fa-swap-opacity:before{opacity:.4;opacity:var(--fa-secondary-opacity,0.4)}.fa-swap-opacity .fad:after,.fad.fa-swap-opacity:after{opacity:1;opacity:var(--fa-primary-opacity,1)}.fad.fa-inverse{color:#fff}.fad.fa-stack-1x,.fad.fa-stack-2x{position:absolute}.fad.fa-stack-1x:before,.fad.fa-stack-2x:before,.fad.fa-fw:before{left:50%;-webkit-transform:translateX(-50%);transform:translateX(-50%)}.fad.fa-abacus:after{content:"\10f640"}.fad.fa-acorn:after{content:"\10f6ae"}.fad.fa-ad:after{content:"\10f641"}.fad.fa-address-book:after{content:"\10f2b9"}.fad.fa-address-card:after{content:"\10f2bb"}.fad.fa-adjust:after{content:"\10f042"}.fad.fa-air-conditioner:after{content:"\10f8f4"}.fad.fa-air-freshener:after{content:"\10f5d0"}.fad.fa-alarm-clock:after{content:"\10f34e"}.fad.fa-alarm-exclamation:after{content:"\10f843"}.fad.fa-alarm-plus:after{content:"\10f844"}.fad.fa-alarm-snooze:after{content:"\10f845"}.fad.fa-album:after{content:"\10f89f"}.fad.fa-album-collection:after{content:"\10f8a0"}.fad.fa-alicorn:after{content:"\10f6b0"}.fad.fa-alien:after{content:"\10f8f5"}.fad.fa-alien-monster:after{content:"\10f8f6"}.fad.fa-align-center:after{content:"\10f037"}.fad.fa-align-justify:after{content:"\10f039"}.fad.fa-align-left:after{content:"\10f036"}.fad.fa-align-right:after{content:"\10f038"}.fad.fa-align-slash:after{content:"\10f846"}.fad.fa-allergies:after{content:"\10f461"}.fad.fa-ambulance:after{content:"\10f0f9"}.fad.fa-american-sign-language-interpreting:after{content:"\10f2a3"}.fad.fa-amp-guitar:after{content:"\10f8a1"}.fad.fa-analytics:after{content:"\10f643"}.fad.fa-anchor:after{content:"\10f13d"}.fad.fa-angel:after{content:"\10f779"}.fad.fa-angle-double-down:after{content:"\10f103"}.fad.fa-angle-double-left:after{content:"\10f100"}.fad.fa-angle-double-right:after{content:"\10f101"}.fad.fa-angle-double-up:after{content:"\10f102"}.fad.fa-angle-down:after{content:"\10f107"}.fad.fa-angle-left:after{content:"\10f104"}.fad.fa-angle-right:after{content:"\10f105"}.fad.fa-angle-up:after{content:"\10f106"}.fad.fa-angry:after{content:"\10f556"}.fad.fa-ankh:after{content:"\10f644"}.fad.fa-apple-alt:after{content:"\10f5d1"}.fad.fa-apple-crate:after{content:"\10f6b1"}.fad.fa-archive:after{content:"\10f187"}.fad.fa-archway:after{content:"\10f557"}.fad.fa-arrow-alt-circle-down:after{content:"\10f358"}.fad.fa-arrow-alt-circle-left:after{content:"\10f359"}.fad.fa-arrow-alt-circle-right:after{content:"\10f35a"}.fad.fa-arrow-alt-circle-up:after{content:"\10f35b"}.fad.fa-arrow-alt-down:after{content:"\10f354"}.fad.fa-arrow-alt-from-bottom:after{content:"\10f346"}.fad.fa-arrow-alt-from-left:after{content:"\10f347"}.fad.fa-arrow-alt-from-right:after{content:"\10f348"}.fad.fa-arrow-alt-from-top:after{content:"\10f349"}.fad.fa-arrow-alt-left:after{content:"\10f355"}.fad.fa-arrow-alt-right:after{content:"\10f356"}.fad.fa-arrow-alt-square-down:after{content:"\10f350"}.fad.fa-arrow-alt-square-left:after{content:"\10f351"}.fad.fa-arrow-alt-square-right:after{content:"\10f352"}.fad.fa-arrow-alt-square-up:after{content:"\10f353"}.fad.fa-arrow-alt-to-bottom:after{content:"\10f34a"}.fad.fa-arrow-alt-to-left:after{content:"\10f34b"}.fad.fa-arrow-alt-to-right:after{content:"\10f34c"}.fad.fa-arrow-alt-to-top:after{content:"\10f34d"}.fad.fa-arrow-alt-up:after{content:"\10f357"}.fad.fa-arrow-circle-down:after{content:"\10f0ab"}.fad.fa-arrow-circle-left:after{content:"\10f0a8"}.fad.fa-arrow-circle-right:after{content:"\10f0a9"}.fad.fa-arrow-circle-up:after{content:"\10f0aa"}.fad.fa-arrow-down:after{content:"\10f063"}.fad.fa-arrow-from-bottom:after{content:"\10f342"}.fad.fa-arrow-from-left:after{content:"\10f343"}.fad.fa-arrow-from-right:after{content:"\10f344"}.fad.fa-arrow-from-top:after{content:"\10f345"}.fad.fa-arrow-left:after{content:"\10f060"}.fad.fa-arrow-right:after{content:"\10f061"}.fad.fa-arrow-square-down:after{content:"\10f339"}.fad.fa-arrow-square-left:after{content:"\10f33a"}.fad.fa-arrow-square-right:after{content:"\10f33b"}.fad.fa-arrow-square-up:after{content:"\10f33c"}.fad.fa-arrow-to-bottom:after{content:"\10f33d"}.fad.fa-arrow-to-left:after{content:"\10f33e"}.fad.fa-arrow-to-right:after{content:"\10f340"}.fad.fa-arrow-to-top:after{content:"\10f341"}.fad.fa-arrow-up:after{content:"\10f062"}.fad.fa-arrows:after{content:"\10f047"}.fad.fa-arrows-alt:after{content:"\10f0b2"}.fad.fa-arrows-alt-h:after{content:"\10f337"}.fad.fa-arrows-alt-v:after{content:"\10f338"}.fad.fa-arrows-h:after{content:"\10f07e"}.fad.fa-arrows-v:after{content:"\10f07d"}.fad.fa-assistive-listening-systems:after{content:"\10f2a2"}.fad.fa-asterisk:after{content:"\10f069"}.fad.fa-at:after{content:"\10f1fa"}.fad.fa-atlas:after{content:"\10f558"}.fad.fa-atom:after{content:"\10f5d2"}.fad.fa-atom-alt:after{content:"\10f5d3"}.fad.fa-audio-description:after{content:"\10f29e"}.fad.fa-award:after{content:"\10f559"}.fad.fa-axe:after{content:"\10f6b2"}.fad.fa-axe-battle:after{content:"\10f6b3"}.fad.fa-baby:after{content:"\10f77c"}.fad.fa-baby-carriage:after{content:"\10f77d"}.fad.fa-backpack:after{content:"\10f5d4"}.fad.fa-backspace:after{content:"\10f55a"}.fad.fa-backward:after{content:"\10f04a"}.fad.fa-bacon:after{content:"\10f7e5"}.fad.fa-badge:after{content:"\10f335"}.fad.fa-badge-check:after{content:"\10f336"}.fad.fa-badge-dollar:after{content:"\10f645"}.fad.fa-badge-percent:after{content:"\10f646"}.fad.fa-badge-sheriff:after{content:"\10f8a2"}.fad.fa-badger-honey:after{content:"\10f6b4"}.fad.fa-bags-shopping:after{content:"\10f847"}.fad.fa-bahai:after{content:"\10f666"}.fad.fa-balance-scale:after{content:"\10f24e"}.fad.fa-balance-scale-left:after{content:"\10f515"}.fad.fa-balance-scale-right:after{content:"\10f516"}.fad.fa-ball-pile:after{content:"\10f77e"}.fad.fa-ballot:after{content:"\10f732"}.fad.fa-ballot-check:after{content:"\10f733"}.fad.fa-ban:after{content:"\10f05e"}.fad.fa-band-aid:after{content:"\10f462"}.fad.fa-banjo:after{content:"\10f8a3"}.fad.fa-barcode:after{content:"\10f02a"}.fad.fa-barcode-alt:after{content:"\10f463"}.fad.fa-barcode-read:after{content:"\10f464"}.fad.fa-barcode-scan:after{content:"\10f465"}.fad.fa-bars:after{content:"\10f0c9"}.fad.fa-baseball:after{content:"\10f432"}.fad.fa-baseball-ball:after{content:"\10f433"}.fad.fa-basketball-ball:after{content:"\10f434"}.fad.fa-basketball-hoop:after{content:"\10f435"}.fad.fa-bat:after{content:"\10f6b5"}.fad.fa-bath:after{content:"\10f2cd"}.fad.fa-battery-bolt:after{content:"\10f376"}.fad.fa-battery-empty:after{content:"\10f244"}.fad.fa-battery-full:after{content:"\10f240"}.fad.fa-battery-half:after{content:"\10f242"}.fad.fa-battery-quarter:after{content:"\10f243"}.fad.fa-battery-slash:after{content:"\10f377"}.fad.fa-battery-three-quarters:after{content:"\10f241"}.fad.fa-bed:after{content:"\10f236"}.fad.fa-bed-alt:after{content:"\10f8f7"}.fad.fa-bed-bunk:after{content:"\10f8f8"}.fad.fa-bed-empty:after{content:"\10f8f9"}.fad.fa-beer:after{content:"\10f0fc"}.fad.fa-bell:after{content:"\10f0f3"}.fad.fa-bell-exclamation:after{content:"\10f848"}.fad.fa-bell-on:after{content:"\10f8fa"}.fad.fa-bell-plus:after{content:"\10f849"}.fad.fa-bell-school:after{content:"\10f5d5"}.fad.fa-bell-school-slash:after{content:"\10f5d6"}.fad.fa-bell-slash:after{content:"\10f1f6"}.fad.fa-bells:after{content:"\10f77f"}.fad.fa-betamax:after{content:"\10f8a4"}.fad.fa-bezier-curve:after{content:"\10f55b"}.fad.fa-bible:after{content:"\10f647"}.fad.fa-bicycle:after{content:"\10f206"}.fad.fa-biking:after{content:"\10f84a"}.fad.fa-biking-mountain:after{content:"\10f84b"}.fad.fa-binoculars:after{content:"\10f1e5"}.fad.fa-biohazard:after{content:"\10f780"}.fad.fa-birthday-cake:after{content:"\10f1fd"}.fad.fa-blanket:after{content:"\10f498"}.fad.fa-blender:after{content:"\10f517"}.fad.fa-blender-phone:after{content:"\10f6b6"}.fad.fa-blind:after{content:"\10f29d"}.fad.fa-blinds:after{content:"\10f8fb"}.fad.fa-blinds-open:after{content:"\10f8fc"}.fad.fa-blinds-raised:after{content:"\10f8fd"}.fad.fa-blog:after{content:"\10f781"}.fad.fa-bold:after{content:"\10f032"}.fad.fa-bolt:after{content:"\10f0e7"}.fad.fa-bomb:after{content:"\10f1e2"}.fad.fa-bone:after{content:"\10f5d7"}.fad.fa-bone-break:after{content:"\10f5d8"}.fad.fa-bong:after{content:"\10f55c"}.fad.fa-book:after{content:"\10f02d"}.fad.fa-book-alt:after{content:"\10f5d9"}.fad.fa-book-dead:after{content:"\10f6b7"}.fad.fa-book-heart:after{content:"\10f499"}.fad.fa-book-medical:after{content:"\10f7e6"}.fad.fa-book-open:after{content:"\10f518"}.fad.fa-book-reader:after{content:"\10f5da"}.fad.fa-book-spells:after{content:"\10f6b8"}.fad.fa-book-user:after{content:"\10f7e7"}.fad.fa-bookmark:after{content:"\10f02e"}.fad.fa-books:after{content:"\10f5db"}.fad.fa-books-medical:after{content:"\10f7e8"}.fad.fa-boombox:after{content:"\10f8a5"}.fad.fa-boot:after{content:"\10f782"}.fad.fa-booth-curtain:after{content:"\10f734"}.fad.fa-border-all:after{content:"\10f84c"}.fad.fa-border-bottom:after{content:"\10f84d"}.fad.fa-border-center-h:after{content:"\10f89c"}.fad.fa-border-center-v:after{content:"\10f89d"}.fad.fa-border-inner:after{content:"\10f84e"}.fad.fa-border-left:after{content:"\10f84f"}.fad.fa-border-none:after{content:"\10f850"}.fad.fa-border-outer:after{content:"\10f851"}.fad.fa-border-right:after{content:"\10f852"}.fad.fa-border-style:after{content:"\10f853"}.fad.fa-border-style-alt:after{content:"\10f854"}.fad.fa-border-top:after{content:"\10f855"}.fad.fa-bow-arrow:after{content:"\10f6b9"}.fad.fa-bowling-ball:after{content:"\10f436"}.fad.fa-bowling-pins:after{content:"\10f437"}.fad.fa-box:after{content:"\10f466"}.fad.fa-box-alt:after{content:"\10f49a"}.fad.fa-box-ballot:after{content:"\10f735"}.fad.fa-box-check:after{content:"\10f467"}.fad.fa-box-fragile:after{content:"\10f49b"}.fad.fa-box-full:after{content:"\10f49c"}.fad.fa-box-heart:after{content:"\10f49d"}.fad.fa-box-open:after{content:"\10f49e"}.fad.fa-box-up:after{content:"\10f49f"}.fad.fa-box-usd:after{content:"\10f4a0"}.fad.fa-boxes:after{content:"\10f468"}.fad.fa-boxes-alt:after{content:"\10f4a1"}.fad.fa-boxing-glove:after{content:"\10f438"}.fad.fa-brackets:after{content:"\10f7e9"}.fad.fa-brackets-curly:after{content:"\10f7ea"}.fad.fa-braille:after{content:"\10f2a1"}.fad.fa-brain:after{content:"\10f5dc"}.fad.fa-bread-loaf:after{content:"\10f7eb"}.fad.fa-bread-slice:after{content:"\10f7ec"}.fad.fa-briefcase:after{content:"\10f0b1"}.fad.fa-briefcase-medical:after{content:"\10f469"}.fad.fa-bring-forward:after{content:"\10f856"}.fad.fa-bring-front:after{content:"\10f857"}.fad.fa-broadcast-tower:after{content:"\10f519"}.fad.fa-broom:after{content:"\10f51a"}.fad.fa-browser:after{content:"\10f37e"}.fad.fa-brush:after{content:"\10f55d"}.fad.fa-bug:after{content:"\10f188"}.fad.fa-building:after{content:"\10f1ad"}.fad.fa-bullhorn:after{content:"\10f0a1"}.fad.fa-bullseye:after{content:"\10f140"}.fad.fa-bullseye-arrow:after{content:"\10f648"}.fad.fa-bullseye-pointer:after{content:"\10f649"}.fad.fa-burger-soda:after{content:"\10f858"}.fad.fa-burn:after{content:"\10f46a"}.fad.fa-burrito:after{content:"\10f7ed"}.fad.fa-bus:after{content:"\10f207"}.fad.fa-bus-alt:after{content:"\10f55e"}.fad.fa-bus-school:after{content:"\10f5dd"}.fad.fa-business-time:after{content:"\10f64a"}.fad.fa-cabinet-filing:after{content:"\10f64b"}.fad.fa-cactus:after{content:"\10f8a7"}.fad.fa-calculator:after{content:"\10f1ec"}.fad.fa-calculator-alt:after{content:"\10f64c"}.fad.fa-calendar:after{content:"\10f133"}.fad.fa-calendar-alt:after{content:"\10f073"}.fad.fa-calendar-check:after{content:"\10f274"}.fad.fa-calendar-day:after{content:"\10f783"}.fad.fa-calendar-edit:after{content:"\10f333"}.fad.fa-calendar-exclamation:after{content:"\10f334"}.fad.fa-calendar-minus:after{content:"\10f272"}.fad.fa-calendar-plus:after{content:"\10f271"}.fad.fa-calendar-star:after{content:"\10f736"}.fad.fa-calendar-times:after{content:"\10f273"}.fad.fa-calendar-week:after{content:"\10f784"}.fad.fa-camcorder:after{content:"\10f8a8"}.fad.fa-camera:after{content:"\10f030"}.fad.fa-camera-alt:after{content:"\10f332"}.fad.fa-camera-home:after{content:"\10f8fe"}.fad.fa-camera-movie:after{content:"\10f8a9"}.fad.fa-camera-polaroid:after{content:"\10f8aa"}.fad.fa-camera-retro:after{content:"\10f083"}.fad.fa-campfire:after{content:"\10f6ba"}.fad.fa-campground:after{content:"\10f6bb"}.fad.fa-candle-holder:after{content:"\10f6bc"}.fad.fa-candy-cane:after{content:"\10f786"}.fad.fa-candy-corn:after{content:"\10f6bd"}.fad.fa-cannabis:after{content:"\10f55f"}.fad.fa-capsules:after{content:"\10f46b"}.fad.fa-car:after{content:"\10f1b9"}.fad.fa-car-alt:after{content:"\10f5de"}.fad.fa-car-battery:after{content:"\10f5df"}.fad.fa-car-building:after{content:"\10f859"}.fad.fa-car-bump:after{content:"\10f5e0"}.fad.fa-car-bus:after{content:"\10f85a"}.fad.fa-car-crash:after{content:"\10f5e1"}.fad.fa-car-garage:after{content:"\10f5e2"}.fad.fa-car-mechanic:after{content:"\10f5e3"}.fad.fa-car-side:after{content:"\10f5e4"}.fad.fa-car-tilt:after{content:"\10f5e5"}.fad.fa-car-wash:after{content:"\10f5e6"}.fad.fa-caravan:after{content:"\10f8ff"}.fad.fa-caravan-alt:after{content:"\10f900"}.fad.fa-caret-circle-down:after{content:"\10f32d"}.fad.fa-caret-circle-left:after{content:"\10f32e"}.fad.fa-caret-circle-right:after{content:"\10f330"}.fad.fa-caret-circle-up:after{content:"\10f331"}.fad.fa-caret-down:after{content:"\10f0d7"}.fad.fa-caret-left:after{content:"\10f0d9"}.fad.fa-caret-right:after{content:"\10f0da"}.fad.fa-caret-square-down:after{content:"\10f150"}.fad.fa-caret-square-left:after{content:"\10f191"}.fad.fa-caret-square-right:after{content:"\10f152"}.fad.fa-caret-square-up:after{content:"\10f151"}.fad.fa-caret-up:after{content:"\10f0d8"}.fad.fa-carrot:after{content:"\10f787"}.fad.fa-cars:after{content:"\10f85b"}.fad.fa-cart-arrow-down:after{content:"\10f218"}.fad.fa-cart-plus:after{content:"\10f217"}.fad.fa-cash-register:after{content:"\10f788"}.fad.fa-cassette-tape:after{content:"\10f8ab"}.fad.fa-cat:after{content:"\10f6be"}.fad.fa-cat-space:after{content:"\10f901"}.fad.fa-cauldron:after{content:"\10f6bf"}.fad.fa-cctv:after{content:"\10f8ac"}.fad.fa-certificate:after{content:"\10f0a3"}.fad.fa-chair:after{content:"\10f6c0"}.fad.fa-chair-office:after{content:"\10f6c1"}.fad.fa-chalkboard:after{content:"\10f51b"}.fad.fa-chalkboard-teacher:after{content:"\10f51c"}.fad.fa-charging-station:after{content:"\10f5e7"}.fad.fa-chart-area:after{content:"\10f1fe"}.fad.fa-chart-bar:after{content:"\10f080"}.fad.fa-chart-line:after{content:"\10f201"}.fad.fa-chart-line-down:after{content:"\10f64d"}.fad.fa-chart-network:after{content:"\10f78a"}.fad.fa-chart-pie:after{content:"\10f200"}.fad.fa-chart-pie-alt:after{content:"\10f64e"}.fad.fa-chart-scatter:after{content:"\10f7ee"}.fad.fa-check:after{content:"\10f00c"}.fad.fa-check-circle:after{content:"\10f058"}.fad.fa-check-double:after{content:"\10f560"}.fad.fa-check-square:after{content:"\10f14a"}.fad.fa-cheese:after{content:"\10f7ef"}.fad.fa-cheese-swiss:after{content:"\10f7f0"}.fad.fa-cheeseburger:after{content:"\10f7f1"}.fad.fa-chess:after{content:"\10f439"}.fad.fa-chess-bishop:after{content:"\10f43a"}.fad.fa-chess-bishop-alt:after{content:"\10f43b"}.fad.fa-chess-board:after{content:"\10f43c"}.fad.fa-chess-clock:after{content:"\10f43d"}.fad.fa-chess-clock-alt:after{content:"\10f43e"}.fad.fa-chess-king:after{content:"\10f43f"}.fad.fa-chess-king-alt:after{content:"\10f440"}.fad.fa-chess-knight:after{content:"\10f441"}.fad.fa-chess-knight-alt:after{content:"\10f442"}.fad.fa-chess-pawn:after{content:"\10f443"}.fad.fa-chess-pawn-alt:after{content:"\10f444"}.fad.fa-chess-queen:after{content:"\10f445"}.fad.fa-chess-queen-alt:after{content:"\10f446"}.fad.fa-chess-rook:after{content:"\10f447"}.fad.fa-chess-rook-alt:after{content:"\10f448"}.fad.fa-chevron-circle-down:after{content:"\10f13a"}.fad.fa-chevron-circle-left:after{content:"\10f137"}.fad.fa-chevron-circle-right:after{content:"\10f138"}.fad.fa-chevron-circle-up:after{content:"\10f139"}.fad.fa-chevron-double-down:after{content:"\10f322"}.fad.fa-chevron-double-left:after{content:"\10f323"}.fad.fa-chevron-double-right:after{content:"\10f324"}.fad.fa-chevron-double-up:after{content:"\10f325"}.fad.fa-chevron-down:after{content:"\10f078"}.fad.fa-chevron-left:after{content:"\10f053"}.fad.fa-chevron-right:after{content:"\10f054"}.fad.fa-chevron-square-down:after{content:"\10f329"}.fad.fa-chevron-square-left:after{content:"\10f32a"}.fad.fa-chevron-square-right:after{content:"\10f32b"}.fad.fa-chevron-square-up:after{content:"\10f32c"}.fad.fa-chevron-up:after{content:"\10f077"}.fad.fa-child:after{content:"\10f1ae"}.fad.fa-chimney:after{content:"\10f78b"}.fad.fa-church:after{content:"\10f51d"}.fad.fa-circle:after{content:"\10f111"}.fad.fa-circle-notch:after{content:"\10f1ce"}.fad.fa-city:after{content:"\10f64f"}.fad.fa-clarinet:after{content:"\10f8ad"}.fad.fa-claw-marks:after{content:"\10f6c2"}.fad.fa-clinic-medical:after{content:"\10f7f2"}.fad.fa-clipboard:after{content:"\10f328"}.fad.fa-clipboard-check:after{content:"\10f46c"}.fad.fa-clipboard-list:after{content:"\10f46d"}.fad.fa-clipboard-list-check:after{content:"\10f737"}.fad.fa-clipboard-prescription:after{content:"\10f5e8"}.fad.fa-clipboard-user:after{content:"\10f7f3"}.fad.fa-clock:after{content:"\10f017"}.fad.fa-clone:after{content:"\10f24d"}.fad.fa-closed-captioning:after{content:"\10f20a"}.fad.fa-cloud:after{content:"\10f0c2"}.fad.fa-cloud-download:after{content:"\10f0ed"}.fad.fa-cloud-download-alt:after{content:"\10f381"}.fad.fa-cloud-drizzle:after{content:"\10f738"}.fad.fa-cloud-hail:after{content:"\10f739"}.fad.fa-cloud-hail-mixed:after{content:"\10f73a"}.fad.fa-cloud-meatball:after{content:"\10f73b"}.fad.fa-cloud-moon:after{content:"\10f6c3"}.fad.fa-cloud-moon-rain:after{content:"\10f73c"}.fad.fa-cloud-music:after{content:"\10f8ae"}.fad.fa-cloud-rain:after{content:"\10f73d"}.fad.fa-cloud-rainbow:after{content:"\10f73e"}.fad.fa-cloud-showers:after{content:"\10f73f"}.fad.fa-cloud-showers-heavy:after{content:"\10f740"}.fad.fa-cloud-sleet:after{content:"\10f741"}.fad.fa-cloud-snow:after{content:"\10f742"}.fad.fa-cloud-sun:after{content:"\10f6c4"}.fad.fa-cloud-sun-rain:after{content:"\10f743"}.fad.fa-cloud-upload:after{content:"\10f0ee"}.fad.fa-cloud-upload-alt:after{content:"\10f382"}.fad.fa-clouds:after{content:"\10f744"}.fad.fa-clouds-moon:after{content:"\10f745"}.fad.fa-clouds-sun:after{content:"\10f746"}.fad.fa-club:after{content:"\10f327"}.fad.fa-cocktail:after{content:"\10f561"}.fad.fa-code:after{content:"\10f121"}.fad.fa-code-branch:after{content:"\10f126"}.fad.fa-code-commit:after{content:"\10f386"}.fad.fa-code-merge:after{content:"\10f387"}.fad.fa-coffee:after{content:"\10f0f4"}.fad.fa-coffee-pot:after{content:"\10f902"}.fad.fa-coffee-togo:after{content:"\10f6c5"}.fad.fa-coffin:after{content:"\10f6c6"}.fad.fa-cog:after{content:"\10f013"}.fad.fa-cogs:after{content:"\10f085"}.fad.fa-coin:after{content:"\10f85c"}.fad.fa-coins:after{content:"\10f51e"}.fad.fa-columns:after{content:"\10f0db"}.fad.fa-comet:after{content:"\10f903"}.fad.fa-comment:after{content:"\10f075"}.fad.fa-comment-alt:after{content:"\10f27a"}.fad.fa-comment-alt-check:after{content:"\10f4a2"}.fad.fa-comment-alt-dollar:after{content:"\10f650"}.fad.fa-comment-alt-dots:after{content:"\10f4a3"}.fad.fa-comment-alt-edit:after{content:"\10f4a4"}.fad.fa-comment-alt-exclamation:after{content:"\10f4a5"}.fad.fa-comment-alt-lines:after{content:"\10f4a6"}.fad.fa-comment-alt-medical:after{content:"\10f7f4"}.fad.fa-comment-alt-minus:after{content:"\10f4a7"}.fad.fa-comment-alt-music:after{content:"\10f8af"}.fad.fa-comment-alt-plus:after{content:"\10f4a8"}.fad.fa-comment-alt-slash:after{content:"\10f4a9"}.fad.fa-comment-alt-smile:after{content:"\10f4aa"}.fad.fa-comment-alt-times:after{content:"\10f4ab"}.fad.fa-comment-check:after{content:"\10f4ac"}.fad.fa-comment-dollar:after{content:"\10f651"}.fad.fa-comment-dots:after{content:"\10f4ad"}.fad.fa-comment-edit:after{content:"\10f4ae"}.fad.fa-comment-exclamation:after{content:"\10f4af"}.fad.fa-comment-lines:after{content:"\10f4b0"}.fad.fa-comment-medical:after{content:"\10f7f5"}.fad.fa-comment-minus:after{content:"\10f4b1"}.fad.fa-comment-music:after{content:"\10f8b0"}.fad.fa-comment-plus:after{content:"\10f4b2"}.fad.fa-comment-slash:after{content:"\10f4b3"}.fad.fa-comment-smile:after{content:"\10f4b4"}.fad.fa-comment-times:after{content:"\10f4b5"}.fad.fa-comments:after{content:"\10f086"}.fad.fa-comments-alt:after{content:"\10f4b6"}.fad.fa-comments-alt-dollar:after{content:"\10f652"}.fad.fa-comments-dollar:after{content:"\10f653"}.fad.fa-compact-disc:after{content:"\10f51f"}.fad.fa-compass:after{content:"\10f14e"}.fad.fa-compass-slash:after{content:"\10f5e9"}.fad.fa-compress:after{content:"\10f066"}.fad.fa-compress-alt:after{content:"\10f422"}.fad.fa-compress-arrows-alt:after{content:"\10f78c"}.fad.fa-compress-wide:after{content:"\10f326"}.fad.fa-computer-classic:after{content:"\10f8b1"}.fad.fa-computer-speaker:after{content:"\10f8b2"}.fad.fa-concierge-bell:after{content:"\10f562"}.fad.fa-construction:after{content:"\10f85d"}.fad.fa-container-storage:after{content:"\10f4b7"}.fad.fa-conveyor-belt:after{content:"\10f46e"}.fad.fa-conveyor-belt-alt:after{content:"\10f46f"}.fad.fa-cookie:after{content:"\10f563"}.fad.fa-cookie-bite:after{content:"\10f564"}.fad.fa-copy:after{content:"\10f0c5"}.fad.fa-copyright:after{content:"\10f1f9"}.fad.fa-corn:after{content:"\10f6c7"}.fad.fa-couch:after{content:"\10f4b8"}.fad.fa-cow:after{content:"\10f6c8"}.fad.fa-cowbell:after{content:"\10f8b3"}.fad.fa-cowbell-more:after{content:"\10f8b4"}.fad.fa-credit-card:after{content:"\10f09d"}.fad.fa-credit-card-blank:after{content:"\10f389"}.fad.fa-credit-card-front:after{content:"\10f38a"}.fad.fa-cricket:after{content:"\10f449"}.fad.fa-croissant:after{content:"\10f7f6"}.fad.fa-crop:after{content:"\10f125"}.fad.fa-crop-alt:after{content:"\10f565"}.fad.fa-cross:after{content:"\10f654"}.fad.fa-crosshairs:after{content:"\10f05b"}.fad.fa-crow:after{content:"\10f520"}.fad.fa-crown:after{content:"\10f521"}.fad.fa-crutch:after{content:"\10f7f7"}.fad.fa-crutches:after{content:"\10f7f8"}.fad.fa-cube:after{content:"\10f1b2"}.fad.fa-cubes:after{content:"\10f1b3"}.fad.fa-curling:after{content:"\10f44a"}.fad.fa-cut:after{content:"\10f0c4"}.fad.fa-dagger:after{content:"\10f6cb"}.fad.fa-database:after{content:"\10f1c0"}.fad.fa-deaf:after{content:"\10f2a4"}.fad.fa-debug:after{content:"\10f7f9"}.fad.fa-deer:after{content:"\10f78e"}.fad.fa-deer-rudolph:after{content:"\10f78f"}.fad.fa-democrat:after{content:"\10f747"}.fad.fa-desktop:after{content:"\10f108"}.fad.fa-desktop-alt:after{content:"\10f390"}.fad.fa-dewpoint:after{content:"\10f748"}.fad.fa-dharmachakra:after{content:"\10f655"}.fad.fa-diagnoses:after{content:"\10f470"}.fad.fa-diamond:after{content:"\10f219"}.fad.fa-dice:after{content:"\10f522"}.fad.fa-dice-d10:after{content:"\10f6cd"}.fad.fa-dice-d12:after{content:"\10f6ce"}.fad.fa-dice-d20:after{content:"\10f6cf"}.fad.fa-dice-d4:after{content:"\10f6d0"}.fad.fa-dice-d6:after{content:"\10f6d1"}.fad.fa-dice-d8:after{content:"\10f6d2"}.fad.fa-dice-five:after{content:"\10f523"}.fad.fa-dice-four:after{content:"\10f524"}.fad.fa-dice-one:after{content:"\10f525"}.fad.fa-dice-six:after{content:"\10f526"}.fad.fa-dice-three:after{content:"\10f527"}.fad.fa-dice-two:after{content:"\10f528"}.fad.fa-digging:after{content:"\10f85e"}.fad.fa-digital-tachograph:after{content:"\10f566"}.fad.fa-diploma:after{content:"\10f5ea"}.fad.fa-directions:after{content:"\10f5eb"}.fad.fa-disc-drive:after{content:"\10f8b5"}.fad.fa-disease:after{content:"\10f7fa"}.fad.fa-divide:after{content:"\10f529"}.fad.fa-dizzy:after{content:"\10f567"}.fad.fa-dna:after{content:"\10f471"}.fad.fa-do-not-enter:after{content:"\10f5ec"}.fad.fa-dog:after{content:"\10f6d3"}.fad.fa-dog-leashed:after{content:"\10f6d4"}.fad.fa-dollar-sign:after{content:"\10f155"}.fad.fa-dolly:after{content:"\10f472"}.fad.fa-dolly-empty:after{content:"\10f473"}.fad.fa-dolly-flatbed:after{content:"\10f474"}.fad.fa-dolly-flatbed-alt:after{content:"\10f475"}.fad.fa-dolly-flatbed-empty:after{content:"\10f476"}.fad.fa-donate:after{content:"\10f4b9"}.fad.fa-door-closed:after{content:"\10f52a"}.fad.fa-door-open:after{content:"\10f52b"}.fad.fa-dot-circle:after{content:"\10f192"}.fad.fa-dove:after{content:"\10f4ba"}.fad.fa-download:after{content:"\10f019"}.fad.fa-drafting-compass:after{content:"\10f568"}.fad.fa-dragon:after{content:"\10f6d5"}.fad.fa-draw-circle:after{content:"\10f5ed"}.fad.fa-draw-polygon:after{content:"\10f5ee"}.fad.fa-draw-square:after{content:"\10f5ef"}.fad.fa-dreidel:after{content:"\10f792"}.fad.fa-drone:after{content:"\10f85f"}.fad.fa-drone-alt:after{content:"\10f860"}.fad.fa-drum:after{content:"\10f569"}.fad.fa-drum-steelpan:after{content:"\10f56a"}.fad.fa-drumstick:after{content:"\10f6d6"}.fad.fa-drumstick-bite:after{content:"\10f6d7"}.fad.fa-dryer:after{content:"\10f861"}.fad.fa-dryer-alt:after{content:"\10f862"}.fad.fa-duck:after{content:"\10f6d8"}.fad.fa-dumbbell:after{content:"\10f44b"}.fad.fa-dumpster:after{content:"\10f793"}.fad.fa-dumpster-fire:after{content:"\10f794"}.fad.fa-dungeon:after{content:"\10f6d9"}.fad.fa-ear:after{content:"\10f5f0"}.fad.fa-ear-muffs:after{content:"\10f795"}.fad.fa-eclipse:after{content:"\10f749"}.fad.fa-eclipse-alt:after{content:"\10f74a"}.fad.fa-edit:after{content:"\10f044"}.fad.fa-egg:after{content:"\10f7fb"}.fad.fa-egg-fried:after{content:"\10f7fc"}.fad.fa-eject:after{content:"\10f052"}.fad.fa-elephant:after{content:"\10f6da"}.fad.fa-ellipsis-h:after{content:"\10f141"}.fad.fa-ellipsis-h-alt:after{content:"\10f39b"}.fad.fa-ellipsis-v:after{content:"\10f142"}.fad.fa-ellipsis-v-alt:after{content:"\10f39c"}.fad.fa-empty-set:after{content:"\10f656"}.fad.fa-engine-warning:after{content:"\10f5f2"}.fad.fa-envelope:after{content:"\10f0e0"}.fad.fa-envelope-open:after{content:"\10f2b6"}.fad.fa-envelope-open-dollar:after{content:"\10f657"}.fad.fa-envelope-open-text:after{content:"\10f658"}.fad.fa-envelope-square:after{content:"\10f199"}.fad.fa-equals:after{content:"\10f52c"}.fad.fa-eraser:after{content:"\10f12d"}.fad.fa-ethernet:after{content:"\10f796"}.fad.fa-euro-sign:after{content:"\10f153"}.fad.fa-exchange:after{content:"\10f0ec"}.fad.fa-exchange-alt:after{content:"\10f362"}.fad.fa-exclamation:after{content:"\10f12a"}.fad.fa-exclamation-circle:after{content:"\10f06a"}.fad.fa-exclamation-square:after{content:"\10f321"}.fad.fa-exclamation-triangle:after{content:"\10f071"}.fad.fa-expand:after{content:"\10f065"}.fad.fa-expand-alt:after{content:"\10f424"}.fad.fa-expand-arrows:after{content:"\10f31d"}.fad.fa-expand-arrows-alt:after{content:"\10f31e"}.fad.fa-expand-wide:after{content:"\10f320"}.fad.fa-external-link:after{content:"\10f08e"}.fad.fa-external-link-alt:after{content:"\10f35d"}.fad.fa-external-link-square:after{content:"\10f14c"}.fad.fa-external-link-square-alt:after{content:"\10f360"}.fad.fa-eye:after{content:"\10f06e"}.fad.fa-eye-dropper:after{content:"\10f1fb"}.fad.fa-eye-evil:after{content:"\10f6db"}.fad.fa-eye-slash:after{content:"\10f070"}.fad.fa-fan:after{content:"\10f863"}.fad.fa-fan-table:after{content:"\10f904"}.fad.fa-farm:after{content:"\10f864"}.fad.fa-fast-backward:after{content:"\10f049"}.fad.fa-fast-forward:after{content:"\10f050"}.fad.fa-faucet:after{content:"\10f905"}.fad.fa-faucet-drip:after{content:"\10f906"}.fad.fa-fax:after{content:"\10f1ac"}.fad.fa-feather:after{content:"\10f52d"}.fad.fa-feather-alt:after{content:"\10f56b"}.fad.fa-female:after{content:"\10f182"}.fad.fa-field-hockey:after{content:"\10f44c"}.fad.fa-fighter-jet:after{content:"\10f0fb"}.fad.fa-file:after{content:"\10f15b"}.fad.fa-file-alt:after{content:"\10f15c"}.fad.fa-file-archive:after{content:"\10f1c6"}.fad.fa-file-audio:after{content:"\10f1c7"}.fad.fa-file-certificate:after{content:"\10f5f3"}.fad.fa-file-chart-line:after{content:"\10f659"}.fad.fa-file-chart-pie:after{content:"\10f65a"}.fad.fa-file-check:after{content:"\10f316"}.fad.fa-file-code:after{content:"\10f1c9"}.fad.fa-file-contract:after{content:"\10f56c"}.fad.fa-file-csv:after{content:"\10f6dd"}.fad.fa-file-download:after{content:"\10f56d"}.fad.fa-file-edit:after{content:"\10f31c"}.fad.fa-file-excel:after{content:"\10f1c3"}.fad.fa-file-exclamation:after{content:"\10f31a"}.fad.fa-file-export:after{content:"\10f56e"}.fad.fa-file-image:after{content:"\10f1c5"}.fad.fa-file-import:after{content:"\10f56f"}.fad.fa-file-invoice:after{content:"\10f570"}.fad.fa-file-invoice-dollar:after{content:"\10f571"}.fad.fa-file-medical:after{content:"\10f477"}.fad.fa-file-medical-alt:after{content:"\10f478"}.fad.fa-file-minus:after{content:"\10f318"}.fad.fa-file-music:after{content:"\10f8b6"}.fad.fa-file-pdf:after{content:"\10f1c1"}.fad.fa-file-plus:after{content:"\10f319"}.fad.fa-file-powerpoint:after{content:"\10f1c4"}.fad.fa-file-prescription:after{content:"\10f572"}.fad.fa-file-search:after{content:"\10f865"}.fad.fa-file-signature:after{content:"\10f573"}.fad.fa-file-spreadsheet:after{content:"\10f65b"}.fad.fa-file-times:after{content:"\10f317"}.fad.fa-file-upload:after{content:"\10f574"}.fad.fa-file-user:after{content:"\10f65c"}.fad.fa-file-video:after{content:"\10f1c8"}.fad.fa-file-word:after{content:"\10f1c2"}.fad.fa-files-medical:after{content:"\10f7fd"}.fad.fa-fill:after{content:"\10f575"}.fad.fa-fill-drip:after{content:"\10f576"}.fad.fa-film:after{content:"\10f008"}.fad.fa-film-alt:after{content:"\10f3a0"}.fad.fa-film-canister:after{content:"\10f8b7"}.fad.fa-filter:after{content:"\10f0b0"}.fad.fa-fingerprint:after{content:"\10f577"}.fad.fa-fire:after{content:"\10f06d"}.fad.fa-fire-alt:after{content:"\10f7e4"}.fad.fa-fire-extinguisher:after{content:"\10f134"}.fad.fa-fire-smoke:after{content:"\10f74b"}.fad.fa-fireplace:after{content:"\10f79a"}.fad.fa-first-aid:after{content:"\10f479"}.fad.fa-fish:after{content:"\10f578"}.fad.fa-fish-cooked:after{content:"\10f7fe"}.fad.fa-fist-raised:after{content:"\10f6de"}.fad.fa-flag:after{content:"\10f024"}.fad.fa-flag-alt:after{content:"\10f74c"}.fad.fa-flag-checkered:after{content:"\10f11e"}.fad.fa-flag-usa:after{content:"\10f74d"}.fad.fa-flame:after{content:"\10f6df"}.fad.fa-flashlight:after{content:"\10f8b8"}.fad.fa-flask:after{content:"\10f0c3"}.fad.fa-flask-poison:after{content:"\10f6e0"}.fad.fa-flask-potion:after{content:"\10f6e1"}.fad.fa-flower:after{content:"\10f7ff"}.fad.fa-flower-daffodil:after{content:"\10f800"}.fad.fa-flower-tulip:after{content:"\10f801"}.fad.fa-flushed:after{content:"\10f579"}.fad.fa-flute:after{content:"\10f8b9"}.fad.fa-flux-capacitor:after{content:"\10f8ba"}.fad.fa-fog:after{content:"\10f74e"}.fad.fa-folder:after{content:"\10f07b"}.fad.fa-folder-minus:after{content:"\10f65d"}.fad.fa-folder-open:after{content:"\10f07c"}.fad.fa-folder-plus:after{content:"\10f65e"}.fad.fa-folder-times:after{content:"\10f65f"}.fad.fa-folder-tree:after{content:"\10f802"}.fad.fa-folders:after{content:"\10f660"}.fad.fa-font:after{content:"\10f031"}.fad.fa-font-awesome-logo-full:after{content:"\10f4e6"}.fad.fa-font-case:after{content:"\10f866"}.fad.fa-football-ball:after{content:"\10f44e"}.fad.fa-football-helmet:after{content:"\10f44f"}.fad.fa-forklift:after{content:"\10f47a"}.fad.fa-forward:after{content:"\10f04e"}.fad.fa-fragile:after{content:"\10f4bb"}.fad.fa-french-fries:after{content:"\10f803"}.fad.fa-frog:after{content:"\10f52e"}.fad.fa-frosty-head:after{content:"\10f79b"}.fad.fa-frown:after{content:"\10f119"}.fad.fa-frown-open:after{content:"\10f57a"}.fad.fa-function:after{content:"\10f661"}.fad.fa-funnel-dollar:after{content:"\10f662"}.fad.fa-futbol:after{content:"\10f1e3"}.fad.fa-galaxy:after{content:"\10f908"}.fad.fa-game-board:after{content:"\10f867"}.fad.fa-game-board-alt:after{content:"\10f868"}.fad.fa-game-console-handheld:after{content:"\10f8bb"}.fad.fa-gamepad:after{content:"\10f11b"}.fad.fa-gamepad-alt:after{content:"\10f8bc"}.fad.fa-garage:after{content:"\10f909"}.fad.fa-garage-car:after{content:"\10f90a"}.fad.fa-garage-open:after{content:"\10f90b"}.fad.fa-gas-pump:after{content:"\10f52f"}.fad.fa-gas-pump-slash:after{content:"\10f5f4"}.fad.fa-gavel:after{content:"\10f0e3"}.fad.fa-gem:after{content:"\10f3a5"}.fad.fa-genderless:after{content:"\10f22d"}.fad.fa-ghost:after{content:"\10f6e2"}.fad.fa-gift:after{content:"\10f06b"}.fad.fa-gift-card:after{content:"\10f663"}.fad.fa-gifts:after{content:"\10f79c"}.fad.fa-gingerbread-man:after{content:"\10f79d"}.fad.fa-glass:after{content:"\10f804"}.fad.fa-glass-champagne:after{content:"\10f79e"}.fad.fa-glass-cheers:after{content:"\10f79f"}.fad.fa-glass-citrus:after{content:"\10f869"}.fad.fa-glass-martini:after{content:"\10f000"}.fad.fa-glass-martini-alt:after{content:"\10f57b"}.fad.fa-glass-whiskey:after{content:"\10f7a0"}.fad.fa-glass-whiskey-rocks:after{content:"\10f7a1"}.fad.fa-glasses:after{content:"\10f530"}.fad.fa-glasses-alt:after{content:"\10f5f5"}.fad.fa-globe:after{content:"\10f0ac"}.fad.fa-globe-africa:after{content:"\10f57c"}.fad.fa-globe-americas:after{content:"\10f57d"}.fad.fa-globe-asia:after{content:"\10f57e"}.fad.fa-globe-europe:after{content:"\10f7a2"}.fad.fa-globe-snow:after{content:"\10f7a3"}.fad.fa-globe-stand:after{content:"\10f5f6"}.fad.fa-golf-ball:after{content:"\10f450"}.fad.fa-golf-club:after{content:"\10f451"}.fad.fa-gopuram:after{content:"\10f664"}.fad.fa-graduation-cap:after{content:"\10f19d"}.fad.fa-gramophone:after{content:"\10f8bd"}.fad.fa-greater-than:after{content:"\10f531"}.fad.fa-greater-than-equal:after{content:"\10f532"}.fad.fa-grimace:after{content:"\10f57f"}.fad.fa-grin:after{content:"\10f580"}.fad.fa-grin-alt:after{content:"\10f581"}.fad.fa-grin-beam:after{content:"\10f582"}.fad.fa-grin-beam-sweat:after{content:"\10f583"}.fad.fa-grin-hearts:after{content:"\10f584"}.fad.fa-grin-squint:after{content:"\10f585"}.fad.fa-grin-squint-tears:after{content:"\10f586"}.fad.fa-grin-stars:after{content:"\10f587"}.fad.fa-grin-tears:after{content:"\10f588"}.fad.fa-grin-tongue:after{content:"\10f589"}.fad.fa-grin-tongue-squint:after{content:"\10f58a"}.fad.fa-grin-tongue-wink:after{content:"\10f58b"}.fad.fa-grin-wink:after{content:"\10f58c"}.fad.fa-grip-horizontal:after{content:"\10f58d"}.fad.fa-grip-lines:after{content:"\10f7a4"}.fad.fa-grip-lines-vertical:after{content:"\10f7a5"}.fad.fa-grip-vertical:after{content:"\10f58e"}.fad.fa-guitar:after{content:"\10f7a6"}.fad.fa-guitar-electric:after{content:"\10f8be"}.fad.fa-guitars:after{content:"\10f8bf"}.fad.fa-h-square:after{content:"\10f0fd"}.fad.fa-h1:after{content:"\10f313"}.fad.fa-h2:after{content:"\10f314"}.fad.fa-h3:after{content:"\10f315"}.fad.fa-h4:after{content:"\10f86a"}.fad.fa-hamburger:after{content:"\10f805"}.fad.fa-hammer:after{content:"\10f6e3"}.fad.fa-hammer-war:after{content:"\10f6e4"}.fad.fa-hamsa:after{content:"\10f665"}.fad.fa-hand-heart:after{content:"\10f4bc"}.fad.fa-hand-holding:after{content:"\10f4bd"}.fad.fa-hand-holding-box:after{content:"\10f47b"}.fad.fa-hand-holding-heart:after{content:"\10f4be"}.fad.fa-hand-holding-magic:after{content:"\10f6e5"}.fad.fa-hand-holding-seedling:after{content:"\10f4bf"}.fad.fa-hand-holding-usd:after{content:"\10f4c0"}.fad.fa-hand-holding-water:after{content:"\10f4c1"}.fad.fa-hand-lizard:after{content:"\10f258"}.fad.fa-hand-middle-finger:after{content:"\10f806"}.fad.fa-hand-paper:after{content:"\10f256"}.fad.fa-hand-peace:after{content:"\10f25b"}.fad.fa-hand-point-down:after{content:"\10f0a7"}.fad.fa-hand-point-left:after{content:"\10f0a5"}.fad.fa-hand-point-right:after{content:"\10f0a4"}.fad.fa-hand-point-up:after{content:"\10f0a6"}.fad.fa-hand-pointer:after{content:"\10f25a"}.fad.fa-hand-receiving:after{content:"\10f47c"}.fad.fa-hand-rock:after{content:"\10f255"}.fad.fa-hand-scissors:after{content:"\10f257"}.fad.fa-hand-spock:after{content:"\10f259"}.fad.fa-hands:after{content:"\10f4c2"}.fad.fa-hands-heart:after{content:"\10f4c3"}.fad.fa-hands-helping:after{content:"\10f4c4"}.fad.fa-hands-usd:after{content:"\10f4c5"}.fad.fa-handshake:after{content:"\10f2b5"}.fad.fa-handshake-alt:after{content:"\10f4c6"}.fad.fa-hanukiah:after{content:"\10f6e6"}.fad.fa-hard-hat:after{content:"\10f807"}.fad.fa-hashtag:after{content:"\10f292"}.fad.fa-hat-chef:after{content:"\10f86b"}.fad.fa-hat-cowboy:after{content:"\10f8c0"}.fad.fa-hat-cowboy-side:after{content:"\10f8c1"}.fad.fa-hat-santa:after{content:"\10f7a7"}.fad.fa-hat-winter:after{content:"\10f7a8"}.fad.fa-hat-witch:after{content:"\10f6e7"}.fad.fa-hat-wizard:after{content:"\10f6e8"}.fad.fa-hdd:after{content:"\10f0a0"}.fad.fa-head-side:after{content:"\10f6e9"}.fad.fa-head-side-brain:after{content:"\10f808"}.fad.fa-head-side-headphones:after{content:"\10f8c2"}.fad.fa-head-side-medical:after{content:"\10f809"}.fad.fa-head-vr:after{content:"\10f6ea"}.fad.fa-heading:after{content:"\10f1dc"}.fad.fa-headphones:after{content:"\10f025"}.fad.fa-headphones-alt:after{content:"\10f58f"}.fad.fa-headset:after{content:"\10f590"}.fad.fa-heart:after{content:"\10f004"}.fad.fa-heart-broken:after{content:"\10f7a9"}.fad.fa-heart-circle:after{content:"\10f4c7"}.fad.fa-heart-rate:after{content:"\10f5f8"}.fad.fa-heart-square:after{content:"\10f4c8"}.fad.fa-heartbeat:after{content:"\10f21e"}.fad.fa-heat:after{content:"\10f90c"}.fad.fa-helicopter:after{content:"\10f533"}.fad.fa-helmet-battle:after{content:"\10f6eb"}.fad.fa-hexagon:after{content:"\10f312"}.fad.fa-highlighter:after{content:"\10f591"}.fad.fa-hiking:after{content:"\10f6ec"}.fad.fa-hippo:after{content:"\10f6ed"}.fad.fa-history:after{content:"\10f1da"}.fad.fa-hockey-mask:after{content:"\10f6ee"}.fad.fa-hockey-puck:after{content:"\10f453"}.fad.fa-hockey-sticks:after{content:"\10f454"}.fad.fa-holly-berry:after{content:"\10f7aa"}.fad.fa-home:after{content:"\10f015"}.fad.fa-home-alt:after{content:"\10f80a"}.fad.fa-home-heart:after{content:"\10f4c9"}.fad.fa-home-lg:after{content:"\10f80b"}.fad.fa-home-lg-alt:after{content:"\10f80c"}.fad.fa-hood-cloak:after{content:"\10f6ef"}.fad.fa-horizontal-rule:after{content:"\10f86c"}.fad.fa-horse:after{content:"\10f6f0"}.fad.fa-horse-head:after{content:"\10f7ab"}.fad.fa-horse-saddle:after{content:"\10f8c3"}.fad.fa-hospital:after{content:"\10f0f8"}.fad.fa-hospital-alt:after{content:"\10f47d"}.fad.fa-hospital-symbol:after{content:"\10f47e"}.fad.fa-hospital-user:after{content:"\10f80d"}.fad.fa-hospitals:after{content:"\10f80e"}.fad.fa-hot-tub:after{content:"\10f593"}.fad.fa-hotdog:after{content:"\10f80f"}.fad.fa-hotel:after{content:"\10f594"}.fad.fa-hourglass:after{content:"\10f254"}.fad.fa-hourglass-end:after{content:"\10f253"}.fad.fa-hourglass-half:after{content:"\10f252"}.fad.fa-hourglass-start:after{content:"\10f251"}.fad.fa-house:after{content:"\10f90d"}.fad.fa-house-damage:after{content:"\10f6f1"}.fad.fa-house-day:after{content:"\10f90e"}.fad.fa-house-flood:after{content:"\10f74f"}.fad.fa-house-leave:after{content:"\10f90f"}.fad.fa-house-night:after{content:"\10f910"}.fad.fa-house-return:after{content:"\10f911"}.fad.fa-house-signal:after{content:"\10f912"}.fad.fa-hryvnia:after{content:"\10f6f2"}.fad.fa-humidity:after{content:"\10f750"}.fad.fa-hurricane:after{content:"\10f751"}.fad.fa-i-cursor:after{content:"\10f246"}.fad.fa-ice-cream:after{content:"\10f810"}.fad.fa-ice-skate:after{content:"\10f7ac"}.fad.fa-icicles:after{content:"\10f7ad"}.fad.fa-icons:after{content:"\10f86d"}.fad.fa-icons-alt:after{content:"\10f86e"}.fad.fa-id-badge:after{content:"\10f2c1"}.fad.fa-id-card:after{content:"\10f2c2"}.fad.fa-id-card-alt:after{content:"\10f47f"}.fad.fa-igloo:after{content:"\10f7ae"}.fad.fa-image:after{content:"\10f03e"}.fad.fa-image-polaroid:after{content:"\10f8c4"}.fad.fa-images:after{content:"\10f302"}.fad.fa-inbox:after{content:"\10f01c"}.fad.fa-inbox-in:after{content:"\10f310"}.fad.fa-inbox-out:after{content:"\10f311"}.fad.fa-indent:after{content:"\10f03c"}.fad.fa-industry:after{content:"\10f275"}.fad.fa-industry-alt:after{content:"\10f3b3"}.fad.fa-infinity:after{content:"\10f534"}.fad.fa-info:after{content:"\10f129"}.fad.fa-info-circle:after{content:"\10f05a"}.fad.fa-info-square:after{content:"\10f30f"}.fad.fa-inhaler:after{content:"\10f5f9"}.fad.fa-integral:after{content:"\10f667"}.fad.fa-intersection:after{content:"\10f668"}.fad.fa-inventory:after{content:"\10f480"}.fad.fa-island-tropical:after{content:"\10f811"}.fad.fa-italic:after{content:"\10f033"}.fad.fa-jack-o-lantern:after{content:"\10f30e"}.fad.fa-jedi:after{content:"\10f669"}.fad.fa-joint:after{content:"\10f595"}.fad.fa-journal-whills:after{content:"\10f66a"}.fad.fa-joystick:after{content:"\10f8c5"}.fad.fa-jug:after{content:"\10f8c6"}.fad.fa-kaaba:after{content:"\10f66b"}.fad.fa-kazoo:after{content:"\10f8c7"}.fad.fa-kerning:after{content:"\10f86f"}.fad.fa-key:after{content:"\10f084"}.fad.fa-key-skeleton:after{content:"\10f6f3"}.fad.fa-keyboard:after{content:"\10f11c"}.fad.fa-keynote:after{content:"\10f66c"}.fad.fa-khanda:after{content:"\10f66d"}.fad.fa-kidneys:after{content:"\10f5fb"}.fad.fa-kiss:after{content:"\10f596"}.fad.fa-kiss-beam:after{content:"\10f597"}.fad.fa-kiss-wink-heart:after{content:"\10f598"}.fad.fa-kite:after{content:"\10f6f4"}.fad.fa-kiwi-bird:after{content:"\10f535"}.fad.fa-knife-kitchen:after{content:"\10f6f5"}.fad.fa-lambda:after{content:"\10f66e"}.fad.fa-lamp:after{content:"\10f4ca"}.fad.fa-lamp-desk:after{content:"\10f914"}.fad.fa-lamp-floor:after{content:"\10f915"}.fad.fa-landmark:after{content:"\10f66f"}.fad.fa-landmark-alt:after{content:"\10f752"}.fad.fa-language:after{content:"\10f1ab"}.fad.fa-laptop:after{content:"\10f109"}.fad.fa-laptop-code:after{content:"\10f5fc"}.fad.fa-laptop-medical:after{content:"\10f812"}.fad.fa-lasso:after{content:"\10f8c8"}.fad.fa-laugh:after{content:"\10f599"}.fad.fa-laugh-beam:after{content:"\10f59a"}.fad.fa-laugh-squint:after{content:"\10f59b"}.fad.fa-laugh-wink:after{content:"\10f59c"}.fad.fa-layer-group:after{content:"\10f5fd"}.fad.fa-layer-minus:after{content:"\10f5fe"}.fad.fa-layer-plus:after{content:"\10f5ff"}.fad.fa-leaf:after{content:"\10f06c"}.fad.fa-leaf-heart:after{content:"\10f4cb"}.fad.fa-leaf-maple:after{content:"\10f6f6"}.fad.fa-leaf-oak:after{content:"\10f6f7"}.fad.fa-lemon:after{content:"\10f094"}.fad.fa-less-than:after{content:"\10f536"}.fad.fa-less-than-equal:after{content:"\10f537"}.fad.fa-level-down:after{content:"\10f149"}.fad.fa-level-down-alt:after{content:"\10f3be"}.fad.fa-level-up:after{content:"\10f148"}.fad.fa-level-up-alt:after{content:"\10f3bf"}.fad.fa-life-ring:after{content:"\10f1cd"}.fad.fa-light-ceiling:after{content:"\10f916"}.fad.fa-light-switch:after{content:"\10f917"}.fad.fa-light-switch-off:after{content:"\10f918"}.fad.fa-light-switch-on:after{content:"\10f919"}.fad.fa-lightbulb:after{content:"\10f0eb"}.fad.fa-lightbulb-dollar:after{content:"\10f670"}.fad.fa-lightbulb-exclamation:after{content:"\10f671"}.fad.fa-lightbulb-on:after{content:"\10f672"}.fad.fa-lightbulb-slash:after{content:"\10f673"}.fad.fa-lights-holiday:after{content:"\10f7b2"}.fad.fa-line-columns:after{content:"\10f870"}.fad.fa-line-height:after{content:"\10f871"}.fad.fa-link:after{content:"\10f0c1"}.fad.fa-lips:after{content:"\10f600"}.fad.fa-lira-sign:after{content:"\10f195"}.fad.fa-list:after{content:"\10f03a"}.fad.fa-list-alt:after{content:"\10f022"}.fad.fa-list-music:after{content:"\10f8c9"}.fad.fa-list-ol:after{content:"\10f0cb"}.fad.fa-list-ul:after{content:"\10f0ca"}.fad.fa-location:after{content:"\10f601"}.fad.fa-location-arrow:after{content:"\10f124"}.fad.fa-location-circle:after{content:"\10f602"}.fad.fa-location-slash:after{content:"\10f603"}.fad.fa-lock:after{content:"\10f023"}.fad.fa-lock-alt:after{content:"\10f30d"}.fad.fa-lock-open:after{content:"\10f3c1"}.fad.fa-lock-open-alt:after{content:"\10f3c2"}.fad.fa-long-arrow-alt-down:after{content:"\10f309"}.fad.fa-long-arrow-alt-left:after{content:"\10f30a"}.fad.fa-long-arrow-alt-right:after{content:"\10f30b"}.fad.fa-long-arrow-alt-up:after{content:"\10f30c"}.fad.fa-long-arrow-down:after{content:"\10f175"}.fad.fa-long-arrow-left:after{content:"\10f177"}.fad.fa-long-arrow-right:after{content:"\10f178"}.fad.fa-long-arrow-up:after{content:"\10f176"}.fad.fa-loveseat:after{content:"\10f4cc"}.fad.fa-low-vision:after{content:"\10f2a8"}.fad.fa-luchador:after{content:"\10f455"}.fad.fa-luggage-cart:after{content:"\10f59d"}.fad.fa-lungs:after{content:"\10f604"}.fad.fa-mace:after{content:"\10f6f8"}.fad.fa-magic:after{content:"\10f0d0"}.fad.fa-magnet:after{content:"\10f076"}.fad.fa-mail-bulk:after{content:"\10f674"}.fad.fa-mailbox:after{content:"\10f813"}.fad.fa-male:after{content:"\10f183"}.fad.fa-mandolin:after{content:"\10f6f9"}.fad.fa-map:after{content:"\10f279"}.fad.fa-map-marked:after{content:"\10f59f"}.fad.fa-map-marked-alt:after{content:"\10f5a0"}.fad.fa-map-marker:after{content:"\10f041"}.fad.fa-map-marker-alt:after{content:"\10f3c5"}.fad.fa-map-marker-alt-slash:after{content:"\10f605"}.fad.fa-map-marker-check:after{content:"\10f606"}.fad.fa-map-marker-edit:after{content:"\10f607"}.fad.fa-map-marker-exclamation:after{content:"\10f608"}.fad.fa-map-marker-minus:after{content:"\10f609"}.fad.fa-map-marker-plus:after{content:"\10f60a"}.fad.fa-map-marker-question:after{content:"\10f60b"}.fad.fa-map-marker-slash:after{content:"\10f60c"}.fad.fa-map-marker-smile:after{content:"\10f60d"}.fad.fa-map-marker-times:after{content:"\10f60e"}.fad.fa-map-pin:after{content:"\10f276"}.fad.fa-map-signs:after{content:"\10f277"}.fad.fa-marker:after{content:"\10f5a1"}.fad.fa-mars:after{content:"\10f222"}.fad.fa-mars-double:after{content:"\10f227"}.fad.fa-mars-stroke:after{content:"\10f229"}.fad.fa-mars-stroke-h:after{content:"\10f22b"}.fad.fa-mars-stroke-v:after{content:"\10f22a"}.fad.fa-mask:after{content:"\10f6fa"}.fad.fa-meat:after{content:"\10f814"}.fad.fa-medal:after{content:"\10f5a2"}.fad.fa-medkit:after{content:"\10f0fa"}.fad.fa-megaphone:after{content:"\10f675"}.fad.fa-meh:after{content:"\10f11a"}.fad.fa-meh-blank:after{content:"\10f5a4"}.fad.fa-meh-rolling-eyes:after{content:"\10f5a5"}.fad.fa-memory:after{content:"\10f538"}.fad.fa-menorah:after{content:"\10f676"}.fad.fa-mercury:after{content:"\10f223"}.fad.fa-meteor:after{content:"\10f753"}.fad.fa-microchip:after{content:"\10f2db"}.fad.fa-microphone:after{content:"\10f130"}.fad.fa-microphone-alt:after{content:"\10f3c9"}.fad.fa-microphone-alt-slash:after{content:"\10f539"}.fad.fa-microphone-slash:after{content:"\10f131"}.fad.fa-microphone-stand:after{content:"\10f8cb"}.fad.fa-microscope:after{content:"\10f610"}.fad.fa-microwave:after{content:"\10f91b"}.fad.fa-mind-share:after{content:"\10f677"}.fad.fa-minus:after{content:"\10f068"}.fad.fa-minus-circle:after{content:"\10f056"}.fad.fa-minus-hexagon:after{content:"\10f307"}.fad.fa-minus-octagon:after{content:"\10f308"}.fad.fa-minus-square:after{content:"\10f146"}.fad.fa-mistletoe:after{content:"\10f7b4"}.fad.fa-mitten:after{content:"\10f7b5"}.fad.fa-mobile:after{content:"\10f10b"}.fad.fa-mobile-alt:after{content:"\10f3cd"}.fad.fa-mobile-android:after{content:"\10f3ce"}.fad.fa-mobile-android-alt:after{content:"\10f3cf"}.fad.fa-money-bill:after{content:"\10f0d6"}.fad.fa-money-bill-alt:after{content:"\10f3d1"}.fad.fa-money-bill-wave:after{content:"\10f53a"}.fad.fa-money-bill-wave-alt:after{content:"\10f53b"}.fad.fa-money-check:after{content:"\10f53c"}.fad.fa-money-check-alt:after{content:"\10f53d"}.fad.fa-money-check-edit:after{content:"\10f872"}.fad.fa-money-check-edit-alt:after{content:"\10f873"}.fad.fa-monitor-heart-rate:after{content:"\10f611"}.fad.fa-monkey:after{content:"\10f6fb"}.fad.fa-monument:after{content:"\10f5a6"}.fad.fa-moon:after{content:"\10f186"}.fad.fa-moon-cloud:after{content:"\10f754"}.fad.fa-moon-stars:after{content:"\10f755"}.fad.fa-mortar-pestle:after{content:"\10f5a7"}.fad.fa-mosque:after{content:"\10f678"}.fad.fa-motorcycle:after{content:"\10f21c"}.fad.fa-mountain:after{content:"\10f6fc"}.fad.fa-mountains:after{content:"\10f6fd"}.fad.fa-mouse:after{content:"\10f8cc"}.fad.fa-mouse-alt:after{content:"\10f8cd"}.fad.fa-mouse-pointer:after{content:"\10f245"}.fad.fa-mp3-player:after{content:"\10f8ce"}.fad.fa-mug:after{content:"\10f874"}.fad.fa-mug-hot:after{content:"\10f7b6"}.fad.fa-mug-marshmallows:after{content:"\10f7b7"}.fad.fa-mug-tea:after{content:"\10f875"}.fad.fa-music:after{content:"\10f001"}.fad.fa-music-alt:after{content:"\10f8cf"}.fad.fa-music-alt-slash:after{content:"\10f8d0"}.fad.fa-music-slash:after{content:"\10f8d1"}.fad.fa-narwhal:after{content:"\10f6fe"}.fad.fa-network-wired:after{content:"\10f6ff"}.fad.fa-neuter:after{content:"\10f22c"}.fad.fa-newspaper:after{content:"\10f1ea"}.fad.fa-not-equal:after{content:"\10f53e"}.fad.fa-notes-medical:after{content:"\10f481"}.fad.fa-object-group:after{content:"\10f247"}.fad.fa-object-ungroup:after{content:"\10f248"}.fad.fa-octagon:after{content:"\10f306"}.fad.fa-oil-can:after{content:"\10f613"}.fad.fa-oil-temp:after{content:"\10f614"}.fad.fa-om:after{content:"\10f679"}.fad.fa-omega:after{content:"\10f67a"}.fad.fa-ornament:after{content:"\10f7b8"}.fad.fa-otter:after{content:"\10f700"}.fad.fa-outdent:after{content:"\10f03b"}.fad.fa-outlet:after{content:"\10f91c"}.fad.fa-oven:after{content:"\10f91d"}.fad.fa-overline:after{content:"\10f876"}.fad.fa-page-break:after{content:"\10f877"}.fad.fa-pager:after{content:"\10f815"}.fad.fa-paint-brush:after{content:"\10f1fc"}.fad.fa-paint-brush-alt:after{content:"\10f5a9"}.fad.fa-paint-roller:after{content:"\10f5aa"}.fad.fa-palette:after{content:"\10f53f"}.fad.fa-pallet:after{content:"\10f482"}.fad.fa-pallet-alt:after{content:"\10f483"}.fad.fa-paper-plane:after{content:"\10f1d8"}.fad.fa-paperclip:after{content:"\10f0c6"}.fad.fa-parachute-box:after{content:"\10f4cd"}.fad.fa-paragraph:after{content:"\10f1dd"}.fad.fa-paragraph-rtl:after{content:"\10f878"}.fad.fa-parking:after{content:"\10f540"}.fad.fa-parking-circle:after{content:"\10f615"}.fad.fa-parking-circle-slash:after{content:"\10f616"}.fad.fa-parking-slash:after{content:"\10f617"}.fad.fa-passport:after{content:"\10f5ab"}.fad.fa-pastafarianism:after{content:"\10f67b"}.fad.fa-paste:after{content:"\10f0ea"}.fad.fa-pause:after{content:"\10f04c"}.fad.fa-pause-circle:after{content:"\10f28b"}.fad.fa-paw:after{content:"\10f1b0"}.fad.fa-paw-alt:after{content:"\10f701"}.fad.fa-paw-claws:after{content:"\10f702"}.fad.fa-peace:after{content:"\10f67c"}.fad.fa-pegasus:after{content:"\10f703"}.fad.fa-pen:after{content:"\10f304"}.fad.fa-pen-alt:after{content:"\10f305"}.fad.fa-pen-fancy:after{content:"\10f5ac"}.fad.fa-pen-nib:after{content:"\10f5ad"}.fad.fa-pen-square:after{content:"\10f14b"}.fad.fa-pencil:after{content:"\10f040"}.fad.fa-pencil-alt:after{content:"\10f303"}.fad.fa-pencil-paintbrush:after{content:"\10f618"}.fad.fa-pencil-ruler:after{content:"\10f5ae"}.fad.fa-pennant:after{content:"\10f456"}.fad.fa-people-carry:after{content:"\10f4ce"}.fad.fa-pepper-hot:after{content:"\10f816"}.fad.fa-percent:after{content:"\10f295"}.fad.fa-percentage:after{content:"\10f541"}.fad.fa-person-booth:after{content:"\10f756"}.fad.fa-person-carry:after{content:"\10f4cf"}.fad.fa-person-dolly:after{content:"\10f4d0"}.fad.fa-person-dolly-empty:after{content:"\10f4d1"}.fad.fa-person-sign:after{content:"\10f757"}.fad.fa-phone:after{content:"\10f095"}.fad.fa-phone-alt:after{content:"\10f879"}.fad.fa-phone-laptop:after{content:"\10f87a"}.fad.fa-phone-office:after{content:"\10f67d"}.fad.fa-phone-plus:after{content:"\10f4d2"}.fad.fa-phone-rotary:after{content:"\10f8d3"}.fad.fa-phone-slash:after{content:"\10f3dd"}.fad.fa-phone-square:after{content:"\10f098"}.fad.fa-phone-square-alt:after{content:"\10f87b"}.fad.fa-phone-volume:after{content:"\10f2a0"}.fad.fa-photo-video:after{content:"\10f87c"}.fad.fa-pi:after{content:"\10f67e"}.fad.fa-piano:after{content:"\10f8d4"}.fad.fa-piano-keyboard:after{content:"\10f8d5"}.fad.fa-pie:after{content:"\10f705"}.fad.fa-pig:after{content:"\10f706"}.fad.fa-piggy-bank:after{content:"\10f4d3"}.fad.fa-pills:after{content:"\10f484"}.fad.fa-pizza:after{content:"\10f817"}.fad.fa-pizza-slice:after{content:"\10f818"}.fad.fa-place-of-worship:after{content:"\10f67f"}.fad.fa-plane:after{content:"\10f072"}.fad.fa-plane-alt:after{content:"\10f3de"}.fad.fa-plane-arrival:after{content:"\10f5af"}.fad.fa-plane-departure:after{content:"\10f5b0"}.fad.fa-planet-moon:after{content:"\10f91f"}.fad.fa-planet-ringed:after{content:"\10f920"}.fad.fa-play:after{content:"\10f04b"}.fad.fa-play-circle:after{content:"\10f144"}.fad.fa-plug:after{content:"\10f1e6"}.fad.fa-plus:after{content:"\10f067"}.fad.fa-plus-circle:after{content:"\10f055"}.fad.fa-plus-hexagon:after{content:"\10f300"}.fad.fa-plus-octagon:after{content:"\10f301"}.fad.fa-plus-square:after{content:"\10f0fe"}.fad.fa-podcast:after{content:"\10f2ce"}.fad.fa-podium:after{content:"\10f680"}.fad.fa-podium-star:after{content:"\10f758"}.fad.fa-police-box:after{content:"\10f921"}.fad.fa-poll:after{content:"\10f681"}.fad.fa-poll-h:after{content:"\10f682"}.fad.fa-poll-people:after{content:"\10f759"}.fad.fa-poo:after{content:"\10f2fe"}.fad.fa-poo-storm:after{content:"\10f75a"}.fad.fa-poop:after{content:"\10f619"}.fad.fa-popcorn:after{content:"\10f819"}.fad.fa-portal-enter:after{content:"\10f922"}.fad.fa-portal-exit:after{content:"\10f923"}.fad.fa-portrait:after{content:"\10f3e0"}.fad.fa-pound-sign:after{content:"\10f154"}.fad.fa-power-off:after{content:"\10f011"}.fad.fa-pray:after{content:"\10f683"}.fad.fa-praying-hands:after{content:"\10f684"}.fad.fa-prescription:after{content:"\10f5b1"}.fad.fa-prescription-bottle:after{content:"\10f485"}.fad.fa-prescription-bottle-alt:after{content:"\10f486"}.fad.fa-presentation:after{content:"\10f685"}.fad.fa-print:after{content:"\10f02f"}.fad.fa-print-search:after{content:"\10f81a"}.fad.fa-print-slash:after{content:"\10f686"}.fad.fa-procedures:after{content:"\10f487"}.fad.fa-project-diagram:after{content:"\10f542"}.fad.fa-projector:after{content:"\10f8d6"}.fad.fa-pumpkin:after{content:"\10f707"}.fad.fa-puzzle-piece:after{content:"\10f12e"}.fad.fa-qrcode:after{content:"\10f029"}.fad.fa-question:after{content:"\10f128"}.fad.fa-question-circle:after{content:"\10f059"}.fad.fa-question-square:after{content:"\10f2fd"}.fad.fa-quidditch:after{content:"\10f458"}.fad.fa-quote-left:after{content:"\10f10d"}.fad.fa-quote-right:after{content:"\10f10e"}.fad.fa-quran:after{content:"\10f687"}.fad.fa-rabbit:after{content:"\10f708"}.fad.fa-rabbit-fast:after{content:"\10f709"}.fad.fa-racquet:after{content:"\10f45a"}.fad.fa-radar:after{content:"\10f924"}.fad.fa-radiation:after{content:"\10f7b9"}.fad.fa-radiation-alt:after{content:"\10f7ba"}.fad.fa-radio:after{content:"\10f8d7"}.fad.fa-radio-alt:after{content:"\10f8d8"}.fad.fa-rainbow:after{content:"\10f75b"}.fad.fa-raindrops:after{content:"\10f75c"}.fad.fa-ram:after{content:"\10f70a"}.fad.fa-ramp-loading:after{content:"\10f4d4"}.fad.fa-random:after{content:"\10f074"}.fad.fa-raygun:after{content:"\10f925"}.fad.fa-receipt:after{content:"\10f543"}.fad.fa-record-vinyl:after{content:"\10f8d9"}.fad.fa-rectangle-landscape:after{content:"\10f2fa"}.fad.fa-rectangle-portrait:after{content:"\10f2fb"}.fad.fa-rectangle-wide:after{content:"\10f2fc"}.fad.fa-recycle:after{content:"\10f1b8"}.fad.fa-redo:after{content:"\10f01e"}.fad.fa-redo-alt:after{content:"\10f2f9"}.fad.fa-refrigerator:after{content:"\10f926"}.fad.fa-registered:after{content:"\10f25d"}.fad.fa-remove-format:after{content:"\10f87d"}.fad.fa-repeat:after{content:"\10f363"}.fad.fa-repeat-1:after{content:"\10f365"}.fad.fa-repeat-1-alt:after{content:"\10f366"}.fad.fa-repeat-alt:after{content:"\10f364"}.fad.fa-reply:after{content:"\10f3e5"}.fad.fa-reply-all:after{content:"\10f122"}.fad.fa-republican:after{content:"\10f75e"}.fad.fa-restroom:after{content:"\10f7bd"}.fad.fa-retweet:after{content:"\10f079"}.fad.fa-retweet-alt:after{content:"\10f361"}.fad.fa-ribbon:after{content:"\10f4d6"}.fad.fa-ring:after{content:"\10f70b"}.fad.fa-rings-wedding:after{content:"\10f81b"}.fad.fa-road:after{content:"\10f018"}.fad.fa-robot:after{content:"\10f544"}.fad.fa-rocket:after{content:"\10f135"}.fad.fa-rocket-launch:after{content:"\10f927"}.fad.fa-route:after{content:"\10f4d7"}.fad.fa-route-highway:after{content:"\10f61a"}.fad.fa-route-interstate:after{content:"\10f61b"}.fad.fa-router:after{content:"\10f8da"}.fad.fa-rss:after{content:"\10f09e"}.fad.fa-rss-square:after{content:"\10f143"}.fad.fa-ruble-sign:after{content:"\10f158"}.fad.fa-ruler:after{content:"\10f545"}.fad.fa-ruler-combined:after{content:"\10f546"}.fad.fa-ruler-horizontal:after{content:"\10f547"}.fad.fa-ruler-triangle:after{content:"\10f61c"}.fad.fa-ruler-vertical:after{content:"\10f548"}.fad.fa-running:after{content:"\10f70c"}.fad.fa-rupee-sign:after{content:"\10f156"}.fad.fa-rv:after{content:"\10f7be"}.fad.fa-sack:after{content:"\10f81c"}.fad.fa-sack-dollar:after{content:"\10f81d"}.fad.fa-sad-cry:after{content:"\10f5b3"}.fad.fa-sad-tear:after{content:"\10f5b4"}.fad.fa-salad:after{content:"\10f81e"}.fad.fa-sandwich:after{content:"\10f81f"}.fad.fa-satellite:after{content:"\10f7bf"}.fad.fa-satellite-dish:after{content:"\10f7c0"}.fad.fa-sausage:after{content:"\10f820"}.fad.fa-save:after{content:"\10f0c7"}.fad.fa-sax-hot:after{content:"\10f8db"}.fad.fa-saxophone:after{content:"\10f8dc"}.fad.fa-scalpel:after{content:"\10f61d"}.fad.fa-scalpel-path:after{content:"\10f61e"}.fad.fa-scanner:after{content:"\10f488"}.fad.fa-scanner-image:after{content:"\10f8f3"}.fad.fa-scanner-keyboard:after{content:"\10f489"}.fad.fa-scanner-touchscreen:after{content:"\10f48a"}.fad.fa-scarecrow:after{content:"\10f70d"}.fad.fa-scarf:after{content:"\10f7c1"}.fad.fa-school:after{content:"\10f549"}.fad.fa-screwdriver:after{content:"\10f54a"}.fad.fa-scroll:after{content:"\10f70e"}.fad.fa-scroll-old:after{content:"\10f70f"}.fad.fa-scrubber:after{content:"\10f2f8"}.fad.fa-scythe:after{content:"\10f710"}.fad.fa-sd-card:after{content:"\10f7c2"}.fad.fa-search:after{content:"\10f002"}.fad.fa-search-dollar:after{content:"\10f688"}.fad.fa-search-location:after{content:"\10f689"}.fad.fa-search-minus:after{content:"\10f010"}.fad.fa-search-plus:after{content:"\10f00e"}.fad.fa-seedling:after{content:"\10f4d8"}.fad.fa-send-back:after{content:"\10f87e"}.fad.fa-send-backward:after{content:"\10f87f"}.fad.fa-sensor:after{content:"\10f928"}.fad.fa-sensor-alert:after{content:"\10f929"}.fad.fa-sensor-fire:after{content:"\10f92a"}.fad.fa-sensor-on:after{content:"\10f92b"}.fad.fa-sensor-smoke:after{content:"\10f92c"}.fad.fa-server:after{content:"\10f233"}.fad.fa-shapes:after{content:"\10f61f"}.fad.fa-share:after{content:"\10f064"}.fad.fa-share-all:after{content:"\10f367"}.fad.fa-share-alt:after{content:"\10f1e0"}.fad.fa-share-alt-square:after{content:"\10f1e1"}.fad.fa-share-square:after{content:"\10f14d"}.fad.fa-sheep:after{content:"\10f711"}.fad.fa-shekel-sign:after{content:"\10f20b"}.fad.fa-shield:after{content:"\10f132"}.fad.fa-shield-alt:after{content:"\10f3ed"}.fad.fa-shield-check:after{content:"\10f2f7"}.fad.fa-shield-cross:after{content:"\10f712"}.fad.fa-ship:after{content:"\10f21a"}.fad.fa-shipping-fast:after{content:"\10f48b"}.fad.fa-shipping-timed:after{content:"\10f48c"}.fad.fa-shish-kebab:after{content:"\10f821"}.fad.fa-shoe-prints:after{content:"\10f54b"}.fad.fa-shopping-bag:after{content:"\10f290"}.fad.fa-shopping-basket:after{content:"\10f291"}.fad.fa-shopping-cart:after{content:"\10f07a"}.fad.fa-shovel:after{content:"\10f713"}.fad.fa-shovel-snow:after{content:"\10f7c3"}.fad.fa-shower:after{content:"\10f2cc"}.fad.fa-shredder:after{content:"\10f68a"}.fad.fa-shuttle-van:after{content:"\10f5b6"}.fad.fa-shuttlecock:after{content:"\10f45b"}.fad.fa-sickle:after{content:"\10f822"}.fad.fa-sigma:after{content:"\10f68b"}.fad.fa-sign:after{content:"\10f4d9"}.fad.fa-sign-in:after{content:"\10f090"}.fad.fa-sign-in-alt:after{content:"\10f2f6"}.fad.fa-sign-language:after{content:"\10f2a7"}.fad.fa-sign-out:after{content:"\10f08b"}.fad.fa-sign-out-alt:after{content:"\10f2f5"}.fad.fa-signal:after{content:"\10f012"}.fad.fa-signal-1:after{content:"\10f68c"}.fad.fa-signal-2:after{content:"\10f68d"}.fad.fa-signal-3:after{content:"\10f68e"}.fad.fa-signal-4:after{content:"\10f68f"}.fad.fa-signal-alt:after{content:"\10f690"}.fad.fa-signal-alt-1:after{content:"\10f691"}.fad.fa-signal-alt-2:after{content:"\10f692"}.fad.fa-signal-alt-3:after{content:"\10f693"}.fad.fa-signal-alt-slash:after{content:"\10f694"}.fad.fa-signal-slash:after{content:"\10f695"}.fad.fa-signal-stream:after{content:"\10f8dd"}.fad.fa-signature:after{content:"\10f5b7"}.fad.fa-sim-card:after{content:"\10f7c4"}.fad.fa-siren:after{content:"\10f92d"}.fad.fa-siren-on:after{content:"\10f92e"}.fad.fa-sitemap:after{content:"\10f0e8"}.fad.fa-skating:after{content:"\10f7c5"}.fad.fa-skeleton:after{content:"\10f620"}.fad.fa-ski-jump:after{content:"\10f7c7"}.fad.fa-ski-lift:after{content:"\10f7c8"}.fad.fa-skiing:after{content:"\10f7c9"}.fad.fa-skiing-nordic:after{content:"\10f7ca"}.fad.fa-skull:after{content:"\10f54c"}.fad.fa-skull-cow:after{content:"\10f8de"}.fad.fa-skull-crossbones:after{content:"\10f714"}.fad.fa-slash:after{content:"\10f715"}.fad.fa-sledding:after{content:"\10f7cb"}.fad.fa-sleigh:after{content:"\10f7cc"}.fad.fa-sliders-h:after{content:"\10f1de"}.fad.fa-sliders-h-square:after{content:"\10f3f0"}.fad.fa-sliders-v:after{content:"\10f3f1"}.fad.fa-sliders-v-square:after{content:"\10f3f2"}.fad.fa-smile:after{content:"\10f118"}.fad.fa-smile-beam:after{content:"\10f5b8"}.fad.fa-smile-plus:after{content:"\10f5b9"}.fad.fa-smile-wink:after{content:"\10f4da"}.fad.fa-smog:after{content:"\10f75f"}.fad.fa-smoke:after{content:"\10f760"}.fad.fa-smoking:after{content:"\10f48d"}.fad.fa-smoking-ban:after{content:"\10f54d"}.fad.fa-sms:after{content:"\10f7cd"}.fad.fa-snake:after{content:"\10f716"}.fad.fa-snooze:after{content:"\10f880"}.fad.fa-snow-blowing:after{content:"\10f761"}.fad.fa-snowboarding:after{content:"\10f7ce"}.fad.fa-snowflake:after{content:"\10f2dc"}.fad.fa-snowflakes:after{content:"\10f7cf"}.fad.fa-snowman:after{content:"\10f7d0"}.fad.fa-snowmobile:after{content:"\10f7d1"}.fad.fa-snowplow:after{content:"\10f7d2"}.fad.fa-socks:after{content:"\10f696"}.fad.fa-solar-panel:after{content:"\10f5ba"}.fad.fa-solar-system:after{content:"\10f92f"}.fad.fa-sort:after{content:"\10f0dc"}.fad.fa-sort-alpha-down:after{content:"\10f15d"}.fad.fa-sort-alpha-down-alt:after{content:"\10f881"}.fad.fa-sort-alpha-up:after{content:"\10f15e"}.fad.fa-sort-alpha-up-alt:after{content:"\10f882"}.fad.fa-sort-alt:after{content:"\10f883"}.fad.fa-sort-amount-down:after{content:"\10f160"}.fad.fa-sort-amount-down-alt:after{content:"\10f884"}.fad.fa-sort-amount-up:after{content:"\10f161"}.fad.fa-sort-amount-up-alt:after{content:"\10f885"}.fad.fa-sort-circle:after{content:"\10f930"}.fad.fa-sort-circle-down:after{content:"\10f931"}.fad.fa-sort-circle-up:after{content:"\10f932"}.fad.fa-sort-down:after{content:"\10f0dd"}.fad.fa-sort-numeric-down:after{content:"\10f162"}.fad.fa-sort-numeric-down-alt:after{content:"\10f886"}.fad.fa-sort-numeric-up:after{content:"\10f163"}.fad.fa-sort-numeric-up-alt:after{content:"\10f887"}.fad.fa-sort-shapes-down:after{content:"\10f888"}.fad.fa-sort-shapes-down-alt:after{content:"\10f889"}.fad.fa-sort-shapes-up:after{content:"\10f88a"}.fad.fa-sort-shapes-up-alt:after{content:"\10f88b"}.fad.fa-sort-size-down:after{content:"\10f88c"}.fad.fa-sort-size-down-alt:after{content:"\10f88d"}.fad.fa-sort-size-up:after{content:"\10f88e"}.fad.fa-sort-size-up-alt:after{content:"\10f88f"}.fad.fa-sort-up:after{content:"\10f0de"}.fad.fa-soup:after{content:"\10f823"}.fad.fa-spa:after{content:"\10f5bb"}.fad.fa-space-shuttle:after{content:"\10f197"}.fad.fa-space-station-moon:after{content:"\10f933"}.fad.fa-space-station-moon-alt:after{content:"\10f934"}.fad.fa-spade:after{content:"\10f2f4"}.fad.fa-sparkles:after{content:"\10f890"}.fad.fa-speaker:after{content:"\10f8df"}.fad.fa-speakers:after{content:"\10f8e0"}.fad.fa-spell-check:after{content:"\10f891"}.fad.fa-spider:after{content:"\10f717"}.fad.fa-spider-black-widow:after{content:"\10f718"}.fad.fa-spider-web:after{content:"\10f719"}.fad.fa-spinner:after{content:"\10f110"}.fad.fa-spinner-third:after{content:"\10f3f4"}.fad.fa-splotch:after{content:"\10f5bc"}.fad.fa-spray-can:after{content:"\10f5bd"}.fad.fa-sprinkler:after{content:"\10f935"}.fad.fa-square:after{content:"\10f0c8"}.fad.fa-square-full:after{content:"\10f45c"}.fad.fa-square-root:after{content:"\10f697"}.fad.fa-square-root-alt:after{content:"\10f698"}.fad.fa-squirrel:after{content:"\10f71a"}.fad.fa-staff:after{content:"\10f71b"}.fad.fa-stamp:after{content:"\10f5bf"}.fad.fa-star:after{content:"\10f005"}.fad.fa-star-and-crescent:after{content:"\10f699"}.fad.fa-star-christmas:after{content:"\10f7d4"}.fad.fa-star-exclamation:after{content:"\10f2f3"}.fad.fa-star-half:after{content:"\10f089"}.fad.fa-star-half-alt:after{content:"\10f5c0"}.fad.fa-star-of-david:after{content:"\10f69a"}.fad.fa-star-of-life:after{content:"\10f621"}.fad.fa-star-shooting:after{content:"\10f936"}.fad.fa-starfighter:after{content:"\10f937"}.fad.fa-starfighter-alt:after{content:"\10f938"}.fad.fa-stars:after{content:"\10f762"}.fad.fa-starship:after{content:"\10f939"}.fad.fa-starship-freighter:after{content:"\10f93a"}.fad.fa-steak:after{content:"\10f824"}.fad.fa-steering-wheel:after{content:"\10f622"}.fad.fa-step-backward:after{content:"\10f048"}.fad.fa-step-forward:after{content:"\10f051"}.fad.fa-stethoscope:after{content:"\10f0f1"}.fad.fa-sticky-note:after{content:"\10f249"}.fad.fa-stocking:after{content:"\10f7d5"}.fad.fa-stomach:after{content:"\10f623"}.fad.fa-stop:after{content:"\10f04d"}.fad.fa-stop-circle:after{content:"\10f28d"}.fad.fa-stopwatch:after{content:"\10f2f2"}.fad.fa-store:after{content:"\10f54e"}.fad.fa-store-alt:after{content:"\10f54f"}.fad.fa-stream:after{content:"\10f550"}.fad.fa-street-view:after{content:"\10f21d"}.fad.fa-stretcher:after{content:"\10f825"}.fad.fa-strikethrough:after{content:"\10f0cc"}.fad.fa-stroopwafel:after{content:"\10f551"}.fad.fa-subscript:after{content:"\10f12c"}.fad.fa-subway:after{content:"\10f239"}.fad.fa-suitcase:after{content:"\10f0f2"}.fad.fa-suitcase-rolling:after{content:"\10f5c1"}.fad.fa-sun:after{content:"\10f185"}.fad.fa-sun-cloud:after{content:"\10f763"}.fad.fa-sun-dust:after{content:"\10f764"}.fad.fa-sun-haze:after{content:"\10f765"}.fad.fa-sunglasses:after{content:"\10f892"}.fad.fa-sunrise:after{content:"\10f766"}.fad.fa-sunset:after{content:"\10f767"}.fad.fa-superscript:after{content:"\10f12b"}.fad.fa-surprise:after{content:"\10f5c2"}.fad.fa-swatchbook:after{content:"\10f5c3"}.fad.fa-swimmer:after{content:"\10f5c4"}.fad.fa-swimming-pool:after{content:"\10f5c5"}.fad.fa-sword:after{content:"\10f71c"}.fad.fa-sword-laser:after{content:"\10f93b"}.fad.fa-sword-laser-alt:after{content:"\10f93c"}.fad.fa-swords:after{content:"\10f71d"}.fad.fa-swords-laser:after{content:"\10f93d"}.fad.fa-synagogue:after{content:"\10f69b"}.fad.fa-sync:after{content:"\10f021"}.fad.fa-sync-alt:after{content:"\10f2f1"}.fad.fa-syringe:after{content:"\10f48e"}.fad.fa-table:after{content:"\10f0ce"}.fad.fa-table-tennis:after{content:"\10f45d"}.fad.fa-tablet:after{content:"\10f10a"}.fad.fa-tablet-alt:after{content:"\10f3fa"}.fad.fa-tablet-android:after{content:"\10f3fb"}.fad.fa-tablet-android-alt:after{content:"\10f3fc"}.fad.fa-tablet-rugged:after{content:"\10f48f"}.fad.fa-tablets:after{content:"\10f490"}.fad.fa-tachometer:after{content:"\10f0e4"}.fad.fa-tachometer-alt:after{content:"\10f3fd"}.fad.fa-tachometer-alt-average:after{content:"\10f624"}.fad.fa-tachometer-alt-fast:after{content:"\10f625"}.fad.fa-tachometer-alt-fastest:after{content:"\10f626"}.fad.fa-tachometer-alt-slow:after{content:"\10f627"}.fad.fa-tachometer-alt-slowest:after{content:"\10f628"}.fad.fa-tachometer-average:after{content:"\10f629"}.fad.fa-tachometer-fast:after{content:"\10f62a"}.fad.fa-tachometer-fastest:after{content:"\10f62b"}.fad.fa-tachometer-slow:after{content:"\10f62c"}.fad.fa-tachometer-slowest:after{content:"\10f62d"}.fad.fa-taco:after{content:"\10f826"}.fad.fa-tag:after{content:"\10f02b"}.fad.fa-tags:after{content:"\10f02c"}.fad.fa-tally:after{content:"\10f69c"}.fad.fa-tanakh:after{content:"\10f827"}.fad.fa-tape:after{content:"\10f4db"}.fad.fa-tasks:after{content:"\10f0ae"}.fad.fa-tasks-alt:after{content:"\10f828"}.fad.fa-taxi:after{content:"\10f1ba"}.fad.fa-teeth:after{content:"\10f62e"}.fad.fa-teeth-open:after{content:"\10f62f"}.fad.fa-telescope:after{content:"\10f93e"}.fad.fa-temperature-down:after{content:"\10f93f"}.fad.fa-temperature-frigid:after{content:"\10f768"}.fad.fa-temperature-high:after{content:"\10f769"}.fad.fa-temperature-hot:after{content:"\10f76a"}.fad.fa-temperature-low:after{content:"\10f76b"}.fad.fa-temperature-up:after{content:"\10f940"}.fad.fa-tenge:after{content:"\10f7d7"}.fad.fa-tennis-ball:after{content:"\10f45e"}.fad.fa-terminal:after{content:"\10f120"}.fad.fa-text:after{content:"\10f893"}.fad.fa-text-height:after{content:"\10f034"}.fad.fa-text-size:after{content:"\10f894"}.fad.fa-text-width:after{content:"\10f035"}.fad.fa-th:after{content:"\10f00a"}.fad.fa-th-large:after{content:"\10f009"}.fad.fa-th-list:after{content:"\10f00b"}.fad.fa-theater-masks:after{content:"\10f630"}.fad.fa-thermometer:after{content:"\10f491"}.fad.fa-thermometer-empty:after{content:"\10f2cb"}.fad.fa-thermometer-full:after{content:"\10f2c7"}.fad.fa-thermometer-half:after{content:"\10f2c9"}.fad.fa-thermometer-quarter:after{content:"\10f2ca"}.fad.fa-thermometer-three-quarters:after{content:"\10f2c8"}.fad.fa-theta:after{content:"\10f69e"}.fad.fa-thumbs-down:after{content:"\10f165"}.fad.fa-thumbs-up:after{content:"\10f164"}.fad.fa-thumbtack:after{content:"\10f08d"}.fad.fa-thunderstorm:after{content:"\10f76c"}.fad.fa-thunderstorm-moon:after{content:"\10f76d"}.fad.fa-thunderstorm-sun:after{content:"\10f76e"}.fad.fa-ticket:after{content:"\10f145"}.fad.fa-ticket-alt:after{content:"\10f3ff"}.fad.fa-tilde:after{content:"\10f69f"}.fad.fa-times:after{content:"\10f00d"}.fad.fa-times-circle:after{content:"\10f057"}.fad.fa-times-hexagon:after{content:"\10f2ee"}.fad.fa-times-octagon:after{content:"\10f2f0"}.fad.fa-times-square:after{content:"\10f2d3"}.fad.fa-tint:after{content:"\10f043"}.fad.fa-tint-slash:after{content:"\10f5c7"}.fad.fa-tire:after{content:"\10f631"}.fad.fa-tire-flat:after{content:"\10f632"}.fad.fa-tire-pressure-warning:after{content:"\10f633"}.fad.fa-tire-rugged:after{content:"\10f634"}.fad.fa-tired:after{content:"\10f5c8"}.fad.fa-toggle-off:after{content:"\10f204"}.fad.fa-toggle-on:after{content:"\10f205"}.fad.fa-toilet:after{content:"\10f7d8"}.fad.fa-toilet-paper:after{content:"\10f71e"}.fad.fa-toilet-paper-alt:after{content:"\10f71f"}.fad.fa-tombstone:after{content:"\10f720"}.fad.fa-tombstone-alt:after{content:"\10f721"}.fad.fa-toolbox:after{content:"\10f552"}.fad.fa-tools:after{content:"\10f7d9"}.fad.fa-tooth:after{content:"\10f5c9"}.fad.fa-toothbrush:after{content:"\10f635"}.fad.fa-torah:after{content:"\10f6a0"}.fad.fa-torii-gate:after{content:"\10f6a1"}.fad.fa-tornado:after{content:"\10f76f"}.fad.fa-tractor:after{content:"\10f722"}.fad.fa-trademark:after{content:"\10f25c"}.fad.fa-traffic-cone:after{content:"\10f636"}.fad.fa-traffic-light:after{content:"\10f637"}.fad.fa-traffic-light-go:after{content:"\10f638"}.fad.fa-traffic-light-slow:after{content:"\10f639"}.fad.fa-traffic-light-stop:after{content:"\10f63a"}.fad.fa-trailer:after{content:"\10f941"}.fad.fa-train:after{content:"\10f238"}.fad.fa-tram:after{content:"\10f7da"}.fad.fa-transgender:after{content:"\10f224"}.fad.fa-transgender-alt:after{content:"\10f225"}.fad.fa-transporter:after{content:"\10f942"}.fad.fa-transporter-1:after{content:"\10f943"}.fad.fa-transporter-2:after{content:"\10f944"}.fad.fa-transporter-3:after{content:"\10f945"}.fad.fa-transporter-empty:after{content:"\10f946"}.fad.fa-trash:after{content:"\10f1f8"}.fad.fa-trash-alt:after{content:"\10f2ed"}.fad.fa-trash-restore:after{content:"\10f829"}.fad.fa-trash-restore-alt:after{content:"\10f82a"}.fad.fa-trash-undo:after{content:"\10f895"}.fad.fa-trash-undo-alt:after{content:"\10f896"}.fad.fa-treasure-chest:after{content:"\10f723"}.fad.fa-tree:after{content:"\10f1bb"}.fad.fa-tree-alt:after{content:"\10f400"}.fad.fa-tree-christmas:after{content:"\10f7db"}.fad.fa-tree-decorated:after{content:"\10f7dc"}.fad.fa-tree-large:after{content:"\10f7dd"}.fad.fa-tree-palm:after{content:"\10f82b"}.fad.fa-trees:after{content:"\10f724"}.fad.fa-triangle:after{content:"\10f2ec"}.fad.fa-triangle-music:after{content:"\10f8e2"}.fad.fa-trophy:after{content:"\10f091"}.fad.fa-trophy-alt:after{content:"\10f2eb"}.fad.fa-truck:after{content:"\10f0d1"}.fad.fa-truck-container:after{content:"\10f4dc"}.fad.fa-truck-couch:after{content:"\10f4dd"}.fad.fa-truck-loading:after{content:"\10f4de"}.fad.fa-truck-monster:after{content:"\10f63b"}.fad.fa-truck-moving:after{content:"\10f4df"}.fad.fa-truck-pickup:after{content:"\10f63c"}.fad.fa-truck-plow:after{content:"\10f7de"}.fad.fa-truck-ramp:after{content:"\10f4e0"}.fad.fa-trumpet:after{content:"\10f8e3"}.fad.fa-tshirt:after{content:"\10f553"}.fad.fa-tty:after{content:"\10f1e4"}.fad.fa-turkey:after{content:"\10f725"}.fad.fa-turntable:after{content:"\10f8e4"}.fad.fa-turtle:after{content:"\10f726"}.fad.fa-tv:after{content:"\10f26c"}.fad.fa-tv-alt:after{content:"\10f8e5"}.fad.fa-tv-music:after{content:"\10f8e6"}.fad.fa-tv-retro:after{content:"\10f401"}.fad.fa-typewriter:after{content:"\10f8e7"}.fad.fa-ufo:after{content:"\10f947"}.fad.fa-ufo-beam:after{content:"\10f948"}.fad.fa-umbrella:after{content:"\10f0e9"}.fad.fa-umbrella-beach:after{content:"\10f5ca"}.fad.fa-underline:after{content:"\10f0cd"}.fad.fa-undo:after{content:"\10f0e2"}.fad.fa-undo-alt:after{content:"\10f2ea"}.fad.fa-unicorn:after{content:"\10f727"}.fad.fa-union:after{content:"\10f6a2"}.fad.fa-universal-access:after{content:"\10f29a"}.fad.fa-university:after{content:"\10f19c"}.fad.fa-unlink:after{content:"\10f127"}.fad.fa-unlock:after{content:"\10f09c"}.fad.fa-unlock-alt:after{content:"\10f13e"}.fad.fa-upload:after{content:"\10f093"}.fad.fa-usb-drive:after{content:"\10f8e9"}.fad.fa-usd-circle:after{content:"\10f2e8"}.fad.fa-usd-square:after{content:"\10f2e9"}.fad.fa-user:after{content:"\10f007"}.fad.fa-user-alien:after{content:"\10f94a"}.fad.fa-user-alt:after{content:"\10f406"}.fad.fa-user-alt-slash:after{content:"\10f4fa"}.fad.fa-user-astronaut:after{content:"\10f4fb"}.fad.fa-user-chart:after{content:"\10f6a3"}.fad.fa-user-check:after{content:"\10f4fc"}.fad.fa-user-circle:after{content:"\10f2bd"}.fad.fa-user-clock:after{content:"\10f4fd"}.fad.fa-user-cog:after{content:"\10f4fe"}.fad.fa-user-cowboy:after{content:"\10f8ea"}.fad.fa-user-crown:after{content:"\10f6a4"}.fad.fa-user-edit:after{content:"\10f4ff"}.fad.fa-user-friends:after{content:"\10f500"}.fad.fa-user-graduate:after{content:"\10f501"}.fad.fa-user-hard-hat:after{content:"\10f82c"}.fad.fa-user-headset:after{content:"\10f82d"}.fad.fa-user-injured:after{content:"\10f728"}.fad.fa-user-lock:after{content:"\10f502"}.fad.fa-user-md:after{content:"\10f0f0"}.fad.fa-user-md-chat:after{content:"\10f82e"}.fad.fa-user-minus:after{content:"\10f503"}.fad.fa-user-music:after{content:"\10f8eb"}.fad.fa-user-ninja:after{content:"\10f504"}.fad.fa-user-nurse:after{content:"\10f82f"}.fad.fa-user-plus:after{content:"\10f234"}.fad.fa-user-robot:after{content:"\10f94b"}.fad.fa-user-secret:after{content:"\10f21b"}.fad.fa-user-shield:after{content:"\10f505"}.fad.fa-user-slash:after{content:"\10f506"}.fad.fa-user-tag:after{content:"\10f507"}.fad.fa-user-tie:after{content:"\10f508"}.fad.fa-user-times:after{content:"\10f235"}.fad.fa-user-visor:after{content:"\10f94c"}.fad.fa-users:after{content:"\10f0c0"}.fad.fa-users-class:after{content:"\10f63d"}.fad.fa-users-cog:after{content:"\10f509"}.fad.fa-users-crown:after{content:"\10f6a5"}.fad.fa-users-medical:after{content:"\10f830"}.fad.fa-utensil-fork:after{content:"\10f2e3"}.fad.fa-utensil-knife:after{content:"\10f2e4"}.fad.fa-utensil-spoon:after{content:"\10f2e5"}.fad.fa-utensils:after{content:"\10f2e7"}.fad.fa-utensils-alt:after{content:"\10f2e6"}.fad.fa-vacuum:after{content:"\10f94d"}.fad.fa-vacuum-robot:after{content:"\10f94e"}.fad.fa-value-absolute:after{content:"\10f6a6"}.fad.fa-vector-square:after{content:"\10f5cb"}.fad.fa-venus:after{content:"\10f221"}.fad.fa-venus-double:after{content:"\10f226"}.fad.fa-venus-mars:after{content:"\10f228"}.fad.fa-vhs:after{content:"\10f8ec"}.fad.fa-vial:after{content:"\10f492"}.fad.fa-vials:after{content:"\10f493"}.fad.fa-video:after{content:"\10f03d"}.fad.fa-video-plus:after{content:"\10f4e1"}.fad.fa-video-slash:after{content:"\10f4e2"}.fad.fa-vihara:after{content:"\10f6a7"}.fad.fa-violin:after{content:"\10f8ed"}.fad.fa-voicemail:after{content:"\10f897"}.fad.fa-volcano:after{content:"\10f770"}.fad.fa-volleyball-ball:after{content:"\10f45f"}.fad.fa-volume:after{content:"\10f6a8"}.fad.fa-volume-down:after{content:"\10f027"}.fad.fa-volume-mute:after{content:"\10f6a9"}.fad.fa-volume-off:after{content:"\10f026"}.fad.fa-volume-slash:after{content:"\10f2e2"}.fad.fa-volume-up:after{content:"\10f028"}.fad.fa-vote-nay:after{content:"\10f771"}.fad.fa-vote-yea:after{content:"\10f772"}.fad.fa-vr-cardboard:after{content:"\10f729"}.fad.fa-wagon-covered:after{content:"\10f8ee"}.fad.fa-walker:after{content:"\10f831"}.fad.fa-walkie-talkie:after{content:"\10f8ef"}.fad.fa-walking:after{content:"\10f554"}.fad.fa-wallet:after{content:"\10f555"}.fad.fa-wand:after{content:"\10f72a"}.fad.fa-wand-magic:after{content:"\10f72b"}.fad.fa-warehouse:after{content:"\10f494"}.fad.fa-warehouse-alt:after{content:"\10f495"}.fad.fa-washer:after{content:"\10f898"}.fad.fa-watch:after{content:"\10f2e1"}.fad.fa-watch-calculator:after{content:"\10f8f0"}.fad.fa-watch-fitness:after{content:"\10f63e"}.fad.fa-water:after{content:"\10f773"}.fad.fa-water-lower:after{content:"\10f774"}.fad.fa-water-rise:after{content:"\10f775"}.fad.fa-wave-sine:after{content:"\10f899"}.fad.fa-wave-square:after{content:"\10f83e"}.fad.fa-wave-triangle:after{content:"\10f89a"}.fad.fa-waveform:after{content:"\10f8f1"}.fad.fa-waveform-path:after{content:"\10f8f2"}.fad.fa-webcam:after{content:"\10f832"}.fad.fa-webcam-slash:after{content:"\10f833"}.fad.fa-weight:after{content:"\10f496"}.fad.fa-weight-hanging:after{content:"\10f5cd"}.fad.fa-whale:after{content:"\10f72c"}.fad.fa-wheat:after{content:"\10f72d"}.fad.fa-wheelchair:after{content:"\10f193"}.fad.fa-whistle:after{content:"\10f460"}.fad.fa-wifi:after{content:"\10f1eb"}.fad.fa-wifi-1:after{content:"\10f6aa"}.fad.fa-wifi-2:after{content:"\10f6ab"}.fad.fa-wifi-slash:after{content:"\10f6ac"}.fad.fa-wind:after{content:"\10f72e"}.fad.fa-wind-turbine:after{content:"\10f89b"}.fad.fa-wind-warning:after{content:"\10f776"}.fad.fa-window:after{content:"\10f40e"}.fad.fa-window-alt:after{content:"\10f40f"}.fad.fa-window-close:after{content:"\10f410"}.fad.fa-window-frame:after{content:"\10f94f"}.fad.fa-window-frame-open:after{content:"\10f950"}.fad.fa-window-maximize:after{content:"\10f2d0"}.fad.fa-window-minimize:after{content:"\10f2d1"}.fad.fa-window-restore:after{content:"\10f2d2"}.fad.fa-windsock:after{content:"\10f777"}.fad.fa-wine-bottle:after{content:"\10f72f"}.fad.fa-wine-glass:after{content:"\10f4e3"}.fad.fa-wine-glass-alt:after{content:"\10f5ce"}.fad.fa-won-sign:after{content:"\10f159"}.fad.fa-wreath:after{content:"\10f7e2"}.fad.fa-wrench:after{content:"\10f0ad"}.fad.fa-x-ray:after{content:"\10f497"}.fad.fa-yen-sign:after{content:"\10f157"}.fad.fa-yin-yang:after{content:"\10f6ad"}@font-face{font-family:'font awesome 5 pro';font-style:normal;font-weight:300;font-display:auto;src:url(../fonts/fa-light-300.eot);src:url(../fonts/fa-light-300.eot?#iefix) format("embedded-opentype"),url(../fonts/fa-light-300.woff2) format("woff2"),url(../fonts/fa-light-300.woff) format("woff"),url(../fonts/fa-light-300.ttf) format("truetype"),url(../fonts/fa-light-300.svg#fontawesome) format("svg")}.fal{font-family:'font awesome 5 pro'!important;;font-weight:300}@font-face{font-family:'font awesome 5 pro';font-style:normal;font-weight:400;font-display:auto;src:url(../fonts/fa-regular-400.eot);src:url(../fonts/fa-regular-400.eot?#iefix) format("embedded-opentype"),url(../fonts/fa-regular-400.woff2) format("woff2"),url(../fonts/fa-regular-400.woff) format("woff"),url(../fonts/fa-regular-400.ttf) format("truetype"),url(../fonts/fa-regular-400.svg#fontawesome) format("svg")}.far{font-family:'font awesome 5 pro'!important;;font-weight:400}@font-face{font-family:'font awesome 5 pro';font-style:normal;font-weight:900;font-display:auto;src:url(../fonts/fa-solid-900.eot);src:url(../fonts/fa-solid-900.eot?#iefix) format("embedded-opentype"),url(../fonts/fa-solid-900.woff2) format("woff2"),url(../fonts/fa-solid-900.woff) format("woff"),url(../fonts/fa-solid-900.ttf) format("truetype"),url(../fonts/fa-solid-900.svg#fontawesome) format("svg")}.fa,.fas{font-family:'font awesome 5 pro'!important;font-weight:900}
diff --git a/files/assets/CHRISTMAS/css/light.css b/files/assets/CHRISTMAS/css/light.css
new file mode 100644
index 000000000..ce74744b7
--- /dev/null
+++ b/files/assets/CHRISTMAS/css/light.css
@@ -0,0 +1,80 @@
+@charset "UTF-8";
+
+
+:root {
+ --dark: #c7c7c7;
+ --secondary: #c7c7c7;
+ --gray: #c7c7c7;
+ --gray-300: #c7c7c7;
+ --gray-400: #cfcfcf;
+ --gray-500: #ffffff;
+ --gray-600: #ffffff;
+ --gray-700: #ffffff;
+ --gray-800: #ffffff;
+ --gray-900: #ffffff;
+ --light: #ffffff;
+ --muted: #1e1e1e;
+ --gray-100: #1e1e1e;
+ --gray-200: #1e1e1e;
+ --white: #1e1e1e;
+ --black: #303030;
+}
+
+* {
+ border-color: var(--primary);
+}
+
+.border {
+ border-color: var(--primary) !important;
+}
+
+.form-control {
+ background: transparent;
+ border-color: var(--primary) !important;
+}
+
+.btn {
+ background: transparent;
+ border-color: var(--primary) !important;
+}
+
+.form-control:disabled, .form-control[readonly] {
+ background: transparent;
+ border-color: var(--primary) !important;
+}
+
+.btn-success {
+ border-color: #38A169 !important;
+}
+
+.btn-danger {
+ border-color: #E53E3E !important;
+}
+
+#frontpage .pseudo-submit-form.card .card-body .form-control {
+ border-color: transparent !important;
+}
+
+.btn-lg {
+ border-color: transparent !important;
+}
+
+pre {
+ color: #CFCFCF;
+}
+
+.transparent {
+ background: None !important;
+}
+
+#frontpage .post-title a:visited {
+ color: #7a7a7a !important;
+}
+
+blockquote {
+ color: var(--gray-400);
+}
+
+#profilestuff > * {
+ color: var(--gray-400) !important;
+}
\ No newline at end of file
diff --git a/files/assets/CHRISTMAS/css/lite-youtube.css b/files/assets/CHRISTMAS/css/lite-youtube.css
new file mode 100644
index 000000000..7ac3380a0
--- /dev/null
+++ b/files/assets/CHRISTMAS/css/lite-youtube.css
@@ -0,0 +1,83 @@
+lite-youtube {
+ background-color: #000;
+ position: relative;
+ display: block;
+ contain: content;
+ background-position: center center;
+ background-size: cover;
+ cursor: pointer;
+ max-width: 720px;
+}
+
+/* gradient */
+lite-youtube::before {
+ content: '';
+ display: block;
+ position: absolute;
+ top: 0;
+ background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAADGCAYAAAAT+OqFAAAAdklEQVQoz42QQQ7AIAgEF/T/D+kbq/RWAlnQyyazA4aoAB4FsBSA/bFjuF1EOL7VbrIrBuusmrt4ZZORfb6ehbWdnRHEIiITaEUKa5EJqUakRSaEYBJSCY2dEstQY7AuxahwXFrvZmWl2rh4JZ07z9dLtesfNj5q0FU3A5ObbwAAAABJRU5ErkJggg==);
+ background-position: top;
+ background-repeat: repeat-x;
+ height: 60px;
+ padding-bottom: 50px;
+ width: 100%;
+ transition: all 0.2s cubic-bezier(0, 0, 0.2, 1);
+}
+
+lite-youtube::after {
+ content: "";
+ display: block;
+ padding-bottom: calc(100% / (16 / 9));
+}
+lite-youtube > iframe {
+ width: 100%;
+ height: 100%;
+ position: absolute;
+ top: 0;
+ left: 0;
+ border: 0;
+}
+
+lite-youtube > .lty-playbtn {
+ width: 100px;
+ height: 100px;
+ position: absolute;
+ cursor: pointer;
+ transform: translate3d(-50%, -50%, 0);
+ top: 50%;
+ left: 50%;
+ z-index: 1;
+ background-color: transparent;
+ background-image: url('/assets/CHRISTMAS/images/youtube.webp?v=1');
+ transition: filter .1s cubic-bezier(0, 0, 0.2, 1);
+ border: none;
+}
+
+lite-youtube:hover > .lty-playbtn,
+lite-youtube .lty-playbtn:focus {
+ filter: none;
+}
+
+/* Post-click styles */
+lite-youtube.lyt-activated {
+ cursor: unset;
+}
+lite-youtube.lyt-activated::before,
+lite-youtube.lyt-activated > .lty-playbtn {
+ opacity: 0;
+ pointer-events: none;
+}
+
+.lyt-visually-hidden {
+ clip: rect(0 0 0 0);
+ clip-path: inset(50%);
+ height: 1px;
+ overflow: hidden;
+ position: absolute;
+ white-space: nowrap;
+ width: 1px;
+ }
+
+.ytp-pause-overlay-controls-hidden .ytp-pause-overlay {
+ display: none!important;
+}
\ No newline at end of file
diff --git a/files/assets/css/main-deprecated.css b/files/assets/CHRISTMAS/css/main-deprecated.css
similarity index 100%
rename from files/assets/css/main-deprecated.css
rename to files/assets/CHRISTMAS/css/main-deprecated.css
diff --git a/files/assets/CHRISTMAS/css/main.css b/files/assets/CHRISTMAS/css/main.css
new file mode 100644
index 000000000..1ebc12369
--- /dev/null
+++ b/files/assets/CHRISTMAS/css/main.css
@@ -0,0 +1,4756 @@
+@charset "UTF-8";
+
+/*@import url('https://fonts.googleapis.com/css?family=Roboto:400,500&display=swap');
+@tailwind base;
+@tailwind components;
+@tailwind utilities;*/
+
+*,
+*::before,
+*::after {
+ box-sizing: border-box;
+}
+
+html {
+ font-family: 'Helvetica Neue', -apple-system, BlinkMacSystemFont, 'Tahoma', "Segoe UI", Roboto, Helvetica, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol"!important;
+ line-height: 1.15;
+ -webkit-text-size-adjust: 100%;
+ -webkit-tap-highlight-color: rgba(0, 0, 0, 0);
+}
+
+article, aside, figcaption, figure, footer, header, main, nav, section {
+ display: block;
+}
+
+body {
+ margin: 0;
+ font-family: 'Helvetica Neue', -apple-system, BlinkMacSystemFont, 'Tahoma', "Segoe UI", Roboto, Helvetica, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol"!important;
+ font-size: 1rem;
+ font-weight: 400;
+ line-height: 1.5;
+ color: #212529;
+ text-align: left;
+ background-color: #fff;
+}
+
+[tabindex="-1"]:focus:not(:focus-visible) {
+ outline: 0 !important;
+}
+
+hr {
+ box-sizing: content-box;
+ height: 0;
+ overflow: visible;
+}
+
+h1, h2, h3, h4, h5, h6 {
+ margin-top: 0;
+ margin-bottom: 0.5rem;
+}
+
+p {
+ margin-top: 0;
+ margin-bottom: 1rem;
+}
+
+abbr[title],
+abbr[data-bs-original-title] {
+ text-decoration: underline;
+ text-decoration: underline dotted;
+ cursor: help;
+ border-bottom: 0;
+ text-decoration-skip-ink: none;
+}
+
+address {
+ margin-bottom: 1rem;
+ font-style: normal;
+ line-height: inherit;
+}
+
+ol,
+ul,
+dl {
+ margin-top: 0;
+ margin-bottom: 1rem;
+}
+
+ol ol,
+ul ul,
+ol ul,
+ul ol {
+ margin-bottom: 0;
+}
+
+dt {
+ font-weight: 600;
+}
+
+dd {
+ margin-bottom: 0.5rem;
+ margin-left: 0;
+}
+
+blockquote {
+ margin: 0 0 1rem;
+}
+
+b,
+strong {
+ font-weight: 700;
+}
+
+small {
+ font-size: 80%;
+}
+
+sub,
+sup {
+ position: relative;
+ font-size: 75%;
+ line-height: 0;
+ vertical-align: baseline;
+}
+
+sub {
+ bottom: -0.25em;
+}
+
+sup {
+ top: -0.5em;
+}
+
+/*a {
+ color: var(--primary);
+ text-decoration: none;
+ background-color: transparent;
+}*/
+/*a:hover {
+ color: var(--primary);
+ text-decoration: underline;
+}*/
+
+a:not([href]) {
+ color: inherit;
+ text-decoration: none;
+}
+a:not([href]):hover {
+ color: inherit;
+ text-decoration: none;
+}
+
+pre,
+code,
+kbd,
+samp {
+ font-family: SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;
+ font-size: 1em;
+}
+
+pre {
+ margin-top: 0;
+ margin-bottom: 1rem;
+ overflow: auto;
+}
+
+figure {
+ margin: 0 0 1rem;
+}
+
+img {
+ vertical-align: middle;
+ border-style: none;
+}
+
+svg {
+ overflow: hidden;
+ vertical-align: middle;
+}
+
+table {
+ border-collapse: collapse;
+}
+
+caption {
+ padding-top: 0.75rem;
+ padding-bottom: 0.75rem;
+ color: #6c757d;
+ text-align: left;
+ caption-side: bottom;
+}
+
+th {
+ text-align: inherit;
+}
+
+/*label {
+ display: inline-block;
+ margin-bottom: 0.5rem;
+}*/
+
+button {
+ border-radius: 0;
+}
+
+button:focus {
+ outline: 1px dotted;
+ outline: 5px auto -webkit-focus-ring-color;
+}
+
+input,
+button,
+select,
+optgroup,
+textarea {
+ margin: 0;
+ font-family: inherit;
+ font-size: inherit;
+ line-height: inherit;
+}
+
+button,
+input {
+ overflow: visible;
+}
+
+button,
+select {
+ text-transform: none;
+}
+
+select {
+ word-wrap: normal;
+}
+
+button,
+[type=button], [type=reset],
+[type=submit] {
+ -webkit-appearance: button;
+}
+
+button:not(:disabled),
+[type=button]:not(:disabled),
+[type=reset]:not(:disabled),
+[type=submit]:not(:disabled) {
+ cursor: pointer;
+}
+
+button::-moz-focus-inner,
+[type=button]::-moz-focus-inner,
+[type=reset]::-moz-focus-inner,
+[type=submit]::-moz-focus-inner {
+ padding: 0;
+ border-style: none;
+}
+
+input[type=radio],
+input[type=checkbox] {
+ box-sizing: border-box;
+ padding: 0;
+}
+
+input[type=date],
+input[type=time],
+input[type=month] {
+ -webkit-appearance: listbox;
+}
+
+textarea {
+ overflow: auto;
+ resize: vertical;
+}
+
+fieldset {
+ min-width: 0;
+ padding: 0;
+ margin: 0;
+ border: 0;
+}
+
+legend {
+ display: block;
+ width: 100%;
+ max-width: 100%;
+ padding: 0;
+ margin-bottom: 0.5rem;
+ font-size: 1.5rem;
+ line-height: inherit;
+ color: inherit;
+ white-space: normal;
+}
+
+[type=number]::-webkit-inner-spin-button,
+[type=number]::-webkit-outer-spin-button {
+ height: auto;
+}
+
+[type=search] {
+ outline-offset: -2px;
+ -webkit-appearance: none;
+}
+
+[type=search]::-webkit-search-decoration {
+ -webkit-appearance: none;
+}
+
+summary {
+ display: list-item;
+ cursor: pointer;
+}
+
+template {
+ display: none;
+}
+
+[hidden] {
+ display: none !important;
+}
+
+h1, h2, h3, h4, h5, h6,
+.h1, .h2, .h3, .h4, .h5, .h6 {
+ margin-bottom: 0.5rem;
+ font-weight: 600;
+ line-height: 1.2;
+}
+
+h1, .h1 {
+ font-size: 2.5rem;
+}
+
+h2, .h2 {
+ font-size: 2rem;
+}
+
+h3, .h3 {
+ font-size: 1.75rem;
+}
+
+h4, .h4 {
+ font-size: 1.5rem;
+}
+
+h5, .h5 {
+ font-size: 1.25rem;
+}
+
+h6, .h6 {
+ font-size: 1rem;
+}
+
+hr {
+ margin-top: 1rem;
+ margin-bottom: 1rem;
+ border: 0;
+ border-top: 1px solid rgba(0, 0, 0, 0.1);
+}
+
+small,
+.small {
+ font-size: 0.75rem;
+ font-weight: 400;
+}
+
+mark,
+.mark {
+ padding: 0.2em;
+ background-color: #fcf8e3;
+}
+
+input[type=submit].btn-block,
+input[type=reset].btn-block,
+input[type=button].btn-block {
+ width: 100%;
+}
+
+.fade {
+ transition: opacity 0.15s linear;
+}
+@media (prefers-reduced-motion: reduce) {
+ .fade {
+ transition: none;
+ }
+}
+.fade:not(.show) {
+ opacity: 0;
+}
+
+.collapse:not(.show) {
+ display: none;
+}
+
+.collapsing {
+ position: relative;
+ height: 0;
+ overflow: hidden;
+ transition: height 0.35s ease;
+}
+@media (prefers-reduced-motion: reduce) {
+ .collapsing {
+ transition: none;
+ }
+}
+
+.dropup,
+.dropdown {
+ position: relative;
+}
+
+.dropdown-toggle {
+ white-space: nowrap;
+}
+.dropdown-toggle::after {
+ display: inline-block;
+ margin-left: 0.255em;
+ vertical-align: 0.255em;
+ content: "";
+ border-top: 0.3em solid;
+ border-right: 0.3em solid transparent;
+ border-bottom: 0;
+ border-left: 0.3em solid transparent;
+}
+.dropdown-toggle:empty::after {
+ margin-left: 0;
+}
+
+.dropdown-menu {
+ position: absolute;
+ top: 100%;
+ left: 0;
+ z-index: 1000;
+ display: none;
+ float: left;
+ min-width: 10rem;
+ padding: 0.5rem 0;
+ margin: 0.125rem 0 0;
+ font-size: 1rem;
+ color: #212529;
+ text-align: left;
+ list-style: none;
+ background-color: #fff;
+ background-clip: padding-box;
+ border: 1px solid rgba(0, 0, 0, 0.15);
+ border-radius: 4px;
+}
+
+.dropdown-menu-right {
+ right: 0;
+ left: auto;
+}
+@media (min-width: 992px) {
+ .dropdown-menu-lg-left {
+ right: auto;
+ left: 0;
+ }
+}
+.dropup .dropdown-menu {
+ top: auto;
+ bottom: 100%;
+ margin-top: 0;
+ margin-bottom: 0.125rem;
+}
+.dropup .dropdown-toggle::after {
+ display: inline-block;
+ margin-left: 0.255em;
+ vertical-align: 0.255em;
+ content: "";
+ border-top: 0;
+ border-right: 0.3em solid transparent;
+ border-bottom: 0.3em solid;
+ border-left: 0.3em solid transparent;
+}
+.dropup .dropdown-toggle:empty::after {
+ margin-left: 0;
+}
+
+.dropdown-menu[x-placement^=top], .dropdown-menu[x-placement^=right], .dropdown-menu[x-placement^=bottom], .dropdown-menu[x-placement^=left] {
+ right: auto;
+ bottom: auto;
+}
+
+/*.dropdown-item {
+ display: block;
+ width: 100%;
+ padding: 0.25rem 1.5rem;
+ clear: both;
+ font-weight: 400;
+ color: #212529;
+ text-align: inherit;
+ white-space: nowrap;
+ background-color: transparent;
+ border: 0;
+}
+.dropdown-item:hover, .dropdown-item:focus {
+ color: #16181b;
+ text-decoration: none;
+ background-color: #f8f9fa;
+}
+.dropdown-item.active, .dropdown-item:active {
+ color: #fff;
+ text-decoration: none;
+ background-color: var(--primary);
+}
+.dropdown-item.disabled, .dropdown-item:disabled {
+ color: #6c757d;
+ pointer-events: none;
+ background-color: transparent;
+}*/
+
+.dropdown-menu.show {
+ display: block;
+}
+
+.btn-toolbar {
+ display: flex;
+ flex-wrap: wrap;
+ justify-content: flex-start;
+}
+.btn-toolbar .input-group {
+ width: auto;
+}
+
+.input-group {
+ position: relative;
+ display: flex;
+ flex-wrap: wrap;
+ align-items: stretch;
+ width: 100%;
+}
+.input-group > .form-control {
+ position: relative;
+ flex: 1 1 0%;
+ min-width: 0;
+ margin-bottom: 0;
+}
+.input-group > .form-control + .form-control {
+ margin-left: -1px;
+}
+.input-group > .form-control:focus {
+ z-index: 3;
+}
+.input-group > .form-control:not(:last-child) {
+ border-top-right-radius: 0;
+ border-bottom-right-radius: 0;
+}
+.input-group > .form-control:not(:first-child) {
+ border-top-left-radius: 0;
+ border-bottom-left-radius: 0;
+}
+
+
+.input-group-append {
+ display: flex;
+}
+
+.input-group-append .btn {
+ position: relative;
+ z-index: 2;
+}
+
+.input-group-append .btn:focus {
+ z-index: 3;
+}
+
+.input-group-append .btn + .btn,
+.input-group-append .btn + .input-group-text,
+.input-group-append .input-group-text + .input-group-text,
+.input-group-append .input-group-text + .btn {
+ margin-left: -1px;
+}
+
+.input-group-append {
+ margin-left: -1px;
+}
+
+.input-group-text {
+ display: flex;
+ align-items: center;
+ padding: 0.375rem 0.75rem;
+ margin-bottom: 0;
+ font-size: 1rem;
+ font-weight: 400;
+ line-height: 1.5;
+ color: #495057;
+ text-align: center;
+ white-space: nowrap;
+ background-color: #e9ecef;
+ border: 1px solid var(--gray-400);
+ border-radius: 4px;
+}
+.input-group-text input[type=radio],
+.input-group-text input[type=checkbox] {
+ margin-top: 0;
+}
+
+
+.input-group > .input-group-append:not(:last-child) > .btn,
+.input-group > .input-group-append:not(:last-child) > .input-group-text,
+.input-group > .input-group-append:last-child > .btn:not(:last-child):not(.dropdown-toggle),
+.input-group > .input-group-append:last-child > .input-group-text:not(:last-child) {
+ border-top-right-radius: 0;
+ border-bottom-right-radius: 0;
+}
+
+.input-group > .input-group-append > .btn,
+.input-group > .input-group-append > .input-group-text {
+ border-top-left-radius: 0;
+ border-bottom-left-radius: 0;
+}
+
+.custom-control {
+ position: relative;
+ display: block;
+ min-height: 1.5rem;
+ padding-left: 1.5rem;
+}
+
+.custom-control-input {
+ position: absolute;
+ left: 0;
+ z-index: -1;
+ width: 1rem;
+ height: 1.25rem;
+ opacity: 0;
+}
+.custom-control-input:checked ~ .custom-control-label::before {
+ color: #fff;
+ border-color: var(--primary);
+ background-color: var(--primary);
+}
+.custom-control-input:focus ~ .custom-control-label::before {
+ box-shadow: 0 0 0 0.2rem rgba(0, 123, 255, 0.25);
+}
+.custom-control-input:focus:not(:checked) ~ .custom-control-label::before {
+ border-color: #80bdff;
+}
+.custom-control-input:not(:disabled):active ~ .custom-control-label::before {
+ color: #fff;
+ background-color: #b3d7ff;
+ border-color: #b3d7ff;
+}
+.custom-control-input[disabled] ~ .custom-control-label, .custom-control-input:disabled ~ .custom-control-label {
+ color: #6c757d;
+}
+.custom-control-input[disabled] ~ .custom-control-label::before, .custom-control-input:disabled ~ .custom-control-label::before {
+ background-color: #e9ecef;
+}
+
+.custom-control-label {
+ position: relative;
+ margin-bottom: 0;
+ vertical-align: top;
+}
+.custom-control-label::before {
+ position: absolute;
+ top: 0.25rem;
+ left: -1.5rem;
+ display: block;
+ width: 1rem;
+ height: 1rem;
+ pointer-events: none;
+ content: "";
+ background-color: #fff;
+ border: #adb5bd solid 1px;
+}
+.custom-control-label::after {
+ position: absolute;
+ top: 0.25rem;
+ left: -1.5rem;
+ display: block;
+ width: 1rem;
+ height: 1rem;
+ content: "";
+ background: no-repeat 50%/50% 50%;
+}
+
+.custom-checkbox .custom-control-label::before {
+ border-radius: 4px;
+}
+.custom-checkbox .custom-control-input:checked ~ .custom-control-label::after {
+ background-image: url("data:image/svg+xml,%3csvg xmlns='https://www.w3.org/2000/svg' width='8' height='8' viewBox='0 0 8 8'%3e%3cpath fill='%23fff' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26l2.974 2.99L8 2.193z'/%3e%3c/svg%3e");
+}
+.custom-checkbox .custom-control-input:indeterminate ~ .custom-control-label::before {
+ border-color: var(--primary);
+ background-color: var(--primary);
+}
+.custom-checkbox .custom-control-input:indeterminate ~ .custom-control-label::after {
+ background-image: url("data:image/svg+xml,%3csvg xmlns='https://www.w3.org/2000/svg' width='4' height='4' viewBox='0 0 4 4'%3e%3cpath stroke='%23fff' d='M0 2h4'/%3e%3c/svg%3e");
+}
+.custom-checkbox .custom-control-input:disabled:checked ~ .custom-control-label::before {
+ background-color: rgba(0, 123, 255, 0.5);
+}
+.custom-checkbox .custom-control-input:disabled:indeterminate ~ .custom-control-label::before {
+ background-color: rgba(0, 123, 255, 0.5);
+}
+
+.custom-switch {
+ padding-left: 2.25rem;
+}
+.custom-switch .custom-control-label::before {
+ left: -2.25rem;
+ width: 1.75rem;
+ pointer-events: all;
+ border-radius: 0.5rem;
+}
+.custom-switch .custom-control-label::after {
+ top: calc(0.25rem + 2px);
+ left: calc(-2.25rem + 2px);
+ width: calc(1rem - 4px);
+ height: calc(1rem - 4px);
+ border-radius: 0.5rem;
+ transition: transform 0.15s ease-in-out, background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;
+}
+@media (prefers-reduced-motion: reduce) {
+ .custom-switch .custom-control-label::after {
+ transition: none;
+ }
+}
+.custom-switch .custom-control-input:checked ~ .custom-control-label::after {
+ background-color: #fff;
+ transform: translateX(0.75rem);
+}
+.custom-switch .custom-control-input:disabled:checked ~ .custom-control-label::before {
+ background-color: rgba(0, 123, 255, 0.5);
+}
+
+.custom-control-label::before {
+ transition: background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;
+}
+@media (prefers-reduced-motion: reduce) {
+ .custom-control-label::before {
+ transition: none;
+ }
+}
+
+.nav {
+ display: flex;
+ flex-wrap: wrap;
+ padding-left: 0;
+ margin-bottom: 0;
+ list-style: none;
+}
+
+.nav-link {
+ display: block;
+ padding: 0.5rem 1rem;
+}
+.nav-link:hover, .nav-link:focus {
+ text-decoration: none;
+}
+.nav-link.disabled {
+ color: #6c757d;
+ pointer-events: none;
+ cursor: default;
+}
+
+.nav-pills .nav-link {
+ border-radius: 4px;
+}
+.nav-pills .nav-link.active,
+.nav-pills .show > .nav-link {
+ color: #fff;
+ background-color: var(--primary);
+}
+
+.tab-content > .tab-pane {
+ display: none;
+}
+.tab-content > .active {
+ display: block;
+}
+
+.navbar {
+ position: relative;
+ display: flex;
+ flex-wrap: wrap;
+ align-items: center;
+ justify-content: space-between;
+ padding: 0.5rem 1rem;
+}
+.navbar .container,
+.navbar .container-fluid {
+ display: flex;
+ flex-wrap: wrap;
+ align-items: center;
+ justify-content: space-between;
+}
+.navbar-brand {
+ display: inline-block;
+ padding-top: 0.3125rem;
+ padding-bottom: 0.3125rem;
+ margin-right: 1rem;
+ font-size: 1.25rem;
+ line-height: inherit;
+ white-space: nowrap;
+}
+.navbar-brand:hover, .navbar-brand:focus {
+ text-decoration: none;
+}
+
+.navbar-nav {
+ display: flex;
+ flex-direction: column;
+ padding-left: 0;
+ margin-bottom: 0;
+ list-style: none;
+}
+.navbar-nav .nav-link {
+ padding-right: 0;
+ padding-left: 0;
+}
+.navbar-nav .dropdown-menu {
+ position: static;
+ float: none;
+}
+
+.navbar-collapse {
+ flex-basis: 100%;
+ flex-grow: 1;
+ align-items: center;
+}
+
+.navbar-toggler {
+ padding: 0.25rem 0.75rem;
+ font-size: 1.25rem;
+ line-height: 1;
+ background-color: transparent;
+ border: 1px solid transparent;
+ border-radius: 4px;
+}
+.navbar-toggler:hover, .navbar-toggler:focus {
+ text-decoration: none;
+}
+
+.navbar-toggler-icon {
+ display: inline-block;
+ width: 1.5em;
+ height: 1.5em;
+ vertical-align: middle;
+ content: "";
+ background: no-repeat center center;
+ background-size: 100% 100%;
+}
+@media (max-width: 767.98px) {
+ .navbar-expand-md > .container,
+ .navbar-expand-md > .container-fluid {
+ padding-right: 0;
+ padding-left: 0;
+ }
+}
+@media (min-width: 768px) {
+ .navbar-expand-md {
+ flex-flow: row nowrap;
+ justify-content: flex-start;
+ }
+ .navbar-expand-md .navbar-nav {
+ flex-direction: row;
+ }
+ .navbar-expand-md .navbar-nav .dropdown-menu {
+ position: absolute;
+ }
+ .navbar-expand-md .navbar-nav .nav-link {
+ padding-right: 0.5rem;
+ padding-left: 0.5rem;
+ }
+ .navbar-expand-md > .container,
+ .navbar-expand-md > .container-fluid {
+ flex-wrap: nowrap;
+ }
+ .navbar-expand-md .navbar-collapse {
+ display: flex !important;
+ flex-basis: auto;
+ }
+ .navbar-expand-md .navbar-toggler {
+ display: none;
+ }
+}
+@media (max-width: 991.98px) {
+ .navbar-expand-lg > .container,
+ .navbar-expand-lg > .container-fluid {
+ padding-right: 0;
+ padding-left: 0;
+ }
+}
+@media (min-width: 992px) {
+ .navbar-expand-lg {
+ flex-flow: row nowrap;
+ justify-content: flex-start;
+ }
+ .navbar-expand-lg .navbar-nav {
+ flex-direction: row;
+ }
+ .navbar-expand-lg .navbar-nav .dropdown-menu {
+ position: absolute;
+ }
+ .navbar-expand-lg .navbar-nav .nav-link {
+ padding-right: 0.5rem;
+ padding-left: 0.5rem;
+ }
+ .navbar-expand-lg > .container,
+ .navbar-expand-lg > .container-fluid {
+ flex-wrap: nowrap;
+ }
+ .navbar-expand-lg .navbar-collapse {
+ display: flex !important;
+ flex-basis: auto;
+ }
+ .navbar-expand-lg .navbar-toggler {
+ display: none;
+ }
+}
+
+.navbar-light .navbar-brand {
+ color: rgba(0, 0, 0, 0.9);
+}
+.navbar-light .navbar-brand:hover, .navbar-light .navbar-brand:focus {
+ color: rgba(0, 0, 0, 0.9);
+}
+.navbar-light .navbar-nav .nav-link {
+ color: rgba(0, 0, 0, 0.5);
+}
+.navbar-light .navbar-nav .nav-link:hover, .navbar-light .navbar-nav .nav-link:focus {
+ color: rgba(0, 0, 0, 0.7);
+}
+.navbar-light .navbar-nav .nav-link.disabled {
+ color: rgba(0, 0, 0, 0.3);
+}
+.navbar-light .navbar-toggler {
+ color: rgba(0, 0, 0, 0.5);
+ border-color: rgba(0, 0, 0, 0.1);
+}
+.navbar-light .navbar-toggler-icon {
+ background-image: url("data:image/svg+xml,%3csvg xmlns='https://www.w3.org/2000/svg' width='30' height='30' viewBox='0 0 30 30'%3e%3cpath stroke='rgba(0, 0, 0, 0.5)' stroke-linecap='round' stroke-miterlimit='10' stroke-width='2' d='M4 7h22M4 15h22M4 23h22'/%3e%3c/svg%3e");
+}
+
+.navbar-dark .navbar-brand {
+ color: #fff;
+}
+.navbar-dark .navbar-brand:hover, .navbar-dark .navbar-brand:focus {
+ color: #fff;
+}
+.navbar-dark .navbar-nav .nav-link {
+ color: rgba(255, 255, 255, 0.5);
+}
+.navbar-dark .navbar-nav .nav-link:hover, .navbar-dark .navbar-nav .nav-link:focus {
+ color: rgba(255, 255, 255, 0.75);
+}
+.navbar-dark .navbar-nav .nav-link.disabled {
+ color: rgba(255, 255, 255, 0.25);
+}
+.navbar-dark .navbar-nav .show > .nav-link,
+.navbar-dark .navbar-nav .active > .nav-link,
+.navbar-dark .navbar-nav .nav-link.show,
+.navbar-dark .navbar-nav .nav-link.active {
+ color: #fff;
+}
+.navbar-dark .navbar-toggler {
+ color: rgba(255, 255, 255, 0.5);
+ border-color: rgba(255, 255, 255, 0.1);
+}
+.navbar-dark .navbar-toggler-icon {
+ background-image: url("data:image/svg+xml,%3csvg xmlns='https://www.w3.org/2000/svg' width='30' height='30' viewBox='0 0 30 30'%3e%3cpath stroke='rgba(255, 255, 255, 0.5)' stroke-linecap='round' stroke-miterlimit='10' stroke-width='2' d='M4 7h22M4 15h22M4 23h22'/%3e%3c/svg%3e");
+}
+
+.card {
+ position: relative;
+ display: flex;
+ flex-direction: column;
+ min-width: 0;
+ word-wrap: break-word;
+ background-color: #fff;
+ background-clip: border-box;
+ border: 1px solid rgba(0, 0, 0, 0.125);
+ border-radius: 4px;
+}
+.card > hr {
+ margin-right: 0;
+ margin-left: 0;
+}
+.card > .list-group:first-child .list-group-item:first-child {
+ border-top-left-radius: 0.35rem;
+ border-top-right-radius: 0.35rem;
+}
+.card > .list-group:last-child .list-group-item:last-child {
+ border-bottom-right-radius: 0.35rem;
+ border-bottom-left-radius: 0.35rem;
+}
+
+.card-body {
+ flex: 1 1 auto;
+ min-height: 1px;
+ padding: 1.25rem;
+}
+
+.card-title {
+ margin-bottom: 0.75rem;
+}
+
+.card-text:last-child {
+ margin-bottom: 0;
+}
+
+.card-header {
+ padding: 0.75rem 1.25rem;
+ margin-bottom: 0;
+ background-color: rgba(0, 0, 0, 0.03);
+ border-bottom: 1px solid rgba(0, 0, 0, 0.125);
+}
+.card-header:first-child {
+ border-radius: calc(0.35rem - 1px) calc(0.35rem - 1px) 0 0;
+}
+.card-header + .list-group .list-group-item:first-child {
+ border-top: 0;
+}
+
+.card-footer {
+ padding: 0.75rem 1.25rem;
+ background-color: rgba(0, 0, 0, 0.03);
+ border-top: 1px solid rgba(0, 0, 0, 0.125);
+}
+.card-footer:last-child {
+ border-radius: 0 0 calc(0.35rem - 1px) calc(0.35rem - 1px);
+}
+
+
+.card-img-top {
+ flex-shrink: 0;
+ width: 100%;
+}
+
+
+.card-img-top {
+ border-top-left-radius: calc(0.35rem - 1px);
+ border-top-right-radius: calc(0.35rem - 1px);
+}
+
+.card-columns .card {
+ margin-bottom: 0.75rem;
+}
+@media (min-width: 576px) {
+ .card-columns {
+ column-count: 3;
+ column-gap: 1.25rem;
+ orphans: 1;
+ widows: 1;
+ }
+ .card-columns .card {
+ display: inline-block;
+ width: 100%;
+ }
+}
+
+.pagination {
+ display: flex;
+ padding-left: 0;
+ list-style: none;
+ border-radius: 4px;
+}
+
+.page-link {
+ position: relative;
+ display: block;
+ padding: 0.5rem 0.75rem;
+ margin-left: -1px;
+ line-height: 1.25;
+ color: var(--primary);
+ background-color: #fff;
+ border: 1px solid #dee2e6;
+}
+.page-link:hover {
+ z-index: 2;
+ color: var(--primary);
+ text-decoration: none;
+ background-color: #e9ecef;
+ border-color: #dee2e6;
+}
+.page-link:focus {
+ z-index: 3;
+ outline: 0;
+ box-shadow: 0 0 0 0.2rem rgba(0, 123, 255, 0.25);
+}
+
+.page-item:first-child .page-link {
+ margin-left: 0;
+ border-top-left-radius: 0.35rem;
+ border-bottom-left-radius: 0.35rem;
+}
+.page-item:last-child .page-link {
+ border-top-right-radius: 0.35rem;
+ border-bottom-right-radius: 0.35rem;
+}
+.page-item.active .page-link {
+ z-index: 3;
+ color: #fff;
+ background-color: var(--primary);
+ border-color: var(--primary);
+}
+.page-item.disabled .page-link {
+ color: #6c757d;
+ pointer-events: none;
+ cursor: auto;
+ background-color: #fff;
+ border-color: #dee2e6;
+}
+
+.pagination-sm .page-link {
+ padding: 0.25rem 0.5rem;
+ font-size: 0.875rem;
+ line-height: 1.5;
+}
+.pagination-sm .page-item:first-child .page-link {
+ border-top-left-radius: 0.2rem;
+ border-bottom-left-radius: 0.2rem;
+}
+.pagination-sm .page-item:last-child .page-link {
+ border-top-right-radius: 0.2rem;
+ border-bottom-right-radius: 0.2rem;
+}
+
+.alert {
+ position: relative;
+ padding: 0.75rem 1.25rem;
+ margin-bottom: 1rem;
+ border: 1px solid transparent;
+ border-radius: 4px;
+}
+
+.alert-link {
+ font-weight: 600;
+}
+
+.alert-dismissible {
+ padding-right: 4rem;
+}
+.alert-dismissible .close {
+ position: absolute;
+ top: 0;
+ right: 0;
+ padding: 0.75rem 1.25rem;
+ color: inherit;
+}
+
+.alert-success {
+ color: #155724;
+ background-color: #d4edda;
+ border-color: #c3e6cb;
+}
+.alert-success hr {
+ border-top-color: #b1dfbb;
+}
+.alert-success .alert-link {
+ color: #0b2e13;
+}
+
+.alert-warning {
+ color: #856404;
+ background-color: #fff3cd;
+ border-color: #ffeeba;
+}
+.alert-warning hr {
+ border-top-color: #ffe8a1;
+}
+.alert-warning .alert-link {
+ color: #533f03;
+}
+
+.alert-danger {
+ color: #721c24;
+ background-color: #f8d7da;
+ border-color: #f5c6cb;
+}
+.alert-danger hr {
+ border-top-color: #f1b0b7;
+}
+.alert-danger .alert-link {
+ color: #491217;
+}
+
+@keyframes progress-bar-stripes {
+ from {
+ background-position: 1rem 0;
+ }
+ to {
+ background-position: 0 0;
+ }
+}
+
+.media {
+ display: flex;
+ align-items: flex-start;
+}
+
+.media-body {
+ flex: 1;
+}
+
+.list-group {
+ display: flex;
+ flex-direction: column;
+ padding-left: 0;
+ margin-bottom: 0;
+}
+
+.list-group-item {
+ position: relative;
+ display: block;
+ padding: 0.75rem 1.25rem;
+ background-color: #fff;
+ border: 1px solid rgba(0, 0, 0, 0.125);
+}
+.list-group-item:first-child {
+ border-top-left-radius: 0.35rem;
+ border-top-right-radius: 0.35rem;
+}
+.list-group-item:last-child {
+ border-bottom-right-radius: 0.35rem;
+ border-bottom-left-radius: 0.35rem;
+}
+.list-group-item.disabled, .list-group-item:disabled {
+ color: #6c757d;
+ pointer-events: none;
+ background-color: #fff;
+}
+.list-group-item.active {
+ z-index: 2;
+ color: #fff;
+ background-color: var(--primary);
+ border-color: var(--primary);
+}
+.list-group-item + .list-group-item {
+ border-top-width: 0;
+}
+.list-group-item + .list-group-item.active {
+ margin-top: -1px;
+ border-top-width: 1px;
+}
+
+.close {
+ float: right;
+ font-size: 1.5rem;
+ font-weight: 600;
+ line-height: 1;
+ color: #fff;
+ opacity: 0.5;
+}
+.close:hover {
+ color: #000;
+ text-decoration: none;
+}
+.close:not(:disabled):not(.disabled):hover, .close:not(:disabled):not(.disabled):focus {
+ opacity: 0.75;
+}
+
+button.close {
+ padding: 0;
+ background-color: transparent;
+ border: 0;
+ appearance: none;
+}
+
+a.close.disabled {
+ pointer-events: none;
+}
+
+.toast {
+ max-width: 350px;
+ overflow: hidden;
+ font-size: 0.875rem;
+ /*background-color: rgba(255, 255, 255, 0.85);*/
+ background-clip: padding-box;
+ /*border: 1px solid rgba(0, 0, 0, 0.1);*/
+ box-shadow: 0 0.25rem 0.75rem rgba(0, 0, 0, 0.1);
+ /*backdrop-filter: blur(10px);*/
+ opacity: 0;
+ border-radius: 0.25rem;
+}
+.toast:not(:last-child) {
+ margin-bottom: 0.75rem;
+}
+.toast.showing {
+ opacity: 1;
+}
+.toast.show {
+ display: block;
+ opacity: 1;
+}
+.toast.hide {
+ display: none;
+}
+
+.toast-body {
+ padding: 0.75rem;
+}
+
+.modal-open {
+ overflow: hidden;
+}
+.modal-open .modal {
+ overflow-x: hidden;
+ overflow-y: auto;
+}
+
+.modal {
+ position: fixed;
+ top: 0;
+ left: 0;
+ z-index: 1050;
+ display: none;
+ width: 100%;
+ height: 100%;
+ overflow: hidden;
+ outline: 0;
+}
+
+.modal-dialog {
+ position: relative;
+ width: auto;
+ margin: 0.5rem;
+ pointer-events: none;
+}
+.modal.fade .modal-dialog {
+ transition: transform 0.3s ease-out;
+ transform: translate(0, -50px);
+}
+@media (prefers-reduced-motion: reduce) {
+ .modal.fade .modal-dialog {
+ transition: none;
+ }
+}
+.modal.show .modal-dialog {
+ transform: none;
+}
+.modal.modal-static .modal-dialog {
+ transform: scale(1.02);
+}
+
+.modal-dialog-scrollable {
+ display: flex;
+ max-height: calc(100% - 1rem);
+}
+.modal-dialog-scrollable .modal-content {
+ max-height: calc(100vh - 1rem);
+ overflow: hidden;
+}
+.modal-dialog-scrollable .modal-header,
+.modal-dialog-scrollable .modal-footer {
+ flex-shrink: 0;
+}
+.modal-dialog-scrollable .modal-body {
+ overflow-y: auto;
+}
+
+.modal-dialog-centered {
+ display: flex;
+ align-items: center;
+ min-height: calc(100% - 1rem);
+}
+.modal-dialog-centered::before {
+ display: block;
+ height: calc(100vh - 1rem);
+ content: "";
+}
+.modal-dialog-centered.modal-dialog-scrollable {
+ flex-direction: column;
+ justify-content: center;
+ height: 100%;
+}
+.modal-dialog-centered.modal-dialog-scrollable .modal-content {
+ max-height: none;
+}
+.modal-dialog-centered.modal-dialog-scrollable::before {
+ content: none;
+}
+
+.modal-content {
+ position: relative;
+ display: flex;
+ flex-direction: column;
+ width: 100%;
+ pointer-events: auto;
+ background-color: #fff;
+ background-clip: padding-box;
+ border: 1px solid rgba(0, 0, 0, 0.2);
+ border-radius: 0.3rem;
+ outline: 0;
+}
+
+.modal-backdrop {
+ position: fixed;
+ top: 0;
+ left: 0;
+ z-index: 1040;
+ width: 100vw;
+ height: 100vh;
+ background-color: #000;
+}
+.modal-backdrop.fade {
+ opacity: 0;
+}
+.modal-backdrop.show {
+ opacity: 0.5;
+}
+
+.modal-header {
+ display: flex;
+ align-items: flex-start;
+ justify-content: space-between;
+ padding: 1rem 1rem;
+ border-bottom: 1px solid var(--gray-400);
+ border-top-left-radius: calc(0.3rem - 1px);
+ border-top-right-radius: calc(0.3rem - 1px);
+}
+.modal-header .close {
+ padding: 1rem 1rem;
+ margin: -1rem -1rem -1rem auto;
+}
+
+.modal-title {
+ margin-bottom: 0;
+ line-height: 1.5;
+}
+
+.modal-body {
+ position: relative;
+ flex: 1 1 auto;
+ padding: 1rem;
+}
+
+.modal-footer {
+ display: flex;
+ flex-wrap: wrap;
+ align-items: center;
+ justify-content: flex-end;
+ padding: 0.75rem;
+ border-top: 1px solid var(--gray-400);
+ border-bottom-right-radius: calc(0.3rem - 1px);
+ border-bottom-left-radius: calc(0.3rem - 1px);
+}
+.modal-footer > * {
+ margin: 0.25rem;
+}
+
+@media (min-width: 576px) {
+ .modal-dialog {
+ max-width: 500px;
+ margin: 1.75rem auto;
+ }
+
+ .modal-dialog-scrollable {
+ max-height: calc(100% - 3.5rem);
+ }
+ .modal-dialog-scrollable .modal-content {
+ max-height: calc(100vh - 3.5rem);
+ }
+
+ .modal-dialog-centered {
+ min-height: calc(100% - 3.5rem);
+ }
+ .modal-dialog-centered::before {
+ height: calc(100vh - 3.5rem);
+ }
+}
+@media (min-width: 992px) {
+
+ .modal-xl {
+ max-width: 800px;
+ }
+}
+@media (min-width: 1200px) {
+ .modal-xl {
+ max-width: 1140px;
+ }
+}
+.tooltip {
+ position: absolute;
+ z-index: 1070;
+ display: block;
+ margin: 0;
+ font-family: 'Helvetica Neue', -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol";
+ font-style: normal;
+ font-weight: 400;
+ line-height: 1.5;
+ text-align: left;
+ text-align: start;
+ text-decoration: none;
+ text-shadow: none;
+ text-transform: none;
+ letter-spacing: normal;
+ word-break: normal;
+ word-spacing: normal;
+ white-space: normal;
+ line-break: auto;
+ font-size: 0.875rem;
+ word-wrap: break-word;
+ opacity: 0;
+}
+.tooltip.show {
+ opacity: 1;
+}
+.tooltip .arrow {
+ position: absolute;
+ display: block;
+ width: 0.8rem;
+ height: 0.4rem;
+}
+.tooltip .arrow::before {
+ position: absolute;
+ content: "";
+ border-color: transparent;
+ border-style: solid;
+}
+
+.tooltip-inner {
+ max-width: 200px;
+ padding: 0.25rem 0.5rem;
+ color: #fff;
+ text-align: center;
+ background-color: #000;
+ border-radius: 4px;
+}
+
+.popover {
+ position: absolute;
+ top: 0;
+ left: 0;
+ z-index: 1060;
+ display: block;
+ max-width: 276px;
+ font-family: 'Helvetica Neue', -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol";
+ font-style: normal;
+ font-weight: 400;
+ line-height: 1.5;
+ text-align: left;
+ text-align: start;
+ text-decoration: none;
+ text-shadow: none;
+ text-transform: none;
+ letter-spacing: normal;
+ word-break: normal;
+ word-spacing: normal;
+ white-space: normal;
+ line-break: auto;
+ font-size: 0.875rem;
+ word-wrap: break-word;
+ background-color: #fff;
+ background-clip: padding-box;
+ border: 1px solid rgba(0, 0, 0, 0.2);
+ border-radius: 0.3rem;
+}
+.popover .arrow {
+ position: absolute;
+ display: block;
+ width: 1rem;
+ height: 0.5rem;
+ margin: 0 0.3rem;
+}
+.popover .arrow::before, .popover .arrow::after {
+ position: absolute;
+ display: block;
+ content: "";
+ border-color: transparent;
+ border-style: solid;
+}
+
+.popover-header {
+ padding: 0.5rem 0.75rem;
+ margin-bottom: 0;
+ font-size: 1rem;
+ background-color: #f7f7f7;
+ border-bottom: 1px solid #ebebeb;
+ border-top-left-radius: calc(0.3rem - 1px);
+ border-top-right-radius: calc(0.3rem - 1px);
+}
+.popover-header:empty {
+ display: none;
+}
+
+.popover-body {
+ padding: 0.5rem 0.75rem;
+ color: #212529;
+}
+
+.carousel {
+ position: relative;
+}
+
+.carousel.pointer-event {
+ touch-action: pan-y;
+}
+
+.carousel-item {
+ position: relative;
+ display: none;
+ float: left;
+ width: 100%;
+ margin-right: -100%;
+ backface-visibility: hidden;
+ transition: transform 0.6s ease-in-out;
+}
+@media (prefers-reduced-motion: reduce) {
+ .carousel-item {
+ transition: none;
+ }
+}
+
+.carousel-item.active,
+.carousel-item-next,
+.carousel-item-prev {
+ display: block;
+}
+
+.carousel-item-next:not(.carousel-item-left) {
+ transform: translateX(100%);
+}
+
+.carousel-item-prev:not(.carousel-item-right) {
+ transform: translateX(-100%);
+}
+
+.carousel-indicators {
+ position: absolute;
+ right: 0;
+ bottom: 0;
+ left: 0;
+ z-index: 15;
+ display: flex;
+ justify-content: center;
+ padding-left: 0;
+ margin-right: 15%;
+ margin-left: 15%;
+ list-style: none;
+}
+.carousel-indicators li {
+ box-sizing: content-box;
+ flex: 0 1 auto;
+ width: 30px;
+ height: 3px;
+ margin-right: 3px;
+ margin-left: 3px;
+ text-indent: -999px;
+ cursor: pointer;
+ background-color: #fff;
+ background-clip: padding-box;
+ border-top: 10px solid transparent;
+ border-bottom: 10px solid transparent;
+ opacity: 0.5;
+ transition: opacity 0.6s ease;
+}
+@media (prefers-reduced-motion: reduce) {
+ .carousel-indicators li {
+ transition: none;
+ }
+}
+.carousel-indicators .active {
+ opacity: 1;
+}
+
+@keyframes spinner-border {
+ to {
+ transform: rotate(360deg);
+ }
+}
+
+@keyframes spinner-grow {
+ 0% {
+ transform: scale(0);
+ }
+ 50% {
+ opacity: 1;
+ }
+}
+
+
+.stretched-link::after {
+ position: absolute;
+ top: 0;
+ right: 0;
+ bottom: 0;
+ left: 0;
+ z-index: 1;
+ pointer-events: auto;
+ content: "";
+ background-color: rgba(0, 0, 0, 0);
+}
+
+/*.m-0 {
+ margin: 0 !important;
+}
+
+.mt-0,
+.my-0 {
+ margin-top: 0 !important;
+}
+
+.mr-0,
+.mx-0 {
+ margin-right: 0 !important;
+}
+
+.mb-0,
+.my-0 {
+ margin-bottom: 0 !important;
+}
+
+
+.mx-0 {
+ margin-left: 0 !important;
+}
+
+.m-1 {
+ margin: 0.25rem !important;
+}
+
+.mt-1,
+.my-1 {
+ margin-top: 0.25rem !important;
+}
+
+.mr-1,
+.mx-1 {
+ margin-right: 0.25rem !important;
+}
+
+.mb-1,
+.my-1 {
+ margin-bottom: 0.25rem !important;
+}
+
+.ml-1,
+.mx-1 {
+ margin-left: 0.25rem !important;
+}
+
+.mt-2,
+.my-2 {
+ margin-top: 0.5rem !important;
+}
+
+.mr-2,
+.mx-2 {
+ margin-right: 0.5rem !important;
+}
+
+.mb-2,
+.my-2 {
+ margin-bottom: 0.5rem !important;
+}
+
+.ml-2,
+.mx-2 {
+ margin-left: 0.5rem !important;
+}
+
+.mt-3,
+.my-3 {
+ margin-top: 1rem !important;
+}
+
+.mr-3 {
+ margin-right: 1rem !important;
+}
+
+.mb-3,
+.my-3 {
+ margin-bottom: 1rem !important;
+}
+
+.ml-3 {
+ margin-left: 1rem !important;
+}
+
+.m-4 {
+ margin: 1.5rem !important;
+}
+
+.mt-4 {
+ margin-top: 1.5rem !important;
+}
+
+.mr-4,
+.mx-4 {
+ margin-right: 1.5rem !important;
+}
+
+.mb-4 {
+ margin-bottom: 1.5rem !important;
+}
+
+
+.mx-4 {
+ margin-left: 1.5rem !important;
+}
+
+.mt-5,
+.my-5 {
+ margin-top: 3rem !important;
+}
+
+.mb-5,
+.my-5 {
+ margin-bottom: 3rem !important;
+}
+
+.mb-6 {
+ margin-bottom: 3.5rem !important;
+}
+
+
+.my-8 {
+ margin-top: 10rem !important;
+}
+
+
+.my-8 {
+ margin-bottom: 10rem !important;
+}
+
+.p-0 {
+ padding: 0 !important;
+}
+
+.pt-0,
+.py-0 {
+ padding-top: 0 !important;
+}
+
+.pr-0,
+.px-0 {
+ padding-right: 0 !important;
+}
+
+.pb-0,
+.py-0 {
+ padding-bottom: 0 !important;
+}
+
+.pl-0,
+.px-0 {
+ padding-left: 0 !important;
+}
+
+.pr-1,
+.px-1 {
+ padding-right: 0.25rem !important;
+}
+
+.pb-1 {
+ padding-bottom: 0.25rem !important;
+}
+
+.pl-1,
+.px-1 {
+ padding-left: 0.25rem !important;
+}
+
+.p-2 {
+ padding: 0.5rem !important;
+}
+
+.pt-2,
+.py-2 {
+ padding-top: 0.5rem !important;
+}
+
+.pr-2,
+.px-2 {
+ padding-right: 0.5rem !important;
+}
+
+
+.py-2 {
+ padding-bottom: 0.5rem !important;
+}
+
+.pl-2,
+.px-2 {
+ padding-left: 0.5rem !important;
+}
+
+.p-3 {
+ padding: 1rem !important;
+}
+
+.pt-3,
+.py-3 {
+ padding-top: 1rem !important;
+}
+
+.pr-3,
+.px-3 {
+ padding-right: 1rem !important;
+}
+
+.pb-3,
+.py-3 {
+ padding-bottom: 1rem !important;
+}
+
+.pl-3,
+.px-3 {
+ padding-left: 1rem !important;
+}
+
+.p-4 {
+ padding: 1.5rem !important;
+}
+
+.pt-4,
+.py-4 {
+ padding-top: 1.5rem !important;
+}
+
+
+.py-4 {
+ padding-bottom: 1.5rem !important;
+}
+
+.p-5 {
+ padding: 3rem !important;
+}
+
+
+.py-5 {
+ padding-top: 3rem !important;
+}
+
+
+.py-5 {
+ padding-bottom: 3rem !important;
+}
+
+
+.py-7 {
+ padding-top: 5rem !important;
+}
+
+
+.py-7 {
+ padding-bottom: 5rem !important;
+}
+
+.mt-n3 {
+ margin-top: -1rem !important;
+}
+
+.mt-n6 {
+ margin-top: -3.5rem !important;
+}
+
+.m-auto {
+ margin: auto !important;
+}*/
+
+/*.mt-auto,
+.my-auto {
+ margin-top: auto !important;
+}
+
+.mr-auto,
+.mx-auto {
+ margin-right: auto !important;
+}
+
+.mb-auto,
+.my-auto {
+ margin-bottom: auto !important;
+}
+
+.ml-auto,
+.mx-auto {
+ margin-left: auto !important;
+}*/
+
+
+@media print {
+ *,
+ *::before,
+ *::after {
+ box-shadow: none !important;
+ }
+
+ a:not(.btn) {
+ text-decoration: underline;
+ }
+
+ abbr[title]::after {
+ content: " (" attr(title) ")";
+ }
+
+ pre {
+ white-space: pre-wrap !important;
+ }
+
+ pre,
+ blockquote {
+ border: 1px solid #adb5bd;
+ page-break-inside: avoid;
+ }
+
+ thead {
+ display: table-header-group;
+ }
+
+ tr,
+ img {
+ page-break-inside: avoid;
+ }
+
+ p,
+ h2,
+ h3 {
+ orphans: 3;
+ widows: 3;
+ }
+
+ h2,
+ h3 {
+ page-break-after: avoid;
+ }
+
+ @page {
+ size: a3;
+ }
+ body {
+ min-width: 992px !important;
+ }
+
+ .container {
+ min-width: 992px !important;
+ }
+
+ .navbar {
+ display: none;
+ }
+
+ .badge {
+ border: 1px solid #000;
+ }
+
+ .table {
+ border-collapse: collapse !important;
+ }
+ .table td,
+ .table th {
+ background-color: #fff !important;
+ }
+
+ .table .thead-dark th {
+ color: inherit;
+ border-color: var(--gray-400);
+ }
+}
+html {
+ font-size: 14px;
+}
+
+@supports (font-variation-settings: normal) {
+ html {
+ font-family: "Inter var", sans-serif;
+ }
+}
+/*body {
+ color: var(--black);
+ padding-top: 49px;
+ background-color: var(--gray-700);
+ -webkit-font-smoothing: antialiased;
+ -moz-osx-font-smoothing: grayscale;
+}*/
+
+@media (min-width: 1200px) {
+ .container {
+ max-width: 1300px;
+ }
+}
+p {
+ font-size: 14px;
+}
+
+pre {
+ white-space: pre-wrap;
+ white-space: -moz-pre-wrap;
+ white-space: -pre-wrap;
+ white-space: -o-pre-wrap;
+ word-wrap: break-word;
+}
+
+#settings, #submit {
+ padding-top: 98px;
+ background-color: var(--gray-600);
+}
+
+#page {
+ padding-top: 49px;
+ background-color: var(--gray-700);
+}
+
+#article {
+ padding-top: 0;
+ background-color: var(--gray-700);
+}
+
+#thread, #userpage {
+ background-color: var(--gray-700);
+}
+
+#article .navbar-light .navbar-nav .nav-link {
+ color: var(--black);
+}
+
+#article .navbar-light .navbar-nav .nav-link:hover {
+ background-color: transparent;
+ color: var(--primary);
+}
+
+#article .navbar-light .navbar-nav .nav-link:focus {
+ background-color: transparent;
+ color: var(--primary);
+}
+
+.article-title {
+ margin-bottom: 3rem;
+ font-weight: 600;
+ line-height: 3rem;
+ margin-top: 2rem;
+}
+
+#page p {
+ font-size: 16px;
+}
+
+a.dropdown-toggle:hover {
+ text-decoration: none;
+}
+
+.comment-text ul li ul {
+ padding-left: 0;
+}
+
+ul.no-bullets {
+ list-style-type: none;
+}
+
+ol > li {
+ list-style-type: none;
+ counter-increment: count;
+ margin-bottom: 0.75rem;
+}
+
+ol > li::before {
+ content: counter(count) ".";
+ font-weight: 600;
+ margin-right: 0.5rem;
+}
+
+.footer .list-inline-item:not(:last-child) {
+ margin-right: 1.5rem;
+}
+
+[data-bs-toggle=collapse] .fa:before {
+ content: "\f139";
+}
+
+[data-bs-toggle=collapse].collapsed .fa:before {
+ content: "\f13a";
+}
+
+.btn {
+ font-weight: 600;
+ font-size: 1rem;
+ border-radius: 0.2rem;
+}
+
+.btn-lg {
+ font-size: 1rem;
+}
+
+.btn.disabled, .btn:disabled {
+ opacity: 0.5;
+}
+
+.btn-success, .btn-danger {
+ color: var(--white);
+}
+
+.btn.login, .btn.register {
+ height: calc(1.5em + 0.75rem + 2px);
+ border-radius: 4px;
+}
+
+.tooltip {
+ font-weight: 600;
+}
+
+/*.tooltip-inner {
+ background-color: var(--black);
+ color: var(--white);
+}*/
+
+.alert {
+ padding: 0.5rem 1rem;
+}
+
+.alert-dismissible .close {
+ padding: 0.5rem 1.25rem;
+ bottom: 0;
+}
+
+.alert-dismissible .close .fa, .alert-dismissible .close .fas, .alert-dismissible .close .far, .alert-dismissible .close .fab {
+ margin-right: 0rem;
+}
+
+.alert .fa, .alert .fas, .alert .far, .alert .fab {
+ margin-right: 0.5rem;
+}
+
+.toast {
+ font-size: 1rem;
+ font-weight: 600;
+ color: var(--black);
+ border: 0;
+ display: none;
+ position: fixed;
+ bottom: 1.5rem;
+ margin: 0 auto;
+ left: 1.5rem;
+ right: 0;
+ width: 300px;
+ z-index: 1041;
+ background-color: var(--dark);
+}
+
+.navbar-light {
+ background-color: var(--gray-500) !important;
+ box-shadow: 0 0.1px 2px rgba(0, 0, 0, 0.15), 0 0 2px rgba(0, 0, 0, 0.1) !important;
+}
+
+.navbar-toggler-icon {
+ width: auto;
+ height: auto;
+}
+
+.navbar-toggler-icon, .navbar-dark .navbar-toggler-icon, .navbar-light .navbar-toggler-icon {
+ background: transparent;
+}
+
+.navbar-toggler, .navbar-dark .navbar-toggler, .navbar-light .navbar-toggler {
+ border: none;
+}
+
+.navbar-expand-md .navbar-nav .nav-link {
+ padding-left: 1rem;
+ padding-right: 1rem;
+}
+
+#page .navbar-light .navbar-nav .nav-link {
+ color: var(--dark);
+}
+
+#page .navbar-light .navbar-nav .nav-link:hover {
+ background-color: transparent;
+ color: var(--primary);
+}
+
+.navbar-brand, .navbar-light .navbar-brand {
+ color: var(--primary);
+ font-weight: 600;
+}
+
+.navbar-dark .navbar-brand {
+ color: var(--white);
+}
+
+.navbar .text-white {
+ color: var(--white);
+}
+
+.tab-bar {
+ box-shadow: inset 0 -0.1px 0 var(--gray-400);
+ border-top-left-radius: 0.35rem;
+ border-top-right-radius: 0.35rem;
+ padding: 0.75rem 1rem 0 1rem;
+ background-color: var(--light);
+ z-index: 5;
+}
+
+.navbar-nav .nav-link {
+ padding: 0.25rem 0.5rem;
+}
+
+.navbar-expand-md .navbar-nav .nav-link {
+ padding: 0.25rem 0.5rem;
+}
+
+.navbar-light .navbar-nav .nav-link, .navbar-light .navbar-nav .nav-link:hover {
+ color: var(--black);
+}
+
+.navbar-light .navbar-nav .nav-link:hover {
+ border-radius: 4px;
+}
+
+.navbar-light .navbar-nav .nav-link:focus {
+ background-color: rgba(0, 0, 0, 0.15);
+ border-radius: 4px;
+}
+
+.navbar-light .navbar-nav .nav-link:active .fa, .navbar-light .navbar-nav .nav-link:active .fas, .navbar-light .navbar-nav .nav-link:active .far, .navbar-light .navbar-nav .nav-link:active .fab {
+ color: var(--primary);
+ text-align: center;
+ font-size: 1rem;
+}
+
+.navbar-light .navbar-nav .nav-link .fa, .navbar-light .navbar-nav .nav-link .fas, .navbar-light .navbar-nav .nav-link .far, .navbar-light .navbar-nav .nav-link .fab {
+ color: var(--white);
+ text-align: center;
+ font-size: 1rem;
+}
+
+.navbar-light .navbar-nav .btn-primary.nav-link {
+ color: var(--white);
+}
+
+.navbar-dark .navbar-nav .nav-link {
+ color: var(--white);
+}
+
+.navbar-dark .navbar-nav .nav-link:hover {
+ background-color: rgba(0, 0, 0, 0.15);
+ border-radius: 4px;
+}
+
+.navbar-dark .navbar-nav .show > .nav-link:focus, .navbar-dark .navbar-nav .show > .nav-link:active, .navbar-dark .navbar-nav .show > .nav-link:hover {
+ background-color: var(--light);
+ border-radius: 4px;
+}
+
+.navbar-dark .navbar-nav .nav-link .fa, .navbar-dark .navbar-nav .nav-link .fas, .navbar-dark .navbar-nav .nav-link .far, .navbar-dark .navbar-nav .nav-link .fab {
+ color: var(--white);
+ text-align: center;
+ font-size: 1.25rem;
+}
+
+.navbar-dark .navbar-nav .show > .nav-link:focus .fa, .navbar-dark .navbar-nav .show > .nav-link:focus .fas, .navbar-dark .navbar-nav .show > .nav-link:focus .far, .navbar-dark .navbar-nav .show > .nav-link:focus .fab {
+ color: var(--black);
+}
+
+.navbar-dark .navbar-nav .nav-link:hover:active .fa, .navbar-dark .navbar-nav .nav-link:hover:active .fas, .navbar-dark .navbar-nav .nav-link:hover:active .far, .navbar-dark .navbar-nav .nav-link:hover:active .fab {
+ color: var(--white);
+}
+
+.post-nav .nav-link {
+ color: var(--muted);
+ font-size: 1rem;
+ font-weight: 600;
+ padding: 0.75rem 1rem;
+}
+
+.settings-nav .nav-link {
+ color: var(--gray-200);
+ font-size: 1rem;
+ font-weight: 400;
+ padding: 0.75rem 1rem;
+}
+
+.post-nav > .nav-item > .nav-link.active {
+ color: var(--primary);
+}
+
+.settings-nav > .nav-item > .nav-link.active {
+ color: var(--primary);
+ box-shadow: inset 0 -2px 0 var(--primary);
+}
+
+.post-nav .nav-link:hover, .post-nav .nav-link:focus, .settings-nav .nav-link:hover, .settings-nav .nav-link:focus {
+ color: var(--primary);
+}
+
+.post-nav .nav-link:hover .fa, .post-nav .nav-link:focus .fa, .post-nav .nav-link:hover .fas, .post-nav .nav-link:focus .fas, .post-nav .nav-link:hover .far, .post-nav .nav-link:focus .far, .post-nav .nav-link:hover .fab, .post-nav .nav-link:focus .fab {
+ color: var(--primary);
+}
+
+.post-nav > .nav-item > .nav-link.active .fa, .post-nav > .nav-item > .nav-link.active .fas, .post-nav > .nav-item > .nav-link.active .far, .post-nav > .nav-item > .nav-link.active .fab {
+ color: var(--primary);
+}
+
+.post-nav .fa, .post-nav .fas, .post-nav .far, .post-nav .fab, .post-nav .fal {
+ font-size: 12px;
+ margin-right: 0.5rem;
+ color: var(--muted);
+}
+
+.settings-nav > .nav-item > .nav-link.active {
+ color: var(--primary);
+ box-shadow: inset 0 -2px 0 var(--primary);
+}
+
+.settings-nav > .nav-item > .nav-link.active .fa, .settings-nav > .nav-item > .nav-link.active .fas, .settings-nav > .nav-item > .nav-link.active .far, .settings-nav > .nav-item > .nav-link.active .fab {
+ color: var(--primary);
+}
+
+.settings-nav .fa, .settings-nav .fas, .settings-nav .far, .settings-nav .fab, .settings-nav .fal {
+ font-size: 16px;
+ color: var(--muted);
+}
+
+.color-picker input[type=radio] {
+ display: none;
+}
+
+label.color-radio {
+ display: inline-block;
+ width: 25px;
+ height: 25px;
+ margin: 0.5rem 1rem 0.5rem 0;
+ cursor: pointer;
+}
+
+label.color-radio span {
+ display: block;
+ width: 100%;
+ height: 100%;
+ border-radius: 100%;
+ text-align: center;
+ line-height: 2.25;
+}
+
+#page .nav-pills .nav-link {
+ border-radius: 0;
+ font-size: 1rem;
+ font-weight: 600;
+ color: var(--muted);
+ border-bottom: 2px solid transparent;
+ padding: 1rem 1.5rem;
+}
+
+#page .nav-pills .nav-link:hover {
+ color: var(--primary);
+}
+
+#page .nav-pills .nav-link.active, .nav-pills .show > .nav-link {
+ color: var(--primary);
+ background-color: transparent;
+ transition: ease 0.25s;
+ border-bottom: 2px solid var(--primary);
+}
+
+#page .bg-light .nav-pills .nav-link.active, .bg-light .nav-pills .show > .nav-link {
+ color: var(--primary);
+ background-color: transparent;
+ transition: ease 0.25s;
+ border-bottom: 2px solid var(--primary);
+}
+
+.form-inline.search .form-control:hover, .form-inline.search .form-control:active, .form-inline.search .form-control:focus {
+ border-color: var(--primary);
+}
+
+.form-inline.search .form-control:active, .form-inline.search .form-control:focus {
+ background-color: var(--gray-900);
+ color: var(--black);
+}
+
+.form-inline.search .form-control,
+.form-control[readonly] {
+ background-color: var(--gray-800);
+ font-size: 1rem;
+ color: var(--white);
+}
+
+.form-inline.search .input-group-append .input-group-text .fa.fa-search {
+ color: var(--black);
+}
+
+.form-inline.search .form-control::placeholder {
+ color: var(--black);
+}
+
+.form-inline.search .form-control::-ms-input-placeholder {
+ color: var(--black);
+}
+
+.form-inline.search .form-control::-ms-input-placeholder {
+ color: var(--black);
+}
+
+.form-inline.search .form-control:active::placeholder, .form-inline.search .form-control:focus::placeholder {
+ color: var(--black);
+}
+
+.form-inline.search .form-control:active::-ms-input-placeholder, .form-inline.search .form-control:focus::-ms-input-placeholder {
+ color: var(--black);
+}
+
+.form-inline.search .form-control:active::-ms-input-placeholder, .form-inline.search .form-control:focus::-ms-input-placeholder {
+ color: var(--black);
+}
+
+.form-control {
+ color: var(--muted);
+ border-color: var(--muted);
+ border-width: 2px;
+ background: #dee2e6;
+ transition: none;
+}
+
+.form-control:disabled, .form-control[readonly] {
+ background-color: var(--dark);
+}
+
+.form-control:hover {
+ color: var(--black);
+ background-color: var(--gray-600);
+ outline: 0;
+ border-color: var(--primary);
+ box-shadow: none;
+}
+
+.form-control:focus, .form-control:active {
+ color: var(--black);
+ background-color: var(--gray-900);
+ outline: 0;
+ border-color: var(--primary);
+ box-shadow: none;
+}
+
+.form-control::placeholder {
+ color: var(--black);
+}
+
+.form-control::-ms-input-placeholder {
+ color: var(--black);
+}
+
+.form-control::-ms-input-placeholder {
+ color: var(--black);
+}
+
+/*label {
+ text-transform: uppercase;
+ font-weight: 600;
+ font-size: 12px;
+ letter-spacing: 0.025rem;
+ color: var(--black);
+}*/
+
+#login label {
+ color: var(--black);
+}
+
+label.terms {
+ font-weight: normal;
+ text-transform: none;
+ font-size: 13px;
+ color: var(--black);
+ vertical-align: middle;
+ padding: 0.1rem 0;
+}
+
+/*
+.dropdown-menu {
+ padding: 0.5rem;
+ color: var(--white);
+ background-color: var(--gray-600);
+}*/
+
+/*.dropdown-item {
+ padding: 0.5rem 1rem;
+ border-radius: 4px;
+ color: var(--black);
+}*/
+
+/*.dropdown-item:hover, .dropdown-item:focus, .dropdown-item.active {
+ color: var(--black);
+ text-decoration: none;
+ background-color: var(--gray-300);
+}
+
+.dropdown-item:hover .fas, .dropdown-item:focus .fas, .dropdown-item.active .fas, .dropdown-item:hover .far, .dropdown-item:focus .far, .dropdown-item.active .far .dropdown-item:hover .fa,
+.dropdown-item:focus .fa, .dropdown-item.active .fa {
+ color: var(--black);
+}
+*/
+small, .small {
+ font-size: 12px;
+}
+
+th {
+ font-weight: 600;
+}
+
+.fa-rotate--45 {
+ -webkit-transform: rotate(-45deg);
+ -moz-transform: rotate(-45deg);
+ -ms-transform: rotate(-45deg);
+ -o-transform: rotate(-45deg);
+ transform: rotate(-45deg);
+}
+
+.icon::before {
+ display: inline-block;
+ font-style: normal;
+ font-variant: normal;
+ text-rendering: auto;
+ -webkit-font-smoothing: antialiased;
+}
+
+.format .fa-bold:hover,
+.format .fa-italic:hover,
+.format .fa-quote-right:hover,
+.format .fa-link:hover,
+.format .fa-image:hover {
+ color: var(--black);
+}
+
+.voting {
+ position: relative;
+ z-index: 2;
+ font-size: 12px;
+ font-weight: 600;
+ text-align: center;
+ word-break: keep-all;
+ min-width: 40px;
+}
+
+#thread .voting {
+ min-width: 10px;
+ margin-right: 15px;
+ overflow-wrap: normal;
+}
+
+#frontpage .voting, #search .voting, #userpage .voting {
+ margin: auto 0;
+}
+
+.active.arrow-up::before {
+ color: var(--primary);
+}
+
+.arrow-up::before {
+ cursor: pointer;
+ font-size: 1rem;
+ color: var(--gray-200);
+ font-family: "font awesome 5 pro" !important;
+ font-weight: 900;
+ content: "\f357";
+}
+
+.arrow-up:hover::before {
+ color: var(--primary);
+ opacity: 0.5;
+}
+
+.active.arrow-down::before {
+ color: #38B2AC;
+}
+
+.arrow-down::before {
+ cursor: pointer;
+ font-size: 1rem;
+ color: var(--gray-200);
+ font-family: "font awesome 5 pro" !important;
+ font-weight: 900;
+ content: "\f354";
+}
+
+.arrow-down:hover::before {
+ color: #38B2AC;
+ opacity: 0.5;
+}
+
+.comment-actions .arrow-up {
+ top: 0;
+}
+
+.comment-actions .arrow-down {
+ bottom: 0;
+}
+
+.upvoted .arrow-mobile-up {
+ color: var(--primary) !important;
+}
+
+.downvoted .arrow-mobile-down {
+ color: #38B2AC !important;
+}
+
+.comment-actions .score {
+ color: var(--muted);
+}
+
+.score {
+ color: var(--black);
+}
+
+.score-up {
+ color: var(--primary) !important;
+}
+
+.score-down {
+ color: #38B2AC !important;
+}
+
+.box-shadow-bottom {
+ box-shadow: inset 0 -0.1px 0 var(--gray-400);
+}
+
+.border-1 {
+ border-width: 0.1px;
+ border-style: solid;
+}
+
+.border-2 {
+ border-width: 2px;
+ border-style: solid;
+}
+
+.border-3 {
+ border-width: 3px;
+ border-style: solid;
+}
+
+.opacity-25 {
+ opacity: 0.25;
+}
+
+.pseudo-submit-form .card-header {
+ background-color: var(--gray-600) !important;
+}
+
+#frontpage .pseudo-submit-form.card, #search .search-results.card {
+ background-color: var(--gray-600);
+ border-radius: 4px;
+ border: none;
+}
+
+#frontpage .pseudo-submit-form.card .card-body, #search .search-results.card .card-body {
+ padding-left: 10px;
+ padding-right: 10px;
+}
+
+#frontpage .pseudo-submit-form.card .card-body .form-control {
+ background-color: var(--light);
+}
+
+#frontpage .pseudo-submit-form.card .card-body .form-control:hover, #frontpage .pseudo-submit-form.card .card-body .form-control:active, #frontpage .pseudo-submit-form.card .card-body .form-control:focus {
+ background-color: var(--light);
+}
+
+.user-name {
+ color: inherit;
+}
+
+.banner-pic-135 {
+ object-fit: cover;
+ height: 135px;
+ max-width: 572px;
+ width: 572px;
+}
+
+.profile-pic {
+ width: 50px;
+ height: 50px;
+ border-radius: 50%;
+ margin: auto;
+ text-align: center;
+ object-fit: cover;
+ color: var(--white);
+ background-color: #1f2023;
+}
+
+.navbar .navbar-nav .profile-pic {
+ display: inline-block;
+ width: 28px;
+ height: 28px;
+}
+
+.card-header:first-child {
+ border-radius: 0.35rem 0.35rem 0 0;
+}
+
+.card-header {
+ font-size: 1rem;
+ font-weight: 600;
+ color: var(--black);
+ padding: 0.5rem 1rem;
+ border-bottom: 0.1px solid var(--gray-400);
+}
+
+.card {
+ background-color: var(--gray-900);
+}
+
+#thread .card {
+ background-color: var(--gray-700);
+}
+
+.stretched-link a:hover {
+ color: #6f42c1;
+}
+
+.post-meta {
+ position: relative;
+ z-index: 2;
+ color: var(--muted);
+ font-size: 12px;
+ width: fit-content;
+}
+
+.post-body {
+ word-break: break-word;
+ overflow: hidden;
+}
+
+.modal-backdrop.show {
+ opacity: 1;
+ background-color: rgba(30, 30, 30, 0.9);
+}
+
+.modal-backdrop {
+ background-color: transparent;
+}
+
+.modal-header {
+ border-bottom: none;
+ background-color: var(--gray-400);
+ border-top-left-radius: 0.35rem;
+ border-top-right-radius: 0.35rem;
+ padding: 0.5rem 1rem;
+ box-shadow: 0 0.1px 3px rgba(190, 113, 113, 0.05), 0 0 0 0.1px rgba(0, 0, 0, 0.05);
+}
+
+.modal-header .close {
+ padding: 1.25rem 1rem 1.25rem 0.5rem;
+}
+
+.modal-content {
+ border: none;
+ background-color: var(--gray-400);
+ border-radius: 4px;
+ box-shadow: 0 0.1px 3px rgba(190, 113, 113, 0.05), 0 0 0 0.1px rgba(0, 0, 0, 0.05);
+}
+
+.modal-footer {
+ border: none;
+ background-color: var(--gray-400);
+ border-bottom-right-radius: 0.35rem;
+ border-bottom-left-radius: 0.35rem;
+}
+
+.modal .post-actions .list-group-item {
+ border: none;
+ border-radius: 4px;
+ background-color: var(--gray-400);
+}
+
+.modal .post-actions .list-group-item:focus, .modal .post-actions .list-group-item:hover {
+ background-color: var(--gray-300);
+}
+
+.modal .post-actions a {
+ color: var(--black);
+ font-size: 1rem;
+}
+
+.modal .post-actions .fa, .modal .post-actions .fas, .modal .post-actions .far {
+ width: 1.25rem;
+ font-size: 1rem;
+}
+
+.post-actions {
+ position: relative;
+ color: var(--muted);
+ font-weight: 600;
+ font-size: 12px;
+ z-index: 3;
+}
+
+.post-actions .fa, .post-actions .fas, .post-actions .far {
+ font-size: 12px;
+ margin-right: 0.5rem;
+ width: 1rem;
+}
+
+.post-actions .voting .fa, .post-actions .voting .fas, .post-actions .voting .far {
+ color: inherit;
+}
+
+.post-actions .dropdown-item:active .fa, .post-actions .dropdown-item:active .fas {
+ color: var(--black);
+}
+
+.post-actions .dropdown-item:hover .fa, .post-actions .dropdown-item:hover .fas {
+ color: var(--gray);
+}
+
+.post-actions a:hover .fa, .post-actions a:hover .fas {
+ color: var(--black);
+}
+
+.post-actions:hover, .post-actions:focus {
+ z-index: 4;
+}
+
+.post-actions .copy-link:hover {
+ color: var(--black);
+}
+
+.post-actions .fas.fa-ellipsis-h, .post-actions .far.fa-ellipsis-h {
+ font-size: 1.25rem;
+ vertical-align: middle;
+}
+
+.post-actions .list-inline {
+ margin-bottom: 0;
+}
+
+.post-actions .list-inline .list-inline-item {
+ margin-right: 1.25rem;
+}
+
+.post-actions .list-inline .list-inline-item:last-child {
+ margin-right: 0;
+}
+
+.close .far, .close .fab, .close .fal, .close .fas {
+ font-size: 1.25rem;
+}
+
+@media (max-width: 767.98px) {
+ .modal.modal.modal-sm-bottom .modal-dialog {
+ position: fixed;
+ right: 0;
+ bottom: 0;
+ left: 0;
+ z-index: 1030;
+ }
+
+ .modal.modal-sm-bottom .modal-content {
+ position: absolute;
+ bottom: 0;
+ border-radius: 1rem;
+ }
+
+ .modal.fade.modal-sm-bottom .modal-dialog {
+ transform: translate3d(0, 100vh, 0);
+ }
+
+ .modal.show.modal-sm-bottom .modal-dialog {
+ transform: translate3d(0, 0, 0);
+ }
+
+ .modal.modal-sm-bottom .modal-header {
+ border-top-right-radius: 1rem;
+ border-top-left-radius: 1rem;
+ }
+}
+.dropdown-actions {
+ position: relative;
+ color: var(--muted);
+ font-weight: 600;
+ font-size: 12px;
+ z-index: 3;
+}
+
+.dropdown-actions .fa, .dropdown-actions .fas, .dropdown-actions .far {
+ font-size: 12px;
+ color: var(--muted);
+ margin-right: 0.5rem;
+ width: 1rem;
+ text-align: center;
+}
+
+.dropdown-actions .voting .fa, .dropdown-actions .voting .fas, .dropdown-actions .voting .far {
+ color: inherit;
+}
+
+.dropdown-actions .dropdown-item:active .fa, .dropdown-actions .dropdown-item:active .fas {
+ color: var(--black);
+}
+
+.dropdown-actions .dropdown-item:hover .fa, .dropdown-actions .dropdown-item:hover .fas {
+ color: var(--black);
+}
+
+.dropdown-actions a:hover .fa, .dropdown-actions a:hover .fas {
+ color: var(--black);
+}
+
+.dropdown-actions:hover, .dropdown-actions:focus {
+ z-index: 4;
+}
+
+.dropdown-actions .copy-link:hover {
+ color: var(--black);
+}
+
+.dropdown-actions .fas.fa-ellipsis-h, .dropdown-actions .far.fa-ellipsis-h {
+ font-size: 1.25rem;
+ vertical-align: middle;
+}
+
+.dropdown-actions .list-inline {
+ margin-bottom: 0;
+}
+
+.dropdown-actions .list-inline .list-inline-item {
+ margin-right: 1rem;
+}
+
+.dropdown-actions .list-inline .list-inline-item:last-child {
+ margin-right: 0;
+}
+
+.page-link {
+ font-weight: 600;
+ background-color: var(--dark);
+ border: 0.1px solid #343a40;
+}
+
+.page-link:hover {
+ background-color: var(--gray-100);
+}
+
+.page-item.disabled .page-link {
+ font-weight: 600;
+ background-color: var(--dark);
+ border: 0.1px solid #343a40;
+ opacity: 0.5;
+}
+
+@media (max-width: 767.98px) {
+ .post-actions .list-inline .list-inline-item {
+ margin-right: 1.5rem;
+ margin-top: 5px;
+ }
+
+ .post-actions .list-inline .list-inline-item:last-child {
+ margin-right: 0;
+ }
+}
+.post-actions .list-inline .list-inline-item .dropdown-item {
+ font-size: 1rem;
+}
+
+.post-actions .list-inline .list-inline-item .dropdown-item:active {
+ color: var(--white);
+}
+
+.post-actions a {
+ color: var(--gray-100);
+ text-decoration: none;
+ text-transform: none;
+}
+
+.post-actions a:hover {
+ color: var(--black);
+}
+
+.post-actions .dropdown-item:hover {
+ color: var(--black);
+}
+
+.post-img {
+ width: 100px;
+ height: 70px;
+ object-fit: cover;
+ border: 0.1px solid var(--primary);
+ border-radius: 4px;
+ z-index: 2;
+ background-color: var(--gray-300);
+}
+
+@media (max-width: 767.98px) {
+ .post-img {
+ width: 80px;
+ height: 60px;
+ }
+}
+.post-actions .comments, .post-actions .share, .post-actions .flag {
+ margin-right: 0.5rem;
+ vertical-align: top;
+}
+
+.time-stamp, .points {
+ color: var(--muted);
+}
+
+.comments-count {
+ display: flex;
+}
+
+.comments-count .total {
+ font-weight: 600;
+ font-size: 12px;
+ color: var(--muted);
+}
+
+/*.comment {
+ display: flex;
+ position: relative;
+ margin-top: 2rem;
+ padding-left: 12px;
+}*/
+
+#notifications .comment, #userpage .comment {
+ margin-top: 0.5rem;
+ margin-bottom: 1rem;
+}
+
+#notifications .comment:last-child, #userpage .comment:last-child {
+ margin-bottom: 0;
+}
+
+.comment .comment-body {
+ width: 100%;
+}
+
+.comment .comment-body .user-info {
+ font-size: 12px;
+ color: var(--muted);
+ margin-bottom: 0.25rem;
+ margin-top: -0.25rem;
+}
+
+.comment .comment-body .user-name {
+ color: var(--black);
+}
+
+.comment .comment-body .comment-text {
+ margin-bottom: 1rem;
+ word-break: break-word;
+ color: var(--black);
+ overflow: hidden;
+ padding-right: 10px !important;
+ padding-top: 5px !important;
+}
+
+.modal .comment-actions .list-group-item {
+ border: none;
+ border-radius: 4px;
+ background-color: var(--gray-400);
+}
+
+.modal .comment-actions .list-group-item:focus, .modal .comment-actions .list-group-item:hover {
+ background-color: var(--gray-300);
+}
+
+.modal .comment-actions a {
+ color: var(--gray-100);
+ font-size: 1rem;
+}
+
+.modal .comment-actions .fa, .modal .comment-actions .fas, .modal .comment-actions .far {
+ width: 1.25rem;
+ font-size: 1rem;
+}
+
+.comment-section {
+ background-color: var(--gray-700);
+}
+
+.comment p {
+ word-break: break-word;
+}
+
+.comment-actions {
+ font-weight: 600;
+ font-size: 12px;
+ margin-bottom: 0;
+}
+
+.comment-actions .fa, .comment-actions .fas, .comment-actions .far {
+ font-size: 12px;
+ margin-right: 0.5rem;
+ color: var(--gray-100);
+}
+
+.comment-actions .dropdown-item:active .fa, .comment-actions .dropdown-item:active .fas, .comment-actions .dropdown-item:active .far {
+ color: var(--black);
+}
+
+.comment-actions .dropdown-item:hover .fa, .comment-actions .dropdown-item:hover .fas, .comment-actions .dropdown-item:hover .far {
+ color: var(--black);
+}
+
+.comment-actions a:hover .fa, .comment-actions a:hover .fas, .comment-actions a:hover .far {
+ color: var(--black);
+}
+
+.comment-actions .fas.fa-ellipsis-h {
+ font-size: 1.25rem;
+ vertical-align: bottom;
+}
+
+.comment-actions .list-inline {
+ margin-bottom: 0;
+}
+
+.comment-actions .list-inline .list-inline-item {
+ margin-right: 1.25rem;
+}
+
+.comment-actions .list-inline .list-inline-item .dropdown-item {
+ font-size: 12px;
+}
+
+.comment-actions .list-inline .list-inline-item .dropdown-item:active {
+ color: var(--black);
+}
+
+.comment-actions a {
+ color: var(--gray-100);
+ text-decoration: none;
+}
+
+.comment-actions a:hover, .comment-actions .copy-link:hover {
+ color: var(--black);
+}
+
+.comment-actions .dropdown-item:hover {
+ color: var(--black);
+}
+
+ul.comment-section {
+ padding-left: 0;
+ margin-bottom: 0;
+}
+
+.comment-write {
+ position: relative;
+}
+
+.comment-write.child {
+ margin-top: 1rem;
+}
+
+.comment-write.collapsed textarea:focus, .comment-write.collapsed textarea:active {
+ background-color: var(--gray-900);
+}
+
+.comment-write.collapsed textarea {
+ width: 100%;
+ box-sizing: border-box;
+ padding: 0.5rem 0.75rem;
+ min-height: 84px;
+}
+
+.comment-format {
+ display: flex;
+ align-items: center;
+ bottom: 0;
+ left: 0;
+ padding: 0.5rem 0;
+ width: 100%;
+ z-index: 1;
+}
+
+.comment-write .comment-format .format {
+ padding: 0 0.5rem;
+ font-size: 1rem;
+ color: var(--gray-200);
+}
+
+.comment-write .comment-format .format:hover {
+ color: var(--black);
+}
+
+.comment .comment-collapse-icon:hover::before {
+ border-left-color: var(--primary);
+}
+
+.comment.collapsed .comment-collapse-icon::before {
+ content: "\f055";
+ font-family: "font awesome 5 pro" !important;
+ font-weight: 900;
+ border-left: none;
+ top: -0.1px;
+ left: -3px;
+ font-size: 10px;
+}
+
+.comment.collapsed .comment-collapse-icon:hover::before {
+ color: var(--primary);
+}
+
+/*.comment.collapsed .comment-body p.text, .comment.collapsed div.comment-text, .comment.collapsed .comment-actions, .comment.collapsed .comment-write,
+.comment.collapsed .comment {
+ display: none;
+}*/
+
+/*.comment.collapsed .user-info {
+ margin-bottom: 0;
+}
+
+.comment.collapsed .profile-pic-25 {
+ opacity: 0.5;
+}
+
+.comment.collapsed .comment-body {
+ opacity: 0.5;
+}
+
+.comment.collapsed .comment-body:hover {
+ opacity: 1;
+}*/
+
+#login {
+ padding-top: 0;
+ height: 100%;
+ overflow: hidden;
+ background-color: var(--light);
+}
+
+.splash-wrapper {
+ position: relative;
+ width: 100%;
+ height: 100%;
+ font-size: 0;
+}
+
+.splash-overlay {
+ position: absolute;
+ top: 0;
+ left: 0;
+ width: 100%;
+ height: 100%;
+ background-color: rgba(127, 127, 127, 0.25);
+ background-image: linear-gradient(135deg, rgba(30, 30, 36, 0.1) 0%, var(--primary) 150%);
+}
+
+.splash-img {
+ height: 100%;
+ width: 100%;
+ background-size: cover;
+ background-position: bottom;
+ object-fit: cover;
+}
+
+.pagination {
+ padding: 1rem 0;
+}
+
+.table .thead-dark th {
+ color: var(--muted);
+ font-size: 12px;
+ text-transform: uppercase;
+ background-color: var(--light);
+ border: none;
+}
+
+.settings .settings-section {
+ margin-bottom: 3rem;
+ border: 0.1px solid var(--gray-400);
+ border-radius: 4px;
+ overflow: hidden;
+}
+
+.settings .settings-section .title, .settings .settings-section .body, .settings .settings-section .footer {
+ padding: 1rem;
+}
+
+.settings .settings-section .title p:last-of-type {
+ margin-bottom: 0;
+}
+
+.settings .settings-section .footer {
+ background-color: var(--secondary);
+}
+
+.modal .profile-actions .list-group-item {
+ border: none;
+ border-radius: 4px;
+}
+
+.modal .profile-actions .list-group-item:focus, .modal .profile-actions .list-group-item:hover {
+ background-color: var(--gray-200);
+}
+
+.modal .profile-actions a {
+ color: var(--black);
+ font-size: 1rem;
+}
+
+.modal .profile-actions .fa, .modal .profile-actions .fas, .modal .profile-actions .far {
+ width: 1.25rem;
+ font-size: 1rem;
+}
+
+.profile-actions a {
+ color: var(--gray);
+ text-decoration: none;
+ font-size: 12px;
+}
+
+.profile-actions .fa, .profile-actions .fas, .profile-actions .far {
+ font-size: 12px;
+ color: var(--gray);
+}
+
+.profile-actions .dropdown-item:hover {
+ color: var(--black);
+}
+
+.profile-actions .dropdown-item {
+ font-size: 13px;
+}
+
+.profile-actions .dropdown .dropdown-menu .dropdown-item .fa, .profile-actions .dropdown .dropdown-menu .dropdown-item .fas, .profile-actions .dropdown .dropdown-menu .dropdown-item .far {
+ font-size: 12px;
+ color: var(--gray);
+ width: 1rem;
+ margin-right: 0.5rem;
+ text-align: center;
+}
+
+.profile-actions .dropdown-item:active .fa, .profile-actions .dropdown-item:active .fas, .profile-actions .dropdown-item:active .far {
+ color: var(--black);
+}
+
+.profile-actions .dropdown-item:hover .fa, .profile-actions .dropdown-item:hover .fas, .profile-actions .dropdown-item:active .far {
+ color: var(--black);
+}
+
+#page .footer h1, #page .footer h2, #page .footer h3, #page .footer h4, #page .footer h5, #page .footer h6,
+#article .footer h1, #article .footer h2, #article .footer h3, #article .footer h4, #article .footer h5, #article .footer h6 {
+ font-weight: 600;
+}
+
+#page .footer a, #article .footer a {
+ color: var(--white);
+ opacity: 0.8;
+}
+
+#page .footer li, #article .footer li {
+ padding: 0.25rem 0;
+}
+
+.footer .list-inline-item {
+ font-weight: 400;
+}
+
+.footer a {
+ text-decoration: none;
+ color: var(--muted);
+}
+
+.footer a:hover, .footer a:focus, .footer a:active {
+ text-decoration: underline;
+}
+
+.empty-state-img {
+ width: 200px;
+ opacity: 0.35;
+ filter: brightness(0);
+}
+
+.ghost {
+ -webkit-animation: ghost 2s infinite alternate;
+ animation: ghost 2s infinite alternate;
+}
+@keyframes ghost {
+ 0% {
+ transform: translateY(0);
+ }
+ 100% {
+ transform: translateY(-20px);
+ }
+}
+
+.submission .body {
+ padding: 1rem;
+}
+
+.submission .footer {
+ background-color: transparent;
+ padding: 1rem;
+ border-bottom-left-radius: 0.25rem;
+ border-bottom-right-radius: 0.25rem;
+}
+
+.custom-control-label {
+ text-transform: none;
+ font-weight: 400;
+ font-size: 1rem;
+ letter-spacing: 0;
+ color: var(--black);
+}
+
+.custom-checkbox .custom-control-input:checked ~ .custom-control-label::before {
+ background-color: var(--primary);
+ border: 0.1px solid #6f42c1;
+}
+
+.custom-switch {
+ padding-left: 2.25rem;
+ padding-bottom: 1rem;
+}
+
+.custom-switch .custom-control-label {
+ padding-top: 0.5rem;
+ padding-left: 2rem;
+ padding-bottom: 0.1rem;
+}
+
+.custom-control-input:checked ~ .custom-control-label::before {
+ opacity: 1;
+ background-color: var(--primary);
+ border: #38A169 solid 0.1px;
+}
+
+.custom-control-input:checked ~ .custom-control-label:hover::before {
+ opacity: 1;
+}
+
+.custom-switch .custom-control-label::before {
+ left: -2.25rem;
+ height: 1.5rem;
+ width: 2.75rem;
+ pointer-events: all;
+ border-radius: 1rem;
+ background-color: var(--gray-100);
+ border: #f8f9fa solid 0.1px;
+ opacity: 0.7;
+}
+
+.custom-switch .custom-control-label:hover::before {
+ opacity: 0.85;
+}
+
+.custom-switch .custom-control-label::after {
+ top: calc(0.25rem + 2px);
+ left: calc(-2.25rem + 2px);
+ width: calc(1.5rem - 4px);
+ height: calc(1.5rem - 4px);
+ background-color: var(--light);
+ border-radius: 2rem;
+ transition: background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out, -webkit-transform 0.15s ease-in-out;
+ transition: transform 0.15s ease-in-out, background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;
+ transition: transform 0.15s ease-in-out, background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out, -webkit-transform 0.15s ease-in-out;
+}
+
+@media (prefers-reduced-motion: reduce) {
+ .custom-switch .custom-control-label::after {
+ transition: none;
+ }
+}
+.custom-switch .custom-control-input:checked ~ .custom-control-label::after {
+ background-color: var(--white);
+ -webkit-transform: translateX(1.25rem);
+ transform: translateX(1.25rem);
+}
+
+pre code {
+ word-break: break-word;
+ white-space: break-spaces;
+ color: var(--primary);
+}
+
+pre ol > li {
+ margin-bottom: 0;
+}
+
+pre ol > li::before {
+ color: var(--white);
+ font-weight: 400;
+ background-color: transparent;
+ right: 1rem;
+ padding: 0.25rem;
+ text-align: right;
+ margin-right: 0.5rem;
+ width: 3rem;
+}
+
+pre .str, code .str {
+ color: #38A169;
+ opacity: 0.75;
+}
+
+pre .com, code .com {
+ color: #ab4bc3;
+}
+
+.gif-categories .card {
+ overflow: hidden;
+ border: none;
+}
+
+.gif-categories img {
+ border-radius: 4px;
+ height: 110px;
+ width: 100%;
+ object-fit: cover;
+ -webkit-transition: all 0.15s ease;
+ -moz-transition: all 0.15s ease;
+ -o-transition: all 0.15s ease;
+ -ms-transition: all 0.15s ease;
+ transition: all 0.15s ease;
+}
+
+.gif-categories img:hover {
+ border: 3px solid var(--primary);
+}
+
+.gif-categories .card .gif-cat-overlay {
+ position: absolute;
+ text-align: center;
+ height: 100%;
+ width: 100%;
+ background-color: rgba(0, 0, 0, 0.4);
+ -webkit-transition: all 0.15s ease;
+ -moz-transition: all 0.15s ease;
+ -o-transition: all 0.15s ease;
+ -ms-transition: all 0.15s ease;
+ transition: all 0.15s ease;
+}
+
+.gif-categories .card:hover .gif-cat-overlay {
+ background-color: rgba(0, 0, 0, 0.6);
+ border: 3px solid var(--primary);
+ border-radius: 4px;
+}
+
+/*@media (max-width: 991.98px) {
+ #frontpage, #search {
+ padding-top: 49px;
+ }
+}
+@media (max-width: 767.98px) {
+ html {
+ font-size: 14px;
+ }*/
+
+/* .container {
+ overflow: hidden;
+ max-width: none;
+ }
+*/
+/* body, #settings, #notifications, #submit {
+ padding-top: 49px;
+ background-color: var(--gray-700);
+ }*/
+/*
+ #thread, #userpage {
+ background-color: var(--gray-600);
+ }*/
+
+/* .custom-gutters {
+ padding-left: 0;
+ padding-right: 0;
+ }*/
+
+ .navbar.bg-primary {
+ background-color: var(--dark) !important;
+ }
+
+ .navbar-nav {
+ height: 100vh;
+ }
+
+ .navbar-nav .nav-link, .navbar-expand-md .navbar-nav .nav-link {
+ padding: 0.5rem;
+ }
+
+ .navbar-dark .navbar-nav .nav-link:hover {
+ background-color: transparent;
+ border-radius: 0;
+ }
+
+ .navbar-dark .navbar-nav .nav-link:active {
+ background-color: rgba(0, 0, 0, 0.15);
+ border-radius: 0;
+ }
+
+ .navbar-dark .navbar-nav .nav-link .fa, .navbar-dark .navbar-nav .nav-link .fas, .navbar-dark .navbar-nav .nav-link .far, .navbar-dark .navbar-nav .nav-link .fab {
+ font-size: 1rem;
+ }
+
+ .navbar-light .navbar-nav .nav-link .fa, .navbar-light .navbar-nav .nav-link .fas, .navbar-light .navbar-nav .nav-link .far, .navbar-light .navbar-nav .nav-link .fab {
+ color: var(--primary);
+ font-size: 1.25rem;
+ }
+
+ #fixed-bar-mobile {
+ box-shadow: none;
+ }
+
+ .mobile-nav-icon {
+ padding: 0.25rem 0.75rem;
+ }
+
+ /*#thread, #submit, #error-401, #error-403, #error-404, #error-405, #error-429, #error-451, #error-500 {
+ background-color: var(--light);
+ }*/
+
+ /*#frontpage {
+ padding-top: 49px;
+ }*/
+
+ #search .search-results.card {
+ border-bottom: 0.1px solid var(--gray-400);
+ border-width: 0 0 0.1px 0;
+ border-radius: 0;
+ }
+
+ #frontpage .posts .card, #userpage .posts .card, #search .posts .card {
+ padding: 7px;
+ border-width: 0 0 0.1px 0;
+ }
+
+ #frontpage .posts .card:first-of-type, #userpage .posts .card:first-of-type, #search .posts .card:first-of-type {
+ border-radius: 0;
+ }
+
+ #frontpage .posts .card, #userpage .posts .card, #search .posts .card, #userpage .posts .card {
+ background-color: var(--gray-600);
+ }
+
+ #frontpage .posts .card:hover .post-title a, #search .posts .card:hover .post-title a {
+ color: var(--primary);
+ }
+
+ #frontpage .posts .card .post-img, #search .posts .card .post-img {
+ z-index: 3;
+ }
+
+ .toast {
+ bottom: 1.5rem;
+ margin: 0 auto;
+ left: 0;
+ right: 0;
+ }
+
+ #thread .card {
+ background-color: var(--gray-600);
+ }
+
+ .card {
+ background-color: var(--gray-600);
+ }
+
+ .posts, #thread #main-content-col {
+ box-shadow: none;
+ border: none;
+ border-radius: 0;
+ }
+
+ #thread #main-content-col {
+ margin: 0;
+ }
+
+ .post-title a {
+ color: var(--black);
+ }
+
+ .post-title a:hover, .post-title a:active, .post-title a:focus {
+ color: var(--primary);
+ }
+
+ #thread .voting {
+ min-width: 0;
+ margin-right: 0;
+ margin-top: 0;
+ }
+
+ .voting {
+ font-weight: 400;
+ font-size: 1.2rem;
+ }
+
+ #frontpage .voting, #search .voting, #userpage .voting {
+ margin: 0;
+ }
+
+ .post-title {
+ font-size: 14px;
+ font-weight: 400;
+ line-height: normal;
+ overflow: hidden;
+ }
+
+ .post-meta {
+ font-size: 1rem;
+ }
+
+ .post-actions {
+ font-weight: 400;
+ }
+
+ .post-actions a {
+ font-size: 1rem;
+ color: var(--gray-200);
+ }
+
+ .post-actions .fa, .post-actions .fas, .post-actions .far {
+ font-size: 1rem;
+ opacity: 0.8;
+ }
+
+ .post-actions .voting .fa, .post-actions .voting .fas, .post-actions .voting .far {
+ font-size: 1.25rem;
+ }
+
+ .comment-actions .score {
+ color: var(--gray-200);
+ }
+
+ .score {
+ color: var(--gray-200);
+ }
+
+ .arrow-up::before, .arrow-down::before, .arrow-up:hover::before, .arrow-down:hover::before {
+ font-size: 1.25rem;
+ color: var(--gray-200);
+ opacity: 1;
+ }
+
+ .active.arrow-up::before, .active.arrow-up:hover::before {
+ color: var(--primary);
+ }
+
+ .active.arrow-down::before, .active.arrow-down:hover::before {
+ color: #38B2AC;
+ }
+
+ .dropdown-actions a {
+ font-size: 1rem;
+ }
+
+ .dropdown-actions .fa, .dropdown-actions .fas, .dropdown-actions .far {
+ font-size: 1rem;
+ }
+
+/* .comment-section {
+ background-color: var(--gray-600);
+ }
+
+ .comment-section > .comment {
+ padding-left: 12px;
+ }*/
+
+/* .comment {
+ margin-top: 1.5rem;
+ }
+*/
+/* .comment .comment-collapse {
+ padding-right: 10px;
+ }
+
+ .comment.collapsed .user-info {
+ padding-top: 0.5rem;
+ }*/
+
+ .comment .comment-collapse::before {
+ content: "\f056";
+ position: static;
+ font-size: 10px;
+ font-weight: 900;
+ border: none;
+ margin-left: 0.25rem;
+ }
+
+/* .comment.collapsed .comment-body:hover {
+ opacity: 0.5;
+ }*/
+
+ .comment-actions .fa, .comment-actions .fas, .comment-actions .far {
+ color: var(--gray-100);
+ }
+
+ .banner-pic-135 {
+ max-width: 100%;
+ }
+
+ .x-scroll-parent {
+ overflow: hidden;
+ }
+
+ .x-scroll {
+ width: 100%;
+ overflow-x: scroll;
+ white-space: nowrap;
+ scrollbar-width: none;
+ -ms-overflow-style: none;
+ }
+
+ .x-scroll::-webkit-scrollbar {
+ width: 100%;
+ overflow-x: scroll;
+ white-space: nowrap;
+ background: transparent;
+ }
+/*
+ #thread .post-title {
+ font-size: 16px;
+ }*/
+
+ #submit .submission {
+ border: none;
+ }
+
+ #submit .submission .body {
+ padding: 0;
+ }
+
+ #submit .submission .footer {
+ background: transparent;
+ padding: 1rem 0;
+ }
+
+ .footer .list-inline-item {
+ line-height: 3;
+ }
+
+ .comments-count .total {
+ font-weight: 400;
+ font-size: 1rem;
+ }
+
+ .comment-actions {
+ font-weight: 400;
+ font-size: 1.2rem;
+ }
+
+ .user-name {
+ font-weight: 400;
+ }
+
+ .comment .comment-body .user-name {
+ color: var(--black);
+ font-weight: 600;
+ }
+
+ .pagination {
+ padding: 1rem;
+ }
+
+/*
+ input[type=color],
+ input[type=date],
+ input[type=email],
+ input[type=month],
+ input[type=number],
+ input[type=password],
+ input[type=search],
+ input[type=tel],
+ input[type=text],
+ input[type=time],
+ input[type=url],
+ input[type=week],
+ select:focus,
+ textarea {
+ font-size: 16px !important;
+ }*/
+
+ /*textarea, input[type=text] {
+ -webkit-appearance: none;
+ -moz-appearance: none;
+ appearance: none;
+ }*/
+}
+/*.bg-white {
+ background-color: var(--gray-600) !important;
+}
+
+.text-muted {
+ color: var(--muted) !important;
+}
+
+.text-primary {
+ color: var(--primary) !important;
+}
+
+.text-gray-400, .text-gray-500 {
+ color: var(--gray-200) !important;
+}*/
+
+span.red {
+ color: var(--primary);
+}
+
+span.green {
+ color: #38A169;
+}
+
+div.banned {
+ background-color: #960000 !important;
+ border-left: 3px solid #ff0000 !important;
+}
+
+div.deleted {
+ background-color: #969600 !important;
+}
+
+div.deleted.banned {
+ background-color: #964000 !important;
+}
+
+.text-admin {
+ color: var(--primary);
+}
+
+.object-cover {
+ object-fit: cover;
+}
+
+img.emoji {
+ max-width: 100px;
+ height: 30px;
+ object-fit: contain;
+}
+
+.spoiler {
+ color: #000000;
+ background-color: #000000;
+ font-weight: 600 !important;
+ padding: 5px;
+}
+
+.spoiler:hover {
+ color: #FFFFFF;
+}
+
+/*@media (min-width: 768px) {
+ .comment {
+ border-left: 0 !important;
+ padding-left: 0 !important;
+ }
+}*/
+.comment .comment-collapse-desktop {
+ padding-right: 20px;
+ cursor: pointer;
+}
+
+.comment .comment-collapse-desktop:hover {
+ border-left-color: var(--white) !important;
+}
+
+.comment.collapsed .comment-collapse-desktop:hover {
+ color: var(--white) !important;
+}
+
+@media (max-width: 767.98px) {
+ .settings-nav .nav-link {
+ font-size: 0.9rem;
+ padding: 0.75rem 0.6rem;
+ }
+}
+.table {
+ color: var(--white);
+}
+
+.comment-box {
+ border: 2px solid #e9ecef;
+}
+
+/*.btn {
+ background: transparent;
+}*/
+
+.form-control {
+ background: transparent;
+}
+
+.navbar-light .navbar-nav .nav-link {
+ border-radius: 5px;
+}
+
+.btn-secondary {
+ color: var(--muted);
+}
+
+.btn-primary {
+ color: var(--muted);
+}
+
+.btn-success {
+ border-color: #38A169 !important;
+}
+
+.btn-danger {
+ border-color: #E53E3E !important;
+}
+
+.alert {
+ color: #000000;
+}
+
+.btn-lg {
+ border-color: transparent !important;
+}
+
+@media (max-width: 767.98px) {
+ .followbutton {
+ margin-bottom: 10px !important;
+ }
+
+ .comment-actions {
+ margin-top: -8px;
+ }
+}
+.btn-primary:focus, .btn-primary.focus {
+ box-shadow: none !important;
+}
+
+.flaggers {
+ margin: 7px;
+ border: 1px solid var(--primary);
+ padding: 10px;
+ border-radius: 3px;
+ background-color: var(--gray-700) !important;
+}
+
+.text-info {
+ color: var(--primary) !important;
+}
+
+/** { REMOVED FOR HALLOWEEN EVENT
+ -webkit-animation: None !important;
+ animation: None !important;
+ }*/
+
+ .patron {
+ padding: 2px 5px 3px 5px !important;
+ border-radius: 5px !important;
+ color: white !important;
+ }
+
+ /*.container, .container-fluid {
+ background-color: var(--gray-700) !important;
+ border-radius: 5px !important;
+ }*/
+
+ /*.btn {
+ background-color: var(--gray-700) !important;
+ }
+*/
+ .nobackground {
+ background: None !important;
+ }
+
+ /*textarea {
+ resize: both !important;
+ }*/
+
+ .jumbotron-guild {
+ position: relative;
+ background-repeat: no-repeat;
+ background-size: cover;
+ background-position: center;
+ border-radius: 0;
+ overflow: hidden;
+ margin-bottom: 0;
+ padding: 0;
+ display: flex;
+ align-items: center;
+ z-index: 1;
+ }
+
+ .jumbotron-guild .jumbotron-overlay {
+ background-color: rgba(0, 0, 0, 0.7);
+ position: absolute;
+ width: 100%;
+ height: 100%;
+ bottom: 0;
+ left: 0;
+ z-index: -1;
+ pointer-events: none;
+ }
+
+ @media (max-width: 767.98px) {
+ .jumbotron-guild {
+ height: 110px;
+ }
+ }
+ @media (min-width: 767.98px) {
+ .card-columns {
+ column-count: 4 !important;
+ }
+}
+@media (min-width: 992px) {
+ .card-columns {
+ column-count: 5 !important;
+ }
+}
+/*.container, .container-fluid {
+ padding-bottom: 30px;
+}*/
+
+.navbar {
+ padding: 0.5rem 0.5rem 0.3rem 0.5rem;
+}
+
+@media (min-width: 767.98px) {
+ .navbar {
+ padding: 0.5rem 3rem 0.3rem 0.5rem;
+ }
+}
+
+blockquote {
+ border-left: 2px solid var(--primary);
+ color: var(--black);
+ font-size: 1rem;
+ font-weight: 400;
+ background-color: #46444a;
+ padding: 0.5rem 1rem;
+ margin: 0.5rem 0rem 0 0.0;
+}
+
+blockquote + blockquote {
+ margin-top: 0px;
+}
+
+blockquote:last-child {
+ margin-bottom: 10px;
+}
+
+blockquote + p {
+ margin-top: 1rem;
+}
+
+blockquote p {
+ margin-bottom: 0;
+}
+
+.unread {
+ padding: 10px !important;
+ border: 2px solid var(--primary) !important;
+}
+
+@media (min-width: 576px)
+{
+ .modal-dialog {
+ max-width: 90% !important;
+ margin: 1.75rem auto !important;
+ }
+}
+
+.in-comment-image {
+ max-height: 150px !important;
+ max-width: 100% !important;
+ border-radius: 0.2rem !important;
+ margin-top: 0.5rem !important;
+ margin-bottom: 0.5rem !important;
+}
+
+.emoji {
+ height: 30px !important;
+}
+
+.bigemoji {
+ height: 60px !important;
+}
+
+.embedvid {
+ max-height: 300px !important;
+ max-width: 100% !important;
+ margin-top: 0.5rem !important;
+ margin-bottom: 0.5rem !important;
+}
+
+.spotify {
+ max-height: 80px !important;
+ max-width: 100% !important;
+ margin-top: 0.5rem !important;
+ margin-bottom: 0.5rem !important;
+}
+
+.text-pink {
+ color: #ff66ac !important;
+}
+
+.text-purple {
+ color: #805ad5 !important;
+}
+
+.text-black-50 {
+ color: #808080 !important;
+}
+
+.text-orange {
+ color: orange !important;
+}
+
+.timeline-Widget {
+ max-height: 500px !important;
+ overflow-y: scroll !important;
+}
+
+.banner {
+ margin-top: -3px;
+}
+
+.text-removed {
+ color: #ffabab !important;
+}
+
+.mirrored {
+ transform: scaleX(-1);-webkit-transform: scaleX(-1);
+}
+
+@media (max-width: 768px) {
+ .popover-bio * {
+ font-size: 0.8rem !important;
+ }
+}
+
+@media (min-width: 768px) {
+ .popover-bio * {
+ font-size: 1rem !important;
+ }
+}
+
+.offcanvas {
+ position: fixed;
+ bottom: 0;
+ z-index: 1045;
+ display: flex;
+ flex-direction: column;
+ max-width: 100%;
+ visibility: hidden;
+ background-color: #fff;
+ background-clip: padding-box;
+ outline: 0;
+ transition: transform 0.3s ease-in-out;
+}
+@media (prefers-reduced-motion: reduce) {
+ .offcanvas {
+ transition: none;
+ }
+}
+
+.offcanvas-backdrop {
+ position: fixed;
+ top: 0;
+ left: 0;
+ z-index: 1040;
+ width: 100vw;
+ height: 100vh;
+ background-color: #000;
+}
+.offcanvas-backdrop.fade {
+ opacity: 0;
+}
+.offcanvas-backdrop.show {
+ opacity: 0.8;
+}
+
+.offcanvas-header {
+ display: flex;
+ align-items: center;
+ justify-content: space-between;
+ padding: 1rem 1rem;
+}
+.offcanvas-header .btn-close {
+ padding: 0.5rem 0.5rem;
+ margin-top: -0.5rem;
+ margin-right: -0.5rem;
+ margin-bottom: -0.5rem;
+}
+
+.offcanvas-title {
+ margin-bottom: 0;
+ line-height: 1.5;
+}
+
+.offcanvas-body {
+ flex-grow: 1;
+ padding: 1rem 1rem;
+ overflow-y: auto;
+}
+
+.emj, .emoji, .emoji-lg {
+ max-width: 100% !important;
+}
+
+.offcanvas-start {
+ top: 0;
+ left: 0;
+ width: 400px;
+ border-right: 1px solid rgba(0, 0, 0, 0.2);
+ transform: translateX(-100%);
+}
+
+.offcanvas-end {
+ top: 0;
+ right: 0;
+ width: 400px;
+ border-left: 1px solid rgba(0, 0, 0, 0.2);
+ transform: translateX(100%);
+}
+
+.offcanvas-top {
+ top: 0;
+ right: 0;
+ left: 0;
+ height: 30vh;
+ max-height: 100%;
+ border-bottom: 1px solid rgba(0, 0, 0, 0.2);
+ transform: translateY(-100%);
+}
+
+.offcanvas-bottom {
+ right: 0;
+ left: 0;
+ height: 30vh;
+ max-height: 100%;
+ border-top: 1px solid rgba(0, 0, 0, 0.2);
+ transform: translateY(100%);
+}
+
+.offcanvas.show {
+ transform: none;
+}
+
+.navbar-expand .offcanvas-header {
+ display: none;
+}
+.navbar-expand .offcanvas {
+ position: inherit;
+ bottom: 0;
+ z-index: 1000;
+ flex-grow: 1;
+ visibility: visible !important;
+ background-color: transparent;
+ border-right: 0;
+ border-left: 0;
+ transition: none;
+ transform: none;
+}
+.navbar-expand .offcanvas-top,
+.navbar-expand .offcanvas-bottom {
+ height: auto;
+ border-top: 0;
+ border-bottom: 0;
+}
+.navbar-expand .offcanvas-body {
+ display: flex;
+ flex-grow: 0;
+ padding: 0;
+ overflow-y: visible;
+}
+@media (min-width: 576px) {
+ .navbar-expand-sm {
+ flex-wrap: nowrap;
+ justify-content: flex-start;
+ }
+ .navbar-expand-sm .navbar-nav {
+ flex-direction: row;
+ }
+ .navbar-expand-sm .navbar-nav .dropdown-menu {
+ position: absolute;
+ }
+ .navbar-expand-sm .navbar-nav .nav-link {
+ padding-right: 0.5rem;
+ padding-left: 0.5rem;
+ }
+ .navbar-expand-sm .navbar-nav-scroll {
+ overflow: visible;
+ }
+ .navbar-expand-sm .navbar-collapse {
+ display: flex !important;
+ flex-basis: auto;
+ }
+ .navbar-expand-sm .navbar-toggler {
+ display: none;
+ }
+ .navbar-expand-sm .offcanvas-header {
+ display: none;
+ }
+ .navbar-expand-sm .offcanvas {
+ position: inherit;
+ bottom: 0;
+ z-index: 1000;
+ flex-grow: 1;
+ visibility: visible !important;
+ background-color: transparent;
+ border-right: 0;
+ border-left: 0;
+ transition: none;
+ transform: none;
+ }
+ .navbar-expand-sm .offcanvas-top,
+.navbar-expand-sm .offcanvas-bottom {
+ height: auto;
+ border-top: 0;
+ border-bottom: 0;
+ }
+ .navbar-expand-sm .offcanvas-body {
+ display: flex;
+ flex-grow: 0;
+ padding: 0;
+ overflow-y: visible;
+ }
+}
+@media (min-width: 768px) {
+ .navbar-expand-md {
+ flex-wrap: nowrap;
+ justify-content: flex-start;
+ }
+ .navbar-expand-md .navbar-nav {
+ flex-direction: row;
+ }
+ .navbar-expand-md .navbar-nav .dropdown-menu {
+ position: absolute;
+ }
+ .navbar-expand-md .navbar-nav .nav-link {
+ padding-right: 0.5rem;
+ padding-left: 0.5rem;
+ }
+ .navbar-expand-md .navbar-nav-scroll {
+ overflow: visible;
+ }
+ .navbar-expand-md .navbar-collapse {
+ display: flex !important;
+ flex-basis: auto;
+ }
+ .navbar-expand-md .navbar-toggler {
+ display: none;
+ }
+ .navbar-expand-md .offcanvas-header {
+ display: none;
+ }
+ .navbar-expand-md .offcanvas {
+ position: inherit;
+ bottom: 0;
+ z-index: 1000;
+ flex-grow: 1;
+ visibility: visible !important;
+ background-color: transparent;
+ border-right: 0;
+ border-left: 0;
+ transition: none;
+ transform: none;
+ }
+ .navbar-expand-md .offcanvas-top,
+.navbar-expand-md .offcanvas-bottom {
+ height: auto;
+ border-top: 0;
+ border-bottom: 0;
+ }
+ .navbar-expand-md .offcanvas-body {
+ display: flex;
+ flex-grow: 0;
+ padding: 0;
+ overflow-y: visible;
+ }
+}
+@media (min-width: 992px) {
+ .navbar-expand-lg {
+ flex-wrap: nowrap;
+ justify-content: flex-start;
+ }
+ .navbar-expand-lg .navbar-nav {
+ flex-direction: row;
+ }
+ .navbar-expand-lg .navbar-nav .dropdown-menu {
+ position: absolute;
+ }
+ .navbar-expand-lg .navbar-nav .nav-link {
+ padding-right: 0.5rem;
+ padding-left: 0.5rem;
+ }
+ .navbar-expand-lg .navbar-nav-scroll {
+ overflow: visible;
+ }
+ .navbar-expand-lg .navbar-collapse {
+ display: flex !important;
+ flex-basis: auto;
+ }
+ .navbar-expand-lg .navbar-toggler {
+ display: none;
+ }
+ .navbar-expand-lg .offcanvas-header {
+ display: none;
+ }
+ .navbar-expand-lg .offcanvas {
+ position: inherit;
+ bottom: 0;
+ z-index: 1000;
+ flex-grow: 1;
+ visibility: visible !important;
+ background-color: transparent;
+ border-right: 0;
+ border-left: 0;
+ transition: none;
+ transform: none;
+ }
+ .navbar-expand-lg .offcanvas-top,
+.navbar-expand-lg .offcanvas-bottom {
+ height: auto;
+ border-top: 0;
+ border-bottom: 0;
+ }
+ .navbar-expand-lg .offcanvas-body {
+ display: flex;
+ flex-grow: 0;
+ padding: 0;
+ overflow-y: visible;
+ }
+}
+@media (min-width: 1200px) {
+ .navbar-expand-xl {
+ flex-wrap: nowrap;
+ justify-content: flex-start;
+ }
+ .navbar-expand-xl .navbar-nav {
+ flex-direction: row;
+ }
+ .navbar-expand-xl .navbar-nav .dropdown-menu {
+ position: absolute;
+ }
+ .navbar-expand-xl .navbar-nav .nav-link {
+ padding-right: 0.5rem;
+ padding-left: 0.5rem;
+ }
+ .navbar-expand-xl .navbar-nav-scroll {
+ overflow: visible;
+ }
+ .navbar-expand-xl .navbar-collapse {
+ display: flex !important;
+ flex-basis: auto;
+ }
+ .navbar-expand-xl .navbar-toggler {
+ display: none;
+ }
+ .navbar-expand-xl .offcanvas-header {
+ display: none;
+ }
+ .navbar-expand-xl .offcanvas {
+ position: inherit;
+ bottom: 0;
+ z-index: 1000;
+ flex-grow: 1;
+ visibility: visible !important;
+ background-color: transparent;
+ border-right: 0;
+ border-left: 0;
+ transition: none;
+ transform: none;
+ }
+ .navbar-expand-xl .offcanvas-top,
+.navbar-expand-xl .offcanvas-bottom {
+ height: auto;
+ border-top: 0;
+ border-bottom: 0;
+ }
+ .navbar-expand-xl .offcanvas-body {
+ display: flex;
+ flex-grow: 0;
+ padding: 0;
+ overflow-y: visible;
+ }
+}
+@media (min-width: 1400px) {
+ .navbar-expand-xxl {
+ flex-wrap: nowrap;
+ justify-content: flex-start;
+ }
+ .navbar-expand-xxl .navbar-nav {
+ flex-direction: row;
+ }
+ .navbar-expand-xxl .navbar-nav .dropdown-menu {
+ position: absolute;
+ }
+ .navbar-expand-xxl .navbar-nav .nav-link {
+ padding-right: 0.5rem;
+ padding-left: 0.5rem;
+ }
+ .navbar-expand-xxl .navbar-nav-scroll {
+ overflow: visible;
+ }
+ .navbar-expand-xxl .navbar-collapse {
+ display: flex !important;
+ flex-basis: auto;
+ }
+ .navbar-expand-xxl .navbar-toggler {
+ display: none;
+ }
+ .navbar-expand-xxl .offcanvas-header {
+ display: none;
+ }
+ .navbar-expand-xxl .offcanvas {
+ position: inherit;
+ bottom: 0;
+ z-index: 1000;
+ flex-grow: 1;
+ visibility: visible !important;
+ background-color: transparent;
+ border-right: 0;
+ border-left: 0;
+ transition: none;
+ transform: none;
+ }
+ .navbar-expand-xxl .offcanvas-top,
+.navbar-expand-xxl .offcanvas-bottom {
+ height: auto;
+ border-top: 0;
+ border-bottom: 0;
+ }
+ .navbar-expand-xxl .offcanvas-body {
+ display: flex;
+ flex-grow: 0;
+ padding: 0;
+ overflow-y: visible;
+ }
+}
+.navbar-expand {
+ flex-wrap: nowrap;
+ justify-content: flex-start;
+}
+.navbar-expand .navbar-nav {
+ flex-direction: row;
+}
+.navbar-expand .navbar-nav .dropdown-menu {
+ position: absolute;
+}
+.navbar-expand .navbar-nav .nav-link {
+ padding-right: 0.5rem;
+ padding-left: 0.5rem;
+}
+.navbar-expand .navbar-nav-scroll {
+ overflow: visible;
+}
+.navbar-expand .navbar-collapse {
+ display: flex !important;
+ flex-basis: auto;
+}
+.navbar-expand .navbar-toggler {
+ display: none;
+}
+.navbar-expand .offcanvas-header {
+ display: none;
+}
+.navbar-expand .offcanvas {
+ position: inherit;
+ bottom: 0;
+ z-index: 1000;
+ flex-grow: 1;
+ visibility: visible !important;
+ background-color: transparent;
+ border-right: 0;
+ border-left: 0;
+ transition: none;
+ transform: none;
+}
+.navbar-expand .offcanvas-top,
+.navbar-expand .offcanvas-bottom {
+ height: auto;
+ border-top: 0;
+ border-bottom: 0;
+}
+.navbar-expand .offcanvas-body {
+ display: flex;
+ flex-grow: 0;
+ padding: 0;
+ overflow-y: visible;
+}
+
+.pp20 {
+ width: 20px;
+ height: 20px;
+ object-fit: cover;
+ display: inline;
+}
+
+.max-h-12 {
+ max-height: 3rem;
+}
diff --git a/files/assets/CHRISTMAS/css/midnight.css b/files/assets/CHRISTMAS/css/midnight.css
new file mode 100644
index 000000000..ca4c2a465
--- /dev/null
+++ b/files/assets/CHRISTMAS/css/midnight.css
@@ -0,0 +1,46 @@
+@charset "UTF-8";
+
+:root {
+ --dark: #505961;
+ --secondary: #505961;
+ --white: #c9d1d9;
+ --black: #c9d1d9;
+ --light: #b1bac4;
+ --muted: #c9d1d9;
+ --gray: #505961;
+ --gray-100: #c9d1d9;
+ --gray-200: #b1bac4;
+ --gray-300: #505961;
+ --gray-400: #6e7681;
+ --gray-500: #484f58;
+ --gray-600: #21262d;
+ --gray-700: #21262d;
+ --gray-800: #161b22;
+ --gray-900: #0d1117;
+}
+
+
+
+body, .navbar-light, .navbar-dark, .card, .modal-content, .comment-write textarea {
+ background-color: var(--gray-600) !important;
+}
+
+.transparent, #login {
+ background: None !important;
+}
+
+#frontpage .post-title a:visited {
+ color: #6e6e6e !important;
+}
+
+.tooltip-inner {
+ color: #383838 !important;
+}
+
+.modal .comment-actions .list-group-item {
+ background-color: var(--gray-600)!important;
+}
+
+.page-link {
+ background-color: #ccc;
+}
\ No newline at end of file
diff --git a/files/assets/css/mistletoe.css b/files/assets/CHRISTMAS/css/mistletoe.css
similarity index 97%
rename from files/assets/css/mistletoe.css
rename to files/assets/CHRISTMAS/css/mistletoe.css
index ece835854..77bf6efcc 100644
--- a/files/assets/css/mistletoe.css
+++ b/files/assets/CHRISTMAS/css/mistletoe.css
@@ -36,7 +36,7 @@
.cap::before {
content: '';
pointer-events: none;
- background: url("/assets/christmas/hat2.png");
+ background: url("/assets/CHRISTMAS/hat2.png");
position: absolute;
top: -10px;
left: 0;
@@ -50,7 +50,7 @@
.santa::before {
content: '';
pointer-events: none;
- background: url("/assets/christmas/hat1.png");
+ background: url("/assets/CHRISTMAS/hat1.png");
position: absolute;
top: -10px;
left: -5px;
@@ -113,7 +113,7 @@
.snowcaps::after {
content: '';
pointer-events: none;
- background: url("/assets/christmas/snowcap.png");
+ background: url("/assets/CHRISTMAS/snowcap.png");
position: absolute;
bottom: -15px;
left: 0;
@@ -162,7 +162,7 @@
.lights::after {
content: '';
pointer-events: none;
- background: url(/assets/christmas/lights-string.png);
+ background: url(/assets/CHRISTMAS/lights-string.png);
animation: lights 1s infinite steps(2);
position: absolute;
top: 0;
diff --git a/files/assets/CHRISTMAS/css/transparent.css b/files/assets/CHRISTMAS/css/transparent.css
new file mode 100644
index 000000000..597a36910
--- /dev/null
+++ b/files/assets/CHRISTMAS/css/transparent.css
@@ -0,0 +1,82 @@
+@charset "UTF-8";
+
+:root {
+ --dark: #383838;
+ --secondary: #383838;
+ --white: #E1E1E1;
+ --black: #CFCFCF;
+ --light: #000000;
+ --muted: #E1E1E1;
+ --gray: #383838;
+ --gray-100: #E1E1E1;
+ --gray-200: #E1E1E1;
+ --gray-300: #383838;
+ --gray-400: #303030;
+ --gray-500: #000000;
+ --gray-600: #000000;
+ --gray-700: #000000;
+ --gray-800: #000000;
+ --gray-900: #000000;
+}
+
+
+
+* {
+ border-color: var(--primary);
+}
+
+.border {
+ border-color: var(--primary) !important;
+}
+
+.form-control {
+ background: transparent;
+ border-color: var(--primary) !important;
+}
+
+.btn {
+ background: transparent;
+ border-color: var(--primary) !important;
+}
+
+.form-control:disabled, .form-control[readonly] {
+ background: transparent;
+ border-color: var(--primary) !important;
+}
+
+.btn-success {
+ border-color: #38A169 !important;
+}
+
+.btn-danger {
+ border-color: #E53E3E !important;
+}
+
+#frontpage .pseudo-submit-form.card .card-body .form-control {
+ border-color: transparent !important;
+}
+
+.btn-lg {
+ border-color: transparent !important;
+}
+
+pre {
+ color: #CFCFCF;
+}
+
+:not(.dropdown-menu) {
+ background: transparent;
+}
+
+.container {
+ background: rgba(28, 34, 41, 0.85) !important;
+ border-radius: 0 !important;
+}
+
+.col-12 .card {
+ background: None !important;
+}
+
+#frontpage .post-title a:visited {
+ color: #7a7a7a !important;
+}
\ No newline at end of file
diff --git a/files/assets/CHRISTMAS/css/tron.css b/files/assets/CHRISTMAS/css/tron.css
new file mode 100644
index 000000000..ba587c0fc
--- /dev/null
+++ b/files/assets/CHRISTMAS/css/tron.css
@@ -0,0 +1,223 @@
+@charset "UTF-8";
+
+/* cyrillic-ext */
+@font-face {
+ font-family: 'Roboto Mono';
+ font-style: normal;
+ font-weight: 400;
+ src: url(../fonts/L0xTDF4xlVMF-BfR8bXMIhJHg45mwgGEFl0_3vrtSM1J-gEPT5Ese6hmHSV0mf0h.woff2) format('woff2');
+ unicode-range: U+0460-052F, U+1C80-1C88, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F;
+ }
+ /* cyrillic */
+ @font-face {
+ font-family: 'Roboto Mono';
+ font-style: normal;
+ font-weight: 400;
+ src: url(../fonts/L0xTDF4xlVMF-BfR8bXMIhJHg45mwgGEFl0_3vrtSM1J-gEPT5Ese6hmHSx0mf0h.woff2) format('woff2');
+ unicode-range: U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
+ }
+ /* greek */
+ @font-face {
+ font-family: 'Roboto Mono';
+ font-style: normal;
+ font-weight: 400;
+ src: url(../fonts/L0xTDF4xlVMF-BfR8bXMIhJHg45mwgGEFl0_3vrtSM1J-gEPT5Ese6hmHSt0mf0h.woff2) format('woff2');
+ unicode-range: U+0370-03FF;
+ }
+ /* vietnamese */
+ @font-face {
+ font-family: 'Roboto Mono';
+ font-style: normal;
+ font-weight: 400;
+ src: url(../fonts/L0xTDF4xlVMF-BfR8bXMIhJHg45mwgGEFl0_3vrtSM1J-gEPT5Ese6hmHSd0mf0h.woff2) format('woff2');
+ unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+1EA0-1EF9, U+20AB;
+ }
+ /* latin-ext */
+ @font-face {
+ font-family: 'Roboto Mono';
+ font-style: normal;
+ font-weight: 400;
+ src: url(../fonts/L0xTDF4xlVMF-BfR8bXMIhJHg45mwgGEFl0_3vrtSM1J-gEPT5Ese6hmHSZ0mf0h.woff2) format('woff2');
+ unicode-range: U+0100-024F, U+0259, U+1E00-1EFF, U+2020, U+20A0-20AB, U+20AD-20CF, U+2113, U+2C60-2C7F, U+A720-A7FF;
+ }
+ /* latin */
+ @font-face {
+ font-family: 'Roboto Mono';
+ font-style: normal;
+ font-weight: 400;
+ src: url(../fonts/L0xTDF4xlVMF-BfR8bXMIhJHg45mwgGEFl0_3vrtSM1J-gEPT5Ese6hmHSh0mQ.woff2) format('woff2');
+ unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
+ }
+ /* cyrillic-ext */
+ @font-face {
+ font-family: 'Roboto Mono';
+ font-style: normal;
+ font-weight: 600;
+ src: url(../fonts/L0xTDF4xlVMF-BfR8bXMIhJHg45mwgGEFl0_3vrtSM1J-gEPT5Ese6hmHSV0mf0h.woff2) format('woff2');
+ unicode-range: U+0460-052F, U+1C80-1C88, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F;
+ }
+ /* cyrillic */
+ @font-face {
+ font-family: 'Roboto Mono';
+ font-style: normal;
+ font-weight: 600;
+ src: url(../fonts/L0xTDF4xlVMF-BfR8bXMIhJHg45mwgGEFl0_3vrtSM1J-gEPT5Ese6hmHSx0mf0h.woff2) format('woff2');
+ unicode-range: U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
+ }
+ /* greek */
+ @font-face {
+ font-family: 'Roboto Mono';
+ font-style: normal;
+ font-weight: 600;
+ src: url(../fonts/L0xTDF4xlVMF-BfR8bXMIhJHg45mwgGEFl0_3vrtSM1J-gEPT5Ese6hmHSt0mf0h.woff2) format('woff2');
+ unicode-range: U+0370-03FF;
+ }
+ /* vietnamese */
+ @font-face {
+ font-family: 'Roboto Mono';
+ font-style: normal;
+ font-weight: 600;
+ src: url(../fonts/L0xTDF4xlVMF-BfR8bXMIhJHg45mwgGEFl0_3vrtSM1J-gEPT5Ese6hmHSd0mf0h.woff2) format('woff2');
+ unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+1EA0-1EF9, U+20AB;
+ }
+ /* latin-ext */
+ @font-face {
+ font-family: 'Roboto Mono';
+ font-style: normal;
+ font-weight: 600;
+ src: url(../fonts/L0xTDF4xlVMF-BfR8bXMIhJHg45mwgGEFl0_3vrtSM1J-gEPT5Ese6hmHSZ0mf0h.woff2) format('woff2');
+ unicode-range: U+0100-024F, U+0259, U+1E00-1EFF, U+2020, U+20A0-20AB, U+20AD-20CF, U+2113, U+2C60-2C7F, U+A720-A7FF;
+ }
+ /* latin */
+ @font-face {
+ font-family: 'Roboto Mono';
+ font-style: normal;
+ font-weight: 600;
+ src: url(../fonts/L0xTDF4xlVMF-BfR8bXMIhJHg45mwgGEFl0_3vrtSM1J-gEPT5Ese6hmHSh0mQ.woff2) format('woff2');
+ unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
+ }
+ /* cyrillic-ext */
+ @font-face {
+ font-family: 'Roboto Mono';
+ font-style: normal;
+ font-weight: 700;
+ src: url(../fonts/L0xTDF4xlVMF-BfR8bXMIhJHg45mwgGEFl0_3vrtSM1J-gEPT5Ese6hmHSV0mf0h.woff2) format('woff2');
+ unicode-range: U+0460-052F, U+1C80-1C88, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F;
+ }
+ /* cyrillic */
+ @font-face {
+ font-family: 'Roboto Mono';
+ font-style: normal;
+ font-weight: 700;
+ src: url(../fonts/L0xTDF4xlVMF-BfR8bXMIhJHg45mwgGEFl0_3vrtSM1J-gEPT5Ese6hmHSx0mf0h.woff2) format('woff2');
+ unicode-range: U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
+ }
+ /* greek */
+ @font-face {
+ font-family: 'Roboto Mono';
+ font-style: normal;
+ font-weight: 700;
+ src: url(../fonts/L0xTDF4xlVMF-BfR8bXMIhJHg45mwgGEFl0_3vrtSM1J-gEPT5Ese6hmHSt0mf0h.woff2) format('woff2');
+ unicode-range: U+0370-03FF;
+ }
+ /* vietnamese */
+ @font-face {
+ font-family: 'Roboto Mono';
+ font-style: normal;
+ font-weight: 700;
+ src: url(../fonts/L0xTDF4xlVMF-BfR8bXMIhJHg45mwgGEFl0_3vrtSM1J-gEPT5Ese6hmHSd0mf0h.woff2) format('woff2');
+ unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+1EA0-1EF9, U+20AB;
+ }
+ /* latin-ext */
+ @font-face {
+ font-family: 'Roboto Mono';
+ font-style: normal;
+ font-weight: 700;
+ src: url(../fonts/L0xTDF4xlVMF-BfR8bXMIhJHg45mwgGEFl0_3vrtSM1J-gEPT5Ese6hmHSZ0mf0h.woff2) format('woff2');
+ unicode-range: U+0100-024F, U+0259, U+1E00-1EFF, U+2020, U+20A0-20AB, U+20AD-20CF, U+2113, U+2C60-2C7F, U+A720-A7FF;
+ }
+ /* latin */
+ @font-face {
+ font-family: 'Roboto Mono';
+ font-style: normal;
+ font-weight: 700;
+ src: url(../fonts/L0xTDF4xlVMF-BfR8bXMIhJHg45mwgGEFl0_3vrtSM1J-gEPT5Ese6hmHSh0mQ.woff2) format('woff2');
+ unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
+ }
+
+:root {
+ --dark: #00001f;
+ --secondary: var(--primary);
+ --white: #f0f0f0;
+ --black: #f0f0f0;
+ --light: #00001f;
+ --muted: var(--primary);
+ --gray: var(--primary);
+ --gray-100: var(--primary);
+ --gray-200: var(--primary);
+ --gray-300: #00001f;
+ --gray-400: #var(--primary);
+ --gray-500: #00001f;
+ --gray-600: #00001f;
+ --gray-700: #00001f;
+ --gray-800: #00001f;
+ --gray-900: #00001f;
+}
+
+
+.comment-box {
+ border: 2px solid var(--gray-200);
+}
+
+.btn {
+ color: var(--primary);
+}
+
+* {
+ font-family: 'Roboto Mono' !important;
+}
+
+.arrow-up::before {
+ color: var(--white);
+}
+
+.arrow-down::before {
+ color: var(--white);
+}
+
+.modal-content {
+ background-color: var(--gray-300);
+}
+
+.modal-header {
+ background-color: var(--gray-300);
+}
+
+.modal .comment-actions .list-group-item {
+ background-color: var(--gray-300);
+}
+
+.comment-actions .score {
+ color: var(--white);
+}
+
+.transparent {
+ background: None !important;
+}
+
+.btn-danger.disabled, .btn-danger:disabled {
+ color: var(--primary) !important;
+}
+
+#frontpage .post-title a:visited {
+ color: #b0b0b0 !important;
+}
+
+.followsyou {
+ background-color: var(--dark) !important;
+ border: 1px solid var(--primary) !important;
+}
+
+#frontpage .pseudo-submit-form.card, .form-inline.search .form-control, .form-control[readonly] {
+ border: 2px solid var(--gray-200) !important;
+}
\ No newline at end of file
diff --git a/files/assets/CHRISTMAS/css/win98.css b/files/assets/CHRISTMAS/css/win98.css
new file mode 100644
index 000000000..7f2decab4
--- /dev/null
+++ b/files/assets/CHRISTMAS/css/win98.css
@@ -0,0 +1,160 @@
+@charset "UTF-8";
+
+:root {
+ --dark: #fff;
+ --secondary: #000000;
+ --white: #c0c0c0;
+ --black: #000000;
+ --light: #000000;
+ --muted: #404040;
+ --gray: #fff;
+ --gray-100: #394552;
+ --gray-200: #c0c0c0;
+ --gray-300: #c0c0c0;
+ --gray-400: #242C33;
+ --gray-500: #c0c0c0;
+ --gray-600: #c0c0c0;
+ --gray-700: #c0c0c0;
+ --gray-800: #07090A;
+ --gray-900: #000000;
+}
+
+
+
+* {
+ box-shadow: none !important;
+ transition: none !important;
+ border-radius: 0 !important;
+ font-family: sans-serif !important;
+ font-size: 12px;
+}
+
+.card, #mobile-bottom-navigation-bar {
+ transform: none !important;
+ background-color: var(--gray-500) !important;
+}
+
+.pseudo-submit-form .card-header, .card-blank .card-header, .navbar-light, .nav, .flex-row.bg-gray-200.sticky.justify-content-center.d-flex.d-sm-none.mt-3.mb-3.mb-sm-5.rounded {
+ background: var(--white) !important;
+ color: var(--white) !important;
+}
+.navbar-light > *, .navbar-brand, .nav-link{
+ color: var(--white) !important;
+}
+
+.nav-link, .btn, .btn-secondary, .col.px-0.pl-2.btn.btn-dead.my-0.mx-2 {
+ border: 2px outset white !important;
+ border-bottom: 2px solid #a7a5a1 !important;
+ border-right: 2px solid #a7a5a1 !important;
+ background: var(--gray-500) !important;
+ color: #000 !important;
+}
+
+.nav-link:focus, .btn:focus, .btn-secondary:focus, .col.px-0.pl-2.btn.btn-dead.my-0.mx-2,
+.nav-link:active, .btn:active, .btn-secondary:active {
+ border: 2px inset white !important;
+}
+
+.card, .card-blank, .comment-section.post-top, .dropdown-menu {
+ border: 2px outset white !important;
+ border-bottom: 2px solid #a7a5a1 !important;
+ border-right: 2px solid #a7a5a1 !important;
+}
+
+.dropdown-menu, .btn:hover {
+ background: var(--gray-500) !important;
+ color: #000 !important;
+}
+
+.form-control {
+ border: 2px inset #717171 !important;
+ border-bottom: 2px solid #a7a5a1 !important;
+ border-right: 2px solid #a7a5a1 !important;
+}
+
+.post-title, .text-small-extra.text-muted, #actual-comments > .text-muted, .text-left.pl-2 {
+ color: var(--black) !important;
+}
+
+.arrow-up::before {
+ color: var(--muted);
+}
+
+blockquote {
+ background-color: #e0e0e0 !important;
+ border-bottom: 2px solid var(--black);
+}
+
+#frontpage .pseudo-submit-form.card .card-body .form-control {
+ background-color: white !important;
+}
+
+.navbar-light .navbar-nav .nav-link .fa, .navbar-light .navbar-nav .nav-link .fas, .navbar-light .navbar-nav .nav-link .far, .navbar-light .navbar-nav .nav-link .fab {
+ color: #000 !important
+}
+
+.stretched-link {
+ color: #000 !important
+}
+
+.flaggers {
+ background-color: var(--white) !important;
+}
+
+.form-control, .form-control:disabled, .form-control[readonly] {
+ background: white !important;
+ color: black !important
+}
+
+.arrow-down::before {
+ color: var(--muted) !important;
+}
+
+.table {
+ color: black !important;
+}
+
+.transparent {
+ background: None !important;
+}
+
+.black {
+ color: black !important;
+}
+
+.col-12 .card {
+ padding: 20px !important;
+}
+
+#frontpage .post-title a:visited {
+ color: #5c5c5c !important;
+}
+
+.post-actions a {
+ color: var(--muted) !important;
+}
+
+.modal-header, .modal .comment-actions a, .modal-title {
+ color: var(--white) !important;
+}
+
+.text-info
+{
+ color: var(--primary) !important;
+}
+
+.score, .comment-actions .score {
+ color: #000;
+}
+
+.arrow-up:hover::before {
+ color: var(--muted);
+}
+
+#thread {
+ background: var(--white) !important;
+}
+
+#profilestuff > * {
+ color: #cfcfcf !important;
+}
\ No newline at end of file
diff --git a/files/assets/fonts/DeliusSwashCaps-Regular.ttf b/files/assets/CHRISTMAS/fonts/DeliusSwashCaps-Regular.ttf
similarity index 100%
rename from files/assets/fonts/DeliusSwashCaps-Regular.ttf
rename to files/assets/CHRISTMAS/fonts/DeliusSwashCaps-Regular.ttf
diff --git a/files/assets/CHRISTMAS/fonts/KFOlCnqEu92Fr1MmEU9fABc4EsA.woff2 b/files/assets/CHRISTMAS/fonts/KFOlCnqEu92Fr1MmEU9fABc4EsA.woff2
new file mode 100644
index 000000000..f1bfb055d
Binary files /dev/null and b/files/assets/CHRISTMAS/fonts/KFOlCnqEu92Fr1MmEU9fABc4EsA.woff2 differ
diff --git a/files/assets/CHRISTMAS/fonts/KFOlCnqEu92Fr1MmEU9fBBc4.woff2 b/files/assets/CHRISTMAS/fonts/KFOlCnqEu92Fr1MmEU9fBBc4.woff2
new file mode 100644
index 000000000..ce795fa8b
Binary files /dev/null and b/files/assets/CHRISTMAS/fonts/KFOlCnqEu92Fr1MmEU9fBBc4.woff2 differ
diff --git a/files/assets/CHRISTMAS/fonts/KFOlCnqEu92Fr1MmEU9fBxc4EsA.woff2 b/files/assets/CHRISTMAS/fonts/KFOlCnqEu92Fr1MmEU9fBxc4EsA.woff2
new file mode 100644
index 000000000..ccd963354
Binary files /dev/null and b/files/assets/CHRISTMAS/fonts/KFOlCnqEu92Fr1MmEU9fBxc4EsA.woff2 differ
diff --git a/files/assets/CHRISTMAS/fonts/KFOlCnqEu92Fr1MmEU9fCBc4EsA.woff2 b/files/assets/CHRISTMAS/fonts/KFOlCnqEu92Fr1MmEU9fCBc4EsA.woff2
new file mode 100644
index 000000000..3f093dd9c
Binary files /dev/null and b/files/assets/CHRISTMAS/fonts/KFOlCnqEu92Fr1MmEU9fCBc4EsA.woff2 differ
diff --git a/files/assets/CHRISTMAS/fonts/KFOlCnqEu92Fr1MmEU9fCRc4EsA.woff2 b/files/assets/CHRISTMAS/fonts/KFOlCnqEu92Fr1MmEU9fCRc4EsA.woff2
new file mode 100644
index 000000000..e6f942703
Binary files /dev/null and b/files/assets/CHRISTMAS/fonts/KFOlCnqEu92Fr1MmEU9fCRc4EsA.woff2 differ
diff --git a/files/assets/CHRISTMAS/fonts/KFOlCnqEu92Fr1MmEU9fChc4EsA.woff2 b/files/assets/CHRISTMAS/fonts/KFOlCnqEu92Fr1MmEU9fChc4EsA.woff2
new file mode 100644
index 000000000..7ef9a9261
Binary files /dev/null and b/files/assets/CHRISTMAS/fonts/KFOlCnqEu92Fr1MmEU9fChc4EsA.woff2 differ
diff --git a/files/assets/CHRISTMAS/fonts/KFOlCnqEu92Fr1MmEU9fCxc4EsA.woff2 b/files/assets/CHRISTMAS/fonts/KFOlCnqEu92Fr1MmEU9fCxc4EsA.woff2
new file mode 100644
index 000000000..01c0cc84d
Binary files /dev/null and b/files/assets/CHRISTMAS/fonts/KFOlCnqEu92Fr1MmEU9fCxc4EsA.woff2 differ
diff --git a/files/assets/CHRISTMAS/fonts/KFOmCnqEu92Fr1Mu4WxKOzY.woff2 b/files/assets/CHRISTMAS/fonts/KFOmCnqEu92Fr1Mu4WxKOzY.woff2
new file mode 100644
index 000000000..fa0d664fe
Binary files /dev/null and b/files/assets/CHRISTMAS/fonts/KFOmCnqEu92Fr1Mu4WxKOzY.woff2 differ
diff --git a/files/assets/CHRISTMAS/fonts/KFOmCnqEu92Fr1Mu4mxK.woff2 b/files/assets/CHRISTMAS/fonts/KFOmCnqEu92Fr1Mu4mxK.woff2
new file mode 100644
index 000000000..ebe1795f8
Binary files /dev/null and b/files/assets/CHRISTMAS/fonts/KFOmCnqEu92Fr1Mu4mxK.woff2 differ
diff --git a/files/assets/CHRISTMAS/fonts/KFOmCnqEu92Fr1Mu5mxKOzY.woff2 b/files/assets/CHRISTMAS/fonts/KFOmCnqEu92Fr1Mu5mxKOzY.woff2
new file mode 100644
index 000000000..f1b8ed7ca
Binary files /dev/null and b/files/assets/CHRISTMAS/fonts/KFOmCnqEu92Fr1Mu5mxKOzY.woff2 differ
diff --git a/files/assets/CHRISTMAS/fonts/KFOmCnqEu92Fr1Mu72xKOzY.woff2 b/files/assets/CHRISTMAS/fonts/KFOmCnqEu92Fr1Mu72xKOzY.woff2
new file mode 100644
index 000000000..c6d7d0619
Binary files /dev/null and b/files/assets/CHRISTMAS/fonts/KFOmCnqEu92Fr1Mu72xKOzY.woff2 differ
diff --git a/files/assets/CHRISTMAS/fonts/KFOmCnqEu92Fr1Mu7GxKOzY.woff2 b/files/assets/CHRISTMAS/fonts/KFOmCnqEu92Fr1Mu7GxKOzY.woff2
new file mode 100644
index 000000000..e2f7d2751
Binary files /dev/null and b/files/assets/CHRISTMAS/fonts/KFOmCnqEu92Fr1Mu7GxKOzY.woff2 differ
diff --git a/files/assets/CHRISTMAS/fonts/KFOmCnqEu92Fr1Mu7WxKOzY.woff2 b/files/assets/CHRISTMAS/fonts/KFOmCnqEu92Fr1Mu7WxKOzY.woff2
new file mode 100644
index 000000000..d5ca3ce24
Binary files /dev/null and b/files/assets/CHRISTMAS/fonts/KFOmCnqEu92Fr1Mu7WxKOzY.woff2 differ
diff --git a/files/assets/CHRISTMAS/fonts/KFOmCnqEu92Fr1Mu7mxKOzY.woff2 b/files/assets/CHRISTMAS/fonts/KFOmCnqEu92Fr1Mu7mxKOzY.woff2
new file mode 100644
index 000000000..f8b68e3ac
Binary files /dev/null and b/files/assets/CHRISTMAS/fonts/KFOmCnqEu92Fr1Mu7mxKOzY.woff2 differ
diff --git a/files/assets/CHRISTMAS/fonts/L0xTDF4xlVMF-BfR8bXMIhJHg45mwgGEFl0_3vrtSM1J-gEPT5Ese6hmHSV0mf0h.woff2 b/files/assets/CHRISTMAS/fonts/L0xTDF4xlVMF-BfR8bXMIhJHg45mwgGEFl0_3vrtSM1J-gEPT5Ese6hmHSV0mf0h.woff2
new file mode 100644
index 000000000..6915f2550
Binary files /dev/null and b/files/assets/CHRISTMAS/fonts/L0xTDF4xlVMF-BfR8bXMIhJHg45mwgGEFl0_3vrtSM1J-gEPT5Ese6hmHSV0mf0h.woff2 differ
diff --git a/files/assets/CHRISTMAS/fonts/L0xTDF4xlVMF-BfR8bXMIhJHg45mwgGEFl0_3vrtSM1J-gEPT5Ese6hmHSZ0mf0h.woff2 b/files/assets/CHRISTMAS/fonts/L0xTDF4xlVMF-BfR8bXMIhJHg45mwgGEFl0_3vrtSM1J-gEPT5Ese6hmHSZ0mf0h.woff2
new file mode 100644
index 000000000..3fd3d351a
Binary files /dev/null and b/files/assets/CHRISTMAS/fonts/L0xTDF4xlVMF-BfR8bXMIhJHg45mwgGEFl0_3vrtSM1J-gEPT5Ese6hmHSZ0mf0h.woff2 differ
diff --git a/files/assets/CHRISTMAS/fonts/L0xTDF4xlVMF-BfR8bXMIhJHg45mwgGEFl0_3vrtSM1J-gEPT5Ese6hmHSd0mf0h.woff2 b/files/assets/CHRISTMAS/fonts/L0xTDF4xlVMF-BfR8bXMIhJHg45mwgGEFl0_3vrtSM1J-gEPT5Ese6hmHSd0mf0h.woff2
new file mode 100644
index 000000000..a3a84c7a3
Binary files /dev/null and b/files/assets/CHRISTMAS/fonts/L0xTDF4xlVMF-BfR8bXMIhJHg45mwgGEFl0_3vrtSM1J-gEPT5Ese6hmHSd0mf0h.woff2 differ
diff --git a/files/assets/CHRISTMAS/fonts/L0xTDF4xlVMF-BfR8bXMIhJHg45mwgGEFl0_3vrtSM1J-gEPT5Ese6hmHSh0mQ.woff2 b/files/assets/CHRISTMAS/fonts/L0xTDF4xlVMF-BfR8bXMIhJHg45mwgGEFl0_3vrtSM1J-gEPT5Ese6hmHSh0mQ.woff2
new file mode 100644
index 000000000..b562906c1
Binary files /dev/null and b/files/assets/CHRISTMAS/fonts/L0xTDF4xlVMF-BfR8bXMIhJHg45mwgGEFl0_3vrtSM1J-gEPT5Ese6hmHSh0mQ.woff2 differ
diff --git a/files/assets/CHRISTMAS/fonts/L0xTDF4xlVMF-BfR8bXMIhJHg45mwgGEFl0_3vrtSM1J-gEPT5Ese6hmHSt0mf0h.woff2 b/files/assets/CHRISTMAS/fonts/L0xTDF4xlVMF-BfR8bXMIhJHg45mwgGEFl0_3vrtSM1J-gEPT5Ese6hmHSt0mf0h.woff2
new file mode 100644
index 000000000..33d62376a
Binary files /dev/null and b/files/assets/CHRISTMAS/fonts/L0xTDF4xlVMF-BfR8bXMIhJHg45mwgGEFl0_3vrtSM1J-gEPT5Ese6hmHSt0mf0h.woff2 differ
diff --git a/files/assets/CHRISTMAS/fonts/L0xTDF4xlVMF-BfR8bXMIhJHg45mwgGEFl0_3vrtSM1J-gEPT5Ese6hmHSx0mf0h.woff2 b/files/assets/CHRISTMAS/fonts/L0xTDF4xlVMF-BfR8bXMIhJHg45mwgGEFl0_3vrtSM1J-gEPT5Ese6hmHSx0mf0h.woff2
new file mode 100644
index 000000000..c55acbc7c
Binary files /dev/null and b/files/assets/CHRISTMAS/fonts/L0xTDF4xlVMF-BfR8bXMIhJHg45mwgGEFl0_3vrtSM1J-gEPT5Ese6hmHSx0mf0h.woff2 differ
diff --git a/files/assets/CHRISTMAS/fonts/S6u9w4BMUTPHh6UVSwaPGR_p.woff2 b/files/assets/CHRISTMAS/fonts/S6u9w4BMUTPHh6UVSwaPGR_p.woff2
new file mode 100644
index 000000000..c5d944d29
Binary files /dev/null and b/files/assets/CHRISTMAS/fonts/S6u9w4BMUTPHh6UVSwaPGR_p.woff2 differ
diff --git a/files/assets/CHRISTMAS/fonts/S6u9w4BMUTPHh6UVSwiPGQ.woff2 b/files/assets/CHRISTMAS/fonts/S6u9w4BMUTPHh6UVSwiPGQ.woff2
new file mode 100644
index 000000000..f8c37ecde
Binary files /dev/null and b/files/assets/CHRISTMAS/fonts/S6u9w4BMUTPHh6UVSwiPGQ.woff2 differ
diff --git a/files/assets/CHRISTMAS/fonts/S6uyw4BMUTPHjx4wXg.woff2 b/files/assets/CHRISTMAS/fonts/S6uyw4BMUTPHjx4wXg.woff2
new file mode 100644
index 000000000..6904b6649
Binary files /dev/null and b/files/assets/CHRISTMAS/fonts/S6uyw4BMUTPHjx4wXg.woff2 differ
diff --git a/files/assets/CHRISTMAS/fonts/S6uyw4BMUTPHjxAwXjeu.woff2 b/files/assets/CHRISTMAS/fonts/S6uyw4BMUTPHjxAwXjeu.woff2
new file mode 100644
index 000000000..0a0ee5eae
Binary files /dev/null and b/files/assets/CHRISTMAS/fonts/S6uyw4BMUTPHjxAwXjeu.woff2 differ
diff --git a/files/assets/CHRISTMAS/fonts/fa-brands-400.ttf b/files/assets/CHRISTMAS/fonts/fa-brands-400.ttf
new file mode 100644
index 000000000..79b6bae5a
Binary files /dev/null and b/files/assets/CHRISTMAS/fonts/fa-brands-400.ttf differ
diff --git a/files/assets/CHRISTMAS/fonts/fa-brands-400.woff b/files/assets/CHRISTMAS/fonts/fa-brands-400.woff
new file mode 100644
index 000000000..56d4bbba3
Binary files /dev/null and b/files/assets/CHRISTMAS/fonts/fa-brands-400.woff differ
diff --git a/files/assets/CHRISTMAS/fonts/fa-brands-400.woff2 b/files/assets/CHRISTMAS/fonts/fa-brands-400.woff2
new file mode 100644
index 000000000..8a836635a
Binary files /dev/null and b/files/assets/CHRISTMAS/fonts/fa-brands-400.woff2 differ
diff --git a/files/assets/CHRISTMAS/fonts/fa-duotone-900.ttf b/files/assets/CHRISTMAS/fonts/fa-duotone-900.ttf
new file mode 100644
index 000000000..b1a5e7ea5
Binary files /dev/null and b/files/assets/CHRISTMAS/fonts/fa-duotone-900.ttf differ
diff --git a/files/assets/CHRISTMAS/fonts/fa-duotone-900.woff b/files/assets/CHRISTMAS/fonts/fa-duotone-900.woff
new file mode 100644
index 000000000..de2ce751b
Binary files /dev/null and b/files/assets/CHRISTMAS/fonts/fa-duotone-900.woff differ
diff --git a/files/assets/CHRISTMAS/fonts/fa-duotone-900.woff2 b/files/assets/CHRISTMAS/fonts/fa-duotone-900.woff2
new file mode 100644
index 000000000..0d57b192a
Binary files /dev/null and b/files/assets/CHRISTMAS/fonts/fa-duotone-900.woff2 differ
diff --git a/files/assets/CHRISTMAS/fonts/fa-light-300.ttf b/files/assets/CHRISTMAS/fonts/fa-light-300.ttf
new file mode 100644
index 000000000..34489d0c5
Binary files /dev/null and b/files/assets/CHRISTMAS/fonts/fa-light-300.ttf differ
diff --git a/files/assets/CHRISTMAS/fonts/fa-light-300.woff b/files/assets/CHRISTMAS/fonts/fa-light-300.woff
new file mode 100644
index 000000000..414c107c7
Binary files /dev/null and b/files/assets/CHRISTMAS/fonts/fa-light-300.woff differ
diff --git a/files/assets/CHRISTMAS/fonts/fa-light-300.woff2 b/files/assets/CHRISTMAS/fonts/fa-light-300.woff2
new file mode 100644
index 000000000..d49e7e257
Binary files /dev/null and b/files/assets/CHRISTMAS/fonts/fa-light-300.woff2 differ
diff --git a/files/assets/CHRISTMAS/fonts/fa-regular-400.ttf b/files/assets/CHRISTMAS/fonts/fa-regular-400.ttf
new file mode 100644
index 000000000..2da2b23a5
Binary files /dev/null and b/files/assets/CHRISTMAS/fonts/fa-regular-400.ttf differ
diff --git a/files/assets/CHRISTMAS/fonts/fa-regular-400.woff b/files/assets/CHRISTMAS/fonts/fa-regular-400.woff
new file mode 100644
index 000000000..ae20cd5e2
Binary files /dev/null and b/files/assets/CHRISTMAS/fonts/fa-regular-400.woff differ
diff --git a/files/assets/CHRISTMAS/fonts/fa-regular-400.woff2 b/files/assets/CHRISTMAS/fonts/fa-regular-400.woff2
new file mode 100644
index 000000000..783cfcf2d
Binary files /dev/null and b/files/assets/CHRISTMAS/fonts/fa-regular-400.woff2 differ
diff --git a/files/assets/CHRISTMAS/fonts/fa-solid-900.ttf b/files/assets/CHRISTMAS/fonts/fa-solid-900.ttf
new file mode 100644
index 000000000..18e30d494
Binary files /dev/null and b/files/assets/CHRISTMAS/fonts/fa-solid-900.ttf differ
diff --git a/files/assets/CHRISTMAS/fonts/fa-solid-900.woff b/files/assets/CHRISTMAS/fonts/fa-solid-900.woff
new file mode 100644
index 000000000..c0e39e2a5
Binary files /dev/null and b/files/assets/CHRISTMAS/fonts/fa-solid-900.woff differ
diff --git a/files/assets/CHRISTMAS/fonts/fa-solid-900.woff2 b/files/assets/CHRISTMAS/fonts/fa-solid-900.woff2
new file mode 100644
index 000000000..2524b3039
Binary files /dev/null and b/files/assets/CHRISTMAS/fonts/fa-solid-900.woff2 differ
diff --git a/files/assets/CHRISTMAS/fonts/memvYaGs126MiZpBA-UvWbX2vVnXBbObj2OVTS-muw.woff2 b/files/assets/CHRISTMAS/fonts/memvYaGs126MiZpBA-UvWbX2vVnXBbObj2OVTS-muw.woff2
new file mode 100644
index 000000000..851d828eb
Binary files /dev/null and b/files/assets/CHRISTMAS/fonts/memvYaGs126MiZpBA-UvWbX2vVnXBbObj2OVTS-muw.woff2 differ
diff --git a/files/assets/CHRISTMAS/fonts/memvYaGs126MiZpBA-UvWbX2vVnXBbObj2OVTS2mu1aB.woff2 b/files/assets/CHRISTMAS/fonts/memvYaGs126MiZpBA-UvWbX2vVnXBbObj2OVTS2mu1aB.woff2
new file mode 100644
index 000000000..2768263d6
Binary files /dev/null and b/files/assets/CHRISTMAS/fonts/memvYaGs126MiZpBA-UvWbX2vVnXBbObj2OVTS2mu1aB.woff2 differ
diff --git a/files/assets/CHRISTMAS/fonts/memvYaGs126MiZpBA-UvWbX2vVnXBbObj2OVTSCmu1aB.woff2 b/files/assets/CHRISTMAS/fonts/memvYaGs126MiZpBA-UvWbX2vVnXBbObj2OVTSCmu1aB.woff2
new file mode 100644
index 000000000..d095304c2
Binary files /dev/null and b/files/assets/CHRISTMAS/fonts/memvYaGs126MiZpBA-UvWbX2vVnXBbObj2OVTSCmu1aB.woff2 differ
diff --git a/files/assets/CHRISTMAS/fonts/memvYaGs126MiZpBA-UvWbX2vVnXBbObj2OVTSGmu1aB.woff2 b/files/assets/CHRISTMAS/fonts/memvYaGs126MiZpBA-UvWbX2vVnXBbObj2OVTSGmu1aB.woff2
new file mode 100644
index 000000000..31bfbe367
Binary files /dev/null and b/files/assets/CHRISTMAS/fonts/memvYaGs126MiZpBA-UvWbX2vVnXBbObj2OVTSGmu1aB.woff2 differ
diff --git a/files/assets/CHRISTMAS/fonts/memvYaGs126MiZpBA-UvWbX2vVnXBbObj2OVTSKmu1aB.woff2 b/files/assets/CHRISTMAS/fonts/memvYaGs126MiZpBA-UvWbX2vVnXBbObj2OVTSKmu1aB.woff2
new file mode 100644
index 000000000..8f3dd2964
Binary files /dev/null and b/files/assets/CHRISTMAS/fonts/memvYaGs126MiZpBA-UvWbX2vVnXBbObj2OVTSKmu1aB.woff2 differ
diff --git a/files/assets/CHRISTMAS/fonts/memvYaGs126MiZpBA-UvWbX2vVnXBbObj2OVTSOmu1aB.woff2 b/files/assets/CHRISTMAS/fonts/memvYaGs126MiZpBA-UvWbX2vVnXBbObj2OVTSOmu1aB.woff2
new file mode 100644
index 000000000..81d6c4d7c
Binary files /dev/null and b/files/assets/CHRISTMAS/fonts/memvYaGs126MiZpBA-UvWbX2vVnXBbObj2OVTSOmu1aB.woff2 differ
diff --git a/files/assets/CHRISTMAS/fonts/memvYaGs126MiZpBA-UvWbX2vVnXBbObj2OVTSumu1aB.woff2 b/files/assets/CHRISTMAS/fonts/memvYaGs126MiZpBA-UvWbX2vVnXBbObj2OVTSumu1aB.woff2
new file mode 100644
index 000000000..bae23a0b4
Binary files /dev/null and b/files/assets/CHRISTMAS/fonts/memvYaGs126MiZpBA-UvWbX2vVnXBbObj2OVTSumu1aB.woff2 differ
diff --git a/files/assets/CHRISTMAS/fonts/memvYaGs126MiZpBA-UvWbX2vVnXBbObj2OVTSymu1aB.woff2 b/files/assets/CHRISTMAS/fonts/memvYaGs126MiZpBA-UvWbX2vVnXBbObj2OVTSymu1aB.woff2
new file mode 100644
index 000000000..6a3435290
Binary files /dev/null and b/files/assets/CHRISTMAS/fonts/memvYaGs126MiZpBA-UvWbX2vVnXBbObj2OVTSymu1aB.woff2 differ
diff --git a/files/assets/CHRISTMAS/ginger2-1.png b/files/assets/CHRISTMAS/ginger2-1.png
new file mode 100644
index 000000000..a78c11205
Binary files /dev/null and b/files/assets/CHRISTMAS/ginger2-1.png differ
diff --git a/files/assets/CHRISTMAS/hat1.png b/files/assets/CHRISTMAS/hat1.png
new file mode 100644
index 000000000..3da243231
Binary files /dev/null and b/files/assets/CHRISTMAS/hat1.png differ
diff --git a/files/assets/CHRISTMAS/hat2.png b/files/assets/CHRISTMAS/hat2.png
new file mode 100644
index 000000000..eda869f61
Binary files /dev/null and b/files/assets/CHRISTMAS/hat2.png differ
diff --git a/files/assets/CHRISTMAS/images/Drama/banner.webp b/files/assets/CHRISTMAS/images/Drama/banner.webp
new file mode 100644
index 000000000..873b1f520
Binary files /dev/null and b/files/assets/CHRISTMAS/images/Drama/banner.webp differ
diff --git a/files/assets/CHRISTMAS/images/Drama/cached.webp b/files/assets/CHRISTMAS/images/Drama/cached.webp
new file mode 100644
index 000000000..0b76fd59f
Binary files /dev/null and b/files/assets/CHRISTMAS/images/Drama/cached.webp differ
diff --git a/files/assets/CHRISTMAS/images/Drama/cover.webp b/files/assets/CHRISTMAS/images/Drama/cover.webp
new file mode 100644
index 000000000..417da77a7
Binary files /dev/null and b/files/assets/CHRISTMAS/images/Drama/cover.webp differ
diff --git a/files/assets/CHRISTMAS/images/Drama/default_text.webp b/files/assets/CHRISTMAS/images/Drama/default_text.webp
new file mode 100644
index 000000000..eb2b5d1df
Binary files /dev/null and b/files/assets/CHRISTMAS/images/Drama/default_text.webp differ
diff --git a/files/assets/images/Drama/drama-logo.png b/files/assets/CHRISTMAS/images/Drama/drama-logo.png
similarity index 100%
rename from files/assets/images/Drama/drama-logo.png
rename to files/assets/CHRISTMAS/images/Drama/drama-logo.png
diff --git a/files/assets/CHRISTMAS/images/Drama/headericon.webp b/files/assets/CHRISTMAS/images/Drama/headericon.webp
new file mode 100644
index 000000000..c52f150b3
Binary files /dev/null and b/files/assets/CHRISTMAS/images/Drama/headericon.webp differ
diff --git a/files/assets/CHRISTMAS/images/Drama/icon.webp b/files/assets/CHRISTMAS/images/Drama/icon.webp
new file mode 100644
index 000000000..c2fee4e98
Binary files /dev/null and b/files/assets/CHRISTMAS/images/Drama/icon.webp differ
diff --git a/files/assets/CHRISTMAS/images/Drama/logo.webp b/files/assets/CHRISTMAS/images/Drama/logo.webp
new file mode 100644
index 000000000..b53c38572
Binary files /dev/null and b/files/assets/CHRISTMAS/images/Drama/logo.webp differ
diff --git a/files/assets/CHRISTMAS/images/Drama/preview.webp b/files/assets/CHRISTMAS/images/Drama/preview.webp
new file mode 100644
index 000000000..81dc0e641
Binary files /dev/null and b/files/assets/CHRISTMAS/images/Drama/preview.webp differ
diff --git a/files/assets/CHRISTMAS/images/PCM/banner.webp b/files/assets/CHRISTMAS/images/PCM/banner.webp
new file mode 100644
index 000000000..8a49dcaab
Binary files /dev/null and b/files/assets/CHRISTMAS/images/PCM/banner.webp differ
diff --git a/files/assets/CHRISTMAS/images/PCM/cached.webp b/files/assets/CHRISTMAS/images/PCM/cached.webp
new file mode 100644
index 000000000..8a49dcaab
Binary files /dev/null and b/files/assets/CHRISTMAS/images/PCM/cached.webp differ
diff --git a/files/assets/CHRISTMAS/images/PCM/cover.webp b/files/assets/CHRISTMAS/images/PCM/cover.webp
new file mode 100644
index 000000000..5786f7748
Binary files /dev/null and b/files/assets/CHRISTMAS/images/PCM/cover.webp differ
diff --git a/files/assets/CHRISTMAS/images/PCM/default_text.webp b/files/assets/CHRISTMAS/images/PCM/default_text.webp
new file mode 100644
index 000000000..101e1ec15
Binary files /dev/null and b/files/assets/CHRISTMAS/images/PCM/default_text.webp differ
diff --git a/files/assets/CHRISTMAS/images/PCM/headericon.webp b/files/assets/CHRISTMAS/images/PCM/headericon.webp
new file mode 100644
index 000000000..5786f7748
Binary files /dev/null and b/files/assets/CHRISTMAS/images/PCM/headericon.webp differ
diff --git a/files/assets/CHRISTMAS/images/PCM/icon.webp b/files/assets/CHRISTMAS/images/PCM/icon.webp
new file mode 100644
index 000000000..5786f7748
Binary files /dev/null and b/files/assets/CHRISTMAS/images/PCM/icon.webp differ
diff --git a/files/assets/CHRISTMAS/images/PCM/preview.webp b/files/assets/CHRISTMAS/images/PCM/preview.webp
new file mode 100644
index 000000000..8a49dcaab
Binary files /dev/null and b/files/assets/CHRISTMAS/images/PCM/preview.webp differ
diff --git a/files/assets/CHRISTMAS/images/backgrounds/fantasy/1.webp b/files/assets/CHRISTMAS/images/backgrounds/fantasy/1.webp
new file mode 100644
index 000000000..1a9361a03
Binary files /dev/null and b/files/assets/CHRISTMAS/images/backgrounds/fantasy/1.webp differ
diff --git a/files/assets/CHRISTMAS/images/backgrounds/fantasy/2.webp b/files/assets/CHRISTMAS/images/backgrounds/fantasy/2.webp
new file mode 100644
index 000000000..580349e03
Binary files /dev/null and b/files/assets/CHRISTMAS/images/backgrounds/fantasy/2.webp differ
diff --git a/files/assets/CHRISTMAS/images/backgrounds/fantasy/3.webp b/files/assets/CHRISTMAS/images/backgrounds/fantasy/3.webp
new file mode 100644
index 000000000..aca7cd915
Binary files /dev/null and b/files/assets/CHRISTMAS/images/backgrounds/fantasy/3.webp differ
diff --git a/files/assets/CHRISTMAS/images/backgrounds/fantasy/4.webp b/files/assets/CHRISTMAS/images/backgrounds/fantasy/4.webp
new file mode 100644
index 000000000..98bd2a6f9
Binary files /dev/null and b/files/assets/CHRISTMAS/images/backgrounds/fantasy/4.webp differ
diff --git a/files/assets/CHRISTMAS/images/backgrounds/fantasy/5.webp b/files/assets/CHRISTMAS/images/backgrounds/fantasy/5.webp
new file mode 100644
index 000000000..7cc3e7c3e
Binary files /dev/null and b/files/assets/CHRISTMAS/images/backgrounds/fantasy/5.webp differ
diff --git a/files/assets/CHRISTMAS/images/backgrounds/fantasy/6.webp b/files/assets/CHRISTMAS/images/backgrounds/fantasy/6.webp
new file mode 100644
index 000000000..ed4ace1c9
Binary files /dev/null and b/files/assets/CHRISTMAS/images/backgrounds/fantasy/6.webp differ
diff --git a/files/assets/CHRISTMAS/images/backgrounds/pixelart/1.webp b/files/assets/CHRISTMAS/images/backgrounds/pixelart/1.webp
new file mode 100644
index 000000000..27a38f880
Binary files /dev/null and b/files/assets/CHRISTMAS/images/backgrounds/pixelart/1.webp differ
diff --git a/files/assets/CHRISTMAS/images/backgrounds/pixelart/2.webp b/files/assets/CHRISTMAS/images/backgrounds/pixelart/2.webp
new file mode 100644
index 000000000..9da69a554
Binary files /dev/null and b/files/assets/CHRISTMAS/images/backgrounds/pixelart/2.webp differ
diff --git a/files/assets/CHRISTMAS/images/backgrounds/pixelart/3.webp b/files/assets/CHRISTMAS/images/backgrounds/pixelart/3.webp
new file mode 100644
index 000000000..235201928
Binary files /dev/null and b/files/assets/CHRISTMAS/images/backgrounds/pixelart/3.webp differ
diff --git a/files/assets/CHRISTMAS/images/backgrounds/pixelart/4.webp b/files/assets/CHRISTMAS/images/backgrounds/pixelart/4.webp
new file mode 100644
index 000000000..74900d8e1
Binary files /dev/null and b/files/assets/CHRISTMAS/images/backgrounds/pixelart/4.webp differ
diff --git a/files/assets/CHRISTMAS/images/backgrounds/pixelart/5.webp b/files/assets/CHRISTMAS/images/backgrounds/pixelart/5.webp
new file mode 100644
index 000000000..f477772b8
Binary files /dev/null and b/files/assets/CHRISTMAS/images/backgrounds/pixelart/5.webp differ
diff --git a/files/assets/CHRISTMAS/images/backgrounds/solarpunk/1.webp b/files/assets/CHRISTMAS/images/backgrounds/solarpunk/1.webp
new file mode 100644
index 000000000..0c8f47ea6
Binary files /dev/null and b/files/assets/CHRISTMAS/images/backgrounds/solarpunk/1.webp differ
diff --git a/files/assets/CHRISTMAS/images/backgrounds/solarpunk/10.webp b/files/assets/CHRISTMAS/images/backgrounds/solarpunk/10.webp
new file mode 100644
index 000000000..cafd296b4
Binary files /dev/null and b/files/assets/CHRISTMAS/images/backgrounds/solarpunk/10.webp differ
diff --git a/files/assets/CHRISTMAS/images/backgrounds/solarpunk/11.webp b/files/assets/CHRISTMAS/images/backgrounds/solarpunk/11.webp
new file mode 100644
index 000000000..f8d26c202
Binary files /dev/null and b/files/assets/CHRISTMAS/images/backgrounds/solarpunk/11.webp differ
diff --git a/files/assets/CHRISTMAS/images/backgrounds/solarpunk/12.webp b/files/assets/CHRISTMAS/images/backgrounds/solarpunk/12.webp
new file mode 100644
index 000000000..9b963a20a
Binary files /dev/null and b/files/assets/CHRISTMAS/images/backgrounds/solarpunk/12.webp differ
diff --git a/files/assets/CHRISTMAS/images/backgrounds/solarpunk/13.webp b/files/assets/CHRISTMAS/images/backgrounds/solarpunk/13.webp
new file mode 100644
index 000000000..18ce1660e
Binary files /dev/null and b/files/assets/CHRISTMAS/images/backgrounds/solarpunk/13.webp differ
diff --git a/files/assets/CHRISTMAS/images/backgrounds/solarpunk/14.webp b/files/assets/CHRISTMAS/images/backgrounds/solarpunk/14.webp
new file mode 100644
index 000000000..da26e3b1a
Binary files /dev/null and b/files/assets/CHRISTMAS/images/backgrounds/solarpunk/14.webp differ
diff --git a/files/assets/CHRISTMAS/images/backgrounds/solarpunk/15.webp b/files/assets/CHRISTMAS/images/backgrounds/solarpunk/15.webp
new file mode 100644
index 000000000..c206126b5
Binary files /dev/null and b/files/assets/CHRISTMAS/images/backgrounds/solarpunk/15.webp differ
diff --git a/files/assets/CHRISTMAS/images/backgrounds/solarpunk/16.webp b/files/assets/CHRISTMAS/images/backgrounds/solarpunk/16.webp
new file mode 100644
index 000000000..4533abcc7
Binary files /dev/null and b/files/assets/CHRISTMAS/images/backgrounds/solarpunk/16.webp differ
diff --git a/files/assets/CHRISTMAS/images/backgrounds/solarpunk/17.webp b/files/assets/CHRISTMAS/images/backgrounds/solarpunk/17.webp
new file mode 100644
index 000000000..aeab1c067
Binary files /dev/null and b/files/assets/CHRISTMAS/images/backgrounds/solarpunk/17.webp differ
diff --git a/files/assets/CHRISTMAS/images/backgrounds/solarpunk/18.webp b/files/assets/CHRISTMAS/images/backgrounds/solarpunk/18.webp
new file mode 100644
index 000000000..7cf102b7a
Binary files /dev/null and b/files/assets/CHRISTMAS/images/backgrounds/solarpunk/18.webp differ
diff --git a/files/assets/CHRISTMAS/images/backgrounds/solarpunk/19.webp b/files/assets/CHRISTMAS/images/backgrounds/solarpunk/19.webp
new file mode 100644
index 000000000..f694c95a3
Binary files /dev/null and b/files/assets/CHRISTMAS/images/backgrounds/solarpunk/19.webp differ
diff --git a/files/assets/CHRISTMAS/images/backgrounds/solarpunk/2.webp b/files/assets/CHRISTMAS/images/backgrounds/solarpunk/2.webp
new file mode 100644
index 000000000..3af7b4afe
Binary files /dev/null and b/files/assets/CHRISTMAS/images/backgrounds/solarpunk/2.webp differ
diff --git a/files/assets/CHRISTMAS/images/backgrounds/solarpunk/3.webp b/files/assets/CHRISTMAS/images/backgrounds/solarpunk/3.webp
new file mode 100644
index 000000000..8afb90b0c
Binary files /dev/null and b/files/assets/CHRISTMAS/images/backgrounds/solarpunk/3.webp differ
diff --git a/files/assets/CHRISTMAS/images/backgrounds/solarpunk/4.webp b/files/assets/CHRISTMAS/images/backgrounds/solarpunk/4.webp
new file mode 100644
index 000000000..0d0ae1f41
Binary files /dev/null and b/files/assets/CHRISTMAS/images/backgrounds/solarpunk/4.webp differ
diff --git a/files/assets/CHRISTMAS/images/backgrounds/solarpunk/5.webp b/files/assets/CHRISTMAS/images/backgrounds/solarpunk/5.webp
new file mode 100644
index 000000000..909e71c47
Binary files /dev/null and b/files/assets/CHRISTMAS/images/backgrounds/solarpunk/5.webp differ
diff --git a/files/assets/CHRISTMAS/images/backgrounds/solarpunk/6.webp b/files/assets/CHRISTMAS/images/backgrounds/solarpunk/6.webp
new file mode 100644
index 000000000..5ceb403e1
Binary files /dev/null and b/files/assets/CHRISTMAS/images/backgrounds/solarpunk/6.webp differ
diff --git a/files/assets/CHRISTMAS/images/backgrounds/solarpunk/7.webp b/files/assets/CHRISTMAS/images/backgrounds/solarpunk/7.webp
new file mode 100644
index 000000000..c6eb57339
Binary files /dev/null and b/files/assets/CHRISTMAS/images/backgrounds/solarpunk/7.webp differ
diff --git a/files/assets/CHRISTMAS/images/backgrounds/solarpunk/8.webp b/files/assets/CHRISTMAS/images/backgrounds/solarpunk/8.webp
new file mode 100644
index 000000000..6bdfd94e4
Binary files /dev/null and b/files/assets/CHRISTMAS/images/backgrounds/solarpunk/8.webp differ
diff --git a/files/assets/CHRISTMAS/images/backgrounds/solarpunk/9.webp b/files/assets/CHRISTMAS/images/backgrounds/solarpunk/9.webp
new file mode 100644
index 000000000..f2ba74ab6
Binary files /dev/null and b/files/assets/CHRISTMAS/images/backgrounds/solarpunk/9.webp differ
diff --git a/files/assets/CHRISTMAS/images/badges/2021 Spooooooky Marsey Artist.webp b/files/assets/CHRISTMAS/images/badges/2021 Spooooooky Marsey Artist.webp
new file mode 100644
index 000000000..76fed6f6f
Binary files /dev/null and b/files/assets/CHRISTMAS/images/badges/2021 Spooooooky Marsey Artist.webp differ
diff --git a/files/assets/CHRISTMAS/images/badges/All-Seeing Eye.webp b/files/assets/CHRISTMAS/images/badges/All-Seeing Eye.webp
new file mode 100644
index 000000000..aa197ddd5
Binary files /dev/null and b/files/assets/CHRISTMAS/images/badges/All-Seeing Eye.webp differ
diff --git a/files/assets/CHRISTMAS/images/badges/Alpha User.webp b/files/assets/CHRISTMAS/images/badges/Alpha User.webp
new file mode 100644
index 000000000..cac573e19
Binary files /dev/null and b/files/assets/CHRISTMAS/images/badges/Alpha User.webp differ
diff --git a/files/assets/CHRISTMAS/images/badges/Alt-Seeing Eye.webp b/files/assets/CHRISTMAS/images/badges/Alt-Seeing Eye.webp
new file mode 100644
index 000000000..d9f1566a9
Binary files /dev/null and b/files/assets/CHRISTMAS/images/badges/Alt-Seeing Eye.webp differ
diff --git a/files/assets/CHRISTMAS/images/badges/Artisan.webp b/files/assets/CHRISTMAS/images/badges/Artisan.webp
new file mode 100644
index 000000000..c525fb81a
Binary files /dev/null and b/files/assets/CHRISTMAS/images/badges/Artisan.webp differ
diff --git a/files/assets/CHRISTMAS/images/badges/Artist Laureate.webp b/files/assets/CHRISTMAS/images/badges/Artist Laureate.webp
new file mode 100644
index 000000000..8d9ff99c2
Binary files /dev/null and b/files/assets/CHRISTMAS/images/badges/Artist Laureate.webp differ
diff --git a/files/assets/CHRISTMAS/images/badges/Balls.webp b/files/assets/CHRISTMAS/images/badges/Balls.webp
new file mode 100644
index 000000000..b25491c70
Binary files /dev/null and b/files/assets/CHRISTMAS/images/badges/Balls.webp differ
diff --git a/files/assets/CHRISTMAS/images/badges/Beta User.webp b/files/assets/CHRISTMAS/images/badges/Beta User.webp
new file mode 100644
index 000000000..15e142433
Binary files /dev/null and b/files/assets/CHRISTMAS/images/badges/Beta User.webp differ
diff --git a/files/assets/CHRISTMAS/images/badges/Big Big Big Spender.webp b/files/assets/CHRISTMAS/images/badges/Big Big Big Spender.webp
new file mode 100644
index 000000000..15e2bc6ca
Binary files /dev/null and b/files/assets/CHRISTMAS/images/badges/Big Big Big Spender.webp differ
diff --git a/files/assets/CHRISTMAS/images/badges/Big Big Spender.webp b/files/assets/CHRISTMAS/images/badges/Big Big Spender.webp
new file mode 100644
index 000000000..8ba58149c
Binary files /dev/null and b/files/assets/CHRISTMAS/images/badges/Big Big Spender.webp differ
diff --git a/files/assets/CHRISTMAS/images/badges/Big Spender.webp b/files/assets/CHRISTMAS/images/badges/Big Spender.webp
new file mode 100644
index 000000000..545a07ad1
Binary files /dev/null and b/files/assets/CHRISTMAS/images/badges/Big Spender.webp differ
diff --git a/files/assets/CHRISTMAS/images/badges/Bronze Recruiter.webp b/files/assets/CHRISTMAS/images/badges/Bronze Recruiter.webp
new file mode 100644
index 000000000..5d6ef88a5
Binary files /dev/null and b/files/assets/CHRISTMAS/images/badges/Bronze Recruiter.webp differ
diff --git a/files/assets/CHRISTMAS/images/badges/Bug Finder.webp b/files/assets/CHRISTMAS/images/badges/Bug Finder.webp
new file mode 100644
index 000000000..b4614d368
Binary files /dev/null and b/files/assets/CHRISTMAS/images/badges/Bug Finder.webp differ
diff --git a/files/assets/CHRISTMAS/images/badges/Code Contributor.webp b/files/assets/CHRISTMAS/images/badges/Code Contributor.webp
new file mode 100644
index 000000000..499074e1e
Binary files /dev/null and b/files/assets/CHRISTMAS/images/badges/Code Contributor.webp differ
diff --git a/files/assets/CHRISTMAS/images/badges/Diamond Recruiter.webp b/files/assets/CHRISTMAS/images/badges/Diamond Recruiter.webp
new file mode 100644
index 000000000..90590bee1
Binary files /dev/null and b/files/assets/CHRISTMAS/images/badges/Diamond Recruiter.webp differ
diff --git a/files/assets/CHRISTMAS/images/badges/Dinner.webp b/files/assets/CHRISTMAS/images/badges/Dinner.webp
new file mode 100644
index 000000000..62fd3516f
Binary files /dev/null and b/files/assets/CHRISTMAS/images/badges/Dinner.webp differ
diff --git a/files/assets/CHRISTMAS/images/badges/Gold Recruiter.webp b/files/assets/CHRISTMAS/images/badges/Gold Recruiter.webp
new file mode 100644
index 000000000..db17ca751
Binary files /dev/null and b/files/assets/CHRISTMAS/images/badges/Gold Recruiter.webp differ
diff --git a/files/assets/CHRISTMAS/images/badges/Grass Toucher.webp b/files/assets/CHRISTMAS/images/badges/Grass Toucher.webp
new file mode 100644
index 000000000..692d911be
Binary files /dev/null and b/files/assets/CHRISTMAS/images/badges/Grass Toucher.webp differ
diff --git a/files/assets/CHRISTMAS/images/badges/Grinch.webp b/files/assets/CHRISTMAS/images/badges/Grinch.webp
new file mode 100644
index 000000000..b936e7a5c
Binary files /dev/null and b/files/assets/CHRISTMAS/images/badges/Grinch.webp differ
diff --git a/files/assets/CHRISTMAS/images/badges/Halloween 21.webp b/files/assets/CHRISTMAS/images/badges/Halloween 21.webp
new file mode 100644
index 000000000..91296a64f
Binary files /dev/null and b/files/assets/CHRISTMAS/images/badges/Halloween 21.webp differ
diff --git a/files/assets/CHRISTMAS/images/badges/High Roller.webp b/files/assets/CHRISTMAS/images/badges/High Roller.webp
new file mode 100644
index 000000000..082ed42c3
Binary files /dev/null and b/files/assets/CHRISTMAS/images/badges/High Roller.webp differ
diff --git a/files/assets/CHRISTMAS/images/badges/Holly Jolly Marsey Artist.webp b/files/assets/CHRISTMAS/images/badges/Holly Jolly Marsey Artist.webp
new file mode 100644
index 000000000..e3b00c979
Binary files /dev/null and b/files/assets/CHRISTMAS/images/badges/Holly Jolly Marsey Artist.webp differ
diff --git a/files/assets/CHRISTMAS/images/badges/Idea Maker.webp b/files/assets/CHRISTMAS/images/badges/Idea Maker.webp
new file mode 100644
index 000000000..4a1523933
Binary files /dev/null and b/files/assets/CHRISTMAS/images/badges/Idea Maker.webp differ
diff --git a/files/assets/CHRISTMAS/images/badges/Lab Rat.webp b/files/assets/CHRISTMAS/images/badges/Lab Rat.webp
new file mode 100644
index 000000000..532d1fd6a
Binary files /dev/null and b/files/assets/CHRISTMAS/images/badges/Lab Rat.webp differ
diff --git a/files/assets/CHRISTMAS/images/badges/Landchad.webp b/files/assets/CHRISTMAS/images/badges/Landchad.webp
new file mode 100644
index 000000000..6b07327b5
Binary files /dev/null and b/files/assets/CHRISTMAS/images/badges/Landchad.webp differ
diff --git a/files/assets/CHRISTMAS/images/badges/Le Rich Gentlesir.webp b/files/assets/CHRISTMAS/images/badges/Le Rich Gentlesir.webp
new file mode 100644
index 000000000..e0329b0cf
Binary files /dev/null and b/files/assets/CHRISTMAS/images/badges/Le Rich Gentlesir.webp differ
diff --git a/files/assets/CHRISTMAS/images/badges/Little Big Spender.webp b/files/assets/CHRISTMAS/images/badges/Little Big Spender.webp
new file mode 100644
index 000000000..d1f5884be
Binary files /dev/null and b/files/assets/CHRISTMAS/images/badges/Little Big Spender.webp differ
diff --git a/files/assets/CHRISTMAS/images/badges/Low Roller.webp b/files/assets/CHRISTMAS/images/badges/Low Roller.webp
new file mode 100644
index 000000000..deabcddd3
Binary files /dev/null and b/files/assets/CHRISTMAS/images/badges/Low Roller.webp differ
diff --git a/files/assets/CHRISTMAS/images/badges/Marsey Artisan.webp b/files/assets/CHRISTMAS/images/badges/Marsey Artisan.webp
new file mode 100644
index 000000000..06822345f
Binary files /dev/null and b/files/assets/CHRISTMAS/images/badges/Marsey Artisan.webp differ
diff --git a/files/assets/CHRISTMAS/images/badges/Marsey Master.webp b/files/assets/CHRISTMAS/images/badges/Marsey Master.webp
new file mode 100644
index 000000000..eb0b897c1
Binary files /dev/null and b/files/assets/CHRISTMAS/images/badges/Marsey Master.webp differ
diff --git a/files/assets/CHRISTMAS/images/badges/Master Baiter.webp b/files/assets/CHRISTMAS/images/badges/Master Baiter.webp
new file mode 100644
index 000000000..cb76d48a5
Binary files /dev/null and b/files/assets/CHRISTMAS/images/badges/Master Baiter.webp differ
diff --git a/files/assets/CHRISTMAS/images/badges/Middle Roller.webp b/files/assets/CHRISTMAS/images/badges/Middle Roller.webp
new file mode 100644
index 000000000..f09449141
Binary files /dev/null and b/files/assets/CHRISTMAS/images/badges/Middle Roller.webp differ
diff --git a/files/assets/CHRISTMAS/images/badges/Patron of the Arts.webp b/files/assets/CHRISTMAS/images/badges/Patron of the Arts.webp
new file mode 100644
index 000000000..016d87e0a
Binary files /dev/null and b/files/assets/CHRISTMAS/images/badges/Patron of the Arts.webp differ
diff --git a/files/assets/CHRISTMAS/images/badges/Pause Button.webp b/files/assets/CHRISTMAS/images/badges/Pause Button.webp
new file mode 100644
index 000000000..b1f940d01
Binary files /dev/null and b/files/assets/CHRISTMAS/images/badges/Pause Button.webp differ
diff --git a/files/assets/CHRISTMAS/images/badges/Paypig.webp b/files/assets/CHRISTMAS/images/badges/Paypig.webp
new file mode 100644
index 000000000..7705b5945
Binary files /dev/null and b/files/assets/CHRISTMAS/images/badges/Paypig.webp differ
diff --git a/files/assets/CHRISTMAS/images/badges/Renthog.webp b/files/assets/CHRISTMAS/images/badges/Renthog.webp
new file mode 100644
index 000000000..80f499dd0
Binary files /dev/null and b/files/assets/CHRISTMAS/images/badges/Renthog.webp differ
diff --git a/files/assets/CHRISTMAS/images/badges/Rich Bich.webp b/files/assets/CHRISTMAS/images/badges/Rich Bich.webp
new file mode 100644
index 000000000..cfec38cfd
Binary files /dev/null and b/files/assets/CHRISTMAS/images/badges/Rich Bich.webp differ
diff --git a/files/assets/CHRISTMAS/images/badges/Sigma User.webp b/files/assets/CHRISTMAS/images/badges/Sigma User.webp
new file mode 100644
index 000000000..1c56a9e93
Binary files /dev/null and b/files/assets/CHRISTMAS/images/badges/Sigma User.webp differ
diff --git a/files/assets/CHRISTMAS/images/badges/Silver Recruiter.webp b/files/assets/CHRISTMAS/images/badges/Silver Recruiter.webp
new file mode 100644
index 000000000..baf87b2b6
Binary files /dev/null and b/files/assets/CHRISTMAS/images/badges/Silver Recruiter.webp differ
diff --git a/files/assets/CHRISTMAS/images/badges/Sk8r Boi.webp b/files/assets/CHRISTMAS/images/badges/Sk8r Boi.webp
new file mode 100644
index 000000000..b342eb9aa
Binary files /dev/null and b/files/assets/CHRISTMAS/images/badges/Sk8r Boi.webp differ
diff --git a/files/assets/CHRISTMAS/images/badges/Terminally online turboautist.webp b/files/assets/CHRISTMAS/images/badges/Terminally online turboautist.webp
new file mode 100644
index 000000000..c42018597
Binary files /dev/null and b/files/assets/CHRISTMAS/images/badges/Terminally online turboautist.webp differ
diff --git a/files/assets/CHRISTMAS/images/badges/The Other Kind Of Good Journalist.webp b/files/assets/CHRISTMAS/images/badges/The Other Kind Of Good Journalist.webp
new file mode 100644
index 000000000..e2a862122
Binary files /dev/null and b/files/assets/CHRISTMAS/images/badges/The Other Kind Of Good Journalist.webp differ
diff --git a/files/assets/CHRISTMAS/images/badges/Unblockable.webp b/files/assets/CHRISTMAS/images/badges/Unblockable.webp
new file mode 100644
index 000000000..150f1724c
Binary files /dev/null and b/files/assets/CHRISTMAS/images/badges/Unblockable.webp differ
diff --git a/files/assets/CHRISTMAS/images/badges/Unironically Retarded.webp b/files/assets/CHRISTMAS/images/badges/Unironically Retarded.webp
new file mode 100644
index 000000000..5e71f73cd
Binary files /dev/null and b/files/assets/CHRISTMAS/images/badges/Unironically Retarded.webp differ
diff --git a/files/assets/CHRISTMAS/images/badges/Verified Email.webp b/files/assets/CHRISTMAS/images/badges/Verified Email.webp
new file mode 100644
index 000000000..f9d4524f4
Binary files /dev/null and b/files/assets/CHRISTMAS/images/badges/Verified Email.webp differ
diff --git a/files/assets/CHRISTMAS/images/badges/White Hat.webp b/files/assets/CHRISTMAS/images/badges/White Hat.webp
new file mode 100644
index 000000000..77b30ca2f
Binary files /dev/null and b/files/assets/CHRISTMAS/images/badges/White Hat.webp differ
diff --git a/files/assets/CHRISTMAS/images/badges/agendaposter.webp b/files/assets/CHRISTMAS/images/badges/agendaposter.webp
new file mode 100644
index 000000000..a0ced368e
Binary files /dev/null and b/files/assets/CHRISTMAS/images/badges/agendaposter.webp differ
diff --git a/files/assets/CHRISTMAS/images/badges/background.webp b/files/assets/CHRISTMAS/images/badges/background.webp
new file mode 100644
index 000000000..753949e50
Binary files /dev/null and b/files/assets/CHRISTMAS/images/badges/background.webp differ
diff --git a/files/assets/CHRISTMAS/images/badges/fish.webp b/files/assets/CHRISTMAS/images/badges/fish.webp
new file mode 100644
index 000000000..75cade352
Binary files /dev/null and b/files/assets/CHRISTMAS/images/badges/fish.webp differ
diff --git a/files/assets/CHRISTMAS/images/badges/lolcow.webp b/files/assets/CHRISTMAS/images/badges/lolcow.webp
new file mode 100644
index 000000000..d8b41c3ea
Binary files /dev/null and b/files/assets/CHRISTMAS/images/badges/lolcow.webp differ
diff --git a/files/assets/CHRISTMAS/images/badges/merchant.webp b/files/assets/CHRISTMAS/images/badges/merchant.webp
new file mode 100644
index 000000000..373460b30
Binary files /dev/null and b/files/assets/CHRISTMAS/images/badges/merchant.webp differ
diff --git a/files/assets/CHRISTMAS/images/badges/provider.webp b/files/assets/CHRISTMAS/images/badges/provider.webp
new file mode 100644
index 000000000..a553bd7f5
Binary files /dev/null and b/files/assets/CHRISTMAS/images/badges/provider.webp differ
diff --git a/files/assets/CHRISTMAS/images/badges/unpausable.webp b/files/assets/CHRISTMAS/images/badges/unpausable.webp
new file mode 100644
index 000000000..58853d9f9
Binary files /dev/null and b/files/assets/CHRISTMAS/images/badges/unpausable.webp differ
diff --git a/files/assets/CHRISTMAS/images/default-profile-pic.webp b/files/assets/CHRISTMAS/images/default-profile-pic.webp
new file mode 100644
index 000000000..7392ce645
Binary files /dev/null and b/files/assets/CHRISTMAS/images/default-profile-pic.webp differ
diff --git a/files/assets/CHRISTMAS/images/default_thumb_link.webp b/files/assets/CHRISTMAS/images/default_thumb_link.webp
new file mode 100644
index 000000000..b24586a50
Binary files /dev/null and b/files/assets/CHRISTMAS/images/default_thumb_link.webp differ
diff --git a/files/assets/CHRISTMAS/images/default_thumb_yt.webp b/files/assets/CHRISTMAS/images/default_thumb_yt.webp
new file mode 100644
index 000000000..b20adfef5
Binary files /dev/null and b/files/assets/CHRISTMAS/images/default_thumb_yt.webp differ
diff --git a/files/assets/CHRISTMAS/images/defaultpictures/1.webp b/files/assets/CHRISTMAS/images/defaultpictures/1.webp
new file mode 100644
index 000000000..3db0a96fb
Binary files /dev/null and b/files/assets/CHRISTMAS/images/defaultpictures/1.webp differ
diff --git a/files/assets/CHRISTMAS/images/defaultpictures/10.webp b/files/assets/CHRISTMAS/images/defaultpictures/10.webp
new file mode 100644
index 000000000..363adb9c5
Binary files /dev/null and b/files/assets/CHRISTMAS/images/defaultpictures/10.webp differ
diff --git a/files/assets/CHRISTMAS/images/defaultpictures/100.webp b/files/assets/CHRISTMAS/images/defaultpictures/100.webp
new file mode 100644
index 000000000..5260df0ff
Binary files /dev/null and b/files/assets/CHRISTMAS/images/defaultpictures/100.webp differ
diff --git a/files/assets/CHRISTMAS/images/defaultpictures/101.webp b/files/assets/CHRISTMAS/images/defaultpictures/101.webp
new file mode 100644
index 000000000..77245529d
Binary files /dev/null and b/files/assets/CHRISTMAS/images/defaultpictures/101.webp differ
diff --git a/files/assets/CHRISTMAS/images/defaultpictures/102.webp b/files/assets/CHRISTMAS/images/defaultpictures/102.webp
new file mode 100644
index 000000000..be33d8f9f
Binary files /dev/null and b/files/assets/CHRISTMAS/images/defaultpictures/102.webp differ
diff --git a/files/assets/CHRISTMAS/images/defaultpictures/103.webp b/files/assets/CHRISTMAS/images/defaultpictures/103.webp
new file mode 100644
index 000000000..60b6ab855
Binary files /dev/null and b/files/assets/CHRISTMAS/images/defaultpictures/103.webp differ
diff --git a/files/assets/CHRISTMAS/images/defaultpictures/104.webp b/files/assets/CHRISTMAS/images/defaultpictures/104.webp
new file mode 100644
index 000000000..02b5a27c3
Binary files /dev/null and b/files/assets/CHRISTMAS/images/defaultpictures/104.webp differ
diff --git a/files/assets/CHRISTMAS/images/defaultpictures/105.webp b/files/assets/CHRISTMAS/images/defaultpictures/105.webp
new file mode 100644
index 000000000..006cf79db
Binary files /dev/null and b/files/assets/CHRISTMAS/images/defaultpictures/105.webp differ
diff --git a/files/assets/CHRISTMAS/images/defaultpictures/106.webp b/files/assets/CHRISTMAS/images/defaultpictures/106.webp
new file mode 100644
index 000000000..0a0968b55
Binary files /dev/null and b/files/assets/CHRISTMAS/images/defaultpictures/106.webp differ
diff --git a/files/assets/CHRISTMAS/images/defaultpictures/107.webp b/files/assets/CHRISTMAS/images/defaultpictures/107.webp
new file mode 100644
index 000000000..843e55b13
Binary files /dev/null and b/files/assets/CHRISTMAS/images/defaultpictures/107.webp differ
diff --git a/files/assets/CHRISTMAS/images/defaultpictures/108.webp b/files/assets/CHRISTMAS/images/defaultpictures/108.webp
new file mode 100644
index 000000000..6d60ecab4
Binary files /dev/null and b/files/assets/CHRISTMAS/images/defaultpictures/108.webp differ
diff --git a/files/assets/CHRISTMAS/images/defaultpictures/109.webp b/files/assets/CHRISTMAS/images/defaultpictures/109.webp
new file mode 100644
index 000000000..d02de58e8
Binary files /dev/null and b/files/assets/CHRISTMAS/images/defaultpictures/109.webp differ
diff --git a/files/assets/CHRISTMAS/images/defaultpictures/11.webp b/files/assets/CHRISTMAS/images/defaultpictures/11.webp
new file mode 100644
index 000000000..f975e6fdf
Binary files /dev/null and b/files/assets/CHRISTMAS/images/defaultpictures/11.webp differ
diff --git a/files/assets/CHRISTMAS/images/defaultpictures/110.webp b/files/assets/CHRISTMAS/images/defaultpictures/110.webp
new file mode 100644
index 000000000..4e4c307fa
Binary files /dev/null and b/files/assets/CHRISTMAS/images/defaultpictures/110.webp differ
diff --git a/files/assets/CHRISTMAS/images/defaultpictures/111.webp b/files/assets/CHRISTMAS/images/defaultpictures/111.webp
new file mode 100644
index 000000000..b0831ddb3
Binary files /dev/null and b/files/assets/CHRISTMAS/images/defaultpictures/111.webp differ
diff --git a/files/assets/CHRISTMAS/images/defaultpictures/112.webp b/files/assets/CHRISTMAS/images/defaultpictures/112.webp
new file mode 100644
index 000000000..f85a364d0
Binary files /dev/null and b/files/assets/CHRISTMAS/images/defaultpictures/112.webp differ
diff --git a/files/assets/CHRISTMAS/images/defaultpictures/113.webp b/files/assets/CHRISTMAS/images/defaultpictures/113.webp
new file mode 100644
index 000000000..5b6adbc7d
Binary files /dev/null and b/files/assets/CHRISTMAS/images/defaultpictures/113.webp differ
diff --git a/files/assets/CHRISTMAS/images/defaultpictures/114.webp b/files/assets/CHRISTMAS/images/defaultpictures/114.webp
new file mode 100644
index 000000000..0ded5d53a
Binary files /dev/null and b/files/assets/CHRISTMAS/images/defaultpictures/114.webp differ
diff --git a/files/assets/CHRISTMAS/images/defaultpictures/115.webp b/files/assets/CHRISTMAS/images/defaultpictures/115.webp
new file mode 100644
index 000000000..2b0410b0e
Binary files /dev/null and b/files/assets/CHRISTMAS/images/defaultpictures/115.webp differ
diff --git a/files/assets/CHRISTMAS/images/defaultpictures/116.webp b/files/assets/CHRISTMAS/images/defaultpictures/116.webp
new file mode 100644
index 000000000..7caea0303
Binary files /dev/null and b/files/assets/CHRISTMAS/images/defaultpictures/116.webp differ
diff --git a/files/assets/CHRISTMAS/images/defaultpictures/117.webp b/files/assets/CHRISTMAS/images/defaultpictures/117.webp
new file mode 100644
index 000000000..1959d67b0
Binary files /dev/null and b/files/assets/CHRISTMAS/images/defaultpictures/117.webp differ
diff --git a/files/assets/CHRISTMAS/images/defaultpictures/118.webp b/files/assets/CHRISTMAS/images/defaultpictures/118.webp
new file mode 100644
index 000000000..a82d533da
Binary files /dev/null and b/files/assets/CHRISTMAS/images/defaultpictures/118.webp differ
diff --git a/files/assets/CHRISTMAS/images/defaultpictures/119.webp b/files/assets/CHRISTMAS/images/defaultpictures/119.webp
new file mode 100644
index 000000000..c1e0d0bcc
Binary files /dev/null and b/files/assets/CHRISTMAS/images/defaultpictures/119.webp differ
diff --git a/files/assets/CHRISTMAS/images/defaultpictures/12.webp b/files/assets/CHRISTMAS/images/defaultpictures/12.webp
new file mode 100644
index 000000000..8f84f6b68
Binary files /dev/null and b/files/assets/CHRISTMAS/images/defaultpictures/12.webp differ
diff --git a/files/assets/CHRISTMAS/images/defaultpictures/120.webp b/files/assets/CHRISTMAS/images/defaultpictures/120.webp
new file mode 100644
index 000000000..a50074a74
Binary files /dev/null and b/files/assets/CHRISTMAS/images/defaultpictures/120.webp differ
diff --git a/files/assets/CHRISTMAS/images/defaultpictures/121.webp b/files/assets/CHRISTMAS/images/defaultpictures/121.webp
new file mode 100644
index 000000000..fb11b90f0
Binary files /dev/null and b/files/assets/CHRISTMAS/images/defaultpictures/121.webp differ
diff --git a/files/assets/CHRISTMAS/images/defaultpictures/122.webp b/files/assets/CHRISTMAS/images/defaultpictures/122.webp
new file mode 100644
index 000000000..671faa6be
Binary files /dev/null and b/files/assets/CHRISTMAS/images/defaultpictures/122.webp differ
diff --git a/files/assets/CHRISTMAS/images/defaultpictures/123.webp b/files/assets/CHRISTMAS/images/defaultpictures/123.webp
new file mode 100644
index 000000000..e042e7837
Binary files /dev/null and b/files/assets/CHRISTMAS/images/defaultpictures/123.webp differ
diff --git a/files/assets/CHRISTMAS/images/defaultpictures/124.webp b/files/assets/CHRISTMAS/images/defaultpictures/124.webp
new file mode 100644
index 000000000..da8051a3d
Binary files /dev/null and b/files/assets/CHRISTMAS/images/defaultpictures/124.webp differ
diff --git a/files/assets/CHRISTMAS/images/defaultpictures/125.webp b/files/assets/CHRISTMAS/images/defaultpictures/125.webp
new file mode 100644
index 000000000..fd2cda082
Binary files /dev/null and b/files/assets/CHRISTMAS/images/defaultpictures/125.webp differ
diff --git a/files/assets/CHRISTMAS/images/defaultpictures/126.webp b/files/assets/CHRISTMAS/images/defaultpictures/126.webp
new file mode 100644
index 000000000..1869749bc
Binary files /dev/null and b/files/assets/CHRISTMAS/images/defaultpictures/126.webp differ
diff --git a/files/assets/CHRISTMAS/images/defaultpictures/127.webp b/files/assets/CHRISTMAS/images/defaultpictures/127.webp
new file mode 100644
index 000000000..f7bf50e3c
Binary files /dev/null and b/files/assets/CHRISTMAS/images/defaultpictures/127.webp differ
diff --git a/files/assets/CHRISTMAS/images/defaultpictures/128.webp b/files/assets/CHRISTMAS/images/defaultpictures/128.webp
new file mode 100644
index 000000000..6a622cf27
Binary files /dev/null and b/files/assets/CHRISTMAS/images/defaultpictures/128.webp differ
diff --git a/files/assets/CHRISTMAS/images/defaultpictures/129.webp b/files/assets/CHRISTMAS/images/defaultpictures/129.webp
new file mode 100644
index 000000000..acf93c155
Binary files /dev/null and b/files/assets/CHRISTMAS/images/defaultpictures/129.webp differ
diff --git a/files/assets/CHRISTMAS/images/defaultpictures/13.webp b/files/assets/CHRISTMAS/images/defaultpictures/13.webp
new file mode 100644
index 000000000..911d2d81c
Binary files /dev/null and b/files/assets/CHRISTMAS/images/defaultpictures/13.webp differ
diff --git a/files/assets/CHRISTMAS/images/defaultpictures/130.webp b/files/assets/CHRISTMAS/images/defaultpictures/130.webp
new file mode 100644
index 000000000..e8855f691
Binary files /dev/null and b/files/assets/CHRISTMAS/images/defaultpictures/130.webp differ
diff --git a/files/assets/CHRISTMAS/images/defaultpictures/131.webp b/files/assets/CHRISTMAS/images/defaultpictures/131.webp
new file mode 100644
index 000000000..8a3a42423
Binary files /dev/null and b/files/assets/CHRISTMAS/images/defaultpictures/131.webp differ
diff --git a/files/assets/CHRISTMAS/images/defaultpictures/132.webp b/files/assets/CHRISTMAS/images/defaultpictures/132.webp
new file mode 100644
index 000000000..03f27ae69
Binary files /dev/null and b/files/assets/CHRISTMAS/images/defaultpictures/132.webp differ
diff --git a/files/assets/CHRISTMAS/images/defaultpictures/133.webp b/files/assets/CHRISTMAS/images/defaultpictures/133.webp
new file mode 100644
index 000000000..fd95a221c
Binary files /dev/null and b/files/assets/CHRISTMAS/images/defaultpictures/133.webp differ
diff --git a/files/assets/CHRISTMAS/images/defaultpictures/134.webp b/files/assets/CHRISTMAS/images/defaultpictures/134.webp
new file mode 100644
index 000000000..60c1ecfe2
Binary files /dev/null and b/files/assets/CHRISTMAS/images/defaultpictures/134.webp differ
diff --git a/files/assets/CHRISTMAS/images/defaultpictures/135.webp b/files/assets/CHRISTMAS/images/defaultpictures/135.webp
new file mode 100644
index 000000000..2ec803381
Binary files /dev/null and b/files/assets/CHRISTMAS/images/defaultpictures/135.webp differ
diff --git a/files/assets/CHRISTMAS/images/defaultpictures/136.webp b/files/assets/CHRISTMAS/images/defaultpictures/136.webp
new file mode 100644
index 000000000..f485b70cd
Binary files /dev/null and b/files/assets/CHRISTMAS/images/defaultpictures/136.webp differ
diff --git a/files/assets/CHRISTMAS/images/defaultpictures/137.webp b/files/assets/CHRISTMAS/images/defaultpictures/137.webp
new file mode 100644
index 000000000..e33f95fc1
Binary files /dev/null and b/files/assets/CHRISTMAS/images/defaultpictures/137.webp differ
diff --git a/files/assets/CHRISTMAS/images/defaultpictures/138.webp b/files/assets/CHRISTMAS/images/defaultpictures/138.webp
new file mode 100644
index 000000000..d1304c2c2
Binary files /dev/null and b/files/assets/CHRISTMAS/images/defaultpictures/138.webp differ
diff --git a/files/assets/CHRISTMAS/images/defaultpictures/139.webp b/files/assets/CHRISTMAS/images/defaultpictures/139.webp
new file mode 100644
index 000000000..b93f38842
Binary files /dev/null and b/files/assets/CHRISTMAS/images/defaultpictures/139.webp differ
diff --git a/files/assets/CHRISTMAS/images/defaultpictures/14.webp b/files/assets/CHRISTMAS/images/defaultpictures/14.webp
new file mode 100644
index 000000000..6d595c62f
Binary files /dev/null and b/files/assets/CHRISTMAS/images/defaultpictures/14.webp differ
diff --git a/files/assets/CHRISTMAS/images/defaultpictures/140.webp b/files/assets/CHRISTMAS/images/defaultpictures/140.webp
new file mode 100644
index 000000000..4ea4f74d0
Binary files /dev/null and b/files/assets/CHRISTMAS/images/defaultpictures/140.webp differ
diff --git a/files/assets/CHRISTMAS/images/defaultpictures/141.webp b/files/assets/CHRISTMAS/images/defaultpictures/141.webp
new file mode 100644
index 000000000..630b5e34c
Binary files /dev/null and b/files/assets/CHRISTMAS/images/defaultpictures/141.webp differ
diff --git a/files/assets/CHRISTMAS/images/defaultpictures/142.webp b/files/assets/CHRISTMAS/images/defaultpictures/142.webp
new file mode 100644
index 000000000..8b6728e2b
Binary files /dev/null and b/files/assets/CHRISTMAS/images/defaultpictures/142.webp differ
diff --git a/files/assets/CHRISTMAS/images/defaultpictures/143.webp b/files/assets/CHRISTMAS/images/defaultpictures/143.webp
new file mode 100644
index 000000000..a569a8223
Binary files /dev/null and b/files/assets/CHRISTMAS/images/defaultpictures/143.webp differ
diff --git a/files/assets/CHRISTMAS/images/defaultpictures/144.webp b/files/assets/CHRISTMAS/images/defaultpictures/144.webp
new file mode 100644
index 000000000..fcc616272
Binary files /dev/null and b/files/assets/CHRISTMAS/images/defaultpictures/144.webp differ
diff --git a/files/assets/CHRISTMAS/images/defaultpictures/145.webp b/files/assets/CHRISTMAS/images/defaultpictures/145.webp
new file mode 100644
index 000000000..6111b9155
Binary files /dev/null and b/files/assets/CHRISTMAS/images/defaultpictures/145.webp differ
diff --git a/files/assets/CHRISTMAS/images/defaultpictures/146.webp b/files/assets/CHRISTMAS/images/defaultpictures/146.webp
new file mode 100644
index 000000000..b192ecdfc
Binary files /dev/null and b/files/assets/CHRISTMAS/images/defaultpictures/146.webp differ
diff --git a/files/assets/CHRISTMAS/images/defaultpictures/147.webp b/files/assets/CHRISTMAS/images/defaultpictures/147.webp
new file mode 100644
index 000000000..357061abb
Binary files /dev/null and b/files/assets/CHRISTMAS/images/defaultpictures/147.webp differ
diff --git a/files/assets/CHRISTMAS/images/defaultpictures/148.webp b/files/assets/CHRISTMAS/images/defaultpictures/148.webp
new file mode 100644
index 000000000..4663f0c2a
Binary files /dev/null and b/files/assets/CHRISTMAS/images/defaultpictures/148.webp differ
diff --git a/files/assets/CHRISTMAS/images/defaultpictures/149.webp b/files/assets/CHRISTMAS/images/defaultpictures/149.webp
new file mode 100644
index 000000000..a3246aba8
Binary files /dev/null and b/files/assets/CHRISTMAS/images/defaultpictures/149.webp differ
diff --git a/files/assets/CHRISTMAS/images/defaultpictures/15.webp b/files/assets/CHRISTMAS/images/defaultpictures/15.webp
new file mode 100644
index 000000000..ac1c3817d
Binary files /dev/null and b/files/assets/CHRISTMAS/images/defaultpictures/15.webp differ
diff --git a/files/assets/CHRISTMAS/images/defaultpictures/150.webp b/files/assets/CHRISTMAS/images/defaultpictures/150.webp
new file mode 100644
index 000000000..100731d43
Binary files /dev/null and b/files/assets/CHRISTMAS/images/defaultpictures/150.webp differ
diff --git a/files/assets/CHRISTMAS/images/defaultpictures/16.webp b/files/assets/CHRISTMAS/images/defaultpictures/16.webp
new file mode 100644
index 000000000..6a0da483f
Binary files /dev/null and b/files/assets/CHRISTMAS/images/defaultpictures/16.webp differ
diff --git a/files/assets/CHRISTMAS/images/defaultpictures/17.webp b/files/assets/CHRISTMAS/images/defaultpictures/17.webp
new file mode 100644
index 000000000..e03137c62
Binary files /dev/null and b/files/assets/CHRISTMAS/images/defaultpictures/17.webp differ
diff --git a/files/assets/CHRISTMAS/images/defaultpictures/18.webp b/files/assets/CHRISTMAS/images/defaultpictures/18.webp
new file mode 100644
index 000000000..d0a4e6cdc
Binary files /dev/null and b/files/assets/CHRISTMAS/images/defaultpictures/18.webp differ
diff --git a/files/assets/CHRISTMAS/images/defaultpictures/19.webp b/files/assets/CHRISTMAS/images/defaultpictures/19.webp
new file mode 100644
index 000000000..4fed4707f
Binary files /dev/null and b/files/assets/CHRISTMAS/images/defaultpictures/19.webp differ
diff --git a/files/assets/CHRISTMAS/images/defaultpictures/2.webp b/files/assets/CHRISTMAS/images/defaultpictures/2.webp
new file mode 100644
index 000000000..8085874f5
Binary files /dev/null and b/files/assets/CHRISTMAS/images/defaultpictures/2.webp differ
diff --git a/files/assets/CHRISTMAS/images/defaultpictures/20.webp b/files/assets/CHRISTMAS/images/defaultpictures/20.webp
new file mode 100644
index 000000000..4c7fc7727
Binary files /dev/null and b/files/assets/CHRISTMAS/images/defaultpictures/20.webp differ
diff --git a/files/assets/CHRISTMAS/images/defaultpictures/21.webp b/files/assets/CHRISTMAS/images/defaultpictures/21.webp
new file mode 100644
index 000000000..69a8aeead
Binary files /dev/null and b/files/assets/CHRISTMAS/images/defaultpictures/21.webp differ
diff --git a/files/assets/CHRISTMAS/images/defaultpictures/22.webp b/files/assets/CHRISTMAS/images/defaultpictures/22.webp
new file mode 100644
index 000000000..b7d6a8d21
Binary files /dev/null and b/files/assets/CHRISTMAS/images/defaultpictures/22.webp differ
diff --git a/files/assets/CHRISTMAS/images/defaultpictures/23.webp b/files/assets/CHRISTMAS/images/defaultpictures/23.webp
new file mode 100644
index 000000000..98d666159
Binary files /dev/null and b/files/assets/CHRISTMAS/images/defaultpictures/23.webp differ
diff --git a/files/assets/CHRISTMAS/images/defaultpictures/24.webp b/files/assets/CHRISTMAS/images/defaultpictures/24.webp
new file mode 100644
index 000000000..ab2457148
Binary files /dev/null and b/files/assets/CHRISTMAS/images/defaultpictures/24.webp differ
diff --git a/files/assets/CHRISTMAS/images/defaultpictures/25.webp b/files/assets/CHRISTMAS/images/defaultpictures/25.webp
new file mode 100644
index 000000000..7bb8ed440
Binary files /dev/null and b/files/assets/CHRISTMAS/images/defaultpictures/25.webp differ
diff --git a/files/assets/CHRISTMAS/images/defaultpictures/26.webp b/files/assets/CHRISTMAS/images/defaultpictures/26.webp
new file mode 100644
index 000000000..436fadf65
Binary files /dev/null and b/files/assets/CHRISTMAS/images/defaultpictures/26.webp differ
diff --git a/files/assets/CHRISTMAS/images/defaultpictures/27.webp b/files/assets/CHRISTMAS/images/defaultpictures/27.webp
new file mode 100644
index 000000000..c1e32a3d0
Binary files /dev/null and b/files/assets/CHRISTMAS/images/defaultpictures/27.webp differ
diff --git a/files/assets/CHRISTMAS/images/defaultpictures/28.webp b/files/assets/CHRISTMAS/images/defaultpictures/28.webp
new file mode 100644
index 000000000..1d7f61811
Binary files /dev/null and b/files/assets/CHRISTMAS/images/defaultpictures/28.webp differ
diff --git a/files/assets/CHRISTMAS/images/defaultpictures/29.webp b/files/assets/CHRISTMAS/images/defaultpictures/29.webp
new file mode 100644
index 000000000..51eaf28bd
Binary files /dev/null and b/files/assets/CHRISTMAS/images/defaultpictures/29.webp differ
diff --git a/files/assets/CHRISTMAS/images/defaultpictures/3.webp b/files/assets/CHRISTMAS/images/defaultpictures/3.webp
new file mode 100644
index 000000000..f88de2777
Binary files /dev/null and b/files/assets/CHRISTMAS/images/defaultpictures/3.webp differ
diff --git a/files/assets/CHRISTMAS/images/defaultpictures/30.webp b/files/assets/CHRISTMAS/images/defaultpictures/30.webp
new file mode 100644
index 000000000..9f2dce3b2
Binary files /dev/null and b/files/assets/CHRISTMAS/images/defaultpictures/30.webp differ
diff --git a/files/assets/CHRISTMAS/images/defaultpictures/31.webp b/files/assets/CHRISTMAS/images/defaultpictures/31.webp
new file mode 100644
index 000000000..5b1159633
Binary files /dev/null and b/files/assets/CHRISTMAS/images/defaultpictures/31.webp differ
diff --git a/files/assets/CHRISTMAS/images/defaultpictures/32.webp b/files/assets/CHRISTMAS/images/defaultpictures/32.webp
new file mode 100644
index 000000000..41ae87659
Binary files /dev/null and b/files/assets/CHRISTMAS/images/defaultpictures/32.webp differ
diff --git a/files/assets/CHRISTMAS/images/defaultpictures/33.webp b/files/assets/CHRISTMAS/images/defaultpictures/33.webp
new file mode 100644
index 000000000..d9606fda8
Binary files /dev/null and b/files/assets/CHRISTMAS/images/defaultpictures/33.webp differ
diff --git a/files/assets/CHRISTMAS/images/defaultpictures/34.webp b/files/assets/CHRISTMAS/images/defaultpictures/34.webp
new file mode 100644
index 000000000..4985fae71
Binary files /dev/null and b/files/assets/CHRISTMAS/images/defaultpictures/34.webp differ
diff --git a/files/assets/CHRISTMAS/images/defaultpictures/35.webp b/files/assets/CHRISTMAS/images/defaultpictures/35.webp
new file mode 100644
index 000000000..e3fdda957
Binary files /dev/null and b/files/assets/CHRISTMAS/images/defaultpictures/35.webp differ
diff --git a/files/assets/CHRISTMAS/images/defaultpictures/36.webp b/files/assets/CHRISTMAS/images/defaultpictures/36.webp
new file mode 100644
index 000000000..d2cdc005e
Binary files /dev/null and b/files/assets/CHRISTMAS/images/defaultpictures/36.webp differ
diff --git a/files/assets/CHRISTMAS/images/defaultpictures/37.webp b/files/assets/CHRISTMAS/images/defaultpictures/37.webp
new file mode 100644
index 000000000..d74c4baa5
Binary files /dev/null and b/files/assets/CHRISTMAS/images/defaultpictures/37.webp differ
diff --git a/files/assets/CHRISTMAS/images/defaultpictures/38.webp b/files/assets/CHRISTMAS/images/defaultpictures/38.webp
new file mode 100644
index 000000000..bed71f0b1
Binary files /dev/null and b/files/assets/CHRISTMAS/images/defaultpictures/38.webp differ
diff --git a/files/assets/CHRISTMAS/images/defaultpictures/39.webp b/files/assets/CHRISTMAS/images/defaultpictures/39.webp
new file mode 100644
index 000000000..564ee36a9
Binary files /dev/null and b/files/assets/CHRISTMAS/images/defaultpictures/39.webp differ
diff --git a/files/assets/CHRISTMAS/images/defaultpictures/4.webp b/files/assets/CHRISTMAS/images/defaultpictures/4.webp
new file mode 100644
index 000000000..56c0ffbb3
Binary files /dev/null and b/files/assets/CHRISTMAS/images/defaultpictures/4.webp differ
diff --git a/files/assets/CHRISTMAS/images/defaultpictures/40.webp b/files/assets/CHRISTMAS/images/defaultpictures/40.webp
new file mode 100644
index 000000000..c6e329ee0
Binary files /dev/null and b/files/assets/CHRISTMAS/images/defaultpictures/40.webp differ
diff --git a/files/assets/CHRISTMAS/images/defaultpictures/41.webp b/files/assets/CHRISTMAS/images/defaultpictures/41.webp
new file mode 100644
index 000000000..c1f2f4e3a
Binary files /dev/null and b/files/assets/CHRISTMAS/images/defaultpictures/41.webp differ
diff --git a/files/assets/CHRISTMAS/images/defaultpictures/42.webp b/files/assets/CHRISTMAS/images/defaultpictures/42.webp
new file mode 100644
index 000000000..e62891b18
Binary files /dev/null and b/files/assets/CHRISTMAS/images/defaultpictures/42.webp differ
diff --git a/files/assets/CHRISTMAS/images/defaultpictures/43.webp b/files/assets/CHRISTMAS/images/defaultpictures/43.webp
new file mode 100644
index 000000000..38e592016
Binary files /dev/null and b/files/assets/CHRISTMAS/images/defaultpictures/43.webp differ
diff --git a/files/assets/CHRISTMAS/images/defaultpictures/44.webp b/files/assets/CHRISTMAS/images/defaultpictures/44.webp
new file mode 100644
index 000000000..b74f014f9
Binary files /dev/null and b/files/assets/CHRISTMAS/images/defaultpictures/44.webp differ
diff --git a/files/assets/CHRISTMAS/images/defaultpictures/45.webp b/files/assets/CHRISTMAS/images/defaultpictures/45.webp
new file mode 100644
index 000000000..2ff545bd3
Binary files /dev/null and b/files/assets/CHRISTMAS/images/defaultpictures/45.webp differ
diff --git a/files/assets/CHRISTMAS/images/defaultpictures/46.webp b/files/assets/CHRISTMAS/images/defaultpictures/46.webp
new file mode 100644
index 000000000..36d7e0408
Binary files /dev/null and b/files/assets/CHRISTMAS/images/defaultpictures/46.webp differ
diff --git a/files/assets/CHRISTMAS/images/defaultpictures/47.webp b/files/assets/CHRISTMAS/images/defaultpictures/47.webp
new file mode 100644
index 000000000..98bee1546
Binary files /dev/null and b/files/assets/CHRISTMAS/images/defaultpictures/47.webp differ
diff --git a/files/assets/CHRISTMAS/images/defaultpictures/48.webp b/files/assets/CHRISTMAS/images/defaultpictures/48.webp
new file mode 100644
index 000000000..7e5999b41
Binary files /dev/null and b/files/assets/CHRISTMAS/images/defaultpictures/48.webp differ
diff --git a/files/assets/CHRISTMAS/images/defaultpictures/49.webp b/files/assets/CHRISTMAS/images/defaultpictures/49.webp
new file mode 100644
index 000000000..602778e83
Binary files /dev/null and b/files/assets/CHRISTMAS/images/defaultpictures/49.webp differ
diff --git a/files/assets/CHRISTMAS/images/defaultpictures/5.webp b/files/assets/CHRISTMAS/images/defaultpictures/5.webp
new file mode 100644
index 000000000..469d9c78d
Binary files /dev/null and b/files/assets/CHRISTMAS/images/defaultpictures/5.webp differ
diff --git a/files/assets/CHRISTMAS/images/defaultpictures/50.webp b/files/assets/CHRISTMAS/images/defaultpictures/50.webp
new file mode 100644
index 000000000..e9a096ad8
Binary files /dev/null and b/files/assets/CHRISTMAS/images/defaultpictures/50.webp differ
diff --git a/files/assets/CHRISTMAS/images/defaultpictures/51.webp b/files/assets/CHRISTMAS/images/defaultpictures/51.webp
new file mode 100644
index 000000000..71b4f687f
Binary files /dev/null and b/files/assets/CHRISTMAS/images/defaultpictures/51.webp differ
diff --git a/files/assets/CHRISTMAS/images/defaultpictures/52.webp b/files/assets/CHRISTMAS/images/defaultpictures/52.webp
new file mode 100644
index 000000000..1fecb23a6
Binary files /dev/null and b/files/assets/CHRISTMAS/images/defaultpictures/52.webp differ
diff --git a/files/assets/CHRISTMAS/images/defaultpictures/53.webp b/files/assets/CHRISTMAS/images/defaultpictures/53.webp
new file mode 100644
index 000000000..e3b4604bf
Binary files /dev/null and b/files/assets/CHRISTMAS/images/defaultpictures/53.webp differ
diff --git a/files/assets/CHRISTMAS/images/defaultpictures/54.webp b/files/assets/CHRISTMAS/images/defaultpictures/54.webp
new file mode 100644
index 000000000..c4aafa614
Binary files /dev/null and b/files/assets/CHRISTMAS/images/defaultpictures/54.webp differ
diff --git a/files/assets/CHRISTMAS/images/defaultpictures/55.webp b/files/assets/CHRISTMAS/images/defaultpictures/55.webp
new file mode 100644
index 000000000..1d9effbad
Binary files /dev/null and b/files/assets/CHRISTMAS/images/defaultpictures/55.webp differ
diff --git a/files/assets/CHRISTMAS/images/defaultpictures/56.webp b/files/assets/CHRISTMAS/images/defaultpictures/56.webp
new file mode 100644
index 000000000..07768e41a
Binary files /dev/null and b/files/assets/CHRISTMAS/images/defaultpictures/56.webp differ
diff --git a/files/assets/CHRISTMAS/images/defaultpictures/57.webp b/files/assets/CHRISTMAS/images/defaultpictures/57.webp
new file mode 100644
index 000000000..687cccbcf
Binary files /dev/null and b/files/assets/CHRISTMAS/images/defaultpictures/57.webp differ
diff --git a/files/assets/CHRISTMAS/images/defaultpictures/58.webp b/files/assets/CHRISTMAS/images/defaultpictures/58.webp
new file mode 100644
index 000000000..282e9bd2a
Binary files /dev/null and b/files/assets/CHRISTMAS/images/defaultpictures/58.webp differ
diff --git a/files/assets/CHRISTMAS/images/defaultpictures/59.webp b/files/assets/CHRISTMAS/images/defaultpictures/59.webp
new file mode 100644
index 000000000..28c1e440a
Binary files /dev/null and b/files/assets/CHRISTMAS/images/defaultpictures/59.webp differ
diff --git a/files/assets/CHRISTMAS/images/defaultpictures/6.webp b/files/assets/CHRISTMAS/images/defaultpictures/6.webp
new file mode 100644
index 000000000..4fc0f3e9d
Binary files /dev/null and b/files/assets/CHRISTMAS/images/defaultpictures/6.webp differ
diff --git a/files/assets/CHRISTMAS/images/defaultpictures/60.webp b/files/assets/CHRISTMAS/images/defaultpictures/60.webp
new file mode 100644
index 000000000..6301752f8
Binary files /dev/null and b/files/assets/CHRISTMAS/images/defaultpictures/60.webp differ
diff --git a/files/assets/CHRISTMAS/images/defaultpictures/61.webp b/files/assets/CHRISTMAS/images/defaultpictures/61.webp
new file mode 100644
index 000000000..5116da736
Binary files /dev/null and b/files/assets/CHRISTMAS/images/defaultpictures/61.webp differ
diff --git a/files/assets/CHRISTMAS/images/defaultpictures/62.webp b/files/assets/CHRISTMAS/images/defaultpictures/62.webp
new file mode 100644
index 000000000..42f8f309a
Binary files /dev/null and b/files/assets/CHRISTMAS/images/defaultpictures/62.webp differ
diff --git a/files/assets/CHRISTMAS/images/defaultpictures/63.webp b/files/assets/CHRISTMAS/images/defaultpictures/63.webp
new file mode 100644
index 000000000..bad199a2f
Binary files /dev/null and b/files/assets/CHRISTMAS/images/defaultpictures/63.webp differ
diff --git a/files/assets/CHRISTMAS/images/defaultpictures/64.webp b/files/assets/CHRISTMAS/images/defaultpictures/64.webp
new file mode 100644
index 000000000..fef87954d
Binary files /dev/null and b/files/assets/CHRISTMAS/images/defaultpictures/64.webp differ
diff --git a/files/assets/CHRISTMAS/images/defaultpictures/65.webp b/files/assets/CHRISTMAS/images/defaultpictures/65.webp
new file mode 100644
index 000000000..e6b97409e
Binary files /dev/null and b/files/assets/CHRISTMAS/images/defaultpictures/65.webp differ
diff --git a/files/assets/CHRISTMAS/images/defaultpictures/66.webp b/files/assets/CHRISTMAS/images/defaultpictures/66.webp
new file mode 100644
index 000000000..25183f84a
Binary files /dev/null and b/files/assets/CHRISTMAS/images/defaultpictures/66.webp differ
diff --git a/files/assets/CHRISTMAS/images/defaultpictures/67.webp b/files/assets/CHRISTMAS/images/defaultpictures/67.webp
new file mode 100644
index 000000000..e70bd9bc7
Binary files /dev/null and b/files/assets/CHRISTMAS/images/defaultpictures/67.webp differ
diff --git a/files/assets/CHRISTMAS/images/defaultpictures/68.webp b/files/assets/CHRISTMAS/images/defaultpictures/68.webp
new file mode 100644
index 000000000..2505043a2
Binary files /dev/null and b/files/assets/CHRISTMAS/images/defaultpictures/68.webp differ
diff --git a/files/assets/CHRISTMAS/images/defaultpictures/69.webp b/files/assets/CHRISTMAS/images/defaultpictures/69.webp
new file mode 100644
index 000000000..ad5553518
Binary files /dev/null and b/files/assets/CHRISTMAS/images/defaultpictures/69.webp differ
diff --git a/files/assets/CHRISTMAS/images/defaultpictures/7.webp b/files/assets/CHRISTMAS/images/defaultpictures/7.webp
new file mode 100644
index 000000000..3ded53e09
Binary files /dev/null and b/files/assets/CHRISTMAS/images/defaultpictures/7.webp differ
diff --git a/files/assets/CHRISTMAS/images/defaultpictures/70.webp b/files/assets/CHRISTMAS/images/defaultpictures/70.webp
new file mode 100644
index 000000000..09ccf3e90
Binary files /dev/null and b/files/assets/CHRISTMAS/images/defaultpictures/70.webp differ
diff --git a/files/assets/CHRISTMAS/images/defaultpictures/71.webp b/files/assets/CHRISTMAS/images/defaultpictures/71.webp
new file mode 100644
index 000000000..1e5c9537a
Binary files /dev/null and b/files/assets/CHRISTMAS/images/defaultpictures/71.webp differ
diff --git a/files/assets/CHRISTMAS/images/defaultpictures/72.webp b/files/assets/CHRISTMAS/images/defaultpictures/72.webp
new file mode 100644
index 000000000..645d8a61f
Binary files /dev/null and b/files/assets/CHRISTMAS/images/defaultpictures/72.webp differ
diff --git a/files/assets/CHRISTMAS/images/defaultpictures/73.webp b/files/assets/CHRISTMAS/images/defaultpictures/73.webp
new file mode 100644
index 000000000..6445ceb0a
Binary files /dev/null and b/files/assets/CHRISTMAS/images/defaultpictures/73.webp differ
diff --git a/files/assets/CHRISTMAS/images/defaultpictures/74.webp b/files/assets/CHRISTMAS/images/defaultpictures/74.webp
new file mode 100644
index 000000000..822000e9c
Binary files /dev/null and b/files/assets/CHRISTMAS/images/defaultpictures/74.webp differ
diff --git a/files/assets/CHRISTMAS/images/defaultpictures/75.webp b/files/assets/CHRISTMAS/images/defaultpictures/75.webp
new file mode 100644
index 000000000..7065415b4
Binary files /dev/null and b/files/assets/CHRISTMAS/images/defaultpictures/75.webp differ
diff --git a/files/assets/CHRISTMAS/images/defaultpictures/76.webp b/files/assets/CHRISTMAS/images/defaultpictures/76.webp
new file mode 100644
index 000000000..2a70b5d66
Binary files /dev/null and b/files/assets/CHRISTMAS/images/defaultpictures/76.webp differ
diff --git a/files/assets/CHRISTMAS/images/defaultpictures/77.webp b/files/assets/CHRISTMAS/images/defaultpictures/77.webp
new file mode 100644
index 000000000..d608aa37a
Binary files /dev/null and b/files/assets/CHRISTMAS/images/defaultpictures/77.webp differ
diff --git a/files/assets/CHRISTMAS/images/defaultpictures/78.webp b/files/assets/CHRISTMAS/images/defaultpictures/78.webp
new file mode 100644
index 000000000..4c3dcaf8c
Binary files /dev/null and b/files/assets/CHRISTMAS/images/defaultpictures/78.webp differ
diff --git a/files/assets/CHRISTMAS/images/defaultpictures/79.webp b/files/assets/CHRISTMAS/images/defaultpictures/79.webp
new file mode 100644
index 000000000..80d2084af
Binary files /dev/null and b/files/assets/CHRISTMAS/images/defaultpictures/79.webp differ
diff --git a/files/assets/CHRISTMAS/images/defaultpictures/8.webp b/files/assets/CHRISTMAS/images/defaultpictures/8.webp
new file mode 100644
index 000000000..a6026a6d8
Binary files /dev/null and b/files/assets/CHRISTMAS/images/defaultpictures/8.webp differ
diff --git a/files/assets/CHRISTMAS/images/defaultpictures/80.webp b/files/assets/CHRISTMAS/images/defaultpictures/80.webp
new file mode 100644
index 000000000..812ea39ed
Binary files /dev/null and b/files/assets/CHRISTMAS/images/defaultpictures/80.webp differ
diff --git a/files/assets/CHRISTMAS/images/defaultpictures/81.webp b/files/assets/CHRISTMAS/images/defaultpictures/81.webp
new file mode 100644
index 000000000..710cabe36
Binary files /dev/null and b/files/assets/CHRISTMAS/images/defaultpictures/81.webp differ
diff --git a/files/assets/CHRISTMAS/images/defaultpictures/82.webp b/files/assets/CHRISTMAS/images/defaultpictures/82.webp
new file mode 100644
index 000000000..d68469a1b
Binary files /dev/null and b/files/assets/CHRISTMAS/images/defaultpictures/82.webp differ
diff --git a/files/assets/CHRISTMAS/images/defaultpictures/83.webp b/files/assets/CHRISTMAS/images/defaultpictures/83.webp
new file mode 100644
index 000000000..d1115729f
Binary files /dev/null and b/files/assets/CHRISTMAS/images/defaultpictures/83.webp differ
diff --git a/files/assets/CHRISTMAS/images/defaultpictures/84.webp b/files/assets/CHRISTMAS/images/defaultpictures/84.webp
new file mode 100644
index 000000000..8bd2b3be0
Binary files /dev/null and b/files/assets/CHRISTMAS/images/defaultpictures/84.webp differ
diff --git a/files/assets/CHRISTMAS/images/defaultpictures/85.webp b/files/assets/CHRISTMAS/images/defaultpictures/85.webp
new file mode 100644
index 000000000..a4a2f05c1
Binary files /dev/null and b/files/assets/CHRISTMAS/images/defaultpictures/85.webp differ
diff --git a/files/assets/CHRISTMAS/images/defaultpictures/86.webp b/files/assets/CHRISTMAS/images/defaultpictures/86.webp
new file mode 100644
index 000000000..54da58fd8
Binary files /dev/null and b/files/assets/CHRISTMAS/images/defaultpictures/86.webp differ
diff --git a/files/assets/CHRISTMAS/images/defaultpictures/87.webp b/files/assets/CHRISTMAS/images/defaultpictures/87.webp
new file mode 100644
index 000000000..06062de06
Binary files /dev/null and b/files/assets/CHRISTMAS/images/defaultpictures/87.webp differ
diff --git a/files/assets/CHRISTMAS/images/defaultpictures/88.webp b/files/assets/CHRISTMAS/images/defaultpictures/88.webp
new file mode 100644
index 000000000..ebcef65ce
Binary files /dev/null and b/files/assets/CHRISTMAS/images/defaultpictures/88.webp differ
diff --git a/files/assets/CHRISTMAS/images/defaultpictures/89.webp b/files/assets/CHRISTMAS/images/defaultpictures/89.webp
new file mode 100644
index 000000000..bfcb1d62b
Binary files /dev/null and b/files/assets/CHRISTMAS/images/defaultpictures/89.webp differ
diff --git a/files/assets/CHRISTMAS/images/defaultpictures/9.webp b/files/assets/CHRISTMAS/images/defaultpictures/9.webp
new file mode 100644
index 000000000..defdaeb62
Binary files /dev/null and b/files/assets/CHRISTMAS/images/defaultpictures/9.webp differ
diff --git a/files/assets/CHRISTMAS/images/defaultpictures/90.webp b/files/assets/CHRISTMAS/images/defaultpictures/90.webp
new file mode 100644
index 000000000..9d2d0cc3f
Binary files /dev/null and b/files/assets/CHRISTMAS/images/defaultpictures/90.webp differ
diff --git a/files/assets/CHRISTMAS/images/defaultpictures/91.webp b/files/assets/CHRISTMAS/images/defaultpictures/91.webp
new file mode 100644
index 000000000..c7068601b
Binary files /dev/null and b/files/assets/CHRISTMAS/images/defaultpictures/91.webp differ
diff --git a/files/assets/CHRISTMAS/images/defaultpictures/92.webp b/files/assets/CHRISTMAS/images/defaultpictures/92.webp
new file mode 100644
index 000000000..e190778fd
Binary files /dev/null and b/files/assets/CHRISTMAS/images/defaultpictures/92.webp differ
diff --git a/files/assets/CHRISTMAS/images/defaultpictures/93.webp b/files/assets/CHRISTMAS/images/defaultpictures/93.webp
new file mode 100644
index 000000000..4a0e1f7a0
Binary files /dev/null and b/files/assets/CHRISTMAS/images/defaultpictures/93.webp differ
diff --git a/files/assets/CHRISTMAS/images/defaultpictures/94.webp b/files/assets/CHRISTMAS/images/defaultpictures/94.webp
new file mode 100644
index 000000000..743f92008
Binary files /dev/null and b/files/assets/CHRISTMAS/images/defaultpictures/94.webp differ
diff --git a/files/assets/CHRISTMAS/images/defaultpictures/95.webp b/files/assets/CHRISTMAS/images/defaultpictures/95.webp
new file mode 100644
index 000000000..fd1312bee
Binary files /dev/null and b/files/assets/CHRISTMAS/images/defaultpictures/95.webp differ
diff --git a/files/assets/CHRISTMAS/images/defaultpictures/96.webp b/files/assets/CHRISTMAS/images/defaultpictures/96.webp
new file mode 100644
index 000000000..9ace7a390
Binary files /dev/null and b/files/assets/CHRISTMAS/images/defaultpictures/96.webp differ
diff --git a/files/assets/CHRISTMAS/images/defaultpictures/97.webp b/files/assets/CHRISTMAS/images/defaultpictures/97.webp
new file mode 100644
index 000000000..980c55db9
Binary files /dev/null and b/files/assets/CHRISTMAS/images/defaultpictures/97.webp differ
diff --git a/files/assets/CHRISTMAS/images/defaultpictures/98.webp b/files/assets/CHRISTMAS/images/defaultpictures/98.webp
new file mode 100644
index 000000000..9e6824541
Binary files /dev/null and b/files/assets/CHRISTMAS/images/defaultpictures/98.webp differ
diff --git a/files/assets/CHRISTMAS/images/defaultpictures/99.webp b/files/assets/CHRISTMAS/images/defaultpictures/99.webp
new file mode 100644
index 000000000..77d01e699
Binary files /dev/null and b/files/assets/CHRISTMAS/images/defaultpictures/99.webp differ
diff --git a/files/assets/CHRISTMAS/images/defaultpictures/agendaposter/1.webp b/files/assets/CHRISTMAS/images/defaultpictures/agendaposter/1.webp
new file mode 100644
index 000000000..be4722781
Binary files /dev/null and b/files/assets/CHRISTMAS/images/defaultpictures/agendaposter/1.webp differ
diff --git a/files/assets/CHRISTMAS/images/defaultpictures/agendaposter/10.webp b/files/assets/CHRISTMAS/images/defaultpictures/agendaposter/10.webp
new file mode 100644
index 000000000..47199463a
Binary files /dev/null and b/files/assets/CHRISTMAS/images/defaultpictures/agendaposter/10.webp differ
diff --git a/files/assets/CHRISTMAS/images/defaultpictures/agendaposter/11.webp b/files/assets/CHRISTMAS/images/defaultpictures/agendaposter/11.webp
new file mode 100644
index 000000000..007699a70
Binary files /dev/null and b/files/assets/CHRISTMAS/images/defaultpictures/agendaposter/11.webp differ
diff --git a/files/assets/CHRISTMAS/images/defaultpictures/agendaposter/12.webp b/files/assets/CHRISTMAS/images/defaultpictures/agendaposter/12.webp
new file mode 100644
index 000000000..3df8b52e7
Binary files /dev/null and b/files/assets/CHRISTMAS/images/defaultpictures/agendaposter/12.webp differ
diff --git a/files/assets/CHRISTMAS/images/defaultpictures/agendaposter/13.webp b/files/assets/CHRISTMAS/images/defaultpictures/agendaposter/13.webp
new file mode 100644
index 000000000..a979a6482
Binary files /dev/null and b/files/assets/CHRISTMAS/images/defaultpictures/agendaposter/13.webp differ
diff --git a/files/assets/CHRISTMAS/images/defaultpictures/agendaposter/14.webp b/files/assets/CHRISTMAS/images/defaultpictures/agendaposter/14.webp
new file mode 100644
index 000000000..e4711026d
Binary files /dev/null and b/files/assets/CHRISTMAS/images/defaultpictures/agendaposter/14.webp differ
diff --git a/files/assets/CHRISTMAS/images/defaultpictures/agendaposter/15.webp b/files/assets/CHRISTMAS/images/defaultpictures/agendaposter/15.webp
new file mode 100644
index 000000000..63cae7796
Binary files /dev/null and b/files/assets/CHRISTMAS/images/defaultpictures/agendaposter/15.webp differ
diff --git a/files/assets/CHRISTMAS/images/defaultpictures/agendaposter/16.webp b/files/assets/CHRISTMAS/images/defaultpictures/agendaposter/16.webp
new file mode 100644
index 000000000..35bc9e281
Binary files /dev/null and b/files/assets/CHRISTMAS/images/defaultpictures/agendaposter/16.webp differ
diff --git a/files/assets/CHRISTMAS/images/defaultpictures/agendaposter/17.webp b/files/assets/CHRISTMAS/images/defaultpictures/agendaposter/17.webp
new file mode 100644
index 000000000..663b34c07
Binary files /dev/null and b/files/assets/CHRISTMAS/images/defaultpictures/agendaposter/17.webp differ
diff --git a/files/assets/CHRISTMAS/images/defaultpictures/agendaposter/18.webp b/files/assets/CHRISTMAS/images/defaultpictures/agendaposter/18.webp
new file mode 100644
index 000000000..f154132d2
Binary files /dev/null and b/files/assets/CHRISTMAS/images/defaultpictures/agendaposter/18.webp differ
diff --git a/files/assets/CHRISTMAS/images/defaultpictures/agendaposter/19.webp b/files/assets/CHRISTMAS/images/defaultpictures/agendaposter/19.webp
new file mode 100644
index 000000000..bcae5b29c
Binary files /dev/null and b/files/assets/CHRISTMAS/images/defaultpictures/agendaposter/19.webp differ
diff --git a/files/assets/CHRISTMAS/images/defaultpictures/agendaposter/2.webp b/files/assets/CHRISTMAS/images/defaultpictures/agendaposter/2.webp
new file mode 100644
index 000000000..01e465880
Binary files /dev/null and b/files/assets/CHRISTMAS/images/defaultpictures/agendaposter/2.webp differ
diff --git a/files/assets/CHRISTMAS/images/defaultpictures/agendaposter/20.webp b/files/assets/CHRISTMAS/images/defaultpictures/agendaposter/20.webp
new file mode 100644
index 000000000..60f982062
Binary files /dev/null and b/files/assets/CHRISTMAS/images/defaultpictures/agendaposter/20.webp differ
diff --git a/files/assets/CHRISTMAS/images/defaultpictures/agendaposter/21.webp b/files/assets/CHRISTMAS/images/defaultpictures/agendaposter/21.webp
new file mode 100644
index 000000000..646fd5358
Binary files /dev/null and b/files/assets/CHRISTMAS/images/defaultpictures/agendaposter/21.webp differ
diff --git a/files/assets/CHRISTMAS/images/defaultpictures/agendaposter/22.webp b/files/assets/CHRISTMAS/images/defaultpictures/agendaposter/22.webp
new file mode 100644
index 000000000..f1f1f4bb6
Binary files /dev/null and b/files/assets/CHRISTMAS/images/defaultpictures/agendaposter/22.webp differ
diff --git a/files/assets/CHRISTMAS/images/defaultpictures/agendaposter/23.webp b/files/assets/CHRISTMAS/images/defaultpictures/agendaposter/23.webp
new file mode 100644
index 000000000..58ca30918
Binary files /dev/null and b/files/assets/CHRISTMAS/images/defaultpictures/agendaposter/23.webp differ
diff --git a/files/assets/CHRISTMAS/images/defaultpictures/agendaposter/24.webp b/files/assets/CHRISTMAS/images/defaultpictures/agendaposter/24.webp
new file mode 100644
index 000000000..974eb15c8
Binary files /dev/null and b/files/assets/CHRISTMAS/images/defaultpictures/agendaposter/24.webp differ
diff --git a/files/assets/CHRISTMAS/images/defaultpictures/agendaposter/25.webp b/files/assets/CHRISTMAS/images/defaultpictures/agendaposter/25.webp
new file mode 100644
index 000000000..ddede4037
Binary files /dev/null and b/files/assets/CHRISTMAS/images/defaultpictures/agendaposter/25.webp differ
diff --git a/files/assets/CHRISTMAS/images/defaultpictures/agendaposter/26.webp b/files/assets/CHRISTMAS/images/defaultpictures/agendaposter/26.webp
new file mode 100644
index 000000000..b79299ae8
Binary files /dev/null and b/files/assets/CHRISTMAS/images/defaultpictures/agendaposter/26.webp differ
diff --git a/files/assets/CHRISTMAS/images/defaultpictures/agendaposter/27.webp b/files/assets/CHRISTMAS/images/defaultpictures/agendaposter/27.webp
new file mode 100644
index 000000000..749b14cab
Binary files /dev/null and b/files/assets/CHRISTMAS/images/defaultpictures/agendaposter/27.webp differ
diff --git a/files/assets/CHRISTMAS/images/defaultpictures/agendaposter/28.webp b/files/assets/CHRISTMAS/images/defaultpictures/agendaposter/28.webp
new file mode 100644
index 000000000..f274eedee
Binary files /dev/null and b/files/assets/CHRISTMAS/images/defaultpictures/agendaposter/28.webp differ
diff --git a/files/assets/CHRISTMAS/images/defaultpictures/agendaposter/29.webp b/files/assets/CHRISTMAS/images/defaultpictures/agendaposter/29.webp
new file mode 100644
index 000000000..169444c25
Binary files /dev/null and b/files/assets/CHRISTMAS/images/defaultpictures/agendaposter/29.webp differ
diff --git a/files/assets/CHRISTMAS/images/defaultpictures/agendaposter/3.webp b/files/assets/CHRISTMAS/images/defaultpictures/agendaposter/3.webp
new file mode 100644
index 000000000..64e55e756
Binary files /dev/null and b/files/assets/CHRISTMAS/images/defaultpictures/agendaposter/3.webp differ
diff --git a/files/assets/CHRISTMAS/images/defaultpictures/agendaposter/30.webp b/files/assets/CHRISTMAS/images/defaultpictures/agendaposter/30.webp
new file mode 100644
index 000000000..8feec4431
Binary files /dev/null and b/files/assets/CHRISTMAS/images/defaultpictures/agendaposter/30.webp differ
diff --git a/files/assets/CHRISTMAS/images/defaultpictures/agendaposter/31.webp b/files/assets/CHRISTMAS/images/defaultpictures/agendaposter/31.webp
new file mode 100644
index 000000000..4ab71709e
Binary files /dev/null and b/files/assets/CHRISTMAS/images/defaultpictures/agendaposter/31.webp differ
diff --git a/files/assets/CHRISTMAS/images/defaultpictures/agendaposter/32.webp b/files/assets/CHRISTMAS/images/defaultpictures/agendaposter/32.webp
new file mode 100644
index 000000000..929029e54
Binary files /dev/null and b/files/assets/CHRISTMAS/images/defaultpictures/agendaposter/32.webp differ
diff --git a/files/assets/CHRISTMAS/images/defaultpictures/agendaposter/33.webp b/files/assets/CHRISTMAS/images/defaultpictures/agendaposter/33.webp
new file mode 100644
index 000000000..5b6e8ec0f
Binary files /dev/null and b/files/assets/CHRISTMAS/images/defaultpictures/agendaposter/33.webp differ
diff --git a/files/assets/CHRISTMAS/images/defaultpictures/agendaposter/34.webp b/files/assets/CHRISTMAS/images/defaultpictures/agendaposter/34.webp
new file mode 100644
index 000000000..2d4b13e4f
Binary files /dev/null and b/files/assets/CHRISTMAS/images/defaultpictures/agendaposter/34.webp differ
diff --git a/files/assets/CHRISTMAS/images/defaultpictures/agendaposter/35.webp b/files/assets/CHRISTMAS/images/defaultpictures/agendaposter/35.webp
new file mode 100644
index 000000000..728745ab3
Binary files /dev/null and b/files/assets/CHRISTMAS/images/defaultpictures/agendaposter/35.webp differ
diff --git a/files/assets/CHRISTMAS/images/defaultpictures/agendaposter/36.webp b/files/assets/CHRISTMAS/images/defaultpictures/agendaposter/36.webp
new file mode 100644
index 000000000..9c8d6debc
Binary files /dev/null and b/files/assets/CHRISTMAS/images/defaultpictures/agendaposter/36.webp differ
diff --git a/files/assets/CHRISTMAS/images/defaultpictures/agendaposter/37.webp b/files/assets/CHRISTMAS/images/defaultpictures/agendaposter/37.webp
new file mode 100644
index 000000000..b8d014f1a
Binary files /dev/null and b/files/assets/CHRISTMAS/images/defaultpictures/agendaposter/37.webp differ
diff --git a/files/assets/CHRISTMAS/images/defaultpictures/agendaposter/38.webp b/files/assets/CHRISTMAS/images/defaultpictures/agendaposter/38.webp
new file mode 100644
index 000000000..12f4cf4d6
Binary files /dev/null and b/files/assets/CHRISTMAS/images/defaultpictures/agendaposter/38.webp differ
diff --git a/files/assets/CHRISTMAS/images/defaultpictures/agendaposter/39.webp b/files/assets/CHRISTMAS/images/defaultpictures/agendaposter/39.webp
new file mode 100644
index 000000000..ad75eba76
Binary files /dev/null and b/files/assets/CHRISTMAS/images/defaultpictures/agendaposter/39.webp differ
diff --git a/files/assets/CHRISTMAS/images/defaultpictures/agendaposter/4.webp b/files/assets/CHRISTMAS/images/defaultpictures/agendaposter/4.webp
new file mode 100644
index 000000000..3e27b161d
Binary files /dev/null and b/files/assets/CHRISTMAS/images/defaultpictures/agendaposter/4.webp differ
diff --git a/files/assets/CHRISTMAS/images/defaultpictures/agendaposter/40.webp b/files/assets/CHRISTMAS/images/defaultpictures/agendaposter/40.webp
new file mode 100644
index 000000000..c9d83032b
Binary files /dev/null and b/files/assets/CHRISTMAS/images/defaultpictures/agendaposter/40.webp differ
diff --git a/files/assets/CHRISTMAS/images/defaultpictures/agendaposter/41.webp b/files/assets/CHRISTMAS/images/defaultpictures/agendaposter/41.webp
new file mode 100644
index 000000000..0782e09b4
Binary files /dev/null and b/files/assets/CHRISTMAS/images/defaultpictures/agendaposter/41.webp differ
diff --git a/files/assets/CHRISTMAS/images/defaultpictures/agendaposter/42.webp b/files/assets/CHRISTMAS/images/defaultpictures/agendaposter/42.webp
new file mode 100644
index 000000000..fc1a31669
Binary files /dev/null and b/files/assets/CHRISTMAS/images/defaultpictures/agendaposter/42.webp differ
diff --git a/files/assets/CHRISTMAS/images/defaultpictures/agendaposter/43.webp b/files/assets/CHRISTMAS/images/defaultpictures/agendaposter/43.webp
new file mode 100644
index 000000000..7b30be3f9
Binary files /dev/null and b/files/assets/CHRISTMAS/images/defaultpictures/agendaposter/43.webp differ
diff --git a/files/assets/CHRISTMAS/images/defaultpictures/agendaposter/44.webp b/files/assets/CHRISTMAS/images/defaultpictures/agendaposter/44.webp
new file mode 100644
index 000000000..a2660ed93
Binary files /dev/null and b/files/assets/CHRISTMAS/images/defaultpictures/agendaposter/44.webp differ
diff --git a/files/assets/CHRISTMAS/images/defaultpictures/agendaposter/45.webp b/files/assets/CHRISTMAS/images/defaultpictures/agendaposter/45.webp
new file mode 100644
index 000000000..260fa8d41
Binary files /dev/null and b/files/assets/CHRISTMAS/images/defaultpictures/agendaposter/45.webp differ
diff --git a/files/assets/CHRISTMAS/images/defaultpictures/agendaposter/46.webp b/files/assets/CHRISTMAS/images/defaultpictures/agendaposter/46.webp
new file mode 100644
index 000000000..260314b45
Binary files /dev/null and b/files/assets/CHRISTMAS/images/defaultpictures/agendaposter/46.webp differ
diff --git a/files/assets/CHRISTMAS/images/defaultpictures/agendaposter/47.webp b/files/assets/CHRISTMAS/images/defaultpictures/agendaposter/47.webp
new file mode 100644
index 000000000..5f879258f
Binary files /dev/null and b/files/assets/CHRISTMAS/images/defaultpictures/agendaposter/47.webp differ
diff --git a/files/assets/CHRISTMAS/images/defaultpictures/agendaposter/48.webp b/files/assets/CHRISTMAS/images/defaultpictures/agendaposter/48.webp
new file mode 100644
index 000000000..a33252494
Binary files /dev/null and b/files/assets/CHRISTMAS/images/defaultpictures/agendaposter/48.webp differ
diff --git a/files/assets/CHRISTMAS/images/defaultpictures/agendaposter/49.webp b/files/assets/CHRISTMAS/images/defaultpictures/agendaposter/49.webp
new file mode 100644
index 000000000..3212867e7
Binary files /dev/null and b/files/assets/CHRISTMAS/images/defaultpictures/agendaposter/49.webp differ
diff --git a/files/assets/CHRISTMAS/images/defaultpictures/agendaposter/5.webp b/files/assets/CHRISTMAS/images/defaultpictures/agendaposter/5.webp
new file mode 100644
index 000000000..c6d5619d8
Binary files /dev/null and b/files/assets/CHRISTMAS/images/defaultpictures/agendaposter/5.webp differ
diff --git a/files/assets/CHRISTMAS/images/defaultpictures/agendaposter/50.webp b/files/assets/CHRISTMAS/images/defaultpictures/agendaposter/50.webp
new file mode 100644
index 000000000..08d10609e
Binary files /dev/null and b/files/assets/CHRISTMAS/images/defaultpictures/agendaposter/50.webp differ
diff --git a/files/assets/CHRISTMAS/images/defaultpictures/agendaposter/6.webp b/files/assets/CHRISTMAS/images/defaultpictures/agendaposter/6.webp
new file mode 100644
index 000000000..9bb63afd5
Binary files /dev/null and b/files/assets/CHRISTMAS/images/defaultpictures/agendaposter/6.webp differ
diff --git a/files/assets/CHRISTMAS/images/defaultpictures/agendaposter/7.webp b/files/assets/CHRISTMAS/images/defaultpictures/agendaposter/7.webp
new file mode 100644
index 000000000..3206657ea
Binary files /dev/null and b/files/assets/CHRISTMAS/images/defaultpictures/agendaposter/7.webp differ
diff --git a/files/assets/CHRISTMAS/images/defaultpictures/agendaposter/8.webp b/files/assets/CHRISTMAS/images/defaultpictures/agendaposter/8.webp
new file mode 100644
index 000000000..20fbe7a4e
Binary files /dev/null and b/files/assets/CHRISTMAS/images/defaultpictures/agendaposter/8.webp differ
diff --git a/files/assets/CHRISTMAS/images/defaultpictures/agendaposter/9.webp b/files/assets/CHRISTMAS/images/defaultpictures/agendaposter/9.webp
new file mode 100644
index 000000000..26eb759af
Binary files /dev/null and b/files/assets/CHRISTMAS/images/defaultpictures/agendaposter/9.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/2thumbsup.webp b/files/assets/CHRISTMAS/images/emojis/2thumbsup.webp
new file mode 100644
index 000000000..815b7cfd2
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/2thumbsup.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/abusivewife.webp b/files/assets/CHRISTMAS/images/emojis/abusivewife.webp
new file mode 100644
index 000000000..792479755
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/abusivewife.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/aliendj.webp b/files/assets/CHRISTMAS/images/emojis/aliendj.webp
new file mode 100644
index 000000000..e1b18a1ed
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/aliendj.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/ambulance.webp b/files/assets/CHRISTMAS/images/emojis/ambulance.webp
new file mode 100644
index 000000000..319b0cc93
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/ambulance.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/ancap.webp b/files/assets/CHRISTMAS/images/emojis/ancap.webp
new file mode 100644
index 000000000..07c7193a8
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/ancap.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/angry.webp b/files/assets/CHRISTMAS/images/emojis/angry.webp
new file mode 100644
index 000000000..ccdb270a2
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/angry.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/angrywhip.webp b/files/assets/CHRISTMAS/images/emojis/angrywhip.webp
new file mode 100644
index 000000000..47842d57e
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/angrywhip.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/animesexual.webp b/files/assets/CHRISTMAS/images/emojis/animesexual.webp
new file mode 100644
index 000000000..342727628
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/animesexual.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/argue.webp b/files/assets/CHRISTMAS/images/emojis/argue.webp
new file mode 100644
index 000000000..7862cb8f4
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/argue.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/aroused.webp b/files/assets/CHRISTMAS/images/emojis/aroused.webp
new file mode 100644
index 000000000..6e69a0bd5
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/aroused.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/ashamed.webp b/files/assets/CHRISTMAS/images/emojis/ashamed.webp
new file mode 100644
index 000000000..63a2dbfea
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/ashamed.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/autism.webp b/files/assets/CHRISTMAS/images/emojis/autism.webp
new file mode 100644
index 000000000..a9c8c6c5f
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/autism.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/badass.webp b/files/assets/CHRISTMAS/images/emojis/badass.webp
new file mode 100644
index 000000000..87124f087
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/badass.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/banana.webp b/files/assets/CHRISTMAS/images/emojis/banana.webp
new file mode 100644
index 000000000..03cdb13ad
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/banana.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/band.webp b/files/assets/CHRISTMAS/images/emojis/band.webp
new file mode 100644
index 000000000..bf1a4fa7a
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/band.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/banghead.webp b/files/assets/CHRISTMAS/images/emojis/banghead.webp
new file mode 100644
index 000000000..d1fbb4e8e
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/banghead.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/bardfinn.webp b/files/assets/CHRISTMAS/images/emojis/bardfinn.webp
new file mode 100644
index 000000000..ab4d597e8
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/bardfinn.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/batman.webp b/files/assets/CHRISTMAS/images/emojis/batman.webp
new file mode 100644
index 000000000..d101aaf6e
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/batman.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/bigeyes.webp b/files/assets/CHRISTMAS/images/emojis/bigeyes.webp
new file mode 100644
index 000000000..e83023ed6
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/bigeyes.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/bitchplease.webp b/files/assets/CHRISTMAS/images/emojis/bitchplease.webp
new file mode 100644
index 000000000..ca20c9e7a
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/bitchplease.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/bite.webp b/files/assets/CHRISTMAS/images/emojis/bite.webp
new file mode 100644
index 000000000..52fd2c05e
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/bite.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/blacknation.webp b/files/assets/CHRISTMAS/images/emojis/blacknation.webp
new file mode 100644
index 000000000..832db8b16
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/blacknation.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/blind.webp b/files/assets/CHRISTMAS/images/emojis/blind.webp
new file mode 100644
index 000000000..8b3f121d5
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/blind.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/blm.webp b/files/assets/CHRISTMAS/images/emojis/blm.webp
new file mode 100644
index 000000000..f2c3b9d60
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/blm.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/bloomer.webp b/files/assets/CHRISTMAS/images/emojis/bloomer.webp
new file mode 100644
index 000000000..8e4baa2b1
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/bloomer.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/blowkiss.webp b/files/assets/CHRISTMAS/images/emojis/blowkiss.webp
new file mode 100644
index 000000000..b919a8157
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/blowkiss.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/blueline.webp b/files/assets/CHRISTMAS/images/emojis/blueline.webp
new file mode 100644
index 000000000..18ca7a841
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/blueline.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/blush.webp b/files/assets/CHRISTMAS/images/emojis/blush.webp
new file mode 100644
index 000000000..9f56fbd67
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/blush.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/bong.webp b/files/assets/CHRISTMAS/images/emojis/bong.webp
new file mode 100644
index 000000000..e5e711dcf
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/bong.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/boomer.webp b/files/assets/CHRISTMAS/images/emojis/boomer.webp
new file mode 100644
index 000000000..cbe5a4050
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/boomer.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/boomermonster.webp b/files/assets/CHRISTMAS/images/emojis/boomermonster.webp
new file mode 100644
index 000000000..eed6a40b1
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/boomermonster.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/boomerportrait.webp b/files/assets/CHRISTMAS/images/emojis/boomerportrait.webp
new file mode 100644
index 000000000..948686f47
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/boomerportrait.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/bounce.webp b/files/assets/CHRISTMAS/images/emojis/bounce.webp
new file mode 100644
index 000000000..2acef75ce
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/bounce.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/bow.webp b/files/assets/CHRISTMAS/images/emojis/bow.webp
new file mode 100644
index 000000000..75b9cc120
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/bow.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/brainletbush.webp b/files/assets/CHRISTMAS/images/emojis/brainletbush.webp
new file mode 100644
index 000000000..e17bfd772
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/brainletbush.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/brainletcaved.webp b/files/assets/CHRISTMAS/images/emojis/brainletcaved.webp
new file mode 100644
index 000000000..0831c119f
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/brainletcaved.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/brainletchair.webp b/files/assets/CHRISTMAS/images/emojis/brainletchair.webp
new file mode 100644
index 000000000..d24b2b746
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/brainletchair.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/brainletchest.webp b/files/assets/CHRISTMAS/images/emojis/brainletchest.webp
new file mode 100644
index 000000000..24dc8fd98
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/brainletchest.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/brainletmaga.webp b/files/assets/CHRISTMAS/images/emojis/brainletmaga.webp
new file mode 100644
index 000000000..1ad108677
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/brainletmaga.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/brainletpit.webp b/files/assets/CHRISTMAS/images/emojis/brainletpit.webp
new file mode 100644
index 000000000..19fec57ab
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/brainletpit.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/breakheart.webp b/files/assets/CHRISTMAS/images/emojis/breakheart.webp
new file mode 100644
index 000000000..34c231b65
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/breakheart.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/bruh.webp b/files/assets/CHRISTMAS/images/emojis/bruh.webp
new file mode 100644
index 000000000..91e96cefb
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/bruh.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/bs.webp b/files/assets/CHRISTMAS/images/emojis/bs.webp
new file mode 100644
index 000000000..484e3fc18
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/bs.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/cartwheel.webp b/files/assets/CHRISTMAS/images/emojis/cartwheel.webp
new file mode 100644
index 000000000..e84e0e2b2
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/cartwheel.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/cat.webp b/files/assets/CHRISTMAS/images/emojis/cat.webp
new file mode 100644
index 000000000..e61bb5a13
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/cat.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/celebrate.webp b/files/assets/CHRISTMAS/images/emojis/celebrate.webp
new file mode 100644
index 000000000..73ed685c1
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/celebrate.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/chad.webp b/files/assets/CHRISTMAS/images/emojis/chad.webp
new file mode 100644
index 000000000..34468565e
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/chad.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/chadarab.webp b/files/assets/CHRISTMAS/images/emojis/chadarab.webp
new file mode 100644
index 000000000..0257c0391
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/chadarab.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/chadasian.webp b/files/assets/CHRISTMAS/images/emojis/chadasian.webp
new file mode 100644
index 000000000..089c0c2c2
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/chadasian.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/chadblack.webp b/files/assets/CHRISTMAS/images/emojis/chadblack.webp
new file mode 100644
index 000000000..5f30834ce
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/chadblack.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/chadjesus.webp b/files/assets/CHRISTMAS/images/emojis/chadjesus.webp
new file mode 100644
index 000000000..d9ded97d6
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/chadjesus.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/chadjew.webp b/files/assets/CHRISTMAS/images/emojis/chadjew.webp
new file mode 100644
index 000000000..1aaee6d22
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/chadjew.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/chadjihadi.webp b/files/assets/CHRISTMAS/images/emojis/chadjihadi.webp
new file mode 100644
index 000000000..c30612442
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/chadjihadi.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/chadlatino.webp b/files/assets/CHRISTMAS/images/emojis/chadlatino.webp
new file mode 100644
index 000000000..107093f4f
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/chadlatino.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/chadlibleft.webp b/files/assets/CHRISTMAS/images/emojis/chadlibleft.webp
new file mode 100644
index 000000000..cf4e59ca1
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/chadlibleft.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/chadno.webp b/files/assets/CHRISTMAS/images/emojis/chadno.webp
new file mode 100644
index 000000000..293f83ee9
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/chadno.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/chadnordic.webp b/files/assets/CHRISTMAS/images/emojis/chadnordic.webp
new file mode 100644
index 000000000..80d097740
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/chadnordic.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/chadsikh.webp b/files/assets/CHRISTMAS/images/emojis/chadsikh.webp
new file mode 100644
index 000000000..1eb5693f9
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/chadsikh.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/chadusa.webp b/files/assets/CHRISTMAS/images/emojis/chadusa.webp
new file mode 100644
index 000000000..2c3877b58
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/chadusa.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/chadyes.webp b/files/assets/CHRISTMAS/images/emojis/chadyes.webp
new file mode 100644
index 000000000..39ad1b630
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/chadyes.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/chadyescapy.webp b/files/assets/CHRISTMAS/images/emojis/chadyescapy.webp
new file mode 100644
index 000000000..00becb5c8
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/chadyescapy.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/chainsaw.webp b/files/assets/CHRISTMAS/images/emojis/chainsaw.webp
new file mode 100644
index 000000000..a6cddae93
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/chainsaw.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/challengeaccepted.webp b/files/assets/CHRISTMAS/images/emojis/challengeaccepted.webp
new file mode 100644
index 000000000..ca1979279
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/challengeaccepted.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/cheers.webp b/files/assets/CHRISTMAS/images/emojis/cheers.webp
new file mode 100644
index 000000000..a03427969
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/cheers.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/chudsey.webp b/files/assets/CHRISTMAS/images/emojis/chudsey.webp
new file mode 100644
index 000000000..007699a70
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/chudsey.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/clap.webp b/files/assets/CHRISTMAS/images/emojis/clap.webp
new file mode 100644
index 000000000..4ed2d9361
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/clap.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/clueless.webp b/files/assets/CHRISTMAS/images/emojis/clueless.webp
new file mode 100644
index 000000000..c2d3ab559
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/clueless.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/cold.webp b/files/assets/CHRISTMAS/images/emojis/cold.webp
new file mode 100644
index 000000000..70f3b626c
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/cold.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/confused.webp b/files/assets/CHRISTMAS/images/emojis/confused.webp
new file mode 100644
index 000000000..6a587bab7
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/confused.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/contentiouscereal.webp b/files/assets/CHRISTMAS/images/emojis/contentiouscereal.webp
new file mode 100644
index 000000000..306078b19
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/contentiouscereal.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/coomer.webp b/files/assets/CHRISTMAS/images/emojis/coomer.webp
new file mode 100644
index 000000000..51873b22f
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/coomer.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/crazyeyes.webp b/files/assets/CHRISTMAS/images/emojis/crazyeyes.webp
new file mode 100644
index 000000000..81d450431
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/crazyeyes.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/cry.webp b/files/assets/CHRISTMAS/images/emojis/cry.webp
new file mode 100644
index 000000000..78aaa5691
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/cry.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/cryingatcuteness.webp b/files/assets/CHRISTMAS/images/emojis/cryingatcuteness.webp
new file mode 100644
index 000000000..9f3ea40fb
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/cryingatcuteness.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/cthulhu.webp b/files/assets/CHRISTMAS/images/emojis/cthulhu.webp
new file mode 100644
index 000000000..50490b47a
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/cthulhu.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/cute.webp b/files/assets/CHRISTMAS/images/emojis/cute.webp
new file mode 100644
index 000000000..3b11706cc
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/cute.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/d.webp b/files/assets/CHRISTMAS/images/emojis/d.webp
new file mode 100644
index 000000000..2803c0259
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/d.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/daydream.webp b/files/assets/CHRISTMAS/images/emojis/daydream.webp
new file mode 100644
index 000000000..b2f1f6ddf
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/daydream.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/ddr.webp b/files/assets/CHRISTMAS/images/emojis/ddr.webp
new file mode 100644
index 000000000..708fa6a54
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/ddr.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/deadpool.webp b/files/assets/CHRISTMAS/images/emojis/deadpool.webp
new file mode 100644
index 000000000..beb81829b
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/deadpool.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/derp.webp b/files/assets/CHRISTMAS/images/emojis/derp.webp
new file mode 100644
index 000000000..29e62e6e5
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/derp.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/derpcornsyrup.webp b/files/assets/CHRISTMAS/images/emojis/derpcornsyrup.webp
new file mode 100644
index 000000000..ad3f39244
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/derpcornsyrup.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/derpcrying.webp b/files/assets/CHRISTMAS/images/emojis/derpcrying.webp
new file mode 100644
index 000000000..173ed9442
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/derpcrying.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/derpcute.webp b/files/assets/CHRISTMAS/images/emojis/derpcute.webp
new file mode 100644
index 000000000..481b1f8fe
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/derpcute.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/derpdumb.webp b/files/assets/CHRISTMAS/images/emojis/derpdumb.webp
new file mode 100644
index 000000000..a6362bad6
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/derpdumb.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/derpeuphoria.webp b/files/assets/CHRISTMAS/images/emojis/derpeuphoria.webp
new file mode 100644
index 000000000..e98d1514f
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/derpeuphoria.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/derpinahd.webp b/files/assets/CHRISTMAS/images/emojis/derpinahd.webp
new file mode 100644
index 000000000..1404ce907
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/derpinahd.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/derpinapokerface.webp b/files/assets/CHRISTMAS/images/emojis/derpinapokerface.webp
new file mode 100644
index 000000000..16204c484
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/derpinapokerface.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/derpinasnickering.webp b/files/assets/CHRISTMAS/images/emojis/derpinasnickering.webp
new file mode 100644
index 000000000..31c687940
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/derpinasnickering.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/derpprocessing.webp b/files/assets/CHRISTMAS/images/emojis/derpprocessing.webp
new file mode 100644
index 000000000..ecc0f0495
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/derpprocessing.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/derprealization.webp b/files/assets/CHRISTMAS/images/emojis/derprealization.webp
new file mode 100644
index 000000000..0c5b8a9a3
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/derprealization.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/derpsnickering.webp b/files/assets/CHRISTMAS/images/emojis/derpsnickering.webp
new file mode 100644
index 000000000..5de2b3966
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/derpsnickering.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/derptalking.webp b/files/assets/CHRISTMAS/images/emojis/derptalking.webp
new file mode 100644
index 000000000..9cb9555e4
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/derptalking.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/derpthinking.webp b/files/assets/CHRISTMAS/images/emojis/derpthinking.webp
new file mode 100644
index 000000000..db5c0d76c
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/derpthinking.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/derpthumbsup.webp b/files/assets/CHRISTMAS/images/emojis/derpthumbsup.webp
new file mode 100644
index 000000000..6fe2810e7
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/derpthumbsup.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/derpunimpressed.webp b/files/assets/CHRISTMAS/images/emojis/derpunimpressed.webp
new file mode 100644
index 000000000..587d3c0e1
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/derpunimpressed.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/derpwhy.webp b/files/assets/CHRISTMAS/images/emojis/derpwhy.webp
new file mode 100644
index 000000000..68ae9d6ba
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/derpwhy.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/devilsmile.webp b/files/assets/CHRISTMAS/images/emojis/devilsmile.webp
new file mode 100644
index 000000000..7bebbf7bb
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/devilsmile.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/diddle.webp b/files/assets/CHRISTMAS/images/emojis/diddle.webp
new file mode 100644
index 000000000..6e04d58d1
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/diddle.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/die.webp b/files/assets/CHRISTMAS/images/emojis/die.webp
new file mode 100644
index 000000000..e277e8b16
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/die.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/distress.webp b/files/assets/CHRISTMAS/images/emojis/distress.webp
new file mode 100644
index 000000000..c7ba0a52c
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/distress.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/disturbing.webp b/files/assets/CHRISTMAS/images/emojis/disturbing.webp
new file mode 100644
index 000000000..8d4226dc1
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/disturbing.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/dizzy.webp b/files/assets/CHRISTMAS/images/emojis/dizzy.webp
new file mode 100644
index 000000000..d87a3dc7d
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/dizzy.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/domo.webp b/files/assets/CHRISTMAS/images/emojis/domo.webp
new file mode 100644
index 000000000..000333295
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/domo.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/donotwant.webp b/files/assets/CHRISTMAS/images/emojis/donotwant.webp
new file mode 100644
index 000000000..f74211026
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/donotwant.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/doomer.webp b/files/assets/CHRISTMAS/images/emojis/doomer.webp
new file mode 100644
index 000000000..52f24c45c
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/doomer.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/doomerfront.webp b/files/assets/CHRISTMAS/images/emojis/doomerfront.webp
new file mode 100644
index 000000000..0c89986a4
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/doomerfront.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/doomergirl.webp b/files/assets/CHRISTMAS/images/emojis/doomergirl.webp
new file mode 100644
index 000000000..7481ab987
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/doomergirl.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/doot.webp b/files/assets/CHRISTMAS/images/emojis/doot.webp
new file mode 100644
index 000000000..75b5a9821
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/doot.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/doughboy.webp b/files/assets/CHRISTMAS/images/emojis/doughboy.webp
new file mode 100644
index 000000000..4e63e133c
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/doughboy.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/dreamgender.webp b/files/assets/CHRISTMAS/images/emojis/dreamgender.webp
new file mode 100644
index 000000000..07bbdcd0d
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/dreamgender.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/drink.webp b/files/assets/CHRISTMAS/images/emojis/drink.webp
new file mode 100644
index 000000000..70f3a6b2a
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/drink.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/drool.webp b/files/assets/CHRISTMAS/images/emojis/drool.webp
new file mode 100644
index 000000000..5db0ff909
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/drool.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/dudeweedlmao.webp b/files/assets/CHRISTMAS/images/emojis/dudeweedlmao.webp
new file mode 100644
index 000000000..f25a04953
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/dudeweedlmao.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/edward.webp b/files/assets/CHRISTMAS/images/emojis/edward.webp
new file mode 100644
index 000000000..e3c59b5e9
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/edward.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/electro.webp b/files/assets/CHRISTMAS/images/emojis/electro.webp
new file mode 100644
index 000000000..9cc30d1d7
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/electro.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/elephant.webp b/files/assets/CHRISTMAS/images/emojis/elephant.webp
new file mode 100644
index 000000000..5425fb749
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/elephant.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/embarrassed.webp b/files/assets/CHRISTMAS/images/emojis/embarrassed.webp
new file mode 100644
index 000000000..13f467562
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/embarrassed.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/emo.webp b/files/assets/CHRISTMAS/images/emojis/emo.webp
new file mode 100644
index 000000000..132bfbe16
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/emo.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/emo2.webp b/files/assets/CHRISTMAS/images/emojis/emo2.webp
new file mode 100644
index 000000000..14b1db24a
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/emo2.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/epicfacefeatures.webp b/files/assets/CHRISTMAS/images/emojis/epicfacefeatures.webp
new file mode 100644
index 000000000..30b401ef2
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/epicfacefeatures.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/ethot.webp b/files/assets/CHRISTMAS/images/emojis/ethot.webp
new file mode 100644
index 000000000..2e0276882
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/ethot.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/evil.webp b/files/assets/CHRISTMAS/images/emojis/evil.webp
new file mode 100644
index 000000000..cb819e0b3
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/evil.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/evilclown.webp b/files/assets/CHRISTMAS/images/emojis/evilclown.webp
new file mode 100644
index 000000000..f35ffa4ac
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/evilclown.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/evilgrin.webp b/files/assets/CHRISTMAS/images/emojis/evilgrin.webp
new file mode 100644
index 000000000..ad414cfa6
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/evilgrin.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/facepalm.webp b/files/assets/CHRISTMAS/images/emojis/facepalm.webp
new file mode 100644
index 000000000..78fba16e7
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/facepalm.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/fancywithwine.webp b/files/assets/CHRISTMAS/images/emojis/fancywithwine.webp
new file mode 100644
index 000000000..d32e23583
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/fancywithwine.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/fap.webp b/files/assets/CHRISTMAS/images/emojis/fap.webp
new file mode 100644
index 000000000..8a75b5d15
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/fap.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/fatbrain.webp b/files/assets/CHRISTMAS/images/emojis/fatbrain.webp
new file mode 100644
index 000000000..0e7392ab3
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/fatbrain.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/fatpride.webp b/files/assets/CHRISTMAS/images/emojis/fatpride.webp
new file mode 100644
index 000000000..c27e5aa5d
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/fatpride.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/fatpriest.webp b/files/assets/CHRISTMAS/images/emojis/fatpriest.webp
new file mode 100644
index 000000000..fc4f67f0b
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/fatpriest.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/femboy.webp b/files/assets/CHRISTMAS/images/emojis/femboy.webp
new file mode 100644
index 000000000..92ae2bbad
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/femboy.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/fffffffuuuuuuuuuuuu.webp b/files/assets/CHRISTMAS/images/emojis/fffffffuuuuuuuuuuuu.webp
new file mode 100644
index 000000000..9cd6c46ac
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/fffffffuuuuuuuuuuuu.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/firecat.webp b/files/assets/CHRISTMAS/images/emojis/firecat.webp
new file mode 100644
index 000000000..99e4e976a
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/firecat.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/flamethrower.webp b/files/assets/CHRISTMAS/images/emojis/flamethrower.webp
new file mode 100644
index 000000000..58f57ce8d
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/flamethrower.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/flipbird.webp b/files/assets/CHRISTMAS/images/emojis/flipbird.webp
new file mode 100644
index 000000000..4ba0e7455
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/flipbird.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/flipthetable.webp b/files/assets/CHRISTMAS/images/emojis/flipthetable.webp
new file mode 100644
index 000000000..96f29e741
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/flipthetable.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/flirt.webp b/files/assets/CHRISTMAS/images/emojis/flirt.webp
new file mode 100644
index 000000000..8bc736e6a
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/flirt.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/foreveralone.webp b/files/assets/CHRISTMAS/images/emojis/foreveralone.webp
new file mode 100644
index 000000000..ff0b7f172
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/foreveralone.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/foreveralonehappy.webp b/files/assets/CHRISTMAS/images/emojis/foreveralonehappy.webp
new file mode 100644
index 000000000..c553e3b00
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/foreveralonehappy.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/frown.webp b/files/assets/CHRISTMAS/images/emojis/frown.webp
new file mode 100644
index 000000000..04edf2364
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/frown.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/fuckoffcarp.webp b/files/assets/CHRISTMAS/images/emojis/fuckoffcarp.webp
new file mode 100644
index 000000000..5299b0a43
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/fuckoffcarp.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/gasp.webp b/files/assets/CHRISTMAS/images/emojis/gasp.webp
new file mode 100644
index 000000000..6c4653c81
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/gasp.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/gigachad.webp b/files/assets/CHRISTMAS/images/emojis/gigachad.webp
new file mode 100644
index 000000000..430d994ef
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/gigachad.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/gigachad2.webp b/files/assets/CHRISTMAS/images/emojis/gigachad2.webp
new file mode 100644
index 000000000..486531c6e
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/gigachad2.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/gigachad3.webp b/files/assets/CHRISTMAS/images/emojis/gigachad3.webp
new file mode 100644
index 000000000..b05dbcbc6
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/gigachad3.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/gigachadglow.webp b/files/assets/CHRISTMAS/images/emojis/gigachadglow.webp
new file mode 100644
index 000000000..6f1ebb575
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/gigachadglow.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/gigachadorthodox.webp b/files/assets/CHRISTMAS/images/emojis/gigachadorthodox.webp
new file mode 100644
index 000000000..7aa0938f7
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/gigachadorthodox.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/glomp.webp b/files/assets/CHRISTMAS/images/emojis/glomp.webp
new file mode 100644
index 000000000..2a01bf0f8
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/glomp.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/go.webp b/files/assets/CHRISTMAS/images/emojis/go.webp
new file mode 100644
index 000000000..65a138435
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/go.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/gogetter.webp b/files/assets/CHRISTMAS/images/emojis/gogetter.webp
new file mode 100644
index 000000000..4965ab3bb
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/gogetter.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/gooby.webp b/files/assets/CHRISTMAS/images/emojis/gooby.webp
new file mode 100644
index 000000000..69d4ef7e6
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/gooby.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/grr.webp b/files/assets/CHRISTMAS/images/emojis/grr.webp
new file mode 100644
index 000000000..a5c8f8187
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/grr.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/grug.webp b/files/assets/CHRISTMAS/images/emojis/grug.webp
new file mode 100644
index 000000000..6aa29bc56
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/grug.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/gtfo.webp b/files/assets/CHRISTMAS/images/emojis/gtfo.webp
new file mode 100644
index 000000000..8b215372d
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/gtfo.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/guitar.webp b/files/assets/CHRISTMAS/images/emojis/guitar.webp
new file mode 100644
index 000000000..d83ebef5c
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/guitar.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/haha.webp b/files/assets/CHRISTMAS/images/emojis/haha.webp
new file mode 100644
index 000000000..3936fae93
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/haha.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/handshake.webp b/files/assets/CHRISTMAS/images/emojis/handshake.webp
new file mode 100644
index 000000000..fb9f2a3e6
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/handshake.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/happydance.webp b/files/assets/CHRISTMAS/images/emojis/happydance.webp
new file mode 100644
index 000000000..9e1b8ffbe
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/happydance.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/headbang.webp b/files/assets/CHRISTMAS/images/emojis/headbang.webp
new file mode 100644
index 000000000..48ddfcc02
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/headbang.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/heart.webp b/files/assets/CHRISTMAS/images/emojis/heart.webp
new file mode 100644
index 000000000..d43bbf8c8
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/heart.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/heartbeat.webp b/files/assets/CHRISTMAS/images/emojis/heartbeat.webp
new file mode 100644
index 000000000..5c3496507
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/heartbeat.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/hearts.webp b/files/assets/CHRISTMAS/images/emojis/hearts.webp
new file mode 100644
index 000000000..9d13d2a79
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/hearts.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/hewillnever.webp b/files/assets/CHRISTMAS/images/emojis/hewillnever.webp
new file mode 100644
index 000000000..ff649a34d
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/hewillnever.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/highfive.webp b/files/assets/CHRISTMAS/images/emojis/highfive.webp
new file mode 100644
index 000000000..8a8210a68
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/highfive.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/hmm.webp b/files/assets/CHRISTMAS/images/emojis/hmm.webp
new file mode 100644
index 000000000..9c13c05c8
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/hmm.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/hmph.webp b/files/assets/CHRISTMAS/images/emojis/hmph.webp
new file mode 100644
index 000000000..ba5a07493
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/hmph.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/holdhands.webp b/files/assets/CHRISTMAS/images/emojis/holdhands.webp
new file mode 100644
index 000000000..855f266fc
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/holdhands.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/horny.webp b/files/assets/CHRISTMAS/images/emojis/horny.webp
new file mode 100644
index 000000000..9f91d2303
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/horny.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/hug.webp b/files/assets/CHRISTMAS/images/emojis/hug.webp
new file mode 100644
index 000000000..b7e397460
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/hug.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/hugging.webp b/files/assets/CHRISTMAS/images/emojis/hugging.webp
new file mode 100644
index 000000000..9ad501f94
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/hugging.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/hugs.webp b/files/assets/CHRISTMAS/images/emojis/hugs.webp
new file mode 100644
index 000000000..7a5e225d6
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/hugs.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/hump.webp b/files/assets/CHRISTMAS/images/emojis/hump.webp
new file mode 100644
index 000000000..c6e8bef6f
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/hump.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/humpbed.webp b/files/assets/CHRISTMAS/images/emojis/humpbed.webp
new file mode 100644
index 000000000..36245512e
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/humpbed.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/hysterical.webp b/files/assets/CHRISTMAS/images/emojis/hysterical.webp
new file mode 100644
index 000000000..f1b7c9c3a
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/hysterical.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/idhitit.webp b/files/assets/CHRISTMAS/images/emojis/idhitit.webp
new file mode 100644
index 000000000..2755ad988
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/idhitit.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/idontknow.webp b/files/assets/CHRISTMAS/images/emojis/idontknow.webp
new file mode 100644
index 000000000..b1158df1c
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/idontknow.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/ily.webp b/files/assets/CHRISTMAS/images/emojis/ily.webp
new file mode 100644
index 000000000..cb87feabf
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/ily.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/incelpride.webp b/files/assets/CHRISTMAS/images/emojis/incelpride.webp
new file mode 100644
index 000000000..6bca01924
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/incelpride.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/inlove.webp b/files/assets/CHRISTMAS/images/emojis/inlove.webp
new file mode 100644
index 000000000..cfb4258a7
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/inlove.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/interuptedreading.webp b/files/assets/CHRISTMAS/images/emojis/interuptedreading.webp
new file mode 100644
index 000000000..8751e208c
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/interuptedreading.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/iseewhatyoudidthere.webp b/files/assets/CHRISTMAS/images/emojis/iseewhatyoudidthere.webp
new file mode 100644
index 000000000..ee39f4985
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/iseewhatyoudidthere.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/israel.webp b/files/assets/CHRISTMAS/images/emojis/israel.webp
new file mode 100644
index 000000000..b535e3c66
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/israel.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/jason.webp b/files/assets/CHRISTMAS/images/emojis/jason.webp
new file mode 100644
index 000000000..89a429c64
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/jason.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/jawdrop.webp b/files/assets/CHRISTMAS/images/emojis/jawdrop.webp
new file mode 100644
index 000000000..2f6cad2e4
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/jawdrop.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/jedi.webp b/files/assets/CHRISTMAS/images/emojis/jedi.webp
new file mode 100644
index 000000000..5c4f3d74d
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/jedi.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/jester.webp b/files/assets/CHRISTMAS/images/emojis/jester.webp
new file mode 100644
index 000000000..e3842d260
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/jester.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/kaboom.webp b/files/assets/CHRISTMAS/images/emojis/kaboom.webp
new file mode 100644
index 000000000..d438b52c9
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/kaboom.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/karlmarxey.webp b/files/assets/CHRISTMAS/images/emojis/karlmarxey.webp
new file mode 100644
index 000000000..b97496da1
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/karlmarxey.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/kazakhstan.webp b/files/assets/CHRISTMAS/images/emojis/kazakhstan.webp
new file mode 100644
index 000000000..23423ad03
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/kazakhstan.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/kick.webp b/files/assets/CHRISTMAS/images/emojis/kick.webp
new file mode 100644
index 000000000..c33eed59d
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/kick.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/killherkillher.webp b/files/assets/CHRISTMAS/images/emojis/killherkillher.webp
new file mode 100644
index 000000000..5603e7a70
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/killherkillher.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/kiss.webp b/files/assets/CHRISTMAS/images/emojis/kiss.webp
new file mode 100644
index 000000000..76a09fb7d
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/kiss.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/kitty.webp b/files/assets/CHRISTMAS/images/emojis/kitty.webp
new file mode 100644
index 000000000..b4291f52d
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/kitty.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/kyleface.webp b/files/assets/CHRISTMAS/images/emojis/kyleface.webp
new file mode 100644
index 000000000..7e0e376e8
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/kyleface.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/kylieface.webp b/files/assets/CHRISTMAS/images/emojis/kylieface.webp
new file mode 100644
index 000000000..7e0e376e8
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/kylieface.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/landlordlove.webp b/files/assets/CHRISTMAS/images/emojis/landlordlove.webp
new file mode 100644
index 000000000..c4c123bb6
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/landlordlove.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/laughchair.webp b/files/assets/CHRISTMAS/images/emojis/laughchair.webp
new file mode 100644
index 000000000..4bbb87a6f
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/laughchair.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/ledesire.webp b/files/assets/CHRISTMAS/images/emojis/ledesire.webp
new file mode 100644
index 000000000..b03a770ab
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/ledesire.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/leexcited.webp b/files/assets/CHRISTMAS/images/emojis/leexcited.webp
new file mode 100644
index 000000000..54ae32d2d
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/leexcited.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/legenius.webp b/files/assets/CHRISTMAS/images/emojis/legenius.webp
new file mode 100644
index 000000000..44f1989a0
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/legenius.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/lelolidk.webp b/files/assets/CHRISTMAS/images/emojis/lelolidk.webp
new file mode 100644
index 000000000..ce8bc7b17
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/lelolidk.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/lemiddlefinger.webp b/files/assets/CHRISTMAS/images/emojis/lemiddlefinger.webp
new file mode 100644
index 000000000..5eacd2cc9
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/lemiddlefinger.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/lemindblown.webp b/files/assets/CHRISTMAS/images/emojis/lemindblown.webp
new file mode 100644
index 000000000..279b0a9a9
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/lemindblown.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/leokay.webp b/files/assets/CHRISTMAS/images/emojis/leokay.webp
new file mode 100644
index 000000000..922ac2c19
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/leokay.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/lepanicrunning.webp b/files/assets/CHRISTMAS/images/emojis/lepanicrunning.webp
new file mode 100644
index 000000000..53bb80050
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/lepanicrunning.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/lepokerface.webp b/files/assets/CHRISTMAS/images/emojis/lepokerface.webp
new file mode 100644
index 000000000..e601537ec
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/lepokerface.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/lepokerface2.webp b/files/assets/CHRISTMAS/images/emojis/lepokerface2.webp
new file mode 100644
index 000000000..8939a6f1b
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/lepokerface2.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/lerageface.webp b/files/assets/CHRISTMAS/images/emojis/lerageface.webp
new file mode 100644
index 000000000..13393ed85
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/lerageface.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/leseriousface.webp b/files/assets/CHRISTMAS/images/emojis/leseriousface.webp
new file mode 100644
index 000000000..d43be724e
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/leseriousface.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/lgbt.webp b/files/assets/CHRISTMAS/images/emojis/lgbt.webp
new file mode 100644
index 000000000..556af45dc
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/lgbt.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/lick.webp b/files/assets/CHRISTMAS/images/emojis/lick.webp
new file mode 100644
index 000000000..390965d95
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/lick.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/likeaboss.webp b/files/assets/CHRISTMAS/images/emojis/likeaboss.webp
new file mode 100644
index 000000000..c2918ab1d
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/likeaboss.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/link.webp b/files/assets/CHRISTMAS/images/emojis/link.webp
new file mode 100644
index 000000000..05282cef3
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/link.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/lol.webp b/files/assets/CHRISTMAS/images/emojis/lol.webp
new file mode 100644
index 000000000..809291d56
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/lol.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/lolbeat.webp b/files/assets/CHRISTMAS/images/emojis/lolbeat.webp
new file mode 100644
index 000000000..ccf76a0b9
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/lolbeat.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/lolface.webp b/files/assets/CHRISTMAS/images/emojis/lolface.webp
new file mode 100644
index 000000000..c30cfa847
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/lolface.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/longwhiskers.webp b/files/assets/CHRISTMAS/images/emojis/longwhiskers.webp
new file mode 100644
index 000000000..ceefe6041
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/longwhiskers.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/loving.webp b/files/assets/CHRISTMAS/images/emojis/loving.webp
new file mode 100644
index 000000000..e2fafea12
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/loving.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/makeout.webp b/files/assets/CHRISTMAS/images/emojis/makeout.webp
new file mode 100644
index 000000000..bb1b623b6
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/makeout.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/manymiddlefingers.webp b/files/assets/CHRISTMAS/images/emojis/manymiddlefingers.webp
new file mode 100644
index 000000000..7b0518673
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/manymiddlefingers.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/marcerberus.webp b/files/assets/CHRISTMAS/images/emojis/marcerberus.webp
new file mode 100644
index 000000000..88ea63ad9
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/marcerberus.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/marchipmunk.webp b/files/assets/CHRISTMAS/images/emojis/marchipmunk.webp
new file mode 100644
index 000000000..71922f49a
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/marchipmunk.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/marchipmunklove.webp b/files/assets/CHRISTMAS/images/emojis/marchipmunklove.webp
new file mode 100644
index 000000000..cbaddce8b
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/marchipmunklove.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/marcusfootball.webp b/files/assets/CHRISTMAS/images/emojis/marcusfootball.webp
new file mode 100644
index 000000000..39c48a31a
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/marcusfootball.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/marfield.webp b/files/assets/CHRISTMAS/images/emojis/marfield.webp
new file mode 100644
index 000000000..f7fa9f0c1
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/marfield.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/marje.webp b/files/assets/CHRISTMAS/images/emojis/marje.webp
new file mode 100644
index 000000000..70d552c5e
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/marje.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/marlion.webp b/files/assets/CHRISTMAS/images/emojis/marlion.webp
new file mode 100644
index 000000000..68daa63d4
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/marlion.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/marmsey.webp b/files/assets/CHRISTMAS/images/emojis/marmsey.webp
new file mode 100644
index 000000000..54662eae7
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/marmsey.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/marppy.webp b/files/assets/CHRISTMAS/images/emojis/marppy.webp
new file mode 100644
index 000000000..09bf959f2
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/marppy.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/marscientist.webp b/files/assets/CHRISTMAS/images/emojis/marscientist.webp
new file mode 100644
index 000000000..a9c949e8c
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/marscientist.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/marsey173.webp b/files/assets/CHRISTMAS/images/emojis/marsey173.webp
new file mode 100644
index 000000000..e8ee7b3c4
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/marsey173.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/marsey1984.webp b/files/assets/CHRISTMAS/images/emojis/marsey1984.webp
new file mode 100644
index 000000000..eceaa280e
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/marsey1984.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/marsey300.webp b/files/assets/CHRISTMAS/images/emojis/marsey300.webp
new file mode 100644
index 000000000..474a8c44b
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/marsey300.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/marsey40k.webp b/files/assets/CHRISTMAS/images/emojis/marsey40k.webp
new file mode 100644
index 000000000..2fc3c51c9
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/marsey40k.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/marsey420.webp b/files/assets/CHRISTMAS/images/emojis/marsey420.webp
new file mode 100644
index 000000000..a9e6dd8eb
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/marsey420.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/marsey4chan.webp b/files/assets/CHRISTMAS/images/emojis/marsey4chan.webp
new file mode 100644
index 000000000..6738eb4a6
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/marsey4chan.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/marsey666.webp b/files/assets/CHRISTMAS/images/emojis/marsey666.webp
new file mode 100644
index 000000000..ba6038cc3
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/marsey666.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/marsey666black.webp b/files/assets/CHRISTMAS/images/emojis/marsey666black.webp
new file mode 100644
index 000000000..d68e2d683
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/marsey666black.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/marsey69.webp b/files/assets/CHRISTMAS/images/emojis/marsey69.webp
new file mode 100644
index 000000000..6c68de76a
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/marsey69.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/marseyagree.webp b/files/assets/CHRISTMAS/images/emojis/marseyagree.webp
new file mode 100644
index 000000000..78121f458
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/marseyagree.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/marseyairquotes.webp b/files/assets/CHRISTMAS/images/emojis/marseyairquotes.webp
new file mode 100644
index 000000000..aeb6e6932
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/marseyairquotes.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/marseyakshually.webp b/files/assets/CHRISTMAS/images/emojis/marseyakshually.webp
new file mode 100644
index 000000000..0601798dd
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/marseyakshually.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/marseyakumu.webp b/files/assets/CHRISTMAS/images/emojis/marseyakumu.webp
new file mode 100644
index 000000000..f1d9caeae
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/marseyakumu.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/marseyalice.webp b/files/assets/CHRISTMAS/images/emojis/marseyalice.webp
new file mode 100644
index 000000000..ee5217095
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/marseyalice.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/marseyalien.webp b/files/assets/CHRISTMAS/images/emojis/marseyalien.webp
new file mode 100644
index 000000000..a283a875e
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/marseyalien.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/marseyamazon.webp b/files/assets/CHRISTMAS/images/emojis/marseyamazon.webp
new file mode 100644
index 000000000..6b5933a8d
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/marseyamazon.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/marseyandmarcus.webp b/files/assets/CHRISTMAS/images/emojis/marseyandmarcus.webp
new file mode 100644
index 000000000..6408a63e1
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/marseyandmarcus.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/marseyangel.webp b/files/assets/CHRISTMAS/images/emojis/marseyangel.webp
new file mode 100644
index 000000000..a55c25fa1
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/marseyangel.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/marseyangel2.webp b/files/assets/CHRISTMAS/images/emojis/marseyangel2.webp
new file mode 100644
index 000000000..e98c3e39d
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/marseyangel2.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/marseyanime.webp b/files/assets/CHRISTMAS/images/emojis/marseyanime.webp
new file mode 100644
index 000000000..c70956394
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/marseyanime.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/marseyannoyed.webp b/files/assets/CHRISTMAS/images/emojis/marseyannoyed.webp
new file mode 100644
index 000000000..95eef3aaa
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/marseyannoyed.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/marseyanticarp.webp b/files/assets/CHRISTMAS/images/emojis/marseyanticarp.webp
new file mode 100644
index 000000000..1ee93bb6b
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/marseyanticarp.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/marseyantiwork.webp b/files/assets/CHRISTMAS/images/emojis/marseyantiwork.webp
new file mode 100644
index 000000000..129a16f67
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/marseyantiwork.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/marseyaoc.webp b/files/assets/CHRISTMAS/images/emojis/marseyaoc.webp
new file mode 100644
index 000000000..80905a874
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/marseyaoc.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/marseyargentina.webp b/files/assets/CHRISTMAS/images/emojis/marseyargentina.webp
new file mode 100644
index 000000000..ac3d66e72
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/marseyargentina.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/marseyarmy.webp b/files/assets/CHRISTMAS/images/emojis/marseyarmy.webp
new file mode 100644
index 000000000..f3acfedfb
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/marseyarmy.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/marseyascii.webp b/files/assets/CHRISTMAS/images/emojis/marseyascii.webp
new file mode 100644
index 000000000..9e94a7a2b
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/marseyascii.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/marseyascii2.webp b/files/assets/CHRISTMAS/images/emojis/marseyascii2.webp
new file mode 100644
index 000000000..8f0413f4b
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/marseyascii2.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/marseyasian.webp b/files/assets/CHRISTMAS/images/emojis/marseyasian.webp
new file mode 100644
index 000000000..5936fc405
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/marseyasian.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/marseyatsume.webp b/files/assets/CHRISTMAS/images/emojis/marseyatsume.webp
new file mode 100644
index 000000000..7bb4437a6
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/marseyatsume.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/marseyauthleft.webp b/files/assets/CHRISTMAS/images/emojis/marseyauthleft.webp
new file mode 100644
index 000000000..96b0f0828
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/marseyauthleft.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/marseyauthright.webp b/files/assets/CHRISTMAS/images/emojis/marseyauthright.webp
new file mode 100644
index 000000000..f2ab541bd
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/marseyauthright.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/marseyautism.webp b/files/assets/CHRISTMAS/images/emojis/marseyautism.webp
new file mode 100644
index 000000000..c90e790a8
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/marseyautism.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/marseyaward.webp b/files/assets/CHRISTMAS/images/emojis/marseyaward.webp
new file mode 100644
index 000000000..5ab61fe20
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/marseyaward.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/marseyayy.webp b/files/assets/CHRISTMAS/images/emojis/marseyayy.webp
new file mode 100644
index 000000000..b0d74629f
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/marseyayy.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/marseybaby.webp b/files/assets/CHRISTMAS/images/emojis/marseybaby.webp
new file mode 100644
index 000000000..864b228d0
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/marseybaby.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/marseybackstab.webp b/files/assets/CHRISTMAS/images/emojis/marseybackstab.webp
new file mode 100644
index 000000000..36ff0bc10
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/marseybackstab.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/marseybadger.webp b/files/assets/CHRISTMAS/images/emojis/marseybadger.webp
new file mode 100644
index 000000000..fb24a85b7
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/marseybadger.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/marseybadluck.webp b/files/assets/CHRISTMAS/images/emojis/marseybadluck.webp
new file mode 100644
index 000000000..df23eb574
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/marseybadluck.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/marseybait.webp b/files/assets/CHRISTMAS/images/emojis/marseybait.webp
new file mode 100644
index 000000000..a07677c86
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/marseybait.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/marseybaited.webp b/files/assets/CHRISTMAS/images/emojis/marseybaited.webp
new file mode 100644
index 000000000..bf2c24028
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/marseybaited.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/marseyballerina.webp b/files/assets/CHRISTMAS/images/emojis/marseyballerina.webp
new file mode 100644
index 000000000..762e5c16f
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/marseyballerina.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/marseyban.webp b/files/assets/CHRISTMAS/images/emojis/marseyban.webp
new file mode 100644
index 000000000..6b2150912
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/marseyban.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/marseybane.webp b/files/assets/CHRISTMAS/images/emojis/marseybane.webp
new file mode 100644
index 000000000..59410a8d4
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/marseybane.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/marseybaphomet.webp b/files/assets/CHRISTMAS/images/emojis/marseybaphomet.webp
new file mode 100644
index 000000000..a9b2869a7
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/marseybaphomet.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/marseybased.webp b/files/assets/CHRISTMAS/images/emojis/marseybased.webp
new file mode 100644
index 000000000..d29a883df
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/marseybased.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/marseybateman.webp b/files/assets/CHRISTMAS/images/emojis/marseybateman.webp
new file mode 100644
index 000000000..bd9067495
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/marseybateman.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/marseybath.webp b/files/assets/CHRISTMAS/images/emojis/marseybath.webp
new file mode 100644
index 000000000..d8a608eb9
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/marseybath.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/marseybattered.webp b/files/assets/CHRISTMAS/images/emojis/marseybattered.webp
new file mode 100644
index 000000000..4ef701413
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/marseybattered.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/marseybear.webp b/files/assets/CHRISTMAS/images/emojis/marseybear.webp
new file mode 100644
index 000000000..af31afcac
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/marseybear.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/marseybear2.webp b/files/assets/CHRISTMAS/images/emojis/marseybear2.webp
new file mode 100644
index 000000000..3d50ef3e0
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/marseybear2.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/marseybeggar.webp b/files/assets/CHRISTMAS/images/emojis/marseybeggar.webp
new file mode 100644
index 000000000..152a165f7
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/marseybeggar.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/marseybegging.webp b/files/assets/CHRISTMAS/images/emojis/marseybegging.webp
new file mode 100644
index 000000000..6889fa751
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/marseybegging.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/marseyben10.webp b/files/assets/CHRISTMAS/images/emojis/marseyben10.webp
new file mode 100644
index 000000000..cd4d9e2ae
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/marseyben10.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/marseybiden.webp b/files/assets/CHRISTMAS/images/emojis/marseybiden.webp
new file mode 100644
index 000000000..88759c58b
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/marseybiden.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/marseybigbrain.webp b/files/assets/CHRISTMAS/images/emojis/marseybigbrain.webp
new file mode 100644
index 000000000..3cc5bf53a
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/marseybigbrain.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/marseybigdog.webp b/files/assets/CHRISTMAS/images/emojis/marseybigdog.webp
new file mode 100644
index 000000000..5592aa9d2
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/marseybigdog.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/marseybiker.webp b/files/assets/CHRISTMAS/images/emojis/marseybiker.webp
new file mode 100644
index 000000000..1553f32ba
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/marseybiker.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/marseybingus.webp b/files/assets/CHRISTMAS/images/emojis/marseybingus.webp
new file mode 100644
index 000000000..3c5c6e1ed
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/marseybingus.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/marseybinladen.webp b/files/assets/CHRISTMAS/images/emojis/marseybinladen.webp
new file mode 100644
index 000000000..209a29dbf
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/marseybinladen.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/marseybiting.webp b/files/assets/CHRISTMAS/images/emojis/marseybiting.webp
new file mode 100644
index 000000000..68e170535
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/marseybiting.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/marseyblack.webp b/files/assets/CHRISTMAS/images/emojis/marseyblack.webp
new file mode 100644
index 000000000..b7e2ecd48
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/marseyblack.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/marseyblackface.webp b/files/assets/CHRISTMAS/images/emojis/marseyblackface.webp
new file mode 100644
index 000000000..d9d2a99c6
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/marseyblackface.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/marseyblackfacexmas.webp b/files/assets/CHRISTMAS/images/emojis/marseyblackfacexmas.webp
new file mode 100644
index 000000000..8021ff4d8
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/marseyblackfacexmas.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/marseyblm.webp b/files/assets/CHRISTMAS/images/emojis/marseyblm.webp
new file mode 100644
index 000000000..c10af1751
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/marseyblm.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/marseyblowkiss.webp b/files/assets/CHRISTMAS/images/emojis/marseyblowkiss.webp
new file mode 100644
index 000000000..370a833f0
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/marseyblowkiss.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/marseyblueanime.webp b/files/assets/CHRISTMAS/images/emojis/marseyblueanime.webp
new file mode 100644
index 000000000..773e54e5c
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/marseyblueanime.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/marseybluecheck.webp b/files/assets/CHRISTMAS/images/emojis/marseybluecheck.webp
new file mode 100644
index 000000000..6d74e7e52
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/marseybluecheck.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/marseybluehands.webp b/files/assets/CHRISTMAS/images/emojis/marseybluehands.webp
new file mode 100644
index 000000000..a50d8e204
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/marseybluehands.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/marseyblush.webp b/files/assets/CHRISTMAS/images/emojis/marseyblush.webp
new file mode 100644
index 000000000..f3703b521
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/marseyblush.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/marseybog.webp b/files/assets/CHRISTMAS/images/emojis/marseybog.webp
new file mode 100644
index 000000000..abc7e6eb4
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/marseybog.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/marseybong.webp b/files/assets/CHRISTMAS/images/emojis/marseybong.webp
new file mode 100644
index 000000000..db955413c
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/marseybong.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/marseybongo.webp b/files/assets/CHRISTMAS/images/emojis/marseybongo.webp
new file mode 100644
index 000000000..bb92300ce
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/marseybongo.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/marseybongosnoo.webp b/files/assets/CHRISTMAS/images/emojis/marseybongosnoo.webp
new file mode 100644
index 000000000..0640b1a5a
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/marseybongosnoo.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/marseybongosrdine.webp b/files/assets/CHRISTMAS/images/emojis/marseybongosrdine.webp
new file mode 100644
index 000000000..6f0285de9
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/marseybongosrdine.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/marseybooba.webp b/files/assets/CHRISTMAS/images/emojis/marseybooba.webp
new file mode 100644
index 000000000..cc6afd9e5
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/marseybooba.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/marseyboomer.webp b/files/assets/CHRISTMAS/images/emojis/marseyboomer.webp
new file mode 100644
index 000000000..a481952c4
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/marseyboomer.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/marseybountyhunter.webp b/files/assets/CHRISTMAS/images/emojis/marseybountyhunter.webp
new file mode 100644
index 000000000..3839bbca6
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/marseybountyhunter.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/marseybowl.webp b/files/assets/CHRISTMAS/images/emojis/marseybowl.webp
new file mode 100644
index 000000000..ea449fb8c
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/marseybowl.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/marseybrainlet.webp b/files/assets/CHRISTMAS/images/emojis/marseybrainlet.webp
new file mode 100644
index 000000000..91eb46d6d
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/marseybrainlet.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/marseybrap.webp b/files/assets/CHRISTMAS/images/emojis/marseybrap.webp
new file mode 100644
index 000000000..c4deaceda
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/marseybrap.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/marseybrave.webp b/files/assets/CHRISTMAS/images/emojis/marseybrave.webp
new file mode 100644
index 000000000..544c2ae15
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/marseybrave.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/marseybrianna.webp b/files/assets/CHRISTMAS/images/emojis/marseybrianna.webp
new file mode 100644
index 000000000..e873453ef
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/marseybrianna.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/marseybrianna2.webp b/files/assets/CHRISTMAS/images/emojis/marseybrianna2.webp
new file mode 100644
index 000000000..a5ee6d2cb
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/marseybrianna2.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/marseybride.webp b/files/assets/CHRISTMAS/images/emojis/marseybride.webp
new file mode 100644
index 000000000..73849daaf
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/marseybride.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/marseybruh.webp b/files/assets/CHRISTMAS/images/emojis/marseybruh.webp
new file mode 100644
index 000000000..20cef73d1
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/marseybruh.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/marseybuff.webp b/files/assets/CHRISTMAS/images/emojis/marseybuff.webp
new file mode 100644
index 000000000..57bddf88e
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/marseybuff.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/marseybug.webp b/files/assets/CHRISTMAS/images/emojis/marseybug.webp
new file mode 100644
index 000000000..a20e2a021
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/marseybug.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/marseybug2.webp b/files/assets/CHRISTMAS/images/emojis/marseybug2.webp
new file mode 100644
index 000000000..851ba7b9d
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/marseybug2.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/marseybunny.webp b/files/assets/CHRISTMAS/images/emojis/marseybunny.webp
new file mode 100644
index 000000000..422f169e2
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/marseybunny.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/marseyburger.webp b/files/assets/CHRISTMAS/images/emojis/marseyburger.webp
new file mode 100644
index 000000000..ded20f32e
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/marseyburger.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/marseybush.webp b/files/assets/CHRISTMAS/images/emojis/marseybush.webp
new file mode 100644
index 000000000..f3e2fc65c
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/marseybush.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/marseybux.webp b/files/assets/CHRISTMAS/images/emojis/marseybux.webp
new file mode 100644
index 000000000..fbed5c59f
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/marseybux.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/marseybye.webp b/files/assets/CHRISTMAS/images/emojis/marseybye.webp
new file mode 100644
index 000000000..4212ea660
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/marseybye.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/marseybyeceps.webp b/files/assets/CHRISTMAS/images/emojis/marseybyeceps.webp
new file mode 100644
index 000000000..73db48773
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/marseybyeceps.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/marseycalarts.webp b/files/assets/CHRISTMAS/images/emojis/marseycalarts.webp
new file mode 100644
index 000000000..b0b82a2d2
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/marseycalarts.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/marseycamus.webp b/files/assets/CHRISTMAS/images/emojis/marseycamus.webp
new file mode 100644
index 000000000..908d09365
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/marseycamus.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/marseycanned.webp b/files/assets/CHRISTMAS/images/emojis/marseycanned.webp
new file mode 100644
index 000000000..e20051cad
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/marseycanned.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/marseycapitalistmanlet.webp b/files/assets/CHRISTMAS/images/emojis/marseycapitalistmanlet.webp
new file mode 100644
index 000000000..3adbbc763
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/marseycapitalistmanlet.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/marseycapy.webp b/files/assets/CHRISTMAS/images/emojis/marseycapy.webp
new file mode 100644
index 000000000..6cb25a0a5
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/marseycapy.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/marseycapypat.webp b/files/assets/CHRISTMAS/images/emojis/marseycapypat.webp
new file mode 100644
index 000000000..03a1ad946
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/marseycapypat.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/marseycapywalking.webp b/files/assets/CHRISTMAS/images/emojis/marseycapywalking.webp
new file mode 100644
index 000000000..62b40dd33
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/marseycapywalking.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/marseycarp.webp b/files/assets/CHRISTMAS/images/emojis/marseycarp.webp
new file mode 100644
index 000000000..488793963
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/marseycarp.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/marseycarp2.webp b/files/assets/CHRISTMAS/images/emojis/marseycarp2.webp
new file mode 100644
index 000000000..2576dc559
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/marseycarp2.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/marseycarp3.webp b/files/assets/CHRISTMAS/images/emojis/marseycarp3.webp
new file mode 100644
index 000000000..1bb00c381
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/marseycarp3.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/marseycarpcrying.webp b/files/assets/CHRISTMAS/images/emojis/marseycarpcrying.webp
new file mode 100644
index 000000000..c2efc2a58
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/marseycarpcrying.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/marseycarppat.webp b/files/assets/CHRISTMAS/images/emojis/marseycarppat.webp
new file mode 100644
index 000000000..851861197
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/marseycarppat.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/marseycat.webp b/files/assets/CHRISTMAS/images/emojis/marseycat.webp
new file mode 100644
index 000000000..95fb1f197
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/marseycat.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/marseycatgirl.webp b/files/assets/CHRISTMAS/images/emojis/marseycatgirl.webp
new file mode 100644
index 000000000..cdb74e806
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/marseycatgirl.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/marseycatgirl2.webp b/files/assets/CHRISTMAS/images/emojis/marseycatgirl2.webp
new file mode 100644
index 000000000..398edc19f
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/marseycatgirl2.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/marseycatgirl3.webp b/files/assets/CHRISTMAS/images/emojis/marseycatgirl3.webp
new file mode 100644
index 000000000..25524b111
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/marseycatgirl3.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/marseycatgirljanny.webp b/files/assets/CHRISTMAS/images/emojis/marseycatgirljanny.webp
new file mode 100644
index 000000000..8a9838e14
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/marseycatgirljanny.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/marseyceiling.webp b/files/assets/CHRISTMAS/images/emojis/marseyceiling.webp
new file mode 100644
index 000000000..e829e0b72
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/marseyceiling.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/marseycensored.webp b/files/assets/CHRISTMAS/images/emojis/marseycensored.webp
new file mode 100644
index 000000000..08c2132fd
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/marseycensored.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/marseycenter.webp b/files/assets/CHRISTMAS/images/emojis/marseycenter.webp
new file mode 100644
index 000000000..478b7851c
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/marseycenter.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/marseychad.webp b/files/assets/CHRISTMAS/images/emojis/marseychad.webp
new file mode 100644
index 000000000..682054565
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/marseychad.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/marseycheeky.webp b/files/assets/CHRISTMAS/images/emojis/marseycheeky.webp
new file mode 100644
index 000000000..7160de905
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/marseycheeky.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/marseycheerup.webp b/files/assets/CHRISTMAS/images/emojis/marseycheerup.webp
new file mode 100644
index 000000000..16f85ceff
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/marseycheerup.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/marseycheesehead.webp b/files/assets/CHRISTMAS/images/emojis/marseycheesehead.webp
new file mode 100644
index 000000000..368261eab
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/marseycheesehead.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/marseychef.webp b/files/assets/CHRISTMAS/images/emojis/marseychef.webp
new file mode 100644
index 000000000..e1a25dfc1
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/marseychef.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/marseycherokee.webp b/files/assets/CHRISTMAS/images/emojis/marseycherokee.webp
new file mode 100644
index 000000000..2844680dc
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/marseycherokee.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/marseychonker.webp b/files/assets/CHRISTMAS/images/emojis/marseychonker.webp
new file mode 100644
index 000000000..d85bde32e
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/marseychonker.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/marseychonker2.webp b/files/assets/CHRISTMAS/images/emojis/marseychonker2.webp
new file mode 100644
index 000000000..a5b2e9262
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/marseychonker2.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/marseychristmas.webp b/files/assets/CHRISTMAS/images/emojis/marseychristmas.webp
new file mode 100644
index 000000000..dcfc36aa6
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/marseychristmas.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/marseychristmasbulb.webp b/files/assets/CHRISTMAS/images/emojis/marseychristmasbulb.webp
new file mode 100644
index 000000000..e78241b54
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/marseychristmasbulb.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/marseychristmasbulb2.webp b/files/assets/CHRISTMAS/images/emojis/marseychristmasbulb2.webp
new file mode 100644
index 000000000..9c842a177
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/marseychristmasbulb2.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/marseychristmaself.webp b/files/assets/CHRISTMAS/images/emojis/marseychristmaself.webp
new file mode 100644
index 000000000..7980459db
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/marseychristmaself.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/marseychristmaself2.webp b/files/assets/CHRISTMAS/images/emojis/marseychristmaself2.webp
new file mode 100644
index 000000000..eb6234eb9
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/marseychristmaself2.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/marseychristmasgift.webp b/files/assets/CHRISTMAS/images/emojis/marseychristmasgift.webp
new file mode 100644
index 000000000..c2fee4e98
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/marseychristmasgift.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/marseychristmaslove.webp b/files/assets/CHRISTMAS/images/emojis/marseychristmaslove.webp
new file mode 100644
index 000000000..86b53c357
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/marseychristmaslove.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/marseychristmasparty.webp b/files/assets/CHRISTMAS/images/emojis/marseychristmasparty.webp
new file mode 100644
index 000000000..124e1c780
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/marseychristmasparty.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/marseychristmasscarf.webp b/files/assets/CHRISTMAS/images/emojis/marseychristmasscarf.webp
new file mode 100644
index 000000000..2b49518bd
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/marseychristmasscarf.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/marseychristmastree.webp b/files/assets/CHRISTMAS/images/emojis/marseychristmastree.webp
new file mode 100644
index 000000000..7055fa26f
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/marseychristmastree.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/marseychucky.webp b/files/assets/CHRISTMAS/images/emojis/marseychucky.webp
new file mode 100644
index 000000000..c9dfcdfc7
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/marseychucky.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/marseychungus.webp b/files/assets/CHRISTMAS/images/emojis/marseychungus.webp
new file mode 100644
index 000000000..c64519f89
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/marseychungus.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/marseyclapping.webp b/files/assets/CHRISTMAS/images/emojis/marseyclapping.webp
new file mode 100644
index 000000000..c13958821
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/marseyclapping.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/marseycleonpeterson.webp b/files/assets/CHRISTMAS/images/emojis/marseycleonpeterson.webp
new file mode 100644
index 000000000..879f43447
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/marseycleonpeterson.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/marseyclown.webp b/files/assets/CHRISTMAS/images/emojis/marseyclown.webp
new file mode 100644
index 000000000..b14211a17
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/marseyclown.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/marseyclown2.webp b/files/assets/CHRISTMAS/images/emojis/marseyclown2.webp
new file mode 100644
index 000000000..c0739812e
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/marseyclown2.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/marseyclown3.webp b/files/assets/CHRISTMAS/images/emojis/marseyclown3.webp
new file mode 100644
index 000000000..2375e86c7
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/marseyclown3.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/marseycoal.webp b/files/assets/CHRISTMAS/images/emojis/marseycoal.webp
new file mode 100644
index 000000000..2e3d0ddec
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/marseycoal.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/marseycock.webp b/files/assets/CHRISTMAS/images/emojis/marseycock.webp
new file mode 100644
index 000000000..021ef2275
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/marseycock.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/marseycoin.webp b/files/assets/CHRISTMAS/images/emojis/marseycoin.webp
new file mode 100644
index 000000000..745b182fe
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/marseycoin.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/marseycolossal.webp b/files/assets/CHRISTMAS/images/emojis/marseycolossal.webp
new file mode 100644
index 000000000..d9b382cbb
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/marseycolossal.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/marseycommitted.webp b/files/assets/CHRISTMAS/images/emojis/marseycommitted.webp
new file mode 100644
index 000000000..b058e00c4
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/marseycommitted.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/marseycomrade.webp b/files/assets/CHRISTMAS/images/emojis/marseycomrade.webp
new file mode 100644
index 000000000..7b29a3afc
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/marseycomrade.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/marseycomradehandshake.webp b/files/assets/CHRISTMAS/images/emojis/marseycomradehandshake.webp
new file mode 100644
index 000000000..76cd18310
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/marseycomradehandshake.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/marseyconfused.webp b/files/assets/CHRISTMAS/images/emojis/marseyconfused.webp
new file mode 100644
index 000000000..aae662bca
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/marseyconfused.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/marseycontemplate.webp b/files/assets/CHRISTMAS/images/emojis/marseycontemplate.webp
new file mode 100644
index 000000000..92a9504e3
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/marseycontemplate.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/marseycontryclub.webp b/files/assets/CHRISTMAS/images/emojis/marseycontryclub.webp
new file mode 100644
index 000000000..bce542326
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/marseycontryclub.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/marseycool.webp b/files/assets/CHRISTMAS/images/emojis/marseycool.webp
new file mode 100644
index 000000000..5942ca508
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/marseycool.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/marseycool2.webp b/files/assets/CHRISTMAS/images/emojis/marseycool2.webp
new file mode 100644
index 000000000..bda85400f
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/marseycool2.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/marseycoomer.webp b/files/assets/CHRISTMAS/images/emojis/marseycoomer.webp
new file mode 100644
index 000000000..7187c69ac
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/marseycoomer.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/marseycoonass.webp b/files/assets/CHRISTMAS/images/emojis/marseycoonass.webp
new file mode 100644
index 000000000..e400d5180
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/marseycoonass.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/marseycop.webp b/files/assets/CHRISTMAS/images/emojis/marseycop.webp
new file mode 100644
index 000000000..e564b8bea
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/marseycop.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/marseycope.webp b/files/assets/CHRISTMAS/images/emojis/marseycope.webp
new file mode 100644
index 000000000..be62d976d
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/marseycope.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/marseycopeseethedilate.webp b/files/assets/CHRISTMAS/images/emojis/marseycopeseethedilate.webp
new file mode 100644
index 000000000..d20e23657
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/marseycopeseethedilate.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/marseycorn.webp b/files/assets/CHRISTMAS/images/emojis/marseycorn.webp
new file mode 100644
index 000000000..90e561284
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/marseycorn.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/marseycountryclub.webp b/files/assets/CHRISTMAS/images/emojis/marseycountryclub.webp
new file mode 100644
index 000000000..e4462d62b
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/marseycountryclub.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/marseycow.webp b/files/assets/CHRISTMAS/images/emojis/marseycow.webp
new file mode 100644
index 000000000..a3edc8b3d
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/marseycow.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/marseycowboy.webp b/files/assets/CHRISTMAS/images/emojis/marseycowboy.webp
new file mode 100644
index 000000000..e265f0525
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/marseycowboy.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/marseycreepy.webp b/files/assets/CHRISTMAS/images/emojis/marseycreepy.webp
new file mode 100644
index 000000000..26f784386
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/marseycreepy.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/marseycrucified.webp b/files/assets/CHRISTMAS/images/emojis/marseycrucified.webp
new file mode 100644
index 000000000..4d710e50e
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/marseycrucified.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/marseycrusader.webp b/files/assets/CHRISTMAS/images/emojis/marseycrusader.webp
new file mode 100644
index 000000000..ffdaed744
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/marseycrusader.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/marseycry.webp b/files/assets/CHRISTMAS/images/emojis/marseycry.webp
new file mode 100644
index 000000000..07c78b9fd
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/marseycry.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/marseycrying.webp b/files/assets/CHRISTMAS/images/emojis/marseycrying.webp
new file mode 100644
index 000000000..79bf7f048
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/marseycrying.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/marseycrying2.webp b/files/assets/CHRISTMAS/images/emojis/marseycrying2.webp
new file mode 100644
index 000000000..79bf7f048
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/marseycrying2.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/marseycthulhu.webp b/files/assets/CHRISTMAS/images/emojis/marseycthulhu.webp
new file mode 100644
index 000000000..1042685f3
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/marseycthulhu.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/marseycuck.webp b/files/assets/CHRISTMAS/images/emojis/marseycuck.webp
new file mode 100644
index 000000000..de33576e9
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/marseycuck.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/marseycumjar1.webp b/files/assets/CHRISTMAS/images/emojis/marseycumjar1.webp
new file mode 100644
index 000000000..6b3060bdf
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/marseycumjar1.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/marseycumjar2.webp b/files/assets/CHRISTMAS/images/emojis/marseycumjar2.webp
new file mode 100644
index 000000000..1d0b55854
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/marseycumjar2.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/marseycumjar3.webp b/files/assets/CHRISTMAS/images/emojis/marseycumjar3.webp
new file mode 100644
index 000000000..a3ff4b346
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/marseycumjar3.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/marseycut.webp b/files/assets/CHRISTMAS/images/emojis/marseycut.webp
new file mode 100644
index 000000000..40dc8115c
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/marseycut.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/marseycwc.webp b/files/assets/CHRISTMAS/images/emojis/marseycwc.webp
new file mode 100644
index 000000000..37d8e7120
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/marseycwc.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/marseydab.webp b/files/assets/CHRISTMAS/images/emojis/marseydab.webp
new file mode 100644
index 000000000..42d208a42
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/marseydab.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/marseydaemon.webp b/files/assets/CHRISTMAS/images/emojis/marseydaemon.webp
new file mode 100644
index 000000000..d2e75c658
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/marseydaemon.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/marseydarwin.webp b/files/assets/CHRISTMAS/images/emojis/marseydarwin.webp
new file mode 100644
index 000000000..99eb44255
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/marseydarwin.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/marseydawnbreaker.webp b/files/assets/CHRISTMAS/images/emojis/marseydawnbreaker.webp
new file mode 100644
index 000000000..46d09e7c6
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/marseydawnbreaker.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/marseydead.webp b/files/assets/CHRISTMAS/images/emojis/marseydead.webp
new file mode 100644
index 000000000..5199fb617
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/marseydead.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/marseydeadhorse.webp b/files/assets/CHRISTMAS/images/emojis/marseydeadhorse.webp
new file mode 100644
index 000000000..7bb4e203b
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/marseydeadhorse.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/marseydeadinside.webp b/files/assets/CHRISTMAS/images/emojis/marseydeadinside.webp
new file mode 100644
index 000000000..0e27b88a3
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/marseydeadinside.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/marseydealwithit.webp b/files/assets/CHRISTMAS/images/emojis/marseydealwithit.webp
new file mode 100644
index 000000000..56e77597a
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/marseydealwithit.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/marseydepressed.webp b/files/assets/CHRISTMAS/images/emojis/marseydepressed.webp
new file mode 100644
index 000000000..d2bfe1277
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/marseydepressed.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/marseyderp.webp b/files/assets/CHRISTMAS/images/emojis/marseyderp.webp
new file mode 100644
index 000000000..290bbcf9a
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/marseyderp.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/marseydespair.webp b/files/assets/CHRISTMAS/images/emojis/marseydespair.webp
new file mode 100644
index 000000000..d85a7c857
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/marseydespair.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/marseydetective.webp b/files/assets/CHRISTMAS/images/emojis/marseydetective.webp
new file mode 100644
index 000000000..69fad8958
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/marseydetective.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/marseydeux.webp b/files/assets/CHRISTMAS/images/emojis/marseydeux.webp
new file mode 100644
index 000000000..9b41e6c12
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/marseydeux.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/marseydeuxfoid.webp b/files/assets/CHRISTMAS/images/emojis/marseydeuxfoid.webp
new file mode 100644
index 000000000..b87e551eb
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/marseydeuxfoid.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/marseydevil.webp b/files/assets/CHRISTMAS/images/emojis/marseydevil.webp
new file mode 100644
index 000000000..51dd547f1
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/marseydevil.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/marseydicklet.webp b/files/assets/CHRISTMAS/images/emojis/marseydicklet.webp
new file mode 100644
index 000000000..72edfc359
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/marseydicklet.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/marseydiehard.webp b/files/assets/CHRISTMAS/images/emojis/marseydiehard.webp
new file mode 100644
index 000000000..f56170bc9
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/marseydiehard.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/marseydildo.webp b/files/assets/CHRISTMAS/images/emojis/marseydildo.webp
new file mode 100644
index 000000000..077f59fbc
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/marseydildo.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/marseydio.webp b/files/assets/CHRISTMAS/images/emojis/marseydio.webp
new file mode 100644
index 000000000..4db010fae
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/marseydio.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/marseydisabled.webp b/files/assets/CHRISTMAS/images/emojis/marseydisabled.webp
new file mode 100644
index 000000000..9156957ee
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/marseydisabled.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/marseydisagree.webp b/files/assets/CHRISTMAS/images/emojis/marseydisagree.webp
new file mode 100644
index 000000000..a5f99469e
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/marseydisagree.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/marseydisgust.webp b/files/assets/CHRISTMAS/images/emojis/marseydisgust.webp
new file mode 100644
index 000000000..f5321aa52
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/marseydisgust.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/marseyditzy.webp b/files/assets/CHRISTMAS/images/emojis/marseyditzy.webp
new file mode 100644
index 000000000..6b06a2e51
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/marseyditzy.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/marseydizzy.webp b/files/assets/CHRISTMAS/images/emojis/marseydizzy.webp
new file mode 100644
index 000000000..6082f523d
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/marseydizzy.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/marseydog.webp b/files/assets/CHRISTMAS/images/emojis/marseydog.webp
new file mode 100644
index 000000000..501eef9d1
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/marseydog.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/marseydolphin.webp b/files/assets/CHRISTMAS/images/emojis/marseydolphin.webp
new file mode 100644
index 000000000..4a8a29683
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/marseydolphin.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/marseydoomer.webp b/files/assets/CHRISTMAS/images/emojis/marseydoomer.webp
new file mode 100644
index 000000000..d67d6feda
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/marseydoomer.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/marseydoubt.webp b/files/assets/CHRISTMAS/images/emojis/marseydoubt.webp
new file mode 100644
index 000000000..bab5f95e2
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/marseydoubt.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/marseydoubtit.webp b/files/assets/CHRISTMAS/images/emojis/marseydoubtit.webp
new file mode 100644
index 000000000..ddafe8e1a
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/marseydoubtit.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/marseydracula.webp b/files/assets/CHRISTMAS/images/emojis/marseydracula.webp
new file mode 100644
index 000000000..d5fbf0f41
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/marseydracula.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/marseydragon.webp b/files/assets/CHRISTMAS/images/emojis/marseydragon.webp
new file mode 100644
index 000000000..fa204bee5
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/marseydragon.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/marseydrama.webp b/files/assets/CHRISTMAS/images/emojis/marseydrama.webp
new file mode 100644
index 000000000..4d19d99a1
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/marseydrama.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/marseydream.webp b/files/assets/CHRISTMAS/images/emojis/marseydream.webp
new file mode 100644
index 000000000..681b1e855
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/marseydream.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/marseydrone.webp b/files/assets/CHRISTMAS/images/emojis/marseydrone.webp
new file mode 100644
index 000000000..5d56347a5
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/marseydrone.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/marseydrunk.webp b/files/assets/CHRISTMAS/images/emojis/marseydrunk.webp
new file mode 100644
index 000000000..4e44c90bb
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/marseydrunk.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/marseyduck.webp b/files/assets/CHRISTMAS/images/emojis/marseyduck.webp
new file mode 100644
index 000000000..72fb30b44
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/marseyduck.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/marseyduck2.webp b/files/assets/CHRISTMAS/images/emojis/marseyduck2.webp
new file mode 100644
index 000000000..85a16e132
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/marseyduck2.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/marseydynamite.webp b/files/assets/CHRISTMAS/images/emojis/marseydynamite.webp
new file mode 100644
index 000000000..b6af1b56a
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/marseydynamite.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/marseyegg_irl.webp b/files/assets/CHRISTMAS/images/emojis/marseyegg_irl.webp
new file mode 100644
index 000000000..246c05cee
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/marseyegg_irl.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/marseyeldritch.webp b/files/assets/CHRISTMAS/images/emojis/marseyeldritch.webp
new file mode 100644
index 000000000..188c2565d
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/marseyeldritch.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/marseyeldritch2.webp b/files/assets/CHRISTMAS/images/emojis/marseyeldritch2.webp
new file mode 100644
index 000000000..f892788bd
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/marseyeldritch2.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/marseyelephant.webp b/files/assets/CHRISTMAS/images/emojis/marseyelephant.webp
new file mode 100644
index 000000000..306c25638
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/marseyelephant.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/marseyemo.webp b/files/assets/CHRISTMAS/images/emojis/marseyemo.webp
new file mode 100644
index 000000000..121a5f046
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/marseyemo.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/marseyemperor.webp b/files/assets/CHRISTMAS/images/emojis/marseyemperor.webp
new file mode 100644
index 000000000..b7d0150fc
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/marseyemperor.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/marseyespeon.webp b/files/assets/CHRISTMAS/images/emojis/marseyespeon.webp
new file mode 100644
index 000000000..5bbb612ab
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/marseyespeon.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/marseyespeonheadpat.webp b/files/assets/CHRISTMAS/images/emojis/marseyespeonheadpat.webp
new file mode 100644
index 000000000..09a4c3003
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/marseyespeonheadpat.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/marseyexcited.webp b/files/assets/CHRISTMAS/images/emojis/marseyexcited.webp
new file mode 100644
index 000000000..e24bcd75c
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/marseyexcited.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/marseyextinction.webp b/files/assets/CHRISTMAS/images/emojis/marseyextinction.webp
new file mode 100644
index 000000000..2bc088d78
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/marseyextinction.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/marseyeyeroll.webp b/files/assets/CHRISTMAS/images/emojis/marseyeyeroll.webp
new file mode 100644
index 000000000..5cef03337
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/marseyeyeroll.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/marseyeyes.webp b/files/assets/CHRISTMAS/images/emojis/marseyeyes.webp
new file mode 100644
index 000000000..1990a7e9e
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/marseyeyes.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/marseyface.webp b/files/assets/CHRISTMAS/images/emojis/marseyface.webp
new file mode 100644
index 000000000..576525882
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/marseyface.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/marseyfacepalm.webp b/files/assets/CHRISTMAS/images/emojis/marseyfacepalm.webp
new file mode 100644
index 000000000..8d70171a1
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/marseyfacepalm.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/marseyfamily.webp b/files/assets/CHRISTMAS/images/emojis/marseyfamily.webp
new file mode 100644
index 000000000..5f34233dc
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/marseyfamily.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/marseyfans.webp b/files/assets/CHRISTMAS/images/emojis/marseyfans.webp
new file mode 100644
index 000000000..58d470500
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/marseyfans.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/marseyfatherjoseph.webp b/files/assets/CHRISTMAS/images/emojis/marseyfatherjoseph.webp
new file mode 100644
index 000000000..9bb7c058a
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/marseyfatherjoseph.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/marseyfattie.webp b/files/assets/CHRISTMAS/images/emojis/marseyfattie.webp
new file mode 100644
index 000000000..06d3f37a1
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/marseyfattie.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/marseyfbi.webp b/files/assets/CHRISTMAS/images/emojis/marseyfbi.webp
new file mode 100644
index 000000000..1bad0e8ed
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/marseyfbi.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/marseyfeelsgood.webp b/files/assets/CHRISTMAS/images/emojis/marseyfeelsgood.webp
new file mode 100644
index 000000000..7ad0d1821
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/marseyfeelsgood.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/marseyfeet.webp b/files/assets/CHRISTMAS/images/emojis/marseyfeet.webp
new file mode 100644
index 000000000..def158fd5
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/marseyfeet.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/marseyfellowkids.webp b/files/assets/CHRISTMAS/images/emojis/marseyfellowkids.webp
new file mode 100644
index 000000000..5aec7abba
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/marseyfellowkids.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/marseyfeminist.webp b/files/assets/CHRISTMAS/images/emojis/marseyfeminist.webp
new file mode 100644
index 000000000..d1de70710
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/marseyfeminist.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/marseyfeynman.webp b/files/assets/CHRISTMAS/images/emojis/marseyfeynman.webp
new file mode 100644
index 000000000..34f2e2016
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/marseyfeynman.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/marseyfine.webp b/files/assets/CHRISTMAS/images/emojis/marseyfine.webp
new file mode 100644
index 000000000..2c137b5ed
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/marseyfine.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/marseyfinger.webp b/files/assets/CHRISTMAS/images/emojis/marseyfinger.webp
new file mode 100644
index 000000000..f58659a63
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/marseyfinger.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/marseyflamethrower.webp b/files/assets/CHRISTMAS/images/emojis/marseyflamethrower.webp
new file mode 100644
index 000000000..1b51892c2
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/marseyflamethrower.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/marseyflamewar.webp b/files/assets/CHRISTMAS/images/emojis/marseyflamewar.webp
new file mode 100644
index 000000000..3911c4962
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/marseyflamewar.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/marseyflareon.webp b/files/assets/CHRISTMAS/images/emojis/marseyflareon.webp
new file mode 100644
index 000000000..b5fa6f416
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/marseyflareon.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/marseyflareonpat.webp b/files/assets/CHRISTMAS/images/emojis/marseyflareonpat.webp
new file mode 100644
index 000000000..5ad161135
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/marseyflareonpat.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/marseyfloyd.webp b/files/assets/CHRISTMAS/images/emojis/marseyfloyd.webp
new file mode 100644
index 000000000..5df05ea7b
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/marseyfloyd.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/marseyfocault.webp b/files/assets/CHRISTMAS/images/emojis/marseyfocault.webp
new file mode 100644
index 000000000..c7696c173
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/marseyfocault.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/marseyfox.webp b/files/assets/CHRISTMAS/images/emojis/marseyfox.webp
new file mode 100644
index 000000000..0069ac469
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/marseyfox.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/marseyfreezepeach.webp b/files/assets/CHRISTMAS/images/emojis/marseyfreezepeach.webp
new file mode 100644
index 000000000..1999080da
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/marseyfreezepeach.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/marseyfrog.webp b/files/assets/CHRISTMAS/images/emojis/marseyfrog.webp
new file mode 100644
index 000000000..42e4e9d6a
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/marseyfrog.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/marseyfrog2.webp b/files/assets/CHRISTMAS/images/emojis/marseyfrog2.webp
new file mode 100644
index 000000000..2fb8b52ed
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/marseyfrog2.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/marseyfrozen.webp b/files/assets/CHRISTMAS/images/emojis/marseyfrozen.webp
new file mode 100644
index 000000000..3ab828ba4
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/marseyfrozen.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/marseyfrozenchosen.webp b/files/assets/CHRISTMAS/images/emojis/marseyfrozenchosen.webp
new file mode 100644
index 000000000..58fcff371
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/marseyfrozenchosen.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/marseyfrozenpat.webp b/files/assets/CHRISTMAS/images/emojis/marseyfrozenpat.webp
new file mode 100644
index 000000000..59abf7af8
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/marseyfrozenpat.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/marseyfry.webp b/files/assets/CHRISTMAS/images/emojis/marseyfry.webp
new file mode 100644
index 000000000..33214b8d6
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/marseyfry.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/marseyfuckoffcarp.webp b/files/assets/CHRISTMAS/images/emojis/marseyfuckoffcarp.webp
new file mode 100644
index 000000000..5299b0a43
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/marseyfuckoffcarp.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/marseyfuckyou.webp b/files/assets/CHRISTMAS/images/emojis/marseyfuckyou.webp
new file mode 100644
index 000000000..9dd6bc2eb
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/marseyfuckyou.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/marseyfug.webp b/files/assets/CHRISTMAS/images/emojis/marseyfug.webp
new file mode 100644
index 000000000..aaa76d628
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/marseyfug.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/marseyfunko.webp b/files/assets/CHRISTMAS/images/emojis/marseyfunko.webp
new file mode 100644
index 000000000..e8ea33bfe
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/marseyfunko.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/marseyfurry.webp b/files/assets/CHRISTMAS/images/emojis/marseyfurry.webp
new file mode 100644
index 000000000..946e68364
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/marseyfurry.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/marseygagging.webp b/files/assets/CHRISTMAS/images/emojis/marseygagging.webp
new file mode 100644
index 000000000..82f6bf67d
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/marseygagging.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/marseygandalf.webp b/files/assets/CHRISTMAS/images/emojis/marseygandalf.webp
new file mode 100644
index 000000000..ef076ba93
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/marseygandalf.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/marseygangbang.webp b/files/assets/CHRISTMAS/images/emojis/marseygangbang.webp
new file mode 100644
index 000000000..ee5a2623f
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/marseygangbang.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/marseygarfield.webp b/files/assets/CHRISTMAS/images/emojis/marseygarfield.webp
new file mode 100644
index 000000000..381769134
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/marseygarfield.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/marseygasp.webp b/files/assets/CHRISTMAS/images/emojis/marseygasp.webp
new file mode 100644
index 000000000..af9a55c6b
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/marseygasp.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/marseyghost.webp b/files/assets/CHRISTMAS/images/emojis/marseyghost.webp
new file mode 100644
index 000000000..b8a3dc0d2
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/marseyghost.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/marseygift.webp b/files/assets/CHRISTMAS/images/emojis/marseygift.webp
new file mode 100644
index 000000000..6d7a1d42b
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/marseygift.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/marseygigachad.webp b/files/assets/CHRISTMAS/images/emojis/marseygigachad.webp
new file mode 100644
index 000000000..afb84dd7b
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/marseygigachad.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/marseygigaretard.webp b/files/assets/CHRISTMAS/images/emojis/marseygigaretard.webp
new file mode 100644
index 000000000..9403ea3e0
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/marseygigaretard.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/marseygigavaxxer.webp b/files/assets/CHRISTMAS/images/emojis/marseygigavaxxer.webp
new file mode 100644
index 000000000..b43fcc43b
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/marseygigavaxxer.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/marseygingerbread.webp b/files/assets/CHRISTMAS/images/emojis/marseygingerbread.webp
new file mode 100644
index 000000000..402ec0414
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/marseygingerbread.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/marseygingerbread2.webp b/files/assets/CHRISTMAS/images/emojis/marseygingerbread2.webp
new file mode 100644
index 000000000..dce5e1b58
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/marseygingerbread2.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/marseygingerbread3.webp b/files/assets/CHRISTMAS/images/emojis/marseygingerbread3.webp
new file mode 100644
index 000000000..329abb7ec
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/marseygingerbread3.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/marseygivecrown.webp b/files/assets/CHRISTMAS/images/emojis/marseygivecrown.webp
new file mode 100644
index 000000000..fe8c0f567
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/marseygivecrown.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/marseygiveup.webp b/files/assets/CHRISTMAS/images/emojis/marseygiveup.webp
new file mode 100644
index 000000000..9d3597c49
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/marseygiveup.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/marseyglaceon.webp b/files/assets/CHRISTMAS/images/emojis/marseyglaceon.webp
new file mode 100644
index 000000000..6824adc2e
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/marseyglaceon.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/marseyglaceonpat.webp b/files/assets/CHRISTMAS/images/emojis/marseyglaceonpat.webp
new file mode 100644
index 000000000..e561f453d
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/marseyglaceonpat.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/marseyglam.webp b/files/assets/CHRISTMAS/images/emojis/marseyglam.webp
new file mode 100644
index 000000000..1e6462422
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/marseyglam.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/marseyglancing.webp b/files/assets/CHRISTMAS/images/emojis/marseyglancing.webp
new file mode 100644
index 000000000..4c6e57037
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/marseyglancing.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/marseyglow.webp b/files/assets/CHRISTMAS/images/emojis/marseyglow.webp
new file mode 100644
index 000000000..d80792121
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/marseyglow.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/marseyglow2.webp b/files/assets/CHRISTMAS/images/emojis/marseyglow2.webp
new file mode 100644
index 000000000..453a123d9
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/marseyglow2.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/marseyglowaward.webp b/files/assets/CHRISTMAS/images/emojis/marseyglowaward.webp
new file mode 100644
index 000000000..2e067a2f2
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/marseyglowaward.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/marseygodel.webp b/files/assets/CHRISTMAS/images/emojis/marseygodel.webp
new file mode 100644
index 000000000..6f1e59a3f
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/marseygodel.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/marseygodfather.webp b/files/assets/CHRISTMAS/images/emojis/marseygodfather.webp
new file mode 100644
index 000000000..8c5882258
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/marseygodfather.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/marseygodzilla.webp b/files/assets/CHRISTMAS/images/emojis/marseygodzilla.webp
new file mode 100644
index 000000000..bfc01b4c0
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/marseygodzilla.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/marseygold.webp b/files/assets/CHRISTMAS/images/emojis/marseygold.webp
new file mode 100644
index 000000000..8fdfebf72
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/marseygold.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/marseygondola.webp b/files/assets/CHRISTMAS/images/emojis/marseygondola.webp
new file mode 100644
index 000000000..632d81883
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/marseygondola.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/marseygoodnight.webp b/files/assets/CHRISTMAS/images/emojis/marseygoodnight.webp
new file mode 100644
index 000000000..5f66899bc
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/marseygoodnight.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/marseygossip.webp b/files/assets/CHRISTMAS/images/emojis/marseygossip.webp
new file mode 100644
index 000000000..bc6d17915
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/marseygossip.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/marseygrass.webp b/files/assets/CHRISTMAS/images/emojis/marseygrass.webp
new file mode 100644
index 000000000..f1440814a
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/marseygrass.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/marseygrilling.webp b/files/assets/CHRISTMAS/images/emojis/marseygrilling.webp
new file mode 100644
index 000000000..cb7927e0f
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/marseygrilling.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/marseygrilling2.webp b/files/assets/CHRISTMAS/images/emojis/marseygrilling2.webp
new file mode 100644
index 000000000..ff9b091ee
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/marseygrilling2.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/marseygroomer.webp b/files/assets/CHRISTMAS/images/emojis/marseygroomer.webp
new file mode 100644
index 000000000..e1246c37b
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/marseygroomer.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/marseygroomer2.webp b/files/assets/CHRISTMAS/images/emojis/marseygroomer2.webp
new file mode 100644
index 000000000..d07f3f4c7
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/marseygroomer2.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/marseygunned.webp b/files/assets/CHRISTMAS/images/emojis/marseygunned.webp
new file mode 100644
index 000000000..b8fea4e43
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/marseygunned.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/marseyhacker.webp b/files/assets/CHRISTMAS/images/emojis/marseyhacker.webp
new file mode 100644
index 000000000..5f6479dc7
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/marseyhacker.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/marseyhacker2.webp b/files/assets/CHRISTMAS/images/emojis/marseyhacker2.webp
new file mode 100644
index 000000000..1c9ce8f09
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/marseyhacker2.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/marseyhandsup.webp b/files/assets/CHRISTMAS/images/emojis/marseyhandsup.webp
new file mode 100644
index 000000000..240bb3174
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/marseyhandsup.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/marseyhannibal.webp b/files/assets/CHRISTMAS/images/emojis/marseyhannibal.webp
new file mode 100644
index 000000000..631c8dacb
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/marseyhannibal.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/marseyhappening.webp b/files/assets/CHRISTMAS/images/emojis/marseyhappening.webp
new file mode 100644
index 000000000..7a91ad0e3
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/marseyhappening.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/marseyhappy.webp b/files/assets/CHRISTMAS/images/emojis/marseyhappy.webp
new file mode 100644
index 000000000..540af9025
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/marseyhappy.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/marseyhappytears.webp b/files/assets/CHRISTMAS/images/emojis/marseyhappytears.webp
new file mode 100644
index 000000000..c58e755ce
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/marseyhappytears.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/marseyhead.webp b/files/assets/CHRISTMAS/images/emojis/marseyhead.webp
new file mode 100644
index 000000000..21acec2a9
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/marseyhead.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/marseyhealthy.webp b/files/assets/CHRISTMAS/images/emojis/marseyhealthy.webp
new file mode 100644
index 000000000..df2caf5b5
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/marseyhealthy.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/marseyhearts.webp b/files/assets/CHRISTMAS/images/emojis/marseyhearts.webp
new file mode 100644
index 000000000..2a8212b21
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/marseyhearts.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/marseyheathcliff.webp b/files/assets/CHRISTMAS/images/emojis/marseyheathcliff.webp
new file mode 100644
index 000000000..94d4da7f8
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/marseyheathcliff.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/marseyheavymetal.webp b/files/assets/CHRISTMAS/images/emojis/marseyheavymetal.webp
new file mode 100644
index 000000000..1e5d8eb25
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/marseyheavymetal.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/marseyhellraiser.webp b/files/assets/CHRISTMAS/images/emojis/marseyhellraiser.webp
new file mode 100644
index 000000000..21724501c
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/marseyhellraiser.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/marseyhillary.webp b/files/assets/CHRISTMAS/images/emojis/marseyhillary.webp
new file mode 100644
index 000000000..5752b8dfe
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/marseyhillary.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/marseyhippo.webp b/files/assets/CHRISTMAS/images/emojis/marseyhippo.webp
new file mode 100644
index 000000000..cb6b9eb5d
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/marseyhippo.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/marseyhmm.webp b/files/assets/CHRISTMAS/images/emojis/marseyhmm.webp
new file mode 100644
index 000000000..11fb55b48
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/marseyhmm.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/marseyhmmm.webp b/files/assets/CHRISTMAS/images/emojis/marseyhmmm.webp
new file mode 100644
index 000000000..2d671c367
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/marseyhmmm.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/marseyhomofascist.webp b/files/assets/CHRISTMAS/images/emojis/marseyhomofascist.webp
new file mode 100644
index 000000000..293c3e788
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/marseyhomofascist.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/marseyhomosupremacist.webp b/files/assets/CHRISTMAS/images/emojis/marseyhomosupremacist.webp
new file mode 100644
index 000000000..70b03c4ef
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/marseyhomosupremacist.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/marseyhoodwink.webp b/files/assets/CHRISTMAS/images/emojis/marseyhoodwink.webp
new file mode 100644
index 000000000..a7e751f0e
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/marseyhoodwink.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/marseyhope.webp b/files/assets/CHRISTMAS/images/emojis/marseyhope.webp
new file mode 100644
index 000000000..f91d379c3
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/marseyhope.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/marseyhorseshoe.webp b/files/assets/CHRISTMAS/images/emojis/marseyhorseshoe.webp
new file mode 100644
index 000000000..b5942fb63
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/marseyhorseshoe.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/marseyhotep.webp b/files/assets/CHRISTMAS/images/emojis/marseyhotep.webp
new file mode 100644
index 000000000..4c226682e
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/marseyhotep.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/marseyhungry.webp b/files/assets/CHRISTMAS/images/emojis/marseyhungry.webp
new file mode 100644
index 000000000..13be010db
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/marseyhungry.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/marseyhypno.webp b/files/assets/CHRISTMAS/images/emojis/marseyhypno.webp
new file mode 100644
index 000000000..397543eaa
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/marseyhypno.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/marseyicecream.webp b/files/assets/CHRISTMAS/images/emojis/marseyicecream.webp
new file mode 100644
index 000000000..1daa65bd7
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/marseyicecream.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/marseyilluminati.webp b/files/assets/CHRISTMAS/images/emojis/marseyilluminati.webp
new file mode 100644
index 000000000..882b39732
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/marseyilluminati.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/marseyimmaculate.webp b/files/assets/CHRISTMAS/images/emojis/marseyimmaculate.webp
new file mode 100644
index 000000000..f7bedd205
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/marseyimmaculate.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/marseyimpossibru.webp b/files/assets/CHRISTMAS/images/emojis/marseyimpossibru.webp
new file mode 100644
index 000000000..9424b31fb
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/marseyimpossibru.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/marseyimposter.webp b/files/assets/CHRISTMAS/images/emojis/marseyimposter.webp
new file mode 100644
index 000000000..ad5956854
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/marseyimposter.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/marseyinabox.webp b/files/assets/CHRISTMAS/images/emojis/marseyinabox.webp
new file mode 100644
index 000000000..0b0615849
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/marseyinabox.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/marseyinshallah.webp b/files/assets/CHRISTMAS/images/emojis/marseyinshallah.webp
new file mode 100644
index 000000000..41aad7cc1
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/marseyinshallah.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/marseyinvisible.webp b/files/assets/CHRISTMAS/images/emojis/marseyinvisible.webp
new file mode 100644
index 000000000..74c0ed507
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/marseyinvisible.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/marseyira.webp b/files/assets/CHRISTMAS/images/emojis/marseyira.webp
new file mode 100644
index 000000000..07c297a04
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/marseyira.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/marseyisis.webp b/files/assets/CHRISTMAS/images/emojis/marseyisis.webp
new file mode 100644
index 000000000..42edf6f2a
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/marseyisis.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/marseyit.webp b/files/assets/CHRISTMAS/images/emojis/marseyit.webp
new file mode 100644
index 000000000..694210037
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/marseyit.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/marseyjam.webp b/files/assets/CHRISTMAS/images/emojis/marseyjam.webp
new file mode 100644
index 000000000..c52f150b3
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/marseyjam.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/marseyjamming.webp b/files/assets/CHRISTMAS/images/emojis/marseyjamming.webp
new file mode 100644
index 000000000..f5e85fee9
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/marseyjamming.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/marseyjanny.webp b/files/assets/CHRISTMAS/images/emojis/marseyjanny.webp
new file mode 100644
index 000000000..877e3cb43
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/marseyjanny.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/marseyjanny2.webp b/files/assets/CHRISTMAS/images/emojis/marseyjanny2.webp
new file mode 100644
index 000000000..4ed76d71f
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/marseyjanny2.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/marseyjapanese.webp b/files/assets/CHRISTMAS/images/emojis/marseyjapanese.webp
new file mode 100644
index 000000000..d0ae8c7bb
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/marseyjapanese.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/marseyjapenese.webp b/files/assets/CHRISTMAS/images/emojis/marseyjapenese.webp
new file mode 100644
index 000000000..d0ae8c7bb
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/marseyjapenese.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/marseyjason.webp b/files/assets/CHRISTMAS/images/emojis/marseyjason.webp
new file mode 100644
index 000000000..a6e7deae2
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/marseyjason.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/marseyjeans.webp b/files/assets/CHRISTMAS/images/emojis/marseyjeans.webp
new file mode 100644
index 000000000..292b72cf6
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/marseyjeans.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/marseyjesus.webp b/files/assets/CHRISTMAS/images/emojis/marseyjesus.webp
new file mode 100644
index 000000000..2d9d1663c
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/marseyjesus.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/marseyjiangshi.webp b/files/assets/CHRISTMAS/images/emojis/marseyjiangshi.webp
new file mode 100644
index 000000000..9268b8a0a
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/marseyjiangshi.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/marseyjohnson.webp b/files/assets/CHRISTMAS/images/emojis/marseyjohnson.webp
new file mode 100644
index 000000000..f6a331ed0
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/marseyjohnson.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/marseyjoint.webp b/files/assets/CHRISTMAS/images/emojis/marseyjoint.webp
new file mode 100644
index 000000000..27dc7a117
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/marseyjoint.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/marseyjolteon.webp b/files/assets/CHRISTMAS/images/emojis/marseyjolteon.webp
new file mode 100644
index 000000000..99fdcde65
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/marseyjolteon.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/marseyjolteonpat.webp b/files/assets/CHRISTMAS/images/emojis/marseyjolteonpat.webp
new file mode 100644
index 000000000..da776331f
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/marseyjolteonpat.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/marseyjones.webp b/files/assets/CHRISTMAS/images/emojis/marseyjones.webp
new file mode 100644
index 000000000..878ebcdcc
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/marseyjones.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/marseyjourno.webp b/files/assets/CHRISTMAS/images/emojis/marseyjourno.webp
new file mode 100644
index 000000000..4ed08133c
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/marseyjourno.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/marseyjudge.webp b/files/assets/CHRISTMAS/images/emojis/marseyjudge.webp
new file mode 100644
index 000000000..f4c770017
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/marseyjudge.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/marseyjunkie.webp b/files/assets/CHRISTMAS/images/emojis/marseyjunkie.webp
new file mode 100644
index 000000000..41b3ecc0a
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/marseyjunkie.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/marseykaiser.webp b/files/assets/CHRISTMAS/images/emojis/marseykaiser.webp
new file mode 100644
index 000000000..aad497651
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/marseykaiser.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/marseykamikaze.webp b/files/assets/CHRISTMAS/images/emojis/marseykamikaze.webp
new file mode 100644
index 000000000..45c085e08
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/marseykamikaze.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/marseykfc.webp b/files/assets/CHRISTMAS/images/emojis/marseykfc.webp
new file mode 100644
index 000000000..72fc7b0c5
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/marseykfc.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/marseyking.webp b/files/assets/CHRISTMAS/images/emojis/marseyking.webp
new file mode 100644
index 000000000..31ae048ff
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/marseyking.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/marseykingcrown.webp b/files/assets/CHRISTMAS/images/emojis/marseykingcrown.webp
new file mode 100644
index 000000000..5a189b2b4
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/marseykingcrown.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/marseykink.webp b/files/assets/CHRISTMAS/images/emojis/marseykink.webp
new file mode 100644
index 000000000..bce074033
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/marseykink.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/marseykitty.webp b/files/assets/CHRISTMAS/images/emojis/marseykitty.webp
new file mode 100644
index 000000000..eacfe44e5
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/marseykitty.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/marseykiwi.webp b/files/assets/CHRISTMAS/images/emojis/marseykiwi.webp
new file mode 100644
index 000000000..f1b2b98a8
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/marseykiwi.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/marseykiwi2.webp b/files/assets/CHRISTMAS/images/emojis/marseykiwi2.webp
new file mode 100644
index 000000000..422c6798a
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/marseykiwi2.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/marseykiwipat.webp b/files/assets/CHRISTMAS/images/emojis/marseykiwipat.webp
new file mode 100644
index 000000000..78bfdd605
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/marseykiwipat.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/marseykkk.webp b/files/assets/CHRISTMAS/images/emojis/marseykkk.webp
new file mode 100644
index 000000000..0f8ef1928
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/marseykkk.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/marseykkkblm.webp b/files/assets/CHRISTMAS/images/emojis/marseykkkblm.webp
new file mode 100644
index 000000000..e6cc9e803
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/marseykkkblm.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/marseyklenny.webp b/files/assets/CHRISTMAS/images/emojis/marseyklenny.webp
new file mode 100644
index 000000000..464cfb7ce
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/marseyklenny.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/marseykneel.webp b/files/assets/CHRISTMAS/images/emojis/marseykneel.webp
new file mode 100644
index 000000000..e31ee6b30
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/marseykneel.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/marseykrampus2.webp b/files/assets/CHRISTMAS/images/emojis/marseykrampus2.webp
new file mode 100644
index 000000000..e8f086f88
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/marseykrampus2.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/marseykvlt.webp b/files/assets/CHRISTMAS/images/emojis/marseykvlt.webp
new file mode 100644
index 000000000..3533dd467
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/marseykvlt.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/marseykween.webp b/files/assets/CHRISTMAS/images/emojis/marseykween.webp
new file mode 100644
index 000000000..8d285aa11
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/marseykween.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/marseykweenxmas.webp b/files/assets/CHRISTMAS/images/emojis/marseykweenxmas.webp
new file mode 100644
index 000000000..debe95ff7
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/marseykweenxmas.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/marseykyle.webp b/files/assets/CHRISTMAS/images/emojis/marseykyle.webp
new file mode 100644
index 000000000..7c85dd59f
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/marseykyle.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/marseykys.webp b/files/assets/CHRISTMAS/images/emojis/marseykys.webp
new file mode 100644
index 000000000..2b023864d
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/marseykys.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/marseykys2.webp b/files/assets/CHRISTMAS/images/emojis/marseykys2.webp
new file mode 100644
index 000000000..decbbd446
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/marseykys2.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/marseylaptop.webp b/files/assets/CHRISTMAS/images/emojis/marseylaptop.webp
new file mode 100644
index 000000000..0a05bb32a
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/marseylaptop.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/marseylaugh.webp b/files/assets/CHRISTMAS/images/emojis/marseylaugh.webp
new file mode 100644
index 000000000..1dfecec6f
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/marseylaugh.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/marseylawlz.webp b/files/assets/CHRISTMAS/images/emojis/marseylawlz.webp
new file mode 100644
index 000000000..185f33d96
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/marseylawlz.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/marseyleafeon.webp b/files/assets/CHRISTMAS/images/emojis/marseyleafeon.webp
new file mode 100644
index 000000000..559cb2dcc
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/marseyleafeon.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/marseyleafeonpat.webp b/files/assets/CHRISTMAS/images/emojis/marseyleafeonpat.webp
new file mode 100644
index 000000000..0078a4f18
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/marseyleafeonpat.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/marseylibleft.webp b/files/assets/CHRISTMAS/images/emojis/marseylibleft.webp
new file mode 100644
index 000000000..2a69524ca
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/marseylibleft.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/marseylibright.webp b/files/assets/CHRISTMAS/images/emojis/marseylibright.webp
new file mode 100644
index 000000000..f83c45d02
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/marseylibright.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/marseylifting.webp b/files/assets/CHRISTMAS/images/emojis/marseylifting.webp
new file mode 100644
index 000000000..f3357a57b
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/marseylifting.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/marseylion.webp b/files/assets/CHRISTMAS/images/emojis/marseylion.webp
new file mode 100644
index 000000000..90ae5c4e4
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/marseylion.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/marseyliondanc.webp b/files/assets/CHRISTMAS/images/emojis/marseyliondanc.webp
new file mode 100644
index 000000000..3ae6ff251
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/marseyliondanc.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/marseyliondance.webp b/files/assets/CHRISTMAS/images/emojis/marseyliondance.webp
new file mode 100644
index 000000000..3ae6ff251
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/marseyliondance.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/marseyliquidator.webp b/files/assets/CHRISTMAS/images/emojis/marseyliquidator.webp
new file mode 100644
index 000000000..c3e3958cc
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/marseyliquidator.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/marseylizard.webp b/files/assets/CHRISTMAS/images/emojis/marseylizard.webp
new file mode 100644
index 000000000..138c3668e
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/marseylizard.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/marseyllama.webp b/files/assets/CHRISTMAS/images/emojis/marseyllama.webp
new file mode 100644
index 000000000..64abbad1f
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/marseyllama.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/marseyllama1.webp b/files/assets/CHRISTMAS/images/emojis/marseyllama1.webp
new file mode 100644
index 000000000..9aa52cdc8
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/marseyllama1.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/marseyllama2.webp b/files/assets/CHRISTMAS/images/emojis/marseyllama2.webp
new file mode 100644
index 000000000..5c4ff487e
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/marseyllama2.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/marseyllama3.webp b/files/assets/CHRISTMAS/images/emojis/marseyllama3.webp
new file mode 100644
index 000000000..ed5a10e98
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/marseyllama3.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/marseylois.webp b/files/assets/CHRISTMAS/images/emojis/marseylois.webp
new file mode 100644
index 000000000..7a46ad9de
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/marseylois.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/marseylolcow.webp b/files/assets/CHRISTMAS/images/emojis/marseylolcow.webp
new file mode 100644
index 000000000..e4f9170a0
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/marseylolcow.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/marseylong1.webp b/files/assets/CHRISTMAS/images/emojis/marseylong1.webp
new file mode 100644
index 000000000..dd02c02de
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/marseylong1.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/marseylong2.webp b/files/assets/CHRISTMAS/images/emojis/marseylong2.webp
new file mode 100644
index 000000000..885e55e7a
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/marseylong2.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/marseylong3.webp b/files/assets/CHRISTMAS/images/emojis/marseylong3.webp
new file mode 100644
index 000000000..3234319d6
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/marseylong3.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/marseylongpost.webp b/files/assets/CHRISTMAS/images/emojis/marseylongpost.webp
new file mode 100644
index 000000000..ba2d9832b
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/marseylongpost.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/marseylongpost2.webp b/files/assets/CHRISTMAS/images/emojis/marseylongpost2.webp
new file mode 100644
index 000000000..7609f3f3d
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/marseylongpost2.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/marseylove.webp b/files/assets/CHRISTMAS/images/emojis/marseylove.webp
new file mode 100644
index 000000000..38bbf1ec2
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/marseylove.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/marseylovedrama.webp b/files/assets/CHRISTMAS/images/emojis/marseylovedrama.webp
new file mode 100644
index 000000000..e61797fd5
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/marseylovedrama.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/marseyloveyou.webp b/files/assets/CHRISTMAS/images/emojis/marseyloveyou.webp
new file mode 100644
index 000000000..64a74cdd6
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/marseyloveyou.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/marseylowpoly.webp b/files/assets/CHRISTMAS/images/emojis/marseylowpoly.webp
new file mode 100644
index 000000000..3598815e5
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/marseylowpoly.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/marseyluther.webp b/files/assets/CHRISTMAS/images/emojis/marseyluther.webp
new file mode 100644
index 000000000..a2747491b
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/marseyluther.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/marseymad.webp b/files/assets/CHRISTMAS/images/emojis/marseymad.webp
new file mode 100644
index 000000000..61e115a03
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/marseymad.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/marseymalding.webp b/files/assets/CHRISTMAS/images/emojis/marseymalding.webp
new file mode 100644
index 000000000..7bd4cbcc4
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/marseymalding.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/marseymancer.webp b/files/assets/CHRISTMAS/images/emojis/marseymancer.webp
new file mode 100644
index 000000000..4747467d7
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/marseymancer.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/marseymanlet.webp b/files/assets/CHRISTMAS/images/emojis/marseymanlet.webp
new file mode 100644
index 000000000..1f9b78dae
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/marseymanlet.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/marseymao.webp b/files/assets/CHRISTMAS/images/emojis/marseymao.webp
new file mode 100644
index 000000000..ef0fc92f6
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/marseymao.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/marseymaoist.webp b/files/assets/CHRISTMAS/images/emojis/marseymaoist.webp
new file mode 100644
index 000000000..e1ec02c23
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/marseymaoist.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/marseymask.webp b/files/assets/CHRISTMAS/images/emojis/marseymask.webp
new file mode 100644
index 000000000..b0f63f62f
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/marseymask.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/marseymati.webp b/files/assets/CHRISTMAS/images/emojis/marseymati.webp
new file mode 100644
index 000000000..b2e6242f6
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/marseymati.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/marseymayo.webp b/files/assets/CHRISTMAS/images/emojis/marseymayo.webp
new file mode 100644
index 000000000..7bb7710cc
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/marseymayo.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/marseymcarthur.webp b/files/assets/CHRISTMAS/images/emojis/marseymcarthur.webp
new file mode 100644
index 000000000..6766ba34c
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/marseymcarthur.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/marseymeds.webp b/files/assets/CHRISTMAS/images/emojis/marseymeds.webp
new file mode 100644
index 000000000..c067f8f4d
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/marseymeds.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/marseymerchant.webp b/files/assets/CHRISTMAS/images/emojis/marseymerchant.webp
new file mode 100644
index 000000000..995d9a722
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/marseymerchant.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/marseymerchantelf.webp b/files/assets/CHRISTMAS/images/emojis/marseymerchantelf.webp
new file mode 100644
index 000000000..82c7eedd2
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/marseymerchantelf.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/marseymermaid.webp b/files/assets/CHRISTMAS/images/emojis/marseymermaid.webp
new file mode 100644
index 000000000..50abb7a85
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/marseymermaid.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/marseymexican.webp b/files/assets/CHRISTMAS/images/emojis/marseymexican.webp
new file mode 100644
index 000000000..7d19aa2e2
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/marseymexican.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/marseymini.webp b/files/assets/CHRISTMAS/images/emojis/marseymini.webp
new file mode 100644
index 000000000..d0ac817df
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/marseymini.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/marseyminigun.webp b/files/assets/CHRISTMAS/images/emojis/marseyminigun.webp
new file mode 100644
index 000000000..d0ac817df
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/marseyminigun.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/marseyminimalism.webp b/files/assets/CHRISTMAS/images/emojis/marseyminimalism.webp
new file mode 100644
index 000000000..d7751a353
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/marseyminimalism.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/marseyminimalism2.webp b/files/assets/CHRISTMAS/images/emojis/marseyminimalism2.webp
new file mode 100644
index 000000000..9a34949e5
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/marseyminimalism2.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/marseyminion.webp b/files/assets/CHRISTMAS/images/emojis/marseyminion.webp
new file mode 100644
index 000000000..877603d30
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/marseyminion.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/marseymissing.webp b/files/assets/CHRISTMAS/images/emojis/marseymissing.webp
new file mode 100644
index 000000000..8e8c6d172
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/marseymissing.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/marseymodelo.webp b/files/assets/CHRISTMAS/images/emojis/marseymodelo.webp
new file mode 100644
index 000000000..79768d321
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/marseymodelo.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/marseymodelo2.webp b/files/assets/CHRISTMAS/images/emojis/marseymodelo2.webp
new file mode 100644
index 000000000..e584a181c
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/marseymodelo2.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/marseymommy.webp b/files/assets/CHRISTMAS/images/emojis/marseymommy.webp
new file mode 100644
index 000000000..adcb58859
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/marseymommy.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/marseymonk.webp b/files/assets/CHRISTMAS/images/emojis/marseymonk.webp
new file mode 100644
index 000000000..df3c64488
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/marseymonk.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/marseymonke.webp b/files/assets/CHRISTMAS/images/emojis/marseymonke.webp
new file mode 100644
index 000000000..204b1a040
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/marseymonke.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/marseymoose.webp b/files/assets/CHRISTMAS/images/emojis/marseymoose.webp
new file mode 100644
index 000000000..e844f267e
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/marseymoose.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/marseymorph.webp b/files/assets/CHRISTMAS/images/emojis/marseymorph.webp
new file mode 100644
index 000000000..34ff05c59
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/marseymorph.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/marseymothermary.webp b/files/assets/CHRISTMAS/images/emojis/marseymothermary.webp
new file mode 100644
index 000000000..716ae32d6
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/marseymothermary.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/marseymouse.webp b/files/assets/CHRISTMAS/images/emojis/marseymouse.webp
new file mode 100644
index 000000000..480aba8f1
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/marseymouse.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/marseymugshot.webp b/files/assets/CHRISTMAS/images/emojis/marseymugshot.webp
new file mode 100644
index 000000000..9a9745259
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/marseymugshot.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/marseymummy.webp b/files/assets/CHRISTMAS/images/emojis/marseymummy.webp
new file mode 100644
index 000000000..00cd223d6
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/marseymummy.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/marseymummy2.webp b/files/assets/CHRISTMAS/images/emojis/marseymummy2.webp
new file mode 100644
index 000000000..24e47c2a9
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/marseymummy2.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/marseymutt.webp b/files/assets/CHRISTMAS/images/emojis/marseymutt.webp
new file mode 100644
index 000000000..86739ac03
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/marseymutt.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/marseymyeisha.webp b/files/assets/CHRISTMAS/images/emojis/marseymyeisha.webp
new file mode 100644
index 000000000..8e87c0f94
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/marseymyeisha.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/marseymyspacetom.webp b/files/assets/CHRISTMAS/images/emojis/marseymyspacetom.webp
new file mode 100644
index 000000000..e1a40ddb2
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/marseymyspacetom.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/marseyn8.webp b/files/assets/CHRISTMAS/images/emojis/marseyn8.webp
new file mode 100644
index 000000000..7b305fc67
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/marseyn8.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/marseynails.webp b/files/assets/CHRISTMAS/images/emojis/marseynails.webp
new file mode 100644
index 000000000..fd85a5a85
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/marseynails.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/marseynapoleon.webp b/files/assets/CHRISTMAS/images/emojis/marseynapoleon.webp
new file mode 100644
index 000000000..f86277d0e
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/marseynapoleon.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/marseyneat.webp b/files/assets/CHRISTMAS/images/emojis/marseyneat.webp
new file mode 100644
index 000000000..6d272d62a
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/marseyneat.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/marseyneckbeard.webp b/files/assets/CHRISTMAS/images/emojis/marseyneckbeard.webp
new file mode 100644
index 000000000..032d0e324
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/marseyneckbeard.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/marseyneet.webp b/files/assets/CHRISTMAS/images/emojis/marseyneet.webp
new file mode 100644
index 000000000..5f196a650
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/marseyneet.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/marseyneon.webp b/files/assets/CHRISTMAS/images/emojis/marseyneon.webp
new file mode 100644
index 000000000..68d9c1695
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/marseyneon.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/marseynerd.webp b/files/assets/CHRISTMAS/images/emojis/marseynerd.webp
new file mode 100644
index 000000000..5b1dbb8b4
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/marseynerd.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/marseynietzsche.webp b/files/assets/CHRISTMAS/images/emojis/marseynietzsche.webp
new file mode 100644
index 000000000..c0bdf3b11
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/marseynietzsche.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/marseyniggawut.webp b/files/assets/CHRISTMAS/images/emojis/marseyniggawut.webp
new file mode 100644
index 000000000..177762870
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/marseyniggawut.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/marseynightmare.webp b/files/assets/CHRISTMAS/images/emojis/marseynightmare.webp
new file mode 100644
index 000000000..961d8c082
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/marseynightmare.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/marseynintendo.webp b/files/assets/CHRISTMAS/images/emojis/marseynintendo.webp
new file mode 100644
index 000000000..fa05125be
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/marseynintendo.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/marseyniqab.webp b/files/assets/CHRISTMAS/images/emojis/marseyniqab.webp
new file mode 100644
index 000000000..e4b19ef4f
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/marseyniqab.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/marseyno.webp b/files/assets/CHRISTMAS/images/emojis/marseyno.webp
new file mode 100644
index 000000000..9df2d3851
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/marseyno.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/marseynooo.webp b/files/assets/CHRISTMAS/images/emojis/marseynooo.webp
new file mode 100644
index 000000000..e36612831
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/marseynooo.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/marseynosleep.webp b/files/assets/CHRISTMAS/images/emojis/marseynosleep.webp
new file mode 100644
index 000000000..02b3c7dfc
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/marseynosleep.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/marseynoyou.webp b/files/assets/CHRISTMAS/images/emojis/marseynoyou.webp
new file mode 100644
index 000000000..6e196b699
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/marseynoyou.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/marseynoyouglow.webp b/files/assets/CHRISTMAS/images/emojis/marseynoyouglow.webp
new file mode 100644
index 000000000..c004f9923
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/marseynoyouglow.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/marseynpc.webp b/files/assets/CHRISTMAS/images/emojis/marseynpc.webp
new file mode 100644
index 000000000..71c14422f
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/marseynpc.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/marseynpc2.webp b/files/assets/CHRISTMAS/images/emojis/marseynpc2.webp
new file mode 100644
index 000000000..aa67fa20c
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/marseynpc2.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/marseynun.webp b/files/assets/CHRISTMAS/images/emojis/marseynun.webp
new file mode 100644
index 000000000..f9bcbbc2c
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/marseynun.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/marseynut.webp b/files/assets/CHRISTMAS/images/emojis/marseynut.webp
new file mode 100644
index 000000000..767f442a2
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/marseynut.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/marseynutcracker.webp b/files/assets/CHRISTMAS/images/emojis/marseynutcracker.webp
new file mode 100644
index 000000000..b90e475d7
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/marseynutcracker.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/marseynyan.webp b/files/assets/CHRISTMAS/images/emojis/marseynyan.webp
new file mode 100644
index 000000000..46f2fdc85
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/marseynyan.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/marseyobama.webp b/files/assets/CHRISTMAS/images/emojis/marseyobama.webp
new file mode 100644
index 000000000..d21ff8c43
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/marseyobama.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/marseyobese.webp b/files/assets/CHRISTMAS/images/emojis/marseyobese.webp
new file mode 100644
index 000000000..eaefa8f67
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/marseyobese.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/marseyobesescale.webp b/files/assets/CHRISTMAS/images/emojis/marseyobesescale.webp
new file mode 100644
index 000000000..b37c8b9f6
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/marseyobesescale.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/marseyobey.webp b/files/assets/CHRISTMAS/images/emojis/marseyobey.webp
new file mode 100644
index 000000000..6c1029712
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/marseyobey.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/marseyoceania.webp b/files/assets/CHRISTMAS/images/emojis/marseyoceania.webp
new file mode 100644
index 000000000..cd2d6d020
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/marseyoceania.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/marseyoctopus.webp b/files/assets/CHRISTMAS/images/emojis/marseyoctopus.webp
new file mode 100644
index 000000000..e70395a39
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/marseyoctopus.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/marseyoctopus2.webp b/files/assets/CHRISTMAS/images/emojis/marseyoctopus2.webp
new file mode 100644
index 000000000..b1fe3dddb
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/marseyoctopus2.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/marseyoctopus3.webp b/files/assets/CHRISTMAS/images/emojis/marseyoctopus3.webp
new file mode 100644
index 000000000..7efaa1d17
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/marseyoctopus3.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/marseyohno.webp b/files/assets/CHRISTMAS/images/emojis/marseyohno.webp
new file mode 100644
index 000000000..3ead788b8
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/marseyohno.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/marseyonacid.webp b/files/assets/CHRISTMAS/images/emojis/marseyonacid.webp
new file mode 100644
index 000000000..d04303ef1
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/marseyonacid.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/marseyorthodox.webp b/files/assets/CHRISTMAS/images/emojis/marseyorthodox.webp
new file mode 100644
index 000000000..d489a670d
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/marseyorthodox.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/marseyorthodoxpat.webp b/files/assets/CHRISTMAS/images/emojis/marseyorthodoxpat.webp
new file mode 100644
index 000000000..53b089529
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/marseyorthodoxpat.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/marseyowow.webp b/files/assets/CHRISTMAS/images/emojis/marseyowow.webp
new file mode 100644
index 000000000..cee604467
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/marseyowow.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/marseypaint.webp b/files/assets/CHRISTMAS/images/emojis/marseypaint.webp
new file mode 100644
index 000000000..7189350a5
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/marseypaint.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/marseypainter.webp b/files/assets/CHRISTMAS/images/emojis/marseypainter.webp
new file mode 100644
index 000000000..ebe8e9240
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/marseypainter.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/marseypanda.webp b/files/assets/CHRISTMAS/images/emojis/marseypanda.webp
new file mode 100644
index 000000000..4d94a6225
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/marseypanda.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/marseypanda2.webp b/files/assets/CHRISTMAS/images/emojis/marseypanda2.webp
new file mode 100644
index 000000000..2aee4e9ed
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/marseypanda2.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/marseypanties.webp b/files/assets/CHRISTMAS/images/emojis/marseypanties.webp
new file mode 100644
index 000000000..7763017dd
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/marseypanties.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/marseyparty.webp b/files/assets/CHRISTMAS/images/emojis/marseyparty.webp
new file mode 100644
index 000000000..136954d1f
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/marseyparty.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/marseyparty1.webp b/files/assets/CHRISTMAS/images/emojis/marseyparty1.webp
new file mode 100644
index 000000000..f4bae0e08
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/marseyparty1.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/marseyparty2.webp b/files/assets/CHRISTMAS/images/emojis/marseyparty2.webp
new file mode 100644
index 000000000..677dede03
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/marseyparty2.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/marseyparty3.webp b/files/assets/CHRISTMAS/images/emojis/marseyparty3.webp
new file mode 100644
index 000000000..65e489852
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/marseyparty3.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/marseypartymaxx.webp b/files/assets/CHRISTMAS/images/emojis/marseypartymaxx.webp
new file mode 100644
index 000000000..b7ef2a89c
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/marseypartymaxx.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/marseypartyxmas.webp b/files/assets/CHRISTMAS/images/emojis/marseypartyxmas.webp
new file mode 100644
index 000000000..c5b091640
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/marseypartyxmas.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/marseypartyzoom.webp b/files/assets/CHRISTMAS/images/emojis/marseypartyzoom.webp
new file mode 100644
index 000000000..330c95936
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/marseypartyzoom.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/marseypat.webp b/files/assets/CHRISTMAS/images/emojis/marseypat.webp
new file mode 100644
index 000000000..4682983d6
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/marseypat.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/marseypatriot.webp b/files/assets/CHRISTMAS/images/emojis/marseypatriot.webp
new file mode 100644
index 000000000..185ef7385
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/marseypatriot.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/marseypeacekeeper.webp b/files/assets/CHRISTMAS/images/emojis/marseypeacekeeper.webp
new file mode 100644
index 000000000..e795f0749
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/marseypeacekeeper.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/marseypearlclutch.webp b/files/assets/CHRISTMAS/images/emojis/marseypearlclutch.webp
new file mode 100644
index 000000000..efea2f6a0
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/marseypearlclutch.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/marseypearlclutch2.webp b/files/assets/CHRISTMAS/images/emojis/marseypearlclutch2.webp
new file mode 100644
index 000000000..00013ca6e
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/marseypearlclutch2.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/marseypedo.webp b/files/assets/CHRISTMAS/images/emojis/marseypedo.webp
new file mode 100644
index 000000000..3fd3b3a75
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/marseypedo.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/marseypedobear.webp b/files/assets/CHRISTMAS/images/emojis/marseypedobear.webp
new file mode 100644
index 000000000..22066f791
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/marseypedobear.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/marseypenguin.webp b/files/assets/CHRISTMAS/images/emojis/marseypenguin.webp
new file mode 100644
index 000000000..0fe3b66de
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/marseypenguin.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/marseypepe.webp b/files/assets/CHRISTMAS/images/emojis/marseypepe.webp
new file mode 100644
index 000000000..992c0aabd
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/marseypepe.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/marseypepe2.webp b/files/assets/CHRISTMAS/images/emojis/marseypepe2.webp
new file mode 100644
index 000000000..9c84045c7
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/marseypepe2.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/marseypharaoh.webp b/files/assets/CHRISTMAS/images/emojis/marseypharaoh.webp
new file mode 100644
index 000000000..635b2bbd2
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/marseypharaoh.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/marseypharaoh2.webp b/files/assets/CHRISTMAS/images/emojis/marseypharaoh2.webp
new file mode 100644
index 000000000..5b89d133d
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/marseypharaoh2.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/marseypharoah.webp b/files/assets/CHRISTMAS/images/emojis/marseypharoah.webp
new file mode 100644
index 000000000..635b2bbd2
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/marseypharoah.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/marseypharoah2.webp b/files/assets/CHRISTMAS/images/emojis/marseypharoah2.webp
new file mode 100644
index 000000000..5b89d133d
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/marseypharoah2.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/marseypickle.webp b/files/assets/CHRISTMAS/images/emojis/marseypickle.webp
new file mode 100644
index 000000000..050b9df8a
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/marseypickle.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/marseypig.webp b/files/assets/CHRISTMAS/images/emojis/marseypig.webp
new file mode 100644
index 000000000..8f9f32c42
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/marseypig.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/marseypikachu.webp b/files/assets/CHRISTMAS/images/emojis/marseypikachu.webp
new file mode 100644
index 000000000..fcab67e11
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/marseypikachu.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/marseypikachu2.webp b/files/assets/CHRISTMAS/images/emojis/marseypikachu2.webp
new file mode 100644
index 000000000..9e33106c5
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/marseypikachu2.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/marseypilgrim.webp b/files/assets/CHRISTMAS/images/emojis/marseypilgrim.webp
new file mode 100644
index 000000000..e7ac2eba9
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/marseypilgrim.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/marseypimp.webp b/files/assets/CHRISTMAS/images/emojis/marseypimp.webp
new file mode 100644
index 000000000..3da7558f3
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/marseypimp.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/marseypin.webp b/files/assets/CHRISTMAS/images/emojis/marseypin.webp
new file mode 100644
index 000000000..9d67bb6a4
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/marseypin.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/marseypinochet.webp b/files/assets/CHRISTMAS/images/emojis/marseypinochet.webp
new file mode 100644
index 000000000..a273b574e
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/marseypinochet.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/marseypipe.webp b/files/assets/CHRISTMAS/images/emojis/marseypipe.webp
new file mode 100644
index 000000000..6891445fd
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/marseypipe.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/marseypirate.webp b/files/assets/CHRISTMAS/images/emojis/marseypirate.webp
new file mode 100644
index 000000000..737483af5
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/marseypirate.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/marseypirate2.webp b/files/assets/CHRISTMAS/images/emojis/marseypirate2.webp
new file mode 100644
index 000000000..fd962fd57
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/marseypirate2.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/marseypixel.webp b/files/assets/CHRISTMAS/images/emojis/marseypixel.webp
new file mode 100644
index 000000000..738a89d43
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/marseypixel.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/marseypizzashill.webp b/files/assets/CHRISTMAS/images/emojis/marseypizzashill.webp
new file mode 100644
index 000000000..a26fac6d1
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/marseypizzashill.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/marseyplanecrash.webp b/files/assets/CHRISTMAS/images/emojis/marseyplanecrash.webp
new file mode 100644
index 000000000..5c2fbad9a
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/marseyplanecrash.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/marseyplaty.webp b/files/assets/CHRISTMAS/images/emojis/marseyplaty.webp
new file mode 100644
index 000000000..ead7addc8
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/marseyplaty.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/marseyplaying.webp b/files/assets/CHRISTMAS/images/emojis/marseyplaying.webp
new file mode 100644
index 000000000..5737ae818
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/marseyplaying.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/marseyplaying2.webp b/files/assets/CHRISTMAS/images/emojis/marseyplaying2.webp
new file mode 100644
index 000000000..23dbacc4e
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/marseyplaying2.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/marseypleading.webp b/files/assets/CHRISTMAS/images/emojis/marseypleading.webp
new file mode 100644
index 000000000..e0e458fd4
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/marseypleading.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/marseyplugged.webp b/files/assets/CHRISTMAS/images/emojis/marseyplugged.webp
new file mode 100644
index 000000000..dab58a04a
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/marseyplugged.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/marseyplush.webp b/files/assets/CHRISTMAS/images/emojis/marseyplush.webp
new file mode 100644
index 000000000..4af947a4a
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/marseyplush.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/marseypoggers.webp b/files/assets/CHRISTMAS/images/emojis/marseypoggers.webp
new file mode 100644
index 000000000..e11747462
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/marseypoggers.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/marseypokerface.webp b/files/assets/CHRISTMAS/images/emojis/marseypokerface.webp
new file mode 100644
index 000000000..26a3145b2
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/marseypokerface.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/marseyponder.webp b/files/assets/CHRISTMAS/images/emojis/marseyponder.webp
new file mode 100644
index 000000000..48d24ca15
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/marseyponder.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/marseypony.webp b/files/assets/CHRISTMAS/images/emojis/marseypony.webp
new file mode 100644
index 000000000..68c647db1
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/marseypony.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/marseypoor.webp b/files/assets/CHRISTMAS/images/emojis/marseypoor.webp
new file mode 100644
index 000000000..0fd8ef0b6
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/marseypoor.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/marseypop.webp b/files/assets/CHRISTMAS/images/emojis/marseypop.webp
new file mode 100644
index 000000000..05a0c3b9e
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/marseypop.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/marseypop2.webp b/files/assets/CHRISTMAS/images/emojis/marseypop2.webp
new file mode 100644
index 000000000..c9723ee9d
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/marseypop2.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/marseypopcorn.webp b/files/assets/CHRISTMAS/images/emojis/marseypopcorn.webp
new file mode 100644
index 000000000..0503e84b2
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/marseypopcorn.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/marseypopcorntime.webp b/files/assets/CHRISTMAS/images/emojis/marseypopcorntime.webp
new file mode 100644
index 000000000..826172f24
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/marseypopcorntime.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/marseypope.webp b/files/assets/CHRISTMAS/images/emojis/marseypope.webp
new file mode 100644
index 000000000..3e1f1db11
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/marseypope.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/marseypostmodern.webp b/files/assets/CHRISTMAS/images/emojis/marseypostmodern.webp
new file mode 100644
index 000000000..a666bca66
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/marseypostmodern.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/marseypredator.webp b/files/assets/CHRISTMAS/images/emojis/marseypredator.webp
new file mode 100644
index 000000000..80461959d
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/marseypredator.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/marseypresents.webp b/files/assets/CHRISTMAS/images/emojis/marseypresents.webp
new file mode 100644
index 000000000..cc407d67b
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/marseypresents.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/marseypretty.webp b/files/assets/CHRISTMAS/images/emojis/marseypretty.webp
new file mode 100644
index 000000000..c8d36b9f3
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/marseypretty.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/marseypride.webp b/files/assets/CHRISTMAS/images/emojis/marseypride.webp
new file mode 100644
index 000000000..93a4d0bea
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/marseypride.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/marseyprisma.webp b/files/assets/CHRISTMAS/images/emojis/marseyprisma.webp
new file mode 100644
index 000000000..fdb0315d9
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/marseyprisma.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/marseyproctologist.webp b/files/assets/CHRISTMAS/images/emojis/marseyproctologist.webp
new file mode 100644
index 000000000..aa7d852b3
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/marseyproctologist.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/marseyprotestno.webp b/files/assets/CHRISTMAS/images/emojis/marseyprotestno.webp
new file mode 100644
index 000000000..01692ad81
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/marseyprotestno.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/marseyprotestyes.webp b/files/assets/CHRISTMAS/images/emojis/marseyprotestyes.webp
new file mode 100644
index 000000000..75ee972a3
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/marseyprotestyes.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/marseypsycho.webp b/files/assets/CHRISTMAS/images/emojis/marseypsycho.webp
new file mode 100644
index 000000000..a5ea326c7
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/marseypsycho.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/marseypuke.webp b/files/assets/CHRISTMAS/images/emojis/marseypuke.webp
new file mode 100644
index 000000000..ae21f0eff
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/marseypuke.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/marseypumpkin.webp b/files/assets/CHRISTMAS/images/emojis/marseypumpkin.webp
new file mode 100644
index 000000000..c0e24cf73
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/marseypumpkin.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/marseypumpkin2.webp b/files/assets/CHRISTMAS/images/emojis/marseypumpkin2.webp
new file mode 100644
index 000000000..aa0903371
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/marseypumpkin2.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/marseypumpkin3.webp b/files/assets/CHRISTMAS/images/emojis/marseypumpkin3.webp
new file mode 100644
index 000000000..a66c9c085
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/marseypumpkin3.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/marseypumpkin4.webp b/files/assets/CHRISTMAS/images/emojis/marseypumpkin4.webp
new file mode 100644
index 000000000..adf55e218
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/marseypumpkin4.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/marseypumpkincloak.webp b/files/assets/CHRISTMAS/images/emojis/marseypumpkincloak.webp
new file mode 100644
index 000000000..c68887331
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/marseypumpkincloak.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/marseypumpking.webp b/files/assets/CHRISTMAS/images/emojis/marseypumpking.webp
new file mode 100644
index 000000000..57c4f5eb9
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/marseypumpking.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/marseypumpkinglow.webp b/files/assets/CHRISTMAS/images/emojis/marseypumpkinglow.webp
new file mode 100644
index 000000000..081386e70
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/marseypumpkinglow.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/marseypunching.webp b/files/assets/CHRISTMAS/images/emojis/marseypunching.webp
new file mode 100644
index 000000000..1db969334
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/marseypunching.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/marseypunisher.webp b/files/assets/CHRISTMAS/images/emojis/marseypunisher.webp
new file mode 100644
index 000000000..0fa35cd64
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/marseypunisher.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/marseyqoomer.webp b/files/assets/CHRISTMAS/images/emojis/marseyqoomer.webp
new file mode 100644
index 000000000..576919bba
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/marseyqoomer.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/marseyquadmagyar.webp b/files/assets/CHRISTMAS/images/emojis/marseyquadmagyar.webp
new file mode 100644
index 000000000..84013e2d7
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/marseyquadmagyar.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/marseyqueen.webp b/files/assets/CHRISTMAS/images/emojis/marseyqueen.webp
new file mode 100644
index 000000000..8364ebec9
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/marseyqueen.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/marseyqueenlizard.webp b/files/assets/CHRISTMAS/images/emojis/marseyqueenlizard.webp
new file mode 100644
index 000000000..557c02b25
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/marseyqueenlizard.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/marseyraccoon.webp b/files/assets/CHRISTMAS/images/emojis/marseyraccoon.webp
new file mode 100644
index 000000000..b11b454f4
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/marseyraccoon.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/marseyracist.webp b/files/assets/CHRISTMAS/images/emojis/marseyracist.webp
new file mode 100644
index 000000000..1e78a9a7c
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/marseyracist.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/marseyracistgrandpa.webp b/files/assets/CHRISTMAS/images/emojis/marseyracistgrandpa.webp
new file mode 100644
index 000000000..6e371e006
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/marseyracistgrandpa.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/marseyradioactive.webp b/files/assets/CHRISTMAS/images/emojis/marseyradioactive.webp
new file mode 100644
index 000000000..819eaad60
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/marseyradioactive.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/marseyrage.webp b/files/assets/CHRISTMAS/images/emojis/marseyrage.webp
new file mode 100644
index 000000000..b7123b705
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/marseyrage.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/marseyraging.webp b/files/assets/CHRISTMAS/images/emojis/marseyraging.webp
new file mode 100644
index 000000000..4928d4e0e
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/marseyraging.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/marseyrain.webp b/files/assets/CHRISTMAS/images/emojis/marseyrain.webp
new file mode 100644
index 000000000..926b802f3
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/marseyrain.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/marseyrake.webp b/files/assets/CHRISTMAS/images/emojis/marseyrake.webp
new file mode 100644
index 000000000..4bdbac896
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/marseyrake.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/marseyramen.webp b/files/assets/CHRISTMAS/images/emojis/marseyramen.webp
new file mode 100644
index 000000000..0485b1797
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/marseyramen.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/marseyrare.webp b/files/assets/CHRISTMAS/images/emojis/marseyrare.webp
new file mode 100644
index 000000000..6507cc9a0
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/marseyrare.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/marseyrasta.webp b/files/assets/CHRISTMAS/images/emojis/marseyrasta.webp
new file mode 100644
index 000000000..959c325dd
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/marseyrasta.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/marseyrat.webp b/files/assets/CHRISTMAS/images/emojis/marseyrat.webp
new file mode 100644
index 000000000..0ef677d79
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/marseyrat.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/marseyrave.webp b/files/assets/CHRISTMAS/images/emojis/marseyrave.webp
new file mode 100644
index 000000000..23f5a53cb
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/marseyrave.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/marseyreading.webp b/files/assets/CHRISTMAS/images/emojis/marseyreading.webp
new file mode 100644
index 000000000..4cbf71045
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/marseyreading.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/marseyready.webp b/files/assets/CHRISTMAS/images/emojis/marseyready.webp
new file mode 100644
index 000000000..a91149df3
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/marseyready.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/marseyrealwork.webp b/files/assets/CHRISTMAS/images/emojis/marseyrealwork.webp
new file mode 100644
index 000000000..b91dc0038
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/marseyrealwork.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/marseyreich.webp b/files/assets/CHRISTMAS/images/emojis/marseyreich.webp
new file mode 100644
index 000000000..0085e8011
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/marseyreich.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/marseyreindeer.webp b/files/assets/CHRISTMAS/images/emojis/marseyreindeer.webp
new file mode 100644
index 000000000..c13ea241d
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/marseyreindeer.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/marseyreindeer2.webp b/files/assets/CHRISTMAS/images/emojis/marseyreindeer2.webp
new file mode 100644
index 000000000..fc9000554
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/marseyreindeer2.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/marseyreindeer3.webp b/files/assets/CHRISTMAS/images/emojis/marseyreindeer3.webp
new file mode 100644
index 000000000..a8c8e447c
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/marseyreindeer3.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/marseyreindeer4.webp b/files/assets/CHRISTMAS/images/emojis/marseyreindeer4.webp
new file mode 100644
index 000000000..da2855d55
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/marseyreindeer4.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/marseyrentfree.webp b/files/assets/CHRISTMAS/images/emojis/marseyrentfree.webp
new file mode 100644
index 000000000..1a6c4c8e7
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/marseyrentfree.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/marseyreportercnn.webp b/files/assets/CHRISTMAS/images/emojis/marseyreportercnn.webp
new file mode 100644
index 000000000..9ba90bc93
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/marseyreportercnn.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/marseyreporterfox.webp b/files/assets/CHRISTMAS/images/emojis/marseyreporterfox.webp
new file mode 100644
index 000000000..016a4f625
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/marseyreporterfox.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/marseyretard.webp b/files/assets/CHRISTMAS/images/emojis/marseyretard.webp
new file mode 100644
index 000000000..b70fb4cdc
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/marseyretard.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/marseyrevolution.webp b/files/assets/CHRISTMAS/images/emojis/marseyrevolution.webp
new file mode 100644
index 000000000..40b6b6dce
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/marseyrevolution.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/marseyrick.webp b/files/assets/CHRISTMAS/images/emojis/marseyrick.webp
new file mode 100644
index 000000000..42ba32a73
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/marseyrick.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/marseyroo.webp b/files/assets/CHRISTMAS/images/emojis/marseyroo.webp
new file mode 100644
index 000000000..00364bff3
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/marseyroo.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/marseyrope.webp b/files/assets/CHRISTMAS/images/emojis/marseyrope.webp
new file mode 100644
index 000000000..5674b4a91
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/marseyrope.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/marseyropeyourself.webp b/files/assets/CHRISTMAS/images/emojis/marseyropeyourself.webp
new file mode 100644
index 000000000..3e4f3b5cd
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/marseyropeyourself.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/marseyropeyourself2.webp b/files/assets/CHRISTMAS/images/emojis/marseyropeyourself2.webp
new file mode 100644
index 000000000..12202f8ec
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/marseyropeyourself2.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/marseyrowling.webp b/files/assets/CHRISTMAS/images/emojis/marseyrowling.webp
new file mode 100644
index 000000000..2ac3a59d3
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/marseyrowling.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/marseyrpgcharacter.webp b/files/assets/CHRISTMAS/images/emojis/marseyrpgcharacter.webp
new file mode 100644
index 000000000..1c9fe56e3
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/marseyrpgcharacter.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/marseyrs.webp b/files/assets/CHRISTMAS/images/emojis/marseyrs.webp
new file mode 100644
index 000000000..842b5b974
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/marseyrs.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/marseyrussel.webp b/files/assets/CHRISTMAS/images/emojis/marseyrussel.webp
new file mode 100644
index 000000000..6a7ea814a
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/marseyrussel.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/marseyrussiadolls.webp b/files/assets/CHRISTMAS/images/emojis/marseyrussiadolls.webp
new file mode 100644
index 000000000..c665a8c09
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/marseyrussiadolls.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/marseysad.webp b/files/assets/CHRISTMAS/images/emojis/marseysad.webp
new file mode 100644
index 000000000..7e8b0762a
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/marseysad.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/marseysad2.webp b/files/assets/CHRISTMAS/images/emojis/marseysad2.webp
new file mode 100644
index 000000000..3de13c6d3
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/marseysad2.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/marseysadcat.webp b/files/assets/CHRISTMAS/images/emojis/marseysadcat.webp
new file mode 100644
index 000000000..817d1ed68
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/marseysadcat.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/marseysadge.webp b/files/assets/CHRISTMAS/images/emojis/marseysadge.webp
new file mode 100644
index 000000000..b98e7ad70
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/marseysadge.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/marseysaint.webp b/files/assets/CHRISTMAS/images/emojis/marseysaint.webp
new file mode 100644
index 000000000..7ec96c837
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/marseysaint.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/marseysalad.webp b/files/assets/CHRISTMAS/images/emojis/marseysalad.webp
new file mode 100644
index 000000000..fdbd5d154
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/marseysalad.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/marseysalat.webp b/files/assets/CHRISTMAS/images/emojis/marseysalat.webp
new file mode 100644
index 000000000..fcf45ce91
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/marseysalat.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/marseysalty.webp b/files/assets/CHRISTMAS/images/emojis/marseysalty.webp
new file mode 100644
index 000000000..352dfa54b
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/marseysalty.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/marseysalutearmy.webp b/files/assets/CHRISTMAS/images/emojis/marseysalutearmy.webp
new file mode 100644
index 000000000..8f1854a4f
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/marseysalutearmy.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/marseysalutecop.webp b/files/assets/CHRISTMAS/images/emojis/marseysalutecop.webp
new file mode 100644
index 000000000..566216ca0
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/marseysalutecop.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/marseysalutenavy.webp b/files/assets/CHRISTMAS/images/emojis/marseysalutenavy.webp
new file mode 100644
index 000000000..157ed61f9
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/marseysalutenavy.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/marseysanders.webp b/files/assets/CHRISTMAS/images/emojis/marseysanders.webp
new file mode 100644
index 000000000..943b5dd18
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/marseysanders.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/marseysanta.webp b/files/assets/CHRISTMAS/images/emojis/marseysanta.webp
new file mode 100644
index 000000000..63238a6b8
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/marseysanta.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/marseysanta2.webp b/files/assets/CHRISTMAS/images/emojis/marseysanta2.webp
new file mode 100644
index 000000000..114a5fe11
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/marseysanta2.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/marseysanta3.webp b/files/assets/CHRISTMAS/images/emojis/marseysanta3.webp
new file mode 100644
index 000000000..705cb8a27
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/marseysanta3.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/marseysartre.webp b/files/assets/CHRISTMAS/images/emojis/marseysartre.webp
new file mode 100644
index 000000000..b934fc4d2
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/marseysartre.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/marseysaw.webp b/files/assets/CHRISTMAS/images/emojis/marseysaw.webp
new file mode 100644
index 000000000..a6b9c5991
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/marseysaw.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/marseyscared.webp b/files/assets/CHRISTMAS/images/emojis/marseyscared.webp
new file mode 100644
index 000000000..b5713077f
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/marseyscared.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/marseyscarf.webp b/files/assets/CHRISTMAS/images/emojis/marseyscarf.webp
new file mode 100644
index 000000000..901d600f2
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/marseyscarf.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/marseyschizo.webp b/files/assets/CHRISTMAS/images/emojis/marseyschizo.webp
new file mode 100644
index 000000000..7f673033b
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/marseyschizo.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/marseyschrodinger.webp b/files/assets/CHRISTMAS/images/emojis/marseyschrodinger.webp
new file mode 100644
index 000000000..8f6a68ab5
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/marseyschrodinger.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/marseyseethe.webp b/files/assets/CHRISTMAS/images/emojis/marseyseethe.webp
new file mode 100644
index 000000000..38cf4e937
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/marseyseethe.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/marseyseven.webp b/files/assets/CHRISTMAS/images/emojis/marseyseven.webp
new file mode 100644
index 000000000..40800ab96
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/marseyseven.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/marseysexy.webp b/files/assets/CHRISTMAS/images/emojis/marseysexy.webp
new file mode 100644
index 000000000..cac2359ef
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/marseysexy.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/marseysexylibrarian.webp b/files/assets/CHRISTMAS/images/emojis/marseysexylibrarian.webp
new file mode 100644
index 000000000..11310a6e6
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/marseysexylibrarian.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/marseyshapiro.webp b/files/assets/CHRISTMAS/images/emojis/marseyshapiro.webp
new file mode 100644
index 000000000..19bf6dbf7
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/marseyshapiro.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/marseysharingan.webp b/files/assets/CHRISTMAS/images/emojis/marseysharingan.webp
new file mode 100644
index 000000000..3b4a07e4f
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/marseysharingan.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/marseyshark.webp b/files/assets/CHRISTMAS/images/emojis/marseyshark.webp
new file mode 100644
index 000000000..5a168bcb5
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/marseyshark.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/marseysheep.webp b/files/assets/CHRISTMAS/images/emojis/marseysheep.webp
new file mode 100644
index 000000000..c89689afa
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/marseysheep.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/marseysheepdog.webp b/files/assets/CHRISTMAS/images/emojis/marseysheepdog.webp
new file mode 100644
index 000000000..9fd6b295a
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/marseysheepdog.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/marseyshiftyeyes.webp b/files/assets/CHRISTMAS/images/emojis/marseyshiftyeyes.webp
new file mode 100644
index 000000000..7c2175a09
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/marseyshiftyeyes.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/marseyshisha.webp b/files/assets/CHRISTMAS/images/emojis/marseyshisha.webp
new file mode 100644
index 000000000..d1080a1c7
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/marseyshisha.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/marseyshook.webp b/files/assets/CHRISTMAS/images/emojis/marseyshook.webp
new file mode 100644
index 000000000..24e2b9848
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/marseyshook.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/marseyshooting.webp b/files/assets/CHRISTMAS/images/emojis/marseyshooting.webp
new file mode 100644
index 000000000..ebad85cf4
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/marseyshooting.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/marseyshroom.webp b/files/assets/CHRISTMAS/images/emojis/marseyshroom.webp
new file mode 100644
index 000000000..5fde383c3
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/marseyshroom.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/marseyshrug.webp b/files/assets/CHRISTMAS/images/emojis/marseyshrug.webp
new file mode 100644
index 000000000..a6e83c5e2
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/marseyshrug.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/marseyshutitdown.webp b/files/assets/CHRISTMAS/images/emojis/marseyshutitdown.webp
new file mode 100644
index 000000000..01bbd4fe5
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/marseyshutitdown.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/marseyshy.webp b/files/assets/CHRISTMAS/images/emojis/marseyshy.webp
new file mode 100644
index 000000000..2009e1f74
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/marseyshy.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/marseysick.webp b/files/assets/CHRISTMAS/images/emojis/marseysick.webp
new file mode 100644
index 000000000..44c8752e5
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/marseysick.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/marseysigh.webp b/files/assets/CHRISTMAS/images/emojis/marseysigh.webp
new file mode 100644
index 000000000..28f576fe5
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/marseysigh.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/marseysipping.webp b/files/assets/CHRISTMAS/images/emojis/marseysipping.webp
new file mode 100644
index 000000000..173eca43c
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/marseysipping.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/marseysjw.webp b/files/assets/CHRISTMAS/images/emojis/marseysjw.webp
new file mode 100644
index 000000000..8ea4c7556
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/marseysjw.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/marseyskater.webp b/files/assets/CHRISTMAS/images/emojis/marseyskater.webp
new file mode 100644
index 000000000..3c0e90e9c
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/marseyskater.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/marseyskeleton.webp b/files/assets/CHRISTMAS/images/emojis/marseyskeleton.webp
new file mode 100644
index 000000000..9d8b37022
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/marseyskeleton.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/marseyskeleton2.webp b/files/assets/CHRISTMAS/images/emojis/marseyskeleton2.webp
new file mode 100644
index 000000000..fbd9964d5
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/marseyskeleton2.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/marseyskeletor.webp b/files/assets/CHRISTMAS/images/emojis/marseyskeletor.webp
new file mode 100644
index 000000000..da74ab134
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/marseyskeletor.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/marseyski.webp b/files/assets/CHRISTMAS/images/emojis/marseyski.webp
new file mode 100644
index 000000000..c99bb2ed8
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/marseyski.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/marseysleep.webp b/files/assets/CHRISTMAS/images/emojis/marseysleep.webp
new file mode 100644
index 000000000..7270da2ad
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/marseysleep.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/marseysmirk.webp b/files/assets/CHRISTMAS/images/emojis/marseysmirk.webp
new file mode 100644
index 000000000..8934471b0
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/marseysmirk.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/marseysmoothbrain.webp b/files/assets/CHRISTMAS/images/emojis/marseysmoothbrain.webp
new file mode 100644
index 000000000..138e6716b
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/marseysmoothbrain.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/marseysmudge.webp b/files/assets/CHRISTMAS/images/emojis/marseysmudge.webp
new file mode 100644
index 000000000..9590c960f
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/marseysmudge.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/marseysmug.webp b/files/assets/CHRISTMAS/images/emojis/marseysmug.webp
new file mode 100644
index 000000000..19ed5c64b
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/marseysmug.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/marseysmug2.webp b/files/assets/CHRISTMAS/images/emojis/marseysmug2.webp
new file mode 100644
index 000000000..dfcd11450
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/marseysmug2.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/marseysmug3.webp b/files/assets/CHRISTMAS/images/emojis/marseysmug3.webp
new file mode 100644
index 000000000..3b665a741
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/marseysmug3.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/marseysnappypat.webp b/files/assets/CHRISTMAS/images/emojis/marseysnappypat.webp
new file mode 100644
index 000000000..ad8cf81d2
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/marseysnappypat.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/marseysneed.webp b/files/assets/CHRISTMAS/images/emojis/marseysneed.webp
new file mode 100644
index 000000000..4f74f3604
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/marseysneed.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/marseysnek.webp b/files/assets/CHRISTMAS/images/emojis/marseysnek.webp
new file mode 100644
index 000000000..cfd1b9e9b
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/marseysnek.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/marseysniff.webp b/files/assets/CHRISTMAS/images/emojis/marseysniff.webp
new file mode 100644
index 000000000..72ed0c66e
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/marseysniff.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/marseysnoo.webp b/files/assets/CHRISTMAS/images/emojis/marseysnoo.webp
new file mode 100644
index 000000000..ba3af010d
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/marseysnoo.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/marseysnow.webp b/files/assets/CHRISTMAS/images/emojis/marseysnow.webp
new file mode 100644
index 000000000..c5d9a4984
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/marseysnow.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/marseysnowman.webp b/files/assets/CHRISTMAS/images/emojis/marseysnowman.webp
new file mode 100644
index 000000000..50c0fad15
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/marseysnowman.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/marseysnowman2.webp b/files/assets/CHRISTMAS/images/emojis/marseysnowman2.webp
new file mode 100644
index 000000000..5d5bb3422
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/marseysnowman2.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/marseysob.webp b/files/assets/CHRISTMAS/images/emojis/marseysob.webp
new file mode 100644
index 000000000..779a5eb7c
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/marseysob.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/marseysociety.webp b/files/assets/CHRISTMAS/images/emojis/marseysociety.webp
new file mode 100644
index 000000000..ab038cfd4
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/marseysociety.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/marseysombrero.webp b/files/assets/CHRISTMAS/images/emojis/marseysombrero.webp
new file mode 100644
index 000000000..c918f99a4
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/marseysombrero.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/marseysonic.webp b/files/assets/CHRISTMAS/images/emojis/marseysonic.webp
new file mode 100644
index 000000000..a0a56e849
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/marseysonic.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/marseysonofman.webp b/files/assets/CHRISTMAS/images/emojis/marseysonofman.webp
new file mode 100644
index 000000000..b8fb063e5
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/marseysonofman.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/marseysoypoint.webp b/files/assets/CHRISTMAS/images/emojis/marseysoypoint.webp
new file mode 100644
index 000000000..ea51b81ed
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/marseysoypoint.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/marseyspecial.webp b/files/assets/CHRISTMAS/images/emojis/marseyspecial.webp
new file mode 100644
index 000000000..d59749f63
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/marseyspecial.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/marseyspecialpat.webp b/files/assets/CHRISTMAS/images/emojis/marseyspecialpat.webp
new file mode 100644
index 000000000..9b5de7760
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/marseyspecialpat.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/marseyspider.webp b/files/assets/CHRISTMAS/images/emojis/marseyspider.webp
new file mode 100644
index 000000000..423a829e4
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/marseyspider.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/marseyspider2.webp b/files/assets/CHRISTMAS/images/emojis/marseyspider2.webp
new file mode 100644
index 000000000..523b58af1
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/marseyspider2.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/marseyspirit.webp b/files/assets/CHRISTMAS/images/emojis/marseyspirit.webp
new file mode 100644
index 000000000..f866afe8c
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/marseyspirit.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/marseyspit.webp b/files/assets/CHRISTMAS/images/emojis/marseyspit.webp
new file mode 100644
index 000000000..301790db9
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/marseyspit.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/marseyspittake.webp b/files/assets/CHRISTMAS/images/emojis/marseyspittake.webp
new file mode 100644
index 000000000..8ee159358
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/marseyspittake.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/marseyspooky.webp b/files/assets/CHRISTMAS/images/emojis/marseyspooky.webp
new file mode 100644
index 000000000..f15805469
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/marseyspooky.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/marseyspookysmile.webp b/files/assets/CHRISTMAS/images/emojis/marseyspookysmile.webp
new file mode 100644
index 000000000..3e39a930f
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/marseyspookysmile.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/marseysrdine.webp b/files/assets/CHRISTMAS/images/emojis/marseysrdine.webp
new file mode 100644
index 000000000..53247d09c
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/marseysrdine.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/marseysrdine2.webp b/files/assets/CHRISTMAS/images/emojis/marseysrdine2.webp
new file mode 100644
index 000000000..bba735122
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/marseysrdine2.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/marseystars.webp b/files/assets/CHRISTMAS/images/emojis/marseystars.webp
new file mode 100644
index 000000000..a5e8ea51d
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/marseystars.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/marseysteer.webp b/files/assets/CHRISTMAS/images/emojis/marseysteer.webp
new file mode 100644
index 000000000..f850b23a4
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/marseysteer.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/marseystein.webp b/files/assets/CHRISTMAS/images/emojis/marseystein.webp
new file mode 100644
index 000000000..72d5c8e67
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/marseystein.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/marseystinky.webp b/files/assets/CHRISTMAS/images/emojis/marseystinky.webp
new file mode 100644
index 000000000..af6193d0e
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/marseystinky.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/marseystonetoss.webp b/files/assets/CHRISTMAS/images/emojis/marseystonetoss.webp
new file mode 100644
index 000000000..025fdd464
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/marseystonetoss.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/marseystroke.webp b/files/assets/CHRISTMAS/images/emojis/marseystroke.webp
new file mode 100644
index 000000000..0ab6001f6
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/marseystroke.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/marseysuffragette.webp b/files/assets/CHRISTMAS/images/emojis/marseysuffragette.webp
new file mode 100644
index 000000000..82f0f06a6
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/marseysuffragette.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/marseysulk.webp b/files/assets/CHRISTMAS/images/emojis/marseysulk.webp
new file mode 100644
index 000000000..ca5e60f8d
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/marseysulk.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/marseysuper.webp b/files/assets/CHRISTMAS/images/emojis/marseysuper.webp
new file mode 100644
index 000000000..ec1db65de
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/marseysuper.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/marseysurprised.webp b/files/assets/CHRISTMAS/images/emojis/marseysurprised.webp
new file mode 100644
index 000000000..d1fa16474
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/marseysurprised.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/marseysus.webp b/files/assets/CHRISTMAS/images/emojis/marseysus.webp
new file mode 100644
index 000000000..59318d4fc
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/marseysus.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/marseysweating.webp b/files/assets/CHRISTMAS/images/emojis/marseysweating.webp
new file mode 100644
index 000000000..cd1256ed1
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/marseysweating.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/marseysylveon.webp b/files/assets/CHRISTMAS/images/emojis/marseysylveon.webp
new file mode 100644
index 000000000..ba71e181f
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/marseysylveon.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/marseysylveonpat.webp b/files/assets/CHRISTMAS/images/emojis/marseysylveonpat.webp
new file mode 100644
index 000000000..29445fa61
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/marseysylveonpat.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/marseytaliban.webp b/files/assets/CHRISTMAS/images/emojis/marseytaliban.webp
new file mode 100644
index 000000000..be629c9b0
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/marseytaliban.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/marseytalibanpat.webp b/files/assets/CHRISTMAS/images/emojis/marseytalibanpat.webp
new file mode 100644
index 000000000..a9202accd
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/marseytalibanpat.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/marseytank.webp b/files/assets/CHRISTMAS/images/emojis/marseytank.webp
new file mode 100644
index 000000000..206585757
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/marseytank.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/marseytankushanka.webp b/files/assets/CHRISTMAS/images/emojis/marseytankushanka.webp
new file mode 100644
index 000000000..ddd4bf6d5
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/marseytankushanka.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/marseytea.webp b/files/assets/CHRISTMAS/images/emojis/marseytea.webp
new file mode 100644
index 000000000..ee837f104
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/marseytea.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/marseyteaparty.webp b/files/assets/CHRISTMAS/images/emojis/marseyteaparty.webp
new file mode 100644
index 000000000..02e471de5
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/marseyteaparty.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/marseytears.webp b/files/assets/CHRISTMAS/images/emojis/marseytears.webp
new file mode 100644
index 000000000..67e97787a
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/marseytears.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/marseyteruteru.webp b/files/assets/CHRISTMAS/images/emojis/marseyteruteru.webp
new file mode 100644
index 000000000..de834781f
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/marseyteruteru.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/marseythegrey.webp b/files/assets/CHRISTMAS/images/emojis/marseythegrey.webp
new file mode 100644
index 000000000..522ed8d28
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/marseythegrey.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/marseytheorist.webp b/files/assets/CHRISTMAS/images/emojis/marseytheorist.webp
new file mode 100644
index 000000000..09cb80ed3
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/marseytheorist.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/marseything.webp b/files/assets/CHRISTMAS/images/emojis/marseything.webp
new file mode 100644
index 000000000..9576913bc
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/marseything.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/marseythinkorino.webp b/files/assets/CHRISTMAS/images/emojis/marseythinkorino.webp
new file mode 100644
index 000000000..80ade4d7d
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/marseythinkorino.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/marseythomas.webp b/files/assets/CHRISTMAS/images/emojis/marseythomas.webp
new file mode 100644
index 000000000..5ad212098
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/marseythomas.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/marseythonk.webp b/files/assets/CHRISTMAS/images/emojis/marseythonk.webp
new file mode 100644
index 000000000..75bd25e79
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/marseythonk.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/marseythroatsinging.webp b/files/assets/CHRISTMAS/images/emojis/marseythroatsinging.webp
new file mode 100644
index 000000000..844b054f3
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/marseythroatsinging.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/marseythumbsup.webp b/files/assets/CHRISTMAS/images/emojis/marseythumbsup.webp
new file mode 100644
index 000000000..b9dcddb21
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/marseythumbsup.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/marseytiger.webp b/files/assets/CHRISTMAS/images/emojis/marseytiger.webp
new file mode 100644
index 000000000..9b839f7bf
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/marseytiger.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/marseytime.webp b/files/assets/CHRISTMAS/images/emojis/marseytime.webp
new file mode 100644
index 000000000..0986ef7cb
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/marseytime.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/marseytinfoil.webp b/files/assets/CHRISTMAS/images/emojis/marseytinfoil.webp
new file mode 100644
index 000000000..49d6d787e
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/marseytinfoil.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/marseytinfoil2.webp b/files/assets/CHRISTMAS/images/emojis/marseytinfoil2.webp
new file mode 100644
index 000000000..3b447a4f6
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/marseytinfoil2.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/marseytoilet.webp b/files/assets/CHRISTMAS/images/emojis/marseytoilet.webp
new file mode 100644
index 000000000..9b7e296fc
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/marseytoilet.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/marseytrad.webp b/files/assets/CHRISTMAS/images/emojis/marseytrad.webp
new file mode 100644
index 000000000..d4a69edd2
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/marseytrad.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/marseytrain.webp b/files/assets/CHRISTMAS/images/emojis/marseytrain.webp
new file mode 100644
index 000000000..6f1d7cb4d
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/marseytrain.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/marseytrans.webp b/files/assets/CHRISTMAS/images/emojis/marseytrans.webp
new file mode 100644
index 000000000..5704e6dba
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/marseytrans.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/marseytrans2.webp b/files/assets/CHRISTMAS/images/emojis/marseytrans2.webp
new file mode 100644
index 000000000..ff94ce563
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/marseytrans2.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/marseytransflag.webp b/files/assets/CHRISTMAS/images/emojis/marseytransflag.webp
new file mode 100644
index 000000000..d901f2a17
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/marseytransflag.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/marseytrickortreat.webp b/files/assets/CHRISTMAS/images/emojis/marseytrickortreat.webp
new file mode 100644
index 000000000..6f88ed03f
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/marseytrickortreat.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/marseytroll.webp b/files/assets/CHRISTMAS/images/emojis/marseytroll.webp
new file mode 100644
index 000000000..d59197817
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/marseytroll.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/marseytroll2.webp b/files/assets/CHRISTMAS/images/emojis/marseytroll2.webp
new file mode 100644
index 000000000..37bbf599c
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/marseytroll2.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/marseytrollcrazy.webp b/files/assets/CHRISTMAS/images/emojis/marseytrollcrazy.webp
new file mode 100644
index 000000000..50096b2f6
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/marseytrollcrazy.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/marseytrollgun.webp b/files/assets/CHRISTMAS/images/emojis/marseytrollgun.webp
new file mode 100644
index 000000000..4225d0967
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/marseytrollgun.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/marseytrollolol.webp b/files/assets/CHRISTMAS/images/emojis/marseytrollolol.webp
new file mode 100644
index 000000000..32b1d20bf
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/marseytrollolol.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/marseytroublemaker.webp b/files/assets/CHRISTMAS/images/emojis/marseytroublemaker.webp
new file mode 100644
index 000000000..8a4bb7a76
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/marseytroublemaker.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/marseytrump.webp b/files/assets/CHRISTMAS/images/emojis/marseytrump.webp
new file mode 100644
index 000000000..b4f59eaf3
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/marseytrump.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/marseytunaktunak.webp b/files/assets/CHRISTMAS/images/emojis/marseytunaktunak.webp
new file mode 100644
index 000000000..b8c335ec2
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/marseytunaktunak.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/marseyturkey.webp b/files/assets/CHRISTMAS/images/emojis/marseyturkey.webp
new file mode 100644
index 000000000..bcb42bded
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/marseyturkey.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/marseytv.webp b/files/assets/CHRISTMAS/images/emojis/marseytv.webp
new file mode 100644
index 000000000..b383dfdc0
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/marseytv.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/marseytwerking.webp b/files/assets/CHRISTMAS/images/emojis/marseytwerking.webp
new file mode 100644
index 000000000..89ae36b67
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/marseytwerking.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/marseytwins.webp b/files/assets/CHRISTMAS/images/emojis/marseytwins.webp
new file mode 100644
index 000000000..461617654
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/marseytwins.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/marseyuglyxmasweater.webp b/files/assets/CHRISTMAS/images/emojis/marseyuglyxmasweater.webp
new file mode 100644
index 000000000..69c412965
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/marseyuglyxmasweater.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/marseyumbreon.webp b/files/assets/CHRISTMAS/images/emojis/marseyumbreon.webp
new file mode 100644
index 000000000..63445d4cd
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/marseyumbreon.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/marseyumbreonpat.webp b/files/assets/CHRISTMAS/images/emojis/marseyumbreonpat.webp
new file mode 100644
index 000000000..b6783cfec
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/marseyumbreonpat.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/marseyunabomber.webp b/files/assets/CHRISTMAS/images/emojis/marseyunabomber.webp
new file mode 100644
index 000000000..806e48b03
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/marseyunabomber.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/marseyunpettable.webp b/files/assets/CHRISTMAS/images/emojis/marseyunpettable.webp
new file mode 100644
index 000000000..49ca952de
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/marseyunpettable.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/marseyuwuw.webp b/files/assets/CHRISTMAS/images/emojis/marseyuwuw.webp
new file mode 100644
index 000000000..363f48136
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/marseyuwuw.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/marseyvampire.webp b/files/assets/CHRISTMAS/images/emojis/marseyvampire.webp
new file mode 100644
index 000000000..fd8263f63
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/marseyvampire.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/marseyvan.webp b/files/assets/CHRISTMAS/images/emojis/marseyvan.webp
new file mode 100644
index 000000000..363686b06
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/marseyvan.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/marseyvaporeon.webp b/files/assets/CHRISTMAS/images/emojis/marseyvaporeon.webp
new file mode 100644
index 000000000..313a9965c
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/marseyvaporeon.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/marseyvaporeonpat.webp b/files/assets/CHRISTMAS/images/emojis/marseyvaporeonpat.webp
new file mode 100644
index 000000000..10a725f42
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/marseyvaporeonpat.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/marseyvaporwave.webp b/files/assets/CHRISTMAS/images/emojis/marseyvaporwave.webp
new file mode 100644
index 000000000..4d075f38c
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/marseyvaporwave.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/marseyvaxmaxx.webp b/files/assets/CHRISTMAS/images/emojis/marseyvaxmaxx.webp
new file mode 100644
index 000000000..51bea7576
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/marseyvaxmaxx.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/marseyvengeance.webp b/files/assets/CHRISTMAS/images/emojis/marseyvengeance.webp
new file mode 100644
index 000000000..6d9e1c24e
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/marseyvengeance.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/marseyvibing.webp b/files/assets/CHRISTMAS/images/emojis/marseyvibing.webp
new file mode 100644
index 000000000..e9ebd3fbb
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/marseyvibing.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/marseyvietnam.webp b/files/assets/CHRISTMAS/images/emojis/marseyvietnam.webp
new file mode 100644
index 000000000..764632f07
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/marseyvietnam.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/marseyvirus.webp b/files/assets/CHRISTMAS/images/emojis/marseyvirus.webp
new file mode 100644
index 000000000..4b5bc1b4a
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/marseyvirus.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/marseywagie.webp b/files/assets/CHRISTMAS/images/emojis/marseywagie.webp
new file mode 100644
index 000000000..97a2f53f7
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/marseywagie.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/marseywalking.webp b/files/assets/CHRISTMAS/images/emojis/marseywalking.webp
new file mode 100644
index 000000000..fbb4baeee
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/marseywalking.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/marseywallst.webp b/files/assets/CHRISTMAS/images/emojis/marseywallst.webp
new file mode 100644
index 000000000..ee14fc308
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/marseywallst.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/marseywarhol.webp b/files/assets/CHRISTMAS/images/emojis/marseywarhol.webp
new file mode 100644
index 000000000..3643901c1
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/marseywarhol.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/marseywave.webp b/files/assets/CHRISTMAS/images/emojis/marseywave.webp
new file mode 100644
index 000000000..f9e448f22
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/marseywave.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/marseyweeb.webp b/files/assets/CHRISTMAS/images/emojis/marseyweeb.webp
new file mode 100644
index 000000000..b5a85b242
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/marseyweeb.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/marseywendy.webp b/files/assets/CHRISTMAS/images/emojis/marseywendy.webp
new file mode 100644
index 000000000..3cb66c5fb
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/marseywendy.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/marseywheredrama.webp b/files/assets/CHRISTMAS/images/emojis/marseywheredrama.webp
new file mode 100644
index 000000000..d73e5b829
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/marseywheredrama.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/marseywheredrama2.webp b/files/assets/CHRISTMAS/images/emojis/marseywheredrama2.webp
new file mode 100644
index 000000000..d5bacc6a4
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/marseywheredrama2.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/marseywhirlyhat.webp b/files/assets/CHRISTMAS/images/emojis/marseywhirlyhat.webp
new file mode 100644
index 000000000..1d80fe2bb
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/marseywhirlyhat.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/marseywholesome.webp b/files/assets/CHRISTMAS/images/emojis/marseywholesome.webp
new file mode 100644
index 000000000..e5f0df160
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/marseywholesome.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/marseywinner.webp b/files/assets/CHRISTMAS/images/emojis/marseywinner.webp
new file mode 100644
index 000000000..6dcd5c9a8
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/marseywinner.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/marseywise.webp b/files/assets/CHRISTMAS/images/emojis/marseywise.webp
new file mode 100644
index 000000000..5aaa5911a
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/marseywise.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/marseywitch.webp b/files/assets/CHRISTMAS/images/emojis/marseywitch.webp
new file mode 100644
index 000000000..b1b256f80
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/marseywitch.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/marseywitch2.webp b/files/assets/CHRISTMAS/images/emojis/marseywitch2.webp
new file mode 100644
index 000000000..a419f2b88
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/marseywitch2.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/marseywitch3.webp b/files/assets/CHRISTMAS/images/emojis/marseywitch3.webp
new file mode 100644
index 000000000..a56447e51
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/marseywitch3.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/marseywoah.webp b/files/assets/CHRISTMAS/images/emojis/marseywoah.webp
new file mode 100644
index 000000000..703333578
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/marseywoah.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/marseywolf.webp b/files/assets/CHRISTMAS/images/emojis/marseywolf.webp
new file mode 100644
index 000000000..d2d3ac669
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/marseywolf.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/marseywords.webp b/files/assets/CHRISTMAS/images/emojis/marseywords.webp
new file mode 100644
index 000000000..a57726403
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/marseywords.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/marseywords2.webp b/files/assets/CHRISTMAS/images/emojis/marseywords2.webp
new file mode 100644
index 000000000..5468558e7
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/marseywords2.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/marseyworried.webp b/files/assets/CHRISTMAS/images/emojis/marseyworried.webp
new file mode 100644
index 000000000..d92439e3c
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/marseyworried.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/marseywtf.webp b/files/assets/CHRISTMAS/images/emojis/marseywtf.webp
new file mode 100644
index 000000000..1b1e62138
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/marseywtf.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/marseywtf2.webp b/files/assets/CHRISTMAS/images/emojis/marseywtf2.webp
new file mode 100644
index 000000000..ee0bdba25
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/marseywtf2.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/marseywut.webp b/files/assets/CHRISTMAS/images/emojis/marseywut.webp
new file mode 100644
index 000000000..14e7ac336
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/marseywut.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/marseyxd.webp b/files/assets/CHRISTMAS/images/emojis/marseyxd.webp
new file mode 100644
index 000000000..ae796d5d3
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/marseyxd.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/marseyxoxo.webp b/files/assets/CHRISTMAS/images/emojis/marseyxoxo.webp
new file mode 100644
index 000000000..43924361e
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/marseyxoxo.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/marseyyass.webp b/files/assets/CHRISTMAS/images/emojis/marseyyass.webp
new file mode 100644
index 000000000..55765b70f
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/marseyyass.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/marseyyawn.webp b/files/assets/CHRISTMAS/images/emojis/marseyyawn.webp
new file mode 100644
index 000000000..86cba0489
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/marseyyawn.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/marseyyeezus.webp b/files/assets/CHRISTMAS/images/emojis/marseyyeezus.webp
new file mode 100644
index 000000000..fb812068d
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/marseyyeezus.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/marseyyes.webp b/files/assets/CHRISTMAS/images/emojis/marseyyes.webp
new file mode 100644
index 000000000..c5b217ee2
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/marseyyes.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/marseyyikes.webp b/files/assets/CHRISTMAS/images/emojis/marseyyikes.webp
new file mode 100644
index 000000000..f12383cf2
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/marseyyikes.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/marseyza.webp b/files/assets/CHRISTMAS/images/emojis/marseyza.webp
new file mode 100644
index 000000000..0f99e563b
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/marseyza.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/marseyzombie.webp b/files/assets/CHRISTMAS/images/emojis/marseyzombie.webp
new file mode 100644
index 000000000..7046fffd4
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/marseyzombie.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/marseyzoomer.webp b/files/assets/CHRISTMAS/images/emojis/marseyzoomer.webp
new file mode 100644
index 000000000..4c3f0d16a
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/marseyzoomer.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/marseyzwei.webp b/files/assets/CHRISTMAS/images/emojis/marseyzwei.webp
new file mode 100644
index 000000000..8cbb2c4e3
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/marseyzwei.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/marsheen.webp b/files/assets/CHRISTMAS/images/emojis/marsheen.webp
new file mode 100644
index 000000000..33401b2b3
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/marsheen.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/marsheep.webp b/files/assets/CHRISTMAS/images/emojis/marsheep.webp
new file mode 100644
index 000000000..84d0ebbcb
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/marsheep.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/marsheepnpc.webp b/files/assets/CHRISTMAS/images/emojis/marsheepnpc.webp
new file mode 100644
index 000000000..10373c899
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/marsheepnpc.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/marsoy.webp b/files/assets/CHRISTMAS/images/emojis/marsoy.webp
new file mode 100644
index 000000000..08d8a7e49
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/marsoy.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/marsoyhype.webp b/files/assets/CHRISTMAS/images/emojis/marsoyhype.webp
new file mode 100644
index 000000000..4be611d25
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/marsoyhype.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/mcmarsey.webp b/files/assets/CHRISTMAS/images/emojis/mcmarsey.webp
new file mode 100644
index 000000000..1d0a2b402
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/mcmarsey.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/medal.webp b/files/assets/CHRISTMAS/images/emojis/medal.webp
new file mode 100644
index 000000000..a282ec9a0
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/medal.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/megaman.webp b/files/assets/CHRISTMAS/images/emojis/megaman.webp
new file mode 100644
index 000000000..1539e9e97
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/megaman.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/megamanguitar.webp b/files/assets/CHRISTMAS/images/emojis/megamanguitar.webp
new file mode 100644
index 000000000..90a2e250e
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/megamanguitar.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/megusta.webp b/files/assets/CHRISTMAS/images/emojis/megusta.webp
new file mode 100644
index 000000000..99ff5a286
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/megusta.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/meow.webp b/files/assets/CHRISTMAS/images/emojis/meow.webp
new file mode 100644
index 000000000..98b3913a5
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/meow.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/mersya.webp b/files/assets/CHRISTMAS/images/emojis/mersya.webp
new file mode 100644
index 000000000..04d5fccc4
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/mersya.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/mersya2.webp b/files/assets/CHRISTMAS/images/emojis/mersya2.webp
new file mode 100644
index 000000000..248845e64
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/mersya2.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/mersyapat.webp b/files/assets/CHRISTMAS/images/emojis/mersyapat.webp
new file mode 100644
index 000000000..ed609dbea
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/mersyapat.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/metime.webp b/files/assets/CHRISTMAS/images/emojis/metime.webp
new file mode 100644
index 000000000..46847b75e
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/metime.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/mlm.webp b/files/assets/CHRISTMAS/images/emojis/mlm.webp
new file mode 100644
index 000000000..4499d41b0
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/mlm.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/monke.webp b/files/assets/CHRISTMAS/images/emojis/monke.webp
new file mode 100644
index 000000000..519ff192c
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/monke.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/mooning.webp b/files/assets/CHRISTMAS/images/emojis/mooning.webp
new file mode 100644
index 000000000..a8acd468b
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/mooning.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/motherfucker.webp b/files/assets/CHRISTMAS/images/emojis/motherfucker.webp
new file mode 100644
index 000000000..561ab51d7
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/motherfucker.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/motherofgod.webp b/files/assets/CHRISTMAS/images/emojis/motherofgod.webp
new file mode 100644
index 000000000..07e6f94cd
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/motherofgod.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/mummy.webp b/files/assets/CHRISTMAS/images/emojis/mummy.webp
new file mode 100644
index 000000000..8c52d50c7
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/mummy.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/mysides.webp b/files/assets/CHRISTMAS/images/emojis/mysides.webp
new file mode 100644
index 000000000..c1cea6669
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/mysides.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/na.webp b/files/assets/CHRISTMAS/images/emojis/na.webp
new file mode 100644
index 000000000..80b41ed74
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/na.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/nauseous.webp b/files/assets/CHRISTMAS/images/emojis/nauseous.webp
new file mode 100644
index 000000000..91b7b9b13
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/nauseous.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/nazijak.webp b/files/assets/CHRISTMAS/images/emojis/nazijak.webp
new file mode 100644
index 000000000..6d3b3fa08
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/nazijak.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/nervous.webp b/files/assets/CHRISTMAS/images/emojis/nervous.webp
new file mode 100644
index 000000000..22f79b38c
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/nervous.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/niger.webp b/files/assets/CHRISTMAS/images/emojis/niger.webp
new file mode 100644
index 000000000..17349e463
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/niger.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/ninja.webp b/files/assets/CHRISTMAS/images/emojis/ninja.webp
new file mode 100644
index 000000000..660e8cdb6
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/ninja.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/nod.webp b/files/assets/CHRISTMAS/images/emojis/nod.webp
new file mode 100644
index 000000000..0434489c4
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/nod.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/nono.webp b/files/assets/CHRISTMAS/images/emojis/nono.webp
new file mode 100644
index 000000000..6c7c38d86
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/nono.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/npc.webp b/files/assets/CHRISTMAS/images/emojis/npc.webp
new file mode 100644
index 000000000..53d253d1f
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/npc.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/npcfront.webp b/files/assets/CHRISTMAS/images/emojis/npcfront.webp
new file mode 100644
index 000000000..b71eaa453
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/npcfront.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/npcmaga.webp b/files/assets/CHRISTMAS/images/emojis/npcmaga.webp
new file mode 100644
index 000000000..0d8cfd5f9
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/npcmaga.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/ohgodwhy.webp b/files/assets/CHRISTMAS/images/emojis/ohgodwhy.webp
new file mode 100644
index 000000000..718c7e71c
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/ohgodwhy.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/omg.webp b/files/assets/CHRISTMAS/images/emojis/omg.webp
new file mode 100644
index 000000000..b0906a0a5
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/omg.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/onfire.webp b/files/assets/CHRISTMAS/images/emojis/onfire.webp
new file mode 100644
index 000000000..d22ed7441
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/onfire.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/ooo.webp b/files/assets/CHRISTMAS/images/emojis/ooo.webp
new file mode 100644
index 000000000..d6cd8440f
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/ooo.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/orly.webp b/files/assets/CHRISTMAS/images/emojis/orly.webp
new file mode 100644
index 000000000..efe1855f3
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/orly.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/owlsey.webp b/files/assets/CHRISTMAS/images/emojis/owlsey.webp
new file mode 100644
index 000000000..94235aeb7
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/owlsey.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/p.webp b/files/assets/CHRISTMAS/images/emojis/p.webp
new file mode 100644
index 000000000..84f6d86fd
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/p.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/paddle.webp b/files/assets/CHRISTMAS/images/emojis/paddle.webp
new file mode 100644
index 000000000..8c95ce73f
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/paddle.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/panda.webp b/files/assets/CHRISTMAS/images/emojis/panda.webp
new file mode 100644
index 000000000..7d70dcf1c
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/panda.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/pandabutt.webp b/files/assets/CHRISTMAS/images/emojis/pandabutt.webp
new file mode 100644
index 000000000..684f53b8b
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/pandabutt.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/paranoid.webp b/files/assets/CHRISTMAS/images/emojis/paranoid.webp
new file mode 100644
index 000000000..b1a582b5b
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/paranoid.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/party.webp b/files/assets/CHRISTMAS/images/emojis/party.webp
new file mode 100644
index 000000000..14a521af3
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/party.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/pat.webp b/files/assets/CHRISTMAS/images/emojis/pat.webp
new file mode 100644
index 000000000..617c55e9b
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/pat.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/peek.webp b/files/assets/CHRISTMAS/images/emojis/peek.webp
new file mode 100644
index 000000000..2e7e17978
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/peek.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/pervertedspiderman.webp b/files/assets/CHRISTMAS/images/emojis/pervertedspiderman.webp
new file mode 100644
index 000000000..94cceba69
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/pervertedspiderman.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/picard.webp b/files/assets/CHRISTMAS/images/emojis/picard.webp
new file mode 100644
index 000000000..e741e051d
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/picard.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/pikachu.webp b/files/assets/CHRISTMAS/images/emojis/pikachu.webp
new file mode 100644
index 000000000..872512bda
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/pikachu.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/pimp.webp b/files/assets/CHRISTMAS/images/emojis/pimp.webp
new file mode 100644
index 000000000..12c2b21ef
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/pimp.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/plarsy.webp b/files/assets/CHRISTMAS/images/emojis/plarsy.webp
new file mode 100644
index 000000000..e91aac83b
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/plarsy.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/platyabused.webp b/files/assets/CHRISTMAS/images/emojis/platyabused.webp
new file mode 100644
index 000000000..59f9e5a0e
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/platyabused.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/platyblizzard.webp b/files/assets/CHRISTMAS/images/emojis/platyblizzard.webp
new file mode 100644
index 000000000..6bd9f65a3
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/platyblizzard.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/platyblush.webp b/files/assets/CHRISTMAS/images/emojis/platyblush.webp
new file mode 100644
index 000000000..d97d30bc0
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/platyblush.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/platyboxer.webp b/files/assets/CHRISTMAS/images/emojis/platyboxer.webp
new file mode 100644
index 000000000..1c9bc810a
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/platyboxer.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/platybruh.webp b/files/assets/CHRISTMAS/images/emojis/platybruh.webp
new file mode 100644
index 000000000..7f77e2a2c
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/platybruh.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/platycaveman.webp b/files/assets/CHRISTMAS/images/emojis/platycaveman.webp
new file mode 100644
index 000000000..f55f9041a
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/platycaveman.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/platycheer.webp b/files/assets/CHRISTMAS/images/emojis/platycheer.webp
new file mode 100644
index 000000000..feccddf45
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/platycheer.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/platydevil.webp b/files/assets/CHRISTMAS/images/emojis/platydevil.webp
new file mode 100644
index 000000000..fd0421d86
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/platydevil.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/platydown.webp b/files/assets/CHRISTMAS/images/emojis/platydown.webp
new file mode 100644
index 000000000..83eb8d0b7
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/platydown.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/platyeyes.webp b/files/assets/CHRISTMAS/images/emojis/platyeyes.webp
new file mode 100644
index 000000000..1a8fbd22f
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/platyeyes.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/platyfear.webp b/files/assets/CHRISTMAS/images/emojis/platyfear.webp
new file mode 100644
index 000000000..416e97c90
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/platyfear.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/platygirlmagic.webp b/files/assets/CHRISTMAS/images/emojis/platygirlmagic.webp
new file mode 100644
index 000000000..3d7ebd3d0
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/platygirlmagic.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/platygolong.webp b/files/assets/CHRISTMAS/images/emojis/platygolong.webp
new file mode 100644
index 000000000..dee121b4b
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/platygolong.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/platyhaes.webp b/files/assets/CHRISTMAS/images/emojis/platyhaes.webp
new file mode 100644
index 000000000..426ae3f22
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/platyhaes.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/platyheart.webp b/files/assets/CHRISTMAS/images/emojis/platyheart.webp
new file mode 100644
index 000000000..c8c0026a8
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/platyheart.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/platyking.webp b/files/assets/CHRISTMAS/images/emojis/platyking.webp
new file mode 100644
index 000000000..097383a2d
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/platyking.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/platylol.webp b/files/assets/CHRISTMAS/images/emojis/platylol.webp
new file mode 100644
index 000000000..eb0f40092
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/platylol.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/platylove.webp b/files/assets/CHRISTMAS/images/emojis/platylove.webp
new file mode 100644
index 000000000..1ce2943f6
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/platylove.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/platymicdrop.webp b/files/assets/CHRISTMAS/images/emojis/platymicdrop.webp
new file mode 100644
index 000000000..f64cd4aa8
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/platymicdrop.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/platyneet.webp b/files/assets/CHRISTMAS/images/emojis/platyneet.webp
new file mode 100644
index 000000000..48c436db4
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/platyneet.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/platynooo.webp b/files/assets/CHRISTMAS/images/emojis/platynooo.webp
new file mode 100644
index 000000000..4da549293
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/platynooo.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/platyold.webp b/files/assets/CHRISTMAS/images/emojis/platyold.webp
new file mode 100644
index 000000000..7044aa129
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/platyold.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/platypatience.webp b/files/assets/CHRISTMAS/images/emojis/platypatience.webp
new file mode 100644
index 000000000..a04e9f922
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/platypatience.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/platypopcorn.webp b/files/assets/CHRISTMAS/images/emojis/platypopcorn.webp
new file mode 100644
index 000000000..59b24e4bb
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/platypopcorn.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/platyrich.webp b/files/assets/CHRISTMAS/images/emojis/platyrich.webp
new file mode 100644
index 000000000..27f758586
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/platyrich.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/platysalute.webp b/files/assets/CHRISTMAS/images/emojis/platysalute.webp
new file mode 100644
index 000000000..bc6f5a084
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/platysalute.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/platysarcasm.webp b/files/assets/CHRISTMAS/images/emojis/platysarcasm.webp
new file mode 100644
index 000000000..66059e8d3
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/platysarcasm.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/platyseethe.webp b/files/assets/CHRISTMAS/images/emojis/platyseethe.webp
new file mode 100644
index 000000000..662bdfcac
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/platyseethe.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/platysilly.webp b/files/assets/CHRISTMAS/images/emojis/platysilly.webp
new file mode 100644
index 000000000..ed36cb9f1
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/platysilly.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/platysleeping.webp b/files/assets/CHRISTMAS/images/emojis/platysleeping.webp
new file mode 100644
index 000000000..d51ed4a54
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/platysleeping.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/platythink.webp b/files/assets/CHRISTMAS/images/emojis/platythink.webp
new file mode 100644
index 000000000..04930e48e
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/platythink.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/platythumbsup.webp b/files/assets/CHRISTMAS/images/emojis/platythumbsup.webp
new file mode 100644
index 000000000..0658ca802
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/platythumbsup.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/platytired.webp b/files/assets/CHRISTMAS/images/emojis/platytired.webp
new file mode 100644
index 000000000..93b8ec3b0
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/platytired.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/platytuxedomask.webp b/files/assets/CHRISTMAS/images/emojis/platytuxedomask.webp
new file mode 100644
index 000000000..c6a415b64
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/platytuxedomask.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/platywave.webp b/files/assets/CHRISTMAS/images/emojis/platywave.webp
new file mode 100644
index 000000000..056ada3c7
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/platywave.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/plzdie.webp b/files/assets/CHRISTMAS/images/emojis/plzdie.webp
new file mode 100644
index 000000000..a44faf89d
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/plzdie.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/poke.webp b/files/assets/CHRISTMAS/images/emojis/poke.webp
new file mode 100644
index 000000000..e58b266cb
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/poke.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/popcorn.webp b/files/assets/CHRISTMAS/images/emojis/popcorn.webp
new file mode 100644
index 000000000..57e8d6362
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/popcorn.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/pout.webp b/files/assets/CHRISTMAS/images/emojis/pout.webp
new file mode 100644
index 000000000..8ee30854b
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/pout.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/probe.webp b/files/assets/CHRISTMAS/images/emojis/probe.webp
new file mode 100644
index 000000000..0f5975a96
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/probe.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/psychojak.webp b/files/assets/CHRISTMAS/images/emojis/psychojak.webp
new file mode 100644
index 000000000..d0690a2e3
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/psychojak.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/puke.webp b/files/assets/CHRISTMAS/images/emojis/puke.webp
new file mode 100644
index 000000000..36c160199
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/puke.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/punch.webp b/files/assets/CHRISTMAS/images/emojis/punch.webp
new file mode 100644
index 000000000..154480dff
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/punch.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/punchjak.webp b/files/assets/CHRISTMAS/images/emojis/punchjak.webp
new file mode 100644
index 000000000..d9a87680d
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/punchjak.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/queenyes.webp b/files/assets/CHRISTMAS/images/emojis/queenyes.webp
new file mode 100644
index 000000000..e0c671308
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/queenyes.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/quote.webp b/files/assets/CHRISTMAS/images/emojis/quote.webp
new file mode 100644
index 000000000..d930429f9
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/quote.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/raccoon.webp b/files/assets/CHRISTMAS/images/emojis/raccoon.webp
new file mode 100644
index 000000000..c59fb7566
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/raccoon.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/ragejak.webp b/files/assets/CHRISTMAS/images/emojis/ragejak.webp
new file mode 100644
index 000000000..ecf6b7b2e
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/ragejak.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/ragemask.webp b/files/assets/CHRISTMAS/images/emojis/ragemask.webp
new file mode 100644
index 000000000..6b54a5e2f
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/ragemask.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/ragestrangle.webp b/files/assets/CHRISTMAS/images/emojis/ragestrangle.webp
new file mode 100644
index 000000000..ca8426a17
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/ragestrangle.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/ramonajak.webp b/files/assets/CHRISTMAS/images/emojis/ramonajak.webp
new file mode 100644
index 000000000..68b5eeb4b
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/ramonajak.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/retardedchildren.webp b/files/assets/CHRISTMAS/images/emojis/retardedchildren.webp
new file mode 100644
index 000000000..cfa06e03c
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/retardedchildren.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/roar.webp b/files/assets/CHRISTMAS/images/emojis/roar.webp
new file mode 100644
index 000000000..1cfe83291
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/roar.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/rofl.webp b/files/assets/CHRISTMAS/images/emojis/rofl.webp
new file mode 100644
index 000000000..a3cb4804c
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/rofl.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/roflmao.webp b/files/assets/CHRISTMAS/images/emojis/roflmao.webp
new file mode 100644
index 000000000..ad2864135
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/roflmao.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/rolleyes.webp b/files/assets/CHRISTMAS/images/emojis/rolleyes.webp
new file mode 100644
index 000000000..6c43f3701
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/rolleyes.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/rukiddingme.webp b/files/assets/CHRISTMAS/images/emojis/rukiddingme.webp
new file mode 100644
index 000000000..00cfc6a95
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/rukiddingme.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/sad.webp b/files/assets/CHRISTMAS/images/emojis/sad.webp
new file mode 100644
index 000000000..43cc5b55f
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/sad.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/sadeyes.webp b/files/assets/CHRISTMAS/images/emojis/sadeyes.webp
new file mode 100644
index 000000000..43a5992a6
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/sadeyes.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/sadhug.webp b/files/assets/CHRISTMAS/images/emojis/sadhug.webp
new file mode 100644
index 000000000..542e8a934
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/sadhug.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/samurai.webp b/files/assets/CHRISTMAS/images/emojis/samurai.webp
new file mode 100644
index 000000000..578d8bee5
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/samurai.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/sarcasm.webp b/files/assets/CHRISTMAS/images/emojis/sarcasm.webp
new file mode 100644
index 000000000..2c7dc3524
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/sarcasm.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/saudi.webp b/files/assets/CHRISTMAS/images/emojis/saudi.webp
new file mode 100644
index 000000000..ed9f78a8f
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/saudi.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/scalperpride.webp b/files/assets/CHRISTMAS/images/emojis/scalperpride.webp
new file mode 100644
index 000000000..4e9cba311
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/scalperpride.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/scoot.webp b/files/assets/CHRISTMAS/images/emojis/scoot.webp
new file mode 100644
index 000000000..c79e6c2fe
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/scoot.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/scream.webp b/files/assets/CHRISTMAS/images/emojis/scream.webp
new file mode 100644
index 000000000..851c4fbdd
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/scream.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/seethejak.webp b/files/assets/CHRISTMAS/images/emojis/seethejak.webp
new file mode 100644
index 000000000..1b44ac426
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/seethejak.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/shmoopy.webp b/files/assets/CHRISTMAS/images/emojis/shmoopy.webp
new file mode 100644
index 000000000..67b988903
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/shmoopy.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/shrug.webp b/files/assets/CHRISTMAS/images/emojis/shrug.webp
new file mode 100644
index 000000000..8451275ae
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/shrug.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/skull.webp b/files/assets/CHRISTMAS/images/emojis/skull.webp
new file mode 100644
index 000000000..21b2ce3ac
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/skull.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/slap.webp b/files/assets/CHRISTMAS/images/emojis/slap.webp
new file mode 100644
index 000000000..d1ffd2863
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/slap.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/slapfight.webp b/files/assets/CHRISTMAS/images/emojis/slapfight.webp
new file mode 100644
index 000000000..e4d1c3310
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/slapfight.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/sleepy.webp b/files/assets/CHRISTMAS/images/emojis/sleepy.webp
new file mode 100644
index 000000000..f5c215895
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/sleepy.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/smackfish.webp b/files/assets/CHRISTMAS/images/emojis/smackfish.webp
new file mode 100644
index 000000000..cded0bb3b
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/smackfish.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/smackhead.webp b/files/assets/CHRISTMAS/images/emojis/smackhead.webp
new file mode 100644
index 000000000..1fc1bcd9b
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/smackhead.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/smh.webp b/files/assets/CHRISTMAS/images/emojis/smh.webp
new file mode 100644
index 000000000..620ffdef1
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/smh.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/smile.webp b/files/assets/CHRISTMAS/images/emojis/smile.webp
new file mode 100644
index 000000000..8358efb8f
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/smile.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/smoke.webp b/files/assets/CHRISTMAS/images/emojis/smoke.webp
new file mode 100644
index 000000000..30f57343c
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/smoke.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/sonic.webp b/files/assets/CHRISTMAS/images/emojis/sonic.webp
new file mode 100644
index 000000000..274d5261a
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/sonic.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/soycry.webp b/files/assets/CHRISTMAS/images/emojis/soycry.webp
new file mode 100644
index 000000000..46aa90f46
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/soycry.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/soyjackwow.webp b/files/assets/CHRISTMAS/images/emojis/soyjackwow.webp
new file mode 100644
index 000000000..fb6b5b38d
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/soyjackwow.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/soyjak.webp b/files/assets/CHRISTMAS/images/emojis/soyjak.webp
new file mode 100644
index 000000000..a2e2716e7
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/soyjak.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/soyjakfront.webp b/files/assets/CHRISTMAS/images/emojis/soyjakfront.webp
new file mode 100644
index 000000000..05b1f2148
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/soyjakfront.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/soyjakhipster.webp b/files/assets/CHRISTMAS/images/emojis/soyjakhipster.webp
new file mode 100644
index 000000000..75a7fc975
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/soyjakhipster.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/soyjakmaga.webp b/files/assets/CHRISTMAS/images/emojis/soyjakmaga.webp
new file mode 100644
index 000000000..156a7eb6a
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/soyjakmaga.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/soyjakyell.webp b/files/assets/CHRISTMAS/images/emojis/soyjakyell.webp
new file mode 100644
index 000000000..c8252057e
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/soyjakyell.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/soymad.webp b/files/assets/CHRISTMAS/images/emojis/soymad.webp
new file mode 100644
index 000000000..460b24a08
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/soymad.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/spank.webp b/files/assets/CHRISTMAS/images/emojis/spank.webp
new file mode 100644
index 000000000..187807d19
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/spank.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/sparta.webp b/files/assets/CHRISTMAS/images/emojis/sparta.webp
new file mode 100644
index 000000000..4cd1e281a
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/sparta.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/sperm.webp b/files/assets/CHRISTMAS/images/emojis/sperm.webp
new file mode 100644
index 000000000..4ed2424a1
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/sperm.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/spiderman.webp b/files/assets/CHRISTMAS/images/emojis/spiderman.webp
new file mode 100644
index 000000000..971032d40
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/spiderman.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/spit.webp b/files/assets/CHRISTMAS/images/emojis/spit.webp
new file mode 100644
index 000000000..31d3f825c
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/spit.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/stab.webp b/files/assets/CHRISTMAS/images/emojis/stab.webp
new file mode 100644
index 000000000..b94cbb846
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/stab.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/star.webp b/files/assets/CHRISTMAS/images/emojis/star.webp
new file mode 100644
index 000000000..d9c9e20e0
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/star.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/stare.webp b/files/assets/CHRISTMAS/images/emojis/stare.webp
new file mode 100644
index 000000000..886995d8a
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/stare.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/stfu.webp b/files/assets/CHRISTMAS/images/emojis/stfu.webp
new file mode 100644
index 000000000..869daacdf
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/stfu.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/suicide.webp b/files/assets/CHRISTMAS/images/emojis/suicide.webp
new file mode 100644
index 000000000..ece75b917
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/suicide.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/superstraight.webp b/files/assets/CHRISTMAS/images/emojis/superstraight.webp
new file mode 100644
index 000000000..5abcd6b50
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/superstraight.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/surprisehug.webp b/files/assets/CHRISTMAS/images/emojis/surprisehug.webp
new file mode 100644
index 000000000..b7d9693cf
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/surprisehug.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/suspicious.webp b/files/assets/CHRISTMAS/images/emojis/suspicious.webp
new file mode 100644
index 000000000..181d70709
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/suspicious.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/sweat.webp b/files/assets/CHRISTMAS/images/emojis/sweat.webp
new file mode 100644
index 000000000..3a9897f53
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/sweat.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/swordfight.webp b/files/assets/CHRISTMAS/images/emojis/swordfight.webp
new file mode 100644
index 000000000..f63c77e3b
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/swordfight.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/taco.webp b/files/assets/CHRISTMAS/images/emojis/taco.webp
new file mode 100644
index 000000000..87f1d2f24
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/taco.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/talk2hand.webp b/files/assets/CHRISTMAS/images/emojis/talk2hand.webp
new file mode 100644
index 000000000..0268c4769
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/talk2hand.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/tantrum.webp b/files/assets/CHRISTMAS/images/emojis/tantrum.webp
new file mode 100644
index 000000000..586c7cfb5
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/tantrum.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/tayaaa.webp b/files/assets/CHRISTMAS/images/emojis/tayaaa.webp
new file mode 100644
index 000000000..473317c98
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/tayaaa.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/tayadmire.webp b/files/assets/CHRISTMAS/images/emojis/tayadmire.webp
new file mode 100644
index 000000000..3140e4ef2
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/tayadmire.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/taycat.webp b/files/assets/CHRISTMAS/images/emojis/taycat.webp
new file mode 100644
index 000000000..5af288ce8
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/taycat.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/taycelebrate.webp b/files/assets/CHRISTMAS/images/emojis/taycelebrate.webp
new file mode 100644
index 000000000..e935ea1ef
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/taycelebrate.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/taychefkiss.webp b/files/assets/CHRISTMAS/images/emojis/taychefkiss.webp
new file mode 100644
index 000000000..2cbf1b9ba
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/taychefkiss.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/taychristmas.webp b/files/assets/CHRISTMAS/images/emojis/taychristmas.webp
new file mode 100644
index 000000000..0d2e73781
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/taychristmas.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/tayclap.webp b/files/assets/CHRISTMAS/images/emojis/tayclap.webp
new file mode 100644
index 000000000..9d02ac3ca
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/tayclap.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/taycold.webp b/files/assets/CHRISTMAS/images/emojis/taycold.webp
new file mode 100644
index 000000000..cf31c0e71
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/taycold.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/taycrown.webp b/files/assets/CHRISTMAS/images/emojis/taycrown.webp
new file mode 100644
index 000000000..e2fc8f648
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/taycrown.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/tayflex.webp b/files/assets/CHRISTMAS/images/emojis/tayflex.webp
new file mode 100644
index 000000000..251174527
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/tayflex.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/tayflirt.webp b/files/assets/CHRISTMAS/images/emojis/tayflirt.webp
new file mode 100644
index 000000000..99fa0e40f
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/tayflirt.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/taygrimacing.webp b/files/assets/CHRISTMAS/images/emojis/taygrimacing.webp
new file mode 100644
index 000000000..81114934f
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/taygrimacing.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/tayhappy.webp b/files/assets/CHRISTMAS/images/emojis/tayhappy.webp
new file mode 100644
index 000000000..3d9bd5836
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/tayhappy.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/tayheart.webp b/files/assets/CHRISTMAS/images/emojis/tayheart.webp
new file mode 100644
index 000000000..2b418a5f5
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/tayheart.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/tayhmm.webp b/files/assets/CHRISTMAS/images/emojis/tayhmm.webp
new file mode 100644
index 000000000..b192f0f96
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/tayhmm.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/tayhuh.webp b/files/assets/CHRISTMAS/images/emojis/tayhuh.webp
new file mode 100644
index 000000000..864df4344
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/tayhuh.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/tayhyperdab.webp b/files/assets/CHRISTMAS/images/emojis/tayhyperdab.webp
new file mode 100644
index 000000000..aeaeb9cf9
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/tayhyperdab.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/tayjammin.webp b/files/assets/CHRISTMAS/images/emojis/tayjammin.webp
new file mode 100644
index 000000000..1504bcc75
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/tayjammin.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/taylaugh.webp b/files/assets/CHRISTMAS/images/emojis/taylaugh.webp
new file mode 100644
index 000000000..d06482cdf
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/taylaugh.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/taylove.webp b/files/assets/CHRISTMAS/images/emojis/taylove.webp
new file mode 100644
index 000000000..fd6dac889
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/taylove.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/taymindblown.webp b/files/assets/CHRISTMAS/images/emojis/taymindblown.webp
new file mode 100644
index 000000000..b5d2a0bf2
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/taymindblown.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/tayno.webp b/files/assets/CHRISTMAS/images/emojis/tayno.webp
new file mode 100644
index 000000000..476406892
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/tayno.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/taynod.webp b/files/assets/CHRISTMAS/images/emojis/taynod.webp
new file mode 100644
index 000000000..59882d91c
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/taynod.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/taypeace.webp b/files/assets/CHRISTMAS/images/emojis/taypeace.webp
new file mode 100644
index 000000000..69163e0c9
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/taypeace.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/taypray.webp b/files/assets/CHRISTMAS/images/emojis/taypray.webp
new file mode 100644
index 000000000..bb48a914d
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/taypray.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/tayrun.webp b/files/assets/CHRISTMAS/images/emojis/tayrun.webp
new file mode 100644
index 000000000..3e629d9f7
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/tayrun.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/tayscrunch.webp b/files/assets/CHRISTMAS/images/emojis/tayscrunch.webp
new file mode 100644
index 000000000..84a35995b
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/tayscrunch.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/tayshake.webp b/files/assets/CHRISTMAS/images/emojis/tayshake.webp
new file mode 100644
index 000000000..497764e62
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/tayshake.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/tayshrug.webp b/files/assets/CHRISTMAS/images/emojis/tayshrug.webp
new file mode 100644
index 000000000..30c6369eb
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/tayshrug.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/taysilly.webp b/files/assets/CHRISTMAS/images/emojis/taysilly.webp
new file mode 100644
index 000000000..74012b43b
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/taysilly.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/tayslide.webp b/files/assets/CHRISTMAS/images/emojis/tayslide.webp
new file mode 100644
index 000000000..25d978b22
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/tayslide.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/taysmart.webp b/files/assets/CHRISTMAS/images/emojis/taysmart.webp
new file mode 100644
index 000000000..bddfe9a4d
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/taysmart.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/taystop.webp b/files/assets/CHRISTMAS/images/emojis/taystop.webp
new file mode 100644
index 000000000..213dda498
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/taystop.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/taytantrum.webp b/files/assets/CHRISTMAS/images/emojis/taytantrum.webp
new file mode 100644
index 000000000..c64fbbcf2
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/taytantrum.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/taytea.webp b/files/assets/CHRISTMAS/images/emojis/taytea.webp
new file mode 100644
index 000000000..f618428f5
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/taytea.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/taythink.webp b/files/assets/CHRISTMAS/images/emojis/taythink.webp
new file mode 100644
index 000000000..4ba58ede5
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/taythink.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/tayvibin.webp b/files/assets/CHRISTMAS/images/emojis/tayvibin.webp
new file mode 100644
index 000000000..5e512f230
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/tayvibin.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/taywhat.webp b/files/assets/CHRISTMAS/images/emojis/taywhat.webp
new file mode 100644
index 000000000..99b4c04da
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/taywhat.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/taywine.webp b/files/assets/CHRISTMAS/images/emojis/taywine.webp
new file mode 100644
index 000000000..208017fb3
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/taywine.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/taywine2.webp b/files/assets/CHRISTMAS/images/emojis/taywine2.webp
new file mode 100644
index 000000000..aea66a0a5
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/taywine2.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/taywink.webp b/files/assets/CHRISTMAS/images/emojis/taywink.webp
new file mode 100644
index 000000000..153041b8a
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/taywink.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/tayyes.webp b/files/assets/CHRISTMAS/images/emojis/tayyes.webp
new file mode 100644
index 000000000..eb9397569
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/tayyes.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/teehee.webp b/files/assets/CHRISTMAS/images/emojis/teehee.webp
new file mode 100644
index 000000000..810d097d4
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/teehee.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/tfwyougettrolled.webp b/files/assets/CHRISTMAS/images/emojis/tfwyougettrolled.webp
new file mode 100644
index 000000000..99ae4dcf6
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/tfwyougettrolled.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/thinbluefeline.webp b/files/assets/CHRISTMAS/images/emojis/thinbluefeline.webp
new file mode 100644
index 000000000..00546b58e
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/thinbluefeline.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/thinking.webp b/files/assets/CHRISTMAS/images/emojis/thinking.webp
new file mode 100644
index 000000000..925fdfe1b
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/thinking.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/threesome.webp b/files/assets/CHRISTMAS/images/emojis/threesome.webp
new file mode 100644
index 000000000..3bd00313a
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/threesome.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/throw.webp b/files/assets/CHRISTMAS/images/emojis/throw.webp
new file mode 100644
index 000000000..52cf22f05
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/throw.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/throwaway.webp b/files/assets/CHRISTMAS/images/emojis/throwaway.webp
new file mode 100644
index 000000000..cba6ff41a
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/throwaway.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/tickle.webp b/files/assets/CHRISTMAS/images/emojis/tickle.webp
new file mode 100644
index 000000000..cd2cdc738
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/tickle.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/tomboy.webp b/files/assets/CHRISTMAS/images/emojis/tomboy.webp
new file mode 100644
index 000000000..ca943f841
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/tomboy.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/trans.webp b/files/assets/CHRISTMAS/images/emojis/trans.webp
new file mode 100644
index 000000000..02e2cb574
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/trans.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/translord.webp b/files/assets/CHRISTMAS/images/emojis/translord.webp
new file mode 100644
index 000000000..37b05f22b
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/translord.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/transracial.webp b/files/assets/CHRISTMAS/images/emojis/transracial.webp
new file mode 100644
index 000000000..f74c87b2e
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/transracial.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/troll.webp b/files/assets/CHRISTMAS/images/emojis/troll.webp
new file mode 100644
index 000000000..5c21874a3
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/troll.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/trolldespair.webp b/files/assets/CHRISTMAS/images/emojis/trolldespair.webp
new file mode 100644
index 000000000..a7c8dc8c4
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/trolldespair.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/trollolol.webp b/files/assets/CHRISTMAS/images/emojis/trollolol.webp
new file mode 100644
index 000000000..7aeafc64d
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/trollolol.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/truestorybro.webp b/files/assets/CHRISTMAS/images/emojis/truestorybro.webp
new file mode 100644
index 000000000..3606b4cce
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/truestorybro.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/typing.webp b/files/assets/CHRISTMAS/images/emojis/typing.webp
new file mode 100644
index 000000000..5cd34251e
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/typing.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/uhuh.webp b/files/assets/CHRISTMAS/images/emojis/uhuh.webp
new file mode 100644
index 000000000..c29f23a47
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/uhuh.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/usa.webp b/files/assets/CHRISTMAS/images/emojis/usa.webp
new file mode 100644
index 000000000..ca19b3c1d
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/usa.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/vampbat.webp b/files/assets/CHRISTMAS/images/emojis/vampbat.webp
new file mode 100644
index 000000000..8b66f70a5
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/vampbat.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/viking.webp b/files/assets/CHRISTMAS/images/emojis/viking.webp
new file mode 100644
index 000000000..5a6515274
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/viking.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/violin.webp b/files/assets/CHRISTMAS/images/emojis/violin.webp
new file mode 100644
index 000000000..994cc56a4
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/violin.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/vulgar.webp b/files/assets/CHRISTMAS/images/emojis/vulgar.webp
new file mode 100644
index 000000000..836bd920b
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/vulgar.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/wah.webp b/files/assets/CHRISTMAS/images/emojis/wah.webp
new file mode 100644
index 000000000..1e2d1ca29
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/wah.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/wat.webp b/files/assets/CHRISTMAS/images/emojis/wat.webp
new file mode 100644
index 000000000..0b11cd85a
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/wat.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/whip.webp b/files/assets/CHRISTMAS/images/emojis/whip.webp
new file mode 100644
index 000000000..51b25d52a
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/whip.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/whipping.webp b/files/assets/CHRISTMAS/images/emojis/whipping.webp
new file mode 100644
index 000000000..f5255f6e3
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/whipping.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/wholesomeseal.webp b/files/assets/CHRISTMAS/images/emojis/wholesomeseal.webp
new file mode 100644
index 000000000..b9ceb3852
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/wholesomeseal.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/wink.webp b/files/assets/CHRISTMAS/images/emojis/wink.webp
new file mode 100644
index 000000000..7db7efccd
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/wink.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/witch.webp b/files/assets/CHRISTMAS/images/emojis/witch.webp
new file mode 100644
index 000000000..98eb0e091
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/witch.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/wizard.webp b/files/assets/CHRISTMAS/images/emojis/wizard.webp
new file mode 100644
index 000000000..050ed1015
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/wizard.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/woah.webp b/files/assets/CHRISTMAS/images/emojis/woah.webp
new file mode 100644
index 000000000..e1b182f7a
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/woah.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/woo.webp b/files/assets/CHRISTMAS/images/emojis/woo.webp
new file mode 100644
index 000000000..bb7ed5d60
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/woo.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/work.webp b/files/assets/CHRISTMAS/images/emojis/work.webp
new file mode 100644
index 000000000..394bff504
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/work.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/worm.webp b/files/assets/CHRISTMAS/images/emojis/worm.webp
new file mode 100644
index 000000000..2f747201a
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/worm.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/worship.webp b/files/assets/CHRISTMAS/images/emojis/worship.webp
new file mode 100644
index 000000000..5767c208f
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/worship.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/wow.webp b/files/assets/CHRISTMAS/images/emojis/wow.webp
new file mode 100644
index 000000000..cd7d4cea9
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/wow.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/xallthey.webp b/files/assets/CHRISTMAS/images/emojis/xallthey.webp
new file mode 100644
index 000000000..f624cbe49
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/xallthey.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/xd.webp b/files/assets/CHRISTMAS/images/emojis/xd.webp
new file mode 100644
index 000000000..63beeed7c
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/xd.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/yay.webp b/files/assets/CHRISTMAS/images/emojis/yay.webp
new file mode 100644
index 000000000..7924d5da8
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/yay.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/yuno.webp b/files/assets/CHRISTMAS/images/emojis/yuno.webp
new file mode 100644
index 000000000..1ba3f4401
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/yuno.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/zoomer.webp b/files/assets/CHRISTMAS/images/emojis/zoomer.webp
new file mode 100644
index 000000000..fe4de55ef
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/zoomer.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/zoomersoy.webp b/files/assets/CHRISTMAS/images/emojis/zoomersoy.webp
new file mode 100644
index 000000000..d8c98cbdc
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/zoomersoy.webp differ
diff --git a/files/assets/CHRISTMAS/images/emojis/zzz.webp b/files/assets/CHRISTMAS/images/emojis/zzz.webp
new file mode 100644
index 000000000..028f9d5c0
Binary files /dev/null and b/files/assets/CHRISTMAS/images/emojis/zzz.webp differ
diff --git a/files/assets/CHRISTMAS/images/fireflies.webp b/files/assets/CHRISTMAS/images/fireflies.webp
new file mode 100644
index 000000000..3f9ce4381
Binary files /dev/null and b/files/assets/CHRISTMAS/images/fireflies.webp differ
diff --git a/files/assets/CHRISTMAS/images/fly-sprite.webp b/files/assets/CHRISTMAS/images/fly-sprite.webp
new file mode 100644
index 000000000..d7c0b8691
Binary files /dev/null and b/files/assets/CHRISTMAS/images/fly-sprite.webp differ
diff --git a/files/assets/CHRISTMAS/images/grinch.webp b/files/assets/CHRISTMAS/images/grinch.webp
new file mode 100644
index 000000000..05c755061
Binary files /dev/null and b/files/assets/CHRISTMAS/images/grinch.webp differ
diff --git a/files/assets/images/icons/reddit.gif b/files/assets/CHRISTMAS/images/icons/reddit.gif
similarity index 100%
rename from files/assets/images/icons/reddit.gif
rename to files/assets/CHRISTMAS/images/icons/reddit.gif
diff --git a/files/assets/images/icons/reddit.png b/files/assets/CHRISTMAS/images/icons/reddit.png
similarity index 100%
rename from files/assets/images/icons/reddit.png
rename to files/assets/CHRISTMAS/images/icons/reddit.png
diff --git a/files/assets/images/icons/rss.png b/files/assets/CHRISTMAS/images/icons/rss.png
similarity index 100%
rename from files/assets/images/icons/rss.png
rename to files/assets/CHRISTMAS/images/icons/rss.png
diff --git a/files/assets/images/icons/twitter.gif b/files/assets/CHRISTMAS/images/icons/twitter.gif
similarity index 100%
rename from files/assets/images/icons/twitter.gif
rename to files/assets/CHRISTMAS/images/icons/twitter.gif
diff --git a/files/assets/images/icons/twitter.png b/files/assets/CHRISTMAS/images/icons/twitter.png
similarity index 100%
rename from files/assets/images/icons/twitter.png
rename to files/assets/CHRISTMAS/images/icons/twitter.png
diff --git a/files/assets/CHRISTMAS/images/loading.webp b/files/assets/CHRISTMAS/images/loading.webp
new file mode 100644
index 000000000..8d5af1b45
Binary files /dev/null and b/files/assets/CHRISTMAS/images/loading.webp differ
diff --git a/files/assets/images/logos/winter/logo-1.png b/files/assets/CHRISTMAS/images/logos/winter/logo-1.png
similarity index 100%
rename from files/assets/images/logos/winter/logo-1.png
rename to files/assets/CHRISTMAS/images/logos/winter/logo-1.png
diff --git a/files/assets/images/logos/winter/logo-10.png b/files/assets/CHRISTMAS/images/logos/winter/logo-10.png
similarity index 100%
rename from files/assets/images/logos/winter/logo-10.png
rename to files/assets/CHRISTMAS/images/logos/winter/logo-10.png
diff --git a/files/assets/images/logos/winter/logo-11.png b/files/assets/CHRISTMAS/images/logos/winter/logo-11.png
similarity index 100%
rename from files/assets/images/logos/winter/logo-11.png
rename to files/assets/CHRISTMAS/images/logos/winter/logo-11.png
diff --git a/files/assets/images/logos/winter/logo-12.png b/files/assets/CHRISTMAS/images/logos/winter/logo-12.png
similarity index 100%
rename from files/assets/images/logos/winter/logo-12.png
rename to files/assets/CHRISTMAS/images/logos/winter/logo-12.png
diff --git a/files/assets/images/logos/winter/logo-13.png b/files/assets/CHRISTMAS/images/logos/winter/logo-13.png
similarity index 100%
rename from files/assets/images/logos/winter/logo-13.png
rename to files/assets/CHRISTMAS/images/logos/winter/logo-13.png
diff --git a/files/assets/images/logos/winter/logo-2.png b/files/assets/CHRISTMAS/images/logos/winter/logo-2.png
similarity index 100%
rename from files/assets/images/logos/winter/logo-2.png
rename to files/assets/CHRISTMAS/images/logos/winter/logo-2.png
diff --git a/files/assets/images/logos/winter/logo-3.png b/files/assets/CHRISTMAS/images/logos/winter/logo-3.png
similarity index 100%
rename from files/assets/images/logos/winter/logo-3.png
rename to files/assets/CHRISTMAS/images/logos/winter/logo-3.png
diff --git a/files/assets/images/logos/winter/logo-4.png b/files/assets/CHRISTMAS/images/logos/winter/logo-4.png
similarity index 100%
rename from files/assets/images/logos/winter/logo-4.png
rename to files/assets/CHRISTMAS/images/logos/winter/logo-4.png
diff --git a/files/assets/images/logos/winter/logo-5.png b/files/assets/CHRISTMAS/images/logos/winter/logo-5.png
similarity index 100%
rename from files/assets/images/logos/winter/logo-5.png
rename to files/assets/CHRISTMAS/images/logos/winter/logo-5.png
diff --git a/files/assets/images/logos/winter/logo-6.png b/files/assets/CHRISTMAS/images/logos/winter/logo-6.png
similarity index 100%
rename from files/assets/images/logos/winter/logo-6.png
rename to files/assets/CHRISTMAS/images/logos/winter/logo-6.png
diff --git a/files/assets/images/logos/winter/logo-7.png b/files/assets/CHRISTMAS/images/logos/winter/logo-7.png
similarity index 100%
rename from files/assets/images/logos/winter/logo-7.png
rename to files/assets/CHRISTMAS/images/logos/winter/logo-7.png
diff --git a/files/assets/images/logos/winter/logo-8.png b/files/assets/CHRISTMAS/images/logos/winter/logo-8.png
similarity index 100%
rename from files/assets/images/logos/winter/logo-8.png
rename to files/assets/CHRISTMAS/images/logos/winter/logo-8.png
diff --git a/files/assets/images/logos/winter/logo-9.png b/files/assets/CHRISTMAS/images/logos/winter/logo-9.png
similarity index 100%
rename from files/assets/images/logos/winter/logo-9.png
rename to files/assets/CHRISTMAS/images/logos/winter/logo-9.png
diff --git a/files/assets/CHRISTMAS/images/nsfw.webp b/files/assets/CHRISTMAS/images/nsfw.webp
new file mode 100644
index 000000000..94c44c26e
Binary files /dev/null and b/files/assets/CHRISTMAS/images/nsfw.webp differ
diff --git a/files/assets/CHRISTMAS/images/quadrants/AuthCenter.webp b/files/assets/CHRISTMAS/images/quadrants/AuthCenter.webp
new file mode 100644
index 000000000..0696e5572
Binary files /dev/null and b/files/assets/CHRISTMAS/images/quadrants/AuthCenter.webp differ
diff --git a/files/assets/CHRISTMAS/images/quadrants/AuthLeft.webp b/files/assets/CHRISTMAS/images/quadrants/AuthLeft.webp
new file mode 100644
index 000000000..db529e254
Binary files /dev/null and b/files/assets/CHRISTMAS/images/quadrants/AuthLeft.webp differ
diff --git a/files/assets/CHRISTMAS/images/quadrants/AuthRight.webp b/files/assets/CHRISTMAS/images/quadrants/AuthRight.webp
new file mode 100644
index 000000000..7419b5980
Binary files /dev/null and b/files/assets/CHRISTMAS/images/quadrants/AuthRight.webp differ
diff --git a/files/assets/CHRISTMAS/images/quadrants/Centrist.webp b/files/assets/CHRISTMAS/images/quadrants/Centrist.webp
new file mode 100644
index 000000000..f2698b375
Binary files /dev/null and b/files/assets/CHRISTMAS/images/quadrants/Centrist.webp differ
diff --git a/files/assets/CHRISTMAS/images/quadrants/Left.webp b/files/assets/CHRISTMAS/images/quadrants/Left.webp
new file mode 100644
index 000000000..464608167
Binary files /dev/null and b/files/assets/CHRISTMAS/images/quadrants/Left.webp differ
diff --git a/files/assets/CHRISTMAS/images/quadrants/LibCenter.webp b/files/assets/CHRISTMAS/images/quadrants/LibCenter.webp
new file mode 100644
index 000000000..0e78889f7
Binary files /dev/null and b/files/assets/CHRISTMAS/images/quadrants/LibCenter.webp differ
diff --git a/files/assets/CHRISTMAS/images/quadrants/LibLeft.webp b/files/assets/CHRISTMAS/images/quadrants/LibLeft.webp
new file mode 100644
index 000000000..befa0cd39
Binary files /dev/null and b/files/assets/CHRISTMAS/images/quadrants/LibLeft.webp differ
diff --git a/files/assets/CHRISTMAS/images/quadrants/LibRight.webp b/files/assets/CHRISTMAS/images/quadrants/LibRight.webp
new file mode 100644
index 000000000..7c25c5025
Binary files /dev/null and b/files/assets/CHRISTMAS/images/quadrants/LibRight.webp differ
diff --git a/files/assets/CHRISTMAS/images/quadrants/Right.webp b/files/assets/CHRISTMAS/images/quadrants/Right.webp
new file mode 100644
index 000000000..e2a415ec4
Binary files /dev/null and b/files/assets/CHRISTMAS/images/quadrants/Right.webp differ
diff --git a/files/assets/CHRISTMAS/images/ruckus.webp b/files/assets/CHRISTMAS/images/ruckus.webp
new file mode 100644
index 000000000..51113174a
Binary files /dev/null and b/files/assets/CHRISTMAS/images/ruckus.webp differ
diff --git a/files/assets/CHRISTMAS/images/shop.webp b/files/assets/CHRISTMAS/images/shop.webp
new file mode 100644
index 000000000..45688a472
Binary files /dev/null and b/files/assets/CHRISTMAS/images/shop.webp differ
diff --git a/files/assets/CHRISTMAS/images/spider-sprite.webp b/files/assets/CHRISTMAS/images/spider-sprite.webp
new file mode 100644
index 000000000..19e08ee82
Binary files /dev/null and b/files/assets/CHRISTMAS/images/spider-sprite.webp differ
diff --git a/files/assets/CHRISTMAS/images/youtube.webp b/files/assets/CHRISTMAS/images/youtube.webp
new file mode 100644
index 000000000..1094ad0d5
Binary files /dev/null and b/files/assets/CHRISTMAS/images/youtube.webp differ
diff --git a/files/assets/js/agendaposter.js b/files/assets/CHRISTMAS/js/agendaposter.js
similarity index 99%
rename from files/assets/js/agendaposter.js
rename to files/assets/CHRISTMAS/js/agendaposter.js
index 9f6a13d6e..31f8df243 100644
--- a/files/assets/js/agendaposter.js
+++ b/files/assets/CHRISTMAS/js/agendaposter.js
@@ -32,14 +32,14 @@ this.random(50,300)},bug_near_window_edge:function(){this.near_edge=0;this.bug.t
this.bug&&this.bug.style?{top:parseInt(this.bug.top,10),left:parseInt(this.bug.left,10)}:null}},SpawnBug=function(){var a={},b;for(b in Bug)Bug.hasOwnProperty(b)&&(a[b]=Bug[b]);return a},mergeOptions=function(a,b,c){"undefined"==typeof c&&(c=!0);a=c?cloneOf(a):a;for(var d in b)b.hasOwnProperty(d)&&(a[d]=b[d]);return a},cloneOf=function(a){if(null==a||"object"!=typeof a)return a;var b=a.constructor(),c;for(c in a)a.hasOwnProperty(c)&&(b[c]=cloneOf(a[c]));return b};
window.requestAnimFrame=function(){return window.requestAnimationFrame||window.webkitRequestAnimationFrame||window.mozRequestAnimationFrame||window.oRequestAnimationFrame||window.msRequestAnimationFrame||function(a,b){window.setTimeout(a,1E3/60)}}();
new BugController({
- imageSprite: "/assets/images/fly-sprite.gif",
+ imageSprite: "/assets/CHRISTMAS/images/fly-sprite.gif",
canDie: false,
minBugs: 5,
maxBugs: 30,
mouseOver: "fly"
});
new SpiderController({
- imageSprite: "/assets/images/spider-sprite.gif",
+ imageSprite: "/assets/CHRISTMAS/images/spider-sprite.gif",
canDie: false,
minBugs: 2,
maxBugs: 20,
diff --git a/files/assets/CHRISTMAS/js/award_modal.js b/files/assets/CHRISTMAS/js/award_modal.js
new file mode 100644
index 000000000..bdbfd00f3
--- /dev/null
+++ b/files/assets/CHRISTMAS/js/award_modal.js
@@ -0,0 +1,95 @@
+function vote(type, id, dir) {
+ var upvote = document.getElementById(type + '-' + id + '-up');
+ var downvote = document.getElementById(type + '-' + id + '-down');
+ var scoretext = document.getElementById(type + '-score-' + id);
+
+ var score = Number(scoretext.textContent);
+
+ if (dir == "1") {
+ if (upvote.classList.contains('active')) {
+ upvote.classList.remove('active')
+ scoretext.textContent = score - 1
+ votedirection = "0"
+ } else if (downvote.classList.contains('active')) {
+ upvote.classList.add('active')
+ downvote.classList.remove('active')
+ scoretext.textContent = score + 2
+ votedirection = "1"
+ } else {
+ upvote.classList.add('active')
+ scoretext.textContent = score + 1
+ votedirection = "1"
+ }
+
+ if (upvote.classList.contains('active')) {
+ scoretext.classList.add('score-up')
+ scoretext.classList.remove('score-down')
+ scoretext.classList.remove('score')
+ } else if (downvote.classList.contains('active')) {
+ scoretext.classList.add('score-down')
+ scoretext.classList.remove('score-up')
+ scoretext.classList.remove('score')
+ } else {
+ scoretext.classList.add('score')
+ scoretext.classList.remove('score-up')
+ scoretext.classList.remove('score-down')
+ }
+ }
+ else {
+ if (downvote.classList.contains('active')) {
+ downvote.classList.remove('active')
+ scoretext.textContent = score + 1
+ votedirection = "0"
+ } else if (upvote.classList.contains('active')) {
+ downvote.classList.add('active')
+ upvote.classList.remove('active')
+ scoretext.textContent = score - 2
+ votedirection = "-1"
+ } else {
+ downvote.classList.add('active')
+ scoretext.textContent = score - 1
+ votedirection = "-1"
+ }
+
+ if (upvote.classList.contains('active')) {
+ scoretext.classList.add('score-up')
+ scoretext.classList.remove('score-down')
+ scoretext.classList.remove('score')
+ } else if (downvote.classList.contains('active')) {
+ scoretext.classList.add('score-down')
+ scoretext.classList.remove('score-up')
+ scoretext.classList.remove('score')
+ } else {
+ scoretext.classList.add('score')
+ scoretext.classList.remove('score-up')
+ scoretext.classList.remove('score-down')
+ }
+ }
+
+ var xhr = new XMLHttpRequest();
+ xhr.open("POST", "/vote/" + type.replace('-mobile','') + "/" + id + "/" + votedirection, true);
+ var form = new FormData()
+ form.append("formkey", formkey());
+ xhr.withCredentials=true;
+ xhr.send(form);
+}
+
+function awardModal(link) {
+ var target = document.getElementById("awardTarget");
+ target.action = link;
+}
+
+function bruh(kind) {
+ document.getElementById('giveaward').disabled=false;
+ // document.getElementById('kind').value=kind;
+ // try {document.getElementsByClassName('bg-green-400')[0].classList.toggle('bg-green-400');} catch(e) {}
+ // document.getElementById(kind).classList.toggle('bg-green-400')
+ if (kind == "flairlock") {
+ document.getElementById('notelabel').innerHTML = "New flair:";
+ document.getElementById('note').placeholder = "Insert new flair here...";
+ }
+ else {
+ document.getElementById('notelabel').innerHTML = "Note (optional):";
+ document.getElementById('note').placeholder = "Note to include in award notification";
+ }
+}
\ No newline at end of file
diff --git a/files/assets/js/awards.js b/files/assets/CHRISTMAS/js/awards.js
similarity index 100%
rename from files/assets/js/awards.js
rename to files/assets/CHRISTMAS/js/awards.js
diff --git a/files/assets/CHRISTMAS/js/ban_modal.js b/files/assets/CHRISTMAS/js/ban_modal.js
new file mode 100644
index 000000000..c5d22f901
--- /dev/null
+++ b/files/assets/CHRISTMAS/js/ban_modal.js
@@ -0,0 +1,22 @@
+function banModal(link, id, name) {
+ document.getElementById("banModalTitle").innerHTML = `Ban @${name}`;
+ document.getElementById("ban-modal-link").value = link;
+ document.getElementById("banUserButton").innerHTML = `Ban @${name}`;
+
+ document.getElementById("banUserButton").onclick = function() {
+ let fd = new FormData(document.getElementById("banModalForm"));
+ fd.append("formkey", formkey());
+
+ let xhr = new XMLHttpRequest();
+ xhr.open("POST", `/ban_user/${id}?form`, true);
+ xhr.withCredentials = true;
+
+ xhr.onload = function(){
+ var myToast = new bootstrap.Toast(document.getElementById('toast-post-success'));
+ myToast.show();
+ document.getElementById('toast-post-success-text').innerHTML = `@${name} banned`;
+ }
+
+ xhr.send(fd);
+ }
+};
\ No newline at end of file
diff --git a/files/assets/CHRISTMAS/js/bootstrap.js b/files/assets/CHRISTMAS/js/bootstrap.js
new file mode 100644
index 000000000..b045941de
--- /dev/null
+++ b/files/assets/CHRISTMAS/js/bootstrap.js
@@ -0,0 +1 @@
+!function(t,e){"object"==typeof exports&&"undefined"!=typeof module?module.exports=e():"function"==typeof define&&define.amd?define(e):(t="undefined"!=typeof globalThis?globalThis:t||self).bootstrap=e()}(this,(function(){"use strict";const t=t=>{let e=t.getAttribute("data-bs-target");if(!e||"#"===e){let i=t.getAttribute("href");if(!i||!i.includes("#")&&!i.startsWith("."))return null;i.includes("#")&&!i.startsWith("#")&&(i="#"+i.split("#")[1]),e=i&&"#"!==i?i.trim():null}return e},e=e=>{const i=t(e);return i&&document.querySelector(i)?i:null},i=e=>{const i=t(e);return i?document.querySelector(i):null},n=t=>{t.dispatchEvent(new Event("transitionend"))},s=t=>!(!t||"object"!=typeof t)&&(void 0!==t.jquery&&(t=t[0]),void 0!==t.nodeType),o=t=>s(t)?t.jquery?t[0]:t:"string"==typeof t&&t.length>0?document.querySelector(t):null,r=(t,e,i)=>{Object.keys(i).forEach(n=>{const o=i[n],r=e[n],a=r&&s(r)?"element":null==(l=r)?""+l:{}.toString.call(l).match(/\s([a-z]+)/i)[1].toLowerCase();var l;if(!new RegExp(o).test(a))throw new TypeError(`${t.toUpperCase()}: Option "${n}" provided type "${a}" but expected type "${o}".`)})},a=t=>!(!s(t)||0===t.getClientRects().length)&&"visible"===getComputedStyle(t).getPropertyValue("visibility"),l=t=>!t||t.nodeType!==Node.ELEMENT_NODE||!!t.classList.contains("disabled")||(void 0!==t.disabled?t.disabled:t.hasAttribute("disabled")&&"false"!==t.getAttribute("disabled")),c=t=>{if(!document.documentElement.attachShadow)return null;if("function"==typeof t.getRootNode){const e=t.getRootNode();return e instanceof ShadowRoot?e:null}return t instanceof ShadowRoot?t:t.parentNode?c(t.parentNode):null},h=()=>{},d=t=>{t.offsetHeight},u=()=>{const{jQuery:t}=window;return t&&!document.body.hasAttribute("data-bs-no-jquery")?t:null},f=[],p=()=>"rtl"===document.documentElement.dir,m=t=>{var e;e=()=>{const e=u();if(e){const i=t.NAME,n=e.fn[i];e.fn[i]=t.jQueryInterface,e.fn[i].Constructor=t,e.fn[i].noConflict=()=>(e.fn[i]=n,t.jQueryInterface)}},"loading"===document.readyState?(f.length||document.addEventListener("DOMContentLoaded",()=>{f.forEach(t=>t())}),f.push(e)):e()},g=t=>{"function"==typeof t&&t()},_=(t,e,i=!0)=>{if(!i)return void g(t);const s=(t=>{if(!t)return 0;let{transitionDuration:e,transitionDelay:i}=window.getComputedStyle(t);const n=Number.parseFloat(e),s=Number.parseFloat(i);return n||s?(e=e.split(",")[0],i=i.split(",")[0],1e3*(Number.parseFloat(e)+Number.parseFloat(i))):0})(e)+5;let o=!1;const r=({target:i})=>{i===e&&(o=!0,e.removeEventListener("transitionend",r),g(t))};e.addEventListener("transitionend",r),setTimeout(()=>{o||n(e)},s)},b=(t,e,i,n)=>{let s=t.indexOf(e);if(-1===s)return t[!i&&n?t.length-1:0];const o=t.length;return s+=i?1:-1,n&&(s=(s+o)%o),t[Math.max(0,Math.min(s,o-1))]},v=/[^.]*(?=\..*)\.|.*/,y=/\..*/,w=/::\d+$/,E={};let A=1;const T={mouseenter:"mouseover",mouseleave:"mouseout"},O=/^(mouseenter|mouseleave)/i,C=new Set(["click","dblclick","mouseup","mousedown","contextmenu","mousewheel","DOMMouseScroll","mouseover","mouseout","mousemove","selectstart","selectend","keydown","keypress","keyup","orientationchange","touchstart","touchmove","touchend","touchcancel","pointerdown","pointermove","pointerup","pointerleave","pointercancel","gesturestart","gesturechange","gestureend","focus","blur","change","reset","select","submit","focusin","focusout","load","unload","beforeunload","resize","move","DOMContentLoaded","readystatechange","error","abort","scroll"]);function k(t,e){return e&&`${e}::${A++}`||t.uidEvent||A++}function L(t){const e=k(t);return t.uidEvent=e,E[e]=E[e]||{},E[e]}function x(t,e,i=null){const n=Object.keys(t);for(let s=0,o=n.length;sfunction(e){if(!e.relatedTarget||e.relatedTarget!==e.delegateTarget&&!e.delegateTarget.contains(e.relatedTarget))return t.call(this,e)};n?n=t(n):i=t(i)}const[o,r,a]=D(e,i,n),l=L(t),c=l[a]||(l[a]={}),h=x(c,r,o?i:null);if(h)return void(h.oneOff=h.oneOff&&s);const d=k(r,e.replace(v,"")),u=o?function(t,e,i){return function n(s){const o=t.querySelectorAll(e);for(let{target:r}=s;r&&r!==this;r=r.parentNode)for(let a=o.length;a--;)if(o[a]===r)return s.delegateTarget=r,n.oneOff&&P.off(t,s.type,e,i),i.apply(r,[s]);return null}}(t,i,n):function(t,e){return function i(n){return n.delegateTarget=t,i.oneOff&&P.off(t,n.type,e),e.apply(t,[n])}}(t,i);u.delegationSelector=o?i:null,u.originalHandler=r,u.oneOff=s,u.uidEvent=d,c[d]=u,t.addEventListener(a,u,o)}function N(t,e,i,n,s){const o=x(e[i],n,s);o&&(t.removeEventListener(i,o,Boolean(s)),delete e[i][o.uidEvent])}function I(t){return t=t.replace(y,""),T[t]||t}const P={on(t,e,i,n){S(t,e,i,n,!1)},one(t,e,i,n){S(t,e,i,n,!0)},off(t,e,i,n){if("string"!=typeof e||!t)return;const[s,o,r]=D(e,i,n),a=r!==e,l=L(t),c=e.startsWith(".");if(void 0!==o){if(!l||!l[r])return;return void N(t,l,r,o,s?i:null)}c&&Object.keys(l).forEach(i=>{!function(t,e,i,n){const s=e[i]||{};Object.keys(s).forEach(o=>{if(o.includes(n)){const n=s[o];N(t,e,i,n.originalHandler,n.delegationSelector)}})}(t,l,i,e.slice(1))});const h=l[r]||{};Object.keys(h).forEach(i=>{const n=i.replace(w,"");if(!a||e.includes(n)){const e=h[i];N(t,l,r,e.originalHandler,e.delegationSelector)}})},trigger(t,e,i){if("string"!=typeof e||!t)return null;const n=u(),s=I(e),o=e!==s,r=C.has(s);let a,l=!0,c=!0,h=!1,d=null;return o&&n&&(a=n.Event(e,i),n(t).trigger(a),l=!a.isPropagationStopped(),c=!a.isImmediatePropagationStopped(),h=a.isDefaultPrevented()),r?(d=document.createEvent("HTMLEvents"),d.initEvent(s,l,!0)):d=new CustomEvent(e,{bubbles:l,cancelable:!0}),void 0!==i&&Object.keys(i).forEach(t=>{Object.defineProperty(d,t,{get:()=>i[t]})}),h&&d.preventDefault(),c&&t.dispatchEvent(d),d.defaultPrevented&&void 0!==a&&a.preventDefault(),d}},j=new Map;var M={set(t,e,i){j.has(t)||j.set(t,new Map);const n=j.get(t);n.has(e)||0===n.size?n.set(e,i):console.error(`Bootstrap doesn't allow more than one instance per element. Bound instance: ${Array.from(n.keys())[0]}.`)},get:(t,e)=>j.has(t)&&j.get(t).get(e)||null,remove(t,e){if(!j.has(t))return;const i=j.get(t);i.delete(e),0===i.size&&j.delete(t)}};class H{constructor(t){(t=o(t))&&(this._element=t,M.set(this._element,this.constructor.DATA_KEY,this))}dispose(){M.remove(this._element,this.constructor.DATA_KEY),P.off(this._element,this.constructor.EVENT_KEY),Object.getOwnPropertyNames(this).forEach(t=>{this[t]=null})}_queueCallback(t,e,i=!0){_(t,e,i)}static getInstance(t){return M.get(o(t),this.DATA_KEY)}static getOrCreateInstance(t,e={}){return this.getInstance(t)||new this(t,"object"==typeof e?e:null)}static get VERSION(){return"5.1.1"}static get NAME(){throw new Error('You have to implement the static method "NAME", for each component!')}static get DATA_KEY(){return"bs."+this.NAME}static get EVENT_KEY(){return"."+this.DATA_KEY}}const B=(t,e="hide")=>{const n="click.dismiss"+t.EVENT_KEY,s=t.NAME;P.on(document,n,`[data-bs-dismiss="${s}"]`,(function(n){if(["A","AREA"].includes(this.tagName)&&n.preventDefault(),l(this))return;const o=i(this)||this.closest("."+s);t.getOrCreateInstance(o)[e]()}))};class R extends H{static get NAME(){return"alert"}close(){if(P.trigger(this._element,"close.bs.alert").defaultPrevented)return;this._element.classList.remove("show");const t=this._element.classList.contains("fade");this._queueCallback(()=>this._destroyElement(),this._element,t)}_destroyElement(){this._element.remove(),P.trigger(this._element,"closed.bs.alert"),this.dispose()}static jQueryInterface(t){return this.each((function(){const e=R.getOrCreateInstance(this);if("string"==typeof t){if(void 0===e[t]||t.startsWith("_")||"constructor"===t)throw new TypeError(`No method named "${t}"`);e[t](this)}}))}}B(R,"close"),m(R);class W extends H{static get NAME(){return"button"}toggle(){this._element.setAttribute("aria-pressed",this._element.classList.toggle("active"))}static jQueryInterface(t){return this.each((function(){const e=W.getOrCreateInstance(this);"toggle"===t&&e[t]()}))}}function z(t){return"true"===t||"false"!==t&&(t===Number(t).toString()?Number(t):""===t||"null"===t?null:t)}function q(t){return t.replace(/[A-Z]/g,t=>"-"+t.toLowerCase())}P.on(document,"click.bs.button.data-api",'[data-bs-toggle="button"]',t=>{t.preventDefault();const e=t.target.closest('[data-bs-toggle="button"]');W.getOrCreateInstance(e).toggle()}),m(W);const F={setDataAttribute(t,e,i){t.setAttribute("data-bs-"+q(e),i)},removeDataAttribute(t,e){t.removeAttribute("data-bs-"+q(e))},getDataAttributes(t){if(!t)return{};const e={};return Object.keys(t.dataset).filter(t=>t.startsWith("bs")).forEach(i=>{let n=i.replace(/^bs/,"");n=n.charAt(0).toLowerCase()+n.slice(1,n.length),e[n]=z(t.dataset[i])}),e},getDataAttribute:(t,e)=>z(t.getAttribute("data-bs-"+q(e))),offset(t){const e=t.getBoundingClientRect();return{top:e.top+window.pageYOffset,left:e.left+window.pageXOffset}},position:t=>({top:t.offsetTop,left:t.offsetLeft})},U={find:(t,e=document.documentElement)=>[].concat(...Element.prototype.querySelectorAll.call(e,t)),findOne:(t,e=document.documentElement)=>Element.prototype.querySelector.call(e,t),children:(t,e)=>[].concat(...t.children).filter(t=>t.matches(e)),parents(t,e){const i=[];let n=t.parentNode;for(;n&&n.nodeType===Node.ELEMENT_NODE&&3!==n.nodeType;)n.matches(e)&&i.push(n),n=n.parentNode;return i},prev(t,e){let i=t.previousElementSibling;for(;i;){if(i.matches(e))return[i];i=i.previousElementSibling}return[]},next(t,e){let i=t.nextElementSibling;for(;i;){if(i.matches(e))return[i];i=i.nextElementSibling}return[]},focusableChildren(t){const e=["a","button","input","textarea","select","details","[tabindex]",'[contenteditable="true"]'].map(t=>t+':not([tabindex^="-"])').join(", ");return this.find(e,t).filter(t=>!l(t)&&a(t))}},$={interval:5e3,keyboard:!0,slide:!1,pause:"hover",wrap:!0,touch:!0},V={interval:"(number|boolean)",keyboard:"boolean",slide:"(boolean|string)",pause:"(string|boolean)",wrap:"boolean",touch:"boolean"},K="next",X="prev",Y="left",Q="right",G={ArrowLeft:Q,ArrowRight:Y};class Z extends H{constructor(t,e){super(t),this._items=null,this._interval=null,this._activeElement=null,this._isPaused=!1,this._isSliding=!1,this.touchTimeout=null,this.touchStartX=0,this.touchDeltaX=0,this._config=this._getConfig(e),this._indicatorsElement=U.findOne(".carousel-indicators",this._element),this._touchSupported="ontouchstart"in document.documentElement||navigator.maxTouchPoints>0,this._pointerEvent=Boolean(window.PointerEvent),this._addEventListeners()}static get Default(){return $}static get NAME(){return"carousel"}next(){this._slide(K)}nextWhenVisible(){!document.hidden&&a(this._element)&&this.next()}prev(){this._slide(X)}pause(t){t||(this._isPaused=!0),U.findOne(".carousel-item-next, .carousel-item-prev",this._element)&&(n(this._element),this.cycle(!0)),clearInterval(this._interval),this._interval=null}cycle(t){t||(this._isPaused=!1),this._interval&&(clearInterval(this._interval),this._interval=null),this._config&&this._config.interval&&!this._isPaused&&(this._updateInterval(),this._interval=setInterval((document.visibilityState?this.nextWhenVisible:this.next).bind(this),this._config.interval))}to(t){this._activeElement=U.findOne(".active.carousel-item",this._element);const e=this._getItemIndex(this._activeElement);if(t>this._items.length-1||t<0)return;if(this._isSliding)return void P.one(this._element,"slid.bs.carousel",()=>this.to(t));if(e===t)return this.pause(),void this.cycle();const i=t>e?K:X;this._slide(i,this._items[t])}_getConfig(t){return t={...$,...F.getDataAttributes(this._element),..."object"==typeof t?t:{}},r("carousel",t,V),t}_handleSwipe(){const t=Math.abs(this.touchDeltaX);if(t<=40)return;const e=t/this.touchDeltaX;this.touchDeltaX=0,e&&this._slide(e>0?Q:Y)}_addEventListeners(){this._config.keyboard&&P.on(this._element,"keydown.bs.carousel",t=>this._keydown(t)),"hover"===this._config.pause&&(P.on(this._element,"mouseenter.bs.carousel",t=>this.pause(t)),P.on(this._element,"mouseleave.bs.carousel",t=>this.cycle(t))),this._config.touch&&this._touchSupported&&this._addTouchEventListeners()}_addTouchEventListeners(){const t=t=>this._pointerEvent&&("pen"===t.pointerType||"touch"===t.pointerType),e=e=>{t(e)?this.touchStartX=e.clientX:this._pointerEvent||(this.touchStartX=e.touches[0].clientX)},i=t=>{this.touchDeltaX=t.touches&&t.touches.length>1?0:t.touches[0].clientX-this.touchStartX},n=e=>{t(e)&&(this.touchDeltaX=e.clientX-this.touchStartX),this._handleSwipe(),"hover"===this._config.pause&&(this.pause(),this.touchTimeout&&clearTimeout(this.touchTimeout),this.touchTimeout=setTimeout(t=>this.cycle(t),500+this._config.interval))};U.find(".carousel-item img",this._element).forEach(t=>{P.on(t,"dragstart.bs.carousel",t=>t.preventDefault())}),this._pointerEvent?(P.on(this._element,"pointerdown.bs.carousel",t=>e(t)),P.on(this._element,"pointerup.bs.carousel",t=>n(t)),this._element.classList.add("pointer-event")):(P.on(this._element,"touchstart.bs.carousel",t=>e(t)),P.on(this._element,"touchmove.bs.carousel",t=>i(t)),P.on(this._element,"touchend.bs.carousel",t=>n(t)))}_keydown(t){if(/input|textarea/i.test(t.target.tagName))return;const e=G[t.key];e&&(t.preventDefault(),this._slide(e))}_getItemIndex(t){return this._items=t&&t.parentNode?U.find(".carousel-item",t.parentNode):[],this._items.indexOf(t)}_getItemByOrder(t,e){const i=t===K;return b(this._items,e,i,this._config.wrap)}_triggerSlideEvent(t,e){const i=this._getItemIndex(t),n=this._getItemIndex(U.findOne(".active.carousel-item",this._element));return P.trigger(this._element,"slide.bs.carousel",{relatedTarget:t,direction:e,from:n,to:i})}_setActiveIndicatorElement(t){if(this._indicatorsElement){const e=U.findOne(".active",this._indicatorsElement);e.classList.remove("active"),e.removeAttribute("aria-current");const i=U.find("[data-bs-target]",this._indicatorsElement);for(let e=0;e{P.trigger(this._element,"slid.bs.carousel",{relatedTarget:o,direction:u,from:s,to:r})};if(this._element.classList.contains("slide")){o.classList.add(h),d(o),n.classList.add(c),o.classList.add(c);const t=()=>{o.classList.remove(c,h),o.classList.add("active"),n.classList.remove("active",h,c),this._isSliding=!1,setTimeout(f,0)};this._queueCallback(t,n,!0)}else n.classList.remove("active"),o.classList.add("active"),this._isSliding=!1,f();a&&this.cycle()}_directionToOrder(t){return[Q,Y].includes(t)?p()?t===Y?X:K:t===Y?K:X:t}_orderToDirection(t){return[K,X].includes(t)?p()?t===X?Y:Q:t===X?Q:Y:t}static carouselInterface(t,e){const i=Z.getOrCreateInstance(t,e);let{_config:n}=i;"object"==typeof e&&(n={...n,...e});const s="string"==typeof e?e:n.slide;if("number"==typeof e)i.to(e);else if("string"==typeof s){if(void 0===i[s])throw new TypeError(`No method named "${s}"`);i[s]()}else n.interval&&n.ride&&(i.pause(),i.cycle())}static jQueryInterface(t){return this.each((function(){Z.carouselInterface(this,t)}))}static dataApiClickHandler(t){const e=i(this);if(!e||!e.classList.contains("carousel"))return;const n={...F.getDataAttributes(e),...F.getDataAttributes(this)},s=this.getAttribute("data-bs-slide-to");s&&(n.interval=!1),Z.carouselInterface(e,n),s&&Z.getInstance(e).to(s),t.preventDefault()}}P.on(document,"click.bs.carousel.data-api","[data-bs-slide], [data-bs-slide-to]",Z.dataApiClickHandler),P.on(window,"load.bs.carousel.data-api",()=>{const t=U.find('[data-bs-ride="carousel"]');for(let e=0,i=t.length;et===this._element);null!==s&&o.length&&(this._selector=s,this._triggerArray.push(i))}this._initializeChildren(),this._config.parent||this._addAriaAndCollapsedClass(this._triggerArray,this._isShown()),this._config.toggle&&this.toggle()}static get Default(){return J}static get NAME(){return"collapse"}toggle(){this._isShown()?this.hide():this.show()}show(){if(this._isTransitioning||this._isShown())return;let t,e=[];if(this._config.parent){const t=U.find(".collapse .collapse",this._config.parent);e=U.find(".collapse.show, .collapse.collapsing",this._config.parent).filter(e=>!t.includes(e))}const i=U.findOne(this._selector);if(e.length){const n=e.find(t=>i!==t);if(t=n?et.getInstance(n):null,t&&t._isTransitioning)return}if(P.trigger(this._element,"show.bs.collapse").defaultPrevented)return;e.forEach(e=>{i!==e&&et.getOrCreateInstance(e,{toggle:!1}).hide(),t||M.set(e,"bs.collapse",null)});const n=this._getDimension();this._element.classList.remove("collapse"),this._element.classList.add("collapsing"),this._element.style[n]=0,this._addAriaAndCollapsedClass(this._triggerArray,!0),this._isTransitioning=!0;const s="scroll"+(n[0].toUpperCase()+n.slice(1));this._queueCallback(()=>{this._isTransitioning=!1,this._element.classList.remove("collapsing"),this._element.classList.add("collapse","show"),this._element.style[n]="",P.trigger(this._element,"shown.bs.collapse")},this._element,!0),this._element.style[n]=this._element[s]+"px"}hide(){if(this._isTransitioning||!this._isShown())return;if(P.trigger(this._element,"hide.bs.collapse").defaultPrevented)return;const t=this._getDimension();this._element.style[t]=this._element.getBoundingClientRect()[t]+"px",d(this._element),this._element.classList.add("collapsing"),this._element.classList.remove("collapse","show");const e=this._triggerArray.length;for(let t=0;t{this._isTransitioning=!1,this._element.classList.remove("collapsing"),this._element.classList.add("collapse"),P.trigger(this._element,"hidden.bs.collapse")},this._element,!0)}_isShown(t=this._element){return t.classList.contains("show")}_getConfig(t){return(t={...J,...F.getDataAttributes(this._element),...t}).toggle=Boolean(t.toggle),t.parent=o(t.parent),r("collapse",t,tt),t}_getDimension(){return this._element.classList.contains("collapse-horizontal")?"width":"height"}_initializeChildren(){if(!this._config.parent)return;const t=U.find(".collapse .collapse",this._config.parent);U.find('[data-bs-toggle="collapse"]',this._config.parent).filter(e=>!t.includes(e)).forEach(t=>{const e=i(t);e&&this._addAriaAndCollapsedClass([t],this._isShown(e))})}_addAriaAndCollapsedClass(t,e){t.length&&t.forEach(t=>{e?t.classList.remove("collapsed"):t.classList.add("collapsed"),t.setAttribute("aria-expanded",e)})}static jQueryInterface(t){return this.each((function(){const e={};"string"==typeof t&&/show|hide/.test(t)&&(e.toggle=!1);const i=et.getOrCreateInstance(this,e);if("string"==typeof t){if(void 0===i[t])throw new TypeError(`No method named "${t}"`);i[t]()}}))}}P.on(document,"click.bs.collapse.data-api",'[data-bs-toggle="collapse"]',(function(t){("A"===t.target.tagName||t.delegateTarget&&"A"===t.delegateTarget.tagName)&&t.preventDefault();const i=e(this);U.find(i).forEach(t=>{et.getOrCreateInstance(t,{toggle:!1}).toggle()})})),m(et);var it="top",nt="bottom",st="right",ot="left",rt=[it,nt,st,ot],at="end",lt=rt.reduce((function(t,e){return t.concat([e+"-start",e+"-"+at])}),[]),ct=[].concat(rt,["auto"]).reduce((function(t,e){return t.concat([e,e+"-start",e+"-"+at])}),[]),ht=["beforeRead","read","afterRead","beforeMain","main","afterMain","beforeWrite","write","afterWrite"];function dt(t){return t?(t.nodeName||"").toLowerCase():null}function ut(t){if(null==t)return window;if("[object Window]"!==t.toString()){var e=t.ownerDocument;return e&&e.defaultView||window}return t}function ft(t){return t instanceof ut(t).Element||t instanceof Element}function pt(t){return t instanceof ut(t).HTMLElement||t instanceof HTMLElement}function mt(t){return"undefined"!=typeof ShadowRoot&&(t instanceof ut(t).ShadowRoot||t instanceof ShadowRoot)}var gt={name:"applyStyles",enabled:!0,phase:"write",fn:function(t){var e=t.state;Object.keys(e.elements).forEach((function(t){var i=e.styles[t]||{},n=e.attributes[t]||{},s=e.elements[t];pt(s)&&dt(s)&&(Object.assign(s.style,i),Object.keys(n).forEach((function(t){var e=n[t];!1===e?s.removeAttribute(t):s.setAttribute(t,!0===e?"":e)})))}))},effect:function(t){var e=t.state,i={popper:{position:e.options.strategy,left:"0",top:"0",margin:"0"},arrow:{position:"absolute"},reference:{}};return Object.assign(e.elements.popper.style,i.popper),e.styles=i,e.elements.arrow&&Object.assign(e.elements.arrow.style,i.arrow),function(){Object.keys(e.elements).forEach((function(t){var n=e.elements[t],s=e.attributes[t]||{},o=Object.keys(e.styles.hasOwnProperty(t)?e.styles[t]:i[t]).reduce((function(t,e){return t[e]="",t}),{});pt(n)&&dt(n)&&(Object.assign(n.style,o),Object.keys(s).forEach((function(t){n.removeAttribute(t)})))}))}},requires:["computeStyles"]};function _t(t){return t.split("-")[0]}var bt=Math.round;function vt(t,e){void 0===e&&(e=!1);var i=t.getBoundingClientRect(),n=1,s=1;if(pt(t)&&e){var o=t.offsetHeight,r=t.offsetWidth;r>0&&(n=i.width/r||1),o>0&&(s=i.height/o||1)}return{width:bt(i.width/n),height:bt(i.height/s),top:bt(i.top/s),right:bt(i.right/n),bottom:bt(i.bottom/s),left:bt(i.left/n),x:bt(i.left/n),y:bt(i.top/s)}}function yt(t){var e=vt(t),i=t.offsetWidth,n=t.offsetHeight;return Math.abs(e.width-i)<=1&&(i=e.width),Math.abs(e.height-n)<=1&&(n=e.height),{x:t.offsetLeft,y:t.offsetTop,width:i,height:n}}function wt(t,e){var i=e.getRootNode&&e.getRootNode();if(t.contains(e))return!0;if(i&&mt(i)){var n=e;do{if(n&&t.isSameNode(n))return!0;n=n.parentNode||n.host}while(n)}return!1}function Et(t){return ut(t).getComputedStyle(t)}function At(t){return["table","td","th"].indexOf(dt(t))>=0}function Tt(t){return((ft(t)?t.ownerDocument:t.document)||window.document).documentElement}function Ot(t){return"html"===dt(t)?t:t.assignedSlot||t.parentNode||(mt(t)?t.host:null)||Tt(t)}function Ct(t){return pt(t)&&"fixed"!==Et(t).position?t.offsetParent:null}function kt(t){for(var e=ut(t),i=Ct(t);i&&At(i)&&"static"===Et(i).position;)i=Ct(i);return i&&("html"===dt(i)||"body"===dt(i)&&"static"===Et(i).position)?e:i||function(t){var e=-1!==navigator.userAgent.toLowerCase().indexOf("firefox");if(-1!==navigator.userAgent.indexOf("Trident")&&pt(t)&&"fixed"===Et(t).position)return null;for(var i=Ot(t);pt(i)&&["html","body"].indexOf(dt(i))<0;){var n=Et(i);if("none"!==n.transform||"none"!==n.perspective||"paint"===n.contain||-1!==["transform","perspective"].indexOf(n.willChange)||e&&"filter"===n.willChange||e&&n.filter&&"none"!==n.filter)return i;i=i.parentNode}return null}(t)||e}function Lt(t){return["top","bottom"].indexOf(t)>=0?"x":"y"}var xt=Math.max,Dt=Math.min,St=Math.round;function Nt(t,e,i){return xt(t,Dt(e,i))}function It(t){return Object.assign({},{top:0,right:0,bottom:0,left:0},t)}function Pt(t,e){return e.reduce((function(e,i){return e[i]=t,e}),{})}var jt={name:"arrow",enabled:!0,phase:"main",fn:function(t){var e,i=t.state,n=t.name,s=t.options,o=i.elements.arrow,r=i.modifiersData.popperOffsets,a=_t(i.placement),l=Lt(a),c=[ot,st].indexOf(a)>=0?"height":"width";if(o&&r){var h=function(t,e){return It("number"!=typeof(t="function"==typeof t?t(Object.assign({},e.rects,{placement:e.placement})):t)?t:Pt(t,rt))}(s.padding,i),d=yt(o),u="y"===l?it:ot,f="y"===l?nt:st,p=i.rects.reference[c]+i.rects.reference[l]-r[l]-i.rects.popper[c],m=r[l]-i.rects.reference[l],g=kt(o),_=g?"y"===l?g.clientHeight||0:g.clientWidth||0:0,b=p/2-m/2,v=h[u],y=_-d[c]-h[f],w=_/2-d[c]/2+b,E=Nt(v,w,y),A=l;i.modifiersData[n]=((e={})[A]=E,e.centerOffset=E-w,e)}},effect:function(t){var e=t.state,i=t.options.element,n=void 0===i?"[data-popper-arrow]":i;null!=n&&("string"!=typeof n||(n=e.elements.popper.querySelector(n)))&&wt(e.elements.popper,n)&&(e.elements.arrow=n)},requires:["popperOffsets"],requiresIfExists:["preventOverflow"]};function Mt(t){return t.split("-")[1]}var Ht={top:"auto",right:"auto",bottom:"auto",left:"auto"};function Bt(t){var e,i=t.popper,n=t.popperRect,s=t.placement,o=t.variation,r=t.offsets,a=t.position,l=t.gpuAcceleration,c=t.adaptive,h=t.roundOffsets,d=!0===h?function(t){var e=t.x,i=t.y,n=window.devicePixelRatio||1;return{x:St(St(e*n)/n)||0,y:St(St(i*n)/n)||0}}(r):"function"==typeof h?h(r):r,u=d.x,f=void 0===u?0:u,p=d.y,m=void 0===p?0:p,g=r.hasOwnProperty("x"),_=r.hasOwnProperty("y"),b=ot,v=it,y=window;if(c){var w=kt(i),E="clientHeight",A="clientWidth";w===ut(i)&&"static"!==Et(w=Tt(i)).position&&"absolute"===a&&(E="scrollHeight",A="scrollWidth"),w=w,s!==it&&(s!==ot&&s!==st||o!==at)||(v=nt,m-=w[E]-n.height,m*=l?1:-1),s!==ot&&(s!==it&&s!==nt||o!==at)||(b=st,f-=w[A]-n.width,f*=l?1:-1)}var T,O=Object.assign({position:a},c&&Ht);return l?Object.assign({},O,((T={})[v]=_?"0":"",T[b]=g?"0":"",T.transform=(y.devicePixelRatio||1)<=1?"translate("+f+"px, "+m+"px)":"translate3d("+f+"px, "+m+"px, 0)",T)):Object.assign({},O,((e={})[v]=_?m+"px":"",e[b]=g?f+"px":"",e.transform="",e))}var Rt={name:"computeStyles",enabled:!0,phase:"beforeWrite",fn:function(t){var e=t.state,i=t.options,n=i.gpuAcceleration,s=void 0===n||n,o=i.adaptive,r=void 0===o||o,a=i.roundOffsets,l=void 0===a||a,c={placement:_t(e.placement),variation:Mt(e.placement),popper:e.elements.popper,popperRect:e.rects.popper,gpuAcceleration:s};null!=e.modifiersData.popperOffsets&&(e.styles.popper=Object.assign({},e.styles.popper,Bt(Object.assign({},c,{offsets:e.modifiersData.popperOffsets,position:e.options.strategy,adaptive:r,roundOffsets:l})))),null!=e.modifiersData.arrow&&(e.styles.arrow=Object.assign({},e.styles.arrow,Bt(Object.assign({},c,{offsets:e.modifiersData.arrow,position:"absolute",adaptive:!1,roundOffsets:l})))),e.attributes.popper=Object.assign({},e.attributes.popper,{"data-popper-placement":e.placement})},data:{}},Wt={passive:!0},zt={name:"eventListeners",enabled:!0,phase:"write",fn:function(){},effect:function(t){var e=t.state,i=t.instance,n=t.options,s=n.scroll,o=void 0===s||s,r=n.resize,a=void 0===r||r,l=ut(e.elements.popper),c=[].concat(e.scrollParents.reference,e.scrollParents.popper);return o&&c.forEach((function(t){t.addEventListener("scroll",i.update,Wt)})),a&&l.addEventListener("resize",i.update,Wt),function(){o&&c.forEach((function(t){t.removeEventListener("scroll",i.update,Wt)})),a&&l.removeEventListener("resize",i.update,Wt)}},data:{}},qt={left:"right",right:"left",bottom:"top",top:"bottom"};function Ft(t){return t.replace(/left|right|bottom|top/g,(function(t){return qt[t]}))}var Ut={start:"end",end:"start"};function $t(t){return t.replace(/start|end/g,(function(t){return Ut[t]}))}function Vt(t){var e=ut(t);return{scrollLeft:e.pageXOffset,scrollTop:e.pageYOffset}}function Kt(t){return vt(Tt(t)).left+Vt(t).scrollLeft}function Xt(t){var e=Et(t),i=e.overflow,n=e.overflowX,s=e.overflowY;return/auto|scroll|overlay|hidden/.test(i+s+n)}function Yt(t,e){var i;void 0===e&&(e=[]);var n=function t(e){return["html","body","#document"].indexOf(dt(e))>=0?e.ownerDocument.body:pt(e)&&Xt(e)?e:t(Ot(e))}(t),s=n===(null==(i=t.ownerDocument)?void 0:i.body),o=ut(n),r=s?[o].concat(o.visualViewport||[],Xt(n)?n:[]):n,a=e.concat(r);return s?a:a.concat(Yt(Ot(r)))}function Qt(t){return Object.assign({},t,{left:t.x,top:t.y,right:t.x+t.width,bottom:t.y+t.height})}function Gt(t,e){return"viewport"===e?Qt(function(t){var e=ut(t),i=Tt(t),n=e.visualViewport,s=i.clientWidth,o=i.clientHeight,r=0,a=0;return n&&(s=n.width,o=n.height,/^((?!chrome|android).)*safari/i.test(navigator.userAgent)||(r=n.offsetLeft,a=n.offsetTop)),{width:s,height:o,x:r+Kt(t),y:a}}(t)):pt(e)?function(t){var e=vt(t);return e.top=e.top+t.clientTop,e.left=e.left+t.clientLeft,e.bottom=e.top+t.clientHeight,e.right=e.left+t.clientWidth,e.width=t.clientWidth,e.height=t.clientHeight,e.x=e.left,e.y=e.top,e}(e):Qt(function(t){var e,i=Tt(t),n=Vt(t),s=null==(e=t.ownerDocument)?void 0:e.body,o=xt(i.scrollWidth,i.clientWidth,s?s.scrollWidth:0,s?s.clientWidth:0),r=xt(i.scrollHeight,i.clientHeight,s?s.scrollHeight:0,s?s.clientHeight:0),a=-n.scrollLeft+Kt(t),l=-n.scrollTop;return"rtl"===Et(s||i).direction&&(a+=xt(i.clientWidth,s?s.clientWidth:0)-o),{width:o,height:r,x:a,y:l}}(Tt(t)))}function Zt(t){var e,i=t.reference,n=t.element,s=t.placement,o=s?_t(s):null,r=s?Mt(s):null,a=i.x+i.width/2-n.width/2,l=i.y+i.height/2-n.height/2;switch(o){case it:e={x:a,y:i.y-n.height};break;case nt:e={x:a,y:i.y+i.height};break;case st:e={x:i.x+i.width,y:l};break;case ot:e={x:i.x-n.width,y:l};break;default:e={x:i.x,y:i.y}}var c=o?Lt(o):null;if(null!=c){var h="y"===c?"height":"width";switch(r){case"start":e[c]=e[c]-(i[h]/2-n[h]/2);break;case at:e[c]=e[c]+(i[h]/2-n[h]/2)}}return e}function Jt(t,e){void 0===e&&(e={});var i=e,n=i.placement,s=void 0===n?t.placement:n,o=i.boundary,r=void 0===o?"clippingParents":o,a=i.rootBoundary,l=void 0===a?"viewport":a,c=i.elementContext,h=void 0===c?"popper":c,d=i.altBoundary,u=void 0!==d&&d,f=i.padding,p=void 0===f?0:f,m=It("number"!=typeof p?p:Pt(p,rt)),g="popper"===h?"reference":"popper",_=t.rects.popper,b=t.elements[u?g:h],v=function(t,e,i){var n="clippingParents"===e?function(t){var e=Yt(Ot(t)),i=["absolute","fixed"].indexOf(Et(t).position)>=0&&pt(t)?kt(t):t;return ft(i)?e.filter((function(t){return ft(t)&&wt(t,i)&&"body"!==dt(t)})):[]}(t):[].concat(e),s=[].concat(n,[i]),o=s[0],r=s.reduce((function(e,i){var n=Gt(t,i);return e.top=xt(n.top,e.top),e.right=Dt(n.right,e.right),e.bottom=Dt(n.bottom,e.bottom),e.left=xt(n.left,e.left),e}),Gt(t,o));return r.width=r.right-r.left,r.height=r.bottom-r.top,r.x=r.left,r.y=r.top,r}(ft(b)?b:b.contextElement||Tt(t.elements.popper),r,l),y=vt(t.elements.reference),w=Zt({reference:y,element:_,strategy:"absolute",placement:s}),E=Qt(Object.assign({},_,w)),A="popper"===h?E:y,T={top:v.top-A.top+m.top,bottom:A.bottom-v.bottom+m.bottom,left:v.left-A.left+m.left,right:A.right-v.right+m.right},O=t.modifiersData.offset;if("popper"===h&&O){var C=O[s];Object.keys(T).forEach((function(t){var e=[st,nt].indexOf(t)>=0?1:-1,i=[it,nt].indexOf(t)>=0?"y":"x";T[t]+=C[i]*e}))}return T}function te(t,e){void 0===e&&(e={});var i=e,n=i.placement,s=i.boundary,o=i.rootBoundary,r=i.padding,a=i.flipVariations,l=i.allowedAutoPlacements,c=void 0===l?ct:l,h=Mt(n),d=h?a?lt:lt.filter((function(t){return Mt(t)===h})):rt,u=d.filter((function(t){return c.indexOf(t)>=0}));0===u.length&&(u=d);var f=u.reduce((function(e,i){return e[i]=Jt(t,{placement:i,boundary:s,rootBoundary:o,padding:r})[_t(i)],e}),{});return Object.keys(f).sort((function(t,e){return f[t]-f[e]}))}var ee={name:"flip",enabled:!0,phase:"main",fn:function(t){var e=t.state,i=t.options,n=t.name;if(!e.modifiersData[n]._skip){for(var s=i.mainAxis,o=void 0===s||s,r=i.altAxis,a=void 0===r||r,l=i.fallbackPlacements,c=i.padding,h=i.boundary,d=i.rootBoundary,u=i.altBoundary,f=i.flipVariations,p=void 0===f||f,m=i.allowedAutoPlacements,g=e.options.placement,_=_t(g),b=l||(_!==g&&p?function(t){if("auto"===_t(t))return[];var e=Ft(t);return[$t(t),e,$t(e)]}(g):[Ft(g)]),v=[g].concat(b).reduce((function(t,i){return t.concat("auto"===_t(i)?te(e,{placement:i,boundary:h,rootBoundary:d,padding:c,flipVariations:p,allowedAutoPlacements:m}):i)}),[]),y=e.rects.reference,w=e.rects.popper,E=new Map,A=!0,T=v[0],O=0;O=0,D=x?"width":"height",S=Jt(e,{placement:C,boundary:h,rootBoundary:d,altBoundary:u,padding:c}),N=x?L?st:ot:L?nt:it;y[D]>w[D]&&(N=Ft(N));var I=Ft(N),P=[];if(o&&P.push(S[k]<=0),a&&P.push(S[N]<=0,S[I]<=0),P.every((function(t){return t}))){T=C,A=!1;break}E.set(C,P)}if(A)for(var j=function(t){var e=v.find((function(e){var i=E.get(e);if(i)return i.slice(0,t).every((function(t){return t}))}));if(e)return T=e,"break"},M=p?3:1;M>0&&"break"!==j(M);M--);e.placement!==T&&(e.modifiersData[n]._skip=!0,e.placement=T,e.reset=!0)}},requiresIfExists:["offset"],data:{_skip:!1}};function ie(t,e,i){return void 0===i&&(i={x:0,y:0}),{top:t.top-e.height-i.y,right:t.right-e.width+i.x,bottom:t.bottom-e.height+i.y,left:t.left-e.width-i.x}}function ne(t){return[it,st,nt,ot].some((function(e){return t[e]>=0}))}var se={name:"hide",enabled:!0,phase:"main",requiresIfExists:["preventOverflow"],fn:function(t){var e=t.state,i=t.name,n=e.rects.reference,s=e.rects.popper,o=e.modifiersData.preventOverflow,r=Jt(e,{elementContext:"reference"}),a=Jt(e,{altBoundary:!0}),l=ie(r,n),c=ie(a,s,o),h=ne(l),d=ne(c);e.modifiersData[i]={referenceClippingOffsets:l,popperEscapeOffsets:c,isReferenceHidden:h,hasPopperEscaped:d},e.attributes.popper=Object.assign({},e.attributes.popper,{"data-popper-reference-hidden":h,"data-popper-escaped":d})}},oe={name:"offset",enabled:!0,phase:"main",requires:["popperOffsets"],fn:function(t){var e=t.state,i=t.options,n=t.name,s=i.offset,o=void 0===s?[0,0]:s,r=ct.reduce((function(t,i){return t[i]=function(t,e,i){var n=_t(t),s=[ot,it].indexOf(n)>=0?-1:1,o="function"==typeof i?i(Object.assign({},e,{placement:t})):i,r=o[0],a=o[1];return r=r||0,a=(a||0)*s,[ot,st].indexOf(n)>=0?{x:a,y:r}:{x:r,y:a}}(i,e.rects,o),t}),{}),a=r[e.placement],l=a.x,c=a.y;null!=e.modifiersData.popperOffsets&&(e.modifiersData.popperOffsets.x+=l,e.modifiersData.popperOffsets.y+=c),e.modifiersData[n]=r}},re={name:"popperOffsets",enabled:!0,phase:"read",fn:function(t){var e=t.state,i=t.name;e.modifiersData[i]=Zt({reference:e.rects.reference,element:e.rects.popper,strategy:"absolute",placement:e.placement})},data:{}},ae={name:"preventOverflow",enabled:!0,phase:"main",fn:function(t){var e=t.state,i=t.options,n=t.name,s=i.mainAxis,o=void 0===s||s,r=i.altAxis,a=void 0!==r&&r,l=i.boundary,c=i.rootBoundary,h=i.altBoundary,d=i.padding,u=i.tether,f=void 0===u||u,p=i.tetherOffset,m=void 0===p?0:p,g=Jt(e,{boundary:l,rootBoundary:c,padding:d,altBoundary:h}),_=_t(e.placement),b=Mt(e.placement),v=!b,y=Lt(_),w="x"===y?"y":"x",E=e.modifiersData.popperOffsets,A=e.rects.reference,T=e.rects.popper,O="function"==typeof m?m(Object.assign({},e.rects,{placement:e.placement})):m,C={x:0,y:0};if(E){if(o||a){var k="y"===y?it:ot,L="y"===y?nt:st,x="y"===y?"height":"width",D=E[y],S=E[y]+g[k],N=E[y]-g[L],I=f?-T[x]/2:0,P="start"===b?A[x]:T[x],j="start"===b?-T[x]:-A[x],M=e.elements.arrow,H=f&&M?yt(M):{width:0,height:0},B=e.modifiersData["arrow#persistent"]?e.modifiersData["arrow#persistent"].padding:{top:0,right:0,bottom:0,left:0},R=B[k],W=B[L],z=Nt(0,A[x],H[x]),q=v?A[x]/2-I-z-R-O:P-z-R-O,F=v?-A[x]/2+I+z+W+O:j+z+W+O,U=e.elements.arrow&&kt(e.elements.arrow),$=U?"y"===y?U.clientTop||0:U.clientLeft||0:0,V=e.modifiersData.offset?e.modifiersData.offset[e.placement][y]:0,K=E[y]+q-V-$,X=E[y]+F-V;if(o){var Y=Nt(f?Dt(S,K):S,D,f?xt(N,X):N);E[y]=Y,C[y]=Y-D}if(a){var Q="x"===y?it:ot,G="x"===y?nt:st,Z=E[w],J=Z+g[Q],tt=Z-g[G],et=Nt(f?Dt(J,K):J,Z,f?xt(tt,X):tt);E[w]=et,C[w]=et-Z}}e.modifiersData[n]=C}},requiresIfExists:["offset"]};function le(t,e,i){void 0===i&&(i=!1);var n,s,o=pt(e),r=pt(e)&&function(t){var e=t.getBoundingClientRect(),i=e.width/t.offsetWidth||1,n=e.height/t.offsetHeight||1;return 1!==i||1!==n}(e),a=Tt(e),l=vt(t,r),c={scrollLeft:0,scrollTop:0},h={x:0,y:0};return(o||!o&&!i)&&(("body"!==dt(e)||Xt(a))&&(c=(n=e)!==ut(n)&&pt(n)?{scrollLeft:(s=n).scrollLeft,scrollTop:s.scrollTop}:Vt(n)),pt(e)?((h=vt(e,!0)).x+=e.clientLeft,h.y+=e.clientTop):a&&(h.x=Kt(a))),{x:l.left+c.scrollLeft-h.x,y:l.top+c.scrollTop-h.y,width:l.width,height:l.height}}var ce={placement:"bottom",modifiers:[],strategy:"absolute"};function he(){for(var t=arguments.length,e=new Array(t),i=0;iP.on(t,"mouseover",h)),this._element.focus(),this._element.setAttribute("aria-expanded",!0),this._menu.classList.add("show"),this._element.classList.add("show"),P.trigger(this._element,"shown.bs.dropdown",t)}hide(){if(l(this._element)||!this._isShown(this._menu))return;const t={relatedTarget:this._element};this._completeHide(t)}dispose(){this._popper&&this._popper.destroy(),super.dispose()}update(){this._inNavbar=this._detectNavbar(),this._popper&&this._popper.update()}_completeHide(t){P.trigger(this._element,"hide.bs.dropdown",t).defaultPrevented||("ontouchstart"in document.documentElement&&[].concat(...document.body.children).forEach(t=>P.off(t,"mouseover",h)),this._popper&&this._popper.destroy(),this._menu.classList.remove("show"),this._element.classList.remove("show"),this._element.setAttribute("aria-expanded","false"),F.removeDataAttribute(this._menu,"popper"),P.trigger(this._element,"hidden.bs.dropdown",t))}_getConfig(t){if(t={...this.constructor.Default,...F.getDataAttributes(this._element),...t},r("dropdown",t,this.constructor.DefaultType),"object"==typeof t.reference&&!s(t.reference)&&"function"!=typeof t.reference.getBoundingClientRect)throw new TypeError("dropdown".toUpperCase()+': Option "reference" provided type "object" without a required "getBoundingClientRect" method.');return t}_createPopper(t){if(void 0===me)throw new TypeError("Bootstrap's dropdowns require Popper (https://popper.js.org)");let e=this._element;"parent"===this._config.reference?e=t:s(this._config.reference)?e=o(this._config.reference):"object"==typeof this._config.reference&&(e=this._config.reference);const i=this._getPopperConfig(),n=i.modifiers.find(t=>"applyStyles"===t.name&&!1===t.enabled);this._popper=pe(e,this._menu,i),n&&F.setDataAttribute(this._menu,"popper","static")}_isShown(t=this._element){return t.classList.contains("show")}_getMenuElement(){return U.next(this._element,".dropdown-menu")[0]}_getPlacement(){const t=this._element.parentNode;if(t.classList.contains("dropend"))return we;if(t.classList.contains("dropstart"))return Ee;const e="end"===getComputedStyle(this._menu).getPropertyValue("--bs-position").trim();return t.classList.contains("dropup")?e?be:_e:e?ye:ve}_detectNavbar(){return null!==this._element.closest(".navbar")}_getOffset(){const{offset:t}=this._config;return"string"==typeof t?t.split(",").map(t=>Number.parseInt(t,10)):"function"==typeof t?e=>t(e,this._element):t}_getPopperConfig(){const t={placement:this._getPlacement(),modifiers:[{name:"preventOverflow",options:{boundary:this._config.boundary}},{name:"offset",options:{offset:this._getOffset()}}]};return"static"===this._config.display&&(t.modifiers=[{name:"applyStyles",enabled:!1}]),{...t,..."function"==typeof this._config.popperConfig?this._config.popperConfig(t):this._config.popperConfig}}_selectMenuItem({key:t,target:e}){const i=U.find(".dropdown-menu .dropdown-item:not(.disabled):not(:disabled)",this._menu).filter(a);i.length&&b(i,e,"ArrowDown"===t,!i.includes(e)).focus()}static jQueryInterface(t){return this.each((function(){const e=Oe.getOrCreateInstance(this,t);if("string"==typeof t){if(void 0===e[t])throw new TypeError(`No method named "${t}"`);e[t]()}}))}static clearMenus(t){if(t&&(2===t.button||"keyup"===t.type&&"Tab"!==t.key))return;const e=U.find('[data-bs-toggle="dropdown"]');for(let i=0,n=e.length;ie+t),this._setElementAttributes(".fixed-top, .fixed-bottom, .is-fixed, .sticky-top","paddingRight",e=>e+t),this._setElementAttributes(".sticky-top","marginRight",e=>e-t)}_disableOverFlow(){this._saveInitialAttribute(this._element,"overflow"),this._element.style.overflow="hidden"}_setElementAttributes(t,e,i){const n=this.getWidth();this._applyManipulationCallback(t,t=>{if(t!==this._element&&window.innerWidth>t.clientWidth+n)return;this._saveInitialAttribute(t,e);const s=window.getComputedStyle(t)[e];t.style[e]=i(Number.parseFloat(s))+"px"})}reset(){this._resetElementAttributes(this._element,"overflow"),this._resetElementAttributes(this._element,"paddingRight"),this._resetElementAttributes(".fixed-top, .fixed-bottom, .is-fixed, .sticky-top","paddingRight"),this._resetElementAttributes(".sticky-top","marginRight")}_saveInitialAttribute(t,e){const i=t.style[e];i&&F.setDataAttribute(t,e,i)}_resetElementAttributes(t,e){this._applyManipulationCallback(t,t=>{const i=F.getDataAttribute(t,e);void 0===i?t.style.removeProperty(e):(F.removeDataAttribute(t,e),t.style[e]=i)})}_applyManipulationCallback(t,e){s(t)?e(t):U.find(t,this._element).forEach(e)}isOverflowing(){return this.getWidth()>0}}const ke={className:"modal-backdrop",isVisible:!0,isAnimated:!1,rootElement:"body",clickCallback:null},Le={className:"string",isVisible:"boolean",isAnimated:"boolean",rootElement:"(element|string)",clickCallback:"(function|null)"};class xe{constructor(t){this._config=this._getConfig(t),this._isAppended=!1,this._element=null}show(t){this._config.isVisible?(this._append(),this._config.isAnimated&&d(this._getElement()),this._getElement().classList.add("show"),this._emulateAnimation(()=>{g(t)})):g(t)}hide(t){this._config.isVisible?(this._getElement().classList.remove("show"),this._emulateAnimation(()=>{this.dispose(),g(t)})):g(t)}_getElement(){if(!this._element){const t=document.createElement("div");t.className=this._config.className,this._config.isAnimated&&t.classList.add("fade"),this._element=t}return this._element}_getConfig(t){return(t={...ke,..."object"==typeof t?t:{}}).rootElement=o(t.rootElement),r("backdrop",t,Le),t}_append(){this._isAppended||(this._config.rootElement.append(this._getElement()),P.on(this._getElement(),"mousedown.bs.backdrop",()=>{g(this._config.clickCallback)}),this._isAppended=!0)}dispose(){this._isAppended&&(P.off(this._element,"mousedown.bs.backdrop"),this._element.remove(),this._isAppended=!1)}_emulateAnimation(t){_(t,this._getElement(),this._config.isAnimated)}}const De={trapElement:null,autofocus:!0},Se={trapElement:"element",autofocus:"boolean"};class Ne{constructor(t){this._config=this._getConfig(t),this._isActive=!1,this._lastTabNavDirection=null}activate(){const{trapElement:t,autofocus:e}=this._config;this._isActive||(e&&t.focus(),P.off(document,".bs.focustrap"),P.on(document,"focusin.bs.focustrap",t=>this._handleFocusin(t)),P.on(document,"keydown.tab.bs.focustrap",t=>this._handleKeydown(t)),this._isActive=!0)}deactivate(){this._isActive&&(this._isActive=!1,P.off(document,".bs.focustrap"))}_handleFocusin(t){const{target:e}=t,{trapElement:i}=this._config;if(e===document||e===i||i.contains(e))return;const n=U.focusableChildren(i);0===n.length?i.focus():"backward"===this._lastTabNavDirection?n[n.length-1].focus():n[0].focus()}_handleKeydown(t){"Tab"===t.key&&(this._lastTabNavDirection=t.shiftKey?"backward":"forward")}_getConfig(t){return t={...De,..."object"==typeof t?t:{}},r("focustrap",t,Se),t}}const Ie={backdrop:!0,keyboard:!0,focus:!0},Pe={backdrop:"(boolean|string)",keyboard:"boolean",focus:"boolean"};class je extends H{constructor(t,e){super(t),this._config=this._getConfig(e),this._dialog=U.findOne(".modal-dialog",this._element),this._backdrop=this._initializeBackDrop(),this._focustrap=this._initializeFocusTrap(),this._isShown=!1,this._ignoreBackdropClick=!1,this._isTransitioning=!1,this._scrollBar=new Ce}static get Default(){return Ie}static get NAME(){return"modal"}toggle(t){return this._isShown?this.hide():this.show(t)}show(t){this._isShown||this._isTransitioning||P.trigger(this._element,"show.bs.modal",{relatedTarget:t}).defaultPrevented||(this._isShown=!0,this._isAnimated()&&(this._isTransitioning=!0),this._scrollBar.hide(),document.body.classList.add("modal-open"),this._adjustDialog(),this._setEscapeEvent(),this._setResizeEvent(),P.on(this._dialog,"mousedown.dismiss.bs.modal",()=>{P.one(this._element,"mouseup.dismiss.bs.modal",t=>{t.target===this._element&&(this._ignoreBackdropClick=!0)})}),this._showBackdrop(()=>this._showElement(t)))}hide(){if(!this._isShown||this._isTransitioning)return;if(P.trigger(this._element,"hide.bs.modal").defaultPrevented)return;this._isShown=!1;const t=this._isAnimated();t&&(this._isTransitioning=!0),this._setEscapeEvent(),this._setResizeEvent(),this._focustrap.deactivate(),this._element.classList.remove("show"),P.off(this._element,"click.dismiss.bs.modal"),P.off(this._dialog,"mousedown.dismiss.bs.modal"),this._queueCallback(()=>this._hideModal(),this._element,t)}dispose(){[window,this._dialog].forEach(t=>P.off(t,".bs.modal")),this._backdrop.dispose(),this._focustrap.deactivate(),super.dispose()}handleUpdate(){this._adjustDialog()}_initializeBackDrop(){return new xe({isVisible:Boolean(this._config.backdrop),isAnimated:this._isAnimated()})}_initializeFocusTrap(){return new Ne({trapElement:this._element})}_getConfig(t){return t={...Ie,...F.getDataAttributes(this._element),..."object"==typeof t?t:{}},r("modal",t,Pe),t}_showElement(t){const e=this._isAnimated(),i=U.findOne(".modal-body",this._dialog);this._element.parentNode&&this._element.parentNode.nodeType===Node.ELEMENT_NODE||document.body.append(this._element),this._element.style.display="block",this._element.removeAttribute("aria-hidden"),this._element.setAttribute("aria-modal",!0),this._element.setAttribute("role","dialog"),this._element.scrollTop=0,i&&(i.scrollTop=0),e&&d(this._element),this._element.classList.add("show"),this._queueCallback(()=>{this._config.focus&&this._focustrap.activate(),this._isTransitioning=!1,P.trigger(this._element,"shown.bs.modal",{relatedTarget:t})},this._dialog,e)}_setEscapeEvent(){this._isShown?P.on(this._element,"keydown.dismiss.bs.modal",t=>{this._config.keyboard&&"Escape"===t.key?(t.preventDefault(),this.hide()):this._config.keyboard||"Escape"!==t.key||this._triggerBackdropTransition()}):P.off(this._element,"keydown.dismiss.bs.modal")}_setResizeEvent(){this._isShown?P.on(window,"resize.bs.modal",()=>this._adjustDialog()):P.off(window,"resize.bs.modal")}_hideModal(){this._element.style.display="none",this._element.setAttribute("aria-hidden",!0),this._element.removeAttribute("aria-modal"),this._element.removeAttribute("role"),this._isTransitioning=!1,this._backdrop.hide(()=>{document.body.classList.remove("modal-open"),this._resetAdjustments(),this._scrollBar.reset(),P.trigger(this._element,"hidden.bs.modal")})}_showBackdrop(t){P.on(this._element,"click.dismiss.bs.modal",t=>{this._ignoreBackdropClick?this._ignoreBackdropClick=!1:t.target===t.currentTarget&&(!0===this._config.backdrop?this.hide():"static"===this._config.backdrop&&this._triggerBackdropTransition())}),this._backdrop.show(t)}_isAnimated(){return this._element.classList.contains("fade")}_triggerBackdropTransition(){if(P.trigger(this._element,"hidePrevented.bs.modal").defaultPrevented)return;const{classList:t,scrollHeight:e,style:i}=this._element,n=e>document.documentElement.clientHeight;!n&&"hidden"===i.overflowY||t.contains("modal-static")||(n||(i.overflowY="hidden"),t.add("modal-static"),this._queueCallback(()=>{t.remove("modal-static"),n||this._queueCallback(()=>{i.overflowY=""},this._dialog)},this._dialog),this._element.focus())}_adjustDialog(){const t=this._element.scrollHeight>document.documentElement.clientHeight,e=this._scrollBar.getWidth(),i=e>0;(!i&&t&&!p()||i&&!t&&p())&&(this._element.style.paddingLeft=e+"px"),(i&&!t&&!p()||!i&&t&&p())&&(this._element.style.paddingRight=e+"px")}_resetAdjustments(){this._element.style.paddingLeft="",this._element.style.paddingRight=""}static jQueryInterface(t,e){return this.each((function(){const i=je.getOrCreateInstance(this,t);if("string"==typeof t){if(void 0===i[t])throw new TypeError(`No method named "${t}"`);i[t](e)}}))}}P.on(document,"click.bs.modal.data-api",'[data-bs-toggle="modal"]',(function(t){const e=i(this);["A","AREA"].includes(this.tagName)&&t.preventDefault(),P.one(e,"show.bs.modal",t=>{t.defaultPrevented||P.one(e,"hidden.bs.modal",()=>{a(this)&&this.focus()})});const n=U.findOne(".modal.show");n&&je.getInstance(n).hide(),je.getOrCreateInstance(e).toggle(this)})),B(je),m(je);const Me={backdrop:!0,keyboard:!0,scroll:!1},He={backdrop:"boolean",keyboard:"boolean",scroll:"boolean"};class Be extends H{constructor(t,e){super(t),this._config=this._getConfig(e),this._isShown=!1,this._backdrop=this._initializeBackDrop(),this._focustrap=this._initializeFocusTrap(),this._addEventListeners()}static get NAME(){return"offcanvas"}static get Default(){return Me}toggle(t){return this._isShown?this.hide():this.show(t)}show(t){this._isShown||P.trigger(this._element,"show.bs.offcanvas",{relatedTarget:t}).defaultPrevented||(this._isShown=!0,this._element.style.visibility="visible",this._backdrop.show(),this._config.scroll||(new Ce).hide(),this._element.removeAttribute("aria-hidden"),this._element.setAttribute("aria-modal",!0),this._element.setAttribute("role","dialog"),this._element.classList.add("show"),this._queueCallback(()=>{this._config.scroll||this._focustrap.activate(),P.trigger(this._element,"shown.bs.offcanvas",{relatedTarget:t})},this._element,!0))}hide(){this._isShown&&(P.trigger(this._element,"hide.bs.offcanvas").defaultPrevented||(this._focustrap.deactivate(),this._element.blur(),this._isShown=!1,this._element.classList.remove("show"),this._backdrop.hide(),this._queueCallback(()=>{this._element.setAttribute("aria-hidden",!0),this._element.removeAttribute("aria-modal"),this._element.removeAttribute("role"),this._element.style.visibility="hidden",this._config.scroll||(new Ce).reset(),P.trigger(this._element,"hidden.bs.offcanvas")},this._element,!0)))}dispose(){this._backdrop.dispose(),this._focustrap.deactivate(),super.dispose()}_getConfig(t){return t={...Me,...F.getDataAttributes(this._element),..."object"==typeof t?t:{}},r("offcanvas",t,He),t}_initializeBackDrop(){return new xe({className:"offcanvas-backdrop",isVisible:this._config.backdrop,isAnimated:!0,rootElement:this._element.parentNode,clickCallback:()=>this.hide()})}_initializeFocusTrap(){return new Ne({trapElement:this._element})}_addEventListeners(){P.on(this._element,"keydown.dismiss.bs.offcanvas",t=>{this._config.keyboard&&"Escape"===t.key&&this.hide()})}static jQueryInterface(t){return this.each((function(){const e=Be.getOrCreateInstance(this,t);if("string"==typeof t){if(void 0===e[t]||t.startsWith("_")||"constructor"===t)throw new TypeError(`No method named "${t}"`);e[t](this)}}))}}P.on(document,"click.bs.offcanvas.data-api",'[data-bs-toggle="offcanvas"]',(function(t){const e=i(this);if(["A","AREA"].includes(this.tagName)&&t.preventDefault(),l(this))return;P.one(e,"hidden.bs.offcanvas",()=>{a(this)&&this.focus()});const n=U.findOne(".offcanvas.show");n&&n!==e&&Be.getInstance(n).hide(),Be.getOrCreateInstance(e).toggle(this)})),P.on(window,"load.bs.offcanvas.data-api",()=>U.find(".offcanvas.show").forEach(t=>Be.getOrCreateInstance(t).show())),B(Be),m(Be);const Re=new Set(["background","cite","href","itemtype","longdesc","poster","src","xlink:href"]),We=/^(?:(?:https?|mailto|ftp|tel|file):|[^#&/:?]*(?:[#/?]|$))/i,ze=/^data:(?:image\/(?:bmp|gif|jpeg|jpg|png|tiff|webp)|video\/(?:mpeg|mp4|ogg|webm)|audio\/(?:mp3|oga|ogg|opus));base64,[\d+/a-z]+=*$/i,qe=(t,e)=>{const i=t.nodeName.toLowerCase();if(e.includes(i))return!Re.has(i)||Boolean(We.test(t.nodeValue)||ze.test(t.nodeValue));const n=e.filter(t=>t instanceof RegExp);for(let t=0,e=n.length;t{qe(t,a)||i.removeAttribute(t.nodeName)})}return n.body.innerHTML}const Ue=new Set(["sanitize","allowList","sanitizeFn"]),$e={animation:"boolean",template:"string",title:"(string|element|function)",trigger:"string",delay:"(number|object)",html:"boolean",selector:"(string|boolean)",placement:"(string|function)",offset:"(array|string|function)",container:"(string|element|boolean)",fallbackPlacements:"array",boundary:"(string|element)",customClass:"(string|function)",sanitize:"boolean",sanitizeFn:"(null|function)",allowList:"object",popperConfig:"(null|object|function)"},Ve={AUTO:"auto",TOP:"top",RIGHT:p()?"left":"right",BOTTOM:"bottom",LEFT:p()?"right":"left"},Ke={animation:!0,template:'',trigger:"hover focus",title:"",delay:0,html:!1,selector:!1,placement:"top",offset:[0,0],container:!1,fallbackPlacements:["top","right","bottom","left"],boundary:"clippingParents",customClass:"",sanitize:!0,sanitizeFn:null,allowList:{"*":["class","dir","id","lang","role",/^aria-[\w-]*$/i],a:["target","href","title","rel"],area:[],b:[],br:[],col:[],code:[],div:[],em:[],hr:[],h1:[],h2:[],h3:[],h4:[],h5:[],h6:[],i:[],img:["src","srcset","alt","title","width","height"],li:[],ol:[],p:[],pre:[],s:[],small:[],span:[],sub:[],sup:[],strong:[],u:[],ul:[]},popperConfig:null},Xe={HIDE:"hide.bs.tooltip",HIDDEN:"hidden.bs.tooltip",SHOW:"show.bs.tooltip",SHOWN:"shown.bs.tooltip",INSERTED:"inserted.bs.tooltip",CLICK:"click.bs.tooltip",FOCUSIN:"focusin.bs.tooltip",FOCUSOUT:"focusout.bs.tooltip",MOUSEENTER:"mouseenter.bs.tooltip",MOUSELEAVE:"mouseleave.bs.tooltip"};class Ye extends H{constructor(t,e){if(void 0===me)throw new TypeError("Bootstrap's tooltips require Popper (https://popper.js.org)");super(t),this._isEnabled=!0,this._timeout=0,this._hoverState="",this._activeTrigger={},this._popper=null,this._config=this._getConfig(e),this.tip=null,this._setListeners()}static get Default(){return Ke}static get NAME(){return"tooltip"}static get Event(){return Xe}static get DefaultType(){return $e}enable(){this._isEnabled=!0}disable(){this._isEnabled=!1}toggleEnabled(){this._isEnabled=!this._isEnabled}toggle(t){if(this._isEnabled)if(t){const e=this._initializeOnDelegatedTarget(t);e._activeTrigger.click=!e._activeTrigger.click,e._isWithActiveTrigger()?e._enter(null,e):e._leave(null,e)}else{if(this.getTipElement().classList.contains("show"))return void this._leave(null,this);this._enter(null,this)}}dispose(){clearTimeout(this._timeout),P.off(this._element.closest(".modal"),"hide.bs.modal",this._hideModalHandler),this.tip&&this.tip.remove(),this._disposePopper(),super.dispose()}show(){if("none"===this._element.style.display)throw new Error("Please use show on visible elements");if(!this.isWithContent()||!this._isEnabled)return;const t=P.trigger(this._element,this.constructor.Event.SHOW),e=c(this._element),i=null===e?this._element.ownerDocument.documentElement.contains(this._element):e.contains(this._element);if(t.defaultPrevented||!i)return;"tooltip"===this.constructor.NAME&&this.tip&&this.getTitle()!==this.tip.querySelector(".tooltip-inner").innerHTML&&(this._disposePopper(),this.tip.remove(),this.tip=null);const n=this.getTipElement(),s=(t=>{do{t+=Math.floor(1e6*Math.random())}while(document.getElementById(t));return t})(this.constructor.NAME);n.setAttribute("id",s),this._element.setAttribute("aria-describedby",s),this._config.animation&&n.classList.add("fade");const o="function"==typeof this._config.placement?this._config.placement.call(this,n,this._element):this._config.placement,r=this._getAttachment(o);this._addAttachmentClass(r);const{container:a}=this._config;M.set(n,this.constructor.DATA_KEY,this),this._element.ownerDocument.documentElement.contains(this.tip)||(a.append(n),P.trigger(this._element,this.constructor.Event.INSERTED)),this._popper?this._popper.update():this._popper=pe(this._element,n,this._getPopperConfig(r)),n.classList.add("show");const l=this._resolvePossibleFunction(this._config.customClass);l&&n.classList.add(...l.split(" ")),"ontouchstart"in document.documentElement&&[].concat(...document.body.children).forEach(t=>{P.on(t,"mouseover",h)});const d=this.tip.classList.contains("fade");this._queueCallback(()=>{const t=this._hoverState;this._hoverState=null,P.trigger(this._element,this.constructor.Event.SHOWN),"out"===t&&this._leave(null,this)},this.tip,d)}hide(){if(!this._popper)return;const t=this.getTipElement();if(P.trigger(this._element,this.constructor.Event.HIDE).defaultPrevented)return;t.classList.remove("show"),"ontouchstart"in document.documentElement&&[].concat(...document.body.children).forEach(t=>P.off(t,"mouseover",h)),this._activeTrigger.click=!1,this._activeTrigger.focus=!1,this._activeTrigger.hover=!1;const e=this.tip.classList.contains("fade");this._queueCallback(()=>{this._isWithActiveTrigger()||("show"!==this._hoverState&&t.remove(),this._cleanTipClass(),this._element.removeAttribute("aria-describedby"),P.trigger(this._element,this.constructor.Event.HIDDEN),this._disposePopper())},this.tip,e),this._hoverState=""}update(){null!==this._popper&&this._popper.update()}isWithContent(){return Boolean(this.getTitle())}getTipElement(){if(this.tip)return this.tip;const t=document.createElement("div");t.innerHTML=this._config.template;const e=t.children[0];return this.setContent(e),e.classList.remove("fade","show"),this.tip=e,this.tip}setContent(t){this._sanitizeAndSetContent(t,this.getTitle(),".tooltip-inner")}_sanitizeAndSetContent(t,e,i){const n=U.findOne(i,t);e||!n?this.setElementContent(n,e):n.remove()}setElementContent(t,e){if(null!==t)return s(e)?(e=o(e),void(this._config.html?e.parentNode!==t&&(t.innerHTML="",t.append(e)):t.textContent=e.textContent)):void(this._config.html?(this._config.sanitize&&(e=Fe(e,this._config.allowList,this._config.sanitizeFn)),t.innerHTML=e):t.textContent=e)}getTitle(){const t=this._element.getAttribute("data-bs-original-title")||this._config.title;return this._resolvePossibleFunction(t)}updateAttachment(t){return"right"===t?"end":"left"===t?"start":t}_initializeOnDelegatedTarget(t,e){return e||this.constructor.getOrCreateInstance(t.delegateTarget,this._getDelegateConfig())}_getOffset(){const{offset:t}=this._config;return"string"==typeof t?t.split(",").map(t=>Number.parseInt(t,10)):"function"==typeof t?e=>t(e,this._element):t}_resolvePossibleFunction(t){return"function"==typeof t?t.call(this._element):t}_getPopperConfig(t){const e={placement:t,modifiers:[{name:"flip",options:{fallbackPlacements:this._config.fallbackPlacements}},{name:"offset",options:{offset:this._getOffset()}},{name:"preventOverflow",options:{boundary:this._config.boundary}},{name:"arrow",options:{element:`.${this.constructor.NAME}-arrow`}},{name:"onChange",enabled:!0,phase:"afterWrite",fn:t=>this._handlePopperPlacementChange(t)}],onFirstUpdate:t=>{t.options.placement!==t.placement&&this._handlePopperPlacementChange(t)}};return{...e,..."function"==typeof this._config.popperConfig?this._config.popperConfig(e):this._config.popperConfig}}_addAttachmentClass(t){this.getTipElement().classList.add(`${this._getBasicClassPrefix()}-${this.updateAttachment(t)}`)}_getAttachment(t){return Ve[t.toUpperCase()]}_setListeners(){this._config.trigger.split(" ").forEach(t=>{if("click"===t)P.on(this._element,this.constructor.Event.CLICK,this._config.selector,t=>this.toggle(t));else if("manual"!==t){const e="hover"===t?this.constructor.Event.MOUSEENTER:this.constructor.Event.FOCUSIN,i="hover"===t?this.constructor.Event.MOUSELEAVE:this.constructor.Event.FOCUSOUT;P.on(this._element,e,this._config.selector,t=>this._enter(t)),P.on(this._element,i,this._config.selector,t=>this._leave(t))}}),this._hideModalHandler=()=>{this._element&&this.hide()},P.on(this._element.closest(".modal"),"hide.bs.modal",this._hideModalHandler),this._config.selector?this._config={...this._config,trigger:"manual",selector:""}:this._fixTitle()}_fixTitle(){const t=this._element.getAttribute("title"),e=typeof this._element.getAttribute("data-bs-original-title");(t||"string"!==e)&&(this._element.setAttribute("data-bs-original-title",t||""),!t||this._element.getAttribute("aria-label")||this._element.textContent||this._element.setAttribute("aria-label",t),this._element.setAttribute("title",""))}_enter(t,e){e=this._initializeOnDelegatedTarget(t,e),t&&(e._activeTrigger["focusin"===t.type?"focus":"hover"]=!0),e.getTipElement().classList.contains("show")||"show"===e._hoverState?e._hoverState="show":(clearTimeout(e._timeout),e._hoverState="show",e._config.delay&&e._config.delay.show?e._timeout=setTimeout(()=>{"show"===e._hoverState&&e.show()},e._config.delay.show):e.show())}_leave(t,e){e=this._initializeOnDelegatedTarget(t,e),t&&(e._activeTrigger["focusout"===t.type?"focus":"hover"]=e._element.contains(t.relatedTarget)),e._isWithActiveTrigger()||(clearTimeout(e._timeout),e._hoverState="out",e._config.delay&&e._config.delay.hide?e._timeout=setTimeout(()=>{"out"===e._hoverState&&e.hide()},e._config.delay.hide):e.hide())}_isWithActiveTrigger(){for(const t in this._activeTrigger)if(this._activeTrigger[t])return!0;return!1}_getConfig(t){const e=F.getDataAttributes(this._element);return Object.keys(e).forEach(t=>{Ue.has(t)&&delete e[t]}),(t={...this.constructor.Default,...e,..."object"==typeof t&&t?t:{}}).container=!1===t.container?document.body:o(t.container),"number"==typeof t.delay&&(t.delay={show:t.delay,hide:t.delay}),"number"==typeof t.title&&(t.title=t.title.toString()),"number"==typeof t.content&&(t.content=t.content.toString()),r("tooltip",t,this.constructor.DefaultType),t.sanitize&&(t.template=Fe(t.template,t.allowList,t.sanitizeFn)),t}_getDelegateConfig(){const t={};for(const e in this._config)this.constructor.Default[e]!==this._config[e]&&(t[e]=this._config[e]);return t}_cleanTipClass(){const t=this.getTipElement(),e=new RegExp(`(^|\\s)${this._getBasicClassPrefix()}\\S+`,"g"),i=t.getAttribute("class").match(e);null!==i&&i.length>0&&i.map(t=>t.trim()).forEach(e=>t.classList.remove(e))}_getBasicClassPrefix(){return"bs-tooltip"}_handlePopperPlacementChange(t){const{state:e}=t;e&&(this.tip=e.elements.popper,this._cleanTipClass(),this._addAttachmentClass(this._getAttachment(e.placement)))}_disposePopper(){this._popper&&(this._popper.destroy(),this._popper=null)}static jQueryInterface(t){return this.each((function(){const e=Ye.getOrCreateInstance(this,t);if("string"==typeof t){if(void 0===e[t])throw new TypeError(`No method named "${t}"`);e[t]()}}))}}m(Ye);const Qe={...Ye.Default,placement:"right",offset:[0,8],trigger:"click",content:"",template:''},Ge={...Ye.DefaultType,content:"(string|element|function)"},Ze={HIDE:"hide.bs.popover",HIDDEN:"hidden.bs.popover",SHOW:"show.bs.popover",SHOWN:"shown.bs.popover",INSERTED:"inserted.bs.popover",CLICK:"click.bs.popover",FOCUSIN:"focusin.bs.popover",FOCUSOUT:"focusout.bs.popover",MOUSEENTER:"mouseenter.bs.popover",MOUSELEAVE:"mouseleave.bs.popover"};class Je extends Ye{static get Default(){return Qe}static get NAME(){return"popover"}static get Event(){return Ze}static get DefaultType(){return Ge}isWithContent(){return this.getTitle()||this._getContent()}setContent(t){this._sanitizeAndSetContent(t,this.getTitle(),".popover-header"),this._sanitizeAndSetContent(t,this._getContent(),".popover-body")}_getContent(){return this._resolvePossibleFunction(this._config.content)}_getBasicClassPrefix(){return"bs-popover"}static jQueryInterface(t){return this.each((function(){const e=Je.getOrCreateInstance(this,t);if("string"==typeof t){if(void 0===e[t])throw new TypeError(`No method named "${t}"`);e[t]()}}))}}m(Je);const ti={offset:10,method:"auto",target:""},ei={offset:"number",method:"string",target:"(string|element)"},ii=".nav-link, .list-group-item, .dropdown-item";class ni extends H{constructor(t,e){super(t),this._scrollElement="BODY"===this._element.tagName?window:this._element,this._config=this._getConfig(e),this._offsets=[],this._targets=[],this._activeTarget=null,this._scrollHeight=0,P.on(this._scrollElement,"scroll.bs.scrollspy",()=>this._process()),this.refresh(),this._process()}static get Default(){return ti}static get NAME(){return"scrollspy"}refresh(){const t=this._scrollElement===this._scrollElement.window?"offset":"position",i="auto"===this._config.method?t:this._config.method,n="position"===i?this._getScrollTop():0;this._offsets=[],this._targets=[],this._scrollHeight=this._getScrollHeight(),U.find(ii,this._config.target).map(t=>{const s=e(t),o=s?U.findOne(s):null;if(o){const t=o.getBoundingClientRect();if(t.width||t.height)return[F[i](o).top+n,s]}return null}).filter(t=>t).sort((t,e)=>t[0]-e[0]).forEach(t=>{this._offsets.push(t[0]),this._targets.push(t[1])})}dispose(){P.off(this._scrollElement,".bs.scrollspy"),super.dispose()}_getConfig(t){return(t={...ti,...F.getDataAttributes(this._element),..."object"==typeof t&&t?t:{}}).target=o(t.target)||document.documentElement,r("scrollspy",t,ei),t}_getScrollTop(){return this._scrollElement===window?this._scrollElement.pageYOffset:this._scrollElement.scrollTop}_getScrollHeight(){return this._scrollElement.scrollHeight||Math.max(document.body.scrollHeight,document.documentElement.scrollHeight)}_getOffsetHeight(){return this._scrollElement===window?window.innerHeight:this._scrollElement.getBoundingClientRect().height}_process(){const t=this._getScrollTop()+this._config.offset,e=this._getScrollHeight(),i=this._config.offset+e-this._getOffsetHeight();if(this._scrollHeight!==e&&this.refresh(),t>=i){const t=this._targets[this._targets.length-1];this._activeTarget!==t&&this._activate(t)}else{if(this._activeTarget&&t0)return this._activeTarget=null,void this._clear();for(let e=this._offsets.length;e--;)this._activeTarget!==this._targets[e]&&t>=this._offsets[e]&&(void 0===this._offsets[e+1]||t`${e}[data-bs-target="${t}"],${e}[href="${t}"]`),i=U.findOne(e.join(","),this._config.target);i.classList.add("active"),i.classList.contains("dropdown-item")?U.findOne(".dropdown-toggle",i.closest(".dropdown")).classList.add("active"):U.parents(i,".nav, .list-group").forEach(t=>{U.prev(t,".nav-link, .list-group-item").forEach(t=>t.classList.add("active")),U.prev(t,".nav-item").forEach(t=>{U.children(t,".nav-link").forEach(t=>t.classList.add("active"))})}),P.trigger(this._scrollElement,"activate.bs.scrollspy",{relatedTarget:t})}_clear(){U.find(ii,this._config.target).filter(t=>t.classList.contains("active")).forEach(t=>t.classList.remove("active"))}static jQueryInterface(t){return this.each((function(){const e=ni.getOrCreateInstance(this,t);if("string"==typeof t){if(void 0===e[t])throw new TypeError(`No method named "${t}"`);e[t]()}}))}}P.on(window,"load.bs.scrollspy.data-api",()=>{U.find('[data-bs-spy="scroll"]').forEach(t=>new ni(t))}),m(ni);class si extends H{static get NAME(){return"tab"}show(){if(this._element.parentNode&&this._element.parentNode.nodeType===Node.ELEMENT_NODE&&this._element.classList.contains("active"))return;let t;const e=i(this._element),n=this._element.closest(".nav, .list-group");if(n){const e="UL"===n.nodeName||"OL"===n.nodeName?":scope > li > .active":".active";t=U.find(e,n),t=t[t.length-1]}const s=t?P.trigger(t,"hide.bs.tab",{relatedTarget:this._element}):null;if(P.trigger(this._element,"show.bs.tab",{relatedTarget:t}).defaultPrevented||null!==s&&s.defaultPrevented)return;this._activate(this._element,n);const o=()=>{P.trigger(t,"hidden.bs.tab",{relatedTarget:this._element}),P.trigger(this._element,"shown.bs.tab",{relatedTarget:t})};e?this._activate(e,e.parentNode,o):o()}_activate(t,e,i){const n=(!e||"UL"!==e.nodeName&&"OL"!==e.nodeName?U.children(e,".active"):U.find(":scope > li > .active",e))[0],s=i&&n&&n.classList.contains("fade"),o=()=>this._transitionComplete(t,n,i);n&&s?(n.classList.remove("show"),this._queueCallback(o,t,!0)):o()}_transitionComplete(t,e,i){if(e){e.classList.remove("active");const t=U.findOne(":scope > .dropdown-menu .active",e.parentNode);t&&t.classList.remove("active"),"tab"===e.getAttribute("role")&&e.setAttribute("aria-selected",!1)}t.classList.add("active"),"tab"===t.getAttribute("role")&&t.setAttribute("aria-selected",!0),d(t),t.classList.contains("fade")&&t.classList.add("show");let n=t.parentNode;if(n&&"LI"===n.nodeName&&(n=n.parentNode),n&&n.classList.contains("dropdown-menu")){const e=t.closest(".dropdown");e&&U.find(".dropdown-toggle",e).forEach(t=>t.classList.add("active")),t.setAttribute("aria-expanded",!0)}i&&i()}static jQueryInterface(t){return this.each((function(){const e=si.getOrCreateInstance(this);if("string"==typeof t){if(void 0===e[t])throw new TypeError(`No method named "${t}"`);e[t]()}}))}}P.on(document,"click.bs.tab.data-api",'[data-bs-toggle="tab"], [data-bs-toggle="pill"], [data-bs-toggle="list"]',(function(t){["A","AREA"].includes(this.tagName)&&t.preventDefault(),l(this)||si.getOrCreateInstance(this).show()})),m(si);const oi={animation:"boolean",autohide:"boolean",delay:"number"},ri={animation:!0,autohide:!0,delay:5e3};class ai extends H{constructor(t,e){super(t),this._config=this._getConfig(e),this._timeout=null,this._hasMouseInteraction=!1,this._hasKeyboardInteraction=!1,this._setListeners()}static get DefaultType(){return oi}static get Default(){return ri}static get NAME(){return"toast"}show(){P.trigger(this._element,"show.bs.toast").defaultPrevented||(this._clearTimeout(),this._config.animation&&this._element.classList.add("fade"),this._element.classList.remove("hide"),d(this._element),this._element.classList.add("show"),this._element.classList.add("showing"),this._queueCallback(()=>{this._element.classList.remove("showing"),P.trigger(this._element,"shown.bs.toast"),this._maybeScheduleHide()},this._element,this._config.animation))}hide(){this._element.classList.contains("show")&&(P.trigger(this._element,"hide.bs.toast").defaultPrevented||(this._element.classList.add("showing"),this._queueCallback(()=>{this._element.classList.add("hide"),this._element.classList.remove("showing"),this._element.classList.remove("show"),P.trigger(this._element,"hidden.bs.toast")},this._element,this._config.animation)))}dispose(){this._clearTimeout(),this._element.classList.contains("show")&&this._element.classList.remove("show"),super.dispose()}_getConfig(t){return t={...ri,...F.getDataAttributes(this._element),..."object"==typeof t&&t?t:{}},r("toast",t,this.constructor.DefaultType),t}_maybeScheduleHide(){this._config.autohide&&(this._hasMouseInteraction||this._hasKeyboardInteraction||(this._timeout=setTimeout(()=>{this.hide()},this._config.delay)))}_onInteraction(t,e){switch(t.type){case"mouseover":case"mouseout":this._hasMouseInteraction=e;break;case"focusin":case"focusout":this._hasKeyboardInteraction=e}if(e)return void this._clearTimeout();const i=t.relatedTarget;this._element===i||this._element.contains(i)||this._maybeScheduleHide()}_setListeners(){P.on(this._element,"mouseover.bs.toast",t=>this._onInteraction(t,!0)),P.on(this._element,"mouseout.bs.toast",t=>this._onInteraction(t,!1)),P.on(this._element,"focusin.bs.toast",t=>this._onInteraction(t,!0)),P.on(this._element,"focusout.bs.toast",t=>this._onInteraction(t,!1))}_clearTimeout(){clearTimeout(this._timeout),this._timeout=null}static jQueryInterface(t){return this.each((function(){const e=ai.getOrCreateInstance(this,t);if("string"==typeof t){if(void 0===e[t])throw new TypeError(`No method named "${t}"`);e[t](this)}}))}}return B(ai),m(ai),{Alert:R,Button:W,Carousel:Z,Collapse:et,Dropdown:Oe,Modal:je,Offcanvas:Be,Popover:Je,ScrollSpy:ni,Tab:si,Toast:ai,Tooltip:Ye}}));
\ No newline at end of file
diff --git a/files/assets/CHRISTMAS/js/bugs.js b/files/assets/CHRISTMAS/js/bugs.js
new file mode 100644
index 000000000..9d4151f69
--- /dev/null
+++ b/files/assets/CHRISTMAS/js/bugs.js
@@ -0,0 +1,7 @@
+new BugController({
+ imageSprite: "/assets/CHRISTMAS/images/fly-sprite.webp",
+ canDie: false,
+ minBugs: 10,
+ maxBugs: 20,
+ mouseOver: "multiply"
+});
\ No newline at end of file
diff --git a/files/assets/js/christmas/deanmartin.js b/files/assets/CHRISTMAS/js/christmas/deanmartin.js
similarity index 82%
rename from files/assets/js/christmas/deanmartin.js
rename to files/assets/CHRISTMAS/js/christmas/deanmartin.js
index c1e042cd5..933b17397 100644
--- a/files/assets/js/christmas/deanmartin.js
+++ b/files/assets/CHRISTMAS/js/christmas/deanmartin.js
@@ -1,4 +1,4 @@
-const audio = new Audio('/assets/christmas/songs/cold.mp3');
+const audio = new Audio('/assets/CHRISTMAS/songs/cold.mp3');
audio.loop=true;
function play() {
diff --git a/files/assets/js/christmas/fireplace.js b/files/assets/CHRISTMAS/js/christmas/fireplace.js
similarity index 81%
rename from files/assets/js/christmas/fireplace.js
rename to files/assets/CHRISTMAS/js/christmas/fireplace.js
index 82a47977a..329192211 100644
--- a/files/assets/js/christmas/fireplace.js
+++ b/files/assets/CHRISTMAS/js/christmas/fireplace.js
@@ -1,4 +1,4 @@
-const audio = new Audio('/assets/christmas/songs/fireplace.mp3');
+const audio = new Audio('/assets/CHRISTMAS/songs/fireplace.mp3');
audio.loop=true;
function play() {
diff --git a/files/assets/js/christmas/mistletoe.js b/files/assets/CHRISTMAS/js/christmas/mistletoe.js
similarity index 100%
rename from files/assets/js/christmas/mistletoe.js
rename to files/assets/CHRISTMAS/js/christmas/mistletoe.js
diff --git a/files/assets/js/christmas/playlist.js b/files/assets/CHRISTMAS/js/christmas/playlist.js
similarity index 95%
rename from files/assets/js/christmas/playlist.js
rename to files/assets/CHRISTMAS/js/christmas/playlist.js
index b3301fb39..06116eb81 100644
--- a/files/assets/js/christmas/playlist.js
+++ b/files/assets/CHRISTMAS/js/christmas/playlist.js
@@ -71,7 +71,7 @@ const trackList = [
];
const selected = trackList[Math.floor(Math.random() * trackList.length)];
-const audio = new Audio(`/assets/christmas/songs/${selected}.mp3`);
+const audio = new Audio(`/assets/CHRISTMAS/songs/${selected}.mp3`);
audio.loop=true;
function play() {
diff --git a/files/assets/js/christmas/snow.js b/files/assets/CHRISTMAS/js/christmas/snow.js
similarity index 100%
rename from files/assets/js/christmas/snow.js
rename to files/assets/CHRISTMAS/js/christmas/snow.js
diff --git a/files/assets/CHRISTMAS/js/clipboard.js b/files/assets/CHRISTMAS/js/clipboard.js
new file mode 100644
index 000000000..02cc75894
--- /dev/null
+++ b/files/assets/CHRISTMAS/js/clipboard.js
@@ -0,0 +1,7 @@
+!function(t,e){"object"==typeof exports&&"object"==typeof module?module.exports=e():"function"==typeof define&&define.amd?define([],e):"object"==typeof exports?exports.ClipboardJS=e():t.ClipboardJS=e()}(this,function(){return n={134:function(t,e,n){"use strict";n.d(e,{default:function(){return r}});var e=n(279),i=n.n(e),e=n(370),a=n.n(e),e=n(817),o=n.n(e);function c(t){return(c="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t})(t)}function u(t,e){for(var n=0;n`
+ }
+ popover_new.getElementsByClassName('pop-banner')[0].src = author["bannerurl"]
+ popover_new.getElementsByClassName('pop-picture')[0].src = author["profile_url"]
+ popover_new.getElementsByClassName('pop-username')[0].innerHTML = author["username"]
+ popover_new.getElementsByClassName('pop-bio')[0].innerHTML = author["bio_html"]
+ popover_new.getElementsByClassName('pop-postcount')[0].innerHTML = author["post_count"]
+ popover_new.getElementsByClassName('pop-commentcount')[0].innerHTML = author["comment_count"]
+ popover_new.getElementsByClassName('pop-coins')[0].innerHTML = author["coins"]
+ popover_new.getElementsByClassName('pop-viewmore')[0].href = author["url"]
+ popover_new.getElementsByClassName('pop-badges')[0].innerHTML = badges
+
+ document.body.appendChild(popover_new);
+ document.body.removeChild(popover_old);
+}
+
+document.addEventListener("click", function(){
+ active = document.activeElement.getAttributeNode("class");
+ if (!(active && active.nodeValue == "user-name text-decoration-none")){
+ let popfix = document.getElementById("popover-fix")
+ if (popfix) document.body.removeChild(popfix);
+ }
+});
\ No newline at end of file
diff --git a/files/assets/CHRISTMAS/js/comments.js b/files/assets/CHRISTMAS/js/comments.js
new file mode 100644
index 000000000..94db69e9f
--- /dev/null
+++ b/files/assets/CHRISTMAS/js/comments.js
@@ -0,0 +1,51 @@
+function timestamp(str, ti) {
+ date = new Date(ti*1000);
+ document.getElementById(str).setAttribute("data-bs-original-title", date.toString());
+};
+
+function collapse_comment(comment_id) {
+ const comment = document.getElementById(`comment-${comment_id}`)
+ const top = comment.getBoundingClientRect().y;
+
+ const toggler = document.getElementById(`comment-collapse-${comment_id}`);
+
+ ['hidden', 'pointer-events-none'].map(x=> toggler.classList.toggle(x));
+
+ ['items-center', 'opacity-50', 'md:hover:opacity-100', 'collapsed'].map(y=> comment.classList.toggle(y)); // apply flex alignment and opacity to comment parent wrapping div
+
+ const isClosed = comment.classList.contains("collapsed");
+
+ const icon = document.getElementsByClassName(`comment-toggle-icon-${comment_id}`);
+ for (let i = 0; i < icon.length; i++) {
+ //icon[i].innerText = isClosed ? '[+]' : '[-]'; // text fallback if we don't want to use icons
+ icon[i].classList.toggle('fa-minus-circle');
+ icon[i].classList.toggle('fa-plus-circle');
+ }
+
+ if (isClosed && top < 0) {
+ comment.scrollIntoView()
+ window.scrollBy(0, - 100)
+ }
+};
+
+function loadMoreReplies(cid,id,trigger) {
+ const btn = document.getElementById(trigger) // trigger button
+ const el = document.getElementById(id) // target element to populate
+ const form = new FormData();
+ const xhr = new XMLHttpRequest();
+
+ btn.classList.toggle('animate-pulse');
+
+ xhr.open("post", `/morecomments/${cid}`);
+ xhr.withCredentials=true;
+ xhr.onload=function(){
+ if (xhr.status==200) {
+ btn.style.display = "none"; // hide button
+ el.innerHTML += xhr.response.replace(/data-src/g, 'src').replace(/data-cfsrc/g, 'src').replace(/style="display:none;visibility:hidden;"/g, ''); // replace desired element with response html
+ initializeBootstrap()
+ } else {
+ btn.disabled = false; // enable our button if GET fails
+ }
+ }
+ xhr.send(form)
+}
\ No newline at end of file
diff --git a/files/assets/CHRISTMAS/js/comments_admin.js b/files/assets/CHRISTMAS/js/comments_admin.js
new file mode 100644
index 000000000..d8128131e
--- /dev/null
+++ b/files/assets/CHRISTMAS/js/comments_admin.js
@@ -0,0 +1,74 @@
+function removeComment(post_id,button1,button2) {
+ url="/ban_comment/"+post_id
+
+ post(url)
+
+ try {
+ document.getElementById("comment-"+post_id+"-only").classList.add("bg-red-200");
+ } catch(e) {
+ document.getElementById("context").classList.add("bg-red-200");
+ }
+
+ const button=document.getElementById("remove-"+post_id);
+ button.onclick=function(){approveComment(post_id)};
+ button.innerHTML=' Approve'
+
+ if (typeof button1 !== 'undefined') {
+ document.getElementById(button1).classList.toggle("md:block");
+ document.getElementById(button2).classList.toggle("md:block");
+ }
+};
+
+function approveComment(post_id,button1,button2) {
+ url="/unban_comment/"+post_id
+
+ post(url)
+
+ try {
+ document.getElementById("comment-"+post_id+"-only").classList.remove("bg-red-200");
+ } catch(e) {
+ document.getElementById("context").classList.remove("bg-red-200");
+ }
+
+ const button=document.getElementById("remove-"+post_id);
+ button.onclick=function(){removeComment(post_id)};
+ button.innerHTML=' Remove'
+
+ if (typeof button1 !== 'undefined') {
+ document.getElementById(button1).classList.toggle("md:block");
+ document.getElementById(button2).classList.toggle("md:block");
+ }
+}
+
+
+function removeComment2(post_id,button1,button2) {
+ url="/ban_comment/"+post_id
+
+ post(url)
+
+ document.getElementById("comment-"+post_id+"-only").classList.add("bg-red-200");
+ const button=document.getElementById("remove-"+post_id);
+ button.onclick=function(){approveComment(post_id)};
+ button.innerHTML=' Approve'
+
+ if (typeof button1 !== 'undefined') {
+ document.getElementById(button1).classList.toggle("hidden");
+ document.getElementById(button2).classList.toggle("hidden");
+ }
+};
+
+function approveComment2(post_id,button1,button2) {
+ url="/unban_comment/"+post_id
+
+ post(url)
+
+ document.getElementById("comment-"+post_id+"-only").classList.remove("bg-red-200");
+ const button=document.getElementById("remove-"+post_id);
+ button.onclick=function(){removeComment(post_id)};
+ button.innerHTML=' Remove'
+
+ if (typeof button1 !== 'undefined') {
+ document.getElementById(button1).classList.toggle("hidden");
+ document.getElementById(button2).classList.toggle("hidden");
+ }
+}
\ No newline at end of file
diff --git a/files/assets/CHRISTMAS/js/comments_v.js b/files/assets/CHRISTMAS/js/comments_v.js
new file mode 100644
index 000000000..bb5c021da
--- /dev/null
+++ b/files/assets/CHRISTMAS/js/comments_v.js
@@ -0,0 +1,264 @@
+function post(url) {
+ var xhr = new XMLHttpRequest();
+ xhr.open("POST", url, true);
+ var form = new FormData()
+ form.append("formkey", formkey());
+ xhr.withCredentials=true;
+ xhr.send(form);
+};
+
+function post_toast3(url, button1, button2) {
+ var xhr = new XMLHttpRequest();
+ xhr.open("POST", url, true);
+ var form = new FormData()
+ form.append("formkey", formkey());
+
+ if(typeof data === 'object' && data !== null) {
+ for(let k of Object.keys(data)) {
+ form.append(k, data[k]);
+ }
+ }
+
+
+ form.append("formkey", formkey());
+ xhr.withCredentials=true;
+
+ xhr.onload = function() {
+ if (xhr.status >= 200 && xhr.status < 300) {
+ var myToast = new bootstrap.Toast(document.getElementById('toast-post-success'));
+ myToast.show();
+ try {
+ document.getElementById('toast-post-success-text').innerText = JSON.parse(xhr.response)["message"];
+ } catch(e) {
+ document.getElementById('toast-post-success-text').innerText = "Action successful!";
+ }
+ return true
+
+ } else if (xhr.status >= 300 && xhr.status < 400) {
+ window.location.href = JSON.parse(xhr.response)["redirect"]
+ } else {
+
+ try {
+ data=JSON.parse(xhr.response);
+ } catch(e) {}
+
+ var myToast = new bootstrap.Toast(document.getElementById('toast-post-success'));
+ myToast.hide();
+ var myToast = new bootstrap.Toast(document.getElementById('toast-post-error'));
+ myToast.show();
+ return false
+ }
+ };
+
+ xhr.send(form);
+
+ document.getElementById(button1).classList.toggle("md:block");
+ document.getElementById(button2).classList.toggle("md:block");
+}
+
+function report_commentModal(id, author) {
+
+ document.getElementById("comment-author").textContent = author;
+
+ document.getElementById("reportCommentButton").onclick = function() {
+
+ this.innerHTML='Reporting comment';
+ this.disabled = true;
+ var xhr = new XMLHttpRequest();
+ xhr.open("POST", '/report/comment/'+id, true);
+ var form = new FormData()
+ form.append("formkey", formkey());
+ form.append("reason", document.getElementById("reason-comment").value);
+
+ xhr.withCredentials=true;
+
+ xhr.onload=function() {
+ document.getElementById("reportCommentFormBefore").classList.add('hidden');
+ document.getElementById("reportCommentFormAfter").classList.remove('hidden');
+ };
+
+ xhr.onerror=function(){alert(errortext)};
+ xhr.send(form);
+}
+
+};
+
+function openReplyBox(id) {
+ const element = document.getElementById(`reply-to-${id}`);
+ element.classList.remove('hidden')
+
+ element.getElementsByTagName('textarea')[0].focus()
+}
+
+function toggleEdit(id){
+ comment=document.getElementById("comment-text-"+id);
+ form=document.getElementById("comment-edit-"+id);
+ box=document.getElementById('comment-edit-body-'+id);
+ actions = document.getElementById('comment-' + id +'-actions');
+
+ comment.classList.toggle("hidden");
+ form.classList.toggle("hidden");
+ actions.classList.toggle("hidden");
+ autoExpand(box);
+};
+
+
+function delete_commentModal(id) {
+
+ document.getElementById("deleteCommentButton").onclick = function() {
+
+ this.innerHTML='Deleting comment';
+ this.disabled = true;
+
+ var url = '/delete/comment/' + id
+ var xhr = new XMLHttpRequest();
+ xhr.open("POST", url, true);
+ var form = new FormData()
+ form.append("formkey", formkey());
+ xhr.withCredentials=true;
+ xhr.onload = function() {location.reload(true);};
+ xhr.send(form);
+}
+
+};
+
+function post_reply(id){
+
+ var form = new FormData();
+
+ form.append('formkey', formkey());
+ form.append('parent_id', id);
+ form.append('body', document.getElementById('reply-form-body-'+id).value);
+ var xhr = new XMLHttpRequest();
+ xhr.open("post", "/reply");
+ xhr.withCredentials=true;
+ xhr.onload=function(){
+ if (xhr.status==200) {
+ commentForm=document.getElementById('comment-form-space-'+id);
+ commentForm.innerHTML = xhr.response.replace(/data-src/g, 'src').replace(/data-cfsrc/g, 'src').replace(/style="display:none;visibility:hidden;"/g, '');
+ }
+ else {
+ var myToast = new bootstrap.Toast(document.getElementById('toast-post-success'));
+ myToast.hide();
+ var myToast = new bootstrap.Toast(document.getElementById('toast-post-error'));
+ myToast.show();
+ try {document.getElementById('toast-post-error-text').innerText = JSON.parse(xhr.response)["error"];}
+ catch {}
+ }
+ }
+ xhr.send(form)
+}
+
+function comment_edit(id){
+
+ var form = new FormData();
+
+ form.append('formkey', formkey());
+ form.append('body', document.getElementById('comment-edit-body-'+id).value);
+ form.append('file', document.getElementById('file-edit-reply-'+id).files[0]);
+
+ var xhr = new XMLHttpRequest();
+ xhr.open("post", "/edit_comment/"+id);
+ xhr.withCredentials=true;
+ xhr.onload=function(){
+ if (xhr.status==200) {
+ commentForm=document.getElementById('comment-text-'+id);
+ commentForm.innerHTML = xhr.response.replace(/data-src/g, 'src').replace(/data-cfsrc/g, 'src').replace(/style="display:none;visibility:hidden;"/g, '');
+ document.getElementById('cancel-edit-'+id).click()
+ }
+ else {
+ var myToast = new bootstrap.Toast(document.getElementById('toast-post-success'));
+ myToast.hide();
+ var myToast = new bootstrap.Toast(document.getElementById('toast-post-error'));
+ myToast.show();
+ try {document.getElementById('toast-post-error-text').innerText = JSON.parse(xhr.response)["error"];}
+ catch {}
+ }
+ }
+ xhr.send(form)
+}
+
+function post_comment(fullname){
+ const btn = document.getElementById('save-reply-to-'+fullname)
+ btn.classList.add('disabled');
+
+ var form = new FormData();
+
+ form.append('formkey', formkey());
+ form.append('parent_fullname', fullname);
+ form.append('submission', document.getElementById('reply-form-submission-'+fullname).value);
+ form.append('body', document.getElementById('reply-form-body-'+fullname).value);
+ form.append('file', document.getElementById('file-upload-reply-'+fullname).files[0]);
+
+ var xhr = new XMLHttpRequest();
+ xhr.open("post", "/comment");
+ xhr.withCredentials=true;
+ xhr.onload=function(){
+ if (xhr.status==200) {
+ commentForm=document.getElementById('comment-form-space-'+fullname);
+ commentForm.innerHTML = xhr.response.replace(/data-src/g, 'src').replace(/data-cfsrc/g, 'src').replace(/style="display:none;visibility:hidden;"/g, '');
+ }
+ else {
+ var myToast = new bootstrap.Toast(document.getElementById('toast-post-success'));
+ myToast.hide();
+ var myToast = new bootstrap.Toast(document.getElementById('toast-post-error'));
+ myToast.show();
+ try {document.getElementById('toast-post-error-text').innerText = JSON.parse(xhr.response)["error"];}
+ catch {}
+ btn.classList.remove('disabled');
+ }
+ }
+ xhr.send(form)
+}
+
+document.onpaste = function(event) {
+ var focused = document.activeElement;
+ if (focused.id.includes('reply-form-body-')) {
+ var fullname = focused.dataset.fullname;
+ f=document.getElementById('file-upload-reply-' + fullname);
+ files = event.clipboardData.files
+ filename = files[0].name.toLowerCase()
+ if (filename.endsWith(".jpg") || filename.endsWith(".jpeg") || filename.endsWith(".png") || filename.endsWith(".webp") || filename.endsWith(".gif"))
+ {
+ f.files = files;
+ document.getElementById('filename-show-reply-' + fullname).textContent = filename;
+ }
+ }
+ else if (focused.id.includes('comment-edit-body-')) {
+ var id = focused.dataset.id;
+ f=document.getElementById('file-edit-reply-' + id);
+ files = event.clipboardData.files
+ filename = files[0].name.toLowerCase()
+ if (filename.endsWith(".jpg") || filename.endsWith(".jpeg") || filename.endsWith(".png") || filename.endsWith(".webp") || filename.endsWith(".gif"))
+ {
+ f.files = files;
+ document.getElementById('filename-edit-reply-' + id).textContent = filename;
+ }
+ }
+ else if (focused.id.includes('post-edit-box-')) {
+ var id = focused.dataset.id;
+ f=document.getElementById('file-upload-edit-' + id);
+ files = event.clipboardData.files
+ filename = files[0].name.toLowerCase()
+ if (filename.endsWith(".jpg") || filename.endsWith(".jpeg") || filename.endsWith(".png") || filename.endsWith(".webp") || filename.endsWith(".gif"))
+ {
+ f.files = files;
+ document.getElementById('filename-show-edit-' + id).textContent = filename;
+ }
+ }
+}
+
+function poll_vote(cid, parentid) {
+ for(let el of document.getElementsByClassName('presult-'+parentid)) {
+ el.classList.remove('d-none');
+ }
+ for(let el of document.getElementsByClassName('presult')) {
+ el.classList.remove('d-none');
+ }
+ var type = document.getElementById(cid).checked;
+ var scoretext = document.getElementById('poll-' + cid);
+ var score = Number(scoretext.textContent);
+ if (type == true) scoretext.textContent = score + 1;
+ else scoretext.textContent = score - 1;
+ post('/vote/poll/' + cid + '?vote=' + type);
+}
diff --git a/files/assets/CHRISTMAS/js/critters.js b/files/assets/CHRISTMAS/js/critters.js
new file mode 100644
index 000000000..6a773f778
--- /dev/null
+++ b/files/assets/CHRISTMAS/js/critters.js
@@ -0,0 +1,33 @@
+var BugDispatch={options:{minDelay:500,maxDelay:1E4,minBugs:2,maxBugs:20,minSpeed:5,maxSpeed:10,maxLargeTurnDeg:150,maxSmallTurnDeg:10,maxWiggleDeg:5,imageSprite:"fireflies.webp",bugWidth:13,bugHeight:14,num_frames:5,zoom:10,canFly:!0,canDie:!0,numDeathTypes:3,monitorMouseMovement:!1,eventDistanceToBug:40,minTimeBetweenMultipy:1E3,mouseOver:"random"},initialize:function(a){this.options=mergeOptions(this.options,a);this.options.minBugs>this.options.maxBugs&&(this.options.minBugs=this.options.maxBugs);
+this.modes=["multiply","nothing"];this.options.canFly&&this.modes.push("fly","flyoff");this.options.canDie&&this.modes.push("die");-1==this.modes.indexOf(this.options.mouseOver)&&(this.options.mouseOver="random");this.transform=null;this.transforms={Moz:function(a){this.bug.style.MozTransform=a},webkit:function(a){this.bug.style.webkitTransform=a},O:function(a){this.bug.style.OTransform=a},ms:function(a){this.bug.style.msTransform=a},Khtml:function(a){this.bug.style.KhtmlTransform=a},w3c:function(a){this.bug.style.transform=
+a}};if("transform"in document.documentElement.style)this.transform=this.transforms.w3c;else{var b=["Moz","webkit","O","ms","Khtml"],c=0;for(c=0;cb?d=b:dc||(200=--this.toggle_stationary_counter&&this.toggleStationary(),this.stationary))){if(0>=--this.edge_test_counter&&this.bug_near_window_edge()&&(this.angle_deg%=360,0>this.angle_deg&&(this.angle_deg+=360),15=--this.large_turn_counter&&(this.large_turn_angle_deg=this.random(1,this.options.maxLargeTurnDeg,!0),this.next_large_turn());if(0>=--this.small_turn_counter)this.angle_deg+=this.random(1,this.options.maxSmallTurnDeg),this.next_small_turn();else{a=this.random(1,this.options.maxWiggleDeg,!0);if(0a||0>this.large_turn_angle_deg&&0=this.options.num_frames&&(this.walkIndex=0)},fly:function(a){var b=this.bug.top,c=this.bug.left,d=c-a.left,e=b-a.top,f=Math.atan(e/d);50>Math.abs(d)+Math.abs(e)&&(this.bug.style.backgroundPosition=-2*this.options.bugWidth+
+"px -"+2*this.options.bugHeight+"px");30>Math.abs(d)+Math.abs(e)&&(this.bug.style.backgroundPosition=-1*this.options.bugWidth+"px -"+2*this.options.bugHeight+"px");if(10>Math.abs(d)+Math.abs(e))this.bug.style.backgroundPosition="0 0",this.stop(),this.go();else{var g=Math.cos(f)*this.options.flySpeed;f=Math.sin(f)*this.options.flySpeed;if(c>a.left&&0a.left&&0>g)g*=-1,Math.abs(d)f||b>a.top&&0a&&(a=0);0===a?(a=-2*this.options.bugHeight,b*=Math.random()):1===a?(a=Math.random()*c,b+=2*this.options.bugWidth):
+2===a?(a=c+2*this.options.bugHeight,b*=Math.random()):(a=Math.random()*c,b=-3*this.options.bugWidth);this.bug.style.backgroundPosition=-3*this.options.bugWidth+"px "+(this.wingsOpen?"0":"-"+this.options.bugHeight+"px");this.bug.top=a;this.bug.left=b;this.drawBug();a={};a.top=this.random(this.options.edge_resistance,document.documentElement.clientHeight-this.options.edge_resistance);a.left=this.random(this.options.edge_resistance,document.documentElement.clientWidth-this.options.edge_resistance);this.startFlying(a)}},
+walkIn:function(){this.bug||this.makeBug();if(this.bug){this.stop();var a=Math.round(4*Math.random()-.5),b=document,c=b.documentElement,d=b.getElementsByTagName("body")[0];b=window.innerWidth||c.clientWidth||d.clientWidth;c=window.innerHeight||c.clientHeight||d.clientHeight;3a&&(a=0);0===a?(a=-1.3*this.options.bugHeight,b*=Math.random()):1===a?(a=Math.random()*c,b+=.3*this.options.bugWidth):2===a?(a=c+.3*this.options.bugHeight,b*=Math.random()):(a=Math.random()*c,b=-1.3*this.options.bugWidth);
+this.bug.style.backgroundPosition=-3*this.options.bugWidth+"px "+(this.wingsOpen?"0":"-"+this.options.bugHeight+"px");this.bug.top=a;this.bug.left=b;this.drawBug();this.go()}},flyOff:function(){this.stop();var a=this.random(0,3),b={},c=document,d=c.documentElement,e=c.getElementsByTagName("body")[0];c=window.innerWidth||d.clientWidth||e.clientWidth;d=window.innerHeight||d.clientHeight||e.clientHeight;0===a?(b.top=-200,b.left=Math.random()*c):1===a?(b.top=Math.random()*d,b.left=c+200):2===a?(b.top=
+d+200,b.left=Math.random()*c):(b.top=Math.random()*d,b.left=-200);this.startFlying(b)},die:function(){this.stop();var a=this.random(0,this.options.numDeathTypes-1);this.alive=!1;this.drop(a)},drop:function(a){var b=this.bug.top,c=document,d=c.documentElement;c=c.getElementsByTagName("body")[0];var e=window.innerHeight||d.clientHeight||c.clientHeight;e-=this.options.bugHeight;var f=this.random(0,20,!0);Date.now();var g=this;this.bug.classList.add("bug-dead");this.dropTimer=requestAnimFrame(function(c){g._lastTimestamp=
+c;g.dropping(c,b,e,f,a)})},dropping:function(a,b,c,d,e){a-=this._lastTimestamp;var f=b+.002*a*a,g=this;f>=c?(f=c,clearTimeout(this.dropTimer),this.angle_deg=0,this.angle_rad=this.deg2rad(this.angle_deg),this.transform("rotate("+(90-this.angle_deg)+"deg) scale("+this.zoom+")"),this.bug.style.top=null,this.bug.style.bottom=Math.ceil((this.options.bugWidth*this.zoom-this.options.bugHeight*this.zoom)/2-this.options.bugHeight/2*(1-this.zoom))+"px",this.bug.style.left=this.bug.left+"px",this.bug.style.backgroundPosition=
+"-"+2*e*this.options.bugWidth+"px 100%",this.twitch(e)):(this.dropTimer=requestAnimFrame(function(a){g.dropping(a,b,c,d,e)}),20>a||(this.angle_deg=(this.angle_deg+d)%360,this.angle_rad=this.deg2rad(this.angle_deg),this.moveBug(this.bug.left,f,this.angle_deg)))},twitch:function(a,b){b||(b=0);var c=this;if(0===a||1===a)c.twitchTimer=setTimeout(function(){c.bug.style.backgroundPosition="-"+(2*a+b%2)*c.options.bugWidth+"px 100%";c.twitchTimer=setTimeout(function(){b++;c.bug.style.backgroundPosition="-"+
+(2*a+b%2)*c.options.bugWidth+"px 100%";c.twitch(a,++b)},c.random(300,800))},this.random(1E3,1E4))},rad2deg:function(a){return a*this.rad2deg_k},deg2rad:function(a){return a*this.deg2rad_k},random:function(a,b,c){if(a==b)return a;a=Math.round(a-.5+Math.random()*(b-a+1));return c?.5document.documentElement.clientHeight-this.options.edge_resistance&&(this.near_edge|=this.NEAR_BOTTOM_EDGE);this.bug.leftdocument.documentElement.clientWidth-this.options.edge_resistance&&(this.near_edge|=this.NEAR_RIGHT_EDGE);return this.near_edge},getPos:function(){return this.inserted&&
+this.bug&&this.bug.style?{top:parseInt(this.bug.top,10),left:parseInt(this.bug.left,10)}:null}},SpawnBug=function(){var a={},b;for(b in Bug)Bug.hasOwnProperty(b)&&(a[b]=Bug[b]);return a},mergeOptions=function(a,b,c){"undefined"==typeof c&&(c=!0);a=c?cloneOf(a):a;for(var d in b)b.hasOwnProperty(d)&&(a[d]=b[d]);return a},cloneOf=function(a){if(null==a||"object"!=typeof a)return a;var b=a.constructor(),c;for(c in a)a.hasOwnProperty(c)&&(b[c]=cloneOf(a[c]));return b};
+window.requestAnimFrame=function(){return window.requestAnimationFrame||window.webkitRequestAnimationFrame||window.mozRequestAnimationFrame||window.oRequestAnimationFrame||window.msRequestAnimationFrame||function(a,b){window.setTimeout(a,1E3/60)}}();
\ No newline at end of file
diff --git a/files/assets/CHRISTMAS/js/default.js b/files/assets/CHRISTMAS/js/default.js
new file mode 100644
index 000000000..f9cd33ef1
--- /dev/null
+++ b/files/assets/CHRISTMAS/js/default.js
@@ -0,0 +1,147 @@
+function formkey() {
+ return document.getElementById("formkey").innerHTML;
+}
+
+function makeBold(form) {
+ var text = document.getElementById(form);
+ var startIndex = text.selectionStart,
+ endIndex = text.selectionEnd;
+ var selectedText = text.value.substring(startIndex, endIndex);
+
+ var format = '**'
+
+ if (selectedText.includes('**')) {
+ text.value = selectedText.replace(/\*/g, '');
+ }
+ else if (selectedText.length == 0) {
+ text.value = text.value.substring(0, startIndex) + selectedText + text.value.substring(endIndex);
+ }
+ else {
+ text.value = text.value.substring(0, startIndex) + format + selectedText + format + text.value.substring(endIndex);
+ }
+}
+
+function makeItalics(form) {
+ var text = document.getElementById(form);
+ var startIndex = text.selectionStart,
+ endIndex = text.selectionEnd;
+ var selectedText = text.value.substring(startIndex, endIndex);
+
+ var format = '*'
+
+ if (selectedText.includes('*')) {
+ text.value = selectedText.replace(/\*/g, '');
+ }
+ else if (selectedText.length == 0) {
+ text.value = text.value.substring(0, startIndex) + selectedText + text.value.substring(endIndex);
+ }
+ else {
+ text.value = text.value.substring(0, startIndex) + format + selectedText + format + text.value.substring(endIndex);
+ }
+}
+
+makeQuote = function (form) {
+ var text = document.getElementById(form);
+ var startIndex = text.selectionStart,
+ endIndex = text.selectionEnd;
+ var selectedText = text.value.substring(startIndex, endIndex);
+
+ var format = '>'
+
+ if (selectedText.includes('>')) {
+ text.value = text.value.substring(0, startIndex) + selectedText.replace(/\>/g, '') + text.value.substring(endIndex);
+ }
+ else if (selectedText.length == 0) {
+ text.value = text.value.substring(0, startIndex) + selectedText + text.value.substring(endIndex);
+ }
+ else {
+ text.value = text.value.substring(0, startIndex) + format + selectedText + text.value.substring(endIndex);
+ }
+}
+
+function autoExpand (field) {
+
+ xpos=window.scrollX;
+ ypos=window.scrollY;
+
+ field.style.height = 'inherit';
+
+ var computed = window.getComputedStyle(field);
+
+ var height = parseInt(computed.getPropertyValue('border-top-width'), 10)
+ + parseInt(computed.getPropertyValue('padding-top'), 10)
+ + field.scrollHeight
+ + parseInt(computed.getPropertyValue('padding-bottom'), 10)
+ + parseInt(computed.getPropertyValue('border-bottom-width'), 10)
+ + 32;
+
+ field.style.height = height + 'px';
+
+ window.scrollTo(xpos,ypos);
+
+};
+
+
+document.addEventListener('input', function (event) {
+ if (event.target.tagName.toLowerCase() !== 'textarea') return;
+ autoExpand(event.target);
+}, false);
+
+function post_toast2(url, button1, button2) {
+ var xhr = new XMLHttpRequest();
+ xhr.open("POST", url, true);
+ var form = new FormData()
+ form.append("formkey", formkey());
+
+ if(typeof data === 'object' && data !== null) {
+ for(let k of Object.keys(data)) {
+ form.append(k, data[k]);
+ }
+ }
+
+
+ form.append("formkey", formkey());
+ xhr.withCredentials=true;
+
+ xhr.onload = function() {
+ if (xhr.status >= 200 && xhr.status < 300) {
+ try {
+ document.getElementById('toast-post-success-text').innerText = JSON.parse(xhr.response)["message"];
+ } catch(e) {
+ document.getElementById('toast-post-success-text').innerText = "Action successful!";
+ }
+ var myToast = new bootstrap.Toast(document.getElementById('toast-post-success'));
+ myToast.show();
+ return true
+
+ } else if (xhr.status >= 300 && xhr.status < 400) {
+ window.location.href = JSON.parse(xhr.response)["redirect"]
+ } else {
+ try {
+ data=JSON.parse(xhr.response);
+
+ var myToast = new bootstrap.Toast(document.getElementById('toast-post-error'));
+ myToast.show();
+ document.getElementById('toast-post-error-text').innerText = data["error"];
+ return false
+ } catch(e) {
+ var myToast = new bootstrap.Toast(document.getElementById('toast-post-success'));
+ myToast.hide();
+ var myToast = new bootstrap.Toast(document.getElementById('toast-post-error'));
+ myToast.show();
+ return false
+ }
+ }
+ };
+
+ xhr.send(form);
+
+ document.getElementById(button1).classList.toggle("hidden");
+ document.getElementById(button2).classList.toggle("hidden");
+}
+
+function expandDesktopImage(image) {
+ document.getElementById("desktop-expanded-image").src = image.replace("200w_d.webp", "giphy.webp");
+ document.getElementById("desktop-expanded-image-link").href = image;
+ document.getElementById("desktop-expanded-image-wrap-link").href=image;
+};
\ No newline at end of file
diff --git a/files/assets/CHRISTMAS/js/delete_post_modal.js b/files/assets/CHRISTMAS/js/delete_post_modal.js
new file mode 100644
index 000000000..244ce894f
--- /dev/null
+++ b/files/assets/CHRISTMAS/js/delete_post_modal.js
@@ -0,0 +1,22 @@
+function delete_postModal(id) {
+
+ function delete_post(){
+
+ this.innerHTML='Deleting post';
+ this.disabled = true;
+
+ var url = '/delete_post/' + id
+ var xhr = new XMLHttpRequest();
+ xhr.open("POST", url, true);
+ var form = new FormData()
+ form.append("formkey", formkey());
+ xhr.withCredentials=true;
+ xhr.onload = function() {location.reload(true);};
+ xhr.send(form);
+ }
+
+ document.getElementById("deletePostButton-mobile").onclick = delete_post;
+
+ document.getElementById("deletePostButton").onclick = delete_post;
+
+};
\ No newline at end of file
diff --git a/files/assets/CHRISTMAS/js/emoji_modal.js b/files/assets/CHRISTMAS/js/emoji_modal.js
new file mode 100644
index 000000000..02030176c
--- /dev/null
+++ b/files/assets/CHRISTMAS/js/emoji_modal.js
@@ -0,0 +1,934 @@
+var commentFormID;
+
+function commentForm(form) {
+ commentFormID = form;
+};
+
+const TEXTAREA_POS_ATTR = 'data-curr-pos'
+const EMOJI_BOX_ID = 'EMOJIS_favorite'
+const EMOJI_FORM_DESTINATION_ATTR = 'data-form-destination'
+const EMOJIS_STRINGS = [
+ {
+ type:'marsey',
+ emojis: {
+ marseylaugh: 'lmao reaction point funny haha lol judgment',
+ marseyblowkiss: 'heart wink reaction muah loving mwah love',
+ marseyshook: 'reaction surprised shocked gasp astonished',
+ marseythumbsup: 'cool good job good one agree reaction nice work yes great job',
+ marseylove: 'heart reaction adoration loving adore',
+ marseyjamming: 'mp3 headphones beat ipod music happy',
+ marseyready: 'concerned worried waiting prepared reaction',
+ marseyscarf: 'winter chilly cold ill sick brr flu',
+ marseymad: 'pissed annoyed furious reaction angry irritated livid',
+ marseycry: 'tear upset crying reaction sobbing sob tears sad',
+ marseyinabox: 'hiding hide box cardboard happy cute',
+ marseysad: 'annoyed staring reaction disappointed stare uh huh bored',
+ marseyexcited: 'eager ready hype amped reaction excitement happy thrilled',
+ marseysleep: 'bed bedtime zzz boring reaction tired bored',
+ marseyangel: 'reaction angelic happy innocent',
+ marseydead: 'murdered dead killed reaction victim die rip',
+ marseyparty: 'excite excitement celebrate happy celebrating',
+ marseyrain: 'cloud upset reaction disappointed storm depressed sad',
+ marseyagree: 'concur nodding nod reaction affirmative yes yeah uh huh animated judgment',
+ marseydisagree: 'nah uh nod nuh uh reaction wrong no way no negative animated judgment',
+ marseyjam: 'animated bopping excited trippy excitement tejanx dancing rainbow rave happy dance',
+ marseygasp: 'wow woah what how why whoa reaction appalled',
+ marseytwerking: 'tailspin animated butt backside dancing spin booty ass dance',
+ marseysipping: 'drinking root drink reaction stare thirsty purple drank juice bored',
+ marseyshrug: 'hands up idk ig idc dunno i guess',
+ marseyglow: 'fbi mossad cop feds animated glownigger glowie secret service fed atf police cia nsa kgb',
+ marseycope: 'dilate mask seethe copium reaction',
+ marseyseethe: 'dilate mask crying seething smug cope',
+ marseymerchant: 'arran kike hebrew shopkeeper yid banker jew moneylender jewish greedy israel',
+ marseyno: 'denied refuse rejection reaction ugh deny hand',
+ marseywalking: 'stroll walk strut gallivant animated',
+ marseyhearts: 'reaction flirt loving adoration love happy cute crush',
+ marseybegging: 'pls plz pleading reaction tears in eyes animated',
+ marseytrans: 'pitty transgender pitbull dog pibble transsexual',
+ marseygigaretard: 'idiot neurodivergent dumb stupid drooling moron puddle',
+ marseysneed: 'feed farmer reaction chuck simpsons',
+ marseybaited: 'laser pointer trolled gullible reaction animated',
+ marseyeyeroll: 'rolleyes rolling eyes mock animated reaction roll eyes duh',
+ marseydepressed: 'smoke kms doomer cigarette despair reaction depression suicide suicidal smoking hopeless sad',
+ marseypat: 'petting reaction animated cute patting',
+ marseyking: 'based queen prince reaction crown princess',
+ marseylong1: 'top meme',
+ marseylong2: 'middle meme',
+ marseylong3: 'bottom meme',
+
+ marsey40k: 'warhammer 40k 40000 space space marine marine ultramarine smurf',
+ marseyangel2: 'angelic horn trumpet halo wings',
+ marseyblack: 'basketball black african american bipoc coon fade jersey sports kang gang jogger',
+ marseybongo: 'bongo drums music meme jam',
+ marseybongosnoo: 'bongo drums music meme jam reddit snoo',
+ marseybongosrdine: 'bongo drums music meme jam srdine',
+ marseychonker2: 'fat obese pig disgusting fatty fattie',
+ marseyski: 'skier skiing sking winter snow',
+ marseychristmasbulb2: 'ornament holiday christmas',
+ marseychristmaself2: 'elf santa northpole north pole christmas holiday',
+ marseychristmasgift: 'present christmas box unwrapping holiday',
+ marseychristmaslove: 'christmas holiday present gift present love hearts affection',
+ marseychristmasparty: 'christmas holiday celebrate party wooo',
+ marseychristmasscarf: 'christmas holiday candy cane cold winter candycane',
+ marseydiehard: 'die hard christmas holiday terrorist gun bruce willis',
+ marseydoubtit: 'dumpster defender redneck boomer shooting doubt it cocksucker',
+ marseyextinction: 'extinction button women misogyny mayocide kazakhstan',
+ marseyfatherjoseph: 'christian christmas jesus immaculate god father joseph xmas pray',
+ marseyfuckyou: 'middlefinger middle finger flipping off fuck you nigga',
+ marseygangbang: 'blacked sex orgy',
+ marseygingerbread: 'cookie christmas holiday',
+ marseygingerbread2: 'cookie christmas holiday',
+ marseygingerbread3: 'cookie christmas holiday',
+ marseygold: 'gold award reddit',
+ marseyhotep: 'party meme parrot vibing jam dance',
+ marseyicecream: 'ice cream sad disappoint pout cry.',
+ marseyimmaculate: 'christian christmas jesus immaculate god mother mary xmas pray',
+ marseyimpossibru: 'revulsion gross yuck yikes mad icky impossible disgusted disgusting',
+ marseykamikaze: 'kamikaze japanese nip pilot ww2 wwii world war',
+ marseykkkblm: 'ku klux klan racist nigger jogger coon jiggaboo cracker crackkka',
+ marseyklenny: 'klenvastergan jenna thorne grunderchin vidunderchin clapping applause animated',
+ marseykrampus2: 'demon monster christmas',
+ marseykys2: 'keep yourself safe',
+ marseylois: 'familyguy familyman family guy family man peter griffin',
+ marseymerchantelf: 'jew christmas elf santa greedy money chosen worker holiday xmas seth rogen sarah silverman holocaust coin kike',
+ marseymothermary: 'christian christmas jesus immaculate god mother mary xmas pray',
+ marseynutcracker: 'soldier halberd pike christmas holiday',
+ marseyobama: 'obama president black drone reaper predator',
+ marseyoctopus2: 'consume product epic win communities no bait too obvious globe patch',
+ marseyoctopus3: 'consume product epic win communities no bait too obvious globe patch',
+ marseypartymaxx: 'party meme parrot vibing jam dance',
+ marseypartyxmas: 'christmas holiday santa hat beard rainbow animated',
+ marseypartyzoom: 'party meme parrot vibing jam dance',
+ marseypin: 'pinned sticky',
+ marseyplaying: 'fish playful mischief srdine animated',
+ marseyplaying2: 'fish playful mischief srdine animated',
+ marseyplugged: 'electric technology gif animated plug',
+ marseyponder: 'ponder orb wizard magician crystal ball',
+ marseypredator: 'predator drone obama wedding military',
+ marseyraccoon: 'trashpanda trash panda',
+ marseyrake: 'canada canadian day of the rake leaf leaves fall autumn genocide',
+ marseyreindeer3: 'rudolf Dasher Dancer Prancer Vixen Comet Cupid Donner Blitzen santa sleigh sled christmas winter holiday',
+ marseyreindeer4: 'rudolf Dasher Dancer Prancer Vixen Comet Cupid Donner Blitzen santa sleigh sled christmas winter holiday',
+ marseysanta3: 'claus christmas presents gifts holiday',
+ marseysexy: 'ned flanders stupid sexy flanders skiier skiing winter simpsons',
+ marseyshutitdown: 'cop glownigger fed glowie agent federal mossad israel idf the goyim know kikes radio walkie talkie',
+ marseysnow: 'snowman snowmarsey cold winter christmas holiday',
+ marseysnowman: 'christmas cold snow winter',
+ marseysnowman2: 'christmas cold snow winter',
+ marseytransflag: 'trans flag then consumeproduct',
+ marseyvirus: 'phage infect infection plagued',
+ marseywholesome:'seal award reddit tene',
+ chudsey: '4chan virgin pol rightoid',
+ firecat: 'firefox browser marsey',
+ karlmarxey: 'marxist communist history communism socialism',
+ marcerberus: 'threeheadeddog horror halloween holiday greek three headed dog monster',
+ marchipmunk: 'rodent squirrel wuzizname',
+ marchipmunklove: 'chipmonk adoration loving rodent heart eyes adore acorn',
+ marcusfootball: 'sport handegg hand egg athlete helmet',
+ marfield: 'mondays garfield lasagna',
+ marje: 'juicebox juice box madje marsey',
+ marlion: 'animated flippers wave fins waving mermaid',
+ marmsey: 'rodent happy marmot',
+ marppy: 'cyborg sentient snapshillbot android snappy robot',
+ marscientist: 'beaker goggles glass crazy chemicals science',
+ marsey173: 'horror spooky halloween spc holiday',
+ marsey1984: 'orwell book ingsoc big brother fascist',
+ marsey300: 'leonidas shield armor thermopylae spear greek spartan',
+ marsey420: 'marijuana weed dude weed lmao ganja drugs pot reggae joint jamaican',
+ marsey4chan: 'neckbeard anonymous loser hacker',
+ marsey666: 'wings hell halloween demon satan holiday devil animated',
+ marsey666black: 'wings hell halloween demon satan holiday devil animated',
+ marsey69: '6ix9ine snitch tattooed tattoos rapper',
+ marseyairquotes: 'reaction patronizing animated uh huh',
+ marseyakshually: 'contrarian false disagree meme neckbeard nerd wrong correction actually weeb',
+ marseyakumu: 'simp love loving weebshit',
+ marseyalien: 'green man martian scepter',
+ marseyamazon: 'warehouse piss bottle driver wagecuck piss jug pissbottle pissjug wagie',
+ marseyandmarcus: 'bed sleeping cuddling cuddle marseyismywaifu',
+ marseyanime: 'sayian weeb',
+ marseyannoyed: 'pissed irritation reaction annoyance angry mad irritated stfu grr',
+ marseyanticarp: 'reaction fish carpathianflorist',
+ marseyantiwork: 'lazy laze bum unemployed animated',
+ marseyaoc: 'latina latino hispanic cortez mexican puerto rican ocasio congress alexandria',
+ marseyargentina: 'south america argentinian sudamericano',
+ marseyarmy: 'soldiers o7 salute saluting',
+ marseyascii: 'blurry',
+ marseyascii2: 'oldschool',
+ marseyasian: 'chinese china srdine sardine',
+ marseyatsume: 'kitten kitty weebshit',
+ marseyauthleft: 'marxist ussr marxism ccp communist khmer rouge leftoid communism juche',
+ marseyauthright: 'rightoid national socialism ss national socialist nazi wehrmacht hitler fascist',
+ marseyautism: 'retarded neurodivergent hat sped aspergers',
+ marseyaward: 'medal good job good work retard reaction great job great work nice',
+ marseyayy: 'wop tone guido wooden doors sopranos greaser dego',
+ marseybaby: 'pacifier bb little',
+ marseybackstab: 'betrayal kill knife caesar assassinate betrayer murder',
+ marseybadger: 'animal marmot',
+ marseybadluck: 'unlucky black cat poc nigger blackcat',
+ marseybait: 'trolled baited trolling redditor',
+ marseyballerina: 'dress ballet tutu dancer dancing',
+ marseyban: 'jannie janitor banhammer moderator banned',
+ marseybane: 'soy mask batman capeshit',
+ marseybaphomet: 'halloween demon satan holiday evil devil',
+ marseybased: 'basado king chiobu redpilled reaction animated',
+ marseybateman: 'bret easton ellis serial halloween patrick american psycho killer holiday blood murderer',
+ marseybath: 'shower tub rubber duck',
+ marseybattered: 'blackeye domestic violence black eye marseyismywaifu beaten bruised housewife',
+ marseybear: 'brian gabby murderer brianna',
+ marseybear2: 'ursine bear fursona skin animal costume furry fursuit',
+ marseybeggar: 'poor busking panhandler gofundme busker',
+ marseyben10: 'ten anime cartoon lawlz',
+ marseybiden: 'ddd dementia daddy president sleepy joe',
+ marseybigbrain: 'high iq highiq smart genius',
+ marseybigdog: 'bussy big dog poster',
+ marseybiker: 'motorcycle harley bicycle helmet',
+ marseybingus: 'floppa shaved hairless',
+ marseybinladen: 'turban al qaeda terrorist islam beard osama martyr muslim',
+ marseybiting: 'reaction datass lip bite dat ass',
+ marseyblackface: 'moon cricket jogger nigger racism coon racist minstrelsy jigaboo',
+ marseyblackfacexmas: 'uncle tom moon cricket christmas santa beard nigger racist claus coon',
+ marseyblm: 'social justice black lives matter sjw',
+ marseyblueanime: 'cirno touhou weebshit',
+ marseybluecheck: 'journoid checkmark verified journalist drolling drool twitter',
+ marseyblush: 'shy flirting reaction blushing happy cute embarrassed',
+ marseybog: 'rich brothers bogdanoff',
+ marseybong: 'england walkers britain english chips british bad teeth crisps',
+ marseybooba: 'awooga tits titties boobs eyes animated tiddies',
+ marseyboomer: 'sipping shades sunglasses old yup vape',
+ marseybountyhunter: 'abortion leather vest cowboy gunslinger texas revolver',
+ marseybowl: 'marijuana weed dude weed lmao ganja drugs reaction pot pipe',
+ marseybrainlet: 'idiot imbecile smoothbrain crushed head retard caved in head sped dumb stupid drooling moron',
+ marseybrap: 'brap sniff smell huff gas fart animated',
+ marseybrave: 'bat browser',
+ marseybrianna: 'trans bear laundrie gabby',
+ marseybrianna2: 'trans bear laundrie gabby',
+ marseybride: 'dress tiara married wedding veil marseyismywaifu marriage',
+ marseybruh: 'bruhfunny funny or ban',
+ marseybuff: 'ripped muscular 6pack swole 6 pack sixpack abs six pack muscles',
+ marseybug: 'beetle glitch error insect roach',
+ marseybug2: 'glitch code error',
+ marseybunny: 'furonsa bunny usagi skin animal costume furry fursuit',
+ marseyburger: 'burgerstan hamburger cheeseburger mutt american',
+ marseybush: 'genocide president mission accomplished victory george bush we did it',
+ marseybux: 'money paypig currency dollar bill primo premium dollarbill cash',
+ marseybye: 'farewell cya l8r wave reaction waving animated so long',
+ marseybyeceps: 'crying kyle gaige grosskreutz rioter sad',
+ marseycalarts: 'excited eager happy thrilled',
+ marseycamus: 'philosophy history',
+ marseycanned: 'srdine sleeping tin fish sardine',
+ marseycapitalistmanlet: 'money top hat rich landlord cigar llm tophat',
+ marseycapy: 'capybara rodent aevann happy cute',
+ marseycapypat: 'petting capybara aevann animated patting',
+ marseycapywalking: 'capybara animated aevann',
+ marseycarp: 'beard mohawk reaction carpathianflorist monster',
+ marseycarp2: 'harm cutting selfharm cutter reaction carpathianflorist self animated',
+ marseycarp3: 'reaction fish carpathianflorist catfish',
+ marseycarpcrying: 'tear reaction carpathianflorist fish sob tears sad',
+ marseycarppat: 'petting carpathianflorist fish animated patting',
+ marseycat: 'fursona skin animal costume furry neko fursuit cat',
+ marseycatgirl: 'uwu waifu anime fursona furry owo weebshit fursuit',
+ marseycatgirl2: 'anime weebsit',
+ marseycatgirl3: 'anthro anime weebshit',
+ marseycatgirljanny: 'anime maid weebshit',
+ marseyceiling: 'spy masturbate watching peeping',
+ marseycensored: '1984 memory hole censorship repressed',
+ marseycenter: 'reaction grilling boomer centrist',
+ marseychad: 'canthal tilt jaw hunter eyes',
+ marseycheeky: 'stick tongue brat reaction taunt na tongue out tease',
+ marseycheerup: 'pat animated depressed comforting grieving reaction depression there there console comfort pet',
+ marseycheesehead: 'packers greenbay green bay football',
+ marseychef: 'mustache cooking',
+ marseycherokee: 'savage pocahontas elizabeth warren injun indian redskin liz warren',
+ marseychonker: 'brap rolls fat obese reaction fds heifer',
+ marseychristmas: 'candy cane santa christmas holiday',
+ marseychristmasbulb: 'ornament christmas happy holiday',
+ marseychristmaself: 'christmas xmas santa holiday happy worker',
+ marseychristmastree: 'christmas retard special holiday',
+ marseychucky: 'doll halloween kill stab knife holiday possessed monster',
+ marseychungus: 'bugs bunny meme fat chonker big',
+ marseyclapping: 'good job animated good work reaction great job well done applaud applause great work nice celebrate approve judgment',
+ marseycleonpeterson: 'wtf scary art',
+ marseyclown: 'makeup joker',
+ marseyclown2: 'joker',
+ marseyclown3: 'unicycle animated',
+ marseycoal: 'christmas naughty santa cigarette present gift holiday doom',
+ marseycoin: 'dramacoin money dc spinning rich payment gold dinero animated dollars',
+ marseycolossal: 'halloween skin holiday scary mouths',
+ marseycommitted: 'psycho crazy insane straitjacket asylum reaction loony bin straightjacket',
+ marseycomrade: 'marxist ussr ccp communist authleft communism juche soviet kgb',
+ marseycomradehandshake: 'ussr russia communist shaking hand communism soviet',
+ marseyconfused: 'questionmark reaction question mark idgi confusion',
+ marseycontemplate: 'reaction consternation thinking hmm',
+ marseycool: 'finger gun shades sunglasses reaction judgment',
+ marseycool2: 'cigarette hip shades sunglasses jacket smoking',
+ marseycoomer: 'masturbation goon cumbrain porn masturbate',
+ marseycoonass: 'student lsu university louisana state',
+ marseycop: 'acab thin blue line chauvin police officer',
+ marseycopeseethedilate: 'dilate seethe coping seething reaction angry mad dilating cope malding',
+ marseycorn: 'iowa vegetable',
+ marseycountryclub: 'golfer elite rich golfing cc elitist preppy',
+ marseycow: 'cow fursona skin animal costume furry heifer fursuit',
+ marseycowboy: 'western pardner reaction hat tootin yeehaw rootin',
+ marseycreepy: 'pervert pedophile weird reaction chomo creeper sketchy molester',
+ marseycrucified: 'jesus jesus christ crucifix cross christian',
+ marseycrusader: 'knight deusvult templar crusades catholic',
+ marseycrying: 'tear cried despair weeping reaction depression sob tears sadness depressed animated sad',
+ marseycthulhu: 'horror halloween lovecraftian holiday eldritch evil scary monster',
+ marseycuck: 'soyboy funko redditor neckbeard loser',
+ marseycumjar1: 'semen jizz sperm spunk bukkake',
+ marseycumjar2: 'semen jizz sperm spunk bukkake',
+ marseycumjar3: 'semen jizz sperm spunk bukkake',
+ marseycut: 'cutting selfharm emo self harm cutter reaction depressed',
+ marseycwc: 'sonichu chan chris chan chandler sweater chrischan medallion striped chris',
+ marseydab: 'reaction haters',
+ marseydaemon: 'pitchfork hell halloween demon satan devil scary holiday',
+ marseydarwin: 'history darwinian euphoric atheist charles',
+ marseydawnbreaker: 'gamer video game warhammer',
+ marseydeadhorse: 'drowned pony drowning',
+ marseydeadinside: 'reaction depression suicide dark suicidal depressed shadow sad',
+ marseydealwithit: 'cool shades sunglasses reaction animated',
+ marseyderp: 'hehe teehee troll animated durr giggle',
+ marseydespair: 'doomer reaction depression horrified suicidal depressed judgment',
+ marseydetective: 'holmes sherlock magnifying glass bowtie',
+ marseydeux: 'frenchman deuxrama baguette frog frenchie',
+ marseydeuxfoid: 'deuxrama asian azn hardislife hil',
+ marseydevil: 'pitchfork daemon hell halloween demon mischievous satan holiday heck evil',
+ marseydicklet: 'babydick penis micro dick reaction laugh point and laugh micropenis judgment',
+ marseydildo: 'horse',
+ marseydio: 'diogenesjr diogenesjunior meme cat',
+ marseydisabled: 'retarded handicapable handicapped wheelchair crippled',
+ marseydisgust: 'pissed gross eww angry mad disturbing disturbed yuck',
+ marseyditzy: 'pokemon',
+ marseydizzy: 'puke nausea spinning vomit reaction nauseous sick rolling barf animated',
+ marseydog: 'puppy doggo fursona skin animal costume dog furry fursuit',
+ marseydolphin: 'ocean goggles rainbow',
+ marseydoomer: 'cigarette smoker despair depression alcoholic suicidal smoking depressing',
+ marseydoubt: 'suspicious sussy reaction sarcastic sarcasm',
+ marseydracula: 'halloween fangs cape holiday vampire',
+ marseydragon: 'smaug rich hoard gold treasure',
+ marseydrama: 'agendapost where drama seriouspost drama where',
+ marseydream: 'spirals trippy swirls rainbow',
+ marseydrone: 'obama rotors',
+ marseydrunk: 'drinking shitfaced alcoholic liquor happy beer',
+ marseyduck: 'bird beak',
+ marseyduck2: 'onesie',
+ marseydynamite: 'dynomite black afro gun',
+ marseyegg_irl: 'troomer tranny transgender lgbt groomer troid transsexual',
+ marseyeldritch: 'lovecraft horror halloween tentacles holiday scary monster',
+ marseyeldritch2: 'horror halloween lovecraftian holiday scary',
+ marseyelephant: 'oliphant dumbo',
+ marseyemo: 'girl goth scene',
+ marseyemperor: 'gold',
+ marseyespeon: 'trick or treat pokemon halloween eevee costume holiday',
+ marseyespeonheadpat: 'trick or treat pokemon petting halloween eevee reaction costume holiday animated patting',
+ marseyface: 'mask psycho face horror halloween kill killer stab knife holiday evil murder scary murderer',
+ marseyfacepalm: 'reaction omfg judgment',
+ marseyfamily: 'family guy family man peter griffin griffin peter',
+ marseyfans: 'of thot taxpayer slut onlyfans whore',
+ marseyfattie: 'brap fatass chonker pig lorg',
+ marseyfbi: 'cop glownigger fed glowie agent federal',
+ marseyfeelsgood: 'meme frog feels good man pepe feelsgoodman happy',
+ marseyfeet: 'foot frozenchosen fetish',
+ marseyfellowkids: 'groomer adult buscemi skateboard',
+ marseyfeminist: 'misandry fds scrotes moids',
+ marseyfeynman: 'history',
+ marseyfine: 'this is fine meme thisisfine burning fire',
+ marseyfinger: 'flipping middle finger bird reaction flicking judgment',
+ marseyflamethrower: 'vietname soldier fire',
+ marseyflamewar: 'troll fight fire reaction gasoline',
+ marseyflareon: 'trick or treat pokemon halloween eevee costume holiday',
+ marseyflareonpat: 'trick or treat pokemon petting halloween eevee reaction costume holiday animated patting',
+ marseyfloyd: 'dead blm chauvin fentanyl george',
+ marseyfocault: 'philosophy history',
+ marseyfox: 'fursona furry fursuit kitsune',
+ marseyfreezepeach: '1984 censorship free speech reaction freespeech ruqqus',
+ marseyfrog: 'scaley fursona furry scalie amphibian fursuit',
+ marseyfrog2: 'scaley fursona furry scalie amphibian toad fursuit',
+ marseyfrozen: 'dead ice reaction cold frozen',
+ marseyfrozenchosen: 'blonde girl',
+ marseyfrozenpat: 'petting staring unhappy reaction stare animated patting',
+ marseyfry: 'phillip fry take my money futurama',
+ marseyfuckoffcarp: 'reaction carpathianflorist rude snappy animated robot',
+ marseyfug: 'benis mustache snallygaster meme',
+ marseyfunko: 'action figure doll funko toy soy',
+ marseyfurry: 'fursona furry fursuit kitsune',
+ marseygandalf: 'lord of the rings magic lotr mage wizard warlock',
+ marseygarfield: 'mondays lasagna',
+ marseyghost: 'spooky halloween costume holiday scary sheet',
+ marseygift: 'present christmas wrapping paper holiday',
+ marseygigachad: 'reaction hunter eyes canthal tilt jawline',
+ marseygigavaxxer: 'covid vaccine coronavirus vaccination',
+ marseygivecrown: 'king based swole reaction muscles',
+ marseygiveup: 'despair reaction depression miserable fall over depressed falling over animated sad',
+ marseyglaceon: 'trick or treat pokemon halloween eevee costume holiday',
+ marseyglaceonpat: 'trick or treat pokemon petting halloween eevee reaction costume holiday animated patting',
+ marseyglam: 'rocker pretty glamorous beautiful',
+ marseyglancing: 'eyes animated nervous paranoid',
+ marseyglow2: 'fbi mossad feds agent glownigger reaction glowie fed atf cia nsa',
+ marseyglowaward: 'medal fbi ribbon animated glownigger retard glowie fed atf cia nsa',
+ marseygodel: 'old philosophy glasses history',
+ marseygodfather: 'wop italy italian dego mafia',
+ marseygodzilla: 'raptor halloween dinosaur gojira evil bug',
+ marseygondola: 'mustache meme long legs',
+ marseygoodnight: 'kazakhstan flag reaction kazakh i hate women women',
+ marseygossip: 'tea rotary phone popcorn gabbing',
+ marseygrass: 'reaction outside touchgrass touch grass',
+ marseygrilling: 'barbecue bbq centrist boomer barbeque',
+ marseygrilling2: 'bbq boomer barbecue barbeque',
+ marseygroomer: 'pedobear discord pedophile pedo chomo molest pedocord',
+ marseygroomer2: 'molest discord chomo snoo pedo pedocord reddit',
+ marseyhacker: 'nerd matrix reaction computer animated',
+ marseyhacker2: 'dox anonymous computer',
+ marseyhandsup: 'hands up pawsup arrested arresting reaction paws up under arrest',
+ marseyhannibal: 'flesh psycho horror halloween cannibal eat holiday',
+ marseyhappening: 'ronpaul s happening it ron paul itshappening animated',
+ marseyhappy: 'pleased contented reaction contentment satisfied',
+ marseyhappytears: 'tears of joy crying',
+ marseyhead: 'blood spurting headless horror halloween animated',
+ marseyhealthy: 'burger king fat fast food crown unhealthy junk food',
+ marseyheathcliff: 'heathecliff',
+ marseyheavymetal: 'rocker musician rock guitar',
+ marseyhellraiser: 'pinhead halloween holiday evil monster',
+ marseyhillary: 'president her turn hilary hilldawg clinton',
+ marseyhippo: 'hippopotamus hippo fursona furry skin animal costume fursuit',
+ marseyhmm: 'confused reaction thinking thunk thonk judgment',
+ marseyhmmm: 'confused reaction thinking thunk thonk judgment',
+ marseyhomofascist: 'lgbt faggot ss fash nazi homocracy gay queer sodomy wholesome kiss',
+ marseyhomosupremacist: 'klan lgbt faggot kkk homocracy sodomy queer gay wholesome',
+ marseyhoodwink: 'cloak crossbow',
+ marseyhope: 'mask whitepill reaction happy hopium',
+ marseyhorseshoe: 'rightoid leftoid theory',
+ marseyhungry: 'food hunger dish feed me bowl animated',
+ marseyhypno: 'hypnosis spiral brainwash animated hypnotoad',
+ marseyilluminati: 'eye egypt pyramid big brother watching',
+ marseyimposter: 'amogus baka among us sussy',
+ marseyinshallah: 'begging muslim animated please',
+ marseyinvisible: 'stealth',
+ marseyira: 'car bomb irish ireland',
+ marseyisis: 'daesh terrorist islam muslim',
+ marseyit: 'balloon halloween pennywise clown holiday evil',
+ marseyjanny: 'jannie unpaid volunteer administrator janitor free moderator',
+ marseyjanny2: 'jannie unpaid volunteer administrator janitor free moderator',
+ marseyjapanese: 'nippon rising sun weeb japan animated',
+ marseyjason: 'hockey mask horror halloween kill fridaythe13th knife stab voorheys friday the 13th evil monster holiday',
+ marseyjeans: 'denim trousers pants',
+ marseyjesus: 'christian',
+ marseyjiangshi: 'ghost chinese halloween holiday china scary',
+ marseyjohnson: 'wig history',
+ marseyjoint: 'smoke weed marijuana reefer drugs smoking 420 pot',
+ marseyjolteon: 'trick or treat pokemon halloween eevee costume holiday',
+ marseyjolteonpat: 'trick or treat pokemon petting halloween eevee reaction costume holiday animated patting',
+ marseyjones: 'tinfoil animated alex gay frogs conspiracy',
+ marseyjourno: 'journoid media press photo camera journalist pic',
+ marseyjudge: 'objection innocent hammer guilty gavel court overruled sustained',
+ marseyjunkie: 'needles heroin reaction shooting up addicted shoot up syringe',
+ marseykaiser: 'uraniumdonger prussian history wwi rifle reich wilhelm germany soldier',
+ marseykfc: 'col sanders colonel sanders kentucky fried chicken',
+ marseykingcrown: 'based animated',
+ marseykink: 'bdsm sex kinkster dom pervert sub creeper latex fetish dildo pvc',
+ marseykitty: 'hellokitty animated hello kitty',
+ marseykiwi: 'kf bird new zealand kiwifarms dramarama newzealand',
+ marseykiwi2: 'kf bird new zealand kiwifarms dramarama newzealand',
+ marseykiwipat: 'kf petting reaction kiwifarms dramarama animated patting',
+ marseykkk: 'klan kukluxklan ku klux klan racist costume klux ku sheet',
+ marseykneel: 'blm bow black lives matter chauvin supremacy respect supreme',
+ marseykvlt: 'horgh abbath black metal krieg bullet belt immortal corpsepaint',
+ marseykween: 'hoop earring fds black shaniqua',
+ marseykweenxmas: 'blm black christmas santa bipoc nigger bame hat holiday',
+ marseykyle: 'killer konvict rifle rittenhouse kid gun kenosha kylie',
+ marseykys: 'reaction keep yourself safe kill yourself suicide',
+ marseylaptop: 'notebook macbook computer',
+ marseylawlz: 'masterlawls zhcyid9 masterlawlz reaction glasses',
+ marseyleafeon: 'trick or treat pokemon halloween eevee costume holiday',
+ marseyleafeonpat: 'trick or treat pokemon petting halloween eevee reaction costume holiday animated patting',
+ marseylibleft: 'unemployed protest riot anarcho capitalist antifa anarchist anarchy',
+ marseylibright: 'libertarian anarcho wagecuck pedophile capitalist lolbert',
+ marseylifting: 'workout muscular work out bench swole working out gains benchpress weightlifting weights muscles',
+ marseylion: 'fursona furry fursuit leo',
+ marseyliondance: 'parade ccp chinese dancer dancing asian china animated',
+ marseyliquidator: 'gas mask horror exterminator halloween plague doctor holiday scary',
+ marseylizard: 'reptilian',
+ marseyllama: 'alpaca',
+ marseyllama1: 'top',
+ marseyllama2: 'middle',
+ marseyllama3: 'bottom',
+ marseylolcow: 'reaction trolled lulz judgment',
+ marseylongpost: 'tldr reaction wall of text wordswordswords animated words',
+ marseylongpost: 'reaction judgment',
+ marseylongpost2: 'tldr reaction wall of text scrolling wordswordswords animated words judgment',
+ marseylovedrama: 'hearts rdrama reaction happy animated',
+ marseyloveyou: 'hearts ilu reaction adoration loving ily love adore animated',
+ marseylowpoly: 'polygonal spinning 3d lopoly animated',
+ marseyluther: 'heretic lutheran theses martin luther',
+ marseymalding: 'dilate seethe scrote mad moid cope',
+ marseymancer: 'dead undead horror lich halloween necromancer zombies zombie holiday evil',
+ marseymanlet: 'llm short midget dwarf little king',
+ marseymao: 'zedong ccp chinese communist communism china',
+ marseymaoist: 'marxist little red book marxism ccp chinese communist authleft maoism communism china',
+ marseymask: 'plague coronavirus covid pandemic coof sickness love heart eyes illness',
+ marseymati: 'annoyed irritation top hat reaction angry irritated tophat',
+ marseymayo: 'yt jakubian crying cracker reaction crackkka crakkka white sad tears',
+ marseymcarthur: 'nuke missile nuclear bomb history',
+ marseymeds: 'mentally ill rightoid doctor psycho crazy mental illness reaction risperidone schizo nurse',
+ marseymermaid: 'merman merfolk',
+ marseymexican: 'latina latino hispanic fiesta sombrero latinx hombre',
+ marseymini: 'annihilate minigun machine gun kill destroy murder animated',
+ marseyminimalism: 'orange minimalist square art',
+ marseyminimalism2: 'minimalist polygons polygonal art',
+ marseyminion: 'gru pixar',
+ marseymissing: 'absent low effort',
+ marseymodelo: 'cheers alcohol drinking beer',
+ marseymodelo2: 'cheers alcohol beer drinking',
+ marseymonk: 'meditate levitating pray buddhist fish asian levitate animated',
+ marseymonke: 'retvrn return',
+ marseymoose: 'moosin antlers',
+ marseymorph: 'skinwalker changeling',
+ marseymouse: 'rodent cheesed to meet you',
+ marseymugshot: 'arran prison arrested criminal jail',
+ marseymummy: 'egyptian halloween monster holiday',
+ marseymummy2: 'egyptian halloween monster holiday',
+ marseymutt: 'american burger 56 percent mayo',
+ marseymyeisha: 'kween black fds',
+ marseymyspacetom: 'carp friend carpathianflrost anderson',
+ marseyn8: 'n8thegr8 nate redditor powermod powerjannie moderator',
+ marseynails: 'manicure emoji pedicure',
+ marseynapoleon: 'baguette soldier frenchman history',
+ marseyneat: 'photo cringe compilation camera cringe collection pic',
+ marseyneckbeard: 'mlady bodypillow dakimakura anime otaku fedora weebshit body pillow mra weeb',
+ marseyneet: 'cozy comfy wagie',
+ marseyneon: 'wave flashy trippy waving flashing lights animated',
+ marseynerd: 'dork loser dweeb geek glasses',
+ marseynietzsche: 'philosophy history',
+ marseyniggawut: 'weird reaction raised eyebrow disturbing disturbed wtf judgment',
+ marseynightmare: 'striped sweater freddy freddie horror halloween krueger holiday claws monster',
+ marseynintendo: 'mario gamer switch gaymer video game mustache soy',
+ marseyniqab: 'burka islam muslim burqa',
+ marseynooo: 'reaction snob no way',
+ marseynosleep: 'horror scary halloween holiday',
+ marseynoyou: 'nou no u pointing',
+ marseynoyouglow: 'fbi no u animated feds glowies glowniggers atf cia nsa',
+ marseynpc: 'sheeple',
+ marseynpc2: 'reaction idiot sheep',
+ marseynun: 'habit catholic',
+ marseynut: 'orgasm ahegao cum reaction coom',
+ marseynyan: 'space animated meme poptart',
+ marseyobese: 'fat chonker bbw chonk chunky pig lorg',
+ marseyobesescale: 'fat chonker bbw chonk chunky pig lorg',
+ marseyobey: '1984 sign ingsoc poster big brother',
+ marseyoceania: 'kiwi new zealand kangaroo newzealand australia',
+ marseyoctopus: 'tentacles kraken tentacled',
+ marseyohno: 'panic frightened scared horror scream afraid reaction horrified nervous shock gasp',
+ marseyonacid: 'tripping trippy drugs lcd animated',
+ marseyorthodox: 'priest schismatic',
+ marseyorthodoxpat: 'petting patting schismatic priest animated russian',
+ marseyowow: 'reaction excited owo',
+ marseypaint: 'low effort art',
+ marseypainter: 'palet reaction pallet paintbrush paints artist pallette',
+ marseypanda: 'red panda bear happy redpanda',
+ marseypanda2: 'panda bear fursona skin animal costume furry fursuit',
+ marseypanties: 'reaction underwear panty pantsu',
+ marseyparty1: 'trippy animated happy dance',
+ marseyparty2: 'trippy animated happy dance',
+ marseyparty3: 'trippy animated happy dance',
+ marseypatriot: 'uncle sam red white and blue burgerland holiday american 4oj patriotic',
+ marseypeacekeeper: 'united nations un rifle helmet gun',
+ marseypearlclutch: 'sensitive reaction snowflake puritanical gasp sjw',
+ marseypearlclutch2: 'sensitive reaction snowflake puritanical gasp sjw',
+ marseypedo: 'libertarian borpa male feminist discord pedophile groomer chomo lolbert toucher',
+ marseypedobear: 'groomer molest nonce',
+ marseypenguin: 'bird linux puffin',
+ marseypepe: 'ok rightoid mellokind frog reaction',
+ marseypepe2: 'reaction frog mellokind',
+ marseypharaoh: 'egyptian aevann pyramids',
+ marseypharaoh2: 'gods egyptian aevann animated',
+ marseypickle: 'picklerick funniest shit morty rick',
+ marseypig: 'fat fursona furry hog fursuit oink',
+ marseypikachu: 'electric pokemon yellow',
+ marseypikachu2: 'pokemon shoked meme reaction surprised shocked gasp',
+ marseypilgrim: 'thanksgiving puritan holiday',
+ marseypimp: 'slickback purple baller',
+ marseypinochet: 'fascist fash ugarte augusto chopper helicopter chile',
+ marseypipe: 'smoke smart mhm yes smoking tobacco intelligent',
+ marseypirate: 'argh eyepatch bandana uraniumdonger',
+ marseypirate2: 'party parrot eyepatch partyparrot',
+ marseypixel: 'reaction lorez lowres',
+ marseypizzashill: 'sex haver chad grass toucher',
+ marseyplanecrash: 'flying wreck jet pilot animated',
+ marseyplaty: 'hearts crossover platypus love',
+ marseypleading: 'sad eyes begging puppy dog eyes',
+ marseyplush: 'bow ribbon doll plushie button eyes',
+ marseypoggers: 'poggies twitch meme',
+ marseypokerface: 'small eyes reaction stare unreadable beady eyes',
+ marseypony: 'murmurwisper mlp my little ponies cutie mark horse furry my little pony',
+ marseypoor: 'homeless beggar panhandler proletariat bum',
+ marseypop: 'action figure doll funko toy soy',
+ marseypop2: 'excited blahblahblah blah blah blah animated',
+ marseypopcorn: 'eating entertained drama happy animated',
+ marseypopcorntime: 'eating popped corn drama animated watch',
+ marseypope: 'priest catholicism rome',
+ marseypostmodern: 'postmodernist obscurantist art',
+ marseypresents: 'christmas gifts santa holiday candy cane happy',
+ marseypretty: 'flirt starry eyed stars in eyes',
+ marseypride: 'prideflag rights',
+ marseyprisma: 'animated fingers anime spin dance weeb',
+ marseyproctologist: 'exam rectal glove reaction anus anal colonoscopy',
+ marseyprotestno: 'sign protester refuse reaction deny reject',
+ marseyprotestyes: 'agree sign protester reaction approve',
+ marseypsycho: 'reaction schizo crazy',
+ marseypuke: 'hurl throw up gross animated illness vomit nauseated reaction upchuck nauseous sickening yuck barf ralph judgment',
+ marseypumpkin: 'jackolantern carving halloween holiday jack o lantern',
+ marseypumpkin2: 'jackolantern carving halloween holiday jack o lantern',
+ marseypumpkin3: 'witch jackolantern carving halloween holiday jack o lantern',
+ marseypumpkin4: 'ghost jackolantern carving halloween holiday jack o lantern',
+ marseypumpkincloak: 'costume halloween holiday',
+ marseypumpking: 'jackolantern jack o lantern halloween holiday',
+ marseypumpkinglow: 'halloween drama holiday jack o lantern animated',
+ marseypunching: 'battle squaring up hit square up boxer fight throwdown reaction boxing fistfight fighting',
+ marseypunisher: 'thin blue line rightoid police cops',
+ marseyqoomer: 'shaman viking qanon jan6 capitol january6',
+ marseyquadmagyar: 'bow and arrow hungary hungarian archery bowman quadnarca',
+ marseyqueen: 'england bong english british elizabeth',
+ marseyqueenlizard: 'england bong english british reptilian elizabeth',
+ marseyracist: 'racing vroom racecar bigot reaction',
+ marseyracistgrandpa: 'thanksgiving fuck nigger holiday',
+ marseyradioactive: 'nuclear waste chernobyl radiation geiger',
+ marseyrage: 'troll anger seethe furious reaction angry mad fury',
+ marseyraging: 'rage angry mad fury animated',
+ marseyramen: 'eating noodles food bowl animated soup',
+ marseyrare: 'kangaroo wtf',
+ marseyrasta: 'marijuana weed dude weed lmao ganja drugs pot reggae joint jamaican',
+ marseyrat: 'rodent black',
+ marseyrave: 'dead animated party death sandstorm darude crab dance',
+ marseyreading: 'study homework learn nerd novel reaction book',
+ marseyreich: 'nazi pol authright fuhrer hitler fascist',
+ marseyreindeer: 'christmas santa rudolf capy cold aevann holiday animated walking',
+ marseyreindeer2: 'santa christmas rudolf holiday',
+ marseyrentfree: 'reaction no charge obsessed obsession',
+ marseyreportercnn: 'reporter journalist journoid interviewer',
+ marseyreporterfox: 'reporter journalist journoid interviewer',
+ marseyretard: 'special ed retarded reaction slow sped drooling exceptional',
+ marseyrevolution: 'marxist ussr marxism ccp hammer communist sickle communism proletariat juche fartbinn kgb',
+ marseyrick: 'smart 150iq high iq reaction 150 iq morty',
+ marseyroo: 'kangaroo australian',
+ marseyrope: 'reaction suicidal shotgun facelift suicide',
+ marseyropeyourself: 'kill yourself kys lynch reaction keep yourself safe hanging noose',
+ marseyropeyourself2: 'kill yourself kys lynch reaction keep yourself safe hanging noose',
+ marseyrowling: 'harry potter terf jkr',
+ marseyrpgcharacter: 'gamer video game gaymer',
+ marseyrs: 'runescape party hat phat crown lowpoly low poly',
+ marseyrussel: 'old pipe history',
+ marseyrussiadolls: 'toys ussr babushka matryoshka soviet',
+ marseysad2: 'reaction disappointed disappointment upset',
+ marseysadcat: 'upset disappointing disappointment reaction disappointed sad',
+ marseysadge: 'frog pepe',
+ marseysaint: 'wings angel blessed halo animated',
+ marseysalad: 'vegan cabbage vegetarian lettuce vegetable',
+ marseysalat: 'prayer islam muslim rug',
+ marseysalty: 'sodium saltshaker seethe salt shaker nacl animated',
+ marseysalutearmy: 'saluting o7 military soldier',
+ marseysalutecop: 'acab officer saluting o7 police',
+ marseysalutenavy: 'saluting semen o7 homosexual soldier',
+ marseysanders: 'bernie rich socialism socialist jewish',
+ marseysanta: 'christmas gifts presents claus holiday',
+ marseysanta2: 'christmas gifts presents claus holiday',
+ marseysartre: 'philosophy frenchman history',
+ marseysaw: 'doll horror halloween jigsaw monster evil torture game holiday',
+ marseyscared: 'hide halloween afraid nervous holiday traumatized fearful',
+ marseyschizo: 'harm burns selfharm self harm cigarette burning mermaids reaction artist self',
+ marseyschrodinger: 'philosophy science physics math',
+ marseyseven: 'vidya gamer gaymer video game assassin hitman',
+ marseysexylibrarian: 'books thot nerd boobs bra geek',
+ marseyshapiro: 'benjamin debate libtard facts and logic benny jewish ben shapiro',
+ marseysharingan: 'horror halloween holiday possessed animated monster',
+ marseyshark: 'jaws halloween fursona furry fish costume holiday fursuit',
+ marseysheep: 'follower wool lamb fursona bah furry fursuit',
+ marseysheepdog: 'shaggy scruffy woof',
+ marseyshiftyeyes: 'suspicious sussy paranoid weird reaction sketchy',
+ marseyshisha: 'weed smoker smoking hookah',
+ marseyshooting: 'blam blatt shotgun kill pow murder',
+ marseyshroom: 'smug fungus shrigma',
+ marseyshy: 'flirting anxious twiddle nervous flirty coy animated',
+ marseysick: 'puke nausea green face vomit nauseated reaction nauseous barf judgment',
+ marseysigh: 'breathe give up giveup reaction depression breathing depressed animated',
+ marseysjw: 'lgbt social justice reaction gay snowflake pride',
+ marseyskater: 'dope hip sk8 ill tony hawk sick skateboard not a poser rad',
+ marseyskeleton: 'dead bones halloween holiday skeletal',
+ marseyskeleton2: 'bones spooky halloween holiday skeletal',
+ marseyskeletor: 'skeleton mask heman 80s man halloween he man cartooon he holiday',
+ marseysmirk: 'reaction snicker trolling lol',
+ marseysmoothbrain: 'idiot big brain brainlet retard reaction fool dumbass moron',
+ marseysmudge: 'diogenesjr diogenesjunior meme',
+ marseysmug: 'reaction superior haha',
+ marseysmug2: 'snicker scoff mock reaction guffaw ridicule judgment',
+ marseysmug3: 'reaction yikes judgment oof cringe',
+ marseysnappypat: 'petting animated sentient reaction snapshillbot robot patting',
+ marseysnek: 'snake serpent',
+ marseysniff: 'brap huff gas reaction fart creep',
+ marseysnoo: 'shaking redditor scared reaction nervous schizo reddit',
+ marseysob: 'tear crying depressed reaction sobbing depression sad cry animated tears',
+ marseysociety: 'batman joker capeshit jared leto',
+ marseysombrero: 'mexican mexico',
+ marseysonic: 'hedgehog blue',
+ marseysoypoint: 'soyboy soy boy beard reaction pointing',
+ marseyspecial: 'retard reaction slow special needs sped',
+ marseyspecialpat: 'petting retard reaction sped fartbinn animated patting',
+ marseyspider: 'insect halloween arachnid holiday bug',
+ marseyspider2: 'insect halloween spiderweb arachnid holiday bug',
+ marseyspirit: 'ghost halloween holiday',
+ marseyspit: 'surprising reaction shocking water surprised shocked',
+ marseyspooky: 'art horror halloween holiday evil scary monster',
+ marseyspookysmile: 'horror halloween holiday evil scary monster',
+ marseysrdine: 'fisherman reaction fish canned fishing',
+ marseysrdine2: 'can animated reaction fish knife chop sardine',
+ marseystars: 'stareyes reaction star eyes starry eyed stareyed',
+ marseysteer: 'car drive nervous driving animated',
+ marseystein: 'undead frankenstein abomination halloween holiday monster',
+ marseystinky: 'smelly homeless stank poor ew yuck',
+ marseystonetoss: 'amogus pebblethrow nazi reaction boulderpummel',
+ marseystroke: 'derp retard reaction stupid drooling',
+ marseysuffragette: '19a foid feminist 19th terrible feminism regret woman women mistake',
+ marseysulk: 'crying reaction depression sobbing depressed sad',
+ marseysuper: 'superstraight lgbt',
+ marseysurprised: 'reaction shocked shook unexpected',
+ marseysus: 'amogus among us stonetoss sussy baka amongus',
+ marseysweating: 'anxiety worried wipe scared worrying reaction anxious nervous stressed',
+ marseysylveon: 'trick or treat pokemon halloween eevee costume holiday',
+ marseysylveonpat: 'trick or treat pokemon petting halloween eevee reaction costume holiday animated patting',
+ marseytaliban: 'mujahideen janniejihad islam afganistan shariah afghanistan muslim',
+ marseytalibanpat: 'mujahideen petting janniejihad terrorist islam reaction afganistan muslim animated patting',
+ marseytank: 'military ussr ccp communist authleft tank army communism china soviet',
+ marseytankushanka: 'military ussr ccp communist authleft tank army communism china soviet russian',
+ marseytea: 'drama spill',
+ marseyteaparty: 'donger arran soren carp duck',
+ marseytears: 'pout teary crying cried reaction sob eyes cry sad',
+ marseyteruteru: 'ghost flying spooky halloween holiday floating',
+ marseythegrey: 'lord of the rings magic gandalf lotr mage wizard warlock',
+ marseytheorist: 'ancient aliens meme',
+ marseything: 'halloween holiday scary monster teeth',
+ marseythinkorino: 'reaction thinking hmm thought',
+ marseythinkorino: 'reaction judgment',
+ marseythomas: 'tank engine train locomotive',
+ marseythonk: 'confused reaction thinking thunk thonk',
+ marseythroatsinging: 'mongolian music',
+ marseytiger: 'fursona furry fursuit',
+ marseytime: '10pm tock tick clock animated',
+ marseytinfoil: 'alex jones psycho crazy schizo alexjones conspiracy',
+ marseytinfoil2: 'alex jones rightoid psycho schizo alexjones conspiracy',
+ marseytoilet: 'flush loo bog roll toilet paper swirly',
+ marseytrad: 'dress foid tradwife floral girl',
+ marseytrain: 'troomer tranny transgender trains troid transsexual animated',
+ marseytrans2: 'troon tranny transgender troomer lgbt trannies troid transsexual',
+ marseytrickortreat: 'candy trick or treat halloween holiday',
+ marseytroll: 'dio trollface reaction diogenesjr diogenesjunior',
+ marseytroll2: 'ogre horror halloween holiday monster',
+ marseytrollcrazy: 'i hate killher psycho rage kill her gun',
+ marseytrollgun: 'kill her psycho',
+ marseytrollolol: 'rage trolled rageface',
+ marseytroublemaker: 'we do a little trolling',
+ marseytrump: 'cheeto hitler president history orange man',
+ marseytunaktunak: 'turban animated curry indian pajeet dance',
+ marseyturkey: 'beak bird thanksgiving holiday feathers',
+ marseytv: 'willy wonka telly television',
+ marseytwins: 'halloween holiday flashing shining scary animated',
+ marseyuglyxmasweater: 'santa hat christmas ugly holiday',
+ marseyumbreon: 'trick or treat pokemon halloween eevee costume holiday',
+ marseyumbreonpat: 'trick or treat pokemon petting halloween eevee reaction costume holiday animated patting',
+ marseyunabomber: 'package industrial society delivery mail kaczynski uncle ted',
+ marseyunpettable: 'fashy rightoid chud fashwave altright vaporwave',
+ marseyuwuw: 'fursona furry fursuit',
+ marseyvampire: 'undead sanguine horror spooky halloween fangs holiday monster',
+ marseyvan: 'libertarian pedobear free candy pedophile groomer lolbert chomo molester pedo toucher',
+ marseyvaporeon: 'trick or treat pokemon halloween eevee costume holiday',
+ marseyvaporeonpat: 'trick or treat pokemon petting halloween eevee reaction costume holiday animated patting',
+ marseyvaporwave: 'trippy 80s psychedelic animated retro',
+ marseyvaxmaxx: 'mask coronavirus covid gigavax corona vaccine vaccination hazmat',
+ marseyvengeance: 'gore undead shotgun horror halloween revenge monster bloody head wound holiday',
+ marseyvibing: 'animated bopping vibe jam dancing headbang music rainbow dance',
+ marseyvietnam: 'army born to kill soldier war',
+ marseywagie: 'crypto rightoid ancap poor wagecuck mcdonalds maccas reaction',
+ marseywallst: 'crypto wall street bets invest gme bitcoin wallstreetbets wsb stock',
+ marseywarhol: 'modern art',
+ marseywave: 'farewell cya hello greetings bye waving hi',
+ marseyweeb: 'neckbeard sword fedora kitana',
+ marseywendy: 'pigtails redhead pippi',
+ marseywheredrama: 'seriouspost reaction agendapost dramawhere animated',
+ marseywheredrama2: 'seriouspost animated agendapost',
+ marseywhirlyhat: 'idiot retard hat dumb sped slow stupid special kid',
+ marseywinner: 'reaction trophy gold prize first place',
+ marseywise: 'hood cloak wizard pipe',
+ marseywitch: 'spooky halloween magick holiday fartbinn evil scary',
+ marseywitch2: 'tranny troomer penny wvp feminist halloween bardfinn groomer magick troid steve monster',
+ marseywitch3: 'flying broomstick wave halloween wizard holiday',
+ marseywoah: 'tldr reaction wall of text wordswordswords stfu',
+ marseywolf: 'halloween werewolf holiday scary monster',
+ marseywords: 'longpost too long tldr reaction wordswordswords',
+ marseywords2: 'longpost too long tldr reaction wordswordswords',
+ marseyworried: 'anxiety sweat panic scared sweaty sweating anxious nervous stressed',
+ marseywtf: 'scared reaction shook surprised shocked',
+ marseywtf2: 'shocked reaction wth disturbing disturbed what the fuck',
+ marseywut: 'pathetic asuka',
+ marseyxd: 'lmao reaction rofl haha lol',
+ marseyxoxo: 'hearts wave flirt loving love animated kiss',
+ marseyyass: 'queen reaction fds slay girlboss kween',
+ marseyyawn: 'zzz boring tired sleepy bored',
+ marseyyeezus: 'kanye god hotep',
+ marseyyes: 'thumbsup agree right thumbs up reaction judgment',
+ marseyyikes: 'reaction judgment disgust oof cringe',
+ marseyza: 'antlers flowers',
+ marseyzombie: 'dead undead eye horror intestines halloween holiday monster',
+ marseyzoomer: 'child brat kid zoomie',
+ marseyzwei: 'drinking germany lederhosen zweirama bavarian beer',
+ marsheen: 'pusheen animated meme cute',
+ marsheepnpc: 'follower',
+ marsoy: 'soyboy soybeard nintendo gamer switch marsey gaymer pointing',
+ marsoyhype: 'soyboy soybeard nerd marsey excited wojak cuck',
+ mcmarsey: 'wageslave poor mcdonalds wagecuck maccas antiwork college wagie',
+ mersya: 'the best adorable aww marsey dramarama favorite cute',
+ mersya2: 'drawing art',
+ mersyapat: 'petting reaction dramarama animated cute patting',
+ mlm: 'marseylivesmatter marsey lives matter blm',
+ owlsey: 'bird hoot feathers',
+ plarsy: 'platy crossover platypus marsey plarsey',
+ thinbluefeline: 'cops police',
+ },
+ },
+ {
+ type:'platy',
+ emojis: ['plarsy','platyabused','platyblizzard','platyboxer','platydevil','platyfear','platygirlmagic','platygolong','platyhaes','platyking','platylove','platyneet','platyold','platypatience','platypopcorn','platyrich','platysarcasm','platysilly','platysleeping','platythink','platytired','platytuxedomask','platyblush','platybruh','platycaveman','platycheer','platydown','platyeyes','platyheart','platylol','platymicdrop','platynooo','platysalute','platyseethe','platythumbsup','platywave']
+ },
+ {
+ type: 'tay',
+ emojis: ['taylove','tayaaa','tayadmire','taycat','taycelebrate','taychefkiss','taychristmas','tayclap','taycold','taycrown','tayflex','tayflirt','taygrimacing','tayhappy','tayheart','tayhmm','tayhuh','tayhyperdab','tayjammin','taylaugh','taymindblown','tayno','taynod','taypeace','taypray','tayrun','tayscrunch','tayshake','tayshrug','taysilly','tayslide','taysmart','taystop','taytantrum','taytea','taythink','tayvibin','taywhat','taywine','taywine2','taywink','tayyes']
+ },
+ {
+ type: 'classic',
+ emojis: ['idhitit','2thumbsup','aliendj','ambulance','angry','angrywhip','argue','aroused','ashamed','badass','banana','band','banghead','batman','bigeyes','bite','blind','blowkiss','blush','bong','bounce','bow','breakheart','bs','cartwheel','cat','celebrate','chainsaw','cheers','clap','cold','confused','crazyeyes','cry','cthulhu','cute','d','daydream','ddr','deadpool','devilsmile','diddle','die','distress','disturbing','dizzy','domo','doughboy','drink','drool','dudeweedlmao','edward','electro','elephant','embarrassed','emo','emo2','evil','evilclown','evilgrin','facepalm','fap','flamethrower','flipbird','flirt','frown','gasp','glomp','go','gooby','grr','gtfo','guitar','haha','handshake','happydance','headbang','heart','heartbeat','hearts','highfive','hmm','hmph','holdhands','horny','hug','hugging','hugs','hump','humpbed','hysterical','ily','inlove','jason','jawdrop','jedi','jester','kaboom','kick','kiss','kitty','laughchair','lick','link','lol','lolbeat','loving','makeout','medal','megaman','megamanguitar','meow','metime','mooning','mummy','na','nauseous','nervous','ninja','nod','nono','omg','onfire','ooo','orly','p','paddle','panda','pandabutt','paranoid','party','pat','peek','pikachu','pimp','plzdie','poke','popcorn','pout','probe','puke','punch','quote','raccoon','roar','rofl','roflmao','rolleyes','sad','sadeyes','sadhug','samurai','sarcasm','scoot','scream','shmoopy','shrug','skull','slap','slapfight','sleepy','smackfish','smackhead','smh','smile','smoke','sonic','spank','sparta','sperm','spiderman','stab','star','stare','stfu','suicide','surprisehug','suspicious','sweat','swordfight','taco','talk2hand','tantrum','teehee','thinking','threesome','throw','throwaway','tickle','typing','uhuh','vampbat','viking','violin','vulgar','wah','wat','whip','whipping','wink','witch','wizard','woah','worm','woo','work','worship','wow','xd','yay','zzz']
+ },
+ {
+ type: 'rage',
+ emojis: ['trolldespair','clueless','troll','bitchplease','spit','challengeaccepted','contentiouscereal','cryingatcuteness','derp','derpcornsyrup','derpcrying','derpcute','derpdumb','derpeuphoria','derpinahd','derpinapokerface','derpinasnickering','derpprocessing','derprealization','derpsnickering','derptalking','derpthinking','derpthumbsup','derpunimpressed','derpwhy','donotwant','epicfacefeatures','fancywithwine','fffffffuuuuuuuuuuuu','flipthetable','foreveralone','foreveralonehappy','hewillnever','idontknow','interuptedreading','iseewhatyoudidthere','killherkillher','ledesire','leexcited','legenius','lelolidk','lemiddlefinger','lemindblown','leokay','lepanicrunning','lepokerface','lepokerface2','lerageface','leseriousface','likeaboss','lolface','longwhiskers','manymiddlefingers','megusta','motherfucker','motherofgod','mysides','ohgodwhy','pervertedspiderman','picard','ragestrangle','rukiddingme','tfwyougettrolled','trollolol','truestorybro','xallthey','yuno']
+ },
+ {
+ type: 'wojak',
+ emojis: ['soymad','boomerportrait','soycry','punchjak','seethejak','chadyes','chadno','abusivewife','ancap','bardfinn','bloomer','boomer','boomermonster','brainletbush','brainletcaved','brainletchair','brainletchest','brainletmaga','brainletpit','chad','chadarab','chadasian','chadblack','chadjesus','chadjew','chadjihadi','chadlatino','chadlibleft','chadnordic','chadsikh','chadusa','coomer','doomer','doomerfront','doomergirl','ethot','fatbrain','fatpriest','femboy','gogetter','grug','monke','nazijak','npc','npcfront','npcmaga','psychojak','ragejak','ragemask','ramonajak','soyjackwow','soyjak','soyjakfront','soyjakhipster','soyjakmaga','soyjakyell','tomboy','zoomer','zoomersoy']
+ },
+ {
+ type: 'flags',
+ emojis: ['niger','lgbt','saudi','animesexual','blacknation','blm','blueline','dreamgender','fatpride','incelpride','israel','kazakhstan','landlordlove','scalperpride','superstraight','trans','translord','transracial','usa']
+ },
+ {
+ type: 'misc',
+ emojis: ['retardedchildren','bruh','autism','doot','kylieface','queenyes','wholesomeseal','chadyescapy','gigachadglow','gigachadorthodox','gigachad','gigachad2','gigachad3']
+ },
+]
+
+function getEmoji(searchTerm) {
+ const form = document.getElementById(EMOJI_BOX_ID).getAttribute(EMOJI_FORM_DESTINATION_ATTR)
+ const commentBox = document.getElementById(form);
+ const old = commentBox.value;
+ const curPos = parseInt(commentBox.getAttribute(TEXTAREA_POS_ATTR));
+
+ const firstHalf = old.slice(0, curPos)
+ const lastHalf = old.slice(curPos)
+
+ let emoji = ':' + searchTerm + ':'
+ const previousChar = firstHalf.slice(-1)
+ if (firstHalf.length > 0 && previousChar !== " " && previousChar !== "\n") {
+ emoji = " " + emoji
+ }
+ if (lastHalf.length > 0 && lastHalf[0] !== " ") {
+ emoji = emoji + " "
+ }
+
+ commentBox.value = firstHalf + emoji + lastHalf;
+
+ const newPos = curPos + emoji.length
+
+ commentBox.setAttribute(TEXTAREA_POS_ATTR, newPos.toString());
+
+ if (typeof checkForRequired === "function") checkForRequired();
+
+ const favorite_emojis = JSON.parse(localStorage.getItem("favorite_emojis")) || {}
+ if (favorite_emojis[searchTerm]) favorite_emojis[searchTerm] += 1
+ else favorite_emojis[searchTerm] = 1
+ window.localStorage.setItem("favorite_emojis", JSON.stringify(favorite_emojis))
+}
+
+function loadEmojis(form) {
+
+ let search_bar = document.getElementById("emoji_search");
+ let search_container = document.getElementById('emoji-tab-search')
+
+ let container = document.getElementById(EMOJI_BOX_ID)
+ container.setAttribute(EMOJI_FORM_DESTINATION_ATTR, form)
+
+ const commentBox = document.getElementById(form);
+ commentBox.setAttribute(TEXTAREA_POS_ATTR, commentBox.selectionStart);
+
+ if (search_bar.value == "") {
+
+ for (let i = 0; i < EMOJIS_STRINGS.length; i++) {
+ let type = EMOJIS_STRINGS[i].type
+ let container = document.getElementById(`EMOJIS_${type}`)
+ let str = ''
+ let arr = EMOJIS_STRINGS[i].emojis
+ if (i == 0)
+ {
+ for (const [key, value] of Object.entries(arr)) {
+ str += ` `;
+ }
+ }
+ else {
+ for (let j = 0; j < arr.length; j++) {
+ str += ` `;
+ }
+ }
+
+ container.innerHTML = str
+ search_container.innerHTML = ""
+ }
+ } else {
+ let str = ''
+ for (let i = 0; i < EMOJIS_STRINGS.length; i++) {
+ let arr = EMOJIS_STRINGS[i].emojis
+
+ let container = document.getElementById(`EMOJIS_${EMOJIS_STRINGS[i].type}`)
+ for (let j = 0; j < arr.length; j++) {
+ if (arr[j].match(search_bar.value.toLowerCase()) || search_bar.value.toLowerCase().match(arr[j])) {
+ str += ` `;
+ }
+ }
+
+ if (i == 0)
+ {
+ let arr2 = EMOJIS_STRINGS[i].emojis;
+ for (const [key, value] of Object.entries(arr2)) {
+ if (str.includes(`'${key}'`)) continue;
+ if (key.match(search_bar.value.toLowerCase()) || search_bar.value.toLowerCase().match(key) || value.match(search_bar.value.toLowerCase())) {
+ str += ` `;
+ }
+ }
+ container.innerHTML = ""
+ }
+ }
+ search_container.innerHTML = str
+ }
+ search_bar.oninput = function () {
+ loadEmojis(form);
+ };
+}
+
+let str = ""
+const favorite_emojis = JSON.parse(localStorage.getItem("favorite_emojis"))
+
+if (favorite_emojis)
+{
+ const sortable = Object.fromEntries(
+ Object.entries(favorite_emojis).sort(([,a],[,b]) => b-a)
+ );
+
+ for (const emoji of Object.keys(sortable))
+ str += ` `
+
+ document.getElementById('EMOJIS_favorite').innerHTML = str
+}
diff --git a/files/assets/js/fingerprint.js b/files/assets/CHRISTMAS/js/fingerprint.js
similarity index 100%
rename from files/assets/js/fingerprint.js
rename to files/assets/CHRISTMAS/js/fingerprint.js
diff --git a/files/assets/CHRISTMAS/js/fireflies.js b/files/assets/CHRISTMAS/js/fireflies.js
new file mode 100644
index 000000000..85995d09b
--- /dev/null
+++ b/files/assets/CHRISTMAS/js/fireflies.js
@@ -0,0 +1,7 @@
+new BugController({
+ imageSprite: "/assets/CHRISTMAS/images/fireflies.webp",
+ canDie: false,
+ minBugs: 10,
+ maxBugs: 30,
+ mouseOver: "multiply"
+});
\ No newline at end of file
diff --git a/files/assets/CHRISTMAS/js/followers.js b/files/assets/CHRISTMAS/js/followers.js
new file mode 100644
index 000000000..40134830b
--- /dev/null
+++ b/files/assets/CHRISTMAS/js/followers.js
@@ -0,0 +1,5 @@
+function removeFollower(event, username) {
+ post_toast('/remove_follow/' + username);
+ let table = document.getElementById("followers-table");
+ table.removeChild(event.target.parentElement.parentElement);
+}
\ No newline at end of file
diff --git a/files/assets/CHRISTMAS/js/following.js b/files/assets/CHRISTMAS/js/following.js
new file mode 100644
index 000000000..bb04c2815
--- /dev/null
+++ b/files/assets/CHRISTMAS/js/following.js
@@ -0,0 +1,5 @@
+function removeFollowing(event, username) {
+ post_toast('/unfollow/' + username);
+ let table = document.getElementById("followers-table");
+ table.removeChild(event.target.parentElement.parentElement);
+}
\ No newline at end of file
diff --git a/files/assets/CHRISTMAS/js/formatting.js b/files/assets/CHRISTMAS/js/formatting.js
new file mode 100644
index 000000000..74f26774c
--- /dev/null
+++ b/files/assets/CHRISTMAS/js/formatting.js
@@ -0,0 +1,57 @@
+
+function makeBold(form) {
+ var text = document.getElementById(form);
+ var startIndex = text.selectionStart,
+ endIndex = text.selectionEnd;
+ var selectedText = text.value.substring(startIndex, endIndex);
+
+ var format = '**'
+
+ if (selectedText.includes('**')) {
+ text.value = selectedText.replace(/\*/g, '');
+ }
+ else if (selectedText.length == 0) {
+ text.value = text.value.substring(0, startIndex) + selectedText + text.value.substring(endIndex);
+ }
+ else {
+ text.value = text.value.substring(0, startIndex) + format + selectedText + format + text.value.substring(endIndex);
+ }
+}
+
+function makeItalics(form) {
+ var text = document.getElementById(form);
+ var startIndex = text.selectionStart,
+ endIndex = text.selectionEnd;
+ var selectedText = text.value.substring(startIndex, endIndex);
+
+ var format = '*'
+
+ if (selectedText.includes('*')) {
+ text.value = selectedText.replace(/\*/g, '');
+ }
+ else if (selectedText.length == 0) {
+ text.value = text.value.substring(0, startIndex) + selectedText + text.value.substring(endIndex);
+ }
+ else {
+ text.value = text.value.substring(0, startIndex) + format + selectedText + format + text.value.substring(endIndex);
+ }
+}
+
+function makeQuote(form) {
+ var text = document.getElementById(form);
+ var startIndex = text.selectionStart,
+ endIndex = text.selectionEnd;
+ var selectedText = text.value.substring(startIndex, endIndex);
+
+ var format = '>'
+
+ if (selectedText.includes('>')) {
+ text.value = text.value.substring(0, startIndex) + selectedText.replace(/\>/g, '') + text.value.substring(endIndex);
+ }
+ else if (selectedText.length == 0) {
+ text.value = text.value.substring(0, startIndex) + selectedText + text.value.substring(endIndex);
+ }
+ else {
+ text.value = text.value.substring(0, startIndex) + format + selectedText + text.value.substring(endIndex);
+ }
+}
\ No newline at end of file
diff --git a/files/assets/CHRISTMAS/js/fp.js b/files/assets/CHRISTMAS/js/fp.js
new file mode 100644
index 000000000..974e2c6c6
--- /dev/null
+++ b/files/assets/CHRISTMAS/js/fp.js
@@ -0,0 +1 @@
+var FingerprintJS=function(e){"use strict";var t=function(){return(t=Object.assign||function(e){for(var t,n=1,r=arguments.length;n0&&i[i.length-1])||6!==o[0]&&2!==o[0])){a=0;continue}if(3===o[0]&&(!i||o[1]>i[0]&&o[1]e.length)return-1;for(var n=0;n>2]+y[(3&t[i])<<4|t[i+1]>>4]+y[(15&t[i+1])<<2|t[i+2]>>6]+y[63&t[i+2]];return n%3==2?r.slice(0,-1)+"=":n%3==1?r.slice(0,-2)+"==":r}function C(e){for(var t="",n=0;n0){var r=e[n].toLowerCase();r!==e[n]?t+=" "+r:t+=e[n]}else t+=e[n].toUpperCase();return t}function _(e){return void 0===e?void 0:""+e}function I(e,t){for(var n="",r=0;r=r+n?(r=a,[4,W(0)]):[3,3]):[3,4];case 2:i.sent(),i.label=3;case 3:return++o,[3,1];case 4:return[2]}}))}))}function K(e,t){e=[e[0]>>>16,65535&e[0],e[1]>>>16,65535&e[1]],t=[t[0]>>>16,65535&t[0],t[1]>>>16,65535&t[1]];var n=[0,0,0,0];return n[3]+=e[3]+t[3],n[2]+=n[3]>>>16,n[3]&=65535,n[2]+=e[2]+t[2],n[1]+=n[2]>>>16,n[2]&=65535,n[1]+=e[1]+t[1],n[0]+=n[1]>>>16,n[1]&=65535,n[0]+=e[0]+t[0],n[0]&=65535,[n[0]<<16|n[1],n[2]<<16|n[3]]}function J(e,t){e=[e[0]>>>16,65535&e[0],e[1]>>>16,65535&e[1]],t=[t[0]>>>16,65535&t[0],t[1]>>>16,65535&t[1]];var n=[0,0,0,0];return n[3]+=e[3]*t[3],n[2]+=n[3]>>>16,n[3]&=65535,n[2]+=e[2]*t[3],n[1]+=n[2]>>>16,n[2]&=65535,n[2]+=e[3]*t[2],n[1]+=n[2]>>>16,n[2]&=65535,n[1]+=e[1]*t[3],n[0]+=n[1]>>>16,n[1]&=65535,n[1]+=e[2]*t[2],n[0]+=n[1]>>>16,n[1]&=65535,n[1]+=e[3]*t[1],n[0]+=n[1]>>>16,n[1]&=65535,n[0]+=e[0]*t[3]+e[1]*t[2]+e[2]*t[1]+e[3]*t[0],n[0]&=65535,[n[0]<<16|n[1],n[2]<<16|n[3]]}function X(e,t){return 32===(t%=64)?[e[1],e[0]]:t<32?[e[0]<>>32-t,e[1]<>>32-t]:(t-=32,[e[1]<>>32-t,e[0]<>>32-t])}function Y(e,t){return 0===(t%=64)?e:t<32?[e[0]<>>32-t,e[1]<>>1]),e=Z(e=J(e,[4283543511,3981806797]),[0,e[0]>>>1]),e=Z(e=J(e,[3301882366,444984403]),[0,e[0]>>>1])}function ee(e){return parseInt(e)}function te(e){return parseFloat(e)}function ne(e,t){return"number"==typeof e&&isNaN(e)?t:e}function re(e){return e.reduce((function(e,t){return e+(t?1:0)}),0)}function ie(e){return e&&"object"==typeof e&&"message"in e?e:{message:e}}function oe(e,t,n){var o=Object.keys(e).filter((function(e){return!function(e,t){for(var n=0,r=e.length;n=4}function ue(){var e=window,t=navigator;return re(["msWriteProfilerMark"in e,"MSStream"in e,"msLaunchUri"in t,"msSaveBlob"in t])>=3&&!ae()}function se(){var e=window,t=navigator;return re(["webkitPersistentStorage"in t,"webkitTemporaryStorage"in t,0===t.vendor.indexOf("Google"),"webkitResolveLocalFileSystemURL"in e,"BatteryManager"in e,"webkitMediaStream"in e,"webkitSpeechGrammar"in e])>=5}function ce(){var e=window,t=navigator;return re(["ApplePayError"in e,"CSSPrimitiveValue"in e,"Counter"in e,0===t.vendor.indexOf("Apple"),"getStorageUpdates"in t,"WebKitMediaKeys"in e])>=4}function le(){var e=window;return re(["safari"in e,!("DeviceMotionEvent"in e),!("ongestureend"in e),!("standalone"in navigator)])>=3}function fe(){var e,t,n=window;return re(["buildID"in navigator,"MozAppearance"in(null!==(t=null===(e=document.documentElement)||void 0===e?void 0:e.style)&&void 0!==t?t:{}),"onmozfullscreenchange"in n,"mozInnerScreenX"in n,"CSSMozDocumentRule"in n,"CanvasCaptureMediaStream"in n])>=4}function de(){var e=document;return e.fullscreenElement||e.msFullscreenElement||e.mozFullScreenElement||e.webkitFullscreenElement||null}function ve(){var e=se(),t=fe();if(!e&&!t)return!1;var n=window;return re(["onorientationchange"in n,"orientation"in n,e&&!("SharedWorker"in n),t&&/android/i.test(navigator.appVersion)])>=2}function he(e){var t=new Error(e);return t.name=e,t}function me(e,t,n){var o,a,u;return void 0===n&&(n=50),r(this,void 0,void 0,(function(){var r,s;return i(this,(function(i){switch(i.label){case 0:r=document,i.label=1;case 1:return r.body?[3,3]:[4,W(n)];case 2:return i.sent(),[3,1];case 3:s=r.createElement("iframe"),i.label=4;case 4:return i.trys.push([4,,10,11]),[4,new Promise((function(e,n){var i=!1,o=function(){i=!0,e()};s.onload=o,s.onerror=function(e){i=!0,n(e)};var a=s.style;a.setProperty("display","block","important"),a.position="absolute",a.top="0",a.left="0",a.visibility="hidden",t&&"srcdoc"in s?s.srcdoc=t:s.src="about:blank",r.body.appendChild(s);var u=function(){var e,t;i||("complete"===(null===(t=null===(e=s.contentWindow)||void 0===e?void 0:e.document)||void 0===t?void 0:t.readyState)?o():setTimeout(u,10))};u()}))];case 5:i.sent(),i.label=6;case 6:return(null===(a=null===(o=s.contentWindow)||void 0===o?void 0:o.document)||void 0===a?void 0:a.body)?[3,8]:[4,W(n)];case 7:return i.sent(),[3,6];case 8:return[4,e(s,s.contentWindow)];case 9:return[2,i.sent()];case 10:return null===(u=s.parentNode)||void 0===u||u.removeChild(s),[7];case 11:return[2]}}))}))}function pe(e){for(var t=function(e){for(var t,n,r="Unexpected syntax '"+e+"'",i=/^\s*([a-z-]*)(.*)$/i.exec(e),o=i[1]||void 0,a={},u=/([.:#][\w-]+|\[.+?\])/gi,s=function(e,t){a[e]=a[e]||[],a[e].push(t)};;){var c=u.exec(i[2]);if(!c)break;var l=c[0];switch(l[0]){case".":s("class",l.slice(1));break;case"#":s("id",l.slice(1));break;case"[":var f=/^\[([\w-]+)([~|^$*]?=("(.*?)"|([\w-]+)))?(\s+[is])?\]$/.exec(l);if(!f)throw new Error(r);s(f[1],null!==(n=null!==(t=f[4])&&void 0!==t?t:f[5])&&void 0!==n?n:"");break;default:throw new Error(r)}}return[o,a]}(e),n=t[0],r=t[1],i=document.createElement(null!=n?n:"div"),o=0,a=Object.keys(r);o.6*t.length}))).sort(),[2,r]}}))}))},fontPreferences:function(){return function(e,t){void 0===t&&(t=4e3);return me((function(n,r){var i=r.document,a=i.body,u=a.style;u.width=t+"px",u.webkitTextSizeAdjust=u.textSizeAdjust="none",se()?a.style.zoom=""+1/r.devicePixelRatio:ce()&&(a.style.zoom="reset");var s=i.createElement("div");return s.textContent=o(Array(t/20<<0)).map((function(){return"word"})).join(" "),a.appendChild(s),e(i,a)}),' ')}((function(e,t){for(var n={},r={},i=0,o=Object.keys(Fe);i=3}())return-1;var n=new t(1,5e3,44100),r=n.createOscillator();r.type="triangle",r.frequency.value=1e4;var i=n.createDynamicsCompressor();i.threshold.value=-50,i.knee.value=40,i.ratio.value=12,i.attack.value=0,i.release.value=.25,r.connect(i),i.connect(n.destination),r.start(0);var o=function(e){var t=3,n=500,r=500,i=5e3,o=function(){};return[new Promise((function(a,u){var s=!1,c=0,l=0;e.oncomplete=function(e){return a(e.renderedBuffer)};var f=function(){setTimeout((function(){return u(he("timeout"))}),Math.min(r,l+i-Date.now()))},d=function(){try{switch(e.startRendering(),e.state){case"running":l=Date.now(),s&&f();break;case"suspended":document.hidden||c++,s&&c>=t?u(he("suspended")):setTimeout(d,n)}}catch(r){u(r)}};d(),o=function(){s||(s=!0,l>0&&f())}})),o]}(n),a=o[0],u=o[1],s=a.then((function(e){return function(e){for(var t=0,n=0;n=1)return Math.round(e/t)*t;var n=1/t;return Math.round(e*n)/n}(e,10)})(e[0]),n(e[1]),n(e[2]),n(e[3])]]}}))}))}},osCpu:function(){return navigator.oscpu},languages:function(){var e,t=navigator,n=[],r=t.language||t.userLanguage||t.browserLanguage||t.systemLanguage;if(void 0!==r&&n.push([r]),Array.isArray(t.languages))se()&&re([!("MediaSettingsRange"in(e=window)),"RTCEncodedAudioFrame"in e,""+e.Intl=="[object Intl]",""+e.Reflect=="[object Reflect]"])>=3||n.push(t.languages);else if("string"==typeof t.languages){var i=t.languages;i&&n.push(i.split(","))}return n},colorDepth:function(){return window.screen.colorDepth},deviceMemory:function(){return ne(te(navigator.deviceMemory),void 0)},screenResolution:function(){var e=screen,t=function(e){return ne(ee(e),null)},n=[t(e.width),t(e.height)];return n.sort().reverse(),n},hardwareConcurrency:function(){return ne(ee(navigator.hardwareConcurrency),void 0)},timezone:function(){var e,t=null===(e=window.Intl)||void 0===e?void 0:e.DateTimeFormat;if(t){var n=(new t).resolvedOptions().timeZone;if(n)return n}var r,i=(r=(new Date).getFullYear(),-Math.max(te(new Date(r,0,1).getTimezoneOffset()),te(new Date(r,6,1).getTimezoneOffset())));return"UTC"+(i>=0?"+":"")+Math.abs(i)},sessionStorage:function(){try{return!!window.sessionStorage}catch(e){return!0}},localStorage:function(){try{return!!window.localStorage}catch(e){return!0}},indexedDB:function(){if(!ae()&&!ue())try{return!!window.indexedDB}catch(e){return!0}},openDatabase:function(){return!!window.openDatabase},cpuClass:function(){return navigator.cpuClass},platform:function(){var e=navigator.platform;return"MacIntel"===e&&ce()&&!le()?function(){if("iPad"===navigator.platform)return!0;var e=screen,t=e.width/e.height;return re(["MediaSource"in window,!!Element.prototype.webkitRequestFullscreen,t>.65&&t<1.53])>=2}()?"iPad":"iPhone":e},plugins:function(){var e=navigator.plugins;if(e){for(var t=[],n=0;n>>0).toString(16)).slice(-8)+("00000000"+(o[1]>>>0).toString(16)).slice(-8)+("00000000"+(a[0]>>>0).toString(16)).slice(-8)+("00000000"+(a[1]>>>0).toString(16)).slice(-8)};function qe(){var e=window,t=navigator;return k(["maxTouchPoints"in t,"mediaCapabilities"in t,"PointerEvent"in e,"visualViewport"in e,"onafterprint"in e])>=4}function Ve(){var e=window;return k([!("PushManager"in e),!("AudioBuffer"in e),!("RTCPeerConnection"in e),!("geolocation"in navigator),!("ServiceWorker"in e)])>=3}var ze=function(e){return new We(e).addEvent},We=function(){function e(e){var t=this;this.onReportReady=e,this.isStopped=!1,this.pageStartTimestamp=function(){var e,t,n=performance;if(n.timeOrigin){var r=null===(t=null===(e=n.getEntriesByType)||void 0===e?void 0:e.call(n,"navigation"))||void 0===t?void 0:t[0];if(r)return n.timeOrigin+(r.responseStart||r.unloadEventEnd)}return n.timing.domLoading||n.timing.responseStart||n.timing.unloadEventEnd}(),this.events={},this.addEvent=function(e){if(!t.isStopped){var n={time:new Date,type:"agentEvent",event:e};switch(0===e.e&&(n.documentReadyState=document.readyState,n.isPageVisible=Qe(),n.isFullscreen=et(),n.network=tt()),t.storeAgentEvent(n),e.e){case 2:t.submitReport(e.agentId,void 0);break;case 4:case 5:t.submitReport(e.agentId,e.getCallId)}}};for(var n=window,r=document,i=[[r,"readystatechange",function(){return t.handleDocumentReadyStateChange()}],[r,"visibilitychange",function(){return t.handleVisibilityChange()}],[r,"pageshow",function(){return t.handlePageTransition(!0)}],[r,"pagehide",function(){return t.handlePageTransition(!1)}],[n,"unload",function(){return t.handlePageUnload()}]],o=0,a=i;o=o)break;var v=d&&d.time.getTime()<=o,h=((null==d?void 0:d.time)||i).getTime()-f.time.getTime();u.triesCount++,u.triesTotalDuration+=h,v&&(u.completeTriesCount++,u.completeTriesTotalDuration+=h)}}return u}function Xe(e,n){return e?t(t({},e),n()):void 0}function Ye(e){for(var t={},n=0,r=Object.keys(e);n1800?A(new Uint8Array(c,0,1800))+"...":A(c))}return s(t(t({},u),{body:c}))}}function at(e){if(!e||"incomplete"===e.state||"fail"===e.state)return e;e.componentDurations;var r=n(e,["componentDurations"]),i=Object.keys(e.failedComponents),o=i.length?","+i.join(",")+",":void 0;return t(t({},r),{failedComponents:o})}function ut(e,n){void 0===n&&(n="_");for(var r=t({},e),i=0,o=Object.keys(e);i=500)return t;throw t}function Mt(e,t,n,r,i){void 0===i&&(i=P);var o=i()%(n+1),a=function(e){if("function"==typeof TextEncoder)return(new TextEncoder).encode(e);for(var t=unescape(encodeURI(e)),n=new Uint8Array(t.length),r=0;r=2?function(){return r(this,void 0,void 0,(function(){var e,t,n,r,o;return i(this,(function(i){switch(i.label){case 0:return e=Gt(),t=navigator,n=t[e[3]],(r=t[e[4]])?[4,new Promise((function(t){r[e[5]]((function(e,n){return t(n)}))}))]:[3,2];case 1:return o=i.sent(),[3,4];case 2:return(null==n?void 0:n[e[6]])?[4,n[e[6]]().then((function(e){return e.quota}))]:[3,4];case 3:o=i.sent(),i.label=4;case 4:return o?[2,ot?a-1){var y=p&&-1===ln.indexOf(w)?e.getParameter(w):null;f.push(C+"("+w+")="+y)}else f.push(C+"="+w)}if(u)for(var E=0,R=u;E0?d.push(C+"("+w+")="+e.getParameter(w)):d.push(C+"="+w)}}for(var _=0,I=fn;_0&&t(n),[2]}}))}))}),30))},s.createOffer().then((function(n){var r=n.sdp;if(!r)return t(-5);for(var i=[],c=0;c=4)?[2,-2]:[4,Sn(t=An())];case 1:return n=r.sent(),null==e||e(),"number"==typeof n?[2,n]:n.length===t.length?[2,-3]:n.length>1?[2,Tn(n)]:1===n.length?[2,n[0]]:[2,-1]}var i}))}))}function _n(){var e,t,n,r=((n=new Promise((function(n,r){e=n,t=r}))).resolve=e,n.reject=t,n),i=f(le()?310:410);return h(Promise.race([r,i]).then((function(e){if(void 0!==e)return f(e+100-Date.now())})).then((function(){return-4})),(function(){return Cn((function(){return r.resolve(Date.now())}))}))}var In=["brands","mobile","platform","platformVersion","architecture","bitness","model","uaFullVersion"];function On(){var e;return r(this,void 0,void 0,(function(){var t,n,o,a=this;return i(this,(function(u){switch(u.label){case 0:return(t=navigator.userAgentData)&&"object"==typeof t?(n={},o=[],"function"!=typeof t.getHighEntropyValues?[3,2]:[4,Promise.all(In.map((function(e){return r(a,void 0,void 0,(function(){var r,a;return i(this,(function(i){switch(i.label){case 0:return i.trys.push([0,2,,3]),[4,t.getHighEntropyValues([e])];case 1:return void 0!==(r=i.sent()[e])&&(n[e]="string"==typeof r?r:JSON.stringify(r)),[3,3];case 2:if("NotAllowedError"!==(a=i.sent()).name)throw a;return o.push(e),[3,3];case 3:return[2]}}))}))})))]):[2,void 0];case 1:u.sent(),u.label=2;case 2:return[2,{b:t.brands.map((function(e){return{b:e.brand,v:e.version}})),m:t.mobile,p:null!==(e=t.platform)&&void 0!==e?e:null,h:n,nah:o}]}}))}))}function Pn(){var e=document.createElement("a").attributionsourceid;return void 0===e?void 0:String(e)}function xn(){return function(e){for(var t,n,r=[],i=e;;)try{var o=null===(t=i.location)||void 0===t?void 0:t.href,a=null===(n=i.document)||void 0===n?void 0:n.referrer;if(void 0===o||void 0===a)return{s:1,v:r};r.push({l:o,f:a});var u=i.parent;if(!u||u===i)return{s:0,v:r};i=u}catch(s){if(Dn(s))return{s:1,v:r};throw s}}(window)}function Dn(e){if(!e||"object"!=typeof e)return!1;var t=e;return!(!ae()&&!ue()||"Error"!==t.name&&"TypeError"!==t.name||"Permission denied"!==t.message)||"SecurityError"===t.name}function Mn(){return function(e){var t=e.location,n=e.origin,r=t.origin,i=t.ancestorOrigins,o=null;if(i){o=new Array(i.length);for(var a=0;a=0;--n)if(n%4096==0){var r=Math.random();e.push((t-r)*Math.pow(2,31)|0),t=r}return e}function qn(){var e;return r(this,void 0,void 0,(function(){var t,n,o,a,u,s,c=this;return i(this,(function(l){switch(l.label){case 0:if(!(t=null===(e=window.crypto)||void 0===e?void 0:e.subtle)||!t.generateKey||!t.exportKey)return[2,-1];n=function(){return r(c,void 0,void 0,(function(){var e,n;return i(this,(function(r){switch(r.label){case 0:return[4,t.generateKey({name:"AES-GCM",length:128},!0,["encrypt"])];case 1:return e=r.sent(),[4,t.exportKey("raw",e)];case 2:return n=r.sent(),[2,new Uint8Array(n)]}}))}))},l.label=1;case 1:return l.trys.push([1,3,,4]),[4,Promise.all([n(),n()])];case 2:for(o=l.sent(),a=new Uint8Array(o[0].length),u=0;u0?e.lastIndexOf(".",n-1):-1,!1===t(e.slice(n+1)))return!1}while(n>=0);return!0}function Kn(e,t){Hn(t,e,365),function(e,t){var n;try{null===(n=null===localStorage||void 0===localStorage?void 0:localStorage.setItem)||void 0===n||n.call(localStorage,e,t)}catch(r){}}(t,e)}function Jn(e){var t,n;try{return null!==(n=null===(t=null===localStorage||void 0===localStorage?void 0:localStorage.getItem)||void 0===t?void 0:t.call(localStorage,e))&&void 0!==n?n:void 0}catch(r){}}function Xn(e,t,n,r,i){if(!t){var o=function(e,t){return t||(Object.prototype.hasOwnProperty.call(ct,e)||(e="us"),"https://tls-"+ct[e]+".fpapi.io")}(e,n);return G(i,(function(){return{e:6,endpoint:o}})),[lt(o,r,i),Date.now()]}}function Yn(e,n,o,a,u,s,c,l){var d=this,v=function(e,t,n,l,v,p,g){return r(d,void 0,void 0,(function(){var r,d,b,w,y,E,R,k,S;return i(this,(function(i){switch(i.label){case 0:return r=f(l).then((function(){throw new Error(dt)})),[4,Promise.race([r,Promise.all([m(g),h(l,n,g)])])];case 1:return d=i.sent(),b=d[0],w=d[1],E=function(e){return[zn(e),Jn(e)]}(y=c+"_t"),[4,jt({token:o,endpoint:Ft(a,u),components:b,customComponent:p,tag:e,visitorToken:E,tls:w,linkedId:t,extendedResult:v,algorithm:s},r,g)];case 2:return R=i.sent(),k=R[0],(S=R[1])&&Kn(S,y),[2,k]}}))}))},h=function(e,t,o){return r(d,void 0,void 0,(function(){var r,a,u,s,c;return i(this,(function(i){switch(i.label){case 0:if(!n||t)return[2,void 0];r=n[0],a=n[1],u=Math.min(Math.max(.1*e,a+1e4-Date.now()),.4*e),i.label=1;case 1:return i.trys.push([1,3,,4]),[4,r(f(u))];case 2:return s=i.sent(),G(o,(function(){return{e:7,result:s}})),[2,{value:s}];case 3:return c=i.sent(),G(o,(function(){return{e:8,error:c}})),[2,{error:c}];case 4:return[2]}}))}))},m=function(t){return r(d,void 0,void 0,(function(){var n,r;return i(this,(function(i){switch(i.label){case 0:return i.trys.push([0,2,,3]),[4,e()];case 1:return n=i.sent(),G(t,(function(){return{e:13,result:n}})),[2,n];case 2:throw r=i.sent(),G(t,(function(){return{e:14,error:r}})),r;case 3:return[2]}}))}))};return{get:function(e){void 0===e&&(e={});var n=l&&function(e,n){return function(r){return e(t(t({},r),{getCallId:n}))}}(l,O(8));return q(n,(function(){return{e:3,options:e}}),(function(e){return{e:4,result:e}}),(function(e){return{e:5,error:e}}),(function(){var t=e.timeout,r=void 0===t?1e4:t,i=e.tag,o=e.linkedId,a=e.disableTls,u=e.extendedResult,s=e.environment;return v(i,_(o),a,r,u,s,n)}))}}}function Zn(e,n,o){var u,s=this,c=x([null==o?void 0:o.debug,(u=/{(.*?)}/.exec(location.hash),!!u&&1915004642===function(e){for(var t=0,n=0;n '
+
+ backBtn.innerHTML = null;
+
+ cancelBtn.innerHTML = null;
+
+ noGIFs.innerHTML = null;
+
+ loadGIFs.innerHTML = null;
+ }
+ else {
+ backBtn.innerHTML = ' ';
+
+ cancelBtn.innerHTML = ' ';
+
+ let response = await fetch("/giphy?searchTerm=" + searchTerm + "&limit=48");
+ let data = await response.json()
+ var max = data.length - 1
+ data = data.data
+ var gifURL = [];
+
+ if (max <= 0) {
+ noGIFs.innerHTML = '
Aw shucks. No GIFs found...
';
+ container.innerHTML = null;
+ loadGIFs.innerHTML = null;
+ }
+ else {
+ for (var i = 0; i < 48; i++) {
+ gifURL[i] = "https://media.giphy.com/media/" + data[i].id + "/giphy.webp";
+ if (data[i].username==''){
+ container.innerHTML += ('');
+ }
+ else {
+ container.innerHTML += ('');
+ }
+ noGIFs.innerHTML = null;
+ loadGIFs.innerHTML = '
You have reached the end of the list!
';
+ }
+ }
+ }
+}
+
+function insertGIF(url,form) {
+
+ var gif = "\n\n";
+
+ var commentBox = document.getElementById(form);
+
+ var old = commentBox.value;
+
+ commentBox.value = old + gif;
+
+ if (typeof checkForRequired === "function") checkForRequired();
+}
\ No newline at end of file
diff --git a/files/assets/CHRISTMAS/js/hcaptcha.js b/files/assets/CHRISTMAS/js/hcaptcha.js
new file mode 100644
index 000000000..437ff47ad
--- /dev/null
+++ b/files/assets/CHRISTMAS/js/hcaptcha.js
@@ -0,0 +1 @@
+var hcaptcha=function(){"use strict";function e(e){var t=this.constructor;return this.then((function(n){return t.resolve(e()).then((function(){return n}))}),(function(n){return t.resolve(e()).then((function(){return t.reject(n)}))}))}function t(e){return new this((function(t,n){if(!e||"undefined"==typeof e.length)return n(new TypeError(typeof e+" "+e+" is not iterable(cannot read property Symbol(Symbol.iterator))"));var i=Array.prototype.slice.call(e);if(0===i.length)return t([]);var r=i.length;function o(e,n){if(n&&("object"==typeof n||"function"==typeof n)){var a=n.then;if("function"==typeof a)return void a.call(n,(function(t){o(e,t)}),(function(n){i[e]={status:"rejected",reason:n},0==--r&&t(i)}))}i[e]={status:"fulfilled",value:n},0==--r&&t(i)}for(var a=0;a>>0,o=Math.min(0|n,r);if(o<0)o=Math.max(0,r+o);else if(o>=r)return-1;if(void 0===t){for(;o!==r;++o)if(void 0===i[o]&&o in i)return o}else if(t!=t){for(;o!==r;++o)if(i[o]!=i[o])return o}else for(;o!==r;++o)if(i[o]===t)return o;return-1}}(Object)),Array.isArray||(Array.isArray=function(e){return"[object Array]"===Object.prototype.toString.call(e)}),document.getElementsByClassName||(window.Element.prototype.getElementsByClassName=document.constructor.prototype.getElementsByClassName=function(e){if(document.querySelectorAll)return document.querySelectorAll("."+e);for(var t=document.getElementsByTagName("*"),n=new RegExp("(^|\\s)"+e+"(\\s|$)"),i=[],r=0;rthis.length)&&(t=this.length),this.substring(t-e.length,t)===e});try{if(Object.defineProperty&&Object.getOwnPropertyDescriptor&&Object.getOwnPropertyDescriptor(Element.prototype,"textContent")&&!Object.getOwnPropertyDescriptor(Element.prototype,"textContent").get){var m=Object.getOwnPropertyDescriptor(Element.prototype,"innerText");Object.defineProperty(Element.prototype,"textContent",{get:function(){return m.get.call(this)},set:function(e){m.set.call(this,e)}})}}catch(ln){}Function.prototype.bind||(Function.prototype.bind=function(e){if("function"!=typeof this)throw new TypeError("Function.prototype.bind: Item Can Not Be Bound.");var t=Array.prototype.slice.call(arguments,1),n=this,i=function(){},r=function(){return n.apply(this instanceof i?this:e,t.concat(Array.prototype.slice.call(arguments)))};return this.prototype&&(i.prototype=this.prototype),r.prototype=new i,r}),"function"!=typeof Object.create&&(Object.create=function(e,t){function n(){}if(n.prototype=e,"object"==typeof t)for(var i in t)t.hasOwnProperty(i)&&(n[i]=t[i]);return new n}),Date.now||(Date.now=function(){return(new Date).getTime()}),window.console||(window.console={});for(var g,y,v,w,b,_,x=["error","info","log","show","table","trace","warn"],C=function(e){},k=x.length;--k>-1;)p=x[k],window.console[p]||(window.console[p]=C);if(window.atob)try{window.atob(" ")}catch(dn){window.atob=(g=window.atob,(y=function(e){return g(String(e).replace(/[\t\n\f\r ]+/g,""))}).original=g,y)}else{var E="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=",O=/^(?:[A-Za-z\d+\/]{4})*?(?:[A-Za-z\d+\/]{2}(?:==)?|[A-Za-z\d+\/]{3}=?)?$/;window.atob=function(e){if(e=String(e).replace(/[\t\n\f\r ]+/g,""),!O.test(e))throw new TypeError("Failed to execute 'atob' on 'Window': The string to be decoded is not correctly encoded.");var t,n,i;e+="==".slice(2-(3&e.length));for(var r="",o=0;o>16&255):64===i?String.fromCharCode(t>>16&255,t>>8&255):String.fromCharCode(t>>16&255,t>>8&255,255&t);return r}}if(Event.prototype.preventDefault||(Event.prototype.preventDefault=function(){this.returnValue=!1}),Event.prototype.stopPropagation||(Event.prototype.stopPropagation=function(){this.cancelBubble=!0}),window.Prototype&&Array.prototype.toJSON){console.error("[hCaptcha] Custom JSON polyfill detected, please remove to ensure hCaptcha works properly");var S=Array.prototype.toJSON,I=JSON.stringify;JSON.stringify=function(e){try{return delete Array.prototype.toJSON,I(e)}finally{Array.prototype.toJSON=S}}}Object.keys||(Object.keys=(v=Object.prototype.hasOwnProperty,w=!Object.prototype.propertyIsEnumerable.call({toString:null},"toString"),_=(b=["toString","toLocaleString","valueOf","hasOwnProperty","isPrototypeOf","propertyIsEnumerable","constructor"]).length,function(e){if("function"!=typeof e&&("object"!=typeof e||null===e))throw new TypeError("Object.keys called on non-object");var t,n,i=[];for(t in e)v.call(e,t)&&i.push(t);if(w)for(n=0;n<_;n++)v.call(e,b[n])&&i.push(b[n]);return i}));var P="challenge-passed",B="challenge-escaped",T="challenge-closed",M="challenge-expired",A="invalid-data",j="bundle-error",$="network-error",L="rate-limited",R="challenge-error",D="incomplete-answer",N="missing-captcha",z="missing-sitekey",W="invalid-captcha-id";function F(e,t){this.cause=e,this.message=t}function U(e){F.call(this,W,"Invalid hCaptcha id: "+e)}function J(){F.call(this,N,"No hCaptcha exists.")}function H(){F.call(this,z,"Missing sitekey - https://hcaptcha.com/docs/configuration#jsapi")}F.prototype=Error.prototype;var q=[],X=[],Y={add:function(e){q.push(e)},remove:function(e){for(var t=!1,n=q.length;--n>-1&&!1===t;)q[n].id===e.id&&(t=q[n],q.splice(n,1));return t},each:function(e){for(var t=-1;++t10&&X.splice(0,X.length-10)},getSession:function(){return X}};function G(){var e=this;this._bottom=0,this._top=0,this.storage={},this.add=function(t){return e.storage[e._top]=t,e._top++,t},this.remove=function(){if(!e.empty()){var t=e._bottom,n=e.storage[t];return e.storage[t]=null,e._bottom++,n}},this.empty=function(){return e._top===e._bottom},this.size=function(){return e._top-e._bottom}}var V={queue:G,depth:function un(e,t,n){if("object"==typeof e&&e[t]&&e[t].length>0)for(var i=e[t].length;--i>-1;)un(e[t][i],t,n);e!==undefined&&n(e)},breathe:function(e,t,n){var i=new G,r=null;for(i.add(e),r=i.remove();r;){for(var o=0;o0||navigator.msMaxTouchPoints>0),t=!1,n&&(t=["iOS","Windows Phone","Windows Mobile","Android","BlackBerry OS"].indexOf(n.name)>=0),e&&t),this.dpr=function(){return window.devicePixelRatio||1},this.mobile&&n&&"Windows"===n.family&&i.indexOf("touch")<0&&(this.mobile=!1),this.os="iOS"===n.family?"ios":"Android"===n.family?"android":"Mac OS X"===n.family?"mac":"Windows"===n.family?"windows":"Linux"===n.family?"linux":n.family.toLowerCase(),this.version=function(){if(!n)return"unknown";var e=n.major;return n.minor&&(e+="."+n.minor),n.patch&&(e+="."+n.patch),e}()}},se={host:null,file:null,sitekey:null,a11y_tfe:null,pingdom:"safari"===ae.Browser.type&&"windows"!==ae.System.os&&"mac"!==ae.System.os&&"ios"!==ae.System.os&&"android"!==ae.System.os,assetDomain:"https://newassets.hcaptcha.com",assetUrl:"https://newassets.hcaptcha.com/captcha/v1/e09e16a/static",width:null,height:null,mobile:null},he={se:null,custom:!1,tplinks:"on",language:null,reportapi:"https://accounts.hcaptcha.com",endpoint:"https://hcaptcha.com",endpointOverride:null,size:"normal",theme:"light",assethost:null,imghost:null,recaptchacompat:"true"};function ce(e,t){e.style.width="304px",e.style.height="78px",e.style.backgroundColor="#f9e5e5",e.style.position="relative",e.innerHTML="";var n=document.createElement("div");n.style.width="284px",n.style.position="absolute",n.style.top="12px",n.style.left="10px",n.style.color="#7c0a06",n.style.fontSize="14px",n.style.fontWeight="normal",n.style.lineHeight="18px",n.innerHTML=t||"Please upgrade your browser to complete this captcha.",e.appendChild(n)}var le=!0;function de(e){var t={message:e.name+": "+e.message};e.stack&&(t.stack_trace={trace:e.stack}),pe("report error","internal","debug",t),ue("internal error","error",se.file)}function ue(e,t,n,i){if(t=t||"error",le){var r="warn"===t?"warning":t;window.Raven&&Raven.captureMessage(e,{level:r,logger:n,extra:i})}}function pe(e,t,n,i){le&&window.Raven&&Raven.captureBreadcrumb({message:e,category:t,level:n,data:i})}function fe(e){var t=[].slice.call(arguments,1);"string"==typeof e?window[e]?"function"==typeof window[e]?window[e].apply(null,t):console.log("[hCaptcha] Callback '"+e+"' is not a function."):console.log("[hCaptcha] Callback '"+e+"' is not defined."):"function"==typeof e?e.apply(null,t):console.log("[hcaptcha] Invalid callback '"+e+"'.")}function me(){try{fe.apply(null,arguments)}catch(ln){console.error("[hCaptcha] There was an error in your callback."),console.error(ln)}}var ge={UUID:function(e){return/^[0-9A-F]{8}-[0-9A-F]{4}-[0-9A-F]{4}-[0-9A-F]{4}-[0-9A-F]{12}$/i.test(e)||!1},UUIDv4:function(e){return/^[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/i.test(e)||!1},URL:function(e){var t=new RegExp("^(http|https)://"),n=new RegExp("^((?!(data|javascript):).)*$");return t.test(e)&&n.test(e)}};function ye(e,t){var n,i="attempts"in(t=t||{})?t.attempts:1,r=t.delay||0,o=t.onFail;return n=function(t,n,a){e().then(t,(function(e){var t=i-- >0;o&&(t=!1!==o(e)&&t),t?setTimeout(a,r):n(e)}))},new Promise((function(e,t){n(e,t,(function i(){n(e,t,i)}))}))}var ve={eventName:function(e){var t=e;return"down"===e||"up"===e||"move"===e||"over"===e||"out"===e?t=!ae.System.mobile||"down"!==e&&"up"!==e&&"move"!==e?"mouse"+e:"down"===e?"touchstart":"up"===e?"touchend":"touchmove":"enter"===e&&(t="keydown"),t},actionName:function(e){var t=e;return"touchstart"===t||"mousedown"===t?t="down":"touchmove"===t||"mousemove"===t?t="move":"touchend"===t||"mouseup"===t?t="up":"mouseover"===t?t="over":"mouseout"===t&&(t="out"),t},eventCallback:function(e,t,n){var i=ve.actionName(e);return function(r){if(r=r||window.event,"down"===i||"move"===i||"up"===i||"over"===i||"out"===i||"click"===i){var o=ve.eventCoords(r);if(!o)return;var a=n.getBoundingClientRect();r.windowX=o.x,r.windowY=o.y,r.elementX=r.windowX-(a.x||a.left),r.elementY=r.windowY-(a.y||a.top)}r.keyNum=r.which||r.keyCode||0,"enter"===e&&13!==r.keyNum&&32!==r.keyNum||(r.action=i,r.targetElement=n,t(r))}},eventCoords:function(e){if(!e)return null;var t=e;if(e.touches||e.changedTouches){var n=e.touches&&e.touches.length>=1?e.touches:e.changedTouches;n&&n[0]&&(t=n[0])}return"number"==typeof t.pageX&&"number"==typeof t.pageY?{x:t.pageX,y:t.pageY}:"number"==typeof t.clientX&&"number"==typeof t.clientY?{x:t.clientX,y:t.clientY}:null}};function we(e){this.r=255,this.g=255,this.b=255,this.a=1,this.h=1,this.s=1,this.l=1,this.parseString(e)}function be(e,t,n){return n<0&&(n+=1),n>1&&(n-=1),n<1/6?e+6*(t-e)*n:n<.5?t:n<2/3?e+(t-e)*(2/3-n)*6:e}we.hasAlpha=function(e){return"string"==typeof e&&(-1!==e.indexOf("rgba")||9===e.length&&"#"===e[0])},we.prototype.parseString=function(e){e&&(0===e.indexOf("#")?this.fromHex(e):0===e.indexOf("rgb")&&this.fromRGBA(e))},we.prototype.fromHex=function(e){var t=1;9===e.length&&(t=parseInt(e.substr(7,2),16)/255);var n=(e=e.substr(1,6)).replace(/^([a-f\d])([a-f\d])([a-f\d])?$/i,(function(e,t,n,i){return t+t+n+n+i+i})),i=parseInt(n,16),r=i>>16,o=i>>8&255,a=255&i;this.setRGBA(r,o,a,t)},we.prototype.fromRGBA=function(e){var t=e.indexOf("rgba"),n=e.substr(t).replace(/rgba?\(/,"").replace(/\)/,"").replace(/[\s+]/g,"").split(","),i=Math.floor(parseInt(n[0])),r=Math.floor(parseInt(n[1])),o=Math.floor(parseInt(n[2])),a=parseFloat(n[3]);this.setRGBA(i,r,o,a)},we.prototype.setRGB=function(e,t,n){this.setRGBA(e,t,n,1)},we.prototype.setRGBA=function(e,t,n,i){this.r=e,this.g=t,this.b=n,this.a=isNaN(i)?this.a:i,this.updateHSL()},we.prototype.hsl2rgb=function(e,t,n){if(0===t){var i=Math.round(255*n);return this.setRGB(i,i,i),this}var r=n<=.5?n*(1+t):n+t-n*t,o=2*n-r;return this.r=Math.round(255*be(o,r,e+1/3)),this.g=Math.round(255*be(o,r,e)),this.b=Math.round(255*be(o,r,e-1/3)),this.h=e,this.s=t,this.l=n,this},we.prototype.updateHSL=function(){var e,t=this.r/255,n=this.g/255,i=this.b/255,r=Math.max(t,n,i),o=Math.min(t,n,i),a=null,s=(r+o)/2;if(r===o)a=e=0;else{var h=r-o;switch(e=s>.5?h/(2-r-o):h/(r+o),r){case t:a=(n-i)/h+(n1&&(e/=100),this.hsl2rgb(this.h,this.s,e),this},we.prototype.saturation=function(e){return e>1&&(e/=100),this.hsl2rgb(this.h,e,this.l),this},we.prototype.hue=function(e){return this.hsl2rgb(e/360,this.s,this.l),this};var _e=["Webkit","Moz","ms"],xe=document.createElement("div").style,Ce={};function ke(e){var t=Ce[e];return t||(e in xe?e:Ce[e]=function(e){for(var t=e[0].toUpperCase()+e.slice(1),n=_e.length;n--;)if((e=_e[n]+t)in xe)return e}(e)||e)}function Ee(e,t,n){if(this.dom=null,this._clss=[],this._nodes=[],this._listeners=[],this._frag=null,e&&"object"==typeof e){this.dom=e;var i=[],r=[];"string"==typeof e.className&&(r=e.className.split(" "));for(var o=0;o=0||e.indexOf(".")>=0))&&(e&&(t=e),e="div"),this.dom=document.createElement(e),t&&(t.indexOf("#")>=0?this.dom.id=t.split("#")[1]:(t.indexOf(".")>=0&&(t=t.split(".")[1]),this.addClass.call(this,t)));!0===n&&(this._frag=document.createDocumentFragment(),this._frag.appendChild(this.dom))}Ee.prototype.createElement=function(e,t){var n=new Ee(e,t,!1);return this.appendElement.call(this,n),this._nodes.push(n),n},Ee.prototype.appendElement=function(e){if(e===undefined)return de({name:"DomElement Add Child",message:"Child Element is undefined"});var t;t=e._frag!==undefined&&null!==e._frag?e._frag:e.dom!==undefined?e.dom:e;try{e instanceof Ee&&(e._parent=this),this.dom.appendChild(t)}catch(dn){de({name:"DomElement Add Child",message:"Failed to append child."})}return this},Ee.prototype.removeElement=function(e){try{var t;if(e._nodes)for(t=e._nodes.length;t--;)e.removeElement(e._nodes[t]);for(t=this._nodes.length;--t>-1;)this._nodes[t]===e&&this._nodes.splice(t,1);this.dom.removeChild(e.dom||e),e.__destroy&&e.__destroy()}catch(dn){de({name:"DomElement Remove Child",message:"Failed to remove child."})}},Ee.prototype.addClass=function(e){return!1===this.hasClass.call(this,e)&&(this._clss.push(e),this.dom.className=this._clss.join(" ")),this},Ee.prototype.hasClass=function(e){for(var t=-1!==this.dom.className.split(" ").indexOf(e),n=this._clss.length;n--&&!t;)t=this._clss[n]===e;return t},Ee.prototype.removeClass=function(e){for(var t=this._clss.length;--t>-1;)this._clss[t]===e&&this._clss.splice(t,1);return this.dom.className=this._clss.join(" "),this},Ee.prototype.text=function(e){if(this&&this.dom){if(!e)return this.dom.textContent;for(var t,n,i,r,o=/&(.*?);/g,a=/<[a-z][\s\S]*>/i;null!==(t=o.exec(e));){!1===a.test(t[0])?(i=t[0],r=void 0,(r=document.createElement("div")).innerHTML=i,n=r.textContent,e=e.replace(new RegExp(t[0],"g"),n)):e=e.replace(t[0],"")}return this.dom.textContent=e,this}},Ee.prototype.content=Ee.prototype.text,Ee.prototype.css=function(e){var t,n="ie"===ae.Browser.type&&8===ae.Browser.version;for(var i in e){t=e[i];try{"opacity"!==i&&"zIndex"!==i&&"fontWeight"!==i&&isFinite(t)&&parseFloat(t)===t&&(t+="px");var r=ke(i);n&&"opacity"===i?this.dom.style.filter="alpha(opacity="+100*t+")":n&&we.hasAlpha(t)?this.dom.style[r]=new we(t).getHex():this.dom.style[r]=t}catch(ln){}}return this},Ee.prototype.backgroundImage=function(e,t,n,i){var r=t!==undefined&&n!==undefined,o={"-ms-high-contrast-adjust":"none"};if("object"==typeof t&&(i=t),i===undefined&&(i={}),r){var a=e.width/e.height,s=t,h=s/a;i.cover&&hn&&(s=(h=n)*a),o.width=s,o.height=h,i.center&&(o.marginLeft=-s/2,o.marginTop=-h/2,o.position="absolute",o.left="50%",o.top="50%"),(i.left||i.right)&&(o.left=i.left||0,o.top=i.top||0)}"ie"===ae.Browser.type&&8===ae.Browser.version?o.filter="progid:DXImageTransform.Microsoft.AlphaImageLoader(src='"+e.src+"',sizingMethod='scale')":(o.background="url("+e.src+")",o.backgroundPosition="50% 50%",o.backgroundRepeat="no-repeat",o.backgroundSize=r?s+"px "+h+"px":i.cover?"cover":i.contain?"contain":"100%"),this.css.call(this,o)},Ee.prototype.setAttribute=function(e,t){var n;if("object"==typeof e)for(var i in e)n=e[i],this.dom.setAttribute(i,n);else this.dom.setAttribute(e,t)},Ee.prototype.removeAttribute=function(e,t){var n;if("object"==typeof e)for(var i in e)n=e[i],this.dom.removeAttribute(i,n);else this.dom.removeAttribute(e,t)},Ee.prototype.addEventListener=function(e,t,n){var i={event:ve.eventName(e),handler:ve.eventCallback(e,t,this.dom),callback:t};this._listeners.push(i),this.dom.addEventListener?this.dom.addEventListener(i.event,i.handler,n):this.dom.attachEvent("on"+i.event,i.handler)},Ee.prototype.removeEventListener=function(e,t,n){for(var i,r=this._listeners.length;--r>-1;)(i=this._listeners[r]).event===e&&i.callback===t&&(this._listeners.splice(r,1),this.dom.removeEventListener?this.dom.removeEventListener(i.event,i.handler,n):this.dom.detachEvent("on"+i.event,i.handler))},Ee.prototype.focus=function(){this.dom.focus()},Ee.prototype.blur=function(){this.dom.blur()},Ee.prototype.html=function(e){return e&&(this.dom.innerHTML=e),this.dom.innerHTML},Ee.prototype.__destroy=function(){for(var e,t=this._listeners.length;--t>-1;)e=this._listeners[t],this._listeners.splice(t,1),this.dom.removeEventListener?this.dom.removeEventListener(e.event,e.handler):this.dom.detachEvent("on"+e.event,e.handler);return this.dom=null,this._clss=[],this._nodes=[],this._listeners=[],this._frag=null,e=null,null};var Oe=function(e,t){var n={},i=Array.prototype.slice.call(arguments,2);for(var r in t.apply(e,i),e)n[r]=e[r]},Se=function(e,t){e.prototype=Object.create(t.prototype),e.prototype.constructor=e};function Ie(e,t){Oe(this,Ee,t||"div",e),this.children=[],this._events=[]}Se(Ie,Ee),Ie.prototype.initComponent=function(e,t,n){var i=new e(t);return i._parent=this,this.children.push(i),i.dom&&(n!==undefined?n.appendElement&&n.appendElement(i):this.appendElement(i)),i},Ie.prototype.destroy=function(){var e=this;try{V.depth(this,"children",(function(t){if(e!==t)for(var n=e.children.length;--n>-1;)e.children[n]===t&&e.children.splice(n,1);t._destroy&&t._destroy(),t=null}))}catch(dn){throw new Error("Trouble destroying nodes: "+dn)}return null},Ie.prototype._destroy=function(){try{this.onDestroy&&this.onDestroy(),this._parent.removeElement&&this._parent.removeElement(this);for(var e=this._events.length;--e>-1;)this._events.splice(e,1);this.children=null,this._destroy=null,this._events=null,this.destroy=null,this.emit=null,this.on=null,this.off=null,this.initComponent=null}catch(dn){de({name:"DomComponent",message:"Failed to destroy."})}},Ie.prototype.on=function(e,t){for(var n=this._events.length,i=!1;--n>-1&&!1===i;)this._events[n].event===e&&(i=this._events[n]);!1===i&&(i={event:e,listeners:[]},this._events.push(i)),i.listeners.push(t)},Ie.prototype.off=function(e,t){for(var n=this._events.length;--n>-1;)if(this._events[n].event===e){for(var i=this._events[n].listeners.length;--i>-1;)this._events[n].listeners[i]===t&&this._events[n].listeners.splice(i,1);0===this._events[n].listeners.length&&this._events.splice(n,1)}},Ie.prototype.emit=function(e){for(var t=Array.prototype.slice.call(arguments,1),n=this._events.length;--n>-1&&this._events;)if(this._events[n].event===e)for(var i=this._events[n].listeners.length;--i>-1;)this._events[n].listeners[i].apply(this,t)};var Pe={af:"Afrikaans",sq:"Albanian",am:"Amharic",ar:"Arabic",hy:"Armenian",az:"Azerbaijani",eu:"Basque",be:"Belarusian",bn:"Bengali",bg:"Bulgarian",bs:"Bosnian",my:"Burmese",ca:"Catalan",ceb:"Cebuano",zh:"Chinese","zh-CN":"Chinese Simplified","zh-TW":"Chinese Traditional",co:"Corsican",hr:"Croatian",cs:"Czech",da:"Danish",nl:"Dutch",en:"English",eo:"Esperanto",et:"Estonian",fa:"Persian",fi:"Finnish",fr:"French",fy:"Frisian",gd:"Gaelic",gl:"Galacian",ka:"Georgian",de:"German",el:"Greek",gu:"Gujurati",ht:"Haitian",ha:"Hausa",haw:"Hawaiian",he:"Hebrew",hi:"Hindi",hmn:"Hmong",hu:"Hungarian",is:"Icelandic",ig:"Igbo",id:"Indonesian",ga:"Irish",it:"Italian",ja:"Japanese",jw:"Javanese",kn:"Kannada",kk:"Kazakh",km:"Khmer",rw:"Kinyarwanda",ky:"Kirghiz",ko:"Korean",ku:"Kurdish",lo:"Lao",la:"Latin",lv:"Latvian",lt:"Lithuanian",lb:"Luxembourgish",mk:"Macedonian",mg:"Malagasy",ms:"Malay",ml:"Malayalam",mt:"Maltese",mi:"Maori",mr:"Marathi",mn:"Mongolian",ne:"Nepali",no:"Norwegian",ny:"Nyanja",or:"Oriya",pl:"Polish","pt-BR":"Portuguese (Brazil)",pt:"Portuguese (Portugal)",ps:"Pashto",pa:"Punjabi",ro:"Romanian",ru:"Russian",sm:"Samoan",sn:"Shona",sd:"Sindhi",si:"Singhalese",sr:"Serbian",sk:"Slovak",sl:"Slovenian",so:"Somani",st:"Southern Sotho",es:"Spanish",su:"Sundanese",sw:"Swahili",sv:"Swedish",tl:"Tagalog",tg:"Tajik",ta:"Tamil",tt:"Tatar",te:"Teluga",th:"Thai",tr:"Turkish",tk:"Turkmen",ug:"Uyghur",uk:"Ukrainian",ur:"Urdu",uz:"Uzbek",vi:"Vietnamese",cy:"Welsh",xh:"Xhosa",yi:"Yiddish",yo:"Yoruba",zu:"Zulu"},Be={zh:{"I am human":"我是人"},ar:{"I am human":"أنا الإنسان"},af:{"I am human":"Ek is menslike"},am:{"I am human":"እኔ ሰዠáŠáŠ"},hy:{"I am human":"ÔµÕ½ Õ´Õ¡Ö€Õ¤ Õ¥Õ´"},az:{"I am human":"MÉ™n insanam"},eu:{"I am human":"Gizakia naiz"},bn:{"I am human":"আমি মানব নই"},bg:{"I am human":"Ðз Ñъм човек"},ca:{"I am human":"Sóc humà "},hr:{"I am human":"Ja sam Äovjek"},cs:{"I am human":"Jsem ÄlovÄ›k"},da:{"I am human":"Jeg er et menneske"},nl:{"I am human":"Ik ben een mens"},et:{"I am human":"Ma olen inimeste"},fi:{"I am human":"Olen ihminen"},fr:{"I am human":"Je suis humain"},gl:{"I am human":"Eu son humano"},ka:{"I am human":"მე ვáƒáƒ áƒáƒ“áƒáƒ›áƒ˜áƒáƒœáƒ˜"},de:{"I am human":"Ich bin ein Mensch"},el:{"I am human":"Είμαι άνθÏωπος"},gu:{"I am human":"હà«àª‚ માનવ છà«àª‚"},iw:{"I am human":". ×× ×™ ×× ×•×©×™"},hi:{"I am human":"मैं मानव हूं"},hu:{"I am human":"Nem vagyok robot"},is:{"I am human":"Ég er manneskja"},id:{"I am human":"Aku manusia"},it:{"I am human":"Sono un essere umano"},ja:{"I am human":"ç§ã¯äººé–“ã§ã™"},kn:{"I am human":"ನಾನೠಮಾನವನà³"},ko:{"I am human":"사람입니다"},lo:{"I am human":"ຂ້àºàºà»€àº›àº±àº™àº¡àº°àº™àº¸àº”"},lv:{"I am human":"Es esmu cilvÄ“ks"},lt:{"I am human":"AÅ¡ esu žmogaus"},ms:{"I am human":"Saya manusia"},ml:{"I am human":"ഞാൻ മനàµà´·àµà´¯à´¨à´¾à´£àµ"},mr:{"I am human":"मी मानवी आहे"},mn:{"I am human":"Би бол хүн"},no:{"I am human":"Jeg er menneskelig"},fa:{"I am human":"من انسانی هستم"},pl:{"I am human":"Jestem czÅ‚owiekiem"},pt:{"I am human":"Sou humano"},ro:{"I am human":"Eu sunt om"},ru:{"I am human":"Я человек"},sr:{"I am human":"Ja sam ljudski"},si:{"I am human":"මම මිනිස්සු"},sk:{"I am human":"Ja som Älovek"},sl:{"I am human":"Jaz sem ÄloveÅ¡ki"},es:{"I am human":"Soy humano"},sw:{"I am human":"Mimi ni binadamu"},sv:{"I am human":"Jag är människa"},ta:{"I am human":"நான௠மனித"},te:{"I am human":"నేనౠమనిషిని"},th:{"I am human":"ผมมนุษย์"},tr:{"I am human":"Ben bir insanım"},uk:{"I am human":"Я людини"},ur:{"I am human":"میں انسان ÛÙˆÚº"},vi:{"I am human":"Tôi là con ngưá»i"},zu:{"I am human":"Ngingumuntu"}},Te=null,Me={translate:function(e,t){var n=Me.getBestTrans(Be),i=n&&n[e];if(i=i||e,t)for(var r=Object.keys(t),o=r.length;o--;)i=i.replace(new RegExp("{{"+r[o]+"}}","g"),t[r[o]]);return i},getBestTrans:function(e){var t=Me.getLocale();return t in e?e[t]:Me.getShortLocale(t)in e?e[Me.getShortLocale(t)]:"en"in e?e.en:null},getLocale:function(){var e=Te||window.navigator.userLanguage||window.navigator.language,t=Me.getShortLocale(e);return"in"===t&&(e="id"),"iw"===t&&(e="he"),"nb"===t&&(e="no"),"ji"===t&&(e="yi"),"zh-CN"===e&&(e="zh"),"jv"===t&&(e="jw"),Pe[e]?e:Pe[t]?t:"en"},setLocale:function(e){Te=e},getShortLocale:function(e){return e.indexOf("-")>=0?e.substring(0,e.indexOf("-")):e},isShortLocale:function(e){return 2===e.length||3===e.length},addTable:function(e,t){if(t||(t=Object.create(null)),Be[e]){var n=Be[e];for(var i in t)n[i]=t[i]}else Be[e]=t;return Be[e]},getTable:function(e){return Be[e]},addTables:function(e){for(var t in e)Me.addTable(t,e[t]);return Be},getTables:function(){return Be}};function Ae(e,t){this._period=e,this._interval=t,this._date=[],this._data=[],this._prevTimestamp=0,this._meanPeriod=0,this._meanCounter=0}Ae.prototype.getMeanPeriod=function(){return this._meanPeriod},Ae.prototype.getData=function(){return this._cleanStaleData(),this._data},Ae.prototype.getSize=function(){return this._cleanStaleData(),this._data.length},Ae.prototype.getCapacity=function(){return 0===this._period?this._interval:Math.ceil(this._interval/this._period)},Ae.prototype.push=function(e,t){this._cleanStaleData();var n=0===this._date.length;if(e-(this._date[this._date.length-1]||0)>=this._period&&(this._date.push(e),this._data.push(t)),!n){var i=e-this._prevTimestamp;this._meanPeriod=(this._meanPeriod*this._meanCounter+i)/(this._meanCounter+1),this._meanCounter++}this._prevTimestamp=e},Ae.prototype._cleanStaleData=function(){for(var e=Date.now(),t=this._date.length-1;t>=0;t--){if(e-this._date[t]>=this._interval){this._date.splice(0,t+1),this._data.splice(0,t+1);break}}};var je={touchstart:"ts",touchend:"te",touchmove:"tm",touchcancel:"tc"},$e={mousedown:"md",mouseup:"mu",mousemove:"mm"},Le={keydown:"kd",keyup:"ku"},Re={devicemotion:"dm"},De=function(e,t){var n=$e[e],i=null;return function(e){i=function(e){return[e.windowX,e.windowY,Date.now()]}(e),t(n,i)}},Ne=function(e,t){var n=je[e],i=null;return function(e){i=function(e){var t=[];try{var n,i;if(e.touches&&e.touches.length>=1?n=e.touches:e.changedTouches&&e.changedTouches.length>=1&&(n=e.changedTouches),n){for(var r=0;r-1&&!o;)(o=i[r][1]===n.id)&&(t=i[r][0])}catch(a){t=""}return t}function Ze(e,t){var n=e instanceof HTMLIFrameElement;try{n?e.parentNode&&e.contentWindow.postMessage(JSON.stringify(t),"*"):e.postMessage(JSON.stringify(t),"*")}catch(ln){ue(ln.message,"error","messaging")}}function et(e,t){this.target=e,this.id=t,this.messages=[],this.incoming=[],this.waiting=[]}function tt(e,t){var n=this,i={},r=new Promise((function(e,t){i.resolve=e,i.reject=t})),o={source:"hcaptcha",label:e,id:n.id,promise:null,lookup:t};return r.then((function(e){o.promise="resolve",null!==e&&(o.contents=e),Ze(n.target,o)}))["catch"]((function(e){o.promise="reject",null!==e&&(o.error=e),Ze(n.target,o)})),i}et.prototype.setID=function(e){this.id=e},et.prototype.contact=function(e,t){if(!this.id)throw new Error("Chat requires unique id to communicate between windows");var n=this,i=Date.now().toString(36),r={source:"hcaptcha",label:e,id:this.id,promise:"create",lookup:i};if(t){if("object"!=typeof t)throw new Error("Message must be an object.");r.contents=t}return new Promise((function(t,o){n.waiting.push({label:e,reject:o,resolve:t,lookup:i}),Ze(n.target,r)}))},et.prototype.listen=function(e,t){if(!this.id)throw new Error("Chat requires unique id to communicate between windows");for(var n=this.messages.length,i=!1;--n>-1&&!1===i;)this.messages[n].label===e&&(i=this.messages[n]);!1===i&&(i={label:e,listeners:[]},this.messages.push(i)),i.listeners.push(t)},et.prototype.answer=function(e,t){if(!this.id)throw new Error("Chat requires unique id to communicate between windows");for(var n=this.incoming.length,i=!1;--n>-1&&!1===i;)this.incoming[n].label===e&&(i=this.incoming[n]);!1===i&&(i={label:e,listeners:[]},this.incoming.push(i)),i.listeners.push(t)},et.prototype.send=function(e,t){if(!this.id)throw new Error("Chat requires unique id to communicate between windows");var n={source:"hcaptcha",label:e,id:this.id};if(t){if("object"!=typeof t)throw new Error("Message must be an object.");n.contents=t}Ze(this.target,n)},et.prototype.check=function(e,t){for(var n=[].concat.apply([],[this.messages,this.incoming,this.waiting]),i=[],r=-1;++r-1&&!1===h;)this.waiting[s].label===t.label&&this.waiting[s].lookup===t.lookup&&(h=!0,this.waiting.splice(s,1));continue}for(r=0;r-1&&!1===t;)e.id===nt.chats[n].id&&e.target===nt.chats[n].target&&(t=nt.chats[n],nt.chats.splice(n,1));return t},handle:function(e){var t=e.data;if("string"==typeof t)try{if(!(t.indexOf("hcaptcha")>=0))return;t=JSON.parse(t);for(var n,i=nt.chats,r=-1;++r=0&&(n=t[i]);return n}catch(dn){return""}},hasCookie:function(e){return!!it.getCookie(e)},supportsAPI:function(){try{return"hasStorageAccess"in document&&"requestStorageAccess"in document}catch(dn){return!1}},hasAccess:function(){return new Promise((function(e){document.hasStorageAccess().then((function(){e(!0)}))["catch"]((function(){e(!1)}))}))},requestAccess:function(){try{return document.requestStorageAccess()}catch(dn){return Promise.resolve()}}};function rt(){try{return Object.keys(window).sort().join(",")}catch(dn){return null}}function ot(e,t){for(var n in t){var i=t[n];switch(typeof i){case"string":e[n]=i;break;case"object":e[n]=e[n]||{},ot(e[n],i);break;default:throw new Error("Source theme contains invalid data types. Only string and object types are supported.")}}}function at(e,t){try{return e in t}catch(n){return!1}}function st(e){return!!e&&"object"==typeof e}function ht(e){return st(e)?ct({},e):e}function ct(e,t){var n,i={},r=Object.keys(e);for(n=0;n=0&&wt.use(n.theme),this._state={escaped:!1,passed:!1,expiredChallenge:!1,expiredResponse:!1},this._origData=null,this._promise=null,this._responseTimer=null,this.challenge=new _t(t,n),this.checkbox=new xt(e,t,n),this.initChallenge=this.initChallenge.bind(this),this.closeChallenge=this.closeChallenge.bind(this),this.displayChallenge=this.displayChallenge.bind(this),this.getGetCaptchaManifest=this.getGetCaptchaManifest.bind(this)}function kt(){Oe(this,Ee,"canvas");var e=this;this.element=this.dom,this.ctx=this.element.getContext("2d"),this.scale=1,this.dpr=window.devicePixelRatio||1,this.clearColor="#fff",this.ctx.roundedRect=function(t,n,i,r,o){var a=i>0?o:-o,s=r>0?o:-o;e.ctx.beginPath(),e.ctx.moveTo(t+a,n),e.ctx.lineTo(t+i-a,n),e.ctx.quadraticCurveTo(t+i,n,t+i,n+s),e.ctx.lineTo(t+i,n+r-s),e.ctx.quadraticCurveTo(t+i,n+r,t+i-a,n+r),e.ctx.lineTo(t+a,n+r),e.ctx.quadraticCurveTo(t,n+r,t,n+r-s),e.ctx.lineTo(t,n+s),e.ctx.quadraticCurveTo(t,n,t+a,n),e.ctx.closePath()}}function Et(e){e=e||{},this.x=e.x||0,this.y=e.y||0,this.rotate=this.rotate.bind(this),this.getDistance=this.getDistance.bind(this),this.radius=0,this.tolerance=0,this.fill=!1,this.stroke=!1,this.fillColor="#fff",this.strokeColor="#fff",this.strokeWidth=1}function Ot(e,t,n){Oe(this,Et,e),this.handleIn=new Et(t),this.handleOut=new Et(n),this.prev=null,this.next=null,this.index=0}function St(e){if(null===e)return"";var t=[];return It(e,t),t.join("&")}function It(e,t){var n,i;if("object"==typeof e)for(i in e)!0===Pt(n=e[i])?It(n,t):t[t.length]=Bt(i,n);else if(!0===Array.isArray(e))for(var r=0;rn.clientHeight,c=a?(r-this.width)/2:e.bounding.left+e.tick.right+10;(c+this.width+t>r||c<0)&&(c=(r-this.width)/2,a=!0);var l=(n.scrollHeight=i+o&&(d=i+o-(this.height+t)),d=Math.max(Math.min(d,l),10);var u=e.bounding.top+e.tick.y+i-d-10,p=this.height-10-30;return u=Math.max(Math.min(u,p),t),this.$container.css({left:c,top:d}),this.$arrow.fg.css({display:a?"none":"block"}),this.$arrow.bg.css({display:a?"none":"block"}),this.$arrow.css({top:u}),this.top=d,this.$container.dom.getBoundingClientRect(),h}},_t.prototype.destroy=function(){this._visible&&this.close.call(this),this._hasCustomContainer?this._parent.removeChild(this.$iframe.dom):(this._parent.removeChild(this.$container.dom),this.$container=this.$container.__destroy()),this.$iframe=this.$iframe.__destroy(),nt.removeChat(this.chat),this.chat=this.chat.destroy()},_t.prototype.setReady=function(e){if(this.ready=e,this.ready)for(var t,n=this.listeners.length;--n>-1;)t=this.listeners[n],this.listeners.splice(n,1),t()},_t.prototype.onReady=function(e){var t=Array.prototype.slice.call(arguments,1),n=function(){e.apply(null,t)};this.ready?n():this.listeners.push(n)},_t.prototype.onOverlayClick=function(e){this._hasCustomContainer||this.$overlay.addEventListener("click",e)},_t.prototype.setConfig=function(e){return this.chat?this.chat.contact("challenge-update",e):Promise.resolve()},_t.prototype.setData=function(e){this.chat&&this.chat.send("challenge-data",e)},xt.prototype.setResponse=function(e){this.response=e,this.$iframe.dom.setAttribute("data-hcaptcha-response",e),"off"!==he.recaptchacompat&&(this.$textArea0.dom.value=e),this.$textArea1.dom.value=e},xt.prototype.style=function(){switch(this.config.size){case"compact":this.$iframe.css({width:164,height:144});break;case"invisible":this.$iframe.css({display:"none"});break;default:this.$iframe.css({width:303,height:78,overflow:"hidden"})}},xt.prototype.reset=function(){this._ticked=!1,this.chat&&this.chat.send("checkbox-reset")},xt.prototype.clearLoading=function(){this.chat&&this.chat.send("checkbox-clear")},xt.prototype.sendTranslation=function(e){var t={locale:e,table:Me.getTable(e)||{}};this.chat&&this.chat.send("checkbox-translate",t)},xt.prototype.status=function(e,t){this.chat&&this.chat.send("checkbox-status",{text:e||null,a11yOnly:t||!1})},xt.prototype.tick=function(){this._ticked=!0,this.chat&&this.chat.send("checkbox-tick")},xt.prototype.getTickLocation=function(){return this.chat.contact("checkbox-location")},xt.prototype.getOffset=function(){var e=this.$iframe.dom;e.offsetParent||(e=e.parentElement);for(var t=0,n=0;e;)t+=e.offsetLeft,n+=e.offsetTop,e=e.offsetParent;return{top:n,left:t}},xt.prototype.getBounding=function(){return this.$iframe.dom.getBoundingClientRect()},xt.prototype.destroy=function(){this._ticked&&this.reset(),this.$container.removeElement(this.$iframe),this.$container.removeElement(this.$textArea1),"off"!==he.recaptchacompat&&(this.$container.removeElement(this.$textArea0),this.$textArea0=this.$textArea0.__destroy()),this.$textArea1=this.$textArea1.__destroy(),this.$container=this.$container.__destroy(),this.$iframe=this.$iframe.__destroy(),nt.removeChat(this.chat),this.chat=this.chat.destroy()},Ct.prototype._resetTimer=function(){null!==this._responseTimer&&(clearTimeout(this._responseTimer),this._responseTimer=null)},Ct.prototype.initChallenge=function(e){e||(e={}),this._origData=e;var t=this.getGetCaptchaManifest(),n=e.charity||null,i=e.a11yChallenge||!1,r=e.link||null,o=e.action||"",a=e.rqdata||null,s=ae.Browser.width(),h=ae.Browser.height();this._active=!0,this._resetTimer(),this._resetState(),this.checkbox.setResponse(""),this.challenge.setup({a11yChallenge:i,manifest:t,width:s,height:h,charity:n,link:r,action:o,rqdata:a,wdata:rt()})},Ct.prototype.getGetCaptchaManifest=function(){var e=(this._origData||{}).manifest||null;return e||((e=Object.create(null)).st=Date.now()),e.v=1,e.topLevel=Ue.getData(),e.session=Y.getSession(),e.widgetList=Y.getCaptchaIdList(),e.widgetId=this.id,e.href=window.location.href,e.prev=JSON.parse(JSON.stringify(this._state)),e},Ct.prototype.displayChallenge=function(e){if(this._active){var t=this;this.visible=!0;var n=this.checkbox,i=this.challenge,r=ae.Browser.height();if(!("ie"===ae.Browser.type&&8===ae.Browser.version)){var o=window.getComputedStyle(document.body).getPropertyValue("overflow-y");this.overflow.override="hidden"===o,this.overflow.override&&(this.overflow.cssUsed=""===document.body.style.overflow&&""===document.body.style.overflowY,this.overflow.cssUsed||(this.overflow.value=""===o?"auto":o),this.overflow.scroll=ae.Browser.scrollY(),document.body.style.overflowY="auto")}return new Promise((function(o){n.status(),n.getTickLocation().then((function(a){if(t._active){if(i.size(e.width,e.height,e.mobile),i.show(),n.clearLoading(),n.location.bounding=n.getBounding(),n.location.tick=a,n.location.offset=n.getOffset(),i.position(n.location))(window.document.scrollingElement||document.getElementsByTagName("html")[0]).scrollTop=Math.abs(i.height-r)+i.top;o()}}))})).then((function(){t.onOpen&&me(t.onOpen)}))}},Ct.prototype.resize=function(e,t,n){var i=this,r=this.checkbox,o=this.challenge;o.getDimensions(e,t).then((function(e){e&&o.size(e.width,e.height,e.mobile),r.location.bounding=r.getBounding(),r.location.offset=r.getOffset(),ae.System.mobile&&!n||o.position(r.location)}))["catch"]((function(e){i.closeChallenge.call(i,{event:R,message:"Captcha resize caused error.",error:e})}))},Ct.prototype.position=function(){var e=this.checkbox,t=this.challenge;ae.System.mobile||(e.location.bounding=e.getBounding(),t.position(e.location))},Ct.prototype.reset=function(){this.checkbox.reset(),this.checkbox.setResponse(""),this._resetTimer(),this._resetState()},Ct.prototype._resetState=function(){for(var e in this._state)this._state[e]=!1},Ct.prototype.closeChallenge=function(e){this.visible=!1,this._active=!1;var t=this,n=this.checkbox,i=this.challenge;this.overflow.override&&((window.document.scrollingElement||document.getElementsByTagName("html")[0]).scrollTop=this.overflow.scroll,this.overflow.override=!1,this.overflow.scroll=0,document.body.style.overflowY=this.overflow.cssUsed?null:this.overflow.value);var r=e.response||"";switch(n.setResponse(r),i.close(e.event),n.$iframe.dom.focus(),e.event){case B:this._state.escaped=!0,n.reset(),t.onClose&&me(t.onClose),t._promise&&t._promise.reject(T);break;case M:this._state.expiredChallenge=!0,n.reset(),n.status("hCaptcha window closed due to timeout.",!0),t.onChalExpire&&me(t.onChalExpire),t._promise&&t._promise.reject(M);break;case R:case j:case $:var o=e.event;n.reset(),e.event===$?(n.status(e.message),429===e.status?o=L:"invalid-data"===e.message&&(o=A)):e.event===j?o=R:e.event===R&&"Answers are incomplete"===e.message&&(o=D),this.onError&&me(this.onError,o),t._promise&&t._promise.reject(o);break;case P:this._state.passed=!0,n.tick(),this.onPass&&me(this.onPass,r),t._promise&&t._promise.resolve({response:r,key:Ke(this.id)}),"number"==typeof e.expiration&&(t._resetTimer(),t._responseTimer=setTimeout((function(){try{n.reset(),n.setResponse(""),n.status("hCaptcha security token has expired. Please complete the challenge again.",!0)}catch(dn){ue("Checkbox not present or could not destroy on expiration: "+dn.message,"error","global")}t.onExpire&&me(t.onExpire),t._responseTimer=null,t._state.expiredResponse=!0}),1e3*e.expiration))}t._promise=null},Ct.prototype.updateTranslation=function(e){this.checkbox.sendTranslation(e),this.challenge.sendTranslation(e)},Ct.prototype.isReady=function(){return this._ready},Ct.prototype.setReady=function(e){if(this._ready=e,this._ready)for(var t,n=this._listeners.length;--n>-1;)t=this._listeners[n],this._listeners.splice(n,1),t()},Ct.prototype.setPromise=function(e){this._promise=e},Ct.prototype.onReady=function(e){var t=Array.prototype.slice.call(arguments,1),n=function(){e.apply(null,t)};this._ready?n():this._listeners.push(n)},Ct.prototype.destroy=function(){(this._resetTimer(),this.overflow.override)&&((window.document.scrollingElement||document.getElementsByTagName("html")[0]).scrollTop=this.overflow.scroll,this.overflow.override=!1,this.overflow.scroll=0,document.body.style.overflowY=this.overflow.cssUsed?null:this.overflow.value);this.challenge.destroy(),this.checkbox.destroy(),this.challenge=null,this.checkbox=null},Ct.prototype.setSiteConfig=function(e){var t=e&&e.features&&e.features.custom_theme;if(this.config.themeConfig&&t){var n="custom-"+this.id;wt.add(n,wt.extend(wt.active(),this.config.themeConfig)),wt.use(n),this.challenge.style()}return this.challenge.setConfig({siteConfig:e,wdata:rt()})},Se(kt,Ee),kt.prototype.dimensions=function(e,t){this.css({width:e,height:t}),this.element.width=Math.round(e/this.scale)*this.dpr,this.element.height=Math.round(t/this.scale)*this.dpr,this.ctx.scale(this.dpr,this.dpr),this.width=Math.round(e/this.scale),this.height=Math.round(t/this.scale)},kt.prototype.clear=function(){this.ctx&&this.ctx.clearRect(0,0,this.element.width,this.element.height)},kt.prototype.draw=function(){this.ctx&&(this.ctx.fillStyle=this.clearColor,this.ctx.fillRect(0,0,this.element.width,this.element.height))},kt.prototype._destroy=function(){this.__destroy(),this.element=null,this.ctx=null,this.width=null,this.height=null},Et.prototype.rotate=function(e,t){var n=function(e){return e*(Math.PI/180)}(t),i=Math.sin(n),r=Math.cos(n),o=this.x-e.x,a=this.y-e.y;this.x=o*r-a*i+e.x,this.y=o*i+a*r+e.y},Et.prototype.getDistance=function(e){return Math.sqrt(Math.pow(this.x-e.x,2)+Math.pow(this.y-e.y,2))},Et.prototype.getAngle=function(e){var t=e.x-this.x,n=e.y-this.y,i=180*Math.atan2(n,t)/Math.PI;return i<0&&(i+=360),i},Et.prototype.hitTest=function(e){return this.radius+this.tolerance>=this.getDistance(e)},Et.prototype.restrict=function(e,t,n,i){if("x"!==e&&"y"!==e)throw new Error("Point.restrict requires a value: x or y");return t+this[e]i&&(t=i-this[e]),this[e]+t},Et.prototype.draw=function(e){e.ctx.beginPath(),e.ctx.arc(this.x,this.y,this.radius/e.scale,0,2*Math.PI,!1),this.fill&&(e.ctx.fillStyle=this.fillColor,e.ctx.fill()),this.stroke&&(e.ctx.strokeStyle=this.strokeColor,e.ctx.lineWidth=this.strokeWidth/e.scale,e.ctx.stroke())},Se(Ot,Et),Ot.prototype.set=function(e,t,n){this.x=e.x||this.x,this.y=e.y||this.y,t===undefined?(this.handleIn.x=this.x,this.handleIn.y=this.y):(this.handleIn.x=t.x,this.handleIn.y=t.y),n===undefined?(this.handleOut.x=this.x,this.handleOut.y=this.y):(this.handleOut.x=n.x,this.handleOut.y=n.y)},Ot.prototype.clone=function(){var e={x:this.x,y:this.y},t={x:this.handleIn.x,y:this.handleIn.y},n={x:this.handleOut.x,y:this.handleOut.y},i=new Ot;return t.x===n.x&&t.y===n.y?i.set(e):i.set(e,t,n),i.index=this.index,i.prev=this.prev,i.next=this.next,i.radius=this.radius,i.tolerance=this.tolerance,i.fill=this.fill,i.stroke=this.stroke,i.fillColor=this.fillColor,i.strokeColor=this.strokeColor,i.strokeWidth=this.strokeWidth,i},Ot.prototype.move=function(e,t){this.x+=e,this.y+=t,this.handleIn.x+=e,this.handleIn.y+=t,this.handleOut.x+=e,this.handleOut.y+=t},Ot.prototype.render=function(e){this.handleIn.x!==this.x&&this.handleIn.y!==this.y&&this.handleIn.draw(e),this.handleOut.x!==this.x&&this.handleOut.y!==this.y&&this.handleOut.draw(e),this.draw(e)};var Tt={400:"Rate limited or network error. Please retry.",429:"Your computer or network has sent too many requests.",500:"Cannot contact hCaptcha. Check your connection and try again."},Mt=function(e){try{return Me.translate(Tt[e])}catch(dn){return!1}},At="undefined"!=typeof XDomainRequest&&!("withCredentials"in XMLHttpRequest.prototype);function jt(e,t,n){n=n||{};var i={url:t,method:e.toUpperCase(),responseType:n.responseType||"string",dataType:n.dataType||null,withCredentials:n.withCredentials||!1,headers:n.headers||null,data:n.data||null,timeout:n.timeout||null};return i.legacy=i.withCredentials&&At,i.data&&("json"===i.dataType&&"object"==typeof i.data&&(i.data=JSON.stringify(i.data)),"query"===i.dataType&&(i.data=St(i.data))),n.retry?ye((function(){return $t(i)}),n.retry):$t(i)}function $t(e){var t=e.legacy?new XDomainRequest:new XMLHttpRequest,n="function"==typeof e.url?e.url():e.url;return new Promise((function(i,r){var o,a=function(o){return function(){var a=t.response||t.responseText,s=t.statusText||"",h=t.status,c=t.readyState;if(4===c||e.legacy){if("json"===e.responseType&&a)try{a=JSON.parse(a)}catch(l){}if("error"===o||h>=400&&h<=511)return void r({event:$,endpoint:n,response:a,state:c,status:h,message:Mt(h||400)||s});i({state:c,status:h,body:a,message:s})}}};if((t.onload=a("complete"),t.onerror=t.ontimeout=a("error"),t.open(e.method,n),e.timeout&&(t.timeout=e.timeout),!e.legacy)&&(t.withCredentials=e.withCredentials,e.headers))for(var s in e.headers)o=e.headers[s],t.setRequestHeader(s,o);setTimeout((function(){t.send(e.data)}),0)}))}var Lt=function(e,t){if("object"==typeof e&&t===undefined&&(e=(t=e).url),null===e)throw new Error("Url missing");return jt("GET",e,t)},Rt=function(e){return e.toLowerCase().match(/\.(?:jpg|gif|png|jpeg|svg)$/g)?"image":e.toLowerCase().match(/\.(?:js)$/g)?"script":"file"},Dt=function(e){if(he.assethost&&e.indexOf(se.assetDomain)>=0)return he.assethost+e.replace(se.assetDomain,"");if(he.imghost&&e.indexOf("imgs")>=0){var t=e.indexOf(".ai")>=0?e.indexOf(".ai")+3:e.indexOf(".com")+4;return he.imghost+e.substr(t,e.length)}return e},Nt=["svg","gif","png"];function zt(e,t){t=t||{};var n,i=e;if(0===i.indexOf("data:image"))for(var r=!1,o=Nt.length,a=-1;a++=0)&&(n=Nt[a]);else n=i.substr(i.lastIndexOf(".")+1,i.length);!!(!document.createElementNS||!document.createElementNS("http://www.w3.org/2000/svg","svg").createSVGRect)&&t.fallback&&(t.fallback.indexOf(".")>=0?n=(i=t.fallback).substr(i.lastIndexOf(".")+1,i.length):(i=e.substr(0,e.indexOf(n))+t.fallback,n=t.fallback)),t.prefix&&(i=t.prefix+"/"+i),this.attribs={crossOrigin:t.crossOrigin||null},this.id=i,this.src=Dt(i),this.ext=n,this.width=0,this.height=0,this.aspect=0,this.loaded=!1,this.error=!1,this.element=null,this.cb={load:[],error:[]}}function Wt(e,t,n){for(var i=e[t],r=i.length,o=null;--r>-1;)o=i[r],i.splice(r,1),o(n);"error"===t?e.load=[]:e.error=[]}function Ft(e,t){var n=e;t||(t={}),t.prefix&&(n=t.prefix+"/"+e),this.attribs={defer:t.defer||null,async:t.async||null,crossOrigin:t.crossOrigin||null},this.id=n,this.src=Dt(n),this.loaded=!1,this.error=!1,this.element=null,this.cb={load:[],error:[]}}function Ut(e,t,n){for(var i=e[t],r=i.length,o=null;--r>-1;)o=i[r],i.splice(r,1),o(n);"error"===t?e.load=[]:e.error=[]}function Jt(e,t){var n=e;t||(t={}),t.prefix&&(n=t.prefix+"/"+e),this.id=n,this.src=Dt(n),this.loaded=!1,this.error=!1,this.cb={load:[],error:[]},this.data=null}function Ht(e,t,n){for(var i=e[t],r=i.length,o=null;--r>-1;)o=i[r],i.splice(r,1),o(n);"error"===t?e.load=[]:e.error=[]}zt.prototype.load=function(){return("svg"===this.ext?this._loadSvg():this._loadImg())["catch"]((function(e){throw ue("Asset failed","error","assets",{error:e}),e}))},zt.prototype._loadSvg=function(){var e,t=this,n=this.src,i=this.id;if(0===n.indexOf("data:image/svg+xml")){var r=n.slice("data:image/svg+xml,".length);e=Promise.resolve(decodeURIComponent(r))}else e=Lt(n).then((function(e){return e.body}));return e.then((function(e){var n=(new DOMParser).parseFromString(e,"image/svg+xml").documentElement,i=parseInt(n.getAttribute("width")),r=parseInt(n.getAttribute("height"));return t._imgLoaded(n,i,r),t}))["catch"]((function(e){t.error=!0;var n=(e&&e.message?e.message:"Loading Error")+": "+i;throw Wt(t.cb,"error",n),n}))},zt.prototype._loadImg=function(){var e=this,t=this.attribs,n=this.src,i=this.id;return new Promise((function(r,o){var a=new Image;t.crossOrigin&&(a.crossOrigin=t.crossOrigin),a.onerror=function(t){e.error=!0,a.onload=a.onerror=null;var n=(t&&t.message?t.message:"Loading Error")+": "+i;Wt(e.cb,"error",n),o(n)},a.onload=function(){e.loaded||(e._imgLoaded(a,a.width,a.height),a.onload=a.onerror=null,r(e))},a.src=n,a.complete&&a.onload()}))},zt.prototype._imgLoaded=function(e,t,n){this.element=new Ee(e),this.width=t,this.height=n,this.aspect=t/n,this.loaded=!0,Wt(this.cb,"load",this)},zt.prototype.onload=function(e){this.error||(this.loaded?e(this):this.cb.load.push(e))},zt.prototype.onerror=function(e){this.loaded&&!this.error||(this.error?e(this):this.cb.error.push(e))},Ft.prototype.load=function(){var e=this,t=this.attribs,n=this.src,i=this.id;return new Promise((function(r,o){var a=document.createElement("script");e.element=a,a.onerror=function(t){e.error=!0,a.onload=a.onreadystatechange=a.onerror=null;var n=(t.message||"Loading Error")+": "+i;Ut(e.cb,"error",n),o(n)},a.onload=a.onreadystatechange=function(){this.loaded||a.readyState&&"loaded"!==a.readyState&&"complete"!==a.readyState||(e.loaded=!0,a.onload=a.onreadystatechange=a.onerror=null,document.body.removeChild(a),Ut(e.cb,"load",e),r(e))},a.type="text/javascript",a.src=n,t.crossOrigin&&(a.crossorigin=t.crossOrigin),t.async&&(a.async=!0),t.defer&&(a.defer=!0),document.body.appendChild(a),a.complete&&a.onload()}))},Ft.prototype.onload=function(e){this.error||(this.loaded?e(this):this.cb.load.push(e))},Ft.prototype.onerror=function(e){this.loaded&&!this.error||(this.error?e(this):this.cb.error.push(e))},Jt.prototype.load=function(){var e=this,t=this.src,n=this.id;return new Promise((function(i,r){var o={};t.indexOf("json")>=0&&(o.responseType="json"),Lt(t,o).then((function(t){e.loaded=!0,e.data=t.body,Ht(e.cb,"load",e),i(e)}))["catch"]((function(t){e.error=!0;var i=(t&&t.message?t.message:"Loading Error")+": "+n;Ht(e.cb,"error",i),r(i)}))}))},Jt.prototype.onload=function(e){this.error||(this.loaded?e(this):this.cb.load.push(e))},Jt.prototype.onerror=function(e){this.loaded&&!this.error||(this.error?e(this):this.cb.error.push(e))};var qt=[],Xt={add:function(e,t){var n=Rt(e);return Xt[n]?Xt[n](e,t):Promise.resolve(null)},batch:function(e,t){for(var n=[],i=-1;++i-1&&!r;)r=(o=qt[i]).id===e||-1!==o.id.indexOf("/"===e[0]?"":"/"+e);if(!r)return t(null);o.onload(t),o.onerror(n)}))}};function Yt(e){if("en"===e)return Promise.resolve();var t=e+".json";return new Promise((function(n,i){Xt.retrieve(t).then((function(n){return n||Xt.file(t,{prefix:"https://newassets.hcaptcha.com/captcha/v1/e09e16a/static/i18n"}).then((function(t){return Me.addTable(e,t.data),t}))})).then((function(e){n(e.data)}))["catch"]((function(e){i(e)}))}))}var Gt=0,Vt=["hl","custom","tplinks","sitekey","theme","size","tabindex","challenge-container"];var Qt={render:function(e,t){if("string"==typeof e&&(e=document.getElementById(e)),e&&1===e.nodeType)if(function(e){if(!e||!("challenge-container"in e))return!0;var t=e["challenge-container"];return"string"==typeof t&&(t=document.getElementById(t)),!!t&&1===t.nodeType}(t)){if(!1!==nt.isSupported()){for(var n,i,r=e.getElementsByTagName("iframe"),o=-1;++oupgrade your browser or enable it for hCaptcha.com")}else console.log("[hCaptcha] render: invalid challenge container '"+t["challenge-container"]+"'.");else console.log("[hCaptcha] render: invalid container '"+e+"'.");function v(e,t){var n=e.locale;function i(e){if(e)try{e.updateTranslation(n)}catch(ln){ue("Failed to update text translation: "+JSON.stringify(ln),"error","translation")}}n&&Yt(n).then((function(){t?i(g):Y.each(i)}))["catch"]((function(e){ue("Language failed to load: "+n,"error","api")}))}},reset:function(e){var t;if(e){if(!(t=Y.getById(e)))throw new U(e);t.reset()}else{if(!(t=Y.getByIndex(0)))throw new J;t.reset()}},remove:function(e){var t=e?Y.getById(e):Y.getByIndex(0);if(!t)throw e?new U(e):new J;Y.remove(t),t.destroy(),t=null},execute:Qe,getResponse:function(e){var t,n;if((n=e?Y.getById(e):Y.getByIndex(0))&&(t=n.checkbox.response||""),void 0!==t)return t;throw e?new U(e):new J},getRespKey:Ke,close:function(e){var t=!1;if(!(t=e?Y.getById(e):Y.getByIndex(0)))throw e?new U(e):new J;t.closeChallenge({event:B})},setData:function(e,t){if("object"!=typeof e||t||(t=e,e=null),!t||"object"!=typeof t)throw Error("[hCaptcha] invalid data supplied");var n=!1;if(!(n=e?Y.getById(e):Y.getByIndex(0)))throw e?new U(e):new J;var i=n.challenge.setData.bind(n.challenge);n.onReady(i,t)},nodes:Y};se.file="hcaptcha";var Kt=document.currentScript,Zt=!1,en=!1,tn="on",nn=ae.Browser.width()/ae.Browser.height(),rn=window.hcaptcha||!1;function on(){var e=ae.Browser.width(),t=ae.Browser.height(),n=ae.System.mobile&&nn!==e/t;nn=e/t,hn(),Qt.nodes.each((function(i){i.visible&&i.resize(e,t,n)}))}function an(e){e.preventDefault&&e.preventDefault(),sn(),Qt.nodes.each((function(e){e.visible&&e.position()}))}function sn(){Ue.circBuffPush("xy",[ae.Browser.scrollX(),ae.Browser.scrollY(),document.documentElement.clientWidth/ae.Browser.width(),Date.now()])}function hn(){Ue.circBuffPush("wn",[ae.Browser.width(),ae.Browser.height(),ae.System.dpr(),Date.now()])}!function(e){var t=Array.prototype.slice.call(arguments,1);!0!==qe&&"interactive"!==document.readyState&&"loaded"!==document.readyState&&"complete"!==document.readyState?(Je.push({fn:e,args:t}),!1===He&&Xe()):setTimeout((function(){e(t)}),1)}((function(){rn||(!function(){var e;e=Kt?[Kt]:document.getElementsByTagName("script");var t=-1,n=!1,i=null,r=null;for(;++t=0?e.split("&"):[e]:[],a=0;a=0){if(t=o[a].split("="),n=decodeURIComponent(t[0]),"false"!==(i=decodeURIComponent(t[1]))&&"true"!==i||(i="true"===i),"theme"===n||"themeConfig"===n)try{i=JSON.parse(i)}catch(dn){}r[n]=i}return r}(i[1]);Zt=o.onload||!1,en=o.render||!1,"off"===o.tplinks&&(tn="off");he.tplinks=tn,he.language=o.hl||null,o.endpoint&&(he.endpointOverride=o.endpoint);he.reportapi=o.reportapi||he.reportapi,he.imghost=o.imghost||null,he.custom=o.custom||he.custom,he.se=o.se||null,he.assethost=o.assethost||null,he.assethost&&!ge.URL(he.assethost)&&(he.assethost=null,console.error("Invalid assethost uri."));he.recaptchacompat=o.recaptchacompat||he.recaptchacompat,se.host=o.host||window.location.hostname,he.language=he.language||window.navigator.userLanguage||window.navigator.language,Me.setLocale(he.language),a=o.sentry===undefined||o.sentry,void(le=a),"off"===he.recaptchacompat?console.log("recaptchacompat disabled"):window.grecaptcha=cn;var a}(),function(){var e=Me.getLocale();if(e.indexOf("en")>=0)return;Yt(e).then((function(){Qt.nodes.each((function(t){if(t)try{t.updateTranslation(e)}catch(ln){ue("Failed to update text translation: "+JSON.stringify(ln),"error","translation")}}))}))["catch"]((function(){ue("Language failed to load: "+e,"error","api")}))}(),!1===en||"onload"===en?function(e){for(var t=document.getElementsByClassName("h-captcha"),n=[],i=0;i= 200 && xhr.status < 300) {
+ var myToast = new bootstrap.Toast(document.getElementById('toast-post-success'));
+ myToast.show();
+ try {
+ document.getElementById('toast-post-success-text').innerText = JSON.parse(xhr.response)["message"];
+ } catch(e) {
+ document.getElementById('toast-post-success-text').innerText = "Action successful!";
+ }
+
+ if (reload == 1) {location.reload(true)}
+ return true
+
+ } else if (xhr.status >= 300 && xhr.status < 400) {
+ window.location.href = JSON.parse(xhr.response)["redirect"]
+ } else {
+ try {
+ data=JSON.parse(xhr.response);
+
+ var myToast = new bootstrap.Toast(document.getElementById('toast-post-error'));
+ myToast.show();
+ document.getElementById('toast-post-error-text').innerText = data["error"];
+ return false
+ } catch(e) {
+ var myToast = new bootstrap.Toast(document.getElementById('toast-post-success'));
+ myToast.hide();
+ var myToast = new bootstrap.Toast(document.getElementById('toast-post-error'));
+ myToast.show();
+ return false
+ }
+ }
+ };
+
+ xhr.send(form);
+
+}
\ No newline at end of file
diff --git a/files/assets/CHRISTMAS/js/home.js b/files/assets/CHRISTMAS/js/home.js
new file mode 100644
index 000000000..c8cc9751b
--- /dev/null
+++ b/files/assets/CHRISTMAS/js/home.js
@@ -0,0 +1,12 @@
+if (!("standalone" in window.navigator) && window.navigator.standalone) {
+ if (window.innerWidth <= 737) {
+ document.getElementById('mobile-prompt').show()
+ document.getElementsByClassName('tooltip')[0].onclick = function(event){
+ document.getElementById('mobile-prompt').hide()
+ var xhr = new XMLHttpRequest();
+ xhr.withCredentials=true;
+ xhr.open("POST", '/dismiss_mobile_tip', true);
+ xhr.send();
+ }
+ }
+}
\ No newline at end of file
diff --git a/files/assets/CHRISTMAS/js/horizon_tweet.2bd42981e3af03ce9186a5655508da28.js b/files/assets/CHRISTMAS/js/horizon_tweet.2bd42981e3af03ce9186a5655508da28.js
new file mode 100644
index 000000000..1ba6ebafd
--- /dev/null
+++ b/files/assets/CHRISTMAS/js/horizon_tweet.2bd42981e3af03ce9186a5655508da28.js
@@ -0,0 +1 @@
+(window.__twttrll=window.__twttrll||[]).push([[8],{168:function(t,e,r){var i=r(39),a=r(170),n=r(7);(i=Object.create(i)).build=n(i.build,null,a),t.exports=i},169:function(t,e,r){var i=r(42),a=r(37),n=r(38),s=r(0),o=r(7),d=r(33),c=r(5),u=r(174);t.exports=function(t){t.params({partner:{fallback:o(d.val,d,"partner")}}),t.define("scribeItems",function(){return{}}),t.define("scribeNamespace",function(){return{client:"tfw"}}),t.define("scribeData",function(){return{widget_origin:n.rootDocumentLocation(),widget_frame:n.isFramed()&&n.currentDocumentLocation(),widget_partner:this.params.partner,widget_site_screen_name:u(d.val("site")),widget_site_user_id:c.asNumber(d.val("site:id")),widget_creator_screen_name:u(d.val("creator")),widget_creator_user_id:c.asNumber(d.val("creator:id"))}}),t.define("scribe",function(t,e,r){t=s.aug(this.scribeNamespace(),t||{}),e=s.aug(this.scribeData(),e||{}),i.scribe(t,e,!1,r)}),t.define("scribeInteraction",function(t,e,r){var i=a.extractTermsFromDOM(t.target);i.action=t.type,"url"===i.element&&(i.element=a.clickEventElement(t.target)),this.scribe(i,e,r)})}},170:function(t,e,r){var i=r(40),a=r(0),n=r(171);function s(){i.apply(this,arguments),this.Widget=this.Component}s.prototype=Object.create(i.prototype),a.aug(s.prototype,{factory:n,build:function(){return i.prototype.build.apply(this,arguments)},selectors:function(t){var e=this.Widget.prototype.selectors;t=t||{},this.Widget.prototype.selectors=a.aug({},t,e)}}),t.exports=s},171:function(t,e,r){var i=r(6),a=r(35),n=r(41),s=r(0),o=r(7),d=r(172),c="twitter-widget-";t.exports=function(){var t=n();function e(e,r){t.apply(this,arguments),this.id=c+d(),this.sandbox=r}return e.prototype=Object.create(t.prototype),s.aug(e.prototype,{selectors:{},hydrate:function(){return i.resolve()},prepForInsertion:function(){},render:function(){return i.resolve()},show:function(){return i.resolve()},resize:function(){return i.resolve()},select:function(t,e){return 1===arguments.length&&(e=t,t=this.el),t?(e=this.selectors[e]||e,s.toRealArray(t.querySelectorAll(e))):[]},selectOne:function(){return this.select.apply(this,arguments)[0]},selectLast:function(){return this.select.apply(this,arguments).pop()},on:function(t,e,r){var i,n=this.el;this.el&&(t=(t||"").split(/\s+/),2===arguments.length?r=e:i=e,i=this.selectors[i]||i,r=o(r,this),t.forEach(i?function(t){a.delegate(n,t,i,r)}:function(t){n.addEventListener(t,r,!1)}))}}),e}},172:function(t,e){var r=0;t.exports=function(){return String(r++)}},173:function(t,e,r){var i=r(5),a=r(0);t.exports=function(t){t.define("widgetDataAttributes",function(){return{}}),t.define("setDataAttributes",function(){var t=this.sandbox.sandboxEl;a.forIn(this.widgetDataAttributes(),function(e,r){i.hasValue(r)&&t.setAttribute("data-"+e,r)})}),t.after("render",function(){this.setDataAttributes()})}},174:function(t,e){t.exports=function(t){return t&&"@"===t[0]?t.substr(1):t}},175:function(t,e,r){var i=r(0);t.exports=function(t){return i.isType("string",t)}},179:function(t,e,r){var i=r(4),a=r(5),n=i.createElement("div");t.exports=function(t){return a.isNumber(t)&&(t+="px"),n.style.width="",n.style.width=t,n.style.width||null}},182:function(t,e){var r=/^(dark|light)$/;t.exports=function(t){return r.test(t)}},236:function(t,e,r){var i=r(6),a=r(46),n=r(20),s=r(168),o=r(18),d=r(19),c=r(0),u=r(11),l=r(37),f=r(36),p=r(237),h=r(238),m="Twitter Tweet",g=a.version;t.exports=s.couple(r(169),r(173),function(t){t.params(p),t.define("getUrlParams",function(t,e){var r=this.scribeData();return c.compact({dnt:d.enabled(),features:f.encodeFeatures(t),hideCard:this.params.hideCard,hideThread:this.params.hideThread,id:this.params.tweetId,lang:this.params.lang,embedId:this.id,theme:this.params.theme,partner:this.params.partner,widgetsVersion:g,width:this.params.width,origin:r.widget_origin,frame:r.widget_frame,sessionId:e,siteScreenName:r.widget_site_screen_name,siteUserId:r.widget_site_user_id,creatorScreenName:r.widget_creator_screen_name,creatorUserId:r.widget_creator_user_id})}),t.around("scribeItems",function(t){return c.aug(t(),l.formatHorizonTweetData(this.params.tweetId))}),t.around("scribeNamespace",function(t){return c.aug(t(),{page:"tweet"})}),t.around("scribeData",function(t){return c.aug(t(),{context:"horizon",widget_iframe_version:this.sandbox.iframeVersion})}),t.around("widgetDataAttributes",function(t){return c.aug({"tweet-id":this.params.tweetId},t())}),t.define("styleSandboxWrapper",function(t){var e=this;return o.write(function(){c.forIn(t,function(t,r){e._sandboxWrapperEl.style[t]=r})})}),t.override("render",function(){var t=this;return f.getHorizonSettings().then(function(e){var r=t.getUrlParams(e.features,e.sessionId),a=n.embedIframe(["Tweet"],e.features),s=u.url(a,r);return h(e.features,t.params.tweetId,e.sessionId),t.sandbox.setWaitToSwapUntilRendered(!0),i.all([t.sandbox.setTitle(m),t.styleSandboxWrapper({display:"flex",maxWidth:t.params.width,width:"100%",marginTop:"10px",marginBottom:"10px"}),t.sandbox.styleSelf({display:"block",flexGrow:"1"}),t.sandbox.loadDocument(s)])})}),t.after("render",function(){var t=this.sandbox;return t.getResultsPromise().then(function(){t.makeVisible()}).then(function(){return t.getRenderedPromise()})})})},237:function(t,e,r){var i=r(179),a=r(7),n=r(71),s=r(175),o=r(182),d=r(33),c=r(5),u={tweetId:{required:!0,validate:s},id:{validate:s},lang:{required:!0,transform:n.matchLanguage,fallback:"en"},width:{required:!0,fallback:"550px",validate:i,transform:i},theme:{fallback:[a(d.val,d,"widgets:theme"),"light"],validate:o},hideCard:{fallback:!1,transform:c.asBoolean},hideThread:{fallback:!1,transform:c.asBoolean},partner:{fallback:a(d.val,d,"partner")}};t.exports=u},238:function(t,e,r){var i=r(239),a=r(37),n="tfw_team_holdback_11929";t.exports=function(t,e,r){var s;t&&(s=t[n])&&s.bucket&&i(n,s.bucket,s.version,a.formatHorizonTweetData(e),r)}},239:function(t,e,r){var i=r(76);t.exports=function(t,e,r,a,n){var s={client:"tfw",page:"ddg",section:t,action:"experiment"},o={experiment_key:t,bucket:e,version:r,data:a},d={session_id:n};i.clientEvent(s,o,void 0,void 0,d)}},240:function(t,e,r){var i=r(175);t.exports=function(t){t.params({align:{required:!1},width:{required:!1},floatedWidth:{fallback:"350px",validate:i},centeredWidth:{fallback:"70%",validate:i}}),t.before("render",function(){var t,e,r,i,a=this.params.align;switch(a&&a.toLowerCase()){case"center":t=this.params.width||this.params.centeredWidth,e="auto",r="auto";break;case"left":t=this.params.width||this.params.floatedWidth,r="10px",i="left";break;case"right":t=this.params.width||this.params.floatedWidth,e="10px",i="right";break;default:return}return this.styleSandboxWrapper&&this._sandboxWrapperEl?this.styleSandboxWrapper({width:t,marginLeft:e,marginRight:r,cssFloat:i}):this.sandbox.styleSelf({width:t,marginLeft:e,marginRight:r,cssFloat:i})})}},89:function(t,e,r){var i=r(168);t.exports=i.build([r(236),r(240)])}}]);
\ No newline at end of file
diff --git a/files/assets/CHRISTMAS/js/horizon_tweet.4027cff8c5dfbbf9b414b0df963e6b7d.js b/files/assets/CHRISTMAS/js/horizon_tweet.4027cff8c5dfbbf9b414b0df963e6b7d.js
new file mode 100644
index 000000000..78ed0780b
--- /dev/null
+++ b/files/assets/CHRISTMAS/js/horizon_tweet.4027cff8c5dfbbf9b414b0df963e6b7d.js
@@ -0,0 +1 @@
+(window.__twttrll=window.__twttrll||[]).push([[8],{169:function(t,e,r){var i=r(39),a=r(171),n=r(7);(i=Object.create(i)).build=n(i.build,null,a),t.exports=i},170:function(t,e,r){var i=r(42),a=r(37),n=r(38),s=r(0),o=r(7),d=r(33),c=r(5),u=r(175);t.exports=function(t){t.params({partner:{fallback:o(d.val,d,"partner")}}),t.define("scribeItems",function(){return{}}),t.define("scribeNamespace",function(){return{client:"tfw"}}),t.define("scribeData",function(){return{widget_origin:n.rootDocumentLocation(),widget_frame:n.isFramed()&&n.currentDocumentLocation(),widget_partner:this.params.partner,widget_site_screen_name:u(d.val("site")),widget_site_user_id:c.asNumber(d.val("site:id")),widget_creator_screen_name:u(d.val("creator")),widget_creator_user_id:c.asNumber(d.val("creator:id"))}}),t.define("scribe",function(t,e,r){t=s.aug(this.scribeNamespace(),t||{}),e=s.aug(this.scribeData(),e||{}),i.scribe(t,e,!1,r)}),t.define("scribeInteraction",function(t,e,r){var i=a.extractTermsFromDOM(t.target);i.action=t.type,"url"===i.element&&(i.element=a.clickEventElement(t.target)),this.scribe(i,e,r)})}},171:function(t,e,r){var i=r(40),a=r(0),n=r(172);function s(){i.apply(this,arguments),this.Widget=this.Component}s.prototype=Object.create(i.prototype),a.aug(s.prototype,{factory:n,build:function(){return i.prototype.build.apply(this,arguments)},selectors:function(t){var e=this.Widget.prototype.selectors;t=t||{},this.Widget.prototype.selectors=a.aug({},t,e)}}),t.exports=s},172:function(t,e,r){var i=r(6),a=r(35),n=r(41),s=r(0),o=r(7),d=r(173),c="twitter-widget-";t.exports=function(){var t=n();function e(e,r){t.apply(this,arguments),this.id=c+d(),this.sandbox=r}return e.prototype=Object.create(t.prototype),s.aug(e.prototype,{selectors:{},hydrate:function(){return i.resolve()},prepForInsertion:function(){},render:function(){return i.resolve()},show:function(){return i.resolve()},resize:function(){return i.resolve()},select:function(t,e){return 1===arguments.length&&(e=t,t=this.el),t?(e=this.selectors[e]||e,s.toRealArray(t.querySelectorAll(e))):[]},selectOne:function(){return this.select.apply(this,arguments)[0]},selectLast:function(){return this.select.apply(this,arguments).pop()},on:function(t,e,r){var i,n=this.el;this.el&&(t=(t||"").split(/\s+/),2===arguments.length?r=e:i=e,i=this.selectors[i]||i,r=o(r,this),t.forEach(i?function(t){a.delegate(n,t,i,r)}:function(t){n.addEventListener(t,r,!1)}))}}),e}},173:function(t,e){var r=0;t.exports=function(){return String(r++)}},174:function(t,e,r){var i=r(5),a=r(0);t.exports=function(t){t.define("widgetDataAttributes",function(){return{}}),t.define("setDataAttributes",function(){var t=this.sandbox.sandboxEl;a.forIn(this.widgetDataAttributes(),function(e,r){i.hasValue(r)&&t.setAttribute("data-"+e,r)})}),t.after("render",function(){this.setDataAttributes()})}},175:function(t,e){t.exports=function(t){return t&&"@"===t[0]?t.substr(1):t}},176:function(t,e,r){var i=r(0);t.exports=function(t){return i.isType("string",t)}},180:function(t,e,r){var i=r(4),a=r(5),n=i.createElement("div");t.exports=function(t){return a.isNumber(t)&&(t+="px"),n.style.width="",n.style.width=t,n.style.width||null}},183:function(t,e){var r=/^(dark|light)$/;t.exports=function(t){return r.test(t)}},237:function(t,e,r){var i=r(6),a=r(46),n=r(20),s=r(169),o=r(18),d=r(19),c=r(0),u=r(11),l=r(37),f=r(36),p=r(238),h=r(239),m="Twitter Tweet",g=a.version;t.exports=s.couple(r(170),r(174),function(t){t.params(p),t.define("getUrlParams",function(t,e){var r=this.scribeData();return c.compact({dnt:d.enabled(),features:f.encodeFeatures(t),hideCard:this.params.hideCard,hideThread:this.params.hideThread,id:this.params.tweetId,lang:this.params.lang,embedId:this.id,theme:this.params.theme,partner:this.params.partner,widgetsVersion:g,width:this.params.width,origin:r.widget_origin,frame:r.widget_frame,sessionId:e,siteScreenName:r.widget_site_screen_name,siteUserId:r.widget_site_user_id,creatorScreenName:r.widget_creator_screen_name,creatorUserId:r.widget_creator_user_id})}),t.around("scribeItems",function(t){return c.aug(t(),l.formatHorizonTweetData(this.params.tweetId))}),t.around("scribeNamespace",function(t){return c.aug(t(),{page:"tweet"})}),t.around("scribeData",function(t){return c.aug(t(),{context:"horizon",widget_iframe_version:this.sandbox.iframeVersion})}),t.around("widgetDataAttributes",function(t){return c.aug({"tweet-id":this.params.tweetId},t())}),t.define("styleSandboxWrapper",function(t){var e=this;return o.write(function(){c.forIn(t,function(t,r){e._sandboxWrapperEl.style[t]=r})})}),t.override("render",function(){var t=this;return f.getHorizonSettings().then(function(e){var r=t.getUrlParams(e.features,e.sessionId),a=n.embedIframe(["Tweet"],e.features),s=u.url(a,r);return h(e.features,t.params.tweetId,e.sessionId),t.sandbox.setWaitToSwapUntilRendered(!0),i.all([t.sandbox.setTitle(m),t.styleSandboxWrapper({display:"flex",maxWidth:t.params.width,width:"100%",marginTop:"10px",marginBottom:"10px"}),t.sandbox.styleSelf({display:"block",flexGrow:"1"}),t.sandbox.loadDocument(s)])})}),t.after("render",function(){var t=this.sandbox;return t.getResultsPromise().then(function(){t.makeVisible()}).then(function(){return t.getRenderedPromise()})})})},238:function(t,e,r){var i=r(180),a=r(7),n=r(71),s=r(176),o=r(183),d=r(33),c=r(5),u={tweetId:{required:!0,validate:s},id:{validate:s},lang:{required:!0,transform:n.matchLanguage,fallback:"en"},width:{required:!0,fallback:"550px",validate:i,transform:i},theme:{fallback:[a(d.val,d,"widgets:theme"),"light"],validate:o},hideCard:{fallback:!1,transform:c.asBoolean},hideThread:{fallback:!1,transform:c.asBoolean},partner:{fallback:a(d.val,d,"partner")}};t.exports=u},239:function(t,e,r){var i=r(240),a=r(37),n="tfw_team_holdback_11929";t.exports=function(t,e,r){var s;t&&(s=t[n])&&s.bucket&&i(n,s.bucket,s.version,a.formatHorizonTweetData(e),r)}},240:function(t,e,r){var i=r(76);t.exports=function(t,e,r,a,n){var s={client:"tfw",page:"ddg",section:t,action:"experiment"},o={experiment_key:t,bucket:e,version:r,data:a},d={session_id:n};i.clientEvent(s,o,void 0,void 0,d)}},241:function(t,e,r){var i=r(176);t.exports=function(t){t.params({align:{required:!1},width:{required:!1},floatedWidth:{fallback:"350px",validate:i},centeredWidth:{fallback:"70%",validate:i}}),t.before("render",function(){var t,e,r,i,a=this.params.align;switch(a&&a.toLowerCase()){case"center":t=this.params.width||this.params.centeredWidth,e="auto",r="auto";break;case"left":t=this.params.width||this.params.floatedWidth,r="10px",i="left";break;case"right":t=this.params.width||this.params.floatedWidth,e="10px",i="right";break;default:return}return this.styleSandboxWrapper&&this._sandboxWrapperEl?this.styleSandboxWrapper({width:t,marginLeft:e,marginRight:r,cssFloat:i}):this.sandbox.styleSelf({width:t,marginLeft:e,marginRight:r,cssFloat:i})})}},89:function(t,e,r){var i=r(169);t.exports=i.build([r(237),r(241)])}}]);
\ No newline at end of file
diff --git a/files/assets/CHRISTMAS/js/lite-youtube.js b/files/assets/CHRISTMAS/js/lite-youtube.js
new file mode 100644
index 000000000..6dad20e38
--- /dev/null
+++ b/files/assets/CHRISTMAS/js/lite-youtube.js
@@ -0,0 +1,63 @@
+ class LiteYTEmbed extends HTMLElement {
+ connectedCallback() {
+ this.videoId = this.getAttribute('videoid');
+
+ let playBtnEl = this.querySelector('.lty-playbtn');
+ this.playLabel = (playBtnEl && playBtnEl.textContent.trim()) || this.getAttribute('playlabel') || 'Play';
+ if (!this.style.backgroundImage) {
+ this.style.backgroundImage = `url("https://i.ytimg.com/vi/${this.videoId}/hqdefault.jpg")`;
+ }
+ if (!playBtnEl) {
+ playBtnEl = document.createElement('button');
+ playBtnEl.type = 'button';
+ playBtnEl.classList.add('lty-playbtn');
+ this.append(playBtnEl);
+ }
+ if (!playBtnEl.textContent) {
+ const playBtnLabelEl = document.createElement('span');
+ playBtnLabelEl.className = 'lyt-visually-hidden';
+ playBtnLabelEl.textContent = this.playLabel;
+ playBtnEl.append(playBtnLabelEl);
+ }
+ this.addEventListener('pointerover', LiteYTEmbed.warmConnections, {once: true});
+ this.addEventListener('click', this.addIframe);
+ }
+ static addPrefetch(kind, url, as) {
+ const linkEl = document.createElement('link');
+ linkEl.rel = kind;
+ linkEl.href = url;
+ if (as) {
+ linkEl.as = as;
+ }
+ document.head.append(linkEl);
+ }
+ static warmConnections() {
+ if (LiteYTEmbed.preconnected) return;
+
+ LiteYTEmbed.addPrefetch('preconnect', 'https://www.youtube-nocookie.com');
+ LiteYTEmbed.addPrefetch('preconnect', 'https://www.google.com');
+ LiteYTEmbed.addPrefetch('preconnect', 'https://googleads.g.doubleclick.net');
+ LiteYTEmbed.addPrefetch('preconnect', 'https://static.doubleclick.net');
+
+ LiteYTEmbed.preconnected = true;
+ }
+
+ addIframe() {
+ if (this.classList.contains('lyt-activated')) return;
+ this.classList.add('lyt-activated');
+
+ const params = new URLSearchParams(this.getAttribute('params') || []);
+ params.append('autoplay', '1');
+
+ const iframeEl = document.createElement('iframe');
+ iframeEl.width = 560;
+ iframeEl.height = 315;
+ iframeEl.title = this.playLabel;
+ iframeEl.allow = 'accelerometer; autoplay; encrypted-media; gyroscope; picture-in-picture';
+ iframeEl.allowFullscreen = true;
+ iframeEl.src = `https://www.youtube-nocookie.com/embed/${encodeURIComponent(this.videoId)}?${params.toString()}`;
+ this.append(iframeEl);
+ iframeEl.focus();
+ }
+}
+customElements.define('lite-youtube', LiteYTEmbed);
\ No newline at end of file
diff --git a/files/assets/CHRISTMAS/js/lozad.js b/files/assets/CHRISTMAS/js/lozad.js
new file mode 100644
index 000000000..81235f5ce
--- /dev/null
+++ b/files/assets/CHRISTMAS/js/lozad.js
@@ -0,0 +1 @@
+!function(t,e){"object"==typeof exports&&"undefined"!=typeof module?module.exports=e():"function"==typeof define&&define.amd?define(e):t.lozad=e()}(this,function(){"use strict";var g="undefined"!=typeof document&&document.documentMode,f={rootMargin:"0px",threshold:0,load:function(t){if("picture"===t.nodeName.toLowerCase()){var e=t.querySelector("img"),r=!1;null===e&&(e=document.createElement("img"),r=!0),g&&t.getAttribute("data-iesrc")&&(e.src=t.getAttribute("data-iesrc")),t.getAttribute("data-alt")&&(e.alt=t.getAttribute("data-alt")),r&&t.append(e)}if("video"===t.nodeName.toLowerCase()&&!t.getAttribute("data-src")&&t.children){for(var a=t.children,o=void 0,i=0;i<=a.length-1;i++)(o=a[i].getAttribute("data-src"))&&(a[i].src=o);t.load()}t.getAttribute("data-poster")&&(t.poster=t.getAttribute("data-poster")),t.getAttribute("data-src")&&(t.src=t.getAttribute("data-src")),t.getAttribute("data-srcset")&&t.setAttribute("srcset",t.getAttribute("data-srcset"));var n=",";if(t.getAttribute("data-background-delimiter")&&(n=t.getAttribute("data-background-delimiter")),t.getAttribute("data-background-image"))t.style.backgroundImage="url('"+t.getAttribute("data-background-image").split(n).join("'),url('")+"')";else if(t.getAttribute("data-background-image-set")){var d=t.getAttribute("data-background-image-set").split(n),u=d[0].substr(0,d[0].indexOf(" "))||d[0];u=-1===u.indexOf("url(")?"url("+u+")":u,1===d.length?t.style.backgroundImage=u:t.setAttribute("style",(t.getAttribute("style")||"")+"background-image: "+u+"; background-image: -webkit-image-set("+d+"); background-image: image-set("+d+")")}t.getAttribute("data-toggle-class")&&t.classList.toggle(t.getAttribute("data-toggle-class"))},loaded:function(){}};function A(t){t.setAttribute("data-loaded",!0)}var m=function(t){return"true"===t.getAttribute("data-loaded")},v=function(t){var e=1e.length)&&(t=e.length);for(var u=0,n=new Array(t);u=e.length?{done:!0}:{done:!1,value:e[r++]}}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var n={exports:{}};function r(){return{baseUrl:null,breaks:!1,extensions:null,gfm:!0,headerIds:!0,headerPrefix:"",highlight:null,langPrefix:"language-",mangle:!0,pedantic:!1,renderer:null,sanitize:!1,sanitizer:null,silent:!1,smartLists:!1,smartypants:!1,tokenizer:null,walkTokens:null,xhtml:!1}}n.exports={defaults:{baseUrl:null,breaks:!1,extensions:null,gfm:!0,headerIds:!0,headerPrefix:"",highlight:null,langPrefix:"language-",mangle:!0,pedantic:!1,renderer:null,sanitize:!1,sanitizer:null,silent:!1,smartLists:!1,smartypants:!1,tokenizer:null,walkTokens:null,xhtml:!1},getDefaults:r,changeDefaults:function(e){n.exports.defaults=e}};var i=/[&<>"']/,s=/[&<>"']/g,l=/[<>"']|&(?!#?\w+;)/,a=/[<>"']|&(?!#?\w+;)/g,o={"&":"&","<":"<",">":">",'"':""","'":"'"},D=function(e){return o[e]};var c=/&(#(?:\d+)|(?:#x[0-9A-Fa-f]+)|(?:\w+));?/gi;function h(e){return e.replace(c,(function(e,t){return"colon"===(t=t.toLowerCase())?":":"#"===t.charAt(0)?"x"===t.charAt(1)?String.fromCharCode(parseInt(t.substring(2),16)):String.fromCharCode(+t.substring(1)):""}))}var p=/(^|[^\[])\^/g;var f=/[^\w:]/g,g=/^$|^[a-z][a-z0-9+.-]*:|^[?#]/i;var F={},A=/^[^:]+:\/*[^/]*$/,d=/^([^:]+:)[\s\S]*$/,C=/^([^:]+:\/*[^/]*)[\s\S]*$/;function k(e,t){F[" "+e]||(A.test(e)?F[" "+e]=e+"/":F[" "+e]=E(e,"/",!0));var u=-1===(e=F[" "+e]).indexOf(":");return"//"===t.substring(0,2)?u?t:e.replace(d,"$1")+t:"/"===t.charAt(0)?u?t:e.replace(C,"$1")+t:e+t}function E(e,t,u){var n=e.length;if(0===n)return"";for(var r=0;r=0&&"\\"===u[r];)n=!n;return n?"|":" |"})).split(/ \|/),n=0;if(u[0].trim()||u.shift(),u[u.length-1].trim()||u.pop(),u.length>t)u.splice(t);else for(;u.length1;)1&t&&(u+=e),t>>=1,e+=e;return u+e},T=n.exports.defaults,R=_,I=y,Z=x,q=z;function O(e,t,u,n){var r=t.href,i=t.title?Z(t.title):null,s=e[1].replace(/\\([\[\]])/g,"$1");if("!"!==e[0].charAt(0)){n.state.inLink=!0;var l={type:"link",raw:u,href:r,title:i,text:s,tokens:n.inlineTokens(s,[])};return n.state.inLink=!1,l}return{type:"image",raw:u,href:r,title:i,text:Z(s)}}var L=function(){function e(e){this.options=e||T}var t=e.prototype;return t.space=function(e){var t=this.rules.block.newline.exec(e);if(t)return t[0].length>1?{type:"space",raw:t[0]}:{raw:"\n"}},t.code=function(e){var t=this.rules.block.code.exec(e);if(t){var u=t[0].replace(/^ {1,4}/gm,"");return{type:"code",raw:t[0],codeBlockStyle:"indented",text:this.options.pedantic?u:R(u,"\n")}}},t.fences=function(e){var t=this.rules.block.fences.exec(e);if(t){var u=t[0],n=function(e,t){var u=e.match(/^(\s+)(?:```)/);if(null===u)return t;var n=u[1];return t.split("\n").map((function(e){var t=e.match(/^\s+/);return null===t?e:t[0].length>=n.length?e.slice(n.length):e})).join("\n")}(u,t[3]||"");return{type:"code",raw:u,lang:t[2]?t[2].trim():t[2],text:n}}},t.heading=function(e){var t=this.rules.block.heading.exec(e);if(t){var u=t[2].trim();if(/#$/.test(u)){var n=R(u,"#");this.options.pedantic?u=n.trim():n&&!/ $/.test(n)||(u=n.trim())}var r={type:"heading",raw:t[0],depth:t[1].length,text:u,tokens:[]};return this.lexer.inline(r.text,r.tokens),r}},t.hr=function(e){var t=this.rules.block.hr.exec(e);if(t)return{type:"hr",raw:t[0]}},t.blockquote=function(e){var t=this.rules.block.blockquote.exec(e);if(t){var u=t[0].replace(/^ *> ?/gm,"");return{type:"blockquote",raw:t[0],tokens:this.lexer.blockTokens(u,[]),text:u}}},t.list=function(e){var t=this.rules.block.list.exec(e);if(t){var u,n,r,i,s,l,a,o,D,c,h=t[1].trim(),p=h.length>1,f={type:"list",raw:"",ordered:p,start:p?+h.slice(0,-1):"",loose:!1,items:[]};h=p?"\\d{1,9}\\"+h.slice(-1):"\\"+h,this.options.pedantic&&(h=p?h:"[*+-]");for(var g=new RegExp("^( {0,3}"+h+")((?: [^\\n]*| *)(?:\\n[^\\n]*)*(?:\\n|$))");e&&!this.rules.block.hr.test(e)&&(t=g.exec(e));){D=t[2].split("\n"),this.options.pedantic?(i=2,c=D[0].trimLeft()):(i=t[2].search(/[^ ]/),i=t[1].length+(i>4?1:i),c=D[0].slice(i-t[1].length)),l=!1,u=t[0],!D[0]&&/^ *$/.test(D[1])&&(u=t[1]+D.slice(0,2).join("\n")+"\n",f.loose=!0,D=[]);var F=new RegExp("^ {0,"+Math.min(3,i-1)+"}(?:[*+-]|\\d{1,9}[.)])");for(s=1;s=i)&&o.trim()){u=t[1]+D.slice(0,s).join("\n")+"\n";break}c+="\n"+o.slice(i)}else o.trim()||(l=!0),o.search(/[^ ]/)>=i?c+="\n"+o.slice(i):c+="\n"+o}f.loose||(a?f.loose=!0:/\n *\n *$/.test(u)&&(a=!0)),this.options.gfm&&(n=/^\[[ xX]\] /.exec(c))&&(r="[ ] "!==n[0],c=c.replace(/^\[[ xX]\] +/,"")),f.items.push({type:"list_item",raw:u,task:!!n,checked:r,loose:!1,text:c}),f.raw+=u,e=e.slice(u.length)}f.items[f.items.length-1].raw=u.trimRight(),f.items[f.items.length-1].text=c.trimRight(),f.raw=f.raw.trimRight();var A=f.items.length;for(s=0;s/i.test(t[0])&&(this.lexer.state.inLink=!1),!this.lexer.state.inRawBlock&&/^<(pre|code|kbd|script)(\s|>)/i.test(t[0])?this.lexer.state.inRawBlock=!0:this.lexer.state.inRawBlock&&/^<\/(pre|code|kbd|script)(\s|>)/i.test(t[0])&&(this.lexer.state.inRawBlock=!1),{type:this.options.sanitize?"text":"html",raw:t[0],inLink:this.lexer.state.inLink,inRawBlock:this.lexer.state.inRawBlock,text:this.options.sanitize?this.options.sanitizer?this.options.sanitizer(t[0]):Z(t[0]):t[0]}},t.link=function(e){var t=this.rules.inline.link.exec(e);if(t){var u=t[2].trim();if(!this.options.pedantic&&/^$/.test(u))return;var n=R(u.slice(0,-1),"\\");if((u.length-n.length)%2==0)return}else{var r=q(t[2],"()");if(r>-1){var i=(0===t[0].indexOf("!")?5:4)+t[1].length+r;t[2]=t[2].substring(0,r),t[0]=t[0].substring(0,i).trim(),t[3]=""}}var s=t[2],l="";if(this.options.pedantic){var a=/^([^'"]*[^\s])\s+(['"])(.*)\2/.exec(s);a&&(s=a[1],l=a[3])}else l=t[3]?t[3].slice(1,-1):"";return s=s.trim(),/^$/.test(u)?s.slice(1):s.slice(1,-1)),O(t,{href:s?s.replace(this.rules.inline._escapes,"$1"):s,title:l?l.replace(this.rules.inline._escapes,"$1"):l},t[0],this.lexer)}},t.reflink=function(e,t){var u;if((u=this.rules.inline.reflink.exec(e))||(u=this.rules.inline.nolink.exec(e))){var n=(u[2]||u[1]).replace(/\s+/g," ");if(!(n=t[n.toLowerCase()])||!n.href){var r=u[0].charAt(0);return{type:"text",raw:r,text:r}}return O(u,n,u[0],this.lexer)}},t.emStrong=function(e,t,u){void 0===u&&(u="");var n=this.rules.inline.emStrong.lDelim.exec(e);if(n&&(!n[3]||!u.match(/(?:[0-9A-Za-z\xAA\xB2\xB3\xB5\xB9\xBA\xBC-\xBE\xC0-\xD6\xD8-\xF6\xF8-\u02C1\u02C6-\u02D1\u02E0-\u02E4\u02EC\u02EE\u0370-\u0374\u0376\u0377\u037A-\u037D\u037F\u0386\u0388-\u038A\u038C\u038E-\u03A1\u03A3-\u03F5\u03F7-\u0481\u048A-\u052F\u0531-\u0556\u0559\u0560-\u0588\u05D0-\u05EA\u05EF-\u05F2\u0620-\u064A\u0660-\u0669\u066E\u066F\u0671-\u06D3\u06D5\u06E5\u06E6\u06EE-\u06FC\u06FF\u0710\u0712-\u072F\u074D-\u07A5\u07B1\u07C0-\u07EA\u07F4\u07F5\u07FA\u0800-\u0815\u081A\u0824\u0828\u0840-\u0858\u0860-\u086A\u08A0-\u08B4\u08B6-\u08C7\u0904-\u0939\u093D\u0950\u0958-\u0961\u0966-\u096F\u0971-\u0980\u0985-\u098C\u098F\u0990\u0993-\u09A8\u09AA-\u09B0\u09B2\u09B6-\u09B9\u09BD\u09CE\u09DC\u09DD\u09DF-\u09E1\u09E6-\u09F1\u09F4-\u09F9\u09FC\u0A05-\u0A0A\u0A0F\u0A10\u0A13-\u0A28\u0A2A-\u0A30\u0A32\u0A33\u0A35\u0A36\u0A38\u0A39\u0A59-\u0A5C\u0A5E\u0A66-\u0A6F\u0A72-\u0A74\u0A85-\u0A8D\u0A8F-\u0A91\u0A93-\u0AA8\u0AAA-\u0AB0\u0AB2\u0AB3\u0AB5-\u0AB9\u0ABD\u0AD0\u0AE0\u0AE1\u0AE6-\u0AEF\u0AF9\u0B05-\u0B0C\u0B0F\u0B10\u0B13-\u0B28\u0B2A-\u0B30\u0B32\u0B33\u0B35-\u0B39\u0B3D\u0B5C\u0B5D\u0B5F-\u0B61\u0B66-\u0B6F\u0B71-\u0B77\u0B83\u0B85-\u0B8A\u0B8E-\u0B90\u0B92-\u0B95\u0B99\u0B9A\u0B9C\u0B9E\u0B9F\u0BA3\u0BA4\u0BA8-\u0BAA\u0BAE-\u0BB9\u0BD0\u0BE6-\u0BF2\u0C05-\u0C0C\u0C0E-\u0C10\u0C12-\u0C28\u0C2A-\u0C39\u0C3D\u0C58-\u0C5A\u0C60\u0C61\u0C66-\u0C6F\u0C78-\u0C7E\u0C80\u0C85-\u0C8C\u0C8E-\u0C90\u0C92-\u0CA8\u0CAA-\u0CB3\u0CB5-\u0CB9\u0CBD\u0CDE\u0CE0\u0CE1\u0CE6-\u0CEF\u0CF1\u0CF2\u0D04-\u0D0C\u0D0E-\u0D10\u0D12-\u0D3A\u0D3D\u0D4E\u0D54-\u0D56\u0D58-\u0D61\u0D66-\u0D78\u0D7A-\u0D7F\u0D85-\u0D96\u0D9A-\u0DB1\u0DB3-\u0DBB\u0DBD\u0DC0-\u0DC6\u0DE6-\u0DEF\u0E01-\u0E30\u0E32\u0E33\u0E40-\u0E46\u0E50-\u0E59\u0E81\u0E82\u0E84\u0E86-\u0E8A\u0E8C-\u0EA3\u0EA5\u0EA7-\u0EB0\u0EB2\u0EB3\u0EBD\u0EC0-\u0EC4\u0EC6\u0ED0-\u0ED9\u0EDC-\u0EDF\u0F00\u0F20-\u0F33\u0F40-\u0F47\u0F49-\u0F6C\u0F88-\u0F8C\u1000-\u102A\u103F-\u1049\u1050-\u1055\u105A-\u105D\u1061\u1065\u1066\u106E-\u1070\u1075-\u1081\u108E\u1090-\u1099\u10A0-\u10C5\u10C7\u10CD\u10D0-\u10FA\u10FC-\u1248\u124A-\u124D\u1250-\u1256\u1258\u125A-\u125D\u1260-\u1288\u128A-\u128D\u1290-\u12B0\u12B2-\u12B5\u12B8-\u12BE\u12C0\u12C2-\u12C5\u12C8-\u12D6\u12D8-\u1310\u1312-\u1315\u1318-\u135A\u1369-\u137C\u1380-\u138F\u13A0-\u13F5\u13F8-\u13FD\u1401-\u166C\u166F-\u167F\u1681-\u169A\u16A0-\u16EA\u16EE-\u16F8\u1700-\u170C\u170E-\u1711\u1720-\u1731\u1740-\u1751\u1760-\u176C\u176E-\u1770\u1780-\u17B3\u17D7\u17DC\u17E0-\u17E9\u17F0-\u17F9\u1810-\u1819\u1820-\u1878\u1880-\u1884\u1887-\u18A8\u18AA\u18B0-\u18F5\u1900-\u191E\u1946-\u196D\u1970-\u1974\u1980-\u19AB\u19B0-\u19C9\u19D0-\u19DA\u1A00-\u1A16\u1A20-\u1A54\u1A80-\u1A89\u1A90-\u1A99\u1AA7\u1B05-\u1B33\u1B45-\u1B4B\u1B50-\u1B59\u1B83-\u1BA0\u1BAE-\u1BE5\u1C00-\u1C23\u1C40-\u1C49\u1C4D-\u1C7D\u1C80-\u1C88\u1C90-\u1CBA\u1CBD-\u1CBF\u1CE9-\u1CEC\u1CEE-\u1CF3\u1CF5\u1CF6\u1CFA\u1D00-\u1DBF\u1E00-\u1F15\u1F18-\u1F1D\u1F20-\u1F45\u1F48-\u1F4D\u1F50-\u1F57\u1F59\u1F5B\u1F5D\u1F5F-\u1F7D\u1F80-\u1FB4\u1FB6-\u1FBC\u1FBE\u1FC2-\u1FC4\u1FC6-\u1FCC\u1FD0-\u1FD3\u1FD6-\u1FDB\u1FE0-\u1FEC\u1FF2-\u1FF4\u1FF6-\u1FFC\u2070\u2071\u2074-\u2079\u207F-\u2089\u2090-\u209C\u2102\u2107\u210A-\u2113\u2115\u2119-\u211D\u2124\u2126\u2128\u212A-\u212D\u212F-\u2139\u213C-\u213F\u2145-\u2149\u214E\u2150-\u2189\u2460-\u249B\u24EA-\u24FF\u2776-\u2793\u2C00-\u2C2E\u2C30-\u2C5E\u2C60-\u2CE4\u2CEB-\u2CEE\u2CF2\u2CF3\u2CFD\u2D00-\u2D25\u2D27\u2D2D\u2D30-\u2D67\u2D6F\u2D80-\u2D96\u2DA0-\u2DA6\u2DA8-\u2DAE\u2DB0-\u2DB6\u2DB8-\u2DBE\u2DC0-\u2DC6\u2DC8-\u2DCE\u2DD0-\u2DD6\u2DD8-\u2DDE\u2E2F\u3005-\u3007\u3021-\u3029\u3031-\u3035\u3038-\u303C\u3041-\u3096\u309D-\u309F\u30A1-\u30FA\u30FC-\u30FF\u3105-\u312F\u3131-\u318E\u3192-\u3195\u31A0-\u31BF\u31F0-\u31FF\u3220-\u3229\u3248-\u324F\u3251-\u325F\u3280-\u3289\u32B1-\u32BF\u3400-\u4DBF\u4E00-\u9FFC\uA000-\uA48C\uA4D0-\uA4FD\uA500-\uA60C\uA610-\uA62B\uA640-\uA66E\uA67F-\uA69D\uA6A0-\uA6EF\uA717-\uA71F\uA722-\uA788\uA78B-\uA7BF\uA7C2-\uA7CA\uA7F5-\uA801\uA803-\uA805\uA807-\uA80A\uA80C-\uA822\uA830-\uA835\uA840-\uA873\uA882-\uA8B3\uA8D0-\uA8D9\uA8F2-\uA8F7\uA8FB\uA8FD\uA8FE\uA900-\uA925\uA930-\uA946\uA960-\uA97C\uA984-\uA9B2\uA9CF-\uA9D9\uA9E0-\uA9E4\uA9E6-\uA9FE\uAA00-\uAA28\uAA40-\uAA42\uAA44-\uAA4B\uAA50-\uAA59\uAA60-\uAA76\uAA7A\uAA7E-\uAAAF\uAAB1\uAAB5\uAAB6\uAAB9-\uAABD\uAAC0\uAAC2\uAADB-\uAADD\uAAE0-\uAAEA\uAAF2-\uAAF4\uAB01-\uAB06\uAB09-\uAB0E\uAB11-\uAB16\uAB20-\uAB26\uAB28-\uAB2E\uAB30-\uAB5A\uAB5C-\uAB69\uAB70-\uABE2\uABF0-\uABF9\uAC00-\uD7A3\uD7B0-\uD7C6\uD7CB-\uD7FB\uF900-\uFA6D\uFA70-\uFAD9\uFB00-\uFB06\uFB13-\uFB17\uFB1D\uFB1F-\uFB28\uFB2A-\uFB36\uFB38-\uFB3C\uFB3E\uFB40\uFB41\uFB43\uFB44\uFB46-\uFBB1\uFBD3-\uFD3D\uFD50-\uFD8F\uFD92-\uFDC7\uFDF0-\uFDFB\uFE70-\uFE74\uFE76-\uFEFC\uFF10-\uFF19\uFF21-\uFF3A\uFF41-\uFF5A\uFF66-\uFFBE\uFFC2-\uFFC7\uFFCA-\uFFCF\uFFD2-\uFFD7\uFFDA-\uFFDC]|\uD800[\uDC00-\uDC0B\uDC0D-\uDC26\uDC28-\uDC3A\uDC3C\uDC3D\uDC3F-\uDC4D\uDC50-\uDC5D\uDC80-\uDCFA\uDD07-\uDD33\uDD40-\uDD78\uDD8A\uDD8B\uDE80-\uDE9C\uDEA0-\uDED0\uDEE1-\uDEFB\uDF00-\uDF23\uDF2D-\uDF4A\uDF50-\uDF75\uDF80-\uDF9D\uDFA0-\uDFC3\uDFC8-\uDFCF\uDFD1-\uDFD5]|\uD801[\uDC00-\uDC9D\uDCA0-\uDCA9\uDCB0-\uDCD3\uDCD8-\uDCFB\uDD00-\uDD27\uDD30-\uDD63\uDE00-\uDF36\uDF40-\uDF55\uDF60-\uDF67]|\uD802[\uDC00-\uDC05\uDC08\uDC0A-\uDC35\uDC37\uDC38\uDC3C\uDC3F-\uDC55\uDC58-\uDC76\uDC79-\uDC9E\uDCA7-\uDCAF\uDCE0-\uDCF2\uDCF4\uDCF5\uDCFB-\uDD1B\uDD20-\uDD39\uDD80-\uDDB7\uDDBC-\uDDCF\uDDD2-\uDE00\uDE10-\uDE13\uDE15-\uDE17\uDE19-\uDE35\uDE40-\uDE48\uDE60-\uDE7E\uDE80-\uDE9F\uDEC0-\uDEC7\uDEC9-\uDEE4\uDEEB-\uDEEF\uDF00-\uDF35\uDF40-\uDF55\uDF58-\uDF72\uDF78-\uDF91\uDFA9-\uDFAF]|\uD803[\uDC00-\uDC48\uDC80-\uDCB2\uDCC0-\uDCF2\uDCFA-\uDD23\uDD30-\uDD39\uDE60-\uDE7E\uDE80-\uDEA9\uDEB0\uDEB1\uDF00-\uDF27\uDF30-\uDF45\uDF51-\uDF54\uDFB0-\uDFCB\uDFE0-\uDFF6]|\uD804[\uDC03-\uDC37\uDC52-\uDC6F\uDC83-\uDCAF\uDCD0-\uDCE8\uDCF0-\uDCF9\uDD03-\uDD26\uDD36-\uDD3F\uDD44\uDD47\uDD50-\uDD72\uDD76\uDD83-\uDDB2\uDDC1-\uDDC4\uDDD0-\uDDDA\uDDDC\uDDE1-\uDDF4\uDE00-\uDE11\uDE13-\uDE2B\uDE80-\uDE86\uDE88\uDE8A-\uDE8D\uDE8F-\uDE9D\uDE9F-\uDEA8\uDEB0-\uDEDE\uDEF0-\uDEF9\uDF05-\uDF0C\uDF0F\uDF10\uDF13-\uDF28\uDF2A-\uDF30\uDF32\uDF33\uDF35-\uDF39\uDF3D\uDF50\uDF5D-\uDF61]|\uD805[\uDC00-\uDC34\uDC47-\uDC4A\uDC50-\uDC59\uDC5F-\uDC61\uDC80-\uDCAF\uDCC4\uDCC5\uDCC7\uDCD0-\uDCD9\uDD80-\uDDAE\uDDD8-\uDDDB\uDE00-\uDE2F\uDE44\uDE50-\uDE59\uDE80-\uDEAA\uDEB8\uDEC0-\uDEC9\uDF00-\uDF1A\uDF30-\uDF3B]|\uD806[\uDC00-\uDC2B\uDCA0-\uDCF2\uDCFF-\uDD06\uDD09\uDD0C-\uDD13\uDD15\uDD16\uDD18-\uDD2F\uDD3F\uDD41\uDD50-\uDD59\uDDA0-\uDDA7\uDDAA-\uDDD0\uDDE1\uDDE3\uDE00\uDE0B-\uDE32\uDE3A\uDE50\uDE5C-\uDE89\uDE9D\uDEC0-\uDEF8]|\uD807[\uDC00-\uDC08\uDC0A-\uDC2E\uDC40\uDC50-\uDC6C\uDC72-\uDC8F\uDD00-\uDD06\uDD08\uDD09\uDD0B-\uDD30\uDD46\uDD50-\uDD59\uDD60-\uDD65\uDD67\uDD68\uDD6A-\uDD89\uDD98\uDDA0-\uDDA9\uDEE0-\uDEF2\uDFB0\uDFC0-\uDFD4]|\uD808[\uDC00-\uDF99]|\uD809[\uDC00-\uDC6E\uDC80-\uDD43]|[\uD80C\uD81C-\uD820\uD822\uD840-\uD868\uD86A-\uD86C\uD86F-\uD872\uD874-\uD879\uD880-\uD883][\uDC00-\uDFFF]|\uD80D[\uDC00-\uDC2E]|\uD811[\uDC00-\uDE46]|\uD81A[\uDC00-\uDE38\uDE40-\uDE5E\uDE60-\uDE69\uDED0-\uDEED\uDF00-\uDF2F\uDF40-\uDF43\uDF50-\uDF59\uDF5B-\uDF61\uDF63-\uDF77\uDF7D-\uDF8F]|\uD81B[\uDE40-\uDE96\uDF00-\uDF4A\uDF50\uDF93-\uDF9F\uDFE0\uDFE1\uDFE3]|\uD821[\uDC00-\uDFF7]|\uD823[\uDC00-\uDCD5\uDD00-\uDD08]|\uD82C[\uDC00-\uDD1E\uDD50-\uDD52\uDD64-\uDD67\uDD70-\uDEFB]|\uD82F[\uDC00-\uDC6A\uDC70-\uDC7C\uDC80-\uDC88\uDC90-\uDC99]|\uD834[\uDEE0-\uDEF3\uDF60-\uDF78]|\uD835[\uDC00-\uDC54\uDC56-\uDC9C\uDC9E\uDC9F\uDCA2\uDCA5\uDCA6\uDCA9-\uDCAC\uDCAE-\uDCB9\uDCBB\uDCBD-\uDCC3\uDCC5-\uDD05\uDD07-\uDD0A\uDD0D-\uDD14\uDD16-\uDD1C\uDD1E-\uDD39\uDD3B-\uDD3E\uDD40-\uDD44\uDD46\uDD4A-\uDD50\uDD52-\uDEA5\uDEA8-\uDEC0\uDEC2-\uDEDA\uDEDC-\uDEFA\uDEFC-\uDF14\uDF16-\uDF34\uDF36-\uDF4E\uDF50-\uDF6E\uDF70-\uDF88\uDF8A-\uDFA8\uDFAA-\uDFC2\uDFC4-\uDFCB\uDFCE-\uDFFF]|\uD838[\uDD00-\uDD2C\uDD37-\uDD3D\uDD40-\uDD49\uDD4E\uDEC0-\uDEEB\uDEF0-\uDEF9]|\uD83A[\uDC00-\uDCC4\uDCC7-\uDCCF\uDD00-\uDD43\uDD4B\uDD50-\uDD59]|\uD83B[\uDC71-\uDCAB\uDCAD-\uDCAF\uDCB1-\uDCB4\uDD01-\uDD2D\uDD2F-\uDD3D\uDE00-\uDE03\uDE05-\uDE1F\uDE21\uDE22\uDE24\uDE27\uDE29-\uDE32\uDE34-\uDE37\uDE39\uDE3B\uDE42\uDE47\uDE49\uDE4B\uDE4D-\uDE4F\uDE51\uDE52\uDE54\uDE57\uDE59\uDE5B\uDE5D\uDE5F\uDE61\uDE62\uDE64\uDE67-\uDE6A\uDE6C-\uDE72\uDE74-\uDE77\uDE79-\uDE7C\uDE7E\uDE80-\uDE89\uDE8B-\uDE9B\uDEA1-\uDEA3\uDEA5-\uDEA9\uDEAB-\uDEBB]|\uD83C[\uDD00-\uDD0C]|\uD83E[\uDFF0-\uDFF9]|\uD869[\uDC00-\uDEDD\uDF00-\uDFFF]|\uD86D[\uDC00-\uDF34\uDF40-\uDFFF]|\uD86E[\uDC00-\uDC1D\uDC20-\uDFFF]|\uD873[\uDC00-\uDEA1\uDEB0-\uDFFF]|\uD87A[\uDC00-\uDFE0]|\uD87E[\uDC00-\uDE1D]|\uD884[\uDC00-\uDF4A])/))){var r=n[1]||n[2]||"";if(!r||r&&(""===u||this.rules.inline.punctuation.exec(u))){var i,s,l=n[0].length-1,a=l,o=0,D="*"===n[0][0]?this.rules.inline.emStrong.rDelimAst:this.rules.inline.emStrong.rDelimUnd;for(D.lastIndex=0,t=t.slice(-1*e.length+l);null!=(n=D.exec(t));)if(i=n[1]||n[2]||n[3]||n[4]||n[5]||n[6])if(s=i.length,n[3]||n[4])a+=s;else if(!((n[5]||n[6])&&l%3)||(l+s)%3){if(!((a-=s)>0)){if(s=Math.min(s,s+a+o),Math.min(l,s)%2){var c=e.slice(1,l+n.index+s);return{type:"em",raw:e.slice(0,l+n.index+s+1),text:c,tokens:this.lexer.inlineTokens(c,[])}}var h=e.slice(2,l+n.index+s-1);return{type:"strong",raw:e.slice(0,l+n.index+s+1),text:h,tokens:this.lexer.inlineTokens(h,[])}}}else o+=s}}},t.codespan=function(e){var t=this.rules.inline.code.exec(e);if(t){var u=t[2].replace(/\n/g," "),n=/[^ ]/.test(u),r=/^ /.test(u)&&/ $/.test(u);return n&&r&&(u=u.substring(1,u.length-1)),u=Z(u,!0),{type:"codespan",raw:t[0],text:u}}},t.br=function(e){var t=this.rules.inline.br.exec(e);if(t)return{type:"br",raw:t[0]}},t.del=function(e){var t=this.rules.inline.del.exec(e);if(t)return{type:"del",raw:t[0],text:t[2],tokens:this.lexer.inlineTokens(t[2],[])}},t.autolink=function(e,t){var u,n,r=this.rules.inline.autolink.exec(e);if(r)return n="@"===r[2]?"mailto:"+(u=Z(this.options.mangle?t(r[1]):r[1])):u=Z(r[1]),{type:"link",raw:r[0],text:u,href:n,tokens:[{type:"text",raw:u,text:u}]}},t.url=function(e,t){var u;if(u=this.rules.inline.url.exec(e)){var n,r;if("@"===u[2])r="mailto:"+(n=Z(this.options.mangle?t(u[0]):u[0]));else{var i;do{i=u[0],u[0]=this.rules.inline._backpedal.exec(u[0])[0]}while(i!==u[0]);n=Z(u[0]),r="www."===u[1]?"http://"+n:n}return{type:"link",raw:u[0],text:n,href:r,tokens:[{type:"text",raw:n,text:n}]}}},t.inlineText=function(e,t){var u,n=this.rules.inline.text.exec(e);if(n)return u=this.lexer.state.inRawBlock?this.options.sanitize?this.options.sanitizer?this.options.sanitizer(n[0]):Z(n[0]):n[0]:Z(this.options.smartypants?t(n[0]):n[0]),{type:"text",raw:n[0],text:u}},e}(),j=w,U=b,P=v,Q={newline:/^(?: *(?:\n|$))+/,code:/^( {4}[^\n]+(?:\n(?: *(?:\n|$))*)?)+/,fences:/^ {0,3}(`{3,}(?=[^`\n]*\n)|~{3,})([^\n]*)\n(?:|([\s\S]*?)\n)(?: {0,3}\1[~`]* *(?=\n|$)|$)/,hr:/^ {0,3}((?:- *){3,}|(?:_ *){3,}|(?:\* *){3,})(?:\n+|$)/,heading:/^ {0,3}(#{1,6})(?=\s|$)(.*)(?:\n+|$)/,blockquote:/^( {0,3}> ?(paragraph|[^\n]*)(?:\n|$))+/,list:/^( {0,3}bull)( [^\n]+?)?(?:\n|$)/,html:"^ {0,3}(?:<(script|pre|style|textarea)[\\s>][\\s\\S]*?(?:\\1>[^\\n]*\\n+|$)|comment[^\\n]*(\\n+|$)|<\\?[\\s\\S]*?(?:\\?>\\n*|$)|\\n*|$)|\\n*|$)|?(tag)(?: +|\\n|/?>)[\\s\\S]*?(?:(?:\\n *)+\\n|$)|<(?!script|pre|style|textarea)([a-z][\\w-]*)(?:attribute)*? */?>(?=[ \\t]*(?:\\n|$))[\\s\\S]*?(?:(?:\\n *)+\\n|$)|(?!script|pre|style|textarea)[a-z][\\w-]*\\s*>(?=[ \\t]*(?:\\n|$))[\\s\\S]*?(?:(?:\\n *)+\\n|$))",def:/^ {0,3}\[(label)\]: *\n? *([^\s>]+)>?(?:(?: +\n? *| *\n *)(title))? *(?:\n+|$)/,table:j,lheading:/^([^\n]+)\n {0,3}(=+|-+) *(?:\n+|$)/,_paragraph:/^([^\n]+(?:\n(?!hr|heading|lheading|blockquote|fences|list|html| +\n)[^\n]+)*)/,text:/^[^\n]+/,_label:/(?!\s*\])(?:\\[\[\]]|[^\[\]])+/,_title:/(?:"(?:\\"?|[^"\\])*"|'[^'\n]*(?:\n[^'\n]+)*\n?'|\([^()]*\))/};Q.def=U(Q.def).replace("label",Q._label).replace("title",Q._title).getRegex(),Q.bullet=/(?:[*+-]|\d{1,9}[.)])/,Q.listItemStart=U(/^( *)(bull) */).replace("bull",Q.bullet).getRegex(),Q.list=U(Q.list).replace(/bull/g,Q.bullet).replace("hr","\\n+(?=\\1?(?:(?:- *){3,}|(?:_ *){3,}|(?:\\* *){3,})(?:\\n+|$))").replace("def","\\n+(?="+Q.def.source+")").getRegex(),Q._tag="address|article|aside|base|basefont|blockquote|body|caption|center|col|colgroup|dd|details|dialog|dir|div|dl|dt|fieldset|figcaption|figure|footer|form|frame|frameset|h[1-6]|head|header|hr|html|iframe|legend|li|link|main|menu|menuitem|meta|nav|noframes|ol|optgroup|option|p|param|section|source|summary|table|tbody|td|tfoot|th|thead|title|tr|track|ul",Q._comment=/|$)/,Q.html=U(Q.html,"i").replace("comment",Q._comment).replace("tag",Q._tag).replace("attribute",/ +[a-zA-Z:_][\w.:-]*(?: *= *"[^"\n]*"| *= *'[^'\n]*'| *= *[^\s"'=<>`]+)?/).getRegex(),Q.paragraph=U(Q._paragraph).replace("hr",Q.hr).replace("heading"," {0,3}#{1,6} ").replace("|lheading","").replace("blockquote"," {0,3}>").replace("fences"," {0,3}(?:`{3,}(?=[^`\\n]*\\n)|~{3,})[^\\n]*\\n").replace("list"," {0,3}(?:[*+-]|1[.)]) ").replace("html","?(?:tag)(?: +|\\n|/?>)|<(?:script|pre|style|textarea|!--)").replace("tag",Q._tag).getRegex(),Q.blockquote=U(Q.blockquote).replace("paragraph",Q.paragraph).getRegex(),Q.normal=P({},Q),Q.gfm=P({},Q.normal,{table:"^ *([^\\n ].*\\|.*)\\n {0,3}(?:\\| *)?(:?-+:? *(?:\\| *:?-+:? *)*)(?:\\| *)?(?:\\n((?:(?! *\\n|hr|heading|blockquote|code|fences|list|html).*(?:\\n|$))*)\\n*|$)"}),Q.gfm.table=U(Q.gfm.table).replace("hr",Q.hr).replace("heading"," {0,3}#{1,6} ").replace("blockquote"," {0,3}>").replace("code"," {4}[^\\n]").replace("fences"," {0,3}(?:`{3,}(?=[^`\\n]*\\n)|~{3,})[^\\n]*\\n").replace("list"," {0,3}(?:[*+-]|1[.)]) ").replace("html","?(?:tag)(?: +|\\n|/?>)|<(?:script|pre|style|textarea|!--)").replace("tag",Q._tag).getRegex(),Q.pedantic=P({},Q.normal,{html:U("^ *(?:comment *(?:\\n|\\s*$)|<(tag)[\\s\\S]+?\\1> *(?:\\n{2,}|\\s*$)| \\s]*)*?/?> *(?:\\n{2,}|\\s*$))").replace("comment",Q._comment).replace(/tag/g,"(?!(?:a|em|strong|small|s|cite|q|dfn|abbr|data|time|code|var|samp|kbd|sub|sup|i|b|u|mark|ruby|rt|rp|bdi|bdo|span|br|wbr|ins|del|img)\\b)\\w+(?!:|[^\\w\\s@]*@)\\b").getRegex(),def:/^ *\[([^\]]+)\]: *([^\s>]+)>?(?: +(["(][^\n]+[")]))? *(?:\n+|$)/,heading:/^(#{1,6})(.*)(?:\n+|$)/,fences:j,paragraph:U(Q.normal._paragraph).replace("hr",Q.hr).replace("heading"," *#{1,6} *[^\n]").replace("lheading",Q.lheading).replace("blockquote"," {0,3}>").replace("|fences","").replace("|list","").replace("|html","").getRegex()});var M={escape:/^\\([!"#$%&'()*+,\-./:;<=>?@\[\]\\^_`{|}~])/,autolink:/^<(scheme:[^\s\x00-\x1f<>]*|email)>/,url:j,tag:"^comment|^[a-zA-Z][\\w:-]*\\s*>|^<[a-zA-Z][\\w-]*(?:attribute)*?\\s*/?>|^<\\?[\\s\\S]*?\\?>|^|^",link:/^!?\[(label)\]\(\s*(href)(?:\s+(title))?\s*\)/,reflink:/^!?\[(label)\]\[(?!\s*\])((?:\\[\[\]]?|[^\[\]\\])+)\]/,nolink:/^!?\[(?!\s*\])((?:\[[^\[\]]*\]|\\[\[\]]|[^\[\]])*)\](?:\[\])?/,reflinkSearch:"reflink|nolink(?!\\()",emStrong:{lDelim:/^(?:\*+(?:([punct_])|[^\s*]))|^_+(?:([punct*])|([^\s_]))/,rDelimAst:/^[^_*]*?\_\_[^_*]*?\*[^_*]*?(?=\_\_)|[punct_](\*+)(?=[\s]|$)|[^punct*_\s](\*+)(?=[punct_\s]|$)|[punct_\s](\*+)(?=[^punct*_\s])|[\s](\*+)(?=[punct_])|[punct_](\*+)(?=[punct_])|[^punct*_\s](\*+)(?=[^punct*_\s])/,rDelimUnd:/^[^_*]*?\*\*[^_*]*?\_[^_*]*?(?=\*\*)|[punct*](\_+)(?=[\s]|$)|[^punct*_\s](\_+)(?=[punct*\s]|$)|[punct*\s](\_+)(?=[^punct*_\s])|[\s](\_+)(?=[punct*])|[punct*](\_+)(?=[punct*])/},code:/^(`+)([^`]|[^`][\s\S]*?[^`])\1(?!`)/,br:/^( {2,}|\\)\n(?!\s*$)/,del:j,text:/^(`+|[^`])(?:(?= {2,}\n)|[\s\S]*?(?:(?=[\\?@\\[\\]`^{|}~"};M.punctuation=U(M.punctuation).replace(/punctuation/g,M._punctuation).getRegex(),M.blockSkip=/\[[^\]]*?\]\([^\)]*?\)|`[^`]*?`|<[^>]*?>/g,M.escapedEmSt=/\\\*|\\_/g,M._comment=U(Q._comment).replace("(?:--\x3e|$)","--\x3e").getRegex(),M.emStrong.lDelim=U(M.emStrong.lDelim).replace(/punct/g,M._punctuation).getRegex(),M.emStrong.rDelimAst=U(M.emStrong.rDelimAst,"g").replace(/punct/g,M._punctuation).getRegex(),M.emStrong.rDelimUnd=U(M.emStrong.rDelimUnd,"g").replace(/punct/g,M._punctuation).getRegex(),M._escapes=/\\([!"#$%&'()*+,\-./:;<=>?@\[\]\\^_`{|}~])/g,M._scheme=/[a-zA-Z][a-zA-Z0-9+.-]{1,31}/,M._email=/[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+(@)[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)+(?![-_])/,M.autolink=U(M.autolink).replace("scheme",M._scheme).replace("email",M._email).getRegex(),M._attribute=/\s+[a-zA-Z:_][\w.:-]*(?:\s*=\s*"[^"]*"|\s*=\s*'[^']*'|\s*=\s*[^\s"'=<>`]+)?/,M.tag=U(M.tag).replace("comment",M._comment).replace("attribute",M._attribute).getRegex(),M._label=/(?:\[(?:\\.|[^\[\]\\])*\]|\\.|`[^`]*`|[^\[\]\\`])*?/,M._href=/<(?:\\.|[^\n<>\\])+>|[^\s\x00-\x1f]*/,M._title=/"(?:\\"?|[^"\\])*"|'(?:\\'?|[^'\\])*'|\((?:\\\)?|[^)\\])*\)/,M.link=U(M.link).replace("label",M._label).replace("href",M._href).replace("title",M._title).getRegex(),M.reflink=U(M.reflink).replace("label",M._label).getRegex(),M.reflinkSearch=U(M.reflinkSearch,"g").replace("reflink",M.reflink).replace("nolink",M.nolink).getRegex(),M.normal=P({},M),M.pedantic=P({},M.normal,{strong:{start:/^__|\*\*/,middle:/^__(?=\S)([\s\S]*?\S)__(?!_)|^\*\*(?=\S)([\s\S]*?\S)\*\*(?!\*)/,endAst:/\*\*(?!\*)/g,endUnd:/__(?!_)/g},em:{start:/^_|\*/,middle:/^()\*(?=\S)([\s\S]*?\S)\*(?!\*)|^_(?=\S)([\s\S]*?\S)_(?!_)/,endAst:/\*(?!\*)/g,endUnd:/_(?!_)/g},link:U(/^!?\[(label)\]\((.*?)\)/).replace("label",M._label).getRegex(),reflink:U(/^!?\[(label)\]\s*\[([^\]]*)\]/).replace("label",M._label).getRegex()}),M.gfm=P({},M.normal,{escape:U(M.escape).replace("])","~|])").getRegex(),_extended_email:/[A-Za-z0-9._+-]+(@)[a-zA-Z0-9-_]+(?:\.[a-zA-Z0-9-_]*[a-zA-Z0-9])+(?![-_])/,url:/^((?:ftp|https?):\/\/|www\.)(?:[a-zA-Z0-9\-]+\.?)+[^\s<]*|^email/,_backpedal:/(?:[^?!.,:;*_~()&]+|\([^)]*\)|&(?![a-zA-Z0-9]+;$)|[?!.,:;*_~)]+(?!$))+/,del:/^(~~?)(?=[^\s~])([\s\S]*?[^\s~])\1(?=[^~]|$)/,text:/^([`~]+|[^`~])(?:(?= {2,}\n)|(?=[a-zA-Z0-9.!#$%&'*+\/=?_`{\|}~-]+@)|[\s\S]*?(?:(?=[\\.5&&(u="x"+u.toString(16)),n+=""+u+";";return n}var Y=function(){function t(e){this.tokens=[],this.tokens.links=Object.create(null),this.options=e||G,this.options.tokenizer=this.options.tokenizer||new X,this.tokenizer=this.options.tokenizer,this.tokenizer.options=this.options,this.tokenizer.lexer=this,this.inlineQueue=[],this.state={inLink:!1,inRawBlock:!1,top:!0};var t={block:V.normal,inline:H.normal};this.options.pedantic?(t.block=V.pedantic,t.inline=H.pedantic):this.options.gfm&&(t.block=V.gfm,this.options.breaks?t.inline=H.breaks:t.inline=H.gfm),this.tokenizer.rules=t}t.lex=function(e,u){return new t(u).lex(e)},t.lexInline=function(e,u){return new t(u).inlineTokens(e)};var u,n,r,i=t.prototype;return i.lex=function(e){var t;for(e=e.replace(/\r\n|\r/g,"\n").replace(/\t/g," "),this.blockTokens(e,this.tokens);t=this.inlineQueue.shift();)this.inlineTokens(t.src,t.tokens);return this.tokens},i.blockTokens=function(e,t){var u,n,r,i,s=this;for(void 0===t&&(t=[]),this.options.pedantic&&(e=e.replace(/^ +$/gm,""));e;)if(!(this.options.extensions&&this.options.extensions.block&&this.options.extensions.block.some((function(n){return!!(u=n.call({lexer:s},e,t))&&(e=e.substring(u.raw.length),t.push(u),!0)}))))if(u=this.tokenizer.space(e))e=e.substring(u.raw.length),u.type&&t.push(u);else if(u=this.tokenizer.code(e))e=e.substring(u.raw.length),!(n=t[t.length-1])||"paragraph"!==n.type&&"text"!==n.type?t.push(u):(n.raw+="\n"+u.raw,n.text+="\n"+u.text,this.inlineQueue[this.inlineQueue.length-1].src=n.text);else if(u=this.tokenizer.fences(e))e=e.substring(u.raw.length),t.push(u);else if(u=this.tokenizer.heading(e))e=e.substring(u.raw.length),t.push(u);else if(u=this.tokenizer.hr(e))e=e.substring(u.raw.length),t.push(u);else if(u=this.tokenizer.blockquote(e))e=e.substring(u.raw.length),t.push(u);else if(u=this.tokenizer.list(e))e=e.substring(u.raw.length),t.push(u);else if(u=this.tokenizer.html(e))e=e.substring(u.raw.length),t.push(u);else if(u=this.tokenizer.def(e))e=e.substring(u.raw.length),!(n=t[t.length-1])||"paragraph"!==n.type&&"text"!==n.type?this.tokens.links[u.tag]||(this.tokens.links[u.tag]={href:u.href,title:u.title}):(n.raw+="\n"+u.raw,n.text+="\n"+u.raw,this.inlineQueue[this.inlineQueue.length-1].src=n.text);else if(u=this.tokenizer.table(e))e=e.substring(u.raw.length),t.push(u);else if(u=this.tokenizer.lheading(e))e=e.substring(u.raw.length),t.push(u);else if(r=e,this.options.extensions&&this.options.extensions.startBlock&&function(){var t=1/0,u=e.slice(1),n=void 0;s.options.extensions.startBlock.forEach((function(e){"number"==typeof(n=e.call({lexer:this},u))&&n>=0&&(t=Math.min(t,n))})),t<1/0&&t>=0&&(r=e.substring(0,t+1))}(),this.state.top&&(u=this.tokenizer.paragraph(r)))n=t[t.length-1],i&&"paragraph"===n.type?(n.raw+="\n"+u.raw,n.text+="\n"+u.text,this.inlineQueue.pop(),this.inlineQueue[this.inlineQueue.length-1].src=n.text):t.push(u),i=r.length!==e.length,e=e.substring(u.raw.length);else if(u=this.tokenizer.text(e))e=e.substring(u.raw.length),(n=t[t.length-1])&&"text"===n.type?(n.raw+="\n"+u.raw,n.text+="\n"+u.text,this.inlineQueue.pop(),this.inlineQueue[this.inlineQueue.length-1].src=n.text):t.push(u);else if(e){var l="Infinite loop on byte: "+e.charCodeAt(0);if(this.options.silent){console.error(l);break}throw new Error(l)}return this.state.top=!0,t},i.inline=function(e,t){this.inlineQueue.push({src:e,tokens:t})},i.inlineTokens=function(e,t){var u,n,r,i=this;void 0===t&&(t=[]);var s,l,a,o=e;if(this.tokens.links){var D=Object.keys(this.tokens.links);if(D.length>0)for(;null!=(s=this.tokenizer.rules.inline.reflinkSearch.exec(o));)D.includes(s[0].slice(s[0].lastIndexOf("[")+1,-1))&&(o=o.slice(0,s.index)+"["+J("a",s[0].length-2)+"]"+o.slice(this.tokenizer.rules.inline.reflinkSearch.lastIndex))}for(;null!=(s=this.tokenizer.rules.inline.blockSkip.exec(o));)o=o.slice(0,s.index)+"["+J("a",s[0].length-2)+"]"+o.slice(this.tokenizer.rules.inline.blockSkip.lastIndex);for(;null!=(s=this.tokenizer.rules.inline.escapedEmSt.exec(o));)o=o.slice(0,s.index)+"++"+o.slice(this.tokenizer.rules.inline.escapedEmSt.lastIndex);for(;e;)if(l||(a=""),l=!1,!(this.options.extensions&&this.options.extensions.inline&&this.options.extensions.inline.some((function(n){return!!(u=n.call({lexer:i},e,t))&&(e=e.substring(u.raw.length),t.push(u),!0)}))))if(u=this.tokenizer.escape(e))e=e.substring(u.raw.length),t.push(u);else if(u=this.tokenizer.tag(e))e=e.substring(u.raw.length),(n=t[t.length-1])&&"text"===u.type&&"text"===n.type?(n.raw+=u.raw,n.text+=u.text):t.push(u);else if(u=this.tokenizer.link(e))e=e.substring(u.raw.length),t.push(u);else if(u=this.tokenizer.reflink(e,this.tokens.links))e=e.substring(u.raw.length),(n=t[t.length-1])&&"text"===u.type&&"text"===n.type?(n.raw+=u.raw,n.text+=u.text):t.push(u);else if(u=this.tokenizer.emStrong(e,o,a))e=e.substring(u.raw.length),t.push(u);else if(u=this.tokenizer.codespan(e))e=e.substring(u.raw.length),t.push(u);else if(u=this.tokenizer.br(e))e=e.substring(u.raw.length),t.push(u);else if(u=this.tokenizer.del(e))e=e.substring(u.raw.length),t.push(u);else if(u=this.tokenizer.autolink(e,W))e=e.substring(u.raw.length),t.push(u);else if(this.state.inLink||!(u=this.tokenizer.url(e,W))){if(r=e,this.options.extensions&&this.options.extensions.startInline&&function(){var t=1/0,u=e.slice(1),n=void 0;i.options.extensions.startInline.forEach((function(e){"number"==typeof(n=e.call({lexer:this},u))&&n>=0&&(t=Math.min(t,n))})),t<1/0&&t>=0&&(r=e.substring(0,t+1))}(),u=this.tokenizer.inlineText(r,K))e=e.substring(u.raw.length),"_"!==u.raw.slice(-1)&&(a=u.raw.slice(-1)),l=!0,(n=t[t.length-1])&&"text"===n.type?(n.raw+=u.raw,n.text+=u.text):t.push(u);else if(e){var c="Infinite loop on byte: "+e.charCodeAt(0);if(this.options.silent){console.error(c);break}throw new Error(c)}}else e=e.substring(u.raw.length),t.push(u);return t},u=t,r=[{key:"rules",get:function(){return{block:V,inline:H}}}],(n=null)&&e(u.prototype,n),r&&e(u,r),t}(),ee=n.exports.defaults,te=B,ue=x,ne=function(){function e(e){this.options=e||ee}var t=e.prototype;return t.code=function(e,t,u){var n=(t||"").match(/\S*/)[0];if(this.options.highlight){var r=this.options.highlight(e,n);null!=r&&r!==e&&(u=!0,e=r)}return e=e.replace(/\n$/,"")+"\n",n?''+(u?e:ue(e,!0))+"
\n":""+(u?e:ue(e,!0))+"
\n"},t.blockquote=function(e){return"\n"+e+" \n"},t.html=function(e){return e},t.heading=function(e,t,u,n){return this.options.headerIds?"\n":""+e+" \n"},t.hr=function(){return this.options.xhtml?" \n":" \n"},t.list=function(e,t,u){var n=t?"ol":"ul";return"<"+n+(t&&1!==u?' start="'+u+'"':"")+">\n"+e+""+n+">\n"},t.listitem=function(e){return""+e+" \n"},t.checkbox=function(e){return" "},t.paragraph=function(e){return""+e+"
\n"},t.table=function(e,t){return t&&(t=""+t+" ")," \n"},t.tablerow=function(e){return"\n"+e+" \n"},t.tablecell=function(e,t){var u=t.header?"th":"td";return(t.align?"<"+u+' align="'+t.align+'">':"<"+u+">")+e+""+u+">\n"},t.strong=function(e){return""+e+" "},t.em=function(e){return""+e+" "},t.codespan=function(e){return""+e+"
"},t.br=function(){return this.options.xhtml?" ":" "},t.del=function(e){return""+e+""},t.link=function(e,t,u){if(null===(e=te(this.options.sanitize,this.options.baseUrl,e)))return u;var n='"+u+" "},t.image=function(e,t,u){if(null===(e=te(this.options.sanitize,this.options.baseUrl,e)))return u;var n=' ":">"},t.text=function(e){return e},e}(),re=function(){function e(){}var t=e.prototype;return t.strong=function(e){return e},t.em=function(e){return e},t.codespan=function(e){return e},t.del=function(e){return e},t.html=function(e){return e},t.text=function(e){return e},t.link=function(e,t,u){return""+u},t.image=function(e,t,u){return""+u},t.br=function(){return""},e}(),ie=function(){function e(){this.seen={}}var t=e.prototype;return t.serialize=function(e){return e.toLowerCase().trim().replace(/<[!\/a-z].*?>/gi,"").replace(/[\u2000-\u206F\u2E00-\u2E7F\\'!"#$%&()*+,./:;<=>?@[\]^`{|}~]/g,"").replace(/\s/g,"-")},t.getNextSafeSlug=function(e,t){var u=e,n=0;if(this.seen.hasOwnProperty(u)){n=this.seen[e];do{u=e+"-"+ ++n}while(this.seen.hasOwnProperty(u))}return t||(this.seen[e]=n,this.seen[u]=0),u},t.slug=function(e,t){void 0===t&&(t={});var u=this.serialize(e);return this.getNextSafeSlug(u,t.dryrun)},e}(),se=ne,le=re,ae=ie,oe=n.exports.defaults,De=m,ce=Y,he=function(){function e(e){this.options=e||oe,this.options.renderer=this.options.renderer||new se,this.renderer=this.options.renderer,this.renderer.options=this.options,this.textRenderer=new le,this.slugger=new ae}e.parse=function(t,u){return new e(u).parse(t)},e.parseInline=function(t,u){return new e(u).parseInline(t)};var t=e.prototype;return t.parse=function(e,t){void 0===t&&(t=!0);var u,n,r,i,s,l,a,o,D,c,h,p,f,g,F,A,d,C,k,E="",x=e.length;for(u=0;u0&&"paragraph"===F.tokens[0].type?(F.tokens[0].text=C+" "+F.tokens[0].text,F.tokens[0].tokens&&F.tokens[0].tokens.length>0&&"text"===F.tokens[0].tokens[0].type&&(F.tokens[0].tokens[0].text=C+" "+F.tokens[0].tokens[0].text)):F.tokens.unshift({type:"text",text:C}):g+=C),g+=this.parse(F.tokens,f),D+=this.renderer.listitem(g,d,A);E+=this.renderer.list(D,h,p);continue;case"html":E+=this.renderer.html(c.text);continue;case"paragraph":E+=this.renderer.paragraph(this.parseInline(c.tokens));continue;case"text":for(D=c.tokens?this.parseInline(c.tokens):c.text;u+1An error occurred:
"+Ce(e.message+"",!0)+" ";throw e}}return me.options=me.setOptions=function(e){return Ae(me.defaults,e),Ee(me.defaults),me},me.getDefaults=ke,me.defaults=xe,me.use=function(){for(var e=arguments.length,t=new Array(e),u=0;uAn error occurred:"+Ce(e.message+"",!0)+" ";throw e}},me.Parser=he,me.parser=he.parse,me.Renderer=fe,me.TextRenderer=ge,me.Lexer=ce,me.lexer=ce.lex,me.Tokenizer=pe,me.Slugger=Fe,me.parse=me,me}));
+
+function markdown(first, second) {
+ var input = document.getElementById(first).value;
+ input = input.replace(/\|\|(.*?)\|\|/g, '$1 ')
+
+ var emojis = Array.from(input.matchAll(/:(.{1,30}?):/gi))
+ if(emojis != null){
+ for(i = 0; i < emojis.length; i++){
+ var emoji = emojis[i][0]
+ var remoji = emoji.replace(/:/g,'');
+ if (remoji.startsWith("!#") || remoji.startsWith("#!"))
+ {
+ input = input.replace(emoji, " ")
+ } else if (remoji.startsWith("#"))
+ {
+ input = input.replace(emoji, " ")
+ } else if (remoji.startsWith("!"))
+ {
+ input = input.replace(emoji, " ")
+ } else {
+ input = input.replace(emoji, " ")
+ }
+ }
+ }
+
+ if (!first.includes('edit'))
+ {
+ var options = Array.from(input.matchAll(/\s*\$\$([^\$\n]+)\$\$\s*/gi))
+ if(options != null){
+ for(i = 0; i < options.length; i++){
+ var option = options[i][0];
+ var option2 = option.replace(/\$\$/g, '').replace(/\n/g, '')
+ input = input.replace(option, '');
+ input += '';
+ }
+ }
+ }
+
+ document.getElementById(second).innerHTML = marked(input)
+}
+
+function charLimit(form, text) {
+
+ var input = document.getElementById(form);
+
+ var text = document.getElementById(text);
+
+ var length = input.value.length;
+
+ var maxLength = input.getAttribute("maxlength");
+
+ if (length >= maxLength) {
+ text.style.color = "#E53E3E";
+ }
+ else if (length >= maxLength * .72){
+ text.style.color = "#FFC107";
+ }
+ else {
+ text.style.color = "#A0AEC0";
+ }
+
+ text.innerText = length + ' / ' + maxLength;
+}
\ No newline at end of file
diff --git a/files/assets/CHRISTMAS/js/mobile_navigation_bar.js b/files/assets/CHRISTMAS/js/mobile_navigation_bar.js
new file mode 100644
index 000000000..2801c6cc2
--- /dev/null
+++ b/files/assets/CHRISTMAS/js/mobile_navigation_bar.js
@@ -0,0 +1,41 @@
+let prevScrollpos = window.pageYOffset;
+
+document.getElementsByTagName('body')[0].onscroll = () => {
+ let currentScrollPos = window.pageYOffset;
+ // var topBar = document.getElementById("fixed-bar-mobile");
+ const bottomBar = document.getElementById("mobile-bottom-navigation-bar");
+ // var dropdown = document.getElementById("mobileSortDropdown");
+ // var navbar = document.getElementById("navbar");
+
+ if (bottomBar != null) {
+ if (currentScrollPos <= 60 || ((window.innerHeight + currentScrollPos) < document.body.offsetHeight)) {
+ // console.log('less than 60 greater than offsetHeight');
+ bottomBar.style.transform = "translateY(60px)";
+ }
+ else if (prevScrollpos > currentScrollPos) {
+ // console.log('prev greater than current');
+ bottomBar.style.transform = "translateY(0px)"
+ }
+ else {
+ // console.log('else');
+ bottomBar.style.transform = "translateY(60px)";
+ }
+ }
+
+ // if (topBar != null && dropdown != null) {
+ // if (prevScrollpos > currentScrollPos) {
+ // topBar.style.top = "48px";
+ // navbar.classList.remove("shadow");
+ // }
+ // else if (currentScrollPos <= 125) {
+ // topBar.style.top = "48px";
+ // navbar.classList.remove("shadow");
+ // }
+ // else {
+ // topBar.style.top = "-48px";
+ // dropdown.classList.remove('show');
+ // navbar.classList.add("shadow");
+ // }
+ // }
+ prevScrollpos = currentScrollPos;
+}
\ No newline at end of file
diff --git a/files/assets/js/modules/initializeBootstrap.js b/files/assets/CHRISTMAS/js/modules/initializeBootstrap.js
similarity index 100%
rename from files/assets/js/modules/initializeBootstrap.js
rename to files/assets/CHRISTMAS/js/modules/initializeBootstrap.js
diff --git a/files/assets/CHRISTMAS/js/new_comments_count.js b/files/assets/CHRISTMAS/js/new_comments_count.js
new file mode 100644
index 000000000..24846862c
--- /dev/null
+++ b/files/assets/CHRISTMAS/js/new_comments_count.js
@@ -0,0 +1,39 @@
+if (typeof showNewCommentCounts === 'undefined') {
+ function showNewCommentCounts(postId, newTotal) {
+ const comments = JSON.parse(localStorage.getItem("comment-counts")) || {}
+
+ const lastCount = comments[postId]
+ if (lastCount) {
+ const newComments = newTotal - lastCount.c
+ if (newComments > 0) {
+ document.querySelectorAll(`#post-${postId} .new-comments`).forEach(elem => {
+ elem.textContent = ` (+${newComments})`
+ elem.classList.remove("d-none")
+ })
+ }
+ }
+ }
+
+ const LAST_CACHE_CLEAN_ID = "last-cache-clean"
+ const EXPIRE_INTERVAL_MILLIS = 5 * 24 * 60 * 60 * 1000
+ const CACHE_CLEAN_INTERVAL = 60 * 60 * 1000
+
+ function cleanCache() {
+ const lastCacheClean = JSON.parse(localStorage.getItem(LAST_CACHE_CLEAN_ID)) || Date.now()
+ const now = Date.now()
+
+ if (now - lastCacheClean > CACHE_CLEAN_INTERVAL) {
+ const comments = JSON.parse(localStorage.getItem("comment-counts")) || {}
+
+ for (let [key, value] of Object.entries(comments)) {
+ if (now - value.t > EXPIRE_INTERVAL_MILLIS) {
+ delete comments[key]
+ }
+ }
+ window.localStorage.setItem("comment-counts", JSON.stringify(comments))
+ }
+ window.localStorage.setItem(LAST_CACHE_CLEAN_ID, JSON.stringify(now))
+ }
+
+ setTimeout(cleanCache, 500)
+}
\ No newline at end of file
diff --git a/files/assets/js/popover.js b/files/assets/CHRISTMAS/js/popover.js
similarity index 100%
rename from files/assets/js/popover.js
rename to files/assets/CHRISTMAS/js/popover.js
diff --git a/files/assets/CHRISTMAS/js/post_toast2.js b/files/assets/CHRISTMAS/js/post_toast2.js
new file mode 100644
index 000000000..1a31bc179
--- /dev/null
+++ b/files/assets/CHRISTMAS/js/post_toast2.js
@@ -0,0 +1,52 @@
+function post_toast2(url, button1, button2) {
+ var xhr = new XMLHttpRequest();
+ xhr.open("POST", url, true);
+ var form = new FormData()
+ form.append("formkey", formkey());
+
+ if(typeof data === 'object' && data !== null) {
+ for(let k of Object.keys(data)) {
+ form.append(k, data[k]);
+ }
+ }
+
+
+ form.append("formkey", formkey());
+ xhr.withCredentials=true;
+
+ xhr.onload = function() {
+ if (xhr.status >= 200 && xhr.status < 300) {
+ try {
+ document.getElementById('toast-post-success-text').innerText = JSON.parse(xhr.response)["message"];
+ } catch(e) {
+ document.getElementById('toast-post-success-text').innerText = "Action successful!";
+ }
+ var myToast = new bootstrap.Toast(document.getElementById('toast-post-success'));
+ myToast.show();
+ return true
+
+ } else if (xhr.status >= 300 && xhr.status < 400) {
+ window.location.href = JSON.parse(xhr.response)["redirect"]
+ } else {
+ try {
+ data=JSON.parse(xhr.response);
+
+ var myToast = new bootstrap.Toast(document.getElementById('toast-post-error'));
+ myToast.show();
+ document.getElementById('toast-post-error-text').innerText = data["error"];
+ return false
+ } catch(e) {
+ var myToast = new bootstrap.Toast(document.getElementById('toast-post-success'));
+ myToast.hide();
+ var myToast = new bootstrap.Toast(document.getElementById('toast-post-error'));
+ myToast.show();
+ return false
+ }
+ }
+ };
+
+ xhr.send(form);
+
+ document.getElementById(button1).classList.toggle("d-none");
+ document.getElementById(button2).classList.toggle("d-none");
+}
\ No newline at end of file
diff --git a/files/assets/CHRISTMAS/js/pusher.js b/files/assets/CHRISTMAS/js/pusher.js
new file mode 100644
index 000000000..153aba475
--- /dev/null
+++ b/files/assets/CHRISTMAS/js/pusher.js
@@ -0,0 +1,2613 @@
+var PusherPushNotifications = (function (exports) {
+ 'use strict';
+
+ function _arrayWithoutHoles(arr) {
+ if (Array.isArray(arr)) {
+ for (var i = 0, arr2 = new Array(arr.length); i < arr.length; i++) {
+ arr2[i] = arr[i];
+ }
+
+ return arr2;
+ }
+ }
+
+ var arrayWithoutHoles = _arrayWithoutHoles;
+
+ function _iterableToArray(iter) {
+ if (Symbol.iterator in Object(iter) || Object.prototype.toString.call(iter) === "[object Arguments]") return Array.from(iter);
+ }
+
+ var iterableToArray = _iterableToArray;
+
+ function _nonIterableSpread() {
+ throw new TypeError("Invalid attempt to spread non-iterable instance");
+ }
+
+ var nonIterableSpread = _nonIterableSpread;
+
+ function _toConsumableArray(arr) {
+ return arrayWithoutHoles(arr) || iterableToArray(arr) || nonIterableSpread();
+ }
+
+ var toConsumableArray = _toConsumableArray;
+
+ function createCommonjsModule(fn, module) {
+ return module = { exports: {} }, fn(module, module.exports), module.exports;
+ }
+
+ var runtime_1 = createCommonjsModule(function (module) {
+ /**
+ * Copyright (c) 2014-present, Facebook, Inc.
+ *
+ * This source code is licensed under the MIT license found in the
+ * LICENSE file in the root directory of this source tree.
+ */
+
+ var runtime = (function (exports) {
+
+ var Op = Object.prototype;
+ var hasOwn = Op.hasOwnProperty;
+ var undefined$1; // More compressible than void 0.
+ var $Symbol = typeof Symbol === "function" ? Symbol : {};
+ var iteratorSymbol = $Symbol.iterator || "@@iterator";
+ var asyncIteratorSymbol = $Symbol.asyncIterator || "@@asyncIterator";
+ var toStringTagSymbol = $Symbol.toStringTag || "@@toStringTag";
+
+ function wrap(innerFn, outerFn, self, tryLocsList) {
+ // If outerFn provided and outerFn.prototype is a Generator, then outerFn.prototype instanceof Generator.
+ var protoGenerator = outerFn && outerFn.prototype instanceof Generator ? outerFn : Generator;
+ var generator = Object.create(protoGenerator.prototype);
+ var context = new Context(tryLocsList || []);
+
+ // The ._invoke method unifies the implementations of the .next,
+ // .throw, and .return methods.
+ generator._invoke = makeInvokeMethod(innerFn, self, context);
+
+ return generator;
+ }
+ exports.wrap = wrap;
+
+ // Try/catch helper to minimize deoptimizations. Returns a completion
+ // record like context.tryEntries[i].completion. This interface could
+ // have been (and was previously) designed to take a closure to be
+ // invoked without arguments, but in all the cases we care about we
+ // already have an existing method we want to call, so there's no need
+ // to create a new function object. We can even get away with assuming
+ // the method takes exactly one argument, since that happens to be true
+ // in every case, so we don't have to touch the arguments object. The
+ // only additional allocation required is the completion record, which
+ // has a stable shape and so hopefully should be cheap to allocate.
+ function tryCatch(fn, obj, arg) {
+ try {
+ return { type: "normal", arg: fn.call(obj, arg) };
+ } catch (err) {
+ return { type: "throw", arg: err };
+ }
+ }
+
+ var GenStateSuspendedStart = "suspendedStart";
+ var GenStateSuspendedYield = "suspendedYield";
+ var GenStateExecuting = "executing";
+ var GenStateCompleted = "completed";
+
+ // Returning this object from the innerFn has the same effect as
+ // breaking out of the dispatch switch statement.
+ var ContinueSentinel = {};
+
+ // Dummy constructor functions that we use as the .constructor and
+ // .constructor.prototype properties for functions that return Generator
+ // objects. For full spec compliance, you may wish to configure your
+ // minifier not to mangle the names of these two functions.
+ function Generator() {}
+ function GeneratorFunction() {}
+ function GeneratorFunctionPrototype() {}
+
+ // This is a polyfill for %IteratorPrototype% for environments that
+ // don't natively support it.
+ var IteratorPrototype = {};
+ IteratorPrototype[iteratorSymbol] = function () {
+ return this;
+ };
+
+ var getProto = Object.getPrototypeOf;
+ var NativeIteratorPrototype = getProto && getProto(getProto(values([])));
+ if (NativeIteratorPrototype &&
+ NativeIteratorPrototype !== Op &&
+ hasOwn.call(NativeIteratorPrototype, iteratorSymbol)) {
+ // This environment has a native %IteratorPrototype%; use it instead
+ // of the polyfill.
+ IteratorPrototype = NativeIteratorPrototype;
+ }
+
+ var Gp = GeneratorFunctionPrototype.prototype =
+ Generator.prototype = Object.create(IteratorPrototype);
+ GeneratorFunction.prototype = Gp.constructor = GeneratorFunctionPrototype;
+ GeneratorFunctionPrototype.constructor = GeneratorFunction;
+ GeneratorFunctionPrototype[toStringTagSymbol] =
+ GeneratorFunction.displayName = "GeneratorFunction";
+
+ // Helper for defining the .next, .throw, and .return methods of the
+ // Iterator interface in terms of a single ._invoke method.
+ function defineIteratorMethods(prototype) {
+ ["next", "throw", "return"].forEach(function(method) {
+ prototype[method] = function(arg) {
+ return this._invoke(method, arg);
+ };
+ });
+ }
+
+ exports.isGeneratorFunction = function(genFun) {
+ var ctor = typeof genFun === "function" && genFun.constructor;
+ return ctor
+ ? ctor === GeneratorFunction ||
+ // For the native GeneratorFunction constructor, the best we can
+ // do is to check its .name property.
+ (ctor.displayName || ctor.name) === "GeneratorFunction"
+ : false;
+ };
+
+ exports.mark = function(genFun) {
+ if (Object.setPrototypeOf) {
+ Object.setPrototypeOf(genFun, GeneratorFunctionPrototype);
+ } else {
+ genFun.__proto__ = GeneratorFunctionPrototype;
+ if (!(toStringTagSymbol in genFun)) {
+ genFun[toStringTagSymbol] = "GeneratorFunction";
+ }
+ }
+ genFun.prototype = Object.create(Gp);
+ return genFun;
+ };
+
+ // Within the body of any async function, `await x` is transformed to
+ // `yield regeneratorRuntime.awrap(x)`, so that the runtime can test
+ // `hasOwn.call(value, "__await")` to determine if the yielded value is
+ // meant to be awaited.
+ exports.awrap = function(arg) {
+ return { __await: arg };
+ };
+
+ function AsyncIterator(generator) {
+ function invoke(method, arg, resolve, reject) {
+ var record = tryCatch(generator[method], generator, arg);
+ if (record.type === "throw") {
+ reject(record.arg);
+ } else {
+ var result = record.arg;
+ var value = result.value;
+ if (value &&
+ typeof value === "object" &&
+ hasOwn.call(value, "__await")) {
+ return Promise.resolve(value.__await).then(function(value) {
+ invoke("next", value, resolve, reject);
+ }, function(err) {
+ invoke("throw", err, resolve, reject);
+ });
+ }
+
+ return Promise.resolve(value).then(function(unwrapped) {
+ // When a yielded Promise is resolved, its final value becomes
+ // the .value of the Promise<{value,done}> result for the
+ // current iteration.
+ result.value = unwrapped;
+ resolve(result);
+ }, function(error) {
+ // If a rejected Promise was yielded, throw the rejection back
+ // into the async generator function so it can be handled there.
+ return invoke("throw", error, resolve, reject);
+ });
+ }
+ }
+
+ var previousPromise;
+
+ function enqueue(method, arg) {
+ function callInvokeWithMethodAndArg() {
+ return new Promise(function(resolve, reject) {
+ invoke(method, arg, resolve, reject);
+ });
+ }
+
+ return previousPromise =
+ // If enqueue has been called before, then we want to wait until
+ // all previous Promises have been resolved before calling invoke,
+ // so that results are always delivered in the correct order. If
+ // enqueue has not been called before, then it is important to
+ // call invoke immediately, without waiting on a callback to fire,
+ // so that the async generator function has the opportunity to do
+ // any necessary setup in a predictable way. This predictability
+ // is why the Promise constructor synchronously invokes its
+ // executor callback, and why async functions synchronously
+ // execute code before the first await. Since we implement simple
+ // async functions in terms of async generators, it is especially
+ // important to get this right, even though it requires care.
+ previousPromise ? previousPromise.then(
+ callInvokeWithMethodAndArg,
+ // Avoid propagating failures to Promises returned by later
+ // invocations of the iterator.
+ callInvokeWithMethodAndArg
+ ) : callInvokeWithMethodAndArg();
+ }
+
+ // Define the unified helper method that is used to implement .next,
+ // .throw, and .return (see defineIteratorMethods).
+ this._invoke = enqueue;
+ }
+
+ defineIteratorMethods(AsyncIterator.prototype);
+ AsyncIterator.prototype[asyncIteratorSymbol] = function () {
+ return this;
+ };
+ exports.AsyncIterator = AsyncIterator;
+
+ // Note that simple async functions are implemented on top of
+ // AsyncIterator objects; they just return a Promise for the value of
+ // the final result produced by the iterator.
+ exports.async = function(innerFn, outerFn, self, tryLocsList) {
+ var iter = new AsyncIterator(
+ wrap(innerFn, outerFn, self, tryLocsList)
+ );
+
+ return exports.isGeneratorFunction(outerFn)
+ ? iter // If outerFn is a generator, return the full iterator.
+ : iter.next().then(function(result) {
+ return result.done ? result.value : iter.next();
+ });
+ };
+
+ function makeInvokeMethod(innerFn, self, context) {
+ var state = GenStateSuspendedStart;
+
+ return function invoke(method, arg) {
+ if (state === GenStateExecuting) {
+ throw new Error("Generator is already running");
+ }
+
+ if (state === GenStateCompleted) {
+ if (method === "throw") {
+ throw arg;
+ }
+
+ // Be forgiving, per 25.3.3.3.3 of the spec:
+ // https://people.mozilla.org/~jorendorff/es6-draft.html#sec-generatorresume
+ return doneResult();
+ }
+
+ context.method = method;
+ context.arg = arg;
+
+ while (true) {
+ var delegate = context.delegate;
+ if (delegate) {
+ var delegateResult = maybeInvokeDelegate(delegate, context);
+ if (delegateResult) {
+ if (delegateResult === ContinueSentinel) continue;
+ return delegateResult;
+ }
+ }
+
+ if (context.method === "next") {
+ // Setting context._sent for legacy support of Babel's
+ // function.sent implementation.
+ context.sent = context._sent = context.arg;
+
+ } else if (context.method === "throw") {
+ if (state === GenStateSuspendedStart) {
+ state = GenStateCompleted;
+ throw context.arg;
+ }
+
+ context.dispatchException(context.arg);
+
+ } else if (context.method === "return") {
+ context.abrupt("return", context.arg);
+ }
+
+ state = GenStateExecuting;
+
+ var record = tryCatch(innerFn, self, context);
+ if (record.type === "normal") {
+ // If an exception is thrown from innerFn, we leave state ===
+ // GenStateExecuting and loop back for another invocation.
+ state = context.done
+ ? GenStateCompleted
+ : GenStateSuspendedYield;
+
+ if (record.arg === ContinueSentinel) {
+ continue;
+ }
+
+ return {
+ value: record.arg,
+ done: context.done
+ };
+
+ } else if (record.type === "throw") {
+ state = GenStateCompleted;
+ // Dispatch the exception by looping back around to the
+ // context.dispatchException(context.arg) call above.
+ context.method = "throw";
+ context.arg = record.arg;
+ }
+ }
+ };
+ }
+
+ // Call delegate.iterator[context.method](context.arg) and handle the
+ // result, either by returning a { value, done } result from the
+ // delegate iterator, or by modifying context.method and context.arg,
+ // setting context.delegate to null, and returning the ContinueSentinel.
+ function maybeInvokeDelegate(delegate, context) {
+ var method = delegate.iterator[context.method];
+ if (method === undefined$1) {
+ // A .throw or .return when the delegate iterator has no .throw
+ // method always terminates the yield* loop.
+ context.delegate = null;
+
+ if (context.method === "throw") {
+ // Note: ["return"] must be used for ES3 parsing compatibility.
+ if (delegate.iterator["return"]) {
+ // If the delegate iterator has a return method, give it a
+ // chance to clean up.
+ context.method = "return";
+ context.arg = undefined$1;
+ maybeInvokeDelegate(delegate, context);
+
+ if (context.method === "throw") {
+ // If maybeInvokeDelegate(context) changed context.method from
+ // "return" to "throw", let that override the TypeError below.
+ return ContinueSentinel;
+ }
+ }
+
+ context.method = "throw";
+ context.arg = new TypeError(
+ "The iterator does not provide a 'throw' method");
+ }
+
+ return ContinueSentinel;
+ }
+
+ var record = tryCatch(method, delegate.iterator, context.arg);
+
+ if (record.type === "throw") {
+ context.method = "throw";
+ context.arg = record.arg;
+ context.delegate = null;
+ return ContinueSentinel;
+ }
+
+ var info = record.arg;
+
+ if (! info) {
+ context.method = "throw";
+ context.arg = new TypeError("iterator result is not an object");
+ context.delegate = null;
+ return ContinueSentinel;
+ }
+
+ if (info.done) {
+ // Assign the result of the finished delegate to the temporary
+ // variable specified by delegate.resultName (see delegateYield).
+ context[delegate.resultName] = info.value;
+
+ // Resume execution at the desired location (see delegateYield).
+ context.next = delegate.nextLoc;
+
+ // If context.method was "throw" but the delegate handled the
+ // exception, let the outer generator proceed normally. If
+ // context.method was "next", forget context.arg since it has been
+ // "consumed" by the delegate iterator. If context.method was
+ // "return", allow the original .return call to continue in the
+ // outer generator.
+ if (context.method !== "return") {
+ context.method = "next";
+ context.arg = undefined$1;
+ }
+
+ } else {
+ // Re-yield the result returned by the delegate method.
+ return info;
+ }
+
+ // The delegate iterator is finished, so forget it and continue with
+ // the outer generator.
+ context.delegate = null;
+ return ContinueSentinel;
+ }
+
+ // Define Generator.prototype.{next,throw,return} in terms of the
+ // unified ._invoke helper method.
+ defineIteratorMethods(Gp);
+
+ Gp[toStringTagSymbol] = "Generator";
+
+ // A Generator should always return itself as the iterator object when the
+ // @@iterator function is called on it. Some browsers' implementations of the
+ // iterator prototype chain incorrectly implement this, causing the Generator
+ // object to not be returned from this call. This ensures that doesn't happen.
+ // See https://github.com/facebook/regenerator/issues/274 for more details.
+ Gp[iteratorSymbol] = function() {
+ return this;
+ };
+
+ Gp.toString = function() {
+ return "[object Generator]";
+ };
+
+ function pushTryEntry(locs) {
+ var entry = { tryLoc: locs[0] };
+
+ if (1 in locs) {
+ entry.catchLoc = locs[1];
+ }
+
+ if (2 in locs) {
+ entry.finallyLoc = locs[2];
+ entry.afterLoc = locs[3];
+ }
+
+ this.tryEntries.push(entry);
+ }
+
+ function resetTryEntry(entry) {
+ var record = entry.completion || {};
+ record.type = "normal";
+ delete record.arg;
+ entry.completion = record;
+ }
+
+ function Context(tryLocsList) {
+ // The root entry object (effectively a try statement without a catch
+ // or a finally block) gives us a place to store values thrown from
+ // locations where there is no enclosing try statement.
+ this.tryEntries = [{ tryLoc: "root" }];
+ tryLocsList.forEach(pushTryEntry, this);
+ this.reset(true);
+ }
+
+ exports.keys = function(object) {
+ var keys = [];
+ for (var key in object) {
+ keys.push(key);
+ }
+ keys.reverse();
+
+ // Rather than returning an object with a next method, we keep
+ // things simple and return the next function itself.
+ return function next() {
+ while (keys.length) {
+ var key = keys.pop();
+ if (key in object) {
+ next.value = key;
+ next.done = false;
+ return next;
+ }
+ }
+
+ // To avoid creating an additional object, we just hang the .value
+ // and .done properties off the next function object itself. This
+ // also ensures that the minifier will not anonymize the function.
+ next.done = true;
+ return next;
+ };
+ };
+
+ function values(iterable) {
+ if (iterable) {
+ var iteratorMethod = iterable[iteratorSymbol];
+ if (iteratorMethod) {
+ return iteratorMethod.call(iterable);
+ }
+
+ if (typeof iterable.next === "function") {
+ return iterable;
+ }
+
+ if (!isNaN(iterable.length)) {
+ var i = -1, next = function next() {
+ while (++i < iterable.length) {
+ if (hasOwn.call(iterable, i)) {
+ next.value = iterable[i];
+ next.done = false;
+ return next;
+ }
+ }
+
+ next.value = undefined$1;
+ next.done = true;
+
+ return next;
+ };
+
+ return next.next = next;
+ }
+ }
+
+ // Return an iterator with no values.
+ return { next: doneResult };
+ }
+ exports.values = values;
+
+ function doneResult() {
+ return { value: undefined$1, done: true };
+ }
+
+ Context.prototype = {
+ constructor: Context,
+
+ reset: function(skipTempReset) {
+ this.prev = 0;
+ this.next = 0;
+ // Resetting context._sent for legacy support of Babel's
+ // function.sent implementation.
+ this.sent = this._sent = undefined$1;
+ this.done = false;
+ this.delegate = null;
+
+ this.method = "next";
+ this.arg = undefined$1;
+
+ this.tryEntries.forEach(resetTryEntry);
+
+ if (!skipTempReset) {
+ for (var name in this) {
+ // Not sure about the optimal order of these conditions:
+ if (name.charAt(0) === "t" &&
+ hasOwn.call(this, name) &&
+ !isNaN(+name.slice(1))) {
+ this[name] = undefined$1;
+ }
+ }
+ }
+ },
+
+ stop: function() {
+ this.done = true;
+
+ var rootEntry = this.tryEntries[0];
+ var rootRecord = rootEntry.completion;
+ if (rootRecord.type === "throw") {
+ throw rootRecord.arg;
+ }
+
+ return this.rval;
+ },
+
+ dispatchException: function(exception) {
+ if (this.done) {
+ throw exception;
+ }
+
+ var context = this;
+ function handle(loc, caught) {
+ record.type = "throw";
+ record.arg = exception;
+ context.next = loc;
+
+ if (caught) {
+ // If the dispatched exception was caught by a catch block,
+ // then let that catch block handle the exception normally.
+ context.method = "next";
+ context.arg = undefined$1;
+ }
+
+ return !! caught;
+ }
+
+ for (var i = this.tryEntries.length - 1; i >= 0; --i) {
+ var entry = this.tryEntries[i];
+ var record = entry.completion;
+
+ if (entry.tryLoc === "root") {
+ // Exception thrown outside of any try block that could handle
+ // it, so set the completion value of the entire function to
+ // throw the exception.
+ return handle("end");
+ }
+
+ if (entry.tryLoc <= this.prev) {
+ var hasCatch = hasOwn.call(entry, "catchLoc");
+ var hasFinally = hasOwn.call(entry, "finallyLoc");
+
+ if (hasCatch && hasFinally) {
+ if (this.prev < entry.catchLoc) {
+ return handle(entry.catchLoc, true);
+ } else if (this.prev < entry.finallyLoc) {
+ return handle(entry.finallyLoc);
+ }
+
+ } else if (hasCatch) {
+ if (this.prev < entry.catchLoc) {
+ return handle(entry.catchLoc, true);
+ }
+
+ } else if (hasFinally) {
+ if (this.prev < entry.finallyLoc) {
+ return handle(entry.finallyLoc);
+ }
+
+ } else {
+ throw new Error("try statement without catch or finally");
+ }
+ }
+ }
+ },
+
+ abrupt: function(type, arg) {
+ for (var i = this.tryEntries.length - 1; i >= 0; --i) {
+ var entry = this.tryEntries[i];
+ if (entry.tryLoc <= this.prev &&
+ hasOwn.call(entry, "finallyLoc") &&
+ this.prev < entry.finallyLoc) {
+ var finallyEntry = entry;
+ break;
+ }
+ }
+
+ if (finallyEntry &&
+ (type === "break" ||
+ type === "continue") &&
+ finallyEntry.tryLoc <= arg &&
+ arg <= finallyEntry.finallyLoc) {
+ // Ignore the finally entry if control is not jumping to a
+ // location outside the try/catch block.
+ finallyEntry = null;
+ }
+
+ var record = finallyEntry ? finallyEntry.completion : {};
+ record.type = type;
+ record.arg = arg;
+
+ if (finallyEntry) {
+ this.method = "next";
+ this.next = finallyEntry.finallyLoc;
+ return ContinueSentinel;
+ }
+
+ return this.complete(record);
+ },
+
+ complete: function(record, afterLoc) {
+ if (record.type === "throw") {
+ throw record.arg;
+ }
+
+ if (record.type === "break" ||
+ record.type === "continue") {
+ this.next = record.arg;
+ } else if (record.type === "return") {
+ this.rval = this.arg = record.arg;
+ this.method = "return";
+ this.next = "end";
+ } else if (record.type === "normal" && afterLoc) {
+ this.next = afterLoc;
+ }
+
+ return ContinueSentinel;
+ },
+
+ finish: function(finallyLoc) {
+ for (var i = this.tryEntries.length - 1; i >= 0; --i) {
+ var entry = this.tryEntries[i];
+ if (entry.finallyLoc === finallyLoc) {
+ this.complete(entry.completion, entry.afterLoc);
+ resetTryEntry(entry);
+ return ContinueSentinel;
+ }
+ }
+ },
+
+ "catch": function(tryLoc) {
+ for (var i = this.tryEntries.length - 1; i >= 0; --i) {
+ var entry = this.tryEntries[i];
+ if (entry.tryLoc === tryLoc) {
+ var record = entry.completion;
+ if (record.type === "throw") {
+ var thrown = record.arg;
+ resetTryEntry(entry);
+ }
+ return thrown;
+ }
+ }
+
+ // The context.catch method must only be called with a location
+ // argument that corresponds to a known catch block.
+ throw new Error("illegal catch attempt");
+ },
+
+ delegateYield: function(iterable, resultName, nextLoc) {
+ this.delegate = {
+ iterator: values(iterable),
+ resultName: resultName,
+ nextLoc: nextLoc
+ };
+
+ if (this.method === "next") {
+ // Deliberately forget the last sent value so that we don't
+ // accidentally pass it on to the delegate.
+ this.arg = undefined$1;
+ }
+
+ return ContinueSentinel;
+ }
+ };
+
+ // Regardless of whether this script is executing as a CommonJS module
+ // or not, return the runtime object so that we can declare the variable
+ // regeneratorRuntime in the outer scope, which allows this module to be
+ // injected easily by `bin/regenerator --include-runtime script.js`.
+ return exports;
+
+ }(
+ // If this script is executing as a CommonJS module, use module.exports
+ // as the regeneratorRuntime namespace. Otherwise create a new empty
+ // object. Either way, the resulting object will be used to initialize
+ // the regeneratorRuntime variable at the top of this file.
+ module.exports
+ ));
+
+ try {
+ regeneratorRuntime = runtime;
+ } catch (accidentalStrictMode) {
+ // This module should not be running in strict mode, so the above
+ // assignment should always work unless something is misconfigured. Just
+ // in case runtime.js accidentally runs in strict mode, we can escape
+ // strict mode using a global Function call. This could conceivably fail
+ // if a Content Security Policy forbids using Function, but in that case
+ // the proper solution is to fix the accidental strict mode problem. If
+ // you've misconfigured your bundler to force strict mode and applied a
+ // CSP to forbid Function, and you're not willing to fix either of those
+ // problems, please detail your unique predicament in a GitHub issue.
+ Function("r", "regeneratorRuntime = r")(runtime);
+ }
+ });
+
+ var regenerator = runtime_1;
+
+ function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) {
+ try {
+ var info = gen[key](arg);
+ var value = info.value;
+ } catch (error) {
+ reject(error);
+ return;
+ }
+
+ if (info.done) {
+ resolve(value);
+ } else {
+ Promise.resolve(value).then(_next, _throw);
+ }
+ }
+
+ function _asyncToGenerator(fn) {
+ return function () {
+ var self = this,
+ args = arguments;
+ return new Promise(function (resolve, reject) {
+ var gen = fn.apply(self, args);
+
+ function _next(value) {
+ asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value);
+ }
+
+ function _throw(err) {
+ asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err);
+ }
+
+ _next(undefined);
+ });
+ };
+ }
+
+ var asyncToGenerator = _asyncToGenerator;
+
+ function _classCallCheck(instance, Constructor) {
+ if (!(instance instanceof Constructor)) {
+ throw new TypeError("Cannot call a class as a function");
+ }
+ }
+
+ var classCallCheck = _classCallCheck;
+
+ function _defineProperties(target, props) {
+ for (var i = 0; i < props.length; i++) {
+ var descriptor = props[i];
+ descriptor.enumerable = descriptor.enumerable || false;
+ descriptor.configurable = true;
+ if ("value" in descriptor) descriptor.writable = true;
+ Object.defineProperty(target, descriptor.key, descriptor);
+ }
+ }
+
+ function _createClass(Constructor, protoProps, staticProps) {
+ if (protoProps) _defineProperties(Constructor.prototype, protoProps);
+ if (staticProps) _defineProperties(Constructor, staticProps);
+ return Constructor;
+ }
+
+ var createClass = _createClass;
+
+ function _defineProperty(obj, key, value) {
+ if (key in obj) {
+ Object.defineProperty(obj, key, {
+ value: value,
+ enumerable: true,
+ configurable: true,
+ writable: true
+ });
+ } else {
+ obj[key] = value;
+ }
+
+ return obj;
+ }
+
+ var defineProperty = _defineProperty;
+
+ function _objectSpread(target) {
+ for (var i = 1; i < arguments.length; i++) {
+ var source = arguments[i] != null ? arguments[i] : {};
+ var ownKeys = Object.keys(source);
+
+ if (typeof Object.getOwnPropertySymbols === 'function') {
+ ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function (sym) {
+ return Object.getOwnPropertyDescriptor(source, sym).enumerable;
+ }));
+ }
+
+ ownKeys.forEach(function (key) {
+ defineProperty(target, key, source[key]);
+ });
+ }
+
+ return target;
+ }
+
+ var objectSpread = _objectSpread;
+
+ function doRequest(_ref) {
+ var method = _ref.method,
+ path = _ref.path,
+ _ref$body = _ref.body,
+ body = _ref$body === void 0 ? null : _ref$body,
+ _ref$headers = _ref.headers,
+ headers = _ref$headers === void 0 ? {} : _ref$headers;
+ var options = {
+ method: method,
+ headers: headers
+ };
+
+ if (body !== null) {
+ options.body = JSON.stringify(body);
+ options.headers = objectSpread({
+ 'Content-Type': 'application/json'
+ }, headers);
+ }
+
+ return fetch(path, options).then(
+ /*#__PURE__*/
+ function () {
+ var _ref2 = asyncToGenerator(
+ /*#__PURE__*/
+ regenerator.mark(function _callee(response) {
+ return regenerator.wrap(function _callee$(_context) {
+ while (1) {
+ switch (_context.prev = _context.next) {
+ case 0:
+ if (response.ok) {
+ _context.next = 3;
+ break;
+ }
+
+ _context.next = 3;
+ return handleError(response);
+
+ case 3:
+ _context.prev = 3;
+ _context.next = 6;
+ return response.json();
+
+ case 6:
+ return _context.abrupt("return", _context.sent);
+
+ case 9:
+ _context.prev = 9;
+ _context.t0 = _context["catch"](3);
+ return _context.abrupt("return", null);
+
+ case 12:
+ case "end":
+ return _context.stop();
+ }
+ }
+ }, _callee, null, [[3, 9]]);
+ }));
+
+ return function (_x) {
+ return _ref2.apply(this, arguments);
+ };
+ }());
+ }
+
+ function handleError(_x2) {
+ return _handleError.apply(this, arguments);
+ }
+
+ function _handleError() {
+ _handleError = asyncToGenerator(
+ /*#__PURE__*/
+ regenerator.mark(function _callee2(response) {
+ var errorMessage, _ref3, _ref3$error, error, _ref3$description, description;
+
+ return regenerator.wrap(function _callee2$(_context2) {
+ while (1) {
+ switch (_context2.prev = _context2.next) {
+ case 0:
+ _context2.prev = 0;
+ _context2.next = 3;
+ return response.json();
+
+ case 3:
+ _ref3 = _context2.sent;
+ _ref3$error = _ref3.error;
+ error = _ref3$error === void 0 ? 'Unknown error' : _ref3$error;
+ _ref3$description = _ref3.description;
+ description = _ref3$description === void 0 ? 'No description' : _ref3$description;
+ errorMessage = "Unexpected status code ".concat(response.status, ": ").concat(error, ", ").concat(description);
+ _context2.next = 14;
+ break;
+
+ case 11:
+ _context2.prev = 11;
+ _context2.t0 = _context2["catch"](0);
+ errorMessage = "Unexpected status code ".concat(response.status, ": Cannot parse error response");
+
+ case 14:
+ throw new Error(errorMessage);
+
+ case 15:
+ case "end":
+ return _context2.stop();
+ }
+ }
+ }, _callee2, null, [[0, 11]]);
+ }));
+ return _handleError.apply(this, arguments);
+ }
+
+ var TokenProvider =
+ /*#__PURE__*/
+ function () {
+ function TokenProvider() {
+ var _ref = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},
+ url = _ref.url,
+ queryParams = _ref.queryParams,
+ headers = _ref.headers;
+
+ classCallCheck(this, TokenProvider);
+
+ this.url = url;
+ this.queryParams = queryParams;
+ this.headers = headers;
+ }
+
+ createClass(TokenProvider, [{
+ key: "fetchToken",
+ value: function () {
+ var _fetchToken = asyncToGenerator(
+ /*#__PURE__*/
+ regenerator.mark(function _callee(userId) {
+ var queryParams, encodedParams, options, response;
+ return regenerator.wrap(function _callee$(_context) {
+ while (1) {
+ switch (_context.prev = _context.next) {
+ case 0:
+ queryParams = objectSpread({
+ user_id: userId
+ }, this.queryParams);
+ encodedParams = Object.entries(queryParams).map(function (kv) {
+ return kv.map(encodeURIComponent).join('=');
+ }).join('&');
+ options = {
+ method: 'GET',
+ path: "".concat(this.url, "?").concat(encodedParams),
+ headers: this.headers
+ };
+ _context.next = 5;
+ return doRequest(options);
+
+ case 5:
+ response = _context.sent;
+ return _context.abrupt("return", response);
+
+ case 7:
+ case "end":
+ return _context.stop();
+ }
+ }
+ }, _callee, this);
+ }));
+
+ function fetchToken(_x) {
+ return _fetchToken.apply(this, arguments);
+ }
+
+ return fetchToken;
+ }()
+ }]);
+
+ return TokenProvider;
+ }();
+
+ var DeviceStateStore =
+ /*#__PURE__*/
+ function () {
+ function DeviceStateStore(instanceId) {
+ classCallCheck(this, DeviceStateStore);
+
+ this._instanceId = instanceId;
+ this._dbConn = null;
+ }
+
+ createClass(DeviceStateStore, [{
+ key: "connect",
+ value: function connect() {
+ var _this = this;
+
+ return new Promise(function (resolve, reject) {
+ var request = indexedDB.open(_this._dbName);
+
+ request.onsuccess = function (event) {
+ var db = event.target.result;
+ _this._dbConn = db;
+
+ _this._readState().then(function (state) {
+ return state === null ? _this.clear() : Promise.resolve();
+ }).then(resolve);
+ };
+
+ request.onupgradeneeded = function (event) {
+ var db = event.target.result;
+ db.createObjectStore('beams', {
+ keyPath: 'instance_id'
+ });
+ };
+
+ request.onerror = function (event) {
+ var error = new Error("Database error: ".concat(event.target.error));
+ reject(error);
+ };
+ });
+ }
+ }, {
+ key: "clear",
+ value: function clear() {
+ return this._writeState({
+ instance_id: this._instanceId,
+ device_id: null,
+ token: null,
+ user_id: null
+ });
+ }
+ }, {
+ key: "_readState",
+ value: function _readState() {
+ var _this2 = this;
+
+ if (!this.isConnected) {
+ throw new Error('Cannot read value: DeviceStateStore not connected to IndexedDB');
+ }
+
+ return new Promise(function (resolve, reject) {
+ var request = _this2._dbConn.transaction('beams').objectStore('beams').get(_this2._instanceId);
+
+ request.onsuccess = function (event) {
+ var state = event.target.result;
+
+ if (!state) {
+ resolve(null);
+ }
+
+ resolve(state);
+ };
+
+ request.onerror = function (event) {
+ reject(event.target.error);
+ };
+ });
+ }
+ }, {
+ key: "_readProperty",
+ value: function () {
+ var _readProperty2 = asyncToGenerator(
+ /*#__PURE__*/
+ regenerator.mark(function _callee(name) {
+ var state;
+ return regenerator.wrap(function _callee$(_context) {
+ while (1) {
+ switch (_context.prev = _context.next) {
+ case 0:
+ _context.next = 2;
+ return this._readState();
+
+ case 2:
+ state = _context.sent;
+
+ if (!(state === null)) {
+ _context.next = 5;
+ break;
+ }
+
+ return _context.abrupt("return", null);
+
+ case 5:
+ return _context.abrupt("return", state[name] || null);
+
+ case 6:
+ case "end":
+ return _context.stop();
+ }
+ }
+ }, _callee, this);
+ }));
+
+ function _readProperty(_x) {
+ return _readProperty2.apply(this, arguments);
+ }
+
+ return _readProperty;
+ }()
+ }, {
+ key: "_writeState",
+ value: function _writeState(state) {
+ var _this3 = this;
+
+ if (!this.isConnected) {
+ throw new Error('Cannot write value: DeviceStateStore not connected to IndexedDB');
+ }
+
+ return new Promise(function (resolve, reject) {
+ var request = _this3._dbConn.transaction('beams', 'readwrite').objectStore('beams').put(state);
+
+ request.onsuccess = function (_) {
+ resolve();
+ };
+
+ request.onerror = function (event) {
+ reject(event.target.error);
+ };
+ });
+ }
+ }, {
+ key: "_writeProperty",
+ value: function () {
+ var _writeProperty2 = asyncToGenerator(
+ /*#__PURE__*/
+ regenerator.mark(function _callee2(name, value) {
+ var state;
+ return regenerator.wrap(function _callee2$(_context2) {
+ while (1) {
+ switch (_context2.prev = _context2.next) {
+ case 0:
+ _context2.next = 2;
+ return this._readState();
+
+ case 2:
+ state = _context2.sent;
+ state[name] = value;
+ _context2.next = 6;
+ return this._writeState(state);
+
+ case 6:
+ case "end":
+ return _context2.stop();
+ }
+ }
+ }, _callee2, this);
+ }));
+
+ function _writeProperty(_x2, _x3) {
+ return _writeProperty2.apply(this, arguments);
+ }
+
+ return _writeProperty;
+ }()
+ }, {
+ key: "getToken",
+ value: function getToken() {
+ return this._readProperty('token');
+ }
+ }, {
+ key: "setToken",
+ value: function setToken(token) {
+ return this._writeProperty('token', token);
+ }
+ }, {
+ key: "getDeviceId",
+ value: function getDeviceId() {
+ return this._readProperty('device_id');
+ }
+ }, {
+ key: "setDeviceId",
+ value: function setDeviceId(deviceId) {
+ return this._writeProperty('device_id', deviceId);
+ }
+ }, {
+ key: "getUserId",
+ value: function getUserId() {
+ return this._readProperty('user_id');
+ }
+ }, {
+ key: "setUserId",
+ value: function setUserId(userId) {
+ return this._writeProperty('user_id', userId);
+ }
+ }, {
+ key: "getLastSeenSdkVersion",
+ value: function getLastSeenSdkVersion() {
+ return this._readProperty('last_seen_sdk_version');
+ }
+ }, {
+ key: "setLastSeenSdkVersion",
+ value: function setLastSeenSdkVersion(sdkVersion) {
+ return this._writeProperty('last_seen_sdk_version', sdkVersion);
+ }
+ }, {
+ key: "getLastSeenUserAgent",
+ value: function getLastSeenUserAgent() {
+ return this._readProperty('last_seen_user_agent');
+ }
+ }, {
+ key: "setLastSeenUserAgent",
+ value: function setLastSeenUserAgent(userAgent) {
+ return this._writeProperty('last_seen_user_agent', userAgent);
+ }
+ }, {
+ key: "_dbName",
+ get: function get() {
+ return "beams-".concat(this._instanceId);
+ }
+ }, {
+ key: "isConnected",
+ get: function get() {
+ return this._dbConn !== null;
+ }
+ }]);
+
+ return DeviceStateStore;
+ }();
+
+ var version = "1.0.3";
+
+ var INTERESTS_REGEX = new RegExp('^(_|\\-|=|@|,|\\.|;|[A-Z]|[a-z]|[0-9])*$');
+ var MAX_INTEREST_LENGTH = 164;
+ var MAX_INTERESTS_NUM = 5000;
+ var SERVICE_WORKER_URL = "/service-worker.js?pusherBeamsWebSDKVersion=".concat(version);
+ var RegistrationState = Object.freeze({
+ PERMISSION_PROMPT_REQUIRED: 'PERMISSION_PROMPT_REQUIRED',
+ PERMISSION_GRANTED_NOT_REGISTERED_WITH_BEAMS: 'PERMISSION_GRANTED_NOT_REGISTERED_WITH_BEAMS',
+ PERMISSION_GRANTED_REGISTERED_WITH_BEAMS: 'PERMISSION_GRANTED_REGISTERED_WITH_BEAMS',
+ PERMISSION_DENIED: 'PERMISSION_DENIED'
+ });
+ var Client =
+ /*#__PURE__*/
+ function () {
+ function Client(config) {
+ classCallCheck(this, Client);
+
+ if (!config) {
+ throw new Error('Config object required');
+ }
+
+ var instanceId = config.instanceId,
+ _config$endpointOverr = config.endpointOverride,
+ endpointOverride = _config$endpointOverr === void 0 ? null : _config$endpointOverr,
+ _config$serviceWorker = config.serviceWorkerRegistration,
+ serviceWorkerRegistration = _config$serviceWorker === void 0 ? null : _config$serviceWorker;
+
+ if (instanceId === undefined) {
+ throw new Error('Instance ID is required');
+ }
+
+ if (typeof instanceId !== 'string') {
+ throw new Error('Instance ID must be a string');
+ }
+
+ if (instanceId.length === 0) {
+ throw new Error('Instance ID cannot be empty');
+ }
+
+ if (!('indexedDB' in window)) {
+ throw new Error('Pusher Beams does not support this browser version (IndexedDB not supported)');
+ }
+
+ if (!window.isSecureContext) {
+ throw new Error('Pusher Beams relies on Service Workers, which only work in secure contexts. Check that your page is being served from localhost/over HTTPS');
+ }
+
+ if (!('serviceWorker' in navigator)) {
+ throw new Error('Pusher Beams does not support this browser version (Service Workers not supported)');
+ }
+
+ if (!('PushManager' in window)) {
+ throw new Error('Pusher Beams does not support this browser version (Web Push not supported)');
+ }
+
+ if (serviceWorkerRegistration) {
+ var serviceWorkerScope = serviceWorkerRegistration.scope;
+ var currentURL = window.location.href;
+ var scopeMatchesCurrentPage = currentURL.startsWith(serviceWorkerScope);
+
+ if (!scopeMatchesCurrentPage) {
+ throw new Error("Could not initialize Pusher web push: current page not in serviceWorkerRegistration scope (".concat(serviceWorkerScope, ")"));
+ }
+ }
+
+ this.instanceId = instanceId;
+ this._deviceId = null;
+ this._token = null;
+ this._userId = null;
+ this._serviceWorkerRegistration = serviceWorkerRegistration;
+ this._deviceStateStore = new DeviceStateStore(instanceId);
+ this._endpoint = endpointOverride; // Internal only
+
+ this._ready = this._init();
+ }
+
+ createClass(Client, [{
+ key: "_init",
+ value: function () {
+ var _init2 = asyncToGenerator(
+ /*#__PURE__*/
+ regenerator.mark(function _callee() {
+ return regenerator.wrap(function _callee$(_context) {
+ while (1) {
+ switch (_context.prev = _context.next) {
+ case 0:
+ if (!(this._deviceId !== null)) {
+ _context.next = 2;
+ break;
+ }
+
+ return _context.abrupt("return");
+
+ case 2:
+ _context.next = 4;
+ return this._deviceStateStore.connect();
+
+ case 4:
+ if (!this._serviceWorkerRegistration) {
+ _context.next = 9;
+ break;
+ }
+
+ _context.next = 7;
+ return window.navigator.serviceWorker.ready;
+
+ case 7:
+ _context.next = 12;
+ break;
+
+ case 9:
+ _context.next = 11;
+ return getServiceWorkerRegistration();
+
+ case 11:
+ this._serviceWorkerRegistration = _context.sent;
+
+ case 12:
+ _context.next = 14;
+ return this._detectSubscriptionChange();
+
+ case 14:
+ _context.next = 16;
+ return this._deviceStateStore.getDeviceId();
+
+ case 16:
+ this._deviceId = _context.sent;
+ _context.next = 19;
+ return this._deviceStateStore.getToken();
+
+ case 19:
+ this._token = _context.sent;
+ _context.next = 22;
+ return this._deviceStateStore.getUserId();
+
+ case 22:
+ this._userId = _context.sent;
+
+ case 23:
+ case "end":
+ return _context.stop();
+ }
+ }
+ }, _callee, this);
+ }));
+
+ function _init() {
+ return _init2.apply(this, arguments);
+ }
+
+ return _init;
+ }() // Ensure SDK is loaded and is consistent
+
+ }, {
+ key: "_resolveSDKState",
+ value: function () {
+ var _resolveSDKState2 = asyncToGenerator(
+ /*#__PURE__*/
+ regenerator.mark(function _callee2() {
+ return regenerator.wrap(function _callee2$(_context2) {
+ while (1) {
+ switch (_context2.prev = _context2.next) {
+ case 0:
+ _context2.next = 2;
+ return this._ready;
+
+ case 2:
+ _context2.next = 4;
+ return this._detectSubscriptionChange();
+
+ case 4:
+ case "end":
+ return _context2.stop();
+ }
+ }
+ }, _callee2, this);
+ }));
+
+ function _resolveSDKState() {
+ return _resolveSDKState2.apply(this, arguments);
+ }
+
+ return _resolveSDKState;
+ }()
+ }, {
+ key: "_detectSubscriptionChange",
+ value: function () {
+ var _detectSubscriptionChange2 = asyncToGenerator(
+ /*#__PURE__*/
+ regenerator.mark(function _callee3() {
+ var storedToken, actualToken, pushTokenHasChanged;
+ return regenerator.wrap(function _callee3$(_context3) {
+ while (1) {
+ switch (_context3.prev = _context3.next) {
+ case 0:
+ _context3.next = 2;
+ return this._deviceStateStore.getToken();
+
+ case 2:
+ storedToken = _context3.sent;
+ _context3.next = 5;
+ return getWebPushToken(this._serviceWorkerRegistration);
+
+ case 5:
+ actualToken = _context3.sent;
+ pushTokenHasChanged = storedToken !== actualToken;
+
+ if (!pushTokenHasChanged) {
+ _context3.next = 13;
+ break;
+ }
+
+ _context3.next = 10;
+ return this._deviceStateStore.clear();
+
+ case 10:
+ this._deviceId = null;
+ this._token = null;
+ this._userId = null;
+
+ case 13:
+ case "end":
+ return _context3.stop();
+ }
+ }
+ }, _callee3, this);
+ }));
+
+ function _detectSubscriptionChange() {
+ return _detectSubscriptionChange2.apply(this, arguments);
+ }
+
+ return _detectSubscriptionChange;
+ }()
+ }, {
+ key: "getDeviceId",
+ value: function () {
+ var _getDeviceId = asyncToGenerator(
+ /*#__PURE__*/
+ regenerator.mark(function _callee4() {
+ var _this = this;
+
+ return regenerator.wrap(function _callee4$(_context4) {
+ while (1) {
+ switch (_context4.prev = _context4.next) {
+ case 0:
+ _context4.next = 2;
+ return this._resolveSDKState();
+
+ case 2:
+ return _context4.abrupt("return", this._ready.then(function () {
+ return _this._deviceId;
+ }));
+
+ case 3:
+ case "end":
+ return _context4.stop();
+ }
+ }
+ }, _callee4, this);
+ }));
+
+ function getDeviceId() {
+ return _getDeviceId.apply(this, arguments);
+ }
+
+ return getDeviceId;
+ }()
+ }, {
+ key: "getToken",
+ value: function () {
+ var _getToken = asyncToGenerator(
+ /*#__PURE__*/
+ regenerator.mark(function _callee5() {
+ var _this2 = this;
+
+ return regenerator.wrap(function _callee5$(_context5) {
+ while (1) {
+ switch (_context5.prev = _context5.next) {
+ case 0:
+ _context5.next = 2;
+ return this._resolveSDKState();
+
+ case 2:
+ return _context5.abrupt("return", this._ready.then(function () {
+ return _this2._token;
+ }));
+
+ case 3:
+ case "end":
+ return _context5.stop();
+ }
+ }
+ }, _callee5, this);
+ }));
+
+ function getToken() {
+ return _getToken.apply(this, arguments);
+ }
+
+ return getToken;
+ }()
+ }, {
+ key: "getUserId",
+ value: function () {
+ var _getUserId = asyncToGenerator(
+ /*#__PURE__*/
+ regenerator.mark(function _callee6() {
+ var _this3 = this;
+
+ return regenerator.wrap(function _callee6$(_context6) {
+ while (1) {
+ switch (_context6.prev = _context6.next) {
+ case 0:
+ _context6.next = 2;
+ return this._resolveSDKState();
+
+ case 2:
+ return _context6.abrupt("return", this._ready.then(function () {
+ return _this3._userId;
+ }));
+
+ case 3:
+ case "end":
+ return _context6.stop();
+ }
+ }
+ }, _callee6, this);
+ }));
+
+ function getUserId() {
+ return _getUserId.apply(this, arguments);
+ }
+
+ return getUserId;
+ }()
+ }, {
+ key: "_throwIfNotStarted",
+ value: function _throwIfNotStarted(message) {
+ if (!this._deviceId) {
+ throw new Error("".concat(message, ". SDK not registered with Beams. Did you call .start?"));
+ }
+ }
+ }, {
+ key: "start",
+ value: function () {
+ var _start = asyncToGenerator(
+ /*#__PURE__*/
+ regenerator.mark(function _callee7() {
+ var _ref, publicKey, token, deviceId;
+
+ return regenerator.wrap(function _callee7$(_context7) {
+ while (1) {
+ switch (_context7.prev = _context7.next) {
+ case 0:
+ _context7.next = 2;
+ return this._resolveSDKState();
+
+ case 2:
+ if (isSupportedBrowser()) {
+ _context7.next = 4;
+ break;
+ }
+
+ return _context7.abrupt("return", this);
+
+ case 4:
+ if (!(this._deviceId !== null)) {
+ _context7.next = 6;
+ break;
+ }
+
+ return _context7.abrupt("return", this);
+
+ case 6:
+ _context7.next = 8;
+ return this._getPublicKey();
+
+ case 8:
+ _ref = _context7.sent;
+ publicKey = _ref.vapidPublicKey;
+ _context7.next = 12;
+ return this._getPushToken(publicKey);
+
+ case 12:
+ token = _context7.sent;
+ _context7.next = 15;
+ return this._registerDevice(token);
+
+ case 15:
+ deviceId = _context7.sent;
+ _context7.next = 18;
+ return this._deviceStateStore.setToken(token);
+
+ case 18:
+ _context7.next = 20;
+ return this._deviceStateStore.setDeviceId(deviceId);
+
+ case 20:
+ _context7.next = 22;
+ return this._deviceStateStore.setLastSeenSdkVersion(version);
+
+ case 22:
+ _context7.next = 24;
+ return this._deviceStateStore.setLastSeenUserAgent(window.navigator.userAgent);
+
+ case 24:
+ this._token = token;
+ this._deviceId = deviceId;
+ return _context7.abrupt("return", this);
+
+ case 27:
+ case "end":
+ return _context7.stop();
+ }
+ }
+ }, _callee7, this);
+ }));
+
+ function start() {
+ return _start.apply(this, arguments);
+ }
+
+ return start;
+ }()
+ }, {
+ key: "getRegistrationState",
+ value: function () {
+ var _getRegistrationState = asyncToGenerator(
+ /*#__PURE__*/
+ regenerator.mark(function _callee8() {
+ return regenerator.wrap(function _callee8$(_context8) {
+ while (1) {
+ switch (_context8.prev = _context8.next) {
+ case 0:
+ _context8.next = 2;
+ return this._resolveSDKState();
+
+ case 2:
+ if (!(Notification.permission === 'denied')) {
+ _context8.next = 4;
+ break;
+ }
+
+ return _context8.abrupt("return", RegistrationState.PERMISSION_DENIED);
+
+ case 4:
+ if (!(Notification.permission === 'granted' && this._deviceId !== null)) {
+ _context8.next = 6;
+ break;
+ }
+
+ return _context8.abrupt("return", RegistrationState.PERMISSION_GRANTED_REGISTERED_WITH_BEAMS);
+
+ case 6:
+ if (!(Notification.permission === 'granted' && this._deviceId === null)) {
+ _context8.next = 8;
+ break;
+ }
+
+ return _context8.abrupt("return", RegistrationState.PERMISSION_GRANTED_NOT_REGISTERED_WITH_BEAMS);
+
+ case 8:
+ return _context8.abrupt("return", RegistrationState.PERMISSION_PROMPT_REQUIRED);
+
+ case 9:
+ case "end":
+ return _context8.stop();
+ }
+ }
+ }, _callee8, this);
+ }));
+
+ function getRegistrationState() {
+ return _getRegistrationState.apply(this, arguments);
+ }
+
+ return getRegistrationState;
+ }()
+ }, {
+ key: "addDeviceInterest",
+ value: function () {
+ var _addDeviceInterest = asyncToGenerator(
+ /*#__PURE__*/
+ regenerator.mark(function _callee9(interest) {
+ var path, options;
+ return regenerator.wrap(function _callee9$(_context9) {
+ while (1) {
+ switch (_context9.prev = _context9.next) {
+ case 0:
+ _context9.next = 2;
+ return this._resolveSDKState();
+
+ case 2:
+ this._throwIfNotStarted('Could not add Device Interest');
+
+ validateInterestName(interest);
+ path = "".concat(this._baseURL, "/device_api/v1/instances/").concat(encodeURIComponent(this.instanceId), "/devices/web/").concat(this._deviceId, "/interests/").concat(encodeURIComponent(interest));
+ options = {
+ method: 'POST',
+ path: path
+ };
+ _context9.next = 8;
+ return doRequest(options);
+
+ case 8:
+ case "end":
+ return _context9.stop();
+ }
+ }
+ }, _callee9, this);
+ }));
+
+ function addDeviceInterest(_x) {
+ return _addDeviceInterest.apply(this, arguments);
+ }
+
+ return addDeviceInterest;
+ }()
+ }, {
+ key: "removeDeviceInterest",
+ value: function () {
+ var _removeDeviceInterest = asyncToGenerator(
+ /*#__PURE__*/
+ regenerator.mark(function _callee10(interest) {
+ var path, options;
+ return regenerator.wrap(function _callee10$(_context10) {
+ while (1) {
+ switch (_context10.prev = _context10.next) {
+ case 0:
+ _context10.next = 2;
+ return this._resolveSDKState();
+
+ case 2:
+ this._throwIfNotStarted('Could not remove Device Interest');
+
+ validateInterestName(interest);
+ path = "".concat(this._baseURL, "/device_api/v1/instances/").concat(encodeURIComponent(this.instanceId), "/devices/web/").concat(this._deviceId, "/interests/").concat(encodeURIComponent(interest));
+ options = {
+ method: 'DELETE',
+ path: path
+ };
+ _context10.next = 8;
+ return doRequest(options);
+
+ case 8:
+ case "end":
+ return _context10.stop();
+ }
+ }
+ }, _callee10, this);
+ }));
+
+ function removeDeviceInterest(_x2) {
+ return _removeDeviceInterest.apply(this, arguments);
+ }
+
+ return removeDeviceInterest;
+ }()
+ }, {
+ key: "getDeviceInterests",
+ value: function () {
+ var _getDeviceInterests = asyncToGenerator(
+ /*#__PURE__*/
+ regenerator.mark(function _callee11() {
+ var path, options;
+ return regenerator.wrap(function _callee11$(_context11) {
+ while (1) {
+ switch (_context11.prev = _context11.next) {
+ case 0:
+ _context11.next = 2;
+ return this._resolveSDKState();
+
+ case 2:
+ this._throwIfNotStarted('Could not get Device Interests');
+
+ path = "".concat(this._baseURL, "/device_api/v1/instances/").concat(encodeURIComponent(this.instanceId), "/devices/web/").concat(this._deviceId, "/interests");
+ options = {
+ method: 'GET',
+ path: path
+ };
+ _context11.next = 7;
+ return doRequest(options);
+
+ case 7:
+ _context11.t0 = _context11.sent['interests'];
+
+ if (_context11.t0) {
+ _context11.next = 10;
+ break;
+ }
+
+ _context11.t0 = [];
+
+ case 10:
+ return _context11.abrupt("return", _context11.t0);
+
+ case 11:
+ case "end":
+ return _context11.stop();
+ }
+ }
+ }, _callee11, this);
+ }));
+
+ function getDeviceInterests() {
+ return _getDeviceInterests.apply(this, arguments);
+ }
+
+ return getDeviceInterests;
+ }()
+ }, {
+ key: "setDeviceInterests",
+ value: function () {
+ var _setDeviceInterests = asyncToGenerator(
+ /*#__PURE__*/
+ regenerator.mark(function _callee12(interests) {
+ var _iteratorNormalCompletion, _didIteratorError, _iteratorError, _iterator, _step, interest, uniqueInterests, path, options;
+
+ return regenerator.wrap(function _callee12$(_context12) {
+ while (1) {
+ switch (_context12.prev = _context12.next) {
+ case 0:
+ _context12.next = 2;
+ return this._resolveSDKState();
+
+ case 2:
+ this._throwIfNotStarted('Could not set Device Interests');
+
+ if (!(interests === undefined || interests === null)) {
+ _context12.next = 5;
+ break;
+ }
+
+ throw new Error('interests argument is required');
+
+ case 5:
+ if (Array.isArray(interests)) {
+ _context12.next = 7;
+ break;
+ }
+
+ throw new Error('interests argument must be an array');
+
+ case 7:
+ if (!(interests.length > MAX_INTERESTS_NUM)) {
+ _context12.next = 9;
+ break;
+ }
+
+ throw new Error("Number of interests (".concat(interests.length, ") exceeds maximum of ").concat(MAX_INTERESTS_NUM));
+
+ case 9:
+ _iteratorNormalCompletion = true;
+ _didIteratorError = false;
+ _iteratorError = undefined;
+ _context12.prev = 12;
+
+ for (_iterator = interests[Symbol.iterator](); !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {
+ interest = _step.value;
+ validateInterestName(interest);
+ }
+
+ _context12.next = 20;
+ break;
+
+ case 16:
+ _context12.prev = 16;
+ _context12.t0 = _context12["catch"](12);
+ _didIteratorError = true;
+ _iteratorError = _context12.t0;
+
+ case 20:
+ _context12.prev = 20;
+ _context12.prev = 21;
+
+ if (!_iteratorNormalCompletion && _iterator["return"] != null) {
+ _iterator["return"]();
+ }
+
+ case 23:
+ _context12.prev = 23;
+
+ if (!_didIteratorError) {
+ _context12.next = 26;
+ break;
+ }
+
+ throw _iteratorError;
+
+ case 26:
+ return _context12.finish(23);
+
+ case 27:
+ return _context12.finish(20);
+
+ case 28:
+ uniqueInterests = Array.from(new Set(interests));
+ path = "".concat(this._baseURL, "/device_api/v1/instances/").concat(encodeURIComponent(this.instanceId), "/devices/web/").concat(this._deviceId, "/interests");
+ options = {
+ method: 'PUT',
+ path: path,
+ body: {
+ interests: uniqueInterests
+ }
+ };
+ _context12.next = 33;
+ return doRequest(options);
+
+ case 33:
+ case "end":
+ return _context12.stop();
+ }
+ }
+ }, _callee12, this, [[12, 16, 20, 28], [21,, 23, 27]]);
+ }));
+
+ function setDeviceInterests(_x3) {
+ return _setDeviceInterests.apply(this, arguments);
+ }
+
+ return setDeviceInterests;
+ }()
+ }, {
+ key: "clearDeviceInterests",
+ value: function () {
+ var _clearDeviceInterests = asyncToGenerator(
+ /*#__PURE__*/
+ regenerator.mark(function _callee13() {
+ return regenerator.wrap(function _callee13$(_context13) {
+ while (1) {
+ switch (_context13.prev = _context13.next) {
+ case 0:
+ _context13.next = 2;
+ return this._resolveSDKState();
+
+ case 2:
+ this._throwIfNotStarted('Could not clear Device Interests');
+
+ _context13.next = 5;
+ return this.setDeviceInterests([]);
+
+ case 5:
+ case "end":
+ return _context13.stop();
+ }
+ }
+ }, _callee13, this);
+ }));
+
+ function clearDeviceInterests() {
+ return _clearDeviceInterests.apply(this, arguments);
+ }
+
+ return clearDeviceInterests;
+ }()
+ }, {
+ key: "setUserId",
+ value: function () {
+ var _setUserId = asyncToGenerator(
+ /*#__PURE__*/
+ regenerator.mark(function _callee14(userId, tokenProvider) {
+ var error, path, _ref2, beamsAuthToken, options;
+
+ return regenerator.wrap(function _callee14$(_context14) {
+ while (1) {
+ switch (_context14.prev = _context14.next) {
+ case 0:
+ _context14.next = 2;
+ return this._resolveSDKState();
+
+ case 2:
+ if (isSupportedBrowser()) {
+ _context14.next = 4;
+ break;
+ }
+
+ return _context14.abrupt("return");
+
+ case 4:
+ if (!(this._deviceId === null)) {
+ _context14.next = 7;
+ break;
+ }
+
+ error = new Error('.start must be called before .setUserId');
+ return _context14.abrupt("return", Promise.reject(error));
+
+ case 7:
+ if (!(typeof userId !== 'string')) {
+ _context14.next = 9;
+ break;
+ }
+
+ throw new Error("User ID must be a string (was ".concat(userId, ")"));
+
+ case 9:
+ if (!(userId === '')) {
+ _context14.next = 11;
+ break;
+ }
+
+ throw new Error('User ID cannot be the empty string');
+
+ case 11:
+ if (!(this._userId !== null && this._userId !== userId)) {
+ _context14.next = 13;
+ break;
+ }
+
+ throw new Error('Changing the `userId` is not allowed.');
+
+ case 13:
+ path = "".concat(this._baseURL, "/device_api/v1/instances/").concat(encodeURIComponent(this.instanceId), "/devices/web/").concat(this._deviceId, "/user");
+ _context14.next = 16;
+ return tokenProvider.fetchToken(userId);
+
+ case 16:
+ _ref2 = _context14.sent;
+ beamsAuthToken = _ref2.token;
+ options = {
+ method: 'PUT',
+ path: path,
+ headers: {
+ Authorization: "Bearer ".concat(beamsAuthToken)
+ }
+ };
+ _context14.next = 21;
+ return doRequest(options);
+
+ case 21:
+ this._userId = userId;
+ return _context14.abrupt("return", this._deviceStateStore.setUserId(userId));
+
+ case 23:
+ case "end":
+ return _context14.stop();
+ }
+ }
+ }, _callee14, this);
+ }));
+
+ function setUserId(_x4, _x5) {
+ return _setUserId.apply(this, arguments);
+ }
+
+ return setUserId;
+ }()
+ }, {
+ key: "stop",
+ value: function () {
+ var _stop = asyncToGenerator(
+ /*#__PURE__*/
+ regenerator.mark(function _callee15() {
+ return regenerator.wrap(function _callee15$(_context15) {
+ while (1) {
+ switch (_context15.prev = _context15.next) {
+ case 0:
+ _context15.next = 2;
+ return this._resolveSDKState();
+
+ case 2:
+ if (isSupportedBrowser()) {
+ _context15.next = 4;
+ break;
+ }
+
+ return _context15.abrupt("return");
+
+ case 4:
+ if (!(this._deviceId === null)) {
+ _context15.next = 6;
+ break;
+ }
+
+ return _context15.abrupt("return");
+
+ case 6:
+ _context15.next = 8;
+ return this._deleteDevice();
+
+ case 8:
+ _context15.next = 10;
+ return this._deviceStateStore.clear();
+
+ case 10:
+ this._clearPushToken()["catch"](function () {}); // Not awaiting this, best effort.
+
+
+ this._deviceId = null;
+ this._token = null;
+ this._userId = null;
+
+ case 14:
+ case "end":
+ return _context15.stop();
+ }
+ }
+ }, _callee15, this);
+ }));
+
+ function stop() {
+ return _stop.apply(this, arguments);
+ }
+
+ return stop;
+ }()
+ }, {
+ key: "clearAllState",
+ value: function () {
+ var _clearAllState = asyncToGenerator(
+ /*#__PURE__*/
+ regenerator.mark(function _callee16() {
+ return regenerator.wrap(function _callee16$(_context16) {
+ while (1) {
+ switch (_context16.prev = _context16.next) {
+ case 0:
+ if (isSupportedBrowser()) {
+ _context16.next = 2;
+ break;
+ }
+
+ return _context16.abrupt("return");
+
+ case 2:
+ _context16.next = 4;
+ return this.stop();
+
+ case 4:
+ _context16.next = 6;
+ return this.start();
+
+ case 6:
+ case "end":
+ return _context16.stop();
+ }
+ }
+ }, _callee16, this);
+ }));
+
+ function clearAllState() {
+ return _clearAllState.apply(this, arguments);
+ }
+
+ return clearAllState;
+ }()
+ }, {
+ key: "_getPublicKey",
+ value: function () {
+ var _getPublicKey2 = asyncToGenerator(
+ /*#__PURE__*/
+ regenerator.mark(function _callee17() {
+ var path, options;
+ return regenerator.wrap(function _callee17$(_context17) {
+ while (1) {
+ switch (_context17.prev = _context17.next) {
+ case 0:
+ path = "".concat(this._baseURL, "/device_api/v1/instances/").concat(encodeURIComponent(this.instanceId), "/web-vapid-public-key");
+ options = {
+ method: 'GET',
+ path: path
+ };
+ return _context17.abrupt("return", doRequest(options));
+
+ case 3:
+ case "end":
+ return _context17.stop();
+ }
+ }
+ }, _callee17, this);
+ }));
+
+ function _getPublicKey() {
+ return _getPublicKey2.apply(this, arguments);
+ }
+
+ return _getPublicKey;
+ }()
+ }, {
+ key: "_getPushToken",
+ value: function () {
+ var _getPushToken2 = asyncToGenerator(
+ /*#__PURE__*/
+ regenerator.mark(function _callee18(publicKey) {
+ var sub;
+ return regenerator.wrap(function _callee18$(_context18) {
+ while (1) {
+ switch (_context18.prev = _context18.next) {
+ case 0:
+ _context18.prev = 0;
+ _context18.next = 3;
+ return this._clearPushToken();
+
+ case 3:
+ _context18.next = 5;
+ return this._serviceWorkerRegistration.pushManager.subscribe({
+ userVisibleOnly: true,
+ applicationServerKey: urlBase64ToUInt8Array(publicKey)
+ });
+
+ case 5:
+ sub = _context18.sent;
+ return _context18.abrupt("return", btoa(JSON.stringify(sub)));
+
+ case 9:
+ _context18.prev = 9;
+ _context18.t0 = _context18["catch"](0);
+ return _context18.abrupt("return", Promise.reject(_context18.t0));
+
+ case 12:
+ case "end":
+ return _context18.stop();
+ }
+ }
+ }, _callee18, this, [[0, 9]]);
+ }));
+
+ function _getPushToken(_x6) {
+ return _getPushToken2.apply(this, arguments);
+ }
+
+ return _getPushToken;
+ }()
+ }, {
+ key: "_clearPushToken",
+ value: function () {
+ var _clearPushToken2 = asyncToGenerator(
+ /*#__PURE__*/
+ regenerator.mark(function _callee19() {
+ return regenerator.wrap(function _callee19$(_context19) {
+ while (1) {
+ switch (_context19.prev = _context19.next) {
+ case 0:
+ return _context19.abrupt("return", navigator.serviceWorker.ready.then(function (reg) {
+ return reg.pushManager.getSubscription();
+ }).then(function (sub) {
+ if (sub) sub.unsubscribe();
+ }));
+
+ case 1:
+ case "end":
+ return _context19.stop();
+ }
+ }
+ }, _callee19);
+ }));
+
+ function _clearPushToken() {
+ return _clearPushToken2.apply(this, arguments);
+ }
+
+ return _clearPushToken;
+ }()
+ }, {
+ key: "_registerDevice",
+ value: function () {
+ var _registerDevice2 = asyncToGenerator(
+ /*#__PURE__*/
+ regenerator.mark(function _callee20(token) {
+ var path, device, options, response;
+ return regenerator.wrap(function _callee20$(_context20) {
+ while (1) {
+ switch (_context20.prev = _context20.next) {
+ case 0:
+ path = "".concat(this._baseURL, "/device_api/v1/instances/").concat(encodeURIComponent(this.instanceId), "/devices/web");
+ device = {
+ token: token,
+ metadata: {
+ sdkVersion: version
+ }
+ };
+ options = {
+ method: 'POST',
+ path: path,
+ body: device
+ };
+ _context20.next = 5;
+ return doRequest(options);
+
+ case 5:
+ response = _context20.sent;
+ return _context20.abrupt("return", response.id);
+
+ case 7:
+ case "end":
+ return _context20.stop();
+ }
+ }
+ }, _callee20, this);
+ }));
+
+ function _registerDevice(_x7) {
+ return _registerDevice2.apply(this, arguments);
+ }
+
+ return _registerDevice;
+ }()
+ }, {
+ key: "_deleteDevice",
+ value: function () {
+ var _deleteDevice2 = asyncToGenerator(
+ /*#__PURE__*/
+ regenerator.mark(function _callee21() {
+ var path, options;
+ return regenerator.wrap(function _callee21$(_context21) {
+ while (1) {
+ switch (_context21.prev = _context21.next) {
+ case 0:
+ path = "".concat(this._baseURL, "/device_api/v1/instances/").concat(encodeURIComponent(this.instanceId), "/devices/web/").concat(encodeURIComponent(this._deviceId));
+ options = {
+ method: 'DELETE',
+ path: path
+ };
+ _context21.next = 4;
+ return doRequest(options);
+
+ case 4:
+ case "end":
+ return _context21.stop();
+ }
+ }
+ }, _callee21, this);
+ }));
+
+ function _deleteDevice() {
+ return _deleteDevice2.apply(this, arguments);
+ }
+
+ return _deleteDevice;
+ }()
+ /**
+ * Submit SDK version and browser details (via the user agent) to Pusher Beams.
+ */
+
+ }, {
+ key: "_updateDeviceMetadata",
+ value: function () {
+ var _updateDeviceMetadata2 = asyncToGenerator(
+ /*#__PURE__*/
+ regenerator.mark(function _callee22() {
+ var userAgent, storedUserAgent, storedSdkVersion, path, metadata, options;
+ return regenerator.wrap(function _callee22$(_context22) {
+ while (1) {
+ switch (_context22.prev = _context22.next) {
+ case 0:
+ userAgent = window.navigator.userAgent;
+ _context22.next = 3;
+ return this._deviceStateStore.getLastSeenUserAgent();
+
+ case 3:
+ storedUserAgent = _context22.sent;
+ _context22.next = 6;
+ return this._deviceStateStore.getLastSeenSdkVersion();
+
+ case 6:
+ storedSdkVersion = _context22.sent;
+
+ if (!(userAgent === storedUserAgent && version === storedSdkVersion)) {
+ _context22.next = 9;
+ break;
+ }
+
+ return _context22.abrupt("return");
+
+ case 9:
+ path = "".concat(this._baseURL, "/device_api/v1/instances/").concat(encodeURIComponent(this.instanceId), "/devices/web/").concat(this._deviceId, "/metadata");
+ metadata = {
+ sdkVersion: version
+ };
+ options = {
+ method: 'PUT',
+ path: path,
+ body: metadata
+ };
+ _context22.next = 14;
+ return doRequest(options);
+
+ case 14:
+ _context22.next = 16;
+ return this._deviceStateStore.setLastSeenSdkVersion(version);
+
+ case 16:
+ _context22.next = 18;
+ return this._deviceStateStore.setLastSeenUserAgent(userAgent);
+
+ case 18:
+ case "end":
+ return _context22.stop();
+ }
+ }
+ }, _callee22, this);
+ }));
+
+ function _updateDeviceMetadata() {
+ return _updateDeviceMetadata2.apply(this, arguments);
+ }
+
+ return _updateDeviceMetadata;
+ }()
+ }, {
+ key: "_baseURL",
+ get: function get() {
+ if (this._endpoint !== null) {
+ return this._endpoint;
+ }
+
+ return "https://".concat(this.instanceId, ".pushnotifications.pusher.com");
+ }
+ }]);
+
+ return Client;
+ }();
+
+ var validateInterestName = function validateInterestName(interest) {
+ if (interest === undefined || interest === null) {
+ throw new Error('Interest name is required');
+ }
+
+ if (typeof interest !== 'string') {
+ throw new Error("Interest ".concat(interest, " is not a string"));
+ }
+
+ if (!INTERESTS_REGEX.test(interest)) {
+ throw new Error("interest \"".concat(interest, "\" contains a forbidden character. ") + 'Allowed characters are: ASCII upper/lower-case letters, ' + 'numbers or one of _-=@,.;');
+ }
+
+ if (interest.length > MAX_INTEREST_LENGTH) {
+ throw new Error("Interest is longer than the maximum of ".concat(MAX_INTEREST_LENGTH, " chars"));
+ }
+ };
+
+ function getServiceWorkerRegistration() {
+ return _getServiceWorkerRegistration.apply(this, arguments);
+ }
+
+ function _getServiceWorkerRegistration() {
+ _getServiceWorkerRegistration = asyncToGenerator(
+ /*#__PURE__*/
+ regenerator.mark(function _callee23() {
+ var _ref3, swStatusCode;
+
+ return regenerator.wrap(function _callee23$(_context23) {
+ while (1) {
+ switch (_context23.prev = _context23.next) {
+ case 0:
+ _context23.next = 2;
+ return fetch(SERVICE_WORKER_URL);
+
+ case 2:
+ _ref3 = _context23.sent;
+ swStatusCode = _ref3.status;
+
+ if (!(swStatusCode !== 200)) {
+ _context23.next = 6;
+ break;
+ }
+
+ throw new Error('Cannot start SDK, service worker missing: No file found at /service-worker.js');
+
+ case 6:
+ window.navigator.serviceWorker.register(SERVICE_WORKER_URL, {
+ // explicitly opting out of `importScripts` caching just in case our
+ // customers decides to host and serve the imported scripts and
+ // accidentally set `Cache-Control` to something other than `max-age=0`
+ updateViaCache: 'none'
+ });
+ return _context23.abrupt("return", window.navigator.serviceWorker.ready);
+
+ case 8:
+ case "end":
+ return _context23.stop();
+ }
+ }
+ }, _callee23);
+ }));
+ return _getServiceWorkerRegistration.apply(this, arguments);
+ }
+
+ function getWebPushToken(swReg) {
+ return swReg.pushManager.getSubscription().then(function (sub) {
+ return !sub ? null : encodeSubscription(sub);
+ });
+ }
+
+ function encodeSubscription(sub) {
+ return btoa(JSON.stringify(sub));
+ }
+
+ function urlBase64ToUInt8Array(base64String) {
+ var padding = '='.repeat((4 - base64String.length % 4) % 4);
+ var base64 = (base64String + padding).replace(/-/g, '+').replace(/_/g, '/');
+ var rawData = window.atob(base64);
+ return Uint8Array.from(toConsumableArray(rawData).map(function (_char) {
+ return _char.charCodeAt(0);
+ }));
+ }
+
+ function isSupportedBrowser() {
+ var winNav = window.navigator;
+ var vendorName = winNav.vendor;
+ var isChromium = window.chrome !== null && typeof window.chrome !== 'undefined';
+ var isOpera = winNav.userAgent.indexOf('OPR') > -1;
+ var isEdge = winNav.userAgent.indexOf('Edg') > -1;
+ var isFirefox = winNav.userAgent.indexOf('Firefox') > -1;
+ var isChrome = isChromium && vendorName === 'Google Inc.' && !isEdge && !isOpera;
+ var isSupported = isChrome || isOpera || isFirefox || isEdge;
+
+ if (!isSupported) {
+ console.warn('Pusher Web Push Notifications supports Chrome, Firefox, Edge and Opera.');
+ }
+
+ return isSupported;
+ }
+
+ exports.Client = Client;
+ exports.RegistrationState = RegistrationState;
+ exports.TokenProvider = TokenProvider;
+
+ return exports;
+
+ }({}));
+
+
+const beamsClient = new PusherPushNotifications.Client({instanceId: '02ddcc80-b8db-42be-9022-44c546b4dce6'});
+const strid = document.getElementById('strid').innerHTML;
+
+beamsClient.start()
+.then((beamsClient) => beamsClient.getDeviceId())
+.then(() => beamsClient.addDeviceInterest(`${strid}`))
+.then(() => beamsClient.getDeviceInterests())
+.catch(console.error);
\ No newline at end of file
diff --git a/files/assets/CHRISTMAS/js/report_post_modal.js b/files/assets/CHRISTMAS/js/report_post_modal.js
new file mode 100644
index 000000000..e8a65c7f6
--- /dev/null
+++ b/files/assets/CHRISTMAS/js/report_post_modal.js
@@ -0,0 +1,27 @@
+function report_postModal(id) {
+
+ submitbutton=document.getElementById("reportPostButton");
+
+ submitbutton.onclick = function() {
+
+ this.innerHTML='Reporting post';
+ this.disabled = true;
+
+ var xhr = new XMLHttpRequest();
+ xhr.open("POST", '/report/post/'+id, true);
+ var form = new FormData()
+ form.append("formkey", formkey());
+ form.append("reason", document.getElementById("reason").value);
+
+ xhr.withCredentials=true;
+
+ xhr.onload=function() {
+ document.getElementById("reportPostFormBefore").classList.add('hidden');
+ document.getElementById("reportPostFormAfter").classList.remove('hidden');
+ };
+
+ xhr.onerror=function(){alert(errortext)};
+ xhr.send(form);
+
+ }
+};
\ No newline at end of file
diff --git a/files/assets/CHRISTMAS/js/service-worker.js b/files/assets/CHRISTMAS/js/service-worker.js
new file mode 100644
index 000000000..f2918a743
--- /dev/null
+++ b/files/assets/CHRISTMAS/js/service-worker.js
@@ -0,0 +1 @@
+importScripts("https://js.pusher.com/beams/service-worker.js");
\ No newline at end of file
diff --git a/files/assets/CHRISTMAS/js/settings_blocks.js b/files/assets/CHRISTMAS/js/settings_blocks.js
new file mode 100644
index 000000000..162b454c0
--- /dev/null
+++ b/files/assets/CHRISTMAS/js/settings_blocks.js
@@ -0,0 +1,31 @@
+function block_user() {
+
+ var usernameField = document.getElementById("exile-username");
+
+ var isValidUsername = usernameField.checkValidity();
+
+ username = usernameField.value;
+
+ if (isValidUsername) {
+
+ var xhr = new XMLHttpRequest();
+ xhr.open("post", "/settings/block");
+ xhr.withCredentials=true;
+ f=new FormData();
+ f.append("username", username);
+ f.append("formkey", formkey());
+ xhr.onload=function(){
+ if (xhr.status<300) {
+ location.reload(true);
+ }
+ else {
+ var myToast = new bootstrap.Toast(document.getElementById('toast-post-success'));
+ myToast.hide();
+ var myToast = new bootstrap.Toast(document.getElementById('toast-post-error'));
+ myToast.show();
+ document.getElementById("toast-error-message").textContent = "Error. Please try again later.";
+ }
+ }
+ xhr.send(f)
+ }
+}
\ No newline at end of file
diff --git a/files/assets/CHRISTMAS/js/settings_profile.js b/files/assets/CHRISTMAS/js/settings_profile.js
new file mode 100644
index 000000000..1df7ed7f5
--- /dev/null
+++ b/files/assets/CHRISTMAS/js/settings_profile.js
@@ -0,0 +1,87 @@
+function post(url) {
+ var xhr = new XMLHttpRequest();
+ xhr.open("POST", url, true);
+ var form = new FormData()
+ form.append("formkey", formkey());
+ xhr.withCredentials=true;
+ xhr.onload = function() {location.reload(true);};
+ xhr.send(form);
+};
+
+function updatebgselection(){
+ var bgselector = document.getElementById("backgroundSelector");
+ const backgrounds = [
+ {
+ folder: "fantasy",
+ backgrounds:
+ [
+ "1.webp",
+ "2.webp",
+ "3.webp",
+ "4.webp",
+ "5.webp",
+ "6.webp",
+ ]
+ },
+ {
+ folder: "solarpunk",
+ backgrounds:
+ [
+ "1.webp",
+ "2.webp",
+ "3.webp",
+ "4.webp",
+ "5.webp",
+ "6.webp",
+ "7.webp",
+ "8.webp",
+ "9.webp",
+ "10.webp",
+ "11.webp",
+ "12.webp",
+ "13.webp",
+ "14.webp",
+ "15.webp",
+ "16.webp",
+ "17.webp",
+ "18.webp",
+ "19.webp",
+ ]
+ },
+ {
+ folder: "pixelart",
+ backgrounds:
+ [
+ "1.webp",
+ "2.webp",
+ "3.webp",
+ "4.webp",
+ "5.webp",
+ ]
+ }
+ ]
+ let bgContainer = document.getElementById(`bgcontainer`);
+ let str = '';
+ let bgsToDisplay = backgrounds[bgselector.selectedIndex].backgrounds;
+ let bgsDir = backgrounds[bgselector.selectedIndex].folder;
+ for (i=0; i < bgsToDisplay.length; i++) {
+ let onclickPost = bgsDir + "/" + bgsToDisplay[i];
+ str += ` `;
+ }
+ bgContainer.innerHTML = str;
+ }
+ updatebgselection();
+
+document.onpaste = function(event) {
+ var focused = document.activeElement;
+ if (focused.id == 'bio-text') {
+ f=document.getElementById('file-upload');
+ files = event.clipboardData.files
+ filename = files[0].name.toLowerCase()
+ if (filename.endsWith(".jpg") || filename.endsWith(".jpeg") || filename.endsWith(".png") || filename.endsWith(".webp") || filename.endsWith(".gif"))
+ {
+ f.files = files;
+ document.getElementById('filename-show').textContent = filename;
+ }
+ }
+}
\ No newline at end of file
diff --git a/files/assets/CHRISTMAS/js/settings_security.js b/files/assets/CHRISTMAS/js/settings_security.js
new file mode 100644
index 000000000..e58bef2a0
--- /dev/null
+++ b/files/assets/CHRISTMAS/js/settings_security.js
@@ -0,0 +1,10 @@
+document.getElementById('new_email').addEventListener('input', function () {
+ document.getElementById("email-password").classList.remove("d-none");
+ document.getElementById("email-password-label").classList.remove("d-none");
+ document.getElementById("emailpasswordRequired").classList.remove("d-none");
+});
+const twoStepModal = new bootstrap.Modal(document.getElementById('2faModal'))
+
+function emailVerifyText() {
+ document.getElementById("email-verify-text").innerHTML = "Verification email sent! Please check your inbox.";
+}
\ No newline at end of file
diff --git a/files/assets/CHRISTMAS/js/signup.js b/files/assets/CHRISTMAS/js/signup.js
new file mode 100644
index 000000000..650db7640
--- /dev/null
+++ b/files/assets/CHRISTMAS/js/signup.js
@@ -0,0 +1,45 @@
+document.addEventListener("DOMContentLoaded", function () {
+
+ document.getElementById('password-register').addEventListener('input', function () {
+
+ var charCount = document.getElementById("password-register").value;
+ var id = document.getElementById("passwordHelpRegister");
+ var successID = document.getElementById("passwordHelpSuccess");
+
+ if (charCount.length >= 8) {
+ id.classList.add("hidden");
+ successID.classList.remove("hidden");
+ } else {
+ id.classList.remove("hidden");
+ successID.classList.add("hidden");
+ }
+ });
+
+ document.getElementById('username-register').addEventListener('input', function () {
+
+ const userName = document.getElementById("username-register").value;
+ const id = document.getElementById("usernameHelpRegister");
+
+ if (/[^a-zA-Z0-9_\-$]/.test(userName)) {
+ id.innerHTML = 'No special characters or spaces allowed. ';
+ } else {
+ id.innerHTML = 'Username is a-okay! ';
+
+ if (userName.length < 3) {
+ id.innerHTML = 'Username must be at least 3 characters long. ';
+ } else if (userName.length > 25) {
+ id.innerHTML = 'Username must be 25 characters or less. ';
+ }
+ else {
+ fetch('/is_available/' + userName)
+ .then(res => res.json())
+ .then(json => {
+ if (!json[userName]) {
+ id.innerHTML = 'Username already taken :( ';
+ }
+ })
+ }
+ }
+ });
+
+});
\ No newline at end of file
diff --git a/files/assets/CHRISTMAS/js/submission.js b/files/assets/CHRISTMAS/js/submission.js
new file mode 100644
index 000000000..b3b31cce7
--- /dev/null
+++ b/files/assets/CHRISTMAS/js/submission.js
@@ -0,0 +1,11 @@
+function togglePostEdit(id){
+ body=document.getElementById("post-body");
+ title=document.getElementById("post-title");
+ form=document.getElementById("edit-post-body-"+id);
+ box=document.getElementById("post-edit-box-"+id);
+
+ body.classList.toggle("hidden");
+ title.classList.toggle("hidden");
+ form.classList.toggle("hidden");
+ autoExpand(box);
+};
diff --git a/files/assets/CHRISTMAS/js/submission_listing.js b/files/assets/CHRISTMAS/js/submission_listing.js
new file mode 100644
index 000000000..46c0682c1
--- /dev/null
+++ b/files/assets/CHRISTMAS/js/submission_listing.js
@@ -0,0 +1,16 @@
+function timestamp(str, ti) {
+ date = new Date(ti*1000);
+ document.getElementById(str).setAttribute("data-bs-original-title", date.toString());
+};
+
+function expandText(id) {
+ const el = document.getElementById('post-text-'+id);
+ ['gradient-mask', 'max-h-12', 'overflow-hidden', 'pointer-events-none', 'text-gray-600'].map(v=> el.classList.toggle(v));
+ ['text-black'].map(v=> el.classList.toggle(v));
+
+ const trigger = document.getElementsByClassName('text-expand-icon-'+id);
+ for (let i = 0; i < trigger.length; i++) {
+ trigger[i].classList.toggle('fa-expand-alt');
+ trigger[i].classList.toggle('fa-compress-alt');
+ }
+};
\ No newline at end of file
diff --git a/files/assets/CHRISTMAS/js/submit.js b/files/assets/CHRISTMAS/js/submit.js
new file mode 100644
index 000000000..99c82c93a
--- /dev/null
+++ b/files/assets/CHRISTMAS/js/submit.js
@@ -0,0 +1,106 @@
+function hide_image() {
+ x=document.getElementById('image-upload-block');
+ url=document.getElementById('post-URL').value;
+ if (url.length>=1){
+ x.classList.add('hidden');
+ }
+ else {
+ x.classList.remove('hidden');
+ }
+}
+
+function autoSuggestTitle() {
+
+ var urlField = document.getElementById("post-URL");
+
+ var titleField = document.getElementById("post-title");
+
+ var isValidURL = urlField.checkValidity();
+
+ if (isValidURL && urlField.value.length > 0 && titleField.value === "") {
+
+ var x = new XMLHttpRequest();
+ x.withCredentials=true;
+ x.onreadystatechange = function() {
+ if (x.readyState == 4 && x.status == 200) {
+
+ title=JSON.parse(x.responseText)["title"];
+ titleField.value=title;
+
+ checkForRequired()
+ }
+ }
+ x.open('get','/submit/title?url=' + urlField.value);
+ x.send(null);
+
+ };
+
+};
+
+function checkForRequired() {
+
+ var title = document.getElementById("post-title");
+
+ var url = document.getElementById("post-URL");
+
+ var text = document.getElementById("post-text");
+
+ var button = document.getElementById("create_button");
+
+ var image = document.getElementById("file-upload");
+
+ if (url.value.length > 0 || image.value.length > 0) {
+ text.required = false;
+ url.required=false;
+ } else if (text.value.length > 0 || image.value.length > 0) {
+ url.required = false;
+ } else {
+ text.required = true;
+ url.required = true;
+ }
+
+ var isValidTitle = title.checkValidity();
+
+ var isValidURL = url.checkValidity();
+
+ var isValidText = text.checkValidity();
+
+ if (isValidTitle && (isValidURL || image.value.length>0)) {
+ button.disabled = false;
+ } else if (isValidTitle && isValidText) {
+ button.disabled = false;
+ } else {
+ button.disabled = true;
+ }
+}
+
+document.onpaste = function(event) {
+ f=document.getElementById('file-upload');
+ files = event.clipboardData.files
+ filename = files[0].name.toLowerCase()
+ if (filename.endsWith(".jpg") || filename.endsWith(".jpeg") || filename.endsWith(".png") || filename.endsWith(".webp") || filename.endsWith(".gif"))
+ {
+ f.files = files;
+ document.getElementById('filename-show').textContent = filename;
+ document.getElementById('urlblock').classList.add('hidden');
+ var fileReader = new FileReader();
+ fileReader.readAsDataURL(f.files[0]);
+ fileReader.addEventListener("load", function () {document.getElementById('image-preview').setAttribute('src', this.result);});
+ document.getElementById('file-upload').setAttribute('required', 'false');
+ checkForRequired();
+ }
+}
+
+document.getElementById('file-upload').addEventListener('change', function(){
+ f=document.getElementById('file-upload');
+ document.getElementById('urlblock').classList.add('hidden');
+ document.getElementById('filename-show').textContent = document.getElementById('file-upload').files[0].name;
+ filename = f.files[0].name.toLowerCase()
+ if (filename.endsWith(".jpg") || filename.endsWith(".jpeg") || filename.endsWith(".png") || filename.endsWith(".webp") || filename.endsWith(".webp"))
+ {
+ var fileReader = new FileReader();
+ fileReader.readAsDataURL(f.files[0]);
+ fileReader.addEventListener("load", function () {document.getElementById('image-preview').setAttribute('src', this.result);});
+ checkForRequired();
+ }
+})
\ No newline at end of file
diff --git a/files/assets/CHRISTMAS/js/togglePostEdit.js b/files/assets/CHRISTMAS/js/togglePostEdit.js
new file mode 100644
index 000000000..fa10bdaf4
--- /dev/null
+++ b/files/assets/CHRISTMAS/js/togglePostEdit.js
@@ -0,0 +1,11 @@
+function togglePostEdit(id){
+ body=document.getElementById("post-body");
+ title=document.getElementById("post-title");
+ form=document.getElementById("edit-post-body-"+id);
+ box=document.getElementById("post-edit-box-"+id);
+
+ body.classList.toggle("d-none");
+ title.classList.toggle("d-none");
+ form.classList.toggle("d-none");
+ autoExpand(box);
+};
\ No newline at end of file
diff --git a/files/assets/CHRISTMAS/js/twitter.js b/files/assets/CHRISTMAS/js/twitter.js
new file mode 100644
index 000000000..05ae79509
--- /dev/null
+++ b/files/assets/CHRISTMAS/js/twitter.js
@@ -0,0 +1,8 @@
+Function&&Function.prototype&&Function.prototype.bind&&(/(MSIE ([6789]|10|11))|Trident/.test(navigator.userAgent)||(window.__twttr&&window.__twttr.widgets&&window.__twttr.widgets.loaded&&window.twttr.widgets.load&&window.twttr.widgets.load(),window.__twttr&&window.__twttr.widgets&&window.__twttr.widgets.init||function(t){function e(e){for(var n,i,o=e[0],s=e[1],a=0,c=[];a-1},forIn:i,isObject:s,isEmptyObject:a,toType:o,isType:function(t,e){return t==o(e)},toRealArray:u}},function(t,e){t.exports=window},function(t,e,n){var r=n(6);t.exports=function(){var t=this;this.promise=new r(function(e,n){t.resolve=e,t.reject=n})}},function(t,e,n){var r=n(11),i=/(?:^|(?:https?:)?\/\/(?:www\.)?twitter\.com(?::\d+)?(?:\/intent\/(?:follow|user)\/?\?screen_name=|(?:\/#!)?\/))@?([\w]+)(?:\?|&|$)/i,o=/(?:^|(?:https?:)?\/\/(?:www\.)?twitter\.com(?::\d+)?\/(?:#!\/)?[\w_]+\/status(?:es)?\/)(\d+)/i,s=/^http(s?):\/\/(\w+\.)*twitter\.com([:/]|$)/i,a=/^http(s?):\/\/(ton|pbs)\.twimg\.com/,u=/^#?([^.,<>!\s/#\-()'"]+)$/,c=/twitter\.com(?::\d{2,4})?\/intent\/(\w+)/,d=/^https?:\/\/(?:www\.)?twitter\.com\/\w+\/timelines\/(\d+)/i,l=/^https?:\/\/(?:www\.)?twitter\.com\/i\/moments\/(\d+)/i,f=/^https?:\/\/(?:www\.)?twitter\.com\/(\w+)\/(?:likes|favorites)/i,h=/^https?:\/\/(?:www\.)?twitter\.com\/(\w+)\/lists\/([\w-%]+)/i,p=/^https?:\/\/(?:www\.)?twitter\.com\/i\/live\/(\d+)/i,m=/^https?:\/\/syndication\.twitter\.com\/settings/i,v=/^https?:\/\/(localhost|platform)\.twitter\.com(?::\d+)?\/widgets\/widget_iframe\.(.+)/i,g=/^https?:\/\/(?:www\.)?twitter\.com\/search\?q=(\w+)/i;function w(t){return"string"==typeof t&&i.test(t)&&RegExp.$1.length<=20}function y(t){if(w(t))return RegExp.$1}function b(t,e){var n=r.decodeURL(t);if(e=e||!1,n.screen_name=y(t),n.screen_name)return r.url("https://twitter.com/intent/"+(e?"follow":"user"),n)}function _(t){return"string"==typeof t&&u.test(t)}function E(t){return"string"==typeof t&&o.test(t)}t.exports={isHashTag:_,hashTag:function(t,e){if(e=void 0===e||e,_(t))return(e?"#":"")+RegExp.$1},isScreenName:w,screenName:y,isStatus:E,status:function(t){return E(t)&&RegExp.$1},intentForProfileURL:b,intentForFollowURL:function(t){return b(t,!0)},isTwitterURL:function(t){return s.test(t)},isTwimgURL:function(t){return a.test(t)},isIntentURL:function(t){return c.test(t)},isSettingsURL:function(t){return m.test(t)},isWidgetIframeURL:function(t){return v.test(t)},isSearchUrl:function(t){return g.test(t)},regexen:{profile:i},momentId:function(t){return l.test(t)&&RegExp.$1},collectionId:function(t){return d.test(t)&&RegExp.$1},intentType:function(t){return c.test(t)&&RegExp.$1},likesScreenName:function(t){return f.test(t)&&RegExp.$1},listScreenNameAndSlug:function(t){var e,n,r;if(h.test(t)){e=RegExp.$1,n=RegExp.$2;try{r=decodeURIComponent(n)}catch(t){}return{ownerScreenName:e,slug:r||n}}return!1},eventId:function(t){return p.test(t)&&RegExp.$1}}},function(t,e){t.exports=document},function(t,e,n){var r=n(0),i=[!0,1,"1","on","ON","true","TRUE","yes","YES"],o=[!1,0,"0","off","OFF","false","FALSE","no","NO"];function s(t){return void 0!==t&&null!==t&&""!==t}function a(t){return c(t)&&t%1==0}function u(t){return c(t)&&!a(t)}function c(t){return s(t)&&!isNaN(t)}function d(t){return r.contains(o,t)}function l(t){return r.contains(i,t)}t.exports={hasValue:s,isInt:a,isFloat:u,isNumber:c,isString:function(t){return"string"===r.toType(t)},isArray:function(t){return s(t)&&"array"==r.toType(t)},isTruthValue:l,isFalseValue:d,asInt:function(t){if(a(t))return parseInt(t,10)},asFloat:function(t){if(u(t))return t},asNumber:function(t){if(c(t))return t},asBoolean:function(t){return!(!s(t)||!l(t)&&(d(t)||!t))}}},function(t,e,n){var r=n(1),i=n(21),o=n(49);i.hasPromiseSupport()||(r.Promise=o),t.exports=r.Promise},function(t,e,n){var r=n(0);t.exports=function(t,e){var n=Array.prototype.slice.call(arguments,2);return function(){var i=r.toRealArray(arguments);return t.apply(e,n.concat(i))}}},function(t,e,n){var r=n(51);t.exports=new r("__twttr")},function(t,e){t.exports=location},function(t,e,n){var r=n(0),i=/\b([\w-_]+)\b/g;function o(t){return new RegExp("\\b"+t+"\\b","g")}function s(t,e){t.classList?t.classList.add(e):o(e).test(t.className)||(t.className+=" "+e)}function a(t,e){t.classList?t.classList.remove(e):t.className=t.className.replace(o(e)," ")}function u(t,e){return t.classList?t.classList.contains(e):r.contains(c(t),e)}function c(t){return r.toRealArray(t.classList?t.classList:t.className.match(i))}t.exports={add:s,remove:a,replace:function(t,e,n){if(t.classList&&u(t,e))return a(t,e),void s(t,n);t.className=t.className.replace(o(e),n)},toggle:function(t,e,n){return void 0===n&&t.classList&&t.classList.toggle?t.classList.toggle(e,n):(n?s(t,e):a(t,e),n)},present:u,list:c}},function(t,e,n){var r=n(5),i=n(0);function o(t){return encodeURIComponent(t).replace(/\+/g,"%2B").replace(/'/g,"%27")}function s(t){return decodeURIComponent(t)}function a(t){var e=[];return i.forIn(t,function(t,n){var s=o(t);i.isType("array",n)||(n=[n]),n.forEach(function(t){r.hasValue(t)&&e.push(s+"="+o(t))})}),e.sort().join("&")}function u(t){var e={};return t?(t.split("&").forEach(function(t){var n=t.split("="),r=s(n[0]),o=s(n[1]);if(2==n.length){if(!i.isType("array",e[r]))return r in e?(e[r]=[e[r]],void e[r].push(o)):void(e[r]=o);e[r].push(o)}}),e):{}}t.exports={url:function(t,e){return a(e).length>0?i.contains(t,"?")?t+"&"+a(e):t+"?"+a(e):t},decodeURL:function(t){var e=t&&t.split("?");return 2==e.length?u(e[1]):{}},decode:u,encode:a,encodePart:o,decodePart:s}},function(t,e,n){var r=n(9),i=n(1),o=n(0),s={},a=o.contains(r.href,"tw_debug=true");function u(){}function c(){}function d(){return i.performance&&+i.performance.now()||+new Date}function l(t,e){if(i.console&&i.console[t])switch(e.length){case 1:i.console[t](e[0]);break;case 2:i.console[t](e[0],e[1]);break;case 3:i.console[t](e[0],e[1],e[2]);break;case 4:i.console[t](e[0],e[1],e[2],e[3]);break;case 5:i.console[t](e[0],e[1],e[2],e[3],e[4]);break;default:0!==e.length&&i.console.warn&&i.console.warn("too many params passed to logger."+t)}}t.exports={devError:u,devInfo:c,devObject:function(t,e){},publicError:function(){l("error",o.toRealArray(arguments))},publicLog:function(){l("info",o.toRealArray(arguments))},publicWarn:function(){l("warn",o.toRealArray(arguments))},time:function(t){a&&(s[t]=d())},timeEnd:function(t){a&&s[t]&&(d(),s[t])}}},function(t,e,n){var r=n(19),i=n(5),o=n(11),s=n(0),a=n(115);t.exports=function(t){var e=t.href&&t.href.split("?")[1],n=e?o.decode(e):{},u={lang:a(t),width:t.getAttribute("data-bs-width")||t.getAttribute("width"),height:t.getAttribute("data-bs-height")||t.getAttribute("height"),related:t.getAttribute("data-bs-related"),partner:t.getAttribute("data-bs-partner")};return i.asBoolean(t.getAttribute("data-bs-dnt"))&&r.setOn(),s.forIn(u,function(t,e){var r=n[t];n[t]=i.hasValue(r)?r:e}),s.compact(n)}},function(t,e,n){var r=n(77),i=n(22);t.exports=function(){var t="data-bs-twitter-extracted-"+i.generate();return function(e,n){return r(e,n).filter(function(e){return!e.hasAttribute(t)}).map(function(e){return e.setAttribute(t,"true"),e})}}},function(t,e){function n(t,e,n,r,i,o,s){this.factory=t,this.Sandbox=e,this.srcEl=o,this.targetEl=i,this.parameters=r,this.className=n,this.options=s}n.prototype.destroy=function(){this.srcEl=this.targetEl=null},t.exports=n},function(t,e){t.exports={DM_BUTTON:"twitter-dm-button",FOLLOW_BUTTON:"twitter-follow-button",HASHTAG_BUTTON:"twitter-hashtag-button",MENTION_BUTTON:"twitter-mention-button",MOMENT:"twitter-moment",PERISCOPE:"periscope-on-air",SHARE_BUTTON:"twitter-share-button",TIMELINE:"twitter-timeline",TWEET:"twitter-tweet"}},function(t,e,n){var r=n(6),i=n(19),o=n(53),s=n(36),a=n(5),u=n(0);t.exports=function(t,e,n){var c;return t=t||[],e=e||{},c="ƒ("+t.join(", ")+", target, [options]);",function(){var d,l,f,h,p=Array.prototype.slice.apply(arguments,[0,t.length]),m=Array.prototype.slice.apply(arguments,[t.length]);return m.forEach(function(t){t&&(t.nodeType!==Node.ELEMENT_NODE?u.isType("function",t)?d=t:u.isType("object",t)&&(l=t):f=t)}),p.length!==t.length||0===m.length?(d&&u.async(function(){d(!1)}),r.reject(new Error("Not enough parameters. Expected: "+c))):f?(l=u.aug({},l||{},e),t.forEach(function(t){l[t]=p.shift()}),a.asBoolean(l.dnt)&&i.setOn(),h=s.getExperiments().then(function(t){return o.addWidget(n(l,f,void 0,t))}),d&&h.then(d,function(){d(!1)}),h):(d&&u.async(function(){d(!1)}),r.reject(new Error("No target element specified. Expected: "+c)))}}},function(t,e,n){var r=n(98),i=n(2),o=n(0);function s(t,e){return function(){try{e.resolve(t.call(this))}catch(t){e.reject(t)}}}t.exports={sync:function(t,e){t.call(e)},read:function(t,e){var n=new i;return r.read(s(t,n),e),n.promise},write:function(t,e){var n=new i;return r.write(s(t,n),e),n.promise},defer:function(t,e,n){var a=new i;return o.isType("function",t)&&(n=e,e=t,t=1),r.defer(t,s(e,a),n),a.promise}}},function(t,e,n){var r=n(4),i=n(9),o=n(38),s=n(102),a=n(5),u=n(33),c=!1,d=/https?:\/\/([^/]+).*/i;t.exports={setOn:function(){c=!0},enabled:function(t,e){return!!(c||a.asBoolean(u.val("dnt"))||s.isUrlSensitive(e||i.host)||o.isFramed()&&s.isUrlSensitive(o.rootDocumentLocation())||(t=d.test(t||r.referrer)&&RegExp.$1)&&s.isUrlSensitive(t))}}},function(t,e,n){var r=n(8),i=n(59),o="https://platform.twitter.com",s=["https://syndication.twitter.com","https://cdn.syndication.twimg.com","https://localhost.twitter.com:8444"],a=["https://syndication.twitter.com","https://localhost.twitter.com:8445"],u=["https://platform.twitter.com","https://localhost.twitter.com",/^https:\/\/ton\.smf1\.twitter\.com\/syndication-internal\/embed-iframe\/[0-9A-Za-z_-]+\/app/],c=function(t,e){return t.some(function(t){return t instanceof RegExp?t.test(e):t===e})},d=function(){var t=r.get("backendHost");return t&&c(s,t)?t:"https://cdn.syndication.twimg.com"},l=function(){var t=r.get("settingsSvcHost");return t&&c(a,t)?t:"https://syndication.twitter.com"};function f(t,e){var n=[t];return e.forEach(function(t){n.push(function(t){var e=(t||"").toString(),n="/"===e.slice(0,1)?1:0,r=function(t){return"/"===t.slice(-1)}(e)?-1:void 0;return e.slice(n,r)}(t))}),n.join("/")}t.exports={cookieConsent:function(t){var e=t||[];return e.unshift("cookie/consent"),f(l(),e)},embedIframe:function(t,e){var n=t||[],s=o,a=r.get("embedIframeURL");return a&&c(u,a)?f(a,n)+".html":(n.unshift(i.getBaseURLPath(e)),f(s,n)+".html")},eventVideo:function(t){var e=t||[];return e.unshift("video/event"),f(d(),e)},grid:function(t){var e=t||[];return e.unshift("grid/collection"),f(d(),e)},moment:function(t){var e=t||[];return e.unshift("moments"),f(d(),e)},settings:function(t){var e=t||[];return e.unshift("settings"),f(l(),e)},timeline:function(t){var e=t||[];return e.unshift("timeline"),f(d(),e)},tweetBatch:function(t){var e=t||[];return e.unshift("tweets.json"),f(d(),e)},video:function(t){var e=t||[];return e.unshift("widgets/video"),f(d(),e)}}},function(t,e,n){var r=n(4),i=n(92),o=n(1),s=n(0),a=i.userAgent;function u(t){return/(Trident|MSIE|Edge[/ ]?\d)/.test(t=t||a)}t.exports={retina:function(t){return(t=t||o).devicePixelRatio?t.devicePixelRatio>=1.5:!!t.matchMedia&&t.matchMedia("only screen and (min-resolution: 144dpi)").matches},anyIE:u,ie9:function(t){return/MSIE 9/.test(t=t||a)},ie10:function(t){return/MSIE 10/.test(t=t||a)},ios:function(t){return/(iPad|iPhone|iPod)/.test(t=t||a)},android:function(t){return/^Mozilla\/5\.0 \(Linux; (U; )?Android/.test(t=t||a)},canPostMessage:function(t,e){return t=t||o,e=e||a,t.postMessage&&!(u(e)&&t.opener)},touch:function(t,e,n){return t=t||o,e=e||i,n=n||a,"ontouchstart"in t||/Opera Mini/.test(n)||e.msMaxTouchPoints>0},cssTransitions:function(){var t=r.body.style;return void 0!==t.transition||void 0!==t.webkitTransition||void 0!==t.mozTransition||void 0!==t.oTransition||void 0!==t.msTransition},hasPromiseSupport:function(){return!!(o.Promise&&o.Promise.resolve&&o.Promise.reject&&o.Promise.all&&o.Promise.race&&(new o.Promise(function(e){t=e}),s.isType("function",t)));var t},hasIntersectionObserverSupport:function(){return!!o.IntersectionObserver},hasPerformanceInformation:function(){return o.performance&&o.performance.getEntriesByType}}},function(t,e){var n="i",r=0,i=0;t.exports={generate:function(){return n+String(+new Date)+Math.floor(1e5*Math.random())+r++},deterministic:function(){return n+String(i++)}}},function(t,e,n){var r=n(50),i=n(52),o=n(0);t.exports=o.aug(r.get("events")||{},i.Emitter)},function(t,e,n){var r=n(6),i=n(2);function o(t,e){return t.then(e,e)}function s(t){return t instanceof r}t.exports={always:o,allResolved:function(t){var e;return void 0===t?r.reject(new Error("undefined is not an object")):Array.isArray(t)?(e=t.length)?new r(function(n,r){var i=0,o=[];function a(){(i+=1)===e&&(0===o.length?r():n(o))}function u(t){o.push(t),a()}t.forEach(function(t){s(t)?t.then(u,a):u(t)})}):r.resolve([]):r.reject(new Error("Type error"))},some:function(t){var e;return e=(t=t||[]).length,t=t.filter(s),e?e!==t.length?r.reject("non-Promise passed to .some"):new r(function(e,n){var r=0;function i(){(r+=1)===t.length&&n()}t.forEach(function(t){t.then(e,i)})}):r.reject("no promises passed to .some")},isPromise:s,allSettled:function(t){function e(){}return r.all((t||[]).map(function(t){return o(t,e)}))},timeout:function(t,e){var n=new i;return setTimeout(function(){n.reject(new Error("Promise timed out"))},e),t.then(function(t){n.resolve(t)},function(t){n.reject(t)}),n.promise}}},function(t,e,n){var r=n(1).JSON;t.exports={stringify:r.stringify||r.encode,parse:r.parse||r.decode}},function(t,e,n){var r=n(27),i=n(108);t.exports=r.build([i])},function(t,e,n){var r=n(39),i=n(105),o=n(7);(r=Object.create(r)).build=o(r.build,null,i),t.exports=r},function(t,e,n){var r=n(39),i=n(40),o=n(7);(r=Object.create(r)).build=o(r.build,null,i),t.exports=r},function(t,e,n){var r=n(79),i=n(80),o=n(81),s=n(9),a=n(71),u=n(82),c=n(19),d=n(5),l=n(22),f=n(0);function h(t){if(!t||!t.headers)throw new Error("unexpected response schema");return{html:t.body,config:t.config,pollInterval:1e3*parseInt(t.headers.xPolling,10)||null,maxCursorPosition:t.headers.maxPosition,minCursorPosition:t.headers.minPosition}}function p(t){if(t&&t.headers)throw new Error(t.headers.status);throw t instanceof Error?t:new Error(t)}t.exports=function(t){t.params({instanceId:{required:!0,fallback:l.deterministic},lang:{required:!0,transform:a.matchLanguage,fallback:"en"},tweetLimit:{transform:d.asInt}}),t.defineProperty("endpoint",{get:function(){throw new Error("endpoint not specified")}}),t.defineProperty("pollEndpoint",{get:function(){return this.endpoint}}),t.define("cbId",function(t){var e=t?"_new":"_old";return"tl_"+this.params.instanceId+"_"+this.id+e}),t.define("queryParams",function(){return{lang:this.params.lang,tz:u.getTimezoneOffset(),t:r(),domain:s.host,tweet_limit:this.params.tweetLimit,dnt:c.enabled()}}),t.define("fetch",function(){return i.fetch(this.endpoint,this.queryParams(),o,this.cbId()).then(h,p)}),t.define("poll",function(t,e){var n,r;return n={since_id:(t=t||{}).sinceId,max_id:t.maxId,min_position:t.minPosition,max_position:t.maxPosition},r=f.aug(this.queryParams(),n),i.fetch(this.pollEndpoint,r,o,this.cbId(e)).then(h,p)})}},function(t,e,n){var r=n(52).makeEmitter();t.exports={emitter:r,START:"start",ALL_WIDGETS_RENDER_START:"all_widgets_render_start",ALL_WIDGETS_RENDER_END:"all_widgets_render_end",ALL_WIDGETS_AND_IMAGES_LOADED:"all_widgets_and_images_loaded"}},function(t,e,n){var r=n(4),i=n(0);t.exports=function(t,e,n){var o;if(n=n||r,t=t||{},e=e||{},t.name){try{o=n.createElement('')}catch(e){(o=n.createElement("iframe")).name=t.name}delete t.name}else o=n.createElement("iframe");return t.id&&(o.id=t.id,delete t.id),o.allowtransparency="true",o.scrolling="no",o.setAttribute("frameBorder",0),o.setAttribute("allowTransparency",!0),i.forIn(t,function(t,e){o.setAttribute(t,e)}),i.forIn(e,function(t,e){o.style[t]=e}),o}},function(t,e,n){var r=n(27),i=n(122);t.exports=r.build([i])},function(t,e,n){var r,i=n(4);function o(t){var e,n,o,s=0;for(r={},e=(t=t||i).getElementsByTagName("meta");e[s];s++){if(n=e[s],/^twitter:/.test(n.getAttribute("name")))o=n.getAttribute("name").replace(/^twitter:/,"");else{if(!/^twitter:/.test(n.getAttribute("property")))continue;o=n.getAttribute("property").replace(/^twitter:/,"")}r[o]=n.getAttribute("content")||n.getAttribute("value")}}o(),t.exports={init:o,val:function(t){return r[t]}}},function(t,e,n){var r=n(0),i=n(45);t.exports={closest:function t(e,n,o){var s;if(n)return o=o||n&&n.ownerDocument,s=r.isType("function",e)?e:function(t){return function(e){return!!e.tagName&&i(e,t)}}(e),n===o?s(n)?n:void 0:s(n)?n:t(s,n.parentNode,o)}}},function(t,e,n){var r=n(10),i={},o=-1,s={};function a(t){var e=t.getAttribute("data-bs-twitter-event-id");return e||(t.setAttribute("data-bs-twitter-event-id",++o),o)}function u(t,e,n){var r=0,i=t&&t.length||0;for(r=0;r1?(e=Math.floor(t.item_ids.length/2),n=t.item_ids.slice(0,e),r={},i=t.item_ids.slice(e),o={},n.forEach(function(e){r[e]=t.item_details[e]}),i.forEach(function(e){o[e]=t.item_details[e]}),[l.aug({},t,{item_ids:n,item_details:r}),l.aug({},t,{item_ids:i,item_details:o})]):[t]},stringify:function(t){var e,n=Array.prototype.toJSON;return delete Array.prototype.toJSON,e=u.stringify(t),n&&(Array.prototype.toJSON=n),e},CLIENT_EVENT_ENDPOINT:p,RUFOUS_REDIRECT:"https://platform.twitter.com/jot.html"}},function(t,e,n){var r=n(9),i=n(75),o=n(0),s=i.getCanonicalURL()||r.href,a=s;t.exports={isFramed:function(){return s!==a},rootDocumentLocation:function(t){return t&&o.isType("string",t)&&(s=t),s},currentDocumentLocation:function(){return a}}},function(t,e,n){var r=n(103),i=n(104),o=n(0);t.exports={couple:function(){return o.toRealArray(arguments)},build:function(t,e,n){var o=new t;return(e=i(r(e||[]))).forEach(function(t){t.call(null,o)}),o.build(n)}}},function(t,e,n){var r=n(106),i=n(0),o=n(41);function s(){this.Component=this.factory(),this._adviceArgs=[],this._lastArgs=[]}i.aug(s.prototype,{factory:o,build:function(t){var e=this;return this.Component,i.aug(this.Component.prototype.boundParams,t),this._adviceArgs.concat(this._lastArgs).forEach(function(t){(function(t,e,n){var r=this[e];if(!r)throw new Error(e+" does not exist");this[e]=t(r,n)}).apply(e.Component.prototype,t)}),delete this._lastArgs,delete this._adviceArgs,this.Component},params:function(t){var e=this.Component.prototype.paramConfigs;t=t||{},this.Component.prototype.paramConfigs=i.aug({},t,e)},define:function(t,e){if(t in this.Component.prototype)throw new Error(t+" has previously been defined");this.override(t,e)},defineStatic:function(t,e){this.Component[t]=e},override:function(t,e){this.Component.prototype[t]=e},defineProperty:function(t,e){if(t in this.Component.prototype)throw new Error(t+" has previously been defined");this.overrideProperty(t,e)},overrideProperty:function(t,e){var n=i.aug({configurable:!0},e);Object.defineProperty(this.Component.prototype,t,n)},before:function(t,e){this._adviceArgs.push([r.before,t,e])},after:function(t,e){this._adviceArgs.push([r.after,t,e])},around:function(t,e){this._adviceArgs.push([r.around,t,e])},last:function(t,e){this._lastArgs.push([r.after,t,e])}}),t.exports=s},function(t,e,n){var r=n(0);function i(){return!0}function o(t){return t}t.exports=function(){function t(t){var e=this;t=t||{},this.params=Object.keys(this.paramConfigs).reduce(function(n,s){var a=[],u=e.boundParams,c=e.paramConfigs[s],d=c.validate||i,l=c.transform||o;if(s in u&&a.push(u[s]),s in t&&a.push(t[s]),a="fallback"in c?a.concat(c.fallback):a,n[s]=function(t,e,n){var i=null;return t.some(function(t){if(t=r.isType("function",t)?t():t,e(t))return i=n(t),!0}),i}(a,d,l),c.required&&null==n[s])throw new Error(s+" is a required parameter");return n},{}),this.initialize()}return r.aug(t.prototype,{paramConfigs:{},boundParams:{},initialize:function(){}}),t}},function(t,e,n){var r=n(101),i=n(76),o=new(n(110))(function(t){(!function(t){return 1===t.length&&i.canFlushOneItem(t[0])}(t)?function(t){r.init(),t.forEach(function(t){var e=t.input.namespace,n=t.input.data,i=t.input.offsite,o=t.input.version;r.clientEvent(e,n,i,o)}),r.flush().then(function(){t.forEach(function(t){t.taskDoneDeferred.resolve()})},function(){t.forEach(function(t){t.taskDoneDeferred.reject()})})}:function(t){t.forEach(function(t){var e=t.input.namespace,n=t.input.data,r=t.input.offsite,o=t.input.version;i.clientEvent(e,n,r,o),t.taskDoneDeferred.resolve()})})(t)});t.exports={scribe:function(t,e,n,r){return o.add({namespace:t,data:e,offsite:n,version:r})},pause:function(){o.pause()},resume:function(){o.resume()}}},function(t,e,n){var r,i=n(10),o=n(4),s=n(1),a=n(33),u=n(54),c=n(5),d=n(22),l="csptest";t.exports={inlineStyle:function(){var t=l+d.generate(),e=o.createElement("div"),n=o.createElement("style"),f="."+t+" { visibility: hidden; }";return!!o.body&&(c.asBoolean(a.val("widgets:csp"))&&(r=!1),void 0!==r?r:(e.style.display="none",i.add(e,t),n.type="text/css",n.appendChild(o.createTextNode(f)),o.body.appendChild(n),o.body.appendChild(e),r="hidden"===s.getComputedStyle(e).visibility,u(e),u(n),r))}}},function(t,e,n){var r=n(1);t.exports=function(t,e,n){var i,o=0;return n=n||null,function s(){var a=n||this,u=arguments,c=+new Date;if(r.clearTimeout(i),c-o>e)return o=c,void t.apply(a,u);i=r.setTimeout(function(){s.apply(a,u)},e)}}},function(t,e,n){var r=n(1).HTMLElement,i=r.prototype.matches||r.prototype.matchesSelector||r.prototype.webkitMatchesSelector||r.prototype.mozMatchesSelector||r.prototype.msMatchesSelector||r.prototype.oMatchesSelector;t.exports=function(t,e){if(i)return i.call(t,e)}},function(t){t.exports={version:"82e1070:1619632193066"}},function(t,e){t.exports=function(t){var e=t.getBoundingClientRect();return{width:e.width,height:e.height}}},function(t,e,n){var r=n(12).publicWarn;t.exports=function(){r("Warning: This Timeline type belongs to a group that will not be supported in the future (Likes, Collections, & Moments). It is not recommended for use. \n\t","* Twitter will continue to support Profile and List Timelines \n\t","* You can learn more about this change in our announcement: \n\t","https://twittercommunity.com/t/removing-support-for-embedded-like-collection-and-moment-timelines/150313 \n\t","* In order to create a new Embedded Timeline, visit: https://publish.twitter.com")}},function(t,e,n){
+/*!
+* @overview es6-promise - a tiny implementation of Promises/A+.
+* @copyright Copyright (c) 2014 Yehuda Katz, Tom Dale, Stefan Penner and contributors (Conversion to ES6 API by Jake Archibald)
+* @license Licensed under MIT license
+* See https://raw.githubusercontent.com/stefanpenner/es6-promise/master/LICENSE
+* @version v4.2.5+7f2b526d
+*/var r;r=function(){"use strict";function t(t){return"function"==typeof t}var e=Array.isArray?Array.isArray:function(t){return"[object Array]"===Object.prototype.toString.call(t)},n=0,r=void 0,i=void 0,o=function(t,e){f[n]=t,f[n+1]=e,2===(n+=2)&&(i?i(h):w())},s="undefined"!=typeof window?window:void 0,a=s||{},u=a.MutationObserver||a.WebKitMutationObserver,c="undefined"==typeof self&&"undefined"!=typeof process&&"[object process]"==={}.toString.call(process),d="undefined"!=typeof Uint8ClampedArray&&"undefined"!=typeof importScripts&&"undefined"!=typeof MessageChannel;function l(){var t=setTimeout;return function(){return t(h,1)}}var f=new Array(1e3);function h(){for(var t=0;t=0&&this._handlers[t].splice(n,1):this._handlers[t]=[])},trigger:function(t,e){var n=this._handlers&&this._handlers[t];(e=e||{}).type=t,n&&n.forEach(function(t){r.async(i(t,this,e))})}};t.exports={Emitter:o,makeEmitter:function(){return r.aug(function(){},o)}}},function(t,e,n){var r=n(97),i=n(99),o=n(6),s=n(24),a=n(7),u=n(0),c=new i(function(t){var e=function(t){return t.reduce(function(t,e){return t[e._className]=t[e._className]||[],t[e._className].push(e),t},{})}(t.map(r.fromRawTask));u.forIn(e,function(t,e){s.allSettled(e.map(function(t){return t.initialize()})).then(function(){e.forEach(function(t){o.all([t.hydrate(),t.insertIntoDom()]).then(a(t.render,t)).then(a(t.success,t),a(t.fail,t))})})})});t.exports={addWidget:function(t){return c.add(t)}}},function(t,e,n){var r=n(18);t.exports=function(t){return r.write(function(){t&&t.parentNode&&t.parentNode.removeChild(t)})}},function(t,e,n){n(12),t.exports={log:function(t,e){}}},function(t,e,n){var r=n(1);function i(t){return(t=t||r).getSelection&&t.getSelection()}t.exports={getSelection:i,getSelectedText:function(t){var e=i(t);return e?e.toString():""}}},function(t,e,n){var r=n(4),i=n(1),o=n(2),s=2e4;t.exports=function(t){var e=new o,n=r.createElement("img");return n.onload=n.onerror=function(){i.setTimeout(e.resolve,50)},n.src=t,i.setTimeout(e.reject,s),e.promise}},function(t,e,n){var r=n(109);t.exports=function(t){t.define("createElement",r),t.define("createFragment",r),t.define("htmlToElement",r),t.define("hasSelectedText",r),t.define("addRootClass",r),t.define("removeRootClass",r),t.define("hasRootClass",r),t.define("prependStyleSheet",r),t.define("appendStyleSheet",r),t.define("prependCss",r),t.define("appendCss",r),t.define("makeVisible",r),t.define("injectWidgetEl",r),t.define("matchHeightToContent",r),t.define("matchWidthToContent",r)}},function(t,e){var n="tfw_horizon_tweet_embed_9555";t.exports={getBaseURLPath:function(t){switch(t&&t.tfw_team_holdback_11929&&t.tfw_team_holdback_11929.bucket){case"control":return"embed-holdback";case"holdback_prod":return"embed-holdback-prod";default:return"embed"}},isHorizonTweetEnabled:function(t){return!(t&&t[n]&&"control"===t[n].bucket)},isHorizonTimelineEnabled:function(){return!1}}},function(t,e){t.exports=function(t){var e,n=!1;return function(){return n?e:(n=!0,e=t.apply(this,arguments))}}},function(t,e,n){var r=n(15),i=n(116),o=n(117),s=n(16);t.exports=function(t,e,n){return new r(i,o,s.DM_BUTTON,t,e,n)}},function(t,e,n){var r=n(27),i=n(118);t.exports=r.build([i])},function(t,e,n){var r=n(15),i=n(121),o=n(32),s=n(16);t.exports=function(t,e,n){return new r(i,o,s.FOLLOW_BUTTON,t,e,n)}},function(t,e,n){var r=n(15),i=n(129),o=n(26),s=n(16);t.exports=function(t,e,n){return new r(i,o,s.MOMENT,t,e,n)}},function(t,e,n){var r=n(15),i=n(131),o=n(26),s=n(16);t.exports=function(t,e,n){return new r(i,o,s.PERISCOPE,t,e,n)}},function(t,e,n){var r=n(78),i=n(133),o=n(137),s=n(139),a=n(141),u=n(143),c={collection:i,event:o,likes:s,list:a,profile:u,url:l},d=[u,s,i,a,o];function l(t){return r(d,function(e){try{return new e(t)}catch(t){}})}t.exports=function(t){return t?function(t){var e,n;return e=(t.sourceType+"").toLowerCase(),(n=c[e])?new n(t):null}(t)||l(t):null}},function(t,e,n){var r=n(4),i=n(59),o=n(15),s=n(32),a=n(145),u=n(26),c=n(146),d=n(16);t.exports=function(t,e,n,l){var f;return i.isHorizonTimelineEnabled(l,t)?(f=r.createElement("div"),new o(a,s,d.TIMELINE,t,e,n,{sandboxWrapperEl:f})):new o(c,u,d.TIMELINE,t,e,n)}},function(t,e,n){var r=n(4),i=n(15),o=n(32),s=n(148),a=n(16);t.exports=function(t,e,n){var u=r.createElement("div");return new i(s,o,a.TWEET,t,e,n,{sandboxWrapperEl:u})}},function(t,e,n){var r=n(15),i=n(150),o=n(32),s=n(16);t.exports=function(t,e,n){var a=t&&t.type||"share",u="hashtag"==a?s.HASHTAG_BUTTON:"mention"==a?s.MENTION_BUTTON:s.SHARE_BUTTON;return new r(i,o,u,t,e,n)}},function(t,e,n){var r=n(42),i=n(38),o=n(0);t.exports=function(t){var e={widget_origin:i.rootDocumentLocation(),widget_frame:i.isFramed()?i.currentDocumentLocation():null,duration_ms:t.duration,item_ids:t.widgetIds||[]},n=o.aug(t.namespace,{page:"page",component:"performance"});r.scribe(n,e)}},function(t,e,n){var r=n(0),i=n(134),o=["ar","fa","he","ur"];t.exports={isRtlLang:function(t){return t=String(t).toLowerCase(),r.contains(o,t)},matchLanguage:function(t){return t=(t=(t||"").toLowerCase()).replace("_","-"),i(t)?t:(t=t.replace(/-.*/,""),i(t)?t:"en")}}},function(t){t.exports={tweetButtonHtmlPath:"/widgets/tweet_button.06c6ee58c3810956b7509218508c7b56.{{lang}}.html",followButtonHtmlPath:"/widgets/follow_button.06c6ee58c3810956b7509218508c7b56.{{lang}}.html",hubHtmlPath:"/widgets/hub.html",widgetIframeHtmlPath:"/widgets/widget_iframe.06c6ee58c3810956b7509218508c7b56.html",resourceBaseUrl:"https://platform.twitter.com"}},function(t){t.exports={TWEET:0,RETWEET:10,CUSTOM_TIMELINE:17,LIVE_VIDEO_EVENT:28,QUOTE_TWEET:23}},function(t,e,n){var r=n(3),i=n(95),o=n(23),s=n(11),a={favorite:["favorite","like"],follow:["follow"],like:["favorite","like"],retweet:["retweet"],tweet:["tweet"]};function u(t){this.srcEl=[],this.element=t}u.open=function(t,e,n){var u=(r.intentType(t)||"").toLowerCase();r.isTwitterURL(t)&&(function(t,e){i.open(t,e)}(t,n),e&&o.trigger("click",{target:e,region:"intent",type:"click",data:{}}),e&&a[u]&&a[u].forEach(function(n){o.trigger(n,{target:e,region:"intent",type:n,data:function(t,e){var n=s.decodeURL(e);switch(t){case"favorite":case"like":return{tweet_id:n.tweet_id};case"follow":return{screen_name:n.screen_name,user_id:n.user_id};case"retweet":return{source_tweet_id:n.tweet_id};default:return{}}}(u,t)})}))},t.exports=u},function(t,e,n){var r=n(4),i=n(9),o=n(3);function s(t,e){var n,r;return e=e||i,/^https?:\/\//.test(t)?t:/^\/\//.test(t)?e.protocol+t:(n=e.host+(e.port.length?":"+e.port:""),0!==t.indexOf("/")&&((r=e.pathname.split("/")).pop(),r.push(t),t="/"+r.join("/")),[e.protocol,"//",n,t].join(""))}t.exports={absolutize:s,getCanonicalURL:function(){for(var t,e=r.getElementsByTagName("link"),n=0;e[n];n++)if("canonical"==(t=e[n]).rel)return s(t.href)},getScreenNameFromPage:function(){for(var t,e,n,i=[r.getElementsByTagName("a"),r.getElementsByTagName("link")],s=0,a=0,u=/\bme\b/;t=i[s];s++)for(a=0;e=t[a];a++)if(u.test(e.rel)&&(n=o.screenName(e.href)))return n}}},function(t,e,n){var r=n(19),i=n(55),o=n(11),s=n(37),a=n(0),u=n(8).get("scribeCallback"),c=2083,d=[],l=o.url(s.CLIENT_EVENT_ENDPOINT,{dnt:0,l:""}),f=encodeURIComponent(l).length;function h(t,e,n,r,i){var o=!a.isObject(t),c=!!e&&!a.isObject(e);o||c||(u&&u(arguments),p(s.formatClientEventNamespace(t),s.formatClientEventData(e,n,r),s.CLIENT_EVENT_ENDPOINT,i))}function p(t,e,n,r){var u;n&&a.isObject(t)&&a.isObject(e)&&(i.log(t,e),u=s.flattenClientEventPayload(t,e),r=a.aug({},r,{l:s.stringify(u)}),u.dnt&&(r.dnt=1),w(o.url(n,r)))}function m(t,e,n,r){var i=!a.isObject(t),o=!!e&&!a.isObject(e);if(!i&&!o)return v(s.flattenClientEventPayload(s.formatClientEventNamespace(t),s.formatClientEventData(e,n,r)))}function v(t){return d.push(t),d}function g(t){return encodeURIComponent(t).length+3}function w(t){return(new Image).src=t}t.exports={canFlushOneItem:function(t){var e=g(s.stringify(t));return f+e1&&m({page:"widgets_js",component:"scribe_pixel",action:"batch_log"},{}),t=d,d=[],t.reduce(function(e,n,r){var i=e.length,o=i&&e[i-1];return r+1==t.length&&n.event_namespace&&"batch_log"==n.event_namespace.action&&(n.message=["entries:"+r,"requests:"+i].join("/")),function t(e){return Array.isArray(e)||(e=[e]),e.reduce(function(e,n){var r,i=s.stringify(n),o=g(i);return f+o1&&(e=e.concat(t(r))),e},[])}(n).forEach(function(t){var n=g(t);(!o||o.urlLength+n>c)&&(o={urlLength:f,items:[]},e.push(o)),o.urlLength+=n,o.items.push(t)}),e},[]).map(function(t){var e={l:t.items};return r.enabled()&&(e.dnt=1),w(o.url(s.CLIENT_EVENT_ENDPOINT,e))})},interaction:function(t,e,n,r){var i=s.extractTermsFromDOM(t.target||t.srcElement);i.action=r||"click",h(i,e,n)}}},function(t,e,n){var r=n(0),i=n(45);t.exports=function(t,e){return i(t,e)?[t]:r.toRealArray(t.querySelectorAll(e))}},function(t,e){t.exports=function(t,e,n){for(var r,i=0;i")}).then(function(){t.close(),a.resolve(c)})}),c.src=["javascript:",'document.write("");',"try { window.parent.document; }",'catch (e) { document.domain="'+r.domain+'"; }',"window.parent."+g.fullPath(["sandbox",u])+"();"].join(""),c.addEventListener("error",a.reject,!1),o.write(function(){i.parentNode.replaceChild(c,i)}),a.promise}t.exports=a.couple(n(58),function(t){t.overrideProperty("id",{get:function(){return this.sandboxEl&&this.sandboxEl.id}}),t.overrideProperty("initialized",{get:function(){return!!this.win}}),t.overrideProperty("width",{get:function(){return this._width}}),t.overrideProperty("height",{get:function(){return this._height}}),t.overrideProperty("sandboxEl",{get:function(){return this.iframeEl}}),t.defineProperty("iframeEl",{get:function(){return this._iframe}}),t.defineProperty("rootEl",{get:function(){return this.doc&&this.doc.documentElement}}),t.defineProperty("widgetEl",{get:function(){return this.doc&&this.doc.body.firstElementChild}}),t.defineProperty("win",{get:function(){return this.iframeEl&&this.iframeEl.contentWindow}}),t.defineProperty("doc",{get:function(){return this.win&&this.win.document}}),t.define("_updateCachedDimensions",function(){var t=this;return o.read(function(){var e,n=h(t.sandboxEl);"visible"==t.sandboxEl.style.visibility?t._width=n.width:(e=h(t.sandboxEl.parentElement).width,t._width=Math.min(n.width,e)),t._height=n.height})}),t.define("_setTargetToBlank",function(){var t=this.createElement("base");t.target="_blank",this.doc.head.appendChild(t)}),t.define("_didResize",function(){var t=this,e=this._resizeHandlers.slice(0);return this._updateCachedDimensions().then(function(){e.forEach(function(e){e(t)})})}),t.define("setTitle",function(t){this.iframeEl.title=t}),t.override("createElement",function(t){return this.doc.createElement(t)}),t.override("createFragment",function(){return this.doc.createDocumentFragment()}),t.override("htmlToElement",function(t){var e;return(e=this.createElement("div")).innerHTML=t,e.firstElementChild}),t.override("hasSelectedText",function(){return!!s.getSelectedText(this.win)}),t.override("addRootClass",function(t){var e=this.rootEl;return t=Array.isArray(t)?t:[t],this.initialized?o.write(function(){t.forEach(function(t){i.add(e,t)})}):m.reject(new Error("sandbox not initialized"))}),t.override("removeRootClass",function(t){var e=this.rootEl;return t=Array.isArray(t)?t:[t],this.initialized?o.write(function(){t.forEach(function(t){i.remove(e,t)})}):m.reject(new Error("sandbox not initialized"))}),t.override("hasRootClass",function(t){return i.present(this.rootEl,t)}),t.define("addStyleSheet",function(t,e){var n,r=new p;return this.initialized?((n=this.createElement("link")).type="text/css",n.rel="stylesheet",n.href=t,n.addEventListener("load",r.resolve,!1),n.addEventListener("error",r.reject,!1),o.write(y(e,null,n)).then(function(){return u(t).then(r.resolve,r.reject),r.promise})):m.reject(new Error("sandbox not initialized"))}),t.override("prependStyleSheet",function(t){var e=this.doc;return this.addStyleSheet(t,function(t){var n=e.head.firstElementChild;return n?e.head.insertBefore(t,n):e.head.appendChild(t)})}),t.override("appendStyleSheet",function(t){var e=this.doc;return this.addStyleSheet(t,function(t){return e.head.appendChild(t)})}),t.define("addCss",function(t,e){var n;return c.inlineStyle()?((n=this.createElement("style")).type="text/css",n.appendChild(this.doc.createTextNode(t)),o.write(y(e,null,n))):(f.devError("CSP enabled; cannot embed inline styles"),m.resolve())}),t.override("prependCss",function(t){var e=this.doc;return this.addCss(t,function(t){var n=e.head.firstElementChild;return n?e.head.insertBefore(t,n):e.head.appendChild(t)})}),t.override("appendCss",function(t){var e=this.doc;return this.addCss(t,function(t){return e.head.appendChild(t)})}),t.override("makeVisible",function(){var t=this;return this.styleSelf(E).then(function(){t._updateCachedDimensions()})}),t.override("injectWidgetEl",function(t){var e=this;return this.initialized?this.widgetEl?m.reject(new Error("widget already injected")):o.write(function(){e.doc.body.appendChild(t)}):m.reject(new Error("sandbox not initialized"))}),t.override("matchHeightToContent",function(){var t,e=this;return o.read(function(){t=e.widgetEl?h(e.widgetEl).height:0}),o.write(function(){e.sandboxEl.style.height=t+"px"}).then(function(){return e._updateCachedDimensions()})}),t.override("matchWidthToContent",function(){var t,e=this;return o.read(function(){t=e.widgetEl?h(e.widgetEl).width:0}),o.write(function(){e.sandboxEl.style.width=t+"px"}).then(function(){return e._updateCachedDimensions()})}),t.after("initialize",function(){this._iframe=null,this._width=this._height=0,this._resizeHandlers=[]}),t.override("insert",function(t,e,n,r){var i=this,s=new p,a=this.targetGlobal.document,u=S(t,e,n,a);return o.write(y(r,null,u)),u.addEventListener("load",function(){(function(t){try{t.contentWindow.document}catch(t){return m.reject(t)}return m.resolve(t)})(u).then(null,y(R,null,t,e,n,u,a)).then(s.resolve,s.reject)},!1),u.addEventListener("error",s.reject,!1),s.promise.then(function(t){var e=d(i._didResize,A,i);return i._iframe=t,i.win.addEventListener("resize",e,!1),m.all([i._setTargetToBlank(),i.addRootClass(x),i.prependCss(T)])})}),t.override("onResize",function(t){this._resizeHandlers.push(t)}),t.after("styleSelf",function(){return this._updateCachedDimensions()})})},function(t,e){t.exports=function(){throw new Error("unimplemented method")}},function(t,e,n){var r=n(2),i=n(7),o=100,s=3e3;function a(t,e){this._inputsQueue=[],this._task=t,this._isPaused=!1,this._flushDelay=e&&e.flushDelay||o,this._pauseLength=e&&e.pauseLength||s,this._flushTimeout=void 0}a.prototype.add=function(t){var e=new r;return this._inputsQueue.push({input:t,taskDoneDeferred:e}),this._scheduleFlush(),e.promise},a.prototype._scheduleFlush=function(){this._isPaused||(clearTimeout(this._flushTimeout),this._flushTimeout=setTimeout(i(this._flush,this),this._flushDelay))},a.prototype._flush=function(){try{this._task.call(null,this._inputsQueue)}catch(t){this._inputsQueue.forEach(function(e){e.taskDoneDeferred.reject(t)})}this._inputsQueue=[],this._flushTimeout=void 0},a.prototype.pause=function(t){clearTimeout(this._flushTimeout),this._isPaused=!0,!t&&this._pauseLength&&setTimeout(i(this.resume,this),this._pauseLength)},a.prototype.resume=function(){this._isPaused=!1,this._scheduleFlush()},t.exports=a},function(t,e,n){var r=n(72),i=n(31),o=n(2),s=n(4),a=n(20),u=n(21),c=n(25),d=n(9),l=n(12),f=n(112),h=n(60),p=n(8),m=n(11),v=n(3),g=n(0),w=n(1),y=h(function(){return new o}),b={shouldObtainCookieConsent:!1,features:{}};t.exports={load:function(){var t,e,n,o;if(u.ie9()||u.ie10()||"http:"!==d.protocol&&"https:"!==d.protocol)return l.devError("Using default settings due to unsupported browser or protocol."),void y().resolve();t={origin:d.origin},a.settings().indexOf("localhost")>-1&&(t.localSettings=!0),e=m.url(r.resourceBaseUrl+r.widgetIframeHtmlPath,t),n=function(t){var n,r,i,o;if(r=v.isTwitterURL(t.origin),i=e.substr(0,t.origin.length)===t.origin,o=v.isTwimgURL(t.origin),i&&r||o)try{(n="string"==typeof t.data?c.parse(t.data):t.data).namespace===f.settings&&(b=g.aug(b,{features:n.settings.features,sessionId:n.sessionId}),y().resolve())}catch(t){l.devError(t)}},w.addEventListener("message",n),o=i({src:e,title:"Twitter settings iframe"},{display:"none"}),s.body.appendChild(o)},settingsLoaded:function(){var t,e;return t=p.get("experimentOverride"),y().promise.then(function(){return t&&t.name&&t.assignment&&((e={})[t.name]={bucket:t.assignment},b.features=g.aug(b.features,e)),b})}}},function(t,e){t.exports={settings:"twttr.settings"}},function(t,e,n){t.exports=[n(114),n(120),n(128),n(130),n(132),n(147),n(149)]},function(t,e,n){var r=n(11),i=n(5),o=n(0),s=n(13),a=n(14)(),u=n(61),c="a.twitter-dm-button";t.exports=function(t){return a(t,c).map(function(t){return u(function(t){var e=t.getAttribute("data-bs-show-screen-name"),n=s(t),a=t.getAttribute("href"),u=t.getAttribute("data-bs-screen-name"),c=e?i.asBoolean(e):null,d=t.getAttribute("data-bs-size"),l=r.decodeURL(a),f=l.recipient_id,h=t.getAttribute("data-bs-text")||l.text,p=t.getAttribute("data-bs-welcome-message-id")||l.welcomeMessageId;return o.aug(n,{screenName:u,showScreenName:c,size:d,text:h,userId:f,welcomeMessageId:p})}(t),t.parentNode,t)})}},function(t,e,n){var r=n(0);t.exports=function t(e){var n;if(e)return n=e.lang||e.getAttribute("data-bs-lang"),r.isType("string",n)?n:t(e.parentElement)}},function(t,e,n){var r=n(2);t.exports=function(t,e){var i=new r;return n.e(2).then(function(r){var o;try{o=n(83),i.resolve(new o(t,e))}catch(t){i.reject(t)}}.bind(null,n)).catch(function(t){i.reject(t)}),i.promise}},function(t,e,n){var r=n(62),i=n(26);t.exports=r.isSupported()?r:i},function(t,e,n){var r=n(119),i=n(1),o=n(10),s=n(35),a=n(18),u=n(56),c=n(27),d=n(57),l=n(43),f=n(47),h=n(7),p=n(44),m=n(6),v=n(0),g=50,w={position:"absolute",visibility:"hidden",display:"block",transform:"rotate(0deg)"},y={position:"static",visibility:"visible"},b="twitter-widget",_="open",E="SandboxRoot",x=".SandboxRoot { display: none; max-height: 10000px; }";t.exports=c.couple(n(58),function(t){t.defineStatic("isSupported",function(){return!!i.HTMLElement.prototype.attachShadow&&l.inlineStyle()}),t.overrideProperty("id",{get:function(){return this.sandboxEl&&this.sandboxEl.id}}),t.overrideProperty("initialized",{get:function(){return!!this._shadowHost}}),t.overrideProperty("width",{get:function(){return this._width}}),t.overrideProperty("height",{get:function(){return this._height}}),t.overrideProperty("sandboxEl",{get:function(){return this._shadowHost}}),t.define("_updateCachedDimensions",function(){var t=this;return a.read(function(){var e,n=f(t.sandboxEl);"visible"==t.sandboxEl.style.visibility?t._width=n.width:(e=f(t.sandboxEl.parentElement).width,t._width=Math.min(n.width,e)),t._height=n.height})}),t.define("_didResize",function(){var t=this,e=this._resizeHandlers.slice(0);return this._updateCachedDimensions().then(function(){e.forEach(function(e){e(t)})})}),t.override("createElement",function(t){return this.targetGlobal.document.createElement(t)}),t.override("createFragment",function(){return this.targetGlobal.document.createDocumentFragment()}),t.override("htmlToElement",function(t){var e;return(e=this.createElement("div")).innerHTML=t,e.firstElementChild}),t.override("hasSelectedText",function(){return!!u.getSelectedText(this.targetGlobal)}),t.override("addRootClass",function(t){var e=this._shadowRootBody;return t=Array.isArray(t)?t:[t],this.initialized?a.write(function(){t.forEach(function(t){o.add(e,t)})}):m.reject(new Error("sandbox not initialized"))}),t.override("removeRootClass",function(t){var e=this._shadowRootBody;return t=Array.isArray(t)?t:[t],this.initialized?a.write(function(){t.forEach(function(t){o.remove(e,t)})}):m.reject(new Error("sandbox not initialized"))}),t.override("hasRootClass",function(t){return o.present(this._shadowRootBody,t)}),t.override("addStyleSheet",function(t,e){return this.addCss('@import url("'+t+'");',e).then(function(){return d(t)})}),t.override("prependStyleSheet",function(t){var e=this._shadowRoot;return this.addStyleSheet(t,function(t){var n=e.firstElementChild;return n?e.insertBefore(t,n):e.appendChild(t)})}),t.override("appendStyleSheet",function(t){var e=this._shadowRoot;return this.addStyleSheet(t,function(t){return e.appendChild(t)})}),t.override("addCss",function(t,e){var n;return this.initialized?l.inlineStyle()?((n=this.createElement("style")).type="text/css",n.appendChild(this.targetGlobal.document.createTextNode(t)),a.write(h(e,null,n))):m.resolve():m.reject(new Error("sandbox not initialized"))}),t.override("prependCss",function(t){var e=this._shadowRoot;return this.addCss(t,function(t){var n=e.firstElementChild;return n?e.insertBefore(t,n):e.appendChild(t)})}),t.override("appendCss",function(t){var e=this._shadowRoot;return this.addCss(t,function(t){return e.appendChild(t)})}),t.override("makeVisible",function(){return this.styleSelf(y)}),t.override("injectWidgetEl",function(t){var e=this;return this.initialized?this._shadowRootBody.firstElementChild?m.reject(new Error("widget already injected")):a.write(function(){e._shadowRootBody.appendChild(t)}).then(function(){return e._updateCachedDimensions()}).then(function(){var t=p(e._didResize,g,e);new r(e._shadowRootBody,t)}):m.reject(new Error("sandbox not initialized"))}),t.override("matchHeightToContent",function(){return m.resolve()}),t.override("matchWidthToContent",function(){return m.resolve()}),t.override("insert",function(t,e,n,r){var i=this.targetGlobal.document,o=this._shadowHost=i.createElement(b),u=this._shadowRoot=o.attachShadow({mode:_}),c=this._shadowRootBody=i.createElement("div");return v.forIn(e||{},function(t,e){o.setAttribute(t,e)}),o.id=t,u.appendChild(c),s.delegate(c,"click","A",function(t,e){e.hasAttribute("target")||e.setAttribute("target","_blank")}),m.all([this.styleSelf(w),this.addRootClass(E),this.prependCss(x),a.write(r.bind(null,o))])}),t.override("onResize",function(t){this._resizeHandlers.push(t)}),t.after("initialize",function(){this._shadowHost=this._shadowRoot=this._shadowRootBody=null,this._width=this._height=0,this._resizeHandlers=[]}),t.after("styleSelf",function(){return this._updateCachedDimensions()})})},function(t,e){var n;(n=function(t,e){function r(t,e){if(t.resizedAttached){if(t.resizedAttached)return void t.resizedAttached.add(e)}else t.resizedAttached=new function(){var t,e;this.q=[],this.add=function(t){this.q.push(t)},this.call=function(){for(t=0,e=this.q.length;t
',t.appendChild(t.resizeSensor),{fixed:1,absolute:1}[function(t,e){return t.currentStyle?t.currentStyle[e]:window.getComputedStyle?window.getComputedStyle(t,null).getPropertyValue(e):t.style[e]}(t,"position")]||(t.style.position="relative");var i,o,s=t.resizeSensor.childNodes[0],a=s.childNodes[0],u=t.resizeSensor.childNodes[1],c=(u.childNodes[0],function(){a.style.width=s.offsetWidth+10+"px",a.style.height=s.offsetHeight+10+"px",s.scrollLeft=s.scrollWidth,s.scrollTop=s.scrollHeight,u.scrollLeft=u.scrollWidth,u.scrollTop=u.scrollHeight,i=t.offsetWidth,o=t.offsetHeight});c();var d=function(t,e,n){t.attachEvent?t.attachEvent("on"+e,n):t.addEventListener(e,n)},l=function(){t.offsetWidth==i&&t.offsetHeight==o||t.resizedAttached&&t.resizedAttached.call(),c()};d(s,"scroll",l),d(u,"scroll",l)}var i=Object.prototype.toString.call(t),o="[object Array]"===i||"[object NodeList]"===i||"[object HTMLCollection]"===i||"undefined"!=typeof jQuery&&t instanceof jQuery||"undefined"!=typeof Elements&&t instanceof Elements;if(o)for(var s=0,a=t.length;s0;return this.updateCachedDimensions().then(function(){e&&t._resizeHandlers.forEach(function(e){e(t)})})}),t.define("loadDocument",function(t){var e=new a;return this.initialized?this.iframeEl.src?u.reject(new Error("widget already loaded")):(this.iframeEl.addEventListener("load",e.resolve,!1),this.iframeEl.addEventListener("error",e.reject,!1),this.iframeEl.src=t,e.promise):u.reject(new Error("sandbox not initialized"))}),t.after("initialize",function(){var t=new a,e=new a;this._iframe=null,this._iframeVersion=null,this._width=this._height=0,this._resizeHandlers=[],this._rendered=t,this._results=e,this._waitToSwapUntilRendered=!1}),t.override("insert",function(t,e,n,i){var a=this;return e=d.aug({id:t},l,e),n=d.aug({},f,n),this._iframe=s(e,n),p[t]=this,a._waitToSwapUntilRendered||this.onResize(o(function(){a.makeVisible()})),r.write(c(i,null,this._iframe))}),t.override("onResize",function(t){this._resizeHandlers.push(t)}),t.after("styleSelf",function(){return this.updateCachedDimensions()})}},function(t,e,n){var r=n(1),i=n(124),o=n(126),s=n(23),a=n(5),u=n(127);t.exports=function(t,e,n,c,d){function l(t){var e=u(this);s.trigger(t.type,{target:e,region:t.region,type:t.type,data:t.data||{}})}function f(e){var n=u(this),r=n&&n.id,i=a.asInt(e.width),o=a.asInt(e.height);r&&void 0!==i&&void 0!==o&&t(r,i,o)}(new i).attachReceiver(new o.Receiver(r,"twttr.button")).bind("twttr.private.trigger",l).bind("twttr.private.resizeButton",f),(new i).attachReceiver(new o.Receiver(r,"twttr.embed")).bind("twttr.private.initialized",function(t){var e=u(this),n=e&&e.id,r=t.iframe_version;n&&r&&c&&c(n,r)}).bind("twttr.private.trigger",l).bind("twttr.private.results",function(){var t=u(this),n=t&&t.id;n&&e&&e(n)}).bind("twttr.private.rendered",function(){var t=u(this),e=t&&t.id;e&&n&&n(e)}).bind("twttr.private.no_results",function(){var t=u(this),e=t&&t.id;e&&d&&d(e)}).bind("twttr.private.resize",f)}},function(t,e,n){var r=n(25),i=n(125),o=n(0),s=n(6),a=n(24),u="2.0";function c(t){this.registry=t||{}}function d(t){var e,n;return e=o.isType("string",t),n=o.isType("number",t),e||n||null===t}function l(t,e){return{jsonrpc:u,id:d(t)?t:null,error:e}}c.prototype._invoke=function(t,e){var n,r,i;n=this.registry[t.method],r=t.params||[],r=o.isType("array",r)?r:[r];try{i=n.apply(e.source||null,r)}catch(t){i=s.reject(t.message)}return a.isPromise(i)?i:s.resolve(i)},c.prototype._processRequest=function(t,e){var n,r;return function(t){var e,n,r;return!!o.isObject(t)&&(e=t.jsonrpc===u,n=o.isType("string",t.method),r=!("id"in t)||d(t.id),e&&n&&r)}(t)?(n="params"in t&&(r=t.params,!o.isObject(r)||o.isType("function",r))?s.resolve(l(t.id,i.INVALID_PARAMS)):this.registry[t.method]?this._invoke(t,{source:e}).then(function(e){return n=t.id,{jsonrpc:u,id:n,result:e};var n},function(){return l(t.id,i.INTERNAL_ERROR)}):s.resolve(l(t.id,i.METHOD_NOT_FOUND)),null!=t.id?n:s.resolve()):s.resolve(l(t.id,i.INVALID_REQUEST))},c.prototype.attachReceiver=function(t){return t.attachTo(this),this},c.prototype.bind=function(t,e){return this.registry[t]=e,this},c.prototype.receive=function(t,e){var n,a,u,c=this;try{u=t,t=o.isType("string",u)?r.parse(u):u}catch(t){return s.resolve(l(null,i.PARSE_ERROR))}return e=e||null,a=((n=o.isType("array",t))?t:[t]).map(function(t){return c._processRequest(t,e)}),n?function(t){return s.all(t).then(function(t){return(t=t.filter(function(t){return void 0!==t})).length?t:void 0})}(a):a[0]},t.exports=c},function(t){t.exports={PARSE_ERROR:{code:-32700,message:"Parse error"},INVALID_REQUEST:{code:-32600,message:"Invalid Request"},INVALID_PARAMS:{code:-32602,message:"Invalid params"},METHOD_NOT_FOUND:{code:-32601,message:"Method not found"},INTERNAL_ERROR:{code:-32603,message:"Internal error"}}},function(t,e,n){var r=n(9),i=n(1),o=n(25),s=n(2),a=n(21),u=n(0),c=n(3),d=n(7),l=a.ie9();function f(t,e,n){var r;t&&t.postMessage&&(l?r=(n||"")+o.stringify(e):n?(r={})[n]=e:r=e,t.postMessage(r,"*"))}function h(t){return u.isType("string",t)?t:"JSONRPC"}function p(t,e){return e?u.isType("string",t)&&0===t.indexOf(e)?t.substring(e.length):t&&t[e]?t[e]:void 0:t}function m(t,e){var n=t.document;this.filter=h(e),this.server=null,this.isTwitterFrame=c.isTwitterURL(n.location.href),t.addEventListener("message",d(this._onMessage,this),!1)}function v(t,e){this.pending={},this.target=t,this.isTwitterHost=c.isTwitterURL(r.href),this.filter=h(e),i.addEventListener("message",d(this._onMessage,this),!1)}u.aug(m.prototype,{_onMessage:function(t){var e,n=this;this.server&&(this.isTwitterFrame&&!c.isTwitterURL(t.origin)||(e=p(t.data,this.filter))&&this.server.receive(e,t.source).then(function(e){e&&f(t.source,e,n.filter)}))},attachTo:function(t){this.server=t},detach:function(){this.server=null}}),u.aug(v.prototype,{_processResponse:function(t){var e=this.pending[t.id];e&&(e.resolve(t),delete this.pending[t.id])},_onMessage:function(t){var e;if((!this.isTwitterHost||c.isTwitterURL(t.origin))&&(e=p(t.data,this.filter))){if(u.isType("string",e))try{e=o.parse(e)}catch(t){return}(e=u.isType("array",e)?e:[e]).forEach(d(this._processResponse,this))}},send:function(t){var e=new s;return t.id?this.pending[t.id]=e:e.resolve(),f(this.target,t,this.filter),e.promise}}),t.exports={Receiver:m,Dispatcher:v,_stringifyPayload:function(t){return arguments.length>0&&(l=!!t),l}}},function(t,e,n){var r=n(4);t.exports=function(t){for(var e,n=r.getElementsByTagName("iframe"),i=0;n[i];i++)if((e=n[i]).contentWindow===t)return e}},function(t,e,n){var r=n(5),i=n(0),o=n(3),s=n(13),a=n(14)(),u=n(64),c="a.twitter-moment";t.exports=function(t){return a(t,c).map(function(t){return u(function(t){var e=s(t),n={momentId:o.momentId(t.href),chrome:t.getAttribute("data-bs-chrome"),limit:t.getAttribute("data-bs-limit")};return i.forIn(n,function(t,n){var i=e[t];e[t]=r.hasValue(i)?i:n}),e}(t),t.parentNode,t)})}},function(t,e,n){var r=n(2);t.exports=function(t,e){var i=new r;return Promise.all([n.e(0),n.e(4)]).then(function(r){var o;try{o=n(85),i.resolve(new o(t,e))}catch(t){i.reject(t)}}.bind(null,n)).catch(function(t){i.reject(t)}),i.promise}},function(t,e,n){var r=n(0),i=n(13),o=n(14)(),s=n(65),a="a.periscope-on-air",u=/^https?:\/\/(?:www\.)?(?:periscope|pscp)\.tv\/@?([a-zA-Z0-9_]+)\/?$/i;t.exports=function(t){return o(t,a).map(function(t){return s(function(t){var e=i(t),n=t.getAttribute("href"),o=t.getAttribute("data-bs-size"),s=u.exec(n)[1];return r.aug(e,{username:s,size:o})}(t),t.parentNode,t)})}},function(t,e,n){var r=n(2);t.exports=function(t,e){var i=new r;return n.e(5).then(function(r){var o;try{o=n(86),i.resolve(new o(t,e))}catch(t){i.reject(t)}}.bind(null,n)).catch(function(t){i.reject(t)}),i.promise}},function(t,e,n){var r=n(5),i=n(0),o=n(66),s=n(13),a=n(14)(),u=n(67),c=n(3),d=n(12),l="a.twitter-timeline,div.twitter-timeline,a.twitter-grid",f="Embedded Search timelines have been deprecated. See https://twittercommunity.com/t/deprecating-widget-settings/102295.",h="You may have been affected by an update to settings in embedded timelines. See https://twittercommunity.com/t/deprecating-widget-settings/102295.",p="Embedded grids have been deprecated and will now render as timelines. Please update your embed code to use the twitter-timeline class. More info: https://twittercommunity.com/t/update-on-the-embedded-grid-display-type/119564.";t.exports=function(t){return a(t,l).map(function(t){return u(function(t){var e=s(t),n=t.getAttribute("data-bs-show-replies"),a={isPreconfigured:!!t.getAttribute("data-bs-widget-id"),chrome:t.getAttribute("data-bs-chrome"),tweetLimit:t.getAttribute("data-bs-tweet-limit")||t.getAttribute("data-bs-limit"),ariaLive:t.getAttribute("data-bs-aria-polite"),theme:"dark",borderColor:t.getAttribute("data-bs-border-color"),showReplies:n?r.asBoolean(n):null,profileScreenName:t.getAttribute("data-bs-screen-name"),profileUserId:t.getAttribute("data-bs-user-id"),favoritesScreenName:t.getAttribute("data-bs-favorites-screen-name"),favoritesUserId:t.getAttribute("data-bs-favorites-user-id"),likesScreenName:t.getAttribute("data-bs-likes-screen-name"),likesUserId:t.getAttribute("data-bs-likes-user-id"),listOwnerScreenName:t.getAttribute("data-bs-list-owner-screen-name"),listOwnerUserId:t.getAttribute("data-bs-list-owner-id"),listId:t.getAttribute("data-bs-list-id"),listSlug:t.getAttribute("data-bs-list-slug"),customTimelineId:t.getAttribute("data-bs-custom-timeline-id"),staticContent:t.getAttribute("data-bs-static-content"),url:t.href};return a.isPreconfigured&&(c.isSearchUrl(a.url)?d.publicError(f,t):d.publicLog(h,t)),"twitter-grid"===t.className&&d.publicLog(p,t),(a=i.aug(a,e)).dataSource=o(a),a.id=a.dataSource&&a.dataSource.id,a}(t),t.parentNode,t)})}},function(t,e,n){var r=n(28);t.exports=r.build([n(29),n(136)])},function(t,e,n){var r=n(0),i=n(135);t.exports=function(t){return"en"===t||r.contains(i,t)}},function(t,e){t.exports=["hi","zh-cn","fr","zh-tw","msa","fil","fi","sv","pl","ja","ko","de","it","pt","es","ru","id","tr","da","no","nl","hu","fa","ar","ur","he","th","cs","uk","vi","ro","bn","el","en-gb","gu","kn","mr","ta","bg","ca","hr","sr","sk"]},function(t,e,n){var r=n(3),i=n(0),o=n(20),s=n(48),a="collection:";function u(t,e){return r.collectionId(t)||e}t.exports=function(t){t.params({id:{},url:{}}),t.overrideProperty("id",{get:function(){var t=u(this.params.url,this.params.id);return a+t}}),t.overrideProperty("endpoint",{get:function(){return o.timeline(["collection"])}}),t.around("queryParams",function(t){return i.aug(t(),{collection_id:u(this.params.url,this.params.id)})}),t.before("initialize",function(){if(!u(this.params.url,this.params.id))throw new Error("one of url or id is required");s()})}},function(t,e,n){var r=n(28);t.exports=r.build([n(29),n(138)])},function(t,e,n){var r=n(3),i=n(0),o=n(20),s="event:";function a(t,e){return r.eventId(t)||e}t.exports=function(t){t.params({id:{},url:{}}),t.overrideProperty("id",{get:function(){var t=a(this.params.url,this.params.id);return s+t}}),t.overrideProperty("endpoint",{get:function(){return o.timeline(["event"])}}),t.around("queryParams",function(t){return i.aug(t(),{event_id:a(this.params.url,this.params.id)})}),t.before("initialize",function(){if(!a(this.params.url,this.params.id))throw new Error("one of url or id is required")})}},function(t,e,n){var r=n(28);t.exports=r.build([n(29),n(140)])},function(t,e,n){var r=n(3),i=n(0),o=n(20),s=n(48),a="likes:";function u(t){return r.likesScreenName(t.url)||t.screenName}t.exports=function(t){t.params({screenName:{},userId:{},url:{}}),t.overrideProperty("id",{get:function(){var t=u(this.params)||this.params.userId;return a+t}}),t.overrideProperty("endpoint",{get:function(){return o.timeline(["likes"])}}),t.define("_getLikesQueryParam",function(){var t=u(this.params);return t?{screen_name:t}:{user_id:this.params.userId}}),t.around("queryParams",function(t){return i.aug(t(),this._getLikesQueryParam())}),t.before("initialize",function(){if(!u(this.params)&&!this.params.userId)throw new Error("screen name or user id is required");s()})}},function(t,e,n){var r=n(28);t.exports=r.build([n(29),n(142)])},function(t,e,n){var r=n(3),i=n(0),o=n(20),s="list:";function a(t){var e=r.listScreenNameAndSlug(t.url)||t;return i.compact({screen_name:e.ownerScreenName,user_id:e.ownerUserId,list_slug:e.slug})}t.exports=function(t){t.params({id:{},ownerScreenName:{},ownerUserId:{},slug:{},url:{}}),t.overrideProperty("id",{get:function(){var t,e,n;return this.params.id?s+this.params.id:(e=(t=a(this.params))&&t.list_slug.replace(/-/g,"_"),n=t&&(t.screen_name||t.user_id),s+(n+":")+e)}}),t.overrideProperty("endpoint",{get:function(){return o.timeline(["list"])}}),t.define("_getListQueryParam",function(){return this.params.id?{list_id:this.params.id}:a(this.params)}),t.around("queryParams",function(t){return i.aug(t(),this._getListQueryParam())}),t.before("initialize",function(){var t=a(this.params);if(i.isEmptyObject(t)&&!this.params.id)throw new Error("qualified slug or list id required")})}},function(t,e,n){var r=n(28);t.exports=r.build([n(29),n(144)])},function(t,e,n){var r=n(3),i=n(5),o=n(0),s=n(20),a="profile:";function u(t,e){return r.screenName(t)||e}t.exports=function(t){t.params({showReplies:{fallback:!1,transform:i.asBoolean},screenName:{},userId:{},url:{}}),t.overrideProperty("id",{get:function(){var t=u(this.params.url,this.params.screenName);return a+(t||this.params.userId)}}),t.overrideProperty("endpoint",{get:function(){return s.timeline(["profile"])}}),t.define("_getProfileQueryParam",function(){var t=u(this.params.url,this.params.screenName),e=t?{screen_name:t}:{user_id:this.params.userId};return o.aug(e,{with_replies:this.params.showReplies?"true":"false"})}),t.around("queryParams",function(t){return o.aug(t(),this._getProfileQueryParam())}),t.before("initialize",function(){if(!u(this.params.url,this.params.screenName)&&!this.params.userId)throw new Error("screen name or user id is required")})}},function(t,e,n){var r=n(2);t.exports=function(t,e){var i=new r;return n.e(6).then(function(r){var o;try{o=n(87),i.resolve(new o(t,e))}catch(t){i.reject(t)}}.bind(null,n)).catch(function(t){i.reject(t)}),i.promise}},function(t,e,n){var r=n(2);t.exports=function(t,e){var i=new r;return Promise.all([n.e(0),n.e(7)]).then(function(r){var o;try{o=n(88),i.resolve(new o(t,e))}catch(t){i.reject(t)}}.bind(null,n)).catch(function(t){i.reject(t)}),i.promise}},function(t,e,n){var r=n(10),i=n(3),o=n(0),s=n(13),a=n(14)(),u=n(68),c="blockquote.twitter-tweet, blockquote.twitter-video",d=/\btw-align-(left|right|center)\b/;t.exports=function(t,e){return a(t,c).map(function(t){return u(function(t){var e=s(t),n=t.getElementsByTagName("A"),a=n&&n[n.length-1],u=a&&i.status(a.href),c=t.getAttribute("data-bs-conversation"),l="none"==c||"hidden"==c||r.present(t,"tw-hide-thread"),f=t.getAttribute("data-bs-cards"),h="none"==f||"hidden"==f||r.present(t,"tw-hide-media"),p=t.getAttribute("data-bs-align")||t.getAttribute("align"),m="dark";return!p&&d.test(t.className)&&(p=RegExp.$1),o.aug(e,{tweetId:u,hideThread:l,hideCard:h,align:p,theme:m,id:u})}(t),t.parentNode,t,e)})}},function(t,e,n){var r=n(2);t.exports=function(t,e){var i=new r;return n.e(8).then(function(r){var o;try{o=n(89),i.resolve(new o(t,e))}catch(t){i.reject(t)}}.bind(null,n)).catch(function(t){i.reject(t)}),i.promise}},function(t,e,n){var r=n(10),i=n(0),o=n(13),s=n(14)(),a=n(69),u=n(5),c="a.twitter-share-button, a.twitter-mention-button, a.twitter-hashtag-button",d="twitter-hashtag-button",l="twitter-mention-button";t.exports=function(t){return s(t,c).map(function(t){return a(function(t){var e=o(t),n={screenName:t.getAttribute("data-bs-button-screen-name"),text:t.getAttribute("data-bs-text"),type:t.getAttribute("data-bs-type"),size:t.getAttribute("data-bs-size"),url:t.getAttribute("data-bs-url"),hashtags:t.getAttribute("data-bs-hashtags"),via:t.getAttribute("data-bs-via"),buttonHashtag:t.getAttribute("data-bs-button-hashtag")};return i.forIn(n,function(t,n){var r=e[t];e[t]=u.hasValue(r)?r:n}),e.screenName=e.screenName||e.screen_name,e.buttonHashtag=e.buttonHashtag||e.button_hashtag||e.hashtag,r.present(t,d)&&(e.type="hashtag"),r.present(t,l)&&(e.type="mention"),e}(t),t.parentNode,t)})}},function(t,e,n){var r=n(2);t.exports=function(t,e){var i=new r;return n.e(3).then(function(r){var o;try{o=n(90),i.resolve(new o(t,e))}catch(t){i.reject(t)}}.bind(null,n)).catch(function(t){i.reject(t)}),i.promise}},function(t,e,n){var r=n(0);t.exports=r.aug({},n(152),n(153),n(154),n(155),n(156),n(157),n(158))},function(t,e,n){var r=n(61),i=n(17)(["userId"],{},r);t.exports={createDMButton:i}},function(t,e,n){var r=n(63),i=n(17)(["screenName"],{},r);t.exports={createFollowButton:i}},function(t,e,n){var r=n(64),i=n(17)(["momentId"],{},r);t.exports={createMoment:i}},function(t,e,n){var r=n(65),i=n(17)(["username"],{},r);t.exports={createPeriscopeOnAirButton:i}},function(t,e,n){var r=n(9),i=n(12),o=n(3),s=n(0),a=n(5),u=n(66),c=n(67),d=n(17)([],{},c),l=n(6),f="Embedded grids have been deprecated. Please use twttr.widgets.createTimeline instead. More info: https://twittercommunity.com/t/update-on-the-embedded-grid-display-type/119564.",h={createTimeline:p,createGridFromCollection:function(t){var e=s.toRealArray(arguments).slice(1),n={sourceType:"collection",id:t};return e.unshift(n),i.publicLog(f),p.apply(this,e)}};function p(t){var e,n=s.toRealArray(arguments).slice(1);return a.isString(t)||a.isNumber(t)?l.reject("Embedded timelines with widget settings have been deprecated. See https://twittercommunity.com/t/deprecating-widget-settings/102295."):s.isObject(t)?(t=t||{},n.forEach(function(t){s.isType("object",t)&&function(t){t.ariaLive=t.ariaPolite}(e=t)}),e||(e={},n.push(e)),t.lang=e.lang,t.tweetLimit=e.tweetLimit,t.showReplies=e.showReplies,e.dataSource=u(t),d.apply(this,n)):l.reject("data source must be an object.")}o.isTwitterURL(r.href)&&(h.createTimelinePreview=function(t,e,n){var r={previewParams:t,useLegacyDefaults:!0,isPreviewTimeline:!0};return r.dataSource=u(r),d(e,r,n)}),t.exports=h},function(t,e,n){var r,i=n(0),o=n(68),s=n(17),a=(r=s(["tweetId"],{},o),function(){return i.toRealArray(arguments).slice(1).forEach(function(t){i.isType("object",t)&&(t.hideCard="none"==t.cards||"hidden"==t.cards,t.hideThread="none"==t.conversation||"hidden"==t.conversation)}),r.apply(this,arguments)});t.exports={createTweet:a,createTweetEmbed:a,createVideo:a}},function(t,e,n){var r=n(0),i=n(69),o=n(17),s=o(["url"],{type:"share"},i),a=o(["buttonHashtag"],{type:"hashtag"},i),u=o(["screenName"],{type:"mention"},i);function c(t){return function(){return r.toRealArray(arguments).slice(1).forEach(function(t){r.isType("object",t)&&(t.screenName=t.screenName||t.screen_name,t.buttonHashtag=t.buttonHashtag||t.button_hashtag||t.hashtag)}),t.apply(this,arguments)}}t.exports={createShareButton:c(s),createHashtagButton:c(a),createMentionButton:c(u)}},function(t,e,n){var r,i,o,s=n(4),a=n(1),u=0,c=[],d=s.createElement("a");function l(){var t,e;for(u=1,t=0,e=c.length;t-1},forIn:i,isObject:s,isEmptyObject:a,toType:o,isType:function(t,e){return t==o(e)},toRealArray:u}},function(t,e){t.exports=window},function(t,e,n){var r=n(6);t.exports=function(){var t=this;this.promise=new r(function(e,n){t.resolve=e,t.reject=n})}},function(t,e,n){var r=n(11),i=/(?:^|(?:https?:)?\/\/(?:www\.)?twitter\.com(?::\d+)?(?:\/intent\/(?:follow|user)\/?\?screen_name=|(?:\/#!)?\/))@?([\w]+)(?:\?|&|$)/i,o=/(?:^|(?:https?:)?\/\/(?:www\.)?twitter\.com(?::\d+)?\/(?:#!\/)?[\w_]+\/status(?:es)?\/)(\d+)/i,s=/^http(s?):\/\/(\w+\.)*twitter\.com([:/]|$)/i,a=/^http(s?):\/\/(ton|pbs)\.twimg\.com/,u=/^#?([^.,<>!\s/#\-()'"]+)$/,c=/twitter\.com(?::\d{2,4})?\/intent\/(\w+)/,d=/^https?:\/\/(?:www\.)?twitter\.com\/\w+\/timelines\/(\d+)/i,l=/^https?:\/\/(?:www\.)?twitter\.com\/i\/moments\/(\d+)/i,f=/^https?:\/\/(?:www\.)?twitter\.com\/(\w+)\/(?:likes|favorites)/i,h=/^https?:\/\/(?:www\.)?twitter\.com\/(\w+)\/lists\/([\w-%]+)/i,p=/^https?:\/\/(?:www\.)?twitter\.com\/i\/live\/(\d+)/i,m=/^https?:\/\/syndication\.twitter\.com\/settings/i,v=/^https?:\/\/(localhost|platform)\.twitter\.com(?::\d+)?\/widgets\/widget_iframe\.(.+)/i,g=/^https?:\/\/(?:www\.)?twitter\.com\/search\?q=(\w+)/i;function w(t){return"string"==typeof t&&i.test(t)&&RegExp.$1.length<=20}function y(t){if(w(t))return RegExp.$1}function b(t,e){var n=r.decodeURL(t);if(e=e||!1,n.screen_name=y(t),n.screen_name)return r.url("https://twitter.com/intent/"+(e?"follow":"user"),n)}function _(t){return"string"==typeof t&&u.test(t)}function E(t){return"string"==typeof t&&o.test(t)}t.exports={isHashTag:_,hashTag:function(t,e){if(e=void 0===e||e,_(t))return(e?"#":"")+RegExp.$1},isScreenName:w,screenName:y,isStatus:E,status:function(t){return E(t)&&RegExp.$1},intentForProfileURL:b,intentForFollowURL:function(t){return b(t,!0)},isTwitterURL:function(t){return s.test(t)},isTwimgURL:function(t){return a.test(t)},isIntentURL:function(t){return c.test(t)},isSettingsURL:function(t){return m.test(t)},isWidgetIframeURL:function(t){return v.test(t)},isSearchUrl:function(t){return g.test(t)},regexen:{profile:i},momentId:function(t){return l.test(t)&&RegExp.$1},collectionId:function(t){return d.test(t)&&RegExp.$1},intentType:function(t){return c.test(t)&&RegExp.$1},likesScreenName:function(t){return f.test(t)&&RegExp.$1},listScreenNameAndSlug:function(t){var e,n,r;if(h.test(t)){e=RegExp.$1,n=RegExp.$2;try{r=decodeURIComponent(n)}catch(t){}return{ownerScreenName:e,slug:r||n}}return!1},eventId:function(t){return p.test(t)&&RegExp.$1}}},function(t,e){t.exports=document},function(t,e,n){var r=n(0),i=[!0,1,"1","on","ON","true","TRUE","yes","YES"],o=[!1,0,"0","off","OFF","false","FALSE","no","NO"];function s(t){return void 0!==t&&null!==t&&""!==t}function a(t){return c(t)&&t%1==0}function u(t){return c(t)&&!a(t)}function c(t){return s(t)&&!isNaN(t)}function d(t){return r.contains(o,t)}function l(t){return r.contains(i,t)}t.exports={hasValue:s,isInt:a,isFloat:u,isNumber:c,isString:function(t){return"string"===r.toType(t)},isArray:function(t){return s(t)&&"array"==r.toType(t)},isTruthValue:l,isFalseValue:d,asInt:function(t){if(a(t))return parseInt(t,10)},asFloat:function(t){if(u(t))return t},asNumber:function(t){if(c(t))return t},asBoolean:function(t){return!(!s(t)||!l(t)&&(d(t)||!t))}}},function(t,e,n){var r=n(1),i=n(21),o=n(49);i.hasPromiseSupport()||(r.Promise=o),t.exports=r.Promise},function(t,e,n){var r=n(0);t.exports=function(t,e){var n=Array.prototype.slice.call(arguments,2);return function(){var i=r.toRealArray(arguments);return t.apply(e,n.concat(i))}}},function(t,e,n){var r=n(51);t.exports=new r("__twttr")},function(t,e){t.exports=location},function(t,e,n){var r=n(0),i=/\b([\w-_]+)\b/g;function o(t){return new RegExp("\\b"+t+"\\b","g")}function s(t,e){t.classList?t.classList.add(e):o(e).test(t.className)||(t.className+=" "+e)}function a(t,e){t.classList?t.classList.remove(e):t.className=t.className.replace(o(e)," ")}function u(t,e){return t.classList?t.classList.contains(e):r.contains(c(t),e)}function c(t){return r.toRealArray(t.classList?t.classList:t.className.match(i))}t.exports={add:s,remove:a,replace:function(t,e,n){if(t.classList&&u(t,e))return a(t,e),void s(t,n);t.className=t.className.replace(o(e),n)},toggle:function(t,e,n){return void 0===n&&t.classList&&t.classList.toggle?t.classList.toggle(e,n):(n?s(t,e):a(t,e),n)},present:u,list:c}},function(t,e,n){var r=n(5),i=n(0);function o(t){return encodeURIComponent(t).replace(/\+/g,"%2B").replace(/'/g,"%27")}function s(t){return decodeURIComponent(t)}function a(t){var e=[];return i.forIn(t,function(t,n){var s=o(t);i.isType("array",n)||(n=[n]),n.forEach(function(t){r.hasValue(t)&&e.push(s+"="+o(t))})}),e.sort().join("&")}function u(t){var e={};return t?(t.split("&").forEach(function(t){var n=t.split("="),r=s(n[0]),o=s(n[1]);if(2==n.length){if(!i.isType("array",e[r]))return r in e?(e[r]=[e[r]],void e[r].push(o)):void(e[r]=o);e[r].push(o)}}),e):{}}t.exports={url:function(t,e){return a(e).length>0?i.contains(t,"?")?t+"&"+a(e):t+"?"+a(e):t},decodeURL:function(t){var e=t&&t.split("?");return 2==e.length?u(e[1]):{}},decode:u,encode:a,encodePart:o,decodePart:s}},function(t,e,n){var r=n(9),i=n(1),o=n(0),s={},a=o.contains(r.href,"tw_debug=true");function u(){}function c(){}function d(){return i.performance&&+i.performance.now()||+new Date}function l(t,e){if(i.console&&i.console[t])switch(e.length){case 1:i.console[t](e[0]);break;case 2:i.console[t](e[0],e[1]);break;case 3:i.console[t](e[0],e[1],e[2]);break;case 4:i.console[t](e[0],e[1],e[2],e[3]);break;case 5:i.console[t](e[0],e[1],e[2],e[3],e[4]);break;default:0!==e.length&&i.console.warn&&i.console.warn("too many params passed to logger."+t)}}t.exports={devError:u,devInfo:c,devObject:function(t,e){},publicError:function(){l("error",o.toRealArray(arguments))},publicLog:function(){l("info",o.toRealArray(arguments))},publicWarn:function(){l("warn",o.toRealArray(arguments))},time:function(t){a&&(s[t]=d())},timeEnd:function(t){a&&s[t]&&(d(),s[t])}}},function(t,e,n){var r=n(19),i=n(5),o=n(11),s=n(0),a=n(115);t.exports=function(t){var e=t.href&&t.href.split("?")[1],n=e?o.decode(e):{},u={lang:a(t),width:t.getAttribute("data-width")||t.getAttribute("width"),height:t.getAttribute("data-height")||t.getAttribute("height"),related:t.getAttribute("data-related"),partner:t.getAttribute("data-partner")};return i.asBoolean(t.getAttribute("data-dnt"))&&r.setOn(),s.forIn(u,function(t,e){var r=n[t];n[t]=i.hasValue(r)?r:e}),s.compact(n)}},function(t,e,n){var r=n(77),i=n(22);t.exports=function(){var t="data-twitter-extracted-"+i.generate();return function(e,n){return r(e,n).filter(function(e){return!e.hasAttribute(t)}).map(function(e){return e.setAttribute(t,"true"),e})}}},function(t,e){function n(t,e,n,r,i,o,s){this.factory=t,this.Sandbox=e,this.srcEl=o,this.targetEl=i,this.parameters=r,this.className=n,this.options=s}n.prototype.destroy=function(){this.srcEl=this.targetEl=null},t.exports=n},function(t,e){t.exports={DM_BUTTON:"twitter-dm-button",FOLLOW_BUTTON:"twitter-follow-button",HASHTAG_BUTTON:"twitter-hashtag-button",MENTION_BUTTON:"twitter-mention-button",MOMENT:"twitter-moment",PERISCOPE:"periscope-on-air",SHARE_BUTTON:"twitter-share-button",TIMELINE:"twitter-timeline",TWEET:"twitter-tweet"}},function(t,e,n){var r=n(6),i=n(19),o=n(53),s=n(36),a=n(5),u=n(0);t.exports=function(t,e,n){var c;return t=t||[],e=e||{},c="ƒ("+t.join(", ")+", target, [options]);",function(){var d,l,f,h,p=Array.prototype.slice.apply(arguments,[0,t.length]),m=Array.prototype.slice.apply(arguments,[t.length]);return m.forEach(function(t){t&&(t.nodeType!==Node.ELEMENT_NODE?u.isType("function",t)?d=t:u.isType("object",t)&&(l=t):f=t)}),p.length!==t.length||0===m.length?(d&&u.async(function(){d(!1)}),r.reject(new Error("Not enough parameters. Expected: "+c))):f?(l=u.aug({},l||{},e),t.forEach(function(t){l[t]=p.shift()}),a.asBoolean(l.dnt)&&i.setOn(),h=s.getExperiments().then(function(t){return o.addWidget(n(l,f,void 0,t))}),d&&h.then(d,function(){d(!1)}),h):(d&&u.async(function(){d(!1)}),r.reject(new Error("No target element specified. Expected: "+c)))}}},function(t,e,n){var r=n(98),i=n(2),o=n(0);function s(t,e){return function(){try{e.resolve(t.call(this))}catch(t){e.reject(t)}}}t.exports={sync:function(t,e){t.call(e)},read:function(t,e){var n=new i;return r.read(s(t,n),e),n.promise},write:function(t,e){var n=new i;return r.write(s(t,n),e),n.promise},defer:function(t,e,n){var a=new i;return o.isType("function",t)&&(n=e,e=t,t=1),r.defer(t,s(e,a),n),a.promise}}},function(t,e,n){var r=n(4),i=n(9),o=n(38),s=n(102),a=n(5),u=n(33),c=!1,d=/https?:\/\/([^/]+).*/i;t.exports={setOn:function(){c=!0},enabled:function(t,e){return!!(c||a.asBoolean(u.val("dnt"))||s.isUrlSensitive(e||i.host)||o.isFramed()&&s.isUrlSensitive(o.rootDocumentLocation())||(t=d.test(t||r.referrer)&&RegExp.$1)&&s.isUrlSensitive(t))}}},function(t,e,n){var r=n(8),i=n(59),o="https://syndication.twitter.com",s="https://platform.twitter.com",a=["https://syndication.twitter.com","https://cdn.syndication.twimg.com","https://localhost.twitter.com:8444"],u=["https://syndication.twitter.com","https://localhost.twitter.com:8445"],c=["https://platform.twitter.com","https://localhost.twitter.com",/^https:\/\/ton\.smf1\.twitter\.com\/syndication-internal\/embed-iframe\/[0-9A-Za-z_-]+\/app/],d=function(t,e){return t.some(function(t){return t instanceof RegExp?t.test(e):t===e})},l=function(){var t=r.get("backendHost");return t&&d(a,t)?t:"https://cdn.syndication.twimg.com"},f=function(){var t=r.get("settingsSvcHost");return t&&d(u,t)?t:o};function h(t,e){var n=[t];return e.forEach(function(t){n.push(function(t){var e=(t||"").toString(),n="/"===e.slice(0,1)?1:0,r=function(t){return"/"===t.slice(-1)}(e)?-1:void 0;return e.slice(n,r)}(t))}),n.join("/")}t.exports={cookieConsent:function(t){var e=t||[];return e.unshift("cookie/consent"),h(f(),e)},embedIframe:function(t,e){var n=t||[],o=s,a=r.get("embedIframeURL");return a&&d(c,a)?h(a,n)+".html":(n.unshift(i.getBaseURLPath(e)),h(o,n)+".html")},embedService:function(t){var e=t||[],n=o;return e.unshift("srv"),h(n,e)},eventVideo:function(t){var e=t||[];return e.unshift("video/event"),h(l(),e)},grid:function(t){var e=t||[];return e.unshift("grid/collection"),h(l(),e)},moment:function(t){var e=t||[];return e.unshift("moments"),h(l(),e)},settings:function(t){var e=t||[];return e.unshift("settings"),h(f(),e)},timeline:function(t){var e=t||[];return e.unshift("timeline"),h(l(),e)},tweetBatch:function(t){var e=t||[];return e.unshift("tweets.json"),h(l(),e)},video:function(t){var e=t||[];return e.unshift("widgets/video"),h(l(),e)}}},function(t,e,n){var r=n(4),i=n(92),o=n(1),s=n(0),a=i.userAgent;function u(t){return/(Trident|MSIE|Edge[/ ]?\d)/.test(t=t||a)}t.exports={retina:function(t){return(t=t||o).devicePixelRatio?t.devicePixelRatio>=1.5:!!t.matchMedia&&t.matchMedia("only screen and (min-resolution: 144dpi)").matches},anyIE:u,ie9:function(t){return/MSIE 9/.test(t=t||a)},ie10:function(t){return/MSIE 10/.test(t=t||a)},ios:function(t){return/(iPad|iPhone|iPod)/.test(t=t||a)},android:function(t){return/^Mozilla\/5\.0 \(Linux; (U; )?Android/.test(t=t||a)},canPostMessage:function(t,e){return t=t||o,e=e||a,t.postMessage&&!(u(e)&&t.opener)},touch:function(t,e,n){return t=t||o,e=e||i,n=n||a,"ontouchstart"in t||/Opera Mini/.test(n)||e.msMaxTouchPoints>0},cssTransitions:function(){var t=r.body.style;return void 0!==t.transition||void 0!==t.webkitTransition||void 0!==t.mozTransition||void 0!==t.oTransition||void 0!==t.msTransition},hasPromiseSupport:function(){return!!(o.Promise&&o.Promise.resolve&&o.Promise.reject&&o.Promise.all&&o.Promise.race&&(new o.Promise(function(e){t=e}),s.isType("function",t)));var t},hasIntersectionObserverSupport:function(){return!!o.IntersectionObserver},hasPerformanceInformation:function(){return o.performance&&o.performance.getEntriesByType}}},function(t,e){var n="i",r=0,i=0;t.exports={generate:function(){return n+String(+new Date)+Math.floor(1e5*Math.random())+r++},deterministic:function(){return n+String(i++)}}},function(t,e,n){var r=n(50),i=n(52),o=n(0);t.exports=o.aug(r.get("events")||{},i.Emitter)},function(t,e,n){var r=n(6),i=n(2);function o(t,e){return t.then(e,e)}function s(t){return t instanceof r}t.exports={always:o,allResolved:function(t){var e;return void 0===t?r.reject(new Error("undefined is not an object")):Array.isArray(t)?(e=t.length)?new r(function(n,r){var i=0,o=[];function a(){(i+=1)===e&&(0===o.length?r():n(o))}function u(t){o.push(t),a()}t.forEach(function(t){s(t)?t.then(u,a):u(t)})}):r.resolve([]):r.reject(new Error("Type error"))},some:function(t){var e;return e=(t=t||[]).length,t=t.filter(s),e?e!==t.length?r.reject("non-Promise passed to .some"):new r(function(e,n){var r=0;function i(){(r+=1)===t.length&&n()}t.forEach(function(t){t.then(e,i)})}):r.reject("no promises passed to .some")},isPromise:s,allSettled:function(t){function e(){}return r.all((t||[]).map(function(t){return o(t,e)}))},timeout:function(t,e){var n=new i;return setTimeout(function(){n.reject(new Error("Promise timed out"))},e),t.then(function(t){n.resolve(t)},function(t){n.reject(t)}),n.promise}}},function(t,e,n){var r=n(1).JSON;t.exports={stringify:r.stringify||r.encode,parse:r.parse||r.decode}},function(t,e,n){var r=n(27),i=n(108);t.exports=r.build([i])},function(t,e,n){var r=n(39),i=n(105),o=n(7);(r=Object.create(r)).build=o(r.build,null,i),t.exports=r},function(t,e,n){var r=n(39),i=n(40),o=n(7);(r=Object.create(r)).build=o(r.build,null,i),t.exports=r},function(t,e,n){var r=n(79),i=n(80),o=n(81),s=n(9),a=n(71),u=n(82),c=n(19),d=n(5),l=n(22),f=n(0);function h(t){if(!t||!t.headers)throw new Error("unexpected response schema");return{html:t.body,config:t.config,pollInterval:1e3*parseInt(t.headers.xPolling,10)||null,maxCursorPosition:t.headers.maxPosition,minCursorPosition:t.headers.minPosition}}function p(t){if(t&&t.headers)throw new Error(t.headers.status);throw t instanceof Error?t:new Error(t)}t.exports=function(t){t.params({height:{transform:d.asInt},instanceId:{required:!0,fallback:l.deterministic},lang:{required:!0,transform:a.matchLanguage,fallback:"en"},theme:{},tweetLimit:{transform:d.asInt}}),t.defineProperty("endpoint",{get:function(){throw new Error("endpoint not specified")}}),t.defineProperty("pollEndpoint",{get:function(){return this.endpoint}}),t.define("cbId",function(t){var e=t?"_new":"_old";return"tl_"+this.params.instanceId+"_"+this.id+e}),t.define("queryParams",function(){return{lang:this.params.lang,tz:u.getTimezoneOffset(),t:r(),domain:s.host,tweet_limit:this.params.tweetLimit,dnt:c.enabled()}}),t.define("horizonQueryParams",function(){return f.compact({dnt:c.enabled(),limit:this.params.tweetLimit,lang:this.params.lang,maxHeight:this.params.height,theme:this.params.theme})}),t.define("fetch",function(){return i.fetch(this.endpoint,this.queryParams(),o,this.cbId()).then(h,p)}),t.define("poll",function(t,e){var n,r;return n={since_id:(t=t||{}).sinceId,max_id:t.maxId,min_position:t.minPosition,max_position:t.maxPosition},r=f.aug(this.queryParams(),n),i.fetch(this.pollEndpoint,r,o,this.cbId(e)).then(h,p)})}},function(t,e,n){var r=n(52).makeEmitter();t.exports={emitter:r,START:"start",ALL_WIDGETS_RENDER_START:"all_widgets_render_start",ALL_WIDGETS_RENDER_END:"all_widgets_render_end",ALL_WIDGETS_AND_IMAGES_LOADED:"all_widgets_and_images_loaded"}},function(t,e,n){var r=n(4),i=n(0);t.exports=function(t,e,n){var o;if(n=n||r,t=t||{},e=e||{},t.name){try{o=n.createElement('')}catch(e){(o=n.createElement("iframe")).name=t.name}delete t.name}else o=n.createElement("iframe");return t.id&&(o.id=t.id,delete t.id),o.allowtransparency="true",o.scrolling="no",o.setAttribute("frameBorder",0),o.setAttribute("allowTransparency",!0),i.forIn(t,function(t,e){o.setAttribute(t,e)}),i.forIn(e,function(t,e){o.style[t]=e}),o}},function(t,e,n){var r=n(27),i=n(122);t.exports=r.build([i])},function(t,e,n){var r,i=n(4);function o(t){var e,n,o,s=0;for(r={},e=(t=t||i).getElementsByTagName("meta");e[s];s++){if(n=e[s],/^twitter:/.test(n.getAttribute("name")))o=n.getAttribute("name").replace(/^twitter:/,"");else{if(!/^twitter:/.test(n.getAttribute("property")))continue;o=n.getAttribute("property").replace(/^twitter:/,"")}r[o]=n.getAttribute("content")||n.getAttribute("value")}}o(),t.exports={init:o,val:function(t){return r[t]}}},function(t,e,n){var r=n(0),i=n(45);t.exports={closest:function t(e,n,o){var s;if(n)return o=o||n&&n.ownerDocument,s=r.isType("function",e)?e:function(t){return function(e){return!!e.tagName&&i(e,t)}}(e),n===o?s(n)?n:void 0:s(n)?n:t(s,n.parentNode,o)}}},function(t,e,n){var r=n(10),i={},o=-1,s={};function a(t){var e=t.getAttribute("data-twitter-event-id");return e||(t.setAttribute("data-twitter-event-id",++o),o)}function u(t,e,n){var r=0,i=t&&t.length||0;for(r=0;r1?(e=Math.floor(t.item_ids.length/2),n=t.item_ids.slice(0,e),r={},i=t.item_ids.slice(e),o={},n.forEach(function(e){r[e]=t.item_details[e]}),i.forEach(function(e){o[e]=t.item_details[e]}),[l.aug({},t,{item_ids:n,item_details:r}),l.aug({},t,{item_ids:i,item_details:o})]):[t]},stringify:function(t){var e,n=Array.prototype.toJSON;return delete Array.prototype.toJSON,e=u.stringify(t),n&&(Array.prototype.toJSON=n),e},CLIENT_EVENT_ENDPOINT:p,RUFOUS_REDIRECT:"https://platform.twitter.com/jot.html"}},function(t,e,n){var r=n(9),i=n(75),o=n(0),s=i.getCanonicalURL()||r.href,a=s;t.exports={isFramed:function(){return s!==a},rootDocumentLocation:function(t){return t&&o.isType("string",t)&&(s=t),s},currentDocumentLocation:function(){return a}}},function(t,e,n){var r=n(103),i=n(104),o=n(0);t.exports={couple:function(){return o.toRealArray(arguments)},build:function(t,e,n){var o=new t;return(e=i(r(e||[]))).forEach(function(t){t.call(null,o)}),o.build(n)}}},function(t,e,n){var r=n(106),i=n(0),o=n(41);function s(){this.Component=this.factory(),this._adviceArgs=[],this._lastArgs=[]}i.aug(s.prototype,{factory:o,build:function(t){var e=this;return this.Component,i.aug(this.Component.prototype.boundParams,t),this._adviceArgs.concat(this._lastArgs).forEach(function(t){(function(t,e,n){var r=this[e];if(!r)throw new Error(e+" does not exist");this[e]=t(r,n)}).apply(e.Component.prototype,t)}),delete this._lastArgs,delete this._adviceArgs,this.Component},params:function(t){var e=this.Component.prototype.paramConfigs;t=t||{},this.Component.prototype.paramConfigs=i.aug({},t,e)},define:function(t,e){if(t in this.Component.prototype)throw new Error(t+" has previously been defined");this.override(t,e)},defineStatic:function(t,e){this.Component[t]=e},override:function(t,e){this.Component.prototype[t]=e},defineProperty:function(t,e){if(t in this.Component.prototype)throw new Error(t+" has previously been defined");this.overrideProperty(t,e)},overrideProperty:function(t,e){var n=i.aug({configurable:!0},e);Object.defineProperty(this.Component.prototype,t,n)},before:function(t,e){this._adviceArgs.push([r.before,t,e])},after:function(t,e){this._adviceArgs.push([r.after,t,e])},around:function(t,e){this._adviceArgs.push([r.around,t,e])},last:function(t,e){this._lastArgs.push([r.after,t,e])}}),t.exports=s},function(t,e,n){var r=n(0);function i(){return!0}function o(t){return t}t.exports=function(){function t(t){var e=this;t=t||{},this.params=Object.keys(this.paramConfigs).reduce(function(n,s){var a=[],u=e.boundParams,c=e.paramConfigs[s],d=c.validate||i,l=c.transform||o;if(s in u&&a.push(u[s]),s in t&&a.push(t[s]),a="fallback"in c?a.concat(c.fallback):a,n[s]=function(t,e,n){var i=null;return t.some(function(t){if(t=r.isType("function",t)?t():t,e(t))return i=n(t),!0}),i}(a,d,l),c.required&&null==n[s])throw new Error(s+" is a required parameter");return n},{}),this.initialize()}return r.aug(t.prototype,{paramConfigs:{},boundParams:{},initialize:function(){}}),t}},function(t,e,n){var r=n(101),i=n(76),o=new(n(110))(function(t){(!function(t){return 1===t.length&&i.canFlushOneItem(t[0])}(t)?function(t){r.init(),t.forEach(function(t){var e=t.input.namespace,n=t.input.data,i=t.input.offsite,o=t.input.version;r.clientEvent(e,n,i,o)}),r.flush().then(function(){t.forEach(function(t){t.taskDoneDeferred.resolve()})},function(){t.forEach(function(t){t.taskDoneDeferred.reject()})})}:function(t){t.forEach(function(t){var e=t.input.namespace,n=t.input.data,r=t.input.offsite,o=t.input.version;i.clientEvent(e,n,r,o),t.taskDoneDeferred.resolve()})})(t)});t.exports={scribe:function(t,e,n,r){return o.add({namespace:t,data:e,offsite:n,version:r})},pause:function(){o.pause()},resume:function(){o.resume()}}},function(t,e,n){var r,i=n(10),o=n(4),s=n(1),a=n(33),u=n(54),c=n(5),d=n(22),l="csptest";t.exports={inlineStyle:function(){var t=l+d.generate(),e=o.createElement("div"),n=o.createElement("style"),f="."+t+" { visibility: hidden; }";return!!o.body&&(c.asBoolean(a.val("widgets:csp"))&&(r=!1),void 0!==r?r:(e.style.display="none",i.add(e,t),n.type="text/css",n.appendChild(o.createTextNode(f)),o.body.appendChild(n),o.body.appendChild(e),r="hidden"===s.getComputedStyle(e).visibility,u(e),u(n),r))}}},function(t,e,n){var r=n(1);t.exports=function(t,e,n){var i,o=0;return n=n||null,function s(){var a=n||this,u=arguments,c=+new Date;if(r.clearTimeout(i),c-o>e)return o=c,void t.apply(a,u);i=r.setTimeout(function(){s.apply(a,u)},e)}}},function(t,e,n){var r=n(1).HTMLElement,i=r.prototype.matches||r.prototype.matchesSelector||r.prototype.webkitMatchesSelector||r.prototype.mozMatchesSelector||r.prototype.msMatchesSelector||r.prototype.oMatchesSelector;t.exports=function(t,e){if(i)return i.call(t,e)}},function(t){t.exports={version:"9fd78d5:1638479056965"}},function(t,e){t.exports=function(t){var e=t.getBoundingClientRect();return{width:e.width,height:e.height}}},function(t,e,n){var r=n(12).publicWarn;t.exports=function(){r("Warning: This Timeline type belongs to a group that will not be supported in the future (Likes, Collections, & Moments). It is not recommended for use. \n\t","* Twitter will continue to support Profile and List Timelines \n\t","* You can learn more about this change in our announcement: \n\t","https://twittercommunity.com/t/removing-support-for-embedded-like-collection-and-moment-timelines/150313 \n\t","* In order to create a new Embedded Timeline, visit: https://publish.twitter.com")}},function(t,e,n){
+/*!
+* @overview es6-promise - a tiny implementation of Promises/A+.
+* @copyright Copyright (c) 2014 Yehuda Katz, Tom Dale, Stefan Penner and contributors (Conversion to ES6 API by Jake Archibald)
+* @license Licensed under MIT license
+* See https://raw.githubusercontent.com/stefanpenner/es6-promise/master/LICENSE
+* @version v4.2.5+7f2b526d
+*/var r;r=function(){"use strict";function t(t){return"function"==typeof t}var e=Array.isArray?Array.isArray:function(t){return"[object Array]"===Object.prototype.toString.call(t)},n=0,r=void 0,i=void 0,o=function(t,e){f[n]=t,f[n+1]=e,2===(n+=2)&&(i?i(h):w())},s="undefined"!=typeof window?window:void 0,a=s||{},u=a.MutationObserver||a.WebKitMutationObserver,c="undefined"==typeof self&&"undefined"!=typeof process&&"[object process]"==={}.toString.call(process),d="undefined"!=typeof Uint8ClampedArray&&"undefined"!=typeof importScripts&&"undefined"!=typeof MessageChannel;function l(){var t=setTimeout;return function(){return t(h,1)}}var f=new Array(1e3);function h(){for(var t=0;t=0&&this._handlers[t].splice(n,1):this._handlers[t]=[])},trigger:function(t,e){var n=this._handlers&&this._handlers[t];(e=e||{}).type=t,n&&n.forEach(function(t){r.async(i(t,this,e))})}};t.exports={Emitter:o,makeEmitter:function(){return r.aug(function(){},o)}}},function(t,e,n){var r=n(97),i=n(99),o=n(6),s=n(24),a=n(7),u=n(0),c=new i(function(t){var e=function(t){return t.reduce(function(t,e){return t[e._className]=t[e._className]||[],t[e._className].push(e),t},{})}(t.map(r.fromRawTask));u.forIn(e,function(t,e){s.allSettled(e.map(function(t){return t.initialize()})).then(function(){e.forEach(function(t){o.all([t.hydrate(),t.insertIntoDom()]).then(a(t.render,t)).then(a(t.success,t),a(t.fail,t))})})})});t.exports={addWidget:function(t){return c.add(t)}}},function(t,e,n){var r=n(18);t.exports=function(t){return r.write(function(){t&&t.parentNode&&t.parentNode.removeChild(t)})}},function(t,e,n){n(12),t.exports={log:function(t,e){}}},function(t,e,n){var r=n(1);function i(t){return(t=t||r).getSelection&&t.getSelection()}t.exports={getSelection:i,getSelectedText:function(t){var e=i(t);return e?e.toString():""}}},function(t,e,n){var r=n(4),i=n(1),o=n(2),s=2e4;t.exports=function(t){var e=new o,n=r.createElement("img");return n.onload=n.onerror=function(){i.setTimeout(e.resolve,50)},n.src=t,i.setTimeout(e.reject,s),e.promise}},function(t,e,n){var r=n(109);t.exports=function(t){t.define("createElement",r),t.define("createFragment",r),t.define("htmlToElement",r),t.define("hasSelectedText",r),t.define("addRootClass",r),t.define("removeRootClass",r),t.define("hasRootClass",r),t.define("prependStyleSheet",r),t.define("appendStyleSheet",r),t.define("prependCss",r),t.define("appendCss",r),t.define("makeVisible",r),t.define("injectWidgetEl",r),t.define("matchHeightToContent",r),t.define("matchWidthToContent",r)}},function(t,e){var n="tfw_horizon_tweet_embed_9555",r="tfw_horizon_timeline_12034";t.exports={getBaseURLPath:function(t){switch(t&&t.tfw_team_holdback_11929&&t.tfw_team_holdback_11929.bucket){case"control":return"embed-holdback";case"holdback_prod":return"embed-holdback-prod";default:return"embed"}},isHorizonTweetEnabled:function(t){return!(t&&t[n]&&"control"===t[n].bucket)},isHorizonTimelineEnabled:function(t,e){return t&&t[r]&&"treatment"===t[r].bucket&&("profile"===e||"list"===e)}}},function(t,e){t.exports=function(t){var e,n=!1;return function(){return n?e:(n=!0,e=t.apply(this,arguments))}}},function(t,e,n){var r=n(15),i=n(116),o=n(117),s=n(16);t.exports=function(t,e,n){return new r(i,o,s.DM_BUTTON,t,e,n)}},function(t,e,n){var r=n(27),i=n(118);t.exports=r.build([i])},function(t,e,n){var r=n(15),i=n(121),o=n(32),s=n(16);t.exports=function(t,e,n){return new r(i,o,s.FOLLOW_BUTTON,t,e,n)}},function(t,e,n){var r=n(15),i=n(129),o=n(26),s=n(16);t.exports=function(t,e,n){return new r(i,o,s.MOMENT,t,e,n)}},function(t,e,n){var r=n(15),i=n(131),o=n(26),s=n(16);t.exports=function(t,e,n){return new r(i,o,s.PERISCOPE,t,e,n)}},function(t,e,n){var r=n(78),i=n(133),o=n(137),s=n(139),a=n(141),u=n(143),c={collection:i,event:o,likes:s,list:a,profile:u,url:l},d=[u,s,i,a,o];function l(t){return r(d,function(e){try{return new e(t)}catch(t){}})}t.exports=function(t){return t?function(t){var e,n;return e=(t.sourceType+"").toLowerCase(),(n=c[e])?new n(t):null}(t)||l(t):null}},function(t,e,n){var r=n(4),i=n(59),o=n(15),s=n(145),a=n(32),u=n(146),c=n(26),d=n(147),l=n(16);t.exports=function(t,e,n,f){var h,p=s.get(t.id);return i.isHorizonTimelineEnabled(f,p)?(h=r.createElement("div"),new o(u,a,l.TIMELINE,t,e,n,{sandboxWrapperEl:h})):new o(d,c,l.TIMELINE,t,e,n)}},function(t,e,n){var r=n(4),i=n(15),o=n(32),s=n(149),a=n(16);t.exports=function(t,e,n){var u=r.createElement("div");return new i(s,o,a.TWEET,t,e,n,{sandboxWrapperEl:u})}},function(t,e,n){var r=n(15),i=n(151),o=n(32),s=n(16);t.exports=function(t,e,n){var a=t&&t.type||"share",u="hashtag"==a?s.HASHTAG_BUTTON:"mention"==a?s.MENTION_BUTTON:s.SHARE_BUTTON;return new r(i,o,u,t,e,n)}},function(t,e,n){var r=n(42),i=n(38),o=n(0);t.exports=function(t){var e={widget_origin:i.rootDocumentLocation(),widget_frame:i.isFramed()?i.currentDocumentLocation():null,duration_ms:t.duration,item_ids:t.widgetIds||[]},n=o.aug(t.namespace,{page:"page",component:"performance"});r.scribe(n,e)}},function(t,e,n){var r=n(0),i=n(134),o=["ar","fa","he","ur"];t.exports={isRtlLang:function(t){return t=String(t).toLowerCase(),r.contains(o,t)},matchLanguage:function(t){return t=(t=(t||"").toLowerCase()).replace("_","-"),i(t)?t:(t=t.replace(/-.*/,""),i(t)?t:"en")}}},function(t){t.exports={tweetButtonHtmlPath:"/widgets/tweet_button.21f942bb866c2823339b839747a0c50c.{{lang}}.html",followButtonHtmlPath:"/widgets/follow_button.21f942bb866c2823339b839747a0c50c.{{lang}}.html",hubHtmlPath:"/widgets/hub.html",widgetIframeHtmlPath:"/widgets/widget_iframe.21f942bb866c2823339b839747a0c50c.html",resourceBaseUrl:"https://platform.twitter.com"}},function(t){t.exports={TWEET:0,RETWEET:10,CUSTOM_TIMELINE:17,LIVE_VIDEO_EVENT:28,QUOTE_TWEET:23}},function(t,e,n){var r=n(3),i=n(95),o=n(23),s=n(11),a={favorite:["favorite","like"],follow:["follow"],like:["favorite","like"],retweet:["retweet"],tweet:["tweet"]};function u(t){this.srcEl=[],this.element=t}u.open=function(t,e,n){var u=(r.intentType(t)||"").toLowerCase();r.isTwitterURL(t)&&(function(t,e){i.open(t,e)}(t,n),e&&o.trigger("click",{target:e,region:"intent",type:"click",data:{}}),e&&a[u]&&a[u].forEach(function(n){o.trigger(n,{target:e,region:"intent",type:n,data:function(t,e){var n=s.decodeURL(e);switch(t){case"favorite":case"like":return{tweet_id:n.tweet_id};case"follow":return{screen_name:n.screen_name,user_id:n.user_id};case"retweet":return{source_tweet_id:n.tweet_id};default:return{}}}(u,t)})}))},t.exports=u},function(t,e,n){var r=n(4),i=n(9),o=n(3);function s(t,e){var n,r;return e=e||i,/^https?:\/\//.test(t)?t:/^\/\//.test(t)?e.protocol+t:(n=e.host+(e.port.length?":"+e.port:""),0!==t.indexOf("/")&&((r=e.pathname.split("/")).pop(),r.push(t),t="/"+r.join("/")),[e.protocol,"//",n,t].join(""))}t.exports={absolutize:s,getCanonicalURL:function(){for(var t,e=r.getElementsByTagName("link"),n=0;e[n];n++)if("canonical"==(t=e[n]).rel)return s(t.href)},getScreenNameFromPage:function(){for(var t,e,n,i=[r.getElementsByTagName("a"),r.getElementsByTagName("link")],s=0,a=0,u=/\bme\b/;t=i[s];s++)for(a=0;e=t[a];a++)if(u.test(e.rel)&&(n=o.screenName(e.href)))return n}}},function(t,e,n){var r=n(19),i=n(55),o=n(11),s=n(37),a=n(0),u=n(8).get("scribeCallback"),c=2083,d=[],l=o.url(s.CLIENT_EVENT_ENDPOINT,{dnt:0,l:""}),f=encodeURIComponent(l).length;function h(t,e,n,r,i){var o=!a.isObject(t),c=!!e&&!a.isObject(e);o||c||(u&&u(arguments),p(s.formatClientEventNamespace(t),s.formatClientEventData(e,n,r),s.CLIENT_EVENT_ENDPOINT,i))}function p(t,e,n,r){var u;n&&a.isObject(t)&&a.isObject(e)&&(i.log(t,e),u=s.flattenClientEventPayload(t,e),r=a.aug({},r,{l:s.stringify(u)}),u.dnt&&(r.dnt=1),w(o.url(n,r)))}function m(t,e,n,r){var i=!a.isObject(t),o=!!e&&!a.isObject(e);if(!i&&!o)return v(s.flattenClientEventPayload(s.formatClientEventNamespace(t),s.formatClientEventData(e,n,r)))}function v(t){return d.push(t),d}function g(t){return encodeURIComponent(t).length+3}function w(t){return(new Image).src=t}t.exports={canFlushOneItem:function(t){var e=g(s.stringify(t));return f+e1&&m({page:"widgets_js",component:"scribe_pixel",action:"batch_log"},{}),t=d,d=[],t.reduce(function(e,n,r){var i=e.length,o=i&&e[i-1];return r+1==t.length&&n.event_namespace&&"batch_log"==n.event_namespace.action&&(n.message=["entries:"+r,"requests:"+i].join("/")),function t(e){return Array.isArray(e)||(e=[e]),e.reduce(function(e,n){var r,i=s.stringify(n),o=g(i);return f+o1&&(e=e.concat(t(r))),e},[])}(n).forEach(function(t){var n=g(t);(!o||o.urlLength+n>c)&&(o={urlLength:f,items:[]},e.push(o)),o.urlLength+=n,o.items.push(t)}),e},[]).map(function(t){var e={l:t.items};return r.enabled()&&(e.dnt=1),w(o.url(s.CLIENT_EVENT_ENDPOINT,e))})},interaction:function(t,e,n,r){var i=s.extractTermsFromDOM(t.target||t.srcElement);i.action=r||"click",h(i,e,n)}}},function(t,e,n){var r=n(0),i=n(45);t.exports=function(t,e){return i(t,e)?[t]:r.toRealArray(t.querySelectorAll(e))}},function(t,e){t.exports=function(t,e,n){for(var r,i=0;i")}).then(function(){t.close(),a.resolve(c)})}),c.src=["javascript:",'document.write("");',"try { window.parent.document; }",'catch (e) { document.domain="'+r.domain+'"; }',"window.parent."+g.fullPath(["sandbox",u])+"();"].join(""),c.addEventListener("error",a.reject,!1),o.write(function(){i.parentNode.replaceChild(c,i)}),a.promise}t.exports=a.couple(n(58),function(t){t.overrideProperty("id",{get:function(){return this.sandboxEl&&this.sandboxEl.id}}),t.overrideProperty("initialized",{get:function(){return!!this.win}}),t.overrideProperty("width",{get:function(){return this._width}}),t.overrideProperty("height",{get:function(){return this._height}}),t.overrideProperty("sandboxEl",{get:function(){return this.iframeEl}}),t.defineProperty("iframeEl",{get:function(){return this._iframe}}),t.defineProperty("rootEl",{get:function(){return this.doc&&this.doc.documentElement}}),t.defineProperty("widgetEl",{get:function(){return this.doc&&this.doc.body.firstElementChild}}),t.defineProperty("win",{get:function(){return this.iframeEl&&this.iframeEl.contentWindow}}),t.defineProperty("doc",{get:function(){return this.win&&this.win.document}}),t.define("_updateCachedDimensions",function(){var t=this;return o.read(function(){var e,n=h(t.sandboxEl);"visible"==t.sandboxEl.style.visibility?t._width=n.width:(e=h(t.sandboxEl.parentElement).width,t._width=Math.min(n.width,e)),t._height=n.height})}),t.define("_setTargetToBlank",function(){var t=this.createElement("base");t.target="_blank",this.doc.head.appendChild(t)}),t.define("_didResize",function(){var t=this,e=this._resizeHandlers.slice(0);return this._updateCachedDimensions().then(function(){e.forEach(function(e){e(t)})})}),t.define("setTitle",function(t){this.iframeEl.title=t}),t.override("createElement",function(t){return this.doc.createElement(t)}),t.override("createFragment",function(){return this.doc.createDocumentFragment()}),t.override("htmlToElement",function(t){var e;return(e=this.createElement("div")).innerHTML=t,e.firstElementChild}),t.override("hasSelectedText",function(){return!!s.getSelectedText(this.win)}),t.override("addRootClass",function(t){var e=this.rootEl;return t=Array.isArray(t)?t:[t],this.initialized?o.write(function(){t.forEach(function(t){i.add(e,t)})}):m.reject(new Error("sandbox not initialized"))}),t.override("removeRootClass",function(t){var e=this.rootEl;return t=Array.isArray(t)?t:[t],this.initialized?o.write(function(){t.forEach(function(t){i.remove(e,t)})}):m.reject(new Error("sandbox not initialized"))}),t.override("hasRootClass",function(t){return i.present(this.rootEl,t)}),t.define("addStyleSheet",function(t,e){var n,r=new p;return this.initialized?((n=this.createElement("link")).type="text/css",n.rel="stylesheet",n.href=t,n.addEventListener("load",r.resolve,!1),n.addEventListener("error",r.reject,!1),o.write(y(e,null,n)).then(function(){return u(t).then(r.resolve,r.reject),r.promise})):m.reject(new Error("sandbox not initialized"))}),t.override("prependStyleSheet",function(t){var e=this.doc;return this.addStyleSheet(t,function(t){var n=e.head.firstElementChild;return n?e.head.insertBefore(t,n):e.head.appendChild(t)})}),t.override("appendStyleSheet",function(t){var e=this.doc;return this.addStyleSheet(t,function(t){return e.head.appendChild(t)})}),t.define("addCss",function(t,e){var n;return c.inlineStyle()?((n=this.createElement("style")).type="text/css",n.appendChild(this.doc.createTextNode(t)),o.write(y(e,null,n))):(f.devError("CSP enabled; cannot embed inline styles"),m.resolve())}),t.override("prependCss",function(t){var e=this.doc;return this.addCss(t,function(t){var n=e.head.firstElementChild;return n?e.head.insertBefore(t,n):e.head.appendChild(t)})}),t.override("appendCss",function(t){var e=this.doc;return this.addCss(t,function(t){return e.head.appendChild(t)})}),t.override("makeVisible",function(){var t=this;return this.styleSelf(E).then(function(){t._updateCachedDimensions()})}),t.override("injectWidgetEl",function(t){var e=this;return this.initialized?this.widgetEl?m.reject(new Error("widget already injected")):o.write(function(){e.doc.body.appendChild(t)}):m.reject(new Error("sandbox not initialized"))}),t.override("matchHeightToContent",function(){var t,e=this;return o.read(function(){t=e.widgetEl?h(e.widgetEl).height:0}),o.write(function(){e.sandboxEl.style.height=t+"px"}).then(function(){return e._updateCachedDimensions()})}),t.override("matchWidthToContent",function(){var t,e=this;return o.read(function(){t=e.widgetEl?h(e.widgetEl).width:0}),o.write(function(){e.sandboxEl.style.width=t+"px"}).then(function(){return e._updateCachedDimensions()})}),t.after("initialize",function(){this._iframe=null,this._width=this._height=0,this._resizeHandlers=[]}),t.override("insert",function(t,e,n,r){var i=this,s=new p,a=this.targetGlobal.document,u=S(t,e,n,a);return o.write(y(r,null,u)),u.addEventListener("load",function(){(function(t){try{t.contentWindow.document}catch(t){return m.reject(t)}return m.resolve(t)})(u).then(null,y(R,null,t,e,n,u,a)).then(s.resolve,s.reject)},!1),u.addEventListener("error",s.reject,!1),s.promise.then(function(t){var e=d(i._didResize,A,i);return i._iframe=t,i.win.addEventListener("resize",e,!1),m.all([i._setTargetToBlank(),i.addRootClass(x),i.prependCss(T)])})}),t.override("onResize",function(t){this._resizeHandlers.push(t)}),t.after("styleSelf",function(){return this._updateCachedDimensions()})})},function(t,e){t.exports=function(){throw new Error("unimplemented method")}},function(t,e,n){var r=n(2),i=n(7),o=100,s=3e3;function a(t,e){this._inputsQueue=[],this._task=t,this._isPaused=!1,this._flushDelay=e&&e.flushDelay||o,this._pauseLength=e&&e.pauseLength||s,this._flushTimeout=void 0}a.prototype.add=function(t){var e=new r;return this._inputsQueue.push({input:t,taskDoneDeferred:e}),this._scheduleFlush(),e.promise},a.prototype._scheduleFlush=function(){this._isPaused||(clearTimeout(this._flushTimeout),this._flushTimeout=setTimeout(i(this._flush,this),this._flushDelay))},a.prototype._flush=function(){try{this._task.call(null,this._inputsQueue)}catch(t){this._inputsQueue.forEach(function(e){e.taskDoneDeferred.reject(t)})}this._inputsQueue=[],this._flushTimeout=void 0},a.prototype.pause=function(t){clearTimeout(this._flushTimeout),this._isPaused=!0,!t&&this._pauseLength&&setTimeout(i(this.resume,this),this._pauseLength)},a.prototype.resume=function(){this._isPaused=!1,this._scheduleFlush()},t.exports=a},function(t,e,n){var r=n(72),i=n(31),o=n(2),s=n(4),a=n(20),u=n(21),c=n(25),d=n(9),l=n(12),f=n(112),h=n(60),p=n(8),m=n(11),v=n(3),g=n(0),w=n(1),y=h(function(){return new o}),b={shouldObtainCookieConsent:!1,features:{}};t.exports={load:function(){var t,e,n,o;if(u.ie9()||u.ie10()||"http:"!==d.protocol&&"https:"!==d.protocol)return l.devError("Using default settings due to unsupported browser or protocol."),void y().resolve();t={origin:d.origin},a.settings().indexOf("localhost")>-1&&(t.localSettings=!0),e=m.url(r.resourceBaseUrl+r.widgetIframeHtmlPath,t),n=function(t){var n,r,i,o;if(r=v.isTwitterURL(t.origin),i=e.substr(0,t.origin.length)===t.origin,o=v.isTwimgURL(t.origin),i&&r||o)try{(n="string"==typeof t.data?c.parse(t.data):t.data).namespace===f.settings&&(b=g.aug(b,{features:n.settings.features,sessionId:n.sessionId}),y().resolve())}catch(t){l.devError(t)}},w.addEventListener("message",n),o=i({src:e,title:"Twitter settings iframe"},{display:"none"}),s.body.appendChild(o)},settingsLoaded:function(){var t,e;return t=p.get("experimentOverride"),y().promise.then(function(){return t&&t.name&&t.assignment&&((e={})[t.name]={bucket:t.assignment},b.features=g.aug(b.features,e)),b})}}},function(t,e){t.exports={settings:"twttr.settings"}},function(t,e,n){t.exports=[n(114),n(120),n(128),n(130),n(132),n(148),n(150)]},function(t,e,n){var r=n(11),i=n(5),o=n(0),s=n(13),a=n(14)(),u=n(61),c="a.twitter-dm-button";t.exports=function(t){return a(t,c).map(function(t){return u(function(t){var e=t.getAttribute("data-show-screen-name"),n=s(t),a=t.getAttribute("href"),u=t.getAttribute("data-screen-name"),c=e?i.asBoolean(e):null,d=t.getAttribute("data-size"),l=r.decodeURL(a),f=l.recipient_id,h=t.getAttribute("data-text")||l.text,p=t.getAttribute("data-welcome-message-id")||l.welcomeMessageId;return o.aug(n,{screenName:u,showScreenName:c,size:d,text:h,userId:f,welcomeMessageId:p})}(t),t.parentNode,t)})}},function(t,e,n){var r=n(0);t.exports=function t(e){var n;if(e)return n=e.lang||e.getAttribute("data-lang"),r.isType("string",n)?n:t(e.parentElement)}},function(t,e,n){var r=n(2);t.exports=function(t,e){var i=new r;return n.e(2).then(function(r){var o;try{o=n(83),i.resolve(new o(t,e))}catch(t){i.reject(t)}}.bind(null,n)).catch(function(t){i.reject(t)}),i.promise}},function(t,e,n){var r=n(62),i=n(26);t.exports=r.isSupported()?r:i},function(t,e,n){var r=n(119),i=n(1),o=n(10),s=n(35),a=n(18),u=n(56),c=n(27),d=n(57),l=n(43),f=n(47),h=n(7),p=n(44),m=n(6),v=n(0),g=50,w={position:"absolute",visibility:"hidden",display:"block",transform:"rotate(0deg)"},y={position:"static",visibility:"visible"},b="twitter-widget",_="open",E="SandboxRoot",x=".SandboxRoot { display: none; max-height: 10000px; }";t.exports=c.couple(n(58),function(t){t.defineStatic("isSupported",function(){return!!i.HTMLElement.prototype.attachShadow&&l.inlineStyle()}),t.overrideProperty("id",{get:function(){return this.sandboxEl&&this.sandboxEl.id}}),t.overrideProperty("initialized",{get:function(){return!!this._shadowHost}}),t.overrideProperty("width",{get:function(){return this._width}}),t.overrideProperty("height",{get:function(){return this._height}}),t.overrideProperty("sandboxEl",{get:function(){return this._shadowHost}}),t.define("_updateCachedDimensions",function(){var t=this;return a.read(function(){var e,n=f(t.sandboxEl);"visible"==t.sandboxEl.style.visibility?t._width=n.width:(e=f(t.sandboxEl.parentElement).width,t._width=Math.min(n.width,e)),t._height=n.height})}),t.define("_didResize",function(){var t=this,e=this._resizeHandlers.slice(0);return this._updateCachedDimensions().then(function(){e.forEach(function(e){e(t)})})}),t.override("createElement",function(t){return this.targetGlobal.document.createElement(t)}),t.override("createFragment",function(){return this.targetGlobal.document.createDocumentFragment()}),t.override("htmlToElement",function(t){var e;return(e=this.createElement("div")).innerHTML=t,e.firstElementChild}),t.override("hasSelectedText",function(){return!!u.getSelectedText(this.targetGlobal)}),t.override("addRootClass",function(t){var e=this._shadowRootBody;return t=Array.isArray(t)?t:[t],this.initialized?a.write(function(){t.forEach(function(t){o.add(e,t)})}):m.reject(new Error("sandbox not initialized"))}),t.override("removeRootClass",function(t){var e=this._shadowRootBody;return t=Array.isArray(t)?t:[t],this.initialized?a.write(function(){t.forEach(function(t){o.remove(e,t)})}):m.reject(new Error("sandbox not initialized"))}),t.override("hasRootClass",function(t){return o.present(this._shadowRootBody,t)}),t.override("addStyleSheet",function(t,e){return this.addCss('@import url("'+t+'");',e).then(function(){return d(t)})}),t.override("prependStyleSheet",function(t){var e=this._shadowRoot;return this.addStyleSheet(t,function(t){var n=e.firstElementChild;return n?e.insertBefore(t,n):e.appendChild(t)})}),t.override("appendStyleSheet",function(t){var e=this._shadowRoot;return this.addStyleSheet(t,function(t){return e.appendChild(t)})}),t.override("addCss",function(t,e){var n;return this.initialized?l.inlineStyle()?((n=this.createElement("style")).type="text/css",n.appendChild(this.targetGlobal.document.createTextNode(t)),a.write(h(e,null,n))):m.resolve():m.reject(new Error("sandbox not initialized"))}),t.override("prependCss",function(t){var e=this._shadowRoot;return this.addCss(t,function(t){var n=e.firstElementChild;return n?e.insertBefore(t,n):e.appendChild(t)})}),t.override("appendCss",function(t){var e=this._shadowRoot;return this.addCss(t,function(t){return e.appendChild(t)})}),t.override("makeVisible",function(){return this.styleSelf(y)}),t.override("injectWidgetEl",function(t){var e=this;return this.initialized?this._shadowRootBody.firstElementChild?m.reject(new Error("widget already injected")):a.write(function(){e._shadowRootBody.appendChild(t)}).then(function(){return e._updateCachedDimensions()}).then(function(){var t=p(e._didResize,g,e);new r(e._shadowRootBody,t)}):m.reject(new Error("sandbox not initialized"))}),t.override("matchHeightToContent",function(){return m.resolve()}),t.override("matchWidthToContent",function(){return m.resolve()}),t.override("insert",function(t,e,n,r){var i=this.targetGlobal.document,o=this._shadowHost=i.createElement(b),u=this._shadowRoot=o.attachShadow({mode:_}),c=this._shadowRootBody=i.createElement("div");return v.forIn(e||{},function(t,e){o.setAttribute(t,e)}),o.id=t,u.appendChild(c),s.delegate(c,"click","A",function(t,e){e.hasAttribute("target")||e.setAttribute("target","_blank")}),m.all([this.styleSelf(w),this.addRootClass(E),this.prependCss(x),a.write(r.bind(null,o))])}),t.override("onResize",function(t){this._resizeHandlers.push(t)}),t.after("initialize",function(){this._shadowHost=this._shadowRoot=this._shadowRootBody=null,this._width=this._height=0,this._resizeHandlers=[]}),t.after("styleSelf",function(){return this._updateCachedDimensions()})})},function(t,e){var n;(n=function(t,e){function r(t,e){if(t.resizedAttached){if(t.resizedAttached)return void t.resizedAttached.add(e)}else t.resizedAttached=new function(){var t,e;this.q=[],this.add=function(t){this.q.push(t)},this.call=function(){for(t=0,e=this.q.length;t
',t.appendChild(t.resizeSensor),{fixed:1,absolute:1}[function(t,e){return t.currentStyle?t.currentStyle[e]:window.getComputedStyle?window.getComputedStyle(t,null).getPropertyValue(e):t.style[e]}(t,"position")]||(t.style.position="relative");var i,o,s=t.resizeSensor.childNodes[0],a=s.childNodes[0],u=t.resizeSensor.childNodes[1],c=(u.childNodes[0],function(){a.style.width=s.offsetWidth+10+"px",a.style.height=s.offsetHeight+10+"px",s.scrollLeft=s.scrollWidth,s.scrollTop=s.scrollHeight,u.scrollLeft=u.scrollWidth,u.scrollTop=u.scrollHeight,i=t.offsetWidth,o=t.offsetHeight});c();var d=function(t,e,n){t.attachEvent?t.attachEvent("on"+e,n):t.addEventListener(e,n)},l=function(){t.offsetWidth==i&&t.offsetHeight==o||t.resizedAttached&&t.resizedAttached.call(),c()};d(s,"scroll",l),d(u,"scroll",l)}var i=Object.prototype.toString.call(t),o="[object Array]"===i||"[object NodeList]"===i||"[object HTMLCollection]"===i||"undefined"!=typeof jQuery&&t instanceof jQuery||"undefined"!=typeof Elements&&t instanceof Elements;if(o)for(var s=0,a=t.length;s0;return this.updateCachedDimensions().then(function(){e&&t._resizeHandlers.forEach(function(e){e(t)})})}),t.define("loadDocument",function(t){var e=new a;return this.initialized?this.iframeEl.src?u.reject(new Error("widget already loaded")):(this.iframeEl.addEventListener("load",e.resolve,!1),this.iframeEl.addEventListener("error",e.reject,!1),this.iframeEl.src=t,e.promise):u.reject(new Error("sandbox not initialized"))}),t.after("initialize",function(){var t=new a,e=new a;this._iframe=null,this._iframeVersion=null,this._width=this._height=0,this._resizeHandlers=[],this._rendered=t,this._results=e,this._waitToSwapUntilRendered=!1}),t.override("insert",function(t,e,n,i){var a=this;return e=d.aug({id:t},l,e),n=d.aug({},f,n),this._iframe=s(e,n),p[t]=this,a._waitToSwapUntilRendered||this.onResize(o(function(){a.makeVisible()})),r.write(c(i,null,this._iframe))}),t.override("onResize",function(t){this._resizeHandlers.push(t)}),t.after("styleSelf",function(){return this.updateCachedDimensions()})}},function(t,e,n){var r=n(1),i=n(124),o=n(126),s=n(23),a=n(5),u=n(127);t.exports=function(t,e,n,c,d){function l(t){var e=u(this);s.trigger(t.type,{target:e,region:t.region,type:t.type,data:t.data||{}})}function f(e){var n=u(this),r=n&&n.id,i=a.asInt(e.width),o=a.asInt(e.height);r&&void 0!==i&&void 0!==o&&t(r,i,o)}(new i).attachReceiver(new o.Receiver(r,"twttr.button")).bind("twttr.private.trigger",l).bind("twttr.private.resizeButton",f),(new i).attachReceiver(new o.Receiver(r,"twttr.embed")).bind("twttr.private.initialized",function(t){var e=u(this),n=e&&e.id,r=t.iframe_version;n&&r&&c&&c(n,r)}).bind("twttr.private.trigger",l).bind("twttr.private.results",function(){var t=u(this),n=t&&t.id;n&&e&&e(n)}).bind("twttr.private.rendered",function(){var t=u(this),e=t&&t.id;e&&n&&n(e)}).bind("twttr.private.no_results",function(){var t=u(this),e=t&&t.id;e&&d&&d(e)}).bind("twttr.private.resize",f)}},function(t,e,n){var r=n(25),i=n(125),o=n(0),s=n(6),a=n(24),u="2.0";function c(t){this.registry=t||{}}function d(t){var e,n;return e=o.isType("string",t),n=o.isType("number",t),e||n||null===t}function l(t,e){return{jsonrpc:u,id:d(t)?t:null,error:e}}c.prototype._invoke=function(t,e){var n,r,i;n=this.registry[t.method],r=t.params||[],r=o.isType("array",r)?r:[r];try{i=n.apply(e.source||null,r)}catch(t){i=s.reject(t.message)}return a.isPromise(i)?i:s.resolve(i)},c.prototype._processRequest=function(t,e){var n,r;return function(t){var e,n,r;return!!o.isObject(t)&&(e=t.jsonrpc===u,n=o.isType("string",t.method),r=!("id"in t)||d(t.id),e&&n&&r)}(t)?(n="params"in t&&(r=t.params,!o.isObject(r)||o.isType("function",r))?s.resolve(l(t.id,i.INVALID_PARAMS)):this.registry[t.method]?this._invoke(t,{source:e}).then(function(e){return n=t.id,{jsonrpc:u,id:n,result:e};var n},function(){return l(t.id,i.INTERNAL_ERROR)}):s.resolve(l(t.id,i.METHOD_NOT_FOUND)),null!=t.id?n:s.resolve()):s.resolve(l(t.id,i.INVALID_REQUEST))},c.prototype.attachReceiver=function(t){return t.attachTo(this),this},c.prototype.bind=function(t,e){return this.registry[t]=e,this},c.prototype.receive=function(t,e){var n,a,u,c=this;try{u=t,t=o.isType("string",u)?r.parse(u):u}catch(t){return s.resolve(l(null,i.PARSE_ERROR))}return e=e||null,a=((n=o.isType("array",t))?t:[t]).map(function(t){return c._processRequest(t,e)}),n?function(t){return s.all(t).then(function(t){return(t=t.filter(function(t){return void 0!==t})).length?t:void 0})}(a):a[0]},t.exports=c},function(t){t.exports={PARSE_ERROR:{code:-32700,message:"Parse error"},INVALID_REQUEST:{code:-32600,message:"Invalid Request"},INVALID_PARAMS:{code:-32602,message:"Invalid params"},METHOD_NOT_FOUND:{code:-32601,message:"Method not found"},INTERNAL_ERROR:{code:-32603,message:"Internal error"}}},function(t,e,n){var r=n(9),i=n(1),o=n(25),s=n(2),a=n(21),u=n(0),c=n(3),d=n(7),l=a.ie9();function f(t,e,n){var r;t&&t.postMessage&&(l?r=(n||"")+o.stringify(e):n?(r={})[n]=e:r=e,t.postMessage(r,"*"))}function h(t){return u.isType("string",t)?t:"JSONRPC"}function p(t,e){return e?u.isType("string",t)&&0===t.indexOf(e)?t.substring(e.length):t&&t[e]?t[e]:void 0:t}function m(t,e){var n=t.document;this.filter=h(e),this.server=null,this.isTwitterFrame=c.isTwitterURL(n.location.href),t.addEventListener("message",d(this._onMessage,this),!1)}function v(t,e){this.pending={},this.target=t,this.isTwitterHost=c.isTwitterURL(r.href),this.filter=h(e),i.addEventListener("message",d(this._onMessage,this),!1)}u.aug(m.prototype,{_onMessage:function(t){var e,n=this;this.server&&(this.isTwitterFrame&&!c.isTwitterURL(t.origin)||(e=p(t.data,this.filter))&&this.server.receive(e,t.source).then(function(e){e&&f(t.source,e,n.filter)}))},attachTo:function(t){this.server=t},detach:function(){this.server=null}}),u.aug(v.prototype,{_processResponse:function(t){var e=this.pending[t.id];e&&(e.resolve(t),delete this.pending[t.id])},_onMessage:function(t){var e;if((!this.isTwitterHost||c.isTwitterURL(t.origin))&&(e=p(t.data,this.filter))){if(u.isType("string",e))try{e=o.parse(e)}catch(t){return}(e=u.isType("array",e)?e:[e]).forEach(d(this._processResponse,this))}},send:function(t){var e=new s;return t.id?this.pending[t.id]=e:e.resolve(),f(this.target,t,this.filter),e.promise}}),t.exports={Receiver:m,Dispatcher:v,_stringifyPayload:function(t){return arguments.length>0&&(l=!!t),l}}},function(t,e,n){var r=n(4);t.exports=function(t){for(var e,n=r.getElementsByTagName("iframe"),i=0;n[i];i++)if((e=n[i]).contentWindow===t)return e}},function(t,e,n){var r=n(5),i=n(0),o=n(3),s=n(13),a=n(14)(),u=n(64),c="a.twitter-moment";t.exports=function(t){return a(t,c).map(function(t){return u(function(t){var e=s(t),n={momentId:o.momentId(t.href),chrome:t.getAttribute("data-chrome"),limit:t.getAttribute("data-limit")};return i.forIn(n,function(t,n){var i=e[t];e[t]=r.hasValue(i)?i:n}),e}(t),t.parentNode,t)})}},function(t,e,n){var r=n(2);t.exports=function(t,e){var i=new r;return Promise.all([n.e(0),n.e(4)]).then(function(r){var o;try{o=n(85),i.resolve(new o(t,e))}catch(t){i.reject(t)}}.bind(null,n)).catch(function(t){i.reject(t)}),i.promise}},function(t,e,n){var r=n(0),i=n(13),o=n(14)(),s=n(65),a="a.periscope-on-air",u=/^https?:\/\/(?:www\.)?(?:periscope|pscp)\.tv\/@?([a-zA-Z0-9_]+)\/?$/i;t.exports=function(t){return o(t,a).map(function(t){return s(function(t){var e=i(t),n=t.getAttribute("href"),o=t.getAttribute("data-size"),s=u.exec(n)[1];return r.aug(e,{username:s,size:o})}(t),t.parentNode,t)})}},function(t,e,n){var r=n(2);t.exports=function(t,e){var i=new r;return n.e(5).then(function(r){var o;try{o=n(86),i.resolve(new o(t,e))}catch(t){i.reject(t)}}.bind(null,n)).catch(function(t){i.reject(t)}),i.promise}},function(t,e,n){var r=n(5),i=n(0),o=n(66),s=n(13),a=n(14)(),u=n(67),c=n(3),d=n(12),l="a.twitter-timeline,div.twitter-timeline,a.twitter-grid",f="Embedded Search timelines have been deprecated. See https://twittercommunity.com/t/deprecating-widget-settings/102295.",h="You may have been affected by an update to settings in embedded timelines. See https://twittercommunity.com/t/deprecating-widget-settings/102295.",p="Embedded grids have been deprecated and will now render as timelines. Please update your embed code to use the twitter-timeline class. More info: https://twittercommunity.com/t/update-on-the-embedded-grid-display-type/119564.";t.exports=function(t,e){return a(t,l).map(function(t){return u(function(t){var e=s(t),n=t.getAttribute("data-show-replies"),a={isPreconfigured:!!t.getAttribute("data-widget-id"),chrome:t.getAttribute("data-chrome"),tweetLimit:t.getAttribute("data-tweet-limit")||t.getAttribute("data-limit"),ariaLive:t.getAttribute("data-aria-polite"),theme:t.getAttribute("data-theme"),borderColor:t.getAttribute("data-border-color"),showReplies:n?r.asBoolean(n):null,profileScreenName:t.getAttribute("data-screen-name"),profileUserId:t.getAttribute("data-user-id"),favoritesScreenName:t.getAttribute("data-favorites-screen-name"),favoritesUserId:t.getAttribute("data-favorites-user-id"),likesScreenName:t.getAttribute("data-likes-screen-name"),likesUserId:t.getAttribute("data-likes-user-id"),listOwnerScreenName:t.getAttribute("data-list-owner-screen-name"),listOwnerUserId:t.getAttribute("data-list-owner-id"),listId:t.getAttribute("data-list-id"),listSlug:t.getAttribute("data-list-slug"),customTimelineId:t.getAttribute("data-custom-timeline-id"),staticContent:t.getAttribute("data-static-content"),url:t.href};return a.isPreconfigured&&(c.isSearchUrl(a.url)?d.publicError(f,t):d.publicLog(h,t)),"twitter-grid"===t.className&&d.publicLog(p,t),(a=i.aug(a,e)).dataSource=o(a),a.id=a.dataSource&&a.dataSource.id,a}(t),t.parentNode,t,e)})}},function(t,e,n){var r=n(28);t.exports=r.build([n(29),n(136)])},function(t,e,n){var r=n(0),i=n(135);t.exports=function(t){return"en"===t||r.contains(i,t)}},function(t,e){t.exports=["hi","zh-cn","fr","zh-tw","msa","fil","fi","sv","pl","ja","ko","de","it","pt","es","ru","id","tr","da","no","nl","hu","fa","ar","ur","he","th","cs","uk","vi","ro","bn","el","en-gb","gu","kn","mr","ta","bg","ca","hr","sr","sk"]},function(t,e,n){var r=n(3),i=n(0),o=n(20),s=n(48),a="collection:";function u(t,e){return r.collectionId(t)||e}t.exports=function(t){t.params({id:{},url:{}}),t.overrideProperty("id",{get:function(){var t=u(this.params.url,this.params.id);return a+t}}),t.overrideProperty("endpoint",{get:function(){return o.timeline(["collection"])}}),t.around("queryParams",function(t){return i.aug(t(),{collection_id:u(this.params.url,this.params.id)})}),t.before("initialize",function(){if(!u(this.params.url,this.params.id))throw new Error("one of url or id is required");s()})}},function(t,e,n){var r=n(28);t.exports=r.build([n(29),n(138)])},function(t,e,n){var r=n(3),i=n(0),o=n(20),s="event:";function a(t,e){return r.eventId(t)||e}t.exports=function(t){t.params({id:{},url:{}}),t.overrideProperty("id",{get:function(){var t=a(this.params.url,this.params.id);return s+t}}),t.overrideProperty("endpoint",{get:function(){return o.timeline(["event"])}}),t.around("queryParams",function(t){return i.aug(t(),{event_id:a(this.params.url,this.params.id)})}),t.before("initialize",function(){if(!a(this.params.url,this.params.id))throw new Error("one of url or id is required")})}},function(t,e,n){var r=n(28);t.exports=r.build([n(29),n(140)])},function(t,e,n){var r=n(3),i=n(0),o=n(20),s=n(48),a="likes:";function u(t){return r.likesScreenName(t.url)||t.screenName}t.exports=function(t){t.params({screenName:{},userId:{},url:{}}),t.overrideProperty("id",{get:function(){var t=u(this.params)||this.params.userId;return a+t}}),t.overrideProperty("endpoint",{get:function(){return o.timeline(["likes"])}}),t.define("_getLikesQueryParam",function(){var t=u(this.params);return t?{screen_name:t}:{user_id:this.params.userId}}),t.around("queryParams",function(t){return i.aug(t(),this._getLikesQueryParam())}),t.before("initialize",function(){if(!u(this.params)&&!this.params.userId)throw new Error("screen name or user id is required");s()})}},function(t,e,n){var r=n(28);t.exports=r.build([n(29),n(142)])},function(t,e,n){var r=n(3),i=n(0),o=n(20),s="list:";function a(t){var e=r.listScreenNameAndSlug(t.url)||t;return i.compact({screen_name:e.ownerScreenName,user_id:e.ownerUserId,list_slug:e.slug})}t.exports=function(t){t.params({id:{},ownerScreenName:{},ownerUserId:{},slug:{},url:{}}),t.overrideProperty("id",{get:function(){var t,e,n;return this.params.id?s+this.params.id:(e=(t=a(this.params))&&t.list_slug.replace(/-/g,"_"),n=t&&(t.screen_name||t.user_id),s+(n+":")+e)}}),t.overrideProperty("endpoint",{get:function(){return o.timeline(["list"])}}),t.define("_getListQueryParam",function(){return this.params.id?{list_id:this.params.id}:a(this.params)}),t.around("queryParams",function(t){return i.aug(t(),this._getListQueryParam())}),t.defineProperty("horizonEndpoint",{get:function(){var t,e=["timeline-list"];return this.params.id?e.push("list-id",this.params.id):(t=a(this.params),e.push("screen-name",t.screen_name,"slug",t.list_slug)),o.embedService(e)}}),t.before("initialize",function(){var t=a(this.params);if(i.isEmptyObject(t)&&!this.params.id)throw new Error("qualified slug or list id required")})}},function(t,e,n){var r=n(28);t.exports=r.build([n(29),n(144)])},function(t,e,n){var r=n(3),i=n(5),o=n(0),s=n(20),a="profile:";function u(t,e){return r.screenName(t)||e}t.exports=function(t){t.params({showReplies:{fallback:!1,transform:i.asBoolean},screenName:{},userId:{},url:{}}),t.overrideProperty("id",{get:function(){var t=u(this.params.url,this.params.screenName);return a+(t||this.params.userId)}}),t.overrideProperty("endpoint",{get:function(){return s.timeline(["profile"])}}),t.define("_getProfileQueryParam",function(){var t=u(this.params.url,this.params.screenName),e=t?{screen_name:t}:{user_id:this.params.userId};return o.aug(e,{with_replies:this.params.showReplies?"true":"false"})}),t.around("queryParams",function(t){return o.aug(t(),this._getProfileQueryParam())}),t.defineProperty("horizonEndpoint",{get:function(){var t=["timeline-profile"],e=u(this.params.url,this.params.screenName);return e?t.push("screen-name",e):t.push("user-id",this.params.userId),s.embedService(t)}}),t.around("horizonQueryParams",function(t){return o.aug(t(),{showReplies:this.params.showReplies?"true":"false"})}),t.before("initialize",function(){if(!u(this.params.url,this.params.screenName)&&!this.params.userId)throw new Error("screen name or user id is required")})}},function(t,e){var n={collection:"collection",moment:"moment",event:"event",likes:"likes",list:"list",profile:"profile"};t.exports={get:function(t){var e;return!!t&&(e=t.slice(0,t.indexOf(":")),-1!==Object.keys(n).indexOf(e)&&e)},DATASOURCE_MAP:n}},function(t,e,n){var r=n(2);t.exports=function(t,e){var i=new r;return n.e(6).then(function(r){var o;try{o=n(87),i.resolve(new o(t,e))}catch(t){i.reject(t)}}.bind(null,n)).catch(function(t){i.reject(t)}),i.promise}},function(t,e,n){var r=n(2);t.exports=function(t,e){var i=new r;return Promise.all([n.e(0),n.e(7)]).then(function(r){var o;try{o=n(88),i.resolve(new o(t,e))}catch(t){i.reject(t)}}.bind(null,n)).catch(function(t){i.reject(t)}),i.promise}},function(t,e,n){var r=n(10),i=n(3),o=n(0),s=n(13),a=n(14)(),u=n(68),c="blockquote.twitter-tweet, blockquote.twitter-video",d=/\btw-align-(left|right|center)\b/;t.exports=function(t,e){return a(t,c).map(function(t){return u(function(t){var e=s(t),n=t.getElementsByTagName("A"),a=n&&n[n.length-1],u=a&&i.status(a.href),c=t.getAttribute("data-conversation"),l="none"==c||"hidden"==c||r.present(t,"tw-hide-thread"),f=t.getAttribute("data-cards"),h="none"==f||"hidden"==f||r.present(t,"tw-hide-media"),p=t.getAttribute("data-align")||t.getAttribute("align"),m=t.getAttribute("data-theme");return!p&&d.test(t.className)&&(p=RegExp.$1),o.aug(e,{tweetId:u,hideThread:l,hideCard:h,align:p,theme:m,id:u})}(t),t.parentNode,t,e)})}},function(t,e,n){var r=n(2);t.exports=function(t,e){var i=new r;return n.e(8).then(function(r){var o;try{o=n(89),i.resolve(new o(t,e))}catch(t){i.reject(t)}}.bind(null,n)).catch(function(t){i.reject(t)}),i.promise}},function(t,e,n){var r=n(10),i=n(0),o=n(13),s=n(14)(),a=n(69),u=n(5),c="a.twitter-share-button, a.twitter-mention-button, a.twitter-hashtag-button",d="twitter-hashtag-button",l="twitter-mention-button";t.exports=function(t){return s(t,c).map(function(t){return a(function(t){var e=o(t),n={screenName:t.getAttribute("data-button-screen-name"),text:t.getAttribute("data-text"),type:t.getAttribute("data-type"),size:t.getAttribute("data-size"),url:t.getAttribute("data-url"),hashtags:t.getAttribute("data-hashtags"),via:t.getAttribute("data-via"),buttonHashtag:t.getAttribute("data-button-hashtag")};return i.forIn(n,function(t,n){var r=e[t];e[t]=u.hasValue(r)?r:n}),e.screenName=e.screenName||e.screen_name,e.buttonHashtag=e.buttonHashtag||e.button_hashtag||e.hashtag,r.present(t,d)&&(e.type="hashtag"),r.present(t,l)&&(e.type="mention"),e}(t),t.parentNode,t)})}},function(t,e,n){var r=n(2);t.exports=function(t,e){var i=new r;return n.e(3).then(function(r){var o;try{o=n(90),i.resolve(new o(t,e))}catch(t){i.reject(t)}}.bind(null,n)).catch(function(t){i.reject(t)}),i.promise}},function(t,e,n){var r=n(0);t.exports=r.aug({},n(153),n(154),n(155),n(156),n(157),n(158),n(159))},function(t,e,n){var r=n(61),i=n(17)(["userId"],{},r);t.exports={createDMButton:i}},function(t,e,n){var r=n(63),i=n(17)(["screenName"],{},r);t.exports={createFollowButton:i}},function(t,e,n){var r=n(64),i=n(17)(["momentId"],{},r);t.exports={createMoment:i}},function(t,e,n){var r=n(65),i=n(17)(["username"],{},r);t.exports={createPeriscopeOnAirButton:i}},function(t,e,n){var r=n(9),i=n(12),o=n(3),s=n(0),a=n(5),u=n(66),c=n(67),d=n(17)([],{},c),l=n(6),f="Embedded grids have been deprecated. Please use twttr.widgets.createTimeline instead. More info: https://twittercommunity.com/t/update-on-the-embedded-grid-display-type/119564.",h={createTimeline:p,createGridFromCollection:function(t){var e=s.toRealArray(arguments).slice(1),n={sourceType:"collection",id:t};return e.unshift(n),i.publicLog(f),p.apply(this,e)}};function p(t){var e,n=s.toRealArray(arguments).slice(1);return a.isString(t)||a.isNumber(t)?l.reject("Embedded timelines with widget settings have been deprecated. See https://twittercommunity.com/t/deprecating-widget-settings/102295."):s.isObject(t)?(t=t||{},n.forEach(function(t){s.isType("object",t)&&function(t){t.ariaLive=t.ariaPolite}(e=t)}),e||(e={},n.push(e)),t.lang=e.lang,t.tweetLimit=e.tweetLimit,t.showReplies=e.showReplies,e.dataSource=u(t),d.apply(this,n)):l.reject("data source must be an object.")}o.isTwitterURL(r.href)&&(h.createTimelinePreview=function(t,e,n){var r={previewParams:t,useLegacyDefaults:!0,isPreviewTimeline:!0};return r.dataSource=u(r),d(e,r,n)}),t.exports=h},function(t,e,n){var r,i=n(0),o=n(68),s=n(17),a=(r=s(["tweetId"],{},o),function(){return i.toRealArray(arguments).slice(1).forEach(function(t){i.isType("object",t)&&(t.hideCard="none"==t.cards||"hidden"==t.cards,t.hideThread="none"==t.conversation||"hidden"==t.conversation)}),r.apply(this,arguments)});t.exports={createTweet:a,createTweetEmbed:a,createVideo:a}},function(t,e,n){var r=n(0),i=n(69),o=n(17),s=o(["url"],{type:"share"},i),a=o(["buttonHashtag"],{type:"hashtag"},i),u=o(["screenName"],{type:"mention"},i);function c(t){return function(){return r.toRealArray(arguments).slice(1).forEach(function(t){r.isType("object",t)&&(t.screenName=t.screenName||t.screen_name,t.buttonHashtag=t.buttonHashtag||t.button_hashtag||t.hashtag)}),t.apply(this,arguments)}}t.exports={createShareButton:c(s),createHashtagButton:c(a),createMentionButton:c(u)}},function(t,e,n){var r,i,o,s=n(4),a=n(1),u=0,c=[],d=s.createElement("a");function l(){var t,e;for(u=1,t=0,e=c.length;t= 200 && xhr.status < 300) {
+ var myToast = new bootstrap.Toast(document.getElementById('toast-post-error'));
+ myToast.hide();
+
+ var myToast = new bootstrap.Toast(document.getElementById('toast-post-success'));
+ myToast.show();
+
+ try {
+ if(typeof result == "string") {
+ document.getElementById('toast-post-success-text').innerText = result;
+ } else {
+ document.getElementById('toast-post-success-text').innerText = JSON.parse(xhr.response)["message"];
+ }
+ } catch(e) {
+ document.getElementById('toast-post-success-text').innerText = "Action successful!";
+ }
+
+ return true;
+ } else {
+ var myToast = new bootstrap.Toast(document.getElementById('toast-post-success'));
+ myToast.hide();
+
+ var myToast = new bootstrap.Toast(document.getElementById('toast-post-error'));
+ myToast.show();
+
+ try {
+ if(typeof result == "string") {
+ document.getElementById('toast-post-error-text').innerText = result;
+ } else {
+ document.getElementById('toast-post-error-text').innerText = JSON.parse(xhr.response)["error"];
+ }
+ return false
+ } catch(e) {}
+
+ return false;
+ }
+ };
+
+ xhr.send(form);
+
+}
+
+function toggleElement(group, id) {
+ for(let el of document.getElementsByClassName(group)) {
+ if(el.id != id) {
+ el.classList.add('hidden');
+ }
+ }
+
+ document.getElementById(id).classList.toggle('hidden');
+}
+
diff --git a/files/assets/CHRISTMAS/js/userpage_v.js b/files/assets/CHRISTMAS/js/userpage_v.js
new file mode 100644
index 000000000..8d9a0e68e
--- /dev/null
+++ b/files/assets/CHRISTMAS/js/userpage_v.js
@@ -0,0 +1,101 @@
+function post_toast_callback(url, data, callback) {
+ var xhr = new XMLHttpRequest();
+ xhr.open("POST", url, true);
+ var form = new FormData()
+ form.append("formkey", formkey());
+
+ if(typeof data === 'object' && data !== null) {
+ for(let k of Object.keys(data)) {
+ form.append(k, data[k]);
+ }
+ }
+
+ form.append("formkey", formkey());
+ xhr.withCredentials=true;
+
+ xhr.onload = function() {
+ let result = callback(xhr);
+ if (xhr.status >= 200 && xhr.status < 300) {
+ var myToast = new bootstrap.Toast(document.getElementById('toast-post-error'));
+ myToast.hide();
+
+ var myToast = new bootstrap.Toast(document.getElementById('toast-post-success'));
+ myToast.show();
+
+ try {
+ if(typeof result == "string") {
+ document.getElementById('toast-post-success-text').innerText = result;
+ } else {
+ document.getElementById('toast-post-success-text').innerText = JSON.parse(xhr.response)["message"];
+ }
+ } catch(e) {
+ document.getElementById('toast-post-success-text').innerText = "Action successful!";
+ }
+
+ return true;
+ } else {
+ var myToast = new bootstrap.Toast(document.getElementById('toast-post-success'));
+ myToast.hide();
+
+ var myToast = new bootstrap.Toast(document.getElementById('toast-post-error'));
+ myToast.show();
+
+ try {
+ if(typeof result == "string") {
+ document.getElementById('toast-post-error-text').innerText = result;
+ } else {
+ document.getElementById('toast-post-error-text').innerText = JSON.parse(xhr.response)["error"];
+ }
+ return false
+ } catch(e) {}
+
+ return false;
+ }
+ };
+
+ xhr.send(form);
+
+}
+
+function toggleElement(group, id) {
+ for(let el of document.getElementsByClassName(group)) {
+ if(el.id != id) {
+ el.classList.add('d-none');
+ }
+ }
+
+ document.getElementById(id).classList.toggle('d-none');
+}
+
+let TRANSFER_TAX = document.getElementById('tax').innerHTML
+
+function updateTax(mobile=false) {
+ let suf = mobile ? "-mobile" : "";
+ let amount = parseInt(document.getElementById("coins-transfer-amount" + suf).value);
+ if(isNaN(amount) || amount < 0) {
+ amount = 0;
+ }
+ document.getElementById("coins-transfer-taxed" + suf).innerText = amount - Math.ceil(amount*TRANSFER_TAX);
+}
+
+function transferCoins(mobile=false) {
+ let t = event.target;
+ t.disabled = true;
+
+ let amount = parseInt(document.getElementById("coins-transfer-amount").value);
+ let transferred = amount - Math.ceil(amount*TRANSFER_TAX);
+ let username = document.getElementById('username').innerHTML
+
+ post_toast_callback(`/@${username}/transfer_coins`,
+ {"amount": document.getElementById(mobile ? "coins-transfer-amount-mobile" : "coins-transfer-amount").value},
+ (xhr) => {
+ if(xhr.status == 200) {
+ document.getElementById("user-coins-amount").innerText = parseInt(document.getElementById("user-coins-amount").innerText) - amount;
+ document.getElementById("profile-coins-amount-mobile").innerText = parseInt(document.getElementById("profile-coins-amount-mobile").innerText) + transferred;
+ document.getElementById("profile-coins-amount").innerText = parseInt(document.getElementById("profile-coins-amount").innerText) + transferred;
+ }
+ }
+ );
+
+ setTimeout(_ => t.disabled = false, 2000);
+}
\ No newline at end of file
diff --git a/files/assets/CHRISTMAS/js/viewmore.js b/files/assets/CHRISTMAS/js/viewmore.js
new file mode 100644
index 000000000..b9e997360
--- /dev/null
+++ b/files/assets/CHRISTMAS/js/viewmore.js
@@ -0,0 +1,21 @@
+function loadMore(pid,sort,offset,id,trigger) {
+ const btn = document.getElementById(trigger) // trigger button
+ const el = document.getElementById(id) // target element to populate
+ const form = new FormData();
+ const xhr = new XMLHttpRequest();
+
+ btn.classList.toggle('animate-pulse');
+
+ xhr.open("post", `/viewmore/${pid}/${sort}/${offset}`);
+ xhr.withCredentials=true;
+ xhr.onload=function(){
+ if (xhr.status==200) {
+ btn.style.display = "none"; // hide button
+ el.innerHTML += xhr.response.replace(/data-src/g, 'src').replace(/data-cfsrc/g, 'src').replace(/style="display:none;visibility:hidden;"/g, ''); // replace desired element with response html
+ initializeBootstrap()
+ } else {
+ btn.disabled = false; // enable our button if GET fails
+ }
+ }
+ xhr.send(form)
+}
\ No newline at end of file
diff --git a/files/assets/js/vote.js b/files/assets/CHRISTMAS/js/vote.js
similarity index 100%
rename from files/assets/js/vote.js
rename to files/assets/CHRISTMAS/js/vote.js
diff --git a/files/assets/CHRISTMAS/lights-string.png b/files/assets/CHRISTMAS/lights-string.png
new file mode 100644
index 000000000..39c37667f
Binary files /dev/null and b/files/assets/CHRISTMAS/lights-string.png differ
diff --git a/files/assets/CHRISTMAS/manifest.json b/files/assets/CHRISTMAS/manifest.json
new file mode 100644
index 000000000..3417443fe
--- /dev/null
+++ b/files/assets/CHRISTMAS/manifest.json
@@ -0,0 +1,8 @@
+{
+ "name": "files",
+ "short_name": "files",
+ "start_url": "https://rdrama.net",
+ "display": "standalone",
+ "background_color": "#FF66AC",
+ "description": "files"
+}
\ No newline at end of file
diff --git a/files/assets/CHRISTMAS/ribbon1.png b/files/assets/CHRISTMAS/ribbon1.png
new file mode 100644
index 000000000..f3a898519
Binary files /dev/null and b/files/assets/CHRISTMAS/ribbon1.png differ
diff --git a/files/assets/CHRISTMAS/robots.txt b/files/assets/CHRISTMAS/robots.txt
new file mode 100644
index 000000000..0cee81b27
--- /dev/null
+++ b/files/assets/CHRISTMAS/robots.txt
@@ -0,0 +1,7 @@
+User-agent: *
+Allow: /$
+Allow: /@
+Allow: /comment
+Allow: /post
+Allow: /logged_out
+Disallow: /
\ No newline at end of file
diff --git a/files/assets/CHRISTMAS/santasleigh.gif b/files/assets/CHRISTMAS/santasleigh.gif
new file mode 100644
index 000000000..82f1ff71d
Binary files /dev/null and b/files/assets/CHRISTMAS/santasleigh.gif differ
diff --git a/files/assets/CHRISTMAS/santasleigh_1.png b/files/assets/CHRISTMAS/santasleigh_1.png
new file mode 100644
index 000000000..8f888e361
Binary files /dev/null and b/files/assets/CHRISTMAS/santasleigh_1.png differ
diff --git a/files/assets/CHRISTMAS/snowcap.png b/files/assets/CHRISTMAS/snowcap.png
new file mode 100644
index 000000000..58758b06e
Binary files /dev/null and b/files/assets/CHRISTMAS/snowcap.png differ
diff --git a/files/assets/CHRISTMAS/songs/arianalastxmas.mp3 b/files/assets/CHRISTMAS/songs/arianalastxmas.mp3
new file mode 100644
index 000000000..0a613d276
Binary files /dev/null and b/files/assets/CHRISTMAS/songs/arianalastxmas.mp3 differ
diff --git a/files/assets/CHRISTMAS/songs/avriloholy.mp3 b/files/assets/CHRISTMAS/songs/avriloholy.mp3
new file mode 100644
index 000000000..f81746605
Binary files /dev/null and b/files/assets/CHRISTMAS/songs/avriloholy.mp3 differ
diff --git a/files/assets/CHRISTMAS/songs/bandaidxmas.mp3 b/files/assets/CHRISTMAS/songs/bandaidxmas.mp3
new file mode 100644
index 000000000..5d0e041a4
Binary files /dev/null and b/files/assets/CHRISTMAS/songs/bandaidxmas.mp3 differ
diff --git a/files/assets/CHRISTMAS/songs/bells.mp3 b/files/assets/CHRISTMAS/songs/bells.mp3
new file mode 100644
index 000000000..534737453
Binary files /dev/null and b/files/assets/CHRISTMAS/songs/bells.mp3 differ
diff --git a/files/assets/CHRISTMAS/songs/bingcrosbells.mp3 b/files/assets/CHRISTMAS/songs/bingcrosbells.mp3
new file mode 100644
index 000000000..4c70b5e35
Binary files /dev/null and b/files/assets/CHRISTMAS/songs/bingcrosbells.mp3 differ
diff --git a/files/assets/CHRISTMAS/songs/bongshit.mp3 b/files/assets/CHRISTMAS/songs/bongshit.mp3
new file mode 100644
index 000000000..e2c325861
Binary files /dev/null and b/files/assets/CHRISTMAS/songs/bongshit.mp3 differ
diff --git a/files/assets/CHRISTMAS/songs/bows.mp3 b/files/assets/CHRISTMAS/songs/bows.mp3
new file mode 100644
index 000000000..8df31950a
Binary files /dev/null and b/files/assets/CHRISTMAS/songs/bows.mp3 differ
diff --git a/files/assets/CHRISTMAS/songs/buble.mp3 b/files/assets/CHRISTMAS/songs/buble.mp3
new file mode 100644
index 000000000..21475b703
Binary files /dev/null and b/files/assets/CHRISTMAS/songs/buble.mp3 differ
diff --git a/files/assets/CHRISTMAS/songs/bubleholly.mp3 b/files/assets/CHRISTMAS/songs/bubleholly.mp3
new file mode 100644
index 000000000..ea595cd6b
Binary files /dev/null and b/files/assets/CHRISTMAS/songs/bubleholly.mp3 differ
diff --git a/files/assets/CHRISTMAS/songs/carol.mp3 b/files/assets/CHRISTMAS/songs/carol.mp3
new file mode 100644
index 000000000..7bf6b935d
Binary files /dev/null and b/files/assets/CHRISTMAS/songs/carol.mp3 differ
diff --git a/files/assets/CHRISTMAS/songs/charliebrownxmas.mp3 b/files/assets/CHRISTMAS/songs/charliebrownxmas.mp3
new file mode 100644
index 000000000..8e887b27d
Binary files /dev/null and b/files/assets/CHRISTMAS/songs/charliebrownxmas.mp3 differ
diff --git a/files/assets/CHRISTMAS/songs/cold.mp3 b/files/assets/CHRISTMAS/songs/cold.mp3
new file mode 100644
index 000000000..d7749522f
Binary files /dev/null and b/files/assets/CHRISTMAS/songs/cold.mp3 differ
diff --git a/files/assets/CHRISTMAS/songs/crosbydrummer.mp3 b/files/assets/CHRISTMAS/songs/crosbydrummer.mp3
new file mode 100644
index 000000000..f53d1fac5
Binary files /dev/null and b/files/assets/CHRISTMAS/songs/crosbydrummer.mp3 differ
diff --git a/files/assets/CHRISTMAS/songs/crosbyrudolf.mp3 b/files/assets/CHRISTMAS/songs/crosbyrudolf.mp3
new file mode 100644
index 000000000..eb37cb137
Binary files /dev/null and b/files/assets/CHRISTMAS/songs/crosbyrudolf.mp3 differ
diff --git a/files/assets/CHRISTMAS/songs/deck.mp3 b/files/assets/CHRISTMAS/songs/deck.mp3
new file mode 100644
index 000000000..63d31c212
Binary files /dev/null and b/files/assets/CHRISTMAS/songs/deck.mp3 differ
diff --git a/files/assets/CHRISTMAS/songs/deckthehalls.mp3 b/files/assets/CHRISTMAS/songs/deckthehalls.mp3
new file mode 100644
index 000000000..3b7c3ec3e
Binary files /dev/null and b/files/assets/CHRISTMAS/songs/deckthehalls.mp3 differ
diff --git a/files/assets/CHRISTMAS/songs/deckthetrap.mp3 b/files/assets/CHRISTMAS/songs/deckthetrap.mp3
new file mode 100644
index 000000000..a6c090772
Binary files /dev/null and b/files/assets/CHRISTMAS/songs/deckthetrap.mp3 differ
diff --git a/files/assets/CHRISTMAS/songs/dinahsilent.mp3 b/files/assets/CHRISTMAS/songs/dinahsilent.mp3
new file mode 100644
index 000000000..bc512e394
Binary files /dev/null and b/files/assets/CHRISTMAS/songs/dinahsilent.mp3 differ
diff --git a/files/assets/CHRISTMAS/songs/earthasantabb.mp3 b/files/assets/CHRISTMAS/songs/earthasantabb.mp3
new file mode 100644
index 000000000..0a96f7fea
Binary files /dev/null and b/files/assets/CHRISTMAS/songs/earthasantabb.mp3 differ
diff --git a/files/assets/CHRISTMAS/songs/elsababy.mp3 b/files/assets/CHRISTMAS/songs/elsababy.mp3
new file mode 100644
index 000000000..3fa2d6b21
Binary files /dev/null and b/files/assets/CHRISTMAS/songs/elsababy.mp3 differ
diff --git a/files/assets/CHRISTMAS/songs/elton.mp3 b/files/assets/CHRISTMAS/songs/elton.mp3
new file mode 100644
index 000000000..9b384311a
Binary files /dev/null and b/files/assets/CHRISTMAS/songs/elton.mp3 differ
diff --git a/files/assets/CHRISTMAS/songs/elvisbethlehem.mp3 b/files/assets/CHRISTMAS/songs/elvisbethlehem.mp3
new file mode 100644
index 000000000..1a186e239
Binary files /dev/null and b/files/assets/CHRISTMAS/songs/elvisbethlehem.mp3 differ
diff --git a/files/assets/CHRISTMAS/songs/elviswhite.mp3 b/files/assets/CHRISTMAS/songs/elviswhite.mp3
new file mode 100644
index 000000000..17208d671
Binary files /dev/null and b/files/assets/CHRISTMAS/songs/elviswhite.mp3 differ
diff --git a/files/assets/CHRISTMAS/songs/fireplace.mp3 b/files/assets/CHRISTMAS/songs/fireplace.mp3
new file mode 100644
index 000000000..63ac9b306
Binary files /dev/null and b/files/assets/CHRISTMAS/songs/fireplace.mp3 differ
diff --git a/files/assets/CHRISTMAS/songs/firstnoelrem.mp3 b/files/assets/CHRISTMAS/songs/firstnoelrem.mp3
new file mode 100644
index 000000000..a1ea1ab46
Binary files /dev/null and b/files/assets/CHRISTMAS/songs/firstnoelrem.mp3 differ
diff --git a/files/assets/CHRISTMAS/songs/frosty.mp3 b/files/assets/CHRISTMAS/songs/frosty.mp3
new file mode 100644
index 000000000..99e7604e2
Binary files /dev/null and b/files/assets/CHRISTMAS/songs/frosty.mp3 differ
diff --git a/files/assets/CHRISTMAS/songs/grinch.mp3 b/files/assets/CHRISTMAS/songs/grinch.mp3
new file mode 100644
index 000000000..974b7e96f
Binary files /dev/null and b/files/assets/CHRISTMAS/songs/grinch.mp3 differ
diff --git a/files/assets/CHRISTMAS/songs/hark.mp3 b/files/assets/CHRISTMAS/songs/hark.mp3
new file mode 100644
index 000000000..1db947869
Binary files /dev/null and b/files/assets/CHRISTMAS/songs/hark.mp3 differ
diff --git a/files/assets/CHRISTMAS/songs/hark2.mp3 b/files/assets/CHRISTMAS/songs/hark2.mp3
new file mode 100644
index 000000000..9741ba746
Binary files /dev/null and b/files/assets/CHRISTMAS/songs/hark2.mp3 differ
diff --git a/files/assets/CHRISTMAS/songs/hark3.mp3 b/files/assets/CHRISTMAS/songs/hark3.mp3
new file mode 100644
index 000000000..71eafb013
Binary files /dev/null and b/files/assets/CHRISTMAS/songs/hark3.mp3 differ
diff --git a/files/assets/CHRISTMAS/songs/herecumssanta.mp3 b/files/assets/CHRISTMAS/songs/herecumssanta.mp3
new file mode 100644
index 000000000..a358519e0
Binary files /dev/null and b/files/assets/CHRISTMAS/songs/herecumssanta.mp3 differ
diff --git a/files/assets/CHRISTMAS/songs/herecumstrap.mp3 b/files/assets/CHRISTMAS/songs/herecumstrap.mp3
new file mode 100644
index 000000000..52452053e
Binary files /dev/null and b/files/assets/CHRISTMAS/songs/herecumstrap.mp3 differ
diff --git a/files/assets/CHRISTMAS/songs/holiday.mp3 b/files/assets/CHRISTMAS/songs/holiday.mp3
new file mode 100644
index 000000000..89112cf0b
Binary files /dev/null and b/files/assets/CHRISTMAS/songs/holiday.mp3 differ
diff --git a/files/assets/CHRISTMAS/songs/kissing.mp3 b/files/assets/CHRISTMAS/songs/kissing.mp3
new file mode 100644
index 000000000..6d4fbcd33
Binary files /dev/null and b/files/assets/CHRISTMAS/songs/kissing.mp3 differ
diff --git a/files/assets/CHRISTMAS/songs/lindplum.mp3 b/files/assets/CHRISTMAS/songs/lindplum.mp3
new file mode 100644
index 000000000..5c4ef8c8f
Binary files /dev/null and b/files/assets/CHRISTMAS/songs/lindplum.mp3 differ
diff --git a/files/assets/CHRISTMAS/songs/low.mp3 b/files/assets/CHRISTMAS/songs/low.mp3
new file mode 100644
index 000000000..a20b8dd81
Binary files /dev/null and b/files/assets/CHRISTMAS/songs/low.mp3 differ
diff --git a/files/assets/CHRISTMAS/songs/lowxmas.mp3 b/files/assets/CHRISTMAS/songs/lowxmas.mp3
new file mode 100644
index 000000000..c958665c0
Binary files /dev/null and b/files/assets/CHRISTMAS/songs/lowxmas.mp3 differ
diff --git a/files/assets/CHRISTMAS/songs/mariah.mp3 b/files/assets/CHRISTMAS/songs/mariah.mp3
new file mode 100644
index 000000000..c78afd773
Binary files /dev/null and b/files/assets/CHRISTMAS/songs/mariah.mp3 differ
diff --git a/files/assets/CHRISTMAS/songs/marysboykid.mp3 b/files/assets/CHRISTMAS/songs/marysboykid.mp3
new file mode 100644
index 000000000..332a87a40
Binary files /dev/null and b/files/assets/CHRISTMAS/songs/marysboykid.mp3 differ
diff --git a/files/assets/CHRISTMAS/songs/navidad.mp3 b/files/assets/CHRISTMAS/songs/navidad.mp3
new file mode 100644
index 000000000..f4df77532
Binary files /dev/null and b/files/assets/CHRISTMAS/songs/navidad.mp3 differ
diff --git a/files/assets/CHRISTMAS/songs/nightcore.mp3 b/files/assets/CHRISTMAS/songs/nightcore.mp3
new file mode 100644
index 000000000..896bab8c6
Binary files /dev/null and b/files/assets/CHRISTMAS/songs/nightcore.mp3 differ
diff --git a/files/assets/CHRISTMAS/songs/nightcore2.mp3 b/files/assets/CHRISTMAS/songs/nightcore2.mp3
new file mode 100644
index 000000000..68442a48d
Binary files /dev/null and b/files/assets/CHRISTMAS/songs/nightcore2.mp3 differ
diff --git a/files/assets/CHRISTMAS/songs/nightcore3.mp3 b/files/assets/CHRISTMAS/songs/nightcore3.mp3
new file mode 100644
index 000000000..22f1b1cbf
Binary files /dev/null and b/files/assets/CHRISTMAS/songs/nightcore3.mp3 differ
diff --git a/files/assets/CHRISTMAS/songs/nightmare.mp3 b/files/assets/CHRISTMAS/songs/nightmare.mp3
new file mode 100644
index 000000000..63fbfa61b
Binary files /dev/null and b/files/assets/CHRISTMAS/songs/nightmare.mp3 differ
diff --git a/files/assets/CHRISTMAS/songs/nkcchestnuts.mp3 b/files/assets/CHRISTMAS/songs/nkcchestnuts.mp3
new file mode 100644
index 000000000..ef5840b57
Binary files /dev/null and b/files/assets/CHRISTMAS/songs/nkcchestnuts.mp3 differ
diff --git a/files/assets/CHRISTMAS/songs/pentatonix.mp3 b/files/assets/CHRISTMAS/songs/pentatonix.mp3
new file mode 100644
index 000000000..b0ba9247d
Binary files /dev/null and b/files/assets/CHRISTMAS/songs/pentatonix.mp3 differ
diff --git a/files/assets/CHRISTMAS/songs/perryholy.mp3 b/files/assets/CHRISTMAS/songs/perryholy.mp3
new file mode 100644
index 000000000..d8b906c93
Binary files /dev/null and b/files/assets/CHRISTMAS/songs/perryholy.mp3 differ
diff --git a/files/assets/CHRISTMAS/songs/rockin.mp3 b/files/assets/CHRISTMAS/songs/rockin.mp3
new file mode 100644
index 000000000..1ce29d566
Binary files /dev/null and b/files/assets/CHRISTMAS/songs/rockin.mp3 differ
diff --git a/files/assets/CHRISTMAS/songs/rockintrap.mp3 b/files/assets/CHRISTMAS/songs/rockintrap.mp3
new file mode 100644
index 000000000..a3129089c
Binary files /dev/null and b/files/assets/CHRISTMAS/songs/rockintrap.mp3 differ
diff --git a/files/assets/CHRISTMAS/songs/rudolph.mp3 b/files/assets/CHRISTMAS/songs/rudolph.mp3
new file mode 100644
index 000000000..ff0961a9e
Binary files /dev/null and b/files/assets/CHRISTMAS/songs/rudolph.mp3 differ
diff --git a/files/assets/CHRISTMAS/songs/rudolphtrap.mp3 b/files/assets/CHRISTMAS/songs/rudolphtrap.mp3
new file mode 100644
index 000000000..a8e2c7882
Binary files /dev/null and b/files/assets/CHRISTMAS/songs/rudolphtrap.mp3 differ
diff --git a/files/assets/CHRISTMAS/songs/santa.mp3 b/files/assets/CHRISTMAS/songs/santa.mp3
new file mode 100644
index 000000000..feaece8e7
Binary files /dev/null and b/files/assets/CHRISTMAS/songs/santa.mp3 differ
diff --git a/files/assets/CHRISTMAS/songs/santababy.mp3 b/files/assets/CHRISTMAS/songs/santababy.mp3
new file mode 100644
index 000000000..8e5d8a5c6
Binary files /dev/null and b/files/assets/CHRISTMAS/songs/santababy.mp3 differ
diff --git a/files/assets/CHRISTMAS/songs/santacumtownn.mp3 b/files/assets/CHRISTMAS/songs/santacumtownn.mp3
new file mode 100644
index 000000000..3d68add49
Binary files /dev/null and b/files/assets/CHRISTMAS/songs/santacumtownn.mp3 differ
diff --git a/files/assets/CHRISTMAS/songs/simply.mp3 b/files/assets/CHRISTMAS/songs/simply.mp3
new file mode 100644
index 000000000..a7688d6aa
Binary files /dev/null and b/files/assets/CHRISTMAS/songs/simply.mp3 differ
diff --git a/files/assets/CHRISTMAS/songs/simplyhaving.mp3 b/files/assets/CHRISTMAS/songs/simplyhaving.mp3
new file mode 100644
index 000000000..8e5e76aca
Binary files /dev/null and b/files/assets/CHRISTMAS/songs/simplyhaving.mp3 differ
diff --git a/files/assets/CHRISTMAS/songs/sinatra.mp3 b/files/assets/CHRISTMAS/songs/sinatra.mp3
new file mode 100644
index 000000000..108034257
Binary files /dev/null and b/files/assets/CHRISTMAS/songs/sinatra.mp3 differ
diff --git a/files/assets/CHRISTMAS/songs/sinatra2.mp3 b/files/assets/CHRISTMAS/songs/sinatra2.mp3
new file mode 100644
index 000000000..317601ea2
Binary files /dev/null and b/files/assets/CHRISTMAS/songs/sinatra2.mp3 differ
diff --git a/files/assets/CHRISTMAS/songs/sinatramerry.mp3 b/files/assets/CHRISTMAS/songs/sinatramerry.mp3
new file mode 100644
index 000000000..128fbb509
Binary files /dev/null and b/files/assets/CHRISTMAS/songs/sinatramerry.mp3 differ
diff --git a/files/assets/CHRISTMAS/songs/steve.mp3 b/files/assets/CHRISTMAS/songs/steve.mp3
new file mode 100644
index 000000000..bf3eaf70b
Binary files /dev/null and b/files/assets/CHRISTMAS/songs/steve.mp3 differ
diff --git a/files/assets/CHRISTMAS/songs/sugarplum.mp3 b/files/assets/CHRISTMAS/songs/sugarplum.mp3
new file mode 100644
index 000000000..7bb4b4127
Binary files /dev/null and b/files/assets/CHRISTMAS/songs/sugarplum.mp3 differ
diff --git a/files/assets/CHRISTMAS/songs/sugartrap.mp3 b/files/assets/CHRISTMAS/songs/sugartrap.mp3
new file mode 100644
index 000000000..4507a59c7
Binary files /dev/null and b/files/assets/CHRISTMAS/songs/sugartrap.mp3 differ
diff --git a/files/assets/CHRISTMAS/songs/taytayxmas.mp3 b/files/assets/CHRISTMAS/songs/taytayxmas.mp3
new file mode 100644
index 000000000..adc1e0870
Binary files /dev/null and b/files/assets/CHRISTMAS/songs/taytayxmas.mp3 differ
diff --git a/files/assets/CHRISTMAS/songs/trans.mp3 b/files/assets/CHRISTMAS/songs/trans.mp3
new file mode 100644
index 000000000..02162b156
Binary files /dev/null and b/files/assets/CHRISTMAS/songs/trans.mp3 differ
diff --git a/files/assets/CHRISTMAS/songs/waitresses.mp3 b/files/assets/CHRISTMAS/songs/waitresses.mp3
new file mode 100644
index 000000000..b4e3b0da4
Binary files /dev/null and b/files/assets/CHRISTMAS/songs/waitresses.mp3 differ
diff --git a/files/assets/CHRISTMAS/songs/waitresseswrapping.mp3 b/files/assets/CHRISTMAS/songs/waitresseswrapping.mp3
new file mode 100644
index 000000000..72862e7c4
Binary files /dev/null and b/files/assets/CHRISTMAS/songs/waitresseswrapping.mp3 differ
diff --git a/files/assets/CHRISTMAS/songs/wham.mp3 b/files/assets/CHRISTMAS/songs/wham.mp3
new file mode 100644
index 000000000..78e55622a
Binary files /dev/null and b/files/assets/CHRISTMAS/songs/wham.mp3 differ
diff --git a/files/assets/CHRISTMAS/songs/womblexmas.mp3 b/files/assets/CHRISTMAS/songs/womblexmas.mp3
new file mode 100644
index 000000000..2520168dd
Binary files /dev/null and b/files/assets/CHRISTMAS/songs/womblexmas.mp3 differ
diff --git a/files/assets/CHRISTMAS/songs/wonderland.mp3 b/files/assets/CHRISTMAS/songs/wonderland.mp3
new file mode 100644
index 000000000..b70cab191
Binary files /dev/null and b/files/assets/CHRISTMAS/songs/wonderland.mp3 differ
diff --git a/files/assets/browserconfig.xml b/files/assets/browserconfig.xml
index b569a82ea..ff353594b 100644
--- a/files/assets/browserconfig.xml
+++ b/files/assets/browserconfig.xml
@@ -2,7 +2,7 @@
-
+
#FF66AC
diff --git a/files/assets/css/fa.css b/files/assets/css/fa.css
index 8c18f7172..75f53563b 100644
--- a/files/assets/css/fa.css
+++ b/files/assets/css/fa.css
@@ -1 +1,3 @@
-.fa,.fas,.far,.fal,.fad,.fab{-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;display:inline-block;font-style:normal;font-variant:normal;text-rendering:auto;line-height:1}.fa-lg{font-size:1.33333em;line-height:.75em;vertical-align:-.0667em}.fa-xs{font-size:.75em}.fa-sm{font-size:.875em}.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-fw{text-align:center;width:1.25em}.fa-ul{list-style-type:none;margin-left:2.5em;padding-left:0}.fa-ul>li{position:relative}.fa-li{left:-2em;position:absolute;text-align:center;width:2em;line-height:inherit}.fa-border{border:solid .08em #eee;border-radius:.1em;padding:.2em .25em .15em}.fa-pull-left{float:left}.fa-pull-right{float:right}.fa.fa-pull-left,.fas.fa-pull-left,.far.fa-pull-left,.fal.fa-pull-left,.fab.fa-pull-left{margin-right:.3em}.fa.fa-pull-right,.fas.fa-pull-right,.far.fa-pull-right,.fal.fa-pull-right,.fab.fa-pull-right{margin-left:.3em}.fa-spin{-webkit-animation:fa-spin 2s infinite linear;animation:fa-spin 2s infinite linear}.fa-pulse{-webkit-animation:fa-spin 1s infinite steps(8);animation:fa-spin 1s infinite steps(8)}@-webkit-keyframes fa-spin{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}100%{-webkit-transform:rotate(360deg);transform:rotate(360deg)}}@keyframes fa-spin{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}100%{-webkit-transform:rotate(360deg);transform:rotate(360deg)}}.fa-rotate-90{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=1)";-webkit-transform:rotate(90deg);transform:rotate(90deg)}.fa-rotate-180{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=2)";-webkit-transform:rotate(180deg);transform:rotate(180deg)}.fa-rotate-270{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=3)";-webkit-transform:rotate(270deg);transform:rotate(270deg)}.fa-flip-horizontal{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=0, mirror=1)";-webkit-transform:scale(-1,1);transform:scale(-1,1)}.fa-flip-vertical{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=2, mirror=1)";-webkit-transform:scale(1,-1);transform:scale(1,-1)}.fa-flip-both,.fa-flip-horizontal.fa-flip-vertical{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=2, mirror=1)";-webkit-transform:scale(-1,-1);transform:scale(-1,-1)}:root .fa-rotate-90,:root .fa-rotate-180,:root .fa-rotate-270,:root .fa-flip-horizontal,:root .fa-flip-vertical,:root .fa-flip-both{-webkit-filter:none;filter: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:0;position:absolute;text-align:center;width:100%}.fa-stack-1x{line-height:inherit}.fa-stack-2x{font-size:2em}.fa-inverse{color:#fff}.fa-500px:before{content:"\f26e"}.fa-abacus:before{content:"\f640"}.fa-accessible-icon:before{content:"\f368"}.fa-accusoft:before{content:"\f369"}.fa-acorn:before{content:"\f6ae"}.fa-acquisitions-incorporated:before{content:"\f6af"}.fa-ad:before{content:"\f641"}.fa-address-book:before{content:"\f2b9"}.fa-address-card:before{content:"\f2bb"}.fa-adjust:before{content:"\f042"}.fa-adn:before{content:"\f170"}.fa-adobe:before{content:"\f778"}.fa-adversal:before{content:"\f36a"}.fa-affiliatetheme:before{content:"\f36b"}.fa-air-conditioner:before{content:"\f8f4"}.fa-air-freshener:before{content:"\f5d0"}.fa-airbnb:before{content:"\f834"}.fa-alarm-clock:before{content:"\f34e"}.fa-alarm-exclamation:before{content:"\f843"}.fa-alarm-plus:before{content:"\f844"}.fa-alarm-snooze:before{content:"\f845"}.fa-album:before{content:"\f89f"}.fa-album-collection:before{content:"\f8a0"}.fa-algolia:before{content:"\f36c"}.fa-alicorn:before{content:"\f6b0"}.fa-alien:before{content:"\f8f5"}.fa-alien-monster:before{content:"\f8f6"}.fa-align-center:before{content:"\f037"}.fa-align-justify:before{content:"\f039"}.fa-align-left:before{content:"\f036"}.fa-align-right:before{content:"\f038"}.fa-align-slash:before{content:"\f846"}.fa-alipay:before{content:"\f642"}.fa-allergies:before{content:"\f461"}.fa-amazon:before{content:"\f270"}.fa-amazon-pay:before{content:"\f42c"}.fa-ambulance:before{content:"\f0f9"}.fa-american-sign-language-interpreting:before{content:"\f2a3"}.fa-amilia:before{content:"\f36d"}.fa-amp-guitar:before{content:"\f8a1"}.fa-analytics:before{content:"\f643"}.fa-anchor:before{content:"\f13d"}.fa-android:before{content:"\f17b"}.fa-angel:before{content:"\f779"}.fa-angellist:before{content:"\f209"}.fa-angle-double-down:before{content:"\f103"}.fa-angle-double-left:before{content:"\f100"}.fa-angle-double-right:before{content:"\f101"}.fa-angle-double-up:before{content:"\f102"}.fa-angle-down:before{content:"\f107"}.fa-angle-left:before{content:"\f104"}.fa-angle-right:before{content:"\f105"}.fa-angle-up:before{content:"\f106"}.fa-angry:before{content:"\f556"}.fa-angrycreative:before{content:"\f36e"}.fa-angular:before{content:"\f420"}.fa-ankh:before{content:"\f644"}.fa-app-store:before{content:"\f36f"}.fa-app-store-ios:before{content:"\f370"}.fa-apper:before{content:"\f371"}.fa-apple:before{content:"\f179"}.fa-apple-alt:before{content:"\f5d1"}.fa-apple-crate:before{content:"\f6b1"}.fa-apple-pay:before{content:"\f415"}.fa-archive:before{content:"\f187"}.fa-archway:before{content:"\f557"}.fa-arrow-alt-circle-down:before{content:"\f358"}.fa-arrow-alt-circle-left:before{content:"\f359"}.fa-arrow-alt-circle-right:before{content:"\f35a"}.fa-arrow-alt-circle-up:before{content:"\f35b"}.fa-arrow-alt-down:before{content:"\f354"}.fa-arrow-alt-from-bottom:before{content:"\f346"}.fa-arrow-alt-from-left:before{content:"\f347"}.fa-arrow-alt-from-right:before{content:"\f348"}.fa-arrow-alt-from-top:before{content:"\f349"}.fa-arrow-alt-left:before{content:"\f355"}.fa-arrow-alt-right:before{content:"\f356"}.fa-arrow-alt-square-down:before{content:"\f350"}.fa-arrow-alt-square-left:before{content:"\f351"}.fa-arrow-alt-square-right:before{content:"\f352"}.fa-arrow-alt-square-up:before{content:"\f353"}.fa-arrow-alt-to-bottom:before{content:"\f34a"}.fa-arrow-alt-to-left:before{content:"\f34b"}.fa-arrow-alt-to-right:before{content:"\f34c"}.fa-arrow-alt-to-top:before{content:"\f34d"}.fa-arrow-alt-up:before{content:"\f357"}.fa-arrow-circle-down:before{content:"\f0ab"}.fa-arrow-circle-left:before{content:"\f0a8"}.fa-arrow-circle-right:before{content:"\f0a9"}.fa-arrow-circle-up:before{content:"\f0aa"}.fa-arrow-down:before{content:"\f063"}.fa-arrow-from-bottom:before{content:"\f342"}.fa-arrow-from-left:before{content:"\f343"}.fa-arrow-from-right:before{content:"\f344"}.fa-arrow-from-top:before{content:"\f345"}.fa-arrow-left:before{content:"\f060"}.fa-arrow-right:before{content:"\f061"}.fa-arrow-square-down:before{content:"\f339"}.fa-arrow-square-left:before{content:"\f33a"}.fa-arrow-square-right:before{content:"\f33b"}.fa-arrow-square-up:before{content:"\f33c"}.fa-arrow-to-bottom:before{content:"\f33d"}.fa-arrow-to-left:before{content:"\f33e"}.fa-arrow-to-right:before{content:"\f340"}.fa-arrow-to-top:before{content:"\f341"}.fa-arrow-up:before{content:"\f062"}.fa-arrows:before{content:"\f047"}.fa-arrows-alt:before{content:"\f0b2"}.fa-arrows-alt-h:before{content:"\f337"}.fa-arrows-alt-v:before{content:"\f338"}.fa-arrows-h:before{content:"\f07e"}.fa-arrows-v:before{content:"\f07d"}.fa-artstation:before{content:"\f77a"}.fa-assistive-listening-systems:before{content:"\f2a2"}.fa-asterisk:before{content:"\f069"}.fa-asymmetrik:before{content:"\f372"}.fa-at:before{content:"\f1fa"}.fa-atlas:before{content:"\f558"}.fa-atlassian:before{content:"\f77b"}.fa-atom:before{content:"\f5d2"}.fa-atom-alt:before{content:"\f5d3"}.fa-audible:before{content:"\f373"}.fa-audio-description:before{content:"\f29e"}.fa-autoprefixer:before{content:"\f41c"}.fa-avianex:before{content:"\f374"}.fa-aviato:before{content:"\f421"}.fa-award:before{content:"\f559"}.fa-aws:before{content:"\f375"}.fa-axe:before{content:"\f6b2"}.fa-axe-battle:before{content:"\f6b3"}.fa-baby:before{content:"\f77c"}.fa-baby-carriage:before{content:"\f77d"}.fa-backpack:before{content:"\f5d4"}.fa-backspace:before{content:"\f55a"}.fa-backward:before{content:"\f04a"}.fa-bacon:before{content:"\f7e5"}.fa-badge:before{content:"\f335"}.fa-badge-check:before{content:"\f336"}.fa-badge-dollar:before{content:"\f645"}.fa-badge-percent:before{content:"\f646"}.fa-badge-sheriff:before{content:"\f8a2"}.fa-badger-honey:before{content:"\f6b4"}.fa-bags-shopping:before{content:"\f847"}.fa-bahai:before{content:"\f666"}.fa-balance-scale:before{content:"\f24e"}.fa-balance-scale-left:before{content:"\f515"}.fa-balance-scale-right:before{content:"\f516"}.fa-ball-pile:before{content:"\f77e"}.fa-ballot:before{content:"\f732"}.fa-ballot-check:before{content:"\f733"}.fa-ban:before{content:"\f05e"}.fa-band-aid:before{content:"\f462"}.fa-bandcamp:before{content:"\f2d5"}.fa-banjo:before{content:"\f8a3"}.fa-barcode:before{content:"\f02a"}.fa-barcode-alt:before{content:"\f463"}.fa-barcode-read:before{content:"\f464"}.fa-barcode-scan:before{content:"\f465"}.fa-bars:before{content:"\f0c9"}.fa-baseball:before{content:"\f432"}.fa-baseball-ball:before{content:"\f433"}.fa-basketball-ball:before{content:"\f434"}.fa-basketball-hoop:before{content:"\f435"}.fa-bat:before{content:"\f6b5"}.fa-bath:before{content:"\f2cd"}.fa-battery-bolt:before{content:"\f376"}.fa-battery-empty:before{content:"\f244"}.fa-battery-full:before{content:"\f240"}.fa-battery-half:before{content:"\f242"}.fa-battery-quarter:before{content:"\f243"}.fa-battery-slash:before{content:"\f377"}.fa-battery-three-quarters:before{content:"\f241"}.fa-battle-net:before{content:"\f835"}.fa-bed:before{content:"\f236"}.fa-bed-alt:before{content:"\f8f7"}.fa-bed-bunk:before{content:"\f8f8"}.fa-bed-empty:before{content:"\f8f9"}.fa-beer:before{content:"\f0fc"}.fa-behance:before{content:"\f1b4"}.fa-behance-square:before{content:"\f1b5"}.fa-bell:before{content:"\f0f3"}.fa-bell-exclamation:before{content:"\f848"}.fa-bell-on:before{content:"\f8fa"}.fa-bell-plus:before{content:"\f849"}.fa-bell-school:before{content:"\f5d5"}.fa-bell-school-slash:before{content:"\f5d6"}.fa-bell-slash:before{content:"\f1f6"}.fa-bells:before{content:"\f77f"}.fa-betamax:before{content:"\f8a4"}.fa-bezier-curve:before{content:"\f55b"}.fa-bible:before{content:"\f647"}.fa-bicycle:before{content:"\f206"}.fa-biking:before{content:"\f84a"}.fa-biking-mountain:before{content:"\f84b"}.fa-bimobject:before{content:"\f378"}.fa-binoculars:before{content:"\f1e5"}.fa-biohazard:before{content:"\f780"}.fa-birthday-cake:before{content:"\f1fd"}.fa-bitbucket:before{content:"\f171"}.fa-bitcoin:before{content:"\f379"}.fa-bity:before{content:"\f37a"}.fa-black-tie:before{content:"\f27e"}.fa-blackberry:before{content:"\f37b"}.fa-blanket:before{content:"\f498"}.fa-blender:before{content:"\f517"}.fa-blender-phone:before{content:"\f6b6"}.fa-blind:before{content:"\f29d"}.fa-blinds:before{content:"\f8fb"}.fa-blinds-open:before{content:"\f8fc"}.fa-blinds-raised:before{content:"\f8fd"}.fa-blog:before{content:"\f781"}.fa-blogger:before{content:"\f37c"}.fa-blogger-b:before{content:"\f37d"}.fa-bluetooth:before{content:"\f293"}.fa-bluetooth-b:before{content:"\f294"}.fa-bold:before{content:"\f032"}.fa-bolt:before{content:"\f0e7"}.fa-bomb:before{content:"\f1e2"}.fa-bone:before{content:"\f5d7"}.fa-bone-break:before{content:"\f5d8"}.fa-bong:before{content:"\f55c"}.fa-book:before{content:"\f02d"}.fa-book-alt:before{content:"\f5d9"}.fa-book-dead:before{content:"\f6b7"}.fa-book-heart:before{content:"\f499"}.fa-book-medical:before{content:"\f7e6"}.fa-book-open:before{content:"\f518"}.fa-book-reader:before{content:"\f5da"}.fa-book-spells:before{content:"\f6b8"}.fa-book-user:before{content:"\f7e7"}.fa-bookmark:before{content:"\f02e"}.fa-books:before{content:"\f5db"}.fa-books-medical:before{content:"\f7e8"}.fa-boombox:before{content:"\f8a5"}.fa-boot:before{content:"\f782"}.fa-booth-curtain:before{content:"\f734"}.fa-bootstrap:before{content:"\f836"}.fa-border-all:before{content:"\f84c"}.fa-border-bottom:before{content:"\f84d"}.fa-border-center-h:before{content:"\f89c"}.fa-border-center-v:before{content:"\f89d"}.fa-border-inner:before{content:"\f84e"}.fa-border-left:before{content:"\f84f"}.fa-border-none:before{content:"\f850"}.fa-border-outer:before{content:"\f851"}.fa-border-right:before{content:"\f852"}.fa-border-style:before{content:"\f853"}.fa-border-style-alt:before{content:"\f854"}.fa-border-top:before{content:"\f855"}.fa-bow-arrow:before{content:"\f6b9"}.fa-bowling-ball:before{content:"\f436"}.fa-bowling-pins:before{content:"\f437"}.fa-box:before{content:"\f466"}.fa-box-alt:before{content:"\f49a"}.fa-box-ballot:before{content:"\f735"}.fa-box-check:before{content:"\f467"}.fa-box-fragile:before{content:"\f49b"}.fa-box-full:before{content:"\f49c"}.fa-box-heart:before{content:"\f49d"}.fa-box-open:before{content:"\f49e"}.fa-box-up:before{content:"\f49f"}.fa-box-usd:before{content:"\f4a0"}.fa-boxes:before{content:"\f468"}.fa-boxes-alt:before{content:"\f4a1"}.fa-boxing-glove:before{content:"\f438"}.fa-brackets:before{content:"\f7e9"}.fa-brackets-curly:before{content:"\f7ea"}.fa-braille:before{content:"\f2a1"}.fa-brain:before{content:"\f5dc"}.fa-bread-loaf:before{content:"\f7eb"}.fa-bread-slice:before{content:"\f7ec"}.fa-briefcase:before{content:"\f0b1"}.fa-briefcase-medical:before{content:"\f469"}.fa-bring-forward:before{content:"\f856"}.fa-bring-front:before{content:"\f857"}.fa-broadcast-tower:before{content:"\f519"}.fa-broom:before{content:"\f51a"}.fa-browser:before{content:"\f37e"}.fa-brush:before{content:"\f55d"}.fa-btc:before{content:"\f15a"}.fa-buffer:before{content:"\f837"}.fa-bug:before{content:"\f188"}.fa-building:before{content:"\f1ad"}.fa-bullhorn:before{content:"\f0a1"}.fa-bullseye:before{content:"\f140"}.fa-bullseye-arrow:before{content:"\f648"}.fa-bullseye-pointer:before{content:"\f649"}.fa-burger-soda:before{content:"\f858"}.fa-burn:before{content:"\f46a"}.fa-buromobelexperte:before{content:"\f37f"}.fa-burrito:before{content:"\f7ed"}.fa-bus:before{content:"\f207"}.fa-bus-alt:before{content:"\f55e"}.fa-bus-school:before{content:"\f5dd"}.fa-business-time:before{content:"\f64a"}.fa-buy-n-large:before{content:"\f8a6"}.fa-buysellads:before{content:"\f20d"}.fa-cabinet-filing:before{content:"\f64b"}.fa-cactus:before{content:"\f8a7"}.fa-calculator:before{content:"\f1ec"}.fa-calculator-alt:before{content:"\f64c"}.fa-calendar:before{content:"\f133"}.fa-calendar-alt:before{content:"\f073"}.fa-calendar-check:before{content:"\f274"}.fa-calendar-day:before{content:"\f783"}.fa-calendar-edit:before{content:"\f333"}.fa-calendar-exclamation:before{content:"\f334"}.fa-calendar-minus:before{content:"\f272"}.fa-calendar-plus:before{content:"\f271"}.fa-calendar-star:before{content:"\f736"}.fa-calendar-times:before{content:"\f273"}.fa-calendar-week:before{content:"\f784"}.fa-camcorder:before{content:"\f8a8"}.fa-camera:before{content:"\f030"}.fa-camera-alt:before{content:"\f332"}.fa-camera-home:before{content:"\f8fe"}.fa-camera-movie:before{content:"\f8a9"}.fa-camera-polaroid:before{content:"\f8aa"}.fa-camera-retro:before{content:"\f083"}.fa-campfire:before{content:"\f6ba"}.fa-campground:before{content:"\f6bb"}.fa-canadian-maple-leaf:before{content:"\f785"}.fa-candle-holder:before{content:"\f6bc"}.fa-candy-cane:before{content:"\f786"}.fa-candy-corn:before{content:"\f6bd"}.fa-cannabis:before{content:"\f55f"}.fa-capsules:before{content:"\f46b"}.fa-car:before{content:"\f1b9"}.fa-car-alt:before{content:"\f5de"}.fa-car-battery:before{content:"\f5df"}.fa-car-building:before{content:"\f859"}.fa-car-bump:before{content:"\f5e0"}.fa-car-bus:before{content:"\f85a"}.fa-car-crash:before{content:"\f5e1"}.fa-car-garage:before{content:"\f5e2"}.fa-car-mechanic:before{content:"\f5e3"}.fa-car-side:before{content:"\f5e4"}.fa-car-tilt:before{content:"\f5e5"}.fa-car-wash:before{content:"\f5e6"}.fa-caravan:before{content:"\f8ff"}.fa-caravan-alt:before{content:"\f900"}.fa-caret-circle-down:before{content:"\f32d"}.fa-caret-circle-left:before{content:"\f32e"}.fa-caret-circle-right:before{content:"\f330"}.fa-caret-circle-up:before{content:"\f331"}.fa-caret-down:before{content:"\f0d7"}.fa-caret-left:before{content:"\f0d9"}.fa-caret-right:before{content:"\f0da"}.fa-caret-square-down:before{content:"\f150"}.fa-caret-square-left:before{content:"\f191"}.fa-caret-square-right:before{content:"\f152"}.fa-caret-square-up:before{content:"\f151"}.fa-caret-up:before{content:"\f0d8"}.fa-carrot:before{content:"\f787"}.fa-cars:before{content:"\f85b"}.fa-cart-arrow-down:before{content:"\f218"}.fa-cart-plus:before{content:"\f217"}.fa-cash-register:before{content:"\f788"}.fa-cassette-tape:before{content:"\f8ab"}.fa-cat:before{content:"\f6be"}.fa-cat-space:before{content:"\f901"}.fa-cauldron:before{content:"\f6bf"}.fa-cc-amazon-pay:before{content:"\f42d"}.fa-cc-amex:before{content:"\f1f3"}.fa-cc-apple-pay:before{content:"\f416"}.fa-cc-diners-club:before{content:"\f24c"}.fa-cc-discover:before{content:"\f1f2"}.fa-cc-jcb:before{content:"\f24b"}.fa-cc-mastercard:before{content:"\f1f1"}.fa-cc-paypal:before{content:"\f1f4"}.fa-cc-stripe:before{content:"\f1f5"}.fa-cc-visa:before{content:"\f1f0"}.fa-cctv:before{content:"\f8ac"}.fa-centercode:before{content:"\f380"}.fa-centos:before{content:"\f789"}.fa-certificate:before{content:"\f0a3"}.fa-chair:before{content:"\f6c0"}.fa-chair-office:before{content:"\f6c1"}.fa-chalkboard:before{content:"\f51b"}.fa-chalkboard-teacher:before{content:"\f51c"}.fa-charging-station:before{content:"\f5e7"}.fa-chart-area:before{content:"\f1fe"}.fa-chart-bar:before{content:"\f080"}.fa-chart-line:before{content:"\f201"}.fa-chart-line-down:before{content:"\f64d"}.fa-chart-network:before{content:"\f78a"}.fa-chart-pie:before{content:"\f200"}.fa-chart-pie-alt:before{content:"\f64e"}.fa-chart-scatter:before{content:"\f7ee"}.fa-check:before{content:"\f00c"}.fa-check-circle:before{content:"\f058"}.fa-check-double:before{content:"\f560"}.fa-check-square:before{content:"\f14a"}.fa-cheese:before{content:"\f7ef"}.fa-cheese-swiss:before{content:"\f7f0"}.fa-cheeseburger:before{content:"\f7f1"}.fa-chess:before{content:"\f439"}.fa-chess-bishop:before{content:"\f43a"}.fa-chess-bishop-alt:before{content:"\f43b"}.fa-chess-board:before{content:"\f43c"}.fa-chess-clock:before{content:"\f43d"}.fa-chess-clock-alt:before{content:"\f43e"}.fa-chess-king:before{content:"\f43f"}.fa-chess-king-alt:before{content:"\f440"}.fa-chess-knight:before{content:"\f441"}.fa-chess-knight-alt:before{content:"\f442"}.fa-chess-pawn:before{content:"\f443"}.fa-chess-pawn-alt:before{content:"\f444"}.fa-chess-queen:before{content:"\f445"}.fa-chess-queen-alt:before{content:"\f446"}.fa-chess-rook:before{content:"\f447"}.fa-chess-rook-alt:before{content:"\f448"}.fa-chevron-circle-down:before{content:"\f13a"}.fa-chevron-circle-left:before{content:"\f137"}.fa-chevron-circle-right:before{content:"\f138"}.fa-chevron-circle-up:before{content:"\f139"}.fa-chevron-double-down:before{content:"\f322"}.fa-chevron-double-left:before{content:"\f323"}.fa-chevron-double-right:before{content:"\f324"}.fa-chevron-double-up:before{content:"\f325"}.fa-chevron-down:before{content:"\f078"}.fa-chevron-left:before{content:"\f053"}.fa-chevron-right:before{content:"\f054"}.fa-chevron-square-down:before{content:"\f329"}.fa-chevron-square-left:before{content:"\f32a"}.fa-chevron-square-right:before{content:"\f32b"}.fa-chevron-square-up:before{content:"\f32c"}.fa-chevron-up:before{content:"\f077"}.fa-child:before{content:"\f1ae"}.fa-chimney:before{content:"\f78b"}.fa-chrome:before{content:"\f268"}.fa-chromecast:before{content:"\f838"}.fa-church:before{content:"\f51d"}.fa-circle:before{content:"\f111"}.fa-circle-notch:before{content:"\f1ce"}.fa-city:before{content:"\f64f"}.fa-clarinet:before{content:"\f8ad"}.fa-claw-marks:before{content:"\f6c2"}.fa-clinic-medical:before{content:"\f7f2"}.fa-clipboard:before{content:"\f328"}.fa-clipboard-check:before{content:"\f46c"}.fa-clipboard-list:before{content:"\f46d"}.fa-clipboard-list-check:before{content:"\f737"}.fa-clipboard-prescription:before{content:"\f5e8"}.fa-clipboard-user:before{content:"\f7f3"}.fa-clock:before{content:"\f017"}.fa-clone:before{content:"\f24d"}.fa-closed-captioning:before{content:"\f20a"}.fa-cloud:before{content:"\f0c2"}.fa-cloud-download:before{content:"\f0ed"}.fa-cloud-download-alt:before{content:"\f381"}.fa-cloud-drizzle:before{content:"\f738"}.fa-cloud-hail:before{content:"\f739"}.fa-cloud-hail-mixed:before{content:"\f73a"}.fa-cloud-meatball:before{content:"\f73b"}.fa-cloud-moon:before{content:"\f6c3"}.fa-cloud-moon-rain:before{content:"\f73c"}.fa-cloud-music:before{content:"\f8ae"}.fa-cloud-rain:before{content:"\f73d"}.fa-cloud-rainbow:before{content:"\f73e"}.fa-cloud-showers:before{content:"\f73f"}.fa-cloud-showers-heavy:before{content:"\f740"}.fa-cloud-sleet:before{content:"\f741"}.fa-cloud-snow:before{content:"\f742"}.fa-cloud-sun:before{content:"\f6c4"}.fa-cloud-sun-rain:before{content:"\f743"}.fa-cloud-upload:before{content:"\f0ee"}.fa-cloud-upload-alt:before{content:"\f382"}.fa-clouds:before{content:"\f744"}.fa-clouds-moon:before{content:"\f745"}.fa-clouds-sun:before{content:"\f746"}.fa-cloudscale:before{content:"\f383"}.fa-cloudsmith:before{content:"\f384"}.fa-cloudversify:before{content:"\f385"}.fa-club:before{content:"\f327"}.fa-cocktail:before{content:"\f561"}.fa-code:before{content:"\f121"}.fa-code-branch:before{content:"\f126"}.fa-code-commit:before{content:"\f386"}.fa-code-merge:before{content:"\f387"}.fa-codepen:before{content:"\f1cb"}.fa-codiepie:before{content:"\f284"}.fa-coffee:before{content:"\f0f4"}.fa-coffee-pot:before{content:"\f902"}.fa-coffee-togo:before{content:"\f6c5"}.fa-coffin:before{content:"\f6c6"}.fa-cog:before{content:"\f013"}.fa-cogs:before{content:"\f085"}.fa-coin:before{content:"\f85c"}.fa-coins:before{content:"\f51e"}.fa-columns:before{content:"\f0db"}.fa-comet:before{content:"\f903"}.fa-comment:before{content:"\f075"}.fa-comment-alt:before{content:"\f27a"}.fa-comment-alt-check:before{content:"\f4a2"}.fa-comment-alt-dollar:before{content:"\f650"}.fa-comment-alt-dots:before{content:"\f4a3"}.fa-comment-alt-edit:before{content:"\f4a4"}.fa-comment-alt-exclamation:before{content:"\f4a5"}.fa-comment-alt-lines:before{content:"\f4a6"}.fa-comment-alt-medical:before{content:"\f7f4"}.fa-comment-alt-minus:before{content:"\f4a7"}.fa-comment-alt-music:before{content:"\f8af"}.fa-comment-alt-plus:before{content:"\f4a8"}.fa-comment-alt-slash:before{content:"\f4a9"}.fa-comment-alt-smile:before{content:"\f4aa"}.fa-comment-alt-times:before{content:"\f4ab"}.fa-comment-check:before{content:"\f4ac"}.fa-comment-dollar:before{content:"\f651"}.fa-comment-dots:before{content:"\f4ad"}.fa-comment-edit:before{content:"\f4ae"}.fa-comment-exclamation:before{content:"\f4af"}.fa-comment-lines:before{content:"\f4b0"}.fa-comment-medical:before{content:"\f7f5"}.fa-comment-minus:before{content:"\f4b1"}.fa-comment-music:before{content:"\f8b0"}.fa-comment-plus:before{content:"\f4b2"}.fa-comment-slash:before{content:"\f4b3"}.fa-comment-smile:before{content:"\f4b4"}.fa-comment-times:before{content:"\f4b5"}.fa-comments:before{content:"\f086"}.fa-comments-alt:before{content:"\f4b6"}.fa-comments-alt-dollar:before{content:"\f652"}.fa-comments-dollar:before{content:"\f653"}.fa-compact-disc:before{content:"\f51f"}.fa-compass:before{content:"\f14e"}.fa-compass-slash:before{content:"\f5e9"}.fa-compress:before{content:"\f066"}.fa-compress-alt:before{content:"\f422"}.fa-compress-arrows-alt:before{content:"\f78c"}.fa-compress-wide:before{content:"\f326"}.fa-computer-classic:before{content:"\f8b1"}.fa-computer-speaker:before{content:"\f8b2"}.fa-concierge-bell:before{content:"\f562"}.fa-confluence:before{content:"\f78d"}.fa-connectdevelop:before{content:"\f20e"}.fa-construction:before{content:"\f85d"}.fa-container-storage:before{content:"\f4b7"}.fa-contao:before{content:"\f26d"}.fa-conveyor-belt:before{content:"\f46e"}.fa-conveyor-belt-alt:before{content:"\f46f"}.fa-cookie:before{content:"\f563"}.fa-cookie-bite:before{content:"\f564"}.fa-copy:before{content:"\f0c5"}.fa-copyright:before{content:"\f1f9"}.fa-corn:before{content:"\f6c7"}.fa-cotton-bureau:before{content:"\f89e"}.fa-couch:before{content:"\f4b8"}.fa-cow:before{content:"\f6c8"}.fa-cowbell:before{content:"\f8b3"}.fa-cowbell-more:before{content:"\f8b4"}.fa-cpanel:before{content:"\f388"}.fa-creative-commons:before{content:"\f25e"}.fa-creative-commons-by:before{content:"\f4e7"}.fa-creative-commons-nc:before{content:"\f4e8"}.fa-creative-commons-nc-eu:before{content:"\f4e9"}.fa-creative-commons-nc-jp:before{content:"\f4ea"}.fa-creative-commons-nd:before{content:"\f4eb"}.fa-creative-commons-pd:before{content:"\f4ec"}.fa-creative-commons-pd-alt:before{content:"\f4ed"}.fa-creative-commons-remix:before{content:"\f4ee"}.fa-creative-commons-sa:before{content:"\f4ef"}.fa-creative-commons-sampling:before{content:"\f4f0"}.fa-creative-commons-sampling-plus:before{content:"\f4f1"}.fa-creative-commons-share:before{content:"\f4f2"}.fa-creative-commons-zero:before{content:"\f4f3"}.fa-credit-card:before{content:"\f09d"}.fa-credit-card-blank:before{content:"\f389"}.fa-credit-card-front:before{content:"\f38a"}.fa-cricket:before{content:"\f449"}.fa-critical-role:before{content:"\f6c9"}.fa-croissant:before{content:"\f7f6"}.fa-crop:before{content:"\f125"}.fa-crop-alt:before{content:"\f565"}.fa-cross:before{content:"\f654"}.fa-crosshairs:before{content:"\f05b"}.fa-crow:before{content:"\f520"}.fa-crown:before{content:"\f521"}.fa-crutch:before{content:"\f7f7"}.fa-crutches:before{content:"\f7f8"}.fa-css3:before{content:"\f13c"}.fa-css3-alt:before{content:"\f38b"}.fa-cube:before{content:"\f1b2"}.fa-cubes:before{content:"\f1b3"}.fa-curling:before{content:"\f44a"}.fa-cut:before{content:"\f0c4"}.fa-cuttlefish:before{content:"\f38c"}.fa-d-and-d:before{content:"\f38d"}.fa-d-and-d-beyond:before{content:"\f6ca"}.fa-dagger:before{content:"\f6cb"}.fa-dashcube:before{content:"\f210"}.fa-database:before{content:"\f1c0"}.fa-deaf:before{content:"\f2a4"}.fa-debug:before{content:"\f7f9"}.fa-deer:before{content:"\f78e"}.fa-deer-rudolph:before{content:"\f78f"}.fa-delicious:before{content:"\f1a5"}.fa-democrat:before{content:"\f747"}.fa-deploydog:before{content:"\f38e"}.fa-deskpro:before{content:"\f38f"}.fa-desktop:before{content:"\f108"}.fa-desktop-alt:before{content:"\f390"}.fa-dev:before{content:"\f6cc"}.fa-deviantart:before{content:"\f1bd"}.fa-dewpoint:before{content:"\f748"}.fa-dharmachakra:before{content:"\f655"}.fa-dhl:before{content:"\f790"}.fa-diagnoses:before{content:"\f470"}.fa-diamond:before{content:"\f219"}.fa-diaspora:before{content:"\f791"}.fa-dice:before{content:"\f522"}.fa-dice-d10:before{content:"\f6cd"}.fa-dice-d12:before{content:"\f6ce"}.fa-dice-d20:before{content:"\f6cf"}.fa-dice-d4:before{content:"\f6d0"}.fa-dice-d6:before{content:"\f6d1"}.fa-dice-d8:before{content:"\f6d2"}.fa-dice-five:before{content:"\f523"}.fa-dice-four:before{content:"\f524"}.fa-dice-one:before{content:"\f525"}.fa-dice-six:before{content:"\f526"}.fa-dice-three:before{content:"\f527"}.fa-dice-two:before{content:"\f528"}.fa-digg:before{content:"\f1a6"}.fa-digging:before{content:"\f85e"}.fa-digital-ocean:before{content:"\f391"}.fa-digital-tachograph:before{content:"\f566"}.fa-diploma:before{content:"\f5ea"}.fa-directions:before{content:"\f5eb"}.fa-disc-drive:before{content:"\f8b5"}.fa-discord:before{content:"\f392"}.fa-discourse:before{content:"\f393"}.fa-disease:before{content:"\f7fa"}.fa-divide:before{content:"\f529"}.fa-dizzy:before{content:"\f567"}.fa-dna:before{content:"\f471"}.fa-do-not-enter:before{content:"\f5ec"}.fa-dochub:before{content:"\f394"}.fa-docker:before{content:"\f395"}.fa-dog:before{content:"\f6d3"}.fa-dog-leashed:before{content:"\f6d4"}.fa-dollar-sign:before{content:"\f155"}.fa-dolly:before{content:"\f472"}.fa-dolly-empty:before{content:"\f473"}.fa-dolly-flatbed:before{content:"\f474"}.fa-dolly-flatbed-alt:before{content:"\f475"}.fa-dolly-flatbed-empty:before{content:"\f476"}.fa-donate:before{content:"\f4b9"}.fa-door-closed:before{content:"\f52a"}.fa-door-open:before{content:"\f52b"}.fa-dot-circle:before{content:"\f192"}.fa-dove:before{content:"\f4ba"}.fa-download:before{content:"\f019"}.fa-draft2digital:before{content:"\f396"}.fa-drafting-compass:before{content:"\f568"}.fa-dragon:before{content:"\f6d5"}.fa-draw-circle:before{content:"\f5ed"}.fa-draw-polygon:before{content:"\f5ee"}.fa-draw-square:before{content:"\f5ef"}.fa-dreidel:before{content:"\f792"}.fa-dribbble:before{content:"\f17d"}.fa-dribbble-square:before{content:"\f397"}.fa-drone:before{content:"\f85f"}.fa-drone-alt:before{content:"\f860"}.fa-dropbox:before{content:"\f16b"}.fa-drum:before{content:"\f569"}.fa-drum-steelpan:before{content:"\f56a"}.fa-drumstick:before{content:"\f6d6"}.fa-drumstick-bite:before{content:"\f6d7"}.fa-drupal:before{content:"\f1a9"}.fa-dryer:before{content:"\f861"}.fa-dryer-alt:before{content:"\f862"}.fa-duck:before{content:"\f6d8"}.fa-dumbbell:before{content:"\f44b"}.fa-dumpster:before{content:"\f793"}.fa-dumpster-fire:before{content:"\f794"}.fa-dungeon:before{content:"\f6d9"}.fa-dyalog:before{content:"\f399"}.fa-ear:before{content:"\f5f0"}.fa-ear-muffs:before{content:"\f795"}.fa-earlybirds:before{content:"\f39a"}.fa-ebay:before{content:"\f4f4"}.fa-eclipse:before{content:"\f749"}.fa-eclipse-alt:before{content:"\f74a"}.fa-edge:before{content:"\f282"}.fa-edit:before{content:"\f044"}.fa-egg:before{content:"\f7fb"}.fa-egg-fried:before{content:"\f7fc"}.fa-eject:before{content:"\f052"}.fa-elementor:before{content:"\f430"}.fa-elephant:before{content:"\f6da"}.fa-ellipsis-h:before{content:"\f141"}.fa-ellipsis-h-alt:before{content:"\f39b"}.fa-ellipsis-v:before{content:"\f142"}.fa-ellipsis-v-alt:before{content:"\f39c"}.fa-ello:before{content:"\f5f1"}.fa-ember:before{content:"\f423"}.fa-empire:before{content:"\f1d1"}.fa-empty-set:before{content:"\f656"}.fa-engine-warning:before{content:"\f5f2"}.fa-envelope:before{content:"\f0e0"}.fa-envelope-open:before{content:"\f2b6"}.fa-envelope-open-dollar:before{content:"\f657"}.fa-envelope-open-text:before{content:"\f658"}.fa-envelope-square:before{content:"\f199"}.fa-envira:before{content:"\f299"}.fa-equals:before{content:"\f52c"}.fa-eraser:before{content:"\f12d"}.fa-erlang:before{content:"\f39d"}.fa-ethereum:before{content:"\f42e"}.fa-ethernet:before{content:"\f796"}.fa-etsy:before{content:"\f2d7"}.fa-euro-sign:before{content:"\f153"}.fa-evernote:before{content:"\f839"}.fa-exchange:before{content:"\f0ec"}.fa-exchange-alt:before{content:"\f362"}.fa-exclamation:before{content:"\f12a"}.fa-exclamation-circle:before{content:"\f06a"}.fa-exclamation-square:before{content:"\f321"}.fa-exclamation-triangle:before{content:"\f071"}.fa-expand:before{content:"\f065"}.fa-expand-alt:before{content:"\f424"}.fa-expand-arrows:before{content:"\f31d"}.fa-expand-arrows-alt:before{content:"\f31e"}.fa-expand-wide:before{content:"\f320"}.fa-expeditedssl:before{content:"\f23e"}.fa-external-link:before{content:"\f08e"}.fa-external-link-alt:before{content:"\f35d"}.fa-external-link-square:before{content:"\f14c"}.fa-external-link-square-alt:before{content:"\f360"}.fa-eye:before{content:"\f06e"}.fa-eye-dropper:before{content:"\f1fb"}.fa-eye-evil:before{content:"\f6db"}.fa-eye-slash:before{content:"\f070"}.fa-facebook:before{content:"\f09a"}.fa-facebook-f:before{content:"\f39e"}.fa-facebook-messenger:before{content:"\f39f"}.fa-facebook-square:before{content:"\f082"}.fa-fan:before{content:"\f863"}.fa-fan-table:before{content:"\f904"}.fa-fantasy-flight-games:before{content:"\f6dc"}.fa-farm:before{content:"\f864"}.fa-fast-backward:before{content:"\f049"}.fa-fast-forward:before{content:"\f050"}.fa-faucet:before{content:"\f905"}.fa-faucet-drip:before{content:"\f906"}.fa-fax:before{content:"\f1ac"}.fa-feather:before{content:"\f52d"}.fa-feather-alt:before{content:"\f56b"}.fa-fedex:before{content:"\f797"}.fa-fedora:before{content:"\f798"}.fa-female:before{content:"\f182"}.fa-field-hockey:before{content:"\f44c"}.fa-fighter-jet:before{content:"\f0fb"}.fa-figma:before{content:"\f799"}.fa-file:before{content:"\f15b"}.fa-file-alt:before{content:"\f15c"}.fa-file-archive:before{content:"\f1c6"}.fa-file-audio:before{content:"\f1c7"}.fa-file-certificate:before{content:"\f5f3"}.fa-file-chart-line:before{content:"\f659"}.fa-file-chart-pie:before{content:"\f65a"}.fa-file-check:before{content:"\f316"}.fa-file-code:before{content:"\f1c9"}.fa-file-contract:before{content:"\f56c"}.fa-file-csv:before{content:"\f6dd"}.fa-file-download:before{content:"\f56d"}.fa-file-edit:before{content:"\f31c"}.fa-file-excel:before{content:"\f1c3"}.fa-file-exclamation:before{content:"\f31a"}.fa-file-export:before{content:"\f56e"}.fa-file-image:before{content:"\f1c5"}.fa-file-import:before{content:"\f56f"}.fa-file-invoice:before{content:"\f570"}.fa-file-invoice-dollar:before{content:"\f571"}.fa-file-medical:before{content:"\f477"}.fa-file-medical-alt:before{content:"\f478"}.fa-file-minus:before{content:"\f318"}.fa-file-music:before{content:"\f8b6"}.fa-file-pdf:before{content:"\f1c1"}.fa-file-plus:before{content:"\f319"}.fa-file-powerpoint:before{content:"\f1c4"}.fa-file-prescription:before{content:"\f572"}.fa-file-search:before{content:"\f865"}.fa-file-signature:before{content:"\f573"}.fa-file-spreadsheet:before{content:"\f65b"}.fa-file-times:before{content:"\f317"}.fa-file-upload:before{content:"\f574"}.fa-file-user:before{content:"\f65c"}.fa-file-video:before{content:"\f1c8"}.fa-file-word:before{content:"\f1c2"}.fa-files-medical:before{content:"\f7fd"}.fa-fill:before{content:"\f575"}.fa-fill-drip:before{content:"\f576"}.fa-film:before{content:"\f008"}.fa-film-alt:before{content:"\f3a0"}.fa-film-canister:before{content:"\f8b7"}.fa-filter:before{content:"\f0b0"}.fa-fingerprint:before{content:"\f577"}.fa-fire:before{content:"\f06d"}.fa-fire-alt:before{content:"\f7e4"}.fa-fire-extinguisher:before{content:"\f134"}.fa-fire-smoke:before{content:"\f74b"}.fa-firefox:before{content:"\f269"}.fa-firefox-browser:before{content:"\f907"}.fa-fireplace:before{content:"\f79a"}.fa-first-aid:before{content:"\f479"}.fa-first-order:before{content:"\f2b0"}.fa-first-order-alt:before{content:"\f50a"}.fa-firstdraft:before{content:"\f3a1"}.fa-fish:before{content:"\f578"}.fa-fish-cooked:before{content:"\f7fe"}.fa-fist-raised:before{content:"\f6de"}.fa-flag:before{content:"\f024"}.fa-flag-alt:before{content:"\f74c"}.fa-flag-checkered:before{content:"\f11e"}.fa-flag-usa:before{content:"\f74d"}.fa-flame:before{content:"\f6df"}.fa-flashlight:before{content:"\f8b8"}.fa-flask:before{content:"\f0c3"}.fa-flask-poison:before{content:"\f6e0"}.fa-flask-potion:before{content:"\f6e1"}.fa-flickr:before{content:"\f16e"}.fa-flipboard:before{content:"\f44d"}.fa-flower:before{content:"\f7ff"}.fa-flower-daffodil:before{content:"\f800"}.fa-flower-tulip:before{content:"\f801"}.fa-flushed:before{content:"\f579"}.fa-flute:before{content:"\f8b9"}.fa-flux-capacitor:before{content:"\f8ba"}.fa-fly:before{content:"\f417"}.fa-fog:before{content:"\f74e"}.fa-folder:before{content:"\f07b"}.fa-folder-minus:before{content:"\f65d"}.fa-folder-open:before{content:"\f07c"}.fa-folder-plus:before{content:"\f65e"}.fa-folder-times:before{content:"\f65f"}.fa-folder-tree:before{content:"\f802"}.fa-folders:before{content:"\f660"}.fa-font:before{content:"\f031"}.fa-font-awesome:before{content:"\f2b4"}.fa-font-awesome-alt:before{content:"\f35c"}.fa-font-awesome-flag:before{content:"\f425"}.fa-font-awesome-logo-full:before{content:"\f4e6"}.fa-font-case:before{content:"\f866"}.fa-fonticons:before{content:"\f280"}.fa-fonticons-fi:before{content:"\f3a2"}.fa-football-ball:before{content:"\f44e"}.fa-football-helmet:before{content:"\f44f"}.fa-forklift:before{content:"\f47a"}.fa-fort-awesome:before{content:"\f286"}.fa-fort-awesome-alt:before{content:"\f3a3"}.fa-forumbee:before{content:"\f211"}.fa-forward:before{content:"\f04e"}.fa-foursquare:before{content:"\f180"}.fa-fragile:before{content:"\f4bb"}.fa-free-code-camp:before{content:"\f2c5"}.fa-freebsd:before{content:"\f3a4"}.fa-french-fries:before{content:"\f803"}.fa-frog:before{content:"\f52e"}.fa-frosty-head:before{content:"\f79b"}.fa-frown:before{content:"\f119"}.fa-frown-open:before{content:"\f57a"}.fa-fulcrum:before{content:"\f50b"}.fa-function:before{content:"\f661"}.fa-funnel-dollar:before{content:"\f662"}.fa-futbol:before{content:"\f1e3"}.fa-galactic-republic:before{content:"\f50c"}.fa-galactic-senate:before{content:"\f50d"}.fa-galaxy:before{content:"\f908"}.fa-game-board:before{content:"\f867"}.fa-game-board-alt:before{content:"\f868"}.fa-game-console-handheld:before{content:"\f8bb"}.fa-gamepad:before{content:"\f11b"}.fa-gamepad-alt:before{content:"\f8bc"}.fa-garage:before{content:"\f909"}.fa-garage-car:before{content:"\f90a"}.fa-garage-open:before{content:"\f90b"}.fa-gas-pump:before{content:"\f52f"}.fa-gas-pump-slash:before{content:"\f5f4"}.fa-gavel:before{content:"\f0e3"}.fa-gem:before{content:"\f3a5"}.fa-genderless:before{content:"\f22d"}.fa-get-pocket:before{content:"\f265"}.fa-gg:before{content:"\f260"}.fa-gg-circle:before{content:"\f261"}.fa-ghost:before{content:"\f6e2"}.fa-gift:before{content:"\f06b"}.fa-gift-card:before{content:"\f663"}.fa-gifts:before{content:"\f79c"}.fa-gingerbread-man:before{content:"\f79d"}.fa-git:before{content:"\f1d3"}.fa-git-alt:before{content:"\f841"}.fa-git-square:before{content:"\f1d2"}.fa-github:before{content:"\f09b"}.fa-github-alt:before{content:"\f113"}.fa-github-square:before{content:"\f092"}.fa-gitkraken:before{content:"\f3a6"}.fa-gitlab:before{content:"\f296"}.fa-gitter:before{content:"\f426"}.fa-glass:before{content:"\f804"}.fa-glass-champagne:before{content:"\f79e"}.fa-glass-cheers:before{content:"\f79f"}.fa-glass-citrus:before{content:"\f869"}.fa-glass-martini:before{content:"\f000"}.fa-glass-martini-alt:before{content:"\f57b"}.fa-glass-whiskey:before{content:"\f7a0"}.fa-glass-whiskey-rocks:before{content:"\f7a1"}.fa-glasses:before{content:"\f530"}.fa-glasses-alt:before{content:"\f5f5"}.fa-glide:before{content:"\f2a5"}.fa-glide-g:before{content:"\f2a6"}.fa-globe:before{content:"\f0ac"}.fa-globe-africa:before{content:"\f57c"}.fa-globe-americas:before{content:"\f57d"}.fa-globe-asia:before{content:"\f57e"}.fa-globe-europe:before{content:"\f7a2"}.fa-globe-snow:before{content:"\f7a3"}.fa-globe-stand:before{content:"\f5f6"}.fa-gofore:before{content:"\f3a7"}.fa-golf-ball:before{content:"\f450"}.fa-golf-club:before{content:"\f451"}.fa-goodreads:before{content:"\f3a8"}.fa-goodreads-g:before{content:"\f3a9"}.fa-google:before{content:"\f1a0"}.fa-google-drive:before{content:"\f3aa"}.fa-google-play:before{content:"\f3ab"}.fa-google-plus:before{content:"\f2b3"}.fa-google-plus-g:before{content:"\f0d5"}.fa-google-plus-square:before{content:"\f0d4"}.fa-google-wallet:before{content:"\f1ee"}.fa-gopuram:before{content:"\f664"}.fa-graduation-cap:before{content:"\f19d"}.fa-gramophone:before{content:"\f8bd"}.fa-gratipay:before{content:"\f184"}.fa-grav:before{content:"\f2d6"}.fa-greater-than:before{content:"\f531"}.fa-greater-than-equal:before{content:"\f532"}.fa-grimace:before{content:"\f57f"}.fa-grin:before{content:"\f580"}.fa-grin-alt:before{content:"\f581"}.fa-grin-beam:before{content:"\f582"}.fa-grin-beam-sweat:before{content:"\f583"}.fa-grin-hearts:before{content:"\f584"}.fa-grin-squint:before{content:"\f585"}.fa-grin-squint-tears:before{content:"\f586"}.fa-grin-stars:before{content:"\f587"}.fa-grin-tears:before{content:"\f588"}.fa-grin-tongue:before{content:"\f589"}.fa-grin-tongue-squint:before{content:"\f58a"}.fa-grin-tongue-wink:before{content:"\f58b"}.fa-grin-wink:before{content:"\f58c"}.fa-grip-horizontal:before{content:"\f58d"}.fa-grip-lines:before{content:"\f7a4"}.fa-grip-lines-vertical:before{content:"\f7a5"}.fa-grip-vertical:before{content:"\f58e"}.fa-gripfire:before{content:"\f3ac"}.fa-grunt:before{content:"\f3ad"}.fa-guitar:before{content:"\f7a6"}.fa-guitar-electric:before{content:"\f8be"}.fa-guitars:before{content:"\f8bf"}.fa-gulp:before{content:"\f3ae"}.fa-h-square:before{content:"\f0fd"}.fa-h1:before{content:"\f313"}.fa-h2:before{content:"\f314"}.fa-h3:before{content:"\f315"}.fa-h4:before{content:"\f86a"}.fa-hacker-news:before{content:"\f1d4"}.fa-hacker-news-square:before{content:"\f3af"}.fa-hackerrank:before{content:"\f5f7"}.fa-hamburger:before{content:"\f805"}.fa-hammer:before{content:"\f6e3"}.fa-hammer-war:before{content:"\f6e4"}.fa-hamsa:before{content:"\f665"}.fa-hand-heart:before{content:"\f4bc"}.fa-hand-holding:before{content:"\f4bd"}.fa-hand-holding-box:before{content:"\f47b"}.fa-hand-holding-heart:before{content:"\f4be"}.fa-hand-holding-magic:before{content:"\f6e5"}.fa-hand-holding-seedling:before{content:"\f4bf"}.fa-hand-holding-usd:before{content:"\f4c0"}.fa-hand-holding-water:before{content:"\f4c1"}.fa-hand-lizard:before{content:"\f258"}.fa-hand-middle-finger:before{content:"\f806"}.fa-hand-paper:before{content:"\f256"}.fa-hand-peace:before{content:"\f25b"}.fa-hand-point-down:before{content:"\f0a7"}.fa-hand-point-left:before{content:"\f0a5"}.fa-hand-point-right:before{content:"\f0a4"}.fa-hand-point-up:before{content:"\f0a6"}.fa-hand-pointer:before{content:"\f25a"}.fa-hand-receiving:before{content:"\f47c"}.fa-hand-rock:before{content:"\f255"}.fa-hand-scissors:before{content:"\f257"}.fa-hand-spock:before{content:"\f259"}.fa-hands:before{content:"\f4c2"}.fa-hands-heart:before{content:"\f4c3"}.fa-hands-helping:before{content:"\f4c4"}.fa-hands-usd:before{content:"\f4c5"}.fa-handshake:before{content:"\f2b5"}.fa-handshake-alt:before{content:"\f4c6"}.fa-hanukiah:before{content:"\f6e6"}.fa-hard-hat:before{content:"\f807"}.fa-hashtag:before{content:"\f292"}.fa-hat-chef:before{content:"\f86b"}.fa-hat-cowboy:before{content:"\f8c0"}.fa-hat-cowboy-side:before{content:"\f8c1"}.fa-hat-santa:before{content:"\f7a7"}.fa-hat-winter:before{content:"\f7a8"}.fa-hat-witch:before{content:"\f6e7"}.fa-hat-wizard:before{content:"\f6e8"}.fa-hdd:before{content:"\f0a0"}.fa-head-side:before{content:"\f6e9"}.fa-head-side-brain:before{content:"\f808"}.fa-head-side-headphones:before{content:"\f8c2"}.fa-head-side-medical:before{content:"\f809"}.fa-head-vr:before{content:"\f6ea"}.fa-heading:before{content:"\f1dc"}.fa-headphones:before{content:"\f025"}.fa-headphones-alt:before{content:"\f58f"}.fa-headset:before{content:"\f590"}.fa-heart:before{content:"\f004"}.fa-heart-broken:before{content:"\f7a9"}.fa-heart-circle:before{content:"\f4c7"}.fa-heart-rate:before{content:"\f5f8"}.fa-heart-square:before{content:"\f4c8"}.fa-heartbeat:before{content:"\f21e"}.fa-heat:before{content:"\f90c"}.fa-helicopter:before{content:"\f533"}.fa-helmet-battle:before{content:"\f6eb"}.fa-hexagon:before{content:"\f312"}.fa-highlighter:before{content:"\f591"}.fa-hiking:before{content:"\f6ec"}.fa-hippo:before{content:"\f6ed"}.fa-hips:before{content:"\f452"}.fa-hire-a-helper:before{content:"\f3b0"}.fa-history:before{content:"\f1da"}.fa-hockey-mask:before{content:"\f6ee"}.fa-hockey-puck:before{content:"\f453"}.fa-hockey-sticks:before{content:"\f454"}.fa-holly-berry:before{content:"\f7aa"}.fa-home:before{content:"\f015"}.fa-home-alt:before{content:"\f80a"}.fa-home-heart:before{content:"\f4c9"}.fa-home-lg:before{content:"\f80b"}.fa-home-lg-alt:before{content:"\f80c"}.fa-hood-cloak:before{content:"\f6ef"}.fa-hooli:before{content:"\f427"}.fa-horizontal-rule:before{content:"\f86c"}.fa-hornbill:before{content:"\f592"}.fa-horse:before{content:"\f6f0"}.fa-horse-head:before{content:"\f7ab"}.fa-horse-saddle:before{content:"\f8c3"}.fa-hospital:before{content:"\f0f8"}.fa-hospital-alt:before{content:"\f47d"}.fa-hospital-symbol:before{content:"\f47e"}.fa-hospital-user:before{content:"\f80d"}.fa-hospitals:before{content:"\f80e"}.fa-hot-tub:before{content:"\f593"}.fa-hotdog:before{content:"\f80f"}.fa-hotel:before{content:"\f594"}.fa-hotjar:before{content:"\f3b1"}.fa-hourglass:before{content:"\f254"}.fa-hourglass-end:before{content:"\f253"}.fa-hourglass-half:before{content:"\f252"}.fa-hourglass-start:before{content:"\f251"}.fa-house:before{content:"\f90d"}.fa-house-damage:before{content:"\f6f1"}.fa-house-day:before{content:"\f90e"}.fa-house-flood:before{content:"\f74f"}.fa-house-leave:before{content:"\f90f"}.fa-house-night:before{content:"\f910"}.fa-house-return:before{content:"\f911"}.fa-house-signal:before{content:"\f912"}.fa-houzz:before{content:"\f27c"}.fa-hryvnia:before{content:"\f6f2"}.fa-html5:before{content:"\f13b"}.fa-hubspot:before{content:"\f3b2"}.fa-humidity:before{content:"\f750"}.fa-hurricane:before{content:"\f751"}.fa-i-cursor:before{content:"\f246"}.fa-ice-cream:before{content:"\f810"}.fa-ice-skate:before{content:"\f7ac"}.fa-icicles:before{content:"\f7ad"}.fa-icons:before{content:"\f86d"}.fa-icons-alt:before{content:"\f86e"}.fa-id-badge:before{content:"\f2c1"}.fa-id-card:before{content:"\f2c2"}.fa-id-card-alt:before{content:"\f47f"}.fa-ideal:before{content:"\f913"}.fa-igloo:before{content:"\f7ae"}.fa-image:before{content:"\f03e"}.fa-image-polaroid:before{content:"\f8c4"}.fa-images:before{content:"\f302"}.fa-imdb:before{content:"\f2d8"}.fa-inbox:before{content:"\f01c"}.fa-inbox-in:before{content:"\f310"}.fa-inbox-out:before{content:"\f311"}.fa-indent:before{content:"\f03c"}.fa-industry:before{content:"\f275"}.fa-industry-alt:before{content:"\f3b3"}.fa-infinity:before{content:"\f534"}.fa-info:before{content:"\f129"}.fa-info-circle:before{content:"\f05a"}.fa-info-square:before{content:"\f30f"}.fa-inhaler:before{content:"\f5f9"}.fa-instagram:before{content:"\f16d"}.fa-integral:before{content:"\f667"}.fa-intercom:before{content:"\f7af"}.fa-internet-explorer:before{content:"\f26b"}.fa-intersection:before{content:"\f668"}.fa-inventory:before{content:"\f480"}.fa-invision:before{content:"\f7b0"}.fa-ioxhost:before{content:"\f208"}.fa-island-tropical:before{content:"\f811"}.fa-italic:before{content:"\f033"}.fa-itch-io:before{content:"\f83a"}.fa-itunes:before{content:"\f3b4"}.fa-itunes-note:before{content:"\f3b5"}.fa-jack-o-lantern:before{content:"\f30e"}.fa-java:before{content:"\f4e4"}.fa-jedi:before{content:"\f669"}.fa-jedi-order:before{content:"\f50e"}.fa-jenkins:before{content:"\f3b6"}.fa-jira:before{content:"\f7b1"}.fa-joget:before{content:"\f3b7"}.fa-joint:before{content:"\f595"}.fa-joomla:before{content:"\f1aa"}.fa-journal-whills:before{content:"\f66a"}.fa-joystick:before{content:"\f8c5"}.fa-js:before{content:"\f3b8"}.fa-js-square:before{content:"\f3b9"}.fa-jsfiddle:before{content:"\f1cc"}.fa-jug:before{content:"\f8c6"}.fa-kaaba:before{content:"\f66b"}.fa-kaggle:before{content:"\f5fa"}.fa-kazoo:before{content:"\f8c7"}.fa-kerning:before{content:"\f86f"}.fa-key:before{content:"\f084"}.fa-key-skeleton:before{content:"\f6f3"}.fa-keybase:before{content:"\f4f5"}.fa-keyboard:before{content:"\f11c"}.fa-keycdn:before{content:"\f3ba"}.fa-keynote:before{content:"\f66c"}.fa-khanda:before{content:"\f66d"}.fa-kickstarter:before{content:"\f3bb"}.fa-kickstarter-k:before{content:"\f3bc"}.fa-kidneys:before{content:"\f5fb"}.fa-kiss:before{content:"\f596"}.fa-kiss-beam:before{content:"\f597"}.fa-kiss-wink-heart:before{content:"\f598"}.fa-kite:before{content:"\f6f4"}.fa-kiwi-bird:before{content:"\f535"}.fa-knife-kitchen:before{content:"\f6f5"}.fa-korvue:before{content:"\f42f"}.fa-lambda:before{content:"\f66e"}.fa-lamp:before{content:"\f4ca"}.fa-lamp-desk:before{content:"\f914"}.fa-lamp-floor:before{content:"\f915"}.fa-landmark:before{content:"\f66f"}.fa-landmark-alt:before{content:"\f752"}.fa-language:before{content:"\f1ab"}.fa-laptop:before{content:"\f109"}.fa-laptop-code:before{content:"\f5fc"}.fa-laptop-medical:before{content:"\f812"}.fa-laravel:before{content:"\f3bd"}.fa-lasso:before{content:"\f8c8"}.fa-lastfm:before{content:"\f202"}.fa-lastfm-square:before{content:"\f203"}.fa-laugh:before{content:"\f599"}.fa-laugh-beam:before{content:"\f59a"}.fa-laugh-squint:before{content:"\f59b"}.fa-laugh-wink:before{content:"\f59c"}.fa-layer-group:before{content:"\f5fd"}.fa-layer-minus:before{content:"\f5fe"}.fa-layer-plus:before{content:"\f5ff"}.fa-leaf:before{content:"\f06c"}.fa-leaf-heart:before{content:"\f4cb"}.fa-leaf-maple:before{content:"\f6f6"}.fa-leaf-oak:before{content:"\f6f7"}.fa-leanpub:before{content:"\f212"}.fa-lemon:before{content:"\f094"}.fa-less:before{content:"\f41d"}.fa-less-than:before{content:"\f536"}.fa-less-than-equal:before{content:"\f537"}.fa-level-down:before{content:"\f149"}.fa-level-down-alt:before{content:"\f3be"}.fa-level-up:before{content:"\f148"}.fa-level-up-alt:before{content:"\f3bf"}.fa-life-ring:before{content:"\f1cd"}.fa-light-ceiling:before{content:"\f916"}.fa-light-switch:before{content:"\f917"}.fa-light-switch-off:before{content:"\f918"}.fa-light-switch-on:before{content:"\f919"}.fa-lightbulb:before{content:"\f0eb"}.fa-lightbulb-dollar:before{content:"\f670"}.fa-lightbulb-exclamation:before{content:"\f671"}.fa-lightbulb-on:before{content:"\f672"}.fa-lightbulb-slash:before{content:"\f673"}.fa-lights-holiday:before{content:"\f7b2"}.fa-line:before{content:"\f3c0"}.fa-line-columns:before{content:"\f870"}.fa-line-height:before{content:"\f871"}.fa-link:before{content:"\f0c1"}.fa-linkedin:before{content:"\f08c"}.fa-linkedin-in:before{content:"\f0e1"}.fa-linode:before{content:"\f2b8"}.fa-linux:before{content:"\f17c"}.fa-lips:before{content:"\f600"}.fa-lira-sign:before{content:"\f195"}.fa-list:before{content:"\f03a"}.fa-list-alt:before{content:"\f022"}.fa-list-music:before{content:"\f8c9"}.fa-list-ol:before{content:"\f0cb"}.fa-list-ul:before{content:"\f0ca"}.fa-location:before{content:"\f601"}.fa-location-arrow:before{content:"\f124"}.fa-location-circle:before{content:"\f602"}.fa-location-slash:before{content:"\f603"}.fa-lock:before{content:"\f023"}.fa-lock-alt:before{content:"\f30d"}.fa-lock-open:before{content:"\f3c1"}.fa-lock-open-alt:before{content:"\f3c2"}.fa-long-arrow-alt-down:before{content:"\f309"}.fa-long-arrow-alt-left:before{content:"\f30a"}.fa-long-arrow-alt-right:before{content:"\f30b"}.fa-long-arrow-alt-up:before{content:"\f30c"}.fa-long-arrow-down:before{content:"\f175"}.fa-long-arrow-left:before{content:"\f177"}.fa-long-arrow-right:before{content:"\f178"}.fa-long-arrow-up:before{content:"\f176"}.fa-loveseat:before{content:"\f4cc"}.fa-low-vision:before{content:"\f2a8"}.fa-luchador:before{content:"\f455"}.fa-luggage-cart:before{content:"\f59d"}.fa-lungs:before{content:"\f604"}.fa-lyft:before{content:"\f3c3"}.fa-mace:before{content:"\f6f8"}.fa-magento:before{content:"\f3c4"}.fa-magic:before{content:"\f0d0"}.fa-magnet:before{content:"\f076"}.fa-mail-bulk:before{content:"\f674"}.fa-mailbox:before{content:"\f813"}.fa-mailchimp:before{content:"\f59e"}.fa-male:before{content:"\f183"}.fa-mandalorian:before{content:"\f50f"}.fa-mandolin:before{content:"\f6f9"}.fa-map:before{content:"\f279"}.fa-map-marked:before{content:"\f59f"}.fa-map-marked-alt:before{content:"\f5a0"}.fa-map-marker:before{content:"\f041"}.fa-map-marker-alt:before{content:"\f3c5"}.fa-map-marker-alt-slash:before{content:"\f605"}.fa-map-marker-check:before{content:"\f606"}.fa-map-marker-edit:before{content:"\f607"}.fa-map-marker-exclamation:before{content:"\f608"}.fa-map-marker-minus:before{content:"\f609"}.fa-map-marker-plus:before{content:"\f60a"}.fa-map-marker-question:before{content:"\f60b"}.fa-map-marker-slash:before{content:"\f60c"}.fa-map-marker-smile:before{content:"\f60d"}.fa-map-marker-times:before{content:"\f60e"}.fa-map-pin:before{content:"\f276"}.fa-map-signs:before{content:"\f277"}.fa-markdown:before{content:"\f60f"}.fa-marker:before{content:"\f5a1"}.fa-mars:before{content:"\f222"}.fa-mars-double:before{content:"\f227"}.fa-mars-stroke:before{content:"\f229"}.fa-mars-stroke-h:before{content:"\f22b"}.fa-mars-stroke-v:before{content:"\f22a"}.fa-mask:before{content:"\f6fa"}.fa-mastodon:before{content:"\f4f6"}.fa-maxcdn:before{content:"\f136"}.fa-mdb:before{content:"\f8ca"}.fa-meat:before{content:"\f814"}.fa-medal:before{content:"\f5a2"}.fa-medapps:before{content:"\f3c6"}.fa-medium:before{content:"\f23a"}.fa-medium-m:before{content:"\f3c7"}.fa-medkit:before{content:"\f0fa"}.fa-medrt:before{content:"\f3c8"}.fa-meetup:before{content:"\f2e0"}.fa-megaphone:before{content:"\f675"}.fa-megaport:before{content:"\f5a3"}.fa-meh:before{content:"\f11a"}.fa-meh-blank:before{content:"\f5a4"}.fa-meh-rolling-eyes:before{content:"\f5a5"}.fa-memory:before{content:"\f538"}.fa-mendeley:before{content:"\f7b3"}.fa-menorah:before{content:"\f676"}.fa-mercury:before{content:"\f223"}.fa-meteor:before{content:"\f753"}.fa-microblog:before{content:"\f91a"}.fa-microchip:before{content:"\f2db"}.fa-microphone:before{content:"\f130"}.fa-microphone-alt:before{content:"\f3c9"}.fa-microphone-alt-slash:before{content:"\f539"}.fa-microphone-slash:before{content:"\f131"}.fa-microphone-stand:before{content:"\f8cb"}.fa-microscope:before{content:"\f610"}.fa-microsoft:before{content:"\f3ca"}.fa-microwave:before{content:"\f91b"}.fa-mind-share:before{content:"\f677"}.fa-minus:before{content:"\f068"}.fa-minus-circle:before{content:"\f056"}.fa-minus-hexagon:before{content:"\f307"}.fa-minus-octagon:before{content:"\f308"}.fa-minus-square:before{content:"\f146"}.fa-mistletoe:before{content:"\f7b4"}.fa-mitten:before{content:"\f7b5"}.fa-mix:before{content:"\f3cb"}.fa-mixcloud:before{content:"\f289"}.fa-mizuni:before{content:"\f3cc"}.fa-mobile:before{content:"\f10b"}.fa-mobile-alt:before{content:"\f3cd"}.fa-mobile-android:before{content:"\f3ce"}.fa-mobile-android-alt:before{content:"\f3cf"}.fa-modx:before{content:"\f285"}.fa-monero:before{content:"\f3d0"}.fa-money-bill:before{content:"\f0d6"}.fa-money-bill-alt:before{content:"\f3d1"}.fa-money-bill-wave:before{content:"\f53a"}.fa-money-bill-wave-alt:before{content:"\f53b"}.fa-money-check:before{content:"\f53c"}.fa-money-check-alt:before{content:"\f53d"}.fa-money-check-edit:before{content:"\f872"}.fa-money-check-edit-alt:before{content:"\f873"}.fa-monitor-heart-rate:before{content:"\f611"}.fa-monkey:before{content:"\f6fb"}.fa-monument:before{content:"\f5a6"}.fa-moon:before{content:"\f186"}.fa-moon-cloud:before{content:"\f754"}.fa-moon-stars:before{content:"\f755"}.fa-mortar-pestle:before{content:"\f5a7"}.fa-mosque:before{content:"\f678"}.fa-motorcycle:before{content:"\f21c"}.fa-mountain:before{content:"\f6fc"}.fa-mountains:before{content:"\f6fd"}.fa-mouse:before{content:"\f8cc"}.fa-mouse-alt:before{content:"\f8cd"}.fa-mouse-pointer:before{content:"\f245"}.fa-mp3-player:before{content:"\f8ce"}.fa-mug:before{content:"\f874"}.fa-mug-hot:before{content:"\f7b6"}.fa-mug-marshmallows:before{content:"\f7b7"}.fa-mug-tea:before{content:"\f875"}.fa-music:before{content:"\f001"}.fa-music-alt:before{content:"\f8cf"}.fa-music-alt-slash:before{content:"\f8d0"}.fa-music-slash:before{content:"\f8d1"}.fa-napster:before{content:"\f3d2"}.fa-narwhal:before{content:"\f6fe"}.fa-neos:before{content:"\f612"}.fa-network-wired:before{content:"\f6ff"}.fa-neuter:before{content:"\f22c"}.fa-newspaper:before{content:"\f1ea"}.fa-nimblr:before{content:"\f5a8"}.fa-node:before{content:"\f419"}.fa-node-js:before{content:"\f3d3"}.fa-not-equal:before{content:"\f53e"}.fa-notes-medical:before{content:"\f481"}.fa-npm:before{content:"\f3d4"}.fa-ns8:before{content:"\f3d5"}.fa-nutritionix:before{content:"\f3d6"}.fa-object-group:before{content:"\f247"}.fa-object-ungroup:before{content:"\f248"}.fa-octagon:before{content:"\f306"}.fa-odnoklassniki:before{content:"\f263"}.fa-odnoklassniki-square:before{content:"\f264"}.fa-oil-can:before{content:"\f613"}.fa-oil-temp:before{content:"\f614"}.fa-old-republic:before{content:"\f510"}.fa-om:before{content:"\f679"}.fa-omega:before{content:"\f67a"}.fa-opencart:before{content:"\f23d"}.fa-openid:before{content:"\f19b"}.fa-opera:before{content:"\f26a"}.fa-optin-monster:before{content:"\f23c"}.fa-orcid:before{content:"\f8d2"}.fa-ornament:before{content:"\f7b8"}.fa-osi:before{content:"\f41a"}.fa-otter:before{content:"\f700"}.fa-outdent:before{content:"\f03b"}.fa-outlet:before{content:"\f91c"}.fa-oven:before{content:"\f91d"}.fa-overline:before{content:"\f876"}.fa-page-break:before{content:"\f877"}.fa-page4:before{content:"\f3d7"}.fa-pagelines:before{content:"\f18c"}.fa-pager:before{content:"\f815"}.fa-paint-brush:before{content:"\f1fc"}.fa-paint-brush-alt:before{content:"\f5a9"}.fa-paint-roller:before{content:"\f5aa"}.fa-palette:before{content:"\f53f"}.fa-palfed:before{content:"\f3d8"}.fa-pallet:before{content:"\f482"}.fa-pallet-alt:before{content:"\f483"}.fa-paper-plane:before{content:"\f1d8"}.fa-paperclip:before{content:"\f0c6"}.fa-parachute-box:before{content:"\f4cd"}.fa-paragraph:before{content:"\f1dd"}.fa-paragraph-rtl:before{content:"\f878"}.fa-parking:before{content:"\f540"}.fa-parking-circle:before{content:"\f615"}.fa-parking-circle-slash:before{content:"\f616"}.fa-parking-slash:before{content:"\f617"}.fa-passport:before{content:"\f5ab"}.fa-pastafarianism:before{content:"\f67b"}.fa-paste:before{content:"\f0ea"}.fa-patreon:before{content:"\f3d9"}.fa-pause:before{content:"\f04c"}.fa-pause-circle:before{content:"\f28b"}.fa-paw:before{content:"\f1b0"}.fa-paw-alt:before{content:"\f701"}.fa-paw-claws:before{content:"\f702"}.fa-paypal:before{content:"\f1ed"}.fa-peace:before{content:"\f67c"}.fa-pegasus:before{content:"\f703"}.fa-pen:before{content:"\f304"}.fa-pen-alt:before{content:"\f305"}.fa-pen-fancy:before{content:"\f5ac"}.fa-pen-nib:before{content:"\f5ad"}.fa-pen-square:before{content:"\f14b"}.fa-pencil:before{content:"\f040"}.fa-pencil-alt:before{content:"\f303"}.fa-pencil-paintbrush:before{content:"\f618"}.fa-pencil-ruler:before{content:"\f5ae"}.fa-pennant:before{content:"\f456"}.fa-penny-arcade:before{content:"\f704"}.fa-people-carry:before{content:"\f4ce"}.fa-pepper-hot:before{content:"\f816"}.fa-percent:before{content:"\f295"}.fa-percentage:before{content:"\f541"}.fa-periscope:before{content:"\f3da"}.fa-person-booth:before{content:"\f756"}.fa-person-carry:before{content:"\f4cf"}.fa-person-dolly:before{content:"\f4d0"}.fa-person-dolly-empty:before{content:"\f4d1"}.fa-person-sign:before{content:"\f757"}.fa-phabricator:before{content:"\f3db"}.fa-phoenix-framework:before{content:"\f3dc"}.fa-phoenix-squadron:before{content:"\f511"}.fa-phone:before{content:"\f095"}.fa-phone-alt:before{content:"\f879"}.fa-phone-laptop:before{content:"\f87a"}.fa-phone-office:before{content:"\f67d"}.fa-phone-plus:before{content:"\f4d2"}.fa-phone-rotary:before{content:"\f8d3"}.fa-phone-slash:before{content:"\f3dd"}.fa-phone-square:before{content:"\f098"}.fa-phone-square-alt:before{content:"\f87b"}.fa-phone-volume:before{content:"\f2a0"}.fa-photo-video:before{content:"\f87c"}.fa-php:before{content:"\f457"}.fa-pi:before{content:"\f67e"}.fa-piano:before{content:"\f8d4"}.fa-piano-keyboard:before{content:"\f8d5"}.fa-pie:before{content:"\f705"}.fa-pied-piper:before{content:"\f2ae"}.fa-pied-piper-alt:before{content:"\f1a8"}.fa-pied-piper-hat:before{content:"\f4e5"}.fa-pied-piper-pp:before{content:"\f1a7"}.fa-pied-piper-square:before{content:"\f91e"}.fa-pig:before{content:"\f706"}.fa-piggy-bank:before{content:"\f4d3"}.fa-pills:before{content:"\f484"}.fa-pinterest:before{content:"\f0d2"}.fa-pinterest-p:before{content:"\f231"}.fa-pinterest-square:before{content:"\f0d3"}.fa-pizza:before{content:"\f817"}.fa-pizza-slice:before{content:"\f818"}.fa-place-of-worship:before{content:"\f67f"}.fa-plane:before{content:"\f072"}.fa-plane-alt:before{content:"\f3de"}.fa-plane-arrival:before{content:"\f5af"}.fa-plane-departure:before{content:"\f5b0"}.fa-planet-moon:before{content:"\f91f"}.fa-planet-ringed:before{content:"\f920"}.fa-play:before{content:"\f04b"}.fa-play-circle:before{content:"\f144"}.fa-playstation:before{content:"\f3df"}.fa-plug:before{content:"\f1e6"}.fa-plus:before{content:"\f067"}.fa-plus-circle:before{content:"\f055"}.fa-plus-hexagon:before{content:"\f300"}.fa-plus-octagon:before{content:"\f301"}.fa-plus-square:before{content:"\f0fe"}.fa-podcast:before{content:"\f2ce"}.fa-podium:before{content:"\f680"}.fa-podium-star:before{content:"\f758"}.fa-police-box:before{content:"\f921"}.fa-poll:before{content:"\f681"}.fa-poll-h:before{content:"\f682"}.fa-poll-people:before{content:"\f759"}.fa-poo:before{content:"\f2fe"}.fa-poo-storm:before{content:"\f75a"}.fa-poop:before{content:"\f619"}.fa-popcorn:before{content:"\f819"}.fa-portal-enter:before{content:"\f922"}.fa-portal-exit:before{content:"\f923"}.fa-portrait:before{content:"\f3e0"}.fa-pound-sign:before{content:"\f154"}.fa-power-off:before{content:"\f011"}.fa-pray:before{content:"\f683"}.fa-praying-hands:before{content:"\f684"}.fa-prescription:before{content:"\f5b1"}.fa-prescription-bottle:before{content:"\f485"}.fa-prescription-bottle-alt:before{content:"\f486"}.fa-presentation:before{content:"\f685"}.fa-print:before{content:"\f02f"}.fa-print-search:before{content:"\f81a"}.fa-print-slash:before{content:"\f686"}.fa-procedures:before{content:"\f487"}.fa-product-hunt:before{content:"\f288"}.fa-project-diagram:before{content:"\f542"}.fa-projector:before{content:"\f8d6"}.fa-pumpkin:before{content:"\f707"}.fa-pushed:before{content:"\f3e1"}.fa-puzzle-piece:before{content:"\f12e"}.fa-python:before{content:"\f3e2"}.fa-qq:before{content:"\f1d6"}.fa-qrcode:before{content:"\f029"}.fa-question:before{content:"\f128"}.fa-question-circle:before{content:"\f059"}.fa-question-square:before{content:"\f2fd"}.fa-quidditch:before{content:"\f458"}.fa-quinscape:before{content:"\f459"}.fa-quora:before{content:"\f2c4"}.fa-quote-left:before{content:"\f10d"}.fa-quote-right:before{content:"\f10e"}.fa-quran:before{content:"\f687"}.fa-r-project:before{content:"\f4f7"}.fa-rabbit:before{content:"\f708"}.fa-rabbit-fast:before{content:"\f709"}.fa-racquet:before{content:"\f45a"}.fa-radar:before{content:"\f924"}.fa-radiation:before{content:"\f7b9"}.fa-radiation-alt:before{content:"\f7ba"}.fa-radio:before{content:"\f8d7"}.fa-radio-alt:before{content:"\f8d8"}.fa-rainbow:before{content:"\f75b"}.fa-raindrops:before{content:"\f75c"}.fa-ram:before{content:"\f70a"}.fa-ramp-loading:before{content:"\f4d4"}.fa-random:before{content:"\f074"}.fa-raspberry-pi:before{content:"\f7bb"}.fa-ravelry:before{content:"\f2d9"}.fa-raygun:before{content:"\f925"}.fa-react:before{content:"\f41b"}.fa-reacteurope:before{content:"\f75d"}.fa-readme:before{content:"\f4d5"}.fa-rebel:before{content:"\f1d0"}.fa-receipt:before{content:"\f543"}.fa-record-vinyl:before{content:"\f8d9"}.fa-rectangle-landscape:before{content:"\f2fa"}.fa-rectangle-portrait:before{content:"\f2fb"}.fa-rectangle-wide:before{content:"\f2fc"}.fa-recycle:before{content:"\f1b8"}.fa-red-river:before{content:"\f3e3"}.fa-reddit:before{content:"\f1a1"}.fa-reddit-alien:before{content:"\f281"}.fa-reddit-square:before{content:"\f1a2"}.fa-redhat:before{content:"\f7bc"}.fa-redo:before{content:"\f01e"}.fa-redo-alt:before{content:"\f2f9"}.fa-refrigerator:before{content:"\f926"}.fa-registered:before{content:"\f25d"}.fa-remove-format:before{content:"\f87d"}.fa-renren:before{content:"\f18b"}.fa-repeat:before{content:"\f363"}.fa-repeat-1:before{content:"\f365"}.fa-repeat-1-alt:before{content:"\f366"}.fa-repeat-alt:before{content:"\f364"}.fa-reply:before{content:"\f3e5"}.fa-reply-all:before{content:"\f122"}.fa-replyd:before{content:"\f3e6"}.fa-republican:before{content:"\f75e"}.fa-researchgate:before{content:"\f4f8"}.fa-resolving:before{content:"\f3e7"}.fa-restroom:before{content:"\f7bd"}.fa-retweet:before{content:"\f079"}.fa-retweet-alt:before{content:"\f361"}.fa-rev:before{content:"\f5b2"}.fa-ribbon:before{content:"\f4d6"}.fa-ring:before{content:"\f70b"}.fa-rings-wedding:before{content:"\f81b"}.fa-road:before{content:"\f018"}.fa-robot:before{content:"\f544"}.fa-rocket:before{content:"\f135"}.fa-rocket-launch:before{content:"\f927"}.fa-rocketchat:before{content:"\f3e8"}.fa-rockrms:before{content:"\f3e9"}.fa-route:before{content:"\f4d7"}.fa-route-highway:before{content:"\f61a"}.fa-route-interstate:before{content:"\f61b"}.fa-router:before{content:"\f8da"}.fa-rss:before{content:"\f09e"}.fa-rss-square:before{content:"\f143"}.fa-ruble-sign:before{content:"\f158"}.fa-ruler:before{content:"\f545"}.fa-ruler-combined:before{content:"\f546"}.fa-ruler-horizontal:before{content:"\f547"}.fa-ruler-triangle:before{content:"\f61c"}.fa-ruler-vertical:before{content:"\f548"}.fa-running:before{content:"\f70c"}.fa-rupee-sign:before{content:"\f156"}.fa-rv:before{content:"\f7be"}.fa-sack:before{content:"\f81c"}.fa-sack-dollar:before{content:"\f81d"}.fa-sad-cry:before{content:"\f5b3"}.fa-sad-tear:before{content:"\f5b4"}.fa-safari:before{content:"\f267"}.fa-salad:before{content:"\f81e"}.fa-salesforce:before{content:"\f83b"}.fa-sandwich:before{content:"\f81f"}.fa-sass:before{content:"\f41e"}.fa-satellite:before{content:"\f7bf"}.fa-satellite-dish:before{content:"\f7c0"}.fa-sausage:before{content:"\f820"}.fa-save:before{content:"\f0c7"}.fa-sax-hot:before{content:"\f8db"}.fa-saxophone:before{content:"\f8dc"}.fa-scalpel:before{content:"\f61d"}.fa-scalpel-path:before{content:"\f61e"}.fa-scanner:before{content:"\f488"}.fa-scanner-image:before{content:"\f8f3"}.fa-scanner-keyboard:before{content:"\f489"}.fa-scanner-touchscreen:before{content:"\f48a"}.fa-scarecrow:before{content:"\f70d"}.fa-scarf:before{content:"\f7c1"}.fa-schlix:before{content:"\f3ea"}.fa-school:before{content:"\f549"}.fa-screwdriver:before{content:"\f54a"}.fa-scribd:before{content:"\f28a"}.fa-scroll:before{content:"\f70e"}.fa-scroll-old:before{content:"\f70f"}.fa-scrubber:before{content:"\f2f8"}.fa-scythe:before{content:"\f710"}.fa-sd-card:before{content:"\f7c2"}.fa-search:before{content:"\f002"}.fa-search-dollar:before{content:"\f688"}.fa-search-location:before{content:"\f689"}.fa-search-minus:before{content:"\f010"}.fa-search-plus:before{content:"\f00e"}.fa-searchengin:before{content:"\f3eb"}.fa-seedling:before{content:"\f4d8"}.fa-sellcast:before{content:"\f2da"}.fa-sellsy:before{content:"\f213"}.fa-send-back:before{content:"\f87e"}.fa-send-backward:before{content:"\f87f"}.fa-sensor:before{content:"\f928"}.fa-sensor-alert:before{content:"\f929"}.fa-sensor-fire:before{content:"\f92a"}.fa-sensor-on:before{content:"\f92b"}.fa-sensor-smoke:before{content:"\f92c"}.fa-server:before{content:"\f233"}.fa-servicestack:before{content:"\f3ec"}.fa-shapes:before{content:"\f61f"}.fa-share:before{content:"\f064"}.fa-share-all:before{content:"\f367"}.fa-share-alt:before{content:"\f1e0"}.fa-share-alt-square:before{content:"\f1e1"}.fa-share-square:before{content:"\f14d"}.fa-sheep:before{content:"\f711"}.fa-shekel-sign:before{content:"\f20b"}.fa-shield:before{content:"\f132"}.fa-shield-alt:before{content:"\f3ed"}.fa-shield-check:before{content:"\f2f7"}.fa-shield-cross:before{content:"\f712"}.fa-ship:before{content:"\f21a"}.fa-shipping-fast:before{content:"\f48b"}.fa-shipping-timed:before{content:"\f48c"}.fa-shirtsinbulk:before{content:"\f214"}.fa-shish-kebab:before{content:"\f821"}.fa-shoe-prints:before{content:"\f54b"}.fa-shopping-bag:before{content:"\f290"}.fa-shopping-basket:before{content:"\f291"}.fa-shopping-cart:before{content:"\f07a"}.fa-shopware:before{content:"\f5b5"}.fa-shovel:before{content:"\f713"}.fa-shovel-snow:before{content:"\f7c3"}.fa-shower:before{content:"\f2cc"}.fa-shredder:before{content:"\f68a"}.fa-shuttle-van:before{content:"\f5b6"}.fa-shuttlecock:before{content:"\f45b"}.fa-sickle:before{content:"\f822"}.fa-sigma:before{content:"\f68b"}.fa-sign:before{content:"\f4d9"}.fa-sign-in:before{content:"\f090"}.fa-sign-in-alt:before{content:"\f2f6"}.fa-sign-language:before{content:"\f2a7"}.fa-sign-out:before{content:"\f08b"}.fa-sign-out-alt:before{content:"\f2f5"}.fa-signal:before{content:"\f012"}.fa-signal-1:before{content:"\f68c"}.fa-signal-2:before{content:"\f68d"}.fa-signal-3:before{content:"\f68e"}.fa-signal-4:before{content:"\f68f"}.fa-signal-alt:before{content:"\f690"}.fa-signal-alt-1:before{content:"\f691"}.fa-signal-alt-2:before{content:"\f692"}.fa-signal-alt-3:before{content:"\f693"}.fa-signal-alt-slash:before{content:"\f694"}.fa-signal-slash:before{content:"\f695"}.fa-signal-stream:before{content:"\f8dd"}.fa-signature:before{content:"\f5b7"}.fa-sim-card:before{content:"\f7c4"}.fa-simplybuilt:before{content:"\f215"}.fa-siren:before{content:"\f92d"}.fa-siren-on:before{content:"\f92e"}.fa-sistrix:before{content:"\f3ee"}.fa-sitemap:before{content:"\f0e8"}.fa-sith:before{content:"\f512"}.fa-skating:before{content:"\f7c5"}.fa-skeleton:before{content:"\f620"}.fa-sketch:before{content:"\f7c6"}.fa-ski-jump:before{content:"\f7c7"}.fa-ski-lift:before{content:"\f7c8"}.fa-skiing:before{content:"\f7c9"}.fa-skiing-nordic:before{content:"\f7ca"}.fa-skull:before{content:"\f54c"}.fa-skull-cow:before{content:"\f8de"}.fa-skull-crossbones:before{content:"\f714"}.fa-skyatlas:before{content:"\f216"}.fa-skype:before{content:"\f17e"}.fa-slack:before{content:"\f198"}.fa-slack-hash:before{content:"\f3ef"}.fa-slash:before{content:"\f715"}.fa-sledding:before{content:"\f7cb"}.fa-sleigh:before{content:"\f7cc"}.fa-sliders-h:before{content:"\f1de"}.fa-sliders-h-square:before{content:"\f3f0"}.fa-sliders-v:before{content:"\f3f1"}.fa-sliders-v-square:before{content:"\f3f2"}.fa-slideshare:before{content:"\f1e7"}.fa-smile:before{content:"\f118"}.fa-smile-beam:before{content:"\f5b8"}.fa-smile-plus:before{content:"\f5b9"}.fa-smile-wink:before{content:"\f4da"}.fa-smog:before{content:"\f75f"}.fa-smoke:before{content:"\f760"}.fa-smoking:before{content:"\f48d"}.fa-smoking-ban:before{content:"\f54d"}.fa-sms:before{content:"\f7cd"}.fa-snake:before{content:"\f716"}.fa-snapchat:before{content:"\f2ab"}.fa-snapchat-ghost:before{content:"\f2ac"}.fa-snapchat-square:before{content:"\f2ad"}.fa-snooze:before{content:"\f880"}.fa-snow-blowing:before{content:"\f761"}.fa-snowboarding:before{content:"\f7ce"}.fa-snowflake:before{content:"\f2dc"}.fa-snowflakes:before{content:"\f7cf"}.fa-snowman:before{content:"\f7d0"}.fa-snowmobile:before{content:"\f7d1"}.fa-snowplow:before{content:"\f7d2"}.fa-socks:before{content:"\f696"}.fa-solar-panel:before{content:"\f5ba"}.fa-solar-system:before{content:"\f92f"}.fa-sort:before{content:"\f0dc"}.fa-sort-alpha-down:before{content:"\f15d"}.fa-sort-alpha-down-alt:before{content:"\f881"}.fa-sort-alpha-up:before{content:"\f15e"}.fa-sort-alpha-up-alt:before{content:"\f882"}.fa-sort-alt:before{content:"\f883"}.fa-sort-amount-down:before{content:"\f160"}.fa-sort-amount-down-alt:before{content:"\f884"}.fa-sort-amount-up:before{content:"\f161"}.fa-sort-amount-up-alt:before{content:"\f885"}.fa-sort-circle:before{content:"\f930"}.fa-sort-circle-down:before{content:"\f931"}.fa-sort-circle-up:before{content:"\f932"}.fa-sort-down:before{content:"\f0dd"}.fa-sort-numeric-down:before{content:"\f162"}.fa-sort-numeric-down-alt:before{content:"\f886"}.fa-sort-numeric-up:before{content:"\f163"}.fa-sort-numeric-up-alt:before{content:"\f887"}.fa-sort-shapes-down:before{content:"\f888"}.fa-sort-shapes-down-alt:before{content:"\f889"}.fa-sort-shapes-up:before{content:"\f88a"}.fa-sort-shapes-up-alt:before{content:"\f88b"}.fa-sort-size-down:before{content:"\f88c"}.fa-sort-size-down-alt:before{content:"\f88d"}.fa-sort-size-up:before{content:"\f88e"}.fa-sort-size-up-alt:before{content:"\f88f"}.fa-sort-up:before{content:"\f0de"}.fa-soundcloud:before{content:"\f1be"}.fa-soup:before{content:"\f823"}.fa-sourcetree:before{content:"\f7d3"}.fa-spa:before{content:"\f5bb"}.fa-space-shuttle:before{content:"\f197"}.fa-space-station-moon:before{content:"\f933"}.fa-space-station-moon-alt:before{content:"\f934"}.fa-spade:before{content:"\f2f4"}.fa-sparkles:before{content:"\f890"}.fa-speakap:before{content:"\f3f3"}.fa-speaker:before{content:"\f8df"}.fa-speaker-deck:before{content:"\f83c"}.fa-speakers:before{content:"\f8e0"}.fa-spell-check:before{content:"\f891"}.fa-spider:before{content:"\f717"}.fa-spider-black-widow:before{content:"\f718"}.fa-spider-web:before{content:"\f719"}.fa-spinner:before{content:"\f110"}.fa-spinner-third:before{content:"\f3f4"}.fa-splotch:before{content:"\f5bc"}.fa-spotify:before{content:"\f1bc"}.fa-spray-can:before{content:"\f5bd"}.fa-sprinkler:before{content:"\f935"}.fa-square:before{content:"\f0c8"}.fa-square-full:before{content:"\f45c"}.fa-square-root:before{content:"\f697"}.fa-square-root-alt:before{content:"\f698"}.fa-squarespace:before{content:"\f5be"}.fa-squirrel:before{content:"\f71a"}.fa-stack-exchange:before{content:"\f18d"}.fa-stack-overflow:before{content:"\f16c"}.fa-stackpath:before{content:"\f842"}.fa-staff:before{content:"\f71b"}.fa-stamp:before{content:"\f5bf"}.fa-star:before{content:"\f005"}.fa-star-and-crescent:before{content:"\f699"}.fa-star-christmas:before{content:"\f7d4"}.fa-star-exclamation:before{content:"\f2f3"}.fa-star-half:before{content:"\f089"}.fa-star-half-alt:before{content:"\f5c0"}.fa-star-of-david:before{content:"\f69a"}.fa-star-of-life:before{content:"\f621"}.fa-star-shooting:before{content:"\f936"}.fa-starfighter:before{content:"\f937"}.fa-starfighter-alt:before{content:"\f938"}.fa-stars:before{content:"\f762"}.fa-starship:before{content:"\f939"}.fa-starship-freighter:before{content:"\f93a"}.fa-staylinked:before{content:"\f3f5"}.fa-steak:before{content:"\f824"}.fa-steam:before{content:"\f1b6"}.fa-steam-square:before{content:"\f1b7"}.fa-steam-symbol:before{content:"\f3f6"}.fa-steering-wheel:before{content:"\f622"}.fa-step-backward:before{content:"\f048"}.fa-step-forward:before{content:"\f051"}.fa-stethoscope:before{content:"\f0f1"}.fa-sticker-mule:before{content:"\f3f7"}.fa-sticky-note:before{content:"\f249"}.fa-stocking:before{content:"\f7d5"}.fa-stomach:before{content:"\f623"}.fa-stop:before{content:"\f04d"}.fa-stop-circle:before{content:"\f28d"}.fa-stopwatch:before{content:"\f2f2"}.fa-store:before{content:"\f54e"}.fa-store-alt:before{content:"\f54f"}.fa-strava:before{content:"\f428"}.fa-stream:before{content:"\f550"}.fa-street-view:before{content:"\f21d"}.fa-stretcher:before{content:"\f825"}.fa-strikethrough:before{content:"\f0cc"}.fa-stripe:before{content:"\f429"}.fa-stripe-s:before{content:"\f42a"}.fa-stroopwafel:before{content:"\f551"}.fa-studiovinari:before{content:"\f3f8"}.fa-stumbleupon:before{content:"\f1a4"}.fa-stumbleupon-circle:before{content:"\f1a3"}.fa-subscript:before{content:"\f12c"}.fa-subway:before{content:"\f239"}.fa-suitcase:before{content:"\f0f2"}.fa-suitcase-rolling:before{content:"\f5c1"}.fa-sun:before{content:"\f185"}.fa-sun-cloud:before{content:"\f763"}.fa-sun-dust:before{content:"\f764"}.fa-sun-haze:before{content:"\f765"}.fa-sunglasses:before{content:"\f892"}.fa-sunrise:before{content:"\f766"}.fa-sunset:before{content:"\f767"}.fa-superpowers:before{content:"\f2dd"}.fa-superscript:before{content:"\f12b"}.fa-supple:before{content:"\f3f9"}.fa-surprise:before{content:"\f5c2"}.fa-suse:before{content:"\f7d6"}.fa-swatchbook:before{content:"\f5c3"}.fa-swift:before{content:"\f8e1"}.fa-swimmer:before{content:"\f5c4"}.fa-swimming-pool:before{content:"\f5c5"}.fa-sword:before{content:"\f71c"}.fa-sword-laser:before{content:"\f93b"}.fa-sword-laser-alt:before{content:"\f93c"}.fa-swords:before{content:"\f71d"}.fa-swords-laser:before{content:"\f93d"}.fa-symfony:before{content:"\f83d"}.fa-synagogue:before{content:"\f69b"}.fa-sync:before{content:"\f021"}.fa-sync-alt:before{content:"\f2f1"}.fa-syringe:before{content:"\f48e"}.fa-table:before{content:"\f0ce"}.fa-table-tennis:before{content:"\f45d"}.fa-tablet:before{content:"\f10a"}.fa-tablet-alt:before{content:"\f3fa"}.fa-tablet-android:before{content:"\f3fb"}.fa-tablet-android-alt:before{content:"\f3fc"}.fa-tablet-rugged:before{content:"\f48f"}.fa-tablets:before{content:"\f490"}.fa-tachometer:before{content:"\f0e4"}.fa-tachometer-alt:before{content:"\f3fd"}.fa-tachometer-alt-average:before{content:"\f624"}.fa-tachometer-alt-fast:before{content:"\f625"}.fa-tachometer-alt-fastest:before{content:"\f626"}.fa-tachometer-alt-slow:before{content:"\f627"}.fa-tachometer-alt-slowest:before{content:"\f628"}.fa-tachometer-average:before{content:"\f629"}.fa-tachometer-fast:before{content:"\f62a"}.fa-tachometer-fastest:before{content:"\f62b"}.fa-tachometer-slow:before{content:"\f62c"}.fa-tachometer-slowest:before{content:"\f62d"}.fa-taco:before{content:"\f826"}.fa-tag:before{content:"\f02b"}.fa-tags:before{content:"\f02c"}.fa-tally:before{content:"\f69c"}.fa-tanakh:before{content:"\f827"}.fa-tape:before{content:"\f4db"}.fa-tasks:before{content:"\f0ae"}.fa-tasks-alt:before{content:"\f828"}.fa-taxi:before{content:"\f1ba"}.fa-teamspeak:before{content:"\f4f9"}.fa-teeth:before{content:"\f62e"}.fa-teeth-open:before{content:"\f62f"}.fa-telegram:before{content:"\f2c6"}.fa-telegram-plane:before{content:"\f3fe"}.fa-telescope:before{content:"\f93e"}.fa-temperature-down:before{content:"\f93f"}.fa-temperature-frigid:before{content:"\f768"}.fa-temperature-high:before{content:"\f769"}.fa-temperature-hot:before{content:"\f76a"}.fa-temperature-low:before{content:"\f76b"}.fa-temperature-up:before{content:"\f940"}.fa-tencent-weibo:before{content:"\f1d5"}.fa-tenge:before{content:"\f7d7"}.fa-tennis-ball:before{content:"\f45e"}.fa-terminal:before{content:"\f120"}.fa-text:before{content:"\f893"}.fa-text-height:before{content:"\f034"}.fa-text-size:before{content:"\f894"}.fa-text-width:before{content:"\f035"}.fa-th:before{content:"\f00a"}.fa-th-large:before{content:"\f009"}.fa-th-list:before{content:"\f00b"}.fa-the-red-yeti:before{content:"\f69d"}.fa-theater-masks:before{content:"\f630"}.fa-themeco:before{content:"\f5c6"}.fa-themeisle:before{content:"\f2b2"}.fa-thermometer:before{content:"\f491"}.fa-thermometer-empty:before{content:"\f2cb"}.fa-thermometer-full:before{content:"\f2c7"}.fa-thermometer-half:before{content:"\f2c9"}.fa-thermometer-quarter:before{content:"\f2ca"}.fa-thermometer-three-quarters:before{content:"\f2c8"}.fa-theta:before{content:"\f69e"}.fa-think-peaks:before{content:"\f731"}.fa-thumbs-down:before{content:"\f165"}.fa-thumbs-up:before{content:"\f164"}.fa-thumbtack:before{content:"\f08d";padding:2px;}.fa-thunderstorm:before{content:"\f76c"}.fa-thunderstorm-moon:before{content:"\f76d"}.fa-thunderstorm-sun:before{content:"\f76e"}.fa-ticket:before{content:"\f145"}.fa-ticket-alt:before{content:"\f3ff"}.fa-tilde:before{content:"\f69f"}.fa-times:before{content:"\f00d"}.fa-times-circle:before{content:"\f057"}.fa-times-hexagon:before{content:"\f2ee"}.fa-times-octagon:before{content:"\f2f0"}.fa-times-square:before{content:"\f2d3"}.fa-tint:before{content:"\f043"}.fa-tint-slash:before{content:"\f5c7"}.fa-tire:before{content:"\f631"}.fa-tire-flat:before{content:"\f632"}.fa-tire-pressure-warning:before{content:"\f633"}.fa-tire-rugged:before{content:"\f634"}.fa-tired:before{content:"\f5c8"}.fa-toggle-off:before{content:"\f204"}.fa-toggle-on:before{content:"\f205"}.fa-toilet:before{content:"\f7d8"}.fa-toilet-paper:before{content:"\f71e"}.fa-toilet-paper-alt:before{content:"\f71f"}.fa-tombstone:before{content:"\f720"}.fa-tombstone-alt:before{content:"\f721"}.fa-toolbox:before{content:"\f552"}.fa-tools:before{content:"\f7d9"}.fa-tooth:before{content:"\f5c9"}.fa-toothbrush:before{content:"\f635"}.fa-torah:before{content:"\f6a0"}.fa-torii-gate:before{content:"\f6a1"}.fa-tornado:before{content:"\f76f"}.fa-tractor:before{content:"\f722"}.fa-trade-federation:before{content:"\f513"}.fa-trademark:before{content:"\f25c"}.fa-traffic-cone:before{content:"\f636"}.fa-traffic-light:before{content:"\f637"}.fa-traffic-light-go:before{content:"\f638"}.fa-traffic-light-slow:before{content:"\f639"}.fa-traffic-light-stop:before{content:"\f63a"}.fa-trailer:before{content:"\f941"}.fa-train:before{content:"\f238"}.fa-tram:before{content:"\f7da"}.fa-transgender:before{content:"\f224"}.fa-transgender-alt:before{content:"\f225"}.fa-transporter:before{content:"\f942"}.fa-transporter-1:before{content:"\f943"}.fa-transporter-2:before{content:"\f944"}.fa-transporter-3:before{content:"\f945"}.fa-transporter-empty:before{content:"\f946"}.fa-trash:before{content:"\f1f8"}.fa-trash-alt:before{content:"\f2ed"}.fa-trash-restore:before{content:"\f829"}.fa-trash-restore-alt:before{content:"\f82a"}.fa-trash-undo:before{content:"\f895"}.fa-trash-undo-alt:before{content:"\f896"}.fa-treasure-chest:before{content:"\f723"}.fa-tree:before{content:"\f1bb"}.fa-tree-alt:before{content:"\f400"}.fa-tree-christmas:before{content:"\f7db"}.fa-tree-decorated:before{content:"\f7dc"}.fa-tree-large:before{content:"\f7dd"}.fa-tree-palm:before{content:"\f82b"}.fa-trees:before{content:"\f724"}.fa-trello:before{content:"\f181"}.fa-triangle:before{content:"\f2ec"}.fa-triangle-music:before{content:"\f8e2"}.fa-tripadvisor:before{content:"\f262"}.fa-trophy:before{content:"\f091"}.fa-trophy-alt:before{content:"\f2eb"}.fa-truck:before{content:"\f0d1"}.fa-truck-container:before{content:"\f4dc"}.fa-truck-couch:before{content:"\f4dd"}.fa-truck-loading:before{content:"\f4de"}.fa-truck-monster:before{content:"\f63b"}.fa-truck-moving:before{content:"\f4df"}.fa-truck-pickup:before{content:"\f63c"}.fa-truck-plow:before{content:"\f7de"}.fa-truck-ramp:before{content:"\f4e0"}.fa-trumpet:before{content:"\f8e3"}.fa-tshirt:before{content:"\f553"}.fa-tty:before{content:"\f1e4"}.fa-tumblr:before{content:"\f173"}.fa-tumblr-square:before{content:"\f174"}.fa-turkey:before{content:"\f725"}.fa-turntable:before{content:"\f8e4"}.fa-turtle:before{content:"\f726"}.fa-tv:before{content:"\f26c"}.fa-tv-alt:before{content:"\f8e5"}.fa-tv-music:before{content:"\f8e6"}.fa-tv-retro:before{content:"\f401"}.fa-twitch:before{content:"\f1e8"}.fa-twitter:before{content:"\f099"}.fa-twitter-square:before{content:"\f081"}.fa-typewriter:before{content:"\f8e7"}.fa-typo3:before{content:"\f42b"}.fa-uber:before{content:"\f402"}.fa-ubuntu:before{content:"\f7df"}.fa-ufo:before{content:"\f947"}.fa-ufo-beam:before{content:"\f948"}.fa-uikit:before{content:"\f403"}.fa-umbraco:before{content:"\f8e8"}.fa-umbrella:before{content:"\f0e9"}.fa-umbrella-beach:before{content:"\f5ca"}.fa-underline:before{content:"\f0cd"}.fa-undo:before{content:"\f0e2"}.fa-undo-alt:before{content:"\f2ea"}.fa-unicorn:before{content:"\f727"}.fa-union:before{content:"\f6a2"}.fa-uniregistry:before{content:"\f404"}.fa-unity:before{content:"\f949"}.fa-universal-access:before{content:"\f29a"}.fa-university:before{content:"\f19c"}.fa-unlink:before{content:"\f127"}.fa-unlock:before{content:"\f09c"}.fa-unlock-alt:before{content:"\f13e"}.fa-untappd:before{content:"\f405"}.fa-upload:before{content:"\f093"}.fa-ups:before{content:"\f7e0"}.fa-usb:before{content:"\f287"}.fa-usb-drive:before{content:"\f8e9"}.fa-usd-circle:before{content:"\f2e8"}.fa-usd-square:before{content:"\f2e9"}.fa-user:before{content:"\f007"}.fa-user-alien:before{content:"\f94a"}.fa-user-alt:before{content:"\f406"}.fa-user-alt-slash:before{content:"\f4fa"}.fa-user-astronaut:before{content:"\f4fb"}.fa-user-chart:before{content:"\f6a3"}.fa-user-check:before{content:"\f4fc"}.fa-user-circle:before{content:"\f2bd"}.fa-user-clock:before{content:"\f4fd"}.fa-user-cog:before{content:"\f4fe"}.fa-user-cowboy:before{content:"\f8ea"}.fa-user-crown:before{content:"\f6a4"}.fa-user-edit:before{content:"\f4ff"}.fa-user-friends:before{content:"\f500"}.fa-user-graduate:before{content:"\f501"}.fa-user-hard-hat:before{content:"\f82c"}.fa-user-headset:before{content:"\f82d"}.fa-user-injured:before{content:"\f728"}.fa-user-lock:before{content:"\f502"}.fa-user-md:before{content:"\f0f0"}.fa-user-md-chat:before{content:"\f82e"}.fa-user-minus:before{content:"\f503"}.fa-user-music:before{content:"\f8eb"}.fa-user-ninja:before{content:"\f504"}.fa-user-nurse:before{content:"\f82f"}.fa-user-plus:before{content:"\f234"}.fa-user-robot:before{content:"\f94b"}.fa-user-secret:before{content:"\f21b"}.fa-user-shield:before{content:"\f505"}.fa-user-slash:before{content:"\f506"}.fa-user-tag:before{content:"\f507"}.fa-user-tie:before{content:"\f508"}.fa-user-times:before{content:"\f235"}.fa-user-visor:before{content:"\f94c"}.fa-users:before{content:"\f0c0"}.fa-users-class:before{content:"\f63d"}.fa-users-cog:before{content:"\f509"}.fa-users-crown:before{content:"\f6a5"}.fa-users-medical:before{content:"\f830"}.fa-usps:before{content:"\f7e1"}.fa-ussunnah:before{content:"\f407"}.fa-utensil-fork:before{content:"\f2e3"}.fa-utensil-knife:before{content:"\f2e4"}.fa-utensil-spoon:before{content:"\f2e5"}.fa-utensils:before{content:"\f2e7"}.fa-utensils-alt:before{content:"\f2e6"}.fa-vaadin:before{content:"\f408"}.fa-vacuum:before{content:"\f94d"}.fa-vacuum-robot:before{content:"\f94e"}.fa-value-absolute:before{content:"\f6a6"}.fa-vector-square:before{content:"\f5cb"}.fa-venus:before{content:"\f221"}.fa-venus-double:before{content:"\f226"}.fa-venus-mars:before{content:"\f228"}.fa-vhs:before{content:"\f8ec"}.fa-viacoin:before{content:"\f237"}.fa-viadeo:before{content:"\f2a9"}.fa-viadeo-square:before{content:"\f2aa"}.fa-vial:before{content:"\f492"}.fa-vials:before{content:"\f493"}.fa-viber:before{content:"\f409"}.fa-video:before{content:"\f03d"}.fa-video-plus:before{content:"\f4e1"}.fa-video-slash:before{content:"\f4e2"}.fa-vihara:before{content:"\f6a7"}.fa-vimeo:before{content:"\f40a"}.fa-vimeo-square:before{content:"\f194"}.fa-vimeo-v:before{content:"\f27d"}.fa-vine:before{content:"\f1ca"}.fa-violin:before{content:"\f8ed"}.fa-vk:before{content:"\f189"}.fa-vnv:before{content:"\f40b"}.fa-voicemail:before{content:"\f897"}.fa-volcano:before{content:"\f770"}.fa-volleyball-ball:before{content:"\f45f"}.fa-volume:before{content:"\f6a8"}.fa-volume-down:before{content:"\f027"}.fa-volume-mute:before{content:"\f6a9"}.fa-volume-off:before{content:"\f026"}.fa-volume-slash:before{content:"\f2e2"}.fa-volume-up:before{content:"\f028"}.fa-vote-nay:before{content:"\f771"}.fa-vote-yea:before{content:"\f772"}.fa-vr-cardboard:before{content:"\f729"}.fa-vuejs:before{content:"\f41f"}.fa-wagon-covered:before{content:"\f8ee"}.fa-walker:before{content:"\f831"}.fa-walkie-talkie:before{content:"\f8ef"}.fa-walking:before{content:"\f554"}.fa-wallet:before{content:"\f555"}.fa-wand:before{content:"\f72a"}.fa-wand-magic:before{content:"\f72b"}.fa-warehouse:before{content:"\f494"}.fa-warehouse-alt:before{content:"\f495"}.fa-washer:before{content:"\f898"}.fa-watch:before{content:"\f2e1"}.fa-watch-calculator:before{content:"\f8f0"}.fa-watch-fitness:before{content:"\f63e"}.fa-water:before{content:"\f773"}.fa-water-lower:before{content:"\f774"}.fa-water-rise:before{content:"\f775"}.fa-wave-sine:before{content:"\f899"}.fa-wave-square:before{content:"\f83e"}.fa-wave-triangle:before{content:"\f89a"}.fa-waveform:before{content:"\f8f1"}.fa-waveform-path:before{content:"\f8f2"}.fa-waze:before{content:"\f83f"}.fa-webcam:before{content:"\f832"}.fa-webcam-slash:before{content:"\f833"}.fa-weebly:before{content:"\f5cc"}.fa-weibo:before{content:"\f18a"}.fa-weight:before{content:"\f496"}.fa-weight-hanging:before{content:"\f5cd"}.fa-weixin:before{content:"\f1d7"}.fa-whale:before{content:"\f72c"}.fa-whatsapp:before{content:"\f232"}.fa-whatsapp-square:before{content:"\f40c"}.fa-wheat:before{content:"\f72d"}.fa-wheelchair:before{content:"\f193"}.fa-whistle:before{content:"\f460"}.fa-whmcs:before{content:"\f40d"}.fa-wifi:before{content:"\f1eb"}.fa-wifi-1:before{content:"\f6aa"}.fa-wifi-2:before{content:"\f6ab"}.fa-wifi-slash:before{content:"\f6ac"}.fa-wikipedia-w:before{content:"\f266"}.fa-wind:before{content:"\f72e"}.fa-wind-turbine:before{content:"\f89b"}.fa-wind-warning:before{content:"\f776"}.fa-window:before{content:"\f40e"}.fa-window-alt:before{content:"\f40f"}.fa-window-close:before{content:"\f410"}.fa-window-frame:before{content:"\f94f"}.fa-window-frame-open:before{content:"\f950"}.fa-window-maximize:before{content:"\f2d0"}.fa-window-minimize:before{content:"\f2d1"}.fa-window-restore:before{content:"\f2d2"}.fa-windows:before{content:"\f17a"}.fa-windsock:before{content:"\f777"}.fa-wine-bottle:before{content:"\f72f"}.fa-wine-glass:before{content:"\f4e3"}.fa-wine-glass-alt:before{content:"\f5ce"}.fa-wix:before{content:"\f5cf"}.fa-wizards-of-the-coast:before{content:"\f730"}.fa-wolf-pack-battalion:before{content:"\f514"}.fa-won-sign:before{content:"\f159"}.fa-wordpress:before{content:"\f19a"}.fa-wordpress-simple:before{content:"\f411"}.fa-wpbeginner:before{content:"\f297"}.fa-wpexplorer:before{content:"\f2de"}.fa-wpforms:before{content:"\f298"}.fa-wpressr:before{content:"\f3e4"}.fa-wreath:before{content:"\f7e2"}.fa-wrench:before{content:"\f0ad"}.fa-x-ray:before{content:"\f497"}.fa-xbox:before{content:"\f412"}.fa-xing:before{content:"\f168"}.fa-xing-square:before{content:"\f169"}.fa-y-combinator:before{content:"\f23b"}.fa-yahoo:before{content:"\f19e"}.fa-yammer:before{content:"\f840"}.fa-yandex:before{content:"\f413"}.fa-yandex-international:before{content:"\f414"}.fa-yarn:before{content:"\f7e3"}.fa-yelp:before{content:"\f1e9"}.fa-yen-sign:before{content:"\f157"}.fa-yin-yang:before{content:"\f6ad"}.fa-yoast:before{content:"\f2b1"}.fa-youtube:before{content:"\f167"}.fa-youtube-square:before{content:"\f431"}.fa-zhihu:before{content:"\f63f"}.sr-only{border:0;clip:rect(0,0,0,0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px}.sr-only-focusable:active,.sr-only-focusable:focus{clip:auto;height:auto;margin:0;overflow:visible;position:static;width:auto}@font-face{font-family:'font awesome 5 brands';font-style:normal;font-weight:400;font-display:auto;src:url(../fonts/fa-brands-400.eot);src:url(../fonts/fa-brands-400.eot?#iefix) format("embedded-opentype"),url(../fonts/fa-brands-400.woff2) format("woff2"),url(../fonts/fa-brands-400.woff) format("woff"),url(../fonts/fa-brands-400.ttf) format("truetype"),url(../fonts/fa-brands-400.svg#fontawesome) format("svg")}.fab{font-family:'font awesome 5 brands'!important}@font-face{font-family:'font awesome 5 duotone';font-style:normal;font-weight:900;font-display:auto;src:url(../fonts/fa-duotone-900.eot);src:url(../fonts/fa-duotone-900.eot?#iefix) format("embedded-opentype"),url(../fonts/fa-duotone-900.woff2) format("woff2"),url(../fonts/fa-duotone-900.woff) format("woff"),url(../fonts/fa-duotone-900.ttf) format("truetype"),url(../fonts/fa-duotone-900.svg#fontawesome) format("svg")}.fad{position:relative;font-family:'font awesome 5 duotone'!important;font-weight:900}.fad:before{position:absolute;color:var(--fa-primary-color,inherit);opacity:1;opacity:var(--fa-primary-opacity,1)}.fad:after{color:var(--fa-secondary-color,inherit);opacity:.4;opacity:var(--fa-secondary-opacity,0.4)}.fa-swap-opacity .fad:before,.fad.fa-swap-opacity:before{opacity:.4;opacity:var(--fa-secondary-opacity,0.4)}.fa-swap-opacity .fad:after,.fad.fa-swap-opacity:after{opacity:1;opacity:var(--fa-primary-opacity,1)}.fad.fa-inverse{color:#fff}.fad.fa-stack-1x,.fad.fa-stack-2x{position:absolute}.fad.fa-stack-1x:before,.fad.fa-stack-2x:before,.fad.fa-fw:before{left:50%;-webkit-transform:translateX(-50%);transform:translateX(-50%)}.fad.fa-abacus:after{content:"\10f640"}.fad.fa-acorn:after{content:"\10f6ae"}.fad.fa-ad:after{content:"\10f641"}.fad.fa-address-book:after{content:"\10f2b9"}.fad.fa-address-card:after{content:"\10f2bb"}.fad.fa-adjust:after{content:"\10f042"}.fad.fa-air-conditioner:after{content:"\10f8f4"}.fad.fa-air-freshener:after{content:"\10f5d0"}.fad.fa-alarm-clock:after{content:"\10f34e"}.fad.fa-alarm-exclamation:after{content:"\10f843"}.fad.fa-alarm-plus:after{content:"\10f844"}.fad.fa-alarm-snooze:after{content:"\10f845"}.fad.fa-album:after{content:"\10f89f"}.fad.fa-album-collection:after{content:"\10f8a0"}.fad.fa-alicorn:after{content:"\10f6b0"}.fad.fa-alien:after{content:"\10f8f5"}.fad.fa-alien-monster:after{content:"\10f8f6"}.fad.fa-align-center:after{content:"\10f037"}.fad.fa-align-justify:after{content:"\10f039"}.fad.fa-align-left:after{content:"\10f036"}.fad.fa-align-right:after{content:"\10f038"}.fad.fa-align-slash:after{content:"\10f846"}.fad.fa-allergies:after{content:"\10f461"}.fad.fa-ambulance:after{content:"\10f0f9"}.fad.fa-american-sign-language-interpreting:after{content:"\10f2a3"}.fad.fa-amp-guitar:after{content:"\10f8a1"}.fad.fa-analytics:after{content:"\10f643"}.fad.fa-anchor:after{content:"\10f13d"}.fad.fa-angel:after{content:"\10f779"}.fad.fa-angle-double-down:after{content:"\10f103"}.fad.fa-angle-double-left:after{content:"\10f100"}.fad.fa-angle-double-right:after{content:"\10f101"}.fad.fa-angle-double-up:after{content:"\10f102"}.fad.fa-angle-down:after{content:"\10f107"}.fad.fa-angle-left:after{content:"\10f104"}.fad.fa-angle-right:after{content:"\10f105"}.fad.fa-angle-up:after{content:"\10f106"}.fad.fa-angry:after{content:"\10f556"}.fad.fa-ankh:after{content:"\10f644"}.fad.fa-apple-alt:after{content:"\10f5d1"}.fad.fa-apple-crate:after{content:"\10f6b1"}.fad.fa-archive:after{content:"\10f187"}.fad.fa-archway:after{content:"\10f557"}.fad.fa-arrow-alt-circle-down:after{content:"\10f358"}.fad.fa-arrow-alt-circle-left:after{content:"\10f359"}.fad.fa-arrow-alt-circle-right:after{content:"\10f35a"}.fad.fa-arrow-alt-circle-up:after{content:"\10f35b"}.fad.fa-arrow-alt-down:after{content:"\10f354"}.fad.fa-arrow-alt-from-bottom:after{content:"\10f346"}.fad.fa-arrow-alt-from-left:after{content:"\10f347"}.fad.fa-arrow-alt-from-right:after{content:"\10f348"}.fad.fa-arrow-alt-from-top:after{content:"\10f349"}.fad.fa-arrow-alt-left:after{content:"\10f355"}.fad.fa-arrow-alt-right:after{content:"\10f356"}.fad.fa-arrow-alt-square-down:after{content:"\10f350"}.fad.fa-arrow-alt-square-left:after{content:"\10f351"}.fad.fa-arrow-alt-square-right:after{content:"\10f352"}.fad.fa-arrow-alt-square-up:after{content:"\10f353"}.fad.fa-arrow-alt-to-bottom:after{content:"\10f34a"}.fad.fa-arrow-alt-to-left:after{content:"\10f34b"}.fad.fa-arrow-alt-to-right:after{content:"\10f34c"}.fad.fa-arrow-alt-to-top:after{content:"\10f34d"}.fad.fa-arrow-alt-up:after{content:"\10f357"}.fad.fa-arrow-circle-down:after{content:"\10f0ab"}.fad.fa-arrow-circle-left:after{content:"\10f0a8"}.fad.fa-arrow-circle-right:after{content:"\10f0a9"}.fad.fa-arrow-circle-up:after{content:"\10f0aa"}.fad.fa-arrow-down:after{content:"\10f063"}.fad.fa-arrow-from-bottom:after{content:"\10f342"}.fad.fa-arrow-from-left:after{content:"\10f343"}.fad.fa-arrow-from-right:after{content:"\10f344"}.fad.fa-arrow-from-top:after{content:"\10f345"}.fad.fa-arrow-left:after{content:"\10f060"}.fad.fa-arrow-right:after{content:"\10f061"}.fad.fa-arrow-square-down:after{content:"\10f339"}.fad.fa-arrow-square-left:after{content:"\10f33a"}.fad.fa-arrow-square-right:after{content:"\10f33b"}.fad.fa-arrow-square-up:after{content:"\10f33c"}.fad.fa-arrow-to-bottom:after{content:"\10f33d"}.fad.fa-arrow-to-left:after{content:"\10f33e"}.fad.fa-arrow-to-right:after{content:"\10f340"}.fad.fa-arrow-to-top:after{content:"\10f341"}.fad.fa-arrow-up:after{content:"\10f062"}.fad.fa-arrows:after{content:"\10f047"}.fad.fa-arrows-alt:after{content:"\10f0b2"}.fad.fa-arrows-alt-h:after{content:"\10f337"}.fad.fa-arrows-alt-v:after{content:"\10f338"}.fad.fa-arrows-h:after{content:"\10f07e"}.fad.fa-arrows-v:after{content:"\10f07d"}.fad.fa-assistive-listening-systems:after{content:"\10f2a2"}.fad.fa-asterisk:after{content:"\10f069"}.fad.fa-at:after{content:"\10f1fa"}.fad.fa-atlas:after{content:"\10f558"}.fad.fa-atom:after{content:"\10f5d2"}.fad.fa-atom-alt:after{content:"\10f5d3"}.fad.fa-audio-description:after{content:"\10f29e"}.fad.fa-award:after{content:"\10f559"}.fad.fa-axe:after{content:"\10f6b2"}.fad.fa-axe-battle:after{content:"\10f6b3"}.fad.fa-baby:after{content:"\10f77c"}.fad.fa-baby-carriage:after{content:"\10f77d"}.fad.fa-backpack:after{content:"\10f5d4"}.fad.fa-backspace:after{content:"\10f55a"}.fad.fa-backward:after{content:"\10f04a"}.fad.fa-bacon:after{content:"\10f7e5"}.fad.fa-badge:after{content:"\10f335"}.fad.fa-badge-check:after{content:"\10f336"}.fad.fa-badge-dollar:after{content:"\10f645"}.fad.fa-badge-percent:after{content:"\10f646"}.fad.fa-badge-sheriff:after{content:"\10f8a2"}.fad.fa-badger-honey:after{content:"\10f6b4"}.fad.fa-bags-shopping:after{content:"\10f847"}.fad.fa-bahai:after{content:"\10f666"}.fad.fa-balance-scale:after{content:"\10f24e"}.fad.fa-balance-scale-left:after{content:"\10f515"}.fad.fa-balance-scale-right:after{content:"\10f516"}.fad.fa-ball-pile:after{content:"\10f77e"}.fad.fa-ballot:after{content:"\10f732"}.fad.fa-ballot-check:after{content:"\10f733"}.fad.fa-ban:after{content:"\10f05e"}.fad.fa-band-aid:after{content:"\10f462"}.fad.fa-banjo:after{content:"\10f8a3"}.fad.fa-barcode:after{content:"\10f02a"}.fad.fa-barcode-alt:after{content:"\10f463"}.fad.fa-barcode-read:after{content:"\10f464"}.fad.fa-barcode-scan:after{content:"\10f465"}.fad.fa-bars:after{content:"\10f0c9"}.fad.fa-baseball:after{content:"\10f432"}.fad.fa-baseball-ball:after{content:"\10f433"}.fad.fa-basketball-ball:after{content:"\10f434"}.fad.fa-basketball-hoop:after{content:"\10f435"}.fad.fa-bat:after{content:"\10f6b5"}.fad.fa-bath:after{content:"\10f2cd"}.fad.fa-battery-bolt:after{content:"\10f376"}.fad.fa-battery-empty:after{content:"\10f244"}.fad.fa-battery-full:after{content:"\10f240"}.fad.fa-battery-half:after{content:"\10f242"}.fad.fa-battery-quarter:after{content:"\10f243"}.fad.fa-battery-slash:after{content:"\10f377"}.fad.fa-battery-three-quarters:after{content:"\10f241"}.fad.fa-bed:after{content:"\10f236"}.fad.fa-bed-alt:after{content:"\10f8f7"}.fad.fa-bed-bunk:after{content:"\10f8f8"}.fad.fa-bed-empty:after{content:"\10f8f9"}.fad.fa-beer:after{content:"\10f0fc"}.fad.fa-bell:after{content:"\10f0f3"}.fad.fa-bell-exclamation:after{content:"\10f848"}.fad.fa-bell-on:after{content:"\10f8fa"}.fad.fa-bell-plus:after{content:"\10f849"}.fad.fa-bell-school:after{content:"\10f5d5"}.fad.fa-bell-school-slash:after{content:"\10f5d6"}.fad.fa-bell-slash:after{content:"\10f1f6"}.fad.fa-bells:after{content:"\10f77f"}.fad.fa-betamax:after{content:"\10f8a4"}.fad.fa-bezier-curve:after{content:"\10f55b"}.fad.fa-bible:after{content:"\10f647"}.fad.fa-bicycle:after{content:"\10f206"}.fad.fa-biking:after{content:"\10f84a"}.fad.fa-biking-mountain:after{content:"\10f84b"}.fad.fa-binoculars:after{content:"\10f1e5"}.fad.fa-biohazard:after{content:"\10f780"}.fad.fa-birthday-cake:after{content:"\10f1fd"}.fad.fa-blanket:after{content:"\10f498"}.fad.fa-blender:after{content:"\10f517"}.fad.fa-blender-phone:after{content:"\10f6b6"}.fad.fa-blind:after{content:"\10f29d"}.fad.fa-blinds:after{content:"\10f8fb"}.fad.fa-blinds-open:after{content:"\10f8fc"}.fad.fa-blinds-raised:after{content:"\10f8fd"}.fad.fa-blog:after{content:"\10f781"}.fad.fa-bold:after{content:"\10f032"}.fad.fa-bolt:after{content:"\10f0e7"}.fad.fa-bomb:after{content:"\10f1e2"}.fad.fa-bone:after{content:"\10f5d7"}.fad.fa-bone-break:after{content:"\10f5d8"}.fad.fa-bong:after{content:"\10f55c"}.fad.fa-book:after{content:"\10f02d"}.fad.fa-book-alt:after{content:"\10f5d9"}.fad.fa-book-dead:after{content:"\10f6b7"}.fad.fa-book-heart:after{content:"\10f499"}.fad.fa-book-medical:after{content:"\10f7e6"}.fad.fa-book-open:after{content:"\10f518"}.fad.fa-book-reader:after{content:"\10f5da"}.fad.fa-book-spells:after{content:"\10f6b8"}.fad.fa-book-user:after{content:"\10f7e7"}.fad.fa-bookmark:after{content:"\10f02e"}.fad.fa-books:after{content:"\10f5db"}.fad.fa-books-medical:after{content:"\10f7e8"}.fad.fa-boombox:after{content:"\10f8a5"}.fad.fa-boot:after{content:"\10f782"}.fad.fa-booth-curtain:after{content:"\10f734"}.fad.fa-border-all:after{content:"\10f84c"}.fad.fa-border-bottom:after{content:"\10f84d"}.fad.fa-border-center-h:after{content:"\10f89c"}.fad.fa-border-center-v:after{content:"\10f89d"}.fad.fa-border-inner:after{content:"\10f84e"}.fad.fa-border-left:after{content:"\10f84f"}.fad.fa-border-none:after{content:"\10f850"}.fad.fa-border-outer:after{content:"\10f851"}.fad.fa-border-right:after{content:"\10f852"}.fad.fa-border-style:after{content:"\10f853"}.fad.fa-border-style-alt:after{content:"\10f854"}.fad.fa-border-top:after{content:"\10f855"}.fad.fa-bow-arrow:after{content:"\10f6b9"}.fad.fa-bowling-ball:after{content:"\10f436"}.fad.fa-bowling-pins:after{content:"\10f437"}.fad.fa-box:after{content:"\10f466"}.fad.fa-box-alt:after{content:"\10f49a"}.fad.fa-box-ballot:after{content:"\10f735"}.fad.fa-box-check:after{content:"\10f467"}.fad.fa-box-fragile:after{content:"\10f49b"}.fad.fa-box-full:after{content:"\10f49c"}.fad.fa-box-heart:after{content:"\10f49d"}.fad.fa-box-open:after{content:"\10f49e"}.fad.fa-box-up:after{content:"\10f49f"}.fad.fa-box-usd:after{content:"\10f4a0"}.fad.fa-boxes:after{content:"\10f468"}.fad.fa-boxes-alt:after{content:"\10f4a1"}.fad.fa-boxing-glove:after{content:"\10f438"}.fad.fa-brackets:after{content:"\10f7e9"}.fad.fa-brackets-curly:after{content:"\10f7ea"}.fad.fa-braille:after{content:"\10f2a1"}.fad.fa-brain:after{content:"\10f5dc"}.fad.fa-bread-loaf:after{content:"\10f7eb"}.fad.fa-bread-slice:after{content:"\10f7ec"}.fad.fa-briefcase:after{content:"\10f0b1"}.fad.fa-briefcase-medical:after{content:"\10f469"}.fad.fa-bring-forward:after{content:"\10f856"}.fad.fa-bring-front:after{content:"\10f857"}.fad.fa-broadcast-tower:after{content:"\10f519"}.fad.fa-broom:after{content:"\10f51a"}.fad.fa-browser:after{content:"\10f37e"}.fad.fa-brush:after{content:"\10f55d"}.fad.fa-bug:after{content:"\10f188"}.fad.fa-building:after{content:"\10f1ad"}.fad.fa-bullhorn:after{content:"\10f0a1"}.fad.fa-bullseye:after{content:"\10f140"}.fad.fa-bullseye-arrow:after{content:"\10f648"}.fad.fa-bullseye-pointer:after{content:"\10f649"}.fad.fa-burger-soda:after{content:"\10f858"}.fad.fa-burn:after{content:"\10f46a"}.fad.fa-burrito:after{content:"\10f7ed"}.fad.fa-bus:after{content:"\10f207"}.fad.fa-bus-alt:after{content:"\10f55e"}.fad.fa-bus-school:after{content:"\10f5dd"}.fad.fa-business-time:after{content:"\10f64a"}.fad.fa-cabinet-filing:after{content:"\10f64b"}.fad.fa-cactus:after{content:"\10f8a7"}.fad.fa-calculator:after{content:"\10f1ec"}.fad.fa-calculator-alt:after{content:"\10f64c"}.fad.fa-calendar:after{content:"\10f133"}.fad.fa-calendar-alt:after{content:"\10f073"}.fad.fa-calendar-check:after{content:"\10f274"}.fad.fa-calendar-day:after{content:"\10f783"}.fad.fa-calendar-edit:after{content:"\10f333"}.fad.fa-calendar-exclamation:after{content:"\10f334"}.fad.fa-calendar-minus:after{content:"\10f272"}.fad.fa-calendar-plus:after{content:"\10f271"}.fad.fa-calendar-star:after{content:"\10f736"}.fad.fa-calendar-times:after{content:"\10f273"}.fad.fa-calendar-week:after{content:"\10f784"}.fad.fa-camcorder:after{content:"\10f8a8"}.fad.fa-camera:after{content:"\10f030"}.fad.fa-camera-alt:after{content:"\10f332"}.fad.fa-camera-home:after{content:"\10f8fe"}.fad.fa-camera-movie:after{content:"\10f8a9"}.fad.fa-camera-polaroid:after{content:"\10f8aa"}.fad.fa-camera-retro:after{content:"\10f083"}.fad.fa-campfire:after{content:"\10f6ba"}.fad.fa-campground:after{content:"\10f6bb"}.fad.fa-candle-holder:after{content:"\10f6bc"}.fad.fa-candy-cane:after{content:"\10f786"}.fad.fa-candy-corn:after{content:"\10f6bd"}.fad.fa-cannabis:after{content:"\10f55f"}.fad.fa-capsules:after{content:"\10f46b"}.fad.fa-car:after{content:"\10f1b9"}.fad.fa-car-alt:after{content:"\10f5de"}.fad.fa-car-battery:after{content:"\10f5df"}.fad.fa-car-building:after{content:"\10f859"}.fad.fa-car-bump:after{content:"\10f5e0"}.fad.fa-car-bus:after{content:"\10f85a"}.fad.fa-car-crash:after{content:"\10f5e1"}.fad.fa-car-garage:after{content:"\10f5e2"}.fad.fa-car-mechanic:after{content:"\10f5e3"}.fad.fa-car-side:after{content:"\10f5e4"}.fad.fa-car-tilt:after{content:"\10f5e5"}.fad.fa-car-wash:after{content:"\10f5e6"}.fad.fa-caravan:after{content:"\10f8ff"}.fad.fa-caravan-alt:after{content:"\10f900"}.fad.fa-caret-circle-down:after{content:"\10f32d"}.fad.fa-caret-circle-left:after{content:"\10f32e"}.fad.fa-caret-circle-right:after{content:"\10f330"}.fad.fa-caret-circle-up:after{content:"\10f331"}.fad.fa-caret-down:after{content:"\10f0d7"}.fad.fa-caret-left:after{content:"\10f0d9"}.fad.fa-caret-right:after{content:"\10f0da"}.fad.fa-caret-square-down:after{content:"\10f150"}.fad.fa-caret-square-left:after{content:"\10f191"}.fad.fa-caret-square-right:after{content:"\10f152"}.fad.fa-caret-square-up:after{content:"\10f151"}.fad.fa-caret-up:after{content:"\10f0d8"}.fad.fa-carrot:after{content:"\10f787"}.fad.fa-cars:after{content:"\10f85b"}.fad.fa-cart-arrow-down:after{content:"\10f218"}.fad.fa-cart-plus:after{content:"\10f217"}.fad.fa-cash-register:after{content:"\10f788"}.fad.fa-cassette-tape:after{content:"\10f8ab"}.fad.fa-cat:after{content:"\10f6be"}.fad.fa-cat-space:after{content:"\10f901"}.fad.fa-cauldron:after{content:"\10f6bf"}.fad.fa-cctv:after{content:"\10f8ac"}.fad.fa-certificate:after{content:"\10f0a3"}.fad.fa-chair:after{content:"\10f6c0"}.fad.fa-chair-office:after{content:"\10f6c1"}.fad.fa-chalkboard:after{content:"\10f51b"}.fad.fa-chalkboard-teacher:after{content:"\10f51c"}.fad.fa-charging-station:after{content:"\10f5e7"}.fad.fa-chart-area:after{content:"\10f1fe"}.fad.fa-chart-bar:after{content:"\10f080"}.fad.fa-chart-line:after{content:"\10f201"}.fad.fa-chart-line-down:after{content:"\10f64d"}.fad.fa-chart-network:after{content:"\10f78a"}.fad.fa-chart-pie:after{content:"\10f200"}.fad.fa-chart-pie-alt:after{content:"\10f64e"}.fad.fa-chart-scatter:after{content:"\10f7ee"}.fad.fa-check:after{content:"\10f00c"}.fad.fa-check-circle:after{content:"\10f058"}.fad.fa-check-double:after{content:"\10f560"}.fad.fa-check-square:after{content:"\10f14a"}.fad.fa-cheese:after{content:"\10f7ef"}.fad.fa-cheese-swiss:after{content:"\10f7f0"}.fad.fa-cheeseburger:after{content:"\10f7f1"}.fad.fa-chess:after{content:"\10f439"}.fad.fa-chess-bishop:after{content:"\10f43a"}.fad.fa-chess-bishop-alt:after{content:"\10f43b"}.fad.fa-chess-board:after{content:"\10f43c"}.fad.fa-chess-clock:after{content:"\10f43d"}.fad.fa-chess-clock-alt:after{content:"\10f43e"}.fad.fa-chess-king:after{content:"\10f43f"}.fad.fa-chess-king-alt:after{content:"\10f440"}.fad.fa-chess-knight:after{content:"\10f441"}.fad.fa-chess-knight-alt:after{content:"\10f442"}.fad.fa-chess-pawn:after{content:"\10f443"}.fad.fa-chess-pawn-alt:after{content:"\10f444"}.fad.fa-chess-queen:after{content:"\10f445"}.fad.fa-chess-queen-alt:after{content:"\10f446"}.fad.fa-chess-rook:after{content:"\10f447"}.fad.fa-chess-rook-alt:after{content:"\10f448"}.fad.fa-chevron-circle-down:after{content:"\10f13a"}.fad.fa-chevron-circle-left:after{content:"\10f137"}.fad.fa-chevron-circle-right:after{content:"\10f138"}.fad.fa-chevron-circle-up:after{content:"\10f139"}.fad.fa-chevron-double-down:after{content:"\10f322"}.fad.fa-chevron-double-left:after{content:"\10f323"}.fad.fa-chevron-double-right:after{content:"\10f324"}.fad.fa-chevron-double-up:after{content:"\10f325"}.fad.fa-chevron-down:after{content:"\10f078"}.fad.fa-chevron-left:after{content:"\10f053"}.fad.fa-chevron-right:after{content:"\10f054"}.fad.fa-chevron-square-down:after{content:"\10f329"}.fad.fa-chevron-square-left:after{content:"\10f32a"}.fad.fa-chevron-square-right:after{content:"\10f32b"}.fad.fa-chevron-square-up:after{content:"\10f32c"}.fad.fa-chevron-up:after{content:"\10f077"}.fad.fa-child:after{content:"\10f1ae"}.fad.fa-chimney:after{content:"\10f78b"}.fad.fa-church:after{content:"\10f51d"}.fad.fa-circle:after{content:"\10f111"}.fad.fa-circle-notch:after{content:"\10f1ce"}.fad.fa-city:after{content:"\10f64f"}.fad.fa-clarinet:after{content:"\10f8ad"}.fad.fa-claw-marks:after{content:"\10f6c2"}.fad.fa-clinic-medical:after{content:"\10f7f2"}.fad.fa-clipboard:after{content:"\10f328"}.fad.fa-clipboard-check:after{content:"\10f46c"}.fad.fa-clipboard-list:after{content:"\10f46d"}.fad.fa-clipboard-list-check:after{content:"\10f737"}.fad.fa-clipboard-prescription:after{content:"\10f5e8"}.fad.fa-clipboard-user:after{content:"\10f7f3"}.fad.fa-clock:after{content:"\10f017"}.fad.fa-clone:after{content:"\10f24d"}.fad.fa-closed-captioning:after{content:"\10f20a"}.fad.fa-cloud:after{content:"\10f0c2"}.fad.fa-cloud-download:after{content:"\10f0ed"}.fad.fa-cloud-download-alt:after{content:"\10f381"}.fad.fa-cloud-drizzle:after{content:"\10f738"}.fad.fa-cloud-hail:after{content:"\10f739"}.fad.fa-cloud-hail-mixed:after{content:"\10f73a"}.fad.fa-cloud-meatball:after{content:"\10f73b"}.fad.fa-cloud-moon:after{content:"\10f6c3"}.fad.fa-cloud-moon-rain:after{content:"\10f73c"}.fad.fa-cloud-music:after{content:"\10f8ae"}.fad.fa-cloud-rain:after{content:"\10f73d"}.fad.fa-cloud-rainbow:after{content:"\10f73e"}.fad.fa-cloud-showers:after{content:"\10f73f"}.fad.fa-cloud-showers-heavy:after{content:"\10f740"}.fad.fa-cloud-sleet:after{content:"\10f741"}.fad.fa-cloud-snow:after{content:"\10f742"}.fad.fa-cloud-sun:after{content:"\10f6c4"}.fad.fa-cloud-sun-rain:after{content:"\10f743"}.fad.fa-cloud-upload:after{content:"\10f0ee"}.fad.fa-cloud-upload-alt:after{content:"\10f382"}.fad.fa-clouds:after{content:"\10f744"}.fad.fa-clouds-moon:after{content:"\10f745"}.fad.fa-clouds-sun:after{content:"\10f746"}.fad.fa-club:after{content:"\10f327"}.fad.fa-cocktail:after{content:"\10f561"}.fad.fa-code:after{content:"\10f121"}.fad.fa-code-branch:after{content:"\10f126"}.fad.fa-code-commit:after{content:"\10f386"}.fad.fa-code-merge:after{content:"\10f387"}.fad.fa-coffee:after{content:"\10f0f4"}.fad.fa-coffee-pot:after{content:"\10f902"}.fad.fa-coffee-togo:after{content:"\10f6c5"}.fad.fa-coffin:after{content:"\10f6c6"}.fad.fa-cog:after{content:"\10f013"}.fad.fa-cogs:after{content:"\10f085"}.fad.fa-coin:after{content:"\10f85c"}.fad.fa-coins:after{content:"\10f51e"}.fad.fa-columns:after{content:"\10f0db"}.fad.fa-comet:after{content:"\10f903"}.fad.fa-comment:after{content:"\10f075"}.fad.fa-comment-alt:after{content:"\10f27a"}.fad.fa-comment-alt-check:after{content:"\10f4a2"}.fad.fa-comment-alt-dollar:after{content:"\10f650"}.fad.fa-comment-alt-dots:after{content:"\10f4a3"}.fad.fa-comment-alt-edit:after{content:"\10f4a4"}.fad.fa-comment-alt-exclamation:after{content:"\10f4a5"}.fad.fa-comment-alt-lines:after{content:"\10f4a6"}.fad.fa-comment-alt-medical:after{content:"\10f7f4"}.fad.fa-comment-alt-minus:after{content:"\10f4a7"}.fad.fa-comment-alt-music:after{content:"\10f8af"}.fad.fa-comment-alt-plus:after{content:"\10f4a8"}.fad.fa-comment-alt-slash:after{content:"\10f4a9"}.fad.fa-comment-alt-smile:after{content:"\10f4aa"}.fad.fa-comment-alt-times:after{content:"\10f4ab"}.fad.fa-comment-check:after{content:"\10f4ac"}.fad.fa-comment-dollar:after{content:"\10f651"}.fad.fa-comment-dots:after{content:"\10f4ad"}.fad.fa-comment-edit:after{content:"\10f4ae"}.fad.fa-comment-exclamation:after{content:"\10f4af"}.fad.fa-comment-lines:after{content:"\10f4b0"}.fad.fa-comment-medical:after{content:"\10f7f5"}.fad.fa-comment-minus:after{content:"\10f4b1"}.fad.fa-comment-music:after{content:"\10f8b0"}.fad.fa-comment-plus:after{content:"\10f4b2"}.fad.fa-comment-slash:after{content:"\10f4b3"}.fad.fa-comment-smile:after{content:"\10f4b4"}.fad.fa-comment-times:after{content:"\10f4b5"}.fad.fa-comments:after{content:"\10f086"}.fad.fa-comments-alt:after{content:"\10f4b6"}.fad.fa-comments-alt-dollar:after{content:"\10f652"}.fad.fa-comments-dollar:after{content:"\10f653"}.fad.fa-compact-disc:after{content:"\10f51f"}.fad.fa-compass:after{content:"\10f14e"}.fad.fa-compass-slash:after{content:"\10f5e9"}.fad.fa-compress:after{content:"\10f066"}.fad.fa-compress-alt:after{content:"\10f422"}.fad.fa-compress-arrows-alt:after{content:"\10f78c"}.fad.fa-compress-wide:after{content:"\10f326"}.fad.fa-computer-classic:after{content:"\10f8b1"}.fad.fa-computer-speaker:after{content:"\10f8b2"}.fad.fa-concierge-bell:after{content:"\10f562"}.fad.fa-construction:after{content:"\10f85d"}.fad.fa-container-storage:after{content:"\10f4b7"}.fad.fa-conveyor-belt:after{content:"\10f46e"}.fad.fa-conveyor-belt-alt:after{content:"\10f46f"}.fad.fa-cookie:after{content:"\10f563"}.fad.fa-cookie-bite:after{content:"\10f564"}.fad.fa-copy:after{content:"\10f0c5"}.fad.fa-copyright:after{content:"\10f1f9"}.fad.fa-corn:after{content:"\10f6c7"}.fad.fa-couch:after{content:"\10f4b8"}.fad.fa-cow:after{content:"\10f6c8"}.fad.fa-cowbell:after{content:"\10f8b3"}.fad.fa-cowbell-more:after{content:"\10f8b4"}.fad.fa-credit-card:after{content:"\10f09d"}.fad.fa-credit-card-blank:after{content:"\10f389"}.fad.fa-credit-card-front:after{content:"\10f38a"}.fad.fa-cricket:after{content:"\10f449"}.fad.fa-croissant:after{content:"\10f7f6"}.fad.fa-crop:after{content:"\10f125"}.fad.fa-crop-alt:after{content:"\10f565"}.fad.fa-cross:after{content:"\10f654"}.fad.fa-crosshairs:after{content:"\10f05b"}.fad.fa-crow:after{content:"\10f520"}.fad.fa-crown:after{content:"\10f521"}.fad.fa-crutch:after{content:"\10f7f7"}.fad.fa-crutches:after{content:"\10f7f8"}.fad.fa-cube:after{content:"\10f1b2"}.fad.fa-cubes:after{content:"\10f1b3"}.fad.fa-curling:after{content:"\10f44a"}.fad.fa-cut:after{content:"\10f0c4"}.fad.fa-dagger:after{content:"\10f6cb"}.fad.fa-database:after{content:"\10f1c0"}.fad.fa-deaf:after{content:"\10f2a4"}.fad.fa-debug:after{content:"\10f7f9"}.fad.fa-deer:after{content:"\10f78e"}.fad.fa-deer-rudolph:after{content:"\10f78f"}.fad.fa-democrat:after{content:"\10f747"}.fad.fa-desktop:after{content:"\10f108"}.fad.fa-desktop-alt:after{content:"\10f390"}.fad.fa-dewpoint:after{content:"\10f748"}.fad.fa-dharmachakra:after{content:"\10f655"}.fad.fa-diagnoses:after{content:"\10f470"}.fad.fa-diamond:after{content:"\10f219"}.fad.fa-dice:after{content:"\10f522"}.fad.fa-dice-d10:after{content:"\10f6cd"}.fad.fa-dice-d12:after{content:"\10f6ce"}.fad.fa-dice-d20:after{content:"\10f6cf"}.fad.fa-dice-d4:after{content:"\10f6d0"}.fad.fa-dice-d6:after{content:"\10f6d1"}.fad.fa-dice-d8:after{content:"\10f6d2"}.fad.fa-dice-five:after{content:"\10f523"}.fad.fa-dice-four:after{content:"\10f524"}.fad.fa-dice-one:after{content:"\10f525"}.fad.fa-dice-six:after{content:"\10f526"}.fad.fa-dice-three:after{content:"\10f527"}.fad.fa-dice-two:after{content:"\10f528"}.fad.fa-digging:after{content:"\10f85e"}.fad.fa-digital-tachograph:after{content:"\10f566"}.fad.fa-diploma:after{content:"\10f5ea"}.fad.fa-directions:after{content:"\10f5eb"}.fad.fa-disc-drive:after{content:"\10f8b5"}.fad.fa-disease:after{content:"\10f7fa"}.fad.fa-divide:after{content:"\10f529"}.fad.fa-dizzy:after{content:"\10f567"}.fad.fa-dna:after{content:"\10f471"}.fad.fa-do-not-enter:after{content:"\10f5ec"}.fad.fa-dog:after{content:"\10f6d3"}.fad.fa-dog-leashed:after{content:"\10f6d4"}.fad.fa-dollar-sign:after{content:"\10f155"}.fad.fa-dolly:after{content:"\10f472"}.fad.fa-dolly-empty:after{content:"\10f473"}.fad.fa-dolly-flatbed:after{content:"\10f474"}.fad.fa-dolly-flatbed-alt:after{content:"\10f475"}.fad.fa-dolly-flatbed-empty:after{content:"\10f476"}.fad.fa-donate:after{content:"\10f4b9"}.fad.fa-door-closed:after{content:"\10f52a"}.fad.fa-door-open:after{content:"\10f52b"}.fad.fa-dot-circle:after{content:"\10f192"}.fad.fa-dove:after{content:"\10f4ba"}.fad.fa-download:after{content:"\10f019"}.fad.fa-drafting-compass:after{content:"\10f568"}.fad.fa-dragon:after{content:"\10f6d5"}.fad.fa-draw-circle:after{content:"\10f5ed"}.fad.fa-draw-polygon:after{content:"\10f5ee"}.fad.fa-draw-square:after{content:"\10f5ef"}.fad.fa-dreidel:after{content:"\10f792"}.fad.fa-drone:after{content:"\10f85f"}.fad.fa-drone-alt:after{content:"\10f860"}.fad.fa-drum:after{content:"\10f569"}.fad.fa-drum-steelpan:after{content:"\10f56a"}.fad.fa-drumstick:after{content:"\10f6d6"}.fad.fa-drumstick-bite:after{content:"\10f6d7"}.fad.fa-dryer:after{content:"\10f861"}.fad.fa-dryer-alt:after{content:"\10f862"}.fad.fa-duck:after{content:"\10f6d8"}.fad.fa-dumbbell:after{content:"\10f44b"}.fad.fa-dumpster:after{content:"\10f793"}.fad.fa-dumpster-fire:after{content:"\10f794"}.fad.fa-dungeon:after{content:"\10f6d9"}.fad.fa-ear:after{content:"\10f5f0"}.fad.fa-ear-muffs:after{content:"\10f795"}.fad.fa-eclipse:after{content:"\10f749"}.fad.fa-eclipse-alt:after{content:"\10f74a"}.fad.fa-edit:after{content:"\10f044"}.fad.fa-egg:after{content:"\10f7fb"}.fad.fa-egg-fried:after{content:"\10f7fc"}.fad.fa-eject:after{content:"\10f052"}.fad.fa-elephant:after{content:"\10f6da"}.fad.fa-ellipsis-h:after{content:"\10f141"}.fad.fa-ellipsis-h-alt:after{content:"\10f39b"}.fad.fa-ellipsis-v:after{content:"\10f142"}.fad.fa-ellipsis-v-alt:after{content:"\10f39c"}.fad.fa-empty-set:after{content:"\10f656"}.fad.fa-engine-warning:after{content:"\10f5f2"}.fad.fa-envelope:after{content:"\10f0e0"}.fad.fa-envelope-open:after{content:"\10f2b6"}.fad.fa-envelope-open-dollar:after{content:"\10f657"}.fad.fa-envelope-open-text:after{content:"\10f658"}.fad.fa-envelope-square:after{content:"\10f199"}.fad.fa-equals:after{content:"\10f52c"}.fad.fa-eraser:after{content:"\10f12d"}.fad.fa-ethernet:after{content:"\10f796"}.fad.fa-euro-sign:after{content:"\10f153"}.fad.fa-exchange:after{content:"\10f0ec"}.fad.fa-exchange-alt:after{content:"\10f362"}.fad.fa-exclamation:after{content:"\10f12a"}.fad.fa-exclamation-circle:after{content:"\10f06a"}.fad.fa-exclamation-square:after{content:"\10f321"}.fad.fa-exclamation-triangle:after{content:"\10f071"}.fad.fa-expand:after{content:"\10f065"}.fad.fa-expand-alt:after{content:"\10f424"}.fad.fa-expand-arrows:after{content:"\10f31d"}.fad.fa-expand-arrows-alt:after{content:"\10f31e"}.fad.fa-expand-wide:after{content:"\10f320"}.fad.fa-external-link:after{content:"\10f08e"}.fad.fa-external-link-alt:after{content:"\10f35d"}.fad.fa-external-link-square:after{content:"\10f14c"}.fad.fa-external-link-square-alt:after{content:"\10f360"}.fad.fa-eye:after{content:"\10f06e"}.fad.fa-eye-dropper:after{content:"\10f1fb"}.fad.fa-eye-evil:after{content:"\10f6db"}.fad.fa-eye-slash:after{content:"\10f070"}.fad.fa-fan:after{content:"\10f863"}.fad.fa-fan-table:after{content:"\10f904"}.fad.fa-farm:after{content:"\10f864"}.fad.fa-fast-backward:after{content:"\10f049"}.fad.fa-fast-forward:after{content:"\10f050"}.fad.fa-faucet:after{content:"\10f905"}.fad.fa-faucet-drip:after{content:"\10f906"}.fad.fa-fax:after{content:"\10f1ac"}.fad.fa-feather:after{content:"\10f52d"}.fad.fa-feather-alt:after{content:"\10f56b"}.fad.fa-female:after{content:"\10f182"}.fad.fa-field-hockey:after{content:"\10f44c"}.fad.fa-fighter-jet:after{content:"\10f0fb"}.fad.fa-file:after{content:"\10f15b"}.fad.fa-file-alt:after{content:"\10f15c"}.fad.fa-file-archive:after{content:"\10f1c6"}.fad.fa-file-audio:after{content:"\10f1c7"}.fad.fa-file-certificate:after{content:"\10f5f3"}.fad.fa-file-chart-line:after{content:"\10f659"}.fad.fa-file-chart-pie:after{content:"\10f65a"}.fad.fa-file-check:after{content:"\10f316"}.fad.fa-file-code:after{content:"\10f1c9"}.fad.fa-file-contract:after{content:"\10f56c"}.fad.fa-file-csv:after{content:"\10f6dd"}.fad.fa-file-download:after{content:"\10f56d"}.fad.fa-file-edit:after{content:"\10f31c"}.fad.fa-file-excel:after{content:"\10f1c3"}.fad.fa-file-exclamation:after{content:"\10f31a"}.fad.fa-file-export:after{content:"\10f56e"}.fad.fa-file-image:after{content:"\10f1c5"}.fad.fa-file-import:after{content:"\10f56f"}.fad.fa-file-invoice:after{content:"\10f570"}.fad.fa-file-invoice-dollar:after{content:"\10f571"}.fad.fa-file-medical:after{content:"\10f477"}.fad.fa-file-medical-alt:after{content:"\10f478"}.fad.fa-file-minus:after{content:"\10f318"}.fad.fa-file-music:after{content:"\10f8b6"}.fad.fa-file-pdf:after{content:"\10f1c1"}.fad.fa-file-plus:after{content:"\10f319"}.fad.fa-file-powerpoint:after{content:"\10f1c4"}.fad.fa-file-prescription:after{content:"\10f572"}.fad.fa-file-search:after{content:"\10f865"}.fad.fa-file-signature:after{content:"\10f573"}.fad.fa-file-spreadsheet:after{content:"\10f65b"}.fad.fa-file-times:after{content:"\10f317"}.fad.fa-file-upload:after{content:"\10f574"}.fad.fa-file-user:after{content:"\10f65c"}.fad.fa-file-video:after{content:"\10f1c8"}.fad.fa-file-word:after{content:"\10f1c2"}.fad.fa-files-medical:after{content:"\10f7fd"}.fad.fa-fill:after{content:"\10f575"}.fad.fa-fill-drip:after{content:"\10f576"}.fad.fa-film:after{content:"\10f008"}.fad.fa-film-alt:after{content:"\10f3a0"}.fad.fa-film-canister:after{content:"\10f8b7"}.fad.fa-filter:after{content:"\10f0b0"}.fad.fa-fingerprint:after{content:"\10f577"}.fad.fa-fire:after{content:"\10f06d"}.fad.fa-fire-alt:after{content:"\10f7e4"}.fad.fa-fire-extinguisher:after{content:"\10f134"}.fad.fa-fire-smoke:after{content:"\10f74b"}.fad.fa-fireplace:after{content:"\10f79a"}.fad.fa-first-aid:after{content:"\10f479"}.fad.fa-fish:after{content:"\10f578"}.fad.fa-fish-cooked:after{content:"\10f7fe"}.fad.fa-fist-raised:after{content:"\10f6de"}.fad.fa-flag:after{content:"\10f024"}.fad.fa-flag-alt:after{content:"\10f74c"}.fad.fa-flag-checkered:after{content:"\10f11e"}.fad.fa-flag-usa:after{content:"\10f74d"}.fad.fa-flame:after{content:"\10f6df"}.fad.fa-flashlight:after{content:"\10f8b8"}.fad.fa-flask:after{content:"\10f0c3"}.fad.fa-flask-poison:after{content:"\10f6e0"}.fad.fa-flask-potion:after{content:"\10f6e1"}.fad.fa-flower:after{content:"\10f7ff"}.fad.fa-flower-daffodil:after{content:"\10f800"}.fad.fa-flower-tulip:after{content:"\10f801"}.fad.fa-flushed:after{content:"\10f579"}.fad.fa-flute:after{content:"\10f8b9"}.fad.fa-flux-capacitor:after{content:"\10f8ba"}.fad.fa-fog:after{content:"\10f74e"}.fad.fa-folder:after{content:"\10f07b"}.fad.fa-folder-minus:after{content:"\10f65d"}.fad.fa-folder-open:after{content:"\10f07c"}.fad.fa-folder-plus:after{content:"\10f65e"}.fad.fa-folder-times:after{content:"\10f65f"}.fad.fa-folder-tree:after{content:"\10f802"}.fad.fa-folders:after{content:"\10f660"}.fad.fa-font:after{content:"\10f031"}.fad.fa-font-awesome-logo-full:after{content:"\10f4e6"}.fad.fa-font-case:after{content:"\10f866"}.fad.fa-football-ball:after{content:"\10f44e"}.fad.fa-football-helmet:after{content:"\10f44f"}.fad.fa-forklift:after{content:"\10f47a"}.fad.fa-forward:after{content:"\10f04e"}.fad.fa-fragile:after{content:"\10f4bb"}.fad.fa-french-fries:after{content:"\10f803"}.fad.fa-frog:after{content:"\10f52e"}.fad.fa-frosty-head:after{content:"\10f79b"}.fad.fa-frown:after{content:"\10f119"}.fad.fa-frown-open:after{content:"\10f57a"}.fad.fa-function:after{content:"\10f661"}.fad.fa-funnel-dollar:after{content:"\10f662"}.fad.fa-futbol:after{content:"\10f1e3"}.fad.fa-galaxy:after{content:"\10f908"}.fad.fa-game-board:after{content:"\10f867"}.fad.fa-game-board-alt:after{content:"\10f868"}.fad.fa-game-console-handheld:after{content:"\10f8bb"}.fad.fa-gamepad:after{content:"\10f11b"}.fad.fa-gamepad-alt:after{content:"\10f8bc"}.fad.fa-garage:after{content:"\10f909"}.fad.fa-garage-car:after{content:"\10f90a"}.fad.fa-garage-open:after{content:"\10f90b"}.fad.fa-gas-pump:after{content:"\10f52f"}.fad.fa-gas-pump-slash:after{content:"\10f5f4"}.fad.fa-gavel:after{content:"\10f0e3"}.fad.fa-gem:after{content:"\10f3a5"}.fad.fa-genderless:after{content:"\10f22d"}.fad.fa-ghost:after{content:"\10f6e2"}.fad.fa-gift:after{content:"\10f06b"}.fad.fa-gift-card:after{content:"\10f663"}.fad.fa-gifts:after{content:"\10f79c"}.fad.fa-gingerbread-man:after{content:"\10f79d"}.fad.fa-glass:after{content:"\10f804"}.fad.fa-glass-champagne:after{content:"\10f79e"}.fad.fa-glass-cheers:after{content:"\10f79f"}.fad.fa-glass-citrus:after{content:"\10f869"}.fad.fa-glass-martini:after{content:"\10f000"}.fad.fa-glass-martini-alt:after{content:"\10f57b"}.fad.fa-glass-whiskey:after{content:"\10f7a0"}.fad.fa-glass-whiskey-rocks:after{content:"\10f7a1"}.fad.fa-glasses:after{content:"\10f530"}.fad.fa-glasses-alt:after{content:"\10f5f5"}.fad.fa-globe:after{content:"\10f0ac"}.fad.fa-globe-africa:after{content:"\10f57c"}.fad.fa-globe-americas:after{content:"\10f57d"}.fad.fa-globe-asia:after{content:"\10f57e"}.fad.fa-globe-europe:after{content:"\10f7a2"}.fad.fa-globe-snow:after{content:"\10f7a3"}.fad.fa-globe-stand:after{content:"\10f5f6"}.fad.fa-golf-ball:after{content:"\10f450"}.fad.fa-golf-club:after{content:"\10f451"}.fad.fa-gopuram:after{content:"\10f664"}.fad.fa-graduation-cap:after{content:"\10f19d"}.fad.fa-gramophone:after{content:"\10f8bd"}.fad.fa-greater-than:after{content:"\10f531"}.fad.fa-greater-than-equal:after{content:"\10f532"}.fad.fa-grimace:after{content:"\10f57f"}.fad.fa-grin:after{content:"\10f580"}.fad.fa-grin-alt:after{content:"\10f581"}.fad.fa-grin-beam:after{content:"\10f582"}.fad.fa-grin-beam-sweat:after{content:"\10f583"}.fad.fa-grin-hearts:after{content:"\10f584"}.fad.fa-grin-squint:after{content:"\10f585"}.fad.fa-grin-squint-tears:after{content:"\10f586"}.fad.fa-grin-stars:after{content:"\10f587"}.fad.fa-grin-tears:after{content:"\10f588"}.fad.fa-grin-tongue:after{content:"\10f589"}.fad.fa-grin-tongue-squint:after{content:"\10f58a"}.fad.fa-grin-tongue-wink:after{content:"\10f58b"}.fad.fa-grin-wink:after{content:"\10f58c"}.fad.fa-grip-horizontal:after{content:"\10f58d"}.fad.fa-grip-lines:after{content:"\10f7a4"}.fad.fa-grip-lines-vertical:after{content:"\10f7a5"}.fad.fa-grip-vertical:after{content:"\10f58e"}.fad.fa-guitar:after{content:"\10f7a6"}.fad.fa-guitar-electric:after{content:"\10f8be"}.fad.fa-guitars:after{content:"\10f8bf"}.fad.fa-h-square:after{content:"\10f0fd"}.fad.fa-h1:after{content:"\10f313"}.fad.fa-h2:after{content:"\10f314"}.fad.fa-h3:after{content:"\10f315"}.fad.fa-h4:after{content:"\10f86a"}.fad.fa-hamburger:after{content:"\10f805"}.fad.fa-hammer:after{content:"\10f6e3"}.fad.fa-hammer-war:after{content:"\10f6e4"}.fad.fa-hamsa:after{content:"\10f665"}.fad.fa-hand-heart:after{content:"\10f4bc"}.fad.fa-hand-holding:after{content:"\10f4bd"}.fad.fa-hand-holding-box:after{content:"\10f47b"}.fad.fa-hand-holding-heart:after{content:"\10f4be"}.fad.fa-hand-holding-magic:after{content:"\10f6e5"}.fad.fa-hand-holding-seedling:after{content:"\10f4bf"}.fad.fa-hand-holding-usd:after{content:"\10f4c0"}.fad.fa-hand-holding-water:after{content:"\10f4c1"}.fad.fa-hand-lizard:after{content:"\10f258"}.fad.fa-hand-middle-finger:after{content:"\10f806"}.fad.fa-hand-paper:after{content:"\10f256"}.fad.fa-hand-peace:after{content:"\10f25b"}.fad.fa-hand-point-down:after{content:"\10f0a7"}.fad.fa-hand-point-left:after{content:"\10f0a5"}.fad.fa-hand-point-right:after{content:"\10f0a4"}.fad.fa-hand-point-up:after{content:"\10f0a6"}.fad.fa-hand-pointer:after{content:"\10f25a"}.fad.fa-hand-receiving:after{content:"\10f47c"}.fad.fa-hand-rock:after{content:"\10f255"}.fad.fa-hand-scissors:after{content:"\10f257"}.fad.fa-hand-spock:after{content:"\10f259"}.fad.fa-hands:after{content:"\10f4c2"}.fad.fa-hands-heart:after{content:"\10f4c3"}.fad.fa-hands-helping:after{content:"\10f4c4"}.fad.fa-hands-usd:after{content:"\10f4c5"}.fad.fa-handshake:after{content:"\10f2b5"}.fad.fa-handshake-alt:after{content:"\10f4c6"}.fad.fa-hanukiah:after{content:"\10f6e6"}.fad.fa-hard-hat:after{content:"\10f807"}.fad.fa-hashtag:after{content:"\10f292"}.fad.fa-hat-chef:after{content:"\10f86b"}.fad.fa-hat-cowboy:after{content:"\10f8c0"}.fad.fa-hat-cowboy-side:after{content:"\10f8c1"}.fad.fa-hat-santa:after{content:"\10f7a7"}.fad.fa-hat-winter:after{content:"\10f7a8"}.fad.fa-hat-witch:after{content:"\10f6e7"}.fad.fa-hat-wizard:after{content:"\10f6e8"}.fad.fa-hdd:after{content:"\10f0a0"}.fad.fa-head-side:after{content:"\10f6e9"}.fad.fa-head-side-brain:after{content:"\10f808"}.fad.fa-head-side-headphones:after{content:"\10f8c2"}.fad.fa-head-side-medical:after{content:"\10f809"}.fad.fa-head-vr:after{content:"\10f6ea"}.fad.fa-heading:after{content:"\10f1dc"}.fad.fa-headphones:after{content:"\10f025"}.fad.fa-headphones-alt:after{content:"\10f58f"}.fad.fa-headset:after{content:"\10f590"}.fad.fa-heart:after{content:"\10f004"}.fad.fa-heart-broken:after{content:"\10f7a9"}.fad.fa-heart-circle:after{content:"\10f4c7"}.fad.fa-heart-rate:after{content:"\10f5f8"}.fad.fa-heart-square:after{content:"\10f4c8"}.fad.fa-heartbeat:after{content:"\10f21e"}.fad.fa-heat:after{content:"\10f90c"}.fad.fa-helicopter:after{content:"\10f533"}.fad.fa-helmet-battle:after{content:"\10f6eb"}.fad.fa-hexagon:after{content:"\10f312"}.fad.fa-highlighter:after{content:"\10f591"}.fad.fa-hiking:after{content:"\10f6ec"}.fad.fa-hippo:after{content:"\10f6ed"}.fad.fa-history:after{content:"\10f1da"}.fad.fa-hockey-mask:after{content:"\10f6ee"}.fad.fa-hockey-puck:after{content:"\10f453"}.fad.fa-hockey-sticks:after{content:"\10f454"}.fad.fa-holly-berry:after{content:"\10f7aa"}.fad.fa-home:after{content:"\10f015"}.fad.fa-home-alt:after{content:"\10f80a"}.fad.fa-home-heart:after{content:"\10f4c9"}.fad.fa-home-lg:after{content:"\10f80b"}.fad.fa-home-lg-alt:after{content:"\10f80c"}.fad.fa-hood-cloak:after{content:"\10f6ef"}.fad.fa-horizontal-rule:after{content:"\10f86c"}.fad.fa-horse:after{content:"\10f6f0"}.fad.fa-horse-head:after{content:"\10f7ab"}.fad.fa-horse-saddle:after{content:"\10f8c3"}.fad.fa-hospital:after{content:"\10f0f8"}.fad.fa-hospital-alt:after{content:"\10f47d"}.fad.fa-hospital-symbol:after{content:"\10f47e"}.fad.fa-hospital-user:after{content:"\10f80d"}.fad.fa-hospitals:after{content:"\10f80e"}.fad.fa-hot-tub:after{content:"\10f593"}.fad.fa-hotdog:after{content:"\10f80f"}.fad.fa-hotel:after{content:"\10f594"}.fad.fa-hourglass:after{content:"\10f254"}.fad.fa-hourglass-end:after{content:"\10f253"}.fad.fa-hourglass-half:after{content:"\10f252"}.fad.fa-hourglass-start:after{content:"\10f251"}.fad.fa-house:after{content:"\10f90d"}.fad.fa-house-damage:after{content:"\10f6f1"}.fad.fa-house-day:after{content:"\10f90e"}.fad.fa-house-flood:after{content:"\10f74f"}.fad.fa-house-leave:after{content:"\10f90f"}.fad.fa-house-night:after{content:"\10f910"}.fad.fa-house-return:after{content:"\10f911"}.fad.fa-house-signal:after{content:"\10f912"}.fad.fa-hryvnia:after{content:"\10f6f2"}.fad.fa-humidity:after{content:"\10f750"}.fad.fa-hurricane:after{content:"\10f751"}.fad.fa-i-cursor:after{content:"\10f246"}.fad.fa-ice-cream:after{content:"\10f810"}.fad.fa-ice-skate:after{content:"\10f7ac"}.fad.fa-icicles:after{content:"\10f7ad"}.fad.fa-icons:after{content:"\10f86d"}.fad.fa-icons-alt:after{content:"\10f86e"}.fad.fa-id-badge:after{content:"\10f2c1"}.fad.fa-id-card:after{content:"\10f2c2"}.fad.fa-id-card-alt:after{content:"\10f47f"}.fad.fa-igloo:after{content:"\10f7ae"}.fad.fa-image:after{content:"\10f03e"}.fad.fa-image-polaroid:after{content:"\10f8c4"}.fad.fa-images:after{content:"\10f302"}.fad.fa-inbox:after{content:"\10f01c"}.fad.fa-inbox-in:after{content:"\10f310"}.fad.fa-inbox-out:after{content:"\10f311"}.fad.fa-indent:after{content:"\10f03c"}.fad.fa-industry:after{content:"\10f275"}.fad.fa-industry-alt:after{content:"\10f3b3"}.fad.fa-infinity:after{content:"\10f534"}.fad.fa-info:after{content:"\10f129"}.fad.fa-info-circle:after{content:"\10f05a"}.fad.fa-info-square:after{content:"\10f30f"}.fad.fa-inhaler:after{content:"\10f5f9"}.fad.fa-integral:after{content:"\10f667"}.fad.fa-intersection:after{content:"\10f668"}.fad.fa-inventory:after{content:"\10f480"}.fad.fa-island-tropical:after{content:"\10f811"}.fad.fa-italic:after{content:"\10f033"}.fad.fa-jack-o-lantern:after{content:"\10f30e"}.fad.fa-jedi:after{content:"\10f669"}.fad.fa-joint:after{content:"\10f595"}.fad.fa-journal-whills:after{content:"\10f66a"}.fad.fa-joystick:after{content:"\10f8c5"}.fad.fa-jug:after{content:"\10f8c6"}.fad.fa-kaaba:after{content:"\10f66b"}.fad.fa-kazoo:after{content:"\10f8c7"}.fad.fa-kerning:after{content:"\10f86f"}.fad.fa-key:after{content:"\10f084"}.fad.fa-key-skeleton:after{content:"\10f6f3"}.fad.fa-keyboard:after{content:"\10f11c"}.fad.fa-keynote:after{content:"\10f66c"}.fad.fa-khanda:after{content:"\10f66d"}.fad.fa-kidneys:after{content:"\10f5fb"}.fad.fa-kiss:after{content:"\10f596"}.fad.fa-kiss-beam:after{content:"\10f597"}.fad.fa-kiss-wink-heart:after{content:"\10f598"}.fad.fa-kite:after{content:"\10f6f4"}.fad.fa-kiwi-bird:after{content:"\10f535"}.fad.fa-knife-kitchen:after{content:"\10f6f5"}.fad.fa-lambda:after{content:"\10f66e"}.fad.fa-lamp:after{content:"\10f4ca"}.fad.fa-lamp-desk:after{content:"\10f914"}.fad.fa-lamp-floor:after{content:"\10f915"}.fad.fa-landmark:after{content:"\10f66f"}.fad.fa-landmark-alt:after{content:"\10f752"}.fad.fa-language:after{content:"\10f1ab"}.fad.fa-laptop:after{content:"\10f109"}.fad.fa-laptop-code:after{content:"\10f5fc"}.fad.fa-laptop-medical:after{content:"\10f812"}.fad.fa-lasso:after{content:"\10f8c8"}.fad.fa-laugh:after{content:"\10f599"}.fad.fa-laugh-beam:after{content:"\10f59a"}.fad.fa-laugh-squint:after{content:"\10f59b"}.fad.fa-laugh-wink:after{content:"\10f59c"}.fad.fa-layer-group:after{content:"\10f5fd"}.fad.fa-layer-minus:after{content:"\10f5fe"}.fad.fa-layer-plus:after{content:"\10f5ff"}.fad.fa-leaf:after{content:"\10f06c"}.fad.fa-leaf-heart:after{content:"\10f4cb"}.fad.fa-leaf-maple:after{content:"\10f6f6"}.fad.fa-leaf-oak:after{content:"\10f6f7"}.fad.fa-lemon:after{content:"\10f094"}.fad.fa-less-than:after{content:"\10f536"}.fad.fa-less-than-equal:after{content:"\10f537"}.fad.fa-level-down:after{content:"\10f149"}.fad.fa-level-down-alt:after{content:"\10f3be"}.fad.fa-level-up:after{content:"\10f148"}.fad.fa-level-up-alt:after{content:"\10f3bf"}.fad.fa-life-ring:after{content:"\10f1cd"}.fad.fa-light-ceiling:after{content:"\10f916"}.fad.fa-light-switch:after{content:"\10f917"}.fad.fa-light-switch-off:after{content:"\10f918"}.fad.fa-light-switch-on:after{content:"\10f919"}.fad.fa-lightbulb:after{content:"\10f0eb"}.fad.fa-lightbulb-dollar:after{content:"\10f670"}.fad.fa-lightbulb-exclamation:after{content:"\10f671"}.fad.fa-lightbulb-on:after{content:"\10f672"}.fad.fa-lightbulb-slash:after{content:"\10f673"}.fad.fa-lights-holiday:after{content:"\10f7b2"}.fad.fa-line-columns:after{content:"\10f870"}.fad.fa-line-height:after{content:"\10f871"}.fad.fa-link:after{content:"\10f0c1"}.fad.fa-lips:after{content:"\10f600"}.fad.fa-lira-sign:after{content:"\10f195"}.fad.fa-list:after{content:"\10f03a"}.fad.fa-list-alt:after{content:"\10f022"}.fad.fa-list-music:after{content:"\10f8c9"}.fad.fa-list-ol:after{content:"\10f0cb"}.fad.fa-list-ul:after{content:"\10f0ca"}.fad.fa-location:after{content:"\10f601"}.fad.fa-location-arrow:after{content:"\10f124"}.fad.fa-location-circle:after{content:"\10f602"}.fad.fa-location-slash:after{content:"\10f603"}.fad.fa-lock:after{content:"\10f023"}.fad.fa-lock-alt:after{content:"\10f30d"}.fad.fa-lock-open:after{content:"\10f3c1"}.fad.fa-lock-open-alt:after{content:"\10f3c2"}.fad.fa-long-arrow-alt-down:after{content:"\10f309"}.fad.fa-long-arrow-alt-left:after{content:"\10f30a"}.fad.fa-long-arrow-alt-right:after{content:"\10f30b"}.fad.fa-long-arrow-alt-up:after{content:"\10f30c"}.fad.fa-long-arrow-down:after{content:"\10f175"}.fad.fa-long-arrow-left:after{content:"\10f177"}.fad.fa-long-arrow-right:after{content:"\10f178"}.fad.fa-long-arrow-up:after{content:"\10f176"}.fad.fa-loveseat:after{content:"\10f4cc"}.fad.fa-low-vision:after{content:"\10f2a8"}.fad.fa-luchador:after{content:"\10f455"}.fad.fa-luggage-cart:after{content:"\10f59d"}.fad.fa-lungs:after{content:"\10f604"}.fad.fa-mace:after{content:"\10f6f8"}.fad.fa-magic:after{content:"\10f0d0"}.fad.fa-magnet:after{content:"\10f076"}.fad.fa-mail-bulk:after{content:"\10f674"}.fad.fa-mailbox:after{content:"\10f813"}.fad.fa-male:after{content:"\10f183"}.fad.fa-mandolin:after{content:"\10f6f9"}.fad.fa-map:after{content:"\10f279"}.fad.fa-map-marked:after{content:"\10f59f"}.fad.fa-map-marked-alt:after{content:"\10f5a0"}.fad.fa-map-marker:after{content:"\10f041"}.fad.fa-map-marker-alt:after{content:"\10f3c5"}.fad.fa-map-marker-alt-slash:after{content:"\10f605"}.fad.fa-map-marker-check:after{content:"\10f606"}.fad.fa-map-marker-edit:after{content:"\10f607"}.fad.fa-map-marker-exclamation:after{content:"\10f608"}.fad.fa-map-marker-minus:after{content:"\10f609"}.fad.fa-map-marker-plus:after{content:"\10f60a"}.fad.fa-map-marker-question:after{content:"\10f60b"}.fad.fa-map-marker-slash:after{content:"\10f60c"}.fad.fa-map-marker-smile:after{content:"\10f60d"}.fad.fa-map-marker-times:after{content:"\10f60e"}.fad.fa-map-pin:after{content:"\10f276"}.fad.fa-map-signs:after{content:"\10f277"}.fad.fa-marker:after{content:"\10f5a1"}.fad.fa-mars:after{content:"\10f222"}.fad.fa-mars-double:after{content:"\10f227"}.fad.fa-mars-stroke:after{content:"\10f229"}.fad.fa-mars-stroke-h:after{content:"\10f22b"}.fad.fa-mars-stroke-v:after{content:"\10f22a"}.fad.fa-mask:after{content:"\10f6fa"}.fad.fa-meat:after{content:"\10f814"}.fad.fa-medal:after{content:"\10f5a2"}.fad.fa-medkit:after{content:"\10f0fa"}.fad.fa-megaphone:after{content:"\10f675"}.fad.fa-meh:after{content:"\10f11a"}.fad.fa-meh-blank:after{content:"\10f5a4"}.fad.fa-meh-rolling-eyes:after{content:"\10f5a5"}.fad.fa-memory:after{content:"\10f538"}.fad.fa-menorah:after{content:"\10f676"}.fad.fa-mercury:after{content:"\10f223"}.fad.fa-meteor:after{content:"\10f753"}.fad.fa-microchip:after{content:"\10f2db"}.fad.fa-microphone:after{content:"\10f130"}.fad.fa-microphone-alt:after{content:"\10f3c9"}.fad.fa-microphone-alt-slash:after{content:"\10f539"}.fad.fa-microphone-slash:after{content:"\10f131"}.fad.fa-microphone-stand:after{content:"\10f8cb"}.fad.fa-microscope:after{content:"\10f610"}.fad.fa-microwave:after{content:"\10f91b"}.fad.fa-mind-share:after{content:"\10f677"}.fad.fa-minus:after{content:"\10f068"}.fad.fa-minus-circle:after{content:"\10f056"}.fad.fa-minus-hexagon:after{content:"\10f307"}.fad.fa-minus-octagon:after{content:"\10f308"}.fad.fa-minus-square:after{content:"\10f146"}.fad.fa-mistletoe:after{content:"\10f7b4"}.fad.fa-mitten:after{content:"\10f7b5"}.fad.fa-mobile:after{content:"\10f10b"}.fad.fa-mobile-alt:after{content:"\10f3cd"}.fad.fa-mobile-android:after{content:"\10f3ce"}.fad.fa-mobile-android-alt:after{content:"\10f3cf"}.fad.fa-money-bill:after{content:"\10f0d6"}.fad.fa-money-bill-alt:after{content:"\10f3d1"}.fad.fa-money-bill-wave:after{content:"\10f53a"}.fad.fa-money-bill-wave-alt:after{content:"\10f53b"}.fad.fa-money-check:after{content:"\10f53c"}.fad.fa-money-check-alt:after{content:"\10f53d"}.fad.fa-money-check-edit:after{content:"\10f872"}.fad.fa-money-check-edit-alt:after{content:"\10f873"}.fad.fa-monitor-heart-rate:after{content:"\10f611"}.fad.fa-monkey:after{content:"\10f6fb"}.fad.fa-monument:after{content:"\10f5a6"}.fad.fa-moon:after{content:"\10f186"}.fad.fa-moon-cloud:after{content:"\10f754"}.fad.fa-moon-stars:after{content:"\10f755"}.fad.fa-mortar-pestle:after{content:"\10f5a7"}.fad.fa-mosque:after{content:"\10f678"}.fad.fa-motorcycle:after{content:"\10f21c"}.fad.fa-mountain:after{content:"\10f6fc"}.fad.fa-mountains:after{content:"\10f6fd"}.fad.fa-mouse:after{content:"\10f8cc"}.fad.fa-mouse-alt:after{content:"\10f8cd"}.fad.fa-mouse-pointer:after{content:"\10f245"}.fad.fa-mp3-player:after{content:"\10f8ce"}.fad.fa-mug:after{content:"\10f874"}.fad.fa-mug-hot:after{content:"\10f7b6"}.fad.fa-mug-marshmallows:after{content:"\10f7b7"}.fad.fa-mug-tea:after{content:"\10f875"}.fad.fa-music:after{content:"\10f001"}.fad.fa-music-alt:after{content:"\10f8cf"}.fad.fa-music-alt-slash:after{content:"\10f8d0"}.fad.fa-music-slash:after{content:"\10f8d1"}.fad.fa-narwhal:after{content:"\10f6fe"}.fad.fa-network-wired:after{content:"\10f6ff"}.fad.fa-neuter:after{content:"\10f22c"}.fad.fa-newspaper:after{content:"\10f1ea"}.fad.fa-not-equal:after{content:"\10f53e"}.fad.fa-notes-medical:after{content:"\10f481"}.fad.fa-object-group:after{content:"\10f247"}.fad.fa-object-ungroup:after{content:"\10f248"}.fad.fa-octagon:after{content:"\10f306"}.fad.fa-oil-can:after{content:"\10f613"}.fad.fa-oil-temp:after{content:"\10f614"}.fad.fa-om:after{content:"\10f679"}.fad.fa-omega:after{content:"\10f67a"}.fad.fa-ornament:after{content:"\10f7b8"}.fad.fa-otter:after{content:"\10f700"}.fad.fa-outdent:after{content:"\10f03b"}.fad.fa-outlet:after{content:"\10f91c"}.fad.fa-oven:after{content:"\10f91d"}.fad.fa-overline:after{content:"\10f876"}.fad.fa-page-break:after{content:"\10f877"}.fad.fa-pager:after{content:"\10f815"}.fad.fa-paint-brush:after{content:"\10f1fc"}.fad.fa-paint-brush-alt:after{content:"\10f5a9"}.fad.fa-paint-roller:after{content:"\10f5aa"}.fad.fa-palette:after{content:"\10f53f"}.fad.fa-pallet:after{content:"\10f482"}.fad.fa-pallet-alt:after{content:"\10f483"}.fad.fa-paper-plane:after{content:"\10f1d8"}.fad.fa-paperclip:after{content:"\10f0c6"}.fad.fa-parachute-box:after{content:"\10f4cd"}.fad.fa-paragraph:after{content:"\10f1dd"}.fad.fa-paragraph-rtl:after{content:"\10f878"}.fad.fa-parking:after{content:"\10f540"}.fad.fa-parking-circle:after{content:"\10f615"}.fad.fa-parking-circle-slash:after{content:"\10f616"}.fad.fa-parking-slash:after{content:"\10f617"}.fad.fa-passport:after{content:"\10f5ab"}.fad.fa-pastafarianism:after{content:"\10f67b"}.fad.fa-paste:after{content:"\10f0ea"}.fad.fa-pause:after{content:"\10f04c"}.fad.fa-pause-circle:after{content:"\10f28b"}.fad.fa-paw:after{content:"\10f1b0"}.fad.fa-paw-alt:after{content:"\10f701"}.fad.fa-paw-claws:after{content:"\10f702"}.fad.fa-peace:after{content:"\10f67c"}.fad.fa-pegasus:after{content:"\10f703"}.fad.fa-pen:after{content:"\10f304"}.fad.fa-pen-alt:after{content:"\10f305"}.fad.fa-pen-fancy:after{content:"\10f5ac"}.fad.fa-pen-nib:after{content:"\10f5ad"}.fad.fa-pen-square:after{content:"\10f14b"}.fad.fa-pencil:after{content:"\10f040"}.fad.fa-pencil-alt:after{content:"\10f303"}.fad.fa-pencil-paintbrush:after{content:"\10f618"}.fad.fa-pencil-ruler:after{content:"\10f5ae"}.fad.fa-pennant:after{content:"\10f456"}.fad.fa-people-carry:after{content:"\10f4ce"}.fad.fa-pepper-hot:after{content:"\10f816"}.fad.fa-percent:after{content:"\10f295"}.fad.fa-percentage:after{content:"\10f541"}.fad.fa-person-booth:after{content:"\10f756"}.fad.fa-person-carry:after{content:"\10f4cf"}.fad.fa-person-dolly:after{content:"\10f4d0"}.fad.fa-person-dolly-empty:after{content:"\10f4d1"}.fad.fa-person-sign:after{content:"\10f757"}.fad.fa-phone:after{content:"\10f095"}.fad.fa-phone-alt:after{content:"\10f879"}.fad.fa-phone-laptop:after{content:"\10f87a"}.fad.fa-phone-office:after{content:"\10f67d"}.fad.fa-phone-plus:after{content:"\10f4d2"}.fad.fa-phone-rotary:after{content:"\10f8d3"}.fad.fa-phone-slash:after{content:"\10f3dd"}.fad.fa-phone-square:after{content:"\10f098"}.fad.fa-phone-square-alt:after{content:"\10f87b"}.fad.fa-phone-volume:after{content:"\10f2a0"}.fad.fa-photo-video:after{content:"\10f87c"}.fad.fa-pi:after{content:"\10f67e"}.fad.fa-piano:after{content:"\10f8d4"}.fad.fa-piano-keyboard:after{content:"\10f8d5"}.fad.fa-pie:after{content:"\10f705"}.fad.fa-pig:after{content:"\10f706"}.fad.fa-piggy-bank:after{content:"\10f4d3"}.fad.fa-pills:after{content:"\10f484"}.fad.fa-pizza:after{content:"\10f817"}.fad.fa-pizza-slice:after{content:"\10f818"}.fad.fa-place-of-worship:after{content:"\10f67f"}.fad.fa-plane:after{content:"\10f072"}.fad.fa-plane-alt:after{content:"\10f3de"}.fad.fa-plane-arrival:after{content:"\10f5af"}.fad.fa-plane-departure:after{content:"\10f5b0"}.fad.fa-planet-moon:after{content:"\10f91f"}.fad.fa-planet-ringed:after{content:"\10f920"}.fad.fa-play:after{content:"\10f04b"}.fad.fa-play-circle:after{content:"\10f144"}.fad.fa-plug:after{content:"\10f1e6"}.fad.fa-plus:after{content:"\10f067"}.fad.fa-plus-circle:after{content:"\10f055"}.fad.fa-plus-hexagon:after{content:"\10f300"}.fad.fa-plus-octagon:after{content:"\10f301"}.fad.fa-plus-square:after{content:"\10f0fe"}.fad.fa-podcast:after{content:"\10f2ce"}.fad.fa-podium:after{content:"\10f680"}.fad.fa-podium-star:after{content:"\10f758"}.fad.fa-police-box:after{content:"\10f921"}.fad.fa-poll:after{content:"\10f681"}.fad.fa-poll-h:after{content:"\10f682"}.fad.fa-poll-people:after{content:"\10f759"}.fad.fa-poo:after{content:"\10f2fe"}.fad.fa-poo-storm:after{content:"\10f75a"}.fad.fa-poop:after{content:"\10f619"}.fad.fa-popcorn:after{content:"\10f819"}.fad.fa-portal-enter:after{content:"\10f922"}.fad.fa-portal-exit:after{content:"\10f923"}.fad.fa-portrait:after{content:"\10f3e0"}.fad.fa-pound-sign:after{content:"\10f154"}.fad.fa-power-off:after{content:"\10f011"}.fad.fa-pray:after{content:"\10f683"}.fad.fa-praying-hands:after{content:"\10f684"}.fad.fa-prescription:after{content:"\10f5b1"}.fad.fa-prescription-bottle:after{content:"\10f485"}.fad.fa-prescription-bottle-alt:after{content:"\10f486"}.fad.fa-presentation:after{content:"\10f685"}.fad.fa-print:after{content:"\10f02f"}.fad.fa-print-search:after{content:"\10f81a"}.fad.fa-print-slash:after{content:"\10f686"}.fad.fa-procedures:after{content:"\10f487"}.fad.fa-project-diagram:after{content:"\10f542"}.fad.fa-projector:after{content:"\10f8d6"}.fad.fa-pumpkin:after{content:"\10f707"}.fad.fa-puzzle-piece:after{content:"\10f12e"}.fad.fa-qrcode:after{content:"\10f029"}.fad.fa-question:after{content:"\10f128"}.fad.fa-question-circle:after{content:"\10f059"}.fad.fa-question-square:after{content:"\10f2fd"}.fad.fa-quidditch:after{content:"\10f458"}.fad.fa-quote-left:after{content:"\10f10d"}.fad.fa-quote-right:after{content:"\10f10e"}.fad.fa-quran:after{content:"\10f687"}.fad.fa-rabbit:after{content:"\10f708"}.fad.fa-rabbit-fast:after{content:"\10f709"}.fad.fa-racquet:after{content:"\10f45a"}.fad.fa-radar:after{content:"\10f924"}.fad.fa-radiation:after{content:"\10f7b9"}.fad.fa-radiation-alt:after{content:"\10f7ba"}.fad.fa-radio:after{content:"\10f8d7"}.fad.fa-radio-alt:after{content:"\10f8d8"}.fad.fa-rainbow:after{content:"\10f75b"}.fad.fa-raindrops:after{content:"\10f75c"}.fad.fa-ram:after{content:"\10f70a"}.fad.fa-ramp-loading:after{content:"\10f4d4"}.fad.fa-random:after{content:"\10f074"}.fad.fa-raygun:after{content:"\10f925"}.fad.fa-receipt:after{content:"\10f543"}.fad.fa-record-vinyl:after{content:"\10f8d9"}.fad.fa-rectangle-landscape:after{content:"\10f2fa"}.fad.fa-rectangle-portrait:after{content:"\10f2fb"}.fad.fa-rectangle-wide:after{content:"\10f2fc"}.fad.fa-recycle:after{content:"\10f1b8"}.fad.fa-redo:after{content:"\10f01e"}.fad.fa-redo-alt:after{content:"\10f2f9"}.fad.fa-refrigerator:after{content:"\10f926"}.fad.fa-registered:after{content:"\10f25d"}.fad.fa-remove-format:after{content:"\10f87d"}.fad.fa-repeat:after{content:"\10f363"}.fad.fa-repeat-1:after{content:"\10f365"}.fad.fa-repeat-1-alt:after{content:"\10f366"}.fad.fa-repeat-alt:after{content:"\10f364"}.fad.fa-reply:after{content:"\10f3e5"}.fad.fa-reply-all:after{content:"\10f122"}.fad.fa-republican:after{content:"\10f75e"}.fad.fa-restroom:after{content:"\10f7bd"}.fad.fa-retweet:after{content:"\10f079"}.fad.fa-retweet-alt:after{content:"\10f361"}.fad.fa-ribbon:after{content:"\10f4d6"}.fad.fa-ring:after{content:"\10f70b"}.fad.fa-rings-wedding:after{content:"\10f81b"}.fad.fa-road:after{content:"\10f018"}.fad.fa-robot:after{content:"\10f544"}.fad.fa-rocket:after{content:"\10f135"}.fad.fa-rocket-launch:after{content:"\10f927"}.fad.fa-route:after{content:"\10f4d7"}.fad.fa-route-highway:after{content:"\10f61a"}.fad.fa-route-interstate:after{content:"\10f61b"}.fad.fa-router:after{content:"\10f8da"}.fad.fa-rss:after{content:"\10f09e"}.fad.fa-rss-square:after{content:"\10f143"}.fad.fa-ruble-sign:after{content:"\10f158"}.fad.fa-ruler:after{content:"\10f545"}.fad.fa-ruler-combined:after{content:"\10f546"}.fad.fa-ruler-horizontal:after{content:"\10f547"}.fad.fa-ruler-triangle:after{content:"\10f61c"}.fad.fa-ruler-vertical:after{content:"\10f548"}.fad.fa-running:after{content:"\10f70c"}.fad.fa-rupee-sign:after{content:"\10f156"}.fad.fa-rv:after{content:"\10f7be"}.fad.fa-sack:after{content:"\10f81c"}.fad.fa-sack-dollar:after{content:"\10f81d"}.fad.fa-sad-cry:after{content:"\10f5b3"}.fad.fa-sad-tear:after{content:"\10f5b4"}.fad.fa-salad:after{content:"\10f81e"}.fad.fa-sandwich:after{content:"\10f81f"}.fad.fa-satellite:after{content:"\10f7bf"}.fad.fa-satellite-dish:after{content:"\10f7c0"}.fad.fa-sausage:after{content:"\10f820"}.fad.fa-save:after{content:"\10f0c7"}.fad.fa-sax-hot:after{content:"\10f8db"}.fad.fa-saxophone:after{content:"\10f8dc"}.fad.fa-scalpel:after{content:"\10f61d"}.fad.fa-scalpel-path:after{content:"\10f61e"}.fad.fa-scanner:after{content:"\10f488"}.fad.fa-scanner-image:after{content:"\10f8f3"}.fad.fa-scanner-keyboard:after{content:"\10f489"}.fad.fa-scanner-touchscreen:after{content:"\10f48a"}.fad.fa-scarecrow:after{content:"\10f70d"}.fad.fa-scarf:after{content:"\10f7c1"}.fad.fa-school:after{content:"\10f549"}.fad.fa-screwdriver:after{content:"\10f54a"}.fad.fa-scroll:after{content:"\10f70e"}.fad.fa-scroll-old:after{content:"\10f70f"}.fad.fa-scrubber:after{content:"\10f2f8"}.fad.fa-scythe:after{content:"\10f710"}.fad.fa-sd-card:after{content:"\10f7c2"}.fad.fa-search:after{content:"\10f002"}.fad.fa-search-dollar:after{content:"\10f688"}.fad.fa-search-location:after{content:"\10f689"}.fad.fa-search-minus:after{content:"\10f010"}.fad.fa-search-plus:after{content:"\10f00e"}.fad.fa-seedling:after{content:"\10f4d8"}.fad.fa-send-back:after{content:"\10f87e"}.fad.fa-send-backward:after{content:"\10f87f"}.fad.fa-sensor:after{content:"\10f928"}.fad.fa-sensor-alert:after{content:"\10f929"}.fad.fa-sensor-fire:after{content:"\10f92a"}.fad.fa-sensor-on:after{content:"\10f92b"}.fad.fa-sensor-smoke:after{content:"\10f92c"}.fad.fa-server:after{content:"\10f233"}.fad.fa-shapes:after{content:"\10f61f"}.fad.fa-share:after{content:"\10f064"}.fad.fa-share-all:after{content:"\10f367"}.fad.fa-share-alt:after{content:"\10f1e0"}.fad.fa-share-alt-square:after{content:"\10f1e1"}.fad.fa-share-square:after{content:"\10f14d"}.fad.fa-sheep:after{content:"\10f711"}.fad.fa-shekel-sign:after{content:"\10f20b"}.fad.fa-shield:after{content:"\10f132"}.fad.fa-shield-alt:after{content:"\10f3ed"}.fad.fa-shield-check:after{content:"\10f2f7"}.fad.fa-shield-cross:after{content:"\10f712"}.fad.fa-ship:after{content:"\10f21a"}.fad.fa-shipping-fast:after{content:"\10f48b"}.fad.fa-shipping-timed:after{content:"\10f48c"}.fad.fa-shish-kebab:after{content:"\10f821"}.fad.fa-shoe-prints:after{content:"\10f54b"}.fad.fa-shopping-bag:after{content:"\10f290"}.fad.fa-shopping-basket:after{content:"\10f291"}.fad.fa-shopping-cart:after{content:"\10f07a"}.fad.fa-shovel:after{content:"\10f713"}.fad.fa-shovel-snow:after{content:"\10f7c3"}.fad.fa-shower:after{content:"\10f2cc"}.fad.fa-shredder:after{content:"\10f68a"}.fad.fa-shuttle-van:after{content:"\10f5b6"}.fad.fa-shuttlecock:after{content:"\10f45b"}.fad.fa-sickle:after{content:"\10f822"}.fad.fa-sigma:after{content:"\10f68b"}.fad.fa-sign:after{content:"\10f4d9"}.fad.fa-sign-in:after{content:"\10f090"}.fad.fa-sign-in-alt:after{content:"\10f2f6"}.fad.fa-sign-language:after{content:"\10f2a7"}.fad.fa-sign-out:after{content:"\10f08b"}.fad.fa-sign-out-alt:after{content:"\10f2f5"}.fad.fa-signal:after{content:"\10f012"}.fad.fa-signal-1:after{content:"\10f68c"}.fad.fa-signal-2:after{content:"\10f68d"}.fad.fa-signal-3:after{content:"\10f68e"}.fad.fa-signal-4:after{content:"\10f68f"}.fad.fa-signal-alt:after{content:"\10f690"}.fad.fa-signal-alt-1:after{content:"\10f691"}.fad.fa-signal-alt-2:after{content:"\10f692"}.fad.fa-signal-alt-3:after{content:"\10f693"}.fad.fa-signal-alt-slash:after{content:"\10f694"}.fad.fa-signal-slash:after{content:"\10f695"}.fad.fa-signal-stream:after{content:"\10f8dd"}.fad.fa-signature:after{content:"\10f5b7"}.fad.fa-sim-card:after{content:"\10f7c4"}.fad.fa-siren:after{content:"\10f92d"}.fad.fa-siren-on:after{content:"\10f92e"}.fad.fa-sitemap:after{content:"\10f0e8"}.fad.fa-skating:after{content:"\10f7c5"}.fad.fa-skeleton:after{content:"\10f620"}.fad.fa-ski-jump:after{content:"\10f7c7"}.fad.fa-ski-lift:after{content:"\10f7c8"}.fad.fa-skiing:after{content:"\10f7c9"}.fad.fa-skiing-nordic:after{content:"\10f7ca"}.fad.fa-skull:after{content:"\10f54c"}.fad.fa-skull-cow:after{content:"\10f8de"}.fad.fa-skull-crossbones:after{content:"\10f714"}.fad.fa-slash:after{content:"\10f715"}.fad.fa-sledding:after{content:"\10f7cb"}.fad.fa-sleigh:after{content:"\10f7cc"}.fad.fa-sliders-h:after{content:"\10f1de"}.fad.fa-sliders-h-square:after{content:"\10f3f0"}.fad.fa-sliders-v:after{content:"\10f3f1"}.fad.fa-sliders-v-square:after{content:"\10f3f2"}.fad.fa-smile:after{content:"\10f118"}.fad.fa-smile-beam:after{content:"\10f5b8"}.fad.fa-smile-plus:after{content:"\10f5b9"}.fad.fa-smile-wink:after{content:"\10f4da"}.fad.fa-smog:after{content:"\10f75f"}.fad.fa-smoke:after{content:"\10f760"}.fad.fa-smoking:after{content:"\10f48d"}.fad.fa-smoking-ban:after{content:"\10f54d"}.fad.fa-sms:after{content:"\10f7cd"}.fad.fa-snake:after{content:"\10f716"}.fad.fa-snooze:after{content:"\10f880"}.fad.fa-snow-blowing:after{content:"\10f761"}.fad.fa-snowboarding:after{content:"\10f7ce"}.fad.fa-snowflake:after{content:"\10f2dc"}.fad.fa-snowflakes:after{content:"\10f7cf"}.fad.fa-snowman:after{content:"\10f7d0"}.fad.fa-snowmobile:after{content:"\10f7d1"}.fad.fa-snowplow:after{content:"\10f7d2"}.fad.fa-socks:after{content:"\10f696"}.fad.fa-solar-panel:after{content:"\10f5ba"}.fad.fa-solar-system:after{content:"\10f92f"}.fad.fa-sort:after{content:"\10f0dc"}.fad.fa-sort-alpha-down:after{content:"\10f15d"}.fad.fa-sort-alpha-down-alt:after{content:"\10f881"}.fad.fa-sort-alpha-up:after{content:"\10f15e"}.fad.fa-sort-alpha-up-alt:after{content:"\10f882"}.fad.fa-sort-alt:after{content:"\10f883"}.fad.fa-sort-amount-down:after{content:"\10f160"}.fad.fa-sort-amount-down-alt:after{content:"\10f884"}.fad.fa-sort-amount-up:after{content:"\10f161"}.fad.fa-sort-amount-up-alt:after{content:"\10f885"}.fad.fa-sort-circle:after{content:"\10f930"}.fad.fa-sort-circle-down:after{content:"\10f931"}.fad.fa-sort-circle-up:after{content:"\10f932"}.fad.fa-sort-down:after{content:"\10f0dd"}.fad.fa-sort-numeric-down:after{content:"\10f162"}.fad.fa-sort-numeric-down-alt:after{content:"\10f886"}.fad.fa-sort-numeric-up:after{content:"\10f163"}.fad.fa-sort-numeric-up-alt:after{content:"\10f887"}.fad.fa-sort-shapes-down:after{content:"\10f888"}.fad.fa-sort-shapes-down-alt:after{content:"\10f889"}.fad.fa-sort-shapes-up:after{content:"\10f88a"}.fad.fa-sort-shapes-up-alt:after{content:"\10f88b"}.fad.fa-sort-size-down:after{content:"\10f88c"}.fad.fa-sort-size-down-alt:after{content:"\10f88d"}.fad.fa-sort-size-up:after{content:"\10f88e"}.fad.fa-sort-size-up-alt:after{content:"\10f88f"}.fad.fa-sort-up:after{content:"\10f0de"}.fad.fa-soup:after{content:"\10f823"}.fad.fa-spa:after{content:"\10f5bb"}.fad.fa-space-shuttle:after{content:"\10f197"}.fad.fa-space-station-moon:after{content:"\10f933"}.fad.fa-space-station-moon-alt:after{content:"\10f934"}.fad.fa-spade:after{content:"\10f2f4"}.fad.fa-sparkles:after{content:"\10f890"}.fad.fa-speaker:after{content:"\10f8df"}.fad.fa-speakers:after{content:"\10f8e0"}.fad.fa-spell-check:after{content:"\10f891"}.fad.fa-spider:after{content:"\10f717"}.fad.fa-spider-black-widow:after{content:"\10f718"}.fad.fa-spider-web:after{content:"\10f719"}.fad.fa-spinner:after{content:"\10f110"}.fad.fa-spinner-third:after{content:"\10f3f4"}.fad.fa-splotch:after{content:"\10f5bc"}.fad.fa-spray-can:after{content:"\10f5bd"}.fad.fa-sprinkler:after{content:"\10f935"}.fad.fa-square:after{content:"\10f0c8"}.fad.fa-square-full:after{content:"\10f45c"}.fad.fa-square-root:after{content:"\10f697"}.fad.fa-square-root-alt:after{content:"\10f698"}.fad.fa-squirrel:after{content:"\10f71a"}.fad.fa-staff:after{content:"\10f71b"}.fad.fa-stamp:after{content:"\10f5bf"}.fad.fa-star:after{content:"\10f005"}.fad.fa-star-and-crescent:after{content:"\10f699"}.fad.fa-star-christmas:after{content:"\10f7d4"}.fad.fa-star-exclamation:after{content:"\10f2f3"}.fad.fa-star-half:after{content:"\10f089"}.fad.fa-star-half-alt:after{content:"\10f5c0"}.fad.fa-star-of-david:after{content:"\10f69a"}.fad.fa-star-of-life:after{content:"\10f621"}.fad.fa-star-shooting:after{content:"\10f936"}.fad.fa-starfighter:after{content:"\10f937"}.fad.fa-starfighter-alt:after{content:"\10f938"}.fad.fa-stars:after{content:"\10f762"}.fad.fa-starship:after{content:"\10f939"}.fad.fa-starship-freighter:after{content:"\10f93a"}.fad.fa-steak:after{content:"\10f824"}.fad.fa-steering-wheel:after{content:"\10f622"}.fad.fa-step-backward:after{content:"\10f048"}.fad.fa-step-forward:after{content:"\10f051"}.fad.fa-stethoscope:after{content:"\10f0f1"}.fad.fa-sticky-note:after{content:"\10f249"}.fad.fa-stocking:after{content:"\10f7d5"}.fad.fa-stomach:after{content:"\10f623"}.fad.fa-stop:after{content:"\10f04d"}.fad.fa-stop-circle:after{content:"\10f28d"}.fad.fa-stopwatch:after{content:"\10f2f2"}.fad.fa-store:after{content:"\10f54e"}.fad.fa-store-alt:after{content:"\10f54f"}.fad.fa-stream:after{content:"\10f550"}.fad.fa-street-view:after{content:"\10f21d"}.fad.fa-stretcher:after{content:"\10f825"}.fad.fa-strikethrough:after{content:"\10f0cc"}.fad.fa-stroopwafel:after{content:"\10f551"}.fad.fa-subscript:after{content:"\10f12c"}.fad.fa-subway:after{content:"\10f239"}.fad.fa-suitcase:after{content:"\10f0f2"}.fad.fa-suitcase-rolling:after{content:"\10f5c1"}.fad.fa-sun:after{content:"\10f185"}.fad.fa-sun-cloud:after{content:"\10f763"}.fad.fa-sun-dust:after{content:"\10f764"}.fad.fa-sun-haze:after{content:"\10f765"}.fad.fa-sunglasses:after{content:"\10f892"}.fad.fa-sunrise:after{content:"\10f766"}.fad.fa-sunset:after{content:"\10f767"}.fad.fa-superscript:after{content:"\10f12b"}.fad.fa-surprise:after{content:"\10f5c2"}.fad.fa-swatchbook:after{content:"\10f5c3"}.fad.fa-swimmer:after{content:"\10f5c4"}.fad.fa-swimming-pool:after{content:"\10f5c5"}.fad.fa-sword:after{content:"\10f71c"}.fad.fa-sword-laser:after{content:"\10f93b"}.fad.fa-sword-laser-alt:after{content:"\10f93c"}.fad.fa-swords:after{content:"\10f71d"}.fad.fa-swords-laser:after{content:"\10f93d"}.fad.fa-synagogue:after{content:"\10f69b"}.fad.fa-sync:after{content:"\10f021"}.fad.fa-sync-alt:after{content:"\10f2f1"}.fad.fa-syringe:after{content:"\10f48e"}.fad.fa-table:after{content:"\10f0ce"}.fad.fa-table-tennis:after{content:"\10f45d"}.fad.fa-tablet:after{content:"\10f10a"}.fad.fa-tablet-alt:after{content:"\10f3fa"}.fad.fa-tablet-android:after{content:"\10f3fb"}.fad.fa-tablet-android-alt:after{content:"\10f3fc"}.fad.fa-tablet-rugged:after{content:"\10f48f"}.fad.fa-tablets:after{content:"\10f490"}.fad.fa-tachometer:after{content:"\10f0e4"}.fad.fa-tachometer-alt:after{content:"\10f3fd"}.fad.fa-tachometer-alt-average:after{content:"\10f624"}.fad.fa-tachometer-alt-fast:after{content:"\10f625"}.fad.fa-tachometer-alt-fastest:after{content:"\10f626"}.fad.fa-tachometer-alt-slow:after{content:"\10f627"}.fad.fa-tachometer-alt-slowest:after{content:"\10f628"}.fad.fa-tachometer-average:after{content:"\10f629"}.fad.fa-tachometer-fast:after{content:"\10f62a"}.fad.fa-tachometer-fastest:after{content:"\10f62b"}.fad.fa-tachometer-slow:after{content:"\10f62c"}.fad.fa-tachometer-slowest:after{content:"\10f62d"}.fad.fa-taco:after{content:"\10f826"}.fad.fa-tag:after{content:"\10f02b"}.fad.fa-tags:after{content:"\10f02c"}.fad.fa-tally:after{content:"\10f69c"}.fad.fa-tanakh:after{content:"\10f827"}.fad.fa-tape:after{content:"\10f4db"}.fad.fa-tasks:after{content:"\10f0ae"}.fad.fa-tasks-alt:after{content:"\10f828"}.fad.fa-taxi:after{content:"\10f1ba"}.fad.fa-teeth:after{content:"\10f62e"}.fad.fa-teeth-open:after{content:"\10f62f"}.fad.fa-telescope:after{content:"\10f93e"}.fad.fa-temperature-down:after{content:"\10f93f"}.fad.fa-temperature-frigid:after{content:"\10f768"}.fad.fa-temperature-high:after{content:"\10f769"}.fad.fa-temperature-hot:after{content:"\10f76a"}.fad.fa-temperature-low:after{content:"\10f76b"}.fad.fa-temperature-up:after{content:"\10f940"}.fad.fa-tenge:after{content:"\10f7d7"}.fad.fa-tennis-ball:after{content:"\10f45e"}.fad.fa-terminal:after{content:"\10f120"}.fad.fa-text:after{content:"\10f893"}.fad.fa-text-height:after{content:"\10f034"}.fad.fa-text-size:after{content:"\10f894"}.fad.fa-text-width:after{content:"\10f035"}.fad.fa-th:after{content:"\10f00a"}.fad.fa-th-large:after{content:"\10f009"}.fad.fa-th-list:after{content:"\10f00b"}.fad.fa-theater-masks:after{content:"\10f630"}.fad.fa-thermometer:after{content:"\10f491"}.fad.fa-thermometer-empty:after{content:"\10f2cb"}.fad.fa-thermometer-full:after{content:"\10f2c7"}.fad.fa-thermometer-half:after{content:"\10f2c9"}.fad.fa-thermometer-quarter:after{content:"\10f2ca"}.fad.fa-thermometer-three-quarters:after{content:"\10f2c8"}.fad.fa-theta:after{content:"\10f69e"}.fad.fa-thumbs-down:after{content:"\10f165"}.fad.fa-thumbs-up:after{content:"\10f164"}.fad.fa-thumbtack:after{content:"\10f08d"}.fad.fa-thunderstorm:after{content:"\10f76c"}.fad.fa-thunderstorm-moon:after{content:"\10f76d"}.fad.fa-thunderstorm-sun:after{content:"\10f76e"}.fad.fa-ticket:after{content:"\10f145"}.fad.fa-ticket-alt:after{content:"\10f3ff"}.fad.fa-tilde:after{content:"\10f69f"}.fad.fa-times:after{content:"\10f00d"}.fad.fa-times-circle:after{content:"\10f057"}.fad.fa-times-hexagon:after{content:"\10f2ee"}.fad.fa-times-octagon:after{content:"\10f2f0"}.fad.fa-times-square:after{content:"\10f2d3"}.fad.fa-tint:after{content:"\10f043"}.fad.fa-tint-slash:after{content:"\10f5c7"}.fad.fa-tire:after{content:"\10f631"}.fad.fa-tire-flat:after{content:"\10f632"}.fad.fa-tire-pressure-warning:after{content:"\10f633"}.fad.fa-tire-rugged:after{content:"\10f634"}.fad.fa-tired:after{content:"\10f5c8"}.fad.fa-toggle-off:after{content:"\10f204"}.fad.fa-toggle-on:after{content:"\10f205"}.fad.fa-toilet:after{content:"\10f7d8"}.fad.fa-toilet-paper:after{content:"\10f71e"}.fad.fa-toilet-paper-alt:after{content:"\10f71f"}.fad.fa-tombstone:after{content:"\10f720"}.fad.fa-tombstone-alt:after{content:"\10f721"}.fad.fa-toolbox:after{content:"\10f552"}.fad.fa-tools:after{content:"\10f7d9"}.fad.fa-tooth:after{content:"\10f5c9"}.fad.fa-toothbrush:after{content:"\10f635"}.fad.fa-torah:after{content:"\10f6a0"}.fad.fa-torii-gate:after{content:"\10f6a1"}.fad.fa-tornado:after{content:"\10f76f"}.fad.fa-tractor:after{content:"\10f722"}.fad.fa-trademark:after{content:"\10f25c"}.fad.fa-traffic-cone:after{content:"\10f636"}.fad.fa-traffic-light:after{content:"\10f637"}.fad.fa-traffic-light-go:after{content:"\10f638"}.fad.fa-traffic-light-slow:after{content:"\10f639"}.fad.fa-traffic-light-stop:after{content:"\10f63a"}.fad.fa-trailer:after{content:"\10f941"}.fad.fa-train:after{content:"\10f238"}.fad.fa-tram:after{content:"\10f7da"}.fad.fa-transgender:after{content:"\10f224"}.fad.fa-transgender-alt:after{content:"\10f225"}.fad.fa-transporter:after{content:"\10f942"}.fad.fa-transporter-1:after{content:"\10f943"}.fad.fa-transporter-2:after{content:"\10f944"}.fad.fa-transporter-3:after{content:"\10f945"}.fad.fa-transporter-empty:after{content:"\10f946"}.fad.fa-trash:after{content:"\10f1f8"}.fad.fa-trash-alt:after{content:"\10f2ed"}.fad.fa-trash-restore:after{content:"\10f829"}.fad.fa-trash-restore-alt:after{content:"\10f82a"}.fad.fa-trash-undo:after{content:"\10f895"}.fad.fa-trash-undo-alt:after{content:"\10f896"}.fad.fa-treasure-chest:after{content:"\10f723"}.fad.fa-tree:after{content:"\10f1bb"}.fad.fa-tree-alt:after{content:"\10f400"}.fad.fa-tree-christmas:after{content:"\10f7db"}.fad.fa-tree-decorated:after{content:"\10f7dc"}.fad.fa-tree-large:after{content:"\10f7dd"}.fad.fa-tree-palm:after{content:"\10f82b"}.fad.fa-trees:after{content:"\10f724"}.fad.fa-triangle:after{content:"\10f2ec"}.fad.fa-triangle-music:after{content:"\10f8e2"}.fad.fa-trophy:after{content:"\10f091"}.fad.fa-trophy-alt:after{content:"\10f2eb"}.fad.fa-truck:after{content:"\10f0d1"}.fad.fa-truck-container:after{content:"\10f4dc"}.fad.fa-truck-couch:after{content:"\10f4dd"}.fad.fa-truck-loading:after{content:"\10f4de"}.fad.fa-truck-monster:after{content:"\10f63b"}.fad.fa-truck-moving:after{content:"\10f4df"}.fad.fa-truck-pickup:after{content:"\10f63c"}.fad.fa-truck-plow:after{content:"\10f7de"}.fad.fa-truck-ramp:after{content:"\10f4e0"}.fad.fa-trumpet:after{content:"\10f8e3"}.fad.fa-tshirt:after{content:"\10f553"}.fad.fa-tty:after{content:"\10f1e4"}.fad.fa-turkey:after{content:"\10f725"}.fad.fa-turntable:after{content:"\10f8e4"}.fad.fa-turtle:after{content:"\10f726"}.fad.fa-tv:after{content:"\10f26c"}.fad.fa-tv-alt:after{content:"\10f8e5"}.fad.fa-tv-music:after{content:"\10f8e6"}.fad.fa-tv-retro:after{content:"\10f401"}.fad.fa-typewriter:after{content:"\10f8e7"}.fad.fa-ufo:after{content:"\10f947"}.fad.fa-ufo-beam:after{content:"\10f948"}.fad.fa-umbrella:after{content:"\10f0e9"}.fad.fa-umbrella-beach:after{content:"\10f5ca"}.fad.fa-underline:after{content:"\10f0cd"}.fad.fa-undo:after{content:"\10f0e2"}.fad.fa-undo-alt:after{content:"\10f2ea"}.fad.fa-unicorn:after{content:"\10f727"}.fad.fa-union:after{content:"\10f6a2"}.fad.fa-universal-access:after{content:"\10f29a"}.fad.fa-university:after{content:"\10f19c"}.fad.fa-unlink:after{content:"\10f127"}.fad.fa-unlock:after{content:"\10f09c"}.fad.fa-unlock-alt:after{content:"\10f13e"}.fad.fa-upload:after{content:"\10f093"}.fad.fa-usb-drive:after{content:"\10f8e9"}.fad.fa-usd-circle:after{content:"\10f2e8"}.fad.fa-usd-square:after{content:"\10f2e9"}.fad.fa-user:after{content:"\10f007"}.fad.fa-user-alien:after{content:"\10f94a"}.fad.fa-user-alt:after{content:"\10f406"}.fad.fa-user-alt-slash:after{content:"\10f4fa"}.fad.fa-user-astronaut:after{content:"\10f4fb"}.fad.fa-user-chart:after{content:"\10f6a3"}.fad.fa-user-check:after{content:"\10f4fc"}.fad.fa-user-circle:after{content:"\10f2bd"}.fad.fa-user-clock:after{content:"\10f4fd"}.fad.fa-user-cog:after{content:"\10f4fe"}.fad.fa-user-cowboy:after{content:"\10f8ea"}.fad.fa-user-crown:after{content:"\10f6a4"}.fad.fa-user-edit:after{content:"\10f4ff"}.fad.fa-user-friends:after{content:"\10f500"}.fad.fa-user-graduate:after{content:"\10f501"}.fad.fa-user-hard-hat:after{content:"\10f82c"}.fad.fa-user-headset:after{content:"\10f82d"}.fad.fa-user-injured:after{content:"\10f728"}.fad.fa-user-lock:after{content:"\10f502"}.fad.fa-user-md:after{content:"\10f0f0"}.fad.fa-user-md-chat:after{content:"\10f82e"}.fad.fa-user-minus:after{content:"\10f503"}.fad.fa-user-music:after{content:"\10f8eb"}.fad.fa-user-ninja:after{content:"\10f504"}.fad.fa-user-nurse:after{content:"\10f82f"}.fad.fa-user-plus:after{content:"\10f234"}.fad.fa-user-robot:after{content:"\10f94b"}.fad.fa-user-secret:after{content:"\10f21b"}.fad.fa-user-shield:after{content:"\10f505"}.fad.fa-user-slash:after{content:"\10f506"}.fad.fa-user-tag:after{content:"\10f507"}.fad.fa-user-tie:after{content:"\10f508"}.fad.fa-user-times:after{content:"\10f235"}.fad.fa-user-visor:after{content:"\10f94c"}.fad.fa-users:after{content:"\10f0c0"}.fad.fa-users-class:after{content:"\10f63d"}.fad.fa-users-cog:after{content:"\10f509"}.fad.fa-users-crown:after{content:"\10f6a5"}.fad.fa-users-medical:after{content:"\10f830"}.fad.fa-utensil-fork:after{content:"\10f2e3"}.fad.fa-utensil-knife:after{content:"\10f2e4"}.fad.fa-utensil-spoon:after{content:"\10f2e5"}.fad.fa-utensils:after{content:"\10f2e7"}.fad.fa-utensils-alt:after{content:"\10f2e6"}.fad.fa-vacuum:after{content:"\10f94d"}.fad.fa-vacuum-robot:after{content:"\10f94e"}.fad.fa-value-absolute:after{content:"\10f6a6"}.fad.fa-vector-square:after{content:"\10f5cb"}.fad.fa-venus:after{content:"\10f221"}.fad.fa-venus-double:after{content:"\10f226"}.fad.fa-venus-mars:after{content:"\10f228"}.fad.fa-vhs:after{content:"\10f8ec"}.fad.fa-vial:after{content:"\10f492"}.fad.fa-vials:after{content:"\10f493"}.fad.fa-video:after{content:"\10f03d"}.fad.fa-video-plus:after{content:"\10f4e1"}.fad.fa-video-slash:after{content:"\10f4e2"}.fad.fa-vihara:after{content:"\10f6a7"}.fad.fa-violin:after{content:"\10f8ed"}.fad.fa-voicemail:after{content:"\10f897"}.fad.fa-volcano:after{content:"\10f770"}.fad.fa-volleyball-ball:after{content:"\10f45f"}.fad.fa-volume:after{content:"\10f6a8"}.fad.fa-volume-down:after{content:"\10f027"}.fad.fa-volume-mute:after{content:"\10f6a9"}.fad.fa-volume-off:after{content:"\10f026"}.fad.fa-volume-slash:after{content:"\10f2e2"}.fad.fa-volume-up:after{content:"\10f028"}.fad.fa-vote-nay:after{content:"\10f771"}.fad.fa-vote-yea:after{content:"\10f772"}.fad.fa-vr-cardboard:after{content:"\10f729"}.fad.fa-wagon-covered:after{content:"\10f8ee"}.fad.fa-walker:after{content:"\10f831"}.fad.fa-walkie-talkie:after{content:"\10f8ef"}.fad.fa-walking:after{content:"\10f554"}.fad.fa-wallet:after{content:"\10f555"}.fad.fa-wand:after{content:"\10f72a"}.fad.fa-wand-magic:after{content:"\10f72b"}.fad.fa-warehouse:after{content:"\10f494"}.fad.fa-warehouse-alt:after{content:"\10f495"}.fad.fa-washer:after{content:"\10f898"}.fad.fa-watch:after{content:"\10f2e1"}.fad.fa-watch-calculator:after{content:"\10f8f0"}.fad.fa-watch-fitness:after{content:"\10f63e"}.fad.fa-water:after{content:"\10f773"}.fad.fa-water-lower:after{content:"\10f774"}.fad.fa-water-rise:after{content:"\10f775"}.fad.fa-wave-sine:after{content:"\10f899"}.fad.fa-wave-square:after{content:"\10f83e"}.fad.fa-wave-triangle:after{content:"\10f89a"}.fad.fa-waveform:after{content:"\10f8f1"}.fad.fa-waveform-path:after{content:"\10f8f2"}.fad.fa-webcam:after{content:"\10f832"}.fad.fa-webcam-slash:after{content:"\10f833"}.fad.fa-weight:after{content:"\10f496"}.fad.fa-weight-hanging:after{content:"\10f5cd"}.fad.fa-whale:after{content:"\10f72c"}.fad.fa-wheat:after{content:"\10f72d"}.fad.fa-wheelchair:after{content:"\10f193"}.fad.fa-whistle:after{content:"\10f460"}.fad.fa-wifi:after{content:"\10f1eb"}.fad.fa-wifi-1:after{content:"\10f6aa"}.fad.fa-wifi-2:after{content:"\10f6ab"}.fad.fa-wifi-slash:after{content:"\10f6ac"}.fad.fa-wind:after{content:"\10f72e"}.fad.fa-wind-turbine:after{content:"\10f89b"}.fad.fa-wind-warning:after{content:"\10f776"}.fad.fa-window:after{content:"\10f40e"}.fad.fa-window-alt:after{content:"\10f40f"}.fad.fa-window-close:after{content:"\10f410"}.fad.fa-window-frame:after{content:"\10f94f"}.fad.fa-window-frame-open:after{content:"\10f950"}.fad.fa-window-maximize:after{content:"\10f2d0"}.fad.fa-window-minimize:after{content:"\10f2d1"}.fad.fa-window-restore:after{content:"\10f2d2"}.fad.fa-windsock:after{content:"\10f777"}.fad.fa-wine-bottle:after{content:"\10f72f"}.fad.fa-wine-glass:after{content:"\10f4e3"}.fad.fa-wine-glass-alt:after{content:"\10f5ce"}.fad.fa-won-sign:after{content:"\10f159"}.fad.fa-wreath:after{content:"\10f7e2"}.fad.fa-wrench:after{content:"\10f0ad"}.fad.fa-x-ray:after{content:"\10f497"}.fad.fa-yen-sign:after{content:"\10f157"}.fad.fa-yin-yang:after{content:"\10f6ad"}@font-face{font-family:'font awesome 5 pro';font-style:normal;font-weight:300;font-display:auto;src:url(../fonts/fa-light-300.eot);src:url(../fonts/fa-light-300.eot?#iefix) format("embedded-opentype"),url(../fonts/fa-light-300.woff2) format("woff2"),url(../fonts/fa-light-300.woff) format("woff"),url(../fonts/fa-light-300.ttf) format("truetype"),url(../fonts/fa-light-300.svg#fontawesome) format("svg")}.fal{font-family:'font awesome 5 pro'!important;;font-weight:300}@font-face{font-family:'font awesome 5 pro';font-style:normal;font-weight:400;font-display:auto;src:url(../fonts/fa-regular-400.eot);src:url(../fonts/fa-regular-400.eot?#iefix) format("embedded-opentype"),url(../fonts/fa-regular-400.woff2) format("woff2"),url(../fonts/fa-regular-400.woff) format("woff"),url(../fonts/fa-regular-400.ttf) format("truetype"),url(../fonts/fa-regular-400.svg#fontawesome) format("svg")}.far{font-family:'font awesome 5 pro'!important;;font-weight:400}@font-face{font-family:'font awesome 5 pro';font-style:normal;font-weight:900;font-display:auto;src:url(../fonts/fa-solid-900.eot);src:url(../fonts/fa-solid-900.eot?#iefix) format("embedded-opentype"),url(../fonts/fa-solid-900.woff2) format("woff2"),url(../fonts/fa-solid-900.woff) format("woff"),url(../fonts/fa-solid-900.ttf) format("truetype"),url(../fonts/fa-solid-900.svg#fontawesome) format("svg")}.fa,.fas{font-family:'font awesome 5 pro'!important;font-weight:900}
+.fa,.fas,.far,.fal,.fad,.fab{-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;display:inline-block;font-style:normal;font-variant:normal;text-rendering:auto;line-height:1}.fa-lg{font-size:1.33333em;line-height:.75em;vertical-align:-.0667em}.fa-sm{font-size:.875em}.fa-2x{font-size:2em}.fa-fw{text-align:center;width:1.25em}@-webkit-keyframes fa-spin{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}100%{-webkit-transform:rotate(360deg);transform:rotate(360deg)}}@keyframes fa-spin{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}100%{-webkit-transform:rotate(360deg);transform:rotate(360deg)}}.fa-flip-horizontal{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=0, mirror=1)";-webkit-transform:scale(-1,1);transform:scale(-1,1)}:root .fa-flip-horizontal{-webkit-filter:none;filter: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:0;position:absolute;text-align:center;width:100%}.fa-stack-1x{line-height:inherit}.fa-stack-2x{font-size:2em}.fa-align-left:before{content:"\f036"}.fa-android:before{content:"\f17b"}.fa-arrow-alt-circle-down:before{content:"\f358"}.fa-arrow-alt-circle-up:before{content:"\f35b"}.fa-arrow-alt-down:before{content:"\f354"}.fa-arrow-alt-up:before{content:"\f357"}.fa-arrow-right:before{content:"\f061"}.fa-arrows-v:before{content:"\f07d"}.fa-badge-check:before{content:"\f336"}.fa-balance-scale:before{content:"\f24e"}.fa-ban:before{content:"\f05e"}.fa-bars:before{content:"\f0c9"}.fa-bell:before{content:"\f0f3"}.fa-bold:before{content:"\f032"}.fa-book:before{content:"\f02d"}.fa-book-dead:before{content:"\f6b7"}.fa-book-open:before{content:"\f518"}.fa-broom:before{content:"\f51a"}.fa-bug:before{content:"\f188"}.fa-bullhorn:before{content:"\f0a1"}.fa-calendar:before{content:"\f133"}.fa-calendar-alt:before{content:"\f073"}.fa-calendar-day:before{content:"\f783"}.fa-calendar-week:before{content:"\f784"}.fa-candy-cane:before{content:"\f786"}.fa-cat:before{content:"\f6be"}.fa-check:before{content:"\f00c"}.fa-check-circle:before{content:"\f058"}.fa-circle:before{content:"\f111"}.fa-clipboard:before{content:"\f328"}.fa-clipboard-check:before{content:"\f46c"}.fa-clock:before{content:"\f017"}.fa-code:before{content:"\f121"}.fa-cog:before{content:"\f013"}.fa-comment:before{content:"\f075"}.fa-comment-alt-smile:before{content:"\f4aa"}.fa-comment-dots:before{content:"\f4ad"}.fa-comments:before{content:"\f086"}.fa-compress-alt:before{content:"\f422"}.fa-copy:before{content:"\f0c5"}.fa-crown:before{content:"\f521"}.fa-discord:before{content:"\f392"}.fa-dna:before{content:"\f471"}.fa-dollar-sign:before{content:"\f155"}.fa-edit:before{content:"\f044"}.fa-ellipsis-h:before{content:"\f141"}.fa-envelope:before{content:"\f0e0"}.fa-envelope-open-text:before{content:"\f658"}.fa-exclamation-circle:before{content:"\f06a"}.fa-exclamation-triangle:before{content:"\f071"}.fa-expand-alt:before{content:"\f424"}.fa-external-link-alt:before{content:"\f35d"}.fa-eye:before{content:"\f06e"}.fa-eye-evil:before{content:"\f6db"}.fa-eye-slash:before{content:"\f070"}.fa-feather-alt:before{content:"\f56b"}.fa-file-signature:before{content:"\f573"}.fa-filter:before{content:"\f0b0"}.fa-fire:before{content:"\f06d"}.fa-flag:before{content:"\f024"}.fa-frown:before{content:"\f119"}.fa-gavel:before{content:"\f0e3"}.fa-ghost:before{content:"\f6e2"}.fa-gift:before{content:"\f06b"}.fa-github:before{content:"\f09b"}.fa-globe:before{content:"\f0ac"}.fa-grin-beam-sweat:before{content:"\f583"}.fa-home-alt:before{content:"\f80a"}.fa-id-badge:before{content:"\f2c1"}.fa-id-card:before{content:"\f2c2"}.fa-image:before{content:"\f03e"}.fa-infinity:before{content:"\f534"}.fa-info-circle:before{content:"\f05a"}.fa-italic:before{content:"\f033"}.fa-knife-kitchen:before{content:"\f6f5"}.fa-laugh-squint:before{content:"\f59b"}.fa-lights-holiday:before{content:"\f7b2"}.fa-link:before{content:"\f0c1"}.fa-lock:before{content:"\f023"}.fa-lock-alt:before{content:"\f30d"}.fa-long-arrow-left:before{content:"\f177"}.fa-long-arrow-right:before{content:"\f178"}.fa-microphone-stand:before{content:"\f8cb"}.fa-mistletoe:before{content:"\f7b4"}.fa-music:before{content:"\f001"}.fa-palette:before{content:"\f53f"}.fa-pencil:before{content:"\f040"}.fa-pizza-slice:before{content:"\f818"}.fa-poop:before{content:"\f619"}.fa-quote-right:before{content:"\f10e"}.fa-random:before{content:"\f074"}.fa-reply:before{content:"\f3e5"}.fa-robot:before{content:"\f544"}.fa-save:before{content:"\f0c7"}.fa-scroll-old:before{content:"\f70f"}.fa-search:before{content:"\f002"}.fa-seedling:before{content:"\f4d8"}.fa-sign-out:before{content:"\f08b"}.fa-smile-beam:before{content:"\f5b8"}.fa-smoke:before{content:"\f760"}.fa-snooze:before{content:"\f880"}.fa-snowflake:before{content:"\f2dc"}.fa-sparkles:before{content:"\f890"}.fa-spider:before{content:"\f717"}.fa-square:before{content:"\f0c8"}.fa-store:before{content:"\f54e"}.fa-thumbtack:before{content:"\f08d";padding:2px;}.fa-times:before{content:"\f00d"}.fa-times-circle:before{content:"\f057"}.fa-train:before{content:"\f238"}.fa-trash-alt:before{content:"\f2ed"}.fa-treasure-chest:before{content:"\f723"}.fa-trophy:before{content:"\f091"}.fa-twitter:before{content:"\f099"}.fa-user:before{content:"\f007"}.fa-user-circle:before{content:"\f2bd"}.fa-user-cog:before{content:"\f4fe"}.fa-user-friends:before{content:"\f500"}.fa-user-lock:before{content:"\f502"}.fa-user-minus:before{content:"\f503"}.fa-user-plus:before{content:"\f234"}.fa-user-slash:before{content:"\f506"}.fa-user-tag:before{content:"\f507"}.fa-user-times:before{content:"\f235"}.fa-volume:before{content:"\f6a8"}.fa-volume-mute:before{content:"\f6a9"}@font-face{font-family:'font awesome 5 brands';font-style:normal;font-weight:400;font-display:swap;src:url(../fonts/fa-brands-400.eot);src:url(../fonts/fa-brands-400.eot?#iefix) format("embedded-opentype"),url(../fonts/fa-brands-400.woff2) format("woff2"),url(../fonts/fa-brands-400.woff) format("woff"),url(../fonts/fa-brands-400.ttf) format("truetype"),url(../fonts/fa-brands-400.svg#fontawesome) format("svg")}.fab{font-family:'font awesome 5 brands'!important}@font-face{font-family:'font awesome 5 duotone';font-style:normal;font-weight:900;font-display:swap;src:url(../fonts/fa-duotone-900.eot);src:url(../fonts/fa-duotone-900.eot?#iefix) format("embedded-opentype"),url(../fonts/fa-duotone-900.woff2) format("woff2"),url(../fonts/fa-duotone-900.woff) format("woff"),url(../fonts/fa-duotone-900.ttf) format("truetype"),url(../fonts/fa-duotone-900.svg#fontawesome) format("svg")}.fad{position:relative;font-family:'font awesome 5 duotone'!important;font-weight:900}.fad:before{position:absolute;color:var(--fa-primary-color,inherit);opacity:1;opacity:var(--fa-primary-opacity,1)}.fad:after{color:var(--fa-secondary-color,inherit);opacity:.4;opacity:var(--fa-secondary-opacity,0.4)}.fad.fa-stack-1x,.fad.fa-stack-2x{position:absolute}.fad.fa-stack-1x:before,.fad.fa-stack-2x:before,.fad.fa-fw:before{left:50%;-webkit-transform:translateX(-50%);transform:translateX(-50%)}.fad.fa-align-left:after{content:"\10f036"}.fad.fa-arrow-alt-circle-down:after{content:"\10f358"}.fad.fa-arrow-alt-circle-up:after{content:"\10f35b"}.fad.fa-arrow-alt-down:after{content:"\10f354"}.fad.fa-arrow-alt-up:after{content:"\10f357"}.fad.fa-arrow-right:after{content:"\10f061"}.fad.fa-arrows-v:after{content:"\10f07d"}.fad.fa-badge-check:after{content:"\10f336"}.fad.fa-balance-scale:after{content:"\10f24e"}.fad.fa-ban:after{content:"\10f05e"}.fad.fa-bars:after{content:"\10f0c9"}.fad.fa-bell:after{content:"\10f0f3"}.fad.fa-bold:after{content:"\10f032"}.fad.fa-book:after{content:"\10f02d"}.fad.fa-book-dead:after{content:"\10f6b7"}.fad.fa-book-open:after{content:"\10f518"}.fad.fa-broom:after{content:"\10f51a"}.fad.fa-bug:after{content:"\10f188"}.fad.fa-bullhorn:after{content:"\10f0a1"}.fad.fa-calendar:after{content:"\10f133"}.fad.fa-calendar-alt:after{content:"\10f073"}.fad.fa-calendar-day:after{content:"\10f783"}.fad.fa-calendar-week:after{content:"\10f784"}.fad.fa-candy-cane:after{content:"\10f786"}.fad.fa-cat:after{content:"\10f6be"}.fad.fa-check:after{content:"\10f00c"}.fad.fa-check-circle:after{content:"\10f058"}.fad.fa-circle:after{content:"\10f111"}.fad.fa-clipboard:after{content:"\10f328"}.fad.fa-clipboard-check:after{content:"\10f46c"}.fad.fa-clock:after{content:"\10f017"}.fad.fa-code:after{content:"\10f121"}.fad.fa-cog:after{content:"\10f013"}.fad.fa-comment:after{content:"\10f075"}.fad.fa-comment-alt-smile:after{content:"\10f4aa"}.fad.fa-comment-dots:after{content:"\10f4ad"}.fad.fa-comments:after{content:"\10f086"}.fad.fa-compress-alt:after{content:"\10f422"}.fad.fa-copy:after{content:"\10f0c5"}.fad.fa-crown:after{content:"\10f521"}.fad.fa-dna:after{content:"\10f471"}.fad.fa-dollar-sign:after{content:"\10f155"}.fad.fa-edit:after{content:"\10f044"}.fad.fa-ellipsis-h:after{content:"\10f141"}.fad.fa-envelope:after{content:"\10f0e0"}.fad.fa-envelope-open-text:after{content:"\10f658"}.fad.fa-exclamation-circle:after{content:"\10f06a"}.fad.fa-exclamation-triangle:after{content:"\10f071"}.fad.fa-expand-alt:after{content:"\10f424"}.fad.fa-external-link-alt:after{content:"\10f35d"}.fad.fa-eye:after{content:"\10f06e"}.fad.fa-eye-evil:after{content:"\10f6db"}.fad.fa-eye-slash:after{content:"\10f070"}.fad.fa-feather-alt:after{content:"\10f56b"}.fad.fa-file-signature:after{content:"\10f573"}.fad.fa-filter:after{content:"\10f0b0"}.fad.fa-fire:after{content:"\10f06d"}.fad.fa-flag:after{content:"\10f024"}.fad.fa-frown:after{content:"\10f119"}.fad.fa-gavel:after{content:"\10f0e3"}.fad.fa-ghost:after{content:"\10f6e2"}.fad.fa-gift:after{content:"\10f06b"}.fad.fa-globe:after{content:"\10f0ac"}.fad.fa-grin-beam-sweat:after{content:"\10f583"}.fad.fa-home-alt:after{content:"\10f80a"}.fad.fa-id-badge:after{content:"\10f2c1"}.fad.fa-id-card:after{content:"\10f2c2"}.fad.fa-image:after{content:"\10f03e"}.fad.fa-infinity:after{content:"\10f534"}.fad.fa-info-circle:after{content:"\10f05a"}.fad.fa-italic:after{content:"\10f033"}.fad.fa-knife-kitchen:after{content:"\10f6f5"}.fad.fa-laugh-squint:after{content:"\10f59b"}.fad.fa-lights-holiday:after{content:"\10f7b2"}.fad.fa-link:after{content:"\10f0c1"}.fad.fa-lock:after{content:"\10f023"}.fad.fa-lock-alt:after{content:"\10f30d"}.fad.fa-long-arrow-left:after{content:"\10f177"}.fad.fa-long-arrow-right:after{content:"\10f178"}.fad.fa-microphone-stand:after{content:"\10f8cb"}.fad.fa-mistletoe:after{content:"\10f7b4"}.fad.fa-music:after{content:"\10f001"}.fad.fa-palette:after{content:"\10f53f"}.fad.fa-pencil:after{content:"\10f040"}.fad.fa-pizza-slice:after{content:"\10f818"}.fad.fa-poop:after{content:"\10f619"}.fad.fa-quote-right:after{content:"\10f10e"}.fad.fa-random:after{content:"\10f074"}.fad.fa-reply:after{content:"\10f3e5"}.fad.fa-robot:after{content:"\10f544"}.fad.fa-save:after{content:"\10f0c7"}.fad.fa-scroll-old:after{content:"\10f70f"}.fad.fa-search:after{content:"\10f002"}.fad.fa-seedling:after{content:"\10f4d8"}.fad.fa-sign-out:after{content:"\10f08b"}.fad.fa-smile-beam:after{content:"\10f5b8"}.fad.fa-smoke:after{content:"\10f760"}.fad.fa-snooze:after{content:"\10f880"}.fad.fa-snowflake:after{content:"\10f2dc"}.fad.fa-sparkles:after{content:"\10f890"}.fad.fa-spider:after{content:"\10f717"}.fad.fa-square:after{content:"\10f0c8"}.fad.fa-store:after{content:"\10f54e"}.fad.fa-thumbtack:after{content:"\10f08d"}.fad.fa-times:after{content:"\10f00d"}.fad.fa-times-circle:after{content:"\10f057"}.fad.fa-train:after{content:"\10f238"}.fad.fa-trash-alt:after{content:"\10f2ed"}.fad.fa-treasure-chest:after{content:"\10f723"}.fad.fa-trophy:after{content:"\10f091"}.fad.fa-user:after{content:"\10f007"}.fad.fa-user-circle:after{content:"\10f2bd"}.fad.fa-user-cog:after{content:"\10f4fe"}.fad.fa-user-friends:after{content:"\10f500"}.fad.fa-user-lock:after{content:"\10f502"}.fad.fa-user-minus:after{content:"\10f503"}.fad.fa-user-plus:after{content:"\10f234"}.fad.fa-user-slash:after{content:"\10f506"}.fad.fa-user-tag:after{content:"\10f507"}.fad.fa-user-times:after{content:"\10f235"}.fad.fa-volume:after{content:"\10f6a8"}.fad.fa-volume-mute:after{content:"\10f6a9"}@font-face{font-family:'font awesome 5 pro';font-style:normal;font-weight:300;font-display:swap;src:url(../fonts/fa-light-300.eot);src:url(../fonts/fa-light-300.eot?#iefix) format("embedded-opentype"),url(../fonts/fa-light-300.woff2) format("woff2"),url(../fonts/fa-light-300.woff) format("woff"),url(../fonts/fa-light-300.ttf) format("truetype"),url(../fonts/fa-light-300.svg#fontawesome) format("svg")}.fal{font-family:'font awesome 5 pro'!important;;font-weight:300}@font-face{font-family:'font awesome 5 pro';font-style:normal;font-weight:400;font-display:swap;src:url(../fonts/fa-regular-400.eot);src:url(../fonts/fa-regular-400.eot?#iefix) format("embedded-opentype"),url(../fonts/fa-regular-400.woff2) format("woff2"),url(../fonts/fa-regular-400.woff) format("woff"),url(../fonts/fa-regular-400.ttf) format("truetype"),url(../fonts/fa-regular-400.svg#fontawesome) format("svg")}.far{font-family:'font awesome 5 pro'!important;;font-weight:400}@font-face{font-family:'font awesome 5 pro';font-style:normal;font-weight:900;font-display:swap;src:url(../fonts/fa-solid-900.eot);src:url(../fonts/fa-solid-900.eot?#iefix) format("embedded-opentype"),url(../fonts/fa-solid-900.woff2) format("woff2"),url(../fonts/fa-solid-900.woff) format("woff"),url(../fonts/fa-solid-900.ttf) format("truetype"),url(../fonts/fa-solid-900.svg#fontawesome) format("svg")}.fa,.fas{font-family:'font awesome 5 pro'!important;font-weight:900}
+
+.fa-fish:before{content:"\f578"}.fa-gingerbread-man:before{content:"\f79d"}.fa-fireplace:before{content:"\f79a"}.fa-angry:before{content:"\f556"}.fad.fa-gingerbread-man:after{content:"\10f79d"}.fad.fa-fireplace:after{content:"\10f79a"}.fad.fa-angry:after{content:"\10f556"}.fa-stocking:before{content:"\f7d5"}.fad.fa-stocking:after{content:"\10f7d5"}
\ No newline at end of file
diff --git a/files/assets/css/main.css b/files/assets/css/main.css
index 48e90eb1b..1590016f7 100644
--- a/files/assets/css/main.css
+++ b/files/assets/css/main.css
@@ -1,10 +1,5 @@
@charset "UTF-8";
-/*@import url('https://fonts.googleapis.com/css?family=Roboto:400,500&display=swap');
-@tailwind base;
-@tailwind components;
-@tailwind utilities;*/
-
*,
*::before,
*::after {
@@ -12,7 +7,7 @@
}
html {
- font-family: 'Helvetica Neue', -apple-system, BlinkMacSystemFont, 'Tahoma', "Segoe UI", Roboto, Helvetica, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol"!important;
+ font-family: sans-serif;
line-height: 1.15;
-webkit-text-size-adjust: 100%;
-webkit-tap-highlight-color: rgba(0, 0, 0, 0);
@@ -24,7 +19,7 @@ article, aside, figcaption, figure, footer, header, main, nav, section {
body {
margin: 0;
- font-family: 'Helvetica Neue', -apple-system, BlinkMacSystemFont, 'Tahoma', "Segoe UI", Roboto, Helvetica, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol"!important;
+ font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol";
font-size: 1rem;
font-weight: 400;
line-height: 1.5;
@@ -120,15 +115,15 @@ sup {
top: -0.5em;
}
-/*a {
+a {
color: var(--primary);
text-decoration: none;
background-color: transparent;
-}*/
-/*a:hover {
+}
+a:hover {
color: var(--primary);
text-decoration: underline;
-}*/
+}
a:not([href]) {
color: inherit;
@@ -183,10 +178,10 @@ th {
text-align: inherit;
}
-/*label {
+label {
display: inline-block;
margin-bottom: 0.5rem;
-}*/
+}
button {
border-radius: 0;
@@ -341,7 +336,7 @@ hr {
margin-top: 1rem;
margin-bottom: 1rem;
border: 0;
- border-top: 1px solid rgba(0, 0, 0, 0.1);
+ border-top: 1px solid var(--primary);
}
small,
@@ -356,6 +351,567 @@ mark,
background-color: #fcf8e3;
}
+.list-inline {
+ padding-left: 0;
+ list-style: none;
+}
+
+.list-inline-item {
+ display: inline-block;
+}
+.list-inline-item:not(:last-child) {
+ margin-right: 0.5rem;
+}
+
+.blockquote {
+ margin-bottom: 1rem;
+ font-size: 1.25rem;
+}
+
+.img-fluid {
+ max-width: 100%;
+ height: auto;
+}
+
+.img-thumbnail {
+ padding: 0.25rem;
+ background-color: #fff;
+ border: 1px solid #dee2e6;
+ border-radius: 0.35rem;
+ max-width: 100%;
+ height: auto;
+}
+
+.figure {
+ display: inline-block;
+}
+
+code {
+ font-size: 87.5%;
+ color: #e83e8c;
+ word-wrap: break-word;
+}
+a > code {
+ color: inherit;
+}
+
+kbd {
+ padding: 0.2rem 0.4rem;
+ font-size: 87.5%;
+ color: #fff;
+ background-color: #212529;
+ border-radius: 0.2rem;
+}
+kbd kbd {
+ padding: 0;
+ font-size: 100%;
+ font-weight: 600;
+}
+
+pre {
+ display: block;
+ font-size: 87.5%;
+}
+pre code {
+ font-size: inherit;
+ color: inherit;
+ word-break: normal;
+}
+
+.container {
+ width: 100%;
+ padding-right: 15px;
+ padding-left: 15px;
+ margin-right: auto;
+ margin-left: auto;
+}
+@media (min-width: 576px) {
+ .container {
+ max-width: 540px;
+ }
+}
+@media (min-width: 768px) {
+ .container {
+ max-width: 720px;
+ }
+}
+@media (min-width: 992px) {
+ .container {
+ max-width: 960px;
+ }
+}
+@media (min-width: 1200px) {
+ .container {
+ max-width: 1140px;
+ }
+}
+
+.container-fluid {
+ width: 100%;
+ padding-right: 15px;
+ padding-left: 15px;
+ margin-right: auto;
+ margin-left: auto;
+}
+
+@media (min-width: 576px) {
+ .container {
+ max-width: 540px;
+ }
+}
+@media (min-width: 768px) {
+ .container {
+ max-width: 720px;
+ }
+}
+@media (min-width: 992px) {
+ .container {
+ max-width: 960px;
+ }
+}
+@media (min-width: 1200px) {
+ .container {
+ max-width: 1140px;
+ }
+}
+.row {
+ display: flex;
+ flex-wrap: wrap;
+ margin-right: -15px;
+ margin-left: -15px;
+}
+
+.no-gutters {
+ margin-right: 0;
+ margin-left: 0;
+}
+.no-gutters > .col,
+.no-gutters > [class*=col-] {
+ padding-right: 0;
+ padding-left: 0;
+}
+
+ .col-xl-3, .col-lg-10, .col-lg-8, .col-lg-4, .col-md-8, .col-md-7, .col-md-6, .col-md-5, .col-sm-6, .col, .col-12, .col-10 {
+ position: relative;
+ width: 100%;
+ padding-right: 15px;
+ padding-left: 15px;
+}
+
+.col {
+ flex-basis: 0;
+ flex-grow: 1;
+ max-width: 100%;
+}
+
+.row-cols-1 > * {
+ flex: 0 0 100%;
+ max-width: 100%;
+}
+
+.col-10 {
+ flex: 0 0 83.3333333333%;
+ max-width: 83.3333333333%;
+}
+
+.col-12 {
+ flex: 0 0 100%;
+ max-width: 100%;
+}
+
+@media (min-width: 576px) {
+
+ .col-sm-6 {
+ flex: 0 0 50%;
+ max-width: 50%;
+ }
+}
+@media (min-width: 768px) {
+
+ .row-cols-md-3 > * {
+ flex: 0 0 33.3333333333%;
+ max-width: 33.3333333333%;
+ }
+
+ .col-md-5 {
+ flex: 0 0 41.6666666667%;
+ max-width: 41.6666666667%;
+ }
+
+ .col-md-6 {
+ flex: 0 0 50%;
+ max-width: 50%;
+ }
+
+ .col-md-7 {
+ flex: 0 0 58.3333333333%;
+ max-width: 58.3333333333%;
+ }
+
+ .col-md-8 {
+ flex: 0 0 66.6666666667%;
+ max-width: 66.6666666667%;
+ }
+}
+@media (min-width: 992px) {
+
+ .col-lg-4 {
+ flex: 0 0 33.3333333333%;
+ max-width: 33.3333333333%;
+ }
+
+ .col-lg-8 {
+ flex: 0 0 66.6666666667%;
+ max-width: 66.6666666667%;
+ }
+
+ .col-lg-10 {
+ flex: 0 0 83.3333333333%;
+ max-width: 83.3333333333%;
+ }
+}
+@media (min-width: 1200px) {
+
+ .col-xl-3 {
+ flex: 0 0 25%;
+ max-width: 25%;
+ }
+}
+.table {
+ width: 100%;
+ margin-bottom: 1rem;
+ color: #212529;
+}
+.table th,
+.table td {
+ padding: 0.75rem;
+ vertical-align: top;
+ border-top: 1px solid var(--gray-400);
+}
+.table thead th {
+ vertical-align: bottom;
+ border-bottom: 2px solid var(--gray-400);
+}
+.table tbody + tbody {
+ border-top: 2px solid var(--gray-400);
+}
+
+.table-striped tbody tr:nth-of-type(odd) {
+ background-color: rgba(0, 0, 0, 0.05);
+}
+
+.table-hover tbody tr:hover {
+ color: #212529;
+ background-color: rgba(0, 0, 0, 0.075);
+}
+
+.table .thead-dark th {
+ color: #fff;
+ background-color: #343a40;
+ border-color: #454d55;
+}
+
+.form-control {
+ display: block;
+ width: 100%;
+ height: calc(1.5em + 0.75rem + 2px);
+ padding: 0.375rem 0.75rem;
+ font-size: 1rem;
+ font-weight: 400;
+ line-height: 1.5;
+ color: #495057;
+ background-color: #fff;
+ background-clip: padding-box;
+ border: 1px solid var(--gray-400);
+ border-radius: 0.35rem;
+ transition: border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;
+}
+@media (prefers-reduced-motion: reduce) {
+ .form-control {
+ transition: none;
+ }
+}
+.form-control::-ms-expand {
+ background-color: transparent;
+ border: 0;
+}
+.form-control:-moz-focusring {
+ color: transparent;
+ text-shadow: 0 0 0 #495057;
+}
+.form-control:focus {
+ color: #495057;
+ background-color: #fff;
+ border-color: #80bdff;
+ outline: 0;
+ box-shadow: 0 0 0 0.2rem rgba(0, 123, 255, 0.25);
+}
+.form-control::placeholder {
+ color: #6c757d;
+ opacity: 1;
+}
+.form-control:disabled, .form-control[readonly] {
+ background-color: #e9ecef;
+ opacity: 1;
+}
+
+select.form-control:focus::-ms-value {
+ color: #495057;
+ background-color: #fff;
+}
+
+.form-control-sm {
+ height: calc(1.5em + 0.5rem + 2px);
+ padding: 0.25rem 0.5rem;
+ font-size: 0.875rem;
+ line-height: 1.5;
+ border-radius: 0.2rem;
+}
+
+select.form-control[size], select.form-control[multiple] {
+ height: auto;
+}
+
+textarea.form-control {
+ height: auto;
+}
+
+.form-group {
+ margin-bottom: 1rem;
+}
+
+.form-text {
+ display: block;
+ margin-top: 0.25rem;
+}
+
+.form-inline {
+ display: flex;
+ flex-flow: row wrap;
+ align-items: center;
+}
+@media (min-width: 576px) {
+ .form-inline label {
+ display: flex;
+ align-items: center;
+ justify-content: center;
+ margin-bottom: 0;
+ }
+ .form-inline .form-group {
+ display: flex;
+ flex: 0 0 auto;
+ flex-flow: row wrap;
+ align-items: center;
+ margin-bottom: 0;
+ }
+ .form-inline .form-control {
+ display: inline-block;
+ width: auto;
+ vertical-align: middle;
+ }
+ .form-inline .input-group {
+ width: auto;
+ }
+ .form-inline .custom-control {
+ align-items: center;
+ justify-content: center;
+ }
+ .form-inline .custom-control-label {
+ margin-bottom: 0;
+ }
+}
+
+.btn {
+ display: inline-block;
+ font-weight: 400;
+ text-align: center;
+ color: var(--primary);
+ vertical-align: middle;
+ cursor: pointer;
+ user-select: none;
+ background-color: transparent;
+ border: 1px solid transparent;
+ padding: 0.375rem 0.75rem;
+ font-size: 1rem;
+ line-height: 1.5;
+ border-radius: 0.35rem;
+ transition: color 0.15s ease-in-out, background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;
+}
+@media (prefers-reduced-motion: reduce) {
+ .btn {
+ transition: none;
+ }
+}
+.btn:hover {
+ color: #212529;
+ text-decoration: none;
+}
+.btn:focus, .btn.focus {
+ outline: 0;
+ box-shadow: 0 0 0 0.2rem rgba(0, 123, 255, 0.25);
+}
+.btn.disabled, .btn:disabled {
+ opacity: 0.65;
+}
+a.btn.disabled,
+fieldset:disabled a.btn {
+ pointer-events: none;
+}
+
+.btn-primary {
+ color: #fff;
+ background-color: var(--primary);
+ border-color: var(--primary);
+}
+.btn-primary:hover {
+ color: #fff;
+ background-color: var(--primary);
+ border-color: #0062cc;
+}
+.btn-primary:focus, .btn-primary.focus {
+ color: #fff;
+ background-color: var(--primary);
+ border-color: #0062cc;
+ box-shadow: 0 0 0 0.2rem rgba(38, 143, 255, 0.5);
+}
+.btn-primary.disabled, .btn-primary:disabled {
+ color: #fff;
+ background-color: var(--primary);
+ border-color: var(--primary);
+}
+.btn-primary:not(:disabled):not(.disabled):active, .btn-primary:not(:disabled):not(.disabled).active, .show > .btn-primary.dropdown-toggle {
+ color: #fff;
+ background-color: #0062cc;
+ border-color: #005cbf;
+}
+.btn-primary:not(:disabled):not(.disabled):active:focus, .btn-primary:not(:disabled):not(.disabled).active:focus, .show > .btn-primary.dropdown-toggle:focus {
+ box-shadow: 0 0 0 0.2rem rgba(38, 143, 255, 0.5);
+}
+
+.btn-secondary {
+ color: #fff;
+ background-color: #6c757d;
+ border-color: #6c757d;
+}
+.btn-secondary:hover {
+ color: #fff;
+ background-color: #5a6268;
+ border-color: #545b62;
+}
+.btn-secondary:focus, .btn-secondary.focus {
+ color: #fff;
+ background-color: #5a6268;
+ border-color: #545b62;
+ box-shadow: 0 0 0 0.2rem rgba(130, 138, 145, 0.5);
+}
+.btn-secondary.disabled, .btn-secondary:disabled {
+ color: #fff;
+ background-color: #6c757d;
+ border-color: #6c757d;
+}
+.btn-secondary:not(:disabled):not(.disabled):active, .btn-secondary:not(:disabled):not(.disabled).active, .show > .btn-secondary.dropdown-toggle {
+ color: #fff;
+ background-color: #545b62;
+ border-color: #4e555b;
+}
+.btn-secondary:not(:disabled):not(.disabled):active:focus, .btn-secondary:not(:disabled):not(.disabled).active:focus, .show > .btn-secondary.dropdown-toggle:focus {
+ box-shadow: 0 0 0 0.2rem rgba(130, 138, 145, 0.5);
+}
+
+.btn-success {
+ color: #fff;
+ background-color: #38A169;
+ border-color: #38A169;
+}
+.btn-success:hover {
+ color: #fff;
+ background-color: #218838;
+ border-color: #1e7e34;
+}
+.btn-success:focus, .btn-success.focus {
+ color: #fff;
+ background-color: #218838;
+ border-color: #1e7e34;
+ box-shadow: 0 0 0 0.2rem rgba(72, 180, 97, 0.5);
+}
+.btn-success.disabled, .btn-success:disabled {
+ color: #fff;
+ background-color: #38A169;
+ border-color: #38A169;
+}
+.btn-success:not(:disabled):not(.disabled):active, .btn-success:not(:disabled):not(.disabled).active, .show > .btn-success.dropdown-toggle {
+ color: #fff;
+ background-color: #1e7e34;
+ border-color: #1c7430;
+}
+.btn-success:not(:disabled):not(.disabled):active:focus, .btn-success:not(:disabled):not(.disabled).active:focus, .show > .btn-success.dropdown-toggle:focus {
+ box-shadow: 0 0 0 0.2rem rgba(72, 180, 97, 0.5);
+}
+
+.btn-danger {
+ color: #fff;
+ background-color: #dc3545;
+ border-color: #dc3545;
+}
+
+.btn-danger:hover {
+ color: #fff;
+ background-color: #c82333;
+ border-color: #bd2130;
+}
+.btn-danger:focus, .btn-danger.focus {
+ color: #fff;
+ background-color: #c82333;
+ border-color: #bd2130;
+ box-shadow: 0 0 0 0.2rem rgba(225, 83, 97, 0.5);
+}
+.btn-danger.disabled, .btn-danger:disabled {
+ color: #fff;
+ background-color: #dc3545;
+ border-color: #dc3545;
+}
+.btn-danger:not(:disabled):not(.disabled):active, .btn-danger:not(:disabled):not(.disabled).active, .show > .btn-danger.dropdown-toggle {
+ color: #fff;
+ background-color: #bd2130;
+ border-color: #b21f2d;
+}
+.btn-danger:not(:disabled):not(.disabled):active:focus, .btn-danger:not(:disabled):not(.disabled).active:focus, .show > .btn-danger.dropdown-toggle:focus {
+ box-shadow: 0 0 0 0.2rem rgba(225, 83, 97, 0.5);
+}
+
+.btn-link {
+ font-weight: 400;
+ color: var(--primary);
+ text-decoration: none;
+}
+.btn-link:hover {
+ color: var(--primary);
+ text-decoration: underline;
+}
+.btn-link:focus, .btn-link.focus {
+ text-decoration: underline;
+ box-shadow: none;
+}
+.btn-link:disabled, .btn-link.disabled {
+ color: #6c757d;
+ pointer-events: none;
+}
+
+.btn-lg {
+ padding: 0.5rem 1rem;
+ font-size: 1.25rem;
+ line-height: 1.5;
+ border-radius: 0.3rem;
+}
+
+.btn-block {
+ display: block;
+ width: 100%;
+}
+.btn-block + .btn-block {
+ margin-top: 0.5rem;
+}
+
input[type=submit].btn-block,
input[type=reset].btn-block,
input[type=button].btn-block {
@@ -367,8 +923,8 @@ input[type=button].btn-block {
}
@media (prefers-reduced-motion: reduce) {
.fade {
- transition: none;
- }
+ transition: none;
+ }
}
.fade:not(.show) {
opacity: 0;
@@ -386,8 +942,8 @@ input[type=button].btn-block {
}
@media (prefers-reduced-motion: reduce) {
.collapsing {
- transition: none;
- }
+ transition: none;
+ }
}
.dropup,
@@ -429,7 +985,7 @@ input[type=button].btn-block {
background-color: #fff;
background-clip: padding-box;
border: 1px solid rgba(0, 0, 0, 0.15);
- border-radius: 4px;
+ border-radius: 0.35rem;
}
.dropdown-menu-right {
@@ -438,9 +994,9 @@ input[type=button].btn-block {
}
@media (min-width: 992px) {
.dropdown-menu-lg-left {
- right: auto;
- left: 0;
- }
+ right: auto;
+ left: 0;
+ }
}
.dropup .dropdown-menu {
top: auto;
@@ -467,7 +1023,7 @@ input[type=button].btn-block {
bottom: auto;
}
-/*.dropdown-item {
+.dropdown-item {
display: block;
width: 100%;
padding: 0.25rem 1.5rem;
@@ -493,21 +1049,12 @@ input[type=button].btn-block {
color: #6c757d;
pointer-events: none;
background-color: transparent;
-}*/
+}
.dropdown-menu.show {
display: block;
}
-.btn-toolbar {
- display: flex;
- flex-wrap: wrap;
- justify-content: flex-start;
-}
-.btn-toolbar .input-group {
- width: auto;
-}
-
.input-group {
position: relative;
display: flex;
@@ -574,7 +1121,7 @@ input[type=button].btn-block {
white-space: nowrap;
background-color: #e9ecef;
border: 1px solid var(--gray-400);
- border-radius: 4px;
+ border-radius: 0.35rem;
}
.input-group-text input[type=radio],
.input-group-text input[type=checkbox] {
@@ -663,7 +1210,7 @@ input[type=button].btn-block {
}
.custom-checkbox .custom-control-label::before {
- border-radius: 4px;
+ border-radius: 0.35rem;
}
.custom-checkbox .custom-control-input:checked ~ .custom-control-label::after {
background-image: url("data:image/svg+xml,%3csvg xmlns='https://www.w3.org/2000/svg' width='8' height='8' viewBox='0 0 8 8'%3e%3cpath fill='%23fff' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26l2.974 2.99L8 2.193z'/%3e%3c/svg%3e");
@@ -701,8 +1248,8 @@ input[type=button].btn-block {
}
@media (prefers-reduced-motion: reduce) {
.custom-switch .custom-control-label::after {
- transition: none;
- }
+ transition: none;
+ }
}
.custom-switch .custom-control-input:checked ~ .custom-control-label::after {
background-color: #fff;
@@ -717,8 +1264,8 @@ input[type=button].btn-block {
}
@media (prefers-reduced-motion: reduce) {
.custom-control-label::before {
- transition: none;
- }
+ transition: none;
+ }
}
.nav {
@@ -743,7 +1290,7 @@ input[type=button].btn-block {
}
.nav-pills .nav-link {
- border-radius: 4px;
+ border-radius: 0.35rem;
}
.nav-pills .nav-link.active,
.nav-pills .show > .nav-link {
@@ -814,7 +1361,7 @@ input[type=button].btn-block {
line-height: 1;
background-color: transparent;
border: 1px solid transparent;
- border-radius: 4px;
+ border-radius: 0.35rem;
}
.navbar-toggler:hover, .navbar-toggler:focus {
text-decoration: none;
@@ -831,71 +1378,71 @@ input[type=button].btn-block {
}
@media (max-width: 767.98px) {
.navbar-expand-md > .container,
- .navbar-expand-md > .container-fluid {
- padding-right: 0;
- padding-left: 0;
- }
+.navbar-expand-md > .container-fluid {
+ padding-right: 0;
+ padding-left: 0;
+ }
}
@media (min-width: 768px) {
.navbar-expand-md {
- flex-flow: row nowrap;
- justify-content: flex-start;
- }
- .navbar-expand-md .navbar-nav {
- flex-direction: row;
- }
- .navbar-expand-md .navbar-nav .dropdown-menu {
- position: absolute;
- }
- .navbar-expand-md .navbar-nav .nav-link {
- padding-right: 0.5rem;
- padding-left: 0.5rem;
- }
- .navbar-expand-md > .container,
- .navbar-expand-md > .container-fluid {
- flex-wrap: nowrap;
- }
- .navbar-expand-md .navbar-collapse {
- display: flex !important;
- flex-basis: auto;
- }
- .navbar-expand-md .navbar-toggler {
- display: none;
- }
+ flex-flow: row nowrap;
+ justify-content: flex-start;
+ }
+ .navbar-expand-md .navbar-nav {
+ flex-direction: row;
+ }
+ .navbar-expand-md .navbar-nav .dropdown-menu {
+ position: absolute;
+ }
+ .navbar-expand-md .navbar-nav .nav-link {
+ padding-right: 0.5rem;
+ padding-left: 0.5rem;
+ }
+ .navbar-expand-md > .container,
+.navbar-expand-md > .container-fluid {
+ flex-wrap: nowrap;
+ }
+ .navbar-expand-md .navbar-collapse {
+ display: flex !important;
+ flex-basis: auto;
+ }
+ .navbar-expand-md .navbar-toggler {
+ display: none;
+ }
}
@media (max-width: 991.98px) {
.navbar-expand-lg > .container,
- .navbar-expand-lg > .container-fluid {
- padding-right: 0;
- padding-left: 0;
- }
+.navbar-expand-lg > .container-fluid {
+ padding-right: 0;
+ padding-left: 0;
+ }
}
@media (min-width: 992px) {
.navbar-expand-lg {
- flex-flow: row nowrap;
- justify-content: flex-start;
- }
- .navbar-expand-lg .navbar-nav {
- flex-direction: row;
- }
- .navbar-expand-lg .navbar-nav .dropdown-menu {
- position: absolute;
- }
- .navbar-expand-lg .navbar-nav .nav-link {
- padding-right: 0.5rem;
- padding-left: 0.5rem;
- }
- .navbar-expand-lg > .container,
- .navbar-expand-lg > .container-fluid {
- flex-wrap: nowrap;
- }
- .navbar-expand-lg .navbar-collapse {
- display: flex !important;
- flex-basis: auto;
- }
- .navbar-expand-lg .navbar-toggler {
- display: none;
- }
+ flex-flow: row nowrap;
+ justify-content: flex-start;
+ }
+ .navbar-expand-lg .navbar-nav {
+ flex-direction: row;
+ }
+ .navbar-expand-lg .navbar-nav .dropdown-menu {
+ position: absolute;
+ }
+ .navbar-expand-lg .navbar-nav .nav-link {
+ padding-right: 0.5rem;
+ padding-left: 0.5rem;
+ }
+ .navbar-expand-lg > .container,
+.navbar-expand-lg > .container-fluid {
+ flex-wrap: nowrap;
+ }
+ .navbar-expand-lg .navbar-collapse {
+ display: flex !important;
+ flex-basis: auto;
+ }
+ .navbar-expand-lg .navbar-toggler {
+ display: none;
+ }
}
.navbar-light .navbar-brand {
@@ -959,7 +1506,7 @@ input[type=button].btn-block {
background-color: #fff;
background-clip: border-box;
border: 1px solid rgba(0, 0, 0, 0.125);
- border-radius: 4px;
+ border-radius: 0.35rem;
}
.card > hr {
margin-right: 0;
@@ -1027,22 +1574,22 @@ input[type=button].btn-block {
}
@media (min-width: 576px) {
.card-columns {
- column-count: 3;
- column-gap: 1.25rem;
- orphans: 1;
- widows: 1;
- }
- .card-columns .card {
- display: inline-block;
- width: 100%;
- }
+ column-count: 3;
+ column-gap: 1.25rem;
+ orphans: 1;
+ widows: 1;
+ }
+ .card-columns .card {
+ display: inline-block;
+ width: 100%;
+ }
}
.pagination {
display: flex;
padding-left: 0;
list-style: none;
- border-radius: 4px;
+ border-radius: 0.35rem;
}
.page-link {
@@ -1105,12 +1652,86 @@ input[type=button].btn-block {
border-bottom-right-radius: 0.2rem;
}
+.badge {
+ display: inline-block;
+ padding: 0.25em 0.4em;
+ font-size: 75%;
+ font-weight: 600;
+ line-height: 1;
+ text-align: center;
+ white-space: nowrap;
+ vertical-align: baseline;
+ border-radius: 0.35rem;
+ transition: color 0.15s ease-in-out, background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;
+}
+@media (prefers-reduced-motion: reduce) {
+ .badge {
+ transition: none;
+ }
+}
+a.badge:hover, a.badge:focus {
+ text-decoration: none;
+}
+
+.badge:empty {
+ display: none;
+}
+
+.btn .badge {
+ position: relative;
+ top: -1px;
+}
+
+.badge-secondary {
+ color: #fff;
+ background-color: #6c757d;
+}
+a.badge-secondary:hover, a.badge-secondary:focus {
+ color: #fff;
+ background-color: var(--primary);
+}
+a.badge-secondary:focus, a.badge-secondary.focus {
+ outline: 0;
+ box-shadow: 0 0 0 0.2rem rgba(108, 117, 125, 0.5);
+}
+
+.badge-danger {
+ color: #fff;
+ background-color: #dc3545;
+}
+a.badge-danger:hover, a.badge-danger:focus {
+ color: #fff;
+ background-color: #bd2130;
+}
+a.badge-danger:focus, a.badge-danger.focus {
+ outline: 0;
+ box-shadow: 0 0 0 0.2rem rgba(220, 53, 69, 0.5);
+}
+
+.jumbotron {
+ padding: 2rem 1rem;
+ margin-bottom: 2rem;
+ background-color: #e9ecef;
+ border-radius: 0.3rem;
+}
+@media (min-width: 576px) {
+ .jumbotron {
+ padding: 4rem 2rem;
+ }
+}
+
+.jumbotron-fluid {
+ padding-right: 0;
+ padding-left: 0;
+ border-radius: 0;
+}
+
.alert {
position: relative;
padding: 0.75rem 1.25rem;
margin-bottom: 1rem;
border: 1px solid transparent;
- border-radius: 4px;
+ border-radius: 0.35rem;
}
.alert-link {
@@ -1166,11 +1787,11 @@ input[type=button].btn-block {
@keyframes progress-bar-stripes {
from {
- background-position: 1rem 0;
- }
- to {
- background-position: 0 0;
- }
+ background-position: 1rem 0;
+ }
+ to {
+ background-position: 0 0;
+ }
}
.media {
@@ -1254,11 +1875,11 @@ a.close.disabled {
max-width: 350px;
overflow: hidden;
font-size: 0.875rem;
- /*background-color: rgba(255, 255, 255, 0.85);*/
+ background-color: rgba(255, 255, 255, 0.85);
background-clip: padding-box;
- /*border: 1px solid rgba(0, 0, 0, 0.1);*/
+ border: 1px solid rgba(0, 0, 0, 0.1);
box-shadow: 0 0.25rem 0.75rem rgba(0, 0, 0, 0.1);
- /*backdrop-filter: blur(10px);*/
+ backdrop-filter: blur(10px);
opacity: 0;
border-radius: 0.25rem;
}
@@ -1312,8 +1933,8 @@ a.close.disabled {
}
@media (prefers-reduced-motion: reduce) {
.modal.fade .modal-dialog {
- transition: none;
- }
+ transition: none;
+ }
}
.modal.show .modal-dialog {
transform: none;
@@ -1430,41 +2051,41 @@ a.close.disabled {
@media (min-width: 576px) {
.modal-dialog {
- max-width: 500px;
- margin: 1.75rem auto;
- }
+ max-width: 500px;
+ margin: 1.75rem auto;
+ }
- .modal-dialog-scrollable {
- max-height: calc(100% - 3.5rem);
- }
- .modal-dialog-scrollable .modal-content {
- max-height: calc(100vh - 3.5rem);
- }
+ .modal-dialog-scrollable {
+ max-height: calc(100% - 3.5rem);
+ }
+ .modal-dialog-scrollable .modal-content {
+ max-height: calc(100vh - 3.5rem);
+ }
- .modal-dialog-centered {
- min-height: calc(100% - 3.5rem);
- }
- .modal-dialog-centered::before {
- height: calc(100vh - 3.5rem);
- }
+ .modal-dialog-centered {
+ min-height: calc(100% - 3.5rem);
+ }
+ .modal-dialog-centered::before {
+ height: calc(100vh - 3.5rem);
+ }
}
@media (min-width: 992px) {
-
- .modal-xl {
- max-width: 800px;
- }
+
+.modal-xl {
+ max-width: 800px;
+ }
}
@media (min-width: 1200px) {
.modal-xl {
- max-width: 1140px;
- }
+ max-width: 1140px;
+ }
}
.tooltip {
position: absolute;
z-index: 1070;
display: block;
margin: 0;
- font-family: 'Helvetica Neue', -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol";
+ font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol";
font-style: normal;
font-weight: 400;
line-height: 1.5;
@@ -1504,7 +2125,7 @@ a.close.disabled {
color: #fff;
text-align: center;
background-color: #000;
- border-radius: 4px;
+ border-radius: 0.35rem;
}
.popover {
@@ -1514,7 +2135,7 @@ a.close.disabled {
z-index: 1060;
display: block;
max-width: 276px;
- font-family: 'Helvetica Neue', -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol";
+ font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol";
font-style: normal;
font-weight: 400;
line-height: 1.5;
@@ -1587,8 +2208,8 @@ a.close.disabled {
}
@media (prefers-reduced-motion: reduce) {
.carousel-item {
- transition: none;
- }
+ transition: none;
+ }
}
.carousel-item.active,
@@ -1636,8 +2257,8 @@ a.close.disabled {
}
@media (prefers-reduced-motion: reduce) {
.carousel-indicators li {
- transition: none;
- }
+ transition: none;
+ }
}
.carousel-indicators .active {
opacity: 1;
@@ -1645,19 +2266,314 @@ a.close.disabled {
@keyframes spinner-border {
to {
- transform: rotate(360deg);
- }
+ transform: rotate(360deg);
+ }
}
@keyframes spinner-grow {
0% {
- transform: scale(0);
- }
- 50% {
- opacity: 1;
- }
+ transform: scale(0);
+ }
+ 50% {
+ opacity: 1;
+ }
}
+.align-top {
+ vertical-align: top !important;
+}
+
+.align-middle {
+ vertical-align: middle !important;
+}
+
+.bg-primary {
+ background-color: var(--primary) !important;
+}
+
+a.bg-primary:hover, a.bg-primary:focus,
+button.bg-primary:hover,
+button.bg-primary:focus {
+ background-color: #0062cc !important;
+}
+
+.bg-success {
+ background-color: #38A169 !important;
+}
+
+a.bg-success:hover, a.bg-success:focus,
+button.bg-success:hover,
+button.bg-success:focus {
+ background-color: #1e7e34 !important;
+}
+
+.bg-danger {
+ background-color: #dc3545 !important;
+}
+
+a.bg-danger:hover, a.bg-danger:focus,
+button.bg-danger:hover,
+button.bg-danger:focus {
+ background-color: #bd2130 !important;
+}
+
+.bg-light {
+ background-color: #f8f9fa !important;
+}
+
+a.bg-light:hover, a.bg-light:focus,
+button.bg-light:hover,
+button.bg-light:focus {
+ background-color: #dae0e5 !important;
+}
+
+.bg-transparent {
+ background-color: transparent !important;
+}
+
+.border {
+ border: 1px solid var(--gray-400) !important;
+}
+
+.border-top {
+ border-top: 1px solid var(--gray-400) !important;
+}
+
+.border-bottom {
+ border-bottom: 1px solid var(--gray-400) !important;
+}
+
+.border-left {
+ border-left: 1px solid var(--gray-400) !important;
+}
+
+.border-0 {
+ border: 0 !important;
+}
+
+.border-bottom-0 {
+ border-bottom: 0 !important;
+}
+
+.border-warning {
+ border-color: #ffc107 !important;
+}
+
+.border-white {
+ border-color: #fff !important;
+}
+
+.rounded {
+ border-radius: 0.35rem !important;
+}
+
+.rounded-lg {
+ border-radius: 0.3rem !important;
+}
+
+.rounded-circle {
+ border-radius: 50% !important;
+}
+
+.d-none {
+ display: none !important;
+}
+
+.d-inline-block {
+ display: inline-block !important;
+}
+
+.d-flex {
+ display: flex !important;
+}
+
+.d-inline-flex {
+ display: inline-flex !important;
+}
+
+@media (min-width: 576px) {
+ .d-sm-none {
+ display: none !important;
+ }
+
+ .d-sm-flex {
+ display: flex !important;
+ }
+}
+@media (min-width: 768px) {
+ .d-md-none {
+ display: none !important;
+ }
+
+ .d-md-inline-block {
+ display: inline-block !important;
+ }
+
+ .d-md-block {
+ display: block !important;
+ }
+
+ .d-md-flex {
+ display: flex !important;
+ }
+}
+@media (min-width: 992px) {
+ .d-lg-none {
+ display: none !important;
+ }
+
+ .d-lg-flex {
+ display: flex !important;
+ }
+}
+.embed-responsive {
+ position: relative;
+ display: block;
+ width: 100%;
+ padding: 0;
+ overflow: hidden;
+}
+.embed-responsive::before {
+ display: block;
+ content: "";
+}
+
+.embed-responsive iframe,
+.embed-responsive embed,
+.embed-responsive object,
+.embed-responsive video {
+ position: absolute;
+ top: 0;
+ bottom: 0;
+ left: 0;
+ width: 100%;
+ height: 100%;
+ border: 0;
+}
+
+.embed-responsive-16by9::before {
+ padding-top: 56.25%;
+}
+
+.flex-row {
+ flex-direction: row !important;
+}
+
+.flex-column {
+ flex-direction: column !important;
+}
+
+.flex-row-reverse {
+ flex-direction: row-reverse !important;
+}
+
+.flex-wrap {
+ flex-wrap: wrap !important;
+}
+
+.flex-nowrap {
+ flex-wrap: nowrap !important;
+}
+
+.flex-grow-1 {
+ flex-grow: 1 !important;
+}
+
+.flex-shrink-0 {
+ flex-shrink: 0 !important;
+}
+
+.justify-content-end {
+ justify-content: flex-end !important;
+}
+
+.justify-content-center {
+ justify-content: center !important;
+}
+
+.justify-content-between {
+ justify-content: space-between !important;
+}
+
+.justify-content-around {
+ justify-content: space-around !important;
+}
+
+.align-items-end {
+ align-items: flex-end !important;
+}
+
+.align-items-center {
+ align-items: center !important;
+}
+@media (min-width: 768px) {
+ .flex-md-row {
+ flex-direction: row !important;
+ }
+
+ .justify-content-md-between {
+ justify-content: space-between !important;
+ }
+}
+
+.float-right {
+ float: right !important;
+}
+.overflow-auto {
+ overflow: auto !important;
+}
+
+.position-relative {
+ position: relative !important;
+}
+
+.position-absolute {
+ position: absolute !important;
+}
+
+.fixed-top {
+ position: fixed;
+ top: 0;
+ right: 0;
+ left: 0;
+ z-index: 1030;
+}
+
+.fixed-bottom {
+ position: fixed;
+ right: 0;
+ bottom: 0;
+ left: 0;
+ z-index: 1030;
+}
+
+@supports (position: sticky) {
+ .sticky-top {
+ position: sticky;
+ top: 0;
+ z-index: 1020;
+ }
+}
+
+.shadow-sm {
+ box-shadow: 0 0.1px 3px 0 rgba(0, 0, 0, 0.05), 0 0.1px 2px 0 rgba(0, 0, 0, 0.03) !important;
+}
+
+.shadow {
+ box-shadow: 0 0.1px 3px rgba(190, 113, 113, 0.05), 0 0 0 0.1px rgba(0, 0, 0, 0.05) !important;
+}
+
+.shadow-none {
+ box-shadow: none !important;
+}
+
+.w-100 {
+ width: 100% !important;
+}
+
+.h-100 {
+ height: 100% !important;
+}
.stretched-link::after {
position: absolute;
@@ -1671,7 +2587,7 @@ a.close.disabled {
background-color: rgba(0, 0, 0, 0);
}
-/*.m-0 {
+.m-0 {
margin: 0 !important;
}
@@ -1690,7 +2606,7 @@ a.close.disabled {
margin-bottom: 0 !important;
}
-
+.ml-0,
.mx-0 {
margin-left: 0 !important;
}
@@ -1744,7 +2660,8 @@ a.close.disabled {
margin-top: 1rem !important;
}
-.mr-3 {
+.mr-3,
+.mx-3 {
margin-right: 1rem !important;
}
@@ -1753,7 +2670,8 @@ a.close.disabled {
margin-bottom: 1rem !important;
}
-.ml-3 {
+.ml-3,
+.mx-3 {
margin-left: 1rem !important;
}
@@ -1761,7 +2679,8 @@ a.close.disabled {
margin: 1.5rem !important;
}
-.mt-4 {
+.mt-4,
+.my-4 {
margin-top: 1.5rem !important;
}
@@ -1770,11 +2689,12 @@ a.close.disabled {
margin-right: 1.5rem !important;
}
-.mb-4 {
+.mb-4,
+.my-4 {
margin-bottom: 1.5rem !important;
}
-
+.ml-4,
.mx-4 {
margin-left: 1.5rem !important;
}
@@ -1789,16 +2709,17 @@ a.close.disabled {
margin-bottom: 3rem !important;
}
-.mb-6 {
+.mb-6,
+.my-6 {
margin-bottom: 3.5rem !important;
}
-
+.mt-8,
.my-8 {
margin-top: 10rem !important;
}
-
+.mb-8,
.my-8 {
margin-bottom: 10rem !important;
}
@@ -1832,6 +2753,7 @@ a.close.disabled {
padding-right: 0.25rem !important;
}
+.py-1,
.pb-1 {
padding-bottom: 0.25rem !important;
}
@@ -1855,7 +2777,7 @@ a.close.disabled {
padding-right: 0.5rem !important;
}
-
+.pb-2,
.py-2 {
padding-bottom: 0.5rem !important;
}
@@ -1898,7 +2820,7 @@ a.close.disabled {
padding-top: 1.5rem !important;
}
-
+.pb-4,
.py-4 {
padding-bottom: 1.5rem !important;
}
@@ -1907,22 +2829,22 @@ a.close.disabled {
padding: 3rem !important;
}
-
+.pt-5,
.py-5 {
padding-top: 3rem !important;
}
-
+.pb-5,
.py-5 {
padding-bottom: 3rem !important;
}
-
+.pt-7,
.py-7 {
padding-top: 5rem !important;
}
-
+.pb-7,
.py-7 {
padding-bottom: 5rem !important;
}
@@ -1937,9 +2859,9 @@ a.close.disabled {
.m-auto {
margin: auto !important;
-}*/
+}
-/*.mt-auto,
+.mt-auto,
.my-auto {
margin-top: auto !important;
}
@@ -1957,86 +2879,318 @@ a.close.disabled {
.ml-auto,
.mx-auto {
margin-left: auto !important;
-}*/
+}
+@media (min-width: 576px) {
+
+ .mb-sm-5 {
+ margin-bottom: 3rem !important;
+ }
+}
+@media (min-width: 768px) {
+ .m-md-0 {
+ margin: 0 !important;
+ }
+
+ .mb-md-0 {
+ margin-bottom: 0 !important;
+ }
+
+ .mb-md-1 {
+ margin-bottom: 0.25rem !important;
+ }
+
+ .mr-md-2 {
+ margin-right: 0.5rem !important;
+ }
+
+ .mb-md-2 {
+ margin-bottom: 0.5rem !important;
+ }
+
+ .mt-md-3,
+.my-md-3 {
+ margin-top: 1rem !important;
+ }
+
+ .mb-md-3,
+.my-md-3 {
+ margin-bottom: 1rem !important;
+ }
+
+ .mb-md-5 {
+ margin-bottom: 3rem !important;
+ }
+
+ .p-md-0 {
+ padding: 0 !important;
+ }
+
+
+.py-md-0 {
+ padding-top: 0 !important;
+ }
+
+
+.py-md-0 {
+ padding-bottom: 0 !important;
+ }
+
+ .pl-md-0 {
+ padding-left: 0 !important;
+ }
+
+ .pb-md-1 {
+ padding-bottom: 0.25rem !important;
+ }
+
+ .pl-md-3 {
+ padding-left: 1rem !important;
+ }
+
+ .p-md-4 {
+ padding: 1.5rem !important;
+ }
+
+
+.py-md-8 {
+ padding-top: 10rem !important;
+ }
+
+
+.py-md-8 {
+ padding-bottom: 10rem !important;
+ }
+
+
+.my-md-auto {
+ margin-top: auto !important;
+ }
+
+
+.my-md-auto {
+ margin-bottom: auto !important;
+ }
+}
+@media (min-width: 992px) {
+
+
+.mx-lg-5 {
+ margin-right: 3rem !important;
+ }
+
+
+.mx-lg-5 {
+ margin-left: 3rem !important;
+ }
+
+
+.mx-lg-auto {
+ margin-right: auto !important;
+ }
+
+
+.mx-lg-auto {
+ margin-left: auto !important;
+ }
+}
+
+.text-truncate {
+ overflow: hidden;
+ text-overflow: ellipsis;
+ white-space: nowrap;
+}
+
+.text-left {
+ text-align: left !important;
+}
+
+.text-right {
+ text-align: right !important;
+}
+
+.text-center {
+ text-align: center !important;
+}
+@media (min-width: 768px) {
+ .text-md-left {
+ text-align: left !important;
+ }
+
+ .text-md-center {
+ text-align: center !important;
+ }
+}
+.text-lowercase {
+ text-transform: lowercase !important;
+}
+
+.text-uppercase {
+ text-transform: uppercase !important;
+}
+
+.text-capitalize {
+ text-transform: capitalize !important;
+}
+
+.font-weight-normal {
+ font-weight: 400 !important;
+}
+
+.font-weight-bold {
+ font-weight: 600 !important;
+}
+
+.font-weight-bolder {
+ font-weight: 700 !important;
+}
+
+.font-italic {
+ font-style: italic !important;
+}
+
+.text-white {
+ color: #fff !important;
+}
+
+.text-primary {
+ color: var(--primary) !important;
+}
+
+a.text-primary:hover, a.text-primary:focus {
+ color: #0056b3 !important;
+}
+
+.text-success {
+ color: #38A169 !important;
+}
+
+a.text-success:hover, a.text-success:focus {
+ color: #19692c !important;
+}
+
+.text-info {
+ color: #17a2b8 !important;
+}
+
+a.text-info:hover, a.text-info:focus {
+ color: #0f6674 !important;
+}
+
+.text-warning {
+ color: #ffc107 !important;
+}
+
+a.text-warning:hover, a.text-warning:focus {
+ color: #ba8b00 !important;
+}
+
+.text-danger {
+ color: #dc3545 !important;
+}
+
+a.text-danger:hover, a.text-danger:focus {
+ color: #a71d2a !important;
+}
+
+.text-muted {
+ color: #6c757d !important;
+}
+
+.text-decoration-none {
+ text-decoration: none !important;
+}
+
+.text-break {
+ word-break: break-word !important;
+ overflow-wrap: break-word !important;
+}
+
+.visible {
+ visibility: visible !important;
+}
+
+.invisible {
+ visibility: hidden !important;
+}
@media print {
*,
- *::before,
- *::after {
- box-shadow: none !important;
- }
+*::before,
+*::after {
+ box-shadow: none !important;
+ }
- a:not(.btn) {
- text-decoration: underline;
- }
+ a:not(.btn) {
+ text-decoration: underline;
+ }
- abbr[title]::after {
- content: " (" attr(title) ")";
- }
+ abbr[title]::after {
+ content: " (" attr(title) ")";
+ }
- pre {
- white-space: pre-wrap !important;
- }
+ pre {
+ white-space: pre-wrap !important;
+ }
- pre,
- blockquote {
- border: 1px solid #adb5bd;
- page-break-inside: avoid;
- }
+ pre,
+blockquote {
+ border: 1px solid #adb5bd;
+ page-break-inside: avoid;
+ }
- thead {
- display: table-header-group;
- }
+ thead {
+ display: table-header-group;
+ }
- tr,
- img {
- page-break-inside: avoid;
- }
+ tr,
+img {
+ page-break-inside: avoid;
+ }
- p,
- h2,
- h3 {
- orphans: 3;
- widows: 3;
- }
+ p,
+h2,
+h3 {
+ orphans: 3;
+ widows: 3;
+ }
- h2,
- h3 {
- page-break-after: avoid;
- }
+ h2,
+h3 {
+ page-break-after: avoid;
+ }
- @page {
- size: a3;
- }
- body {
- min-width: 992px !important;
- }
+ @page {
+ size: a3;
+ }
+ body {
+ min-width: 992px !important;
+ }
- .container {
- min-width: 992px !important;
- }
+ .container {
+ min-width: 992px !important;
+ }
- .navbar {
- display: none;
- }
+ .navbar {
+ display: none;
+ }
- .badge {
- border: 1px solid #000;
- }
+ .badge {
+ border: 1px solid #000;
+ }
- .table {
- border-collapse: collapse !important;
- }
- .table td,
- .table th {
- background-color: #fff !important;
- }
+ .table {
+ border-collapse: collapse !important;
+ }
+ .table td,
+.table th {
+ background-color: #fff !important;
+ }
- .table .thead-dark th {
- color: inherit;
- border-color: var(--gray-400);
- }
+ .table .thead-dark th {
+ color: inherit;
+ border-color: var(--gray-400);
+ }
}
html {
font-size: 14px;
@@ -2044,21 +3198,21 @@ html {
@supports (font-variation-settings: normal) {
html {
- font-family: "Inter var", sans-serif;
- }
+ font-family: "Inter var", sans-serif;
+ }
}
-/*body {
+body {
color: var(--black);
padding-top: 49px;
background-color: var(--gray-700);
-webkit-font-smoothing: antialiased;
-moz-osx-font-smoothing: grayscale;
-}*/
+}
@media (min-width: 1200px) {
.container {
- max-width: 1300px;
- }
+ max-width: 1300px;
+ }
}
p {
font-size: 14px;
@@ -2112,6 +3266,40 @@ pre {
margin-top: 2rem;
}
+#thread .custom-gutters {
+ padding: 0 10px;
+}
+
+.custom-gutters {
+ padding-left: 10px;
+ padding-right: 10px;
+}
+
+.sticky {
+ position: -webkit-sticky;
+ position: sticky;
+ top: 47px;
+ height: auto;
+ overflow-y: auto;
+ z-index: 4;
+}
+
+.text-lg {
+ font-size: 1.25rem !important;
+}
+
+.text-base {
+ font-size: 1rem !important;
+}
+
+.text-small {
+ font-size: 12px !important;
+}
+
+.text-small-extra {
+ font-size: 10.1px !important;
+}
+
#page p {
font-size: 16px;
}
@@ -2172,17 +3360,17 @@ ol > li::before {
.btn.login, .btn.register {
height: calc(1.5em + 0.75rem + 2px);
- border-radius: 4px;
+ border-radius: 0.35rem;
}
.tooltip {
font-weight: 600;
}
-/*.tooltip-inner {
- background-color: var(--black);
- color: var(--white);
-}*/
+.tooltip-inner {
+ background-color: var(--white);
+ color: var(--dark);
+}
.alert {
padding: 0.5rem 1rem;
@@ -2284,12 +3472,12 @@ ol > li::before {
}
.navbar-light .navbar-nav .nav-link:hover {
- border-radius: 4px;
+ border-radius: 0.35rem;
}
.navbar-light .navbar-nav .nav-link:focus {
background-color: rgba(0, 0, 0, 0.15);
- border-radius: 4px;
+ border-radius: 0.35rem;
}
.navbar-light .navbar-nav .nav-link:active .fa, .navbar-light .navbar-nav .nav-link:active .fas, .navbar-light .navbar-nav .nav-link:active .far, .navbar-light .navbar-nav .nav-link:active .fab {
@@ -2314,12 +3502,12 @@ ol > li::before {
.navbar-dark .navbar-nav .nav-link:hover {
background-color: rgba(0, 0, 0, 0.15);
- border-radius: 4px;
+ border-radius: 0.35rem;
}
.navbar-dark .navbar-nav .show > .nav-link:focus, .navbar-dark .navbar-nav .show > .nav-link:active, .navbar-dark .navbar-nav .show > .nav-link:hover {
background-color: var(--light);
- border-radius: 4px;
+ border-radius: 0.35rem;
}
.navbar-dark .navbar-nav .nav-link .fa, .navbar-dark .navbar-nav .nav-link .fas, .navbar-dark .navbar-nav .nav-link .far, .navbar-dark .navbar-nav .nav-link .fab {
@@ -2523,13 +3711,13 @@ label.color-radio span {
color: var(--black);
}
-/*label {
+label {
text-transform: uppercase;
font-weight: 600;
font-size: 12px;
letter-spacing: 0.025rem;
color: var(--black);
-}*/
+}
#login label {
color: var(--black);
@@ -2544,20 +3732,19 @@ label.terms {
padding: 0.1rem 0;
}
-/*
.dropdown-menu {
padding: 0.5rem;
color: var(--white);
background-color: var(--gray-600);
-}*/
+}
-/*.dropdown-item {
+.dropdown-item {
padding: 0.5rem 1rem;
- border-radius: 4px;
+ border-radius: 0.35rem;
color: var(--black);
-}*/
+}
-/*.dropdown-item:hover, .dropdown-item:focus, .dropdown-item.active {
+.dropdown-item:hover, .dropdown-item:focus, .dropdown-item.active {
color: var(--black);
text-decoration: none;
background-color: var(--gray-300);
@@ -2567,7 +3754,7 @@ label.terms {
.dropdown-item:focus .fa, .dropdown-item.active .fa {
color: var(--black);
}
-*/
+
small, .small {
font-size: 12px;
}
@@ -2612,7 +3799,7 @@ th {
#thread .voting {
min-width: 10px;
- margin-right: 15px;
+ margin-right: 10px;
overflow-wrap: normal;
}
@@ -2626,7 +3813,7 @@ th {
.arrow-up::before {
cursor: pointer;
- font-size: 1rem;
+ font-size: 1.3rem;
color: var(--gray-200);
font-family: "font awesome 5 pro" !important;
font-weight: 900;
@@ -2644,7 +3831,7 @@ th {
.arrow-down::before {
cursor: pointer;
- font-size: 1rem;
+ font-size: 1.3rem;
color: var(--gray-200);
font-family: "font awesome 5 pro" !important;
font-weight: 900;
@@ -2717,7 +3904,7 @@ th {
#frontpage .pseudo-submit-form.card, #search .search-results.card {
background-color: var(--gray-600);
- border-radius: 4px;
+ border-radius: 0.35rem;
border: none;
}
@@ -2762,6 +3949,70 @@ th {
height: 28px;
}
+.profile-pic-20, .pp20 {
+ margin-right: 0.25rem !important;
+ width: 20px;
+ height: 20px;
+ border-radius: 50%;
+ text-align: center;
+ object-fit: cover;
+ background-color: var(--gray-600);
+}
+
+.profile-pic-25 {
+ width: 25px;
+ height: 25px;
+ border-radius: 50%;
+ text-align: center;
+ object-fit: cover;
+ background-color: var(--gray-600);
+}
+
+.profile-pic-35 {
+ width: 35px;
+ height: 35px;
+ border-radius: 50%;
+ text-align: center;
+ object-fit: cover;
+ background-color: var(--gray-600);
+}
+
+.profile-pic-50 {
+ width: 50px;
+ height: 50px;
+ border-radius: 50%;
+ text-align: center;
+ object-fit: cover;
+ background-color: var(--gray-600);
+}
+
+.profile-pic-65 {
+ width: 65px;
+ height: 65px;
+ border-radius: 50%;
+ text-align: center;
+ object-fit: cover;
+ background-color: var(--gray-600);
+}
+
+.profile-pic-75 {
+ width: 75px;
+ height: 75px;
+ border-radius: 50%;
+ text-align: center;
+ object-fit: cover;
+ background-color: var(--gray-600);
+}
+
+.profile-pic-100 {
+ width: 100px;
+ height: 100px;
+ border-radius: 50%;
+ text-align: center;
+ object-fit: cover;
+ background-color: var(--gray-600);
+}
+
.card-header:first-child {
border-radius: 0.35rem 0.35rem 0 0;
}
@@ -2782,6 +4033,48 @@ th {
background-color: var(--gray-700);
}
+#frontpage .posts .card:first-of-type, #userpage .posts .card:first-of-type, #search .posts .card:first-of-type {
+ border-top-left-radius: 0.35rem;
+ border-top-right-radius: 0.35rem;
+}
+
+#frontpage .posts .card, #userpage .posts .card, #search .posts .card {
+ border-width: 0.1px 0.1px 0 0.1px;
+ border-color: #303030;
+ border-style: solid;
+ border-radius: 0;
+ padding: 0.5rem;
+}
+
+#frontpage .posts .card:hover, #userpage .posts .card:hover, #search .posts .card:hover {
+ background-color: var(--gray-600);
+}
+
+.post-title {
+ font-size: 16px;
+ font-weight: 600;
+ word-break: break-word;
+ overflow: hidden;
+}
+
+.post-title a {
+ color: var(--black);
+}
+
+.post-title a:hover, .post-title a:active, .post-title a:focus {
+ text-decoration: none;
+ color: var(--primary);
+}
+
+#frontpage .post-title a {
+ color: var(--black);
+}
+
+#frontpage .post-title a:hover, #frontpage .post-title a:active, #frontpage .post-title a:focus {
+ text-decoration: none;
+ color: var(--black);
+}
+
.stretched-link a:hover {
color: #6f42c1;
}
@@ -2794,6 +4087,12 @@ th {
width: fit-content;
}
+#frontpage .posts .card .card-footer, #userpage .posts .card .card-footer, #thread .card .card-footer, #search .posts .card .card-footer {
+ border: 0;
+ background-color: transparent;
+ padding: 0;
+}
+
.post-body {
word-break: break-word;
overflow: hidden;
@@ -2810,7 +4109,6 @@ th {
.modal-header {
border-bottom: none;
- background-color: var(--gray-400);
border-top-left-radius: 0.35rem;
border-top-right-radius: 0.35rem;
padding: 0.5rem 1rem;
@@ -2824,20 +4122,19 @@ th {
.modal-content {
border: none;
background-color: var(--gray-400);
- border-radius: 4px;
+ border-radius: 0.35rem;
box-shadow: 0 0.1px 3px rgba(190, 113, 113, 0.05), 0 0 0 0.1px rgba(0, 0, 0, 0.05);
}
.modal-footer {
border: none;
- background-color: var(--gray-400);
border-bottom-right-radius: 0.35rem;
border-bottom-left-radius: 0.35rem;
}
.modal .post-actions .list-group-item {
border: none;
- border-radius: 4px;
+ border-radius: 0.35rem;
background-color: var(--gray-400);
}
@@ -2903,7 +4200,7 @@ th {
}
.post-actions .list-inline .list-inline-item {
- margin-right: 1.25rem;
+ margin-right: 1rem;
}
.post-actions .list-inline .list-inline-item:last-child {
@@ -2916,31 +4213,31 @@ th {
@media (max-width: 767.98px) {
.modal.modal.modal-sm-bottom .modal-dialog {
- position: fixed;
- right: 0;
- bottom: 0;
- left: 0;
- z-index: 1030;
- }
+ position: fixed;
+ right: 0;
+ bottom: 0;
+ left: 0;
+ z-index: 1030;
+ }
- .modal.modal-sm-bottom .modal-content {
- position: absolute;
- bottom: 0;
- border-radius: 1rem;
- }
+ .modal.modal-sm-bottom .modal-content {
+ position: absolute;
+ bottom: 0;
+ border-radius: 1rem;
+ }
- .modal.fade.modal-sm-bottom .modal-dialog {
- transform: translate3d(0, 100vh, 0);
- }
+ .modal.fade.modal-sm-bottom .modal-dialog {
+ transform: translate3d(0, 100vh, 0);
+ }
- .modal.show.modal-sm-bottom .modal-dialog {
- transform: translate3d(0, 0, 0);
- }
+ .modal.show.modal-sm-bottom .modal-dialog {
+ transform: translate3d(0, 0, 0);
+ }
- .modal.modal-sm-bottom .modal-header {
- border-top-right-radius: 1rem;
- border-top-left-radius: 1rem;
- }
+ .modal.modal-sm-bottom .modal-header {
+ border-top-right-radius: 1rem;
+ border-top-left-radius: 1rem;
+ }
}
.dropdown-actions {
position: relative;
@@ -3018,13 +4315,13 @@ th {
@media (max-width: 767.98px) {
.post-actions .list-inline .list-inline-item {
- margin-right: 1.5rem;
- margin-top: 5px;
- }
+ margin-right: 1.5rem;
+ margin-top: 5px;
+ }
- .post-actions .list-inline .list-inline-item:last-child {
- margin-right: 0;
- }
+ .post-actions .list-inline .list-inline-item:last-child {
+ margin-right: 0;
+ }
}
.post-actions .list-inline .list-inline-item .dropdown-item {
font-size: 1rem;
@@ -3053,16 +4350,16 @@ th {
height: 70px;
object-fit: cover;
border: 0.1px solid var(--primary);
- border-radius: 4px;
+ border-radius: 0.35rem;
z-index: 2;
background-color: var(--gray-300);
}
@media (max-width: 767.98px) {
.post-img {
- width: 80px;
- height: 60px;
- }
+ width: 80px;
+ height: 60px;
+ }
}
.post-actions .comments, .post-actions .share, .post-actions .flag {
margin-right: 0.5rem;
@@ -3083,12 +4380,12 @@ th {
color: var(--muted);
}
-/*.comment {
+.comment {
display: flex;
position: relative;
margin-top: 2rem;
padding-left: 12px;
-}*/
+}
#notifications .comment, #userpage .comment {
margin-top: 0.5rem;
@@ -3125,12 +4422,12 @@ th {
.modal .comment-actions .list-group-item {
border: none;
- border-radius: 4px;
+ border-radius: 0.35rem;
background-color: var(--gray-400);
}
.modal .comment-actions .list-group-item:focus, .modal .comment-actions .list-group-item:hover {
- background-color: var(--gray-300);
+ background-color: var(--gray-300) !important;
}
.modal .comment-actions a {
@@ -3185,7 +4482,7 @@ th {
}
.comment-actions .list-inline .list-inline-item {
- margin-right: 1.25rem;
+ margin-right: 0.5rem;
}
.comment-actions .list-inline .list-inline-item .dropdown-item {
@@ -3238,7 +4535,7 @@ ul.comment-section {
align-items: center;
bottom: 0;
left: 0;
- padding: 0.5rem 0;
+ padding: 0.5rem 0 0 0;
width: 100%;
z-index: 1;
}
@@ -3271,12 +4568,12 @@ ul.comment-section {
color: var(--primary);
}
-/*.comment.collapsed .comment-body p.text, .comment.collapsed div.comment-text, .comment.collapsed .comment-actions, .comment.collapsed .comment-write,
+ .comment.collapsed .comment-body p.text, .comment.collapsed div.comment-text, .comment.collapsed .comment-actions, .comment.collapsed .comment-write,
.comment.collapsed .comment {
display: none;
-}*/
+}
-/*.comment.collapsed .user-info {
+.comment.collapsed .user-info {
margin-bottom: 0;
}
@@ -3290,7 +4587,7 @@ ul.comment-section {
.comment.collapsed .comment-body:hover {
opacity: 1;
-}*/
+}
#login {
padding-top: 0;
@@ -3339,7 +4636,7 @@ ul.comment-section {
.settings .settings-section {
margin-bottom: 3rem;
border: 0.1px solid var(--gray-400);
- border-radius: 4px;
+ border-radius: 0.35rem;
overflow: hidden;
}
@@ -3357,7 +4654,7 @@ ul.comment-section {
.modal .profile-actions .list-group-item {
border: none;
- border-radius: 4px;
+ border-radius: 0.35rem;
}
.modal .profile-actions .list-group-item:focus, .modal .profile-actions .list-group-item:hover {
@@ -3448,11 +4745,75 @@ ul.comment-section {
}
@keyframes ghost {
0% {
- transform: translateY(0);
- }
- 100% {
- transform: translateY(-20px);
- }
+ transform: translateY(0);
+ }
+ 100% {
+ transform: translateY(-20px);
+ }
+}
+.border-top {
+ border-top: 1px solid var(--gray-400) !important;
+}
+
+.border-bottom {
+ border-bottom: 1px solid var(--gray-400) !important;
+}
+
+.border-left {
+ border-left: 1px solid var(--gray-400) !important;
+}
+
+.border-bottom-0 {
+ border-bottom: 0 !important;
+}
+
+.border {
+ border: 1px solid var(--gray-400) !important;
+}
+
+.border-0 {
+ border: none !important;
+}
+
+.rounded {
+ border-radius: 0.35rem;
+}
+
+.rounded-circle {
+ border-radius: 50%;
+}
+@media (min-width: 768px) {
+
+ .border-md {
+ border: 1px solid var(--gray-400) !important;
+ }
+
+ .border-md-0 {
+ border: none !important;
+ }
+
+ .rounded-md {
+ border-radius: 0.35rem;
+ }
+}
+@media (min-width: 992px) {
+
+ .rounded-lg {
+ border-radius: 0.35rem;
+ }
+}
+@media (min-width: 992px) {
+ .w-lg-25 {
+ width: 25% !important;
+ }
+
+ .w-lg-75 {
+ width: 75% !important;
+ }
+
+ .w-lg-100 {
+ width: 100% !important;
+ }
}
.submission .body {
@@ -3467,8 +4828,8 @@ ul.comment-section {
}
.custom-control-label {
- text-transform: none;
- font-weight: 400;
+ text-transform: uppercase;
+ font-weight: 600;
font-size: 1rem;
letter-spacing: 0;
color: var(--black);
@@ -3529,8 +4890,8 @@ ul.comment-section {
@media (prefers-reduced-motion: reduce) {
.custom-switch .custom-control-label::after {
- transition: none;
- }
+ transition: none;
+ }
}
.custom-switch .custom-control-input:checked ~ .custom-control-label::after {
background-color: var(--white);
@@ -3574,7 +4935,7 @@ pre .com, code .com {
}
.gif-categories img {
- border-radius: 4px;
+ border-radius: 0.35rem;
height: 110px;
width: 100%;
object-fit: cover;
@@ -3605,348 +4966,333 @@ pre .com, code .com {
.gif-categories .card:hover .gif-cat-overlay {
background-color: rgba(0, 0, 0, 0.6);
border: 3px solid var(--primary);
- border-radius: 4px;
+ border-radius: 0.35rem;
}
-/*@media (max-width: 991.98px) {
+@media (max-width: 991.98px) {
#frontpage, #search {
- padding-top: 49px;
- }
+ padding-top: 49px;
+ }
}
@media (max-width: 767.98px) {
html {
- font-size: 14px;
- }*/
+ font-size: 14px;
+ }
-/* .container {
- overflow: hidden;
- max-width: none;
- }
-*/
-/* body, #settings, #notifications, #submit {
- padding-top: 49px;
- background-color: var(--gray-700);
- }*/
-/*
- #thread, #userpage {
- background-color: var(--gray-600);
- }*/
+ .container {
+ overflow: hidden;
+ max-width: none;
+ }
-/* .custom-gutters {
- padding-left: 0;
- padding-right: 0;
- }*/
+ body, #settings, #notifications, #submit {
+ padding-top: 49px;
+ background-color: var(--gray-700);
+ }
- .navbar.bg-primary {
- background-color: var(--dark) !important;
- }
+ #thread, #userpage {
+ background-color: var(--gray-600);
+ }
- .navbar-nav {
- height: 100vh;
- }
+ .custom-gutters {
+ padding-left: 0;
+ padding-right: 0;
+ }
- .navbar-nav .nav-link, .navbar-expand-md .navbar-nav .nav-link {
- padding: 0.5rem;
- }
+ .navbar.bg-primary {
+ background-color: var(--dark) !important;
+ }
- .navbar-dark .navbar-nav .nav-link:hover {
- background-color: transparent;
- border-radius: 0;
- }
+ .navbar-nav {
+ height: 100vh;
+ }
- .navbar-dark .navbar-nav .nav-link:active {
- background-color: rgba(0, 0, 0, 0.15);
- border-radius: 0;
- }
+ .navbar-nav .nav-link, .navbar-expand-md .navbar-nav .nav-link {
+ padding: 0.5rem;
+ }
- .navbar-dark .navbar-nav .nav-link .fa, .navbar-dark .navbar-nav .nav-link .fas, .navbar-dark .navbar-nav .nav-link .far, .navbar-dark .navbar-nav .nav-link .fab {
- font-size: 1rem;
- }
+ .navbar-dark .navbar-nav .nav-link:hover {
+ background-color: transparent;
+ border-radius: 0;
+ }
- .navbar-light .navbar-nav .nav-link .fa, .navbar-light .navbar-nav .nav-link .fas, .navbar-light .navbar-nav .nav-link .far, .navbar-light .navbar-nav .nav-link .fab {
- color: var(--primary);
- font-size: 1.25rem;
- }
+ .navbar-dark .navbar-nav .nav-link:active {
+ background-color: rgba(0, 0, 0, 0.15);
+ border-radius: 0;
+ }
- #fixed-bar-mobile {
- box-shadow: none;
- }
+ .navbar-dark .navbar-nav .nav-link .fa, .navbar-dark .navbar-nav .nav-link .fas, .navbar-dark .navbar-nav .nav-link .far, .navbar-dark .navbar-nav .nav-link .fab {
+ font-size: 1rem;
+ }
- .mobile-nav-icon {
- padding: 0.25rem 0.75rem;
- }
+ .navbar-light .navbar-nav .nav-link .fa, .navbar-light .navbar-nav .nav-link .fas, .navbar-light .navbar-nav .nav-link .far, .navbar-light .navbar-nav .nav-link .fab {
+ color: var(--primary);
+ font-size: 1.25rem;
+ }
- /*#thread, #submit, #error-401, #error-403, #error-404, #error-405, #error-429, #error-451, #error-500 {
- background-color: var(--light);
- }*/
+ #fixed-bar-mobile {
+ box-shadow: none;
+ }
- /*#frontpage {
- padding-top: 49px;
- }*/
+ .mobile-nav-icon {
+ padding: 0.25rem 0.75rem;
+ }
- #search .search-results.card {
- border-bottom: 0.1px solid var(--gray-400);
- border-width: 0 0 0.1px 0;
- border-radius: 0;
- }
+ #thread, #submit {
+ background-color: var(--light);
+ }
- #frontpage .posts .card, #userpage .posts .card, #search .posts .card {
- padding: 7px;
- border-width: 0 0 0.1px 0;
- }
+ #frontpage {
+ padding-top: 49px;
+ }
- #frontpage .posts .card:first-of-type, #userpage .posts .card:first-of-type, #search .posts .card:first-of-type {
- border-radius: 0;
- }
+ #search .search-results.card {
+ border-bottom: 0.1px solid var(--gray-400);
+ border-width: 0 0 0.1px 0;
+ border-radius: 0;
+ }
- #frontpage .posts .card, #userpage .posts .card, #search .posts .card, #userpage .posts .card {
- background-color: var(--gray-600);
- }
+ #frontpage .posts .card, #userpage .posts .card, #search .posts .card {
+ padding: 7px;
+ border-width: 0 0 0.1px 0;
+ }
- #frontpage .posts .card:hover .post-title a, #search .posts .card:hover .post-title a {
- color: var(--primary);
- }
+ #frontpage .posts .card:first-of-type, #userpage .posts .card:first-of-type, #search .posts .card:first-of-type {
+ border-radius: 0;
+ }
- #frontpage .posts .card .post-img, #search .posts .card .post-img {
- z-index: 3;
- }
+ #frontpage .posts .card, #userpage .posts .card, #search .posts .card, #userpage .posts .card {
+ background-color: var(--gray-600);
+ }
- .toast {
- bottom: 1.5rem;
- margin: 0 auto;
- left: 0;
- right: 0;
- }
+ #frontpage .posts .card:hover .post-title a, #search .posts .card:hover .post-title a {
+ color: var(--primary);
+ }
- #thread .card {
- background-color: var(--gray-600);
- }
+ #frontpage .posts .card .post-img, #search .posts .card .post-img {
+ z-index: 3;
+ }
- .card {
- background-color: var(--gray-600);
- }
+ .toast {
+ bottom: 1.5rem;
+ margin: 0 auto;
+ left: 0;
+ right: 0;
+ }
- .posts, #thread #main-content-col {
- box-shadow: none;
- border: none;
- border-radius: 0;
- }
+ #thread .card {
+ background-color: var(--gray-600);
+ }
- #thread #main-content-col {
- margin: 0;
- }
+ .card {
+ background-color: var(--gray-600);
+ }
- .post-title a {
- color: var(--black);
- }
+ .posts, #thread #main-content-col {
+ box-shadow: none;
+ border: none;
+ border-radius: 0;
+ }
- .post-title a:hover, .post-title a:active, .post-title a:focus {
- color: var(--primary);
- }
+ #thread #main-content-col {
+ margin: 0;
+ }
- #thread .voting {
- min-width: 0;
- margin-right: 0;
- margin-top: 0;
- }
+ .post-title a {
+ color: var(--black);
+ }
- .voting {
- font-weight: 400;
- font-size: 1.2rem;
- }
+ .post-title a:hover, .post-title a:active, .post-title a:focus {
+ color: var(--primary);
+ }
- #frontpage .voting, #search .voting, #userpage .voting {
- margin: 0;
- }
+ #thread .voting {
+ min-width: 0;
+ margin-right: 0;
+ margin-top: 0;
+ }
- .post-title {
- font-size: 14px;
- font-weight: 400;
- line-height: normal;
- overflow: hidden;
- }
+ .voting {
+ font-weight: 400;
+ font-size: 1.2rem;
+ }
- .post-meta {
- font-size: 1rem;
- }
+ #frontpage .voting, #search .voting, #userpage .voting {
+ margin: 0;
+ }
- .post-actions {
- font-weight: 400;
- }
+ .post-title {
+ font-size: 14px;
+ font-weight: 400;
+ line-height: normal;
+ overflow: hidden;
+ }
- .post-actions a {
- font-size: 1rem;
- color: var(--gray-200);
- }
+ .post-meta {
+ font-size: 1rem;
+ }
- .post-actions .fa, .post-actions .fas, .post-actions .far {
- font-size: 1rem;
- opacity: 0.8;
- }
+ .post-actions {
+ font-weight: 400;
+ }
- .post-actions .voting .fa, .post-actions .voting .fas, .post-actions .voting .far {
- font-size: 1.25rem;
- }
+ .post-actions a {
+ font-size: 1rem;
+ color: var(--gray-200);
+ }
- .comment-actions .score {
- color: var(--gray-200);
- }
+ .post-actions .fa, .post-actions .fas, .post-actions .far {
+ font-size: 1rem;
+ }
- .score {
- color: var(--gray-200);
- }
+ .post-actions .voting .fa, .post-actions .voting .fas, .post-actions .voting .far {
+ font-size: 1.25rem;
+ }
- .arrow-up::before, .arrow-down::before, .arrow-up:hover::before, .arrow-down:hover::before {
- font-size: 1.25rem;
- color: var(--gray-200);
- opacity: 1;
- }
+ .comment-actions .score {
+ color: var(--gray-200);
+ }
- .active.arrow-up::before, .active.arrow-up:hover::before {
- color: var(--primary);
- }
+ .score {
+ color: var(--gray-200);
+ }
- .active.arrow-down::before, .active.arrow-down:hover::before {
- color: #38B2AC;
- }
+ .arrow-up::before, .arrow-down::before, .arrow-up:hover::before, .arrow-down:hover::before {
+ font-size: 1.5rem;
+ color: var(--gray-200);
+ opacity: 1;
+ }
- .dropdown-actions a {
- font-size: 1rem;
- }
+ .active.arrow-up::before, .active.arrow-up:hover::before {
+ color: var(--primary);
+ }
- .dropdown-actions .fa, .dropdown-actions .fas, .dropdown-actions .far {
- font-size: 1rem;
- }
+ .active.arrow-down::before, .active.arrow-down:hover::before {
+ color: #38B2AC;
+ }
-/* .comment-section {
- background-color: var(--gray-600);
- }
+ .dropdown-actions a {
+ font-size: 1rem;
+ }
- .comment-section > .comment {
- padding-left: 12px;
- }*/
+ .dropdown-actions .fa, .dropdown-actions .fas, .dropdown-actions .far {
+ font-size: 1rem;
+ }
-/* .comment {
- margin-top: 1.5rem;
- }
-*/
-/* .comment .comment-collapse {
- padding-right: 10px;
- }
+ .comment-section {
+ background-color: var(--gray-600);
+ }
- .comment.collapsed .user-info {
- padding-top: 0.5rem;
- }*/
+ .comment-section > .comment {
+ padding-left: 12px;
+ }
- .comment .comment-collapse::before {
- content: "\f056";
- position: static;
- font-size: 10px;
- font-weight: 900;
- border: none;
- margin-left: 0.25rem;
- }
+ .comment {
+ margin-top: 1.5rem;
+ }
-/* .comment.collapsed .comment-body:hover {
- opacity: 0.5;
- }*/
+ .comment.collapsed .user-info {
+ padding-top: 0.5rem;
+ }
- .comment-actions .fa, .comment-actions .fas, .comment-actions .far {
- color: var(--gray-100);
- }
+ .comment.collapsed .comment-body:hover {
+ opacity: 0.5;
+ }
- .banner-pic-135 {
- max-width: 100%;
- }
+ .comment-actions .fa, .comment-actions .fas, .comment-actions .far {
+ color: var(--gray-100);
+ }
- .x-scroll-parent {
- overflow: hidden;
- }
+ .banner-pic-135 {
+ max-width: 100%;
+ }
- .x-scroll {
- width: 100%;
- overflow-x: scroll;
- white-space: nowrap;
- scrollbar-width: none;
- -ms-overflow-style: none;
- }
+ .x-scroll-parent {
+ overflow: hidden;
+ }
- .x-scroll::-webkit-scrollbar {
- width: 100%;
- overflow-x: scroll;
- white-space: nowrap;
- background: transparent;
- }
-/*
- #thread .post-title {
- font-size: 16px;
- }*/
+ .x-scroll {
+ width: 100%;
+ overflow-x: scroll;
+ white-space: nowrap;
+ scrollbar-width: none;
+ -ms-overflow-style: none;
+ }
- #submit .submission {
- border: none;
- }
+ .x-scroll::-webkit-scrollbar {
+ width: 100%;
+ overflow-x: scroll;
+ white-space: nowrap;
+ background: transparent;
+ }
- #submit .submission .body {
- padding: 0;
- }
+ #thread .post-title {
+ font-size: 16px;
+ }
- #submit .submission .footer {
- background: transparent;
- padding: 1rem 0;
- }
+ #submit .submission {
+ border: none;
+ }
- .footer .list-inline-item {
- line-height: 3;
- }
+ #submit .submission .body {
+ padding: 0;
+ }
- .comments-count .total {
- font-weight: 400;
- font-size: 1rem;
- }
+ #submit .submission .footer {
+ background: transparent;
+ padding: 1rem 0;
+ }
- .comment-actions {
- font-weight: 400;
- font-size: 1.2rem;
- }
+ .footer .list-inline-item {
+ line-height: 3;
+ }
- .user-name {
- font-weight: 400;
- }
+ .comments-count .total {
+ font-weight: 400;
+ font-size: 1rem;
+ }
- .comment .comment-body .user-name {
- color: var(--black);
- font-weight: 600;
- }
+ .comment-actions {
+ font-weight: 400;
+ font-size: 1.2rem;
+ }
- .pagination {
- padding: 1rem;
- }
-
-/*
- input[type=color],
- input[type=date],
- input[type=email],
- input[type=month],
- input[type=number],
- input[type=password],
- input[type=search],
- input[type=tel],
- input[type=text],
- input[type=time],
- input[type=url],
- input[type=week],
- select:focus,
- textarea {
- font-size: 16px !important;
- }*/
+ .user-name {
+ font-weight: 400;
+ }
- /*textarea, input[type=text] {
- -webkit-appearance: none;
- -moz-appearance: none;
- appearance: none;
- }*/
+ .comment .comment-body .user-name {
+ color: var(--black);
+ font-weight: 600;
+ }
+
+ .pagination {
+ padding: 1rem;
+ }
+
+ input[type=color],
+input[type=date],
+input[type=email],
+input[type=month],
+input[type=number],
+input[type=password],
+input[type=search],
+input[type=tel],
+input[type=text],
+input[type=time],
+input[type=url],
+input[type=week],
+select:focus,
+textarea {
+ font-size: 16px !important;
+ }
+
+ textarea, input[type=text] {
+ -webkit-appearance: none;
+ -moz-appearance: none;
+ appearance: none;
+ }
}
-/*.bg-white {
+.bg-white {
background-color: var(--gray-600) !important;
}
@@ -3960,7 +5306,7 @@ pre .com, code .com {
.text-gray-400, .text-gray-500 {
color: var(--gray-200) !important;
-}*/
+}
span.red {
color: var(--primary);
@@ -3976,7 +5322,7 @@ div.banned {
}
div.deleted {
- background-color: #969600 !important;
+ background-color: #4a4a15 !important;
}
div.deleted.banned {
@@ -3998,22 +5344,22 @@ img.emoji {
}
.spoiler {
- color: #000000;
- background-color: #000000;
+ color: var(--white);
+ background-color: var(--white);
font-weight: 600 !important;
padding: 5px;
}
.spoiler:hover {
- color: #FFFFFF;
+ color: var(--gray);
}
-/*@media (min-width: 768px) {
+@media (min-width: 768px) {
.comment {
- border-left: 0 !important;
- padding-left: 0 !important;
- }
-}*/
+ border-left: 0 !important;
+ padding-left: 0 !important;
+ }
+}
.comment .comment-collapse-desktop {
padding-right: 20px;
cursor: pointer;
@@ -4029,9 +5375,9 @@ img.emoji {
@media (max-width: 767.98px) {
.settings-nav .nav-link {
- font-size: 0.9rem;
- padding: 0.75rem 0.6rem;
- }
+ font-size: 1rem;
+ padding: 0.75rem 0.6rem;
+ }
}
.table {
color: var(--white);
@@ -4041,9 +5387,9 @@ img.emoji {
border: 2px solid #e9ecef;
}
-/*.btn {
+.btn {
background: transparent;
-}*/
+}
.form-control {
background: transparent;
@@ -4079,12 +5425,12 @@ img.emoji {
@media (max-width: 767.98px) {
.followbutton {
- margin-bottom: 10px !important;
- }
+ margin-bottom: 10px !important;
+ }
- .comment-actions {
- margin-top: -8px;
- }
+ .comment-actions {
+ margin-top: -8px;
+ }
}
.btn-primary:focus, .btn-primary.focus {
box-shadow: none !important;
@@ -4102,77 +5448,77 @@ img.emoji {
color: var(--primary) !important;
}
-/** { REMOVED FOR HALLOWEEN EVENT
+* {
-webkit-animation: None !important;
animation: None !important;
- }*/
+}
- .patron {
- padding: 2px 5px 3px 5px !important;
- border-radius: 5px !important;
- color: white !important;
- }
+.patron {
+ padding: 2px 5px 3px 5px !important;
+ border-radius: 5px !important;
+ color: white !important;
+}
- /*.container, .container-fluid {
- background-color: var(--gray-700) !important;
- border-radius: 5px !important;
- }*/
+.container, .container-fluid {
+ background-color: var(--gray-700) !important;
+ border-radius: 5px !important;
+}
- /*.btn {
- background-color: var(--gray-700) !important;
- }
-*/
- .nobackground {
- background: None !important;
- }
+.btn {
+ background-color: var(--gray-700) !important;
+}
- /*textarea {
- resize: both !important;
- }*/
+.nobackground {
+ background: None !important;
+}
+textarea {
+ resize: both !important;
+}
+
+.jumbotron-guild {
+ position: relative;
+ background-repeat: no-repeat;
+ background-size: cover;
+ background-position: center;
+ border-radius: 0;
+ overflow: hidden;
+ margin-bottom: 0;
+ padding: 0;
+ display: flex;
+ align-items: center;
+ z-index: 1;
+}
+
+.jumbotron-guild .jumbotron-overlay {
+ background-color: rgba(0, 0, 0, 0.7);
+ position: absolute;
+ width: 100%;
+ height: 100%;
+ bottom: 0;
+ left: 0;
+ z-index: -1;
+ pointer-events: none;
+}
+
+@media (max-width: 767.98px) {
.jumbotron-guild {
- position: relative;
- background-repeat: no-repeat;
- background-size: cover;
- background-position: center;
- border-radius: 0;
- overflow: hidden;
- margin-bottom: 0;
- padding: 0;
- display: flex;
- align-items: center;
- z-index: 1;
+ height: 110px;
}
-
- .jumbotron-guild .jumbotron-overlay {
- background-color: rgba(0, 0, 0, 0.7);
- position: absolute;
- width: 100%;
- height: 100%;
- bottom: 0;
- left: 0;
- z-index: -1;
- pointer-events: none;
- }
-
- @media (max-width: 767.98px) {
- .jumbotron-guild {
- height: 110px;
- }
- }
- @media (min-width: 767.98px) {
+}
+@media (min-width: 767.98px) {
.card-columns {
- column-count: 4 !important;
- }
+ column-count: 4 !important;
+ }
}
@media (min-width: 992px) {
.card-columns {
- column-count: 5 !important;
- }
+ column-count: 5 !important;
+ }
}
-/*.container, .container-fluid {
+.container, .container-fluid {
padding-bottom: 30px;
-}*/
+}
.navbar {
padding: 0.5rem 0.5rem 0.3rem 0.5rem;
@@ -4180,8 +5526,8 @@ img.emoji {
@media (min-width: 767.98px) {
.navbar {
- padding: 0.5rem 3rem 0.3rem 0.5rem;
- }
+ padding: 0.5rem 3rem 0.3rem 0.5rem;
+ }
}
blockquote {
@@ -4190,16 +5536,16 @@ blockquote {
font-size: 1rem;
font-weight: 400;
background-color: #46444a;
- padding: 0.5rem 1rem;
- margin: 0.5rem 0rem 0 0.0;
+ padding: 0 1rem;
+ margin: 0.5rem 0 0 0;
}
-blockquote + blockquote {
- margin-top: 0px;
+div > blockquote:last-child {
+ margin-bottom: 0.5rem !important;
}
-blockquote:last-child {
- margin-bottom: 10px;
+blockquote + blockquote, blockquote:last-child {
+ margin-top: 0 !important;
}
blockquote + p {
@@ -4208,6 +5554,8 @@ blockquote + p {
blockquote p {
margin-bottom: 0;
+ padding-bottom: 0.7rem;
+ padding-top: 0.7rem;
}
.unread {
@@ -4218,9 +5566,9 @@ blockquote p {
@media (min-width: 576px)
{
.modal-dialog {
- max-width: 90% !important;
- margin: 1.75rem auto !important;
- }
+ max-width: 50% !important;
+ margin: 1.75rem auto !important;
+ }
}
.in-comment-image {
@@ -4240,7 +5588,7 @@ blockquote p {
}
.embedvid {
- max-height: 300px !important;
+ max-height: 20rem !important;
max-width: 100% !important;
margin-top: 0.5rem !important;
margin-bottom: 0.5rem !important;
@@ -4269,13 +5617,48 @@ blockquote p {
color: orange !important;
}
+.text-silver {
+ color: silver !important;
+}
+
+.text-gold {
+ color: gold !important;
+}
+
+.text-lightgreen {
+ color: lightgreen !important;
+}
+
+.text-blue {
+ color: #1D9BF0 !important;
+}
+
+.text-red {
+ color: #C30F16 !important;
+}
+
.timeline-Widget {
max-height: 500px !important;
overflow-y: scroll !important;
}
-.banner {
- margin-top: -3px;
+.comment .comment-collapse-icon {
+ padding-right: 10px;
+}
+
+.comment .comment-collapse-icon::before {
+ font-family: "font awesome 5 pro" !important;
+ color: var(--primary);
+ display: inline-block;
+ cursor: pointer;
+ height: 100%;
+ width: 10px;
+ content: "\f056";
+ position: static;
+ font-size: 10px;
+ font-weight: 900;
+ border: none;
+ margin-left: 0.25rem;
}
.text-removed {
@@ -4298,459 +5681,31 @@ blockquote p {
}
}
-.offcanvas {
- position: fixed;
- bottom: 0;
- z-index: 1045;
- display: flex;
- flex-direction: column;
- max-width: 100%;
- visibility: hidden;
- background-color: #fff;
- background-clip: padding-box;
- outline: 0;
- transition: transform 0.3s ease-in-out;
-}
-@media (prefers-reduced-motion: reduce) {
- .offcanvas {
- transition: none;
- }
+.b2 {
+ border: 2px solid !important;
}
-.offcanvas-backdrop {
- position: fixed;
- top: 0;
- left: 0;
- z-index: 1040;
- width: 100vw;
- height: 100vh;
- background-color: #000;
-}
-.offcanvas-backdrop.fade {
- opacity: 0;
-}
-.offcanvas-backdrop.show {
- opacity: 0.8;
+.fl-r {
+ float: right !important;
}
-.offcanvas-header {
- display: flex;
- align-items: center;
- justify-content: space-between;
- padding: 1rem 1rem;
-}
-.offcanvas-header .btn-close {
- padding: 0.5rem 0.5rem;
- margin-top: -0.5rem;
- margin-right: -0.5rem;
- margin-bottom: -0.5rem;
-}
-
-.offcanvas-title {
- margin-bottom: 0;
- line-height: 1.5;
-}
-
-.offcanvas-body {
- flex-grow: 1;
- padding: 1rem 1rem;
- overflow-y: auto;
+.edit-title {
+ background-color: #fff !important;
+ color: #000 !important
}
.emj, .emoji, .emoji-lg {
max-width: 100% !important;
}
-.offcanvas-start {
- top: 0;
- left: 0;
- width: 400px;
- border-right: 1px solid rgba(0, 0, 0, 0.2);
- transform: translateX(-100%);
+.text-lightblue {
+ color: lightblue;
}
-.offcanvas-end {
- top: 0;
- right: 0;
- width: 400px;
- border-left: 1px solid rgba(0, 0, 0, 0.2);
- transform: translateX(100%);
+.bet ~ .custom-control-label::before {
+ border-radius: 50%;
}
-.offcanvas-top {
- top: 0;
- right: 0;
- left: 0;
- height: 30vh;
- max-height: 100%;
- border-bottom: 1px solid rgba(0, 0, 0, 0.2);
- transform: translateY(-100%);
-}
-
-.offcanvas-bottom {
- right: 0;
- left: 0;
- height: 30vh;
- max-height: 100%;
- border-top: 1px solid rgba(0, 0, 0, 0.2);
- transform: translateY(100%);
-}
-
-.offcanvas.show {
- transform: none;
-}
-
-.navbar-expand .offcanvas-header {
- display: none;
-}
-.navbar-expand .offcanvas {
- position: inherit;
- bottom: 0;
- z-index: 1000;
- flex-grow: 1;
- visibility: visible !important;
- background-color: transparent;
- border-right: 0;
- border-left: 0;
- transition: none;
- transform: none;
-}
-.navbar-expand .offcanvas-top,
-.navbar-expand .offcanvas-bottom {
- height: auto;
- border-top: 0;
- border-bottom: 0;
-}
-.navbar-expand .offcanvas-body {
- display: flex;
- flex-grow: 0;
- padding: 0;
- overflow-y: visible;
-}
-@media (min-width: 576px) {
- .navbar-expand-sm {
- flex-wrap: nowrap;
- justify-content: flex-start;
- }
- .navbar-expand-sm .navbar-nav {
- flex-direction: row;
- }
- .navbar-expand-sm .navbar-nav .dropdown-menu {
- position: absolute;
- }
- .navbar-expand-sm .navbar-nav .nav-link {
- padding-right: 0.5rem;
- padding-left: 0.5rem;
- }
- .navbar-expand-sm .navbar-nav-scroll {
- overflow: visible;
- }
- .navbar-expand-sm .navbar-collapse {
- display: flex !important;
- flex-basis: auto;
- }
- .navbar-expand-sm .navbar-toggler {
- display: none;
- }
- .navbar-expand-sm .offcanvas-header {
- display: none;
- }
- .navbar-expand-sm .offcanvas {
- position: inherit;
- bottom: 0;
- z-index: 1000;
- flex-grow: 1;
- visibility: visible !important;
- background-color: transparent;
- border-right: 0;
- border-left: 0;
- transition: none;
- transform: none;
- }
- .navbar-expand-sm .offcanvas-top,
-.navbar-expand-sm .offcanvas-bottom {
- height: auto;
- border-top: 0;
- border-bottom: 0;
- }
- .navbar-expand-sm .offcanvas-body {
- display: flex;
- flex-grow: 0;
- padding: 0;
- overflow-y: visible;
- }
-}
-@media (min-width: 768px) {
- .navbar-expand-md {
- flex-wrap: nowrap;
- justify-content: flex-start;
- }
- .navbar-expand-md .navbar-nav {
- flex-direction: row;
- }
- .navbar-expand-md .navbar-nav .dropdown-menu {
- position: absolute;
- }
- .navbar-expand-md .navbar-nav .nav-link {
- padding-right: 0.5rem;
- padding-left: 0.5rem;
- }
- .navbar-expand-md .navbar-nav-scroll {
- overflow: visible;
- }
- .navbar-expand-md .navbar-collapse {
- display: flex !important;
- flex-basis: auto;
- }
- .navbar-expand-md .navbar-toggler {
- display: none;
- }
- .navbar-expand-md .offcanvas-header {
- display: none;
- }
- .navbar-expand-md .offcanvas {
- position: inherit;
- bottom: 0;
- z-index: 1000;
- flex-grow: 1;
- visibility: visible !important;
- background-color: transparent;
- border-right: 0;
- border-left: 0;
- transition: none;
- transform: none;
- }
- .navbar-expand-md .offcanvas-top,
-.navbar-expand-md .offcanvas-bottom {
- height: auto;
- border-top: 0;
- border-bottom: 0;
- }
- .navbar-expand-md .offcanvas-body {
- display: flex;
- flex-grow: 0;
- padding: 0;
- overflow-y: visible;
- }
-}
-@media (min-width: 992px) {
- .navbar-expand-lg {
- flex-wrap: nowrap;
- justify-content: flex-start;
- }
- .navbar-expand-lg .navbar-nav {
- flex-direction: row;
- }
- .navbar-expand-lg .navbar-nav .dropdown-menu {
- position: absolute;
- }
- .navbar-expand-lg .navbar-nav .nav-link {
- padding-right: 0.5rem;
- padding-left: 0.5rem;
- }
- .navbar-expand-lg .navbar-nav-scroll {
- overflow: visible;
- }
- .navbar-expand-lg .navbar-collapse {
- display: flex !important;
- flex-basis: auto;
- }
- .navbar-expand-lg .navbar-toggler {
- display: none;
- }
- .navbar-expand-lg .offcanvas-header {
- display: none;
- }
- .navbar-expand-lg .offcanvas {
- position: inherit;
- bottom: 0;
- z-index: 1000;
- flex-grow: 1;
- visibility: visible !important;
- background-color: transparent;
- border-right: 0;
- border-left: 0;
- transition: none;
- transform: none;
- }
- .navbar-expand-lg .offcanvas-top,
-.navbar-expand-lg .offcanvas-bottom {
- height: auto;
- border-top: 0;
- border-bottom: 0;
- }
- .navbar-expand-lg .offcanvas-body {
- display: flex;
- flex-grow: 0;
- padding: 0;
- overflow-y: visible;
- }
-}
-@media (min-width: 1200px) {
- .navbar-expand-xl {
- flex-wrap: nowrap;
- justify-content: flex-start;
- }
- .navbar-expand-xl .navbar-nav {
- flex-direction: row;
- }
- .navbar-expand-xl .navbar-nav .dropdown-menu {
- position: absolute;
- }
- .navbar-expand-xl .navbar-nav .nav-link {
- padding-right: 0.5rem;
- padding-left: 0.5rem;
- }
- .navbar-expand-xl .navbar-nav-scroll {
- overflow: visible;
- }
- .navbar-expand-xl .navbar-collapse {
- display: flex !important;
- flex-basis: auto;
- }
- .navbar-expand-xl .navbar-toggler {
- display: none;
- }
- .navbar-expand-xl .offcanvas-header {
- display: none;
- }
- .navbar-expand-xl .offcanvas {
- position: inherit;
- bottom: 0;
- z-index: 1000;
- flex-grow: 1;
- visibility: visible !important;
- background-color: transparent;
- border-right: 0;
- border-left: 0;
- transition: none;
- transform: none;
- }
- .navbar-expand-xl .offcanvas-top,
-.navbar-expand-xl .offcanvas-bottom {
- height: auto;
- border-top: 0;
- border-bottom: 0;
- }
- .navbar-expand-xl .offcanvas-body {
- display: flex;
- flex-grow: 0;
- padding: 0;
- overflow-y: visible;
- }
-}
-@media (min-width: 1400px) {
- .navbar-expand-xxl {
- flex-wrap: nowrap;
- justify-content: flex-start;
- }
- .navbar-expand-xxl .navbar-nav {
- flex-direction: row;
- }
- .navbar-expand-xxl .navbar-nav .dropdown-menu {
- position: absolute;
- }
- .navbar-expand-xxl .navbar-nav .nav-link {
- padding-right: 0.5rem;
- padding-left: 0.5rem;
- }
- .navbar-expand-xxl .navbar-nav-scroll {
- overflow: visible;
- }
- .navbar-expand-xxl .navbar-collapse {
- display: flex !important;
- flex-basis: auto;
- }
- .navbar-expand-xxl .navbar-toggler {
- display: none;
- }
- .navbar-expand-xxl .offcanvas-header {
- display: none;
- }
- .navbar-expand-xxl .offcanvas {
- position: inherit;
- bottom: 0;
- z-index: 1000;
- flex-grow: 1;
- visibility: visible !important;
- background-color: transparent;
- border-right: 0;
- border-left: 0;
- transition: none;
- transform: none;
- }
- .navbar-expand-xxl .offcanvas-top,
-.navbar-expand-xxl .offcanvas-bottom {
- height: auto;
- border-top: 0;
- border-bottom: 0;
- }
- .navbar-expand-xxl .offcanvas-body {
- display: flex;
- flex-grow: 0;
- padding: 0;
- overflow-y: visible;
- }
-}
-.navbar-expand {
- flex-wrap: nowrap;
- justify-content: flex-start;
-}
-.navbar-expand .navbar-nav {
- flex-direction: row;
-}
-.navbar-expand .navbar-nav .dropdown-menu {
- position: absolute;
-}
-.navbar-expand .navbar-nav .nav-link {
- padding-right: 0.5rem;
- padding-left: 0.5rem;
-}
-.navbar-expand .navbar-nav-scroll {
- overflow: visible;
-}
-.navbar-expand .navbar-collapse {
- display: flex !important;
- flex-basis: auto;
-}
-.navbar-expand .navbar-toggler {
- display: none;
-}
-.navbar-expand .offcanvas-header {
- display: none;
-}
-.navbar-expand .offcanvas {
- position: inherit;
- bottom: 0;
- z-index: 1000;
- flex-grow: 1;
- visibility: visible !important;
- background-color: transparent;
- border-right: 0;
- border-left: 0;
- transition: none;
- transform: none;
-}
-.navbar-expand .offcanvas-top,
-.navbar-expand .offcanvas-bottom {
- height: auto;
- border-top: 0;
- border-bottom: 0;
-}
-.navbar-expand .offcanvas-body {
- display: flex;
- flex-grow: 0;
- padding: 0;
- overflow-y: visible;
-}
-
-.pp20 {
- width: 20px;
- height: 20px;
- object-fit: cover;
- display: inline;
-}
-
-.max-h-12 {
- max-height: 3rem;
-}
+.emoji-modal {
+ max-width: 90% !important
+}
\ No newline at end of file
diff --git a/files/assets/images/badges/patron-1.webp b/files/assets/images/badges/patron-1.webp
new file mode 100644
index 000000000..7705b5945
Binary files /dev/null and b/files/assets/images/badges/patron-1.webp differ
diff --git a/files/assets/images/badges/patron-2.webp b/files/assets/images/badges/patron-2.webp
new file mode 100644
index 000000000..80f499dd0
Binary files /dev/null and b/files/assets/images/badges/patron-2.webp differ
diff --git a/files/assets/images/badges/patron-3.webp b/files/assets/images/badges/patron-3.webp
new file mode 100644
index 000000000..6b07327b5
Binary files /dev/null and b/files/assets/images/badges/patron-3.webp differ
diff --git a/files/assets/images/badges/patron-4.webp b/files/assets/images/badges/patron-4.webp
new file mode 100644
index 000000000..75bea7f0b
Binary files /dev/null and b/files/assets/images/badges/patron-4.webp differ
diff --git a/files/assets/images/badges/patron-5.webp b/files/assets/images/badges/patron-5.webp
new file mode 100644
index 000000000..a9aeeec9a
Binary files /dev/null and b/files/assets/images/badges/patron-5.webp differ
diff --git a/files/assets/js/award_modal.js b/files/assets/js/award_modal.js
index 85873cc89..d0eca0a48 100644
--- a/files/assets/js/award_modal.js
+++ b/files/assets/js/award_modal.js
@@ -81,9 +81,9 @@ function awardModal(link) {
function bruh(kind) {
document.getElementById('giveaward').disabled=false;
- // document.getElementById('kind').value=kind;
- // try {document.getElementsByClassName('bg-green-400')[0].classList.toggle('bg-green-400');} catch(e) {}
- // document.getElementById(kind).classList.toggle('bg-green-400')
+ document.getElementById('kind').value=kind;
+ try {document.getElementsByClassName('picked')[0].classList.toggle('picked');} catch(e) {}
+ document.getElementById(kind).classList.toggle('picked')
if (kind == "flairlock") {
document.getElementById('notelabel').innerHTML = "New flair:";
document.getElementById('note').placeholder = "Insert new flair here...";
diff --git a/files/assets/js/comments+submission_listing.js b/files/assets/js/comments+submission_listing.js
index 6e1e211f6..c8464a3da 100644
--- a/files/assets/js/comments+submission_listing.js
+++ b/files/assets/js/comments+submission_listing.js
@@ -5,7 +5,7 @@ function timestamp(str, ti) {
function pinned_timestamp(id) {
const el = document.getElementById(id)
- const time = new Date(el.dataset.timestamp)
+ const time = new Date(parseInt(el.dataset.timestamp)*1000)
el.setAttribute("data-bs-original-title", `Pinned until ${time}`)
}
diff --git a/files/assets/js/comments.js b/files/assets/js/comments.js
index 94db69e9f..5f2f5b222 100644
--- a/files/assets/js/comments.js
+++ b/files/assets/js/comments.js
@@ -1,50 +1,38 @@
-function timestamp(str, ti) {
- date = new Date(ti*1000);
- document.getElementById(str).setAttribute("data-bs-original-title", date.toString());
-};
-
function collapse_comment(comment_id) {
- const comment = document.getElementById(`comment-${comment_id}`)
- const top = comment.getBoundingClientRect().y;
+ const comment = "comment-" + comment_id
+ const element = document.getElementById(comment)
+ const closed = element.classList.toggle("collapsed")
+ const top = element.getBoundingClientRect().y
- const toggler = document.getElementById(`comment-collapse-${comment_id}`);
-
- ['hidden', 'pointer-events-none'].map(x=> toggler.classList.toggle(x));
-
- ['items-center', 'opacity-50', 'md:hover:opacity-100', 'collapsed'].map(y=> comment.classList.toggle(y)); // apply flex alignment and opacity to comment parent wrapping div
-
- const isClosed = comment.classList.contains("collapsed");
-
- const icon = document.getElementsByClassName(`comment-toggle-icon-${comment_id}`);
- for (let i = 0; i < icon.length; i++) {
- //icon[i].innerText = isClosed ? '[+]' : '[-]'; // text fallback if we don't want to use icons
- icon[i].classList.toggle('fa-minus-circle');
- icon[i].classList.toggle('fa-plus-circle');
- }
-
- if (isClosed && top < 0) {
- comment.scrollIntoView()
+ if (closed && top < 0) {
+ element.scrollIntoView()
window.scrollBy(0, - 100)
}
};
-function loadMoreReplies(cid,id,trigger) {
- const btn = document.getElementById(trigger) // trigger button
- const el = document.getElementById(id) // target element to populate
- const form = new FormData();
- const xhr = new XMLHttpRequest();
-
- btn.classList.toggle('animate-pulse');
+function poll_vote_no_v() {
+ var myToast = new bootstrap.Toast(document.getElementById('toast-post-error'));
+ myToast.show();
+ document.getElementById('toast-post-error-text').innerText = "Only logged-in users can vote!";
+}
+function morecomments(cid) {
+ btn = document.getElementById(`btn-${cid}`);
+ btn.disabled = true;
+ btn.innerHTML = "Requesting...";
+ var form = new FormData();
+ form.append("formkey", formkey());
+ var xhr = new XMLHttpRequest();
xhr.open("post", `/morecomments/${cid}`);
xhr.withCredentials=true;
xhr.onload=function(){
if (xhr.status==200) {
- btn.style.display = "none"; // hide button
- el.innerHTML += xhr.response.replace(/data-src/g, 'src').replace(/data-cfsrc/g, 'src').replace(/style="display:none;visibility:hidden;"/g, ''); // replace desired element with response html
- initializeBootstrap()
- } else {
- btn.disabled = false; // enable our button if GET fails
+ document.getElementById(`morecomments-${cid}`).innerHTML = xhr.response.replace(/data-src/g, 'src').replace(/data-cfsrc/g, 'src').replace(/style="display:none;visibility:hidden;"/g, '');
+ var tooltipTriggerList = [].slice.call(document.querySelectorAll('[data-bs-toggle="tooltip"]'));
+ tooltipTriggerList.map(function(element){
+ return new bootstrap.Tooltip(element);
+ });
+ popovertrigger()
}
}
xhr.send(form)
diff --git a/files/assets/js/comments_admin.js b/files/assets/js/comments_admin.js
index 0d230686e..d9355429f 100644
--- a/files/assets/js/comments_admin.js
+++ b/files/assets/js/comments_admin.js
@@ -4,18 +4,18 @@ function removeComment(post_id,button1,button2) {
post(url)
try {
- document.getElementById("comment-"+post_id+"-only").classList.add("bg-red-200");
+ document.getElementById("comment-"+post_id+"-only").classList.add("banned");
} catch(e) {
- document.getElementById("context").classList.add("bg-red-200");
+ document.getElementById("context").classList.add("banned");
}
- const button=document.getElementById("remove-"+post_id);
+ var button=document.getElementById("remove-"+post_id);
button.onclick=function(){approveComment(post_id)};
button.innerHTML=' Approve'
if (typeof button1 !== 'undefined') {
- document.getElementById(button1).classList.toggle("md:block");
- document.getElementById(button2).classList.toggle("md:block");
+ document.getElementById(button1).classList.toggle("d-md-inline-block");
+ document.getElementById(button2).classList.toggle("d-md-inline-block");
}
};
@@ -25,18 +25,18 @@ function approveComment(post_id,button1,button2) {
post(url)
try {
- document.getElementById("comment-"+post_id+"-only").classList.remove("bg-red-200");
+ document.getElementById("comment-"+post_id+"-only").classList.remove("banned");
} catch(e) {
- document.getElementById("context").classList.remove("bg-red-200");
+ document.getElementById("context").classList.remove("banned");
}
- const button=document.getElementById("remove-"+post_id);
+ var button=document.getElementById("remove-"+post_id);
button.onclick=function(){removeComment(post_id)};
button.innerHTML=' Remove'
if (typeof button1 !== 'undefined') {
- document.getElementById(button1).classList.toggle("md:block");
- document.getElementById(button2).classList.toggle("md:block");
+ document.getElementById(button1).classList.toggle("d-md-inline-block");
+ document.getElementById(button2).classList.toggle("d-md-inline-block");
}
}
@@ -46,14 +46,14 @@ function removeComment2(post_id,button1,button2) {
post(url)
- document.getElementById("comment-"+post_id+"-only").classList.add("bg-red-200");
- const button=document.getElementById("remove-"+post_id);
+ document.getElementById("comment-"+post_id+"-only").classList.add("banned");
+ var button=document.getElementById("remove-"+post_id);
button.onclick=function(){approveComment(post_id)};
button.innerHTML=' Approve'
if (typeof button1 !== 'undefined') {
- document.getElementById(button1).classList.toggle("hidden");
- document.getElementById(button2).classList.toggle("hidden");
+ document.getElementById(button1).classList.toggle("d-none");
+ document.getElementById(button2).classList.toggle("d-none");
}
};
@@ -62,13 +62,13 @@ function approveComment2(post_id,button1,button2) {
post(url)
- document.getElementById("comment-"+post_id+"-only").classList.remove("bg-red-200");
- const button=document.getElementById("remove-"+post_id);
+ document.getElementById("comment-"+post_id+"-only").classList.remove("banned");
+ var button=document.getElementById("remove-"+post_id);
button.onclick=function(){removeComment(post_id)};
button.innerHTML=' Remove'
if (typeof button1 !== 'undefined') {
- document.getElementById(button1).classList.toggle("hidden");
- document.getElementById(button2).classList.toggle("hidden");
+ document.getElementById(button1).classList.toggle("d-none");
+ document.getElementById(button2).classList.toggle("d-none");
}
}
\ No newline at end of file
diff --git a/files/assets/js/comments_v.js b/files/assets/js/comments_v.js
index 5532baa32..9950f6aae 100644
--- a/files/assets/js/comments_v.js
+++ b/files/assets/js/comments_v.js
@@ -52,8 +52,8 @@ function post_toast3(url, button1, button2) {
xhr.send(form);
- document.getElementById(button1).classList.toggle("md:block");
- document.getElementById(button2).classList.toggle("md:block");
+ document.getElementById(button1).classList.toggle("d-md-inline-block");
+ document.getElementById(button2).classList.toggle("d-md-inline-block");
}
function report_commentModal(id, author) {
@@ -73,8 +73,8 @@ function report_commentModal(id, author) {
xhr.withCredentials=true;
xhr.onload=function() {
- document.getElementById("reportCommentFormBefore").classList.add('hidden');
- document.getElementById("reportCommentFormAfter").classList.remove('hidden');
+ document.getElementById("reportCommentFormBefore").classList.add('d-none');
+ document.getElementById("reportCommentFormAfter").classList.remove('d-none');
};
xhr.onerror=function(){alert(errortext)};
@@ -85,7 +85,7 @@ function report_commentModal(id, author) {
function openReplyBox(id) {
const element = document.getElementById(`reply-to-${id}`);
- element.classList.remove('hidden')
+ element.classList.remove('d-none')
element.getElementsByTagName('textarea')[0].focus()
}
@@ -96,9 +96,9 @@ function toggleEdit(id){
box=document.getElementById('comment-edit-body-'+id);
actions = document.getElementById('comment-' + id +'-actions');
- comment.classList.toggle("hidden");
- form.classList.toggle("hidden");
- actions.classList.toggle("hidden");
+ comment.classList.toggle("d-none");
+ form.classList.toggle("d-none");
+ actions.classList.toggle("d-none");
autoExpand(box);
};
diff --git a/files/assets/js/default.js b/files/assets/js/default.js
index b87db87ea..f53dfcf84 100644
--- a/files/assets/js/default.js
+++ b/files/assets/js/default.js
@@ -1,74 +1,12 @@
-function formkey() {
- return document.getElementById("formkey").innerHTML;
-}
-
-function makeBold(form) {
- var text = document.getElementById(form);
- var startIndex = text.selectionStart,
- endIndex = text.selectionEnd;
- var selectedText = text.value.substring(startIndex, endIndex);
-
- var format = '**'
-
- if (selectedText.includes('**')) {
- text.value = selectedText.replace(/\*/g, '');
- }
- else if (selectedText.length == 0) {
- text.value = text.value.substring(0, startIndex) + selectedText + text.value.substring(endIndex);
- }
- else {
- text.value = text.value.substring(0, startIndex) + format + selectedText + format + text.value.substring(endIndex);
- }
-}
-
-function makeItalics(form) {
- var text = document.getElementById(form);
- var startIndex = text.selectionStart,
- endIndex = text.selectionEnd;
- var selectedText = text.value.substring(startIndex, endIndex);
-
- var format = '*'
-
- if (selectedText.includes('*')) {
- text.value = selectedText.replace(/\*/g, '');
- }
- else if (selectedText.length == 0) {
- text.value = text.value.substring(0, startIndex) + selectedText + text.value.substring(endIndex);
- }
- else {
- text.value = text.value.substring(0, startIndex) + format + selectedText + format + text.value.substring(endIndex);
- }
-}
-
-makeQuote = function (form) {
- var text = document.getElementById(form);
- var startIndex = text.selectionStart,
- endIndex = text.selectionEnd;
- var selectedText = text.value.substring(startIndex, endIndex);
-
- var format = '>'
-
- if (selectedText.includes('>')) {
- text.value = text.value.substring(0, startIndex) + selectedText.replace(/\>/g, '') + text.value.substring(endIndex);
- }
- else if (selectedText.length == 0) {
- text.value = text.value.substring(0, startIndex) + selectedText + text.value.substring(endIndex);
- }
- else {
- text.value = text.value.substring(0, startIndex) + format + selectedText + text.value.substring(endIndex);
- }
-}
-
function autoExpand (field) {
-
- xpos=window.scrollX;
+ xpos=window.scrollX;
ypos=window.scrollY;
- field.style.height = 'inherit';
+ field.style.height = 'inherit';
- var computed = window.getComputedStyle(field);
+ var computed = window.getComputedStyle(field);
- var height = parseInt(computed.getPropertyValue('border-top-width'), 10)
+ var height = parseInt(computed.getPropertyValue('border-top-width'), 10)
+ parseInt(computed.getPropertyValue('padding-top'), 10)
+ field.scrollHeight
+ parseInt(computed.getPropertyValue('padding-bottom'), 10)
@@ -77,71 +15,10 @@ function autoExpand (field) {
field.style.height = height + 'px';
- window.scrollTo(xpos,ypos);
-
+ window.scrollTo(xpos,ypos);
};
-
document.addEventListener('input', function (event) {
if (event.target.tagName.toLowerCase() !== 'textarea') return;
autoExpand(event.target);
-}, false);
-
-function post_toast2(url, button1, button2) {
- var xhr = new XMLHttpRequest();
- xhr.open("POST", url, true);
- var form = new FormData()
- form.append("formkey", formkey());
-
- if(typeof data === 'object' && data !== null) {
- for(let k of Object.keys(data)) {
- form.append(k, data[k]);
- }
- }
-
-
- form.append("formkey", formkey());
- xhr.withCredentials=true;
-
- xhr.onload = function() {
- if (xhr.status >= 200 && xhr.status < 300) {
- try {
- document.getElementById('toast-post-success-text').innerText = JSON.parse(xhr.response)["message"];
- } catch(e) {
- document.getElementById('toast-post-success-text').innerText = "Action successful!";
- }
- var myToast = new bootstrap.Toast(document.getElementById('toast-post-success'));
- myToast.show();
- return true
-
- } else if (xhr.status >= 300 && xhr.status < 400) {
- window.location.href = JSON.parse(xhr.response)["redirect"]
- } else {
- try {
- data=JSON.parse(xhr.response);
-
- var myToast = new bootstrap.Toast(document.getElementById('toast-post-error'));
- myToast.show();
- document.getElementById('toast-post-error-text').innerText = data["error"];
- return false
- } catch(e) {
- var myToast = new bootstrap.Toast(document.getElementById('toast-post-success'));
- myToast.hide();
- var myToast = new bootstrap.Toast(document.getElementById('toast-post-error'));
- myToast.show();
- return false
- }
- }
- };
-
- xhr.send(form);
-
- document.getElementById(button1).classList.toggle("hidden");
- document.getElementById(button2).classList.toggle("hidden");
-}
-
-function expandDesktopImage(image) {
- document.getElementById("desktop-expanded-image").src = image.replace("200w_d.webp", "giphy.webp");
- document.getElementById("desktop-expanded-image-link").href = image;
- document.getElementById("desktop-expanded-image-wrap-link").href=image;
-};
\ No newline at end of file
+}, false);
\ No newline at end of file
diff --git a/files/assets/js/emoji_modal.js b/files/assets/js/emoji_modal.js
index fe703a893..c0e85cf4e 100644
--- a/files/assets/js/emoji_modal.js
+++ b/files/assets/js/emoji_modal.js
@@ -875,12 +875,12 @@ function loadEmojis(form) {
if (i == 0)
{
for (const [key, value] of Object.entries(arr)) {
- str += ` `;
+ str += ` `;
}
}
else {
for (let j = 0; j < arr.length; j++) {
- str += ` `;
+ str += ` `;
}
}
@@ -895,7 +895,7 @@ function loadEmojis(form) {
let container = document.getElementById(`EMOJIS_${EMOJIS_STRINGS[i].type}`)
for (let j = 0; j < arr.length; j++) {
if (arr[j].match(search_bar.value.toLowerCase()) || search_bar.value.toLowerCase().match(arr[j])) {
- str += ` `;
+ str += ` `;
}
}
@@ -905,7 +905,7 @@ function loadEmojis(form) {
for (const [key, value] of Object.entries(arr2)) {
if (str.includes(`'${key}'`)) continue;
if (key.match(search_bar.value.toLowerCase()) || search_bar.value.toLowerCase().match(key) || value.match(search_bar.value.toLowerCase())) {
- str += ` `;
+ str += ` `;
}
}
container.innerHTML = ""
@@ -928,7 +928,7 @@ if (favorite_emojis)
);
for (const emoji of Object.keys(sortable))
- str += ` `
+ str += ` `
document.getElementById('EMOJIS_favorite').innerHTML = str
}
diff --git a/files/assets/js/gif_modal.js b/files/assets/js/gif_modal.js
index 1c7a99cd3..421af16f7 100644
--- a/files/assets/js/gif_modal.js
+++ b/files/assets/js/gif_modal.js
@@ -31,9 +31,9 @@ async function getGif(searchTerm) {
loadGIFs.innerHTML = null;
}
else {
- backBtn.innerHTML = ' ';
+ backBtn.innerHTML = ' ';
- cancelBtn.innerHTML = ' ';
+ cancelBtn.innerHTML = ' ';
let response = await fetch("/giphy?searchTerm=" + searchTerm + "&limit=48");
let data = await response.json()
@@ -42,7 +42,7 @@ async function getGif(searchTerm) {
var gifURL = [];
if (max <= 0) {
- noGIFs.innerHTML = '
Aw shucks. No GIFs found...
';
+ noGIFs.innerHTML = '
Aw shucks. No GIFs found...
';
container.innerHTML = null;
loadGIFs.innerHTML = null;
}
@@ -50,13 +50,13 @@ async function getGif(searchTerm) {
for (var i = 0; i < 48; i++) {
gifURL[i] = "https://media.giphy.com/media/" + data[i].id + "/giphy.webp";
if (data[i].username==''){
- container.innerHTML += ('');
+ container.innerHTML += ('');
}
else {
- container.innerHTML += ('');
+ container.innerHTML += ('');
}
noGIFs.innerHTML = null;
- loadGIFs.innerHTML = '
You have reached the end of the list!
';
+ loadGIFs.innerHTML = '
Thou've reached the end of the list!
';
}
}
}
diff --git a/files/assets/js/header.js b/files/assets/js/header.js
index 921b3f261..06798de89 100644
--- a/files/assets/js/header.js
+++ b/files/assets/js/header.js
@@ -1,25 +1,12 @@
-function initializeBootstrap() {
- // tooltips
- let tooltipTriggerList = [].slice.call(document.querySelectorAll('[data-bs-toggle="tooltip"]'));
- tooltipTriggerList.map(function(element){
- return new bootstrap.Tooltip(element);
- });
- // popovers
- let popoverTriggerList = [].slice.call(document.querySelectorAll('[data-bs-toggle="popover"]'));
- let popoverList = popoverTriggerList.map(function(popoverTriggerEl) {
- let popoverId = popoverTriggerEl.getAttribute('data-content-id');
- let contentEl = document.getElementById(popoverId);
- if (contentEl) {
- return new bootstrap.Popover(popoverTriggerEl, {
- content: contentEl.innerHTML,
- html: true,
- });
- }
- })
+function formkey() {
+ return document.getElementById("formkey").innerHTML
}
-
+
document.addEventListener("DOMContentLoaded", function(){
- initializeBootstrap()
+ var tooltipTriggerList = [].slice.call(document.querySelectorAll('[data-bs-toggle="tooltip"]'));
+ tooltipTriggerList.map(function(element){
+ return new bootstrap.Tooltip(element);
+ });
});
function post_toast(url, reload, data) {
@@ -34,8 +21,6 @@ function post_toast(url, reload, data) {
}
}
-
- form.append("formkey", formkey());
xhr.withCredentials=true;
xhr.onload = function() {
diff --git a/files/assets/js/lozad.js b/files/assets/js/lozad.js
index 81235f5ce..a8cd2ee3e 100644
--- a/files/assets/js/lozad.js
+++ b/files/assets/js/lozad.js
@@ -1 +1,4 @@
-!function(t,e){"object"==typeof exports&&"undefined"!=typeof module?module.exports=e():"function"==typeof define&&define.amd?define(e):t.lozad=e()}(this,function(){"use strict";var g="undefined"!=typeof document&&document.documentMode,f={rootMargin:"0px",threshold:0,load:function(t){if("picture"===t.nodeName.toLowerCase()){var e=t.querySelector("img"),r=!1;null===e&&(e=document.createElement("img"),r=!0),g&&t.getAttribute("data-iesrc")&&(e.src=t.getAttribute("data-iesrc")),t.getAttribute("data-alt")&&(e.alt=t.getAttribute("data-alt")),r&&t.append(e)}if("video"===t.nodeName.toLowerCase()&&!t.getAttribute("data-src")&&t.children){for(var a=t.children,o=void 0,i=0;i<=a.length-1;i++)(o=a[i].getAttribute("data-src"))&&(a[i].src=o);t.load()}t.getAttribute("data-poster")&&(t.poster=t.getAttribute("data-poster")),t.getAttribute("data-src")&&(t.src=t.getAttribute("data-src")),t.getAttribute("data-srcset")&&t.setAttribute("srcset",t.getAttribute("data-srcset"));var n=",";if(t.getAttribute("data-background-delimiter")&&(n=t.getAttribute("data-background-delimiter")),t.getAttribute("data-background-image"))t.style.backgroundImage="url('"+t.getAttribute("data-background-image").split(n).join("'),url('")+"')";else if(t.getAttribute("data-background-image-set")){var d=t.getAttribute("data-background-image-set").split(n),u=d[0].substr(0,d[0].indexOf(" "))||d[0];u=-1===u.indexOf("url(")?"url("+u+")":u,1===d.length?t.style.backgroundImage=u:t.setAttribute("style",(t.getAttribute("style")||"")+"background-image: "+u+"; background-image: -webkit-image-set("+d+"); background-image: image-set("+d+")")}t.getAttribute("data-toggle-class")&&t.classList.toggle(t.getAttribute("data-toggle-class"))},loaded:function(){}};function A(t){t.setAttribute("data-loaded",!0)}var m=function(t){return"true"===t.getAttribute("data-loaded")},v=function(t){var e=1 {
- let currentScrollPos = window.pageYOffset;
- // var topBar = document.getElementById("fixed-bar-mobile");
- const bottomBar = document.getElementById("mobile-bottom-navigation-bar");
- // var dropdown = document.getElementById("mobileSortDropdown");
- // var navbar = document.getElementById("navbar");
+ var topBar = document.getElementById("fixed-bar-mobile");
+
+ var bottomBar = document.getElementById("mobile-bottom-navigation-bar");
+
+ var dropdown = document.getElementById("mobileSortDropdown");
+
+ var navbar = document.getElementById("navbar");
if (bottomBar != null) {
- if (currentScrollPos <= 60 || ((window.innerHeight + currentScrollPos) < document.body.offsetHeight)) {
- // console.log('less than 60 greater than offsetHeight');
- bottomBar.style.transform = "translateY(60px)";
+ if (prevScrollpos > currentScrollPos && (window.innerHeight + currentScrollPos) < (document.body.offsetHeight - 65)) {
+ bottomBar.style.bottom = "0px";
+ }
+ else if (currentScrollPos <= 125 && (window.innerHeight + currentScrollPos) < (document.body.offsetHeight - 65)) {
+ bottomBar.style.bottom = "0px";
}
- else if (prevScrollpos > currentScrollPos) {
- // console.log('prev greater than current');
- bottomBar.style.transform = "translateY(0px)"
+ else if (prevScrollpos > currentScrollPos && (window.innerHeight + currentScrollPos) >= (document.body.offsetHeight - 65)) {
+ bottomBar.style.bottom = "-50px";
}
else {
- // console.log('else');
- bottomBar.style.transform = "translateY(60px)";
+ bottomBar.style.bottom = "-50px";
}
}
- // if (topBar != null && dropdown != null) {
- // if (prevScrollpos > currentScrollPos) {
- // topBar.style.top = "48px";
- // navbar.classList.remove("shadow");
- // }
- // else if (currentScrollPos <= 125) {
- // topBar.style.top = "48px";
- // navbar.classList.remove("shadow");
- // }
- // else {
- // topBar.style.top = "-48px";
- // dropdown.classList.remove('show');
- // navbar.classList.add("shadow");
- // }
- // }
+ if (topBar != null && dropdown != null) {
+ if (prevScrollpos > currentScrollPos) {
+ topBar.style.top = "48px";
+ navbar.classList.remove("shadow");
+ }
+ else if (currentScrollPos <= 125) {
+ topBar.style.top = "48px";
+ navbar.classList.remove("shadow");
+ }
+ else {
+ topBar.style.top = "-48px";
+ dropdown.classList.remove('show');
+ navbar.classList.add("shadow");
+ }
+ }
prevScrollpos = currentScrollPos;
}
\ No newline at end of file
diff --git a/files/assets/js/report_post_modal.js b/files/assets/js/report_post_modal.js
index 1f19f9a85..ddf9fc353 100644
--- a/files/assets/js/report_post_modal.js
+++ b/files/assets/js/report_post_modal.js
@@ -16,8 +16,8 @@ function report_postModal(id) {
xhr.withCredentials=true;
xhr.onload=function() {
- document.getElementById("reportPostFormBefore").classList.add('hidden');
- document.getElementById("reportPostFormAfter").classList.remove('hidden');
+ document.getElementById("reportPostFormBefore").classList.add('d-none');
+ document.getElementById("reportPostFormAfter").classList.remove('d-none');
};
xhr.onerror=function(){alert(errortext)};
diff --git a/files/assets/js/signup.js b/files/assets/js/signup.js
index 146c1ae66..baad1cd68 100644
--- a/files/assets/js/signup.js
+++ b/files/assets/js/signup.js
@@ -7,11 +7,11 @@ document.addEventListener("DOMContentLoaded", function () {
var successID = document.getElementById("passwordHelpSuccess");
if (charCount.length >= 8) {
- id.classList.add("hidden");
- successID.classList.remove("hidden");
+ id.classList.add("d-none");
+ successID.classList.remove("d-none");
} else {
- id.classList.remove("hidden");
- successID.classList.add("hidden");
+ id.classList.remove("d-none");
+ successID.classList.add("d-none");
}
});
diff --git a/files/assets/js/submission.js b/files/assets/js/submission.js
index b3b31cce7..ee43eee62 100644
--- a/files/assets/js/submission.js
+++ b/files/assets/js/submission.js
@@ -1,11 +1,13 @@
-function togglePostEdit(id){
- body=document.getElementById("post-body");
- title=document.getElementById("post-title");
- form=document.getElementById("edit-post-body-"+id);
- box=document.getElementById("post-edit-box-"+id);
-
- body.classList.toggle("hidden");
- title.classList.toggle("hidden");
- form.classList.toggle("hidden");
- autoExpand(box);
-};
+function bet_vote(cid) {
+ for(let el of document.getElementsByClassName('bet')) {
+ el.disabled = true;
+ }
+ for(let el of document.getElementsByClassName('cost')) {
+ el.classList.add('d-none')
+ }
+ var scoretext = document.getElementById('bet-' + cid);
+ var score = Number(scoretext.textContent);
+ scoretext.textContent = score + 1;
+ post('/bet/' + cid);
+ document.getElementById("user-coins-amount").innerText = parseInt(document.getElementById("user-coins-amount").innerText) - 200;
+}
\ No newline at end of file
diff --git a/files/assets/js/submission_listing.js b/files/assets/js/submission_listing.js
index 46c0682c1..f64ab7c35 100644
--- a/files/assets/js/submission_listing.js
+++ b/files/assets/js/submission_listing.js
@@ -1,16 +1,5 @@
-function timestamp(str, ti) {
- date = new Date(ti*1000);
- document.getElementById(str).setAttribute("data-bs-original-title", date.toString());
-};
-
function expandText(id) {
- const el = document.getElementById('post-text-'+id);
- ['gradient-mask', 'max-h-12', 'overflow-hidden', 'pointer-events-none', 'text-gray-600'].map(v=> el.classList.toggle(v));
- ['text-black'].map(v=> el.classList.toggle(v));
-
- const trigger = document.getElementsByClassName('text-expand-icon-'+id);
- for (let i = 0; i < trigger.length; i++) {
- trigger[i].classList.toggle('fa-expand-alt');
- trigger[i].classList.toggle('fa-compress-alt');
- }
+ document.getElementById('post-text-'+id).classList.toggle('d-none');
+ document.getElementsByClassName('text-expand-icon-'+id)[0].classList.toggle('fa-expand-alt');
+ document.getElementsByClassName('text-expand-icon-'+id)[0].classList.toggle('fa-compress-alt');
};
\ No newline at end of file
diff --git a/files/assets/js/submit.js b/files/assets/js/submit.js
index bf8d09013..ef23e7b00 100644
--- a/files/assets/js/submit.js
+++ b/files/assets/js/submit.js
@@ -2,10 +2,10 @@ function hide_image() {
x=document.getElementById('image-upload-block');
url=document.getElementById('post-URL').value;
if (url.length>=1){
- x.classList.add('hidden');
+ x.classList.add('d-none');
}
else {
- x.classList.remove('hidden');
+ x.classList.remove('d-none');
}
}
@@ -82,7 +82,7 @@ document.onpaste = function(event) {
{
f.files = files;
document.getElementById('filename-show').textContent = filename;
- document.getElementById('urlblock').classList.add('hidden');
+ document.getElementById('urlblock').classList.add('d-none');
var fileReader = new FileReader();
fileReader.readAsDataURL(f.files[0]);
fileReader.addEventListener("load", function () {document.getElementById('image-preview').setAttribute('src', this.result);});
@@ -93,7 +93,7 @@ document.onpaste = function(event) {
document.getElementById('file-upload').addEventListener('change', function(){
f=document.getElementById('file-upload');
- document.getElementById('urlblock').classList.add('hidden');
+ document.getElementById('urlblock').classList.add('d-none');
document.getElementById('filename-show').textContent = document.getElementById('file-upload').files[0].name;
filename = f.files[0].name.toLowerCase()
if (filename.endsWith(".jpg") || filename.endsWith(".jpeg") || filename.endsWith(".png") || filename.endsWith(".webp") || filename.endsWith(".webp"))
diff --git a/files/assets/js/twitter.js b/files/assets/js/twitter.js
index c4e622091..ec7bea494 100644
--- a/files/assets/js/twitter.js
+++ b/files/assets/js/twitter.js
@@ -1,4 +1,4 @@
-Function&&Function.prototype&&Function.prototype.bind&&(/(MSIE ([6789]|10|11))|Trident/.test(navigator.userAgent)||(window.__twttr&&window.__twttr.widgets&&window.__twttr.widgets.loaded&&window.twttr.widgets.load&&window.twttr.widgets.load(),window.__twttr&&window.__twttr.widgets&&window.__twttr.widgets.init||function(t){function e(e){for(var n,i,o=e[0],s=e[1],a=0,c=[];a-1},forIn:i,isObject:s,isEmptyObject:a,toType:o,isType:function(t,e){return t==o(e)},toRealArray:u}},function(t,e){t.exports=window},function(t,e,n){var r=n(6);t.exports=function(){var t=this;this.promise=new r(function(e,n){t.resolve=e,t.reject=n})}},function(t,e,n){var r=n(11),i=/(?:^|(?:https?:)?\/\/(?:www\.)?twitter\.com(?::\d+)?(?:\/intent\/(?:follow|user)\/?\?screen_name=|(?:\/#!)?\/))@?([\w]+)(?:\?|&|$)/i,o=/(?:^|(?:https?:)?\/\/(?:www\.)?twitter\.com(?::\d+)?\/(?:#!\/)?[\w_]+\/status(?:es)?\/)(\d+)/i,s=/^http(s?):\/\/(\w+\.)*twitter\.com([:/]|$)/i,a=/^http(s?):\/\/(ton|pbs)\.twimg\.com/,u=/^#?([^.,<>!\s/#\-()'"]+)$/,c=/twitter\.com(?::\d{2,4})?\/intent\/(\w+)/,d=/^https?:\/\/(?:www\.)?twitter\.com\/\w+\/timelines\/(\d+)/i,l=/^https?:\/\/(?:www\.)?twitter\.com\/i\/moments\/(\d+)/i,f=/^https?:\/\/(?:www\.)?twitter\.com\/(\w+)\/(?:likes|favorites)/i,h=/^https?:\/\/(?:www\.)?twitter\.com\/(\w+)\/lists\/([\w-%]+)/i,p=/^https?:\/\/(?:www\.)?twitter\.com\/i\/live\/(\d+)/i,m=/^https?:\/\/syndication\.twitter\.com\/settings/i,v=/^https?:\/\/(localhost|platform)\.twitter\.com(?::\d+)?\/widgets\/widget_iframe\.(.+)/i,g=/^https?:\/\/(?:www\.)?twitter\.com\/search\?q=(\w+)/i;function w(t){return"string"==typeof t&&i.test(t)&&RegExp.$1.length<=20}function y(t){if(w(t))return RegExp.$1}function b(t,e){var n=r.decodeURL(t);if(e=e||!1,n.screen_name=y(t),n.screen_name)return r.url("https://twitter.com/intent/"+(e?"follow":"user"),n)}function _(t){return"string"==typeof t&&u.test(t)}function E(t){return"string"==typeof t&&o.test(t)}t.exports={isHashTag:_,hashTag:function(t,e){if(e=void 0===e||e,_(t))return(e?"#":"")+RegExp.$1},isScreenName:w,screenName:y,isStatus:E,status:function(t){return E(t)&&RegExp.$1},intentForProfileURL:b,intentForFollowURL:function(t){return b(t,!0)},isTwitterURL:function(t){return s.test(t)},isTwimgURL:function(t){return a.test(t)},isIntentURL:function(t){return c.test(t)},isSettingsURL:function(t){return m.test(t)},isWidgetIframeURL:function(t){return v.test(t)},isSearchUrl:function(t){return g.test(t)},regexen:{profile:i},momentId:function(t){return l.test(t)&&RegExp.$1},collectionId:function(t){return d.test(t)&&RegExp.$1},intentType:function(t){return c.test(t)&&RegExp.$1},likesScreenName:function(t){return f.test(t)&&RegExp.$1},listScreenNameAndSlug:function(t){var e,n,r;if(h.test(t)){e=RegExp.$1,n=RegExp.$2;try{r=decodeURIComponent(n)}catch(t){}return{ownerScreenName:e,slug:r||n}}return!1},eventId:function(t){return p.test(t)&&RegExp.$1}}},function(t,e){t.exports=document},function(t,e,n){var r=n(0),i=[!0,1,"1","on","ON","true","TRUE","yes","YES"],o=[!1,0,"0","off","OFF","false","FALSE","no","NO"];function s(t){return void 0!==t&&null!==t&&""!==t}function a(t){return c(t)&&t%1==0}function u(t){return c(t)&&!a(t)}function c(t){return s(t)&&!isNaN(t)}function d(t){return r.contains(o,t)}function l(t){return r.contains(i,t)}t.exports={hasValue:s,isInt:a,isFloat:u,isNumber:c,isString:function(t){return"string"===r.toType(t)},isArray:function(t){return s(t)&&"array"==r.toType(t)},isTruthValue:l,isFalseValue:d,asInt:function(t){if(a(t))return parseInt(t,10)},asFloat:function(t){if(u(t))return t},asNumber:function(t){if(c(t))return t},asBoolean:function(t){return!(!s(t)||!l(t)&&(d(t)||!t))}}},function(t,e,n){var r=n(1),i=n(21),o=n(49);i.hasPromiseSupport()||(r.Promise=o),t.exports=r.Promise},function(t,e,n){var r=n(0);t.exports=function(t,e){var n=Array.prototype.slice.call(arguments,2);return function(){var i=r.toRealArray(arguments);return t.apply(e,n.concat(i))}}},function(t,e,n){var r=n(51);t.exports=new r("__twttr")},function(t,e){t.exports=location},function(t,e,n){var r=n(0),i=/\b([\w-_]+)\b/g;function o(t){return new RegExp("\\b"+t+"\\b","g")}function s(t,e){t.classList?t.classList.add(e):o(e).test(t.className)||(t.className+=" "+e)}function a(t,e){t.classList?t.classList.remove(e):t.className=t.className.replace(o(e)," ")}function u(t,e){return t.classList?t.classList.contains(e):r.contains(c(t),e)}function c(t){return r.toRealArray(t.classList?t.classList:t.className.match(i))}t.exports={add:s,remove:a,replace:function(t,e,n){if(t.classList&&u(t,e))return a(t,e),void s(t,n);t.className=t.className.replace(o(e),n)},toggle:function(t,e,n){return void 0===n&&t.classList&&t.classList.toggle?t.classList.toggle(e,n):(n?s(t,e):a(t,e),n)},present:u,list:c}},function(t,e,n){var r=n(5),i=n(0);function o(t){return encodeURIComponent(t).replace(/\+/g,"%2B").replace(/'/g,"%27")}function s(t){return decodeURIComponent(t)}function a(t){var e=[];return i.forIn(t,function(t,n){var s=o(t);i.isType("array",n)||(n=[n]),n.forEach(function(t){r.hasValue(t)&&e.push(s+"="+o(t))})}),e.sort().join("&")}function u(t){var e={};return t?(t.split("&").forEach(function(t){var n=t.split("="),r=s(n[0]),o=s(n[1]);if(2==n.length){if(!i.isType("array",e[r]))return r in e?(e[r]=[e[r]],void e[r].push(o)):void(e[r]=o);e[r].push(o)}}),e):{}}t.exports={url:function(t,e){return a(e).length>0?i.contains(t,"?")?t+"&"+a(e):t+"?"+a(e):t},decodeURL:function(t){var e=t&&t.split("?");return 2==e.length?u(e[1]):{}},decode:u,encode:a,encodePart:o,decodePart:s}},function(t,e,n){var r=n(9),i=n(1),o=n(0),s={},a=o.contains(r.href,"tw_debug=true");function u(){}function c(){}function d(){return i.performance&&+i.performance.now()||+new Date}function l(t,e){if(i.console&&i.console[t])switch(e.length){case 1:i.console[t](e[0]);break;case 2:i.console[t](e[0],e[1]);break;case 3:i.console[t](e[0],e[1],e[2]);break;case 4:i.console[t](e[0],e[1],e[2],e[3]);break;case 5:i.console[t](e[0],e[1],e[2],e[3],e[4]);break;default:0!==e.length&&i.console.warn&&i.console.warn("too many params passed to logger."+t)}}t.exports={devError:u,devInfo:c,devObject:function(t,e){},publicError:function(){l("error",o.toRealArray(arguments))},publicLog:function(){l("info",o.toRealArray(arguments))},publicWarn:function(){l("warn",o.toRealArray(arguments))},time:function(t){a&&(s[t]=d())},timeEnd:function(t){a&&s[t]&&(d(),s[t])}}},function(t,e,n){var r=n(19),i=n(5),o=n(11),s=n(0),a=n(115);t.exports=function(t){var e=t.href&&t.href.split("?")[1],n=e?o.decode(e):{},u={lang:a(t),width:t.getAttribute("data-bs-width")||t.getAttribute("width"),height:t.getAttribute("data-bs-height")||t.getAttribute("height"),related:t.getAttribute("data-bs-related"),partner:t.getAttribute("data-bs-partner")};return i.asBoolean(t.getAttribute("data-bs-dnt"))&&r.setOn(),s.forIn(u,function(t,e){var r=n[t];n[t]=i.hasValue(r)?r:e}),s.compact(n)}},function(t,e,n){var r=n(77),i=n(22);t.exports=function(){var t="data-bs-twitter-extracted-"+i.generate();return function(e,n){return r(e,n).filter(function(e){return!e.hasAttribute(t)}).map(function(e){return e.setAttribute(t,"true"),e})}}},function(t,e){function n(t,e,n,r,i,o,s){this.factory=t,this.Sandbox=e,this.srcEl=o,this.targetEl=i,this.parameters=r,this.className=n,this.options=s}n.prototype.destroy=function(){this.srcEl=this.targetEl=null},t.exports=n},function(t,e){t.exports={DM_BUTTON:"twitter-dm-button",FOLLOW_BUTTON:"twitter-follow-button",HASHTAG_BUTTON:"twitter-hashtag-button",MENTION_BUTTON:"twitter-mention-button",MOMENT:"twitter-moment",PERISCOPE:"periscope-on-air",SHARE_BUTTON:"twitter-share-button",TIMELINE:"twitter-timeline",TWEET:"twitter-tweet"}},function(t,e,n){var r=n(6),i=n(19),o=n(53),s=n(36),a=n(5),u=n(0);t.exports=function(t,e,n){var c;return t=t||[],e=e||{},c="ƒ("+t.join(", ")+", target, [options]);",function(){var d,l,f,h,p=Array.prototype.slice.apply(arguments,[0,t.length]),m=Array.prototype.slice.apply(arguments,[t.length]);return m.forEach(function(t){t&&(t.nodeType!==Node.ELEMENT_NODE?u.isType("function",t)?d=t:u.isType("object",t)&&(l=t):f=t)}),p.length!==t.length||0===m.length?(d&&u.async(function(){d(!1)}),r.reject(new Error("Not enough parameters. Expected: "+c))):f?(l=u.aug({},l||{},e),t.forEach(function(t){l[t]=p.shift()}),a.asBoolean(l.dnt)&&i.setOn(),h=s.getExperiments().then(function(t){return o.addWidget(n(l,f,void 0,t))}),d&&h.then(d,function(){d(!1)}),h):(d&&u.async(function(){d(!1)}),r.reject(new Error("No target element specified. Expected: "+c)))}}},function(t,e,n){var r=n(98),i=n(2),o=n(0);function s(t,e){return function(){try{e.resolve(t.call(this))}catch(t){e.reject(t)}}}t.exports={sync:function(t,e){t.call(e)},read:function(t,e){var n=new i;return r.read(s(t,n),e),n.promise},write:function(t,e){var n=new i;return r.write(s(t,n),e),n.promise},defer:function(t,e,n){var a=new i;return o.isType("function",t)&&(n=e,e=t,t=1),r.defer(t,s(e,a),n),a.promise}}},function(t,e,n){var r=n(4),i=n(9),o=n(38),s=n(102),a=n(5),u=n(33),c=!1,d=/https?:\/\/([^/]+).*/i;t.exports={setOn:function(){c=!0},enabled:function(t,e){return!!(c||a.asBoolean(u.val("dnt"))||s.isUrlSensitive(e||i.host)||o.isFramed()&&s.isUrlSensitive(o.rootDocumentLocation())||(t=d.test(t||r.referrer)&&RegExp.$1)&&s.isUrlSensitive(t))}}},function(t,e,n){var r=n(8),i=n(59),o="https://platform.twitter.com",s=["https://syndication.twitter.com","https://cdn.syndication.twimg.com","https://localhost.twitter.com:8444"],a=["https://syndication.twitter.com","https://localhost.twitter.com:8445"],u=["https://platform.twitter.com","https://localhost.twitter.com",/^https:\/\/ton\.smf1\.twitter\.com\/syndication-internal\/embed-iframe\/[0-9A-Za-z_-]+\/app/],c=function(t,e){return t.some(function(t){return t instanceof RegExp?t.test(e):t===e})},d=function(){var t=r.get("backendHost");return t&&c(s,t)?t:"https://cdn.syndication.twimg.com"},l=function(){var t=r.get("settingsSvcHost");return t&&c(a,t)?t:"https://syndication.twitter.com"};function f(t,e){var n=[t];return e.forEach(function(t){n.push(function(t){var e=(t||"").toString(),n="/"===e.slice(0,1)?1:0,r=function(t){return"/"===t.slice(-1)}(e)?-1:void 0;return e.slice(n,r)}(t))}),n.join("/")}t.exports={cookieConsent:function(t){var e=t||[];return e.unshift("cookie/consent"),f(l(),e)},embedIframe:function(t,e){var n=t||[],s=o,a=r.get("embedIframeURL");return a&&c(u,a)?f(a,n)+".html":(n.unshift(i.getBaseURLPath(e)),f(s,n)+".html")},eventVideo:function(t){var e=t||[];return e.unshift("video/event"),f(d(),e)},grid:function(t){var e=t||[];return e.unshift("grid/collection"),f(d(),e)},moment:function(t){var e=t||[];return e.unshift("moments"),f(d(),e)},settings:function(t){var e=t||[];return e.unshift("settings"),f(l(),e)},timeline:function(t){var e=t||[];return e.unshift("timeline"),f(d(),e)},tweetBatch:function(t){var e=t||[];return e.unshift("tweets.json"),f(d(),e)},video:function(t){var e=t||[];return e.unshift("widgets/video"),f(d(),e)}}},function(t,e,n){var r=n(4),i=n(92),o=n(1),s=n(0),a=i.userAgent;function u(t){return/(Trident|MSIE|Edge[/ ]?\d)/.test(t=t||a)}t.exports={retina:function(t){return(t=t||o).devicePixelRatio?t.devicePixelRatio>=1.5:!!t.matchMedia&&t.matchMedia("only screen and (min-resolution: 144dpi)").matches},anyIE:u,ie9:function(t){return/MSIE 9/.test(t=t||a)},ie10:function(t){return/MSIE 10/.test(t=t||a)},ios:function(t){return/(iPad|iPhone|iPod)/.test(t=t||a)},android:function(t){return/^Mozilla\/5\.0 \(Linux; (U; )?Android/.test(t=t||a)},canPostMessage:function(t,e){return t=t||o,e=e||a,t.postMessage&&!(u(e)&&t.opener)},touch:function(t,e,n){return t=t||o,e=e||i,n=n||a,"ontouchstart"in t||/Opera Mini/.test(n)||e.msMaxTouchPoints>0},cssTransitions:function(){var t=r.body.style;return void 0!==t.transition||void 0!==t.webkitTransition||void 0!==t.mozTransition||void 0!==t.oTransition||void 0!==t.msTransition},hasPromiseSupport:function(){return!!(o.Promise&&o.Promise.resolve&&o.Promise.reject&&o.Promise.all&&o.Promise.race&&(new o.Promise(function(e){t=e}),s.isType("function",t)));var t},hasIntersectionObserverSupport:function(){return!!o.IntersectionObserver},hasPerformanceInformation:function(){return o.performance&&o.performance.getEntriesByType}}},function(t,e){var n="i",r=0,i=0;t.exports={generate:function(){return n+String(+new Date)+Math.floor(1e5*Math.random())+r++},deterministic:function(){return n+String(i++)}}},function(t,e,n){var r=n(50),i=n(52),o=n(0);t.exports=o.aug(r.get("events")||{},i.Emitter)},function(t,e,n){var r=n(6),i=n(2);function o(t,e){return t.then(e,e)}function s(t){return t instanceof r}t.exports={always:o,allResolved:function(t){var e;return void 0===t?r.reject(new Error("undefined is not an object")):Array.isArray(t)?(e=t.length)?new r(function(n,r){var i=0,o=[];function a(){(i+=1)===e&&(0===o.length?r():n(o))}function u(t){o.push(t),a()}t.forEach(function(t){s(t)?t.then(u,a):u(t)})}):r.resolve([]):r.reject(new Error("Type error"))},some:function(t){var e;return e=(t=t||[]).length,t=t.filter(s),e?e!==t.length?r.reject("non-Promise passed to .some"):new r(function(e,n){var r=0;function i(){(r+=1)===t.length&&n()}t.forEach(function(t){t.then(e,i)})}):r.reject("no promises passed to .some")},isPromise:s,allSettled:function(t){function e(){}return r.all((t||[]).map(function(t){return o(t,e)}))},timeout:function(t,e){var n=new i;return setTimeout(function(){n.reject(new Error("Promise timed out"))},e),t.then(function(t){n.resolve(t)},function(t){n.reject(t)}),n.promise}}},function(t,e,n){var r=n(1).JSON;t.exports={stringify:r.stringify||r.encode,parse:r.parse||r.decode}},function(t,e,n){var r=n(27),i=n(108);t.exports=r.build([i])},function(t,e,n){var r=n(39),i=n(105),o=n(7);(r=Object.create(r)).build=o(r.build,null,i),t.exports=r},function(t,e,n){var r=n(39),i=n(40),o=n(7);(r=Object.create(r)).build=o(r.build,null,i),t.exports=r},function(t,e,n){var r=n(79),i=n(80),o=n(81),s=n(9),a=n(71),u=n(82),c=n(19),d=n(5),l=n(22),f=n(0);function h(t){if(!t||!t.headers)throw new Error("unexpected response schema");return{html:t.body,config:t.config,pollInterval:1e3*parseInt(t.headers.xPolling,10)||null,maxCursorPosition:t.headers.maxPosition,minCursorPosition:t.headers.minPosition}}function p(t){if(t&&t.headers)throw new Error(t.headers.status);throw t instanceof Error?t:new Error(t)}t.exports=function(t){t.params({instanceId:{required:!0,fallback:l.deterministic},lang:{required:!0,transform:a.matchLanguage,fallback:"en"},tweetLimit:{transform:d.asInt}}),t.defineProperty("endpoint",{get:function(){throw new Error("endpoint not specified")}}),t.defineProperty("pollEndpoint",{get:function(){return this.endpoint}}),t.define("cbId",function(t){var e=t?"_new":"_old";return"tl_"+this.params.instanceId+"_"+this.id+e}),t.define("queryParams",function(){return{lang:this.params.lang,tz:u.getTimezoneOffset(),t:r(),domain:s.host,tweet_limit:this.params.tweetLimit,dnt:c.enabled()}}),t.define("fetch",function(){return i.fetch(this.endpoint,this.queryParams(),o,this.cbId()).then(h,p)}),t.define("poll",function(t,e){var n,r;return n={since_id:(t=t||{}).sinceId,max_id:t.maxId,min_position:t.minPosition,max_position:t.maxPosition},r=f.aug(this.queryParams(),n),i.fetch(this.pollEndpoint,r,o,this.cbId(e)).then(h,p)})}},function(t,e,n){var r=n(52).makeEmitter();t.exports={emitter:r,START:"start",ALL_WIDGETS_RENDER_START:"all_widgets_render_start",ALL_WIDGETS_RENDER_END:"all_widgets_render_end",ALL_WIDGETS_AND_IMAGES_LOADED:"all_widgets_and_images_loaded"}},function(t,e,n){var r=n(4),i=n(0);t.exports=function(t,e,n){var o;if(n=n||r,t=t||{},e=e||{},t.name){try{o=n.createElement('')}catch(e){(o=n.createElement("iframe")).name=t.name}delete t.name}else o=n.createElement("iframe");return t.id&&(o.id=t.id,delete t.id),o.allowtransparency="true",o.scrolling="no",o.setAttribute("frameBorder",0),o.setAttribute("allowTransparency",!0),i.forIn(t,function(t,e){o.setAttribute(t,e)}),i.forIn(e,function(t,e){o.style[t]=e}),o}},function(t,e,n){var r=n(27),i=n(122);t.exports=r.build([i])},function(t,e,n){var r,i=n(4);function o(t){var e,n,o,s=0;for(r={},e=(t=t||i).getElementsByTagName("meta");e[s];s++){if(n=e[s],/^twitter:/.test(n.getAttribute("name")))o=n.getAttribute("name").replace(/^twitter:/,"");else{if(!/^twitter:/.test(n.getAttribute("property")))continue;o=n.getAttribute("property").replace(/^twitter:/,"")}r[o]=n.getAttribute("content")||n.getAttribute("value")}}o(),t.exports={init:o,val:function(t){return r[t]}}},function(t,e,n){var r=n(0),i=n(45);t.exports={closest:function t(e,n,o){var s;if(n)return o=o||n&&n.ownerDocument,s=r.isType("function",e)?e:function(t){return function(e){return!!e.tagName&&i(e,t)}}(e),n===o?s(n)?n:void 0:s(n)?n:t(s,n.parentNode,o)}}},function(t,e,n){var r=n(10),i={},o=-1,s={};function a(t){var e=t.getAttribute("data-bs-twitter-event-id");return e||(t.setAttribute("data-bs-twitter-event-id",++o),o)}function u(t,e,n){var r=0,i=t&&t.length||0;for(r=0;r1?(e=Math.floor(t.item_ids.length/2),n=t.item_ids.slice(0,e),r={},i=t.item_ids.slice(e),o={},n.forEach(function(e){r[e]=t.item_details[e]}),i.forEach(function(e){o[e]=t.item_details[e]}),[l.aug({},t,{item_ids:n,item_details:r}),l.aug({},t,{item_ids:i,item_details:o})]):[t]},stringify:function(t){var e,n=Array.prototype.toJSON;return delete Array.prototype.toJSON,e=u.stringify(t),n&&(Array.prototype.toJSON=n),e},CLIENT_EVENT_ENDPOINT:p,RUFOUS_REDIRECT:"https://platform.twitter.com/jot.html"}},function(t,e,n){var r=n(9),i=n(75),o=n(0),s=i.getCanonicalURL()||r.href,a=s;t.exports={isFramed:function(){return s!==a},rootDocumentLocation:function(t){return t&&o.isType("string",t)&&(s=t),s},currentDocumentLocation:function(){return a}}},function(t,e,n){var r=n(103),i=n(104),o=n(0);t.exports={couple:function(){return o.toRealArray(arguments)},build:function(t,e,n){var o=new t;return(e=i(r(e||[]))).forEach(function(t){t.call(null,o)}),o.build(n)}}},function(t,e,n){var r=n(106),i=n(0),o=n(41);function s(){this.Component=this.factory(),this._adviceArgs=[],this._lastArgs=[]}i.aug(s.prototype,{factory:o,build:function(t){var e=this;return this.Component,i.aug(this.Component.prototype.boundParams,t),this._adviceArgs.concat(this._lastArgs).forEach(function(t){(function(t,e,n){var r=this[e];if(!r)throw new Error(e+" does not exist");this[e]=t(r,n)}).apply(e.Component.prototype,t)}),delete this._lastArgs,delete this._adviceArgs,this.Component},params:function(t){var e=this.Component.prototype.paramConfigs;t=t||{},this.Component.prototype.paramConfigs=i.aug({},t,e)},define:function(t,e){if(t in this.Component.prototype)throw new Error(t+" has previously been defined");this.override(t,e)},defineStatic:function(t,e){this.Component[t]=e},override:function(t,e){this.Component.prototype[t]=e},defineProperty:function(t,e){if(t in this.Component.prototype)throw new Error(t+" has previously been defined");this.overrideProperty(t,e)},overrideProperty:function(t,e){var n=i.aug({configurable:!0},e);Object.defineProperty(this.Component.prototype,t,n)},before:function(t,e){this._adviceArgs.push([r.before,t,e])},after:function(t,e){this._adviceArgs.push([r.after,t,e])},around:function(t,e){this._adviceArgs.push([r.around,t,e])},last:function(t,e){this._lastArgs.push([r.after,t,e])}}),t.exports=s},function(t,e,n){var r=n(0);function i(){return!0}function o(t){return t}t.exports=function(){function t(t){var e=this;t=t||{},this.params=Object.keys(this.paramConfigs).reduce(function(n,s){var a=[],u=e.boundParams,c=e.paramConfigs[s],d=c.validate||i,l=c.transform||o;if(s in u&&a.push(u[s]),s in t&&a.push(t[s]),a="fallback"in c?a.concat(c.fallback):a,n[s]=function(t,e,n){var i=null;return t.some(function(t){if(t=r.isType("function",t)?t():t,e(t))return i=n(t),!0}),i}(a,d,l),c.required&&null==n[s])throw new Error(s+" is a required parameter");return n},{}),this.initialize()}return r.aug(t.prototype,{paramConfigs:{},boundParams:{},initialize:function(){}}),t}},function(t,e,n){var r=n(101),i=n(76),o=new(n(110))(function(t){(!function(t){return 1===t.length&&i.canFlushOneItem(t[0])}(t)?function(t){r.init(),t.forEach(function(t){var e=t.input.namespace,n=t.input.data,i=t.input.offsite,o=t.input.version;r.clientEvent(e,n,i,o)}),r.flush().then(function(){t.forEach(function(t){t.taskDoneDeferred.resolve()})},function(){t.forEach(function(t){t.taskDoneDeferred.reject()})})}:function(t){t.forEach(function(t){var e=t.input.namespace,n=t.input.data,r=t.input.offsite,o=t.input.version;i.clientEvent(e,n,r,o),t.taskDoneDeferred.resolve()})})(t)});t.exports={scribe:function(t,e,n,r){return o.add({namespace:t,data:e,offsite:n,version:r})},pause:function(){o.pause()},resume:function(){o.resume()}}},function(t,e,n){var r,i=n(10),o=n(4),s=n(1),a=n(33),u=n(54),c=n(5),d=n(22),l="csptest";t.exports={inlineStyle:function(){var t=l+d.generate(),e=o.createElement("div"),n=o.createElement("style"),f="."+t+" { visibility: hidden; }";return!!o.body&&(c.asBoolean(a.val("widgets:csp"))&&(r=!1),void 0!==r?r:(e.style.display="none",i.add(e,t),n.type="text/css",n.appendChild(o.createTextNode(f)),o.body.appendChild(n),o.body.appendChild(e),r="hidden"===s.getComputedStyle(e).visibility,u(e),u(n),r))}}},function(t,e,n){var r=n(1);t.exports=function(t,e,n){var i,o=0;return n=n||null,function s(){var a=n||this,u=arguments,c=+new Date;if(r.clearTimeout(i),c-o>e)return o=c,void t.apply(a,u);i=r.setTimeout(function(){s.apply(a,u)},e)}}},function(t,e,n){var r=n(1).HTMLElement,i=r.prototype.matches||r.prototype.matchesSelector||r.prototype.webkitMatchesSelector||r.prototype.mozMatchesSelector||r.prototype.msMatchesSelector||r.prototype.oMatchesSelector;t.exports=function(t,e){if(i)return i.call(t,e)}},function(t){t.exports={version:"82e1070:1619632193066"}},function(t,e){t.exports=function(t){var e=t.getBoundingClientRect();return{width:e.width,height:e.height}}},function(t,e,n){var r=n(12).publicWarn;t.exports=function(){r("Warning: This Timeline type belongs to a group that will not be supported in the future (Likes, Collections, & Moments). It is not recommended for use. \n\t","* Twitter will continue to support Profile and List Timelines \n\t","* You can learn more about this change in our announcement: \n\t","https://twittercommunity.com/t/removing-support-for-embedded-like-collection-and-moment-timelines/150313 \n\t","* In order to create a new Embedded Timeline, visit: https://publish.twitter.com")}},function(t,e,n){
+Function&&Function.prototype&&Function.prototype.bind&&(/(MSIE ([6789]|10|11))|Trident/.test(navigator.userAgent)||(window.__twttr&&window.__twttr.widgets&&window.__twttr.widgets.loaded&&window.twttr.widgets.load&&window.twttr.widgets.load(),window.__twttr&&window.__twttr.widgets&&window.__twttr.widgets.init||function(t){function e(e){for(var n,i,o=e[0],s=e[1],a=0,c=[];a-1},forIn:i,isObject:s,isEmptyObject:a,toType:o,isType:function(t,e){return t==o(e)},toRealArray:u}},function(t,e){t.exports=window},function(t,e,n){var r=n(6);t.exports=function(){var t=this;this.promise=new r(function(e,n){t.resolve=e,t.reject=n})}},function(t,e,n){var r=n(11),i=/(?:^|(?:https?:)?\/\/(?:www\.)?twitter\.com(?::\d+)?(?:\/intent\/(?:follow|user)\/?\?screen_name=|(?:\/#!)?\/))@?([\w]+)(?:\?|&|$)/i,o=/(?:^|(?:https?:)?\/\/(?:www\.)?twitter\.com(?::\d+)?\/(?:#!\/)?[\w_]+\/status(?:es)?\/)(\d+)/i,s=/^http(s?):\/\/(\w+\.)*twitter\.com([:/]|$)/i,a=/^http(s?):\/\/(ton|pbs)\.twimg\.com/,u=/^#?([^.,<>!\s/#\-()'"]+)$/,c=/twitter\.com(?::\d{2,4})?\/intent\/(\w+)/,d=/^https?:\/\/(?:www\.)?twitter\.com\/\w+\/timelines\/(\d+)/i,l=/^https?:\/\/(?:www\.)?twitter\.com\/i\/moments\/(\d+)/i,f=/^https?:\/\/(?:www\.)?twitter\.com\/(\w+)\/(?:likes|favorites)/i,h=/^https?:\/\/(?:www\.)?twitter\.com\/(\w+)\/lists\/([\w-%]+)/i,p=/^https?:\/\/(?:www\.)?twitter\.com\/i\/live\/(\d+)/i,m=/^https?:\/\/syndication\.twitter\.com\/settings/i,v=/^https?:\/\/(localhost|platform)\.twitter\.com(?::\d+)?\/widgets\/widget_iframe\.(.+)/i,g=/^https?:\/\/(?:www\.)?twitter\.com\/search\?q=(\w+)/i;function w(t){return"string"==typeof t&&i.test(t)&&RegExp.$1.length<=20}function y(t){if(w(t))return RegExp.$1}function b(t,e){var n=r.decodeURL(t);if(e=e||!1,n.screen_name=y(t),n.screen_name)return r.url("https://twitter.com/intent/"+(e?"follow":"user"),n)}function _(t){return"string"==typeof t&&u.test(t)}function E(t){return"string"==typeof t&&o.test(t)}t.exports={isHashTag:_,hashTag:function(t,e){if(e=void 0===e||e,_(t))return(e?"#":"")+RegExp.$1},isScreenName:w,screenName:y,isStatus:E,status:function(t){return E(t)&&RegExp.$1},intentForProfileURL:b,intentForFollowURL:function(t){return b(t,!0)},isTwitterURL:function(t){return s.test(t)},isTwimgURL:function(t){return a.test(t)},isIntentURL:function(t){return c.test(t)},isSettingsURL:function(t){return m.test(t)},isWidgetIframeURL:function(t){return v.test(t)},isSearchUrl:function(t){return g.test(t)},regexen:{profile:i},momentId:function(t){return l.test(t)&&RegExp.$1},collectionId:function(t){return d.test(t)&&RegExp.$1},intentType:function(t){return c.test(t)&&RegExp.$1},likesScreenName:function(t){return f.test(t)&&RegExp.$1},listScreenNameAndSlug:function(t){var e,n,r;if(h.test(t)){e=RegExp.$1,n=RegExp.$2;try{r=decodeURIComponent(n)}catch(t){}return{ownerScreenName:e,slug:r||n}}return!1},eventId:function(t){return p.test(t)&&RegExp.$1}}},function(t,e){t.exports=document},function(t,e,n){var r=n(0),i=[!0,1,"1","on","ON","true","TRUE","yes","YES"],o=[!1,0,"0","off","OFF","false","FALSE","no","NO"];function s(t){return void 0!==t&&null!==t&&""!==t}function a(t){return c(t)&&t%1==0}function u(t){return c(t)&&!a(t)}function c(t){return s(t)&&!isNaN(t)}function d(t){return r.contains(o,t)}function l(t){return r.contains(i,t)}t.exports={hasValue:s,isInt:a,isFloat:u,isNumber:c,isString:function(t){return"string"===r.toType(t)},isArray:function(t){return s(t)&&"array"==r.toType(t)},isTruthValue:l,isFalseValue:d,asInt:function(t){if(a(t))return parseInt(t,10)},asFloat:function(t){if(u(t))return t},asNumber:function(t){if(c(t))return t},asBoolean:function(t){return!(!s(t)||!l(t)&&(d(t)||!t))}}},function(t,e,n){var r=n(1),i=n(21),o=n(49);i.hasPromiseSupport()||(r.Promise=o),t.exports=r.Promise},function(t,e,n){var r=n(0);t.exports=function(t,e){var n=Array.prototype.slice.call(arguments,2);return function(){var i=r.toRealArray(arguments);return t.apply(e,n.concat(i))}}},function(t,e,n){var r=n(51);t.exports=new r("__twttr")},function(t,e){t.exports=location},function(t,e,n){var r=n(0),i=/\b([\w-_]+)\b/g;function o(t){return new RegExp("\\b"+t+"\\b","g")}function s(t,e){t.classList?t.classList.add(e):o(e).test(t.className)||(t.className+=" "+e)}function a(t,e){t.classList?t.classList.remove(e):t.className=t.className.replace(o(e)," ")}function u(t,e){return t.classList?t.classList.contains(e):r.contains(c(t),e)}function c(t){return r.toRealArray(t.classList?t.classList:t.className.match(i))}t.exports={add:s,remove:a,replace:function(t,e,n){if(t.classList&&u(t,e))return a(t,e),void s(t,n);t.className=t.className.replace(o(e),n)},toggle:function(t,e,n){return void 0===n&&t.classList&&t.classList.toggle?t.classList.toggle(e,n):(n?s(t,e):a(t,e),n)},present:u,list:c}},function(t,e,n){var r=n(5),i=n(0);function o(t){return encodeURIComponent(t).replace(/\+/g,"%2B").replace(/'/g,"%27")}function s(t){return decodeURIComponent(t)}function a(t){var e=[];return i.forIn(t,function(t,n){var s=o(t);i.isType("array",n)||(n=[n]),n.forEach(function(t){r.hasValue(t)&&e.push(s+"="+o(t))})}),e.sort().join("&")}function u(t){var e={};return t?(t.split("&").forEach(function(t){var n=t.split("="),r=s(n[0]),o=s(n[1]);if(2==n.length){if(!i.isType("array",e[r]))return r in e?(e[r]=[e[r]],void e[r].push(o)):void(e[r]=o);e[r].push(o)}}),e):{}}t.exports={url:function(t,e){return a(e).length>0?i.contains(t,"?")?t+"&"+a(e):t+"?"+a(e):t},decodeURL:function(t){var e=t&&t.split("?");return 2==e.length?u(e[1]):{}},decode:u,encode:a,encodePart:o,decodePart:s}},function(t,e,n){var r=n(9),i=n(1),o=n(0),s={},a=o.contains(r.href,"tw_debug=true");function u(){}function c(){}function d(){return i.performance&&+i.performance.now()||+new Date}function l(t,e){if(i.console&&i.console[t])switch(e.length){case 1:i.console[t](e[0]);break;case 2:i.console[t](e[0],e[1]);break;case 3:i.console[t](e[0],e[1],e[2]);break;case 4:i.console[t](e[0],e[1],e[2],e[3]);break;case 5:i.console[t](e[0],e[1],e[2],e[3],e[4]);break;default:0!==e.length&&i.console.warn&&i.console.warn("too many params passed to logger."+t)}}t.exports={devError:u,devInfo:c,devObject:function(t,e){},publicError:function(){l("error",o.toRealArray(arguments))},publicLog:function(){l("info",o.toRealArray(arguments))},publicWarn:function(){l("warn",o.toRealArray(arguments))},time:function(t){a&&(s[t]=d())},timeEnd:function(t){a&&s[t]&&(d(),s[t])}}},function(t,e,n){var r=n(19),i=n(5),o=n(11),s=n(0),a=n(115);t.exports=function(t){var e=t.href&&t.href.split("?")[1],n=e?o.decode(e):{},u={lang:a(t),width:t.getAttribute("data-bs-width")||t.getAttribute("width"),height:t.getAttribute("data-bs-height")||t.getAttribute("height"),related:t.getAttribute("data-bs-related"),partner:t.getAttribute("data-bs-partner")};return i.asBoolean(t.getAttribute("data-bs-dnt"))&&r.setOn(),s.forIn(u,function(t,e){var r=n[t];n[t]=i.hasValue(r)?r:e}),s.compact(n)}},function(t,e,n){var r=n(77),i=n(22);t.exports=function(){var t="data-bs-twitter-extracted-"+i.generate();return function(e,n){return r(e,n).filter(function(e){return!e.hasAttribute(t)}).map(function(e){return e.setAttribute(t,"true"),e})}}},function(t,e){function n(t,e,n,r,i,o,s){this.factory=t,this.Sandbox=e,this.srcEl=o,this.targetEl=i,this.parameters=r,this.className=n,this.options=s}n.prototype.destroy=function(){this.srcEl=this.targetEl=null},t.exports=n},function(t,e){t.exports={DM_BUTTON:"twitter-dm-button",FOLLOW_BUTTON:"twitter-follow-button",HASHTAG_BUTTON:"twitter-hashtag-button",MENTION_BUTTON:"twitter-mention-button",MOMENT:"twitter-moment",PERISCOPE:"periscope-on-air",SHARE_BUTTON:"twitter-share-button",TIMELINE:"twitter-timeline",TWEET:"twitter-tweet"}},function(t,e,n){var r=n(6),i=n(19),o=n(53),s=n(36),a=n(5),u=n(0);t.exports=function(t,e,n){var c;return t=t||[],e=e||{},c="ƒ("+t.join(", ")+", target, [options]);",function(){var d,l,f,h,p=Array.prototype.slice.apply(arguments,[0,t.length]),m=Array.prototype.slice.apply(arguments,[t.length]);return m.forEach(function(t){t&&(t.nodeType!==Node.ELEMENT_NODE?u.isType("function",t)?d=t:u.isType("object",t)&&(l=t):f=t)}),p.length!==t.length||0===m.length?(d&&u.async(function(){d(!1)}),r.reject(new Error("Not enough parameters. Expected: "+c))):f?(l=u.aug({},l||{},e),t.forEach(function(t){l[t]=p.shift()}),a.asBoolean(l.dnt)&&i.setOn(),h=s.getExperiments().then(function(t){return o.addWidget(n(l,f,void 0,t))}),d&&h.then(d,function(){d(!1)}),h):(d&&u.async(function(){d(!1)}),r.reject(new Error("No target element specified. Expected: "+c)))}}},function(t,e,n){var r=n(98),i=n(2),o=n(0);function s(t,e){return function(){try{e.resolve(t.call(this))}catch(t){e.reject(t)}}}t.exports={sync:function(t,e){t.call(e)},read:function(t,e){var n=new i;return r.read(s(t,n),e),n.promise},write:function(t,e){var n=new i;return r.write(s(t,n),e),n.promise},defer:function(t,e,n){var a=new i;return o.isType("function",t)&&(n=e,e=t,t=1),r.defer(t,s(e,a),n),a.promise}}},function(t,e,n){var r=n(4),i=n(9),o=n(38),s=n(102),a=n(5),u=n(33),c=!1,d=/https?:\/\/([^/]+).*/i;t.exports={setOn:function(){c=!0},enabled:function(t,e){return!!(c||a.asBoolean(u.val("dnt"))||s.isUrlSensitive(e||i.host)||o.isFramed()&&s.isUrlSensitive(o.rootDocumentLocation())||(t=d.test(t||r.referrer)&&RegExp.$1)&&s.isUrlSensitive(t))}}},function(t,e,n){var r=n(8),i=n(59),o="https://platform.twitter.com",s=["https://syndication.twitter.com","https://cdn.syndication.twimg.com","https://localhost.twitter.com:8444"],a=["https://syndication.twitter.com","https://localhost.twitter.com:8445"],u=["https://platform.twitter.com","https://localhost.twitter.com",/^https:\/\/ton\.smf1\.twitter\.com\/syndication-internal\/embed-iframe\/[0-9A-Za-z_-]+\/app/],c=function(t,e){return t.some(function(t){return t instanceof RegExp?t.test(e):t===e})},d=function(){var t=r.get("backendHost");return t&&c(s,t)?t:"https://cdn.syndication.twimg.com"},l=function(){var t=r.get("settingsSvcHost");return t&&c(a,t)?t:"https://syndication.twitter.com"};function f(t,e){var n=[t];return e.forEach(function(t){n.push(function(t){var e=(t||"").toString(),n="/"===e.slice(0,1)?1:0,r=function(t){return"/"===t.slice(-1)}(e)?-1:void 0;return e.slice(n,r)}(t))}),n.join("/")}t.exports={cookieConsent:function(t){var e=t||[];return e.unshift("cookie/consent"),f(l(),e)},embedIframe:function(t,e){var n=t||[],s=o,a=r.get("embedIframeURL");return a&&c(u,a)?f(a,n)+".html":(n.unshift(i.getBaseURLPath(e)),f(s,n)+".html")},eventVideo:function(t){var e=t||[];return e.unshift("video/event"),f(d(),e)},grid:function(t){var e=t||[];return e.unshift("grid/collection"),f(d(),e)},moment:function(t){var e=t||[];return e.unshift("moments"),f(d(),e)},settings:function(t){var e=t||[];return e.unshift("settings"),f(l(),e)},timeline:function(t){var e=t||[];return e.unshift("timeline"),f(d(),e)},tweetBatch:function(t){var e=t||[];return e.unshift("tweets.json"),f(d(),e)},video:function(t){var e=t||[];return e.unshift("widgets/video"),f(d(),e)}}},function(t,e,n){var r=n(4),i=n(92),o=n(1),s=n(0),a=i.userAgent;function u(t){return/(Trident|MSIE|Edge[/ ]?\d)/.test(t=t||a)}t.exports={retina:function(t){return(t=t||o).devicePixelRatio?t.devicePixelRatio>=1.5:!!t.matchMedia&&t.matchMedia("only screen and (min-resolution: 144dpi)").matches},anyIE:u,ie9:function(t){return/MSIE 9/.test(t=t||a)},ie10:function(t){return/MSIE 10/.test(t=t||a)},ios:function(t){return/(iPad|iPhone|iPod)/.test(t=t||a)},android:function(t){return/^Mozilla\/5\.0 \(Linux; (U; )?Android/.test(t=t||a)},canPostMessage:function(t,e){return t=t||o,e=e||a,t.postMessage&&!(u(e)&&t.opener)},touch:function(t,e,n){return t=t||o,e=e||i,n=n||a,"ontouchstart"in t||/Opera Mini/.test(n)||e.msMaxTouchPoints>0},cssTransitions:function(){var t=r.body.style;return void 0!==t.transition||void 0!==t.webkitTransition||void 0!==t.mozTransition||void 0!==t.oTransition||void 0!==t.msTransition},hasPromiseSupport:function(){return!!(o.Promise&&o.Promise.resolve&&o.Promise.reject&&o.Promise.all&&o.Promise.race&&(new o.Promise(function(e){t=e}),s.isType("function",t)));var t},hasIntersectionObserverSupport:function(){return!!o.IntersectionObserver},hasPerformanceInformation:function(){return o.performance&&o.performance.getEntriesByType}}},function(t,e){var n="i",r=0,i=0;t.exports={generate:function(){return n+String(+new Date)+Math.floor(1e5*Math.random())+r++},deterministic:function(){return n+String(i++)}}},function(t,e,n){var r=n(50),i=n(52),o=n(0);t.exports=o.aug(r.get("events")||{},i.Emitter)},function(t,e,n){var r=n(6),i=n(2);function o(t,e){return t.then(e,e)}function s(t){return t instanceof r}t.exports={always:o,allResolved:function(t){var e;return void 0===t?r.reject(new Error("undefined is not an object")):Array.isArray(t)?(e=t.length)?new r(function(n,r){var i=0,o=[];function a(){(i+=1)===e&&(0===o.length?r():n(o))}function u(t){o.push(t),a()}t.forEach(function(t){s(t)?t.then(u,a):u(t)})}):r.resolve([]):r.reject(new Error("Type error"))},some:function(t){var e;return e=(t=t||[]).length,t=t.filter(s),e?e!==t.length?r.reject("non-Promise passed to .some"):new r(function(e,n){var r=0;function i(){(r+=1)===t.length&&n()}t.forEach(function(t){t.then(e,i)})}):r.reject("no promises passed to .some")},isPromise:s,allSettled:function(t){function e(){}return r.all((t||[]).map(function(t){return o(t,e)}))},timeout:function(t,e){var n=new i;return setTimeout(function(){n.reject(new Error("Promise timed out"))},e),t.then(function(t){n.resolve(t)},function(t){n.reject(t)}),n.promise}}},function(t,e,n){var r=n(1).JSON;t.exports={stringify:r.stringify||r.encode,parse:r.parse||r.decode}},function(t,e,n){var r=n(27),i=n(108);t.exports=r.build([i])},function(t,e,n){var r=n(39),i=n(105),o=n(7);(r=Object.create(r)).build=o(r.build,null,i),t.exports=r},function(t,e,n){var r=n(39),i=n(40),o=n(7);(r=Object.create(r)).build=o(r.build,null,i),t.exports=r},function(t,e,n){var r=n(79),i=n(80),o=n(81),s=n(9),a=n(71),u=n(82),c=n(19),d=n(5),l=n(22),f=n(0);function h(t){if(!t||!t.headers)throw new Error("unexpected response schema");return{html:t.body,config:t.config,pollInterval:1e3*parseInt(t.headers.xPolling,10)||null,maxCursorPosition:t.headers.maxPosition,minCursorPosition:t.headers.minPosition}}function p(t){if(t&&t.headers)throw new Error(t.headers.status);throw t instanceof Error?t:new Error(t)}t.exports=function(t){t.params({instanceId:{required:!0,fallback:l.deterministic},lang:{required:!0,transform:a.matchLanguage,fallback:"en"},tweetLimit:{transform:d.asInt}}),t.defineProperty("endpoint",{get:function(){throw new Error("endpoint not specified")}}),t.defineProperty("pollEndpoint",{get:function(){return this.endpoint}}),t.define("cbId",function(t){var e=t?"_new":"_old";return"tl_"+this.params.instanceId+"_"+this.id+e}),t.define("queryParams",function(){return{lang:this.params.lang,tz:u.getTimezoneOffset(),t:r(),domain:s.host,tweet_limit:this.params.tweetLimit,dnt:c.enabled()}}),t.define("fetch",function(){return i.fetch(this.endpoint,this.queryParams(),o,this.cbId()).then(h,p)}),t.define("poll",function(t,e){var n,r;return n={since_id:(t=t||{}).sinceId,max_id:t.maxId,min_position:t.minPosition,max_position:t.maxPosition},r=f.aug(this.queryParams(),n),i.fetch(this.pollEndpoint,r,o,this.cbId(e)).then(h,p)})}},function(t,e,n){var r=n(52).makeEmitter();t.exports={emitter:r,START:"start",ALL_WIDGETS_RENDER_START:"all_widgets_render_start",ALL_WIDGETS_RENDER_END:"all_widgets_render_end",ALL_WIDGETS_AND_IMAGES_LOADED:"all_widgets_and_images_loaded"}},function(t,e,n){var r=n(4),i=n(0);t.exports=function(t,e,n){var o;if(n=n||r,t=t||{},e=e||{},t.name){try{o=n.createElement('')}catch(e){(o=n.createElement("iframe")).name=t.name}delete t.name}else o=n.createElement("iframe");return t.id&&(o.id=t.id,delete t.id),o.allowtransparency="true",o.scrolling="no",o.setAttribute("frameBorder",0),o.setAttribute("allowTransparency",!0),i.forIn(t,function(t,e){o.setAttribute(t,e)}),i.forIn(e,function(t,e){o.style[t]=e}),o}},function(t,e,n){var r=n(27),i=n(122);t.exports=r.build([i])},function(t,e,n){var r,i=n(4);function o(t){var e,n,o,s=0;for(r={},e=(t=t||i).getElementsByTagName("meta");e[s];s++){if(n=e[s],/^twitter:/.test(n.getAttribute("name")))o=n.getAttribute("name").replace(/^twitter:/,"");else{if(!/^twitter:/.test(n.getAttribute("property")))continue;o=n.getAttribute("property").replace(/^twitter:/,"")}r[o]=n.getAttribute("content")||n.getAttribute("value")}}o(),t.exports={init:o,val:function(t){return r[t]}}},function(t,e,n){var r=n(0),i=n(45);t.exports={closest:function t(e,n,o){var s;if(n)return o=o||n&&n.ownerDocument,s=r.isType("function",e)?e:function(t){return function(e){return!!e.tagName&&i(e,t)}}(e),n===o?s(n)?n:void 0:s(n)?n:t(s,n.parentNode,o)}}},function(t,e,n){var r=n(10),i={},o=-1,s={};function a(t){var e=t.getAttribute("data-bs-twitter-event-id");return e||(t.setAttribute("data-bs-twitter-event-id",++o),o)}function u(t,e,n){var r=0,i=t&&t.length||0;for(r=0;r1?(e=Math.floor(t.item_ids.length/2),n=t.item_ids.slice(0,e),r={},i=t.item_ids.slice(e),o={},n.forEach(function(e){r[e]=t.item_details[e]}),i.forEach(function(e){o[e]=t.item_details[e]}),[l.aug({},t,{item_ids:n,item_details:r}),l.aug({},t,{item_ids:i,item_details:o})]):[t]},stringify:function(t){var e,n=Array.prototype.toJSON;return delete Array.prototype.toJSON,e=u.stringify(t),n&&(Array.prototype.toJSON=n),e},CLIENT_EVENT_ENDPOINT:p,RUFOUS_REDIRECT:"https://platform.twitter.com/jot.html"}},function(t,e,n){var r=n(9),i=n(75),o=n(0),s=i.getCanonicalURL()||r.href,a=s;t.exports={isFramed:function(){return s!==a},rootDocumentLocation:function(t){return t&&o.isType("string",t)&&(s=t),s},currentDocumentLocation:function(){return a}}},function(t,e,n){var r=n(103),i=n(104),o=n(0);t.exports={couple:function(){return o.toRealArray(arguments)},build:function(t,e,n){var o=new t;return(e=i(r(e||[]))).forEach(function(t){t.call(null,o)}),o.build(n)}}},function(t,e,n){var r=n(106),i=n(0),o=n(41);function s(){this.Component=this.factory(),this._adviceArgs=[],this._lastArgs=[]}i.aug(s.prototype,{factory:o,build:function(t){var e=this;return this.Component,i.aug(this.Component.prototype.boundParams,t),this._adviceArgs.concat(this._lastArgs).forEach(function(t){(function(t,e,n){var r=this[e];if(!r)throw new Error(e+" does not exist");this[e]=t(r,n)}).apply(e.Component.prototype,t)}),delete this._lastArgs,delete this._adviceArgs,this.Component},params:function(t){var e=this.Component.prototype.paramConfigs;t=t||{},this.Component.prototype.paramConfigs=i.aug({},t,e)},define:function(t,e){if(t in this.Component.prototype)throw new Error(t+" has previously been defined");this.override(t,e)},defineStatic:function(t,e){this.Component[t]=e},override:function(t,e){this.Component.prototype[t]=e},defineProperty:function(t,e){if(t in this.Component.prototype)throw new Error(t+" has previously been defined");this.overrideProperty(t,e)},overrideProperty:function(t,e){var n=i.aug({configurable:!0},e);Object.defineProperty(this.Component.prototype,t,n)},before:function(t,e){this._adviceArgs.push([r.before,t,e])},after:function(t,e){this._adviceArgs.push([r.after,t,e])},around:function(t,e){this._adviceArgs.push([r.around,t,e])},last:function(t,e){this._lastArgs.push([r.after,t,e])}}),t.exports=s},function(t,e,n){var r=n(0);function i(){return!0}function o(t){return t}t.exports=function(){function t(t){var e=this;t=t||{},this.params=Object.keys(this.paramConfigs).reduce(function(n,s){var a=[],u=e.boundParams,c=e.paramConfigs[s],d=c.validate||i,l=c.transform||o;if(s in u&&a.push(u[s]),s in t&&a.push(t[s]),a="fallback"in c?a.concat(c.fallback):a,n[s]=function(t,e,n){var i=null;return t.some(function(t){if(t=r.isType("function",t)?t():t,e(t))return i=n(t),!0}),i}(a,d,l),c.required&&null==n[s])throw new Error(s+" is a required parameter");return n},{}),this.initialize()}return r.aug(t.prototype,{paramConfigs:{},boundParams:{},initialize:function(){}}),t}},function(t,e,n){var r=n(101),i=n(76),o=new(n(110))(function(t){(!function(t){return 1===t.length&&i.canFlushOneItem(t[0])}(t)?function(t){r.init(),t.forEach(function(t){var e=t.input.namespace,n=t.input.data,i=t.input.offsite,o=t.input.version;r.clientEvent(e,n,i,o)}),r.flush().then(function(){t.forEach(function(t){t.taskDoneDeferred.resolve()})},function(){t.forEach(function(t){t.taskDoneDeferred.reject()})})}:function(t){t.forEach(function(t){var e=t.input.namespace,n=t.input.data,r=t.input.offsite,o=t.input.version;i.clientEvent(e,n,r,o),t.taskDoneDeferred.resolve()})})(t)});t.exports={scribe:function(t,e,n,r){return o.add({namespace:t,data:e,offsite:n,version:r})},pause:function(){o.pause()},resume:function(){o.resume()}}},function(t,e,n){var r,i=n(10),o=n(4),s=n(1),a=n(33),u=n(54),c=n(5),d=n(22),l="csptest";t.exports={inlineStyle:function(){var t=l+d.generate(),e=o.createElement("div"),n=o.createElement("style"),f="."+t+" { visibility: hidden; }";return!!o.body&&(c.asBoolean(a.val("widgets:csp"))&&(r=!1),void 0!==r?r:(e.style.display="none",i.add(e,t),n.type="text/css",n.appendChild(o.createTextNode(f)),o.body.appendChild(n),o.body.appendChild(e),r="hidden"===s.getComputedStyle(e).visibility,u(e),u(n),r))}}},function(t,e,n){var r=n(1);t.exports=function(t,e,n){var i,o=0;return n=n||null,function s(){var a=n||this,u=arguments,c=+new Date;if(r.clearTimeout(i),c-o>e)return o=c,void t.apply(a,u);i=r.setTimeout(function(){s.apply(a,u)},e)}}},function(t,e,n){var r=n(1).HTMLElement,i=r.prototype.matches||r.prototype.matchesSelector||r.prototype.webkitMatchesSelector||r.prototype.mozMatchesSelector||r.prototype.msMatchesSelector||r.prototype.oMatchesSelector;t.exports=function(t,e){if(i)return i.call(t,e)}},function(t){t.exports={version:"82e1070:1619632193066"}},function(t,e){t.exports=function(t){var e=t.getBoundingClientRect();return{width:e.width,height:e.height}}},function(t,e,n){var r=n(12).publicWarn;t.exports=function(){r("Warning: This Timeline type belongs to a group that will not be supported in the future (Likes, Collections, & Moments). It is not recommended for use. \n\t","* Twitter will continue to support Profile and List Timelines \n\t","* You can learn more about this change in our announcement: \n\t","https://twittercommunity.com/t/removing-support-for-embedded-like-collection-and-moment-timelines/150313 \n\t","* In order to create a new Embedded Timeline, visit: https://publish.twitter.com")}},function(t,e,n){
/*!
* @overview es6-promise - a tiny implementation of Promises/A+.
* @copyright Copyright (c) 2014 Yehuda Katz, Tom Dale, Stefan Penner and contributors (Conversion to ES6 API by Jake Archibald)
diff --git a/files/assets/js/twitterlight.js b/files/assets/js/twitterlight.js
index 70d2d8f38..0b11651dc 100644
--- a/files/assets/js/twitterlight.js
+++ b/files/assets/js/twitterlight.js
@@ -1,4 +1,4 @@
-Function&&Function.prototype&&Function.prototype.bind&&(/(MSIE ([6789]|10|11))|Trident/.test(navigator.userAgent)||(window.__twttr&&window.__twttr.widgets&&window.__twttr.widgets.loaded&&window.twttr.widgets.load&&window.twttr.widgets.load(),window.__twttr&&window.__twttr.widgets&&window.__twttr.widgets.init||function(t){function e(e){for(var n,i,o=e[0],s=e[1],a=0,c=[];a-1},forIn:i,isObject:s,isEmptyObject:a,toType:o,isType:function(t,e){return t==o(e)},toRealArray:u}},function(t,e){t.exports=window},function(t,e,n){var r=n(6);t.exports=function(){var t=this;this.promise=new r(function(e,n){t.resolve=e,t.reject=n})}},function(t,e,n){var r=n(11),i=/(?:^|(?:https?:)?\/\/(?:www\.)?twitter\.com(?::\d+)?(?:\/intent\/(?:follow|user)\/?\?screen_name=|(?:\/#!)?\/))@?([\w]+)(?:\?|&|$)/i,o=/(?:^|(?:https?:)?\/\/(?:www\.)?twitter\.com(?::\d+)?\/(?:#!\/)?[\w_]+\/status(?:es)?\/)(\d+)/i,s=/^http(s?):\/\/(\w+\.)*twitter\.com([:/]|$)/i,a=/^http(s?):\/\/(ton|pbs)\.twimg\.com/,u=/^#?([^.,<>!\s/#\-()'"]+)$/,c=/twitter\.com(?::\d{2,4})?\/intent\/(\w+)/,d=/^https?:\/\/(?:www\.)?twitter\.com\/\w+\/timelines\/(\d+)/i,l=/^https?:\/\/(?:www\.)?twitter\.com\/i\/moments\/(\d+)/i,f=/^https?:\/\/(?:www\.)?twitter\.com\/(\w+)\/(?:likes|favorites)/i,h=/^https?:\/\/(?:www\.)?twitter\.com\/(\w+)\/lists\/([\w-%]+)/i,p=/^https?:\/\/(?:www\.)?twitter\.com\/i\/live\/(\d+)/i,m=/^https?:\/\/syndication\.twitter\.com\/settings/i,v=/^https?:\/\/(localhost|platform)\.twitter\.com(?::\d+)?\/widgets\/widget_iframe\.(.+)/i,g=/^https?:\/\/(?:www\.)?twitter\.com\/search\?q=(\w+)/i;function w(t){return"string"==typeof t&&i.test(t)&&RegExp.$1.length<=20}function y(t){if(w(t))return RegExp.$1}function b(t,e){var n=r.decodeURL(t);if(e=e||!1,n.screen_name=y(t),n.screen_name)return r.url("https://twitter.com/intent/"+(e?"follow":"user"),n)}function _(t){return"string"==typeof t&&u.test(t)}function E(t){return"string"==typeof t&&o.test(t)}t.exports={isHashTag:_,hashTag:function(t,e){if(e=void 0===e||e,_(t))return(e?"#":"")+RegExp.$1},isScreenName:w,screenName:y,isStatus:E,status:function(t){return E(t)&&RegExp.$1},intentForProfileURL:b,intentForFollowURL:function(t){return b(t,!0)},isTwitterURL:function(t){return s.test(t)},isTwimgURL:function(t){return a.test(t)},isIntentURL:function(t){return c.test(t)},isSettingsURL:function(t){return m.test(t)},isWidgetIframeURL:function(t){return v.test(t)},isSearchUrl:function(t){return g.test(t)},regexen:{profile:i},momentId:function(t){return l.test(t)&&RegExp.$1},collectionId:function(t){return d.test(t)&&RegExp.$1},intentType:function(t){return c.test(t)&&RegExp.$1},likesScreenName:function(t){return f.test(t)&&RegExp.$1},listScreenNameAndSlug:function(t){var e,n,r;if(h.test(t)){e=RegExp.$1,n=RegExp.$2;try{r=decodeURIComponent(n)}catch(t){}return{ownerScreenName:e,slug:r||n}}return!1},eventId:function(t){return p.test(t)&&RegExp.$1}}},function(t,e){t.exports=document},function(t,e,n){var r=n(0),i=[!0,1,"1","on","ON","true","TRUE","yes","YES"],o=[!1,0,"0","off","OFF","false","FALSE","no","NO"];function s(t){return void 0!==t&&null!==t&&""!==t}function a(t){return c(t)&&t%1==0}function u(t){return c(t)&&!a(t)}function c(t){return s(t)&&!isNaN(t)}function d(t){return r.contains(o,t)}function l(t){return r.contains(i,t)}t.exports={hasValue:s,isInt:a,isFloat:u,isNumber:c,isString:function(t){return"string"===r.toType(t)},isArray:function(t){return s(t)&&"array"==r.toType(t)},isTruthValue:l,isFalseValue:d,asInt:function(t){if(a(t))return parseInt(t,10)},asFloat:function(t){if(u(t))return t},asNumber:function(t){if(c(t))return t},asBoolean:function(t){return!(!s(t)||!l(t)&&(d(t)||!t))}}},function(t,e,n){var r=n(1),i=n(21),o=n(49);i.hasPromiseSupport()||(r.Promise=o),t.exports=r.Promise},function(t,e,n){var r=n(0);t.exports=function(t,e){var n=Array.prototype.slice.call(arguments,2);return function(){var i=r.toRealArray(arguments);return t.apply(e,n.concat(i))}}},function(t,e,n){var r=n(51);t.exports=new r("__twttr")},function(t,e){t.exports=location},function(t,e,n){var r=n(0),i=/\b([\w-_]+)\b/g;function o(t){return new RegExp("\\b"+t+"\\b","g")}function s(t,e){t.classList?t.classList.add(e):o(e).test(t.className)||(t.className+=" "+e)}function a(t,e){t.classList?t.classList.remove(e):t.className=t.className.replace(o(e)," ")}function u(t,e){return t.classList?t.classList.contains(e):r.contains(c(t),e)}function c(t){return r.toRealArray(t.classList?t.classList:t.className.match(i))}t.exports={add:s,remove:a,replace:function(t,e,n){if(t.classList&&u(t,e))return a(t,e),void s(t,n);t.className=t.className.replace(o(e),n)},toggle:function(t,e,n){return void 0===n&&t.classList&&t.classList.toggle?t.classList.toggle(e,n):(n?s(t,e):a(t,e),n)},present:u,list:c}},function(t,e,n){var r=n(5),i=n(0);function o(t){return encodeURIComponent(t).replace(/\+/g,"%2B").replace(/'/g,"%27")}function s(t){return decodeURIComponent(t)}function a(t){var e=[];return i.forIn(t,function(t,n){var s=o(t);i.isType("array",n)||(n=[n]),n.forEach(function(t){r.hasValue(t)&&e.push(s+"="+o(t))})}),e.sort().join("&")}function u(t){var e={};return t?(t.split("&").forEach(function(t){var n=t.split("="),r=s(n[0]),o=s(n[1]);if(2==n.length){if(!i.isType("array",e[r]))return r in e?(e[r]=[e[r]],void e[r].push(o)):void(e[r]=o);e[r].push(o)}}),e):{}}t.exports={url:function(t,e){return a(e).length>0?i.contains(t,"?")?t+"&"+a(e):t+"?"+a(e):t},decodeURL:function(t){var e=t&&t.split("?");return 2==e.length?u(e[1]):{}},decode:u,encode:a,encodePart:o,decodePart:s}},function(t,e,n){var r=n(9),i=n(1),o=n(0),s={},a=o.contains(r.href,"tw_debug=true");function u(){}function c(){}function d(){return i.performance&&+i.performance.now()||+new Date}function l(t,e){if(i.console&&i.console[t])switch(e.length){case 1:i.console[t](e[0]);break;case 2:i.console[t](e[0],e[1]);break;case 3:i.console[t](e[0],e[1],e[2]);break;case 4:i.console[t](e[0],e[1],e[2],e[3]);break;case 5:i.console[t](e[0],e[1],e[2],e[3],e[4]);break;default:0!==e.length&&i.console.warn&&i.console.warn("too many params passed to logger."+t)}}t.exports={devError:u,devInfo:c,devObject:function(t,e){},publicError:function(){l("error",o.toRealArray(arguments))},publicLog:function(){l("info",o.toRealArray(arguments))},publicWarn:function(){l("warn",o.toRealArray(arguments))},time:function(t){a&&(s[t]=d())},timeEnd:function(t){a&&s[t]&&(d(),s[t])}}},function(t,e,n){var r=n(19),i=n(5),o=n(11),s=n(0),a=n(115);t.exports=function(t){var e=t.href&&t.href.split("?")[1],n=e?o.decode(e):{},u={lang:a(t),width:t.getAttribute("data-width")||t.getAttribute("width"),height:t.getAttribute("data-height")||t.getAttribute("height"),related:t.getAttribute("data-related"),partner:t.getAttribute("data-partner")};return i.asBoolean(t.getAttribute("data-dnt"))&&r.setOn(),s.forIn(u,function(t,e){var r=n[t];n[t]=i.hasValue(r)?r:e}),s.compact(n)}},function(t,e,n){var r=n(77),i=n(22);t.exports=function(){var t="data-twitter-extracted-"+i.generate();return function(e,n){return r(e,n).filter(function(e){return!e.hasAttribute(t)}).map(function(e){return e.setAttribute(t,"true"),e})}}},function(t,e){function n(t,e,n,r,i,o,s){this.factory=t,this.Sandbox=e,this.srcEl=o,this.targetEl=i,this.parameters=r,this.className=n,this.options=s}n.prototype.destroy=function(){this.srcEl=this.targetEl=null},t.exports=n},function(t,e){t.exports={DM_BUTTON:"twitter-dm-button",FOLLOW_BUTTON:"twitter-follow-button",HASHTAG_BUTTON:"twitter-hashtag-button",MENTION_BUTTON:"twitter-mention-button",MOMENT:"twitter-moment",PERISCOPE:"periscope-on-air",SHARE_BUTTON:"twitter-share-button",TIMELINE:"twitter-timeline",TWEET:"twitter-tweet"}},function(t,e,n){var r=n(6),i=n(19),o=n(53),s=n(36),a=n(5),u=n(0);t.exports=function(t,e,n){var c;return t=t||[],e=e||{},c="ƒ("+t.join(", ")+", target, [options]);",function(){var d,l,f,h,p=Array.prototype.slice.apply(arguments,[0,t.length]),m=Array.prototype.slice.apply(arguments,[t.length]);return m.forEach(function(t){t&&(t.nodeType!==Node.ELEMENT_NODE?u.isType("function",t)?d=t:u.isType("object",t)&&(l=t):f=t)}),p.length!==t.length||0===m.length?(d&&u.async(function(){d(!1)}),r.reject(new Error("Not enough parameters. Expected: "+c))):f?(l=u.aug({},l||{},e),t.forEach(function(t){l[t]=p.shift()}),a.asBoolean(l.dnt)&&i.setOn(),h=s.getExperiments().then(function(t){return o.addWidget(n(l,f,void 0,t))}),d&&h.then(d,function(){d(!1)}),h):(d&&u.async(function(){d(!1)}),r.reject(new Error("No target element specified. Expected: "+c)))}}},function(t,e,n){var r=n(98),i=n(2),o=n(0);function s(t,e){return function(){try{e.resolve(t.call(this))}catch(t){e.reject(t)}}}t.exports={sync:function(t,e){t.call(e)},read:function(t,e){var n=new i;return r.read(s(t,n),e),n.promise},write:function(t,e){var n=new i;return r.write(s(t,n),e),n.promise},defer:function(t,e,n){var a=new i;return o.isType("function",t)&&(n=e,e=t,t=1),r.defer(t,s(e,a),n),a.promise}}},function(t,e,n){var r=n(4),i=n(9),o=n(38),s=n(102),a=n(5),u=n(33),c=!1,d=/https?:\/\/([^/]+).*/i;t.exports={setOn:function(){c=!0},enabled:function(t,e){return!!(c||a.asBoolean(u.val("dnt"))||s.isUrlSensitive(e||i.host)||o.isFramed()&&s.isUrlSensitive(o.rootDocumentLocation())||(t=d.test(t||r.referrer)&&RegExp.$1)&&s.isUrlSensitive(t))}}},function(t,e,n){var r=n(8),i=n(59),o="https://syndication.twitter.com",s="https://platform.twitter.com",a=["https://syndication.twitter.com","https://cdn.syndication.twimg.com","https://localhost.twitter.com:8444"],u=["https://syndication.twitter.com","https://localhost.twitter.com:8445"],c=["https://platform.twitter.com","https://localhost.twitter.com",/^https:\/\/ton\.smf1\.twitter\.com\/syndication-internal\/embed-iframe\/[0-9A-Za-z_-]+\/app/],d=function(t,e){return t.some(function(t){return t instanceof RegExp?t.test(e):t===e})},l=function(){var t=r.get("backendHost");return t&&d(a,t)?t:"https://cdn.syndication.twimg.com"},f=function(){var t=r.get("settingsSvcHost");return t&&d(u,t)?t:o};function h(t,e){var n=[t];return e.forEach(function(t){n.push(function(t){var e=(t||"").toString(),n="/"===e.slice(0,1)?1:0,r=function(t){return"/"===t.slice(-1)}(e)?-1:void 0;return e.slice(n,r)}(t))}),n.join("/")}t.exports={cookieConsent:function(t){var e=t||[];return e.unshift("cookie/consent"),h(f(),e)},embedIframe:function(t,e){var n=t||[],o=s,a=r.get("embedIframeURL");return a&&d(c,a)?h(a,n)+".html":(n.unshift(i.getBaseURLPath(e)),h(o,n)+".html")},embedService:function(t){var e=t||[],n=o;return e.unshift("srv"),h(n,e)},eventVideo:function(t){var e=t||[];return e.unshift("video/event"),h(l(),e)},grid:function(t){var e=t||[];return e.unshift("grid/collection"),h(l(),e)},moment:function(t){var e=t||[];return e.unshift("moments"),h(l(),e)},settings:function(t){var e=t||[];return e.unshift("settings"),h(f(),e)},timeline:function(t){var e=t||[];return e.unshift("timeline"),h(l(),e)},tweetBatch:function(t){var e=t||[];return e.unshift("tweets.json"),h(l(),e)},video:function(t){var e=t||[];return e.unshift("widgets/video"),h(l(),e)}}},function(t,e,n){var r=n(4),i=n(92),o=n(1),s=n(0),a=i.userAgent;function u(t){return/(Trident|MSIE|Edge[/ ]?\d)/.test(t=t||a)}t.exports={retina:function(t){return(t=t||o).devicePixelRatio?t.devicePixelRatio>=1.5:!!t.matchMedia&&t.matchMedia("only screen and (min-resolution: 144dpi)").matches},anyIE:u,ie9:function(t){return/MSIE 9/.test(t=t||a)},ie10:function(t){return/MSIE 10/.test(t=t||a)},ios:function(t){return/(iPad|iPhone|iPod)/.test(t=t||a)},android:function(t){return/^Mozilla\/5\.0 \(Linux; (U; )?Android/.test(t=t||a)},canPostMessage:function(t,e){return t=t||o,e=e||a,t.postMessage&&!(u(e)&&t.opener)},touch:function(t,e,n){return t=t||o,e=e||i,n=n||a,"ontouchstart"in t||/Opera Mini/.test(n)||e.msMaxTouchPoints>0},cssTransitions:function(){var t=r.body.style;return void 0!==t.transition||void 0!==t.webkitTransition||void 0!==t.mozTransition||void 0!==t.oTransition||void 0!==t.msTransition},hasPromiseSupport:function(){return!!(o.Promise&&o.Promise.resolve&&o.Promise.reject&&o.Promise.all&&o.Promise.race&&(new o.Promise(function(e){t=e}),s.isType("function",t)));var t},hasIntersectionObserverSupport:function(){return!!o.IntersectionObserver},hasPerformanceInformation:function(){return o.performance&&o.performance.getEntriesByType}}},function(t,e){var n="i",r=0,i=0;t.exports={generate:function(){return n+String(+new Date)+Math.floor(1e5*Math.random())+r++},deterministic:function(){return n+String(i++)}}},function(t,e,n){var r=n(50),i=n(52),o=n(0);t.exports=o.aug(r.get("events")||{},i.Emitter)},function(t,e,n){var r=n(6),i=n(2);function o(t,e){return t.then(e,e)}function s(t){return t instanceof r}t.exports={always:o,allResolved:function(t){var e;return void 0===t?r.reject(new Error("undefined is not an object")):Array.isArray(t)?(e=t.length)?new r(function(n,r){var i=0,o=[];function a(){(i+=1)===e&&(0===o.length?r():n(o))}function u(t){o.push(t),a()}t.forEach(function(t){s(t)?t.then(u,a):u(t)})}):r.resolve([]):r.reject(new Error("Type error"))},some:function(t){var e;return e=(t=t||[]).length,t=t.filter(s),e?e!==t.length?r.reject("non-Promise passed to .some"):new r(function(e,n){var r=0;function i(){(r+=1)===t.length&&n()}t.forEach(function(t){t.then(e,i)})}):r.reject("no promises passed to .some")},isPromise:s,allSettled:function(t){function e(){}return r.all((t||[]).map(function(t){return o(t,e)}))},timeout:function(t,e){var n=new i;return setTimeout(function(){n.reject(new Error("Promise timed out"))},e),t.then(function(t){n.resolve(t)},function(t){n.reject(t)}),n.promise}}},function(t,e,n){var r=n(1).JSON;t.exports={stringify:r.stringify||r.encode,parse:r.parse||r.decode}},function(t,e,n){var r=n(27),i=n(108);t.exports=r.build([i])},function(t,e,n){var r=n(39),i=n(105),o=n(7);(r=Object.create(r)).build=o(r.build,null,i),t.exports=r},function(t,e,n){var r=n(39),i=n(40),o=n(7);(r=Object.create(r)).build=o(r.build,null,i),t.exports=r},function(t,e,n){var r=n(79),i=n(80),o=n(81),s=n(9),a=n(71),u=n(82),c=n(19),d=n(5),l=n(22),f=n(0);function h(t){if(!t||!t.headers)throw new Error("unexpected response schema");return{html:t.body,config:t.config,pollInterval:1e3*parseInt(t.headers.xPolling,10)||null,maxCursorPosition:t.headers.maxPosition,minCursorPosition:t.headers.minPosition}}function p(t){if(t&&t.headers)throw new Error(t.headers.status);throw t instanceof Error?t:new Error(t)}t.exports=function(t){t.params({height:{transform:d.asInt},instanceId:{required:!0,fallback:l.deterministic},lang:{required:!0,transform:a.matchLanguage,fallback:"en"},theme:{},tweetLimit:{transform:d.asInt}}),t.defineProperty("endpoint",{get:function(){throw new Error("endpoint not specified")}}),t.defineProperty("pollEndpoint",{get:function(){return this.endpoint}}),t.define("cbId",function(t){var e=t?"_new":"_old";return"tl_"+this.params.instanceId+"_"+this.id+e}),t.define("queryParams",function(){return{lang:this.params.lang,tz:u.getTimezoneOffset(),t:r(),domain:s.host,tweet_limit:this.params.tweetLimit,dnt:c.enabled()}}),t.define("horizonQueryParams",function(){return f.compact({dnt:c.enabled(),limit:this.params.tweetLimit,lang:this.params.lang,maxHeight:this.params.height,theme:this.params.theme})}),t.define("fetch",function(){return i.fetch(this.endpoint,this.queryParams(),o,this.cbId()).then(h,p)}),t.define("poll",function(t,e){var n,r;return n={since_id:(t=t||{}).sinceId,max_id:t.maxId,min_position:t.minPosition,max_position:t.maxPosition},r=f.aug(this.queryParams(),n),i.fetch(this.pollEndpoint,r,o,this.cbId(e)).then(h,p)})}},function(t,e,n){var r=n(52).makeEmitter();t.exports={emitter:r,START:"start",ALL_WIDGETS_RENDER_START:"all_widgets_render_start",ALL_WIDGETS_RENDER_END:"all_widgets_render_end",ALL_WIDGETS_AND_IMAGES_LOADED:"all_widgets_and_images_loaded"}},function(t,e,n){var r=n(4),i=n(0);t.exports=function(t,e,n){var o;if(n=n||r,t=t||{},e=e||{},t.name){try{o=n.createElement('')}catch(e){(o=n.createElement("iframe")).name=t.name}delete t.name}else o=n.createElement("iframe");return t.id&&(o.id=t.id,delete t.id),o.allowtransparency="true",o.scrolling="no",o.setAttribute("frameBorder",0),o.setAttribute("allowTransparency",!0),i.forIn(t,function(t,e){o.setAttribute(t,e)}),i.forIn(e,function(t,e){o.style[t]=e}),o}},function(t,e,n){var r=n(27),i=n(122);t.exports=r.build([i])},function(t,e,n){var r,i=n(4);function o(t){var e,n,o,s=0;for(r={},e=(t=t||i).getElementsByTagName("meta");e[s];s++){if(n=e[s],/^twitter:/.test(n.getAttribute("name")))o=n.getAttribute("name").replace(/^twitter:/,"");else{if(!/^twitter:/.test(n.getAttribute("property")))continue;o=n.getAttribute("property").replace(/^twitter:/,"")}r[o]=n.getAttribute("content")||n.getAttribute("value")}}o(),t.exports={init:o,val:function(t){return r[t]}}},function(t,e,n){var r=n(0),i=n(45);t.exports={closest:function t(e,n,o){var s;if(n)return o=o||n&&n.ownerDocument,s=r.isType("function",e)?e:function(t){return function(e){return!!e.tagName&&i(e,t)}}(e),n===o?s(n)?n:void 0:s(n)?n:t(s,n.parentNode,o)}}},function(t,e,n){var r=n(10),i={},o=-1,s={};function a(t){var e=t.getAttribute("data-twitter-event-id");return e||(t.setAttribute("data-twitter-event-id",++o),o)}function u(t,e,n){var r=0,i=t&&t.length||0;for(r=0;r1?(e=Math.floor(t.item_ids.length/2),n=t.item_ids.slice(0,e),r={},i=t.item_ids.slice(e),o={},n.forEach(function(e){r[e]=t.item_details[e]}),i.forEach(function(e){o[e]=t.item_details[e]}),[l.aug({},t,{item_ids:n,item_details:r}),l.aug({},t,{item_ids:i,item_details:o})]):[t]},stringify:function(t){var e,n=Array.prototype.toJSON;return delete Array.prototype.toJSON,e=u.stringify(t),n&&(Array.prototype.toJSON=n),e},CLIENT_EVENT_ENDPOINT:p,RUFOUS_REDIRECT:"https://platform.twitter.com/jot.html"}},function(t,e,n){var r=n(9),i=n(75),o=n(0),s=i.getCanonicalURL()||r.href,a=s;t.exports={isFramed:function(){return s!==a},rootDocumentLocation:function(t){return t&&o.isType("string",t)&&(s=t),s},currentDocumentLocation:function(){return a}}},function(t,e,n){var r=n(103),i=n(104),o=n(0);t.exports={couple:function(){return o.toRealArray(arguments)},build:function(t,e,n){var o=new t;return(e=i(r(e||[]))).forEach(function(t){t.call(null,o)}),o.build(n)}}},function(t,e,n){var r=n(106),i=n(0),o=n(41);function s(){this.Component=this.factory(),this._adviceArgs=[],this._lastArgs=[]}i.aug(s.prototype,{factory:o,build:function(t){var e=this;return this.Component,i.aug(this.Component.prototype.boundParams,t),this._adviceArgs.concat(this._lastArgs).forEach(function(t){(function(t,e,n){var r=this[e];if(!r)throw new Error(e+" does not exist");this[e]=t(r,n)}).apply(e.Component.prototype,t)}),delete this._lastArgs,delete this._adviceArgs,this.Component},params:function(t){var e=this.Component.prototype.paramConfigs;t=t||{},this.Component.prototype.paramConfigs=i.aug({},t,e)},define:function(t,e){if(t in this.Component.prototype)throw new Error(t+" has previously been defined");this.override(t,e)},defineStatic:function(t,e){this.Component[t]=e},override:function(t,e){this.Component.prototype[t]=e},defineProperty:function(t,e){if(t in this.Component.prototype)throw new Error(t+" has previously been defined");this.overrideProperty(t,e)},overrideProperty:function(t,e){var n=i.aug({configurable:!0},e);Object.defineProperty(this.Component.prototype,t,n)},before:function(t,e){this._adviceArgs.push([r.before,t,e])},after:function(t,e){this._adviceArgs.push([r.after,t,e])},around:function(t,e){this._adviceArgs.push([r.around,t,e])},last:function(t,e){this._lastArgs.push([r.after,t,e])}}),t.exports=s},function(t,e,n){var r=n(0);function i(){return!0}function o(t){return t}t.exports=function(){function t(t){var e=this;t=t||{},this.params=Object.keys(this.paramConfigs).reduce(function(n,s){var a=[],u=e.boundParams,c=e.paramConfigs[s],d=c.validate||i,l=c.transform||o;if(s in u&&a.push(u[s]),s in t&&a.push(t[s]),a="fallback"in c?a.concat(c.fallback):a,n[s]=function(t,e,n){var i=null;return t.some(function(t){if(t=r.isType("function",t)?t():t,e(t))return i=n(t),!0}),i}(a,d,l),c.required&&null==n[s])throw new Error(s+" is a required parameter");return n},{}),this.initialize()}return r.aug(t.prototype,{paramConfigs:{},boundParams:{},initialize:function(){}}),t}},function(t,e,n){var r=n(101),i=n(76),o=new(n(110))(function(t){(!function(t){return 1===t.length&&i.canFlushOneItem(t[0])}(t)?function(t){r.init(),t.forEach(function(t){var e=t.input.namespace,n=t.input.data,i=t.input.offsite,o=t.input.version;r.clientEvent(e,n,i,o)}),r.flush().then(function(){t.forEach(function(t){t.taskDoneDeferred.resolve()})},function(){t.forEach(function(t){t.taskDoneDeferred.reject()})})}:function(t){t.forEach(function(t){var e=t.input.namespace,n=t.input.data,r=t.input.offsite,o=t.input.version;i.clientEvent(e,n,r,o),t.taskDoneDeferred.resolve()})})(t)});t.exports={scribe:function(t,e,n,r){return o.add({namespace:t,data:e,offsite:n,version:r})},pause:function(){o.pause()},resume:function(){o.resume()}}},function(t,e,n){var r,i=n(10),o=n(4),s=n(1),a=n(33),u=n(54),c=n(5),d=n(22),l="csptest";t.exports={inlineStyle:function(){var t=l+d.generate(),e=o.createElement("div"),n=o.createElement("style"),f="."+t+" { visibility: hidden; }";return!!o.body&&(c.asBoolean(a.val("widgets:csp"))&&(r=!1),void 0!==r?r:(e.style.display="none",i.add(e,t),n.type="text/css",n.appendChild(o.createTextNode(f)),o.body.appendChild(n),o.body.appendChild(e),r="hidden"===s.getComputedStyle(e).visibility,u(e),u(n),r))}}},function(t,e,n){var r=n(1);t.exports=function(t,e,n){var i,o=0;return n=n||null,function s(){var a=n||this,u=arguments,c=+new Date;if(r.clearTimeout(i),c-o>e)return o=c,void t.apply(a,u);i=r.setTimeout(function(){s.apply(a,u)},e)}}},function(t,e,n){var r=n(1).HTMLElement,i=r.prototype.matches||r.prototype.matchesSelector||r.prototype.webkitMatchesSelector||r.prototype.mozMatchesSelector||r.prototype.msMatchesSelector||r.prototype.oMatchesSelector;t.exports=function(t,e){if(i)return i.call(t,e)}},function(t){t.exports={version:"9fd78d5:1638479056965"}},function(t,e){t.exports=function(t){var e=t.getBoundingClientRect();return{width:e.width,height:e.height}}},function(t,e,n){var r=n(12).publicWarn;t.exports=function(){r("Warning: This Timeline type belongs to a group that will not be supported in the future (Likes, Collections, & Moments). It is not recommended for use. \n\t","* Twitter will continue to support Profile and List Timelines \n\t","* You can learn more about this change in our announcement: \n\t","https://twittercommunity.com/t/removing-support-for-embedded-like-collection-and-moment-timelines/150313 \n\t","* In order to create a new Embedded Timeline, visit: https://publish.twitter.com")}},function(t,e,n){
+Function&&Function.prototype&&Function.prototype.bind&&(/(MSIE ([6789]|10|11))|Trident/.test(navigator.userAgent)||(window.__twttr&&window.__twttr.widgets&&window.__twttr.widgets.loaded&&window.twttr.widgets.load&&window.twttr.widgets.load(),window.__twttr&&window.__twttr.widgets&&window.__twttr.widgets.init||function(t){function e(e){for(var n,i,o=e[0],s=e[1],a=0,c=[];a-1},forIn:i,isObject:s,isEmptyObject:a,toType:o,isType:function(t,e){return t==o(e)},toRealArray:u}},function(t,e){t.exports=window},function(t,e,n){var r=n(6);t.exports=function(){var t=this;this.promise=new r(function(e,n){t.resolve=e,t.reject=n})}},function(t,e,n){var r=n(11),i=/(?:^|(?:https?:)?\/\/(?:www\.)?twitter\.com(?::\d+)?(?:\/intent\/(?:follow|user)\/?\?screen_name=|(?:\/#!)?\/))@?([\w]+)(?:\?|&|$)/i,o=/(?:^|(?:https?:)?\/\/(?:www\.)?twitter\.com(?::\d+)?\/(?:#!\/)?[\w_]+\/status(?:es)?\/)(\d+)/i,s=/^http(s?):\/\/(\w+\.)*twitter\.com([:/]|$)/i,a=/^http(s?):\/\/(ton|pbs)\.twimg\.com/,u=/^#?([^.,<>!\s/#\-()'"]+)$/,c=/twitter\.com(?::\d{2,4})?\/intent\/(\w+)/,d=/^https?:\/\/(?:www\.)?twitter\.com\/\w+\/timelines\/(\d+)/i,l=/^https?:\/\/(?:www\.)?twitter\.com\/i\/moments\/(\d+)/i,f=/^https?:\/\/(?:www\.)?twitter\.com\/(\w+)\/(?:likes|favorites)/i,h=/^https?:\/\/(?:www\.)?twitter\.com\/(\w+)\/lists\/([\w-%]+)/i,p=/^https?:\/\/(?:www\.)?twitter\.com\/i\/live\/(\d+)/i,m=/^https?:\/\/syndication\.twitter\.com\/settings/i,v=/^https?:\/\/(localhost|platform)\.twitter\.com(?::\d+)?\/widgets\/widget_iframe\.(.+)/i,g=/^https?:\/\/(?:www\.)?twitter\.com\/search\?q=(\w+)/i;function w(t){return"string"==typeof t&&i.test(t)&&RegExp.$1.length<=20}function y(t){if(w(t))return RegExp.$1}function b(t,e){var n=r.decodeURL(t);if(e=e||!1,n.screen_name=y(t),n.screen_name)return r.url("https://twitter.com/intent/"+(e?"follow":"user"),n)}function _(t){return"string"==typeof t&&u.test(t)}function E(t){return"string"==typeof t&&o.test(t)}t.exports={isHashTag:_,hashTag:function(t,e){if(e=void 0===e||e,_(t))return(e?"#":"")+RegExp.$1},isScreenName:w,screenName:y,isStatus:E,status:function(t){return E(t)&&RegExp.$1},intentForProfileURL:b,intentForFollowURL:function(t){return b(t,!0)},isTwitterURL:function(t){return s.test(t)},isTwimgURL:function(t){return a.test(t)},isIntentURL:function(t){return c.test(t)},isSettingsURL:function(t){return m.test(t)},isWidgetIframeURL:function(t){return v.test(t)},isSearchUrl:function(t){return g.test(t)},regexen:{profile:i},momentId:function(t){return l.test(t)&&RegExp.$1},collectionId:function(t){return d.test(t)&&RegExp.$1},intentType:function(t){return c.test(t)&&RegExp.$1},likesScreenName:function(t){return f.test(t)&&RegExp.$1},listScreenNameAndSlug:function(t){var e,n,r;if(h.test(t)){e=RegExp.$1,n=RegExp.$2;try{r=decodeURIComponent(n)}catch(t){}return{ownerScreenName:e,slug:r||n}}return!1},eventId:function(t){return p.test(t)&&RegExp.$1}}},function(t,e){t.exports=document},function(t,e,n){var r=n(0),i=[!0,1,"1","on","ON","true","TRUE","yes","YES"],o=[!1,0,"0","off","OFF","false","FALSE","no","NO"];function s(t){return void 0!==t&&null!==t&&""!==t}function a(t){return c(t)&&t%1==0}function u(t){return c(t)&&!a(t)}function c(t){return s(t)&&!isNaN(t)}function d(t){return r.contains(o,t)}function l(t){return r.contains(i,t)}t.exports={hasValue:s,isInt:a,isFloat:u,isNumber:c,isString:function(t){return"string"===r.toType(t)},isArray:function(t){return s(t)&&"array"==r.toType(t)},isTruthValue:l,isFalseValue:d,asInt:function(t){if(a(t))return parseInt(t,10)},asFloat:function(t){if(u(t))return t},asNumber:function(t){if(c(t))return t},asBoolean:function(t){return!(!s(t)||!l(t)&&(d(t)||!t))}}},function(t,e,n){var r=n(1),i=n(21),o=n(49);i.hasPromiseSupport()||(r.Promise=o),t.exports=r.Promise},function(t,e,n){var r=n(0);t.exports=function(t,e){var n=Array.prototype.slice.call(arguments,2);return function(){var i=r.toRealArray(arguments);return t.apply(e,n.concat(i))}}},function(t,e,n){var r=n(51);t.exports=new r("__twttr")},function(t,e){t.exports=location},function(t,e,n){var r=n(0),i=/\b([\w-_]+)\b/g;function o(t){return new RegExp("\\b"+t+"\\b","g")}function s(t,e){t.classList?t.classList.add(e):o(e).test(t.className)||(t.className+=" "+e)}function a(t,e){t.classList?t.classList.remove(e):t.className=t.className.replace(o(e)," ")}function u(t,e){return t.classList?t.classList.contains(e):r.contains(c(t),e)}function c(t){return r.toRealArray(t.classList?t.classList:t.className.match(i))}t.exports={add:s,remove:a,replace:function(t,e,n){if(t.classList&&u(t,e))return a(t,e),void s(t,n);t.className=t.className.replace(o(e),n)},toggle:function(t,e,n){return void 0===n&&t.classList&&t.classList.toggle?t.classList.toggle(e,n):(n?s(t,e):a(t,e),n)},present:u,list:c}},function(t,e,n){var r=n(5),i=n(0);function o(t){return encodeURIComponent(t).replace(/\+/g,"%2B").replace(/'/g,"%27")}function s(t){return decodeURIComponent(t)}function a(t){var e=[];return i.forIn(t,function(t,n){var s=o(t);i.isType("array",n)||(n=[n]),n.forEach(function(t){r.hasValue(t)&&e.push(s+"="+o(t))})}),e.sort().join("&")}function u(t){var e={};return t?(t.split("&").forEach(function(t){var n=t.split("="),r=s(n[0]),o=s(n[1]);if(2==n.length){if(!i.isType("array",e[r]))return r in e?(e[r]=[e[r]],void e[r].push(o)):void(e[r]=o);e[r].push(o)}}),e):{}}t.exports={url:function(t,e){return a(e).length>0?i.contains(t,"?")?t+"&"+a(e):t+"?"+a(e):t},decodeURL:function(t){var e=t&&t.split("?");return 2==e.length?u(e[1]):{}},decode:u,encode:a,encodePart:o,decodePart:s}},function(t,e,n){var r=n(9),i=n(1),o=n(0),s={},a=o.contains(r.href,"tw_debug=true");function u(){}function c(){}function d(){return i.performance&&+i.performance.now()||+new Date}function l(t,e){if(i.console&&i.console[t])switch(e.length){case 1:i.console[t](e[0]);break;case 2:i.console[t](e[0],e[1]);break;case 3:i.console[t](e[0],e[1],e[2]);break;case 4:i.console[t](e[0],e[1],e[2],e[3]);break;case 5:i.console[t](e[0],e[1],e[2],e[3],e[4]);break;default:0!==e.length&&i.console.warn&&i.console.warn("too many params passed to logger."+t)}}t.exports={devError:u,devInfo:c,devObject:function(t,e){},publicError:function(){l("error",o.toRealArray(arguments))},publicLog:function(){l("info",o.toRealArray(arguments))},publicWarn:function(){l("warn",o.toRealArray(arguments))},time:function(t){a&&(s[t]=d())},timeEnd:function(t){a&&s[t]&&(d(),s[t])}}},function(t,e,n){var r=n(19),i=n(5),o=n(11),s=n(0),a=n(115);t.exports=function(t){var e=t.href&&t.href.split("?")[1],n=e?o.decode(e):{},u={lang:a(t),width:t.getAttribute("data-width")||t.getAttribute("width"),height:t.getAttribute("data-height")||t.getAttribute("height"),related:t.getAttribute("data-related"),partner:t.getAttribute("data-partner")};return i.asBoolean(t.getAttribute("data-dnt"))&&r.setOn(),s.forIn(u,function(t,e){var r=n[t];n[t]=i.hasValue(r)?r:e}),s.compact(n)}},function(t,e,n){var r=n(77),i=n(22);t.exports=function(){var t="data-twitter-extracted-"+i.generate();return function(e,n){return r(e,n).filter(function(e){return!e.hasAttribute(t)}).map(function(e){return e.setAttribute(t,"true"),e})}}},function(t,e){function n(t,e,n,r,i,o,s){this.factory=t,this.Sandbox=e,this.srcEl=o,this.targetEl=i,this.parameters=r,this.className=n,this.options=s}n.prototype.destroy=function(){this.srcEl=this.targetEl=null},t.exports=n},function(t,e){t.exports={DM_BUTTON:"twitter-dm-button",FOLLOW_BUTTON:"twitter-follow-button",HASHTAG_BUTTON:"twitter-hashtag-button",MENTION_BUTTON:"twitter-mention-button",MOMENT:"twitter-moment",PERISCOPE:"periscope-on-air",SHARE_BUTTON:"twitter-share-button",TIMELINE:"twitter-timeline",TWEET:"twitter-tweet"}},function(t,e,n){var r=n(6),i=n(19),o=n(53),s=n(36),a=n(5),u=n(0);t.exports=function(t,e,n){var c;return t=t||[],e=e||{},c="ƒ("+t.join(", ")+", target, [options]);",function(){var d,l,f,h,p=Array.prototype.slice.apply(arguments,[0,t.length]),m=Array.prototype.slice.apply(arguments,[t.length]);return m.forEach(function(t){t&&(t.nodeType!==Node.ELEMENT_NODE?u.isType("function",t)?d=t:u.isType("object",t)&&(l=t):f=t)}),p.length!==t.length||0===m.length?(d&&u.async(function(){d(!1)}),r.reject(new Error("Not enough parameters. Expected: "+c))):f?(l=u.aug({},l||{},e),t.forEach(function(t){l[t]=p.shift()}),a.asBoolean(l.dnt)&&i.setOn(),h=s.getExperiments().then(function(t){return o.addWidget(n(l,f,void 0,t))}),d&&h.then(d,function(){d(!1)}),h):(d&&u.async(function(){d(!1)}),r.reject(new Error("No target element specified. Expected: "+c)))}}},function(t,e,n){var r=n(98),i=n(2),o=n(0);function s(t,e){return function(){try{e.resolve(t.call(this))}catch(t){e.reject(t)}}}t.exports={sync:function(t,e){t.call(e)},read:function(t,e){var n=new i;return r.read(s(t,n),e),n.promise},write:function(t,e){var n=new i;return r.write(s(t,n),e),n.promise},defer:function(t,e,n){var a=new i;return o.isType("function",t)&&(n=e,e=t,t=1),r.defer(t,s(e,a),n),a.promise}}},function(t,e,n){var r=n(4),i=n(9),o=n(38),s=n(102),a=n(5),u=n(33),c=!1,d=/https?:\/\/([^/]+).*/i;t.exports={setOn:function(){c=!0},enabled:function(t,e){return!!(c||a.asBoolean(u.val("dnt"))||s.isUrlSensitive(e||i.host)||o.isFramed()&&s.isUrlSensitive(o.rootDocumentLocation())||(t=d.test(t||r.referrer)&&RegExp.$1)&&s.isUrlSensitive(t))}}},function(t,e,n){var r=n(8),i=n(59),o="https://syndication.twitter.com",s="https://platform.twitter.com",a=["https://syndication.twitter.com","https://cdn.syndication.twimg.com","https://localhost.twitter.com:8444"],u=["https://syndication.twitter.com","https://localhost.twitter.com:8445"],c=["https://platform.twitter.com","https://localhost.twitter.com",/^https:\/\/ton\.smf1\.twitter\.com\/syndication-internal\/embed-iframe\/[0-9A-Za-z_-]+\/app/],d=function(t,e){return t.some(function(t){return t instanceof RegExp?t.test(e):t===e})},l=function(){var t=r.get("backendHost");return t&&d(a,t)?t:"https://cdn.syndication.twimg.com"},f=function(){var t=r.get("settingsSvcHost");return t&&d(u,t)?t:o};function h(t,e){var n=[t];return e.forEach(function(t){n.push(function(t){var e=(t||"").toString(),n="/"===e.slice(0,1)?1:0,r=function(t){return"/"===t.slice(-1)}(e)?-1:void 0;return e.slice(n,r)}(t))}),n.join("/")}t.exports={cookieConsent:function(t){var e=t||[];return e.unshift("cookie/consent"),h(f(),e)},embedIframe:function(t,e){var n=t||[],o=s,a=r.get("embedIframeURL");return a&&d(c,a)?h(a,n)+".html":(n.unshift(i.getBaseURLPath(e)),h(o,n)+".html")},embedService:function(t){var e=t||[],n=o;return e.unshift("srv"),h(n,e)},eventVideo:function(t){var e=t||[];return e.unshift("video/event"),h(l(),e)},grid:function(t){var e=t||[];return e.unshift("grid/collection"),h(l(),e)},moment:function(t){var e=t||[];return e.unshift("moments"),h(l(),e)},settings:function(t){var e=t||[];return e.unshift("settings"),h(f(),e)},timeline:function(t){var e=t||[];return e.unshift("timeline"),h(l(),e)},tweetBatch:function(t){var e=t||[];return e.unshift("tweets.json"),h(l(),e)},video:function(t){var e=t||[];return e.unshift("widgets/video"),h(l(),e)}}},function(t,e,n){var r=n(4),i=n(92),o=n(1),s=n(0),a=i.userAgent;function u(t){return/(Trident|MSIE|Edge[/ ]?\d)/.test(t=t||a)}t.exports={retina:function(t){return(t=t||o).devicePixelRatio?t.devicePixelRatio>=1.5:!!t.matchMedia&&t.matchMedia("only screen and (min-resolution: 144dpi)").matches},anyIE:u,ie9:function(t){return/MSIE 9/.test(t=t||a)},ie10:function(t){return/MSIE 10/.test(t=t||a)},ios:function(t){return/(iPad|iPhone|iPod)/.test(t=t||a)},android:function(t){return/^Mozilla\/5\.0 \(Linux; (U; )?Android/.test(t=t||a)},canPostMessage:function(t,e){return t=t||o,e=e||a,t.postMessage&&!(u(e)&&t.opener)},touch:function(t,e,n){return t=t||o,e=e||i,n=n||a,"ontouchstart"in t||/Opera Mini/.test(n)||e.msMaxTouchPoints>0},cssTransitions:function(){var t=r.body.style;return void 0!==t.transition||void 0!==t.webkitTransition||void 0!==t.mozTransition||void 0!==t.oTransition||void 0!==t.msTransition},hasPromiseSupport:function(){return!!(o.Promise&&o.Promise.resolve&&o.Promise.reject&&o.Promise.all&&o.Promise.race&&(new o.Promise(function(e){t=e}),s.isType("function",t)));var t},hasIntersectionObserverSupport:function(){return!!o.IntersectionObserver},hasPerformanceInformation:function(){return o.performance&&o.performance.getEntriesByType}}},function(t,e){var n="i",r=0,i=0;t.exports={generate:function(){return n+String(+new Date)+Math.floor(1e5*Math.random())+r++},deterministic:function(){return n+String(i++)}}},function(t,e,n){var r=n(50),i=n(52),o=n(0);t.exports=o.aug(r.get("events")||{},i.Emitter)},function(t,e,n){var r=n(6),i=n(2);function o(t,e){return t.then(e,e)}function s(t){return t instanceof r}t.exports={always:o,allResolved:function(t){var e;return void 0===t?r.reject(new Error("undefined is not an object")):Array.isArray(t)?(e=t.length)?new r(function(n,r){var i=0,o=[];function a(){(i+=1)===e&&(0===o.length?r():n(o))}function u(t){o.push(t),a()}t.forEach(function(t){s(t)?t.then(u,a):u(t)})}):r.resolve([]):r.reject(new Error("Type error"))},some:function(t){var e;return e=(t=t||[]).length,t=t.filter(s),e?e!==t.length?r.reject("non-Promise passed to .some"):new r(function(e,n){var r=0;function i(){(r+=1)===t.length&&n()}t.forEach(function(t){t.then(e,i)})}):r.reject("no promises passed to .some")},isPromise:s,allSettled:function(t){function e(){}return r.all((t||[]).map(function(t){return o(t,e)}))},timeout:function(t,e){var n=new i;return setTimeout(function(){n.reject(new Error("Promise timed out"))},e),t.then(function(t){n.resolve(t)},function(t){n.reject(t)}),n.promise}}},function(t,e,n){var r=n(1).JSON;t.exports={stringify:r.stringify||r.encode,parse:r.parse||r.decode}},function(t,e,n){var r=n(27),i=n(108);t.exports=r.build([i])},function(t,e,n){var r=n(39),i=n(105),o=n(7);(r=Object.create(r)).build=o(r.build,null,i),t.exports=r},function(t,e,n){var r=n(39),i=n(40),o=n(7);(r=Object.create(r)).build=o(r.build,null,i),t.exports=r},function(t,e,n){var r=n(79),i=n(80),o=n(81),s=n(9),a=n(71),u=n(82),c=n(19),d=n(5),l=n(22),f=n(0);function h(t){if(!t||!t.headers)throw new Error("unexpected response schema");return{html:t.body,config:t.config,pollInterval:1e3*parseInt(t.headers.xPolling,10)||null,maxCursorPosition:t.headers.maxPosition,minCursorPosition:t.headers.minPosition}}function p(t){if(t&&t.headers)throw new Error(t.headers.status);throw t instanceof Error?t:new Error(t)}t.exports=function(t){t.params({height:{transform:d.asInt},instanceId:{required:!0,fallback:l.deterministic},lang:{required:!0,transform:a.matchLanguage,fallback:"en"},theme:{},tweetLimit:{transform:d.asInt}}),t.defineProperty("endpoint",{get:function(){throw new Error("endpoint not specified")}}),t.defineProperty("pollEndpoint",{get:function(){return this.endpoint}}),t.define("cbId",function(t){var e=t?"_new":"_old";return"tl_"+this.params.instanceId+"_"+this.id+e}),t.define("queryParams",function(){return{lang:this.params.lang,tz:u.getTimezoneOffset(),t:r(),domain:s.host,tweet_limit:this.params.tweetLimit,dnt:c.enabled()}}),t.define("horizonQueryParams",function(){return f.compact({dnt:c.enabled(),limit:this.params.tweetLimit,lang:this.params.lang,maxHeight:this.params.height,theme:this.params.theme})}),t.define("fetch",function(){return i.fetch(this.endpoint,this.queryParams(),o,this.cbId()).then(h,p)}),t.define("poll",function(t,e){var n,r;return n={since_id:(t=t||{}).sinceId,max_id:t.maxId,min_position:t.minPosition,max_position:t.maxPosition},r=f.aug(this.queryParams(),n),i.fetch(this.pollEndpoint,r,o,this.cbId(e)).then(h,p)})}},function(t,e,n){var r=n(52).makeEmitter();t.exports={emitter:r,START:"start",ALL_WIDGETS_RENDER_START:"all_widgets_render_start",ALL_WIDGETS_RENDER_END:"all_widgets_render_end",ALL_WIDGETS_AND_IMAGES_LOADED:"all_widgets_and_images_loaded"}},function(t,e,n){var r=n(4),i=n(0);t.exports=function(t,e,n){var o;if(n=n||r,t=t||{},e=e||{},t.name){try{o=n.createElement('')}catch(e){(o=n.createElement("iframe")).name=t.name}delete t.name}else o=n.createElement("iframe");return t.id&&(o.id=t.id,delete t.id),o.allowtransparency="true",o.scrolling="no",o.setAttribute("frameBorder",0),o.setAttribute("allowTransparency",!0),i.forIn(t,function(t,e){o.setAttribute(t,e)}),i.forIn(e,function(t,e){o.style[t]=e}),o}},function(t,e,n){var r=n(27),i=n(122);t.exports=r.build([i])},function(t,e,n){var r,i=n(4);function o(t){var e,n,o,s=0;for(r={},e=(t=t||i).getElementsByTagName("meta");e[s];s++){if(n=e[s],/^twitter:/.test(n.getAttribute("name")))o=n.getAttribute("name").replace(/^twitter:/,"");else{if(!/^twitter:/.test(n.getAttribute("property")))continue;o=n.getAttribute("property").replace(/^twitter:/,"")}r[o]=n.getAttribute("content")||n.getAttribute("value")}}o(),t.exports={init:o,val:function(t){return r[t]}}},function(t,e,n){var r=n(0),i=n(45);t.exports={closest:function t(e,n,o){var s;if(n)return o=o||n&&n.ownerDocument,s=r.isType("function",e)?e:function(t){return function(e){return!!e.tagName&&i(e,t)}}(e),n===o?s(n)?n:void 0:s(n)?n:t(s,n.parentNode,o)}}},function(t,e,n){var r=n(10),i={},o=-1,s={};function a(t){var e=t.getAttribute("data-twitter-event-id");return e||(t.setAttribute("data-twitter-event-id",++o),o)}function u(t,e,n){var r=0,i=t&&t.length||0;for(r=0;r1?(e=Math.floor(t.item_ids.length/2),n=t.item_ids.slice(0,e),r={},i=t.item_ids.slice(e),o={},n.forEach(function(e){r[e]=t.item_details[e]}),i.forEach(function(e){o[e]=t.item_details[e]}),[l.aug({},t,{item_ids:n,item_details:r}),l.aug({},t,{item_ids:i,item_details:o})]):[t]},stringify:function(t){var e,n=Array.prototype.toJSON;return delete Array.prototype.toJSON,e=u.stringify(t),n&&(Array.prototype.toJSON=n),e},CLIENT_EVENT_ENDPOINT:p,RUFOUS_REDIRECT:"https://platform.twitter.com/jot.html"}},function(t,e,n){var r=n(9),i=n(75),o=n(0),s=i.getCanonicalURL()||r.href,a=s;t.exports={isFramed:function(){return s!==a},rootDocumentLocation:function(t){return t&&o.isType("string",t)&&(s=t),s},currentDocumentLocation:function(){return a}}},function(t,e,n){var r=n(103),i=n(104),o=n(0);t.exports={couple:function(){return o.toRealArray(arguments)},build:function(t,e,n){var o=new t;return(e=i(r(e||[]))).forEach(function(t){t.call(null,o)}),o.build(n)}}},function(t,e,n){var r=n(106),i=n(0),o=n(41);function s(){this.Component=this.factory(),this._adviceArgs=[],this._lastArgs=[]}i.aug(s.prototype,{factory:o,build:function(t){var e=this;return this.Component,i.aug(this.Component.prototype.boundParams,t),this._adviceArgs.concat(this._lastArgs).forEach(function(t){(function(t,e,n){var r=this[e];if(!r)throw new Error(e+" does not exist");this[e]=t(r,n)}).apply(e.Component.prototype,t)}),delete this._lastArgs,delete this._adviceArgs,this.Component},params:function(t){var e=this.Component.prototype.paramConfigs;t=t||{},this.Component.prototype.paramConfigs=i.aug({},t,e)},define:function(t,e){if(t in this.Component.prototype)throw new Error(t+" has previously been defined");this.override(t,e)},defineStatic:function(t,e){this.Component[t]=e},override:function(t,e){this.Component.prototype[t]=e},defineProperty:function(t,e){if(t in this.Component.prototype)throw new Error(t+" has previously been defined");this.overrideProperty(t,e)},overrideProperty:function(t,e){var n=i.aug({configurable:!0},e);Object.defineProperty(this.Component.prototype,t,n)},before:function(t,e){this._adviceArgs.push([r.before,t,e])},after:function(t,e){this._adviceArgs.push([r.after,t,e])},around:function(t,e){this._adviceArgs.push([r.around,t,e])},last:function(t,e){this._lastArgs.push([r.after,t,e])}}),t.exports=s},function(t,e,n){var r=n(0);function i(){return!0}function o(t){return t}t.exports=function(){function t(t){var e=this;t=t||{},this.params=Object.keys(this.paramConfigs).reduce(function(n,s){var a=[],u=e.boundParams,c=e.paramConfigs[s],d=c.validate||i,l=c.transform||o;if(s in u&&a.push(u[s]),s in t&&a.push(t[s]),a="fallback"in c?a.concat(c.fallback):a,n[s]=function(t,e,n){var i=null;return t.some(function(t){if(t=r.isType("function",t)?t():t,e(t))return i=n(t),!0}),i}(a,d,l),c.required&&null==n[s])throw new Error(s+" is a required parameter");return n},{}),this.initialize()}return r.aug(t.prototype,{paramConfigs:{},boundParams:{},initialize:function(){}}),t}},function(t,e,n){var r=n(101),i=n(76),o=new(n(110))(function(t){(!function(t){return 1===t.length&&i.canFlushOneItem(t[0])}(t)?function(t){r.init(),t.forEach(function(t){var e=t.input.namespace,n=t.input.data,i=t.input.offsite,o=t.input.version;r.clientEvent(e,n,i,o)}),r.flush().then(function(){t.forEach(function(t){t.taskDoneDeferred.resolve()})},function(){t.forEach(function(t){t.taskDoneDeferred.reject()})})}:function(t){t.forEach(function(t){var e=t.input.namespace,n=t.input.data,r=t.input.offsite,o=t.input.version;i.clientEvent(e,n,r,o),t.taskDoneDeferred.resolve()})})(t)});t.exports={scribe:function(t,e,n,r){return o.add({namespace:t,data:e,offsite:n,version:r})},pause:function(){o.pause()},resume:function(){o.resume()}}},function(t,e,n){var r,i=n(10),o=n(4),s=n(1),a=n(33),u=n(54),c=n(5),d=n(22),l="csptest";t.exports={inlineStyle:function(){var t=l+d.generate(),e=o.createElement("div"),n=o.createElement("style"),f="."+t+" { visibility: hidden; }";return!!o.body&&(c.asBoolean(a.val("widgets:csp"))&&(r=!1),void 0!==r?r:(e.style.display="none",i.add(e,t),n.type="text/css",n.appendChild(o.createTextNode(f)),o.body.appendChild(n),o.body.appendChild(e),r="hidden"===s.getComputedStyle(e).visibility,u(e),u(n),r))}}},function(t,e,n){var r=n(1);t.exports=function(t,e,n){var i,o=0;return n=n||null,function s(){var a=n||this,u=arguments,c=+new Date;if(r.clearTimeout(i),c-o>e)return o=c,void t.apply(a,u);i=r.setTimeout(function(){s.apply(a,u)},e)}}},function(t,e,n){var r=n(1).HTMLElement,i=r.prototype.matches||r.prototype.matchesSelector||r.prototype.webkitMatchesSelector||r.prototype.mozMatchesSelector||r.prototype.msMatchesSelector||r.prototype.oMatchesSelector;t.exports=function(t,e){if(i)return i.call(t,e)}},function(t){t.exports={version:"9fd78d5:1638479056965"}},function(t,e){t.exports=function(t){var e=t.getBoundingClientRect();return{width:e.width,height:e.height}}},function(t,e,n){var r=n(12).publicWarn;t.exports=function(){r("Warning: This Timeline type belongs to a group that will not be supported in the future (Likes, Collections, & Moments). It is not recommended for use. \n\t","* Twitter will continue to support Profile and List Timelines \n\t","* You can learn more about this change in our announcement: \n\t","https://twittercommunity.com/t/removing-support-for-embedded-like-collection-and-moment-timelines/150313 \n\t","* In order to create a new Embedded Timeline, visit: https://publish.twitter.com")}},function(t,e,n){
/*!
* @overview es6-promise - a tiny implementation of Promises/A+.
* @copyright Copyright (c) 2014 Yehuda Katz, Tom Dale, Stefan Penner and contributors (Conversion to ES6 API by Jake Archibald)
diff --git a/files/assets/js/userpage.js b/files/assets/js/userpage.js
index 3cb7960bb..451402f2c 100644
--- a/files/assets/js/userpage.js
+++ b/files/assets/js/userpage.js
@@ -1,68 +1,32 @@
-function post_toast_callback(url, data, callback) {
- var xhr = new XMLHttpRequest();
- xhr.open("POST", url, true);
- var form = new FormData()
+let uid = document.getElementById('uid')
- if(typeof data === 'object' && data !== null) {
- for(let k of Object.keys(data)) {
- form.append(k, data[k]);
- }
+if (uid)
+{
+ uid = uid.innerHTML
+
+ let audio = new Audio(`/songs/${uid}`);
+ audio.loop=true;
+
+ function pause() {
+ audio.pause();
+ document.getElementById("pause1").classList.toggle("d-none");
+ document.getElementById("play1").classList.toggle("d-none");
+ document.getElementById("pause2").classList.toggle("d-none");
+ document.getElementById("play2").classList.toggle("d-none");
}
- form.append("formkey", formkey());
- xhr.withCredentials=true;
-
- xhr.onload = function() {
- let result = callback(xhr);
- if (xhr.status >= 200 && xhr.status < 300) {
- var myToast = new bootstrap.Toast(document.getElementById('toast-post-error'));
- myToast.hide();
-
- var myToast = new bootstrap.Toast(document.getElementById('toast-post-success'));
- myToast.show();
-
- try {
- if(typeof result == "string") {
- document.getElementById('toast-post-success-text').innerText = result;
- } else {
- document.getElementById('toast-post-success-text').innerText = JSON.parse(xhr.response)["message"];
- }
- } catch(e) {
- document.getElementById('toast-post-success-text').innerText = "Action successful!";
- }
-
- return true;
- } else {
- var myToast = new bootstrap.Toast(document.getElementById('toast-post-success'));
- myToast.hide();
-
- var myToast = new bootstrap.Toast(document.getElementById('toast-post-error'));
- myToast.show();
-
- try {
- if(typeof result == "string") {
- document.getElementById('toast-post-error-text').innerText = result;
- } else {
- document.getElementById('toast-post-error-text').innerText = JSON.parse(xhr.response)["error"];
- }
- return false
- } catch(e) {}
-
- return false;
- }
- };
-
- xhr.send(form);
-
-}
-
-function toggleElement(group, id) {
- for(let el of document.getElementsByClassName(group)) {
- if(el.id != id) {
- el.classList.add('hidden');
- }
+ function play() {
+ audio.play();
+ document.getElementById("pause1").classList.toggle("d-none");
+ document.getElementById("play1").classList.toggle("d-none");
+ document.getElementById("pause2").classList.toggle("d-none");
+ document.getElementById("play2").classList.toggle("d-none");
}
- document.getElementById(id).classList.toggle('hidden');
-}
-
+ window.addEventListener('load', (e) => {
+ audio.play();
+ document.getElementById('userpage').addEventListener('click', () => {
+ if (audio.paused) audio.play();
+ }, {once : true});
+ });
+}
\ No newline at end of file
diff --git a/files/assets/js/viewmore.js b/files/assets/js/viewmore.js
index b9e997360..1146119cd 100644
--- a/files/assets/js/viewmore.js
+++ b/files/assets/js/viewmore.js
@@ -1,20 +1,20 @@
-function loadMore(pid,sort,offset,id,trigger) {
- const btn = document.getElementById(trigger) // trigger button
- const el = document.getElementById(id) // target element to populate
- const form = new FormData();
- const xhr = new XMLHttpRequest();
-
- btn.classList.toggle('animate-pulse');
-
+function viewmore(pid,sort,offset) {
+ btn = document.getElementById("viewbtn");
+ btn.disabled = true;
+ btn.innerHTML = "Requesting...";
+ var form = new FormData();
+ form.append("formkey", formkey());
+ var xhr = new XMLHttpRequest();
xhr.open("post", `/viewmore/${pid}/${sort}/${offset}`);
xhr.withCredentials=true;
xhr.onload=function(){
if (xhr.status==200) {
- btn.style.display = "none"; // hide button
- el.innerHTML += xhr.response.replace(/data-src/g, 'src').replace(/data-cfsrc/g, 'src').replace(/style="display:none;visibility:hidden;"/g, ''); // replace desired element with response html
- initializeBootstrap()
- } else {
- btn.disabled = false; // enable our button if GET fails
+ document.getElementById(`viewmore-${offset}`).innerHTML = xhr.response.replace(/data-src/g, 'src').replace(/data-cfsrc/g, 'src').replace(/style="display:none;visibility:hidden;"/g, '');
+ var tooltipTriggerList = [].slice.call(document.querySelectorAll('[data-bs-toggle="tooltip"]'));
+ tooltipTriggerList.map(function(element){
+ return new bootstrap.Tooltip(element);
+ });
+ popovertrigger()
}
}
xhr.send(form)
diff --git a/files/templates/Bets.html b/files/templates/CHRISTMAS/Bets.html
similarity index 100%
rename from files/templates/Bets.html
rename to files/templates/CHRISTMAS/Bets.html
diff --git a/files/templates/Poll.html b/files/templates/CHRISTMAS/Poll.html
similarity index 100%
rename from files/templates/Poll.html
rename to files/templates/CHRISTMAS/Poll.html
diff --git a/files/templates/ProfilePopover.html b/files/templates/CHRISTMAS/ProfilePopover.html
similarity index 100%
rename from files/templates/ProfilePopover.html
rename to files/templates/CHRISTMAS/ProfilePopover.html
diff --git a/files/templates/CHRISTMAS/admin/admin_home.html b/files/templates/CHRISTMAS/admin/admin_home.html
new file mode 100644
index 000000000..dfb3e5f92
--- /dev/null
+++ b/files/templates/CHRISTMAS/admin/admin_home.html
@@ -0,0 +1,60 @@
+{% extends "default.html" %}
+
+{% block title %}
+{{'SITE_NAME' | app_config}}
+
+{% endblock %}
+
+{% block content %}
+
+
Admin Tools
+
+
Content
+
+
+
Users
+
+
+
Safety
+
+
+
Grant
+
+
+
API Access Control
+
+
+
Statistics
+
+
+
Configuration
+
+
+
+
+ Disable signups
+
+
+{% endblock %}
\ No newline at end of file
diff --git a/files/templates/CHRISTMAS/admin/alt_votes.html b/files/templates/CHRISTMAS/admin/alt_votes.html
new file mode 100644
index 000000000..b448bce5b
--- /dev/null
+++ b/files/templates/CHRISTMAS/admin/alt_votes.html
@@ -0,0 +1,89 @@
+{% extends "default.html" %}
+
+{% block title %}
+{{'SITE_NAME' | app_config}}
+
+{% endblock %}
+
+{% block content %}
+
+
+
+
+
+
+
Vote Info
+
+
+
+{% if u1 and u2 %}
+
+
+
Analysis
+
+
+
+
+
+
+
+ @{{u1.username}} only(% unique)
+ Both
+ @{{u2.username}} only (% unique)
+
+
+
+
+ Post Upvotes
+ {{data['u1_only_post_ups']}} ({{data['u1_post_ups_unique']}}%)
+ {{data['both_post_ups']}}
+ {{data['u2_only_post_ups']}} ({{data['u2_post_ups_unique']}}%)
+
+
+ Post Downvotes
+ {{data['u1_only_post_downs']}} ({{data['u1_post_downs_unique']}}%)
+ {{data['both_post_downs']}}
+ {{data['u2_only_post_downs']}} ({{data['u2_post_downs_unique']}}%)
+
+
+ Comment Upvotes
+ {{data['u1_only_comment_ups']}} ({{data['u1_comment_ups_unique']}}%)
+ {{data['both_comment_ups']}}
+ {{data['u2_only_comment_ups']}} ({{data['u2_comment_ups_unique']}}%)
+
+
+ Comment Downvotes
+ {{data['u1_only_comment_downs']}} ({{data['u1_comment_downs_unique']}}%)
+ {{data['both_comment_downs']}}
+ {{data['u2_only_comment_downs']}} ({{data['u2_comment_downs_unique']}}%)
+
+
+
+
Link Accounts
+
+{% if u2 in u1.alts %}
+
Accounts are known alts of eachother.
+{% else %}
+
+
Two accounts controlled by different people should have most uniqueness percentages at or above 70-80%
+
A sockpuppet account will have its uniqueness percentages significantly lower.
+
+
Link Accounts
+
+
+{% endif %}
+
+{% endif %}
+
+
+{% endblock %}
\ No newline at end of file
diff --git a/files/templates/CHRISTMAS/admin/app.html b/files/templates/CHRISTMAS/admin/app.html
new file mode 100644
index 000000000..f53e048f3
--- /dev/null
+++ b/files/templates/CHRISTMAS/admin/app.html
@@ -0,0 +1,66 @@
+{% extends "default.html" %}
+
+{% block title %}
+API App Administration
+
+{% endblock %}
+
+{% block content %}
+
+
+
+
+{% if listing %}
+ {% include "submission_listing.html" %}
+{% elif comments %}
+ {% include "comments.html" %}
+{% endif %}
+
+
+
+
+
+
+ Error, please try again later.
+
+
+
+
+
+{% endblock %}
\ No newline at end of file
diff --git a/files/templates/CHRISTMAS/admin/apps.html b/files/templates/CHRISTMAS/admin/apps.html
new file mode 100644
index 000000000..9b1202f32
--- /dev/null
+++ b/files/templates/CHRISTMAS/admin/apps.html
@@ -0,0 +1,68 @@
+{% extends "default.html" %}
+
+{% block title %}
+API App Administration
+
+{% endblock %}
+
+{% block content %}
+
+ {% for app in apps %}
+
+ {% endfor %}
+
+
+
+
+
+ Error, please try again later.
+
+
+
+
+
+{% endblock %}
\ No newline at end of file
diff --git a/files/templates/CHRISTMAS/admin/awards.html b/files/templates/CHRISTMAS/admin/awards.html
new file mode 100644
index 000000000..e4606f753
--- /dev/null
+++ b/files/templates/CHRISTMAS/admin/awards.html
@@ -0,0 +1,73 @@
+{% extends "default.html" %}
+
+{% block title %}
+Grant User Award
+{% endblock %}
+
+{% block pagetype %}message{% endblock %}
+
+{% block content %}
+
+
+
+ {% if error %}
+
+
+
+ {{error}}
+
+
+
+
+
+ {% endif %}
+ {% if msg %}
+
+
+
+ {{msg}}
+
+
+
+
+
+ {% endif %}
+
+
+
+
User Award Grant
+
+
+
+
+ {% if 'rdrama.net' not in request.host or v.admin_level > 2 %}
+
+ {% endif %}
+
+
+{% endblock %}
\ No newline at end of file
diff --git a/files/templates/CHRISTMAS/admin/badge_grant.html b/files/templates/CHRISTMAS/admin/badge_grant.html
new file mode 100644
index 000000000..5bdc1596d
--- /dev/null
+++ b/files/templates/CHRISTMAS/admin/badge_grant.html
@@ -0,0 +1,87 @@
+{% extends "default.html" %}
+
+{% block title %}
+Badge Grant
+{% endblock %}
+
+{% block pagetype %}message{% endblock %}
+
+{% block content %}
+
+
+ {% if error %}
+
+
+
+ {{error}}
+
+
+
+
+
+ {% endif %}
+ {% if msg %}
+
+
+
+ {{msg}}
+
+
+
+
+
+ {% endif %}
+
+
+
+
Badge Grant
+
+
+
+
+
+
+
+{% endblock %}
diff --git a/files/templates/CHRISTMAS/admin/banned_domains.html b/files/templates/CHRISTMAS/admin/banned_domains.html
new file mode 100644
index 000000000..dc931c16b
--- /dev/null
+++ b/files/templates/CHRISTMAS/admin/banned_domains.html
@@ -0,0 +1,37 @@
+{% extends "default.html" %}
+
+{% block title %}
+ Banned Domains
+{% endblock %}
+
+{% block content %}
+
+
+
+
+
+
+
+
+ Domain
+ Ban reason
+
+
+
+ {% for domain in banned_domains %}
+
+ {{domain.domain}}
+ {{domain.reason}}
+
+ {% endfor %}
+
+
+
+
+
+{% endblock %}
\ No newline at end of file
diff --git a/files/templates/CHRISTMAS/admin/content_stats.html b/files/templates/CHRISTMAS/admin/content_stats.html
new file mode 100644
index 000000000..4485750c2
--- /dev/null
+++ b/files/templates/CHRISTMAS/admin/content_stats.html
@@ -0,0 +1,25 @@
+{% extends "default.html" %}
+
+{% block title %}
+{{'SITE_NAME' | app_config}}
+
+{% endblock %}
+
+{% block content %}
+
+
+
+
+ Statistic
+ Value
+
+
+{% for entry in data %}
+
+ {{entry}}
+ {{data[entry]}}
+
+{% endfor %}
+
+
+{% endblock %}
\ No newline at end of file
diff --git a/files/templates/CHRISTMAS/admin/image_posts.html b/files/templates/CHRISTMAS/admin/image_posts.html
new file mode 100644
index 000000000..7a3feb461
--- /dev/null
+++ b/files/templates/CHRISTMAS/admin/image_posts.html
@@ -0,0 +1,56 @@
+{% extends "userpage.html" %}
+
+{% block adminpanel %}{% endblock %}
+{% block pagetype %}userpage{% endblock %}
+{% block banner %}{% endblock %}
+{% block mobileBanner %}{% endblock %}
+{% block desktopBanner %}{% endblock %}
+{% block desktopUserBanner %}{% endblock %}
+{% block mobileUserBanner %}{% endblock %}
+
+{% block postNav %}{% endblock %}
+
+{% block fixedMobileBarJS %}
+{% endblock %}
+
+{% block title %}
+Image feed
+
+{% endblock %}
+
+
+{% block content %}
+
+
+
+
+
+ {% block listing %}
+
+ {% include "submission_listing.html" %}
+
+ {% endblock %}
+
+
+{% endblock %}
+
+{% block pagenav %}
+
+
+
+{% endblock %}
diff --git a/files/templates/CHRISTMAS/admin/new_users.html b/files/templates/CHRISTMAS/admin/new_users.html
new file mode 100644
index 000000000..f20a160cd
--- /dev/null
+++ b/files/templates/CHRISTMAS/admin/new_users.html
@@ -0,0 +1,9 @@
+{% extends "mine.html" %}
+
+{% block maincontent %}
+
+
+{% include "user_listing.html" %}
+{% endblock %}
+
+{% block navbar %}{% endblock %}
\ No newline at end of file
diff --git a/files/templates/CHRISTMAS/admin/removed_posts.html b/files/templates/CHRISTMAS/admin/removed_posts.html
new file mode 100644
index 000000000..4dbfabcbb
--- /dev/null
+++ b/files/templates/CHRISTMAS/admin/removed_posts.html
@@ -0,0 +1,59 @@
+{% extends "admin/image_posts.html" %}
+
+
+{% block title %}
+Removed Content
+
+{% endblock %}
+
+{% block content %}
+
+
+
+
+
+
+
+ {% block listing %}
+
+ {% include "submission_listing.html" %}
+
+ {% endblock %}
+
+
+{% endblock %}
+
+{% block pagenav %}
+
+
+
+{% endblock %}
diff --git a/files/templates/CHRISTMAS/admin/reported_comments.html b/files/templates/CHRISTMAS/admin/reported_comments.html
new file mode 100644
index 000000000..c264aa8cf
--- /dev/null
+++ b/files/templates/CHRISTMAS/admin/reported_comments.html
@@ -0,0 +1,24 @@
+{% extends "admin/reported_posts.html" %}
+
+
+
+{% block listing %}
+
+
+
+ {% with comments=listing %}
+ {% include "comments.html" %}
+ {% endwith %}
+ {% if not listing %}
+
+
+
+
There are no comments here (yet).
+
+
+
+ {% endif %}
+
+
+{% endblock %}
+
diff --git a/files/templates/CHRISTMAS/admin/reported_posts.html b/files/templates/CHRISTMAS/admin/reported_posts.html
new file mode 100644
index 000000000..b860f07ed
--- /dev/null
+++ b/files/templates/CHRISTMAS/admin/reported_posts.html
@@ -0,0 +1,83 @@
+{% extends "userpage.html" %}
+
+{% block adminpanel %}{% endblock %}
+{% block pagetype %}userpage{% endblock %}
+{% block banner %}{% endblock %}
+{% block mobileBanner %}{% endblock %}
+{% block desktopBanner %}{% endblock %}
+{% block desktopUserBanner %}{% endblock %}
+{% block mobileUserBanner %}{% endblock %}
+
+ {% block postNav %}
+
+ {% endblock %}
+
+
+{% block fixedMobileBarJS %}
+{% endblock %}
+
+{% block title %}
+Reported Posts
+
+{% endblock %}
+
+{% block content %}
+
+
+
+
+
+ {% block listing %}
+
+ {% include "submission_listing.html" %}
+
+ {% endblock %}
+
+
+{% endblock %}
+
+{% block pagenav %}
+
+
+
+{% endblock %}
diff --git a/files/templates/CHRISTMAS/admins.html b/files/templates/CHRISTMAS/admins.html
new file mode 100644
index 000000000..a57b82259
--- /dev/null
+++ b/files/templates/CHRISTMAS/admins.html
@@ -0,0 +1,31 @@
+{% extends "settings2.html" %}
+
+{% block pagetitle %}Admins{% endblock %}
+
+{% block content %}
+
+Admins
+
+
+
+
+ Name
+ Score
+
+
+ {% for user in admins %}
+
+
+
+
+ {{user.username}}
+
+ {% if user.admin_level == 1 and v and v.admin_level > 1 %}
+
+ {% endif %}
+
+ {{user.truecoins}}
+
+ {% endfor %}
+
+{% endblock %}
\ No newline at end of file
diff --git a/files/templates/CHRISTMAS/agendaposters.html b/files/templates/CHRISTMAS/agendaposters.html
new file mode 100644
index 000000000..5a2168b70
--- /dev/null
+++ b/files/templates/CHRISTMAS/agendaposters.html
@@ -0,0 +1,19 @@
+{% extends "settings2.html" %}
+
+{% block content %}
+
+
+
+ #
+ Name
+
+
+{% for user in users %}
+
+ {{loop.index}}
+ {{user.username}}
+
+{% endfor %}
+
+
+{% endblock %}
diff --git a/files/templates/CHRISTMAS/api.html b/files/templates/CHRISTMAS/api.html
new file mode 100644
index 000000000..94dee7924
--- /dev/null
+++ b/files/templates/CHRISTMAS/api.html
@@ -0,0 +1,82 @@
+{% extends "default.html" %}
+
+{% block title %}
+{{'SITE_NAME' | app_config}} - API
+
+{% endblock %}
+
+{% block content %}
+
+
+
+
+API Guide for Bots
+
+ This page explains how to obtain and use an access token.
+Step 1: Create your Application
+In the apps tab of Drama settings , fill in and submit the form to request an access token. You will need:
+
+an application name
+a Redirect URI. May not use HTTP unless using localhost (use HTTPS instead).
+a brief description of what your bot is intended to do
+
+Don't worry too much about accuracy; you will be able to change all of these later.
+Drama administrators will review and approve or deny your request for an access token. You'll know when your request has been approved when you get a private message with an access token tied to your account.
+DO NOT reveal your Client ID or Access Token. Anyone with these information will be able to pretend to be you. You are responsible for keeping them a secret!
+Step 2: Using the Access Token
+To use the access token, include the following header in subsequent API requests to Drama: Authorization: access_token_goes_here
+Python example:
+ import requests
+
+ headers={"Authorization": "access_token_goes_here"}
+
+ url="https://rdrama.net/@carpathianflorist"
+
+ r=requests.get(url, headers=headers)
+
+ print(r.json())
+
+The expected result of this would be a large JSON representation of the posts posted by @carpathianflorist
+
+
+
+
+
+
+
+
+
+API Guide for Applications
+
+The OAuth2 authorization flow is used to enable users to authorize third-party applications to access their Drama account without having to provide their login information to the application.
+This page explains how to obtain API application keys, how to prompt a user for authorization, and how to obtain and use access tokens.
+Step 1: Create your Application
+In the apps tab of Drama settings , fill in and submit the form to request new API keys. You will need:
+
+an application name
+a Redirect URI. May not use HTTP unless using localhost (use HTTPS instead).
+a brief description of what your application is intended to do
+
+Don't worry too much about accuracy; you will be able to change all of these later.
+Drama administrators will review and approve or deny your request for API keys. You'll know when your request has been approved when you get a private message with an access token tied to your account.
+DO NOT reveal your Client ID or Access Token. Anyone with these information will be able to pretend to be you. You are responsible for keeping them a secret!
+Step 2: Prompt Your User for Authorization
+Send your user to https://rdrama.net/authorize/?client_id=YOUR_CLIENT_ID
+If done correctly, the user will see that your application wants to access their Drama account, and be prompted to approve or deny the request.
+Step 3: Catch the redirect
+The user clicks "Authorize". Drama will redirect the user's browser to GET the designated redirect URI. The access token URL parameter will be included in the redirect, which your server should process.
+Step 4: Using the Access Token
+To use the access token, include the following header in subsequent API requests to Drama: Authorization: access_token_goes_here
+Python example:
+ import requests
+
+ headers={"Authorization": "access_token_goes_here"}
+
+ url="https://rdrama.net/@carpathianflorist"
+
+ r=requests.get(url, headers=headers)
+
+ print(r.json())
+
+The expected result of this would be a large JSON representation of the submissions submitted by @carpathianflorist
+{% endblock %}
\ No newline at end of file
diff --git a/files/templates/CHRISTMAS/authforms.html b/files/templates/CHRISTMAS/authforms.html
new file mode 100644
index 000000000..aea28f07b
--- /dev/null
+++ b/files/templates/CHRISTMAS/authforms.html
@@ -0,0 +1,103 @@
+
+
+
+
+
+
+
+
+
+
+
+ {% block pagetitle %}{{'SITE_NAME' | app_config}}{% endblock %}
+
+
+ {% if v %}
+
+
+ {% if v.agendaposter %} {% elif v.css %} {% endif %}
+ {% else %}
+
+
+ {% endif %}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
{% block authtitle %}{% endblock %}
+
+
{% block authtext %}{% endblock %}
+
+ {% if error %}
+
+
+
+ {{error}}
+
+
+
+
+
+ {% endif %}
+ {% if msg %}
+
+
+
+ {{msg}}
+
+
+
+
+
+ {% endif %}
+
+ {% block content %}
+ {% endblock %}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/files/templates/CHRISTMAS/award_modal.html b/files/templates/CHRISTMAS/award_modal.html
new file mode 100644
index 000000000..988eea6cb
--- /dev/null
+++ b/files/templates/CHRISTMAS/award_modal.html
@@ -0,0 +1,91 @@
+
+
+
+
+
\ No newline at end of file
diff --git a/files/templates/awards/Christmas/Fireplace.html b/files/templates/CHRISTMAS/awards/Christmas/Fireplace.html
similarity index 100%
rename from files/templates/awards/Christmas/Fireplace.html
rename to files/templates/CHRISTMAS/awards/Christmas/Fireplace.html
diff --git a/files/templates/awards/Christmas/Gingerbread.html b/files/templates/CHRISTMAS/awards/Christmas/Gingerbread.html
similarity index 83%
rename from files/templates/awards/Christmas/Gingerbread.html
rename to files/templates/CHRISTMAS/awards/Christmas/Gingerbread.html
index 04e045fb1..fd1ec85f8 100644
--- a/files/templates/awards/Christmas/Gingerbread.html
+++ b/files/templates/CHRISTMAS/awards/Christmas/Gingerbread.html
@@ -3,7 +3,7 @@
{% for i in range(count) %}
-
+
{% endfor %}
\ No newline at end of file
diff --git a/files/templates/awards/Christmas/Sleighs.html b/files/templates/CHRISTMAS/awards/Christmas/Sleighs.html
similarity index 85%
rename from files/templates/awards/Christmas/Sleighs.html
rename to files/templates/CHRISTMAS/awards/Christmas/Sleighs.html
index 9777b8afa..dcefe3234 100644
--- a/files/templates/awards/Christmas/Sleighs.html
+++ b/files/templates/CHRISTMAS/awards/Christmas/Sleighs.html
@@ -2,18 +2,18 @@
-
+
{% if p.award_count("train") > 1 %}
-
+
{% endif %}
{% if p.award_count("train") > 2 %}
-
+
{% endif %}
{% if p.award_count("train") > 3 %}
-
+
{% endif %}
diff --git a/files/templates/comments/CommentActions.html b/files/templates/CHRISTMAS/comments/CommentActions.html
similarity index 100%
rename from files/templates/comments/CommentActions.html
rename to files/templates/CHRISTMAS/comments/CommentActions.html
diff --git a/files/templates/comments/CommentEditForm.html b/files/templates/CHRISTMAS/comments/CommentEditForm.html
similarity index 100%
rename from files/templates/comments/CommentEditForm.html
rename to files/templates/CHRISTMAS/comments/CommentEditForm.html
diff --git a/files/templates/comments/CommentForm.html b/files/templates/CHRISTMAS/comments/CommentForm.html
similarity index 100%
rename from files/templates/comments/CommentForm.html
rename to files/templates/CHRISTMAS/comments/CommentForm.html
diff --git a/files/templates/comments/CommentMessageReplyForm.html b/files/templates/CHRISTMAS/comments/CommentMessageReplyForm.html
similarity index 100%
rename from files/templates/comments/CommentMessageReplyForm.html
rename to files/templates/CHRISTMAS/comments/CommentMessageReplyForm.html
diff --git a/files/templates/comments/CommentReplyForm.html b/files/templates/CHRISTMAS/comments/CommentReplyForm.html
similarity index 100%
rename from files/templates/comments/CommentReplyForm.html
rename to files/templates/CHRISTMAS/comments/CommentReplyForm.html
diff --git a/files/templates/CHRISTMAS/contact.html b/files/templates/CHRISTMAS/contact.html
new file mode 100644
index 000000000..277f49fa7
--- /dev/null
+++ b/files/templates/CHRISTMAS/contact.html
@@ -0,0 +1,67 @@
+{% extends "default.html" %}
+
+{% block title %}
+{{'SITE_NAME' | app_config}} - Contact
+
+{% endblock %}
+
+{% block content %}
+
+
+
+ {% if request.values.get('error') or error %}
+
+
+
+ {{error if error else request.values.get('error')}}
+
+
+
+
+
+ {% endif %}
+ {% if request.values.get('msg') or msg %}
+
+
+
+ {{msg if msg else request.values.get('msg')}}
+
+
+
+
+
+ {% endif %}
+
+
Contact {{'SITE_NAME' | app_config}} Admins
+ {% if v and v.is_activated and not v.is_suspended %}
+
+
Use this form to contact {{'SITE_NAME' | app_config}} Admins.
+
+
Your Email
+
+
+
+
+ Your message
+
+
+
+
+
+
+
+ {% elif v %}
+
+
Please verify your email address in order to ensure we can respond to your message if needed. Then, refresh this page.
+
+ {% else %}
+
+
In order to ensure that we can respond to your message, please first sign up or log in and make sure you have verified your email address . Then, refresh this page.
+
+ {% endif %}
+
+
If you can see this line, we haven't been contacted by any law enforcement or governmental organizations in 2021 yet.
+
+
+
+{% endblock %}
diff --git a/files/templates/CHRISTMAS/default.html b/files/templates/CHRISTMAS/default.html
new file mode 100644
index 000000000..4165d2d93
--- /dev/null
+++ b/files/templates/CHRISTMAS/default.html
@@ -0,0 +1,353 @@
+
+
+
+ {% if v and v.agendaposter %}
+
+
+
+
+ {% endif %}
+
+
+
+
+
+
+ {% block title %}
+ {{'SITE_NAME' | app_config}}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {% endblock %}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {% block stylesheets %}
+
+
+
+
+
+
+
+ {% if v %}
+
+
+
+ {% if v.agendaposter %}
+
+ {% elif v.css %}
+
+ {% endif %}
+ {% else %}
+
+
+
+ {% endif %}
+
+ {% endblock %}
+
+
+
+
+
+
+
+
+
+{% block Banner %}
+{% endblock %}
+
+{% include "header-tw.html" %}
+
+{% block mobileUserBanner %}
+{% endblock %}
+
+{% block mobileBanner %}
+{% endblock %}
+
+{% block postNav %}
+{% endblock %}
+
+
+
+
+ {% block desktopUserBanner %}
+ {% endblock %}
+
+ {% block desktopBanner %}
+ {% endblock %}
+
+
+
+ {% block subHeader2 %}
+ {% endblock %}
+
+
+
+
+ {% block searchText %}
+ {% endblock %}
+
+ {% block content %}
+ {% endblock %}
+
+ {% block pagenav %}
+ {% endblock %}
+
+ {% block sidebar %}
+ {% endblock %}
+
+
+
+ {% include "footer.html" %}
+
+
+
+{% if v %}
+ {{ v.formkey }}
+{% endif %}
+
+{% include "ProfilePopover.html" %}
+
+{% block mobilenavbar %}
+ {% include "mobile_navigation_bar.html" %}
+{% endblock %}
+
+{% block actionsModal %}
+{% endblock %}
+
+{% block reportCommentModal %}
+{% endblock %}
+
+{% block GIFtoast %}
+{% endblock %}
+
+{% block GIFpicker %}
+{% endblock %}
+
+
+
+{% include "/toasts/toasts.html" %}
+
+{% block modals %}
+{% endblock %}
+
+{% block popovers %}
+{% endblock %}
+
+{% block fixedMobileBarJS %}
+{% endblock %}
+
+{% block scripts %}
+{% endblock %}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+{% if v %}
+
+
+{% endif %}
+
+
+
diff --git a/files/templates/CHRISTMAS/delete_post_modal.html b/files/templates/CHRISTMAS/delete_post_modal.html
new file mode 100644
index 000000000..5df4ac9dd
--- /dev/null
+++ b/files/templates/CHRISTMAS/delete_post_modal.html
@@ -0,0 +1,39 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
Delete post?
+
+
Your post will be removed everywhere on {{'SITE_NAME' | app_config}}. This action can be undone.
+
+
Your post will be removed everywhere on {{'SITE_NAME' | app_config}}. This action can be undone.
+
+
+
+ Delete post
+
+ Cancel
+
+
+
+
+
+
+
+
diff --git a/files/templates/dropdowns/NavbarExtraLinks.html b/files/templates/CHRISTMAS/dropdowns/NavbarExtraLinks.html
similarity index 97%
rename from files/templates/dropdowns/NavbarExtraLinks.html
rename to files/templates/CHRISTMAS/dropdowns/NavbarExtraLinks.html
index e2dc296ed..c98f66a6a 100644
--- a/files/templates/dropdowns/NavbarExtraLinks.html
+++ b/files/templates/CHRISTMAS/dropdowns/NavbarExtraLinks.html
@@ -41,7 +41,7 @@
-
+
Android App
diff --git a/files/templates/dropdowns/NavbarProfile.html b/files/templates/CHRISTMAS/dropdowns/NavbarProfile.html
similarity index 92%
rename from files/templates/dropdowns/NavbarProfile.html
rename to files/templates/CHRISTMAS/dropdowns/NavbarProfile.html
index ae605d20d..059b8e44b 100644
--- a/files/templates/dropdowns/NavbarProfile.html
+++ b/files/templates/CHRISTMAS/dropdowns/NavbarProfile.html
@@ -17,12 +17,12 @@
-
+
{{v.coins}}
{% if v.procoins %}
-
+
{{v.procoins}}
{% endif %}
diff --git a/files/templates/dropdowns/ProfileAdminDropdown.html b/files/templates/CHRISTMAS/dropdowns/ProfileAdminDropdown.html
similarity index 100%
rename from files/templates/dropdowns/ProfileAdminDropdown.html
rename to files/templates/CHRISTMAS/dropdowns/ProfileAdminDropdown.html
diff --git a/files/templates/dropdowns/ProfileDropdown.html b/files/templates/CHRISTMAS/dropdowns/ProfileDropdown.html
similarity index 100%
rename from files/templates/dropdowns/ProfileDropdown.html
rename to files/templates/CHRISTMAS/dropdowns/ProfileDropdown.html
diff --git a/files/templates/dropdowns/SearchSorts.html b/files/templates/CHRISTMAS/dropdowns/SearchSorts.html
similarity index 100%
rename from files/templates/dropdowns/SearchSorts.html
rename to files/templates/CHRISTMAS/dropdowns/SearchSorts.html
diff --git a/files/templates/dropdowns/SubmissionSorts.html b/files/templates/CHRISTMAS/dropdowns/SubmissionSorts.html
similarity index 100%
rename from files/templates/dropdowns/SubmissionSorts.html
rename to files/templates/CHRISTMAS/dropdowns/SubmissionSorts.html
diff --git a/files/templates/CHRISTMAS/email/2fa_remove.html b/files/templates/CHRISTMAS/email/2fa_remove.html
new file mode 100644
index 000000000..619e53aaf
--- /dev/null
+++ b/files/templates/CHRISTMAS/email/2fa_remove.html
@@ -0,0 +1,34 @@
+{% extends "email/default.html" %}
+
+{% block title %}Remove Two-Factor Authentication{% endblock %}
+
+{% block preheader %}Remove Two-Factor Authentication.{% endblock %}
+
+{% block content %}
+
We received a request to remove two-factor authentication from your account. In 72 hours, click the link below.
+
If you didn't make this request, change your password and use the Log Out Everywhere feature in your Security Settings to permanently invalidate the link.
+
+
Please note that {{'SITE_NAME' | app_config}} will never ask you for your email, password, or two-factor token via email, text, or phone.
+
+
+
+ If you’re having trouble with the button above, copy and paste the URL below into your web browser.
+ {{action_url}}
+
+
+
+{% endblock %}
diff --git a/files/templates/CHRISTMAS/email/default.html b/files/templates/CHRISTMAS/email/default.html
new file mode 100644
index 000000000..f375d1bbb
--- /dev/null
+++ b/files/templates/CHRISTMAS/email/default.html
@@ -0,0 +1,409 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {{'SITE_NAME' | app_config}}
+
+
+
+
+
+
+
+
+
+
{% block title %}Title Goes Here{% endblock %}
+
+{% block content %}
+ {% for entry in data %}
+
{{entry[0]}}
+
{{entry[1]}}
+ {% endfor %}
+{% endblock %}
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/files/templates/CHRISTMAS/email/email_change.html b/files/templates/CHRISTMAS/email/email_change.html
new file mode 100644
index 000000000..01101d177
--- /dev/null
+++ b/files/templates/CHRISTMAS/email/email_change.html
@@ -0,0 +1,56 @@
+{% extends "email/default.html" %}
+
+{% block title %}Verify Your Email{% endblock %}
+
+{% block preheader %}Verify your new {{'SITE_NAME' | app_config}} email.{% endblock %}
+
+{% block content %}
+
You told us you wanted to change your {{'SITE_NAME' | app_config}} account email. To finish this process, please verify your new email address:
+
+
For reference, here's your current information:
+
+
+
+
+
+
+
+ Email: {{v.email}}
+
+
+
+
+
+
+ Username: {{v.username}}
+
+
+
+
+
+
+
+
Please note that {{'SITE_NAME' | app_config}} will never ask you for your email, password, or two-factor token via email, text, or phone.
+
+
+
+ If you’re having trouble with the button above, copy and paste the URL below into your web browser.
+ {{action_url}}
+
+
+
+{% endblock %}
diff --git a/files/templates/CHRISTMAS/email/email_verify.html b/files/templates/CHRISTMAS/email/email_verify.html
new file mode 100644
index 000000000..e039ed539
--- /dev/null
+++ b/files/templates/CHRISTMAS/email/email_verify.html
@@ -0,0 +1,54 @@
+{% extends "email/default.html" %}
+
+{% block title %}Welcome to {{'SITE_NAME' | app_config}}!{% endblock %}
+
+{% block content %}
+
Thanks for joining {{'SITE_NAME' | app_config}}. We’re happy to have you on board. To get the most out of {{'SITE_NAME' | app_config}}, please verify your account email:
+
+
For reference, here's your username.
+
+
+
+
+
+
+
+ Email: {{v.email}}
+
+
+
+
+
+
+ Username: {{v.username}}
+
+
+
+
+
+
+
+
Please note that {{'SITE_NAME' | app_config}} will never ask you for your email, password, or two-factor token via email, text, or phone.
+
+
+
+ If you’re having trouble with the button above, copy and paste the URL below into your web browser.
+ {{action_url}}
+
+
+
+{% endblock %}
diff --git a/files/templates/CHRISTMAS/email/password_reset.html b/files/templates/CHRISTMAS/email/password_reset.html
new file mode 100644
index 000000000..c5df8e03e
--- /dev/null
+++ b/files/templates/CHRISTMAS/email/password_reset.html
@@ -0,0 +1,54 @@
+{% extends "email/default.html" %}
+
+{% block title %}Reset Your Password{% endblock %}
+{% block preheader %}Reset your {{'SITE_NAME' | app_config}} password.{% endblock %}
+
+{% block content %}
+
To reset your password, click the button below:
+
+
For reference, here's your login information:
+
+
+
+
+
+
+
+ Email: {{v.email}}
+
+
+
+
+
+
+ Username: {{v.username}}
+
+
+
+
+
+
+
+
+
+
+ If you’re having trouble with the button above, copy and paste the URL below into your web browser.
+ {{action_url}}
+
+
+
+{% endblock %}
diff --git a/files/templates/CHRISTMAS/emoji_modal.html b/files/templates/CHRISTMAS/emoji_modal.html
new file mode 100644
index 000000000..f764dc796
--- /dev/null
+++ b/files/templates/CHRISTMAS/emoji_modal.html
@@ -0,0 +1,105 @@
+
+
+
+
diff --git a/files/templates/CHRISTMAS/emojis.html b/files/templates/CHRISTMAS/emojis.html
new file mode 100644
index 000000000..f0d577a24
--- /dev/null
+++ b/files/templates/CHRISTMAS/emojis.html
@@ -0,0 +1,26 @@
+{% extends "default.html" %}
+{% block content %}
+
+
+
+
+
+
+
+ #
+ Name
+ Emoji
+
+
+
+{% for emoji in emojis %}
+
+ {{loop.index}}
+ {{emoji}}
+
+
+{% endfor %}
+
+
+
+{% endblock %}
\ No newline at end of file
diff --git a/files/templates/CHRISTMAS/errors/400.html b/files/templates/CHRISTMAS/errors/400.html
new file mode 100644
index 000000000..ff08a4d0a
--- /dev/null
+++ b/files/templates/CHRISTMAS/errors/400.html
@@ -0,0 +1,19 @@
+{% extends "default.html" %}
+
+{% block title %}
+
400 Bad Request
+{% endblock %}
+
+{% block pagetype %}error-400{% endblock %}
+
+{% block content %}
+
+
+
+
400 Bad Request
+
+ That request was bad and you should feel bad.
+
+
+
+{% endblock %}
diff --git a/files/templates/CHRISTMAS/errors/401.html b/files/templates/CHRISTMAS/errors/401.html
new file mode 100644
index 000000000..2a2895e6f
--- /dev/null
+++ b/files/templates/CHRISTMAS/errors/401.html
@@ -0,0 +1,21 @@
+{% extends "default.html" %}
+
+{% block title %}
+
401 Not Authorized
+{% endblock %}
+
+{% block pagetype %}error-401{% endblock %}
+
+{% block content %}
+
+
+
+
401 Not Authorized
+
+ What you're trying to do requires an account. I think. The original error message said something about a castle and I hated that.
+
+
Create an account
+
Login
+
+
+{% endblock %}
\ No newline at end of file
diff --git a/files/templates/CHRISTMAS/errors/403.html b/files/templates/CHRISTMAS/errors/403.html
new file mode 100644
index 000000000..55596acef
--- /dev/null
+++ b/files/templates/CHRISTMAS/errors/403.html
@@ -0,0 +1,20 @@
+{% extends "default.html" %}
+
+{% block title %}
+
403 Forbidden
+{% endblock %}
+
+{% block pagetype %}error-403{% endblock %}
+
+{% block content %}
+
+
+
+
403 Forbidden
+
+ YOU AREN'T WELCOME HERE GO AWAY
+
+
Go to frontpage
+
+
+{% endblock %}
diff --git a/files/templates/CHRISTMAS/errors/404.html b/files/templates/CHRISTMAS/errors/404.html
new file mode 100644
index 000000000..1f797432c
--- /dev/null
+++ b/files/templates/CHRISTMAS/errors/404.html
@@ -0,0 +1,19 @@
+{% extends "default.html" %}
+
+{% block title %}
+
404 Page Not Found
+{% endblock %}
+
+{% block pagetype %}error-404{% endblock %}
+
+{% block content %}
+
+
+
+
404 Page Not Found
+
+ Someone typed something wrong and it was probably you, please do better.
+
+
+
+{% endblock %}
diff --git a/files/templates/CHRISTMAS/errors/405.html b/files/templates/CHRISTMAS/errors/405.html
new file mode 100644
index 000000000..cf98e006a
--- /dev/null
+++ b/files/templates/CHRISTMAS/errors/405.html
@@ -0,0 +1,23 @@
+{% extends "default.html" %}
+
+{% block title %}
+
405 Method Not Allowed
+{% endblock %}
+
+{% block pagetype %}error-405{% endblock %}
+
+{% block content %}
+
+
+
+
405 Method Not Allowed
+
+ idk how anyone gets this error but if you see this, remember to follow @carpathianflorist
+
+
+ the original error text here talked about internet gremlins and wtf
+
+
Go to frontpage
+
+
+{% endblock %}
diff --git a/files/templates/CHRISTMAS/errors/429.html b/files/templates/CHRISTMAS/errors/429.html
new file mode 100644
index 000000000..a77719384
--- /dev/null
+++ b/files/templates/CHRISTMAS/errors/429.html
@@ -0,0 +1,20 @@
+{% extends "default.html" %}
+
+{% block title %}
+
429 Too Many Requests
+{% endblock %}
+
+{% block pagetype %}error-429{% endblock %}
+
+{% block content %}
+
+
+
+
429 Too Many Requests
+
+ go spam somewhere else nerd
+
+
Go to frontpage
+
+
+{% endblock %}
diff --git a/files/templates/CHRISTMAS/errors/500.html b/files/templates/CHRISTMAS/errors/500.html
new file mode 100644
index 000000000..eda67c782
--- /dev/null
+++ b/files/templates/CHRISTMAS/errors/500.html
@@ -0,0 +1,20 @@
+{% extends "default.html" %}
+
+{% block title %}
+
500 Internal Server Error
+{% endblock %}
+
+{% block pagetype %}error-500{% endblock %}
+
+{% block content %}
+
+
+
+
500 Interal Server Error
+
+ Hiiiii it's carp! I think this error means that there's a timeout error. And I think that means something took too long to load so it decided not to work at all. If you keep seeing this on the same page but not other pages , then something is probably wrong with that specific function. It may not be called a function, but that sounds right to me. Anyway, ping me and I'll whine to someone smarter to fix it. Don't bother them. Thanks ily <3
+
+
Go to frontpage
+
+
+{% endblock %}
diff --git a/files/templates/CHRISTMAS/errors/nsfw.html b/files/templates/CHRISTMAS/errors/nsfw.html
new file mode 100644
index 000000000..5708a682d
--- /dev/null
+++ b/files/templates/CHRISTMAS/errors/nsfw.html
@@ -0,0 +1,27 @@
+{% extends "default.html" %}
+
+{% block title %}
+
+18
+{% endblock %}
+
+{% block pagetype %}error-451{% endblock %}
+
+{% block content %}
+
+
+
+
Are you over 18?
+
+ This post is rated +18 (Adult-Only). You must be 18 or older to continue. Are you sure you want to proceed?
+
+
+
+
+{% endblock %}
+
diff --git a/files/templates/CHRISTMAS/errors/patron.html b/files/templates/CHRISTMAS/errors/patron.html
new file mode 100644
index 000000000..c1f6497f5
--- /dev/null
+++ b/files/templates/CHRISTMAS/errors/patron.html
@@ -0,0 +1,20 @@
+{% extends "default.html" %}
+
+{% block title %}
+
401 Not Authorized
+{% endblock %}
+
+{% block pagetype %}error-401{% endblock %}
+
+{% block content %}
+
+
+
+
401 Not Authorized
+
+ This page is only available to {% if "rama" in request.host %}paypigs{% else %}patrons{% endif %}:
+
+
{{'GUMROAD_LINK' | app_config}}
+
+
+{% endblock %}
\ No newline at end of file
diff --git a/files/templates/CHRISTMAS/expanded_image_modal.html b/files/templates/CHRISTMAS/expanded_image_modal.html
new file mode 100644
index 000000000..ac95d65f3
--- /dev/null
+++ b/files/templates/CHRISTMAS/expanded_image_modal.html
@@ -0,0 +1,28 @@
+
+
+
\ No newline at end of file
diff --git a/files/templates/CHRISTMAS/followers.html b/files/templates/CHRISTMAS/followers.html
new file mode 100644
index 000000000..2c6b93629
--- /dev/null
+++ b/files/templates/CHRISTMAS/followers.html
@@ -0,0 +1,37 @@
+{% extends "default.html" %}
+{% block content %}
+
+
+
+
+
+
@{{u.username}}'s followers
+
+
+
+
+ #
+ Name
+ {% if v.id == u.id %}
+
+ {% endif %}
+
+
+
+{% for user in users %}
+
+ {{loop.index}}
+ {{user.username}}
+ {% if v.id == u.id %}
+ Remove follow
+ {% endif %}
+
+{% endfor %}
+
+
+
+{% endblock %}
+
+{% block scripts %}
+
+{% endblock %}
\ No newline at end of file
diff --git a/files/templates/CHRISTMAS/following.html b/files/templates/CHRISTMAS/following.html
new file mode 100644
index 000000000..5b374a141
--- /dev/null
+++ b/files/templates/CHRISTMAS/following.html
@@ -0,0 +1,33 @@
+{% extends "default.html" %}
+{% block content %}
+
+
Users followed by @{{u.username}}
+
+
+
+
+ #
+ Name
+ {% if v.id == u.id %}
+
+ {% endif %}
+
+
+
+{% for user in users %}
+
+ {{loop.index}}
+ {{user.username}}
+ {% if v.id == u.id %}
+ Unfollow
+ {% endif %}
+
+{% endfor %}
+
+
+
+{% endblock %}
+
+{% block scripts %}
+
+{% endblock %}
\ No newline at end of file
diff --git a/files/templates/footer.html b/files/templates/CHRISTMAS/footer.html
similarity index 100%
rename from files/templates/footer.html
rename to files/templates/CHRISTMAS/footer.html
diff --git a/files/templates/CHRISTMAS/forgot_password.html b/files/templates/CHRISTMAS/forgot_password.html
new file mode 100644
index 000000000..cdfee69bd
--- /dev/null
+++ b/files/templates/CHRISTMAS/forgot_password.html
@@ -0,0 +1,31 @@
+{% extends "authforms.html" %}
+
+{% block pagetitle %}{{'SITE_NAME' | app_config}} Password Reset{% endblock %}
+
+{% block authtitle %}Reset your password.{% endblock %}
+
+{% block authtext %}If there's an email address associated with your account, you can use it to recover your {{'SITE_NAME' | app_config}} account and change your password.{% endblock %}
+
+{% block content %}
+
+
+
+
+
+ Username
+
+
+
+ Email
+
+
+
+
+
+
+
+
+
+{% endblock %}
\ No newline at end of file
diff --git a/files/templates/CHRISTMAS/formatting.html b/files/templates/CHRISTMAS/formatting.html
new file mode 100644
index 000000000..6fe045293
--- /dev/null
+++ b/files/templates/CHRISTMAS/formatting.html
@@ -0,0 +1,524 @@
+{% extends "settings2.html" %}
+{% block title %}
+
{{'SITE_NAME' | app_config}} - Formatting
+
+{% endblock %}
+
+{% block content %}
+
+
+
+
+
Markdown Formatting
+
+You can use Markdown formatting:
+
+
+
+
+
+
+
+
HTML Formatting
+
+And we allow custom HTML in most places:
+
+
+
+
+
+
Allowed Tags
+
+
+
+
+ Name
+ What you type
+ What gets displayed
+
+
+
+
+ Span
+
+ My mother has <span style="color:blue">blue</span> eyes.
+
+
+ My mother has blue eyes.
+
+
+
+ Bold
+ This will be <b>bold</b>
+
+ This will be bold
+
+
+
+ Blockquote
+
+ <blockquote>This is a blockquote</blockquote>
+
+
+
+ This is a blockquote
+
+
+
+
+ Line Break
+
+
+Line 1
+<br>
+Line 2
+
+
+
+ Line 1
+
+ Line 2
+
+
+
+ Code
+
+ <code>This is code</code>
+
+
+ This is code
+
+
+
+ Strikethrough
+
+ The last word will have a <del>strikethrough</del>
+
+
+ The last word will have a strikethrough
+
+
+
+ Emphasis
+
+ We <em>cannot</em> live like this.
+
+
+ We cannot live like this.
+
+
+
+ Headings
+
+
+<h1>This is heading 1</h1>
+<h2>This is heading 2</h2>
+<h3>This is heading 3</h3>
+<h4>This is heading 4</h4>
+<h5>This is heading 5</h5>
+<h6>This is heading 6</h6>
+
+
+
+ This is heading 1
+ This is heading 2
+ This is heading 3
+ This is heading 4
+ This is heading 5
+ This is heading 6
+
+
+
+ Horizontal Rule
+
+
+Text 1
+<hr>
+Text 2
+
+
+
+ Text 1
+
+ Text 2
+
+
+
+ Italics
+
+ <i>This</i> is how you get italics.
+
+
+ This is how you get italics.
+
+
+
+ Lists
+
+
+<ul>
+ <li>Bullet 1</li>
+ <li>Bullet 2</li>
+</ul>
+<ol>
+ <li>Number 1</li>
+ <li>Number 2</li>
+</ol>
+
+
+
+
+
+ Number 1
+ Number 2
+
+
+
+
+ Paragraphs
+
+
+<p>Paragraph 1</p>
+<p>Paragraph 2</p>
+
+
+
+ Paragraph 1
+ Paragraph 2
+
+
+
+ Preformatted Text
+
+<pre>
+ Text in a pre element
+ is displayed in a fixed-width
+ font, and it preserves
+ both spaces and
+ line breaks
+</pre>
+
+
+
+Text in a pre element
+is displayed in a fixed-width
+font, and it preserves
+both spaces and
+line breaks
+
+
+
+
+ Strong
+
+ <strong>This text is important!</strong>
+
+
+ This text is important!
+
+
+
+ Subscript
+
+ This text contains <sub>subscript</sub> text.
+
+
+ This text contains subscript text.
+
+
+
+ Superscript
+
+ E = mc<sup>2</sup>
+
+
+ E = mc2
+
+
+
+ Tables
+
+<table>
+ <thead>
+ <tr>
+ <td>Col 1</td>
+ <td>Col 2</td>
+ <td>Col 3</td>
+ </tr>
+ </thead>
+ <tbody>
+ <tr>
+ <td>1</td>
+ <td>2</td>
+ <td>3</td>
+ </tr>
+ <tr>
+ <td>4</td>
+ <td>5</td>
+ <td>6</td>
+ </tr>
+ </tbody>
+</table>
+
+
+
+
+
+ Col 1
+ Col 2
+ Col 3
+
+
+
+
+ 1
+ 2
+ 3
+
+
+ 4
+ 5
+ 6
+
+
+
+
+
+
+ Marquee
+
+ <marquee direction="up" behavior="scroll" scrollamount="10" height="100">
+ This is a sample scrolling text that has scrolls in the upper direction.
+ </marquee>
+
+
+
+ This is a sample scrolling text that has scrolls in the upper direction.
+
+
+
+
+ Links
+
+ This is a <a href='https://www.w3schools.com/tags/tag_a.asp'>link</a>
+
+
+ This is a link
+
+
+
+ Images
+
+ <img src="https://i.imgur.com/SwVuagI_d.webp" width="200">
+
+
+
+
+
+
+
+
+
Allowed Attributes
+
+
+
+
+ Name
+
+
+
+
+ href
+
+
+ style
+
+
+ src
+
+
+ class
+
+
+ title
+
+
+ direction
+
+
+ behavior
+
+
+ scrollamount
+
+
+
+
+
Allowed Styles
+
+
+
+
+ Name
+
+
+
+
+ color
+
+
+ background-color
+
+
+ font-weight
+
+
+ transform
+
+
+ -webkit-transform
+
+
+
+
+{% include "expanded_image_modal.html" %}
+
+{% endblock %}
\ No newline at end of file
diff --git a/files/templates/CHRISTMAS/gif_modal.html b/files/templates/CHRISTMAS/gif_modal.html
new file mode 100644
index 000000000..98a160890
--- /dev/null
+++ b/files/templates/CHRISTMAS/gif_modal.html
@@ -0,0 +1,23 @@
+
diff --git a/files/templates/header-tw.html b/files/templates/CHRISTMAS/header-tw.html
similarity index 94%
rename from files/templates/header-tw.html
rename to files/templates/CHRISTMAS/header-tw.html
index 5219b14bc..20af72dae 100644
--- a/files/templates/header-tw.html
+++ b/files/templates/CHRISTMAS/header-tw.html
@@ -33,8 +33,8 @@
@@ -125,8 +125,8 @@
-
+
{{v.coins}} {{'COINS_NAME' | app_config}}
{% if v.procoins %}
-
+
{{v.procoins}} MarseyBux
{% endif %}
diff --git a/files/templates/CHRISTMAS/header.html b/files/templates/CHRISTMAS/header.html
new file mode 100644
index 000000000..357ba31bc
--- /dev/null
+++ b/files/templates/CHRISTMAS/header.html
@@ -0,0 +1,229 @@
+
+ {% if "rama" in request.host %}
+
+ {% endif %}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {% if v and v.admin_level > 0 %}
+
+ {% endif %}
+ {% if v %}
+
+ {% else %}
+
+ {% endif %}
+
+
+ {% if v and v.notifications_count %}
+ {{v.notifications_count}}
+ {% endif %}
+
+
+
+
+
+
+
+
+
+ {% if v and v.admin_level > 1 %}
+
+
+
+ {% endif %}
+
+ {% if v %}
+
+ {% if v.notifications_count %}
+
+
+ {{v.notifications_count}}
+
+
+ {% else %}
+
+
+
+
+
+ {% endif %}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Invite friends
+
+
+
+
+
+
+ {% else %}
+
+ Contact us
+
+
+ Sign in
+
+
+ Sign up
+
+ {% endif %}
+
+
+
+
+
+
+
+
+
+
+
+
+{% if v %}
+
{{v.formkey}}
+{% endif %}
\ No newline at end of file
diff --git a/files/templates/CHRISTMAS/home.html b/files/templates/CHRISTMAS/home.html
new file mode 100644
index 000000000..a722ca358
--- /dev/null
+++ b/files/templates/CHRISTMAS/home.html
@@ -0,0 +1,109 @@
+{% extends "default.html" %}
+
+{% block subHeader %}
+
+
+
+
+
+ Home
+
+
+ {{ sort }}
+ posts {{ 'from all time' if t=='all' else 'in the last' }}
+ {% if t != 'all' %}{{ t }}{% endif %}
+
+
+
+ {% include "/dropdowns/SubmissionSorts.html" %}
+
+
+
+{% endblock %}
+
+{% block desktopBanner %}
+{% endblock %}
+
+{% block content %}
+
+
+
+ {% include "submission_listing.html" %}
+
+
+ {% if listing %}
+
+
+
+ {% endif %}
+
+
+{% endblock %}
+
+
+{% block sidebar %}
+ {% include "/sidebars/HomeSidebar.html" %}
+{% endblock %}
+
+{% block modals %}
+ {% if v %}
+ {% include "award_modal.html" %}
+ {% endif %}
+
+ {% if v.agendaposter %}
+
VIDEO
+ {% endif %}
+{% endblock %}
+
+{% block scripts %}
+
+{% if v %}
+
+
+{% endif %}
+
+
+
+{% if not v.fp %}
+
+{% endif %}
+
+{% endblock %}
\ No newline at end of file
diff --git a/files/templates/CHRISTMAS/home_comments.html b/files/templates/CHRISTMAS/home_comments.html
new file mode 100644
index 000000000..1e11740f5
--- /dev/null
+++ b/files/templates/CHRISTMAS/home_comments.html
@@ -0,0 +1,50 @@
+{% extends "default.html" %}
+
+{% block subHeader %}
+
+
+
+
+
+ Comments
+
+
+ {{ sort }}
+ comments {{ 'from all time' if t=='all' else 'in the last' }}
+ {% if t != 'all' %}{{ t }} {% endif %}
+
+
+
+ {% include "/dropdowns/SubmissionSorts.html" %}
+
+
+
+{% endblock %}
+
+{% block content %}
+
+
+ {% include "comments.html" %}
+
+
+
+
+ {% if page>1 %}
+
+
+ Prev
+
+
+ {% else %}
+ Prev
+ {% endif %}
+ {% if next_exists %}
+
+ Next
+
+ {% else %}
+ Next
+ {% endif %}
+
+
+{% endblock %}
\ No newline at end of file
diff --git a/files/templates/CHRISTMAS/leaderboard.html b/files/templates/CHRISTMAS/leaderboard.html
new file mode 100644
index 000000000..8e7f053c1
--- /dev/null
+++ b/files/templates/CHRISTMAS/leaderboard.html
@@ -0,0 +1,297 @@
+{% extends "default.html" %}
+
+{% block pagetitle %}Leaderboard{% endblock %}
+
+{% block subHeader %}
+
+
+
+
+
+ Leaderboards
+
+
+ In-depth analysis of our most terminally online members' careers.
+
+
+
+
+
+{% endblock %}
+
+{% block content %}
+
+
+
+ rDrama's 25 Greediest Members
+
+
+
+ {% for user in users1 %}
+
+
+
+ {{users1.index(user)+1}}
+
+
+
+ {% if users1.index(user)+1 == 1 %}
+
+ {% endif %}
+
+
+
+
+
+ {{user.coins}}
+
+
+
+ {% endfor %}
+
+
+
+
+
+ rDrama's 20 Top Spenders
+
+
+
+ {% for user in users7 %}
+
+
+
+ {{users7.index(user)+1}}
+
+
+
+ {% if users7.index(user)+1 == 1 %}
+
+ {% endif %}
+
+
+
+
+
+ {{user.coins_spent}}
+
+
+
+ {% endfor %}
+
+
+
+
+
+ rDrama's 15 Most Popular
+
+
+
+ {% for user in users2 %}
+
+
+
+ {{users2.index(user)+1}}
+
+
+
+ {% if users2.index(user)+1 == 1 %}
+
+ {% endif %}
+
+
+
+
+
+ {{user.stored_subscriber_count}}
+
+
+
+ {% endfor %}
+
+
+
+
+
+ rDrama's 10 Most Terminally Online (Posts)
+
+
+
+ {% for user in users3 %}
+
+
+
+ {{users3.index(user)+1}}
+
+
+
+ {% if users3.index(user)+1 == 1 %}
+
+ {% endif %}
+
+
+
+
+
+ {{user.post_count}}
+
+
+
+ {% endfor %}
+
+
+
+
+
+ rDrama's 10 Most Terminally Online (Comments)
+
+
+
+ {% for user in users4 %}
+
+
+
+ {{users4.index(user)+1}}
+
+
+
+ {% if users4.index(user)+1 == 1 %}
+
+ {% endif %}
+
+
+
+
+
+ {{user.comment_count}}
+
+
+
+ {% endfor %}
+
+
+
+
+
+ rDrama's 10 Biggest Winners
+
+
+
+ {% for user in users5 %}
+
+
+
+ {{users5.index(user)+1}}
+
+
+
+ {% if users5.index(user)+1 == 1 %}
+
+ {% endif %}
+
+
+
+
+
+ {{user.received_award_count}}
+
+
+
+ {% endfor %}
+
+
+{% endblock %}
+
+{% block modals %}
+
+{% include '/awards/Christmas/Snow.html' %}
+{% endblock %}
+
+{% block scripts %}
+
+{% endblock %}
\ No newline at end of file
diff --git a/files/templates/CHRISTMAS/log.html b/files/templates/CHRISTMAS/log.html
new file mode 100644
index 000000000..9f92df412
--- /dev/null
+++ b/files/templates/CHRISTMAS/log.html
@@ -0,0 +1,127 @@
+{% extends "settings2.html" %}
+
+{% block pagetitle %}Moderation Log{% endblock %}
+
+
+{% block content %}
+{% if v %}
+
+
+ {% if v.agendaposter %}
{% elif v.css %}
{% endif %}
+{% else %}
+
+
+{% endif %}
+
+
+
+
+
+
+
+
+
+
+
+ {% block navbar %}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {% endblock %}
+
+
+
+
+
+
+ {% for ma in actions %}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {% else %}
+
There's nothing here right now.
+ {% endfor %}
+
+
+
+
+
+
+
+
+
+
+
+
+{% endblock %}
\ No newline at end of file
diff --git a/files/templates/CHRISTMAS/login.html b/files/templates/CHRISTMAS/login.html
new file mode 100644
index 000000000..98e051e50
--- /dev/null
+++ b/files/templates/CHRISTMAS/login.html
@@ -0,0 +1,105 @@
+{% set random = range(1, 13)|random() %}
+
+
+
+
+
+
+
+
+
+
+ {% block title %}
+
Login - {{'SITE_NAME' | app_config}}
+ {% endblock %}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Username or Email Address
+
+
+
+
+
+
Log in
+
+
+
+
+
+
+
+
+
+ About
+
+
+
+
+ Community Etiquette
+
+
+
+
+ ©2021 Copyright rdrama.net
+
+
+
+
+
+
+
+
+ {% include '/awards/Christmas/Snow.html' %}
+
+
+
+
+
+
+
+
diff --git a/files/templates/CHRISTMAS/login_2fa.html b/files/templates/CHRISTMAS/login_2fa.html
new file mode 100644
index 000000000..047d37925
--- /dev/null
+++ b/files/templates/CHRISTMAS/login_2fa.html
@@ -0,0 +1,106 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
2-Step Login - {{'SITE_NAME' | app_config}}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/files/templates/CHRISTMAS/lost_2fa.html b/files/templates/CHRISTMAS/lost_2fa.html
new file mode 100644
index 000000000..a607b969d
--- /dev/null
+++ b/files/templates/CHRISTMAS/lost_2fa.html
@@ -0,0 +1,36 @@
+{% extends "authforms.html" %}
+
+{% block pagetitle %}{{'SITE_NAME' | app_config}} Two-Factor Removal{% endblock %}
+
+{% block authtitle %}Remove the two-factor authentication from your account.{% endblock %}
+
+{% block authtext %}If all information is correct, you will be able to remove 2-factor authentication from your account in 24 hours.{% endblock %}
+
+{% block content %}
+
+
+
+
+
+ Username
+
+
+
+ Password
+
+
+
+ Email
+
+
+
+
+
+
+
+
+
+{% endblock %}
\ No newline at end of file
diff --git a/files/templates/CHRISTMAS/message.html b/files/templates/CHRISTMAS/message.html
new file mode 100644
index 000000000..c306e6e1d
--- /dev/null
+++ b/files/templates/CHRISTMAS/message.html
@@ -0,0 +1,27 @@
+{% extends "default.html" %}
+
+{% block title %}
+
{{title}}
+{% endblock %}
+
+{% block pagetype %}message{% endblock %}
+
+{% block customPadding %}{% endblock %}
+
+{% block content %}
+
+
+
+
+
+
+
+
+
+
{{title}}
+
{{message if message else error}}
+
Go to homepage
+
+
+
+{% endblock %}
diff --git a/files/templates/CHRISTMAS/message_success.html b/files/templates/CHRISTMAS/message_success.html
new file mode 100644
index 000000000..2d9f017b8
--- /dev/null
+++ b/files/templates/CHRISTMAS/message_success.html
@@ -0,0 +1,17 @@
+{% extends "default.html" %}
+
+{% block title %}
+
{{title}}
+{% endblock %}
+
+{% block pagetype %}message-success{% endblock %}
+
+{% block content %}
+
+
+
+
{{title}}
+
{{text}}
+
+
+{% endblock %}
diff --git a/files/templates/CHRISTMAS/mine.html b/files/templates/CHRISTMAS/mine.html
new file mode 100644
index 000000000..7c896c14b
--- /dev/null
+++ b/files/templates/CHRISTMAS/mine.html
@@ -0,0 +1,39 @@
+{% extends "home.html" %}
+
+{% block PseudoSubmitForm %}{% endblock %}
+
+
+{% block customPadding %}{% endblock %}
+
+{% block content %}
+
+
+
+
+ {% block maincontent %}
+ {% endblock %}
+
+
+
+{% endblock %}
+
+{% block pagenav %}
+
+
+
+{% endblock %}
\ No newline at end of file
diff --git a/files/templates/CHRISTMAS/mobile_navigation_bar.html b/files/templates/CHRISTMAS/mobile_navigation_bar.html
new file mode 100644
index 000000000..884e25742
--- /dev/null
+++ b/files/templates/CHRISTMAS/mobile_navigation_bar.html
@@ -0,0 +1,84 @@
+
+
+
+
+
+
+
+
+
+
+
+
+ {% if v and v.defaultsorting == 'new' %}
+
+
+
+
+
+
+
+ {% else %}
+
+
+
+
+
+
+
+ {% endif %}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {% if v %}
+
+
+
+
+
+
+
+ {% else %}
+
+
+
+
+
+
+
+ {% endif %}
+
+
+
diff --git a/files/templates/modals/Modal2FA.html b/files/templates/CHRISTMAS/modals/Modal2FA.html
similarity index 100%
rename from files/templates/modals/Modal2FA.html
rename to files/templates/CHRISTMAS/modals/Modal2FA.html
diff --git a/files/templates/modals/ModalAdminManageUser.html b/files/templates/CHRISTMAS/modals/ModalAdminManageUser.html
similarity index 100%
rename from files/templates/modals/ModalAdminManageUser.html
rename to files/templates/CHRISTMAS/modals/ModalAdminManageUser.html
diff --git a/files/templates/modals/ModalCommentActions.html b/files/templates/CHRISTMAS/modals/ModalCommentActions.html
similarity index 100%
rename from files/templates/modals/ModalCommentActions.html
rename to files/templates/CHRISTMAS/modals/ModalCommentActions.html
diff --git a/files/templates/modals/ModalDeleteAccount.html b/files/templates/CHRISTMAS/modals/ModalDeleteAccount.html
similarity index 100%
rename from files/templates/modals/ModalDeleteAccount.html
rename to files/templates/CHRISTMAS/modals/ModalDeleteAccount.html
diff --git a/files/templates/modals/ModalDirectMessage.html b/files/templates/CHRISTMAS/modals/ModalDirectMessage.html
similarity index 100%
rename from files/templates/modals/ModalDirectMessage.html
rename to files/templates/CHRISTMAS/modals/ModalDirectMessage.html
diff --git a/files/templates/modals/ModalGiftCoins.html b/files/templates/CHRISTMAS/modals/ModalGiftCoins.html
similarity index 100%
rename from files/templates/modals/ModalGiftCoins.html
rename to files/templates/CHRISTMAS/modals/ModalGiftCoins.html
diff --git a/files/templates/modals/ModalReportComment.html b/files/templates/CHRISTMAS/modals/ModalReportComment.html
similarity index 100%
rename from files/templates/modals/ModalReportComment.html
rename to files/templates/CHRISTMAS/modals/ModalReportComment.html
diff --git a/files/templates/modals/ModalSubmissionActions.html b/files/templates/CHRISTMAS/modals/ModalSubmissionActions.html
similarity index 100%
rename from files/templates/modals/ModalSubmissionActions.html
rename to files/templates/CHRISTMAS/modals/ModalSubmissionActions.html
diff --git a/files/templates/modals/ModalSubmissionListingActions.html b/files/templates/CHRISTMAS/modals/ModalSubmissionListingActions.html
similarity index 100%
rename from files/templates/modals/ModalSubmissionListingActions.html
rename to files/templates/CHRISTMAS/modals/ModalSubmissionListingActions.html
diff --git a/files/templates/CHRISTMAS/most_downvoted.html b/files/templates/CHRISTMAS/most_downvoted.html
new file mode 100644
index 000000000..96d023631
--- /dev/null
+++ b/files/templates/CHRISTMAS/most_downvoted.html
@@ -0,0 +1,10 @@
+{% extends "default.html" %}
+{% block content %}
+
+
+
+
+
Most downvoted users
+
+
+{% endblock %}
\ No newline at end of file
diff --git a/files/templates/CHRISTMAS/notifications.html b/files/templates/CHRISTMAS/notifications.html
new file mode 100644
index 000000000..267eb23aa
--- /dev/null
+++ b/files/templates/CHRISTMAS/notifications.html
@@ -0,0 +1,125 @@
+{% extends "default.html" %}
+
+{% block fixedMobileBarJS %}{% endblock %}
+
+{% block pagetype %}{% endblock %}
+
+{% block subHeader %}
+
+
+
+
+
+
+
+ Mark all as read
+
+
+
+
+{% endblock %}
+
+{% block content %}
+
+
+
+
+ {% with comments=notifications %}
+ {% include "comments.html" %}
+ {% endwith %}
+
+
+ {% if not notifications %}
+
+
+
No unread messages
+
+ When someone comments or replies, it will show up here.
+
+
+ View entire inbox
+
+
+ {% endif %}
+
+
+
+{% if notifications %}
+
+
+ {% if page>1 %}
+
+ {% if "?page=" in request.full_path %}
+ {% set path = request.full_path.split("?page=")[0] %}
+ {% elif "&page=" in request.full_path %}
+ {% set path = request.full_path.split("&page=")[0] %}
+ {% else %}
+ {% set path = request.full_path %}
+ {% endif %}
+ {% if request.full_path == "/notifications" %}
+ Previous
+ {% else %}
+ Previous
+ {% endif %}
+
+ {% else %}
+ Prev
+ {% endif %}
+
+ {% if next_exists %}
+
+ {% if "?page=" in request.full_path %}
+ {% set path = request.full_path.split("?page=")[0] %}
+ {% elif "&page=" in request.full_path %}
+ {% set path = request.full_path.split("&page=")[0] %}
+ {% else %}
+ {% set path = request.full_path %}
+ {% endif %}
+ {% if request.full_path == "/notifications" %}
+ Next
+ {% else %}
+ Next
+ {% endif %}
+
+ {% else %}
+ Next
+ {% endif %}
+
+
+{% endif %}
+
+{% endblock %}
+
+{% block GIFpicker %}
+{% endblock %}
\ No newline at end of file
diff --git a/files/templates/CHRISTMAS/oauth.html b/files/templates/CHRISTMAS/oauth.html
new file mode 100644
index 000000000..ac93dee3a
--- /dev/null
+++ b/files/templates/CHRISTMAS/oauth.html
@@ -0,0 +1,43 @@
+{% extends "login.html" %}
+
+{% block title %}
+
Application Request for Access
+{% endblock %}
+
+{% block content %}
+
+
+
+{% endblock %}
\ No newline at end of file
diff --git a/files/templates/CHRISTMAS/patrons.html b/files/templates/CHRISTMAS/patrons.html
new file mode 100644
index 000000000..0fd9799b2
--- /dev/null
+++ b/files/templates/CHRISTMAS/patrons.html
@@ -0,0 +1,22 @@
+{% extends "settings2.html" %}
+
+{% block content %}
+
+
+
+ #
+ Name
+ Tier
+
+
+{% for u in users %}
+
+ {{loop.index}}
+ {{u.username}}
+
+
+
+{% endfor %}
+
+
+{% endblock %}
diff --git a/files/templates/CHRISTMAS/rentoids.html b/files/templates/CHRISTMAS/rentoids.html
new file mode 100644
index 000000000..74897b454
--- /dev/null
+++ b/files/templates/CHRISTMAS/rentoids.html
@@ -0,0 +1,21 @@
+{% extends "default.html" %}
+{% block content %}
+
+
Rentoids
+
+
+
+
+ #
+ Name
+
+
+{% for user in users %}
+
+ {{loop.index}}
+ {{user.username}}
+
+{% endfor %}
+
+
+{% endblock %}
\ No newline at end of file
diff --git a/files/templates/CHRISTMAS/report_post_modal.html b/files/templates/CHRISTMAS/report_post_modal.html
new file mode 100644
index 000000000..4d34a7d65
--- /dev/null
+++ b/files/templates/CHRISTMAS/report_post_modal.html
@@ -0,0 +1,40 @@
+
+
+
+
+
+
+
+
+
We're sorry something here is wrong.
+
Please enter a reason for reporting below.
+
+
+
+
+ Cancel
+
+
+ Report post
+
+
+
+
+
+
Thank you for reporting this post!
+
By the power of the mop, our internet janitors will take it from here.
+
+
+
+ Close
+
+
+
+
+
+
diff --git a/files/templates/CHRISTMAS/reset_password.html b/files/templates/CHRISTMAS/reset_password.html
new file mode 100644
index 000000000..43d3073b5
--- /dev/null
+++ b/files/templates/CHRISTMAS/reset_password.html
@@ -0,0 +1,33 @@
+{% extends "authforms.html" %}
+
+{% block pagetitle %}{{'SITE_NAME' | app_config}} Password Reset{% endblock %}
+
+{% block authtitle %}Change your password.{% endblock %}
+
+{% block content %}
+
+
+
+
+
+
+
+
+
+ New Password
+
+
+
+ Confirm New Password
+
+
+
+
+
+
+
+
+
+{% endblock %}
\ No newline at end of file
diff --git a/files/templates/CHRISTMAS/search.html b/files/templates/CHRISTMAS/search.html
new file mode 100644
index 000000000..510f07332
--- /dev/null
+++ b/files/templates/CHRISTMAS/search.html
@@ -0,0 +1,88 @@
+{% extends "default.html" %}
+
+{% block pagetype %}search{% endblock %}
+
+{% block title %}
+
Search for "{{query}}" - {{'SITE_NAME' | app_config}}"
+{% endblock %}
+
+{% block subHeader %}
+
+
+
+
+
+ Search Results: "{{query}}"
+
+
+
+
+ {{ total }}
+ {% if '/users/' in request.path %}
+ user{{ '' if total == 1 else 's' }} found
+ {% else %}
+ {{ sort }} result{{ '' if total == 1 else 's' }} matching
+ "{{query}}" {{ 'from all time' if t=='all' else 'in the last' }}
+ {% if t != 'all' %}{{ t }} {% endif %}
+ {% endif %}
+
+
+
+ {% if not '/users/' in request.path %}
+
+ {% include "/dropdowns/SearchSorts.html" %}
+
+ {% endif %}
+
+
+{% endblock %}
+
+{% block content %}
+
+
+
+ Advanced search parameters (with examples): "author:quadnarca", "domain:reddit.com", "over18:true"
+
+
+
+
+
+
+ {% block listing_template %}
+ {% include "submission_listing.html" %}
+ {% endblock %}
+
+
+{% endblock %}
+
+{% block pagenav %}
+
+
+
+
+{% endblock %}
\ No newline at end of file
diff --git a/files/templates/CHRISTMAS/search_comments.html b/files/templates/CHRISTMAS/search_comments.html
new file mode 100644
index 000000000..0867b69d1
--- /dev/null
+++ b/files/templates/CHRISTMAS/search_comments.html
@@ -0,0 +1,13 @@
+{% extends "search.html" %}
+
+{% block listing_template %}
+
+ {% with comments=comments %}
+ {% include "comments.html" %}
+ {% endwith %}
+
+{% endblock %}
+
+{% block listinglength %}
+{{comments | length}}
+{% endblock %}
\ No newline at end of file
diff --git a/files/templates/CHRISTMAS/search_users.html b/files/templates/CHRISTMAS/search_users.html
new file mode 100644
index 000000000..fb4fe4fde
--- /dev/null
+++ b/files/templates/CHRISTMAS/search_users.html
@@ -0,0 +1,9 @@
+{% extends "search.html" %}
+
+{% block listing_template %}
+
+{% include "user_listing.html" %}
+
+{% endblock %}
+
+{% block listinglength %}{{users | length}}{% endblock %}
\ No newline at end of file
diff --git a/files/templates/CHRISTMAS/settings.html b/files/templates/CHRISTMAS/settings.html
new file mode 100644
index 000000000..46d1cd802
--- /dev/null
+++ b/files/templates/CHRISTMAS/settings.html
@@ -0,0 +1,221 @@
+
+
+
+
+
+
+
+
+
+
+
+
{% block pagetitle %}Settings - {{'SITE_NAME' | app_config}}{% endblock %}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {% block stylesheets %}
+
+
+
+
+
+
+
+ {% if v %}
+
+
+ {% if v.agendaposter %}
+
+ {% elif v.css %}
+
+ {% endif %}
+ {% else %}
+
+
+ {% endif %}
+
+ {% endblock %}
+
+
+
+
+
+
+
+
+
+ {% include "header-tw.html" %}
+
+
+
+
+
+
+
+
+
+
+ {% if error %}
+
+
+
+ {{error}}
+
+
+
+
+
+ {% endif %}
+ {% if msg %}
+
+
+
+ {{msg}}
+
+
+
+
+
+ {% endif %}
+
+ {% block content %}
+ {% endblock %}
+
+
+ {% include "/sidebars/SettingsSidebar.html" %}
+
+
+
+
+ {% include "footer.html" %}
+
+
+
+ {% block clipboard %}
+
+
+ Link copied to clipboard
+
+
+ {% endblock %}
+
+
+
+
+ Error, please try again later.
+
+
+
+ {% if v %}
+
{{ v.formkey }}
+ {% endif %}
+
+ {% if v %}
+ {% include "/modals/Modal2FA.html" %}
+ {% endif %}
+
+ {% block modals %}{% endblock %}
+
+ {% block onload %}{% endblock %}
+
+ {% block scripts %}{% endblock %}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {% if v %}
+
+
+ {% endif %}
+
+
\ No newline at end of file
diff --git a/files/templates/CHRISTMAS/settings2.html b/files/templates/CHRISTMAS/settings2.html
new file mode 100644
index 000000000..0bbdb2f79
--- /dev/null
+++ b/files/templates/CHRISTMAS/settings2.html
@@ -0,0 +1,175 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
{% block pagetitle %}{{'SITE_NAME' | app_config}}{% endblock %}
+
+
+ {% if v %}
+
+
+ {% else %}
+
+
+ {% endif %}
+
+
+
+
+
+
+{% include "header.html" %}
+
+{% block subNav %}
+
+{% set mod = (v and v.admin_level > 1) %}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+{% endblock %}
+
+
+
+{% block content %}
+{% endblock %}
+
+
+
+
+
+
+ Link copied to clipboard
+
+
+
+
+
+ Unable to copy link
+
+
+
+
+
+
+ Error, please try again later.
+
+
+
+{% block mobilenavbar %}
+ {% include "mobile_navigation_bar.html" %}
+{% endblock %}
+
+{% block invitationModal %}
+{% endblock %}
+
+{% block exileModal %}
+{% endblock %}
+
+{% block approveModal %}
+{% endblock %}
+
+{% block errorToasts %}
+{% endblock %}
+
+
+
+{% block scripts %}
+{% endblock %}
+
+
+
+
\ No newline at end of file
diff --git a/files/templates/CHRISTMAS/settings_apps.html b/files/templates/CHRISTMAS/settings_apps.html
new file mode 100644
index 000000000..ebea4a0e7
--- /dev/null
+++ b/files/templates/CHRISTMAS/settings_apps.html
@@ -0,0 +1,156 @@
+{% extends "settings.html" %}
+
+{% block title %}
+
{{'SITE_NAME' | app_config}} - FAQ
+
+{% endblock %}
+
+{% block content %}
+
+
+
+
+
+
+
+
+
+
Your API Applications
+
+{% for app in v.applications if app.client_id %}
+
+
+
+
+
+{% else %}
+
None
+{% endfor %}
+
+
API Applications Awaiting Approval
+
+{% for app in v.applications if not app.client_id %}
+
+
+
+
+
+{% else %}
+
None
+{% endfor %}
+
+
Your Authorized Applications
+
+{% for auth in v.authorizations %}
+
+
+
+
+ {{auth.application.app_name}}
+
+
+
+ Description
+ {{auth.application.description}}
+
+
+
+
+{% else %}
+
None
+{% endfor %}
+
+
Request API Keys
+
+
+
+
+
+
+
+{% endblock %}
+
+
+{% block clipboard %}
+
+
+ Token copied to clipboard
+
+
+{% endblock %}
diff --git a/files/templates/CHRISTMAS/settings_blocks.html b/files/templates/CHRISTMAS/settings_blocks.html
new file mode 100644
index 000000000..488e037a4
--- /dev/null
+++ b/files/templates/CHRISTMAS/settings_blocks.html
@@ -0,0 +1,124 @@
+{% extends "settings.html" %}
+
+{% block pagetitle %}Block Settings - {{'SITE_NAME' | app_config}}{% endblock %}
+
+{% block content %}
+
+
+
+
+
+
+
+ {% if error %}
+
+
+
+ {{error}}
+
+
+
+
+
+ {% endif %}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Users you block
+
You have blocked the following users. They cannot reply to your content or notify you with a username mention.
+
+
+ Block user
+
+
+
+
+
+ {% if v.blocking.first() %}
+
+
+
+
+ User
+ Blocked since
+
+
+
+
+ {% for block in v.blocking %}
+
+
+
+ @{{block.target.username}}
+
+
+ {{block.created_date}}
+
+
+
+
+
+ {% else %}
+ There are no blocked users
+ {% endfor %}
+
+
+
+ {% else %}
+
+ {% endif %}
+
+
+
+
+
+
+
+
+
+ Error. Please try again.
+
+
+
+{% endblock %}
\ No newline at end of file
diff --git a/files/templates/CHRISTMAS/settings_css.html b/files/templates/CHRISTMAS/settings_css.html
new file mode 100644
index 000000000..8daddd41c
--- /dev/null
+++ b/files/templates/CHRISTMAS/settings_css.html
@@ -0,0 +1,58 @@
+{% extends "settings.html" %}
+
+{% block pagetitle %}Custom CSS - {{'SITE_NAME' | app_config}}{% endblock %}
+
+{% block content %}
+
+
+
+
+
+
+
Custom site CSS
+
+
+
+ {% if v.css %}{{v.csslazy}}{% endif %}
+
+ Limit of 4000 characters
+
+
+
+
+
+
+
+
+
+
+
Custom profile CSS
+
+
+
+ {% if v.profilecss %}{{v.profilecss}}{% endif %}
+
+ Limit of 4000 characters
+
+
+
+
+
+
+
+
+
+{% endblock %}
+
+{% block scripts %}
+{% if v.agendaposter %}
+
+{% endif %}
+{% endblock %}
\ No newline at end of file
diff --git a/files/templates/CHRISTMAS/settings_filters.html b/files/templates/CHRISTMAS/settings_filters.html
new file mode 100644
index 000000000..6062fee2c
--- /dev/null
+++ b/files/templates/CHRISTMAS/settings_filters.html
@@ -0,0 +1,394 @@
+{% extends "settings.html" %}
+
+{% block pagetitle %}Profile Settings - {{'SITE_NAME' | app_config}}{% endblock %}
+
+{% block content %}
+
+
+
+
+
+
+
+ {% if v.grinch %}
+
+
Grinch Mode
+
+
+
+
+
+
+ Disable holigay music.
+
+
+
+
+
+ {% endif %}
+
+
Highlight New Comments
+
+
+
+
+
+
+ Highlight new comments with a red dot since your last visit to a thread.
+
+
+
+
+
+
Card view
+
+
+
+ View posts in a larger, card format.
+
+
+
Frontpage Size
+
+
+
+
+ Frontpage Size
+
+
+
+
Change how many posts appear on every page.
+
+
+ {% for entry in [25, 50, 100] %}
+ {{entry}}
+ {% endfor %}
+
+
+
+
+
+
+
+
+
+
Default Sorting and Time Filter
+
+
+
+
+
+ Default Sorting for Comments
+
+
+
+
Change the default sorting for comments.
+
+
+
+
+
+
+
+
+
+
+ Default Sorting for Posts
+
+
+
+
Change the default sorting for posts.
+
+
+ {% for entry in ["hot", "new", "old", "top", "bottom", "controversial", "comments"] %}
+ {{entry}}
+ {% endfor %}
+
+
+
+
+
+
+
+
+
+ Default Time Filter for Posts
+
+
+
+
Change the default time filter for posts.
+
+
+ {% for entry in ["hour", "day", "week", "month", "year", "all"] %}
+ {{entry}}
+ {% endfor %}
+
+
+
+
+
+
+
+
+
+
Tab Behaviour
+
+
+
+
+
+
+ Open Threads In New Tabs
+
+
+
+
+
+
+
+
+
+
+ Open External Links In New Tabs
+
+
+
+
+
+
+
+
+
+
+
+
Twitter Links
+
+
+
+
+
+
+ Use Nitter
+
+
+
+
+
+
+
+
+
+
Reddit Links
+
+
+
+
+
+
+ Use Teddit.net
+
+
+
+
+
+
+
+
+
+ Use Old Reddit
+
+
+
+
+
+
+
+
+
+ Sort by Controversial
+
+
+
+
+
+
+
+
Content Filters
+
+
+
+
+
+
+
+ Disable signatures
+
+
+
+
+
+
+
+
+
+
+
+ Disable +18 Warnings
+
+
+
+
+
+
+
+
+
+
+
+ Slur Replacer
+
+
+
+
+
+
+
+
+
+
+ Hide Posts Voted On
+
+
+
+
+
+
+
+
+
+ Custom Filters
+
+
+
+
+
+ Hides matching posts from the frontpage and collapses matching comments.
+
+ {% if v.custom_filter_list %}{{v.custom_filter_list}}{% endif %}
+
+
+ Use a new line for each filter entry. Limit of 1000 characters.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+{% endblock %}
diff --git a/files/templates/CHRISTMAS/settings_profile.html b/files/templates/CHRISTMAS/settings_profile.html
new file mode 100644
index 000000000..80365b563
--- /dev/null
+++ b/files/templates/CHRISTMAS/settings_profile.html
@@ -0,0 +1,429 @@
+{% extends "settings.html" %}
+
+{% block pagetitle %}Profile Settings - {{'SITE_NAME' | app_config}}{% endblock %}
+
+{% block content %}
+
+
+
+
+
+
Avatar
+
+
+
+
+
+
+
+
+
+
+ Change avatar
+
+
+
+ {% if v.profileurl %}
+
+
+
+
+
+ Delete
+
+
+
+ {% endif %}
+
+
+
+ JPG, PNG, GIF files are supported. Max file size is {% if v and v.patron %}8{% else %}4{% endif %} MB.
+
+
+
+
+
+
+
Banner
+
+
+
+
+
+
+
+
+
+
+ Change banner
+
+
+
+ {% if v.bannerurl %}
+
+
+
+
+
+ Delete
+
+
+
+ {% endif %}
+
+
+
+ JPG, PNG, GIF files are supported. Max file size is {% if v and v.patron %}8{% else %}4{% endif %} MB.
+
+
+
+
+
+
+
+
+
+
Linked accounts
+
+
+ {% if v.discord_id %}
+
+
+
+
+
+ Disconnecting your Discord account will remove you from the {{'SITE_NAME' | app_config}} Discord server.
+
+ {% else %}
+
+
+ Link your Discord account to join the {{'SITE_NAME' | app_config}} Discord server.
+
+ {% endif %}
+
+
+
+
+
+
+
+
Referral code
+
+
+ You have referred {{v.referral_count}} members.
+ Learn more .
+
+
+
+
RSS Feed
+
+
+ You can change the feed by replacing hot with whatever sorting you want and all with whatever time filter you want.
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {% if not v.flairchanged %}
+
+
+ {% endif %}
+
+
+
+
+ {% if v.verified %}
+
+
+ {% endif %}
+
+
+
+
Bio
+
+
+
+ {% if v.bio %}{{v.bio}}{% endif %}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ GIF
+
+
+
+
+
+
+
+
+ Limit of 1500 characters
+
+
+
+
+
+
+
+
+
+
+
Privacy
+
+
+ Hide my posts and comments from others and search engines.
+
+
+
+ Prevent other users from following you.
+
+
+
+
+
+
+
+
Friends
+
+
+ {% if v.friends %}{{v.friends}}{% endif %}
+ Limit of 500 characters
+
+
+
+
+
+
+
Enemies
+
+
+ {% if v.enemies %}{{v.enemies}}{% endif %}
+ Limit of 500 characters
+
+
+
+
+
+
+
+
+
+ {% if v.patron or v.id == 1904 %}
+
+
Signature
+
+
+
+
+
+ {% if v.sig %}{{v.sig}}{% endif %}
+
+
+
+
+ Limit of 200 characters
+
+
+
+
+
+
+ {% endif %}
+
+
+
+{% endblock %}
+
+{% block modals %}
+{% include "emoji_modal.html" %}
+{% include "gif_modal.html" %}
+{% endblock %}
+
+
+{% block scripts %}
+
+
+
+
+
+
+{% endblock %}
diff --git a/files/templates/CHRISTMAS/settings_profilecss.html b/files/templates/CHRISTMAS/settings_profilecss.html
new file mode 100644
index 000000000..241b10d39
--- /dev/null
+++ b/files/templates/CHRISTMAS/settings_profilecss.html
@@ -0,0 +1,41 @@
+{% extends "settings.html" %}
+
+{% block pagetitle %}Custom profilecss - {{'SITE_NAME' | app_config}}{% endblock %}
+
+{% block content %}
+
+
+
+
+
+
+
+
+
+
Edit your profile css.
+
+
+
+
+
+
+
+ {% if v.profilecss %}{{v.profilecss}}{% endif %}
+ Limit of 4000 characters
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+{% endblock %}
\ No newline at end of file
diff --git a/files/templates/CHRISTMAS/settings_security.html b/files/templates/CHRISTMAS/settings_security.html
new file mode 100644
index 000000000..4848b646d
--- /dev/null
+++ b/files/templates/CHRISTMAS/settings_security.html
@@ -0,0 +1,272 @@
+{% extends "settings.html" %}
+
+{% block pagetitle %}Security Settings - {{'SITE_NAME' | app_config}}{% endblock %}
+
+{% block content %}
+
+
+
+
+
+
+
Email
+
+
Change the email address used to sign in to your account.
+
+
+
+
+
+
Email
+
+
+ {% if v.email and not v.is_activated %}
+
Email not verified. You will not be able to recover your account with this email until you verify it.
Verify now.
+ {% elif not v.email %}
+
Add an email to secure your account in case you forget your password.
+ {% endif %}
+
+
+
+
Password
+
+
+ Password required to update your email.
+
+
+
Password required to update your email.
+
+
+
+
+
+
+
+
Password
+
+
Change your account password.
+
+
+
+
+
Two-Factor Authentication
+
+
Change the two-factor settings for your account.
+
+
+
+
+
+
+ Use 2-step login
+
+
+
+
+
+
+
+
+
+
+ This requires entering a randomly-generated, 6-digit code and your password to login. See Google Authenticator or Authy for more details.
+
+
+
+
+
+
+
+
+
Log Out Everywhere
+
+
Log all other devices out of your {{'SITE_NAME' | app_config}} account.
+
+
+
+
+
+
+
+
+
+
+
Password
+
+
+
+
+
+
+
+
+
+
This will also invalidate any existing recovery links associated with this account.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+{% endblock %}
+
+{% block scripts %}
+
+{% endblock %}
diff --git a/files/templates/CHRISTMAS/shadowbanned.html b/files/templates/CHRISTMAS/shadowbanned.html
new file mode 100644
index 000000000..66b08b87f
--- /dev/null
+++ b/files/templates/CHRISTMAS/shadowbanned.html
@@ -0,0 +1,21 @@
+{% extends "settings2.html" %}
+
+{% block content %}
+
+
+
+ #
+ Name
+ Shadowbanned by
+
+
+{% for user in users %}
+
+ {{loop.index}}
+ {{user.username}}
+ {{user.shadowbanned}}
+
+{% endfor %}
+
+
+{% endblock %}
diff --git a/files/templates/CHRISTMAS/shop.html b/files/templates/CHRISTMAS/shop.html
new file mode 100644
index 000000000..2a4da0e69
--- /dev/null
+++ b/files/templates/CHRISTMAS/shop.html
@@ -0,0 +1,174 @@
+{% extends "default.html" %}
+
+{% block title %}
+
Shop
+{% endblock %}
+
+{% block subHeader %}
+
+
+
+
+
+ rDrama's Holigay Emporium
+
+
+ Stir drama. Earn coins.
+
+
+
+
+
+ {{v.coins}}
+
+ your balance
+
+
+
+ {{v.coins_spent}}
+
+ spent by you
+
+
+
+ {{sales}}
+
+ total sales
+
+
+
+
+{% endblock %}
+
+{% block content %}
+
+ {% if error %}
+
+
+
+ {{error}}
+
+
+
+
+
+ {% endif %}
+ {% if msg %}
+
+
+
+ {{msg}}
+
+
+
+
+
+ {% endif %}
+
+
+
+
+
+
+
+
+
+
+
+
+ Item
+
+
+ Description
+
+
+ Price
+
+
+ Owned
+
+
+ Buy
+
+
+
+
+ {% for a in awards %}
+
+
+
+
+
+
+
+
+ {{a['title']}}
+
+
{{a['kind']}}
+
+
+
+
+ {{a['description']}}
+
+
+
+
+ {{a['price']}}
+
+
+
+ {{a['owned']}}
+
+ {% set kind = a['kind'] %}
+
+
+ Buy
+
+ {% if v.procoins and a['price'] < 3600 %}
+
+ Buy with MarseyBux
+
+ {% endif %}
+
+
+ {% endfor %}
+
+
+
+
+
+
+
+
+{% endblock %}
+
+{% block modals %}
+
+{% include '/awards/Christmas/Snow.html' %}
+{% endblock %}
+
+{% block scripts %}
+
+
+{% endblock %}
diff --git a/files/templates/sidebars/HomeSidebar.html b/files/templates/CHRISTMAS/sidebars/HomeSidebar.html
similarity index 87%
rename from files/templates/sidebars/HomeSidebar.html
rename to files/templates/CHRISTMAS/sidebars/HomeSidebar.html
index e9fdce648..c637f4794 100644
--- a/files/templates/sidebars/HomeSidebar.html
+++ b/files/templates/CHRISTMAS/sidebars/HomeSidebar.html
@@ -8,7 +8,7 @@
-
+
@@ -21,7 +21,7 @@
-
+
@@ -34,7 +34,7 @@
-
+
diff --git a/files/templates/sidebars/SubmitSidebar.html b/files/templates/CHRISTMAS/sidebars/SubmitSidebar.html
similarity index 100%
rename from files/templates/sidebars/SubmitSidebar.html
rename to files/templates/CHRISTMAS/sidebars/SubmitSidebar.html
diff --git a/files/templates/CHRISTMAS/sign_up.html b/files/templates/CHRISTMAS/sign_up.html
new file mode 100644
index 000000000..3ae86022c
--- /dev/null
+++ b/files/templates/CHRISTMAS/sign_up.html
@@ -0,0 +1,167 @@
+{% set random = range(1, 13)|random() %}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {% if ref_user %}{{ref_user.username}} invites you to {{'SITE_NAME' | app_config}}{% else %}Sign up - {{'SITE_NAME' | app_config}}{% endif %}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {% if ref_user %}
+
@{{ref_user.username}} has invited you!
+
Looks like someone wants you to join {{'SITE_NAME' | app_config}}.
+ {% endif %}
+
+
+
+
+
+
+
+ {% if error %}{{error}}
{% endif %}
+
+
+
+
+ {% if redirect %}
+ {% endif %}
+ {% if ref_user %}
+ {% endif %}
+
+
+
+
+
+
+
+ Username
+
+
+
+
+
+
+ Email Address (optional)
+
+
+
+
+
+ Password
+
+
+ Minimum of 8 characters required.
+
+
+ Your password meets the requirements.
+
+
+
+
+
+ {% if hcaptcha %}
+
+ {% endif %}
+
+
+ Create account
+
+
+
+
+
+
+
+
+
+
+ About
+
+
+
+
+ Community Etiquette
+
+
+
+
+ ©2021 Copyright rdrama.net
+
+
+
+
+
+
+
+
+ {% include '/awards/Christmas/Snow.html' %}
+
+
+
+
+
+ {% if hcaptcha %}
+
+ {% endif %}
+
+
+
+
+
+
diff --git a/files/templates/CHRISTMAS/sign_up_failed_ref.html b/files/templates/CHRISTMAS/sign_up_failed_ref.html
new file mode 100644
index 000000000..a22875866
--- /dev/null
+++ b/files/templates/CHRISTMAS/sign_up_failed_ref.html
@@ -0,0 +1,103 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {% if ref_user %}{{ref_user.username}} invites you to {{'SITE_NAME' | app_config}}{% else %}{{'SITE_NAME' | app_config}}{% endif %}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Link copied to clipboard
+
+
+
+
+
+
diff --git a/files/templates/CHRISTMAS/submission.html b/files/templates/CHRISTMAS/submission.html
new file mode 100644
index 000000000..6c2c3a2b5
--- /dev/null
+++ b/files/templates/CHRISTMAS/submission.html
@@ -0,0 +1,657 @@
+{% extends "default.html" %}
+
+{% set ups=p.upvotes %}
+{% set downs=p.downvotes %}
+{% set score=ups-downs %}
+
+{% if v %}
+{% set voted=p.voted if p.voted else 0 %}
+{% else %}
+{% set voted=-2 %}
+{% endif %}
+
+{% block title %}
+
+{% if 'rama' not in request.host %}
+
+
+{% if v %}
+
+{% endif %}
+
+{% endif %}
+
+
+
+
+{% if comment_info and not comment_info.is_banned and not linked_comment.deleted_utc > 0 %}
+{{'@'+comment_info.author.username}} comments on "{{p.plaintitle(v)}} - {{'SITE_NAME' | app_config}}"
+
+
+
+
+{% if comment_info.edited_utc %} {% endif %}
+
+
+
+
+{% if p.url and p.url.lower().endswith('.mp4') %}
+
+{% endif %}
+
+
+
+
+
+
+
+
+
+
+
+{% if linked_comment.author.is_private %}
+
+{% endif %}
+
+{% else %}
+{{p.plaintitle(v)}} - {{'SITE_NAME' | app_config}}
+
+
+{% if p.author %} {% endif %}
+
+{% if p.edited_utc %} {% endif %}
+
+{% if p.author %} {% endif %}
+
+
+{% if p.url and p.url.lower().endswith('.mp4') %}
+
+{% endif %}
+
+
+
+
+
+
+{% if p.author %} {% endif %}
+
+
+
+
+{% if p.author.is_private %}
+
+{% endif %}
+
+{% endif %}
+{% endblock %}
+
+{% block pagetype %}thread{% endblock %}
+
+{% block subHeader %}
+
+{% endblock %}
+
+{% block content %}
+
+
+
+{% if (p.is_banned and p.ban_reason) or (p.bannedfor and p.author.banned_by) %}
+
+
+
+ {% if p.is_banned and p.ban_reason %}
+
+
+
+ Removed by @{{p.ban_reason}}
+
+
+ {% endif %}
+
+ {% if p.bannedfor and p.author.banned_by %}
+
+
+
+ Author was banned for this post by
+ @{{p.author.banned_by.username}}
+
+
+ {% endif %}
+
+{% endif %}
+
+{% if p.awards or p.over_18 or p.stickied or p.is_pinned or p.private or p.flair or p.club %}
+
+
+
+
+ {% if p.flair %}
+
+
+ {{p.flair | safe}}
+
+
+ {% endif %}
+
+ {% if p.over_18 %}
+
+ +18
+
+ {% endif %}
+
+ {% if p.club %}
+
+ Country Club
+
+ {% endif %}
+
+ {% if p.stickied %}
+
+
+
+ Pinned {% if p.stickied.startswith('t:') %}until {{p.stickied[2:]}}{% else %}by @{{p.stickied}}{%endif%}
+
+
+ {% endif %}
+
+ {% if p.is_pinned %}
+
+
+
+ Pinned to profile
+
+
+ {% endif %}
+
+ {% if p.private %}
+
+
+
+ Draft
+
+
+ {% endif %}
+
+ {% if p.awards %}
+ {% for a in p.awards %}
+
+
+
+ {% endfor %}
+ {% endif %}
+
+
+{% endif %}
+
+
+
+
+
+
+
+ {% if not p.is_image and p.thumb_url and not p.embed_url %}
+
+ {% endif %}
+
+
+
+
+
+ {% if p.active_flags %}
+
+
Reported by:
+
+
+ {% for f in p.ordered_flags %}
+ {{f.user.username}} {% if f.reason %}: {{f.reason | safe}}{% endif %} {% if v.admin_level==6 %}[remove] {% endif %}
+ {% endfor %}
+
+
+ {% endif %}
+
+
+
+
+
+
+ {% if p.realurl(v) %}
+
+ {{p.realtitle(v) | safe}}
+
+ {% else %}
+ {{p.realtitle(v) | safe}}
+ {% endif %}
+
+
+
+
+ {% if p.realurl(v) %}
+ {% if "streamable.com/" in p.realurl(v) %}
+
+
+ {% elif "spotify.com/" in p.realurl(v) %}
+ {% if "spotify.com/embed/" in p.realurl(v) %}
+ {% set streamurl=p.realurl(v) %}
+ {% else %}
+ {% set streamurl=p.realurl(v).replace("spotify.com", "spotify.com/embed") %}
+ {% endif %}
+
+
+
+ {% elif not p.embed_url and not p.is_image and not (p.url and p.url.lower().endswith('.mp4')) %}
+
+
+ {{p.domain|truncate(30, True)}}
+
+
+
+ {% endif %}
+ {% endif %}
+
+ {% if p.is_image %}
+
+
+
+ {% elif p.url and p.url.lower().endswith('.mp4') %}
+
+
+
+ {% endif %}
+
+ {{p.realbody(v) | safe}}
+
+
+ {% if p.options.count() %}
+ {% include "Poll.html" %}
+ {% endif %}
+
+
+ {% if p.bet_options.count() %}
+ {% include "Bets.html" %}
+ {% endif %}
+
+
+
+ {% if p.embed_url %}
+ {% if p.domain == "twitter.com" %}
+ {{p.embed_url | safe}}
+ {% if v and v.theme.split("_")[0] in ["light", "coffee", "4chan"] %}
+
+ {% else %}
+
+ {% endif %}
+
+ {% elif "youtu" in p.domain %}
+ {% if 'lite' in p.embed_url %}
+ {{p.embed_url | safe}}
+ {% else %}
+
+
+
+ {% endif %}
+ {% endif %}
+ {% endif %}
+
+ {% if p.author.sig_html and (p.author_id == 1904 or not (v and v.sigs_disabled)) %}
+
+ {{p.author.sig_html | safe}}
+ {% endif %}
+
+
+ {% if v and (v.id==p.author_id or v.admin_level > 1 and v.admin_level > 2) %}
+
+ {% include "/submission/SubmissionEditForm.html" %}
+
+ {% endif %}
+
+ {% if p.embed_url and "http" not in p.embed_url and "<" not in p.embed_url %}
+
+
+
+
+ {{ p.embed_url | post_embed(v) | safe }}
+
+
+
+
+ {% endif %}
+
+
+
+
+
+ {% include "/submission/SubmissionActions.html" %}
+
+
+
+
+
+
+
+
+
+
+
+
+ {% if v and request.path.startswith('/@') and not v.admin_level %}
+ {% if voted==1 %}
+
+ {% endif %}
+
+
{{score}}
+
+ {% if voted==-1 %}
+
+ {% endif %}
+
+ {% elif v %}
+
+
+
+
{{score}}
+
+
+
+ {% else %}
+
+
+
+
{{score}}
+
+
+ {% endif %}
+
+
+
+
+
+
+
+ {% include "/submission/SubmissionActionsMobile.html" %}
+
+
+
+
+ {% if not p.is_image and not (p.url and p.url.lower().endswith('.mp4')) %}
+
+ {% endif %}
+
+
+
+
+
+
+
+ {{ p.comment_count }} {{ 'Response' if p.comment_count == 1 else 'Responses' }}
+
+
+ {% if linked_comment and p.comment_count >= 2%}
+
+ View entire thread
+
+ {% endif %}
+
+
+
+
+ {% if v %}
+
+ {% endif %}
+
+ {% if not v and not p.is_banned %}
+
+ {% endif %}
+
+ {% if p.replies %}
+
+ {% elif not p.replies and p.deleted_utc == 0 %}
+
+ {% endif %}
+
+ {% if offset %}
+
+ {% endif %}
+
+
+
+
+
+ {% endblock %}
+
+
+{% block sidebar %}
+ {% include "/sidebars/SubmissionSidebar.html" %}
+{% endblock %}
+
+{% block modals %}
+ {% if v %}
+ {% if v.id == p.author_id %}
+ {% include "delete_post_modal.html" %}
+ {% endif %}
+
+ {% include "report_post_modal.html" %}
+ {% include "award_modal.html" %}
+ {% include "emoji_modal.html" %}
+ {% include "gif_modal.html" %}
+
+ {% if v.admin_level == 6 %}
+ {% include "ban_modal.html" %}
+ {% endif %}
+ {% endif %}
+
+ {% include "/modals/ModalSubmissionActions.html" %}
+ {% include "expanded_image_modal.html" %}
+{% endblock %}
+
+{% block scripts %}
+
+ {% include "/submission/SubmissionAwards.html" %}
+
+ {% if v %}
+
+ {% if not p.comment_count %}
+
+ {% endif %}
+ {% endif %}
+
+ {% if v and (v.id == p.author_id or v.admin_level > 1 and v.admin_level > 2) %}
+
+ {% endif %}
+
+ {% if not v or v.highlightcomments %}
+
+ {% endif %}
+
+
+{% endblock %}
\ No newline at end of file
diff --git a/files/templates/submission/SubmissionActions.html b/files/templates/CHRISTMAS/submission/SubmissionActions.html
similarity index 100%
rename from files/templates/submission/SubmissionActions.html
rename to files/templates/CHRISTMAS/submission/SubmissionActions.html
diff --git a/files/templates/submission/SubmissionActionsMobile.html b/files/templates/CHRISTMAS/submission/SubmissionActionsMobile.html
similarity index 100%
rename from files/templates/submission/SubmissionActionsMobile.html
rename to files/templates/CHRISTMAS/submission/SubmissionActionsMobile.html
diff --git a/files/templates/submission/SubmissionAwards.html b/files/templates/CHRISTMAS/submission/SubmissionAwards.html
similarity index 80%
rename from files/templates/submission/SubmissionAwards.html
rename to files/templates/CHRISTMAS/submission/SubmissionAwards.html
index 8bb693638..fcdc4bb61 100644
--- a/files/templates/submission/SubmissionAwards.html
+++ b/files/templates/CHRISTMAS/submission/SubmissionAwards.html
@@ -5,12 +5,12 @@
{% if p.award_count("shit") %}
-
+
{% set minbugs = 10*p.award_count("shit") if p.award_count("shit") < 3 else 20 %}
{% set maxbugs = 20*p.award_count("shit") if p.award_count("shit") < 3 else 40 %}
+
{% set minbugs = 10*p.award_count("fireflies") if p.award_count("fireflies") < 3 else 20 %}
{% set maxbugs = 20*p.award_count("fireflies") if p.award_count("fireflies") < 3 else 40 %}
+
{% elif p.award_count("fireplace")%}
-
+
{% else %}
-
+
{% endif %}
{% endif %}
{% if not v %}
{% if p.award_count("snow") and p.award_count("fireplace") %}
-
+
{% elif p.award_count("fireplace")%}
-
+
{% else %}
-
+
{% endif %}
{% endif %}
diff --git a/files/templates/submission/SubmissionEditForm.html b/files/templates/CHRISTMAS/submission/SubmissionEditForm.html
similarity index 100%
rename from files/templates/submission/SubmissionEditForm.html
rename to files/templates/CHRISTMAS/submission/SubmissionEditForm.html
diff --git a/files/templates/submission/SubmissionListingActions.html b/files/templates/CHRISTMAS/submission/SubmissionListingActions.html
similarity index 100%
rename from files/templates/submission/SubmissionListingActions.html
rename to files/templates/CHRISTMAS/submission/SubmissionListingActions.html
diff --git a/files/templates/CHRISTMAS/submission_banned.html b/files/templates/CHRISTMAS/submission_banned.html
new file mode 100644
index 000000000..420c5cf01
--- /dev/null
+++ b/files/templates/CHRISTMAS/submission_banned.html
@@ -0,0 +1,138 @@
+{% extends "submission.html" %}
+
+{% set score=p.score %}
+{% if v %}
+{% set voted=p.voted %}
+{% set adjust=voted %}
+{% else %}
+{% set voted=-2 %}
+{% set adjust=0 %}
+{% endif %}
+
+{% block title %}
+{{p.plaintitle(v)}}
+{% if p.is_banned %}
+
+{% else %}
+
+{% endif %}
+{% endblock %}
+
+{% block adminpanel %}
+{% if v.admin_level > 1 %}
+
+
+
+
+{% endif %}
+{% if v.admin_level > 0 and v.id==p.author_id %}
+
+
+
+
+{% endif %}
+{% if v.admin_level > 1 and v.admin_level > p.author.admin_level %}
+{% if p.is_banned %}
+
+
+
+
+{% else %}
+
+
+
+
+{% endif %}
+{% endif %}
+Score: +{{p.upvotes}}/-{{p.downvotes}}
+{% endblock %}
+
+{% block content %}
+
+
+
+
+
+
+
{% if p.over_18 %}+18 {% endif %}{% if p.is_banned %}removed by @{{p.ban_reason}}{% else %}[Deleted by user]{% endif %}
+
{{p.plaintitle(v)}}
+
{% if p.over_18 %}+18 {% endif %}{% if p.is_banned %}removed by @{{p.ban_reason}}{% else %}[Deleted by user]{% endif %}
+
+
+
+
+
+
+
+ {% if v and v.admin_level > 1 and p.body_html %}
+
+ {{p.body_html | safe}}
+
+ {% endif %}
+
+
+
+
+
+
+
+
+
+
+
+{% endblock %}
+
+{% block mobileactions %}
+
+
+
+{% endblock %}
diff --git a/files/templates/CHRISTMAS/submission_listing.html b/files/templates/CHRISTMAS/submission_listing.html
new file mode 100644
index 000000000..19c4c137f
--- /dev/null
+++ b/files/templates/CHRISTMAS/submission_listing.html
@@ -0,0 +1,399 @@
+{% if v %}
+ {% include "award_modal.html" %}
+{% endif %}
+
+{% for p in listing %}
+
+{% set ups=p.upvotes %}
+{% set downs=p.downvotes %}
+{% set score=ups-downs %}
+
+{% if v %}
+ {% set voted= p.voted %}
+{% else %}
+ {% set voted=-2 %}
+{% endif %}
+
+{% if request.host == 'pcmemes.net' %}
+ {% set cc='SPLASH MOUNTAIN' %}
+{% else %}
+ {% set cc='COUNTRY CLUB' %}
+{% endif %}
+
+{% if p.active_flags %}
+
+
+ Reported by:
+
+
+ {% for f in p.ordered_flags %}
+
+ {{f.user.username}}
+ {% if f.reason %}: {{f.reason | safe}}{% endif %} {% if v.admin_level==6 %}
+
+ remove
+
+ {% endif %}
+
+ {% endfor %}
+
+
+{% endif %}
+
+
+
+
+
+
+
+
+
+
+ {% if not postembed %}
+
+ {% if v and request.path.startswith('/@') and not v.admin_level %}
+
+ {% if voted==1 %}
+
+ {% endif %}
+
+
{{score}}
+
+ {% if voted==-1 %}
+
+ {% endif %}
+
+ {% elif v %}
+
+
+
+
{{score}}
+
+
+
+ {% else %}
+
+
+
+
{{score}}
+
+
+
+ {% endif %}
+
+ {% endif %}
+
+
+
+
+
+
+
+
+ {% if p.flair %}
+
+
+ {{p.flair | safe}}
+
+
+ {% endif %}
+
+ {% if p.over_18 %}
+
+ +18
+
+ {% endif %}
+
+ {% if p.club %}
+
+ Country Club
+
+ {% endif %}
+
+ {% if p.stickied %}
+
+
+
+ Pinned {% if p.stickied.startswith('t:') %}until {{p.stickied[2:]}}{% else %}by @{{p.stickied}}{%endif%}
+
+
+ {% endif %}
+
+ {% if p.is_pinned and request.path.startswith('/@') %}
+
+
+
+ Pinned to profile
+
+
+ {% endif %}
+
+ {% if p.private %}
+
+
+
+ Draft
+
+
+ {% endif %}
+
+ {% if p.awards %}
+ {% for a in p.awards %}
+
+
+
+ {% endfor %}
+ {% endif %}
+
+
+
+
+ {% if p.realbody(v) and not p.over_18 %}
+
+ {{p.realbody(v) | safe}}
+
+ {% endif %}
+
+
+ {% include "/submission/SubmissionActions.html" %}
+
+
+
+
+
+ {% if p.club and not (v and v.paid_dues) %}
+
+ {% elif not p.url %}
+
+
+
+ {% elif p.is_image %}
+
+
+
+ {% elif (p.url and p.url.lower().endswith('.mp4')) or (p.embed_url and "youtu" in p.domain) or (p.url and "streamable.com/e/" in p.url) %}
+
+
+
+ {% else %}
+
+
+
+ {% endif %}
+
+
+
+
+
+
+ {% include "/submission/SubmissionActionsMobile.html" %}
+
+
+{% include "/modals/ModalSubmissionActions.html" %}
+
+{% if p.is_image and not p.over_18 and ((v and v.cardview) or (not v and environ.get('CARD_VIEW') == '1')) %}
+
+{% endif %}
+
+{% if not p.club or v and (v.paid_dues or v.id == p.author_id) %}
+ {% if p.url and p.url.lower().endswith('.mp4') %}
+
+
+
+
+
+ {% elif p.embed_url and "youtu" in p.domain %}
+
+ {% if 'lite' in p.embed_url %}
+ {{p.embed_url | safe}}
+ {% else %}
+
+ {% endif %}
+
+ {% elif p.url and "streamable.com/e/" in p.url %}
+
+
+
+ {% endif %}
+{% endif %}
+
+
+
+{% else %}
+
+{% if request.path.endswith('/admin/queue') %}
+
+
+
+
+
This queue is empty. (That's a good thing.)
+
+
+
+
+
+{% elif u %}
+{% if v and v.id == u.id %}
+
+
+
+
+
+
+
+
You haven't {% if "saved" in request.full_path %}saved{% else %}made{% endif %} a post yet
+
Your {% if "saved" in request.full_path %}saved posts{% else %}posting history{% endif %} will show here.
+ {% if "saved" not in request.full_path %}
Create a post {% endif %}
+
+
+
+
+
+{% else %}
+
+
+
+
+
+
+
+
@{{u.username}} hasn't made a post yet
+
Their posting history will show here.
+
+
+
+
+
+{% endif %}
+
+{% else %}
+
+
+
No posts here -_-
+
+ Looks like there is no content atm.
+
+
+{% endif %}
+
+{% endfor %}
+
+{% if v %}
+ {% include "delete_post_modal.html" %}
+ {% include "report_post_modal.html" %}
+ {% if v.admin_level == 6 %}
+ {% include "ban_modal.html" %}
+ {% endif %}
+{% endif %}
+
+{% include "expanded_image_modal.html" %}
+
+
+
+
+
diff --git a/files/templates/CHRISTMAS/submit.html b/files/templates/CHRISTMAS/submit.html
new file mode 100644
index 000000000..5c94c0614
--- /dev/null
+++ b/files/templates/CHRISTMAS/submit.html
@@ -0,0 +1,172 @@
+{% block title %}
+Create a post - {{'SITE_NAME' | app_config}}
+{% endblock %}
+
+{% extends "default.html" %}
+
+{% block subHeader %}
+
+
+
+
+
+ Create post
+
+
+ Share drama with the community.
+
+
+
+ {% if error %}{{error}} {% endif %}
+ Post
+
+
+
+{% endblock %}
+
+{% block content %}
+
+
+
+
+
{{ v.username }}
+
+
+
+
+
+
+
Title
+
+
+
+
+
+ Add emoji
+
+
+
+
+
+
+
+ Link
+ (optional if you have text)
+
+
+
+
+
+ To post an image, use a direct image link such as i.imgur.com
+
+
+
+
+
+
+
+ Image or Video
+ (optional)
+
+
+
+
+
+ Select file
+
+
+
+ You may upload videos.
+
+
+
+
+
+
+
+
+
+
+
+
+ Post
+ (optional if you have a link)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ GIF
+
+
+
+
+
+
+
+
+
+
Formatting help
+
+
+
+
+
+
+
+
+
+
+
+
+{% endblock %}
+
+{% block sidebar %}
+ {% include '/sidebars/SubmitSidebar.html' %}
+{% endblock %}
+
+{% block modals %}
+ {% include "emoji_modal.html" %}
+ {% include "gif_modal.html" %}
+ {% include '/awards/Christmas/Snow.html' %}
+{% endblock %}
+
+{% block scripts %}
+
+
+
+{% endblock %}
diff --git a/files/templates/tailwind-class-list.html b/files/templates/CHRISTMAS/tailwind-class-list.html
similarity index 100%
rename from files/templates/tailwind-class-list.html
rename to files/templates/CHRISTMAS/tailwind-class-list.html
diff --git a/files/templates/tailwind.html b/files/templates/CHRISTMAS/tailwind.html
similarity index 100%
rename from files/templates/tailwind.html
rename to files/templates/CHRISTMAS/tailwind.html
diff --git a/files/templates/CHRISTMAS/thiefs.html b/files/templates/CHRISTMAS/thiefs.html
new file mode 100644
index 000000000..198ae40a1
--- /dev/null
+++ b/files/templates/CHRISTMAS/thiefs.html
@@ -0,0 +1,57 @@
+{% extends "default.html" %}
+{% block content %}
+
+Successful thiefs
+
+
+
+
+ #
+ Name
+
+
+{% for user in successful %}
+
+ {{loop.index}}
+ {{user.username}}
+
+{% endfor %}
+
+
+
+
Evicted thiefs
+
+
+
+
+ #
+ Name
+
+
+{% for user in failed2 %}
+
+ {{loop.index}}
+ {{user.username}}
+
+{% endfor %}
+
+
+
+
Jailed thiefs
+
+
+
+
+ #
+ Name
+
+
+{% for user in failed %}
+
+ {{loop.index}}
+ {{user.username}}
+
+{% endfor %}
+
+
+{% endblock %}
\ No newline at end of file
diff --git a/files/templates/toasts/toasts.html b/files/templates/CHRISTMAS/toasts/toasts.html
similarity index 100%
rename from files/templates/toasts/toasts.html
rename to files/templates/CHRISTMAS/toasts/toasts.html
diff --git a/files/templates/CHRISTMAS/truescore.html b/files/templates/CHRISTMAS/truescore.html
new file mode 100644
index 000000000..89cec2269
--- /dev/null
+++ b/files/templates/CHRISTMAS/truescore.html
@@ -0,0 +1,25 @@
+{% extends "settings2.html" %}
+
+{% block pagetitle %}Truescore Leaderboard{% endblock %}
+
+{% block content %}
+
+
Top 25 by truescore
+
+
+
+
+ #
+ Name
+ Score
+
+
+{% for user in users %}
+
+ {{loop.index}}
+ {{user.username}}
+ {{user.truecoins}}
+
+{% endfor %}
+
+{% endblock %}
\ No newline at end of file
diff --git a/files/templates/CHRISTMAS/user_listing.html b/files/templates/CHRISTMAS/user_listing.html
new file mode 100644
index 000000000..589e3a6fe
--- /dev/null
+++ b/files/templates/CHRISTMAS/user_listing.html
@@ -0,0 +1,44 @@
+{% for u in users %}
+
+
+
+
+
+
+
+
+
+
+
+
+
@{{u.username}}
+
+ {% if v %}
+ {% if v.id!=u.id and not u.is_private and not u.is_nofollow %}
+
+ Follow
+
+
+ {% if u.id != 995 %}
+
+ Unfollow
+
+
+ {% endif %}
+ {% endif %}
+ {% else %}
+
+ {% endif %}
+
+
+ {% if not hide_bios and u.bio_html %}
+
+ {{u.bio_html | safe}}
+
+ {% endif %}
+
+
+
+{% endfor %}
diff --git a/files/templates/CHRISTMAS/userpage.html b/files/templates/CHRISTMAS/userpage.html
new file mode 100644
index 000000000..55e573c53
--- /dev/null
+++ b/files/templates/CHRISTMAS/userpage.html
@@ -0,0 +1,427 @@
+{% extends "default.html" %}
+
+{% block pagetype %}userpage{% endblock %}
+
+{% block title %}
+
+
+
{{u.username}}'s profile - {{'SITE_NAME' | app_config}}
+{% if u.is_private %}
+
+{% endif %}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+{% endblock %}
+
+{% block subHeader %}
+
+
+ {% if v %}
+
+
+ {% if v.admin_level > 1 %}
+
+ {% include '/dropdowns/ProfileAdminDropdown.html' %}
+
+ {% endif %}
+ {% if not u.is_suspended %}
+
+ {% include '/dropdowns/ProfileDropdown.html' %}
+
+ {% if v.id == u.id %}
+
+
+
+ Edit profile
+
+
+ {% endif %}
+ {% if u.song and v and v.mute and not u.unmutable %}
+
+
+
+ Pause anthem
+
+
+
+
+
+ Play anthem
+
+
+ {% endif %}
+ {% if v.id != u.id %}
+
+
+
+ Message
+
+
+ {% if u.id != 995 %}
+
+
+
+ Unfollow
+
+
+ {% endif %}
+
+
+
+ Follow
+
+
+ {% endif %}
+ {% endif %}
+
+
+ {% endif %}
+
+
+
+
+
+
+
+
+ {{ u.username }}
+
+ {% if u.verified %}
+
+ {% endif %}
+ {% if u.admin_level > 1 or (u.admin_level == 1 and not(v and v.admin_level > 1)) %}
+
+ {% elif u.admin_level == 1 and v and v.admin_level > 1 %}
+
+ {% endif %}
+ {% if v and v.has_follower(u) and not v.is_nofollow %}
+
Follows you
+ {% endif %}
+ {% if u.customtitle %}
+
{% if u.quadrant %}
+ {% endif %}{{u.customtitle | safe}}
+
+ {% endif %}
+
+
+
+ rDramanaut since
+
+ {{u.created_date}}
+
+
+ {% if u.username != u.original_username %}
+
·
+
+ a.k.a.
+ @{{u.original_username}}
+
+
+ {% endif %}
+
+
+
+
+ {% if u.id == v.id or not u.is_private %}
+
+ {% endif %}
+
+
+
+
+ {% if u.bio_html %}
+
{{u.bio_html | safe}}
+ {% else %}
+
No bio...
+ {% endif %}
+
+ {% if u.id == v.id or not u.is_private %}
+
+ {% endif %}
+ {% if u.badges %}
+
+ {% for b in u.badges %}
+
+ {% if b.url %}
+
+
+
+ {% else %}
+
+ {% endif %}
+
+ {% endfor %}
+
+ {% endif %}
+ {% if u.friends_html or u.enemies_html %}
+
+ {% if u.friends_html %}
+
Friends
+ {{u.friends_html | safe}}
+ {% endif %}
+
+ {% if u.enemies_html %}
+
Enemies
+ {{u.enemies_html | safe}}
+ {% endif %}
+
+ {% endif %}
+
+
+{% endblock %}
+
+{% block subHeader2 %}
+
+
+
+
+
+
+
+
+
+
+ {% if u.id == v.id %}
+
+
+ Saved Posts
+
+
+
+
+
+ {% endif %}
+
+
+
+
+{% endblock %}
+
+{% block content %}
+
+
+ {% if v and v.admin_level > 1 and u.agendaposter %}
+
+
+
+
+
+
+ {{ u.username }} has Agendaposter theme activated
+
+
+
+ {% endif %}
+
+ {% if u.is_suspended %}
+
+
+
+
+
+
+ {% if u.unban_utc %}
+
{{u.unban_string}}
+ {% endif %}
+
+
+ {% endif %}
+
+ {% if v and v.admin_level > 1 and u.shadowbanned %}
+
+
+
+
+
+
+ {{ u.username }} is shadowbanned
+
+
+
+ {% endif %}
+
+
+ {% if not "saved" in request.full_path %}
+
+ {% include "/dropdowns/SubmissionSorts.html" %}
+
+
+ {% endif %}
+
+ {% include "submission_listing.html" %}
+
+
+ {% if listing %}
+
+ {% if page>1 %}
+
+ Prev
+
+ {% else %}
+
Prev
+ {% endif %}
+ {% if next_exists %}
+
Next
+ {% else %}
+
Next
+ {% endif %}
+
+ {% endif %}
+
+
+
+{% if u.song and v and v.mute and not u.unmutable %}
+
Pause anthem
+
Play anthem
+{% endif %}
+
+{% endblock %}
+
+{% block sidebar %}
+{% include "/sidebars/ProfileSidebar.html" %}
+{% endblock %}
+
+{% block modals %}
+{% if v %}
+ {% include "emoji_modal.html" %}
+ {% include "gif_modal.html" %}
+ {% include "/modals/ModalDirectMessage.html" %}
+ {% include "/modals/ModalGiftCoins.html" %}
+ {% if v.admin_level > 1 %}
+ {% include "/modals/ModalAdminManageUser.html" %}
+ {% endif %}
+{% endif %}
+{% endblock %}
+
+{% block scripts %}
+{% if v %}
+
+{% endif %}
+
+{% if u.song %}
+
+{% endif %}
+
+
+{% endblock %}
\ No newline at end of file
diff --git a/files/templates/CHRISTMAS/userpage_blocked.html b/files/templates/CHRISTMAS/userpage_blocked.html
new file mode 100644
index 000000000..cff2bff09
--- /dev/null
+++ b/files/templates/CHRISTMAS/userpage_blocked.html
@@ -0,0 +1,24 @@
+{% extends "default.html" %}
+
+{% block pagetype %}userpage{% endblock %}
+
+{% block fixedMobileBarJS %}
+{% endblock %}
+
+{% block title %}
+
{{u.username}}
+
+{% endblock %}
+
+
+
+
+
+
+
+
+
@{{u.username}} has blocked you.
+
You can't see their profile.
+
+
+
\ No newline at end of file
diff --git a/files/templates/CHRISTMAS/userpage_blocking.html b/files/templates/CHRISTMAS/userpage_blocking.html
new file mode 100644
index 000000000..d96072d77
--- /dev/null
+++ b/files/templates/CHRISTMAS/userpage_blocking.html
@@ -0,0 +1,30 @@
+{% extends "default.html" %}
+
+{% block pagetype %}userpage{% endblock %}
+
+{% block fixedMobileBarJS %}
+{% endblock %}
+
+{% block title %}
+
{{u.username}}
+
+{% endblock %}
+
+{% block content %}
+
+
+
+
+
+
+
+
+
You are blocking @{{u.username}}.
+
So we aren't going to show you their profile.
+
+
+
+{% endblock %}
+
+{% block pagenav %}
+{% endblock %}
diff --git a/files/templates/CHRISTMAS/userpage_comments.html b/files/templates/CHRISTMAS/userpage_comments.html
new file mode 100644
index 000000000..383e12760
--- /dev/null
+++ b/files/templates/CHRISTMAS/userpage_comments.html
@@ -0,0 +1,83 @@
+{% extends "userpage.html" %}
+
+
+
+
+{% block content %}
+
+
+ {% if not "saved" in request.full_path %}
+
+ {% include "/dropdowns/SubmissionSorts.html" %}
+
+
+ {% endif %}
+ {% if listing %}
+
+ {% else %}
+
+
+ {% if '/saved/' in request.path %}
+
You have no saved comments
+
+ Go save some comments!
+
+ {% elif v and v.id == u.id %}
+
You have no comments
+
+ Go write some comments!
+
+ {% else %}
+
You have no comments
+
+ Their comments will show up here.
+
+ {% endif %}
+
+ {% endif %}
+
+ {% if listing %}
+
+ {% if page>1 %}
+
+ Prev
+
+ {% else %}
+
Prev
+ {% endif %}
+ {% if next_exists %}
+
Next
+ {% else %}
+
Next
+ {% endif %}
+
+ {% endif %}
+
+
+{% endblock %}
\ No newline at end of file
diff --git a/files/templates/CHRISTMAS/userpage_private.html b/files/templates/CHRISTMAS/userpage_private.html
new file mode 100644
index 000000000..5cab5ccac
--- /dev/null
+++ b/files/templates/CHRISTMAS/userpage_private.html
@@ -0,0 +1,34 @@
+{% extends "userpage.html" %}
+
+{% block content %}
+
+
+
+
This account is private
+
+ YOU AREN'T WELCOME HERE GO AWAY
+
+ {% if u.id == 253 and 'rama' in request.host %}
+
+ {% if v and v.coins > 500 and not v.is_suspended %}
+
+ You may pay rent to view this profile.
+
+
Pay 500 coins
+ {% endif %}
+ {% if v and v.coins > 5000 and time - v.created_utc > 604800 and not v.is_suspended %}
+
+ Attempt to steal coins
+
+
+ Landlords, like all other men, love to reap where they never sowed.
+
+ {% endif %}
+
+ {% endif %}
+
+
+{% endblock %}
+
+{% block pagenav %}
+{% endblock %}
\ No newline at end of file
diff --git a/files/templates/CHRISTMAS/userpage_reserved.html b/files/templates/CHRISTMAS/userpage_reserved.html
new file mode 100644
index 000000000..c41a655f7
--- /dev/null
+++ b/files/templates/CHRISTMAS/userpage_reserved.html
@@ -0,0 +1,36 @@
+{% extends "default.html" %}
+
+{% block pagetype %}userpage{% endblock %}
+
+{% block fixedMobileBarJS %}
+{% endblock %}
+
+{% block title %}
+
@{{u.username}}
+
+{% endblock %}
+
+{% block adminpanel %}{% endblock %}
+
+{% block content %}
+
+
+
+
+
+
+
+
+
+
+
Account Reserved
+
The username @{{u.username}} has been pre-emptively reserved for: {{u.reserved}}
+
If that's you, or if you are their authorized representative, please contact {{'SITE_NAME' | app_config}} staff in order to obtain access to this account.
+
+
+
+
+{% endblock %}
+
+{% block pagenav %}
+{% endblock %}
diff --git a/files/templates/CHRISTMAS/viewers.html b/files/templates/CHRISTMAS/viewers.html
new file mode 100644
index 000000000..6f9818fec
--- /dev/null
+++ b/files/templates/CHRISTMAS/viewers.html
@@ -0,0 +1,21 @@
+{% extends "default.html" %}
+{% block content %}
+
+
Users who viewed your profile
+
+
+
+
+ Name
+ Last visit
+
+
+{% for view in viewers %}
+
+ {{view.viewer.username}}
+ {{view.last_view_string}}
+
+{% endfor %}
+
+
+{% endblock %}
\ No newline at end of file
diff --git a/files/templates/CHRISTMAS/voters.html b/files/templates/CHRISTMAS/voters.html
new file mode 100644
index 000000000..5a9f0ac8f
--- /dev/null
+++ b/files/templates/CHRISTMAS/voters.html
@@ -0,0 +1,25 @@
+{% extends "default.html" %}
+{% block content %}
+
+
{{name2}}
+
+
+
+
+ #
+ Name
+ {{name}}votes
+
+
+
+ {% for user in users %}
+
+ {{loop.index}}
+ {{user[0].username}}
+ {{user[1]}}
+
+ {% endfor %}
+
+
+
+{% endblock %}
\ No newline at end of file
diff --git a/files/templates/CHRISTMAS/votes.html b/files/templates/CHRISTMAS/votes.html
new file mode 100644
index 000000000..c97939f03
--- /dev/null
+++ b/files/templates/CHRISTMAS/votes.html
@@ -0,0 +1,162 @@
+{% extends "default.html" %}
+
+{% block title %}
+
{{'SITE_NAME' | app_config}}
+
+{% endblock %}
+
+{% block subHeader %}
+
+
+
+
+
+ Votes
+
+ {% if thing %}
+
+
+ Back to post
+
+ {% else %}
+
+ See which losers downvoted your quality content.
+
+ {% endif %}
+
+
+
+{% endblock %}
+
+{% block content %}
+
+{% if thing %}
+
+
+
+
+ Upvotes {{ups | length}}
+
+
+
+
+
+
+
+
+
+ Members
+
+
+
+
+ {% if ups %}
+ {% for vote in ups %}
+
+
+
+
+
+
+
+
+
+ {% endfor %}
+ {% else %}
+
+
+
+ No upvotes yet...
+
+
+
+ {% endif %}
+
+
+
+
+
+
+
+
+ Downvotes {{downs | length}}
+
+
+
+
+
+
+
+
+
+ Members
+
+
+
+
+ {% if downs %}
+ {% for vote in downs %}
+
+
+
+
+
+
+
+
+
+ {% endfor %}
+ {% else %}
+
+
+
+ No downvotes yet...
+
+
+
+ {% endif %}
+
+
+
+
+
+
+
+
+{% endif %}
+
+
+{% endblock %}
\ No newline at end of file
diff --git a/files/templates/admin/admin_home.html b/files/templates/admin/admin_home.html
index ad4c46824..60bd9fb2d 100644
--- a/files/templates/admin/admin_home.html
+++ b/files/templates/admin/admin_home.html
@@ -6,55 +6,56 @@
{% endblock %}
{% block content %}
-
-
Admin Tools
+
+
+
Admin Tools
-
Content
-
+
Content
+
-
Users
-
+
Users
+
-
Safety
-
+
Safety
+
-
Grant
-
+
Grant
+
-
API Access Control
-
+
API Access Control
+
-
Statistics
-
+
Statistics
+
-
Configuration
-
+
Configuration
+
-
-
- Disable signups
-
+
+
+ Disable signups
+
{% endblock %}
\ No newline at end of file
diff --git a/files/templates/admin/alt_votes.html b/files/templates/admin/alt_votes.html
index 418ad532e..9e9ad185d 100644
--- a/files/templates/admin/alt_votes.html
+++ b/files/templates/admin/alt_votes.html
@@ -6,7 +6,6 @@
{% endblock %}
{% block content %}
-
@@ -28,7 +27,7 @@
-
+
@@ -85,5 +84,5 @@
{% endif %}
-
+
{% endblock %}
\ No newline at end of file
diff --git a/files/templates/admin/app.html b/files/templates/admin/app.html
index 17a8a6924..59da65439 100644
--- a/files/templates/admin/app.html
+++ b/files/templates/admin/app.html
@@ -6,7 +6,10 @@
{% endblock %}
{% block content %}
-
+
+
+
+
+
{% if listing %}
{% include "submission_listing.html" %}
{% elif comments %}
{% include "comments.html" %}
{% endif %}
+
diff --git a/files/templates/admin/apps.html b/files/templates/admin/apps.html
index 9b28f1c62..bf9cd895f 100644
--- a/files/templates/admin/apps.html
+++ b/files/templates/admin/apps.html
@@ -6,50 +6,54 @@
{% endblock %}
{% block content %}
-
- {% for app in apps %}
-
-
-
-
-
User
-
-
App Name
-
+
+
+
+{% for app in apps %}
+
+
-
-
+
Redirect URI
+
+
Description
+
{{app.description}}
- {% endfor %}
+
+
+{% endfor %}
+
+
+
diff --git a/files/templates/admin/awards.html b/files/templates/admin/awards.html
index 092af3ea8..a0c14c697 100644
--- a/files/templates/admin/awards.html
+++ b/files/templates/admin/awards.html
@@ -8,8 +8,6 @@
{% block content %}
-
-
{% if error %}
@@ -40,9 +38,9 @@
Username
-
+
-
+
-
+
{% if 'rdrama.net' not in request.host or v.admin_level > 2 %}
-
+
{% endif %}
-
-
{% endblock %}
\ No newline at end of file
diff --git a/files/templates/admin/badge_grant.html b/files/templates/admin/badge_grant.html
index e1eab7f6b..91e58e8b3 100644
--- a/files/templates/admin/badge_grant.html
+++ b/files/templates/admin/badge_grant.html
@@ -7,7 +7,6 @@
{% block pagetype %}message{% endblock %}
{% block content %}
-
{% if error %}
-
-
- {% if v.agendaposter %}
{% elif v.css %}
{% endif %}
+
+ {% if v.agendaposter %}
{% elif v.css %}
{% endif %}
{% else %}
-
+
{% endif %}
@@ -90,7 +90,7 @@
-
+
diff --git a/files/templates/award_modal.html b/files/templates/award_modal.html
index d418c4684..254eefb42 100644
--- a/files/templates/award_modal.html
+++ b/files/templates/award_modal.html
@@ -1,32 +1,27 @@
-
-
+
diff --git a/files/templates/report_post_modal.html b/files/templates/report_post_modal.html
index c0657c6fd..905d2293e 100644
--- a/files/templates/report_post_modal.html
+++ b/files/templates/report_post_modal.html
@@ -1,40 +1,35 @@
-
-
-
-
+
+
-
We're sorry something here is wrong.
-
Please enter a reason for reporting below.
-
+
We're sorry something here is wrong.
+
Please enter a reason for reporting below.
+
+
-
-
- Cancel
-
-
- Report post
-
+
-
+
-
Thank you for reporting this post!
-
By the power of the mop, our internet janitors will take it from here.
+
Thank you for reporting this post!
+
We'll take it from here.
-
-
- Close
-
+
+
+
\ No newline at end of file
diff --git a/files/templates/rules.html b/files/templates/rules.html
index 6e8484753..056244a53 100644
--- a/files/templates/rules.html
+++ b/files/templates/rules.html
@@ -5,29 +5,13 @@
{% endblock %}
-{% block subHeader %}
-
-
-
-
-
- Rules
-
-
- How to save yourself from the mop.
-
-
-
-
-{% endblock %}
-
{% block content %}
-
-
- {{'SITE_NAME'|app_config}} Rules{% if v and v.admin_level == 6 %}
- Edit rules
- {% endif %}
-
+
+
+
+
+
+
{{'SITE_NAME'|app_config}} Rules{% if v and v.admin_level == 6 %} Edit rules {% endif %}
{{ rules | safe }}
diff --git a/files/templates/search.html b/files/templates/search.html
index 4918271ec..961bfbcfe 100644
--- a/files/templates/search.html
+++ b/files/templates/search.html
@@ -1,4 +1,4 @@
-{% extends "default.html" %}
+{% extends "home.html" %}
{% block pagetype %}search{% endblock %}
@@ -6,83 +6,158 @@
Search for "{{query}}" - {{'SITE_NAME' | app_config}}"
{% endblock %}
-{% block subHeader %}
-
-
-
-
-
- Search Results: "{{query}}"
-
-
-
-
-
{{ total }}
- {% if '/users/' in request.path %}
- user{{ '' if total == 1 else 's' }} found
- {% else %}
- {{ sort }} result{{ '' if total == 1 else 's' }} matching
-
"{{query}}" {{ 'from all time' if t=='all' else 'in the last' }}
- {% if t != 'all' %}
{{ t }} {% endif %}
- {% endif %}
+{% block PseudoSubmitForm %}{% endblock %}
+
+{% block navbar %}
+ {% if not '/users/' in request.path %}
+
- {% if not '/users/' in request.path %}
-
- {% include "/dropdowns/SearchSorts.html" %}
-
- {% endif %}
-
-
+ {% endif %}
{% endblock %}
{% block content %}
-
-
- Advanced search parameters (with examples): "author:quadnarca", "domain:reddit.com", "over18:true"
-
-
-
+
-
-
- {% block listing_template %}
- {% include "submission_listing.html" %}
- {% endblock %}
+
+
+
+
+
+
+
+
Advanced search parameters (with examples): "author:quadnarca", "domain:reddit.com", "over18:true"
+
+
Showing {% block listinglength %}{{listing | length}}{% endblock %} of {{total}} result{{'s' if total != 1 else ''}} for
+
{{query}}
+
+
+
+
+
-{% endblock %}
-{% block pagenav %}
-
-