aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorUMTS at Teleco <umts@teleco.ch>2025-02-14 03:12:25 +0100
committerUMTS at Teleco <umts@teleco.ch>2025-02-14 03:12:25 +0100
commitf402e0c96a52c73ab390b76f637af3ccde6ac8b2 (patch)
tree01cfbe1cf5d2a7864f38d3cf0a42c43dd3899c96
initial upload ... somewhat cleaned up and "less" swearing included
-rw-r--r--.DS_Storebin0 -> 8196 bytes
-rw-r--r--README.md142
-rw-r--r--admin/.DS_Storebin0 -> 6148 bytes
-rw-r--r--admin/assets/.DS_Storebin0 -> 6148 bytes
-rw-r--r--admin/assets/svg/.DS_Storebin0 -> 6148 bytes
-rw-r--r--admin/assets/svg/teleco.svg242
-rw-r--r--admin/backup_database.php37
-rw-r--r--admin/index.php110
-rw-r--r--admin/tools/edit_database.php361
-rw-r--r--admin/tools/edit_row.php80
-rw-r--r--admin/tools/manage_files.php222
-rw-r--r--common/functions.php171
-rw-r--r--common/navbar.php98
-rw-r--r--common/navbarjs.php151
-rw-r--r--config.php48
-rw-r--r--website/.DS_Storebin0 -> 6148 bytes
-rw-r--r--website/content.dbbin0 -> 57344 bytes
-rw-r--r--website/public/assets/.DS_Storebin0 -> 8196 bytes
-rw-r--r--website/public/assets/css/tc.css452
-rw-r--r--website/public/assets/img/.DS_Storebin0 -> 6148 bytes
-rw-r--r--website/public/assets/img/code-is-ass.jpegbin0 -> 125397 bytes
-rw-r--r--website/public/assets/img/dialon.pngbin0 -> 1060 bytes
-rw-r--r--website/public/assets/img/force.pngbin0 -> 13702 bytes
-rw-r--r--website/public/assets/img/fuck-main.jpegbin0 -> 52032 bytes
-rw-r--r--website/public/assets/img/fuckjs.jpegbin0 -> 238746 bytes
-rw-r--r--website/public/assets/img/jsmomentom.jpgbin0 -> 97318 bytes
-rw-r--r--website/public/assets/img/router1.jpgbin0 -> 436173 bytes
-rw-r--r--website/public/assets/img/router2.jpgbin0 -> 423872 bytes
-rw-r--r--website/public/assets/img/rover.pngbin0 -> 39810 bytes
-rw-r--r--website/public/assets/img/ssc.jpgbin0 -> 1451164 bytes
-rw-r--r--website/public/assets/img/wrong.pngbin0 -> 1466131 bytes
-rw-r--r--website/public/assets/svg/teleco.svg242
-rw-r--r--website/public/index.php121
-rw-r--r--website2/.DS_Storebin0 -> 6148 bytes
-rw-r--r--website2/content2.dbbin0 -> 57344 bytes
-rw-r--r--website2/public/assets/.DS_Storebin0 -> 8196 bytes
-rw-r--r--website2/public/assets/css/tc.css452
-rw-r--r--website2/public/assets/img/.DS_Storebin0 -> 6148 bytes
-rw-r--r--website2/public/assets/img/code-is-ass.jpegbin0 -> 125397 bytes
-rw-r--r--website2/public/assets/img/dialon.pngbin0 -> 1060 bytes
-rw-r--r--website2/public/assets/img/force.pngbin0 -> 13702 bytes
-rw-r--r--website2/public/assets/img/fuck-main.jpegbin0 -> 52032 bytes
-rw-r--r--website2/public/assets/img/fuckjs.jpegbin0 -> 238746 bytes
-rw-r--r--website2/public/assets/img/jsmomentom.jpgbin0 -> 97318 bytes
-rw-r--r--website2/public/assets/img/router1.jpgbin0 -> 436173 bytes
-rw-r--r--website2/public/assets/img/router2.jpgbin0 -> 423872 bytes
-rw-r--r--website2/public/assets/img/rover.pngbin0 -> 39810 bytes
-rw-r--r--website2/public/assets/img/ssc.jpgbin0 -> 1451164 bytes
-rw-r--r--website2/public/assets/img/wrong.pngbin0 -> 1466131 bytes
-rw-r--r--website2/public/assets/svg/teleco.svg242
-rw-r--r--website2/public/index.php120
-rw-r--r--website3/.DS_Storebin0 -> 6148 bytes
-rw-r--r--website3/content3.dbbin0 -> 57344 bytes
-rw-r--r--website3/public/assets/.DS_Storebin0 -> 8196 bytes
-rw-r--r--website3/public/assets/css/dialon.css313
-rw-r--r--website3/public/assets/css/extras.css180
-rw-r--r--website3/public/assets/css/hamburger.css138
-rw-r--r--website3/public/assets/css/navbar.css224
-rw-r--r--website3/public/assets/fonts/.DS_Storebin0 -> 6148 bytes
-rw-r--r--website3/public/assets/fonts/default.ttfbin0 -> 51316 bytes
-rw-r--r--website3/public/assets/img/.DS_Storebin0 -> 6148 bytes
-rw-r--r--website3/public/assets/img/code-is-ass.jpegbin0 -> 125397 bytes
-rw-r--r--website3/public/assets/img/dialon.pngbin0 -> 1060 bytes
-rw-r--r--website3/public/assets/img/force.pngbin0 -> 13702 bytes
-rw-r--r--website3/public/assets/img/fuck-main.jpegbin0 -> 52032 bytes
-rw-r--r--website3/public/assets/img/fuckjs.jpegbin0 -> 238746 bytes
-rw-r--r--website3/public/assets/img/jsmomentom.jpgbin0 -> 97318 bytes
-rw-r--r--website3/public/assets/img/router1.jpgbin0 -> 436173 bytes
-rw-r--r--website3/public/assets/img/router2.jpgbin0 -> 423872 bytes
-rw-r--r--website3/public/assets/img/rover.pngbin0 -> 39810 bytes
-rw-r--r--website3/public/assets/img/ssc.jpgbin0 -> 1451164 bytes
-rw-r--r--website3/public/assets/img/wrong.pngbin0 -> 1466131 bytes
-rw-r--r--website3/public/assets/js/chat.js94
-rw-r--r--website3/public/assets/js/menu.js40
-rw-r--r--website3/public/assets/svg/teleco.svg242
-rw-r--r--website3/public/index.php190
-rw-r--r--website4/.DS_Storebin0 -> 6148 bytes
-rw-r--r--website4/content4.dbbin0 -> 57344 bytes
-rw-r--r--website4/public/assets/.DS_Storebin0 -> 8196 bytes
-rw-r--r--website4/public/assets/css/dialon.css313
-rw-r--r--website4/public/assets/css/extras.css180
-rw-r--r--website4/public/assets/css/hamburger.css138
-rw-r--r--website4/public/assets/css/navbar.css224
-rw-r--r--website4/public/assets/fonts/.DS_Storebin0 -> 6148 bytes
-rw-r--r--website4/public/assets/fonts/default.ttfbin0 -> 51316 bytes
-rw-r--r--website4/public/assets/img/.DS_Storebin0 -> 6148 bytes
-rw-r--r--website4/public/assets/img/code-is-ass.jpegbin0 -> 125397 bytes
-rw-r--r--website4/public/assets/img/dialon.pngbin0 -> 1060 bytes
-rw-r--r--website4/public/assets/img/force.pngbin0 -> 13702 bytes
-rw-r--r--website4/public/assets/img/fuck-main.jpegbin0 -> 52032 bytes
-rw-r--r--website4/public/assets/img/fuckjs.jpegbin0 -> 238746 bytes
-rw-r--r--website4/public/assets/img/jsmomentom.jpgbin0 -> 97318 bytes
-rw-r--r--website4/public/assets/img/router1.jpgbin0 -> 436173 bytes
-rw-r--r--website4/public/assets/img/router2.jpgbin0 -> 423872 bytes
-rw-r--r--website4/public/assets/img/rover.pngbin0 -> 39810 bytes
-rw-r--r--website4/public/assets/img/ssc.jpgbin0 -> 1451164 bytes
-rw-r--r--website4/public/assets/img/wrong.pngbin0 -> 1466131 bytes
-rw-r--r--website4/public/assets/js/chat.js94
-rw-r--r--website4/public/assets/js/menu.js40
-rw-r--r--website4/public/assets/svg/teleco.svg242
-rw-r--r--website4/public/index.php190
101 files changed, 6133 insertions, 0 deletions
diff --git a/.DS_Store b/.DS_Store
new file mode 100644
index 0000000..e43f1e1
--- /dev/null
+++ b/.DS_Store
Binary files differ
diff --git a/README.md b/README.md
new file mode 100644
index 0000000..f482ce7
--- /dev/null
+++ b/README.md
@@ -0,0 +1,142 @@
+# TC-C-CMS
+
+Welcome to **TC-C-CMS** (Teleco's Crappy Content Management System)!
+This project consists mostly of some loose and very basic code that helps you manage content for your websites and make them (to some degree) usable!
+
+## Project "Structure"
+(i included this because this is what "professionals" are supposed to do ... i am not a professional however)
+
+### **adminier folder (no login system because that's your job)**
+Contains the admin welcome panel, backup database function, and links to edit the database (**very very very fragile**).
+Please, if you dare use this in production, make many database backups becaus I wrote this entire thing from the ground up myself.
+
+It also contains a **file manager** that can back up the entire website folder along with the database, as well as upload and manage files (also written by me, poorly).
+
+- **admin/**: Contains the admin panel for managing the CMS.
+ - **tools/**: Includes various tools described above.
+ - **index.php**: The main entry point for the admin panel.
+ - **backup_databases.php**: Makes database backups and stuff.
+
+### **Common rendering utilities**
+Contains common things needed to render websites with beautiful PHP. Mmm yes, I love PHP ❤️❤️❤️. **JS bad!**
+
+- **common/**: Shared resources and functions used across different websites.
+ - **functions.php**: Common functions and variables used throughout the CMS.
+ - **navbar.php**: Functions for rendering the standard PURE HTML NO JS navbar.
+ - **navbarjs.php**: Functions for rendering the JavaScript kinda required navbar.
+---
+
+## **Included Website Templates**
+
+### **Website 1**
+- Sidebars only, no navbar, no JS at all.
+- Semi-mobile optimized.
+- **Template name:** *einfach geil*
+
+- **website/**: Contains the public-facing code for the first template.
+ - **public/**: The public directory for the first website.
+ - **index.php**: The main entry point.
+
+### **Website 2**
+- Navbar only, no sidebars.
+- You can mix and match stuff, but I haven't (yet).
+- **Template name:** *fick geil jaman*
+
+- **website2/**: Contains the public-facing code for the second template.
+ - **public/**:
+ - **index.php**: The main entry point.
+
+### **Website 3**
+- Sidebars only, no navbar.
+- Some small, goofy JS (ew, I know).
+- Has **cat virtual support**.
+- **Template name:** *Ich hasse JS number 1 geh kotzen*
+
+- **website3/**:
+ - **public/**:
+ - **index.php**
+
+### **Website 4**
+- Navbar only, no sidebars.
+- Some small, goofy JS (ew, I know).
+- Has **cat virtual support**.
+- **Template name:** *Ich hasse JS nummer 2 flatterschiss*
+
+- **website4/**:
+ - **public/**:
+ - **index.php**
+---
+
+## **Getting Started**
+
+### **Cool, I don’t care. What can it do and how do I use it?**
+You can make basic **goofy ahh sites** and dynamically change things from the admin panel.
+This includes creating pages and posts, adding navbar/sidebar entries, and uploading files.
+It's like... *wow, so super premium* (irony).
+
+### **TL;DR**
+It’s so simple to run that I could do it in my sleep, blindfolded, and without any sense of touch.
+There are **4 basic website templates** in this repo, based on actual sites I run (or plan to run soon with this tool).
+---
+
+### **What do you need to get started?**
+- Install SQLite and PHP on whatever potato PC you have lying around.
+- How you install PHP on your potato machine? IDK. (Add description for Mac, Debian, and Linux but **omit Windows** because we hate Windows. If someone opens an issue asking how to run this on Windows, I will not answer it.)
+
+Unlike normal CMSs that go *brrrrrr* with a million Composer dependencies, this one **doesn't**.
+Honestly, you could even run this **without a web server** if you run two PHP dev servers and set folder permissions so that the user-exposed PHP dev server can’t access admin parts (but the admin one can).
+I **do not endorse or recommend this**, it’s just a *"yeah, you can do this"* kind of thing.
+
+### **Run it in 2 steps**
+1. Run:
+ `php -S localhost:8000`
+ in the root directory.
+2. Open in your browser:
+ [http://localhost:8000/website4/public/](http://localhost:8000/website4/public/)
+
+And *voilà*! You have a pretty website! 🎉
+---
+
+### **Editing Content**
+If you want to edit its content:
+
+1. Go to **[http://localhost:8000/admin/](http://localhost:8000/admin/)**
+2. Click **edit database** to mess with it (and pray).
+
+⚠ **Warning:** Don’t be shocked when you see **literally no CSS** after the initial admin panel.
+This is a *design choice* I made because **f*** bloat and JS**.
+
+I *could* explain how to do things in the admin panel, but it should be **self-explanatory** if you look at the database examples.
+
+### **Navbar vs Sidebar**
+There are **two main layouts**:
+- **Navbar only** → Website 2 (pure HTML, no JS at all) and Website 4 (some JS, ewww).
+- **Sidebars only** → Website 1 and Website 3.
+---
+
+## **Features**
+- **Multi-site support**: Manage multiple websites from a single CMS.
+- **Customizable navigation**: Easily configure and render navigation bars.
+- **Admin panel**: Manage content, files, and databases via a purposely painful UI.
+- **Responsive design**: Ensures your websites *kind of* work on mobile.
+---
+
+## **Contributing**
+You **can** contribute if you want…
+…but I doubt anyone will.
+
+💀 **ashdoiasjhdkljahspdoisfopiud fpoisdamupfn oiseupnf98i** 💀
+---
+
+## **License**
+This project is licensed under the **MIT License**.
+See the [LICENSE](LICENSE) file for details.
+
+Basically:
+- **No warranty.**
+- **No responsibility.**
+- **I barely know how to code.**
+---
+
+### **Made with love for PHP and pure hatred for JavaScript by T.B.** ❤️ 🚀
+*ps if you want to know why theres no real commit history as of now 2025-02-14 its because of my tendency to swear in them and I wanted to not spoil this project too much with that yet...* \ No newline at end of file
diff --git a/admin/.DS_Store b/admin/.DS_Store
new file mode 100644
index 0000000..e7b14c9
--- /dev/null
+++ b/admin/.DS_Store
Binary files differ
diff --git a/admin/assets/.DS_Store b/admin/assets/.DS_Store
new file mode 100644
index 0000000..5c248b5
--- /dev/null
+++ b/admin/assets/.DS_Store
Binary files differ
diff --git a/admin/assets/svg/.DS_Store b/admin/assets/svg/.DS_Store
new file mode 100644
index 0000000..5008ddf
--- /dev/null
+++ b/admin/assets/svg/.DS_Store
Binary files differ
diff --git a/admin/assets/svg/teleco.svg b/admin/assets/svg/teleco.svg
new file mode 100644
index 0000000..1cbb190
--- /dev/null
+++ b/admin/assets/svg/teleco.svg
@@ -0,0 +1,242 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg id="Layer_1" xmlns="http://www.w3.org/2000/svg" version="1.1" viewBox="0 0 437.8 368.6">
+ <!-- Generator: Adobe Illustrator 29.1.0, SVG Export Plug-In . SVG Version: 2.1.0 Build 142) Yea i know this logo is partially made from a png will fix someday -->
+ <defs>
+ <style>
+ .st0 {
+ fill: #d22627;
+ }
+
+ .st1 {
+ fill: #010101;
+ }
+ </style>
+ </defs>
+ <g id="Layer_2">
+ <g id="Layer_2-2">
+ <path d="M85.3,28c-.6,0-1.7.3-1.8-.3.8-.4,1-1.7,1.4-2,1.2-1,3-.1,3.2-2.3,0-1,2.4-1.3,3.2-2.1,1.8-.2.5.8,0,1.1-.8.4-2.2.4-2.1,1.3,1.2,0,3-.5,3.9-1.2.1,0,1.9-1.7,2-1.8.2-.4-.3-1.1-.2-1.2.2-.2,4.9-2.3,5.3-2.4,1-.3,2.1.8,3.3.6l-.6-1.9c14.7-5.6,29.5-10.8,45-13.6,125.2-22.8,242.2,67.7,250.8,194.5,2.3,34.5-4.7,69.2-18.6,100.8-1.5,3.5-4,6.7-5.2,9.6-.9,2.3-2.3,5.6-3.6,7.6-.5.7-1.2,1.1-.8-.2v-3.5c0,0-1.9,1.2-1.9,1.2l1.9-5.5-3.1,3.1,1.3-5.5-3.4,3.7-.3-2.5-4.3,1.2,1-5.5-4.4,4.9c-2.3-2,.1-4.6.4-6.8-1.3.8-4.3,6.6-5.9,6.1-2.2-.7.6-5.9.4-7.4l-3.1,4.6c-4,4.3-4.6,1.9-4-2.8,0-.6,1-1.9-.3-1.9-.4,2.2-4.7,9-6.8,5.7-1.2-1.9-.2-2.5,0-4.2,0-.6.3-1.7-.6-1.6-.2,2.3-5.5,9.5-7.4,5.7-1.1-2.2-.1-4,0-6.4-1.6,1.3-2.3,5-3.9,6.6s-4.3,2.3-5.1-.5c-1.3-4.1,1.4-11.2,5.1-13.6,4.8-3.1,4,4.9,4,7.5,1.1-.9,1.8-5.2,4-7.2,4.6-4.4,5.4,2.4,4.7,6l2.2-4.3c1.5-1.5,2.7-3.7,5.2-3,1.2,2.3.4,3.7,0,5.9-.1.6-.4,1.7.6,1.5.7-2.2,1.9-5.1,3.8-6.4,4.5-3.1,3,3.7,2.4,6.5l2.2-3.6,3.1-3.1c2.6,1.8,1.1,3.7.9,6.2l3.7-4,1.5-.3v5.6c2.6-2.3,2.1-5.4,2.8-8.6-3.9,3.1-3.9-.4-3-3.7-1.6,1.3-5.8,7.6-6.2,2.1,0-.9.6-3.4-.6-3.4-.8,2.2-2.5,5.3-5.3,4.9-.4,0-.7-1.3-.8-1.7-.2-1.3.1-2.8-.4-3.9-1.9,2.2-5.1,8.5-7.5,3.7l-.9-4.4c-.4,3.9-6.9,9.7-8,3.3-.2-1.3.8-3.2-1.2-2.8-.4,3.5-6.1,8.7-8.2,4.1-.7-1.5-.2-2.8-.7-4.2-1.8,2-2.1,5-4.9,6.3-4.3,1.9-4.7-1.4-5.7-4.5-.2-.6-.1-1.4-.9-1.2-.1,4.4-6.2,10.5-9.6,5.4-2.2-3.4-.8-11.6,2.6-14.2.5-.4,2.7-.9,1.6-1.8-.2-.2-1.3-.3-2.2-1.2-1.1-1.2-1.3-2.7-2.4-3.8-.8,1.3-1.2,2.8-2.2,4-3.7,4.8-8.3,3.5-10.5-1.9-.9-2.2-1.5,1.3-1.8,1.9-1.4,2.9-5.4,6.1-8.6,4.6-5.5-2.6-5.5-12.4-1.5-16.2.9-.8,1.9-.2,1.5-1.8-2.9-.3-4.3-2.9-5.8-5l-1.9,4.3-3.4,3.7c10.2,1,7,20.1-2.8,17.8-5.2-1.2-5.7-10.1-3.6-14.1l4-3.7c-2.5-.1-5-1.8-6.4-3.8-.6-.9-.6-2.4-1.5-2.5-.2,7.9-8.6,13-13.9,5.4-2.9-4.2-2.1-11.4,2.3-14.5-2.8-1.5-5.6-2.7-7-5.9-1.4,1.8-1,3.6-2.5,5.6-2.4,3.1-6,4.3-9.6,2.6-3.1-1.4-3.9-4.4-5.5-7.1.3-4.7,0-7.6,3.8-11.1-3.5-.4-5.5-2.6-7.7-5-.6,1.3-.8,2.8-1.5,4.1-1.5,3.2-3.2,3.3-5.7,5.1-2.6-.2-4.7-.4-7-2-1.8-1.2-2.8-3.4-4.1-4.9.2,4.9-1.2,10-6.7,10.9-7.8,1.3-12.9-9.5-8.6-15.6,3.5-4.9,10.8-3.9,13.6,1.1.8,1.4.8,2.5,1.7,3.5,0-1.9-.7-3.2-.4-5.1.4-2.9,2-4.9,3.6-7.2-3.9-.5-6.1-3-8.6-5.6.9,10.1-11.8,13.8-16.6,5-3-5.5-1.9-10.1,2.5-14.4-4,.4-7-2.2-9.5-5l-1.1,5.1c-2.9,5.9-10.4,6.8-14.7,1.9-2.9-3.4-3.5-9.7-.8-13.2l2.8-2.5c-3.2.2-7.7-1.6-9.5-4.4-.9-1.4-.5-2.2-1.5-3.1-.2,4.7.8,7.9-3.5,11.1-8.7,6.5-17.8-6.6-11.6-14.3,3.7-4.6,9.8-4.2,13.3.4.9,1.2.8,1.9,1.8,2.8.2-4.4-.8-8.3,3.2-11.4-1.2-1.4-3.3-1-4.9-1.9s-2.6-3.2-4.3-4c1.8,10.5-12.1,15.4-16.6,5.6-2.2-4.8-1.4-9.6,3.1-12.8,5-3.5,9.2-.9,12.9,2.9-.4-3.6.7-6.6,3.2-9.2-3.2-.5-5.7-2.3-8-4.4,0,6.9-7.7,12.5-13.9,8.4-5.2-3.4-5.3-11-1.5-15.5.6-.7,1.7-.7,1.9-1.6-3.4.3-8.1-1.1-8.6-5l-1.4,4.5c-1.9,5.8-9.4,9.4-13.8,4-6.2-7.5,4-19.9,11.6-13.8,1.1.9,1.2,2.3,2.4,2.8-.6-4.1,1.8-6.7,3.8-9.8-3.4.3-5-1.8-7.4-3.8-.6,5.6-5.4,11-11.4,9.6s-5.9-10-2.2-13.8c.9-1,2.6-1.3,3.1-2.7-3.1.8-6.1.7-7.9-2.3-3.2-5.4.9-8.8,4.4-12.5-5.3.5-8.1-.7-7.3-6.5.5-3.5,2.8-4.8,5-7.1-7.4,1-8-4.6-4.2-9.6l3.1-2.7c-9.2.8-6.2-7.1-1.1-10.8-1.6-.8-4,.6-4.3-1.9-.5-3.8,2.2-6.1,5-8-.4-.9-1.5.2-2.2.3-2.9,0-2.6-2.5-1.4-4.5.9-1.6,2.9-2.6,4.3-3.8-1.1-.7-2.8.3-3.7-1.3.9-2.7,2.9-4.4,5.6-5.2,0-1.6-3.5.5-3.1-1.6.4-1.9,2.5-2.5,3.7-3.7-.7-.9-.8-1.1-1.9-.7-.5.2-4.6,3-5.4,3.5-.2.1,0,.4-.1.5.6,0,3.2-.4,2.5.9-1.1,2.2-5.1,4-7.2,5.2-2-1.3.4-3,1.6-3.9,1-.8,2.2-1.5,3.1-2.2h0ZM97.6,23.2c.2-1.2.9-.4,2.1-.7,1.4-.4.8-3,.1-3-1,1.6-2.1,2.7-4,3-.2,1.1,1.1.6,1.8.6-.2,1.1,0,2-1,3.1l-3.4,2.5h2.7l.7,1.3c1.6-1.1,1.8-3.6,4.1-3.7v-.6c-2.2.2-1.5-1.9-1.9-2.5-.1-.2-.8,0-1.2,0h0s0,0,0,0ZM123,23.4c-2-.3-4.2,0-4.3,2.4,2.8.5,3.1-.1,4.3-2.4ZM109.2,30.7l1.9-2.7-3-1.6c-.1,1.7-1.9,2.3-2.6,3.7l3.6.6h0ZM123.4,33.3c0,0,.4-1,.7-1.5.4-.7.9-1.2-.3-1.5-1.9-.5-2.9,1-4,2.1.7.4,3.2,1.2,3.6.9h0ZM100,31.9l-3.7-1.3-.6,1.5-3.8,3.3c2-.2,3.4-.1,4.9,1.3,0-2.2,2.1-3.2,3.1-4.9h0ZM112.3,35.1l-3.7-1.3c-.1,2-2.4,2.6-3.1,4.3l4.3.6,2.6-3.7h0ZM137,36.5c.9.4,4.4.7,4.3-.9s-4.1-1.1-4.3.9ZM100.6,39.3c-1.6,0-3,.2-4-1.3l-4.7,5.5c2.2-.5,3.2.9,4.9,1.3.1-2.5,2.6-3.6,3.8-5.5h0ZM124.3,38.4l-2.2,2.7,2.8,1.5,2.2-2.7s-2.8-1.5-2.8-1.5ZM113.5,43.7l-3.3-.6-2.9,3.3c0,.7,3.9,2,4.3,1.6l1.9-4.3h0ZM142.3,44.7c-.9.3-2.3,1.9-.7,2.4,1.1.3,3.4-.7,3.4-1.5s-1.8-1.1-2.7-.9h0ZM100.5,49.1l-4.3-1.9c-.2,3-3.3,4.1-5,6.1,2.5-.7,4.1-.4,6.2,1.3.3-2.2,1.9-3.8,3.1-5.5h0ZM130.1,49.4l-3.3-.6-2.3,3c1.4.3,2.8,1,4.2.6l1.3-3h0ZM115.9,54.2c-1.7.2-2.9-.5-4.3-1.3l-3.1,4.9c1.9-.2,3.3.3,4.9,1.3-.5-1.3,3.2-4.3,2.5-4.9ZM149.2,56.4c-4.5-2.4-5.8,3.6-1.6,2.4.8-.2,1.3-1.7,1.6-2.4ZM101.6,59.6c-2.5.7-3-1.8-4.9-1.9.9,1.6-4.1,5.9-3.8,6.1,2.1-.1,3.9.7,5.5,1.9l.5-1.7,2.6-4.5h0ZM133.7,61.2c-1.3,0-2.4-.4-3.4-1.2l-2.8,3.6,4.3,1.3s1.9-3.7,1.9-3.7ZM170.1,64.6l-2.5-.6-.6,2.5c2.1.8,3.3.9,3.1-1.8h0ZM115.7,71.5c.2-1.8,1.6-3.1,2.5-4.6l-4-2.2-3.4,4.9,4.9,1.9h0ZM153.4,69.4l-3.1-1.3-1.3,2.8,2.8,1.5c.6,0,1.9-2.7,1.6-3ZM104,72c-2.3,0-3.9-1.1-5.5-2.5.2,3.2-2.9,4.4-4.4,6.8,2.6-.2,4.3.9,6.2,2.5.3-2.7,2.2-4.7,3.8-6.8h0ZM137.3,74.2c-1.1.5-3-1.2-3.4-1.2s-3.2,3.9-2.8,4.2l4,1.2c.6,0,2.5-3.9,2.2-4.2h0ZM121.8,79.6c-1.9,0-3.5-.8-4.9-1.9-.1,2.5-2.6,3.6-3.8,5.5l6.2,1.9c-.4-2.5,2.2-3.4,2.5-5.5h0ZM174.9,81.9l1.3-2.2-2.8-1.5-1.5,2.4,3.1,1.3h0ZM158.8,83.6c-2.8-.6-4.2-1.4-4.9,2.1l2.8,1.5,2.2-3.6s0,0,0,0ZM106.9,85.6c-2.2,0-4.1-1.2-5.8-2.5l-1.9,3.7-4,3.7c3.4-.3,5.6,0,8,2.6-.3-3.1,2-5.2,3.8-7.4h0ZM142.1,89c-1.5-.2-3-.7-4-1.9l-2.8,4.9,4.9,1.3,1.9-4.3h0ZM126,94.4c-2,0-3.5-1.1-5.2-1.9-1.5,1.8-2.1,3.8-4.1,5.2.8,1.2,2.3.9,3.5,1.4,1,.4,1.4,1.6,2.6,1.4l3.2-6.1h0ZM181.5,95c-2.6-1-3.3-.9-4.3,1.8l2.8,1.2,1.6-3h0ZM110.5,100.5c-2.8.1-4.8-1-6.4-3.1-1.3,1.3-1,3.4-2.6,4.9l-4,3.7c3.9-1.2,6.8.1,9.2,3.2-.4-3.6,1.7-6,3.8-8.6h0ZM164.2,99.7l-4.3-1.3-1.3,3.7,4.3,1.3,1.3-3.7ZM146.9,105.1l-4.9-1.9c.3,1.1-2.8,4.7-2.5,4.9l5.5,1.9s1.9-4.9,1.9-4.9ZM204.8,110.6c.9-1.9.6-3.5-1.8-3.7-1,2.4-.5,2.8,1.8,3.7ZM130.1,110.5c-2,0-3.9-1.1-5.2-2.5-1.1.8-1,2.2-1.7,3.3-.8,1.3-2.4,2-3,3.4,3.1-.4,5.2,1.4,7.4,3.2-.7-1.7,3.3-6.8,2.5-7.4h0ZM184.8,111.1l-2.2,2.7,3.4,2.2,1.5-3.3c-.1-.6-2.1-1.7-2.7-1.6h0ZM170.2,117.1l-4-1.9-2.8,3.9,4.9,2.8,1.9-4.9h0ZM152.9,122.5c-2.2.2-3.6-1.7-5.5-2.5-.1,2.4-2.7,3.8-2.5,6.2,2.2,0,3.8,1.4,5.5,2.5,0-2.3,1.7-4.1,2.5-6.2h0ZM230,125.1c1.1-2.7-1.3-4.2-3.1-1.6l3.1,1.6ZM135.5,127.9c-2.6,0-4.3-1.2-5.8-3.1-1.3,1-1.1,2.9-1.9,4.3s-2.8,2.1-3.4,3.7h3.3c0,.1,5.3,3.2,5.3,3.2-.6-3.3,1.9-5.3,2.6-8h0ZM209.1,125.5l-1.3,2.1,2.8,2.2c2.4-2,1.7-4.4-1.5-4.3h0ZM194.1,130.9c-1.4,0-2.5-.9-3.4-1.9l-2.2,4.3,4.3,1.9,1.3-4.3h0ZM176.2,135.7l-4.9-2.5c.2,2.2-1.7,3.6-2.5,5.5,2.1.2,3.7,1.6,5.5,2.5l1.9-5.5ZM251.5,140.1l2.1,1.3c1.8-1.3.8-2.6-.6-3.7l-1.6,2.4h0ZM158.9,141c-2.4-.2-4.2-1.9-6.1-3.1-.3,2.6-2,4.6-3.2,6.8,1.1.2,2.5.6,3.5,1.1,1.2.7,1.8,2.1,3.2,2-.4-2.8,2-4.5,2.5-6.8h0ZM236.6,141.8l-3.1-.6c-1.2,2.5-.1,3.3,2.4,3.7l.6-3.1h0ZM218.7,146l-3.7-1.9c0,1.5-1.2,2.5-1.9,3.7l4.3,1.9,1.3-3.7h0ZM200.7,150.1l-4.9-1.9c.1,1.6-1.1,2.8-1.9,4l4.9,2.8,1.9-4.9h0ZM174.1,158.5c2.3,0,4.4,1.4,5.8,3.1l2.8-5.8-5.5-3.4c-.2,2.4-1.9,4.2-3.1,6.1h0ZM277.2,158.2c-.2-.8.7-1.5.6-2.1-.2-.9-2.1-1.3-2.4-1,0,0-.5,1.6-.4,1.9.3.5,1.8,1.7,2.2,1.2h0ZM259.3,161.8l1.2-2.8-3-1.6c-1,2.2-.2,3.1,1.8,4.3h0ZM165.5,160.2c-2.5,0-4.7-1.5-6.4-3.1l-4.1,7.4c2.9.2,5.3,1.5,7.1,3.8,1.3-.9.8-2.4,1.2-3.7.4-1.1,2.7-3.8,2.2-4.3h0ZM242.6,161.6c-1.4-.2-2.1-1.7-3.7-1.3l-1.2,2.8,3.6,2.2,1.3-3.7h0ZM223.4,170.1c-.4-1.3,1.4-3.2,1.3-3.9-.1-.6-3.7-2.9-4.2-2.2l-1.9,3.3c.6.6,4.4,3.4,4.9,2.8h0ZM206.7,169.9c-2.1,0-2.9-2.4-4.9-2.5l-2.5,5.5,5.5,2.5c.2-2,2.2-3.4,1.9-5.5h0ZM189.4,174.7c-1.6.8-6.1-3.8-6.8-3.2.4,2.8-1.9,4.6-3.2,6.8,3,0,5.2,2.1,7.4,3.8,0-1.8.6-3.6,1.4-5.1.4-.8,1.4-1.1,1.2-2.2h0ZM298,176.3c.7-1.9.8-2.4-.9-3.7-1.9,1.6-1.8,3.4.9,3.7ZM280.4,174.3c-1.9,1.6-2.1,3.6.6,4.3,2.2-2,1.4-2.6-.6-4.3ZM172.1,180.1c-1.3-.3-2.8-.7-3.9-1.4-.8-.5-3.4-3.8-4.1-3,.2,2.3-.9,5.4-2.5,7.1-.8.8-1.9.6-1.9,1.5,4,.3,6.8,2,9.2,5,0-1.7.3-4,1-5.6s2.2-2.1,2.2-3.7h0ZM264,182.2l1.2-3.3-3-2.2-1.9,3.7,3.7,1.9h0ZM241.8,183.8c1.5.2,2.9,1.5,4,2.5l2.1-3.9-3.3-2.9-2.8,4.3h0ZM230.6,185.6c-1.6.4-3.7-2.8-4.6-2.5l-2.8,4.6,4.6,3.4c1-.8,1.1-2.1,1.7-3.3.4-.8,1.5-1.1,1.2-2.2h0ZM210.8,196.5c-.2-2.2,1-4.3,2.5-5.8-.8-1-2.1-1.2-3-1.9-1-.8-1.6-2.3-3.1-2.2-.2,2.4-1.9,4.2-3.1,6.1,1.1.1,2.4.7,3.3,1.4,1.2.8,1.9,2.5,3.5,2.4h0ZM196,194.5c-3.1-.3-5.1-2.6-7.4-4.4,0,3.3-1.6,6-4.4,7.7,1.2,1.4,3.3,1,4.9,1.9,1.4.8,2.2,2.7,3.7,3.4,0-3.3,1.5-6,3.2-8.6h0ZM300.9,197.3l1.1-2.8-2-2.2c-2.7,1.9-1.5,3.5.9,4.9h0ZM283,194.1c-1.5,2.8-1.9,4.1,1.5,5.6,2.6-2.2,1.6-4.9-1.5-5.6ZM268.1,203.2c-.1-1.6,1.1-2.8,1.9-4-.7-.4-3.8-3.4-4.3-2.8,0,1.8-1.9,2.7-1.9,4.3,1.9,0,2.4,2.6,4.3,2.5h0ZM248.4,198.7l-2.5,5.2,4,3.4,2.8-5.2-4.3-3.5h0ZM236,205.4c-2.1-.4-3.9-1.6-5.2-3.1-1.1.8-1,2.2-1.6,3.3s-2,1.5-1.8,2.8c2.2.5,3.9,1.3,4.9,3.4,1,2.2,1.5-1.6,1.9-2.4.6-1.4,1.9-2.4,1.9-4h0ZM219.3,209.5c-2.6-.4-4.7-1.9-6.4-3.8-1.6,2.7-2.4,5.2-4.7,7.4,3.7.1,5.8,2.5,8,5-.4-3.3,1.6-5.9,3.2-8.6h0ZM329.2,210l-1.1,2.1,2,2.8c2-1.3,1.9-4.7-.9-4.9ZM317.4,216c1-2.6,1.6-3.5-.9-5.6-1.6,2.1-3.3,2.9-.7,4.9.5.4.6.9,1.5.6h0ZM302.6,218.3l1.9-3.9-3-2.9c0,1.4-.9,2.4-1.8,3.4l3,3.4h0ZM283.4,218.1c1.5,0,2.3,1.6,3.4,2.5l2.8-4-3.3-3.4c-.3,0-3.1,4.6-2.8,4.9h0ZM271,224.2l2.5-5.2-4-3.4c-1.4,1.4-1.7,3.4-3.4,4.6l4.9,4.1h0ZM257.5,221.6c-2.5,0-3.3-2.9-5.5-3.1.4,1.4-3.9,5.6-3.1,6.1,2.4-.2,3.5,2.4,5.2,3.8l3.4-5.9v-.9h0,0ZM241.4,225.2c-2.9-.4-4.6-2.8-6.8-4.4.2,2.9-1.9,5.1-3.8,7.1,1.1,1.3,3.1,1.5,4.3,2.5,1.1.9,1.2,2.3,2.4,2.8.5-3.2,2.1-5.4,3.8-8h0ZM341.3,234.1c2.8-1.6,1.3-3.3.7-5.5-3.1,1.7-.9,3.1-.7,5.5ZM351.2,234.9c2.8-2,2.5-3.3,1.3-6.2l-2.4,2.8,1.1,3.3h0ZM330.2,235.9c-.6-1.7,2.1-2.9,1.9-3.9l-2.1-2.9-2.8,3.4c.4.6,1.1.9,1.5,1.6.6,1-.3,2.2,1.5,1.8h0ZM317,229.6c-.5.9-2.9,3.2-2.8,3.9l2.7,3.5,2.7-4-2.6-3.4ZM303.6,239.3l2.5-5.2-3.6-3.5c.4,1.7-2.7,3.6-2.5,4.6l3.6,4.1h0ZM288.7,242.3c0-2.4,1.8-4.1,3.1-5.8l-3.9-4-3.5,5.2,2.1,1.6,2.2,3.1h0ZM273.3,245.2c.2-2.6,1.9-4.3,3.1-6.4l-4.9-4.7c.4,3.2-3.4,4.2-3.8,6.7,2.8.1,3.7,2.9,5.5,4.4h0ZM386.9,242.6c1.2-2.2,1.4-3,.7-5.5-.9-.1-1.1,1.6-1.2,2.2,0,.7-.6,3.4.5,3.4h0ZM261.6,241.4c-2.6-.3-4-2.8-5.8-4.4-1.1,1-1.1,2.4-1.9,3.7-.9,1.3-2.7,2.2-3.4,3.7,1.9-.3,3.1.9,4.6,1.9l2.7,3.8c-.3-3.6,1.5-6.1,3.8-8.6h0ZM339.2,255.7c-.2-1.5,2.4-3.7,2.4-4.6,0-.2-1.7-3.9-2-4-.7,1.6-1.5,2.9-2.8,4.1l2.4,4.6h0ZM328.1,256.2c1.4-3.9,4.5-4.6.4-8.6l-3.4,4,3,4.7ZM350.4,247.8c-.6-.8-2.9,2.3-3,2.9-.4,1.2,1.1,3.1,1.1,4.5l3-4.1-1.1-3.3h0ZM357.7,255.9c0-1.5,2.2-3.1,2.4-4.1.2-.9-1.2-2.8-1.1-3.9l-2.2,2.4-.3.9,1.2,4.6h0ZM316.4,257.4c-.4-1.9,2.9-3.8,3.1-4.7.2-.9-2.8-2.9-2.4-4.6l-4.4,4.6c1.7,1.3,2,2.4,2.4,4.3.2.7.7.4,1.2.4h0ZM365.8,256c1.6-2.9,2.1-4,1.3-7.4l-2.2,2.4c-.6,1-.4,2.2-.2,3.3,0,.5.3,1.9,1.1,1.7h0ZM303.4,259.7l3.1-6.4-3.3-4.1c-1,.8-1.2,2.1-1.9,3-.8,1.1-2.4,1.7-2.2,3.1,2.7,0,2.4,3.4,4.3,4.4h0ZM373.2,249.9c-.7,2.2-3.5,4.5-1,6.8l2.1-2.8-1.1-3.9h0ZM288.5,262.6c.9,0,1-.9,1.3-1.5,1-2.2,1.6-4,3.7-5.5,0-.4-4.8-2.9-4.3-4.7-2.1,1.2-2.3,5.2-5,5.5v1.2c2.7.2,3.8,2.6,4.3,5h0ZM383.7,255.5c-2.9,0-1.7,3.6-1.9,5.5l2.4-2.9-.5-2.7h0ZM389.3,263.5c-.6-.8.6-3-.7-3l-1.3,6.2,1.6-1.8,1.5.6c.6-2.2-.8-1.6-1.1-2h0ZM335.3,276.1c.4-2.5,2.1-4.2,3.7-5.9l-1.8-5.2-2.8,4.3-1.5.6,1.1,1.7,1.3,4.5h0ZM344.6,275.5c-.4-1.6,3.6-5.4,3.6-5.8s-1.9-3.2-1.1-4.6c-.8.5-4.2,4.3-4.3,4.7-.2.7.9,1.7,1,2.5.2,1-.5,3.2.7,3.3h0ZM329.2,271v-.9l-3-4.7c.2,1.8-3.5,4.5-3.7,5.3-.2.7,1.4,2,1.7,3.1.2.8,0,2.5,0,2.7.9,1.1,1.1-.2,1.3-.9.5-1.7,1.9-4.5,3.7-4.7h0,0ZM356.4,270.7l-1.2-5-3.5,3.7c-.3.4.2,4.9,1.2,5.6.9-.6.7-.4,1.7-.9,1.1-1,1.2-1,1.8-3.4h0ZM313.7,278.9c.8-3.1,2.6-5.6,5-7.7-1.5-1.5-3.2-2.9-3-5.3-1.7,1.3-2,3.1-3.7,4.6-.8.7-1.7.8-1.9.9-1.1.9,1,1.4,1.5,1.8.5.4.8.9,1,1.5l1,4.2h0ZM366.8,276.4c-.1-1.6,2.1-2.4,2.4-3.5.5-1.6,0-4,.1-5.8l-2.2,3.1-1.6,1,1.2,5.2h0ZM362.7,266.9c-.9.7-3,2.5-3.9,3.2-.2.2,1.2,4.3.5,5.5.9-1.2,3.5-3.2,4.1-4.3M371.7,278.3l3-4.7-.5-3.9c-2.7,2.2-3.2,3.7-3.1,7.1,0,.7-.4,1.7.6,1.5h0ZM380.4,275.3l-1.2.3-.3-.3-.9-3.4c-2.5,2.7-2.9,4.6-2.5,8.3l2.5-3.4c1,.4,3.5-.4,2.5-1.5h0,0ZM382.2,280.8l-.6-3.1-.7,6.8,1.9-1.8.6,2.5,1.9-6.1-3.1,1.8h0ZM372.2,291.8v-3.7s-4,3-4,3c-.5.6.4,2.1.3,3.4-.1,1.4-1.3,2.6-1.3,4l3.4-4.3.9,3.7c4-1.4,3.4-5.7,4.4-9.2-1.6.6-1.6,3.3-3.7,3h0s0,0,0,0ZM377.2,295.6l-.6-1.2c-.4,2.6-2.4,4.3-3.8,6.5.1,2.5,1.8-2,2.5-1.5l-.6,3.7.7-1.1c2.6,1.6,3.4-6.6,3.1-6.9l-1.2.6h0Z"/>
+ <path class="st1" d="M222.9,241.7c-.2,3.4.6,5.6-1.6,8.6-6.1,8.3-17.5-.7-13.8-10.9.9-2.4,2.4-3.2,4.4-4.6,2.9.3,4.3-.4,7,1.4,1.9,1.3,2.9,3.5,4.1,5.5h0Z"/>
+ <path class="st1" d="M167.5,206.1c8.4-1.2,13.7,12,6.5,17.2-2.3,1.7-6.6,1.8-8.9.2-6.8-4.7-6.4-16.1,2.4-17.4h0Z"/>
+ <path class="st1" d="M142.3,192.9c7.5-1.6,13.1,6.6,10.4,13.1-4,9.8-18.2,3.9-15.7-7.3.4-2,3.3-5.4,5.3-5.8Z"/>
+ <path class="st1" d="M108.9,141.4c8.9-1.3,12.4,13.8,3.2,17.7-11.6,4.9-15.2-15.9-3.2-17.7Z"/>
+ <path class="st1" d="M114.3,160.5c8.3-1.2,12.2,12.1,4.9,16.9-2.5,1.6-7,1.4-9.2-.7-5.1-5-3.1-15.1,4.3-16.2h0Z"/>
+ <path class="st1" d="M119,180.3c6.9-1.5,10.7,4.5,10,10.8-.2,2.1-1.8,3.9-3.5,5.2-6,4.3-12.8-2.6-11.9-9,.3-2.6,2.7-6.4,5.4-7h0Z"/>
+ <path class="st1" d="M233.8,249.9c5.9-1.3,10.1,5.3,9.3,10.8-.9,6.9-8.9,10-13.2,3.9-1.7-2.5-2.1-7.1-1.2-9.9.5-1.4,3.6-4.4,5.1-4.7h0Z"/>
+ <path class="st1" d="M172.9,226.5c9.8-2.1,14.1,12.1,6.7,16.1-7.4,4-14.6-6-10.7-12.8.6-1.1,2.8-3,4.1-3.3h0Z"/>
+ <path class="st1" d="M150.2,212.7c8-1.2,12.7,10.6,6.8,15.7-6.8,5.9-16.3-4.9-11.9-12.1.9-1.5,3.3-3.3,5.1-3.6h0Z"/>
+ <path class="st1" d="M196.2,240.3c10.2-2.1,13.7,15.4,3.9,17.1-9.7,1.6-13.3-15.1-3.9-17.1h0Z"/>
+ <path class="st1" d="M217.7,254.7c7.8-1.7,12.8,10.4,6.5,15.4-7.4,5.8-16.7-7.5-8.8-14,.7-.6,1.4-1.2,2.3-1.4h0Z"/>
+ <path class="st1" d="M122.8,202c4.7-4.6,11.7-.5,12.6,5.3,1,6.1-4.9,11.5-10.7,8-4.2-2.6-5.5-9.8-1.9-13.3h0Z"/>
+ <path class="st1" d="M92.1,149.2c5.1-1.1,8.8,4.8,8,9.4-.5,2.7-2.9,6.7-5.8,7.2-10.3,1.7-11-14.7-2.2-16.6Z"/>
+ <path class="st1" d="M252.7,265.6c8.2-1.8,11,11.3,4.9,15.6s-11.2-2.5-10.4-8.7c.4-2.6,2.7-6.4,5.4-7h0Z"/>
+ <path class="st1" d="M88,131.3c6.3-1,8.8,5.9,6.6,11-1.8,4.1-6.3,7.1-10.4,4.1-5.4-3.8-2.5-14.1,3.9-15.2h0Z"/>
+ <path class="st1" d="M97.5,168.4c2.9-.6,5.8,1.4,7.1,3.8,3.3,6.5-2.3,15.5-9.3,11.6-5.5-3.1-4.3-14.1,2.3-15.4h0Z"/>
+ <path class="st1" d="M157.4,232.5c8.9-1.2,12.2,15.2,2.7,16-8.4.7-12-14.7-2.7-16Z"/>
+ <path class="st1" d="M179.5,246.3c7.6-1.6,12.2,7.8,8.1,13.2-1.7,2.2-3.2,2.4-5.9,2.1-7.3-.8-9-13.9-2.2-15.4h0Z"/>
+ <path class="st1" d="M88.7,127.9c-.9.8-4.4,2.6-5.6,2.5-8.1-.8-6.3-14.1,1.4-15.8,7.6-1.6,9,8.9,4.2,13.3Z"/>
+ <path class="st1" d="M132.8,220c7.9-1.7,12.9,9.6,6.5,14.1-2.6,1.9-5.1,1.5-7.7-.4-4.2-3.2-4.2-12.6,1.1-13.7h0Z"/>
+ <path class="st1" d="M237.9,269.7c7.5-1.6,11.1,10.5,4.4,15-1.6,1-2.5,1.2-4.3.6-6.6-2-7.3-14.1,0-15.6h0Z"/>
+ <path class="st1" d="M201.6,260.1c9.9-2.1,12.3,13.6,4.6,15.2-9,2-11.9-13.7-4.6-15.2Z"/>
+ <path class="st1" d="M102.9,188.2c9.5-2.1,11.8,13.5,3.9,15.2-9.5,2.1-11.3-13.6-3.9-15.2Z"/>
+ <path class="st1" d="M296.5,275.9c4.6-1,6.7,3.7,6.3,7.7s-3.9,10.9-8.8,9.2c-5.4-1.9-3.5-15.5,2.5-16.9h0Z"/>
+ <path class="st1" d="M283.5,278.2c5-1,6.8,4.9,6.2,8.9-1.2,8.3-11.2,11.4-12.3,1.7-.4-3.7,2.1-9.8,6.1-10.6h0Z"/>
+ <path class="st1" d="M81.5,99.1c9.9-2.1,8.5,11.9.7,14.4-6.7,2.2-9.2-5.2-5.8-10.3.8-1.2,3.7-3.9,5.1-4.2Z"/>
+ <path class="st1" d="M274.2,282.5c.8.8,1.9,3.9,2,5.1.4,8-8.5,14-11.7,5.3-1.5-4.2.5-10.7,5.3-11.7,1.1-.2,3.5.6,4.3,1.3h0Z"/>
+ <path class="st1" d="M222.4,274.5c8.1-1.8,11,10.3,5,13.8-8.1,4.7-13.3-12-5-13.8Z"/>
+ <path class="st1" d="M109.5,208c8-1.7,12,9,5.6,13.2-8.2,5.4-13.4-11.5-5.6-13.2h0Z"/>
+ <path class="st1" d="M76,157.7c1.6-.3,3.9-.2,5.1.9,4.3,3.9,1.9,13.9-4.1,13.8-7.3,0-7.2-13.3-1-14.7h0Z"/>
+ <path class="st1" d="M164,252.3c1.4-.3,3.3.1,4.5.9,7.4,4.5,3.4,17.7-5.2,11.9-4.6-3.1-4.9-11.6.8-12.8Z"/>
+ <path class="st1" d="M186.7,265.5c8.1-1.6,11.6,12.9,3.3,14-7.5,1-10.7-12.5-3.3-14Z"/>
+ <path class="st1" d="M260,286c3.2,3,2.5,11.7-1.8,13.1-6.4,2.1-8.1-4.2-7.3-9.3.6-4,5.9-6.8,9.1-3.8Z"/>
+ <path class="st1" d="M81.1,84.9c6-.9,6.2,5.9,3.4,9.8-1.4,2-4.8,4.5-7.3,4.2-7.5-.9-3-12.9,3.8-13.9h0Z"/>
+ <path class="st1" d="M71.8,139.8c10.3-2.2,8.1,14.6-.3,14.1-6.5-.4-5.5-12.9.3-14.1Z"/>
+ <path class="st1" d="M140.6,239.8c9-1.9,11.9,14.3,2.2,13.5-6.7-.5-8.6-12.1-2.2-13.5Z"/>
+ <path class="st1" d="M69.6,122.4c8.9-1.8,6.8,15.3-2.1,14.1-7-1-3.6-12.9,2.1-14.1Z"/>
+ <path class="st1" d="M81.4,176.9c9.6-2.1,9.1,15.9.5,14-6.1-1.4-6.2-12.7-.5-14Z"/>
+ <path class="st1" d="M207.5,279.3c6.8-1.5,10.4,8.8,5.3,12.3-7.4,5.2-13.1-10.6-5.3-12.3Z"/>
+ <path class="st1" d="M118.4,227.4c8.7,0,8.5,15,.6,13.2-7-1.6-7.1-13.2-.6-13.2Z"/>
+ <path class="st1" d="M85.7,208.1c-2.7-2.6-2.8-9.2.6-11.2,6.7-4,11.8,7.6,6,11.7-1.9,1.4-5,1-6.6-.5h0Z"/>
+ <path class="st1" d="M246.3,301c-.1.2-1.9,1.2-2.1,1.2-8.6,2.2-9.4-13.6-1.6-13.5,5.6,0,6.8,9,3.7,12.3h0Z"/>
+ <path class="st1" d="M71.6,107.7c.4.5,1.4,3.1,1.4,3.9,0,2.2-2.1,6.1-3.8,7.3-7.5,5.4-11-5.7-3.9-10.8,1.6-1.2,4.9-1.9,6.4-.4h0Z"/>
+ <path class="st1" d="M295,295c8.9-1.9,5.1,15.7-2.1,14.7-4.8-.7-3.2-13.5,2.1-14.7Z"/>
+ <path class="st1" d="M302.6,307.8c-.2-.2-1.2-3.2-1.3-3.9-.3-3.6,2.7-12.1,7.1-11.3,5.4,1,2.4,14.4-3.1,15.3-.6,0-2.4.2-2.7,0h0Z"/>
+ <path class="st1" d="M283.3,297.3c.6-.1,1-.1,1.6,0,6.3,1.5,2.7,15-3.7,14.1-5-.7-4.3-12.7,2.1-14.1Z"/>
+ <path class="st1" d="M73.3,84c-1.3-1.3-.6-4.6,0-6.2,2.5-5.7,12.7-8.7,11.6-.7-.6,4.1-8.3,10.3-11.7,6.9h0Z"/>
+ <path class="st1" d="M317.9,291.5c3-.6,4.1,2.6,3.8,5.1-.4,3.7-3.5,11.7-8.3,10.1-3.8-1.3-.4-14.1,4.5-15.2h0Z"/>
+ <path class="st1" d="M270.3,300.3c5.7-1.2,6.4,7.5,3.2,11.4-5.1,6.1-10.1-2.5-6.6-8.6.6-1,2.3-2.5,3.5-2.7h0Z"/>
+ <path class="st1" d="M148.5,259c7.2-1.5,10.6,10.8,3.9,12.2-6.6,1.4-10.2-10.9-3.9-12.2Z"/>
+ <path class="st1" d="M171.8,271.5c6.5-1.3,10,10.9,3.3,12.2s-10.8-10.7-3.3-12.2Z"/>
+ <path class="st1" d="M67.9,92.3c4.3.1,3.7,5.4,2.2,8.2s-6.5,6.6-9.1,3.2c-2.9-4,2.5-11.5,6.9-11.4Z"/>
+ <path class="st1" d="M225,294.3c.3-.3,2.8-1.3,3.3-1.3,6.3,0,7.7,11.7,1,12.9-1.9.4-5.2-2.9-5.6-4.7s0-5.6,1.3-6.8h0Z"/>
+ <path class="st1" d="M99.5,217.2c5.9,6.2-2.2,15.7-7.2,8-4.1-6.4,2.7-12.6,7.2-8Z"/>
+ <path class="st1" d="M192.7,284.7c5.4-1.5,9.9,6.3,6.3,10.2-4.2,4.6-10.7-2.1-8.9-7.2.3-.9,1.8-2.7,2.6-2.9Z"/>
+ <path class="st1" d="M257.3,303.2c5.5-1.2,7.2,8.8,2.5,11.9-7.2,4.8-9.2-10.5-2.5-11.9Z"/>
+ <path class="st1" d="M125.1,247c3.9-1.1,8,3.4,7.6,7-.8,6.8-9.6,5.3-10.5-1.3-.3-2.1.7-5.1,2.9-5.7h0Z"/>
+ <path class="st1" d="M57.6,148.3c8.9-1.9,5.8,14.3-1.2,11.9-4.7-1.6-3.3-11,1.2-11.9Z"/>
+ <path class="st1" d="M61.7,166.2c7.4-1.5,6.8,11.5,1.6,12.3-6.9,1-6.6-11.2-1.6-12.3Z"/>
+ <path class="st1" d="M73.4,71.6c-3.7-3.7,5.7-13.5,9.6-10.3,3,2.5-.4,7.8-3.1,9.4-1.6.9-5,2.4-6.5.9Z"/>
+ <path class="st1" d="M51.8,142.4c-.5-.5-1.3-3.1-1.4-3.9-.2-4.8,5.9-10.9,8.7-6,3.2,5.6-3.8,13.5-7.3,9.9Z"/>
+ <path class="st1" d="M66.5,185.4c6.8-2,8.4,10.3,2.8,11.5-7.3,1.6-7.1-10.3-2.8-11.5Z"/>
+ <path class="st1" d="M212.9,297.9c7.6-2.2,9.6,12.2,1.7,11-5-.7-6.1-9.7-1.7-11Z"/>
+ <path class="st1" d="M67.5,79.2c1.8-.1,3.4,2.1,3.2,3.8-.5,3.7-5.4,9.5-9.2,7.5s1.2-10.9,6.1-11.2h0Z"/>
+ <path class="st1" d="M102.4,235.1c6.5-1.3,8.8,9.8,3.3,10.9-6.6,1.3-8.7-9.8-3.3-10.9Z"/>
+ <path class="st1" d="M54.2,114.9c2.1-.4,3.5,1.6,3.8,3.5.5,3.9-4.7,11.2-8.3,7.5-2.9-2.9.8-10.4,4.6-11h0Z"/>
+ <path class="st1" d="M244.8,307c6.5-.2,5.9,10.8,1.1,11.5-6.8,1-6.5-11.4-1.1-11.5Z"/>
+ <path class="st1" d="M293.6,312.8c1.5-.3,2.9,1.5,3.1,2.9.6,3-2.5,10.6-6.2,9.7-4.6-1.1-1.4-11.8,3-12.6h0Z"/>
+ <path class="st1" d="M77.4,214.9c-.3.3-1.6.7-2.1.7-4.2.3-6.1-4.6-4.8-8.1,2-5.9,9.3-2,8.3,4.1,0,.6-1.1,3-1.4,3.3Z"/>
+ <path class="st1" d="M304.2,311.1c3.2-.6,2.8,4.2,2.5,6.3-.4,2.4-3.6,7.3-6.3,6.5-3.9-1.2-.5-12,3.9-12.8h0Z"/>
+ <path class="st1" d="M281.9,315.2c5.1-1.1,4.8,8.8.7,11.3s-5.3-1.9-4.8-5.5c.3-2,2-5.3,4.2-5.8h0Z"/>
+ <path class="st1" d="M308.7,322.6c-2.2-2.3,1.3-11.6,4.3-12.5,4.7-1.5,3.7,4.1,2.6,7-.8,2-4.5,7.9-6.9,5.5h0Z"/>
+ <path class="st1" d="M156.3,278.2c7.7-2.2,10.1,11.6,1.8,9.7-4.2-1-5.8-8.5-1.8-9.7Z"/>
+ <path class="st1" d="M139.1,275.3c-1.7,1.7-4.9.4-6.3-1.2-3.8-4.1-.8-10.9,4.6-7.6,2.6,1.6,4,6.5,1.7,8.8h0Z"/>
+ <path class="st1" d="M179.1,290.1c2.7-.5,5.7,2.1,6.2,4.7,1.1,5.5-4.9,7.5-8.2,2.5-1.7-2.5-1.2-6.6,2-7.3h0Z"/>
+ <path class="st1" d="M324.7,308.8c1.5,1.5.2,5.4-.5,7.2s-3.8,6.9-6,6.3c-3.4-1,.6-10.4,2.4-12.1.6-.6,3.5-2,4.1-1.3h0Z"/>
+ <path class="st1" d="M54.3,109.7c-1.1,1.1-3.8,2.6-5.1,1.4-4.2-3.5,2.6-12.9,6.6-10.2,2.5,1.7.1,7.2-1.5,8.8h0Z"/>
+ <path class="st1" d="M74.1,60.6c-2.9-4.5,7.9-13.1,10.2-8.5,1.8,3.6-6.5,10.5-10.2,8.5Z"/>
+ <path class="st1" d="M67.6,67.5c3.9-.9,3.4,3.8,1.9,6.3-1.9,3.2-9,7.2-8.6,1.2.2-3,3.9-6.9,6.7-7.6h0Z"/>
+ <path class="st1" d="M270.1,318.2c6.9-1.4,4.5,11.5-.8,11-4-.4-3.7-10.1.8-11Z"/>
+ <path class="st1" d="M80.3,223.7c3.5-1,6.6,4.1,5.4,7.4-1.9,5.5-7.5,2.7-8.2-2.4-.3-1.7,1.2-4.6,2.8-5Z"/>
+ <path class="st1" d="M325.2,321.7c-1.6-1.7,1.2-8.4,2.4-10.3s5.2-5.6,5.7-1.7c.4,3.3-3.9,12.5-8.2,12h0Z"/>
+ <path class="st1" d="M231.3,311c5.6-1.6,7.5,10.1,1.6,10.5-3.5.2-5.6-5.3-4.2-8.1.2-.4,2.2-2.2,2.6-2.4h0Z"/>
+ <path class="st1" d="M199.9,302.7c5.1-.9,8.2,8.6,2.7,9.7s-8-8.8-2.7-9.7Z"/>
+ <path class="st1" d="M115.2,255.6c4.7,4.8-1.6,12.2-5.7,5.9-3.3-5.1,1.5-10.2,5.7-5.9h0Z"/>
+ <path class="st1" d="M335.6,320.4c-4,3.9-3.8-1.2-2.7-4.3.7-2,4.1-8.4,6.4-8.4,1.3,0,1,4.2.8,5.1-.3,1.4-3.4,6.6-4.5,7.6h0Z"/>
+ <path class="st1" d="M46.4,184.3c-.2-.2-1.2-2.4-1.2-2.8-1.1-5.6,5.1-9.9,7.1-3.9,1.3,4.1-2.7,9.9-5.8,6.6h0Z"/>
+ <path class="st1" d="M261.5,321.8c.2.2,1.2,2.4,1.2,2.8.6,2.9-3,8.9-6.1,6-3.9-3.6,1.1-12.6,4.9-8.8h0Z"/>
+ <path class="st1" d="M43,157.4c3.7-3.3,7.1,2.9,4.4,7.3-1.4,2.2-3.5,3.2-5.2.9s-1.2-6.3.8-8.2h0Z"/>
+ <path class="st1" d="M53.2,87.1c5.4-1.6,3.5,6.6,0,8.8-4.5,3-6.2-.7-4.1-4.8.4-.8,3.3-3.8,4-4Z"/>
+ <path class="st1" d="M56.5,202.9c-.3.3-1.7.7-2.1.7-3.1.2-4.5-5.1-3.2-7.6,2.5-4.8,6.9-1,6.6,3,0,.5-1.1,3.6-1.4,3.9h0Z"/>
+ <path class="st1" d="M344.9,308.4c3.6-1,1.3,5.1.5,6.7-.6,1.2-4.8,6.7-5.6,6.7-.6,0-.9-1.5-1-2.2,0-2.5,3.8-10.6,6.1-11.3h0Z"/>
+ <path class="st1" d="M42.8,139.4c.7,0,2.1,1.3,2.3,1.8,1.9,3.9-2.8,10.8-6,7.7-2.1-2.1,0-9,3.6-9.5h0Z"/>
+ <path class="st1" d="M222.6,323.7c-3.5,3.4-9.3-4.2-5.4-7.6,4.2-3.6,8.2,4.8,5.4,7.6Z"/>
+ <path class="st1" d="M71.6,57.6c1.4,3.3-5.4,10.3-8.1,8.9-3.4-1.7,1.8-7.3,3.9-8.5,1.4-.7,2.7-1,4.1-.4h0Z"/>
+ <path class="st1" d="M88.1,242.9c3.4-.9,6.9,4.5,4.8,7.4-4.4,5.8-9.9-5.9-4.8-7.4Z"/>
+ <path class="st1" d="M82.7,42.3c.9-.1,2.3-.3,2.6.9.9,3.1-6.4,9.2-9.3,7.3-.7-.5-.7-1-.5-1.8.6-2.6,4.7-6,7.2-6.4h0Z"/>
+ <path class="st1" d="M41.2,123.4c5-.9,2.2,11.1-2.6,9.7-3.5-1-1.1-9.1,2.6-9.7Z"/>
+ <path class="st1" d="M147.6,292.1c-2.9,2.8-8.8-2.5-6.5-6.3,3-5,9.8,3.1,6.5,6.3Z"/>
+ <path class="st1" d="M246,324.7c6.4-1.9,6.2,8.6,1.6,9.1-4,.4-4.2-8.3-1.6-9.1Z"/>
+ <path class="st1" d="M299.6,328.3c2.6-.8,2.3,3.3,1.9,5.1-.5,2.3-3,4.9-5.2,5.8-3.7-1.9.7-10.1,3.3-10.9h0Z"/>
+ <path class="st1" d="M164.8,296.2c4.8-1.4,7.7,6.1,4.5,7.7-5.2,2.5-8.4-6.6-4.5-7.7Z"/>
+ <path class="st1" d="M314.4,336.2c-1.5,1.5-3.6,2.1-3.6-.8,0-2.3,3.9-10.1,6.6-9.5,3.1.6-1.7,8.9-3,10.3Z"/>
+ <path class="st1" d="M49.8,83.9c-1.2-3.1,3.7-10.6,6.9-8.9,2.5,1.3,0,5.3-1.3,6.8-1.6,1.8-3.1,2.4-5.6,2.1h0Z"/>
+ <path class="st1" d="M308.3,327.1c3.4-1,1.8,4.8.9,6.5-2.1,4.5-7.2,6.9-5.6,0,.3-1.5,3.2-6,4.6-6.5h0Z"/>
+ <path class="st1" d="M352.5,309c.5.5-.9,4.4-1.3,5.3-.5,1.1-5.4,9.2-6.9,7.6-.2-2.9,1.2-5.8,2.7-8.2.6-.9,4.1-6.1,5.5-4.7h0,0Z"/>
+ <path class="st1" d="M292.4,330.7c.2.3,0,3.2,0,3.9-.4,2.8-2.2,4.6-4.7,5.8-3.5-2-.7-10,2.7-10.3.3,0,2,.5,2,.6h0Z"/>
+ <path class="st1" d="M40.6,108.5c4.8-1.4,2.4,10.8-3.2,9.1-2.9-.9.6-8.4,3.2-9.1Z"/>
+ <path class="st1" d="M279.8,332.4c5.1-1.5,3,9.7-1.4,9.2-4.1-.4-1.7-8.3,1.4-9.2Z"/>
+ <path class="st1" d="M119.9,272.9c4.4-1.2,7.2,6.8,3.4,7.9-4.3,1.2-8.2-6.6-3.4-7.9Z"/>
+ <path class="st1" d="M185.6,308.1c5.2-1.5,7.7,6.1,4.5,7.7-4.5,2.2-7.9-6.8-4.5-7.7Z"/>
+ <path class="st1" d="M318.3,337c-.6-3.4,1.9-8.5,4.4-10.8,1.6-1.4,3.4-1.1,3,1.2-.5,3-3.9,9.3-7.4,9.6Z"/>
+ <path class="st1" d="M60,213.1c3.7-.6,5.3,7.6,2.2,8.5-5,1.5-7-7.7-2.2-8.5Z"/>
+ <path class="st1" d="M359.3,309c.5.5-.5,1.5-1,1.9-2.7,2.4-3.2,6.1-5.7,9.1-.8,1-2,2.6-3.4,2.5-1.1-1.3,3.5-9.6,4.8-11,1-1.2,2-2.1,3.6-1.2.4,0,.5-2.5,1.6-1.2h0Z"/>
+ <path class="st1" d="M234.8,328.3c6.2-1.8,5.1,10.2.1,7.6-2.5-1.3-2.9-6.9-.1-7.6Z"/>
+ <path class="st1" d="M332,325.5c.3,2.9-1.7,6.3-3.5,8.6-1,1.2-2.2,2.8-4,2.5-1-1,2-6.8,2.9-8,.6-.8,3.7-4.1,4.6-3.1h0,0Z"/>
+ <path class="st1" d="M270,334.8c3.4-.6,3.3,6.2.5,8-5,3.2-5-7.2-.5-8h0Z"/>
+ <path class="st1" d="M41.4,95c5.8-1.7.7,9.6-3.2,8.5-2.8-1.7,1.2-7.9,3.2-8.5Z"/>
+ <path class="st1" d="M205.6,326.5c-2.3-2-2-7.4,1.9-6.5,2.6.6,3.5,4,2.8,6.3-.5,1.6-3.7,1.1-4.7.2h0Z"/>
+ <path class="st1" d="M70.9,48.4c4.9-1.1,1.3,4.3-.8,6.1-3.5,2.8-7,2.5-3.9-2.1.8-1.3,3.2-3.6,4.7-4h0Z"/>
+ <path class="st1" d="M364.2,312.8l-1.9,5.5,5.6-5.5-3.8,7c.3.8,1.3-.7,1.5-1,.5-.6.7-1.7,1.6-1.8l-1.3,4.3,1.9.3c-1.2,2.8-2.8,6.1-5,8.3l.6-2.5-1.2.3.6-2.1-1.9,1.2,1.3-3.7-3.1,1.8,2.5-5.5-4.7,4.9c-.5,0-.4-.6-.3-.9.3-1.6,3.6-7.5,4.8-8.9.7-.8,1.5-2,2.8-1.9h0s0,0,0,0Z"/>
+ <path class="st1" d="M330,336.5c-.6-.6,1.5-4.9,2-5.7.6-1.1,4-5.7,5.2-5.3s.6,1.1.4,1.7c-.2,1-.6,2.3-1.1,3.2-.6,1.1-5,7.7-6.5,6.2h0Z"/>
+ <path class="st1" d="M66.6,232.2c3.7-1.1,6.2,6.3,2.9,7.3-4.7,1.4-5.7-6.5-2.9-7.3Z"/>
+ <path class="st1" d="M101,268.9c-.3.2-2.6.1-3.2,0-2.2-.7-4.4-7.6,1.2-6.7,2.8.5,3.5,5.8,2,6.8h0Z"/>
+ <path class="st1" d="M59.2,64.2c1.2,2.8-4,8.6-6.5,8-2.2-.6.8-4.9,1.6-5.8,1.4-1.5,2.8-2.4,5-2.1h0Z"/>
+ <path class="st1" d="M77.9,42.2c0-3.6,3.8-6.1,7-6.9.6-.1,1.4-.7,1.7.5.7,2.9-5.9,7.3-8.7,6.4h0Z"/>
+ <path class="st1" d="M353.6,323.8c-.1-5,3.4-9.5,6.6-12.9,1.1.9,1,1.3.6,2.5-1,3.3-4.6,8-7.2,10.4h0Z"/>
+ <path class="st1" d="M258.8,337.8c4.6-1.3,4,7,.5,7.4s-3.1-6.6-.5-7.4Z"/>
+ <path class="st1" d="M31.8,148.5c1.7,2.2-.5,8.8-3.4,7.9-2.7-.8-.9-9.6,3.4-7.9Z"/>
+ <path class="st1" d="M34.1,165.9c.2.1.7,2.2.7,2.7.4,7.2-7.1,6.2-4.7-1,.5-1.6,2.8-2.6,4-1.7Z"/>
+ <path class="st1" d="M335.6,336.6c-1-2.3,5.4-11,6.6-11,.6,0,.9,1.1.6,1.9-.6,2.2-2.3,5-3.8,6.7-.4.5-2.9,3.1-3.4,2.4h0Z"/>
+ <path class="st1" d="M26.4,139.8c-1.6-2.2.7-8.5,3.4-8,2.2.4.9,9.8-3.4,8Z"/>
+ <path class="st1" d="M45.4,82.6c.3,3.5-2.3,7.9-6.2,7.3-.2-3.4,2.6-7.7,6.2-7.3Z"/>
+ <path class="st1" d="M223.7,331.9c2.9-.8,5,5.9,2.3,6.7-4.6,1.3-5.1-5.9-2.3-6.7Z"/>
+ <path class="st1" d="M173.2,313.5c3.4-1,5.9,3,3.9,5.9-3.6,2.1-6.9-5-3.9-5.9Z"/>
+ <path class="st1" d="M151.7,302.1c4.7-1.3,6.9,7.8,1.2,6-2.4-.7-3.2-5.5-1.2-6Z"/>
+ <path class="st1" d="M34.5,191.1c-1.1-2-1-7.9,2.1-7.3s2.4,8.8-2.1,7.3Z"/>
+ <path class="st1" d="M247.3,346.7c-1.6-1.6-.7-6.9,2.6-5.9,3.6,1.1.9,9.5-2.6,5.9Z"/>
+ <path class="st1" d="M129.6,290.9c3.3-.6,5.4,5.4,2.9,6.1-4.4,1.2-6-5.5-2.9-6.1Z"/>
+ <path class="st1" d="M347.4,326.8c.3.3-2.4,5.4-2.9,6.1-.4.6-4.2,4.9-4.6,4.3-.2-2.5,1.5-4.8,2.9-6.7,1.2-1.6,2.4-3.7,4.6-3.7Z"/>
+ <path class="st1" d="M303.4,343.7c.1,3.8-2,6.3-4.7,8.6-3.3-2,2.8-10.5,4.7-8.6Z"/>
+ <path class="st1" d="M193.5,324.8c3.8-1.1,6.4,5.1,2.9,6.1-3.2.9-5.4-5.4-2.9-6.1Z"/>
+ <path class="st1" d="M293.9,344.9c4.7-1.3-.4,8.6-2.6,7.9-2.5-.8,1.1-7.5,2.6-7.9Z"/>
+ <path class="st1" d="M42.9,209.7c-4.2,1.6-4.7-6.2-2.6-6.8,3.8-1.1,3.9,4.3,2.6,6.8Z"/>
+ <path class="st1" d="M68,47c-.6-.6,2.5-4,3.2-4.5,5.4-4.5,6.4-.7,1.7,3-1.5,1.2-2.8,1.9-4.9,1.5h0Z"/>
+ <path class="st1" d="M283,354c-.8-1.9,1.3-8,3.5-7.9,3.2.2,0,8.9-3.5,7.9Z"/>
+ <path class="st1" d="M28.8,117.1c4.2-1.2,1.2,8-2,7.3-2.1-.4.1-6.8,2-7.3Z"/>
+ <path class="st1" d="M317,342c.6.6-1.7,4.8-2.2,5.5s-3.6,4.1-4.6,3.1c-.3-.3,2.3-5.4,2.9-6.1s3.1-3.4,4-2.5h0Z"/>
+ <path class="st1" d="M310.2,342.5c1.2,1.3-2.8,9.2-5.6,8.6-.3-3,1.3-5.5,3.5-7.4.7-.6,1-1.5,2.2-1.2h0Z"/>
+ <path class="st1" d="M60.9,54.4c1.8-.3,1.2,1.9.5,3-.7,1-4.4,4.5-5.6,4.3-1.3-.3-.3-2.5,0-3.1.6-1,4-4.1,5-4.2h0Z"/>
+ <path class="st1" d="M75,251.4c4.8-1.3,5.1,9,.2,5.2-1.6-1.2-1.9-4.7-.2-5.2h0Z"/>
+ <path class="st1" d="M106.9,280.1c2.6-.7,5.2,4,3.3,5.2-3.4,2.2-7-4.2-3.3-5.2Z"/>
+ <path class="st1" d="M322.6,341.4c1.2,1.5-3.9,8.7-6,9.2-1.1-.9-.8-.6-.4-1.6,1.4-3,3.1-6.4,6.3-7.6h0,0Z"/>
+ <path class="st1" d="M48,70.9c.1,3.2-2.2,6.9-5.6,7.3-.5-3.5,2.3-6.8,5.6-7.3Z"/>
+ <path class="st1" d="M274.9,355.1c-1.4-1.6.7-7.5,3.5-6.8,3,.8-1.8,8.7-3.5,6.8Z"/>
+ <path class="st1" d="M31.7,102.8c1.1,2.7-1,7.5-4.4,6.8-.3-2.7,1.3-6.6,4.4-6.8Z"/>
+ <path class="st1" d="M350.5,328.1c-.2,2.9-2.6,6.1-4.7,8-.7.6-1,1.5-2.2,1.2-.6-.7,3.9-7.1,4.8-7.9.6-.7,1-1.5,2.1-1.2h0Z"/>
+ <path class="st1" d="M237.4,349.1c-1.4-1.4-.4-5.7,1.4-5.4,4.5.8,1.7,8.4-1.4,5.4Z"/>
+ <path class="st1" d="M321.3,350c-1.2-1.3,4.6-8,6.2-8.6.2,3.1-1.9,5.5-4.1,7.4-.7.6-1,1.5-2.2,1.2Z"/>
+ <path class="st1" d="M212.5,336.1c2.4-.7,4.6,4.6,1.6,5.5-2.4.7-4.8-4.6-1.6-5.5Z"/>
+ <path class="st1" d="M268.5,350.1c2.9-.8,1.5,7.6-1.3,6.8-2-.6-.6-6.2,1.3-6.8Z"/>
+ <path class="st1" d="M46.9,222.1c3.3-.9,4.4,4.7,1.7,5.5-2.9.8-3.7-4.9-1.7-5.5Z"/>
+ <path class="st1" d="M332.4,342.1c.9,1-5.4,8.1-6.9,8.6.1-2.8,2.6-5.6,4.7-7.4.7-.6,1-1.5,2.2-1.2h0Z"/>
+ <path class="st1" d="M353.5,329.4c.8.9-5.2,8.7-6.9,9.2-.3-1.2.4-1.7.9-2.5.8-1.4,2.2-3.6,3.2-4.8.7-.8,1.5-2,2.8-1.9h0Z"/>
+ <path class="st1" d="M87.4,274.3c-2.8.7-5.8-3.1-3-4.7,2.1-1.3,3.9,2.7,3,4.7Z"/>
+ <path class="st1" d="M336.1,342.8c.7.8-3.8,6-4.7,6.8-.7.6-1,1.5-2.2,1.2l3.1-5.2c.6-.5,3-3.5,3.7-2.7h0Z"/>
+ <path class="st1" d="M65.5,46.4c1.1,1-5.2,7.2-6.2,6.1-1-1,2.9-4.6,3.7-5.2.6-.4,1.8-1.5,2.5-.9Z"/>
+ <path class="st1" d="M260.7,353.2c0,0,.6,1.8.6,2.1,0,2-1.8,3.2-3.7,2.7-.3-.3.2-4.6.7-4.9.2-.2,2.1-.1,2.4,0h0,0Z"/>
+ <path class="st1" d="M29.9,96c-1.2-1.2,2.2-5.4,3.4-6.1,2.7,1.3-2,7.7-3.4,6.1Z"/>
+ <path class="st1" d="M164.7,323.2c-1.6.9-4.1-.4-4.3-2.2-.4-4.2,5.4-1.2,4.3,2.2Z"/>
+ <path class="st1" d="M51.2,61.1c.3,2.9-2.3,5.6-5,6.1-.4-2.3,1.3-3.6,2.8-4.9.7-.6,1-1.5,2.2-1.2Z"/>
+ <path class="st1" d="M141.9,308.9c.5.5,1,3.3.7,3.6-2.1.7-4.9-1.1-4.3-3.4.4-1.4,2.8-.9,3.6-.2h0Z"/>
+ <path class="st1" d="M56.8,245.6c-1.6,1.8-4.9-4.2-2.1-4.9,2.4-.6,3.3,3.6,2.1,4.9Z"/>
+ <path class="st1" d="M79.2,34.2c.2,1.2-.6,1.5-1.2,2.2-1.4,1.6-3.3,3-5.6,3.3-.2-1.2.6-1.5,1.2-2.2,1.4-1.6,3.3-3,5.6-3.3Z"/>
+ <path class="st1" d="M295.9,358.4c.7.8-2.3,6.6-4.4,6.1-.3-2.2.7-3.5,2.2-4.9.7-.6,1.1-1.5,2.2-1.2Z"/>
+ <path class="st1" d="M185,333.9c-2.8.5-5.1-2.1-2.7-4.4,2.6.5,3.1,1.8,2.7,4.4Z"/>
+ <path class="st1" d="M301.4,357.9c.7.8-2.3,6.6-4.4,6.1-.7-.8,2.3-6.6,4.4-6.1Z"/>
+ <path class="st1" d="M20,157.7c.1,1.5,0,2.7-.5,4.1-.4,1-.5,1.1-1.7.8-2-.6-.5-5.9,2.2-4.9h0Z"/>
+ <path class="st1" d="M230.5,351.6c0,0-1.6.5-1.8.4-1.6-1-2.5-4.2-.2-4.6,1.7-.3,2.7,3.6,2,4.3h0Z"/>
+ <path class="st1" d="M307,357.3c.2,2.1-1.4,3.7-2.8,4.9-.7.6-1,1.5-2.2,1.2-.6-.7,4-7.2,5-6.1h0Z"/>
+ <path class="st1" d="M353.5,335.5c-1.5,1.2-2.8,2.5-4.4,3.7.7-3,3.7-5.3,5.3-8,1.2-.2,1.1.3.6,1.3-.5,1-1.6,1.8-1.6,3,.4-.3,3-2.6,3.1-2.4l-1.9,5.2c-1.6.5-2.5,1.2-3.8,2.2l2.5-4.9h0Z"/>
+ <path class="st1" d="M289.1,359.6c.1,2.6-1.2,5.4-3.8,6.1-.7-.9,1.6-6.6,3.8-6.1Z"/>
+ <path class="st1" d="M119.9,301.8c-1.7.3-3.5-.4-3.7-2.2-.4-4.2,4.7-.9,3.7,2.2Z"/>
+ <path class="st1" d="M249.9,355.5c2.8-.7,2.8,3.9.6,4.9-1.7-.7-2.3-4.5-.6-4.9Z"/>
+ <path class="st1" d="M333,350.8c-.4-.4,1.5-2.9,1.9-3.4,1.1-1.4,2.9-2.9,4.4-4-.2,1.7-2,4-3.1,5.2-.5.5-2.5,2.8-3.1,2.1h0Z"/>
+ <path class="st1" d="M282.2,361.4c.2,2.2-1,5.3-3.8,4.9.5-2,1-5.4,3.8-4.9Z"/>
+ <path class="st1" d="M21.6,179.9c-.8.9-2.2-.4-2.3-1.7-.2-2.9,2.7-4.6,3-1.7,0,.6-.4,3-.7,3.4h0Z"/>
+ <path class="st1" d="M18.9,141c.1,2,.2,5.4-2.5,5.5-.9-2-.2-5.3,2.5-5.5Z"/>
+ <path class="st1" d="M37.4,78.8c.6.6-2.8,6.4-4.4,4.9-.6-.6,2.8-6.4,4.4-4.9Z"/>
+ <path class="st1" d="M306.9,363.5c0-3,2.9-5.1,5-6.7,0,3-2.9,5.1-5,6.7Z"/>
+ <path class="st1" d="M310.6,363.5c-.4-.4,1.4-2.9,1.9-3.4,1-1.2,2.5-2.5,3.7-3.4.9,2-5.1,7.3-5.6,6.7h0Z"/>
+ <path class="st1" d="M203.3,341c1.1,1.1,1.2,3.9-1.2,3.3-3.2-.8-1.5-6,1.2-3.3Z"/>
+ <path class="st1" d="M16.6,131.1c-.3-2.6.1-4,2.2-5.5,2.5,1.2-1.2,6.7-2.2,5.5Z"/>
+ <path class="st1" d="M24.3,192.9c1.9-.6,2.2,4.4.6,4.9-1.9.6-2.2-4.4-.6-4.9Z"/>
+ <path class="st1" d="M274.8,363.2c.5,5.5-5.6,5.9-2.2.6.6-.9,1.3-.6,2.2-.6Z"/>
+ <path class="st1" d="M55.6,52.5c.7.8-3.1,5.8-5,4.9-.4-.4,4.2-5.8,5-4.9Z"/>
+ <path class="st1" d="M320.6,357.4c.1.1-1.8,2.7-2.2,3.1-.5.5-2.8,3-3.4,2.4l3.1-4.6,2.5-.9h0Z"/>
+ <path class="st1" d="M335.4,351.4c-.3-.3,5.1-6.5,6.2-6.7-.5,2.1-2.5,4.1-4.1,5.5-.7.6-1,1.5-2.2,1.2h0Z"/>
+ <path class="st1" d="M21.1,111.4c.2,2.1-.7,3.7-2.2,4.9-2.3-1.2,1.3-6,2.2-4.9Z"/>
+ <path class="st1" d="M69.9,39.6c-1.5,2-3.3,3.9-5.6,4.9-.9-1.1,3.9-5.5,5.6-4.9Z"/>
+ <path class="st1" d="M83,29.3c-.1,1.1-5.4,4.5-5.6,4.3,0-3,3.2-3.6,5.6-4.3Z"/>
+ <path class="st1" d="M37.5,72.7c-.7-.8,2.6-4.6,3.8-4.9,1.1,1.6-3,5.7-3.8,4.9Z"/>
+ <path class="st1" d="M318,363.6c-.2-1.1.6-1.5,1.2-2.1,1.2-1.4,2.8-2.9,4.4-4l-2.5,4-3.1,2.1Z"/>
+ <path class="st1" d="M28.8,212.1c2.6-.8,3.4,3,1.5,3.7-1.5.6-1.8-2.8-1.5-3.7Z"/>
+ <path class="st1" d="M267.4,365c.3,1.8-.5,3.7-2.5,3.7-.1-2.1-.2-4.1,2.5-3.7Z"/>
+ <path class="st1" d="M220,351.5c.1.1,0,2.2,0,2.8-.1,1-3.2.3-2.4-2.5.3-1.1,2.2-.5,2.4-.3h0Z"/>
+ <path class="st1" d="M94.1,287.4c2.8-.2,3.8,2.5,1.5,3.7l-1.5-3.7Z"/>
+ <path class="st1" d="M343.5,346.5c-.6.8-4.6,6.5-5.6,5.5.6-.8,4.6-6.5,5.6-5.5Z"/>
+ <path class="st1" d="M62.9,259.3c1.9-.3,3.5,2.9,1.5,3.7-1.5.6-1.8-2.8-1.5-3.7Z"/>
+ <path class="st1" d="M241.2,358.5c2.1-.2,1.8,3.7.6,3.7-.9,0-2.5-3-.6-3.7Z"/>
+ <path class="st1" d="M21.2,102.1c-.1-1.8.9-3.6,2.5-4.3.1,1.7-.3,4.3-2.5,4.3Z"/>
+ <path class="st1" d="M173.2,337.5c-1.6.2-3.1-.9-3.1-2.5,2.1-.2,3.4.2,3.1,2.5Z"/>
+ <path class="st1" d="M326.1,358.7c-1.1,1.9-2.2,3.6-4.4,4.3-.7-.7,3.7-5,4.4-4.3Z"/>
+ </g>
+ </g>
+ <g id="Layer_11" data-name="Layer_1">
+ <g id="Spasm">
+ <g id="Layer_1-2">
+ <path class="st0" d="M2.1,232.4c4.9,3.7,7.3,2,9.2-3.1.7-1.7,3.6-9.1,8.9-15.8,23.8-30.4,86.6-61.9,117.4-73.7,69.4-26.4,237.5-48.2,266.7,21.6,5.4,13.9.9,27.2-5.2,41.2,0,.1,0-.1,0,0,0,6.4,0,10.1,0,12,0,2.9,7.1-2.7,16-10.6,11-9.9,15.6-24.6,17.7-36.9,3.5-19-4.6-38.7-21.5-52.9-16.8-14.3-38.6-21.8-63.5-26.4-108.7-17.3-238.9,21.1-311,85.6-12.3,11.8-45.2,45.5-34.7,58.9h0c0,0,0,0,0,0Z"/>
+ <path class="st0" d="M57.2,137.7c-1.8,2.1-5.1,8.1-1,7.8,4-.7,6.5-2.6,10.5-5.1,14.7-9.9,30-19.3,46.7-27.2,70.8-34.1,153.1-47.7,229.5-37.3,31.5,4.3,65,13.4,82.5,34.5,2.2,2.2,10.9,15.6,12.4,8.9.7-5.2-3.3-13.1-7.6-18.2-10.3-12.8-27.6-21.8-46.5-26.3-21.7-5.2-43.5-9.2-66.3-11.2-87.7-6.4-179.9,17.3-248.1,63-4.6,3.3-8.8,6.9-11.9,11h0c0,.1,0,.1,0,.1Z"/>
+ <path class="st0" d="M359.5,59.3c-36.6-7.8-77.2-8.4-118.1-4.9-7.2.6-16.8,2.4-23.7,2.5-.8,0-2,.2-2.1-.5-.2-1.5,8.2-3.7,10.1-4.2,28.9-8,78.3-8.3,106.6-5.2,11.9,1.3,23,4.2,33.9,7.1,1.9.5,3.9,1,5.9,1.6,4,1.2,2.4,7.3-1.7,6.3-3.6-.9-7.2-1.8-10.9-2.6h0Z"/>
+ </g>
+ </g>
+ </g>
+</svg> \ No newline at end of file
diff --git a/admin/backup_database.php b/admin/backup_database.php
new file mode 100644
index 0000000..b945408
--- /dev/null
+++ b/admin/backup_database.php
@@ -0,0 +1,37 @@
+<?php
+session_start();
+
+// Config lade
+$config = include(__DIR__ . '/../config.php');
+
+// WebsiteID us der URL hole
+$websiteId = isset($_GET['websiteId']) ? (int)$_GET['websiteId'] : 1;
+
+// Website config ider config finde
+$websiteConfig = array_filter($config, function($site) use ($websiteId) {
+ return isset($site['id']) && $site['id'] === $websiteId;
+});
+$websiteConfig = reset($websiteConfig);
+
+// omg en request mache zum backup erstelle und so wie bin ich so tüüf gfalle 😭
+$source = $websiteConfig['database'];
+$backupDir = __DIR__ . '/../' . $websiteConfig['backup_folder'];
+$timestamp = date('Y-m-d-H-i-s');
+$destination = $backupDir . '/' . $timestamp . '.db';
+
+// stell der vor es git kei backup folder 😱 denn meun mer de mache
+if (!is_dir($backupDir)) {
+ mkdir($backupDir, 0755, true);
+}
+
+// und jetzt stell der vor mer kopieret die datei deht ineh 😱
+if (copy($source, $destination)) {
+ $backupMessage = "Database backup created successfully: " . htmlspecialchars($destination);
+} else {
+ $backupMessage = "Failed to create database backup.";
+}
+
+// zrug zum sexxi admin panel mit de message mir sind so guet und sexi , ich wird niemals eh frau ha im lebe ich bin single af
+header("Location: index.php?backupMessage=" . urlencode($backupMessage));
+exit();
+?>
diff --git a/admin/index.php b/admin/index.php
new file mode 100644
index 0000000..22fa311
--- /dev/null
+++ b/admin/index.php
@@ -0,0 +1,110 @@
+<?php
+// Start session und so
+session_start();
+
+// Config lade
+$config = include(__DIR__ . '/../config.php');
+
+// Sqlite
+$db = new SQLite3(__DIR__ . '/../content.db');
+?>
+
+<!DOCTYPE html>
+<html lang="en">
+<head>
+ <meta charset="UTF-8">
+ <meta name="viewport" content="width=device-width, initial-scale=1.0">
+ <title>Admin Panel</title>
+ <link rel="stylesheet" href="../assets/css/tc.css">
+ <style> /* nachher gihts denne keis styling meh im adminier panel will das blaot oder so isch*/
+ body {
+ font-family: Arial, sans-serif;
+ display: flex;
+ flex-direction: column;
+ align-items: center;
+ padding: 20px;
+ }
+ .header-content {
+ display: flex;
+ align-items: center;
+ margin-bottom: 20px;
+ }
+ .header-content img {
+ margin-right: 10px;
+ width: 50px;
+ height: auto;
+ }
+ .container {
+ display: flex;
+ width: 100%;
+ max-width: 1200px;
+ }
+ .sidebar {
+ width: 200px;
+ background-color: #f4f4f4;
+ padding: 15px;
+ box-shadow: 2px 0 5px rgba(0,0,0,0.1);
+ }
+ .sidebar a {
+ display: block;
+ padding: 10px;
+ margin: 5px 0;
+ color: #333;
+ text-decoration: none;
+ }
+ .sidebar a:hover {
+ background-color: #ddd;
+ }
+ .content {
+ flex-grow: 1;
+ padding: 20px;
+ background-color: #fff;
+ box-shadow: 0 0 10px rgba(0,0,0,0.1);
+ }
+ .content h1 {
+ margin-top: 0;
+ }
+ .content p {
+ margin-bottom: 20px;
+ }
+ .content form {
+ margin-bottom: 20px;
+ }
+
+ </style>
+</head>
+<body>
+ <div class="header-content">
+ <img src="assets/svg/teleco.svg" alt="Teleco Logo" class="logo">
+ <h1>Adminier Panel</h1>
+ </div>
+ <div class="container">
+ <div class="sidebar">
+ <h2>Adminier Panel</h2>
+ <form method="GET" action="index.php">
+ <label for="websiteId">Select Website:</label>
+ <select name="websiteId" id="websiteId" onchange="this.form.submit()">
+ <?php foreach ($config as $site): ?>
+ <?php if (isset($site['id'])): ?>
+ <option value="<?php echo $site['id']; ?>" <?php echo (isset($_GET['websiteId']) && $_GET['websiteId'] == $site['id']) ? 'selected' : ''; ?>>
+ <?php echo htmlspecialchars($site['name']); ?>
+ </option>
+ <?php endif; ?>
+ <?php endforeach; ?>
+ </select>
+ </form>
+ <a href="backup_database.php?websiteId=<?php echo isset($_GET['websiteId']) ? (int)$_GET['websiteId'] : 1; ?>">Backup Database</a>
+ <a href="tools/edit_database.php">Edit das Database</a>
+ <a href="tools/manage_files.php">Manger das Filet</a>
+ </div>
+ <div class="content">
+ <h1>Welcome to the TC-C-CMS admin Panel</h1>
+ <p>Feast your eyes! This is the last time you will see properish CSS in the admin panel.</p>
+ <p>Made with lots of love for PHP and pure hatred against JavaScript (has none) by T.B <br> TC-C-CMS means Teleco's Crappy Content Management System btw lol hahahaha ich chan das alles nümmeh! </p>
+ <?php if (isset($_GET['backupMessage'])): ?>
+ <p><?php echo htmlspecialchars($_GET['backupMessage']); ?></p>
+ <?php endif; ?>
+ </div>
+ </div>
+</body>
+</html> \ No newline at end of file
diff --git a/admin/tools/edit_database.php b/admin/tools/edit_database.php
new file mode 100644
index 0000000..bc5489a
--- /dev/null
+++ b/admin/tools/edit_database.php
@@ -0,0 +1,361 @@
+<?php
+session_start();
+
+// Config lade
+$config = include(__DIR__ . '/../../config.php');
+
+// WebsiteID us der URL oder session hole
+$websiteId = isset($_GET['websiteId']) ? (int)$_GET['websiteId'] : (isset($_SESSION['websiteId']) ? (int)$_SESSION['websiteId'] : 1);
+$_SESSION['websiteId'] = $websiteId;
+
+// Website config ider config finde
+$websiteConfig = array_filter($config, function($site) use ($websiteId) {
+ return isset($site['id']) && $site['id'] === $websiteId;
+});
+$websiteConfig = reset($websiteConfig);
+
+// Sqlite datenbank ahfigge
+$db = new SQLite3($websiteConfig['database']);
+
+// Backup erstelle oder ganzi datehbank lôsche *evil laugh* 😈 jk mer propbieret sehr schlecht IDs wieder sekuentiel zmache
+if (isset($_POST['backup']) || isset($_POST['delete_row']) || isset($_POST['reassign_ids'])) {
+ $source = $websiteConfig['database'];
+ $backupDir = __DIR__ . '/../../' . $websiteConfig['backup_folder'];
+ $timestamp = date('Y-m-d-H-i-s');
+ $destination = $backupDir . '/' . $timestamp . '.db';
+
+ // machen das backup directory wenns nid git
+ if (!is_dir($backupDir)) {
+ mkdir($backupDir, 0755, true);
+ }
+
+ // omg file deht ineh kopiere 😱
+ if (copy($source, $destination)) {
+ $backupMessage = "Database backup created successfully: " . htmlspecialchars($destination);
+ } else {
+ $backupMessage = "Failed to create database backup.";
+ }
+}
+
+$selectedTable = $_POST['table'] ?? $_SESSION['selectedTable'] ?? '';
+$columns = [];
+$rows = [];
+$sortOrder = $_GET['sortOrder'] ?? 'ASC';
+
+$tablesResult = $db->query("SELECT name FROM sqlite_master WHERE type='table' AND name != 'sqlite_sequence'");
+$tables = [];
+while ($row = $tablesResult->fetchArray(SQLITE3_ASSOC)) {
+ $tables[] = $row['name'];
+}
+
+if ($selectedTable && in_array($selectedTable, $tables)) {
+ $_SESSION['selectedTable'] = $selectedTable;
+ $columnsResult = $db->query("PRAGMA table_info($selectedTable)");
+ while ($row = $columnsResult->fetchArray(SQLITE3_ASSOC)) {
+ $columns[] = $row['name'];
+ }
+ if ($selectedTable == 'content' && in_array('date', $columns)) {
+ $orderBy = "ORDER BY date DESC"; // das hier machen default sorting nach datum und ziiht de neuschti row zerscht will susch isch das unmanagebar
+ } else {
+ $orderBy = in_array('date', $columns) ? "ORDER BY date $sortOrder" : "ORDER BY id ASC";
+ }
+ $rowsResult = $db->query("SELECT * FROM $selectedTable $orderBy");
+ while ($row = $rowsResult->fetchArray(SQLITE3_ASSOC)) {
+ $rows[] = $row;
+ }
+} else {
+ $selectedTable = '';
+ $_SESSION['selectedTable'] = '';
+}
+
+if (isset($_POST['edit_row'])) {
+ header("Location: edit_row.php?table=$selectedTable&id=" . $_POST['id']);
+ exit();
+}
+
+if (isset($_POST['delete_row'])) {
+ $idsToDelete = $_POST['ids'] ?? [];
+ foreach ($idsToDelete as $id) {
+ $stmt = $db->prepare("DELETE FROM $selectedTable WHERE id = :id");
+ $stmt->bindValue(':id', $id, SQLITE3_INTEGER);
+ $stmt->execute();
+ }
+ $message = "Selected rows deleted successfully (most likely).";
+}
+
+if (isset($_POST['insert_row'])) {
+ $values = $_POST['values'];
+ $highestIdResult = $db->querySingle("SELECT MAX(id) as max_id FROM $selectedTable");
+ $highestId = $highestIdResult ? $highestIdResult : 0;
+ $values['id'] = $highestId + 1;
+ if ($selectedTable == 'content') {
+ if (empty($values['date'])) {
+ $values['date'] = date('Y-m-d H:i:s');
+ }
+ }
+ $columnsString = implode(", ", array_keys($values));
+ $placeholders = implode(", ", array_fill(0, count($values), "?"));
+ $stmt = $db->prepare("INSERT INTO $selectedTable ($columnsString) VALUES ($placeholders)");
+ $index = 1;
+ foreach ($values as $value) {
+ $stmt->bindValue($index, $value ?: null, SQLITE3_TEXT);
+ $index++;
+ }
+ $stmt->execute();
+ $message = "Row inserted successfully. (maybe)";
+}
+
+if (isset($_POST['swap_row'])) {
+ $id = $_POST['id'];
+ $targetId = $_POST['target_id'];
+ $db->exec("BEGIN TRANSACTION");
+ $db->exec("UPDATE $selectedTable SET id = -1 WHERE id = $id");
+ $db->exec("UPDATE $selectedTable SET id = $id WHERE id = $targetId");
+ $db->exec("UPDATE $selectedTable SET id = $targetId WHERE id = -1");
+ $db->exec("COMMIT");
+ $message = "Row swapped successfully for sure.";
+}
+
+if (isset($_POST['push_row'])) {
+ $id = $_POST['id'];
+ $targetId = $_POST['target_id'];
+ $tempTable = $selectedTable . '_temp';
+ $db->exec("BEGIN TRANSACTION");
+ $db->exec("CREATE TEMPORARY TABLE $tempTable AS SELECT * FROM $selectedTable");
+ $db->exec("UPDATE $tempTable SET id = -1 WHERE id = $id");
+ if ($id < $targetId) {
+ $db->exec("UPDATE $tempTable SET id = id - 1 WHERE id > $id AND id <= $targetId");
+ } else {
+ $db->exec("UPDATE $tempTable SET id = id + 1 WHERE id < $id AND id >= $targetId");
+ }
+ $db->exec("UPDATE $tempTable SET id = $targetId WHERE id = -1");
+ $db->exec("DELETE FROM $selectedTable");
+ $db->exec("INSERT INTO $selectedTable SELECT * FROM $tempTable");
+ $db->exec("DROP TABLE $tempTable");
+ $db->exec("COMMIT");
+ $message = "Row pushed successfully (perhaps).";
+}
+
+if (isset($_POST['reassign_ids'])) {
+ $tempBackup = $backupDir . '/' . $timestamp . '_temp.db';
+ copy($source, $tempBackup);
+
+ try {
+ $db->exec("BEGIN TRANSACTION");
+ $tempTable = $selectedTable . '_temp';
+ $db->exec("CREATE TEMPORARY TABLE $tempTable AS SELECT * FROM $selectedTable");
+ $db->exec("DELETE FROM $selectedTable");
+
+ if (in_array('date', $columns)) {
+ $orderBy = "ORDER BY date ASC";
+ } else {
+ $orderBy = "ORDER BY id ASC";
+ }
+
+ $rowsResult = $db->query("SELECT * FROM $tempTable $orderBy");
+ $newId = 1;
+ while ($row = $rowsResult->fetchArray(SQLITE3_ASSOC)) {
+ $row['id'] = $newId++;
+ $columnsString = implode(", ", array_keys($row));
+ $placeholders = implode(", ", array_fill(0, count($row), "?"));
+ $stmt = $db->prepare("INSERT INTO $selectedTable ($columnsString) VALUES ($placeholders)");
+ $index = 1;
+ foreach ($row as $value) {
+ $stmt->bindValue($index, $value ?: null, SQLITE3_TEXT);
+ $index++;
+ }
+ $stmt->execute();
+ }
+
+ $db->exec("DROP TABLE $tempTable");
+ $db->exec("COMMIT");
+ $message = "IDs reassigned successfully.";
+ } catch (Exception $e) {
+ copy($tempBackup, $source);
+ $message = "Failed to reassign IDs. Database restored from backup. (probably)";
+ } finally {
+ unlink($tempBackup);
+ }
+}
+?>
+<!DOCTYPE html>
+<html lang="en">
+<head>
+ <meta charset="UTF-8">
+ <meta name="viewport" content="width=device-width, initial-scale=1.0">
+ <title>Edit Database</title>
+</head>
+<body>
+ <form method="post" action="../index.php">
+ <button type="submit">Back to Admin Panel</button>
+ </form>
+ <h1>Edit Database</h1>
+ <form method="get" action="edit_database.php">
+ <label for="websiteId">Select Website:</label>
+ <select name="websiteId" id="websiteId" onchange="this.form.submit()">
+ <?php foreach ($config as $site): ?>
+ <?php if (isset($site['id'])): ?>
+ <option value="<?php echo $site['id']; ?>" <?php echo ($websiteId == $site['id']) ? 'selected' : ''; ?>>
+ <?php echo htmlspecialchars($site['name']); ?>
+ </option>
+ <?php endif; ?>
+ <?php endforeach; ?>
+ </select>
+ </form>
+ <form method="post">
+ <button type="submit" name="backup">Backup das Database</button>
+ </form>
+ <?php if (isset($backupMessage)): ?>
+ <p><?php echo $backupMessage; ?></p>
+ <?php endif; ?>
+ <form method="post">
+ <label for="table">Select das Table:</label>
+ <select id="table" name="table" onchange="this.form.submit()">
+ <option value="">-- Select a table --</option>
+ <?php foreach ($tables as $table): ?>
+ <option value="<?php echo htmlspecialchars($table); ?>" <?php echo ($selectedTable == $table) ? 'selected' : ''; ?>><?php echo htmlspecialchars($table); ?></option>
+ <?php endforeach; ?>
+ </select>
+ </form>
+ <form method="post">
+ <button type="submit" name="refresh">Refresh</button>
+ </form>
+ <?php if ($selectedTable): ?>
+ <h2>Editing Table: <?php echo htmlspecialchars($selectedTable); ?></h2>
+ <?php if ($selectedTable == 'content'): ?>
+ <form method="post">
+ <input type="hidden" name="table" value="<?php echo htmlspecialchars($selectedTable); ?>">
+ <table border="1">
+ <thead>
+ <tr>
+ <th>Select</th>
+ <?php foreach ($columns as $column): ?>
+ <th>
+ <?php echo htmlspecialchars($column); ?>
+ <?php if ($column == 'date'): ?>
+ <a href="?table=<?php echo htmlspecialchars($selectedTable); ?>&sortOrder=<?php echo $sortOrder == 'ASC' ? 'DESC' : 'ASC'; ?>">Sort by Date</a>
+ <?php endif; ?>
+ </th>
+ <?php endforeach; ?>
+ <th>Actions</th>
+ </tr>
+ </thead>
+ <tbody>
+ <tr>
+ <td></td>
+ <?php foreach ($columns as $column): ?>
+ <td>
+ <?php if ($column == 'id'): ?>
+ <input type="text" name="values[<?php echo htmlspecialchars($column); ?>]" disabled>
+ <?php elseif ($column == 'date'): ?>
+ <input type="text" name="values[<?php echo htmlspecialchars($column); ?>]" value="<?php echo date('Y-m-d H:i:s'); ?>" disabled>
+ <input type="text" name="values[<?php echo htmlspecialchars($column); ?>]">
+ <?php endif; ?>
+ </td>
+ <?php endforeach; ?>
+ <td>
+ <button type="submit" name="insert_row">Add Row</button>
+ </td>
+ </tr>
+ <?php foreach ($rows as $row): ?>
+ <tr>
+ <td><input type="checkbox" name="ids[]" value="<?php echo $row['id']; ?>"></td>
+ <?php foreach ($columns as $column): ?>
+ <td><?php echo htmlspecialchars($row[$column] ?? ''); ?></td>
+ <?php endforeach; ?>
+ <td>
+ <form method="post" style="display:inline;">
+ <input type="hidden" name="id" value="<?php echo $row['id']; ?>">
+ <button type="submit" name="edit_row">Edit</button>
+ </form>
+ <form method="post" style="display:inline;">
+ <input type="hidden" name="id" value="<?php echo $row['id']; ?>">
+ <button type="submit" name="delete_row">Delete</button>
+ </form>
+ <form method="post" style="display:inline;">
+ <input type="hidden" name="id" value="<?php echo $row['id']; ?>">
+ <input type="text" name="target_id" placeholder="Target ID">
+ <button type="submit" name="swap_row">Swap</button>
+ <button type="submit" name="push_row">Push</button>
+ </form>
+ </td>
+ </tr>
+ <?php endforeach; ?>
+ </tbody>
+ </table>
+ <button type="submit" name="delete_row">Maybe Delete Selected Rows</button>
+ <button type="submit" name="reassign_ids">Maybe Reassign IDs</button>
+ </form>
+ <?php else: ?>
+ <form method="post">
+ <input type="hidden" name="table" value="<?php echo htmlspecialchars($selectedTable); ?>">
+ <table border="1">
+ <thead>
+ <tr>
+ <th>Select</th>
+ <?php foreach ($columns as $column): ?>
+ <th>
+ <?php echo htmlspecialchars($column); ?>
+ <?php if ($column == 'date'): ?>
+ <a href="?table=<?php echo htmlspecialchars($selectedTable); ?>&sortOrder=<?php echo $sortOrder == 'ASC' ? 'DESC' : 'ASC'; ?>">Sort by Datum</a>
+ <?php endif; ?>
+ </th>
+ <?php endforeach; ?>
+ <th>Actions</th>
+ </tr>
+ </thead>
+ <tbody>
+ <?php foreach ($rows as $row): ?>
+ <tr>
+ <td><input type="checkbox" name="ids[]" value="<?php echo $row['id']; ?>"></td>
+ <?php foreach ($columns as $column): ?>
+ <td><?php echo htmlspecialchars($row[$column] ?? ''); ?></td>
+ <?php endforeach; ?>
+ <td>
+ <form method="post" style="display:inline;">
+ <input type="hidden" name="id" value="<?php echo $row['id']; ?>">
+ <button type="submit" name="edit_row">Edit</button>
+ </form>
+ <form method="post" style="display:inline;">
+ <input type="hidden" name="id" value="<?php echo $row['id']; ?>">
+ <button type="submit" name="delete_row">Bye</button>
+ </form>
+ <form method="post" style="display:inline;">
+ <input type="hidden" name="id" value="<?php echo $row['id']; ?>">
+ <input type="text" name="target_id" placeholder="Target ID">
+ <button type="submit" name="swap_row">Swap</button>
+ <button type="submit" name="push_row">Push</button>
+ </form>
+ </td>
+ </tr>
+ <?php endforeach; ?>
+ <tr>
+ <td></td>
+ <?php foreach ($columns as $column): ?>
+ <td>
+ <?php if ($column == 'id'): ?>
+ <input type="text" name="values[<?php echo htmlspecialchars($column); ?>]" disabled>
+ <?php elseif ($column == 'date'): ?>
+ <input type="text" name="values[<?php echo htmlspecialchars($column); ?>]" value="<?php echo date('Y-m-d H:i:s'); ?>" disabled>
+ <?php elseif ($selectedTable == 'content' && $column == 'custom_html'): ?>
+ <input type="text" name="values[<?php echo htmlspecialchars($column); ?>]" value="0">
+ <?php else: ?>
+ <input type="text" name="values[<?php echo htmlspecialchars($column); ?>]">
+ <?php endif; ?>
+ </td>
+ <?php endforeach; ?>
+ <td>
+ <button type="submit" name="insert_row">Add Row</button>
+ </td>
+ </tr>
+ </tbody>
+ </table>
+ <button type="submit" name="delete_row">Delete Selected Rows</button>
+ <button type="submit" name="reassign_ids">Reassign IDs</button>
+ </form>
+ <?php endif; ?>
+ <?php else: ?>
+ <p>No das table selected. Please select das table to editieren.</p>
+ <?php endif; ?>
+</body>
+</html> \ No newline at end of file
diff --git a/admin/tools/edit_row.php b/admin/tools/edit_row.php
new file mode 100644
index 0000000..ceb59f3
--- /dev/null
+++ b/admin/tools/edit_row.php
@@ -0,0 +1,80 @@
+<?php
+session_start();
+
+// Load configuration
+$config = include(__DIR__ . '/../../config.php');
+
+// Get the website ID from the session
+$websiteId = $_SESSION['websiteId'] ?? 1;
+
+// Find the website configuration
+$websiteConfig = array_filter($config, function($site) use ($websiteId) {
+ return isset($site['id']) && $site['id'] === $websiteId;
+});
+$websiteConfig = reset($websiteConfig);
+
+// Connect to SQLite database
+$db = new SQLite3($websiteConfig['database']);
+
+// Get the table and ID from the request
+$table = $_GET['table'] ?? '';
+$id = $_GET['id'] ?? 0;
+
+$columns = [];
+$columnsResult = $db->query("PRAGMA table_info($table)");
+while ($row = $columnsResult->fetchArray(SQLITE3_ASSOC)) {
+ $columns[] = $row['name'];
+}
+
+$stmt = $db->prepare("SELECT * FROM $table WHERE id = :id");
+$stmt->bindValue(':id', $id, SQLITE3_INTEGER);
+$result = $stmt->execute();
+
+if ($result) {
+ $row = $result->fetchArray(SQLITE3_ASSOC);
+} else {
+ $row = null;
+}
+
+if (isset($_POST['save_changes'])) {
+ foreach ($columns as $column) {
+ $value = $_POST[$column] ?: null;
+ if ($column == 'date' && empty($value)) {
+ $value = date('Y-m-d H:i:s');
+ }
+ if ($table == 'content' && $column == 'custom_html') {
+ $value = $value ? 1 : 0;
+ }
+ $stmt = $db->prepare("UPDATE $table SET $column = :value WHERE id = :id");
+ $stmt->bindValue(':value', $value, SQLITE3_TEXT);
+ $stmt->bindValue(':id', $id, SQLITE3_INTEGER);
+ $stmt->execute();
+ }
+ header("Location: edit_database.php?table=$table");
+ exit();
+}
+?>
+<!DOCTYPE html>
+<html lang="en">
+<head>
+ <meta charset="UTF-8">
+ <meta name="viewport" content="width=device-width, initial-scale=1.0">
+ <title>Edit Row</title>
+</head>
+<body>
+ <h1>Edit Row in Table: <?php echo htmlspecialchars($table); ?></h1>
+ <form method="post">
+ <?php foreach ($columns as $column): ?>
+ <label for="<?php echo htmlspecialchars($column); ?>"><?php echo htmlspecialchars($column); ?>:</label>
+ <?php if ($table == 'content' && $column == 'content'): ?>
+ <textarea id="<?php echo htmlspecialchars($column); ?>" name="<?php echo htmlspecialchars($column); ?>" style="resize: both;"><?php echo htmlspecialchars($row[$column] ?? ''); ?></textarea>
+ <?php else: ?>
+ <input type="text" id="<?php echo htmlspecialchars($column); ?>" name="<?php echo htmlspecialchars($column); ?>" value="<?php echo htmlspecialchars($row[$column] ?? ''); ?>">
+ <?php endif; ?>
+ <br>
+ <?php endforeach; ?>
+ <button type="submit" name="save_changes">Save Changes</button>
+ </form>
+ <a href="edit_database.php?table=<?php echo htmlspecialchars($table); ?>">Back to Table</a>
+</body>
+</html>
diff --git a/admin/tools/manage_files.php b/admin/tools/manage_files.php
new file mode 100644
index 0000000..f7d9592
--- /dev/null
+++ b/admin/tools/manage_files.php
@@ -0,0 +1,222 @@
+<?php
+session_start();
+
+// Load configuration
+$config = include(__DIR__ . '/../../config.php');
+
+// Get the website ID from the request or session
+$websiteId = isset($_GET['websiteId']) ? (int)$_GET['websiteId'] : (isset($_SESSION['websiteId']) ? (int)$_SESSION['websiteId'] : 1);
+$_SESSION['websiteId'] = $websiteId;
+
+// Find the website configuration
+$websiteConfig = array_filter($config, function($site) use ($websiteId) {
+ return isset($site['id']) && $site['id'] === $websiteId;
+});
+$websiteConfig = reset($websiteConfig);
+
+// Enable error reporting
+error_reporting(E_ALL);
+ini_set('display_errors', 1);
+
+$rootDir = realpath(__DIR__ . '/../../' . $websiteConfig['folder']);
+$currentDir = isset($_GET['dir']) ? realpath($rootDir . '/' . $_GET['dir']) : $rootDir;
+
+// Ensure the current directory is within the root directory
+if (strpos($currentDir, $rootDir) !== 0) {
+ $currentDir = $rootDir;
+}
+
+// Handle file upload
+if (isset($_POST['upload'])) {
+ $targetFile = $currentDir . '/' . basename($_FILES['file']['name']);
+ if (move_uploaded_file($_FILES['file']['tmp_name'], $targetFile)) {
+ $message = "File uploaded successfully.";
+ } else {
+ $message = "Failed to upload file.";
+ }
+}
+
+// Handle file deletion
+if (isset($_POST['delete'])) {
+ $fileToDelete = $currentDir . '/' . $_POST['filename'];
+ if (unlink($fileToDelete)) {
+ $message = "File deleted successfully.";
+ } else {
+ $message = "Failed to delete file.";
+ }
+}
+
+// Handle file renaming
+if (isset($_POST['rename'])) {
+ $oldName = $currentDir . '/' . $_POST['oldname'];
+ $newName = $currentDir . '/' . $_POST['newname'];
+ if (rename($oldName, $newName)) {
+ $message = "File renamed successfully.";
+ } else {
+ $message = "Failed to rename file.";
+ }
+}
+
+// Handle folder creation
+if (isset($_POST['create_folder'])) {
+ $newFolder = $currentDir . '/' . $_POST['foldername'];
+ if (mkdir($newFolder, 0755, true)) {
+ $message = "Folder created successfully.";
+ } else {
+ $message = "Failed to create folder.";
+ }
+}
+
+// Handle folder deletion
+if (isset($_POST['delete_folder'])) {
+ $folderToDelete = $currentDir . '/' . $_POST['foldername'];
+ if (rmdir($folderToDelete)) {
+ $message = "Folder deleted successfully.";
+ } else {
+ $message = "Failed to delete folder.";
+ }
+}
+
+// Handle folder backup
+if (isset($_POST['backup_folder'])) {
+ $backupDir = realpath(__DIR__ . '/../../' . $websiteConfig['backup_folder']);
+ $backupFile = $backupDir . '/' . basename($currentDir) . '_' . date('Ymd_His') . '.tar';
+ $command = "tar -cf $backupFile -C " . escapeshellarg($currentDir) . " .";
+ exec($command, $output, $returnVar);
+ if ($returnVar === 0) {
+ $message = "Folder backed up successfully.";
+ } else {
+ $message = "Failed to back up folder.";
+ }
+}
+
+// Get list of files and directories
+$items = scandir($currentDir);
+
+// Get relative path for display
+$relativePath = str_replace($rootDir, '', $currentDir);
+if ($relativePath === '') {
+ $relativePath = '/';
+}
+?>
+
+<!DOCTYPE html>
+<html lang="en">
+<head>
+ <meta charset="UTF-8">
+ <meta name="viewport" content="width=device-width, initial-scale=1.0">
+ <title>Manage Files</title>
+</head>
+<body>
+ <div class="container">
+ <form method="post" action="../index.php">
+ <button type="submit">Back to Admin Panel</button>
+ </form>
+ <h1>File Manager</h1>
+ <form method="get" action="manage_files.php">
+ <label for="websiteId">Select Website:</label>
+ <select name="websiteId" id="websiteId" onchange="this.form.submit()">
+ <?php foreach ($config as $site): ?>
+ <?php if (isset($site['id'])): ?>
+ <option value="<?php echo $site['id']; ?>" <?php echo ($websiteId == $site['id']) ? 'selected' : ''; ?>>
+ <?php echo htmlspecialchars($site['name']); ?>
+ </option>
+ <?php endif; ?>
+ <?php endforeach; ?>
+ </select>
+ </form>
+ <?php if (isset($message)): ?>
+ <p class="message"><?php echo $message; ?></p>
+ <?php endif; ?>
+ <h2>Current Directory: <?php echo htmlspecialchars($relativePath); ?></h2>
+ <form method="post">
+ <button type="submit" name="refresh">Refresh</button>
+ </form>
+ <table border="1">
+ <thead>
+ <tr>
+ <th colspan="2"></th>
+ </tr>
+ </thead>
+ <tbody>
+ <?php if ($currentDir !== $rootDir): ?>
+ <tr>
+ <td colspan="2"><a href="?dir=<?php echo urlencode(dirname($relativePath)); ?>&websiteId=<?php echo $websiteId; ?>">.. (Parent Directory)</a></td>
+ </tr>
+ <?php endif; ?>
+ <tr>
+ <td colspan="2" style="text-align: center; background-color: yellow;"><strong>Folders</strong></td>
+ </tr>
+ <?php foreach ($items as $item): ?>
+ <?php if ($item === '.' || $item === '..') continue; ?>
+ <?php if (is_dir($currentDir . '/' . $item)): ?>
+ <tr>
+ <td><a href="?dir=<?php echo urlencode(ltrim($relativePath . '/' . $item, '/')); ?>&websiteId=<?php echo $websiteId; ?>"><?php echo htmlspecialchars($item); ?></a></td>
+ <td class="actions">
+ <form method="post" style="display:inline;">
+ <input type="hidden" name="foldername" value="<?php echo htmlspecialchars($item); ?>">
+ <button type="submit" name="delete_folder">Delete</button>
+ </form>
+ <form method="post" style="display:inline;">
+ <input type="hidden" name="oldname" value="<?php echo htmlspecialchars($item); ?>">
+ <input type="text" name="newname" placeholder="New name">
+ <button type="submit" name="rename">Rename</button>
+ </form>
+ </td>
+ </tr>
+ <?php endif; ?>
+ <?php endforeach; ?>
+ <tr>
+ <td colspan="2" style="text-align: center; background-color: orange;"><strong>Files</strong></td>
+ </tr>
+ <?php foreach ($items as $item): ?>
+ <?php if ($item === '.' || $item === '..') continue; ?>
+ <?php if (!is_dir($currentDir . '/' . $item)): ?>
+ <tr>
+ <td><?php echo htmlspecialchars($item); ?></td>
+ <td class="actions">
+ <form method="post" style="display:inline;">
+ <input type="hidden" name="filename" value="<?php echo htmlspecialchars($item); ?>">
+ <button type="submit" name="delete">Delete</button>
+ </form>
+ <form method="post" style="display:inline;">
+ <input type="hidden" name="oldname" value="<?php echo htmlspecialchars($item); ?>">
+ <input type="text" name="newname" placeholder="New name">
+ <button type="submit" name="rename">Rename</button>
+ </form>
+ <a href="../../<?php echo htmlspecialchars($websiteConfig['folder'] . '/' . $relativePath . '/' . $item); ?>" download>Download</a>
+ </td>
+ </tr>
+ <?php endif; ?>
+ <?php endforeach; ?>
+ <tr>
+ <td colspan="2">
+ <h2>Upload File</h2>
+ <form method="post" enctype="multipart/form-data">
+ <input type="file" name="file">
+ <button type="submit" name="upload">Upload</button>
+ </form>
+ </td>
+ </tr>
+ <tr>
+ <td colspan="2">
+ <h2>Create Folder</h2>
+ <form method="post">
+ <input type="text" name="foldername" placeholder="Folder name">
+ <button type="submit" name="create_folder">Create</button>
+ </form>
+ </td>
+ </tr>
+ <tr>
+ <td colspan="2">
+ <h2>Backup Folder</h2>
+ <form method="post">
+ <button type="submit" name="backup_folder">Backup Folder</button>
+ </form>
+ </td>
+ </tr>
+ </tbody>
+ </table>
+ </div>
+</body>
+</html>
diff --git a/common/functions.php b/common/functions.php
new file mode 100644
index 0000000..a0a953e
--- /dev/null
+++ b/common/functions.php
@@ -0,0 +1,171 @@
+<?php
+// sqlite datehbank ahfigge
+$db = new SQLite3($websiteConfig['database']);
+
+// so luegele ob mer navbar sache mache oder ob d'websihte wahrschiinlich so sidebar style wird
+$navbarTableExists = $db->querySingle("SELECT name FROM sqlite_master WHERE type='table' AND name='navbar'");
+$navbarHasEntries = $db->querySingle("SELECT COUNT(*) FROM navbar") > 0;
+
+// mis wunderschöne url handling ✨
+$page = isset($_GET['page']) ? htmlspecialchars($_GET['page']) : 'index';
+$sub = isset($_GET['sub']) ? htmlspecialchars($_GET['sub']) : null;
+$offset = isset($_GET['offset']) ? (int)$_GET['offset'] : 0;
+$limit = 10; // Number of posts per load
+$menuExpanded = isset($_GET['menu']) ? (bool)$_GET['menu'] : false;
+
+// overflow protection oder so cha kei cybersecurity
+if ($offset < 0) {
+ $offset = 0;
+}
+
+// schlimmste funktion eveer für breadcrumbs aber es funktioniert leider
+function get_full_path($db, $page, $sub = null) {
+ $path = [];
+ $current_page = $sub ?: $page; // If sub is set of posts benutzen sub suscht halt page
+
+ while ($current_page) {
+ $query = $db->prepare('SELECT parent, title, page FROM pages WHERE page = :page');
+ $query->bindValue(':page', $current_page, SQLITE3_TEXT);
+ $result = $query->execute()->fetchArray(SQLITE3_ASSOC);
+
+ if ($result) {
+ array_unshift($path, [
+ 'title' => $result['title'],
+ 'page' => $result['page']
+ ]);
+ $current_page = $result['parent']; // eltere vor d'füess schiebe
+ } else {
+ break;
+ }
+ }
+ return $path;
+}
+
+$breadcrumbs = get_full_path($db, $page, $sub);
+
+// siihte metadata mache und so
+$metaQuery = $db->prepare('SELECT meta_description, parent FROM pages WHERE page = :page AND (parent IS NULL OR parent = :parent)');
+$metaQuery->bindValue(':page', $page, SQLITE3_TEXT);
+$metaQuery->bindValue(':parent', $sub, SQLITE3_TEXT);
+$metaResult = $metaQuery->execute()->fetchArray(SQLITE3_ASSOC);
+$metaDescription = $metaResult ? htmlspecialchars($metaResult['meta_description'] ?? '', ENT_QUOTES, 'UTF-8') : 'Default description of the website.';
+
+// mal gügsle wiviel posts es git hmmm 🤔 lol
+$countQuery = $db->prepare('SELECT COUNT(*) as total FROM content WHERE page = :page AND (parent IS NULL OR parent = :sub)');
+$countQuery->bindValue(':page', $page, SQLITE3_TEXT);
+$countQuery->bindValue(':sub', $sub, SQLITE3_TEXT);
+$totalPosts = $countQuery->execute()->fetchArray(SQLITE3_ASSOC)['total'];
+
+// offset dörf nid grösser sii als total posts will susch depressione
+if ($offset > $totalPosts) {
+ $offset = $totalPosts - ($totalPosts % $limit);
+}
+
+// ALLI POSTS ABRÜefe bitte ned ahlange susch hühl ich
+$query = $db->prepare('SELECT title, content, date FROM content WHERE page = :page ORDER BY date DESC LIMIT :limit OFFSET :offset');
+$query->bindValue(':page', $sub ? $sub : $page, SQLITE3_TEXT);
+$query->bindValue(':limit', $offset + $limit, SQLITE3_INTEGER);
+$query->bindValue(':offset', 0, SQLITE3_INTEGER); // immer alli posts holeh will was isch normali site pagination
+$result = $query->execute();
+
+// het page überhaupt was drufeh oder so ?
+$hasContent = $result->fetchArray() !== false;
+if ($hasContent) {
+ // Reset the result pointer
+ $result->reset();
+}
+
+// haben das linke sidebar sache?
+$leftSidebarHasItems = $db->querySingle("SELECT COUNT(*) FROM sidebar WHERE position='left'") > 0;
+
+// haben das rechte sidebar sache?
+$rightSidebarHasItems = $db->querySingle("SELECT COUNT(*) FROM sidebar WHERE position='right'") > 0;
+
+// das isch fett schaisse und ich ha kein plan ki het gseit das fixts und so ich ha kei lust meh gha ha nach 2 stund 😭
+function sameQueryParams(string $url1, string $url2): bool {
+ $parsed1 = parse_url($url1);
+ $parsed2 = parse_url($url2);
+
+ $params1 = [];
+ $params2 = [];
+ if (!empty($parsed1['query'])) {
+ parse_str($parsed1['query'], $params1);
+ }
+ if (!empty($parsed2['query'])) {
+ parse_str($parsed2['query'], $params2);
+ }
+
+ return $params1 == $params2;
+}
+
+// isch das total behindert und komplett losti ahgangs wiihs ? ja ... aber es funktioniert leider echt kei bock meh fr fr die grüene sind schuld
+function get_sidebar($db, $position, $page, $sub) {
+ $query = $db->prepare('
+ SELECT title, link, link_text
+ FROM sidebar
+ WHERE position = :position
+ ORDER BY id
+ ');
+ $query->bindValue(':position', $position, SQLITE3_TEXT);
+ $result = $query->execute();
+
+ if (!$result || !$result->fetchArray(SQLITE3_ASSOC)) {
+ return; // effizienz versuech will die ganz funktion müll isch ach mannn 😭
+ }
+ $result->reset();
+ $lastTitle = "";
+ // Bob der baumeister spileh und $activeLink zemme bastle
+ $queryString = parse_url($_SERVER['REQUEST_URI'], PHP_URL_QUERY) ?? ''; // luege das ned null isch will susch motzts
+ parse_str($queryString, $queryParams);
+
+ $activeParts = ["?page=" . ($queryParams['page'] ?? '')];
+ if (!empty($queryParams['sub'])) {
+ if (is_array($queryParams['sub'])) {
+ foreach ($queryParams['sub'] as $subParam) {
+ $activeParts[] = "sub=" . $subParam;
+ }
+ } else {
+ $activeParts[] = "sub=" . $queryParams['sub'];
+ }
+ }
+ $activeLink = implode("&", $activeParts);
+
+ $foundActive = false;
+
+ while ($row = $result->fetchArray(SQLITE3_ASSOC)) {
+ // new post oh mein gott so spannend mached mer grad neue title
+ if ($row['title'] !== $lastTitle) {
+ if ($lastTitle !== "") {
+ echo '</div>';
+ }
+ echo '<div class="box"><h3>' . htmlspecialchars($row['title']) . '</h3>';
+ $lastTitle = $row['title'];
+ }
+
+ // externi links z'erchäne wär inteligent schickiert
+ if (filter_var($row['link'], FILTER_VALIDATE_URL)) {
+ echo '<p><a href="'
+ . htmlspecialchars($row['link'])
+ . '" target="_blank">'
+ . htmlspecialchars($row['link_text'])
+ . '</a></p>';
+ } else {
+ // robuster mache und so lönd mich ihn rueh
+ $activeClass = '';
+ if (!$foundActive && sameQueryParams($row['link'], $activeLink)) {
+ $activeClass = 'active';
+ $foundActive = true;
+ }
+
+ echo '<p><a href="'
+ . htmlspecialchars($row['link'], ENT_QUOTES, 'UTF-8')
+ . '" class="' . $activeClass . '">'
+ . htmlspecialchars($row['link_text'])
+ . '</a></p>';
+ }
+ }
+ if ($lastTitle !== "") {
+ echo '</div>';
+ }
+}
+?> \ No newline at end of file
diff --git a/common/navbar.php b/common/navbar.php
new file mode 100644
index 0000000..681f176
--- /dev/null
+++ b/common/navbar.php
@@ -0,0 +1,98 @@
+<?php
+if ($navbarTableExists && $navbarHasEntries) {
+ // Fetch navbar items from the database and render them for nicht behindertes navbar ohni js <3
+ $navbarItems = [];
+ $navbarResult = $db->query("SELECT * FROM navbar ORDER BY id");
+ while ($row = $navbarResult->fetchArray(SQLITE3_ASSOC)) {
+ $navbarItems[] = $row;
+ }
+
+ // Function to render the navbar items im grosse navbar für normali mensche
+ function render_navbar($items, $currentPage) {
+ $leftItems = array_filter($items, fn($item) => $item['align'] === 'left');
+ $centerItems = array_filter($items, fn($item) => $item['align'] === 'center');
+ $rightItems = array_filter($items, fn($item) => $item['align'] === 'right');
+
+ echo '<div class="navbar-left">';
+ render_navbar_items($leftItems, $currentPage);
+ echo '</div>';
+ echo '<div class="navbar-center">';
+ render_navbar_items($centerItems, $currentPage);
+ echo '</div>';
+ echo '<div class="navbar-right">';
+ render_navbar_items($rightItems, $currentPage);
+ echo '</div>';
+ }
+
+ function render_navbar_items($items, $currentPage) {
+ foreach ($items as $item) {
+ $activeClass = ($item['link'] == "?page=$currentPage") ? ' class="active"' : '';
+ switch ($item['type']) {
+ case 'title':
+ echo '<span class="navbar-title">' . htmlspecialchars($item['name']) . '</span>';
+ break;
+ case 'link':
+ echo '<a href="' . htmlspecialchars($item['link']) . '"' . $activeClass . '>' . htmlspecialchars($item['name']) . '</a>';
+ break;
+ case 'drop down':
+ echo '<div class="navbar-dropdown">';
+ echo '<a class="navbar-dropbtn" href="#">' . htmlspecialchars($item['name']) . '</a>';
+ echo '<div class="navbar-dropdown-content">';
+ foreach ($items as $dropdownItem) {
+ if ($dropdownItem['type'] === 'drop down entry' && $dropdownItem['name'] === $item['name']) {
+ echo '<a href="' . htmlspecialchars($dropdownItem['link']) . '">' . htmlspecialchars($dropdownItem['link_text']) . '</a>';
+ }
+ }
+ echo '</div>';
+ echo '</div>';
+ break;
+ case 'text field':
+ echo '<input type="text" placeholder="' . htmlspecialchars($item['name']) . '">';
+ break;
+ case 'button':
+ echo '<button onclick="location.href=\'' . htmlspecialchars($item['link']) . '\'">' . htmlspecialchars($item['name']) . '</button>';
+ break;
+ case 'custom':
+ echo $item['link_text'];
+ break;
+ case 'logo':
+ echo '<img src="' . htmlspecialchars($item['link']) . '" alt="' . htmlspecialchars($item['name']) . '" class="navbar-logo">';
+ break;
+ case 'search':
+ echo '<input type="search" placeholder="' . htmlspecialchars($item['name']) . '">';
+ break;
+ }
+ }
+ }
+
+ // Function to render the mobile navbar für behindertes hamburger menu
+ function render_mobile_navbar($items, $menuExpanded) {
+ echo '<div class="mobile-navbar-panel">';
+ echo '<div class="navbar-header">';
+
+ foreach ($items as $item) {
+ if ($item['type'] === 'logo') {
+ echo '<img src="' . htmlspecialchars($item['link']) . '" alt="' . htmlspecialchars($item['name']) . '" class="navbar-logo">';
+ }
+ if ($item['type'] === 'title') {
+ echo '<span class="navbar-title">' . htmlspecialchars($item['name']) . '</span>';
+ }
+ }
+
+ $toggleState = $menuExpanded ? 0 : 1;
+ echo '<form method="get" action="" style="display:inline;">';
+ echo '<input type="hidden" name="menu" value="' . $toggleState . '">';
+ echo '<button type="submit" class="navbar-toggle">' . ($menuExpanded ? 'Collapse' : 'Expand') . '</button>';
+ echo '</form>';
+ echo '</div>';
+ echo '</div>';
+
+ // Separate the menu from the navbar panel will mir ned ganz normali mensche sind und euses menu mit post uf und zue gaht
+ if ($menuExpanded) {
+ echo '<div class="mobile-navbar-menu">';
+ render_navbar_items(array_filter($items, fn($item) => $item['type'] !== 'logo' && $item['type'] !== 'title'), '');
+ echo '</div>';
+ }
+ }
+}
+?> \ No newline at end of file
diff --git a/common/navbarjs.php b/common/navbarjs.php
new file mode 100644
index 0000000..28aa549
--- /dev/null
+++ b/common/navbarjs.php
@@ -0,0 +1,151 @@
+<?php
+function render_navbar_js($db) {
+ // Fetch navbar items from the database and render them for behindertes dreckiges js navbar ... ich bin mal fullstack php dev gsi vor 5 jahr und jetzt machi das hier... 🤡
+ $navbarQuery = $db->query("SELECT * FROM navbar ORDER BY id");
+ $navbarItems = [];
+ while ($row = $navbarQuery->fetchArray(SQLITE3_ASSOC)) {
+ $navbarItems[] = $row;
+ }
+
+ echo '<nav class="navbar">';
+ echo '<div class="navbar-container">';
+ echo '<div class="navbar-left">';
+ foreach ($navbarItems as $item) {
+ $link = htmlspecialchars($item['link'] ?? '', ENT_QUOTES, 'UTF-8');
+ $name = htmlspecialchars($item['name'] ?? '', ENT_QUOTES, 'UTF-8');
+
+ if ($item['type'] === 'logo') {
+ echo '<img class="navbar-logo" src="' . $link . '" alt="' . $name . '">';
+ } elseif ($item['type'] === 'title') {
+ echo '<a href="index.php" class="navbar-title">' . $name . '</a>';
+ } elseif ($item['align'] === 'left' && $item['type'] === 'link') {
+ echo '<a class="navbar-link" href="' . $link . '">' . $name . '</a>';
+ } elseif ($item['align'] === 'left' && $item['type'] === 'button') {
+ echo '<button class="buttonify" onclick="location.href=\'' . $link . '\'">' . $name . '</button>';
+ } elseif ($item['align'] === 'left' && $item['type'] === 'text field') {
+ echo '<input type="text" placeholder="' . $name . '">';
+ } elseif ($item['align'] === 'left' && $item['type'] === 'search') {
+ echo '<input type="search" placeholder="' . $name . '">';
+ } elseif ($item['align'] === 'left' && $item['type'] === 'drop down') {
+ echo '<div class="navbar-dropdown">';
+ echo '<button class="navbar-dropbtn" onclick="location.href=\'' . $link . '\'">' . $name . '</button>';
+ echo '<div class="navbar-dropdown-content">';
+ foreach ($navbarItems as $dropdownItem) {
+ if ($dropdownItem['type'] === 'drop down entry' && $dropdownItem['name'] === $item['name']) {
+ $dropdownLink = htmlspecialchars($dropdownItem['link'] ?? '', ENT_QUOTES, 'UTF-8');
+ $dropdownLinkText = htmlspecialchars($dropdownItem['link_text'] ?? '', ENT_QUOTES, 'UTF-8');
+ echo '<a class="dropdown-link" href="' . $dropdownLink . '">' . $dropdownLinkText . '</a>';
+ }
+ }
+ echo '</div>';
+ echo '</div>';
+ }
+ }
+ echo '</div>';
+
+ echo '<div class="navbar-center">';
+ foreach ($navbarItems as $item) {
+ $link = htmlspecialchars($item['link'] ?? '', ENT_QUOTES, 'UTF-8');
+ $name = htmlspecialchars($item['name'] ?? '', ENT_QUOTES, 'UTF-8');
+
+ if ($item['align'] === 'center') {
+ if ($item['type'] === 'link') {
+ echo '<a class="navbar-link" href="' . $link . '">' . $name . '</a>';
+ } elseif ($item['type'] === 'button') {
+ echo '<button class="buttonify" onclick="location.href=\'' . $link . '\'">' . $name . '</button>';
+ } elseif ($item['type'] === 'text field') {
+ echo '<input type="text" placeholder="' . $name . '">';
+ } elseif ($item['type'] === 'search') {
+ echo '<input type="search" placeholder="' . $name . '">';
+ } elseif ($item['type'] === 'drop down') {
+ echo '<div class="navbar-dropdown">';
+ echo '<button class="navbar-dropbtn" onclick="location.href=\'' . $link . '\'">' . $name . '</button>';
+ echo '<div class="navbar-dropdown-content">';
+ foreach ($navbarItems as $dropdownItem) {
+ if ($dropdownItem['type'] === 'drop down entry' && $dropdownItem['name'] === $item['name']) {
+ $dropdownLink = htmlspecialchars($dropdownItem['link'] ?? '', ENT_QUOTES, 'UTF-8');
+ $dropdownLinkText = htmlspecialchars($dropdownItem['link_text'] ?? '', ENT_QUOTES, 'UTF-8');
+ echo '<a class="dropdown-link" href="' . $dropdownLink . '">' . $dropdownLinkText . '</a>';
+ }
+ }
+ echo '</div>';
+ echo '</div>';
+ }
+ }
+ }
+ echo '</div>';
+
+ echo '<div class="navbar-right">';
+ foreach ($navbarItems as $item) {
+ $link = htmlspecialchars($item['link'] ?? '', ENT_QUOTES, 'UTF-8');
+ $name = htmlspecialchars($item['name'] ?? '', ENT_QUOTES, 'UTF-8');
+
+ if ($item['align'] === 'right') {
+ if ($item['type'] === 'link') {
+ echo '<a class="navbar-link" href="' . $link . '">' . $name . '</a>';
+ } elseif ($item['type'] === 'button') {
+ echo '<button class="buttonify" onclick="location.href=\'' . $link . '\'">' . $name . '</button>';
+ } elseif ($item['type'] === 'text field') {
+ echo '<input type="text" placeholder="' . $name . '">';
+ } elseif ($item['type'] === 'search') {
+ echo '<input type="search" placeholder="' . $name . '">';
+ } elseif ($item['type'] === 'drop down') {
+ echo '<div class="navbar-dropdown">';
+ echo '<button class="navbar-dropbtn" onclick="location.href=\'' . $link . '\'">' . $name . '</button>';
+ echo '<div class="navbar-dropdown-content">';
+ foreach ($navbarItems as $dropdownItem) {
+ if ($dropdownItem['type'] === 'drop down entry' && $dropdownItem['name'] === $item['name']) {
+ $dropdownLink = htmlspecialchars($dropdownItem['link'] ?? '', ENT_QUOTES, 'UTF-8');
+ $dropdownLinkText = htmlspecialchars($dropdownItem['link_text'] ?? '', ENT_QUOTES, 'UTF-8');
+ echo '<a class="dropdown-link" href="' . $dropdownLink . '">' . $dropdownLinkText . '</a>';
+ }
+ }
+ echo '</div>';
+ echo '</div>';
+ }
+ }
+ }
+ echo '</div>';
+ echo '</div>';
+
+ echo '<div class="navbar-mobile">';
+ echo '<div class="navbar-left">';
+ foreach ($navbarItems as $item) {
+ $link = htmlspecialchars($item['link'] ?? '', ENT_QUOTES, 'UTF-8');
+ $name = htmlspecialchars($item['name'] ?? '', ENT_QUOTES, 'UTF-8');
+
+ if ($item['type'] === 'logo') {
+ echo '<img class="navbar-logo" src="' . $link . '" alt="' . $name . '">';
+ } elseif ($item['type'] === 'title') {
+ echo '<a href="index.php" class="navbar-title">' . $name . '</a>';
+ }
+ }
+ echo '</div>';
+ echo '<button class="navbar-toggle" onclick="toggleNavbar()">☰</button>';
+ echo '</div>';
+
+ echo '<div class="mobile-navbar-menu">';
+ foreach ($navbarItems as $item) {
+ $link = htmlspecialchars($item['link'] ?? '', ENT_QUOTES, 'UTF-8');
+ $name = htmlspecialchars($item['name'] ?? '', ENT_QUOTES, 'UTF-8');
+
+ if ($item['type'] === 'link') {
+ echo '<a class="navbar-link bruh-why" href="' . $link . '">' . $name . '</a>';
+ } elseif ($item['type'] === 'drop down') {
+ echo '<span class="mobile-navbar-dropdown" onclick="location.href=\'' . $link . '\'">' . $name . '</span>';
+ } elseif ($item['type'] === 'drop down entry') {
+ $dropdownLink = htmlspecialchars($item['link'] ?? '', ENT_QUOTES, 'UTF-8');
+ $dropdownLinkText = htmlspecialchars($item['link_text'] ?? '', ENT_QUOTES, 'UTF-8');
+ echo '<a class="dropdown-link" href="' . $dropdownLink . '" class="mobile-dropdown-entry">↳ ' . $dropdownLinkText . '</a>';
+ } elseif ($item['type'] === 'button') {
+ echo '<button class="buttonify" onclick="location.href=\'' . $link . '\'">' . $name . '</button>';
+ } elseif ($item['type'] === 'text field') {
+ echo '<input type="text" placeholder="' . $name . '">';
+ } elseif ($item['type'] === 'search') {
+ echo '<input type="search" placeholder="' . $name . '">';
+ }
+ }
+ echo '</div>';
+ echo '</nav>';
+}
+?> \ No newline at end of file
diff --git a/config.php b/config.php
new file mode 100644
index 0000000..580bd29
--- /dev/null
+++ b/config.php
@@ -0,0 +1,48 @@
+<?php
+return [
+ [
+ 'id' => 1,
+ 'name' => 'Demo Site 1 Sidebar : einfach geil',
+ 'database' => __DIR__ . '/website/content.db',
+ 'folder' => 'website',
+ 'backup_folder' => 'dbbackups/website',
+ 'components' => [
+ __DIR__ . '/common/functions.php',
+ __DIR__ . '/common/navbar.php',
+ ],
+ ],
+ [
+ 'id' => 2,
+ 'name' => 'Dome Site 2 Navbar : fick geil jaman"',
+ 'database' => __DIR__ . '/website2/content2.db',
+ 'folder' => 'website2',
+ 'backup_folder' => 'dbbackups/website2',
+ 'components' => [
+ __DIR__ . '/common/functions.php',
+ __DIR__ . '/common/navbar.php',
+ ],
+ ],
+ [
+ 'id' => 3,
+ 'name' => 'Dome Site 3 Navbar w JS : geh kotzen',
+ 'database' => __DIR__ . '/website3/content3.db',
+ 'folder' => 'website3',
+ 'backup_folder' => 'dbbackups/website3',
+ 'components' => [
+ __DIR__ . '/common/functions.php',
+ __DIR__ . '/common/navbarjs.php',
+ ],
+ ],
+ [
+ 'id' => 4,
+ 'name' => 'Demo Site 4 Sidebar w JS flatterschiss',
+ 'database' => __DIR__ . '/website4/content4.db',
+ 'folder' => 'website4',
+ 'backup_folder' => 'dbbackups/website4',
+ 'components' => [
+ __DIR__ . '/common/functions.php',
+ __DIR__ . '/common/navbarjs.php',
+ ],
+ ]
+];
+?>
diff --git a/website/.DS_Store b/website/.DS_Store
new file mode 100644
index 0000000..4a935d4
--- /dev/null
+++ b/website/.DS_Store
Binary files differ
diff --git a/website/content.db b/website/content.db
new file mode 100644
index 0000000..c4bab0f
--- /dev/null
+++ b/website/content.db
Binary files differ
diff --git a/website/public/assets/.DS_Store b/website/public/assets/.DS_Store
new file mode 100644
index 0000000..afa38b1
--- /dev/null
+++ b/website/public/assets/.DS_Store
Binary files differ
diff --git a/website/public/assets/css/tc.css b/website/public/assets/css/tc.css
new file mode 100644
index 0000000..b2b32fc
--- /dev/null
+++ b/website/public/assets/css/tc.css
@@ -0,0 +1,452 @@
+html, body {
+ height: 100%;
+ margin: 0;
+ padding: 0;
+ font-family: Arial, sans-serif;
+ background-color: #FFFFFF;
+ color: #000000;
+ display: flex;
+ flex-direction: column;
+ overflow-x: hidden;
+}
+
+header {
+ text-align: center;
+ background-color: #FFFFFF;
+ color: #FFFFFF;
+ display: flex;
+ flex-direction: column;
+ align-items: center;
+}
+
+.header-content {
+ display: flex;
+ align-items: center;
+ justify-content: center;
+ background-color: #FFFFFF;
+ padding: 10px 20px;
+ padding-top: 15px;
+}
+
+header h1 {
+ margin: 0;
+ font-size: 24px;
+ margin-left: 10px;
+ color: #D22627;
+}
+
+header h2 {
+ margin: 5px 0 0 0;
+ font-size: 16px;
+ text-shadow: 1px 1px 3px rgba(0, 0, 0, 0.6);
+}
+
+.logo {
+ height: 40px;
+ width: auto;
+}
+
+.container {
+ flex: 1;
+ display: flex;
+ width: 100%;
+ min-width: 300px;
+ align-items: flex-start;
+ flex-wrap: wrap;
+ margin: 20px auto;
+ margin-top: 0px;
+ margin-bottom: 0px;
+ max-width: 1200px;
+}
+
+.sidebar, .sidebar-right {
+ width: 20%; min-width: 200px; max-width: 250px;
+ padding: 10px;
+ padding-bottom: 0px;
+ background-color: #FFEEEE;
+ border: 1px solid #D22627;
+ box-sizing: border-box;
+ display: block; align-self: flex-start;
+}
+
+.content {
+ width: 60%;
+ flex-grow: 1;
+ padding: 10px;
+ box-sizing: border-box;
+}
+
+.box {
+ margin-bottom: 10px;
+ padding: 10px;
+ border: 1px solid #D22627;
+ background-color: #FFFFFF;
+}
+
+.box-last {
+ margin-bottom: 0px;
+}
+
+.box h3 {
+ margin: 0 0 10px 0;
+ font-size: 16px;
+ color: #D22627;
+}
+
+.box p, .box a {
+ margin: 5px 0;
+ font-size: 14px;
+ color: #000000;
+}
+
+.box a {
+ color: #D22627;
+ text-decoration: none;
+}
+
+.box a:hover {
+ text-decoration: underline;
+}
+
+footer {
+ background-color: #D22627;
+ color: #FFFFFF;
+ text-align: center;
+ padding: 10px 0;
+ font-size: 14px;
+ width: 100%;
+ flex-shrink: 0;
+}
+
+.navbar {
+ display: flex;
+ justify-content: space-between;
+ align-items: center;
+ background-color: #D22627;
+ padding: 10px;
+ color: #FFFFFF;
+}
+
+.navbar-left, .navbar-center, .navbar-right {
+ display: flex;
+ align-items: center;
+}
+
+.navbar-left {
+ justify-content: flex-start;
+ flex: 1;
+}
+
+.navbar-center {
+ justify-content: center;
+ flex-grow: 1;
+ flex: 2;
+}
+
+.navbar-right {
+ justify-content: flex-end;
+ flex: 1;
+}
+
+.navbar a, .navbar span, .navbar input, .navbar img {
+ margin: 0 10px;
+ color: #FFFFFF;
+ text-decoration: none;
+}
+
+.navbar button {
+ margin: 0 10px;
+ color: #000000;
+ text-decoration: none;
+}
+
+.navbar a:hover, .navbar button:hover {
+ text-decoration: underline;
+}
+
+.navbar-logo {
+ height: 40px;
+ width: auto;
+}
+
+.navbar-dropdown {
+ position: relative;
+ color: #ffffff;
+ display: inline-block;
+}
+
+.navbar-dropbtn {
+ background-color: #D22627;
+ color: white;
+ border: none;
+ cursor: pointer;
+}
+
+.navbar-dropdown-content {
+ display: none;
+ position: absolute;
+ background-color: #f9f9f9;
+ min-width: 160px;
+ box-shadow: 0px 8px 16px 0px rgba(0,0,0,0.2);
+ z-index: 1;
+}
+
+.navbar-dropdown-content a {
+ color: black;
+ padding: 12px 16px;
+ text-decoration: none;
+ display: block;
+}
+
+.navbar-dropdown-content a:hover {
+ background-color: #f1f1f1;
+}
+
+.navbar-dropdown:hover .navbar-dropdown-content {
+ display: block;
+}
+
+.navbar-dropdown:hover .navbar-dropbtn {
+ background-color: #a10000;
+}
+
+.mobile-navbar {
+ display: flex;
+ flex-direction: column;
+ align-items: center;
+ background-color: #D22627;
+ color: #FFFFFF;
+ width: 100%;
+ padding: 10px;
+}
+
+.mobile-navbar-panel {
+ display: flex;
+ flex-direction: column;
+ align-items: flex-start;
+ background-color: #D22627;
+ color: #FFFFFF;
+ width: 100%;
+ padding: 10px;
+ gap: 10px;
+}
+
+.mobile-navbar-panel .navbar-header {
+ display: flex;
+ flex-direction: column;
+ align-items: flex-start;
+ width: 100%;
+}
+
+.mobile-navbar-panel .navbar-logo, .mobile-navbar-panel .navbar-title {
+ display: inline-block;
+ vertical-align: middle;
+}
+
+.mobile-navbar-panel .navbar-toggle {
+ display: inline-block;
+ cursor: pointer;
+}
+
+.mobile-navbar-panel .navbar-toggle::after {
+ content: ' ▼';
+}
+
+.mobile-navbar-menu {
+ display: flex;
+ flex-direction: column;
+ width: 100%;
+ background-color: #D22627;
+ text-align: center;
+ align-items: center;
+ padding: 10px;
+ box-sizing: border-box;
+}
+
+.mobile-navbar-menu a,
+.mobile-navbar-menu span,
+.mobile-navbar-menu input,
+.mobile-navbar-menu button {
+ display: block;
+ padding: 10px;
+ border-bottom: 1px solid #FFFFFF;
+ text-align: center;
+ width: 80vw;
+ box-sizing: border-box;
+ margin: 0;
+}
+
+.mobile-navbar-menu a:hover,
+.mobile-navbar-menu button:hover {
+ background-color: #a10000;
+}
+
+.mobile-navbar-menu button {
+ text-align: center;
+ width: 80vw;
+ margin: 0 auto;
+ display: block;
+}
+
+input[type="checkbox"] {
+ display: none;
+}
+
+input[type="checkbox"]:checked ~ .mobile-navbar-items {
+ display: block;
+}
+
+@media screen and (max-width: 1279px) {
+ .container {
+ flex-direction: column;
+ padding: 10px;
+ padding-top: 0px;
+ padding-bottom: 0px;
+ width: 100%;
+ min-width: auto;
+ box-sizing: border-box;
+ }
+
+ .sidebar, .sidebar-right, .content {
+ width: 100%;
+ min-width: auto;
+ max-width: none;
+ flex-grow: 0;
+ margin-bottom: 20px;
+ }
+
+ .header-content {
+ padding-top: 10px;
+ }
+
+ header h1 {
+ font-size: 20px;
+ }
+
+ header h2 {
+ font-size: 14px;
+ }
+
+ .box h3 {
+ font-size: 16px;
+ }
+
+ .box p, .box a {
+ font-size: 12px;
+ }
+
+ footer {
+ font-size: 12px;
+ padding: 5px;
+ }
+
+ .navbar {
+ display: none;
+ }
+
+ .mobile-navbar {
+ display: flex;
+ flex-direction: column;
+ align-items: center;
+ background-color: #D22627;
+ padding: 10px;
+ color: #FFFFFF;
+ width: 100%;
+ }
+
+ .mobile-navbar .navbar-header {
+ display: flex;
+ justify-content: space-between;
+ width: 100%;
+ align-items: center;
+ }
+
+ .mobile-navbar .navbar-logo, .mobile-navbar .navbar-title {
+ display: inline-block;
+ vertical-align: middle;
+ }
+
+ .mobile-navbar .navbar-toggle {
+ display: inline-block;
+ cursor: pointer;
+ }
+
+ .mobile-navbar .navbar-toggle::after {
+ content: ' ▼';
+ }
+
+ .mobile-navbar-items {
+ display: flex;
+ flex-direction: column;
+ width: 100%;
+ background-color: #D22627;
+ text-align: center;
+ align-items: center;
+ }
+
+ .mobile-navbar-items a,
+ .mobile-navbar-items span,
+ .mobile-navbar-items input,
+ .mobile-navbar-items button {
+ display: block;
+ padding: 10px;
+ border-bottom: 1px solid #FFFFFF;
+ text-align: center;
+ width: 80vw;
+ box-sizing: border-box;
+ margin: 0;
+ }
+
+ .mobile-navbar-items a:hover,
+ .mobile-navbar-items button:hover {
+ background-color: #3e8e41;
+ }
+
+ .mobile-navbar-items button {
+ text-align: center;
+ width: 80vw;
+ margin: 0 auto;
+ display: block;
+ }
+
+ input[type="checkbox"] {
+ display: none;
+ }
+
+ input[type="checkbox"]:checked ~ .mobile-navbar-items {
+ display: block;
+ }
+}
+
+@media screen and (min-width: 1280px) {
+ .container {
+ width: 100%;
+ min-width: 300px;
+ }
+
+ .sidebar, .sidebar-right {
+ width: 20%;
+ min-width: 200px;
+ max-width: 250px;
+ }
+
+ .content {
+ width: 60%;
+ flex-grow: 1;
+ }
+
+ .mobile-navbar, .mobile-navbar-panel, .mobile-navbar-menu {
+ display: none;
+ }
+}
+
+.breadcrumbs {
+ margin-bottom: 10px;
+ padding: 10px;
+ border: 1px solid #D22627;
+ background-color: #FFFFFF;
+}
+
+.sidebar a.active, .sidebar-right a.active {
+ text-decoration: underline;
+} \ No newline at end of file
diff --git a/website/public/assets/img/.DS_Store b/website/public/assets/img/.DS_Store
new file mode 100644
index 0000000..f77b18d
--- /dev/null
+++ b/website/public/assets/img/.DS_Store
Binary files differ
diff --git a/website/public/assets/img/code-is-ass.jpeg b/website/public/assets/img/code-is-ass.jpeg
new file mode 100644
index 0000000..c35aa9e
--- /dev/null
+++ b/website/public/assets/img/code-is-ass.jpeg
Binary files differ
diff --git a/website/public/assets/img/dialon.png b/website/public/assets/img/dialon.png
new file mode 100644
index 0000000..6ceef81
--- /dev/null
+++ b/website/public/assets/img/dialon.png
Binary files differ
diff --git a/website/public/assets/img/force.png b/website/public/assets/img/force.png
new file mode 100644
index 0000000..fa2c8c6
--- /dev/null
+++ b/website/public/assets/img/force.png
Binary files differ
diff --git a/website/public/assets/img/fuck-main.jpeg b/website/public/assets/img/fuck-main.jpeg
new file mode 100644
index 0000000..3acbd91
--- /dev/null
+++ b/website/public/assets/img/fuck-main.jpeg
Binary files differ
diff --git a/website/public/assets/img/fuckjs.jpeg b/website/public/assets/img/fuckjs.jpeg
new file mode 100644
index 0000000..06f8a6d
--- /dev/null
+++ b/website/public/assets/img/fuckjs.jpeg
Binary files differ
diff --git a/website/public/assets/img/jsmomentom.jpg b/website/public/assets/img/jsmomentom.jpg
new file mode 100644
index 0000000..166d5ba
--- /dev/null
+++ b/website/public/assets/img/jsmomentom.jpg
Binary files differ
diff --git a/website/public/assets/img/router1.jpg b/website/public/assets/img/router1.jpg
new file mode 100644
index 0000000..92f7e91
--- /dev/null
+++ b/website/public/assets/img/router1.jpg
Binary files differ
diff --git a/website/public/assets/img/router2.jpg b/website/public/assets/img/router2.jpg
new file mode 100644
index 0000000..1ec6527
--- /dev/null
+++ b/website/public/assets/img/router2.jpg
Binary files differ
diff --git a/website/public/assets/img/rover.png b/website/public/assets/img/rover.png
new file mode 100644
index 0000000..de95293
--- /dev/null
+++ b/website/public/assets/img/rover.png
Binary files differ
diff --git a/website/public/assets/img/ssc.jpg b/website/public/assets/img/ssc.jpg
new file mode 100644
index 0000000..d7509e2
--- /dev/null
+++ b/website/public/assets/img/ssc.jpg
Binary files differ
diff --git a/website/public/assets/img/wrong.png b/website/public/assets/img/wrong.png
new file mode 100644
index 0000000..1a1835e
--- /dev/null
+++ b/website/public/assets/img/wrong.png
Binary files differ
diff --git a/website/public/assets/svg/teleco.svg b/website/public/assets/svg/teleco.svg
new file mode 100644
index 0000000..1cbb190
--- /dev/null
+++ b/website/public/assets/svg/teleco.svg
@@ -0,0 +1,242 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg id="Layer_1" xmlns="http://www.w3.org/2000/svg" version="1.1" viewBox="0 0 437.8 368.6">
+ <!-- Generator: Adobe Illustrator 29.1.0, SVG Export Plug-In . SVG Version: 2.1.0 Build 142) Yea i know this logo is partially made from a png will fix someday -->
+ <defs>
+ <style>
+ .st0 {
+ fill: #d22627;
+ }
+
+ .st1 {
+ fill: #010101;
+ }
+ </style>
+ </defs>
+ <g id="Layer_2">
+ <g id="Layer_2-2">
+ <path d="M85.3,28c-.6,0-1.7.3-1.8-.3.8-.4,1-1.7,1.4-2,1.2-1,3-.1,3.2-2.3,0-1,2.4-1.3,3.2-2.1,1.8-.2.5.8,0,1.1-.8.4-2.2.4-2.1,1.3,1.2,0,3-.5,3.9-1.2.1,0,1.9-1.7,2-1.8.2-.4-.3-1.1-.2-1.2.2-.2,4.9-2.3,5.3-2.4,1-.3,2.1.8,3.3.6l-.6-1.9c14.7-5.6,29.5-10.8,45-13.6,125.2-22.8,242.2,67.7,250.8,194.5,2.3,34.5-4.7,69.2-18.6,100.8-1.5,3.5-4,6.7-5.2,9.6-.9,2.3-2.3,5.6-3.6,7.6-.5.7-1.2,1.1-.8-.2v-3.5c0,0-1.9,1.2-1.9,1.2l1.9-5.5-3.1,3.1,1.3-5.5-3.4,3.7-.3-2.5-4.3,1.2,1-5.5-4.4,4.9c-2.3-2,.1-4.6.4-6.8-1.3.8-4.3,6.6-5.9,6.1-2.2-.7.6-5.9.4-7.4l-3.1,4.6c-4,4.3-4.6,1.9-4-2.8,0-.6,1-1.9-.3-1.9-.4,2.2-4.7,9-6.8,5.7-1.2-1.9-.2-2.5,0-4.2,0-.6.3-1.7-.6-1.6-.2,2.3-5.5,9.5-7.4,5.7-1.1-2.2-.1-4,0-6.4-1.6,1.3-2.3,5-3.9,6.6s-4.3,2.3-5.1-.5c-1.3-4.1,1.4-11.2,5.1-13.6,4.8-3.1,4,4.9,4,7.5,1.1-.9,1.8-5.2,4-7.2,4.6-4.4,5.4,2.4,4.7,6l2.2-4.3c1.5-1.5,2.7-3.7,5.2-3,1.2,2.3.4,3.7,0,5.9-.1.6-.4,1.7.6,1.5.7-2.2,1.9-5.1,3.8-6.4,4.5-3.1,3,3.7,2.4,6.5l2.2-3.6,3.1-3.1c2.6,1.8,1.1,3.7.9,6.2l3.7-4,1.5-.3v5.6c2.6-2.3,2.1-5.4,2.8-8.6-3.9,3.1-3.9-.4-3-3.7-1.6,1.3-5.8,7.6-6.2,2.1,0-.9.6-3.4-.6-3.4-.8,2.2-2.5,5.3-5.3,4.9-.4,0-.7-1.3-.8-1.7-.2-1.3.1-2.8-.4-3.9-1.9,2.2-5.1,8.5-7.5,3.7l-.9-4.4c-.4,3.9-6.9,9.7-8,3.3-.2-1.3.8-3.2-1.2-2.8-.4,3.5-6.1,8.7-8.2,4.1-.7-1.5-.2-2.8-.7-4.2-1.8,2-2.1,5-4.9,6.3-4.3,1.9-4.7-1.4-5.7-4.5-.2-.6-.1-1.4-.9-1.2-.1,4.4-6.2,10.5-9.6,5.4-2.2-3.4-.8-11.6,2.6-14.2.5-.4,2.7-.9,1.6-1.8-.2-.2-1.3-.3-2.2-1.2-1.1-1.2-1.3-2.7-2.4-3.8-.8,1.3-1.2,2.8-2.2,4-3.7,4.8-8.3,3.5-10.5-1.9-.9-2.2-1.5,1.3-1.8,1.9-1.4,2.9-5.4,6.1-8.6,4.6-5.5-2.6-5.5-12.4-1.5-16.2.9-.8,1.9-.2,1.5-1.8-2.9-.3-4.3-2.9-5.8-5l-1.9,4.3-3.4,3.7c10.2,1,7,20.1-2.8,17.8-5.2-1.2-5.7-10.1-3.6-14.1l4-3.7c-2.5-.1-5-1.8-6.4-3.8-.6-.9-.6-2.4-1.5-2.5-.2,7.9-8.6,13-13.9,5.4-2.9-4.2-2.1-11.4,2.3-14.5-2.8-1.5-5.6-2.7-7-5.9-1.4,1.8-1,3.6-2.5,5.6-2.4,3.1-6,4.3-9.6,2.6-3.1-1.4-3.9-4.4-5.5-7.1.3-4.7,0-7.6,3.8-11.1-3.5-.4-5.5-2.6-7.7-5-.6,1.3-.8,2.8-1.5,4.1-1.5,3.2-3.2,3.3-5.7,5.1-2.6-.2-4.7-.4-7-2-1.8-1.2-2.8-3.4-4.1-4.9.2,4.9-1.2,10-6.7,10.9-7.8,1.3-12.9-9.5-8.6-15.6,3.5-4.9,10.8-3.9,13.6,1.1.8,1.4.8,2.5,1.7,3.5,0-1.9-.7-3.2-.4-5.1.4-2.9,2-4.9,3.6-7.2-3.9-.5-6.1-3-8.6-5.6.9,10.1-11.8,13.8-16.6,5-3-5.5-1.9-10.1,2.5-14.4-4,.4-7-2.2-9.5-5l-1.1,5.1c-2.9,5.9-10.4,6.8-14.7,1.9-2.9-3.4-3.5-9.7-.8-13.2l2.8-2.5c-3.2.2-7.7-1.6-9.5-4.4-.9-1.4-.5-2.2-1.5-3.1-.2,4.7.8,7.9-3.5,11.1-8.7,6.5-17.8-6.6-11.6-14.3,3.7-4.6,9.8-4.2,13.3.4.9,1.2.8,1.9,1.8,2.8.2-4.4-.8-8.3,3.2-11.4-1.2-1.4-3.3-1-4.9-1.9s-2.6-3.2-4.3-4c1.8,10.5-12.1,15.4-16.6,5.6-2.2-4.8-1.4-9.6,3.1-12.8,5-3.5,9.2-.9,12.9,2.9-.4-3.6.7-6.6,3.2-9.2-3.2-.5-5.7-2.3-8-4.4,0,6.9-7.7,12.5-13.9,8.4-5.2-3.4-5.3-11-1.5-15.5.6-.7,1.7-.7,1.9-1.6-3.4.3-8.1-1.1-8.6-5l-1.4,4.5c-1.9,5.8-9.4,9.4-13.8,4-6.2-7.5,4-19.9,11.6-13.8,1.1.9,1.2,2.3,2.4,2.8-.6-4.1,1.8-6.7,3.8-9.8-3.4.3-5-1.8-7.4-3.8-.6,5.6-5.4,11-11.4,9.6s-5.9-10-2.2-13.8c.9-1,2.6-1.3,3.1-2.7-3.1.8-6.1.7-7.9-2.3-3.2-5.4.9-8.8,4.4-12.5-5.3.5-8.1-.7-7.3-6.5.5-3.5,2.8-4.8,5-7.1-7.4,1-8-4.6-4.2-9.6l3.1-2.7c-9.2.8-6.2-7.1-1.1-10.8-1.6-.8-4,.6-4.3-1.9-.5-3.8,2.2-6.1,5-8-.4-.9-1.5.2-2.2.3-2.9,0-2.6-2.5-1.4-4.5.9-1.6,2.9-2.6,4.3-3.8-1.1-.7-2.8.3-3.7-1.3.9-2.7,2.9-4.4,5.6-5.2,0-1.6-3.5.5-3.1-1.6.4-1.9,2.5-2.5,3.7-3.7-.7-.9-.8-1.1-1.9-.7-.5.2-4.6,3-5.4,3.5-.2.1,0,.4-.1.5.6,0,3.2-.4,2.5.9-1.1,2.2-5.1,4-7.2,5.2-2-1.3.4-3,1.6-3.9,1-.8,2.2-1.5,3.1-2.2h0ZM97.6,23.2c.2-1.2.9-.4,2.1-.7,1.4-.4.8-3,.1-3-1,1.6-2.1,2.7-4,3-.2,1.1,1.1.6,1.8.6-.2,1.1,0,2-1,3.1l-3.4,2.5h2.7l.7,1.3c1.6-1.1,1.8-3.6,4.1-3.7v-.6c-2.2.2-1.5-1.9-1.9-2.5-.1-.2-.8,0-1.2,0h0s0,0,0,0ZM123,23.4c-2-.3-4.2,0-4.3,2.4,2.8.5,3.1-.1,4.3-2.4ZM109.2,30.7l1.9-2.7-3-1.6c-.1,1.7-1.9,2.3-2.6,3.7l3.6.6h0ZM123.4,33.3c0,0,.4-1,.7-1.5.4-.7.9-1.2-.3-1.5-1.9-.5-2.9,1-4,2.1.7.4,3.2,1.2,3.6.9h0ZM100,31.9l-3.7-1.3-.6,1.5-3.8,3.3c2-.2,3.4-.1,4.9,1.3,0-2.2,2.1-3.2,3.1-4.9h0ZM112.3,35.1l-3.7-1.3c-.1,2-2.4,2.6-3.1,4.3l4.3.6,2.6-3.7h0ZM137,36.5c.9.4,4.4.7,4.3-.9s-4.1-1.1-4.3.9ZM100.6,39.3c-1.6,0-3,.2-4-1.3l-4.7,5.5c2.2-.5,3.2.9,4.9,1.3.1-2.5,2.6-3.6,3.8-5.5h0ZM124.3,38.4l-2.2,2.7,2.8,1.5,2.2-2.7s-2.8-1.5-2.8-1.5ZM113.5,43.7l-3.3-.6-2.9,3.3c0,.7,3.9,2,4.3,1.6l1.9-4.3h0ZM142.3,44.7c-.9.3-2.3,1.9-.7,2.4,1.1.3,3.4-.7,3.4-1.5s-1.8-1.1-2.7-.9h0ZM100.5,49.1l-4.3-1.9c-.2,3-3.3,4.1-5,6.1,2.5-.7,4.1-.4,6.2,1.3.3-2.2,1.9-3.8,3.1-5.5h0ZM130.1,49.4l-3.3-.6-2.3,3c1.4.3,2.8,1,4.2.6l1.3-3h0ZM115.9,54.2c-1.7.2-2.9-.5-4.3-1.3l-3.1,4.9c1.9-.2,3.3.3,4.9,1.3-.5-1.3,3.2-4.3,2.5-4.9ZM149.2,56.4c-4.5-2.4-5.8,3.6-1.6,2.4.8-.2,1.3-1.7,1.6-2.4ZM101.6,59.6c-2.5.7-3-1.8-4.9-1.9.9,1.6-4.1,5.9-3.8,6.1,2.1-.1,3.9.7,5.5,1.9l.5-1.7,2.6-4.5h0ZM133.7,61.2c-1.3,0-2.4-.4-3.4-1.2l-2.8,3.6,4.3,1.3s1.9-3.7,1.9-3.7ZM170.1,64.6l-2.5-.6-.6,2.5c2.1.8,3.3.9,3.1-1.8h0ZM115.7,71.5c.2-1.8,1.6-3.1,2.5-4.6l-4-2.2-3.4,4.9,4.9,1.9h0ZM153.4,69.4l-3.1-1.3-1.3,2.8,2.8,1.5c.6,0,1.9-2.7,1.6-3ZM104,72c-2.3,0-3.9-1.1-5.5-2.5.2,3.2-2.9,4.4-4.4,6.8,2.6-.2,4.3.9,6.2,2.5.3-2.7,2.2-4.7,3.8-6.8h0ZM137.3,74.2c-1.1.5-3-1.2-3.4-1.2s-3.2,3.9-2.8,4.2l4,1.2c.6,0,2.5-3.9,2.2-4.2h0ZM121.8,79.6c-1.9,0-3.5-.8-4.9-1.9-.1,2.5-2.6,3.6-3.8,5.5l6.2,1.9c-.4-2.5,2.2-3.4,2.5-5.5h0ZM174.9,81.9l1.3-2.2-2.8-1.5-1.5,2.4,3.1,1.3h0ZM158.8,83.6c-2.8-.6-4.2-1.4-4.9,2.1l2.8,1.5,2.2-3.6s0,0,0,0ZM106.9,85.6c-2.2,0-4.1-1.2-5.8-2.5l-1.9,3.7-4,3.7c3.4-.3,5.6,0,8,2.6-.3-3.1,2-5.2,3.8-7.4h0ZM142.1,89c-1.5-.2-3-.7-4-1.9l-2.8,4.9,4.9,1.3,1.9-4.3h0ZM126,94.4c-2,0-3.5-1.1-5.2-1.9-1.5,1.8-2.1,3.8-4.1,5.2.8,1.2,2.3.9,3.5,1.4,1,.4,1.4,1.6,2.6,1.4l3.2-6.1h0ZM181.5,95c-2.6-1-3.3-.9-4.3,1.8l2.8,1.2,1.6-3h0ZM110.5,100.5c-2.8.1-4.8-1-6.4-3.1-1.3,1.3-1,3.4-2.6,4.9l-4,3.7c3.9-1.2,6.8.1,9.2,3.2-.4-3.6,1.7-6,3.8-8.6h0ZM164.2,99.7l-4.3-1.3-1.3,3.7,4.3,1.3,1.3-3.7ZM146.9,105.1l-4.9-1.9c.3,1.1-2.8,4.7-2.5,4.9l5.5,1.9s1.9-4.9,1.9-4.9ZM204.8,110.6c.9-1.9.6-3.5-1.8-3.7-1,2.4-.5,2.8,1.8,3.7ZM130.1,110.5c-2,0-3.9-1.1-5.2-2.5-1.1.8-1,2.2-1.7,3.3-.8,1.3-2.4,2-3,3.4,3.1-.4,5.2,1.4,7.4,3.2-.7-1.7,3.3-6.8,2.5-7.4h0ZM184.8,111.1l-2.2,2.7,3.4,2.2,1.5-3.3c-.1-.6-2.1-1.7-2.7-1.6h0ZM170.2,117.1l-4-1.9-2.8,3.9,4.9,2.8,1.9-4.9h0ZM152.9,122.5c-2.2.2-3.6-1.7-5.5-2.5-.1,2.4-2.7,3.8-2.5,6.2,2.2,0,3.8,1.4,5.5,2.5,0-2.3,1.7-4.1,2.5-6.2h0ZM230,125.1c1.1-2.7-1.3-4.2-3.1-1.6l3.1,1.6ZM135.5,127.9c-2.6,0-4.3-1.2-5.8-3.1-1.3,1-1.1,2.9-1.9,4.3s-2.8,2.1-3.4,3.7h3.3c0,.1,5.3,3.2,5.3,3.2-.6-3.3,1.9-5.3,2.6-8h0ZM209.1,125.5l-1.3,2.1,2.8,2.2c2.4-2,1.7-4.4-1.5-4.3h0ZM194.1,130.9c-1.4,0-2.5-.9-3.4-1.9l-2.2,4.3,4.3,1.9,1.3-4.3h0ZM176.2,135.7l-4.9-2.5c.2,2.2-1.7,3.6-2.5,5.5,2.1.2,3.7,1.6,5.5,2.5l1.9-5.5ZM251.5,140.1l2.1,1.3c1.8-1.3.8-2.6-.6-3.7l-1.6,2.4h0ZM158.9,141c-2.4-.2-4.2-1.9-6.1-3.1-.3,2.6-2,4.6-3.2,6.8,1.1.2,2.5.6,3.5,1.1,1.2.7,1.8,2.1,3.2,2-.4-2.8,2-4.5,2.5-6.8h0ZM236.6,141.8l-3.1-.6c-1.2,2.5-.1,3.3,2.4,3.7l.6-3.1h0ZM218.7,146l-3.7-1.9c0,1.5-1.2,2.5-1.9,3.7l4.3,1.9,1.3-3.7h0ZM200.7,150.1l-4.9-1.9c.1,1.6-1.1,2.8-1.9,4l4.9,2.8,1.9-4.9h0ZM174.1,158.5c2.3,0,4.4,1.4,5.8,3.1l2.8-5.8-5.5-3.4c-.2,2.4-1.9,4.2-3.1,6.1h0ZM277.2,158.2c-.2-.8.7-1.5.6-2.1-.2-.9-2.1-1.3-2.4-1,0,0-.5,1.6-.4,1.9.3.5,1.8,1.7,2.2,1.2h0ZM259.3,161.8l1.2-2.8-3-1.6c-1,2.2-.2,3.1,1.8,4.3h0ZM165.5,160.2c-2.5,0-4.7-1.5-6.4-3.1l-4.1,7.4c2.9.2,5.3,1.5,7.1,3.8,1.3-.9.8-2.4,1.2-3.7.4-1.1,2.7-3.8,2.2-4.3h0ZM242.6,161.6c-1.4-.2-2.1-1.7-3.7-1.3l-1.2,2.8,3.6,2.2,1.3-3.7h0ZM223.4,170.1c-.4-1.3,1.4-3.2,1.3-3.9-.1-.6-3.7-2.9-4.2-2.2l-1.9,3.3c.6.6,4.4,3.4,4.9,2.8h0ZM206.7,169.9c-2.1,0-2.9-2.4-4.9-2.5l-2.5,5.5,5.5,2.5c.2-2,2.2-3.4,1.9-5.5h0ZM189.4,174.7c-1.6.8-6.1-3.8-6.8-3.2.4,2.8-1.9,4.6-3.2,6.8,3,0,5.2,2.1,7.4,3.8,0-1.8.6-3.6,1.4-5.1.4-.8,1.4-1.1,1.2-2.2h0ZM298,176.3c.7-1.9.8-2.4-.9-3.7-1.9,1.6-1.8,3.4.9,3.7ZM280.4,174.3c-1.9,1.6-2.1,3.6.6,4.3,2.2-2,1.4-2.6-.6-4.3ZM172.1,180.1c-1.3-.3-2.8-.7-3.9-1.4-.8-.5-3.4-3.8-4.1-3,.2,2.3-.9,5.4-2.5,7.1-.8.8-1.9.6-1.9,1.5,4,.3,6.8,2,9.2,5,0-1.7.3-4,1-5.6s2.2-2.1,2.2-3.7h0ZM264,182.2l1.2-3.3-3-2.2-1.9,3.7,3.7,1.9h0ZM241.8,183.8c1.5.2,2.9,1.5,4,2.5l2.1-3.9-3.3-2.9-2.8,4.3h0ZM230.6,185.6c-1.6.4-3.7-2.8-4.6-2.5l-2.8,4.6,4.6,3.4c1-.8,1.1-2.1,1.7-3.3.4-.8,1.5-1.1,1.2-2.2h0ZM210.8,196.5c-.2-2.2,1-4.3,2.5-5.8-.8-1-2.1-1.2-3-1.9-1-.8-1.6-2.3-3.1-2.2-.2,2.4-1.9,4.2-3.1,6.1,1.1.1,2.4.7,3.3,1.4,1.2.8,1.9,2.5,3.5,2.4h0ZM196,194.5c-3.1-.3-5.1-2.6-7.4-4.4,0,3.3-1.6,6-4.4,7.7,1.2,1.4,3.3,1,4.9,1.9,1.4.8,2.2,2.7,3.7,3.4,0-3.3,1.5-6,3.2-8.6h0ZM300.9,197.3l1.1-2.8-2-2.2c-2.7,1.9-1.5,3.5.9,4.9h0ZM283,194.1c-1.5,2.8-1.9,4.1,1.5,5.6,2.6-2.2,1.6-4.9-1.5-5.6ZM268.1,203.2c-.1-1.6,1.1-2.8,1.9-4-.7-.4-3.8-3.4-4.3-2.8,0,1.8-1.9,2.7-1.9,4.3,1.9,0,2.4,2.6,4.3,2.5h0ZM248.4,198.7l-2.5,5.2,4,3.4,2.8-5.2-4.3-3.5h0ZM236,205.4c-2.1-.4-3.9-1.6-5.2-3.1-1.1.8-1,2.2-1.6,3.3s-2,1.5-1.8,2.8c2.2.5,3.9,1.3,4.9,3.4,1,2.2,1.5-1.6,1.9-2.4.6-1.4,1.9-2.4,1.9-4h0ZM219.3,209.5c-2.6-.4-4.7-1.9-6.4-3.8-1.6,2.7-2.4,5.2-4.7,7.4,3.7.1,5.8,2.5,8,5-.4-3.3,1.6-5.9,3.2-8.6h0ZM329.2,210l-1.1,2.1,2,2.8c2-1.3,1.9-4.7-.9-4.9ZM317.4,216c1-2.6,1.6-3.5-.9-5.6-1.6,2.1-3.3,2.9-.7,4.9.5.4.6.9,1.5.6h0ZM302.6,218.3l1.9-3.9-3-2.9c0,1.4-.9,2.4-1.8,3.4l3,3.4h0ZM283.4,218.1c1.5,0,2.3,1.6,3.4,2.5l2.8-4-3.3-3.4c-.3,0-3.1,4.6-2.8,4.9h0ZM271,224.2l2.5-5.2-4-3.4c-1.4,1.4-1.7,3.4-3.4,4.6l4.9,4.1h0ZM257.5,221.6c-2.5,0-3.3-2.9-5.5-3.1.4,1.4-3.9,5.6-3.1,6.1,2.4-.2,3.5,2.4,5.2,3.8l3.4-5.9v-.9h0,0ZM241.4,225.2c-2.9-.4-4.6-2.8-6.8-4.4.2,2.9-1.9,5.1-3.8,7.1,1.1,1.3,3.1,1.5,4.3,2.5,1.1.9,1.2,2.3,2.4,2.8.5-3.2,2.1-5.4,3.8-8h0ZM341.3,234.1c2.8-1.6,1.3-3.3.7-5.5-3.1,1.7-.9,3.1-.7,5.5ZM351.2,234.9c2.8-2,2.5-3.3,1.3-6.2l-2.4,2.8,1.1,3.3h0ZM330.2,235.9c-.6-1.7,2.1-2.9,1.9-3.9l-2.1-2.9-2.8,3.4c.4.6,1.1.9,1.5,1.6.6,1-.3,2.2,1.5,1.8h0ZM317,229.6c-.5.9-2.9,3.2-2.8,3.9l2.7,3.5,2.7-4-2.6-3.4ZM303.6,239.3l2.5-5.2-3.6-3.5c.4,1.7-2.7,3.6-2.5,4.6l3.6,4.1h0ZM288.7,242.3c0-2.4,1.8-4.1,3.1-5.8l-3.9-4-3.5,5.2,2.1,1.6,2.2,3.1h0ZM273.3,245.2c.2-2.6,1.9-4.3,3.1-6.4l-4.9-4.7c.4,3.2-3.4,4.2-3.8,6.7,2.8.1,3.7,2.9,5.5,4.4h0ZM386.9,242.6c1.2-2.2,1.4-3,.7-5.5-.9-.1-1.1,1.6-1.2,2.2,0,.7-.6,3.4.5,3.4h0ZM261.6,241.4c-2.6-.3-4-2.8-5.8-4.4-1.1,1-1.1,2.4-1.9,3.7-.9,1.3-2.7,2.2-3.4,3.7,1.9-.3,3.1.9,4.6,1.9l2.7,3.8c-.3-3.6,1.5-6.1,3.8-8.6h0ZM339.2,255.7c-.2-1.5,2.4-3.7,2.4-4.6,0-.2-1.7-3.9-2-4-.7,1.6-1.5,2.9-2.8,4.1l2.4,4.6h0ZM328.1,256.2c1.4-3.9,4.5-4.6.4-8.6l-3.4,4,3,4.7ZM350.4,247.8c-.6-.8-2.9,2.3-3,2.9-.4,1.2,1.1,3.1,1.1,4.5l3-4.1-1.1-3.3h0ZM357.7,255.9c0-1.5,2.2-3.1,2.4-4.1.2-.9-1.2-2.8-1.1-3.9l-2.2,2.4-.3.9,1.2,4.6h0ZM316.4,257.4c-.4-1.9,2.9-3.8,3.1-4.7.2-.9-2.8-2.9-2.4-4.6l-4.4,4.6c1.7,1.3,2,2.4,2.4,4.3.2.7.7.4,1.2.4h0ZM365.8,256c1.6-2.9,2.1-4,1.3-7.4l-2.2,2.4c-.6,1-.4,2.2-.2,3.3,0,.5.3,1.9,1.1,1.7h0ZM303.4,259.7l3.1-6.4-3.3-4.1c-1,.8-1.2,2.1-1.9,3-.8,1.1-2.4,1.7-2.2,3.1,2.7,0,2.4,3.4,4.3,4.4h0ZM373.2,249.9c-.7,2.2-3.5,4.5-1,6.8l2.1-2.8-1.1-3.9h0ZM288.5,262.6c.9,0,1-.9,1.3-1.5,1-2.2,1.6-4,3.7-5.5,0-.4-4.8-2.9-4.3-4.7-2.1,1.2-2.3,5.2-5,5.5v1.2c2.7.2,3.8,2.6,4.3,5h0ZM383.7,255.5c-2.9,0-1.7,3.6-1.9,5.5l2.4-2.9-.5-2.7h0ZM389.3,263.5c-.6-.8.6-3-.7-3l-1.3,6.2,1.6-1.8,1.5.6c.6-2.2-.8-1.6-1.1-2h0ZM335.3,276.1c.4-2.5,2.1-4.2,3.7-5.9l-1.8-5.2-2.8,4.3-1.5.6,1.1,1.7,1.3,4.5h0ZM344.6,275.5c-.4-1.6,3.6-5.4,3.6-5.8s-1.9-3.2-1.1-4.6c-.8.5-4.2,4.3-4.3,4.7-.2.7.9,1.7,1,2.5.2,1-.5,3.2.7,3.3h0ZM329.2,271v-.9l-3-4.7c.2,1.8-3.5,4.5-3.7,5.3-.2.7,1.4,2,1.7,3.1.2.8,0,2.5,0,2.7.9,1.1,1.1-.2,1.3-.9.5-1.7,1.9-4.5,3.7-4.7h0,0ZM356.4,270.7l-1.2-5-3.5,3.7c-.3.4.2,4.9,1.2,5.6.9-.6.7-.4,1.7-.9,1.1-1,1.2-1,1.8-3.4h0ZM313.7,278.9c.8-3.1,2.6-5.6,5-7.7-1.5-1.5-3.2-2.9-3-5.3-1.7,1.3-2,3.1-3.7,4.6-.8.7-1.7.8-1.9.9-1.1.9,1,1.4,1.5,1.8.5.4.8.9,1,1.5l1,4.2h0ZM366.8,276.4c-.1-1.6,2.1-2.4,2.4-3.5.5-1.6,0-4,.1-5.8l-2.2,3.1-1.6,1,1.2,5.2h0ZM362.7,266.9c-.9.7-3,2.5-3.9,3.2-.2.2,1.2,4.3.5,5.5.9-1.2,3.5-3.2,4.1-4.3M371.7,278.3l3-4.7-.5-3.9c-2.7,2.2-3.2,3.7-3.1,7.1,0,.7-.4,1.7.6,1.5h0ZM380.4,275.3l-1.2.3-.3-.3-.9-3.4c-2.5,2.7-2.9,4.6-2.5,8.3l2.5-3.4c1,.4,3.5-.4,2.5-1.5h0,0ZM382.2,280.8l-.6-3.1-.7,6.8,1.9-1.8.6,2.5,1.9-6.1-3.1,1.8h0ZM372.2,291.8v-3.7s-4,3-4,3c-.5.6.4,2.1.3,3.4-.1,1.4-1.3,2.6-1.3,4l3.4-4.3.9,3.7c4-1.4,3.4-5.7,4.4-9.2-1.6.6-1.6,3.3-3.7,3h0s0,0,0,0ZM377.2,295.6l-.6-1.2c-.4,2.6-2.4,4.3-3.8,6.5.1,2.5,1.8-2,2.5-1.5l-.6,3.7.7-1.1c2.6,1.6,3.4-6.6,3.1-6.9l-1.2.6h0Z"/>
+ <path class="st1" d="M222.9,241.7c-.2,3.4.6,5.6-1.6,8.6-6.1,8.3-17.5-.7-13.8-10.9.9-2.4,2.4-3.2,4.4-4.6,2.9.3,4.3-.4,7,1.4,1.9,1.3,2.9,3.5,4.1,5.5h0Z"/>
+ <path class="st1" d="M167.5,206.1c8.4-1.2,13.7,12,6.5,17.2-2.3,1.7-6.6,1.8-8.9.2-6.8-4.7-6.4-16.1,2.4-17.4h0Z"/>
+ <path class="st1" d="M142.3,192.9c7.5-1.6,13.1,6.6,10.4,13.1-4,9.8-18.2,3.9-15.7-7.3.4-2,3.3-5.4,5.3-5.8Z"/>
+ <path class="st1" d="M108.9,141.4c8.9-1.3,12.4,13.8,3.2,17.7-11.6,4.9-15.2-15.9-3.2-17.7Z"/>
+ <path class="st1" d="M114.3,160.5c8.3-1.2,12.2,12.1,4.9,16.9-2.5,1.6-7,1.4-9.2-.7-5.1-5-3.1-15.1,4.3-16.2h0Z"/>
+ <path class="st1" d="M119,180.3c6.9-1.5,10.7,4.5,10,10.8-.2,2.1-1.8,3.9-3.5,5.2-6,4.3-12.8-2.6-11.9-9,.3-2.6,2.7-6.4,5.4-7h0Z"/>
+ <path class="st1" d="M233.8,249.9c5.9-1.3,10.1,5.3,9.3,10.8-.9,6.9-8.9,10-13.2,3.9-1.7-2.5-2.1-7.1-1.2-9.9.5-1.4,3.6-4.4,5.1-4.7h0Z"/>
+ <path class="st1" d="M172.9,226.5c9.8-2.1,14.1,12.1,6.7,16.1-7.4,4-14.6-6-10.7-12.8.6-1.1,2.8-3,4.1-3.3h0Z"/>
+ <path class="st1" d="M150.2,212.7c8-1.2,12.7,10.6,6.8,15.7-6.8,5.9-16.3-4.9-11.9-12.1.9-1.5,3.3-3.3,5.1-3.6h0Z"/>
+ <path class="st1" d="M196.2,240.3c10.2-2.1,13.7,15.4,3.9,17.1-9.7,1.6-13.3-15.1-3.9-17.1h0Z"/>
+ <path class="st1" d="M217.7,254.7c7.8-1.7,12.8,10.4,6.5,15.4-7.4,5.8-16.7-7.5-8.8-14,.7-.6,1.4-1.2,2.3-1.4h0Z"/>
+ <path class="st1" d="M122.8,202c4.7-4.6,11.7-.5,12.6,5.3,1,6.1-4.9,11.5-10.7,8-4.2-2.6-5.5-9.8-1.9-13.3h0Z"/>
+ <path class="st1" d="M92.1,149.2c5.1-1.1,8.8,4.8,8,9.4-.5,2.7-2.9,6.7-5.8,7.2-10.3,1.7-11-14.7-2.2-16.6Z"/>
+ <path class="st1" d="M252.7,265.6c8.2-1.8,11,11.3,4.9,15.6s-11.2-2.5-10.4-8.7c.4-2.6,2.7-6.4,5.4-7h0Z"/>
+ <path class="st1" d="M88,131.3c6.3-1,8.8,5.9,6.6,11-1.8,4.1-6.3,7.1-10.4,4.1-5.4-3.8-2.5-14.1,3.9-15.2h0Z"/>
+ <path class="st1" d="M97.5,168.4c2.9-.6,5.8,1.4,7.1,3.8,3.3,6.5-2.3,15.5-9.3,11.6-5.5-3.1-4.3-14.1,2.3-15.4h0Z"/>
+ <path class="st1" d="M157.4,232.5c8.9-1.2,12.2,15.2,2.7,16-8.4.7-12-14.7-2.7-16Z"/>
+ <path class="st1" d="M179.5,246.3c7.6-1.6,12.2,7.8,8.1,13.2-1.7,2.2-3.2,2.4-5.9,2.1-7.3-.8-9-13.9-2.2-15.4h0Z"/>
+ <path class="st1" d="M88.7,127.9c-.9.8-4.4,2.6-5.6,2.5-8.1-.8-6.3-14.1,1.4-15.8,7.6-1.6,9,8.9,4.2,13.3Z"/>
+ <path class="st1" d="M132.8,220c7.9-1.7,12.9,9.6,6.5,14.1-2.6,1.9-5.1,1.5-7.7-.4-4.2-3.2-4.2-12.6,1.1-13.7h0Z"/>
+ <path class="st1" d="M237.9,269.7c7.5-1.6,11.1,10.5,4.4,15-1.6,1-2.5,1.2-4.3.6-6.6-2-7.3-14.1,0-15.6h0Z"/>
+ <path class="st1" d="M201.6,260.1c9.9-2.1,12.3,13.6,4.6,15.2-9,2-11.9-13.7-4.6-15.2Z"/>
+ <path class="st1" d="M102.9,188.2c9.5-2.1,11.8,13.5,3.9,15.2-9.5,2.1-11.3-13.6-3.9-15.2Z"/>
+ <path class="st1" d="M296.5,275.9c4.6-1,6.7,3.7,6.3,7.7s-3.9,10.9-8.8,9.2c-5.4-1.9-3.5-15.5,2.5-16.9h0Z"/>
+ <path class="st1" d="M283.5,278.2c5-1,6.8,4.9,6.2,8.9-1.2,8.3-11.2,11.4-12.3,1.7-.4-3.7,2.1-9.8,6.1-10.6h0Z"/>
+ <path class="st1" d="M81.5,99.1c9.9-2.1,8.5,11.9.7,14.4-6.7,2.2-9.2-5.2-5.8-10.3.8-1.2,3.7-3.9,5.1-4.2Z"/>
+ <path class="st1" d="M274.2,282.5c.8.8,1.9,3.9,2,5.1.4,8-8.5,14-11.7,5.3-1.5-4.2.5-10.7,5.3-11.7,1.1-.2,3.5.6,4.3,1.3h0Z"/>
+ <path class="st1" d="M222.4,274.5c8.1-1.8,11,10.3,5,13.8-8.1,4.7-13.3-12-5-13.8Z"/>
+ <path class="st1" d="M109.5,208c8-1.7,12,9,5.6,13.2-8.2,5.4-13.4-11.5-5.6-13.2h0Z"/>
+ <path class="st1" d="M76,157.7c1.6-.3,3.9-.2,5.1.9,4.3,3.9,1.9,13.9-4.1,13.8-7.3,0-7.2-13.3-1-14.7h0Z"/>
+ <path class="st1" d="M164,252.3c1.4-.3,3.3.1,4.5.9,7.4,4.5,3.4,17.7-5.2,11.9-4.6-3.1-4.9-11.6.8-12.8Z"/>
+ <path class="st1" d="M186.7,265.5c8.1-1.6,11.6,12.9,3.3,14-7.5,1-10.7-12.5-3.3-14Z"/>
+ <path class="st1" d="M260,286c3.2,3,2.5,11.7-1.8,13.1-6.4,2.1-8.1-4.2-7.3-9.3.6-4,5.9-6.8,9.1-3.8Z"/>
+ <path class="st1" d="M81.1,84.9c6-.9,6.2,5.9,3.4,9.8-1.4,2-4.8,4.5-7.3,4.2-7.5-.9-3-12.9,3.8-13.9h0Z"/>
+ <path class="st1" d="M71.8,139.8c10.3-2.2,8.1,14.6-.3,14.1-6.5-.4-5.5-12.9.3-14.1Z"/>
+ <path class="st1" d="M140.6,239.8c9-1.9,11.9,14.3,2.2,13.5-6.7-.5-8.6-12.1-2.2-13.5Z"/>
+ <path class="st1" d="M69.6,122.4c8.9-1.8,6.8,15.3-2.1,14.1-7-1-3.6-12.9,2.1-14.1Z"/>
+ <path class="st1" d="M81.4,176.9c9.6-2.1,9.1,15.9.5,14-6.1-1.4-6.2-12.7-.5-14Z"/>
+ <path class="st1" d="M207.5,279.3c6.8-1.5,10.4,8.8,5.3,12.3-7.4,5.2-13.1-10.6-5.3-12.3Z"/>
+ <path class="st1" d="M118.4,227.4c8.7,0,8.5,15,.6,13.2-7-1.6-7.1-13.2-.6-13.2Z"/>
+ <path class="st1" d="M85.7,208.1c-2.7-2.6-2.8-9.2.6-11.2,6.7-4,11.8,7.6,6,11.7-1.9,1.4-5,1-6.6-.5h0Z"/>
+ <path class="st1" d="M246.3,301c-.1.2-1.9,1.2-2.1,1.2-8.6,2.2-9.4-13.6-1.6-13.5,5.6,0,6.8,9,3.7,12.3h0Z"/>
+ <path class="st1" d="M71.6,107.7c.4.5,1.4,3.1,1.4,3.9,0,2.2-2.1,6.1-3.8,7.3-7.5,5.4-11-5.7-3.9-10.8,1.6-1.2,4.9-1.9,6.4-.4h0Z"/>
+ <path class="st1" d="M295,295c8.9-1.9,5.1,15.7-2.1,14.7-4.8-.7-3.2-13.5,2.1-14.7Z"/>
+ <path class="st1" d="M302.6,307.8c-.2-.2-1.2-3.2-1.3-3.9-.3-3.6,2.7-12.1,7.1-11.3,5.4,1,2.4,14.4-3.1,15.3-.6,0-2.4.2-2.7,0h0Z"/>
+ <path class="st1" d="M283.3,297.3c.6-.1,1-.1,1.6,0,6.3,1.5,2.7,15-3.7,14.1-5-.7-4.3-12.7,2.1-14.1Z"/>
+ <path class="st1" d="M73.3,84c-1.3-1.3-.6-4.6,0-6.2,2.5-5.7,12.7-8.7,11.6-.7-.6,4.1-8.3,10.3-11.7,6.9h0Z"/>
+ <path class="st1" d="M317.9,291.5c3-.6,4.1,2.6,3.8,5.1-.4,3.7-3.5,11.7-8.3,10.1-3.8-1.3-.4-14.1,4.5-15.2h0Z"/>
+ <path class="st1" d="M270.3,300.3c5.7-1.2,6.4,7.5,3.2,11.4-5.1,6.1-10.1-2.5-6.6-8.6.6-1,2.3-2.5,3.5-2.7h0Z"/>
+ <path class="st1" d="M148.5,259c7.2-1.5,10.6,10.8,3.9,12.2-6.6,1.4-10.2-10.9-3.9-12.2Z"/>
+ <path class="st1" d="M171.8,271.5c6.5-1.3,10,10.9,3.3,12.2s-10.8-10.7-3.3-12.2Z"/>
+ <path class="st1" d="M67.9,92.3c4.3.1,3.7,5.4,2.2,8.2s-6.5,6.6-9.1,3.2c-2.9-4,2.5-11.5,6.9-11.4Z"/>
+ <path class="st1" d="M225,294.3c.3-.3,2.8-1.3,3.3-1.3,6.3,0,7.7,11.7,1,12.9-1.9.4-5.2-2.9-5.6-4.7s0-5.6,1.3-6.8h0Z"/>
+ <path class="st1" d="M99.5,217.2c5.9,6.2-2.2,15.7-7.2,8-4.1-6.4,2.7-12.6,7.2-8Z"/>
+ <path class="st1" d="M192.7,284.7c5.4-1.5,9.9,6.3,6.3,10.2-4.2,4.6-10.7-2.1-8.9-7.2.3-.9,1.8-2.7,2.6-2.9Z"/>
+ <path class="st1" d="M257.3,303.2c5.5-1.2,7.2,8.8,2.5,11.9-7.2,4.8-9.2-10.5-2.5-11.9Z"/>
+ <path class="st1" d="M125.1,247c3.9-1.1,8,3.4,7.6,7-.8,6.8-9.6,5.3-10.5-1.3-.3-2.1.7-5.1,2.9-5.7h0Z"/>
+ <path class="st1" d="M57.6,148.3c8.9-1.9,5.8,14.3-1.2,11.9-4.7-1.6-3.3-11,1.2-11.9Z"/>
+ <path class="st1" d="M61.7,166.2c7.4-1.5,6.8,11.5,1.6,12.3-6.9,1-6.6-11.2-1.6-12.3Z"/>
+ <path class="st1" d="M73.4,71.6c-3.7-3.7,5.7-13.5,9.6-10.3,3,2.5-.4,7.8-3.1,9.4-1.6.9-5,2.4-6.5.9Z"/>
+ <path class="st1" d="M51.8,142.4c-.5-.5-1.3-3.1-1.4-3.9-.2-4.8,5.9-10.9,8.7-6,3.2,5.6-3.8,13.5-7.3,9.9Z"/>
+ <path class="st1" d="M66.5,185.4c6.8-2,8.4,10.3,2.8,11.5-7.3,1.6-7.1-10.3-2.8-11.5Z"/>
+ <path class="st1" d="M212.9,297.9c7.6-2.2,9.6,12.2,1.7,11-5-.7-6.1-9.7-1.7-11Z"/>
+ <path class="st1" d="M67.5,79.2c1.8-.1,3.4,2.1,3.2,3.8-.5,3.7-5.4,9.5-9.2,7.5s1.2-10.9,6.1-11.2h0Z"/>
+ <path class="st1" d="M102.4,235.1c6.5-1.3,8.8,9.8,3.3,10.9-6.6,1.3-8.7-9.8-3.3-10.9Z"/>
+ <path class="st1" d="M54.2,114.9c2.1-.4,3.5,1.6,3.8,3.5.5,3.9-4.7,11.2-8.3,7.5-2.9-2.9.8-10.4,4.6-11h0Z"/>
+ <path class="st1" d="M244.8,307c6.5-.2,5.9,10.8,1.1,11.5-6.8,1-6.5-11.4-1.1-11.5Z"/>
+ <path class="st1" d="M293.6,312.8c1.5-.3,2.9,1.5,3.1,2.9.6,3-2.5,10.6-6.2,9.7-4.6-1.1-1.4-11.8,3-12.6h0Z"/>
+ <path class="st1" d="M77.4,214.9c-.3.3-1.6.7-2.1.7-4.2.3-6.1-4.6-4.8-8.1,2-5.9,9.3-2,8.3,4.1,0,.6-1.1,3-1.4,3.3Z"/>
+ <path class="st1" d="M304.2,311.1c3.2-.6,2.8,4.2,2.5,6.3-.4,2.4-3.6,7.3-6.3,6.5-3.9-1.2-.5-12,3.9-12.8h0Z"/>
+ <path class="st1" d="M281.9,315.2c5.1-1.1,4.8,8.8.7,11.3s-5.3-1.9-4.8-5.5c.3-2,2-5.3,4.2-5.8h0Z"/>
+ <path class="st1" d="M308.7,322.6c-2.2-2.3,1.3-11.6,4.3-12.5,4.7-1.5,3.7,4.1,2.6,7-.8,2-4.5,7.9-6.9,5.5h0Z"/>
+ <path class="st1" d="M156.3,278.2c7.7-2.2,10.1,11.6,1.8,9.7-4.2-1-5.8-8.5-1.8-9.7Z"/>
+ <path class="st1" d="M139.1,275.3c-1.7,1.7-4.9.4-6.3-1.2-3.8-4.1-.8-10.9,4.6-7.6,2.6,1.6,4,6.5,1.7,8.8h0Z"/>
+ <path class="st1" d="M179.1,290.1c2.7-.5,5.7,2.1,6.2,4.7,1.1,5.5-4.9,7.5-8.2,2.5-1.7-2.5-1.2-6.6,2-7.3h0Z"/>
+ <path class="st1" d="M324.7,308.8c1.5,1.5.2,5.4-.5,7.2s-3.8,6.9-6,6.3c-3.4-1,.6-10.4,2.4-12.1.6-.6,3.5-2,4.1-1.3h0Z"/>
+ <path class="st1" d="M54.3,109.7c-1.1,1.1-3.8,2.6-5.1,1.4-4.2-3.5,2.6-12.9,6.6-10.2,2.5,1.7.1,7.2-1.5,8.8h0Z"/>
+ <path class="st1" d="M74.1,60.6c-2.9-4.5,7.9-13.1,10.2-8.5,1.8,3.6-6.5,10.5-10.2,8.5Z"/>
+ <path class="st1" d="M67.6,67.5c3.9-.9,3.4,3.8,1.9,6.3-1.9,3.2-9,7.2-8.6,1.2.2-3,3.9-6.9,6.7-7.6h0Z"/>
+ <path class="st1" d="M270.1,318.2c6.9-1.4,4.5,11.5-.8,11-4-.4-3.7-10.1.8-11Z"/>
+ <path class="st1" d="M80.3,223.7c3.5-1,6.6,4.1,5.4,7.4-1.9,5.5-7.5,2.7-8.2-2.4-.3-1.7,1.2-4.6,2.8-5Z"/>
+ <path class="st1" d="M325.2,321.7c-1.6-1.7,1.2-8.4,2.4-10.3s5.2-5.6,5.7-1.7c.4,3.3-3.9,12.5-8.2,12h0Z"/>
+ <path class="st1" d="M231.3,311c5.6-1.6,7.5,10.1,1.6,10.5-3.5.2-5.6-5.3-4.2-8.1.2-.4,2.2-2.2,2.6-2.4h0Z"/>
+ <path class="st1" d="M199.9,302.7c5.1-.9,8.2,8.6,2.7,9.7s-8-8.8-2.7-9.7Z"/>
+ <path class="st1" d="M115.2,255.6c4.7,4.8-1.6,12.2-5.7,5.9-3.3-5.1,1.5-10.2,5.7-5.9h0Z"/>
+ <path class="st1" d="M335.6,320.4c-4,3.9-3.8-1.2-2.7-4.3.7-2,4.1-8.4,6.4-8.4,1.3,0,1,4.2.8,5.1-.3,1.4-3.4,6.6-4.5,7.6h0Z"/>
+ <path class="st1" d="M46.4,184.3c-.2-.2-1.2-2.4-1.2-2.8-1.1-5.6,5.1-9.9,7.1-3.9,1.3,4.1-2.7,9.9-5.8,6.6h0Z"/>
+ <path class="st1" d="M261.5,321.8c.2.2,1.2,2.4,1.2,2.8.6,2.9-3,8.9-6.1,6-3.9-3.6,1.1-12.6,4.9-8.8h0Z"/>
+ <path class="st1" d="M43,157.4c3.7-3.3,7.1,2.9,4.4,7.3-1.4,2.2-3.5,3.2-5.2.9s-1.2-6.3.8-8.2h0Z"/>
+ <path class="st1" d="M53.2,87.1c5.4-1.6,3.5,6.6,0,8.8-4.5,3-6.2-.7-4.1-4.8.4-.8,3.3-3.8,4-4Z"/>
+ <path class="st1" d="M56.5,202.9c-.3.3-1.7.7-2.1.7-3.1.2-4.5-5.1-3.2-7.6,2.5-4.8,6.9-1,6.6,3,0,.5-1.1,3.6-1.4,3.9h0Z"/>
+ <path class="st1" d="M344.9,308.4c3.6-1,1.3,5.1.5,6.7-.6,1.2-4.8,6.7-5.6,6.7-.6,0-.9-1.5-1-2.2,0-2.5,3.8-10.6,6.1-11.3h0Z"/>
+ <path class="st1" d="M42.8,139.4c.7,0,2.1,1.3,2.3,1.8,1.9,3.9-2.8,10.8-6,7.7-2.1-2.1,0-9,3.6-9.5h0Z"/>
+ <path class="st1" d="M222.6,323.7c-3.5,3.4-9.3-4.2-5.4-7.6,4.2-3.6,8.2,4.8,5.4,7.6Z"/>
+ <path class="st1" d="M71.6,57.6c1.4,3.3-5.4,10.3-8.1,8.9-3.4-1.7,1.8-7.3,3.9-8.5,1.4-.7,2.7-1,4.1-.4h0Z"/>
+ <path class="st1" d="M88.1,242.9c3.4-.9,6.9,4.5,4.8,7.4-4.4,5.8-9.9-5.9-4.8-7.4Z"/>
+ <path class="st1" d="M82.7,42.3c.9-.1,2.3-.3,2.6.9.9,3.1-6.4,9.2-9.3,7.3-.7-.5-.7-1-.5-1.8.6-2.6,4.7-6,7.2-6.4h0Z"/>
+ <path class="st1" d="M41.2,123.4c5-.9,2.2,11.1-2.6,9.7-3.5-1-1.1-9.1,2.6-9.7Z"/>
+ <path class="st1" d="M147.6,292.1c-2.9,2.8-8.8-2.5-6.5-6.3,3-5,9.8,3.1,6.5,6.3Z"/>
+ <path class="st1" d="M246,324.7c6.4-1.9,6.2,8.6,1.6,9.1-4,.4-4.2-8.3-1.6-9.1Z"/>
+ <path class="st1" d="M299.6,328.3c2.6-.8,2.3,3.3,1.9,5.1-.5,2.3-3,4.9-5.2,5.8-3.7-1.9.7-10.1,3.3-10.9h0Z"/>
+ <path class="st1" d="M164.8,296.2c4.8-1.4,7.7,6.1,4.5,7.7-5.2,2.5-8.4-6.6-4.5-7.7Z"/>
+ <path class="st1" d="M314.4,336.2c-1.5,1.5-3.6,2.1-3.6-.8,0-2.3,3.9-10.1,6.6-9.5,3.1.6-1.7,8.9-3,10.3Z"/>
+ <path class="st1" d="M49.8,83.9c-1.2-3.1,3.7-10.6,6.9-8.9,2.5,1.3,0,5.3-1.3,6.8-1.6,1.8-3.1,2.4-5.6,2.1h0Z"/>
+ <path class="st1" d="M308.3,327.1c3.4-1,1.8,4.8.9,6.5-2.1,4.5-7.2,6.9-5.6,0,.3-1.5,3.2-6,4.6-6.5h0Z"/>
+ <path class="st1" d="M352.5,309c.5.5-.9,4.4-1.3,5.3-.5,1.1-5.4,9.2-6.9,7.6-.2-2.9,1.2-5.8,2.7-8.2.6-.9,4.1-6.1,5.5-4.7h0,0Z"/>
+ <path class="st1" d="M292.4,330.7c.2.3,0,3.2,0,3.9-.4,2.8-2.2,4.6-4.7,5.8-3.5-2-.7-10,2.7-10.3.3,0,2,.5,2,.6h0Z"/>
+ <path class="st1" d="M40.6,108.5c4.8-1.4,2.4,10.8-3.2,9.1-2.9-.9.6-8.4,3.2-9.1Z"/>
+ <path class="st1" d="M279.8,332.4c5.1-1.5,3,9.7-1.4,9.2-4.1-.4-1.7-8.3,1.4-9.2Z"/>
+ <path class="st1" d="M119.9,272.9c4.4-1.2,7.2,6.8,3.4,7.9-4.3,1.2-8.2-6.6-3.4-7.9Z"/>
+ <path class="st1" d="M185.6,308.1c5.2-1.5,7.7,6.1,4.5,7.7-4.5,2.2-7.9-6.8-4.5-7.7Z"/>
+ <path class="st1" d="M318.3,337c-.6-3.4,1.9-8.5,4.4-10.8,1.6-1.4,3.4-1.1,3,1.2-.5,3-3.9,9.3-7.4,9.6Z"/>
+ <path class="st1" d="M60,213.1c3.7-.6,5.3,7.6,2.2,8.5-5,1.5-7-7.7-2.2-8.5Z"/>
+ <path class="st1" d="M359.3,309c.5.5-.5,1.5-1,1.9-2.7,2.4-3.2,6.1-5.7,9.1-.8,1-2,2.6-3.4,2.5-1.1-1.3,3.5-9.6,4.8-11,1-1.2,2-2.1,3.6-1.2.4,0,.5-2.5,1.6-1.2h0Z"/>
+ <path class="st1" d="M234.8,328.3c6.2-1.8,5.1,10.2.1,7.6-2.5-1.3-2.9-6.9-.1-7.6Z"/>
+ <path class="st1" d="M332,325.5c.3,2.9-1.7,6.3-3.5,8.6-1,1.2-2.2,2.8-4,2.5-1-1,2-6.8,2.9-8,.6-.8,3.7-4.1,4.6-3.1h0,0Z"/>
+ <path class="st1" d="M270,334.8c3.4-.6,3.3,6.2.5,8-5,3.2-5-7.2-.5-8h0Z"/>
+ <path class="st1" d="M41.4,95c5.8-1.7.7,9.6-3.2,8.5-2.8-1.7,1.2-7.9,3.2-8.5Z"/>
+ <path class="st1" d="M205.6,326.5c-2.3-2-2-7.4,1.9-6.5,2.6.6,3.5,4,2.8,6.3-.5,1.6-3.7,1.1-4.7.2h0Z"/>
+ <path class="st1" d="M70.9,48.4c4.9-1.1,1.3,4.3-.8,6.1-3.5,2.8-7,2.5-3.9-2.1.8-1.3,3.2-3.6,4.7-4h0Z"/>
+ <path class="st1" d="M364.2,312.8l-1.9,5.5,5.6-5.5-3.8,7c.3.8,1.3-.7,1.5-1,.5-.6.7-1.7,1.6-1.8l-1.3,4.3,1.9.3c-1.2,2.8-2.8,6.1-5,8.3l.6-2.5-1.2.3.6-2.1-1.9,1.2,1.3-3.7-3.1,1.8,2.5-5.5-4.7,4.9c-.5,0-.4-.6-.3-.9.3-1.6,3.6-7.5,4.8-8.9.7-.8,1.5-2,2.8-1.9h0s0,0,0,0Z"/>
+ <path class="st1" d="M330,336.5c-.6-.6,1.5-4.9,2-5.7.6-1.1,4-5.7,5.2-5.3s.6,1.1.4,1.7c-.2,1-.6,2.3-1.1,3.2-.6,1.1-5,7.7-6.5,6.2h0Z"/>
+ <path class="st1" d="M66.6,232.2c3.7-1.1,6.2,6.3,2.9,7.3-4.7,1.4-5.7-6.5-2.9-7.3Z"/>
+ <path class="st1" d="M101,268.9c-.3.2-2.6.1-3.2,0-2.2-.7-4.4-7.6,1.2-6.7,2.8.5,3.5,5.8,2,6.8h0Z"/>
+ <path class="st1" d="M59.2,64.2c1.2,2.8-4,8.6-6.5,8-2.2-.6.8-4.9,1.6-5.8,1.4-1.5,2.8-2.4,5-2.1h0Z"/>
+ <path class="st1" d="M77.9,42.2c0-3.6,3.8-6.1,7-6.9.6-.1,1.4-.7,1.7.5.7,2.9-5.9,7.3-8.7,6.4h0Z"/>
+ <path class="st1" d="M353.6,323.8c-.1-5,3.4-9.5,6.6-12.9,1.1.9,1,1.3.6,2.5-1,3.3-4.6,8-7.2,10.4h0Z"/>
+ <path class="st1" d="M258.8,337.8c4.6-1.3,4,7,.5,7.4s-3.1-6.6-.5-7.4Z"/>
+ <path class="st1" d="M31.8,148.5c1.7,2.2-.5,8.8-3.4,7.9-2.7-.8-.9-9.6,3.4-7.9Z"/>
+ <path class="st1" d="M34.1,165.9c.2.1.7,2.2.7,2.7.4,7.2-7.1,6.2-4.7-1,.5-1.6,2.8-2.6,4-1.7Z"/>
+ <path class="st1" d="M335.6,336.6c-1-2.3,5.4-11,6.6-11,.6,0,.9,1.1.6,1.9-.6,2.2-2.3,5-3.8,6.7-.4.5-2.9,3.1-3.4,2.4h0Z"/>
+ <path class="st1" d="M26.4,139.8c-1.6-2.2.7-8.5,3.4-8,2.2.4.9,9.8-3.4,8Z"/>
+ <path class="st1" d="M45.4,82.6c.3,3.5-2.3,7.9-6.2,7.3-.2-3.4,2.6-7.7,6.2-7.3Z"/>
+ <path class="st1" d="M223.7,331.9c2.9-.8,5,5.9,2.3,6.7-4.6,1.3-5.1-5.9-2.3-6.7Z"/>
+ <path class="st1" d="M173.2,313.5c3.4-1,5.9,3,3.9,5.9-3.6,2.1-6.9-5-3.9-5.9Z"/>
+ <path class="st1" d="M151.7,302.1c4.7-1.3,6.9,7.8,1.2,6-2.4-.7-3.2-5.5-1.2-6Z"/>
+ <path class="st1" d="M34.5,191.1c-1.1-2-1-7.9,2.1-7.3s2.4,8.8-2.1,7.3Z"/>
+ <path class="st1" d="M247.3,346.7c-1.6-1.6-.7-6.9,2.6-5.9,3.6,1.1.9,9.5-2.6,5.9Z"/>
+ <path class="st1" d="M129.6,290.9c3.3-.6,5.4,5.4,2.9,6.1-4.4,1.2-6-5.5-2.9-6.1Z"/>
+ <path class="st1" d="M347.4,326.8c.3.3-2.4,5.4-2.9,6.1-.4.6-4.2,4.9-4.6,4.3-.2-2.5,1.5-4.8,2.9-6.7,1.2-1.6,2.4-3.7,4.6-3.7Z"/>
+ <path class="st1" d="M303.4,343.7c.1,3.8-2,6.3-4.7,8.6-3.3-2,2.8-10.5,4.7-8.6Z"/>
+ <path class="st1" d="M193.5,324.8c3.8-1.1,6.4,5.1,2.9,6.1-3.2.9-5.4-5.4-2.9-6.1Z"/>
+ <path class="st1" d="M293.9,344.9c4.7-1.3-.4,8.6-2.6,7.9-2.5-.8,1.1-7.5,2.6-7.9Z"/>
+ <path class="st1" d="M42.9,209.7c-4.2,1.6-4.7-6.2-2.6-6.8,3.8-1.1,3.9,4.3,2.6,6.8Z"/>
+ <path class="st1" d="M68,47c-.6-.6,2.5-4,3.2-4.5,5.4-4.5,6.4-.7,1.7,3-1.5,1.2-2.8,1.9-4.9,1.5h0Z"/>
+ <path class="st1" d="M283,354c-.8-1.9,1.3-8,3.5-7.9,3.2.2,0,8.9-3.5,7.9Z"/>
+ <path class="st1" d="M28.8,117.1c4.2-1.2,1.2,8-2,7.3-2.1-.4.1-6.8,2-7.3Z"/>
+ <path class="st1" d="M317,342c.6.6-1.7,4.8-2.2,5.5s-3.6,4.1-4.6,3.1c-.3-.3,2.3-5.4,2.9-6.1s3.1-3.4,4-2.5h0Z"/>
+ <path class="st1" d="M310.2,342.5c1.2,1.3-2.8,9.2-5.6,8.6-.3-3,1.3-5.5,3.5-7.4.7-.6,1-1.5,2.2-1.2h0Z"/>
+ <path class="st1" d="M60.9,54.4c1.8-.3,1.2,1.9.5,3-.7,1-4.4,4.5-5.6,4.3-1.3-.3-.3-2.5,0-3.1.6-1,4-4.1,5-4.2h0Z"/>
+ <path class="st1" d="M75,251.4c4.8-1.3,5.1,9,.2,5.2-1.6-1.2-1.9-4.7-.2-5.2h0Z"/>
+ <path class="st1" d="M106.9,280.1c2.6-.7,5.2,4,3.3,5.2-3.4,2.2-7-4.2-3.3-5.2Z"/>
+ <path class="st1" d="M322.6,341.4c1.2,1.5-3.9,8.7-6,9.2-1.1-.9-.8-.6-.4-1.6,1.4-3,3.1-6.4,6.3-7.6h0,0Z"/>
+ <path class="st1" d="M48,70.9c.1,3.2-2.2,6.9-5.6,7.3-.5-3.5,2.3-6.8,5.6-7.3Z"/>
+ <path class="st1" d="M274.9,355.1c-1.4-1.6.7-7.5,3.5-6.8,3,.8-1.8,8.7-3.5,6.8Z"/>
+ <path class="st1" d="M31.7,102.8c1.1,2.7-1,7.5-4.4,6.8-.3-2.7,1.3-6.6,4.4-6.8Z"/>
+ <path class="st1" d="M350.5,328.1c-.2,2.9-2.6,6.1-4.7,8-.7.6-1,1.5-2.2,1.2-.6-.7,3.9-7.1,4.8-7.9.6-.7,1-1.5,2.1-1.2h0Z"/>
+ <path class="st1" d="M237.4,349.1c-1.4-1.4-.4-5.7,1.4-5.4,4.5.8,1.7,8.4-1.4,5.4Z"/>
+ <path class="st1" d="M321.3,350c-1.2-1.3,4.6-8,6.2-8.6.2,3.1-1.9,5.5-4.1,7.4-.7.6-1,1.5-2.2,1.2Z"/>
+ <path class="st1" d="M212.5,336.1c2.4-.7,4.6,4.6,1.6,5.5-2.4.7-4.8-4.6-1.6-5.5Z"/>
+ <path class="st1" d="M268.5,350.1c2.9-.8,1.5,7.6-1.3,6.8-2-.6-.6-6.2,1.3-6.8Z"/>
+ <path class="st1" d="M46.9,222.1c3.3-.9,4.4,4.7,1.7,5.5-2.9.8-3.7-4.9-1.7-5.5Z"/>
+ <path class="st1" d="M332.4,342.1c.9,1-5.4,8.1-6.9,8.6.1-2.8,2.6-5.6,4.7-7.4.7-.6,1-1.5,2.2-1.2h0Z"/>
+ <path class="st1" d="M353.5,329.4c.8.9-5.2,8.7-6.9,9.2-.3-1.2.4-1.7.9-2.5.8-1.4,2.2-3.6,3.2-4.8.7-.8,1.5-2,2.8-1.9h0Z"/>
+ <path class="st1" d="M87.4,274.3c-2.8.7-5.8-3.1-3-4.7,2.1-1.3,3.9,2.7,3,4.7Z"/>
+ <path class="st1" d="M336.1,342.8c.7.8-3.8,6-4.7,6.8-.7.6-1,1.5-2.2,1.2l3.1-5.2c.6-.5,3-3.5,3.7-2.7h0Z"/>
+ <path class="st1" d="M65.5,46.4c1.1,1-5.2,7.2-6.2,6.1-1-1,2.9-4.6,3.7-5.2.6-.4,1.8-1.5,2.5-.9Z"/>
+ <path class="st1" d="M260.7,353.2c0,0,.6,1.8.6,2.1,0,2-1.8,3.2-3.7,2.7-.3-.3.2-4.6.7-4.9.2-.2,2.1-.1,2.4,0h0,0Z"/>
+ <path class="st1" d="M29.9,96c-1.2-1.2,2.2-5.4,3.4-6.1,2.7,1.3-2,7.7-3.4,6.1Z"/>
+ <path class="st1" d="M164.7,323.2c-1.6.9-4.1-.4-4.3-2.2-.4-4.2,5.4-1.2,4.3,2.2Z"/>
+ <path class="st1" d="M51.2,61.1c.3,2.9-2.3,5.6-5,6.1-.4-2.3,1.3-3.6,2.8-4.9.7-.6,1-1.5,2.2-1.2Z"/>
+ <path class="st1" d="M141.9,308.9c.5.5,1,3.3.7,3.6-2.1.7-4.9-1.1-4.3-3.4.4-1.4,2.8-.9,3.6-.2h0Z"/>
+ <path class="st1" d="M56.8,245.6c-1.6,1.8-4.9-4.2-2.1-4.9,2.4-.6,3.3,3.6,2.1,4.9Z"/>
+ <path class="st1" d="M79.2,34.2c.2,1.2-.6,1.5-1.2,2.2-1.4,1.6-3.3,3-5.6,3.3-.2-1.2.6-1.5,1.2-2.2,1.4-1.6,3.3-3,5.6-3.3Z"/>
+ <path class="st1" d="M295.9,358.4c.7.8-2.3,6.6-4.4,6.1-.3-2.2.7-3.5,2.2-4.9.7-.6,1.1-1.5,2.2-1.2Z"/>
+ <path class="st1" d="M185,333.9c-2.8.5-5.1-2.1-2.7-4.4,2.6.5,3.1,1.8,2.7,4.4Z"/>
+ <path class="st1" d="M301.4,357.9c.7.8-2.3,6.6-4.4,6.1-.7-.8,2.3-6.6,4.4-6.1Z"/>
+ <path class="st1" d="M20,157.7c.1,1.5,0,2.7-.5,4.1-.4,1-.5,1.1-1.7.8-2-.6-.5-5.9,2.2-4.9h0Z"/>
+ <path class="st1" d="M230.5,351.6c0,0-1.6.5-1.8.4-1.6-1-2.5-4.2-.2-4.6,1.7-.3,2.7,3.6,2,4.3h0Z"/>
+ <path class="st1" d="M307,357.3c.2,2.1-1.4,3.7-2.8,4.9-.7.6-1,1.5-2.2,1.2-.6-.7,4-7.2,5-6.1h0Z"/>
+ <path class="st1" d="M353.5,335.5c-1.5,1.2-2.8,2.5-4.4,3.7.7-3,3.7-5.3,5.3-8,1.2-.2,1.1.3.6,1.3-.5,1-1.6,1.8-1.6,3,.4-.3,3-2.6,3.1-2.4l-1.9,5.2c-1.6.5-2.5,1.2-3.8,2.2l2.5-4.9h0Z"/>
+ <path class="st1" d="M289.1,359.6c.1,2.6-1.2,5.4-3.8,6.1-.7-.9,1.6-6.6,3.8-6.1Z"/>
+ <path class="st1" d="M119.9,301.8c-1.7.3-3.5-.4-3.7-2.2-.4-4.2,4.7-.9,3.7,2.2Z"/>
+ <path class="st1" d="M249.9,355.5c2.8-.7,2.8,3.9.6,4.9-1.7-.7-2.3-4.5-.6-4.9Z"/>
+ <path class="st1" d="M333,350.8c-.4-.4,1.5-2.9,1.9-3.4,1.1-1.4,2.9-2.9,4.4-4-.2,1.7-2,4-3.1,5.2-.5.5-2.5,2.8-3.1,2.1h0Z"/>
+ <path class="st1" d="M282.2,361.4c.2,2.2-1,5.3-3.8,4.9.5-2,1-5.4,3.8-4.9Z"/>
+ <path class="st1" d="M21.6,179.9c-.8.9-2.2-.4-2.3-1.7-.2-2.9,2.7-4.6,3-1.7,0,.6-.4,3-.7,3.4h0Z"/>
+ <path class="st1" d="M18.9,141c.1,2,.2,5.4-2.5,5.5-.9-2-.2-5.3,2.5-5.5Z"/>
+ <path class="st1" d="M37.4,78.8c.6.6-2.8,6.4-4.4,4.9-.6-.6,2.8-6.4,4.4-4.9Z"/>
+ <path class="st1" d="M306.9,363.5c0-3,2.9-5.1,5-6.7,0,3-2.9,5.1-5,6.7Z"/>
+ <path class="st1" d="M310.6,363.5c-.4-.4,1.4-2.9,1.9-3.4,1-1.2,2.5-2.5,3.7-3.4.9,2-5.1,7.3-5.6,6.7h0Z"/>
+ <path class="st1" d="M203.3,341c1.1,1.1,1.2,3.9-1.2,3.3-3.2-.8-1.5-6,1.2-3.3Z"/>
+ <path class="st1" d="M16.6,131.1c-.3-2.6.1-4,2.2-5.5,2.5,1.2-1.2,6.7-2.2,5.5Z"/>
+ <path class="st1" d="M24.3,192.9c1.9-.6,2.2,4.4.6,4.9-1.9.6-2.2-4.4-.6-4.9Z"/>
+ <path class="st1" d="M274.8,363.2c.5,5.5-5.6,5.9-2.2.6.6-.9,1.3-.6,2.2-.6Z"/>
+ <path class="st1" d="M55.6,52.5c.7.8-3.1,5.8-5,4.9-.4-.4,4.2-5.8,5-4.9Z"/>
+ <path class="st1" d="M320.6,357.4c.1.1-1.8,2.7-2.2,3.1-.5.5-2.8,3-3.4,2.4l3.1-4.6,2.5-.9h0Z"/>
+ <path class="st1" d="M335.4,351.4c-.3-.3,5.1-6.5,6.2-6.7-.5,2.1-2.5,4.1-4.1,5.5-.7.6-1,1.5-2.2,1.2h0Z"/>
+ <path class="st1" d="M21.1,111.4c.2,2.1-.7,3.7-2.2,4.9-2.3-1.2,1.3-6,2.2-4.9Z"/>
+ <path class="st1" d="M69.9,39.6c-1.5,2-3.3,3.9-5.6,4.9-.9-1.1,3.9-5.5,5.6-4.9Z"/>
+ <path class="st1" d="M83,29.3c-.1,1.1-5.4,4.5-5.6,4.3,0-3,3.2-3.6,5.6-4.3Z"/>
+ <path class="st1" d="M37.5,72.7c-.7-.8,2.6-4.6,3.8-4.9,1.1,1.6-3,5.7-3.8,4.9Z"/>
+ <path class="st1" d="M318,363.6c-.2-1.1.6-1.5,1.2-2.1,1.2-1.4,2.8-2.9,4.4-4l-2.5,4-3.1,2.1Z"/>
+ <path class="st1" d="M28.8,212.1c2.6-.8,3.4,3,1.5,3.7-1.5.6-1.8-2.8-1.5-3.7Z"/>
+ <path class="st1" d="M267.4,365c.3,1.8-.5,3.7-2.5,3.7-.1-2.1-.2-4.1,2.5-3.7Z"/>
+ <path class="st1" d="M220,351.5c.1.1,0,2.2,0,2.8-.1,1-3.2.3-2.4-2.5.3-1.1,2.2-.5,2.4-.3h0Z"/>
+ <path class="st1" d="M94.1,287.4c2.8-.2,3.8,2.5,1.5,3.7l-1.5-3.7Z"/>
+ <path class="st1" d="M343.5,346.5c-.6.8-4.6,6.5-5.6,5.5.6-.8,4.6-6.5,5.6-5.5Z"/>
+ <path class="st1" d="M62.9,259.3c1.9-.3,3.5,2.9,1.5,3.7-1.5.6-1.8-2.8-1.5-3.7Z"/>
+ <path class="st1" d="M241.2,358.5c2.1-.2,1.8,3.7.6,3.7-.9,0-2.5-3-.6-3.7Z"/>
+ <path class="st1" d="M21.2,102.1c-.1-1.8.9-3.6,2.5-4.3.1,1.7-.3,4.3-2.5,4.3Z"/>
+ <path class="st1" d="M173.2,337.5c-1.6.2-3.1-.9-3.1-2.5,2.1-.2,3.4.2,3.1,2.5Z"/>
+ <path class="st1" d="M326.1,358.7c-1.1,1.9-2.2,3.6-4.4,4.3-.7-.7,3.7-5,4.4-4.3Z"/>
+ </g>
+ </g>
+ <g id="Layer_11" data-name="Layer_1">
+ <g id="Spasm">
+ <g id="Layer_1-2">
+ <path class="st0" d="M2.1,232.4c4.9,3.7,7.3,2,9.2-3.1.7-1.7,3.6-9.1,8.9-15.8,23.8-30.4,86.6-61.9,117.4-73.7,69.4-26.4,237.5-48.2,266.7,21.6,5.4,13.9.9,27.2-5.2,41.2,0,.1,0-.1,0,0,0,6.4,0,10.1,0,12,0,2.9,7.1-2.7,16-10.6,11-9.9,15.6-24.6,17.7-36.9,3.5-19-4.6-38.7-21.5-52.9-16.8-14.3-38.6-21.8-63.5-26.4-108.7-17.3-238.9,21.1-311,85.6-12.3,11.8-45.2,45.5-34.7,58.9h0c0,0,0,0,0,0Z"/>
+ <path class="st0" d="M57.2,137.7c-1.8,2.1-5.1,8.1-1,7.8,4-.7,6.5-2.6,10.5-5.1,14.7-9.9,30-19.3,46.7-27.2,70.8-34.1,153.1-47.7,229.5-37.3,31.5,4.3,65,13.4,82.5,34.5,2.2,2.2,10.9,15.6,12.4,8.9.7-5.2-3.3-13.1-7.6-18.2-10.3-12.8-27.6-21.8-46.5-26.3-21.7-5.2-43.5-9.2-66.3-11.2-87.7-6.4-179.9,17.3-248.1,63-4.6,3.3-8.8,6.9-11.9,11h0c0,.1,0,.1,0,.1Z"/>
+ <path class="st0" d="M359.5,59.3c-36.6-7.8-77.2-8.4-118.1-4.9-7.2.6-16.8,2.4-23.7,2.5-.8,0-2,.2-2.1-.5-.2-1.5,8.2-3.7,10.1-4.2,28.9-8,78.3-8.3,106.6-5.2,11.9,1.3,23,4.2,33.9,7.1,1.9.5,3.9,1,5.9,1.6,4,1.2,2.4,7.3-1.7,6.3-3.6-.9-7.2-1.8-10.9-2.6h0Z"/>
+ </g>
+ </g>
+ </g>
+</svg> \ No newline at end of file
diff --git a/website/public/index.php b/website/public/index.php
new file mode 100644
index 0000000..a5905dc
--- /dev/null
+++ b/website/public/index.php
@@ -0,0 +1,121 @@
+<?php
+
+// Load configuration
+$config = include(__DIR__ . '/../../config.php');
+
+// Define the ID of this site
+$siteId = 1;
+
+// Find the website configuration
+$websiteConfig = array_filter($config, function($site) use ($siteId) {
+ return isset($site['id']) && $site['id'] === $siteId;
+});
+$websiteConfig = reset($websiteConfig);
+
+// Include components
+foreach ($websiteConfig['components'] as $component) {
+ include($component);
+}
+
+?>
+
+<!DOCTYPE html>
+<html lang="en">
+<head>
+ <meta charset="UTF-8">
+ <meta name="viewport" content="width=device-width, initial-scale=1.0">
+ <title>Teleco.ch - <?php echo ucfirst($page); ?></title>
+ <meta name="description" content="<?php echo $metaDescription; ?>">
+ <link rel="stylesheet" href="assets/css/tc.css">
+</head>
+<body>
+ <header>
+ <div class="header-content" <?php if ($navbarTableExists && $navbarHasEntries) echo 'style="display:none;"'; ?>>
+ <img src="assets/svg/teleco.svg" alt="Teleco Logo" class="logo">
+ <h1>Teleco.ch</h1>
+ </div>
+ </header>
+
+ <?php if ($navbarTableExists && $navbarHasEntries): ?>
+ <nav class="navbar">
+ <?php render_navbar($navbarItems, $page); ?>
+ </nav>
+ <?php render_mobile_navbar($navbarItems, $menuExpanded); ?>
+ <?php endif; ?>
+ <hr>
+
+ <div class="container" style="<?php echo $leftSidebarHasItems || $rightSidebarHasItems ? '' : 'margin-left: 0px; margin-right: 0px; flex-wrap: nowrap; margin-top: 0px; margin-bottom: 0px; max-width: 100%; box-sizing: border-box; padding: 10px;'; ?>">
+ <!-- Left Sidebar -->
+ <?php if ($leftSidebarHasItems): ?>
+ <div class="sidebar">
+ <?php get_sidebar($db, 'left', $page, $sub); ?>
+ </div>
+ <?php endif; ?>
+
+ <!-- Main Content -->
+ <div class="content" id="content" style="<?php echo $leftSidebarHasItems || $rightSidebarHasItems ? '' : 'width: calc(100%);'; ?>">
+ <!-- Comment indicating if left elements were detected -->
+ <!-- Breadcrumbs -->
+ <div class="breadcrumbs">
+ <?php
+foreach ($breadcrumbs as $index => $crumb) {
+ if ($index > 0) echo ' > ';
+ echo '<a href="?page=' . htmlspecialchars($crumb['page']) . '">';
+ echo htmlspecialchars($crumb['title']);
+ echo '</a>';
+}
+ ?>
+ </div>
+ <?php if ($leftSidebarHasItems): ?>
+ <!-- Left sidebar elements detected -->
+ <?php else: ?>
+ <!-- No left sidebar elements detected -->
+ <?php endif; ?>
+ <?php if ($hasContent): ?>
+ <?php
+ $result = $query->execute();
+ $lastPostId = 0;
+ while ($row = $result->fetchArray()):
+ $lastPostId++;
+ ?>
+ <div class="box" id="post-<?php echo $lastPostId; ?>">
+ <h3><?php echo htmlspecialchars($row['title']); ?></h3>
+ <p><?php echo $row['content']; ?></p> <!-- Always render content as HTML -->
+ <hr>
+ <p>Date: <?php echo $row['date']; ?></p>
+ </div>
+ <?php endwhile; ?>
+ <?php else: ?>
+ <div class="box">
+ <h3>404 - Page Not Found</h3>
+ <p>Sorry, the page you are looking for does not exist.</p>
+ </div>
+ <?php endif; ?>
+
+ <div id="load-container">
+ <?php if ($hasContent && $offset + $limit < $totalPosts): ?>
+ <form method="get" action="index.php#post-<?php echo $lastPostId; ?>">
+ <input type="hidden" name="page" value="<?php echo htmlspecialchars($page); ?>">
+ <?php if ($sub): ?>
+ <input type="hidden" name="sub" value="<?php echo htmlspecialchars($sub); ?>">
+ <?php endif; ?>
+ <input type="hidden" name="offset" value="<?php echo $offset + $limit; ?>">
+ <button type="submit">Load More (<?php echo min($offset + $limit, $totalPosts) . " out of " . $totalPosts; ?>)</button>
+ </form>
+ <?php endif; ?>
+</div>
+ </div>
+
+ <!-- Right Sidebar -->
+ <?php if ($rightSidebarHasItems): ?>
+ <div class="sidebar-right">
+ <?php get_sidebar($db, 'right', $page, $sub); ?>
+ </div>
+ <?php endif; ?>
+ </div>
+
+ <footer>
+ &copy; 2025 Teleco.ch. All Rights Reserved.
+ </footer>
+</body>
+</html> \ No newline at end of file
diff --git a/website2/.DS_Store b/website2/.DS_Store
new file mode 100644
index 0000000..4a935d4
--- /dev/null
+++ b/website2/.DS_Store
Binary files differ
diff --git a/website2/content2.db b/website2/content2.db
new file mode 100644
index 0000000..e6aec42
--- /dev/null
+++ b/website2/content2.db
Binary files differ
diff --git a/website2/public/assets/.DS_Store b/website2/public/assets/.DS_Store
new file mode 100644
index 0000000..afa38b1
--- /dev/null
+++ b/website2/public/assets/.DS_Store
Binary files differ
diff --git a/website2/public/assets/css/tc.css b/website2/public/assets/css/tc.css
new file mode 100644
index 0000000..b2b32fc
--- /dev/null
+++ b/website2/public/assets/css/tc.css
@@ -0,0 +1,452 @@
+html, body {
+ height: 100%;
+ margin: 0;
+ padding: 0;
+ font-family: Arial, sans-serif;
+ background-color: #FFFFFF;
+ color: #000000;
+ display: flex;
+ flex-direction: column;
+ overflow-x: hidden;
+}
+
+header {
+ text-align: center;
+ background-color: #FFFFFF;
+ color: #FFFFFF;
+ display: flex;
+ flex-direction: column;
+ align-items: center;
+}
+
+.header-content {
+ display: flex;
+ align-items: center;
+ justify-content: center;
+ background-color: #FFFFFF;
+ padding: 10px 20px;
+ padding-top: 15px;
+}
+
+header h1 {
+ margin: 0;
+ font-size: 24px;
+ margin-left: 10px;
+ color: #D22627;
+}
+
+header h2 {
+ margin: 5px 0 0 0;
+ font-size: 16px;
+ text-shadow: 1px 1px 3px rgba(0, 0, 0, 0.6);
+}
+
+.logo {
+ height: 40px;
+ width: auto;
+}
+
+.container {
+ flex: 1;
+ display: flex;
+ width: 100%;
+ min-width: 300px;
+ align-items: flex-start;
+ flex-wrap: wrap;
+ margin: 20px auto;
+ margin-top: 0px;
+ margin-bottom: 0px;
+ max-width: 1200px;
+}
+
+.sidebar, .sidebar-right {
+ width: 20%; min-width: 200px; max-width: 250px;
+ padding: 10px;
+ padding-bottom: 0px;
+ background-color: #FFEEEE;
+ border: 1px solid #D22627;
+ box-sizing: border-box;
+ display: block; align-self: flex-start;
+}
+
+.content {
+ width: 60%;
+ flex-grow: 1;
+ padding: 10px;
+ box-sizing: border-box;
+}
+
+.box {
+ margin-bottom: 10px;
+ padding: 10px;
+ border: 1px solid #D22627;
+ background-color: #FFFFFF;
+}
+
+.box-last {
+ margin-bottom: 0px;
+}
+
+.box h3 {
+ margin: 0 0 10px 0;
+ font-size: 16px;
+ color: #D22627;
+}
+
+.box p, .box a {
+ margin: 5px 0;
+ font-size: 14px;
+ color: #000000;
+}
+
+.box a {
+ color: #D22627;
+ text-decoration: none;
+}
+
+.box a:hover {
+ text-decoration: underline;
+}
+
+footer {
+ background-color: #D22627;
+ color: #FFFFFF;
+ text-align: center;
+ padding: 10px 0;
+ font-size: 14px;
+ width: 100%;
+ flex-shrink: 0;
+}
+
+.navbar {
+ display: flex;
+ justify-content: space-between;
+ align-items: center;
+ background-color: #D22627;
+ padding: 10px;
+ color: #FFFFFF;
+}
+
+.navbar-left, .navbar-center, .navbar-right {
+ display: flex;
+ align-items: center;
+}
+
+.navbar-left {
+ justify-content: flex-start;
+ flex: 1;
+}
+
+.navbar-center {
+ justify-content: center;
+ flex-grow: 1;
+ flex: 2;
+}
+
+.navbar-right {
+ justify-content: flex-end;
+ flex: 1;
+}
+
+.navbar a, .navbar span, .navbar input, .navbar img {
+ margin: 0 10px;
+ color: #FFFFFF;
+ text-decoration: none;
+}
+
+.navbar button {
+ margin: 0 10px;
+ color: #000000;
+ text-decoration: none;
+}
+
+.navbar a:hover, .navbar button:hover {
+ text-decoration: underline;
+}
+
+.navbar-logo {
+ height: 40px;
+ width: auto;
+}
+
+.navbar-dropdown {
+ position: relative;
+ color: #ffffff;
+ display: inline-block;
+}
+
+.navbar-dropbtn {
+ background-color: #D22627;
+ color: white;
+ border: none;
+ cursor: pointer;
+}
+
+.navbar-dropdown-content {
+ display: none;
+ position: absolute;
+ background-color: #f9f9f9;
+ min-width: 160px;
+ box-shadow: 0px 8px 16px 0px rgba(0,0,0,0.2);
+ z-index: 1;
+}
+
+.navbar-dropdown-content a {
+ color: black;
+ padding: 12px 16px;
+ text-decoration: none;
+ display: block;
+}
+
+.navbar-dropdown-content a:hover {
+ background-color: #f1f1f1;
+}
+
+.navbar-dropdown:hover .navbar-dropdown-content {
+ display: block;
+}
+
+.navbar-dropdown:hover .navbar-dropbtn {
+ background-color: #a10000;
+}
+
+.mobile-navbar {
+ display: flex;
+ flex-direction: column;
+ align-items: center;
+ background-color: #D22627;
+ color: #FFFFFF;
+ width: 100%;
+ padding: 10px;
+}
+
+.mobile-navbar-panel {
+ display: flex;
+ flex-direction: column;
+ align-items: flex-start;
+ background-color: #D22627;
+ color: #FFFFFF;
+ width: 100%;
+ padding: 10px;
+ gap: 10px;
+}
+
+.mobile-navbar-panel .navbar-header {
+ display: flex;
+ flex-direction: column;
+ align-items: flex-start;
+ width: 100%;
+}
+
+.mobile-navbar-panel .navbar-logo, .mobile-navbar-panel .navbar-title {
+ display: inline-block;
+ vertical-align: middle;
+}
+
+.mobile-navbar-panel .navbar-toggle {
+ display: inline-block;
+ cursor: pointer;
+}
+
+.mobile-navbar-panel .navbar-toggle::after {
+ content: ' ▼';
+}
+
+.mobile-navbar-menu {
+ display: flex;
+ flex-direction: column;
+ width: 100%;
+ background-color: #D22627;
+ text-align: center;
+ align-items: center;
+ padding: 10px;
+ box-sizing: border-box;
+}
+
+.mobile-navbar-menu a,
+.mobile-navbar-menu span,
+.mobile-navbar-menu input,
+.mobile-navbar-menu button {
+ display: block;
+ padding: 10px;
+ border-bottom: 1px solid #FFFFFF;
+ text-align: center;
+ width: 80vw;
+ box-sizing: border-box;
+ margin: 0;
+}
+
+.mobile-navbar-menu a:hover,
+.mobile-navbar-menu button:hover {
+ background-color: #a10000;
+}
+
+.mobile-navbar-menu button {
+ text-align: center;
+ width: 80vw;
+ margin: 0 auto;
+ display: block;
+}
+
+input[type="checkbox"] {
+ display: none;
+}
+
+input[type="checkbox"]:checked ~ .mobile-navbar-items {
+ display: block;
+}
+
+@media screen and (max-width: 1279px) {
+ .container {
+ flex-direction: column;
+ padding: 10px;
+ padding-top: 0px;
+ padding-bottom: 0px;
+ width: 100%;
+ min-width: auto;
+ box-sizing: border-box;
+ }
+
+ .sidebar, .sidebar-right, .content {
+ width: 100%;
+ min-width: auto;
+ max-width: none;
+ flex-grow: 0;
+ margin-bottom: 20px;
+ }
+
+ .header-content {
+ padding-top: 10px;
+ }
+
+ header h1 {
+ font-size: 20px;
+ }
+
+ header h2 {
+ font-size: 14px;
+ }
+
+ .box h3 {
+ font-size: 16px;
+ }
+
+ .box p, .box a {
+ font-size: 12px;
+ }
+
+ footer {
+ font-size: 12px;
+ padding: 5px;
+ }
+
+ .navbar {
+ display: none;
+ }
+
+ .mobile-navbar {
+ display: flex;
+ flex-direction: column;
+ align-items: center;
+ background-color: #D22627;
+ padding: 10px;
+ color: #FFFFFF;
+ width: 100%;
+ }
+
+ .mobile-navbar .navbar-header {
+ display: flex;
+ justify-content: space-between;
+ width: 100%;
+ align-items: center;
+ }
+
+ .mobile-navbar .navbar-logo, .mobile-navbar .navbar-title {
+ display: inline-block;
+ vertical-align: middle;
+ }
+
+ .mobile-navbar .navbar-toggle {
+ display: inline-block;
+ cursor: pointer;
+ }
+
+ .mobile-navbar .navbar-toggle::after {
+ content: ' ▼';
+ }
+
+ .mobile-navbar-items {
+ display: flex;
+ flex-direction: column;
+ width: 100%;
+ background-color: #D22627;
+ text-align: center;
+ align-items: center;
+ }
+
+ .mobile-navbar-items a,
+ .mobile-navbar-items span,
+ .mobile-navbar-items input,
+ .mobile-navbar-items button {
+ display: block;
+ padding: 10px;
+ border-bottom: 1px solid #FFFFFF;
+ text-align: center;
+ width: 80vw;
+ box-sizing: border-box;
+ margin: 0;
+ }
+
+ .mobile-navbar-items a:hover,
+ .mobile-navbar-items button:hover {
+ background-color: #3e8e41;
+ }
+
+ .mobile-navbar-items button {
+ text-align: center;
+ width: 80vw;
+ margin: 0 auto;
+ display: block;
+ }
+
+ input[type="checkbox"] {
+ display: none;
+ }
+
+ input[type="checkbox"]:checked ~ .mobile-navbar-items {
+ display: block;
+ }
+}
+
+@media screen and (min-width: 1280px) {
+ .container {
+ width: 100%;
+ min-width: 300px;
+ }
+
+ .sidebar, .sidebar-right {
+ width: 20%;
+ min-width: 200px;
+ max-width: 250px;
+ }
+
+ .content {
+ width: 60%;
+ flex-grow: 1;
+ }
+
+ .mobile-navbar, .mobile-navbar-panel, .mobile-navbar-menu {
+ display: none;
+ }
+}
+
+.breadcrumbs {
+ margin-bottom: 10px;
+ padding: 10px;
+ border: 1px solid #D22627;
+ background-color: #FFFFFF;
+}
+
+.sidebar a.active, .sidebar-right a.active {
+ text-decoration: underline;
+} \ No newline at end of file
diff --git a/website2/public/assets/img/.DS_Store b/website2/public/assets/img/.DS_Store
new file mode 100644
index 0000000..f77b18d
--- /dev/null
+++ b/website2/public/assets/img/.DS_Store
Binary files differ
diff --git a/website2/public/assets/img/code-is-ass.jpeg b/website2/public/assets/img/code-is-ass.jpeg
new file mode 100644
index 0000000..c35aa9e
--- /dev/null
+++ b/website2/public/assets/img/code-is-ass.jpeg
Binary files differ
diff --git a/website2/public/assets/img/dialon.png b/website2/public/assets/img/dialon.png
new file mode 100644
index 0000000..6ceef81
--- /dev/null
+++ b/website2/public/assets/img/dialon.png
Binary files differ
diff --git a/website2/public/assets/img/force.png b/website2/public/assets/img/force.png
new file mode 100644
index 0000000..fa2c8c6
--- /dev/null
+++ b/website2/public/assets/img/force.png
Binary files differ
diff --git a/website2/public/assets/img/fuck-main.jpeg b/website2/public/assets/img/fuck-main.jpeg
new file mode 100644
index 0000000..3acbd91
--- /dev/null
+++ b/website2/public/assets/img/fuck-main.jpeg
Binary files differ
diff --git a/website2/public/assets/img/fuckjs.jpeg b/website2/public/assets/img/fuckjs.jpeg
new file mode 100644
index 0000000..06f8a6d
--- /dev/null
+++ b/website2/public/assets/img/fuckjs.jpeg
Binary files differ
diff --git a/website2/public/assets/img/jsmomentom.jpg b/website2/public/assets/img/jsmomentom.jpg
new file mode 100644
index 0000000..166d5ba
--- /dev/null
+++ b/website2/public/assets/img/jsmomentom.jpg
Binary files differ
diff --git a/website2/public/assets/img/router1.jpg b/website2/public/assets/img/router1.jpg
new file mode 100644
index 0000000..92f7e91
--- /dev/null
+++ b/website2/public/assets/img/router1.jpg
Binary files differ
diff --git a/website2/public/assets/img/router2.jpg b/website2/public/assets/img/router2.jpg
new file mode 100644
index 0000000..1ec6527
--- /dev/null
+++ b/website2/public/assets/img/router2.jpg
Binary files differ
diff --git a/website2/public/assets/img/rover.png b/website2/public/assets/img/rover.png
new file mode 100644
index 0000000..de95293
--- /dev/null
+++ b/website2/public/assets/img/rover.png
Binary files differ
diff --git a/website2/public/assets/img/ssc.jpg b/website2/public/assets/img/ssc.jpg
new file mode 100644
index 0000000..d7509e2
--- /dev/null
+++ b/website2/public/assets/img/ssc.jpg
Binary files differ
diff --git a/website2/public/assets/img/wrong.png b/website2/public/assets/img/wrong.png
new file mode 100644
index 0000000..1a1835e
--- /dev/null
+++ b/website2/public/assets/img/wrong.png
Binary files differ
diff --git a/website2/public/assets/svg/teleco.svg b/website2/public/assets/svg/teleco.svg
new file mode 100644
index 0000000..1cbb190
--- /dev/null
+++ b/website2/public/assets/svg/teleco.svg
@@ -0,0 +1,242 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg id="Layer_1" xmlns="http://www.w3.org/2000/svg" version="1.1" viewBox="0 0 437.8 368.6">
+ <!-- Generator: Adobe Illustrator 29.1.0, SVG Export Plug-In . SVG Version: 2.1.0 Build 142) Yea i know this logo is partially made from a png will fix someday -->
+ <defs>
+ <style>
+ .st0 {
+ fill: #d22627;
+ }
+
+ .st1 {
+ fill: #010101;
+ }
+ </style>
+ </defs>
+ <g id="Layer_2">
+ <g id="Layer_2-2">
+ <path d="M85.3,28c-.6,0-1.7.3-1.8-.3.8-.4,1-1.7,1.4-2,1.2-1,3-.1,3.2-2.3,0-1,2.4-1.3,3.2-2.1,1.8-.2.5.8,0,1.1-.8.4-2.2.4-2.1,1.3,1.2,0,3-.5,3.9-1.2.1,0,1.9-1.7,2-1.8.2-.4-.3-1.1-.2-1.2.2-.2,4.9-2.3,5.3-2.4,1-.3,2.1.8,3.3.6l-.6-1.9c14.7-5.6,29.5-10.8,45-13.6,125.2-22.8,242.2,67.7,250.8,194.5,2.3,34.5-4.7,69.2-18.6,100.8-1.5,3.5-4,6.7-5.2,9.6-.9,2.3-2.3,5.6-3.6,7.6-.5.7-1.2,1.1-.8-.2v-3.5c0,0-1.9,1.2-1.9,1.2l1.9-5.5-3.1,3.1,1.3-5.5-3.4,3.7-.3-2.5-4.3,1.2,1-5.5-4.4,4.9c-2.3-2,.1-4.6.4-6.8-1.3.8-4.3,6.6-5.9,6.1-2.2-.7.6-5.9.4-7.4l-3.1,4.6c-4,4.3-4.6,1.9-4-2.8,0-.6,1-1.9-.3-1.9-.4,2.2-4.7,9-6.8,5.7-1.2-1.9-.2-2.5,0-4.2,0-.6.3-1.7-.6-1.6-.2,2.3-5.5,9.5-7.4,5.7-1.1-2.2-.1-4,0-6.4-1.6,1.3-2.3,5-3.9,6.6s-4.3,2.3-5.1-.5c-1.3-4.1,1.4-11.2,5.1-13.6,4.8-3.1,4,4.9,4,7.5,1.1-.9,1.8-5.2,4-7.2,4.6-4.4,5.4,2.4,4.7,6l2.2-4.3c1.5-1.5,2.7-3.7,5.2-3,1.2,2.3.4,3.7,0,5.9-.1.6-.4,1.7.6,1.5.7-2.2,1.9-5.1,3.8-6.4,4.5-3.1,3,3.7,2.4,6.5l2.2-3.6,3.1-3.1c2.6,1.8,1.1,3.7.9,6.2l3.7-4,1.5-.3v5.6c2.6-2.3,2.1-5.4,2.8-8.6-3.9,3.1-3.9-.4-3-3.7-1.6,1.3-5.8,7.6-6.2,2.1,0-.9.6-3.4-.6-3.4-.8,2.2-2.5,5.3-5.3,4.9-.4,0-.7-1.3-.8-1.7-.2-1.3.1-2.8-.4-3.9-1.9,2.2-5.1,8.5-7.5,3.7l-.9-4.4c-.4,3.9-6.9,9.7-8,3.3-.2-1.3.8-3.2-1.2-2.8-.4,3.5-6.1,8.7-8.2,4.1-.7-1.5-.2-2.8-.7-4.2-1.8,2-2.1,5-4.9,6.3-4.3,1.9-4.7-1.4-5.7-4.5-.2-.6-.1-1.4-.9-1.2-.1,4.4-6.2,10.5-9.6,5.4-2.2-3.4-.8-11.6,2.6-14.2.5-.4,2.7-.9,1.6-1.8-.2-.2-1.3-.3-2.2-1.2-1.1-1.2-1.3-2.7-2.4-3.8-.8,1.3-1.2,2.8-2.2,4-3.7,4.8-8.3,3.5-10.5-1.9-.9-2.2-1.5,1.3-1.8,1.9-1.4,2.9-5.4,6.1-8.6,4.6-5.5-2.6-5.5-12.4-1.5-16.2.9-.8,1.9-.2,1.5-1.8-2.9-.3-4.3-2.9-5.8-5l-1.9,4.3-3.4,3.7c10.2,1,7,20.1-2.8,17.8-5.2-1.2-5.7-10.1-3.6-14.1l4-3.7c-2.5-.1-5-1.8-6.4-3.8-.6-.9-.6-2.4-1.5-2.5-.2,7.9-8.6,13-13.9,5.4-2.9-4.2-2.1-11.4,2.3-14.5-2.8-1.5-5.6-2.7-7-5.9-1.4,1.8-1,3.6-2.5,5.6-2.4,3.1-6,4.3-9.6,2.6-3.1-1.4-3.9-4.4-5.5-7.1.3-4.7,0-7.6,3.8-11.1-3.5-.4-5.5-2.6-7.7-5-.6,1.3-.8,2.8-1.5,4.1-1.5,3.2-3.2,3.3-5.7,5.1-2.6-.2-4.7-.4-7-2-1.8-1.2-2.8-3.4-4.1-4.9.2,4.9-1.2,10-6.7,10.9-7.8,1.3-12.9-9.5-8.6-15.6,3.5-4.9,10.8-3.9,13.6,1.1.8,1.4.8,2.5,1.7,3.5,0-1.9-.7-3.2-.4-5.1.4-2.9,2-4.9,3.6-7.2-3.9-.5-6.1-3-8.6-5.6.9,10.1-11.8,13.8-16.6,5-3-5.5-1.9-10.1,2.5-14.4-4,.4-7-2.2-9.5-5l-1.1,5.1c-2.9,5.9-10.4,6.8-14.7,1.9-2.9-3.4-3.5-9.7-.8-13.2l2.8-2.5c-3.2.2-7.7-1.6-9.5-4.4-.9-1.4-.5-2.2-1.5-3.1-.2,4.7.8,7.9-3.5,11.1-8.7,6.5-17.8-6.6-11.6-14.3,3.7-4.6,9.8-4.2,13.3.4.9,1.2.8,1.9,1.8,2.8.2-4.4-.8-8.3,3.2-11.4-1.2-1.4-3.3-1-4.9-1.9s-2.6-3.2-4.3-4c1.8,10.5-12.1,15.4-16.6,5.6-2.2-4.8-1.4-9.6,3.1-12.8,5-3.5,9.2-.9,12.9,2.9-.4-3.6.7-6.6,3.2-9.2-3.2-.5-5.7-2.3-8-4.4,0,6.9-7.7,12.5-13.9,8.4-5.2-3.4-5.3-11-1.5-15.5.6-.7,1.7-.7,1.9-1.6-3.4.3-8.1-1.1-8.6-5l-1.4,4.5c-1.9,5.8-9.4,9.4-13.8,4-6.2-7.5,4-19.9,11.6-13.8,1.1.9,1.2,2.3,2.4,2.8-.6-4.1,1.8-6.7,3.8-9.8-3.4.3-5-1.8-7.4-3.8-.6,5.6-5.4,11-11.4,9.6s-5.9-10-2.2-13.8c.9-1,2.6-1.3,3.1-2.7-3.1.8-6.1.7-7.9-2.3-3.2-5.4.9-8.8,4.4-12.5-5.3.5-8.1-.7-7.3-6.5.5-3.5,2.8-4.8,5-7.1-7.4,1-8-4.6-4.2-9.6l3.1-2.7c-9.2.8-6.2-7.1-1.1-10.8-1.6-.8-4,.6-4.3-1.9-.5-3.8,2.2-6.1,5-8-.4-.9-1.5.2-2.2.3-2.9,0-2.6-2.5-1.4-4.5.9-1.6,2.9-2.6,4.3-3.8-1.1-.7-2.8.3-3.7-1.3.9-2.7,2.9-4.4,5.6-5.2,0-1.6-3.5.5-3.1-1.6.4-1.9,2.5-2.5,3.7-3.7-.7-.9-.8-1.1-1.9-.7-.5.2-4.6,3-5.4,3.5-.2.1,0,.4-.1.5.6,0,3.2-.4,2.5.9-1.1,2.2-5.1,4-7.2,5.2-2-1.3.4-3,1.6-3.9,1-.8,2.2-1.5,3.1-2.2h0ZM97.6,23.2c.2-1.2.9-.4,2.1-.7,1.4-.4.8-3,.1-3-1,1.6-2.1,2.7-4,3-.2,1.1,1.1.6,1.8.6-.2,1.1,0,2-1,3.1l-3.4,2.5h2.7l.7,1.3c1.6-1.1,1.8-3.6,4.1-3.7v-.6c-2.2.2-1.5-1.9-1.9-2.5-.1-.2-.8,0-1.2,0h0s0,0,0,0ZM123,23.4c-2-.3-4.2,0-4.3,2.4,2.8.5,3.1-.1,4.3-2.4ZM109.2,30.7l1.9-2.7-3-1.6c-.1,1.7-1.9,2.3-2.6,3.7l3.6.6h0ZM123.4,33.3c0,0,.4-1,.7-1.5.4-.7.9-1.2-.3-1.5-1.9-.5-2.9,1-4,2.1.7.4,3.2,1.2,3.6.9h0ZM100,31.9l-3.7-1.3-.6,1.5-3.8,3.3c2-.2,3.4-.1,4.9,1.3,0-2.2,2.1-3.2,3.1-4.9h0ZM112.3,35.1l-3.7-1.3c-.1,2-2.4,2.6-3.1,4.3l4.3.6,2.6-3.7h0ZM137,36.5c.9.4,4.4.7,4.3-.9s-4.1-1.1-4.3.9ZM100.6,39.3c-1.6,0-3,.2-4-1.3l-4.7,5.5c2.2-.5,3.2.9,4.9,1.3.1-2.5,2.6-3.6,3.8-5.5h0ZM124.3,38.4l-2.2,2.7,2.8,1.5,2.2-2.7s-2.8-1.5-2.8-1.5ZM113.5,43.7l-3.3-.6-2.9,3.3c0,.7,3.9,2,4.3,1.6l1.9-4.3h0ZM142.3,44.7c-.9.3-2.3,1.9-.7,2.4,1.1.3,3.4-.7,3.4-1.5s-1.8-1.1-2.7-.9h0ZM100.5,49.1l-4.3-1.9c-.2,3-3.3,4.1-5,6.1,2.5-.7,4.1-.4,6.2,1.3.3-2.2,1.9-3.8,3.1-5.5h0ZM130.1,49.4l-3.3-.6-2.3,3c1.4.3,2.8,1,4.2.6l1.3-3h0ZM115.9,54.2c-1.7.2-2.9-.5-4.3-1.3l-3.1,4.9c1.9-.2,3.3.3,4.9,1.3-.5-1.3,3.2-4.3,2.5-4.9ZM149.2,56.4c-4.5-2.4-5.8,3.6-1.6,2.4.8-.2,1.3-1.7,1.6-2.4ZM101.6,59.6c-2.5.7-3-1.8-4.9-1.9.9,1.6-4.1,5.9-3.8,6.1,2.1-.1,3.9.7,5.5,1.9l.5-1.7,2.6-4.5h0ZM133.7,61.2c-1.3,0-2.4-.4-3.4-1.2l-2.8,3.6,4.3,1.3s1.9-3.7,1.9-3.7ZM170.1,64.6l-2.5-.6-.6,2.5c2.1.8,3.3.9,3.1-1.8h0ZM115.7,71.5c.2-1.8,1.6-3.1,2.5-4.6l-4-2.2-3.4,4.9,4.9,1.9h0ZM153.4,69.4l-3.1-1.3-1.3,2.8,2.8,1.5c.6,0,1.9-2.7,1.6-3ZM104,72c-2.3,0-3.9-1.1-5.5-2.5.2,3.2-2.9,4.4-4.4,6.8,2.6-.2,4.3.9,6.2,2.5.3-2.7,2.2-4.7,3.8-6.8h0ZM137.3,74.2c-1.1.5-3-1.2-3.4-1.2s-3.2,3.9-2.8,4.2l4,1.2c.6,0,2.5-3.9,2.2-4.2h0ZM121.8,79.6c-1.9,0-3.5-.8-4.9-1.9-.1,2.5-2.6,3.6-3.8,5.5l6.2,1.9c-.4-2.5,2.2-3.4,2.5-5.5h0ZM174.9,81.9l1.3-2.2-2.8-1.5-1.5,2.4,3.1,1.3h0ZM158.8,83.6c-2.8-.6-4.2-1.4-4.9,2.1l2.8,1.5,2.2-3.6s0,0,0,0ZM106.9,85.6c-2.2,0-4.1-1.2-5.8-2.5l-1.9,3.7-4,3.7c3.4-.3,5.6,0,8,2.6-.3-3.1,2-5.2,3.8-7.4h0ZM142.1,89c-1.5-.2-3-.7-4-1.9l-2.8,4.9,4.9,1.3,1.9-4.3h0ZM126,94.4c-2,0-3.5-1.1-5.2-1.9-1.5,1.8-2.1,3.8-4.1,5.2.8,1.2,2.3.9,3.5,1.4,1,.4,1.4,1.6,2.6,1.4l3.2-6.1h0ZM181.5,95c-2.6-1-3.3-.9-4.3,1.8l2.8,1.2,1.6-3h0ZM110.5,100.5c-2.8.1-4.8-1-6.4-3.1-1.3,1.3-1,3.4-2.6,4.9l-4,3.7c3.9-1.2,6.8.1,9.2,3.2-.4-3.6,1.7-6,3.8-8.6h0ZM164.2,99.7l-4.3-1.3-1.3,3.7,4.3,1.3,1.3-3.7ZM146.9,105.1l-4.9-1.9c.3,1.1-2.8,4.7-2.5,4.9l5.5,1.9s1.9-4.9,1.9-4.9ZM204.8,110.6c.9-1.9.6-3.5-1.8-3.7-1,2.4-.5,2.8,1.8,3.7ZM130.1,110.5c-2,0-3.9-1.1-5.2-2.5-1.1.8-1,2.2-1.7,3.3-.8,1.3-2.4,2-3,3.4,3.1-.4,5.2,1.4,7.4,3.2-.7-1.7,3.3-6.8,2.5-7.4h0ZM184.8,111.1l-2.2,2.7,3.4,2.2,1.5-3.3c-.1-.6-2.1-1.7-2.7-1.6h0ZM170.2,117.1l-4-1.9-2.8,3.9,4.9,2.8,1.9-4.9h0ZM152.9,122.5c-2.2.2-3.6-1.7-5.5-2.5-.1,2.4-2.7,3.8-2.5,6.2,2.2,0,3.8,1.4,5.5,2.5,0-2.3,1.7-4.1,2.5-6.2h0ZM230,125.1c1.1-2.7-1.3-4.2-3.1-1.6l3.1,1.6ZM135.5,127.9c-2.6,0-4.3-1.2-5.8-3.1-1.3,1-1.1,2.9-1.9,4.3s-2.8,2.1-3.4,3.7h3.3c0,.1,5.3,3.2,5.3,3.2-.6-3.3,1.9-5.3,2.6-8h0ZM209.1,125.5l-1.3,2.1,2.8,2.2c2.4-2,1.7-4.4-1.5-4.3h0ZM194.1,130.9c-1.4,0-2.5-.9-3.4-1.9l-2.2,4.3,4.3,1.9,1.3-4.3h0ZM176.2,135.7l-4.9-2.5c.2,2.2-1.7,3.6-2.5,5.5,2.1.2,3.7,1.6,5.5,2.5l1.9-5.5ZM251.5,140.1l2.1,1.3c1.8-1.3.8-2.6-.6-3.7l-1.6,2.4h0ZM158.9,141c-2.4-.2-4.2-1.9-6.1-3.1-.3,2.6-2,4.6-3.2,6.8,1.1.2,2.5.6,3.5,1.1,1.2.7,1.8,2.1,3.2,2-.4-2.8,2-4.5,2.5-6.8h0ZM236.6,141.8l-3.1-.6c-1.2,2.5-.1,3.3,2.4,3.7l.6-3.1h0ZM218.7,146l-3.7-1.9c0,1.5-1.2,2.5-1.9,3.7l4.3,1.9,1.3-3.7h0ZM200.7,150.1l-4.9-1.9c.1,1.6-1.1,2.8-1.9,4l4.9,2.8,1.9-4.9h0ZM174.1,158.5c2.3,0,4.4,1.4,5.8,3.1l2.8-5.8-5.5-3.4c-.2,2.4-1.9,4.2-3.1,6.1h0ZM277.2,158.2c-.2-.8.7-1.5.6-2.1-.2-.9-2.1-1.3-2.4-1,0,0-.5,1.6-.4,1.9.3.5,1.8,1.7,2.2,1.2h0ZM259.3,161.8l1.2-2.8-3-1.6c-1,2.2-.2,3.1,1.8,4.3h0ZM165.5,160.2c-2.5,0-4.7-1.5-6.4-3.1l-4.1,7.4c2.9.2,5.3,1.5,7.1,3.8,1.3-.9.8-2.4,1.2-3.7.4-1.1,2.7-3.8,2.2-4.3h0ZM242.6,161.6c-1.4-.2-2.1-1.7-3.7-1.3l-1.2,2.8,3.6,2.2,1.3-3.7h0ZM223.4,170.1c-.4-1.3,1.4-3.2,1.3-3.9-.1-.6-3.7-2.9-4.2-2.2l-1.9,3.3c.6.6,4.4,3.4,4.9,2.8h0ZM206.7,169.9c-2.1,0-2.9-2.4-4.9-2.5l-2.5,5.5,5.5,2.5c.2-2,2.2-3.4,1.9-5.5h0ZM189.4,174.7c-1.6.8-6.1-3.8-6.8-3.2.4,2.8-1.9,4.6-3.2,6.8,3,0,5.2,2.1,7.4,3.8,0-1.8.6-3.6,1.4-5.1.4-.8,1.4-1.1,1.2-2.2h0ZM298,176.3c.7-1.9.8-2.4-.9-3.7-1.9,1.6-1.8,3.4.9,3.7ZM280.4,174.3c-1.9,1.6-2.1,3.6.6,4.3,2.2-2,1.4-2.6-.6-4.3ZM172.1,180.1c-1.3-.3-2.8-.7-3.9-1.4-.8-.5-3.4-3.8-4.1-3,.2,2.3-.9,5.4-2.5,7.1-.8.8-1.9.6-1.9,1.5,4,.3,6.8,2,9.2,5,0-1.7.3-4,1-5.6s2.2-2.1,2.2-3.7h0ZM264,182.2l1.2-3.3-3-2.2-1.9,3.7,3.7,1.9h0ZM241.8,183.8c1.5.2,2.9,1.5,4,2.5l2.1-3.9-3.3-2.9-2.8,4.3h0ZM230.6,185.6c-1.6.4-3.7-2.8-4.6-2.5l-2.8,4.6,4.6,3.4c1-.8,1.1-2.1,1.7-3.3.4-.8,1.5-1.1,1.2-2.2h0ZM210.8,196.5c-.2-2.2,1-4.3,2.5-5.8-.8-1-2.1-1.2-3-1.9-1-.8-1.6-2.3-3.1-2.2-.2,2.4-1.9,4.2-3.1,6.1,1.1.1,2.4.7,3.3,1.4,1.2.8,1.9,2.5,3.5,2.4h0ZM196,194.5c-3.1-.3-5.1-2.6-7.4-4.4,0,3.3-1.6,6-4.4,7.7,1.2,1.4,3.3,1,4.9,1.9,1.4.8,2.2,2.7,3.7,3.4,0-3.3,1.5-6,3.2-8.6h0ZM300.9,197.3l1.1-2.8-2-2.2c-2.7,1.9-1.5,3.5.9,4.9h0ZM283,194.1c-1.5,2.8-1.9,4.1,1.5,5.6,2.6-2.2,1.6-4.9-1.5-5.6ZM268.1,203.2c-.1-1.6,1.1-2.8,1.9-4-.7-.4-3.8-3.4-4.3-2.8,0,1.8-1.9,2.7-1.9,4.3,1.9,0,2.4,2.6,4.3,2.5h0ZM248.4,198.7l-2.5,5.2,4,3.4,2.8-5.2-4.3-3.5h0ZM236,205.4c-2.1-.4-3.9-1.6-5.2-3.1-1.1.8-1,2.2-1.6,3.3s-2,1.5-1.8,2.8c2.2.5,3.9,1.3,4.9,3.4,1,2.2,1.5-1.6,1.9-2.4.6-1.4,1.9-2.4,1.9-4h0ZM219.3,209.5c-2.6-.4-4.7-1.9-6.4-3.8-1.6,2.7-2.4,5.2-4.7,7.4,3.7.1,5.8,2.5,8,5-.4-3.3,1.6-5.9,3.2-8.6h0ZM329.2,210l-1.1,2.1,2,2.8c2-1.3,1.9-4.7-.9-4.9ZM317.4,216c1-2.6,1.6-3.5-.9-5.6-1.6,2.1-3.3,2.9-.7,4.9.5.4.6.9,1.5.6h0ZM302.6,218.3l1.9-3.9-3-2.9c0,1.4-.9,2.4-1.8,3.4l3,3.4h0ZM283.4,218.1c1.5,0,2.3,1.6,3.4,2.5l2.8-4-3.3-3.4c-.3,0-3.1,4.6-2.8,4.9h0ZM271,224.2l2.5-5.2-4-3.4c-1.4,1.4-1.7,3.4-3.4,4.6l4.9,4.1h0ZM257.5,221.6c-2.5,0-3.3-2.9-5.5-3.1.4,1.4-3.9,5.6-3.1,6.1,2.4-.2,3.5,2.4,5.2,3.8l3.4-5.9v-.9h0,0ZM241.4,225.2c-2.9-.4-4.6-2.8-6.8-4.4.2,2.9-1.9,5.1-3.8,7.1,1.1,1.3,3.1,1.5,4.3,2.5,1.1.9,1.2,2.3,2.4,2.8.5-3.2,2.1-5.4,3.8-8h0ZM341.3,234.1c2.8-1.6,1.3-3.3.7-5.5-3.1,1.7-.9,3.1-.7,5.5ZM351.2,234.9c2.8-2,2.5-3.3,1.3-6.2l-2.4,2.8,1.1,3.3h0ZM330.2,235.9c-.6-1.7,2.1-2.9,1.9-3.9l-2.1-2.9-2.8,3.4c.4.6,1.1.9,1.5,1.6.6,1-.3,2.2,1.5,1.8h0ZM317,229.6c-.5.9-2.9,3.2-2.8,3.9l2.7,3.5,2.7-4-2.6-3.4ZM303.6,239.3l2.5-5.2-3.6-3.5c.4,1.7-2.7,3.6-2.5,4.6l3.6,4.1h0ZM288.7,242.3c0-2.4,1.8-4.1,3.1-5.8l-3.9-4-3.5,5.2,2.1,1.6,2.2,3.1h0ZM273.3,245.2c.2-2.6,1.9-4.3,3.1-6.4l-4.9-4.7c.4,3.2-3.4,4.2-3.8,6.7,2.8.1,3.7,2.9,5.5,4.4h0ZM386.9,242.6c1.2-2.2,1.4-3,.7-5.5-.9-.1-1.1,1.6-1.2,2.2,0,.7-.6,3.4.5,3.4h0ZM261.6,241.4c-2.6-.3-4-2.8-5.8-4.4-1.1,1-1.1,2.4-1.9,3.7-.9,1.3-2.7,2.2-3.4,3.7,1.9-.3,3.1.9,4.6,1.9l2.7,3.8c-.3-3.6,1.5-6.1,3.8-8.6h0ZM339.2,255.7c-.2-1.5,2.4-3.7,2.4-4.6,0-.2-1.7-3.9-2-4-.7,1.6-1.5,2.9-2.8,4.1l2.4,4.6h0ZM328.1,256.2c1.4-3.9,4.5-4.6.4-8.6l-3.4,4,3,4.7ZM350.4,247.8c-.6-.8-2.9,2.3-3,2.9-.4,1.2,1.1,3.1,1.1,4.5l3-4.1-1.1-3.3h0ZM357.7,255.9c0-1.5,2.2-3.1,2.4-4.1.2-.9-1.2-2.8-1.1-3.9l-2.2,2.4-.3.9,1.2,4.6h0ZM316.4,257.4c-.4-1.9,2.9-3.8,3.1-4.7.2-.9-2.8-2.9-2.4-4.6l-4.4,4.6c1.7,1.3,2,2.4,2.4,4.3.2.7.7.4,1.2.4h0ZM365.8,256c1.6-2.9,2.1-4,1.3-7.4l-2.2,2.4c-.6,1-.4,2.2-.2,3.3,0,.5.3,1.9,1.1,1.7h0ZM303.4,259.7l3.1-6.4-3.3-4.1c-1,.8-1.2,2.1-1.9,3-.8,1.1-2.4,1.7-2.2,3.1,2.7,0,2.4,3.4,4.3,4.4h0ZM373.2,249.9c-.7,2.2-3.5,4.5-1,6.8l2.1-2.8-1.1-3.9h0ZM288.5,262.6c.9,0,1-.9,1.3-1.5,1-2.2,1.6-4,3.7-5.5,0-.4-4.8-2.9-4.3-4.7-2.1,1.2-2.3,5.2-5,5.5v1.2c2.7.2,3.8,2.6,4.3,5h0ZM383.7,255.5c-2.9,0-1.7,3.6-1.9,5.5l2.4-2.9-.5-2.7h0ZM389.3,263.5c-.6-.8.6-3-.7-3l-1.3,6.2,1.6-1.8,1.5.6c.6-2.2-.8-1.6-1.1-2h0ZM335.3,276.1c.4-2.5,2.1-4.2,3.7-5.9l-1.8-5.2-2.8,4.3-1.5.6,1.1,1.7,1.3,4.5h0ZM344.6,275.5c-.4-1.6,3.6-5.4,3.6-5.8s-1.9-3.2-1.1-4.6c-.8.5-4.2,4.3-4.3,4.7-.2.7.9,1.7,1,2.5.2,1-.5,3.2.7,3.3h0ZM329.2,271v-.9l-3-4.7c.2,1.8-3.5,4.5-3.7,5.3-.2.7,1.4,2,1.7,3.1.2.8,0,2.5,0,2.7.9,1.1,1.1-.2,1.3-.9.5-1.7,1.9-4.5,3.7-4.7h0,0ZM356.4,270.7l-1.2-5-3.5,3.7c-.3.4.2,4.9,1.2,5.6.9-.6.7-.4,1.7-.9,1.1-1,1.2-1,1.8-3.4h0ZM313.7,278.9c.8-3.1,2.6-5.6,5-7.7-1.5-1.5-3.2-2.9-3-5.3-1.7,1.3-2,3.1-3.7,4.6-.8.7-1.7.8-1.9.9-1.1.9,1,1.4,1.5,1.8.5.4.8.9,1,1.5l1,4.2h0ZM366.8,276.4c-.1-1.6,2.1-2.4,2.4-3.5.5-1.6,0-4,.1-5.8l-2.2,3.1-1.6,1,1.2,5.2h0ZM362.7,266.9c-.9.7-3,2.5-3.9,3.2-.2.2,1.2,4.3.5,5.5.9-1.2,3.5-3.2,4.1-4.3M371.7,278.3l3-4.7-.5-3.9c-2.7,2.2-3.2,3.7-3.1,7.1,0,.7-.4,1.7.6,1.5h0ZM380.4,275.3l-1.2.3-.3-.3-.9-3.4c-2.5,2.7-2.9,4.6-2.5,8.3l2.5-3.4c1,.4,3.5-.4,2.5-1.5h0,0ZM382.2,280.8l-.6-3.1-.7,6.8,1.9-1.8.6,2.5,1.9-6.1-3.1,1.8h0ZM372.2,291.8v-3.7s-4,3-4,3c-.5.6.4,2.1.3,3.4-.1,1.4-1.3,2.6-1.3,4l3.4-4.3.9,3.7c4-1.4,3.4-5.7,4.4-9.2-1.6.6-1.6,3.3-3.7,3h0s0,0,0,0ZM377.2,295.6l-.6-1.2c-.4,2.6-2.4,4.3-3.8,6.5.1,2.5,1.8-2,2.5-1.5l-.6,3.7.7-1.1c2.6,1.6,3.4-6.6,3.1-6.9l-1.2.6h0Z"/>
+ <path class="st1" d="M222.9,241.7c-.2,3.4.6,5.6-1.6,8.6-6.1,8.3-17.5-.7-13.8-10.9.9-2.4,2.4-3.2,4.4-4.6,2.9.3,4.3-.4,7,1.4,1.9,1.3,2.9,3.5,4.1,5.5h0Z"/>
+ <path class="st1" d="M167.5,206.1c8.4-1.2,13.7,12,6.5,17.2-2.3,1.7-6.6,1.8-8.9.2-6.8-4.7-6.4-16.1,2.4-17.4h0Z"/>
+ <path class="st1" d="M142.3,192.9c7.5-1.6,13.1,6.6,10.4,13.1-4,9.8-18.2,3.9-15.7-7.3.4-2,3.3-5.4,5.3-5.8Z"/>
+ <path class="st1" d="M108.9,141.4c8.9-1.3,12.4,13.8,3.2,17.7-11.6,4.9-15.2-15.9-3.2-17.7Z"/>
+ <path class="st1" d="M114.3,160.5c8.3-1.2,12.2,12.1,4.9,16.9-2.5,1.6-7,1.4-9.2-.7-5.1-5-3.1-15.1,4.3-16.2h0Z"/>
+ <path class="st1" d="M119,180.3c6.9-1.5,10.7,4.5,10,10.8-.2,2.1-1.8,3.9-3.5,5.2-6,4.3-12.8-2.6-11.9-9,.3-2.6,2.7-6.4,5.4-7h0Z"/>
+ <path class="st1" d="M233.8,249.9c5.9-1.3,10.1,5.3,9.3,10.8-.9,6.9-8.9,10-13.2,3.9-1.7-2.5-2.1-7.1-1.2-9.9.5-1.4,3.6-4.4,5.1-4.7h0Z"/>
+ <path class="st1" d="M172.9,226.5c9.8-2.1,14.1,12.1,6.7,16.1-7.4,4-14.6-6-10.7-12.8.6-1.1,2.8-3,4.1-3.3h0Z"/>
+ <path class="st1" d="M150.2,212.7c8-1.2,12.7,10.6,6.8,15.7-6.8,5.9-16.3-4.9-11.9-12.1.9-1.5,3.3-3.3,5.1-3.6h0Z"/>
+ <path class="st1" d="M196.2,240.3c10.2-2.1,13.7,15.4,3.9,17.1-9.7,1.6-13.3-15.1-3.9-17.1h0Z"/>
+ <path class="st1" d="M217.7,254.7c7.8-1.7,12.8,10.4,6.5,15.4-7.4,5.8-16.7-7.5-8.8-14,.7-.6,1.4-1.2,2.3-1.4h0Z"/>
+ <path class="st1" d="M122.8,202c4.7-4.6,11.7-.5,12.6,5.3,1,6.1-4.9,11.5-10.7,8-4.2-2.6-5.5-9.8-1.9-13.3h0Z"/>
+ <path class="st1" d="M92.1,149.2c5.1-1.1,8.8,4.8,8,9.4-.5,2.7-2.9,6.7-5.8,7.2-10.3,1.7-11-14.7-2.2-16.6Z"/>
+ <path class="st1" d="M252.7,265.6c8.2-1.8,11,11.3,4.9,15.6s-11.2-2.5-10.4-8.7c.4-2.6,2.7-6.4,5.4-7h0Z"/>
+ <path class="st1" d="M88,131.3c6.3-1,8.8,5.9,6.6,11-1.8,4.1-6.3,7.1-10.4,4.1-5.4-3.8-2.5-14.1,3.9-15.2h0Z"/>
+ <path class="st1" d="M97.5,168.4c2.9-.6,5.8,1.4,7.1,3.8,3.3,6.5-2.3,15.5-9.3,11.6-5.5-3.1-4.3-14.1,2.3-15.4h0Z"/>
+ <path class="st1" d="M157.4,232.5c8.9-1.2,12.2,15.2,2.7,16-8.4.7-12-14.7-2.7-16Z"/>
+ <path class="st1" d="M179.5,246.3c7.6-1.6,12.2,7.8,8.1,13.2-1.7,2.2-3.2,2.4-5.9,2.1-7.3-.8-9-13.9-2.2-15.4h0Z"/>
+ <path class="st1" d="M88.7,127.9c-.9.8-4.4,2.6-5.6,2.5-8.1-.8-6.3-14.1,1.4-15.8,7.6-1.6,9,8.9,4.2,13.3Z"/>
+ <path class="st1" d="M132.8,220c7.9-1.7,12.9,9.6,6.5,14.1-2.6,1.9-5.1,1.5-7.7-.4-4.2-3.2-4.2-12.6,1.1-13.7h0Z"/>
+ <path class="st1" d="M237.9,269.7c7.5-1.6,11.1,10.5,4.4,15-1.6,1-2.5,1.2-4.3.6-6.6-2-7.3-14.1,0-15.6h0Z"/>
+ <path class="st1" d="M201.6,260.1c9.9-2.1,12.3,13.6,4.6,15.2-9,2-11.9-13.7-4.6-15.2Z"/>
+ <path class="st1" d="M102.9,188.2c9.5-2.1,11.8,13.5,3.9,15.2-9.5,2.1-11.3-13.6-3.9-15.2Z"/>
+ <path class="st1" d="M296.5,275.9c4.6-1,6.7,3.7,6.3,7.7s-3.9,10.9-8.8,9.2c-5.4-1.9-3.5-15.5,2.5-16.9h0Z"/>
+ <path class="st1" d="M283.5,278.2c5-1,6.8,4.9,6.2,8.9-1.2,8.3-11.2,11.4-12.3,1.7-.4-3.7,2.1-9.8,6.1-10.6h0Z"/>
+ <path class="st1" d="M81.5,99.1c9.9-2.1,8.5,11.9.7,14.4-6.7,2.2-9.2-5.2-5.8-10.3.8-1.2,3.7-3.9,5.1-4.2Z"/>
+ <path class="st1" d="M274.2,282.5c.8.8,1.9,3.9,2,5.1.4,8-8.5,14-11.7,5.3-1.5-4.2.5-10.7,5.3-11.7,1.1-.2,3.5.6,4.3,1.3h0Z"/>
+ <path class="st1" d="M222.4,274.5c8.1-1.8,11,10.3,5,13.8-8.1,4.7-13.3-12-5-13.8Z"/>
+ <path class="st1" d="M109.5,208c8-1.7,12,9,5.6,13.2-8.2,5.4-13.4-11.5-5.6-13.2h0Z"/>
+ <path class="st1" d="M76,157.7c1.6-.3,3.9-.2,5.1.9,4.3,3.9,1.9,13.9-4.1,13.8-7.3,0-7.2-13.3-1-14.7h0Z"/>
+ <path class="st1" d="M164,252.3c1.4-.3,3.3.1,4.5.9,7.4,4.5,3.4,17.7-5.2,11.9-4.6-3.1-4.9-11.6.8-12.8Z"/>
+ <path class="st1" d="M186.7,265.5c8.1-1.6,11.6,12.9,3.3,14-7.5,1-10.7-12.5-3.3-14Z"/>
+ <path class="st1" d="M260,286c3.2,3,2.5,11.7-1.8,13.1-6.4,2.1-8.1-4.2-7.3-9.3.6-4,5.9-6.8,9.1-3.8Z"/>
+ <path class="st1" d="M81.1,84.9c6-.9,6.2,5.9,3.4,9.8-1.4,2-4.8,4.5-7.3,4.2-7.5-.9-3-12.9,3.8-13.9h0Z"/>
+ <path class="st1" d="M71.8,139.8c10.3-2.2,8.1,14.6-.3,14.1-6.5-.4-5.5-12.9.3-14.1Z"/>
+ <path class="st1" d="M140.6,239.8c9-1.9,11.9,14.3,2.2,13.5-6.7-.5-8.6-12.1-2.2-13.5Z"/>
+ <path class="st1" d="M69.6,122.4c8.9-1.8,6.8,15.3-2.1,14.1-7-1-3.6-12.9,2.1-14.1Z"/>
+ <path class="st1" d="M81.4,176.9c9.6-2.1,9.1,15.9.5,14-6.1-1.4-6.2-12.7-.5-14Z"/>
+ <path class="st1" d="M207.5,279.3c6.8-1.5,10.4,8.8,5.3,12.3-7.4,5.2-13.1-10.6-5.3-12.3Z"/>
+ <path class="st1" d="M118.4,227.4c8.7,0,8.5,15,.6,13.2-7-1.6-7.1-13.2-.6-13.2Z"/>
+ <path class="st1" d="M85.7,208.1c-2.7-2.6-2.8-9.2.6-11.2,6.7-4,11.8,7.6,6,11.7-1.9,1.4-5,1-6.6-.5h0Z"/>
+ <path class="st1" d="M246.3,301c-.1.2-1.9,1.2-2.1,1.2-8.6,2.2-9.4-13.6-1.6-13.5,5.6,0,6.8,9,3.7,12.3h0Z"/>
+ <path class="st1" d="M71.6,107.7c.4.5,1.4,3.1,1.4,3.9,0,2.2-2.1,6.1-3.8,7.3-7.5,5.4-11-5.7-3.9-10.8,1.6-1.2,4.9-1.9,6.4-.4h0Z"/>
+ <path class="st1" d="M295,295c8.9-1.9,5.1,15.7-2.1,14.7-4.8-.7-3.2-13.5,2.1-14.7Z"/>
+ <path class="st1" d="M302.6,307.8c-.2-.2-1.2-3.2-1.3-3.9-.3-3.6,2.7-12.1,7.1-11.3,5.4,1,2.4,14.4-3.1,15.3-.6,0-2.4.2-2.7,0h0Z"/>
+ <path class="st1" d="M283.3,297.3c.6-.1,1-.1,1.6,0,6.3,1.5,2.7,15-3.7,14.1-5-.7-4.3-12.7,2.1-14.1Z"/>
+ <path class="st1" d="M73.3,84c-1.3-1.3-.6-4.6,0-6.2,2.5-5.7,12.7-8.7,11.6-.7-.6,4.1-8.3,10.3-11.7,6.9h0Z"/>
+ <path class="st1" d="M317.9,291.5c3-.6,4.1,2.6,3.8,5.1-.4,3.7-3.5,11.7-8.3,10.1-3.8-1.3-.4-14.1,4.5-15.2h0Z"/>
+ <path class="st1" d="M270.3,300.3c5.7-1.2,6.4,7.5,3.2,11.4-5.1,6.1-10.1-2.5-6.6-8.6.6-1,2.3-2.5,3.5-2.7h0Z"/>
+ <path class="st1" d="M148.5,259c7.2-1.5,10.6,10.8,3.9,12.2-6.6,1.4-10.2-10.9-3.9-12.2Z"/>
+ <path class="st1" d="M171.8,271.5c6.5-1.3,10,10.9,3.3,12.2s-10.8-10.7-3.3-12.2Z"/>
+ <path class="st1" d="M67.9,92.3c4.3.1,3.7,5.4,2.2,8.2s-6.5,6.6-9.1,3.2c-2.9-4,2.5-11.5,6.9-11.4Z"/>
+ <path class="st1" d="M225,294.3c.3-.3,2.8-1.3,3.3-1.3,6.3,0,7.7,11.7,1,12.9-1.9.4-5.2-2.9-5.6-4.7s0-5.6,1.3-6.8h0Z"/>
+ <path class="st1" d="M99.5,217.2c5.9,6.2-2.2,15.7-7.2,8-4.1-6.4,2.7-12.6,7.2-8Z"/>
+ <path class="st1" d="M192.7,284.7c5.4-1.5,9.9,6.3,6.3,10.2-4.2,4.6-10.7-2.1-8.9-7.2.3-.9,1.8-2.7,2.6-2.9Z"/>
+ <path class="st1" d="M257.3,303.2c5.5-1.2,7.2,8.8,2.5,11.9-7.2,4.8-9.2-10.5-2.5-11.9Z"/>
+ <path class="st1" d="M125.1,247c3.9-1.1,8,3.4,7.6,7-.8,6.8-9.6,5.3-10.5-1.3-.3-2.1.7-5.1,2.9-5.7h0Z"/>
+ <path class="st1" d="M57.6,148.3c8.9-1.9,5.8,14.3-1.2,11.9-4.7-1.6-3.3-11,1.2-11.9Z"/>
+ <path class="st1" d="M61.7,166.2c7.4-1.5,6.8,11.5,1.6,12.3-6.9,1-6.6-11.2-1.6-12.3Z"/>
+ <path class="st1" d="M73.4,71.6c-3.7-3.7,5.7-13.5,9.6-10.3,3,2.5-.4,7.8-3.1,9.4-1.6.9-5,2.4-6.5.9Z"/>
+ <path class="st1" d="M51.8,142.4c-.5-.5-1.3-3.1-1.4-3.9-.2-4.8,5.9-10.9,8.7-6,3.2,5.6-3.8,13.5-7.3,9.9Z"/>
+ <path class="st1" d="M66.5,185.4c6.8-2,8.4,10.3,2.8,11.5-7.3,1.6-7.1-10.3-2.8-11.5Z"/>
+ <path class="st1" d="M212.9,297.9c7.6-2.2,9.6,12.2,1.7,11-5-.7-6.1-9.7-1.7-11Z"/>
+ <path class="st1" d="M67.5,79.2c1.8-.1,3.4,2.1,3.2,3.8-.5,3.7-5.4,9.5-9.2,7.5s1.2-10.9,6.1-11.2h0Z"/>
+ <path class="st1" d="M102.4,235.1c6.5-1.3,8.8,9.8,3.3,10.9-6.6,1.3-8.7-9.8-3.3-10.9Z"/>
+ <path class="st1" d="M54.2,114.9c2.1-.4,3.5,1.6,3.8,3.5.5,3.9-4.7,11.2-8.3,7.5-2.9-2.9.8-10.4,4.6-11h0Z"/>
+ <path class="st1" d="M244.8,307c6.5-.2,5.9,10.8,1.1,11.5-6.8,1-6.5-11.4-1.1-11.5Z"/>
+ <path class="st1" d="M293.6,312.8c1.5-.3,2.9,1.5,3.1,2.9.6,3-2.5,10.6-6.2,9.7-4.6-1.1-1.4-11.8,3-12.6h0Z"/>
+ <path class="st1" d="M77.4,214.9c-.3.3-1.6.7-2.1.7-4.2.3-6.1-4.6-4.8-8.1,2-5.9,9.3-2,8.3,4.1,0,.6-1.1,3-1.4,3.3Z"/>
+ <path class="st1" d="M304.2,311.1c3.2-.6,2.8,4.2,2.5,6.3-.4,2.4-3.6,7.3-6.3,6.5-3.9-1.2-.5-12,3.9-12.8h0Z"/>
+ <path class="st1" d="M281.9,315.2c5.1-1.1,4.8,8.8.7,11.3s-5.3-1.9-4.8-5.5c.3-2,2-5.3,4.2-5.8h0Z"/>
+ <path class="st1" d="M308.7,322.6c-2.2-2.3,1.3-11.6,4.3-12.5,4.7-1.5,3.7,4.1,2.6,7-.8,2-4.5,7.9-6.9,5.5h0Z"/>
+ <path class="st1" d="M156.3,278.2c7.7-2.2,10.1,11.6,1.8,9.7-4.2-1-5.8-8.5-1.8-9.7Z"/>
+ <path class="st1" d="M139.1,275.3c-1.7,1.7-4.9.4-6.3-1.2-3.8-4.1-.8-10.9,4.6-7.6,2.6,1.6,4,6.5,1.7,8.8h0Z"/>
+ <path class="st1" d="M179.1,290.1c2.7-.5,5.7,2.1,6.2,4.7,1.1,5.5-4.9,7.5-8.2,2.5-1.7-2.5-1.2-6.6,2-7.3h0Z"/>
+ <path class="st1" d="M324.7,308.8c1.5,1.5.2,5.4-.5,7.2s-3.8,6.9-6,6.3c-3.4-1,.6-10.4,2.4-12.1.6-.6,3.5-2,4.1-1.3h0Z"/>
+ <path class="st1" d="M54.3,109.7c-1.1,1.1-3.8,2.6-5.1,1.4-4.2-3.5,2.6-12.9,6.6-10.2,2.5,1.7.1,7.2-1.5,8.8h0Z"/>
+ <path class="st1" d="M74.1,60.6c-2.9-4.5,7.9-13.1,10.2-8.5,1.8,3.6-6.5,10.5-10.2,8.5Z"/>
+ <path class="st1" d="M67.6,67.5c3.9-.9,3.4,3.8,1.9,6.3-1.9,3.2-9,7.2-8.6,1.2.2-3,3.9-6.9,6.7-7.6h0Z"/>
+ <path class="st1" d="M270.1,318.2c6.9-1.4,4.5,11.5-.8,11-4-.4-3.7-10.1.8-11Z"/>
+ <path class="st1" d="M80.3,223.7c3.5-1,6.6,4.1,5.4,7.4-1.9,5.5-7.5,2.7-8.2-2.4-.3-1.7,1.2-4.6,2.8-5Z"/>
+ <path class="st1" d="M325.2,321.7c-1.6-1.7,1.2-8.4,2.4-10.3s5.2-5.6,5.7-1.7c.4,3.3-3.9,12.5-8.2,12h0Z"/>
+ <path class="st1" d="M231.3,311c5.6-1.6,7.5,10.1,1.6,10.5-3.5.2-5.6-5.3-4.2-8.1.2-.4,2.2-2.2,2.6-2.4h0Z"/>
+ <path class="st1" d="M199.9,302.7c5.1-.9,8.2,8.6,2.7,9.7s-8-8.8-2.7-9.7Z"/>
+ <path class="st1" d="M115.2,255.6c4.7,4.8-1.6,12.2-5.7,5.9-3.3-5.1,1.5-10.2,5.7-5.9h0Z"/>
+ <path class="st1" d="M335.6,320.4c-4,3.9-3.8-1.2-2.7-4.3.7-2,4.1-8.4,6.4-8.4,1.3,0,1,4.2.8,5.1-.3,1.4-3.4,6.6-4.5,7.6h0Z"/>
+ <path class="st1" d="M46.4,184.3c-.2-.2-1.2-2.4-1.2-2.8-1.1-5.6,5.1-9.9,7.1-3.9,1.3,4.1-2.7,9.9-5.8,6.6h0Z"/>
+ <path class="st1" d="M261.5,321.8c.2.2,1.2,2.4,1.2,2.8.6,2.9-3,8.9-6.1,6-3.9-3.6,1.1-12.6,4.9-8.8h0Z"/>
+ <path class="st1" d="M43,157.4c3.7-3.3,7.1,2.9,4.4,7.3-1.4,2.2-3.5,3.2-5.2.9s-1.2-6.3.8-8.2h0Z"/>
+ <path class="st1" d="M53.2,87.1c5.4-1.6,3.5,6.6,0,8.8-4.5,3-6.2-.7-4.1-4.8.4-.8,3.3-3.8,4-4Z"/>
+ <path class="st1" d="M56.5,202.9c-.3.3-1.7.7-2.1.7-3.1.2-4.5-5.1-3.2-7.6,2.5-4.8,6.9-1,6.6,3,0,.5-1.1,3.6-1.4,3.9h0Z"/>
+ <path class="st1" d="M344.9,308.4c3.6-1,1.3,5.1.5,6.7-.6,1.2-4.8,6.7-5.6,6.7-.6,0-.9-1.5-1-2.2,0-2.5,3.8-10.6,6.1-11.3h0Z"/>
+ <path class="st1" d="M42.8,139.4c.7,0,2.1,1.3,2.3,1.8,1.9,3.9-2.8,10.8-6,7.7-2.1-2.1,0-9,3.6-9.5h0Z"/>
+ <path class="st1" d="M222.6,323.7c-3.5,3.4-9.3-4.2-5.4-7.6,4.2-3.6,8.2,4.8,5.4,7.6Z"/>
+ <path class="st1" d="M71.6,57.6c1.4,3.3-5.4,10.3-8.1,8.9-3.4-1.7,1.8-7.3,3.9-8.5,1.4-.7,2.7-1,4.1-.4h0Z"/>
+ <path class="st1" d="M88.1,242.9c3.4-.9,6.9,4.5,4.8,7.4-4.4,5.8-9.9-5.9-4.8-7.4Z"/>
+ <path class="st1" d="M82.7,42.3c.9-.1,2.3-.3,2.6.9.9,3.1-6.4,9.2-9.3,7.3-.7-.5-.7-1-.5-1.8.6-2.6,4.7-6,7.2-6.4h0Z"/>
+ <path class="st1" d="M41.2,123.4c5-.9,2.2,11.1-2.6,9.7-3.5-1-1.1-9.1,2.6-9.7Z"/>
+ <path class="st1" d="M147.6,292.1c-2.9,2.8-8.8-2.5-6.5-6.3,3-5,9.8,3.1,6.5,6.3Z"/>
+ <path class="st1" d="M246,324.7c6.4-1.9,6.2,8.6,1.6,9.1-4,.4-4.2-8.3-1.6-9.1Z"/>
+ <path class="st1" d="M299.6,328.3c2.6-.8,2.3,3.3,1.9,5.1-.5,2.3-3,4.9-5.2,5.8-3.7-1.9.7-10.1,3.3-10.9h0Z"/>
+ <path class="st1" d="M164.8,296.2c4.8-1.4,7.7,6.1,4.5,7.7-5.2,2.5-8.4-6.6-4.5-7.7Z"/>
+ <path class="st1" d="M314.4,336.2c-1.5,1.5-3.6,2.1-3.6-.8,0-2.3,3.9-10.1,6.6-9.5,3.1.6-1.7,8.9-3,10.3Z"/>
+ <path class="st1" d="M49.8,83.9c-1.2-3.1,3.7-10.6,6.9-8.9,2.5,1.3,0,5.3-1.3,6.8-1.6,1.8-3.1,2.4-5.6,2.1h0Z"/>
+ <path class="st1" d="M308.3,327.1c3.4-1,1.8,4.8.9,6.5-2.1,4.5-7.2,6.9-5.6,0,.3-1.5,3.2-6,4.6-6.5h0Z"/>
+ <path class="st1" d="M352.5,309c.5.5-.9,4.4-1.3,5.3-.5,1.1-5.4,9.2-6.9,7.6-.2-2.9,1.2-5.8,2.7-8.2.6-.9,4.1-6.1,5.5-4.7h0,0Z"/>
+ <path class="st1" d="M292.4,330.7c.2.3,0,3.2,0,3.9-.4,2.8-2.2,4.6-4.7,5.8-3.5-2-.7-10,2.7-10.3.3,0,2,.5,2,.6h0Z"/>
+ <path class="st1" d="M40.6,108.5c4.8-1.4,2.4,10.8-3.2,9.1-2.9-.9.6-8.4,3.2-9.1Z"/>
+ <path class="st1" d="M279.8,332.4c5.1-1.5,3,9.7-1.4,9.2-4.1-.4-1.7-8.3,1.4-9.2Z"/>
+ <path class="st1" d="M119.9,272.9c4.4-1.2,7.2,6.8,3.4,7.9-4.3,1.2-8.2-6.6-3.4-7.9Z"/>
+ <path class="st1" d="M185.6,308.1c5.2-1.5,7.7,6.1,4.5,7.7-4.5,2.2-7.9-6.8-4.5-7.7Z"/>
+ <path class="st1" d="M318.3,337c-.6-3.4,1.9-8.5,4.4-10.8,1.6-1.4,3.4-1.1,3,1.2-.5,3-3.9,9.3-7.4,9.6Z"/>
+ <path class="st1" d="M60,213.1c3.7-.6,5.3,7.6,2.2,8.5-5,1.5-7-7.7-2.2-8.5Z"/>
+ <path class="st1" d="M359.3,309c.5.5-.5,1.5-1,1.9-2.7,2.4-3.2,6.1-5.7,9.1-.8,1-2,2.6-3.4,2.5-1.1-1.3,3.5-9.6,4.8-11,1-1.2,2-2.1,3.6-1.2.4,0,.5-2.5,1.6-1.2h0Z"/>
+ <path class="st1" d="M234.8,328.3c6.2-1.8,5.1,10.2.1,7.6-2.5-1.3-2.9-6.9-.1-7.6Z"/>
+ <path class="st1" d="M332,325.5c.3,2.9-1.7,6.3-3.5,8.6-1,1.2-2.2,2.8-4,2.5-1-1,2-6.8,2.9-8,.6-.8,3.7-4.1,4.6-3.1h0,0Z"/>
+ <path class="st1" d="M270,334.8c3.4-.6,3.3,6.2.5,8-5,3.2-5-7.2-.5-8h0Z"/>
+ <path class="st1" d="M41.4,95c5.8-1.7.7,9.6-3.2,8.5-2.8-1.7,1.2-7.9,3.2-8.5Z"/>
+ <path class="st1" d="M205.6,326.5c-2.3-2-2-7.4,1.9-6.5,2.6.6,3.5,4,2.8,6.3-.5,1.6-3.7,1.1-4.7.2h0Z"/>
+ <path class="st1" d="M70.9,48.4c4.9-1.1,1.3,4.3-.8,6.1-3.5,2.8-7,2.5-3.9-2.1.8-1.3,3.2-3.6,4.7-4h0Z"/>
+ <path class="st1" d="M364.2,312.8l-1.9,5.5,5.6-5.5-3.8,7c.3.8,1.3-.7,1.5-1,.5-.6.7-1.7,1.6-1.8l-1.3,4.3,1.9.3c-1.2,2.8-2.8,6.1-5,8.3l.6-2.5-1.2.3.6-2.1-1.9,1.2,1.3-3.7-3.1,1.8,2.5-5.5-4.7,4.9c-.5,0-.4-.6-.3-.9.3-1.6,3.6-7.5,4.8-8.9.7-.8,1.5-2,2.8-1.9h0s0,0,0,0Z"/>
+ <path class="st1" d="M330,336.5c-.6-.6,1.5-4.9,2-5.7.6-1.1,4-5.7,5.2-5.3s.6,1.1.4,1.7c-.2,1-.6,2.3-1.1,3.2-.6,1.1-5,7.7-6.5,6.2h0Z"/>
+ <path class="st1" d="M66.6,232.2c3.7-1.1,6.2,6.3,2.9,7.3-4.7,1.4-5.7-6.5-2.9-7.3Z"/>
+ <path class="st1" d="M101,268.9c-.3.2-2.6.1-3.2,0-2.2-.7-4.4-7.6,1.2-6.7,2.8.5,3.5,5.8,2,6.8h0Z"/>
+ <path class="st1" d="M59.2,64.2c1.2,2.8-4,8.6-6.5,8-2.2-.6.8-4.9,1.6-5.8,1.4-1.5,2.8-2.4,5-2.1h0Z"/>
+ <path class="st1" d="M77.9,42.2c0-3.6,3.8-6.1,7-6.9.6-.1,1.4-.7,1.7.5.7,2.9-5.9,7.3-8.7,6.4h0Z"/>
+ <path class="st1" d="M353.6,323.8c-.1-5,3.4-9.5,6.6-12.9,1.1.9,1,1.3.6,2.5-1,3.3-4.6,8-7.2,10.4h0Z"/>
+ <path class="st1" d="M258.8,337.8c4.6-1.3,4,7,.5,7.4s-3.1-6.6-.5-7.4Z"/>
+ <path class="st1" d="M31.8,148.5c1.7,2.2-.5,8.8-3.4,7.9-2.7-.8-.9-9.6,3.4-7.9Z"/>
+ <path class="st1" d="M34.1,165.9c.2.1.7,2.2.7,2.7.4,7.2-7.1,6.2-4.7-1,.5-1.6,2.8-2.6,4-1.7Z"/>
+ <path class="st1" d="M335.6,336.6c-1-2.3,5.4-11,6.6-11,.6,0,.9,1.1.6,1.9-.6,2.2-2.3,5-3.8,6.7-.4.5-2.9,3.1-3.4,2.4h0Z"/>
+ <path class="st1" d="M26.4,139.8c-1.6-2.2.7-8.5,3.4-8,2.2.4.9,9.8-3.4,8Z"/>
+ <path class="st1" d="M45.4,82.6c.3,3.5-2.3,7.9-6.2,7.3-.2-3.4,2.6-7.7,6.2-7.3Z"/>
+ <path class="st1" d="M223.7,331.9c2.9-.8,5,5.9,2.3,6.7-4.6,1.3-5.1-5.9-2.3-6.7Z"/>
+ <path class="st1" d="M173.2,313.5c3.4-1,5.9,3,3.9,5.9-3.6,2.1-6.9-5-3.9-5.9Z"/>
+ <path class="st1" d="M151.7,302.1c4.7-1.3,6.9,7.8,1.2,6-2.4-.7-3.2-5.5-1.2-6Z"/>
+ <path class="st1" d="M34.5,191.1c-1.1-2-1-7.9,2.1-7.3s2.4,8.8-2.1,7.3Z"/>
+ <path class="st1" d="M247.3,346.7c-1.6-1.6-.7-6.9,2.6-5.9,3.6,1.1.9,9.5-2.6,5.9Z"/>
+ <path class="st1" d="M129.6,290.9c3.3-.6,5.4,5.4,2.9,6.1-4.4,1.2-6-5.5-2.9-6.1Z"/>
+ <path class="st1" d="M347.4,326.8c.3.3-2.4,5.4-2.9,6.1-.4.6-4.2,4.9-4.6,4.3-.2-2.5,1.5-4.8,2.9-6.7,1.2-1.6,2.4-3.7,4.6-3.7Z"/>
+ <path class="st1" d="M303.4,343.7c.1,3.8-2,6.3-4.7,8.6-3.3-2,2.8-10.5,4.7-8.6Z"/>
+ <path class="st1" d="M193.5,324.8c3.8-1.1,6.4,5.1,2.9,6.1-3.2.9-5.4-5.4-2.9-6.1Z"/>
+ <path class="st1" d="M293.9,344.9c4.7-1.3-.4,8.6-2.6,7.9-2.5-.8,1.1-7.5,2.6-7.9Z"/>
+ <path class="st1" d="M42.9,209.7c-4.2,1.6-4.7-6.2-2.6-6.8,3.8-1.1,3.9,4.3,2.6,6.8Z"/>
+ <path class="st1" d="M68,47c-.6-.6,2.5-4,3.2-4.5,5.4-4.5,6.4-.7,1.7,3-1.5,1.2-2.8,1.9-4.9,1.5h0Z"/>
+ <path class="st1" d="M283,354c-.8-1.9,1.3-8,3.5-7.9,3.2.2,0,8.9-3.5,7.9Z"/>
+ <path class="st1" d="M28.8,117.1c4.2-1.2,1.2,8-2,7.3-2.1-.4.1-6.8,2-7.3Z"/>
+ <path class="st1" d="M317,342c.6.6-1.7,4.8-2.2,5.5s-3.6,4.1-4.6,3.1c-.3-.3,2.3-5.4,2.9-6.1s3.1-3.4,4-2.5h0Z"/>
+ <path class="st1" d="M310.2,342.5c1.2,1.3-2.8,9.2-5.6,8.6-.3-3,1.3-5.5,3.5-7.4.7-.6,1-1.5,2.2-1.2h0Z"/>
+ <path class="st1" d="M60.9,54.4c1.8-.3,1.2,1.9.5,3-.7,1-4.4,4.5-5.6,4.3-1.3-.3-.3-2.5,0-3.1.6-1,4-4.1,5-4.2h0Z"/>
+ <path class="st1" d="M75,251.4c4.8-1.3,5.1,9,.2,5.2-1.6-1.2-1.9-4.7-.2-5.2h0Z"/>
+ <path class="st1" d="M106.9,280.1c2.6-.7,5.2,4,3.3,5.2-3.4,2.2-7-4.2-3.3-5.2Z"/>
+ <path class="st1" d="M322.6,341.4c1.2,1.5-3.9,8.7-6,9.2-1.1-.9-.8-.6-.4-1.6,1.4-3,3.1-6.4,6.3-7.6h0,0Z"/>
+ <path class="st1" d="M48,70.9c.1,3.2-2.2,6.9-5.6,7.3-.5-3.5,2.3-6.8,5.6-7.3Z"/>
+ <path class="st1" d="M274.9,355.1c-1.4-1.6.7-7.5,3.5-6.8,3,.8-1.8,8.7-3.5,6.8Z"/>
+ <path class="st1" d="M31.7,102.8c1.1,2.7-1,7.5-4.4,6.8-.3-2.7,1.3-6.6,4.4-6.8Z"/>
+ <path class="st1" d="M350.5,328.1c-.2,2.9-2.6,6.1-4.7,8-.7.6-1,1.5-2.2,1.2-.6-.7,3.9-7.1,4.8-7.9.6-.7,1-1.5,2.1-1.2h0Z"/>
+ <path class="st1" d="M237.4,349.1c-1.4-1.4-.4-5.7,1.4-5.4,4.5.8,1.7,8.4-1.4,5.4Z"/>
+ <path class="st1" d="M321.3,350c-1.2-1.3,4.6-8,6.2-8.6.2,3.1-1.9,5.5-4.1,7.4-.7.6-1,1.5-2.2,1.2Z"/>
+ <path class="st1" d="M212.5,336.1c2.4-.7,4.6,4.6,1.6,5.5-2.4.7-4.8-4.6-1.6-5.5Z"/>
+ <path class="st1" d="M268.5,350.1c2.9-.8,1.5,7.6-1.3,6.8-2-.6-.6-6.2,1.3-6.8Z"/>
+ <path class="st1" d="M46.9,222.1c3.3-.9,4.4,4.7,1.7,5.5-2.9.8-3.7-4.9-1.7-5.5Z"/>
+ <path class="st1" d="M332.4,342.1c.9,1-5.4,8.1-6.9,8.6.1-2.8,2.6-5.6,4.7-7.4.7-.6,1-1.5,2.2-1.2h0Z"/>
+ <path class="st1" d="M353.5,329.4c.8.9-5.2,8.7-6.9,9.2-.3-1.2.4-1.7.9-2.5.8-1.4,2.2-3.6,3.2-4.8.7-.8,1.5-2,2.8-1.9h0Z"/>
+ <path class="st1" d="M87.4,274.3c-2.8.7-5.8-3.1-3-4.7,2.1-1.3,3.9,2.7,3,4.7Z"/>
+ <path class="st1" d="M336.1,342.8c.7.8-3.8,6-4.7,6.8-.7.6-1,1.5-2.2,1.2l3.1-5.2c.6-.5,3-3.5,3.7-2.7h0Z"/>
+ <path class="st1" d="M65.5,46.4c1.1,1-5.2,7.2-6.2,6.1-1-1,2.9-4.6,3.7-5.2.6-.4,1.8-1.5,2.5-.9Z"/>
+ <path class="st1" d="M260.7,353.2c0,0,.6,1.8.6,2.1,0,2-1.8,3.2-3.7,2.7-.3-.3.2-4.6.7-4.9.2-.2,2.1-.1,2.4,0h0,0Z"/>
+ <path class="st1" d="M29.9,96c-1.2-1.2,2.2-5.4,3.4-6.1,2.7,1.3-2,7.7-3.4,6.1Z"/>
+ <path class="st1" d="M164.7,323.2c-1.6.9-4.1-.4-4.3-2.2-.4-4.2,5.4-1.2,4.3,2.2Z"/>
+ <path class="st1" d="M51.2,61.1c.3,2.9-2.3,5.6-5,6.1-.4-2.3,1.3-3.6,2.8-4.9.7-.6,1-1.5,2.2-1.2Z"/>
+ <path class="st1" d="M141.9,308.9c.5.5,1,3.3.7,3.6-2.1.7-4.9-1.1-4.3-3.4.4-1.4,2.8-.9,3.6-.2h0Z"/>
+ <path class="st1" d="M56.8,245.6c-1.6,1.8-4.9-4.2-2.1-4.9,2.4-.6,3.3,3.6,2.1,4.9Z"/>
+ <path class="st1" d="M79.2,34.2c.2,1.2-.6,1.5-1.2,2.2-1.4,1.6-3.3,3-5.6,3.3-.2-1.2.6-1.5,1.2-2.2,1.4-1.6,3.3-3,5.6-3.3Z"/>
+ <path class="st1" d="M295.9,358.4c.7.8-2.3,6.6-4.4,6.1-.3-2.2.7-3.5,2.2-4.9.7-.6,1.1-1.5,2.2-1.2Z"/>
+ <path class="st1" d="M185,333.9c-2.8.5-5.1-2.1-2.7-4.4,2.6.5,3.1,1.8,2.7,4.4Z"/>
+ <path class="st1" d="M301.4,357.9c.7.8-2.3,6.6-4.4,6.1-.7-.8,2.3-6.6,4.4-6.1Z"/>
+ <path class="st1" d="M20,157.7c.1,1.5,0,2.7-.5,4.1-.4,1-.5,1.1-1.7.8-2-.6-.5-5.9,2.2-4.9h0Z"/>
+ <path class="st1" d="M230.5,351.6c0,0-1.6.5-1.8.4-1.6-1-2.5-4.2-.2-4.6,1.7-.3,2.7,3.6,2,4.3h0Z"/>
+ <path class="st1" d="M307,357.3c.2,2.1-1.4,3.7-2.8,4.9-.7.6-1,1.5-2.2,1.2-.6-.7,4-7.2,5-6.1h0Z"/>
+ <path class="st1" d="M353.5,335.5c-1.5,1.2-2.8,2.5-4.4,3.7.7-3,3.7-5.3,5.3-8,1.2-.2,1.1.3.6,1.3-.5,1-1.6,1.8-1.6,3,.4-.3,3-2.6,3.1-2.4l-1.9,5.2c-1.6.5-2.5,1.2-3.8,2.2l2.5-4.9h0Z"/>
+ <path class="st1" d="M289.1,359.6c.1,2.6-1.2,5.4-3.8,6.1-.7-.9,1.6-6.6,3.8-6.1Z"/>
+ <path class="st1" d="M119.9,301.8c-1.7.3-3.5-.4-3.7-2.2-.4-4.2,4.7-.9,3.7,2.2Z"/>
+ <path class="st1" d="M249.9,355.5c2.8-.7,2.8,3.9.6,4.9-1.7-.7-2.3-4.5-.6-4.9Z"/>
+ <path class="st1" d="M333,350.8c-.4-.4,1.5-2.9,1.9-3.4,1.1-1.4,2.9-2.9,4.4-4-.2,1.7-2,4-3.1,5.2-.5.5-2.5,2.8-3.1,2.1h0Z"/>
+ <path class="st1" d="M282.2,361.4c.2,2.2-1,5.3-3.8,4.9.5-2,1-5.4,3.8-4.9Z"/>
+ <path class="st1" d="M21.6,179.9c-.8.9-2.2-.4-2.3-1.7-.2-2.9,2.7-4.6,3-1.7,0,.6-.4,3-.7,3.4h0Z"/>
+ <path class="st1" d="M18.9,141c.1,2,.2,5.4-2.5,5.5-.9-2-.2-5.3,2.5-5.5Z"/>
+ <path class="st1" d="M37.4,78.8c.6.6-2.8,6.4-4.4,4.9-.6-.6,2.8-6.4,4.4-4.9Z"/>
+ <path class="st1" d="M306.9,363.5c0-3,2.9-5.1,5-6.7,0,3-2.9,5.1-5,6.7Z"/>
+ <path class="st1" d="M310.6,363.5c-.4-.4,1.4-2.9,1.9-3.4,1-1.2,2.5-2.5,3.7-3.4.9,2-5.1,7.3-5.6,6.7h0Z"/>
+ <path class="st1" d="M203.3,341c1.1,1.1,1.2,3.9-1.2,3.3-3.2-.8-1.5-6,1.2-3.3Z"/>
+ <path class="st1" d="M16.6,131.1c-.3-2.6.1-4,2.2-5.5,2.5,1.2-1.2,6.7-2.2,5.5Z"/>
+ <path class="st1" d="M24.3,192.9c1.9-.6,2.2,4.4.6,4.9-1.9.6-2.2-4.4-.6-4.9Z"/>
+ <path class="st1" d="M274.8,363.2c.5,5.5-5.6,5.9-2.2.6.6-.9,1.3-.6,2.2-.6Z"/>
+ <path class="st1" d="M55.6,52.5c.7.8-3.1,5.8-5,4.9-.4-.4,4.2-5.8,5-4.9Z"/>
+ <path class="st1" d="M320.6,357.4c.1.1-1.8,2.7-2.2,3.1-.5.5-2.8,3-3.4,2.4l3.1-4.6,2.5-.9h0Z"/>
+ <path class="st1" d="M335.4,351.4c-.3-.3,5.1-6.5,6.2-6.7-.5,2.1-2.5,4.1-4.1,5.5-.7.6-1,1.5-2.2,1.2h0Z"/>
+ <path class="st1" d="M21.1,111.4c.2,2.1-.7,3.7-2.2,4.9-2.3-1.2,1.3-6,2.2-4.9Z"/>
+ <path class="st1" d="M69.9,39.6c-1.5,2-3.3,3.9-5.6,4.9-.9-1.1,3.9-5.5,5.6-4.9Z"/>
+ <path class="st1" d="M83,29.3c-.1,1.1-5.4,4.5-5.6,4.3,0-3,3.2-3.6,5.6-4.3Z"/>
+ <path class="st1" d="M37.5,72.7c-.7-.8,2.6-4.6,3.8-4.9,1.1,1.6-3,5.7-3.8,4.9Z"/>
+ <path class="st1" d="M318,363.6c-.2-1.1.6-1.5,1.2-2.1,1.2-1.4,2.8-2.9,4.4-4l-2.5,4-3.1,2.1Z"/>
+ <path class="st1" d="M28.8,212.1c2.6-.8,3.4,3,1.5,3.7-1.5.6-1.8-2.8-1.5-3.7Z"/>
+ <path class="st1" d="M267.4,365c.3,1.8-.5,3.7-2.5,3.7-.1-2.1-.2-4.1,2.5-3.7Z"/>
+ <path class="st1" d="M220,351.5c.1.1,0,2.2,0,2.8-.1,1-3.2.3-2.4-2.5.3-1.1,2.2-.5,2.4-.3h0Z"/>
+ <path class="st1" d="M94.1,287.4c2.8-.2,3.8,2.5,1.5,3.7l-1.5-3.7Z"/>
+ <path class="st1" d="M343.5,346.5c-.6.8-4.6,6.5-5.6,5.5.6-.8,4.6-6.5,5.6-5.5Z"/>
+ <path class="st1" d="M62.9,259.3c1.9-.3,3.5,2.9,1.5,3.7-1.5.6-1.8-2.8-1.5-3.7Z"/>
+ <path class="st1" d="M241.2,358.5c2.1-.2,1.8,3.7.6,3.7-.9,0-2.5-3-.6-3.7Z"/>
+ <path class="st1" d="M21.2,102.1c-.1-1.8.9-3.6,2.5-4.3.1,1.7-.3,4.3-2.5,4.3Z"/>
+ <path class="st1" d="M173.2,337.5c-1.6.2-3.1-.9-3.1-2.5,2.1-.2,3.4.2,3.1,2.5Z"/>
+ <path class="st1" d="M326.1,358.7c-1.1,1.9-2.2,3.6-4.4,4.3-.7-.7,3.7-5,4.4-4.3Z"/>
+ </g>
+ </g>
+ <g id="Layer_11" data-name="Layer_1">
+ <g id="Spasm">
+ <g id="Layer_1-2">
+ <path class="st0" d="M2.1,232.4c4.9,3.7,7.3,2,9.2-3.1.7-1.7,3.6-9.1,8.9-15.8,23.8-30.4,86.6-61.9,117.4-73.7,69.4-26.4,237.5-48.2,266.7,21.6,5.4,13.9.9,27.2-5.2,41.2,0,.1,0-.1,0,0,0,6.4,0,10.1,0,12,0,2.9,7.1-2.7,16-10.6,11-9.9,15.6-24.6,17.7-36.9,3.5-19-4.6-38.7-21.5-52.9-16.8-14.3-38.6-21.8-63.5-26.4-108.7-17.3-238.9,21.1-311,85.6-12.3,11.8-45.2,45.5-34.7,58.9h0c0,0,0,0,0,0Z"/>
+ <path class="st0" d="M57.2,137.7c-1.8,2.1-5.1,8.1-1,7.8,4-.7,6.5-2.6,10.5-5.1,14.7-9.9,30-19.3,46.7-27.2,70.8-34.1,153.1-47.7,229.5-37.3,31.5,4.3,65,13.4,82.5,34.5,2.2,2.2,10.9,15.6,12.4,8.9.7-5.2-3.3-13.1-7.6-18.2-10.3-12.8-27.6-21.8-46.5-26.3-21.7-5.2-43.5-9.2-66.3-11.2-87.7-6.4-179.9,17.3-248.1,63-4.6,3.3-8.8,6.9-11.9,11h0c0,.1,0,.1,0,.1Z"/>
+ <path class="st0" d="M359.5,59.3c-36.6-7.8-77.2-8.4-118.1-4.9-7.2.6-16.8,2.4-23.7,2.5-.8,0-2,.2-2.1-.5-.2-1.5,8.2-3.7,10.1-4.2,28.9-8,78.3-8.3,106.6-5.2,11.9,1.3,23,4.2,33.9,7.1,1.9.5,3.9,1,5.9,1.6,4,1.2,2.4,7.3-1.7,6.3-3.6-.9-7.2-1.8-10.9-2.6h0Z"/>
+ </g>
+ </g>
+ </g>
+</svg> \ No newline at end of file
diff --git a/website2/public/index.php b/website2/public/index.php
new file mode 100644
index 0000000..f71b8d2
--- /dev/null
+++ b/website2/public/index.php
@@ -0,0 +1,120 @@
+<?php
+// loads the config
+$config = include(__DIR__ . '/../../config.php');
+
+// go set your id here otehrwise ur site wont load the stuff it needs
+$siteId = 2;
+
+// website go search what stuffs it need to load
+$websiteConfig = array_filter($config, function($site) use ($siteId) {
+ return isset($site['id']) && $site['id'] === $siteId;
+});
+$websiteConfig = reset($websiteConfig);
+
+// include the components so the site actually gets rendered
+foreach ($websiteConfig['components'] as $component) {
+ include($component);
+}
+
+?>
+
+<!DOCTYPE html>
+<html lang="en">
+<head>
+ <meta charset="UTF-8">
+ <meta name="viewport" content="width=device-width, initial-scale=1.0">
+ <title>Teleco.ch - <?php echo ucfirst($page); ?></title>
+ <meta name="description" content="<?php echo $metaDescription; ?>">
+ <link rel="stylesheet" href="assets/css/tc.css">
+</head>
+<body>
+ <header>
+ <div class="header-content" <?php if ($navbarTableExists && $navbarHasEntries) echo 'style="display:none;"'; ?>>
+ <img src="assets/svg/teleco.svg" alt="Teleco Logo" class="logo">
+ <h1>Teleco.ch</h1>
+ </div>
+ </header>
+
+ <?php if ($navbarTableExists && $navbarHasEntries): ?>
+ <nav class="navbar">
+ <?php render_navbar($navbarItems, $page); ?>
+ </nav>
+ <?php render_mobile_navbar($navbarItems, $menuExpanded); ?>
+ <?php endif; ?>
+ <hr>
+
+ <div class="container" style="<?php echo $leftSidebarHasItems || $rightSidebarHasItems ? '' : 'margin-left: 0px; margin-right: 0px; flex-wrap: nowrap; margin-top: 0px; margin-bottom: 0px; max-width: 100%; box-sizing: border-box; padding: 10px;'; ?>">
+ <!-- Left Sidebar -->
+ <?php if ($leftSidebarHasItems): ?>
+ <div class="sidebar">
+ <?php get_sidebar($db, 'left', $page, $sub); ?>
+ </div>
+ <?php endif; ?>
+
+ <!-- Main Content -->
+ <div class="content" id="content" style="<?php echo $leftSidebarHasItems || $rightSidebarHasItems ? '' : 'width: calc(100%);'; ?>">
+ <!-- Comment indicating if left elements were detected -->
+ <!-- Breadcrumbs -->
+ <div class="breadcrumbs">
+ <?php
+foreach ($breadcrumbs as $index => $crumb) {
+ if ($index > 0) echo ' > ';
+ echo '<a href="?page=' . htmlspecialchars($crumb['page']) . '">';
+ echo htmlspecialchars($crumb['title']);
+ echo '</a>';
+}
+ ?>
+ </div>
+ <?php if ($leftSidebarHasItems): ?>
+ <!-- Left sidebar elements detected -->
+ <?php else: ?>
+ <!-- No left sidebar elements detected -->
+ <?php endif; ?>
+ <?php if ($hasContent): ?>
+ <?php
+ $result = $query->execute();
+ $lastPostId = 0;
+ while ($row = $result->fetchArray()):
+ $lastPostId++;
+ ?>
+ <div class="box" id="post-<?php echo $lastPostId; ?>">
+ <h3><?php echo htmlspecialchars($row['title']); ?></h3>
+ <p><?php echo $row['content']; ?></p> <!-- Always render content as HTML -->
+ <hr>
+ <p>Date: <?php echo $row['date']; ?></p>
+ </div>
+ <?php endwhile; ?>
+ <?php else: ?>
+ <div class="box">
+ <h3>404 - Page Not Found</h3>
+ <p>Sorry, the page you are looking for does not exist.</p>
+ </div>
+ <?php endif; ?>
+
+ <div id="load-container">
+ <?php if ($hasContent && $offset + $limit < $totalPosts): ?>
+ <form method="get" action="index.php#post-<?php echo $lastPostId; ?>">
+ <input type="hidden" name="page" value="<?php echo htmlspecialchars($page); ?>">
+ <?php if ($sub): ?>
+ <input type="hidden" name="sub" value="<?php echo htmlspecialchars($sub); ?>">
+ <?php endif; ?>
+ <input type="hidden" name="offset" value="<?php echo $offset + $limit; ?>">
+ <button type="submit">Load More (<?php echo min($offset + $limit, $totalPosts) . " out of " . $totalPosts; ?>)</button>
+ </form>
+ <?php endif; ?>
+</div>
+ </div>
+
+ <!-- Right Sidebar -->
+ <?php if ($rightSidebarHasItems): ?>
+ <div class="sidebar-right">
+ <?php get_sidebar($db, 'right', $page, $sub); ?>
+ </div>
+ <?php endif; ?>
+ </div>
+
+ <footer>
+ &copy; 2025 Teleco.ch. All Rights Reserved.
+ </footer>
+</body>
+</html> \ No newline at end of file
diff --git a/website3/.DS_Store b/website3/.DS_Store
new file mode 100644
index 0000000..c328838
--- /dev/null
+++ b/website3/.DS_Store
Binary files differ
diff --git a/website3/content3.db b/website3/content3.db
new file mode 100644
index 0000000..c4bab0f
--- /dev/null
+++ b/website3/content3.db
Binary files differ
diff --git a/website3/public/assets/.DS_Store b/website3/public/assets/.DS_Store
new file mode 100644
index 0000000..59caf08
--- /dev/null
+++ b/website3/public/assets/.DS_Store
Binary files differ
diff --git a/website3/public/assets/css/dialon.css b/website3/public/assets/css/dialon.css
new file mode 100644
index 0000000..96c1e85
--- /dev/null
+++ b/website3/public/assets/css/dialon.css
@@ -0,0 +1,313 @@
+/* Base Styles */
+:root {
+ --primary-color: #ff9900;
+ --secondary-color: #1a1a1a;
+ --background-color: #333;
+ --text-color: #e6e6e6;
+ --border-color: #444;
+ --navbar-color: #d88900;
+ --navbar-text-color: #fff;
+ --navbar-hover-color: #ffbb00;
+ --hover-color: #ffbb00;
+ --hover-text-color: #1a1a1a;
+}
+
+@font-face {
+ font-family: 'default-512';
+ font-style: normal;
+ font-weight: 400;
+ src: url('../fonts/default.ttf') format('truetype');
+}
+
+body {
+ background-color: var(--secondary-color);
+ color: var(--text-color);
+ margin: 0;
+ padding: 0;
+ font-family: Arial, comic-sans; /* ich bin so lustig */
+}
+
+header, .header-content {
+ background-color: var(--secondary-color);
+ color: var(--text-color);
+ text-align: center; /* Center the header content wenn mer kei bock uf navbar her */
+}
+
+header h1 {
+ color: var(--primary-color);
+ font-family: 'default-512', Arial, sans-serif; /* fonts sexi mache*/
+}
+
+h2 {
+ color: var(--primary-color);
+ font-family: 'default-512', Arial, sans-serif; /* nomal fonts sexi mache will us irgend nem grund die ganz site kappoot gaht wenn ich d'funt universal ahwände*/
+}
+
+.sidebar, .sidebar-right, .box, .chat-log, .chat-input .breadcrumbs {
+ background-color: var(--background-color);
+ border: 1px solid var(--border-color);
+ border-radius: 10px; /* mmmm rundi ecke damit mer sich ned ritzt */
+}
+
+.breadcrumbs {
+ background-color: var(--background-color);
+ border: 1px solid var(--border-color);
+ border-radius: 10px;
+ padding: 10px;
+ margin-bottom: 10px;
+ box-shadow: 0 4px 6px rgba(0, 0, 0, 0.3);
+ font-family: 'default-512', Arial, sans-serif;
+}
+
+.breadcrumbs a {
+ color: var(--primary-color);
+ text-decoration: none;
+}
+
+.breadcrumbs a:hover {
+ text-decoration: underline;
+}
+
+.sidebar {
+ float: left;
+ width: 20%;
+ min-width: 200px;
+ max-width: 250px;
+ padding: 10px;
+ padding-bottom: 0px;
+ box-sizing: border-box;
+ padding-bottom: 0px;
+}
+
+.sidebar-right {
+ float: right;
+ width: 20%;
+ min-width: 200px;
+ max-width: 250px;
+ padding: 10px;
+ padding-bottom: 0px;
+ box-sizing: border-box;
+}
+
+.sidebar a, .sidebar-right a, .services a, .menu-overlay .menu-links a, .load-more-button, .mobile-navbar-menu button{
+ display: block;
+ background-color: var(--background-color);
+ color: var(--text-color);
+ padding: 12px 20px;
+ text-decoration: none;
+ border-radius: 10px;
+ transition: background-color 0.3s ease;
+ box-shadow: 0 4px 6px rgba(0, 0, 0, 0.3);
+ margin-bottom: 10px;
+ font-family: 'default-512', Arial, sans-serif;
+ border: none;
+}
+
+.sidebar a:hover, .sidebar-right a:hover, .sidebar a.active, .sidebar-right a.active, .services a:hover, .menu-overlay .menu-links a:hover, .load-more-button:hover {
+ background-color: var(--hover-color);
+ color: var(--hover-text-color);
+}
+
+.container {
+ flex: 1;
+ display: flex;
+ width: 100%;
+ min-width: 300px;
+ align-items: flex-start;
+ flex-wrap: wrap;
+ margin: 20px auto 0;
+ max-width: 1200px;
+}
+
+.content {
+ width: 60%;
+ flex-grow: 1;
+ padding: 10px;
+ box-sizing: border-box;
+}
+
+.box {
+ margin-bottom: 10px;
+ padding: 10px;
+}
+
+.box h3 {
+ margin: 0 0 10px 0;
+ font-size: 16px;
+ color: var(--primary-color);
+ font-family: 'default-512', Arial, sans-serif;
+
+}
+
+.box p, .box a {
+ margin: 5px 0;
+ font-size: 14px;
+ color: var(--text-color);
+ font-family: 'default-512', Arial, sans-serif;
+}
+
+.box a {
+ color: var(--primary-color);
+ text-decoration: none;
+}
+
+.box a:hover {
+ text-decoration: underline;
+}
+
+footer {
+ background-color: var(--border-color);
+ color: var(--text-color);
+ text-align: center;
+ padding: 10px 0;
+ font-size: 14px;
+ width: 100%;
+ flex-shrink: 0;
+}
+
+hr {
+ border: 1px solid var(--border-color);
+ margin: 20px 0;
+}
+
+.left-aligned-title {
+ text-align: left;
+ font-size: 48px;
+ font-weight: bold;
+ color: var(--primary-color);
+ margin-bottom: 15px;
+ text-decoration: none;
+ font-family: 'default-512', Arial, sans-serif;
+}
+
+.navbar-title {
+
+ text-decoration: none;
+}
+
+.no-top-m {
+ margin-top: 0 !important;
+}
+
+.ascii-box {
+ border: 2px solid #555;
+ border-radius: 10px;
+ padding: 20px;
+ color: var(--primary-color);
+ font-size: 18px;
+ font-family: 'default-512', Arial, sans-serif;
+}
+
+.services {
+ display: flex;
+ justify-content: center;
+ flex-wrap: wrap;
+ gap: 20px;
+ margin: 20px 0;
+}.chat-container {
+ position: fixed;
+ bottom: 0;
+ right: 20px;
+ width: 90%;
+ max-width: 400px;
+ background-color: var(--secondary-color);
+ border: 2px solid var(--border-color);
+ border-radius: 10px;
+ padding: 20px;
+ z-index: 1001;
+ transform: translateY(100%);
+ opacity: 0;
+ transition: transform 0.4s ease, opacity 0.4s ease, visibility 0.4s ease;
+ visibility: hidden;
+}
+
+.chat-container.open {
+ transform: translateY(0);
+ opacity: 1;
+ visibility: visible;
+}
+
+.chat-header {
+ font-size: 20px;
+ font-weight: bold;
+ color: var(--secondary-color);
+ text-align: center;
+ margin-bottom: 10px;
+ position: relative;
+ font-family: 'default-512', Arial, sans-serif;
+}
+
+.audio-track {
+ margin: 20px 0;
+ text-align: center;
+}
+
+.complaints {
+ text-align: center;
+ margin-top: 40px;
+}
+
+.complaints a {
+ color: #ffbb00;
+ text-decoration: none;
+ transition: color 0.3s ease;
+ font-family: 'default-512', Arial, sans-serif;
+}
+
+.complaints a:hover {
+ color: #ff99cc;
+}
+
+.mobile-only {
+ display: none;
+}
+
+ul {
+ list-style-type: none;
+ padding: 0;
+}
+
+ul li {
+ padding: 10px 15px;
+ margin-bottom: 10px;
+ border-radius: 10px;
+ box-shadow: 0 4px 6px rgba(0, 0, 0, 0.3);
+ font-family: 'default-512', Arial, sans-serif;
+}
+
+ul li::before {
+ content: "•";
+ color: var(--primary-color);
+ padding-right: 10px;
+}
+
+ul li span {
+ font-weight: bold;
+ color: var(--primary-color);
+}
+
+
+
+h4 {
+ text-decoration: underline;
+ size: 12px;
+ color: var(--primary-color);
+ font-family: 'default-512', Arial, sans-serif;
+}
+
+@media screen and (max-width: 1280px) {
+ .sidebar, .sidebar-right {
+ display: none;
+ }
+}
+
+@media screen and (min-width: 1281px) {
+ .hamburger-menu {
+ display: none;
+ }
+
+ .chat-toggle-btn {
+ bottom: 20px;
+ }
+}
+
diff --git a/website3/public/assets/css/extras.css b/website3/public/assets/css/extras.css
new file mode 100644
index 0000000..4a9f2fc
--- /dev/null
+++ b/website3/public/assets/css/extras.css
@@ -0,0 +1,180 @@
+.send-btn {
+ background-color: var(--primary-color);
+ color: var(--secondary-color);
+}
+
+.send-btn:hover {
+ background-color: #ffbb00;
+}
+
+.chat-toggle-btn {
+ position: fixed;
+ bottom: 20px;
+ right: 20px;
+ width: 50px;
+ height: 50px;
+ border: none;
+ border-radius: 50%;
+ box-shadow: 0 4px 6px rgba(0, 0, 0, 0.3);
+ cursor: pointer;
+ z-index: 1000;
+ display: flex;
+ align-items: center;
+ justify-content: center;
+ padding: 0;
+ transition: background-color 0.3s ease;
+ background-color: var(--background-color);
+ color: var(--primary-color);
+}
+
+.chat-toggle-btn svg {
+ width: 24px;
+ height: 24px;
+ fill: var(--primary-color);
+ transition: fill 0.3s ease;
+}
+
+.chat-toggle-btn:hover,
+.chat-toggle-btn.open {
+ background-color: var(--primary-color);
+}
+
+.chat-toggle-btn:hover svg,
+.chat-toggle-btn.open svg {
+ fill: var(--secondary-color);
+}
+
+.chat-close-btn {
+ color: var(--primary-color);
+}
+
+.chat-close-btn:hover {
+ color: var(--secondary-color);
+}
+
+.chat-close-btn {
+ position: absolute;
+ top: 0;
+ right: 0;
+ font-size: 18px;
+ background: none;
+ border: none;
+ cursor: pointer;
+}
+
+.chat-log {
+ height: 300px;
+ overflow-y: auto;
+ padding: 10px;
+ border-radius: 10px;
+ margin-bottom: 10px;
+ font-family: 'Courier New', Courier, monospace;
+}
+
+.chat-message {
+ margin: 5px 0;
+ font-family: 'default-512', Arial, sans-serif;
+}
+
+.chat-message .sender {
+ font-weight: bold;
+}
+
+.chat-message .virtual-assistant {
+ color: red;
+}
+
+.chat-message .user {
+ color: blue;
+}
+
+.chat-input-container {
+ display: flex;
+ gap: 10px;
+}
+
+.chat-input {
+ flex: 1;
+ padding: 10px;
+ border-radius: 10px;
+ font-family: 'default-512', Arial, sans-serif;
+ color: var(--primary-color);
+ background-color: var(--secondary-color);
+ border: 1px solid var(--border-color);
+}
+
+.chat-input:focus {
+ outline: none;
+ border-color: var(--primary-color);
+}
+
+.send-btn {
+ padding: 10px;
+ border: none;
+ cursor: pointer;
+ border-radius: 10px;
+}
+
+.chat-container {
+ position: fixed;
+ bottom: 0;
+ right: 0;
+ margin-right: 20px;
+ max-width: 400px;
+ background-color: var(--secondary-color);
+ border: 2px solid var(--border-color);
+ border-radius: 10px;
+ padding: 20px;
+ z-index: 1001;
+ transform: translateY(100%);
+ opacity: 0;
+ transition: transform 0.4s ease, opacity 0.4s ease, visibility 0.4s ease;
+ visibility: hidden;
+}
+
+.chat-container.open {
+ transform: translateY(0);
+ opacity: 1;
+ visibility: visible;
+}
+
+.chat-header {
+ font-size: 20px;
+ font-weight: bold;
+ color: var(--primary-color);
+ text-align: center;
+ margin-bottom: 10px;
+ position: relative;
+ font-family: 'default-512', Arial, sans-serif;
+}
+
+@media (max-width: 600px) {
+ .chat-container {
+ width: 100%;
+ margin: 0px;
+ padding: 20px;
+ box-sizing: border-box;
+ }
+}
+
+@media (min-width: 1280px) {
+ .sidebar, .sidebar-right {
+ display: block;
+ }
+
+ .chat-toggle-btn {
+ bottom: 20px;
+ right: 20px;
+ }
+}
+
+@media (max-width: 1279px) {
+ .sidebar, .sidebar-right {
+ display: none;
+ }
+
+ .chat-toggle-btn {
+ bottom: 100px;
+ right: 20px;
+ }
+}
diff --git a/website3/public/assets/css/hamburger.css b/website3/public/assets/css/hamburger.css
new file mode 100644
index 0000000..031d011
--- /dev/null
+++ b/website3/public/assets/css/hamburger.css
@@ -0,0 +1,138 @@
+.hamburger-menu {
+ display: none;
+ position: fixed;
+ bottom: 20px;
+ right: 20px;
+ width: 50px;
+ height: 50px;
+ background-color: var(--background-color);
+ color: var(--primary-color);
+ border: none;
+ border-radius: 50%;
+ box-shadow: 0 4px 6px rgba(0, 0, 0, 0.3);
+ cursor: pointer;
+ z-index: 1001;
+ transition: background-color 0.3s ease;
+ display: flex;
+ align-items: center;
+ justify-content: center;
+ padding: 0;
+}
+
+.hamburger-menu svg {
+ width: 24px;
+ height: 24px;
+ fill: var(--primary-color);
+ transition: fill 0.3s ease;
+}
+
+.hamburger-menu:hover,
+.hamburger-menu.open {
+ background-color: var(--primary-color);
+}
+
+.hamburger-menu:hover svg,
+.hamburger-menu.open svg {
+ fill: var(--secondary-color);
+}
+
+.menu-overlay {
+ position: fixed;
+ top: 0;
+ left: 0;
+ bottom: 0;
+ width: 100%;
+ background-color: var(--secondary-color);
+ color: white;
+ display: flex;
+ flex-direction: column;
+ align-items: center;
+ justify-content: center;
+ transition: transform 0.3s ease-in-out;
+ z-index: 1000;
+ transform: translateY(100%);
+ overflow-y: auto;
+}
+
+.menu-overlay.open {
+ transform: translateY(0);
+}
+
+.menu-content {
+ text-align: center;
+ width: 100%;
+ padding: 20px;
+ box-sizing: border-box;
+}
+
+.menu-content .box {
+ background-color: var(--background-color);
+ margin: 10px 0;
+ padding: 10px;
+ border: 1px solid var(--border-color);
+ border-radius: 10px;
+ box-sizing: border-box;
+}
+
+.menu-content .box a {
+ display: block;
+ background-color: var(--background-color);
+ color: var(--text-color);
+ padding: 12px 20px;
+ text-decoration: none;
+ border-radius: 10px;
+ transition: background-color 0.3s ease;
+ box-shadow: 0 4px 6px rgba(0, 0, 0, 0.3);
+ margin-bottom: 10px;
+}
+
+.menu-content .box a:hover, .menu-content .box a.active {
+ background-color: var(--primary-color);
+ color: var(--secondary-color);
+}
+
+.menu-close-btn {
+ position: absolute;
+ top: 20px;
+ right: 20px;
+ background: none;
+ border: none;
+ color: var(--primary-color);
+ font-size: 24px;
+ cursor: pointer;
+}
+
+.menu-close-btn:hover {
+ color: var(--secondary-color);
+}
+
+@media screen and (max-width: 1280px) {
+ .sidebar, .sidebar-right {
+ display: none;
+ }
+
+ .hamburger-menu {
+ display: flex;
+ }
+
+ .menu-overlay {
+ display: block;
+ }
+}
+
+@media screen and (max-width: 600px) {
+ .menu-content {
+ padding: 10px;
+ }
+
+ .menu-content .box a {
+ padding: 10px;
+ font-size: 14px;
+ }
+}
+
+@media screen and (min-width: 1281px) {
+ .hamburger-menu {
+ display: none;
+ }
+} \ No newline at end of file
diff --git a/website3/public/assets/css/navbar.css b/website3/public/assets/css/navbar.css
new file mode 100644
index 0000000..6f63aa8
--- /dev/null
+++ b/website3/public/assets/css/navbar.css
@@ -0,0 +1,224 @@
+.navbar {
+ background-color: var(--secondary-color);
+ padding: 10px;
+ box-shadow: 0 4px 6px rgba(0, 0, 0, 0.3);
+ font-family: 'default-512', Arial, sans-serif;
+ position: relative;
+}
+
+.navbar-container {
+ display: flex;
+ justify-content: space-between;
+ align-items: center;
+}
+
+.navbar-left, .navbar-center, .navbar-right {
+ display: flex;
+ align-items: center;
+}
+
+.navbar-center {
+ justify-content: center;
+ flex-grow: 1;
+}
+
+.navbar-mobile {
+ display: none;
+ justify-content: space-between;
+ align-items: center;
+ width: 100%;
+ background-color: var(--secondary-color);
+ padding: 10px;
+}
+
+.navbar-mobile .navbar-left {
+ display: flex;
+ align-items: center;
+}
+
+.navbar-logo {
+ height: 40px;
+ margin-right: 10px;
+}
+
+.navbar-title {
+ font-size: 20px;
+ font-weight: bold;
+ color: var(--primary-color);
+ padding-right: 20px;
+}
+
+.navbar, .navbar button, .navbar input[type="text"], .navbar input[type="search"] {
+ color: var(--navbar-text-color);
+ text-decoration: none;
+ padding-inline: 10px;
+ margin: 0 5px;
+ border: none;
+ background: none;
+ cursor: pointer;
+ transition: color 0.3s ease;
+ font-family: 'default-512', Arial, sans-serif;
+ font-size: 18px;
+}
+
+.navbar-link {
+ color: var(--navbar-text-color);
+ text-decoration: none;
+ border: none;
+ background: none;
+ cursor: pointer;
+ transition: color 0.3s ease;
+ font-family: 'default-512', Arial, sans-serif;
+}
+
+.dropdown-link {
+ color: var(--navbar-text-color);
+ text-decoration: none;
+ transition: color 0.3s ease;
+ font-family: 'default-512', Arial, sans-serif;
+ padding-top: 5px;
+}
+
+.navbar a:hover, .navbar button:hover {
+ color: var(--navbar-hover-color);
+}
+
+.navbar-dropdown {
+ position: relative;
+ display: inline-block;
+}
+
+.navbar-dropbtn {
+ background-color: var(--navbar-color);
+ color: var(--navbar-text-color);
+ padding: 10px;
+ font-size: 16px;
+ border: none;
+ cursor: pointer;
+ border-radius: 10px;
+}
+
+.navbar-dropdown-content {
+ display: none;
+ position: absolute;
+ background-color: var(--background-color);
+ min-width: 160px;
+ box-shadow: 0 8px 16px rgba(0, 0, 0, 0.2);
+ z-index: 1;
+ border-radius: 10px;
+}
+
+.navbar-dropdown:hover .navbar-dropdown-content {
+ display: block;
+}
+
+.navbar-dropdown-content a {
+ color: var(--text-color);
+ padding: 12px 16px;
+ text-decoration: none;
+ display: block;
+ border-bottom: 1px solid var(--border-color);
+}
+
+.navbar-dropdown-content a:last-child {
+ border-bottom: none;
+}
+
+.bruh-why {
+ padding-inline: 0px;
+}
+
+.mobile-navbar-dropdown {
+ padding-top: 5px;
+}
+
+.mobile-navbar-dropdown:hover {
+ color: var(--navbar-hover-color);
+}
+
+.navbar-toggle {
+ display: none;
+ background: none;
+ border: none;
+ color: var(--primary-color);
+ cursor: pointer;
+ font-size: 24px;
+}
+
+.mobile-navbar-menu {
+ display: flex;
+ flex-direction: column;
+ width: 100%;
+ background-color: var(--secondary-color);
+ border-radius: 10px;
+ max-height: 0;
+ overflow: hidden;
+ transition: max-height 0.4s ease-out, padding 0.4s ease-out;
+ padding-top: 0;
+ padding-bottom: 0;
+}
+
+.mobile-navbar-menu.open {
+ padding-top: 10px;
+ padding-bottom: 10px;
+}
+
+.mobile-navbar-menu input[type="text"],
+.mobile-navbar-menu input[type="search"] {
+ padding: 10px;
+ margin: 5px 0;
+ border: none;
+ background: none;
+ cursor: pointer;
+ transition: color 0.3s ease;
+ font-family: 'default-512', Arial, sans-serif;
+ color: var(--navbar-text-color);
+ text-decoration: none;
+ display: block;
+ width: 100%;
+ box-sizing: border-box;
+}
+
+.mobile-navbar-menu input[type="text"]:hover,
+.mobile-navbar-menu input[type="search"]:hover,
+.mobile-navbar-menu button:hover {
+ color: var(--navbar-hover-color);
+}
+
+@media screen and (max-width: 768px) {
+ .navbar-container {
+ display: none;
+ }
+
+ .navbar-mobile {
+ display: flex;
+ }
+
+ .navbar-toggle {
+ display: block;
+ }
+}
+
+@media screen and (min-width: 769px) {
+ .mobile-navbar-menu {
+ display: none !important;
+ }
+}
+
+.navbar .buttonify{
+ display: block;
+ background-color: var(--background-color); /* penis haha lol ja das isch psychose klass will buttons nei segged abunzdue*/
+ color: var(--text-color);
+ padding: 12px 20px;
+ text-decoration: none;
+ border-radius: 10px;
+ transition: background-color 0.3s ease;
+ box-shadow: 0 4px 6px rgba(0, 0, 0, 0.3);
+ font-family: 'default-512', Arial, sans-serif;
+ border: none;
+}
+
+.navbar .buttonify:hover {
+ background-color: var(--hover-color);
+ color: var(--hover-text-color);
+}
diff --git a/website3/public/assets/fonts/.DS_Store b/website3/public/assets/fonts/.DS_Store
new file mode 100644
index 0000000..b998872
--- /dev/null
+++ b/website3/public/assets/fonts/.DS_Store
Binary files differ
diff --git a/website3/public/assets/fonts/default.ttf b/website3/public/assets/fonts/default.ttf
new file mode 100644
index 0000000..37deb9a
--- /dev/null
+++ b/website3/public/assets/fonts/default.ttf
Binary files differ
diff --git a/website3/public/assets/img/.DS_Store b/website3/public/assets/img/.DS_Store
new file mode 100644
index 0000000..f77b18d
--- /dev/null
+++ b/website3/public/assets/img/.DS_Store
Binary files differ
diff --git a/website3/public/assets/img/code-is-ass.jpeg b/website3/public/assets/img/code-is-ass.jpeg
new file mode 100644
index 0000000..c35aa9e
--- /dev/null
+++ b/website3/public/assets/img/code-is-ass.jpeg
Binary files differ
diff --git a/website3/public/assets/img/dialon.png b/website3/public/assets/img/dialon.png
new file mode 100644
index 0000000..6ceef81
--- /dev/null
+++ b/website3/public/assets/img/dialon.png
Binary files differ
diff --git a/website3/public/assets/img/force.png b/website3/public/assets/img/force.png
new file mode 100644
index 0000000..fa2c8c6
--- /dev/null
+++ b/website3/public/assets/img/force.png
Binary files differ
diff --git a/website3/public/assets/img/fuck-main.jpeg b/website3/public/assets/img/fuck-main.jpeg
new file mode 100644
index 0000000..3acbd91
--- /dev/null
+++ b/website3/public/assets/img/fuck-main.jpeg
Binary files differ
diff --git a/website3/public/assets/img/fuckjs.jpeg b/website3/public/assets/img/fuckjs.jpeg
new file mode 100644
index 0000000..06f8a6d
--- /dev/null
+++ b/website3/public/assets/img/fuckjs.jpeg
Binary files differ
diff --git a/website3/public/assets/img/jsmomentom.jpg b/website3/public/assets/img/jsmomentom.jpg
new file mode 100644
index 0000000..166d5ba
--- /dev/null
+++ b/website3/public/assets/img/jsmomentom.jpg
Binary files differ
diff --git a/website3/public/assets/img/router1.jpg b/website3/public/assets/img/router1.jpg
new file mode 100644
index 0000000..92f7e91
--- /dev/null
+++ b/website3/public/assets/img/router1.jpg
Binary files differ
diff --git a/website3/public/assets/img/router2.jpg b/website3/public/assets/img/router2.jpg
new file mode 100644
index 0000000..1ec6527
--- /dev/null
+++ b/website3/public/assets/img/router2.jpg
Binary files differ
diff --git a/website3/public/assets/img/rover.png b/website3/public/assets/img/rover.png
new file mode 100644
index 0000000..de95293
--- /dev/null
+++ b/website3/public/assets/img/rover.png
Binary files differ
diff --git a/website3/public/assets/img/ssc.jpg b/website3/public/assets/img/ssc.jpg
new file mode 100644
index 0000000..d7509e2
--- /dev/null
+++ b/website3/public/assets/img/ssc.jpg
Binary files differ
diff --git a/website3/public/assets/img/wrong.png b/website3/public/assets/img/wrong.png
new file mode 100644
index 0000000..1a1835e
--- /dev/null
+++ b/website3/public/assets/img/wrong.png
Binary files differ
diff --git a/website3/public/assets/js/chat.js b/website3/public/assets/js/chat.js
new file mode 100644
index 0000000..8caa573
--- /dev/null
+++ b/website3/public/assets/js/chat.js
@@ -0,0 +1,94 @@
+// chat container setup for maximum verwirrung weil ich kann das alles langsam nicht mehr junge die sprach macht kei sinn
+const chatContainer = document.getElementById('chat-container');
+const chatLog = document.getElementById('chat-log');
+const userInput = document.getElementById('user-input');
+let hasGreeted = false; // flag so we only say grǔtzi eimal und ned sächzgs mal junge das wäri fett weird
+
+// toggle chat open and closed again ????????????? i dont remember what i haben gesoffen hier
+function toggleChat() {
+ if (chatContainer.classList.contains('open')) {
+ chatContainer.classList.remove('open');
+ setTimeout(() => {
+ chatContainer.style.visibility = 'hidden';
+ }, 400); // match delay with css so it doesnt look wie abfall
+ } else {
+ chatContainer.style.visibility = 'visible';
+ chatContainer.classList.add('open');
+
+ // the actuall saying grǔtzi miternaand gugus
+ if (!hasGreeted) {
+ displayMessage('Virtual Assistant', "Grǔtzi 🇨🇭 ! I'm your virtual assistant! Please tell me about your problem or what you need help with.");
+ hasGreeted = true;
+ }
+ }
+}
+
+// send message when enter key is pressed because who will press a button to send a message ???? are you a psychopat ?
+userInput.addEventListener('keypress', function(event) {
+ if (event.key === 'Enter') {
+ sendMessage();
+ }
+});
+
+// handle sending messages
+function sendMessage() {
+ const userMessage = userInput.value.trim();
+ if (userMessage) {
+ displayMessage('You', userMessage);
+ userInput.value = '';
+ setTimeout(() => catReply(userMessage), 1000); // delay for realism so the "assistant" can "think" about the reply
+ }
+}
+
+// put a message in the chat log will chat funktioniert ned ohni message history und so lol
+function displayMessage(sender, message) {
+ const messageElement = document.createElement('div');
+ messageElement.classList.add('chat-message');
+
+ const senderSpan = document.createElement('span');
+ senderSpan.classList.add('sender');
+ senderSpan.classList.add(sender === 'You' ? 'user' : 'virtual-assistant');
+ senderSpan.textContent = sender + ': ';
+
+ const messageSpan = document.createElement('span');
+ messageSpan.textContent = message;
+
+ messageElement.appendChild(senderSpan);
+ messageElement.appendChild(messageSpan);
+ chatLog.appendChild(messageElement);
+ chatLog.scrollTop = chatLog.scrollHeight;
+}
+
+// cat assistant category based matched replies
+function catReply(userMessage) {
+ const keywords = {
+ "help": ["meeeooow...? figure it out yourself! because that sounds like a you problem bahahahasdjkasadlkj 💀", "meeooww! welp too bad. help yourself bahasjdhaskjdhaskjdh", "mrrrow! idk either lol. go ask yourself maybe your smart if you use your brain instread of relying on a virtual assistant cat"],
+ "problem": ["meeooow, eh thats normal here, should've chosen someone else to host your stuff ngl lol", "mrow, contact sysadminier maybe idk? i am just cat or a teaput ???? idk what i am help aaaaaaa", "mreeow, tell me more ig... if you want idc lol"],
+ "default": ["meow", "meeooow!", "mew.", "mrow!", "meeow...", "meow, meow.", "mroww", "mlem"]
+ };
+
+ // generate a bs reply to fool user into thinking the cat assistant is actually doing something
+ function generateScrambledReply() {
+ const phrases = keywords["default"];
+ let scrambled = [];
+ const length = Math.floor(Math.random() * 3) + 3; // random length of reply 3-5 words
+
+ for (let i = 0; i < length; i++) {
+ const randomPhrase = phrases[Math.floor(Math.random() * phrases.length)];
+ scrambled.push(randomPhrase);
+ }
+ return scrambled.join(" ");
+ }
+
+ // check for keywords in user message and decide what kind of blödsinn to say zu the schafseckel using the chat
+ let reply;
+ if (userMessage.toLowerCase().includes("help")) {
+ reply = keywords["help"][Math.floor(Math.random() * keywords["help"].length)];
+ } else if (userMessage.toLowerCase().includes("problem")) {
+ reply = keywords["problem"][Math.floor(Math.random() * keywords["problem"].length)];
+ } else {
+ reply = generateScrambledReply(); // generate scrambled reply for "default" case
+ }
+
+ displayMessage('Virtual Assistant', reply);
+} \ No newline at end of file
diff --git a/website3/public/assets/js/menu.js b/website3/public/assets/js/menu.js
new file mode 100644
index 0000000..8994ac9
--- /dev/null
+++ b/website3/public/assets/js/menu.js
@@ -0,0 +1,40 @@
+document.addEventListener('DOMContentLoaded', function () {
+ // menu overlay so we can open and close it bruh
+ const overlay = document.querySelector('.menu-overlay');
+ const hamburger = document.querySelector('.hamburger-menu');
+
+ function toggleMenu() {
+ if (overlay.classList.contains('open')) {
+ overlay.classList.remove('open');
+ setTimeout(() => {
+ overlay.style.visibility = 'hidden';
+ }, 400); // match this delay with the css transition duration because ja isch halt so
+ } else {
+ overlay.style.visibility = 'visible';
+ overlay.classList.add('open');
+ }
+ hamburger.classList.toggle('open');
+ document.body.style.overflow = overlay.classList.contains('open') ? 'hidden' : ''; // no scrolling on the main page while menu is open
+ }
+
+ // if burger king menu button exists, hook it up to toggle the menu
+ if (hamburger) {
+ hamburger.addEventListener('click', function () {
+ toggleMenu();
+ });
+ }
+
+ // close menu when clicking a link inside it because so funktioniert das halt, pech gha wenns der nid passt lol
+ if (overlay) {
+ overlay.querySelectorAll('a').forEach(link => {
+ link.addEventListener('click', () => {
+ overlay.classList.remove('open');
+ setTimeout(() => {
+ overlay.style.visibility = 'hidden';
+ hamburger.classList.remove('open');
+ document.body.style.overflow = ''; // kei ahnig was das macht aber es het mis problem emol glöst
+ }, 400); // match transition duration ... again no clue what this actually does but it works so i'm not touching it
+ });
+ });
+ }
+}); \ No newline at end of file
diff --git a/website3/public/assets/svg/teleco.svg b/website3/public/assets/svg/teleco.svg
new file mode 100644
index 0000000..1cbb190
--- /dev/null
+++ b/website3/public/assets/svg/teleco.svg
@@ -0,0 +1,242 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg id="Layer_1" xmlns="http://www.w3.org/2000/svg" version="1.1" viewBox="0 0 437.8 368.6">
+ <!-- Generator: Adobe Illustrator 29.1.0, SVG Export Plug-In . SVG Version: 2.1.0 Build 142) Yea i know this logo is partially made from a png will fix someday -->
+ <defs>
+ <style>
+ .st0 {
+ fill: #d22627;
+ }
+
+ .st1 {
+ fill: #010101;
+ }
+ </style>
+ </defs>
+ <g id="Layer_2">
+ <g id="Layer_2-2">
+ <path d="M85.3,28c-.6,0-1.7.3-1.8-.3.8-.4,1-1.7,1.4-2,1.2-1,3-.1,3.2-2.3,0-1,2.4-1.3,3.2-2.1,1.8-.2.5.8,0,1.1-.8.4-2.2.4-2.1,1.3,1.2,0,3-.5,3.9-1.2.1,0,1.9-1.7,2-1.8.2-.4-.3-1.1-.2-1.2.2-.2,4.9-2.3,5.3-2.4,1-.3,2.1.8,3.3.6l-.6-1.9c14.7-5.6,29.5-10.8,45-13.6,125.2-22.8,242.2,67.7,250.8,194.5,2.3,34.5-4.7,69.2-18.6,100.8-1.5,3.5-4,6.7-5.2,9.6-.9,2.3-2.3,5.6-3.6,7.6-.5.7-1.2,1.1-.8-.2v-3.5c0,0-1.9,1.2-1.9,1.2l1.9-5.5-3.1,3.1,1.3-5.5-3.4,3.7-.3-2.5-4.3,1.2,1-5.5-4.4,4.9c-2.3-2,.1-4.6.4-6.8-1.3.8-4.3,6.6-5.9,6.1-2.2-.7.6-5.9.4-7.4l-3.1,4.6c-4,4.3-4.6,1.9-4-2.8,0-.6,1-1.9-.3-1.9-.4,2.2-4.7,9-6.8,5.7-1.2-1.9-.2-2.5,0-4.2,0-.6.3-1.7-.6-1.6-.2,2.3-5.5,9.5-7.4,5.7-1.1-2.2-.1-4,0-6.4-1.6,1.3-2.3,5-3.9,6.6s-4.3,2.3-5.1-.5c-1.3-4.1,1.4-11.2,5.1-13.6,4.8-3.1,4,4.9,4,7.5,1.1-.9,1.8-5.2,4-7.2,4.6-4.4,5.4,2.4,4.7,6l2.2-4.3c1.5-1.5,2.7-3.7,5.2-3,1.2,2.3.4,3.7,0,5.9-.1.6-.4,1.7.6,1.5.7-2.2,1.9-5.1,3.8-6.4,4.5-3.1,3,3.7,2.4,6.5l2.2-3.6,3.1-3.1c2.6,1.8,1.1,3.7.9,6.2l3.7-4,1.5-.3v5.6c2.6-2.3,2.1-5.4,2.8-8.6-3.9,3.1-3.9-.4-3-3.7-1.6,1.3-5.8,7.6-6.2,2.1,0-.9.6-3.4-.6-3.4-.8,2.2-2.5,5.3-5.3,4.9-.4,0-.7-1.3-.8-1.7-.2-1.3.1-2.8-.4-3.9-1.9,2.2-5.1,8.5-7.5,3.7l-.9-4.4c-.4,3.9-6.9,9.7-8,3.3-.2-1.3.8-3.2-1.2-2.8-.4,3.5-6.1,8.7-8.2,4.1-.7-1.5-.2-2.8-.7-4.2-1.8,2-2.1,5-4.9,6.3-4.3,1.9-4.7-1.4-5.7-4.5-.2-.6-.1-1.4-.9-1.2-.1,4.4-6.2,10.5-9.6,5.4-2.2-3.4-.8-11.6,2.6-14.2.5-.4,2.7-.9,1.6-1.8-.2-.2-1.3-.3-2.2-1.2-1.1-1.2-1.3-2.7-2.4-3.8-.8,1.3-1.2,2.8-2.2,4-3.7,4.8-8.3,3.5-10.5-1.9-.9-2.2-1.5,1.3-1.8,1.9-1.4,2.9-5.4,6.1-8.6,4.6-5.5-2.6-5.5-12.4-1.5-16.2.9-.8,1.9-.2,1.5-1.8-2.9-.3-4.3-2.9-5.8-5l-1.9,4.3-3.4,3.7c10.2,1,7,20.1-2.8,17.8-5.2-1.2-5.7-10.1-3.6-14.1l4-3.7c-2.5-.1-5-1.8-6.4-3.8-.6-.9-.6-2.4-1.5-2.5-.2,7.9-8.6,13-13.9,5.4-2.9-4.2-2.1-11.4,2.3-14.5-2.8-1.5-5.6-2.7-7-5.9-1.4,1.8-1,3.6-2.5,5.6-2.4,3.1-6,4.3-9.6,2.6-3.1-1.4-3.9-4.4-5.5-7.1.3-4.7,0-7.6,3.8-11.1-3.5-.4-5.5-2.6-7.7-5-.6,1.3-.8,2.8-1.5,4.1-1.5,3.2-3.2,3.3-5.7,5.1-2.6-.2-4.7-.4-7-2-1.8-1.2-2.8-3.4-4.1-4.9.2,4.9-1.2,10-6.7,10.9-7.8,1.3-12.9-9.5-8.6-15.6,3.5-4.9,10.8-3.9,13.6,1.1.8,1.4.8,2.5,1.7,3.5,0-1.9-.7-3.2-.4-5.1.4-2.9,2-4.9,3.6-7.2-3.9-.5-6.1-3-8.6-5.6.9,10.1-11.8,13.8-16.6,5-3-5.5-1.9-10.1,2.5-14.4-4,.4-7-2.2-9.5-5l-1.1,5.1c-2.9,5.9-10.4,6.8-14.7,1.9-2.9-3.4-3.5-9.7-.8-13.2l2.8-2.5c-3.2.2-7.7-1.6-9.5-4.4-.9-1.4-.5-2.2-1.5-3.1-.2,4.7.8,7.9-3.5,11.1-8.7,6.5-17.8-6.6-11.6-14.3,3.7-4.6,9.8-4.2,13.3.4.9,1.2.8,1.9,1.8,2.8.2-4.4-.8-8.3,3.2-11.4-1.2-1.4-3.3-1-4.9-1.9s-2.6-3.2-4.3-4c1.8,10.5-12.1,15.4-16.6,5.6-2.2-4.8-1.4-9.6,3.1-12.8,5-3.5,9.2-.9,12.9,2.9-.4-3.6.7-6.6,3.2-9.2-3.2-.5-5.7-2.3-8-4.4,0,6.9-7.7,12.5-13.9,8.4-5.2-3.4-5.3-11-1.5-15.5.6-.7,1.7-.7,1.9-1.6-3.4.3-8.1-1.1-8.6-5l-1.4,4.5c-1.9,5.8-9.4,9.4-13.8,4-6.2-7.5,4-19.9,11.6-13.8,1.1.9,1.2,2.3,2.4,2.8-.6-4.1,1.8-6.7,3.8-9.8-3.4.3-5-1.8-7.4-3.8-.6,5.6-5.4,11-11.4,9.6s-5.9-10-2.2-13.8c.9-1,2.6-1.3,3.1-2.7-3.1.8-6.1.7-7.9-2.3-3.2-5.4.9-8.8,4.4-12.5-5.3.5-8.1-.7-7.3-6.5.5-3.5,2.8-4.8,5-7.1-7.4,1-8-4.6-4.2-9.6l3.1-2.7c-9.2.8-6.2-7.1-1.1-10.8-1.6-.8-4,.6-4.3-1.9-.5-3.8,2.2-6.1,5-8-.4-.9-1.5.2-2.2.3-2.9,0-2.6-2.5-1.4-4.5.9-1.6,2.9-2.6,4.3-3.8-1.1-.7-2.8.3-3.7-1.3.9-2.7,2.9-4.4,5.6-5.2,0-1.6-3.5.5-3.1-1.6.4-1.9,2.5-2.5,3.7-3.7-.7-.9-.8-1.1-1.9-.7-.5.2-4.6,3-5.4,3.5-.2.1,0,.4-.1.5.6,0,3.2-.4,2.5.9-1.1,2.2-5.1,4-7.2,5.2-2-1.3.4-3,1.6-3.9,1-.8,2.2-1.5,3.1-2.2h0ZM97.6,23.2c.2-1.2.9-.4,2.1-.7,1.4-.4.8-3,.1-3-1,1.6-2.1,2.7-4,3-.2,1.1,1.1.6,1.8.6-.2,1.1,0,2-1,3.1l-3.4,2.5h2.7l.7,1.3c1.6-1.1,1.8-3.6,4.1-3.7v-.6c-2.2.2-1.5-1.9-1.9-2.5-.1-.2-.8,0-1.2,0h0s0,0,0,0ZM123,23.4c-2-.3-4.2,0-4.3,2.4,2.8.5,3.1-.1,4.3-2.4ZM109.2,30.7l1.9-2.7-3-1.6c-.1,1.7-1.9,2.3-2.6,3.7l3.6.6h0ZM123.4,33.3c0,0,.4-1,.7-1.5.4-.7.9-1.2-.3-1.5-1.9-.5-2.9,1-4,2.1.7.4,3.2,1.2,3.6.9h0ZM100,31.9l-3.7-1.3-.6,1.5-3.8,3.3c2-.2,3.4-.1,4.9,1.3,0-2.2,2.1-3.2,3.1-4.9h0ZM112.3,35.1l-3.7-1.3c-.1,2-2.4,2.6-3.1,4.3l4.3.6,2.6-3.7h0ZM137,36.5c.9.4,4.4.7,4.3-.9s-4.1-1.1-4.3.9ZM100.6,39.3c-1.6,0-3,.2-4-1.3l-4.7,5.5c2.2-.5,3.2.9,4.9,1.3.1-2.5,2.6-3.6,3.8-5.5h0ZM124.3,38.4l-2.2,2.7,2.8,1.5,2.2-2.7s-2.8-1.5-2.8-1.5ZM113.5,43.7l-3.3-.6-2.9,3.3c0,.7,3.9,2,4.3,1.6l1.9-4.3h0ZM142.3,44.7c-.9.3-2.3,1.9-.7,2.4,1.1.3,3.4-.7,3.4-1.5s-1.8-1.1-2.7-.9h0ZM100.5,49.1l-4.3-1.9c-.2,3-3.3,4.1-5,6.1,2.5-.7,4.1-.4,6.2,1.3.3-2.2,1.9-3.8,3.1-5.5h0ZM130.1,49.4l-3.3-.6-2.3,3c1.4.3,2.8,1,4.2.6l1.3-3h0ZM115.9,54.2c-1.7.2-2.9-.5-4.3-1.3l-3.1,4.9c1.9-.2,3.3.3,4.9,1.3-.5-1.3,3.2-4.3,2.5-4.9ZM149.2,56.4c-4.5-2.4-5.8,3.6-1.6,2.4.8-.2,1.3-1.7,1.6-2.4ZM101.6,59.6c-2.5.7-3-1.8-4.9-1.9.9,1.6-4.1,5.9-3.8,6.1,2.1-.1,3.9.7,5.5,1.9l.5-1.7,2.6-4.5h0ZM133.7,61.2c-1.3,0-2.4-.4-3.4-1.2l-2.8,3.6,4.3,1.3s1.9-3.7,1.9-3.7ZM170.1,64.6l-2.5-.6-.6,2.5c2.1.8,3.3.9,3.1-1.8h0ZM115.7,71.5c.2-1.8,1.6-3.1,2.5-4.6l-4-2.2-3.4,4.9,4.9,1.9h0ZM153.4,69.4l-3.1-1.3-1.3,2.8,2.8,1.5c.6,0,1.9-2.7,1.6-3ZM104,72c-2.3,0-3.9-1.1-5.5-2.5.2,3.2-2.9,4.4-4.4,6.8,2.6-.2,4.3.9,6.2,2.5.3-2.7,2.2-4.7,3.8-6.8h0ZM137.3,74.2c-1.1.5-3-1.2-3.4-1.2s-3.2,3.9-2.8,4.2l4,1.2c.6,0,2.5-3.9,2.2-4.2h0ZM121.8,79.6c-1.9,0-3.5-.8-4.9-1.9-.1,2.5-2.6,3.6-3.8,5.5l6.2,1.9c-.4-2.5,2.2-3.4,2.5-5.5h0ZM174.9,81.9l1.3-2.2-2.8-1.5-1.5,2.4,3.1,1.3h0ZM158.8,83.6c-2.8-.6-4.2-1.4-4.9,2.1l2.8,1.5,2.2-3.6s0,0,0,0ZM106.9,85.6c-2.2,0-4.1-1.2-5.8-2.5l-1.9,3.7-4,3.7c3.4-.3,5.6,0,8,2.6-.3-3.1,2-5.2,3.8-7.4h0ZM142.1,89c-1.5-.2-3-.7-4-1.9l-2.8,4.9,4.9,1.3,1.9-4.3h0ZM126,94.4c-2,0-3.5-1.1-5.2-1.9-1.5,1.8-2.1,3.8-4.1,5.2.8,1.2,2.3.9,3.5,1.4,1,.4,1.4,1.6,2.6,1.4l3.2-6.1h0ZM181.5,95c-2.6-1-3.3-.9-4.3,1.8l2.8,1.2,1.6-3h0ZM110.5,100.5c-2.8.1-4.8-1-6.4-3.1-1.3,1.3-1,3.4-2.6,4.9l-4,3.7c3.9-1.2,6.8.1,9.2,3.2-.4-3.6,1.7-6,3.8-8.6h0ZM164.2,99.7l-4.3-1.3-1.3,3.7,4.3,1.3,1.3-3.7ZM146.9,105.1l-4.9-1.9c.3,1.1-2.8,4.7-2.5,4.9l5.5,1.9s1.9-4.9,1.9-4.9ZM204.8,110.6c.9-1.9.6-3.5-1.8-3.7-1,2.4-.5,2.8,1.8,3.7ZM130.1,110.5c-2,0-3.9-1.1-5.2-2.5-1.1.8-1,2.2-1.7,3.3-.8,1.3-2.4,2-3,3.4,3.1-.4,5.2,1.4,7.4,3.2-.7-1.7,3.3-6.8,2.5-7.4h0ZM184.8,111.1l-2.2,2.7,3.4,2.2,1.5-3.3c-.1-.6-2.1-1.7-2.7-1.6h0ZM170.2,117.1l-4-1.9-2.8,3.9,4.9,2.8,1.9-4.9h0ZM152.9,122.5c-2.2.2-3.6-1.7-5.5-2.5-.1,2.4-2.7,3.8-2.5,6.2,2.2,0,3.8,1.4,5.5,2.5,0-2.3,1.7-4.1,2.5-6.2h0ZM230,125.1c1.1-2.7-1.3-4.2-3.1-1.6l3.1,1.6ZM135.5,127.9c-2.6,0-4.3-1.2-5.8-3.1-1.3,1-1.1,2.9-1.9,4.3s-2.8,2.1-3.4,3.7h3.3c0,.1,5.3,3.2,5.3,3.2-.6-3.3,1.9-5.3,2.6-8h0ZM209.1,125.5l-1.3,2.1,2.8,2.2c2.4-2,1.7-4.4-1.5-4.3h0ZM194.1,130.9c-1.4,0-2.5-.9-3.4-1.9l-2.2,4.3,4.3,1.9,1.3-4.3h0ZM176.2,135.7l-4.9-2.5c.2,2.2-1.7,3.6-2.5,5.5,2.1.2,3.7,1.6,5.5,2.5l1.9-5.5ZM251.5,140.1l2.1,1.3c1.8-1.3.8-2.6-.6-3.7l-1.6,2.4h0ZM158.9,141c-2.4-.2-4.2-1.9-6.1-3.1-.3,2.6-2,4.6-3.2,6.8,1.1.2,2.5.6,3.5,1.1,1.2.7,1.8,2.1,3.2,2-.4-2.8,2-4.5,2.5-6.8h0ZM236.6,141.8l-3.1-.6c-1.2,2.5-.1,3.3,2.4,3.7l.6-3.1h0ZM218.7,146l-3.7-1.9c0,1.5-1.2,2.5-1.9,3.7l4.3,1.9,1.3-3.7h0ZM200.7,150.1l-4.9-1.9c.1,1.6-1.1,2.8-1.9,4l4.9,2.8,1.9-4.9h0ZM174.1,158.5c2.3,0,4.4,1.4,5.8,3.1l2.8-5.8-5.5-3.4c-.2,2.4-1.9,4.2-3.1,6.1h0ZM277.2,158.2c-.2-.8.7-1.5.6-2.1-.2-.9-2.1-1.3-2.4-1,0,0-.5,1.6-.4,1.9.3.5,1.8,1.7,2.2,1.2h0ZM259.3,161.8l1.2-2.8-3-1.6c-1,2.2-.2,3.1,1.8,4.3h0ZM165.5,160.2c-2.5,0-4.7-1.5-6.4-3.1l-4.1,7.4c2.9.2,5.3,1.5,7.1,3.8,1.3-.9.8-2.4,1.2-3.7.4-1.1,2.7-3.8,2.2-4.3h0ZM242.6,161.6c-1.4-.2-2.1-1.7-3.7-1.3l-1.2,2.8,3.6,2.2,1.3-3.7h0ZM223.4,170.1c-.4-1.3,1.4-3.2,1.3-3.9-.1-.6-3.7-2.9-4.2-2.2l-1.9,3.3c.6.6,4.4,3.4,4.9,2.8h0ZM206.7,169.9c-2.1,0-2.9-2.4-4.9-2.5l-2.5,5.5,5.5,2.5c.2-2,2.2-3.4,1.9-5.5h0ZM189.4,174.7c-1.6.8-6.1-3.8-6.8-3.2.4,2.8-1.9,4.6-3.2,6.8,3,0,5.2,2.1,7.4,3.8,0-1.8.6-3.6,1.4-5.1.4-.8,1.4-1.1,1.2-2.2h0ZM298,176.3c.7-1.9.8-2.4-.9-3.7-1.9,1.6-1.8,3.4.9,3.7ZM280.4,174.3c-1.9,1.6-2.1,3.6.6,4.3,2.2-2,1.4-2.6-.6-4.3ZM172.1,180.1c-1.3-.3-2.8-.7-3.9-1.4-.8-.5-3.4-3.8-4.1-3,.2,2.3-.9,5.4-2.5,7.1-.8.8-1.9.6-1.9,1.5,4,.3,6.8,2,9.2,5,0-1.7.3-4,1-5.6s2.2-2.1,2.2-3.7h0ZM264,182.2l1.2-3.3-3-2.2-1.9,3.7,3.7,1.9h0ZM241.8,183.8c1.5.2,2.9,1.5,4,2.5l2.1-3.9-3.3-2.9-2.8,4.3h0ZM230.6,185.6c-1.6.4-3.7-2.8-4.6-2.5l-2.8,4.6,4.6,3.4c1-.8,1.1-2.1,1.7-3.3.4-.8,1.5-1.1,1.2-2.2h0ZM210.8,196.5c-.2-2.2,1-4.3,2.5-5.8-.8-1-2.1-1.2-3-1.9-1-.8-1.6-2.3-3.1-2.2-.2,2.4-1.9,4.2-3.1,6.1,1.1.1,2.4.7,3.3,1.4,1.2.8,1.9,2.5,3.5,2.4h0ZM196,194.5c-3.1-.3-5.1-2.6-7.4-4.4,0,3.3-1.6,6-4.4,7.7,1.2,1.4,3.3,1,4.9,1.9,1.4.8,2.2,2.7,3.7,3.4,0-3.3,1.5-6,3.2-8.6h0ZM300.9,197.3l1.1-2.8-2-2.2c-2.7,1.9-1.5,3.5.9,4.9h0ZM283,194.1c-1.5,2.8-1.9,4.1,1.5,5.6,2.6-2.2,1.6-4.9-1.5-5.6ZM268.1,203.2c-.1-1.6,1.1-2.8,1.9-4-.7-.4-3.8-3.4-4.3-2.8,0,1.8-1.9,2.7-1.9,4.3,1.9,0,2.4,2.6,4.3,2.5h0ZM248.4,198.7l-2.5,5.2,4,3.4,2.8-5.2-4.3-3.5h0ZM236,205.4c-2.1-.4-3.9-1.6-5.2-3.1-1.1.8-1,2.2-1.6,3.3s-2,1.5-1.8,2.8c2.2.5,3.9,1.3,4.9,3.4,1,2.2,1.5-1.6,1.9-2.4.6-1.4,1.9-2.4,1.9-4h0ZM219.3,209.5c-2.6-.4-4.7-1.9-6.4-3.8-1.6,2.7-2.4,5.2-4.7,7.4,3.7.1,5.8,2.5,8,5-.4-3.3,1.6-5.9,3.2-8.6h0ZM329.2,210l-1.1,2.1,2,2.8c2-1.3,1.9-4.7-.9-4.9ZM317.4,216c1-2.6,1.6-3.5-.9-5.6-1.6,2.1-3.3,2.9-.7,4.9.5.4.6.9,1.5.6h0ZM302.6,218.3l1.9-3.9-3-2.9c0,1.4-.9,2.4-1.8,3.4l3,3.4h0ZM283.4,218.1c1.5,0,2.3,1.6,3.4,2.5l2.8-4-3.3-3.4c-.3,0-3.1,4.6-2.8,4.9h0ZM271,224.2l2.5-5.2-4-3.4c-1.4,1.4-1.7,3.4-3.4,4.6l4.9,4.1h0ZM257.5,221.6c-2.5,0-3.3-2.9-5.5-3.1.4,1.4-3.9,5.6-3.1,6.1,2.4-.2,3.5,2.4,5.2,3.8l3.4-5.9v-.9h0,0ZM241.4,225.2c-2.9-.4-4.6-2.8-6.8-4.4.2,2.9-1.9,5.1-3.8,7.1,1.1,1.3,3.1,1.5,4.3,2.5,1.1.9,1.2,2.3,2.4,2.8.5-3.2,2.1-5.4,3.8-8h0ZM341.3,234.1c2.8-1.6,1.3-3.3.7-5.5-3.1,1.7-.9,3.1-.7,5.5ZM351.2,234.9c2.8-2,2.5-3.3,1.3-6.2l-2.4,2.8,1.1,3.3h0ZM330.2,235.9c-.6-1.7,2.1-2.9,1.9-3.9l-2.1-2.9-2.8,3.4c.4.6,1.1.9,1.5,1.6.6,1-.3,2.2,1.5,1.8h0ZM317,229.6c-.5.9-2.9,3.2-2.8,3.9l2.7,3.5,2.7-4-2.6-3.4ZM303.6,239.3l2.5-5.2-3.6-3.5c.4,1.7-2.7,3.6-2.5,4.6l3.6,4.1h0ZM288.7,242.3c0-2.4,1.8-4.1,3.1-5.8l-3.9-4-3.5,5.2,2.1,1.6,2.2,3.1h0ZM273.3,245.2c.2-2.6,1.9-4.3,3.1-6.4l-4.9-4.7c.4,3.2-3.4,4.2-3.8,6.7,2.8.1,3.7,2.9,5.5,4.4h0ZM386.9,242.6c1.2-2.2,1.4-3,.7-5.5-.9-.1-1.1,1.6-1.2,2.2,0,.7-.6,3.4.5,3.4h0ZM261.6,241.4c-2.6-.3-4-2.8-5.8-4.4-1.1,1-1.1,2.4-1.9,3.7-.9,1.3-2.7,2.2-3.4,3.7,1.9-.3,3.1.9,4.6,1.9l2.7,3.8c-.3-3.6,1.5-6.1,3.8-8.6h0ZM339.2,255.7c-.2-1.5,2.4-3.7,2.4-4.6,0-.2-1.7-3.9-2-4-.7,1.6-1.5,2.9-2.8,4.1l2.4,4.6h0ZM328.1,256.2c1.4-3.9,4.5-4.6.4-8.6l-3.4,4,3,4.7ZM350.4,247.8c-.6-.8-2.9,2.3-3,2.9-.4,1.2,1.1,3.1,1.1,4.5l3-4.1-1.1-3.3h0ZM357.7,255.9c0-1.5,2.2-3.1,2.4-4.1.2-.9-1.2-2.8-1.1-3.9l-2.2,2.4-.3.9,1.2,4.6h0ZM316.4,257.4c-.4-1.9,2.9-3.8,3.1-4.7.2-.9-2.8-2.9-2.4-4.6l-4.4,4.6c1.7,1.3,2,2.4,2.4,4.3.2.7.7.4,1.2.4h0ZM365.8,256c1.6-2.9,2.1-4,1.3-7.4l-2.2,2.4c-.6,1-.4,2.2-.2,3.3,0,.5.3,1.9,1.1,1.7h0ZM303.4,259.7l3.1-6.4-3.3-4.1c-1,.8-1.2,2.1-1.9,3-.8,1.1-2.4,1.7-2.2,3.1,2.7,0,2.4,3.4,4.3,4.4h0ZM373.2,249.9c-.7,2.2-3.5,4.5-1,6.8l2.1-2.8-1.1-3.9h0ZM288.5,262.6c.9,0,1-.9,1.3-1.5,1-2.2,1.6-4,3.7-5.5,0-.4-4.8-2.9-4.3-4.7-2.1,1.2-2.3,5.2-5,5.5v1.2c2.7.2,3.8,2.6,4.3,5h0ZM383.7,255.5c-2.9,0-1.7,3.6-1.9,5.5l2.4-2.9-.5-2.7h0ZM389.3,263.5c-.6-.8.6-3-.7-3l-1.3,6.2,1.6-1.8,1.5.6c.6-2.2-.8-1.6-1.1-2h0ZM335.3,276.1c.4-2.5,2.1-4.2,3.7-5.9l-1.8-5.2-2.8,4.3-1.5.6,1.1,1.7,1.3,4.5h0ZM344.6,275.5c-.4-1.6,3.6-5.4,3.6-5.8s-1.9-3.2-1.1-4.6c-.8.5-4.2,4.3-4.3,4.7-.2.7.9,1.7,1,2.5.2,1-.5,3.2.7,3.3h0ZM329.2,271v-.9l-3-4.7c.2,1.8-3.5,4.5-3.7,5.3-.2.7,1.4,2,1.7,3.1.2.8,0,2.5,0,2.7.9,1.1,1.1-.2,1.3-.9.5-1.7,1.9-4.5,3.7-4.7h0,0ZM356.4,270.7l-1.2-5-3.5,3.7c-.3.4.2,4.9,1.2,5.6.9-.6.7-.4,1.7-.9,1.1-1,1.2-1,1.8-3.4h0ZM313.7,278.9c.8-3.1,2.6-5.6,5-7.7-1.5-1.5-3.2-2.9-3-5.3-1.7,1.3-2,3.1-3.7,4.6-.8.7-1.7.8-1.9.9-1.1.9,1,1.4,1.5,1.8.5.4.8.9,1,1.5l1,4.2h0ZM366.8,276.4c-.1-1.6,2.1-2.4,2.4-3.5.5-1.6,0-4,.1-5.8l-2.2,3.1-1.6,1,1.2,5.2h0ZM362.7,266.9c-.9.7-3,2.5-3.9,3.2-.2.2,1.2,4.3.5,5.5.9-1.2,3.5-3.2,4.1-4.3M371.7,278.3l3-4.7-.5-3.9c-2.7,2.2-3.2,3.7-3.1,7.1,0,.7-.4,1.7.6,1.5h0ZM380.4,275.3l-1.2.3-.3-.3-.9-3.4c-2.5,2.7-2.9,4.6-2.5,8.3l2.5-3.4c1,.4,3.5-.4,2.5-1.5h0,0ZM382.2,280.8l-.6-3.1-.7,6.8,1.9-1.8.6,2.5,1.9-6.1-3.1,1.8h0ZM372.2,291.8v-3.7s-4,3-4,3c-.5.6.4,2.1.3,3.4-.1,1.4-1.3,2.6-1.3,4l3.4-4.3.9,3.7c4-1.4,3.4-5.7,4.4-9.2-1.6.6-1.6,3.3-3.7,3h0s0,0,0,0ZM377.2,295.6l-.6-1.2c-.4,2.6-2.4,4.3-3.8,6.5.1,2.5,1.8-2,2.5-1.5l-.6,3.7.7-1.1c2.6,1.6,3.4-6.6,3.1-6.9l-1.2.6h0Z"/>
+ <path class="st1" d="M222.9,241.7c-.2,3.4.6,5.6-1.6,8.6-6.1,8.3-17.5-.7-13.8-10.9.9-2.4,2.4-3.2,4.4-4.6,2.9.3,4.3-.4,7,1.4,1.9,1.3,2.9,3.5,4.1,5.5h0Z"/>
+ <path class="st1" d="M167.5,206.1c8.4-1.2,13.7,12,6.5,17.2-2.3,1.7-6.6,1.8-8.9.2-6.8-4.7-6.4-16.1,2.4-17.4h0Z"/>
+ <path class="st1" d="M142.3,192.9c7.5-1.6,13.1,6.6,10.4,13.1-4,9.8-18.2,3.9-15.7-7.3.4-2,3.3-5.4,5.3-5.8Z"/>
+ <path class="st1" d="M108.9,141.4c8.9-1.3,12.4,13.8,3.2,17.7-11.6,4.9-15.2-15.9-3.2-17.7Z"/>
+ <path class="st1" d="M114.3,160.5c8.3-1.2,12.2,12.1,4.9,16.9-2.5,1.6-7,1.4-9.2-.7-5.1-5-3.1-15.1,4.3-16.2h0Z"/>
+ <path class="st1" d="M119,180.3c6.9-1.5,10.7,4.5,10,10.8-.2,2.1-1.8,3.9-3.5,5.2-6,4.3-12.8-2.6-11.9-9,.3-2.6,2.7-6.4,5.4-7h0Z"/>
+ <path class="st1" d="M233.8,249.9c5.9-1.3,10.1,5.3,9.3,10.8-.9,6.9-8.9,10-13.2,3.9-1.7-2.5-2.1-7.1-1.2-9.9.5-1.4,3.6-4.4,5.1-4.7h0Z"/>
+ <path class="st1" d="M172.9,226.5c9.8-2.1,14.1,12.1,6.7,16.1-7.4,4-14.6-6-10.7-12.8.6-1.1,2.8-3,4.1-3.3h0Z"/>
+ <path class="st1" d="M150.2,212.7c8-1.2,12.7,10.6,6.8,15.7-6.8,5.9-16.3-4.9-11.9-12.1.9-1.5,3.3-3.3,5.1-3.6h0Z"/>
+ <path class="st1" d="M196.2,240.3c10.2-2.1,13.7,15.4,3.9,17.1-9.7,1.6-13.3-15.1-3.9-17.1h0Z"/>
+ <path class="st1" d="M217.7,254.7c7.8-1.7,12.8,10.4,6.5,15.4-7.4,5.8-16.7-7.5-8.8-14,.7-.6,1.4-1.2,2.3-1.4h0Z"/>
+ <path class="st1" d="M122.8,202c4.7-4.6,11.7-.5,12.6,5.3,1,6.1-4.9,11.5-10.7,8-4.2-2.6-5.5-9.8-1.9-13.3h0Z"/>
+ <path class="st1" d="M92.1,149.2c5.1-1.1,8.8,4.8,8,9.4-.5,2.7-2.9,6.7-5.8,7.2-10.3,1.7-11-14.7-2.2-16.6Z"/>
+ <path class="st1" d="M252.7,265.6c8.2-1.8,11,11.3,4.9,15.6s-11.2-2.5-10.4-8.7c.4-2.6,2.7-6.4,5.4-7h0Z"/>
+ <path class="st1" d="M88,131.3c6.3-1,8.8,5.9,6.6,11-1.8,4.1-6.3,7.1-10.4,4.1-5.4-3.8-2.5-14.1,3.9-15.2h0Z"/>
+ <path class="st1" d="M97.5,168.4c2.9-.6,5.8,1.4,7.1,3.8,3.3,6.5-2.3,15.5-9.3,11.6-5.5-3.1-4.3-14.1,2.3-15.4h0Z"/>
+ <path class="st1" d="M157.4,232.5c8.9-1.2,12.2,15.2,2.7,16-8.4.7-12-14.7-2.7-16Z"/>
+ <path class="st1" d="M179.5,246.3c7.6-1.6,12.2,7.8,8.1,13.2-1.7,2.2-3.2,2.4-5.9,2.1-7.3-.8-9-13.9-2.2-15.4h0Z"/>
+ <path class="st1" d="M88.7,127.9c-.9.8-4.4,2.6-5.6,2.5-8.1-.8-6.3-14.1,1.4-15.8,7.6-1.6,9,8.9,4.2,13.3Z"/>
+ <path class="st1" d="M132.8,220c7.9-1.7,12.9,9.6,6.5,14.1-2.6,1.9-5.1,1.5-7.7-.4-4.2-3.2-4.2-12.6,1.1-13.7h0Z"/>
+ <path class="st1" d="M237.9,269.7c7.5-1.6,11.1,10.5,4.4,15-1.6,1-2.5,1.2-4.3.6-6.6-2-7.3-14.1,0-15.6h0Z"/>
+ <path class="st1" d="M201.6,260.1c9.9-2.1,12.3,13.6,4.6,15.2-9,2-11.9-13.7-4.6-15.2Z"/>
+ <path class="st1" d="M102.9,188.2c9.5-2.1,11.8,13.5,3.9,15.2-9.5,2.1-11.3-13.6-3.9-15.2Z"/>
+ <path class="st1" d="M296.5,275.9c4.6-1,6.7,3.7,6.3,7.7s-3.9,10.9-8.8,9.2c-5.4-1.9-3.5-15.5,2.5-16.9h0Z"/>
+ <path class="st1" d="M283.5,278.2c5-1,6.8,4.9,6.2,8.9-1.2,8.3-11.2,11.4-12.3,1.7-.4-3.7,2.1-9.8,6.1-10.6h0Z"/>
+ <path class="st1" d="M81.5,99.1c9.9-2.1,8.5,11.9.7,14.4-6.7,2.2-9.2-5.2-5.8-10.3.8-1.2,3.7-3.9,5.1-4.2Z"/>
+ <path class="st1" d="M274.2,282.5c.8.8,1.9,3.9,2,5.1.4,8-8.5,14-11.7,5.3-1.5-4.2.5-10.7,5.3-11.7,1.1-.2,3.5.6,4.3,1.3h0Z"/>
+ <path class="st1" d="M222.4,274.5c8.1-1.8,11,10.3,5,13.8-8.1,4.7-13.3-12-5-13.8Z"/>
+ <path class="st1" d="M109.5,208c8-1.7,12,9,5.6,13.2-8.2,5.4-13.4-11.5-5.6-13.2h0Z"/>
+ <path class="st1" d="M76,157.7c1.6-.3,3.9-.2,5.1.9,4.3,3.9,1.9,13.9-4.1,13.8-7.3,0-7.2-13.3-1-14.7h0Z"/>
+ <path class="st1" d="M164,252.3c1.4-.3,3.3.1,4.5.9,7.4,4.5,3.4,17.7-5.2,11.9-4.6-3.1-4.9-11.6.8-12.8Z"/>
+ <path class="st1" d="M186.7,265.5c8.1-1.6,11.6,12.9,3.3,14-7.5,1-10.7-12.5-3.3-14Z"/>
+ <path class="st1" d="M260,286c3.2,3,2.5,11.7-1.8,13.1-6.4,2.1-8.1-4.2-7.3-9.3.6-4,5.9-6.8,9.1-3.8Z"/>
+ <path class="st1" d="M81.1,84.9c6-.9,6.2,5.9,3.4,9.8-1.4,2-4.8,4.5-7.3,4.2-7.5-.9-3-12.9,3.8-13.9h0Z"/>
+ <path class="st1" d="M71.8,139.8c10.3-2.2,8.1,14.6-.3,14.1-6.5-.4-5.5-12.9.3-14.1Z"/>
+ <path class="st1" d="M140.6,239.8c9-1.9,11.9,14.3,2.2,13.5-6.7-.5-8.6-12.1-2.2-13.5Z"/>
+ <path class="st1" d="M69.6,122.4c8.9-1.8,6.8,15.3-2.1,14.1-7-1-3.6-12.9,2.1-14.1Z"/>
+ <path class="st1" d="M81.4,176.9c9.6-2.1,9.1,15.9.5,14-6.1-1.4-6.2-12.7-.5-14Z"/>
+ <path class="st1" d="M207.5,279.3c6.8-1.5,10.4,8.8,5.3,12.3-7.4,5.2-13.1-10.6-5.3-12.3Z"/>
+ <path class="st1" d="M118.4,227.4c8.7,0,8.5,15,.6,13.2-7-1.6-7.1-13.2-.6-13.2Z"/>
+ <path class="st1" d="M85.7,208.1c-2.7-2.6-2.8-9.2.6-11.2,6.7-4,11.8,7.6,6,11.7-1.9,1.4-5,1-6.6-.5h0Z"/>
+ <path class="st1" d="M246.3,301c-.1.2-1.9,1.2-2.1,1.2-8.6,2.2-9.4-13.6-1.6-13.5,5.6,0,6.8,9,3.7,12.3h0Z"/>
+ <path class="st1" d="M71.6,107.7c.4.5,1.4,3.1,1.4,3.9,0,2.2-2.1,6.1-3.8,7.3-7.5,5.4-11-5.7-3.9-10.8,1.6-1.2,4.9-1.9,6.4-.4h0Z"/>
+ <path class="st1" d="M295,295c8.9-1.9,5.1,15.7-2.1,14.7-4.8-.7-3.2-13.5,2.1-14.7Z"/>
+ <path class="st1" d="M302.6,307.8c-.2-.2-1.2-3.2-1.3-3.9-.3-3.6,2.7-12.1,7.1-11.3,5.4,1,2.4,14.4-3.1,15.3-.6,0-2.4.2-2.7,0h0Z"/>
+ <path class="st1" d="M283.3,297.3c.6-.1,1-.1,1.6,0,6.3,1.5,2.7,15-3.7,14.1-5-.7-4.3-12.7,2.1-14.1Z"/>
+ <path class="st1" d="M73.3,84c-1.3-1.3-.6-4.6,0-6.2,2.5-5.7,12.7-8.7,11.6-.7-.6,4.1-8.3,10.3-11.7,6.9h0Z"/>
+ <path class="st1" d="M317.9,291.5c3-.6,4.1,2.6,3.8,5.1-.4,3.7-3.5,11.7-8.3,10.1-3.8-1.3-.4-14.1,4.5-15.2h0Z"/>
+ <path class="st1" d="M270.3,300.3c5.7-1.2,6.4,7.5,3.2,11.4-5.1,6.1-10.1-2.5-6.6-8.6.6-1,2.3-2.5,3.5-2.7h0Z"/>
+ <path class="st1" d="M148.5,259c7.2-1.5,10.6,10.8,3.9,12.2-6.6,1.4-10.2-10.9-3.9-12.2Z"/>
+ <path class="st1" d="M171.8,271.5c6.5-1.3,10,10.9,3.3,12.2s-10.8-10.7-3.3-12.2Z"/>
+ <path class="st1" d="M67.9,92.3c4.3.1,3.7,5.4,2.2,8.2s-6.5,6.6-9.1,3.2c-2.9-4,2.5-11.5,6.9-11.4Z"/>
+ <path class="st1" d="M225,294.3c.3-.3,2.8-1.3,3.3-1.3,6.3,0,7.7,11.7,1,12.9-1.9.4-5.2-2.9-5.6-4.7s0-5.6,1.3-6.8h0Z"/>
+ <path class="st1" d="M99.5,217.2c5.9,6.2-2.2,15.7-7.2,8-4.1-6.4,2.7-12.6,7.2-8Z"/>
+ <path class="st1" d="M192.7,284.7c5.4-1.5,9.9,6.3,6.3,10.2-4.2,4.6-10.7-2.1-8.9-7.2.3-.9,1.8-2.7,2.6-2.9Z"/>
+ <path class="st1" d="M257.3,303.2c5.5-1.2,7.2,8.8,2.5,11.9-7.2,4.8-9.2-10.5-2.5-11.9Z"/>
+ <path class="st1" d="M125.1,247c3.9-1.1,8,3.4,7.6,7-.8,6.8-9.6,5.3-10.5-1.3-.3-2.1.7-5.1,2.9-5.7h0Z"/>
+ <path class="st1" d="M57.6,148.3c8.9-1.9,5.8,14.3-1.2,11.9-4.7-1.6-3.3-11,1.2-11.9Z"/>
+ <path class="st1" d="M61.7,166.2c7.4-1.5,6.8,11.5,1.6,12.3-6.9,1-6.6-11.2-1.6-12.3Z"/>
+ <path class="st1" d="M73.4,71.6c-3.7-3.7,5.7-13.5,9.6-10.3,3,2.5-.4,7.8-3.1,9.4-1.6.9-5,2.4-6.5.9Z"/>
+ <path class="st1" d="M51.8,142.4c-.5-.5-1.3-3.1-1.4-3.9-.2-4.8,5.9-10.9,8.7-6,3.2,5.6-3.8,13.5-7.3,9.9Z"/>
+ <path class="st1" d="M66.5,185.4c6.8-2,8.4,10.3,2.8,11.5-7.3,1.6-7.1-10.3-2.8-11.5Z"/>
+ <path class="st1" d="M212.9,297.9c7.6-2.2,9.6,12.2,1.7,11-5-.7-6.1-9.7-1.7-11Z"/>
+ <path class="st1" d="M67.5,79.2c1.8-.1,3.4,2.1,3.2,3.8-.5,3.7-5.4,9.5-9.2,7.5s1.2-10.9,6.1-11.2h0Z"/>
+ <path class="st1" d="M102.4,235.1c6.5-1.3,8.8,9.8,3.3,10.9-6.6,1.3-8.7-9.8-3.3-10.9Z"/>
+ <path class="st1" d="M54.2,114.9c2.1-.4,3.5,1.6,3.8,3.5.5,3.9-4.7,11.2-8.3,7.5-2.9-2.9.8-10.4,4.6-11h0Z"/>
+ <path class="st1" d="M244.8,307c6.5-.2,5.9,10.8,1.1,11.5-6.8,1-6.5-11.4-1.1-11.5Z"/>
+ <path class="st1" d="M293.6,312.8c1.5-.3,2.9,1.5,3.1,2.9.6,3-2.5,10.6-6.2,9.7-4.6-1.1-1.4-11.8,3-12.6h0Z"/>
+ <path class="st1" d="M77.4,214.9c-.3.3-1.6.7-2.1.7-4.2.3-6.1-4.6-4.8-8.1,2-5.9,9.3-2,8.3,4.1,0,.6-1.1,3-1.4,3.3Z"/>
+ <path class="st1" d="M304.2,311.1c3.2-.6,2.8,4.2,2.5,6.3-.4,2.4-3.6,7.3-6.3,6.5-3.9-1.2-.5-12,3.9-12.8h0Z"/>
+ <path class="st1" d="M281.9,315.2c5.1-1.1,4.8,8.8.7,11.3s-5.3-1.9-4.8-5.5c.3-2,2-5.3,4.2-5.8h0Z"/>
+ <path class="st1" d="M308.7,322.6c-2.2-2.3,1.3-11.6,4.3-12.5,4.7-1.5,3.7,4.1,2.6,7-.8,2-4.5,7.9-6.9,5.5h0Z"/>
+ <path class="st1" d="M156.3,278.2c7.7-2.2,10.1,11.6,1.8,9.7-4.2-1-5.8-8.5-1.8-9.7Z"/>
+ <path class="st1" d="M139.1,275.3c-1.7,1.7-4.9.4-6.3-1.2-3.8-4.1-.8-10.9,4.6-7.6,2.6,1.6,4,6.5,1.7,8.8h0Z"/>
+ <path class="st1" d="M179.1,290.1c2.7-.5,5.7,2.1,6.2,4.7,1.1,5.5-4.9,7.5-8.2,2.5-1.7-2.5-1.2-6.6,2-7.3h0Z"/>
+ <path class="st1" d="M324.7,308.8c1.5,1.5.2,5.4-.5,7.2s-3.8,6.9-6,6.3c-3.4-1,.6-10.4,2.4-12.1.6-.6,3.5-2,4.1-1.3h0Z"/>
+ <path class="st1" d="M54.3,109.7c-1.1,1.1-3.8,2.6-5.1,1.4-4.2-3.5,2.6-12.9,6.6-10.2,2.5,1.7.1,7.2-1.5,8.8h0Z"/>
+ <path class="st1" d="M74.1,60.6c-2.9-4.5,7.9-13.1,10.2-8.5,1.8,3.6-6.5,10.5-10.2,8.5Z"/>
+ <path class="st1" d="M67.6,67.5c3.9-.9,3.4,3.8,1.9,6.3-1.9,3.2-9,7.2-8.6,1.2.2-3,3.9-6.9,6.7-7.6h0Z"/>
+ <path class="st1" d="M270.1,318.2c6.9-1.4,4.5,11.5-.8,11-4-.4-3.7-10.1.8-11Z"/>
+ <path class="st1" d="M80.3,223.7c3.5-1,6.6,4.1,5.4,7.4-1.9,5.5-7.5,2.7-8.2-2.4-.3-1.7,1.2-4.6,2.8-5Z"/>
+ <path class="st1" d="M325.2,321.7c-1.6-1.7,1.2-8.4,2.4-10.3s5.2-5.6,5.7-1.7c.4,3.3-3.9,12.5-8.2,12h0Z"/>
+ <path class="st1" d="M231.3,311c5.6-1.6,7.5,10.1,1.6,10.5-3.5.2-5.6-5.3-4.2-8.1.2-.4,2.2-2.2,2.6-2.4h0Z"/>
+ <path class="st1" d="M199.9,302.7c5.1-.9,8.2,8.6,2.7,9.7s-8-8.8-2.7-9.7Z"/>
+ <path class="st1" d="M115.2,255.6c4.7,4.8-1.6,12.2-5.7,5.9-3.3-5.1,1.5-10.2,5.7-5.9h0Z"/>
+ <path class="st1" d="M335.6,320.4c-4,3.9-3.8-1.2-2.7-4.3.7-2,4.1-8.4,6.4-8.4,1.3,0,1,4.2.8,5.1-.3,1.4-3.4,6.6-4.5,7.6h0Z"/>
+ <path class="st1" d="M46.4,184.3c-.2-.2-1.2-2.4-1.2-2.8-1.1-5.6,5.1-9.9,7.1-3.9,1.3,4.1-2.7,9.9-5.8,6.6h0Z"/>
+ <path class="st1" d="M261.5,321.8c.2.2,1.2,2.4,1.2,2.8.6,2.9-3,8.9-6.1,6-3.9-3.6,1.1-12.6,4.9-8.8h0Z"/>
+ <path class="st1" d="M43,157.4c3.7-3.3,7.1,2.9,4.4,7.3-1.4,2.2-3.5,3.2-5.2.9s-1.2-6.3.8-8.2h0Z"/>
+ <path class="st1" d="M53.2,87.1c5.4-1.6,3.5,6.6,0,8.8-4.5,3-6.2-.7-4.1-4.8.4-.8,3.3-3.8,4-4Z"/>
+ <path class="st1" d="M56.5,202.9c-.3.3-1.7.7-2.1.7-3.1.2-4.5-5.1-3.2-7.6,2.5-4.8,6.9-1,6.6,3,0,.5-1.1,3.6-1.4,3.9h0Z"/>
+ <path class="st1" d="M344.9,308.4c3.6-1,1.3,5.1.5,6.7-.6,1.2-4.8,6.7-5.6,6.7-.6,0-.9-1.5-1-2.2,0-2.5,3.8-10.6,6.1-11.3h0Z"/>
+ <path class="st1" d="M42.8,139.4c.7,0,2.1,1.3,2.3,1.8,1.9,3.9-2.8,10.8-6,7.7-2.1-2.1,0-9,3.6-9.5h0Z"/>
+ <path class="st1" d="M222.6,323.7c-3.5,3.4-9.3-4.2-5.4-7.6,4.2-3.6,8.2,4.8,5.4,7.6Z"/>
+ <path class="st1" d="M71.6,57.6c1.4,3.3-5.4,10.3-8.1,8.9-3.4-1.7,1.8-7.3,3.9-8.5,1.4-.7,2.7-1,4.1-.4h0Z"/>
+ <path class="st1" d="M88.1,242.9c3.4-.9,6.9,4.5,4.8,7.4-4.4,5.8-9.9-5.9-4.8-7.4Z"/>
+ <path class="st1" d="M82.7,42.3c.9-.1,2.3-.3,2.6.9.9,3.1-6.4,9.2-9.3,7.3-.7-.5-.7-1-.5-1.8.6-2.6,4.7-6,7.2-6.4h0Z"/>
+ <path class="st1" d="M41.2,123.4c5-.9,2.2,11.1-2.6,9.7-3.5-1-1.1-9.1,2.6-9.7Z"/>
+ <path class="st1" d="M147.6,292.1c-2.9,2.8-8.8-2.5-6.5-6.3,3-5,9.8,3.1,6.5,6.3Z"/>
+ <path class="st1" d="M246,324.7c6.4-1.9,6.2,8.6,1.6,9.1-4,.4-4.2-8.3-1.6-9.1Z"/>
+ <path class="st1" d="M299.6,328.3c2.6-.8,2.3,3.3,1.9,5.1-.5,2.3-3,4.9-5.2,5.8-3.7-1.9.7-10.1,3.3-10.9h0Z"/>
+ <path class="st1" d="M164.8,296.2c4.8-1.4,7.7,6.1,4.5,7.7-5.2,2.5-8.4-6.6-4.5-7.7Z"/>
+ <path class="st1" d="M314.4,336.2c-1.5,1.5-3.6,2.1-3.6-.8,0-2.3,3.9-10.1,6.6-9.5,3.1.6-1.7,8.9-3,10.3Z"/>
+ <path class="st1" d="M49.8,83.9c-1.2-3.1,3.7-10.6,6.9-8.9,2.5,1.3,0,5.3-1.3,6.8-1.6,1.8-3.1,2.4-5.6,2.1h0Z"/>
+ <path class="st1" d="M308.3,327.1c3.4-1,1.8,4.8.9,6.5-2.1,4.5-7.2,6.9-5.6,0,.3-1.5,3.2-6,4.6-6.5h0Z"/>
+ <path class="st1" d="M352.5,309c.5.5-.9,4.4-1.3,5.3-.5,1.1-5.4,9.2-6.9,7.6-.2-2.9,1.2-5.8,2.7-8.2.6-.9,4.1-6.1,5.5-4.7h0,0Z"/>
+ <path class="st1" d="M292.4,330.7c.2.3,0,3.2,0,3.9-.4,2.8-2.2,4.6-4.7,5.8-3.5-2-.7-10,2.7-10.3.3,0,2,.5,2,.6h0Z"/>
+ <path class="st1" d="M40.6,108.5c4.8-1.4,2.4,10.8-3.2,9.1-2.9-.9.6-8.4,3.2-9.1Z"/>
+ <path class="st1" d="M279.8,332.4c5.1-1.5,3,9.7-1.4,9.2-4.1-.4-1.7-8.3,1.4-9.2Z"/>
+ <path class="st1" d="M119.9,272.9c4.4-1.2,7.2,6.8,3.4,7.9-4.3,1.2-8.2-6.6-3.4-7.9Z"/>
+ <path class="st1" d="M185.6,308.1c5.2-1.5,7.7,6.1,4.5,7.7-4.5,2.2-7.9-6.8-4.5-7.7Z"/>
+ <path class="st1" d="M318.3,337c-.6-3.4,1.9-8.5,4.4-10.8,1.6-1.4,3.4-1.1,3,1.2-.5,3-3.9,9.3-7.4,9.6Z"/>
+ <path class="st1" d="M60,213.1c3.7-.6,5.3,7.6,2.2,8.5-5,1.5-7-7.7-2.2-8.5Z"/>
+ <path class="st1" d="M359.3,309c.5.5-.5,1.5-1,1.9-2.7,2.4-3.2,6.1-5.7,9.1-.8,1-2,2.6-3.4,2.5-1.1-1.3,3.5-9.6,4.8-11,1-1.2,2-2.1,3.6-1.2.4,0,.5-2.5,1.6-1.2h0Z"/>
+ <path class="st1" d="M234.8,328.3c6.2-1.8,5.1,10.2.1,7.6-2.5-1.3-2.9-6.9-.1-7.6Z"/>
+ <path class="st1" d="M332,325.5c.3,2.9-1.7,6.3-3.5,8.6-1,1.2-2.2,2.8-4,2.5-1-1,2-6.8,2.9-8,.6-.8,3.7-4.1,4.6-3.1h0,0Z"/>
+ <path class="st1" d="M270,334.8c3.4-.6,3.3,6.2.5,8-5,3.2-5-7.2-.5-8h0Z"/>
+ <path class="st1" d="M41.4,95c5.8-1.7.7,9.6-3.2,8.5-2.8-1.7,1.2-7.9,3.2-8.5Z"/>
+ <path class="st1" d="M205.6,326.5c-2.3-2-2-7.4,1.9-6.5,2.6.6,3.5,4,2.8,6.3-.5,1.6-3.7,1.1-4.7.2h0Z"/>
+ <path class="st1" d="M70.9,48.4c4.9-1.1,1.3,4.3-.8,6.1-3.5,2.8-7,2.5-3.9-2.1.8-1.3,3.2-3.6,4.7-4h0Z"/>
+ <path class="st1" d="M364.2,312.8l-1.9,5.5,5.6-5.5-3.8,7c.3.8,1.3-.7,1.5-1,.5-.6.7-1.7,1.6-1.8l-1.3,4.3,1.9.3c-1.2,2.8-2.8,6.1-5,8.3l.6-2.5-1.2.3.6-2.1-1.9,1.2,1.3-3.7-3.1,1.8,2.5-5.5-4.7,4.9c-.5,0-.4-.6-.3-.9.3-1.6,3.6-7.5,4.8-8.9.7-.8,1.5-2,2.8-1.9h0s0,0,0,0Z"/>
+ <path class="st1" d="M330,336.5c-.6-.6,1.5-4.9,2-5.7.6-1.1,4-5.7,5.2-5.3s.6,1.1.4,1.7c-.2,1-.6,2.3-1.1,3.2-.6,1.1-5,7.7-6.5,6.2h0Z"/>
+ <path class="st1" d="M66.6,232.2c3.7-1.1,6.2,6.3,2.9,7.3-4.7,1.4-5.7-6.5-2.9-7.3Z"/>
+ <path class="st1" d="M101,268.9c-.3.2-2.6.1-3.2,0-2.2-.7-4.4-7.6,1.2-6.7,2.8.5,3.5,5.8,2,6.8h0Z"/>
+ <path class="st1" d="M59.2,64.2c1.2,2.8-4,8.6-6.5,8-2.2-.6.8-4.9,1.6-5.8,1.4-1.5,2.8-2.4,5-2.1h0Z"/>
+ <path class="st1" d="M77.9,42.2c0-3.6,3.8-6.1,7-6.9.6-.1,1.4-.7,1.7.5.7,2.9-5.9,7.3-8.7,6.4h0Z"/>
+ <path class="st1" d="M353.6,323.8c-.1-5,3.4-9.5,6.6-12.9,1.1.9,1,1.3.6,2.5-1,3.3-4.6,8-7.2,10.4h0Z"/>
+ <path class="st1" d="M258.8,337.8c4.6-1.3,4,7,.5,7.4s-3.1-6.6-.5-7.4Z"/>
+ <path class="st1" d="M31.8,148.5c1.7,2.2-.5,8.8-3.4,7.9-2.7-.8-.9-9.6,3.4-7.9Z"/>
+ <path class="st1" d="M34.1,165.9c.2.1.7,2.2.7,2.7.4,7.2-7.1,6.2-4.7-1,.5-1.6,2.8-2.6,4-1.7Z"/>
+ <path class="st1" d="M335.6,336.6c-1-2.3,5.4-11,6.6-11,.6,0,.9,1.1.6,1.9-.6,2.2-2.3,5-3.8,6.7-.4.5-2.9,3.1-3.4,2.4h0Z"/>
+ <path class="st1" d="M26.4,139.8c-1.6-2.2.7-8.5,3.4-8,2.2.4.9,9.8-3.4,8Z"/>
+ <path class="st1" d="M45.4,82.6c.3,3.5-2.3,7.9-6.2,7.3-.2-3.4,2.6-7.7,6.2-7.3Z"/>
+ <path class="st1" d="M223.7,331.9c2.9-.8,5,5.9,2.3,6.7-4.6,1.3-5.1-5.9-2.3-6.7Z"/>
+ <path class="st1" d="M173.2,313.5c3.4-1,5.9,3,3.9,5.9-3.6,2.1-6.9-5-3.9-5.9Z"/>
+ <path class="st1" d="M151.7,302.1c4.7-1.3,6.9,7.8,1.2,6-2.4-.7-3.2-5.5-1.2-6Z"/>
+ <path class="st1" d="M34.5,191.1c-1.1-2-1-7.9,2.1-7.3s2.4,8.8-2.1,7.3Z"/>
+ <path class="st1" d="M247.3,346.7c-1.6-1.6-.7-6.9,2.6-5.9,3.6,1.1.9,9.5-2.6,5.9Z"/>
+ <path class="st1" d="M129.6,290.9c3.3-.6,5.4,5.4,2.9,6.1-4.4,1.2-6-5.5-2.9-6.1Z"/>
+ <path class="st1" d="M347.4,326.8c.3.3-2.4,5.4-2.9,6.1-.4.6-4.2,4.9-4.6,4.3-.2-2.5,1.5-4.8,2.9-6.7,1.2-1.6,2.4-3.7,4.6-3.7Z"/>
+ <path class="st1" d="M303.4,343.7c.1,3.8-2,6.3-4.7,8.6-3.3-2,2.8-10.5,4.7-8.6Z"/>
+ <path class="st1" d="M193.5,324.8c3.8-1.1,6.4,5.1,2.9,6.1-3.2.9-5.4-5.4-2.9-6.1Z"/>
+ <path class="st1" d="M293.9,344.9c4.7-1.3-.4,8.6-2.6,7.9-2.5-.8,1.1-7.5,2.6-7.9Z"/>
+ <path class="st1" d="M42.9,209.7c-4.2,1.6-4.7-6.2-2.6-6.8,3.8-1.1,3.9,4.3,2.6,6.8Z"/>
+ <path class="st1" d="M68,47c-.6-.6,2.5-4,3.2-4.5,5.4-4.5,6.4-.7,1.7,3-1.5,1.2-2.8,1.9-4.9,1.5h0Z"/>
+ <path class="st1" d="M283,354c-.8-1.9,1.3-8,3.5-7.9,3.2.2,0,8.9-3.5,7.9Z"/>
+ <path class="st1" d="M28.8,117.1c4.2-1.2,1.2,8-2,7.3-2.1-.4.1-6.8,2-7.3Z"/>
+ <path class="st1" d="M317,342c.6.6-1.7,4.8-2.2,5.5s-3.6,4.1-4.6,3.1c-.3-.3,2.3-5.4,2.9-6.1s3.1-3.4,4-2.5h0Z"/>
+ <path class="st1" d="M310.2,342.5c1.2,1.3-2.8,9.2-5.6,8.6-.3-3,1.3-5.5,3.5-7.4.7-.6,1-1.5,2.2-1.2h0Z"/>
+ <path class="st1" d="M60.9,54.4c1.8-.3,1.2,1.9.5,3-.7,1-4.4,4.5-5.6,4.3-1.3-.3-.3-2.5,0-3.1.6-1,4-4.1,5-4.2h0Z"/>
+ <path class="st1" d="M75,251.4c4.8-1.3,5.1,9,.2,5.2-1.6-1.2-1.9-4.7-.2-5.2h0Z"/>
+ <path class="st1" d="M106.9,280.1c2.6-.7,5.2,4,3.3,5.2-3.4,2.2-7-4.2-3.3-5.2Z"/>
+ <path class="st1" d="M322.6,341.4c1.2,1.5-3.9,8.7-6,9.2-1.1-.9-.8-.6-.4-1.6,1.4-3,3.1-6.4,6.3-7.6h0,0Z"/>
+ <path class="st1" d="M48,70.9c.1,3.2-2.2,6.9-5.6,7.3-.5-3.5,2.3-6.8,5.6-7.3Z"/>
+ <path class="st1" d="M274.9,355.1c-1.4-1.6.7-7.5,3.5-6.8,3,.8-1.8,8.7-3.5,6.8Z"/>
+ <path class="st1" d="M31.7,102.8c1.1,2.7-1,7.5-4.4,6.8-.3-2.7,1.3-6.6,4.4-6.8Z"/>
+ <path class="st1" d="M350.5,328.1c-.2,2.9-2.6,6.1-4.7,8-.7.6-1,1.5-2.2,1.2-.6-.7,3.9-7.1,4.8-7.9.6-.7,1-1.5,2.1-1.2h0Z"/>
+ <path class="st1" d="M237.4,349.1c-1.4-1.4-.4-5.7,1.4-5.4,4.5.8,1.7,8.4-1.4,5.4Z"/>
+ <path class="st1" d="M321.3,350c-1.2-1.3,4.6-8,6.2-8.6.2,3.1-1.9,5.5-4.1,7.4-.7.6-1,1.5-2.2,1.2Z"/>
+ <path class="st1" d="M212.5,336.1c2.4-.7,4.6,4.6,1.6,5.5-2.4.7-4.8-4.6-1.6-5.5Z"/>
+ <path class="st1" d="M268.5,350.1c2.9-.8,1.5,7.6-1.3,6.8-2-.6-.6-6.2,1.3-6.8Z"/>
+ <path class="st1" d="M46.9,222.1c3.3-.9,4.4,4.7,1.7,5.5-2.9.8-3.7-4.9-1.7-5.5Z"/>
+ <path class="st1" d="M332.4,342.1c.9,1-5.4,8.1-6.9,8.6.1-2.8,2.6-5.6,4.7-7.4.7-.6,1-1.5,2.2-1.2h0Z"/>
+ <path class="st1" d="M353.5,329.4c.8.9-5.2,8.7-6.9,9.2-.3-1.2.4-1.7.9-2.5.8-1.4,2.2-3.6,3.2-4.8.7-.8,1.5-2,2.8-1.9h0Z"/>
+ <path class="st1" d="M87.4,274.3c-2.8.7-5.8-3.1-3-4.7,2.1-1.3,3.9,2.7,3,4.7Z"/>
+ <path class="st1" d="M336.1,342.8c.7.8-3.8,6-4.7,6.8-.7.6-1,1.5-2.2,1.2l3.1-5.2c.6-.5,3-3.5,3.7-2.7h0Z"/>
+ <path class="st1" d="M65.5,46.4c1.1,1-5.2,7.2-6.2,6.1-1-1,2.9-4.6,3.7-5.2.6-.4,1.8-1.5,2.5-.9Z"/>
+ <path class="st1" d="M260.7,353.2c0,0,.6,1.8.6,2.1,0,2-1.8,3.2-3.7,2.7-.3-.3.2-4.6.7-4.9.2-.2,2.1-.1,2.4,0h0,0Z"/>
+ <path class="st1" d="M29.9,96c-1.2-1.2,2.2-5.4,3.4-6.1,2.7,1.3-2,7.7-3.4,6.1Z"/>
+ <path class="st1" d="M164.7,323.2c-1.6.9-4.1-.4-4.3-2.2-.4-4.2,5.4-1.2,4.3,2.2Z"/>
+ <path class="st1" d="M51.2,61.1c.3,2.9-2.3,5.6-5,6.1-.4-2.3,1.3-3.6,2.8-4.9.7-.6,1-1.5,2.2-1.2Z"/>
+ <path class="st1" d="M141.9,308.9c.5.5,1,3.3.7,3.6-2.1.7-4.9-1.1-4.3-3.4.4-1.4,2.8-.9,3.6-.2h0Z"/>
+ <path class="st1" d="M56.8,245.6c-1.6,1.8-4.9-4.2-2.1-4.9,2.4-.6,3.3,3.6,2.1,4.9Z"/>
+ <path class="st1" d="M79.2,34.2c.2,1.2-.6,1.5-1.2,2.2-1.4,1.6-3.3,3-5.6,3.3-.2-1.2.6-1.5,1.2-2.2,1.4-1.6,3.3-3,5.6-3.3Z"/>
+ <path class="st1" d="M295.9,358.4c.7.8-2.3,6.6-4.4,6.1-.3-2.2.7-3.5,2.2-4.9.7-.6,1.1-1.5,2.2-1.2Z"/>
+ <path class="st1" d="M185,333.9c-2.8.5-5.1-2.1-2.7-4.4,2.6.5,3.1,1.8,2.7,4.4Z"/>
+ <path class="st1" d="M301.4,357.9c.7.8-2.3,6.6-4.4,6.1-.7-.8,2.3-6.6,4.4-6.1Z"/>
+ <path class="st1" d="M20,157.7c.1,1.5,0,2.7-.5,4.1-.4,1-.5,1.1-1.7.8-2-.6-.5-5.9,2.2-4.9h0Z"/>
+ <path class="st1" d="M230.5,351.6c0,0-1.6.5-1.8.4-1.6-1-2.5-4.2-.2-4.6,1.7-.3,2.7,3.6,2,4.3h0Z"/>
+ <path class="st1" d="M307,357.3c.2,2.1-1.4,3.7-2.8,4.9-.7.6-1,1.5-2.2,1.2-.6-.7,4-7.2,5-6.1h0Z"/>
+ <path class="st1" d="M353.5,335.5c-1.5,1.2-2.8,2.5-4.4,3.7.7-3,3.7-5.3,5.3-8,1.2-.2,1.1.3.6,1.3-.5,1-1.6,1.8-1.6,3,.4-.3,3-2.6,3.1-2.4l-1.9,5.2c-1.6.5-2.5,1.2-3.8,2.2l2.5-4.9h0Z"/>
+ <path class="st1" d="M289.1,359.6c.1,2.6-1.2,5.4-3.8,6.1-.7-.9,1.6-6.6,3.8-6.1Z"/>
+ <path class="st1" d="M119.9,301.8c-1.7.3-3.5-.4-3.7-2.2-.4-4.2,4.7-.9,3.7,2.2Z"/>
+ <path class="st1" d="M249.9,355.5c2.8-.7,2.8,3.9.6,4.9-1.7-.7-2.3-4.5-.6-4.9Z"/>
+ <path class="st1" d="M333,350.8c-.4-.4,1.5-2.9,1.9-3.4,1.1-1.4,2.9-2.9,4.4-4-.2,1.7-2,4-3.1,5.2-.5.5-2.5,2.8-3.1,2.1h0Z"/>
+ <path class="st1" d="M282.2,361.4c.2,2.2-1,5.3-3.8,4.9.5-2,1-5.4,3.8-4.9Z"/>
+ <path class="st1" d="M21.6,179.9c-.8.9-2.2-.4-2.3-1.7-.2-2.9,2.7-4.6,3-1.7,0,.6-.4,3-.7,3.4h0Z"/>
+ <path class="st1" d="M18.9,141c.1,2,.2,5.4-2.5,5.5-.9-2-.2-5.3,2.5-5.5Z"/>
+ <path class="st1" d="M37.4,78.8c.6.6-2.8,6.4-4.4,4.9-.6-.6,2.8-6.4,4.4-4.9Z"/>
+ <path class="st1" d="M306.9,363.5c0-3,2.9-5.1,5-6.7,0,3-2.9,5.1-5,6.7Z"/>
+ <path class="st1" d="M310.6,363.5c-.4-.4,1.4-2.9,1.9-3.4,1-1.2,2.5-2.5,3.7-3.4.9,2-5.1,7.3-5.6,6.7h0Z"/>
+ <path class="st1" d="M203.3,341c1.1,1.1,1.2,3.9-1.2,3.3-3.2-.8-1.5-6,1.2-3.3Z"/>
+ <path class="st1" d="M16.6,131.1c-.3-2.6.1-4,2.2-5.5,2.5,1.2-1.2,6.7-2.2,5.5Z"/>
+ <path class="st1" d="M24.3,192.9c1.9-.6,2.2,4.4.6,4.9-1.9.6-2.2-4.4-.6-4.9Z"/>
+ <path class="st1" d="M274.8,363.2c.5,5.5-5.6,5.9-2.2.6.6-.9,1.3-.6,2.2-.6Z"/>
+ <path class="st1" d="M55.6,52.5c.7.8-3.1,5.8-5,4.9-.4-.4,4.2-5.8,5-4.9Z"/>
+ <path class="st1" d="M320.6,357.4c.1.1-1.8,2.7-2.2,3.1-.5.5-2.8,3-3.4,2.4l3.1-4.6,2.5-.9h0Z"/>
+ <path class="st1" d="M335.4,351.4c-.3-.3,5.1-6.5,6.2-6.7-.5,2.1-2.5,4.1-4.1,5.5-.7.6-1,1.5-2.2,1.2h0Z"/>
+ <path class="st1" d="M21.1,111.4c.2,2.1-.7,3.7-2.2,4.9-2.3-1.2,1.3-6,2.2-4.9Z"/>
+ <path class="st1" d="M69.9,39.6c-1.5,2-3.3,3.9-5.6,4.9-.9-1.1,3.9-5.5,5.6-4.9Z"/>
+ <path class="st1" d="M83,29.3c-.1,1.1-5.4,4.5-5.6,4.3,0-3,3.2-3.6,5.6-4.3Z"/>
+ <path class="st1" d="M37.5,72.7c-.7-.8,2.6-4.6,3.8-4.9,1.1,1.6-3,5.7-3.8,4.9Z"/>
+ <path class="st1" d="M318,363.6c-.2-1.1.6-1.5,1.2-2.1,1.2-1.4,2.8-2.9,4.4-4l-2.5,4-3.1,2.1Z"/>
+ <path class="st1" d="M28.8,212.1c2.6-.8,3.4,3,1.5,3.7-1.5.6-1.8-2.8-1.5-3.7Z"/>
+ <path class="st1" d="M267.4,365c.3,1.8-.5,3.7-2.5,3.7-.1-2.1-.2-4.1,2.5-3.7Z"/>
+ <path class="st1" d="M220,351.5c.1.1,0,2.2,0,2.8-.1,1-3.2.3-2.4-2.5.3-1.1,2.2-.5,2.4-.3h0Z"/>
+ <path class="st1" d="M94.1,287.4c2.8-.2,3.8,2.5,1.5,3.7l-1.5-3.7Z"/>
+ <path class="st1" d="M343.5,346.5c-.6.8-4.6,6.5-5.6,5.5.6-.8,4.6-6.5,5.6-5.5Z"/>
+ <path class="st1" d="M62.9,259.3c1.9-.3,3.5,2.9,1.5,3.7-1.5.6-1.8-2.8-1.5-3.7Z"/>
+ <path class="st1" d="M241.2,358.5c2.1-.2,1.8,3.7.6,3.7-.9,0-2.5-3-.6-3.7Z"/>
+ <path class="st1" d="M21.2,102.1c-.1-1.8.9-3.6,2.5-4.3.1,1.7-.3,4.3-2.5,4.3Z"/>
+ <path class="st1" d="M173.2,337.5c-1.6.2-3.1-.9-3.1-2.5,2.1-.2,3.4.2,3.1,2.5Z"/>
+ <path class="st1" d="M326.1,358.7c-1.1,1.9-2.2,3.6-4.4,4.3-.7-.7,3.7-5,4.4-4.3Z"/>
+ </g>
+ </g>
+ <g id="Layer_11" data-name="Layer_1">
+ <g id="Spasm">
+ <g id="Layer_1-2">
+ <path class="st0" d="M2.1,232.4c4.9,3.7,7.3,2,9.2-3.1.7-1.7,3.6-9.1,8.9-15.8,23.8-30.4,86.6-61.9,117.4-73.7,69.4-26.4,237.5-48.2,266.7,21.6,5.4,13.9.9,27.2-5.2,41.2,0,.1,0-.1,0,0,0,6.4,0,10.1,0,12,0,2.9,7.1-2.7,16-10.6,11-9.9,15.6-24.6,17.7-36.9,3.5-19-4.6-38.7-21.5-52.9-16.8-14.3-38.6-21.8-63.5-26.4-108.7-17.3-238.9,21.1-311,85.6-12.3,11.8-45.2,45.5-34.7,58.9h0c0,0,0,0,0,0Z"/>
+ <path class="st0" d="M57.2,137.7c-1.8,2.1-5.1,8.1-1,7.8,4-.7,6.5-2.6,10.5-5.1,14.7-9.9,30-19.3,46.7-27.2,70.8-34.1,153.1-47.7,229.5-37.3,31.5,4.3,65,13.4,82.5,34.5,2.2,2.2,10.9,15.6,12.4,8.9.7-5.2-3.3-13.1-7.6-18.2-10.3-12.8-27.6-21.8-46.5-26.3-21.7-5.2-43.5-9.2-66.3-11.2-87.7-6.4-179.9,17.3-248.1,63-4.6,3.3-8.8,6.9-11.9,11h0c0,.1,0,.1,0,.1Z"/>
+ <path class="st0" d="M359.5,59.3c-36.6-7.8-77.2-8.4-118.1-4.9-7.2.6-16.8,2.4-23.7,2.5-.8,0-2,.2-2.1-.5-.2-1.5,8.2-3.7,10.1-4.2,28.9-8,78.3-8.3,106.6-5.2,11.9,1.3,23,4.2,33.9,7.1,1.9.5,3.9,1,5.9,1.6,4,1.2,2.4,7.3-1.7,6.3-3.6-.9-7.2-1.8-10.9-2.6h0Z"/>
+ </g>
+ </g>
+ </g>
+</svg> \ No newline at end of file
diff --git a/website3/public/index.php b/website3/public/index.php
new file mode 100644
index 0000000..c16197a
--- /dev/null
+++ b/website3/public/index.php
@@ -0,0 +1,190 @@
+<?php
+// loads the config
+$config = include(__DIR__ . '/../../config.php');
+
+// go set your id here otehrwise ur site wont load the stuff it needs
+$siteId = 4;
+
+// website go search what stuffs it need to load
+$websiteConfig = array_filter($config, function($site) use ($siteId) {
+ return isset($site['id']) && $site['id'] === $siteId;
+});
+$websiteConfig = reset($websiteConfig);
+
+// include the components so the site actually gets rendered
+foreach ($websiteConfig['components'] as $component) {
+ include($component);
+}
+
+?>
+
+<!DOCTYPE html>
+<html lang="en">
+<head>
+ <meta charset="UTF-8">
+ <meta name="viewport" content="width=device-width, initial-scale=1.0">
+ <title>Dialon - <?php echo ucfirst($page); ?></title>
+ <meta name="description" content="<?php echo $metaDescription; ?>">
+ <link rel="stylesheet" href="assets/css/dialon.css">
+ <?php if (!$navbarTableExists || $navbarHasEntries): ?>
+ <link rel="stylesheet" href="assets/css/navbar.css">
+ <?php endif; ?>
+ <?php if (!$navbarTableExists || !$navbarHasEntries): ?>
+ <link rel="stylesheet" href="assets/css/hamburger.css">
+ <?php endif; ?>
+ <link rel="stylesheet" href="assets/css/extras.css">
+
+ <style>
+ <?php if ($navbarTableExists && $navbarHasEntries): ?>
+ .chat-toggle-btn {
+ bottom: 20px;
+ }
+ <?php endif; ?>
+ </style>
+</head>
+
+<body>
+ <header>
+ <div class="header-content" <?php if ($navbarTableExists && $navbarHasEntries) echo 'style="display:none;"'; ?>>
+ <img src="assets/img/dialon.png" alt="Teleco Logo" class="logo">
+ <h1>dialon.ch</h1>
+ </div>
+ </header>
+
+ <?php if ($navbarTableExists && $navbarHasEntries): ?>
+ <?php render_navbar_js($db); ?>
+ <?php endif; ?>
+
+ <?php if (!$navbarTableExists || !$navbarHasEntries): ?>
+ <!-- burger king chnopf -->
+ <button class="hamburger-menu" onclick="toggleMenu()">
+ <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512" width="24" height="24" aria-hidden="true">
+ <path d="M0 88C0 74.7 10.7 64 24 64H424c13.3 0 24 10.7 24 24s-10.7 24-24 24H24C10.7 112 0 101.3 0 88zM0 248C0 234.7 10.7 224 24 224H424c13.3 0 24 10.7 24 24s-10.7 24-24 24H24C10.7 272 0 261.3 0 248zM424 448H24c-13.3 0-24-10.7-24-24s10.7-24 24-24H424c13.3 0 24 10.7 24 24s-10.7 24-24 24z"/>
+ </svg>
+ </button>
+ <!-- burger king -->
+ <div class="menu-overlay">
+ <div class="menu-content">
+ <h2>Navigation</h2>
+ <?php get_sidebar($db, 'left', $page, $sub); ?>
+ <?php get_sidebar($db, 'right', $page, $sub); ?>
+ </div>
+ </div>
+<?php endif; ?>
+
+ <div class="container" style="<?php echo $leftSidebarHasItems || $rightSidebarHasItems ? '' : 'margin-left: 0px; margin-right: 0px; flex-wrap: nowrap; margin-top: 0px; margin-bottom: 0px; max-width: 100%; box-sizing: border-box; padding: 10px;'; ?>">
+ <!-- dis da left sidebar -->
+ <?php if ($leftSidebarHasItems): ?>
+ <div class="sidebar">
+ <?php get_sidebar($db, 'left', $page, $sub); ?>
+ </div>
+ <?php endif; ?>
+
+ <!-- dis da main content row down the middle -->
+ <div class="content" id="content" style="<?php echo $leftSidebarHasItems || $rightSidebarHasItems ? '' : 'width: calc(100%);'; ?>">
+ <!-- my terrible way of doing breadcrumbs -->
+ <div class="breadcrumbs">
+ <?php
+ foreach ($breadcrumbs as $index => $crumb) {
+ if ($index > 0) echo ' > ';
+ echo '<a href="?page=' . htmlspecialchars($crumb['page']) . '">';
+ echo htmlspecialchars($crumb['title']);
+ echo '</a>';
+ }
+ ?>
+ </div>
+ <?php if ($hasContent): ?>
+ <?php
+ $result = $query->execute();
+ $lastPostId = 0;
+ while ($row = $result->fetchArray()):
+ $lastPostId++;
+ ?>
+ <div class="box" id="post-<?php echo $lastPostId; ?>">
+ <h3><?php echo htmlspecialchars($row['title']); ?></h3>
+ <p><?php echo $row['content']; ?></p> <!-- used to have a function to disable and enable rendering html in post, got very annoyed with its db not doing what its supposed to do so now it loads html eitherway and html_custom is nolonger a thing im das datenbank -->
+ <hr>
+ <p>Date: <?php echo $row['date']; ?></p>
+ </div>
+ <?php endwhile; ?>
+ <?php else: ?>
+ <div class="box">
+ <h3>404 - Page Not Found</h3>
+ <p>Sorry, the page you are looking for does not exist.</p>
+ </div>
+ <?php endif; ?>
+
+ <div id="load-container">
+ <?php if ($hasContent && $offset + $limit < $totalPosts): ?>
+ <form method="get" action="index.php#post-<?php echo $lastPostId; ?>">
+ <input type="hidden" name="page" value="<?php echo htmlspecialchars($page); ?>">
+ <?php if ($sub): ?>
+ <input type="hidden" name="sub" value="<?php echo htmlspecialchars($sub); ?>">
+ <?php endif; ?>
+ <input type="hidden" name="offset" value="<?php echo $offset + $limit; ?>">
+ <button class="load-more-button" type="submit">Load More (<?php echo min($offset + $limit, $totalPosts) . " out of " . $totalPosts; ?>)</button>
+ </form>
+ <?php endif; ?>
+ </div>
+ </div>
+
+ <!-- dis da right seitenleisteh! -->
+ <?php if ($rightSidebarHasItems): ?>
+ <div class="sidebar-right">
+ <?php get_sidebar($db, 'right', $page, $sub); ?>
+ </div>
+ <?php endif; ?>
+ </div>
+
+ <!-- cat support meow meow meow meow -->
+ <button class="chat-toggle-btn" onclick="toggleChat()">
+ <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512" width="24" height="24" aria-hidden="true">
+ <path d="M192 208c0-17.7-14.3-32-32-32h-16c-35.4 0-64 28.7-64 64v48c0 35.4 28.7 64 64 64h16c17.7 0 32-14.3 32-32V208zm176 144c35.4 0 64-28.7 64-64v-48c0-35.4-28.7-64-64-64h-16c-17.7 0-32 14.3-32 32v112c0 17.7 14.3 32 32 32h16zM256 0C113.2 0 4.6 118.8 0 256v16c0 8.8 7.2 16 16 16h16c8.8 0 16-7.2 16-16v-16c0-114.7 93.3-208 208-208s208 93.3 208 208h-.1c.1 2.4 .1 165.7 .1 165.7 0 23.4-18.9 42.3-42.3 42.3H320c0-26.5-21.5-48-48-48h-32c-26.5 0-48 21.5-48 48s21.5 48 48 48h181.7c49.9 0 90.3-40.4 90.3-90.3V256C507.4 118.8 398.8 0 256 0z"/>
+ </svg>
+ </button>
+
+ <!-- mau mau support dumpster -->
+ <div class="chat-container" id="chat-container">
+ <div class="chat-header">
+ Virtual Assistant Chat
+ <button class="chat-close-btn" onclick="toggleChat()">✖</button> <!-- mau mau tschau -->
+ </div>
+ <div class="chat-log" id="chat-log"></div>
+ <div class="chat-input-container">
+ <input type="text" id="user-input" class="chat-input" style="background-color: var(--secondary-color);" placeholder="Type your message here...">
+ <button class="send-btn" onclick="sendMessage()">Send</button>
+ </div>
+ </div>
+
+ <!-- js sache sind hier und so -->
+ <script src="assets/js/chat.js"></script>
+ <script src="assets/js/menu.js"></script>
+
+ <script>
+document.addEventListener('DOMContentLoaded', function() {
+ const mobileMenu = document.querySelector('.mobile-navbar-menu');
+ const toggleButton = document.querySelector('.navbar-toggle');
+
+ window.toggleNavbar = function() {
+ if (!mobileMenu) return;
+
+ if (mobileMenu.classList.contains('open')) {
+ mobileMenu.style.maxHeight = "0px";
+ mobileMenu.classList.remove('open');
+ } else {
+ mobileMenu.style.maxHeight = mobileMenu.scrollHeight + "px";
+ mobileMenu.classList.add('open');
+ }
+ };
+
+ window.addEventListener('resize', function() {
+ if (window.innerWidth > 768 && mobileMenu.classList.contains('open')) {
+ mobileMenu.classList.remove('open');
+ mobileMenu.style.maxHeight = "0px";
+ }
+ });
+});
+</script>
+
+</body>
+</html>
diff --git a/website4/.DS_Store b/website4/.DS_Store
new file mode 100644
index 0000000..c328838
--- /dev/null
+++ b/website4/.DS_Store
Binary files differ
diff --git a/website4/content4.db b/website4/content4.db
new file mode 100644
index 0000000..e6aec42
--- /dev/null
+++ b/website4/content4.db
Binary files differ
diff --git a/website4/public/assets/.DS_Store b/website4/public/assets/.DS_Store
new file mode 100644
index 0000000..59caf08
--- /dev/null
+++ b/website4/public/assets/.DS_Store
Binary files differ
diff --git a/website4/public/assets/css/dialon.css b/website4/public/assets/css/dialon.css
new file mode 100644
index 0000000..96c1e85
--- /dev/null
+++ b/website4/public/assets/css/dialon.css
@@ -0,0 +1,313 @@
+/* Base Styles */
+:root {
+ --primary-color: #ff9900;
+ --secondary-color: #1a1a1a;
+ --background-color: #333;
+ --text-color: #e6e6e6;
+ --border-color: #444;
+ --navbar-color: #d88900;
+ --navbar-text-color: #fff;
+ --navbar-hover-color: #ffbb00;
+ --hover-color: #ffbb00;
+ --hover-text-color: #1a1a1a;
+}
+
+@font-face {
+ font-family: 'default-512';
+ font-style: normal;
+ font-weight: 400;
+ src: url('../fonts/default.ttf') format('truetype');
+}
+
+body {
+ background-color: var(--secondary-color);
+ color: var(--text-color);
+ margin: 0;
+ padding: 0;
+ font-family: Arial, comic-sans; /* ich bin so lustig */
+}
+
+header, .header-content {
+ background-color: var(--secondary-color);
+ color: var(--text-color);
+ text-align: center; /* Center the header content wenn mer kei bock uf navbar her */
+}
+
+header h1 {
+ color: var(--primary-color);
+ font-family: 'default-512', Arial, sans-serif; /* fonts sexi mache*/
+}
+
+h2 {
+ color: var(--primary-color);
+ font-family: 'default-512', Arial, sans-serif; /* nomal fonts sexi mache will us irgend nem grund die ganz site kappoot gaht wenn ich d'funt universal ahwände*/
+}
+
+.sidebar, .sidebar-right, .box, .chat-log, .chat-input .breadcrumbs {
+ background-color: var(--background-color);
+ border: 1px solid var(--border-color);
+ border-radius: 10px; /* mmmm rundi ecke damit mer sich ned ritzt */
+}
+
+.breadcrumbs {
+ background-color: var(--background-color);
+ border: 1px solid var(--border-color);
+ border-radius: 10px;
+ padding: 10px;
+ margin-bottom: 10px;
+ box-shadow: 0 4px 6px rgba(0, 0, 0, 0.3);
+ font-family: 'default-512', Arial, sans-serif;
+}
+
+.breadcrumbs a {
+ color: var(--primary-color);
+ text-decoration: none;
+}
+
+.breadcrumbs a:hover {
+ text-decoration: underline;
+}
+
+.sidebar {
+ float: left;
+ width: 20%;
+ min-width: 200px;
+ max-width: 250px;
+ padding: 10px;
+ padding-bottom: 0px;
+ box-sizing: border-box;
+ padding-bottom: 0px;
+}
+
+.sidebar-right {
+ float: right;
+ width: 20%;
+ min-width: 200px;
+ max-width: 250px;
+ padding: 10px;
+ padding-bottom: 0px;
+ box-sizing: border-box;
+}
+
+.sidebar a, .sidebar-right a, .services a, .menu-overlay .menu-links a, .load-more-button, .mobile-navbar-menu button{
+ display: block;
+ background-color: var(--background-color);
+ color: var(--text-color);
+ padding: 12px 20px;
+ text-decoration: none;
+ border-radius: 10px;
+ transition: background-color 0.3s ease;
+ box-shadow: 0 4px 6px rgba(0, 0, 0, 0.3);
+ margin-bottom: 10px;
+ font-family: 'default-512', Arial, sans-serif;
+ border: none;
+}
+
+.sidebar a:hover, .sidebar-right a:hover, .sidebar a.active, .sidebar-right a.active, .services a:hover, .menu-overlay .menu-links a:hover, .load-more-button:hover {
+ background-color: var(--hover-color);
+ color: var(--hover-text-color);
+}
+
+.container {
+ flex: 1;
+ display: flex;
+ width: 100%;
+ min-width: 300px;
+ align-items: flex-start;
+ flex-wrap: wrap;
+ margin: 20px auto 0;
+ max-width: 1200px;
+}
+
+.content {
+ width: 60%;
+ flex-grow: 1;
+ padding: 10px;
+ box-sizing: border-box;
+}
+
+.box {
+ margin-bottom: 10px;
+ padding: 10px;
+}
+
+.box h3 {
+ margin: 0 0 10px 0;
+ font-size: 16px;
+ color: var(--primary-color);
+ font-family: 'default-512', Arial, sans-serif;
+
+}
+
+.box p, .box a {
+ margin: 5px 0;
+ font-size: 14px;
+ color: var(--text-color);
+ font-family: 'default-512', Arial, sans-serif;
+}
+
+.box a {
+ color: var(--primary-color);
+ text-decoration: none;
+}
+
+.box a:hover {
+ text-decoration: underline;
+}
+
+footer {
+ background-color: var(--border-color);
+ color: var(--text-color);
+ text-align: center;
+ padding: 10px 0;
+ font-size: 14px;
+ width: 100%;
+ flex-shrink: 0;
+}
+
+hr {
+ border: 1px solid var(--border-color);
+ margin: 20px 0;
+}
+
+.left-aligned-title {
+ text-align: left;
+ font-size: 48px;
+ font-weight: bold;
+ color: var(--primary-color);
+ margin-bottom: 15px;
+ text-decoration: none;
+ font-family: 'default-512', Arial, sans-serif;
+}
+
+.navbar-title {
+
+ text-decoration: none;
+}
+
+.no-top-m {
+ margin-top: 0 !important;
+}
+
+.ascii-box {
+ border: 2px solid #555;
+ border-radius: 10px;
+ padding: 20px;
+ color: var(--primary-color);
+ font-size: 18px;
+ font-family: 'default-512', Arial, sans-serif;
+}
+
+.services {
+ display: flex;
+ justify-content: center;
+ flex-wrap: wrap;
+ gap: 20px;
+ margin: 20px 0;
+}.chat-container {
+ position: fixed;
+ bottom: 0;
+ right: 20px;
+ width: 90%;
+ max-width: 400px;
+ background-color: var(--secondary-color);
+ border: 2px solid var(--border-color);
+ border-radius: 10px;
+ padding: 20px;
+ z-index: 1001;
+ transform: translateY(100%);
+ opacity: 0;
+ transition: transform 0.4s ease, opacity 0.4s ease, visibility 0.4s ease;
+ visibility: hidden;
+}
+
+.chat-container.open {
+ transform: translateY(0);
+ opacity: 1;
+ visibility: visible;
+}
+
+.chat-header {
+ font-size: 20px;
+ font-weight: bold;
+ color: var(--secondary-color);
+ text-align: center;
+ margin-bottom: 10px;
+ position: relative;
+ font-family: 'default-512', Arial, sans-serif;
+}
+
+.audio-track {
+ margin: 20px 0;
+ text-align: center;
+}
+
+.complaints {
+ text-align: center;
+ margin-top: 40px;
+}
+
+.complaints a {
+ color: #ffbb00;
+ text-decoration: none;
+ transition: color 0.3s ease;
+ font-family: 'default-512', Arial, sans-serif;
+}
+
+.complaints a:hover {
+ color: #ff99cc;
+}
+
+.mobile-only {
+ display: none;
+}
+
+ul {
+ list-style-type: none;
+ padding: 0;
+}
+
+ul li {
+ padding: 10px 15px;
+ margin-bottom: 10px;
+ border-radius: 10px;
+ box-shadow: 0 4px 6px rgba(0, 0, 0, 0.3);
+ font-family: 'default-512', Arial, sans-serif;
+}
+
+ul li::before {
+ content: "•";
+ color: var(--primary-color);
+ padding-right: 10px;
+}
+
+ul li span {
+ font-weight: bold;
+ color: var(--primary-color);
+}
+
+
+
+h4 {
+ text-decoration: underline;
+ size: 12px;
+ color: var(--primary-color);
+ font-family: 'default-512', Arial, sans-serif;
+}
+
+@media screen and (max-width: 1280px) {
+ .sidebar, .sidebar-right {
+ display: none;
+ }
+}
+
+@media screen and (min-width: 1281px) {
+ .hamburger-menu {
+ display: none;
+ }
+
+ .chat-toggle-btn {
+ bottom: 20px;
+ }
+}
+
diff --git a/website4/public/assets/css/extras.css b/website4/public/assets/css/extras.css
new file mode 100644
index 0000000..4a9f2fc
--- /dev/null
+++ b/website4/public/assets/css/extras.css
@@ -0,0 +1,180 @@
+.send-btn {
+ background-color: var(--primary-color);
+ color: var(--secondary-color);
+}
+
+.send-btn:hover {
+ background-color: #ffbb00;
+}
+
+.chat-toggle-btn {
+ position: fixed;
+ bottom: 20px;
+ right: 20px;
+ width: 50px;
+ height: 50px;
+ border: none;
+ border-radius: 50%;
+ box-shadow: 0 4px 6px rgba(0, 0, 0, 0.3);
+ cursor: pointer;
+ z-index: 1000;
+ display: flex;
+ align-items: center;
+ justify-content: center;
+ padding: 0;
+ transition: background-color 0.3s ease;
+ background-color: var(--background-color);
+ color: var(--primary-color);
+}
+
+.chat-toggle-btn svg {
+ width: 24px;
+ height: 24px;
+ fill: var(--primary-color);
+ transition: fill 0.3s ease;
+}
+
+.chat-toggle-btn:hover,
+.chat-toggle-btn.open {
+ background-color: var(--primary-color);
+}
+
+.chat-toggle-btn:hover svg,
+.chat-toggle-btn.open svg {
+ fill: var(--secondary-color);
+}
+
+.chat-close-btn {
+ color: var(--primary-color);
+}
+
+.chat-close-btn:hover {
+ color: var(--secondary-color);
+}
+
+.chat-close-btn {
+ position: absolute;
+ top: 0;
+ right: 0;
+ font-size: 18px;
+ background: none;
+ border: none;
+ cursor: pointer;
+}
+
+.chat-log {
+ height: 300px;
+ overflow-y: auto;
+ padding: 10px;
+ border-radius: 10px;
+ margin-bottom: 10px;
+ font-family: 'Courier New', Courier, monospace;
+}
+
+.chat-message {
+ margin: 5px 0;
+ font-family: 'default-512', Arial, sans-serif;
+}
+
+.chat-message .sender {
+ font-weight: bold;
+}
+
+.chat-message .virtual-assistant {
+ color: red;
+}
+
+.chat-message .user {
+ color: blue;
+}
+
+.chat-input-container {
+ display: flex;
+ gap: 10px;
+}
+
+.chat-input {
+ flex: 1;
+ padding: 10px;
+ border-radius: 10px;
+ font-family: 'default-512', Arial, sans-serif;
+ color: var(--primary-color);
+ background-color: var(--secondary-color);
+ border: 1px solid var(--border-color);
+}
+
+.chat-input:focus {
+ outline: none;
+ border-color: var(--primary-color);
+}
+
+.send-btn {
+ padding: 10px;
+ border: none;
+ cursor: pointer;
+ border-radius: 10px;
+}
+
+.chat-container {
+ position: fixed;
+ bottom: 0;
+ right: 0;
+ margin-right: 20px;
+ max-width: 400px;
+ background-color: var(--secondary-color);
+ border: 2px solid var(--border-color);
+ border-radius: 10px;
+ padding: 20px;
+ z-index: 1001;
+ transform: translateY(100%);
+ opacity: 0;
+ transition: transform 0.4s ease, opacity 0.4s ease, visibility 0.4s ease;
+ visibility: hidden;
+}
+
+.chat-container.open {
+ transform: translateY(0);
+ opacity: 1;
+ visibility: visible;
+}
+
+.chat-header {
+ font-size: 20px;
+ font-weight: bold;
+ color: var(--primary-color);
+ text-align: center;
+ margin-bottom: 10px;
+ position: relative;
+ font-family: 'default-512', Arial, sans-serif;
+}
+
+@media (max-width: 600px) {
+ .chat-container {
+ width: 100%;
+ margin: 0px;
+ padding: 20px;
+ box-sizing: border-box;
+ }
+}
+
+@media (min-width: 1280px) {
+ .sidebar, .sidebar-right {
+ display: block;
+ }
+
+ .chat-toggle-btn {
+ bottom: 20px;
+ right: 20px;
+ }
+}
+
+@media (max-width: 1279px) {
+ .sidebar, .sidebar-right {
+ display: none;
+ }
+
+ .chat-toggle-btn {
+ bottom: 100px;
+ right: 20px;
+ }
+}
diff --git a/website4/public/assets/css/hamburger.css b/website4/public/assets/css/hamburger.css
new file mode 100644
index 0000000..031d011
--- /dev/null
+++ b/website4/public/assets/css/hamburger.css
@@ -0,0 +1,138 @@
+.hamburger-menu {
+ display: none;
+ position: fixed;
+ bottom: 20px;
+ right: 20px;
+ width: 50px;
+ height: 50px;
+ background-color: var(--background-color);
+ color: var(--primary-color);
+ border: none;
+ border-radius: 50%;
+ box-shadow: 0 4px 6px rgba(0, 0, 0, 0.3);
+ cursor: pointer;
+ z-index: 1001;
+ transition: background-color 0.3s ease;
+ display: flex;
+ align-items: center;
+ justify-content: center;
+ padding: 0;
+}
+
+.hamburger-menu svg {
+ width: 24px;
+ height: 24px;
+ fill: var(--primary-color);
+ transition: fill 0.3s ease;
+}
+
+.hamburger-menu:hover,
+.hamburger-menu.open {
+ background-color: var(--primary-color);
+}
+
+.hamburger-menu:hover svg,
+.hamburger-menu.open svg {
+ fill: var(--secondary-color);
+}
+
+.menu-overlay {
+ position: fixed;
+ top: 0;
+ left: 0;
+ bottom: 0;
+ width: 100%;
+ background-color: var(--secondary-color);
+ color: white;
+ display: flex;
+ flex-direction: column;
+ align-items: center;
+ justify-content: center;
+ transition: transform 0.3s ease-in-out;
+ z-index: 1000;
+ transform: translateY(100%);
+ overflow-y: auto;
+}
+
+.menu-overlay.open {
+ transform: translateY(0);
+}
+
+.menu-content {
+ text-align: center;
+ width: 100%;
+ padding: 20px;
+ box-sizing: border-box;
+}
+
+.menu-content .box {
+ background-color: var(--background-color);
+ margin: 10px 0;
+ padding: 10px;
+ border: 1px solid var(--border-color);
+ border-radius: 10px;
+ box-sizing: border-box;
+}
+
+.menu-content .box a {
+ display: block;
+ background-color: var(--background-color);
+ color: var(--text-color);
+ padding: 12px 20px;
+ text-decoration: none;
+ border-radius: 10px;
+ transition: background-color 0.3s ease;
+ box-shadow: 0 4px 6px rgba(0, 0, 0, 0.3);
+ margin-bottom: 10px;
+}
+
+.menu-content .box a:hover, .menu-content .box a.active {
+ background-color: var(--primary-color);
+ color: var(--secondary-color);
+}
+
+.menu-close-btn {
+ position: absolute;
+ top: 20px;
+ right: 20px;
+ background: none;
+ border: none;
+ color: var(--primary-color);
+ font-size: 24px;
+ cursor: pointer;
+}
+
+.menu-close-btn:hover {
+ color: var(--secondary-color);
+}
+
+@media screen and (max-width: 1280px) {
+ .sidebar, .sidebar-right {
+ display: none;
+ }
+
+ .hamburger-menu {
+ display: flex;
+ }
+
+ .menu-overlay {
+ display: block;
+ }
+}
+
+@media screen and (max-width: 600px) {
+ .menu-content {
+ padding: 10px;
+ }
+
+ .menu-content .box a {
+ padding: 10px;
+ font-size: 14px;
+ }
+}
+
+@media screen and (min-width: 1281px) {
+ .hamburger-menu {
+ display: none;
+ }
+} \ No newline at end of file
diff --git a/website4/public/assets/css/navbar.css b/website4/public/assets/css/navbar.css
new file mode 100644
index 0000000..6f63aa8
--- /dev/null
+++ b/website4/public/assets/css/navbar.css
@@ -0,0 +1,224 @@
+.navbar {
+ background-color: var(--secondary-color);
+ padding: 10px;
+ box-shadow: 0 4px 6px rgba(0, 0, 0, 0.3);
+ font-family: 'default-512', Arial, sans-serif;
+ position: relative;
+}
+
+.navbar-container {
+ display: flex;
+ justify-content: space-between;
+ align-items: center;
+}
+
+.navbar-left, .navbar-center, .navbar-right {
+ display: flex;
+ align-items: center;
+}
+
+.navbar-center {
+ justify-content: center;
+ flex-grow: 1;
+}
+
+.navbar-mobile {
+ display: none;
+ justify-content: space-between;
+ align-items: center;
+ width: 100%;
+ background-color: var(--secondary-color);
+ padding: 10px;
+}
+
+.navbar-mobile .navbar-left {
+ display: flex;
+ align-items: center;
+}
+
+.navbar-logo {
+ height: 40px;
+ margin-right: 10px;
+}
+
+.navbar-title {
+ font-size: 20px;
+ font-weight: bold;
+ color: var(--primary-color);
+ padding-right: 20px;
+}
+
+.navbar, .navbar button, .navbar input[type="text"], .navbar input[type="search"] {
+ color: var(--navbar-text-color);
+ text-decoration: none;
+ padding-inline: 10px;
+ margin: 0 5px;
+ border: none;
+ background: none;
+ cursor: pointer;
+ transition: color 0.3s ease;
+ font-family: 'default-512', Arial, sans-serif;
+ font-size: 18px;
+}
+
+.navbar-link {
+ color: var(--navbar-text-color);
+ text-decoration: none;
+ border: none;
+ background: none;
+ cursor: pointer;
+ transition: color 0.3s ease;
+ font-family: 'default-512', Arial, sans-serif;
+}
+
+.dropdown-link {
+ color: var(--navbar-text-color);
+ text-decoration: none;
+ transition: color 0.3s ease;
+ font-family: 'default-512', Arial, sans-serif;
+ padding-top: 5px;
+}
+
+.navbar a:hover, .navbar button:hover {
+ color: var(--navbar-hover-color);
+}
+
+.navbar-dropdown {
+ position: relative;
+ display: inline-block;
+}
+
+.navbar-dropbtn {
+ background-color: var(--navbar-color);
+ color: var(--navbar-text-color);
+ padding: 10px;
+ font-size: 16px;
+ border: none;
+ cursor: pointer;
+ border-radius: 10px;
+}
+
+.navbar-dropdown-content {
+ display: none;
+ position: absolute;
+ background-color: var(--background-color);
+ min-width: 160px;
+ box-shadow: 0 8px 16px rgba(0, 0, 0, 0.2);
+ z-index: 1;
+ border-radius: 10px;
+}
+
+.navbar-dropdown:hover .navbar-dropdown-content {
+ display: block;
+}
+
+.navbar-dropdown-content a {
+ color: var(--text-color);
+ padding: 12px 16px;
+ text-decoration: none;
+ display: block;
+ border-bottom: 1px solid var(--border-color);
+}
+
+.navbar-dropdown-content a:last-child {
+ border-bottom: none;
+}
+
+.bruh-why {
+ padding-inline: 0px;
+}
+
+.mobile-navbar-dropdown {
+ padding-top: 5px;
+}
+
+.mobile-navbar-dropdown:hover {
+ color: var(--navbar-hover-color);
+}
+
+.navbar-toggle {
+ display: none;
+ background: none;
+ border: none;
+ color: var(--primary-color);
+ cursor: pointer;
+ font-size: 24px;
+}
+
+.mobile-navbar-menu {
+ display: flex;
+ flex-direction: column;
+ width: 100%;
+ background-color: var(--secondary-color);
+ border-radius: 10px;
+ max-height: 0;
+ overflow: hidden;
+ transition: max-height 0.4s ease-out, padding 0.4s ease-out;
+ padding-top: 0;
+ padding-bottom: 0;
+}
+
+.mobile-navbar-menu.open {
+ padding-top: 10px;
+ padding-bottom: 10px;
+}
+
+.mobile-navbar-menu input[type="text"],
+.mobile-navbar-menu input[type="search"] {
+ padding: 10px;
+ margin: 5px 0;
+ border: none;
+ background: none;
+ cursor: pointer;
+ transition: color 0.3s ease;
+ font-family: 'default-512', Arial, sans-serif;
+ color: var(--navbar-text-color);
+ text-decoration: none;
+ display: block;
+ width: 100%;
+ box-sizing: border-box;
+}
+
+.mobile-navbar-menu input[type="text"]:hover,
+.mobile-navbar-menu input[type="search"]:hover,
+.mobile-navbar-menu button:hover {
+ color: var(--navbar-hover-color);
+}
+
+@media screen and (max-width: 768px) {
+ .navbar-container {
+ display: none;
+ }
+
+ .navbar-mobile {
+ display: flex;
+ }
+
+ .navbar-toggle {
+ display: block;
+ }
+}
+
+@media screen and (min-width: 769px) {
+ .mobile-navbar-menu {
+ display: none !important;
+ }
+}
+
+.navbar .buttonify{
+ display: block;
+ background-color: var(--background-color); /* penis haha lol ja das isch psychose klass will buttons nei segged abunzdue*/
+ color: var(--text-color);
+ padding: 12px 20px;
+ text-decoration: none;
+ border-radius: 10px;
+ transition: background-color 0.3s ease;
+ box-shadow: 0 4px 6px rgba(0, 0, 0, 0.3);
+ font-family: 'default-512', Arial, sans-serif;
+ border: none;
+}
+
+.navbar .buttonify:hover {
+ background-color: var(--hover-color);
+ color: var(--hover-text-color);
+}
diff --git a/website4/public/assets/fonts/.DS_Store b/website4/public/assets/fonts/.DS_Store
new file mode 100644
index 0000000..b998872
--- /dev/null
+++ b/website4/public/assets/fonts/.DS_Store
Binary files differ
diff --git a/website4/public/assets/fonts/default.ttf b/website4/public/assets/fonts/default.ttf
new file mode 100644
index 0000000..37deb9a
--- /dev/null
+++ b/website4/public/assets/fonts/default.ttf
Binary files differ
diff --git a/website4/public/assets/img/.DS_Store b/website4/public/assets/img/.DS_Store
new file mode 100644
index 0000000..f77b18d
--- /dev/null
+++ b/website4/public/assets/img/.DS_Store
Binary files differ
diff --git a/website4/public/assets/img/code-is-ass.jpeg b/website4/public/assets/img/code-is-ass.jpeg
new file mode 100644
index 0000000..c35aa9e
--- /dev/null
+++ b/website4/public/assets/img/code-is-ass.jpeg
Binary files differ
diff --git a/website4/public/assets/img/dialon.png b/website4/public/assets/img/dialon.png
new file mode 100644
index 0000000..6ceef81
--- /dev/null
+++ b/website4/public/assets/img/dialon.png
Binary files differ
diff --git a/website4/public/assets/img/force.png b/website4/public/assets/img/force.png
new file mode 100644
index 0000000..fa2c8c6
--- /dev/null
+++ b/website4/public/assets/img/force.png
Binary files differ
diff --git a/website4/public/assets/img/fuck-main.jpeg b/website4/public/assets/img/fuck-main.jpeg
new file mode 100644
index 0000000..3acbd91
--- /dev/null
+++ b/website4/public/assets/img/fuck-main.jpeg
Binary files differ
diff --git a/website4/public/assets/img/fuckjs.jpeg b/website4/public/assets/img/fuckjs.jpeg
new file mode 100644
index 0000000..06f8a6d
--- /dev/null
+++ b/website4/public/assets/img/fuckjs.jpeg
Binary files differ
diff --git a/website4/public/assets/img/jsmomentom.jpg b/website4/public/assets/img/jsmomentom.jpg
new file mode 100644
index 0000000..166d5ba
--- /dev/null
+++ b/website4/public/assets/img/jsmomentom.jpg
Binary files differ
diff --git a/website4/public/assets/img/router1.jpg b/website4/public/assets/img/router1.jpg
new file mode 100644
index 0000000..92f7e91
--- /dev/null
+++ b/website4/public/assets/img/router1.jpg
Binary files differ
diff --git a/website4/public/assets/img/router2.jpg b/website4/public/assets/img/router2.jpg
new file mode 100644
index 0000000..1ec6527
--- /dev/null
+++ b/website4/public/assets/img/router2.jpg
Binary files differ
diff --git a/website4/public/assets/img/rover.png b/website4/public/assets/img/rover.png
new file mode 100644
index 0000000..de95293
--- /dev/null
+++ b/website4/public/assets/img/rover.png
Binary files differ
diff --git a/website4/public/assets/img/ssc.jpg b/website4/public/assets/img/ssc.jpg
new file mode 100644
index 0000000..d7509e2
--- /dev/null
+++ b/website4/public/assets/img/ssc.jpg
Binary files differ
diff --git a/website4/public/assets/img/wrong.png b/website4/public/assets/img/wrong.png
new file mode 100644
index 0000000..1a1835e
--- /dev/null
+++ b/website4/public/assets/img/wrong.png
Binary files differ
diff --git a/website4/public/assets/js/chat.js b/website4/public/assets/js/chat.js
new file mode 100644
index 0000000..8caa573
--- /dev/null
+++ b/website4/public/assets/js/chat.js
@@ -0,0 +1,94 @@
+// chat container setup for maximum verwirrung weil ich kann das alles langsam nicht mehr junge die sprach macht kei sinn
+const chatContainer = document.getElementById('chat-container');
+const chatLog = document.getElementById('chat-log');
+const userInput = document.getElementById('user-input');
+let hasGreeted = false; // flag so we only say grǔtzi eimal und ned sächzgs mal junge das wäri fett weird
+
+// toggle chat open and closed again ????????????? i dont remember what i haben gesoffen hier
+function toggleChat() {
+ if (chatContainer.classList.contains('open')) {
+ chatContainer.classList.remove('open');
+ setTimeout(() => {
+ chatContainer.style.visibility = 'hidden';
+ }, 400); // match delay with css so it doesnt look wie abfall
+ } else {
+ chatContainer.style.visibility = 'visible';
+ chatContainer.classList.add('open');
+
+ // the actuall saying grǔtzi miternaand gugus
+ if (!hasGreeted) {
+ displayMessage('Virtual Assistant', "Grǔtzi 🇨🇭 ! I'm your virtual assistant! Please tell me about your problem or what you need help with.");
+ hasGreeted = true;
+ }
+ }
+}
+
+// send message when enter key is pressed because who will press a button to send a message ???? are you a psychopat ?
+userInput.addEventListener('keypress', function(event) {
+ if (event.key === 'Enter') {
+ sendMessage();
+ }
+});
+
+// handle sending messages
+function sendMessage() {
+ const userMessage = userInput.value.trim();
+ if (userMessage) {
+ displayMessage('You', userMessage);
+ userInput.value = '';
+ setTimeout(() => catReply(userMessage), 1000); // delay for realism so the "assistant" can "think" about the reply
+ }
+}
+
+// put a message in the chat log will chat funktioniert ned ohni message history und so lol
+function displayMessage(sender, message) {
+ const messageElement = document.createElement('div');
+ messageElement.classList.add('chat-message');
+
+ const senderSpan = document.createElement('span');
+ senderSpan.classList.add('sender');
+ senderSpan.classList.add(sender === 'You' ? 'user' : 'virtual-assistant');
+ senderSpan.textContent = sender + ': ';
+
+ const messageSpan = document.createElement('span');
+ messageSpan.textContent = message;
+
+ messageElement.appendChild(senderSpan);
+ messageElement.appendChild(messageSpan);
+ chatLog.appendChild(messageElement);
+ chatLog.scrollTop = chatLog.scrollHeight;
+}
+
+// cat assistant category based matched replies
+function catReply(userMessage) {
+ const keywords = {
+ "help": ["meeeooow...? figure it out yourself! because that sounds like a you problem bahahahasdjkasadlkj 💀", "meeooww! welp too bad. help yourself bahasjdhaskjdhaskjdh", "mrrrow! idk either lol. go ask yourself maybe your smart if you use your brain instread of relying on a virtual assistant cat"],
+ "problem": ["meeooow, eh thats normal here, should've chosen someone else to host your stuff ngl lol", "mrow, contact sysadminier maybe idk? i am just cat or a teaput ???? idk what i am help aaaaaaa", "mreeow, tell me more ig... if you want idc lol"],
+ "default": ["meow", "meeooow!", "mew.", "mrow!", "meeow...", "meow, meow.", "mroww", "mlem"]
+ };
+
+ // generate a bs reply to fool user into thinking the cat assistant is actually doing something
+ function generateScrambledReply() {
+ const phrases = keywords["default"];
+ let scrambled = [];
+ const length = Math.floor(Math.random() * 3) + 3; // random length of reply 3-5 words
+
+ for (let i = 0; i < length; i++) {
+ const randomPhrase = phrases[Math.floor(Math.random() * phrases.length)];
+ scrambled.push(randomPhrase);
+ }
+ return scrambled.join(" ");
+ }
+
+ // check for keywords in user message and decide what kind of blödsinn to say zu the schafseckel using the chat
+ let reply;
+ if (userMessage.toLowerCase().includes("help")) {
+ reply = keywords["help"][Math.floor(Math.random() * keywords["help"].length)];
+ } else if (userMessage.toLowerCase().includes("problem")) {
+ reply = keywords["problem"][Math.floor(Math.random() * keywords["problem"].length)];
+ } else {
+ reply = generateScrambledReply(); // generate scrambled reply for "default" case
+ }
+
+ displayMessage('Virtual Assistant', reply);
+} \ No newline at end of file
diff --git a/website4/public/assets/js/menu.js b/website4/public/assets/js/menu.js
new file mode 100644
index 0000000..8994ac9
--- /dev/null
+++ b/website4/public/assets/js/menu.js
@@ -0,0 +1,40 @@
+document.addEventListener('DOMContentLoaded', function () {
+ // menu overlay so we can open and close it bruh
+ const overlay = document.querySelector('.menu-overlay');
+ const hamburger = document.querySelector('.hamburger-menu');
+
+ function toggleMenu() {
+ if (overlay.classList.contains('open')) {
+ overlay.classList.remove('open');
+ setTimeout(() => {
+ overlay.style.visibility = 'hidden';
+ }, 400); // match this delay with the css transition duration because ja isch halt so
+ } else {
+ overlay.style.visibility = 'visible';
+ overlay.classList.add('open');
+ }
+ hamburger.classList.toggle('open');
+ document.body.style.overflow = overlay.classList.contains('open') ? 'hidden' : ''; // no scrolling on the main page while menu is open
+ }
+
+ // if burger king menu button exists, hook it up to toggle the menu
+ if (hamburger) {
+ hamburger.addEventListener('click', function () {
+ toggleMenu();
+ });
+ }
+
+ // close menu when clicking a link inside it because so funktioniert das halt, pech gha wenns der nid passt lol
+ if (overlay) {
+ overlay.querySelectorAll('a').forEach(link => {
+ link.addEventListener('click', () => {
+ overlay.classList.remove('open');
+ setTimeout(() => {
+ overlay.style.visibility = 'hidden';
+ hamburger.classList.remove('open');
+ document.body.style.overflow = ''; // kei ahnig was das macht aber es het mis problem emol glöst
+ }, 400); // match transition duration ... again no clue what this actually does but it works so i'm not touching it
+ });
+ });
+ }
+}); \ No newline at end of file
diff --git a/website4/public/assets/svg/teleco.svg b/website4/public/assets/svg/teleco.svg
new file mode 100644
index 0000000..1cbb190
--- /dev/null
+++ b/website4/public/assets/svg/teleco.svg
@@ -0,0 +1,242 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg id="Layer_1" xmlns="http://www.w3.org/2000/svg" version="1.1" viewBox="0 0 437.8 368.6">
+ <!-- Generator: Adobe Illustrator 29.1.0, SVG Export Plug-In . SVG Version: 2.1.0 Build 142) Yea i know this logo is partially made from a png will fix someday -->
+ <defs>
+ <style>
+ .st0 {
+ fill: #d22627;
+ }
+
+ .st1 {
+ fill: #010101;
+ }
+ </style>
+ </defs>
+ <g id="Layer_2">
+ <g id="Layer_2-2">
+ <path d="M85.3,28c-.6,0-1.7.3-1.8-.3.8-.4,1-1.7,1.4-2,1.2-1,3-.1,3.2-2.3,0-1,2.4-1.3,3.2-2.1,1.8-.2.5.8,0,1.1-.8.4-2.2.4-2.1,1.3,1.2,0,3-.5,3.9-1.2.1,0,1.9-1.7,2-1.8.2-.4-.3-1.1-.2-1.2.2-.2,4.9-2.3,5.3-2.4,1-.3,2.1.8,3.3.6l-.6-1.9c14.7-5.6,29.5-10.8,45-13.6,125.2-22.8,242.2,67.7,250.8,194.5,2.3,34.5-4.7,69.2-18.6,100.8-1.5,3.5-4,6.7-5.2,9.6-.9,2.3-2.3,5.6-3.6,7.6-.5.7-1.2,1.1-.8-.2v-3.5c0,0-1.9,1.2-1.9,1.2l1.9-5.5-3.1,3.1,1.3-5.5-3.4,3.7-.3-2.5-4.3,1.2,1-5.5-4.4,4.9c-2.3-2,.1-4.6.4-6.8-1.3.8-4.3,6.6-5.9,6.1-2.2-.7.6-5.9.4-7.4l-3.1,4.6c-4,4.3-4.6,1.9-4-2.8,0-.6,1-1.9-.3-1.9-.4,2.2-4.7,9-6.8,5.7-1.2-1.9-.2-2.5,0-4.2,0-.6.3-1.7-.6-1.6-.2,2.3-5.5,9.5-7.4,5.7-1.1-2.2-.1-4,0-6.4-1.6,1.3-2.3,5-3.9,6.6s-4.3,2.3-5.1-.5c-1.3-4.1,1.4-11.2,5.1-13.6,4.8-3.1,4,4.9,4,7.5,1.1-.9,1.8-5.2,4-7.2,4.6-4.4,5.4,2.4,4.7,6l2.2-4.3c1.5-1.5,2.7-3.7,5.2-3,1.2,2.3.4,3.7,0,5.9-.1.6-.4,1.7.6,1.5.7-2.2,1.9-5.1,3.8-6.4,4.5-3.1,3,3.7,2.4,6.5l2.2-3.6,3.1-3.1c2.6,1.8,1.1,3.7.9,6.2l3.7-4,1.5-.3v5.6c2.6-2.3,2.1-5.4,2.8-8.6-3.9,3.1-3.9-.4-3-3.7-1.6,1.3-5.8,7.6-6.2,2.1,0-.9.6-3.4-.6-3.4-.8,2.2-2.5,5.3-5.3,4.9-.4,0-.7-1.3-.8-1.7-.2-1.3.1-2.8-.4-3.9-1.9,2.2-5.1,8.5-7.5,3.7l-.9-4.4c-.4,3.9-6.9,9.7-8,3.3-.2-1.3.8-3.2-1.2-2.8-.4,3.5-6.1,8.7-8.2,4.1-.7-1.5-.2-2.8-.7-4.2-1.8,2-2.1,5-4.9,6.3-4.3,1.9-4.7-1.4-5.7-4.5-.2-.6-.1-1.4-.9-1.2-.1,4.4-6.2,10.5-9.6,5.4-2.2-3.4-.8-11.6,2.6-14.2.5-.4,2.7-.9,1.6-1.8-.2-.2-1.3-.3-2.2-1.2-1.1-1.2-1.3-2.7-2.4-3.8-.8,1.3-1.2,2.8-2.2,4-3.7,4.8-8.3,3.5-10.5-1.9-.9-2.2-1.5,1.3-1.8,1.9-1.4,2.9-5.4,6.1-8.6,4.6-5.5-2.6-5.5-12.4-1.5-16.2.9-.8,1.9-.2,1.5-1.8-2.9-.3-4.3-2.9-5.8-5l-1.9,4.3-3.4,3.7c10.2,1,7,20.1-2.8,17.8-5.2-1.2-5.7-10.1-3.6-14.1l4-3.7c-2.5-.1-5-1.8-6.4-3.8-.6-.9-.6-2.4-1.5-2.5-.2,7.9-8.6,13-13.9,5.4-2.9-4.2-2.1-11.4,2.3-14.5-2.8-1.5-5.6-2.7-7-5.9-1.4,1.8-1,3.6-2.5,5.6-2.4,3.1-6,4.3-9.6,2.6-3.1-1.4-3.9-4.4-5.5-7.1.3-4.7,0-7.6,3.8-11.1-3.5-.4-5.5-2.6-7.7-5-.6,1.3-.8,2.8-1.5,4.1-1.5,3.2-3.2,3.3-5.7,5.1-2.6-.2-4.7-.4-7-2-1.8-1.2-2.8-3.4-4.1-4.9.2,4.9-1.2,10-6.7,10.9-7.8,1.3-12.9-9.5-8.6-15.6,3.5-4.9,10.8-3.9,13.6,1.1.8,1.4.8,2.5,1.7,3.5,0-1.9-.7-3.2-.4-5.1.4-2.9,2-4.9,3.6-7.2-3.9-.5-6.1-3-8.6-5.6.9,10.1-11.8,13.8-16.6,5-3-5.5-1.9-10.1,2.5-14.4-4,.4-7-2.2-9.5-5l-1.1,5.1c-2.9,5.9-10.4,6.8-14.7,1.9-2.9-3.4-3.5-9.7-.8-13.2l2.8-2.5c-3.2.2-7.7-1.6-9.5-4.4-.9-1.4-.5-2.2-1.5-3.1-.2,4.7.8,7.9-3.5,11.1-8.7,6.5-17.8-6.6-11.6-14.3,3.7-4.6,9.8-4.2,13.3.4.9,1.2.8,1.9,1.8,2.8.2-4.4-.8-8.3,3.2-11.4-1.2-1.4-3.3-1-4.9-1.9s-2.6-3.2-4.3-4c1.8,10.5-12.1,15.4-16.6,5.6-2.2-4.8-1.4-9.6,3.1-12.8,5-3.5,9.2-.9,12.9,2.9-.4-3.6.7-6.6,3.2-9.2-3.2-.5-5.7-2.3-8-4.4,0,6.9-7.7,12.5-13.9,8.4-5.2-3.4-5.3-11-1.5-15.5.6-.7,1.7-.7,1.9-1.6-3.4.3-8.1-1.1-8.6-5l-1.4,4.5c-1.9,5.8-9.4,9.4-13.8,4-6.2-7.5,4-19.9,11.6-13.8,1.1.9,1.2,2.3,2.4,2.8-.6-4.1,1.8-6.7,3.8-9.8-3.4.3-5-1.8-7.4-3.8-.6,5.6-5.4,11-11.4,9.6s-5.9-10-2.2-13.8c.9-1,2.6-1.3,3.1-2.7-3.1.8-6.1.7-7.9-2.3-3.2-5.4.9-8.8,4.4-12.5-5.3.5-8.1-.7-7.3-6.5.5-3.5,2.8-4.8,5-7.1-7.4,1-8-4.6-4.2-9.6l3.1-2.7c-9.2.8-6.2-7.1-1.1-10.8-1.6-.8-4,.6-4.3-1.9-.5-3.8,2.2-6.1,5-8-.4-.9-1.5.2-2.2.3-2.9,0-2.6-2.5-1.4-4.5.9-1.6,2.9-2.6,4.3-3.8-1.1-.7-2.8.3-3.7-1.3.9-2.7,2.9-4.4,5.6-5.2,0-1.6-3.5.5-3.1-1.6.4-1.9,2.5-2.5,3.7-3.7-.7-.9-.8-1.1-1.9-.7-.5.2-4.6,3-5.4,3.5-.2.1,0,.4-.1.5.6,0,3.2-.4,2.5.9-1.1,2.2-5.1,4-7.2,5.2-2-1.3.4-3,1.6-3.9,1-.8,2.2-1.5,3.1-2.2h0ZM97.6,23.2c.2-1.2.9-.4,2.1-.7,1.4-.4.8-3,.1-3-1,1.6-2.1,2.7-4,3-.2,1.1,1.1.6,1.8.6-.2,1.1,0,2-1,3.1l-3.4,2.5h2.7l.7,1.3c1.6-1.1,1.8-3.6,4.1-3.7v-.6c-2.2.2-1.5-1.9-1.9-2.5-.1-.2-.8,0-1.2,0h0s0,0,0,0ZM123,23.4c-2-.3-4.2,0-4.3,2.4,2.8.5,3.1-.1,4.3-2.4ZM109.2,30.7l1.9-2.7-3-1.6c-.1,1.7-1.9,2.3-2.6,3.7l3.6.6h0ZM123.4,33.3c0,0,.4-1,.7-1.5.4-.7.9-1.2-.3-1.5-1.9-.5-2.9,1-4,2.1.7.4,3.2,1.2,3.6.9h0ZM100,31.9l-3.7-1.3-.6,1.5-3.8,3.3c2-.2,3.4-.1,4.9,1.3,0-2.2,2.1-3.2,3.1-4.9h0ZM112.3,35.1l-3.7-1.3c-.1,2-2.4,2.6-3.1,4.3l4.3.6,2.6-3.7h0ZM137,36.5c.9.4,4.4.7,4.3-.9s-4.1-1.1-4.3.9ZM100.6,39.3c-1.6,0-3,.2-4-1.3l-4.7,5.5c2.2-.5,3.2.9,4.9,1.3.1-2.5,2.6-3.6,3.8-5.5h0ZM124.3,38.4l-2.2,2.7,2.8,1.5,2.2-2.7s-2.8-1.5-2.8-1.5ZM113.5,43.7l-3.3-.6-2.9,3.3c0,.7,3.9,2,4.3,1.6l1.9-4.3h0ZM142.3,44.7c-.9.3-2.3,1.9-.7,2.4,1.1.3,3.4-.7,3.4-1.5s-1.8-1.1-2.7-.9h0ZM100.5,49.1l-4.3-1.9c-.2,3-3.3,4.1-5,6.1,2.5-.7,4.1-.4,6.2,1.3.3-2.2,1.9-3.8,3.1-5.5h0ZM130.1,49.4l-3.3-.6-2.3,3c1.4.3,2.8,1,4.2.6l1.3-3h0ZM115.9,54.2c-1.7.2-2.9-.5-4.3-1.3l-3.1,4.9c1.9-.2,3.3.3,4.9,1.3-.5-1.3,3.2-4.3,2.5-4.9ZM149.2,56.4c-4.5-2.4-5.8,3.6-1.6,2.4.8-.2,1.3-1.7,1.6-2.4ZM101.6,59.6c-2.5.7-3-1.8-4.9-1.9.9,1.6-4.1,5.9-3.8,6.1,2.1-.1,3.9.7,5.5,1.9l.5-1.7,2.6-4.5h0ZM133.7,61.2c-1.3,0-2.4-.4-3.4-1.2l-2.8,3.6,4.3,1.3s1.9-3.7,1.9-3.7ZM170.1,64.6l-2.5-.6-.6,2.5c2.1.8,3.3.9,3.1-1.8h0ZM115.7,71.5c.2-1.8,1.6-3.1,2.5-4.6l-4-2.2-3.4,4.9,4.9,1.9h0ZM153.4,69.4l-3.1-1.3-1.3,2.8,2.8,1.5c.6,0,1.9-2.7,1.6-3ZM104,72c-2.3,0-3.9-1.1-5.5-2.5.2,3.2-2.9,4.4-4.4,6.8,2.6-.2,4.3.9,6.2,2.5.3-2.7,2.2-4.7,3.8-6.8h0ZM137.3,74.2c-1.1.5-3-1.2-3.4-1.2s-3.2,3.9-2.8,4.2l4,1.2c.6,0,2.5-3.9,2.2-4.2h0ZM121.8,79.6c-1.9,0-3.5-.8-4.9-1.9-.1,2.5-2.6,3.6-3.8,5.5l6.2,1.9c-.4-2.5,2.2-3.4,2.5-5.5h0ZM174.9,81.9l1.3-2.2-2.8-1.5-1.5,2.4,3.1,1.3h0ZM158.8,83.6c-2.8-.6-4.2-1.4-4.9,2.1l2.8,1.5,2.2-3.6s0,0,0,0ZM106.9,85.6c-2.2,0-4.1-1.2-5.8-2.5l-1.9,3.7-4,3.7c3.4-.3,5.6,0,8,2.6-.3-3.1,2-5.2,3.8-7.4h0ZM142.1,89c-1.5-.2-3-.7-4-1.9l-2.8,4.9,4.9,1.3,1.9-4.3h0ZM126,94.4c-2,0-3.5-1.1-5.2-1.9-1.5,1.8-2.1,3.8-4.1,5.2.8,1.2,2.3.9,3.5,1.4,1,.4,1.4,1.6,2.6,1.4l3.2-6.1h0ZM181.5,95c-2.6-1-3.3-.9-4.3,1.8l2.8,1.2,1.6-3h0ZM110.5,100.5c-2.8.1-4.8-1-6.4-3.1-1.3,1.3-1,3.4-2.6,4.9l-4,3.7c3.9-1.2,6.8.1,9.2,3.2-.4-3.6,1.7-6,3.8-8.6h0ZM164.2,99.7l-4.3-1.3-1.3,3.7,4.3,1.3,1.3-3.7ZM146.9,105.1l-4.9-1.9c.3,1.1-2.8,4.7-2.5,4.9l5.5,1.9s1.9-4.9,1.9-4.9ZM204.8,110.6c.9-1.9.6-3.5-1.8-3.7-1,2.4-.5,2.8,1.8,3.7ZM130.1,110.5c-2,0-3.9-1.1-5.2-2.5-1.1.8-1,2.2-1.7,3.3-.8,1.3-2.4,2-3,3.4,3.1-.4,5.2,1.4,7.4,3.2-.7-1.7,3.3-6.8,2.5-7.4h0ZM184.8,111.1l-2.2,2.7,3.4,2.2,1.5-3.3c-.1-.6-2.1-1.7-2.7-1.6h0ZM170.2,117.1l-4-1.9-2.8,3.9,4.9,2.8,1.9-4.9h0ZM152.9,122.5c-2.2.2-3.6-1.7-5.5-2.5-.1,2.4-2.7,3.8-2.5,6.2,2.2,0,3.8,1.4,5.5,2.5,0-2.3,1.7-4.1,2.5-6.2h0ZM230,125.1c1.1-2.7-1.3-4.2-3.1-1.6l3.1,1.6ZM135.5,127.9c-2.6,0-4.3-1.2-5.8-3.1-1.3,1-1.1,2.9-1.9,4.3s-2.8,2.1-3.4,3.7h3.3c0,.1,5.3,3.2,5.3,3.2-.6-3.3,1.9-5.3,2.6-8h0ZM209.1,125.5l-1.3,2.1,2.8,2.2c2.4-2,1.7-4.4-1.5-4.3h0ZM194.1,130.9c-1.4,0-2.5-.9-3.4-1.9l-2.2,4.3,4.3,1.9,1.3-4.3h0ZM176.2,135.7l-4.9-2.5c.2,2.2-1.7,3.6-2.5,5.5,2.1.2,3.7,1.6,5.5,2.5l1.9-5.5ZM251.5,140.1l2.1,1.3c1.8-1.3.8-2.6-.6-3.7l-1.6,2.4h0ZM158.9,141c-2.4-.2-4.2-1.9-6.1-3.1-.3,2.6-2,4.6-3.2,6.8,1.1.2,2.5.6,3.5,1.1,1.2.7,1.8,2.1,3.2,2-.4-2.8,2-4.5,2.5-6.8h0ZM236.6,141.8l-3.1-.6c-1.2,2.5-.1,3.3,2.4,3.7l.6-3.1h0ZM218.7,146l-3.7-1.9c0,1.5-1.2,2.5-1.9,3.7l4.3,1.9,1.3-3.7h0ZM200.7,150.1l-4.9-1.9c.1,1.6-1.1,2.8-1.9,4l4.9,2.8,1.9-4.9h0ZM174.1,158.5c2.3,0,4.4,1.4,5.8,3.1l2.8-5.8-5.5-3.4c-.2,2.4-1.9,4.2-3.1,6.1h0ZM277.2,158.2c-.2-.8.7-1.5.6-2.1-.2-.9-2.1-1.3-2.4-1,0,0-.5,1.6-.4,1.9.3.5,1.8,1.7,2.2,1.2h0ZM259.3,161.8l1.2-2.8-3-1.6c-1,2.2-.2,3.1,1.8,4.3h0ZM165.5,160.2c-2.5,0-4.7-1.5-6.4-3.1l-4.1,7.4c2.9.2,5.3,1.5,7.1,3.8,1.3-.9.8-2.4,1.2-3.7.4-1.1,2.7-3.8,2.2-4.3h0ZM242.6,161.6c-1.4-.2-2.1-1.7-3.7-1.3l-1.2,2.8,3.6,2.2,1.3-3.7h0ZM223.4,170.1c-.4-1.3,1.4-3.2,1.3-3.9-.1-.6-3.7-2.9-4.2-2.2l-1.9,3.3c.6.6,4.4,3.4,4.9,2.8h0ZM206.7,169.9c-2.1,0-2.9-2.4-4.9-2.5l-2.5,5.5,5.5,2.5c.2-2,2.2-3.4,1.9-5.5h0ZM189.4,174.7c-1.6.8-6.1-3.8-6.8-3.2.4,2.8-1.9,4.6-3.2,6.8,3,0,5.2,2.1,7.4,3.8,0-1.8.6-3.6,1.4-5.1.4-.8,1.4-1.1,1.2-2.2h0ZM298,176.3c.7-1.9.8-2.4-.9-3.7-1.9,1.6-1.8,3.4.9,3.7ZM280.4,174.3c-1.9,1.6-2.1,3.6.6,4.3,2.2-2,1.4-2.6-.6-4.3ZM172.1,180.1c-1.3-.3-2.8-.7-3.9-1.4-.8-.5-3.4-3.8-4.1-3,.2,2.3-.9,5.4-2.5,7.1-.8.8-1.9.6-1.9,1.5,4,.3,6.8,2,9.2,5,0-1.7.3-4,1-5.6s2.2-2.1,2.2-3.7h0ZM264,182.2l1.2-3.3-3-2.2-1.9,3.7,3.7,1.9h0ZM241.8,183.8c1.5.2,2.9,1.5,4,2.5l2.1-3.9-3.3-2.9-2.8,4.3h0ZM230.6,185.6c-1.6.4-3.7-2.8-4.6-2.5l-2.8,4.6,4.6,3.4c1-.8,1.1-2.1,1.7-3.3.4-.8,1.5-1.1,1.2-2.2h0ZM210.8,196.5c-.2-2.2,1-4.3,2.5-5.8-.8-1-2.1-1.2-3-1.9-1-.8-1.6-2.3-3.1-2.2-.2,2.4-1.9,4.2-3.1,6.1,1.1.1,2.4.7,3.3,1.4,1.2.8,1.9,2.5,3.5,2.4h0ZM196,194.5c-3.1-.3-5.1-2.6-7.4-4.4,0,3.3-1.6,6-4.4,7.7,1.2,1.4,3.3,1,4.9,1.9,1.4.8,2.2,2.7,3.7,3.4,0-3.3,1.5-6,3.2-8.6h0ZM300.9,197.3l1.1-2.8-2-2.2c-2.7,1.9-1.5,3.5.9,4.9h0ZM283,194.1c-1.5,2.8-1.9,4.1,1.5,5.6,2.6-2.2,1.6-4.9-1.5-5.6ZM268.1,203.2c-.1-1.6,1.1-2.8,1.9-4-.7-.4-3.8-3.4-4.3-2.8,0,1.8-1.9,2.7-1.9,4.3,1.9,0,2.4,2.6,4.3,2.5h0ZM248.4,198.7l-2.5,5.2,4,3.4,2.8-5.2-4.3-3.5h0ZM236,205.4c-2.1-.4-3.9-1.6-5.2-3.1-1.1.8-1,2.2-1.6,3.3s-2,1.5-1.8,2.8c2.2.5,3.9,1.3,4.9,3.4,1,2.2,1.5-1.6,1.9-2.4.6-1.4,1.9-2.4,1.9-4h0ZM219.3,209.5c-2.6-.4-4.7-1.9-6.4-3.8-1.6,2.7-2.4,5.2-4.7,7.4,3.7.1,5.8,2.5,8,5-.4-3.3,1.6-5.9,3.2-8.6h0ZM329.2,210l-1.1,2.1,2,2.8c2-1.3,1.9-4.7-.9-4.9ZM317.4,216c1-2.6,1.6-3.5-.9-5.6-1.6,2.1-3.3,2.9-.7,4.9.5.4.6.9,1.5.6h0ZM302.6,218.3l1.9-3.9-3-2.9c0,1.4-.9,2.4-1.8,3.4l3,3.4h0ZM283.4,218.1c1.5,0,2.3,1.6,3.4,2.5l2.8-4-3.3-3.4c-.3,0-3.1,4.6-2.8,4.9h0ZM271,224.2l2.5-5.2-4-3.4c-1.4,1.4-1.7,3.4-3.4,4.6l4.9,4.1h0ZM257.5,221.6c-2.5,0-3.3-2.9-5.5-3.1.4,1.4-3.9,5.6-3.1,6.1,2.4-.2,3.5,2.4,5.2,3.8l3.4-5.9v-.9h0,0ZM241.4,225.2c-2.9-.4-4.6-2.8-6.8-4.4.2,2.9-1.9,5.1-3.8,7.1,1.1,1.3,3.1,1.5,4.3,2.5,1.1.9,1.2,2.3,2.4,2.8.5-3.2,2.1-5.4,3.8-8h0ZM341.3,234.1c2.8-1.6,1.3-3.3.7-5.5-3.1,1.7-.9,3.1-.7,5.5ZM351.2,234.9c2.8-2,2.5-3.3,1.3-6.2l-2.4,2.8,1.1,3.3h0ZM330.2,235.9c-.6-1.7,2.1-2.9,1.9-3.9l-2.1-2.9-2.8,3.4c.4.6,1.1.9,1.5,1.6.6,1-.3,2.2,1.5,1.8h0ZM317,229.6c-.5.9-2.9,3.2-2.8,3.9l2.7,3.5,2.7-4-2.6-3.4ZM303.6,239.3l2.5-5.2-3.6-3.5c.4,1.7-2.7,3.6-2.5,4.6l3.6,4.1h0ZM288.7,242.3c0-2.4,1.8-4.1,3.1-5.8l-3.9-4-3.5,5.2,2.1,1.6,2.2,3.1h0ZM273.3,245.2c.2-2.6,1.9-4.3,3.1-6.4l-4.9-4.7c.4,3.2-3.4,4.2-3.8,6.7,2.8.1,3.7,2.9,5.5,4.4h0ZM386.9,242.6c1.2-2.2,1.4-3,.7-5.5-.9-.1-1.1,1.6-1.2,2.2,0,.7-.6,3.4.5,3.4h0ZM261.6,241.4c-2.6-.3-4-2.8-5.8-4.4-1.1,1-1.1,2.4-1.9,3.7-.9,1.3-2.7,2.2-3.4,3.7,1.9-.3,3.1.9,4.6,1.9l2.7,3.8c-.3-3.6,1.5-6.1,3.8-8.6h0ZM339.2,255.7c-.2-1.5,2.4-3.7,2.4-4.6,0-.2-1.7-3.9-2-4-.7,1.6-1.5,2.9-2.8,4.1l2.4,4.6h0ZM328.1,256.2c1.4-3.9,4.5-4.6.4-8.6l-3.4,4,3,4.7ZM350.4,247.8c-.6-.8-2.9,2.3-3,2.9-.4,1.2,1.1,3.1,1.1,4.5l3-4.1-1.1-3.3h0ZM357.7,255.9c0-1.5,2.2-3.1,2.4-4.1.2-.9-1.2-2.8-1.1-3.9l-2.2,2.4-.3.9,1.2,4.6h0ZM316.4,257.4c-.4-1.9,2.9-3.8,3.1-4.7.2-.9-2.8-2.9-2.4-4.6l-4.4,4.6c1.7,1.3,2,2.4,2.4,4.3.2.7.7.4,1.2.4h0ZM365.8,256c1.6-2.9,2.1-4,1.3-7.4l-2.2,2.4c-.6,1-.4,2.2-.2,3.3,0,.5.3,1.9,1.1,1.7h0ZM303.4,259.7l3.1-6.4-3.3-4.1c-1,.8-1.2,2.1-1.9,3-.8,1.1-2.4,1.7-2.2,3.1,2.7,0,2.4,3.4,4.3,4.4h0ZM373.2,249.9c-.7,2.2-3.5,4.5-1,6.8l2.1-2.8-1.1-3.9h0ZM288.5,262.6c.9,0,1-.9,1.3-1.5,1-2.2,1.6-4,3.7-5.5,0-.4-4.8-2.9-4.3-4.7-2.1,1.2-2.3,5.2-5,5.5v1.2c2.7.2,3.8,2.6,4.3,5h0ZM383.7,255.5c-2.9,0-1.7,3.6-1.9,5.5l2.4-2.9-.5-2.7h0ZM389.3,263.5c-.6-.8.6-3-.7-3l-1.3,6.2,1.6-1.8,1.5.6c.6-2.2-.8-1.6-1.1-2h0ZM335.3,276.1c.4-2.5,2.1-4.2,3.7-5.9l-1.8-5.2-2.8,4.3-1.5.6,1.1,1.7,1.3,4.5h0ZM344.6,275.5c-.4-1.6,3.6-5.4,3.6-5.8s-1.9-3.2-1.1-4.6c-.8.5-4.2,4.3-4.3,4.7-.2.7.9,1.7,1,2.5.2,1-.5,3.2.7,3.3h0ZM329.2,271v-.9l-3-4.7c.2,1.8-3.5,4.5-3.7,5.3-.2.7,1.4,2,1.7,3.1.2.8,0,2.5,0,2.7.9,1.1,1.1-.2,1.3-.9.5-1.7,1.9-4.5,3.7-4.7h0,0ZM356.4,270.7l-1.2-5-3.5,3.7c-.3.4.2,4.9,1.2,5.6.9-.6.7-.4,1.7-.9,1.1-1,1.2-1,1.8-3.4h0ZM313.7,278.9c.8-3.1,2.6-5.6,5-7.7-1.5-1.5-3.2-2.9-3-5.3-1.7,1.3-2,3.1-3.7,4.6-.8.7-1.7.8-1.9.9-1.1.9,1,1.4,1.5,1.8.5.4.8.9,1,1.5l1,4.2h0ZM366.8,276.4c-.1-1.6,2.1-2.4,2.4-3.5.5-1.6,0-4,.1-5.8l-2.2,3.1-1.6,1,1.2,5.2h0ZM362.7,266.9c-.9.7-3,2.5-3.9,3.2-.2.2,1.2,4.3.5,5.5.9-1.2,3.5-3.2,4.1-4.3M371.7,278.3l3-4.7-.5-3.9c-2.7,2.2-3.2,3.7-3.1,7.1,0,.7-.4,1.7.6,1.5h0ZM380.4,275.3l-1.2.3-.3-.3-.9-3.4c-2.5,2.7-2.9,4.6-2.5,8.3l2.5-3.4c1,.4,3.5-.4,2.5-1.5h0,0ZM382.2,280.8l-.6-3.1-.7,6.8,1.9-1.8.6,2.5,1.9-6.1-3.1,1.8h0ZM372.2,291.8v-3.7s-4,3-4,3c-.5.6.4,2.1.3,3.4-.1,1.4-1.3,2.6-1.3,4l3.4-4.3.9,3.7c4-1.4,3.4-5.7,4.4-9.2-1.6.6-1.6,3.3-3.7,3h0s0,0,0,0ZM377.2,295.6l-.6-1.2c-.4,2.6-2.4,4.3-3.8,6.5.1,2.5,1.8-2,2.5-1.5l-.6,3.7.7-1.1c2.6,1.6,3.4-6.6,3.1-6.9l-1.2.6h0Z"/>
+ <path class="st1" d="M222.9,241.7c-.2,3.4.6,5.6-1.6,8.6-6.1,8.3-17.5-.7-13.8-10.9.9-2.4,2.4-3.2,4.4-4.6,2.9.3,4.3-.4,7,1.4,1.9,1.3,2.9,3.5,4.1,5.5h0Z"/>
+ <path class="st1" d="M167.5,206.1c8.4-1.2,13.7,12,6.5,17.2-2.3,1.7-6.6,1.8-8.9.2-6.8-4.7-6.4-16.1,2.4-17.4h0Z"/>
+ <path class="st1" d="M142.3,192.9c7.5-1.6,13.1,6.6,10.4,13.1-4,9.8-18.2,3.9-15.7-7.3.4-2,3.3-5.4,5.3-5.8Z"/>
+ <path class="st1" d="M108.9,141.4c8.9-1.3,12.4,13.8,3.2,17.7-11.6,4.9-15.2-15.9-3.2-17.7Z"/>
+ <path class="st1" d="M114.3,160.5c8.3-1.2,12.2,12.1,4.9,16.9-2.5,1.6-7,1.4-9.2-.7-5.1-5-3.1-15.1,4.3-16.2h0Z"/>
+ <path class="st1" d="M119,180.3c6.9-1.5,10.7,4.5,10,10.8-.2,2.1-1.8,3.9-3.5,5.2-6,4.3-12.8-2.6-11.9-9,.3-2.6,2.7-6.4,5.4-7h0Z"/>
+ <path class="st1" d="M233.8,249.9c5.9-1.3,10.1,5.3,9.3,10.8-.9,6.9-8.9,10-13.2,3.9-1.7-2.5-2.1-7.1-1.2-9.9.5-1.4,3.6-4.4,5.1-4.7h0Z"/>
+ <path class="st1" d="M172.9,226.5c9.8-2.1,14.1,12.1,6.7,16.1-7.4,4-14.6-6-10.7-12.8.6-1.1,2.8-3,4.1-3.3h0Z"/>
+ <path class="st1" d="M150.2,212.7c8-1.2,12.7,10.6,6.8,15.7-6.8,5.9-16.3-4.9-11.9-12.1.9-1.5,3.3-3.3,5.1-3.6h0Z"/>
+ <path class="st1" d="M196.2,240.3c10.2-2.1,13.7,15.4,3.9,17.1-9.7,1.6-13.3-15.1-3.9-17.1h0Z"/>
+ <path class="st1" d="M217.7,254.7c7.8-1.7,12.8,10.4,6.5,15.4-7.4,5.8-16.7-7.5-8.8-14,.7-.6,1.4-1.2,2.3-1.4h0Z"/>
+ <path class="st1" d="M122.8,202c4.7-4.6,11.7-.5,12.6,5.3,1,6.1-4.9,11.5-10.7,8-4.2-2.6-5.5-9.8-1.9-13.3h0Z"/>
+ <path class="st1" d="M92.1,149.2c5.1-1.1,8.8,4.8,8,9.4-.5,2.7-2.9,6.7-5.8,7.2-10.3,1.7-11-14.7-2.2-16.6Z"/>
+ <path class="st1" d="M252.7,265.6c8.2-1.8,11,11.3,4.9,15.6s-11.2-2.5-10.4-8.7c.4-2.6,2.7-6.4,5.4-7h0Z"/>
+ <path class="st1" d="M88,131.3c6.3-1,8.8,5.9,6.6,11-1.8,4.1-6.3,7.1-10.4,4.1-5.4-3.8-2.5-14.1,3.9-15.2h0Z"/>
+ <path class="st1" d="M97.5,168.4c2.9-.6,5.8,1.4,7.1,3.8,3.3,6.5-2.3,15.5-9.3,11.6-5.5-3.1-4.3-14.1,2.3-15.4h0Z"/>
+ <path class="st1" d="M157.4,232.5c8.9-1.2,12.2,15.2,2.7,16-8.4.7-12-14.7-2.7-16Z"/>
+ <path class="st1" d="M179.5,246.3c7.6-1.6,12.2,7.8,8.1,13.2-1.7,2.2-3.2,2.4-5.9,2.1-7.3-.8-9-13.9-2.2-15.4h0Z"/>
+ <path class="st1" d="M88.7,127.9c-.9.8-4.4,2.6-5.6,2.5-8.1-.8-6.3-14.1,1.4-15.8,7.6-1.6,9,8.9,4.2,13.3Z"/>
+ <path class="st1" d="M132.8,220c7.9-1.7,12.9,9.6,6.5,14.1-2.6,1.9-5.1,1.5-7.7-.4-4.2-3.2-4.2-12.6,1.1-13.7h0Z"/>
+ <path class="st1" d="M237.9,269.7c7.5-1.6,11.1,10.5,4.4,15-1.6,1-2.5,1.2-4.3.6-6.6-2-7.3-14.1,0-15.6h0Z"/>
+ <path class="st1" d="M201.6,260.1c9.9-2.1,12.3,13.6,4.6,15.2-9,2-11.9-13.7-4.6-15.2Z"/>
+ <path class="st1" d="M102.9,188.2c9.5-2.1,11.8,13.5,3.9,15.2-9.5,2.1-11.3-13.6-3.9-15.2Z"/>
+ <path class="st1" d="M296.5,275.9c4.6-1,6.7,3.7,6.3,7.7s-3.9,10.9-8.8,9.2c-5.4-1.9-3.5-15.5,2.5-16.9h0Z"/>
+ <path class="st1" d="M283.5,278.2c5-1,6.8,4.9,6.2,8.9-1.2,8.3-11.2,11.4-12.3,1.7-.4-3.7,2.1-9.8,6.1-10.6h0Z"/>
+ <path class="st1" d="M81.5,99.1c9.9-2.1,8.5,11.9.7,14.4-6.7,2.2-9.2-5.2-5.8-10.3.8-1.2,3.7-3.9,5.1-4.2Z"/>
+ <path class="st1" d="M274.2,282.5c.8.8,1.9,3.9,2,5.1.4,8-8.5,14-11.7,5.3-1.5-4.2.5-10.7,5.3-11.7,1.1-.2,3.5.6,4.3,1.3h0Z"/>
+ <path class="st1" d="M222.4,274.5c8.1-1.8,11,10.3,5,13.8-8.1,4.7-13.3-12-5-13.8Z"/>
+ <path class="st1" d="M109.5,208c8-1.7,12,9,5.6,13.2-8.2,5.4-13.4-11.5-5.6-13.2h0Z"/>
+ <path class="st1" d="M76,157.7c1.6-.3,3.9-.2,5.1.9,4.3,3.9,1.9,13.9-4.1,13.8-7.3,0-7.2-13.3-1-14.7h0Z"/>
+ <path class="st1" d="M164,252.3c1.4-.3,3.3.1,4.5.9,7.4,4.5,3.4,17.7-5.2,11.9-4.6-3.1-4.9-11.6.8-12.8Z"/>
+ <path class="st1" d="M186.7,265.5c8.1-1.6,11.6,12.9,3.3,14-7.5,1-10.7-12.5-3.3-14Z"/>
+ <path class="st1" d="M260,286c3.2,3,2.5,11.7-1.8,13.1-6.4,2.1-8.1-4.2-7.3-9.3.6-4,5.9-6.8,9.1-3.8Z"/>
+ <path class="st1" d="M81.1,84.9c6-.9,6.2,5.9,3.4,9.8-1.4,2-4.8,4.5-7.3,4.2-7.5-.9-3-12.9,3.8-13.9h0Z"/>
+ <path class="st1" d="M71.8,139.8c10.3-2.2,8.1,14.6-.3,14.1-6.5-.4-5.5-12.9.3-14.1Z"/>
+ <path class="st1" d="M140.6,239.8c9-1.9,11.9,14.3,2.2,13.5-6.7-.5-8.6-12.1-2.2-13.5Z"/>
+ <path class="st1" d="M69.6,122.4c8.9-1.8,6.8,15.3-2.1,14.1-7-1-3.6-12.9,2.1-14.1Z"/>
+ <path class="st1" d="M81.4,176.9c9.6-2.1,9.1,15.9.5,14-6.1-1.4-6.2-12.7-.5-14Z"/>
+ <path class="st1" d="M207.5,279.3c6.8-1.5,10.4,8.8,5.3,12.3-7.4,5.2-13.1-10.6-5.3-12.3Z"/>
+ <path class="st1" d="M118.4,227.4c8.7,0,8.5,15,.6,13.2-7-1.6-7.1-13.2-.6-13.2Z"/>
+ <path class="st1" d="M85.7,208.1c-2.7-2.6-2.8-9.2.6-11.2,6.7-4,11.8,7.6,6,11.7-1.9,1.4-5,1-6.6-.5h0Z"/>
+ <path class="st1" d="M246.3,301c-.1.2-1.9,1.2-2.1,1.2-8.6,2.2-9.4-13.6-1.6-13.5,5.6,0,6.8,9,3.7,12.3h0Z"/>
+ <path class="st1" d="M71.6,107.7c.4.5,1.4,3.1,1.4,3.9,0,2.2-2.1,6.1-3.8,7.3-7.5,5.4-11-5.7-3.9-10.8,1.6-1.2,4.9-1.9,6.4-.4h0Z"/>
+ <path class="st1" d="M295,295c8.9-1.9,5.1,15.7-2.1,14.7-4.8-.7-3.2-13.5,2.1-14.7Z"/>
+ <path class="st1" d="M302.6,307.8c-.2-.2-1.2-3.2-1.3-3.9-.3-3.6,2.7-12.1,7.1-11.3,5.4,1,2.4,14.4-3.1,15.3-.6,0-2.4.2-2.7,0h0Z"/>
+ <path class="st1" d="M283.3,297.3c.6-.1,1-.1,1.6,0,6.3,1.5,2.7,15-3.7,14.1-5-.7-4.3-12.7,2.1-14.1Z"/>
+ <path class="st1" d="M73.3,84c-1.3-1.3-.6-4.6,0-6.2,2.5-5.7,12.7-8.7,11.6-.7-.6,4.1-8.3,10.3-11.7,6.9h0Z"/>
+ <path class="st1" d="M317.9,291.5c3-.6,4.1,2.6,3.8,5.1-.4,3.7-3.5,11.7-8.3,10.1-3.8-1.3-.4-14.1,4.5-15.2h0Z"/>
+ <path class="st1" d="M270.3,300.3c5.7-1.2,6.4,7.5,3.2,11.4-5.1,6.1-10.1-2.5-6.6-8.6.6-1,2.3-2.5,3.5-2.7h0Z"/>
+ <path class="st1" d="M148.5,259c7.2-1.5,10.6,10.8,3.9,12.2-6.6,1.4-10.2-10.9-3.9-12.2Z"/>
+ <path class="st1" d="M171.8,271.5c6.5-1.3,10,10.9,3.3,12.2s-10.8-10.7-3.3-12.2Z"/>
+ <path class="st1" d="M67.9,92.3c4.3.1,3.7,5.4,2.2,8.2s-6.5,6.6-9.1,3.2c-2.9-4,2.5-11.5,6.9-11.4Z"/>
+ <path class="st1" d="M225,294.3c.3-.3,2.8-1.3,3.3-1.3,6.3,0,7.7,11.7,1,12.9-1.9.4-5.2-2.9-5.6-4.7s0-5.6,1.3-6.8h0Z"/>
+ <path class="st1" d="M99.5,217.2c5.9,6.2-2.2,15.7-7.2,8-4.1-6.4,2.7-12.6,7.2-8Z"/>
+ <path class="st1" d="M192.7,284.7c5.4-1.5,9.9,6.3,6.3,10.2-4.2,4.6-10.7-2.1-8.9-7.2.3-.9,1.8-2.7,2.6-2.9Z"/>
+ <path class="st1" d="M257.3,303.2c5.5-1.2,7.2,8.8,2.5,11.9-7.2,4.8-9.2-10.5-2.5-11.9Z"/>
+ <path class="st1" d="M125.1,247c3.9-1.1,8,3.4,7.6,7-.8,6.8-9.6,5.3-10.5-1.3-.3-2.1.7-5.1,2.9-5.7h0Z"/>
+ <path class="st1" d="M57.6,148.3c8.9-1.9,5.8,14.3-1.2,11.9-4.7-1.6-3.3-11,1.2-11.9Z"/>
+ <path class="st1" d="M61.7,166.2c7.4-1.5,6.8,11.5,1.6,12.3-6.9,1-6.6-11.2-1.6-12.3Z"/>
+ <path class="st1" d="M73.4,71.6c-3.7-3.7,5.7-13.5,9.6-10.3,3,2.5-.4,7.8-3.1,9.4-1.6.9-5,2.4-6.5.9Z"/>
+ <path class="st1" d="M51.8,142.4c-.5-.5-1.3-3.1-1.4-3.9-.2-4.8,5.9-10.9,8.7-6,3.2,5.6-3.8,13.5-7.3,9.9Z"/>
+ <path class="st1" d="M66.5,185.4c6.8-2,8.4,10.3,2.8,11.5-7.3,1.6-7.1-10.3-2.8-11.5Z"/>
+ <path class="st1" d="M212.9,297.9c7.6-2.2,9.6,12.2,1.7,11-5-.7-6.1-9.7-1.7-11Z"/>
+ <path class="st1" d="M67.5,79.2c1.8-.1,3.4,2.1,3.2,3.8-.5,3.7-5.4,9.5-9.2,7.5s1.2-10.9,6.1-11.2h0Z"/>
+ <path class="st1" d="M102.4,235.1c6.5-1.3,8.8,9.8,3.3,10.9-6.6,1.3-8.7-9.8-3.3-10.9Z"/>
+ <path class="st1" d="M54.2,114.9c2.1-.4,3.5,1.6,3.8,3.5.5,3.9-4.7,11.2-8.3,7.5-2.9-2.9.8-10.4,4.6-11h0Z"/>
+ <path class="st1" d="M244.8,307c6.5-.2,5.9,10.8,1.1,11.5-6.8,1-6.5-11.4-1.1-11.5Z"/>
+ <path class="st1" d="M293.6,312.8c1.5-.3,2.9,1.5,3.1,2.9.6,3-2.5,10.6-6.2,9.7-4.6-1.1-1.4-11.8,3-12.6h0Z"/>
+ <path class="st1" d="M77.4,214.9c-.3.3-1.6.7-2.1.7-4.2.3-6.1-4.6-4.8-8.1,2-5.9,9.3-2,8.3,4.1,0,.6-1.1,3-1.4,3.3Z"/>
+ <path class="st1" d="M304.2,311.1c3.2-.6,2.8,4.2,2.5,6.3-.4,2.4-3.6,7.3-6.3,6.5-3.9-1.2-.5-12,3.9-12.8h0Z"/>
+ <path class="st1" d="M281.9,315.2c5.1-1.1,4.8,8.8.7,11.3s-5.3-1.9-4.8-5.5c.3-2,2-5.3,4.2-5.8h0Z"/>
+ <path class="st1" d="M308.7,322.6c-2.2-2.3,1.3-11.6,4.3-12.5,4.7-1.5,3.7,4.1,2.6,7-.8,2-4.5,7.9-6.9,5.5h0Z"/>
+ <path class="st1" d="M156.3,278.2c7.7-2.2,10.1,11.6,1.8,9.7-4.2-1-5.8-8.5-1.8-9.7Z"/>
+ <path class="st1" d="M139.1,275.3c-1.7,1.7-4.9.4-6.3-1.2-3.8-4.1-.8-10.9,4.6-7.6,2.6,1.6,4,6.5,1.7,8.8h0Z"/>
+ <path class="st1" d="M179.1,290.1c2.7-.5,5.7,2.1,6.2,4.7,1.1,5.5-4.9,7.5-8.2,2.5-1.7-2.5-1.2-6.6,2-7.3h0Z"/>
+ <path class="st1" d="M324.7,308.8c1.5,1.5.2,5.4-.5,7.2s-3.8,6.9-6,6.3c-3.4-1,.6-10.4,2.4-12.1.6-.6,3.5-2,4.1-1.3h0Z"/>
+ <path class="st1" d="M54.3,109.7c-1.1,1.1-3.8,2.6-5.1,1.4-4.2-3.5,2.6-12.9,6.6-10.2,2.5,1.7.1,7.2-1.5,8.8h0Z"/>
+ <path class="st1" d="M74.1,60.6c-2.9-4.5,7.9-13.1,10.2-8.5,1.8,3.6-6.5,10.5-10.2,8.5Z"/>
+ <path class="st1" d="M67.6,67.5c3.9-.9,3.4,3.8,1.9,6.3-1.9,3.2-9,7.2-8.6,1.2.2-3,3.9-6.9,6.7-7.6h0Z"/>
+ <path class="st1" d="M270.1,318.2c6.9-1.4,4.5,11.5-.8,11-4-.4-3.7-10.1.8-11Z"/>
+ <path class="st1" d="M80.3,223.7c3.5-1,6.6,4.1,5.4,7.4-1.9,5.5-7.5,2.7-8.2-2.4-.3-1.7,1.2-4.6,2.8-5Z"/>
+ <path class="st1" d="M325.2,321.7c-1.6-1.7,1.2-8.4,2.4-10.3s5.2-5.6,5.7-1.7c.4,3.3-3.9,12.5-8.2,12h0Z"/>
+ <path class="st1" d="M231.3,311c5.6-1.6,7.5,10.1,1.6,10.5-3.5.2-5.6-5.3-4.2-8.1.2-.4,2.2-2.2,2.6-2.4h0Z"/>
+ <path class="st1" d="M199.9,302.7c5.1-.9,8.2,8.6,2.7,9.7s-8-8.8-2.7-9.7Z"/>
+ <path class="st1" d="M115.2,255.6c4.7,4.8-1.6,12.2-5.7,5.9-3.3-5.1,1.5-10.2,5.7-5.9h0Z"/>
+ <path class="st1" d="M335.6,320.4c-4,3.9-3.8-1.2-2.7-4.3.7-2,4.1-8.4,6.4-8.4,1.3,0,1,4.2.8,5.1-.3,1.4-3.4,6.6-4.5,7.6h0Z"/>
+ <path class="st1" d="M46.4,184.3c-.2-.2-1.2-2.4-1.2-2.8-1.1-5.6,5.1-9.9,7.1-3.9,1.3,4.1-2.7,9.9-5.8,6.6h0Z"/>
+ <path class="st1" d="M261.5,321.8c.2.2,1.2,2.4,1.2,2.8.6,2.9-3,8.9-6.1,6-3.9-3.6,1.1-12.6,4.9-8.8h0Z"/>
+ <path class="st1" d="M43,157.4c3.7-3.3,7.1,2.9,4.4,7.3-1.4,2.2-3.5,3.2-5.2.9s-1.2-6.3.8-8.2h0Z"/>
+ <path class="st1" d="M53.2,87.1c5.4-1.6,3.5,6.6,0,8.8-4.5,3-6.2-.7-4.1-4.8.4-.8,3.3-3.8,4-4Z"/>
+ <path class="st1" d="M56.5,202.9c-.3.3-1.7.7-2.1.7-3.1.2-4.5-5.1-3.2-7.6,2.5-4.8,6.9-1,6.6,3,0,.5-1.1,3.6-1.4,3.9h0Z"/>
+ <path class="st1" d="M344.9,308.4c3.6-1,1.3,5.1.5,6.7-.6,1.2-4.8,6.7-5.6,6.7-.6,0-.9-1.5-1-2.2,0-2.5,3.8-10.6,6.1-11.3h0Z"/>
+ <path class="st1" d="M42.8,139.4c.7,0,2.1,1.3,2.3,1.8,1.9,3.9-2.8,10.8-6,7.7-2.1-2.1,0-9,3.6-9.5h0Z"/>
+ <path class="st1" d="M222.6,323.7c-3.5,3.4-9.3-4.2-5.4-7.6,4.2-3.6,8.2,4.8,5.4,7.6Z"/>
+ <path class="st1" d="M71.6,57.6c1.4,3.3-5.4,10.3-8.1,8.9-3.4-1.7,1.8-7.3,3.9-8.5,1.4-.7,2.7-1,4.1-.4h0Z"/>
+ <path class="st1" d="M88.1,242.9c3.4-.9,6.9,4.5,4.8,7.4-4.4,5.8-9.9-5.9-4.8-7.4Z"/>
+ <path class="st1" d="M82.7,42.3c.9-.1,2.3-.3,2.6.9.9,3.1-6.4,9.2-9.3,7.3-.7-.5-.7-1-.5-1.8.6-2.6,4.7-6,7.2-6.4h0Z"/>
+ <path class="st1" d="M41.2,123.4c5-.9,2.2,11.1-2.6,9.7-3.5-1-1.1-9.1,2.6-9.7Z"/>
+ <path class="st1" d="M147.6,292.1c-2.9,2.8-8.8-2.5-6.5-6.3,3-5,9.8,3.1,6.5,6.3Z"/>
+ <path class="st1" d="M246,324.7c6.4-1.9,6.2,8.6,1.6,9.1-4,.4-4.2-8.3-1.6-9.1Z"/>
+ <path class="st1" d="M299.6,328.3c2.6-.8,2.3,3.3,1.9,5.1-.5,2.3-3,4.9-5.2,5.8-3.7-1.9.7-10.1,3.3-10.9h0Z"/>
+ <path class="st1" d="M164.8,296.2c4.8-1.4,7.7,6.1,4.5,7.7-5.2,2.5-8.4-6.6-4.5-7.7Z"/>
+ <path class="st1" d="M314.4,336.2c-1.5,1.5-3.6,2.1-3.6-.8,0-2.3,3.9-10.1,6.6-9.5,3.1.6-1.7,8.9-3,10.3Z"/>
+ <path class="st1" d="M49.8,83.9c-1.2-3.1,3.7-10.6,6.9-8.9,2.5,1.3,0,5.3-1.3,6.8-1.6,1.8-3.1,2.4-5.6,2.1h0Z"/>
+ <path class="st1" d="M308.3,327.1c3.4-1,1.8,4.8.9,6.5-2.1,4.5-7.2,6.9-5.6,0,.3-1.5,3.2-6,4.6-6.5h0Z"/>
+ <path class="st1" d="M352.5,309c.5.5-.9,4.4-1.3,5.3-.5,1.1-5.4,9.2-6.9,7.6-.2-2.9,1.2-5.8,2.7-8.2.6-.9,4.1-6.1,5.5-4.7h0,0Z"/>
+ <path class="st1" d="M292.4,330.7c.2.3,0,3.2,0,3.9-.4,2.8-2.2,4.6-4.7,5.8-3.5-2-.7-10,2.7-10.3.3,0,2,.5,2,.6h0Z"/>
+ <path class="st1" d="M40.6,108.5c4.8-1.4,2.4,10.8-3.2,9.1-2.9-.9.6-8.4,3.2-9.1Z"/>
+ <path class="st1" d="M279.8,332.4c5.1-1.5,3,9.7-1.4,9.2-4.1-.4-1.7-8.3,1.4-9.2Z"/>
+ <path class="st1" d="M119.9,272.9c4.4-1.2,7.2,6.8,3.4,7.9-4.3,1.2-8.2-6.6-3.4-7.9Z"/>
+ <path class="st1" d="M185.6,308.1c5.2-1.5,7.7,6.1,4.5,7.7-4.5,2.2-7.9-6.8-4.5-7.7Z"/>
+ <path class="st1" d="M318.3,337c-.6-3.4,1.9-8.5,4.4-10.8,1.6-1.4,3.4-1.1,3,1.2-.5,3-3.9,9.3-7.4,9.6Z"/>
+ <path class="st1" d="M60,213.1c3.7-.6,5.3,7.6,2.2,8.5-5,1.5-7-7.7-2.2-8.5Z"/>
+ <path class="st1" d="M359.3,309c.5.5-.5,1.5-1,1.9-2.7,2.4-3.2,6.1-5.7,9.1-.8,1-2,2.6-3.4,2.5-1.1-1.3,3.5-9.6,4.8-11,1-1.2,2-2.1,3.6-1.2.4,0,.5-2.5,1.6-1.2h0Z"/>
+ <path class="st1" d="M234.8,328.3c6.2-1.8,5.1,10.2.1,7.6-2.5-1.3-2.9-6.9-.1-7.6Z"/>
+ <path class="st1" d="M332,325.5c.3,2.9-1.7,6.3-3.5,8.6-1,1.2-2.2,2.8-4,2.5-1-1,2-6.8,2.9-8,.6-.8,3.7-4.1,4.6-3.1h0,0Z"/>
+ <path class="st1" d="M270,334.8c3.4-.6,3.3,6.2.5,8-5,3.2-5-7.2-.5-8h0Z"/>
+ <path class="st1" d="M41.4,95c5.8-1.7.7,9.6-3.2,8.5-2.8-1.7,1.2-7.9,3.2-8.5Z"/>
+ <path class="st1" d="M205.6,326.5c-2.3-2-2-7.4,1.9-6.5,2.6.6,3.5,4,2.8,6.3-.5,1.6-3.7,1.1-4.7.2h0Z"/>
+ <path class="st1" d="M70.9,48.4c4.9-1.1,1.3,4.3-.8,6.1-3.5,2.8-7,2.5-3.9-2.1.8-1.3,3.2-3.6,4.7-4h0Z"/>
+ <path class="st1" d="M364.2,312.8l-1.9,5.5,5.6-5.5-3.8,7c.3.8,1.3-.7,1.5-1,.5-.6.7-1.7,1.6-1.8l-1.3,4.3,1.9.3c-1.2,2.8-2.8,6.1-5,8.3l.6-2.5-1.2.3.6-2.1-1.9,1.2,1.3-3.7-3.1,1.8,2.5-5.5-4.7,4.9c-.5,0-.4-.6-.3-.9.3-1.6,3.6-7.5,4.8-8.9.7-.8,1.5-2,2.8-1.9h0s0,0,0,0Z"/>
+ <path class="st1" d="M330,336.5c-.6-.6,1.5-4.9,2-5.7.6-1.1,4-5.7,5.2-5.3s.6,1.1.4,1.7c-.2,1-.6,2.3-1.1,3.2-.6,1.1-5,7.7-6.5,6.2h0Z"/>
+ <path class="st1" d="M66.6,232.2c3.7-1.1,6.2,6.3,2.9,7.3-4.7,1.4-5.7-6.5-2.9-7.3Z"/>
+ <path class="st1" d="M101,268.9c-.3.2-2.6.1-3.2,0-2.2-.7-4.4-7.6,1.2-6.7,2.8.5,3.5,5.8,2,6.8h0Z"/>
+ <path class="st1" d="M59.2,64.2c1.2,2.8-4,8.6-6.5,8-2.2-.6.8-4.9,1.6-5.8,1.4-1.5,2.8-2.4,5-2.1h0Z"/>
+ <path class="st1" d="M77.9,42.2c0-3.6,3.8-6.1,7-6.9.6-.1,1.4-.7,1.7.5.7,2.9-5.9,7.3-8.7,6.4h0Z"/>
+ <path class="st1" d="M353.6,323.8c-.1-5,3.4-9.5,6.6-12.9,1.1.9,1,1.3.6,2.5-1,3.3-4.6,8-7.2,10.4h0Z"/>
+ <path class="st1" d="M258.8,337.8c4.6-1.3,4,7,.5,7.4s-3.1-6.6-.5-7.4Z"/>
+ <path class="st1" d="M31.8,148.5c1.7,2.2-.5,8.8-3.4,7.9-2.7-.8-.9-9.6,3.4-7.9Z"/>
+ <path class="st1" d="M34.1,165.9c.2.1.7,2.2.7,2.7.4,7.2-7.1,6.2-4.7-1,.5-1.6,2.8-2.6,4-1.7Z"/>
+ <path class="st1" d="M335.6,336.6c-1-2.3,5.4-11,6.6-11,.6,0,.9,1.1.6,1.9-.6,2.2-2.3,5-3.8,6.7-.4.5-2.9,3.1-3.4,2.4h0Z"/>
+ <path class="st1" d="M26.4,139.8c-1.6-2.2.7-8.5,3.4-8,2.2.4.9,9.8-3.4,8Z"/>
+ <path class="st1" d="M45.4,82.6c.3,3.5-2.3,7.9-6.2,7.3-.2-3.4,2.6-7.7,6.2-7.3Z"/>
+ <path class="st1" d="M223.7,331.9c2.9-.8,5,5.9,2.3,6.7-4.6,1.3-5.1-5.9-2.3-6.7Z"/>
+ <path class="st1" d="M173.2,313.5c3.4-1,5.9,3,3.9,5.9-3.6,2.1-6.9-5-3.9-5.9Z"/>
+ <path class="st1" d="M151.7,302.1c4.7-1.3,6.9,7.8,1.2,6-2.4-.7-3.2-5.5-1.2-6Z"/>
+ <path class="st1" d="M34.5,191.1c-1.1-2-1-7.9,2.1-7.3s2.4,8.8-2.1,7.3Z"/>
+ <path class="st1" d="M247.3,346.7c-1.6-1.6-.7-6.9,2.6-5.9,3.6,1.1.9,9.5-2.6,5.9Z"/>
+ <path class="st1" d="M129.6,290.9c3.3-.6,5.4,5.4,2.9,6.1-4.4,1.2-6-5.5-2.9-6.1Z"/>
+ <path class="st1" d="M347.4,326.8c.3.3-2.4,5.4-2.9,6.1-.4.6-4.2,4.9-4.6,4.3-.2-2.5,1.5-4.8,2.9-6.7,1.2-1.6,2.4-3.7,4.6-3.7Z"/>
+ <path class="st1" d="M303.4,343.7c.1,3.8-2,6.3-4.7,8.6-3.3-2,2.8-10.5,4.7-8.6Z"/>
+ <path class="st1" d="M193.5,324.8c3.8-1.1,6.4,5.1,2.9,6.1-3.2.9-5.4-5.4-2.9-6.1Z"/>
+ <path class="st1" d="M293.9,344.9c4.7-1.3-.4,8.6-2.6,7.9-2.5-.8,1.1-7.5,2.6-7.9Z"/>
+ <path class="st1" d="M42.9,209.7c-4.2,1.6-4.7-6.2-2.6-6.8,3.8-1.1,3.9,4.3,2.6,6.8Z"/>
+ <path class="st1" d="M68,47c-.6-.6,2.5-4,3.2-4.5,5.4-4.5,6.4-.7,1.7,3-1.5,1.2-2.8,1.9-4.9,1.5h0Z"/>
+ <path class="st1" d="M283,354c-.8-1.9,1.3-8,3.5-7.9,3.2.2,0,8.9-3.5,7.9Z"/>
+ <path class="st1" d="M28.8,117.1c4.2-1.2,1.2,8-2,7.3-2.1-.4.1-6.8,2-7.3Z"/>
+ <path class="st1" d="M317,342c.6.6-1.7,4.8-2.2,5.5s-3.6,4.1-4.6,3.1c-.3-.3,2.3-5.4,2.9-6.1s3.1-3.4,4-2.5h0Z"/>
+ <path class="st1" d="M310.2,342.5c1.2,1.3-2.8,9.2-5.6,8.6-.3-3,1.3-5.5,3.5-7.4.7-.6,1-1.5,2.2-1.2h0Z"/>
+ <path class="st1" d="M60.9,54.4c1.8-.3,1.2,1.9.5,3-.7,1-4.4,4.5-5.6,4.3-1.3-.3-.3-2.5,0-3.1.6-1,4-4.1,5-4.2h0Z"/>
+ <path class="st1" d="M75,251.4c4.8-1.3,5.1,9,.2,5.2-1.6-1.2-1.9-4.7-.2-5.2h0Z"/>
+ <path class="st1" d="M106.9,280.1c2.6-.7,5.2,4,3.3,5.2-3.4,2.2-7-4.2-3.3-5.2Z"/>
+ <path class="st1" d="M322.6,341.4c1.2,1.5-3.9,8.7-6,9.2-1.1-.9-.8-.6-.4-1.6,1.4-3,3.1-6.4,6.3-7.6h0,0Z"/>
+ <path class="st1" d="M48,70.9c.1,3.2-2.2,6.9-5.6,7.3-.5-3.5,2.3-6.8,5.6-7.3Z"/>
+ <path class="st1" d="M274.9,355.1c-1.4-1.6.7-7.5,3.5-6.8,3,.8-1.8,8.7-3.5,6.8Z"/>
+ <path class="st1" d="M31.7,102.8c1.1,2.7-1,7.5-4.4,6.8-.3-2.7,1.3-6.6,4.4-6.8Z"/>
+ <path class="st1" d="M350.5,328.1c-.2,2.9-2.6,6.1-4.7,8-.7.6-1,1.5-2.2,1.2-.6-.7,3.9-7.1,4.8-7.9.6-.7,1-1.5,2.1-1.2h0Z"/>
+ <path class="st1" d="M237.4,349.1c-1.4-1.4-.4-5.7,1.4-5.4,4.5.8,1.7,8.4-1.4,5.4Z"/>
+ <path class="st1" d="M321.3,350c-1.2-1.3,4.6-8,6.2-8.6.2,3.1-1.9,5.5-4.1,7.4-.7.6-1,1.5-2.2,1.2Z"/>
+ <path class="st1" d="M212.5,336.1c2.4-.7,4.6,4.6,1.6,5.5-2.4.7-4.8-4.6-1.6-5.5Z"/>
+ <path class="st1" d="M268.5,350.1c2.9-.8,1.5,7.6-1.3,6.8-2-.6-.6-6.2,1.3-6.8Z"/>
+ <path class="st1" d="M46.9,222.1c3.3-.9,4.4,4.7,1.7,5.5-2.9.8-3.7-4.9-1.7-5.5Z"/>
+ <path class="st1" d="M332.4,342.1c.9,1-5.4,8.1-6.9,8.6.1-2.8,2.6-5.6,4.7-7.4.7-.6,1-1.5,2.2-1.2h0Z"/>
+ <path class="st1" d="M353.5,329.4c.8.9-5.2,8.7-6.9,9.2-.3-1.2.4-1.7.9-2.5.8-1.4,2.2-3.6,3.2-4.8.7-.8,1.5-2,2.8-1.9h0Z"/>
+ <path class="st1" d="M87.4,274.3c-2.8.7-5.8-3.1-3-4.7,2.1-1.3,3.9,2.7,3,4.7Z"/>
+ <path class="st1" d="M336.1,342.8c.7.8-3.8,6-4.7,6.8-.7.6-1,1.5-2.2,1.2l3.1-5.2c.6-.5,3-3.5,3.7-2.7h0Z"/>
+ <path class="st1" d="M65.5,46.4c1.1,1-5.2,7.2-6.2,6.1-1-1,2.9-4.6,3.7-5.2.6-.4,1.8-1.5,2.5-.9Z"/>
+ <path class="st1" d="M260.7,353.2c0,0,.6,1.8.6,2.1,0,2-1.8,3.2-3.7,2.7-.3-.3.2-4.6.7-4.9.2-.2,2.1-.1,2.4,0h0,0Z"/>
+ <path class="st1" d="M29.9,96c-1.2-1.2,2.2-5.4,3.4-6.1,2.7,1.3-2,7.7-3.4,6.1Z"/>
+ <path class="st1" d="M164.7,323.2c-1.6.9-4.1-.4-4.3-2.2-.4-4.2,5.4-1.2,4.3,2.2Z"/>
+ <path class="st1" d="M51.2,61.1c.3,2.9-2.3,5.6-5,6.1-.4-2.3,1.3-3.6,2.8-4.9.7-.6,1-1.5,2.2-1.2Z"/>
+ <path class="st1" d="M141.9,308.9c.5.5,1,3.3.7,3.6-2.1.7-4.9-1.1-4.3-3.4.4-1.4,2.8-.9,3.6-.2h0Z"/>
+ <path class="st1" d="M56.8,245.6c-1.6,1.8-4.9-4.2-2.1-4.9,2.4-.6,3.3,3.6,2.1,4.9Z"/>
+ <path class="st1" d="M79.2,34.2c.2,1.2-.6,1.5-1.2,2.2-1.4,1.6-3.3,3-5.6,3.3-.2-1.2.6-1.5,1.2-2.2,1.4-1.6,3.3-3,5.6-3.3Z"/>
+ <path class="st1" d="M295.9,358.4c.7.8-2.3,6.6-4.4,6.1-.3-2.2.7-3.5,2.2-4.9.7-.6,1.1-1.5,2.2-1.2Z"/>
+ <path class="st1" d="M185,333.9c-2.8.5-5.1-2.1-2.7-4.4,2.6.5,3.1,1.8,2.7,4.4Z"/>
+ <path class="st1" d="M301.4,357.9c.7.8-2.3,6.6-4.4,6.1-.7-.8,2.3-6.6,4.4-6.1Z"/>
+ <path class="st1" d="M20,157.7c.1,1.5,0,2.7-.5,4.1-.4,1-.5,1.1-1.7.8-2-.6-.5-5.9,2.2-4.9h0Z"/>
+ <path class="st1" d="M230.5,351.6c0,0-1.6.5-1.8.4-1.6-1-2.5-4.2-.2-4.6,1.7-.3,2.7,3.6,2,4.3h0Z"/>
+ <path class="st1" d="M307,357.3c.2,2.1-1.4,3.7-2.8,4.9-.7.6-1,1.5-2.2,1.2-.6-.7,4-7.2,5-6.1h0Z"/>
+ <path class="st1" d="M353.5,335.5c-1.5,1.2-2.8,2.5-4.4,3.7.7-3,3.7-5.3,5.3-8,1.2-.2,1.1.3.6,1.3-.5,1-1.6,1.8-1.6,3,.4-.3,3-2.6,3.1-2.4l-1.9,5.2c-1.6.5-2.5,1.2-3.8,2.2l2.5-4.9h0Z"/>
+ <path class="st1" d="M289.1,359.6c.1,2.6-1.2,5.4-3.8,6.1-.7-.9,1.6-6.6,3.8-6.1Z"/>
+ <path class="st1" d="M119.9,301.8c-1.7.3-3.5-.4-3.7-2.2-.4-4.2,4.7-.9,3.7,2.2Z"/>
+ <path class="st1" d="M249.9,355.5c2.8-.7,2.8,3.9.6,4.9-1.7-.7-2.3-4.5-.6-4.9Z"/>
+ <path class="st1" d="M333,350.8c-.4-.4,1.5-2.9,1.9-3.4,1.1-1.4,2.9-2.9,4.4-4-.2,1.7-2,4-3.1,5.2-.5.5-2.5,2.8-3.1,2.1h0Z"/>
+ <path class="st1" d="M282.2,361.4c.2,2.2-1,5.3-3.8,4.9.5-2,1-5.4,3.8-4.9Z"/>
+ <path class="st1" d="M21.6,179.9c-.8.9-2.2-.4-2.3-1.7-.2-2.9,2.7-4.6,3-1.7,0,.6-.4,3-.7,3.4h0Z"/>
+ <path class="st1" d="M18.9,141c.1,2,.2,5.4-2.5,5.5-.9-2-.2-5.3,2.5-5.5Z"/>
+ <path class="st1" d="M37.4,78.8c.6.6-2.8,6.4-4.4,4.9-.6-.6,2.8-6.4,4.4-4.9Z"/>
+ <path class="st1" d="M306.9,363.5c0-3,2.9-5.1,5-6.7,0,3-2.9,5.1-5,6.7Z"/>
+ <path class="st1" d="M310.6,363.5c-.4-.4,1.4-2.9,1.9-3.4,1-1.2,2.5-2.5,3.7-3.4.9,2-5.1,7.3-5.6,6.7h0Z"/>
+ <path class="st1" d="M203.3,341c1.1,1.1,1.2,3.9-1.2,3.3-3.2-.8-1.5-6,1.2-3.3Z"/>
+ <path class="st1" d="M16.6,131.1c-.3-2.6.1-4,2.2-5.5,2.5,1.2-1.2,6.7-2.2,5.5Z"/>
+ <path class="st1" d="M24.3,192.9c1.9-.6,2.2,4.4.6,4.9-1.9.6-2.2-4.4-.6-4.9Z"/>
+ <path class="st1" d="M274.8,363.2c.5,5.5-5.6,5.9-2.2.6.6-.9,1.3-.6,2.2-.6Z"/>
+ <path class="st1" d="M55.6,52.5c.7.8-3.1,5.8-5,4.9-.4-.4,4.2-5.8,5-4.9Z"/>
+ <path class="st1" d="M320.6,357.4c.1.1-1.8,2.7-2.2,3.1-.5.5-2.8,3-3.4,2.4l3.1-4.6,2.5-.9h0Z"/>
+ <path class="st1" d="M335.4,351.4c-.3-.3,5.1-6.5,6.2-6.7-.5,2.1-2.5,4.1-4.1,5.5-.7.6-1,1.5-2.2,1.2h0Z"/>
+ <path class="st1" d="M21.1,111.4c.2,2.1-.7,3.7-2.2,4.9-2.3-1.2,1.3-6,2.2-4.9Z"/>
+ <path class="st1" d="M69.9,39.6c-1.5,2-3.3,3.9-5.6,4.9-.9-1.1,3.9-5.5,5.6-4.9Z"/>
+ <path class="st1" d="M83,29.3c-.1,1.1-5.4,4.5-5.6,4.3,0-3,3.2-3.6,5.6-4.3Z"/>
+ <path class="st1" d="M37.5,72.7c-.7-.8,2.6-4.6,3.8-4.9,1.1,1.6-3,5.7-3.8,4.9Z"/>
+ <path class="st1" d="M318,363.6c-.2-1.1.6-1.5,1.2-2.1,1.2-1.4,2.8-2.9,4.4-4l-2.5,4-3.1,2.1Z"/>
+ <path class="st1" d="M28.8,212.1c2.6-.8,3.4,3,1.5,3.7-1.5.6-1.8-2.8-1.5-3.7Z"/>
+ <path class="st1" d="M267.4,365c.3,1.8-.5,3.7-2.5,3.7-.1-2.1-.2-4.1,2.5-3.7Z"/>
+ <path class="st1" d="M220,351.5c.1.1,0,2.2,0,2.8-.1,1-3.2.3-2.4-2.5.3-1.1,2.2-.5,2.4-.3h0Z"/>
+ <path class="st1" d="M94.1,287.4c2.8-.2,3.8,2.5,1.5,3.7l-1.5-3.7Z"/>
+ <path class="st1" d="M343.5,346.5c-.6.8-4.6,6.5-5.6,5.5.6-.8,4.6-6.5,5.6-5.5Z"/>
+ <path class="st1" d="M62.9,259.3c1.9-.3,3.5,2.9,1.5,3.7-1.5.6-1.8-2.8-1.5-3.7Z"/>
+ <path class="st1" d="M241.2,358.5c2.1-.2,1.8,3.7.6,3.7-.9,0-2.5-3-.6-3.7Z"/>
+ <path class="st1" d="M21.2,102.1c-.1-1.8.9-3.6,2.5-4.3.1,1.7-.3,4.3-2.5,4.3Z"/>
+ <path class="st1" d="M173.2,337.5c-1.6.2-3.1-.9-3.1-2.5,2.1-.2,3.4.2,3.1,2.5Z"/>
+ <path class="st1" d="M326.1,358.7c-1.1,1.9-2.2,3.6-4.4,4.3-.7-.7,3.7-5,4.4-4.3Z"/>
+ </g>
+ </g>
+ <g id="Layer_11" data-name="Layer_1">
+ <g id="Spasm">
+ <g id="Layer_1-2">
+ <path class="st0" d="M2.1,232.4c4.9,3.7,7.3,2,9.2-3.1.7-1.7,3.6-9.1,8.9-15.8,23.8-30.4,86.6-61.9,117.4-73.7,69.4-26.4,237.5-48.2,266.7,21.6,5.4,13.9.9,27.2-5.2,41.2,0,.1,0-.1,0,0,0,6.4,0,10.1,0,12,0,2.9,7.1-2.7,16-10.6,11-9.9,15.6-24.6,17.7-36.9,3.5-19-4.6-38.7-21.5-52.9-16.8-14.3-38.6-21.8-63.5-26.4-108.7-17.3-238.9,21.1-311,85.6-12.3,11.8-45.2,45.5-34.7,58.9h0c0,0,0,0,0,0Z"/>
+ <path class="st0" d="M57.2,137.7c-1.8,2.1-5.1,8.1-1,7.8,4-.7,6.5-2.6,10.5-5.1,14.7-9.9,30-19.3,46.7-27.2,70.8-34.1,153.1-47.7,229.5-37.3,31.5,4.3,65,13.4,82.5,34.5,2.2,2.2,10.9,15.6,12.4,8.9.7-5.2-3.3-13.1-7.6-18.2-10.3-12.8-27.6-21.8-46.5-26.3-21.7-5.2-43.5-9.2-66.3-11.2-87.7-6.4-179.9,17.3-248.1,63-4.6,3.3-8.8,6.9-11.9,11h0c0,.1,0,.1,0,.1Z"/>
+ <path class="st0" d="M359.5,59.3c-36.6-7.8-77.2-8.4-118.1-4.9-7.2.6-16.8,2.4-23.7,2.5-.8,0-2,.2-2.1-.5-.2-1.5,8.2-3.7,10.1-4.2,28.9-8,78.3-8.3,106.6-5.2,11.9,1.3,23,4.2,33.9,7.1,1.9.5,3.9,1,5.9,1.6,4,1.2,2.4,7.3-1.7,6.3-3.6-.9-7.2-1.8-10.9-2.6h0Z"/>
+ </g>
+ </g>
+ </g>
+</svg> \ No newline at end of file
diff --git a/website4/public/index.php b/website4/public/index.php
new file mode 100644
index 0000000..c16197a
--- /dev/null
+++ b/website4/public/index.php
@@ -0,0 +1,190 @@
+<?php
+// loads the config
+$config = include(__DIR__ . '/../../config.php');
+
+// go set your id here otehrwise ur site wont load the stuff it needs
+$siteId = 4;
+
+// website go search what stuffs it need to load
+$websiteConfig = array_filter($config, function($site) use ($siteId) {
+ return isset($site['id']) && $site['id'] === $siteId;
+});
+$websiteConfig = reset($websiteConfig);
+
+// include the components so the site actually gets rendered
+foreach ($websiteConfig['components'] as $component) {
+ include($component);
+}
+
+?>
+
+<!DOCTYPE html>
+<html lang="en">
+<head>
+ <meta charset="UTF-8">
+ <meta name="viewport" content="width=device-width, initial-scale=1.0">
+ <title>Dialon - <?php echo ucfirst($page); ?></title>
+ <meta name="description" content="<?php echo $metaDescription; ?>">
+ <link rel="stylesheet" href="assets/css/dialon.css">
+ <?php if (!$navbarTableExists || $navbarHasEntries): ?>
+ <link rel="stylesheet" href="assets/css/navbar.css">
+ <?php endif; ?>
+ <?php if (!$navbarTableExists || !$navbarHasEntries): ?>
+ <link rel="stylesheet" href="assets/css/hamburger.css">
+ <?php endif; ?>
+ <link rel="stylesheet" href="assets/css/extras.css">
+
+ <style>
+ <?php if ($navbarTableExists && $navbarHasEntries): ?>
+ .chat-toggle-btn {
+ bottom: 20px;
+ }
+ <?php endif; ?>
+ </style>
+</head>
+
+<body>
+ <header>
+ <div class="header-content" <?php if ($navbarTableExists && $navbarHasEntries) echo 'style="display:none;"'; ?>>
+ <img src="assets/img/dialon.png" alt="Teleco Logo" class="logo">
+ <h1>dialon.ch</h1>
+ </div>
+ </header>
+
+ <?php if ($navbarTableExists && $navbarHasEntries): ?>
+ <?php render_navbar_js($db); ?>
+ <?php endif; ?>
+
+ <?php if (!$navbarTableExists || !$navbarHasEntries): ?>
+ <!-- burger king chnopf -->
+ <button class="hamburger-menu" onclick="toggleMenu()">
+ <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512" width="24" height="24" aria-hidden="true">
+ <path d="M0 88C0 74.7 10.7 64 24 64H424c13.3 0 24 10.7 24 24s-10.7 24-24 24H24C10.7 112 0 101.3 0 88zM0 248C0 234.7 10.7 224 24 224H424c13.3 0 24 10.7 24 24s-10.7 24-24 24H24C10.7 272 0 261.3 0 248zM424 448H24c-13.3 0-24-10.7-24-24s10.7-24 24-24H424c13.3 0 24 10.7 24 24s-10.7 24-24 24z"/>
+ </svg>
+ </button>
+ <!-- burger king -->
+ <div class="menu-overlay">
+ <div class="menu-content">
+ <h2>Navigation</h2>
+ <?php get_sidebar($db, 'left', $page, $sub); ?>
+ <?php get_sidebar($db, 'right', $page, $sub); ?>
+ </div>
+ </div>
+<?php endif; ?>
+
+ <div class="container" style="<?php echo $leftSidebarHasItems || $rightSidebarHasItems ? '' : 'margin-left: 0px; margin-right: 0px; flex-wrap: nowrap; margin-top: 0px; margin-bottom: 0px; max-width: 100%; box-sizing: border-box; padding: 10px;'; ?>">
+ <!-- dis da left sidebar -->
+ <?php if ($leftSidebarHasItems): ?>
+ <div class="sidebar">
+ <?php get_sidebar($db, 'left', $page, $sub); ?>
+ </div>
+ <?php endif; ?>
+
+ <!-- dis da main content row down the middle -->
+ <div class="content" id="content" style="<?php echo $leftSidebarHasItems || $rightSidebarHasItems ? '' : 'width: calc(100%);'; ?>">
+ <!-- my terrible way of doing breadcrumbs -->
+ <div class="breadcrumbs">
+ <?php
+ foreach ($breadcrumbs as $index => $crumb) {
+ if ($index > 0) echo ' > ';
+ echo '<a href="?page=' . htmlspecialchars($crumb['page']) . '">';
+ echo htmlspecialchars($crumb['title']);
+ echo '</a>';
+ }
+ ?>
+ </div>
+ <?php if ($hasContent): ?>
+ <?php
+ $result = $query->execute();
+ $lastPostId = 0;
+ while ($row = $result->fetchArray()):
+ $lastPostId++;
+ ?>
+ <div class="box" id="post-<?php echo $lastPostId; ?>">
+ <h3><?php echo htmlspecialchars($row['title']); ?></h3>
+ <p><?php echo $row['content']; ?></p> <!-- used to have a function to disable and enable rendering html in post, got very annoyed with its db not doing what its supposed to do so now it loads html eitherway and html_custom is nolonger a thing im das datenbank -->
+ <hr>
+ <p>Date: <?php echo $row['date']; ?></p>
+ </div>
+ <?php endwhile; ?>
+ <?php else: ?>
+ <div class="box">
+ <h3>404 - Page Not Found</h3>
+ <p>Sorry, the page you are looking for does not exist.</p>
+ </div>
+ <?php endif; ?>
+
+ <div id="load-container">
+ <?php if ($hasContent && $offset + $limit < $totalPosts): ?>
+ <form method="get" action="index.php#post-<?php echo $lastPostId; ?>">
+ <input type="hidden" name="page" value="<?php echo htmlspecialchars($page); ?>">
+ <?php if ($sub): ?>
+ <input type="hidden" name="sub" value="<?php echo htmlspecialchars($sub); ?>">
+ <?php endif; ?>
+ <input type="hidden" name="offset" value="<?php echo $offset + $limit; ?>">
+ <button class="load-more-button" type="submit">Load More (<?php echo min($offset + $limit, $totalPosts) . " out of " . $totalPosts; ?>)</button>
+ </form>
+ <?php endif; ?>
+ </div>
+ </div>
+
+ <!-- dis da right seitenleisteh! -->
+ <?php if ($rightSidebarHasItems): ?>
+ <div class="sidebar-right">
+ <?php get_sidebar($db, 'right', $page, $sub); ?>
+ </div>
+ <?php endif; ?>
+ </div>
+
+ <!-- cat support meow meow meow meow -->
+ <button class="chat-toggle-btn" onclick="toggleChat()">
+ <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512" width="24" height="24" aria-hidden="true">
+ <path d="M192 208c0-17.7-14.3-32-32-32h-16c-35.4 0-64 28.7-64 64v48c0 35.4 28.7 64 64 64h16c17.7 0 32-14.3 32-32V208zm176 144c35.4 0 64-28.7 64-64v-48c0-35.4-28.7-64-64-64h-16c-17.7 0-32 14.3-32 32v112c0 17.7 14.3 32 32 32h16zM256 0C113.2 0 4.6 118.8 0 256v16c0 8.8 7.2 16 16 16h16c8.8 0 16-7.2 16-16v-16c0-114.7 93.3-208 208-208s208 93.3 208 208h-.1c.1 2.4 .1 165.7 .1 165.7 0 23.4-18.9 42.3-42.3 42.3H320c0-26.5-21.5-48-48-48h-32c-26.5 0-48 21.5-48 48s21.5 48 48 48h181.7c49.9 0 90.3-40.4 90.3-90.3V256C507.4 118.8 398.8 0 256 0z"/>
+ </svg>
+ </button>
+
+ <!-- mau mau support dumpster -->
+ <div class="chat-container" id="chat-container">
+ <div class="chat-header">
+ Virtual Assistant Chat
+ <button class="chat-close-btn" onclick="toggleChat()">✖</button> <!-- mau mau tschau -->
+ </div>
+ <div class="chat-log" id="chat-log"></div>
+ <div class="chat-input-container">
+ <input type="text" id="user-input" class="chat-input" style="background-color: var(--secondary-color);" placeholder="Type your message here...">
+ <button class="send-btn" onclick="sendMessage()">Send</button>
+ </div>
+ </div>
+
+ <!-- js sache sind hier und so -->
+ <script src="assets/js/chat.js"></script>
+ <script src="assets/js/menu.js"></script>
+
+ <script>
+document.addEventListener('DOMContentLoaded', function() {
+ const mobileMenu = document.querySelector('.mobile-navbar-menu');
+ const toggleButton = document.querySelector('.navbar-toggle');
+
+ window.toggleNavbar = function() {
+ if (!mobileMenu) return;
+
+ if (mobileMenu.classList.contains('open')) {
+ mobileMenu.style.maxHeight = "0px";
+ mobileMenu.classList.remove('open');
+ } else {
+ mobileMenu.style.maxHeight = mobileMenu.scrollHeight + "px";
+ mobileMenu.classList.add('open');
+ }
+ };
+
+ window.addEventListener('resize', function() {
+ if (window.innerWidth > 768 && mobileMenu.classList.contains('open')) {
+ mobileMenu.classList.remove('open');
+ mobileMenu.style.maxHeight = "0px";
+ }
+ });
+});
+</script>
+
+</body>
+</html>