-
-
-
-
-
-
-
-
-
-{% endblock %}
\ No newline at end of file
diff --git a/shopyo/modules/box__default/auth/templates/auth/register.html b/shopyo/modules/box__default/auth/templates/auth/register.html
deleted file mode 100644
index 1cf3678..0000000
--- a/shopyo/modules/box__default/auth/templates/auth/register.html
+++ /dev/null
@@ -1,26 +0,0 @@
-{% extends "base/main_base.html" %}
-
-{% set active_page = "register" %}
-
-{% block pagehead %}
-
-
{{ active_page.capitalize() }}
-{% endblock %}
-
-{% block content %}
-
-{% endblock %}
\ No newline at end of file
diff --git a/shopyo/modules/box__default/auth/templates/auth/shop_login.html b/shopyo/modules/box__default/auth/templates/auth/shop_login.html
deleted file mode 100644
index 2813f17..0000000
--- a/shopyo/modules/box__default/auth/templates/auth/shop_login.html
+++ /dev/null
@@ -1,19 +0,0 @@
-{%set active_page = 'shop.html'%}
-{% extends "shop/base.html" %}
-{% block pagehead %}
-
-{% endblock %}
-{% block content %}
-
-
-
- {% endblock %}
\ No newline at end of file
diff --git a/shopyo/modules/box__default/auth/tests/test_login.py b/shopyo/modules/box__default/auth/tests/test_login.py
deleted file mode 100644
index 1ed0484..0000000
--- a/shopyo/modules/box__default/auth/tests/test_login.py
+++ /dev/null
@@ -1,34 +0,0 @@
-"""
-This file (test_login.py) contains the functional tests for
-the `login` blueprint.
-
-These tests use GETs and POSTs to different endpoints to check
-for the proper behavior of the `login` blueprint.
-"""
-from flask import url_for
-from flask import request
-
-
-def test_valid_login_logout(test_client):
- """
- GIVEN a Flask application configured for testing,
- WHEN the logging in and loggoing out from the app
- THEN check that the response is valid for each case
- """
- # Login to the app
- response = test_client.post(
- url_for("auth.login"),
- data=dict(email="admin1@domain.com", password="pass"),
- follow_redirects=True,
- )
-
- # Check if login was successful
- assert response.status_code == 200
- assert b"Control panel" in response.data
- assert b"Notif test" in response.data
-
- # Check response is redirect to login page
- response = test_client.get(url_for("auth.logout"), follow_redirects=True)
- assert response.status_code == 200
- assert request.path == url_for("auth.login")
- assert b"Successfully logged out" in response.data
diff --git a/shopyo/modules/box__default/auth/view.py b/shopyo/modules/box__default/auth/view.py
deleted file mode 100644
index 8a17d7e..0000000
--- a/shopyo/modules/box__default/auth/view.py
+++ /dev/null
@@ -1,108 +0,0 @@
-import json
-import os
-
-from flask import Blueprint
-from flask import flash
-from flask import redirect
-from flask import render_template
-from flask import request
-from flask import url_for
-
-from flask_login import login_required
-from flask_login import login_user
-from flask_login import logout_user
-
-from shopyoapi.html import notify_danger
-from shopyoapi.html import notify_success
-
-from modules.box__default.admin.models import User
-from modules.box__default.auth.forms import LoginForm, RegistrationForm
-
-dirpath = os.path.dirname(os.path.abspath(__file__))
-module_info = {}
-
-with open(dirpath + "/info.json") as f:
- module_info = json.load(f)
-
-auth_blueprint = Blueprint(
- "auth",
- __name__,
- url_prefix=module_info["url_prefix"],
- template_folder="templates",
-)
-
-
-@auth_blueprint.route("/register", methods=["GET", "POST"])
-def register():
-
- context = {}
- reg_form = RegistrationForm()
- context["form"] = reg_form
-
- if request.method == "POST":
-
- if reg_form.validate_on_submit():
-
- email = reg_form.email.data
- password = reg_form.password.data
-
- # add the user to the db
- User.create(email=email, password=password)
-
- flash(notify_success("Registered successfully! Please Log In"))
- return redirect(url_for("auth.login"))
-
- return render_template("auth/register.html", **context)
-
-
-@auth_blueprint.route("/login", methods=["GET", "POST"])
-def login():
- context = {}
- login_form = LoginForm()
- context["form"] = login_form
- if request.method == 'POST':
- if login_form.validate_on_submit():
- email = login_form.email.data
- password = login_form.password.data
- user = User.query.filter(User.email==email).first()
- print(email, password, user)
- if user is None or not user.check_hash(password):
- flash('')
- flash(notify_danger("please check your user id and password"))
- return redirect(url_for("www.index"))
- login_user(user)
- if user.is_admin:
- flash(notify_success('Successfully logged in!'))
- return redirect(url_for("dashboard.index"))
- elif user.is_customer:
- flash(notify_success('Successfully logged in!'))
- return redirect(url_for("shop.homepage"))
-
- return render_template("auth/login.html", **context)
-
-
-@auth_blueprint.route("/shop", methods=["GET", "POST"])
-def shop_login():
- context = {}
- login_form = LoginForm()
- context["form"] = login_form
- if request.method == "POST":
- if login_form.validate_on_submit():
- email = login_form.email.data
- password = login_form.password.data
- user = User.query.filter_by(email=email).first()
- if user is None or not user.check_hash(password):
- flash(notify_danger("please check your user id and password"))
- return redirect(url_for("shop.checkout"))
- login_user(user)
- return redirect(url_for("shop.checkout"))
- return render_template("auth/shop_login.html", **context)
-
-
-@auth_blueprint.route("/logout")
-@login_required
-def logout():
- logout_user()
- flash(notify_success("Successfully logged out"))
- return redirect(url_for('www.index'))
- # return redirect(url_for("auth.login"))
diff --git a/shopyo/modules/box__default/base/info.json b/shopyo/modules/box__default/base/info.json
deleted file mode 100644
index 5a427fa..0000000
--- a/shopyo/modules/box__default/base/info.json
+++ /dev/null
@@ -1,6 +0,0 @@
-{
- "display_string": "Base",
- "type": "hidden",
- "fa-icon": "fas fa-clock",
- "url_prefix": "/base"
-}
\ No newline at end of file
diff --git a/shopyo/modules/box__default/base/templates/base/blocks/default_styles.html b/shopyo/modules/box__default/base/templates/base/blocks/default_styles.html
deleted file mode 100644
index 14af652..0000000
--- a/shopyo/modules/box__default/base/templates/base/blocks/default_styles.html
+++ /dev/null
@@ -1,3 +0,0 @@
-
\ No newline at end of file
diff --git a/shopyo/modules/box__default/base/templates/base/blocks/flashed_messages.html b/shopyo/modules/box__default/base/templates/base/blocks/flashed_messages.html
deleted file mode 100644
index 4a662aa..0000000
--- a/shopyo/modules/box__default/base/templates/base/blocks/flashed_messages.html
+++ /dev/null
@@ -1,9 +0,0 @@
-
- {% with messages = get_flashed_messages() %}
- {% if messages %}
- {% for message in messages %}
- {{ message | safe}}
- {% endfor %}
- {% endif %}
- {% endwith %}
-
\ No newline at end of file
diff --git a/shopyo/modules/box__default/base/templates/base/blocks/footer.html b/shopyo/modules/box__default/base/templates/base/blocks/footer.html
deleted file mode 100644
index 615570f..0000000
--- a/shopyo/modules/box__default/base/templates/base/blocks/footer.html
+++ /dev/null
@@ -1,15 +0,0 @@
-
-
-
-
-
-
- © {{APP_NAME}}. Powered by Shopyo .
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/shopyo/modules/box__default/base/templates/base/blocks/macros.html b/shopyo/modules/box__default/base/templates/base/blocks/macros.html
deleted file mode 100644
index 073f60a..0000000
--- a/shopyo/modules/box__default/base/templates/base/blocks/macros.html
+++ /dev/null
@@ -1,5 +0,0 @@
-{% macro sidebar_item(text, icon='fa fa-table', url='') -%}
-
-{%- endmacro %}
\ No newline at end of file
diff --git a/shopyo/modules/box__default/base/templates/base/blocks/resources.html b/shopyo/modules/box__default/base/templates/base/blocks/resources.html
deleted file mode 100644
index 6e1e0ec..0000000
--- a/shopyo/modules/box__default/base/templates/base/blocks/resources.html
+++ /dev/null
@@ -1,20 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/shopyo/modules/box__default/base/templates/base/main_base.html b/shopyo/modules/box__default/base/templates/base/main_base.html
deleted file mode 100644
index 317f2f2..0000000
--- a/shopyo/modules/box__default/base/templates/base/main_base.html
+++ /dev/null
@@ -1,19 +0,0 @@
-
-
-
- {% include 'base/blocks/resources.html'%}
- {% include 'base/blocks/default_styles.html'%}
- {% block pagehead %}{% endblock %}
-
-
- {% include "base/nav_base.html" %}
- {% include 'base/blocks/flashed_messages.html'%}
-
-
-
-
- {% block content %}{% endblock %}
-
-
-
-
diff --git a/shopyo/modules/box__default/base/templates/base/module_base.html b/shopyo/modules/box__default/base/templates/base/module_base.html
deleted file mode 100644
index c5029f8..0000000
--- a/shopyo/modules/box__default/base/templates/base/module_base.html
+++ /dev/null
@@ -1,92 +0,0 @@
-
-
-{% from "base/blocks/macros.html" import sidebar_item with context %}
-
-
-
-
- {% include 'base/blocks/default_styles.html'%}
- {% block pagehead %}{% endblock %}
-
-
- {% include 'base/blocks/resources.html'%}
-
-
- {% if not _hide_nav%}
- {% include 'base/nav_base.html'%}
- {% endif %}
-
- {% include 'base/blocks/flashed_messages.html'%}
-
-
-
-
-
-
-
-
-
-
-
-
- {% if _logout_url %}
-
-
- {% endif %}
-
-
-
-
-
-
-
-
-
- {% block content %}{% endblock %}
-
-
-
-
-
-
-
-
-
-
-
-
- {% include 'base/blocks/footer.html'%}
-
-
-
diff --git a/shopyo/modules/box__default/base/templates/base/nav_base.html b/shopyo/modules/box__default/base/templates/base/nav_base.html
deleted file mode 100644
index 5f27241..0000000
--- a/shopyo/modules/box__default/base/templates/base/nav_base.html
+++ /dev/null
@@ -1,34 +0,0 @@
-{% set active_page = active_page|default('none') %}
-
-
-
-
-
- {{OUR_APP_NAME}} | {{active_page.capitalize()}}
-
-
-
-
-
- {% if (active_page != 'login') and (active_page != 'register') %}
-
-
-
-
-
- {% else %}
-
- Login
-
-
- Register
-
- {% endif %}
-
-
diff --git a/shopyo/modules/box__default/base/view.py b/shopyo/modules/box__default/base/view.py
deleted file mode 100644
index 2f896ee..0000000
--- a/shopyo/modules/box__default/base/view.py
+++ /dev/null
@@ -1,17 +0,0 @@
-import json
-import os
-
-from flask import Blueprint
-
-dirpath = os.path.dirname(os.path.abspath(__file__))
-module_info = {}
-
-with open(dirpath + "/info.json") as f:
- module_info = json.load(f)
-
-base_blueprint = Blueprint(
- "base",
- __name__,
- url_prefix=module_info["url_prefix"],
- template_folder="templates",
-)
diff --git a/shopyo/modules/box__default/box_info.json b/shopyo/modules/box__default/box_info.json
deleted file mode 100644
index eaedef5..0000000
--- a/shopyo/modules/box__default/box_info.json
+++ /dev/null
@@ -1,9 +0,0 @@
-{
- "display_string": "Default",
- "box_name":"default",
- "author": {
- "name":"",
- "website":"",
- "mail":""
- }
- }
\ No newline at end of file
diff --git a/shopyo/modules/box__default/dashboard/templates/dashboard/index.html b/shopyo/modules/box__default/dashboard/templates/dashboard/index.html
deleted file mode 100644
index ed1abb8..0000000
--- a/shopyo/modules/box__default/dashboard/templates/dashboard/index.html
+++ /dev/null
@@ -1,36 +0,0 @@
-{% extends "base/main_base.html" %}
-
-{% set active_page ='control panel' %}
-
-{% block pagehead %}
-
-
-
-{% endblock %}
-
-{% block content %}
- {% include 'dashboard/nav.html' %}
-
-
-
- {% for info in all_info %}
- {% if all_info[info]['type'] == 'show'%}
- {%if 'dashboard' in all_info[info]%}
-
- {%else%}
-
- {%endif%}
-
-
- {% endif %}
- {% endfor %}
- {% endblock %}
\ No newline at end of file
diff --git a/shopyo/modules/box__default/dashboard/templates/dashboard/nav.html b/shopyo/modules/box__default/dashboard/templates/dashboard/nav.html
deleted file mode 100644
index e69de29..0000000
diff --git a/shopyo/modules/box__default/dashboard/tests/test_dashboard.py b/shopyo/modules/box__default/dashboard/tests/test_dashboard.py
deleted file mode 100644
index 6234619..0000000
--- a/shopyo/modules/box__default/dashboard/tests/test_dashboard.py
+++ /dev/null
@@ -1,3 +0,0 @@
-def test_dashboard(test_client):
- response = test_client.get("/dashboard/", follow_redirects=True)
- assert response.status_code == 200
diff --git a/shopyo/modules/box__default/dashboard/view.py b/shopyo/modules/box__default/dashboard/view.py
deleted file mode 100644
index a943582..0000000
--- a/shopyo/modules/box__default/dashboard/view.py
+++ /dev/null
@@ -1,69 +0,0 @@
-import json
-import os
-
-from flask import Blueprint
-from flask import current_app
-from flask import flash
-from flask import render_template
-
-from flask_login import login_required
-
-from shopyoapi.html import notify_success
-
-dashboard_blueprint = Blueprint(
- "dashboard",
- __name__,
- template_folder="templates",
- url_prefix="/dashboard",
-)
-all_info = {}
-
-
-@dashboard_blueprint.route("/")
-@login_required
-def index():
- context = {}
-
- for folder in os.listdir(
- os.path.join(current_app.config["BASE_DIR"], "modules")
- ):
- if folder.startswith("__"):
- continue
- elif folder.startswith("box__"):
- for sub_folder in os.listdir(
- os.path.join(current_app.config["BASE_DIR"], "modules", folder)
- ):
- if sub_folder in ["dashboard"]:
- continue
- if sub_folder.startswith("__"): # ignore __pycache__
- continue
- elif sub_folder.endswith(".json"): # box_info.json
- continue
- with open(
- os.path.join(
- current_app.config["BASE_DIR"],
- "modules",
- folder,
- sub_folder,
- "info.json",
- )
- ) as f:
- module_info = json.load(f)
- all_info[sub_folder] = module_info
- else:
-
- if folder not in ["dashboard"]:
- with open(
- os.path.join(
- current_app.config["BASE_DIR"],
- "modules",
- folder,
- "info.json",
- )
- ) as f:
- module_info = json.load(f)
- all_info[folder] = module_info
-
- context["all_info"] = all_info
- flash(notify_success("Notif test"))
- return render_template("dashboard/index.html", **context)
diff --git a/shopyo/modules/box__default/settings/__init__.py b/shopyo/modules/box__default/settings/__init__.py
deleted file mode 100644
index e69de29..0000000
diff --git a/shopyo/modules/box__default/settings/helpers.py b/shopyo/modules/box__default/settings/helpers.py
deleted file mode 100644
index f7f80d3..0000000
--- a/shopyo/modules/box__default/settings/helpers.py
+++ /dev/null
@@ -1,19 +0,0 @@
-from modules.box__default.settings.models import Settings
-
-
-def get_setting(name):
- """
- Used as key-value lookup from Settings table
-
- Parameters
- ----------
- name: str
- name of key
-
- Returns
- -------
- str
- value of key
- """
- s = Settings.query.get(name)
- return s.value
diff --git a/shopyo/modules/box__default/settings/info.json b/shopyo/modules/box__default/settings/info.json
deleted file mode 100644
index 3233666..0000000
--- a/shopyo/modules/box__default/settings/info.json
+++ /dev/null
@@ -1,6 +0,0 @@
-{
- "display_string": "Settings",
- "type": "show",
- "fa-icon": "fa fa-cog",
- "url_prefix": "/settings"
-}
\ No newline at end of file
diff --git a/shopyo/modules/box__default/settings/models.py b/shopyo/modules/box__default/settings/models.py
deleted file mode 100644
index 57c6728..0000000
--- a/shopyo/modules/box__default/settings/models.py
+++ /dev/null
@@ -1,21 +0,0 @@
-from shopyoapi.init import db
-
-
-class Settings(db.Model):
- __tablename__ = "settings"
- setting = db.Column(db.String(100), primary_key=True)
- value = db.Column(db.String(100))
-
- def add(self):
- db.session.add(self)
-
- def insert(self):
- db.session.add(self)
- db.session.commit()
-
- def update(self):
- db.session.commit()
-
- def delete(self):
- db.session.delete(self)
- db.session.commit()
diff --git a/shopyo/modules/box__default/settings/templates/settings/edit.html b/shopyo/modules/box__default/settings/templates/settings/edit.html
deleted file mode 100644
index 18724ea..0000000
--- a/shopyo/modules/box__default/settings/templates/settings/edit.html
+++ /dev/null
@@ -1,27 +0,0 @@
-{% extends "base/main_base.html" %}
-
-{% set active_page ='settings' %}
-
-{% block pagehead %}
-
edit
-{% endblock %}
-
-{% block content %}
-
-
-{% endblock %}
\ No newline at end of file
diff --git a/shopyo/modules/box__default/settings/templates/settings/index.html b/shopyo/modules/box__default/settings/templates/settings/index.html
deleted file mode 100644
index e25623e..0000000
--- a/shopyo/modules/box__default/settings/templates/settings/index.html
+++ /dev/null
@@ -1,43 +0,0 @@
-{% extends "base/main_base.html" %}
-
-{% set active_page ='settings' %}
-
-{% block pagehead %}
-
Settings
-
-{% endblock %}
-
-{% block content %}
-
-
-
-
-
- Settings
- Value
-
-
-
-
-{% for setting in settings %}
-
- {{setting.setting}}
- {{setting.value}}
-
-
-{%endfor%}
-
-
-
-{% endblock %}
diff --git a/shopyo/modules/box__default/settings/templates/settings/nav.html b/shopyo/modules/box__default/settings/templates/settings/nav.html
deleted file mode 100644
index 741fc26..0000000
--- a/shopyo/modules/box__default/settings/templates/settings/nav.html
+++ /dev/null
@@ -1,3 +0,0 @@
-
-
-
diff --git a/shopyo/modules/box__default/settings/tests/test_settings.py b/shopyo/modules/box__default/settings/tests/test_settings.py
deleted file mode 100644
index ebfdd94..0000000
--- a/shopyo/modules/box__default/settings/tests/test_settings.py
+++ /dev/null
@@ -1,100 +0,0 @@
-"""
-This file (test_settings.py) contains the functional tests for
-the `settings` blueprint.
-
-These tests use GETs and POSTs to different endpoints to check
-for the proper behavior of the `settings` blueprint.
-"""
-
-import os
-import json
-from flask import request
-from flask import url_for
-import pytest
-from modules.box__default.settings.models import Settings
-
-
-dirpath = os.path.dirname(os.path.abspath(__file__))
-module_path = os.path.dirname(dirpath)
-
-module_info = None
-
-with open(os.path.join(module_path, "info.json")) as f:
- module_info = json.load(f)
-
-
-class TestSettingsInvalidAuth:
- """
- Test all settings routes
- """
-
- routes_get = ["/", "/edit/
", "/update"]
-
- routes_post = ["/edit/", "/update"]
-
- @pytest.mark.parametrize("route", routes_get)
- def test_redirect_if_not_logged_in_get(self, test_client, route, auth):
- auth.logout()
- response = test_client.get(
- f"{module_info['url_prefix']}{route}", follow_redirects=True
- )
-
- assert response.status_code == 200
- assert request.path == url_for("auth.login")
-
- @pytest.mark.parametrize("route", routes_post)
- def test_redirect_if_not_logged_in_post(self, test_client, route, auth):
- auth.logout()
- response = test_client.post(
- f"{module_info['url_prefix']}{route}", follow_redirects=True
- )
-
- assert response.status_code == 200
- assert request.path == url_for("auth.login")
-
-
-@pytest.mark.usefixtures("login_admin_user")
-class TestSettingsAPI:
- def test_settings_main(self, test_client):
-
- response = test_client.get(f"{module_info['url_prefix']}/")
- assert response.status_code == 200
- assert b"APP_NAME" in response.data
- assert b"SECTION_NAME" in response.data
- assert b"ACTIVE_FRONT_THEME" in response.data
- assert b"SECTION_ITEMS" in response.data
- assert b"CURRENCY" in response.data
-
- @pytest.mark.parametrize(
- "setting",
- [
- "APP_NAME",
- "SECTION_NAME",
- "SECTION_ITEMS",
- "ACTIVE_FRONT_THEME",
- "SECTION_ITEMS",
- "CURRENCY",
- ],
- )
- def test_settings_edit(self, test_client, setting):
-
- response = test_client.get(
- f"{module_info['url_prefix']}/edit/{setting}"
- )
- assert response.status_code == 200
-
- def test_settings_update(self, test_client):
-
- response = test_client.post(
- f"{module_info['url_prefix']}/update",
- data=dict(
- settings_name="APP_NAME",
- settings_value="TEST-APP-NAME",
- follow_redirects=True,
- ),
- )
-
- setting = Settings.query.get("APP_NAME")
- assert response.status_code == 200
- assert setting is not None
- assert setting.value == "TEST-APP-NAME"
diff --git a/shopyo/modules/box__default/settings/upload.py b/shopyo/modules/box__default/settings/upload.py
deleted file mode 100644
index b2d0aa0..0000000
--- a/shopyo/modules/box__default/settings/upload.py
+++ /dev/null
@@ -1,25 +0,0 @@
-import json
-from app import app
-from shopyoapi.init import db
-from modules.box__default.settings.models import Settings
-
-
-def add_setting(name, value):
- with app.app_context():
- if Settings.query.filter_by(setting=name).first():
- s = Settings.query.get(name)
- s.value = value
- db.session.commit()
- else:
- s = Settings(setting=name, value=value)
- db.session.add(s)
- db.session.commit()
-
-
-def upload():
- with open("config.json", "r") as config:
- config = json.load(config)
- print("Initialising Settings")
- print("Adding Settings ...")
- for name, value in config["settings"].items():
- add_setting(name, value)
diff --git a/shopyo/modules/box__default/settings/view.py b/shopyo/modules/box__default/settings/view.py
deleted file mode 100644
index 45a4b2f..0000000
--- a/shopyo/modules/box__default/settings/view.py
+++ /dev/null
@@ -1,65 +0,0 @@
-import json
-import os
-
-from flask import Blueprint
-from flask import render_template
-from flask import request
-
-from flask_login import login_required
-
-from shopyoapi.init import db
-
-from modules.box__default.settings.models import Settings
-
-dirpath = os.path.dirname(os.path.abspath(__file__))
-module_info = {}
-
-with open(dirpath + "/info.json") as f:
- module_info = json.load(f)
-
-settings_blueprint = Blueprint(
- "settings",
- __name__,
- template_folder="templates",
- url_prefix=module_info["url_prefix"],
-)
-
-
-@settings_blueprint.route("/")
-@login_required
-def settings_main():
- context = {}
-
- settings = Settings.query.all()
-
- context["settings"] = settings
- return render_template("settings/index.html", **context)
-
-
-@settings_blueprint.route("/edit/", methods=["GET", "POST"])
-@login_required
-def settings_edit(settings_name):
- context = {}
-
- s = Settings.query.get(settings_name)
-
- context["settings_name"] = settings_name
- context["current_value"] = s.value
-
- return render_template("settings/edit.html", **context)
-
-
-@settings_blueprint.route("/update", methods=["GET", "POST"])
-@login_required
-def settings_update():
- context = {}
-
- settings_name = request.form["settings_name"]
- settings_value = request.form["settings_value"]
- s = Settings.query.get(settings_name)
- s.value = settings_value
- db.session.commit()
- settings = Settings.query.all()
-
- context["settings"] = settings
- return render_template("settings/index.html", **context)
diff --git a/shopyo/modules/box__default/theme/forms.py b/shopyo/modules/box__default/theme/forms.py
deleted file mode 100644
index e69de29..0000000
diff --git a/shopyo/modules/box__default/theme/global.py b/shopyo/modules/box__default/theme/global.py
deleted file mode 100644
index b1c4a69..0000000
--- a/shopyo/modules/box__default/theme/global.py
+++ /dev/null
@@ -1,77 +0,0 @@
-from flask import url_for
-
-import os
-import json
-
-from shopyoapi.path import themes_path
-from modules.box__default.settings.helpers import get_setting
-
-
-def get_front_theme_dir():
- theme_dir = os.path.join(
- themes_path, "front", get_setting("ACTIVE_FRONT_THEME")
- )
- return theme_dir
-
-
-def get_front_theme_info_data():
- info_path = os.path.join(get_front_theme_dir(), "info.json")
- with open(info_path) as f:
- info_data = json.load(f)
- return info_data
-
-
-def get_active_front_theme():
- return get_setting("ACTIVE_FRONT_THEME")
-
-
-def get_active_front_theme_version():
- return get_front_theme_info_data()["version"]
-
-
-def get_active_front_theme_styles_url():
- return url_for(
- "resource.active_front_theme_css",
- active_theme=get_active_front_theme(),
- v=get_active_front_theme_version(),
- )
-
-
-def get_back_theme_dir():
- theme_dir = os.path.join(
- themes_path, "back", get_setting("ACTIVE_BACK_THEME")
- )
- return theme_dir
-
-
-def get_back_theme_info_data():
- info_path = os.path.join(get_back_theme_dir(), "info.json")
- with open(info_path) as f:
- info_data = json.load(f)
- return info_data
-
-
-def get_active_back_theme():
- return get_setting("ACTIVE_BACK_THEME")
-
-
-def get_active_back_theme_version():
- return get_back_theme_info_data()["version"]
-
-
-def get_active_back_theme_styles_url():
- return url_for(
- "resource.active_back_theme_css",
- active_theme=get_active_back_theme(),
- v=get_active_back_theme_version(),
- )
-
-
-available_everywhere = {
- "get_active_front_theme": get_active_front_theme,
- "get_active_front_theme_version": get_active_front_theme_version,
- "get_active_front_theme_styles_url": get_active_front_theme_styles_url,
- "get_active_back_theme": get_active_back_theme,
- "get_active_back_theme_version": get_active_back_theme_version,
- "get_active_back_theme_styles_url": get_active_back_theme_styles_url,
-}
diff --git a/shopyo/modules/box__default/theme/info.json b/shopyo/modules/box__default/theme/info.json
deleted file mode 100644
index d6f5610..0000000
--- a/shopyo/modules/box__default/theme/info.json
+++ /dev/null
@@ -1,12 +0,0 @@
-{
- "display_string": "Theme",
- "module_name":"theme",
- "type": "show",
- "fa-icon": "fa fa-palette",
- "url_prefix": "/theme",
- "author": {
- "name":"",
- "website":"https://www.pythonkitchen.com/about-me/",
- "mail":"arj.python@gmail.com"
- }
-}
diff --git a/shopyo/modules/box__default/theme/models.py b/shopyo/modules/box__default/theme/models.py
deleted file mode 100644
index e69de29..0000000
diff --git a/shopyo/modules/box__default/theme/templates/theme/blocks/sidebar.html b/shopyo/modules/box__default/theme/templates/theme/blocks/sidebar.html
deleted file mode 100644
index 8736d51..0000000
--- a/shopyo/modules/box__default/theme/templates/theme/blocks/sidebar.html
+++ /dev/null
@@ -1,7 +0,0 @@
-{{
-sidebar_item(
-'Home',
-icon=module_info['fa-icon'],
-url=url_for('{}.index'.format(module_info['module_name']))
-)
-}}
diff --git a/shopyo/modules/box__default/theme/templates/theme/index.html b/shopyo/modules/box__default/theme/templates/theme/index.html
deleted file mode 100644
index c9f2d02..0000000
--- a/shopyo/modules/box__default/theme/templates/theme/index.html
+++ /dev/null
@@ -1,91 +0,0 @@
-{% extends "base/module_base.html" %}
-
-{% set active_page ='' %}
-
-{% block pagehead %}
-
-
-{% endblock %}
-
-
-
-
-{% block sidebar %}
- {%include '{}/blocks/sidebar.html'.format(module_info['module_name'])%}
-{%endblock%}
-
-
-
-
-{% block content %}
-
-
-
-
-
-
-
- Name
- Author
-
-
-
-
- {%for key in all_front_info%}
-
- {{key}}
- {{all_front_info[key]['author']}}
-
- {%if active_front_theme != key%}
- activate
- {%else%}
- active
- {%endif%}
-
-
- {%endfor%}
-
-
-
-
-
-
-
-
-
-
-
- Name
- Author
-
-
-
-
- {%for key in all_back_info%}
-
- {{key}}
- {{all_back_info[key]['author']}}
-
- {%if active_back_theme != key%}
- activate
- {%else%}
- active
- {%endif%}
-
-
- {%endfor%}
-
-
-
-
-
-
-
-
-{% endblock %}
\ No newline at end of file
diff --git a/shopyo/modules/box__default/theme/view.py b/shopyo/modules/box__default/theme/view.py
deleted file mode 100644
index 31035de..0000000
--- a/shopyo/modules/box__default/theme/view.py
+++ /dev/null
@@ -1,111 +0,0 @@
-import json
-import os
-
-from flask import Blueprint
-from flask import current_app
-from flask import redirect
-from flask import render_template
-from flask import url_for
-
-from flask_login import login_required
-
-from modules.box__default.settings.helpers import get_setting
-from shopyoapi.enhance import set_setting
-from shopyoapi.file import get_folders
-
-# from flask import flash
-# from flask import request
-# from shopyoapi.html import notify_success
-# from shopyoapi.init import db
-
-# from modules.box__default.settings.models import Settings
-
-# from shopyoapi.forms import flash_errors
-
-
-dirpath = os.path.dirname(os.path.abspath(__file__))
-module_info = {}
-
-with open(dirpath + "/info.json") as f:
- module_info = json.load(f)
-
-globals()["{}_blueprint".format(module_info["module_name"])] = Blueprint(
- "{}".format(module_info["module_name"]),
- __name__,
- template_folder="templates",
- url_prefix=module_info["url_prefix"],
-)
-
-module_settings = {"module_info": module_info}
-
-module_blueprint = globals()["{}_blueprint".format(module_info["module_name"])]
-
-
-@module_blueprint.route("/")
-@login_required
-def index():
-
- context = {}
-
- front_themes_path = os.path.join(
- current_app.config["BASE_DIR"], "static", "themes", "front"
- )
- all_front_info = {}
- front_theme_folders = get_folders(front_themes_path)
- for folder in front_theme_folders:
- theme_path = os.path.join(front_themes_path, folder)
- info_path = os.path.join(theme_path, "info.json")
- with open(info_path) as f:
- all_front_info[folder] = json.load(f)
-
- back_themes_path = os.path.join(
- current_app.config["BASE_DIR"], "static", "themes", "back"
- )
- all_back_info = {}
- back_theme_folders = get_folders(back_themes_path)
- for folder in back_theme_folders:
- theme_path = os.path.join(back_themes_path, folder)
- info_path = os.path.join(theme_path, "info.json")
- with open(info_path) as f:
- all_back_info[folder] = json.load(f)
-
- active_front_theme = get_setting("ACTIVE_FRONT_THEME")
- active_back_theme = get_setting("ACTIVE_BACK_THEME")
-
- context.update(
- {
- "all_front_info": all_front_info,
- "all_back_info": all_back_info,
- "active_front_theme": active_front_theme,
- "active_back_theme": active_back_theme,
- }
- )
- context.update(module_settings)
-
- return render_template(
- "{}/index.html".format(module_info["module_name"]), **context
- )
-
-
-@module_blueprint.route("/activate/front/")
-@login_required
-def activate_front_theme(theme_name):
- set_setting("ACTIVE_FRONT_THEME", theme_name)
-
- # with app.app_context():
-
- # current_app.jinja_loader,
- # print(current_app.jinja_loader.list_templates())
- return redirect(url_for("{}.index".format(module_info["module_name"])))
-
-
-@module_blueprint.route("/activate/back/")
-@login_required
-def activate_back_theme(theme_name):
- set_setting("ACTIVE_BACK_THEME", theme_name)
-
- # with app.app_context():
-
- # current_app.jinja_loader,
- # print(current_app.jinja_loader.list_templates())
- return redirect(url_for("{}.index".format(module_info["module_name"])))
diff --git a/shopyo/modules/box__ecommerce/box_info.json b/shopyo/modules/box__ecommerce/box_info.json
deleted file mode 100644
index 586e83d..0000000
--- a/shopyo/modules/box__ecommerce/box_info.json
+++ /dev/null
@@ -1,9 +0,0 @@
-{
- "display_string": "Ecommerce",
- "box_name":"ecommerce",
- "author": {
- "name":"",
- "website":"",
- "mail":""
- }
- }
\ No newline at end of file
diff --git a/shopyo/modules/box__ecommerce/category/__init__.py b/shopyo/modules/box__ecommerce/category/__init__.py
deleted file mode 100644
index e69de29..0000000
diff --git a/shopyo/modules/box__ecommerce/category/global.py b/shopyo/modules/box__ecommerce/category/global.py
deleted file mode 100644
index 1faee04..0000000
--- a/shopyo/modules/box__ecommerce/category/global.py
+++ /dev/null
@@ -1,11 +0,0 @@
-from modules.box__ecommerce.category.models import Category
-
-
-def get_categories():
- return Category.query.all()
-
-
-available_everywhere = {
- "get_categories": get_categories,
- "Category": Category
-}
diff --git a/shopyo/modules/box__ecommerce/category/info.json b/shopyo/modules/box__ecommerce/category/info.json
deleted file mode 100644
index ae91009..0000000
--- a/shopyo/modules/box__ecommerce/category/info.json
+++ /dev/null
@@ -1,8 +0,0 @@
-{
- "display_string": "Inventory",
- "module_name":"category",
- "type": "show",
- "fa-icon": "fa fa-boxes",
- "url_prefix": "/category",
- "dashboard": "/dashboard"
-}
\ No newline at end of file
diff --git a/shopyo/modules/box__ecommerce/category/models.py b/shopyo/modules/box__ecommerce/category/models.py
deleted file mode 100644
index f19c81e..0000000
--- a/shopyo/modules/box__ecommerce/category/models.py
+++ /dev/null
@@ -1,89 +0,0 @@
-"""
-remember: backrefs should be unique
-"""
-
-from sqlalchemy import exists
-from sqlalchemy.orm import validates
-
-from shopyoapi.init import db
-from shopyoapi.models import PkModel
-from flask import url_for
-
-
-class Category(PkModel):
- __tablename__ = "categories"
- name = db.Column(db.String(100), unique=True, nullable=False)
- subcategories = db.relationship(
- "SubCategory", backref="category", lazy=True
- )
- resources = db.relationship(
- "Resource",
- backref="resource_category",
- lazy=True,
- )
-
- def __repr__(self):
- return f"Category: {self.name}"
-
- @classmethod
- def category_exists(cls, name):
- return db.session.query(
- exists().where(cls.name == name.lower())
- ).scalar()
-
- @validates("name")
- def convert_lower(self, key, value):
- return value.lower()
-
- def get_one_image_url(self):
- if len(self.resources) == 0:
- return url_for('static', filename='default/default_subcategory.jpg')
- else:
- resource = self.resources[0]
- return url_for('static', filename='uploads/products/{}'.format(resource.filename))
-
- def get_page_url(self):
- return url_for('shop.category', category_name=self.name)
-
-
-class SubCategory(PkModel):
- __tablename__ = "subcategories"
- name = db.Column(db.String(100), nullable=False)
- category_id = db.Column(db.Integer, db.ForeignKey("categories.id"))
- products = db.relationship("Product", backref="subcategory", lazy=True)
- resources = db.relationship(
- "Resource", backref="resource_subcategory", lazy=True
- )
-
- @classmethod
- def category_exists(cls, name):
- return db.session.query(
- exists().where(cls.name == name.lower())
- ).scalar()
-
- @validates("name")
- def convert_lower(self, key, value):
- return value.lower()
-
- def get_num_products(self):
- return len(self.products)
-
- def get_one_image_url(self):
-
- if len(self.products) > 0:
- product = self.products[0]
- if len(product.resources) == 0:
- if len(self.resources) == 0:
- return url_for('static', filename='default/default_subcategory.jpg')
- else:
- resource = self.resources[0]
- return url_for('static', filename='uploads/subcategory/{}'.format(resource.filename))
- else:
- resource = product.resources[0]
- return url_for('static', filename='uploads/products/{}'.format(resource.filename))
- else:
- if len(self.resources) == 0:
- return url_for('static', filename='default/default_subcategory.jpg')
- else:
- resource = self.resources[0]
- return url_for('static', filename='uploads/subcategory/{}'.format(resource.filename))
diff --git a/shopyo/modules/box__ecommerce/category/templates/category/add.html b/shopyo/modules/box__ecommerce/category/templates/category/add.html
deleted file mode 100644
index c9f4745..0000000
--- a/shopyo/modules/box__ecommerce/category/templates/category/add.html
+++ /dev/null
@@ -1,53 +0,0 @@
-{% extends "base/module_base.html" %}
-{% set active_page ='category' %}
-{% block pagehead %}
-add category
-{% endblock %}
-{% block sidebar %}
-{%include 'category/blocks/sidebar.html'%}
-{%endblock%}
-{% block content %}
-
-
-
-
- {% if has_category == 'True' %}
-
- Category alreadly Listed
-
- {% endif %}
-
Add Category
-
-
-
-{% endblock %}
\ No newline at end of file
diff --git a/shopyo/modules/box__ecommerce/category/templates/category/blocks/sidebar.html b/shopyo/modules/box__ecommerce/category/templates/category/blocks/sidebar.html
deleted file mode 100644
index 45e000f..0000000
--- a/shopyo/modules/box__ecommerce/category/templates/category/blocks/sidebar.html
+++ /dev/null
@@ -1,26 +0,0 @@
-
-{{
-sidebar_item('Category Home',
-icon='fa fa-store',
-url=url_for('category.dashboard')
-)}}
-
-
-
-{%if active_page not in ['manage subcategory', 'subcategory']%}
-{{
-sidebar_item('Add Category',
-icon='fas fa-plus-circle',
-url=url_for('category.add')
-)
-}}
-{%endif%}
-
-{%if active_page == 'subcategory'%}
-{{
-sidebar_item('Manage Subcategory',
-icon='fa fa-wrench',
-url=url_for('category.manage_sub', category_name=subcategory.category.name)
-)
-}}
-{%endif%}
\ No newline at end of file
diff --git a/shopyo/modules/box__ecommerce/category/templates/category/choose_sub.html b/shopyo/modules/box__ecommerce/category/templates/category/choose_sub.html
deleted file mode 100644
index f5766a4..0000000
--- a/shopyo/modules/box__ecommerce/category/templates/category/choose_sub.html
+++ /dev/null
@@ -1,25 +0,0 @@
-{% extends "base/module_base.html" %}
-{% set active_page ='' %}
-{% block pagehead %}
-{% endblock %}
-{% block sidebar %}
-{%include 'category/blocks/sidebar.html'%}
-{%endblock%}
-{% block content %}
-
-
-
-
- {%if category.subcategories%}
- {%for subcategory in category.subcategories%}
-
-
-
- {{subcategory.name}}
-
- {%endfor%}
- {%endif%}
-
-
-
-{% endblock %}
\ No newline at end of file
diff --git a/shopyo/modules/box__ecommerce/category/templates/category/dashboard.html b/shopyo/modules/box__ecommerce/category/templates/category/dashboard.html
deleted file mode 100644
index 419c996..0000000
--- a/shopyo/modules/box__ecommerce/category/templates/category/dashboard.html
+++ /dev/null
@@ -1,77 +0,0 @@
-{% extends "base/module_base.html" %}
-{% set active_page ='category' %}
-{% block pagehead %}
-
-
-{% endblock %}
-{% block sidebar %}
-{%include 'category/blocks/sidebar.html'%}
-{%endblock%}
-{% block content %}
-
-
-
-{% endblock %}
\ No newline at end of file
diff --git a/shopyo/modules/box__ecommerce/category/templates/category/edit.html b/shopyo/modules/box__ecommerce/category/templates/category/edit.html
deleted file mode 100644
index 2b66ac1..0000000
--- a/shopyo/modules/box__ecommerce/category/templates/category/edit.html
+++ /dev/null
@@ -1,93 +0,0 @@
-{% extends "base/module_base.html" %}
-{% set active_page ='category' %}
-{% block pagehead %}
-edit
-
-{% endblock %}
-{% block sidebar %}
-{%include 'category/blocks/sidebar.html'%}
-{%endblock%}
-{% block content %}
-
-
-{% endblock %}
\ No newline at end of file
diff --git a/shopyo/modules/box__ecommerce/category/templates/category/edit_img_sub.html b/shopyo/modules/box__ecommerce/category/templates/category/edit_img_sub.html
deleted file mode 100644
index 1636452..0000000
--- a/shopyo/modules/box__ecommerce/category/templates/category/edit_img_sub.html
+++ /dev/null
@@ -1,82 +0,0 @@
-{% extends "base/module_base.html" %}
-{% set active_page ='subcategory' %}
-{% block pagehead %}
-
-{% endblock %}
-{% block sidebar %}
-{%include 'category/blocks/sidebar.html'%}
-{%endblock%}
-{% block content %}
-
-{% endblock %}
\ No newline at end of file
diff --git a/shopyo/modules/box__ecommerce/category/templates/category/manage_sub.html b/shopyo/modules/box__ecommerce/category/templates/category/manage_sub.html
deleted file mode 100644
index bd100c1..0000000
--- a/shopyo/modules/box__ecommerce/category/templates/category/manage_sub.html
+++ /dev/null
@@ -1,73 +0,0 @@
-{% extends "base/module_base.html" %}
-{% set active_page ='manage subcategory' %}
-{% block pagehead %}
-{% endblock %}
-{% block sidebar %}
-{%include 'category/blocks/sidebar.html'%}
-{%endblock%}
-{% block content %}
-
-
-
- {%if category.name != 'uncategorised'%}
-
Add subcategory to {{category.name}}
-
- {%endif%}
-
-
-
Existing subcategories
- {%for subcategory in category.subcategories%}
-
-
-
-
-
-
-
- {%for resource in subcategory.resources%}
-
- {%endfor%}
-
-
-
-
-
-
-
- {%endfor%}
-
-
-{% endblock %}
\ No newline at end of file
diff --git a/shopyo/modules/box__ecommerce/category/templates/category/message.html b/shopyo/modules/box__ecommerce/category/templates/category/message.html
deleted file mode 100644
index c6e400a..0000000
--- a/shopyo/modules/box__ecommerce/category/templates/category/message.html
+++ /dev/null
@@ -1,18 +0,0 @@
-{% extends "base/main_base.html" %}
-
-{% set active_page ='category' %}
-
-{% block content %}
- {% include 'category/nav.html' %}
-
-
-
-
-{% endblock %}
\ No newline at end of file
diff --git a/shopyo/modules/box__ecommerce/category/tests/test_category.py b/shopyo/modules/box__ecommerce/category/tests/test_category.py
deleted file mode 100644
index fe39c7f..0000000
--- a/shopyo/modules/box__ecommerce/category/tests/test_category.py
+++ /dev/null
@@ -1,314 +0,0 @@
-"""
-This file (test_category.py) contains the functional tests
-for the `category` blueprint.
-
-These tests use GETs and POSTs to different URLs to check
-for the proper behavior of the `category` blueprint.
-"""
-import os
-import json
-import pytest
-from flask import url_for, request
-from modules.box__ecommerce.category.models import Category
-from modules.box__ecommerce.category.models import SubCategory
-
-dirpath = os.path.dirname(os.path.abspath(__file__))
-module_path = os.path.dirname(dirpath)
-
-module_info = None
-
-with open(os.path.join(module_path, "info.json")) as f:
- module_info = json.load(f)
-
-
-class TestCategoryInvalidAuth:
- """
- Test all category routes for correct user authentication
- """
-
- routes_get = [
- module_info["dashboard"],
- "/add",
- "//delete",
- "//img//delete",
- "/update",
- f"{module_info['dashboard']}/edit/",
- "/check/",
- "/file/",
- f"{module_info['dashboard']}//sub/",
- f"{module_info['dashboard']}//sub/add",
- f"{module_info['dashboard']}/sub//img/edit",
- "/sub//name/edit",
- "/sub//img/edit",
- "/sub//img//delete",
- "/sub//delete",
- "/sub/file/",
- f"/{module_info['dashboard']}/sub",
- ]
-
- routes_post = [
- "/add",
- "/update",
- f"{module_info['dashboard']}//sub/add",
- "/sub//name/edit",
- "/sub//img/edit",
- ]
-
- @pytest.mark.parametrize("route", routes_get)
- def test_redirect_if_not_logged_in_get(self, test_client, route, auth):
- auth.logout()
- response = test_client.get(
- f"{module_info['url_prefix']}{route}", follow_redirects=True
- )
-
- assert response.status_code == 200
- assert request.path == url_for("auth.login")
-
- @pytest.mark.parametrize("route", routes_post)
- def test_redirect_if_not_logged_in_post(self, test_client, route, auth):
- auth.logout()
- response = test_client.post(
- f"{module_info['url_prefix']}{route}", follow_redirects=True
- )
-
- assert response.status_code == 200
- assert request.path == url_for("auth.login")
-
-
-@pytest.mark.usefixtures("login_non_admin_user")
-class TestCategoryApi:
- def test_category_dashboard_page_get(self, test_client):
- response = test_client.get(url_for("category.dashboard"))
-
- assert response.status_code == 200
- assert b"Category" in response.data
-
- def test_category_add_page_get(self, test_client):
- response = test_client.get(url_for("category.add"))
-
- assert response.status_code == 200
- assert b"name" in response.data
- assert b"image" in response.data
-
- def test_category_add_empty_name_post(self, test_client):
- response = test_client.post(
- url_for("category.add"),
- data=dict(name=" "),
- follow_redirects=True,
- )
-
- assert response.status_code == 200
- assert b"Category name cannot be empty" in response.data
- assert request.path == url_for("category.add")
-
- def test_category_add_uncategorized_as_name_post(self, test_client):
- response = test_client.post(
- url_for("category.add"),
- data=dict(name="uncategorized"),
- follow_redirects=True,
- )
-
- assert response.status_code == 200
- assert b"Category cannot be named as uncategorised" in response.data
-
- def test_category_add_uncategorised_as_name_post(self, test_client):
- response = test_client.post(
- url_for("category.add"),
- data=dict(name=" uncategorised"),
- follow_redirects=True,
- )
-
- assert response.status_code == 200
- assert b"Category cannot be named as uncategorised" in response.data
-
- def test_category_add_existing_category_name_post(self, test_client):
- Category.create(name="category")
- response = test_client.post(
- url_for("category.add"),
- data=dict(name="category"),
- follow_redirects=True,
- )
-
- assert response.status_code == 200
- assert b'Category "category" already exists' in response.data
- assert Category.query.count() == 1
-
- def test_category_add_unique_category_name_post(self, test_client):
- response = test_client.post(
- url_for("category.add"),
- data=dict(name="category"),
- follow_redirects=True,
- )
- added_category = Category.query.filter(
- Category.name == "category"
- ).all()
-
- assert response.status_code == 200
- assert b'Category "category" added successfully' in response.data
- assert len(added_category) == 1
-
- def test_category_add_name_with_lower_and_upper_post(self, test_client):
- response = test_client.post(
- url_for("category.add"),
- data=dict(name="CatEgorY"),
- follow_redirects=True,
- )
- added_category = Category.query.filter(
- Category.name == "category"
- ).all()
-
- assert response.status_code == 200
- assert b'Category "category" added successfully' in response.data
- assert len(added_category) == 1
-
- def test_category_add_name_with_leading_trailing_space(self, test_client):
- response = test_client.post(
- url_for("category.add"),
- data=dict(name=" category "),
- follow_redirects=True,
- )
- added_category = Category.query.filter(
- Category.name == "category"
- ).all()
-
- assert response.status_code == 200
- assert b'Category "category" added successfully' in response.data
- assert len(added_category) == 1
-
- def test_category_delete_existing_category_get(self, test_client):
- Category.create(name="category")
- response = test_client.get(
- url_for("category.delete", name="category"),
- follow_redirects=True,
- )
- query = Category.query.filter(Category.name == "category").scalar()
-
- assert b'Category "category" successfully deleted' in response.data
- assert request.path == url_for("category.dashboard")
- assert query is None
-
- def test_category_delete_nonexisting_category_get(self, test_client):
- response = test_client.get(
- url_for("category.delete", name="category"),
- follow_redirects=True,
- )
-
- assert response.status_code == 200
- assert request.path == url_for("category.dashboard")
- assert b'Category "category" does not exist.' in response.data
-
- def test_category_delete_cat_with_subcategory_get(self, test_client):
- # add a category with subcategoires
- category = Category(name="category")
- subcategory = SubCategory(name="subcategory")
- category.subcategories.append(subcategory)
- category.save()
-
- response = test_client.get(
- url_for("category.delete", name="category"),
- follow_redirects=True,
- )
-
- assert response.status_code == 200
- assert request.path == url_for("category.dashboard")
- assert (
- b'Please delete all subcategories for category "category"'
- in response.data
- )
-
- def test_category_delete_cat_named_uncategorised_get(self, test_client):
- response = test_client.get(
- url_for("category.delete", name="uncategorised"),
- follow_redirects=True,
- )
-
- assert response.status_code == 200
- assert request.path == url_for("category.dashboard")
- assert b"Cannot delete category uncategorised" in response.data
-
- def test_category_delete_cat_name_which_is_empty_get(self, test_client):
- response = test_client.get(
- url_for("category.delete", name=" "), follow_redirects=True
- )
-
- assert response.status_code == 200
- assert request.path == url_for("category.dashboard")
- assert b"Cannot delete a category with no name" in response.data
-
- def test_category_add_nonexisting_subcategory_post(self, test_client):
- Category.create(name="category")
- response = test_client.post(
- url_for("category.add_sub", category_name="category"),
- data=dict(name="subcategory"),
- follow_redirects=True,
- )
- subcat = SubCategory.query.filter(
- SubCategory.name == "subcategory"
- ).scalar()
-
- assert response.status_code == 200
- assert request.path == url_for(
- "category.manage_sub", category_name="category"
- )
- assert subcat is not None
- assert subcat.category is not None
- assert subcat.category.name == "category"
-
- def test_category_add_existing_subcategory_post(self, test_client):
- category = Category(name="category1")
- subcategory = SubCategory(name="subcategory1")
- category.subcategories.append(subcategory)
- category.save()
-
- response = test_client.post(
- url_for("category.add_sub", category_name="category1"),
- data=dict(name="subcategory1"),
- follow_redirects=True,
- )
- subcategories = SubCategory.query.count()
-
- assert response.status_code == 200
- assert b"Name already exists for category" in response.data
- assert subcategories == 1
-
- def test_category_add_subcat_name_which_is_empty_get(self, test_client):
- Category.create(name="category1")
- response = test_client.post(
- url_for("category.add_sub", category_name="category1"),
- data=dict(name=" "),
- follow_redirects=True,
- )
- subcategories = SubCategory.query.count()
-
- assert response.status_code == 200
- assert b"Name cannot be empty" in response.data
- assert subcategories == 0
-
- def test_category_add_existing_subcat_with_spaces_post(self, test_client):
- category = Category(name="category1")
- subcategory = SubCategory(name="subcategory1")
- category.subcategories.append(subcategory)
- category.save()
-
- response = test_client.post(
- url_for("category.add_sub", category_name="category1"),
- data=dict(name=" subcategory1 "),
- follow_redirects=True,
- )
- subcategories = SubCategory.query.count()
-
- assert response.status_code == 200
- assert b"Name already exists for category" in response.data
- assert subcategories == 1
-
- def test_category_add_subcat_to_nonexisting_cat_post(self, test_client):
- response = test_client.post(
- url_for("category.add_sub", category_name="category"),
- data=dict(name="subcategory"),
- follow_redirects=True,
- )
- subcategories = SubCategory.query.count()
-
- assert response.status_code == 400
- assert b"category does not exist" in response.data
- assert subcategories == 0
diff --git a/shopyo/modules/box__ecommerce/category/upload.py b/shopyo/modules/box__ecommerce/category/upload.py
deleted file mode 100644
index 26e0752..0000000
--- a/shopyo/modules/box__ecommerce/category/upload.py
+++ /dev/null
@@ -1,156 +0,0 @@
-import datetime
-import uuid
-
-from app import app
-
-from modules.box__ecommerce.category.models import Category
-from modules.box__ecommerce.category.models import SubCategory
-from modules.box__ecommerce.product.models import Product
-from modules.box__ecommerce.product.models import Color
-from modules.box__ecommerce.product.models import Size
-
-
-colors = [Color(name='c1')]
-sizes = [Size(name='s1')]
-def add_uncategorised_category():
- with app.app_context():
- category = Category(name="uncategorised")
- subcategory = SubCategory(name="uncategorised")
- p1 = Product(
- barcode=str(uuid.uuid1()),
- price=10.0,
- name="Apple",
- in_stock=50,
- selling_price=15.0,
- discontinued=False,
- description="",
- )
- p1.colors = colors
- p1.sizes = sizes
-
- p2 = Product(
- barcode=str(uuid.uuid1()),
- price=10.0,
- name="Pear",
- in_stock=50,
- selling_price=15.0,
- discontinued=False,
- description="",
- )
- p2.colors = colors
- p2.sizes = sizes
-
- p3 = Product(
- barcode=str(uuid.uuid1()),
- price=10.0,
- name="Peach",
- in_stock=50,
- selling_price=15.0,
- discontinued=False,
- description="",
- )
- p3.colors = colors
- p3.sizes = sizes
-
-
- subcategory.products.extend([p1, p2, p3])
- category.subcategories.append(subcategory)
- category.save()
-
-def add_men_category():
- with app.app_context():
- category = Category(name="Men")
- subcategory1 = SubCategory(name="Sneakers")
- subcategory2 = SubCategory(name="Air Jordan")
- subcategory3 = SubCategory(name="Slides")
- subcategory4 = SubCategory(name="Airmax")
- p1 = Product(
- barcode=str(uuid.uuid1()),
- price=10.0,
- name="Demo Shoe 1",
- in_stock=50,
- selling_price=15.0,
- discontinued=False,
- description="",
- )
- p1.sizes = sizes
- p1.colors = colors
-
- p2 = Product(
- barcode=str(uuid.uuid1()),
- price=10.0,
- name="Demo Shoe 2",
- in_stock=50,
- selling_price=15.0,
- discontinued=False,
- description="",
- )
- p2.sizes = sizes
- p2.colors = colors
-
- p3 = Product(
- barcode=str(uuid.uuid1()),
- price=10.0,
- name="Demo Shoe 3",
- in_stock=50,
- selling_price=15.0,
- discontinued=False,
- description="",
- )
- p3.sizes = sizes
- p3.colors = colors
-
- p4 = Product(
- barcode=str(uuid.uuid1()),
- price=10.0,
- name="Demo Shoe 4",
- in_stock=50,
- selling_price=15.0,
- discontinued=False,
- description="",
- )
- p4.sizes = sizes
- p4.colors = colors
-
-
- subcategory2.save(commit=False)
- subcategory3.save(commit=False)
- subcategory4.save(commit=False)
-
-
- subcategory1.products.extend([p1, p2, p3, p4])
- category.subcategories.extend([
- subcategory1,
- subcategory2,
- subcategory3,
- subcategory4
- ])
- category.save()
-
-def add_women_category():
- with app.app_context():
- category = Category(name="Women")
- subcategory1 = SubCategory(name="Sneakers")
- subcategory2 = SubCategory(name="Air Jordan")
- subcategory3 = SubCategory(name="Slides")
- subcategory4 = SubCategory(name="Airmax")
-
- subcategory2.save(commit=False)
- subcategory3.save(commit=False)
- subcategory4.save(commit=False)
- subcategory1.save(commit=False)
-
- category.subcategories.extend([
- subcategory1,
- subcategory2,
- subcategory3,
- subcategory4
- ])
- category.save()
-
-def upload():
- # print("Adding category and subcategory uncategorised ...")
- # add_uncategorised_category()
- print('Add category')
- add_men_category()
- add_women_category()
diff --git a/shopyo/modules/box__ecommerce/category/view.py b/shopyo/modules/box__ecommerce/category/view.py
deleted file mode 100644
index a3e59d2..0000000
--- a/shopyo/modules/box__ecommerce/category/view.py
+++ /dev/null
@@ -1,528 +0,0 @@
-import json
-import os
-
-from flask import Blueprint
-from flask import current_app
-from flask import flash
-from flask import jsonify
-from flask import redirect
-from flask import render_template
-from flask import request
-from flask import send_from_directory
-from flask import url_for
-from sqlalchemy import and_
-
-import flask_uploads
-from flask_login import login_required
-from flask_sqlalchemy import sqlalchemy
-
-from shopyoapi.file import delete_file
-from shopyoapi.file import unique_sec_filename
-from shopyoapi.html import notify_success
-from shopyoapi.html import notify_warning
-from shopyoapi.init import categoryphotos
-from shopyoapi.init import subcategoryphotos
-from shopyoapi.init import db
-from shopyoapi.validators import is_empty_str
-
-from modules.box__default.settings.helpers import get_setting
-from modules.box__ecommerce.category.models import Category
-from modules.box__ecommerce.category.models import SubCategory
-from modules.resource.models import Resource
-
-dirpath = os.path.dirname(os.path.abspath(__file__))
-module_info = {}
-
-with open(dirpath + "/info.json") as f:
- module_info = json.load(f)
-
-globals()["{}_blueprint".format(module_info["module_name"])] = Blueprint(
- "{}".format(module_info["module_name"]),
- __name__,
- template_folder="templates",
- url_prefix=module_info["url_prefix"],
-)
-
-module_blueprint = globals()["{}_blueprint".format(module_info["module_name"])]
-
-module_name = module_info["module_name"]
-
-
-@module_blueprint.route(module_info["dashboard"])
-@login_required
-def dashboard():
- context = {}
- context["categorys"] = Category.query.all()
- context["active_page"] = get_setting("SECTION_NAME")
- return render_template("category/dashboard.html", **context)
-
-
-@module_blueprint.route("/add", methods=["GET", "POST"])
-@login_required
-def add():
-
- context = {}
- has_category = False
-
- if request.method == "POST":
- # convert name to lower case and remove leading
- # and trailing spaces
- name = request.form["name"].lower().strip()
-
- # case 1: do not allow adding empty category name
- if is_empty_str(name):
- flash(notify_warning("Category name cannot be empty"))
- return redirect(url_for("category.add"))
-
- # case 2: do not allow category name uncategorised
- # not sure if this is needed since if we add this
- # during initialization then this check will be covered
- # by case 3
- if name == "uncategorised" or name == "uncategorized":
- flash(notify_warning("Category cannot be named as uncategorised"))
- return redirect(url_for("category.add"))
-
- has_category = Category.category_exists(name)
-
- # case 3: do not allow adding existing category name
- if has_category:
- flash(notify_warning(f'Category "{name}" already exists'))
- return render_template("category/add.html", **context)
-
- # case 4: sucessfully add the category
- category = Category(name=name)
- try:
- if "photo" in request.files:
- file = request.files["photo"]
-
- filename = unique_sec_filename(file.filename)
- file.filename = filename
- categoryphotos.save(file)
- category.resources.append(
- Resource(
- type="image",
- filename=filename,
- category="category_image",
- )
- )
- except flask_uploads.UploadNotAllowed as e:
- pass
-
- category.save()
- flash(notify_success(f'Category "{name}" added successfully'))
- return render_template("category/add.html", **context)
-
- context["has_category"] = str(has_category)
- return render_template("category/add.html", **context)
-
-
-@module_blueprint.route("/delete", methods=["GET"])
-@login_required
-def delete(name):
-
- if is_empty_str(name):
- flash(notify_warning("Cannot delete a category with no name"))
- return redirect(url_for("category.dashboard"))
-
- if name != "uncategorised":
-
- category = Category.query.filter(Category.name == name).first()
-
- if not category:
- flash(notify_warning(f'Category "{name}" does not exist.'))
- return redirect(url_for("category.dashboard"))
-
- if category.subcategories:
- flash(
- notify_warning(
- f'Please delete all subcategories for category "{name}"'
- )
- )
- return redirect(url_for("category.dashboard"))
-
- category.delete()
- flash(notify_success(f'Category "{name}" successfully deleted'))
- return redirect(url_for("category.dashboard"))
-
- flash(notify_warning("Cannot delete category uncategorised"))
- return redirect(url_for("category.dashboard"))
-
-
-@module_blueprint.route(
- "//img//delete", methods=["GET"]
-)
-@login_required
-def category_image_delete(category_name, filename):
- resource = Resource.query.filter(Resource.filename == filename).first()
- category = Category.query.filter(Category.name == category_name).first()
- category.resources.remove(resource)
- category.update()
- delete_file(
- os.path.join(
- current_app.config["UPLOADED_CATEGORYPHOTOS_DEST"], filename
- )
- )
-
- return redirect(url_for("category.dashboard"))
-
-
-@module_blueprint.route("/update", methods=["GET", "POST"])
-@login_required
-def update():
- context = {}
-
- if request.method == "POST":
- name = request.form["category_name"]
- old_name = request.form["old_category_name"]
- try:
- category = Category.query.filter_by(name=old_name).first()
-
- try:
- if "photo" in request.files:
- file = request.files["photo"]
-
- filename = unique_sec_filename(file.filename)
- file.filename = filename
- categoryphotos.save(file)
- category.resources.append(
- Resource(
- type="image",
- filename=filename,
- category="category_image",
- )
- )
- except flask_uploads.UploadNotAllowed as e:
- pass
-
- category.name = name
- category.update()
- except sqlalchemy.exc.IntegrityError:
- context[
- "message"
- ] = "you cannot modify to an already existing category"
- context["redirect_url"] = "/category/"
- render_template("category/message.html", **context)
- return redirect(url_for("category.dashboard"))
-
-
-@module_blueprint.route(
- "{}/edit/".format(module_info["dashboard"]),
- methods=["GET"],
-)
-@login_required
-def edit_dashboard(category_name):
- context = {}
- category = Category.query.filter(Category.name == category_name).first()
-
- context.update({"len": len, "category": category})
- return render_template("category/edit.html", **context)
-
-
-# api
-@module_blueprint.route("/check/", methods=["GET"])
-@login_required
-def check(category_name):
- has_category = Category.category_exists(category_name)
- return jsonify({"exists": has_category})
-
-
-#
-# subcategory
-#
-
-
-@module_blueprint.route(
- "{}//sub/".format(module_info["dashboard"]),
- methods=["GET"],
-)
-@login_required
-def manage_sub(category_name):
- context = {}
- category = Category.query.filter(Category.name == category_name).first()
-
- if category is None:
- flash(notify_warning("category name does not exist"))
-
- context.update({"category": category})
- return render_template("category/manage_sub.html", **context)
-
-
-@module_blueprint.route(
- "{}//sub/add".format(module_info["dashboard"]),
- methods=["GET", "POST"],
-)
-@login_required
-def add_sub(category_name):
- if request.method == "POST":
-
- category = Category.query.filter(
- Category.name == category_name
- ).scalar()
-
- # case 1: do not allow adding subcategory to nonexisting
- # category
- if category is None:
- return "category does not exist", 400
-
- # convert name to lower case and remove leading
- # and trailing spaces
- name = request.form["name"].lower().strip()
-
- # case 2: do not allow adding subcategory with
- # empty name
- if is_empty_str(name):
- flash(notify_warning("Name cannot be empty"))
- return redirect(
- url_for(
- "category.manage_sub",
- category_name=category_name,
- )
- )
-
- existing = (
- SubCategory.query.join(Category)
- .filter(
- and_(SubCategory.name == name, Category.name == category_name)
- )
- .first()
- )
-
- # case 3: do not allow adding existing subcategory
- # inside a given category
- if existing:
- flash(notify_warning("Name already exists for category"))
- return redirect(
- url_for(
- "category.manage_sub",
- category_name=category_name,
- )
- )
-
- # case 4: successfully add subcategory to desired category
- category = Category.query.filter(
- Category.name == category_name
- ).first()
- subcategory = SubCategory(name=name)
-
- try:
- if "photo" in request.files:
- file = request.files["photo"]
-
- filename = unique_sec_filename(file.filename)
- file.filename = filename
- subcategoryphotos.save(file)
- subcategory.resources.append(
- Resource(
- type="image",
- filename=filename,
- category="subcategory_image",
- )
- )
- except flask_uploads.UploadNotAllowed as e:
- pass
-
- category.subcategories.append(subcategory)
- category.update()
- return redirect(
- url_for("category.manage_sub", category_name=category_name)
- )
-
-
-@module_blueprint.route(
- "{}/sub//img/edit".format(module_info["dashboard"]),
- methods=["GET"],
-)
-@login_required
-def edit_sub_img_dashboard(subcategory_id):
- context = {}
- subcategory = SubCategory.query.get(subcategory_id)
- context.update({"len": len, "subcategory": subcategory})
- return render_template("category/edit_img_sub.html", **context)
-
-
-@module_blueprint.route(
- "/sub//name/edit", methods=["GET", "POST"]
-)
-@login_required
-def edit_sub_name(subcategory_id):
- if request.method == "POST":
- subcategory = SubCategory.query.get(subcategory_id)
- name = request.form["name"]
- if is_empty_str(name):
- flash(notify_warning("Name cannot be empty"))
- return redirect(
- url_for(
- "category.manage_sub",
- category_name=subcategory.category.name,
- )
- )
- category_name = subcategory.category.name
- existing = SubCategory.query.filter(
- (SubCategory.name == name) & (Category.name == category_name)
- ).first()
- if existing:
- flash(notify_warning("Name already exists for category"))
- return redirect(
- url_for(
- "category.manage_sub",
- category_name=subcategory.category.name,
- )
- )
- subcategory.name = name
- subcategory.update()
- flash(notify_success("Subcategory name updated successfully!"))
- return redirect(
- url_for(
- "category.manage_sub", category_name=subcategory.category.name
- )
- )
-
-
-@module_blueprint.route(
- "/sub//img/edit", methods=["GET", "POST"]
-)
-@login_required
-def edit_sub_img(subcategory_id):
- if request.method == "POST":
- subcategory = SubCategory.query.get(subcategory_id)
- try:
- if "photo" in request.files:
- file = request.files["photo"]
-
- filename = unique_sec_filename(file.filename)
- file.filename = filename
- subcategoryphotos.save(file)
- subcategory.resources.append(
- Resource(
- type="image",
- filename=filename,
- category="subcategory_image",
- )
- )
- except flask_uploads.UploadNotAllowed as e:
- pass
- subcategory.update()
- return redirect(
- url_for(
- "category.edit_sub_img_dashboard",
- subcategory_id=subcategory.id,
- )
- )
-
-
-@module_blueprint.route(
- "/sub//img//delete", methods=["GET"]
-)
-@login_required
-def subcategory_image_delete(subcategory_id, filename):
- resource = Resource.query.filter(Resource.filename == filename).first()
- subcategory = SubCategory.query.get(subcategory_id)
- subcategory.resources.remove(resource)
- subcategory.update()
- delete_file(
- os.path.join(
- current_app.config["UPLOADED_SUBCATEGORYPHOTOS_DEST"], filename
- )
- )
-
- return redirect(
- url_for(
- "category.edit_sub_img_dashboard", subcategory_id=subcategory_id
- )
- )
-
-
-@module_blueprint.route("/sub//delete", methods=["GET"])
-@login_required
-def sub_delete(subcategory_id):
- subcategory = SubCategory.query.get(subcategory_id)
- category_name = subcategory.category.name
- if (
- subcategory.name == "uncategorised"
- and subcategory.category.name == "uncategorised"
- ):
- flash(
- notify_warning(
- "Cannot delete subcategory uncategorised "
- + "of category uncategorised"
- )
- )
- return redirect(
- url_for("category.manage_sub", category_name=category_name)
- )
-
- uncategorised_sub = (
- SubCategory.query.join(Category)
- .filter(
- and_(
- SubCategory.name == "uncategorised",
- Category.name == "uncategorised",
- )
- )
- .first()
- )
-
- # before removing the subcategory, move the products
- # in this subcategory to uncategorised subcategory
- for product in subcategory.products:
- uncategorised_sub.products.append(product)
-
- subcategory.products = []
- db.session.delete(subcategory)
- db.session.commit()
-
- # for resource in subcategory.resources:
- # filename = resource.filename
- # resource.delete()
- # delete_file(
- # os.path.join(
- # current_app.config["UPLOADED_SUBCATEGORYPHOTOS_DEST"],
- # filename
- # )
- # )
- # subcategory.delete()
-
- # add for products change
- return redirect(
- url_for("category.manage_sub", category_name=category_name)
- )
-
-
-@module_blueprint.route(
- "/{}/sub".format(module_info["dashboard"]),
- methods=["GET"],
-)
-@login_required
-def choose_sub_dashboard(category_id):
- context = {}
- category = Category.query.get(category_id)
-
- context.update({"category": category})
- return render_template("category/choose_sub.html", **context)
-
-
-#
-# serve files
-#
-
-
-@module_blueprint.route("/sub/file/", methods=["GET"])
-@login_required
-def subcategory_image(filename):
- if filename == "default":
- return send_from_directory(
- os.path.join(current_app.config["BASE_DIR"], "static", "default"),
- "default_subcategory.jpg",
- )
- return send_from_directory(
- current_app.config["UPLOADED_SUBCATEGORYPHOTOS_DEST"], filename
- )
-
-
-@module_blueprint.route("/file/", methods=["GET"])
-@login_required
-def category_image(filename):
-
- return send_from_directory(
- current_app.config["UPLOADED_CATEGORYPHOTOS_DEST"], filename
- )
diff --git a/shopyo/modules/box__ecommerce/customer/forms.py b/shopyo/modules/box__ecommerce/customer/forms.py
deleted file mode 100644
index e69de29..0000000
diff --git a/shopyo/modules/box__ecommerce/customer/global.py b/shopyo/modules/box__ecommerce/customer/global.py
deleted file mode 100644
index 516c4fb..0000000
--- a/shopyo/modules/box__ecommerce/customer/global.py
+++ /dev/null
@@ -1,4 +0,0 @@
-
-available_everywhere = {
-
-}
diff --git a/shopyo/modules/box__ecommerce/customer/info.json b/shopyo/modules/box__ecommerce/customer/info.json
deleted file mode 100644
index 316d9b6..0000000
--- a/shopyo/modules/box__ecommerce/customer/info.json
+++ /dev/null
@@ -1,12 +0,0 @@
-{
- "display_string": "Customer",
- "module_name":"customer",
- "type": "hide",
- "fa-icon": "fa fa-store",
- "url_prefix": "/customer",
- "author": {
- "name":"",
- "website":"",
- "mail":""
- }
-}
\ No newline at end of file
diff --git a/shopyo/modules/box__ecommerce/customer/models.py b/shopyo/modules/box__ecommerce/customer/models.py
deleted file mode 100644
index e69de29..0000000
diff --git a/shopyo/modules/box__ecommerce/customer/templates/customer/blocks/sidebar.html b/shopyo/modules/box__ecommerce/customer/templates/customer/blocks/sidebar.html
deleted file mode 100644
index 15322fc..0000000
--- a/shopyo/modules/box__ecommerce/customer/templates/customer/blocks/sidebar.html
+++ /dev/null
@@ -1,21 +0,0 @@
-{{
-sidebar_item('Shop',
-icon='fa fa-home',
-url=url_for('shop.index')
-)
-}}
-
-{{
-sidebar_item('Dashboard',
-icon='fa fa-home',
-url=url_for('customer.dashboard')
-)
-}}
-
-
-{{
-sidebar_item('Orders',
-icon='fa fa-home',
-url=url_for('customer.orders')
-)
-}}
\ No newline at end of file
diff --git a/shopyo/modules/box__ecommerce/customer/templates/customer/dashboard.html b/shopyo/modules/box__ecommerce/customer/templates/customer/dashboard.html
deleted file mode 100644
index c7361c4..0000000
--- a/shopyo/modules/box__ecommerce/customer/templates/customer/dashboard.html
+++ /dev/null
@@ -1,20 +0,0 @@
-
-{% extends "base/module_base.html" %}
-{% set active_page = info['display_string']+' dashboard' %}
-{% block pagehead %}
-
-
-{% endblock %}
-{% block sidebar %}
-{% include info['module_name']+'/blocks/sidebar.html' %}
-{% endblock %}
-{% block content %}
-
-
-
-{% endblock %}
diff --git a/shopyo/modules/box__ecommerce/customer/templates/customer/order_item_view.html b/shopyo/modules/box__ecommerce/customer/templates/customer/order_item_view.html
deleted file mode 100644
index 605e33c..0000000
--- a/shopyo/modules/box__ecommerce/customer/templates/customer/order_item_view.html
+++ /dev/null
@@ -1,89 +0,0 @@
-{% extends "base/module_base.html" %}
-{% set active_page = info['display_string']+' dashboard' %}
-{% block pagehead %}
-Orders
-
-{% endblock %}
-{% block sidebar %}
-{%include info['module_name']+'/blocks/sidebar.html'%}
-{%endblock%}
-{% block content %}
-
-
-
-
-
-
-
-
-
-
-
-
- Time
- {{order.get_std_formatted_time()}}
-
-
- Status
-
- {{order.status}}
-
-
-
- Items
-
-
- Name
- Barcode
- Price
- Quantity
- Total
-
- {%for order_item in order.order_items%}
- {%set product = order_item.get_product()%}
-
- {{product.name}}
- {{product.barcode}}
- {{product.selling_price}}
- {{order_item.quantity}}
- {{product.selling_price * order_item.quantity}}
-
- {%endfor%}
-
- Total amount
-
-
-
- {{order.get_total_amount()}}
-
-
- Customer Name
- {{order.billing_detail.first_name}} {{order.billing_detail.last_name}}
-
-
- Street
- {{order.billing_detail.street}}
-
-
- Town/City
- {{order.billing_detail.town_city}}
-
-
- Phone
- {{order.billing_detail.phone}}
-
-
- Email
- {{order.billing_detail.email}}
-
-
-
-
-
-
-
-
-{% endblock %}
-
-
diff --git a/shopyo/modules/box__ecommerce/customer/templates/customer/orders.html b/shopyo/modules/box__ecommerce/customer/templates/customer/orders.html
deleted file mode 100644
index 2cf387d..0000000
--- a/shopyo/modules/box__ecommerce/customer/templates/customer/orders.html
+++ /dev/null
@@ -1,115 +0,0 @@
-
-{% extends "base/module_base.html" %}
-{% set active_page = info['display_string']+' dashboard' %}
-{% block pagehead %}
-
-
-{% endblock %}
-{% block sidebar %}
-{% include info['module_name']+'/blocks/sidebar.html' %}
-{% endblock %}
-{% block content %}
-
-
-
-
-
Orders (Logged In)
-
-
-
- time
- status
-
-
-
-
-
- {%for order in logged_in_orders.items%}
-
-
- {{order.get_std_formatted_time()}}
- {{order.status}}
-
- view
-
-
- {%endfor%}
-
- {% if prev_url %}
- Prev
- {% endif %}
- {% if next_url %}
- Next
- {% endif %}
-
-
-
-
- «
-
-
- {% for page_num in logged_in_orders.iter_pages(left_edge=1, right_edge=1, left_current=1, right_current=2) %}{% if page_num %}
-
- {% if logged_in_orders.page == page_num %}
-
- {{ page_num }}
-
- {% else %}
-
- {{ page_num }}
-
- {% endif %}
- {% else %}
- ...
- {% endif %}
- {% endfor %}
-
- »
-
-
-
- Showing page {{ logged_in_orders.page }} of {{ logged_in_orders.pages }}
-
-
-
-
-
-
-
-
Orders (Not Logged In)
-
-
- customer
- time
- status
- product
- quantity
-
-
-
-
- {%for order in not_logged_in_orders%}
- {%for order_item in order.order_items%}
-
-
- {{order_item.item_order.billing_detail.email}}
- {{order_item.item_order.get_std_formatted_time()}}
- {{order_item.status}}
- {{order_item.order_item_product.name}}
- {{order_item.quantity}}
- view
-
- {%endfor%}
- {%endfor%}
-
-
-
-
-{% endblock %}
diff --git a/shopyo/modules/box__ecommerce/customer/tests/test_customer_functional.py b/shopyo/modules/box__ecommerce/customer/tests/test_customer_functional.py
deleted file mode 100644
index 8d45236..0000000
--- a/shopyo/modules/box__ecommerce/customer/tests/test_customer_functional.py
+++ /dev/null
@@ -1 +0,0 @@
-# Please add your functional tests to this file.
diff --git a/shopyo/modules/box__ecommerce/customer/tests/test_customer_models.py b/shopyo/modules/box__ecommerce/customer/tests/test_customer_models.py
deleted file mode 100644
index c7a836b..0000000
--- a/shopyo/modules/box__ecommerce/customer/tests/test_customer_models.py
+++ /dev/null
@@ -1 +0,0 @@
-# Please add your models tests to this file.
diff --git a/shopyo/modules/box__ecommerce/customer/view.py b/shopyo/modules/box__ecommerce/customer/view.py
deleted file mode 100644
index 3a87cfc..0000000
--- a/shopyo/modules/box__ecommerce/customer/view.py
+++ /dev/null
@@ -1,103 +0,0 @@
-
-from shopyoapi.module import ModuleHelp
-from modules.box__default.auth.forms import RegisterCustomerForm
-from modules.box__default.admin.models import User
-from modules.box__ecommerce.shop.models import Order
-from modules.box__ecommerce.shop.models import OrderItem
-from modules.box__ecommerce.shop.models import BillingDetail
-
-# from flask import render_template
-from flask import url_for
-# from flask import redirect
-from flask import flash
-from flask import request
-
-from shopyoapi.html import notify_warning
-from shopyoapi.html import notify_success
-from shopyoapi.forms import flash_errors
-from shopyoapi.init import db
-
-from flask_login import login_required
-from flask_login import logout_user
-from flask_login import current_user
-
-mhelp = ModuleHelp(__file__, __name__)
-globals()[mhelp.blueprint_str] = mhelp.blueprint
-module_blueprint = globals()[mhelp.blueprint_str]
-
-@module_blueprint.route("/register", methods=['POST'])
-@login_required
-def register():
- if request.method == 'POST':
- form = RegisterCustomerForm()
- if not form.validate_on_submit():
- flash_errors(form)
- user = User()
- if User.query.filter(User.email == form.email.data).first():
- flash(notify_warning("Email exists"))
- return mhelp.redirect_url('shop.homepage')
- user.email = form.email.data
- password1 = form.password.data
- password2 = form.reconfirm_password.data
- if not password1 == password2:
- flash(notify_warning("Passwords don't match"))
- return mhelp.redirect_url('shop.homepage')
- user.password = password1
- user.is_customer = True
- print(user.email, password1)
- user.save()
- flash(notify_success('Successfully registered, please log in!'))
- return mhelp.redirect_url('shop.homepage')
-
-@module_blueprint.route("/logout", methods=["GET", "POST"])
-def logout():
- logout_user()
- return mhelp.redirect_url('shop.homepage')
-
-@module_blueprint.route("/dashboard", methods=['GET'])
-@login_required
-def dashboard():
- context = mhelp.context()
- context.update({'_hide_nav': True, '_logout_url':url_for('customer.logout')})
- return mhelp.render('dashboard.html', **context)
-
-
-@module_blueprint.route("/orders", methods=['GET'])
-@login_required
-def orders():
- context = mhelp.context()
- NO_OF_ITEMS = 5
-
- page = request.args.get('page',1,type=int)
- logged_in_orders = Order.query.filter(Order.logged_in_customer_email == current_user.email).paginate(page, NO_OF_ITEMS, False)
-
- not_logged_in_orders = Order.query.join(BillingDetail).filter(
- (BillingDetail.email == current_user.email) &
- (Order.logged_in_customer_email == '')).all()
- context.update({'logged_in_orders': logged_in_orders, 'not_logged_in_orders': not_logged_in_orders})
- context.update({'_hide_nav': True, '_logout_url':url_for('customer.logout')})
- return mhelp.render('orders.html', **context)
-
-
-@module_blueprint.route("/order//view", methods=["GET", "POST"])
-@login_required
-def order_view(order_id):
- order = Order.query.get(order_id)
- context = mhelp.context()
- context.update({'order': order})
- context.update({'_hide_nav': True, '_logout_url':url_for('customer.logout')})
- return mhelp.render("order_item_view.html", **context)
-
-
-
-# If "dashboard": "/dashboard" is set in info.json
-#
-# @module_blueprint.route("/dashboard", methods=["GET"])
-# def dashboard():
-
-# context = mhelp.context()
-
-# context.update({
-
-# })
-# return mhelp.render('dashboard.html', **context)
diff --git a/shopyo/modules/box__ecommerce/pos/forms.py b/shopyo/modules/box__ecommerce/pos/forms.py
deleted file mode 100644
index e69de29..0000000
diff --git a/shopyo/modules/box__ecommerce/pos/info.json b/shopyo/modules/box__ecommerce/pos/info.json
deleted file mode 100644
index 94367ac..0000000
--- a/shopyo/modules/box__ecommerce/pos/info.json
+++ /dev/null
@@ -1,12 +0,0 @@
-{
- "display_string": "Pos",
- "module_name":"pos",
- "type": "show",
- "fa-icon": "fa fa-cash-register",
- "url_prefix": "/pos",
- "author": {
- "name":"",
- "website":"",
- "mail":""
- }
-}
\ No newline at end of file
diff --git a/shopyo/modules/box__ecommerce/pos/models.py b/shopyo/modules/box__ecommerce/pos/models.py
deleted file mode 100644
index 245a994..0000000
--- a/shopyo/modules/box__ecommerce/pos/models.py
+++ /dev/null
@@ -1,28 +0,0 @@
-from datetime import datetime
-
-from shopyoapi.init import db
-
-
-class Transaction(db.Model):
- __tablename__ = "transactions"
-
- id = db.Column(db.Integer, primary_key=True)
-
- chashier_id = db.Column(db.Integer)
- time = db.Column(db.DateTime, default=datetime.now())
- quantity = db.Column(db.Integer)
- price = db.Column(db.Float)
-
- def add(self):
- db.session.add(self)
-
- def insert(self):
- db.session.add(self)
- db.session.commit()
-
- def update(self):
- db.session.commit()
-
- def delete(self):
- db.session.delete(self)
- db.session.commit()
diff --git a/shopyo/modules/box__ecommerce/pos/templates/pos/index.html b/shopyo/modules/box__ecommerce/pos/templates/pos/index.html
deleted file mode 100644
index 0cfd345..0000000
--- a/shopyo/modules/box__ecommerce/pos/templates/pos/index.html
+++ /dev/null
@@ -1,199 +0,0 @@
-{% extends "base/main_base.html" %}
-{% set active_page ='pos' %}
-{% block pagehead %}
-
-
-{% endblock %}
-{% block content %}
-
-
-
-
-
-
- Total $0
- 0
-
-
-
-
-
User Change
-
-
Return $---
-
- Calculate
- Confirm
-
-
-
-
-
-
-
-
- {%for category in categories%}
-
- {%for subcategory in category.subcategories%}
- {{subcategory.name}}
- {%for product in subcategory.products%}
- {%if product.in_stock > 0%}
-
- {{product.name}} - {{product.selling_price}}
- {{product.in_stock}}
-
- {%endif%}
- {%endfor%}
- {%endfor%}
-
- {%endfor%}
-
-
-
-
-
-
-
-
-
-{% endblock %}
\ No newline at end of file
diff --git a/shopyo/modules/box__ecommerce/pos/view.py b/shopyo/modules/box__ecommerce/pos/view.py
deleted file mode 100644
index bb39362..0000000
--- a/shopyo/modules/box__ecommerce/pos/view.py
+++ /dev/null
@@ -1,68 +0,0 @@
-import json
-import os
-
-from flask import Blueprint
-from flask import jsonify
-from flask import render_template
-from flask import request
-
-from flask_login import current_user
-from flask_login import login_required
-
-# from flask import url_for
-# from flask import redirect
-# from flask import flash
-# from shopyoapi.html import notify_success
-
-from modules.box__ecommerce.category.models import Category
-from modules.box__ecommerce.pos.models import Transaction
-from modules.box__ecommerce.product.models import Product
-
-# from shopyoapi.forms import flash_errors
-
-
-dirpath = os.path.dirname(os.path.abspath(__file__))
-module_info = {}
-
-with open(dirpath + "/info.json") as f:
- module_info = json.load(f)
-
-globals()["{}_blueprint".format(module_info["module_name"])] = Blueprint(
- "{}".format(module_info["module_name"]),
- __name__,
- template_folder="templates",
- url_prefix=module_info["url_prefix"],
-)
-
-
-module_blueprint = globals()["{}_blueprint".format(module_info["module_name"])]
-
-
-@module_blueprint.route("/")
-@login_required
-def index():
- context = {}
- categories = Category.query.all()
- context.update({"categories": categories})
- return render_template("pos/index.html", **context)
-
-
-@module_blueprint.route("/transaction", methods=["GET", "POST"])
-@login_required
-def transaction():
- if request.method == "POST":
- json = request.get_json()
- for key in json:
- prod_id = key
- number_items = json[key]["count"]
- product = Product.query.get(prod_id)
- product.in_stock -= number_items
-
- product.update()
-
- transaction = Transaction()
- transaction.chashier_id = current_user.id
- transaction.products = [Product.query.get(key) for key in json]
- transaction.insert()
-
- return jsonify({"message": "ok"})
diff --git a/shopyo/modules/box__ecommerce/product/__init__.py b/shopyo/modules/box__ecommerce/product/__init__.py
deleted file mode 100644
index e69de29..0000000
diff --git a/shopyo/modules/box__ecommerce/product/global.py b/shopyo/modules/box__ecommerce/product/global.py
deleted file mode 100644
index 0da7b67..0000000
--- a/shopyo/modules/box__ecommerce/product/global.py
+++ /dev/null
@@ -1,10 +0,0 @@
-from modules.box__ecommerce.product.models import Product
-
-
-def get_products():
- return Product.query.all()
-
-
-available_everywhere = {
- "get_products": get_products,
-}
diff --git a/shopyo/modules/box__ecommerce/product/info.json b/shopyo/modules/box__ecommerce/product/info.json
deleted file mode 100644
index c6ffaaf..0000000
--- a/shopyo/modules/box__ecommerce/product/info.json
+++ /dev/null
@@ -1,8 +0,0 @@
-{
- "display_string": "Products",
- "module_name":"product",
- "type": "hidden",
- "fa-icon": "",
- "url_prefix": "/product",
- "dashboard": "/dashboard"
-}
\ No newline at end of file
diff --git a/shopyo/modules/box__ecommerce/product/models.py b/shopyo/modules/box__ecommerce/product/models.py
deleted file mode 100644
index e4e51ed..0000000
--- a/shopyo/modules/box__ecommerce/product/models.py
+++ /dev/null
@@ -1,94 +0,0 @@
-from shopyoapi.init import db
-from shopyoapi.models import PkModel
-from flask import url_for
-
-# from modules.box__ecommerce.pos.models import Transaction
-
-transaction_helpers = db.Table(
- "transaction_helpers",
- db.Column("product_barcode", db.Integer, db.ForeignKey("product.id")),
- db.Column("transaction_id", db.Integer, db.ForeignKey("transactions.id")),
-)
-
-
-class Product(PkModel):
- __tablename__ = "product"
-
- barcode = db.Column(db.String(100))
- price = db.Column(db.Float)
- name = db.Column(db.String(100))
- description = db.Column(db.String(300))
- date = db.Column(db.String(100))
- in_stock = db.Column(db.Integer)
- discontinued = db.Column(db.Boolean)
- selling_price = db.Column(db.Float)
-
- is_onsale = db.Column(db.Boolean, default=False)
- is_featured = db.Column(db.Boolean, default=False)
- subcategory_name = db.relationship("SubCategory", backref=db.backref("subcategory", uselist=False))
- transactions = db.relationship(
- "Transaction",
- secondary=transaction_helpers,
- backref="products",
- cascade="all, delete",
- )
- resources = db.relationship(
- "Resource", backref="resources", lazy=True, cascade="all, delete"
- )
- colors = db.relationship('Color', backref='color_product', lazy=True, cascade="all, delete, delete-orphan")
- sizes = db.relationship('Size', backref='size_product', lazy=True, cascade="all, delete, delete-orphan")
-
- #
- subcategory_id = db.Column(db.Integer, db.ForeignKey('subcategories.id'),
- nullable=False)
-
-
- def get_color_string(self):
- return '\n'.join([c.name for c in self.colors])
-
-
- def get_size_string(self):
- return '\n'.join([s.name for s in self.sizes])
-
- def get_one_image_url(self):
- if len(self.resources) == 0:
- return url_for('static', filename='default/default_product.jpg')
- else:
- resource = self.resources[0]
- return url_for('static', filename='uploads/products/{}'.format(resource.filename))
-
- def get_page_url(self):
- return url_for('shop.product', product_barcode=self.barcode)
-
- def add(self):
- db.session.add(self)
-
- def insert(self):
- db.session.add(self)
- db.session.commit()
-
- def update(self):
- db.session.commit()
-
- def delete(self):
- db.session.delete(self)
- db.session.commit()
-
-class Color(PkModel):
-
- __tablename__ = "color"
-
-
- name = db.Column(db.String(100))
-
- product_id = db.Column(db.Integer, db.ForeignKey('product.id'))
-
-
-class Size(PkModel):
-
- __tablename__ = "size"
-
-
- name = db.Column(db.String(100))
-
- product_id = db.Column(db.Integer, db.ForeignKey('product.id'))
\ No newline at end of file
diff --git a/shopyo/modules/box__ecommerce/product/templates/product/add.html b/shopyo/modules/box__ecommerce/product/templates/product/add.html
deleted file mode 100644
index 1beca5e..0000000
--- a/shopyo/modules/box__ecommerce/product/templates/product/add.html
+++ /dev/null
@@ -1,136 +0,0 @@
-{% extends "base/module_base.html" %}
-{% set active_page ='products' %}
-{% block pagehead %}
-add product
-{% endblock %}
-{% block sidebar %}
-{%include 'product/blocks/sidebar.html'%}
-{%endblock%}
-{% block content %}
-
-
-
-
- {% if has_product == 'True' %}
-
- Product alreadly Listed
-
- {% endif %}
-
Add product for
- ---
- ---
-
-
-
-
-
-{% endblock %}
\ No newline at end of file
diff --git a/shopyo/modules/box__ecommerce/product/templates/product/blocks/sidebar.html b/shopyo/modules/box__ecommerce/product/templates/product/blocks/sidebar.html
deleted file mode 100644
index d5e354e..0000000
--- a/shopyo/modules/box__ecommerce/product/templates/product/blocks/sidebar.html
+++ /dev/null
@@ -1,35 +0,0 @@
-{{
-sidebar_item(
-'Category Home',
-icon='fa fa-store',
-url=url_for('category.dashboard')
-)
-}}
-
-
-
-{{
-sidebar_item(
-'Products Home',
-icon='fa fa-shopping-bag',
-url=url_for('product.list', subcategory_id=subcategory.id)
-)
-}}
-
-
-{{
-sidebar_item(
-'Add Product',
-icon='fas fa-plus-circle',
-url=url_for('product.add_dashboard', subcategory_id=subcategory.id)
-)
-}}
-
-
-{{
-sidebar_item(
-'Search',
-icon='fas fa-search',
-url=url_for('product.lookup', subcategory_id=subcategory.id)
-)
-}}
diff --git a/shopyo/modules/box__ecommerce/product/templates/product/edit.html b/shopyo/modules/box__ecommerce/product/templates/product/edit.html
deleted file mode 100644
index 00d12eb..0000000
--- a/shopyo/modules/box__ecommerce/product/templates/product/edit.html
+++ /dev/null
@@ -1,184 +0,0 @@
-{% extends "base/module_base.html" %}
-{% set active_page ='products' %}
-{% block pagehead %}
-edit
-
-{% endblock %}
-{% block sidebar %}
-{%include 'product/blocks/sidebar.html'%}
-{%endblock%}
-{% block content %}
-
-
-
-
Edit product for
- ---
- ---
-
-
-
- barcode
-
- name
-
- description
-
- colors
-
- sizes
-
-
- date
-
- price
-
- selling price
-
- in stock
-
- discontinued
-
-
-
- Yes
-
-
-
-
- No
-
-
-
- {%if len(product.resources) != 0%}
-
-
- {%for resource in product.resources%}
- {%if resource.type == 'image'%}
-
- {%endif%}
- {%endfor%}
-
-
-
- Previous
-
-
-
- Next
-
-
-
- {%endif%}
-
- add images
-
-
-
-
-
-
-
-
-
-
-{% endblock %}
\ No newline at end of file
diff --git a/shopyo/modules/box__ecommerce/product/templates/product/list.html b/shopyo/modules/box__ecommerce/product/templates/product/list.html
deleted file mode 100644
index 53d9c2d..0000000
--- a/shopyo/modules/box__ecommerce/product/templates/product/list.html
+++ /dev/null
@@ -1,59 +0,0 @@
-{% extends "base/module_base.html" %}
-{% set active_page ='products' %}
-{% block pagehead %}
-SpareParts
-{% endblock %}
-{% block sidebar %}
-{%include 'product/blocks/sidebar.html'%}
-{%endblock%}
-{% block content %}
-
-
-
-
products for
- ---
- ---
-
-
-
-
-
- barcode
- name
- description
- date
- price
- selling price
- discontinued
- in stock
-
-
-
-
- {%if subcategory.products%}
- {%for p in subcategory.products%}
-
- {{p.barcode}}
- {{p.name}}
- {{p.description}}
- {{p.date}}
- {{p.price}}
- {{p.selling_price}}
- {{p.discontinued}}
- {{p.in_stock}}
-
-
-
-
-
-
-
-
-
- {%endfor%}
- {%endif%}
-
-
-
-
-{% endblock %}
\ No newline at end of file
diff --git a/shopyo/modules/box__ecommerce/product/templates/product/lookup.html b/shopyo/modules/box__ecommerce/product/templates/product/lookup.html
deleted file mode 100644
index 75fedc4..0000000
--- a/shopyo/modules/box__ecommerce/product/templates/product/lookup.html
+++ /dev/null
@@ -1,127 +0,0 @@
-{% extends "base/module_base.html" %}
-{% set active_page ="products" %}
-{% block pagehead %}
-lookup
-{% endblock %}
-{% block sidebar %}
-{%include 'product/blocks/sidebar.html'%}
-{%endblock%}
-{% block content %}
-
-
-
-
-
-
-
-
-
- Global Search
-
-
-
- {%for field in fields%}
-
-
- {{field}}
-
- {%endfor%}
-
-
-
-
-
-
-
- barcode
- name
- description
- date
- price
- selling price
- in stock
- discontinued
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-{% endblock %}
\ No newline at end of file
diff --git a/shopyo/modules/box__ecommerce/product/templates/product/nav.html b/shopyo/modules/box__ecommerce/product/templates/product/nav.html
deleted file mode 100644
index 86399d7..0000000
--- a/shopyo/modules/box__ecommerce/product/templates/product/nav.html
+++ /dev/null
@@ -1,31 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/shopyo/modules/box__ecommerce/product/view.py b/shopyo/modules/box__ecommerce/product/view.py
deleted file mode 100644
index df41c40..0000000
--- a/shopyo/modules/box__ecommerce/product/view.py
+++ /dev/null
@@ -1,354 +0,0 @@
-import json
-import os
-import uuid
-
-from flask import Blueprint
-from flask import current_app
-
-# from flask import flash
-from flask import jsonify
-from flask import redirect
-from flask import render_template
-from flask import request
-from flask import url_for
-
-import flask_uploads
-from flask_login import login_required
-from sqlalchemy import exists
-from werkzeug.utils import secure_filename
-
-from shopyoapi.file import delete_file
-from shopyoapi.file import unique_filename
-from shopyoapi.init import db
-from shopyoapi.init import ma
-from shopyoapi.init import productphotos
-
-from modules.box__ecommerce.category.models import SubCategory
-from modules.box__ecommerce.product.models import Product
-from modules.box__ecommerce.product.models import Size
-from modules.box__ecommerce.product.models import Color
-from modules.resource.models import Resource
-
-dirpath = os.path.dirname(os.path.abspath(__file__))
-module_info = {}
-
-
-with open(dirpath + "/info.json") as f:
- module_info = json.load(f)
-
-globals()["{}_blueprint".format(module_info["module_name"])] = Blueprint(
- "{}".format(module_info["module_name"]),
- __name__,
- template_folder="templates",
- url_prefix=module_info["url_prefix"],
-)
-
-
-class Productchema(ma.Schema):
- class Meta:
- # Fields to expose
- fields = (
- "barcode",
- "name",
- "description",
- "price",
- "selling_price",
- "in_stock",
- "discontinued",
- )
-
-
-product_schema = Productchema()
-product_schema = Productchema(many=True)
-
-module_blueprint = globals()["{}_blueprint".format(module_info["module_name"])]
-
-module_name = module_info["module_name"]
-
-
-@module_blueprint.route("/sub//dashboard")
-@login_required
-def list(subcategory_id):
- context = {}
- subcategory = SubCategory.query.get(subcategory_id)
-
- context.update({"subcategory": subcategory})
- return render_template("product/list.html", **context)
-
-
-@module_blueprint.route(
- "/sub//add/dashboard", methods=["GET", "POST"]
-)
-@login_required
-def add_dashboard(subcategory_id):
- context = {}
-
- has_product = False
- subcategory = SubCategory.query.get(subcategory_id)
- context["subcategory"] = subcategory
- context["has_product"] = str(has_product)
- context["barcodestr"] = uuid.uuid1()
- return render_template("product/add.html", **context)
-
-
-@module_blueprint.route("/sub//add", methods=["GET", "POST"])
-@login_required
-def add(subcategory_id):
-
- if request.method == "POST":
-
- subcategory = SubCategory.query.get(subcategory_id)
- barcode = request.form["barcode"]
- name = request.form["name"]
- description = request.form["description"]
- date = request.form["date"]
- price = request.form["price"]
- selling_price = request.form["selling_price"]
- in_stock = request.form["in_stock"]
- colors = request.form["colors"]
- sizes = request.form["sizes"]
-
- if request.form["discontinued"] == "True":
- discontinued = True
- else:
- discontinued = False
-
- # category = Category.query.filter(
- # Category.name == category_name).first()
- # print(category, category_name, category.name)
- has_product = db.session.query(
- exists().where(Product.barcode == barcode)
- ).scalar()
-
- if has_product is False:
- p = Product(
- barcode=barcode,
- name=name,
- in_stock=in_stock,
- discontinued=discontinued,
- )
- if description:
- p.description = description.strip()
- if date:
- p.date = date.strip()
- if price:
- p.price = price.strip()
- elif not price.strip():
- p.price = 0
- if selling_price:
- p.selling_price = selling_price.strip()
-
- sizes = sizes.strip().strip('\n')
- sizes = [s.strip('\r') for s in sizes.split('\n') if s.strip()]
- sizes = [Size(name=s) for s in sizes]
- p.sizes = sizes
-
- colors = colors.strip().strip('\n')
- colors = [c.strip('\r') for c in colors.split('\n') if c.strip()]
- colors = [Color(name=c) for c in colors]
- p.colors = colors
-
- # if 'photos[]' not in request.files:
- # flash(notify_warning('no file part'))
- try:
- if "photos[]" in request.files:
- files = request.files.getlist("photos[]")
- for file in files:
- filename = unique_filename(
- secure_filename(file.filename)
- )
- file.filename = filename
- productphotos.save(file)
- p.resources.append(
- Resource(
- type="image",
- filename=filename,
- category="product_image",
- )
- )
- except flask_uploads.UploadNotAllowed as e:
- pass
-
- subcategory.products.append(p)
- subcategory.update()
- return redirect(
- url_for("product.add_dashboard", subcategory_id=subcategory_id)
- )
-
-
-@module_blueprint.route("//delete", methods=["GET", "POST"])
-@login_required
-def delete(barcode):
- product = Product.query.filter(Product.barcode == barcode).first()
- subcategory = product.subcategory
- for resource in product.resources:
- filename = resource.filename
- delete_file(
- os.path.join(
- current_app.config["UPLOADED_PRODUCTPHOTOS_DEST"], filename
- )
- )
- product.delete()
- db.session.commit()
- return redirect(url_for("product.list", subcategory_id=subcategory.id))
-
-
-@module_blueprint.route("//edit/dashboard", methods=["GET", "POST"])
-@login_required
-def edit_dashboard(barcode):
- context = {}
-
- product = Product.query.filter(Product.barcode == barcode).first()
-
- context.update(
- {"len": len, "product": product, "subcategory": product.subcategory}
- )
- return render_template("product/edit.html", **context)
-
-
-@module_blueprint.route(
- "/sub//update", methods=["GET", "POST"]
-)
-@login_required
-def update(subcategory_id):
- # this block is only entered when the form is submitted
- if request.method == "POST":
- subcategory = SubCategory.query.get(subcategory_id)
- barcode = request.form["barcode"]
- old_barcode = request.form["old_barcode"]
- # category = request.form["category"]
-
- name = request.form["name"]
- description = request.form["description"]
-
- date = request.form["date"]
- price = request.form["price"]
- product_id = request.form['product_id']
- if not price.strip():
- price = 0
- selling_price = request.form["selling_price"]
- in_stock = request.form["in_stock"]
- colors = request.form["colors"]
- sizes = request.form["sizes"]
-
- if request.form["discontinued"] == "True":
- discontinued = True
- else:
- discontinued = False
-
- p = Product.query.get(product_id)
- p.barcode = barcode
- p.name = name
- p.description = description
- p.date = date
- p.price = price
- p.selling_price = selling_price
- p.in_stock = in_stock
- p.discontinued = discontinued
-
- with db.session.no_autoflush:
- p.sizes.clear()
- sizes = sizes.strip().strip('\n')
- sizes = [s.strip('\r') for s in sizes.split('\n') if s.strip()]
- sizes = [Size(name=s, product_id=p.id) for s in sizes]
- p.sizes.extend(sizes)
- with db.session.no_autoflush:
- p.colors.clear()
- colors = colors.strip().strip('\n')
- colors = [c.strip('\r') for c in colors.split('\n') if c.strip()]
- colors = [Color(name=c, product_id=p.id) for c in colors]
- p.colors.extend(colors)
- # p.category = category
- try:
- if "photos[]" in request.files:
-
- files = request.files.getlist("photos[]")
- for file in files:
- filename = unique_filename(secure_filename(file.filename))
- file.filename = filename
- productphotos.save(file)
- p.resources.append(
- Resource(
- type="image",
- filename=filename,
- category="product_image",
- )
- )
- except flask_uploads.UploadNotAllowed as e:
- pass
- db.session.commit()
- return redirect(url_for("product.list", subcategory_id=subcategory.id))
-
-
-@module_blueprint.route("sub//lookup")
-@login_required
-def lookup(subcategory_id):
- context = {}
-
- subcategory = SubCategory.query.get(subcategory_id)
- context["subcategory"] = subcategory
- context["fields"] = [
- key.replace("_", " ")
- for key in Product.__table__.columns.keys()
- if key not in ["category_name"]
- ]
-
- return render_template("product/lookup.html", **context)
-
-
-# api
-@module_blueprint.route(
- "sub//search/", methods=["GET"]
-)
-@login_required
-def search(subcategory_id, user_input):
- if request.method == "GET":
- subcategory = SubCategory.query.get(subcategory_id)
- print(request.args["field"], request.args["global_search"])
- field = request.args["field"]
- global_search = request.args["global_search"]
- if global_search == "True":
- subcategory_name = subcategory.name
- all_p = Product.query.filter(
- (getattr(Product, field).like("%" + user_input + "%"))
- & (Product.subcategory_name == subcategory_name)
- ).all()
- result = product_schema.dump(all_p)
- else:
- all_p = Product.query.filter(
- getattr(Product, field).like("%" + user_input + "%")
- ).all()
- result = product_schema.dump(all_p)
- return jsonify(result)
-
-
-# api
-@module_blueprint.route("/check/", methods=["GET"])
-@login_required
-def check(barcode):
- has_product = db.session.query(
- exists().where(Product.barcode == barcode)
- ).scalar()
- return jsonify({"exists": has_product})
-
-
-#
-# files
-#
-
-
-@module_blueprint.route(
- "//product//delete", methods=["GET"]
-)
-def image_delete(filename, barcode):
- resource = Resource.query.filter(Resource.filename == filename).first()
- product = Product.query.filter(Product.barcode == barcode).first()
- product.resources.remove(resource)
- product.update()
- delete_file(
- os.path.join(
- current_app.config["UPLOADED_PRODUCTPHOTOS_DEST"], filename
- )
- )
-
- return redirect(url_for("product.edit_dashboard", barcode=barcode))
diff --git a/shopyo/modules/box__ecommerce/shop/forms.py b/shopyo/modules/box__ecommerce/shop/forms.py
deleted file mode 100644
index d5e1d88..0000000
--- a/shopyo/modules/box__ecommerce/shop/forms.py
+++ /dev/null
@@ -1,140 +0,0 @@
-from flask_wtf import FlaskForm
-from wtforms import PasswordField
-from wtforms import StringField
-from wtforms import TextAreaField
-from wtforms.fields import BooleanField
-from wtforms.fields import SelectField
-from wtforms.fields.html5 import EmailField
-
-# from wtforms.fields.html5 import IntegerField
-# from wtforms.validators import DataRequired
-# from wtforms.validators import Email
-from wtforms.validators import Optional
-
-from shopyoapi.validators import require_if_apply_coupon
-from shopyoapi.validators import require_if_create_account
-from shopyoapi.validators import require_if_default_address
-from shopyoapi.validators import require_if_diff_address
-
-
-class CheckoutForm(FlaskForm):
-
- diffAddress = BooleanField(
- "Ship to a different address than the default one?",
- render_kw={
- "class": "form-check-input",
- "value": "diffAddress",
- "id": "diffAddress",
- },
- )
- applyCoupon = BooleanField(
- "Apply Coupon",
- render_kw={
- "class": "form-check-input",
- "value": "applyCoupon",
- "id": "applyCoupon",
- },
- )
- createAccount = BooleanField(
- "Create Account?",
- render_kw={
- "class": "form-check-input",
- "value": "createAccount",
- "id": "createAccount",
- },
- )
-
- default_first_name = StringField(
- "First Name",
- [require_if_default_address],
- render_kw={"class": "form-control", "autocomplete": "off"},
- )
- default_last_name = StringField(
- "Last Name",
- [require_if_default_address],
- render_kw={"class": "form-control", "autocomplete": "off"},
- )
- default_country = SelectField(
- "Country",
- render_kw={"class": "form-control", "autocomplete": "off"},
- )
- default_street = StringField(
- "Street",
- [require_if_default_address],
- render_kw={"class": "form-control", "autocomplete": "off"},
- )
- default_town_city = StringField(
- "Town / City",
- [require_if_default_address],
- render_kw={"class": "form-control", "autocomplete": "off"},
- )
- default_phone = StringField(
- "Phone",
- [require_if_default_address],
- render_kw={"class": "form-control", "autocomplete": "off"},
- )
- default_email = EmailField(
- "Email",
- [require_if_default_address],
- render_kw={"class": "form-control", "autocomplete": "off"},
- )
- default_order_notes = TextAreaField(
- "Order Notes (optional)",
- [Optional()],
- render_kw={"rows": 10, "class": "form-control", "autocomplete": "off"},
- )
-
- diff_first_name = StringField(
- "First Name",
- [require_if_diff_address],
- render_kw={"class": "form-control", "autocomplete": "off"},
- )
- diff_last_name = StringField(
- "Last Name",
- [require_if_diff_address],
- render_kw={"class": "form-control", "autocomplete": "off"},
- )
- diff_country = SelectField(
- "Country",
- render_kw={
- "class": "form-control",
- "autocomplete": "off",
- },
- )
- diff_street = StringField(
- "Street",
- [require_if_diff_address],
- render_kw={"class": "form-control", "autocomplete": "off"},
- )
- diff_town_city = StringField(
- "Town / City",
- [require_if_diff_address],
- render_kw={"class": "form-control", "autocomplete": "off"},
- )
- diff_phone = StringField(
- "Phone",
- [require_if_diff_address],
- render_kw={"class": "form-control", "autocomplete": "off"},
- )
- diff_email = EmailField(
- "Email",
- [require_if_diff_address],
- render_kw={"class": "form-control", "autocomplete": "off"},
- )
- diff_order_notes = TextAreaField(
- "Order Notes (optional)",
- [Optional()],
- render_kw={"rows": 10, "class": "form-control", "autocomplete": "off"},
- )
-
- coupon = StringField(
- "Coupon",
- [require_if_apply_coupon],
- render_kw={"class": "form-control", "autocomplete": "off"},
- )
-
- password = PasswordField(
- "Coupon",
- [require_if_create_account],
- render_kw={"class": "form-control", "autocomplete": "off"},
- )
diff --git a/shopyo/modules/box__ecommerce/shop/global.py b/shopyo/modules/box__ecommerce/shop/global.py
deleted file mode 100644
index 5d95e9d..0000000
--- a/shopyo/modules/box__ecommerce/shop/global.py
+++ /dev/null
@@ -1,21 +0,0 @@
-from modules.box__ecommerce.shop.helpers import get_currency_symbol
-from modules.box__ecommerce.shop.helpers import get_cart_data
-from modules.box__ecommerce.shop.helpers import get_min_max_subcateg
-
-from flask import session
-from shopyoapi.session import Cart
-
-def get_wishlist_data():
- if 'wishlist' not in session:
- session['wishlist'] = []
- return session['wishlist']
-
- return session['wishlist']
-
-available_everywhere = {
- "get_currency_symbol": get_currency_symbol,
- 'get_min_max_subcateg': get_min_max_subcateg,
- 'get_wishlist_data': get_wishlist_data,
- 'get_cart_data': get_cart_data,
- 'Cart': Cart
-}
diff --git a/shopyo/modules/box__ecommerce/shop/helpers.py b/shopyo/modules/box__ecommerce/shop/helpers.py
deleted file mode 100644
index ec94970..0000000
--- a/shopyo/modules/box__ecommerce/shop/helpers.py
+++ /dev/null
@@ -1,47 +0,0 @@
-import json
-import os
-from flask import session
-from modules.box__ecommerce.product.models import Product
-from modules.box__ecommerce.category.models import Category
-from modules.box__ecommerce.category.models import SubCategory
-from modules.box__default.settings.helpers import get_setting
-from shopyoapi.session import Cart
-
-dirpath = os.path.dirname(os.path.abspath(__file__))
-box_path = os.path.dirname(dirpath)
-
-
-def get_currency_symbol():
- curr_code = get_setting("CURRENCY")
- with open(
- os.path.join(
- box_path,
- "shopman",
- "data",
- "currency.json",
- )
- ) as f:
- currencies = json.load(f)
- for curr in currencies:
- if curr["cc"] == curr_code:
- return curr["symbol"]
-
-
-def get_cart_data():
- cart_data = Cart.data()
- return {
- 'cart_items': cart_data['num_items'],
- 'cart_total_price': cart_data['total_price'],
- 'cart_data': cart_data['items']
- }
-
-
-def get_min_max_subcateg(subcategory_name):
- subcateg = SubCategory.query.filter(SubCategory.name == subcategory_name).first()
- if len(subcateg.products) > 0:
- min_price = min((p.selling_price for p in subcateg.products))
- max_price = max((p.selling_price for p in subcateg.products))
- else:
- min_price = 0
- max_price = 2000
- return [min_price, max_price]
\ No newline at end of file
diff --git a/shopyo/modules/box__ecommerce/shop/info.json b/shopyo/modules/box__ecommerce/shop/info.json
deleted file mode 100644
index fbbfdb7..0000000
--- a/shopyo/modules/box__ecommerce/shop/info.json
+++ /dev/null
@@ -1,12 +0,0 @@
-{
- "display_string": "Shop",
- "module_name":"shop",
- "type": "hide",
- "fa-icon": "fa fa-store",
- "url_prefix": "/shop",
- "author": {
- "name":"",
- "website":"",
- "mail":""
- }
-}
\ No newline at end of file
diff --git a/shopyo/modules/box__ecommerce/shop/models.py b/shopyo/modules/box__ecommerce/shop/models.py
deleted file mode 100644
index 7555a7a..0000000
--- a/shopyo/modules/box__ecommerce/shop/models.py
+++ /dev/null
@@ -1,144 +0,0 @@
-from datetime import datetime
-
-from shopyoapi.init import db
-from shopyoapi.models import PkModel
-from modules.box__ecommerce.product.models import Product
-
-class Order(db.Model):
- __tablename__ = "orders"
-
- id = db.Column(db.Integer, primary_key=True)
- time = db.Column(db.DateTime, default=datetime.now())
-
- logged_in_customer_email = db.Column(db.String(120), default="")
-
- coupon = db.relationship(
- "Coupon", backref="coupon_order", lazy=True, uselist=False
- )
-
- order_items = db.relationship(
- "OrderItem",
- backref="item_order",
- lazy=True,
- cascade="all, delete, delete-orphan",
- )
- billing_detail = db.relationship(
- "BillingDetail",
- uselist=False,
- backref="billing_detail_order",
- cascade="all, delete, delete-orphan",
- )
-
- status = db.Column(
- db.String(120), default="pending"
- ) # pending, confirmed, shipped, cancelled, refunded
-
- payment_option_name = db.Column(db.String(120))
- payment_option_text = db.Column(db.String(120))
-
- shipment_option = db.relationship(
- "DeliveryOption",
- backref="shipment_option_order",
- lazy=True,
- uselist=False,
- )
-
- payment_option = db.relationship(
- "PaymentOption",
- backref="payment_option_order",
- lazy=True,
- uselist=False,
- )
-
- def add(self):
- db.session.add(self)
-
- def insert(self):
- db.session.add(self)
- db.session.commit()
-
- def update(self):
- db.session.commit()
-
- def delete(self):
- db.session.delete(self)
- db.session.commit()
-
- def get_std_formatted_time(self):
- return self.time.strftime("%b %d %Y, %H:%M")
-
- def get_ref(self):
- return '{}#{}'.format(int(self.id)*19, self.get_std_formatted_time())
-
- def get_total_amount(self):
- prices = []
- for item in self.order_items:
- product = item.get_product()
- price = product.selling_price * item.quantity
- prices.append(price)
- total_prices = sum(prices)
- return total_prices
-
-
-class OrderItem(PkModel):
- __tablename__ = "order_items"
-
-
- time = db.Column(db.DateTime, default=datetime.now())
- quantity = db.Column(db.Integer)
- color = db.Column(db.String(100))
- size = db.Column(db.String(100))
- status = db.Column(
- db.String(120), default="pending"
- )
- barcode = db.Column(db.String(100), nullable=False)
- order_id = db.Column(db.Integer, db.ForeignKey('orders.id'),
- nullable=False)
-
- def add(self):
- db.session.add(self)
-
- def insert(self):
- db.session.add(self)
- db.session.commit()
-
- def update(self):
- db.session.commit()
-
- def delete(self):
- db.session.delete(self)
- db.session.commit()
-
- def get_product(self):
- return Product.query.filter_by(barcode=self.barcode).first()
-
-
-class BillingDetail(db.Model):
- __tablename__ = "billing_details"
-
- id = db.Column(db.Integer, primary_key=True)
-
- first_name = db.Column(db.String(100))
- last_name = db.Column(db.String(100))
- country = db.Column(db.String(100))
- street = db.Column(db.String(100))
- town_city = db.Column(db.String(100))
- phone = db.Column(db.String(100))
- email = db.Column(db.String(100))
- order_notes = db.Column(db.String(100))
-
- order_id = db.Column(db.Integer, db.ForeignKey("orders.id"))
-
- def add(self):
- db.session.add(self)
-
- def insert(self):
- db.session.add(self)
- db.session.commit()
-
- def update(self):
- db.session.commit()
-
- def delete(self):
- db.session.delete(self)
- db.session.commit()
diff --git a/shopyo/modules/box__ecommerce/shop/templates/shop/base.html b/shopyo/modules/box__ecommerce/shop/templates/shop/base.html
deleted file mode 100644
index 834922f..0000000
--- a/shopyo/modules/box__ecommerce/shop/templates/shop/base.html
+++ /dev/null
@@ -1,20 +0,0 @@
-{%set active_page = 'shop.html'%}
-
-
-
-
-
- {% include 'shop/blocks/common_styles.html'%}
- {% include shop/sections/resources.html'%}
- {% block pagehead %}{% endblock %}
- {% include get_active_front_theme()+'/sections/drawer_head.html'%}
-
-
-
- {% include 'base/blocks/flashed_messages.html'%}
- {% include get_active_front_theme()+'/sections/nav.html'%}
- {% block content %}{% endblock %}
- {% include get_active_front_theme()+'/sections/footer.html'%}
-
-
-
\ No newline at end of file
diff --git a/shopyo/modules/box__ecommerce/shop/templates/shop/blocks/accordion.html b/shopyo/modules/box__ecommerce/shop/templates/shop/blocks/accordion.html
deleted file mode 100644
index 5685ae9..0000000
--- a/shopyo/modules/box__ecommerce/shop/templates/shop/blocks/accordion.html
+++ /dev/null
@@ -1,35 +0,0 @@
-
- {%for category in get_categories()%}
-
- {%endfor%}
-
-
\ No newline at end of file
diff --git a/shopyo/modules/box__ecommerce/shop/templates/shop/blocks/common_styles.html b/shopyo/modules/box__ecommerce/shop/templates/shop/blocks/common_styles.html
deleted file mode 100644
index 78382c8..0000000
--- a/shopyo/modules/box__ecommerce/shop/templates/shop/blocks/common_styles.html
+++ /dev/null
@@ -1,39 +0,0 @@
-
\ No newline at end of file
diff --git a/shopyo/modules/box__ecommerce/shop/templates/shop/blocks/sidebar.html b/shopyo/modules/box__ecommerce/shop/templates/shop/blocks/sidebar.html
deleted file mode 100644
index e69de29..0000000
diff --git a/shopyo/modules/box__ecommerce/shop/templates/shop/category.html b/shopyo/modules/box__ecommerce/shop/templates/shop/category.html
deleted file mode 100644
index 52b3a35..0000000
--- a/shopyo/modules/box__ecommerce/shop/templates/shop/category.html
+++ /dev/null
@@ -1,101 +0,0 @@
-{%set active_page = 'shop.html'%}
-
-
-
-
-
-
- {% include get_active_front_theme()+'/sections/resources.html'%}
-
- {% include 'shop/blocks/common_styles.html'%}
- {% include get_active_front_theme()+'/sections/drawer_head.html'%}
-
-
-
- {% include get_active_front_theme()+'/sections/nav.html'%}
-
-
-
-
- Home
- Shop
- {{ current_category.name }}
-
-
-
-
-
-
- {%include 'shop/blocks/accordion.html'%}
-
-
-
- {%for subcategory in current_category.subcategories%}
-
-
- {%endfor%}
-
-
-
-
- {% include get_active_front_theme()+'/sections/footer.html'%}
-
-
-
\ No newline at end of file
diff --git a/shopyo/modules/box__ecommerce/shop/templates/shop/checkout.html b/shopyo/modules/box__ecommerce/shop/templates/shop/checkout.html
deleted file mode 100644
index 8d7a8cc..0000000
--- a/shopyo/modules/box__ecommerce/shop/templates/shop/checkout.html
+++ /dev/null
@@ -1,330 +0,0 @@
-{%set active_page = 'shop.html'%}
-{% extends "shop/base.html" %}
-{% block pagehead %}
-
-{% endblock %}
-{% block content %}
-
-
-
-
- Home
- Shop
- Cart
- Checkout
-
-
-
-
-
- {{ form.hidden_tag() }}
-
-
-
-
- {%if not current_user.is_authenticated%}
-
- {%endif%}
-
-
-
- {{ form.default_first_name.label }}
- {{ form.default_first_name(value=checkout_data['default_first_name']) }}
-
-
- {{ form.default_last_name.label }}
- {{ form.default_last_name(value=checkout_data['default_last_name']) }}
-
-
-
-
- {{ form.default_country.label }}
- {{ form.default_country() }}
-
-
-
-
- {{ form.default_street.label }}
- {{ form.default_street(value=checkout_data['default_street']) }}
-
-
-
-
- {{ form.default_town_city.label }}
- {{ form.default_town_city(value=checkout_data['default_town_city']) }}
-
-
-
-
- {{ form.default_phone.label }}
- {{ form.default_phone(value=checkout_data['default_phone']) }}
-
-
- {{ form.default_email.label }}
- {{ form.default_email(value=checkout_data['default_email']) }}
-
-
-
-
- {{ form.default_order_notes.label }}
- {{ form.default_order_notes(value=checkout_data['default_order_notes']) }}
-
-
-
-
-
-
- {{ form.diffAddress() }}
- {{ form.diffAddress.label }}
-
-
-
-
-
-
-
- {{ form.diff_first_name.label }}
- {{ form.diff_first_name(value=checkout_data['diff_first_name']) }}
-
-
- {{ form.diff_last_name.label }}
- {{ form.diff_last_name(value=checkout_data['diff_last_name']) }}
-
-
-
-
- {{ form.diff_country.label }}
- {{ form.diff_country() }}
-
-
-
-
- {{ form.diff_street.label }}
- {{ form.diff_street(value=checkout_data['diff_street']) }}
-
-
-
-
- {{ form.diff_town_city.label }}
- {{ form.diff_town_city(value=checkout_data['diff_town']) }}
-
-
-
-
- {{ form.diff_phone.label }}
- {{ form.diff_phone(value=checkout_data['diff_phone']) }}
-
-
- {{ form.diff_email.label }}
- {{ form.diff_email(value=checkout_data['diff_email']) }}
-
-
-
-
- {{ form.diff_order_notes.label }}
- {{ form.diff_order_notes(value=checkout_data['diff_order_notes']) }}
-
-
-
-
-
-
- {{ form.applyCoupon() }}
-
- {{ form.applyCoupon.label }}
-
-
-
-
-
-
-
- {{ form.coupon.label }}
- {{ form.coupon(value=checkout_data['coupon']) }}
-
-
-
-
-
-
- {{ form.createAccount() }}
- {{ form.createAccount.label }}
-
-
-
-
-
-
- {{ form.password.label }}
- {{ form.password() }}
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- Product
- Size
- Color
- Quantity
- Price
- Subtotal
-
-
- {% set count = namespace(value=0) %}
- {%for barcode in Cart.data()['items']%}
- {%set product = get_product(barcode) %}
- {%set items = Cart.data()['items'][barcode] %}
-
- {% for item in items %}
- {% set count.value = count.value + 1 %}
-
-
- {{ product.name }}
- {{ item['size'] }}
- {{ item['color'] }}
- {{ item['quantity'] }}
- {{product.selling_price}}
- {{product.selling_price * item['quantity'] }}
-
- {% endfor %}
- {%endfor%}
-
-
-
- Grand Subtotal: {{get_currency_symbol()}}
-
-
-
-
- Grand total: {{get_currency_symbol()}}
-
-
- Place order
-
-
-
-
-
-
-
-
-
-
- {% endblock %}
\ No newline at end of file
diff --git a/shopyo/modules/box__ecommerce/shop/templates/shop/emails/order_info.html b/shopyo/modules/box__ecommerce/shop/templates/shop/emails/order_info.html
deleted file mode 100644
index 3e36b0e..0000000
--- a/shopyo/modules/box__ecommerce/shop/templates/shop/emails/order_info.html
+++ /dev/null
@@ -1,47 +0,0 @@
-Thank you for your order. Here is a summary.
-
-Your order ref is {{ order.get_ref() }}.
-Your order will not be processed until funds get cleared.
-
-
-{% set total_prices = [] %}
-Items
-{% for item in order.order_items %}
-#{{ loop.index }}
-Name: {{ item.get_product().name }}
-Description: {{ item.get_product().description }}
-Quantity: {{ item.quantity }}
-Color: {{ item.color }}
-Size: {{ item.size }}
-Unit Price: Rs {{ item.get_product().price }}
-{% set item_total = int(item.get_product().selling_price) * int(item.quantity) %}
-Total: Rs {{ item_total }}
-
-{{ total_prices.append(item_total) or ''}}
-{% endfor %}
-
-{% set sum_products = sum(total_prices) %}
-
Total for products: Rs {{ sum_products }}
-
-Payment Option
-Name: {{ order.payment_option.name }}
-Info: {{ order.payment_option.text }}
-
-Shipping Option:
-Option: {{ order.shipping_option.option }}
-
Price: Rs {{ order.shipping_option.price }}
-
-
Grand Total: Rs {{ int(sum_products) + int(order.shipping_option.price) }}
-
-Billing Details
-First Name: {{ order.billing_detail.first_name }}
-Last Name: {{ order.billing_detail.last_name }}
-Street: {{ order.billing_detail.street }}
-Town/City: {{ order.billing_detail.town_city }}
-Phone: {{ order.billing_detail.phone }}
-Email: {{ order.billing_detail.email }}
-Order Notes:
-{{ order.billing_detail.order_notes }}
-Thanks,
-
-Freaks Boutique
\ No newline at end of file
diff --git a/shopyo/modules/box__ecommerce/shop/templates/shop/emails/order_info.txt b/shopyo/modules/box__ecommerce/shop/templates/shop/emails/order_info.txt
deleted file mode 100644
index 72af249..0000000
--- a/shopyo/modules/box__ecommerce/shop/templates/shop/emails/order_info.txt
+++ /dev/null
@@ -1,51 +0,0 @@
-Thank you for your order. Here is a summary.
-
-Your order ref is {{ order.get_ref() }}.
-Your order will not be processed until funds get cleared.
-
-
-
-{% set total_prices = [] %}
-Items
-{% for item in order.order_items %}
-#{{ loop.index }}
-Name: {{ item.get_product().name }}
-Description: {{ item.get_product().description }}
-Quantity: {{ item.quantity }}
-Color: {{ item.color }}
-Size: {{ item.size }}
-Unit Price: Rs {{ item.get_product().selling_price }}
-{% set item_total = int(item.get_product().selling_price) * int(item.quantity) %}
-Total: Rs {{ item_total }}
-
-{{ total_prices.append(item_total) or ''}}
-{% endfor %}
-
-{% set sum_products = sum(total_prices) %}
-Total for products: Rs {{ sum_products }}
-
-
-Payment Option
-Name: {{ order.payment_option.name }}
-Info: {{ order.payment_option.text }}
-
-
-Shipping Option:
-Option: {{ order.shipping_option.option }}
-Price: Rs {{ order.shipping_option.price }}
-
-
-Billing Details
-First Name: {{ order.billing_detail.first_name }}
-Last Name: {{ order.billing_detail.last_name }}
-Street: {{ order.billing_detail.street }}
-Town/City: {{ order.billing_detail.town_city }}
-Phone: {{ order.billing_detail.phone }}
-Email: {{ order.billing_detail.email }}
-Order Notes:
-{{ order.billing_detail.order_notes }}
-
-Thanks,
-
-
-Freaks Boutique
\ No newline at end of file
diff --git a/shopyo/modules/box__ecommerce/shop/templates/shop/order_complete.html b/shopyo/modules/box__ecommerce/shop/templates/shop/order_complete.html
deleted file mode 100644
index 033462f..0000000
--- a/shopyo/modules/box__ecommerce/shop/templates/shop/order_complete.html
+++ /dev/null
@@ -1,23 +0,0 @@
-{%set active_page = 'shop.html'%}
-{% extends "shop/base.html" %}
-{% block pagehead %}
-
-{% endblock %}
-{% block content %}
-
-
-
-
- Home
- Shop
- Cart
- Checkout
- Order Complete
-
-
-
-{% endblock %}
\ No newline at end of file
diff --git a/shopyo/modules/box__ecommerce/shop/templates/shop/product.html b/shopyo/modules/box__ecommerce/shop/templates/shop/product.html
deleted file mode 100644
index 0caa312..0000000
--- a/shopyo/modules/box__ecommerce/shop/templates/shop/product.html
+++ /dev/null
@@ -1,319 +0,0 @@
-{%set active_page = 'shop.html'%}
-{% extends "shop/base.html" %}
-{% block pagehead %}
-
-
-
-
-
-{% endblock %}
-{% block content %}
-
-
-
-
- Home
- Shop
- {{ product.subcategory.category.name }}
- {{ product.subcategory.name }}
- {{ product.name }}
-
-
-
-
-
-
-
-
-
-
-
-
- {%set filename_ = ''%}
- {%if product.resources%}
- {%set filename_ = product.resources[0].filename%}
- {%set img_url = url_for('resource.product_image', filename=filename_) %}
- {%else%}
- {%set img_url = url_for('resource.product_image', filename='default') %}
- {%endif%}
-
-
-
-
- {%if product.resources%}
- {%for resource in product.resources%}
- {%set img_url = url_for('resource.product_image', filename=resource.filename) %}
-
-
-
-
- {%endfor%}
- {%endif%}
-
-
-
-
-
-
-
-
-
-
-
-
-
-
{{get_currency_symbol()}} {{ product.selling_price }}
- {{ product.description }}
-
-
in stock {{ product.in_stock }}
-
-
- Choose a size:
-
- {% for s in product.sizes %}
- {{ s.name }}
- {% endfor %}
-
- Choose a color:
-
- {% for c in product.colors %}
- {{ c.name }}
- {% endfor %}
-
-
-
-
-
-
-
-
-
-
-
-
-{% endblock %}
\ No newline at end of file
diff --git a/shopyo/modules/box__ecommerce/shop/templates/shop/shop.html b/shopyo/modules/box__ecommerce/shop/templates/shop/shop.html
deleted file mode 100644
index c70a7c0..0000000
--- a/shopyo/modules/box__ecommerce/shop/templates/shop/shop.html
+++ /dev/null
@@ -1,132 +0,0 @@
-{%set active_page = 'shop.html'%}
-
-
-
-
-
- {% include 'shop/blocks/common_styles.html'%}
-
- {% include get_active_front_theme()+'/sections/resources.html'%}
-
-
-
-
- {% include get_active_front_theme()+'/sections/drawer_head.html'%}
-
-
-
- {% include get_active_front_theme()+'/sections/nav.html'%}
-
-
-
-
- Home
- Shop
-
-
-
-
-
-
- {%include 'shop/blocks/accordion.html'%}
-
- Price range:
-
-
-
-
-
filter
-
-
-
- {%for product in products%}
-
-
- {%endfor%}
-
-
-
-
-
-
-
-
- {% include get_active_front_theme()+'/sections/footer.html'%}
-
-
-
-
-
\ No newline at end of file
diff --git a/shopyo/modules/box__ecommerce/shop/templates/shop/subcategory.html b/shopyo/modules/box__ecommerce/shop/templates/shop/subcategory.html
deleted file mode 100644
index 44e0c36..0000000
--- a/shopyo/modules/box__ecommerce/shop/templates/shop/subcategory.html
+++ /dev/null
@@ -1,153 +0,0 @@
-{%set active_page = 'shop.html'%}
-
-
-
-
-
-
- {% include get_active_front_theme()+'/sections/resources.html'%}
-
-
-
- {% include 'shop/blocks/common_styles.html'%}
- {% include get_active_front_theme()+'/sections/drawer_head.html'%}
-
-
-
- {% include get_active_front_theme()+'/sections/nav.html'%}
-
-
-
-
- Home
- Shop
- {{ subcategory.category.name }}
- {{ subcategory.name }}
-
-
-
-
-
- {%include 'shop/blocks/accordion.html'%}
-
- Price range:
-
-
-
-
-
filter
-
-
-
-
-
- {%for product in products%}
-
-
- {%endfor%}
-
-
-
-
-
-
-
- {% include get_active_front_theme()+'/sections/footer.html'%}
-
-
-
\ No newline at end of file
diff --git a/shopyo/modules/box__ecommerce/shop/templates/shop/view_cart.html b/shopyo/modules/box__ecommerce/shop/templates/shop/view_cart.html
deleted file mode 100644
index 5cf2a51..0000000
--- a/shopyo/modules/box__ecommerce/shop/templates/shop/view_cart.html
+++ /dev/null
@@ -1,244 +0,0 @@
-{%set active_page = 'shop.html'%}
-{% extends "shop/base.html" %}
-{% block pagehead %}
-
-{% endblock %}
-{% block content %}
-
-
-
-
- Home
- Shop
- Cart
-
-
-
-
-
-
-
-
-
-
-
- <- scroll ->
-
-
-
- Product
- Size
- Color
- Quantity
- Price
- Subtotal
-
-
- {% set count = namespace(value=0) %}
- {%for barcode in Cart.data()['items']%}
- {%set product = get_product(barcode) %}
- {%set items = Cart.data()['items'][barcode] %}
-
- {% for item in items %}
- {% set count.value = count.value + 1 %}
-
-
-
-
-
-
-
-
- {{product.name}}
-
-
-
- {% for s in product.sizes %}
-
- {{ s.name }}
-
- {% endfor %}
-
-
-
-
- {% for c in product.colors %}
-
- {{ c.name }}
- {% endfor %}
-
-
-
-
-
-
-
- {{product.selling_price}}
- {{product.selling_price * item['quantity'] }}
-
- {% endfor %}
-
- {%endfor%}
-
-
-
-
-
-
-
-
Cart Totals
-
- Subtotal: {{ get_currency_symbol() }}{{ cart_total_price }}
-
-
-
-
- Total: {{ get_currency_symbol() }}
-
-
-
- CHECKOUT
-
-
-
-
-
-
-
-
-
-
-
-{% endblock %}
\ No newline at end of file
diff --git a/shopyo/modules/box__ecommerce/shop/templates/shop/wishlist.html b/shopyo/modules/box__ecommerce/shop/templates/shop/wishlist.html
deleted file mode 100644
index 8eb130b..0000000
--- a/shopyo/modules/box__ecommerce/shop/templates/shop/wishlist.html
+++ /dev/null
@@ -1,80 +0,0 @@
-{%set active_page = 'shop.html'%}
-
-
-
-
-
- {% include 'shop/blocks/common_styles.html'%}
-
- {% include get_active_front_theme()+'/sections/resources.html'%}
-
- {% include get_active_front_theme()+'/sections/drawer_head.html'%}
-
-
-
- {% include get_active_front_theme()+'/sections/nav.html'%}
-
-
-
-
- Home
- Shop
- Wishlist
-
-
-
-
-
- {%for barcode in get_wishlist_data()%}
- {%set product = Product.query.get(barcode)%}
-
-
- {%endfor%}
-
-
-
-
- {% include get_active_front_theme()+'/sections/footer.html'%}
-
-
-
-
-
\ No newline at end of file
diff --git a/shopyo/modules/box__ecommerce/shop/tests/test_shop.py b/shopyo/modules/box__ecommerce/shop/tests/test_shop.py
deleted file mode 100644
index ca0100b..0000000
--- a/shopyo/modules/box__ecommerce/shop/tests/test_shop.py
+++ /dev/null
@@ -1,20 +0,0 @@
-"""
-This file (test_shopy.py) contains the functional tests for
-the `shopy` blueprint.
-
-These tests use GETs and POSTs to different endpoints to check
-for the proper behavior of the `shop` blueprint.
-"""
-import pytest
-
-
-@pytest.mark.order("first")
-def test_shop_home_page(test_client):
- """
- GIVEN a Flask application configured for testing,
- WHEN the '/' page is requested (GET)
- THEN check that the response is valid
- """
- # '/' redirects to /shop/home
- response = test_client.get("/", follow_redirects=True)
- assert response.status_code == 200
diff --git a/shopyo/modules/box__ecommerce/shop/view.py b/shopyo/modules/box__ecommerce/shop/view.py
deleted file mode 100644
index 9d6552d..0000000
--- a/shopyo/modules/box__ecommerce/shop/view.py
+++ /dev/null
@@ -1,477 +0,0 @@
-import json
-import os
-from datetime import datetime
-
-from flask import current_app
-from flask import flash
-from flask import jsonify
-from flask import redirect
-from flask import render_template
-from flask import request
-from flask import session
-from flask import url_for
-
-from flask_login import current_user
-
-from shopyoapi.forms import flash_errors
-from shopyoapi.html import notify_success
-from shopyoapi.html import notify_warning
-from shopyoapi.module import ModuleHelp
-from shopyoapi.session import Cart
-from shopyoapi.security import get_safe_redirect
-
-from modules.box__default.admin.models import User
-from modules.box__default.auth.email import send_async_email
-from modules.box__default.settings.helpers import get_setting
-from modules.box__ecommerce.category.models import Category
-from modules.box__ecommerce.category.models import SubCategory
-from modules.box__ecommerce.product.models import Product
-from modules.box__ecommerce.shop.forms import CheckoutForm
-from modules.box__ecommerce.shop.helpers import get_cart_data
-from modules.box__ecommerce.shop.models import BillingDetail
-from modules.box__ecommerce.shop.models import Order
-from modules.box__ecommerce.shop.models import OrderItem
-from modules.box__ecommerce.shopman.models import DeliveryOption
-from modules.box__ecommerce.shopman.models import PaymentOption
-from modules.box__ecommerce.shopman.models import Coupon
-from modules.box__ecommerce.shop.helpers import get_min_max_subcateg
-
-mhelp = ModuleHelp(__file__, __name__)
-globals()[mhelp.blueprint_str] = mhelp.blueprint
-module_blueprint = globals()[mhelp.blueprint_str]
-
-
-# mhelp._context.update({"get_currency_symbol": get_currency_symbol})
-
-
-def get_product(barcode):
- return Product.query.filter_by(barcode=barcode).first()
-
-
-@module_blueprint.route("/home")
-def homepage():
- # cant be defined above but must be manually set each time
- # active_theme_dir = os.path.join(
- # dirpath, "..", "..", "themes", get_setting("ACTIVE_FRONT_THEME")
- # )
- # module_blueprint.template_folder = active_theme_dir
-
- # return str(module_blueprint.template_folder)
- context = mhelp.context()
- cart_info = get_cart_data()
- context.update(cart_info)
- return render_template(
- "ecommerceus/index.html", **context
- )
-
-
-@module_blueprint.route("/page/
")
-@module_blueprint.route("/")
-def index(page=1):
- context = mhelp.context()
- PAGINATION = 5
- end = page * PAGINATION
- start = end - PAGINATION
- # total_pages = (data.count_posts(name, data.STATE_PUBLISHED) // PAGINATION) + 1
- total_pages = (len(Product.query.all()) // PAGINATION) + 1
- products = Product.query.all()[::-1][start:end]
-
- min_price = None
- max_price = None
-
- def_min_price = min((p.selling_price for p in products))
- def_max_price = max((p.selling_price for p in products))
- filter_min_max = [def_min_price, def_max_price]
- if request.args.get('min') and request.args.get('max'):
- if request.args.get('min').isnumeric() and request.args.get('max').isnumeric():
- min_price = int(request.args.get('min'))
- max_price = int(request.args.get('max'))
- print(min_price, max_price)
- products = list((p for p in products if min_price <= p.selling_price <= max_price))
- products = products[start:end]
- filter_min_max = [min_price, max_price]
-
- cart_info = get_cart_data()
-
- min_max = [def_min_price, def_max_price]
- context.update(
- {
- "current_category_name": "",
- "total_pages": total_pages,
- "page": page,
- "products": products,
- "min_max": min_max,
- "filter_min_max": filter_min_max
- }
- )
- context.update(cart_info)
- return mhelp.render("shop.html", **context)
-
-
-@module_blueprint.route("/c/")
-def category(category_name):
-
- context = mhelp.context()
- current_category = Category.query.filter(
- Category.name == category_name
- ).first()
-
- cart_info = get_cart_data()
-
- context.update(
- {
- "current_category": current_category,
- "current_category_name": current_category.name,
- }
- )
- context.update(cart_info)
- return mhelp.render("category.html", **context)
-
-
-@module_blueprint.route("/sub//page/")
-@module_blueprint.route("/sub/")
-def subcategory(sub_id, page=1, methods=['GET']):
- context = mhelp.context()
- PAGINATION = 5
- end = page * PAGINATION
- start = end - PAGINATION
-
- subcategory = SubCategory.query.get(sub_id)
- subcategory_name = subcategory.name
-
- min_price = None
- max_price = None
- products = subcategory.products[start:end]
- filter_min_max = get_min_max_subcateg(subcategory_name)
- if request.args.get('min') and request.args.get('max'):
- if request.args.get('min').isnumeric() and request.args.get('max').isnumeric():
- min_price = int(request.args.get('min'))
- max_price = int(request.args.get('max'))
- print(min_price, max_price)
- products = list((p for p in subcategory.products if min_price <= p.selling_price <= max_price))
- products = products[start:end]
- filter_min_max = [min_price, max_price]
-
- total_pages = (len(products) // PAGINATION) + 1
- current_category_name = subcategory.category.name
- subcategory_name = subcategory.name
-
- cart_info = get_cart_data()
-
-
- context.update(
- {
- "subcategory": subcategory,
- "current_category_name": current_category_name,
- "total_pages": total_pages,
- "page": page,
- "products": products,
- "subcategory_name": subcategory_name,
- "filter_min_max": filter_min_max
- }
- )
- context.update(cart_info)
- return mhelp.render("subcategory.html", **context)
-
-
-@module_blueprint.route("/product/")
-def product(product_barcode):
- context = mhelp.context()
- product = Product.query.filter_by(barcode=product_barcode).first()
-
- cart_info = get_cart_data()
- # 'cart_data': cart_data,
- # 'cart_items': cart_items,
- # 'cart_total_price': cart_total_price
-
- context.update({"product": product})
- context.update(cart_info)
- return mhelp.render("product.html", **context)
-
-
-@module_blueprint.route("/cart/add/", methods=["GET", "POST"])
-def cart_add(product_barcode):
- if request.method == "POST":
- flash("")
-
- barcode = request.form["barcode"]
- quantity = int(request.form["quantity"])
- size = request.form['size']
- color = request.form['color']
-
- item_info = {
- 'quantity': quantity,
- 'size': size,
- 'color': color
- }
-
- if Cart.add(barcode, item_info):
- return mhelp.redirect_url("shop.product", product_barcode=barcode)
- else:
- flash(
- notify_warning(
- "Products in cart cannot be greater than product in stock"
- )
- )
- return redirect(
- url_for("shop.product", product_barcode=barcode)
- )
-
-
-
-@module_blueprint.route(
- "/cart/remove///", methods=["GET", "POST"]
-)
-def cart_remove(product_barcode, size, color):
- if "cart" in session:
- Cart.remove(product_barcode, size, color)
- flash(notify_success("Removed!"))
- return mhelp.redirect_url("shop.cart")
-
- else:
- return mhelp.redirect_url("shop.cart")
-
-
-@module_blueprint.route("/cart", methods=["GET", "POST"])
-def cart():
- context = mhelp.context()
-
- cart_info = get_cart_data()
- delivery_options = DeliveryOption.query.all()
-
- context.update(
- {"delivery_options": delivery_options, "get_product": get_product}
- )
- context.update(cart_info)
- return mhelp.render("view_cart.html", **context)
-
-
-@module_blueprint.route("/cart/update", methods=["GET", "POST"])
-def cart_update():
- if request.method == "POST":
- Cart.update(request.form)
- return mhelp.redirect_url("shop.cart")
-
-
-# @module_blueprint.route("/session", methods=['GET', 'POST'])
-# def session_view():
-# return str(session['cart'][0])
-#
-
-
-
-
-@module_blueprint.route("/checkout", methods=["GET", "POST"])
-def checkout():
- context = mhelp.context()
-
- delivery_options = DeliveryOption.query.all()
- payment_options = PaymentOption.query.all()
- with open(
- os.path.join(
- current_app.config["BASE_DIR"],
- "modules",
- "box__ecommerce",
- "shopman",
- "data",
- "country.json",
- )
- ) as f:
- countries = json.load(f)
- form = CheckoutForm()
- # country_choices = [(c["name"], c["name"]) for c in countries]
- country_choices = [('mauritius', 'Mauritius')]
- form.default_country.choices = country_choices
- form.diff_country.choices = country_choices
-
- if "checkout_data" not in session:
- checkout_data = {}
- for key in form._fields:
- checkout_data[key] = ""
-
- session["checkout_data"] = [{}]
- session["checkout_data"][0] = [checkout_data]
- else:
- checkout_data = session["checkout_data"][0]
-
- context.update(
- {
- "get_product": get_product,
- "delivery_options": delivery_options,
- "payment_options": payment_options,
- "form": form,
- "checkout_data": checkout_data,
- }
- )
- cart_info = get_cart_data()
- context.update(cart_info)
- return mhelp.render("checkout.html", **context)
-
-
-@module_blueprint.route("/checkout/process", methods=["GET", "POST"])
-def checkout_process():
- if request.method == "POST":
- cart_info = get_cart_data()
- if len(cart_info["cart_data"]) == 0:
- flash(notify_warning("Cart cannot be empty!"))
- return mhelp.redirect_url("shop.checkout")
-
- form = CheckoutForm()
- with open(
- os.path.join(
- current_app.config["BASE_DIR"],
- "modules",
- "box__ecommerce",
- "shopman",
- "data",
- "country.json",
- )
- ) as f:
- countries = json.load(f)
- # country_choices = [(c["name"], c["name"]) for c in countries]
- # form.default_country.choices = country_choices
- # form.diff_country.choices = country_choices
-
- country_choices = [('mauritius', 'Mauritius')]
- form.default_country.choices = country_choices
- form.diff_country.choices = country_choices
-
- # print(dir(form))
- # ordered dict print(form._fields[0][0])
-
- # print(form._fields['default_first_name'].data)
-
- checkout_data = {}
- for key in form._fields:
- checkout_data[key] = form._fields[key].data
-
- session["checkout_data"][0] = checkout_data
-
- print(request.form["paymentoption"])
- if form.validate_on_submit():
- if not form.diffAddress.data:
- first_name = form.default_first_name.data
- last_name = form.default_last_name.data
- country = form.default_country.data
- street = form.default_street.data
- town_city = form.default_town_city.data
- phone = form.default_phone.data
- email = form.default_email.data
- order_notes = form.default_order_notes.data
-
- elif form.diffAddress.data:
- first_name = form.diff_first_name.data
- last_name = form.diff_last_name.data
- country = form.diff_country.data
- street = form.diff_street.data
- town_city = form.diff_town_city.data
- phone = form.diff_phone.data
- email = form.diff_email.data
- order_notes = form.dif_order_notes.data
-
- billing_detail = BillingDetail()
- billing_detail.first_name = first_name
- billing_detail.last_name = last_name
- billing_detail.country = country
- billing_detail.street = street
- billing_detail.town_city = town_city
- billing_detail.phone = phone
- billing_detail.email = email
- billing_detail.order_notes = order_notes
-
- if form.createAccount.data:
- if not User.query.filter((User.email == email)).first():
- user = User()
- user.first_name = first_name
- user.last_name = last_name
- user.email = email
- user.password = form.passoword.data
- user.email_confirmed = True
- user.is_customer = True
- user.email_confirm_date = datetime.now()
-
- order = Order()
- order.billing_detail = billing_detail
- shipping_option = DeliveryOption.query.get(
- request.form["deliveryoption"]
- )
- order.shipping_option = shipping_option
- payment_option = PaymentOption.query.get(
- request.form["paymentoption"]
- )
- order.payment_option = payment_option
- if current_user.is_authenticated:
- order.logged_in_customer_email = current_user.email
-
- if form.applyCoupon.data:
- coupon = Coupon.query.filter(
- Coupon.string == form.coupon.data
- ).first()
- if coupon:
- order.coupon = coupon
- else:
- flash(notify_warning("Invalid Coupon"))
-
- cart_info = get_cart_data()
- cart_data = cart_info["cart_data"]
-
- for barcode in Cart.data()['items']:
- for item in Cart.data()['items'][barcode]:
- order_item = OrderItem()
- product = Product.query.filter_by(barcode=barcode).first()
- order_item.barcode = barcode
- order_item.quantity = int(item['quantity'])
- order_item.size = item['size']
- order_item.color = item['color']
- order.order_items.append(order_item)
-
- template = "shop/emails/order_info"
- subject = "FreaksBoutique - Order Details"
- context = {}
- context.update({'order': order, 'int': int, 'sum': sum})
- send_async_email(email, subject, template, **context)
-
- order.insert()
- flash(notify_success("Great!"))
- context = mhelp.context()
- Cart.reset()
- return render_template("shop/order_complete.html", **context)
- else:
- flash_errors(form)
- return mhelp.redirect_url("shop.checkout")
-
-
-@module_blueprint.route("/wishlist/toggle/", methods=["GET"])
-def wishlist_toggle(product_barcode):
-
- # next url hecks
- next_url = request.args.get("next")
- if next_url is None:
- next_url = '/'
- next_url = get_safe_redirect(next_url)
-
- # product checks
- product = Product.query.get(product_barcode)
- if product is None:
- return redirect(next_url)
-
- if 'wishlist' not in session:
- session['wishlist'] = []
-
- if product_barcode not in session['wishlist']:
- session['wishlist'].append(product_barcode)
- session.modified = True
- elif product_barcode in session['wishlist']:
- session['wishlist'].remove(product_barcode)
- session.modified = True
-
- return redirect(next_url)
-
-
-@module_blueprint.route("/wishlist", methods=["GET"])
-def wishlist():
- context = mhelp.context()
- context.update({
- 'Product': Product
- })
- return mhelp.render('wishlist.html', **context)
\ No newline at end of file
diff --git a/shopyo/modules/box__ecommerce/shopman/data/country.json b/shopyo/modules/box__ecommerce/shopman/data/country.json
deleted file mode 100644
index fab4f11..0000000
--- a/shopyo/modules/box__ecommerce/shopman/data/country.json
+++ /dev/null
@@ -1,245 +0,0 @@
-[
- {"name": "Afghanistan", "code": "AF"},
- {"name": "Åland Islands", "code": "AX"},
- {"name": "Albania", "code": "AL"},
- {"name": "Algeria", "code": "DZ"},
- {"name": "American Samoa", "code": "AS"},
- {"name": "AndorrA", "code": "AD"},
- {"name": "Angola", "code": "AO"},
- {"name": "Anguilla", "code": "AI"},
- {"name": "Antarctica", "code": "AQ"},
- {"name": "Antigua and Barbuda", "code": "AG"},
- {"name": "Argentina", "code": "AR"},
- {"name": "Armenia", "code": "AM"},
- {"name": "Aruba", "code": "AW"},
- {"name": "Australia", "code": "AU"},
- {"name": "Austria", "code": "AT"},
- {"name": "Azerbaijan", "code": "AZ"},
- {"name": "Bahamas", "code": "BS"},
- {"name": "Bahrain", "code": "BH"},
- {"name": "Bangladesh", "code": "BD"},
- {"name": "Barbados", "code": "BB"},
- {"name": "Belarus", "code": "BY"},
- {"name": "Belgium", "code": "BE"},
- {"name": "Belize", "code": "BZ"},
- {"name": "Benin", "code": "BJ"},
- {"name": "Bermuda", "code": "BM"},
- {"name": "Bhutan", "code": "BT"},
- {"name": "Bolivia", "code": "BO"},
- {"name": "Bosnia and Herzegovina", "code": "BA"},
- {"name": "Botswana", "code": "BW"},
- {"name": "Bouvet Island", "code": "BV"},
- {"name": "Brazil", "code": "BR"},
- {"name": "British Indian Ocean Territory", "code": "IO"},
- {"name": "Brunei Darussalam", "code": "BN"},
- {"name": "Bulgaria", "code": "BG"},
- {"name": "Burkina Faso", "code": "BF"},
- {"name": "Burundi", "code": "BI"},
- {"name": "Cambodia", "code": "KH"},
- {"name": "Cameroon", "code": "CM"},
- {"name": "Canada", "code": "CA"},
- {"name": "Cape Verde", "code": "CV"},
- {"name": "Cayman Islands", "code": "KY"},
- {"name": "Central African Republic", "code": "CF"},
- {"name": "Chad", "code": "TD"},
- {"name": "Chile", "code": "CL"},
- {"name": "China", "code": "CN"},
- {"name": "Christmas Island", "code": "CX"},
- {"name": "Cocos (Keeling) Islands", "code": "CC"},
- {"name": "Colombia", "code": "CO"},
- {"name": "Comoros", "code": "KM"},
- {"name": "Congo", "code": "CG"},
- {"name": "Congo, The Democratic Republic of the", "code": "CD"},
- {"name": "Cook Islands", "code": "CK"},
- {"name": "Costa Rica", "code": "CR"},
- {"name": "Cote D\"Ivoire", "code": "CI"},
- {"name": "Croatia", "code": "HR"},
- {"name": "Cuba", "code": "CU"},
- {"name": "Cyprus", "code": "CY"},
- {"name": "Czech Republic", "code": "CZ"},
- {"name": "Denmark", "code": "DK"},
- {"name": "Djibouti", "code": "DJ"},
- {"name": "Dominica", "code": "DM"},
- {"name": "Dominican Republic", "code": "DO"},
- {"name": "Ecuador", "code": "EC"},
- {"name": "Egypt", "code": "EG"},
- {"name": "El Salvador", "code": "SV"},
- {"name": "Equatorial Guinea", "code": "GQ"},
- {"name": "Eritrea", "code": "ER"},
- {"name": "Estonia", "code": "EE"},
- {"name": "Ethiopia", "code": "ET"},
- {"name": "Falkland Islands (Malvinas)", "code": "FK"},
- {"name": "Faroe Islands", "code": "FO"},
- {"name": "Fiji", "code": "FJ"},
- {"name": "Finland", "code": "FI"},
- {"name": "France", "code": "FR"},
- {"name": "French Guiana", "code": "GF"},
- {"name": "French Polynesia", "code": "PF"},
- {"name": "French Southern Territories", "code": "TF"},
- {"name": "Gabon", "code": "GA"},
- {"name": "Gambia", "code": "GM"},
- {"name": "Georgia", "code": "GE"},
- {"name": "Germany", "code": "DE"},
- {"name": "Ghana", "code": "GH"},
- {"name": "Gibraltar", "code": "GI"},
- {"name": "Greece", "code": "GR"},
- {"name": "Greenland", "code": "GL"},
- {"name": "Grenada", "code": "GD"},
- {"name": "Guadeloupe", "code": "GP"},
- {"name": "Guam", "code": "GU"},
- {"name": "Guatemala", "code": "GT"},
- {"name": "Guernsey", "code": "GG"},
- {"name": "Guinea", "code": "GN"},
- {"name": "Guinea-Bissau", "code": "GW"},
- {"name": "Guyana", "code": "GY"},
- {"name": "Haiti", "code": "HT"},
- {"name": "Heard Island and Mcdonald Islands", "code": "HM"},
- {"name": "Holy See (Vatican City State)", "code": "VA"},
- {"name": "Honduras", "code": "HN"},
- {"name": "Hong Kong", "code": "HK"},
- {"name": "Hungary", "code": "HU"},
- {"name": "Iceland", "code": "IS"},
- {"name": "India", "code": "IN"},
- {"name": "Indonesia", "code": "ID"},
- {"name": "Iran, Islamic Republic Of", "code": "IR"},
- {"name": "Iraq", "code": "IQ"},
- {"name": "Ireland", "code": "IE"},
- {"name": "Isle of Man", "code": "IM"},
- {"name": "Israel", "code": "IL"},
- {"name": "Italy", "code": "IT"},
- {"name": "Jamaica", "code": "JM"},
- {"name": "Japan", "code": "JP"},
- {"name": "Jersey", "code": "JE"},
- {"name": "Jordan", "code": "JO"},
- {"name": "Kazakhstan", "code": "KZ"},
- {"name": "Kenya", "code": "KE"},
- {"name": "Kiribati", "code": "KI"},
- {"name": "Korea, Democratic People\"S Republic of", "code": "KP"},
- {"name": "Korea, Republic of", "code": "KR"},
- {"name": "Kuwait", "code": "KW"},
- {"name": "Kyrgyzstan", "code": "KG"},
- {"name": "Lao People\"S Democratic Republic", "code": "LA"},
- {"name": "Latvia", "code": "LV"},
- {"name": "Lebanon", "code": "LB"},
- {"name": "Lesotho", "code": "LS"},
- {"name": "Liberia", "code": "LR"},
- {"name": "Libyan Arab Jamahiriya", "code": "LY"},
- {"name": "Liechtenstein", "code": "LI"},
- {"name": "Lithuania", "code": "LT"},
- {"name": "Luxembourg", "code": "LU"},
- {"name": "Macao", "code": "MO"},
- {"name": "Macedonia, The Former Yugoslav Republic of", "code": "MK"},
- {"name": "Madagascar", "code": "MG"},
- {"name": "Malawi", "code": "MW"},
- {"name": "Malaysia", "code": "MY"},
- {"name": "Maldives", "code": "MV"},
- {"name": "Mali", "code": "ML"},
- {"name": "Malta", "code": "MT"},
- {"name": "Marshall Islands", "code": "MH"},
- {"name": "Martinique", "code": "MQ"},
- {"name": "Mauritania", "code": "MR"},
- {"name": "Mauritius", "code": "MU"},
- {"name": "Mayotte", "code": "YT"},
- {"name": "Mexico", "code": "MX"},
- {"name": "Micronesia, Federated States of", "code": "FM"},
- {"name": "Moldova, Republic of", "code": "MD"},
- {"name": "Monaco", "code": "MC"},
- {"name": "Mongolia", "code": "MN"},
- {"name": "Montserrat", "code": "MS"},
- {"name": "Morocco", "code": "MA"},
- {"name": "Mozambique", "code": "MZ"},
- {"name": "Myanmar", "code": "MM"},
- {"name": "Namibia", "code": "NA"},
- {"name": "Nauru", "code": "NR"},
- {"name": "Nepal", "code": "NP"},
- {"name": "Netherlands", "code": "NL"},
- {"name": "Netherlands Antilles", "code": "AN"},
- {"name": "New Caledonia", "code": "NC"},
- {"name": "New Zealand", "code": "NZ"},
- {"name": "Nicaragua", "code": "NI"},
- {"name": "Niger", "code": "NE"},
- {"name": "Nigeria", "code": "NG"},
- {"name": "Niue", "code": "NU"},
- {"name": "Norfolk Island", "code": "NF"},
- {"name": "Northern Mariana Islands", "code": "MP"},
- {"name": "Norway", "code": "NO"},
- {"name": "Oman", "code": "OM"},
- {"name": "Pakistan", "code": "PK"},
- {"name": "Palau", "code": "PW"},
- {"name": "Palestinian Territory, Occupied", "code": "PS"},
- {"name": "Panama", "code": "PA"},
- {"name": "Papua New Guinea", "code": "PG"},
- {"name": "Paraguay", "code": "PY"},
- {"name": "Peru", "code": "PE"},
- {"name": "Philippines", "code": "PH"},
- {"name": "Pitcairn", "code": "PN"},
- {"name": "Poland", "code": "PL"},
- {"name": "Portugal", "code": "PT"},
- {"name": "Puerto Rico", "code": "PR"},
- {"name": "Qatar", "code": "QA"},
- {"name": "Reunion", "code": "RE"},
- {"name": "Romania", "code": "RO"},
- {"name": "Russian Federation", "code": "RU"},
- {"name": "RWANDA", "code": "RW"},
- {"name": "Saint Helena", "code": "SH"},
- {"name": "Saint Kitts and Nevis", "code": "KN"},
- {"name": "Saint Lucia", "code": "LC"},
- {"name": "Saint Pierre and Miquelon", "code": "PM"},
- {"name": "Saint Vincent and the Grenadines", "code": "VC"},
- {"name": "Samoa", "code": "WS"},
- {"name": "San Marino", "code": "SM"},
- {"name": "Sao Tome and Principe", "code": "ST"},
- {"name": "Saudi Arabia", "code": "SA"},
- {"name": "Senegal", "code": "SN"},
- {"name": "Serbia and Montenegro", "code": "CS"},
- {"name": "Seychelles", "code": "SC"},
- {"name": "Sierra Leone", "code": "SL"},
- {"name": "Singapore", "code": "SG"},
- {"name": "Slovakia", "code": "SK"},
- {"name": "Slovenia", "code": "SI"},
- {"name": "Solomon Islands", "code": "SB"},
- {"name": "Somalia", "code": "SO"},
- {"name": "South Africa", "code": "ZA"},
- {"name": "South Georgia and the South Sandwich Islands", "code": "GS"},
- {"name": "Spain", "code": "ES"},
- {"name": "Sri Lanka", "code": "LK"},
- {"name": "Sudan", "code": "SD"},
- {"name": "Suriname", "code": "SR"},
- {"name": "Svalbard and Jan Mayen", "code": "SJ"},
- {"name": "Swaziland", "code": "SZ"},
- {"name": "Sweden", "code": "SE"},
- {"name": "Switzerland", "code": "CH"},
- {"name": "Syrian Arab Republic", "code": "SY"},
- {"name": "Taiwan, Province of China", "code": "TW"},
- {"name": "Tajikistan", "code": "TJ"},
- {"name": "Tanzania, United Republic of", "code": "TZ"},
- {"name": "Thailand", "code": "TH"},
- {"name": "Timor-Leste", "code": "TL"},
- {"name": "Togo", "code": "TG"},
- {"name": "Tokelau", "code": "TK"},
- {"name": "Tonga", "code": "TO"},
- {"name": "Trinidad and Tobago", "code": "TT"},
- {"name": "Tunisia", "code": "TN"},
- {"name": "Turkey", "code": "TR"},
- {"name": "Turkmenistan", "code": "TM"},
- {"name": "Turks and Caicos Islands", "code": "TC"},
- {"name": "Tuvalu", "code": "TV"},
- {"name": "Uganda", "code": "UG"},
- {"name": "Ukraine", "code": "UA"},
- {"name": "United Arab Emirates", "code": "AE"},
- {"name": "United Kingdom", "code": "GB"},
- {"name": "United States", "code": "US"},
- {"name": "United States Minor Outlying Islands", "code": "UM"},
- {"name": "Uruguay", "code": "UY"},
- {"name": "Uzbekistan", "code": "UZ"},
- {"name": "Vanuatu", "code": "VU"},
- {"name": "Venezuela", "code": "VE"},
- {"name": "Viet Nam", "code": "VN"},
- {"name": "Virgin Islands, British", "code": "VG"},
- {"name": "Virgin Islands, U.S.", "code": "VI"},
- {"name": "Wallis and Futuna", "code": "WF"},
- {"name": "Western Sahara", "code": "EH"},
- {"name": "Yemen", "code": "YE"},
- {"name": "Zambia", "code": "ZM"},
- {"name": "Zimbabwe", "code": "ZW"}
-]
diff --git a/shopyo/modules/box__ecommerce/shopman/data/currency.json b/shopyo/modules/box__ecommerce/shopman/data/currency.json
deleted file mode 100644
index aee370b..0000000
--- a/shopyo/modules/box__ecommerce/shopman/data/currency.json
+++ /dev/null
@@ -1,158 +0,0 @@
-[
- {"cc":"AED","symbol":"\u062f.\u0625;","name":"UAE dirham"},
- {"cc":"AFN","symbol":"Afs","name":"Afghan afghani"},
- {"cc":"ALL","symbol":"L","name":"Albanian lek"},
- {"cc":"AMD","symbol":"AMD","name":"Armenian dram"},
- {"cc":"ANG","symbol":"NA\u0192","name":"Netherlands Antillean gulden"},
- {"cc":"AOA","symbol":"Kz","name":"Angolan kwanza"},
- {"cc":"ARS","symbol":"$","name":"Argentine peso"},
- {"cc":"AUD","symbol":"$","name":"Australian dollar"},
- {"cc":"AWG","symbol":"\u0192","name":"Aruban florin"},
- {"cc":"AZN","symbol":"AZN","name":"Azerbaijani manat"},
- {"cc":"BAM","symbol":"KM","name":"Bosnia and Herzegovina konvertibilna marka"},
- {"cc":"BBD","symbol":"Bds$","name":"Barbadian dollar"},
- {"cc":"BDT","symbol":"\u09f3","name":"Bangladeshi taka"},
- {"cc":"BGN","symbol":"BGN","name":"Bulgarian lev"},
- {"cc":"BHD","symbol":".\u062f.\u0628","name":"Bahraini dinar"},
- {"cc":"BIF","symbol":"FBu","name":"Burundi franc"},
- {"cc":"BMD","symbol":"BD$","name":"Bermudian dollar"},
- {"cc":"BND","symbol":"B$","name":"Brunei dollar"},
- {"cc":"BOB","symbol":"Bs.","name":"Bolivian boliviano"},
- {"cc":"BRL","symbol":"R$","name":"Brazilian real"},
- {"cc":"BSD","symbol":"B$","name":"Bahamian dollar"},
- {"cc":"BTN","symbol":"Nu.","name":"Bhutanese ngultrum"},
- {"cc":"BWP","symbol":"P","name":"Botswana pula"},
- {"cc":"BYR","symbol":"Br","name":"Belarusian ruble"},
- {"cc":"BZD","symbol":"BZ$","name":"Belize dollar"},
- {"cc":"CAD","symbol":"$","name":"Canadian dollar"},
- {"cc":"CDF","symbol":"F","name":"Congolese franc"},
- {"cc":"CHF","symbol":"Fr.","name":"Swiss franc"},
- {"cc":"CLP","symbol":"$","name":"Chilean peso"},
- {"cc":"CNY","symbol":"\u00a5","name":"Chinese/Yuan renminbi"},
- {"cc":"COP","symbol":"Col$","name":"Colombian peso"},
- {"cc":"CRC","symbol":"\u20a1","name":"Costa Rican colon"},
- {"cc":"CUC","symbol":"$","name":"Cuban peso"},
- {"cc":"CVE","symbol":"Esc","name":"Cape Verdean escudo"},
- {"cc":"CZK","symbol":"K\u010d","name":"Czech koruna"},
- {"cc":"DJF","symbol":"Fdj","name":"Djiboutian franc"},
- {"cc":"DKK","symbol":"Kr","name":"Danish krone"},
- {"cc":"DOP","symbol":"RD$","name":"Dominican peso"},
- {"cc":"DZD","symbol":"\u062f.\u062c","name":"Algerian dinar"},
- {"cc":"EEK","symbol":"KR","name":"Estonian kroon"},
- {"cc":"EGP","symbol":"\u00a3","name":"Egyptian pound"},
- {"cc":"ERN","symbol":"Nfa","name":"Eritrean nakfa"},
- {"cc":"ETB","symbol":"Br","name":"Ethiopian birr"},
- {"cc":"EUR","symbol":"\u20ac","name":"European Euro"},
- {"cc":"FJD","symbol":"FJ$","name":"Fijian dollar"},
- {"cc":"FKP","symbol":"\u00a3","name":"Falkland Islands pound"},
- {"cc":"GBP","symbol":"\u00a3","name":"British pound"},
- {"cc":"GEL","symbol":"GEL","name":"Georgian lari"},
- {"cc":"GHS","symbol":"GH\u20b5","name":"Ghanaian cedi"},
- {"cc":"GIP","symbol":"\u00a3","name":"Gibraltar pound"},
- {"cc":"GMD","symbol":"D","name":"Gambian dalasi"},
- {"cc":"GNF","symbol":"FG","name":"Guinean franc"},
- {"cc":"GQE","symbol":"CFA","name":"Central African CFA franc"},
- {"cc":"GTQ","symbol":"Q","name":"Guatemalan quetzal"},
- {"cc":"GYD","symbol":"GY$","name":"Guyanese dollar"},
- {"cc":"HKD","symbol":"HK$","name":"Hong Kong dollar"},
- {"cc":"HNL","symbol":"L","name":"Honduran lempira"},
- {"cc":"HRK","symbol":"kn","name":"Croatian kuna"},
- {"cc":"HTG","symbol":"G","name":"Haitian gourde"},
- {"cc":"HUF","symbol":"Ft","name":"Hungarian forint"},
- {"cc":"IDR","symbol":"Rp","name":"Indonesian rupiah"},
- {"cc":"ILS","symbol":"\u20aa","name":"Israeli new sheqel"},
- {"cc":"INR","symbol":"\u20B9","name":"Indian rupee"},
- {"cc":"IQD","symbol":"\u062f.\u0639","name":"Iraqi dinar"},
- {"cc":"IRR","symbol":"IRR","name":"Iranian rial"},
- {"cc":"ISK","symbol":"kr","name":"Icelandic kr\u00f3na"},
- {"cc":"JMD","symbol":"J$","name":"Jamaican dollar"},
- {"cc":"JOD","symbol":"JOD","name":"Jordanian dinar"},
- {"cc":"JPY","symbol":"\u00a5","name":"Japanese yen"},
- {"cc":"KES","symbol":"KSh","name":"Kenyan shilling"},
- {"cc":"KGS","symbol":"\u0441\u043e\u043c","name":"Kyrgyzstani som"},
- {"cc":"KHR","symbol":"\u17db","name":"Cambodian riel"},
- {"cc":"KMF","symbol":"KMF","name":"Comorian franc"},
- {"cc":"KPW","symbol":"W","name":"North Korean won"},
- {"cc":"KRW","symbol":"W","name":"South Korean won"},
- {"cc":"KWD","symbol":"KWD","name":"Kuwaiti dinar"},
- {"cc":"KYD","symbol":"KY$","name":"Cayman Islands dollar"},
- {"cc":"KZT","symbol":"T","name":"Kazakhstani tenge"},
- {"cc":"LAK","symbol":"KN","name":"Lao kip"},
- {"cc":"LBP","symbol":"\u00a3","name":"Lebanese lira"},
- {"cc":"LKR","symbol":"Rs","name":"Sri Lankan rupee"},
- {"cc":"LRD","symbol":"L$","name":"Liberian dollar"},
- {"cc":"LSL","symbol":"M","name":"Lesotho loti"},
- {"cc":"LTL","symbol":"Lt","name":"Lithuanian litas"},
- {"cc":"LVL","symbol":"Ls","name":"Latvian lats"},
- {"cc":"LYD","symbol":"LD","name":"Libyan dinar"},
- {"cc":"MAD","symbol":"MAD","name":"Moroccan dirham"},
- {"cc":"MDL","symbol":"MDL","name":"Moldovan leu"},
- {"cc":"MGA","symbol":"FMG","name":"Malagasy ariary"},
- {"cc":"MKD","symbol":"MKD","name":"Macedonian denar"},
- {"cc":"MMK","symbol":"K","name":"Myanma kyat"},
- {"cc":"MNT","symbol":"\u20ae","name":"Mongolian tugrik"},
- {"cc":"MOP","symbol":"P","name":"Macanese pataca"},
- {"cc":"MRO","symbol":"UM","name":"Mauritanian ouguiya"},
- {"cc":"MUR","symbol":"Rs","name":"Mauritian rupee"},
- {"cc":"MVR","symbol":"Rf","name":"Maldivian rufiyaa"},
- {"cc":"MWK","symbol":"MK","name":"Malawian kwacha"},
- {"cc":"MXN","symbol":"$","name":"Mexican peso"},
- {"cc":"MYR","symbol":"RM","name":"Malaysian ringgit"},
- {"cc":"MZM","symbol":"MTn","name":"Mozambican metical"},
- {"cc":"NAD","symbol":"N$","name":"Namibian dollar"},
- {"cc":"NGN","symbol":"\u20a6","name":"Nigerian naira"},
- {"cc":"NIO","symbol":"C$","name":"Nicaraguan c\u00f3rdoba"},
- {"cc":"NOK","symbol":"kr","name":"Norwegian krone"},
- {"cc":"NPR","symbol":"NRs","name":"Nepalese rupee"},
- {"cc":"NZD","symbol":"NZ$","name":"New Zealand dollar"},
- {"cc":"OMR","symbol":"OMR","name":"Omani rial"},
- {"cc":"PAB","symbol":"B./","name":"Panamanian balboa"},
- {"cc":"PEN","symbol":"S/.","name":"Peruvian nuevo sol"},
- {"cc":"PGK","symbol":"K","name":"Papua New Guinean kina"},
- {"cc":"PHP","symbol":"\u20b1","name":"Philippine peso"},
- {"cc":"PKR","symbol":"Rs.","name":"Pakistani rupee"},
- {"cc":"PLN","symbol":"z\u0142","name":"Polish zloty"},
- {"cc":"PYG","symbol":"\u20b2","name":"Paraguayan guarani"},
- {"cc":"QAR","symbol":"QR","name":"Qatari riyal"},
- {"cc":"RON","symbol":"L","name":"Romanian leu"},
- {"cc":"RSD","symbol":"din.","name":"Serbian dinar"},
- {"cc":"RUB","symbol":"R","name":"Russian ruble"},
- {"cc":"SAR","symbol":"SR","name":"Saudi riyal"},
- {"cc":"SBD","symbol":"SI$","name":"Solomon Islands dollar"},
- {"cc":"SCR","symbol":"SR","name":"Seychellois rupee"},
- {"cc":"SDG","symbol":"SDG","name":"Sudanese pound"},
- {"cc":"SEK","symbol":"kr","name":"Swedish krona"},
- {"cc":"SGD","symbol":"S$","name":"Singapore dollar"},
- {"cc":"SHP","symbol":"\u00a3","name":"Saint Helena pound"},
- {"cc":"SLL","symbol":"Le","name":"Sierra Leonean leone"},
- {"cc":"SOS","symbol":"Sh.","name":"Somali shilling"},
- {"cc":"SRD","symbol":"$","name":"Surinamese dollar"},
- {"cc":"SYP","symbol":"LS","name":"Syrian pound"},
- {"cc":"SZL","symbol":"E","name":"Swazi lilangeni"},
- {"cc":"THB","symbol":"\u0e3f","name":"Thai baht"},
- {"cc":"TJS","symbol":"TJS","name":"Tajikistani somoni"},
- {"cc":"TMT","symbol":"m","name":"Turkmen manat"},
- {"cc":"TND","symbol":"DT","name":"Tunisian dinar"},
- {"cc":"TRY","symbol":"TRY","name":"Turkish new lira"},
- {"cc":"TTD","symbol":"TT$","name":"Trinidad and Tobago dollar"},
- {"cc":"TWD","symbol":"NT$","name":"New Taiwan dollar"},
- {"cc":"TZS","symbol":"TZS","name":"Tanzanian shilling"},
- {"cc":"UAH","symbol":"UAH","name":"Ukrainian hryvnia"},
- {"cc":"UGX","symbol":"USh","name":"Ugandan shilling"},
- {"cc":"USD","symbol":"US$","name":"United States dollar"},
- {"cc":"UYU","symbol":"$U","name":"Uruguayan peso"},
- {"cc":"UZS","symbol":"UZS","name":"Uzbekistani som"},
- {"cc":"VEB","symbol":"Bs","name":"Venezuelan bolivar"},
- {"cc":"VND","symbol":"\u20ab","name":"Vietnamese dong"},
- {"cc":"VUV","symbol":"VT","name":"Vanuatu vatu"},
- {"cc":"WST","symbol":"WS$","name":"Samoan tala"},
- {"cc":"XAF","symbol":"CFA","name":"Central African CFA franc"},
- {"cc":"XCD","symbol":"EC$","name":"East Caribbean dollar"},
- {"cc":"XDR","symbol":"SDR","name":"Special Drawing Rights"},
- {"cc":"XOF","symbol":"CFA","name":"West African CFA franc"},
- {"cc":"XPF","symbol":"F","name":"CFP franc"},
- {"cc":"YER","symbol":"YER","name":"Yemeni rial"},
- {"cc":"ZAR","symbol":"R","name":"South African rand"},
- {"cc":"ZMK","symbol":"ZK","name":"Zambian kwacha"},
- {"cc":"ZWR","symbol":"Z$","name":"Zimbabwean dollar"}
-]
\ No newline at end of file
diff --git a/shopyo/modules/box__ecommerce/shopman/forms.py b/shopyo/modules/box__ecommerce/shopman/forms.py
deleted file mode 100644
index 873270e..0000000
--- a/shopyo/modules/box__ecommerce/shopman/forms.py
+++ /dev/null
@@ -1,64 +0,0 @@
-from flask_wtf import FlaskForm
-from wtforms import StringField
-from wtforms import TextAreaField
-from wtforms.fields import SelectField
-
-# from wtforms.fields.html5 import EmailField
-from wtforms.fields.html5 import IntegerField
-from wtforms.validators import DataRequired
-
-# from wtforms.validators import Email
-# from wtforms.validators import Optional
-
-
-class DeliveryOptionForm(FlaskForm):
- option = StringField(
- "Option",
- [DataRequired()],
- render_kw={"class": "form-control", "autocomplete": "off"},
- )
- price = IntegerField(
- "Price",
- [DataRequired()],
- render_kw={"class": "form-control", "autocomplete": "off"},
- )
-
-
-class PaymentOptionForm(FlaskForm):
- name = StringField(
- "Option",
- [DataRequired()],
- render_kw={"class": "form-control", "autocomplete": "off"},
- )
- text = TextAreaField(
- "Text",
- [DataRequired()],
- render_kw={"rows": 10, "class": "form-control", "autocomplete": "off"},
- )
-
-
-class CouponForm(FlaskForm):
- string = StringField(
- "String",
- [DataRequired()],
- render_kw={"class": "form-control", "autocomplete": "off"},
- )
- type = SelectField(
- "Type",
- choices=[("percentage", "percentage"), ("value", "value")],
- validators=[DataRequired()],
- render_kw={"class": "form-control"},
- )
- value = IntegerField(
- "Value",
- [DataRequired()],
- render_kw={"class": "form-control", "autocomplete": "off"},
- )
-
-
-class CurrencyForm(FlaskForm):
- currency = SelectField(
- "Currency",
- validators=[DataRequired()],
- render_kw={"class": "form-control"},
- )
diff --git a/shopyo/modules/box__ecommerce/shopman/info.json b/shopyo/modules/box__ecommerce/shopman/info.json
deleted file mode 100644
index 88c9d7f..0000000
--- a/shopyo/modules/box__ecommerce/shopman/info.json
+++ /dev/null
@@ -1,13 +0,0 @@
-{
- "display_string": "Manage Shop",
- "module_name":"shopman",
- "type": "show",
- "fa-icon": "fa fa-store",
- "url_prefix": "/shopman",
- "dashboard": "/dashboard",
- "author": {
- "name":"",
- "website":"",
- "mail":""
- }
-}
\ No newline at end of file
diff --git a/shopyo/modules/box__ecommerce/shopman/models.py b/shopyo/modules/box__ecommerce/shopman/models.py
deleted file mode 100644
index 4fb2844..0000000
--- a/shopyo/modules/box__ecommerce/shopman/models.py
+++ /dev/null
@@ -1,65 +0,0 @@
-from shopyoapi.init import db
-
-
-class DeliveryOption(db.Model):
-
- __tablename__ = "deliveryoptions"
- id = db.Column(db.Integer, primary_key=True)
- option = db.Column(db.String(300))
- price = db.Column(db.Float)
-
- order_id = db.Column(db.Integer, db.ForeignKey("orders.id"))
-
- def insert(self):
- db.session.add(self)
- db.session.commit()
-
- def update(self):
- db.session.commit()
-
- def delete(self):
- db.session.delete(self)
- db.session.commit()
-
-
-class PaymentOption(db.Model):
-
- __tablename__ = "paymentoptions"
- id = db.Column(db.Integer, primary_key=True)
- name = db.Column(db.String(300))
- text = db.Column(db.String(300))
-
- order_id = db.Column(db.Integer, db.ForeignKey("orders.id"))
-
- def insert(self):
- db.session.add(self)
- db.session.commit()
-
- def update(self):
- db.session.commit()
-
- def delete(self):
- db.session.delete(self)
- db.session.commit()
-
-
-class Coupon(db.Model):
-
- __tablename__ = "coupons"
- id = db.Column(db.Integer, primary_key=True)
- string = db.Column(db.String(300))
- type = db.Column(db.String(300)) # percentage, value
- value = db.Column(db.String(300))
-
- order_id = db.Column(db.Integer, db.ForeignKey("orders.id"))
-
- def insert(self):
- db.session.add(self)
- db.session.commit()
-
- def update(self):
- db.session.commit()
-
- def delete(self):
- db.session.delete(self)
- db.session.commit()
diff --git a/shopyo/modules/box__ecommerce/shopman/templates/shopman/blocks/sidebar.html b/shopyo/modules/box__ecommerce/shopman/templates/shopman/blocks/sidebar.html
deleted file mode 100644
index c79ff27..0000000
--- a/shopyo/modules/box__ecommerce/shopman/templates/shopman/blocks/sidebar.html
+++ /dev/null
@@ -1,39 +0,0 @@
- {{
-sidebar_item(
-'Home',
-icon=info['fa-icon'],
-url=url_for('shopman.dashboard')
-)
-}}
-
-{{
-sidebar_item(
-'Delivery',
-icon='fa fa-paper-plane',
-url=url_for(info['module_name']+'.delivery')
-)
-}}
-
-{{
-sidebar_item(
-'Payment',
-icon='fa fa-money-check-alt',
-url=url_for(info['module_name']+'.payment')
-)
-}}
-
-{{
-sidebar_item(
-'Coupon',
-icon='fa fa-candy-cane',
-url=url_for(info['module_name']+'.coupon')
-)
-}}
-
-{{
-sidebar_item(
-'Orders',
-icon='fa fa-clipboard-list',
-url=url_for(info['module_name']+'.order')
-)
-}}
\ No newline at end of file
diff --git a/shopyo/modules/box__ecommerce/shopman/templates/shopman/coupon.html b/shopyo/modules/box__ecommerce/shopman/templates/shopman/coupon.html
deleted file mode 100644
index 73d1cde..0000000
--- a/shopyo/modules/box__ecommerce/shopman/templates/shopman/coupon.html
+++ /dev/null
@@ -1,92 +0,0 @@
-{% extends "base/module_base.html" %}
-
-{% set active_page = info['display_string']+' dashboard' %}
-
-{% block pagehead %}
-
-
-{% endblock %}
-
-
-
-
-{% block sidebar %}
- {%include info['module_name']+'/blocks/sidebar.html'%}
-{%endblock%}
-
-
-
-
-{% block content %}
-
-
-
-
-
-
- {{ form.string.label }}
- {{ form.string() }}
- {{ form.type.label }}
- {{ form.type() }}
- {{ form.value.label }}
- {{ form.value() }}
-
-
- {{ form.csrf_token }}
- submit
-
-
-
-
-
-
-
-
-
-
-
- String
- Type
- Value
-
-
-
- {%for coupon in coupons%}
-
-
-
-
-
- {{ form.string(value=coupon.string) }}
-
-
- {% set z = form.type.process_data(coupon.type) %}
- {{ form.type() }}
-
-
- {{ form.value(value=coupon.value) }}
-
-
-
-
- save
-
-
-
- delete
-
-
-
-
-
- {%endfor%}
-
-
-
-
-
-
-
-{% endblock %}
\ No newline at end of file
diff --git a/shopyo/modules/box__ecommerce/shopman/templates/shopman/dashboard.html b/shopyo/modules/box__ecommerce/shopman/templates/shopman/dashboard.html
deleted file mode 100644
index 36e17ec..0000000
--- a/shopyo/modules/box__ecommerce/shopman/templates/shopman/dashboard.html
+++ /dev/null
@@ -1,43 +0,0 @@
-{% extends "base/module_base.html" %}
-
-{% set active_page = info['display_string']+' dashboard' %}
-
-{% block pagehead %}
-
-
-{% endblock %}
-
-
-
-
-{% block sidebar %}
- {%include info['module_name']+'/blocks/sidebar.html'%}
-{%endblock%}
-
-
-
-
-{% block content %}
-
-
-
-
-
-
- {{ form.currency.label }}
- {% set z = form.currency.process_data(current_currency) %}
- {{ form.currency() }}
-
-
-
- {{ form.csrf_token }}
- submit
-
-
-
-
-
-
-{% endblock %}
\ No newline at end of file
diff --git a/shopyo/modules/box__ecommerce/shopman/templates/shopman/delivery.html b/shopyo/modules/box__ecommerce/shopman/templates/shopman/delivery.html
deleted file mode 100644
index b2b3ba2..0000000
--- a/shopyo/modules/box__ecommerce/shopman/templates/shopman/delivery.html
+++ /dev/null
@@ -1,86 +0,0 @@
-{% extends "base/module_base.html" %}
-
-{% set active_page = info['display_string']+' dashboard' %}
-
-{% block pagehead %}
-
-
-{% endblock %}
-
-
-
-
-{% block sidebar %}
- {%include info['module_name']+'/blocks/sidebar.html'%}
-{%endblock%}
-
-
-
-
-{% block content %}
-
-
-
-
-
-
- {{ form.option.label }}
- {{ form.option() }}
- {{ form.price.label }}
- {{ form.price() }}
-
-
- {{ form.csrf_token }}
- submit
-
-
-
-
-
-
-
-
-
-
-{% endblock %}
\ No newline at end of file
diff --git a/shopyo/modules/box__ecommerce/shopman/templates/shopman/email_status_change.html b/shopyo/modules/box__ecommerce/shopman/templates/shopman/email_status_change.html
deleted file mode 100644
index 77c3ce5..0000000
--- a/shopyo/modules/box__ecommerce/shopman/templates/shopman/email_status_change.html
+++ /dev/null
@@ -1,19 +0,0 @@
-
-
-
-
-
-
- Document
-
-
- Hi {{order.billing_detail.first_name}},
- Just dropping you an email to notify you that your order with reference {{order.get_ref()}}
- has changed status from {{previous_status}} to {{order.status}}.
- If you have any queries please do not hesistate to contact us.
- Regards,
- Your Team
-
-
-
-
\ No newline at end of file
diff --git a/shopyo/modules/box__ecommerce/shopman/templates/shopman/order.html b/shopyo/modules/box__ecommerce/shopman/templates/shopman/order.html
deleted file mode 100644
index f3e3d2b..0000000
--- a/shopyo/modules/box__ecommerce/shopman/templates/shopman/order.html
+++ /dev/null
@@ -1,46 +0,0 @@
-{% extends "base/module_base.html" %}
-{% set active_page = info['display_string']+' dashboard' %}
-{% block pagehead %}
-Orders
-
-{% endblock %}
-{% block sidebar %}
-{%include info['module_name']+'/blocks/sidebar.html'%}
-{%endblock%}
-{% block content %}
-
-
-
-
-
- ref
- time
- status
- customer name
- customer email
-
-
-
- {%for order in orders%}
-
-
- {{order.get_ref()}}
- {{order.get_std_formatted_time()}}
- {{order.status}}
- {{order.billing_detail.first_name}} {{order.billing_detail.last_name}}
- {{order.billing_detail.email}}
- view
-
-
- {%endfor%}
-
-
-
-
-
-
-
-{% endblock %}
-
-
diff --git a/shopyo/modules/box__ecommerce/shopman/templates/shopman/order_view.html b/shopyo/modules/box__ecommerce/shopman/templates/shopman/order_view.html
deleted file mode 100644
index 013bb11..0000000
--- a/shopyo/modules/box__ecommerce/shopman/templates/shopman/order_view.html
+++ /dev/null
@@ -1,109 +0,0 @@
-{% extends "base/module_base.html" %}
-{% set active_page = info['display_string']+' dashboard' %}
-{% block pagehead %}
-Orders
-
-{% endblock %}
-{% block sidebar %}
-{%include info['module_name']+'/blocks/sidebar.html'%}
-{%endblock%}
-{% block content %}
-
-
-
-
-
-
-
-
-
-{% endblock %}
-
-
diff --git a/shopyo/modules/box__ecommerce/shopman/templates/shopman/payment.html b/shopyo/modules/box__ecommerce/shopman/templates/shopman/payment.html
deleted file mode 100644
index 9d3ed5b..0000000
--- a/shopyo/modules/box__ecommerce/shopman/templates/shopman/payment.html
+++ /dev/null
@@ -1,86 +0,0 @@
-{% extends "base/module_base.html" %}
-
-{% set active_page = info['display_string']+' dashboard' %}
-
-{% block pagehead %}
-
-
-{% endblock %}
-
-
-
-
-{% block sidebar %}
- {%include info['module_name']+'/blocks/sidebar.html'%}
-{%endblock%}
-
-
-
-
-{% block content %}
-
-
-
-
-
-
- {{ form.name.label }}
- {{ form.name() }}
- {{ form.text.label }}
- {{ form.text() }}
-
-
- {{ form.csrf_token }}
- submit
-
-
-
-
-
-
-
-
-
-
-{% endblock %}
\ No newline at end of file
diff --git a/shopyo/modules/box__ecommerce/shopman/upload.py b/shopyo/modules/box__ecommerce/shopman/upload.py
deleted file mode 100644
index 2f8ea31..0000000
--- a/shopyo/modules/box__ecommerce/shopman/upload.py
+++ /dev/null
@@ -1,23 +0,0 @@
-from app import app
-
-from modules.box__ecommerce.shopman.models import DeliveryOption
-from modules.box__ecommerce.shopman.models import PaymentOption
-
-def upload_options():
- with app.app_context():
- d1 = DeliveryOption(
- option='home delivery',
- price='100'
- )
- d1.insert()
-
- p1 = PaymentOption(
- name='Cash',
- text='paid on delivery'
- )
- p1.insert()
-
-
-def upload():
- print('Uploading delivery and payment data ...')
- upload_options()
diff --git a/shopyo/modules/box__ecommerce/shopman/view.py b/shopyo/modules/box__ecommerce/shopman/view.py
deleted file mode 100644
index 39ad673..0000000
--- a/shopyo/modules/box__ecommerce/shopman/view.py
+++ /dev/null
@@ -1,304 +0,0 @@
-# from flask import render_template
-# from flask import url_for
-# from flask import redirect
-
-import json
-import os
-
-from flask import flash
-from flask import request
-
-from flask_login import login_required
-from flask_mailman import EmailMultiAlternatives
-
-from modules.box__default.settings.helpers import get_setting
-from shopyoapi.enhance import set_setting
-from shopyoapi.forms import flash_errors
-
-# #
-from shopyoapi.html import notify_success
-from shopyoapi.module import ModuleHelp
-
-from modules.box__ecommerce.product.models import Product
-from modules.box__ecommerce.shop.models import Order
-from modules.box__ecommerce.shopman.forms import CouponForm
-from modules.box__ecommerce.shopman.forms import CurrencyForm
-from modules.box__ecommerce.shopman.forms import DeliveryOptionForm
-from modules.box__ecommerce.shopman.forms import PaymentOptionForm
-from modules.box__default.auth.email import send_async_email
-
-from .models import Coupon
-from .models import DeliveryOption
-from .models import PaymentOption
-
-
-mhelp = ModuleHelp(__file__, __name__)
-
-globals()[mhelp.blueprint_str] = mhelp.blueprint
-
-module_blueprint = globals()[mhelp.blueprint_str]
-
-
-def get_product(barcode):
- return Product.query.get(barcode)
-
-
-@module_blueprint.route(mhelp.info["dashboard"])
-@login_required
-def dashboard():
- context = mhelp.context()
- form = CurrencyForm()
- with open(
- os.path.join(
- mhelp.dirpath,
- "data",
- "currency.json",
- )
- ) as f:
- currencies = json.load(f)
- currency_choices = [(c["cc"], c["name"]) for c in currencies]
- form.currency.choices = currency_choices
-
- context.update({"form": form, "current_currency": get_setting("CURRENCY")})
- return mhelp.render("dashboard.html", **context)
-
-
-@module_blueprint.route("currency/set", methods=["GET", "POST"])
-@login_required
-def set_currency():
- if request.method == "POST":
- form = CurrencyForm()
- set_setting("CURRENCY", form.currency.data)
- return mhelp.redirect_url("shopman.dashboard")
-
-
-@module_blueprint.route("/delivery" + mhelp.info["dashboard"])
-@login_required
-def delivery():
- context = mhelp.context()
- form = DeliveryOptionForm()
- options = DeliveryOption.query.all()
-
- context.update({"form": form, "options": options})
- return mhelp.render("delivery.html", **context)
-
-
-@module_blueprint.route("/delivery/option/add", methods=["GET", "POST"])
-@login_required
-def delivery_add_option():
- if request.method == "POST":
- form = DeliveryOptionForm()
- if form.validate_on_submit():
- toadd = DeliveryOption()
- toadd.option = form.option.data
- toadd.price = float(form.price.data)
- toadd.insert()
- flash(notify_success("Option Added!"))
- return mhelp.redirect_url("shopman.delivery")
- else:
- flash_errors(form)
- return mhelp.redirect_url("shopman.delivery")
-
-
-@module_blueprint.route("/delivery/option/update", methods=["GET", "POST"])
-@login_required
-def delivery_option_update():
- if request.method == "POST":
-
- opt_id = request.form["id"]
- option_data = request.form["option"]
- price_data = request.form["price"]
-
- option = DeliveryOption.query.get(opt_id)
- option.option = option_data
- option.price = price_data
- option.update()
-
- flash(notify_success("Option updated!"))
- return mhelp.redirect_url("shopman.delivery")
-
-
-@module_blueprint.route("/delivery/option//delete", methods=["GET"])
-@login_required
-def delivery_option_delete(option_id):
- option = DeliveryOption.query.get(option_id)
- option.delete()
-
- flash(notify_success("Option Deleted!"))
- return mhelp.redirect_url("shopman.delivery")
-
-
-@module_blueprint.route("/payment/dashboard", methods=["GET", "POST"])
-@login_required
-def payment():
- context = mhelp.context()
- form = PaymentOptionForm()
- options = PaymentOption.query.all()
-
- context.update({"form": form, "options": options})
- return mhelp.render("payment.html", **context)
-
-
-@module_blueprint.route("/payment/option/add", methods=["GET", "POST"])
-@login_required
-def payment_add_option():
- if request.method == "POST":
- form = PaymentOptionForm()
- if form.validate_on_submit():
- toadd = PaymentOption()
- toadd.name = form.name.data
- toadd.text = form.text.data
- toadd.insert()
- flash(notify_success("Option Added!"))
- return mhelp.redirect_url("shopman.payment")
- else:
- flash_errors(form)
- return mhelp.redirect_url("shopman.payment")
-
-
-@module_blueprint.route("/payment/option/update", methods=["GET", "POST"])
-@login_required
-def payment_option_update():
- if request.method == "POST":
-
- opt_id = request.form["id"]
- option_data = request.form["name"]
- text_data = request.form["text"]
-
- option = PaymentOption.query.get(opt_id)
- option.name = option_data
- option.text = text_data
- option.update()
-
- flash(notify_success("Option updated!"))
- return mhelp.redirect_url("shopman.payment")
-
-
-@module_blueprint.route("/payment/option//delete", methods=["GET"])
-@login_required
-def payment_option_delete(option_id):
- option = PaymentOption.query.get(option_id)
- option.delete()
-
- flash(notify_success("Option Deleted!"))
- return mhelp.redirect_url("shopman.payment")
-
-
-@module_blueprint.route("/coupon/dashboard", methods=["GET", "POST"])
-@login_required
-def coupon():
- form = CouponForm()
- coupons = Coupon.query.all()
- context = mhelp.context()
- context.update({"form": form, "coupons": coupons})
- return mhelp.render("coupon.html", **context)
-
-
-@module_blueprint.route("/coupon/add", methods=["GET", "POST"])
-@login_required
-def coupon_add():
- if request.method == "POST":
- form = CouponForm()
- if form.validate_on_submit():
- toadd = Coupon()
- toadd.string = form.string.data
- toadd.type = form.type.data
- toadd.value = form.value.data
- toadd.insert()
- flash(notify_success("Coupon Added!"))
- return mhelp.redirect_url("shopman.coupon")
- else:
- flash_errors(form)
- return mhelp.redirect_url("shopman.coupon")
-
-
-@module_blueprint.route("/coupon//delete", methods=["GET"])
-@login_required
-def coupon_delete(coupon_id):
- coupon = Coupon.query.get(coupon_id)
- coupon.delete()
-
- flash(notify_success("Coupon Deleted!"))
- return mhelp.redirect_url("shopman.coupon")
-
-
-@module_blueprint.route("/coupon/update", methods=["GET", "POST"])
-@login_required
-def coupon_update():
- if request.method == "POST":
- form = CouponForm()
- if form.validate_on_submit:
- coupon_id = request.form["id"]
- coupon = Coupon.query.get(coupon_id)
- coupon.string = form.string.data
- coupon.type = form.type.data
- coupon.value = form.value.data
- coupon.update()
-
- flash(notify_success("Coupon updated!"))
- return mhelp.redirect_url("shopman.coupon")
- else:
- flash_errors(form)
- return mhelp.redirect_url("shopman.coupon")
-
-
-@module_blueprint.route("/order/dashboard", methods=["GET", "POST"])
-@login_required
-def order():
- orders = Order.query.all()
- context = mhelp.context()
- context.update({"dir": dir, "orders": orders, "get_product": get_product})
- return mhelp.render("order.html", **context)
-
-
-@module_blueprint.route("/order//delete", methods=["GET", "POST"])
-@login_required
-def order_delete(order_id):
- order = Order.query.get(order_id)
- order.delete()
- return mhelp.redirect_url("shopman.order")
-
-
-@module_blueprint.route("/order//view/dashboard", methods=["GET", "POST"])
-@login_required
-def order_view(order_id):
- order = Order.query.get(order_id)
- context = mhelp.context()
- context.update({
- "dir": dir,
- "order": order
- })
- return mhelp.render("order_view.html", **context)
-
-
-@module_blueprint.route("/order//status", methods=["POST"])
-@login_required
-def order_status_change(order_id):
- if request.method == 'POST':
- order_status = request.form['order_status']
- order = Order.query.get(order_id)
- valid_status = ['pending', 'processing', 'shipped', 'cancelled', 'refunded']
- if order_status not in valid_status:
- return 'unknown order status'
- previous_status = order.status
-
- order.status = order_status
- order.update()
-
- context = mhelp.context()
- context.update({
- "previous_status": previous_status,
- "order": order
- })
- new_line = '\n'
- subject, from_email, to = 'Title', 'from@example.com', f'{order.billing_detail.email}'
- text_content = f'Hi {order.billing_detail.first_name},{new_line}Just dropping you '\
- f'an email to notify you that your order with reference {order.get_ref()} has changed '\
- f'status from {previous_status} to {order.status}.{new_line}If you have any queries '\
- f'please do not hesistate to contact us.{new_line}Regards,{new_line}Your Team'
- html_content = mhelp.render("email_status_change.html", **context)
- msg = EmailMultiAlternatives(subject, text_content, from_email, [to])
- msg.attach_alternative(html_content, "text/html")
- msg.send()
- flash(notify_success('Order Updated'))
- return mhelp.redirect_url('shopman.order_view', order_id=order_id)
\ No newline at end of file
diff --git a/shopyo/modules/resource/forms.py b/shopyo/modules/resource/forms.py
deleted file mode 100644
index e69de29..0000000
diff --git a/shopyo/modules/resource/info.json b/shopyo/modules/resource/info.json
deleted file mode 100644
index 82f51f4..0000000
--- a/shopyo/modules/resource/info.json
+++ /dev/null
@@ -1,12 +0,0 @@
-{
- "display_string": "Files",
- "module_name":"resource",
- "type": "hide",
- "fa-icon": "fa fa-store",
- "url_prefix": "/resource",
- "author": {
- "name":"",
- "website":"",
- "mail":""
- }
-}
\ No newline at end of file
diff --git a/shopyo/modules/resource/models.py b/shopyo/modules/resource/models.py
deleted file mode 100644
index 3bd9e65..0000000
--- a/shopyo/modules/resource/models.py
+++ /dev/null
@@ -1,61 +0,0 @@
-import datetime
-
-from shopyoapi.init import db
-
-
-class Image(db.Model):
- __tablename__ = "images"
- id = db.Column(db.Integer, primary_key=True)
- filename = db.Column(db.String(50), nullable=False)
- thumbnail = db.Column(db.String(50), nullable=False)
- file_size = db.Column(db.Integer, nullable=False)
- file_width = db.Column(db.Integer, nullable=False)
- file_height = db.Column(db.Integer, nullable=False)
- create_date = db.Column(
- db.DateTime, default=datetime.datetime.now(), nullable=False
- )
-
- def insert(self):
- db.session.add(self)
- db.session.commit()
-
- def update(self):
- db.session.commit()
-
- def delete(self):
- db.session.delete(self)
- db.session.commit()
-
- # def getImage(image_id):
- # return Images.query.filter_by(id=image_id).first()
-
-
-class Resource(db.Model):
- __tablename__ = "resources"
- id = db.Column(db.Integer, primary_key=True)
- filename = db.Column(db.String(50), nullable=False)
- type = db.Column(db.String(50), nullable=False)
- category = db.Column(db.String(50), nullable=False)
-
- created_date = db.Column(
- db.DateTime, default=datetime.datetime.now(), nullable=False
- )
-
- #
- product_id = db.Column(db.Integer, db.ForeignKey('product.id'),
- nullable=True)
- category_id = db.Column(db.Integer, db.ForeignKey('categories.id'),
- nullable=False)
- subcategory_id = db.Column(db.Integer, db.ForeignKey('subcategories.id'),
- nullable=True)
-
- def insert(self):
- db.session.add(self)
- db.session.commit()
-
- def update(self):
- db.session.commit()
-
- def delete(self):
- db.session.delete(self)
- db.session.commit()
diff --git a/shopyo/modules/resource/templates/resource/blocks/sidebar.html b/shopyo/modules/resource/templates/resource/blocks/sidebar.html
deleted file mode 100644
index e69de29..0000000
diff --git a/shopyo/modules/resource/view.py b/shopyo/modules/resource/view.py
deleted file mode 100644
index 60865ea..0000000
--- a/shopyo/modules/resource/view.py
+++ /dev/null
@@ -1,155 +0,0 @@
-import json
-import os
-
-# from flask import render_template
-from flask import Blueprint
-from flask import current_app
-
-# from flask import redirect
-from flask import send_from_directory
-
-# from flask import url_for
-
-from flask_login import login_required
-from PIL import Image as PILimage
-
-# from shopyoapi.enhance import get_setting
-# from shopyoapi.file import delete_file
-
-# from modules.box__ecommerce.product.models import Product
-from modules.resource.models import Image
-
-# from modules.resource.models import Resource
-
-# from flask import flash
-# from flask import request#
-# from shopyoapi.html import notify_success
-# from shopyoapi.forms import flash_errors
-
-
-dirpath = os.path.dirname(os.path.abspath(__file__))
-module_info = {}
-
-with open(dirpath + "/info.json") as f:
- module_info = json.load(f)
-
-globals()["{}_blueprint".format(module_info["module_name"])] = Blueprint(
- "{}".format(module_info["module_name"]),
- __name__,
- template_folder="templates",
- url_prefix=module_info["url_prefix"],
-)
-
-
-module_blueprint = globals()["{}_blueprint".format(module_info["module_name"])]
-
-
-@module_blueprint.route("/")
-def index():
- return module_info["display_string"]
-
-
-@module_blueprint.route(
- "/theme/front//styles.css", methods=["GET"]
-)
-def active_front_theme_css(active_theme):
- theme_dir = os.path.join(
- current_app.config["BASE_DIR"],
- "static",
- "themes",
- "front",
- active_theme,
- )
- # return theme_dir
- return send_from_directory(theme_dir, "styles.css")
-
-
-@module_blueprint.route(
- "/theme/back//styles.css", methods=["GET"]
-)
-def active_back_theme_css(active_theme):
- theme_dir = os.path.join(
- current_app.config["BASE_DIR"],
- "static",
- "themes",
- "back",
- active_theme,
- )
- # return theme_dir
- return send_from_directory(theme_dir, "styles.css")
-
-
-@module_blueprint.route("/product/", methods=["GET"])
-def product_image(filename):
-
- # return theme_dir
- if filename == "default":
- return send_from_directory(
- os.path.join(current_app.config["BASE_DIR"], "static", "default"),
- "default_product.jpg",
- )
- return send_from_directory(
- current_app.config["UPLOADED_PRODUCTPHOTOS_DEST"], filename
- )
-
-
-# Handles javascript image uploads from tinyMCE
-@module_blueprint.route("/upload/tinymce/image", methods=["POST"])
-@login_required
-def upload_tinymce_image():
- # Kevin Foong
- file = request.files.get("file")
- if file:
- filename = file.filename.lower()
- fn, ext = filename.split(".")
- # truncate filename (excluding extension) to 30 characters
- fn = fn[:30]
- filename = fn + "." + ext
- if ext in ["jpg", "gif", "png", "jpeg"]:
- try:
- # everything looks good, save file
- img_fullpath = os.path.join(
- current_app.config["UPLOADED_PATH_IMAGE"], filename
- )
- file.save(img_fullpath)
- # get the file size to save to db
- file_size = os.stat(img_fullpath).st_size
- size = 160, 160
- # read image into pillow
- im = PILimage.open(img_fullpath)
- # get image dimension to save to db
- file_width, file_height = im.size
- # convert to thumbnail
- im.thumbnail(size)
- thumbnail = fn + "-thumb.jpg"
- tmb_fullpath = os.path.join(
- current_app.config["UPLOADED_PATH_THUMB"], thumbnail
- )
- # PNG is index while JPG needs RGB
- if not im.mode == "RGB":
- im = im.convert("RGB")
- # save thumbnail
- im.save(tmb_fullpath, "JPEG")
-
- # save to db
- img = Image(
- filename=filename,
- thumbnail=thumbnail,
- file_size=file_size,
- file_width=file_width,
- file_height=file_height,
- )
- db.session.add(img)
- db.session.commit()
- except IOError:
- output = make_response(404)
- output.headers["Error"] = (
- "Cannot create thumbnail for " + filename
- )
- return output
- return jsonify({"location": filename})
-
- # fail, image did not upload
- output = make_response(404)
- output.headers["Error"] = "Filename needs to be JPG, JPEG, GIF or PNG"
- return output
diff --git a/shopyo/modules/www/forms.py b/shopyo/modules/www/forms.py
deleted file mode 100644
index e69de29..0000000
diff --git a/shopyo/modules/www/info.json b/shopyo/modules/www/info.json
deleted file mode 100644
index 7b694be..0000000
--- a/shopyo/modules/www/info.json
+++ /dev/null
@@ -1,12 +0,0 @@
-{
- "display_string": "Www",
- "module_name":"www",
- "type": "show",
- "fa-icon": "fa fa-globe-asia",
- "url_prefix": "/",
- "author": {
- "name":"",
- "website":"",
- "mail":""
- }
-}
\ No newline at end of file
diff --git a/shopyo/modules/www/models.py b/shopyo/modules/www/models.py
deleted file mode 100644
index e69de29..0000000
diff --git a/shopyo/modules/www/templates/www/blocks/sidebar.html b/shopyo/modules/www/templates/www/blocks/sidebar.html
deleted file mode 100644
index e69de29..0000000
diff --git a/shopyo/modules/www/view.py b/shopyo/modules/www/view.py
deleted file mode 100644
index 2c165a6..0000000
--- a/shopyo/modules/www/view.py
+++ /dev/null
@@ -1,48 +0,0 @@
-import json
-import os
-
-# from flask import url_for
-# from flask import redirect
-# from flask import flash
-# from flask import request
-from flask import Blueprint
-from flask import redirect
-from flask import url_for
-
-#
-# from shopyoapi.html import notify_success
-# from shopyoapi.forms import flash_errors
-# from shopyoapi.enhance import get_active_theme_dir
-# from shopyoapi.enhance import get_setting
-
-# from modules.box__ecommerce.shop.helpers import get_cart_data
-
-dirpath = os.path.dirname(os.path.abspath(__file__))
-module_info = {}
-
-with open(dirpath + "/info.json") as f:
- module_info = json.load(f)
-
-
-globals()["{}_blueprint".format(module_info["module_name"])] = Blueprint(
- "{}".format(module_info["module_name"]),
- __name__,
- template_folder="",
- url_prefix=module_info["url_prefix"],
-)
-
-
-module_blueprint = globals()["{}_blueprint".format(module_info["module_name"])]
-
-
-@module_blueprint.route("/")
-def index():
- # cant be defined above but must be manually set each time
- # active_theme_dir = os.path.join(
- # dirpath, "..", "..", "themes", get_setting("ACTIVE_FRONT_THEME")
- # )
- # module_blueprint.template_folder = active_theme_dir
-
- # return str(module_blueprint.template_folder)
-
- return redirect(url_for("shop.homepage"))
diff --git a/shopyo/pyproject.toml b/shopyo/pyproject.toml
deleted file mode 100644
index 0cb8cc4..0000000
--- a/shopyo/pyproject.toml
+++ /dev/null
@@ -1,22 +0,0 @@
-[tool.black]
-line-length = 79
-include = '\.pyi?$'
-exclude = '''
-
-(
- /(
- \.eggs # exclude a few common directories in the
- | \.git # root of the project
- | \.hg
- | \.mypy_cache
- | \.tox
- | \.venv
- | _build
- | buck-out
- | build
- | dist
- )/
- | foo.py # also separately exclude a file named foo.py in
- # the root of the project
-)
-'''
\ No newline at end of file
diff --git a/shopyo/requirements.txt b/shopyo/requirements.txt
deleted file mode 100644
index 1d609f0..0000000
--- a/shopyo/requirements.txt
+++ /dev/null
@@ -1,13 +0,0 @@
-Flask==1.1.2
-Flask-SQLAlchemy==2.4.4
-flask-marshmallow==0.14.0
-email-validator==1.1.1
-Flask-Login==0.5.0
-Flask-Migrate==2.5.3
-Flask-Reuploaded==0.3.2
-Flask-WTF==0.14.3
-marshmallow==3.8.0
-marshmallow-sqlalchemy==0.23.1
-requests==2.24.0
-Pillow==8.0.1
-shopyo
diff --git a/shopyo/setup.cfg b/shopyo/setup.cfg
deleted file mode 100644
index 3163d50..0000000
--- a/shopyo/setup.cfg
+++ /dev/null
@@ -1,11 +0,0 @@
-[isort]
-profile = black
-default_section = THIRDPARTY
-known_flask = flask
-known_shopyoapi = shopyoapi
-known_modules = modules
-force_single_line = True
-sections = FUTURE,STDLIB,FLASK,THIRDPARTY,FIRSTPARTY,SHOPYOAPI,MODULES,LOCALFOLDER
-
-[flake8]
-ignore = E501
\ No newline at end of file
diff --git a/shopyo/shopyoapi/__init__.py b/shopyo/shopyoapi/__init__.py
deleted file mode 100644
index e69de29..0000000
diff --git a/shopyo/shopyoapi/assets.py b/shopyo/shopyoapi/assets.py
deleted file mode 100644
index efdcc0d..0000000
--- a/shopyo/shopyoapi/assets.py
+++ /dev/null
@@ -1,11 +0,0 @@
-from flask import url_for
-from flask import current_app
-
-
-def get_static(boxormodule, filename):
- if current_app.config["DEBUG"] == True:
- return url_for("devstatic", boxormodule=boxormodule, filename=filename)
- else:
- return url_for(
- "static", filename="modules/{}/{}".format(boxormodule, filename)
- )
diff --git a/shopyo/shopyoapi/cmd.py b/shopyo/shopyoapi/cmd.py
deleted file mode 100644
index 7e9a339..0000000
--- a/shopyo/shopyoapi/cmd.py
+++ /dev/null
@@ -1,407 +0,0 @@
-"""
-commandline utilities functions
-"""
-import os
-import re
-import subprocess
-import sys
-import importlib
-
-from shopyoapi.init import db
-from shopyoapi.cmd_helper import tryrmcache
-from shopyoapi.cmd_helper import tryrmfile
-from shopyoapi.cmd_helper import tryrmtree
-from shopyoapi.path import root_path
-from shopyoapi.path import static_path
-from shopyoapi.path import modules_path
-from shopyoapi.file import trymkdir
-from shopyoapi.file import trymkfile
-from shopyoapi.file import get_folders
-from shopyoapi.file import trycopytree
-
-
-def clean(app):
- """
- Deletes shopyo.db and migrations/ if present in current working directory.
- Deletes all __pycache__ folders starting from current working directory
- all the way to leaf directory.
-
- Parameters
- ----------
- - app: flask app that that need to be cleaned
-
- Returns
- -------
- None
- ...
-
- """
- SEP_CHAR = "#"
- SEP_NUM = 23
-
- print(SEP_CHAR * SEP_NUM, end="\n\n")
- print("Cleaning...")
-
- # getting app context creates the shopyo.db file even if it is not present
- with app.test_request_context():
- db.drop_all()
- db.engine.execute("DROP TABLE IF EXISTS alembic_version;")
- print("[x] all tables dropped")
-
- tryrmcache(os.getcwd())
- tryrmfile(os.path.join(os.getcwd(), "shopyo.db"))
- tryrmtree(os.path.join(os.getcwd(), "migrations"))
-
-
-def initialise():
- """
- Create db, migrate, adds default users, add settings
-
- Parameters
- ----------
-
-
- Returns
- -------
- None
-
-
- """
- SEP_CHAR = "#"
- SEP_NUM = 23
-
- print("Creating Db")
- print(SEP_CHAR * SEP_NUM, end="\n\n")
- subprocess.run(
- [sys.executable, "manage.py", "db", "init"], stdout=subprocess.PIPE
- )
-
- print("Migrating")
- print(SEP_CHAR * SEP_NUM, end="\n\n")
- subprocess.run(
- [sys.executable, "manage.py", "db", "migrate"], stdout=subprocess.PIPE
- )
- subprocess.run(
- [sys.executable, "manage.py", "db", "upgrade"], stdout=subprocess.PIPE
- )
-
- print("Collecting static")
- print(SEP_CHAR * SEP_NUM, end="\n\n")
- subprocess.run(
- [sys.executable, "manage.py", "collectstatic"], stdout=subprocess.PIPE
- )
-
- # Uploads
- print("Uploads")
- print(SEP_CHAR * SEP_NUM, end="\n\n")
-
- for folder in os.listdir(os.path.join(root_path, "modules")):
- if folder.startswith("__"): # ignore __pycache__
- continue
- if folder.startswith("box__"):
- # boxes
- for sub_folder in os.listdir(
- os.path.join(root_path, "modules", folder)
- ):
- if sub_folder.startswith("__"): # ignore __pycache__
- continue
- elif sub_folder.endswith(".json"): # box_info.json
- continue
-
- try:
- upload = importlib.import_module(
- "modules.{}.{}.upload".format(folder, sub_folder)
- )
- upload.upload()
- except ImportError as e:
- # print(e)
- pass
- else:
- # apps
- try:
- upload = importlib.import_module(
- "modules.{}.upload".format(folder)
- )
- upload.upload()
- except ImportError as e:
- # print(e)
- pass
-
- print("Done!")
-
-
-def create_module(modulename, base_path=None):
- """
- creates module with the structure defined in the modules section in docs
-
- Parameters
- ----------
- modulename: str
- name of module, in alphanumeric-underscore
-
- Returns
- -------
- None
-
-
- """
-
- if bool(re.match(r"^[A-Za-z0-9_]+$", modulename)) is False:
- print(
- "Error: modulename is not valid, please use alphanumeric\
- and underscore only"
- )
- sys.exit()
- print(f"creating module: {modulename}")
- if not base_path:
- base_path = f"modules/{modulename}"
- trymkdir(base_path)
- trymkdir(f"{base_path}/templates")
- trymkdir(f"{base_path}/templates/{modulename}")
- trymkdir(f"{base_path}/tests")
- trymkdir(f"{base_path}/static")
- test_func_content = """
-Please add your functional tests to this file.
-"""
- test_model_content = """
-Please add your models tests to this file.
-"""
- trymkfile(
- f"{base_path}/tests/test_{modulename}_functional.py", test_func_content
- )
- trymkfile(
- f"{base_path}/tests/test_{modulename}_models.py", test_model_content
- )
- view_content = """
-from shopyoapi.module import ModuleHelp
-# from flask import render_template
-# from flask import url_for
-# from flask import redirect
-# from flask import flash
-# from flask import request
-
-# from shopyoapi.html import notify_success
-# from shopyoapi.forms import flash_errors
-
-mhelp = ModuleHelp(__file__, __name__)
-globals()[mhelp.blueprint_str] = mhelp.blueprint
-module_blueprint = globals()[mhelp.blueprint_str]
-
-@module_blueprint.route("/")
-def index():
- return mhelp.info['display_string']
-
-# If "dashboard": "/dashboard" is set in info.json
-#
-# @module_blueprint.route("/dashboard", methods=["GET"])
-# def dashboard():
-
-# context = mhelp.context()
-
-# context.update({
-
-# })
-# return mhelp.render('dashboard.html', **context)
-"""
- trymkfile(f"{base_path}/view.py", view_content)
- trymkfile(f"{base_path}/forms.py", "")
- trymkfile(f"{base_path}/models.py", "")
- info_json_content = """{{
- "display_string": "{0}",
- "module_name":"{1}",
- "type": "show",
- "fa-icon": "fa fa-store",
- "url_prefix": "/{1}",
- "author": {{
- "name":"",
- "website":"",
- "mail":""
- }}
-}}""".format(
- modulename.capitalize(), modulename
- )
- trymkfile(f"{base_path}/info.json", info_json_content)
-
- trymkdir(f"{base_path}/templates/{modulename}/blocks")
- trymkfile(f"{base_path}/templates/{modulename}/blocks/sidebar.html", "")
- dashboard_file_content = """
-{% extends "base/module_base.html" %}
-{% set active_page = info['display_string']+' dashboard' %}
-{% block pagehead %}
-
-
-{% endblock %}
-{% block sidebar %}
-{% include info['module_name']+'/blocks/sidebar.html' %}
-{% endblock %}
-{% block content %}
-
-
-
-{% endblock %}
-"""
- trymkfile(
- f"{base_path}/templates/{modulename}/dashboard.html",
- dashboard_file_content,
- )
- global_file_content = """
-available_everywhere = {
-
-}
-"""
- trymkfile(f"{base_path}/global.py", global_file_content)
-
-
-def create_box(name):
- """
- creates box with box_info.json
-
- Parameters
- ----------
- name: str
- name of box, in alphanumeric-underscore
-
- Returns
- -------
- None
-
-
- """
- base_path = f"modules/box__{name}"
- if os.path.exists(base_path):
- print(f"Box {base_path} exists!")
- else:
- trymkdir(base_path)
- info_json_content = """{{
- "display_string": "{0}",
- "box_name":"{1}",
- "author": {{
- "name":"",
- "website":"",
- "mail":""
- }}
- }}""".format(
- name.capitalize(), name
- )
- trymkfile(f"{base_path}/box_info.json", info_json_content)
-
-
-def create_module_in_box(modulename, boxname):
- """
- creates module with the structure defined in the modules section in docs in
- a box
-
- Parameters
- ----------
- modulename: str
- name of module, in alphanumeric-underscore
-
- boxname: str
- name of box, in alphanumeric-underscore
-
- Returns
- -------
- None
-
-
- """
- box_path = os.path.join("modules", boxname)
- module_path = os.path.join("modules", boxname, modulename)
-
- if not boxname.startswith("box__"):
- print(f"Invalid box {boxname}. Boxes should start with box__")
-
- elif not os.path.exists(box_path):
- print(f"Box {box_path} does not exists!")
- available_boxes = "\n* ".join(
- [f for f in os.listdir("modules/") if f.startswith("box__")]
- )
- print(f"Available boxes: \n* {available_boxes}")
-
- elif os.path.exists(module_path):
- print(f"Module {module_path} exists")
-
- else:
- print(f"Creating module {module_path}")
- create_module(modulename, base_path=module_path)
-
-
-def collectstatic(target_module=None):
- """
- Copies module/static into /static/modules/module
- in static it becomes like
- static/
- modules/
- box_something/
- modulename
- modulename2
-
- Parameters
- ----------
- target_module: str
- name of module, in alphanumeric-underscore,
- supports module or box__name/module
-
- Returns
- -------
- None
-
-
- """
- modules_path_in_static = os.path.join(static_path, "modules")
-
- if target_module is None:
- # clear modules dir if exists.
- tryrmtree(modules_path_in_static)
- # look for static folders in all project
- for folder in get_folders(modules_path):
- if folder.startswith("box__"):
- box_path = os.path.join(modules_path, folder)
- for subfolder in get_folders(box_path):
- module_name = subfolder
- module_static_folder = os.path.join(
- box_path, subfolder, "static"
- )
- if not os.path.exists(module_static_folder):
- continue
- module_in_static_dir = os.path.join(
- modules_path_in_static, folder, module_name
- )
- trycopytree(module_static_folder, module_in_static_dir)
- else:
- module_name = folder
- module_static_folder = os.path.join(
- modules_path, folder, "static"
- )
- if not os.path.exists(module_static_folder):
- continue
- module_in_static_dir = os.path.join(
- modules_path_in_static, module_name
- )
- trycopytree(module_static_folder, module_in_static_dir)
- else:
- # copy only module's static folder
- module_static_folder = os.path.join(
- modules_path, target_module, "static"
- )
- if os.path.exists(module_static_folder):
- if target_module.startswith("box__"):
- if "/" in target_module:
- module_name = target_module.split("/")[1]
- else:
- print("Could not understand module name")
- sys.exit()
- else:
- module_name = target_module
- module_in_static_dir = os.path.join(
- modules_path_in_static, module_name
- )
- tryrmtree(module_in_static_dir)
- trycopytree(module_static_folder, module_in_static_dir)
- else:
- print("Module does not exist")
diff --git a/shopyo/shopyoapi/cmd_helper.py b/shopyo/shopyoapi/cmd_helper.py
deleted file mode 100644
index d5c854f..0000000
--- a/shopyo/shopyoapi/cmd_helper.py
+++ /dev/null
@@ -1,77 +0,0 @@
-"""
-Helper utility functions for commandline api
-"""
-import sys
-import os
-from shutil import rmtree
-
-
-def tryrmcache(dir_name):
- """
- removes all __pycache__ starting from directory dir_name
- all the way to leaf directory
-
- Args:
- dir_name(string) : path from where to start removing pycache
- """
- directory_list = list()
- is_removed = False
- for root, dirs, files in os.walk(dir_name, topdown=False):
- for name in dirs:
- directory_list.append(os.path.join(root, name))
- if name == "__pycache__":
- rmtree(os.path.join(root, name))
- is_removed = True
-
- if is_removed:
- print("[x] __pycache__ successfully deleted")
- else:
- print("[ ] __pycache__ doesn't exist", file=sys.stderr)
-
- return is_removed
-
-
-def tryrmfile(path):
- """
- tries to remove file path and output message to stdin or stderr.
- Path must point to a file
-
- Args:
- path (string): path of the file to remove
-
- Returns:
- bool: returns true upon successful removal false otherwise
- """
- try:
- os.remove(path)
- print(f"[x] file '{path}' successfully deleted")
- return True
- except OSError as e:
- print(
- "[ ] unable to delete %s: %s." % (e.filename, e.strerror),
- file=sys.stderr,
- )
- return False
-
-
-def tryrmtree(path):
- """
- Tries to removes an entire directory tree. Path must point to
- a directory. Outputs message to stdin or stderr
-
- Args:
- path (string): directory path to be removed
-
- Returns:
- bool: returns true upon successful return false otherwise
- """
- try:
- rmtree(path)
- print(f"[x] folder '{path}' successfully deleted")
- return True
- except OSError as e:
- print(
- "[ ] unable to delete %s: %s." % (e.filename, e.strerror),
- file=sys.stderr,
- )
- return False
diff --git a/shopyo/shopyoapi/database.py b/shopyo/shopyoapi/database.py
deleted file mode 100644
index 0c6a9a2..0000000
--- a/shopyo/shopyoapi/database.py
+++ /dev/null
@@ -1,38 +0,0 @@
-import importlib
-import os
-
-
-def autoload_models():
- """
- Auto imports models from modules/ in desired file. Used so that
- flask_migrate does not miss models when migrating
-
- Returns
- -------
- None
- """
- print("Auto importing models")
- for folder in os.listdir("modules"):
- if folder.startswith("__"):
- continue
- elif folder.startswith("box__"):
- for sub_folder in os.listdir(os.path.join("modules", folder)):
- if sub_folder.startswith("__"): # ignore __pycache__
- continue
- elif sub_folder.endswith(".json"): # box_info.json
- continue
- try:
- to_load_submodel = "modules.{}.{}.models".format(
- folder, sub_folder
- )
- importlib.import_module(to_load_submodel)
- print("[x]", "imported", to_load_submodel)
- except Exception as e:
- print("[ ]", e)
- else:
- try:
- to_load = "modules.{}.models".format(folder)
- importlib.import_module(to_load)
- print("[x]", "imported", to_load)
- except Exception as e:
- print("[ ]", e)
diff --git a/shopyo/shopyoapi/email.py b/shopyo/shopyoapi/email.py
deleted file mode 100644
index e69de29..0000000
diff --git a/shopyo/shopyoapi/forms.py b/shopyo/shopyoapi/forms.py
deleted file mode 100644
index 9de9f9a..0000000
--- a/shopyo/shopyoapi/forms.py
+++ /dev/null
@@ -1,26 +0,0 @@
-from flask import flash
-
-from shopyoapi.html import notify_warning
-
-
-def flash_errors(form):
- """
- Auto flash errors from WKHtml forms
- Reqwires base module or similar notification
- mechanism
-
- Parameters
- ----------
- form: WKHtml form
-
- Returns
- -------
- None
- """
- for field, errors in form.errors.items():
- for error in errors:
- error_msg = u"Error in the %s field - %s" % (
- getattr(form, field).label.text,
- error,
- )
- flash(notify_warning(error_msg))
diff --git a/shopyo/shopyoapi/html.py b/shopyo/shopyoapi/html.py
deleted file mode 100644
index facaf14..0000000
--- a/shopyo/shopyoapi/html.py
+++ /dev/null
@@ -1,64 +0,0 @@
-"""
-Used on flash
-flash(notify_success('mail sent!'))
-"""
-
-
-def notify(message, alert_type="primary", fading=False):
- """
- Used with flash
- flash(notify('blabla'))
-
- Parameters
- ----------
- message: str
- message to be displayed
-
- alert_type: str
- bootstrap class
-
- Returns
- -------
- None
- """
- alert = """
-
- {message}
-
-
- ×
-
-
- """.format(
- message=message, alert_type=alert_type
- )
-
- scriptFade = """
-
- """
-
- if fading:
- return alert + scriptFade
- else:
- return alert
-
-
-def notify_success(message):
- return notify(message, alert_type="success")
-
-
-def notify_danger(message):
- return notify(message, alert_type="danger")
-
-
-def notify_warning(message):
- return notify(message, alert_type="warning")
-
-
-def notify_info(message):
- return notify(message, alert_type="info")
diff --git a/shopyo/shopyoapi/init.py b/shopyo/shopyoapi/init.py
deleted file mode 100644
index e720f57..0000000
--- a/shopyo/shopyoapi/init.py
+++ /dev/null
@@ -1,19 +0,0 @@
-"""
-All initialisations like db = SQLAlchemy in this file
-"""
-
-from flask_login import LoginManager
-from flask_marshmallow import Marshmallow
-from flask_migrate import Migrate
-from flask_sqlalchemy import SQLAlchemy
-from flask_uploads import IMAGES
-from flask_uploads import UploadSet
-
-db = SQLAlchemy()
-ma = Marshmallow()
-login_manager = LoginManager()
-migrate = Migrate()
-
-productphotos = UploadSet("productphotos", IMAGES)
-categoryphotos = UploadSet("categoryphotos", IMAGES)
-subcategoryphotos = UploadSet("subcategoryphotos", IMAGES)
diff --git a/shopyo/shopyoapi/models.py b/shopyo/shopyoapi/models.py
deleted file mode 100644
index 7003904..0000000
--- a/shopyo/shopyoapi/models.py
+++ /dev/null
@@ -1,105 +0,0 @@
-"""
-DB-related helper utilities. Taken from database.py
-file at https://github.com/cookiecutter-flask/cookiecutter-flask
-"""
-from shopyoapi.init import db
-
-
-class CRUDMixin:
- """
- Mixin that adds convenience methods for
- CRUD (create, read, update, delete) operations.
- """
-
- @classmethod
- def create(cls, **kwargs):
- """Create a new record and save it in the database.
-
- Returns:
- DB Class Object: returns the created record
- """
- instance = cls(**kwargs)
- return instance.save()
-
- def update(self, commit=True, **kwargs):
- """Update specific fields of a record
-
- Args:
- commit (bool, optional): flag whether to commit. Defaults to True.
-
- Returns:
- Db Class object: returns the updated record if committed,
- None otherwise
- """
- for attr, value in kwargs.items():
- setattr(self, attr, value)
- if commit:
- self.save()
- return self
- return None
-
- def save(self, commit=True):
- """Save the record.
-
- Args:
- commit (bool, optional): flag whether to commit. Defaults to True.
-
- Returns:
- Db Class object: returns the record saved to db session
- """
- db.session.add(self)
- if commit:
- db.session.commit()
- return self
-
- def delete(self, commit=True):
- """Remove the record from the database.
-
- Args:
- commit (bool, optional): flag whether to commit. Defaults to True.
-
- Returns:
- Db Class object: returns the updated record if committed,
- None otherwise
- """
- db.session.delete(self)
- if commit:
- db.session.commit()
- return self
- return None
-
-
-class YoModel(CRUDMixin, db.Model):
- """Base model class that includes CRUD convenience methods."""
-
- __abstract__ = True
-
-
-class PkModel(YoModel):
- """
- Base model class that includes CRUD convenience methods,
- plus adds a 'primary key' column named 'id'.
- """
-
- __abstract__ = True
- id = db.Column(db.Integer, primary_key=True)
-
- @classmethod
- def get_by_id(cls, record_id):
- """Get record by ID.
-
- Args:
- record_id (int): ID of record to get
-
- Returns:
- DB Class object: object identified by record_id if any,
- None otherwise
- """
- if any(
- (
- isinstance(record_id, (str, bytes)) and record_id.isdigit(),
- isinstance(record_id, (int, float)),
- )
- ):
- return cls.query.get(int(record_id))
- return None
diff --git a/shopyo/shopyoapi/module.py b/shopyo/shopyoapi/module.py
deleted file mode 100644
index f506285..0000000
--- a/shopyo/shopyoapi/module.py
+++ /dev/null
@@ -1,64 +0,0 @@
-import copy
-import json
-import os
-
-from flask import Blueprint
-from flask import redirect
-from flask import render_template
-from flask import url_for
-
-from shopyoapi.assets import get_static
-
-
-class ModuleHelp:
- def __init__(self, dunderfile, dundername):
- self.dirpath = os.path.dirname(os.path.abspath(dunderfile))
- self.info = {}
- self._context = {}
-
- with open(self.dirpath + "/info.json") as f:
- self.info = json.load(f)
-
- self.blueprint_str = "{}_blueprint".format(self.info["module_name"])
- self.blueprint = Blueprint(
- "{}".format(self.info["module_name"]),
- dundername,
- template_folder="templates",
- url_prefix=self.info["url_prefix"],
- )
-
- self._context.update({"info": self.info})
-
- def render(self, filename, **kwargs):
- """
- .render('file.html') renders file.html found in module/templates/module/file.html
- """
- return render_template(
- "{}/{}".format(self.info["module_name"], filename), **kwargs
- )
-
- def redirect_url(self, url, **kwargs):
- return redirect(url_for(url, **kwargs))
-
- def context(self):
- return copy.deepcopy(self._context)
-
- def method(self, methodname):
- return "{}.{}".format(self.info["module_name"], methodname)
-
- def get_self_static(self, filename):
- module_parent = os.path.dirname(self.dirpath)
- module_folder = self.dirpath
-
- module_parent = os.path.normpath(module_parent)
- module_parent = os.path.basename(module_parent)
-
- module_folder = os.path.normpath(module_folder)
- module_folder = os.path.basename(module_folder)
-
- print(module_parent, module_parent)
- if module_parent.startswith('box__'):
- boxormodule = '{}/{}'.format(module_parent, module_folder)
- else:
- boxormodule = module_folder
- return get_static(boxormodule=boxormodule, filename=filename)
\ No newline at end of file
diff --git a/shopyo/shopyoapi/path.py b/shopyo/shopyoapi/path.py
deleted file mode 100644
index 0575a4a..0000000
--- a/shopyo/shopyoapi/path.py
+++ /dev/null
@@ -1,7 +0,0 @@
-import os
-
-shopyoapi_path = os.path.dirname(os.path.abspath(__file__))
-root_path = os.path.dirname(shopyoapi_path)
-static_path = os.path.join(root_path, "static")
-modules_path = os.path.join(root_path, "modules")
-themes_path = os.path.join(static_path, "themes")
diff --git a/shopyo/shopyoapi/security.py b/shopyo/shopyoapi/security.py
deleted file mode 100644
index 0dddaa8..0000000
--- a/shopyo/shopyoapi/security.py
+++ /dev/null
@@ -1,24 +0,0 @@
-from flask import request, g, redirect
-from urllib.parse import urlparse, urljoin
-
-
-# from https://security.openstack.org/guidelines/dg_avoid-unvalidated-redirects.html
-def is_safe_redirect_url(target):
- host_url = urlparse(request.host_url)
- redirect_url = urlparse(urljoin(request.host_url, target))
- return (
- redirect_url.scheme in ("http", "https")
- and host_url.netloc == redirect_url.netloc
- )
-
-
-def get_safe_redirect(url):
-
- if url and is_safe_redirect_url(url):
- return url
-
- url = request.referrer
- if url and is_safe_redirect_url(url):
- return url
-
- return "/"
diff --git a/shopyo/shopyoapi/tests/__init__.py b/shopyo/shopyoapi/tests/__init__.py
deleted file mode 100644
index e69de29..0000000
diff --git a/shopyo/static/bootstrap-grid.min.css b/shopyo/static/bootstrap-grid.min.css
deleted file mode 100644
index ea073e9..0000000
--- a/shopyo/static/bootstrap-grid.min.css
+++ /dev/null
@@ -1,7 +0,0 @@
-/*!
- * Bootstrap Grid v4.0.0 (https://getbootstrap.com)
- * Copyright 2011-2018 The Bootstrap Authors
- * Copyright 2011-2018 Twitter, Inc.
- * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
- */@-ms-viewport{width:device-width}html{box-sizing:border-box;-ms-overflow-style:scrollbar}*,::after,::before{box-sizing:inherit}.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}.row{display:-webkit-box;display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;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,.col-1,.col-10,.col-11,.col-12,.col-2,.col-3,.col-4,.col-5,.col-6,.col-7,.col-8,.col-9,.col-auto,.col-lg,.col-lg-1,.col-lg-10,.col-lg-11,.col-lg-12,.col-lg-2,.col-lg-3,.col-lg-4,.col-lg-5,.col-lg-6,.col-lg-7,.col-lg-8,.col-lg-9,.col-lg-auto,.col-md,.col-md-1,.col-md-10,.col-md-11,.col-md-12,.col-md-2,.col-md-3,.col-md-4,.col-md-5,.col-md-6,.col-md-7,.col-md-8,.col-md-9,.col-md-auto,.col-sm,.col-sm-1,.col-sm-10,.col-sm-11,.col-sm-12,.col-sm-2,.col-sm-3,.col-sm-4,.col-sm-5,.col-sm-6,.col-sm-7,.col-sm-8,.col-sm-9,.col-sm-auto,.col-xl,.col-xl-1,.col-xl-10,.col-xl-11,.col-xl-12,.col-xl-2,.col-xl-3,.col-xl-4,.col-xl-5,.col-xl-6,.col-xl-7,.col-xl-8,.col-xl-9,.col-xl-auto{position:relative;width:100%;min-height:1px;padding-right:15px;padding-left:15px}.col{-ms-flex-preferred-size:0;flex-basis:0;-webkit-box-flex:1;-ms-flex-positive:1;flex-grow:1;max-width:100%}.col-auto{-webkit-box-flex:0;-ms-flex:0 0 auto;flex:0 0 auto;width:auto;max-width:none}.col-1{-webkit-box-flex:0;-ms-flex:0 0 8.333333%;flex:0 0 8.333333%;max-width:8.333333%}.col-2{-webkit-box-flex:0;-ms-flex:0 0 16.666667%;flex:0 0 16.666667%;max-width:16.666667%}.col-3{-webkit-box-flex:0;-ms-flex:0 0 25%;flex:0 0 25%;max-width:25%}.col-4{-webkit-box-flex:0;-ms-flex:0 0 33.333333%;flex:0 0 33.333333%;max-width:33.333333%}.col-5{-webkit-box-flex:0;-ms-flex:0 0 41.666667%;flex:0 0 41.666667%;max-width:41.666667%}.col-6{-webkit-box-flex:0;-ms-flex:0 0 50%;flex:0 0 50%;max-width:50%}.col-7{-webkit-box-flex:0;-ms-flex:0 0 58.333333%;flex:0 0 58.333333%;max-width:58.333333%}.col-8{-webkit-box-flex:0;-ms-flex:0 0 66.666667%;flex:0 0 66.666667%;max-width:66.666667%}.col-9{-webkit-box-flex:0;-ms-flex:0 0 75%;flex:0 0 75%;max-width:75%}.col-10{-webkit-box-flex:0;-ms-flex:0 0 83.333333%;flex:0 0 83.333333%;max-width:83.333333%}.col-11{-webkit-box-flex:0;-ms-flex:0 0 91.666667%;flex:0 0 91.666667%;max-width:91.666667%}.col-12{-webkit-box-flex:0;-ms-flex:0 0 100%;flex:0 0 100%;max-width:100%}.order-first{-webkit-box-ordinal-group:0;-ms-flex-order:-1;order:-1}.order-last{-webkit-box-ordinal-group:14;-ms-flex-order:13;order:13}.order-0{-webkit-box-ordinal-group:1;-ms-flex-order:0;order:0}.order-1{-webkit-box-ordinal-group:2;-ms-flex-order:1;order:1}.order-2{-webkit-box-ordinal-group:3;-ms-flex-order:2;order:2}.order-3{-webkit-box-ordinal-group:4;-ms-flex-order:3;order:3}.order-4{-webkit-box-ordinal-group:5;-ms-flex-order:4;order:4}.order-5{-webkit-box-ordinal-group:6;-ms-flex-order:5;order:5}.order-6{-webkit-box-ordinal-group:7;-ms-flex-order:6;order:6}.order-7{-webkit-box-ordinal-group:8;-ms-flex-order:7;order:7}.order-8{-webkit-box-ordinal-group:9;-ms-flex-order:8;order:8}.order-9{-webkit-box-ordinal-group:10;-ms-flex-order:9;order:9}.order-10{-webkit-box-ordinal-group:11;-ms-flex-order:10;order:10}.order-11{-webkit-box-ordinal-group:12;-ms-flex-order:11;order:11}.order-12{-webkit-box-ordinal-group:13;-ms-flex-order:12;order:12}.offset-1{margin-left:8.333333%}.offset-2{margin-left:16.666667%}.offset-3{margin-left:25%}.offset-4{margin-left:33.333333%}.offset-5{margin-left:41.666667%}.offset-6{margin-left:50%}.offset-7{margin-left:58.333333%}.offset-8{margin-left:66.666667%}.offset-9{margin-left:75%}.offset-10{margin-left:83.333333%}.offset-11{margin-left:91.666667%}@media (min-width:576px){.col-sm{-ms-flex-preferred-size:0;flex-basis:0;-webkit-box-flex:1;-ms-flex-positive:1;flex-grow:1;max-width:100%}.col-sm-auto{-webkit-box-flex:0;-ms-flex:0 0 auto;flex:0 0 auto;width:auto;max-width:none}.col-sm-1{-webkit-box-flex:0;-ms-flex:0 0 8.333333%;flex:0 0 8.333333%;max-width:8.333333%}.col-sm-2{-webkit-box-flex:0;-ms-flex:0 0 16.666667%;flex:0 0 16.666667%;max-width:16.666667%}.col-sm-3{-webkit-box-flex:0;-ms-flex:0 0 25%;flex:0 0 25%;max-width:25%}.col-sm-4{-webkit-box-flex:0;-ms-flex:0 0 33.333333%;flex:0 0 33.333333%;max-width:33.333333%}.col-sm-5{-webkit-box-flex:0;-ms-flex:0 0 41.666667%;flex:0 0 41.666667%;max-width:41.666667%}.col-sm-6{-webkit-box-flex:0;-ms-flex:0 0 50%;flex:0 0 50%;max-width:50%}.col-sm-7{-webkit-box-flex:0;-ms-flex:0 0 58.333333%;flex:0 0 58.333333%;max-width:58.333333%}.col-sm-8{-webkit-box-flex:0;-ms-flex:0 0 66.666667%;flex:0 0 66.666667%;max-width:66.666667%}.col-sm-9{-webkit-box-flex:0;-ms-flex:0 0 75%;flex:0 0 75%;max-width:75%}.col-sm-10{-webkit-box-flex:0;-ms-flex:0 0 83.333333%;flex:0 0 83.333333%;max-width:83.333333%}.col-sm-11{-webkit-box-flex:0;-ms-flex:0 0 91.666667%;flex:0 0 91.666667%;max-width:91.666667%}.col-sm-12{-webkit-box-flex:0;-ms-flex:0 0 100%;flex:0 0 100%;max-width:100%}.order-sm-first{-webkit-box-ordinal-group:0;-ms-flex-order:-1;order:-1}.order-sm-last{-webkit-box-ordinal-group:14;-ms-flex-order:13;order:13}.order-sm-0{-webkit-box-ordinal-group:1;-ms-flex-order:0;order:0}.order-sm-1{-webkit-box-ordinal-group:2;-ms-flex-order:1;order:1}.order-sm-2{-webkit-box-ordinal-group:3;-ms-flex-order:2;order:2}.order-sm-3{-webkit-box-ordinal-group:4;-ms-flex-order:3;order:3}.order-sm-4{-webkit-box-ordinal-group:5;-ms-flex-order:4;order:4}.order-sm-5{-webkit-box-ordinal-group:6;-ms-flex-order:5;order:5}.order-sm-6{-webkit-box-ordinal-group:7;-ms-flex-order:6;order:6}.order-sm-7{-webkit-box-ordinal-group:8;-ms-flex-order:7;order:7}.order-sm-8{-webkit-box-ordinal-group:9;-ms-flex-order:8;order:8}.order-sm-9{-webkit-box-ordinal-group:10;-ms-flex-order:9;order:9}.order-sm-10{-webkit-box-ordinal-group:11;-ms-flex-order:10;order:10}.order-sm-11{-webkit-box-ordinal-group:12;-ms-flex-order:11;order:11}.order-sm-12{-webkit-box-ordinal-group:13;-ms-flex-order:12;order:12}.offset-sm-0{margin-left:0}.offset-sm-1{margin-left:8.333333%}.offset-sm-2{margin-left:16.666667%}.offset-sm-3{margin-left:25%}.offset-sm-4{margin-left:33.333333%}.offset-sm-5{margin-left:41.666667%}.offset-sm-6{margin-left:50%}.offset-sm-7{margin-left:58.333333%}.offset-sm-8{margin-left:66.666667%}.offset-sm-9{margin-left:75%}.offset-sm-10{margin-left:83.333333%}.offset-sm-11{margin-left:91.666667%}}@media (min-width:768px){.col-md{-ms-flex-preferred-size:0;flex-basis:0;-webkit-box-flex:1;-ms-flex-positive:1;flex-grow:1;max-width:100%}.col-md-auto{-webkit-box-flex:0;-ms-flex:0 0 auto;flex:0 0 auto;width:auto;max-width:none}.col-md-1{-webkit-box-flex:0;-ms-flex:0 0 8.333333%;flex:0 0 8.333333%;max-width:8.333333%}.col-md-2{-webkit-box-flex:0;-ms-flex:0 0 16.666667%;flex:0 0 16.666667%;max-width:16.666667%}.col-md-3{-webkit-box-flex:0;-ms-flex:0 0 25%;flex:0 0 25%;max-width:25%}.col-md-4{-webkit-box-flex:0;-ms-flex:0 0 33.333333%;flex:0 0 33.333333%;max-width:33.333333%}.col-md-5{-webkit-box-flex:0;-ms-flex:0 0 41.666667%;flex:0 0 41.666667%;max-width:41.666667%}.col-md-6{-webkit-box-flex:0;-ms-flex:0 0 50%;flex:0 0 50%;max-width:50%}.col-md-7{-webkit-box-flex:0;-ms-flex:0 0 58.333333%;flex:0 0 58.333333%;max-width:58.333333%}.col-md-8{-webkit-box-flex:0;-ms-flex:0 0 66.666667%;flex:0 0 66.666667%;max-width:66.666667%}.col-md-9{-webkit-box-flex:0;-ms-flex:0 0 75%;flex:0 0 75%;max-width:75%}.col-md-10{-webkit-box-flex:0;-ms-flex:0 0 83.333333%;flex:0 0 83.333333%;max-width:83.333333%}.col-md-11{-webkit-box-flex:0;-ms-flex:0 0 91.666667%;flex:0 0 91.666667%;max-width:91.666667%}.col-md-12{-webkit-box-flex:0;-ms-flex:0 0 100%;flex:0 0 100%;max-width:100%}.order-md-first{-webkit-box-ordinal-group:0;-ms-flex-order:-1;order:-1}.order-md-last{-webkit-box-ordinal-group:14;-ms-flex-order:13;order:13}.order-md-0{-webkit-box-ordinal-group:1;-ms-flex-order:0;order:0}.order-md-1{-webkit-box-ordinal-group:2;-ms-flex-order:1;order:1}.order-md-2{-webkit-box-ordinal-group:3;-ms-flex-order:2;order:2}.order-md-3{-webkit-box-ordinal-group:4;-ms-flex-order:3;order:3}.order-md-4{-webkit-box-ordinal-group:5;-ms-flex-order:4;order:4}.order-md-5{-webkit-box-ordinal-group:6;-ms-flex-order:5;order:5}.order-md-6{-webkit-box-ordinal-group:7;-ms-flex-order:6;order:6}.order-md-7{-webkit-box-ordinal-group:8;-ms-flex-order:7;order:7}.order-md-8{-webkit-box-ordinal-group:9;-ms-flex-order:8;order:8}.order-md-9{-webkit-box-ordinal-group:10;-ms-flex-order:9;order:9}.order-md-10{-webkit-box-ordinal-group:11;-ms-flex-order:10;order:10}.order-md-11{-webkit-box-ordinal-group:12;-ms-flex-order:11;order:11}.order-md-12{-webkit-box-ordinal-group:13;-ms-flex-order:12;order:12}.offset-md-0{margin-left:0}.offset-md-1{margin-left:8.333333%}.offset-md-2{margin-left:16.666667%}.offset-md-3{margin-left:25%}.offset-md-4{margin-left:33.333333%}.offset-md-5{margin-left:41.666667%}.offset-md-6{margin-left:50%}.offset-md-7{margin-left:58.333333%}.offset-md-8{margin-left:66.666667%}.offset-md-9{margin-left:75%}.offset-md-10{margin-left:83.333333%}.offset-md-11{margin-left:91.666667%}}@media (min-width:992px){.col-lg{-ms-flex-preferred-size:0;flex-basis:0;-webkit-box-flex:1;-ms-flex-positive:1;flex-grow:1;max-width:100%}.col-lg-auto{-webkit-box-flex:0;-ms-flex:0 0 auto;flex:0 0 auto;width:auto;max-width:none}.col-lg-1{-webkit-box-flex:0;-ms-flex:0 0 8.333333%;flex:0 0 8.333333%;max-width:8.333333%}.col-lg-2{-webkit-box-flex:0;-ms-flex:0 0 16.666667%;flex:0 0 16.666667%;max-width:16.666667%}.col-lg-3{-webkit-box-flex:0;-ms-flex:0 0 25%;flex:0 0 25%;max-width:25%}.col-lg-4{-webkit-box-flex:0;-ms-flex:0 0 33.333333%;flex:0 0 33.333333%;max-width:33.333333%}.col-lg-5{-webkit-box-flex:0;-ms-flex:0 0 41.666667%;flex:0 0 41.666667%;max-width:41.666667%}.col-lg-6{-webkit-box-flex:0;-ms-flex:0 0 50%;flex:0 0 50%;max-width:50%}.col-lg-7{-webkit-box-flex:0;-ms-flex:0 0 58.333333%;flex:0 0 58.333333%;max-width:58.333333%}.col-lg-8{-webkit-box-flex:0;-ms-flex:0 0 66.666667%;flex:0 0 66.666667%;max-width:66.666667%}.col-lg-9{-webkit-box-flex:0;-ms-flex:0 0 75%;flex:0 0 75%;max-width:75%}.col-lg-10{-webkit-box-flex:0;-ms-flex:0 0 83.333333%;flex:0 0 83.333333%;max-width:83.333333%}.col-lg-11{-webkit-box-flex:0;-ms-flex:0 0 91.666667%;flex:0 0 91.666667%;max-width:91.666667%}.col-lg-12{-webkit-box-flex:0;-ms-flex:0 0 100%;flex:0 0 100%;max-width:100%}.order-lg-first{-webkit-box-ordinal-group:0;-ms-flex-order:-1;order:-1}.order-lg-last{-webkit-box-ordinal-group:14;-ms-flex-order:13;order:13}.order-lg-0{-webkit-box-ordinal-group:1;-ms-flex-order:0;order:0}.order-lg-1{-webkit-box-ordinal-group:2;-ms-flex-order:1;order:1}.order-lg-2{-webkit-box-ordinal-group:3;-ms-flex-order:2;order:2}.order-lg-3{-webkit-box-ordinal-group:4;-ms-flex-order:3;order:3}.order-lg-4{-webkit-box-ordinal-group:5;-ms-flex-order:4;order:4}.order-lg-5{-webkit-box-ordinal-group:6;-ms-flex-order:5;order:5}.order-lg-6{-webkit-box-ordinal-group:7;-ms-flex-order:6;order:6}.order-lg-7{-webkit-box-ordinal-group:8;-ms-flex-order:7;order:7}.order-lg-8{-webkit-box-ordinal-group:9;-ms-flex-order:8;order:8}.order-lg-9{-webkit-box-ordinal-group:10;-ms-flex-order:9;order:9}.order-lg-10{-webkit-box-ordinal-group:11;-ms-flex-order:10;order:10}.order-lg-11{-webkit-box-ordinal-group:12;-ms-flex-order:11;order:11}.order-lg-12{-webkit-box-ordinal-group:13;-ms-flex-order:12;order:12}.offset-lg-0{margin-left:0}.offset-lg-1{margin-left:8.333333%}.offset-lg-2{margin-left:16.666667%}.offset-lg-3{margin-left:25%}.offset-lg-4{margin-left:33.333333%}.offset-lg-5{margin-left:41.666667%}.offset-lg-6{margin-left:50%}.offset-lg-7{margin-left:58.333333%}.offset-lg-8{margin-left:66.666667%}.offset-lg-9{margin-left:75%}.offset-lg-10{margin-left:83.333333%}.offset-lg-11{margin-left:91.666667%}}@media (min-width:1200px){.col-xl{-ms-flex-preferred-size:0;flex-basis:0;-webkit-box-flex:1;-ms-flex-positive:1;flex-grow:1;max-width:100%}.col-xl-auto{-webkit-box-flex:0;-ms-flex:0 0 auto;flex:0 0 auto;width:auto;max-width:none}.col-xl-1{-webkit-box-flex:0;-ms-flex:0 0 8.333333%;flex:0 0 8.333333%;max-width:8.333333%}.col-xl-2{-webkit-box-flex:0;-ms-flex:0 0 16.666667%;flex:0 0 16.666667%;max-width:16.666667%}.col-xl-3{-webkit-box-flex:0;-ms-flex:0 0 25%;flex:0 0 25%;max-width:25%}.col-xl-4{-webkit-box-flex:0;-ms-flex:0 0 33.333333%;flex:0 0 33.333333%;max-width:33.333333%}.col-xl-5{-webkit-box-flex:0;-ms-flex:0 0 41.666667%;flex:0 0 41.666667%;max-width:41.666667%}.col-xl-6{-webkit-box-flex:0;-ms-flex:0 0 50%;flex:0 0 50%;max-width:50%}.col-xl-7{-webkit-box-flex:0;-ms-flex:0 0 58.333333%;flex:0 0 58.333333%;max-width:58.333333%}.col-xl-8{-webkit-box-flex:0;-ms-flex:0 0 66.666667%;flex:0 0 66.666667%;max-width:66.666667%}.col-xl-9{-webkit-box-flex:0;-ms-flex:0 0 75%;flex:0 0 75%;max-width:75%}.col-xl-10{-webkit-box-flex:0;-ms-flex:0 0 83.333333%;flex:0 0 83.333333%;max-width:83.333333%}.col-xl-11{-webkit-box-flex:0;-ms-flex:0 0 91.666667%;flex:0 0 91.666667%;max-width:91.666667%}.col-xl-12{-webkit-box-flex:0;-ms-flex:0 0 100%;flex:0 0 100%;max-width:100%}.order-xl-first{-webkit-box-ordinal-group:0;-ms-flex-order:-1;order:-1}.order-xl-last{-webkit-box-ordinal-group:14;-ms-flex-order:13;order:13}.order-xl-0{-webkit-box-ordinal-group:1;-ms-flex-order:0;order:0}.order-xl-1{-webkit-box-ordinal-group:2;-ms-flex-order:1;order:1}.order-xl-2{-webkit-box-ordinal-group:3;-ms-flex-order:2;order:2}.order-xl-3{-webkit-box-ordinal-group:4;-ms-flex-order:3;order:3}.order-xl-4{-webkit-box-ordinal-group:5;-ms-flex-order:4;order:4}.order-xl-5{-webkit-box-ordinal-group:6;-ms-flex-order:5;order:5}.order-xl-6{-webkit-box-ordinal-group:7;-ms-flex-order:6;order:6}.order-xl-7{-webkit-box-ordinal-group:8;-ms-flex-order:7;order:7}.order-xl-8{-webkit-box-ordinal-group:9;-ms-flex-order:8;order:8}.order-xl-9{-webkit-box-ordinal-group:10;-ms-flex-order:9;order:9}.order-xl-10{-webkit-box-ordinal-group:11;-ms-flex-order:10;order:10}.order-xl-11{-webkit-box-ordinal-group:12;-ms-flex-order:11;order:11}.order-xl-12{-webkit-box-ordinal-group:13;-ms-flex-order:12;order:12}.offset-xl-0{margin-left:0}.offset-xl-1{margin-left:8.333333%}.offset-xl-2{margin-left:16.666667%}.offset-xl-3{margin-left:25%}.offset-xl-4{margin-left:33.333333%}.offset-xl-5{margin-left:41.666667%}.offset-xl-6{margin-left:50%}.offset-xl-7{margin-left:58.333333%}.offset-xl-8{margin-left:66.666667%}.offset-xl-9{margin-left:75%}.offset-xl-10{margin-left:83.333333%}.offset-xl-11{margin-left:91.666667%}}.d-none{display:none!important}.d-inline{display:inline!important}.d-inline-block{display:inline-block!important}.d-block{display:block!important}.d-table{display:table!important}.d-table-row{display:table-row!important}.d-table-cell{display:table-cell!important}.d-flex{display:-webkit-box!important;display:-ms-flexbox!important;display:flex!important}.d-inline-flex{display:-webkit-inline-box!important;display:-ms-inline-flexbox!important;display:inline-flex!important}@media (min-width:576px){.d-sm-none{display:none!important}.d-sm-inline{display:inline!important}.d-sm-inline-block{display:inline-block!important}.d-sm-block{display:block!important}.d-sm-table{display:table!important}.d-sm-table-row{display:table-row!important}.d-sm-table-cell{display:table-cell!important}.d-sm-flex{display:-webkit-box!important;display:-ms-flexbox!important;display:flex!important}.d-sm-inline-flex{display:-webkit-inline-box!important;display:-ms-inline-flexbox!important;display:inline-flex!important}}@media (min-width:768px){.d-md-none{display:none!important}.d-md-inline{display:inline!important}.d-md-inline-block{display:inline-block!important}.d-md-block{display:block!important}.d-md-table{display:table!important}.d-md-table-row{display:table-row!important}.d-md-table-cell{display:table-cell!important}.d-md-flex{display:-webkit-box!important;display:-ms-flexbox!important;display:flex!important}.d-md-inline-flex{display:-webkit-inline-box!important;display:-ms-inline-flexbox!important;display:inline-flex!important}}@media (min-width:992px){.d-lg-none{display:none!important}.d-lg-inline{display:inline!important}.d-lg-inline-block{display:inline-block!important}.d-lg-block{display:block!important}.d-lg-table{display:table!important}.d-lg-table-row{display:table-row!important}.d-lg-table-cell{display:table-cell!important}.d-lg-flex{display:-webkit-box!important;display:-ms-flexbox!important;display:flex!important}.d-lg-inline-flex{display:-webkit-inline-box!important;display:-ms-inline-flexbox!important;display:inline-flex!important}}@media (min-width:1200px){.d-xl-none{display:none!important}.d-xl-inline{display:inline!important}.d-xl-inline-block{display:inline-block!important}.d-xl-block{display:block!important}.d-xl-table{display:table!important}.d-xl-table-row{display:table-row!important}.d-xl-table-cell{display:table-cell!important}.d-xl-flex{display:-webkit-box!important;display:-ms-flexbox!important;display:flex!important}.d-xl-inline-flex{display:-webkit-inline-box!important;display:-ms-inline-flexbox!important;display:inline-flex!important}}@media print{.d-print-none{display:none!important}.d-print-inline{display:inline!important}.d-print-inline-block{display:inline-block!important}.d-print-block{display:block!important}.d-print-table{display:table!important}.d-print-table-row{display:table-row!important}.d-print-table-cell{display:table-cell!important}.d-print-flex{display:-webkit-box!important;display:-ms-flexbox!important;display:flex!important}.d-print-inline-flex{display:-webkit-inline-box!important;display:-ms-inline-flexbox!important;display:inline-flex!important}}.flex-row{-webkit-box-orient:horizontal!important;-webkit-box-direction:normal!important;-ms-flex-direction:row!important;flex-direction:row!important}.flex-column{-webkit-box-orient:vertical!important;-webkit-box-direction:normal!important;-ms-flex-direction:column!important;flex-direction:column!important}.flex-row-reverse{-webkit-box-orient:horizontal!important;-webkit-box-direction:reverse!important;-ms-flex-direction:row-reverse!important;flex-direction:row-reverse!important}.flex-column-reverse{-webkit-box-orient:vertical!important;-webkit-box-direction:reverse!important;-ms-flex-direction:column-reverse!important;flex-direction:column-reverse!important}.flex-wrap{-ms-flex-wrap:wrap!important;flex-wrap:wrap!important}.flex-nowrap{-ms-flex-wrap:nowrap!important;flex-wrap:nowrap!important}.flex-wrap-reverse{-ms-flex-wrap:wrap-reverse!important;flex-wrap:wrap-reverse!important}.justify-content-start{-webkit-box-pack:start!important;-ms-flex-pack:start!important;justify-content:flex-start!important}.justify-content-end{-webkit-box-pack:end!important;-ms-flex-pack:end!important;justify-content:flex-end!important}.justify-content-center{-webkit-box-pack:center!important;-ms-flex-pack:center!important;justify-content:center!important}.justify-content-between{-webkit-box-pack:justify!important;-ms-flex-pack:justify!important;justify-content:space-between!important}.justify-content-around{-ms-flex-pack:distribute!important;justify-content:space-around!important}.align-items-start{-webkit-box-align:start!important;-ms-flex-align:start!important;align-items:flex-start!important}.align-items-end{-webkit-box-align:end!important;-ms-flex-align:end!important;align-items:flex-end!important}.align-items-center{-webkit-box-align:center!important;-ms-flex-align:center!important;align-items:center!important}.align-items-baseline{-webkit-box-align:baseline!important;-ms-flex-align:baseline!important;align-items:baseline!important}.align-items-stretch{-webkit-box-align:stretch!important;-ms-flex-align:stretch!important;align-items:stretch!important}.align-content-start{-ms-flex-line-pack:start!important;align-content:flex-start!important}.align-content-end{-ms-flex-line-pack:end!important;align-content:flex-end!important}.align-content-center{-ms-flex-line-pack:center!important;align-content:center!important}.align-content-between{-ms-flex-line-pack:justify!important;align-content:space-between!important}.align-content-around{-ms-flex-line-pack:distribute!important;align-content:space-around!important}.align-content-stretch{-ms-flex-line-pack:stretch!important;align-content:stretch!important}.align-self-auto{-ms-flex-item-align:auto!important;align-self:auto!important}.align-self-start{-ms-flex-item-align:start!important;align-self:flex-start!important}.align-self-end{-ms-flex-item-align:end!important;align-self:flex-end!important}.align-self-center{-ms-flex-item-align:center!important;align-self:center!important}.align-self-baseline{-ms-flex-item-align:baseline!important;align-self:baseline!important}.align-self-stretch{-ms-flex-item-align:stretch!important;align-self:stretch!important}@media (min-width:576px){.flex-sm-row{-webkit-box-orient:horizontal!important;-webkit-box-direction:normal!important;-ms-flex-direction:row!important;flex-direction:row!important}.flex-sm-column{-webkit-box-orient:vertical!important;-webkit-box-direction:normal!important;-ms-flex-direction:column!important;flex-direction:column!important}.flex-sm-row-reverse{-webkit-box-orient:horizontal!important;-webkit-box-direction:reverse!important;-ms-flex-direction:row-reverse!important;flex-direction:row-reverse!important}.flex-sm-column-reverse{-webkit-box-orient:vertical!important;-webkit-box-direction:reverse!important;-ms-flex-direction:column-reverse!important;flex-direction:column-reverse!important}.flex-sm-wrap{-ms-flex-wrap:wrap!important;flex-wrap:wrap!important}.flex-sm-nowrap{-ms-flex-wrap:nowrap!important;flex-wrap:nowrap!important}.flex-sm-wrap-reverse{-ms-flex-wrap:wrap-reverse!important;flex-wrap:wrap-reverse!important}.justify-content-sm-start{-webkit-box-pack:start!important;-ms-flex-pack:start!important;justify-content:flex-start!important}.justify-content-sm-end{-webkit-box-pack:end!important;-ms-flex-pack:end!important;justify-content:flex-end!important}.justify-content-sm-center{-webkit-box-pack:center!important;-ms-flex-pack:center!important;justify-content:center!important}.justify-content-sm-between{-webkit-box-pack:justify!important;-ms-flex-pack:justify!important;justify-content:space-between!important}.justify-content-sm-around{-ms-flex-pack:distribute!important;justify-content:space-around!important}.align-items-sm-start{-webkit-box-align:start!important;-ms-flex-align:start!important;align-items:flex-start!important}.align-items-sm-end{-webkit-box-align:end!important;-ms-flex-align:end!important;align-items:flex-end!important}.align-items-sm-center{-webkit-box-align:center!important;-ms-flex-align:center!important;align-items:center!important}.align-items-sm-baseline{-webkit-box-align:baseline!important;-ms-flex-align:baseline!important;align-items:baseline!important}.align-items-sm-stretch{-webkit-box-align:stretch!important;-ms-flex-align:stretch!important;align-items:stretch!important}.align-content-sm-start{-ms-flex-line-pack:start!important;align-content:flex-start!important}.align-content-sm-end{-ms-flex-line-pack:end!important;align-content:flex-end!important}.align-content-sm-center{-ms-flex-line-pack:center!important;align-content:center!important}.align-content-sm-between{-ms-flex-line-pack:justify!important;align-content:space-between!important}.align-content-sm-around{-ms-flex-line-pack:distribute!important;align-content:space-around!important}.align-content-sm-stretch{-ms-flex-line-pack:stretch!important;align-content:stretch!important}.align-self-sm-auto{-ms-flex-item-align:auto!important;align-self:auto!important}.align-self-sm-start{-ms-flex-item-align:start!important;align-self:flex-start!important}.align-self-sm-end{-ms-flex-item-align:end!important;align-self:flex-end!important}.align-self-sm-center{-ms-flex-item-align:center!important;align-self:center!important}.align-self-sm-baseline{-ms-flex-item-align:baseline!important;align-self:baseline!important}.align-self-sm-stretch{-ms-flex-item-align:stretch!important;align-self:stretch!important}}@media (min-width:768px){.flex-md-row{-webkit-box-orient:horizontal!important;-webkit-box-direction:normal!important;-ms-flex-direction:row!important;flex-direction:row!important}.flex-md-column{-webkit-box-orient:vertical!important;-webkit-box-direction:normal!important;-ms-flex-direction:column!important;flex-direction:column!important}.flex-md-row-reverse{-webkit-box-orient:horizontal!important;-webkit-box-direction:reverse!important;-ms-flex-direction:row-reverse!important;flex-direction:row-reverse!important}.flex-md-column-reverse{-webkit-box-orient:vertical!important;-webkit-box-direction:reverse!important;-ms-flex-direction:column-reverse!important;flex-direction:column-reverse!important}.flex-md-wrap{-ms-flex-wrap:wrap!important;flex-wrap:wrap!important}.flex-md-nowrap{-ms-flex-wrap:nowrap!important;flex-wrap:nowrap!important}.flex-md-wrap-reverse{-ms-flex-wrap:wrap-reverse!important;flex-wrap:wrap-reverse!important}.justify-content-md-start{-webkit-box-pack:start!important;-ms-flex-pack:start!important;justify-content:flex-start!important}.justify-content-md-end{-webkit-box-pack:end!important;-ms-flex-pack:end!important;justify-content:flex-end!important}.justify-content-md-center{-webkit-box-pack:center!important;-ms-flex-pack:center!important;justify-content:center!important}.justify-content-md-between{-webkit-box-pack:justify!important;-ms-flex-pack:justify!important;justify-content:space-between!important}.justify-content-md-around{-ms-flex-pack:distribute!important;justify-content:space-around!important}.align-items-md-start{-webkit-box-align:start!important;-ms-flex-align:start!important;align-items:flex-start!important}.align-items-md-end{-webkit-box-align:end!important;-ms-flex-align:end!important;align-items:flex-end!important}.align-items-md-center{-webkit-box-align:center!important;-ms-flex-align:center!important;align-items:center!important}.align-items-md-baseline{-webkit-box-align:baseline!important;-ms-flex-align:baseline!important;align-items:baseline!important}.align-items-md-stretch{-webkit-box-align:stretch!important;-ms-flex-align:stretch!important;align-items:stretch!important}.align-content-md-start{-ms-flex-line-pack:start!important;align-content:flex-start!important}.align-content-md-end{-ms-flex-line-pack:end!important;align-content:flex-end!important}.align-content-md-center{-ms-flex-line-pack:center!important;align-content:center!important}.align-content-md-between{-ms-flex-line-pack:justify!important;align-content:space-between!important}.align-content-md-around{-ms-flex-line-pack:distribute!important;align-content:space-around!important}.align-content-md-stretch{-ms-flex-line-pack:stretch!important;align-content:stretch!important}.align-self-md-auto{-ms-flex-item-align:auto!important;align-self:auto!important}.align-self-md-start{-ms-flex-item-align:start!important;align-self:flex-start!important}.align-self-md-end{-ms-flex-item-align:end!important;align-self:flex-end!important}.align-self-md-center{-ms-flex-item-align:center!important;align-self:center!important}.align-self-md-baseline{-ms-flex-item-align:baseline!important;align-self:baseline!important}.align-self-md-stretch{-ms-flex-item-align:stretch!important;align-self:stretch!important}}@media (min-width:992px){.flex-lg-row{-webkit-box-orient:horizontal!important;-webkit-box-direction:normal!important;-ms-flex-direction:row!important;flex-direction:row!important}.flex-lg-column{-webkit-box-orient:vertical!important;-webkit-box-direction:normal!important;-ms-flex-direction:column!important;flex-direction:column!important}.flex-lg-row-reverse{-webkit-box-orient:horizontal!important;-webkit-box-direction:reverse!important;-ms-flex-direction:row-reverse!important;flex-direction:row-reverse!important}.flex-lg-column-reverse{-webkit-box-orient:vertical!important;-webkit-box-direction:reverse!important;-ms-flex-direction:column-reverse!important;flex-direction:column-reverse!important}.flex-lg-wrap{-ms-flex-wrap:wrap!important;flex-wrap:wrap!important}.flex-lg-nowrap{-ms-flex-wrap:nowrap!important;flex-wrap:nowrap!important}.flex-lg-wrap-reverse{-ms-flex-wrap:wrap-reverse!important;flex-wrap:wrap-reverse!important}.justify-content-lg-start{-webkit-box-pack:start!important;-ms-flex-pack:start!important;justify-content:flex-start!important}.justify-content-lg-end{-webkit-box-pack:end!important;-ms-flex-pack:end!important;justify-content:flex-end!important}.justify-content-lg-center{-webkit-box-pack:center!important;-ms-flex-pack:center!important;justify-content:center!important}.justify-content-lg-between{-webkit-box-pack:justify!important;-ms-flex-pack:justify!important;justify-content:space-between!important}.justify-content-lg-around{-ms-flex-pack:distribute!important;justify-content:space-around!important}.align-items-lg-start{-webkit-box-align:start!important;-ms-flex-align:start!important;align-items:flex-start!important}.align-items-lg-end{-webkit-box-align:end!important;-ms-flex-align:end!important;align-items:flex-end!important}.align-items-lg-center{-webkit-box-align:center!important;-ms-flex-align:center!important;align-items:center!important}.align-items-lg-baseline{-webkit-box-align:baseline!important;-ms-flex-align:baseline!important;align-items:baseline!important}.align-items-lg-stretch{-webkit-box-align:stretch!important;-ms-flex-align:stretch!important;align-items:stretch!important}.align-content-lg-start{-ms-flex-line-pack:start!important;align-content:flex-start!important}.align-content-lg-end{-ms-flex-line-pack:end!important;align-content:flex-end!important}.align-content-lg-center{-ms-flex-line-pack:center!important;align-content:center!important}.align-content-lg-between{-ms-flex-line-pack:justify!important;align-content:space-between!important}.align-content-lg-around{-ms-flex-line-pack:distribute!important;align-content:space-around!important}.align-content-lg-stretch{-ms-flex-line-pack:stretch!important;align-content:stretch!important}.align-self-lg-auto{-ms-flex-item-align:auto!important;align-self:auto!important}.align-self-lg-start{-ms-flex-item-align:start!important;align-self:flex-start!important}.align-self-lg-end{-ms-flex-item-align:end!important;align-self:flex-end!important}.align-self-lg-center{-ms-flex-item-align:center!important;align-self:center!important}.align-self-lg-baseline{-ms-flex-item-align:baseline!important;align-self:baseline!important}.align-self-lg-stretch{-ms-flex-item-align:stretch!important;align-self:stretch!important}}@media (min-width:1200px){.flex-xl-row{-webkit-box-orient:horizontal!important;-webkit-box-direction:normal!important;-ms-flex-direction:row!important;flex-direction:row!important}.flex-xl-column{-webkit-box-orient:vertical!important;-webkit-box-direction:normal!important;-ms-flex-direction:column!important;flex-direction:column!important}.flex-xl-row-reverse{-webkit-box-orient:horizontal!important;-webkit-box-direction:reverse!important;-ms-flex-direction:row-reverse!important;flex-direction:row-reverse!important}.flex-xl-column-reverse{-webkit-box-orient:vertical!important;-webkit-box-direction:reverse!important;-ms-flex-direction:column-reverse!important;flex-direction:column-reverse!important}.flex-xl-wrap{-ms-flex-wrap:wrap!important;flex-wrap:wrap!important}.flex-xl-nowrap{-ms-flex-wrap:nowrap!important;flex-wrap:nowrap!important}.flex-xl-wrap-reverse{-ms-flex-wrap:wrap-reverse!important;flex-wrap:wrap-reverse!important}.justify-content-xl-start{-webkit-box-pack:start!important;-ms-flex-pack:start!important;justify-content:flex-start!important}.justify-content-xl-end{-webkit-box-pack:end!important;-ms-flex-pack:end!important;justify-content:flex-end!important}.justify-content-xl-center{-webkit-box-pack:center!important;-ms-flex-pack:center!important;justify-content:center!important}.justify-content-xl-between{-webkit-box-pack:justify!important;-ms-flex-pack:justify!important;justify-content:space-between!important}.justify-content-xl-around{-ms-flex-pack:distribute!important;justify-content:space-around!important}.align-items-xl-start{-webkit-box-align:start!important;-ms-flex-align:start!important;align-items:flex-start!important}.align-items-xl-end{-webkit-box-align:end!important;-ms-flex-align:end!important;align-items:flex-end!important}.align-items-xl-center{-webkit-box-align:center!important;-ms-flex-align:center!important;align-items:center!important}.align-items-xl-baseline{-webkit-box-align:baseline!important;-ms-flex-align:baseline!important;align-items:baseline!important}.align-items-xl-stretch{-webkit-box-align:stretch!important;-ms-flex-align:stretch!important;align-items:stretch!important}.align-content-xl-start{-ms-flex-line-pack:start!important;align-content:flex-start!important}.align-content-xl-end{-ms-flex-line-pack:end!important;align-content:flex-end!important}.align-content-xl-center{-ms-flex-line-pack:center!important;align-content:center!important}.align-content-xl-between{-ms-flex-line-pack:justify!important;align-content:space-between!important}.align-content-xl-around{-ms-flex-line-pack:distribute!important;align-content:space-around!important}.align-content-xl-stretch{-ms-flex-line-pack:stretch!important;align-content:stretch!important}.align-self-xl-auto{-ms-flex-item-align:auto!important;align-self:auto!important}.align-self-xl-start{-ms-flex-item-align:start!important;align-self:flex-start!important}.align-self-xl-end{-ms-flex-item-align:end!important;align-self:flex-end!important}.align-self-xl-center{-ms-flex-item-align:center!important;align-self:center!important}.align-self-xl-baseline{-ms-flex-item-align:baseline!important;align-self:baseline!important}.align-self-xl-stretch{-ms-flex-item-align:stretch!important;align-self:stretch!important}}
-/*# sourceMappingURL=bootstrap-grid.min.css.map */
\ No newline at end of file
diff --git a/shopyo/static/bootstrap-reboot.min.css b/shopyo/static/bootstrap-reboot.min.css
deleted file mode 100644
index ced0468..0000000
--- a/shopyo/static/bootstrap-reboot.min.css
+++ /dev/null
@@ -1,8 +0,0 @@
-/*!
- * Bootstrap Reboot v4.0.0 (https://getbootstrap.com)
- * Copyright 2011-2018 The Bootstrap Authors
- * Copyright 2011-2018 Twitter, Inc.
- * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
- * Forked from Normalize.css, licensed MIT (https://github.com/necolas/normalize.css/blob/master/LICENSE.md)
- */*,::after,::before{box-sizing:border-box}html{font-family:sans-serif;line-height:1.15;-webkit-text-size-adjust:100%;-ms-text-size-adjust:100%;-ms-overflow-style:scrollbar;-webkit-tap-highlight-color:transparent}@-ms-viewport{width:device-width}article,aside,dialog,figcaption,figure,footer,header,hgroup,main,nav,section{display:block}body{margin:0;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol";font-size:1rem;font-weight:400;line-height:1.5;color:#212529;text-align:left;background-color:#fff}[tabindex="-1"]:focus{outline:0!important}hr{box-sizing:content-box;height:0;overflow:visible}h1,h2,h3,h4,h5,h6{margin-top:0;margin-bottom:.5rem}p{margin-top:0;margin-bottom:1rem}abbr[data-original-title],abbr[title]{text-decoration:underline;-webkit-text-decoration:underline dotted;text-decoration:underline dotted;cursor:help;border-bottom:0}address{margin-bottom:1rem;font-style:normal;line-height:inherit}dl,ol,ul{margin-top:0;margin-bottom:1rem}ol ol,ol ul,ul ol,ul ul{margin-bottom:0}dt{font-weight:700}dd{margin-bottom:.5rem;margin-left:0}blockquote{margin:0 0 1rem}dfn{font-style:italic}b,strong{font-weight:bolder}small{font-size:80%}sub,sup{position:relative;font-size:75%;line-height:0;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}a{color:#007bff;text-decoration:none;background-color:transparent;-webkit-text-decoration-skip:objects}a:hover{color:#0056b3;text-decoration:underline}a:not([href]):not([tabindex]){color:inherit;text-decoration:none}a:not([href]):not([tabindex]):focus,a:not([href]):not([tabindex]):hover{color:inherit;text-decoration:none}a:not([href]):not([tabindex]):focus{outline:0}code,kbd,pre,samp{font-family:monospace,monospace;font-size:1em}pre{margin-top:0;margin-bottom:1rem;overflow:auto;-ms-overflow-style:scrollbar}figure{margin:0 0 1rem}img{vertical-align:middle;border-style:none}svg:not(:root){overflow:hidden}table{border-collapse:collapse}caption{padding-top:.75rem;padding-bottom:.75rem;color:#6c757d;text-align:left;caption-side:bottom}th{text-align:inherit}label{display:inline-block;margin-bottom:.5rem}button{border-radius:0}button:focus{outline:1px dotted;outline:5px auto -webkit-focus-ring-color}button,input,optgroup,select,textarea{margin:0;font-family:inherit;font-size:inherit;line-height:inherit}button,input{overflow:visible}button,select{text-transform:none}[type=reset],[type=submit],button,html [type=button]{-webkit-appearance:button}[type=button]::-moz-focus-inner,[type=reset]::-moz-focus-inner,[type=submit]::-moz-focus-inner,button::-moz-focus-inner{padding:0;border-style:none}input[type=checkbox],input[type=radio]{box-sizing:border-box;padding:0}input[type=date],input[type=datetime-local],input[type=month],input[type=time]{-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:.5rem;font-size:1.5rem;line-height:inherit;color:inherit;white-space:normal}progress{vertical-align:baseline}[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-cancel-button,[type=search]::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{font:inherit;-webkit-appearance:button}output{display:inline-block}summary{display:list-item;cursor:pointer}template{display:none}[hidden]{display:none!important}
-/*# sourceMappingURL=bootstrap-reboot.min.css.map */
\ No newline at end of file
diff --git a/shopyo/static/bootstrap.bundle.min.js b/shopyo/static/bootstrap.bundle.min.js
deleted file mode 100644
index 4320368..0000000
--- a/shopyo/static/bootstrap.bundle.min.js
+++ /dev/null
@@ -1,7 +0,0 @@
-/*!
- * Bootstrap v4.3.1 (https://getbootstrap.com/)
- * Copyright 2011-2019 The Bootstrap Authors (https://github.com/twbs/bootstrap/graphs/contributors)
- * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
- */
-!function(t,e){"object"==typeof exports&&"undefined"!=typeof module?e(exports,require("jquery")):"function"==typeof define&&define.amd?define(["exports","jquery"],e):e((t=t||self).bootstrap={},t.jQuery)}(this,function(t,p){"use strict";function i(t,e){for(var n=0;nthis._items.length-1||t<0))if(this._isSliding)p(this._element).one(q.SLID,function(){return e.to(t)});else{if(n===t)return this.pause(),void this.cycle();var i=n=i.clientWidth&&n>=i.clientHeight}),h=0l[t]&&!i.escapeWithReference&&(n=Math.min(h[e],l[t]-("right"===t?h.width:h.height))),Kt({},e,n)}};return c.forEach(function(t){var e=-1!==["left","top"].indexOf(t)?"primary":"secondary";h=Qt({},h,u[e](t))}),t.offsets.popper=h,t},priority:["left","right","top","bottom"],padding:5,boundariesElement:"scrollParent"},keepTogether:{order:400,enabled:!0,fn:function(t){var e=t.offsets,n=e.popper,i=e.reference,o=t.placement.split("-")[0],r=Math.floor,s=-1!==["top","bottom"].indexOf(o),a=s?"right":"bottom",l=s?"left":"top",c=s?"width":"height";return n[a]r(i[a])&&(t.offsets.popper[l]=r(i[a])),t}},arrow:{order:500,enabled:!0,fn:function(t,e){var n;if(!fe(t.instance.modifiers,"arrow","keepTogether"))return t;var i=e.element;if("string"==typeof i){if(!(i=t.instance.popper.querySelector(i)))return t}else if(!t.instance.popper.contains(i))return console.warn("WARNING: `arrow.element` must be child of its popper element!"),t;var o=t.placement.split("-")[0],r=t.offsets,s=r.popper,a=r.reference,l=-1!==["left","right"].indexOf(o),c=l?"height":"width",h=l?"Top":"Left",u=h.toLowerCase(),f=l?"left":"top",d=l?"bottom":"right",p=Zt(i)[c];a[d]-ps[d]&&(t.offsets.popper[u]+=a[u]+p-s[d]),t.offsets.popper=Vt(t.offsets.popper);var m=a[u]+a[c]/2-p/2,g=Nt(t.instance.popper),_=parseFloat(g["margin"+h],10),v=parseFloat(g["border"+h+"Width"],10),y=m-t.offsets.popper[u]-_-v;return y=Math.max(Math.min(s[c]-p,y),0),t.arrowElement=i,t.offsets.arrow=(Kt(n={},u,Math.round(y)),Kt(n,f,""),n),t},element:"[x-arrow]"},flip:{order:600,enabled:!0,fn:function(p,m){if(oe(p.instance.modifiers,"inner"))return p;if(p.flipped&&p.placement===p.originalPlacement)return p;var g=Gt(p.instance.popper,p.instance.reference,m.padding,m.boundariesElement,p.positionFixed),_=p.placement.split("-")[0],v=te(_),y=p.placement.split("-")[1]||"",E=[];switch(m.behavior){case ge:E=[_,v];break;case _e:E=me(_);break;case ve:E=me(_,!0);break;default:E=m.behavior}return E.forEach(function(t,e){if(_!==t||E.length===e+1)return p;_=p.placement.split("-")[0],v=te(_);var n,i=p.offsets.popper,o=p.offsets.reference,r=Math.floor,s="left"===_&&r(i.right)>r(o.left)||"right"===_&&r(i.left)r(o.top)||"bottom"===_&&r(i.top)r(g.right),c=r(i.top)r(g.bottom),u="left"===_&&a||"right"===_&&l||"top"===_&&c||"bottom"===_&&h,f=-1!==["top","bottom"].indexOf(_),d=!!m.flipVariations&&(f&&"start"===y&&a||f&&"end"===y&&l||!f&&"start"===y&&c||!f&&"end"===y&&h);(s||u||d)&&(p.flipped=!0,(s||u)&&(_=E[e+1]),d&&(y="end"===(n=y)?"start":"start"===n?"end":n),p.placement=_+(y?"-"+y:""),p.offsets.popper=Qt({},p.offsets.popper,ee(p.instance.popper,p.offsets.reference,p.placement)),p=ie(p.instance.modifiers,p,"flip"))}),p},behavior:"flip",padding:5,boundariesElement:"viewport"},inner:{order:700,enabled:!1,fn:function(t){var e=t.placement,n=e.split("-")[0],i=t.offsets,o=i.popper,r=i.reference,s=-1!==["left","right"].indexOf(n),a=-1===["top","left"].indexOf(n);return o[s?"left":"top"]=r[n]-(a?o[s?"width":"height"]:0),t.placement=te(e),t.offsets.popper=Vt(o),t}},hide:{order:800,enabled:!0,fn:function(t){if(!fe(t.instance.modifiers,"hide","preventOverflow"))return t;var e=t.offsets.reference,n=ne(t.instance.modifiers,function(t){return"preventOverflow"===t.name}).boundaries;if(e.bottomn.right||e.top>n.bottom||e.rightdocument.documentElement.clientHeight;!this._isBodyOverflowing&&t&&(this._element.style.paddingLeft=this._scrollbarWidth+"px"),this._isBodyOverflowing&&!t&&(this._element.style.paddingRight=this._scrollbarWidth+"px")},t._resetAdjustments=function(){this._element.style.paddingLeft="",this._element.style.paddingRight=""},t._checkScrollbar=function(){var t=document.body.getBoundingClientRect();this._isBodyOverflowing=t.left+t.right
',trigger:"hover focus",title:"",delay:0,html:!1,selector:!1,placement:"top",offset:0,container:!1,fallbackPlacement:"flip",boundary:"scrollParent",sanitize:!0,sanitizeFn:null,whiteList:vn},Ln="show",xn="out",Pn={HIDE:"hide"+Tn,HIDDEN:"hidden"+Tn,SHOW:"show"+Tn,SHOWN:"shown"+Tn,INSERTED:"inserted"+Tn,CLICK:"click"+Tn,FOCUSIN:"focusin"+Tn,FOCUSOUT:"focusout"+Tn,MOUSEENTER:"mouseenter"+Tn,MOUSELEAVE:"mouseleave"+Tn},Hn="fade",jn="show",Rn=".tooltip-inner",Fn=".arrow",Mn="hover",Wn="focus",Un="click",Bn="manual",qn=function(){function i(t,e){if("undefined"==typeof be)throw new TypeError("Bootstrap's tooltips require Popper.js (https://popper.js.org/)");this._isEnabled=!0,this._timeout=0,this._hoverState="",this._activeTrigger={},this._popper=null,this.element=t,this.config=this._getConfig(e),this.tip=null,this._setListeners()}var t=i.prototype;return t.enable=function(){this._isEnabled=!0},t.disable=function(){this._isEnabled=!1},t.toggleEnabled=function(){this._isEnabled=!this._isEnabled},t.toggle=function(t){if(this._isEnabled)if(t){var e=this.constructor.DATA_KEY,n=p(t.currentTarget).data(e);n||(n=new this.constructor(t.currentTarget,this._getDelegateConfig()),p(t.currentTarget).data(e,n)),n._activeTrigger.click=!n._activeTrigger.click,n._isWithActiveTrigger()?n._enter(null,n):n._leave(null,n)}else{if(p(this.getTipElement()).hasClass(jn))return void this._leave(null,this);this._enter(null,this)}},t.dispose=function(){clearTimeout(this._timeout),p.removeData(this.element,this.constructor.DATA_KEY),p(this.element).off(this.constructor.EVENT_KEY),p(this.element).closest(".modal").off("hide.bs.modal"),this.tip&&p(this.tip).remove(),this._isEnabled=null,this._timeout=null,this._hoverState=null,(this._activeTrigger=null)!==this._popper&&this._popper.destroy(),this._popper=null,this.element=null,this.config=null,this.tip=null},t.show=function(){var e=this;if("none"===p(this.element).css("display"))throw new Error("Please use show on visible elements");var t=p.Event(this.constructor.Event.SHOW);if(this.isWithContent()&&this._isEnabled){p(this.element).trigger(t);var n=m.findShadowRoot(this.element),i=p.contains(null!==n?n:this.element.ownerDocument.documentElement,this.element);if(t.isDefaultPrevented()||!i)return;var o=this.getTipElement(),r=m.getUID(this.constructor.NAME);o.setAttribute("id",r),this.element.setAttribute("aria-describedby",r),this.setContent(),this.config.animation&&p(o).addClass(Hn);var s="function"==typeof this.config.placement?this.config.placement.call(this,o,this.element):this.config.placement,a=this._getAttachment(s);this.addAttachmentClass(a);var l=this._getContainer();p(o).data(this.constructor.DATA_KEY,this),p.contains(this.element.ownerDocument.documentElement,this.tip)||p(o).appendTo(l),p(this.element).trigger(this.constructor.Event.INSERTED),this._popper=new be(this.element,o,{placement:a,modifiers:{offset:this._getOffset(),flip:{behavior:this.config.fallbackPlacement},arrow:{element:Fn},preventOverflow:{boundariesElement:this.config.boundary}},onCreate:function(t){t.originalPlacement!==t.placement&&e._handlePopperPlacementChange(t)},onUpdate:function(t){return e._handlePopperPlacementChange(t)}}),p(o).addClass(jn),"ontouchstart"in document.documentElement&&p(document.body).children().on("mouseover",null,p.noop);var c=function(){e.config.animation&&e._fixTransition();var t=e._hoverState;e._hoverState=null,p(e.element).trigger(e.constructor.Event.SHOWN),t===xn&&e._leave(null,e)};if(p(this.tip).hasClass(Hn)){var h=m.getTransitionDurationFromElement(this.tip);p(this.tip).one(m.TRANSITION_END,c).emulateTransitionEnd(h)}else c()}},t.hide=function(t){var e=this,n=this.getTipElement(),i=p.Event(this.constructor.Event.HIDE),o=function(){e._hoverState!==Ln&&n.parentNode&&n.parentNode.removeChild(n),e._cleanTipClass(),e.element.removeAttribute("aria-describedby"),p(e.element).trigger(e.constructor.Event.HIDDEN),null!==e._popper&&e._popper.destroy(),t&&t()};if(p(this.element).trigger(i),!i.isDefaultPrevented()){if(p(n).removeClass(jn),"ontouchstart"in document.documentElement&&p(document.body).children().off("mouseover",null,p.noop),this._activeTrigger[Un]=!1,this._activeTrigger[Wn]=!1,this._activeTrigger[Mn]=!1,p(this.tip).hasClass(Hn)){var r=m.getTransitionDurationFromElement(n);p(n).one(m.TRANSITION_END,o).emulateTransitionEnd(r)}else o();this._hoverState=""}},t.update=function(){null!==this._popper&&this._popper.scheduleUpdate()},t.isWithContent=function(){return Boolean(this.getTitle())},t.addAttachmentClass=function(t){p(this.getTipElement()).addClass(Dn+"-"+t)},t.getTipElement=function(){return this.tip=this.tip||p(this.config.template)[0],this.tip},t.setContent=function(){var t=this.getTipElement();this.setElementContent(p(t.querySelectorAll(Rn)),this.getTitle()),p(t).removeClass(Hn+" "+jn)},t.setElementContent=function(t,e){"object"!=typeof e||!e.nodeType&&!e.jquery?this.config.html?(this.config.sanitize&&(e=bn(e,this.config.whiteList,this.config.sanitizeFn)),t.html(e)):t.text(e):this.config.html?p(e).parent().is(t)||t.empty().append(e):t.text(p(e).text())},t.getTitle=function(){var t=this.element.getAttribute("data-original-title");return t||(t="function"==typeof this.config.title?this.config.title.call(this.element):this.config.title),t},t._getOffset=function(){var e=this,t={};return"function"==typeof this.config.offset?t.fn=function(t){return t.offsets=l({},t.offsets,e.config.offset(t.offsets,e.element)||{}),t}:t.offset=this.config.offset,t},t._getContainer=function(){return!1===this.config.container?document.body:m.isElement(this.config.container)?p(this.config.container):p(document).find(this.config.container)},t._getAttachment=function(t){return Nn[t.toUpperCase()]},t._setListeners=function(){var i=this;this.config.trigger.split(" ").forEach(function(t){if("click"===t)p(i.element).on(i.constructor.Event.CLICK,i.config.selector,function(t){return i.toggle(t)});else if(t!==Bn){var e=t===Mn?i.constructor.Event.MOUSEENTER:i.constructor.Event.FOCUSIN,n=t===Mn?i.constructor.Event.MOUSELEAVE:i.constructor.Event.FOCUSOUT;p(i.element).on(e,i.config.selector,function(t){return i._enter(t)}).on(n,i.config.selector,function(t){return i._leave(t)})}}),p(this.element).closest(".modal").on("hide.bs.modal",function(){i.element&&i.hide()}),this.config.selector?this.config=l({},this.config,{trigger:"manual",selector:""}):this._fixTitle()},t._fixTitle=function(){var t=typeof this.element.getAttribute("data-original-title");(this.element.getAttribute("title")||"string"!==t)&&(this.element.setAttribute("data-original-title",this.element.getAttribute("title")||""),this.element.setAttribute("title",""))},t._enter=function(t,e){var n=this.constructor.DATA_KEY;(e=e||p(t.currentTarget).data(n))||(e=new this.constructor(t.currentTarget,this._getDelegateConfig()),p(t.currentTarget).data(n,e)),t&&(e._activeTrigger["focusin"===t.type?Wn:Mn]=!0),p(e.getTipElement()).hasClass(jn)||e._hoverState===Ln?e._hoverState=Ln:(clearTimeout(e._timeout),e._hoverState=Ln,e.config.delay&&e.config.delay.show?e._timeout=setTimeout(function(){e._hoverState===Ln&&e.show()},e.config.delay.show):e.show())},t._leave=function(t,e){var n=this.constructor.DATA_KEY;(e=e||p(t.currentTarget).data(n))||(e=new this.constructor(t.currentTarget,this._getDelegateConfig()),p(t.currentTarget).data(n,e)),t&&(e._activeTrigger["focusout"===t.type?Wn:Mn]=!1),e._isWithActiveTrigger()||(clearTimeout(e._timeout),e._hoverState=xn,e.config.delay&&e.config.delay.hide?e._timeout=setTimeout(function(){e._hoverState===xn&&e.hide()},e.config.delay.hide):e.hide())},t._isWithActiveTrigger=function(){for(var t in this._activeTrigger)if(this._activeTrigger[t])return!0;return!1},t._getConfig=function(t){var e=p(this.element).data();return Object.keys(e).forEach(function(t){-1!==An.indexOf(t)&&delete e[t]}),"number"==typeof(t=l({},this.constructor.Default,e,"object"==typeof t&&t?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()),m.typeCheckConfig(wn,t,this.constructor.DefaultType),t.sanitize&&(t.template=bn(t.template,t.whiteList,t.sanitizeFn)),t},t._getDelegateConfig=function(){var t={};if(this.config)for(var e in this.config)this.constructor.Default[e]!==this.config[e]&&(t[e]=this.config[e]);return t},t._cleanTipClass=function(){var t=p(this.getTipElement()),e=t.attr("class").match(In);null!==e&&e.length&&t.removeClass(e.join(""))},t._handlePopperPlacementChange=function(t){var e=t.instance;this.tip=e.popper,this._cleanTipClass(),this.addAttachmentClass(this._getAttachment(t.placement))},t._fixTransition=function(){var t=this.getTipElement(),e=this.config.animation;null===t.getAttribute("x-placement")&&(p(t).removeClass(Hn),this.config.animation=!1,this.hide(),this.show(),this.config.animation=e)},i._jQueryInterface=function(n){return this.each(function(){var t=p(this).data(Cn),e="object"==typeof n&&n;if((t||!/dispose|hide/.test(n))&&(t||(t=new i(this,e),p(this).data(Cn,t)),"string"==typeof n)){if("undefined"==typeof t[n])throw new TypeError('No method named "'+n+'"');t[n]()}})},s(i,null,[{key:"VERSION",get:function(){return"4.3.1"}},{key:"Default",get:function(){return kn}},{key:"NAME",get:function(){return wn}},{key:"DATA_KEY",get:function(){return Cn}},{key:"Event",get:function(){return Pn}},{key:"EVENT_KEY",get:function(){return Tn}},{key:"DefaultType",get:function(){return On}}]),i}();p.fn[wn]=qn._jQueryInterface,p.fn[wn].Constructor=qn,p.fn[wn].noConflict=function(){return p.fn[wn]=Sn,qn._jQueryInterface};var Kn="popover",Qn="bs.popover",Vn="."+Qn,Yn=p.fn[Kn],zn="bs-popover",Xn=new RegExp("(^|\\s)"+zn+"\\S+","g"),Gn=l({},qn.Default,{placement:"right",trigger:"click",content:"",template:''}),$n=l({},qn.DefaultType,{content:"(string|element|function)"}),Jn="fade",Zn="show",ti=".popover-header",ei=".popover-body",ni={HIDE:"hide"+Vn,HIDDEN:"hidden"+Vn,SHOW:"show"+Vn,SHOWN:"shown"+Vn,INSERTED:"inserted"+Vn,CLICK:"click"+Vn,FOCUSIN:"focusin"+Vn,FOCUSOUT:"focusout"+Vn,MOUSEENTER:"mouseenter"+Vn,MOUSELEAVE:"mouseleave"+Vn},ii=function(t){var e,n;function i(){return t.apply(this,arguments)||this}n=t,(e=i).prototype=Object.create(n.prototype),(e.prototype.constructor=e).__proto__=n;var o=i.prototype;return o.isWithContent=function(){return this.getTitle()||this._getContent()},o.addAttachmentClass=function(t){p(this.getTipElement()).addClass(zn+"-"+t)},o.getTipElement=function(){return this.tip=this.tip||p(this.config.template)[0],this.tip},o.setContent=function(){var t=p(this.getTipElement());this.setElementContent(t.find(ti),this.getTitle());var e=this._getContent();"function"==typeof e&&(e=e.call(this.element)),this.setElementContent(t.find(ei),e),t.removeClass(Jn+" "+Zn)},o._getContent=function(){return this.element.getAttribute("data-content")||this.config.content},o._cleanTipClass=function(){var t=p(this.getTipElement()),e=t.attr("class").match(Xn);null!==e&&0=this._offsets[o]&&("undefined"==typeof this._offsets[o+1]||t li > .active",Ri='[data-toggle="tab"], [data-toggle="pill"], [data-toggle="list"]',Fi=".dropdown-toggle",Mi="> .dropdown-menu .active",Wi=function(){function i(t){this._element=t}var t=i.prototype;return t.show=function(){var n=this;if(!(this._element.parentNode&&this._element.parentNode.nodeType===Node.ELEMENT_NODE&&p(this._element).hasClass(Oi)||p(this._element).hasClass(Ni))){var t,i,e=p(this._element).closest(Pi)[0],o=m.getSelectorFromElement(this._element);if(e){var r="UL"===e.nodeName||"OL"===e.nodeName?ji:Hi;i=(i=p.makeArray(p(e).find(r)))[i.length-1]}var s=p.Event(Ii.HIDE,{relatedTarget:this._element}),a=p.Event(Ii.SHOW,{relatedTarget:i});if(i&&p(i).trigger(s),p(this._element).trigger(a),!a.isDefaultPrevented()&&!s.isDefaultPrevented()){o&&(t=document.querySelector(o)),this._activate(this._element,e);var l=function(){var t=p.Event(Ii.HIDDEN,{relatedTarget:n._element}),e=p.Event(Ii.SHOWN,{relatedTarget:i});p(i).trigger(t),p(n._element).trigger(e)};t?this._activate(t,t.parentNode,l):l()}}},t.dispose=function(){p.removeData(this._element,Ti),this._element=null},t._activate=function(t,e,n){var i=this,o=(!e||"UL"!==e.nodeName&&"OL"!==e.nodeName?p(e).children(Hi):p(e).find(ji))[0],r=n&&o&&p(o).hasClass(ki),s=function(){return i._transitionComplete(t,o,n)};if(o&&r){var a=m.getTransitionDurationFromElement(o);p(o).removeClass(Li).one(m.TRANSITION_END,s).emulateTransitionEnd(a)}else s()},t._transitionComplete=function(t,e,n){if(e){p(e).removeClass(Oi);var i=p(e.parentNode).find(Mi)[0];i&&p(i).removeClass(Oi),"tab"===e.getAttribute("role")&&e.setAttribute("aria-selected",!1)}if(p(t).addClass(Oi),"tab"===t.getAttribute("role")&&t.setAttribute("aria-selected",!0),m.reflow(t),t.classList.contains(ki)&&t.classList.add(Li),t.parentNode&&p(t.parentNode).hasClass(Ai)){var o=p(t).closest(xi)[0];if(o){var r=[].slice.call(o.querySelectorAll(Fi));p(r).addClass(Oi)}t.setAttribute("aria-expanded",!0)}n&&n()},i._jQueryInterface=function(n){return this.each(function(){var t=p(this),e=t.data(Ti);if(e||(e=new i(this),t.data(Ti,e)),"string"==typeof n){if("undefined"==typeof e[n])throw new TypeError('No method named "'+n+'"');e[n]()}})},s(i,null,[{key:"VERSION",get:function(){return"4.3.1"}}]),i}();p(document).on(Ii.CLICK_DATA_API,Ri,function(t){t.preventDefault(),Wi._jQueryInterface.call(p(this),"show")}),p.fn.tab=Wi._jQueryInterface,p.fn.tab.Constructor=Wi,p.fn.tab.noConflict=function(){return p.fn.tab=Di,Wi._jQueryInterface};var Ui="toast",Bi="bs.toast",qi="."+Bi,Ki=p.fn[Ui],Qi={CLICK_DISMISS:"click.dismiss"+qi,HIDE:"hide"+qi,HIDDEN:"hidden"+qi,SHOW:"show"+qi,SHOWN:"shown"+qi},Vi="fade",Yi="hide",zi="show",Xi="showing",Gi={animation:"boolean",autohide:"boolean",delay:"number"},$i={animation:!0,autohide:!0,delay:500},Ji='[data-dismiss="toast"]',Zi=function(){function i(t,e){this._element=t,this._config=this._getConfig(e),this._timeout=null,this._setListeners()}var t=i.prototype;return t.show=function(){var t=this;p(this._element).trigger(Qi.SHOW),this._config.animation&&this._element.classList.add(Vi);var e=function(){t._element.classList.remove(Xi),t._element.classList.add(zi),p(t._element).trigger(Qi.SHOWN),t._config.autohide&&t.hide()};if(this._element.classList.remove(Yi),this._element.classList.add(Xi),this._config.animation){var n=m.getTransitionDurationFromElement(this._element);p(this._element).one(m.TRANSITION_END,e).emulateTransitionEnd(n)}else e()},t.hide=function(t){var e=this;this._element.classList.contains(zi)&&(p(this._element).trigger(Qi.HIDE),t?this._close():this._timeout=setTimeout(function(){e._close()},this._config.delay))},t.dispose=function(){clearTimeout(this._timeout),this._timeout=null,this._element.classList.contains(zi)&&this._element.classList.remove(zi),p(this._element).off(Qi.CLICK_DISMISS),p.removeData(this._element,Bi),this._element=null,this._config=null},t._getConfig=function(t){return t=l({},$i,p(this._element).data(),"object"==typeof t&&t?t:{}),m.typeCheckConfig(Ui,t,this.constructor.DefaultType),t},t._setListeners=function(){var t=this;p(this._element).on(Qi.CLICK_DISMISS,Ji,function(){return t.hide(!0)})},t._close=function(){var t=this,e=function(){t._element.classList.add(Yi),p(t._element).trigger(Qi.HIDDEN)};if(this._element.classList.remove(zi),this._config.animation){var n=m.getTransitionDurationFromElement(this._element);p(this._element).one(m.TRANSITION_END,e).emulateTransitionEnd(n)}else e()},i._jQueryInterface=function(n){return this.each(function(){var t=p(this),e=t.data(Bi);if(e||(e=new i(this,"object"==typeof n&&n),t.data(Bi,e)),"string"==typeof n){if("undefined"==typeof e[n])throw new TypeError('No method named "'+n+'"');e[n](this)}})},s(i,null,[{key:"VERSION",get:function(){return"4.3.1"}},{key:"DefaultType",get:function(){return Gi}},{key:"Default",get:function(){return $i}}]),i}();p.fn[Ui]=Zi._jQueryInterface,p.fn[Ui].Constructor=Zi,p.fn[Ui].noConflict=function(){return p.fn[Ui]=Ki,Zi._jQueryInterface},function(){if("undefined"==typeof p)throw new TypeError("Bootstrap's JavaScript requires jQuery. jQuery must be included before Bootstrap's JavaScript.");var t=p.fn.jquery.split(" ")[0].split(".");if(t[0]<2&&t[1]<9||1===t[0]&&9===t[1]&&t[2]<1||4<=t[0])throw new Error("Bootstrap's JavaScript requires at least jQuery v1.9.1 but less than v4.0.0")}(),t.Util=m,t.Alert=g,t.Button=k,t.Carousel=at,t.Collapse=Ct,t.Dropdown=Xe,t.Modal=gn,t.Popover=ii,t.Scrollspy=Ci,t.Tab=Wi,t.Toast=Zi,t.Tooltip=qn,Object.defineProperty(t,"__esModule",{value:!0})});
-//# sourceMappingURL=bootstrap.bundle.min.js.map
\ No newline at end of file
diff --git a/shopyo/static/bootstrap.min.css b/shopyo/static/bootstrap.min.css
deleted file mode 100644
index 6561b6f..0000000
--- a/shopyo/static/bootstrap.min.css
+++ /dev/null
@@ -1,7 +0,0 @@
-/*!
- * Bootstrap v4.0.0 (https://getbootstrap.com)
- * Copyright 2011-2018 The Bootstrap Authors
- * Copyright 2011-2018 Twitter, Inc.
- * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
- */:root{--blue:#007bff;--indigo:#6610f2;--purple:#6f42c1;--pink:#e83e8c;--red:#dc3545;--orange:#fd7e14;--yellow:#ffc107;--green:#28a745;--teal:#20c997;--cyan:#17a2b8;--white:#fff;--gray:#6c757d;--gray-dark:#343a40;--primary:#007bff;--secondary:#6c757d;--success:#28a745;--info:#17a2b8;--warning:#ffc107;--danger:#dc3545;--light:#f8f9fa;--dark:#343a40;--breakpoint-xs:0;--breakpoint-sm:576px;--breakpoint-md:768px;--breakpoint-lg:992px;--breakpoint-xl:1200px;--font-family-sans-serif:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol";--font-family-monospace:SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace}*,::after,::before{box-sizing:border-box}html{font-family:sans-serif;line-height:1.15;-webkit-text-size-adjust:100%;-ms-text-size-adjust:100%;-ms-overflow-style:scrollbar;-webkit-tap-highlight-color:transparent}@-ms-viewport{width:device-width}article,aside,dialog,figcaption,figure,footer,header,hgroup,main,nav,section{display:block}body{margin:0;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol";font-size:1rem;font-weight:400;line-height:1.5;color:#212529;text-align:left;background-color:#fff}[tabindex="-1"]:focus{outline:0!important}hr{box-sizing:content-box;height:0;overflow:visible}h1,h2,h3,h4,h5,h6{margin-top:0;margin-bottom:.5rem}p{margin-top:0;margin-bottom:1rem}abbr[data-original-title],abbr[title]{text-decoration:underline;-webkit-text-decoration:underline dotted;text-decoration:underline dotted;cursor:help;border-bottom:0}address{margin-bottom:1rem;font-style:normal;line-height:inherit}dl,ol,ul{margin-top:0;margin-bottom:1rem}ol ol,ol ul,ul ol,ul ul{margin-bottom:0}dt{font-weight:700}dd{margin-bottom:.5rem;margin-left:0}blockquote{margin:0 0 1rem}dfn{font-style:italic}b,strong{font-weight:bolder}small{font-size:80%}sub,sup{position:relative;font-size:75%;line-height:0;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}a{color:#007bff;text-decoration:none;background-color:transparent;-webkit-text-decoration-skip:objects}a:hover{color:#0056b3;text-decoration:underline}a:not([href]):not([tabindex]){color:inherit;text-decoration:none}a:not([href]):not([tabindex]):focus,a:not([href]):not([tabindex]):hover{color:inherit;text-decoration:none}a:not([href]):not([tabindex]):focus{outline:0}code,kbd,pre,samp{font-family:monospace,monospace;font-size:1em}pre{margin-top:0;margin-bottom:1rem;overflow:auto;-ms-overflow-style:scrollbar}figure{margin:0 0 1rem}img{vertical-align:middle;border-style:none}svg:not(:root){overflow:hidden}table{border-collapse:collapse}caption{padding-top:.75rem;padding-bottom:.75rem;color:#6c757d;text-align:left;caption-side:bottom}th{text-align:inherit}label{display:inline-block;margin-bottom:.5rem}button{border-radius:0}button:focus{outline:1px dotted;outline:5px auto -webkit-focus-ring-color}button,input,optgroup,select,textarea{margin:0;font-family:inherit;font-size:inherit;line-height:inherit}button,input{overflow:visible}button,select{text-transform:none}[type=reset],[type=submit],button,html [type=button]{-webkit-appearance:button}[type=button]::-moz-focus-inner,[type=reset]::-moz-focus-inner,[type=submit]::-moz-focus-inner,button::-moz-focus-inner{padding:0;border-style:none}input[type=checkbox],input[type=radio]{box-sizing:border-box;padding:0}input[type=date],input[type=datetime-local],input[type=month],input[type=time]{-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:.5rem;font-size:1.5rem;line-height:inherit;color:inherit;white-space:normal}progress{vertical-align:baseline}[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-cancel-button,[type=search]::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{font:inherit;-webkit-appearance:button}output{display:inline-block}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:.5rem;font-family:inherit;font-weight:500;line-height:1.2;color:inherit}.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}.lead{font-size:1.25rem;font-weight:300}.display-1{font-size:6rem;font-weight:300;line-height:1.2}.display-2{font-size:5.5rem;font-weight:300;line-height:1.2}.display-3{font-size:4.5rem;font-weight:300;line-height:1.2}.display-4{font-size:3.5rem;font-weight:300;line-height:1.2}hr{margin-top:1rem;margin-bottom:1rem;border:0;border-top:1px solid rgba(0,0,0,.1)}.small,small{font-size:80%;font-weight:400}.mark,mark{padding:.2em;background-color:#fcf8e3}.list-unstyled{padding-left:0;list-style:none}.list-inline{padding-left:0;list-style:none}.list-inline-item{display:inline-block}.list-inline-item:not(:last-child){margin-right:.5rem}.initialism{font-size:90%;text-transform:uppercase}.blockquote{margin-bottom:1rem;font-size:1.25rem}.blockquote-footer{display:block;font-size:80%;color:#6c757d}.blockquote-footer::before{content:"\2014 \00A0"}.img-fluid{max-width:100%;height:auto}.img-thumbnail{padding:.25rem;background-color:#fff;border:1px solid #dee2e6;border-radius:.25rem;max-width:100%;height:auto}.figure{display:inline-block}.figure-img{margin-bottom:.5rem;line-height:1}.figure-caption{font-size:90%;color:#6c757d}code,kbd,pre,samp{font-family:SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace}code{font-size:87.5%;color:#e83e8c;word-break:break-word}a>code{color:inherit}kbd{padding:.2rem .4rem;font-size:87.5%;color:#fff;background-color:#212529;border-radius:.2rem}kbd kbd{padding:0;font-size:100%;font-weight:700}pre{display:block;font-size:87.5%;color:#212529}pre code{font-size:inherit;color:inherit;word-break:normal}.pre-scrollable{max-height:340px;overflow-y:scroll}.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}.row{display:-webkit-box;display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;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,.col-1,.col-10,.col-11,.col-12,.col-2,.col-3,.col-4,.col-5,.col-6,.col-7,.col-8,.col-9,.col-auto,.col-lg,.col-lg-1,.col-lg-10,.col-lg-11,.col-lg-12,.col-lg-2,.col-lg-3,.col-lg-4,.col-lg-5,.col-lg-6,.col-lg-7,.col-lg-8,.col-lg-9,.col-lg-auto,.col-md,.col-md-1,.col-md-10,.col-md-11,.col-md-12,.col-md-2,.col-md-3,.col-md-4,.col-md-5,.col-md-6,.col-md-7,.col-md-8,.col-md-9,.col-md-auto,.col-sm,.col-sm-1,.col-sm-10,.col-sm-11,.col-sm-12,.col-sm-2,.col-sm-3,.col-sm-4,.col-sm-5,.col-sm-6,.col-sm-7,.col-sm-8,.col-sm-9,.col-sm-auto,.col-xl,.col-xl-1,.col-xl-10,.col-xl-11,.col-xl-12,.col-xl-2,.col-xl-3,.col-xl-4,.col-xl-5,.col-xl-6,.col-xl-7,.col-xl-8,.col-xl-9,.col-xl-auto{position:relative;width:100%;min-height:1px;padding-right:15px;padding-left:15px}.col{-ms-flex-preferred-size:0;flex-basis:0;-webkit-box-flex:1;-ms-flex-positive:1;flex-grow:1;max-width:100%}.col-auto{-webkit-box-flex:0;-ms-flex:0 0 auto;flex:0 0 auto;width:auto;max-width:none}.col-1{-webkit-box-flex:0;-ms-flex:0 0 8.333333%;flex:0 0 8.333333%;max-width:8.333333%}.col-2{-webkit-box-flex:0;-ms-flex:0 0 16.666667%;flex:0 0 16.666667%;max-width:16.666667%}.col-3{-webkit-box-flex:0;-ms-flex:0 0 25%;flex:0 0 25%;max-width:25%}.col-4{-webkit-box-flex:0;-ms-flex:0 0 33.333333%;flex:0 0 33.333333%;max-width:33.333333%}.col-5{-webkit-box-flex:0;-ms-flex:0 0 41.666667%;flex:0 0 41.666667%;max-width:41.666667%}.col-6{-webkit-box-flex:0;-ms-flex:0 0 50%;flex:0 0 50%;max-width:50%}.col-7{-webkit-box-flex:0;-ms-flex:0 0 58.333333%;flex:0 0 58.333333%;max-width:58.333333%}.col-8{-webkit-box-flex:0;-ms-flex:0 0 66.666667%;flex:0 0 66.666667%;max-width:66.666667%}.col-9{-webkit-box-flex:0;-ms-flex:0 0 75%;flex:0 0 75%;max-width:75%}.col-10{-webkit-box-flex:0;-ms-flex:0 0 83.333333%;flex:0 0 83.333333%;max-width:83.333333%}.col-11{-webkit-box-flex:0;-ms-flex:0 0 91.666667%;flex:0 0 91.666667%;max-width:91.666667%}.col-12{-webkit-box-flex:0;-ms-flex:0 0 100%;flex:0 0 100%;max-width:100%}.order-first{-webkit-box-ordinal-group:0;-ms-flex-order:-1;order:-1}.order-last{-webkit-box-ordinal-group:14;-ms-flex-order:13;order:13}.order-0{-webkit-box-ordinal-group:1;-ms-flex-order:0;order:0}.order-1{-webkit-box-ordinal-group:2;-ms-flex-order:1;order:1}.order-2{-webkit-box-ordinal-group:3;-ms-flex-order:2;order:2}.order-3{-webkit-box-ordinal-group:4;-ms-flex-order:3;order:3}.order-4{-webkit-box-ordinal-group:5;-ms-flex-order:4;order:4}.order-5{-webkit-box-ordinal-group:6;-ms-flex-order:5;order:5}.order-6{-webkit-box-ordinal-group:7;-ms-flex-order:6;order:6}.order-7{-webkit-box-ordinal-group:8;-ms-flex-order:7;order:7}.order-8{-webkit-box-ordinal-group:9;-ms-flex-order:8;order:8}.order-9{-webkit-box-ordinal-group:10;-ms-flex-order:9;order:9}.order-10{-webkit-box-ordinal-group:11;-ms-flex-order:10;order:10}.order-11{-webkit-box-ordinal-group:12;-ms-flex-order:11;order:11}.order-12{-webkit-box-ordinal-group:13;-ms-flex-order:12;order:12}.offset-1{margin-left:8.333333%}.offset-2{margin-left:16.666667%}.offset-3{margin-left:25%}.offset-4{margin-left:33.333333%}.offset-5{margin-left:41.666667%}.offset-6{margin-left:50%}.offset-7{margin-left:58.333333%}.offset-8{margin-left:66.666667%}.offset-9{margin-left:75%}.offset-10{margin-left:83.333333%}.offset-11{margin-left:91.666667%}@media (min-width:576px){.col-sm{-ms-flex-preferred-size:0;flex-basis:0;-webkit-box-flex:1;-ms-flex-positive:1;flex-grow:1;max-width:100%}.col-sm-auto{-webkit-box-flex:0;-ms-flex:0 0 auto;flex:0 0 auto;width:auto;max-width:none}.col-sm-1{-webkit-box-flex:0;-ms-flex:0 0 8.333333%;flex:0 0 8.333333%;max-width:8.333333%}.col-sm-2{-webkit-box-flex:0;-ms-flex:0 0 16.666667%;flex:0 0 16.666667%;max-width:16.666667%}.col-sm-3{-webkit-box-flex:0;-ms-flex:0 0 25%;flex:0 0 25%;max-width:25%}.col-sm-4{-webkit-box-flex:0;-ms-flex:0 0 33.333333%;flex:0 0 33.333333%;max-width:33.333333%}.col-sm-5{-webkit-box-flex:0;-ms-flex:0 0 41.666667%;flex:0 0 41.666667%;max-width:41.666667%}.col-sm-6{-webkit-box-flex:0;-ms-flex:0 0 50%;flex:0 0 50%;max-width:50%}.col-sm-7{-webkit-box-flex:0;-ms-flex:0 0 58.333333%;flex:0 0 58.333333%;max-width:58.333333%}.col-sm-8{-webkit-box-flex:0;-ms-flex:0 0 66.666667%;flex:0 0 66.666667%;max-width:66.666667%}.col-sm-9{-webkit-box-flex:0;-ms-flex:0 0 75%;flex:0 0 75%;max-width:75%}.col-sm-10{-webkit-box-flex:0;-ms-flex:0 0 83.333333%;flex:0 0 83.333333%;max-width:83.333333%}.col-sm-11{-webkit-box-flex:0;-ms-flex:0 0 91.666667%;flex:0 0 91.666667%;max-width:91.666667%}.col-sm-12{-webkit-box-flex:0;-ms-flex:0 0 100%;flex:0 0 100%;max-width:100%}.order-sm-first{-webkit-box-ordinal-group:0;-ms-flex-order:-1;order:-1}.order-sm-last{-webkit-box-ordinal-group:14;-ms-flex-order:13;order:13}.order-sm-0{-webkit-box-ordinal-group:1;-ms-flex-order:0;order:0}.order-sm-1{-webkit-box-ordinal-group:2;-ms-flex-order:1;order:1}.order-sm-2{-webkit-box-ordinal-group:3;-ms-flex-order:2;order:2}.order-sm-3{-webkit-box-ordinal-group:4;-ms-flex-order:3;order:3}.order-sm-4{-webkit-box-ordinal-group:5;-ms-flex-order:4;order:4}.order-sm-5{-webkit-box-ordinal-group:6;-ms-flex-order:5;order:5}.order-sm-6{-webkit-box-ordinal-group:7;-ms-flex-order:6;order:6}.order-sm-7{-webkit-box-ordinal-group:8;-ms-flex-order:7;order:7}.order-sm-8{-webkit-box-ordinal-group:9;-ms-flex-order:8;order:8}.order-sm-9{-webkit-box-ordinal-group:10;-ms-flex-order:9;order:9}.order-sm-10{-webkit-box-ordinal-group:11;-ms-flex-order:10;order:10}.order-sm-11{-webkit-box-ordinal-group:12;-ms-flex-order:11;order:11}.order-sm-12{-webkit-box-ordinal-group:13;-ms-flex-order:12;order:12}.offset-sm-0{margin-left:0}.offset-sm-1{margin-left:8.333333%}.offset-sm-2{margin-left:16.666667%}.offset-sm-3{margin-left:25%}.offset-sm-4{margin-left:33.333333%}.offset-sm-5{margin-left:41.666667%}.offset-sm-6{margin-left:50%}.offset-sm-7{margin-left:58.333333%}.offset-sm-8{margin-left:66.666667%}.offset-sm-9{margin-left:75%}.offset-sm-10{margin-left:83.333333%}.offset-sm-11{margin-left:91.666667%}}@media (min-width:768px){.col-md{-ms-flex-preferred-size:0;flex-basis:0;-webkit-box-flex:1;-ms-flex-positive:1;flex-grow:1;max-width:100%}.col-md-auto{-webkit-box-flex:0;-ms-flex:0 0 auto;flex:0 0 auto;width:auto;max-width:none}.col-md-1{-webkit-box-flex:0;-ms-flex:0 0 8.333333%;flex:0 0 8.333333%;max-width:8.333333%}.col-md-2{-webkit-box-flex:0;-ms-flex:0 0 16.666667%;flex:0 0 16.666667%;max-width:16.666667%}.col-md-3{-webkit-box-flex:0;-ms-flex:0 0 25%;flex:0 0 25%;max-width:25%}.col-md-4{-webkit-box-flex:0;-ms-flex:0 0 33.333333%;flex:0 0 33.333333%;max-width:33.333333%}.col-md-5{-webkit-box-flex:0;-ms-flex:0 0 41.666667%;flex:0 0 41.666667%;max-width:41.666667%}.col-md-6{-webkit-box-flex:0;-ms-flex:0 0 50%;flex:0 0 50%;max-width:50%}.col-md-7{-webkit-box-flex:0;-ms-flex:0 0 58.333333%;flex:0 0 58.333333%;max-width:58.333333%}.col-md-8{-webkit-box-flex:0;-ms-flex:0 0 66.666667%;flex:0 0 66.666667%;max-width:66.666667%}.col-md-9{-webkit-box-flex:0;-ms-flex:0 0 75%;flex:0 0 75%;max-width:75%}.col-md-10{-webkit-box-flex:0;-ms-flex:0 0 83.333333%;flex:0 0 83.333333%;max-width:83.333333%}.col-md-11{-webkit-box-flex:0;-ms-flex:0 0 91.666667%;flex:0 0 91.666667%;max-width:91.666667%}.col-md-12{-webkit-box-flex:0;-ms-flex:0 0 100%;flex:0 0 100%;max-width:100%}.order-md-first{-webkit-box-ordinal-group:0;-ms-flex-order:-1;order:-1}.order-md-last{-webkit-box-ordinal-group:14;-ms-flex-order:13;order:13}.order-md-0{-webkit-box-ordinal-group:1;-ms-flex-order:0;order:0}.order-md-1{-webkit-box-ordinal-group:2;-ms-flex-order:1;order:1}.order-md-2{-webkit-box-ordinal-group:3;-ms-flex-order:2;order:2}.order-md-3{-webkit-box-ordinal-group:4;-ms-flex-order:3;order:3}.order-md-4{-webkit-box-ordinal-group:5;-ms-flex-order:4;order:4}.order-md-5{-webkit-box-ordinal-group:6;-ms-flex-order:5;order:5}.order-md-6{-webkit-box-ordinal-group:7;-ms-flex-order:6;order:6}.order-md-7{-webkit-box-ordinal-group:8;-ms-flex-order:7;order:7}.order-md-8{-webkit-box-ordinal-group:9;-ms-flex-order:8;order:8}.order-md-9{-webkit-box-ordinal-group:10;-ms-flex-order:9;order:9}.order-md-10{-webkit-box-ordinal-group:11;-ms-flex-order:10;order:10}.order-md-11{-webkit-box-ordinal-group:12;-ms-flex-order:11;order:11}.order-md-12{-webkit-box-ordinal-group:13;-ms-flex-order:12;order:12}.offset-md-0{margin-left:0}.offset-md-1{margin-left:8.333333%}.offset-md-2{margin-left:16.666667%}.offset-md-3{margin-left:25%}.offset-md-4{margin-left:33.333333%}.offset-md-5{margin-left:41.666667%}.offset-md-6{margin-left:50%}.offset-md-7{margin-left:58.333333%}.offset-md-8{margin-left:66.666667%}.offset-md-9{margin-left:75%}.offset-md-10{margin-left:83.333333%}.offset-md-11{margin-left:91.666667%}}@media (min-width:992px){.col-lg{-ms-flex-preferred-size:0;flex-basis:0;-webkit-box-flex:1;-ms-flex-positive:1;flex-grow:1;max-width:100%}.col-lg-auto{-webkit-box-flex:0;-ms-flex:0 0 auto;flex:0 0 auto;width:auto;max-width:none}.col-lg-1{-webkit-box-flex:0;-ms-flex:0 0 8.333333%;flex:0 0 8.333333%;max-width:8.333333%}.col-lg-2{-webkit-box-flex:0;-ms-flex:0 0 16.666667%;flex:0 0 16.666667%;max-width:16.666667%}.col-lg-3{-webkit-box-flex:0;-ms-flex:0 0 25%;flex:0 0 25%;max-width:25%}.col-lg-4{-webkit-box-flex:0;-ms-flex:0 0 33.333333%;flex:0 0 33.333333%;max-width:33.333333%}.col-lg-5{-webkit-box-flex:0;-ms-flex:0 0 41.666667%;flex:0 0 41.666667%;max-width:41.666667%}.col-lg-6{-webkit-box-flex:0;-ms-flex:0 0 50%;flex:0 0 50%;max-width:50%}.col-lg-7{-webkit-box-flex:0;-ms-flex:0 0 58.333333%;flex:0 0 58.333333%;max-width:58.333333%}.col-lg-8{-webkit-box-flex:0;-ms-flex:0 0 66.666667%;flex:0 0 66.666667%;max-width:66.666667%}.col-lg-9{-webkit-box-flex:0;-ms-flex:0 0 75%;flex:0 0 75%;max-width:75%}.col-lg-10{-webkit-box-flex:0;-ms-flex:0 0 83.333333%;flex:0 0 83.333333%;max-width:83.333333%}.col-lg-11{-webkit-box-flex:0;-ms-flex:0 0 91.666667%;flex:0 0 91.666667%;max-width:91.666667%}.col-lg-12{-webkit-box-flex:0;-ms-flex:0 0 100%;flex:0 0 100%;max-width:100%}.order-lg-first{-webkit-box-ordinal-group:0;-ms-flex-order:-1;order:-1}.order-lg-last{-webkit-box-ordinal-group:14;-ms-flex-order:13;order:13}.order-lg-0{-webkit-box-ordinal-group:1;-ms-flex-order:0;order:0}.order-lg-1{-webkit-box-ordinal-group:2;-ms-flex-order:1;order:1}.order-lg-2{-webkit-box-ordinal-group:3;-ms-flex-order:2;order:2}.order-lg-3{-webkit-box-ordinal-group:4;-ms-flex-order:3;order:3}.order-lg-4{-webkit-box-ordinal-group:5;-ms-flex-order:4;order:4}.order-lg-5{-webkit-box-ordinal-group:6;-ms-flex-order:5;order:5}.order-lg-6{-webkit-box-ordinal-group:7;-ms-flex-order:6;order:6}.order-lg-7{-webkit-box-ordinal-group:8;-ms-flex-order:7;order:7}.order-lg-8{-webkit-box-ordinal-group:9;-ms-flex-order:8;order:8}.order-lg-9{-webkit-box-ordinal-group:10;-ms-flex-order:9;order:9}.order-lg-10{-webkit-box-ordinal-group:11;-ms-flex-order:10;order:10}.order-lg-11{-webkit-box-ordinal-group:12;-ms-flex-order:11;order:11}.order-lg-12{-webkit-box-ordinal-group:13;-ms-flex-order:12;order:12}.offset-lg-0{margin-left:0}.offset-lg-1{margin-left:8.333333%}.offset-lg-2{margin-left:16.666667%}.offset-lg-3{margin-left:25%}.offset-lg-4{margin-left:33.333333%}.offset-lg-5{margin-left:41.666667%}.offset-lg-6{margin-left:50%}.offset-lg-7{margin-left:58.333333%}.offset-lg-8{margin-left:66.666667%}.offset-lg-9{margin-left:75%}.offset-lg-10{margin-left:83.333333%}.offset-lg-11{margin-left:91.666667%}}@media (min-width:1200px){.col-xl{-ms-flex-preferred-size:0;flex-basis:0;-webkit-box-flex:1;-ms-flex-positive:1;flex-grow:1;max-width:100%}.col-xl-auto{-webkit-box-flex:0;-ms-flex:0 0 auto;flex:0 0 auto;width:auto;max-width:none}.col-xl-1{-webkit-box-flex:0;-ms-flex:0 0 8.333333%;flex:0 0 8.333333%;max-width:8.333333%}.col-xl-2{-webkit-box-flex:0;-ms-flex:0 0 16.666667%;flex:0 0 16.666667%;max-width:16.666667%}.col-xl-3{-webkit-box-flex:0;-ms-flex:0 0 25%;flex:0 0 25%;max-width:25%}.col-xl-4{-webkit-box-flex:0;-ms-flex:0 0 33.333333%;flex:0 0 33.333333%;max-width:33.333333%}.col-xl-5{-webkit-box-flex:0;-ms-flex:0 0 41.666667%;flex:0 0 41.666667%;max-width:41.666667%}.col-xl-6{-webkit-box-flex:0;-ms-flex:0 0 50%;flex:0 0 50%;max-width:50%}.col-xl-7{-webkit-box-flex:0;-ms-flex:0 0 58.333333%;flex:0 0 58.333333%;max-width:58.333333%}.col-xl-8{-webkit-box-flex:0;-ms-flex:0 0 66.666667%;flex:0 0 66.666667%;max-width:66.666667%}.col-xl-9{-webkit-box-flex:0;-ms-flex:0 0 75%;flex:0 0 75%;max-width:75%}.col-xl-10{-webkit-box-flex:0;-ms-flex:0 0 83.333333%;flex:0 0 83.333333%;max-width:83.333333%}.col-xl-11{-webkit-box-flex:0;-ms-flex:0 0 91.666667%;flex:0 0 91.666667%;max-width:91.666667%}.col-xl-12{-webkit-box-flex:0;-ms-flex:0 0 100%;flex:0 0 100%;max-width:100%}.order-xl-first{-webkit-box-ordinal-group:0;-ms-flex-order:-1;order:-1}.order-xl-last{-webkit-box-ordinal-group:14;-ms-flex-order:13;order:13}.order-xl-0{-webkit-box-ordinal-group:1;-ms-flex-order:0;order:0}.order-xl-1{-webkit-box-ordinal-group:2;-ms-flex-order:1;order:1}.order-xl-2{-webkit-box-ordinal-group:3;-ms-flex-order:2;order:2}.order-xl-3{-webkit-box-ordinal-group:4;-ms-flex-order:3;order:3}.order-xl-4{-webkit-box-ordinal-group:5;-ms-flex-order:4;order:4}.order-xl-5{-webkit-box-ordinal-group:6;-ms-flex-order:5;order:5}.order-xl-6{-webkit-box-ordinal-group:7;-ms-flex-order:6;order:6}.order-xl-7{-webkit-box-ordinal-group:8;-ms-flex-order:7;order:7}.order-xl-8{-webkit-box-ordinal-group:9;-ms-flex-order:8;order:8}.order-xl-9{-webkit-box-ordinal-group:10;-ms-flex-order:9;order:9}.order-xl-10{-webkit-box-ordinal-group:11;-ms-flex-order:10;order:10}.order-xl-11{-webkit-box-ordinal-group:12;-ms-flex-order:11;order:11}.order-xl-12{-webkit-box-ordinal-group:13;-ms-flex-order:12;order:12}.offset-xl-0{margin-left:0}.offset-xl-1{margin-left:8.333333%}.offset-xl-2{margin-left:16.666667%}.offset-xl-3{margin-left:25%}.offset-xl-4{margin-left:33.333333%}.offset-xl-5{margin-left:41.666667%}.offset-xl-6{margin-left:50%}.offset-xl-7{margin-left:58.333333%}.offset-xl-8{margin-left:66.666667%}.offset-xl-9{margin-left:75%}.offset-xl-10{margin-left:83.333333%}.offset-xl-11{margin-left:91.666667%}}.table{width:100%;max-width:100%;margin-bottom:1rem;background-color:transparent}.table td,.table th{padding:.75rem;vertical-align:top;border-top:1px solid #dee2e6}.table thead th{vertical-align:bottom;border-bottom:2px solid #dee2e6}.table tbody+tbody{border-top:2px solid #dee2e6}.table .table{background-color:#fff}.table-sm td,.table-sm th{padding:.3rem}.table-bordered{border:1px solid #dee2e6}.table-bordered td,.table-bordered th{border:1px solid #dee2e6}.table-bordered thead td,.table-bordered thead th{border-bottom-width:2px}.table-striped tbody tr:nth-of-type(odd){background-color:rgba(0,0,0,.05)}.table-hover tbody tr:hover{background-color:rgba(0,0,0,.075)}.table-primary,.table-primary>td,.table-primary>th{background-color:#b8daff}.table-hover .table-primary:hover{background-color:#9fcdff}.table-hover .table-primary:hover>td,.table-hover .table-primary:hover>th{background-color:#9fcdff}.table-secondary,.table-secondary>td,.table-secondary>th{background-color:#d6d8db}.table-hover .table-secondary:hover{background-color:#c8cbcf}.table-hover .table-secondary:hover>td,.table-hover .table-secondary:hover>th{background-color:#c8cbcf}.table-success,.table-success>td,.table-success>th{background-color:#c3e6cb}.table-hover .table-success:hover{background-color:#b1dfbb}.table-hover .table-success:hover>td,.table-hover .table-success:hover>th{background-color:#b1dfbb}.table-info,.table-info>td,.table-info>th{background-color:#bee5eb}.table-hover .table-info:hover{background-color:#abdde5}.table-hover .table-info:hover>td,.table-hover .table-info:hover>th{background-color:#abdde5}.table-warning,.table-warning>td,.table-warning>th{background-color:#ffeeba}.table-hover .table-warning:hover{background-color:#ffe8a1}.table-hover .table-warning:hover>td,.table-hover .table-warning:hover>th{background-color:#ffe8a1}.table-danger,.table-danger>td,.table-danger>th{background-color:#f5c6cb}.table-hover .table-danger:hover{background-color:#f1b0b7}.table-hover .table-danger:hover>td,.table-hover .table-danger:hover>th{background-color:#f1b0b7}.table-light,.table-light>td,.table-light>th{background-color:#fdfdfe}.table-hover .table-light:hover{background-color:#ececf6}.table-hover .table-light:hover>td,.table-hover .table-light:hover>th{background-color:#ececf6}.table-dark,.table-dark>td,.table-dark>th{background-color:#c6c8ca}.table-hover .table-dark:hover{background-color:#b9bbbe}.table-hover .table-dark:hover>td,.table-hover .table-dark:hover>th{background-color:#b9bbbe}.table-active,.table-active>td,.table-active>th{background-color:rgba(0,0,0,.075)}.table-hover .table-active:hover{background-color:rgba(0,0,0,.075)}.table-hover .table-active:hover>td,.table-hover .table-active:hover>th{background-color:rgba(0,0,0,.075)}.table .thead-dark th{color:#fff;background-color:#212529;border-color:#32383e}.table .thead-light th{color:#495057;background-color:#e9ecef;border-color:#dee2e6}.table-dark{color:#fff;background-color:#212529}.table-dark td,.table-dark th,.table-dark thead th{border-color:#32383e}.table-dark.table-bordered{border:0}.table-dark.table-striped tbody tr:nth-of-type(odd){background-color:rgba(255,255,255,.05)}.table-dark.table-hover tbody tr:hover{background-color:rgba(255,255,255,.075)}@media (max-width:575.98px){.table-responsive-sm{display:block;width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch;-ms-overflow-style:-ms-autohiding-scrollbar}.table-responsive-sm>.table-bordered{border:0}}@media (max-width:767.98px){.table-responsive-md{display:block;width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch;-ms-overflow-style:-ms-autohiding-scrollbar}.table-responsive-md>.table-bordered{border:0}}@media (max-width:991.98px){.table-responsive-lg{display:block;width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch;-ms-overflow-style:-ms-autohiding-scrollbar}.table-responsive-lg>.table-bordered{border:0}}@media (max-width:1199.98px){.table-responsive-xl{display:block;width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch;-ms-overflow-style:-ms-autohiding-scrollbar}.table-responsive-xl>.table-bordered{border:0}}.table-responsive{display:block;width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch;-ms-overflow-style:-ms-autohiding-scrollbar}.table-responsive>.table-bordered{border:0}.form-control{display:block;width:100%;padding:.375rem .75rem;font-size:1rem;line-height:1.5;color:#495057;background-color:#fff;background-clip:padding-box;border:1px solid #ced4da;border-radius:.25rem;transition:border-color .15s ease-in-out,box-shadow .15s ease-in-out}.form-control::-ms-expand{background-color:transparent;border:0}.form-control:focus{color:#495057;background-color:#fff;border-color:#80bdff;outline:0;box-shadow:0 0 0 .2rem rgba(0,123,255,.25)}.form-control::-webkit-input-placeholder{color:#6c757d;opacity:1}.form-control::-moz-placeholder{color:#6c757d;opacity:1}.form-control:-ms-input-placeholder{color:#6c757d;opacity:1}.form-control::-ms-input-placeholder{color:#6c757d;opacity:1}.form-control::placeholder{color:#6c757d;opacity:1}.form-control:disabled,.form-control[readonly]{background-color:#e9ecef;opacity:1}select.form-control:not([size]):not([multiple]){height:calc(2.25rem + 2px)}select.form-control:focus::-ms-value{color:#495057;background-color:#fff}.form-control-file,.form-control-range{display:block;width:100%}.col-form-label{padding-top:calc(.375rem + 1px);padding-bottom:calc(.375rem + 1px);margin-bottom:0;font-size:inherit;line-height:1.5}.col-form-label-lg{padding-top:calc(.5rem + 1px);padding-bottom:calc(.5rem + 1px);font-size:1.25rem;line-height:1.5}.col-form-label-sm{padding-top:calc(.25rem + 1px);padding-bottom:calc(.25rem + 1px);font-size:.875rem;line-height:1.5}.form-control-plaintext{display:block;width:100%;padding-top:.375rem;padding-bottom:.375rem;margin-bottom:0;line-height:1.5;background-color:transparent;border:solid transparent;border-width:1px 0}.form-control-plaintext.form-control-lg,.form-control-plaintext.form-control-sm,.input-group-lg>.form-control-plaintext.form-control,.input-group-lg>.input-group-append>.form-control-plaintext.btn,.input-group-lg>.input-group-append>.form-control-plaintext.input-group-text,.input-group-lg>.input-group-prepend>.form-control-plaintext.btn,.input-group-lg>.input-group-prepend>.form-control-plaintext.input-group-text,.input-group-sm>.form-control-plaintext.form-control,.input-group-sm>.input-group-append>.form-control-plaintext.btn,.input-group-sm>.input-group-append>.form-control-plaintext.input-group-text,.input-group-sm>.input-group-prepend>.form-control-plaintext.btn,.input-group-sm>.input-group-prepend>.form-control-plaintext.input-group-text{padding-right:0;padding-left:0}.form-control-sm,.input-group-sm>.form-control,.input-group-sm>.input-group-append>.btn,.input-group-sm>.input-group-append>.input-group-text,.input-group-sm>.input-group-prepend>.btn,.input-group-sm>.input-group-prepend>.input-group-text{padding:.25rem .5rem;font-size:.875rem;line-height:1.5;border-radius:.2rem}.input-group-sm>.input-group-append>select.btn:not([size]):not([multiple]),.input-group-sm>.input-group-append>select.input-group-text:not([size]):not([multiple]),.input-group-sm>.input-group-prepend>select.btn:not([size]):not([multiple]),.input-group-sm>.input-group-prepend>select.input-group-text:not([size]):not([multiple]),.input-group-sm>select.form-control:not([size]):not([multiple]),select.form-control-sm:not([size]):not([multiple]){height:calc(1.8125rem + 2px)}.form-control-lg,.input-group-lg>.form-control,.input-group-lg>.input-group-append>.btn,.input-group-lg>.input-group-append>.input-group-text,.input-group-lg>.input-group-prepend>.btn,.input-group-lg>.input-group-prepend>.input-group-text{padding:.5rem 1rem;font-size:1.25rem;line-height:1.5;border-radius:.3rem}.input-group-lg>.input-group-append>select.btn:not([size]):not([multiple]),.input-group-lg>.input-group-append>select.input-group-text:not([size]):not([multiple]),.input-group-lg>.input-group-prepend>select.btn:not([size]):not([multiple]),.input-group-lg>.input-group-prepend>select.input-group-text:not([size]):not([multiple]),.input-group-lg>select.form-control:not([size]):not([multiple]),select.form-control-lg:not([size]):not([multiple]){height:calc(2.875rem + 2px)}.form-group{margin-bottom:1rem}.form-text{display:block;margin-top:.25rem}.form-row{display:-webkit-box;display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;margin-right:-5px;margin-left:-5px}.form-row>.col,.form-row>[class*=col-]{padding-right:5px;padding-left:5px}.form-check{position:relative;display:block;padding-left:1.25rem}.form-check-input{position:absolute;margin-top:.3rem;margin-left:-1.25rem}.form-check-input:disabled~.form-check-label{color:#6c757d}.form-check-label{margin-bottom:0}.form-check-inline{display:-webkit-inline-box;display:-ms-inline-flexbox;display:inline-flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;padding-left:0;margin-right:.75rem}.form-check-inline .form-check-input{position:static;margin-top:0;margin-right:.3125rem;margin-left:0}.valid-feedback{display:none;width:100%;margin-top:.25rem;font-size:80%;color:#28a745}.valid-tooltip{position:absolute;top:100%;z-index:5;display:none;max-width:100%;padding:.5rem;margin-top:.1rem;font-size:.875rem;line-height:1;color:#fff;background-color:rgba(40,167,69,.8);border-radius:.2rem}.custom-select.is-valid,.form-control.is-valid,.was-validated .custom-select:valid,.was-validated .form-control:valid{border-color:#28a745}.custom-select.is-valid:focus,.form-control.is-valid:focus,.was-validated .custom-select:valid:focus,.was-validated .form-control:valid:focus{border-color:#28a745;box-shadow:0 0 0 .2rem rgba(40,167,69,.25)}.custom-select.is-valid~.valid-feedback,.custom-select.is-valid~.valid-tooltip,.form-control.is-valid~.valid-feedback,.form-control.is-valid~.valid-tooltip,.was-validated .custom-select:valid~.valid-feedback,.was-validated .custom-select:valid~.valid-tooltip,.was-validated .form-control:valid~.valid-feedback,.was-validated .form-control:valid~.valid-tooltip{display:block}.form-check-input.is-valid~.form-check-label,.was-validated .form-check-input:valid~.form-check-label{color:#28a745}.form-check-input.is-valid~.valid-feedback,.form-check-input.is-valid~.valid-tooltip,.was-validated .form-check-input:valid~.valid-feedback,.was-validated .form-check-input:valid~.valid-tooltip{display:block}.custom-control-input.is-valid~.custom-control-label,.was-validated .custom-control-input:valid~.custom-control-label{color:#28a745}.custom-control-input.is-valid~.custom-control-label::before,.was-validated .custom-control-input:valid~.custom-control-label::before{background-color:#71dd8a}.custom-control-input.is-valid~.valid-feedback,.custom-control-input.is-valid~.valid-tooltip,.was-validated .custom-control-input:valid~.valid-feedback,.was-validated .custom-control-input:valid~.valid-tooltip{display:block}.custom-control-input.is-valid:checked~.custom-control-label::before,.was-validated .custom-control-input:valid:checked~.custom-control-label::before{background-color:#34ce57}.custom-control-input.is-valid:focus~.custom-control-label::before,.was-validated .custom-control-input:valid:focus~.custom-control-label::before{box-shadow:0 0 0 1px #fff,0 0 0 .2rem rgba(40,167,69,.25)}.custom-file-input.is-valid~.custom-file-label,.was-validated .custom-file-input:valid~.custom-file-label{border-color:#28a745}.custom-file-input.is-valid~.custom-file-label::before,.was-validated .custom-file-input:valid~.custom-file-label::before{border-color:inherit}.custom-file-input.is-valid~.valid-feedback,.custom-file-input.is-valid~.valid-tooltip,.was-validated .custom-file-input:valid~.valid-feedback,.was-validated .custom-file-input:valid~.valid-tooltip{display:block}.custom-file-input.is-valid:focus~.custom-file-label,.was-validated .custom-file-input:valid:focus~.custom-file-label{box-shadow:0 0 0 .2rem rgba(40,167,69,.25)}.invalid-feedback{display:none;width:100%;margin-top:.25rem;font-size:80%;color:#dc3545}.invalid-tooltip{position:absolute;top:100%;z-index:5;display:none;max-width:100%;padding:.5rem;margin-top:.1rem;font-size:.875rem;line-height:1;color:#fff;background-color:rgba(220,53,69,.8);border-radius:.2rem}.custom-select.is-invalid,.form-control.is-invalid,.was-validated .custom-select:invalid,.was-validated .form-control:invalid{border-color:#dc3545}.custom-select.is-invalid:focus,.form-control.is-invalid:focus,.was-validated .custom-select:invalid:focus,.was-validated .form-control:invalid:focus{border-color:#dc3545;box-shadow:0 0 0 .2rem rgba(220,53,69,.25)}.custom-select.is-invalid~.invalid-feedback,.custom-select.is-invalid~.invalid-tooltip,.form-control.is-invalid~.invalid-feedback,.form-control.is-invalid~.invalid-tooltip,.was-validated .custom-select:invalid~.invalid-feedback,.was-validated .custom-select:invalid~.invalid-tooltip,.was-validated .form-control:invalid~.invalid-feedback,.was-validated .form-control:invalid~.invalid-tooltip{display:block}.form-check-input.is-invalid~.form-check-label,.was-validated .form-check-input:invalid~.form-check-label{color:#dc3545}.form-check-input.is-invalid~.invalid-feedback,.form-check-input.is-invalid~.invalid-tooltip,.was-validated .form-check-input:invalid~.invalid-feedback,.was-validated .form-check-input:invalid~.invalid-tooltip{display:block}.custom-control-input.is-invalid~.custom-control-label,.was-validated .custom-control-input:invalid~.custom-control-label{color:#dc3545}.custom-control-input.is-invalid~.custom-control-label::before,.was-validated .custom-control-input:invalid~.custom-control-label::before{background-color:#efa2a9}.custom-control-input.is-invalid~.invalid-feedback,.custom-control-input.is-invalid~.invalid-tooltip,.was-validated .custom-control-input:invalid~.invalid-feedback,.was-validated .custom-control-input:invalid~.invalid-tooltip{display:block}.custom-control-input.is-invalid:checked~.custom-control-label::before,.was-validated .custom-control-input:invalid:checked~.custom-control-label::before{background-color:#e4606d}.custom-control-input.is-invalid:focus~.custom-control-label::before,.was-validated .custom-control-input:invalid:focus~.custom-control-label::before{box-shadow:0 0 0 1px #fff,0 0 0 .2rem rgba(220,53,69,.25)}.custom-file-input.is-invalid~.custom-file-label,.was-validated .custom-file-input:invalid~.custom-file-label{border-color:#dc3545}.custom-file-input.is-invalid~.custom-file-label::before,.was-validated .custom-file-input:invalid~.custom-file-label::before{border-color:inherit}.custom-file-input.is-invalid~.invalid-feedback,.custom-file-input.is-invalid~.invalid-tooltip,.was-validated .custom-file-input:invalid~.invalid-feedback,.was-validated .custom-file-input:invalid~.invalid-tooltip{display:block}.custom-file-input.is-invalid:focus~.custom-file-label,.was-validated .custom-file-input:invalid:focus~.custom-file-label{box-shadow:0 0 0 .2rem rgba(220,53,69,.25)}.form-inline{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:horizontal;-webkit-box-direction:normal;-ms-flex-flow:row wrap;flex-flow:row wrap;-webkit-box-align:center;-ms-flex-align:center;align-items:center}.form-inline .form-check{width:100%}@media (min-width:576px){.form-inline label{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;margin-bottom:0}.form-inline .form-group{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-flex:0;-ms-flex:0 0 auto;flex:0 0 auto;-webkit-box-orient:horizontal;-webkit-box-direction:normal;-ms-flex-flow:row wrap;flex-flow:row wrap;-webkit-box-align:center;-ms-flex-align:center;align-items:center;margin-bottom:0}.form-inline .form-control{display:inline-block;width:auto;vertical-align:middle}.form-inline .form-control-plaintext{display:inline-block}.form-inline .input-group{width:auto}.form-inline .form-check{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;width:auto;padding-left:0}.form-inline .form-check-input{position:relative;margin-top:0;margin-right:.25rem;margin-left:0}.form-inline .custom-control{-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center}.form-inline .custom-control-label{margin-bottom:0}}.btn{display:inline-block;font-weight:400;text-align:center;white-space:nowrap;vertical-align:middle;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;border:1px solid transparent;padding:.375rem .75rem;font-size:1rem;line-height:1.5;border-radius:.25rem;transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out}.btn:focus,.btn:hover{text-decoration:none}.btn.focus,.btn:focus{outline:0;box-shadow:0 0 0 .2rem rgba(0,123,255,.25)}.btn.disabled,.btn:disabled{opacity:.65}.btn:not(:disabled):not(.disabled){cursor:pointer}.btn:not(:disabled):not(.disabled).active,.btn:not(:disabled):not(.disabled):active{background-image:none}a.btn.disabled,fieldset:disabled a.btn{pointer-events:none}.btn-primary{color:#fff;background-color:#007bff;border-color:#007bff}.btn-primary:hover{color:#fff;background-color:#0069d9;border-color:#0062cc}.btn-primary.focus,.btn-primary:focus{box-shadow:0 0 0 .2rem rgba(0,123,255,.5)}.btn-primary.disabled,.btn-primary:disabled{color:#fff;background-color:#007bff;border-color:#007bff}.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 .2rem rgba(0,123,255,.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{box-shadow:0 0 0 .2rem rgba(108,117,125,.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 .2rem rgba(108,117,125,.5)}.btn-success{color:#fff;background-color:#28a745;border-color:#28a745}.btn-success:hover{color:#fff;background-color:#218838;border-color:#1e7e34}.btn-success.focus,.btn-success:focus{box-shadow:0 0 0 .2rem rgba(40,167,69,.5)}.btn-success.disabled,.btn-success:disabled{color:#fff;background-color:#28a745;border-color:#28a745}.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 .2rem rgba(40,167,69,.5)}.btn-info{color:#fff;background-color:#17a2b8;border-color:#17a2b8}.btn-info:hover{color:#fff;background-color:#138496;border-color:#117a8b}.btn-info.focus,.btn-info:focus{box-shadow:0 0 0 .2rem rgba(23,162,184,.5)}.btn-info.disabled,.btn-info:disabled{color:#fff;background-color:#17a2b8;border-color:#17a2b8}.btn-info:not(:disabled):not(.disabled).active,.btn-info:not(:disabled):not(.disabled):active,.show>.btn-info.dropdown-toggle{color:#fff;background-color:#117a8b;border-color:#10707f}.btn-info:not(:disabled):not(.disabled).active:focus,.btn-info:not(:disabled):not(.disabled):active:focus,.show>.btn-info.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(23,162,184,.5)}.btn-warning{color:#212529;background-color:#ffc107;border-color:#ffc107}.btn-warning:hover{color:#212529;background-color:#e0a800;border-color:#d39e00}.btn-warning.focus,.btn-warning:focus{box-shadow:0 0 0 .2rem rgba(255,193,7,.5)}.btn-warning.disabled,.btn-warning:disabled{color:#212529;background-color:#ffc107;border-color:#ffc107}.btn-warning:not(:disabled):not(.disabled).active,.btn-warning:not(:disabled):not(.disabled):active,.show>.btn-warning.dropdown-toggle{color:#212529;background-color:#d39e00;border-color:#c69500}.btn-warning:not(:disabled):not(.disabled).active:focus,.btn-warning:not(:disabled):not(.disabled):active:focus,.show>.btn-warning.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(255,193,7,.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{box-shadow:0 0 0 .2rem rgba(220,53,69,.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 .2rem rgba(220,53,69,.5)}.btn-light{color:#212529;background-color:#f8f9fa;border-color:#f8f9fa}.btn-light:hover{color:#212529;background-color:#e2e6ea;border-color:#dae0e5}.btn-light.focus,.btn-light:focus{box-shadow:0 0 0 .2rem rgba(248,249,250,.5)}.btn-light.disabled,.btn-light:disabled{color:#212529;background-color:#f8f9fa;border-color:#f8f9fa}.btn-light:not(:disabled):not(.disabled).active,.btn-light:not(:disabled):not(.disabled):active,.show>.btn-light.dropdown-toggle{color:#212529;background-color:#dae0e5;border-color:#d3d9df}.btn-light:not(:disabled):not(.disabled).active:focus,.btn-light:not(:disabled):not(.disabled):active:focus,.show>.btn-light.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(248,249,250,.5)}.btn-dark{color:#fff;background-color:#343a40;border-color:#343a40}.btn-dark:hover{color:#fff;background-color:#23272b;border-color:#1d2124}.btn-dark.focus,.btn-dark:focus{box-shadow:0 0 0 .2rem rgba(52,58,64,.5)}.btn-dark.disabled,.btn-dark:disabled{color:#fff;background-color:#343a40;border-color:#343a40}.btn-dark:not(:disabled):not(.disabled).active,.btn-dark:not(:disabled):not(.disabled):active,.show>.btn-dark.dropdown-toggle{color:#fff;background-color:#1d2124;border-color:#171a1d}.btn-dark:not(:disabled):not(.disabled).active:focus,.btn-dark:not(:disabled):not(.disabled):active:focus,.show>.btn-dark.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(52,58,64,.5)}.btn-outline-primary{color:#007bff;background-color:transparent;background-image:none;border-color:#007bff}.btn-outline-primary:hover{color:#fff;background-color:#007bff;border-color:#007bff}.btn-outline-primary.focus,.btn-outline-primary:focus{box-shadow:0 0 0 .2rem rgba(0,123,255,.5)}.btn-outline-primary.disabled,.btn-outline-primary:disabled{color:#007bff;background-color:transparent}.btn-outline-primary:not(:disabled):not(.disabled).active,.btn-outline-primary:not(:disabled):not(.disabled):active,.show>.btn-outline-primary.dropdown-toggle{color:#fff;background-color:#007bff;border-color:#007bff}.btn-outline-primary:not(:disabled):not(.disabled).active:focus,.btn-outline-primary:not(:disabled):not(.disabled):active:focus,.show>.btn-outline-primary.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(0,123,255,.5)}.btn-outline-secondary{color:#6c757d;background-color:transparent;background-image:none;border-color:#6c757d}.btn-outline-secondary:hover{color:#fff;background-color:#6c757d;border-color:#6c757d}.btn-outline-secondary.focus,.btn-outline-secondary:focus{box-shadow:0 0 0 .2rem rgba(108,117,125,.5)}.btn-outline-secondary.disabled,.btn-outline-secondary:disabled{color:#6c757d;background-color:transparent}.btn-outline-secondary:not(:disabled):not(.disabled).active,.btn-outline-secondary:not(:disabled):not(.disabled):active,.show>.btn-outline-secondary.dropdown-toggle{color:#fff;background-color:#6c757d;border-color:#6c757d}.btn-outline-secondary:not(:disabled):not(.disabled).active:focus,.btn-outline-secondary:not(:disabled):not(.disabled):active:focus,.show>.btn-outline-secondary.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(108,117,125,.5)}.btn-outline-success{color:#28a745;background-color:transparent;background-image:none;border-color:#28a745}.btn-outline-success:hover{color:#fff;background-color:#28a745;border-color:#28a745}.btn-outline-success.focus,.btn-outline-success:focus{box-shadow:0 0 0 .2rem rgba(40,167,69,.5)}.btn-outline-success.disabled,.btn-outline-success:disabled{color:#28a745;background-color:transparent}.btn-outline-success:not(:disabled):not(.disabled).active,.btn-outline-success:not(:disabled):not(.disabled):active,.show>.btn-outline-success.dropdown-toggle{color:#fff;background-color:#28a745;border-color:#28a745}.btn-outline-success:not(:disabled):not(.disabled).active:focus,.btn-outline-success:not(:disabled):not(.disabled):active:focus,.show>.btn-outline-success.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(40,167,69,.5)}.btn-outline-info{color:#17a2b8;background-color:transparent;background-image:none;border-color:#17a2b8}.btn-outline-info:hover{color:#fff;background-color:#17a2b8;border-color:#17a2b8}.btn-outline-info.focus,.btn-outline-info:focus{box-shadow:0 0 0 .2rem rgba(23,162,184,.5)}.btn-outline-info.disabled,.btn-outline-info:disabled{color:#17a2b8;background-color:transparent}.btn-outline-info:not(:disabled):not(.disabled).active,.btn-outline-info:not(:disabled):not(.disabled):active,.show>.btn-outline-info.dropdown-toggle{color:#fff;background-color:#17a2b8;border-color:#17a2b8}.btn-outline-info:not(:disabled):not(.disabled).active:focus,.btn-outline-info:not(:disabled):not(.disabled):active:focus,.show>.btn-outline-info.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(23,162,184,.5)}.btn-outline-warning{color:#ffc107;background-color:transparent;background-image:none;border-color:#ffc107}.btn-outline-warning:hover{color:#212529;background-color:#ffc107;border-color:#ffc107}.btn-outline-warning.focus,.btn-outline-warning:focus{box-shadow:0 0 0 .2rem rgba(255,193,7,.5)}.btn-outline-warning.disabled,.btn-outline-warning:disabled{color:#ffc107;background-color:transparent}.btn-outline-warning:not(:disabled):not(.disabled).active,.btn-outline-warning:not(:disabled):not(.disabled):active,.show>.btn-outline-warning.dropdown-toggle{color:#212529;background-color:#ffc107;border-color:#ffc107}.btn-outline-warning:not(:disabled):not(.disabled).active:focus,.btn-outline-warning:not(:disabled):not(.disabled):active:focus,.show>.btn-outline-warning.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(255,193,7,.5)}.btn-outline-danger{color:#dc3545;background-color:transparent;background-image:none;border-color:#dc3545}.btn-outline-danger:hover{color:#fff;background-color:#dc3545;border-color:#dc3545}.btn-outline-danger.focus,.btn-outline-danger:focus{box-shadow:0 0 0 .2rem rgba(220,53,69,.5)}.btn-outline-danger.disabled,.btn-outline-danger:disabled{color:#dc3545;background-color:transparent}.btn-outline-danger:not(:disabled):not(.disabled).active,.btn-outline-danger:not(:disabled):not(.disabled):active,.show>.btn-outline-danger.dropdown-toggle{color:#fff;background-color:#dc3545;border-color:#dc3545}.btn-outline-danger:not(:disabled):not(.disabled).active:focus,.btn-outline-danger:not(:disabled):not(.disabled):active:focus,.show>.btn-outline-danger.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(220,53,69,.5)}.btn-outline-light{color:#f8f9fa;background-color:transparent;background-image:none;border-color:#f8f9fa}.btn-outline-light:hover{color:#212529;background-color:#f8f9fa;border-color:#f8f9fa}.btn-outline-light.focus,.btn-outline-light:focus{box-shadow:0 0 0 .2rem rgba(248,249,250,.5)}.btn-outline-light.disabled,.btn-outline-light:disabled{color:#f8f9fa;background-color:transparent}.btn-outline-light:not(:disabled):not(.disabled).active,.btn-outline-light:not(:disabled):not(.disabled):active,.show>.btn-outline-light.dropdown-toggle{color:#212529;background-color:#f8f9fa;border-color:#f8f9fa}.btn-outline-light:not(:disabled):not(.disabled).active:focus,.btn-outline-light:not(:disabled):not(.disabled):active:focus,.show>.btn-outline-light.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(248,249,250,.5)}.btn-outline-dark{color:#343a40;background-color:transparent;background-image:none;border-color:#343a40}.btn-outline-dark:hover{color:#fff;background-color:#343a40;border-color:#343a40}.btn-outline-dark.focus,.btn-outline-dark:focus{box-shadow:0 0 0 .2rem rgba(52,58,64,.5)}.btn-outline-dark.disabled,.btn-outline-dark:disabled{color:#343a40;background-color:transparent}.btn-outline-dark:not(:disabled):not(.disabled).active,.btn-outline-dark:not(:disabled):not(.disabled):active,.show>.btn-outline-dark.dropdown-toggle{color:#fff;background-color:#343a40;border-color:#343a40}.btn-outline-dark:not(:disabled):not(.disabled).active:focus,.btn-outline-dark:not(:disabled):not(.disabled):active:focus,.show>.btn-outline-dark.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(52,58,64,.5)}.btn-link{font-weight:400;color:#007bff;background-color:transparent}.btn-link:hover{color:#0056b3;text-decoration:underline;background-color:transparent;border-color:transparent}.btn-link.focus,.btn-link:focus{text-decoration:underline;border-color:transparent;box-shadow:none}.btn-link.disabled,.btn-link:disabled{color:#6c757d}.btn-group-lg>.btn,.btn-lg{padding:.5rem 1rem;font-size:1.25rem;line-height:1.5;border-radius:.3rem}.btn-group-sm>.btn,.btn-sm{padding:.25rem .5rem;font-size:.875rem;line-height:1.5;border-radius:.2rem}.btn-block{display:block;width:100%}.btn-block+.btn-block{margin-top:.5rem}input[type=button].btn-block,input[type=reset].btn-block,input[type=submit].btn-block{width:100%}.fade{opacity:0;transition:opacity .15s linear}.fade.show{opacity:1}.collapse{display:none}.collapse.show{display:block}tr.collapse.show{display:table-row}tbody.collapse.show{display:table-row-group}.collapsing{position:relative;height:0;overflow:hidden;transition:height .35s ease}.dropdown,.dropup{position:relative}.dropdown-toggle::after{display:inline-block;width:0;height:0;margin-left:.255em;vertical-align:.255em;content:"";border-top:.3em solid;border-right:.3em solid transparent;border-bottom:0;border-left:.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:.5rem 0;margin:.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,.15);border-radius:.25rem}.dropup .dropdown-menu{margin-top:0;margin-bottom:.125rem}.dropup .dropdown-toggle::after{display:inline-block;width:0;height:0;margin-left:.255em;vertical-align:.255em;content:"";border-top:0;border-right:.3em solid transparent;border-bottom:.3em solid;border-left:.3em solid transparent}.dropup .dropdown-toggle:empty::after{margin-left:0}.dropright .dropdown-menu{margin-top:0;margin-left:.125rem}.dropright .dropdown-toggle::after{display:inline-block;width:0;height:0;margin-left:.255em;vertical-align:.255em;content:"";border-top:.3em solid transparent;border-bottom:.3em solid transparent;border-left:.3em solid}.dropright .dropdown-toggle:empty::after{margin-left:0}.dropright .dropdown-toggle::after{vertical-align:0}.dropleft .dropdown-menu{margin-top:0;margin-right:.125rem}.dropleft .dropdown-toggle::after{display:inline-block;width:0;height:0;margin-left:.255em;vertical-align:.255em;content:""}.dropleft .dropdown-toggle::after{display:none}.dropleft .dropdown-toggle::before{display:inline-block;width:0;height:0;margin-right:.255em;vertical-align:.255em;content:"";border-top:.3em solid transparent;border-right:.3em solid;border-bottom:.3em solid transparent}.dropleft .dropdown-toggle:empty::after{margin-left:0}.dropleft .dropdown-toggle::before{vertical-align:0}.dropdown-divider{height:0;margin:.5rem 0;overflow:hidden;border-top:1px solid #e9ecef}.dropdown-item{display:block;width:100%;padding:.25rem 1.5rem;clear:both;font-weight:400;color:#212529;text-align:inherit;white-space:nowrap;background-color:transparent;border:0}.dropdown-item:focus,.dropdown-item:hover{color:#16181b;text-decoration:none;background-color:#f8f9fa}.dropdown-item.active,.dropdown-item:active{color:#fff;text-decoration:none;background-color:#007bff}.dropdown-item.disabled,.dropdown-item:disabled{color:#6c757d;background-color:transparent}.dropdown-menu.show{display:block}.dropdown-header{display:block;padding:.5rem 1.5rem;margin-bottom:0;font-size:.875rem;color:#6c757d;white-space:nowrap}.btn-group,.btn-group-vertical{position:relative;display:-webkit-inline-box;display:-ms-inline-flexbox;display:inline-flex;vertical-align:middle}.btn-group-vertical>.btn,.btn-group>.btn{position:relative;-webkit-box-flex:0;-ms-flex:0 1 auto;flex:0 1 auto}.btn-group-vertical>.btn:hover,.btn-group>.btn:hover{z-index:1}.btn-group-vertical>.btn.active,.btn-group-vertical>.btn:active,.btn-group-vertical>.btn:focus,.btn-group>.btn.active,.btn-group>.btn:active,.btn-group>.btn:focus{z-index:1}.btn-group .btn+.btn,.btn-group .btn+.btn-group,.btn-group .btn-group+.btn,.btn-group .btn-group+.btn-group,.btn-group-vertical .btn+.btn,.btn-group-vertical .btn+.btn-group,.btn-group-vertical .btn-group+.btn,.btn-group-vertical .btn-group+.btn-group{margin-left:-1px}.btn-toolbar{display:-webkit-box;display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;-webkit-box-pack:start;-ms-flex-pack:start;justify-content:flex-start}.btn-toolbar .input-group{width:auto}.btn-group>.btn:first-child{margin-left:0}.btn-group>.btn-group:not(:last-child)>.btn,.btn-group>.btn:not(:last-child):not(.dropdown-toggle){border-top-right-radius:0;border-bottom-right-radius:0}.btn-group>.btn-group:not(:first-child)>.btn,.btn-group>.btn:not(:first-child){border-top-left-radius:0;border-bottom-left-radius:0}.dropdown-toggle-split{padding-right:.5625rem;padding-left:.5625rem}.dropdown-toggle-split::after{margin-left:0}.btn-group-sm>.btn+.dropdown-toggle-split,.btn-sm+.dropdown-toggle-split{padding-right:.375rem;padding-left:.375rem}.btn-group-lg>.btn+.dropdown-toggle-split,.btn-lg+.dropdown-toggle-split{padding-right:.75rem;padding-left:.75rem}.btn-group-vertical{-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;-webkit-box-align:start;-ms-flex-align:start;align-items:flex-start;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center}.btn-group-vertical .btn,.btn-group-vertical .btn-group{width:100%}.btn-group-vertical>.btn+.btn,.btn-group-vertical>.btn+.btn-group,.btn-group-vertical>.btn-group+.btn,.btn-group-vertical>.btn-group+.btn-group{margin-top:-1px;margin-left:0}.btn-group-vertical>.btn-group:not(:last-child)>.btn,.btn-group-vertical>.btn:not(:last-child):not(.dropdown-toggle){border-bottom-right-radius:0;border-bottom-left-radius:0}.btn-group-vertical>.btn-group:not(:first-child)>.btn,.btn-group-vertical>.btn:not(:first-child){border-top-left-radius:0;border-top-right-radius:0}.btn-group-toggle>.btn,.btn-group-toggle>.btn-group>.btn{margin-bottom:0}.btn-group-toggle>.btn input[type=checkbox],.btn-group-toggle>.btn input[type=radio],.btn-group-toggle>.btn-group>.btn input[type=checkbox],.btn-group-toggle>.btn-group>.btn input[type=radio]{position:absolute;clip:rect(0,0,0,0);pointer-events:none}.input-group{position:relative;display:-webkit-box;display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;-webkit-box-align:stretch;-ms-flex-align:stretch;align-items:stretch;width:100%}.input-group>.custom-file,.input-group>.custom-select,.input-group>.form-control{position:relative;-webkit-box-flex:1;-ms-flex:1 1 auto;flex:1 1 auto;width:1%;margin-bottom:0}.input-group>.custom-file:focus,.input-group>.custom-select:focus,.input-group>.form-control:focus{z-index:3}.input-group>.custom-file+.custom-file,.input-group>.custom-file+.custom-select,.input-group>.custom-file+.form-control,.input-group>.custom-select+.custom-file,.input-group>.custom-select+.custom-select,.input-group>.custom-select+.form-control,.input-group>.form-control+.custom-file,.input-group>.form-control+.custom-select,.input-group>.form-control+.form-control{margin-left:-1px}.input-group>.custom-select:not(:last-child),.input-group>.form-control:not(:last-child){border-top-right-radius:0;border-bottom-right-radius:0}.input-group>.custom-select:not(:first-child),.input-group>.form-control:not(:first-child){border-top-left-radius:0;border-bottom-left-radius:0}.input-group>.custom-file{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center}.input-group>.custom-file:not(:last-child) .custom-file-label,.input-group>.custom-file:not(:last-child) .custom-file-label::before{border-top-right-radius:0;border-bottom-right-radius:0}.input-group>.custom-file:not(:first-child) .custom-file-label,.input-group>.custom-file:not(:first-child) .custom-file-label::before{border-top-left-radius:0;border-bottom-left-radius:0}.input-group-append,.input-group-prepend{display:-webkit-box;display:-ms-flexbox;display:flex}.input-group-append .btn,.input-group-prepend .btn{position:relative;z-index:2}.input-group-append .btn+.btn,.input-group-append .btn+.input-group-text,.input-group-append .input-group-text+.btn,.input-group-append .input-group-text+.input-group-text,.input-group-prepend .btn+.btn,.input-group-prepend .btn+.input-group-text,.input-group-prepend .input-group-text+.btn,.input-group-prepend .input-group-text+.input-group-text{margin-left:-1px}.input-group-prepend{margin-right:-1px}.input-group-append{margin-left:-1px}.input-group-text{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;padding:.375rem .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 #ced4da;border-radius:.25rem}.input-group-text input[type=checkbox],.input-group-text input[type=radio]{margin-top:0}.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),.input-group>.input-group-append:not(:last-child)>.btn,.input-group>.input-group-append:not(:last-child)>.input-group-text,.input-group>.input-group-prepend>.btn,.input-group>.input-group-prepend>.input-group-text{border-top-right-radius:0;border-bottom-right-radius:0}.input-group>.input-group-append>.btn,.input-group>.input-group-append>.input-group-text,.input-group>.input-group-prepend:first-child>.btn:not(:first-child),.input-group>.input-group-prepend:first-child>.input-group-text:not(:first-child),.input-group>.input-group-prepend:not(:first-child)>.btn,.input-group>.input-group-prepend:not(:first-child)>.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-inline{display:-webkit-inline-box;display:-ms-inline-flexbox;display:inline-flex;margin-right:1rem}.custom-control-input{position:absolute;z-index:-1;opacity:0}.custom-control-input:checked~.custom-control-label::before{color:#fff;background-color:#007bff}.custom-control-input:focus~.custom-control-label::before{box-shadow:0 0 0 1px #fff,0 0 0 .2rem rgba(0,123,255,.25)}.custom-control-input:active~.custom-control-label::before{color:#fff;background-color:#b3d7ff}.custom-control-input:disabled~.custom-control-label{color:#6c757d}.custom-control-input:disabled~.custom-control-label::before{background-color:#e9ecef}.custom-control-label{margin-bottom:0}.custom-control-label::before{position:absolute;top:.25rem;left:0;display:block;width:1rem;height:1rem;pointer-events:none;content:"";-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;background-color:#dee2e6}.custom-control-label::after{position:absolute;top:.25rem;left:0;display:block;width:1rem;height:1rem;content:"";background-repeat:no-repeat;background-position:center center;background-size:50% 50%}.custom-checkbox .custom-control-label::before{border-radius:.25rem}.custom-checkbox .custom-control-input:checked~.custom-control-label::before{background-color:#007bff}.custom-checkbox .custom-control-input:checked~.custom-control-label::after{background-image:url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath fill='%23fff' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z'/%3E%3C/svg%3E")}.custom-checkbox .custom-control-input:indeterminate~.custom-control-label::before{background-color:#007bff}.custom-checkbox .custom-control-input:indeterminate~.custom-control-label::after{background-image:url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' 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,.5)}.custom-checkbox .custom-control-input:disabled:indeterminate~.custom-control-label::before{background-color:rgba(0,123,255,.5)}.custom-radio .custom-control-label::before{border-radius:50%}.custom-radio .custom-control-input:checked~.custom-control-label::before{background-color:#007bff}.custom-radio .custom-control-input:checked~.custom-control-label::after{background-image:url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3E%3Ccircle r='3' fill='%23fff'/%3E%3C/svg%3E")}.custom-radio .custom-control-input:disabled:checked~.custom-control-label::before{background-color:rgba(0,123,255,.5)}.custom-select{display:inline-block;width:100%;height:calc(2.25rem + 2px);padding:.375rem 1.75rem .375rem .75rem;line-height:1.5;color:#495057;vertical-align:middle;background:#fff url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 4 5'%3E%3Cpath fill='%23343a40' d='M2 0L0 2h4zm0 5L0 3h4z'/%3E%3C/svg%3E") no-repeat right .75rem center;background-size:8px 10px;border:1px solid #ced4da;border-radius:.25rem;-webkit-appearance:none;-moz-appearance:none;appearance:none}.custom-select:focus{border-color:#80bdff;outline:0;box-shadow:inset 0 1px 2px rgba(0,0,0,.075),0 0 5px rgba(128,189,255,.5)}.custom-select:focus::-ms-value{color:#495057;background-color:#fff}.custom-select[multiple],.custom-select[size]:not([size="1"]){height:auto;padding-right:.75rem;background-image:none}.custom-select:disabled{color:#6c757d;background-color:#e9ecef}.custom-select::-ms-expand{opacity:0}.custom-select-sm{height:calc(1.8125rem + 2px);padding-top:.375rem;padding-bottom:.375rem;font-size:75%}.custom-select-lg{height:calc(2.875rem + 2px);padding-top:.375rem;padding-bottom:.375rem;font-size:125%}.custom-file{position:relative;display:inline-block;width:100%;height:calc(2.25rem + 2px);margin-bottom:0}.custom-file-input{position:relative;z-index:2;width:100%;height:calc(2.25rem + 2px);margin:0;opacity:0}.custom-file-input:focus~.custom-file-control{border-color:#80bdff;box-shadow:0 0 0 .2rem rgba(0,123,255,.25)}.custom-file-input:focus~.custom-file-control::before{border-color:#80bdff}.custom-file-input:lang(en)~.custom-file-label::after{content:"Browse"}.custom-file-label{position:absolute;top:0;right:0;left:0;z-index:1;height:calc(2.25rem + 2px);padding:.375rem .75rem;line-height:1.5;color:#495057;background-color:#fff;border:1px solid #ced4da;border-radius:.25rem}.custom-file-label::after{position:absolute;top:0;right:0;bottom:0;z-index:3;display:block;height:calc(calc(2.25rem + 2px) - 1px * 2);padding:.375rem .75rem;line-height:1.5;color:#495057;content:"Browse";background-color:#e9ecef;border-left:1px solid #ced4da;border-radius:0 .25rem .25rem 0}.nav{display:-webkit-box;display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;padding-left:0;margin-bottom:0;list-style:none}.nav-link{display:block;padding:.5rem 1rem}.nav-link:focus,.nav-link:hover{text-decoration:none}.nav-link.disabled{color:#6c757d}.nav-tabs{border-bottom:1px solid #dee2e6}.nav-tabs .nav-item{margin-bottom:-1px}.nav-tabs .nav-link{border:1px solid transparent;border-top-left-radius:.25rem;border-top-right-radius:.25rem}.nav-tabs .nav-link:focus,.nav-tabs .nav-link:hover{border-color:#e9ecef #e9ecef #dee2e6}.nav-tabs .nav-link.disabled{color:#6c757d;background-color:transparent;border-color:transparent}.nav-tabs .nav-item.show .nav-link,.nav-tabs .nav-link.active{color:#495057;background-color:#fff;border-color:#dee2e6 #dee2e6 #fff}.nav-tabs .dropdown-menu{margin-top:-1px;border-top-left-radius:0;border-top-right-radius:0}.nav-pills .nav-link{border-radius:.25rem}.nav-pills .nav-link.active,.nav-pills .show>.nav-link{color:#fff;background-color:#007bff}.nav-fill .nav-item{-webkit-box-flex:1;-ms-flex:1 1 auto;flex:1 1 auto;text-align:center}.nav-justified .nav-item{-ms-flex-preferred-size:0;flex-basis:0;-webkit-box-flex:1;-ms-flex-positive:1;flex-grow:1;text-align:center}.tab-content>.tab-pane{display:none}.tab-content>.active{display:block}.navbar{position:relative;display:-webkit-box;display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:justify;-ms-flex-pack:justify;justify-content:space-between;padding:.5rem 1rem}.navbar>.container,.navbar>.container-fluid{display:-webkit-box;display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:justify;-ms-flex-pack:justify;justify-content:space-between}.navbar-brand{display:inline-block;padding-top:.3125rem;padding-bottom:.3125rem;margin-right:1rem;font-size:1.25rem;line-height:inherit;white-space:nowrap}.navbar-brand:focus,.navbar-brand:hover{text-decoration:none}.navbar-nav{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;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-text{display:inline-block;padding-top:.5rem;padding-bottom:.5rem}.navbar-collapse{-ms-flex-preferred-size:100%;flex-basis:100%;-webkit-box-flex:1;-ms-flex-positive:1;flex-grow:1;-webkit-box-align:center;-ms-flex-align:center;align-items:center}.navbar-toggler{padding:.25rem .75rem;font-size:1.25rem;line-height:1;background-color:transparent;border:1px solid transparent;border-radius:.25rem}.navbar-toggler:focus,.navbar-toggler:hover{text-decoration:none}.navbar-toggler:not(:disabled):not(.disabled){cursor:pointer}.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:575.98px){.navbar-expand-sm>.container,.navbar-expand-sm>.container-fluid{padding-right:0;padding-left:0}}@media (min-width:576px){.navbar-expand-sm{-webkit-box-orient:horizontal;-webkit-box-direction:normal;-ms-flex-flow:row nowrap;flex-flow:row nowrap;-webkit-box-pack:start;-ms-flex-pack:start;justify-content:flex-start}.navbar-expand-sm .navbar-nav{-webkit-box-orient:horizontal;-webkit-box-direction:normal;-ms-flex-direction:row;flex-direction:row}.navbar-expand-sm .navbar-nav .dropdown-menu{position:absolute}.navbar-expand-sm .navbar-nav .dropdown-menu-right{right:0;left:auto}.navbar-expand-sm .navbar-nav .nav-link{padding-right:.5rem;padding-left:.5rem}.navbar-expand-sm>.container,.navbar-expand-sm>.container-fluid{-ms-flex-wrap:nowrap;flex-wrap:nowrap}.navbar-expand-sm .navbar-collapse{display:-webkit-box!important;display:-ms-flexbox!important;display:flex!important;-ms-flex-preferred-size:auto;flex-basis:auto}.navbar-expand-sm .navbar-toggler{display:none}.navbar-expand-sm .dropup .dropdown-menu{top:auto;bottom: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{-webkit-box-orient:horizontal;-webkit-box-direction:normal;-ms-flex-flow:row nowrap;flex-flow:row nowrap;-webkit-box-pack:start;-ms-flex-pack:start;justify-content:flex-start}.navbar-expand-md .navbar-nav{-webkit-box-orient:horizontal;-webkit-box-direction:normal;-ms-flex-direction:row;flex-direction:row}.navbar-expand-md .navbar-nav .dropdown-menu{position:absolute}.navbar-expand-md .navbar-nav .dropdown-menu-right{right:0;left:auto}.navbar-expand-md .navbar-nav .nav-link{padding-right:.5rem;padding-left:.5rem}.navbar-expand-md>.container,.navbar-expand-md>.container-fluid{-ms-flex-wrap:nowrap;flex-wrap:nowrap}.navbar-expand-md .navbar-collapse{display:-webkit-box!important;display:-ms-flexbox!important;display:flex!important;-ms-flex-preferred-size:auto;flex-basis:auto}.navbar-expand-md .navbar-toggler{display:none}.navbar-expand-md .dropup .dropdown-menu{top:auto;bottom:100%}}@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{-webkit-box-orient:horizontal;-webkit-box-direction:normal;-ms-flex-flow:row nowrap;flex-flow:row nowrap;-webkit-box-pack:start;-ms-flex-pack:start;justify-content:flex-start}.navbar-expand-lg .navbar-nav{-webkit-box-orient:horizontal;-webkit-box-direction:normal;-ms-flex-direction:row;flex-direction:row}.navbar-expand-lg .navbar-nav .dropdown-menu{position:absolute}.navbar-expand-lg .navbar-nav .dropdown-menu-right{right:0;left:auto}.navbar-expand-lg .navbar-nav .nav-link{padding-right:.5rem;padding-left:.5rem}.navbar-expand-lg>.container,.navbar-expand-lg>.container-fluid{-ms-flex-wrap:nowrap;flex-wrap:nowrap}.navbar-expand-lg .navbar-collapse{display:-webkit-box!important;display:-ms-flexbox!important;display:flex!important;-ms-flex-preferred-size:auto;flex-basis:auto}.navbar-expand-lg .navbar-toggler{display:none}.navbar-expand-lg .dropup .dropdown-menu{top:auto;bottom:100%}}@media (max-width:1199.98px){.navbar-expand-xl>.container,.navbar-expand-xl>.container-fluid{padding-right:0;padding-left:0}}@media (min-width:1200px){.navbar-expand-xl{-webkit-box-orient:horizontal;-webkit-box-direction:normal;-ms-flex-flow:row nowrap;flex-flow:row nowrap;-webkit-box-pack:start;-ms-flex-pack:start;justify-content:flex-start}.navbar-expand-xl .navbar-nav{-webkit-box-orient:horizontal;-webkit-box-direction:normal;-ms-flex-direction:row;flex-direction:row}.navbar-expand-xl .navbar-nav .dropdown-menu{position:absolute}.navbar-expand-xl .navbar-nav .dropdown-menu-right{right:0;left:auto}.navbar-expand-xl .navbar-nav .nav-link{padding-right:.5rem;padding-left:.5rem}.navbar-expand-xl>.container,.navbar-expand-xl>.container-fluid{-ms-flex-wrap:nowrap;flex-wrap:nowrap}.navbar-expand-xl .navbar-collapse{display:-webkit-box!important;display:-ms-flexbox!important;display:flex!important;-ms-flex-preferred-size:auto;flex-basis:auto}.navbar-expand-xl .navbar-toggler{display:none}.navbar-expand-xl .dropup .dropdown-menu{top:auto;bottom:100%}}.navbar-expand{-webkit-box-orient:horizontal;-webkit-box-direction:normal;-ms-flex-flow:row nowrap;flex-flow:row nowrap;-webkit-box-pack:start;-ms-flex-pack:start;justify-content:flex-start}.navbar-expand>.container,.navbar-expand>.container-fluid{padding-right:0;padding-left:0}.navbar-expand .navbar-nav{-webkit-box-orient:horizontal;-webkit-box-direction:normal;-ms-flex-direction:row;flex-direction:row}.navbar-expand .navbar-nav .dropdown-menu{position:absolute}.navbar-expand .navbar-nav .dropdown-menu-right{right:0;left:auto}.navbar-expand .navbar-nav .nav-link{padding-right:.5rem;padding-left:.5rem}.navbar-expand>.container,.navbar-expand>.container-fluid{-ms-flex-wrap:nowrap;flex-wrap:nowrap}.navbar-expand .navbar-collapse{display:-webkit-box!important;display:-ms-flexbox!important;display:flex!important;-ms-flex-preferred-size:auto;flex-basis:auto}.navbar-expand .navbar-toggler{display:none}.navbar-expand .dropup .dropdown-menu{top:auto;bottom:100%}.navbar-light .navbar-brand{color:rgba(0,0,0,.9)}.navbar-light .navbar-brand:focus,.navbar-light .navbar-brand:hover{color:rgba(0,0,0,.9)}.navbar-light .navbar-nav .nav-link{color:rgba(0,0,0,.5)}.navbar-light .navbar-nav .nav-link:focus,.navbar-light .navbar-nav .nav-link:hover{color:rgba(0,0,0,.7)}.navbar-light .navbar-nav .nav-link.disabled{color:rgba(0,0,0,.3)}.navbar-light .navbar-nav .active>.nav-link,.navbar-light .navbar-nav .nav-link.active,.navbar-light .navbar-nav .nav-link.show,.navbar-light .navbar-nav .show>.nav-link{color:rgba(0,0,0,.9)}.navbar-light .navbar-toggler{color:rgba(0,0,0,.5);border-color:rgba(0,0,0,.1)}.navbar-light .navbar-toggler-icon{background-image:url("data:image/svg+xml;charset=utf8,%3Csvg viewBox='0 0 30 30' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath stroke='rgba(0, 0, 0, 0.5)' stroke-width='2' stroke-linecap='round' stroke-miterlimit='10' d='M4 7h22M4 15h22M4 23h22'/%3E%3C/svg%3E")}.navbar-light .navbar-text{color:rgba(0,0,0,.5)}.navbar-light .navbar-text a{color:rgba(0,0,0,.9)}.navbar-light .navbar-text a:focus,.navbar-light .navbar-text a:hover{color:rgba(0,0,0,.9)}.navbar-dark .navbar-brand{color:#fff}.navbar-dark .navbar-brand:focus,.navbar-dark .navbar-brand:hover{color:#fff}.navbar-dark .navbar-nav .nav-link{color:rgba(255,255,255,.5)}.navbar-dark .navbar-nav .nav-link:focus,.navbar-dark .navbar-nav .nav-link:hover{color:rgba(255,255,255,.75)}.navbar-dark .navbar-nav .nav-link.disabled{color:rgba(255,255,255,.25)}.navbar-dark .navbar-nav .active>.nav-link,.navbar-dark .navbar-nav .nav-link.active,.navbar-dark .navbar-nav .nav-link.show,.navbar-dark .navbar-nav .show>.nav-link{color:#fff}.navbar-dark .navbar-toggler{color:rgba(255,255,255,.5);border-color:rgba(255,255,255,.1)}.navbar-dark .navbar-toggler-icon{background-image:url("data:image/svg+xml;charset=utf8,%3Csvg viewBox='0 0 30 30' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath stroke='rgba(255, 255, 255, 0.5)' stroke-width='2' stroke-linecap='round' stroke-miterlimit='10' d='M4 7h22M4 15h22M4 23h22'/%3E%3C/svg%3E")}.navbar-dark .navbar-text{color:rgba(255,255,255,.5)}.navbar-dark .navbar-text a{color:#fff}.navbar-dark .navbar-text a:focus,.navbar-dark .navbar-text a:hover{color:#fff}.card{position:relative;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;min-width:0;word-wrap:break-word;background-color:#fff;background-clip:border-box;border:1px solid rgba(0,0,0,.125);border-radius:.25rem}.card>hr{margin-right:0;margin-left:0}.card>.list-group:first-child .list-group-item:first-child{border-top-left-radius:.25rem;border-top-right-radius:.25rem}.card>.list-group:last-child .list-group-item:last-child{border-bottom-right-radius:.25rem;border-bottom-left-radius:.25rem}.card-body{-webkit-box-flex:1;-ms-flex:1 1 auto;flex:1 1 auto;padding:1.25rem}.card-title{margin-bottom:.75rem}.card-subtitle{margin-top:-.375rem;margin-bottom:0}.card-text:last-child{margin-bottom:0}.card-link:hover{text-decoration:none}.card-link+.card-link{margin-left:1.25rem}.card-header{padding:.75rem 1.25rem;margin-bottom:0;background-color:rgba(0,0,0,.03);border-bottom:1px solid rgba(0,0,0,.125)}.card-header:first-child{border-radius:calc(.25rem - 1px) calc(.25rem - 1px) 0 0}.card-header+.list-group .list-group-item:first-child{border-top:0}.card-footer{padding:.75rem 1.25rem;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.125)}.card-footer:last-child{border-radius:0 0 calc(.25rem - 1px) calc(.25rem - 1px)}.card-header-tabs{margin-right:-.625rem;margin-bottom:-.75rem;margin-left:-.625rem;border-bottom:0}.card-header-pills{margin-right:-.625rem;margin-left:-.625rem}.card-img-overlay{position:absolute;top:0;right:0;bottom:0;left:0;padding:1.25rem}.card-img{width:100%;border-radius:calc(.25rem - 1px)}.card-img-top{width:100%;border-top-left-radius:calc(.25rem - 1px);border-top-right-radius:calc(.25rem - 1px)}.card-img-bottom{width:100%;border-bottom-right-radius:calc(.25rem - 1px);border-bottom-left-radius:calc(.25rem - 1px)}.card-deck{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column}.card-deck .card{margin-bottom:15px}@media (min-width:576px){.card-deck{-webkit-box-orient:horizontal;-webkit-box-direction:normal;-ms-flex-flow:row wrap;flex-flow:row wrap;margin-right:-15px;margin-left:-15px}.card-deck .card{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-flex:1;-ms-flex:1 0 0%;flex:1 0 0%;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;margin-right:15px;margin-bottom:0;margin-left:15px}}.card-group{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column}.card-group>.card{margin-bottom:15px}@media (min-width:576px){.card-group{-webkit-box-orient:horizontal;-webkit-box-direction:normal;-ms-flex-flow:row wrap;flex-flow:row wrap}.card-group>.card{-webkit-box-flex:1;-ms-flex:1 0 0%;flex:1 0 0%;margin-bottom:0}.card-group>.card+.card{margin-left:0;border-left:0}.card-group>.card:first-child{border-top-right-radius:0;border-bottom-right-radius:0}.card-group>.card:first-child .card-header,.card-group>.card:first-child .card-img-top{border-top-right-radius:0}.card-group>.card:first-child .card-footer,.card-group>.card:first-child .card-img-bottom{border-bottom-right-radius:0}.card-group>.card:last-child{border-top-left-radius:0;border-bottom-left-radius:0}.card-group>.card:last-child .card-header,.card-group>.card:last-child .card-img-top{border-top-left-radius:0}.card-group>.card:last-child .card-footer,.card-group>.card:last-child .card-img-bottom{border-bottom-left-radius:0}.card-group>.card:only-child{border-radius:.25rem}.card-group>.card:only-child .card-header,.card-group>.card:only-child .card-img-top{border-top-left-radius:.25rem;border-top-right-radius:.25rem}.card-group>.card:only-child .card-footer,.card-group>.card:only-child .card-img-bottom{border-bottom-right-radius:.25rem;border-bottom-left-radius:.25rem}.card-group>.card:not(:first-child):not(:last-child):not(:only-child){border-radius:0}.card-group>.card:not(:first-child):not(:last-child):not(:only-child) .card-footer,.card-group>.card:not(:first-child):not(:last-child):not(:only-child) .card-header,.card-group>.card:not(:first-child):not(:last-child):not(:only-child) .card-img-bottom,.card-group>.card:not(:first-child):not(:last-child):not(:only-child) .card-img-top{border-radius:0}}.card-columns .card{margin-bottom:.75rem}@media (min-width:576px){.card-columns{-webkit-column-count:3;-moz-column-count:3;column-count:3;-webkit-column-gap:1.25rem;-moz-column-gap:1.25rem;column-gap:1.25rem}.card-columns .card{display:inline-block;width:100%}}.breadcrumb{display:-webkit-box;display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;padding:.75rem 1rem;margin-bottom:1rem;list-style:none;background-color:#e9ecef;border-radius:.25rem}.breadcrumb-item+.breadcrumb-item::before{display:inline-block;padding-right:.5rem;padding-left:.5rem;color:#6c757d;content:"/"}.breadcrumb-item+.breadcrumb-item:hover::before{text-decoration:underline}.breadcrumb-item+.breadcrumb-item:hover::before{text-decoration:none}.breadcrumb-item.active{color:#6c757d}.pagination{display:-webkit-box;display:-ms-flexbox;display:flex;padding-left:0;list-style:none;border-radius:.25rem}.page-link{position:relative;display:block;padding:.5rem .75rem;margin-left:-1px;line-height:1.25;color:#007bff;background-color:#fff;border:1px solid #dee2e6}.page-link:hover{color:#0056b3;text-decoration:none;background-color:#e9ecef;border-color:#dee2e6}.page-link:focus{z-index:2;outline:0;box-shadow:0 0 0 .2rem rgba(0,123,255,.25)}.page-link:not(:disabled):not(.disabled){cursor:pointer}.page-item:first-child .page-link{margin-left:0;border-top-left-radius:.25rem;border-bottom-left-radius:.25rem}.page-item:last-child .page-link{border-top-right-radius:.25rem;border-bottom-right-radius:.25rem}.page-item.active .page-link{z-index:1;color:#fff;background-color:#007bff;border-color:#007bff}.page-item.disabled .page-link{color:#6c757d;pointer-events:none;cursor:auto;background-color:#fff;border-color:#dee2e6}.pagination-lg .page-link{padding:.75rem 1.5rem;font-size:1.25rem;line-height:1.5}.pagination-lg .page-item:first-child .page-link{border-top-left-radius:.3rem;border-bottom-left-radius:.3rem}.pagination-lg .page-item:last-child .page-link{border-top-right-radius:.3rem;border-bottom-right-radius:.3rem}.pagination-sm .page-link{padding:.25rem .5rem;font-size:.875rem;line-height:1.5}.pagination-sm .page-item:first-child .page-link{border-top-left-radius:.2rem;border-bottom-left-radius:.2rem}.pagination-sm .page-item:last-child .page-link{border-top-right-radius:.2rem;border-bottom-right-radius:.2rem}.badge{display:inline-block;padding:.25em .4em;font-size:75%;font-weight:700;line-height:1;text-align:center;white-space:nowrap;vertical-align:baseline;border-radius:.25rem}.badge:empty{display:none}.btn .badge{position:relative;top:-1px}.badge-pill{padding-right:.6em;padding-left:.6em;border-radius:10rem}.badge-primary{color:#fff;background-color:#007bff}.badge-primary[href]:focus,.badge-primary[href]:hover{color:#fff;text-decoration:none;background-color:#0062cc}.badge-secondary{color:#fff;background-color:#6c757d}.badge-secondary[href]:focus,.badge-secondary[href]:hover{color:#fff;text-decoration:none;background-color:#545b62}.badge-success{color:#fff;background-color:#28a745}.badge-success[href]:focus,.badge-success[href]:hover{color:#fff;text-decoration:none;background-color:#1e7e34}.badge-info{color:#fff;background-color:#17a2b8}.badge-info[href]:focus,.badge-info[href]:hover{color:#fff;text-decoration:none;background-color:#117a8b}.badge-warning{color:#212529;background-color:#ffc107}.badge-warning[href]:focus,.badge-warning[href]:hover{color:#212529;text-decoration:none;background-color:#d39e00}.badge-danger{color:#fff;background-color:#dc3545}.badge-danger[href]:focus,.badge-danger[href]:hover{color:#fff;text-decoration:none;background-color:#bd2130}.badge-light{color:#212529;background-color:#f8f9fa}.badge-light[href]:focus,.badge-light[href]:hover{color:#212529;text-decoration:none;background-color:#dae0e5}.badge-dark{color:#fff;background-color:#343a40}.badge-dark[href]:focus,.badge-dark[href]:hover{color:#fff;text-decoration:none;background-color:#1d2124}.jumbotron{padding:2rem 1rem;margin-bottom:2rem;background-color:#e9ecef;border-radius:.3rem}@media (min-width:576px){.jumbotron{padding:4rem 2rem}}.jumbotron-fluid{padding-right:0;padding-left:0;border-radius:0}.alert{position:relative;padding:.75rem 1.25rem;margin-bottom:1rem;border:1px solid transparent;border-radius:.25rem}.alert-heading{color:inherit}.alert-link{font-weight:700}.alert-dismissible{padding-right:4rem}.alert-dismissible .close{position:absolute;top:0;right:0;padding:.75rem 1.25rem;color:inherit}.alert-primary{color:#004085;background-color:#cce5ff;border-color:#b8daff}.alert-primary hr{border-top-color:#9fcdff}.alert-primary .alert-link{color:#002752}.alert-secondary{color:#383d41;background-color:#e2e3e5;border-color:#d6d8db}.alert-secondary hr{border-top-color:#c8cbcf}.alert-secondary .alert-link{color:#202326}.alert-success{color:#155724;background-color:#d4edda;border-color:#c3e6cb}.alert-success hr{border-top-color:#b1dfbb}.alert-success .alert-link{color:#0b2e13}.alert-info{color:#0c5460;background-color:#d1ecf1;border-color:#bee5eb}.alert-info hr{border-top-color:#abdde5}.alert-info .alert-link{color:#062c33}.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}.alert-light{color:#818182;background-color:#fefefe;border-color:#fdfdfe}.alert-light hr{border-top-color:#ececf6}.alert-light .alert-link{color:#686868}.alert-dark{color:#1b1e21;background-color:#d6d8d9;border-color:#c6c8ca}.alert-dark hr{border-top-color:#b9bbbe}.alert-dark .alert-link{color:#040505}@-webkit-keyframes progress-bar-stripes{from{background-position:1rem 0}to{background-position:0 0}}@keyframes progress-bar-stripes{from{background-position:1rem 0}to{background-position:0 0}}.progress{display:-webkit-box;display:-ms-flexbox;display:flex;height:1rem;overflow:hidden;font-size:.75rem;background-color:#e9ecef;border-radius:.25rem}.progress-bar{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;color:#fff;text-align:center;background-color:#007bff;transition:width .6s ease}.progress-bar-striped{background-image:linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-size:1rem 1rem}.progress-bar-animated{-webkit-animation:progress-bar-stripes 1s linear infinite;animation:progress-bar-stripes 1s linear infinite}.media{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:start;-ms-flex-align:start;align-items:flex-start}.media-body{-webkit-box-flex:1;-ms-flex:1;flex:1}.list-group{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;padding-left:0;margin-bottom:0}.list-group-item-action{width:100%;color:#495057;text-align:inherit}.list-group-item-action:focus,.list-group-item-action:hover{color:#495057;text-decoration:none;background-color:#f8f9fa}.list-group-item-action:active{color:#212529;background-color:#e9ecef}.list-group-item{position:relative;display:block;padding:.75rem 1.25rem;margin-bottom:-1px;background-color:#fff;border:1px solid rgba(0,0,0,.125)}.list-group-item:first-child{border-top-left-radius:.25rem;border-top-right-radius:.25rem}.list-group-item:last-child{margin-bottom:0;border-bottom-right-radius:.25rem;border-bottom-left-radius:.25rem}.list-group-item:focus,.list-group-item:hover{z-index:1;text-decoration:none}.list-group-item.disabled,.list-group-item:disabled{color:#6c757d;background-color:#fff}.list-group-item.active{z-index:2;color:#fff;background-color:#007bff;border-color:#007bff}.list-group-flush .list-group-item{border-right:0;border-left:0;border-radius:0}.list-group-flush:first-child .list-group-item:first-child{border-top:0}.list-group-flush:last-child .list-group-item:last-child{border-bottom:0}.list-group-item-primary{color:#004085;background-color:#b8daff}.list-group-item-primary.list-group-item-action:focus,.list-group-item-primary.list-group-item-action:hover{color:#004085;background-color:#9fcdff}.list-group-item-primary.list-group-item-action.active{color:#fff;background-color:#004085;border-color:#004085}.list-group-item-secondary{color:#383d41;background-color:#d6d8db}.list-group-item-secondary.list-group-item-action:focus,.list-group-item-secondary.list-group-item-action:hover{color:#383d41;background-color:#c8cbcf}.list-group-item-secondary.list-group-item-action.active{color:#fff;background-color:#383d41;border-color:#383d41}.list-group-item-success{color:#155724;background-color:#c3e6cb}.list-group-item-success.list-group-item-action:focus,.list-group-item-success.list-group-item-action:hover{color:#155724;background-color:#b1dfbb}.list-group-item-success.list-group-item-action.active{color:#fff;background-color:#155724;border-color:#155724}.list-group-item-info{color:#0c5460;background-color:#bee5eb}.list-group-item-info.list-group-item-action:focus,.list-group-item-info.list-group-item-action:hover{color:#0c5460;background-color:#abdde5}.list-group-item-info.list-group-item-action.active{color:#fff;background-color:#0c5460;border-color:#0c5460}.list-group-item-warning{color:#856404;background-color:#ffeeba}.list-group-item-warning.list-group-item-action:focus,.list-group-item-warning.list-group-item-action:hover{color:#856404;background-color:#ffe8a1}.list-group-item-warning.list-group-item-action.active{color:#fff;background-color:#856404;border-color:#856404}.list-group-item-danger{color:#721c24;background-color:#f5c6cb}.list-group-item-danger.list-group-item-action:focus,.list-group-item-danger.list-group-item-action:hover{color:#721c24;background-color:#f1b0b7}.list-group-item-danger.list-group-item-action.active{color:#fff;background-color:#721c24;border-color:#721c24}.list-group-item-light{color:#818182;background-color:#fdfdfe}.list-group-item-light.list-group-item-action:focus,.list-group-item-light.list-group-item-action:hover{color:#818182;background-color:#ececf6}.list-group-item-light.list-group-item-action.active{color:#fff;background-color:#818182;border-color:#818182}.list-group-item-dark{color:#1b1e21;background-color:#c6c8ca}.list-group-item-dark.list-group-item-action:focus,.list-group-item-dark.list-group-item-action:hover{color:#1b1e21;background-color:#b9bbbe}.list-group-item-dark.list-group-item-action.active{color:#fff;background-color:#1b1e21;border-color:#1b1e21}.close{float:right;font-size:1.5rem;font-weight:700;line-height:1;color:#000;text-shadow:0 1px 0 #fff;opacity:.5}.close:focus,.close:hover{color:#000;text-decoration:none;opacity:.75}.close:not(:disabled):not(.disabled){cursor:pointer}button.close{padding:0;background-color:transparent;border:0;-webkit-appearance:none}.modal-open{overflow:hidden}.modal{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1050;display:none;overflow:hidden;outline:0}.modal-open .modal{overflow-x:hidden;overflow-y:auto}.modal-dialog{position:relative;width:auto;margin:.5rem;pointer-events:none}.modal.fade .modal-dialog{transition:-webkit-transform .3s ease-out;transition:transform .3s ease-out;transition:transform .3s ease-out,-webkit-transform .3s ease-out;-webkit-transform:translate(0,-25%);transform:translate(0,-25%)}.modal.show .modal-dialog{-webkit-transform:translate(0,0);transform:translate(0,0)}.modal-dialog-centered{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;min-height:calc(100% - (.5rem * 2))}.modal-content{position:relative;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;width:100%;pointer-events:auto;background-color:#fff;background-clip:padding-box;border:1px solid rgba(0,0,0,.2);border-radius:.3rem;outline:0}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1040;background-color:#000}.modal-backdrop.fade{opacity:0}.modal-backdrop.show{opacity:.5}.modal-header{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:start;-ms-flex-align:start;align-items:flex-start;-webkit-box-pack:justify;-ms-flex-pack:justify;justify-content:space-between;padding:1rem;border-bottom:1px solid #e9ecef;border-top-left-radius:.3rem;border-top-right-radius:.3rem}.modal-header .close{padding:1rem;margin:-1rem -1rem -1rem auto}.modal-title{margin-bottom:0;line-height:1.5}.modal-body{position:relative;-webkit-box-flex:1;-ms-flex:1 1 auto;flex:1 1 auto;padding:1rem}.modal-footer{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:end;-ms-flex-pack:end;justify-content:flex-end;padding:1rem;border-top:1px solid #e9ecef}.modal-footer>:not(:first-child){margin-left:.25rem}.modal-footer>:not(:last-child){margin-right:.25rem}.modal-scrollbar-measure{position:absolute;top:-9999px;width:50px;height:50px;overflow:scroll}@media (min-width:576px){.modal-dialog{max-width:500px;margin:1.75rem auto}.modal-dialog-centered{min-height:calc(100% - (1.75rem * 2))}.modal-sm{max-width:300px}}@media (min-width:992px){.modal-lg{max-width:800px}}.tooltip{position:absolute;z-index:1070;display:block;margin:0;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",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:.875rem;word-wrap:break-word;opacity:0}.tooltip.show{opacity:.9}.tooltip .arrow{position:absolute;display:block;width:.8rem;height:.4rem}.tooltip .arrow::before{position:absolute;content:"";border-color:transparent;border-style:solid}.bs-tooltip-auto[x-placement^=top],.bs-tooltip-top{padding:.4rem 0}.bs-tooltip-auto[x-placement^=top] .arrow,.bs-tooltip-top .arrow{bottom:0}.bs-tooltip-auto[x-placement^=top] .arrow::before,.bs-tooltip-top .arrow::before{top:0;border-width:.4rem .4rem 0;border-top-color:#000}.bs-tooltip-auto[x-placement^=right],.bs-tooltip-right{padding:0 .4rem}.bs-tooltip-auto[x-placement^=right] .arrow,.bs-tooltip-right .arrow{left:0;width:.4rem;height:.8rem}.bs-tooltip-auto[x-placement^=right] .arrow::before,.bs-tooltip-right .arrow::before{right:0;border-width:.4rem .4rem .4rem 0;border-right-color:#000}.bs-tooltip-auto[x-placement^=bottom],.bs-tooltip-bottom{padding:.4rem 0}.bs-tooltip-auto[x-placement^=bottom] .arrow,.bs-tooltip-bottom .arrow{top:0}.bs-tooltip-auto[x-placement^=bottom] .arrow::before,.bs-tooltip-bottom .arrow::before{bottom:0;border-width:0 .4rem .4rem;border-bottom-color:#000}.bs-tooltip-auto[x-placement^=left],.bs-tooltip-left{padding:0 .4rem}.bs-tooltip-auto[x-placement^=left] .arrow,.bs-tooltip-left .arrow{right:0;width:.4rem;height:.8rem}.bs-tooltip-auto[x-placement^=left] .arrow::before,.bs-tooltip-left .arrow::before{left:0;border-width:.4rem 0 .4rem .4rem;border-left-color:#000}.tooltip-inner{max-width:200px;padding:.25rem .5rem;color:#fff;text-align:center;background-color:#000;border-radius:.25rem}.popover{position:absolute;top:0;left:0;z-index:1060;display:block;max-width:276px;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",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:.875rem;word-wrap:break-word;background-color:#fff;background-clip:padding-box;border:1px solid rgba(0,0,0,.2);border-radius:.3rem}.popover .arrow{position:absolute;display:block;width:1rem;height:.5rem;margin:0 .3rem}.popover .arrow::after,.popover .arrow::before{position:absolute;display:block;content:"";border-color:transparent;border-style:solid}.bs-popover-auto[x-placement^=top],.bs-popover-top{margin-bottom:.5rem}.bs-popover-auto[x-placement^=top] .arrow,.bs-popover-top .arrow{bottom:calc((.5rem + 1px) * -1)}.bs-popover-auto[x-placement^=top] .arrow::after,.bs-popover-auto[x-placement^=top] .arrow::before,.bs-popover-top .arrow::after,.bs-popover-top .arrow::before{border-width:.5rem .5rem 0}.bs-popover-auto[x-placement^=top] .arrow::before,.bs-popover-top .arrow::before{bottom:0;border-top-color:rgba(0,0,0,.25)}.bs-popover-auto[x-placement^=top] .arrow::after,.bs-popover-top .arrow::after{bottom:1px;border-top-color:#fff}.bs-popover-auto[x-placement^=right],.bs-popover-right{margin-left:.5rem}.bs-popover-auto[x-placement^=right] .arrow,.bs-popover-right .arrow{left:calc((.5rem + 1px) * -1);width:.5rem;height:1rem;margin:.3rem 0}.bs-popover-auto[x-placement^=right] .arrow::after,.bs-popover-auto[x-placement^=right] .arrow::before,.bs-popover-right .arrow::after,.bs-popover-right .arrow::before{border-width:.5rem .5rem .5rem 0}.bs-popover-auto[x-placement^=right] .arrow::before,.bs-popover-right .arrow::before{left:0;border-right-color:rgba(0,0,0,.25)}.bs-popover-auto[x-placement^=right] .arrow::after,.bs-popover-right .arrow::after{left:1px;border-right-color:#fff}.bs-popover-auto[x-placement^=bottom],.bs-popover-bottom{margin-top:.5rem}.bs-popover-auto[x-placement^=bottom] .arrow,.bs-popover-bottom .arrow{top:calc((.5rem + 1px) * -1)}.bs-popover-auto[x-placement^=bottom] .arrow::after,.bs-popover-auto[x-placement^=bottom] .arrow::before,.bs-popover-bottom .arrow::after,.bs-popover-bottom .arrow::before{border-width:0 .5rem .5rem .5rem}.bs-popover-auto[x-placement^=bottom] .arrow::before,.bs-popover-bottom .arrow::before{top:0;border-bottom-color:rgba(0,0,0,.25)}.bs-popover-auto[x-placement^=bottom] .arrow::after,.bs-popover-bottom .arrow::after{top:1px;border-bottom-color:#fff}.bs-popover-auto[x-placement^=bottom] .popover-header::before,.bs-popover-bottom .popover-header::before{position:absolute;top:0;left:50%;display:block;width:1rem;margin-left:-.5rem;content:"";border-bottom:1px solid #f7f7f7}.bs-popover-auto[x-placement^=left],.bs-popover-left{margin-right:.5rem}.bs-popover-auto[x-placement^=left] .arrow,.bs-popover-left .arrow{right:calc((.5rem + 1px) * -1);width:.5rem;height:1rem;margin:.3rem 0}.bs-popover-auto[x-placement^=left] .arrow::after,.bs-popover-auto[x-placement^=left] .arrow::before,.bs-popover-left .arrow::after,.bs-popover-left .arrow::before{border-width:.5rem 0 .5rem .5rem}.bs-popover-auto[x-placement^=left] .arrow::before,.bs-popover-left .arrow::before{right:0;border-left-color:rgba(0,0,0,.25)}.bs-popover-auto[x-placement^=left] .arrow::after,.bs-popover-left .arrow::after{right:1px;border-left-color:#fff}.popover-header{padding:.5rem .75rem;margin-bottom:0;font-size:1rem;color:inherit;background-color:#f7f7f7;border-bottom:1px solid #ebebeb;border-top-left-radius:calc(.3rem - 1px);border-top-right-radius:calc(.3rem - 1px)}.popover-header:empty{display:none}.popover-body{padding:.5rem .75rem;color:#212529}.carousel{position:relative}.carousel-inner{position:relative;width:100%;overflow:hidden}.carousel-item{position:relative;display:none;-webkit-box-align:center;-ms-flex-align:center;align-items:center;width:100%;transition:-webkit-transform .6s ease;transition:transform .6s ease;transition:transform .6s ease,-webkit-transform .6s ease;-webkit-backface-visibility:hidden;backface-visibility:hidden;-webkit-perspective:1000px;perspective:1000px}.carousel-item-next,.carousel-item-prev,.carousel-item.active{display:block}.carousel-item-next,.carousel-item-prev{position:absolute;top:0}.carousel-item-next.carousel-item-left,.carousel-item-prev.carousel-item-right{-webkit-transform:translateX(0);transform:translateX(0)}@supports ((-webkit-transform-style:preserve-3d) or (transform-style:preserve-3d)){.carousel-item-next.carousel-item-left,.carousel-item-prev.carousel-item-right{-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0)}}.active.carousel-item-right,.carousel-item-next{-webkit-transform:translateX(100%);transform:translateX(100%)}@supports ((-webkit-transform-style:preserve-3d) or (transform-style:preserve-3d)){.active.carousel-item-right,.carousel-item-next{-webkit-transform:translate3d(100%,0,0);transform:translate3d(100%,0,0)}}.active.carousel-item-left,.carousel-item-prev{-webkit-transform:translateX(-100%);transform:translateX(-100%)}@supports ((-webkit-transform-style:preserve-3d) or (transform-style:preserve-3d)){.active.carousel-item-left,.carousel-item-prev{-webkit-transform:translate3d(-100%,0,0);transform:translate3d(-100%,0,0)}}.carousel-control-next,.carousel-control-prev{position:absolute;top:0;bottom:0;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;width:15%;color:#fff;text-align:center;opacity:.5}.carousel-control-next:focus,.carousel-control-next:hover,.carousel-control-prev:focus,.carousel-control-prev:hover{color:#fff;text-decoration:none;outline:0;opacity:.9}.carousel-control-prev{left:0}.carousel-control-next{right:0}.carousel-control-next-icon,.carousel-control-prev-icon{display:inline-block;width:20px;height:20px;background:transparent no-repeat center center;background-size:100% 100%}.carousel-control-prev-icon{background-image:url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='%23fff' viewBox='0 0 8 8'%3E%3Cpath d='M5.25 0l-4 4 4 4 1.5-1.5-2.5-2.5 2.5-2.5-1.5-1.5z'/%3E%3C/svg%3E")}.carousel-control-next-icon{background-image:url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='%23fff' viewBox='0 0 8 8'%3E%3Cpath d='M2.75 0l-1.5 1.5 2.5 2.5-2.5 2.5 1.5 1.5 4-4-4-4z'/%3E%3C/svg%3E")}.carousel-indicators{position:absolute;right:0;bottom:10px;left:0;z-index:15;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;padding-left:0;margin-right:15%;margin-left:15%;list-style:none}.carousel-indicators li{position:relative;-webkit-box-flex:0;-ms-flex:0 1 auto;flex:0 1 auto;width:30px;height:3px;margin-right:3px;margin-left:3px;text-indent:-999px;background-color:rgba(255,255,255,.5)}.carousel-indicators li::before{position:absolute;top:-10px;left:0;display:inline-block;width:100%;height:10px;content:""}.carousel-indicators li::after{position:absolute;bottom:-10px;left:0;display:inline-block;width:100%;height:10px;content:""}.carousel-indicators .active{background-color:#fff}.carousel-caption{position:absolute;right:15%;bottom:20px;left:15%;z-index:10;padding-top:20px;padding-bottom:20px;color:#fff;text-align:center}.align-baseline{vertical-align:baseline!important}.align-top{vertical-align:top!important}.align-middle{vertical-align:middle!important}.align-bottom{vertical-align:bottom!important}.align-text-bottom{vertical-align:text-bottom!important}.align-text-top{vertical-align:text-top!important}.bg-primary{background-color:#007bff!important}a.bg-primary:focus,a.bg-primary:hover,button.bg-primary:focus,button.bg-primary:hover{background-color:#0062cc!important}.bg-secondary{background-color:#6c757d!important}a.bg-secondary:focus,a.bg-secondary:hover,button.bg-secondary:focus,button.bg-secondary:hover{background-color:#545b62!important}.bg-success{background-color:#28a745!important}a.bg-success:focus,a.bg-success:hover,button.bg-success:focus,button.bg-success:hover{background-color:#1e7e34!important}.bg-info{background-color:#17a2b8!important}a.bg-info:focus,a.bg-info:hover,button.bg-info:focus,button.bg-info:hover{background-color:#117a8b!important}.bg-warning{background-color:#ffc107!important}a.bg-warning:focus,a.bg-warning:hover,button.bg-warning:focus,button.bg-warning:hover{background-color:#d39e00!important}.bg-danger{background-color:#dc3545!important}a.bg-danger:focus,a.bg-danger:hover,button.bg-danger:focus,button.bg-danger:hover{background-color:#bd2130!important}.bg-light{background-color:#f8f9fa!important}a.bg-light:focus,a.bg-light:hover,button.bg-light:focus,button.bg-light:hover{background-color:#dae0e5!important}.bg-dark{background-color:#343a40!important}a.bg-dark:focus,a.bg-dark:hover,button.bg-dark:focus,button.bg-dark:hover{background-color:#1d2124!important}.bg-white{background-color:#fff!important}.bg-transparent{background-color:transparent!important}.border{border:1px solid #dee2e6!important}.border-top{border-top:1px solid #dee2e6!important}.border-right{border-right:1px solid #dee2e6!important}.border-bottom{border-bottom:1px solid #dee2e6!important}.border-left{border-left:1px solid #dee2e6!important}.border-0{border:0!important}.border-top-0{border-top:0!important}.border-right-0{border-right:0!important}.border-bottom-0{border-bottom:0!important}.border-left-0{border-left:0!important}.border-primary{border-color:#007bff!important}.border-secondary{border-color:#6c757d!important}.border-success{border-color:#28a745!important}.border-info{border-color:#17a2b8!important}.border-warning{border-color:#ffc107!important}.border-danger{border-color:#dc3545!important}.border-light{border-color:#f8f9fa!important}.border-dark{border-color:#343a40!important}.border-white{border-color:#fff!important}.rounded{border-radius:.25rem!important}.rounded-top{border-top-left-radius:.25rem!important;border-top-right-radius:.25rem!important}.rounded-right{border-top-right-radius:.25rem!important;border-bottom-right-radius:.25rem!important}.rounded-bottom{border-bottom-right-radius:.25rem!important;border-bottom-left-radius:.25rem!important}.rounded-left{border-top-left-radius:.25rem!important;border-bottom-left-radius:.25rem!important}.rounded-circle{border-radius:50%!important}.rounded-0{border-radius:0!important}.clearfix::after{display:block;clear:both;content:""}.d-none{display:none!important}.d-inline{display:inline!important}.d-inline-block{display:inline-block!important}.d-block{display:block!important}.d-table{display:table!important}.d-table-row{display:table-row!important}.d-table-cell{display:table-cell!important}.d-flex{display:-webkit-box!important;display:-ms-flexbox!important;display:flex!important}.d-inline-flex{display:-webkit-inline-box!important;display:-ms-inline-flexbox!important;display:inline-flex!important}@media (min-width:576px){.d-sm-none{display:none!important}.d-sm-inline{display:inline!important}.d-sm-inline-block{display:inline-block!important}.d-sm-block{display:block!important}.d-sm-table{display:table!important}.d-sm-table-row{display:table-row!important}.d-sm-table-cell{display:table-cell!important}.d-sm-flex{display:-webkit-box!important;display:-ms-flexbox!important;display:flex!important}.d-sm-inline-flex{display:-webkit-inline-box!important;display:-ms-inline-flexbox!important;display:inline-flex!important}}@media (min-width:768px){.d-md-none{display:none!important}.d-md-inline{display:inline!important}.d-md-inline-block{display:inline-block!important}.d-md-block{display:block!important}.d-md-table{display:table!important}.d-md-table-row{display:table-row!important}.d-md-table-cell{display:table-cell!important}.d-md-flex{display:-webkit-box!important;display:-ms-flexbox!important;display:flex!important}.d-md-inline-flex{display:-webkit-inline-box!important;display:-ms-inline-flexbox!important;display:inline-flex!important}}@media (min-width:992px){.d-lg-none{display:none!important}.d-lg-inline{display:inline!important}.d-lg-inline-block{display:inline-block!important}.d-lg-block{display:block!important}.d-lg-table{display:table!important}.d-lg-table-row{display:table-row!important}.d-lg-table-cell{display:table-cell!important}.d-lg-flex{display:-webkit-box!important;display:-ms-flexbox!important;display:flex!important}.d-lg-inline-flex{display:-webkit-inline-box!important;display:-ms-inline-flexbox!important;display:inline-flex!important}}@media (min-width:1200px){.d-xl-none{display:none!important}.d-xl-inline{display:inline!important}.d-xl-inline-block{display:inline-block!important}.d-xl-block{display:block!important}.d-xl-table{display:table!important}.d-xl-table-row{display:table-row!important}.d-xl-table-cell{display:table-cell!important}.d-xl-flex{display:-webkit-box!important;display:-ms-flexbox!important;display:flex!important}.d-xl-inline-flex{display:-webkit-inline-box!important;display:-ms-inline-flexbox!important;display:inline-flex!important}}@media print{.d-print-none{display:none!important}.d-print-inline{display:inline!important}.d-print-inline-block{display:inline-block!important}.d-print-block{display:block!important}.d-print-table{display:table!important}.d-print-table-row{display:table-row!important}.d-print-table-cell{display:table-cell!important}.d-print-flex{display:-webkit-box!important;display:-ms-flexbox!important;display:flex!important}.d-print-inline-flex{display:-webkit-inline-box!important;display:-ms-inline-flexbox!important;display:inline-flex!important}}.embed-responsive{position:relative;display:block;width:100%;padding:0;overflow:hidden}.embed-responsive::before{display:block;content:""}.embed-responsive .embed-responsive-item,.embed-responsive embed,.embed-responsive iframe,.embed-responsive object,.embed-responsive video{position:absolute;top:0;bottom:0;left:0;width:100%;height:100%;border:0}.embed-responsive-21by9::before{padding-top:42.857143%}.embed-responsive-16by9::before{padding-top:56.25%}.embed-responsive-4by3::before{padding-top:75%}.embed-responsive-1by1::before{padding-top:100%}.flex-row{-webkit-box-orient:horizontal!important;-webkit-box-direction:normal!important;-ms-flex-direction:row!important;flex-direction:row!important}.flex-column{-webkit-box-orient:vertical!important;-webkit-box-direction:normal!important;-ms-flex-direction:column!important;flex-direction:column!important}.flex-row-reverse{-webkit-box-orient:horizontal!important;-webkit-box-direction:reverse!important;-ms-flex-direction:row-reverse!important;flex-direction:row-reverse!important}.flex-column-reverse{-webkit-box-orient:vertical!important;-webkit-box-direction:reverse!important;-ms-flex-direction:column-reverse!important;flex-direction:column-reverse!important}.flex-wrap{-ms-flex-wrap:wrap!important;flex-wrap:wrap!important}.flex-nowrap{-ms-flex-wrap:nowrap!important;flex-wrap:nowrap!important}.flex-wrap-reverse{-ms-flex-wrap:wrap-reverse!important;flex-wrap:wrap-reverse!important}.justify-content-start{-webkit-box-pack:start!important;-ms-flex-pack:start!important;justify-content:flex-start!important}.justify-content-end{-webkit-box-pack:end!important;-ms-flex-pack:end!important;justify-content:flex-end!important}.justify-content-center{-webkit-box-pack:center!important;-ms-flex-pack:center!important;justify-content:center!important}.justify-content-between{-webkit-box-pack:justify!important;-ms-flex-pack:justify!important;justify-content:space-between!important}.justify-content-around{-ms-flex-pack:distribute!important;justify-content:space-around!important}.align-items-start{-webkit-box-align:start!important;-ms-flex-align:start!important;align-items:flex-start!important}.align-items-end{-webkit-box-align:end!important;-ms-flex-align:end!important;align-items:flex-end!important}.align-items-center{-webkit-box-align:center!important;-ms-flex-align:center!important;align-items:center!important}.align-items-baseline{-webkit-box-align:baseline!important;-ms-flex-align:baseline!important;align-items:baseline!important}.align-items-stretch{-webkit-box-align:stretch!important;-ms-flex-align:stretch!important;align-items:stretch!important}.align-content-start{-ms-flex-line-pack:start!important;align-content:flex-start!important}.align-content-end{-ms-flex-line-pack:end!important;align-content:flex-end!important}.align-content-center{-ms-flex-line-pack:center!important;align-content:center!important}.align-content-between{-ms-flex-line-pack:justify!important;align-content:space-between!important}.align-content-around{-ms-flex-line-pack:distribute!important;align-content:space-around!important}.align-content-stretch{-ms-flex-line-pack:stretch!important;align-content:stretch!important}.align-self-auto{-ms-flex-item-align:auto!important;align-self:auto!important}.align-self-start{-ms-flex-item-align:start!important;align-self:flex-start!important}.align-self-end{-ms-flex-item-align:end!important;align-self:flex-end!important}.align-self-center{-ms-flex-item-align:center!important;align-self:center!important}.align-self-baseline{-ms-flex-item-align:baseline!important;align-self:baseline!important}.align-self-stretch{-ms-flex-item-align:stretch!important;align-self:stretch!important}@media (min-width:576px){.flex-sm-row{-webkit-box-orient:horizontal!important;-webkit-box-direction:normal!important;-ms-flex-direction:row!important;flex-direction:row!important}.flex-sm-column{-webkit-box-orient:vertical!important;-webkit-box-direction:normal!important;-ms-flex-direction:column!important;flex-direction:column!important}.flex-sm-row-reverse{-webkit-box-orient:horizontal!important;-webkit-box-direction:reverse!important;-ms-flex-direction:row-reverse!important;flex-direction:row-reverse!important}.flex-sm-column-reverse{-webkit-box-orient:vertical!important;-webkit-box-direction:reverse!important;-ms-flex-direction:column-reverse!important;flex-direction:column-reverse!important}.flex-sm-wrap{-ms-flex-wrap:wrap!important;flex-wrap:wrap!important}.flex-sm-nowrap{-ms-flex-wrap:nowrap!important;flex-wrap:nowrap!important}.flex-sm-wrap-reverse{-ms-flex-wrap:wrap-reverse!important;flex-wrap:wrap-reverse!important}.justify-content-sm-start{-webkit-box-pack:start!important;-ms-flex-pack:start!important;justify-content:flex-start!important}.justify-content-sm-end{-webkit-box-pack:end!important;-ms-flex-pack:end!important;justify-content:flex-end!important}.justify-content-sm-center{-webkit-box-pack:center!important;-ms-flex-pack:center!important;justify-content:center!important}.justify-content-sm-between{-webkit-box-pack:justify!important;-ms-flex-pack:justify!important;justify-content:space-between!important}.justify-content-sm-around{-ms-flex-pack:distribute!important;justify-content:space-around!important}.align-items-sm-start{-webkit-box-align:start!important;-ms-flex-align:start!important;align-items:flex-start!important}.align-items-sm-end{-webkit-box-align:end!important;-ms-flex-align:end!important;align-items:flex-end!important}.align-items-sm-center{-webkit-box-align:center!important;-ms-flex-align:center!important;align-items:center!important}.align-items-sm-baseline{-webkit-box-align:baseline!important;-ms-flex-align:baseline!important;align-items:baseline!important}.align-items-sm-stretch{-webkit-box-align:stretch!important;-ms-flex-align:stretch!important;align-items:stretch!important}.align-content-sm-start{-ms-flex-line-pack:start!important;align-content:flex-start!important}.align-content-sm-end{-ms-flex-line-pack:end!important;align-content:flex-end!important}.align-content-sm-center{-ms-flex-line-pack:center!important;align-content:center!important}.align-content-sm-between{-ms-flex-line-pack:justify!important;align-content:space-between!important}.align-content-sm-around{-ms-flex-line-pack:distribute!important;align-content:space-around!important}.align-content-sm-stretch{-ms-flex-line-pack:stretch!important;align-content:stretch!important}.align-self-sm-auto{-ms-flex-item-align:auto!important;align-self:auto!important}.align-self-sm-start{-ms-flex-item-align:start!important;align-self:flex-start!important}.align-self-sm-end{-ms-flex-item-align:end!important;align-self:flex-end!important}.align-self-sm-center{-ms-flex-item-align:center!important;align-self:center!important}.align-self-sm-baseline{-ms-flex-item-align:baseline!important;align-self:baseline!important}.align-self-sm-stretch{-ms-flex-item-align:stretch!important;align-self:stretch!important}}@media (min-width:768px){.flex-md-row{-webkit-box-orient:horizontal!important;-webkit-box-direction:normal!important;-ms-flex-direction:row!important;flex-direction:row!important}.flex-md-column{-webkit-box-orient:vertical!important;-webkit-box-direction:normal!important;-ms-flex-direction:column!important;flex-direction:column!important}.flex-md-row-reverse{-webkit-box-orient:horizontal!important;-webkit-box-direction:reverse!important;-ms-flex-direction:row-reverse!important;flex-direction:row-reverse!important}.flex-md-column-reverse{-webkit-box-orient:vertical!important;-webkit-box-direction:reverse!important;-ms-flex-direction:column-reverse!important;flex-direction:column-reverse!important}.flex-md-wrap{-ms-flex-wrap:wrap!important;flex-wrap:wrap!important}.flex-md-nowrap{-ms-flex-wrap:nowrap!important;flex-wrap:nowrap!important}.flex-md-wrap-reverse{-ms-flex-wrap:wrap-reverse!important;flex-wrap:wrap-reverse!important}.justify-content-md-start{-webkit-box-pack:start!important;-ms-flex-pack:start!important;justify-content:flex-start!important}.justify-content-md-end{-webkit-box-pack:end!important;-ms-flex-pack:end!important;justify-content:flex-end!important}.justify-content-md-center{-webkit-box-pack:center!important;-ms-flex-pack:center!important;justify-content:center!important}.justify-content-md-between{-webkit-box-pack:justify!important;-ms-flex-pack:justify!important;justify-content:space-between!important}.justify-content-md-around{-ms-flex-pack:distribute!important;justify-content:space-around!important}.align-items-md-start{-webkit-box-align:start!important;-ms-flex-align:start!important;align-items:flex-start!important}.align-items-md-end{-webkit-box-align:end!important;-ms-flex-align:end!important;align-items:flex-end!important}.align-items-md-center{-webkit-box-align:center!important;-ms-flex-align:center!important;align-items:center!important}.align-items-md-baseline{-webkit-box-align:baseline!important;-ms-flex-align:baseline!important;align-items:baseline!important}.align-items-md-stretch{-webkit-box-align:stretch!important;-ms-flex-align:stretch!important;align-items:stretch!important}.align-content-md-start{-ms-flex-line-pack:start!important;align-content:flex-start!important}.align-content-md-end{-ms-flex-line-pack:end!important;align-content:flex-end!important}.align-content-md-center{-ms-flex-line-pack:center!important;align-content:center!important}.align-content-md-between{-ms-flex-line-pack:justify!important;align-content:space-between!important}.align-content-md-around{-ms-flex-line-pack:distribute!important;align-content:space-around!important}.align-content-md-stretch{-ms-flex-line-pack:stretch!important;align-content:stretch!important}.align-self-md-auto{-ms-flex-item-align:auto!important;align-self:auto!important}.align-self-md-start{-ms-flex-item-align:start!important;align-self:flex-start!important}.align-self-md-end{-ms-flex-item-align:end!important;align-self:flex-end!important}.align-self-md-center{-ms-flex-item-align:center!important;align-self:center!important}.align-self-md-baseline{-ms-flex-item-align:baseline!important;align-self:baseline!important}.align-self-md-stretch{-ms-flex-item-align:stretch!important;align-self:stretch!important}}@media (min-width:992px){.flex-lg-row{-webkit-box-orient:horizontal!important;-webkit-box-direction:normal!important;-ms-flex-direction:row!important;flex-direction:row!important}.flex-lg-column{-webkit-box-orient:vertical!important;-webkit-box-direction:normal!important;-ms-flex-direction:column!important;flex-direction:column!important}.flex-lg-row-reverse{-webkit-box-orient:horizontal!important;-webkit-box-direction:reverse!important;-ms-flex-direction:row-reverse!important;flex-direction:row-reverse!important}.flex-lg-column-reverse{-webkit-box-orient:vertical!important;-webkit-box-direction:reverse!important;-ms-flex-direction:column-reverse!important;flex-direction:column-reverse!important}.flex-lg-wrap{-ms-flex-wrap:wrap!important;flex-wrap:wrap!important}.flex-lg-nowrap{-ms-flex-wrap:nowrap!important;flex-wrap:nowrap!important}.flex-lg-wrap-reverse{-ms-flex-wrap:wrap-reverse!important;flex-wrap:wrap-reverse!important}.justify-content-lg-start{-webkit-box-pack:start!important;-ms-flex-pack:start!important;justify-content:flex-start!important}.justify-content-lg-end{-webkit-box-pack:end!important;-ms-flex-pack:end!important;justify-content:flex-end!important}.justify-content-lg-center{-webkit-box-pack:center!important;-ms-flex-pack:center!important;justify-content:center!important}.justify-content-lg-between{-webkit-box-pack:justify!important;-ms-flex-pack:justify!important;justify-content:space-between!important}.justify-content-lg-around{-ms-flex-pack:distribute!important;justify-content:space-around!important}.align-items-lg-start{-webkit-box-align:start!important;-ms-flex-align:start!important;align-items:flex-start!important}.align-items-lg-end{-webkit-box-align:end!important;-ms-flex-align:end!important;align-items:flex-end!important}.align-items-lg-center{-webkit-box-align:center!important;-ms-flex-align:center!important;align-items:center!important}.align-items-lg-baseline{-webkit-box-align:baseline!important;-ms-flex-align:baseline!important;align-items:baseline!important}.align-items-lg-stretch{-webkit-box-align:stretch!important;-ms-flex-align:stretch!important;align-items:stretch!important}.align-content-lg-start{-ms-flex-line-pack:start!important;align-content:flex-start!important}.align-content-lg-end{-ms-flex-line-pack:end!important;align-content:flex-end!important}.align-content-lg-center{-ms-flex-line-pack:center!important;align-content:center!important}.align-content-lg-between{-ms-flex-line-pack:justify!important;align-content:space-between!important}.align-content-lg-around{-ms-flex-line-pack:distribute!important;align-content:space-around!important}.align-content-lg-stretch{-ms-flex-line-pack:stretch!important;align-content:stretch!important}.align-self-lg-auto{-ms-flex-item-align:auto!important;align-self:auto!important}.align-self-lg-start{-ms-flex-item-align:start!important;align-self:flex-start!important}.align-self-lg-end{-ms-flex-item-align:end!important;align-self:flex-end!important}.align-self-lg-center{-ms-flex-item-align:center!important;align-self:center!important}.align-self-lg-baseline{-ms-flex-item-align:baseline!important;align-self:baseline!important}.align-self-lg-stretch{-ms-flex-item-align:stretch!important;align-self:stretch!important}}@media (min-width:1200px){.flex-xl-row{-webkit-box-orient:horizontal!important;-webkit-box-direction:normal!important;-ms-flex-direction:row!important;flex-direction:row!important}.flex-xl-column{-webkit-box-orient:vertical!important;-webkit-box-direction:normal!important;-ms-flex-direction:column!important;flex-direction:column!important}.flex-xl-row-reverse{-webkit-box-orient:horizontal!important;-webkit-box-direction:reverse!important;-ms-flex-direction:row-reverse!important;flex-direction:row-reverse!important}.flex-xl-column-reverse{-webkit-box-orient:vertical!important;-webkit-box-direction:reverse!important;-ms-flex-direction:column-reverse!important;flex-direction:column-reverse!important}.flex-xl-wrap{-ms-flex-wrap:wrap!important;flex-wrap:wrap!important}.flex-xl-nowrap{-ms-flex-wrap:nowrap!important;flex-wrap:nowrap!important}.flex-xl-wrap-reverse{-ms-flex-wrap:wrap-reverse!important;flex-wrap:wrap-reverse!important}.justify-content-xl-start{-webkit-box-pack:start!important;-ms-flex-pack:start!important;justify-content:flex-start!important}.justify-content-xl-end{-webkit-box-pack:end!important;-ms-flex-pack:end!important;justify-content:flex-end!important}.justify-content-xl-center{-webkit-box-pack:center!important;-ms-flex-pack:center!important;justify-content:center!important}.justify-content-xl-between{-webkit-box-pack:justify!important;-ms-flex-pack:justify!important;justify-content:space-between!important}.justify-content-xl-around{-ms-flex-pack:distribute!important;justify-content:space-around!important}.align-items-xl-start{-webkit-box-align:start!important;-ms-flex-align:start!important;align-items:flex-start!important}.align-items-xl-end{-webkit-box-align:end!important;-ms-flex-align:end!important;align-items:flex-end!important}.align-items-xl-center{-webkit-box-align:center!important;-ms-flex-align:center!important;align-items:center!important}.align-items-xl-baseline{-webkit-box-align:baseline!important;-ms-flex-align:baseline!important;align-items:baseline!important}.align-items-xl-stretch{-webkit-box-align:stretch!important;-ms-flex-align:stretch!important;align-items:stretch!important}.align-content-xl-start{-ms-flex-line-pack:start!important;align-content:flex-start!important}.align-content-xl-end{-ms-flex-line-pack:end!important;align-content:flex-end!important}.align-content-xl-center{-ms-flex-line-pack:center!important;align-content:center!important}.align-content-xl-between{-ms-flex-line-pack:justify!important;align-content:space-between!important}.align-content-xl-around{-ms-flex-line-pack:distribute!important;align-content:space-around!important}.align-content-xl-stretch{-ms-flex-line-pack:stretch!important;align-content:stretch!important}.align-self-xl-auto{-ms-flex-item-align:auto!important;align-self:auto!important}.align-self-xl-start{-ms-flex-item-align:start!important;align-self:flex-start!important}.align-self-xl-end{-ms-flex-item-align:end!important;align-self:flex-end!important}.align-self-xl-center{-ms-flex-item-align:center!important;align-self:center!important}.align-self-xl-baseline{-ms-flex-item-align:baseline!important;align-self:baseline!important}.align-self-xl-stretch{-ms-flex-item-align:stretch!important;align-self:stretch!important}}.float-left{float:left!important}.float-right{float:right!important}.float-none{float:none!important}@media (min-width:576px){.float-sm-left{float:left!important}.float-sm-right{float:right!important}.float-sm-none{float:none!important}}@media (min-width:768px){.float-md-left{float:left!important}.float-md-right{float:right!important}.float-md-none{float:none!important}}@media (min-width:992px){.float-lg-left{float:left!important}.float-lg-right{float:right!important}.float-lg-none{float:none!important}}@media (min-width:1200px){.float-xl-left{float:left!important}.float-xl-right{float:right!important}.float-xl-none{float:none!important}}.position-static{position:static!important}.position-relative{position:relative!important}.position-absolute{position:absolute!important}.position-fixed{position:fixed!important}.position-sticky{position:-webkit-sticky!important;position:sticky!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:-webkit-sticky) or (position:sticky)){.sticky-top{position:-webkit-sticky;position:sticky;top:0;z-index:1020}}.sr-only{position:absolute;width:1px;height:1px;padding:0;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;-webkit-clip-path:inset(50%);clip-path:inset(50%);border:0}.sr-only-focusable:active,.sr-only-focusable:focus{position:static;width:auto;height:auto;overflow:visible;clip:auto;white-space:normal;-webkit-clip-path:none;clip-path:none}.w-25{width:25%!important}.w-50{width:50%!important}.w-75{width:75%!important}.w-100{width:100%!important}.h-25{height:25%!important}.h-50{height:50%!important}.h-75{height:75%!important}.h-100{height:100%!important}.mw-100{max-width:100%!important}.mh-100{max-height:100%!important}.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}.ml-0,.mx-0{margin-left:0!important}.m-1{margin:.25rem!important}.mt-1,.my-1{margin-top:.25rem!important}.mr-1,.mx-1{margin-right:.25rem!important}.mb-1,.my-1{margin-bottom:.25rem!important}.ml-1,.mx-1{margin-left:.25rem!important}.m-2{margin:.5rem!important}.mt-2,.my-2{margin-top:.5rem!important}.mr-2,.mx-2{margin-right:.5rem!important}.mb-2,.my-2{margin-bottom:.5rem!important}.ml-2,.mx-2{margin-left:.5rem!important}.m-3{margin:1rem!important}.mt-3,.my-3{margin-top:1rem!important}.mr-3,.mx-3{margin-right:1rem!important}.mb-3,.my-3{margin-bottom:1rem!important}.ml-3,.mx-3{margin-left:1rem!important}.m-4{margin:1.5rem!important}.mt-4,.my-4{margin-top:1.5rem!important}.mr-4,.mx-4{margin-right:1.5rem!important}.mb-4,.my-4{margin-bottom:1.5rem!important}.ml-4,.mx-4{margin-left:1.5rem!important}.m-5{margin:3rem!important}.mt-5,.my-5{margin-top:3rem!important}.mr-5,.mx-5{margin-right:3rem!important}.mb-5,.my-5{margin-bottom:3rem!important}.ml-5,.mx-5{margin-left:3rem!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}.p-1{padding:.25rem!important}.pt-1,.py-1{padding-top:.25rem!important}.pr-1,.px-1{padding-right:.25rem!important}.pb-1,.py-1{padding-bottom:.25rem!important}.pl-1,.px-1{padding-left:.25rem!important}.p-2{padding:.5rem!important}.pt-2,.py-2{padding-top:.5rem!important}.pr-2,.px-2{padding-right:.5rem!important}.pb-2,.py-2{padding-bottom:.5rem!important}.pl-2,.px-2{padding-left:.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}.pr-4,.px-4{padding-right:1.5rem!important}.pb-4,.py-4{padding-bottom:1.5rem!important}.pl-4,.px-4{padding-left:1.5rem!important}.p-5{padding:3rem!important}.pt-5,.py-5{padding-top:3rem!important}.pr-5,.px-5{padding-right:3rem!important}.pb-5,.py-5{padding-bottom:3rem!important}.pl-5,.px-5{padding-left:3rem!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 (min-width:576px){.m-sm-0{margin:0!important}.mt-sm-0,.my-sm-0{margin-top:0!important}.mr-sm-0,.mx-sm-0{margin-right:0!important}.mb-sm-0,.my-sm-0{margin-bottom:0!important}.ml-sm-0,.mx-sm-0{margin-left:0!important}.m-sm-1{margin:.25rem!important}.mt-sm-1,.my-sm-1{margin-top:.25rem!important}.mr-sm-1,.mx-sm-1{margin-right:.25rem!important}.mb-sm-1,.my-sm-1{margin-bottom:.25rem!important}.ml-sm-1,.mx-sm-1{margin-left:.25rem!important}.m-sm-2{margin:.5rem!important}.mt-sm-2,.my-sm-2{margin-top:.5rem!important}.mr-sm-2,.mx-sm-2{margin-right:.5rem!important}.mb-sm-2,.my-sm-2{margin-bottom:.5rem!important}.ml-sm-2,.mx-sm-2{margin-left:.5rem!important}.m-sm-3{margin:1rem!important}.mt-sm-3,.my-sm-3{margin-top:1rem!important}.mr-sm-3,.mx-sm-3{margin-right:1rem!important}.mb-sm-3,.my-sm-3{margin-bottom:1rem!important}.ml-sm-3,.mx-sm-3{margin-left:1rem!important}.m-sm-4{margin:1.5rem!important}.mt-sm-4,.my-sm-4{margin-top:1.5rem!important}.mr-sm-4,.mx-sm-4{margin-right:1.5rem!important}.mb-sm-4,.my-sm-4{margin-bottom:1.5rem!important}.ml-sm-4,.mx-sm-4{margin-left:1.5rem!important}.m-sm-5{margin:3rem!important}.mt-sm-5,.my-sm-5{margin-top:3rem!important}.mr-sm-5,.mx-sm-5{margin-right:3rem!important}.mb-sm-5,.my-sm-5{margin-bottom:3rem!important}.ml-sm-5,.mx-sm-5{margin-left:3rem!important}.p-sm-0{padding:0!important}.pt-sm-0,.py-sm-0{padding-top:0!important}.pr-sm-0,.px-sm-0{padding-right:0!important}.pb-sm-0,.py-sm-0{padding-bottom:0!important}.pl-sm-0,.px-sm-0{padding-left:0!important}.p-sm-1{padding:.25rem!important}.pt-sm-1,.py-sm-1{padding-top:.25rem!important}.pr-sm-1,.px-sm-1{padding-right:.25rem!important}.pb-sm-1,.py-sm-1{padding-bottom:.25rem!important}.pl-sm-1,.px-sm-1{padding-left:.25rem!important}.p-sm-2{padding:.5rem!important}.pt-sm-2,.py-sm-2{padding-top:.5rem!important}.pr-sm-2,.px-sm-2{padding-right:.5rem!important}.pb-sm-2,.py-sm-2{padding-bottom:.5rem!important}.pl-sm-2,.px-sm-2{padding-left:.5rem!important}.p-sm-3{padding:1rem!important}.pt-sm-3,.py-sm-3{padding-top:1rem!important}.pr-sm-3,.px-sm-3{padding-right:1rem!important}.pb-sm-3,.py-sm-3{padding-bottom:1rem!important}.pl-sm-3,.px-sm-3{padding-left:1rem!important}.p-sm-4{padding:1.5rem!important}.pt-sm-4,.py-sm-4{padding-top:1.5rem!important}.pr-sm-4,.px-sm-4{padding-right:1.5rem!important}.pb-sm-4,.py-sm-4{padding-bottom:1.5rem!important}.pl-sm-4,.px-sm-4{padding-left:1.5rem!important}.p-sm-5{padding:3rem!important}.pt-sm-5,.py-sm-5{padding-top:3rem!important}.pr-sm-5,.px-sm-5{padding-right:3rem!important}.pb-sm-5,.py-sm-5{padding-bottom:3rem!important}.pl-sm-5,.px-sm-5{padding-left:3rem!important}.m-sm-auto{margin:auto!important}.mt-sm-auto,.my-sm-auto{margin-top:auto!important}.mr-sm-auto,.mx-sm-auto{margin-right:auto!important}.mb-sm-auto,.my-sm-auto{margin-bottom:auto!important}.ml-sm-auto,.mx-sm-auto{margin-left:auto!important}}@media (min-width:768px){.m-md-0{margin:0!important}.mt-md-0,.my-md-0{margin-top:0!important}.mr-md-0,.mx-md-0{margin-right:0!important}.mb-md-0,.my-md-0{margin-bottom:0!important}.ml-md-0,.mx-md-0{margin-left:0!important}.m-md-1{margin:.25rem!important}.mt-md-1,.my-md-1{margin-top:.25rem!important}.mr-md-1,.mx-md-1{margin-right:.25rem!important}.mb-md-1,.my-md-1{margin-bottom:.25rem!important}.ml-md-1,.mx-md-1{margin-left:.25rem!important}.m-md-2{margin:.5rem!important}.mt-md-2,.my-md-2{margin-top:.5rem!important}.mr-md-2,.mx-md-2{margin-right:.5rem!important}.mb-md-2,.my-md-2{margin-bottom:.5rem!important}.ml-md-2,.mx-md-2{margin-left:.5rem!important}.m-md-3{margin:1rem!important}.mt-md-3,.my-md-3{margin-top:1rem!important}.mr-md-3,.mx-md-3{margin-right:1rem!important}.mb-md-3,.my-md-3{margin-bottom:1rem!important}.ml-md-3,.mx-md-3{margin-left:1rem!important}.m-md-4{margin:1.5rem!important}.mt-md-4,.my-md-4{margin-top:1.5rem!important}.mr-md-4,.mx-md-4{margin-right:1.5rem!important}.mb-md-4,.my-md-4{margin-bottom:1.5rem!important}.ml-md-4,.mx-md-4{margin-left:1.5rem!important}.m-md-5{margin:3rem!important}.mt-md-5,.my-md-5{margin-top:3rem!important}.mr-md-5,.mx-md-5{margin-right:3rem!important}.mb-md-5,.my-md-5{margin-bottom:3rem!important}.ml-md-5,.mx-md-5{margin-left:3rem!important}.p-md-0{padding:0!important}.pt-md-0,.py-md-0{padding-top:0!important}.pr-md-0,.px-md-0{padding-right:0!important}.pb-md-0,.py-md-0{padding-bottom:0!important}.pl-md-0,.px-md-0{padding-left:0!important}.p-md-1{padding:.25rem!important}.pt-md-1,.py-md-1{padding-top:.25rem!important}.pr-md-1,.px-md-1{padding-right:.25rem!important}.pb-md-1,.py-md-1{padding-bottom:.25rem!important}.pl-md-1,.px-md-1{padding-left:.25rem!important}.p-md-2{padding:.5rem!important}.pt-md-2,.py-md-2{padding-top:.5rem!important}.pr-md-2,.px-md-2{padding-right:.5rem!important}.pb-md-2,.py-md-2{padding-bottom:.5rem!important}.pl-md-2,.px-md-2{padding-left:.5rem!important}.p-md-3{padding:1rem!important}.pt-md-3,.py-md-3{padding-top:1rem!important}.pr-md-3,.px-md-3{padding-right:1rem!important}.pb-md-3,.py-md-3{padding-bottom:1rem!important}.pl-md-3,.px-md-3{padding-left:1rem!important}.p-md-4{padding:1.5rem!important}.pt-md-4,.py-md-4{padding-top:1.5rem!important}.pr-md-4,.px-md-4{padding-right:1.5rem!important}.pb-md-4,.py-md-4{padding-bottom:1.5rem!important}.pl-md-4,.px-md-4{padding-left:1.5rem!important}.p-md-5{padding:3rem!important}.pt-md-5,.py-md-5{padding-top:3rem!important}.pr-md-5,.px-md-5{padding-right:3rem!important}.pb-md-5,.py-md-5{padding-bottom:3rem!important}.pl-md-5,.px-md-5{padding-left:3rem!important}.m-md-auto{margin:auto!important}.mt-md-auto,.my-md-auto{margin-top:auto!important}.mr-md-auto,.mx-md-auto{margin-right:auto!important}.mb-md-auto,.my-md-auto{margin-bottom:auto!important}.ml-md-auto,.mx-md-auto{margin-left:auto!important}}@media (min-width:992px){.m-lg-0{margin:0!important}.mt-lg-0,.my-lg-0{margin-top:0!important}.mr-lg-0,.mx-lg-0{margin-right:0!important}.mb-lg-0,.my-lg-0{margin-bottom:0!important}.ml-lg-0,.mx-lg-0{margin-left:0!important}.m-lg-1{margin:.25rem!important}.mt-lg-1,.my-lg-1{margin-top:.25rem!important}.mr-lg-1,.mx-lg-1{margin-right:.25rem!important}.mb-lg-1,.my-lg-1{margin-bottom:.25rem!important}.ml-lg-1,.mx-lg-1{margin-left:.25rem!important}.m-lg-2{margin:.5rem!important}.mt-lg-2,.my-lg-2{margin-top:.5rem!important}.mr-lg-2,.mx-lg-2{margin-right:.5rem!important}.mb-lg-2,.my-lg-2{margin-bottom:.5rem!important}.ml-lg-2,.mx-lg-2{margin-left:.5rem!important}.m-lg-3{margin:1rem!important}.mt-lg-3,.my-lg-3{margin-top:1rem!important}.mr-lg-3,.mx-lg-3{margin-right:1rem!important}.mb-lg-3,.my-lg-3{margin-bottom:1rem!important}.ml-lg-3,.mx-lg-3{margin-left:1rem!important}.m-lg-4{margin:1.5rem!important}.mt-lg-4,.my-lg-4{margin-top:1.5rem!important}.mr-lg-4,.mx-lg-4{margin-right:1.5rem!important}.mb-lg-4,.my-lg-4{margin-bottom:1.5rem!important}.ml-lg-4,.mx-lg-4{margin-left:1.5rem!important}.m-lg-5{margin:3rem!important}.mt-lg-5,.my-lg-5{margin-top:3rem!important}.mr-lg-5,.mx-lg-5{margin-right:3rem!important}.mb-lg-5,.my-lg-5{margin-bottom:3rem!important}.ml-lg-5,.mx-lg-5{margin-left:3rem!important}.p-lg-0{padding:0!important}.pt-lg-0,.py-lg-0{padding-top:0!important}.pr-lg-0,.px-lg-0{padding-right:0!important}.pb-lg-0,.py-lg-0{padding-bottom:0!important}.pl-lg-0,.px-lg-0{padding-left:0!important}.p-lg-1{padding:.25rem!important}.pt-lg-1,.py-lg-1{padding-top:.25rem!important}.pr-lg-1,.px-lg-1{padding-right:.25rem!important}.pb-lg-1,.py-lg-1{padding-bottom:.25rem!important}.pl-lg-1,.px-lg-1{padding-left:.25rem!important}.p-lg-2{padding:.5rem!important}.pt-lg-2,.py-lg-2{padding-top:.5rem!important}.pr-lg-2,.px-lg-2{padding-right:.5rem!important}.pb-lg-2,.py-lg-2{padding-bottom:.5rem!important}.pl-lg-2,.px-lg-2{padding-left:.5rem!important}.p-lg-3{padding:1rem!important}.pt-lg-3,.py-lg-3{padding-top:1rem!important}.pr-lg-3,.px-lg-3{padding-right:1rem!important}.pb-lg-3,.py-lg-3{padding-bottom:1rem!important}.pl-lg-3,.px-lg-3{padding-left:1rem!important}.p-lg-4{padding:1.5rem!important}.pt-lg-4,.py-lg-4{padding-top:1.5rem!important}.pr-lg-4,.px-lg-4{padding-right:1.5rem!important}.pb-lg-4,.py-lg-4{padding-bottom:1.5rem!important}.pl-lg-4,.px-lg-4{padding-left:1.5rem!important}.p-lg-5{padding:3rem!important}.pt-lg-5,.py-lg-5{padding-top:3rem!important}.pr-lg-5,.px-lg-5{padding-right:3rem!important}.pb-lg-5,.py-lg-5{padding-bottom:3rem!important}.pl-lg-5,.px-lg-5{padding-left:3rem!important}.m-lg-auto{margin:auto!important}.mt-lg-auto,.my-lg-auto{margin-top:auto!important}.mr-lg-auto,.mx-lg-auto{margin-right:auto!important}.mb-lg-auto,.my-lg-auto{margin-bottom:auto!important}.ml-lg-auto,.mx-lg-auto{margin-left:auto!important}}@media (min-width:1200px){.m-xl-0{margin:0!important}.mt-xl-0,.my-xl-0{margin-top:0!important}.mr-xl-0,.mx-xl-0{margin-right:0!important}.mb-xl-0,.my-xl-0{margin-bottom:0!important}.ml-xl-0,.mx-xl-0{margin-left:0!important}.m-xl-1{margin:.25rem!important}.mt-xl-1,.my-xl-1{margin-top:.25rem!important}.mr-xl-1,.mx-xl-1{margin-right:.25rem!important}.mb-xl-1,.my-xl-1{margin-bottom:.25rem!important}.ml-xl-1,.mx-xl-1{margin-left:.25rem!important}.m-xl-2{margin:.5rem!important}.mt-xl-2,.my-xl-2{margin-top:.5rem!important}.mr-xl-2,.mx-xl-2{margin-right:.5rem!important}.mb-xl-2,.my-xl-2{margin-bottom:.5rem!important}.ml-xl-2,.mx-xl-2{margin-left:.5rem!important}.m-xl-3{margin:1rem!important}.mt-xl-3,.my-xl-3{margin-top:1rem!important}.mr-xl-3,.mx-xl-3{margin-right:1rem!important}.mb-xl-3,.my-xl-3{margin-bottom:1rem!important}.ml-xl-3,.mx-xl-3{margin-left:1rem!important}.m-xl-4{margin:1.5rem!important}.mt-xl-4,.my-xl-4{margin-top:1.5rem!important}.mr-xl-4,.mx-xl-4{margin-right:1.5rem!important}.mb-xl-4,.my-xl-4{margin-bottom:1.5rem!important}.ml-xl-4,.mx-xl-4{margin-left:1.5rem!important}.m-xl-5{margin:3rem!important}.mt-xl-5,.my-xl-5{margin-top:3rem!important}.mr-xl-5,.mx-xl-5{margin-right:3rem!important}.mb-xl-5,.my-xl-5{margin-bottom:3rem!important}.ml-xl-5,.mx-xl-5{margin-left:3rem!important}.p-xl-0{padding:0!important}.pt-xl-0,.py-xl-0{padding-top:0!important}.pr-xl-0,.px-xl-0{padding-right:0!important}.pb-xl-0,.py-xl-0{padding-bottom:0!important}.pl-xl-0,.px-xl-0{padding-left:0!important}.p-xl-1{padding:.25rem!important}.pt-xl-1,.py-xl-1{padding-top:.25rem!important}.pr-xl-1,.px-xl-1{padding-right:.25rem!important}.pb-xl-1,.py-xl-1{padding-bottom:.25rem!important}.pl-xl-1,.px-xl-1{padding-left:.25rem!important}.p-xl-2{padding:.5rem!important}.pt-xl-2,.py-xl-2{padding-top:.5rem!important}.pr-xl-2,.px-xl-2{padding-right:.5rem!important}.pb-xl-2,.py-xl-2{padding-bottom:.5rem!important}.pl-xl-2,.px-xl-2{padding-left:.5rem!important}.p-xl-3{padding:1rem!important}.pt-xl-3,.py-xl-3{padding-top:1rem!important}.pr-xl-3,.px-xl-3{padding-right:1rem!important}.pb-xl-3,.py-xl-3{padding-bottom:1rem!important}.pl-xl-3,.px-xl-3{padding-left:1rem!important}.p-xl-4{padding:1.5rem!important}.pt-xl-4,.py-xl-4{padding-top:1.5rem!important}.pr-xl-4,.px-xl-4{padding-right:1.5rem!important}.pb-xl-4,.py-xl-4{padding-bottom:1.5rem!important}.pl-xl-4,.px-xl-4{padding-left:1.5rem!important}.p-xl-5{padding:3rem!important}.pt-xl-5,.py-xl-5{padding-top:3rem!important}.pr-xl-5,.px-xl-5{padding-right:3rem!important}.pb-xl-5,.py-xl-5{padding-bottom:3rem!important}.pl-xl-5,.px-xl-5{padding-left:3rem!important}.m-xl-auto{margin:auto!important}.mt-xl-auto,.my-xl-auto{margin-top:auto!important}.mr-xl-auto,.mx-xl-auto{margin-right:auto!important}.mb-xl-auto,.my-xl-auto{margin-bottom:auto!important}.ml-xl-auto,.mx-xl-auto{margin-left:auto!important}}.text-justify{text-align:justify!important}.text-nowrap{white-space:nowrap!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:576px){.text-sm-left{text-align:left!important}.text-sm-right{text-align:right!important}.text-sm-center{text-align:center!important}}@media (min-width:768px){.text-md-left{text-align:left!important}.text-md-right{text-align:right!important}.text-md-center{text-align:center!important}}@media (min-width:992px){.text-lg-left{text-align:left!important}.text-lg-right{text-align:right!important}.text-lg-center{text-align:center!important}}@media (min-width:1200px){.text-xl-left{text-align:left!important}.text-xl-right{text-align:right!important}.text-xl-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-light{font-weight:300!important}.font-weight-normal{font-weight:400!important}.font-weight-bold{font-weight:700!important}.font-italic{font-style:italic!important}.text-white{color:#fff!important}.text-primary{color:#007bff!important}a.text-primary:focus,a.text-primary:hover{color:#0062cc!important}.text-secondary{color:#6c757d!important}a.text-secondary:focus,a.text-secondary:hover{color:#545b62!important}.text-success{color:#28a745!important}a.text-success:focus,a.text-success:hover{color:#1e7e34!important}.text-info{color:#17a2b8!important}a.text-info:focus,a.text-info:hover{color:#117a8b!important}.text-warning{color:#ffc107!important}a.text-warning:focus,a.text-warning:hover{color:#d39e00!important}.text-danger{color:#dc3545!important}a.text-danger:focus,a.text-danger:hover{color:#bd2130!important}.text-light{color:#f8f9fa!important}a.text-light:focus,a.text-light:hover{color:#dae0e5!important}.text-dark{color:#343a40!important}a.text-dark:focus,a.text-dark:hover{color:#1d2124!important}.text-muted{color:#6c757d!important}.text-hide{font:0/0 a;color:transparent;text-shadow:none;background-color:transparent;border:0}.visible{visibility:visible!important}.invisible{visibility:hidden!important}@media print{*,::after,::before{text-shadow:none!important;box-shadow:none!important}a:not(.btn){text-decoration:underline}abbr[title]::after{content:" (" attr(title) ")"}pre{white-space:pre-wrap!important}blockquote,pre{border:1px solid #999;page-break-inside:avoid}thead{display:table-header-group}img,tr{page-break-inside:avoid}h2,h3,p{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-bordered td,.table-bordered th{border:1px solid #ddd!important}}
-/*# sourceMappingURL=bootstrap.min.css.map */
\ No newline at end of file
diff --git a/shopyo/static/box.svg b/shopyo/static/box.svg
deleted file mode 100644
index 6a01d1d..0000000
--- a/shopyo/static/box.svg
+++ /dev/null
@@ -1,126 +0,0 @@
-
-
-
-image/svg+xml
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/shopyo/static/css/b4vtabs.min.css b/shopyo/static/css/b4vtabs.min.css
deleted file mode 100644
index 51e0ea8..0000000
--- a/shopyo/static/css/b4vtabs.min.css
+++ /dev/null
@@ -1 +0,0 @@
-.left-tabs.sideways-tabs,.right-tabs.sideways-tabs{margin-top:5rem;border:none;position:relative;margin-bottom:0}.left-tabs.nav-tabs,.right-tabs.nav-tabs,.left-tabs.sideways-tabs,.right-tabs.sideways-tabs{height:100%;flex-direction:column}.left-tabs.nav-tabs{border-right:1px solid #dee2e6;border-bottom:none}.left-tabs .nav-link{border-top-left-radius:.25rem;border-bottom-left-radius:.25rem;border-bottom-right-radius:0;border-top-right-radius:0;margin-right:-1px;text-align:left}.left-tabs .nav-link:hover{border-right:1px solid transparent}.left-tabs .nav-link.active{border-top:1px solid #dee2e6;border-right:1px solid transparent;border-bottom:1px solid #dee2e6;border-left:1px solid #dee2e6}.right-tabs.nav-tabs{border-left:1px solid #dee2e6;border-bottom:none}.right-tabs .nav-link{border-top-right-radius:.25rem;border-bottom-right-radius:.25rem;border-bottom-left-radius:0;border-top-left-radius:0;margin-left:-1px;text-align:right}.right-tabs .nav-link:hover{border-left:1px solid transparent}.right-tabs .nav-link.active{border-top:1px solid #dee2e6;border-right:1px solid #dee2e6;border-bottom:1px solid #dee2e6;border-left:1px solid transparent}.left-tabs.sideways-tabs{border-right:none;left:-3.2rem}.sideways-tabs.left-tabs .nav-item{transform:rotate(-90deg);height:1rem;margin-bottom:calc(8rem - 1rem)}.sideways-tabs.left-tabs .nav-link{width:8rem;text-align:center;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;border-top-right-radius:.25rem;border-bottom-right-radius:0;border-bottom-left-radius:0;border-top-left-radius:.25rem;border-bottom:1px solid #dee2e6}.sideways-tabs.left-tabs .nav-link:hover{border-right:1px solid #e9ecef}.sideways-tabs.left-tabs .nav-link.active{border-top:1px solid #dee2e6;border-right:1px solid #dee2e6;border-bottom:1px solid transparent;border-left:1px solid #dee2e6}.right-tabs.sideways-tabs{border-left:none;right:3.2rem}.sideways-tabs.right-tabs .nav-item{transform:rotate(90deg);height:1rem;margin-bottom:calc(8rem - 1rem)}.sideways-tabs.right-tabs .nav-link{width:8rem;text-align:center;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;border-top-right-radius:.25rem;border-bottom-right-radius:0;border-bottom-left-radius:0;border-top-left-radius:.25rem;border-bottom:1px solid #dee2e6}.sideways-tabs.right-tabs .nav-link:hover{border-left:1px solid #e9ecef}.sideways-tabs.right-tabs .nav-link.active{border-top:1px solid #dee2e6;border-right:1px solid #dee2e6;border-bottom:1px solid transparent;border-left:1px solid #dee2e6}@media (min-width: 26em) and (max-width: 48em){.left-tabs.nav-tabs{flex-direction:row;border-right:none;border-left:none;min-width:100%;border-bottom:1px solid #dee2e6;left:auto;margin-top:auto}.left-tabs .nav-link{width:8rem;text-align:center;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;border-top-right-radius:.25rem;border-bottom-right-radius:0;border-bottom-left-radius:0;border-top-left-radius:.25rem;margin-right:0;margin-bottom:-1px}.left-tabs .nav-link.nav-link:hover{border-right-color:#dee2e6;border-bottom-color:transparent}.left-tabs .nav-link.active{border-top-color:#dee2e6;border-right-color:#dee2e6;border-bottom-color:transparent;border-left-color:#dee2e6}.sideways-tabs.left-tabs .nav-item,.sideways-tabs.right-tabs .nav-item{transform:none;height:auto;width:auto;margin-bottom:0}.right-tabs.nav-tabs{flex-direction:row;border-right:none;border-left:none;min-width:100%;border-top:1px solid #dee2e6;right:auto;margin-top:auto}.sideways-tabs.right-tabs .nav-link,.right-tabs .nav-link{width:8rem;text-align:center;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;border-top-right-radius:0;border-bottom-right-radius:.25rem;border-bottom-left-radius:.25rem;border-top-left-radius:0;margin-left:0;margin-top:-1px;border-bottom-color:transparent}.right-tabs .nav-link:hover{border-top-color:transparent;border-left-color:#dee2e6;border-bottom-color:#e9ecef}.sideways-tabs.right-tabs .nav-link.active,.right-tabs .nav-link.active{border-top-color:transparent;border-right-color:#dee2e6;border-bottom-color:#dee2e6;border-left-color:#dee2e6}}@media (max-width: 26em){.left-tabs.nav-tabs{flex-direction:row;border-right:none;border-left:none;min-width:100%;border-bottom:1px solid #dee2e6;left:auto;margin-top:auto;padding-bottom:.25rem}.right-tabs.nav-tabs{flex-direction:row;border-right:none;border-left:none;min-width:100%;border-top:1px solid #dee2e6;right:auto;margin-top:auto;padding-top:.25rem}.sideways-tabs.left-tabs .nav-item,.sideways-tabs.right-tabs .nav-item{transform:none;height:auto;width:auto;margin-bottom:0}.sideways-tabs.left-tabs .nav-link,.sideways-tabs.right-tabs .nav-link,.nav-tabs .nav-link{width:8rem;text-align:center;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;border-radius:.25rem;margin:.25rem;border-top-color:transparent;border-right-color:transparent;border-bottom-color:transparent;border-left-color:transparent}.sideways-tabs.nav-tabs .nav-link:hover,.nav-tabs .nav-link:hover{border:1px solid #e9ecef;border-top-color:#e9ecef;border-right-color:#e9ecef;border-bottom-color:#e9ecef;border-left-color:#e9ecef}.sideways-tabs.nav-tabs .nav-link.active,.left-tabs .nav-link.active,.right-tabs .nav-link.active{border-top-color:#dee2e6;border-right-color:#dee2e6;border-bottom-color:#dee2e6;border-left-color:#dee2e6}}.tab-content{padding:1rem}
diff --git a/shopyo/static/css/simple_sidebar.css b/shopyo/static/css/simple_sidebar.css
deleted file mode 100644
index 6d8e9b1..0000000
--- a/shopyo/static/css/simple_sidebar.css
+++ /dev/null
@@ -1,50 +0,0 @@
-/*!
- * Start Bootstrap - Simple Sidebar (https://startbootstrap.com/templates/simple-sidebar)
- * Copyright 2013-2020 Start Bootstrap
- * Licensed under MIT (https://github.com/StartBootstrap/startbootstrap-simple-sidebar/blob/master/LICENSE)
- */
-
- #wrapper {
- overflow-x: hidden;
- }
-
-#sidebar-wrapper {
- min-height: 100vh;
- margin-left: -15rem;
- -webkit-transition: margin .25s ease-out;
- -moz-transition: margin .25s ease-out;
- -o-transition: margin .25s ease-out;
- transition: margin .25s ease-out;
-}
-
-#sidebar-wrapper .sidebar-heading {
- padding: 0.875rem 1.25rem;
- font-size: 1.2rem;
-}
-
-#sidebar-wrapper .list-group {
- width: 15rem;
-}
-
-#page-content-wrapper {
- min-width: 100vw;
-}
-
-#wrapper.toggled #sidebar-wrapper {
- margin-left: 0;
-}
-
-@media (min-width: 768px) {
- #sidebar-wrapper {
- margin-left: 0;
- }
-
- #page-content-wrapper {
- min-width: 0;
- width: 100%;
- }
-
- #wrapper.toggled #sidebar-wrapper {
- margin-left: -15rem;
- }
-}
\ No newline at end of file
diff --git a/shopyo/static/default/default_product.jpg b/shopyo/static/default/default_product.jpg
deleted file mode 100644
index 87867f4..0000000
Binary files a/shopyo/static/default/default_product.jpg and /dev/null differ
diff --git a/shopyo/static/default/default_subcategory.jpg b/shopyo/static/default/default_subcategory.jpg
deleted file mode 100644
index b39999c..0000000
Binary files a/shopyo/static/default/default_subcategory.jpg and /dev/null differ
diff --git a/shopyo/static/favicon.ico b/shopyo/static/favicon.ico
deleted file mode 100644
index 3b23c1b..0000000
Binary files a/shopyo/static/favicon.ico and /dev/null differ
diff --git a/shopyo/static/fontawesome/LICENSE.txt b/shopyo/static/fontawesome/LICENSE.txt
deleted file mode 100644
index f31bef9..0000000
--- a/shopyo/static/fontawesome/LICENSE.txt
+++ /dev/null
@@ -1,34 +0,0 @@
-Font Awesome Free License
--------------------------
-
-Font Awesome Free is free, open source, and GPL friendly. You can use it for
-commercial projects, open source projects, or really almost whatever you want.
-Full Font Awesome Free license: https://fontawesome.com/license/free.
-
-# Icons: CC BY 4.0 License (https://creativecommons.org/licenses/by/4.0/)
-In the Font Awesome Free download, the CC BY 4.0 license applies to all icons
-packaged as SVG and JS file types.
-
-# Fonts: SIL OFL 1.1 License (https://scripts.sil.org/OFL)
-In the Font Awesome Free download, the SIL OFL license applies to all icons
-packaged as web and desktop font files.
-
-# Code: MIT License (https://opensource.org/licenses/MIT)
-In the Font Awesome Free download, the MIT license applies to all non-font and
-non-icon files.
-
-# Attribution
-Attribution is required by MIT, SIL OFL, and CC BY licenses. Downloaded Font
-Awesome Free files already contain embedded comments with sufficient
-attribution, so you shouldn't need to do anything additional when using these
-files normally.
-
-We've kept attribution comments terse, so we ask that you do not actively work
-to remove them from files, especially code. They're a great way for folks to
-learn about Font Awesome.
-
-# Brand Icons
-All brand icons are trademarks of their respective owners. The use of these
-trademarks does not indicate endorsement of the trademark holder by Font
-Awesome, nor vice versa. **Please do not use brand logos for any purpose except
-to represent the company, product, or service to which they refer.**
diff --git a/shopyo/static/fontawesome/css/all.css b/shopyo/static/fontawesome/css/all.css
deleted file mode 100644
index 368962f..0000000
--- a/shopyo/static/fontawesome/css/all.css
+++ /dev/null
@@ -1,4286 +0,0 @@
-.fa,
-.fas,
-.far,
-.fal,
-.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: 0.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 0.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; }
-
-/* Font Awesome uses the Unicode Private Use Area (PUA) to ensure screen
-readers do not read off random characters that represent icons */
-.fa-500px:before {
- content: "\f26e"; }
-
-.fa-accessible-icon:before {
- content: "\f368"; }
-
-.fa-accusoft:before {
- content: "\f369"; }
-
-.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-freshener:before {
- content: "\f5d0"; }
-
-.fa-algolia:before {
- content: "\f36c"; }
-
-.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-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-anchor:before {
- content: "\f13d"; }
-
-.fa-android:before {
- content: "\f17b"; }
-
-.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-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-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-left:before {
- content: "\f060"; }
-
-.fa-arrow-right:before {
- content: "\f061"; }
-
-.fa-arrow-up:before {
- content: "\f062"; }
-
-.fa-arrows-alt:before {
- content: "\f0b2"; }
-
-.fa-arrows-alt-h:before {
- content: "\f337"; }
-
-.fa-arrows-alt-v:before {
- content: "\f338"; }
-
-.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-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-baby:before {
- content: "\f77c"; }
-
-.fa-baby-carriage:before {
- content: "\f77d"; }
-
-.fa-backspace:before {
- content: "\f55a"; }
-
-.fa-backward:before {
- content: "\f04a"; }
-
-.fa-bacon:before {
- content: "\f7e5"; }
-
-.fa-balance-scale:before {
- content: "\f24e"; }
-
-.fa-ban:before {
- content: "\f05e"; }
-
-.fa-band-aid:before {
- content: "\f462"; }
-
-.fa-bandcamp:before {
- content: "\f2d5"; }
-
-.fa-barcode:before {
- content: "\f02a"; }
-
-.fa-bars:before {
- content: "\f0c9"; }
-
-.fa-baseball-ball:before {
- content: "\f433"; }
-
-.fa-basketball-ball:before {
- content: "\f434"; }
-
-.fa-bath:before {
- content: "\f2cd"; }
-
-.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-three-quarters:before {
- content: "\f241"; }
-
-.fa-bed:before {
- content: "\f236"; }
-
-.fa-beer:before {
- content: "\f0fc"; }
-
-.fa-behance:before {
- content: "\f1b4"; }
-
-.fa-behance-square:before {
- content: "\f1b5"; }
-
-.fa-bell:before {
- content: "\f0f3"; }
-
-.fa-bell-slash:before {
- content: "\f1f6"; }
-
-.fa-bezier-curve:before {
- content: "\f55b"; }
-
-.fa-bible:before {
- content: "\f647"; }
-
-.fa-bicycle:before {
- content: "\f206"; }
-
-.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-blender:before {
- content: "\f517"; }
-
-.fa-blender-phone:before {
- content: "\f6b6"; }
-
-.fa-blind:before {
- content: "\f29d"; }
-
-.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-bong:before {
- content: "\f55c"; }
-
-.fa-book:before {
- content: "\f02d"; }
-
-.fa-book-dead:before {
- content: "\f6b7"; }
-
-.fa-book-medical:before {
- content: "\f7e6"; }
-
-.fa-book-open:before {
- content: "\f518"; }
-
-.fa-book-reader:before {
- content: "\f5da"; }
-
-.fa-bookmark:before {
- content: "\f02e"; }
-
-.fa-bowling-ball:before {
- content: "\f436"; }
-
-.fa-box:before {
- content: "\f466"; }
-
-.fa-box-open:before {
- content: "\f49e"; }
-
-.fa-boxes:before {
- content: "\f468"; }
-
-.fa-braille:before {
- content: "\f2a1"; }
-
-.fa-brain:before {
- content: "\f5dc"; }
-
-.fa-bread-slice:before {
- content: "\f7ec"; }
-
-.fa-briefcase:before {
- content: "\f0b1"; }
-
-.fa-briefcase-medical:before {
- content: "\f469"; }
-
-.fa-broadcast-tower:before {
- content: "\f519"; }
-
-.fa-broom:before {
- content: "\f51a"; }
-
-.fa-brush:before {
- content: "\f55d"; }
-
-.fa-btc:before {
- content: "\f15a"; }
-
-.fa-bug:before {
- content: "\f188"; }
-
-.fa-building:before {
- content: "\f1ad"; }
-
-.fa-bullhorn:before {
- content: "\f0a1"; }
-
-.fa-bullseye:before {
- content: "\f140"; }
-
-.fa-burn:before {
- content: "\f46a"; }
-
-.fa-buromobelexperte:before {
- content: "\f37f"; }
-
-.fa-bus:before {
- content: "\f207"; }
-
-.fa-bus-alt:before {
- content: "\f55e"; }
-
-.fa-business-time:before {
- content: "\f64a"; }
-
-.fa-buysellads:before {
- content: "\f20d"; }
-
-.fa-calculator:before {
- content: "\f1ec"; }
-
-.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-minus:before {
- content: "\f272"; }
-
-.fa-calendar-plus:before {
- content: "\f271"; }
-
-.fa-calendar-times:before {
- content: "\f273"; }
-
-.fa-calendar-week:before {
- content: "\f784"; }
-
-.fa-camera:before {
- content: "\f030"; }
-
-.fa-camera-retro:before {
- content: "\f083"; }
-
-.fa-campground:before {
- content: "\f6bb"; }
-
-.fa-canadian-maple-leaf:before {
- content: "\f785"; }
-
-.fa-candy-cane:before {
- content: "\f786"; }
-
-.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-crash:before {
- content: "\f5e1"; }
-
-.fa-car-side:before {
- content: "\f5e4"; }
-
-.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-cart-arrow-down:before {
- content: "\f218"; }
-
-.fa-cart-plus:before {
- content: "\f217"; }
-
-.fa-cash-register:before {
- content: "\f788"; }
-
-.fa-cat:before {
- content: "\f6be"; }
-
-.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-centercode:before {
- content: "\f380"; }
-
-.fa-centos:before {
- content: "\f789"; }
-
-.fa-certificate:before {
- content: "\f0a3"; }
-
-.fa-chair:before {
- content: "\f6c0"; }
-
-.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-pie:before {
- content: "\f200"; }
-
-.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-chess:before {
- content: "\f439"; }
-
-.fa-chess-bishop:before {
- content: "\f43a"; }
-
-.fa-chess-board:before {
- content: "\f43c"; }
-
-.fa-chess-king:before {
- content: "\f43f"; }
-
-.fa-chess-knight:before {
- content: "\f441"; }
-
-.fa-chess-pawn:before {
- content: "\f443"; }
-
-.fa-chess-queen:before {
- content: "\f445"; }
-
-.fa-chess-rook:before {
- content: "\f447"; }
-
-.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-down:before {
- content: "\f078"; }
-
-.fa-chevron-left:before {
- content: "\f053"; }
-
-.fa-chevron-right:before {
- content: "\f054"; }
-
-.fa-chevron-up:before {
- content: "\f077"; }
-
-.fa-child:before {
- content: "\f1ae"; }
-
-.fa-chrome:before {
- content: "\f268"; }
-
-.fa-church:before {
- content: "\f51d"; }
-
-.fa-circle:before {
- content: "\f111"; }
-
-.fa-circle-notch:before {
- content: "\f1ce"; }
-
-.fa-city:before {
- content: "\f64f"; }
-
-.fa-clinic-medical:before {
- content: "\f7f2"; }
-
-.fa-clipboard:before {
- content: "\f328"; }
-
-.fa-clipboard-check:before {
- content: "\f46c"; }
-
-.fa-clipboard-list:before {
- content: "\f46d"; }
-
-.fa-clock:before {
- content: "\f017"; }
-
-.fa-clone:before {
- content: "\f24d"; }
-
-.fa-closed-captioning:before {
- content: "\f20a"; }
-
-.fa-cloud:before {
- content: "\f0c2"; }
-
-.fa-cloud-download-alt:before {
- content: "\f381"; }
-
-.fa-cloud-meatball:before {
- content: "\f73b"; }
-
-.fa-cloud-moon:before {
- content: "\f6c3"; }
-
-.fa-cloud-moon-rain:before {
- content: "\f73c"; }
-
-.fa-cloud-rain:before {
- content: "\f73d"; }
-
-.fa-cloud-showers-heavy:before {
- content: "\f740"; }
-
-.fa-cloud-sun:before {
- content: "\f6c4"; }
-
-.fa-cloud-sun-rain:before {
- content: "\f743"; }
-
-.fa-cloud-upload-alt:before {
- content: "\f382"; }
-
-.fa-cloudscale:before {
- content: "\f383"; }
-
-.fa-cloudsmith:before {
- content: "\f384"; }
-
-.fa-cloudversify:before {
- content: "\f385"; }
-
-.fa-cocktail:before {
- content: "\f561"; }
-
-.fa-code:before {
- content: "\f121"; }
-
-.fa-code-branch:before {
- content: "\f126"; }
-
-.fa-codepen:before {
- content: "\f1cb"; }
-
-.fa-codiepie:before {
- content: "\f284"; }
-
-.fa-coffee:before {
- content: "\f0f4"; }
-
-.fa-cog:before {
- content: "\f013"; }
-
-.fa-cogs:before {
- content: "\f085"; }
-
-.fa-coins:before {
- content: "\f51e"; }
-
-.fa-columns:before {
- content: "\f0db"; }
-
-.fa-comment:before {
- content: "\f075"; }
-
-.fa-comment-alt:before {
- content: "\f27a"; }
-
-.fa-comment-dollar:before {
- content: "\f651"; }
-
-.fa-comment-dots:before {
- content: "\f4ad"; }
-
-.fa-comment-medical:before {
- content: "\f7f5"; }
-
-.fa-comment-slash:before {
- content: "\f4b3"; }
-
-.fa-comments:before {
- content: "\f086"; }
-
-.fa-comments-dollar:before {
- content: "\f653"; }
-
-.fa-compact-disc:before {
- content: "\f51f"; }
-
-.fa-compass:before {
- content: "\f14e"; }
-
-.fa-compress:before {
- content: "\f066"; }
-
-.fa-compress-arrows-alt:before {
- content: "\f78c"; }
-
-.fa-concierge-bell:before {
- content: "\f562"; }
-
-.fa-confluence:before {
- content: "\f78d"; }
-
-.fa-connectdevelop:before {
- content: "\f20e"; }
-
-.fa-contao:before {
- content: "\f26d"; }
-
-.fa-cookie:before {
- content: "\f563"; }
-
-.fa-cookie-bite:before {
- content: "\f564"; }
-
-.fa-copy:before {
- content: "\f0c5"; }
-
-.fa-copyright:before {
- content: "\f1f9"; }
-
-.fa-couch:before {
- content: "\f4b8"; }
-
-.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-critical-role:before {
- content: "\f6c9"; }
-
-.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-css3:before {
- content: "\f13c"; }
-
-.fa-css3-alt:before {
- content: "\f38b"; }
-
-.fa-cube:before {
- content: "\f1b2"; }
-
-.fa-cubes:before {
- content: "\f1b3"; }
-
-.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-dashcube:before {
- content: "\f210"; }
-
-.fa-database:before {
- content: "\f1c0"; }
-
-.fa-deaf:before {
- content: "\f2a4"; }
-
-.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-dev:before {
- content: "\f6cc"; }
-
-.fa-deviantart:before {
- content: "\f1bd"; }
-
-.fa-dharmachakra:before {
- content: "\f655"; }
-
-.fa-dhl:before {
- content: "\f790"; }
-
-.fa-diagnoses:before {
- content: "\f470"; }
-
-.fa-diaspora:before {
- content: "\f791"; }
-
-.fa-dice:before {
- content: "\f522"; }
-
-.fa-dice-d20:before {
- content: "\f6cf"; }
-
-.fa-dice-d6:before {
- content: "\f6d1"; }
-
-.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-digital-ocean:before {
- content: "\f391"; }
-
-.fa-digital-tachograph:before {
- content: "\f566"; }
-
-.fa-directions:before {
- content: "\f5eb"; }
-
-.fa-discord:before {
- content: "\f392"; }
-
-.fa-discourse:before {
- content: "\f393"; }
-
-.fa-divide:before {
- content: "\f529"; }
-
-.fa-dizzy:before {
- content: "\f567"; }
-
-.fa-dna:before {
- content: "\f471"; }
-
-.fa-dochub:before {
- content: "\f394"; }
-
-.fa-docker:before {
- content: "\f395"; }
-
-.fa-dog:before {
- content: "\f6d3"; }
-
-.fa-dollar-sign:before {
- content: "\f155"; }
-
-.fa-dolly:before {
- content: "\f472"; }
-
-.fa-dolly-flatbed:before {
- content: "\f474"; }
-
-.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-polygon:before {
- content: "\f5ee"; }
-
-.fa-dribbble:before {
- content: "\f17d"; }
-
-.fa-dribbble-square:before {
- content: "\f397"; }
-
-.fa-dropbox:before {
- content: "\f16b"; }
-
-.fa-drum:before {
- content: "\f569"; }
-
-.fa-drum-steelpan:before {
- content: "\f56a"; }
-
-.fa-drumstick-bite:before {
- content: "\f6d7"; }
-
-.fa-drupal:before {
- content: "\f1a9"; }
-
-.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-earlybirds:before {
- content: "\f39a"; }
-
-.fa-ebay:before {
- content: "\f4f4"; }
-
-.fa-edge:before {
- content: "\f282"; }
-
-.fa-edit:before {
- content: "\f044"; }
-
-.fa-egg:before {
- content: "\f7fb"; }
-
-.fa-eject:before {
- content: "\f052"; }
-
-.fa-elementor:before {
- content: "\f430"; }
-
-.fa-ellipsis-h:before {
- content: "\f141"; }
-
-.fa-ellipsis-v:before {
- content: "\f142"; }
-
-.fa-ello:before {
- content: "\f5f1"; }
-
-.fa-ember:before {
- content: "\f423"; }
-
-.fa-empire:before {
- content: "\f1d1"; }
-
-.fa-envelope:before {
- content: "\f0e0"; }
-
-.fa-envelope-open:before {
- content: "\f2b6"; }
-
-.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-exchange-alt:before {
- content: "\f362"; }
-
-.fa-exclamation:before {
- content: "\f12a"; }
-
-.fa-exclamation-circle:before {
- content: "\f06a"; }
-
-.fa-exclamation-triangle:before {
- content: "\f071"; }
-
-.fa-expand:before {
- content: "\f065"; }
-
-.fa-expand-arrows-alt:before {
- content: "\f31e"; }
-
-.fa-expeditedssl:before {
- content: "\f23e"; }
-
-.fa-external-link-alt:before {
- content: "\f35d"; }
-
-.fa-external-link-square-alt:before {
- content: "\f360"; }
-
-.fa-eye:before {
- content: "\f06e"; }
-
-.fa-eye-dropper:before {
- content: "\f1fb"; }
-
-.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-fantasy-flight-games:before {
- content: "\f6dc"; }
-
-.fa-fast-backward:before {
- content: "\f049"; }
-
-.fa-fast-forward:before {
- content: "\f050"; }
-
-.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-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-code:before {
- content: "\f1c9"; }
-
-.fa-file-contract:before {
- content: "\f56c"; }
-
-.fa-file-csv:before {
- content: "\f6dd"; }
-
-.fa-file-download:before {
- content: "\f56d"; }
-
-.fa-file-excel:before {
- content: "\f1c3"; }
-
-.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-pdf:before {
- content: "\f1c1"; }
-
-.fa-file-powerpoint:before {
- content: "\f1c4"; }
-
-.fa-file-prescription:before {
- content: "\f572"; }
-
-.fa-file-signature:before {
- content: "\f573"; }
-
-.fa-file-upload:before {
- content: "\f574"; }
-
-.fa-file-video:before {
- content: "\f1c8"; }
-
-.fa-file-word:before {
- content: "\f1c2"; }
-
-.fa-fill:before {
- content: "\f575"; }
-
-.fa-fill-drip:before {
- content: "\f576"; }
-
-.fa-film:before {
- content: "\f008"; }
-
-.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-firefox:before {
- content: "\f269"; }
-
-.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-fist-raised:before {
- content: "\f6de"; }
-
-.fa-flag:before {
- content: "\f024"; }
-
-.fa-flag-checkered:before {
- content: "\f11e"; }
-
-.fa-flag-usa:before {
- content: "\f74d"; }
-
-.fa-flask:before {
- content: "\f0c3"; }
-
-.fa-flickr:before {
- content: "\f16e"; }
-
-.fa-flipboard:before {
- content: "\f44d"; }
-
-.fa-flushed:before {
- content: "\f579"; }
-
-.fa-fly:before {
- content: "\f417"; }
-
-.fa-folder:before {
- content: "\f07b"; }
-
-.fa-folder-minus:before {
- content: "\f65d"; }
-
-.fa-folder-open:before {
- content: "\f07c"; }
-
-.fa-folder-plus:before {
- content: "\f65e"; }
-
-.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-fonticons:before {
- content: "\f280"; }
-
-.fa-fonticons-fi:before {
- content: "\f3a2"; }
-
-.fa-football-ball:before {
- content: "\f44e"; }
-
-.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-free-code-camp:before {
- content: "\f2c5"; }
-
-.fa-freebsd:before {
- content: "\f3a4"; }
-
-.fa-frog:before {
- content: "\f52e"; }
-
-.fa-frown:before {
- content: "\f119"; }
-
-.fa-frown-open:before {
- content: "\f57a"; }
-
-.fa-fulcrum:before {
- content: "\f50b"; }
-
-.fa-funnel-dollar:before {
- content: "\f662"; }
-
-.fa-futbol:before {
- content: "\f1e3"; }
-
-.fa-galactic-republic:before {
- content: "\f50c"; }
-
-.fa-galactic-senate:before {
- content: "\f50d"; }
-
-.fa-gamepad:before {
- content: "\f11b"; }
-
-.fa-gas-pump:before {
- content: "\f52f"; }
-
-.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-gifts:before {
- content: "\f79c"; }
-
-.fa-git:before {
- content: "\f1d3"; }
-
-.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-cheers:before {
- content: "\f79f"; }
-
-.fa-glass-martini:before {
- content: "\f000"; }
-
-.fa-glass-martini-alt:before {
- content: "\f57b"; }
-
-.fa-glass-whiskey:before {
- content: "\f7a0"; }
-
-.fa-glasses:before {
- content: "\f530"; }
-
-.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-gofore:before {
- content: "\f3a7"; }
-
-.fa-golf-ball:before {
- content: "\f450"; }
-
-.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-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-gulp:before {
- content: "\f3ae"; }
-
-.fa-h-square:before {
- content: "\f0fd"; }
-
-.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-hamsa:before {
- content: "\f665"; }
-
-.fa-hand-holding:before {
- content: "\f4bd"; }
-
-.fa-hand-holding-heart:before {
- content: "\f4be"; }
-
-.fa-hand-holding-usd:before {
- content: "\f4c0"; }
-
-.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-rock:before {
- content: "\f255"; }
-
-.fa-hand-scissors:before {
- content: "\f257"; }
-
-.fa-hand-spock:before {
- content: "\f259"; }
-
-.fa-hands:before {
- content: "\f4c2"; }
-
-.fa-hands-helping:before {
- content: "\f4c4"; }
-
-.fa-handshake:before {
- content: "\f2b5"; }
-
-.fa-hanukiah:before {
- content: "\f6e6"; }
-
-.fa-hard-hat:before {
- content: "\f807"; }
-
-.fa-hashtag:before {
- content: "\f292"; }
-
-.fa-hat-wizard:before {
- content: "\f6e8"; }
-
-.fa-haykal:before {
- content: "\f666"; }
-
-.fa-hdd:before {
- content: "\f0a0"; }
-
-.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-heartbeat:before {
- content: "\f21e"; }
-
-.fa-helicopter:before {
- content: "\f533"; }
-
-.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-puck:before {
- content: "\f453"; }
-
-.fa-holly-berry:before {
- content: "\f7aa"; }
-
-.fa-home:before {
- content: "\f015"; }
-
-.fa-hooli:before {
- content: "\f427"; }
-
-.fa-hornbill:before {
- content: "\f592"; }
-
-.fa-horse:before {
- content: "\f6f0"; }
-
-.fa-horse-head:before {
- content: "\f7ab"; }
-
-.fa-hospital:before {
- content: "\f0f8"; }
-
-.fa-hospital-alt:before {
- content: "\f47d"; }
-
-.fa-hospital-symbol:before {
- content: "\f47e"; }
-
-.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-damage:before {
- content: "\f6f1"; }
-
-.fa-houzz:before {
- content: "\f27c"; }
-
-.fa-hryvnia:before {
- content: "\f6f2"; }
-
-.fa-html5:before {
- content: "\f13b"; }
-
-.fa-hubspot:before {
- content: "\f3b2"; }
-
-.fa-i-cursor:before {
- content: "\f246"; }
-
-.fa-ice-cream:before {
- content: "\f810"; }
-
-.fa-icicles:before {
- content: "\f7ad"; }
-
-.fa-id-badge:before {
- content: "\f2c1"; }
-
-.fa-id-card:before {
- content: "\f2c2"; }
-
-.fa-id-card-alt:before {
- content: "\f47f"; }
-
-.fa-igloo:before {
- content: "\f7ae"; }
-
-.fa-image:before {
- content: "\f03e"; }
-
-.fa-images:before {
- content: "\f302"; }
-
-.fa-imdb:before {
- content: "\f2d8"; }
-
-.fa-inbox:before {
- content: "\f01c"; }
-
-.fa-indent:before {
- content: "\f03c"; }
-
-.fa-industry:before {
- content: "\f275"; }
-
-.fa-infinity:before {
- content: "\f534"; }
-
-.fa-info:before {
- content: "\f129"; }
-
-.fa-info-circle:before {
- content: "\f05a"; }
-
-.fa-instagram:before {
- content: "\f16d"; }
-
-.fa-intercom:before {
- content: "\f7af"; }
-
-.fa-internet-explorer:before {
- content: "\f26b"; }
-
-.fa-invision:before {
- content: "\f7b0"; }
-
-.fa-ioxhost:before {
- content: "\f208"; }
-
-.fa-italic:before {
- content: "\f033"; }
-
-.fa-itunes:before {
- content: "\f3b4"; }
-
-.fa-itunes-note:before {
- content: "\f3b5"; }
-
-.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-js:before {
- content: "\f3b8"; }
-
-.fa-js-square:before {
- content: "\f3b9"; }
-
-.fa-jsfiddle:before {
- content: "\f1cc"; }
-
-.fa-kaaba:before {
- content: "\f66b"; }
-
-.fa-kaggle:before {
- content: "\f5fa"; }
-
-.fa-key:before {
- content: "\f084"; }
-
-.fa-keybase:before {
- content: "\f4f5"; }
-
-.fa-keyboard:before {
- content: "\f11c"; }
-
-.fa-keycdn:before {
- content: "\f3ba"; }
-
-.fa-khanda:before {
- content: "\f66d"; }
-
-.fa-kickstarter:before {
- content: "\f3bb"; }
-
-.fa-kickstarter-k:before {
- content: "\f3bc"; }
-
-.fa-kiss:before {
- content: "\f596"; }
-
-.fa-kiss-beam:before {
- content: "\f597"; }
-
-.fa-kiss-wink-heart:before {
- content: "\f598"; }
-
-.fa-kiwi-bird:before {
- content: "\f535"; }
-
-.fa-korvue:before {
- content: "\f42f"; }
-
-.fa-landmark:before {
- content: "\f66f"; }
-
-.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-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-leaf:before {
- content: "\f06c"; }
-
-.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-alt:before {
- content: "\f3be"; }
-
-.fa-level-up-alt:before {
- content: "\f3bf"; }
-
-.fa-life-ring:before {
- content: "\f1cd"; }
-
-.fa-lightbulb:before {
- content: "\f0eb"; }
-
-.fa-line:before {
- content: "\f3c0"; }
-
-.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-lira-sign:before {
- content: "\f195"; }
-
-.fa-list:before {
- content: "\f03a"; }
-
-.fa-list-alt:before {
- content: "\f022"; }
-
-.fa-list-ol:before {
- content: "\f0cb"; }
-
-.fa-list-ul:before {
- content: "\f0ca"; }
-
-.fa-location-arrow:before {
- content: "\f124"; }
-
-.fa-lock:before {
- content: "\f023"; }
-
-.fa-lock-open:before {
- content: "\f3c1"; }
-
-.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-low-vision:before {
- content: "\f2a8"; }
-
-.fa-luggage-cart:before {
- content: "\f59d"; }
-
-.fa-lyft:before {
- content: "\f3c3"; }
-
-.fa-magento:before {
- content: "\f3c4"; }
-
-.fa-magic:before {
- content: "\f0d0"; }
-
-.fa-magnet:before {
- content: "\f076"; }
-
-.fa-mail-bulk:before {
- content: "\f674"; }
-
-.fa-mailchimp:before {
- content: "\f59e"; }
-
-.fa-male:before {
- content: "\f183"; }
-
-.fa-mandalorian:before {
- content: "\f50f"; }
-
-.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-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-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-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-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-microscope:before {
- content: "\f610"; }
-
-.fa-microsoft:before {
- content: "\f3ca"; }
-
-.fa-minus:before {
- content: "\f068"; }
-
-.fa-minus-circle:before {
- content: "\f056"; }
-
-.fa-minus-square:before {
- content: "\f146"; }
-
-.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-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-monument:before {
- content: "\f5a6"; }
-
-.fa-moon:before {
- content: "\f186"; }
-
-.fa-mortar-pestle:before {
- content: "\f5a7"; }
-
-.fa-mosque:before {
- content: "\f678"; }
-
-.fa-motorcycle:before {
- content: "\f21c"; }
-
-.fa-mountain:before {
- content: "\f6fc"; }
-
-.fa-mouse-pointer:before {
- content: "\f245"; }
-
-.fa-mug-hot:before {
- content: "\f7b6"; }
-
-.fa-music:before {
- content: "\f001"; }
-
-.fa-napster:before {
- content: "\f3d2"; }
-
-.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-nintendo-switch:before {
- content: "\f418"; }
-
-.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-odnoklassniki:before {
- content: "\f263"; }
-
-.fa-odnoklassniki-square:before {
- content: "\f264"; }
-
-.fa-oil-can:before {
- content: "\f613"; }
-
-.fa-old-republic:before {
- content: "\f510"; }
-
-.fa-om:before {
- content: "\f679"; }
-
-.fa-opencart:before {
- content: "\f23d"; }
-
-.fa-openid:before {
- content: "\f19b"; }
-
-.fa-opera:before {
- content: "\f26a"; }
-
-.fa-optin-monster:before {
- content: "\f23c"; }
-
-.fa-osi:before {
- content: "\f41a"; }
-
-.fa-otter:before {
- content: "\f700"; }
-
-.fa-outdent:before {
- content: "\f03b"; }
-
-.fa-page4:before {
- content: "\f3d7"; }
-
-.fa-pagelines:before {
- content: "\f18c"; }
-
-.fa-pager:before {
- content: "\f815"; }
-
-.fa-paint-brush:before {
- content: "\f1fc"; }
-
-.fa-paint-roller:before {
- content: "\f5aa"; }
-
-.fa-palette:before {
- content: "\f53f"; }
-
-.fa-palfed:before {
- content: "\f3d8"; }
-
-.fa-pallet:before {
- content: "\f482"; }
-
-.fa-paper-plane:before {
- content: "\f1d8"; }
-
-.fa-paperclip:before {
- content: "\f0c6"; }
-
-.fa-parachute-box:before {
- content: "\f4cd"; }
-
-.fa-paragraph:before {
- content: "\f1dd"; }
-
-.fa-parking:before {
- content: "\f540"; }
-
-.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-paypal:before {
- content: "\f1ed"; }
-
-.fa-peace:before {
- content: "\f67c"; }
-
-.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-alt:before {
- content: "\f303"; }
-
-.fa-pencil-ruler:before {
- content: "\f5ae"; }
-
-.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-phabricator:before {
- content: "\f3db"; }
-
-.fa-phoenix-framework:before {
- content: "\f3dc"; }
-
-.fa-phoenix-squadron:before {
- content: "\f511"; }
-
-.fa-phone:before {
- content: "\f095"; }
-
-.fa-phone-slash:before {
- content: "\f3dd"; }
-
-.fa-phone-square:before {
- content: "\f098"; }
-
-.fa-phone-volume:before {
- content: "\f2a0"; }
-
-.fa-php:before {
- content: "\f457"; }
-
-.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-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-slice:before {
- content: "\f818"; }
-
-.fa-place-of-worship:before {
- content: "\f67f"; }
-
-.fa-plane:before {
- content: "\f072"; }
-
-.fa-plane-arrival:before {
- content: "\f5af"; }
-
-.fa-plane-departure:before {
- content: "\f5b0"; }
-
-.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-square:before {
- content: "\f0fe"; }
-
-.fa-podcast:before {
- content: "\f2ce"; }
-
-.fa-poll:before {
- content: "\f681"; }
-
-.fa-poll-h:before {
- content: "\f682"; }
-
-.fa-poo:before {
- content: "\f2fe"; }
-
-.fa-poo-storm:before {
- content: "\f75a"; }
-
-.fa-poop:before {
- content: "\f619"; }
-
-.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-print:before {
- content: "\f02f"; }
-
-.fa-procedures:before {
- content: "\f487"; }
-
-.fa-product-hunt:before {
- content: "\f288"; }
-
-.fa-project-diagram:before {
- content: "\f542"; }
-
-.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-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-radiation:before {
- content: "\f7b9"; }
-
-.fa-radiation-alt:before {
- content: "\f7ba"; }
-
-.fa-rainbow:before {
- content: "\f75b"; }
-
-.fa-random:before {
- content: "\f074"; }
-
-.fa-raspberry-pi:before {
- content: "\f7bb"; }
-
-.fa-ravelry:before {
- content: "\f2d9"; }
-
-.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-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-registered:before {
- content: "\f25d"; }
-
-.fa-renren:before {
- content: "\f18b"; }
-
-.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-rev:before {
- content: "\f5b2"; }
-
-.fa-ribbon:before {
- content: "\f4d6"; }
-
-.fa-ring:before {
- content: "\f70b"; }
-
-.fa-road:before {
- content: "\f018"; }
-
-.fa-robot:before {
- content: "\f544"; }
-
-.fa-rocket:before {
- content: "\f135"; }
-
-.fa-rocketchat:before {
- content: "\f3e8"; }
-
-.fa-rockrms:before {
- content: "\f3e9"; }
-
-.fa-route:before {
- content: "\f4d7"; }
-
-.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-vertical:before {
- content: "\f548"; }
-
-.fa-running:before {
- content: "\f70c"; }
-
-.fa-rupee-sign:before {
- content: "\f156"; }
-
-.fa-sad-cry:before {
- content: "\f5b3"; }
-
-.fa-sad-tear:before {
- content: "\f5b4"; }
-
-.fa-safari:before {
- content: "\f267"; }
-
-.fa-sass:before {
- content: "\f41e"; }
-
-.fa-satellite:before {
- content: "\f7bf"; }
-
-.fa-satellite-dish:before {
- content: "\f7c0"; }
-
-.fa-save:before {
- content: "\f0c7"; }
-
-.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-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-server:before {
- content: "\f233"; }
-
-.fa-servicestack:before {
- content: "\f3ec"; }
-
-.fa-shapes:before {
- content: "\f61f"; }
-
-.fa-share:before {
- content: "\f064"; }
-
-.fa-share-alt:before {
- content: "\f1e0"; }
-
-.fa-share-alt-square:before {
- content: "\f1e1"; }
-
-.fa-share-square:before {
- content: "\f14d"; }
-
-.fa-shekel-sign:before {
- content: "\f20b"; }
-
-.fa-shield-alt:before {
- content: "\f3ed"; }
-
-.fa-ship:before {
- content: "\f21a"; }
-
-.fa-shipping-fast:before {
- content: "\f48b"; }
-
-.fa-shirtsinbulk:before {
- content: "\f214"; }
-
-.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-shower:before {
- content: "\f2cc"; }
-
-.fa-shuttle-van:before {
- content: "\f5b6"; }
-
-.fa-sign:before {
- content: "\f4d9"; }
-
-.fa-sign-in-alt:before {
- content: "\f2f6"; }
-
-.fa-sign-language:before {
- content: "\f2a7"; }
-
-.fa-sign-out-alt:before {
- content: "\f2f5"; }
-
-.fa-signal:before {
- content: "\f012"; }
-
-.fa-signature:before {
- content: "\f5b7"; }
-
-.fa-sim-card:before {
- content: "\f7c4"; }
-
-.fa-simplybuilt:before {
- content: "\f215"; }
-
-.fa-sistrix:before {
- content: "\f3ee"; }
-
-.fa-sitemap:before {
- content: "\f0e8"; }
-
-.fa-sith:before {
- content: "\f512"; }
-
-.fa-skating:before {
- content: "\f7c5"; }
-
-.fa-sketch:before {
- content: "\f7c6"; }
-
-.fa-skiing:before {
- content: "\f7c9"; }
-
-.fa-skiing-nordic:before {
- content: "\f7ca"; }
-
-.fa-skull:before {
- content: "\f54c"; }
-
-.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-sleigh:before {
- content: "\f7cc"; }
-
-.fa-sliders-h:before {
- content: "\f1de"; }
-
-.fa-slideshare:before {
- content: "\f1e7"; }
-
-.fa-smile:before {
- content: "\f118"; }
-
-.fa-smile-beam:before {
- content: "\f5b8"; }
-
-.fa-smile-wink:before {
- content: "\f4da"; }
-
-.fa-smog:before {
- content: "\f75f"; }
-
-.fa-smoking:before {
- content: "\f48d"; }
-
-.fa-smoking-ban:before {
- content: "\f54d"; }
-
-.fa-sms:before {
- content: "\f7cd"; }
-
-.fa-snapchat:before {
- content: "\f2ab"; }
-
-.fa-snapchat-ghost:before {
- content: "\f2ac"; }
-
-.fa-snapchat-square:before {
- content: "\f2ad"; }
-
-.fa-snowboarding:before {
- content: "\f7ce"; }
-
-.fa-snowflake:before {
- content: "\f2dc"; }
-
-.fa-snowman:before {
- content: "\f7d0"; }
-
-.fa-snowplow:before {
- content: "\f7d2"; }
-
-.fa-socks:before {
- content: "\f696"; }
-
-.fa-solar-panel:before {
- content: "\f5ba"; }
-
-.fa-sort:before {
- content: "\f0dc"; }
-
-.fa-sort-alpha-down:before {
- content: "\f15d"; }
-
-.fa-sort-alpha-up:before {
- content: "\f15e"; }
-
-.fa-sort-amount-down:before {
- content: "\f160"; }
-
-.fa-sort-amount-up:before {
- content: "\f161"; }
-
-.fa-sort-down:before {
- content: "\f0dd"; }
-
-.fa-sort-numeric-down:before {
- content: "\f162"; }
-
-.fa-sort-numeric-up:before {
- content: "\f163"; }
-
-.fa-sort-up:before {
- content: "\f0de"; }
-
-.fa-soundcloud:before {
- content: "\f1be"; }
-
-.fa-sourcetree:before {
- content: "\f7d3"; }
-
-.fa-spa:before {
- content: "\f5bb"; }
-
-.fa-space-shuttle:before {
- content: "\f197"; }
-
-.fa-speakap:before {
- content: "\f3f3"; }
-
-.fa-spider:before {
- content: "\f717"; }
-
-.fa-spinner:before {
- content: "\f110"; }
-
-.fa-splotch:before {
- content: "\f5bc"; }
-
-.fa-spotify:before {
- content: "\f1bc"; }
-
-.fa-spray-can:before {
- content: "\f5bd"; }
-
-.fa-square:before {
- content: "\f0c8"; }
-
-.fa-square-full:before {
- content: "\f45c"; }
-
-.fa-square-root-alt:before {
- content: "\f698"; }
-
-.fa-squarespace:before {
- content: "\f5be"; }
-
-.fa-stack-exchange:before {
- content: "\f18d"; }
-
-.fa-stack-overflow:before {
- content: "\f16c"; }
-
-.fa-stamp:before {
- content: "\f5bf"; }
-
-.fa-star:before {
- content: "\f005"; }
-
-.fa-star-and-crescent:before {
- content: "\f699"; }
-
-.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-staylinked:before {
- content: "\f3f5"; }
-
-.fa-steam:before {
- content: "\f1b6"; }
-
-.fa-steam-square:before {
- content: "\f1b7"; }
-
-.fa-steam-symbol:before {
- content: "\f3f6"; }
-
-.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-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-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-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-swimmer:before {
- content: "\f5c4"; }
-
-.fa-swimming-pool:before {
- content: "\f5c5"; }
-
-.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-tablets:before {
- content: "\f490"; }
-
-.fa-tachometer-alt:before {
- content: "\f3fd"; }
-
-.fa-tag:before {
- content: "\f02b"; }
-
-.fa-tags:before {
- content: "\f02c"; }
-
-.fa-tape:before {
- content: "\f4db"; }
-
-.fa-tasks:before {
- content: "\f0ae"; }
-
-.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-temperature-high:before {
- content: "\f769"; }
-
-.fa-temperature-low:before {
- content: "\f76b"; }
-
-.fa-tencent-weibo:before {
- content: "\f1d5"; }
-
-.fa-tenge:before {
- content: "\f7d7"; }
-
-.fa-terminal:before {
- content: "\f120"; }
-
-.fa-text-height:before {
- content: "\f034"; }
-
-.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-think-peaks:before {
- content: "\f731"; }
-
-.fa-thumbs-down:before {
- content: "\f165"; }
-
-.fa-thumbs-up:before {
- content: "\f164"; }
-
-.fa-thumbtack:before {
- content: "\f08d"; }
-
-.fa-ticket-alt:before {
- content: "\f3ff"; }
-
-.fa-times:before {
- content: "\f00d"; }
-
-.fa-times-circle:before {
- content: "\f057"; }
-
-.fa-tint:before {
- content: "\f043"; }
-
-.fa-tint-slash:before {
- content: "\f5c7"; }
-
-.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-toolbox:before {
- content: "\f552"; }
-
-.fa-tools:before {
- content: "\f7d9"; }
-
-.fa-tooth:before {
- content: "\f5c9"; }
-
-.fa-torah:before {
- content: "\f6a0"; }
-
-.fa-torii-gate:before {
- content: "\f6a1"; }
-
-.fa-tractor:before {
- content: "\f722"; }
-
-.fa-trade-federation:before {
- content: "\f513"; }
-
-.fa-trademark:before {
- content: "\f25c"; }
-
-.fa-traffic-light:before {
- content: "\f637"; }
-
-.fa-train:before {
- content: "\f238"; }
-
-.fa-tram:before {
- content: "\f7da"; }
-
-.fa-transgender:before {
- content: "\f224"; }
-
-.fa-transgender-alt:before {
- content: "\f225"; }
-
-.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-tree:before {
- content: "\f1bb"; }
-
-.fa-trello:before {
- content: "\f181"; }
-
-.fa-tripadvisor:before {
- content: "\f262"; }
-
-.fa-trophy:before {
- content: "\f091"; }
-
-.fa-truck:before {
- content: "\f0d1"; }
-
-.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-tshirt:before {
- content: "\f553"; }
-
-.fa-tty:before {
- content: "\f1e4"; }
-
-.fa-tumblr:before {
- content: "\f173"; }
-
-.fa-tumblr-square:before {
- content: "\f174"; }
-
-.fa-tv:before {
- content: "\f26c"; }
-
-.fa-twitch:before {
- content: "\f1e8"; }
-
-.fa-twitter:before {
- content: "\f099"; }
-
-.fa-twitter-square:before {
- content: "\f081"; }
-
-.fa-typo3:before {
- content: "\f42b"; }
-
-.fa-uber:before {
- content: "\f402"; }
-
-.fa-ubuntu:before {
- content: "\f7df"; }
-
-.fa-uikit:before {
- content: "\f403"; }
-
-.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-uniregistry:before {
- content: "\f404"; }
-
-.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-user:before {
- content: "\f007"; }
-
-.fa-user-alt:before {
- content: "\f406"; }
-
-.fa-user-alt-slash:before {
- content: "\f4fa"; }
-
-.fa-user-astronaut:before {
- content: "\f4fb"; }
-
-.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-edit:before {
- content: "\f4ff"; }
-
-.fa-user-friends:before {
- content: "\f500"; }
-
-.fa-user-graduate:before {
- content: "\f501"; }
-
-.fa-user-injured:before {
- content: "\f728"; }
-
-.fa-user-lock:before {
- content: "\f502"; }
-
-.fa-user-md:before {
- content: "\f0f0"; }
-
-.fa-user-minus:before {
- content: "\f503"; }
-
-.fa-user-ninja:before {
- content: "\f504"; }
-
-.fa-user-nurse:before {
- content: "\f82f"; }
-
-.fa-user-plus:before {
- content: "\f234"; }
-
-.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-users:before {
- content: "\f0c0"; }
-
-.fa-users-cog:before {
- content: "\f509"; }
-
-.fa-usps:before {
- content: "\f7e1"; }
-
-.fa-ussunnah:before {
- content: "\f407"; }
-
-.fa-utensil-spoon:before {
- content: "\f2e5"; }
-
-.fa-utensils:before {
- content: "\f2e7"; }
-
-.fa-vaadin:before {
- content: "\f408"; }
-
-.fa-vector-square:before {
- content: "\f5cb"; }
-
-.fa-venus:before {
- content: "\f221"; }
-
-.fa-venus-double:before {
- content: "\f226"; }
-
-.fa-venus-mars:before {
- content: "\f228"; }
-
-.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-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-vk:before {
- content: "\f189"; }
-
-.fa-vnv:before {
- content: "\f40b"; }
-
-.fa-volleyball-ball:before {
- content: "\f45f"; }
-
-.fa-volume-down:before {
- content: "\f027"; }
-
-.fa-volume-mute:before {
- content: "\f6a9"; }
-
-.fa-volume-off:before {
- content: "\f026"; }
-
-.fa-volume-up:before {
- content: "\f028"; }
-
-.fa-vote-yea:before {
- content: "\f772"; }
-
-.fa-vr-cardboard:before {
- content: "\f729"; }
-
-.fa-vuejs:before {
- content: "\f41f"; }
-
-.fa-walking:before {
- content: "\f554"; }
-
-.fa-wallet:before {
- content: "\f555"; }
-
-.fa-warehouse:before {
- content: "\f494"; }
-
-.fa-water:before {
- content: "\f773"; }
-
-.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-whatsapp:before {
- content: "\f232"; }
-
-.fa-whatsapp-square:before {
- content: "\f40c"; }
-
-.fa-wheelchair:before {
- content: "\f193"; }
-
-.fa-whmcs:before {
- content: "\f40d"; }
-
-.fa-wifi:before {
- content: "\f1eb"; }
-
-.fa-wikipedia-w:before {
- content: "\f266"; }
-
-.fa-wind:before {
- content: "\f72e"; }
-
-.fa-window-close:before {
- content: "\f410"; }
-
-.fa-window-maximize:before {
- content: "\f2d0"; }
-
-.fa-window-minimize:before {
- content: "\f2d1"; }
-
-.fa-window-restore:before {
- content: "\f2d2"; }
-
-.fa-windows:before {
- content: "\f17a"; }
-
-.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-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-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: normal;
- font-display: auto;
- src: url("../webfonts/fa-brands-400.eot");
- src: url("../webfonts/fa-brands-400.eot?#iefix") format("embedded-opentype"), url("../webfonts/fa-brands-400.woff2") format("woff2"), url("../webfonts/fa-brands-400.woff") format("woff"), url("../webfonts/fa-brands-400.ttf") format("truetype"), url("../webfonts/fa-brands-400.svg#fontawesome") format("svg"); }
-
-.fab {
- font-family: 'Font Awesome 5 Brands'; }
-@font-face {
- font-family: 'Font Awesome 5 Free';
- font-style: normal;
- font-weight: 400;
- font-display: auto;
- src: url("../webfonts/fa-regular-400.eot");
- src: url("../webfonts/fa-regular-400.eot?#iefix") format("embedded-opentype"), url("../webfonts/fa-regular-400.woff2") format("woff2"), url("../webfonts/fa-regular-400.woff") format("woff"), url("../webfonts/fa-regular-400.ttf") format("truetype"), url("../webfonts/fa-regular-400.svg#fontawesome") format("svg"); }
-
-.far {
- font-family: 'Font Awesome 5 Free';
- font-weight: 400; }
-@font-face {
- font-family: 'Font Awesome 5 Free';
- font-style: normal;
- font-weight: 900;
- font-display: auto;
- src: url("../webfonts/fa-solid-900.eot");
- src: url("../webfonts/fa-solid-900.eot?#iefix") format("embedded-opentype"), url("../webfonts/fa-solid-900.woff2") format("woff2"), url("../webfonts/fa-solid-900.woff") format("woff"), url("../webfonts/fa-solid-900.ttf") format("truetype"), url("../webfonts/fa-solid-900.svg#fontawesome") format("svg"); }
-
-.fa,
-.fas {
- font-family: 'Font Awesome 5 Free';
- font-weight: 900; }
diff --git a/shopyo/static/fontawesome/css/all.min.css b/shopyo/static/fontawesome/css/all.min.css
deleted file mode 100644
index a74835e..0000000
--- a/shopyo/static/fontawesome/css/all.min.css
+++ /dev/null
@@ -1 +0,0 @@
-.fa,.fab,.fal,.far,.fas{-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:.08em solid #eee;border-radius:.1em;padding:.2em .25em .15em}.fa-pull-left{float:left}.fa-pull-right{float:right}.fa.fa-pull-left,.fab.fa-pull-left,.fal.fa-pull-left,.far.fa-pull-left,.fas.fa-pull-left{margin-right:.3em}.fa.fa-pull-right,.fab.fa-pull-right,.fal.fa-pull-right,.far.fa-pull-right,.fas.fa-pull-right{margin-left:.3em}.fa-spin{animation:fa-spin 2s infinite linear}.fa-pulse{animation:fa-spin 1s infinite steps(8)}@keyframes fa-spin{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}.fa-rotate-90{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=1)";transform:rotate(90deg)}.fa-rotate-180{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=2)";transform:rotate(180deg)}.fa-rotate-270{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=3)";transform:rotate(270deg)}.fa-flip-horizontal{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=0, mirror=1)";transform:scaleX(-1)}.fa-flip-vertical{transform:scaleY(-1)}.fa-flip-both,.fa-flip-horizontal.fa-flip-vertical,.fa-flip-vertical{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=2, mirror=1)"}.fa-flip-both,.fa-flip-horizontal.fa-flip-vertical{transform:scale(-1)}:root .fa-flip-both,:root .fa-flip-horizontal,:root .fa-flip-vertical,:root .fa-rotate-90,:root .fa-rotate-180,:root .fa-rotate-270{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-accessible-icon:before{content:"\f368"}.fa-accusoft:before{content:"\f369"}.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-freshener:before{content:"\f5d0"}.fa-algolia:before{content:"\f36c"}.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-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-anchor:before{content:"\f13d"}.fa-android:before{content:"\f17b"}.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-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-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-left:before{content:"\f060"}.fa-arrow-right:before{content:"\f061"}.fa-arrow-up:before{content:"\f062"}.fa-arrows-alt:before{content:"\f0b2"}.fa-arrows-alt-h:before{content:"\f337"}.fa-arrows-alt-v:before{content:"\f338"}.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-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-baby:before{content:"\f77c"}.fa-baby-carriage:before{content:"\f77d"}.fa-backspace:before{content:"\f55a"}.fa-backward:before{content:"\f04a"}.fa-bacon:before{content:"\f7e5"}.fa-balance-scale:before{content:"\f24e"}.fa-ban:before{content:"\f05e"}.fa-band-aid:before{content:"\f462"}.fa-bandcamp:before{content:"\f2d5"}.fa-barcode:before{content:"\f02a"}.fa-bars:before{content:"\f0c9"}.fa-baseball-ball:before{content:"\f433"}.fa-basketball-ball:before{content:"\f434"}.fa-bath:before{content:"\f2cd"}.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-three-quarters:before{content:"\f241"}.fa-bed:before{content:"\f236"}.fa-beer:before{content:"\f0fc"}.fa-behance:before{content:"\f1b4"}.fa-behance-square:before{content:"\f1b5"}.fa-bell:before{content:"\f0f3"}.fa-bell-slash:before{content:"\f1f6"}.fa-bezier-curve:before{content:"\f55b"}.fa-bible:before{content:"\f647"}.fa-bicycle:before{content:"\f206"}.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-blender:before{content:"\f517"}.fa-blender-phone:before{content:"\f6b6"}.fa-blind:before{content:"\f29d"}.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-bong:before{content:"\f55c"}.fa-book:before{content:"\f02d"}.fa-book-dead:before{content:"\f6b7"}.fa-book-medical:before{content:"\f7e6"}.fa-book-open:before{content:"\f518"}.fa-book-reader:before{content:"\f5da"}.fa-bookmark:before{content:"\f02e"}.fa-bowling-ball:before{content:"\f436"}.fa-box:before{content:"\f466"}.fa-box-open:before{content:"\f49e"}.fa-boxes:before{content:"\f468"}.fa-braille:before{content:"\f2a1"}.fa-brain:before{content:"\f5dc"}.fa-bread-slice:before{content:"\f7ec"}.fa-briefcase:before{content:"\f0b1"}.fa-briefcase-medical:before{content:"\f469"}.fa-broadcast-tower:before{content:"\f519"}.fa-broom:before{content:"\f51a"}.fa-brush:before{content:"\f55d"}.fa-btc:before{content:"\f15a"}.fa-bug:before{content:"\f188"}.fa-building:before{content:"\f1ad"}.fa-bullhorn:before{content:"\f0a1"}.fa-bullseye:before{content:"\f140"}.fa-burn:before{content:"\f46a"}.fa-buromobelexperte:before{content:"\f37f"}.fa-bus:before{content:"\f207"}.fa-bus-alt:before{content:"\f55e"}.fa-business-time:before{content:"\f64a"}.fa-buysellads:before{content:"\f20d"}.fa-calculator:before{content:"\f1ec"}.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-minus:before{content:"\f272"}.fa-calendar-plus:before{content:"\f271"}.fa-calendar-times:before{content:"\f273"}.fa-calendar-week:before{content:"\f784"}.fa-camera:before{content:"\f030"}.fa-camera-retro:before{content:"\f083"}.fa-campground:before{content:"\f6bb"}.fa-canadian-maple-leaf:before{content:"\f785"}.fa-candy-cane:before{content:"\f786"}.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-crash:before{content:"\f5e1"}.fa-car-side:before{content:"\f5e4"}.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-cart-arrow-down:before{content:"\f218"}.fa-cart-plus:before{content:"\f217"}.fa-cash-register:before{content:"\f788"}.fa-cat:before{content:"\f6be"}.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-centercode:before{content:"\f380"}.fa-centos:before{content:"\f789"}.fa-certificate:before{content:"\f0a3"}.fa-chair:before{content:"\f6c0"}.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-pie:before{content:"\f200"}.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-chess:before{content:"\f439"}.fa-chess-bishop:before{content:"\f43a"}.fa-chess-board:before{content:"\f43c"}.fa-chess-king:before{content:"\f43f"}.fa-chess-knight:before{content:"\f441"}.fa-chess-pawn:before{content:"\f443"}.fa-chess-queen:before{content:"\f445"}.fa-chess-rook:before{content:"\f447"}.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-down:before{content:"\f078"}.fa-chevron-left:before{content:"\f053"}.fa-chevron-right:before{content:"\f054"}.fa-chevron-up:before{content:"\f077"}.fa-child:before{content:"\f1ae"}.fa-chrome:before{content:"\f268"}.fa-church:before{content:"\f51d"}.fa-circle:before{content:"\f111"}.fa-circle-notch:before{content:"\f1ce"}.fa-city:before{content:"\f64f"}.fa-clinic-medical:before{content:"\f7f2"}.fa-clipboard:before{content:"\f328"}.fa-clipboard-check:before{content:"\f46c"}.fa-clipboard-list:before{content:"\f46d"}.fa-clock:before{content:"\f017"}.fa-clone:before{content:"\f24d"}.fa-closed-captioning:before{content:"\f20a"}.fa-cloud:before{content:"\f0c2"}.fa-cloud-download-alt:before{content:"\f381"}.fa-cloud-meatball:before{content:"\f73b"}.fa-cloud-moon:before{content:"\f6c3"}.fa-cloud-moon-rain:before{content:"\f73c"}.fa-cloud-rain:before{content:"\f73d"}.fa-cloud-showers-heavy:before{content:"\f740"}.fa-cloud-sun:before{content:"\f6c4"}.fa-cloud-sun-rain:before{content:"\f743"}.fa-cloud-upload-alt:before{content:"\f382"}.fa-cloudscale:before{content:"\f383"}.fa-cloudsmith:before{content:"\f384"}.fa-cloudversify:before{content:"\f385"}.fa-cocktail:before{content:"\f561"}.fa-code:before{content:"\f121"}.fa-code-branch:before{content:"\f126"}.fa-codepen:before{content:"\f1cb"}.fa-codiepie:before{content:"\f284"}.fa-coffee:before{content:"\f0f4"}.fa-cog:before{content:"\f013"}.fa-cogs:before{content:"\f085"}.fa-coins:before{content:"\f51e"}.fa-columns:before{content:"\f0db"}.fa-comment:before{content:"\f075"}.fa-comment-alt:before{content:"\f27a"}.fa-comment-dollar:before{content:"\f651"}.fa-comment-dots:before{content:"\f4ad"}.fa-comment-medical:before{content:"\f7f5"}.fa-comment-slash:before{content:"\f4b3"}.fa-comments:before{content:"\f086"}.fa-comments-dollar:before{content:"\f653"}.fa-compact-disc:before{content:"\f51f"}.fa-compass:before{content:"\f14e"}.fa-compress:before{content:"\f066"}.fa-compress-arrows-alt:before{content:"\f78c"}.fa-concierge-bell:before{content:"\f562"}.fa-confluence:before{content:"\f78d"}.fa-connectdevelop:before{content:"\f20e"}.fa-contao:before{content:"\f26d"}.fa-cookie:before{content:"\f563"}.fa-cookie-bite:before{content:"\f564"}.fa-copy:before{content:"\f0c5"}.fa-copyright:before{content:"\f1f9"}.fa-couch:before{content:"\f4b8"}.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-critical-role:before{content:"\f6c9"}.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-css3:before{content:"\f13c"}.fa-css3-alt:before{content:"\f38b"}.fa-cube:before{content:"\f1b2"}.fa-cubes:before{content:"\f1b3"}.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-dashcube:before{content:"\f210"}.fa-database:before{content:"\f1c0"}.fa-deaf:before{content:"\f2a4"}.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-dev:before{content:"\f6cc"}.fa-deviantart:before{content:"\f1bd"}.fa-dharmachakra:before{content:"\f655"}.fa-dhl:before{content:"\f790"}.fa-diagnoses:before{content:"\f470"}.fa-diaspora:before{content:"\f791"}.fa-dice:before{content:"\f522"}.fa-dice-d20:before{content:"\f6cf"}.fa-dice-d6:before{content:"\f6d1"}.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-digital-ocean:before{content:"\f391"}.fa-digital-tachograph:before{content:"\f566"}.fa-directions:before{content:"\f5eb"}.fa-discord:before{content:"\f392"}.fa-discourse:before{content:"\f393"}.fa-divide:before{content:"\f529"}.fa-dizzy:before{content:"\f567"}.fa-dna:before{content:"\f471"}.fa-dochub:before{content:"\f394"}.fa-docker:before{content:"\f395"}.fa-dog:before{content:"\f6d3"}.fa-dollar-sign:before{content:"\f155"}.fa-dolly:before{content:"\f472"}.fa-dolly-flatbed:before{content:"\f474"}.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-polygon:before{content:"\f5ee"}.fa-dribbble:before{content:"\f17d"}.fa-dribbble-square:before{content:"\f397"}.fa-dropbox:before{content:"\f16b"}.fa-drum:before{content:"\f569"}.fa-drum-steelpan:before{content:"\f56a"}.fa-drumstick-bite:before{content:"\f6d7"}.fa-drupal:before{content:"\f1a9"}.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-earlybirds:before{content:"\f39a"}.fa-ebay:before{content:"\f4f4"}.fa-edge:before{content:"\f282"}.fa-edit:before{content:"\f044"}.fa-egg:before{content:"\f7fb"}.fa-eject:before{content:"\f052"}.fa-elementor:before{content:"\f430"}.fa-ellipsis-h:before{content:"\f141"}.fa-ellipsis-v:before{content:"\f142"}.fa-ello:before{content:"\f5f1"}.fa-ember:before{content:"\f423"}.fa-empire:before{content:"\f1d1"}.fa-envelope:before{content:"\f0e0"}.fa-envelope-open:before{content:"\f2b6"}.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-exchange-alt:before{content:"\f362"}.fa-exclamation:before{content:"\f12a"}.fa-exclamation-circle:before{content:"\f06a"}.fa-exclamation-triangle:before{content:"\f071"}.fa-expand:before{content:"\f065"}.fa-expand-arrows-alt:before{content:"\f31e"}.fa-expeditedssl:before{content:"\f23e"}.fa-external-link-alt:before{content:"\f35d"}.fa-external-link-square-alt:before{content:"\f360"}.fa-eye:before{content:"\f06e"}.fa-eye-dropper:before{content:"\f1fb"}.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-fantasy-flight-games:before{content:"\f6dc"}.fa-fast-backward:before{content:"\f049"}.fa-fast-forward:before{content:"\f050"}.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-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-code:before{content:"\f1c9"}.fa-file-contract:before{content:"\f56c"}.fa-file-csv:before{content:"\f6dd"}.fa-file-download:before{content:"\f56d"}.fa-file-excel:before{content:"\f1c3"}.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-pdf:before{content:"\f1c1"}.fa-file-powerpoint:before{content:"\f1c4"}.fa-file-prescription:before{content:"\f572"}.fa-file-signature:before{content:"\f573"}.fa-file-upload:before{content:"\f574"}.fa-file-video:before{content:"\f1c8"}.fa-file-word:before{content:"\f1c2"}.fa-fill:before{content:"\f575"}.fa-fill-drip:before{content:"\f576"}.fa-film:before{content:"\f008"}.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-firefox:before{content:"\f269"}.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-fist-raised:before{content:"\f6de"}.fa-flag:before{content:"\f024"}.fa-flag-checkered:before{content:"\f11e"}.fa-flag-usa:before{content:"\f74d"}.fa-flask:before{content:"\f0c3"}.fa-flickr:before{content:"\f16e"}.fa-flipboard:before{content:"\f44d"}.fa-flushed:before{content:"\f579"}.fa-fly:before{content:"\f417"}.fa-folder:before{content:"\f07b"}.fa-folder-minus:before{content:"\f65d"}.fa-folder-open:before{content:"\f07c"}.fa-folder-plus:before{content:"\f65e"}.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-fonticons:before{content:"\f280"}.fa-fonticons-fi:before{content:"\f3a2"}.fa-football-ball:before{content:"\f44e"}.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-free-code-camp:before{content:"\f2c5"}.fa-freebsd:before{content:"\f3a4"}.fa-frog:before{content:"\f52e"}.fa-frown:before{content:"\f119"}.fa-frown-open:before{content:"\f57a"}.fa-fulcrum:before{content:"\f50b"}.fa-funnel-dollar:before{content:"\f662"}.fa-futbol:before{content:"\f1e3"}.fa-galactic-republic:before{content:"\f50c"}.fa-galactic-senate:before{content:"\f50d"}.fa-gamepad:before{content:"\f11b"}.fa-gas-pump:before{content:"\f52f"}.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-gifts:before{content:"\f79c"}.fa-git:before{content:"\f1d3"}.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-cheers:before{content:"\f79f"}.fa-glass-martini:before{content:"\f000"}.fa-glass-martini-alt:before{content:"\f57b"}.fa-glass-whiskey:before{content:"\f7a0"}.fa-glasses:before{content:"\f530"}.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-gofore:before{content:"\f3a7"}.fa-golf-ball:before{content:"\f450"}.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-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-gulp:before{content:"\f3ae"}.fa-h-square:before{content:"\f0fd"}.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-hamsa:before{content:"\f665"}.fa-hand-holding:before{content:"\f4bd"}.fa-hand-holding-heart:before{content:"\f4be"}.fa-hand-holding-usd:before{content:"\f4c0"}.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-rock:before{content:"\f255"}.fa-hand-scissors:before{content:"\f257"}.fa-hand-spock:before{content:"\f259"}.fa-hands:before{content:"\f4c2"}.fa-hands-helping:before{content:"\f4c4"}.fa-handshake:before{content:"\f2b5"}.fa-hanukiah:before{content:"\f6e6"}.fa-hard-hat:before{content:"\f807"}.fa-hashtag:before{content:"\f292"}.fa-hat-wizard:before{content:"\f6e8"}.fa-haykal:before{content:"\f666"}.fa-hdd:before{content:"\f0a0"}.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-heartbeat:before{content:"\f21e"}.fa-helicopter:before{content:"\f533"}.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-puck:before{content:"\f453"}.fa-holly-berry:before{content:"\f7aa"}.fa-home:before{content:"\f015"}.fa-hooli:before{content:"\f427"}.fa-hornbill:before{content:"\f592"}.fa-horse:before{content:"\f6f0"}.fa-horse-head:before{content:"\f7ab"}.fa-hospital:before{content:"\f0f8"}.fa-hospital-alt:before{content:"\f47d"}.fa-hospital-symbol:before{content:"\f47e"}.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-damage:before{content:"\f6f1"}.fa-houzz:before{content:"\f27c"}.fa-hryvnia:before{content:"\f6f2"}.fa-html5:before{content:"\f13b"}.fa-hubspot:before{content:"\f3b2"}.fa-i-cursor:before{content:"\f246"}.fa-ice-cream:before{content:"\f810"}.fa-icicles:before{content:"\f7ad"}.fa-id-badge:before{content:"\f2c1"}.fa-id-card:before{content:"\f2c2"}.fa-id-card-alt:before{content:"\f47f"}.fa-igloo:before{content:"\f7ae"}.fa-image:before{content:"\f03e"}.fa-images:before{content:"\f302"}.fa-imdb:before{content:"\f2d8"}.fa-inbox:before{content:"\f01c"}.fa-indent:before{content:"\f03c"}.fa-industry:before{content:"\f275"}.fa-infinity:before{content:"\f534"}.fa-info:before{content:"\f129"}.fa-info-circle:before{content:"\f05a"}.fa-instagram:before{content:"\f16d"}.fa-intercom:before{content:"\f7af"}.fa-internet-explorer:before{content:"\f26b"}.fa-invision:before{content:"\f7b0"}.fa-ioxhost:before{content:"\f208"}.fa-italic:before{content:"\f033"}.fa-itunes:before{content:"\f3b4"}.fa-itunes-note:before{content:"\f3b5"}.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-js:before{content:"\f3b8"}.fa-js-square:before{content:"\f3b9"}.fa-jsfiddle:before{content:"\f1cc"}.fa-kaaba:before{content:"\f66b"}.fa-kaggle:before{content:"\f5fa"}.fa-key:before{content:"\f084"}.fa-keybase:before{content:"\f4f5"}.fa-keyboard:before{content:"\f11c"}.fa-keycdn:before{content:"\f3ba"}.fa-khanda:before{content:"\f66d"}.fa-kickstarter:before{content:"\f3bb"}.fa-kickstarter-k:before{content:"\f3bc"}.fa-kiss:before{content:"\f596"}.fa-kiss-beam:before{content:"\f597"}.fa-kiss-wink-heart:before{content:"\f598"}.fa-kiwi-bird:before{content:"\f535"}.fa-korvue:before{content:"\f42f"}.fa-landmark:before{content:"\f66f"}.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-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-leaf:before{content:"\f06c"}.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-alt:before{content:"\f3be"}.fa-level-up-alt:before{content:"\f3bf"}.fa-life-ring:before{content:"\f1cd"}.fa-lightbulb:before{content:"\f0eb"}.fa-line:before{content:"\f3c0"}.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-lira-sign:before{content:"\f195"}.fa-list:before{content:"\f03a"}.fa-list-alt:before{content:"\f022"}.fa-list-ol:before{content:"\f0cb"}.fa-list-ul:before{content:"\f0ca"}.fa-location-arrow:before{content:"\f124"}.fa-lock:before{content:"\f023"}.fa-lock-open:before{content:"\f3c1"}.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-low-vision:before{content:"\f2a8"}.fa-luggage-cart:before{content:"\f59d"}.fa-lyft:before{content:"\f3c3"}.fa-magento:before{content:"\f3c4"}.fa-magic:before{content:"\f0d0"}.fa-magnet:before{content:"\f076"}.fa-mail-bulk:before{content:"\f674"}.fa-mailchimp:before{content:"\f59e"}.fa-male:before{content:"\f183"}.fa-mandalorian:before{content:"\f50f"}.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-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-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-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-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-microscope:before{content:"\f610"}.fa-microsoft:before{content:"\f3ca"}.fa-minus:before{content:"\f068"}.fa-minus-circle:before{content:"\f056"}.fa-minus-square:before{content:"\f146"}.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-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-monument:before{content:"\f5a6"}.fa-moon:before{content:"\f186"}.fa-mortar-pestle:before{content:"\f5a7"}.fa-mosque:before{content:"\f678"}.fa-motorcycle:before{content:"\f21c"}.fa-mountain:before{content:"\f6fc"}.fa-mouse-pointer:before{content:"\f245"}.fa-mug-hot:before{content:"\f7b6"}.fa-music:before{content:"\f001"}.fa-napster:before{content:"\f3d2"}.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-nintendo-switch:before{content:"\f418"}.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-odnoklassniki:before{content:"\f263"}.fa-odnoklassniki-square:before{content:"\f264"}.fa-oil-can:before{content:"\f613"}.fa-old-republic:before{content:"\f510"}.fa-om:before{content:"\f679"}.fa-opencart:before{content:"\f23d"}.fa-openid:before{content:"\f19b"}.fa-opera:before{content:"\f26a"}.fa-optin-monster:before{content:"\f23c"}.fa-osi:before{content:"\f41a"}.fa-otter:before{content:"\f700"}.fa-outdent:before{content:"\f03b"}.fa-page4:before{content:"\f3d7"}.fa-pagelines:before{content:"\f18c"}.fa-pager:before{content:"\f815"}.fa-paint-brush:before{content:"\f1fc"}.fa-paint-roller:before{content:"\f5aa"}.fa-palette:before{content:"\f53f"}.fa-palfed:before{content:"\f3d8"}.fa-pallet:before{content:"\f482"}.fa-paper-plane:before{content:"\f1d8"}.fa-paperclip:before{content:"\f0c6"}.fa-parachute-box:before{content:"\f4cd"}.fa-paragraph:before{content:"\f1dd"}.fa-parking:before{content:"\f540"}.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-paypal:before{content:"\f1ed"}.fa-peace:before{content:"\f67c"}.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-alt:before{content:"\f303"}.fa-pencil-ruler:before{content:"\f5ae"}.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-phabricator:before{content:"\f3db"}.fa-phoenix-framework:before{content:"\f3dc"}.fa-phoenix-squadron:before{content:"\f511"}.fa-phone:before{content:"\f095"}.fa-phone-slash:before{content:"\f3dd"}.fa-phone-square:before{content:"\f098"}.fa-phone-volume:before{content:"\f2a0"}.fa-php:before{content:"\f457"}.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-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-slice:before{content:"\f818"}.fa-place-of-worship:before{content:"\f67f"}.fa-plane:before{content:"\f072"}.fa-plane-arrival:before{content:"\f5af"}.fa-plane-departure:before{content:"\f5b0"}.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-square:before{content:"\f0fe"}.fa-podcast:before{content:"\f2ce"}.fa-poll:before{content:"\f681"}.fa-poll-h:before{content:"\f682"}.fa-poo:before{content:"\f2fe"}.fa-poo-storm:before{content:"\f75a"}.fa-poop:before{content:"\f619"}.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-print:before{content:"\f02f"}.fa-procedures:before{content:"\f487"}.fa-product-hunt:before{content:"\f288"}.fa-project-diagram:before{content:"\f542"}.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-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-radiation:before{content:"\f7b9"}.fa-radiation-alt:before{content:"\f7ba"}.fa-rainbow:before{content:"\f75b"}.fa-random:before{content:"\f074"}.fa-raspberry-pi:before{content:"\f7bb"}.fa-ravelry:before{content:"\f2d9"}.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-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-registered:before{content:"\f25d"}.fa-renren:before{content:"\f18b"}.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-rev:before{content:"\f5b2"}.fa-ribbon:before{content:"\f4d6"}.fa-ring:before{content:"\f70b"}.fa-road:before{content:"\f018"}.fa-robot:before{content:"\f544"}.fa-rocket:before{content:"\f135"}.fa-rocketchat:before{content:"\f3e8"}.fa-rockrms:before{content:"\f3e9"}.fa-route:before{content:"\f4d7"}.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-vertical:before{content:"\f548"}.fa-running:before{content:"\f70c"}.fa-rupee-sign:before{content:"\f156"}.fa-sad-cry:before{content:"\f5b3"}.fa-sad-tear:before{content:"\f5b4"}.fa-safari:before{content:"\f267"}.fa-sass:before{content:"\f41e"}.fa-satellite:before{content:"\f7bf"}.fa-satellite-dish:before{content:"\f7c0"}.fa-save:before{content:"\f0c7"}.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-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-server:before{content:"\f233"}.fa-servicestack:before{content:"\f3ec"}.fa-shapes:before{content:"\f61f"}.fa-share:before{content:"\f064"}.fa-share-alt:before{content:"\f1e0"}.fa-share-alt-square:before{content:"\f1e1"}.fa-share-square:before{content:"\f14d"}.fa-shekel-sign:before{content:"\f20b"}.fa-shield-alt:before{content:"\f3ed"}.fa-ship:before{content:"\f21a"}.fa-shipping-fast:before{content:"\f48b"}.fa-shirtsinbulk:before{content:"\f214"}.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-shower:before{content:"\f2cc"}.fa-shuttle-van:before{content:"\f5b6"}.fa-sign:before{content:"\f4d9"}.fa-sign-in-alt:before{content:"\f2f6"}.fa-sign-language:before{content:"\f2a7"}.fa-sign-out-alt:before{content:"\f2f5"}.fa-signal:before{content:"\f012"}.fa-signature:before{content:"\f5b7"}.fa-sim-card:before{content:"\f7c4"}.fa-simplybuilt:before{content:"\f215"}.fa-sistrix:before{content:"\f3ee"}.fa-sitemap:before{content:"\f0e8"}.fa-sith:before{content:"\f512"}.fa-skating:before{content:"\f7c5"}.fa-sketch:before{content:"\f7c6"}.fa-skiing:before{content:"\f7c9"}.fa-skiing-nordic:before{content:"\f7ca"}.fa-skull:before{content:"\f54c"}.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-sleigh:before{content:"\f7cc"}.fa-sliders-h:before{content:"\f1de"}.fa-slideshare:before{content:"\f1e7"}.fa-smile:before{content:"\f118"}.fa-smile-beam:before{content:"\f5b8"}.fa-smile-wink:before{content:"\f4da"}.fa-smog:before{content:"\f75f"}.fa-smoking:before{content:"\f48d"}.fa-smoking-ban:before{content:"\f54d"}.fa-sms:before{content:"\f7cd"}.fa-snapchat:before{content:"\f2ab"}.fa-snapchat-ghost:before{content:"\f2ac"}.fa-snapchat-square:before{content:"\f2ad"}.fa-snowboarding:before{content:"\f7ce"}.fa-snowflake:before{content:"\f2dc"}.fa-snowman:before{content:"\f7d0"}.fa-snowplow:before{content:"\f7d2"}.fa-socks:before{content:"\f696"}.fa-solar-panel:before{content:"\f5ba"}.fa-sort:before{content:"\f0dc"}.fa-sort-alpha-down:before{content:"\f15d"}.fa-sort-alpha-up:before{content:"\f15e"}.fa-sort-amount-down:before{content:"\f160"}.fa-sort-amount-up:before{content:"\f161"}.fa-sort-down:before{content:"\f0dd"}.fa-sort-numeric-down:before{content:"\f162"}.fa-sort-numeric-up:before{content:"\f163"}.fa-sort-up:before{content:"\f0de"}.fa-soundcloud:before{content:"\f1be"}.fa-sourcetree:before{content:"\f7d3"}.fa-spa:before{content:"\f5bb"}.fa-space-shuttle:before{content:"\f197"}.fa-speakap:before{content:"\f3f3"}.fa-spider:before{content:"\f717"}.fa-spinner:before{content:"\f110"}.fa-splotch:before{content:"\f5bc"}.fa-spotify:before{content:"\f1bc"}.fa-spray-can:before{content:"\f5bd"}.fa-square:before{content:"\f0c8"}.fa-square-full:before{content:"\f45c"}.fa-square-root-alt:before{content:"\f698"}.fa-squarespace:before{content:"\f5be"}.fa-stack-exchange:before{content:"\f18d"}.fa-stack-overflow:before{content:"\f16c"}.fa-stamp:before{content:"\f5bf"}.fa-star:before{content:"\f005"}.fa-star-and-crescent:before{content:"\f699"}.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-staylinked:before{content:"\f3f5"}.fa-steam:before{content:"\f1b6"}.fa-steam-square:before{content:"\f1b7"}.fa-steam-symbol:before{content:"\f3f6"}.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-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-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-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-swimmer:before{content:"\f5c4"}.fa-swimming-pool:before{content:"\f5c5"}.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-tablets:before{content:"\f490"}.fa-tachometer-alt:before{content:"\f3fd"}.fa-tag:before{content:"\f02b"}.fa-tags:before{content:"\f02c"}.fa-tape:before{content:"\f4db"}.fa-tasks:before{content:"\f0ae"}.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-temperature-high:before{content:"\f769"}.fa-temperature-low:before{content:"\f76b"}.fa-tencent-weibo:before{content:"\f1d5"}.fa-tenge:before{content:"\f7d7"}.fa-terminal:before{content:"\f120"}.fa-text-height:before{content:"\f034"}.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-think-peaks:before{content:"\f731"}.fa-thumbs-down:before{content:"\f165"}.fa-thumbs-up:before{content:"\f164"}.fa-thumbtack:before{content:"\f08d"}.fa-ticket-alt:before{content:"\f3ff"}.fa-times:before{content:"\f00d"}.fa-times-circle:before{content:"\f057"}.fa-tint:before{content:"\f043"}.fa-tint-slash:before{content:"\f5c7"}.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-toolbox:before{content:"\f552"}.fa-tools:before{content:"\f7d9"}.fa-tooth:before{content:"\f5c9"}.fa-torah:before{content:"\f6a0"}.fa-torii-gate:before{content:"\f6a1"}.fa-tractor:before{content:"\f722"}.fa-trade-federation:before{content:"\f513"}.fa-trademark:before{content:"\f25c"}.fa-traffic-light:before{content:"\f637"}.fa-train:before{content:"\f238"}.fa-tram:before{content:"\f7da"}.fa-transgender:before{content:"\f224"}.fa-transgender-alt:before{content:"\f225"}.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-tree:before{content:"\f1bb"}.fa-trello:before{content:"\f181"}.fa-tripadvisor:before{content:"\f262"}.fa-trophy:before{content:"\f091"}.fa-truck:before{content:"\f0d1"}.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-tshirt:before{content:"\f553"}.fa-tty:before{content:"\f1e4"}.fa-tumblr:before{content:"\f173"}.fa-tumblr-square:before{content:"\f174"}.fa-tv:before{content:"\f26c"}.fa-twitch:before{content:"\f1e8"}.fa-twitter:before{content:"\f099"}.fa-twitter-square:before{content:"\f081"}.fa-typo3:before{content:"\f42b"}.fa-uber:before{content:"\f402"}.fa-ubuntu:before{content:"\f7df"}.fa-uikit:before{content:"\f403"}.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-uniregistry:before{content:"\f404"}.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-user:before{content:"\f007"}.fa-user-alt:before{content:"\f406"}.fa-user-alt-slash:before{content:"\f4fa"}.fa-user-astronaut:before{content:"\f4fb"}.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-edit:before{content:"\f4ff"}.fa-user-friends:before{content:"\f500"}.fa-user-graduate:before{content:"\f501"}.fa-user-injured:before{content:"\f728"}.fa-user-lock:before{content:"\f502"}.fa-user-md:before{content:"\f0f0"}.fa-user-minus:before{content:"\f503"}.fa-user-ninja:before{content:"\f504"}.fa-user-nurse:before{content:"\f82f"}.fa-user-plus:before{content:"\f234"}.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-users:before{content:"\f0c0"}.fa-users-cog:before{content:"\f509"}.fa-usps:before{content:"\f7e1"}.fa-ussunnah:before{content:"\f407"}.fa-utensil-spoon:before{content:"\f2e5"}.fa-utensils:before{content:"\f2e7"}.fa-vaadin:before{content:"\f408"}.fa-vector-square:before{content:"\f5cb"}.fa-venus:before{content:"\f221"}.fa-venus-double:before{content:"\f226"}.fa-venus-mars:before{content:"\f228"}.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-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-vk:before{content:"\f189"}.fa-vnv:before{content:"\f40b"}.fa-volleyball-ball:before{content:"\f45f"}.fa-volume-down:before{content:"\f027"}.fa-volume-mute:before{content:"\f6a9"}.fa-volume-off:before{content:"\f026"}.fa-volume-up:before{content:"\f028"}.fa-vote-yea:before{content:"\f772"}.fa-vr-cardboard:before{content:"\f729"}.fa-vuejs:before{content:"\f41f"}.fa-walking:before{content:"\f554"}.fa-wallet:before{content:"\f555"}.fa-warehouse:before{content:"\f494"}.fa-water:before{content:"\f773"}.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-whatsapp:before{content:"\f232"}.fa-whatsapp-square:before{content:"\f40c"}.fa-wheelchair:before{content:"\f193"}.fa-whmcs:before{content:"\f40d"}.fa-wifi:before{content:"\f1eb"}.fa-wikipedia-w:before{content:"\f266"}.fa-wind:before{content:"\f72e"}.fa-window-close:before{content:"\f410"}.fa-window-maximize:before{content:"\f2d0"}.fa-window-minimize:before{content:"\f2d1"}.fa-window-restore:before{content:"\f2d2"}.fa-windows:before{content:"\f17a"}.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-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-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:normal;font-display:auto;src:url(../webfonts/fa-brands-400.eot);src:url(../webfonts/fa-brands-400.eot?#iefix) format("embedded-opentype"),url(../webfonts/fa-brands-400.woff2) format("woff2"),url(../webfonts/fa-brands-400.woff) format("woff"),url(../webfonts/fa-brands-400.ttf) format("truetype"),url(../webfonts/fa-brands-400.svg#fontawesome) format("svg")}.fab{font-family:"Font Awesome 5 Brands"}@font-face{font-family:"Font Awesome 5 Free";font-style:normal;font-weight:400;font-display:auto;src:url(../webfonts/fa-regular-400.eot);src:url(../webfonts/fa-regular-400.eot?#iefix) format("embedded-opentype"),url(../webfonts/fa-regular-400.woff2) format("woff2"),url(../webfonts/fa-regular-400.woff) format("woff"),url(../webfonts/fa-regular-400.ttf) format("truetype"),url(../webfonts/fa-regular-400.svg#fontawesome) format("svg")}.far{font-weight:400}@font-face{font-family:"Font Awesome 5 Free";font-style:normal;font-weight:900;font-display:auto;src:url(../webfonts/fa-solid-900.eot);src:url(../webfonts/fa-solid-900.eot?#iefix) format("embedded-opentype"),url(../webfonts/fa-solid-900.woff2) format("woff2"),url(../webfonts/fa-solid-900.woff) format("woff"),url(../webfonts/fa-solid-900.ttf) format("truetype"),url(../webfonts/fa-solid-900.svg#fontawesome) format("svg")}.fa,.far,.fas{font-family:"Font Awesome 5 Free"}.fa,.fas{font-weight:900}
\ No newline at end of file
diff --git a/shopyo/static/fontawesome/css/brands.css b/shopyo/static/fontawesome/css/brands.css
deleted file mode 100644
index 02bab51..0000000
--- a/shopyo/static/fontawesome/css/brands.css
+++ /dev/null
@@ -1,10 +0,0 @@
-@font-face {
- font-family: 'Font Awesome 5 Brands';
- font-style: normal;
- font-weight: normal;
- font-display: auto;
- src: url("../webfonts/fa-brands-400.eot");
- src: url("../webfonts/fa-brands-400.eot?#iefix") format("embedded-opentype"), url("../webfonts/fa-brands-400.woff2") format("woff2"), url("../webfonts/fa-brands-400.woff") format("woff"), url("../webfonts/fa-brands-400.ttf") format("truetype"), url("../webfonts/fa-brands-400.svg#fontawesome") format("svg"); }
-
-.fab {
- font-family: 'Font Awesome 5 Brands'; }
diff --git a/shopyo/static/fontawesome/css/brands.min.css b/shopyo/static/fontawesome/css/brands.min.css
deleted file mode 100644
index d3dfc46..0000000
--- a/shopyo/static/fontawesome/css/brands.min.css
+++ /dev/null
@@ -1 +0,0 @@
-@font-face{font-family:"Font Awesome 5 Brands";font-style:normal;font-weight:normal;font-display:auto;src:url(../webfonts/fa-brands-400.eot);src:url(../webfonts/fa-brands-400.eot?#iefix) format("embedded-opentype"),url(../webfonts/fa-brands-400.woff2) format("woff2"),url(../webfonts/fa-brands-400.woff) format("woff"),url(../webfonts/fa-brands-400.ttf) format("truetype"),url(../webfonts/fa-brands-400.svg#fontawesome) format("svg")}.fab{font-family:"Font Awesome 5 Brands"}
\ No newline at end of file
diff --git a/shopyo/static/fontawesome/css/fontawesome.css b/shopyo/static/fontawesome/css/fontawesome.css
deleted file mode 100644
index 11a2914..0000000
--- a/shopyo/static/fontawesome/css/fontawesome.css
+++ /dev/null
@@ -1,4253 +0,0 @@
-.fa,
-.fas,
-.far,
-.fal,
-.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: 0.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 0.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; }
-
-/* Font Awesome uses the Unicode Private Use Area (PUA) to ensure screen
-readers do not read off random characters that represent icons */
-.fa-500px:before {
- content: "\f26e"; }
-
-.fa-accessible-icon:before {
- content: "\f368"; }
-
-.fa-accusoft:before {
- content: "\f369"; }
-
-.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-freshener:before {
- content: "\f5d0"; }
-
-.fa-algolia:before {
- content: "\f36c"; }
-
-.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-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-anchor:before {
- content: "\f13d"; }
-
-.fa-android:before {
- content: "\f17b"; }
-
-.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-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-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-left:before {
- content: "\f060"; }
-
-.fa-arrow-right:before {
- content: "\f061"; }
-
-.fa-arrow-up:before {
- content: "\f062"; }
-
-.fa-arrows-alt:before {
- content: "\f0b2"; }
-
-.fa-arrows-alt-h:before {
- content: "\f337"; }
-
-.fa-arrows-alt-v:before {
- content: "\f338"; }
-
-.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-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-baby:before {
- content: "\f77c"; }
-
-.fa-baby-carriage:before {
- content: "\f77d"; }
-
-.fa-backspace:before {
- content: "\f55a"; }
-
-.fa-backward:before {
- content: "\f04a"; }
-
-.fa-bacon:before {
- content: "\f7e5"; }
-
-.fa-balance-scale:before {
- content: "\f24e"; }
-
-.fa-ban:before {
- content: "\f05e"; }
-
-.fa-band-aid:before {
- content: "\f462"; }
-
-.fa-bandcamp:before {
- content: "\f2d5"; }
-
-.fa-barcode:before {
- content: "\f02a"; }
-
-.fa-bars:before {
- content: "\f0c9"; }
-
-.fa-baseball-ball:before {
- content: "\f433"; }
-
-.fa-basketball-ball:before {
- content: "\f434"; }
-
-.fa-bath:before {
- content: "\f2cd"; }
-
-.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-three-quarters:before {
- content: "\f241"; }
-
-.fa-bed:before {
- content: "\f236"; }
-
-.fa-beer:before {
- content: "\f0fc"; }
-
-.fa-behance:before {
- content: "\f1b4"; }
-
-.fa-behance-square:before {
- content: "\f1b5"; }
-
-.fa-bell:before {
- content: "\f0f3"; }
-
-.fa-bell-slash:before {
- content: "\f1f6"; }
-
-.fa-bezier-curve:before {
- content: "\f55b"; }
-
-.fa-bible:before {
- content: "\f647"; }
-
-.fa-bicycle:before {
- content: "\f206"; }
-
-.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-blender:before {
- content: "\f517"; }
-
-.fa-blender-phone:before {
- content: "\f6b6"; }
-
-.fa-blind:before {
- content: "\f29d"; }
-
-.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-bong:before {
- content: "\f55c"; }
-
-.fa-book:before {
- content: "\f02d"; }
-
-.fa-book-dead:before {
- content: "\f6b7"; }
-
-.fa-book-medical:before {
- content: "\f7e6"; }
-
-.fa-book-open:before {
- content: "\f518"; }
-
-.fa-book-reader:before {
- content: "\f5da"; }
-
-.fa-bookmark:before {
- content: "\f02e"; }
-
-.fa-bowling-ball:before {
- content: "\f436"; }
-
-.fa-box:before {
- content: "\f466"; }
-
-.fa-box-open:before {
- content: "\f49e"; }
-
-.fa-boxes:before {
- content: "\f468"; }
-
-.fa-braille:before {
- content: "\f2a1"; }
-
-.fa-brain:before {
- content: "\f5dc"; }
-
-.fa-bread-slice:before {
- content: "\f7ec"; }
-
-.fa-briefcase:before {
- content: "\f0b1"; }
-
-.fa-briefcase-medical:before {
- content: "\f469"; }
-
-.fa-broadcast-tower:before {
- content: "\f519"; }
-
-.fa-broom:before {
- content: "\f51a"; }
-
-.fa-brush:before {
- content: "\f55d"; }
-
-.fa-btc:before {
- content: "\f15a"; }
-
-.fa-bug:before {
- content: "\f188"; }
-
-.fa-building:before {
- content: "\f1ad"; }
-
-.fa-bullhorn:before {
- content: "\f0a1"; }
-
-.fa-bullseye:before {
- content: "\f140"; }
-
-.fa-burn:before {
- content: "\f46a"; }
-
-.fa-buromobelexperte:before {
- content: "\f37f"; }
-
-.fa-bus:before {
- content: "\f207"; }
-
-.fa-bus-alt:before {
- content: "\f55e"; }
-
-.fa-business-time:before {
- content: "\f64a"; }
-
-.fa-buysellads:before {
- content: "\f20d"; }
-
-.fa-calculator:before {
- content: "\f1ec"; }
-
-.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-minus:before {
- content: "\f272"; }
-
-.fa-calendar-plus:before {
- content: "\f271"; }
-
-.fa-calendar-times:before {
- content: "\f273"; }
-
-.fa-calendar-week:before {
- content: "\f784"; }
-
-.fa-camera:before {
- content: "\f030"; }
-
-.fa-camera-retro:before {
- content: "\f083"; }
-
-.fa-campground:before {
- content: "\f6bb"; }
-
-.fa-canadian-maple-leaf:before {
- content: "\f785"; }
-
-.fa-candy-cane:before {
- content: "\f786"; }
-
-.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-crash:before {
- content: "\f5e1"; }
-
-.fa-car-side:before {
- content: "\f5e4"; }
-
-.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-cart-arrow-down:before {
- content: "\f218"; }
-
-.fa-cart-plus:before {
- content: "\f217"; }
-
-.fa-cash-register:before {
- content: "\f788"; }
-
-.fa-cat:before {
- content: "\f6be"; }
-
-.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-centercode:before {
- content: "\f380"; }
-
-.fa-centos:before {
- content: "\f789"; }
-
-.fa-certificate:before {
- content: "\f0a3"; }
-
-.fa-chair:before {
- content: "\f6c0"; }
-
-.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-pie:before {
- content: "\f200"; }
-
-.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-chess:before {
- content: "\f439"; }
-
-.fa-chess-bishop:before {
- content: "\f43a"; }
-
-.fa-chess-board:before {
- content: "\f43c"; }
-
-.fa-chess-king:before {
- content: "\f43f"; }
-
-.fa-chess-knight:before {
- content: "\f441"; }
-
-.fa-chess-pawn:before {
- content: "\f443"; }
-
-.fa-chess-queen:before {
- content: "\f445"; }
-
-.fa-chess-rook:before {
- content: "\f447"; }
-
-.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-down:before {
- content: "\f078"; }
-
-.fa-chevron-left:before {
- content: "\f053"; }
-
-.fa-chevron-right:before {
- content: "\f054"; }
-
-.fa-chevron-up:before {
- content: "\f077"; }
-
-.fa-child:before {
- content: "\f1ae"; }
-
-.fa-chrome:before {
- content: "\f268"; }
-
-.fa-church:before {
- content: "\f51d"; }
-
-.fa-circle:before {
- content: "\f111"; }
-
-.fa-circle-notch:before {
- content: "\f1ce"; }
-
-.fa-city:before {
- content: "\f64f"; }
-
-.fa-clinic-medical:before {
- content: "\f7f2"; }
-
-.fa-clipboard:before {
- content: "\f328"; }
-
-.fa-clipboard-check:before {
- content: "\f46c"; }
-
-.fa-clipboard-list:before {
- content: "\f46d"; }
-
-.fa-clock:before {
- content: "\f017"; }
-
-.fa-clone:before {
- content: "\f24d"; }
-
-.fa-closed-captioning:before {
- content: "\f20a"; }
-
-.fa-cloud:before {
- content: "\f0c2"; }
-
-.fa-cloud-download-alt:before {
- content: "\f381"; }
-
-.fa-cloud-meatball:before {
- content: "\f73b"; }
-
-.fa-cloud-moon:before {
- content: "\f6c3"; }
-
-.fa-cloud-moon-rain:before {
- content: "\f73c"; }
-
-.fa-cloud-rain:before {
- content: "\f73d"; }
-
-.fa-cloud-showers-heavy:before {
- content: "\f740"; }
-
-.fa-cloud-sun:before {
- content: "\f6c4"; }
-
-.fa-cloud-sun-rain:before {
- content: "\f743"; }
-
-.fa-cloud-upload-alt:before {
- content: "\f382"; }
-
-.fa-cloudscale:before {
- content: "\f383"; }
-
-.fa-cloudsmith:before {
- content: "\f384"; }
-
-.fa-cloudversify:before {
- content: "\f385"; }
-
-.fa-cocktail:before {
- content: "\f561"; }
-
-.fa-code:before {
- content: "\f121"; }
-
-.fa-code-branch:before {
- content: "\f126"; }
-
-.fa-codepen:before {
- content: "\f1cb"; }
-
-.fa-codiepie:before {
- content: "\f284"; }
-
-.fa-coffee:before {
- content: "\f0f4"; }
-
-.fa-cog:before {
- content: "\f013"; }
-
-.fa-cogs:before {
- content: "\f085"; }
-
-.fa-coins:before {
- content: "\f51e"; }
-
-.fa-columns:before {
- content: "\f0db"; }
-
-.fa-comment:before {
- content: "\f075"; }
-
-.fa-comment-alt:before {
- content: "\f27a"; }
-
-.fa-comment-dollar:before {
- content: "\f651"; }
-
-.fa-comment-dots:before {
- content: "\f4ad"; }
-
-.fa-comment-medical:before {
- content: "\f7f5"; }
-
-.fa-comment-slash:before {
- content: "\f4b3"; }
-
-.fa-comments:before {
- content: "\f086"; }
-
-.fa-comments-dollar:before {
- content: "\f653"; }
-
-.fa-compact-disc:before {
- content: "\f51f"; }
-
-.fa-compass:before {
- content: "\f14e"; }
-
-.fa-compress:before {
- content: "\f066"; }
-
-.fa-compress-arrows-alt:before {
- content: "\f78c"; }
-
-.fa-concierge-bell:before {
- content: "\f562"; }
-
-.fa-confluence:before {
- content: "\f78d"; }
-
-.fa-connectdevelop:before {
- content: "\f20e"; }
-
-.fa-contao:before {
- content: "\f26d"; }
-
-.fa-cookie:before {
- content: "\f563"; }
-
-.fa-cookie-bite:before {
- content: "\f564"; }
-
-.fa-copy:before {
- content: "\f0c5"; }
-
-.fa-copyright:before {
- content: "\f1f9"; }
-
-.fa-couch:before {
- content: "\f4b8"; }
-
-.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-critical-role:before {
- content: "\f6c9"; }
-
-.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-css3:before {
- content: "\f13c"; }
-
-.fa-css3-alt:before {
- content: "\f38b"; }
-
-.fa-cube:before {
- content: "\f1b2"; }
-
-.fa-cubes:before {
- content: "\f1b3"; }
-
-.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-dashcube:before {
- content: "\f210"; }
-
-.fa-database:before {
- content: "\f1c0"; }
-
-.fa-deaf:before {
- content: "\f2a4"; }
-
-.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-dev:before {
- content: "\f6cc"; }
-
-.fa-deviantart:before {
- content: "\f1bd"; }
-
-.fa-dharmachakra:before {
- content: "\f655"; }
-
-.fa-dhl:before {
- content: "\f790"; }
-
-.fa-diagnoses:before {
- content: "\f470"; }
-
-.fa-diaspora:before {
- content: "\f791"; }
-
-.fa-dice:before {
- content: "\f522"; }
-
-.fa-dice-d20:before {
- content: "\f6cf"; }
-
-.fa-dice-d6:before {
- content: "\f6d1"; }
-
-.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-digital-ocean:before {
- content: "\f391"; }
-
-.fa-digital-tachograph:before {
- content: "\f566"; }
-
-.fa-directions:before {
- content: "\f5eb"; }
-
-.fa-discord:before {
- content: "\f392"; }
-
-.fa-discourse:before {
- content: "\f393"; }
-
-.fa-divide:before {
- content: "\f529"; }
-
-.fa-dizzy:before {
- content: "\f567"; }
-
-.fa-dna:before {
- content: "\f471"; }
-
-.fa-dochub:before {
- content: "\f394"; }
-
-.fa-docker:before {
- content: "\f395"; }
-
-.fa-dog:before {
- content: "\f6d3"; }
-
-.fa-dollar-sign:before {
- content: "\f155"; }
-
-.fa-dolly:before {
- content: "\f472"; }
-
-.fa-dolly-flatbed:before {
- content: "\f474"; }
-
-.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-polygon:before {
- content: "\f5ee"; }
-
-.fa-dribbble:before {
- content: "\f17d"; }
-
-.fa-dribbble-square:before {
- content: "\f397"; }
-
-.fa-dropbox:before {
- content: "\f16b"; }
-
-.fa-drum:before {
- content: "\f569"; }
-
-.fa-drum-steelpan:before {
- content: "\f56a"; }
-
-.fa-drumstick-bite:before {
- content: "\f6d7"; }
-
-.fa-drupal:before {
- content: "\f1a9"; }
-
-.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-earlybirds:before {
- content: "\f39a"; }
-
-.fa-ebay:before {
- content: "\f4f4"; }
-
-.fa-edge:before {
- content: "\f282"; }
-
-.fa-edit:before {
- content: "\f044"; }
-
-.fa-egg:before {
- content: "\f7fb"; }
-
-.fa-eject:before {
- content: "\f052"; }
-
-.fa-elementor:before {
- content: "\f430"; }
-
-.fa-ellipsis-h:before {
- content: "\f141"; }
-
-.fa-ellipsis-v:before {
- content: "\f142"; }
-
-.fa-ello:before {
- content: "\f5f1"; }
-
-.fa-ember:before {
- content: "\f423"; }
-
-.fa-empire:before {
- content: "\f1d1"; }
-
-.fa-envelope:before {
- content: "\f0e0"; }
-
-.fa-envelope-open:before {
- content: "\f2b6"; }
-
-.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-exchange-alt:before {
- content: "\f362"; }
-
-.fa-exclamation:before {
- content: "\f12a"; }
-
-.fa-exclamation-circle:before {
- content: "\f06a"; }
-
-.fa-exclamation-triangle:before {
- content: "\f071"; }
-
-.fa-expand:before {
- content: "\f065"; }
-
-.fa-expand-arrows-alt:before {
- content: "\f31e"; }
-
-.fa-expeditedssl:before {
- content: "\f23e"; }
-
-.fa-external-link-alt:before {
- content: "\f35d"; }
-
-.fa-external-link-square-alt:before {
- content: "\f360"; }
-
-.fa-eye:before {
- content: "\f06e"; }
-
-.fa-eye-dropper:before {
- content: "\f1fb"; }
-
-.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-fantasy-flight-games:before {
- content: "\f6dc"; }
-
-.fa-fast-backward:before {
- content: "\f049"; }
-
-.fa-fast-forward:before {
- content: "\f050"; }
-
-.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-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-code:before {
- content: "\f1c9"; }
-
-.fa-file-contract:before {
- content: "\f56c"; }
-
-.fa-file-csv:before {
- content: "\f6dd"; }
-
-.fa-file-download:before {
- content: "\f56d"; }
-
-.fa-file-excel:before {
- content: "\f1c3"; }
-
-.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-pdf:before {
- content: "\f1c1"; }
-
-.fa-file-powerpoint:before {
- content: "\f1c4"; }
-
-.fa-file-prescription:before {
- content: "\f572"; }
-
-.fa-file-signature:before {
- content: "\f573"; }
-
-.fa-file-upload:before {
- content: "\f574"; }
-
-.fa-file-video:before {
- content: "\f1c8"; }
-
-.fa-file-word:before {
- content: "\f1c2"; }
-
-.fa-fill:before {
- content: "\f575"; }
-
-.fa-fill-drip:before {
- content: "\f576"; }
-
-.fa-film:before {
- content: "\f008"; }
-
-.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-firefox:before {
- content: "\f269"; }
-
-.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-fist-raised:before {
- content: "\f6de"; }
-
-.fa-flag:before {
- content: "\f024"; }
-
-.fa-flag-checkered:before {
- content: "\f11e"; }
-
-.fa-flag-usa:before {
- content: "\f74d"; }
-
-.fa-flask:before {
- content: "\f0c3"; }
-
-.fa-flickr:before {
- content: "\f16e"; }
-
-.fa-flipboard:before {
- content: "\f44d"; }
-
-.fa-flushed:before {
- content: "\f579"; }
-
-.fa-fly:before {
- content: "\f417"; }
-
-.fa-folder:before {
- content: "\f07b"; }
-
-.fa-folder-minus:before {
- content: "\f65d"; }
-
-.fa-folder-open:before {
- content: "\f07c"; }
-
-.fa-folder-plus:before {
- content: "\f65e"; }
-
-.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-fonticons:before {
- content: "\f280"; }
-
-.fa-fonticons-fi:before {
- content: "\f3a2"; }
-
-.fa-football-ball:before {
- content: "\f44e"; }
-
-.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-free-code-camp:before {
- content: "\f2c5"; }
-
-.fa-freebsd:before {
- content: "\f3a4"; }
-
-.fa-frog:before {
- content: "\f52e"; }
-
-.fa-frown:before {
- content: "\f119"; }
-
-.fa-frown-open:before {
- content: "\f57a"; }
-
-.fa-fulcrum:before {
- content: "\f50b"; }
-
-.fa-funnel-dollar:before {
- content: "\f662"; }
-
-.fa-futbol:before {
- content: "\f1e3"; }
-
-.fa-galactic-republic:before {
- content: "\f50c"; }
-
-.fa-galactic-senate:before {
- content: "\f50d"; }
-
-.fa-gamepad:before {
- content: "\f11b"; }
-
-.fa-gas-pump:before {
- content: "\f52f"; }
-
-.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-gifts:before {
- content: "\f79c"; }
-
-.fa-git:before {
- content: "\f1d3"; }
-
-.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-cheers:before {
- content: "\f79f"; }
-
-.fa-glass-martini:before {
- content: "\f000"; }
-
-.fa-glass-martini-alt:before {
- content: "\f57b"; }
-
-.fa-glass-whiskey:before {
- content: "\f7a0"; }
-
-.fa-glasses:before {
- content: "\f530"; }
-
-.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-gofore:before {
- content: "\f3a7"; }
-
-.fa-golf-ball:before {
- content: "\f450"; }
-
-.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-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-gulp:before {
- content: "\f3ae"; }
-
-.fa-h-square:before {
- content: "\f0fd"; }
-
-.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-hamsa:before {
- content: "\f665"; }
-
-.fa-hand-holding:before {
- content: "\f4bd"; }
-
-.fa-hand-holding-heart:before {
- content: "\f4be"; }
-
-.fa-hand-holding-usd:before {
- content: "\f4c0"; }
-
-.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-rock:before {
- content: "\f255"; }
-
-.fa-hand-scissors:before {
- content: "\f257"; }
-
-.fa-hand-spock:before {
- content: "\f259"; }
-
-.fa-hands:before {
- content: "\f4c2"; }
-
-.fa-hands-helping:before {
- content: "\f4c4"; }
-
-.fa-handshake:before {
- content: "\f2b5"; }
-
-.fa-hanukiah:before {
- content: "\f6e6"; }
-
-.fa-hard-hat:before {
- content: "\f807"; }
-
-.fa-hashtag:before {
- content: "\f292"; }
-
-.fa-hat-wizard:before {
- content: "\f6e8"; }
-
-.fa-haykal:before {
- content: "\f666"; }
-
-.fa-hdd:before {
- content: "\f0a0"; }
-
-.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-heartbeat:before {
- content: "\f21e"; }
-
-.fa-helicopter:before {
- content: "\f533"; }
-
-.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-puck:before {
- content: "\f453"; }
-
-.fa-holly-berry:before {
- content: "\f7aa"; }
-
-.fa-home:before {
- content: "\f015"; }
-
-.fa-hooli:before {
- content: "\f427"; }
-
-.fa-hornbill:before {
- content: "\f592"; }
-
-.fa-horse:before {
- content: "\f6f0"; }
-
-.fa-horse-head:before {
- content: "\f7ab"; }
-
-.fa-hospital:before {
- content: "\f0f8"; }
-
-.fa-hospital-alt:before {
- content: "\f47d"; }
-
-.fa-hospital-symbol:before {
- content: "\f47e"; }
-
-.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-damage:before {
- content: "\f6f1"; }
-
-.fa-houzz:before {
- content: "\f27c"; }
-
-.fa-hryvnia:before {
- content: "\f6f2"; }
-
-.fa-html5:before {
- content: "\f13b"; }
-
-.fa-hubspot:before {
- content: "\f3b2"; }
-
-.fa-i-cursor:before {
- content: "\f246"; }
-
-.fa-ice-cream:before {
- content: "\f810"; }
-
-.fa-icicles:before {
- content: "\f7ad"; }
-
-.fa-id-badge:before {
- content: "\f2c1"; }
-
-.fa-id-card:before {
- content: "\f2c2"; }
-
-.fa-id-card-alt:before {
- content: "\f47f"; }
-
-.fa-igloo:before {
- content: "\f7ae"; }
-
-.fa-image:before {
- content: "\f03e"; }
-
-.fa-images:before {
- content: "\f302"; }
-
-.fa-imdb:before {
- content: "\f2d8"; }
-
-.fa-inbox:before {
- content: "\f01c"; }
-
-.fa-indent:before {
- content: "\f03c"; }
-
-.fa-industry:before {
- content: "\f275"; }
-
-.fa-infinity:before {
- content: "\f534"; }
-
-.fa-info:before {
- content: "\f129"; }
-
-.fa-info-circle:before {
- content: "\f05a"; }
-
-.fa-instagram:before {
- content: "\f16d"; }
-
-.fa-intercom:before {
- content: "\f7af"; }
-
-.fa-internet-explorer:before {
- content: "\f26b"; }
-
-.fa-invision:before {
- content: "\f7b0"; }
-
-.fa-ioxhost:before {
- content: "\f208"; }
-
-.fa-italic:before {
- content: "\f033"; }
-
-.fa-itunes:before {
- content: "\f3b4"; }
-
-.fa-itunes-note:before {
- content: "\f3b5"; }
-
-.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-js:before {
- content: "\f3b8"; }
-
-.fa-js-square:before {
- content: "\f3b9"; }
-
-.fa-jsfiddle:before {
- content: "\f1cc"; }
-
-.fa-kaaba:before {
- content: "\f66b"; }
-
-.fa-kaggle:before {
- content: "\f5fa"; }
-
-.fa-key:before {
- content: "\f084"; }
-
-.fa-keybase:before {
- content: "\f4f5"; }
-
-.fa-keyboard:before {
- content: "\f11c"; }
-
-.fa-keycdn:before {
- content: "\f3ba"; }
-
-.fa-khanda:before {
- content: "\f66d"; }
-
-.fa-kickstarter:before {
- content: "\f3bb"; }
-
-.fa-kickstarter-k:before {
- content: "\f3bc"; }
-
-.fa-kiss:before {
- content: "\f596"; }
-
-.fa-kiss-beam:before {
- content: "\f597"; }
-
-.fa-kiss-wink-heart:before {
- content: "\f598"; }
-
-.fa-kiwi-bird:before {
- content: "\f535"; }
-
-.fa-korvue:before {
- content: "\f42f"; }
-
-.fa-landmark:before {
- content: "\f66f"; }
-
-.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-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-leaf:before {
- content: "\f06c"; }
-
-.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-alt:before {
- content: "\f3be"; }
-
-.fa-level-up-alt:before {
- content: "\f3bf"; }
-
-.fa-life-ring:before {
- content: "\f1cd"; }
-
-.fa-lightbulb:before {
- content: "\f0eb"; }
-
-.fa-line:before {
- content: "\f3c0"; }
-
-.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-lira-sign:before {
- content: "\f195"; }
-
-.fa-list:before {
- content: "\f03a"; }
-
-.fa-list-alt:before {
- content: "\f022"; }
-
-.fa-list-ol:before {
- content: "\f0cb"; }
-
-.fa-list-ul:before {
- content: "\f0ca"; }
-
-.fa-location-arrow:before {
- content: "\f124"; }
-
-.fa-lock:before {
- content: "\f023"; }
-
-.fa-lock-open:before {
- content: "\f3c1"; }
-
-.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-low-vision:before {
- content: "\f2a8"; }
-
-.fa-luggage-cart:before {
- content: "\f59d"; }
-
-.fa-lyft:before {
- content: "\f3c3"; }
-
-.fa-magento:before {
- content: "\f3c4"; }
-
-.fa-magic:before {
- content: "\f0d0"; }
-
-.fa-magnet:before {
- content: "\f076"; }
-
-.fa-mail-bulk:before {
- content: "\f674"; }
-
-.fa-mailchimp:before {
- content: "\f59e"; }
-
-.fa-male:before {
- content: "\f183"; }
-
-.fa-mandalorian:before {
- content: "\f50f"; }
-
-.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-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-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-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-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-microscope:before {
- content: "\f610"; }
-
-.fa-microsoft:before {
- content: "\f3ca"; }
-
-.fa-minus:before {
- content: "\f068"; }
-
-.fa-minus-circle:before {
- content: "\f056"; }
-
-.fa-minus-square:before {
- content: "\f146"; }
-
-.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-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-monument:before {
- content: "\f5a6"; }
-
-.fa-moon:before {
- content: "\f186"; }
-
-.fa-mortar-pestle:before {
- content: "\f5a7"; }
-
-.fa-mosque:before {
- content: "\f678"; }
-
-.fa-motorcycle:before {
- content: "\f21c"; }
-
-.fa-mountain:before {
- content: "\f6fc"; }
-
-.fa-mouse-pointer:before {
- content: "\f245"; }
-
-.fa-mug-hot:before {
- content: "\f7b6"; }
-
-.fa-music:before {
- content: "\f001"; }
-
-.fa-napster:before {
- content: "\f3d2"; }
-
-.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-nintendo-switch:before {
- content: "\f418"; }
-
-.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-odnoklassniki:before {
- content: "\f263"; }
-
-.fa-odnoklassniki-square:before {
- content: "\f264"; }
-
-.fa-oil-can:before {
- content: "\f613"; }
-
-.fa-old-republic:before {
- content: "\f510"; }
-
-.fa-om:before {
- content: "\f679"; }
-
-.fa-opencart:before {
- content: "\f23d"; }
-
-.fa-openid:before {
- content: "\f19b"; }
-
-.fa-opera:before {
- content: "\f26a"; }
-
-.fa-optin-monster:before {
- content: "\f23c"; }
-
-.fa-osi:before {
- content: "\f41a"; }
-
-.fa-otter:before {
- content: "\f700"; }
-
-.fa-outdent:before {
- content: "\f03b"; }
-
-.fa-page4:before {
- content: "\f3d7"; }
-
-.fa-pagelines:before {
- content: "\f18c"; }
-
-.fa-pager:before {
- content: "\f815"; }
-
-.fa-paint-brush:before {
- content: "\f1fc"; }
-
-.fa-paint-roller:before {
- content: "\f5aa"; }
-
-.fa-palette:before {
- content: "\f53f"; }
-
-.fa-palfed:before {
- content: "\f3d8"; }
-
-.fa-pallet:before {
- content: "\f482"; }
-
-.fa-paper-plane:before {
- content: "\f1d8"; }
-
-.fa-paperclip:before {
- content: "\f0c6"; }
-
-.fa-parachute-box:before {
- content: "\f4cd"; }
-
-.fa-paragraph:before {
- content: "\f1dd"; }
-
-.fa-parking:before {
- content: "\f540"; }
-
-.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-paypal:before {
- content: "\f1ed"; }
-
-.fa-peace:before {
- content: "\f67c"; }
-
-.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-alt:before {
- content: "\f303"; }
-
-.fa-pencil-ruler:before {
- content: "\f5ae"; }
-
-.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-phabricator:before {
- content: "\f3db"; }
-
-.fa-phoenix-framework:before {
- content: "\f3dc"; }
-
-.fa-phoenix-squadron:before {
- content: "\f511"; }
-
-.fa-phone:before {
- content: "\f095"; }
-
-.fa-phone-slash:before {
- content: "\f3dd"; }
-
-.fa-phone-square:before {
- content: "\f098"; }
-
-.fa-phone-volume:before {
- content: "\f2a0"; }
-
-.fa-php:before {
- content: "\f457"; }
-
-.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-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-slice:before {
- content: "\f818"; }
-
-.fa-place-of-worship:before {
- content: "\f67f"; }
-
-.fa-plane:before {
- content: "\f072"; }
-
-.fa-plane-arrival:before {
- content: "\f5af"; }
-
-.fa-plane-departure:before {
- content: "\f5b0"; }
-
-.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-square:before {
- content: "\f0fe"; }
-
-.fa-podcast:before {
- content: "\f2ce"; }
-
-.fa-poll:before {
- content: "\f681"; }
-
-.fa-poll-h:before {
- content: "\f682"; }
-
-.fa-poo:before {
- content: "\f2fe"; }
-
-.fa-poo-storm:before {
- content: "\f75a"; }
-
-.fa-poop:before {
- content: "\f619"; }
-
-.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-print:before {
- content: "\f02f"; }
-
-.fa-procedures:before {
- content: "\f487"; }
-
-.fa-product-hunt:before {
- content: "\f288"; }
-
-.fa-project-diagram:before {
- content: "\f542"; }
-
-.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-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-radiation:before {
- content: "\f7b9"; }
-
-.fa-radiation-alt:before {
- content: "\f7ba"; }
-
-.fa-rainbow:before {
- content: "\f75b"; }
-
-.fa-random:before {
- content: "\f074"; }
-
-.fa-raspberry-pi:before {
- content: "\f7bb"; }
-
-.fa-ravelry:before {
- content: "\f2d9"; }
-
-.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-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-registered:before {
- content: "\f25d"; }
-
-.fa-renren:before {
- content: "\f18b"; }
-
-.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-rev:before {
- content: "\f5b2"; }
-
-.fa-ribbon:before {
- content: "\f4d6"; }
-
-.fa-ring:before {
- content: "\f70b"; }
-
-.fa-road:before {
- content: "\f018"; }
-
-.fa-robot:before {
- content: "\f544"; }
-
-.fa-rocket:before {
- content: "\f135"; }
-
-.fa-rocketchat:before {
- content: "\f3e8"; }
-
-.fa-rockrms:before {
- content: "\f3e9"; }
-
-.fa-route:before {
- content: "\f4d7"; }
-
-.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-vertical:before {
- content: "\f548"; }
-
-.fa-running:before {
- content: "\f70c"; }
-
-.fa-rupee-sign:before {
- content: "\f156"; }
-
-.fa-sad-cry:before {
- content: "\f5b3"; }
-
-.fa-sad-tear:before {
- content: "\f5b4"; }
-
-.fa-safari:before {
- content: "\f267"; }
-
-.fa-sass:before {
- content: "\f41e"; }
-
-.fa-satellite:before {
- content: "\f7bf"; }
-
-.fa-satellite-dish:before {
- content: "\f7c0"; }
-
-.fa-save:before {
- content: "\f0c7"; }
-
-.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-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-server:before {
- content: "\f233"; }
-
-.fa-servicestack:before {
- content: "\f3ec"; }
-
-.fa-shapes:before {
- content: "\f61f"; }
-
-.fa-share:before {
- content: "\f064"; }
-
-.fa-share-alt:before {
- content: "\f1e0"; }
-
-.fa-share-alt-square:before {
- content: "\f1e1"; }
-
-.fa-share-square:before {
- content: "\f14d"; }
-
-.fa-shekel-sign:before {
- content: "\f20b"; }
-
-.fa-shield-alt:before {
- content: "\f3ed"; }
-
-.fa-ship:before {
- content: "\f21a"; }
-
-.fa-shipping-fast:before {
- content: "\f48b"; }
-
-.fa-shirtsinbulk:before {
- content: "\f214"; }
-
-.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-shower:before {
- content: "\f2cc"; }
-
-.fa-shuttle-van:before {
- content: "\f5b6"; }
-
-.fa-sign:before {
- content: "\f4d9"; }
-
-.fa-sign-in-alt:before {
- content: "\f2f6"; }
-
-.fa-sign-language:before {
- content: "\f2a7"; }
-
-.fa-sign-out-alt:before {
- content: "\f2f5"; }
-
-.fa-signal:before {
- content: "\f012"; }
-
-.fa-signature:before {
- content: "\f5b7"; }
-
-.fa-sim-card:before {
- content: "\f7c4"; }
-
-.fa-simplybuilt:before {
- content: "\f215"; }
-
-.fa-sistrix:before {
- content: "\f3ee"; }
-
-.fa-sitemap:before {
- content: "\f0e8"; }
-
-.fa-sith:before {
- content: "\f512"; }
-
-.fa-skating:before {
- content: "\f7c5"; }
-
-.fa-sketch:before {
- content: "\f7c6"; }
-
-.fa-skiing:before {
- content: "\f7c9"; }
-
-.fa-skiing-nordic:before {
- content: "\f7ca"; }
-
-.fa-skull:before {
- content: "\f54c"; }
-
-.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-sleigh:before {
- content: "\f7cc"; }
-
-.fa-sliders-h:before {
- content: "\f1de"; }
-
-.fa-slideshare:before {
- content: "\f1e7"; }
-
-.fa-smile:before {
- content: "\f118"; }
-
-.fa-smile-beam:before {
- content: "\f5b8"; }
-
-.fa-smile-wink:before {
- content: "\f4da"; }
-
-.fa-smog:before {
- content: "\f75f"; }
-
-.fa-smoking:before {
- content: "\f48d"; }
-
-.fa-smoking-ban:before {
- content: "\f54d"; }
-
-.fa-sms:before {
- content: "\f7cd"; }
-
-.fa-snapchat:before {
- content: "\f2ab"; }
-
-.fa-snapchat-ghost:before {
- content: "\f2ac"; }
-
-.fa-snapchat-square:before {
- content: "\f2ad"; }
-
-.fa-snowboarding:before {
- content: "\f7ce"; }
-
-.fa-snowflake:before {
- content: "\f2dc"; }
-
-.fa-snowman:before {
- content: "\f7d0"; }
-
-.fa-snowplow:before {
- content: "\f7d2"; }
-
-.fa-socks:before {
- content: "\f696"; }
-
-.fa-solar-panel:before {
- content: "\f5ba"; }
-
-.fa-sort:before {
- content: "\f0dc"; }
-
-.fa-sort-alpha-down:before {
- content: "\f15d"; }
-
-.fa-sort-alpha-up:before {
- content: "\f15e"; }
-
-.fa-sort-amount-down:before {
- content: "\f160"; }
-
-.fa-sort-amount-up:before {
- content: "\f161"; }
-
-.fa-sort-down:before {
- content: "\f0dd"; }
-
-.fa-sort-numeric-down:before {
- content: "\f162"; }
-
-.fa-sort-numeric-up:before {
- content: "\f163"; }
-
-.fa-sort-up:before {
- content: "\f0de"; }
-
-.fa-soundcloud:before {
- content: "\f1be"; }
-
-.fa-sourcetree:before {
- content: "\f7d3"; }
-
-.fa-spa:before {
- content: "\f5bb"; }
-
-.fa-space-shuttle:before {
- content: "\f197"; }
-
-.fa-speakap:before {
- content: "\f3f3"; }
-
-.fa-spider:before {
- content: "\f717"; }
-
-.fa-spinner:before {
- content: "\f110"; }
-
-.fa-splotch:before {
- content: "\f5bc"; }
-
-.fa-spotify:before {
- content: "\f1bc"; }
-
-.fa-spray-can:before {
- content: "\f5bd"; }
-
-.fa-square:before {
- content: "\f0c8"; }
-
-.fa-square-full:before {
- content: "\f45c"; }
-
-.fa-square-root-alt:before {
- content: "\f698"; }
-
-.fa-squarespace:before {
- content: "\f5be"; }
-
-.fa-stack-exchange:before {
- content: "\f18d"; }
-
-.fa-stack-overflow:before {
- content: "\f16c"; }
-
-.fa-stamp:before {
- content: "\f5bf"; }
-
-.fa-star:before {
- content: "\f005"; }
-
-.fa-star-and-crescent:before {
- content: "\f699"; }
-
-.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-staylinked:before {
- content: "\f3f5"; }
-
-.fa-steam:before {
- content: "\f1b6"; }
-
-.fa-steam-square:before {
- content: "\f1b7"; }
-
-.fa-steam-symbol:before {
- content: "\f3f6"; }
-
-.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-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-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-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-swimmer:before {
- content: "\f5c4"; }
-
-.fa-swimming-pool:before {
- content: "\f5c5"; }
-
-.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-tablets:before {
- content: "\f490"; }
-
-.fa-tachometer-alt:before {
- content: "\f3fd"; }
-
-.fa-tag:before {
- content: "\f02b"; }
-
-.fa-tags:before {
- content: "\f02c"; }
-
-.fa-tape:before {
- content: "\f4db"; }
-
-.fa-tasks:before {
- content: "\f0ae"; }
-
-.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-temperature-high:before {
- content: "\f769"; }
-
-.fa-temperature-low:before {
- content: "\f76b"; }
-
-.fa-tencent-weibo:before {
- content: "\f1d5"; }
-
-.fa-tenge:before {
- content: "\f7d7"; }
-
-.fa-terminal:before {
- content: "\f120"; }
-
-.fa-text-height:before {
- content: "\f034"; }
-
-.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-think-peaks:before {
- content: "\f731"; }
-
-.fa-thumbs-down:before {
- content: "\f165"; }
-
-.fa-thumbs-up:before {
- content: "\f164"; }
-
-.fa-thumbtack:before {
- content: "\f08d"; }
-
-.fa-ticket-alt:before {
- content: "\f3ff"; }
-
-.fa-times:before {
- content: "\f00d"; }
-
-.fa-times-circle:before {
- content: "\f057"; }
-
-.fa-tint:before {
- content: "\f043"; }
-
-.fa-tint-slash:before {
- content: "\f5c7"; }
-
-.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-toolbox:before {
- content: "\f552"; }
-
-.fa-tools:before {
- content: "\f7d9"; }
-
-.fa-tooth:before {
- content: "\f5c9"; }
-
-.fa-torah:before {
- content: "\f6a0"; }
-
-.fa-torii-gate:before {
- content: "\f6a1"; }
-
-.fa-tractor:before {
- content: "\f722"; }
-
-.fa-trade-federation:before {
- content: "\f513"; }
-
-.fa-trademark:before {
- content: "\f25c"; }
-
-.fa-traffic-light:before {
- content: "\f637"; }
-
-.fa-train:before {
- content: "\f238"; }
-
-.fa-tram:before {
- content: "\f7da"; }
-
-.fa-transgender:before {
- content: "\f224"; }
-
-.fa-transgender-alt:before {
- content: "\f225"; }
-
-.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-tree:before {
- content: "\f1bb"; }
-
-.fa-trello:before {
- content: "\f181"; }
-
-.fa-tripadvisor:before {
- content: "\f262"; }
-
-.fa-trophy:before {
- content: "\f091"; }
-
-.fa-truck:before {
- content: "\f0d1"; }
-
-.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-tshirt:before {
- content: "\f553"; }
-
-.fa-tty:before {
- content: "\f1e4"; }
-
-.fa-tumblr:before {
- content: "\f173"; }
-
-.fa-tumblr-square:before {
- content: "\f174"; }
-
-.fa-tv:before {
- content: "\f26c"; }
-
-.fa-twitch:before {
- content: "\f1e8"; }
-
-.fa-twitter:before {
- content: "\f099"; }
-
-.fa-twitter-square:before {
- content: "\f081"; }
-
-.fa-typo3:before {
- content: "\f42b"; }
-
-.fa-uber:before {
- content: "\f402"; }
-
-.fa-ubuntu:before {
- content: "\f7df"; }
-
-.fa-uikit:before {
- content: "\f403"; }
-
-.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-uniregistry:before {
- content: "\f404"; }
-
-.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-user:before {
- content: "\f007"; }
-
-.fa-user-alt:before {
- content: "\f406"; }
-
-.fa-user-alt-slash:before {
- content: "\f4fa"; }
-
-.fa-user-astronaut:before {
- content: "\f4fb"; }
-
-.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-edit:before {
- content: "\f4ff"; }
-
-.fa-user-friends:before {
- content: "\f500"; }
-
-.fa-user-graduate:before {
- content: "\f501"; }
-
-.fa-user-injured:before {
- content: "\f728"; }
-
-.fa-user-lock:before {
- content: "\f502"; }
-
-.fa-user-md:before {
- content: "\f0f0"; }
-
-.fa-user-minus:before {
- content: "\f503"; }
-
-.fa-user-ninja:before {
- content: "\f504"; }
-
-.fa-user-nurse:before {
- content: "\f82f"; }
-
-.fa-user-plus:before {
- content: "\f234"; }
-
-.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-users:before {
- content: "\f0c0"; }
-
-.fa-users-cog:before {
- content: "\f509"; }
-
-.fa-usps:before {
- content: "\f7e1"; }
-
-.fa-ussunnah:before {
- content: "\f407"; }
-
-.fa-utensil-spoon:before {
- content: "\f2e5"; }
-
-.fa-utensils:before {
- content: "\f2e7"; }
-
-.fa-vaadin:before {
- content: "\f408"; }
-
-.fa-vector-square:before {
- content: "\f5cb"; }
-
-.fa-venus:before {
- content: "\f221"; }
-
-.fa-venus-double:before {
- content: "\f226"; }
-
-.fa-venus-mars:before {
- content: "\f228"; }
-
-.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-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-vk:before {
- content: "\f189"; }
-
-.fa-vnv:before {
- content: "\f40b"; }
-
-.fa-volleyball-ball:before {
- content: "\f45f"; }
-
-.fa-volume-down:before {
- content: "\f027"; }
-
-.fa-volume-mute:before {
- content: "\f6a9"; }
-
-.fa-volume-off:before {
- content: "\f026"; }
-
-.fa-volume-up:before {
- content: "\f028"; }
-
-.fa-vote-yea:before {
- content: "\f772"; }
-
-.fa-vr-cardboard:before {
- content: "\f729"; }
-
-.fa-vuejs:before {
- content: "\f41f"; }
-
-.fa-walking:before {
- content: "\f554"; }
-
-.fa-wallet:before {
- content: "\f555"; }
-
-.fa-warehouse:before {
- content: "\f494"; }
-
-.fa-water:before {
- content: "\f773"; }
-
-.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-whatsapp:before {
- content: "\f232"; }
-
-.fa-whatsapp-square:before {
- content: "\f40c"; }
-
-.fa-wheelchair:before {
- content: "\f193"; }
-
-.fa-whmcs:before {
- content: "\f40d"; }
-
-.fa-wifi:before {
- content: "\f1eb"; }
-
-.fa-wikipedia-w:before {
- content: "\f266"; }
-
-.fa-wind:before {
- content: "\f72e"; }
-
-.fa-window-close:before {
- content: "\f410"; }
-
-.fa-window-maximize:before {
- content: "\f2d0"; }
-
-.fa-window-minimize:before {
- content: "\f2d1"; }
-
-.fa-window-restore:before {
- content: "\f2d2"; }
-
-.fa-windows:before {
- content: "\f17a"; }
-
-.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-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-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; }
diff --git a/shopyo/static/fontawesome/css/fontawesome.min.css b/shopyo/static/fontawesome/css/fontawesome.min.css
deleted file mode 100644
index d4da616..0000000
--- a/shopyo/static/fontawesome/css/fontawesome.min.css
+++ /dev/null
@@ -1 +0,0 @@
-.fa,.fab,.fal,.far,.fas{-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:.08em solid #eee;border-radius:.1em;padding:.2em .25em .15em}.fa-pull-left{float:left}.fa-pull-right{float:right}.fa.fa-pull-left,.fab.fa-pull-left,.fal.fa-pull-left,.far.fa-pull-left,.fas.fa-pull-left{margin-right:.3em}.fa.fa-pull-right,.fab.fa-pull-right,.fal.fa-pull-right,.far.fa-pull-right,.fas.fa-pull-right{margin-left:.3em}.fa-spin{animation:fa-spin 2s infinite linear}.fa-pulse{animation:fa-spin 1s infinite steps(8)}@keyframes fa-spin{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}.fa-rotate-90{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=1)";transform:rotate(90deg)}.fa-rotate-180{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=2)";transform:rotate(180deg)}.fa-rotate-270{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=3)";transform:rotate(270deg)}.fa-flip-horizontal{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=0, mirror=1)";transform:scaleX(-1)}.fa-flip-vertical{transform:scaleY(-1)}.fa-flip-both,.fa-flip-horizontal.fa-flip-vertical,.fa-flip-vertical{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=2, mirror=1)"}.fa-flip-both,.fa-flip-horizontal.fa-flip-vertical{transform:scale(-1)}:root .fa-flip-both,:root .fa-flip-horizontal,:root .fa-flip-vertical,:root .fa-rotate-90,:root .fa-rotate-180,:root .fa-rotate-270{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-accessible-icon:before{content:"\f368"}.fa-accusoft:before{content:"\f369"}.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-freshener:before{content:"\f5d0"}.fa-algolia:before{content:"\f36c"}.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-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-anchor:before{content:"\f13d"}.fa-android:before{content:"\f17b"}.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-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-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-left:before{content:"\f060"}.fa-arrow-right:before{content:"\f061"}.fa-arrow-up:before{content:"\f062"}.fa-arrows-alt:before{content:"\f0b2"}.fa-arrows-alt-h:before{content:"\f337"}.fa-arrows-alt-v:before{content:"\f338"}.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-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-baby:before{content:"\f77c"}.fa-baby-carriage:before{content:"\f77d"}.fa-backspace:before{content:"\f55a"}.fa-backward:before{content:"\f04a"}.fa-bacon:before{content:"\f7e5"}.fa-balance-scale:before{content:"\f24e"}.fa-ban:before{content:"\f05e"}.fa-band-aid:before{content:"\f462"}.fa-bandcamp:before{content:"\f2d5"}.fa-barcode:before{content:"\f02a"}.fa-bars:before{content:"\f0c9"}.fa-baseball-ball:before{content:"\f433"}.fa-basketball-ball:before{content:"\f434"}.fa-bath:before{content:"\f2cd"}.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-three-quarters:before{content:"\f241"}.fa-bed:before{content:"\f236"}.fa-beer:before{content:"\f0fc"}.fa-behance:before{content:"\f1b4"}.fa-behance-square:before{content:"\f1b5"}.fa-bell:before{content:"\f0f3"}.fa-bell-slash:before{content:"\f1f6"}.fa-bezier-curve:before{content:"\f55b"}.fa-bible:before{content:"\f647"}.fa-bicycle:before{content:"\f206"}.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-blender:before{content:"\f517"}.fa-blender-phone:before{content:"\f6b6"}.fa-blind:before{content:"\f29d"}.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-bong:before{content:"\f55c"}.fa-book:before{content:"\f02d"}.fa-book-dead:before{content:"\f6b7"}.fa-book-medical:before{content:"\f7e6"}.fa-book-open:before{content:"\f518"}.fa-book-reader:before{content:"\f5da"}.fa-bookmark:before{content:"\f02e"}.fa-bowling-ball:before{content:"\f436"}.fa-box:before{content:"\f466"}.fa-box-open:before{content:"\f49e"}.fa-boxes:before{content:"\f468"}.fa-braille:before{content:"\f2a1"}.fa-brain:before{content:"\f5dc"}.fa-bread-slice:before{content:"\f7ec"}.fa-briefcase:before{content:"\f0b1"}.fa-briefcase-medical:before{content:"\f469"}.fa-broadcast-tower:before{content:"\f519"}.fa-broom:before{content:"\f51a"}.fa-brush:before{content:"\f55d"}.fa-btc:before{content:"\f15a"}.fa-bug:before{content:"\f188"}.fa-building:before{content:"\f1ad"}.fa-bullhorn:before{content:"\f0a1"}.fa-bullseye:before{content:"\f140"}.fa-burn:before{content:"\f46a"}.fa-buromobelexperte:before{content:"\f37f"}.fa-bus:before{content:"\f207"}.fa-bus-alt:before{content:"\f55e"}.fa-business-time:before{content:"\f64a"}.fa-buysellads:before{content:"\f20d"}.fa-calculator:before{content:"\f1ec"}.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-minus:before{content:"\f272"}.fa-calendar-plus:before{content:"\f271"}.fa-calendar-times:before{content:"\f273"}.fa-calendar-week:before{content:"\f784"}.fa-camera:before{content:"\f030"}.fa-camera-retro:before{content:"\f083"}.fa-campground:before{content:"\f6bb"}.fa-canadian-maple-leaf:before{content:"\f785"}.fa-candy-cane:before{content:"\f786"}.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-crash:before{content:"\f5e1"}.fa-car-side:before{content:"\f5e4"}.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-cart-arrow-down:before{content:"\f218"}.fa-cart-plus:before{content:"\f217"}.fa-cash-register:before{content:"\f788"}.fa-cat:before{content:"\f6be"}.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-centercode:before{content:"\f380"}.fa-centos:before{content:"\f789"}.fa-certificate:before{content:"\f0a3"}.fa-chair:before{content:"\f6c0"}.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-pie:before{content:"\f200"}.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-chess:before{content:"\f439"}.fa-chess-bishop:before{content:"\f43a"}.fa-chess-board:before{content:"\f43c"}.fa-chess-king:before{content:"\f43f"}.fa-chess-knight:before{content:"\f441"}.fa-chess-pawn:before{content:"\f443"}.fa-chess-queen:before{content:"\f445"}.fa-chess-rook:before{content:"\f447"}.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-down:before{content:"\f078"}.fa-chevron-left:before{content:"\f053"}.fa-chevron-right:before{content:"\f054"}.fa-chevron-up:before{content:"\f077"}.fa-child:before{content:"\f1ae"}.fa-chrome:before{content:"\f268"}.fa-church:before{content:"\f51d"}.fa-circle:before{content:"\f111"}.fa-circle-notch:before{content:"\f1ce"}.fa-city:before{content:"\f64f"}.fa-clinic-medical:before{content:"\f7f2"}.fa-clipboard:before{content:"\f328"}.fa-clipboard-check:before{content:"\f46c"}.fa-clipboard-list:before{content:"\f46d"}.fa-clock:before{content:"\f017"}.fa-clone:before{content:"\f24d"}.fa-closed-captioning:before{content:"\f20a"}.fa-cloud:before{content:"\f0c2"}.fa-cloud-download-alt:before{content:"\f381"}.fa-cloud-meatball:before{content:"\f73b"}.fa-cloud-moon:before{content:"\f6c3"}.fa-cloud-moon-rain:before{content:"\f73c"}.fa-cloud-rain:before{content:"\f73d"}.fa-cloud-showers-heavy:before{content:"\f740"}.fa-cloud-sun:before{content:"\f6c4"}.fa-cloud-sun-rain:before{content:"\f743"}.fa-cloud-upload-alt:before{content:"\f382"}.fa-cloudscale:before{content:"\f383"}.fa-cloudsmith:before{content:"\f384"}.fa-cloudversify:before{content:"\f385"}.fa-cocktail:before{content:"\f561"}.fa-code:before{content:"\f121"}.fa-code-branch:before{content:"\f126"}.fa-codepen:before{content:"\f1cb"}.fa-codiepie:before{content:"\f284"}.fa-coffee:before{content:"\f0f4"}.fa-cog:before{content:"\f013"}.fa-cogs:before{content:"\f085"}.fa-coins:before{content:"\f51e"}.fa-columns:before{content:"\f0db"}.fa-comment:before{content:"\f075"}.fa-comment-alt:before{content:"\f27a"}.fa-comment-dollar:before{content:"\f651"}.fa-comment-dots:before{content:"\f4ad"}.fa-comment-medical:before{content:"\f7f5"}.fa-comment-slash:before{content:"\f4b3"}.fa-comments:before{content:"\f086"}.fa-comments-dollar:before{content:"\f653"}.fa-compact-disc:before{content:"\f51f"}.fa-compass:before{content:"\f14e"}.fa-compress:before{content:"\f066"}.fa-compress-arrows-alt:before{content:"\f78c"}.fa-concierge-bell:before{content:"\f562"}.fa-confluence:before{content:"\f78d"}.fa-connectdevelop:before{content:"\f20e"}.fa-contao:before{content:"\f26d"}.fa-cookie:before{content:"\f563"}.fa-cookie-bite:before{content:"\f564"}.fa-copy:before{content:"\f0c5"}.fa-copyright:before{content:"\f1f9"}.fa-couch:before{content:"\f4b8"}.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-critical-role:before{content:"\f6c9"}.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-css3:before{content:"\f13c"}.fa-css3-alt:before{content:"\f38b"}.fa-cube:before{content:"\f1b2"}.fa-cubes:before{content:"\f1b3"}.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-dashcube:before{content:"\f210"}.fa-database:before{content:"\f1c0"}.fa-deaf:before{content:"\f2a4"}.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-dev:before{content:"\f6cc"}.fa-deviantart:before{content:"\f1bd"}.fa-dharmachakra:before{content:"\f655"}.fa-dhl:before{content:"\f790"}.fa-diagnoses:before{content:"\f470"}.fa-diaspora:before{content:"\f791"}.fa-dice:before{content:"\f522"}.fa-dice-d20:before{content:"\f6cf"}.fa-dice-d6:before{content:"\f6d1"}.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-digital-ocean:before{content:"\f391"}.fa-digital-tachograph:before{content:"\f566"}.fa-directions:before{content:"\f5eb"}.fa-discord:before{content:"\f392"}.fa-discourse:before{content:"\f393"}.fa-divide:before{content:"\f529"}.fa-dizzy:before{content:"\f567"}.fa-dna:before{content:"\f471"}.fa-dochub:before{content:"\f394"}.fa-docker:before{content:"\f395"}.fa-dog:before{content:"\f6d3"}.fa-dollar-sign:before{content:"\f155"}.fa-dolly:before{content:"\f472"}.fa-dolly-flatbed:before{content:"\f474"}.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-polygon:before{content:"\f5ee"}.fa-dribbble:before{content:"\f17d"}.fa-dribbble-square:before{content:"\f397"}.fa-dropbox:before{content:"\f16b"}.fa-drum:before{content:"\f569"}.fa-drum-steelpan:before{content:"\f56a"}.fa-drumstick-bite:before{content:"\f6d7"}.fa-drupal:before{content:"\f1a9"}.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-earlybirds:before{content:"\f39a"}.fa-ebay:before{content:"\f4f4"}.fa-edge:before{content:"\f282"}.fa-edit:before{content:"\f044"}.fa-egg:before{content:"\f7fb"}.fa-eject:before{content:"\f052"}.fa-elementor:before{content:"\f430"}.fa-ellipsis-h:before{content:"\f141"}.fa-ellipsis-v:before{content:"\f142"}.fa-ello:before{content:"\f5f1"}.fa-ember:before{content:"\f423"}.fa-empire:before{content:"\f1d1"}.fa-envelope:before{content:"\f0e0"}.fa-envelope-open:before{content:"\f2b6"}.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-exchange-alt:before{content:"\f362"}.fa-exclamation:before{content:"\f12a"}.fa-exclamation-circle:before{content:"\f06a"}.fa-exclamation-triangle:before{content:"\f071"}.fa-expand:before{content:"\f065"}.fa-expand-arrows-alt:before{content:"\f31e"}.fa-expeditedssl:before{content:"\f23e"}.fa-external-link-alt:before{content:"\f35d"}.fa-external-link-square-alt:before{content:"\f360"}.fa-eye:before{content:"\f06e"}.fa-eye-dropper:before{content:"\f1fb"}.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-fantasy-flight-games:before{content:"\f6dc"}.fa-fast-backward:before{content:"\f049"}.fa-fast-forward:before{content:"\f050"}.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-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-code:before{content:"\f1c9"}.fa-file-contract:before{content:"\f56c"}.fa-file-csv:before{content:"\f6dd"}.fa-file-download:before{content:"\f56d"}.fa-file-excel:before{content:"\f1c3"}.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-pdf:before{content:"\f1c1"}.fa-file-powerpoint:before{content:"\f1c4"}.fa-file-prescription:before{content:"\f572"}.fa-file-signature:before{content:"\f573"}.fa-file-upload:before{content:"\f574"}.fa-file-video:before{content:"\f1c8"}.fa-file-word:before{content:"\f1c2"}.fa-fill:before{content:"\f575"}.fa-fill-drip:before{content:"\f576"}.fa-film:before{content:"\f008"}.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-firefox:before{content:"\f269"}.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-fist-raised:before{content:"\f6de"}.fa-flag:before{content:"\f024"}.fa-flag-checkered:before{content:"\f11e"}.fa-flag-usa:before{content:"\f74d"}.fa-flask:before{content:"\f0c3"}.fa-flickr:before{content:"\f16e"}.fa-flipboard:before{content:"\f44d"}.fa-flushed:before{content:"\f579"}.fa-fly:before{content:"\f417"}.fa-folder:before{content:"\f07b"}.fa-folder-minus:before{content:"\f65d"}.fa-folder-open:before{content:"\f07c"}.fa-folder-plus:before{content:"\f65e"}.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-fonticons:before{content:"\f280"}.fa-fonticons-fi:before{content:"\f3a2"}.fa-football-ball:before{content:"\f44e"}.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-free-code-camp:before{content:"\f2c5"}.fa-freebsd:before{content:"\f3a4"}.fa-frog:before{content:"\f52e"}.fa-frown:before{content:"\f119"}.fa-frown-open:before{content:"\f57a"}.fa-fulcrum:before{content:"\f50b"}.fa-funnel-dollar:before{content:"\f662"}.fa-futbol:before{content:"\f1e3"}.fa-galactic-republic:before{content:"\f50c"}.fa-galactic-senate:before{content:"\f50d"}.fa-gamepad:before{content:"\f11b"}.fa-gas-pump:before{content:"\f52f"}.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-gifts:before{content:"\f79c"}.fa-git:before{content:"\f1d3"}.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-cheers:before{content:"\f79f"}.fa-glass-martini:before{content:"\f000"}.fa-glass-martini-alt:before{content:"\f57b"}.fa-glass-whiskey:before{content:"\f7a0"}.fa-glasses:before{content:"\f530"}.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-gofore:before{content:"\f3a7"}.fa-golf-ball:before{content:"\f450"}.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-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-gulp:before{content:"\f3ae"}.fa-h-square:before{content:"\f0fd"}.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-hamsa:before{content:"\f665"}.fa-hand-holding:before{content:"\f4bd"}.fa-hand-holding-heart:before{content:"\f4be"}.fa-hand-holding-usd:before{content:"\f4c0"}.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-rock:before{content:"\f255"}.fa-hand-scissors:before{content:"\f257"}.fa-hand-spock:before{content:"\f259"}.fa-hands:before{content:"\f4c2"}.fa-hands-helping:before{content:"\f4c4"}.fa-handshake:before{content:"\f2b5"}.fa-hanukiah:before{content:"\f6e6"}.fa-hard-hat:before{content:"\f807"}.fa-hashtag:before{content:"\f292"}.fa-hat-wizard:before{content:"\f6e8"}.fa-haykal:before{content:"\f666"}.fa-hdd:before{content:"\f0a0"}.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-heartbeat:before{content:"\f21e"}.fa-helicopter:before{content:"\f533"}.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-puck:before{content:"\f453"}.fa-holly-berry:before{content:"\f7aa"}.fa-home:before{content:"\f015"}.fa-hooli:before{content:"\f427"}.fa-hornbill:before{content:"\f592"}.fa-horse:before{content:"\f6f0"}.fa-horse-head:before{content:"\f7ab"}.fa-hospital:before{content:"\f0f8"}.fa-hospital-alt:before{content:"\f47d"}.fa-hospital-symbol:before{content:"\f47e"}.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-damage:before{content:"\f6f1"}.fa-houzz:before{content:"\f27c"}.fa-hryvnia:before{content:"\f6f2"}.fa-html5:before{content:"\f13b"}.fa-hubspot:before{content:"\f3b2"}.fa-i-cursor:before{content:"\f246"}.fa-ice-cream:before{content:"\f810"}.fa-icicles:before{content:"\f7ad"}.fa-id-badge:before{content:"\f2c1"}.fa-id-card:before{content:"\f2c2"}.fa-id-card-alt:before{content:"\f47f"}.fa-igloo:before{content:"\f7ae"}.fa-image:before{content:"\f03e"}.fa-images:before{content:"\f302"}.fa-imdb:before{content:"\f2d8"}.fa-inbox:before{content:"\f01c"}.fa-indent:before{content:"\f03c"}.fa-industry:before{content:"\f275"}.fa-infinity:before{content:"\f534"}.fa-info:before{content:"\f129"}.fa-info-circle:before{content:"\f05a"}.fa-instagram:before{content:"\f16d"}.fa-intercom:before{content:"\f7af"}.fa-internet-explorer:before{content:"\f26b"}.fa-invision:before{content:"\f7b0"}.fa-ioxhost:before{content:"\f208"}.fa-italic:before{content:"\f033"}.fa-itunes:before{content:"\f3b4"}.fa-itunes-note:before{content:"\f3b5"}.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-js:before{content:"\f3b8"}.fa-js-square:before{content:"\f3b9"}.fa-jsfiddle:before{content:"\f1cc"}.fa-kaaba:before{content:"\f66b"}.fa-kaggle:before{content:"\f5fa"}.fa-key:before{content:"\f084"}.fa-keybase:before{content:"\f4f5"}.fa-keyboard:before{content:"\f11c"}.fa-keycdn:before{content:"\f3ba"}.fa-khanda:before{content:"\f66d"}.fa-kickstarter:before{content:"\f3bb"}.fa-kickstarter-k:before{content:"\f3bc"}.fa-kiss:before{content:"\f596"}.fa-kiss-beam:before{content:"\f597"}.fa-kiss-wink-heart:before{content:"\f598"}.fa-kiwi-bird:before{content:"\f535"}.fa-korvue:before{content:"\f42f"}.fa-landmark:before{content:"\f66f"}.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-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-leaf:before{content:"\f06c"}.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-alt:before{content:"\f3be"}.fa-level-up-alt:before{content:"\f3bf"}.fa-life-ring:before{content:"\f1cd"}.fa-lightbulb:before{content:"\f0eb"}.fa-line:before{content:"\f3c0"}.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-lira-sign:before{content:"\f195"}.fa-list:before{content:"\f03a"}.fa-list-alt:before{content:"\f022"}.fa-list-ol:before{content:"\f0cb"}.fa-list-ul:before{content:"\f0ca"}.fa-location-arrow:before{content:"\f124"}.fa-lock:before{content:"\f023"}.fa-lock-open:before{content:"\f3c1"}.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-low-vision:before{content:"\f2a8"}.fa-luggage-cart:before{content:"\f59d"}.fa-lyft:before{content:"\f3c3"}.fa-magento:before{content:"\f3c4"}.fa-magic:before{content:"\f0d0"}.fa-magnet:before{content:"\f076"}.fa-mail-bulk:before{content:"\f674"}.fa-mailchimp:before{content:"\f59e"}.fa-male:before{content:"\f183"}.fa-mandalorian:before{content:"\f50f"}.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-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-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-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-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-microscope:before{content:"\f610"}.fa-microsoft:before{content:"\f3ca"}.fa-minus:before{content:"\f068"}.fa-minus-circle:before{content:"\f056"}.fa-minus-square:before{content:"\f146"}.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-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-monument:before{content:"\f5a6"}.fa-moon:before{content:"\f186"}.fa-mortar-pestle:before{content:"\f5a7"}.fa-mosque:before{content:"\f678"}.fa-motorcycle:before{content:"\f21c"}.fa-mountain:before{content:"\f6fc"}.fa-mouse-pointer:before{content:"\f245"}.fa-mug-hot:before{content:"\f7b6"}.fa-music:before{content:"\f001"}.fa-napster:before{content:"\f3d2"}.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-nintendo-switch:before{content:"\f418"}.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-odnoklassniki:before{content:"\f263"}.fa-odnoklassniki-square:before{content:"\f264"}.fa-oil-can:before{content:"\f613"}.fa-old-republic:before{content:"\f510"}.fa-om:before{content:"\f679"}.fa-opencart:before{content:"\f23d"}.fa-openid:before{content:"\f19b"}.fa-opera:before{content:"\f26a"}.fa-optin-monster:before{content:"\f23c"}.fa-osi:before{content:"\f41a"}.fa-otter:before{content:"\f700"}.fa-outdent:before{content:"\f03b"}.fa-page4:before{content:"\f3d7"}.fa-pagelines:before{content:"\f18c"}.fa-pager:before{content:"\f815"}.fa-paint-brush:before{content:"\f1fc"}.fa-paint-roller:before{content:"\f5aa"}.fa-palette:before{content:"\f53f"}.fa-palfed:before{content:"\f3d8"}.fa-pallet:before{content:"\f482"}.fa-paper-plane:before{content:"\f1d8"}.fa-paperclip:before{content:"\f0c6"}.fa-parachute-box:before{content:"\f4cd"}.fa-paragraph:before{content:"\f1dd"}.fa-parking:before{content:"\f540"}.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-paypal:before{content:"\f1ed"}.fa-peace:before{content:"\f67c"}.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-alt:before{content:"\f303"}.fa-pencil-ruler:before{content:"\f5ae"}.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-phabricator:before{content:"\f3db"}.fa-phoenix-framework:before{content:"\f3dc"}.fa-phoenix-squadron:before{content:"\f511"}.fa-phone:before{content:"\f095"}.fa-phone-slash:before{content:"\f3dd"}.fa-phone-square:before{content:"\f098"}.fa-phone-volume:before{content:"\f2a0"}.fa-php:before{content:"\f457"}.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-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-slice:before{content:"\f818"}.fa-place-of-worship:before{content:"\f67f"}.fa-plane:before{content:"\f072"}.fa-plane-arrival:before{content:"\f5af"}.fa-plane-departure:before{content:"\f5b0"}.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-square:before{content:"\f0fe"}.fa-podcast:before{content:"\f2ce"}.fa-poll:before{content:"\f681"}.fa-poll-h:before{content:"\f682"}.fa-poo:before{content:"\f2fe"}.fa-poo-storm:before{content:"\f75a"}.fa-poop:before{content:"\f619"}.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-print:before{content:"\f02f"}.fa-procedures:before{content:"\f487"}.fa-product-hunt:before{content:"\f288"}.fa-project-diagram:before{content:"\f542"}.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-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-radiation:before{content:"\f7b9"}.fa-radiation-alt:before{content:"\f7ba"}.fa-rainbow:before{content:"\f75b"}.fa-random:before{content:"\f074"}.fa-raspberry-pi:before{content:"\f7bb"}.fa-ravelry:before{content:"\f2d9"}.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-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-registered:before{content:"\f25d"}.fa-renren:before{content:"\f18b"}.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-rev:before{content:"\f5b2"}.fa-ribbon:before{content:"\f4d6"}.fa-ring:before{content:"\f70b"}.fa-road:before{content:"\f018"}.fa-robot:before{content:"\f544"}.fa-rocket:before{content:"\f135"}.fa-rocketchat:before{content:"\f3e8"}.fa-rockrms:before{content:"\f3e9"}.fa-route:before{content:"\f4d7"}.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-vertical:before{content:"\f548"}.fa-running:before{content:"\f70c"}.fa-rupee-sign:before{content:"\f156"}.fa-sad-cry:before{content:"\f5b3"}.fa-sad-tear:before{content:"\f5b4"}.fa-safari:before{content:"\f267"}.fa-sass:before{content:"\f41e"}.fa-satellite:before{content:"\f7bf"}.fa-satellite-dish:before{content:"\f7c0"}.fa-save:before{content:"\f0c7"}.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-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-server:before{content:"\f233"}.fa-servicestack:before{content:"\f3ec"}.fa-shapes:before{content:"\f61f"}.fa-share:before{content:"\f064"}.fa-share-alt:before{content:"\f1e0"}.fa-share-alt-square:before{content:"\f1e1"}.fa-share-square:before{content:"\f14d"}.fa-shekel-sign:before{content:"\f20b"}.fa-shield-alt:before{content:"\f3ed"}.fa-ship:before{content:"\f21a"}.fa-shipping-fast:before{content:"\f48b"}.fa-shirtsinbulk:before{content:"\f214"}.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-shower:before{content:"\f2cc"}.fa-shuttle-van:before{content:"\f5b6"}.fa-sign:before{content:"\f4d9"}.fa-sign-in-alt:before{content:"\f2f6"}.fa-sign-language:before{content:"\f2a7"}.fa-sign-out-alt:before{content:"\f2f5"}.fa-signal:before{content:"\f012"}.fa-signature:before{content:"\f5b7"}.fa-sim-card:before{content:"\f7c4"}.fa-simplybuilt:before{content:"\f215"}.fa-sistrix:before{content:"\f3ee"}.fa-sitemap:before{content:"\f0e8"}.fa-sith:before{content:"\f512"}.fa-skating:before{content:"\f7c5"}.fa-sketch:before{content:"\f7c6"}.fa-skiing:before{content:"\f7c9"}.fa-skiing-nordic:before{content:"\f7ca"}.fa-skull:before{content:"\f54c"}.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-sleigh:before{content:"\f7cc"}.fa-sliders-h:before{content:"\f1de"}.fa-slideshare:before{content:"\f1e7"}.fa-smile:before{content:"\f118"}.fa-smile-beam:before{content:"\f5b8"}.fa-smile-wink:before{content:"\f4da"}.fa-smog:before{content:"\f75f"}.fa-smoking:before{content:"\f48d"}.fa-smoking-ban:before{content:"\f54d"}.fa-sms:before{content:"\f7cd"}.fa-snapchat:before{content:"\f2ab"}.fa-snapchat-ghost:before{content:"\f2ac"}.fa-snapchat-square:before{content:"\f2ad"}.fa-snowboarding:before{content:"\f7ce"}.fa-snowflake:before{content:"\f2dc"}.fa-snowman:before{content:"\f7d0"}.fa-snowplow:before{content:"\f7d2"}.fa-socks:before{content:"\f696"}.fa-solar-panel:before{content:"\f5ba"}.fa-sort:before{content:"\f0dc"}.fa-sort-alpha-down:before{content:"\f15d"}.fa-sort-alpha-up:before{content:"\f15e"}.fa-sort-amount-down:before{content:"\f160"}.fa-sort-amount-up:before{content:"\f161"}.fa-sort-down:before{content:"\f0dd"}.fa-sort-numeric-down:before{content:"\f162"}.fa-sort-numeric-up:before{content:"\f163"}.fa-sort-up:before{content:"\f0de"}.fa-soundcloud:before{content:"\f1be"}.fa-sourcetree:before{content:"\f7d3"}.fa-spa:before{content:"\f5bb"}.fa-space-shuttle:before{content:"\f197"}.fa-speakap:before{content:"\f3f3"}.fa-spider:before{content:"\f717"}.fa-spinner:before{content:"\f110"}.fa-splotch:before{content:"\f5bc"}.fa-spotify:before{content:"\f1bc"}.fa-spray-can:before{content:"\f5bd"}.fa-square:before{content:"\f0c8"}.fa-square-full:before{content:"\f45c"}.fa-square-root-alt:before{content:"\f698"}.fa-squarespace:before{content:"\f5be"}.fa-stack-exchange:before{content:"\f18d"}.fa-stack-overflow:before{content:"\f16c"}.fa-stamp:before{content:"\f5bf"}.fa-star:before{content:"\f005"}.fa-star-and-crescent:before{content:"\f699"}.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-staylinked:before{content:"\f3f5"}.fa-steam:before{content:"\f1b6"}.fa-steam-square:before{content:"\f1b7"}.fa-steam-symbol:before{content:"\f3f6"}.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-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-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-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-swimmer:before{content:"\f5c4"}.fa-swimming-pool:before{content:"\f5c5"}.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-tablets:before{content:"\f490"}.fa-tachometer-alt:before{content:"\f3fd"}.fa-tag:before{content:"\f02b"}.fa-tags:before{content:"\f02c"}.fa-tape:before{content:"\f4db"}.fa-tasks:before{content:"\f0ae"}.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-temperature-high:before{content:"\f769"}.fa-temperature-low:before{content:"\f76b"}.fa-tencent-weibo:before{content:"\f1d5"}.fa-tenge:before{content:"\f7d7"}.fa-terminal:before{content:"\f120"}.fa-text-height:before{content:"\f034"}.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-think-peaks:before{content:"\f731"}.fa-thumbs-down:before{content:"\f165"}.fa-thumbs-up:before{content:"\f164"}.fa-thumbtack:before{content:"\f08d"}.fa-ticket-alt:before{content:"\f3ff"}.fa-times:before{content:"\f00d"}.fa-times-circle:before{content:"\f057"}.fa-tint:before{content:"\f043"}.fa-tint-slash:before{content:"\f5c7"}.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-toolbox:before{content:"\f552"}.fa-tools:before{content:"\f7d9"}.fa-tooth:before{content:"\f5c9"}.fa-torah:before{content:"\f6a0"}.fa-torii-gate:before{content:"\f6a1"}.fa-tractor:before{content:"\f722"}.fa-trade-federation:before{content:"\f513"}.fa-trademark:before{content:"\f25c"}.fa-traffic-light:before{content:"\f637"}.fa-train:before{content:"\f238"}.fa-tram:before{content:"\f7da"}.fa-transgender:before{content:"\f224"}.fa-transgender-alt:before{content:"\f225"}.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-tree:before{content:"\f1bb"}.fa-trello:before{content:"\f181"}.fa-tripadvisor:before{content:"\f262"}.fa-trophy:before{content:"\f091"}.fa-truck:before{content:"\f0d1"}.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-tshirt:before{content:"\f553"}.fa-tty:before{content:"\f1e4"}.fa-tumblr:before{content:"\f173"}.fa-tumblr-square:before{content:"\f174"}.fa-tv:before{content:"\f26c"}.fa-twitch:before{content:"\f1e8"}.fa-twitter:before{content:"\f099"}.fa-twitter-square:before{content:"\f081"}.fa-typo3:before{content:"\f42b"}.fa-uber:before{content:"\f402"}.fa-ubuntu:before{content:"\f7df"}.fa-uikit:before{content:"\f403"}.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-uniregistry:before{content:"\f404"}.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-user:before{content:"\f007"}.fa-user-alt:before{content:"\f406"}.fa-user-alt-slash:before{content:"\f4fa"}.fa-user-astronaut:before{content:"\f4fb"}.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-edit:before{content:"\f4ff"}.fa-user-friends:before{content:"\f500"}.fa-user-graduate:before{content:"\f501"}.fa-user-injured:before{content:"\f728"}.fa-user-lock:before{content:"\f502"}.fa-user-md:before{content:"\f0f0"}.fa-user-minus:before{content:"\f503"}.fa-user-ninja:before{content:"\f504"}.fa-user-nurse:before{content:"\f82f"}.fa-user-plus:before{content:"\f234"}.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-users:before{content:"\f0c0"}.fa-users-cog:before{content:"\f509"}.fa-usps:before{content:"\f7e1"}.fa-ussunnah:before{content:"\f407"}.fa-utensil-spoon:before{content:"\f2e5"}.fa-utensils:before{content:"\f2e7"}.fa-vaadin:before{content:"\f408"}.fa-vector-square:before{content:"\f5cb"}.fa-venus:before{content:"\f221"}.fa-venus-double:before{content:"\f226"}.fa-venus-mars:before{content:"\f228"}.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-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-vk:before{content:"\f189"}.fa-vnv:before{content:"\f40b"}.fa-volleyball-ball:before{content:"\f45f"}.fa-volume-down:before{content:"\f027"}.fa-volume-mute:before{content:"\f6a9"}.fa-volume-off:before{content:"\f026"}.fa-volume-up:before{content:"\f028"}.fa-vote-yea:before{content:"\f772"}.fa-vr-cardboard:before{content:"\f729"}.fa-vuejs:before{content:"\f41f"}.fa-walking:before{content:"\f554"}.fa-wallet:before{content:"\f555"}.fa-warehouse:before{content:"\f494"}.fa-water:before{content:"\f773"}.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-whatsapp:before{content:"\f232"}.fa-whatsapp-square:before{content:"\f40c"}.fa-wheelchair:before{content:"\f193"}.fa-whmcs:before{content:"\f40d"}.fa-wifi:before{content:"\f1eb"}.fa-wikipedia-w:before{content:"\f266"}.fa-wind:before{content:"\f72e"}.fa-window-close:before{content:"\f410"}.fa-window-maximize:before{content:"\f2d0"}.fa-window-minimize:before{content:"\f2d1"}.fa-window-restore:before{content:"\f2d2"}.fa-windows:before{content:"\f17a"}.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-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-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}
\ No newline at end of file
diff --git a/shopyo/static/fontawesome/css/regular.css b/shopyo/static/fontawesome/css/regular.css
deleted file mode 100644
index e4de961..0000000
--- a/shopyo/static/fontawesome/css/regular.css
+++ /dev/null
@@ -1,11 +0,0 @@
-@font-face {
- font-family: 'Font Awesome 5 Free';
- font-style: normal;
- font-weight: 400;
- font-display: auto;
- src: url("../webfonts/fa-regular-400.eot");
- src: url("../webfonts/fa-regular-400.eot?#iefix") format("embedded-opentype"), url("../webfonts/fa-regular-400.woff2") format("woff2"), url("../webfonts/fa-regular-400.woff") format("woff"), url("../webfonts/fa-regular-400.ttf") format("truetype"), url("../webfonts/fa-regular-400.svg#fontawesome") format("svg"); }
-
-.far {
- font-family: 'Font Awesome 5 Free';
- font-weight: 400; }
diff --git a/shopyo/static/fontawesome/css/regular.min.css b/shopyo/static/fontawesome/css/regular.min.css
deleted file mode 100644
index 2c13115..0000000
--- a/shopyo/static/fontawesome/css/regular.min.css
+++ /dev/null
@@ -1 +0,0 @@
-@font-face{font-family:"Font Awesome 5 Free";font-style:normal;font-weight:400;font-display:auto;src:url(../webfonts/fa-regular-400.eot);src:url(../webfonts/fa-regular-400.eot?#iefix) format("embedded-opentype"),url(../webfonts/fa-regular-400.woff2) format("woff2"),url(../webfonts/fa-regular-400.woff) format("woff"),url(../webfonts/fa-regular-400.ttf) format("truetype"),url(../webfonts/fa-regular-400.svg#fontawesome) format("svg")}.far{font-family:"Font Awesome 5 Free";font-weight:400}
\ No newline at end of file
diff --git a/shopyo/static/fontawesome/css/solid.css b/shopyo/static/fontawesome/css/solid.css
deleted file mode 100644
index d6909b2..0000000
--- a/shopyo/static/fontawesome/css/solid.css
+++ /dev/null
@@ -1,12 +0,0 @@
-@font-face {
- font-family: 'Font Awesome 5 Free';
- font-style: normal;
- font-weight: 900;
- font-display: auto;
- src: url("../webfonts/fa-solid-900.eot");
- src: url("../webfonts/fa-solid-900.eot?#iefix") format("embedded-opentype"), url("../webfonts/fa-solid-900.woff2") format("woff2"), url("../webfonts/fa-solid-900.woff") format("woff"), url("../webfonts/fa-solid-900.ttf") format("truetype"), url("../webfonts/fa-solid-900.svg#fontawesome") format("svg"); }
-
-.fa,
-.fas {
- font-family: 'Font Awesome 5 Free';
- font-weight: 900; }
diff --git a/shopyo/static/fontawesome/css/solid.min.css b/shopyo/static/fontawesome/css/solid.min.css
deleted file mode 100644
index 94bb6a9..0000000
--- a/shopyo/static/fontawesome/css/solid.min.css
+++ /dev/null
@@ -1 +0,0 @@
-@font-face{font-family:"Font Awesome 5 Free";font-style:normal;font-weight:900;font-display:auto;src:url(../webfonts/fa-solid-900.eot);src:url(../webfonts/fa-solid-900.eot?#iefix) format("embedded-opentype"),url(../webfonts/fa-solid-900.woff2) format("woff2"),url(../webfonts/fa-solid-900.woff) format("woff"),url(../webfonts/fa-solid-900.ttf) format("truetype"),url(../webfonts/fa-solid-900.svg#fontawesome) format("svg")}.fa,.fas{font-family:"Font Awesome 5 Free";font-weight:900}
\ No newline at end of file
diff --git a/shopyo/static/fontawesome/css/svg-with-js.css b/shopyo/static/fontawesome/css/svg-with-js.css
deleted file mode 100644
index 192b881..0000000
--- a/shopyo/static/fontawesome/css/svg-with-js.css
+++ /dev/null
@@ -1,342 +0,0 @@
-svg:not(:root).svg-inline--fa {
- overflow: visible; }
-
-.svg-inline--fa {
- display: inline-block;
- font-size: inherit;
- height: 1em;
- overflow: visible;
- vertical-align: -.125em; }
- .svg-inline--fa.fa-lg {
- vertical-align: -.225em; }
- .svg-inline--fa.fa-w-1 {
- width: 0.0625em; }
- .svg-inline--fa.fa-w-2 {
- width: 0.125em; }
- .svg-inline--fa.fa-w-3 {
- width: 0.1875em; }
- .svg-inline--fa.fa-w-4 {
- width: 0.25em; }
- .svg-inline--fa.fa-w-5 {
- width: 0.3125em; }
- .svg-inline--fa.fa-w-6 {
- width: 0.375em; }
- .svg-inline--fa.fa-w-7 {
- width: 0.4375em; }
- .svg-inline--fa.fa-w-8 {
- width: 0.5em; }
- .svg-inline--fa.fa-w-9 {
- width: 0.5625em; }
- .svg-inline--fa.fa-w-10 {
- width: 0.625em; }
- .svg-inline--fa.fa-w-11 {
- width: 0.6875em; }
- .svg-inline--fa.fa-w-12 {
- width: 0.75em; }
- .svg-inline--fa.fa-w-13 {
- width: 0.8125em; }
- .svg-inline--fa.fa-w-14 {
- width: 0.875em; }
- .svg-inline--fa.fa-w-15 {
- width: 0.9375em; }
- .svg-inline--fa.fa-w-16 {
- width: 1em; }
- .svg-inline--fa.fa-w-17 {
- width: 1.0625em; }
- .svg-inline--fa.fa-w-18 {
- width: 1.125em; }
- .svg-inline--fa.fa-w-19 {
- width: 1.1875em; }
- .svg-inline--fa.fa-w-20 {
- width: 1.25em; }
- .svg-inline--fa.fa-pull-left {
- margin-right: .3em;
- width: auto; }
- .svg-inline--fa.fa-pull-right {
- margin-left: .3em;
- width: auto; }
- .svg-inline--fa.fa-border {
- height: 1.5em; }
- .svg-inline--fa.fa-li {
- width: 2em; }
- .svg-inline--fa.fa-fw {
- width: 1.25em; }
-
-.fa-layers svg.svg-inline--fa {
- bottom: 0;
- left: 0;
- margin: auto;
- position: absolute;
- right: 0;
- top: 0; }
-
-.fa-layers {
- display: inline-block;
- height: 1em;
- position: relative;
- text-align: center;
- vertical-align: -.125em;
- width: 1em; }
- .fa-layers svg.svg-inline--fa {
- -webkit-transform-origin: center center;
- transform-origin: center center; }
-
-.fa-layers-text, .fa-layers-counter {
- display: inline-block;
- position: absolute;
- text-align: center; }
-
-.fa-layers-text {
- left: 50%;
- top: 50%;
- -webkit-transform: translate(-50%, -50%);
- transform: translate(-50%, -50%);
- -webkit-transform-origin: center center;
- transform-origin: center center; }
-
-.fa-layers-counter {
- background-color: #ff253a;
- border-radius: 1em;
- -webkit-box-sizing: border-box;
- box-sizing: border-box;
- color: #fff;
- height: 1.5em;
- line-height: 1;
- max-width: 5em;
- min-width: 1.5em;
- overflow: hidden;
- padding: .25em;
- right: 0;
- text-overflow: ellipsis;
- top: 0;
- -webkit-transform: scale(0.25);
- transform: scale(0.25);
- -webkit-transform-origin: top right;
- transform-origin: top right; }
-
-.fa-layers-bottom-right {
- bottom: 0;
- right: 0;
- top: auto;
- -webkit-transform: scale(0.25);
- transform: scale(0.25);
- -webkit-transform-origin: bottom right;
- transform-origin: bottom right; }
-
-.fa-layers-bottom-left {
- bottom: 0;
- left: 0;
- right: auto;
- top: auto;
- -webkit-transform: scale(0.25);
- transform: scale(0.25);
- -webkit-transform-origin: bottom left;
- transform-origin: bottom left; }
-
-.fa-layers-top-right {
- right: 0;
- top: 0;
- -webkit-transform: scale(0.25);
- transform: scale(0.25);
- -webkit-transform-origin: top right;
- transform-origin: top right; }
-
-.fa-layers-top-left {
- left: 0;
- right: auto;
- top: 0;
- -webkit-transform: scale(0.25);
- transform: scale(0.25);
- -webkit-transform-origin: top left;
- transform-origin: top left; }
-
-.fa-lg {
- font-size: 1.33333em;
- line-height: 0.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 0.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;
- position: relative;
- width: 2.5em; }
-
-.fa-stack-1x,
-.fa-stack-2x {
- bottom: 0;
- left: 0;
- margin: auto;
- position: absolute;
- right: 0;
- top: 0; }
-
-.svg-inline--fa.fa-stack-1x {
- height: 1em;
- width: 1.25em; }
-
-.svg-inline--fa.fa-stack-2x {
- height: 2em;
- width: 2.5em; }
-
-.fa-inverse {
- color: #fff; }
-
-.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; }
diff --git a/shopyo/static/fontawesome/css/svg-with-js.min.css b/shopyo/static/fontawesome/css/svg-with-js.min.css
deleted file mode 100644
index a72425e..0000000
--- a/shopyo/static/fontawesome/css/svg-with-js.min.css
+++ /dev/null
@@ -1 +0,0 @@
-.svg-inline--fa,svg:not(:root).svg-inline--fa{overflow:visible}.svg-inline--fa{display:inline-block;font-size:inherit;height:1em;vertical-align:-.125em}.svg-inline--fa.fa-lg{vertical-align:-.225em}.svg-inline--fa.fa-w-1{width:.0625em}.svg-inline--fa.fa-w-2{width:.125em}.svg-inline--fa.fa-w-3{width:.1875em}.svg-inline--fa.fa-w-4{width:.25em}.svg-inline--fa.fa-w-5{width:.3125em}.svg-inline--fa.fa-w-6{width:.375em}.svg-inline--fa.fa-w-7{width:.4375em}.svg-inline--fa.fa-w-8{width:.5em}.svg-inline--fa.fa-w-9{width:.5625em}.svg-inline--fa.fa-w-10{width:.625em}.svg-inline--fa.fa-w-11{width:.6875em}.svg-inline--fa.fa-w-12{width:.75em}.svg-inline--fa.fa-w-13{width:.8125em}.svg-inline--fa.fa-w-14{width:.875em}.svg-inline--fa.fa-w-15{width:.9375em}.svg-inline--fa.fa-w-16{width:1em}.svg-inline--fa.fa-w-17{width:1.0625em}.svg-inline--fa.fa-w-18{width:1.125em}.svg-inline--fa.fa-w-19{width:1.1875em}.svg-inline--fa.fa-w-20{width:1.25em}.svg-inline--fa.fa-pull-left{margin-right:.3em;width:auto}.svg-inline--fa.fa-pull-right{margin-left:.3em;width:auto}.svg-inline--fa.fa-border{height:1.5em}.svg-inline--fa.fa-li{width:2em}.svg-inline--fa.fa-fw{width:1.25em}.fa-layers svg.svg-inline--fa{bottom:0;left:0;margin:auto;position:absolute;right:0;top:0}.fa-layers{display:inline-block;height:1em;position:relative;text-align:center;vertical-align:-.125em;width:1em}.fa-layers svg.svg-inline--fa{transform-origin:center center}.fa-layers-counter,.fa-layers-text{display:inline-block;position:absolute;text-align:center}.fa-layers-text{left:50%;top:50%;transform:translate(-50%,-50%);transform-origin:center center}.fa-layers-counter{background-color:#ff253a;border-radius:1em;box-sizing:border-box;color:#fff;height:1.5em;line-height:1;max-width:5em;min-width:1.5em;overflow:hidden;padding:.25em;right:0;text-overflow:ellipsis;top:0;transform:scale(.25);transform-origin:top right}.fa-layers-bottom-right{bottom:0;right:0;top:auto;transform:scale(.25);transform-origin:bottom right}.fa-layers-bottom-left{bottom:0;left:0;right:auto;top:auto;transform:scale(.25);transform-origin:bottom left}.fa-layers-top-right{right:0;top:0;transform:scale(.25);transform-origin:top right}.fa-layers-top-left{left:0;right:auto;top:0;transform:scale(.25);transform-origin:top left}.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:.08em solid #eee;border-radius:.1em;padding:.2em .25em .15em}.fa-pull-left{float:left}.fa-pull-right{float:right}.fa.fa-pull-left,.fab.fa-pull-left,.fal.fa-pull-left,.far.fa-pull-left,.fas.fa-pull-left{margin-right:.3em}.fa.fa-pull-right,.fab.fa-pull-right,.fal.fa-pull-right,.far.fa-pull-right,.fas.fa-pull-right{margin-left:.3em}.fa-spin{animation:fa-spin 2s infinite linear}.fa-pulse{animation:fa-spin 1s infinite steps(8)}@keyframes fa-spin{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}.fa-rotate-90{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=1)";transform:rotate(90deg)}.fa-rotate-180{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=2)";transform:rotate(180deg)}.fa-rotate-270{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=3)";transform:rotate(270deg)}.fa-flip-horizontal{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=0, mirror=1)";transform:scaleX(-1)}.fa-flip-vertical{transform:scaleY(-1)}.fa-flip-both,.fa-flip-horizontal.fa-flip-vertical,.fa-flip-vertical{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=2, mirror=1)"}.fa-flip-both,.fa-flip-horizontal.fa-flip-vertical{transform:scale(-1)}:root .fa-flip-both,:root .fa-flip-horizontal,:root .fa-flip-vertical,:root .fa-rotate-90,:root .fa-rotate-180,:root .fa-rotate-270{filter:none}.fa-stack{display:inline-block;height:2em;position:relative;width:2.5em}.fa-stack-1x,.fa-stack-2x{bottom:0;left:0;margin:auto;position:absolute;right:0;top:0}.svg-inline--fa.fa-stack-1x{height:1em;width:1.25em}.svg-inline--fa.fa-stack-2x{height:2em;width:2.5em}.fa-inverse{color:#fff}.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}
\ No newline at end of file
diff --git a/shopyo/static/fontawesome/css/v4-shims.css b/shopyo/static/fontawesome/css/v4-shims.css
deleted file mode 100644
index ccecd25..0000000
--- a/shopyo/static/fontawesome/css/v4-shims.css
+++ /dev/null
@@ -1,2162 +0,0 @@
-.fa.fa-glass:before {
- content: "\f000"; }
-
-.fa.fa-meetup {
- font-family: 'Font Awesome 5 Brands';
- font-weight: 400; }
-
-.fa.fa-star-o {
- font-family: 'Font Awesome 5 Free';
- font-weight: 400; }
-
-.fa.fa-star-o:before {
- content: "\f005"; }
-
-.fa.fa-remove:before {
- content: "\f00d"; }
-
-.fa.fa-close:before {
- content: "\f00d"; }
-
-.fa.fa-gear:before {
- content: "\f013"; }
-
-.fa.fa-trash-o {
- font-family: 'Font Awesome 5 Free';
- font-weight: 400; }
-
-.fa.fa-trash-o:before {
- content: "\f2ed"; }
-
-.fa.fa-file-o {
- font-family: 'Font Awesome 5 Free';
- font-weight: 400; }
-
-.fa.fa-file-o:before {
- content: "\f15b"; }
-
-.fa.fa-clock-o {
- font-family: 'Font Awesome 5 Free';
- font-weight: 400; }
-
-.fa.fa-clock-o:before {
- content: "\f017"; }
-
-.fa.fa-arrow-circle-o-down {
- font-family: 'Font Awesome 5 Free';
- font-weight: 400; }
-
-.fa.fa-arrow-circle-o-down:before {
- content: "\f358"; }
-
-.fa.fa-arrow-circle-o-up {
- font-family: 'Font Awesome 5 Free';
- font-weight: 400; }
-
-.fa.fa-arrow-circle-o-up:before {
- content: "\f35b"; }
-
-.fa.fa-play-circle-o {
- font-family: 'Font Awesome 5 Free';
- font-weight: 400; }
-
-.fa.fa-play-circle-o:before {
- content: "\f144"; }
-
-.fa.fa-repeat:before {
- content: "\f01e"; }
-
-.fa.fa-rotate-right:before {
- content: "\f01e"; }
-
-.fa.fa-refresh:before {
- content: "\f021"; }
-
-.fa.fa-list-alt {
- font-family: 'Font Awesome 5 Free';
- font-weight: 400; }
-
-.fa.fa-dedent:before {
- content: "\f03b"; }
-
-.fa.fa-video-camera:before {
- content: "\f03d"; }
-
-.fa.fa-picture-o {
- font-family: 'Font Awesome 5 Free';
- font-weight: 400; }
-
-.fa.fa-picture-o:before {
- content: "\f03e"; }
-
-.fa.fa-photo {
- font-family: 'Font Awesome 5 Free';
- font-weight: 400; }
-
-.fa.fa-photo:before {
- content: "\f03e"; }
-
-.fa.fa-image {
- font-family: 'Font Awesome 5 Free';
- font-weight: 400; }
-
-.fa.fa-image:before {
- content: "\f03e"; }
-
-.fa.fa-pencil:before {
- content: "\f303"; }
-
-.fa.fa-map-marker:before {
- content: "\f3c5"; }
-
-.fa.fa-pencil-square-o {
- font-family: 'Font Awesome 5 Free';
- font-weight: 400; }
-
-.fa.fa-pencil-square-o:before {
- content: "\f044"; }
-
-.fa.fa-share-square-o {
- font-family: 'Font Awesome 5 Free';
- font-weight: 400; }
-
-.fa.fa-share-square-o:before {
- content: "\f14d"; }
-
-.fa.fa-check-square-o {
- font-family: 'Font Awesome 5 Free';
- font-weight: 400; }
-
-.fa.fa-check-square-o:before {
- content: "\f14a"; }
-
-.fa.fa-arrows:before {
- content: "\f0b2"; }
-
-.fa.fa-times-circle-o {
- font-family: 'Font Awesome 5 Free';
- font-weight: 400; }
-
-.fa.fa-times-circle-o:before {
- content: "\f057"; }
-
-.fa.fa-check-circle-o {
- font-family: 'Font Awesome 5 Free';
- font-weight: 400; }
-
-.fa.fa-check-circle-o:before {
- content: "\f058"; }
-
-.fa.fa-mail-forward:before {
- content: "\f064"; }
-
-.fa.fa-eye {
- font-family: 'Font Awesome 5 Free';
- font-weight: 400; }
-
-.fa.fa-eye-slash {
- font-family: 'Font Awesome 5 Free';
- font-weight: 400; }
-
-.fa.fa-warning:before {
- content: "\f071"; }
-
-.fa.fa-calendar:before {
- content: "\f073"; }
-
-.fa.fa-arrows-v:before {
- content: "\f338"; }
-
-.fa.fa-arrows-h:before {
- content: "\f337"; }
-
-.fa.fa-bar-chart {
- font-family: 'Font Awesome 5 Free';
- font-weight: 400; }
-
-.fa.fa-bar-chart:before {
- content: "\f080"; }
-
-.fa.fa-bar-chart-o {
- font-family: 'Font Awesome 5 Free';
- font-weight: 400; }
-
-.fa.fa-bar-chart-o:before {
- content: "\f080"; }
-
-.fa.fa-twitter-square {
- font-family: 'Font Awesome 5 Brands';
- font-weight: 400; }
-
-.fa.fa-facebook-square {
- font-family: 'Font Awesome 5 Brands';
- font-weight: 400; }
-
-.fa.fa-gears:before {
- content: "\f085"; }
-
-.fa.fa-thumbs-o-up {
- font-family: 'Font Awesome 5 Free';
- font-weight: 400; }
-
-.fa.fa-thumbs-o-up:before {
- content: "\f164"; }
-
-.fa.fa-thumbs-o-down {
- font-family: 'Font Awesome 5 Free';
- font-weight: 400; }
-
-.fa.fa-thumbs-o-down:before {
- content: "\f165"; }
-
-.fa.fa-heart-o {
- font-family: 'Font Awesome 5 Free';
- font-weight: 400; }
-
-.fa.fa-heart-o:before {
- content: "\f004"; }
-
-.fa.fa-sign-out:before {
- content: "\f2f5"; }
-
-.fa.fa-linkedin-square {
- font-family: 'Font Awesome 5 Brands';
- font-weight: 400; }
-
-.fa.fa-linkedin-square:before {
- content: "\f08c"; }
-
-.fa.fa-thumb-tack:before {
- content: "\f08d"; }
-
-.fa.fa-external-link:before {
- content: "\f35d"; }
-
-.fa.fa-sign-in:before {
- content: "\f2f6"; }
-
-.fa.fa-github-square {
- font-family: 'Font Awesome 5 Brands';
- font-weight: 400; }
-
-.fa.fa-lemon-o {
- font-family: 'Font Awesome 5 Free';
- font-weight: 400; }
-
-.fa.fa-lemon-o:before {
- content: "\f094"; }
-
-.fa.fa-square-o {
- font-family: 'Font Awesome 5 Free';
- font-weight: 400; }
-
-.fa.fa-square-o:before {
- content: "\f0c8"; }
-
-.fa.fa-bookmark-o {
- font-family: 'Font Awesome 5 Free';
- font-weight: 400; }
-
-.fa.fa-bookmark-o:before {
- content: "\f02e"; }
-
-.fa.fa-twitter {
- font-family: 'Font Awesome 5 Brands';
- font-weight: 400; }
-
-.fa.fa-facebook {
- font-family: 'Font Awesome 5 Brands';
- font-weight: 400; }
-
-.fa.fa-facebook:before {
- content: "\f39e"; }
-
-.fa.fa-facebook-f {
- font-family: 'Font Awesome 5 Brands';
- font-weight: 400; }
-
-.fa.fa-facebook-f:before {
- content: "\f39e"; }
-
-.fa.fa-github {
- font-family: 'Font Awesome 5 Brands';
- font-weight: 400; }
-
-.fa.fa-credit-card {
- font-family: 'Font Awesome 5 Free';
- font-weight: 400; }
-
-.fa.fa-feed:before {
- content: "\f09e"; }
-
-.fa.fa-hdd-o {
- font-family: 'Font Awesome 5 Free';
- font-weight: 400; }
-
-.fa.fa-hdd-o:before {
- content: "\f0a0"; }
-
-.fa.fa-hand-o-right {
- font-family: 'Font Awesome 5 Free';
- font-weight: 400; }
-
-.fa.fa-hand-o-right:before {
- content: "\f0a4"; }
-
-.fa.fa-hand-o-left {
- font-family: 'Font Awesome 5 Free';
- font-weight: 400; }
-
-.fa.fa-hand-o-left:before {
- content: "\f0a5"; }
-
-.fa.fa-hand-o-up {
- font-family: 'Font Awesome 5 Free';
- font-weight: 400; }
-
-.fa.fa-hand-o-up:before {
- content: "\f0a6"; }
-
-.fa.fa-hand-o-down {
- font-family: 'Font Awesome 5 Free';
- font-weight: 400; }
-
-.fa.fa-hand-o-down:before {
- content: "\f0a7"; }
-
-.fa.fa-arrows-alt:before {
- content: "\f31e"; }
-
-.fa.fa-group:before {
- content: "\f0c0"; }
-
-.fa.fa-chain:before {
- content: "\f0c1"; }
-
-.fa.fa-scissors:before {
- content: "\f0c4"; }
-
-.fa.fa-files-o {
- font-family: 'Font Awesome 5 Free';
- font-weight: 400; }
-
-.fa.fa-files-o:before {
- content: "\f0c5"; }
-
-.fa.fa-floppy-o {
- font-family: 'Font Awesome 5 Free';
- font-weight: 400; }
-
-.fa.fa-floppy-o:before {
- content: "\f0c7"; }
-
-.fa.fa-navicon:before {
- content: "\f0c9"; }
-
-.fa.fa-reorder:before {
- content: "\f0c9"; }
-
-.fa.fa-pinterest {
- font-family: 'Font Awesome 5 Brands';
- font-weight: 400; }
-
-.fa.fa-pinterest-square {
- font-family: 'Font Awesome 5 Brands';
- font-weight: 400; }
-
-.fa.fa-google-plus-square {
- font-family: 'Font Awesome 5 Brands';
- font-weight: 400; }
-
-.fa.fa-google-plus {
- font-family: 'Font Awesome 5 Brands';
- font-weight: 400; }
-
-.fa.fa-google-plus:before {
- content: "\f0d5"; }
-
-.fa.fa-money {
- font-family: 'Font Awesome 5 Free';
- font-weight: 400; }
-
-.fa.fa-money:before {
- content: "\f3d1"; }
-
-.fa.fa-unsorted:before {
- content: "\f0dc"; }
-
-.fa.fa-sort-desc:before {
- content: "\f0dd"; }
-
-.fa.fa-sort-asc:before {
- content: "\f0de"; }
-
-.fa.fa-linkedin {
- font-family: 'Font Awesome 5 Brands';
- font-weight: 400; }
-
-.fa.fa-linkedin:before {
- content: "\f0e1"; }
-
-.fa.fa-rotate-left:before {
- content: "\f0e2"; }
-
-.fa.fa-legal:before {
- content: "\f0e3"; }
-
-.fa.fa-tachometer:before {
- content: "\f3fd"; }
-
-.fa.fa-dashboard:before {
- content: "\f3fd"; }
-
-.fa.fa-comment-o {
- font-family: 'Font Awesome 5 Free';
- font-weight: 400; }
-
-.fa.fa-comment-o:before {
- content: "\f075"; }
-
-.fa.fa-comments-o {
- font-family: 'Font Awesome 5 Free';
- font-weight: 400; }
-
-.fa.fa-comments-o:before {
- content: "\f086"; }
-
-.fa.fa-flash:before {
- content: "\f0e7"; }
-
-.fa.fa-clipboard {
- font-family: 'Font Awesome 5 Free';
- font-weight: 400; }
-
-.fa.fa-paste {
- font-family: 'Font Awesome 5 Free';
- font-weight: 400; }
-
-.fa.fa-paste:before {
- content: "\f328"; }
-
-.fa.fa-lightbulb-o {
- font-family: 'Font Awesome 5 Free';
- font-weight: 400; }
-
-.fa.fa-lightbulb-o:before {
- content: "\f0eb"; }
-
-.fa.fa-exchange:before {
- content: "\f362"; }
-
-.fa.fa-cloud-download:before {
- content: "\f381"; }
-
-.fa.fa-cloud-upload:before {
- content: "\f382"; }
-
-.fa.fa-bell-o {
- font-family: 'Font Awesome 5 Free';
- font-weight: 400; }
-
-.fa.fa-bell-o:before {
- content: "\f0f3"; }
-
-.fa.fa-cutlery:before {
- content: "\f2e7"; }
-
-.fa.fa-file-text-o {
- font-family: 'Font Awesome 5 Free';
- font-weight: 400; }
-
-.fa.fa-file-text-o:before {
- content: "\f15c"; }
-
-.fa.fa-building-o {
- font-family: 'Font Awesome 5 Free';
- font-weight: 400; }
-
-.fa.fa-building-o:before {
- content: "\f1ad"; }
-
-.fa.fa-hospital-o {
- font-family: 'Font Awesome 5 Free';
- font-weight: 400; }
-
-.fa.fa-hospital-o:before {
- content: "\f0f8"; }
-
-.fa.fa-tablet:before {
- content: "\f3fa"; }
-
-.fa.fa-mobile:before {
- content: "\f3cd"; }
-
-.fa.fa-mobile-phone:before {
- content: "\f3cd"; }
-
-.fa.fa-circle-o {
- font-family: 'Font Awesome 5 Free';
- font-weight: 400; }
-
-.fa.fa-circle-o:before {
- content: "\f111"; }
-
-.fa.fa-mail-reply:before {
- content: "\f3e5"; }
-
-.fa.fa-github-alt {
- font-family: 'Font Awesome 5 Brands';
- font-weight: 400; }
-
-.fa.fa-folder-o {
- font-family: 'Font Awesome 5 Free';
- font-weight: 400; }
-
-.fa.fa-folder-o:before {
- content: "\f07b"; }
-
-.fa.fa-folder-open-o {
- font-family: 'Font Awesome 5 Free';
- font-weight: 400; }
-
-.fa.fa-folder-open-o:before {
- content: "\f07c"; }
-
-.fa.fa-smile-o {
- font-family: 'Font Awesome 5 Free';
- font-weight: 400; }
-
-.fa.fa-smile-o:before {
- content: "\f118"; }
-
-.fa.fa-frown-o {
- font-family: 'Font Awesome 5 Free';
- font-weight: 400; }
-
-.fa.fa-frown-o:before {
- content: "\f119"; }
-
-.fa.fa-meh-o {
- font-family: 'Font Awesome 5 Free';
- font-weight: 400; }
-
-.fa.fa-meh-o:before {
- content: "\f11a"; }
-
-.fa.fa-keyboard-o {
- font-family: 'Font Awesome 5 Free';
- font-weight: 400; }
-
-.fa.fa-keyboard-o:before {
- content: "\f11c"; }
-
-.fa.fa-flag-o {
- font-family: 'Font Awesome 5 Free';
- font-weight: 400; }
-
-.fa.fa-flag-o:before {
- content: "\f024"; }
-
-.fa.fa-mail-reply-all:before {
- content: "\f122"; }
-
-.fa.fa-star-half-o {
- font-family: 'Font Awesome 5 Free';
- font-weight: 400; }
-
-.fa.fa-star-half-o:before {
- content: "\f089"; }
-
-.fa.fa-star-half-empty {
- font-family: 'Font Awesome 5 Free';
- font-weight: 400; }
-
-.fa.fa-star-half-empty:before {
- content: "\f089"; }
-
-.fa.fa-star-half-full {
- font-family: 'Font Awesome 5 Free';
- font-weight: 400; }
-
-.fa.fa-star-half-full:before {
- content: "\f089"; }
-
-.fa.fa-code-fork:before {
- content: "\f126"; }
-
-.fa.fa-chain-broken:before {
- content: "\f127"; }
-
-.fa.fa-shield:before {
- content: "\f3ed"; }
-
-.fa.fa-calendar-o {
- font-family: 'Font Awesome 5 Free';
- font-weight: 400; }
-
-.fa.fa-calendar-o:before {
- content: "\f133"; }
-
-.fa.fa-maxcdn {
- font-family: 'Font Awesome 5 Brands';
- font-weight: 400; }
-
-.fa.fa-html5 {
- font-family: 'Font Awesome 5 Brands';
- font-weight: 400; }
-
-.fa.fa-css3 {
- font-family: 'Font Awesome 5 Brands';
- font-weight: 400; }
-
-.fa.fa-ticket:before {
- content: "\f3ff"; }
-
-.fa.fa-minus-square-o {
- font-family: 'Font Awesome 5 Free';
- font-weight: 400; }
-
-.fa.fa-minus-square-o:before {
- content: "\f146"; }
-
-.fa.fa-level-up:before {
- content: "\f3bf"; }
-
-.fa.fa-level-down:before {
- content: "\f3be"; }
-
-.fa.fa-pencil-square:before {
- content: "\f14b"; }
-
-.fa.fa-external-link-square:before {
- content: "\f360"; }
-
-.fa.fa-compass {
- font-family: 'Font Awesome 5 Free';
- font-weight: 400; }
-
-.fa.fa-caret-square-o-down {
- font-family: 'Font Awesome 5 Free';
- font-weight: 400; }
-
-.fa.fa-caret-square-o-down:before {
- content: "\f150"; }
-
-.fa.fa-toggle-down {
- font-family: 'Font Awesome 5 Free';
- font-weight: 400; }
-
-.fa.fa-toggle-down:before {
- content: "\f150"; }
-
-.fa.fa-caret-square-o-up {
- font-family: 'Font Awesome 5 Free';
- font-weight: 400; }
-
-.fa.fa-caret-square-o-up:before {
- content: "\f151"; }
-
-.fa.fa-toggle-up {
- font-family: 'Font Awesome 5 Free';
- font-weight: 400; }
-
-.fa.fa-toggle-up:before {
- content: "\f151"; }
-
-.fa.fa-caret-square-o-right {
- font-family: 'Font Awesome 5 Free';
- font-weight: 400; }
-
-.fa.fa-caret-square-o-right:before {
- content: "\f152"; }
-
-.fa.fa-toggle-right {
- font-family: 'Font Awesome 5 Free';
- font-weight: 400; }
-
-.fa.fa-toggle-right:before {
- content: "\f152"; }
-
-.fa.fa-eur:before {
- content: "\f153"; }
-
-.fa.fa-euro:before {
- content: "\f153"; }
-
-.fa.fa-gbp:before {
- content: "\f154"; }
-
-.fa.fa-usd:before {
- content: "\f155"; }
-
-.fa.fa-dollar:before {
- content: "\f155"; }
-
-.fa.fa-inr:before {
- content: "\f156"; }
-
-.fa.fa-rupee:before {
- content: "\f156"; }
-
-.fa.fa-jpy:before {
- content: "\f157"; }
-
-.fa.fa-cny:before {
- content: "\f157"; }
-
-.fa.fa-rmb:before {
- content: "\f157"; }
-
-.fa.fa-yen:before {
- content: "\f157"; }
-
-.fa.fa-rub:before {
- content: "\f158"; }
-
-.fa.fa-ruble:before {
- content: "\f158"; }
-
-.fa.fa-rouble:before {
- content: "\f158"; }
-
-.fa.fa-krw:before {
- content: "\f159"; }
-
-.fa.fa-won:before {
- content: "\f159"; }
-
-.fa.fa-btc {
- font-family: 'Font Awesome 5 Brands';
- font-weight: 400; }
-
-.fa.fa-bitcoin {
- font-family: 'Font Awesome 5 Brands';
- font-weight: 400; }
-
-.fa.fa-bitcoin:before {
- content: "\f15a"; }
-
-.fa.fa-file-text:before {
- content: "\f15c"; }
-
-.fa.fa-sort-alpha-asc:before {
- content: "\f15d"; }
-
-.fa.fa-sort-alpha-desc:before {
- content: "\f15e"; }
-
-.fa.fa-sort-amount-asc:before {
- content: "\f160"; }
-
-.fa.fa-sort-amount-desc:before {
- content: "\f161"; }
-
-.fa.fa-sort-numeric-asc:before {
- content: "\f162"; }
-
-.fa.fa-sort-numeric-desc:before {
- content: "\f163"; }
-
-.fa.fa-youtube-square {
- font-family: 'Font Awesome 5 Brands';
- font-weight: 400; }
-
-.fa.fa-youtube {
- font-family: 'Font Awesome 5 Brands';
- font-weight: 400; }
-
-.fa.fa-xing {
- font-family: 'Font Awesome 5 Brands';
- font-weight: 400; }
-
-.fa.fa-xing-square {
- font-family: 'Font Awesome 5 Brands';
- font-weight: 400; }
-
-.fa.fa-youtube-play {
- font-family: 'Font Awesome 5 Brands';
- font-weight: 400; }
-
-.fa.fa-youtube-play:before {
- content: "\f167"; }
-
-.fa.fa-dropbox {
- font-family: 'Font Awesome 5 Brands';
- font-weight: 400; }
-
-.fa.fa-stack-overflow {
- font-family: 'Font Awesome 5 Brands';
- font-weight: 400; }
-
-.fa.fa-instagram {
- font-family: 'Font Awesome 5 Brands';
- font-weight: 400; }
-
-.fa.fa-flickr {
- font-family: 'Font Awesome 5 Brands';
- font-weight: 400; }
-
-.fa.fa-adn {
- font-family: 'Font Awesome 5 Brands';
- font-weight: 400; }
-
-.fa.fa-bitbucket {
- font-family: 'Font Awesome 5 Brands';
- font-weight: 400; }
-
-.fa.fa-bitbucket-square {
- font-family: 'Font Awesome 5 Brands';
- font-weight: 400; }
-
-.fa.fa-bitbucket-square:before {
- content: "\f171"; }
-
-.fa.fa-tumblr {
- font-family: 'Font Awesome 5 Brands';
- font-weight: 400; }
-
-.fa.fa-tumblr-square {
- font-family: 'Font Awesome 5 Brands';
- font-weight: 400; }
-
-.fa.fa-long-arrow-down:before {
- content: "\f309"; }
-
-.fa.fa-long-arrow-up:before {
- content: "\f30c"; }
-
-.fa.fa-long-arrow-left:before {
- content: "\f30a"; }
-
-.fa.fa-long-arrow-right:before {
- content: "\f30b"; }
-
-.fa.fa-apple {
- font-family: 'Font Awesome 5 Brands';
- font-weight: 400; }
-
-.fa.fa-windows {
- font-family: 'Font Awesome 5 Brands';
- font-weight: 400; }
-
-.fa.fa-android {
- font-family: 'Font Awesome 5 Brands';
- font-weight: 400; }
-
-.fa.fa-linux {
- font-family: 'Font Awesome 5 Brands';
- font-weight: 400; }
-
-.fa.fa-dribbble {
- font-family: 'Font Awesome 5 Brands';
- font-weight: 400; }
-
-.fa.fa-skype {
- font-family: 'Font Awesome 5 Brands';
- font-weight: 400; }
-
-.fa.fa-foursquare {
- font-family: 'Font Awesome 5 Brands';
- font-weight: 400; }
-
-.fa.fa-trello {
- font-family: 'Font Awesome 5 Brands';
- font-weight: 400; }
-
-.fa.fa-gratipay {
- font-family: 'Font Awesome 5 Brands';
- font-weight: 400; }
-
-.fa.fa-gittip {
- font-family: 'Font Awesome 5 Brands';
- font-weight: 400; }
-
-.fa.fa-gittip:before {
- content: "\f184"; }
-
-.fa.fa-sun-o {
- font-family: 'Font Awesome 5 Free';
- font-weight: 400; }
-
-.fa.fa-sun-o:before {
- content: "\f185"; }
-
-.fa.fa-moon-o {
- font-family: 'Font Awesome 5 Free';
- font-weight: 400; }
-
-.fa.fa-moon-o:before {
- content: "\f186"; }
-
-.fa.fa-vk {
- font-family: 'Font Awesome 5 Brands';
- font-weight: 400; }
-
-.fa.fa-weibo {
- font-family: 'Font Awesome 5 Brands';
- font-weight: 400; }
-
-.fa.fa-renren {
- font-family: 'Font Awesome 5 Brands';
- font-weight: 400; }
-
-.fa.fa-pagelines {
- font-family: 'Font Awesome 5 Brands';
- font-weight: 400; }
-
-.fa.fa-stack-exchange {
- font-family: 'Font Awesome 5 Brands';
- font-weight: 400; }
-
-.fa.fa-arrow-circle-o-right {
- font-family: 'Font Awesome 5 Free';
- font-weight: 400; }
-
-.fa.fa-arrow-circle-o-right:before {
- content: "\f35a"; }
-
-.fa.fa-arrow-circle-o-left {
- font-family: 'Font Awesome 5 Free';
- font-weight: 400; }
-
-.fa.fa-arrow-circle-o-left:before {
- content: "\f359"; }
-
-.fa.fa-caret-square-o-left {
- font-family: 'Font Awesome 5 Free';
- font-weight: 400; }
-
-.fa.fa-caret-square-o-left:before {
- content: "\f191"; }
-
-.fa.fa-toggle-left {
- font-family: 'Font Awesome 5 Free';
- font-weight: 400; }
-
-.fa.fa-toggle-left:before {
- content: "\f191"; }
-
-.fa.fa-dot-circle-o {
- font-family: 'Font Awesome 5 Free';
- font-weight: 400; }
-
-.fa.fa-dot-circle-o:before {
- content: "\f192"; }
-
-.fa.fa-vimeo-square {
- font-family: 'Font Awesome 5 Brands';
- font-weight: 400; }
-
-.fa.fa-try:before {
- content: "\f195"; }
-
-.fa.fa-turkish-lira:before {
- content: "\f195"; }
-
-.fa.fa-plus-square-o {
- font-family: 'Font Awesome 5 Free';
- font-weight: 400; }
-
-.fa.fa-plus-square-o:before {
- content: "\f0fe"; }
-
-.fa.fa-slack {
- font-family: 'Font Awesome 5 Brands';
- font-weight: 400; }
-
-.fa.fa-wordpress {
- font-family: 'Font Awesome 5 Brands';
- font-weight: 400; }
-
-.fa.fa-openid {
- font-family: 'Font Awesome 5 Brands';
- font-weight: 400; }
-
-.fa.fa-institution:before {
- content: "\f19c"; }
-
-.fa.fa-bank:before {
- content: "\f19c"; }
-
-.fa.fa-mortar-board:before {
- content: "\f19d"; }
-
-.fa.fa-yahoo {
- font-family: 'Font Awesome 5 Brands';
- font-weight: 400; }
-
-.fa.fa-google {
- font-family: 'Font Awesome 5 Brands';
- font-weight: 400; }
-
-.fa.fa-reddit {
- font-family: 'Font Awesome 5 Brands';
- font-weight: 400; }
-
-.fa.fa-reddit-square {
- font-family: 'Font Awesome 5 Brands';
- font-weight: 400; }
-
-.fa.fa-stumbleupon-circle {
- font-family: 'Font Awesome 5 Brands';
- font-weight: 400; }
-
-.fa.fa-stumbleupon {
- font-family: 'Font Awesome 5 Brands';
- font-weight: 400; }
-
-.fa.fa-delicious {
- font-family: 'Font Awesome 5 Brands';
- font-weight: 400; }
-
-.fa.fa-digg {
- font-family: 'Font Awesome 5 Brands';
- font-weight: 400; }
-
-.fa.fa-pied-piper-pp {
- font-family: 'Font Awesome 5 Brands';
- font-weight: 400; }
-
-.fa.fa-pied-piper-alt {
- font-family: 'Font Awesome 5 Brands';
- font-weight: 400; }
-
-.fa.fa-drupal {
- font-family: 'Font Awesome 5 Brands';
- font-weight: 400; }
-
-.fa.fa-joomla {
- font-family: 'Font Awesome 5 Brands';
- font-weight: 400; }
-
-.fa.fa-spoon:before {
- content: "\f2e5"; }
-
-.fa.fa-behance {
- font-family: 'Font Awesome 5 Brands';
- font-weight: 400; }
-
-.fa.fa-behance-square {
- font-family: 'Font Awesome 5 Brands';
- font-weight: 400; }
-
-.fa.fa-steam {
- font-family: 'Font Awesome 5 Brands';
- font-weight: 400; }
-
-.fa.fa-steam-square {
- font-family: 'Font Awesome 5 Brands';
- font-weight: 400; }
-
-.fa.fa-automobile:before {
- content: "\f1b9"; }
-
-.fa.fa-cab:before {
- content: "\f1ba"; }
-
-.fa.fa-envelope-o {
- font-family: 'Font Awesome 5 Free';
- font-weight: 400; }
-
-.fa.fa-envelope-o:before {
- content: "\f0e0"; }
-
-.fa.fa-deviantart {
- font-family: 'Font Awesome 5 Brands';
- font-weight: 400; }
-
-.fa.fa-soundcloud {
- font-family: 'Font Awesome 5 Brands';
- font-weight: 400; }
-
-.fa.fa-file-pdf-o {
- font-family: 'Font Awesome 5 Free';
- font-weight: 400; }
-
-.fa.fa-file-pdf-o:before {
- content: "\f1c1"; }
-
-.fa.fa-file-word-o {
- font-family: 'Font Awesome 5 Free';
- font-weight: 400; }
-
-.fa.fa-file-word-o:before {
- content: "\f1c2"; }
-
-.fa.fa-file-excel-o {
- font-family: 'Font Awesome 5 Free';
- font-weight: 400; }
-
-.fa.fa-file-excel-o:before {
- content: "\f1c3"; }
-
-.fa.fa-file-powerpoint-o {
- font-family: 'Font Awesome 5 Free';
- font-weight: 400; }
-
-.fa.fa-file-powerpoint-o:before {
- content: "\f1c4"; }
-
-.fa.fa-file-image-o {
- font-family: 'Font Awesome 5 Free';
- font-weight: 400; }
-
-.fa.fa-file-image-o:before {
- content: "\f1c5"; }
-
-.fa.fa-file-photo-o {
- font-family: 'Font Awesome 5 Free';
- font-weight: 400; }
-
-.fa.fa-file-photo-o:before {
- content: "\f1c5"; }
-
-.fa.fa-file-picture-o {
- font-family: 'Font Awesome 5 Free';
- font-weight: 400; }
-
-.fa.fa-file-picture-o:before {
- content: "\f1c5"; }
-
-.fa.fa-file-archive-o {
- font-family: 'Font Awesome 5 Free';
- font-weight: 400; }
-
-.fa.fa-file-archive-o:before {
- content: "\f1c6"; }
-
-.fa.fa-file-zip-o {
- font-family: 'Font Awesome 5 Free';
- font-weight: 400; }
-
-.fa.fa-file-zip-o:before {
- content: "\f1c6"; }
-
-.fa.fa-file-audio-o {
- font-family: 'Font Awesome 5 Free';
- font-weight: 400; }
-
-.fa.fa-file-audio-o:before {
- content: "\f1c7"; }
-
-.fa.fa-file-sound-o {
- font-family: 'Font Awesome 5 Free';
- font-weight: 400; }
-
-.fa.fa-file-sound-o:before {
- content: "\f1c7"; }
-
-.fa.fa-file-video-o {
- font-family: 'Font Awesome 5 Free';
- font-weight: 400; }
-
-.fa.fa-file-video-o:before {
- content: "\f1c8"; }
-
-.fa.fa-file-movie-o {
- font-family: 'Font Awesome 5 Free';
- font-weight: 400; }
-
-.fa.fa-file-movie-o:before {
- content: "\f1c8"; }
-
-.fa.fa-file-code-o {
- font-family: 'Font Awesome 5 Free';
- font-weight: 400; }
-
-.fa.fa-file-code-o:before {
- content: "\f1c9"; }
-
-.fa.fa-vine {
- font-family: 'Font Awesome 5 Brands';
- font-weight: 400; }
-
-.fa.fa-codepen {
- font-family: 'Font Awesome 5 Brands';
- font-weight: 400; }
-
-.fa.fa-jsfiddle {
- font-family: 'Font Awesome 5 Brands';
- font-weight: 400; }
-
-.fa.fa-life-ring {
- font-family: 'Font Awesome 5 Free';
- font-weight: 400; }
-
-.fa.fa-life-bouy {
- font-family: 'Font Awesome 5 Free';
- font-weight: 400; }
-
-.fa.fa-life-bouy:before {
- content: "\f1cd"; }
-
-.fa.fa-life-buoy {
- font-family: 'Font Awesome 5 Free';
- font-weight: 400; }
-
-.fa.fa-life-buoy:before {
- content: "\f1cd"; }
-
-.fa.fa-life-saver {
- font-family: 'Font Awesome 5 Free';
- font-weight: 400; }
-
-.fa.fa-life-saver:before {
- content: "\f1cd"; }
-
-.fa.fa-support {
- font-family: 'Font Awesome 5 Free';
- font-weight: 400; }
-
-.fa.fa-support:before {
- content: "\f1cd"; }
-
-.fa.fa-circle-o-notch:before {
- content: "\f1ce"; }
-
-.fa.fa-rebel {
- font-family: 'Font Awesome 5 Brands';
- font-weight: 400; }
-
-.fa.fa-ra {
- font-family: 'Font Awesome 5 Brands';
- font-weight: 400; }
-
-.fa.fa-ra:before {
- content: "\f1d0"; }
-
-.fa.fa-resistance {
- font-family: 'Font Awesome 5 Brands';
- font-weight: 400; }
-
-.fa.fa-resistance:before {
- content: "\f1d0"; }
-
-.fa.fa-empire {
- font-family: 'Font Awesome 5 Brands';
- font-weight: 400; }
-
-.fa.fa-ge {
- font-family: 'Font Awesome 5 Brands';
- font-weight: 400; }
-
-.fa.fa-ge:before {
- content: "\f1d1"; }
-
-.fa.fa-git-square {
- font-family: 'Font Awesome 5 Brands';
- font-weight: 400; }
-
-.fa.fa-git {
- font-family: 'Font Awesome 5 Brands';
- font-weight: 400; }
-
-.fa.fa-hacker-news {
- font-family: 'Font Awesome 5 Brands';
- font-weight: 400; }
-
-.fa.fa-y-combinator-square {
- font-family: 'Font Awesome 5 Brands';
- font-weight: 400; }
-
-.fa.fa-y-combinator-square:before {
- content: "\f1d4"; }
-
-.fa.fa-yc-square {
- font-family: 'Font Awesome 5 Brands';
- font-weight: 400; }
-
-.fa.fa-yc-square:before {
- content: "\f1d4"; }
-
-.fa.fa-tencent-weibo {
- font-family: 'Font Awesome 5 Brands';
- font-weight: 400; }
-
-.fa.fa-qq {
- font-family: 'Font Awesome 5 Brands';
- font-weight: 400; }
-
-.fa.fa-weixin {
- font-family: 'Font Awesome 5 Brands';
- font-weight: 400; }
-
-.fa.fa-wechat {
- font-family: 'Font Awesome 5 Brands';
- font-weight: 400; }
-
-.fa.fa-wechat:before {
- content: "\f1d7"; }
-
-.fa.fa-send:before {
- content: "\f1d8"; }
-
-.fa.fa-paper-plane-o {
- font-family: 'Font Awesome 5 Free';
- font-weight: 400; }
-
-.fa.fa-paper-plane-o:before {
- content: "\f1d8"; }
-
-.fa.fa-send-o {
- font-family: 'Font Awesome 5 Free';
- font-weight: 400; }
-
-.fa.fa-send-o:before {
- content: "\f1d8"; }
-
-.fa.fa-circle-thin {
- font-family: 'Font Awesome 5 Free';
- font-weight: 400; }
-
-.fa.fa-circle-thin:before {
- content: "\f111"; }
-
-.fa.fa-header:before {
- content: "\f1dc"; }
-
-.fa.fa-sliders:before {
- content: "\f1de"; }
-
-.fa.fa-futbol-o {
- font-family: 'Font Awesome 5 Free';
- font-weight: 400; }
-
-.fa.fa-futbol-o:before {
- content: "\f1e3"; }
-
-.fa.fa-soccer-ball-o {
- font-family: 'Font Awesome 5 Free';
- font-weight: 400; }
-
-.fa.fa-soccer-ball-o:before {
- content: "\f1e3"; }
-
-.fa.fa-slideshare {
- font-family: 'Font Awesome 5 Brands';
- font-weight: 400; }
-
-.fa.fa-twitch {
- font-family: 'Font Awesome 5 Brands';
- font-weight: 400; }
-
-.fa.fa-yelp {
- font-family: 'Font Awesome 5 Brands';
- font-weight: 400; }
-
-.fa.fa-newspaper-o {
- font-family: 'Font Awesome 5 Free';
- font-weight: 400; }
-
-.fa.fa-newspaper-o:before {
- content: "\f1ea"; }
-
-.fa.fa-paypal {
- font-family: 'Font Awesome 5 Brands';
- font-weight: 400; }
-
-.fa.fa-google-wallet {
- font-family: 'Font Awesome 5 Brands';
- font-weight: 400; }
-
-.fa.fa-cc-visa {
- font-family: 'Font Awesome 5 Brands';
- font-weight: 400; }
-
-.fa.fa-cc-mastercard {
- font-family: 'Font Awesome 5 Brands';
- font-weight: 400; }
-
-.fa.fa-cc-discover {
- font-family: 'Font Awesome 5 Brands';
- font-weight: 400; }
-
-.fa.fa-cc-amex {
- font-family: 'Font Awesome 5 Brands';
- font-weight: 400; }
-
-.fa.fa-cc-paypal {
- font-family: 'Font Awesome 5 Brands';
- font-weight: 400; }
-
-.fa.fa-cc-stripe {
- font-family: 'Font Awesome 5 Brands';
- font-weight: 400; }
-
-.fa.fa-bell-slash-o {
- font-family: 'Font Awesome 5 Free';
- font-weight: 400; }
-
-.fa.fa-bell-slash-o:before {
- content: "\f1f6"; }
-
-.fa.fa-trash:before {
- content: "\f2ed"; }
-
-.fa.fa-copyright {
- font-family: 'Font Awesome 5 Free';
- font-weight: 400; }
-
-.fa.fa-eyedropper:before {
- content: "\f1fb"; }
-
-.fa.fa-area-chart:before {
- content: "\f1fe"; }
-
-.fa.fa-pie-chart:before {
- content: "\f200"; }
-
-.fa.fa-line-chart:before {
- content: "\f201"; }
-
-.fa.fa-lastfm {
- font-family: 'Font Awesome 5 Brands';
- font-weight: 400; }
-
-.fa.fa-lastfm-square {
- font-family: 'Font Awesome 5 Brands';
- font-weight: 400; }
-
-.fa.fa-ioxhost {
- font-family: 'Font Awesome 5 Brands';
- font-weight: 400; }
-
-.fa.fa-angellist {
- font-family: 'Font Awesome 5 Brands';
- font-weight: 400; }
-
-.fa.fa-cc {
- font-family: 'Font Awesome 5 Free';
- font-weight: 400; }
-
-.fa.fa-cc:before {
- content: "\f20a"; }
-
-.fa.fa-ils:before {
- content: "\f20b"; }
-
-.fa.fa-shekel:before {
- content: "\f20b"; }
-
-.fa.fa-sheqel:before {
- content: "\f20b"; }
-
-.fa.fa-meanpath {
- font-family: 'Font Awesome 5 Brands';
- font-weight: 400; }
-
-.fa.fa-meanpath:before {
- content: "\f2b4"; }
-
-.fa.fa-buysellads {
- font-family: 'Font Awesome 5 Brands';
- font-weight: 400; }
-
-.fa.fa-connectdevelop {
- font-family: 'Font Awesome 5 Brands';
- font-weight: 400; }
-
-.fa.fa-dashcube {
- font-family: 'Font Awesome 5 Brands';
- font-weight: 400; }
-
-.fa.fa-forumbee {
- font-family: 'Font Awesome 5 Brands';
- font-weight: 400; }
-
-.fa.fa-leanpub {
- font-family: 'Font Awesome 5 Brands';
- font-weight: 400; }
-
-.fa.fa-sellsy {
- font-family: 'Font Awesome 5 Brands';
- font-weight: 400; }
-
-.fa.fa-shirtsinbulk {
- font-family: 'Font Awesome 5 Brands';
- font-weight: 400; }
-
-.fa.fa-simplybuilt {
- font-family: 'Font Awesome 5 Brands';
- font-weight: 400; }
-
-.fa.fa-skyatlas {
- font-family: 'Font Awesome 5 Brands';
- font-weight: 400; }
-
-.fa.fa-diamond {
- font-family: 'Font Awesome 5 Free';
- font-weight: 400; }
-
-.fa.fa-diamond:before {
- content: "\f3a5"; }
-
-.fa.fa-intersex:before {
- content: "\f224"; }
-
-.fa.fa-facebook-official {
- font-family: 'Font Awesome 5 Brands';
- font-weight: 400; }
-
-.fa.fa-facebook-official:before {
- content: "\f09a"; }
-
-.fa.fa-pinterest-p {
- font-family: 'Font Awesome 5 Brands';
- font-weight: 400; }
-
-.fa.fa-whatsapp {
- font-family: 'Font Awesome 5 Brands';
- font-weight: 400; }
-
-.fa.fa-hotel:before {
- content: "\f236"; }
-
-.fa.fa-viacoin {
- font-family: 'Font Awesome 5 Brands';
- font-weight: 400; }
-
-.fa.fa-medium {
- font-family: 'Font Awesome 5 Brands';
- font-weight: 400; }
-
-.fa.fa-y-combinator {
- font-family: 'Font Awesome 5 Brands';
- font-weight: 400; }
-
-.fa.fa-yc {
- font-family: 'Font Awesome 5 Brands';
- font-weight: 400; }
-
-.fa.fa-yc:before {
- content: "\f23b"; }
-
-.fa.fa-optin-monster {
- font-family: 'Font Awesome 5 Brands';
- font-weight: 400; }
-
-.fa.fa-opencart {
- font-family: 'Font Awesome 5 Brands';
- font-weight: 400; }
-
-.fa.fa-expeditedssl {
- font-family: 'Font Awesome 5 Brands';
- font-weight: 400; }
-
-.fa.fa-battery-4:before {
- content: "\f240"; }
-
-.fa.fa-battery:before {
- content: "\f240"; }
-
-.fa.fa-battery-3:before {
- content: "\f241"; }
-
-.fa.fa-battery-2:before {
- content: "\f242"; }
-
-.fa.fa-battery-1:before {
- content: "\f243"; }
-
-.fa.fa-battery-0:before {
- content: "\f244"; }
-
-.fa.fa-object-group {
- font-family: 'Font Awesome 5 Free';
- font-weight: 400; }
-
-.fa.fa-object-ungroup {
- font-family: 'Font Awesome 5 Free';
- font-weight: 400; }
-
-.fa.fa-sticky-note-o {
- font-family: 'Font Awesome 5 Free';
- font-weight: 400; }
-
-.fa.fa-sticky-note-o:before {
- content: "\f249"; }
-
-.fa.fa-cc-jcb {
- font-family: 'Font Awesome 5 Brands';
- font-weight: 400; }
-
-.fa.fa-cc-diners-club {
- font-family: 'Font Awesome 5 Brands';
- font-weight: 400; }
-
-.fa.fa-clone {
- font-family: 'Font Awesome 5 Free';
- font-weight: 400; }
-
-.fa.fa-hourglass-o {
- font-family: 'Font Awesome 5 Free';
- font-weight: 400; }
-
-.fa.fa-hourglass-o:before {
- content: "\f254"; }
-
-.fa.fa-hourglass-1:before {
- content: "\f251"; }
-
-.fa.fa-hourglass-2:before {
- content: "\f252"; }
-
-.fa.fa-hourglass-3:before {
- content: "\f253"; }
-
-.fa.fa-hand-rock-o {
- font-family: 'Font Awesome 5 Free';
- font-weight: 400; }
-
-.fa.fa-hand-rock-o:before {
- content: "\f255"; }
-
-.fa.fa-hand-grab-o {
- font-family: 'Font Awesome 5 Free';
- font-weight: 400; }
-
-.fa.fa-hand-grab-o:before {
- content: "\f255"; }
-
-.fa.fa-hand-paper-o {
- font-family: 'Font Awesome 5 Free';
- font-weight: 400; }
-
-.fa.fa-hand-paper-o:before {
- content: "\f256"; }
-
-.fa.fa-hand-stop-o {
- font-family: 'Font Awesome 5 Free';
- font-weight: 400; }
-
-.fa.fa-hand-stop-o:before {
- content: "\f256"; }
-
-.fa.fa-hand-scissors-o {
- font-family: 'Font Awesome 5 Free';
- font-weight: 400; }
-
-.fa.fa-hand-scissors-o:before {
- content: "\f257"; }
-
-.fa.fa-hand-lizard-o {
- font-family: 'Font Awesome 5 Free';
- font-weight: 400; }
-
-.fa.fa-hand-lizard-o:before {
- content: "\f258"; }
-
-.fa.fa-hand-spock-o {
- font-family: 'Font Awesome 5 Free';
- font-weight: 400; }
-
-.fa.fa-hand-spock-o:before {
- content: "\f259"; }
-
-.fa.fa-hand-pointer-o {
- font-family: 'Font Awesome 5 Free';
- font-weight: 400; }
-
-.fa.fa-hand-pointer-o:before {
- content: "\f25a"; }
-
-.fa.fa-hand-peace-o {
- font-family: 'Font Awesome 5 Free';
- font-weight: 400; }
-
-.fa.fa-hand-peace-o:before {
- content: "\f25b"; }
-
-.fa.fa-registered {
- font-family: 'Font Awesome 5 Free';
- font-weight: 400; }
-
-.fa.fa-creative-commons {
- font-family: 'Font Awesome 5 Brands';
- font-weight: 400; }
-
-.fa.fa-gg {
- font-family: 'Font Awesome 5 Brands';
- font-weight: 400; }
-
-.fa.fa-gg-circle {
- font-family: 'Font Awesome 5 Brands';
- font-weight: 400; }
-
-.fa.fa-tripadvisor {
- font-family: 'Font Awesome 5 Brands';
- font-weight: 400; }
-
-.fa.fa-odnoklassniki {
- font-family: 'Font Awesome 5 Brands';
- font-weight: 400; }
-
-.fa.fa-odnoklassniki-square {
- font-family: 'Font Awesome 5 Brands';
- font-weight: 400; }
-
-.fa.fa-get-pocket {
- font-family: 'Font Awesome 5 Brands';
- font-weight: 400; }
-
-.fa.fa-wikipedia-w {
- font-family: 'Font Awesome 5 Brands';
- font-weight: 400; }
-
-.fa.fa-safari {
- font-family: 'Font Awesome 5 Brands';
- font-weight: 400; }
-
-.fa.fa-chrome {
- font-family: 'Font Awesome 5 Brands';
- font-weight: 400; }
-
-.fa.fa-firefox {
- font-family: 'Font Awesome 5 Brands';
- font-weight: 400; }
-
-.fa.fa-opera {
- font-family: 'Font Awesome 5 Brands';
- font-weight: 400; }
-
-.fa.fa-internet-explorer {
- font-family: 'Font Awesome 5 Brands';
- font-weight: 400; }
-
-.fa.fa-television:before {
- content: "\f26c"; }
-
-.fa.fa-contao {
- font-family: 'Font Awesome 5 Brands';
- font-weight: 400; }
-
-.fa.fa-500px {
- font-family: 'Font Awesome 5 Brands';
- font-weight: 400; }
-
-.fa.fa-amazon {
- font-family: 'Font Awesome 5 Brands';
- font-weight: 400; }
-
-.fa.fa-calendar-plus-o {
- font-family: 'Font Awesome 5 Free';
- font-weight: 400; }
-
-.fa.fa-calendar-plus-o:before {
- content: "\f271"; }
-
-.fa.fa-calendar-minus-o {
- font-family: 'Font Awesome 5 Free';
- font-weight: 400; }
-
-.fa.fa-calendar-minus-o:before {
- content: "\f272"; }
-
-.fa.fa-calendar-times-o {
- font-family: 'Font Awesome 5 Free';
- font-weight: 400; }
-
-.fa.fa-calendar-times-o:before {
- content: "\f273"; }
-
-.fa.fa-calendar-check-o {
- font-family: 'Font Awesome 5 Free';
- font-weight: 400; }
-
-.fa.fa-calendar-check-o:before {
- content: "\f274"; }
-
-.fa.fa-map-o {
- font-family: 'Font Awesome 5 Free';
- font-weight: 400; }
-
-.fa.fa-map-o:before {
- content: "\f279"; }
-
-.fa.fa-commenting:before {
- content: "\f4ad"; }
-
-.fa.fa-commenting-o {
- font-family: 'Font Awesome 5 Free';
- font-weight: 400; }
-
-.fa.fa-commenting-o:before {
- content: "\f4ad"; }
-
-.fa.fa-houzz {
- font-family: 'Font Awesome 5 Brands';
- font-weight: 400; }
-
-.fa.fa-vimeo {
- font-family: 'Font Awesome 5 Brands';
- font-weight: 400; }
-
-.fa.fa-vimeo:before {
- content: "\f27d"; }
-
-.fa.fa-black-tie {
- font-family: 'Font Awesome 5 Brands';
- font-weight: 400; }
-
-.fa.fa-fonticons {
- font-family: 'Font Awesome 5 Brands';
- font-weight: 400; }
-
-.fa.fa-reddit-alien {
- font-family: 'Font Awesome 5 Brands';
- font-weight: 400; }
-
-.fa.fa-edge {
- font-family: 'Font Awesome 5 Brands';
- font-weight: 400; }
-
-.fa.fa-credit-card-alt:before {
- content: "\f09d"; }
-
-.fa.fa-codiepie {
- font-family: 'Font Awesome 5 Brands';
- font-weight: 400; }
-
-.fa.fa-modx {
- font-family: 'Font Awesome 5 Brands';
- font-weight: 400; }
-
-.fa.fa-fort-awesome {
- font-family: 'Font Awesome 5 Brands';
- font-weight: 400; }
-
-.fa.fa-usb {
- font-family: 'Font Awesome 5 Brands';
- font-weight: 400; }
-
-.fa.fa-product-hunt {
- font-family: 'Font Awesome 5 Brands';
- font-weight: 400; }
-
-.fa.fa-mixcloud {
- font-family: 'Font Awesome 5 Brands';
- font-weight: 400; }
-
-.fa.fa-scribd {
- font-family: 'Font Awesome 5 Brands';
- font-weight: 400; }
-
-.fa.fa-pause-circle-o {
- font-family: 'Font Awesome 5 Free';
- font-weight: 400; }
-
-.fa.fa-pause-circle-o:before {
- content: "\f28b"; }
-
-.fa.fa-stop-circle-o {
- font-family: 'Font Awesome 5 Free';
- font-weight: 400; }
-
-.fa.fa-stop-circle-o:before {
- content: "\f28d"; }
-
-.fa.fa-bluetooth {
- font-family: 'Font Awesome 5 Brands';
- font-weight: 400; }
-
-.fa.fa-bluetooth-b {
- font-family: 'Font Awesome 5 Brands';
- font-weight: 400; }
-
-.fa.fa-gitlab {
- font-family: 'Font Awesome 5 Brands';
- font-weight: 400; }
-
-.fa.fa-wpbeginner {
- font-family: 'Font Awesome 5 Brands';
- font-weight: 400; }
-
-.fa.fa-wpforms {
- font-family: 'Font Awesome 5 Brands';
- font-weight: 400; }
-
-.fa.fa-envira {
- font-family: 'Font Awesome 5 Brands';
- font-weight: 400; }
-
-.fa.fa-wheelchair-alt {
- font-family: 'Font Awesome 5 Brands';
- font-weight: 400; }
-
-.fa.fa-wheelchair-alt:before {
- content: "\f368"; }
-
-.fa.fa-question-circle-o {
- font-family: 'Font Awesome 5 Free';
- font-weight: 400; }
-
-.fa.fa-question-circle-o:before {
- content: "\f059"; }
-
-.fa.fa-volume-control-phone:before {
- content: "\f2a0"; }
-
-.fa.fa-asl-interpreting:before {
- content: "\f2a3"; }
-
-.fa.fa-deafness:before {
- content: "\f2a4"; }
-
-.fa.fa-hard-of-hearing:before {
- content: "\f2a4"; }
-
-.fa.fa-glide {
- font-family: 'Font Awesome 5 Brands';
- font-weight: 400; }
-
-.fa.fa-glide-g {
- font-family: 'Font Awesome 5 Brands';
- font-weight: 400; }
-
-.fa.fa-signing:before {
- content: "\f2a7"; }
-
-.fa.fa-viadeo {
- font-family: 'Font Awesome 5 Brands';
- font-weight: 400; }
-
-.fa.fa-viadeo-square {
- font-family: 'Font Awesome 5 Brands';
- font-weight: 400; }
-
-.fa.fa-snapchat {
- font-family: 'Font Awesome 5 Brands';
- font-weight: 400; }
-
-.fa.fa-snapchat-ghost {
- font-family: 'Font Awesome 5 Brands';
- font-weight: 400; }
-
-.fa.fa-snapchat-square {
- font-family: 'Font Awesome 5 Brands';
- font-weight: 400; }
-
-.fa.fa-pied-piper {
- font-family: 'Font Awesome 5 Brands';
- font-weight: 400; }
-
-.fa.fa-first-order {
- font-family: 'Font Awesome 5 Brands';
- font-weight: 400; }
-
-.fa.fa-yoast {
- font-family: 'Font Awesome 5 Brands';
- font-weight: 400; }
-
-.fa.fa-themeisle {
- font-family: 'Font Awesome 5 Brands';
- font-weight: 400; }
-
-.fa.fa-google-plus-official {
- font-family: 'Font Awesome 5 Brands';
- font-weight: 400; }
-
-.fa.fa-google-plus-official:before {
- content: "\f2b3"; }
-
-.fa.fa-google-plus-circle {
- font-family: 'Font Awesome 5 Brands';
- font-weight: 400; }
-
-.fa.fa-google-plus-circle:before {
- content: "\f2b3"; }
-
-.fa.fa-font-awesome {
- font-family: 'Font Awesome 5 Brands';
- font-weight: 400; }
-
-.fa.fa-fa {
- font-family: 'Font Awesome 5 Brands';
- font-weight: 400; }
-
-.fa.fa-fa:before {
- content: "\f2b4"; }
-
-.fa.fa-handshake-o {
- font-family: 'Font Awesome 5 Free';
- font-weight: 400; }
-
-.fa.fa-handshake-o:before {
- content: "\f2b5"; }
-
-.fa.fa-envelope-open-o {
- font-family: 'Font Awesome 5 Free';
- font-weight: 400; }
-
-.fa.fa-envelope-open-o:before {
- content: "\f2b6"; }
-
-.fa.fa-linode {
- font-family: 'Font Awesome 5 Brands';
- font-weight: 400; }
-
-.fa.fa-address-book-o {
- font-family: 'Font Awesome 5 Free';
- font-weight: 400; }
-
-.fa.fa-address-book-o:before {
- content: "\f2b9"; }
-
-.fa.fa-vcard:before {
- content: "\f2bb"; }
-
-.fa.fa-address-card-o {
- font-family: 'Font Awesome 5 Free';
- font-weight: 400; }
-
-.fa.fa-address-card-o:before {
- content: "\f2bb"; }
-
-.fa.fa-vcard-o {
- font-family: 'Font Awesome 5 Free';
- font-weight: 400; }
-
-.fa.fa-vcard-o:before {
- content: "\f2bb"; }
-
-.fa.fa-user-circle-o {
- font-family: 'Font Awesome 5 Free';
- font-weight: 400; }
-
-.fa.fa-user-circle-o:before {
- content: "\f2bd"; }
-
-.fa.fa-user-o {
- font-family: 'Font Awesome 5 Free';
- font-weight: 400; }
-
-.fa.fa-user-o:before {
- content: "\f007"; }
-
-.fa.fa-id-badge {
- font-family: 'Font Awesome 5 Free';
- font-weight: 400; }
-
-.fa.fa-drivers-license:before {
- content: "\f2c2"; }
-
-.fa.fa-id-card-o {
- font-family: 'Font Awesome 5 Free';
- font-weight: 400; }
-
-.fa.fa-id-card-o:before {
- content: "\f2c2"; }
-
-.fa.fa-drivers-license-o {
- font-family: 'Font Awesome 5 Free';
- font-weight: 400; }
-
-.fa.fa-drivers-license-o:before {
- content: "\f2c2"; }
-
-.fa.fa-quora {
- font-family: 'Font Awesome 5 Brands';
- font-weight: 400; }
-
-.fa.fa-free-code-camp {
- font-family: 'Font Awesome 5 Brands';
- font-weight: 400; }
-
-.fa.fa-telegram {
- font-family: 'Font Awesome 5 Brands';
- font-weight: 400; }
-
-.fa.fa-thermometer-4:before {
- content: "\f2c7"; }
-
-.fa.fa-thermometer:before {
- content: "\f2c7"; }
-
-.fa.fa-thermometer-3:before {
- content: "\f2c8"; }
-
-.fa.fa-thermometer-2:before {
- content: "\f2c9"; }
-
-.fa.fa-thermometer-1:before {
- content: "\f2ca"; }
-
-.fa.fa-thermometer-0:before {
- content: "\f2cb"; }
-
-.fa.fa-bathtub:before {
- content: "\f2cd"; }
-
-.fa.fa-s15:before {
- content: "\f2cd"; }
-
-.fa.fa-window-maximize {
- font-family: 'Font Awesome 5 Free';
- font-weight: 400; }
-
-.fa.fa-window-restore {
- font-family: 'Font Awesome 5 Free';
- font-weight: 400; }
-
-.fa.fa-times-rectangle:before {
- content: "\f410"; }
-
-.fa.fa-window-close-o {
- font-family: 'Font Awesome 5 Free';
- font-weight: 400; }
-
-.fa.fa-window-close-o:before {
- content: "\f410"; }
-
-.fa.fa-times-rectangle-o {
- font-family: 'Font Awesome 5 Free';
- font-weight: 400; }
-
-.fa.fa-times-rectangle-o:before {
- content: "\f410"; }
-
-.fa.fa-bandcamp {
- font-family: 'Font Awesome 5 Brands';
- font-weight: 400; }
-
-.fa.fa-grav {
- font-family: 'Font Awesome 5 Brands';
- font-weight: 400; }
-
-.fa.fa-etsy {
- font-family: 'Font Awesome 5 Brands';
- font-weight: 400; }
-
-.fa.fa-imdb {
- font-family: 'Font Awesome 5 Brands';
- font-weight: 400; }
-
-.fa.fa-ravelry {
- font-family: 'Font Awesome 5 Brands';
- font-weight: 400; }
-
-.fa.fa-eercast {
- font-family: 'Font Awesome 5 Brands';
- font-weight: 400; }
-
-.fa.fa-eercast:before {
- content: "\f2da"; }
-
-.fa.fa-snowflake-o {
- font-family: 'Font Awesome 5 Free';
- font-weight: 400; }
-
-.fa.fa-snowflake-o:before {
- content: "\f2dc"; }
-
-.fa.fa-superpowers {
- font-family: 'Font Awesome 5 Brands';
- font-weight: 400; }
-
-.fa.fa-wpexplorer {
- font-family: 'Font Awesome 5 Brands';
- font-weight: 400; }
-
-.fa.fa-spotify {
- font-family: 'Font Awesome 5 Brands';
- font-weight: 400; }
diff --git a/shopyo/static/fontawesome/css/v4-shims.min.css b/shopyo/static/fontawesome/css/v4-shims.min.css
deleted file mode 100644
index 06c24e9..0000000
--- a/shopyo/static/fontawesome/css/v4-shims.min.css
+++ /dev/null
@@ -1 +0,0 @@
-.fa.fa-glass:before{content:"\f000"}.fa.fa-meetup{font-family:"Font Awesome 5 Brands";font-weight:400}.fa.fa-star-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-star-o:before{content:"\f005"}.fa.fa-close:before,.fa.fa-remove:before{content:"\f00d"}.fa.fa-gear:before{content:"\f013"}.fa.fa-trash-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-trash-o:before{content:"\f2ed"}.fa.fa-file-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-file-o:before{content:"\f15b"}.fa.fa-clock-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-clock-o:before{content:"\f017"}.fa.fa-arrow-circle-o-down{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-arrow-circle-o-down:before{content:"\f358"}.fa.fa-arrow-circle-o-up{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-arrow-circle-o-up:before{content:"\f35b"}.fa.fa-play-circle-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-play-circle-o:before{content:"\f144"}.fa.fa-repeat:before,.fa.fa-rotate-right:before{content:"\f01e"}.fa.fa-refresh:before{content:"\f021"}.fa.fa-list-alt{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-dedent:before{content:"\f03b"}.fa.fa-video-camera:before{content:"\f03d"}.fa.fa-picture-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-picture-o:before{content:"\f03e"}.fa.fa-photo{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-photo:before{content:"\f03e"}.fa.fa-image{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-image:before{content:"\f03e"}.fa.fa-pencil:before{content:"\f303"}.fa.fa-map-marker:before{content:"\f3c5"}.fa.fa-pencil-square-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-pencil-square-o:before{content:"\f044"}.fa.fa-share-square-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-share-square-o:before{content:"\f14d"}.fa.fa-check-square-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-check-square-o:before{content:"\f14a"}.fa.fa-arrows:before{content:"\f0b2"}.fa.fa-times-circle-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-times-circle-o:before{content:"\f057"}.fa.fa-check-circle-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-check-circle-o:before{content:"\f058"}.fa.fa-mail-forward:before{content:"\f064"}.fa.fa-eye,.fa.fa-eye-slash{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-warning:before{content:"\f071"}.fa.fa-calendar:before{content:"\f073"}.fa.fa-arrows-v:before{content:"\f338"}.fa.fa-arrows-h:before{content:"\f337"}.fa.fa-bar-chart{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-bar-chart:before{content:"\f080"}.fa.fa-bar-chart-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-bar-chart-o:before{content:"\f080"}.fa.fa-facebook-square,.fa.fa-twitter-square{font-family:"Font Awesome 5 Brands";font-weight:400}.fa.fa-gears:before{content:"\f085"}.fa.fa-thumbs-o-up{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-thumbs-o-up:before{content:"\f164"}.fa.fa-thumbs-o-down{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-thumbs-o-down:before{content:"\f165"}.fa.fa-heart-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-heart-o:before{content:"\f004"}.fa.fa-sign-out:before{content:"\f2f5"}.fa.fa-linkedin-square{font-family:"Font Awesome 5 Brands";font-weight:400}.fa.fa-linkedin-square:before{content:"\f08c"}.fa.fa-thumb-tack:before{content:"\f08d"}.fa.fa-external-link:before{content:"\f35d"}.fa.fa-sign-in:before{content:"\f2f6"}.fa.fa-github-square{font-family:"Font Awesome 5 Brands";font-weight:400}.fa.fa-lemon-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-lemon-o:before{content:"\f094"}.fa.fa-square-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-square-o:before{content:"\f0c8"}.fa.fa-bookmark-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-bookmark-o:before{content:"\f02e"}.fa.fa-facebook,.fa.fa-twitter{font-family:"Font Awesome 5 Brands";font-weight:400}.fa.fa-facebook:before{content:"\f39e"}.fa.fa-facebook-f{font-family:"Font Awesome 5 Brands";font-weight:400}.fa.fa-facebook-f:before{content:"\f39e"}.fa.fa-github{font-family:"Font Awesome 5 Brands";font-weight:400}.fa.fa-credit-card{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-feed:before{content:"\f09e"}.fa.fa-hdd-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-hdd-o:before{content:"\f0a0"}.fa.fa-hand-o-right{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-hand-o-right:before{content:"\f0a4"}.fa.fa-hand-o-left{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-hand-o-left:before{content:"\f0a5"}.fa.fa-hand-o-up{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-hand-o-up:before{content:"\f0a6"}.fa.fa-hand-o-down{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-hand-o-down:before{content:"\f0a7"}.fa.fa-arrows-alt:before{content:"\f31e"}.fa.fa-group:before{content:"\f0c0"}.fa.fa-chain:before{content:"\f0c1"}.fa.fa-scissors:before{content:"\f0c4"}.fa.fa-files-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-files-o:before{content:"\f0c5"}.fa.fa-floppy-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-floppy-o:before{content:"\f0c7"}.fa.fa-navicon:before,.fa.fa-reorder:before{content:"\f0c9"}.fa.fa-google-plus,.fa.fa-google-plus-square,.fa.fa-pinterest,.fa.fa-pinterest-square{font-family:"Font Awesome 5 Brands";font-weight:400}.fa.fa-google-plus:before{content:"\f0d5"}.fa.fa-money{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-money:before{content:"\f3d1"}.fa.fa-unsorted:before{content:"\f0dc"}.fa.fa-sort-desc:before{content:"\f0dd"}.fa.fa-sort-asc:before{content:"\f0de"}.fa.fa-linkedin{font-family:"Font Awesome 5 Brands";font-weight:400}.fa.fa-linkedin:before{content:"\f0e1"}.fa.fa-rotate-left:before{content:"\f0e2"}.fa.fa-legal:before{content:"\f0e3"}.fa.fa-dashboard:before,.fa.fa-tachometer:before{content:"\f3fd"}.fa.fa-comment-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-comment-o:before{content:"\f075"}.fa.fa-comments-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-comments-o:before{content:"\f086"}.fa.fa-flash:before{content:"\f0e7"}.fa.fa-clipboard,.fa.fa-paste{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-paste:before{content:"\f328"}.fa.fa-lightbulb-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-lightbulb-o:before{content:"\f0eb"}.fa.fa-exchange:before{content:"\f362"}.fa.fa-cloud-download:before{content:"\f381"}.fa.fa-cloud-upload:before{content:"\f382"}.fa.fa-bell-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-bell-o:before{content:"\f0f3"}.fa.fa-cutlery:before{content:"\f2e7"}.fa.fa-file-text-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-file-text-o:before{content:"\f15c"}.fa.fa-building-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-building-o:before{content:"\f1ad"}.fa.fa-hospital-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-hospital-o:before{content:"\f0f8"}.fa.fa-tablet:before{content:"\f3fa"}.fa.fa-mobile-phone:before,.fa.fa-mobile:before{content:"\f3cd"}.fa.fa-circle-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-circle-o:before{content:"\f111"}.fa.fa-mail-reply:before{content:"\f3e5"}.fa.fa-github-alt{font-family:"Font Awesome 5 Brands";font-weight:400}.fa.fa-folder-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-folder-o:before{content:"\f07b"}.fa.fa-folder-open-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-folder-open-o:before{content:"\f07c"}.fa.fa-smile-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-smile-o:before{content:"\f118"}.fa.fa-frown-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-frown-o:before{content:"\f119"}.fa.fa-meh-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-meh-o:before{content:"\f11a"}.fa.fa-keyboard-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-keyboard-o:before{content:"\f11c"}.fa.fa-flag-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-flag-o:before{content:"\f024"}.fa.fa-mail-reply-all:before{content:"\f122"}.fa.fa-star-half-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-star-half-o:before{content:"\f089"}.fa.fa-star-half-empty{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-star-half-empty:before{content:"\f089"}.fa.fa-star-half-full{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-star-half-full:before{content:"\f089"}.fa.fa-code-fork:before{content:"\f126"}.fa.fa-chain-broken:before{content:"\f127"}.fa.fa-shield:before{content:"\f3ed"}.fa.fa-calendar-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-calendar-o:before{content:"\f133"}.fa.fa-css3,.fa.fa-html5,.fa.fa-maxcdn{font-family:"Font Awesome 5 Brands";font-weight:400}.fa.fa-ticket:before{content:"\f3ff"}.fa.fa-minus-square-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-minus-square-o:before{content:"\f146"}.fa.fa-level-up:before{content:"\f3bf"}.fa.fa-level-down:before{content:"\f3be"}.fa.fa-pencil-square:before{content:"\f14b"}.fa.fa-external-link-square:before{content:"\f360"}.fa.fa-compass{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-caret-square-o-down{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-caret-square-o-down:before{content:"\f150"}.fa.fa-toggle-down{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-toggle-down:before{content:"\f150"}.fa.fa-caret-square-o-up{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-caret-square-o-up:before{content:"\f151"}.fa.fa-toggle-up{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-toggle-up:before{content:"\f151"}.fa.fa-caret-square-o-right{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-caret-square-o-right:before{content:"\f152"}.fa.fa-toggle-right{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-toggle-right:before{content:"\f152"}.fa.fa-eur:before,.fa.fa-euro:before{content:"\f153"}.fa.fa-gbp:before{content:"\f154"}.fa.fa-dollar:before,.fa.fa-usd:before{content:"\f155"}.fa.fa-inr:before,.fa.fa-rupee:before{content:"\f156"}.fa.fa-cny:before,.fa.fa-jpy:before,.fa.fa-rmb:before,.fa.fa-yen:before{content:"\f157"}.fa.fa-rouble:before,.fa.fa-rub:before,.fa.fa-ruble:before{content:"\f158"}.fa.fa-krw:before,.fa.fa-won:before{content:"\f159"}.fa.fa-bitcoin,.fa.fa-btc{font-family:"Font Awesome 5 Brands";font-weight:400}.fa.fa-bitcoin:before{content:"\f15a"}.fa.fa-file-text:before{content:"\f15c"}.fa.fa-sort-alpha-asc:before{content:"\f15d"}.fa.fa-sort-alpha-desc:before{content:"\f15e"}.fa.fa-sort-amount-asc:before{content:"\f160"}.fa.fa-sort-amount-desc:before{content:"\f161"}.fa.fa-sort-numeric-asc:before{content:"\f162"}.fa.fa-sort-numeric-desc:before{content:"\f163"}.fa.fa-xing,.fa.fa-xing-square,.fa.fa-youtube,.fa.fa-youtube-play,.fa.fa-youtube-square{font-family:"Font Awesome 5 Brands";font-weight:400}.fa.fa-youtube-play:before{content:"\f167"}.fa.fa-adn,.fa.fa-bitbucket,.fa.fa-bitbucket-square,.fa.fa-dropbox,.fa.fa-flickr,.fa.fa-instagram,.fa.fa-stack-overflow{font-family:"Font Awesome 5 Brands";font-weight:400}.fa.fa-bitbucket-square:before{content:"\f171"}.fa.fa-tumblr,.fa.fa-tumblr-square{font-family:"Font Awesome 5 Brands";font-weight:400}.fa.fa-long-arrow-down:before{content:"\f309"}.fa.fa-long-arrow-up:before{content:"\f30c"}.fa.fa-long-arrow-left:before{content:"\f30a"}.fa.fa-long-arrow-right:before{content:"\f30b"}.fa.fa-android,.fa.fa-apple,.fa.fa-dribbble,.fa.fa-foursquare,.fa.fa-gittip,.fa.fa-gratipay,.fa.fa-linux,.fa.fa-skype,.fa.fa-trello,.fa.fa-windows{font-family:"Font Awesome 5 Brands";font-weight:400}.fa.fa-gittip:before{content:"\f184"}.fa.fa-sun-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-sun-o:before{content:"\f185"}.fa.fa-moon-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-moon-o:before{content:"\f186"}.fa.fa-pagelines,.fa.fa-renren,.fa.fa-stack-exchange,.fa.fa-vk,.fa.fa-weibo{font-family:"Font Awesome 5 Brands";font-weight:400}.fa.fa-arrow-circle-o-right{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-arrow-circle-o-right:before{content:"\f35a"}.fa.fa-arrow-circle-o-left{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-arrow-circle-o-left:before{content:"\f359"}.fa.fa-caret-square-o-left{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-caret-square-o-left:before{content:"\f191"}.fa.fa-toggle-left{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-toggle-left:before{content:"\f191"}.fa.fa-dot-circle-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-dot-circle-o:before{content:"\f192"}.fa.fa-vimeo-square{font-family:"Font Awesome 5 Brands";font-weight:400}.fa.fa-try:before,.fa.fa-turkish-lira:before{content:"\f195"}.fa.fa-plus-square-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-plus-square-o:before{content:"\f0fe"}.fa.fa-openid,.fa.fa-slack,.fa.fa-wordpress{font-family:"Font Awesome 5 Brands";font-weight:400}.fa.fa-bank:before,.fa.fa-institution:before{content:"\f19c"}.fa.fa-mortar-board:before{content:"\f19d"}.fa.fa-delicious,.fa.fa-digg,.fa.fa-drupal,.fa.fa-google,.fa.fa-joomla,.fa.fa-pied-piper-alt,.fa.fa-pied-piper-pp,.fa.fa-reddit,.fa.fa-reddit-square,.fa.fa-stumbleupon,.fa.fa-stumbleupon-circle,.fa.fa-yahoo{font-family:"Font Awesome 5 Brands";font-weight:400}.fa.fa-spoon:before{content:"\f2e5"}.fa.fa-behance,.fa.fa-behance-square,.fa.fa-steam,.fa.fa-steam-square{font-family:"Font Awesome 5 Brands";font-weight:400}.fa.fa-automobile:before{content:"\f1b9"}.fa.fa-cab:before{content:"\f1ba"}.fa.fa-envelope-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-envelope-o:before{content:"\f0e0"}.fa.fa-deviantart,.fa.fa-soundcloud{font-family:"Font Awesome 5 Brands";font-weight:400}.fa.fa-file-pdf-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-file-pdf-o:before{content:"\f1c1"}.fa.fa-file-word-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-file-word-o:before{content:"\f1c2"}.fa.fa-file-excel-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-file-excel-o:before{content:"\f1c3"}.fa.fa-file-powerpoint-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-file-powerpoint-o:before{content:"\f1c4"}.fa.fa-file-image-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-file-image-o:before{content:"\f1c5"}.fa.fa-file-photo-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-file-photo-o:before{content:"\f1c5"}.fa.fa-file-picture-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-file-picture-o:before{content:"\f1c5"}.fa.fa-file-archive-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-file-archive-o:before{content:"\f1c6"}.fa.fa-file-zip-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-file-zip-o:before{content:"\f1c6"}.fa.fa-file-audio-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-file-audio-o:before{content:"\f1c7"}.fa.fa-file-sound-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-file-sound-o:before{content:"\f1c7"}.fa.fa-file-video-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-file-video-o:before{content:"\f1c8"}.fa.fa-file-movie-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-file-movie-o:before{content:"\f1c8"}.fa.fa-file-code-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-file-code-o:before{content:"\f1c9"}.fa.fa-codepen,.fa.fa-jsfiddle,.fa.fa-vine{font-family:"Font Awesome 5 Brands";font-weight:400}.fa.fa-life-bouy,.fa.fa-life-ring{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-life-bouy:before{content:"\f1cd"}.fa.fa-life-buoy{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-life-buoy:before{content:"\f1cd"}.fa.fa-life-saver{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-life-saver:before{content:"\f1cd"}.fa.fa-support{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-support:before{content:"\f1cd"}.fa.fa-circle-o-notch:before{content:"\f1ce"}.fa.fa-ra,.fa.fa-rebel{font-family:"Font Awesome 5 Brands";font-weight:400}.fa.fa-ra:before{content:"\f1d0"}.fa.fa-resistance{font-family:"Font Awesome 5 Brands";font-weight:400}.fa.fa-resistance:before{content:"\f1d0"}.fa.fa-empire,.fa.fa-ge{font-family:"Font Awesome 5 Brands";font-weight:400}.fa.fa-ge:before{content:"\f1d1"}.fa.fa-git,.fa.fa-git-square,.fa.fa-hacker-news,.fa.fa-y-combinator-square{font-family:"Font Awesome 5 Brands";font-weight:400}.fa.fa-y-combinator-square:before{content:"\f1d4"}.fa.fa-yc-square{font-family:"Font Awesome 5 Brands";font-weight:400}.fa.fa-yc-square:before{content:"\f1d4"}.fa.fa-qq,.fa.fa-tencent-weibo,.fa.fa-wechat,.fa.fa-weixin{font-family:"Font Awesome 5 Brands";font-weight:400}.fa.fa-wechat:before{content:"\f1d7"}.fa.fa-send:before{content:"\f1d8"}.fa.fa-paper-plane-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-paper-plane-o:before{content:"\f1d8"}.fa.fa-send-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-send-o:before{content:"\f1d8"}.fa.fa-circle-thin{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-circle-thin:before{content:"\f111"}.fa.fa-header:before{content:"\f1dc"}.fa.fa-sliders:before{content:"\f1de"}.fa.fa-futbol-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-futbol-o:before{content:"\f1e3"}.fa.fa-soccer-ball-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-soccer-ball-o:before{content:"\f1e3"}.fa.fa-slideshare,.fa.fa-twitch,.fa.fa-yelp{font-family:"Font Awesome 5 Brands";font-weight:400}.fa.fa-newspaper-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-newspaper-o:before{content:"\f1ea"}.fa.fa-cc-amex,.fa.fa-cc-discover,.fa.fa-cc-mastercard,.fa.fa-cc-paypal,.fa.fa-cc-stripe,.fa.fa-cc-visa,.fa.fa-google-wallet,.fa.fa-paypal{font-family:"Font Awesome 5 Brands";font-weight:400}.fa.fa-bell-slash-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-bell-slash-o:before{content:"\f1f6"}.fa.fa-trash:before{content:"\f2ed"}.fa.fa-copyright{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-eyedropper:before{content:"\f1fb"}.fa.fa-area-chart:before{content:"\f1fe"}.fa.fa-pie-chart:before{content:"\f200"}.fa.fa-line-chart:before{content:"\f201"}.fa.fa-angellist,.fa.fa-ioxhost,.fa.fa-lastfm,.fa.fa-lastfm-square{font-family:"Font Awesome 5 Brands";font-weight:400}.fa.fa-cc{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-cc:before{content:"\f20a"}.fa.fa-ils:before,.fa.fa-shekel:before,.fa.fa-sheqel:before{content:"\f20b"}.fa.fa-meanpath{font-family:"Font Awesome 5 Brands";font-weight:400}.fa.fa-meanpath:before{content:"\f2b4"}.fa.fa-buysellads,.fa.fa-connectdevelop,.fa.fa-dashcube,.fa.fa-forumbee,.fa.fa-leanpub,.fa.fa-sellsy,.fa.fa-shirtsinbulk,.fa.fa-simplybuilt,.fa.fa-skyatlas{font-family:"Font Awesome 5 Brands";font-weight:400}.fa.fa-diamond{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-diamond:before{content:"\f3a5"}.fa.fa-intersex:before{content:"\f224"}.fa.fa-facebook-official{font-family:"Font Awesome 5 Brands";font-weight:400}.fa.fa-facebook-official:before{content:"\f09a"}.fa.fa-pinterest-p,.fa.fa-whatsapp{font-family:"Font Awesome 5 Brands";font-weight:400}.fa.fa-hotel:before{content:"\f236"}.fa.fa-medium,.fa.fa-viacoin,.fa.fa-y-combinator,.fa.fa-yc{font-family:"Font Awesome 5 Brands";font-weight:400}.fa.fa-yc:before{content:"\f23b"}.fa.fa-expeditedssl,.fa.fa-opencart,.fa.fa-optin-monster{font-family:"Font Awesome 5 Brands";font-weight:400}.fa.fa-battery-4:before,.fa.fa-battery:before{content:"\f240"}.fa.fa-battery-3:before{content:"\f241"}.fa.fa-battery-2:before{content:"\f242"}.fa.fa-battery-1:before{content:"\f243"}.fa.fa-battery-0:before{content:"\f244"}.fa.fa-object-group,.fa.fa-object-ungroup,.fa.fa-sticky-note-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-sticky-note-o:before{content:"\f249"}.fa.fa-cc-diners-club,.fa.fa-cc-jcb{font-family:"Font Awesome 5 Brands";font-weight:400}.fa.fa-clone,.fa.fa-hourglass-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-hourglass-o:before{content:"\f254"}.fa.fa-hourglass-1:before{content:"\f251"}.fa.fa-hourglass-2:before{content:"\f252"}.fa.fa-hourglass-3:before{content:"\f253"}.fa.fa-hand-rock-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-hand-rock-o:before{content:"\f255"}.fa.fa-hand-grab-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-hand-grab-o:before{content:"\f255"}.fa.fa-hand-paper-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-hand-paper-o:before{content:"\f256"}.fa.fa-hand-stop-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-hand-stop-o:before{content:"\f256"}.fa.fa-hand-scissors-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-hand-scissors-o:before{content:"\f257"}.fa.fa-hand-lizard-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-hand-lizard-o:before{content:"\f258"}.fa.fa-hand-spock-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-hand-spock-o:before{content:"\f259"}.fa.fa-hand-pointer-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-hand-pointer-o:before{content:"\f25a"}.fa.fa-hand-peace-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-hand-peace-o:before{content:"\f25b"}.fa.fa-registered{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-chrome,.fa.fa-creative-commons,.fa.fa-firefox,.fa.fa-get-pocket,.fa.fa-gg,.fa.fa-gg-circle,.fa.fa-internet-explorer,.fa.fa-odnoklassniki,.fa.fa-odnoklassniki-square,.fa.fa-opera,.fa.fa-safari,.fa.fa-tripadvisor,.fa.fa-wikipedia-w{font-family:"Font Awesome 5 Brands";font-weight:400}.fa.fa-television:before{content:"\f26c"}.fa.fa-500px,.fa.fa-amazon,.fa.fa-contao{font-family:"Font Awesome 5 Brands";font-weight:400}.fa.fa-calendar-plus-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-calendar-plus-o:before{content:"\f271"}.fa.fa-calendar-minus-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-calendar-minus-o:before{content:"\f272"}.fa.fa-calendar-times-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-calendar-times-o:before{content:"\f273"}.fa.fa-calendar-check-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-calendar-check-o:before{content:"\f274"}.fa.fa-map-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-map-o:before{content:"\f279"}.fa.fa-commenting:before{content:"\f4ad"}.fa.fa-commenting-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-commenting-o:before{content:"\f4ad"}.fa.fa-houzz,.fa.fa-vimeo{font-family:"Font Awesome 5 Brands";font-weight:400}.fa.fa-vimeo:before{content:"\f27d"}.fa.fa-black-tie,.fa.fa-edge,.fa.fa-fonticons,.fa.fa-reddit-alien{font-family:"Font Awesome 5 Brands";font-weight:400}.fa.fa-credit-card-alt:before{content:"\f09d"}.fa.fa-codiepie,.fa.fa-fort-awesome,.fa.fa-mixcloud,.fa.fa-modx,.fa.fa-product-hunt,.fa.fa-scribd,.fa.fa-usb{font-family:"Font Awesome 5 Brands";font-weight:400}.fa.fa-pause-circle-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-pause-circle-o:before{content:"\f28b"}.fa.fa-stop-circle-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-stop-circle-o:before{content:"\f28d"}.fa.fa-bluetooth,.fa.fa-bluetooth-b,.fa.fa-envira,.fa.fa-gitlab,.fa.fa-wheelchair-alt,.fa.fa-wpbeginner,.fa.fa-wpforms{font-family:"Font Awesome 5 Brands";font-weight:400}.fa.fa-wheelchair-alt:before{content:"\f368"}.fa.fa-question-circle-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-question-circle-o:before{content:"\f059"}.fa.fa-volume-control-phone:before{content:"\f2a0"}.fa.fa-asl-interpreting:before{content:"\f2a3"}.fa.fa-deafness:before,.fa.fa-hard-of-hearing:before{content:"\f2a4"}.fa.fa-glide,.fa.fa-glide-g{font-family:"Font Awesome 5 Brands";font-weight:400}.fa.fa-signing:before{content:"\f2a7"}.fa.fa-first-order,.fa.fa-google-plus-official,.fa.fa-pied-piper,.fa.fa-snapchat,.fa.fa-snapchat-ghost,.fa.fa-snapchat-square,.fa.fa-themeisle,.fa.fa-viadeo,.fa.fa-viadeo-square,.fa.fa-yoast{font-family:"Font Awesome 5 Brands";font-weight:400}.fa.fa-google-plus-official:before{content:"\f2b3"}.fa.fa-google-plus-circle{font-family:"Font Awesome 5 Brands";font-weight:400}.fa.fa-google-plus-circle:before{content:"\f2b3"}.fa.fa-fa,.fa.fa-font-awesome{font-family:"Font Awesome 5 Brands";font-weight:400}.fa.fa-fa:before{content:"\f2b4"}.fa.fa-handshake-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-handshake-o:before{content:"\f2b5"}.fa.fa-envelope-open-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-envelope-open-o:before{content:"\f2b6"}.fa.fa-linode{font-family:"Font Awesome 5 Brands";font-weight:400}.fa.fa-address-book-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-address-book-o:before{content:"\f2b9"}.fa.fa-vcard:before{content:"\f2bb"}.fa.fa-address-card-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-address-card-o:before{content:"\f2bb"}.fa.fa-vcard-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-vcard-o:before{content:"\f2bb"}.fa.fa-user-circle-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-user-circle-o:before{content:"\f2bd"}.fa.fa-user-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-user-o:before{content:"\f007"}.fa.fa-id-badge{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-drivers-license:before{content:"\f2c2"}.fa.fa-id-card-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-id-card-o:before{content:"\f2c2"}.fa.fa-drivers-license-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-drivers-license-o:before{content:"\f2c2"}.fa.fa-free-code-camp,.fa.fa-quora,.fa.fa-telegram{font-family:"Font Awesome 5 Brands";font-weight:400}.fa.fa-thermometer-4:before,.fa.fa-thermometer:before{content:"\f2c7"}.fa.fa-thermometer-3:before{content:"\f2c8"}.fa.fa-thermometer-2:before{content:"\f2c9"}.fa.fa-thermometer-1:before{content:"\f2ca"}.fa.fa-thermometer-0:before{content:"\f2cb"}.fa.fa-bathtub:before,.fa.fa-s15:before{content:"\f2cd"}.fa.fa-window-maximize,.fa.fa-window-restore{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-times-rectangle:before{content:"\f410"}.fa.fa-window-close-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-window-close-o:before{content:"\f410"}.fa.fa-times-rectangle-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-times-rectangle-o:before{content:"\f410"}.fa.fa-bandcamp,.fa.fa-eercast,.fa.fa-etsy,.fa.fa-grav,.fa.fa-imdb,.fa.fa-ravelry{font-family:"Font Awesome 5 Brands";font-weight:400}.fa.fa-eercast:before{content:"\f2da"}.fa.fa-snowflake-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-snowflake-o:before{content:"\f2dc"}.fa.fa-spotify,.fa.fa-superpowers,.fa.fa-wpexplorer{font-family:"Font Awesome 5 Brands";font-weight:400}
\ No newline at end of file
diff --git a/shopyo/static/fontawesome/webfonts/fa-brands-400.eot b/shopyo/static/fontawesome/webfonts/fa-brands-400.eot
deleted file mode 100644
index e30fd00..0000000
Binary files a/shopyo/static/fontawesome/webfonts/fa-brands-400.eot and /dev/null differ
diff --git a/shopyo/static/fontawesome/webfonts/fa-brands-400.svg b/shopyo/static/fontawesome/webfonts/fa-brands-400.svg
deleted file mode 100644
index 599dfbd..0000000
--- a/shopyo/static/fontawesome/webfonts/fa-brands-400.svg
+++ /dev/null
@@ -1,3300 +0,0 @@
-
-
-
-
-
-Created by FontForge 20190112 at Fri Feb 1 12:28:28 2019
- By Robert Madole
-Copyright (c) Font Awesome
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/shopyo/static/fontawesome/webfonts/fa-brands-400.ttf b/shopyo/static/fontawesome/webfonts/fa-brands-400.ttf
deleted file mode 100644
index 1543db8..0000000
Binary files a/shopyo/static/fontawesome/webfonts/fa-brands-400.ttf and /dev/null differ
diff --git a/shopyo/static/fontawesome/webfonts/fa-brands-400.woff b/shopyo/static/fontawesome/webfonts/fa-brands-400.woff
deleted file mode 100644
index c293cef..0000000
Binary files a/shopyo/static/fontawesome/webfonts/fa-brands-400.woff and /dev/null differ
diff --git a/shopyo/static/fontawesome/webfonts/fa-brands-400.woff2 b/shopyo/static/fontawesome/webfonts/fa-brands-400.woff2
deleted file mode 100644
index d9f97df..0000000
Binary files a/shopyo/static/fontawesome/webfonts/fa-brands-400.woff2 and /dev/null differ
diff --git a/shopyo/static/fontawesome/webfonts/fa-regular-400.eot b/shopyo/static/fontawesome/webfonts/fa-regular-400.eot
deleted file mode 100644
index 12be17b..0000000
Binary files a/shopyo/static/fontawesome/webfonts/fa-regular-400.eot and /dev/null differ
diff --git a/shopyo/static/fontawesome/webfonts/fa-regular-400.svg b/shopyo/static/fontawesome/webfonts/fa-regular-400.svg
deleted file mode 100644
index d594678..0000000
--- a/shopyo/static/fontawesome/webfonts/fa-regular-400.svg
+++ /dev/null
@@ -1,803 +0,0 @@
-
-
-
-
-
-Created by FontForge 20190112 at Fri Feb 1 12:28:28 2019
- By Robert Madole
-Copyright (c) Font Awesome
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/shopyo/static/fontawesome/webfonts/fa-regular-400.ttf b/shopyo/static/fontawesome/webfonts/fa-regular-400.ttf
deleted file mode 100644
index abf3f48..0000000
Binary files a/shopyo/static/fontawesome/webfonts/fa-regular-400.ttf and /dev/null differ
diff --git a/shopyo/static/fontawesome/webfonts/fa-regular-400.woff b/shopyo/static/fontawesome/webfonts/fa-regular-400.woff
deleted file mode 100644
index 257b315..0000000
Binary files a/shopyo/static/fontawesome/webfonts/fa-regular-400.woff and /dev/null differ
diff --git a/shopyo/static/fontawesome/webfonts/fa-regular-400.woff2 b/shopyo/static/fontawesome/webfonts/fa-regular-400.woff2
deleted file mode 100644
index 0f55b06..0000000
Binary files a/shopyo/static/fontawesome/webfonts/fa-regular-400.woff2 and /dev/null differ
diff --git a/shopyo/static/fontawesome/webfonts/fa-solid-900.eot b/shopyo/static/fontawesome/webfonts/fa-solid-900.eot
deleted file mode 100644
index 89e407d..0000000
Binary files a/shopyo/static/fontawesome/webfonts/fa-solid-900.eot and /dev/null differ
diff --git a/shopyo/static/fontawesome/webfonts/fa-solid-900.svg b/shopyo/static/fontawesome/webfonts/fa-solid-900.svg
deleted file mode 100644
index 9a0a64f..0000000
--- a/shopyo/static/fontawesome/webfonts/fa-solid-900.svg
+++ /dev/null
@@ -1,4520 +0,0 @@
-
-
-
-
-
-Created by FontForge 20190112 at Fri Feb 1 12:28:29 2019
- By Robert Madole
-Copyright (c) Font Awesome
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/shopyo/static/fontawesome/webfonts/fa-solid-900.ttf b/shopyo/static/fontawesome/webfonts/fa-solid-900.ttf
deleted file mode 100644
index 6c9fe78..0000000
Binary files a/shopyo/static/fontawesome/webfonts/fa-solid-900.ttf and /dev/null differ
diff --git a/shopyo/static/fontawesome/webfonts/fa-solid-900.woff b/shopyo/static/fontawesome/webfonts/fa-solid-900.woff
deleted file mode 100644
index bf52883..0000000
Binary files a/shopyo/static/fontawesome/webfonts/fa-solid-900.woff and /dev/null differ
diff --git a/shopyo/static/fontawesome/webfonts/fa-solid-900.woff2 b/shopyo/static/fontawesome/webfonts/fa-solid-900.woff2
deleted file mode 100644
index 318cd3d..0000000
Binary files a/shopyo/static/fontawesome/webfonts/fa-solid-900.woff2 and /dev/null differ
diff --git a/shopyo/static/jquery_3.2.1.min.js b/shopyo/static/jquery_3.2.1.min.js
deleted file mode 100644
index 644d35e..0000000
--- a/shopyo/static/jquery_3.2.1.min.js
+++ /dev/null
@@ -1,4 +0,0 @@
-/*! jQuery v3.2.1 | (c) JS Foundation and other contributors | jquery.org/license */
-!function(a,b){"use strict";"object"==typeof module&&"object"==typeof module.exports?module.exports=a.document?b(a,!0):function(a){if(!a.document)throw new Error("jQuery requires a window with a document");return b(a)}:b(a)}("undefined"!=typeof window?window:this,function(a,b){"use strict";var c=[],d=a.document,e=Object.getPrototypeOf,f=c.slice,g=c.concat,h=c.push,i=c.indexOf,j={},k=j.toString,l=j.hasOwnProperty,m=l.toString,n=m.call(Object),o={};function p(a,b){b=b||d;var c=b.createElement("script");c.text=a,b.head.appendChild(c).parentNode.removeChild(c)}var q="3.2.1",r=function(a,b){return new r.fn.init(a,b)},s=/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g,t=/^-ms-/,u=/-([a-z])/g,v=function(a,b){return b.toUpperCase()};r.fn=r.prototype={jquery:q,constructor:r,length:0,toArray:function(){return f.call(this)},get:function(a){return null==a?f.call(this):a<0?this[a+this.length]:this[a]},pushStack:function(a){var b=r.merge(this.constructor(),a);return b.prevObject=this,b},each:function(a){return r.each(this,a)},map:function(a){return this.pushStack(r.map(this,function(b,c){return a.call(b,c,b)}))},slice:function(){return this.pushStack(f.apply(this,arguments))},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},eq:function(a){var b=this.length,c=+a+(a<0?b:0);return this.pushStack(c>=0&&c0&&b-1 in a)}var x=function(a){var b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u="sizzle"+1*new Date,v=a.document,w=0,x=0,y=ha(),z=ha(),A=ha(),B=function(a,b){return a===b&&(l=!0),0},C={}.hasOwnProperty,D=[],E=D.pop,F=D.push,G=D.push,H=D.slice,I=function(a,b){for(var c=0,d=a.length;c+~]|"+K+")"+K+"*"),S=new RegExp("="+K+"*([^\\]'\"]*?)"+K+"*\\]","g"),T=new RegExp(N),U=new RegExp("^"+L+"$"),V={ID:new RegExp("^#("+L+")"),CLASS:new RegExp("^\\.("+L+")"),TAG:new RegExp("^("+L+"|[*])"),ATTR:new RegExp("^"+M),PSEUDO:new RegExp("^"+N),CHILD:new RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\("+K+"*(even|odd|(([+-]|)(\\d*)n|)"+K+"*(?:([+-]|)"+K+"*(\\d+)|))"+K+"*\\)|)","i"),bool:new RegExp("^(?:"+J+")$","i"),needsContext:new RegExp("^"+K+"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\("+K+"*((?:-\\d)?\\d*)"+K+"*\\)|)(?=[^-]|$)","i")},W=/^(?:input|select|textarea|button)$/i,X=/^h\d$/i,Y=/^[^{]+\{\s*\[native \w/,Z=/^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,$=/[+~]/,_=new RegExp("\\\\([\\da-f]{1,6}"+K+"?|("+K+")|.)","ig"),aa=function(a,b,c){var d="0x"+b-65536;return d!==d||c?b:d<0?String.fromCharCode(d+65536):String.fromCharCode(d>>10|55296,1023&d|56320)},ba=/([\0-\x1f\x7f]|^-?\d)|^-$|[^\0-\x1f\x7f-\uFFFF\w-]/g,ca=function(a,b){return b?"\0"===a?"\ufffd":a.slice(0,-1)+"\\"+a.charCodeAt(a.length-1).toString(16)+" ":"\\"+a},da=function(){m()},ea=ta(function(a){return a.disabled===!0&&("form"in a||"label"in a)},{dir:"parentNode",next:"legend"});try{G.apply(D=H.call(v.childNodes),v.childNodes),D[v.childNodes.length].nodeType}catch(fa){G={apply:D.length?function(a,b){F.apply(a,H.call(b))}:function(a,b){var c=a.length,d=0;while(a[c++]=b[d++]);a.length=c-1}}}function ga(a,b,d,e){var f,h,j,k,l,o,r,s=b&&b.ownerDocument,w=b?b.nodeType:9;if(d=d||[],"string"!=typeof a||!a||1!==w&&9!==w&&11!==w)return d;if(!e&&((b?b.ownerDocument||b:v)!==n&&m(b),b=b||n,p)){if(11!==w&&(l=Z.exec(a)))if(f=l[1]){if(9===w){if(!(j=b.getElementById(f)))return d;if(j.id===f)return d.push(j),d}else if(s&&(j=s.getElementById(f))&&t(b,j)&&j.id===f)return d.push(j),d}else{if(l[2])return G.apply(d,b.getElementsByTagName(a)),d;if((f=l[3])&&c.getElementsByClassName&&b.getElementsByClassName)return G.apply(d,b.getElementsByClassName(f)),d}if(c.qsa&&!A[a+" "]&&(!q||!q.test(a))){if(1!==w)s=b,r=a;else if("object"!==b.nodeName.toLowerCase()){(k=b.getAttribute("id"))?k=k.replace(ba,ca):b.setAttribute("id",k=u),o=g(a),h=o.length;while(h--)o[h]="#"+k+" "+sa(o[h]);r=o.join(","),s=$.test(a)&&qa(b.parentNode)||b}if(r)try{return G.apply(d,s.querySelectorAll(r)),d}catch(x){}finally{k===u&&b.removeAttribute("id")}}}return i(a.replace(P,"$1"),b,d,e)}function ha(){var a=[];function b(c,e){return a.push(c+" ")>d.cacheLength&&delete b[a.shift()],b[c+" "]=e}return b}function ia(a){return a[u]=!0,a}function ja(a){var b=n.createElement("fieldset");try{return!!a(b)}catch(c){return!1}finally{b.parentNode&&b.parentNode.removeChild(b),b=null}}function ka(a,b){var c=a.split("|"),e=c.length;while(e--)d.attrHandle[c[e]]=b}function la(a,b){var c=b&&a,d=c&&1===a.nodeType&&1===b.nodeType&&a.sourceIndex-b.sourceIndex;if(d)return d;if(c)while(c=c.nextSibling)if(c===b)return-1;return a?1:-1}function ma(a){return function(b){var c=b.nodeName.toLowerCase();return"input"===c&&b.type===a}}function na(a){return function(b){var c=b.nodeName.toLowerCase();return("input"===c||"button"===c)&&b.type===a}}function oa(a){return function(b){return"form"in b?b.parentNode&&b.disabled===!1?"label"in b?"label"in b.parentNode?b.parentNode.disabled===a:b.disabled===a:b.isDisabled===a||b.isDisabled!==!a&&ea(b)===a:b.disabled===a:"label"in b&&b.disabled===a}}function pa(a){return ia(function(b){return b=+b,ia(function(c,d){var e,f=a([],c.length,b),g=f.length;while(g--)c[e=f[g]]&&(c[e]=!(d[e]=c[e]))})})}function qa(a){return a&&"undefined"!=typeof a.getElementsByTagName&&a}c=ga.support={},f=ga.isXML=function(a){var b=a&&(a.ownerDocument||a).documentElement;return!!b&&"HTML"!==b.nodeName},m=ga.setDocument=function(a){var b,e,g=a?a.ownerDocument||a:v;return g!==n&&9===g.nodeType&&g.documentElement?(n=g,o=n.documentElement,p=!f(n),v!==n&&(e=n.defaultView)&&e.top!==e&&(e.addEventListener?e.addEventListener("unload",da,!1):e.attachEvent&&e.attachEvent("onunload",da)),c.attributes=ja(function(a){return a.className="i",!a.getAttribute("className")}),c.getElementsByTagName=ja(function(a){return a.appendChild(n.createComment("")),!a.getElementsByTagName("*").length}),c.getElementsByClassName=Y.test(n.getElementsByClassName),c.getById=ja(function(a){return o.appendChild(a).id=u,!n.getElementsByName||!n.getElementsByName(u).length}),c.getById?(d.filter.ID=function(a){var b=a.replace(_,aa);return function(a){return a.getAttribute("id")===b}},d.find.ID=function(a,b){if("undefined"!=typeof b.getElementById&&p){var c=b.getElementById(a);return c?[c]:[]}}):(d.filter.ID=function(a){var b=a.replace(_,aa);return function(a){var c="undefined"!=typeof a.getAttributeNode&&a.getAttributeNode("id");return c&&c.value===b}},d.find.ID=function(a,b){if("undefined"!=typeof b.getElementById&&p){var c,d,e,f=b.getElementById(a);if(f){if(c=f.getAttributeNode("id"),c&&c.value===a)return[f];e=b.getElementsByName(a),d=0;while(f=e[d++])if(c=f.getAttributeNode("id"),c&&c.value===a)return[f]}return[]}}),d.find.TAG=c.getElementsByTagName?function(a,b){return"undefined"!=typeof b.getElementsByTagName?b.getElementsByTagName(a):c.qsa?b.querySelectorAll(a):void 0}:function(a,b){var c,d=[],e=0,f=b.getElementsByTagName(a);if("*"===a){while(c=f[e++])1===c.nodeType&&d.push(c);return d}return f},d.find.CLASS=c.getElementsByClassName&&function(a,b){if("undefined"!=typeof b.getElementsByClassName&&p)return b.getElementsByClassName(a)},r=[],q=[],(c.qsa=Y.test(n.querySelectorAll))&&(ja(function(a){o.appendChild(a).innerHTML=" ",a.querySelectorAll("[msallowcapture^='']").length&&q.push("[*^$]="+K+"*(?:''|\"\")"),a.querySelectorAll("[selected]").length||q.push("\\["+K+"*(?:value|"+J+")"),a.querySelectorAll("[id~="+u+"-]").length||q.push("~="),a.querySelectorAll(":checked").length||q.push(":checked"),a.querySelectorAll("a#"+u+"+*").length||q.push(".#.+[+~]")}),ja(function(a){a.innerHTML=" ";var b=n.createElement("input");b.setAttribute("type","hidden"),a.appendChild(b).setAttribute("name","D"),a.querySelectorAll("[name=d]").length&&q.push("name"+K+"*[*^$|!~]?="),2!==a.querySelectorAll(":enabled").length&&q.push(":enabled",":disabled"),o.appendChild(a).disabled=!0,2!==a.querySelectorAll(":disabled").length&&q.push(":enabled",":disabled"),a.querySelectorAll("*,:x"),q.push(",.*:")})),(c.matchesSelector=Y.test(s=o.matches||o.webkitMatchesSelector||o.mozMatchesSelector||o.oMatchesSelector||o.msMatchesSelector))&&ja(function(a){c.disconnectedMatch=s.call(a,"*"),s.call(a,"[s!='']:x"),r.push("!=",N)}),q=q.length&&new RegExp(q.join("|")),r=r.length&&new RegExp(r.join("|")),b=Y.test(o.compareDocumentPosition),t=b||Y.test(o.contains)?function(a,b){var c=9===a.nodeType?a.documentElement:a,d=b&&b.parentNode;return a===d||!(!d||1!==d.nodeType||!(c.contains?c.contains(d):a.compareDocumentPosition&&16&a.compareDocumentPosition(d)))}:function(a,b){if(b)while(b=b.parentNode)if(b===a)return!0;return!1},B=b?function(a,b){if(a===b)return l=!0,0;var d=!a.compareDocumentPosition-!b.compareDocumentPosition;return d?d:(d=(a.ownerDocument||a)===(b.ownerDocument||b)?a.compareDocumentPosition(b):1,1&d||!c.sortDetached&&b.compareDocumentPosition(a)===d?a===n||a.ownerDocument===v&&t(v,a)?-1:b===n||b.ownerDocument===v&&t(v,b)?1:k?I(k,a)-I(k,b):0:4&d?-1:1)}:function(a,b){if(a===b)return l=!0,0;var c,d=0,e=a.parentNode,f=b.parentNode,g=[a],h=[b];if(!e||!f)return a===n?-1:b===n?1:e?-1:f?1:k?I(k,a)-I(k,b):0;if(e===f)return la(a,b);c=a;while(c=c.parentNode)g.unshift(c);c=b;while(c=c.parentNode)h.unshift(c);while(g[d]===h[d])d++;return d?la(g[d],h[d]):g[d]===v?-1:h[d]===v?1:0},n):n},ga.matches=function(a,b){return ga(a,null,null,b)},ga.matchesSelector=function(a,b){if((a.ownerDocument||a)!==n&&m(a),b=b.replace(S,"='$1']"),c.matchesSelector&&p&&!A[b+" "]&&(!r||!r.test(b))&&(!q||!q.test(b)))try{var d=s.call(a,b);if(d||c.disconnectedMatch||a.document&&11!==a.document.nodeType)return d}catch(e){}return ga(b,n,null,[a]).length>0},ga.contains=function(a,b){return(a.ownerDocument||a)!==n&&m(a),t(a,b)},ga.attr=function(a,b){(a.ownerDocument||a)!==n&&m(a);var e=d.attrHandle[b.toLowerCase()],f=e&&C.call(d.attrHandle,b.toLowerCase())?e(a,b,!p):void 0;return void 0!==f?f:c.attributes||!p?a.getAttribute(b):(f=a.getAttributeNode(b))&&f.specified?f.value:null},ga.escape=function(a){return(a+"").replace(ba,ca)},ga.error=function(a){throw new Error("Syntax error, unrecognized expression: "+a)},ga.uniqueSort=function(a){var b,d=[],e=0,f=0;if(l=!c.detectDuplicates,k=!c.sortStable&&a.slice(0),a.sort(B),l){while(b=a[f++])b===a[f]&&(e=d.push(f));while(e--)a.splice(d[e],1)}return k=null,a},e=ga.getText=function(a){var b,c="",d=0,f=a.nodeType;if(f){if(1===f||9===f||11===f){if("string"==typeof a.textContent)return a.textContent;for(a=a.firstChild;a;a=a.nextSibling)c+=e(a)}else if(3===f||4===f)return a.nodeValue}else while(b=a[d++])c+=e(b);return c},d=ga.selectors={cacheLength:50,createPseudo:ia,match:V,attrHandle:{},find:{},relative:{">":{dir:"parentNode",first:!0}," ":{dir:"parentNode"},"+":{dir:"previousSibling",first:!0},"~":{dir:"previousSibling"}},preFilter:{ATTR:function(a){return a[1]=a[1].replace(_,aa),a[3]=(a[3]||a[4]||a[5]||"").replace(_,aa),"~="===a[2]&&(a[3]=" "+a[3]+" "),a.slice(0,4)},CHILD:function(a){return a[1]=a[1].toLowerCase(),"nth"===a[1].slice(0,3)?(a[3]||ga.error(a[0]),a[4]=+(a[4]?a[5]+(a[6]||1):2*("even"===a[3]||"odd"===a[3])),a[5]=+(a[7]+a[8]||"odd"===a[3])):a[3]&&ga.error(a[0]),a},PSEUDO:function(a){var b,c=!a[6]&&a[2];return V.CHILD.test(a[0])?null:(a[3]?a[2]=a[4]||a[5]||"":c&&T.test(c)&&(b=g(c,!0))&&(b=c.indexOf(")",c.length-b)-c.length)&&(a[0]=a[0].slice(0,b),a[2]=c.slice(0,b)),a.slice(0,3))}},filter:{TAG:function(a){var b=a.replace(_,aa).toLowerCase();return"*"===a?function(){return!0}:function(a){return a.nodeName&&a.nodeName.toLowerCase()===b}},CLASS:function(a){var b=y[a+" "];return b||(b=new RegExp("(^|"+K+")"+a+"("+K+"|$)"))&&y(a,function(a){return b.test("string"==typeof a.className&&a.className||"undefined"!=typeof a.getAttribute&&a.getAttribute("class")||"")})},ATTR:function(a,b,c){return function(d){var e=ga.attr(d,a);return null==e?"!="===b:!b||(e+="","="===b?e===c:"!="===b?e!==c:"^="===b?c&&0===e.indexOf(c):"*="===b?c&&e.indexOf(c)>-1:"$="===b?c&&e.slice(-c.length)===c:"~="===b?(" "+e.replace(O," ")+" ").indexOf(c)>-1:"|="===b&&(e===c||e.slice(0,c.length+1)===c+"-"))}},CHILD:function(a,b,c,d,e){var f="nth"!==a.slice(0,3),g="last"!==a.slice(-4),h="of-type"===b;return 1===d&&0===e?function(a){return!!a.parentNode}:function(b,c,i){var j,k,l,m,n,o,p=f!==g?"nextSibling":"previousSibling",q=b.parentNode,r=h&&b.nodeName.toLowerCase(),s=!i&&!h,t=!1;if(q){if(f){while(p){m=b;while(m=m[p])if(h?m.nodeName.toLowerCase()===r:1===m.nodeType)return!1;o=p="only"===a&&!o&&"nextSibling"}return!0}if(o=[g?q.firstChild:q.lastChild],g&&s){m=q,l=m[u]||(m[u]={}),k=l[m.uniqueID]||(l[m.uniqueID]={}),j=k[a]||[],n=j[0]===w&&j[1],t=n&&j[2],m=n&&q.childNodes[n];while(m=++n&&m&&m[p]||(t=n=0)||o.pop())if(1===m.nodeType&&++t&&m===b){k[a]=[w,n,t];break}}else if(s&&(m=b,l=m[u]||(m[u]={}),k=l[m.uniqueID]||(l[m.uniqueID]={}),j=k[a]||[],n=j[0]===w&&j[1],t=n),t===!1)while(m=++n&&m&&m[p]||(t=n=0)||o.pop())if((h?m.nodeName.toLowerCase()===r:1===m.nodeType)&&++t&&(s&&(l=m[u]||(m[u]={}),k=l[m.uniqueID]||(l[m.uniqueID]={}),k[a]=[w,t]),m===b))break;return t-=e,t===d||t%d===0&&t/d>=0}}},PSEUDO:function(a,b){var c,e=d.pseudos[a]||d.setFilters[a.toLowerCase()]||ga.error("unsupported pseudo: "+a);return e[u]?e(b):e.length>1?(c=[a,a,"",b],d.setFilters.hasOwnProperty(a.toLowerCase())?ia(function(a,c){var d,f=e(a,b),g=f.length;while(g--)d=I(a,f[g]),a[d]=!(c[d]=f[g])}):function(a){return e(a,0,c)}):e}},pseudos:{not:ia(function(a){var b=[],c=[],d=h(a.replace(P,"$1"));return d[u]?ia(function(a,b,c,e){var f,g=d(a,null,e,[]),h=a.length;while(h--)(f=g[h])&&(a[h]=!(b[h]=f))}):function(a,e,f){return b[0]=a,d(b,null,f,c),b[0]=null,!c.pop()}}),has:ia(function(a){return function(b){return ga(a,b).length>0}}),contains:ia(function(a){return a=a.replace(_,aa),function(b){return(b.textContent||b.innerText||e(b)).indexOf(a)>-1}}),lang:ia(function(a){return U.test(a||"")||ga.error("unsupported lang: "+a),a=a.replace(_,aa).toLowerCase(),function(b){var c;do if(c=p?b.lang:b.getAttribute("xml:lang")||b.getAttribute("lang"))return c=c.toLowerCase(),c===a||0===c.indexOf(a+"-");while((b=b.parentNode)&&1===b.nodeType);return!1}}),target:function(b){var c=a.location&&a.location.hash;return c&&c.slice(1)===b.id},root:function(a){return a===o},focus:function(a){return a===n.activeElement&&(!n.hasFocus||n.hasFocus())&&!!(a.type||a.href||~a.tabIndex)},enabled:oa(!1),disabled:oa(!0),checked:function(a){var b=a.nodeName.toLowerCase();return"input"===b&&!!a.checked||"option"===b&&!!a.selected},selected:function(a){return a.parentNode&&a.parentNode.selectedIndex,a.selected===!0},empty:function(a){for(a=a.firstChild;a;a=a.nextSibling)if(a.nodeType<6)return!1;return!0},parent:function(a){return!d.pseudos.empty(a)},header:function(a){return X.test(a.nodeName)},input:function(a){return W.test(a.nodeName)},button:function(a){var b=a.nodeName.toLowerCase();return"input"===b&&"button"===a.type||"button"===b},text:function(a){var b;return"input"===a.nodeName.toLowerCase()&&"text"===a.type&&(null==(b=a.getAttribute("type"))||"text"===b.toLowerCase())},first:pa(function(){return[0]}),last:pa(function(a,b){return[b-1]}),eq:pa(function(a,b,c){return[c<0?c+b:c]}),even:pa(function(a,b){for(var c=0;c=0;)a.push(d);return a}),gt:pa(function(a,b,c){for(var d=c<0?c+b:c;++d1?function(b,c,d){var e=a.length;while(e--)if(!a[e](b,c,d))return!1;return!0}:a[0]}function va(a,b,c){for(var d=0,e=b.length;d-1&&(f[j]=!(g[j]=l))}}else r=wa(r===g?r.splice(o,r.length):r),e?e(null,g,r,i):G.apply(g,r)})}function ya(a){for(var b,c,e,f=a.length,g=d.relative[a[0].type],h=g||d.relative[" "],i=g?1:0,k=ta(function(a){return a===b},h,!0),l=ta(function(a){return I(b,a)>-1},h,!0),m=[function(a,c,d){var e=!g&&(d||c!==j)||((b=c).nodeType?k(a,c,d):l(a,c,d));return b=null,e}];i1&&ua(m),i>1&&sa(a.slice(0,i-1).concat({value:" "===a[i-2].type?"*":""})).replace(P,"$1"),c,i0,e=a.length>0,f=function(f,g,h,i,k){var l,o,q,r=0,s="0",t=f&&[],u=[],v=j,x=f||e&&d.find.TAG("*",k),y=w+=null==v?1:Math.random()||.1,z=x.length;for(k&&(j=g===n||g||k);s!==z&&null!=(l=x[s]);s++){if(e&&l){o=0,g||l.ownerDocument===n||(m(l),h=!p);while(q=a[o++])if(q(l,g||n,h)){i.push(l);break}k&&(w=y)}c&&((l=!q&&l)&&r--,f&&t.push(l))}if(r+=s,c&&s!==r){o=0;while(q=b[o++])q(t,u,g,h);if(f){if(r>0)while(s--)t[s]||u[s]||(u[s]=E.call(i));u=wa(u)}G.apply(i,u),k&&!f&&u.length>0&&r+b.length>1&&ga.uniqueSort(i)}return k&&(w=y,j=v),t};return c?ia(f):f}return h=ga.compile=function(a,b){var c,d=[],e=[],f=A[a+" "];if(!f){b||(b=g(a)),c=b.length;while(c--)f=ya(b[c]),f[u]?d.push(f):e.push(f);f=A(a,za(e,d)),f.selector=a}return f},i=ga.select=function(a,b,c,e){var f,i,j,k,l,m="function"==typeof a&&a,n=!e&&g(a=m.selector||a);if(c=c||[],1===n.length){if(i=n[0]=n[0].slice(0),i.length>2&&"ID"===(j=i[0]).type&&9===b.nodeType&&p&&d.relative[i[1].type]){if(b=(d.find.ID(j.matches[0].replace(_,aa),b)||[])[0],!b)return c;m&&(b=b.parentNode),a=a.slice(i.shift().value.length)}f=V.needsContext.test(a)?0:i.length;while(f--){if(j=i[f],d.relative[k=j.type])break;if((l=d.find[k])&&(e=l(j.matches[0].replace(_,aa),$.test(i[0].type)&&qa(b.parentNode)||b))){if(i.splice(f,1),a=e.length&&sa(i),!a)return G.apply(c,e),c;break}}}return(m||h(a,n))(e,b,!p,c,!b||$.test(a)&&qa(b.parentNode)||b),c},c.sortStable=u.split("").sort(B).join("")===u,c.detectDuplicates=!!l,m(),c.sortDetached=ja(function(a){return 1&a.compareDocumentPosition(n.createElement("fieldset"))}),ja(function(a){return a.innerHTML=" ","#"===a.firstChild.getAttribute("href")})||ka("type|href|height|width",function(a,b,c){if(!c)return a.getAttribute(b,"type"===b.toLowerCase()?1:2)}),c.attributes&&ja(function(a){return a.innerHTML=" ",a.firstChild.setAttribute("value",""),""===a.firstChild.getAttribute("value")})||ka("value",function(a,b,c){if(!c&&"input"===a.nodeName.toLowerCase())return a.defaultValue}),ja(function(a){return null==a.getAttribute("disabled")})||ka(J,function(a,b,c){var d;if(!c)return a[b]===!0?b.toLowerCase():(d=a.getAttributeNode(b))&&d.specified?d.value:null}),ga}(a);r.find=x,r.expr=x.selectors,r.expr[":"]=r.expr.pseudos,r.uniqueSort=r.unique=x.uniqueSort,r.text=x.getText,r.isXMLDoc=x.isXML,r.contains=x.contains,r.escapeSelector=x.escape;var y=function(a,b,c){var d=[],e=void 0!==c;while((a=a[b])&&9!==a.nodeType)if(1===a.nodeType){if(e&&r(a).is(c))break;d.push(a)}return d},z=function(a,b){for(var c=[];a;a=a.nextSibling)1===a.nodeType&&a!==b&&c.push(a);return c},A=r.expr.match.needsContext;function B(a,b){return a.nodeName&&a.nodeName.toLowerCase()===b.toLowerCase()}var C=/^<([a-z][^\/\0>:\x20\t\r\n\f]*)[\x20\t\r\n\f]*\/?>(?:<\/\1>|)$/i,D=/^.[^:#\[\.,]*$/;function E(a,b,c){return r.isFunction(b)?r.grep(a,function(a,d){return!!b.call(a,d,a)!==c}):b.nodeType?r.grep(a,function(a){return a===b!==c}):"string"!=typeof b?r.grep(a,function(a){return i.call(b,a)>-1!==c}):D.test(b)?r.filter(b,a,c):(b=r.filter(b,a),r.grep(a,function(a){return i.call(b,a)>-1!==c&&1===a.nodeType}))}r.filter=function(a,b,c){var d=b[0];return c&&(a=":not("+a+")"),1===b.length&&1===d.nodeType?r.find.matchesSelector(d,a)?[d]:[]:r.find.matches(a,r.grep(b,function(a){return 1===a.nodeType}))},r.fn.extend({find:function(a){var b,c,d=this.length,e=this;if("string"!=typeof a)return this.pushStack(r(a).filter(function(){for(b=0;b1?r.uniqueSort(c):c},filter:function(a){return this.pushStack(E(this,a||[],!1))},not:function(a){return this.pushStack(E(this,a||[],!0))},is:function(a){return!!E(this,"string"==typeof a&&A.test(a)?r(a):a||[],!1).length}});var F,G=/^(?:\s*(<[\w\W]+>)[^>]*|#([\w-]+))$/,H=r.fn.init=function(a,b,c){var e,f;if(!a)return this;if(c=c||F,"string"==typeof a){if(e="<"===a[0]&&">"===a[a.length-1]&&a.length>=3?[null,a,null]:G.exec(a),!e||!e[1]&&b)return!b||b.jquery?(b||c).find(a):this.constructor(b).find(a);if(e[1]){if(b=b instanceof r?b[0]:b,r.merge(this,r.parseHTML(e[1],b&&b.nodeType?b.ownerDocument||b:d,!0)),C.test(e[1])&&r.isPlainObject(b))for(e in b)r.isFunction(this[e])?this[e](b[e]):this.attr(e,b[e]);return this}return f=d.getElementById(e[2]),f&&(this[0]=f,this.length=1),this}return a.nodeType?(this[0]=a,this.length=1,this):r.isFunction(a)?void 0!==c.ready?c.ready(a):a(r):r.makeArray(a,this)};H.prototype=r.fn,F=r(d);var I=/^(?:parents|prev(?:Until|All))/,J={children:!0,contents:!0,next:!0,prev:!0};r.fn.extend({has:function(a){var b=r(a,this),c=b.length;return this.filter(function(){for(var a=0;a-1:1===c.nodeType&&r.find.matchesSelector(c,a))){f.push(c);break}return this.pushStack(f.length>1?r.uniqueSort(f):f)},index:function(a){return a?"string"==typeof a?i.call(r(a),this[0]):i.call(this,a.jquery?a[0]:a):this[0]&&this[0].parentNode?this.first().prevAll().length:-1},add:function(a,b){return this.pushStack(r.uniqueSort(r.merge(this.get(),r(a,b))))},addBack:function(a){return this.add(null==a?this.prevObject:this.prevObject.filter(a))}});function K(a,b){while((a=a[b])&&1!==a.nodeType);return a}r.each({parent:function(a){var b=a.parentNode;return b&&11!==b.nodeType?b:null},parents:function(a){return y(a,"parentNode")},parentsUntil:function(a,b,c){return y(a,"parentNode",c)},next:function(a){return K(a,"nextSibling")},prev:function(a){return K(a,"previousSibling")},nextAll:function(a){return y(a,"nextSibling")},prevAll:function(a){return y(a,"previousSibling")},nextUntil:function(a,b,c){return y(a,"nextSibling",c)},prevUntil:function(a,b,c){return y(a,"previousSibling",c)},siblings:function(a){return z((a.parentNode||{}).firstChild,a)},children:function(a){return z(a.firstChild)},contents:function(a){return B(a,"iframe")?a.contentDocument:(B(a,"template")&&(a=a.content||a),r.merge([],a.childNodes))}},function(a,b){r.fn[a]=function(c,d){var e=r.map(this,b,c);return"Until"!==a.slice(-5)&&(d=c),d&&"string"==typeof d&&(e=r.filter(d,e)),this.length>1&&(J[a]||r.uniqueSort(e),I.test(a)&&e.reverse()),this.pushStack(e)}});var L=/[^\x20\t\r\n\f]+/g;function M(a){var b={};return r.each(a.match(L)||[],function(a,c){b[c]=!0}),b}r.Callbacks=function(a){a="string"==typeof a?M(a):r.extend({},a);var b,c,d,e,f=[],g=[],h=-1,i=function(){for(e=e||a.once,d=b=!0;g.length;h=-1){c=g.shift();while(++h-1)f.splice(c,1),c<=h&&h--}),this},has:function(a){return a?r.inArray(a,f)>-1:f.length>0},empty:function(){return f&&(f=[]),this},disable:function(){return e=g=[],f=c="",this},disabled:function(){return!f},lock:function(){return e=g=[],c||b||(f=c=""),this},locked:function(){return!!e},fireWith:function(a,c){return e||(c=c||[],c=[a,c.slice?c.slice():c],g.push(c),b||i()),this},fire:function(){return j.fireWith(this,arguments),this},fired:function(){return!!d}};return j};function N(a){return a}function O(a){throw a}function P(a,b,c,d){var e;try{a&&r.isFunction(e=a.promise)?e.call(a).done(b).fail(c):a&&r.isFunction(e=a.then)?e.call(a,b,c):b.apply(void 0,[a].slice(d))}catch(a){c.apply(void 0,[a])}}r.extend({Deferred:function(b){var c=[["notify","progress",r.Callbacks("memory"),r.Callbacks("memory"),2],["resolve","done",r.Callbacks("once memory"),r.Callbacks("once memory"),0,"resolved"],["reject","fail",r.Callbacks("once memory"),r.Callbacks("once memory"),1,"rejected"]],d="pending",e={state:function(){return d},always:function(){return f.done(arguments).fail(arguments),this},"catch":function(a){return e.then(null,a)},pipe:function(){var a=arguments;return r.Deferred(function(b){r.each(c,function(c,d){var e=r.isFunction(a[d[4]])&&a[d[4]];f[d[1]](function(){var a=e&&e.apply(this,arguments);a&&r.isFunction(a.promise)?a.promise().progress(b.notify).done(b.resolve).fail(b.reject):b[d[0]+"With"](this,e?[a]:arguments)})}),a=null}).promise()},then:function(b,d,e){var f=0;function g(b,c,d,e){return function(){var h=this,i=arguments,j=function(){var a,j;if(!(b=f&&(d!==O&&(h=void 0,i=[a]),c.rejectWith(h,i))}};b?k():(r.Deferred.getStackHook&&(k.stackTrace=r.Deferred.getStackHook()),a.setTimeout(k))}}return r.Deferred(function(a){c[0][3].add(g(0,a,r.isFunction(e)?e:N,a.notifyWith)),c[1][3].add(g(0,a,r.isFunction(b)?b:N)),c[2][3].add(g(0,a,r.isFunction(d)?d:O))}).promise()},promise:function(a){return null!=a?r.extend(a,e):e}},f={};return r.each(c,function(a,b){var g=b[2],h=b[5];e[b[1]]=g.add,h&&g.add(function(){d=h},c[3-a][2].disable,c[0][2].lock),g.add(b[3].fire),f[b[0]]=function(){return f[b[0]+"With"](this===f?void 0:this,arguments),this},f[b[0]+"With"]=g.fireWith}),e.promise(f),b&&b.call(f,f),f},when:function(a){var b=arguments.length,c=b,d=Array(c),e=f.call(arguments),g=r.Deferred(),h=function(a){return function(c){d[a]=this,e[a]=arguments.length>1?f.call(arguments):c,--b||g.resolveWith(d,e)}};if(b<=1&&(P(a,g.done(h(c)).resolve,g.reject,!b),"pending"===g.state()||r.isFunction(e[c]&&e[c].then)))return g.then();while(c--)P(e[c],h(c),g.reject);return g.promise()}});var Q=/^(Eval|Internal|Range|Reference|Syntax|Type|URI)Error$/;r.Deferred.exceptionHook=function(b,c){a.console&&a.console.warn&&b&&Q.test(b.name)&&a.console.warn("jQuery.Deferred exception: "+b.message,b.stack,c)},r.readyException=function(b){a.setTimeout(function(){throw b})};var R=r.Deferred();r.fn.ready=function(a){return R.then(a)["catch"](function(a){r.readyException(a)}),this},r.extend({isReady:!1,readyWait:1,ready:function(a){(a===!0?--r.readyWait:r.isReady)||(r.isReady=!0,a!==!0&&--r.readyWait>0||R.resolveWith(d,[r]))}}),r.ready.then=R.then;function S(){d.removeEventListener("DOMContentLoaded",S),
-a.removeEventListener("load",S),r.ready()}"complete"===d.readyState||"loading"!==d.readyState&&!d.documentElement.doScroll?a.setTimeout(r.ready):(d.addEventListener("DOMContentLoaded",S),a.addEventListener("load",S));var T=function(a,b,c,d,e,f,g){var h=0,i=a.length,j=null==c;if("object"===r.type(c)){e=!0;for(h in c)T(a,b,h,c[h],!0,f,g)}else if(void 0!==d&&(e=!0,r.isFunction(d)||(g=!0),j&&(g?(b.call(a,d),b=null):(j=b,b=function(a,b,c){return j.call(r(a),c)})),b))for(;h1,null,!0)},removeData:function(a){return this.each(function(){X.remove(this,a)})}}),r.extend({queue:function(a,b,c){var d;if(a)return b=(b||"fx")+"queue",d=W.get(a,b),c&&(!d||Array.isArray(c)?d=W.access(a,b,r.makeArray(c)):d.push(c)),d||[]},dequeue:function(a,b){b=b||"fx";var c=r.queue(a,b),d=c.length,e=c.shift(),f=r._queueHooks(a,b),g=function(){r.dequeue(a,b)};"inprogress"===e&&(e=c.shift(),d--),e&&("fx"===b&&c.unshift("inprogress"),delete f.stop,e.call(a,g,f)),!d&&f&&f.empty.fire()},_queueHooks:function(a,b){var c=b+"queueHooks";return W.get(a,c)||W.access(a,c,{empty:r.Callbacks("once memory").add(function(){W.remove(a,[b+"queue",c])})})}}),r.fn.extend({queue:function(a,b){var c=2;return"string"!=typeof a&&(b=a,a="fx",c--),arguments.length\x20\t\r\n\f]+)/i,la=/^$|\/(?:java|ecma)script/i,ma={option:[1,""," "],thead:[1,""],col:[2,""],tr:[2,""],td:[3,""],_default:[0,"",""]};ma.optgroup=ma.option,ma.tbody=ma.tfoot=ma.colgroup=ma.caption=ma.thead,ma.th=ma.td;function na(a,b){var c;return c="undefined"!=typeof a.getElementsByTagName?a.getElementsByTagName(b||"*"):"undefined"!=typeof a.querySelectorAll?a.querySelectorAll(b||"*"):[],void 0===b||b&&B(a,b)?r.merge([a],c):c}function oa(a,b){for(var c=0,d=a.length;c-1)e&&e.push(f);else if(j=r.contains(f.ownerDocument,f),g=na(l.appendChild(f),"script"),j&&oa(g),c){k=0;while(f=g[k++])la.test(f.type||"")&&c.push(f)}return l}!function(){var a=d.createDocumentFragment(),b=a.appendChild(d.createElement("div")),c=d.createElement("input");c.setAttribute("type","radio"),c.setAttribute("checked","checked"),c.setAttribute("name","t"),b.appendChild(c),o.checkClone=b.cloneNode(!0).cloneNode(!0).lastChild.checked,b.innerHTML="x ",o.noCloneChecked=!!b.cloneNode(!0).lastChild.defaultValue}();var ra=d.documentElement,sa=/^key/,ta=/^(?:mouse|pointer|contextmenu|drag|drop)|click/,ua=/^([^.]*)(?:\.(.+)|)/;function va(){return!0}function wa(){return!1}function xa(){try{return d.activeElement}catch(a){}}function ya(a,b,c,d,e,f){var g,h;if("object"==typeof b){"string"!=typeof c&&(d=d||c,c=void 0);for(h in b)ya(a,h,c,d,b[h],f);return a}if(null==d&&null==e?(e=c,d=c=void 0):null==e&&("string"==typeof c?(e=d,d=void 0):(e=d,d=c,c=void 0)),e===!1)e=wa;else if(!e)return a;return 1===f&&(g=e,e=function(a){return r().off(a),g.apply(this,arguments)},e.guid=g.guid||(g.guid=r.guid++)),a.each(function(){r.event.add(this,b,e,d,c)})}r.event={global:{},add:function(a,b,c,d,e){var f,g,h,i,j,k,l,m,n,o,p,q=W.get(a);if(q){c.handler&&(f=c,c=f.handler,e=f.selector),e&&r.find.matchesSelector(ra,e),c.guid||(c.guid=r.guid++),(i=q.events)||(i=q.events={}),(g=q.handle)||(g=q.handle=function(b){return"undefined"!=typeof r&&r.event.triggered!==b.type?r.event.dispatch.apply(a,arguments):void 0}),b=(b||"").match(L)||[""],j=b.length;while(j--)h=ua.exec(b[j])||[],n=p=h[1],o=(h[2]||"").split(".").sort(),n&&(l=r.event.special[n]||{},n=(e?l.delegateType:l.bindType)||n,l=r.event.special[n]||{},k=r.extend({type:n,origType:p,data:d,handler:c,guid:c.guid,selector:e,needsContext:e&&r.expr.match.needsContext.test(e),namespace:o.join(".")},f),(m=i[n])||(m=i[n]=[],m.delegateCount=0,l.setup&&l.setup.call(a,d,o,g)!==!1||a.addEventListener&&a.addEventListener(n,g)),l.add&&(l.add.call(a,k),k.handler.guid||(k.handler.guid=c.guid)),e?m.splice(m.delegateCount++,0,k):m.push(k),r.event.global[n]=!0)}},remove:function(a,b,c,d,e){var f,g,h,i,j,k,l,m,n,o,p,q=W.hasData(a)&&W.get(a);if(q&&(i=q.events)){b=(b||"").match(L)||[""],j=b.length;while(j--)if(h=ua.exec(b[j])||[],n=p=h[1],o=(h[2]||"").split(".").sort(),n){l=r.event.special[n]||{},n=(d?l.delegateType:l.bindType)||n,m=i[n]||[],h=h[2]&&new RegExp("(^|\\.)"+o.join("\\.(?:.*\\.|)")+"(\\.|$)"),g=f=m.length;while(f--)k=m[f],!e&&p!==k.origType||c&&c.guid!==k.guid||h&&!h.test(k.namespace)||d&&d!==k.selector&&("**"!==d||!k.selector)||(m.splice(f,1),k.selector&&m.delegateCount--,l.remove&&l.remove.call(a,k));g&&!m.length&&(l.teardown&&l.teardown.call(a,o,q.handle)!==!1||r.removeEvent(a,n,q.handle),delete i[n])}else for(n in i)r.event.remove(a,n+b[j],c,d,!0);r.isEmptyObject(i)&&W.remove(a,"handle events")}},dispatch:function(a){var b=r.event.fix(a),c,d,e,f,g,h,i=new Array(arguments.length),j=(W.get(this,"events")||{})[b.type]||[],k=r.event.special[b.type]||{};for(i[0]=b,c=1;c=1))for(;j!==this;j=j.parentNode||this)if(1===j.nodeType&&("click"!==a.type||j.disabled!==!0)){for(f=[],g={},c=0;c-1:r.find(e,this,null,[j]).length),g[e]&&f.push(d);f.length&&h.push({elem:j,handlers:f})}return j=this,i\x20\t\r\n\f]*)[^>]*)\/>/gi,Aa=/
-
-
- {% include get_active_front_theme()+'/sections/drawer_head.html'%}
-
-
- {% include 'base/blocks/flashed_messages.html' %}
- {% include get_active_front_theme()+'/sections/nav.html'%}
-
-
- {% include get_active_front_theme()+'/sections/carousel.html'%}
-
-
- {% include get_active_front_theme()+'/sections/image_row.html'%}
-
-
-
-
WELCOME TO FREAKS BOUTIQUE
-
-
About Us
-
-
-
-
-
-
-
HOME DELIVERY
-
PLAINE WILHEMS ONLY
-
-
-
-
-
OUR CATEGORIES
-
-
-
-
- {%for category in get_categories()%}
- {%if category.name.upper() != 'UNCATEGORISED'%}
-
-
- {%endif%}
- {%endfor%}
-
-
-
-
-
NEW PRODUCTS
-
-
- {%set target_prds = get_products()[::-1]%}
- {%set target_num=5%}
- {%if len(target_prds) >= 5%}
-
- {%else%}
- {%set target_num=len(target_prds)%}
- {%endif%}
- {%for i in range(target_num)%}
-
- {%set product = target_prds[i]%}
-
- {%endfor%}
-
-
-
-
FOLLOW US ON FB AND INSTAGRAM
-
-
-
-
SIGN UP & BE THE FIRST TO KNOW
-
-
-
-
-
-
-
-
- Submit
-
-
-
-
-
-
-
- {% include get_active_front_theme()+'/sections/footer.html'%}
-
-