Initial commit

This commit is contained in:
vitalijmulika
2025-12-29 14:28:58 +02:00
commit 1889a34abf
89 changed files with 2579 additions and 0 deletions

1
.env.production Normal file
View File

@@ -0,0 +1 @@
DISABLE_ESLINT_PLUGIN=true

View File

@@ -0,0 +1,62 @@
name: Build
on:
workflow_dispatch:
inputs:
branch:
description: 'Branch to build'
required: true
default: 'main'
permissions:
contents: read
jobs:
build:
runs-on: ubuntu-latest
timeout-minutes: 10
steps:
- name: Checkout branch
uses: actions/checkout@v3
with:
ref: ${{ gitea.event.inputs.branch }}
- name: Setup Node.js
uses: actions/setup-node@v3
with:
node-version: 24
- name: Install dependencies
run: |
set -euo pipefail
npm install --no-audit --silent 2>&1 | tee install.log
env:
NODE_OPTIONS: '--max-old-space-size=4096'
- name: Build (react-scripts build)
env:
CI: 'false'
NODE_OPTIONS: '--max-old-space-size=4096'
run: |
set -euo pipefail
npm run build 2>&1 | tee build.log
timeout-minutes: 5
- name: Verify build folder exists
run: test -d build || (echo "No build folder. Check build logs above."; exit 1)
- name: Upload logs on failure
if: failure()
uses: actions/upload-artifact@v3
with:
name: build-logs
path: |
install.log
build.log
npm-debug.log*
if-no-files-found: ignore
- name: Build completed
if: success()
run: echo "Build completed successfully"

41
package.json Normal file
View File

@@ -0,0 +1,41 @@
{
"name": "sargas-website",
"version": "0.1.0",
"private": true,
"dependencies": {
"react": "^18.3.1",
"react-dom": "^18.3.1",
"react-scripts": "^5.0.1",
"framer-motion": "^11.0.0",
"lucide-react": "^0.400.0"
},
"devDependencies": {
"tailwindcss": "^3.4.0",
"postcss": "^8.4.0",
"autoprefixer": "^10.4.0"
},
"scripts": {
"start": "react-scripts start",
"build": "react-scripts build",
"test": "react-scripts test",
"eject": "react-scripts eject"
},
"eslintConfig": {
"extends": [
"react-app",
"react-app/jest"
]
},
"browserslist": {
"production": [
">0.2%",
"not dead",
"not op_mini all"
],
"development": [
"last 1 chrome version",
"last 1 firefox version",
"last 1 safari version"
]
}
}

6
postcss.config.js Normal file
View File

@@ -0,0 +1,6 @@
module.exports = {
plugins: {
tailwindcss: {},
autoprefixer: {},
},
}

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@@ -0,0 +1 @@
PHN2ZyB3aWR0aD0iMjUiIGhlaWdodD0iMjYiIHZpZXdCb3g9IjAgMCAyNSAyNiIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPGcgY2xpcC1wYXRoPSJ1cmwoI2NsaXAwKSI+CjxwYXRoIGQ9Ik0wLjQyODcxMSA0LjM1MTE1TDEyLjQ1NDUgMC4wNjY0MDYyTDI0LjgwNDEgNC4yNzQ5NkwyMi44MDQ1IDIwLjE4NTZMMTIuNDU0NSAyNS45MTc3TDIuMjY2MzkgMjAuMjYxOEwwLjQyODcxMSA0LjM1MTE1WiIgZmlsbD0icmVkIi8+CjxwYXRoIGQ9Ik0yNC44MDQyIDQuMjc0OTZMMTIuNDU0NiAwLjA2NjQwNjJWMjUuOTE3N0wyMi44MDQ2IDIwLjE5NTJMMjQuODA0MiA0LjI3NDk2WiIgZmlsbD0icmVkIi8+CjxwYXRoIGQ9Ik0xMi40NzM0IDMuMDg0OTZMNC45Nzk5OCAxOS43NTc0TDcuNzc5MjggMTkuNzA5OEw5LjI4Mzc1IDE1Ljk0ODdIMTYuMDA2TDE3LjY1MzMgMTkuNzU3NEwyMC4zMjg4IDE5LjgwNUwxMi40NzM0IDMuMDg0OTZaTTEyLjQ5MjUgOC40MjY2MkwxNS4wMjUzIDEzLjcyMDZIMTAuMjY0NEwxMi40OTI1IDguNDI2NjJaIiBmaWxsPSJ3aGl0ZSIvPgo8L2c+CjxkZWZzPgo8Y2xpcFBhdGggaWQ9ImNsaXAwIj4KPHJlY3Qgd2lkdGg9IjI0LjQ3MTIiIGhlaWdodD0iMjYiIGZpbGw9IndoaXRlIiB0cmFuc2Zvcm09InRyYW5zbGF0ZSgwLjQxODk0NSkiLz4KPC9jbGlwUGF0aD4KPC9kZWZzPgo8L3N2Zz4K

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@@ -0,0 +1 @@
PHN2ZyB3aWR0aD0iOTMzIiBoZWlnaHQ9IjExNzkiIHZpZXdCb3g9IjAgMCA5MzMgMTE3OSIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPHBhdGggZD0iTTUzMS40MzYgMzAyLjA5NlYxMDgzLjRDNTMxLjQzNiAxMTA0LjU3IDUxNi4wNzcgMTEyMi42MiA0OTUuMTc4IDExMjZMMTgxLjQ3NyAxMTc2Ljc2QzE1NS4yMzYgMTE4MS4wMSAxMzEuNDM0IDExNjAuNzUgMTMxLjQzNCAxMTM0LjE2VjcxNi4xNTVMLTIxOC41MjMgNzcyLjc2MUMtMjQ0Ljc2MyA3NzcuMDA1IC0yNjguNTYzIDc1Ni43NDUgLTI2OC41NjQgNzMwLjE2NEwtMjY4LjU2NiA0MTcuNTgyQy0yNjguNTY3IDM5Ni40MTEgLTI1My4yMDggMzc4LjM2NyAtMjMyLjMwOCAzNzQuOTg1TDQ4MS4zOTMgMjU5LjVNNTMxLjQzNiAzMDIuMDk2QzUzMS40MzYgMjc1LjUxNCA1MDcuNjMzIDI1NS4yNTQgNDgxLjM5MyAyNTkuNU01MzEuNDM2IDMwMi4wOTZMNTMxLjQzOCA0NTguOTM4TDE4MS40NzkgNTE1LjU1OE00ODEuMzkzIDI1OS41TDEzMS40MzYgMzE2LjY1NkwxMzEuNDM2IDQ3Mi45NjFNMTMxLjQzNiA0NzIuOTYxTDEzMS40MzYgMTYwLjMzNEMxMzEuNDM2IDEzOS4xNjIgMTQ2Ljc5NiAxMjEuMTE4IDE2Ny42OTYgMTE3LjczN0w4ODEuMzkgMi4yOTc2NUM5MDcuNjMgLTEuOTQ2NjEgOTMxLjQzMSAxOC4zMTM1IDkzMS40MzEgNDQuODk0Mkw5MzEuNDM0IDM1Ny40NzZDOTMxLjQzNCAzNzguNjQ3IDkxNi4wNzUgMzk2LjY5MSA4OTUuMTc2IDQwMC4wNzNMMTgxLjQ3OSA1MTUuNTU4TTEzMS40MzYgNDcyLjk2MUMxMzEuNDM2IDQ5OS41NDMgMTU1LjIzOSA1MTkuODA0IDE4MS40NzkgNTE1LjU1OCIgc3Ryb2tlPSIjMUUyNTMyIiBzdHJva2Utb3BhY2l0eT0iMC4wNSIgc3Ryb2tlLXdpZHRoPSIyIi8+Cjwvc3ZnPgo=

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@@ -0,0 +1 @@
PHN2ZyB3aWR0aD0iMTQiIGhlaWdodD0iMTkiIHZpZXdCb3g9IjAgMCAxNCAxOSIgZmlsbD0id2hpdGUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+Cgk8cGF0aCBkPSJNNi45OTk4OCAwLjcxMDkzOEMzLjQwNTMyIDAuNzEwOTM4IDAuNDgwOTU3IDMuNjM1MyAwLjQ4MDk1NyA3LjIyOTgyQzAuNDgwOTU3IDExLjY5MDcgNi4zMTQ3NSAxOC4yMzk2IDYuNTYzMTMgMTguNTE2MkM2Ljc5NjQzIDE4Ljc3NiA3LjIwMzc1IDE4Ljc3NTYgNy40MzY2MiAxOC41MTYyQzcuNjg1IDE4LjIzOTYgMTMuNTE4OCAxMS42OTA3IDEzLjUxODggNy4yMjk4MkMxMy41MTg3IDMuNjM1MyAxMC41OTQ0IDAuNzEwOTM4IDYuOTk5ODggMC43MTA5MzhaTTYuOTk5ODggMTAuNTA5N0M1LjE5MTM3IDEwLjUwOTcgMy43MjAwOCA5LjAzODMzIDMuNzIwMDggNy4yMjk4MkMzLjcyMDA4IDUuNDIxMzEgNS4xOTE0IDMuOTUwMDIgNi45OTk4OCAzLjk1MDAyQzguODA4MzUgMy45NTAwMiAxMC4yNzk2IDUuNDIxMzUgMTAuMjc5NiA3LjIyOTg2QzEwLjI3OTYgOS4wMzgzNiA4LjgwODM1IDEwLjUwOTcgNi45OTk4OCAxMC41MDk3WiIvPgo8L3N2Zz4=

View File

@@ -0,0 +1 @@
PHN2ZyB3aWR0aD0iMTgiIGhlaWdodD0iMTkiIHZpZXdCb3g9IjAgMCAxOCAxOSIgZmlsbD0id2hpdGUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+Cgk8cGF0aCBkPSJNMTEuMjUgNS41ODU5NEMxMC44MzYgNS41ODU5NCAxMC41IDUuMjQ5OTQgMTAuNSA0LjgzNTk0VjMuNzEwOTRINy41VjQuODM1OTRDNy41IDUuMjQ5OTQgNy4xNjQgNS41ODU5NCA2Ljc1IDUuNTg1OTRDNi4zMzYgNS41ODU5NCA2IDUuMjQ5OTQgNiA0LjgzNTk0VjMuNzEwOTRDNiAyLjg4MzY5IDYuNjcyNzUgMi4yMTA5NCA3LjUgMi4yMTA5NEgxMC41QzExLjMyNzIgMi4yMTA5NCAxMiAyLjg4MzY5IDEyIDMuNzEwOTRWNC44MzU5NEMxMiA1LjI0OTk0IDExLjY2NCA1LjU4NTk0IDExLjI1IDUuNTg1OTRaIi8+Cgk8cGF0aCBkPSJNOS41MzI1IDEyLjI0NThDOS4zOTc1IDEyLjI5ODMgOS4yMDI1IDEyLjMzNTggOSAxMi4zMzU4QzguNzk3NSAxMi4zMzU4IDguNjAyNSAxMi4yOTgzIDguNDIyNSAxMi4yMzA4TDAgOS40MjU3OFYxNS4xNDgzQzAgMTYuMjg4MyAwLjkyMjUgMTcuMjEwOCAyLjA2MjUgMTcuMjEwOEgxNS45Mzc1QzE3LjA3NzUgMTcuMjEwOCAxOCAxNi4yODgzIDE4IDE1LjE0ODNWOS40MjU3OEw5LjUzMjUgMTIuMjQ1OFoiLz4KCTxwYXRoIGQ9Ik0xOCA2LjUyMzQ0VjguMjQwOTRMOS4xOCAxMS4xODA5QzkuMTIgMTEuMjAzNCA5LjA2IDExLjIxMDkgOSAxMS4yMTA5QzguOTQgMTEuMjEwOSA4Ljg4IDExLjIwMzQgOC44MiAxMS4xODA5TDAgOC4yNDA5NFY2LjUyMzQ0QzAgNS4zODM0NCAwLjkyMjUgNC40NjA5NCAyLjA2MjUgNC40NjA5NEgxNS45Mzc1QzE3LjA3NzUgNC40NjA5NCAxOCA1LjM4MzQ0IDE4IDYuNTIzNDRaIi8+Cjwvc3ZnPg==

File diff suppressed because one or more lines are too long

View File

@@ -0,0 +1 @@
PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjciIHZpZXdCb3g9IjAgMCAyNCAyNyIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPHBhdGggZD0iTTAuNjgzNTk0IDAuNjY4OTQ1TDIuNzU1NDcgMjQuMDY4OUwxMi4wNTg2IDI2LjY2ODlMMjEuMzU4NSAyNC4wNzA2TDIzLjQzMzYgMC42Njg5NDVIMC42ODM1OTRaIiBmaWxsPSIjMDA3MGI3Ii8+CjxwYXRoIGQ9Ik0xOS4wMDQyIDguMzIwMjdMMTguNzQyNiAxMS4yNTk5TDE3Ljk1MjggMjAuMDcyM0wxMi4wNTg5IDIxLjcwMjJMMTIuMDU0MSAyMS43MDM4TDYuMTYzNDMgMjAuMDcyM0w1Ljc1MjMxIDE1LjQ2MzhIOC42MzgzMUw4Ljg1MjgxIDE3Ljg1NDFMMTIuMDU1NyAxOC43MTg2TDEyLjA1NzMgMTguNzE3TDE1LjI2NTEgMTcuODUyNUwxNS43MDIyIDEzLjg2OTZMNS42MTQxOCAxMy44OTczTDUuMzI4MTggMTEuMTczOEwxNS45NDQzIDExLjA0ODZMMTYuMTU4OCA4LjEzMzRMNS4wNDM4MSA4LjE2NDI3TDQuODU2OTMgNS40NTIxNUgxMi4wNTg5SDE5LjI2MDlMMTkuMDA0MiA4LjMyMDI3WiIgZmlsbD0id2hpdGUiLz4KPC9zdmc+Cg==

View File

@@ -0,0 +1 @@
PHN2ZyB3aWR0aD0iMjciIGhlaWdodD0iMjYiIHZpZXdCb3g9IjAgMCAyNyAyNiIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPGcgY2xpcC1wYXRoPSJ1cmwoI2NsaXAwKSI+CjxnIG9wYWNpdHk9IjAuMiI+CjxwYXRoIGQ9Ik0yMC42NjQ4IDE5LjMxOThDMTkuMDAwOSAxOS4zMTk4IDE3LjYyODkgMjAuNjYyNiAxNy42Mjg5IDIyLjM1NTdDMTcuNjI4OSAyNC4wMTk2IDE4Ljk3MTcgMjUuMzkxNiAyMC42NjQ4IDI1LjM5MTZDMjIuMzI4NyAyNS4zOTE2IDIzLjcwMDcgMjQuMDQ4OCAyMy43MDA3IDIyLjM1NTdDMjMuNjcxNSAyMC42OTE4IDIyLjMyODcgMTkuMzE5OCAyMC42NjQ4IDE5LjMxOThaIiBmaWxsPSIjZjg3YjAwIi8+CjwvZz4KPGcgb3BhY2l0eT0iMC40Ij4KPHBhdGggZD0iTTI2LjAwNjkgNC44NDExMUMyNS45NDg1IDQuODQxMTEgMjUuODYxIDQuODExOTIgMjUuNzczNCA0LjgxMTkySDcuMzgyOTlMNy4wOTEwNyAyLjg1NjEyQzYuOTE1OTMgMS41NzE3MSA1LjgwNjY2IDAuNjA4Mzk4IDQuNDkzMDYgMC42MDgzOThIMi4xMjg1OEMxLjQ4NjM4IDAuNjA4Mzk4IDAuOTYwOTM4IDEuMTMzODQgMC45NjA5MzggMS43NzYwNEMwLjk2MDkzOCAyLjQxODI1IDEuNDg2MzggMi45NDM2OSAyLjEyODU4IDIuOTQzNjlINC40OTMwNkM0LjYzOTAyIDIuOTQzNjkgNC43NTU3OCAzLjA2MDQ1IDQuNzg0OTcgMy4yMDY0MUw2LjU5NDgyIDE1LjUyNTFDNi44MjgzNSAxNy4wNzIyIDguMTcxMTUgMTguMjM5OCA5Ljc0NzQ3IDE4LjIzOThIMjEuODkxQzIzLjQwODkgMTguMjM5OCAyNC43MjI1IDE3LjE1OTggMjUuMDQzNiAxNS42NzFMMjYuOTQxIDYuMTgzOUMyNy4wNTc4IDUuNTcwODkgMjYuNjQ5MSA0Ljk1Nzg4IDI2LjAwNjkgNC44NDExMVoiIGZpbGw9IiNmODdiMDAiLz4KPC9nPgo8ZyBvcGFjaXR5PSIwLjIiPgo8cGF0aCBkPSJNMTMuMjIxNyAyMi4yMDk3QzEzLjE2MzMgMjAuNjA0MiAxMS44MjA1IDE5LjMxOTggMTAuMjE1IDE5LjMxOThDOC41MjE4OSAxOS40MDc0IDcuMjM3NDggMjAuODA4NiA3LjI5NTg2IDIyLjQ3MjVDNy4zNTQyNCAyNC4wNzggOC42Njc4NCAyNS4zNjI0IDEwLjI3MzQgMjUuMzYyNEgxMC4zMzE3QzExLjk5NTYgMjUuMjc0OCAxMy4zMDkyIDIzLjg3MzYgMTMuMjIxNyAyMi4yMDk3WiIgZmlsbD0iI2Y4N2IwMCIvPgo8L2c+CjwvZz4KPGRlZnM+CjxjbGlwUGF0aCBpZD0iY2xpcDAiPgo8cmVjdCB3aWR0aD0iMjYiIGhlaWdodD0iMjYiIGZpbGw9IndoaXRlIiB0cmFuc2Zvcm09InRyYW5zbGF0ZSgwLjk2MDkzOCkiLz4KPC9jbGlwUGF0aD4KPC9kZWZzPgo8L3N2Zz4K

View File

@@ -0,0 +1 @@
PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KPCEtLSBVcGxvYWRlZCB0bzogU1ZHIFJlcG8sIHd3dy5zdmdyZXBvLmNvbSwgR2VuZXJhdG9yOiBTVkcgUmVwbyBNaXhlciBUb29scyAtLT4KPHN2ZyB3aWR0aD0iODAwcHgiIGhlaWdodD0iODAwcHgiIHZpZXdCb3g9Ii0zMC41IDAgMzE3IDMxNyIgdmVyc2lvbj0iMS4xIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiBwcmVzZXJ2ZUFzcGVjdFJhdGlvPSJ4TWlkWU1pZCI+CiAgICA8ZGVmcz4KICAgICAgICA8bGluZWFyR3JhZGllbnQgeDE9IjMuOTUxNzA4OCUiIHkxPSIyNi45OTMwMjg3JSIgeDI9Ijc1Ljg5NzA3MzQlIiB5Mj0iNTIuOTE5MjY1NyUiIGlkPSJsaW5lYXJHcmFkaWVudC0xIj4KICAgICAgICAgICAgPHN0b3Agc3RvcC1jb2xvcj0iIzAwMDAwMCIgb2Zmc2V0PSIwJSI+Cg08L3N0b3A+CiAgICAgICAgICAgIDxzdG9wIHN0b3AtY29sb3I9IiMwMDAwMDAiIHN0b3Atb3BhY2l0eT0iMCIgb2Zmc2V0PSIxMDAlIj4KDTwvc3RvcD4KICAgICAgICA8L2xpbmVhckdyYWRpZW50PgogICAgPC9kZWZzPgoJCTxnPgoJCQkJPHBvbHlnb24gZmlsbD0iIzQ3QzVGQiIgcG9pbnRzPSIxNTcuNjY1Nzg1IDAuMDAwNTQ5MzU2MjIzIDAuMDAwNTQ5MzU2MjIzIDE1Ny42NjU3ODUgNDguODAwOTYxNCAyMDYuNDY2MTk3IDI1NS4yNjc3MDggMC4wMDA1NDkzNTYyMjMiPgoNPC9wb2x5Z29uPgoJCQkJPHBvbHlnb24gZmlsbD0iIzQ3QzVGQiIgcG9pbnRzPSIxNTYuNTY3MTgzIDE0NS4zOTY3OTMgNzIuMTQ4NzEwNyAyMjkuODE1MjY1IDEyMS4xMzI2MDggMjc5LjUzMDkwNSAxNjkuODQyOTI1IDIzMC44MjA1ODcgMjU1LjI2NzgxOCAxNDUuMzk2NzkzIj4KDTwvcG9seWdvbj4KCQkJCTxwb2x5Z29uIGZpbGw9IiMwMDU2OUUiIHBvaW50cz0iMTIxLjEzMzA0NyAyNzkuNTMxMTI0IDE1OC4yMTQ1OTIgMzE2LjYxMjY3IDI1NS4yNjcxNTkgMzE2LjYxMjY3IDE2OS44NDIyNjYgMjMwLjgyMDgwNyI+Cg08L3BvbHlnb24+CgkJCQk8cG9seWdvbiBmaWxsPSIjMDBCNUY4IiBwb2ludHM9IjcxLjU5OTU3NDIgMjMwLjM2NDA3MiAxMjAuNDAxMDg1IDE4MS41NjI1NjEgMTY5Ljg0MjA0NiAyMzAuODIxMTM2IDEyMS4xMzI4MjcgMjc5LjUzMTQ1NCI+Cg08L3BvbHlnb24+CgkJCQk8cG9seWdvbiBmaWxsLW9wYWNpdHk9IjAuOCIgZmlsbD0idXJsKCNsaW5lYXJHcmFkaWVudC0xKSIgcG9pbnRzPSIxMjEuMTMyODI3IDI3OS41MzE0NTQgMTYxLjY5Mjg5NiAyNjYuMDcyMjI3IDE2NS43MjE4NzUgMjM0Ljk0MTMwOCI+Cg08L3BvbHlnb24+CgkJPC9nPgo8L3N2Zz4=

View File

@@ -0,0 +1 @@
PHN2ZyB3aWR0aD0iNjQyIiBoZWlnaHQ9IjcxOCIgdmlld0JveD0iMCAwIDY0MiA3MTgiIGZpbGw9Im5vbmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CjxwYXRoIGQ9Ik02MTEuNDEyIDAuNjk0MzM2SDMxLjQxODdDMTQuODY2NCAwLjY5NDMzNiAxLjQ0MTc2IDE0LjEwMDMgMS40MTg2OCAzMC42NTI1TDAuNTAyMzMzIDY4Ny45MjFDMC40NzkyMTEgNzA0LjUwNiAxMy45MTc0IDcxNy45NjMgMzAuNTAyMyA3MTcuOTYzSDUxOS41NjZDNTI2LjU2MyA3MTcuOTYzIDUzMy4zNCA3MTUuNTE3IDUzOC43MjUgNzExLjA0OUw2MjkuNjQxIDYzNS42QzYzNi40OTYgNjI5LjkxMSA2NDAuNDY5IDYyMS40NyA2NDAuNDgzIDYxMi41NjJMNjQxLjQxMiAzMC43NDIzQzY0MS40MzkgMTQuMTU1IDYyOCAwLjY5NDMzNiA2MTEuNDEyIDAuNjk0MzM2WiIgZmlsbD0id2hpdGUiLz4KPC9zdmc+Cg==

View File

@@ -0,0 +1 @@
PHN2ZyB3aWR0aD0iMjciIGhlaWdodD0iMjciIHZpZXdCb3g9IjAgMCAyNyAyNyIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPGcgY2xpcC1wYXRoPSJ1cmwoI2NsaXAwKSI+CjxwYXRoIGQ9Ik0yLjYyNTU0IDAuNTM1MTU2QzIuMzg2NTYgMC41MzUxNTYgMi4yMDg1MiAwLjcyOTkwMyAyLjIyOTc0IDAuOTY3ODY2TDQuMjQ0MyAyMy41NjQ1QzQuMjY1NTMgMjMuODAyNSA0LjQ3MTE5IDI0LjA0OTYgNC43MDE1NCAyNC4xMTM1TDEzLjI1MDMgMjYuNDg3MkMxMy40ODA2IDI2LjU1MTEgMTMuODU3MyAyNi41NTExIDE0LjA4NzcgMjYuNDg3M0wyMi42NjI1IDI0LjEwOThDMjIuODkyOCAyNC4wNDU5IDIzLjA5ODcgMjMuNzk4OSAyMy4xMTk4IDIzLjU2MDlMMjUuMTM3OCAwLjk2Nzg2NkMyNS4xNTkxIDAuNzI5OTAzIDI0Ljk4MDkgMC41MzUxNTYgMjQuNzQxOSAwLjUzNTE1NkgyLjYyNTU0Wk0yMC44NDc1IDUuNzE3NjJDMjAuODI4NCA1LjkyOTg4IDIwLjc5NTUgNi4yOTg0MSAyMC43NzQzIDYuNTM2NDJMMjAuNzIxMiA3LjEyOTI5QzIwLjY5OTkgNy4zNjcyIDIwLjY2OTQgNy43MDc0OSAyMC42NTM0IDcuODg1MzhDMjAuNjM3NCA4LjA2MzMyIDIwLjYyMjIgOC4yMDg5MSAyMC42MTk0IDguMjA4OTFDMjAuNjE2NyA4LjIwODkxIDIwLjQxODkgOC4yMDg5MSAyMC4xOCA4LjIwODkxSDE0LjExODJDMTMuODc5MiA4LjIwODkxIDEzLjY4MTcgOC4yMDg5MSAxMy42NzkyIDguMjA4OTFDMTMuNjc2NiA4LjIwODkxIDEzLjQ3ODkgOC4yMDg5MSAxMy4yMzk5IDguMjA4OTFIMTAuMDQ3NEM5LjgwODM4IDguMjA4OTEgOS42MzAzNCA4LjQwMzY2IDkuNjUxNTcgOC42NDE2Mkw5LjgzNzc4IDEwLjcyMzJDOS44NTkwMSAxMC45NjExIDEwLjA3MiAxMS4xNTU5IDEwLjMxMDkgMTEuMTU1OUgxMy4yMzk5QzEzLjQ3ODkgMTEuMTU1OSAxMy42NzY2IDExLjE1NTkgMTMuNjc5MiAxMS4xNTU5QzEzLjY4MTggMTEuMTU1OSAxMy44NzkzIDExLjE1NTkgMTQuMTE4MyAxMS4xNTU5SDE5LjE1MjhDMTkuMzkxOCAxMS4xNTU5IDE5Ljc2MTYgMTEuMTU1OSAxOS45NzQ2IDExLjE1NTlDMjAuMTg3NCAxMS4xNTU5IDIwLjM0NTkgMTEuMzI5NiAyMC4zMjY2IDExLjU0MTlDMjAuMzA3MiAxMS43NTQxIDIwLjI3NDEgMTIuMTIyNyAyMC4yNTI5IDEyLjM2MDdMMTkuNjU0MiAxOS4wNzE0QzE5LjYzMjggMTkuMzA5NSAxOS42MDU4IDE5LjYxMzUgMTkuNTk0MSAxOS43NDcxQzE5LjU4MjMgMTkuODgwNyAxOS4zODQyIDIwLjA0MjIgMTkuMTUzOSAyMC4xMDYxTDE0LjEwMjUgMjEuNTA2OEMxMy44NzIyIDIxLjU3MDUgMTMuNjgwOSAyMS42MjM0IDEzLjY3NzMgMjEuNjI0MkMxMy42NzM3IDIxLjYyNDkgMTMuNDgyNSAyMS41NzMyIDEzLjI1MjEgMjEuNTA5NEw4LjE5NTI2IDIwLjEwNjJDNy45NjQ5NiAyMC4wNDIzIDcuNzU5MTkgMTkuNzk1MyA3LjczODAyIDE5LjU1NzNMNy40MTI1MSAxNS45MDM4QzcuMzkxMjggMTUuNjY1OCA3LjU2OTUzIDE1LjQ3MTEgNy44MDg1IDE1LjQ3MTFIOC4yNzAwMUM4LjUwODk4IDE1LjQ3MTEgOC45IDE1LjQ3MTEgOS4xMzg5MyAxNS40NzExSDkuODI3MTJDMTAuMDY2MSAxNS40NzExIDEwLjI3ODkgMTUuNjY1OCAxMC4zMDAzIDE1LjkwMzhMMTAuNDI3OSAxNy4zMzRDMTAuNDQ5MSAxNy41NzIxIDEwLjY1NTIgMTcuODE3NyAxMC44ODU5IDE3Ljg4TDEzLjI1MTMgMTguNTE4OEMxMy40ODE5IDE4LjU4MTEgMTMuNjcxNSAxOC42MzIxIDEzLjY3MjYgMTguNjMyMUMxMy42NzM2IDE4LjYzMjEgMTMuODYzMSAxOC41ODEgMTQuMDkzOCAxOC41MTg3TDE2LjQ2MzUgMTcuODc4NEMxNi42OTQxIDE3LjgxNjEgMTYuOTAwMyAxNy41NzAzIDE2LjkyMTcgMTcuMzMyNEwxNy4xNzg2IDE0LjQ2N0MxNy4yIDE0LjIyOSAxNy4wMjE5IDE0LjAzNDIgMTYuNzgzIDE0LjAzNDJIMTQuMTE4M0MxMy44NzkzIDE0LjAzNDIgMTMuNjgxOCAxNC4wMzQyIDEzLjY3OTIgMTQuMDM0MkMxMy42NzY2IDE0LjAzNDIgMTMuNDc4OSAxNC4wMzQyIDEzLjIzOTkgMTQuMDM0Mkg3LjY3OTY3QzcuNDQwNjkgMTQuMDM0MiA3LjIyNzkyIDEzLjgzOTQgNy4yMDY2OSAxMy42MDE1TDYuNTc2MTkgNi41MzY0N0M2LjU1NDk2IDYuMjk4NDYgNi41MjIwNSA1LjkzMDA0IDYuNTAzMDEgNS43MTc2N0M2LjQ4NDE3IDUuNTA1NCA2LjY2NDA5IDUuMzMxNjggNi45MDMwNyA1LjMzMTY4SDEzLjIzOTlDMTMuNDc4OSA1LjMzMTY4IDEzLjY3NjYgNS4zMzE2OCAxMy42NzkyIDUuMzMxNjhDMTMuNjgxOCA1LjMzMTY4IDEzLjg3OTMgNS4zMzE2OCAxNC4xMTgzIDUuMzMxNjhIMjAuNDQ3NUMyMC42ODY0IDUuMzMxNTcgMjAuODY2NCA1LjUwNTI1IDIwLjg0NzUgNS43MTc2MloiIGZpbGw9IiNkYzRhMjUiLz4KPC9nPgo8ZGVmcz4KPGNsaXBQYXRoIGlkPSJjbGlwMCI+CjxyZWN0IHdpZHRoPSIyNiIgaGVpZ2h0PSIyNiIgZmlsbD0id2hpdGUiIHRyYW5zZm9ybT0idHJhbnNsYXRlKDAuNjgzNTk0IDAuNTM1MTU2KSIvPgo8L2NsaXBQYXRoPgo8L2RlZnM+Cjwvc3ZnPgo=

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@@ -0,0 +1 @@
PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjciIHZpZXdCb3g9IjAgMCAyNCAyNyIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPHBhdGggZD0iTTIuODA3MTQgMjQuMDQ1N0wwLjY4MzU5NCAwLjY2ODk0NUwyMy41NjA3IDAuNjc3ODY4TDIxLjQ1NSAyNC4wMjc5TDEyLjEwNDMgMjYuNjY4OUwyLjgwNzE0IDI0LjA0NTdaTTE5LjczMyAyMi43Njk4TDIxLjUwODYgMi43NDc4N0gxMi4xNEwxMi4yMTE0IDI0LjgzMDlMMTkuNzMzIDIyLjc2OThaTTExLjI2NTYgNS42ODMzNkg4Ljk5MDM5TDguOTYzNjIgMTcuNjY2Mkw0LjU0NzAxIDE2LjQ2MTdMNC41NTU5MyAxOS4yMDA5TDExLjI2NTYgMjEuMDEyMVY1LjY4MzM2WiIgZmlsbD0iI2QzYjMyYyIvPgo8cGF0aCBvcGFjaXR5PSIwLjk4NiIgZD0iTTEwLjUxNjIgMjAuNzg4M0MxMC4yMjE3IDIwLjY5OTEgOC43NjczNyAyMC4zMDY1IDcuMjg2MjQgMTkuOTA1TDQuNjAwNTkgMTkuMTgyM1YxNy44MzVDNC42MDA1OSAxNi41MTQ1IDQuNjAwNTkgMTYuNDg3NyA0LjczNDQyIDE2LjUzMjNDNC44MDU4IDE2LjU1OTEgNS43ODcyNyAxNi44MjY3IDYuOTExNSAxNy4xMzlMOC45NTQ3NCAxNy43MDExTDguOTcyNTggMTEuNzIzMUw4Ljk5MDQzIDUuNzQ1MTJIMTEuMjIxVjEzLjM0N0MxMS4yMjEgMTkuMzg3NSAxMS4yMDMyIDIwLjk0ODkgMTEuMTQwNyAyMC45NDg5QzExLjA5NjEgMjAuOTQgMTAuODEwNiAyMC44Njg2IDEwLjUxNjIgMjAuNzg4M1oiIGZpbGw9IndoaXRlIi8+CjxwYXRoIGZpbGwtcnVsZT0iZXZlbm9kZCIgY2xpcC1ydWxlPSJldmVub2RkIiBkPSJNMTIuMTQwMSAyLjczOTI2SDIxLjUwODdMMTkuNzMzMSAyMi43NjEyTDEyLjE0MDEgMjQuODIyM1YyLjczOTI2Wk0xOS44NjcgMTEuOTIwNUwxOS4yNTEzIDE5LjQwNjRMMTMuMDg1OSAyMS4wMTI0TDEzLjA0MTMgMTguM0wxNy41MDI1IDE3LjExMzNMMTcuNTY1IDE0LjkwMDVMMTMuMTM5NSAxNS42NTlMMTMuMDQxMyA1LjcxOTM1TDIwLjM2NjYgNS42ODM2NkwyMC4xNzAzIDguNDEzOTNMMTUuMzE2NSA4LjQzMTc4VjEyLjQyOUwxOS44NjcgMTEuOTIwNVoiIGZpbGw9IiNmN2QxMzgiLz4KPHBhdGggZD0iTTE5LjI1MTMgMTkuNDA2NEwxOS44NjcgMTEuOTIwNUwxNS4zMTY1IDEyLjQyOVY4LjQzMTc4TDIwLjE3MDMgOC40MTM5M0wyMC4zNjY2IDUuNjgzNjZMMTMuMDQxMyA1LjcxOTM1TDEzLjEzOTUgMTUuNjU5TDE3LjU2NSAxNC45MDA1TDE3LjUwMjUgMTcuMTEzM0wxMy4wNDEzIDE4LjNMMTMuMDg1OSAyMS4wMTI0TDE5LjI1MTMgMTkuNDA2NFoiIGZpbGw9IndoaXRlIi8+Cjwvc3ZnPgo=

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@@ -0,0 +1 @@
PHN2ZyB3aWR0aD0iMjMiIGhlaWdodD0iMjMiIHZpZXdCb3g9IjAgMCAyMyAyMyIgZmlsbD0iIzFFMjUzMiIgZmlsbC1vcGFjaXR5PSIuMiIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KCTxwYXRoIGQ9Ik0xMC4xMzk2IDExLjU5OTVMMy4xMTQ2NCA3Ljc4MTY1QzIuODAyMTYgNy42MTE5MiAyLjQzMzE2IDcuNjE4OTMgMi4xMjczOSA3LjgwMDY5QzEuODIxNjIgNy45ODI0MiAxLjYzOTE2IDguMzAzMjggMS42MzkxNiA4LjY1OVYxNy41MTU1QzEuNjM5MTYgMTcuODczOCAxLjgzMjY2IDE4LjIwNjQgMi4xNDQxOSAxOC4zODM2TDkuMTY5MjUgMjIuMzc3M0M5LjMyNDExIDIyLjQ2NTMgOS40OTM0NiAyMi41MDkzIDkuNjYyODUgMjIuNTA5M0M5LjgzNTQ3IDIyLjUwOTMgMTAuMDA4IDIyLjQ2MzYgMTAuMTY1IDIyLjM3MjNDMTAuNDc1OCAyMi4xOTE0IDEwLjY2MTMgMjEuODY4OCAxMC42NjEzIDIxLjUwOTFWMTIuNDc2OEMxMC42NjEzIDEyLjExMDYgMTAuNDYxNSAxMS43NzQ0IDEwLjEzOTYgMTEuNTk5NVoiLz4KCTxwYXRoIGQ9Ik0xOS45OTQ1IDUuNDc3NDhDMTkuOTk0MSA1LjEwMzU0IDE5Ljc4NzUgNC43NjQzNyAxOS40NTU2IDQuNTkyMzJMMTEuNzk1MSAwLjYyMDg1MkMxMS41MDUxIDAuNDcwNDE3IDExLjE1OTQgMC40NzE1MzQgMTAuODcwNCAwLjYyMzY0NkwzLjMyMjU5IDQuNTk1MTFDMi45OTM5NiA0Ljc2ODExIDIuNzg5NTQgNS4xMDYyNSAyLjc4OTA2IDUuNDc3NjVDMi43ODg2MyA1Ljg0ODk3IDIuOTkyMjQgNi4xODc1OCAzLjMyMDQgNi4zNjEzMUwxMC44NjgyIDEwLjM1NzZDMTEuMDE0NCAxMC40MzQ5IDExLjE3NDggMTAuNDczNiAxMS4zMzU0IDEwLjQ3MzZDMTEuNDkzOSAxMC40NzM2IDExLjY1MjUgMTAuNDM1OCAxMS43OTcyIDEwLjM2MDNMMTkuNDU3OCA2LjM2NDE1QzE5Ljc4OTQgNi4xOTExOSAxOS45OTUxIDUuODUxNDIgMTkuOTk0NSA1LjQ3NzQ4WiIvPgoJPHBhdGggZD0iTTIwLjc4MSA3Ljc5OTc5QzIwLjQ3NTQgNy42MTgwMiAyMC4xMDYyIDcuNjEwODQgMTkuNzkzOSA3Ljc4MDcxTDEyLjc2ODcgMTEuNTk4NkMxMi40NDY5IDExLjc3MzUgMTIuMjQ3MSAxMi4xMDk2IDEyLjI0NzEgMTIuNDc1OVYyMS41MDgyQzEyLjI0NzEgMjEuODY3OCAxMi40MzI2IDIyLjE5MDUgMTIuNzQzNCAyMi4zNzEzQzEyLjkwMDQgMjIuNDYyNiAxMy4wNzI5IDIyLjUwODMgMTMuMjQ1NSAyMi41MDgzQzEzLjQxNDkgMjIuNTA4MyAxMy41ODQzIDIyLjQ2NDMgMTMuNzM5MSAyMi4zNzYzTDIwLjc2NDIgMTguMzgyNkMyMS4wNzU4IDE4LjIwNTUgMjEuMjY5MiAxNy44NzI4IDIxLjI2OTIgMTcuNTE0NVY4LjY1ODA5QzIxLjI2OTIgOC4zMDIzOCAyMS4wODY4IDcuOTgxNTIgMjAuNzgxIDcuNzk5NzlaIi8+Cjwvc3ZnPg==

File diff suppressed because one or more lines are too long

View File

@@ -0,0 +1 @@
PHN2ZyB3aWR0aD0iMTUiIGhlaWdodD0iMTQiIHZpZXdCb3g9IjAgMCAxNSAxNCIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPHBhdGggZD0iTTguMDE2NiAwQzQuMTcxOCAwIDAuOTg5MjU4IDMuMTI3ODUgMC45ODkyNTggNi45NzI2NkMwLjk4OTI1OCAxMC44MTc1IDQuMTcxOCAxNCA4LjAxNjYgMTRDMTEuODYxNCAxNCAxNC45ODkzIDEwLjgxNzUgMTQuOTg5MyA2Ljk3MjY2QzE0Ljk4OTMgMy4xMjc4NSAxMS44NjE0IDAgOC4wMTY2IDBaTTguODM2OTEgMTAuNzE4OEM4LjgzNjkxIDExLjE3MSA4LjQ2ODU5IDExLjUzOTEgOC4wMTY2IDExLjUzOTFDNy41NjQzNCAxMS41MzkxIDcuMTk2MjkgMTEuMTcxIDcuMTk2MjkgMTAuNzE4OFY2LjU2MjVDNy4xOTYyOSA2LjExMDIzIDcuNTY0MzQgNS43NDIxOSA4LjAxNjYgNS43NDIxOUM4LjQ2ODU5IDUuNzQyMTkgOC44MzY5MSA2LjExMDIzIDguODM2OTEgNi41NjI1VjEwLjcxODhaTTguMDE2NiA0LjEwMTU2QzcuNTY0MzQgNC4xMDE1NiA3LjE5NjI5IDMuNzMzNTIgNy4xOTYyOSAzLjI4MTI1QzcuMTk2MjkgMi44Mjg5OCA3LjU2NDM0IDIuNDYwOTQgOC4wMTY2IDIuNDYwOTRDOC40Njg1OSAyLjQ2MDk0IDguODM2OTEgMi44Mjg5OCA4LjgzNjkxIDMuMjgxMjVDOC44MzY5MSAzLjczMzUyIDguNDY4NTkgNC4xMDE1NiA4LjAxNjYgNC4xMDE1NloiIGZpbGw9IiMxRTI1MzIiLz4KPC9zdmc+Cg==

View File

@@ -0,0 +1 @@
PHN2ZyB3aWR0aD0iMTUiIGhlaWdodD0iMTQiIHZpZXdCb3g9IjAgMCAxNSAxNCIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPGcgY2xpcC1wYXRoPSJ1cmwoI2NsaXAwKSI+CjxwYXRoIGQ9Ik02LjE4NzczIDAuNDM3OTg4QzMuMDUxODIgMC40Mzc5ODggMC41MDAzOSAyLjU5NjU1IDAuNTAwMzkgNS4yNTAzNkMwLjUwMDM5IDYuMzM4ODMgMC45MjkxMjggNy4zODA5MiAxLjcxNjYxIDguMjI3OUwwLjYyODEzNiA5LjMxNjM3QzAuNTAzMDE0IDkuNDQxNDkgMC40NjUzOSA5LjYyOTYxIDAuNTMzNjM5IDkuNzkzMjNDMC42MDEwMTIgOS45NTU5OCAwLjc2MTEzMiAxMC4wNjI3IDAuOTM3ODc4IDEwLjA2MjdINi4xODc3M0M5LjMyMzY1IDEwLjA2MjcgMTEuODc1MSA3LjkwNDE2IDExLjg3NTEgNS4yNTAzNkMxMS44NzUxIDIuNTk2NTUgOS4zMjM2NSAwLjQzNzk4OCA2LjE4NzczIDAuNDM3OTg4WiIgZmlsbD0iIzFFMjUzMiIvPgo8cGF0aCBkPSJNMTMuMjgzMiAxMS43Mjc1QzE0LjA3MDYgMTAuODgxNCAxNC40OTk0IDkuODM4NDMgMTQuNDk5NCA4Ljc0OTk2QzE0LjQ5OTQgNy4zODg1IDEzLjgyNDggNi4xNjAwMyAxMi43NDc3IDUuMjg0MThDMTIuNzI1OCA4LjQwNDM0IDkuNzkyODkgMTAuOTM3NCA2LjE4NzExIDEwLjkzNzRIMy43NTI5M0M0LjY5NjE1IDEyLjQ5MzEgNi42MDc5OCAxMy41NjIzIDguODEyMDQgMTMuNTYyM0gxNC4wNjE5QzE0LjIzODYgMTMuNTYyMyAxNC4zOTg4IDEzLjQ1NTYgMTQuNDY2MSAxMy4yOTJDMTQuNTMzNSAxMy4xMjgzIDE0LjQ5NTkgMTIuOTQwMiAxNC4zNzE2IDEyLjgxNTFMMTMuMjgzMiAxMS43Mjc1WiIgZmlsbD0iIzFFMjUzMiIvPgo8L2c+CjxkZWZzPgo8Y2xpcFBhdGggaWQ9ImNsaXAwIj4KPHJlY3Qgd2lkdGg9IjE0IiBoZWlnaHQ9IjE0IiBmaWxsPSJ3aGl0ZSIgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoMC41KSIvPgo8L2NsaXBQYXRoPgo8L2RlZnM+Cjwvc3ZnPgo=

File diff suppressed because one or more lines are too long

View File

@@ -0,0 +1 @@
PHN2ZyBoZWlnaHQ9IjI1MDAiIHZpZXdCb3g9IjguNzM4IC0uMDM2IDE0LjUxNyAzMi4wMzgiIHdpZHRoPSIyNTAwIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjxwYXRoIGQ9Im0xNS45LjA4Ny44NTQgMS42MDRjLjE5Mi4yOTYuNC41NTguNjQ1LjgwMmEyMi40MDYgMjIuNDA2IDAgMCAxIDIuMDA0IDIuMjY2YzEuNDQ3IDEuOSAyLjQyMyA0LjAxIDMuMTIgNi4yOTIuNDE4IDEuMzk0LjY0NSAyLjgyNC42NjIgNC4yNy4wNyA0LjMyMy0xLjQxMiA4LjAzNS00LjQgMTEuMTJhMTIuNyAxMi43IDAgMCAxIC0xLjU3IDEuMzQyYy0uMjk2IDAtLjQzNi0uMjI3LS41NTgtLjQzNmEzLjU4OSAzLjU4OSAwIDAgMSAtLjQzNi0xLjI1NWMtLjEwNS0uNTIzLS4xNzQtMS4wNDYtLjE0LTEuNTg2di0uMjQ0Yy0uMDI0LS4wNTItLjI4NS0yNC4wNTItLjE4MS0yNC4xNzV6IiBmaWxsPSIjNTk5NjM2Ii8+PHBhdGggZD0ibTE1LjkuMDM0Yy0uMDM1LS4wNy0uMDctLjAxNy0uMTA1LjAxNy4wMTcuMzUtLjEwNS42NjItLjI5Ni45Ni0uMjEuMjk2LS40ODguNTIzLS43NjcuNzY3LTEuNTUgMS4zNDItMi43NyAyLjk2My0zLjc0NyA0Ljc3Ni0xLjMgMi40NC0xLjk3IDUuMDU1LTIuMTYgNy44MDgtLjA4Ny45OTMuMzE0IDQuNDk3LjYyNyA1LjUwOC44NTQgMi42ODQgMi4zODggNC45MzMgNC4zNzUgNi44ODUuNDg4LjQ3IDEuMDEuOTA2IDEuNTUgMS4zMjUuMTU3IDAgLjE3NC0uMTQuMjEtLjI0NGE0Ljc4IDQuNzggMCAwIDAgLjE1Ny0uNjhsLjM1LTIuNjE0eiIgZmlsbD0iIzZjYWM0OCIvPjxwYXRoIGQ9Im0xNi43NTQgMjguODQ1Yy4wMzUtLjQuMjI3LS43MzIuNDM2LTEuMDYzLS4yMS0uMDg3LS4zNjYtLjI2LS40ODgtLjQ1M2EzLjIzNSAzLjIzNSAwIDAgMSAtLjI2LS41NzVjLS4yNDQtLjczMi0uMjk2LTEuNS0uMzY2LTIuMjQ4di0uNDUzYy0uMDg3LjA3LS4xMDUuNjYyLS4xMDUuNzVhMTcuMzcgMTcuMzcgMCAwIDEgLS4zMTQgMi4zNTNjLS4wNTIuMzE0LS4wODcuNjI3LS4yOC45MDYgMCAuMDM1IDAgLjA3LjAxNy4xMjIuMzE0LjkyNC40IDEuODY1LjQ1MyAyLjgyNHYuMzVjMCAuNDE4LS4wMTcuMzMuMzMuNDcuMTQuMDUyLjI5Ni4wNy40MzYuMTc0LjEwNSAwIC4xMjItLjA4Ny4xMjItLjE1N2wtLjA1Mi0uNTc1di0xLjYwNGMtLjAxNy0uMjguMDM1LS41NTguMDctLjgyeiIgZmlsbD0iI2MyYmZiZiIvPjwvc3ZnPg==

File diff suppressed because one or more lines are too long

View File

@@ -0,0 +1 @@
PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz48IS0tIFVwbG9hZGVkIHRvOiBTVkcgUmVwbywgd3d3LnN2Z3JlcG8uY29tLCBHZW5lcmF0b3I6IFNWRyBSZXBvIE1peGVyIFRvb2xzIC0tPgo8c3ZnIHdpZHRoPSI4MDBweCIgaGVpZ2h0PSI4MDBweCIgdmlld0JveD0iMCAwIDMyIDMyIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIj48ZGVmcz48bGluZWFyR3JhZGllbnQgaWQ9ImEiIHgxPSIxNS45OTciIHkxPSI5OTMiIHgyPSIxNS45OTciIHkyPSIxMDIxIiBncmFkaWVudFRyYW5zZm9ybT0ibWF0cml4KDEsIDAsIDAsIC0xLCAwLCAxMDIzKSIgZ3JhZGllbnRVbml0cz0idXNlclNwYWNlT25Vc2UiPjxzdG9wIG9mZnNldD0iMCIgc3RvcC1jb2xvcj0iI2ZmYjE5OSIvPjxzdG9wIG9mZnNldD0iMSIgc3RvcC1jb2xvcj0iI2ZmMDg0NCIvPjwvbGluZWFyR3JhZGllbnQ+PC9kZWZzPjx0aXRsZT5maWxlX3R5cGVfbmVzdF9taWRkbGV3YXJlX3RzPC90aXRsZT48cGF0aCBkPSJNMTguNDg4LDJhMS43NTMsMS43NTMsMCwwLDAtLjU2NC4xYzEuNjExLDEuMDU4LS4yOCwyLjU5NC42LDMuOUEyLjIzNCwyLjIzNCwwLDAsMSwxOS42LDMuNzY1Yy4yODUtLjIzNy40NjctLjMyMi40MDYtLjcxNEMxOS45MSwyLjQwOSwxOS4wNTQsMiwxOC40ODgsMlptMi4zLjQxNGMtLjIyMiwxLjEyMy0uNSwxLjE2NC0xLjMyMywxLjg4N2ExLjgyLDEuODIsMCwwLDAtLjUyOCwyLjE5MWMtMy40LTEuMzItNy43NTgtMi4xMTgtMTAuOTUzLjE2Ni0xLjE0OS44MjEtMS44NTEsMi0zLjI2OCwyLjQ4MUMzLjgsOS40NTIsMi45LDkuMzYsMi4zMjgsMTAuMjY4QTEuNDEzLDEuNDEzLDAsMCwwLDIuMzg0LDEyLjFjLjE3LjE3NS41LjI4Ny42MzYuNDY1LjA3OS4xLjA3Ny4yLjE1Mi4zMzNhMi41ODYsMi41ODYsMCwwLDAsLjU2NC44MjhjLjE0Ni4xMjEuNjUyLjIzOS43MzguMzY4LjEwNy4xNjEtLjE3My44LjA2Mi45LjE1OS4wNzMuNjIyLS43NDQuNjY3LS44MTYtLjA5Mi42NDMtLjIxMywxLjc4NC41MS44MzQuMzQzLS40NTEuMzY0LS42Ljk0MS0uN2E4LjM2LDguMzYsMCwwLDEsOS43MzksNy41MDZjLS4xMDgtLjUtLjc2MS0xLjMtMS4zNjktMS4xMS0uMjU5LjA4LS4zNTUuNTI3LS41MjUuNzg2YTMuNzUsMy43NSwwLDAsMS0uNzg1Ljg2OCw0LjY1Nyw0LjY1NywwLDAsMC0uMDcyLTEuNDUyYy0uMTgyLjc0OC0uNTQ3LDEuOTg5LTEuNDY2LDEuNzg4YTEuNjUyLDEuNjUyLDAsMCwxLTEuMzI4LTEuMTQyYy0uMTE5LS43Ni42ODQtMS42NTEtLjYwNy0xLjcxNC0yLjU5LS4xMjctMS45OTEsMy42ODItLjQ2Miw0LjY3NWEzLjI3MiwzLjI3MiwwLDAsMC0xLjAxNS4yODNBNi44OTMsNi44OTMsMCwwLDAsMTkuMDQsMTkuODg5YTcuMDQ2LDcuMDQ2LDAsMCwxLS42NDYsNC43OSw2LjksNi45LDAsMCwxLTEuMjMsMS42NjhjLS4zLjMtLjg5NC42My0xLjA4OS45NDFBMTMuNDI3LDEzLjQyNywwLDAsMCwxOS42LDI2LjMyLDExLjY0NywxMS42NDcsMCwwLDEsMTUuMSwzMGExMS41OSwxMS41OSwwLDAsMCw5LjMtNS45MDksMTEuNjU3LDExLjY1NywwLDAsMS0xLjk0NSw0LjY2OCwxMS41MzEsMTEuNTMxLDAsMCwwLDQuOTc1LTcuNzgzLDExLjY1NSwxMS42NTUsMCwwLDEsLjIwOSwzLjVBMTIuNDE4LDEyLjQxOCwwLDAsMCwyOS41MywxMy45MWExNS43NTUsMTUuNzU1LDAsMCwwLTEuNjg5LTMuOTYyQTE0LjgzOCwxNC44MzgsMCwwLDAsMjYuOSw4LjU1NGMtLjEzMy0uMTczLS44NDQtLjgwNi0uODQ0LTFxLS4wMDkuMDI5LS4wMTUsMGMwLDMuMjY2LTMuNSw1LjMxMS02LjQzMSw0LjQ2M2E1LDUsMCwwLDAsNC41Ni00LjI4OEE0Ljk4OCw0Ljk4OCwwLDAsMCwyMC43ODksMi40MTRaIiBzdHlsZT0iZmlsbC1ydWxlOmV2ZW5vZGQ7ZmlsbDp1cmwoI2EpIi8+PHBhdGggZD0iTTI2LjQsMTguNmEyLjgyLDIuODIsMCwwLDEsMS40MS44MSwzLjgsMy44LDAsMCwxLC41NC43MnMtMSwuNjktMS41NywxLjA2YS40OS40OSwwLDAsMS0uMi0uMjIsMS4yODMsMS4yODMsMCwwLDAtMS4wNi0uNjQuOTIuOTIsMCwwLDAtMS4xLjcuODkzLjg5MywwLDAsMC0uMDIyLjIxMi44MTguODE4LDAsMCwwLC4xLjQyLDIuMjE4LDIuMjE4LDAsMCwwLDEuMzEuODhjMS42Mi43LDIuMzEsMS4xNiwyLjc0LDEuODFhMy4yODMsMy4yODMsMCwwLDEsLjI2LDIuNzYsMywzLDAsMCwxLTIuNTEsMS44NCw2Ljg3NSw2Ljg3NSwwLDAsMS0xLjcyLDAsNC4xNDIsNC4xNDIsMCwwLDEtMi4zLTEuMiwzLjk1OCwzLjk1OCwwLDAsMS0uNTktLjg3bC4yMS0uMTMuODQtLjQ4LjY1LS4zOC4xNC4yYTIuOTg3LDIuOTg3LDAsMCwwLC44Ni44MiwyLjEsMi4xLDAsMCwwLDIuMi0uMTEsMSwxLDAsMCwwLC4xMy0xLjI1LDMuNzQyLDMuNzQyLDAsMCwwLTEuNTUtLjksNS41ODQsNS41ODQsMCwwLDEtMi4xOC0xLjM4LDIuOTg4LDIuOTg4LDAsMCwxLS42Mi0xLjEzLDQuNTE3LDQuNTE3LDAsMCwxLDAtMS40NCwyLjc2MSwyLjc2MSwwLDAsMSwyLjMyLTIuMTVBNS43MzUsNS43MzUsMCwwLDEsMjYuNCwxOC42Wm0tNS4zMS45NHYuOTNIMTguMTV2OC4zNkgxNi4wN3YtOC4zNkgxMy4xM3YtLjkxYTguNDg2LDguNDg2LDAsMCwxLDAtLjkzaDh2LjkyWiIgc3R5bGU9ImZpbGw6IzAwN2FjYyIvPjwvc3ZnPg==

View File

@@ -0,0 +1 @@
PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KPCEtLSBVcGxvYWRlZCB0bzogU1ZHIFJlcG8sIHd3dy5zdmdyZXBvLmNvbSwgR2VuZXJhdG9yOiBTVkcgUmVwbyBNaXhlciBUb29scyAtLT4KPHN2ZyB3aWR0aD0iODAwcHgiIGhlaWdodD0iODAwcHgiIHZpZXdCb3g9Ii0xNy41IDAgMjkxIDI5MSIgdmVyc2lvbj0iMS4xIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiBwcmVzZXJ2ZUFzcGVjdFJhdGlvPSJ4TWlkWU1pZCI+CiAgICA8Zz4KCQkJCTxwYXRoIGQ9Ik0yLjA1Mzg2ODE5LDIxOC4xODY4MTkgQzMuMzc0MjEyMDMsMjIwLjUzNDA5NyA1LjI4MTM3NTM2LDIyMi4yOTQ1NTYgNy42Mjg2NTMzLDIyMy42MTQ5IEwxMjAuNTkxNDA0LDI4OC43NTE4NjIgTDEyMC41OTE0MDQsMjg4Ljc1MTg2MiBDMTI1LjI4NTk2LDI5MS41MzkyNTUgMTMxLjAwNzQ1LDI5MS41MzkyNTUgMTM1LjU1NTMwMSwyODguNzUxODYyIEwyNDguNTE4MDUyLDIyMy42MTQ5IEMyNTMuMjEyNjA3LDIyMC45NzQyMTIgMjU2LDIxNS45ODYyNDYgMjU2LDIxMC41NTgxNjYgTDI1Niw4MC4yODQyNDA3IEwyNTYsODAuMjg0MjQwNyBDMjU2LDc0Ljg1NjE2MDUgMjUzLjIxMjYwNyw2OS44NjgxOTQ4IDI0OC41MTgwNTIsNjcuMjI3NTA3MiBMMTM1LjU1NTMwMSwyLjA5MDU0NDQxIEwxMzUuNTU1MzAxLDIuMDkwNTQ0NDEgQzEzMC44NjA3NDUsLTAuNjk2ODQ4MTM4IDEyNS4xMzkyNTUsLTAuNjk2ODQ4MTM4IDEyMC41OTE0MDQsMi4wOTA1NDQ0MSBMMTIwLjU5MTQwNCwyLjA5MDU0NDQxIEw3LjYyODY1MzMsNjcuMjI3NTA3MiBDMi43ODczOTI1NSw2OS44NjgxOTQ4IDAsNzQuODU2MTYwNSAwLDgwLjI4NDI0MDcgTDAsODAuMjg0MjQwNyBMMCwyMTAuNzA0ODcxIEMwLDIxMy4zNDU1NTkgMC41ODY4MTk0ODQsMjE1LjgzOTU0MiAyLjA1Mzg2ODE5LDIxOC4xODY4MTkiIGZpbGw9IiMwMDk2MzkiPgoNPC9wYXRoPgoJCQkJPHBhdGggZD0iTTkxLjgzNzI0OTMsMTk1LjE1NDE1NSBDOTEuODM3MjQ5MywyMDMuMjIyOTIzIDg1LjM4MjIzNSwyMDkuNjc3OTM3IDc3LjMxMzQ2NywyMDkuNjc3OTM3IEM2OS4yNDQ2OTkxLDIwOS42Nzc5MzcgNjIuNzg5Njg0OCwyMDMuMjIyOTIzIDYyLjc4OTY4NDgsMTk1LjE1NDE1NSBMNjIuNzg5Njg0OCwxOTUuMTU0MTU1IEw2Mi43ODk2ODQ4LDk1LjU0MTU0NzMgQzYyLjc4OTY4NDgsODcuNzY2MTg5MSA2OS42ODQ4MTM4LDgxLjQ1Nzg3OTcgNzkuMjIwNjMwNCw4MS40NTc4Nzk3IEM4Ni4xMTU3NTkzLDgxLjQ1Nzg3OTcgOTQuMTg0NTI3Miw4NC4yNDUyNzIyIDk5LjAyNTc4OCw5MC4yNjAxNzE5IEwxMDMuNDI2OTM0LDk1LjU0MTU0NzMgTDE2NC4xNjI3NTEsMTY4LjE2MDQ1OCBMMTY0LjE2Mjc1MSw5NS44MzQ5NTcgTDE2NC4xNjI3NTEsOTUuODM0OTU3IEMxNjQuMTYyNzUxLDg3Ljc2NjE4OTEgMTcwLjYxNzc2NSw4MS4zMTExNzQ4IDE3OC42ODY1MzMsODEuMzExMTc0OCBDMTg2Ljc1NTMwMSw4MS4zMTExNzQ4IDE5My4yMTAzMTUsODcuNzY2MTg5MSAxOTMuMjEwMzE1LDk1LjgzNDk1NyBMMTkzLjIxMDMxNSw5NS44MzQ5NTcgTDE5My4yMTAzMTUsMTk1LjQ0NzU2NCBDMTkzLjIxMDMxNSwyMDMuMjIyOTIzIDE4Ni4zMTUxODYsMjA5LjUzMTIzMiAxNzYuNzc5MzcsMjA5LjUzMTIzMiBDMTY5Ljg4NDI0MSwyMDkuNTMxMjMyIDE2MS44MTU0NzMsMjA2Ljc0Mzg0IDE1Ni45NzQyMTIsMjAwLjcyODk0IEw5MS44MzcyNDkzLDEyMi45NzUzNTggTDkxLjgzNzI0OTMsMTk1LjE1NDE1NSBMOTEuODM3MjQ5MywxOTUuMTU0MTU1IFoiIGZpbGw9IiNGRkZGRkYiPgoNPC9wYXRoPgogICAgPC9nPgo8L3N2Zz4=

View File

@@ -0,0 +1 @@
PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjYiIHZpZXdCb3g9IjAgMCAyNCAyNiIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPGcgY2xpcC1wYXRoPSJ1cmwoI2NsaXAwKSI+CjxwYXRoIGQ9Ik0xMC44NTU4IDAuMzI5ODkyQzExLjQ5NzcgLTAuMDM3NTE5MiAxMi4zMzM4IC0wLjAzOTE3ODggMTIuOTc1MSAwLjMyOTg5MkMxNi4yMDE2IDIuMTUzMDMgMTkuNDI5MSAzLjk3MzMgMjIuNjU1IDUuNzk3NTRDMjMuMjYxOCA2LjEzOTMyIDIzLjY2NzYgNi44MTQ1OSAyMy42NjE1IDcuNTEzNzNWMTguNDgyNEMyMy42NjYgMTkuMjEwNSAyMy4yMiAxOS45MDE5IDIyLjU3OTkgMjAuMjM1OUMxOS4zNjQgMjIuMDQ5IDE2LjE0OTggMjMuODY0MyAxMi45MzQ0IDI1LjY3NzRDMTIuMjc5MyAyNi4wNTIgMTEuNDI2NCAyNi4wMjMxIDEwLjc5MTcgMjUuNjE3OEM5LjgyNzYyIDI1LjA1ODkgOC44NjE4NCAyNC41MDI4IDcuODk3NjIgMjMuOTQ0NEM3LjcwMDYgMjMuODI3IDcuNDc4NDkgMjMuNzMzNSA3LjMzOTM2IDIzLjU0MjVDNy40NjIzNiAyMy4zNzY3IDcuNjgyMjUgMjMuMzU2IDcuODYwOTMgMjMuMjgzNkM4LjI2MzM4IDIzLjE1NTcgOC42MzMgMjIuOTUwMyA5LjAwMjcyIDIyLjc1MDlDOS4wOTYyMSAyMi42ODY5IDkuMjEwMzUgMjIuNzExNSA5LjI5OTk2IDIyLjc2ODdDMTAuMTI0NCAyMy4yNDE0IDEwLjk0MTYgMjMuNzI3OSAxMS43Njg4IDI0LjE5NkMxMS45NDUyIDI0LjI5NzkgMTIuMTIzOSAyNC4xNjI3IDEyLjI3NDggMjQuMDc4NkMxNS40MzA1IDIyLjI5NSAxOC41OTAyIDIwLjUxODIgMjEuNzQ1NCAxOC43MzRDMjEuODYyMyAxOC42Nzc4IDIxLjkyNjkgMTguNTUzNyAyMS45MTc0IDE4LjQyNTZDMjEuOTE5NiAxNC44MDczIDIxLjkxOCAxMS4xODgzIDIxLjkxODUgNy41Njk5N0MyMS45MzE5IDcuNDI0NjcgMjEuODQ3OCA3LjI5MTA3IDIxLjcxNjQgNy4yMzE2QzE4LjUxMTcgNS40MjY4MSAxNS4zMDg2IDMuNjE5MjYgMTIuMTA0NSAxLjgxNDAxQzEyLjA0ODkgMS43NzU4NSAxMS45ODMyIDEuNzU1MzcgMTEuOTE1OCAxLjc1NTI3QzExLjg0ODQgMS43NTUxNyAxMS43ODI2IDEuNzc1NDYgMTEuNzI3IDEuODEzNDZDOC41MjI4MiAzLjYxOTI2IDUuMzIwMzEgNS40Mjg0NyAyLjExNjEzIDcuMjMzMTdDMS45ODUyMSA3LjI5MjczIDEuODk3MzQgNy40MjQxMSAxLjkxMjkyIDcuNTY5OTdDMS45MTM0OCAxMS4xODgzIDEuOTEyOTIgMTQuODA3MyAxLjkxMjkyIDE4LjQyNjJDMS45MDczNyAxOC40ODg3IDEuOTIxMDkgMTguNTUxMyAxLjk1MjI1IDE4LjYwNThDMS45ODM0IDE4LjY2MDIgMi4wMzA0OSAxOC43MDM4IDIuMDg3MTggMTguNzMwN0MyLjk0MjIzIDE5LjIxNTYgMy43OTgzOCAxOS42OTcgNC42NTM5OSAyMC4xODAyQzUuMTM2IDIwLjQzOTcgNS43Mjc4MiAyMC41OTM4IDYuMjU4ODkgMjAuMzk1MUM2LjcyNzUzIDIwLjIyNyA3LjA1NjA0IDE5Ljc0ODggNy4wNDcwOSAxOS4yNTEyQzcuMDUxNTIgMTUuNjUzOSA3LjA0NDg4IDEyLjA1NjIgNy4wNTA0MSA4LjQ1OTVDNy4wMzg3IDguMjk5ODEgNy4xOTAxOSA4LjE2Nzg4IDcuMzQ1NDUgOC4xODI5MUM3Ljc1NjI4IDguMTgwMTQgOC4xNjc2NyA4LjE3NzM3IDguNTc4NTEgOC4xODQwMUM4Ljc1IDguMTgwMTQgOC44NjgwMSA4LjM1MjA5IDguODQ2ODEgOC41MTI5OEM4Ljg0NTE1IDEyLjEzMyA4Ljg1MTIzIDE1Ljc1MzEgOC44NDQwNCAxOS4zNzNDOC44NDUxNSAyMC4zMzc4IDguNDQ4NzkgMjEuMzg3NiA3LjU1NjQgMjEuODU5NkM2LjQ1NzAyIDIyLjQyOTIgNS4wOTgyIDIyLjMwODQgNC4wMTIxIDIxLjc2MjNDMy4wNzE4NiAyMS4yOTMgMi4xNzQ1OCAyMC43MzkyIDEuMjUxMDMgMjAuMjM2NEMwLjYwOTIzNSAxOS45MDQyIDAuMTY1NDgzIDE5LjIxIDAuMTcwMDAxIDE4LjQ4MjVWNy41MTM3M0MwLjE2MzI3MSA2LjgwMDExIDAuNTg1MjY0IDYuMTEyNTkgMS4yMTA5MiA1Ljc3NTc5QzQuNDI2MjYgMy45NjEyMyA3LjY0MTA0IDIuMTQ1MjggMTAuODU1OCAwLjMyOTg5MloiIGZpbGw9IiM2NDlhNjAiLz4KPHBhdGggZD0iTTEzLjY2MSA3LjkyODMzQzE1LjA2MzQgNy44MzgwNyAxNi41NjQ2IDcuODc0ODYgMTcuODI2NiA4LjU2NTcxQzE4LjgwMzYgOS4wOTUxMiAxOS4zNDUzIDEwLjIwNjIgMTkuMzYyNSAxMS4yOTE3QzE5LjMzNTIgMTEuNDM4MSAxOS4xODIyIDExLjUxODkgMTkuMDQyNCAxMS41MDg4QzE4LjYzNTUgMTEuNTA4MyAxOC4yMjg2IDExLjUxNDMgMTcuODIxNyAxMS41MDZDMTcuNjQ5MSAxMS41MTI3IDE3LjU0ODggMTEuMzUzNSAxNy41MjcxIDExLjIwMUMxNy40MTAyIDEwLjY4MTYgMTcuMTI3IDEwLjE2NzIgMTYuNjM4MSA5LjkxNjcxQzE1Ljg4NzcgOS41NDEgMTUuMDE3NiA5LjU1OTkgMTQuMTk5NCA5LjU2NzczQzEzLjYwMiA5LjU5OTQ1IDEyLjk1OTcgOS42NTExNyAxMi40NTM2IDEwLjAwMjVDMTIuMDY1IDEwLjI2ODUgMTEuOTQ3IDEwLjgwNTcgMTIuMDg1NyAxMS4yMzgzQzEyLjIxNjQgMTEuNTQ4OSAxMi41NzUgMTEuNjQ5MSAxMi44Njg0IDExLjc0MTVDMTQuNTU4NCAxMi4xODM1IDE2LjM0OTMgMTIuMTM5NSAxOC4wMDcgMTIuNzIxMkMxOC42OTMzIDEyLjk1ODQgMTkuMzY0NyAxMy40MTk0IDE5LjU5OTcgMTQuMTM4QzE5LjkwNyAxNS4xMDExIDE5Ljc3MjMgMTYuMjUyMyAxOS4wODcgMTcuMDI1NUMxOC41MzEzIDE3LjY2MTggMTcuNzIyIDE4LjAwODEgMTYuOTE0OCAxOC4xOTYxQzE1Ljg0MSAxOC40MzU2IDE0LjcyNjYgMTguNDQxNyAxMy42MzYgMTguMzM1NEMxMi42MTA2IDE4LjIxODUgMTEuNTQzNSAxNy45NDkgMTAuNzUxOSAxNy4yNTA0QzEwLjA3NDkgMTYuNjYyNiA5Ljc0NDMgMTUuNzQ2OCA5Ljc3NzEzIDE0Ljg2MjlDOS43ODQ5NiAxNC43MTM2IDkuOTMzNTkgMTQuNjA5NSAxMC4wNzY2IDE0LjYyMTdDMTAuNDg2MyAxNC42MTg0IDEwLjg5NjEgMTQuNjE3MyAxMS4zMDU4IDE0LjYyMjNDMTEuNDY5NCAxNC42MTA2IDExLjU5MDggMTQuNzUyIDExLjU5OTIgMTQuOTA2M0MxMS42NzQ4IDE1LjQwMTEgMTEuODYwNyAxNS45MjA1IDEyLjI5MjIgMTYuMjEzOUMxMy4xMjUgMTYuNzUxMSAxNC4xNjk5IDE2LjcxNDMgMTUuMTIzNCAxNi43MjkzQzE1LjkxMzMgMTYuNjk0MyAxNi44MDAxIDE2LjY4MzcgMTcuNDQ0OCAxNi4xNjE2QzE3Ljc4NDkgMTUuODYzOCAxNy44ODU3IDE1LjM2NTUgMTcuNzkzNyAxNC45MzY5QzE3LjY5NDIgMTQuNTc1IDE3LjMxNTYgMTQuNDA2NCAxNi45OTA1IDE0LjI5NjFDMTUuMzIyMiAxMy43NjgzIDEzLjUxMTMgMTMuOTU5OCAxMS44NTkxIDEzLjM2M0MxMS4xODgzIDEzLjEyNiAxMC41Mzk3IDEyLjY3NzggMTAuMjgyIDExLjk4ODdDOS45MjI0MyAxMS4wMTM0IDEwLjA4NzIgOS44MDcwOCAxMC44NDQyIDkuMDU5OTlDMTEuNTgyNCA4LjMxNjg2IDEyLjY0NzkgOC4wMzA2NyAxMy42NjEgNy45MjgyNFY3LjkyODMzWiIgZmlsbD0iIzY0OWE2MCIvPgo8L2c+CjxkZWZzPgo8Y2xpcFBhdGggaWQ9ImNsaXAwIj4KPHJlY3Qgd2lkdGg9IjIzLjYwOCIgaGVpZ2h0PSIyNiIgZmlsbD0id2hpdGUiIHRyYW5zZm9ybT0idHJhbnNsYXRlKDAuMTE0MjU4KSIvPgo8L2NsaXBQYXRoPgo8L2RlZnM+Cjwvc3ZnPgo=

View File

@@ -0,0 +1 @@
PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz48IS0tIFVwbG9hZGVkIHRvOiBTVkcgUmVwbywgd3d3LnN2Z3JlcG8uY29tLCBHZW5lcmF0b3I6IFNWRyBSZXBvIE1peGVyIFRvb2xzIC0tPgo8c3ZnIHdpZHRoPSI4MDBweCIgaGVpZ2h0PSI4MDBweCIgdmlld0JveD0iMCAwIDMyIDMyIiBmaWxsPSJub25lIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPg0KPGNpcmNsZSBjeD0iMTYiIGN5PSIxNiIgcj0iMTQiIGZpbGw9IiM4ODkyQkYiLz4NCjxwYXRoIGQ9Ik0xNC40MzkyIDEwSDE2LjExOTJMMTUuNjQ0NCAxMi41MjQySDE3LjE1NEMxNy45ODE5IDEyLjU0MTkgMTguNTk4NiAxMi43MjY5IDE5LjAwNDUgMTMuMDc5M0MxOS40MTg0IDEzLjQzMTYgMTkuNTQwMiAxNC4xMDE0IDE5LjM2OTggMTUuMDg4MUwxOC41NTQxIDE5LjQ4ODlIMTYuODQ5N0wxNy42Mjg4IDE1LjI4NjNDMTcuNzA5OSAxNC44NDU3IDE3LjY4NTYgMTQuNTMzIDE3LjU1NTggMTQuMzQ4QzE3LjQyNiAxNC4xNjMgMTcuMTQ2IDE0LjA3MDUgMTYuNzE1OCAxNC4wNzA1TDE1LjM2NDQgMTQuMDU3M0wxNC4zNjYxIDE5LjQ4ODlIMTIuNjg2MUwxNC40MzkyIDEwWiIgZmlsbD0id2hpdGUiLz4NCjxwYXRoIGZpbGwtcnVsZT0iZXZlbm9kZCIgY2xpcC1ydWxlPSJldmVub2RkIiBkPSJNNi43NDA5MiAxMi41MjQzSDEwLjAwMzZDMTAuOTYxMiAxMi41MzMgMTEuNjU1MiAxMi44MzI3IDEyLjA4NTQgMTMuNDIyOUMxMi41MTU2IDE0LjAxMzIgMTIuNjU3NiAxNC44MTkzIDEyLjUxMTUgMTUuODQxNEMxMi40NTQ4IDE2LjMwODUgMTIuMzI4OSAxNi43NjY1IDEyLjEzNDEgMTcuMjE1OUMxMS45NDc0IDE3LjY2NTIgMTEuNjg3OCAxOC4wNzA0IDExLjM1NSAxOC40MzE3QzEwLjk0OTEgMTguODg5OCAxMC41MTQ5IDE5LjE4MDUgMTAuMDUyMyAxOS4zMDRDOS41ODk2OSAxOS40Mjc0IDkuMTEwNzYgMTkuNDg5IDguNjE1NzUgMTkuNDg5SDcuMTU0ODRMNi42OTIyMiAyMkg1TDYuNzQwOTIgMTIuNTI0M1pNNy40MzQ4NSAxNy45OTU2TDguMTYyODcgMTQuMDQ0MUg4LjQwODc5QzguNDk4MTUgMTQuMDQ0MSA4LjU5MTQgMTQuMDM5NiA4LjY4ODggMTQuMDMwOUM5LjMzODE3IDE0LjAyMjEgOS44Nzc3NCAxNC4wODgyIDEwLjMwOCAxNC4yMjkxQzEwLjc0NjIgMTQuMzcgMTAuODkyMyAxNC45MDMxIDEwLjc0NjIgMTUuODI4MkMxMC41Njc4IDE2LjkyOTYgMTAuMjE4NiAxNy41NzI3IDkuNjk5MjYgMTcuNzU3N0M5LjE3OTkgMTcuOTM0IDguNTMwNTMgMTguMDE3NiA3Ljc1MTM4IDE4LjAwODhINy41ODA5NEM3LjUzMjI0IDE4LjAwODggNy40ODM1NSAxOC4wMDQzIDcuNDM0ODUgMTcuOTk1NloiIGZpbGw9IndoaXRlIi8+DQo8cGF0aCBmaWxsLXJ1bGU9ImV2ZW5vZGQiIGNsaXAtcnVsZT0iZXZlbm9kZCIgZD0iTTI0LjQzNjUgMTIuNTI0M0gyMS4xNzM4TDE5LjQzMjkgMjJIMjEuMTI1MUwyMS41ODc4IDE5LjQ4OUgyMy4wNDg3QzIzLjU0MzcgMTkuNDg5IDI0LjAyMjYgMTkuNDI3NCAyNC40ODUyIDE5LjMwNEMyNC45NDc5IDE5LjE4MDUgMjUuMzgyIDE4Ljg4OTggMjUuNzg3OSAxOC40MzE3QzI2LjEyMDcgMTguMDcwNCAyNi4zODAzIDE3LjY2NTIgMjYuNTY3IDE3LjIxNTlDMjYuNzYxOCAxNi43NjY1IDI2Ljg4NzcgMTYuMzA4NSAyNi45NDQ0IDE1Ljg0MTRDMjcuMDkwNSAxNC44MTkzIDI2Ljk0ODYgMTQuMDEzMiAyNi41MTgzIDEzLjQyMjlDMjYuMDg4MSAxMi44MzI3IDI1LjM5NDIgMTIuNTMzIDI0LjQzNjUgMTIuNTI0M1pNMjIuNTk1OCAxNC4wNDQxTDIxLjg2NzggMTcuOTk1NkMyMS45MTY1IDE4LjAwNDMgMjEuOTY1MiAxOC4wMDg4IDIyLjAxMzkgMTguMDA4OEgyMi4xODQzQzIyLjk2MzUgMTguMDE3NiAyMy42MTI4IDE3LjkzNCAyNC4xMzIyIDE3Ljc1NzdDMjQuNjUxNSAxNy41NzI3IDI1LjAwMDcgMTYuOTI5NiAyNS4xNzkyIDE1LjgyODJDMjUuMzI1MyAxNC45MDMxIDI1LjE3OTIgMTQuMzcgMjQuNzQwOSAxNC4yMjkxQzI0LjMxMDcgMTQuMDg4MiAyMy43NzExIDE0LjAyMjEgMjMuMTIxNyAxNC4wMzA5QzIzLjAyNDMgMTQuMDM5NiAyMi45MzExIDE0LjA0NDEgMjIuODQxNyAxNC4wNDQxSDIyLjU5NThaIiBmaWxsPSJ3aGl0ZSIvPg0KPC9zdmc+

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@@ -0,0 +1 @@
PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz48IS0tIFVwbG9hZGVkIHRvOiBTVkcgUmVwbywgd3d3LnN2Z3JlcG8uY29tLCBHZW5lcmF0b3I6IFNWRyBSZXBvIE1peGVyIFRvb2xzIC0tPgo8c3ZnIHdpZHRoPSI4MDBweCIgaGVpZ2h0PSI4MDBweCIgdmlld0JveD0iMCAtMTggMjU2IDI1NiIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiBwcmVzZXJ2ZUFzcGVjdFJhdGlvPSJ4TWluWU1pbiBtZWV0Ij48cGF0aCBkPSJNMjQ1Ljk3IDE2OC45NDNjLTEzLjY2MiA3LjEyMS04NC40MzQgMzYuMjItOTkuNTAxIDQ0LjA3NS0xNS4wNjcgNy44NTYtMjMuNDM3IDcuNzgtMzUuMzQgMi4wOS0xMS45MDItNS42OS04Ny4yMTYtMzYuMTEyLTEwMC43ODMtNDIuNTk3QzMuNTY2IDE2OS4yNzEgMCAxNjYuNTM1IDAgMTYzLjk1MXYtMjUuODc2czk4LjA1LTIxLjM0NSAxMTMuODc5LTI3LjAyNGMxNS44MjgtNS42NzkgMjEuMzItNS44ODQgMzQuNzktLjk1IDEzLjQ3MiA0LjkzNiA5NC4wMTggMTkuNDY4IDEwNy4zMzEgMjQuMzQ0bC0uMDA2IDI1LjUxYy4wMDIgMi41NTgtMy4wNyA1LjM2NC0xMC4wMjQgOC45ODgiIGZpbGw9IiM5MTI2MjYiLz48cGF0aCBkPSJNMjQ1Ljk2NSAxNDMuMjJjLTEzLjY2MSA3LjExOC04NC40MzEgMzYuMjE4LTk5LjQ5OCA0NC4wNzItMTUuMDY2IDcuODU3LTIzLjQzNiA3Ljc4LTM1LjMzOCAyLjA5LTExLjkwMy01LjY4Ni04Ny4yMTQtMzYuMTEzLTEwMC43OC00Mi41OTQtMTMuNTY2LTYuNDg1LTEzLjg1LTEwLjk0OC0uNTI0LTE2LjE2NiAxMy4zMjYtNS4yMiA4OC4yMjQtMzQuNjA1IDEwNC4wNTUtNDAuMjg0IDE1LjgyOC01LjY3NyAyMS4zMTktNS44ODQgMzQuNzg5LS45NDggMTMuNDcxIDQuOTM0IDgzLjgxOSAzMi45MzUgOTcuMTMgMzcuODEgMTMuMzE2IDQuODgxIDEzLjgyNyA4LjkuMTY2IDE2LjAyIiBmaWxsPSIjQzYzMDJCIi8+PHBhdGggZD0iTTI0NS45NyAxMjcuMDc0Yy0xMy42NjIgNy4xMjItODQuNDM0IDM2LjIyLTk5LjUwMSA0NC4wNzgtMTUuMDY3IDcuODUzLTIzLjQzNyA3Ljc3Ny0zNS4zNCAyLjA4Ny0xMS45MDMtNS42ODctODcuMjE2LTM2LjExMi0xMDAuNzgzLTQyLjU5N0MzLjU2NiAxMjcuNDAyIDAgMTI0LjY3IDAgMTIyLjA4NVY5Ni4yMDZzOTguMDUtMjEuMzQ0IDExMy44NzktMjcuMDIzYzE1LjgyOC01LjY3OSAyMS4zMi01Ljg4NSAzNC43OS0uOTVDMTYyLjE0MiA3My4xNjggMjQyLjY4OCA4Ny42OTcgMjU2IDkyLjU3NGwtLjAwNiAyNS41MTNjLjAwMiAyLjU1Ny0zLjA3IDUuMzYzLTEwLjAyNCA4Ljk4NyIgZmlsbD0iIzkxMjYyNiIvPjxwYXRoIGQ9Ik0yNDUuOTY1IDEwMS4zNTFjLTEzLjY2MSA3LjEyLTg0LjQzMSAzNi4yMTgtOTkuNDk4IDQ0LjA3NS0xNS4wNjYgNy44NTQtMjMuNDM2IDcuNzc3LTM1LjMzOCAyLjA4Ny0xMS45MDMtNS42ODYtODcuMjE0LTM2LjExMi0xMDAuNzgtNDIuNTk0LTEzLjU2Ni02LjQ4My0xMy44NS0xMC45NDctLjUyNC0xNi4xNjdDMjMuMTUxIDgzLjUzNSA5OC4wNSA1NC4xNDggMTEzLjg4IDQ4LjQ3YzE1LjgyOC01LjY3OCAyMS4zMTktNS44ODQgMzQuNzg5LS45NDkgMTMuNDcxIDQuOTM0IDgzLjgxOSAzMi45MzMgOTcuMTMgMzcuODEgMTMuMzE2IDQuODggMTMuODI3IDguOS4xNjYgMTYuMDIiIGZpbGw9IiNDNjMwMkIiLz48cGF0aCBkPSJNMjQ1Ljk3IDgzLjY1M2MtMTMuNjYyIDcuMTItODQuNDM0IDM2LjIyLTk5LjUwMSA0NC4wNzgtMTUuMDY3IDcuODU0LTIzLjQzNyA3Ljc3Ny0zNS4zNCAyLjA4Ny0xMS45MDMtNS42ODctODcuMjE2LTM2LjExMy0xMDAuNzgzLTQyLjU5NUMzLjU2NiA4My45OCAwIDgxLjI0NyAwIDc4LjY2NXYtMjUuODhzOTguMDUtMjEuMzQzIDExMy44NzktMjcuMDIxYzE1LjgyOC01LjY4IDIxLjMyLTUuODg0IDM0Ljc5LS45NUMxNjIuMTQyIDI5Ljc0OSAyNDIuNjg4IDQ0LjI3OCAyNTYgNDkuMTU1bC0uMDA2IDI1LjUxMmMuMDAyIDIuNTU1LTMuMDcgNS4zNjEtMTAuMDI0IDguOTg2IiBmaWxsPSIjOTEyNjI2Ii8+PHBhdGggZD0iTTI0NS45NjUgNTcuOTNjLTEzLjY2MSA3LjEyLTg0LjQzMSAzNi4yMi05OS40OTggNDQuMDc0LTE1LjA2NiA3Ljg1NC0yMy40MzYgNy43NzctMzUuMzM4IDIuMDlDOTkuMjI3IDk4LjQwNCAyMy45MTUgNjcuOTggMTAuMzUgNjEuNDk3LTMuMjE3IDU1LjAxNS0zLjUgNTAuNTUgOS44MjUgNDUuMzMxIDIzLjE1MSA0MC4xMTMgOTguMDUgMTAuNzMgMTEzLjg4IDUuMDVjMTUuODI4LTUuNjc5IDIxLjMxOS01Ljg4MyAzNC43ODktLjk0OCAxMy40NzEgNC45MzUgODMuODE5IDMyLjkzNCA5Ny4xMyAzNy44MTEgMTMuMzE2IDQuODc2IDEzLjgyNyA4Ljg5Ny4xNjYgMTYuMDE3IiBmaWxsPSIjQzYzMDJCIi8+PHBhdGggZD0iTTE1OS4yODMgMzIuNzU3bC0yMi4wMSAyLjI4NS00LjkyNyAxMS44NTYtNy45NTgtMTMuMjMtMjUuNDE1LTIuMjg0IDE4Ljk2NC02LjgzOS01LjY5LTEwLjQ5OCAxNy43NTUgNi45NDQgMTYuNzM4LTUuNDgtNC41MjQgMTAuODU1IDE3LjA2NyA2LjM5MU0xMzEuMDMyIDkwLjI3NUw4OS45NTUgNzMuMjM4bDU4Ljg2LTkuMDM1LTE3Ljc4MyAyNi4wNzJNNzQuMDgyIDM5LjM0N2MxNy4zNzUgMCAzMS40NiA1LjQ2IDMxLjQ2IDEyLjE5NCAwIDYuNzM2LTE0LjA4NSAxMi4xOTUtMzEuNDYgMTIuMTk1cy0zMS40Ni01LjQ2LTMxLjQ2LTEyLjE5NWMwLTYuNzM0IDE0LjA4NS0xMi4xOTQgMzEuNDYtMTIuMTk0IiBmaWxsPSIjRkZGIi8+PHBhdGggZD0iTTE4NS4yOTUgMzUuOTk4bDM0LjgzNiAxMy43NjYtMzQuODA2IDEzLjc1My0uMDMtMjcuNTIiIGZpbGw9IiM2MjFCMUMiLz48cGF0aCBkPSJNMTQ2Ljc1NSA1MS4yNDNsMzguNTQtMTUuMjQ1LjAzIDI3LjUxOS0zLjc3OSAxLjQ3OC0zNC43OTEtMTMuNzUyIiBmaWxsPSIjOUEyOTI4Ii8+PC9zdmc+

View File

@@ -0,0 +1 @@
PHN2ZyBoZWlnaHQ9IjI1MDAiIHdpZHRoPSIyNDkwIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAyNTYgMjU2Ij48ZyBmaWxsPSJub25lIj48cGF0aCBkPSJNMCAxOC4zMzhDMCA4LjIxNiA4LjQ3NCAwIDE4LjkyIDBoMjE4LjE2QzI0Ny41MyAwIDI1NiA4LjIxNiAyNTYgMTguMzM4djIxOS4zMjdDMjU2IDI0Ny43OSAyNDcuNTMgMjU2IDIzNy4wOCAyNTZIMTguOTJDOC40NzUgMjU2IDAgMjQ3Ljc5MSAwIDIzNy42NjhWMTguMzM1eiIgZmlsbD0iIzA2OSIvPjxwYXRoIGQ9Ik03Ny43OTYgMjE0LjIzOFY5OC45ODZIMzkuNDg4djExNS4yNTJINzcuOHpNNTguNjUgODMuMjUzYzEzLjM1NiAwIDIxLjY3MS04Ljg1IDIxLjY3MS0xOS45MS0uMjUtMTEuMzEyLTguMzE1LTE5LjkxNS0yMS40MTctMTkuOTE1LTEzLjExMSAwLTIxLjY3NCA4LjYwMy0yMS42NzQgMTkuOTE0IDAgMTEuMDYgOC4zMTIgMTkuOTEgMjEuMTY5IDE5LjkxaC4yNDh6TTk5IDIxNC4yMzhoMzguMzA1di02NC4zNTVjMC0zLjQ0LjI1LTYuODg5IDEuMjYyLTkuMzQ2IDIuNzY4LTYuODg1IDkuMDcxLTE0LjAxMiAxOS42NTYtMTQuMDEyIDEzLjg1OCAwIDE5LjQwNSAxMC41NjggMTkuNDA1IDI2LjA2M3Y2MS42NWgzOC4zMDR2LTY2LjA4MmMwLTM1LjM5OS0xOC44OTYtNTEuODcyLTQ0LjA5OS01MS44NzItMjAuNjYzIDAtMjkuNzM4IDExLjU0OS0zNC43OCAxOS40MTVoLjI1NVY5OC45OUg5OS4wMDJjLjUgMTAuODEyLS4wMDMgMTE1LjI1Mi0uMDAzIDExNS4yNTJ6IiBmaWxsPSIjZmZmIi8+PC9nPjwvc3ZnPg==

View File

@@ -0,0 +1 @@
PHN2ZyB3aWR0aD0iMTYiIGhlaWdodD0iMTciIHZpZXdCb3g9IjAgMCAxNiAxNyIgZmlsbD0iI0ZGQ0E0OCIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KCTxwYXRoIGQ9Ik04LjM3ODQ1IDAuNzkyMzM3TDEwLjQxMzcgNS42MDkzNEwxNS42MjQxIDYuMDU2OTVDMTUuOTg1NCA2LjA4ODE2IDE2LjEzMjUgNi41MzkwNiAxNS44NTgxIDYuNzc2NDJMMTEuOTA2IDEwLjIwMDVMMTMuMDkwMyAxNS4yOTQzQzEzLjE3MjQgMTUuNjQ4MiAxMi43ODg5IDE1LjkyNjcgMTIuNDc4NCAxNS43Mzg2TDguMDAwNjQgMTMuMDM4MUwzLjUyMjg0IDE1LjczODZDMy4yMTE1NyAxNS45MjU5IDIuODI4ODMgMTUuNjQ3NCAyLjkxMDk2IDE1LjI5NDNMNC4wOTUzIDEwLjIwMDVMMC4xNDIzMTkgNi43NzU2Qy0wLjEzMiA2LjUzODI0IDAuMDE0MTkzNyA2LjA4NzM0IDAuMzc2MzkzIDYuMDU2MTNMNS41ODY4IDUuNjA4NTJMNy42MjIwMiAwLjc5MjMzN0M3Ljc2MzI4IDAuNDU3MjQyIDguMjM3MTggMC40NTcyNDIgOC4zNzg0NSAwLjc5MjMzN1oiLz4KPC9zdmc+

View File

@@ -0,0 +1 @@
PHN2ZyB3aWR0aD0iMjgiIGhlaWdodD0iMjkiIHZpZXdCb3g9IjAgMCAyOCAyOSIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPHBhdGggZD0iTTIxLjY1MiAxNi42NDgyQzIwLjM2MzggMTYuNjQ4MiAxOS4xNTggMTYuMTAyMyAxOC4wNjEgMTUuMjEzM0wxOC4zMjggMTMuOTU5MkwxOC4zMzk4IDEzLjkxMzRDMTguNTc4MSAxMi41NzggMTkuMzMyMiAxMC4zMzU1IDIxLjY1MiAxMC4zMzU1QzIzLjM5MTggMTAuMzM1NSAyNC44MDcgMTEuNzUzMyAyNC44MDcgMTMuNDk0NEMyNC44MDE4IDE1LjIzMDQgMjMuMzg2NiAxNi42NDgyIDIxLjY1MiAxNi42NDgyWk0yMS42NTIgNy4xMzQ2MkMxOC42ODgxIDcuMTM0NjIgMTYuMzkwNSA5LjA2Mjk5IDE1LjQ1NzEgMTIuMjMzN0MxNC4wMzAxIDEwLjA5MDcgMTIuOTUxNCA3LjUxODIgMTIuMzE5MSA1LjM1MTU2SDkuMTNWMTMuNjYyQzkuMTMgMTUuMjk5NyA3Ljc5NTk5IDE2LjYzNTEgNi4xNTk1NiAxNi42MzUxQzQuNTIzMTMgMTYuNjM1MSAzLjE5MDQyIDE1LjI5OTcgMy4xOTA0MiAxMy42NjJWNS4zNTE1NkgzLjc0ODE4ZS0wNVYxMy42NjJDLTAuMDExNzQ0OCAxNy4wNjU4IDIuNzU1NzggMTkuODU5NSA2LjE1NDMyIDE5Ljg1OTVDOS41NTI4NiAxOS44NTk1IDEyLjMyMDQgMTcuMDY1OCAxMi4zMjA0IDEzLjY2MlYxMi4yNjc4QzEyLjk0MDkgMTMuNTYyNSAxMy43MDAyIDE0Ljg2OSAxNC42MjMyIDE2LjAzMTZMMTIuNjY4NiAyNS4yMzA5SDE1LjkzNDlMMTcuMzUwMSAxOC41NTgyQzE4LjU5MTIgMTkuMzU0MiAyMC4wMTgyIDE5Ljg1MyAyMS42NTQ2IDE5Ljg1M0MyNS4xNTI2IDE5Ljg1MyAyOCAxNi45ODMzIDI4IDEzLjQ4MTNDMjcuOTk3NCA5Ljk4NTkzIDI1LjE1IDcuMTM0NjIgMjEuNjUyIDcuMTM0NjJaIiBmaWxsPSIjNkZEQTQ0Ii8+Cjwvc3ZnPgo=

View File

@@ -0,0 +1 @@
PHN2ZyB3aWR0aD0iOCIgaGVpZ2h0PSI3IiB2aWV3Qm94PSIwIDAgOCA3IiBvcGFjaXR5PSIwLjQiIGZpbGw9IiMxRTI1MzIiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+Cgk8cGF0aCBkPSJNNS4wMzI5NSA2LjAzMTY1QzQuNDY0MiA2LjYwNjMgMy41MzU4IDYuNjA2MyAyLjk2NzA1IDYuMDMxNjVMMC40MjMzMDEgMy40NjE1NEMtMC40ODQ5ODQgMi41NDM4NSAwLjE2NTA3IDAuOTg1ODQgMS40NTYyNSAwLjk4NTg0TDYuNTQzNzUgMC45ODU4NEM3LjgzNDkzIDAuOTg1ODQgOC40ODQ5OSAyLjU0Mzg1IDcuNTc2NyAzLjQ2MTU0TDUuMDMyOTUgNi4wMzE2NVoiLz4KPC9zdmc+

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@@ -0,0 +1 @@
PHN2ZyB3aWR0aD0iMTUiIGhlaWdodD0iMTUiIHZpZXdCb3g9IjAgMCAxNSAxNSIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KCTxwYXRoIGZpbGw9InVybCgjcGFpbnQwX2xpbmVhcikiIGQ9Ik0xMC4zMjkxIDAuNUg1LjA3OTFDMi42NjMyMyAwLjUgMC43MDQxMDIgMi40NTkxMyAwLjcwNDEwMiA0Ljg3NVYxMC4xMjVDMC43MDQxMDIgMTIuNTQwOSAyLjY2MzIzIDE0LjUgNS4wNzkxIDE0LjVIMTAuMzI5MUMxMi43NDUgMTQuNSAxNC43MDQxIDEyLjU0MDkgMTQuNzA0MSAxMC4xMjVWNC44NzVDMTQuNzA0MSAyLjQ1OTEzIDEyLjc0NSAwLjUgMTAuMzI5MSAwLjVaTTEzLjM5MTYgMTAuMTI1QzEzLjM5MTYgMTEuODEzOCAxMi4wMTc5IDEzLjE4NzUgMTAuMzI5MSAxMy4xODc1SDUuMDc5MUMzLjM5MDM1IDEzLjE4NzUgMi4wMTY2IDExLjgxMzggMi4wMTY2IDEwLjEyNVY0Ljg3NUMyLjAxNjYgMy4xODYyNSAzLjM5MDM1IDEuODEyNSA1LjA3OTEgMS44MTI1SDEwLjMyOTFDMTIuMDE3OSAxLjgxMjUgMTMuMzkxNiAzLjE4NjI1IDEzLjM5MTYgNC44NzVWMTAuMTI1WiIvPgoJPHBhdGggZmlsbD0idXJsKCNwYWludDFfbGluZWFyKSIgZD0iTTcuNzA0MSA0QzUuNzcxMjMgNCA0LjIwNDEgNS41NjcxMiA0LjIwNDEgNy41QzQuMjA0MSA5LjQzMjg3IDUuNzcxMjMgMTEgNy43MDQxIDExQzkuNjM2OTggMTEgMTEuMjA0MSA5LjQzMjg3IDExLjIwNDEgNy41QzExLjIwNDEgNS41NjcxMiA5LjYzNjk4IDQgNy43MDQxIDRaTTcuNzA0MSA5LjY4NzVDNi40OTgzNSA5LjY4NzUgNS41MTY2IDguNzA1NzUgNS41MTY2IDcuNUM1LjUxNjYgNi4yOTMzOCA2LjQ5ODM1IDUuMzEyNSA3LjcwNDEgNS4zMTI1QzguOTA5ODUgNS4zMTI1IDkuODkxNiA2LjI5MzM4IDkuODkxNiA3LjVDOS44OTE2IDguNzA1NzUgOC45MDk4NSA5LjY4NzUgNy43MDQxIDkuNjg3NVoiLz4KCTxwYXRoIGZpbGw9InVybCgjcGFpbnQyX2xpbmVhcikiIGQ9Ik0xMS40NjY3IDQuMjAzNTdDMTEuNzI0MiA0LjIwMzU3IDExLjkzMyAzLjk5NDc3IDExLjkzMyAzLjczNzJDMTEuOTMzIDMuNDc5NjMgMTEuNzI0MiAzLjI3MDgzIDExLjQ2NjcgMy4yNzA4M0MxMS4yMDkxIDMuMjcwODMgMTEuMDAwMyAzLjQ3OTYzIDExLjAwMDMgMy43MzcyQzExLjAwMDMgMy45OTQ3NyAxMS4yMDkxIDQuMjAzNTcgMTEuNDY2NyA0LjIwMzU3WiIvPgoJPGRlZnM+CgkJPGxpbmVhckdyYWRpZW50IGlkPSJwYWludDBfbGluZWFyIiB4MT0iMS42NDQwOSIgeTE9IjEzLjU4NzkiIHgyPSIxNC42MTYiIHkyPSIyLjM1ODYyIiBncmFkaWVudFVuaXRzPSJ1c2VyU3BhY2VPblVzZSI+CgkJCTxzdG9wIHN0b3AtY29sb3I9IiNGRkRENTUiLz4KCQkJPHN0b3Agb2Zmc2V0PSIwLjUiIHN0b3AtY29sb3I9IiNGRjU0M0UiLz4KCQkJPHN0b3Agb2Zmc2V0PSIxIiBzdG9wLWNvbG9yPSIjQzgzN0FCIi8+CgkJPC9saW5lYXJHcmFkaWVudD4KCQk8bGluZWFyR3JhZGllbnQgaWQ9InBhaW50MV9saW5lYXIiIHgxPSIxLjY0NDA5IiB5MT0iMTMuNTg3OSIgeDI9IjE0LjYxNiIgeTI9IjIuMzU4NjIiIGdyYWRpZW50VW5pdHM9InVzZXJTcGFjZU9uVXNlIj4KCQkJPHN0b3Agc3RvcC1jb2xvcj0iI0ZGREQ1NSIvPgoJCQk8c3RvcCBvZmZzZXQ9IjAuNSIgc3RvcC1jb2xvcj0iI0ZGNTQzRSIvPgoJCQk8c3RvcCBvZmZzZXQ9IjEiIHN0b3AtY29sb3I9IiNDODM3QUIiLz4KCQk8L2xpbmVhckdyYWRpZW50PgoJCTxsaW5lYXJHcmFkaWVudCBpZD0icGFpbnQyX2xpbmVhciIgeDE9IjEuNjQ0MDkiIHkxPSIxMy41ODc5IiB4Mj0iMTQuNjE2IiB5Mj0iMi4zNTg2MiIgZ3JhZGllbnRVbml0cz0idXNlclNwYWNlT25Vc2UiPgoJCQk8c3RvcCBzdG9wLWNvbG9yPSIjRkZERDU1Ii8+CgkJCTxzdG9wIG9mZnNldD0iMC41IiBzdG9wLWNvbG9yPSIjRkY1NDNFIi8+CgkJCTxzdG9wIG9mZnNldD0iMSIgc3RvcC1jb2xvcj0iI0M4MzdBQiIvPgoJCTwvbGluZWFyR3JhZGllbnQ+Cgk8L2RlZnM+Cjwvc3ZnPg==

View File

@@ -0,0 +1 @@
PHN2ZyB3aWR0aD0iMjgiIGhlaWdodD0iMjgiIHZpZXdCb3g9IjAgMCAyOCAyOCIgZmlsbD0iIzlFQTJBQSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KCTxnIHRyYW5zZm9ybT0idHJhbnNsYXRlKDEuNSwtLjIpIj4KCQk8cGF0aCBkPSJNMTkuNDI4NiAxOS45NjgyQzE4IDIxLjExMSAxNiAyMS45NjgyIDE0IDIxLjk2ODJDOS40Mjg1OCAyMS45NjgyIDYuMjg1NzEgMTguNTM5NiA2LjI4NTcxIDEzLjk2ODJDNi4yODU3MSA5LjM5Njc2IDkuNDI4NTggNi4yNTM5IDE0IDYuMjUzOUMxNiA2LjI1MzkgMTggNi44MjUzMyAxOS40Mjg2IDguMjUzOUwyMC4yODU3IDkuMTExMDVMMjQuODU3MSA0LjgyNTMzTDIzLjcxNDMgMy45NjgxOUMyMS4xNDI5IDEuNjgyNDcgMTcuNzE0MyAwLjI1MzkwNiAxNCAwLjI1MzkwNkM2LjAwMDAxIDAuMjUzOTA2IDAgNi4yNTM5IDAgMTQuMjUzOUMwIDIyLjI1MzkgNi4wMDAwMSAyOC4yNTM5IDE0IDI4LjI1MzlDMTcuNzE0MyAyOC4yNTM5IDIxLjE0MjkgMjYuODI1MyAyMy43MTQzIDI0LjUzOTZMMjQuODU3MSAyMy42ODI1TDIwLjI4NTcgMTkuMTExTDE5LjQyODYgMTkuOTY4MloiLz4KCQk8cGF0aCBkPSJNMTMuNzE0IDE4LjgyNDVDMTYuMjM4NyAxOC44MjQ1IDE4LjI4NTQgMTYuNzc3OCAxOC4yODU0IDE0LjI1MzFDMTguMjg1NCAxMS43MjgzIDE2LjIzODcgOS42ODE2NCAxMy43MTQgOS42ODE2NEMxMS4xODkzIDkuNjgxNjQgOS4xNDI1OCAxMS43MjgzIDkuMTQyNTggMTQuMjUzMUM5LjE0MjU4IDE2Ljc3NzggMTEuMTg5MyAxOC44MjQ1IDEzLjcxNCAxOC44MjQ1WiIvPgoJPC9nPgo8L3N2Zz4=

View File

@@ -0,0 +1 @@
PHN2ZyB3aWR0aD0iMjgiIGhlaWdodD0iMjgiIHZpZXdCb3g9IjAgMCAyOCAyOCIgZmlsbD0iIzlFQTJBQSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KCTxwYXRoIGQ9Ik0xNC4wMDE2IDAuNjI1MDAxQzYuMjY1NjcgMC42MjE4NzMgMCA2Ljg4NDQxIDAgMTQuNjE0MUMwIDIwLjcyNjQgMy45MTk1NiAyNS45MjIzIDkuMzc4MTcgMjcuODMwNUMxMC4xMTMzIDI4LjAxNSAxMC4wMDA3IDI3LjQ5MjYgMTAuMDAwNyAyNy4xMzZWMjQuNzExN0M1Ljc1NTc4IDI1LjIwOTEgNS41ODM3MyAyMi40IDUuMjk5MDcgMjEuOTMwOEM0LjcyMzQ5IDIwLjk0ODUgMy4zNjI3NSAyMC42OTgzIDMuNzY5NDEgMjAuMjI5MUM0LjczNjAxIDE5LjczMTcgNS43MjEzNyAyMC4zNTQyIDYuODYzMTQgMjIuMDQwM0M3LjY4ODk3IDIzLjI2MzQgOS4yOTk5NyAyMy4wNTY5IDEwLjExNjQgMjIuODUzNkMxMC4yOTQ3IDIyLjExODUgMTAuNjc2MyAyMS40NjE2IDExLjIwMTkgMjAuOTUxN0M2LjgwMzcxIDIwLjE2MzQgNC45NzA2MiAxNy40Nzk0IDQuOTcwNjIgMTQuMjg4N0M0Ljk3MDYyIDEyLjc0MDMgNS40ODA1MSAxMS4zMTcgNi40ODE1MSAxMC4xNjlDNS44NDMzNyA4LjI3NjQ0IDYuNTQwOTUgNi42NTYwNiA2LjYzNDc5IDYuNDE1MTlDOC40NTIyNCA2LjI1MjUzIDEwLjM0MTYgNy43MTY1IDEwLjQ4ODcgNy44MzIyNEMxMS41MjA5IDcuNTUzODQgMTIuNzAwMyA3LjQwNjgxIDE0LjAyMDMgNy40MDY4MUMxNS4zNDY3IDcuNDA2ODEgMTYuNTI5MSA3LjU2MDA5IDE3LjU3MDggNy44NDE2MkMxNy45MjQzIDcuNTcyNiAxOS42NzYgNi4zMTUwOSAyMS4zNjUyIDYuNDY4MzdDMjEuNDU1OSA2LjcwOTI0IDIyLjEzNzkgOC4yOTIwOCAyMS41MzczIDEwLjE1OTZDMjIuNTUwOCAxMS4zMTA3IDIzLjA2NjkgMTIuNzQ2NiAyMy4wNjY5IDE0LjI5ODFDMjMuMDY2OSAxNy40OTUxIDIxLjIyMTMgMjAuMTgyMSAxNi44MTA2IDIwLjk1NzlDMTcuMTg4NCAyMS4zMjk1IDE3LjQ4ODQgMjEuNzcyNSAxNy42OTMgMjIuMjYxM0MxNy44OTc3IDIyLjc1IDE4LjAwMjggMjMuMjc0NyAxOC4wMDI1IDIzLjgwNDVWMjcuMzIzN0MxOC4wMjc1IDI3LjYwNTIgMTguMDAyNSAyNy44ODM2IDE4LjQ3MTcgMjcuODgzNkMyNC4wMTE2IDI2LjAxNjEgMjggMjAuNzgyNyAyOCAxNC42MTcyQzI4IDYuODg0NDEgMjEuNzMxMiAwLjYyNTAwMSAxNC4wMDE2IDAuNjI1MDAxWiIvPgo8L3N2Zz4=

View File

@@ -0,0 +1 @@
PHN2ZyB3aWR0aD0iMjgiIGhlaWdodD0iMjgiIHZpZXdCb3g9IjAgMCAyOCAyOCIgZmlsbD0iIzlFQTJBQSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KCTxnIHRyYW5zZm9ybT0idHJhbnNsYXRlKDAsLS4yKSI+CgkJPHBhdGggZD0iTTI3Ljk5MzUgMjguMjUzNVYyOC4yNTIzSDI4LjAwMDVWMTcuOTgzM0MyOC4wMDA1IDEyLjk1OTcgMjYuOTE5IDkuMDg5ODQgMjEuMDQ2IDkuMDg5ODRDMTguMjIyNiA5LjA4OTg0IDE2LjMyOCAxMC42MzkyIDE1LjU1NDUgMTIuMTA4SDE1LjQ3MjhWOS41NTg4NEg5LjkwNDNWMjguMjUyM0gxNS43MDI2VjE4Ljk5NkMxNS43MDI2IDE2LjU1ODggMTYuMTY0NiAxNC4yMDIyIDE5LjE4MjggMTQuMjAyMkMyMi4xNTY3IDE0LjIwMjIgMjIuMjAxIDE2Ljk4MzUgMjIuMjAxIDE5LjE1MjNWMjguMjUzNUgyNy45OTM1WiIvPgoJCTxwYXRoIGQ9Ik0wLjQ2MTkxNCA5LjU2MDU1SDYuMjY3MjVWMjguMjU0SDAuNDYxOTE0VjkuNTYwNTVaIi8+CgkJPHBhdGggZD0iTTMuMzYyMzMgMC4yNTM5MDZDMS41MDYxNyAwLjI1MzkwNiAwIDEuNzYwMDcgMCAzLjYxNjI0QzAgNS40NzI0MSAxLjUwNjE3IDcuMDEwMDcgMy4zNjIzMyA3LjAxMDA3QzUuMjE4NSA3LjAxMDA3IDYuNzI0NjcgNS40NzI0MSA2LjcyNDY3IDMuNjE2MjRDNi43MjM1IDEuNzYwMDcgNS4yMTczMyAwLjI1MzkwNiAzLjM2MjMzIDAuMjUzOTA2VjAuMjUzOTA2WiIvPgoJPC9nPgo8L3N2Zz4K

View File

@@ -0,0 +1 @@
PHN2ZyB3aWR0aD0iMjgiIGhlaWdodD0iMjgiIHZpZXdCb3g9IjAgMCAyMSAyMSIgZmlsbD0iIzlFQTJBQSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KCTxwYXRoIGQ9Ik04LjI4OTA1IDEyLjkwNDRMNy45NTgyMiAxNy41NTc4QzguNDMxNTYgMTcuNTU3OCA4LjYzNjU1IDE3LjM1NDQgOC44ODIzOSAxNy4xMTAzTDExLjEwMTYgMTQuOTg5NEwxNS42OTk5IDE4LjM1NjlDMTYuNTQzMiAxOC44MjY5IDE3LjEzNzQgMTguNTc5NCAxNy4zNjQ5IDE3LjU4MTFMMjAuMzgzMiAzLjQzNzc2TDIwLjM4NDEgMy40MzY5M0MyMC42NTE2IDIuMTkwMjYgMTkuOTMzMiAxLjcwMjc2IDE5LjExMTYgMi4wMDg1OUwxLjM2OTg5IDguODAxMDlDMC4xNTkwNTQgOS4yNzEwOSAwLjE3NzM4OCA5Ljk0NjA5IDEuMTY0MDUgMTAuMjUxOUw1LjY5OTg5IDExLjY2MjhMMTYuMjM1NyA1LjA3MDI2QzE2LjczMTYgNC43NDE5MyAxNy4xODI0IDQuOTIzNTkgMTYuODExNiA1LjI1MTkzTDguMjg5MDUgMTIuOTA0NFoiLz4KPC9zdmc+

View File

@@ -0,0 +1 @@
PHN2ZyB3aWR0aD0iMjgiIGhlaWdodD0iMjgiIHZpZXdCb3g9IjAgMCAyOCAyOCIgZmlsbD0iIzlFQTJBQSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KCTxwYXRoIHRyYW5zZm9ybT0idHJhbnNsYXRlKC0uNywwKSIgZD0iTTIyLjUwOTQgMTYuNzMyMkMyMS4yMjEyIDE2LjczMjIgMjAuMDE1NSAxNi4xODYyIDE4LjkxODQgMTUuMjk3M0wxOS4xODU1IDE0LjA0MzJMMTkuMTk3MyAxMy45OTc0QzE5LjQzNTUgMTIuNjYyIDIwLjE4OTYgMTAuNDE5NSAyMi41MDk0IDEwLjQxOTVDMjQuMjQ5MiAxMC40MTk1IDI1LjY2NDQgMTEuODM3MyAyNS42NjQ0IDEzLjU3ODRDMjUuNjU5MiAxNS4zMTQ0IDI0LjI0NCAxNi43MzIyIDIyLjUwOTQgMTYuNzMyMlpNMjIuNTA5NCA3LjIxODZDMTkuNTQ1NSA3LjIxODYgMTcuMjQ3OSA5LjE0Njk3IDE2LjMxNDUgMTIuMzE3N0MxNC44ODc2IDEwLjE3NDYgMTMuODA4OCA3LjYwMjE4IDEzLjE3NjUgNS40MzU1NUg5Ljk4NzQzVjEzLjc0NkM5Ljk4NzQzIDE1LjM4MzcgOC42NTM0MSAxNi43MTkxIDcuMDE2OTggMTYuNzE5MUM1LjM4MDU1IDE2LjcxOTEgNC4wNDc4NCAxNS4zODM3IDQuMDQ3ODQgMTMuNzQ2VjUuNDM1NTVIMC44NTc0NTlWMTMuNzQ2QzAuODQ1Njc3IDE3LjE0OTggMy42MTMyMSAxOS45NDM1IDcuMDExNzQgMTkuOTQzNUMxMC40MTAzIDE5Ljk0MzUgMTMuMTc3OCAxNy4xNDk4IDEzLjE3NzggMTMuNzQ2VjEyLjM1MThDMTMuNzk4MyAxMy42NDY1IDE0LjU1NzYgMTQuOTUzIDE1LjQ4MDYgMTYuMTE1NUwxMy41MjYgMjUuMzE0OUgxNi43OTI0TDE4LjIwNzUgMTguNjQyMkMxOS40NDg2IDE5LjQzODIgMjAuODc1NiAxOS45MzY5IDIyLjUxMiAxOS45MzY5QzI2LjAxIDE5LjkzNjkgMjguODU3NCAxNy4wNjczIDI4Ljg1NzQgMTMuNTY1M0MyOC44NTQ4IDEwLjA2OTkgMjYuMDA3NCA3LjIxODYgMjIuNTA5NCA3LjIxODZaIi8+Cjwvc3ZnPg==

View File

@@ -0,0 +1 @@
PHN2ZyB3aWR0aD0iMjgiIGhlaWdodD0iMjgiIHZpZXdCb3g9IjAgMCAyMSAyMSIgZmlsbD0iIzlFQTJBQSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KCTxwYXRoIGQ9Ik0xMC40NDM5IDAuMjUzOTA2SDEwLjQzODlDNC45MjUxNiAwLjI1MzkwNiAwLjQ0MTQwNiA0LjczODkxIDAuNDQxNDA2IDEwLjI1MzlDMC40NDE0MDYgMTIuNDQxNCAxLjE0NjQxIDE0LjQ2ODkgMi4zNDUxNiAxNi4xMTUyTDEuMDk4OTEgMTkuODMwMkw0Ljk0MjY2IDE4LjYwMTRDNi41MjM5MSAxOS42NDg5IDguNDEwMTYgMjAuMjUzOSAxMC40NDM5IDIwLjI1MzlDMTUuOTU3NyAyMC4yNTM5IDIwLjQ0MTQgMTUuNzY3NyAyMC40NDE0IDEwLjI1MzlDMjAuNDQxNCA0Ljc0MDE2IDE1Ljk1NzcgMC4yNTM5MDYgMTAuNDQzOSAwLjI1MzkwNlpNMTYuMjYyNyAxNC4zNzUyQzE2LjAyMTQgMTUuMDU2NCAxNS4wNjM5IDE1LjYyMTQgMTQuMzAwMiAxNS43ODY0QzEzLjc3NzcgMTUuODk3NyAxMy4wOTUyIDE1Ljk4NjQgMTAuNzk3NyAxNS4wMzM5QzcuODU4OTEgMTMuODE2NCA1Ljk2NjQxIDEwLjgzMDIgNS44MTg5MSAxMC42MzY0QzUuNjc3NjYgMTAuNDQyNyA0LjYzMTQxIDkuMDU1MTYgNC42MzE0MSA3LjYyMDE2QzQuNjMxNDEgNi4xODUxNiA1LjM2MDE2IDUuNDg2NDEgNS42NTM5MSA1LjE4NjQxQzUuODk1MTYgNC45NDAxNiA2LjI5MzkxIDQuODI3NjYgNi42NzY0MSA0LjgyNzY2QzYuODAwMTYgNC44Mjc2NiA2LjkxMTQxIDQuODMzOTEgNy4wMTE0MSA0LjgzODkxQzcuMzA1MTYgNC44NTE0MSA3LjQ1MjY2IDQuODY4OTEgNy42NDY0MSA1LjMzMjY2QzcuODg3NjYgNS45MTM5MSA4LjQ3NTE2IDcuMzQ4OTEgOC41NDUxNiA3LjQ5NjQxQzguNjE2NDEgNy42NDM5MSA4LjY4NzY2IDcuODQzOTEgOC41ODc2NiA4LjAzNzY2QzguNDkzOTEgOC4yMzc2NiA4LjQxMTQxIDguMzI2NDEgOC4yNjM5MSA4LjQ5NjQxQzguMTE2NDEgOC42NjY0MSA3Ljk3NjQxIDguNzk2NDEgNy44Mjg5MSA4Ljk3ODkxQzcuNjkzOTEgOS4xMzc2NiA3LjU0MTQxIDkuMzA3NjYgNy43MTE0MSA5LjYwMTQxQzcuODgxNDEgOS44ODg5MSA4LjQ2ODkxIDEwLjg0NzcgOS4zMzM5MSAxMS42MTc3QzEwLjQ1MDIgMTIuNjExNCAxMS4zNTUyIDEyLjkyODkgMTEuNjc4OSAxMy4wNjM5QzExLjkyMDIgMTMuMTYzOSAxMi4yMDc3IDEzLjE0MDIgMTIuMzgzOSAxMi45NTI3QzEyLjYwNzcgMTIuNzExNCAxMi44ODM5IDEyLjMxMTQgMTMuMTY1MiAxMS45MTc3QzEzLjM2NTIgMTEuNjM1MiAxMy42MTc3IDExLjYwMDIgMTMuODgyNyAxMS43MDAyQzE0LjE1MjcgMTEuNzkzOSAxNS41ODE0IDEyLjUwMDIgMTUuODc1MiAxMi42NDY0QzE2LjE2ODkgMTIuNzkzOSAxNi4zNjI3IDEyLjg2MzkgMTYuNDMzOSAxMi45ODc3QzE2LjUwMzkgMTMuMTExNCAxNi41MDM5IDEzLjY5MjcgMTYuMjYyNyAxNC4zNzUyWiIvPgo8L3N2Zz4=

View File

@@ -0,0 +1 @@
PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz48IS0tIFVwbG9hZGVkIHRvOiBTVkcgUmVwbywgd3d3LnN2Z3JlcG8uY29tLCBHZW5lcmF0b3I6IFNWRyBSZXBvIE1peGVyIFRvb2xzIC0tPgo8c3ZnIHdpZHRoPSI4MDBweCIgaGVpZ2h0PSI4MDBweCIgdmlld0JveD0iMCAwIDMyIDMyIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjx0aXRsZT5maWxlX3R5cGVfdHlwZXNjcmlwdDwvdGl0bGU+PHBhdGggZD0iTTIzLjgyNyw4LjI0M0E0LjQyNCw0LjQyNCwwLDAsMSwyNi4wNSw5LjUyNGE1Ljg1Myw1Ljg1MywwLDAsMSwuODUyLDEuMTQzYy4wMTEuMDQ1LTEuNTM0LDEuMDgzLTIuNDcxLDEuNjYyLS4wMzQuMDIzLS4xNjktLjEyNC0uMzIyLS4zNWEyLjAxNCwyLjAxNCwwLDAsMC0xLjY3LTFjLTEuMDc3LS4wNzQtMS43NzEuNDktMS43NjYsMS40MzNhMS4zLDEuMywwLDAsMCwuMTUzLjY2NmMuMjM3LjQ5LjY3Ny43ODQsMi4wNTksMS4zODMsMi41NDQsMS4wOTUsMy42MzYsMS44MTcsNC4zMSwyLjg0M2E1LjE1OCw1LjE1OCwwLDAsMSwuNDE2LDQuMzMzLDQuNzY0LDQuNzY0LDAsMCwxLTMuOTMyLDIuODE1LDEwLjksMTAuOSwwLDAsMS0yLjcwOC0uMDI4LDYuNTMxLDYuNTMxLDAsMCwxLTMuNjE2LTEuODg0LDYuMjc4LDYuMjc4LDAsMCwxLS45MjYtMS4zNzEsMi42NTUsMi42NTUsMCwwLDEsLjMyNy0uMjA4Yy4xNTgtLjA5Ljc1Ni0uNDM0LDEuMzItLjc2MUwxOS4xLDE5LjZsLjIxNC4zMTJhNC43NzEsNC43NzEsMCwwLDAsMS4zNSwxLjI5MiwzLjMsMy4zLDAsMCwwLDMuNDU4LS4xNzUsMS41NDUsMS41NDUsMCwwLDAsLjItMS45NzRjLS4yNzYtLjM5NS0uODQtLjcyNy0yLjQ0My0xLjQyMmE4LjgsOC44LDAsMCwxLTMuMzQ5LTIuMDU1LDQuNjg3LDQuNjg3LDAsMCwxLS45NzYtMS43NzcsNy4xMTYsNy4xMTYsMCwwLDEtLjA2Mi0yLjI2OCw0LjMzMiw0LjMzMiwwLDAsMSwzLjY0NC0zLjM3NEE5LDksMCwwLDEsMjMuODI3LDguMjQzWk0xNS40ODQsOS43MjZsLjAxMSwxLjQ1NGgtNC42M1YyNC4zMjhINy42VjExLjE4M0gyLjk3VjkuNzU1QTEzLjk4NiwxMy45ODYsMCwwLDEsMy4wMSw4LjI4OWMuMDE3LS4wMjMsMi44MzItLjAzNCw2LjI0NS0uMDI4bDYuMjExLjAxN1oiIHN0eWxlPSJmaWxsOiMwMDdhY2MiLz48L3N2Zz4=

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@@ -0,0 +1 @@
PHN2ZyB3aWR0aD0iMjciIGhlaWdodD0iMjQiIHZpZXdCb3g9IjAgMCAyNyAyNCIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPGcgY2xpcC1wYXRoPSJ1cmwoI2NsaXAwKSI+CjxwYXRoIGQ9Ik0yMS42ODgyIDAuNzc4MzJIMjYuODg3N0wxMy44ODg5IDIzLjIwMTJMMC44OTAxMzcgMC43NzgzMkgxMC44MzQyTDEzLjg4ODkgNS45Nzc4M0wxNi44Nzg2IDAuNzc4MzJIMjEuNjg4MloiIGZpbGw9IiMzZWIyN2YiLz4KPHBhdGggZD0iTTAuODkwMTM3IDAuNzc4MzJMMTMuODg4OSAyMy4yMDEyTDI2Ljg4NzcgMC43NzgzMkgyMS42ODgyTDEzLjg4ODkgMTQuMjMyMUw2LjAyNDY1IDAuNzc4MzJIMC44OTAxMzdaIiBmaWxsPSIjM2ViMjdmIi8+CjxwYXRoIGQ9Ik02LjAyNDQxIDAuNzc4MzJMMTMuODg4NyAxNC4yOTdMMjEuNjg4IDAuNzc4MzJIMTYuODc4NUwxMy44ODg3IDUuOTc3ODNMMTAuODM0IDAuNzc4MzJINi4wMjQ0MVoiIGZpbGw9IiMzMjQ3NWIiLz4KPC9nPgo8ZGVmcz4KPGNsaXBQYXRoIGlkPSJjbGlwMCI+CjxyZWN0IHdpZHRoPSIyNiIgaGVpZ2h0PSIyMi40NDMyIiBmaWxsPSJ3aGl0ZSIgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoMC44OTAxMzcgMC43NzgzMikiLz4KPC9jbGlwUGF0aD4KPC9kZWZzPgo8L3N2Zz4K

View File

@@ -0,0 +1 @@
PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iaXNvLTg4NTktMSI/Pg0KPCEtLSBVcGxvYWRlZCB0bzogU1ZHIFJlcG8sIHd3dy5zdmdyZXBvLmNvbSwgR2VuZXJhdG9yOiBTVkcgUmVwbyBNaXhlciBUb29scyAtLT4NCjwhRE9DVFlQRSBzdmcgUFVCTElDICItLy9XM0MvL0RURCBTVkcgMS4xLy9FTiIgImh0dHA6Ly93d3cudzMub3JnL0dyYXBoaWNzL1NWRy8xLjEvRFREL3N2ZzExLmR0ZCI+DQo8c3ZnIGZpbGw9IiMwMDAwMDAiIHZlcnNpb249IjEuMSIgaWQ9IkNhcGFfMSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayIgDQoJIHdpZHRoPSI4MDBweCIgaGVpZ2h0PSI4MDBweCIgdmlld0JveD0iMCAwIDk2LjI0IDk2LjI0IiB4bWw6c3BhY2U9InByZXNlcnZlIg0KCT4NCjxnPg0KCTxwYXRoIGQ9Ik00OC4xMjIsMEMyMS41ODcsMCwwLjAwMSwyMS41ODUsMC4wMDEsNDguMTE4YzAsMjYuNTM1LDIxLjU4Nyw0OC4xMjIsNDguMTIsNDguMTIyYzI2LjUzMiwwLDQ4LjExNy0yMS41ODcsNDguMTE3LTQ4LjEyMg0KCQlDOTYuMjM5LDIxLjU4Niw3NC42NTQsMCw0OC4xMjIsMHogTTQuODU3LDQ4LjExOGMwLTYuMjcxLDEuMzQ1LTEyLjIyNywzLjc0Ni0xNy42MDZsMjAuNjM4LDU2LjU0NA0KCQlDMTQuODEsODAuMDQyLDQuODU3LDY1LjI0Myw0Ljg1Nyw0OC4xMTh6IE00OC4xMjIsOTEuMzg1Yy00LjI0NywwLTguMzQ2LTAuNjIzLTEyLjIyMi0xLjc2M0w0OC44OCw1MS45MDNsMTMuMzAxLDM2LjQzMw0KCQljMC4wODYsMC4yMTUsMC4xOTEsMC40MTEsMC4zMDgsMC41OTZDNTcuOTkyLDkwLjUxNCw1My4xNiw5MS4zODUsNDguMTIyLDkxLjM4NXogTTU0LjA4MywyNy44MzQNCgkJYzIuNjA0LTAuMTM3LDQuOTUzLTAuNDEyLDQuOTUzLTAuNDEyYzIuMzMtMC4yNzYsMi4wNTctMy43MDEtMC4yNzctMy41NjRjMCwwLTcuMDA3LDAuNTQ5LTExLjUzMiwwLjU0OQ0KCQljLTQuMjUsMC0xMS4zOTYtMC41NDktMTEuMzk2LTAuNTQ5Yy0yLjMzMi0wLjEzNy0yLjYwNCwzLjQyNy0wLjI3MywzLjU2NGMwLDAsMi4yMDgsMC4yNzUsNC41MzcsMC40MTJsNi43NCwxOC40NjlsLTkuNDY4LDI4LjM5NQ0KCQlMMjEuNjE1LDI3LjgzNWMyLjYwOC0wLjEzNiw0Ljk1Mi0wLjQxMiw0Ljk1Mi0wLjQxMmMyLjMzLTAuMjc1LDIuMDU1LTMuNzAyLTAuMjc4LTMuNTYyYzAsMC03LjAwNCwwLjU0OS0xMS41MywwLjU0OQ0KCQljLTAuODEzLDAtMS43Ny0wLjAyMS0yLjc4NC0wLjA1MkMxOS43MDksMTIuNjExLDMzLjAwOCw0Ljg1Niw0OC4xMjIsNC44NTZjMTEuMjY1LDAsMjEuNTE5LDQuMzA2LDI5LjIxNSwxMS4zNTcNCgkJYy0wLjE4Ny0wLjAxLTAuMzY4LTAuMDM1LTAuNTYyLTAuMDM1Yy00LjI0OCwwLTcuMjY0LDMuNzAyLTcuMjY0LDcuNjc5YzAsMy41NjQsMi4wNTUsNi41ODIsNC4yNDgsMTAuMTQ2DQoJCWMxLjY0NywyLjg4MiwzLjU2Nyw2LjU4NSwzLjU2NywxMS45MzJjMCwzLjcwNC0xLjQyMiw4LTMuMjkzLDEzLjk4NmwtNC4zMTUsMTQuNDIxTDU0LjA4MywyNy44MzR6IE02OS44NzEsODUuNTE2bDEzLjIxNS0zOC4yMDgNCgkJYzIuNDcxLTYuMTcxLDMuMjktMTEuMTA2LDMuMjktMTUuNDk3YzAtMS41OTEtMC4xMDQtMy4wNy0wLjI5Mi00LjQ0OWMzLjM4LDYuMTYzLDUuMzAzLDEzLjIzNiw1LjMwMSwyMC43NTgNCgkJQzkxLjM4NCw2NC4wOCw4Mi43MzIsNzguMDE2LDY5Ljg3MSw4NS41MTZ6Ii8+DQo8L2c+DQo8L3N2Zz4=

File diff suppressed because one or more lines are too long

1237
public/index.html Normal file

File diff suppressed because it is too large Load Diff

36
src/App.js Normal file
View File

@@ -0,0 +1,36 @@
import React, { useState } from 'react';
import Header from './components/Header';
import Hero from './components/Hero';
import Stats from './components/Stats';
import Services from './components/Services';
import CaseStudies from './components/CaseStudies';
import Testimonials from './components/Testimonials';
import Team from './components/Team';
import Contact from './components/Contact';
import Footer from './components/Footer';
import CookieConsent from './components/CookieConsent';
function App() {
const [showCookieConsent, setShowCookieConsent] = useState(true);
return (
<div className="App">
<Header />
<main>
<Hero />
<Stats />
<Services />
<CaseStudies />
<Testimonials />
<Team />
<Contact />
</main>
<Footer />
{showCookieConsent && (
<CookieConsent onClose={() => setShowCookieConsent(false)} />
)}
</div>
);
}
export default App;

View File

@@ -0,0 +1,112 @@
import React from 'react';
import { motion, useReducedMotion } from 'framer-motion';
const fadeUpPreset = (delay = 0, duration = 1.2) => ({
initial: { opacity: 0, y: 20 },
whileInView: { opacity: 1, y: 0 },
viewport: { once: true, amount: 0.2 },
transition: { delay, duration, ease: "easeOut" }
});
const CaseStudies = () => {
const shouldReduceMotion = useReducedMotion();
if (shouldReduceMotion) {
return (
<section className="section-padding bg-white">
<div className="container-custom">
<div className="text-center mb-16">
<h2 className="text-3xl lg:text-4xl font-bold text-gray-900 mb-4">
Case Studies
</h2>
</div>
<div className="bg-gradient-to-r from-blue-400 to-blue-600 rounded-2xl p-8 lg:p-12 text-white">
<div className="grid lg:grid-cols-2 gap-8 items-center">
<div>
<h3 className="text-2xl lg:text-3xl font-bold mb-4">Dios</h3>
<p className="text-blue-100 mb-6">
A comprehensive platform for managing digital assets and workflows with advanced automation capabilities.
</p>
<div className="flex flex-wrap gap-4 mb-6">
<span className="bg-white/20 px-3 py-1 rounded-full text-sm">React</span>
<span className="bg-white/20 px-3 py-1 rounded-full text-sm">Node.js</span>
<span className="bg-white/20 px-3 py-1 rounded-full text-sm">MongoDB</span>
</div>
<div className="flex items-center space-x-6">
<div>
<div className="text-2xl font-bold">$2,500</div>
<div className="text-blue-200 text-sm">Project Value</div>
</div>
<div>
<div className="text-2xl font-bold">12w</div>
<div className="text-blue-200 text-sm">Timeline</div>
</div>
</div>
</div>
<div className="bg-white/10 rounded-lg p-6 backdrop-blur-sm">
<div className="w-full h-48 bg-white/20 rounded-lg flex items-center justify-center">
<div className="text-white/60">Project Preview</div>
</div>
</div>
</div>
</div>
</div>
</section>
);
}
return (
<motion.section
{...fadeUpPreset(0.1, 0.8)}
className="section-padding bg-white"
>
<div className="container-custom">
<motion.div
{...fadeUpPreset(0.2, 0.8)}
className="text-center mb-16"
>
<h2 className="text-3xl lg:text-4xl font-bold text-gray-900 mb-4">
Case Studies
</h2>
</motion.div>
<motion.div
{...fadeUpPreset(0.3, 0.8)}
className="bg-gradient-to-r from-blue-400 to-blue-600 rounded-2xl p-8 lg:p-12 text-white"
>
<div className="grid lg:grid-cols-2 gap-8 items-center">
<div>
<h3 className="text-2xl lg:text-3xl font-bold mb-4">Dios</h3>
<p className="text-blue-100 mb-6">
A comprehensive platform for managing digital assets and workflows with advanced automation capabilities.
</p>
<div className="flex flex-wrap gap-4 mb-6">
<span className="bg-white/20 px-3 py-1 rounded-full text-sm">React</span>
<span className="bg-white/20 px-3 py-1 rounded-full text-sm">Node.js</span>
<span className="bg-white/20 px-3 py-1 rounded-full text-sm">MongoDB</span>
</div>
<div className="flex items-center space-x-6">
<div>
<div className="text-2xl font-bold">$2,500</div>
<div className="text-blue-200 text-sm">Project Value</div>
</div>
<div>
<div className="text-2xl font-bold">12w</div>
<div className="text-blue-200 text-sm">Timeline</div>
</div>
</div>
</div>
<div className="bg-white/10 rounded-lg p-6 backdrop-blur-sm">
<div className="w-full h-48 bg-white/20 rounded-lg flex items-center justify-center">
<div className="text-white/60">Project Preview</div>
</div>
</div>
</div>
</motion.div>
</div>
</motion.section>
);
};
export default CaseStudies;

91
src/components/Contact.js Normal file
View File

@@ -0,0 +1,91 @@
import React from 'react';
import { motion, useReducedMotion } from 'framer-motion';
import { Mail } from 'lucide-react';
const fadeUpPreset = (delay = 0, duration = 1.2) => ({
initial: { opacity: 0, y: 20 },
whileInView: { opacity: 1, y: 0 },
viewport: { once: true, amount: 0.2 },
transition: { delay, duration, ease: "easeOut" }
});
const Contact = () => {
const shouldReduceMotion = useReducedMotion();
if (shouldReduceMotion) {
return (
<section className="section-padding bg-gray-50">
<div className="container-custom">
<div className="text-center mb-16">
<h2 className="text-3xl lg:text-4xl font-bold text-gray-900 mb-4">
How can we help? Let's talk
</h2>
<p className="text-gray-600 max-w-2xl mx-auto">
Ready to start your next project? Get in touch with our team to discuss your requirements and get a custom quote.
</p>
</div>
<div className="max-w-2xl mx-auto">
<div className="bg-white rounded-2xl p-8 shadow-sm">
<div className="flex items-center justify-center space-x-2 mb-6">
<Mail className="w-5 h-5 text-primary-600" />
<span className="text-gray-600">Feel free to drop us a note:</span>
</div>
<div className="text-center">
<a
href="mailto:contact@sargas.io"
className="text-primary-600 hover:text-primary-700 font-medium text-lg"
>
contact@sargas.io
</a>
</div>
</div>
</div>
</div>
</section>
);
}
return (
<motion.section
{...fadeUpPreset(0.1, 0.8)}
className="section-padding bg-gray-50"
>
<div className="container-custom">
<motion.div
{...fadeUpPreset(0.2, 0.8)}
className="text-center mb-16"
>
<h2 className="text-3xl lg:text-4xl font-bold text-gray-900 mb-4">
How can we help? Let's talk
</h2>
<p className="text-gray-600 max-w-2xl mx-auto">
Ready to start your next project? Get in touch with our team to discuss your requirements and get a custom quote.
</p>
</motion.div>
<motion.div
{...fadeUpPreset(0.3, 0.8)}
className="max-w-2xl mx-auto"
>
<div className="bg-white rounded-2xl p-8 shadow-sm">
<div className="flex items-center justify-center space-x-2 mb-6">
<Mail className="w-5 h-5 text-primary-600" />
<span className="text-gray-600">Feel free to drop us a note:</span>
</div>
<div className="text-center">
<a
href="mailto:contact@sargas.io"
className="text-primary-600 hover:text-primary-700 font-medium text-lg"
>
contact@sargas.io
</a>
</div>
</div>
</motion.div>
</div>
</motion.section>
);
};
export default Contact;

View File

@@ -0,0 +1,56 @@
import React from 'react';
import { X } from 'lucide-react';
const CookieConsent = ({ onClose }) => {
const handleAccept = () => {
// Handle cookie acceptance logic here
onClose();
};
const handleDeny = () => {
// Handle cookie denial logic here
onClose();
};
return (
<div className="fixed inset-0 bg-black/50 flex items-center justify-center p-4 z-50">
<div className="bg-white rounded-2xl p-8 max-w-md w-full relative">
<button
onClick={onClose}
className="absolute top-4 right-4 text-gray-400 hover:text-gray-600"
>
<X className="w-5 h-5" />
</button>
<h3 className="text-xl font-semibold text-gray-900 mb-4">
This site uses cookies
</h3>
<p className="text-gray-600 mb-4">
We and selected third parties use cookies (or similar technologies) for technical purposes, to enhance and analyze site usage, to support our marketing efforts, and for other purposes described below.
</p>
<p className="text-gray-600 mb-6">
By clicking "Accept all", you agree to the storing of cookies on your device for these purposes.
</p>
<div className="flex flex-col sm:flex-row gap-3">
<button
onClick={handleDeny}
className="btn-outline flex-1"
>
Deny
</button>
<button
onClick={handleAccept}
className="btn-secondary flex-1"
>
Accept all
</button>
</div>
</div>
</div>
);
};
export default CookieConsent;

70
src/components/Footer.js Normal file
View File

@@ -0,0 +1,70 @@
import React from 'react';
import { Github, Linkedin, ExternalLink } from 'lucide-react';
const Footer = () => {
return (
<footer className="bg-white border-t border-gray-200">
<div className="container-custom py-12">
<div className="grid md:grid-cols-2 lg:grid-cols-4 gap-8">
{/* Logo & Description */}
<div className="lg:col-span-2">
<div className="flex items-center space-x-2 mb-4">
<div className="w-8 h-8 bg-gradient-to-br from-blue-500 to-purple-600 rounded-lg flex items-center justify-center">
<span className="text-white font-bold text-sm">S</span>
</div>
<span className="text-xl font-bold text-gray-900">Sargas</span>
</div>
<p className="text-gray-600 mb-6 max-w-md">
AI-powered web and mobile development solutions delivered in 12 weeks. Transform your ideas into reality with our expert team.
</p>
<div className="flex space-x-4">
<a href="#" className="text-gray-400 hover:text-gray-600 transition-colors">
<Github className="w-5 h-5" />
</a>
<a href="#" className="text-gray-400 hover:text-gray-600 transition-colors">
<Linkedin className="w-5 h-5" />
</a>
<a href="#" className="text-gray-400 hover:text-gray-600 transition-colors">
<ExternalLink className="w-5 h-5" />
</a>
</div>
</div>
{/* Menu */}
<div>
<h3 className="font-semibold text-gray-900 mb-4">Menu</h3>
<ul className="space-y-3">
<li><a href="#case-studies" className="text-gray-600 hover:text-gray-900 transition-colors">Case Studies</a></li>
<li><a href="#blog" className="text-gray-600 hover:text-gray-900 transition-colors">Blog</a></li>
<li><a href="#contacts" className="text-gray-600 hover:text-gray-900 transition-colors">Contacts</a></li>
<li><a href="#about" className="text-gray-600 hover:text-gray-900 transition-colors">About Us</a></li>
<li><a href="#faq" className="text-gray-600 hover:text-gray-900 transition-colors">FAQ</a></li>
</ul>
</div>
{/* Services */}
<div>
<h3 className="font-semibold text-gray-900 mb-4">Services</h3>
<ul className="space-y-3">
<li><a href="#web-development" className="text-gray-600 hover:text-gray-900 transition-colors">Web Development</a></li>
<li><a href="#mobile-development" className="text-gray-600 hover:text-gray-900 transition-colors">Mobile Development</a></li>
<li><a href="#support" className="text-gray-600 hover:text-gray-900 transition-colors">Support and Maintenance</a></li>
</ul>
</div>
</div>
<div className="border-t border-gray-200 mt-12 pt-8 flex flex-col md:flex-row justify-between items-center">
<div className="text-gray-500 text-sm mb-4 md:mb-0">
© 2024 Sargas. All rights reserved.
</div>
<div className="flex space-x-6 text-sm">
<a href="#privacy" className="text-gray-500 hover:text-gray-700 transition-colors">Privacy Policy</a>
<a href="#terms" className="text-gray-500 hover:text-gray-700 transition-colors">Terms of Use</a>
</div>
</div>
</div>
</footer>
);
};
export default Footer;

101
src/components/Header.js Normal file
View File

@@ -0,0 +1,101 @@
import React, { useState } from 'react';
import { Menu, X, ChevronDown, Star } from 'lucide-react';
const Header = () => {
const [isMenuOpen, setIsMenuOpen] = useState(false);
const [isServicesOpen, setIsServicesOpen] = useState(false);
return (
<header className="fixed top-0 left-0 right-0 bg-white/95 backdrop-blur-sm border-b border-gray-200 z-50">
<div className="container-custom">
<div className="flex items-center justify-between h-16">
{/* Logo */}
<div className="flex items-center">
<div className="flex items-center space-x-2">
<div className="w-8 h-8 bg-gradient-to-br from-blue-500 to-purple-600 rounded-lg flex items-center justify-center">
<span className="text-white font-bold text-sm">S</span>
</div>
<span className="text-xl font-bold text-gray-900">Sargas</span>
</div>
</div>
{/* Desktop Navigation */}
<nav className="hidden lg:flex items-center space-x-8">
<div className="relative">
<button
className="flex items-center space-x-1 text-gray-700 hover:text-gray-900 transition-colors"
onMouseEnter={() => setIsServicesOpen(true)}
onMouseLeave={() => setIsServicesOpen(false)}
>
<span>Services</span>
<ChevronDown className="w-4 h-4" />
</button>
{isServicesOpen && (
<div
className="absolute top-full left-0 mt-2 w-64 bg-white rounded-lg shadow-lg border border-gray-200 py-2"
onMouseEnter={() => setIsServicesOpen(true)}
onMouseLeave={() => setIsServicesOpen(false)}
>
<a href="#web-development" className="block px-4 py-2 text-gray-700 hover:bg-gray-50">Web Development</a>
<a href="#mobile-development" className="block px-4 py-2 text-gray-700 hover:bg-gray-50">Mobile Development</a>
<a href="#support" className="block px-4 py-2 text-gray-700 hover:bg-gray-50">Support and Maintenance</a>
</div>
)}
</div>
<a href="#portfolio" className="text-gray-700 hover:text-gray-900 transition-colors">Portfolio</a>
<a href="#about" className="text-gray-700 hover:text-gray-900 transition-colors">About</a>
<a href="#contacts" className="text-gray-700 hover:text-gray-900 transition-colors">Contacts</a>
</nav>
{/* Clutch Rating & CTA */}
<div className="hidden lg:flex items-center space-x-4">
<div className="flex items-center space-x-2 bg-gray-900 text-white px-3 py-2 rounded-lg">
<div className="w-6 h-6 bg-orange-500 rounded flex items-center justify-center">
<span className="text-white font-bold text-xs">C</span>
</div>
<div className="flex items-center space-x-1">
<span className="font-semibold">4.9</span>
<div className="flex">
{[...Array(5)].map((_, i) => (
<Star key={i} className="w-3 h-3 fill-yellow-400 text-yellow-400" />
))}
</div>
</div>
</div>
<span className="text-xs text-gray-500">Based on 6 Clutch reviews</span>
<button className="btn-primary">
Book a Call
</button>
</div>
{/* Mobile Menu Button */}
<button
className="lg:hidden p-2"
onClick={() => setIsMenuOpen(!isMenuOpen)}
>
{isMenuOpen ? <X className="w-6 h-6" /> : <Menu className="w-6 h-6" />}
</button>
</div>
</div>
{/* Mobile Menu */}
{isMenuOpen && (
<div className="lg:hidden bg-white border-t border-gray-200">
<div className="container-custom py-4">
<div className="flex flex-col space-y-4">
<a href="#services" className="text-gray-700 hover:text-gray-900">Services</a>
<a href="#portfolio" className="text-gray-700 hover:text-gray-900">Portfolio</a>
<a href="#about" className="text-gray-700 hover:text-gray-900">About</a>
<a href="#contacts" className="text-gray-700 hover:text-gray-900">Contacts</a>
<button className="btn-primary w-full mt-4">
Book a Call
</button>
</div>
</div>
</div>
)}
</header>
);
};
export default Header;

169
src/components/Hero.js Normal file
View File

@@ -0,0 +1,169 @@
import React from 'react';
import { motion, useReducedMotion } from 'framer-motion';
const fadeUpPreset = (delay = 0, duration = 1.2) => ({
initial: { opacity: 0, y: 20 },
whileInView: { opacity: 1, y: 0 },
viewport: { once: true, amount: 0.2 },
transition: { delay, duration, ease: "easeOut" }
});
const Hero = () => {
const shouldReduceMotion = useReducedMotion();
if (shouldReduceMotion) {
return (
<section className="pt-24 pb-16 bg-gradient-to-br from-gray-50 to-gray-100">
<div className="container-custom">
<div className="max-w-4xl mx-auto text-center">
<h1 className="text-4xl lg:text-6xl font-bold mb-6">
<span className="text-gradient">AI-powered</span>
<br />
<span className="text-gray-900">web and mobile</span>
<br />
<span className="text-gradient">in 12 weeks</span>
</h1>
<div className="flex items-center justify-center space-x-2 mb-8">
<span className="text-gray-600">Powered by</span>
<div className="flex items-center space-x-1">
<div className="w-6 h-6 bg-red-500 rounded-full flex items-center justify-center">
<span className="text-white text-xs font-bold">n</span>
</div>
<span className="font-semibold text-gray-900">n8n</span>
</div>
</div>
<div className="flex flex-col sm:flex-row gap-4 justify-center mb-12">
<button className="btn-primary">
Start Discovery
</button>
<button className="btn-secondary flex items-center justify-center space-x-2">
<span>Portfolio Showcase</span>
</button>
</div>
<div className="flex flex-wrap justify-center gap-4 mb-16">
{[
{ name: 'Telegram', color: 'bg-blue-500' },
{ name: 'Instagram', color: 'bg-pink-500' },
{ name: 'Whatsapp', color: 'bg-green-500' }
].map((platform, index) => (
<div key={platform.name} className="tech-badge">
<div className={`w-4 h-4 ${platform.color} rounded-full`}></div>
<span>{platform.name}</span>
</div>
))}
</div>
<div className="grid grid-cols-2 sm:grid-cols-3 lg:grid-cols-6 gap-4">
{[
{ name: '#nestjs', color: 'text-red-500' },
{ name: '#mysql', color: 'text-blue-500' },
{ name: '#mongodb', color: 'text-green-500' },
{ name: '#nginx', color: 'text-green-600' },
{ name: '#redis', color: 'text-red-600' },
{ name: '#typescript', color: 'text-blue-600' }
].map((tech, index) => (
<div key={tech.name} className="tech-badge">
<span className={`font-mono text-sm ${tech.color}`}>{tech.name}</span>
</div>
))}
</div>
</div>
</div>
</section>
);
}
return (
<motion.section
{...fadeUpPreset(0.1, 0.8)}
className="pt-24 pb-16 bg-gradient-to-br from-gray-50 to-gray-100"
>
<div className="container-custom">
<div className="max-w-4xl mx-auto text-center">
<motion.h1
{...fadeUpPreset(0.2, 0.8)}
className="text-4xl lg:text-6xl font-bold mb-6"
>
<span className="text-gradient">AI-powered</span>
<br />
<span className="text-gray-900">web and mobile</span>
<br />
<span className="text-gradient">in 12 weeks</span>
</motion.h1>
<motion.div
{...fadeUpPreset(0.3, 0.8)}
className="flex items-center justify-center space-x-2 mb-8"
>
<span className="text-gray-600">Powered by</span>
<div className="flex items-center space-x-1">
<div className="w-6 h-6 bg-red-500 rounded-full flex items-center justify-center">
<span className="text-white text-xs font-bold">n</span>
</div>
<span className="font-semibold text-gray-900">n8n</span>
</div>
</motion.div>
<motion.div
{...fadeUpPreset(0.4, 0.8)}
className="flex flex-col sm:flex-row gap-4 justify-center mb-12"
>
<button className="btn-primary">
Start Discovery
</button>
<button className="btn-secondary flex items-center justify-center space-x-2">
<span>Portfolio Showcase</span>
</button>
</motion.div>
<motion.div
{...fadeUpPreset(0.5, 0.8)}
className="flex flex-wrap justify-center gap-4 mb-16"
>
{[
{ name: 'Telegram', color: 'bg-blue-500' },
{ name: 'Instagram', color: 'bg-pink-500' },
{ name: 'Whatsapp', color: 'bg-green-500' }
].map((platform, index) => (
<motion.div
key={platform.name}
{...fadeUpPreset(0.6 + index * 0.1, 0.6)}
className="tech-badge"
>
<div className={`w-4 h-4 ${platform.color} rounded-full`}></div>
<span>{platform.name}</span>
</motion.div>
))}
</motion.div>
<motion.div
{...fadeUpPreset(0.7, 0.8)}
className="grid grid-cols-2 sm:grid-cols-3 lg:grid-cols-6 gap-4"
>
{[
{ name: '#nestjs', color: 'text-red-500' },
{ name: '#mysql', color: 'text-blue-500' },
{ name: '#mongodb', color: 'text-green-500' },
{ name: '#nginx', color: 'text-green-600' },
{ name: '#redis', color: 'text-red-600' },
{ name: '#typescript', color: 'text-blue-600' }
].map((tech, index) => (
<motion.div
key={tech.name}
{...fadeUpPreset(0.8 + index * 0.05, 0.6)}
className="tech-badge"
>
<span className={`font-mono text-sm ${tech.color}`}>{tech.name}</span>
</motion.div>
))}
</motion.div>
</div>
</div>
</motion.section>
);
};
export default Hero;

120
src/components/Services.js Normal file
View File

@@ -0,0 +1,120 @@
import React from 'react';
import { motion, useReducedMotion } from 'framer-motion';
const fadeUpPreset = (delay = 0, duration = 1.2) => ({
initial: { opacity: 0, y: 20 },
whileInView: { opacity: 1, y: 0 },
viewport: { once: true, amount: 0.2 },
transition: { delay, duration, ease: "easeOut" }
});
const Services = () => {
const shouldReduceMotion = useReducedMotion();
if (shouldReduceMotion) {
return (
<section className="section-padding bg-gray-50">
<div className="container-custom">
<div className="text-center mb-16">
<h2 className="text-3xl lg:text-4xl font-bold text-gray-900 mb-4">
Explore our services
</h2>
</div>
<div className="grid lg:grid-cols-2 gap-16">
{/* Web Development */}
<div className="text-center">
<h3 className="text-2xl font-bold text-gray-900 mb-4">Web Development</h3>
<p className="text-gray-600 mb-8">Custom web applications built with modern technologies</p>
<div className="w-64 h-48 mx-auto bg-gradient-to-br from-blue-100 to-purple-100 rounded-lg flex items-center justify-center">
<div className="w-32 h-32 bg-white rounded-lg shadow-lg flex items-center justify-center">
<div className="w-16 h-16 bg-blue-500 rounded-lg"></div>
</div>
</div>
</div>
{/* Mobile Development */}
<div className="text-center">
<h3 className="text-2xl font-bold text-gray-900 mb-4">MOBILE DEVELOPMENT</h3>
<p className="text-gray-600 mb-8">Native and cross-platform mobile applications</p>
<div className="w-64 h-48 mx-auto flex items-center justify-center">
<div className="w-32 h-48 bg-gradient-to-b from-blue-500 to-blue-600 rounded-2xl shadow-lg flex items-center justify-center">
<div className="w-24 h-40 bg-white rounded-xl"></div>
</div>
</div>
</div>
</div>
<div className="text-center mt-16">
<div className="bg-white rounded-2xl p-8 shadow-sm">
<h3 className="text-xl font-semibold text-gray-900 mb-4">
Get the same high-quality service for a smaller task
</h3>
</div>
</div>
</div>
</section>
);
}
return (
<motion.section
{...fadeUpPreset(0.1, 0.8)}
className="section-padding bg-gray-50"
>
<div className="container-custom">
<motion.div
{...fadeUpPreset(0.2, 0.8)}
className="text-center mb-16"
>
<h2 className="text-3xl lg:text-4xl font-bold text-gray-900 mb-4">
Explore our services
</h2>
</motion.div>
<div className="grid lg:grid-cols-2 gap-16">
{/* Web Development */}
<motion.div
{...fadeUpPreset(0.3, 0.8)}
className="text-center"
>
<h3 className="text-2xl font-bold text-gray-900 mb-4">Web Development</h3>
<p className="text-gray-600 mb-8">Custom web applications built with modern technologies</p>
<div className="w-64 h-48 mx-auto bg-gradient-to-br from-blue-100 to-purple-100 rounded-lg flex items-center justify-center">
<div className="w-32 h-32 bg-white rounded-lg shadow-lg flex items-center justify-center">
<div className="w-16 h-16 bg-blue-500 rounded-lg"></div>
</div>
</div>
</motion.div>
{/* Mobile Development */}
<motion.div
{...fadeUpPreset(0.4, 0.8)}
className="text-center"
>
<h3 className="text-2xl font-bold text-gray-900 mb-4">MOBILE DEVELOPMENT</h3>
<p className="text-gray-600 mb-8">Native and cross-platform mobile applications</p>
<div className="w-64 h-48 mx-auto flex items-center justify-center">
<div className="w-32 h-48 bg-gradient-to-b from-blue-500 to-blue-600 rounded-2xl shadow-lg flex items-center justify-center">
<div className="w-24 h-40 bg-white rounded-xl"></div>
</div>
</div>
</motion.div>
</div>
<motion.div
{...fadeUpPreset(0.5, 0.8)}
className="text-center mt-16"
>
<div className="bg-white rounded-2xl p-8 shadow-sm">
<h3 className="text-xl font-semibold text-gray-900 mb-4">
Get the same high-quality service for a smaller task
</h3>
</div>
</motion.div>
</div>
</motion.section>
);
};
export default Services;

69
src/components/Stats.js Normal file
View File

@@ -0,0 +1,69 @@
import React from 'react';
import { motion, useReducedMotion } from 'framer-motion';
const fadeUpPreset = (delay = 0, duration = 1.2) => ({
initial: { opacity: 0, y: 20 },
whileInView: { opacity: 1, y: 0 },
viewport: { once: true, amount: 0.2 },
transition: { delay, duration, ease: "easeOut" }
});
const Stats = () => {
const shouldReduceMotion = useReducedMotion();
const stats = [
{ value: '92%', label: 'Client satisfaction rate' },
{ value: '50+', label: 'Completed projects' },
{ value: '30k+', label: 'Lines of code written' },
{ value: '100%', label: 'On-time delivery' }
];
if (shouldReduceMotion) {
return (
<section className="section-padding bg-white">
<div className="container-custom">
<div className="grid grid-cols-2 lg:grid-cols-4 gap-8">
{stats.map((stat, index) => (
<div key={index} className="text-center">
<div className="text-3xl lg:text-4xl font-bold text-gray-900 mb-2">
{stat.value}
</div>
<div className="text-gray-600">
{stat.label}
</div>
</div>
))}
</div>
</div>
</section>
);
}
return (
<motion.section
{...fadeUpPreset(0.1, 0.8)}
className="section-padding bg-white"
>
<div className="container-custom">
<div className="grid grid-cols-2 lg:grid-cols-4 gap-8">
{stats.map((stat, index) => (
<motion.div
key={index}
{...fadeUpPreset(index * 0.1, 0.8)}
className="text-center"
>
<div className="text-3xl lg:text-4xl font-bold text-gray-900 mb-2">
{stat.value}
</div>
<div className="text-gray-600">
{stat.label}
</div>
</motion.div>
))}
</div>
</div>
</motion.section>
);
};
export default Stats;

101
src/components/Team.js Normal file
View File

@@ -0,0 +1,101 @@
import React from 'react';
import { motion, useReducedMotion } from 'framer-motion';
const fadeUpPreset = (delay = 0, duration = 1.2) => ({
initial: { opacity: 0, y: 20 },
whileInView: { opacity: 1, y: 0 },
viewport: { once: true, amount: 0.2 },
transition: { delay, duration, ease: "easeOut" }
});
const Team = () => {
const shouldReduceMotion = useReducedMotion();
const teamMembers = [
{
name: "Alex Rodriguez",
role: "Lead Developer",
image: "https://images.unsplash.com/photo-1472099645785-5658abf4ff4e?w=400&h=400&fit=crop&crop=face"
},
{
name: "Maria Chen",
role: "UI/UX Designer",
image: "https://images.unsplash.com/photo-1494790108755-2616b612b786?w=400&h=400&fit=crop&crop=face"
},
{
name: "David Kim",
role: "Mobile Developer",
image: "https://images.unsplash.com/photo-1507003211169-0a1dd7228f2d?w=400&h=400&fit=crop&crop=face"
}
];
if (shouldReduceMotion) {
return (
<section className="section-padding bg-white">
<div className="container-custom">
<div className="text-center mb-16">
<h2 className="text-3xl lg:text-4xl font-bold text-gray-900 mb-4">
Sargas Team
</h2>
</div>
<div className="grid md:grid-cols-2 lg:grid-cols-3 gap-8">
{teamMembers.map((member, index) => (
<div key={index} className="text-center">
<div className="w-32 h-32 mx-auto mb-4 bg-gray-200 rounded-full overflow-hidden">
<img
src={member.image}
alt={member.name}
className="w-full h-full object-cover"
/>
</div>
<h3 className="text-xl font-semibold text-gray-900 mb-2">{member.name}</h3>
<p className="text-gray-600">{member.role}</p>
</div>
))}
</div>
</div>
</section>
);
}
return (
<motion.section
{...fadeUpPreset(0.1, 0.8)}
className="section-padding bg-white"
>
<div className="container-custom">
<motion.div
{...fadeUpPreset(0.2, 0.8)}
className="text-center mb-16"
>
<h2 className="text-3xl lg:text-4xl font-bold text-gray-900 mb-4">
Sargas Team
</h2>
</motion.div>
<div className="grid md:grid-cols-2 lg:grid-cols-3 gap-8">
{teamMembers.map((member, index) => (
<motion.div
key={index}
{...fadeUpPreset(0.3 + index * 0.1, 0.8)}
className="text-center"
>
<div className="w-32 h-32 mx-auto mb-4 bg-gray-200 rounded-full overflow-hidden">
<img
src={member.image}
alt={member.name}
className="w-full h-full object-cover"
/>
</div>
<h3 className="text-xl font-semibold text-gray-900 mb-2">{member.name}</h3>
<p className="text-gray-600">{member.role}</p>
</motion.div>
))}
</div>
</div>
</motion.section>
);
};
export default Team;

View File

@@ -0,0 +1,101 @@
import React from 'react';
import { motion, useReducedMotion } from 'framer-motion';
import { Star } from 'lucide-react';
const fadeUpPreset = (delay = 0, duration = 1.2) => ({
initial: { opacity: 0, y: 20 },
whileInView: { opacity: 1, y: 0 },
viewport: { once: true, amount: 0.2 },
transition: { delay, duration, ease: "easeOut" }
});
const Testimonials = () => {
const shouldReduceMotion = useReducedMotion();
const testimonials = [
{
name: "John Smith",
company: "Tech Startup",
rating: 5,
text: "Sargas delivered an exceptional web application that exceeded our expectations. Their AI-powered approach saved us months of development time."
},
{
name: "Sarah Johnson",
company: "E-commerce Platform",
rating: 5,
text: "The mobile app they built for us has been a game-changer. Professional, efficient, and delivered exactly on time."
}
];
if (shouldReduceMotion) {
return (
<section className="section-padding bg-gray-50">
<div className="container-custom">
<div className="text-center mb-16">
<h2 className="text-3xl lg:text-4xl font-bold text-gray-900 mb-4">
Testimonials
</h2>
</div>
<div className="grid lg:grid-cols-2 gap-8">
{testimonials.map((testimonial, index) => (
<div key={index} className="bg-white rounded-2xl p-8 shadow-sm">
<div className="flex mb-4">
{[...Array(testimonial.rating)].map((_, i) => (
<Star key={i} className="w-5 h-5 fill-yellow-400 text-yellow-400" />
))}
</div>
<p className="text-gray-600 mb-6">"{testimonial.text}"</p>
<div>
<div className="font-semibold text-gray-900">{testimonial.name}</div>
<div className="text-gray-500 text-sm">{testimonial.company}</div>
</div>
</div>
))}
</div>
</div>
</section>
);
}
return (
<motion.section
{...fadeUpPreset(0.1, 0.8)}
className="section-padding bg-gray-50"
>
<div className="container-custom">
<motion.div
{...fadeUpPreset(0.2, 0.8)}
className="text-center mb-16"
>
<h2 className="text-3xl lg:text-4xl font-bold text-gray-900 mb-4">
Testimonials
</h2>
</motion.div>
<div className="grid lg:grid-cols-2 gap-8">
{testimonials.map((testimonial, index) => (
<motion.div
key={index}
{...fadeUpPreset(0.3 + index * 0.1, 0.8)}
className="bg-white rounded-2xl p-8 shadow-sm"
>
<div className="flex mb-4">
{[...Array(testimonial.rating)].map((_, i) => (
<Star key={i} className="w-5 h-5 fill-yellow-400 text-yellow-400" />
))}
</div>
<p className="text-gray-600 mb-6">"{testimonial.text}"</p>
<div>
<div className="font-semibold text-gray-900">{testimonial.name}</div>
<div className="text-gray-500 text-sm">{testimonial.company}</div>
</div>
</motion.div>
))}
</div>
</div>
</motion.section>
);
};
export default Testimonials;

58
src/index.css Normal file
View File

@@ -0,0 +1,58 @@
@tailwind base;
@tailwind components;
@tailwind utilities;
@layer base {
* {
@apply border-border;
}
body {
@apply bg-gray-50 text-gray-900 font-sans;
font-feature-settings: "rlig" 1, "calt" 1;
}
html {
scroll-behavior: smooth;
}
}
@layer components {
.btn-primary {
@apply bg-primary-600 hover:bg-primary-700 text-white font-medium px-6 py-3 rounded-lg transition-colors duration-200;
}
.btn-secondary {
@apply bg-dark-800 hover:bg-dark-700 text-white font-medium px-6 py-3 rounded-lg transition-colors duration-200;
}
.btn-outline {
@apply border border-gray-300 hover:border-gray-400 text-gray-700 hover:text-gray-900 font-medium px-6 py-3 rounded-lg transition-colors duration-200;
}
.section-padding {
@apply py-16 lg:py-24;
}
.container-custom {
@apply max-w-7xl mx-auto px-4 sm:px-6 lg:px-8;
}
.tech-badge {
@apply inline-flex items-center gap-2 px-4 py-2 bg-white rounded-full shadow-sm border border-gray-200 text-sm font-medium text-gray-700;
}
}
@layer utilities {
.text-gradient {
@apply bg-gradient-to-r from-primary-600 to-primary-500 bg-clip-text text-transparent;
}
.shadow-custom {
box-shadow: 0 4px 6px -1px rgba(0, 0, 0, 0.1), 0 2px 4px -1px rgba(0, 0, 0, 0.06);
}
.shadow-custom-lg {
box-shadow: 0 10px 15px -3px rgba(0, 0, 0, 0.1), 0 4px 6px -2px rgba(0, 0, 0, 0.05);
}
}

13
src/index.js Normal file
View File

@@ -0,0 +1,13 @@
import React from 'react';
import { createRoot } from 'react-dom/client';
import './index.css';
import App from './App';
const container = document.getElementById('root');
const root = createRoot(container);
root.render(
<React.StrictMode>
<App />
</React.StrictMode>
);

61
tailwind.config.js Normal file
View File

@@ -0,0 +1,61 @@
/** @type {import('tailwindcss').Config} */
module.exports = {
content: [
"./src/**/*.{js,jsx,ts,tsx}",
],
theme: {
extend: {
colors: {
primary: {
50: '#eff6ff',
100: '#dbeafe',
200: '#bfdbfe',
300: '#93c5fd',
400: '#60a5fa',
500: '#3b82f6',
600: '#2563eb',
700: '#1d4ed8',
800: '#1e40af',
900: '#1e3a8a',
},
dark: {
50: '#f8fafc',
100: '#f1f5f9',
200: '#e2e8f0',
300: '#cbd5e1',
400: '#94a3b8',
500: '#64748b',
600: '#475569',
700: '#334155',
800: '#1e293b',
900: '#0f172a',
},
accent: {
red: '#ef4444',
green: '#22c55e',
blue: '#3b82f6',
purple: '#8b5cf6',
orange: '#f97316',
}
},
fontFamily: {
sans: ['Inter', 'system-ui', 'sans-serif'],
},
animation: {
'fade-in': 'fadeIn 0.5s ease-in-out',
'slide-up': 'slideUp 0.6s ease-out',
},
keyframes: {
fadeIn: {
'0%': { opacity: '0' },
'100%': { opacity: '1' },
},
slideUp: {
'0%': { opacity: '0', transform: 'translateY(20px)' },
'100%': { opacity: '1', transform: 'translateY(0)' },
},
},
},
},
plugins: [],
}

5
vercel.json Normal file
View File

@@ -0,0 +1,5 @@
{
"installCommand": "npm install",
"buildCommand": "CI=false npm run build",
"outputDirectory": "build"
}