Initial commit

This commit is contained in:
vitalijmulika
2025-12-29 14:52:38 +02:00
commit b50286d74e
90 changed files with 2608 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",
"lucide-react": "^0.400.0",
"framer-motion": "^11.0.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

1235
public/index.html Normal file

File diff suppressed because it is too large Load Diff

45
src/App.js Normal file
View File

@@ -0,0 +1,45 @@
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';
import MobileMenu from './components/MobileMenu';
function App() {
const [isMobileMenuOpen, setIsMobileMenuOpen] = useState(false);
const [showCookieConsent, setShowCookieConsent] = useState(true);
return (
<div className="App">
<Header
isMobileMenuOpen={isMobileMenuOpen}
setIsMobileMenuOpen={setIsMobileMenuOpen}
/>
<MobileMenu
isOpen={isMobileMenuOpen}
setIsOpen={setIsMobileMenuOpen}
/>
<main>
<Hero />
<Stats />
<Services />
<CaseStudies />
<Testimonials />
<Team />
<Contact />
</main>
<Footer />
{showCookieConsent && (
<CookieConsent onClose={() => setShowCookieConsent(false)} />
)}
</div>
);
}
export default App;

View File

@@ -0,0 +1,115 @@
import React from 'react';
import { motion, useReducedMotion } from 'framer-motion';
import { ExternalLink } 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 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 md: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-3xl p-8 md:p-12 text-white">
<div className="grid md:grid-cols-2 gap-8 items-center">
<div>
<h3 className="text-2xl md:text-3xl font-bold mb-4">Dias</h3>
<p className="text-blue-100 mb-6">
A comprehensive platform for managing diabetes care with AI-powered insights and personalized recommendations.
</p>
<div className="flex flex-wrap gap-2 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">AI/ML</span>
<span className="bg-white/20 px-3 py-1 rounded-full text-sm">Healthcare</span>
</div>
<div className="flex items-center space-x-4 text-sm">
<span>$2,500</span>
<span></span>
<span>12 weeks</span>
</div>
</div>
<div className="bg-white/10 rounded-2xl p-6 backdrop-blur-sm">
<div className="bg-white rounded-lg p-4 mb-4">
<div className="h-32 bg-gradient-to-br from-gray-100 to-gray-200 rounded-lg flex items-center justify-center">
<ExternalLink className="w-8 h-8 text-gray-400" />
</div>
</div>
<div className="text-center">
<div className="text-sm text-blue-100">Dashboard 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 md: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-3xl p-8 md:p-12 text-white"
>
<div className="grid md:grid-cols-2 gap-8 items-center">
<div>
<h3 className="text-2xl md:text-3xl font-bold mb-4">Dias</h3>
<p className="text-blue-100 mb-6">
A comprehensive platform for managing diabetes care with AI-powered insights and personalized recommendations.
</p>
<div className="flex flex-wrap gap-2 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">AI/ML</span>
<span className="bg-white/20 px-3 py-1 rounded-full text-sm">Healthcare</span>
</div>
<div className="flex items-center space-x-4 text-sm">
<span>$2,500</span>
<span></span>
<span>12 weeks</span>
</div>
</div>
<div className="bg-white/10 rounded-2xl p-6 backdrop-blur-sm">
<div className="bg-white rounded-lg p-4 mb-4">
<div className="h-32 bg-gradient-to-br from-gray-100 to-gray-200 rounded-lg flex items-center justify-center">
<ExternalLink className="w-8 h-8 text-gray-400" />
</div>
</div>
<div className="text-center">
<div className="text-sm text-blue-100">Dashboard Preview</div>
</div>
</div>
</div>
</motion.div>
</div>
</motion.section>
);
};
export default CaseStudies;

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

@@ -0,0 +1,101 @@
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 md: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 and let's discuss how we can bring your ideas to life.
</p>
</div>
<div className="max-w-2xl mx-auto">
<div className="bg-white rounded-2xl p-8 shadow-sm">
<div className="text-center mb-8">
<div className="w-16 h-16 bg-primary-100 rounded-full flex items-center justify-center mx-auto mb-4">
<Mail className="w-8 h-8 text-primary-600" />
</div>
<h3 className="text-xl font-semibold text-gray-900 mb-2">
Feel free to drop us a note:
</h3>
<a href="mailto:contact@sargas.io" className="text-primary-600 hover:text-primary-700 font-medium">
contact@sargas.io
</a>
</div>
<div className="text-center">
<button className="btn-primary">
Schedule a Call
</button>
</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 md: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 and let's discuss how we can bring your ideas to life.
</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="text-center mb-8">
<div className="w-16 h-16 bg-primary-100 rounded-full flex items-center justify-center mx-auto mb-4">
<Mail className="w-8 h-8 text-primary-600" />
</div>
<h3 className="text-xl font-semibold text-gray-900 mb-2">
Feel free to drop us a note:
</h3>
<a href="mailto:contact@sargas.io" className="text-primary-600 hover:text-primary-700 font-medium">
contact@sargas.io
</a>
</div>
<div className="text-center">
<button className="btn-primary">
Schedule a Call
</button>
</div>
</div>
</motion.div>
</div>
</motion.section>
);
};
export default Contact;

View File

@@ -0,0 +1,52 @@
import React from 'react';
import { X } from 'lucide-react';
const CookieConsent = ({ onClose }) => {
const handleAccept = () => {
onClose();
};
const handleDeny = () => {
onClose();
};
return (
<div className="fixed bottom-4 left-4 right-4 md:left-8 md:right-auto md:max-w-md bg-white rounded-2xl shadow-2xl border border-gray-200 p-6 z-50">
<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-lg font-semibold text-gray-900 mb-3">
This site uses cookies
</h3>
<p className="text-gray-600 text-sm 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 text-sm 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="px-6 py-2 border border-gray-300 rounded-lg text-gray-700 hover:bg-gray-50 transition-colors text-sm font-medium"
>
Deny
</button>
<button
onClick={handleAccept}
className="px-6 py-2 bg-gray-900 text-white rounded-lg hover:bg-gray-800 transition-colors text-sm font-medium"
>
Accept all
</button>
</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, Mail } from 'lucide-react';
const Footer = () => {
return (
<footer className="bg-gray-900 text-white py-12">
<div className="container-custom">
<div className="grid md:grid-cols-4 gap-8">
{/* Logo & Description */}
<div className="md:col-span-2">
<div className="flex items-center space-x-2 mb-4">
<div className="w-8 h-8 bg-gradient-to-br from-primary-500 to-primary-700 rounded-lg flex items-center justify-center">
<span className="text-white font-bold text-sm">S</span>
</div>
<span className="text-xl font-bold">Sargas</span>
</div>
<p className="text-gray-400 mb-6 max-w-md">
AI-powered web and mobile development solutions delivered in 12 weeks. We help businesses transform their ideas into reality with cutting-edge technology.
</p>
<div className="flex space-x-4">
<a href="#" className="text-gray-400 hover:text-white transition-colors">
<Github className="w-5 h-5" />
</a>
<a href="#" className="text-gray-400 hover:text-white transition-colors">
<Linkedin className="w-5 h-5" />
</a>
<a href="mailto:contact@sargas.io" className="text-gray-400 hover:text-white transition-colors">
<Mail className="w-5 h-5" />
</a>
</div>
</div>
{/* Services */}
<div>
<h3 className="font-semibold mb-4">Services</h3>
<ul className="space-y-2 text-gray-400">
<li><a href="#" className="hover:text-white transition-colors">Web Development</a></li>
<li><a href="#" className="hover:text-white transition-colors">Mobile Development</a></li>
<li><a href="#" className="hover:text-white transition-colors">AI Integration</a></li>
<li><a href="#" className="hover:text-white transition-colors">Consulting</a></li>
</ul>
</div>
{/* Company */}
<div>
<h3 className="font-semibold mb-4">Company</h3>
<ul className="space-y-2 text-gray-400">
<li><a href="#" className="hover:text-white transition-colors">About Us</a></li>
<li><a href="#" className="hover:text-white transition-colors">Portfolio</a></li>
<li><a href="#" className="hover:text-white transition-colors">Blog</a></li>
<li><a href="#" className="hover:text-white transition-colors">Contacts</a></li>
</ul>
</div>
</div>
<div className="border-t border-gray-800 mt-12 pt-8 flex flex-col md:flex-row justify-between items-center">
<p className="text-gray-400 text-sm">
© 2024 Sargas. All rights reserved.
</p>
<div className="flex space-x-6 mt-4 md:mt-0">
<a href="#" className="text-gray-400 hover:text-white text-sm transition-colors">Privacy Policy</a>
<a href="#" className="text-gray-400 hover:text-white text-sm transition-colors">Terms of Use</a>
</div>
</div>
</div>
</footer>
);
};
export default Footer;

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

@@ -0,0 +1,70 @@
import React from 'react';
import { Menu, X, ChevronDown, Star } from 'lucide-react';
const Header = ({ isMobileMenuOpen, setIsMobileMenuOpen }) => {
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 space-x-2">
<div className="w-8 h-8 bg-gradient-to-br from-primary-500 to-primary-700 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>
{/* Desktop Navigation */}
<nav className="hidden md:flex items-center space-x-8">
<div className="relative group">
<button className="flex items-center space-x-1 text-gray-700 hover:text-primary-600 transition-colors">
<span>Services</span>
<ChevronDown className="w-4 h-4" />
</button>
</div>
<a href="#portfolio" className="text-gray-700 hover:text-primary-600 transition-colors">Portfolio</a>
<a href="#about" className="text-gray-700 hover:text-primary-600 transition-colors">About</a>
<a href="#contacts" className="text-gray-700 hover:text-primary-600 transition-colors">Contacts</a>
</nav>
{/* Clutch Rating & CTA */}
<div className="hidden md:flex items-center space-x-4">
<div className="flex items-center space-x-2 bg-gray-50 px-3 py-2 rounded-lg">
<div className="w-8 h-8 bg-gray-800 rounded-full flex items-center justify-center">
<span className="text-white font-bold text-xs">C</span>
</div>
<div className="flex flex-col">
<div className="flex items-center space-x-1">
<span className="text-sm font-semibold">4.9</span>
<div className="flex space-x-0.5">
{[...Array(5)].map((_, i) => (
<Star key={i} className="w-3 h-3 fill-yellow-400 text-yellow-400" />
))}
</div>
</div>
<span className="text-xs text-gray-500">Based on 6 Clutch reviews</span>
</div>
</div>
<button className="btn-secondary">
Book a Call
</button>
</div>
{/* Mobile Menu Button */}
<button
className="md:hidden p-2"
onClick={() => setIsMobileMenuOpen(!isMobileMenuOpen)}
>
{isMobileMenuOpen ? (
<X className="w-6 h-6" />
) : (
<Menu className="w-6 h-6" />
)}
</button>
</div>
</div>
</header>
);
};
export default Header;

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

@@ -0,0 +1,119 @@
import React from 'react';
import { motion, useReducedMotion } from 'framer-motion';
import { Package } 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 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 md: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"></div>
<div className="w-6 h-6 bg-red-400 rounded-full -ml-2"></div>
<div className="w-6 h-6 bg-red-300 rounded-full -ml-2"></div>
<span className="ml-2 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 space-x-2">
<Package className="w-5 h-5" />
<span>Portfolio Showcase</span>
</button>
</div>
<div className="flex flex-wrap justify-center items-center gap-6 text-sm text-gray-500">
<span className="bg-white px-3 py-1 rounded-full">#nestjs</span>
<span className="bg-white px-3 py-1 rounded-full">#mysql</span>
<span className="bg-white px-3 py-1 rounded-full">#mongodb</span>
<span className="bg-white px-3 py-1 rounded-full">#nginx</span>
<span className="bg-white px-3 py-1 rounded-full">#redis</span>
<span className="bg-white px-3 py-1 rounded-full">#typescript</span>
</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 md: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"></div>
<div className="w-6 h-6 bg-red-400 rounded-full -ml-2"></div>
<div className="w-6 h-6 bg-red-300 rounded-full -ml-2"></div>
<span className="ml-2 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 space-x-2">
<Package className="w-5 h-5" />
<span>Portfolio Showcase</span>
</button>
</motion.div>
<motion.div
{...fadeUpPreset(0.5, 0.8)}
className="flex flex-wrap justify-center items-center gap-6 text-sm text-gray-500"
>
<span className="bg-white px-3 py-1 rounded-full">#nestjs</span>
<span className="bg-white px-3 py-1 rounded-full">#mysql</span>
<span className="bg-white px-3 py-1 rounded-full">#mongodb</span>
<span className="bg-white px-3 py-1 rounded-full">#nginx</span>
<span className="bg-white px-3 py-1 rounded-full">#redis</span>
<span className="bg-white px-3 py-1 rounded-full">#typescript</span>
</motion.div>
</div>
</div>
</motion.section>
);
};
export default Hero;

View File

@@ -0,0 +1,83 @@
import React from 'react';
import { motion, AnimatePresence } from 'framer-motion';
import { Github, Linkedin, Mail, ChevronDown } from 'lucide-react';
const MobileMenu = ({ isOpen, setIsOpen }) => {
return (
<AnimatePresence>
{isOpen && (
<motion.div
initial={{ opacity: 0 }}
animate={{ opacity: 1 }}
exit={{ opacity: 0 }}
className="fixed inset-0 bg-black/50 z-40 md:hidden"
onClick={() => setIsOpen(false)}
>
<motion.div
initial={{ x: '100%' }}
animate={{ x: 0 }}
exit={{ x: '100%' }}
transition={{ type: 'tween', duration: 0.3 }}
className="absolute right-0 top-0 h-full w-80 bg-white shadow-xl"
onClick={(e) => e.stopPropagation()}
>
<div className="p-6 pt-20">
{/* Menu Section */}
<div className="mb-8">
<h3 className="text-lg font-semibold text-gray-900 mb-4">Menu</h3>
<nav className="space-y-3">
<a href="#" className="block text-gray-600 hover:text-primary-600">Case Studies</a>
<a href="#" className="block text-gray-600 hover:text-primary-600">Blog</a>
<a href="#" className="block text-gray-600 hover:text-primary-600">Contacts</a>
<a href="#" className="block text-gray-600 hover:text-primary-600">About Us</a>
<a href="#" className="block text-gray-600 hover:text-primary-600">FAQ</a>
</nav>
</div>
{/* Services Section */}
<div className="mb-8">
<h3 className="text-lg font-semibold text-gray-900 mb-4">Services</h3>
<nav className="space-y-3">
<a href="#" className="block text-gray-600 hover:text-primary-600">Web Development</a>
<a href="#" className="block text-gray-600 hover:text-primary-600">Mobile Development</a>
<a href="#" className="block text-gray-600 hover:text-primary-600">Support and Maintenance</a>
</nav>
</div>
{/* Contact Info */}
<div className="mb-8">
<p className="text-sm text-gray-600 mb-2">Feel free to drop us a note:</p>
<a href="mailto:contact@sargas.io" className="text-primary-600 font-medium">
contact@sargas.io
</a>
</div>
{/* Social Links */}
<div className="flex space-x-4 mb-8">
<a href="#" className="text-gray-400 hover:text-gray-600">
<Github className="w-6 h-6" />
</a>
<a href="#" className="text-gray-400 hover:text-gray-600">
<Linkedin className="w-6 h-6" />
</a>
<a href="#" className="text-gray-400 hover:text-gray-600">
<Mail className="w-6 h-6" />
</a>
</div>
{/* Footer Links */}
<div className="border-t border-gray-200 pt-6">
<div className="flex justify-between text-sm text-gray-500">
<a href="#" className="hover:text-gray-700">Privacy Policy</a>
<a href="#" className="hover:text-gray-700">Terms of Use</a>
</div>
</div>
</div>
</motion.div>
</motion.div>
)}
</AnimatePresence>
);
};
export default MobileMenu;

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

@@ -0,0 +1,127 @@
import React from 'react';
import { motion, useReducedMotion } from 'framer-motion';
import { Globe, Package } 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 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 md:text-4xl font-bold text-gray-900 mb-4">
Explore our services
</h2>
</div>
<div className="grid md:grid-cols-2 gap-12 lg:gap-20">
{/* Web Development */}
<div className="text-center">
<div className="mb-8">
<div className="w-32 h-32 mx-auto bg-gradient-to-br from-blue-100 to-blue-200 rounded-2xl flex items-center justify-center mb-6">
<Globe className="w-16 h-16 text-blue-600" />
</div>
<h3 className="text-2xl font-bold text-gray-900 mb-4">Web Development</h3>
<p className="text-gray-600">Custom web applications built with modern technologies and best practices.</p>
</div>
</div>
{/* Mobile Development */}
<div className="text-center">
<div className="mb-8">
<div className="w-32 h-32 mx-auto bg-gradient-to-br from-purple-100 to-purple-200 rounded-2xl flex items-center justify-center mb-6">
<Package className="w-16 h-16 text-purple-600" />
</div>
<h3 className="text-2xl font-bold text-gray-900 mb-4">Mobile Development</h3>
<p className="text-gray-600">Native and cross-platform mobile applications for iOS and Android.</p>
</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>
<p className="text-gray-600">
Whether you need a simple landing page or a complex enterprise solution, we deliver the same level of excellence.
</p>
</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 md:text-4xl font-bold text-gray-900 mb-4">
Explore our services
</h2>
</motion.div>
<div className="grid md:grid-cols-2 gap-12 lg:gap-20">
{/* Web Development */}
<motion.div
{...fadeUpPreset(0.3, 0.8)}
className="text-center"
>
<div className="mb-8">
<div className="w-32 h-32 mx-auto bg-gradient-to-br from-blue-100 to-blue-200 rounded-2xl flex items-center justify-center mb-6">
<Globe className="w-16 h-16 text-blue-600" />
</div>
<h3 className="text-2xl font-bold text-gray-900 mb-4">Web Development</h3>
<p className="text-gray-600">Custom web applications built with modern technologies and best practices.</p>
</div>
</motion.div>
{/* Mobile Development */}
<motion.div
{...fadeUpPreset(0.4, 0.8)}
className="text-center"
>
<div className="mb-8">
<div className="w-32 h-32 mx-auto bg-gradient-to-br from-purple-100 to-purple-200 rounded-2xl flex items-center justify-center mb-6">
<Package className="w-16 h-16 text-purple-600" />
</div>
<h3 className="text-2xl font-bold text-gray-900 mb-4">Mobile Development</h3>
<p className="text-gray-600">Native and cross-platform mobile applications for iOS and Android.</p>
</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>
<p className="text-gray-600">
Whether you need a simple landing page or a complex enterprise solution, we deliver the same level of excellence.
</p>
</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' },
{ value: '50+', label: 'Projects Completed' },
{ value: '30k+', label: 'Lines of Code' },
{ value: '100%', label: 'On-Time Delivery' }
];
if (shouldReduceMotion) {
return (
<section className="py-16 bg-white">
<div className="container-custom">
<div className="grid grid-cols-2 md:grid-cols-4 gap-8">
{stats.map((stat, index) => (
<div key={index} className="text-center">
<div className="text-3xl md:text-4xl font-bold text-primary-600 mb-2">
{stat.value}
</div>
<div className="text-gray-600 text-sm md:text-base">
{stat.label}
</div>
</div>
))}
</div>
</div>
</section>
);
}
return (
<motion.section
{...fadeUpPreset(0.1, 0.8)}
className="py-16 bg-white"
>
<div className="container-custom">
<div className="grid grid-cols-2 md: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 md:text-4xl font-bold text-primary-600 mb-2">
{stat.value}
</div>
<div className="text-gray-600 text-sm md:text-base">
{stat.label}
</div>
</motion.div>
))}
</div>
</div>
</motion.section>
);
};
export default Stats;

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

@@ -0,0 +1,118 @@
import React from 'react';
import { motion, useReducedMotion } from 'framer-motion';
import { Github, Linkedin } 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 Team = () => {
const shouldReduceMotion = useReducedMotion();
const teamMembers = [
{
name: 'Alex Rodriguez',
role: 'Lead Developer',
image: null,
social: {
github: '#',
linkedin: '#'
}
},
{
name: 'Maria Chen',
role: 'UI/UX Designer',
image: null,
social: {
github: '#',
linkedin: '#'
}
},
{
name: 'David Kim',
role: 'Backend Engineer',
image: null,
social: {
github: '#',
linkedin: '#'
}
}
];
if (shouldReduceMotion) {
return (
<section className="section-padding bg-white">
<div className="container-custom">
<div className="text-center mb-16">
<h2 className="text-3xl md:text-4xl font-bold text-gray-900 mb-4">
Sargas Team
</h2>
</div>
<div className="grid md:grid-cols-3 gap-8 max-w-4xl mx-auto">
{teamMembers.map((member, index) => (
<div key={index} className="text-center">
<div className="w-32 h-32 bg-gray-200 rounded-full mx-auto mb-4"></div>
<h3 className="text-xl font-semibold text-gray-900 mb-2">{member.name}</h3>
<p className="text-gray-600 mb-4">{member.role}</p>
<div className="flex justify-center space-x-3">
<a href={member.social.github} className="text-gray-400 hover:text-gray-600">
<Github className="w-5 h-5" />
</a>
<a href={member.social.linkedin} className="text-gray-400 hover:text-gray-600">
<Linkedin className="w-5 h-5" />
</a>
</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 md:text-4xl font-bold text-gray-900 mb-4">
Sargas Team
</h2>
</motion.div>
<div className="grid md:grid-cols-3 gap-8 max-w-4xl mx-auto">
{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 bg-gray-200 rounded-full mx-auto mb-4"></div>
<h3 className="text-xl font-semibold text-gray-900 mb-2">{member.name}</h3>
<p className="text-gray-600 mb-4">{member.role}</p>
<div className="flex justify-center space-x-3">
<a href={member.social.github} className="text-gray-400 hover:text-gray-600">
<Github className="w-5 h-5" />
</a>
<a href={member.social.linkedin} className="text-gray-400 hover:text-gray-600">
<Linkedin className="w-5 h-5" />
</a>
</div>
</motion.div>
))}
</div>
</div>
</motion.section>
);
};
export default Team;

View File

@@ -0,0 +1,95 @@
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();
if (shouldReduceMotion) {
return (
<section className="section-padding bg-gray-50">
<div className="container-custom">
<div className="text-center mb-16">
<h2 className="text-3xl md:text-4xl font-bold text-gray-900 mb-4">
Testimonials
</h2>
</div>
<div className="max-w-4xl mx-auto">
<div className="bg-white rounded-2xl p-8 shadow-sm">
<div className="flex items-center mb-6">
<div className="flex space-x-1">
{[...Array(5)].map((_, i) => (
<Star key={i} className="w-5 h-5 fill-yellow-400 text-yellow-400" />
))}
</div>
</div>
<blockquote className="text-lg text-gray-700 mb-6">
"Working with Sargas was an exceptional experience. They delivered our AI-powered platform ahead of schedule and exceeded all our expectations. The team's expertise in modern technologies is truly impressive."
</blockquote>
<div className="flex items-center">
<div className="w-12 h-12 bg-gray-200 rounded-full mr-4"></div>
<div>
<div className="font-semibold text-gray-900">Sarah Johnson</div>
<div className="text-gray-600">CEO, TechStart Inc.</div>
</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 md:text-4xl font-bold text-gray-900 mb-4">
Testimonials
</h2>
</motion.div>
<motion.div
{...fadeUpPreset(0.3, 0.8)}
className="max-w-4xl mx-auto"
>
<div className="bg-white rounded-2xl p-8 shadow-sm">
<div className="flex items-center mb-6">
<div className="flex space-x-1">
{[...Array(5)].map((_, i) => (
<Star key={i} className="w-5 h-5 fill-yellow-400 text-yellow-400" />
))}
</div>
</div>
<blockquote className="text-lg text-gray-700 mb-6">
"Working with Sargas was an exceptional experience. They delivered our AI-powered platform ahead of schedule and exceeded all our expectations. The team's expertise in modern technologies is truly impressive."
</blockquote>
<div className="flex items-center">
<div className="w-12 h-12 bg-gray-200 rounded-full mr-4"></div>
<div>
<div className="font-semibold text-gray-900">Sarah Johnson</div>
<div className="text-gray-600">CEO, TechStart Inc.</div>
</div>
</div>
</div>
</motion.div>
</div>
</motion.section>
);
};
export default Testimonials;

51
src/index.css Normal file
View File

@@ -0,0 +1,51 @@
@tailwind base;
@tailwind components;
@tailwind utilities;
@layer base {
html {
scroll-behavior: smooth;
}
body {
font-family: 'Inter', system-ui, sans-serif;
line-height: 1.6;
color: #1f2937;
}
}
@layer components {
.btn-primary {
@apply bg-primary-600 text-white px-6 py-3 rounded-lg font-medium hover:bg-primary-700 transition-colors duration-200;
}
.btn-secondary {
@apply bg-gray-800 text-white px-6 py-3 rounded-lg font-medium hover:bg-gray-900 transition-colors duration-200;
}
.section-padding {
@apply py-16 md:py-24;
}
.container-custom {
@apply max-w-7xl mx-auto px-4 sm:px-6 lg:px-8;
}
.text-gradient {
@apply bg-gradient-to-r from-primary-600 to-primary-800 bg-clip-text text-transparent;
}
}
@layer utilities {
.animation-delay-200 {
animation-delay: 200ms;
}
.animation-delay-400 {
animation-delay: 400ms;
}
.animation-delay-600 {
animation-delay: 600ms;
}
}

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}",
"./public/index.html"
],
theme: {
extend: {
colors: {
primary: {
50: '#eff6ff',
100: '#dbeafe',
200: '#bfdbfe',
300: '#93c5fd',
400: '#60a5fa',
500: '#3b82f6',
600: '#2563eb',
700: '#1d4ed8',
800: '#1e40af',
900: '#1e3a8a'
},
gray: {
50: '#f9fafb',
100: '#f3f4f6',
200: '#e5e7eb',
300: '#d1d5db',
400: '#9ca3af',
500: '#6b7280',
600: '#4b5563',
700: '#374151',
800: '#1f2937',
900: '#111827'
},
accent: {
blue: '#4285f4',
red: '#ea4335',
yellow: '#fbbc04',
green: '#34a853'
}
},
fontFamily: {
sans: ['Inter', 'system-ui', 'sans-serif']
},
animation: {
'fade-in': 'fadeIn 0.6s ease-out',
'slide-up': 'slideUp 0.8s 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"
}