Compare commits

8 Commits

Author SHA1 Message Date
Jeremy Brandenburger f5f57c3e4d feat: polish gameplay and admin flow 2026-04-03 11:59:24 +02:00
Jeremy Brandenburger c8003cc77c Merge branch 'main' into bugfixes-features 2026-04-03 11:39:53 +02:00
Jeremy Brandenburger e555bbd321 chore: automate release checks 2026-04-03 11:34:59 +02:00
Jeremy Brandenburger 8ea3b14860 docs: add PROJECT_MAP, AGENTS.md; add PROJECT_MAP update rule to CLAUDE.md 2026-04-03 11:14:35 +02:00
Jeremy Brandenburger 6ac0376539 fix: remove black blob pseudo-element, revert sm icon to 22px 2026-03-31 18:45:29 +02:00
Jeremy Brandenburger 765d857cdc fix: larger, brighter icons on dashboard and tables (-md, -sm sizes) 2026-03-31 18:43:32 +02:00
Jeremy Brandenburger b35687d095 fix: larger stratagem icon with glow, readable queue labels 2026-03-31 18:42:48 +02:00
Jeremy Brandenburger b7beb25ea3 fix: remove CSP-blocked inline onclick handlers, use addEventListener 2026-03-30 16:47:10 +02:00
79 changed files with 2954 additions and 648 deletions
+12
View File
@@ -0,0 +1,12 @@
#!/usr/bin/env bash
set -euo pipefail
if [[ -f package.json && -f scripts/release-sync.cjs && -f scripts/release-verify.cjs ]]; then
npm run --silent release:sync >/dev/null
if [[ -d public ]]; then
while IFS= read -r -d '' file; do
git add -- "$file"
done < <(find public -type f -name '*.html' -print0 2>/dev/null)
fi
npm run --silent release:verify
fi
+39
View File
@@ -0,0 +1,39 @@
# Codex Instructions helldivers
## Pflichtlektüre vor dem ersten Code-Zugriff
Lies **PROJECT_MAP.md** in diesem Verzeichnis sie enthält alle Funktionen, API-Routen, WebSocket-Message-Types, State-Struktur und Datenbank-Details.
## Projekt-Überblick
- **Port:** 3012
- **Typ:** Authenticated Multiplayer App (WebSocket, SQLite, ELO-Rating)
- **Stack:** Node.js / Express, WebSocket (ws), SQLite (better-sqlite3), bcrypt, Helmet, rate-limit, Vanilla JS
- **Features:** Stratagem-Trainer (Timed/Endless/Drill/Speedrun), 1v1-Multiplayer-Matches, ELO-Rangliste, Tages-Challenge, Admin-Panel
## Struktur
```
helldivers/
├── server.js # Express + WebSocket + SQLite (~650 Zeilen)
├── public/app.js # Gesamte Client-Logik (~1840 Zeilen)
├── public/styles.css
├── public/index.html
├── scripts/ # DB-Migrations / Seed
└── data/helldivers.db # SQLite (Scores, Users, History, Sessions)
```
## Git-Workflow
1. Branch: immer `bugfixes-features` für Änderungen
2. Commit: `type: kurze Beschreibung` **keine Co-Authored-By-Zeile**
3. Vor Commit: `CHANGELOG.md` aktualisieren
4. Vor Commit: `PROJECT_MAP.md` aktualisieren, falls Funktionen/Routen/WS-Types geändert wurden
5. `git add` nur einzelne Dateien kein `git add -A`
6. Merge nach `main` nur auf explizite Anweisung
## Sicherheit
- Niemals `data/helldivers.db` committen
## Release-Automation
- **Version ist Single Source of Truth:** `package.json`
- **Cache-Busting nie manuell pflegen** stattdessen `npm run release:sync`
- **Vor jedem Commit zusätzlich:** `npm run release:verify`
- Repo-Hook: `.githooks/pre-commit` führt `release:sync` und `release:verify` automatisch aus
- Für Versionssprünge: `npm run release:bump:patch`, `release:bump:minor` oder `release:bump:major`
+26 -1
View File
@@ -1,4 +1,29 @@
# Changelog helldivers-trainer # Changelog
## [Unreleased]
### Changed
- Release-Automation ergänzt: `npm run release:sync`, `npm run release:verify`, `.githooks/pre-commit` und versionsbasiertes Cache-Busting aus `package.json` helldivers-trainer
- Practice- und Match-Flow wirken jetzt deutlich spielerischer mit Deployment-Countdown, Fokusbereich, direkter Feedback-Anzeige und staerkeren Mobile-HUDs
- Stratagem-Icons wurden breit ueberarbeitet und koennen ueber das neue Wiki-Download-Skript einfacher aktualisiert werden
- Admin-Bereich zeigt mehr Nutzer- und Aktivitaetsdaten, inklusive Sessions, letzter Aktivitaet, Passwort-Reset und Rollenpflege
## [2.1.3] 2026-03-31
### Fixed
- **Schwarzes Blob hinter Stratagem-Icon**: `::before` Pseudoelement ohne `position: relative` am Parent positionierte sich falsch und wurde als schwarzer Kreis gerendert — entfernt
- **Tabellen-Spaltenumbrüche**: `stratagem-icon-sm` wieder auf 22px (von 26px) damit Stratagemnamen in der History-Tabelle nicht umbrechen
---
## [2.1.2] 2026-03-31
### Changed
- **Stratagem main icon**: Größer (86→110px, mobil 70→88px), hellerer Gold-Filter mit `drop-shadow` Glow, leuchtender Kreis-Hintergrund für besseren Kontrast
- **Queue preview**: Icons größer (36→44px), Labels wrappen jetzt über 2 Zeilen statt abzuschneiden, Breite von 60→72px pro Item, Abstufung der Opazität (75%/55%/40% statt 70%/45%)
- **Dashboard/Tabellen-Icons** (`-md` und `-sm`): Größer (40→52px / 22→26px), stärkerer Gold-Filter, höhere Opazität (0.85→1 / 0.7→0.9) für bessere Erkennbarkeit
---
## [2.1.1] 2026-03-31 ## [2.1.1] 2026-03-31
+50
View File
@@ -0,0 +1,50 @@
# CLAUDE.md helldivers
## Overview
Port: 3012
Type: Authenticated Multiplayer App (WebSocket, SQLite, ELO-Rating, Bcrypt, Helmet)
## Running
```bash
node server.js # Produktion
npm run dev # Entwicklung
```
## Structure
```
helldivers/
├── server.js # Express + WebSocket (ws) + SQLite (better-sqlite3)
├── public/app.js # Gesamte Client-Logik (~1840 Zeilen)
├── public/styles.css
├── public/index.html
├── scripts/ # DB-Migrations / Seed
└── data/helldivers.db
```
## Deployment
- Runs under PM2 on the host
- Nginx reverse-proxies to port 3012
## Branches
- `main` stable, production-ready code
- `bugfixes-features` active development
## Commit Convention
`type: short description`
Types: `feat`, `fix`, `refactor`, `docs`, `chore`
## PROJECT_MAP.md Pflege
Falls Funktionen, API-Routen, WebSocket-Message-Types oder State-Variablen **hinzugefügt, geändert oder entfernt** werden, muss `PROJECT_MAP.md` **vor dem Commit** aktualisiert werden. Gilt für beide KIs (Claude und Codex) gleichermaßen.
## Changelog
- Nach jeder Änderung `CHANGELOG.md` aktualisieren
- Format: `## [Unreleased]` für laufende Änderungen
## Release Automation
- Version source of truth: `package.json`
- Never update `?v=...` asset parameters manually; use `npm run release:sync`
- Run `npm run release:verify` before commit whenever frontend/server/version files changed
- Repo hook: `.githooks/pre-commit` runs release sync + verification automatically
- Use `npm run release:bump:patch`, `release:bump:minor`, or `release:bump:major` for version bumps
+144
View File
@@ -0,0 +1,144 @@
# Project Map helldivers
## Files
| File | Purpose |
|---|---|
| `server.js` | Express + WebSocket (ws) + SQLite (better-sqlite3) Auth, Scores, Matchmaking |
| `public/app.js` | Gesamte Client-Logik (WebSocket-Client, Practice/Match/Lobby) |
| `public/styles.css` | Alle Styles |
| `public/index.html` | App-Shell |
| `data/helldivers.db` | SQLite-Datenbank (Scores, Users, Sessions, History) |
| `scripts/` | Migrations / Seed-Skripte |
---
## app.js
### State Object
```js
state = {
user, currentView, stratagems,
settings: { timerDuration, difficulty },
practice: {
active, mode, current, queue, progress, timeLeft, timerHandle, startTime,
score, streak, selectedCats, dailyTarget,
lives, // Endless mode
drillPool, drillCompleted, drillTotal, // Drill mode
speedrunStart, speedrunPool, speedrunElapsed, // Speedrun mode
sessionStats: { completed, missed, bestTime, stratagems, mistakes, maxStreak }
},
lobby: { online, incoming, pendingChallenge },
match: { roomId, opponent, matchScores, current, myProgress, oppProgress, roundActive, roundHistory },
leaderboard: { activeTab },
history: { page, total },
ws, wsReconnectTimer
}
```
### Constants
| Constant | Purpose |
|---|---|
| `RING_CIRCUMFERENCE` | `219.9` Kreis-Umfang für Timer-Ring-Canvas (r=35) |
| `ELO_RANKS` | Array `{ min, label, color }` ELO-Rangstufen |
| `STRATAGEMS` | Array aller Stratagems mit `name`, `category`, `icon`, `sequence` |
### Key Functions Settings & Navigation
| Function | Purpose |
|---|---|
| `loadSettings() / saveSettings()` | localStorage-Persistenz für Settings |
| `applySettingsToUI()` | Settings auf UI-Elemente anwenden |
| `showView(name)` | Ansicht wechseln (login/dashboard/practice/leaderboard/history/admin) |
| `focusGameplayArea(id)` | Scrollt den aktiven Gameplay-Bereich gezielt in den Viewport |
| `runGameplayCountdown(label, steps)` | Kurzer Start-Countdown vor Practice- und Match-Runden |
| `showGameplayFeedback(id, text, tone, duration)` | Inline-Feedback fuer Treffer, Fehler und Startphasen |
| `connectWS() / wsSend(type, payload)` | WebSocket-Verbindung + Nachrichten senden |
| `handleWSMessage({ type, payload })` | Eingehende WS-Nachrichten dispatchen |
### Key Functions Practice
| Function | Purpose |
|---|---|
| `initPracticeView()` | Practice-View initialisieren |
| `getPool()` | Stratagem-Pool nach Filter + Modus aufbauen |
| `buildQueue() / renderQueue(queue)` | Warteschlange aufbauen und rendern |
| `nextStratagem()` | Nächstes Stratagem anzeigen |
| `handlePracticeInput(dir)` | Pfeilrichtung auswerten (Treffer/Fehler) |
| `startPracticeTimer() / stopPracticeTimer()` | Timer für Timed-Modus |
| `startSpeedrunTimer()` | Timer für Speedrun-Modus |
| `renderPracticeStratagem()` | Aktuelles Stratagem + Pfeile rendern |
| `renderArrows(containerId, sequence, progress)` | Pfeil-Sequenz rendern |
| `trackPracticeMistake()` | Fehler je Stratagem fuer die Session-Statistik erfassen |
| `updateScoreDisplay() / updateStreakDisplay() / updateLivesDisplay()` | Score-UI |
| `openSessionSummary() / closeSessionSummary()` | Sitzungs-Zusammenfassung Modal |
### Key Functions Lobby & Match
| Function | Purpose |
|---|---|
| `updateLobbyView()` | Online-Nutzer-Liste aktualisieren |
| `sendChallenge(target) / acceptChallenge(from) / declineChallenge(from)` | Herausforderungen verwalten |
| `openChallengeModal(from, elo) / closeChallengeModal()` | Challenge-Dialog |
| `renderMatchRound()` | Aktive Match-Runde rendern |
| `handleMatchInput(dir)` | Match-Eingabe auswerten |
| `renderRoundResult(winner)` | Rundensieger anzeigen |
| `openMatchResultModal({ winner, eloChanges, roundHistory })` | Match-Ergebnis-Modal |
### Key Functions Admin & History
| Function | Purpose |
|---|---|
| `renderAdminOverview(data)` | Admin-Dashboard: Nutzer, Scores, Aktivität |
| `renderAdminUsers(users)` | Nutzertabelle im Admin-Bereich |
| `renderAdminActivity(data)` | Aktivitätslog rendern |
| `renderHistoryChart(sessions)` | Verlaufs-Diagramm (Canvas) |
| `renderHistoryPagination(limit)` | Pagination-Buttons |
| `renderDashboard({ stats, rank, elo, ... })` | Haupt-Dashboard-Kacheln |
---
## server.js
### Besonderheiten
- **SQLite** (better-sqlite3) statt JSON-Dateien
- **WebSocket** (ws-Library) für Multiplayer: Lobby, Challenges, Live-Matches
- **ELO-Rating-System** für 1v1-Matches
### Server-Side State
| Variable | Purpose |
|---|---|
| `userSockets` | `Map<userId, ws>` aktive WebSocket-Verbindungen |
| `pendingChallenges` | `Map<challengerId, targetId>` |
| `rooms` | `Map<roomId, roomState>` aktive Match-Räume |
### API Routes
| Route | Purpose |
|---|---|
| `POST /api/login` | Login (rate-limited) |
| `POST /api/logout` | Logout |
| `GET /api/me` | Session-Info |
| `POST /api/change-password` | Passwort ändern |
| `GET /api/users` | Alle Nutzer (Admin) |
| `POST /api/users` | Nutzer erstellen (Admin) |
| `DELETE /api/users/:username` | Nutzer löschen (Admin) |
| `POST /api/users/:username/reset-password` | Temp-Passwort (Admin) |
| `PATCH /api/users/:username` | Nutzerdaten ändern (Admin) |
| `GET /api/admin/overview` | Admin-Dashboard-Daten |
| `GET /api/admin/activity` | Aktivitätslog (Admin) |
| `GET /api/dashboard` | Dashboard-Daten (Stats, Rank, ELO, Daily) |
| `POST /api/scores/practice` | Practice-Session speichern |
| `GET /api/scores/leaderboard` | Gesamt-Leaderboard |
| `GET /api/scores/leaderboard/elo` | ELO-Rangliste |
| `GET /api/scores/leaderboard/speedrun` | Speedrun-Rangliste |
| `GET /api/scores/me` | Eigene Statistiken |
| `GET /api/history` | Session-Verlauf (paginiert) |
| `GET /api/stats/stratagems` | Stratagem-Trefferquoten |
| `GET /api/stratagems` | Stratagem-Liste (für Client-Sync) |
### WebSocket Message Types (Client → Server)
`join`, `challenge`, `accept_challenge`, `decline_challenge`, `ready`, `input`, `leave_match`
### WebSocket Message Types (Server → Client)
`lobby_update`, `challenge_received`, `challenge_declined`, `match_start`, `round_start`, `round_result`, `match_end`, `opponent_progress`, `error`
## Release Automation
- Version source of truth: `package.json`
- `scripts/release-sync.cjs`: synchronisiert lokale CSS/JS-Referenzen in HTML-Dateien auf die aktuelle Paketversion
- `scripts/release-verify.cjs`: prüft Version-Parameter sowie Pflichtdateien wie `CHANGELOG.md` und `PROJECT_MAP.md` vor Commits
- `.githooks/pre-commit`: führt Release-Sync und Verify automatisch aus
+6 -1
View File
@@ -5,7 +5,12 @@
"main": "server.js", "main": "server.js",
"scripts": { "scripts": {
"start": "node server.js", "start": "node server.js",
"dev": "node --watch server.js" "dev": "node --watch server.js",
"release:sync": "node scripts/release-sync.cjs",
"release:verify": "node scripts/release-verify.cjs",
"release:bump:patch": "npm version patch --no-git-tag-version && npm run release:sync",
"release:bump:minor": "npm version minor --no-git-tag-version && npm run release:sync",
"release:bump:major": "npm version major --no-git-tag-version && npm run release:sync"
}, },
"dependencies": { "dependencies": {
"bcryptjs": "^3.0.3", "bcryptjs": "^3.0.3",
+268 -18
View File
@@ -56,7 +56,7 @@ const state = {
speedrunElapsed: 0, speedrunElapsed: 0,
// Session stats // Session stats
sessionStats: { completed: 0, missed: 0, bestTime: Infinity, stratagems: {} }, sessionStats: { completed: 0, missed: 0, bestTime: Infinity, stratagems: {}, mistakes: {}, maxStreak: 0 },
}, },
lobby: { lobby: {
@@ -144,6 +144,46 @@ function showView(name) {
if (name === 'practice') initPracticeView(); if (name === 'practice') initPracticeView();
if (name === 'lobby') updateLobbyView(); if (name === 'lobby') updateLobbyView();
if (name === 'history') loadHistory(); if (name === 'history') loadHistory();
if (name !== 'practice') document.body.classList.remove('in-practice-session');
if (name !== 'match') document.body.classList.remove('in-match-round');
}
function focusGameplayArea(id) {
const el = document.getElementById(id);
if (!el) return;
requestAnimationFrame(() => {
el.scrollIntoView({ behavior: 'smooth', block: 'start' });
});
}
function sleep(ms) {
return new Promise(resolve => setTimeout(resolve, ms));
}
async function runGameplayCountdown(label = 'Deploying', steps = ['3', '2', '1', 'GO']) {
const el = document.getElementById('gameplay-countdown');
if (!el) return;
el.classList.remove('hidden');
for (const step of steps) {
el.innerHTML = `<span class="countdown-label">${esc(label)}</span><strong>${esc(step)}</strong>`;
el.classList.remove('countdown-pop');
void el.offsetWidth;
el.classList.add('countdown-pop');
await sleep(step === 'GO' ? 380 : 520);
}
el.classList.add('hidden');
}
function showGameplayFeedback(id, text, tone = 'info', duration = 900) {
const el = document.getElementById(id);
if (!el) return;
el.textContent = text;
el.className = `gameplay-feedback gameplay-feedback-${tone}`;
clearTimeout(el._hideTimer);
el._hideTimer = setTimeout(() => {
el.className = 'gameplay-feedback hidden';
}, duration);
} }
// ── Auth ────────────────────────────────────────────────────────────────────── // ── Auth ──────────────────────────────────────────────────────────────────────
@@ -239,6 +279,9 @@ document.getElementById('change-password-form').addEventListener('submit', async
document.querySelectorAll('.nav-btn[data-view]').forEach(btn => { document.querySelectorAll('.nav-btn[data-view]').forEach(btn => {
btn.addEventListener('click', () => showView(btn.dataset.view)); btn.addEventListener('click', () => showView(btn.dataset.view));
}); });
document.getElementById('btn-briefing-practice')?.addEventListener('click', () => showView('practice'));
document.getElementById('btn-briefing-lobby')?.addEventListener('click', () => showView('lobby'));
document.getElementById('btn-briefing-leaderboard')?.addEventListener('click', () => showView('leaderboard'));
// ── Hamburger nav ───────────────────────────────────────────────────────────── // ── Hamburger nav ─────────────────────────────────────────────────────────────
function openDrawer() { function openDrawer() {
@@ -317,8 +360,9 @@ function handleWSMessage({ type, payload }) {
state.match.current = payload.stratagem; state.match.current = payload.stratagem;
state.match.myProgress = 0; state.match.myProgress = 0;
state.match.oppProgress = 0; state.match.oppProgress = 0;
state.match.roundActive = true; state.match.roundActive = false;
renderMatchRound(); renderMatchRound();
beginMatchRound();
break; break;
case 'input-result': case 'input-result':
@@ -365,6 +409,7 @@ async function loadDashboard() {
function renderDashboard({ stats, rank, elo, eloRank: rankLabel, online, recent, daily }) { function renderDashboard({ stats, rank, elo, eloRank: rankLabel, online, recent, daily }) {
const myRank = eloRankFor(elo || 1000); const myRank = eloRankFor(elo || 1000);
const onlineOthers = (online || []).filter(u => u.name !== state.user?.user);
setText('dash-hero-name', state.user.user); setText('dash-hero-name', state.user.user);
setText('dash-rank-label', rankLabel || myRank.label); setText('dash-rank-label', rankLabel || myRank.label);
setText('dash-elo', elo || 1000); setText('dash-elo', elo || 1000);
@@ -375,14 +420,22 @@ function renderDashboard({ stats, rank, elo, eloRank: rankLabel, online, recent,
setText('dash-sessions', stats.sessions || 0); setText('dash-sessions', stats.sessions || 0);
const wr = stats.matches > 0 ? Math.round(((stats.wins || 0) / stats.matches) * 100) + '%' : '—'; const wr = stats.matches > 0 ? Math.round(((stats.wins || 0) / stats.matches) * 100) + '%' : '—';
setText('dash-win-rate', wr); setText('dash-win-rate', wr);
setText('dash-online-count', String(onlineOthers.length));
if (daily) { if (daily) {
setText('dash-daily-name', daily.stratagem.name); setText('dash-daily-name', daily.stratagem.name);
setText('dash-daily-category', daily.stratagem.category); setText('dash-daily-category', daily.stratagem.category);
setText('dash-daily-best', daily.bestTime ? (daily.bestTime / 1000).toFixed(2) + 's' : 'No record yet'); setText('dash-daily-best', daily.bestTime ? (daily.bestTime / 1000).toFixed(2) + 's' : 'No record yet');
setText('dash-daily-focus', daily.stratagem.category);
setText('dash-status-line', daily.bestTime
? `Daily focus is ${daily.stratagem.name}. Your best run is ${(daily.bestTime / 1000).toFixed(2)}s, so a cleaner sequence could move you up fast.`
: `Daily focus is ${daily.stratagem.name}. No record logged yet, so this is a clean chance to set the pace for today.`);
state.practice.dailyTarget = daily.stratagem.name; state.practice.dailyTarget = daily.stratagem.name;
renderDailySequencePreview(daily.stratagem.sequence); renderDailySequencePreview(daily.stratagem.sequence);
setIcon(document.getElementById('dash-daily-icon'), daily.stratagem.icon); setIcon(document.getElementById('dash-daily-icon'), daily.stratagem.icon);
} else {
setText('dash-daily-focus', 'Stand By');
setText('dash-status-line', 'Systems are online. Review recent runs, sharpen your execution, and push your rank before heading into the arena.');
} }
const tbody = document.getElementById('dash-recent'); const tbody = document.getElementById('dash-recent');
@@ -469,6 +522,7 @@ function showPracticeIdle() {
document.getElementById('hud-lives-wrap').classList.add('hidden'); document.getElementById('hud-lives-wrap').classList.add('hidden');
document.getElementById('hud-timer-wrap').classList.remove('hidden'); document.getElementById('hud-timer-wrap').classList.remove('hidden');
document.getElementById('danger-vignette').classList.add('hidden'); document.getElementById('danger-vignette').classList.add('hidden');
document.body.classList.remove('in-practice-session');
state.practice.active = false; state.practice.active = false;
} }
@@ -479,10 +533,10 @@ function getPool() {
} }
function resetSessionStats() { function resetSessionStats() {
state.practice.sessionStats = { completed: 0, missed: 0, bestTime: Infinity, stratagems: {} }; state.practice.sessionStats = { completed: 0, missed: 0, bestTime: Infinity, stratagems: {}, mistakes: {}, maxStreak: 0 };
} }
function startPractice() { async function startPractice() {
const pool = getPool(); const pool = getPool();
if (!pool.length) { showToast('No stratagems match the selected filters'); return; } if (!pool.length) { showToast('No stratagems match the selected filters'); return; }
@@ -496,6 +550,7 @@ function startPractice() {
document.getElementById('practice-idle').classList.add('hidden'); document.getElementById('practice-idle').classList.add('hidden');
document.getElementById('practice-active').classList.remove('hidden'); document.getElementById('practice-active').classList.remove('hidden');
document.body.classList.add('in-practice-session');
if (mode === 'drill') { if (mode === 'drill') {
state.practice.drillPool = shuffleArray([...pool]); state.practice.drillPool = shuffleArray([...pool]);
@@ -526,6 +581,9 @@ function startPractice() {
setText('hud-timer-label', 'TIME'); setText('hud-timer-label', 'TIME');
} }
focusGameplayArea('practice-active');
showGameplayFeedback('practice-feedback', 'Stand by. Deployment starting.', 'info', 1500);
await runGameplayCountdown('Deployment');
nextStratagem(); nextStratagem();
} }
@@ -642,8 +700,10 @@ function startPracticeTimer() {
document.getElementById('danger-vignette').classList.add('hidden'); document.getElementById('danger-vignette').classList.add('hidden');
state.practice.streak = 0; state.practice.streak = 0;
state.practice.sessionStats.missed++; state.practice.sessionStats.missed++;
trackPracticeMistake();
updateStreakDisplay(); updateStreakDisplay();
shakeIcon(); shakeIcon();
showGameplayFeedback('practice-feedback', 'Timer expired. Next stratagem.', 'danger', 1000);
setTimeout(nextStratagem, 500); setTimeout(nextStratagem, 500);
} }
}, 1000); }, 1000);
@@ -687,6 +747,7 @@ function renderPracticeStratagem() {
if (iconEl) iconEl.style.display = 'none'; if (iconEl) iconEl.style.display = 'none';
if (fallbackEl) fallbackEl.style.display = ''; if (fallbackEl) fallbackEl.style.display = '';
} }
showGameplayFeedback('practice-feedback', `${s.name} ready. Execute the sequence.`, 'info', 900);
} }
function setIcon(imgEl, src) { function setIcon(imgEl, src) {
@@ -698,17 +759,25 @@ function setIcon(imgEl, src) {
} }
function renderArrows(containerId, sequence, progress) { function renderArrows(containerId, sequence, progress) {
const ARROW = { up: '↑', down: '↓', left: '←', right: '→' };
const el = document.getElementById(containerId); const el = document.getElementById(containerId);
if (!el) return; if (!el) return;
el.innerHTML = sequence.map((dir, i) => { el.innerHTML = sequence.map((dir, i) => {
let cls = 'arrow-key'; let cls = 'arrow-key';
if (i < progress) cls += ' completed'; if (i < progress) cls += ' completed';
if (i === progress) cls += ' active'; if (i === progress) cls += ' active';
return `<div class="${cls}">${ARROW[dir]}</div>`; return `<div class="${cls}">${renderDirGlyph(dir)}</div>`;
}).join(''); }).join('');
} }
function renderDirGlyph(dir) {
return `<span class="dir-glyph dir-${esc(dir)}" aria-hidden="true">
<svg viewBox="0 0 64 64" focusable="false">
<path class="dir-line" d="M32 50 L32 18" />
<path class="dir-head" d="M32 12 L20 24 H28 V50 H36 V24 H44 Z" />
</svg>
</span>`;
}
function updateTimerDisplay(total) { function updateTimerDisplay(total) {
if (state.practice.mode === 'speedrun') return; if (state.practice.mode === 'speedrun') return;
const el = document.getElementById('practice-timer'); const el = document.getElementById('practice-timer');
@@ -754,6 +823,13 @@ function updateLivesDisplay() {
).join(''); ).join('');
} }
function trackPracticeMistake() {
const current = state.practice.current;
if (!current) return;
const mistakes = state.practice.sessionStats.mistakes;
mistakes[current.name] = (mistakes[current.name] || 0) + 1;
}
function updateDrillProgress() { function updateDrillProgress() {
const p = state.practice; const p = state.practice;
setText('drill-progress-text', p.drillCompleted + ' / ' + p.drillTotal); setText('drill-progress-text', p.drillCompleted + ' / ' + p.drillTotal);
@@ -801,6 +877,7 @@ function handlePracticeInput(dir) {
p.score += pts; p.score += pts;
p.streak++; p.streak++;
p.sessionStats.maxStreak = Math.max(p.sessionStats.maxStreak, p.streak);
p.sessionStats.completed++; p.sessionStats.completed++;
if (elapsed < p.sessionStats.bestTime) p.sessionStats.bestTime = elapsed; if (elapsed < p.sessionStats.bestTime) p.sessionStats.bestTime = elapsed;
@@ -825,6 +902,7 @@ function handlePracticeInput(dir) {
// Score popup // Score popup
showScorePopup('+' + pts); showScorePopup('+' + pts);
showGameplayFeedback('practice-feedback', `${p.streak >= 5 ? 'Perfect chain' : 'Confirmed'} +${pts}`, 'success', 1100);
api('POST', '/scores/practice', { api('POST', '/scores/practice', {
stratagem: p.current.name, stratagem: p.current.name,
@@ -852,6 +930,8 @@ function handlePracticeInput(dir) {
cur?.classList.add('flash-wrong'); cur?.classList.add('flash-wrong');
p.progress = 0; p.progress = 0;
shakeIcon(); shakeIcon();
trackPracticeMistake();
showGameplayFeedback('practice-feedback', 'Wrong input. Sequence reset.', 'danger', 1000);
if (mode === 'endless') { if (mode === 'endless') {
p.lives--; p.lives--;
@@ -931,7 +1011,7 @@ function openSessionSummary() {
grid.innerHTML = [ grid.innerHTML = [
{ label: 'Score', val: p.score }, { label: 'Score', val: p.score },
{ label: 'Completed', val: s.completed }, { label: 'Completed', val: s.completed },
{ label: 'Streak Max',val: p.streak }, { label: 'Streak Max',val: s.maxStreak },
{ label: 'Accuracy', val: accuracy }, { label: 'Accuracy', val: accuracy },
{ label: 'Best Time', val: bestTimeStr }, { label: 'Best Time', val: bestTimeStr },
{ label: 'Mode', val: p.mode }, { label: 'Mode', val: p.mode },
@@ -941,6 +1021,20 @@ function openSessionSummary() {
</div>`).join(''); </div>`).join('');
} }
const insightsEl = document.getElementById('summary-insights');
if (insightsEl) {
const mistakeEntries = Object.entries(s.mistakes).sort((a, b) => b[1] - a[1]);
const stratEntries = Object.entries(s.stratagems)
.map(([name, stat]) => ({ name, avg: stat.totalMs / stat.count, count: stat.count }))
.sort((a, b) => b.avg - a.avg);
const insights = [
`Accuracy landed at ${accuracy}${s.maxStreak >= 5 ? ` with a peak streak of ${s.maxStreak}.` : '.'}`,
stratEntries[0] ? `Slowest repeated stratagem was ${stratEntries[0].name} at ${(stratEntries[0].avg / 1000).toFixed(2)}s average.` : 'Run more sessions to identify your slowest stratagems.',
mistakeEntries[0] ? `Most common reset came from ${mistakeEntries[0][0]} with ${mistakeEntries[0][1]} mistake${mistakeEntries[0][1] > 1 ? 's' : ''}.` : 'No input resets recorded in this session.',
];
insightsEl.innerHTML = insights.map(line => `<div class="summary-insight">${esc(line)}</div>`).join('');
}
// Top stratagems by count // Top stratagems by count
const topEl = document.getElementById('summary-top-stratagems'); const topEl = document.getElementById('summary-top-stratagems');
if (topEl) { if (topEl) {
@@ -1087,6 +1181,9 @@ function renderMatchWaiting() {
btn.textContent = 'READY'; btn.textContent = 'READY';
btn.disabled = false; btn.disabled = false;
btn.classList.remove('hidden'); btn.classList.remove('hidden');
document.body.classList.remove('in-match-round');
showGameplayFeedback('match-feedback', 'Waiting for both divers to ready up.', 'info', 1200);
updateMatchProgressUI();
// Hide match icon // Hide match icon
const matchIcon = document.getElementById('match-icon'); const matchIcon = document.getElementById('match-icon');
if (matchIcon) matchIcon.style.display = 'none'; if (matchIcon) matchIcon.style.display = 'none';
@@ -1111,27 +1208,35 @@ function renderMatchRound() {
setText('match-category', m.current.category); setText('match-category', m.current.category);
document.getElementById('match-round-area').classList.remove('hidden'); document.getElementById('match-round-area').classList.remove('hidden');
document.getElementById('match-ready-btn').classList.add('hidden'); document.getElementById('match-ready-btn').classList.add('hidden');
document.body.classList.add('in-match-round');
renderArrows('match-me-sequence', m.current.sequence, 0); renderArrows('match-me-sequence', m.current.sequence, 0);
renderArrows('match-opp-sequence', m.current.sequence, 0); renderArrows('match-opp-sequence', m.current.sequence, 0);
updateMatchProgressUI();
// Show stratagem icon in match // Show stratagem icon in match
const strat = state.stratagems.find(s => s.name === m.current.name); const strat = state.stratagems.find(s => s.name === m.current.name);
const matchIcon = document.getElementById('match-icon'); const matchIcon = document.getElementById('match-icon');
if (strat?.icon) setIcon(matchIcon, strat.icon); if (strat?.icon) setIcon(matchIcon, strat.icon);
else if (matchIcon) matchIcon.style.display = 'none'; else if (matchIcon) matchIcon.style.display = 'none';
focusGameplayArea('match-round-area');
} }
function updateMyArrows(correct) { function updateMyArrows(correct) {
renderArrows('match-me-sequence', state.match.current.sequence, state.match.myProgress); renderArrows('match-me-sequence', state.match.current.sequence, state.match.myProgress);
updateMatchProgressUI();
if (!correct) { if (!correct) {
const el = document.getElementById('match-me-sequence'); const el = document.getElementById('match-me-sequence');
el?.classList.add('flash-wrong-seq'); el?.classList.add('flash-wrong-seq');
setTimeout(() => el?.classList.remove('flash-wrong-seq'), 350); setTimeout(() => el?.classList.remove('flash-wrong-seq'), 350);
showGameplayFeedback('match-feedback', 'Input rejected. Recover now.', 'danger', 900);
} else {
showGameplayFeedback('match-feedback', 'Confirmed. Keep pushing.', 'success', 550);
} }
} }
function updateOppArrows() { function updateOppArrows() {
renderArrows('match-opp-sequence', state.match.current.sequence, state.match.oppProgress); renderArrows('match-opp-sequence', state.match.current.sequence, state.match.oppProgress);
updateMatchProgressUI();
} }
function handleMatchInput(dir) { function handleMatchInput(dir) {
@@ -1139,14 +1244,36 @@ function handleMatchInput(dir) {
wsSend('input-arrow', { direction: dir }); wsSend('input-arrow', { direction: dir });
} }
function updateMatchProgressUI() {
const total = state.match.current?.sequence?.length || 0;
const myFill = document.getElementById('match-me-progress-fill');
const oppFill = document.getElementById('match-opp-progress-fill');
const myText = document.getElementById('match-me-progress-text');
const oppText = document.getElementById('match-opp-progress-text');
if (myFill) myFill.style.width = total ? `${(state.match.myProgress / total) * 100}%` : '0%';
if (oppFill) oppFill.style.width = total ? `${(state.match.oppProgress / total) * 100}%` : '0%';
if (myText) myText.textContent = `${state.match.myProgress} / ${total}`;
if (oppText) oppText.textContent = `${state.match.oppProgress} / ${total}`;
}
async function beginMatchRound() {
focusGameplayArea('match-round-area');
showGameplayFeedback('match-feedback', 'Round locked. Prepare to input.', 'info', 1200);
await runGameplayCountdown('Round Start');
state.match.roundActive = true;
showGameplayFeedback('match-feedback', 'Go go go.', 'success', 700);
}
function renderRoundResult(winner) { function renderRoundResult(winner) {
const won = winner === state.user.user; const won = winner === state.user.user;
setText('match-status', won ? '✓ ROUND WON' : '✗ ROUND LOST'); setText('match-status', won ? '✓ ROUND WON' : '✗ ROUND LOST');
renderMatchScores(); renderMatchScores();
showGameplayFeedback('match-feedback', won ? 'Round secured.' : 'Opponent took the round.', won ? 'success' : 'danger', 1200);
const matchIcon = document.getElementById('match-icon'); const matchIcon = document.getElementById('match-icon');
if (matchIcon) matchIcon.style.display = 'none'; if (matchIcon) matchIcon.style.display = 'none';
setTimeout(() => { setTimeout(() => {
document.getElementById('match-round-area').classList.add('hidden'); document.getElementById('match-round-area').classList.add('hidden');
document.body.classList.remove('in-match-round');
const btn = document.getElementById('match-ready-btn'); const btn = document.getElementById('match-ready-btn');
btn.textContent = 'Ready for next round'; btn.textContent = 'Ready for next round';
btn.disabled = false; btn.disabled = false;
@@ -1388,6 +1515,9 @@ document.getElementById('history-pagination')?.addEventListener('click', (e) =>
document.getElementById('history-filter-mode')?.addEventListener('change', () => { state.history.page = 1; loadHistory(); }); document.getElementById('history-filter-mode')?.addEventListener('change', () => { state.history.page = 1; loadHistory(); });
document.getElementById('history-filter-cat')?.addEventListener('change', () => { state.history.page = 1; loadHistory(); }); document.getElementById('history-filter-cat')?.addEventListener('change', () => { state.history.page = 1; loadHistory(); });
document.getElementById('admin-user-search')?.addEventListener('input', () => {
renderAdminUsers(state.adminUsers || []);
});
async function loadStratagemStats() { async function loadStratagemStats() {
try { try {
@@ -1416,25 +1546,143 @@ async function loadStratagemStats() {
async function loadAdmin() { async function loadAdmin() {
if (state.user?.role !== 'admin') { showView('dashboard'); return; } if (state.user?.role !== 'admin') { showView('dashboard'); return; }
try { try {
const users = await api('GET', '/users'); const [users, overview, activity] = await Promise.all([
api('GET', '/users'),
api('GET', '/admin/overview'),
api('GET', '/admin/activity'),
]);
state.adminUsers = users;
renderAdminOverview(overview);
renderAdminUsers(users); renderAdminUsers(users);
renderAdminActivity(activity);
} catch { } catch {
document.getElementById('admin-users').innerHTML = '<span class="muted">Error loading users</span>'; document.getElementById('admin-users').innerHTML = '<span class="muted">Error loading users</span>';
} }
} }
function renderAdminOverview(data = {}) {
setText('admin-total-users', String(data.totals?.users ?? 0));
setText('admin-total-admins', String(data.totals?.admins ?? 0));
setText('admin-temp-passwords', String(data.totals?.tempPasswords ?? 0));
setText('admin-practice-sessions', String(data.activity?.practiceSessions ?? 0));
const topUser = data.topUser?.username || 'No data yet';
const topMeta = data.topUser
? `Score ${Number(data.topUser.totalScore || 0).toLocaleString()} across ${data.topUser.sessions || 0} sessions`
: 'Waiting for enough runs to identify a standout Helldiver.';
setText('admin-top-user', topUser);
setText('admin-top-user-meta', topMeta);
}
function renderAdminUsers(users) { function renderAdminUsers(users) {
const el = document.getElementById('admin-users'); const el = document.getElementById('admin-users');
el.innerHTML = users.map(u => const search = document.getElementById('admin-user-search')?.value.trim().toLowerCase() || '';
`<div class="admin-user-row"> const filtered = users.filter((u) => {
<span style="font-family:var(--font-mono);flex:1">${esc(u.username)}</span> if (!search) return true;
<span class="badge badge-${u.role}">${u.role}</span> return [
${u.mustChange ? '<span class="badge badge-warning">temp pw</span>' : ''} u.username,
${u.username !== state.user.user u.role,
? `<button class="btn btn-sm btn-danger" data-action="delete-user" data-user="${esc(u.username)}">Delete</button>` String(u.elo ?? ''),
: ''} String(u.sessions ?? ''),
</div>` ].join(' ').toLowerCase().includes(search);
).join(''); });
if (!filtered.length) {
el.innerHTML = '<div class="admin-empty">No matching users found.</div>';
return;
}
el.innerHTML = filtered.map((u) => {
const isSelf = u.username === state.user.user;
const nextRole = u.role === 'admin' ? 'user' : 'admin';
const lastPlayed = u.lastPlayed ? new Date(u.lastPlayed).toLocaleString() : 'No activity yet';
return `<div class="admin-user-row">
<div class="admin-user-main">
<div class="admin-user-name-row">
<span class="user-name">${esc(u.username)}</span>
<span class="badge badge-${u.role}">${u.role}</span>
${u.mustChange ? '<span class="badge badge-warning">temp pw</span>' : ''}
${isSelf ? '<span class="badge">you</span>' : ''}
</div>
<div class="admin-user-meta">
<span>ELO ${Number(u.elo ?? 1000)}</span>
<span>${Number(u.sessions ?? 0)} sessions</span>
<span>${esc(lastPlayed)}</span>
</div>
</div>
<div class="admin-user-actions">
<button class="btn btn-muted btn-sm" data-action="reset-password" data-user="${esc(u.username)}">Reset password</button>
${isSelf ? '' : `<button class="btn btn-sm" data-action="toggle-role" data-user="${esc(u.username)}" data-role="${nextRole}">${u.role === 'admin' ? 'Make user' : 'Make admin'}</button>`}
${isSelf ? '' : `<button class="btn btn-sm btn-danger" data-action="delete-user" data-user="${esc(u.username)}">Delete</button>`}
</div>
</div>`;
}).join('');
}
function renderAdminActivity(data = {}) {
const practiceEl = document.getElementById('admin-recent-practice');
const matchesEl = document.getElementById('admin-recent-matches');
const practiceRows = data.practice || [];
const matchRows = data.matches || [];
practiceEl.innerHTML = practiceRows.length
? practiceRows.map((row) => `
<div class="admin-activity-item">
<div class="admin-activity-head">
<strong>${esc(row.username)}</strong>
<span>${esc(row.mode || 'practice')}</span>
</div>
<div class="admin-activity-body">${esc(row.stratagem || 'Unknown stratagem')}</div>
<div class="admin-activity-meta">
<span>${Number(row.score || 0)} pts</span>
<span>${row.created_at ? esc(new Date(row.created_at).toLocaleString()) : '—'}</span>
</div>
</div>
`).join('')
: '<div class="admin-empty">No recent practice activity.</div>';
matchesEl.innerHTML = matchRows.length
? matchRows.map((row) => `
<div class="admin-activity-item">
<div class="admin-activity-head">
<strong>${esc(row.winner || 'Pending')}</strong>
<span>${esc(row.winner || 'Pending')} vs ${esc(row.loser || 'Unknown')}</span>
</div>
<div class="admin-activity-body">Scoreline: ${row.winner_rounds ?? 0} : ${row.loser_rounds ?? 0}</div>
<div class="admin-activity-meta">
<span>${row.created_at ? esc(new Date(row.created_at).toLocaleString()) : '—'}</span>
</div>
</div>
`).join('')
: '<div class="admin-empty">No recent match activity.</div>';
}
async function resetUserPassword(username) {
if (!confirm(`Reset password for "${username}" and require a password change on next login?`)) return;
try {
const result = await api('POST', `/users/${encodeURIComponent(username)}/reset-password`);
const pwEl = document.getElementById('new-pw-display');
pwEl.textContent = `Temp password for ${username}: ${result.tempPassword}`;
pwEl.classList.remove('hidden');
showToast(`Password reset for ${username}`);
loadAdmin();
} catch (err) {
showToast('Error: ' + err.message);
}
}
async function updateUserRole(username, role) {
const label = role === 'admin' ? 'promote' : 'demote';
if (!confirm(`Really ${label} "${username}"?`)) return;
try {
await api('PATCH', `/users/${encodeURIComponent(username)}`, { role });
showToast(`Role updated for ${username}`);
loadAdmin();
} catch (err) {
showToast('Error: ' + err.message);
}
} }
async function createUser() { async function createUser() {
@@ -1478,6 +1726,8 @@ document.addEventListener('click', (e) => {
if (action === 'challenge' && user) sendChallenge(user); if (action === 'challenge' && user) sendChallenge(user);
if (action === 'accept' && user) acceptChallenge(user); if (action === 'accept' && user) acceptChallenge(user);
if (action === 'decline' && user) declineChallenge(user); if (action === 'decline' && user) declineChallenge(user);
if (action === 'reset-password' && user) resetUserPassword(user);
if (action === 'toggle-role' && user) updateUserRole(user, btn.dataset.role);
if (action === 'delete-user' && user) deleteUser(user); if (action === 'delete-user' && user) deleteUser(user);
if (action === 'toggle-cat' && cat) toggleCategory(cat); if (action === 'toggle-cat' && cat) toggleCategory(cat);
+15 -1
View File
@@ -1 +1,15 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 126 126"><g><path d="M29.227 20.952A18.825 18.825 0 1 1 10.4 39.778a18.825 18.825 0 0 1 18.827-18.826Zm0 2.121a16.7 16.7 0 1 1-16.7 16.7 16.7 16.7 0 0 1 16.7-16.7Z" fill="#fff" fill-rule="evenodd"/><path d="M29.366 26.681a12.776 12.776 0 1 1-12.76 12.776 12.768 12.768 0 0 1 12.76-12.776Zm0 2a10.774 10.774 0 1 1-10.76 10.774 10.767 10.767 0 0 1 10.76-10.772Z" fill="#fff" fill-rule="evenodd"/><path d="M29.469 33.084a6.6 6.6 0 1 1-6.6 6.6 6.6 6.6 0 0 1 6.6-6.6Z" fill="#fff" fill-rule="evenodd"/></g><g><path d="M99.285 47.981h-2.676L78.414 43.7h-3.746v1.07l-2.676 3.211h-9.1l2.676-5.887H63.43l-3.211 5.887h-4.281l2.676-7.492v-1.07l-2.676-7.492h4.281l3.211 5.887h2.14l-2.676-5.887h9.1l2.676 3.211v1.07h3.746l18.2-4.281h2.676l19.8 4.281V43.7Z" fill="#fff" fill-rule="evenodd"/></g><path fill="#49adc9" fill-rule="evenodd" d="M114 85h-3l-1 1-2 1H98a3.782 3.782 0 0 0-3-1h-3a4.414 4.414 0 0 0-1.949.538c.005 1.935-1.309 1.5-2.33 1.577A2.564 2.564 0 0 1 86 87l-4.963.279-1.253.418h-2.507l.835.835v.418h.836v-.418h2.924s-.034-.832 1.254-.832a1.811 1.811 0 0 1 1.674 1.25s.963 3.05 1.668 6.267-.836 2.924-.836 2.924c-1.5 0-1.671-.835-1.671-.835l-.835-6.684h-1.253V90.2h-2.925v-.414l-2.089.418-.836.418v2.088l-.836 1.253h-6.265l-3.342 6.267h-.836l-2.507-1.253L66 93.128v-1.671l.418-.835h-1.256l-.836-.422-1.253 2.51h-3.76l-.413-.835h-2.094v-.418h-2.924v.418h-2.507v-.418l-.418-.418h-.417l-.418.418H49.7v10.026h-1.667l-2.507-12.115 11.28-.418v-.418H49.7v-.417h.418V87.7h-.832v.835H35.5s-1.147-2.089-2.507-2.089a3.989 3.989 0 0 0-2.507 1.254h-3.342A58.111 58.111 0 0 1 16.7 86.444a7.269 7.269 0 0 0-2.924 0 3.793 3.793 0 0 1-2.089 1.671H8.762s-1.671-.981-1.671-5.431 1.671-4.6 1.671-4.6h2.507a2.476 2.476 0 0 1 2.507 1.671h2.089c5.32-1.636 15.04-1.253 15.04-1.253a1.138 1.138 0 0 0 .836.836h2.089c.842 0 1.671-1.671 1.671-1.671h2.089v.418h2.924v-.415h1.671v.418h3.342v-.418h2.089v.418h2.924v-.418h.418v-.417h11.28v.417h.835v.418h5.013v-.418h7.52l.418-.418h1.671l.418.836 3.342.418 2.507.418L86 79c.645-2.192 2-2 2-2s1.574-.045 2.293 2.579A4.185 4.185 0 0 0 92 80h3a3.782 3.782 0 0 0 3-1h10l2 1 1 1h3l5 2Z" /></svg> <svg viewBox="0 0 256 256" xmlns="http://www.w3.org/2000/svg" xml:space="preserve" style="fill-rule:evenodd;clip-rule:evenodd;stroke-linejoin:round;stroke-miterlimit:2">
<desc>Traced by Dogo314</desc>
<g transform="translate(-276 -306)">
<path style="fill:none" d="M276 306h256v256H276z"/>
<clipPath id="a">
<path d="M276 306h256v256H276z"/>
</clipPath>
<g clip-path="url(#a)">
<path style="fill:#011419;" transform="translate(0 306)" d="M276 0h256v256H276z"/>
<path d="M2575.238 2482.001 2575 2481v-4h13v-1h5v1h6v-2h-13v-1h-29v1h-4v-2l-4-3h-2l-4 3h-12l-17-3h-6l-4 3h-7c-2 0-3-4-3-10s1-10 3-10h7l4 3h6l17-3h12l4 3h2l4-3v-2h4v1h29v-1h25v1h28v-1h4v2l14 2h3l3-3h5v4l3 2h11l4-2h22l4 2c4 0 9 1 18 4v2c-9 3-14 4-18 4l-4 2h-22l-4-2h-11l-3 2v4h-5l-3-3h-3l-14 2v2h3a2.5 2.5 0 1 1 4 2.999V2490a2 2 0 1 1-4 0v-12h-7a1 1 0 0 0-1 1v3c0 .796-.316 1.559-.879 2.121a3 3 0 0 1-2.121.879h-10l-6 12-5-3 6-11v-4h-6l-2 4h-8a2 2 0 0 0-2-2h-18v21h-4l-.483-2.027a1 1 0 1 0-.463-1.946l-.492-2.066a1 1 0 0 0-.463-1.943l-.492-2.07a1.001 1.001 0 0 0-.462-1.938l-.495-2.078a1 1 0 0 0-.364-1.932q-.048 0-.094.004l-.498-2.091a1 1 0 0 0-.408-1.913zM2630 2478h-1l1 2-.379 1.515a2.002 2.002 0 0 0 1.941 2.485H2634a3 3 0 0 0 3-3v-2a.997.997 0 0 0-1-1h-4c0 2 0 4 1 5-1 0-2-2-2-3l-1-1z" style="fill:#53bcda" transform="translate(-2208 -1992)"/>
<path d="M2545 2348c18.213 0 33 14.787 33 33s-14.787 33-33 33-33-14.787-33-33 14.787-33 33-33m0 4c-16.006 0-29 12.994-29 29s12.994 29 29 29 29-12.994 29-29-12.994-29-29-29m0 7c12.142 0 22 9.858 22 22s-9.858 22-22 22-22-9.858-22-22 9.858-22 22-22m0 4c-9.934 0-18 8.066-18 18s8.066 18 18 18 18-8.066 18-18-8.066-18-18-18m0 6c6.623 0 12 5.377 12 12s-5.377 12-12 12-12-5.377-12-12 5.377-12 12-12m56 14-5-16h9l4 11h4l-4-11h17l6 8h5l38-8 38 8v16l-38 8-38-8h-5l-6 8h-17l4-11h-4l-4 11h-9z" style="fill:#ffe" transform="translate(-2208 -1992)"/>
<path d="M276 15V0h256v15zM518 .82H290v13.36h228z" style="fill:#5abeda" transform="matrix(1 0 0 17.06667 0 306)"/>
</g>
</g>
</svg>

Before

Width:  |  Height:  |  Size: 2.1 KiB

After

Width:  |  Height:  |  Size: 2.0 KiB

+15 -1
View File
@@ -1 +1,15 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 126 126"><g><path fill="#49adc9" fill-rule="evenodd" d="M106 94v-1H76v3h-3v-1h-2v11h2v2h-6v-2h2V96l-2-2h-2l-1 1H54l-1 1h-3v5h-2v4h-8.947L39 104h-1v-5l-2-1a3.229 3.229 0 0 1-2 1 11.073 11.073 0 0 1-3-1l-3 3v4h-4l-1-3 4-4v-2l-1-2h-8l-1 2v1l-1 2h-5l-4 3H4V90l3-2h20l1-1h6v-2h-5v-4h20v3l-2 1h-3v2h6l1 1h1v-2h9l2 2h11l2 2h30v-1h15v5h-15Zm-91-1H7v5h3l5-4v-1Zm19 2c-1.1 0-2 .448-2 1a1.152 1.152 0 0 0 1 .861V97h2v-.139A1.152 1.152 0 0 0 36 96c0-.552-.9-1-2-1Z"/><path d="M60 17h4v50h-4z" fill="#fff"/><path d="M37 40h51v4H37z" fill="#fff"/><path fill="#fff" fill-rule="evenodd" d="M62 22a20 20 0 1 1-20 20 20 20 0 0 1 20-20Zm0 5a15 15 0 1 1-15 15 15 15 0 0 1 15-15Z"/></g></svg> <svg viewBox="0 0 256 256" xmlns="http://www.w3.org/2000/svg" xml:space="preserve" style="fill-rule:evenodd;clip-rule:evenodd;stroke-linejoin:round;stroke-miterlimit:2">
<desc>Traced by Dogo314</desc>
<g transform="translate(-276 -306)">
<path style="fill:none" d="M276 306h256v256H276z"/>
<clipPath id="a">
<path d="M276 306h256v256H276z"/>
</clipPath>
<g clip-path="url(#a)">
<path style="fill:#011419;" transform="translate(0 306)" d="M276 0h256v256H276z"/>
<path d="M690 2486h-32v8h-4v7h-15l-3-3v-7h-1v-2h-1.172a2 2 0 0 0-1.414.586l-.535.535a3 3 0 0 1-2.122.879h-2.049c-.466 0-.925-.108-1.341-.317l-1.788-.893a2 2 0 0 0-2.558.679l-4.776 7.163a1 1 0 0 0-.138.797l.467 1.866a1 1 0 0 1-1.258 1.2l-6.998-2.1a1 1 0 0 1-.535-1.527l7.058-10.195a2 2 0 0 0-.535-2.802L611 2482h-12l-3.522 5.635a6 6 0 0 1-4.239 2.759l-10.579 1.512a2 2 0 0 0-1.131.565l-1.943 1.943a2 2 0 0 1-1.414.586h-.344a2 2 0 0 1-1.414-.586l-.828-.828a2 2 0 0 1-.586-1.414v-2.465c0-.453.18-.887.5-1.207l.5-.5v-8l-.766-.766a.8.8 0 0 1-.234-.565v-2.708c0-.607.276-1.182.751-1.561l3.701-2.962a2 2 0 0 1 1.25-.438H615l5-4h7v-1h1v-3h-8v-4h9v-2l1-1h1l1 1v2h2l1-1h6l1 1h3l4-1h9v6h-9l-4-1h-3l-1 1v2h1v1h37l5 5h20l2 2h55l2.071-2.071H787l2 2.071v4l-2 2h-24l-2-2h-56v8h-3l-1-1v-2h-5.038l-.962 2v19h1l2-2h1v1l-3 3h1l2-2h1v1l-3 3h-8l-3-3v-1l-1-1v-1h1l2 2h2zm-110-6v7l15.862-5.047a1 1 0 0 0-.303-1.953zm50.382 9a1 1 0 0 0 .894-.553l.402-.802c.192-.385.117-.85-.188-1.155l-1.197-1.197a1 1 0 0 0-.707-.293h-2.172a1 1 0 0 0-.707.293l-1 1a1 1 0 0 0 0 1.414l1 1a1 1 0 0 0 .707.293zm2.618-26v3h2v-3z" style="fill:#53bcda" transform="translate(-276 -1992)"/>
<path d="M644.22 2394H636v-8h8.22c1.847-16.676 15.104-29.933 31.78-31.78V2342h8v12.22c16.676 1.847 29.933 15.104 31.78 31.78H724v8h-8.22c-1.847 16.676-15.104 29.933-31.78 31.78v8.22h-8v-8.22c-16.676-1.847-29.933-15.104-31.78-31.78m31.78-31.716c-12.255 1.756-21.96 11.461-23.716 23.716H676zM707.716 2386c-1.756-12.255-11.461-21.96-23.716-23.716V2386zM684 2417.716c12.255-1.756 21.96-11.461 23.716-23.716H684zM652.284 2394c1.756 12.255 11.461 21.96 23.716 23.716V2394z" style="fill:#ffe" transform="translate(-276 -1992)"/>
<path d="M276 15V0h256v15zM518 .82H290v13.36h228z" style="fill:#5abeda" transform="matrix(1 0 0 17.06667 0 306)"/>
</g>
</g>
</svg>

Before

Width:  |  Height:  |  Size: 724 B

After

Width:  |  Height:  |  Size: 2.3 KiB

+15 -5
View File
@@ -1,5 +1,15 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 126 126" fill="#fff"> <svg viewBox="0 0 256 256" xmlns="http://www.w3.org/2000/svg" xml:space="preserve" style="fill-rule:evenodd;clip-rule:evenodd;stroke-linejoin:round;stroke-miterlimit:2">
<path d="M29 93V82h68v11l-13 6-21-10-21 10Z"/> <desc>Traced by Dogo314</desc>
<path d="M38 69h50v9H38zM58 60h10v5H58z"/> <g transform="translate(-276 -306)">
<path fill="#679552" d="M121 121H5v-20l17-7 20 10 21-10 21 10 20-10 17 7.2V121Z"/> <path style="fill:none" d="M276 306h256v256H276z"/>
</svg> <clipPath id="a">
<path d="M276 306h256v256H276z"/>
</clipPath>
<g clip-path="url(#a)">
<path style="fill:#091901;" transform="translate(0 306)" d="M276 0h256v256H276z"/>
<path d="M516 1128H292v-18.222L332 1092l36 16 36-16 36 16 36-16 40 17.778z" style="fill:#679452" transform="translate(0 -582)"/>
<path d="M412 1032v8h-16v-8zm32 16a4 4 0 0 1 4 4v12h-88v-12a4 4 0 0 1 4-4zm-100 40.579V1072h119v17.023l-23 10.222-36-16-36 16z" style="fill:#ffe" transform="translate(0 -582)"/>
<path d="M276 15V0h256v15zM518 .82H290v13.36h228z" style="fill:#689452" transform="matrix(1 0 0 17.06667 0 306)"/>
</g>
</g>
</svg>

Before

Width:  |  Height:  |  Size: 261 B

After

Width:  |  Height:  |  Size: 971 B

+16 -1
View File
@@ -1 +1,16 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 126 126"><g><path d="M99.866 31A54.163 54.163 0 0 0 84.65 16H121v15H99.866Zm1.691 24v14H49.99v-5H64l5-5h15l13-10-13-10H69l-5-5H49.993V16h18.6s32.964-.032 32.964 39Zm-5.918 19v16h-37.2V74h37.2Zm6.761 20 10.99 16H39l10.99-16h52.41Z" style="fill-rule:evenodd;fill:#679552"/><circle cx="18" cy="24" r="9" fill="#fff"/><path fill="#fff" fill-rule="evenodd" d="M5 34v40h5v37h16V74h5V34H5Z"/><path fill="#fff" fill-rule="evenodd" d="M82 55H66l-4 5H39V38h23l4 5h16l8 6Z"/></g></svg> <svg viewBox="0 0 256 256" xmlns="http://www.w3.org/2000/svg" xml:space="preserve" style="fill-rule:evenodd;clip-rule:evenodd;stroke-linejoin:round;stroke-miterlimit:2">
<desc>Traced by Dogo314</desc>
<g transform="translate(-276 -306)">
<path style="fill:none" d="M276 306h256v256H276z"/>
<clipPath id="a">
<path d="M276 306h256v256H276z"/>
</clipPath>
<g clip-path="url(#a)">
<path style="fill:#091901;" transform="translate(0 306)" d="M276 0h256v256H276z"/>
<path d="M389 676.25V653h15c31.459 0 57 25.541 57 57v15h-72v-8.25h17.485l7.5-7.5h21.139l18.417-12.75-18.417-12.75h-21.139l-7.5-7.5zM430.849 653H485v21h-29.306a63.3 63.3 0 0 0-24.845-21M446 731v21h-42v-21zm15 27 18 21H371l18-21z" style="fill:#679452" transform="translate(-138.667 -520.667)scale(1.33333)"/>
<path d="M2254 932c7.727 0 14 6.273 14 14s-6.273 14-14 14-14-6.273-14-14 6.273-14 14-14m-14 104h-4a4 4 0 0 1-2.828-1.172A4 4 0 0 1 2232 1032v-64c0-1.061.421-2.078 1.172-2.828A4 4 0 0 1 2236 964h36c1.061 0 2.078.421 2.828 1.172A4 4 0 0 1 2276 968v64a4 4 0 0 1-1.172 2.828A4 4 0 0 1 2272 1036h-4v60a4 4 0 0 1-1.172 2.828A4 4 0 0 1 2264 1100h-20a4 4 0 0 1-2.828-1.172A4 4 0 0 1 2240 1096z" style="fill:#ffe" transform="translate(-1932 -582)"/>
<path d="m2618 998.526-10 9.474h-41v-36h41l10 9.474h29l13 8.526-13 8.526z" style="fill:#ffe" transform="matrix(1 0 0 1.05556 -2208 -637)"/>
<path d="M276 15V0h256v15zM518 .82H290v13.36h228z" style="fill:#689452" transform="matrix(1 0 0 17.06667 0 306)"/>
</g>
</g>
</svg>

Before

Width:  |  Height:  |  Size: 527 B

After

Width:  |  Height:  |  Size: 1.5 KiB

+15 -1
View File
@@ -1 +1,15 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 126 126"><g fill="#fff"><path d="M29 97V86h68v11l-13 6-21-10-21 10z" fill-rule="evenodd"/><path d="M38 73h50v9H38zm20-9h10v5H58z"/></g><g fill-rule="evenodd"><path d="M5 104.955 22 98l20 10 21-10 21 10 20-10 17 7.192V121H5v-16.045Z" fill="#679552"/><path d="m34.262 28.536 7.438-7.442h21.4l28.839 12.093V44.35H34.262V28.536zM63.1 17.372H41.7V9h21.4l.93 1.861h19.536v4.651H64.031zM38.914 52.723c-4.744 0-4.651-4.651-4.651-4.651h9.3s.094 4.651-4.649 4.651zm12.093 0c-4.744 0-4.651-4.651-4.651-4.651h9.3s.095 4.651-4.649 4.651zm12.093 0c-4.744 0-4.651-4.651-4.651-4.651h9.3s.095 4.651-4.649 4.651zm12.093 0c-4.744 0-4.651-4.651-4.651-4.651h9.3s.096 4.651-4.648 4.651zm12.094 0c-4.744 0-4.651-4.651-4.651-4.651h9.3s.095 4.651-4.649 4.651z" fill="#679552"/></g></svg> <svg viewBox="0 0 256 256" xmlns="http://www.w3.org/2000/svg" xml:space="preserve" style="fill-rule:evenodd;clip-rule:evenodd;stroke-linejoin:round;stroke-miterlimit:2">
<desc>Traced by Dogo314</desc>
<g transform="translate(-276 -306)">
<path style="fill:none" d="M276 306h256v256H276z"/>
<clipPath id="a">
<path d="M276 306h256v256H276z"/>
</clipPath>
<g clip-path="url(#a)">
<path style="fill:#091901;" transform="translate(0 306)" d="M276 0h256v256H276z"/>
<path d="M516 1128H292v-18.222L332 1092l36 16 36-16 36 16 36-16 40 17.778z" style="fill:#679452" transform="translate(0 -582)"/>
<path d="M412 1032v8h-16v-8zm32 16a4 4 0 0 1 4 4v12h-88v-12a4 4 0 0 1 4-4zm-100 40.579V1072h119v17.023l-23 10.222-36-16-36 16zM409 935l-3 3h-40v-14h40l3 3h37v8zm51 55H352v-29l14-14h40l54 23zm-92 9c0 4.415-3.585 8-8 8s-8-3.585-8-8zm23 0c0 4.415-3.585 8-8 8s-8-3.585-8-8zm23 0c0 4.415-3.585 8-8 8s-8-3.585-8-8zm23 0c0 4.415-3.585 8-8 8s-8-3.585-8-8zm23 0c0 4.415-3.585 8-8 8s-8-3.585-8-8z" style="fill:#ffe" transform="translate(0 -582)"/>
<path d="M276 15V0h256v15zM518 .82H290v13.36h228z" style="fill:#689452" transform="matrix(1 0 0 17.06667 0 306)"/>
</g>
</g>
</svg>

Before

Width:  |  Height:  |  Size: 816 B

After

Width:  |  Height:  |  Size: 1.2 KiB

+15 -4
View File
@@ -1,4 +1,15 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 126 126" fill="#fff"> <svg viewBox="0 0 256 256" xmlns="http://www.w3.org/2000/svg" xml:space="preserve" style="fill-rule:evenodd;clip-rule:evenodd;stroke-linejoin:round;stroke-miterlimit:2">
<path d="m12 39 2 3 36-7 3 16 18-16 2 12 41-5v-3l-38 4-3-16-17 16-2-12Z"/> <desc>Traced by Dogo314</desc>
<path fill="#49adc9" d="M120 80h-4l-3 3v4l-1 1h-2l-2-2h-7l-1 1h-1v-1h-2l-1 2h-1v-2h-2l-1 2h-1v-2h-2l-1 2h-1v-2h-6v11h-5V86h-8v2h-4l-13 20h-4l-9-5v-4l4-5v-4l-1-2h-6v-2H21L11 97H6l-1-1V75h6v-1h19v1h3v-1h5l6-7h4l1-1h7l1 1h6l3 3v3h6l1 1h37l1-1h1l2 3h7v3Zm-76 24 1 1h4l6-8v-2h-7l-4 6v3Zm6-35h-4l-4 3v1h6l2-3v-1Zm2 21v3h5v-3h-5Zm14-16-4-5h-6v2h4l4 4h2v-1Z"/> <g transform="translate(-276 -306)">
</svg> <path style="fill:none" d="M276 306h256v256H276z"/>
<clipPath id="a">
<path d="M276 306h256v256H276z"/>
</clipPath>
<g clip-path="url(#a)">
<path style="fill:#011419;" transform="translate(0 306)" d="M276 0h256v256H276z"/>
<path d="M436 2744h-1v9h-2v2h2v5a4 4 0 0 1-8 0v-5h2v-2h-2v-7h-14l-2 2h-5l-26 34h-3l-19-9v-2l9-18-5-5h-8l-4-4h-21l-19 19h-7l-3-3v-36h9l2-2h34l2 2h3v-4h10l10-10h9v-2h12v2h12l7 7-3 3-7-7h-9v3h8v4h5l3 3h4v-3h8l2 2h66l2-2h4v4h3v2h9l3 3h-12v2h12l-2 2h-10v4h-3v9h-9v-2h-2v2h-2v-2h-2v2h-2v-2h-2v2h-2v-2h-2v2h-2v-2h-2v2h-2v-2h-2v2h-2v-2h-2v2h-2v-2h-2v2h-2v-2h-2v2h-2v-2h-2v2h-2v-2h-2v2h-2v-2h-2v2h-2zm-51 6q-1.5 3 0 6h7a2 2 0 0 0 2-2v-4zm5 9h-13l-2 2-5 10v1.337a3 3 0 0 0 1.41 2.544l4.211 2.632a3 3 0 0 0 4.022-.788L391 2761zm-15-39 4-4v-3h-6l-7 7z" style="fill:#53bcda" transform="translate(0 -2268)"/>
<path d="m312.683 2666.11-1.366-8.22 76.4-12.69 3.232 20.683 31.932-27.941 4.58 27.481 68.079-7.564.92 8.282-75.921 8.436-3.42-20.519-32.068 28.059-4.268-27.317z" style="fill:#fff" transform="translate(0 -2268)"/>
<path d="M276 15V0h256v15zM518 .82H290v13.36h228z" style="fill:#5abeda" transform="matrix(1 0 0 17.06667 0 306)"/>
</g>
</g>
</svg>

Before

Width:  |  Height:  |  Size: 514 B

After

Width:  |  Height:  |  Size: 1.4 KiB

+15 -4
View File
@@ -1,4 +1,15 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 126 126" fill="#fff"> <svg viewBox="0 0 256 256" xmlns="http://www.w3.org/2000/svg" xml:space="preserve" style="fill-rule:evenodd;clip-rule:evenodd;stroke-linejoin:round;stroke-miterlimit:2">
<path fill="#49adc9" d="M27 82v-7h19v7h49v2h7v-2h2s3 1.3 3 3h10v-1h4v6h-4v-1h-10s-1 3-3 3h-2v-2h-7v2h-6l-2 2h-9s.2 1.6-2 4h-2v-4H60v3h-2s-3 4.5-3 9a7.3 7.3 0 0 1-5-3s.6-4.2 3-6v-3h-7a19 19 0 0 1-12 9s1.2-10.4-10-11c-5.4-.3-8 5-8 5h-2v-1H6v-6s-2 .3-2-3a6.2 6.2 0 0 1 3-5h20Z"/> <desc>Traced by Dogo314</desc>
<path d="M34 33h36L48 55H34V33Zm42 0L54 55h33s11-.6 11-11-11-11-11-11H76Z"/> <g transform="translate(-276 -306)">
</svg> <path style="fill:none" d="M276 306h256v256H276z"/>
<clipPath id="a">
<path d="M276 306h256v256H276z"/>
</clipPath>
<g clip-path="url(#a)">
<path style="fill:#011419;" transform="translate(0 306)" d="M276 0h256v256H276z"/>
<path d="M2164 2471v-8h-7v1h-17l-2-2h-2v-3h-5v1h-12l-2-2h-85l-2-4v-8l-1-1h-32l-1 1v8l-1 4h-34a2 2 0 0 0-2 2v2l-.729.486a5.1 5.1 0 0 0-2.271 4.243v.666a6.74 6.74 0 0 0 3 5.605v8a2 2 0 0 0 2 2h12l3 3c6-8 9-10 16-10 8.327 0 16 7 16 13v5h4l1.121-1.121a3 3 0 0 1 2.122-.879h.514a3 3 0 0 0 2.122-.879l.242-.242a3 3 0 0 1 2.122-.879H2022c3 0 8.026-8.162 9-11h12v2l-6.238 14.259a2 2 0 0 0 .937 2.591l8.208 4.104q.093.045.194.071l.002.001A2.413 2.413 0 0 0 2049 2499l-.912-1.824a5.1 5.1 0 0 1-.081-4.391L2052 2484h2v1h2v-6h24v9h3l5-9h17l3-3h9l2-2h12v1h5v-3h2l2-2h17v1z" style="fill:#53bcda" transform="translate(-1656 -1992)"/>
<path d="M2042.25 2410h-25.35v-39h64.35zm50.7-39h17.55c10.762 0 19.5 8.738 19.5 19.5s-8.738 19.5-19.5 19.5h-56.55z" style="fill:#ffe" transform="translate(-1716.615 -2053.795)scale(1.02564)"/>
<path d="M276 15V0h256v15zM518 .82H290v13.36h228z" style="fill:#5abeda" transform="matrix(1 0 0 17.06667 0 306)"/>
</g>
</g>
</svg>

Before

Width:  |  Height:  |  Size: 438 B

After

Width:  |  Height:  |  Size: 1.4 KiB

+15 -6
View File
@@ -1,6 +1,15 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 126 126" fill="#fff"> <svg viewBox="0 0 256 256" xmlns="http://www.w3.org/2000/svg" xml:space="preserve" style="fill-rule:evenodd;clip-rule:evenodd;stroke-linejoin:round;stroke-miterlimit:2">
<path fill="#679552" d="M90 33s-6-8.3-18-15h43v15H90Zm2 24v14H51.5a9 9 0 0 0-6-6.1c3.1-1.2 6.5-3.7 6.5-8.8a9 9 0 0 0-6.5-9.2c3.1-1.2 6.5-3.7 6.5-8.8C52 27.5 40 28 40 28h-9V18h22s39 0 39 39ZM51.8 76H85v16H41v-8c2.6-.3 9.6-1.6 10.8-8ZM93 96l13 16H18l13-16h62Z"/> <desc>Traced by Dogo314</desc>
<path d="M9 67h21L16 81H9V67Zm26 0L22 81h20s7-1.3 7-7-6-7-6-7h-8Z"/> <g transform="translate(-276 -306)">
<path d="M9 49h21L16 63H9V49Zm26 0L22 63h20s7-1.3 7-7-6-7-6-7h-8Z"/> <path style="fill:none" d="M276 306h256v256H276z"/>
<path d="M9 31h21L16 45H9V31Zm26 0L22 45h20s7-1.3 7-7-6-7-6-7h-8Z"/> <clipPath id="a">
</svg> <path d="M276 306h256v256H276z"/>
</clipPath>
<g clip-path="url(#a)">
<path style="fill:#091901;" transform="translate(0 306)" d="M276 0h256v256H276z"/>
<path d="M377 665v-12h27c31.459 0 57 25.541 57 57v15h-54.301a15 15 0 0 0-5.702-9c3.644-2.738 6.003-7.096 6.003-12s-2.359-9.262-6.003-12c3.644-2.738 6.003-7.096 6.003-12 0-8.279-6.721-15-15-15zm29.699 66H449v21h-60v-9h3c7.251 0 13.308-5.157 14.699-12m24.15-78H491v21h-35.306a63.3 63.3 0 0 0-24.845-21M461 758l18 21H359l18-21z" style="fill:#679452" transform="translate(-154.667 -520.667)scale(1.33333)"/>
<path d="M1196 704h-34l23-24h11c6.623 0 12 5.377 12 12s-5.377 12-12 12m-45 0h-15v-24h38zm45 32h-34l23-24h11c6.623 0 12 5.377 12 12s-5.377 12-12 12m-45 0h-15v-24h38zm45 32h-34l23-24h11c6.623 0 12 5.377 12 12s-5.377 12-12 12m-45 0h-15v-24h38z" style="fill:#ffe" transform="translate(-828 -306)"/>
<path d="M276 15V0h256v15zM518 .82H290v13.36h228z" style="fill:#689452" transform="matrix(1 0 0 17.06667 0 306)"/>
</g>
</g>
</svg>

Before

Width:  |  Height:  |  Size: 554 B

After

Width:  |  Height:  |  Size: 1.3 KiB

+15 -8
View File
@@ -1,8 +1,15 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 126 126" fill="#fff"> <svg viewBox="0 0 256 256" xmlns="http://www.w3.org/2000/svg" xml:space="preserve" style="fill-rule:evenodd;clip-rule:evenodd;stroke-linejoin:round;stroke-miterlimit:2">
<g fill="#49adc9"> <desc>Traced by Dogo314</desc>
<path d="M79 41h9v10h-9z"/> <g transform="translate(-276 -306)">
<path d="M75 41H64l-10-9v14l11 4v48h39l9-9V32l-10 9H92v14H75V41Z"/> <path style="fill:none" d="M276 306h256v256H276z"/>
<path d="m54 27 11 10h37l11-10V16H54v11Z"/> <clipPath id="a">
</g> <path d="M276 306h256v256H276z"/>
<path d="M8 99s24 16 26 16 26-16 26-16V53s-22-6-26-6-26 6-26 6v46Zm34-37a3.5 3.5 0 0 1 2-1h2s2 0 2 1v2a3.6 3.6 0 0 1-2 1h-2s-2 0-2-1v-2Zm0 6h6v21s-1 4-3 4-3-4-3-4V68Zm-11-6a3.5 3.5 0 0 1 2-1h2s2 0 2 1v2a3.6 3.6 0 0 1-2 1h-2s-2 0-2-1v-2Zm0 6h6v21s-1 4-3 4-3-4-3-4V68Zm-11-6a3.5 3.5 0 0 1 2-1h2s2 0 2 1v2a3.6 3.6 0 0 1-2 1h-2s-2 0-2-1v-2Zm0 6h6v21s-1 4-3 4-3-4-3-4V68Z"/> </clipPath>
</svg> <g clip-path="url(#a)">
<path style="fill:#011419;" transform="translate(0 306)" d="M276 0h256v256H276z"/>
<path d="M388 1569.204V1541l17 17h19v24h32v-24h19l17-17v101l-16 16h-68v-84.448zM472 1550h-64l-20-20v-16h104v16zm-24 8v16h-16v-16z" style="fill:#53bcda" transform="translate(0 -1164)"/>
<path d="m3390 1570 46 10v75l-46 27-46-27v-75zm-14 24h-12v8h12zm20 12h-12v36l6 9 6-9zm0-12h-12v8h12zm-20 12h-12v36l6 9 6-9zm40-12h-12v8h12zm0 12h-12v36l6 9 6-9z" style="fill:#ffe" transform="translate(-3036 -1164)"/>
<path d="M276 15V0h256v15zM518 .82H290v13.36h228z" style="fill:#5abeda" transform="matrix(1 0 0 17.06667 0 306)"/>
</g>
</g>
</svg>

Before

Width:  |  Height:  |  Size: 631 B

After

Width:  |  Height:  |  Size: 1.0 KiB

+15 -7
View File
@@ -1,7 +1,15 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 126 126"> <svg viewBox="0 0 256 256" xmlns="http://www.w3.org/2000/svg" xml:space="preserve" style="fill-rule:evenodd;clip-rule:evenodd;stroke-linejoin:round;stroke-miterlimit:2">
<path d="M24 26h15L24 13v13zm0 27h15L24 66V53zm73-4H24v-7h40v-5H24v-7h73s9 1.032 9 10-9 9-9 9z" fill="#fff" <desc>Traced by Dogo314</desc>
fill-rule="evenodd" /> <g transform="translate(-276 -306)">
<path <path style="fill:none" d="M276 306h256v256H276z"/>
d="M113 87v7l-6 4h-4l-2 1h-4v7s-2.794 2.22-5 0v-7h-2s.362 2.993-2 3h-3s-6.757 6.1-5 10a.828.828 0 0 1 0 1 1.664 1.664 0 0 1-1 0c-.724-.391-3.782-2.2-4-4h-9l-2 1h-4v4s.434 3-5 3a4.343 4.343 0 0 1-4-3 27.593 27.593 0 0 0 0-7 7.192 7.192 0 0 0-6-6h-8s-2-.3-2-2 1-2 1-2v-1H14V77h34l6-2h37l1 2h18l2 2h1v6h-1v2h1zm-35 13H68v7h6l4-5v-2zm8-1c-.149.459 0 1.984 1 2 .5.008 1.623.432 2-1a1.224 1.224 0 0 0 0-1c-.449-.726-2.39-1.886-3 0z" <clipPath id="a">
fill-rule="evenodd" fill="#49adc9" /> <path d="M276 306h256v256H276z"/>
</svg> </clipPath>
<g clip-path="url(#a)">
<path style="fill:#011419;" transform="translate(0 306)" d="M276 0h256v256H276z"/>
<path d="M276 15V0h256v15zM518 .82H290v13.36h228z" style="fill:#5abeda" transform="matrix(1 0 0 17.06667 0 306)"/>
<path d="M2939 2444v4h34v3h3v12h-3v1h3v14h-3v3h-3l-3 3h-8l-3 3h-8v13h-1v1h-6v-1h-1v-14h-4v1a6 6 0 0 1-6 6h-4l-8 13v4h-3l-9-5h-14l-2 2h-9v9h-3l-2 2h-4l-2-2v-2h-2v-6a18 18 0 0 0-18-18h-8v-1h-4v-4l2.973-2.973.027-1.027h-41v-33h61v-2h11v-2zm-41 45a2 2 0 0 0-2 2v9a2 2 0 0 0 2 2h10l7-11v-.17a1.83 1.83 0 0 0-1.83-1.83zm36-1.178a1.82 1.82 0 0 0-1.822-1.822H2931a2 2 0 0 0-2 2v1.036c0 1.085.879 1.964 1.964 1.964H2932l2-3z" style="fill:#53bcda" transform="translate(-2484 -1992)"/>
<path d="M2949 2398h-128v-12h72v-8h-72v-12h128c8.831 0 16 7.169 16 16s-7.169 16-16 16m-128-64 24 24h-24zm0 96v-24h24z" style="fill:#ffe" transform="translate(-2485 -1992)"/>
</g>
</g>
</svg>

Before

Width:  |  Height:  |  Size: 687 B

After

Width:  |  Height:  |  Size: 1.3 KiB

+15 -1
View File
@@ -1 +1,15 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 126 126"><path d="M104 98H67V51l-13-3V32l9 9h12v14h17V41h12l9-9v57ZM79 51V41h9v10h-9ZM65 37 54 27V16h59v11l-11 10H65Z" fill="#49adc9" fill-rule="evenodd"/><path d="M37 112 11 96V54l26-6 26 6v42Zm-4-13 12-17h-8l3-12-12 16h9Zm21-38-3 3s-3.472-5-14-5-14 5-14 5l-3-3v9h8l-2-3c3.992-4.229 11-4 11-4s7.008-.229 11 4l-2 3h8v-9Z" fill="#fff" fill-rule="evenodd"/></svg> <svg viewBox="0 0 256 256" xmlns="http://www.w3.org/2000/svg" xml:space="preserve" style="fill-rule:evenodd;clip-rule:evenodd;stroke-linejoin:round;stroke-miterlimit:2">
<desc>Traced by Dogo314</desc>
<g transform="translate(-276 -306)">
<path style="fill:none" d="M276 306h256v256H276z"/>
<clipPath id="a">
<path d="M276 306h256v256H276z"/>
</clipPath>
<g clip-path="url(#a)">
<path style="fill:#011419;" transform="translate(0 306)" d="M276 0h256v256H276z"/>
<path d="M388 1569.204V1541l17 17h19v24h32v-24h19l17-17v101l-16 16h-68v-84.448zM472 1550h-64l-20-20v-16h104v16zm-24 8v16h-16v-16z" style="fill:#53bcda" transform="translate(0 -1164)"/>
<path d="m3390 1570 46 10v75l-46 27-46-27v-75zm0 27.167c12.145 0 19.554 7.279 19.554 7.279L3405 1609h15v-15l-4.554 4.554s-9.591-9.721-25.446-9.721-25.446 9.721-25.446 9.721L3360 1594v15h15l-4.554-4.554s7.409-7.279 19.554-7.279m0 34.833 6-23-21 29h15l-6 23 21-29z" style="fill:#ffe" transform="translate(-3036 -1164)"/>
<path d="M276 15V0h256v15zM518 .82H290v13.36h228z" style="fill:#5abeda" transform="matrix(1 0 0 17.06667 0 306)"/>
</g>
</g>
</svg>

Before

Width:  |  Height:  |  Size: 414 B

After

Width:  |  Height:  |  Size: 1.1 KiB

+15 -9
View File
@@ -1,9 +1,15 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 126 126" fill="#fff"> <svg viewBox="0 0 256 256" xmlns="http://www.w3.org/2000/svg" xml:space="preserve" style="fill-rule:evenodd;clip-rule:evenodd;stroke-linejoin:round;stroke-miterlimit:2">
<g fill="#de7b6c"> <desc>Traced by Dogo314</desc>
<path d="m9 47 29-8 9-29 7 7v38H16Z"/> <g transform="translate(-276 -306)">
<path d="M82 25v4l-8.4-7.4L78 10l17 10v17.2Zm-7 37 8 1 12 12v8l17 17 1 14-15-2-16-17h-6.3L63 83v-8L50 63.4l9-3.4 3.9-10.1ZM19 95 9 79l12.9-4.9L30 83h-4l11.3 12H19Z"/> <path style="fill:none" d="M276 306h256v256H276z"/>
</g> <clipPath id="a">
<path d="M50 69v17H33l8 8h8l11 12h11V96L59 85v-8Z"/> <path d="M276 306h256v256H276z"/>
<path d="m43 80-6-6h-9l5 6h10ZM38 63v9l6 6V68ZM63 38l6 7h9l-6-7h-9ZM74 37l6 6V33l-6-5v9Z"/> </clipPath>
<path d="M69 50h17V34l8 8v7l12 12v10H96L85 59h-8Z"/> <g clip-path="url(#a)">
</svg> <path style="fill:#190301;" transform="translate(0 306)" d="M276 0h256v256H276z"/>
<path d="M1796 510h-16l-20-20h-12l-16-16h28v-28l16 16v12l20 20zm-49-44h-15l-12-12h15zm5-5-12-12v-15l12 12zm108-15h-16l-20-20h-12l-16-16h28v-28l16 16v12l20 20zm-49-44h-15l-12-12h15zm5-5-12-12v-15l12 12z" style="fill:#ffe" transform="translate(-1380)"/>
<path d="M388 418h-64l-12-12 48-16 16-48 12 12zm37.358-57.956L433 342l27 15v29.686l-24-24v8zM460 453.314V469l29 29 7 28-28-7-29-29h-15.686L404 470.686v-12l-24.342-24.341L397 427l7.345-17.342L428.686 434h12zM356.686 490H327l-15-27 18.044-7.642L340.686 466h-8z" style="fill:#dd6658"/>
<path d="M276 15V0h256v15zM518 .82H290v13.36h228z" style="fill:#e67366" transform="matrix(1 0 0 17.06667 0 306)"/>
</g>
</g>
</svg>

Before

Width:  |  Height:  |  Size: 526 B

After

Width:  |  Height:  |  Size: 1.2 KiB

+15 -7
View File
@@ -1,7 +1,15 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 126 126" fill="#fff"> <svg viewBox="0 0 256 256" xmlns="http://www.w3.org/2000/svg" xml:space="preserve" style="fill-rule:evenodd;clip-rule:evenodd;stroke-linejoin:round;stroke-miterlimit:2">
<g fill="#de7b6c"> <desc>Traced by Dogo314</desc>
<path d="m44 20 3-10 7 7v13ZM31 55H16l-7-8 11.5-3.2Z"/> <g transform="translate(-276 -306)">
<path d="M98 112 82 95H19L9 79l33.3-12.7L63 87h24V63L65.9 41.9 78 10l17 10v63l17 17 1 14Z"/> <path style="fill:none" d="M276 306h256v256H276z"/>
</g> <clipPath id="a">
<path d="M46 55v10l19 18h18V64L65 46H54V35L42 24l-3 14-14 5 11 12h10Z"/> <path d="M276 306h256v256H276z"/>
</svg> </clipPath>
<g clip-path="url(#a)">
<path style="fill:#190301;" transform="translate(0 306)" d="M276 0h256v256H276z"/>
<path d="M409.887 396.573 433 342l27 15v112l29 29 7 28-28-7-29-29H327l-15-27 54.573-23.113L400.686 474H444v-43.314zM343.074 418H324l-12-12 15.743-5.248zm27.678-60.257L376 342l12 12v19.074z" style="fill:#dd6658"/>
<path d="M436 466h-32l-32-32 4-16-4-4-20 2-16-18 24-8 8-24 18 16-2 20 4 4 16-4 32 32z" style="fill:#ffe"/>
<path d="M276 15V0h256v15zM518 .82H290v13.36h228z" style="fill:#e67366" transform="matrix(1 0 0 17.06667 0 306)"/>
</g>
</g>
</svg>

Before

Width:  |  Height:  |  Size: 340 B

After

Width:  |  Height:  |  Size: 984 B

+15 -7
View File
@@ -1,7 +1,15 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 126 126" fill="#fff"> <svg viewBox="0 0 256 256" xmlns="http://www.w3.org/2000/svg" xml:space="preserve" style="fill-rule:evenodd;clip-rule:evenodd;stroke-linejoin:round;stroke-miterlimit:2">
<g fill="#de7b6c"> <desc>Traced by Dogo314</desc>
<path d="m9 47 29-8 9-29 7 7v38H16Z"/> <g transform="translate(-276 -306)">
<path d="m113 114-15-2-16-17H19L9 79l50-19 19-50 17 10v63l17 17ZM34 83l-2 6 4 5 3 1h31l-9-10h-7v-6l-4-5h-8v9h-8Zm61-47-4-4h-8v9h-7l-2 6 6 6h6v5l9 11V36Z"/> <path style="fill:none" d="M276 306h256v256H276z"/>
</g> <clipPath id="a">
<path d="M36 86h9v-9h3l3 3v8h8l7 8v11H54l-7-8v-7h-8l-3-3v-3ZM86 44v-9h4l3 4v7h7l8 8v12H96l-7-9v-7h-8l-3-3v-3h8Z"/> <path d="M276 306h256v256H276z"/>
</svg> </clipPath>
<g clip-path="url(#a)">
<path style="fill:#190301;" transform="translate(0 306)" d="M276 0h256v256H276z"/>
<path d="M2065 511h-18l-16-16 2-9-2-2-11 1-8-10 12-5 5-12 10 8-1 11 2 2 9-2 16 16zm74-74h-18l-16-16 2-9-2-2-11 1-8-10 12-5 5-12 10 8-1 11 2 2 9-2 16 16z" style="fill:#ffe" transform="translate(-1656)"/>
<path d="M357.755 490H327l-15-27 85-36 36-85 27 15v27.155l-16.298-13.039-7.82 18.766-18.766 7.82 17.324 21.655 6.869-.625-1.071 4.82L460 443.314V469l29 29 7 28-28-7-29-29h-22v-.314l-21.448-21.448-4.82 1.071.625-6.869-21.655-17.324-7.82 18.766-18.766 7.82zM360 390l16-48 12 12v64h-64l-12-12z" style="fill:#dd6658"/>
<path d="M276 15V0h256v15zM518 .82H290v13.36h228z" style="fill:#e67366" transform="matrix(1 0 0 17.06667 0 306)"/>
</g>
</g>
</svg>

Before

Width:  |  Height:  |  Size: 428 B

After

Width:  |  Height:  |  Size: 1.2 KiB

+18 -7
View File
@@ -1,9 +1,20 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 126 126"> <svg viewBox="0 0 256 256" xmlns="http://www.w3.org/2000/svg" xml:space="preserve" style="fill-rule:evenodd;clip-rule:evenodd;stroke-linejoin:round;stroke-miterlimit:2">
<path fill="#de7b6c" fill-rule="evenodd" d="m9 47 29-8 9-29 7 7v38H16zm89 65L82 95h-9.026a10.5 10.5 0 0 0-10.482-10l-.288.014c-.069 0-.136-.01-.2-.01a9.959 9.959 0 0 0-8 4c-1.972-2.686-5.412-4-9-4a9.283 9.283 0 0 0-3.943.448 10.012 10.012 0 0 0-5.293 3.922A10.979 10.979 0 0 0 26.994 85l-.622.031L26 85a10 10 0 0 0-9.295 6.328L9 79l50-19 19-50 11.3 6.645A10.989 10.989 0 0 0 87.281 36.4a10.484 10.484 0 0 0-.78 17.73A10.99 10.99 0 0 0 95 73.819V83l17 17 1 14z"/> <desc>Traced by Dogo314</desc>
<g fill="#fff"> <g transform="translate(-276 -306)">
<path fill-rule="evenodd" d="M26.493 88.014A7.493 7.493 0 1 1 19 95.507a7.493 7.493 0 0 1 7.493-7.493zm18.01 0a7.493 7.493 0 1 1-7.493 7.493 7.493 7.493 0 0 1 7.49-7.493zm18 0a7.493 7.493 0 1 1-7.508 7.493 7.5 7.5 0 0 1 7.505-7.493z"/> <path style="fill:none" d="M276 306h256v256H276z"/>
<circle cx="92.5" cy="63.5" r="7.5"/> <clipPath id="a">
<circle cx="92.5" cy="45.5" r="7.5"/> <path d="M276 306h256v256H276z"/>
<circle cx="92.5" cy="27.5" r="7.5"/> </clipPath>
<g clip-path="url(#a)">
<path style="fill:#190301;" transform="translate(0 306)" d="M276 0h256v256H276z"/>
<circle cx="1232" cy="490" r="12" style="fill:#ffe" transform="translate(-828)"/>
<circle cx="1232" cy="490" r="12" style="fill:#ffe" transform="translate(-860)"/>
<circle cx="1232" cy="490" r="12" style="fill:#ffe" transform="translate(-892)"/>
<circle cx="1232" cy="490" r="12" style="fill:#ffe" transform="matrix(-1 0 0 1 1692 -56)"/>
<circle cx="1232" cy="490" r="12" style="fill:#ffe" transform="matrix(-1 0 0 1 1692 -88)"/>
<circle cx="1232" cy="490" r="12" style="fill:#ffe" transform="matrix(-1 0 0 1 1692 -120)"/>
<path d="M322.072 481.13 312 463l85-36 36-85 18.13 10.072C444.537 355.344 440 362.146 440 370c0 6.539 3.145 12.35 8.004 16-4.859 3.65-8.004 9.461-8.004 16s3.145 12.35 8.004 16c-4.859 3.65-8.004 9.461-8.004 16 0 11.038 8.962 20 20 20v15l29 29 7 28-28-7-29-29h-15c0-11.038-8.962-20-20-20-6.539 0-12.35 3.145-16 8.004-3.65-4.859-9.461-8.004-16-8.004s-12.35 3.145-16 8.004c-3.65-4.859-9.461-8.004-16-8.004-7.854 0-14.656 4.537-17.928 11.13M360 390l16-48 12 12v64h-64l-12-12z" style="fill:#dd6658"/>
<path d="M276 15V0h256v15zM518 .82H290v13.36h228z" style="fill:#e67366" transform="matrix(1 0 0 17.06667 0 306)"/>
</g> </g>
</g>
</svg> </svg>

Before

Width:  |  Height:  |  Size: 957 B

After

Width:  |  Height:  |  Size: 1.7 KiB

+15 -7
View File
@@ -1,7 +1,15 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 126 126" fill="#fff"> <svg viewBox="0 0 256 256" xmlns="http://www.w3.org/2000/svg" xml:space="preserve" style="fill-rule:evenodd;clip-rule:evenodd;stroke-linejoin:round;stroke-miterlimit:2">
<g fill="#de7b6c"> <desc>Traced by Dogo314</desc>
<path d="m9 47 29-8 9-29 7 7v38H16Z"/> <g transform="translate(-276 -306)">
<path d="M98 112 82 95H63.3l.7-19-13-8H38l21-8 7.4-19.6L69 43v11l9 9h17v20l17 17 1 14Zm-7-84H71.2L78 10l17 10v10.3ZM9 79l12.2-4.6L29 83v12H19Z"/> <path style="fill:none" d="M276 306h256v256H276z"/>
</g> <clipPath id="a">
<path d="M24 72h18l3 4v-4l5 1 9 4v18l-5-4v-6h-6l-2-2h-3v11h8l4 6H40l-7-7V81ZM65 31l17 1 3 4 1-4h4l9 5v18l-5-5v-5h-6l-1-2h-4v11h8l5 5H80l-6-6-1-12Z"/> <path d="M276 306h256v256H276z"/>
</svg> </clipPath>
<g clip-path="url(#a)">
<path style="fill:#190301;" transform="translate(0 306)" d="M276 0h256v256H276z"/>
<path d="M1761 109V87l18-18V41l25 25v27l7-20 11.524 32.476L1797 131v-15l7-7-10-10V85l-21 21 10 10v15s-16.579-15.602-22-22m-129.298 0V87l18-18V41l25 25v27l7-20 11.524 32.476L1667.702 131v-15l7-7-10-10V85l-21 21 10 10v15s-16.58-15.602-22-22" style="fill:#ffe" transform="rotate(-45 1321.8 1403.774)scale(.7875)"/>
<path d="M344.64 490H327l-15-27 18.044-7.642 13.548 13.548v20.046zm23.222-50.659L397 427l14.485-34.201 4.107 4.107v20.046l16.668 16.668 2.923.242c6.102.505 21.607.126 24.817.04V469l29 29 7 28-28-7-29-29h-34.86v-33.384zM421.141 370 433 342l27 15v19.93l-33.417-15.913 4.325 8.983zM360 390l16-48 12 12v64h-64l-12-12z" style="fill:#dd6658"/>
<path d="M276 15V0h256v15zM518 .82H290v13.36h228z" style="fill:#e67366" transform="matrix(1 0 0 17.06667 0 306)"/>
</g>
</g>
</svg>

Before

Width:  |  Height:  |  Size: 453 B

After

Width:  |  Height:  |  Size: 1.3 KiB

+15 -6
View File
@@ -1,6 +1,15 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 126 126" fill="#fff"> <svg viewBox="0 0 256 256" xmlns="http://www.w3.org/2000/svg" xml:space="preserve" style="fill-rule:evenodd;clip-rule:evenodd;stroke-linejoin:round;stroke-miterlimit:2">
<path fill="#c9b269" d="m9 47 29-8 9-29 7 7v38H16Z"/> <desc>Traced by Dogo314</desc>
<path fill="#c9b269" d="M89.3 49.1a31 31 0 0 0-27 2.2L78 10l17 10v20.5ZM19 95 9 79l41.8-15.9A31 31 0 0 0 52.1 95H19Zm86-2 7 7 1 14-15-2-6-6.4a31.1 31.1 0 0 0 13-12.5Z"/> <g transform="translate(-28.444 589.487)scale(.98084)">
<path d="M99 77h6s-.5 28-27 28c-26 0-27-27-27-27s-1-26.8 27-27c0 0 7.6-.6 13 3l5-7 9 20H84l4-7s-15.2-9-26 5-1 27.6 6 31 26.5 8.5 31-19Z"/> <path style="fill:none" d="M29-601h261v261H29z"/>
<path fill="#c9b269" d="m76 70 17.3.7a17 17 0 1 1-10.8-9Z"/> <clipPath id="a">
</svg> <path d="M29-601h261v261H29z"/>
</clipPath>
<g clip-path="url(#a)">
<path style="fill:#363426" transform="translate(-252.39 -601)scale(1.01953)" d="M276 0h256v256H276z"/>
<path d="M5074.42 184H5019l-15-27 68.014-28.806A56 56 0 0 0 5065.75 154a55.96 55.96 0 0 0 8.67 30m21.774-79.986L5125 36l27 15v33.865l-9.554 16.724A56.1 56.1 0 0 0 5122 97.75c-9.3 0-18.075 2.262-25.806 6.264m74.671 77.851L5181 192l7 28-28-7-10.135-10.135a56.6 56.6 0 0 0 21-21M5080 112h-64l-12-12 48-16 16-48 12 12zm69.75 42c0 15.316-12.434 27.75-27.75 27.75s-27.75-12.434-27.75-27.75 12.434-27.75 27.75-27.75c2.055 0 4.058.224 5.986.648l-9.77 17.102h29.675a27.7 27.7 0 0 1 1.859 10" style="fill:#c9b269" transform="translate(-5036.031 -601)scale(1.01953)"/>
<path d="M5135.097 132.482a24.54 24.54 0 0 0-12.097-3.167c-13.624 0-24.685 11.061-24.685 24.685s11.061 24.685 24.685 24.685 24.685-11.061 24.685-24.685h8.63c0 18.387-14.928 33.315-33.315 33.315s-33.315-14.928-33.315-33.315 14.928-33.315 33.315-33.315a33.16 33.16 0 0 1 16.362 4.293l.016.011 4.336-7.59 13.81 24.172h-27.619z" style="fill:#ffe" transform="translate(-7378.422 -671.383)scale(1.47656)"/>
<path d="M276 15V0h256v15zM518 .82H290v13.36h228z" style="fill:#c9b269" transform="matrix(1.01953 0 0 17.4 -252.39 -601)"/>
</g>
</g>
</svg>

Before

Width:  |  Height:  |  Size: 510 B

After

Width:  |  Height:  |  Size: 1.6 KiB

+15 -7
View File
@@ -1,7 +1,15 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 126 126" fill="#fff"> <svg viewBox="0 0 256 256" xmlns="http://www.w3.org/2000/svg" xml:space="preserve" style="fill-rule:evenodd;clip-rule:evenodd;stroke-linejoin:round;stroke-miterlimit:2">
<g fill="#de7b6c"> <desc>Traced by Dogo314</desc>
<path d="M51 32s-7.3-1.5-11.7 3L47 10l7 7v6.5c-1.9 1.6-3.2 4.2-3 8.5ZM36 45s-9.1-.2-12.6 10H16l-7-8 27.7-7.6A18 18 0 0 0 36 45Z"/> <g transform="translate(-276 -306)">
<path d="M86 32s1.4-11.6-12-11h-.2L78 10l17 10v13a19 19 0 0 0-9-1ZM36 72s-2.2 14.3 15 13a10.5 10.5 0 0 0 4.7 10H19L9 79l22-8.4a47.4 47.4 0 0 0 5 1.4Zm50 13a46.6 46.6 0 0 0 10.5-.5L112 100l1 14-15-2-16-17h-1.5A11.9 11.9 0 0 0 86 85Z"/> <path style="fill:none" d="M276 306h256v256H276z"/>
</g> <clipPath id="a">
<path d="M100.8 68H90.6a6.2 6.2 0 0 1 6.2 6.6 6 6 0 0 1-6.2 6.3H76.4a5.2 5.2 0 0 1 5 5.6 5 5 0 0 1-5 5.4h-8.2v.1H60a5 5 0 0 1-5-5.4 5.1 5.1 0 0 1 5-5.6H46s-6 .2-6-6.4 6-6.6 6-6.6H36s-9-.1-9-9.4 9-9.6 9-9.6h10a6 6 0 0 1-6-6.4 6.4 6.4 0 0 1 6-6.6h13.2a4.5 4.5 0 0 0 .8 0h-.8c-1.5-.1-4.2-1-4.2-5.4 0-6 5-5.6 5-5.6h16.4s5-.5 5 5.6c0 4.5-2.7 5.3-4.2 5.4h-.8a4.7 4.7 0 0 0 .8 0h13.4s6.2.3 6.2 6.6-6.2 6.4-6.2 6.4h10.2s9.2.3 9.2 9.6-9.2 9.4-9.2 9.4Z"/> <path d="M276 306h256v256H276z"/>
</svg> </clipPath>
<g clip-path="url(#a)">
<path style="fill:#190301;" transform="translate(0 306)" d="M276 0h256v256H276z"/>
<path d="M683.5 483.25c-9.359 0-17.581-4.909-22.229-12.289 3.658-.618 7.54-3.922 10.079-6.461H653.5c-8.279 0-15-6.721-15-15q0-.509.033-1.008c3.716-.528 7.694-3.906 10.279-6.492H631c-8.279 0-15-6.721-15-15s6.721-15 15-15h17.812c-2.585-2.586-6.563-5.964-10.279-6.492a15 15 0 0 1-.033-1.008c0-8.279 6.721-15 15-15h17.85c-2.539-2.539-6.421-5.843-10.079-6.461 4.648-7.38 12.87-12.289 22.229-12.289s17.581 4.909 22.229 12.289c-3.658.618-7.54 3.922-10.079 6.461h17.85c8.279 0 15 6.721 15 15q0 .509-.033 1.008c-3.716.528-7.694 3.906-10.279 6.492H736c8.279 0 15 6.721 15 15s-6.721 15-15 15h-17.812c2.585 2.586 6.563 5.964 10.279 6.492q.033.5.033 1.008c0 8.279-6.721 15-15 15h-17.85c2.539 2.539 6.421 5.843 10.079 6.461-4.648 7.38-12.87 12.289-22.229 12.289" style="fill:#ffe" transform="translate(-317.067 -17.467)scale(1.06667)"/>
<path d="M342.736 418H324l-12-12 48-16 16-48 12 12v25.174a36.2 36.2 0 0 0-6.48 7.672l-1.99 3.159C366.501 390.255 356 400.911 356 414a23.9 23.9 0 0 0-13.264 4m77.957-46.942L433 342l27 15v39.117a23.9 23.9 0 0 0-15.53-6.112l-1.99-3.159c-4.884-7.757-12.649-13.519-21.787-15.788m44.17 102.805L489 498l7 28-28-7-27.289-27.289a36 36 0 0 0 1.769-2.557l1.99-3.159c8.735-.167 16.334-5.012 20.393-12.132M382.069 490H327l-15-27 24.858-10.528C341.242 458.259 348.187 462 356 462c0 13.089 10.501 23.745 23.53 23.995l1.99 3.159q.268.428.549.846" style="fill:#dd6658"/>
<path d="M276 15V0h256v15zM518 .82H290v13.36h228z" style="fill:#e67366" transform="matrix(1 0 0 17.06667 0 306)"/>
</g>
</g>
</svg>

Before

Width:  |  Height:  |  Size: 930 B

After

Width:  |  Height:  |  Size: 2.0 KiB

+22 -14
View File
@@ -1,14 +1,22 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 126 126" fill="#fff"> <svg viewBox="0 0 256 256" xmlns="http://www.w3.org/2000/svg" xml:space="preserve" style="fill-rule:evenodd;clip-rule:evenodd;stroke-linejoin:round;stroke-miterlimit:2">
<g fill="#de7b6c"> <desc>Traced by Dogo314</desc>
<path d="m9 47 29-8 9-29 7 7v38H16Z"/> <g transform="translate(-276 -306)">
<path d="M75.8 15.7 78 10l17 10v14.5Zm-9.6 25.5L95 70v13l17 17 1 14-15-2-16-17H71L42.3 66.3 59 60ZM9 79l7.2-2.8L35 95H19Z"/> <path style="fill:none" d="M276 306h256v256H276z"/>
</g> <clipPath id="a">
<path d="m14 69 5-5 15 15-5 5Z"/> <path d="M276 306h256v256H276z"/>
<path d="m30 85 5-5 15 15-5 5Z"/> </clipPath>
<path d="m33 73 5-5 15 15-5 5Z"/> <g clip-path="url(#a)">
<path d="m49 89 5-5 15 15-5 5Z"/> <path style="fill:#190301;" transform="translate(0 306)" d="M276 0h256v256H276z"/>
<path d="m64 19 5-5 15 15-5 5Z"/> <path style="fill:#ffe" transform="rotate(-45 227.772 916.522)scale(.9974 .92601)" d="M627 744h12v39h-12z"/>
<path d="m80 35 5-5 15 15-5 5Z"/> <path style="fill:#ffe" transform="rotate(-45 174.852 938.442)scale(.9974 .92601)" d="M627 744h12v39h-12z"/>
<path d="m68 38 5-5 15 15-5 5Z"/> <path style="fill:#ffe" transform="rotate(-45 251.515 879.687)scale(.9974 .92601)" d="M627 744h12v39h-12z"/>
<path d="m84 54 5-5 15 15-5 5Z"/> <path style="fill:#ffe" transform="rotate(-45 198.594 901.608)scale(.9974 .92601)" d="M627 744h12v39h-12z"/>
</svg> <path style="fill:#ffe" transform="rotate(135 315.357 -193.53)scale(.9974 -.92601)" d="M627 744h12v39h-12z"/>
<path style="fill:#ffe" transform="rotate(135 306.277 -215.45)scale(.9974 -.92601)" d="M627 744h12v39h-12z"/>
<path style="fill:#ffe" transform="rotate(135 311.522 -175.786)scale(.9974 -.92601)" d="M627 744h12v39h-12z"/>
<path style="fill:#ffe" transform="rotate(135 302.443 -197.707)scale(.9974 -.92601)" d="M627 744h12v39h-12z"/>
<path d="M368.042 439.265 397 427l13.455-31.768L460 444.777V469l29 29 7 28-28-7-29-29h-20.223zm62.214-90.786L433 342l27 15v21.223zM352.223 490H327l-15-27 9.289-3.934zM360 390l16-48 12 12v64h-64l-12-12z" style="fill:#dd6658"/>
<path d="M276 15V0h256v15zM518 .82H290v13.36h228z" style="fill:#e67366" transform="matrix(1 0 0 17.06667 0 306)"/>
</g>
</g>
</svg>

Before

Width:  |  Height:  |  Size: 568 B

After

Width:  |  Height:  |  Size: 1.8 KiB

+15 -1
View File
@@ -1 +1,15 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 126 126" fill-rule="evenodd"><path d="M81 103v4l6 6 1 1H65l1-1 6-6v-8l6-7V78h9v18zm-7-16-6 7H58l-6-7V74H39V58l4-4h8l5-4h14l5 4h8l4 4v16H74v13zm-4-29H56v12h14V58zM48 92l6 7v8l6 6 1 1H38l1-1 6-6v-4l-6-7V78h9v14zm11-16a2 2 0 1 1-2 2 2 2 0 0 1 2-2zm8 0a2 2 0 1 1-2 2 2 2 0 0 1 2-2zm-8 7a2 2 0 1 1-2 2 2 2 0 0 1 2-2zm8 0a2 2 0 1 1-2 2 2 2 0 0 1 2-2z" fill="#49adc9"/><path d="M31 37H18l9-9h4s5 .116 5 4.5-5 4.5-5 4.5zm-16 0H8v-9h16zm16-13H17l9-9h5s5 .116 5 4.5-5 4.5-5 4.5zm-17 0H8v-9h15zm99 13h-13l9-9h4s5 .116 5 4.5-5 4.5-5 4.5zm-16 0h-7v-9h16zm16-13H99l9-9h5s5 .116 5 4.5-5 4.5-5 4.5zm-17 0h-6v-9h15z" fill="#fff"/></svg> <svg viewBox="0 0 256 256" xmlns="http://www.w3.org/2000/svg" xml:space="preserve" style="fill-rule:evenodd;clip-rule:evenodd;stroke-linejoin:round;stroke-miterlimit:2">
<desc>Traced by Dogo314</desc>
<g transform="translate(-276 -306)">
<path style="fill:none" d="M276 306h256v256H276z"/>
<clipPath id="a">
<path d="M276 306h256v256H276z"/>
</clipPath>
<g clip-path="url(#a)">
<path style="fill:#011419;" transform="translate(0 306)" d="M276 0h256v256H276z"/>
<path d="M688 1930h-16l-12-12v-24h-24v-28l8-8h16l8-8h24l8 8h16l8 8v28h-24v24zm-16-20c-2.208 0-4 1.792-4 4s1.792 4 4 4 4-1.792 4-4-1.792-4-4-4m20-44h-24v20h24zm-20 32c-2.208 0-4 1.792-4 4s1.792 4 4 4 4-1.792 4-4-1.792-4-4-4m16 0c-2.208 0-4 1.792-4 4s1.792 4 4 4 4-1.792 4-4-1.792-4-4-4m0 12c-2.208 0-4 1.792-4 4s1.792 4 4 4 4-1.792 4-4-1.792-4-4-4m-36-8v26l12 12v14l12 12h-40l12-12v-8l-12-12v-32zm56 0h16v32l-12 12v8l12 12h-40l12-12v-14l12-12z" style="fill:#53bcda" transform="translate(-276 -1440)"/>
<path d="M897 1802h-26l16-16h10c4.415 0 8 3.585 8 8s-3.585 8-8 8m-32 0h-11v-16h27zm182 0h-26l16-16h10c4.415 0 8 3.585 8 8s-3.585 8-8 8m-32 0h-11v-16h27zm-118 24h-26l16-16h10c4.415 0 8 3.585 8 8s-3.585 8-8 8m-32 0h-11v-16h27zm182 0h-26l16-16h10c4.415 0 8 3.585 8 8s-3.585 8-8 8m-32 0h-11v-16h27z" style="fill:#ffe" transform="translate(-550 -1440)"/>
<path d="M276 15V0h256v15zM518 .82H290v13.36h228z" style="fill:#5abeda" transform="matrix(1 0 0 17.06667 0 306)"/>
</g>
</g>
</svg>

Before

Width:  |  Height:  |  Size: 672 B

After

Width:  |  Height:  |  Size: 1.5 KiB

+15 -5
View File
@@ -1,5 +1,15 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 126 126" fill="#fff"> <svg viewBox="0 0 256 256" xmlns="http://www.w3.org/2000/svg" xml:space="preserve" style="fill-rule:evenodd;clip-rule:evenodd;stroke-linejoin:round;stroke-miterlimit:2">
<path fill="#679552" d="M90 33s-6-8.3-18-15h43v15H90Zm2 24v14H44s9-22.4 9-28-9-25-9-25h9s39 0 39 39Zm-7 35H50v-8l-6-6v-2h41v16Zm-47 9h12v-5h43l13 16H18l9-11h11Z"/> <desc>Traced by Dogo314</desc>
<path d="m17 50 5-20L2 56l14-1-4 20 20-26Z"/> <g transform="translate(-276 -306)">
<path d="M40 69v11l6 6v11H27V86l6-6V69s-2-4.3-4-9.5L38 46H24.5l-.3-1.1 1.8-10c2.7-7.5 7-16.9 7-16.9h7s9 19.4 9 25-9 26-9 26Z"/> <path style="fill:none" d="M276 306h256v256H276z"/>
</svg> <clipPath id="a">
<path d="M276 306h256v256H276z"/>
</clipPath>
<g clip-path="url(#a)">
<path style="fill:#091901" transform="translate(0 306)" d="M276 0h256v256H276z"/>
<path d="M404 758h57l18 21H359l10.286-12H404zm-8.675-105H404c31.459 0 57 25.541 57 57v15h-65.675l12-36zM395 731h54v21h-45v-8.485l-9-9zm35.849-78H491v21h-35.306a63.3 63.3 0 0 0-24.845-21" style="fill:#679452" transform="translate(-154.667 -520.667)scale(1.33333)"/>
<path d="M2260 720h-24l32-47-8 39h24l-32 47zm12-16 16-48h12l16 48-16 48v16l12 12v20h-36v-20l12-12v-16l-7.085-21.254 18.21-26.746z" style="fill:#ffe" transform="translate(-1936 -306)"/>
<path d="M276 15V0h256v15zM518 .82H290v13.36h228z" style="fill:#689452" transform="matrix(1 0 0 17.06667 0 306)"/>
</g>
</g>
</svg>

Before

Width:  |  Height:  |  Size: 423 B

After

Width:  |  Height:  |  Size: 1.1 KiB

+15 -4
View File
@@ -1,4 +1,15 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 126 126" fill="#fff"> <svg viewBox="0 0 256 256" xmlns="http://www.w3.org/2000/svg" xml:space="preserve" style="fill-rule:evenodd;clip-rule:evenodd;stroke-linejoin:round;stroke-miterlimit:2">
<path fill="#49adc9" d="M4 95v-9l6-5v-5h14l3-3h2v5h6l3 1 1 2h23l4-3h29v2l4 1 1 3h19l2 2v17l-2 2H97v1h-5v-1H68v1h-2v-1H53v1H27v-1H6l-2-2v-8Z"/> <desc>Traced by Dogo314</desc>
<path d="M80 52c-8.3 0-28-7-28-7h-7l-4 7H26l4-9h-5l-3 9h-8l5-12v-1l-5-12h8l3 9h5l-4-9h15l4 7h7s19.7-7 28-7 32 7 32 7v11s-23.7 7-32 7Z"/> <g transform="translate(-276 -306)">
</svg> <path style="fill:none" d="M276 306h256v256H276z"/>
<clipPath id="a">
<path d="M276 306h256v256H276z"/>
</clipPath>
<g clip-path="url(#a)">
<path style="fill:#011419;" transform="translate(0 306)" d="M276 0h256v256H276z"/>
<path d="M276 15V0h256v15zM518 .82H290v13.36h228z" style="fill:#5abeda" transform="matrix(1 0 0 17.06667 0 306)"/>
<path d="m1156 2385-8-23h14.435l5.565 16h5.565l-5.565-16h24l8 12h8l56-12 56 12v22l-56 12-56-12h-8l-8 12h-24l5.565-16H1168l-5.565 16H1148z" style="fill:#ffe" transform="translate(-828 -1992)"/>
<path d="M1169 2502v-2h-36l-5-2v-33l5-2h2v-5h4v-7h21l9-6h4v8h8l3 3h5l3 3h39v-2h6v-5h52l5 5h4v6h33l5 2v33l-5 2h-37v2h-8v-2h-43v2h-6v-2h-22v2z" style="fill:#53bcda" transform="translate(-828 -1992)"/>
</g>
</g>
</svg>

Before

Width:  |  Height:  |  Size: 364 B

After

Width:  |  Height:  |  Size: 1.0 KiB

+15 -4
View File
@@ -1,4 +1,15 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 126 126" fill="#fff"> <svg viewBox="0 0 256 256" xmlns="http://www.w3.org/2000/svg" xml:space="preserve" style="fill-rule:evenodd;clip-rule:evenodd;stroke-linejoin:round;stroke-miterlimit:2">
<path d="M62 65v-9l-3-4 6-10 1 2 1 3 5 5-4 5v8l15-14s0-6.1-5-18a52.4 52.4 0 0 0-5 7V28L60 15l-2 16-9 9v14Z"/> <desc>Traced by Dogo314</desc>
<path fill="#49adc9" d="M81 92v1h3v4l-4 4h-4v3l-12 9h-7l-5-7v-6l-7-10H29l-4 5H9l-5-4v-8h18l2-2h18v-2h8v2h4v-2h20v2h9v2h30l2 1h3v2h-1l-2 1v3h3v-3l2 1h1v4H81Zm-58-5h-7l-1 2h-1l-1-2h-3v6h11l2-2v-4Zm43 5-4-4H50v3l7 8h2l7-4v-3Zm46-4H81v2h31v-2Z"/> <g transform="translate(-276 -306)">
</svg> <path style="fill:none" d="M276 306h256v256H276z"/>
<clipPath id="a">
<path d="M276 306h256v256H276z"/>
</clipPath>
<g clip-path="url(#a)">
<path style="fill:#011419;" transform="translate(0 306)" d="M276 0h256v256H276z"/>
<path d="M1680 2461a1 1 0 0 1 1-1h10l2 1h2l2-1h7l2 1h4l6-3h32l1-2v-2h5v2h2v-2h2v2h2v-2h2v2l1 2h4l1-2h2v-2h7v2h2v-2h2v2h2v-2h2v2h2v-2h2v2h2v-2h2v2h2v-2h2v2h2v-2h2v2h2v-2h2v4h2v-2h2v2h10l3 3h53l2 2h3l1 1v3l-1 1h-2l-1 1v5h4l2-2v-4h3v3l2 2v2l-2 2h-69v1h1l2 3v5l-1 1h-2v3l-1 1h-4l-1 1h-3v5l-23 16h-6l-1 1h-2l-10-13v-6l-11-18-2-1v-3h-29c-1 4-6 9-8 9h-26a6 6 0 0 1-6-6h-3a1 1 0 0 1-1-1zm189 14v-1l1-1h3l1-1v-1l-1-1h-52l-3 3h-1v2zm-106-3v2l11 17 17-10-7-9zm-49 3v-5h-15a2 2 0 0 0-2 2h-1a3 3 0 0 1 3-3h15l-1-3h-19c-.796 0-1.559.316-2.121.879A3 3 0 0 0 1691 2469v7c0 .796.316 1.559.879 2.121a3 3 0 0 0 2.121.879h16z" style="fill:#53bcda" transform="translate(-1380 -1992)"/>
<path d="m1782 2429-22-22v-22l18-18v-28l25 25v27l8-20 10 33-25 25v-15l7-7-11-11v-14l-21 21 11 11z" style="fill:#ffe" transform="translate(-1380 -1992)"/>
<path d="M276 15V0h256v15zM518 .82H290v13.36h228z" style="fill:#5abeda" transform="matrix(1 0 0 17.06667 0 306)"/>
</g>
</g>
</svg>

Before

Width:  |  Height:  |  Size: 437 B

After

Width:  |  Height:  |  Size: 1.4 KiB

+19 -8
View File
@@ -1,8 +1,19 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 126 126" fill="#fff"> <svg viewBox="0 0 256 256" xmlns="http://www.w3.org/2000/svg" xml:space="preserve" style="fill-rule:evenodd;clip-rule:evenodd;stroke-linejoin:round;stroke-miterlimit:2">
<path fill="#679552" d="M90 33s-6-8.3-18-15h43v15H90Zm2 24v14H51.5l-.5-1-1-1h-4l-1-1h-9v-2h9l1-1h4l1-1 1-2 1-1v-1l-1-1-1-2-1-1h-4l-1-1h-9v-3h9l1-1h4l1-1 1-2 1-1v-1l-1-1-1-2-1-1h-4l-1-1h-9v-2h9l1-1h4l1-1 1-2 1-1v-1l-1-1-1-2-1-1h-4l-1-1h-9v-1h-5v-9h22s39 0 39 39ZM52 85l-1-2-1-1h-4l-1-1h-4v-2h4l1-1h4l1-1 .5-1H85v16H45l1-1h4l1-1 1-2 1-1v-1Zm41 11 13 16H18l13-16h62Z"/> <desc>Traced by Dogo314</desc>
<path d="M9 90h26l1-1h8l1-1h3l1-1v-1l-1-1h-3l-1-1h-8l-1-1H9v7Z"/> <g transform="translate(-276 -306)">
<path d="M9 77h26l1-1h8l1-1h3l1-1v-1l-1-1h-3l-1-1h-8l-1-1H9v7Z"/> <path style="fill:none" d="M276 306h256v256H276z"/>
<path d="M9 64h26l1-1h8l1-1h3l1-1v-1l-1-1h-3l-1-1h-8l-1-1H9v7Z"/> <clipPath id="a">
<path d="M9 50h26l1-1h8l1-1h3l1-1v-1l-1-1h-3l-1-1h-8l-1-1H9v7Z"/> <path d="M276 306h256v256H276z"/>
<path d="M9 37h26l1-1h8l1-1h3l1-1v-1l-1-1h-3l-1-1h-8l-1-1H9v7Z"/> </clipPath>
</svg> <g clip-path="url(#a)">
<path style="fill:#091901;" transform="translate(0 306)" d="M276 0h256v256H276z"/>
<path d="M276 15V0h256v15zM518 .82H290v13.36h228z" style="fill:#689452" transform="matrix(1 0 0 17.06667 0 306)"/>
<path d="M377 662v-9h27c31.459 0 57 25.541 57 57v15h-53.045l-10.8-6 16.2-9-16.2-9 16.2-9-16.2-9 16.2-9-17.55-9.75h-8.82l-2.25-2.25zm30.955 69H449v21h-46.445l10.8-6-16.2-9zM377 758h84l18 21H359zm53.849-105H491v21h-35.306a63.3 63.3 0 0 0-24.845-21" style="fill:#679452" transform="translate(-154.667 -520.667)scale(1.33333)"/>
<path d="m358 685-3 3h-47v-16h47l3 3h13l9 5-9 5z" style="fill:#ffe" transform="translate(0 -302)"/>
<path d="m358 685-3 3h-47v-16h47l3 3h13l9 5-9 5z" style="fill:#ffe" transform="translate(0 -278)"/>
<path d="m358 685-3 3h-47v-16h47l3 3h13l9 5-9 5z" style="fill:#ffe" transform="translate(0 -254)"/>
<path d="m358 685-3 3h-47v-16h47l3 3h13l9 5-9 5z" style="fill:#ffe" transform="translate(0 -230)"/>
<path d="m358 685-3 3h-47v-16h47l3 3h13l9 5-9 5z" style="fill:#ffe" transform="translate(0 -206)"/>
</g>
</g>
</svg>

Before

Width:  |  Height:  |  Size: 785 B

After

Width:  |  Height:  |  Size: 1.5 KiB

+15 -1
View File
@@ -1 +1,15 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 126 126"><g fill-rule="evenodd"><path fill="#fff" d="M27 28h10v3h21v23H37v3H27V28Zm37 3v23h25s11 .049 11-11v-1s.82-11-11-11H64Z"/><path fill="#49adc9" d="M25 77v-2h9l1-3h6v1h4v-1h2v2h3v-2h4v2h35v-2h7v1h3v-1h7l2 2h3l1 1h5v4h-2v5l2 2h4v5h-3l-2 2h-8l-1 1h-6s2.064.25 2 3c-.031 1.32-2 3-2 3h-6v2h6s2 1.724 2 3a9.009 9.009 0 0 1 0 1 3.778 3.778 0 0 1-2 3h-5s.262 1.02-1 1a2.582 2.582 0 0 1-1-1h-6V94h-3l-1-1H72v7l-2 2h-3l-1 1H55l-6 11h-6l-2-2v-3l8-10v-3l-2-2H37l-5-3v-3h-7v-2H15v17l-3 2H7l-2-2V74l2-2h5l3 2v3h10Zm36.5 20c1.933 0 3.5.9 3.5 2s-1.567 2-3.5 2-3.5-.895-3.5-2 1.567-2 3.5-2Z"/></g></svg> <svg viewBox="0 0 256 256" xmlns="http://www.w3.org/2000/svg" xml:space="preserve" style="fill-rule:evenodd;clip-rule:evenodd;stroke-linejoin:round;stroke-miterlimit:2">
<desc>Traced by Dogo314</desc>
<g transform="translate(-276 -306)">
<path style="fill:none" d="M276 306h256v256H276z"/>
<clipPath id="a">
<path d="M276 306h256v256H276z"/>
</clipPath>
<g clip-path="url(#a)">
<path style="fill:#011419;" transform="translate(0 306)" d="M276 0h256v256H276z"/>
<path d="M4037 2483h-7l-3-3h-20v15h-4l-9.297 2.789c-.466.14-.95.211-1.437.211h-7.911q-.355 0-.707-.05L3977 2497l-8 14v4l-1.121 1.121a3 3 0 0 1-2.122.879H3960a3 3 0 0 1-1.8-.6 517 517 0 0 1-4.715-3.568 2.974 2.974 0 0 1-.587-4.175c4.035-5.074 13.102-16.992 13.102-21.657q0-6-6-6h-16l-9-5v-5h-10l-3-3h-11l-.657 22.353c-.191 6.487-5.505 11.647-11.995 11.647H3893a5 5 0 0 1-5-5v-49c0-1.326.527-2.598 1.464-3.536A5 5 0 0 1 3893 2443h9a7 7 0 0 1 7 7h13l2-2h13l4-4v-2h12v2h2v-2h2v2h2v-2h2v2h2v-2h2v2h2v-2h2v2h2v-2h2v2h2v-2h2v2h8l3 3v-3h50l2-2h11l2 2h1l2-2h12l2 2h5l6 4h6v8l-2 1v8h4v1h7v13h-7v1h-17l-3 3h-6.127a5.97 5.97 0 0 1 1.127 3.5c0 3.311-2.689 6-6 6h-8v3.5h8c3.311 0 6 2.689 6 6s-2.689 6-6 6h-8v2h-2.5v-2h-9.5v1h-1v-14h1v1h1v-3.5h-1v1h-1zm-54.5 4.5a1 1 0 1 0 0 2 1 1 0 0 0 0-2m0 5a1 1 0 1 0 0 2 1 1 0 0 0 0-2m10.5-5.5h-8c-1 3-1 5 0 8h8a4 4 0 0 0 2.828-1.172 3.995 3.995 0 0 0 0-5.656A4 4 0 0 0 3993 2487m-11 3a1 1 0 1 0 0 2 1 1 0 0 0 0-2" style="fill:#53bcda" transform="translate(-3588 -1992)"/>
<path d="M4038 2410h-44v-40h44c11.038 0 20 8.962 20 20s-8.962 20-20 20m-92 0v4h-16v-48h16v4h40v40z" style="fill:#ffe" transform="translate(-3590 -1992)"/>
<path d="M276 15V0h256v15zM518 .82H290v13.36h228z" style="fill:#5abeda" transform="matrix(1 0 0 17.06667 0 306)"/>
</g>
</g>
</svg>

Before

Width:  |  Height:  |  Size: 646 B

After

Width:  |  Height:  |  Size: 1.8 KiB

+15 -8
View File
@@ -1,8 +1,15 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 126 126" fill="#fff"> <svg viewBox="0 0 256 256" xmlns="http://www.w3.org/2000/svg" xml:space="preserve" style="fill-rule:evenodd;clip-rule:evenodd;stroke-linejoin:round;stroke-miterlimit:2">
<g fill="#49adc9"> <desc>Traced by Dogo314</desc>
<path d="M79 41h9v10h-9z"/> <g transform="translate(-276 -306)">
<path d="M75 41H63l-9-9v12l13 19v35h37l9-9V32l-9 9H92v14H75V41Z"/> <path style="fill:none" d="M276 306h256v256H276z"/>
<path d="m54 27 11 10h37l11-10V16H54v11Z"/> <clipPath id="a">
</g> <path d="M276 306h256v256H276z"/>
<path fill-rule="evenodd" d="M20 114 9 98V65l11-16v8h7l4-14h10l4 14h7v-8l11 16v33l-11 16v-8h-7l-4 14H31l-4-14h-7v8Zm1-50h13a1 1 0 0 0 1 1h12s5 2 5 3-5 3-5 3H35a1 1 0 0 0-1 1H21v-8Zm0 13h13a1 1 0 0 0 1 1h12s5 2 5 3-5 3-5 3H35a1 1 0 0 0-1 1H21v-8Zm0 13h13a1 1 0 0 0 1 1h12s5 2 5 3-5 3-5 3H35a1 1 0 0 0-1 1H21v-8Z"/> </clipPath>
</svg> <g clip-path="url(#a)">
<path style="fill:#011419;" transform="translate(0 306)" d="M276 0h256v256H276z"/>
<path d="M388 1553.443V1541l17 17h19v24h32v-24h19l17-17v101l-16 16h-64v-67.357zm84-3.443h-64l-20-20v-16h104v16zm-24 8v16h-16v-16z" style="fill:#53bcda" transform="translate(0 -1164)"/>
<path d="m1468 1554 8 24h12v-16l20 31v58l-20 31v-16h-12l-8 24h-16l-8-24h-12v16l-20-31v-58l20-31v16h12l8-24zm-8 49h20l8-5-8-5h-20l-3-3h-25v16h25zm0 24h20l8-5-8-5h-20l-3-3h-25v16h25zm0 24h20l8-5-8-5h-20l-3-3h-25v16h25z" style="fill:#ffe" transform="translate(-1104 -1164)"/>
<path d="M276 15V0h256v15zM518 .82H290v13.36h228z" style="fill:#5abeda" transform="matrix(1 0 0 17.06667 0 306)"/>
</g>
</g>
</svg>

Before

Width:  |  Height:  |  Size: 565 B

After

Width:  |  Height:  |  Size: 1.1 KiB

+15 -8
View File
@@ -1,8 +1,15 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 126 126" fill="#fff"> <svg viewBox="0 0 256 256" xmlns="http://www.w3.org/2000/svg" xml:space="preserve" style="fill-rule:evenodd;clip-rule:evenodd;stroke-linejoin:round;stroke-miterlimit:2">
<g fill="#49adc9"> <desc>Traced by Dogo314</desc>
<path d="M79 41h9v10h-9z"/> <g transform="translate(-276 -306)">
<path d="M75 41H63l-9-9v12l13 19v35h37l9-9V32l-9 9H92v14H75V41Z"/> <path style="fill:none" d="M276 306h256v256H276z"/>
<path d="m54 27 11 10h37l11-10V16H54v11Z"/> <clipPath id="a">
</g> <path d="M276 306h256v256H276z"/>
<path fill-rule="evenodd" d="M20 114 9 98V65l11-16v8h7l4-14h10l4 14h7v-8l11 16v33l-11 16v-8h-7l-4 14H31l-4-14h-7v8Zm27-30ZM36 74a8 8 0 1 1-7.7 6 8 8 0 0 1 7.7-6ZM9 80h19v4H9v-4Zm25-8v-8h4v8h-4Zm20 12h-8v-4h8v4Zm-20 16v-8h4v8h-4ZM21 70l3-3 6 6-3 3Zm27-3 3 3-6 6-3-3ZM21 94l3 3 6-6-3-3Zm27 3 3-3-6-6-3 3Z"/> </clipPath>
</svg> <g clip-path="url(#a)">
<path style="fill:#011419;" transform="translate(0 306)" d="M276 0h256v256H276z"/>
<path d="M276 15V0h256v15zM518 .82H290v13.36h228z" style="fill:#5abeda" transform="matrix(1 0 0 17.06667 0 306)"/>
<path d="M388 1553.443V1541l17 17h19v24h32v-24h19l17-17v101l-16 16h-64v-67.357zm84-3.443h-64l-20-20v-16h104v16zm-24 8v16h-16v-16z" style="fill:#53bcda" transform="translate(0 -1164)"/>
<path d="M1412 1618v-25l20-31v16h12l8-24h16l8 24h12v-16l20 31v58l-20 31v-16h-12l-8 24h-16l-8-24h-12v16l-20-31v-25h36.684c1.649 4.659 6.095 8 11.316 8 6.623 0 12-5.377 12-12s-5.377-12-12-12c-5.221 0-9.667 3.341-11.316 8zm33.77-4.573 5.657-5.657-11.226-11.226-5.657 5.657zm18.23 24.698h-8V1654h8zm10.23-7.552-5.657 5.657 11.226 11.226 5.657-5.657zm1.895-12.573v8H1492v-8zm-7.552-10.23 5.657 5.657 11.226-11.226-5.657-5.657zm-12.573-1.895h8V1590h-8zm-4.573 30.355-5.657-5.657-11.226 11.226 5.657 5.657z" style="fill:#ffe" transform="translate(-1104 -1164)"/>
</g>
</g>
</svg>

Before

Width:  |  Height:  |  Size: 566 B

After

Width:  |  Height:  |  Size: 1.4 KiB

+15 -4
View File
@@ -1,4 +1,15 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 126 126"> <svg viewBox="0 0 256 256" xmlns="http://www.w3.org/2000/svg" xml:space="preserve" style="fill-rule:evenodd;clip-rule:evenodd;stroke-linejoin:round;stroke-miterlimit:2">
<path d="m92 29-3 1.25-2 .917h-8L76 33H42V22h34l3 1.833h8l2 .917L92 26l2 1.5zm-59 3.083V22h5v11h-5v-.917zM92 44l-3 1.25-2 .917h-8L76 48H42V37h34l3 1.833h8l2 .917L92 41l2 1.5zm-59 3.083V37h5v11h-5v-.917zM92 59l-3 1.25-2 .917h-8L76 63H42V52h34l3 1.833h8l2 .917L92 56l2 1.5zm-59 3.083V52h5v11h-5v-.917z" fill="#fff" fill-rule="evenodd"/> <desc>Traced by Dogo314</desc>
<path d="M14 81h19l2-2h14l1-1h16l1 2h17l2 4h4v-1h5l1 1 18 1 1-1h6l1 1v2l-1 1h-6l-1-1H95v1h1v3h-6l3 18 2 2v2l-7-2v-2h2v-2l-3-1-2-1v-1h2l-1-13h-2l-2 1v3l-9 10h-4l-1 1h-2l-1 2H53l-2-1-2-1V91h2v-2h-2v1l-1 1v2a1.824 1.824 0 0 1-1 1 3.907 3.907 0 0 1-2 0l-1-1h-1v1l-4 7-7-1-4-1-5-4-1-1h-3v1h-2v-1h-6l-2-2-1-11h6zm-2 6a4.372 4.372 0 0 1 3 0c.461.42 0 2 0 2a1.128 1.128 0 0 0-1 0c-.164.307.213 1.052-1 1a1.046 1.046 0 0 1-1-1s-.287-1.713 0-2zm17 4a.911.911 0 0 1 1.046-1A.836.836 0 0 1 31 91h1a2.477 2.477 0 0 1 0 2 5.093 5.093 0 0 1-1 1v2a5.82 5.82 0 0 1-1 0 9.229 9.229 0 0 1-2-1 12.655 12.655 0 0 1 0-3 1.875 1.875 0 0 1 1-1zm6 8v-3l1-2s3.368 1.283 5 1c.059-.01-1 1-1 1l-2 3h-3zm15-19h6v1a4.969 4.969 0 0 0-2 0 1.707 1.707 0 0 0-1 1h-3v-2zm17 2v-1h2l1 1v2a6.4 6.4 0 0 1-1 0c-.209-1.408-2-2-2-2zm5-1v1h3l1 1h1v-1h-1v-1h-4zm7 0v1h1v1h1v-1zm-2 0v1h1v1h1v-1zm14 7h-2v-1a4.273 4.273 0 0 0 2 0v1zm-25 2h2s1.087.085 1 2c-.011.248-.147.687 1 1a10.438 10.438 0 0 0 2 0v1h-3a1.039 1.039 0 0 1-1-1v-2h-2v-1zm7 0s-1.256.489-1 1c.02.041 2 0 2 0s.306-.429-1-1zm8-9v1h1v1h1v-1zm-21-1v1h-4v1h6v-2h-2zM38 93s-.58.879 3 1c0 0 .5-2.037-1-2s-2-.248-2 1zm8-2a.563.563 0 0 0 0 1s.686.51 1 0a.961.961 0 0 0 0-1c-.186-.73-.224-.479-1 0z" fill-rule="evenodd" fill="#49adc9"/> <g transform="translate(-276 -306)">
</svg> <path style="fill:none" d="M276 306h256v256H276z"/>
<clipPath id="a">
<path d="M276 306h256v256H276z"/>
</clipPath>
<g clip-path="url(#a)">
<path style="fill:#011419;" transform="translate(0 306)" d="M276 0h256v256H276z"/>
<path d="M2299.096 2483.755a.89.89 0 0 0-.869-.709c-.563-.046-1.227-.046-1.227-.046l-7 13q-1.5 3-3 3c-1 0-2-2-2-2h-2c-10 0-20-4-25-11h-10l-3-2h-9v-2h-3l-2-21h6l4-1h36l3-3h27l3-2h30v4h35v3c2 1 2 2 2 4h5v2h4v-2h8v2h38v-1h12v5h-12v-1h-38v3h3v4h-4v1h-5v-1h-4l6 37h4v4h-8l-4-4h4l-1.135-7H2380l-4-4h4l-3-26h-3l-4 4v5l-9 9v1l-8 8h-7l-3 3h-3l-2 2h-23l-4-2h-3v-31l-3 2v4a3.001 3.001 0 0 1-5.904.755M2238 2471v6h3l2-2v-4zm116-8a1 1 0 1 0 0 2 1 1 0 0 0 0-2m14-2a1 1 0 1 0 0 2 1 1 0 0 0 0-2m-6 2a1 1 0 1 0 0 2 1 1 0 0 0 0-2m22.216 41-.749-4.622.533 4.622zM2270 2478l-1 1v6.5a1 1 0 0 0 .4.8l2.582 1.937a1 1 0 0 0 1.519-.407l1.699-3.963a3 3 0 0 0-.636-3.303L2271 2477v1zm86-17a1 1 0 1 0 0 2 1 1 0 0 0 0-2m-4 0a1 1 0 1 0 0 2 1 1 0 0 0 0-2m-8 0a1 1 0 1 0 0 2 1 1 0 0 0 0-2m16 0a1 1 0 1 0 0 2 1 1 0 0 0 0-2m-68 24 1-3h-5c-1 1-1 2 0 3zm-6 10 6-9h-9l-1.728 4.32c-.176.439-.19.926-.04 1.375l.506 1.519c.168.503.788 1.549 1.262 1.786zm72-32a1 1 0 1 0 0 2 1 1 0 0 0 0-2m6-2a1 1 0 1 0 0 2 1 1 0 0 0 0-2m-18 2a1 1 0 1 0 0 2 1 1 0 0 0 0-2m20 0a1 1 0 1 0 0 2 1 1 0 0 0 0-2m-16 0a1 1 0 1 0 0 2 1 1 0 0 0 0-2m-48 19a1 1 0 1 0 0 2 1 1 0 0 0 0-2m46-21a1 1 0 1 0 0 2 1 1 0 0 0 0-2m22 2a1 1 0 1 0 0 2 1 1 0 0 0 0-2m2-2a1 1 0 1 0 0 2 1 1 0 0 0 0-2" style="fill:#53bcda" transform="translate(-1932 -1992)"/>
<path d="M356 2350v20h-8v-20zm78 16-5 4h-65v-20h65l5 4h15l11 6-11 6zm-78 12v20h-8v-20zm78 16-5 4h-65v-20h65l5 4h15l11 6-11 6zm-78 12v20h-8v-20zm78 16-5 4h-65v-20h65l5 4h15l11 6-11 6z" style="fill:#ffe" transform="translate(0 -1992)"/>
<path d="M276 15V0h256v15zM518 .82H290v13.36h228z" style="fill:#5abeda" transform="matrix(1 0 0 17.06667 0 306)"/>
</g>
</g>
</svg>

Before

Width:  |  Height:  |  Size: 1.6 KiB

After

Width:  |  Height:  |  Size: 2.1 KiB

+15 -5
View File
@@ -1,5 +1,15 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 126 126" fill="#fff"> <svg viewBox="0 0 256 256" xmlns="http://www.w3.org/2000/svg" xml:space="preserve" style="fill-rule:evenodd;clip-rule:evenodd;stroke-linejoin:round;stroke-miterlimit:2">
<path d="M63 109H34L21 95l15 2-2-12 11 11V76l14 13s2.5-21.5 3-30c.4-6.6-4-14-4-14l-11 1c-2.3.2-9.1-1-9-9s8-6 8-6 1.2-7 11-5c0 0-.9-5 6-5v88Zm0 0h29l13-14-15 2 2-12-11 11V76L67 89s-2.5-21.5-3-30c-.4-6.6 4-14 4-14l12 1c2.3.2 8.1-1 8-9s-8-6-8-6-1.2-7-11-5c0 0 .9-5-6-5v88Z"/> <desc>Traced by Dogo314</desc>
<path fill-rule="evenodd" d="M63 53c16.6 0 30 3.6 30 8s-13.4 8-30 8-30-3.6-30-8 13.4-8 30-8Zm0 4c12.2 0 22 1.8 22 4s-9.8 4-22 4-22-1.8-22-4 9.9-4 22-4Z"/> <g transform="translate(-28.444 589.487)scale(.98084)">
<path fill="#c9b269" d="M4 122v-20l20 20H4Zm118 0v-20l-20 20h20Zm0-118v20L102 4h20ZM4 4v20L24 4H4Z"/> <path style="fill:none" d="M29-601h261v261H29z"/>
</svg> <clipPath id="a">
<path d="M29-601h261v261H29z"/>
</clipPath>
<g clip-path="url(#a)">
<path style="fill:#363426" transform="translate(-252.39 -601)scale(1.01953)" d="M276 0h256v256H276z"/>
<path d="M1771 96h-17c-7.727 0-14-6.273-14-14 0-7.586 6.047-13.771 13.579-13.994C1755.3 62.223 1760.661 58 1767 58c1.194 0 2.353.15 3.46.431 1.579-6 7.046-10.431 13.54-10.431s11.961 4.431 13.54 10.431A14 14 0 0 1 1801 58c6.339 0 11.7 4.223 13.421 10.006C1821.953 68.229 1828 74.414 1828 82c0 7.727-6.273 14-14 14h-17s-9 12-9 39c0 31 4 41 4 41l24-24v36l20-20v20h20l-20 20h-104l-20-20h20v-20l20 20v-36l24 24s4-10 4-41c0-27-9-39-9-39" style="fill:#ffe" transform="translate(-1659.344 -601)scale(1.01953)"/>
<path d="M1785 118c21.525 0 39 2.689 39 6s-17.475 6-39 6-39-2.689-39-6 17.475-6 39-6m0 4c-14.902 0-27 .896-27 2s12.098 2 27 2 27-.896 27-2-12.098-2-27-2" style="fill:#ffe" transform="matrix(1.35938 0 0 2.03906 -2266.984 -727.422)"/>
<path d="M276 256V0h256v256zM518 14H290v228h228zm-10 10v32l-32-32zM300 232v-32l32 32zm0-208h32l-32 32zm208 208h-32l32-32z" style="fill:#c9b269" transform="translate(-252.39 -601)scale(1.01953)"/>
</g>
</g>
</svg>

Before

Width:  |  Height:  |  Size: 615 B

After

Width:  |  Height:  |  Size: 1.5 KiB

+15 -7
View File
@@ -1,7 +1,15 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 126 126"> <svg viewBox="0 0 256 256" xmlns="http://www.w3.org/2000/svg" xml:space="preserve" style="fill-rule:evenodd;clip-rule:evenodd;stroke-linejoin:round;stroke-miterlimit:2">
<path fill="#679552" fill-rule="evenodd" d="M99.866,31A54.163,54.163,0,0,0,84.65,16H121V31H99.866Zm1.691,24V69H49.99V63H68l2-2,8-1,6-4,3-4-3-4-5-4V42l5-4,3-4-3-4-6-4-8-1-2-2H49.99V16h18.6S101.557,15.968,101.557,55ZM95.639,74V90h-37.2V74h37.2ZM102.4,94l10.99,16H39L49.99,94H102.4Z"/> <desc>Traced by Dogo314</desc>
<path fill="#fff" fill-rule="evenodd" d="M39,28V40H66.25l1.125-1.714h9L77.5,36.571h3.375L83,34l-2.125-2.571H77.5l-1.125-1.714h-9L66.25,28H39Z"/> <g transform="translate(-276 -306)">
<path fill="#fff" fill-rule="evenodd" d="M39,46V58H66.25l1.125-1.714h9L77.5,54.571h3.375L83,52l-2.125-2.571H77.5l-1.125-1.714h-9L66.25,46H39Z"/> <path style="fill:none" d="M276 306h256v256H276z"/>
<circle fill="#fff" cx="18" cy="24" r="9"/> <clipPath id="a">
<path fill="#fff" fill-rule="evenodd" d="M5,34V74h5v37H26V74h5V34H5Z"/> <path d="M276 306h256v256H276z"/>
</svg> </clipPath>
<g clip-path="url(#a)">
<path style="fill:#091901;" transform="translate(0 306)" d="M276 0h256v256H276z"/>
<path d="M389 662v-9h15c31.459 0 57 25.541 57 57v15h-72v-9h19.817l4.5-3h11.384l16.5-12-16.5-12 16.5-12-16.5-12h-11.384l-4.5-3zm41.849-9H485v21h-29.306a63.3 63.3 0 0 0-24.845-21M446 731v21h-42v-21zm15 27 18 21H371l18-21z" style="fill:#679452" transform="translate(-138.667 -520.667)scale(1.33333)"/>
<path d="M2254 932c7.727 0 14 6.273 14 14s-6.273 14-14 14-14-6.273-14-14 6.273-14 14-14m-14 104h-4a4 4 0 0 1-2.828-1.172A4 4 0 0 1 2232 1032v-64c0-1.061.421-2.078 1.172-2.828A4 4 0 0 1 2236 964h36c1.061 0 2.078.421 2.828 1.172A4 4 0 0 1 2276 968v64a4 4 0 0 1-1.172 2.828A4 4 0 0 1 2272 1036h-4v60a4 4 0 0 1-1.172 2.828A4 4 0 0 1 2264 1100h-20a4 4 0 0 1-2.828-1.172A4 4 0 0 1 2240 1096zm102-32-6 4h-44v-24h44l6 4h15l11 8-11 8zm0-32-6 4h-44v-24h44l6 4h15l11 8-11 8z" style="fill:#ffe" transform="translate(-1932 -582)"/>
<path d="M276 15V0h256v15zM518 .82H290v13.36h228z" style="fill:#689452" transform="matrix(1 0 0 17.06667 0 306)"/>
</g>
</g>
</svg>

Before

Width:  |  Height:  |  Size: 774 B

After

Width:  |  Height:  |  Size: 1.4 KiB

+15 -5
View File
@@ -1,5 +1,15 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 126 126" fill="#fff"> <svg viewBox="0 0 256 256" xmlns="http://www.w3.org/2000/svg" xml:space="preserve" style="fill-rule:evenodd;clip-rule:evenodd;stroke-linejoin:round;stroke-miterlimit:2">
<path fill="#679552" d="M121 121H5v-20l17-7 20 10 21-10 21 10 20-10 17 7.2V121Z"/> <desc>Traced by Dogo314</desc>
<path d="M29 93V82h68v11l-13 6-21-10-21 10Z"/> <g transform="translate(-276 -306)">
<path d="M58 78 46 66V54l9-8 4-15 10 14v7l4-4 10 12-18 18v-8l4-4-6-3v-8l-7 10 3 4v9h-1ZM52 78H38v-9h5Zm28-9h8v9H71Z"/> <path style="fill:none" d="M276 306h256v256H276z"/>
</svg> <clipPath id="a">
<path d="M276 306h256v256H276z"/>
</clipPath>
<g clip-path="url(#a)">
<path style="fill:#091901;" transform="translate(0 306)" d="M276 0h256v256H276z"/>
<path d="M516 1128H292v-18.222L332 1092l36 16 36-16 36 16 36-16 40 17.778z" style="fill:#679452" transform="translate(0 -582)"/>
<path d="M388.623 1064H360v-12a4 4 0 0 1 4-4h8.677zm44.327-16H444a4 4 0 0 1 4 4v12h-29.246zM344 1088.579V1072h119v17.023l-23 10.222-36-16-36 16zm56-24.512L376 1040v-16l20-20v-24l20 24v16l8-8 16 16-32 36.067V1048l4-8-8-4v-16l-12 20 8 8z" style="fill:#ffe" transform="translate(0 -582)"/>
<path d="M276 15V0h256v15zM518 .82H290v13.36h228z" style="fill:#689452" transform="matrix(1 0 0 17.06667 0 306)"/>
</g>
</g>
</svg>

Before

Width:  |  Height:  |  Size: 337 B

After

Width:  |  Height:  |  Size: 1.1 KiB

+15 -4
View File
@@ -1,4 +1,15 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 126 126" fill="#fff"> <svg viewBox="0 0 256 256" xmlns="http://www.w3.org/2000/svg" xml:space="preserve" style="fill-rule:evenodd;clip-rule:evenodd;stroke-linejoin:round;stroke-miterlimit:2">
<path fill="#49adc9" d="M118 95h-17v2h-4v6l-5 5h-5l-1 6v1h-6l-8-3-1-2 4-5v-3H64l-2-2v-3h-3l-2 3v6h-1v6h-7v-6l-7-8h-5v-4h-3v2h-7v-2H14l-2 3H8v-3H5V79h3v-3h4l2 3h13v-3h7v3h5V68h3v4h22v4h2v-7h3v9h6l4 3h23v-1h4v-3h2v3h2v-3h2v3h2v-3h2v3h3v-2h2v15Zm-64 5h-1v5h1v-5Zm0 6h-1v5h1v-5Zm24 2v4h6v-7h-3Zm11-7h-5v3h5v-3Z"/> <desc>Traced by Dogo314</desc>
<path d="M94 38v-4h10v4H94Zm-5-12.8 7.1-7.1 2.8 2.8-7 7.1ZM81 46a10 10 0 0 1-9.5-7H23v-6h48.5A10 10 0 1 1 81 46Zm-2-33h4v10h-4V13Zm-16 7.9 2.9-3 7.1 7.2-2.9 3Zm10 26L66 54 63 51.1l7.2-7.1ZM83 59h-4V49h4v10Zm16-8L96.2 54l-7.1-7 2.8-2.9Z"/> <g transform="translate(-276 -306)">
</svg> <path style="fill:none" d="M276 306h256v256H276z"/>
<clipPath id="a">
<path d="M276 306h256v256H276z"/>
</clipPath>
<g clip-path="url(#a)">
<path style="fill:#011419;" transform="translate(0 306)" d="M276 0h256v256H276z"/>
<path d="M4326.52 2489H4325v13h-5v4h-11v8.399a3.87 3.87 0 0 1-1.132 2.733l-.487.487a1.3 1.3 0 0 1-.919.381h-3.013q-.449 0-.887-.099l-17.234-3.917a3.002 3.002 0 0 1-1.802-4.633l5.941-8.581a3 3 0 0 0 .533-1.707v-.82a3 3 0 0 0-.879-2.122L4287 2494h-15c-4 0-6-4-9-8l-6 6v11h-2v12h-13c0-17-11-25-15-25h-6v-3l-4-5h-2v3h-10v-3h-26v3h-10v-3h-3l-2-2v-24l2-2h3v-3h10v3h26v-3h10v3h11v-18l2.684-.895c.205-.068.427-.068.632 0l2.417.806c.175.058.362.067.541.026l12.492-2.883a1 1 0 0 1 .467.004l11.305 2.827a1 1 0 0 0 .843-.171l3.2-2.4a1 1 0 0 1 .916-.148l2.187.729c.205.068.427.068.632 0l2.187-.729a1 1 0 0 1 .916.148l3.087 2.315c.303.227.708.264 1.047.095l2.802-1.402c.385-.192.85-.117 1.155.188l1.49 1.49v17h12v2h8v2h42v-2h3v-1a3.001 3.001 0 0 1 6 0v1h2v-1a3.001 3.001 0 0 1 6 0v1h2v-1a3.001 3.001 0 0 1 6 0v1h8v26h-6l-2 2h-20v4h-4v2h-5.52c.332 2.09.52 4.473.52 7 0 5.215-.8 9.812-2.013 12.5 1.213.538 2.013 1.457 2.013 2.5 0 1.656-2.016 3-4.5 3s-4.5-1.344-4.5-3c0-1.043.8-1.962 2.013-2.5-1.213-2.688-2.013-7.285-2.013-12.5 0-2.527.188-4.91.52-7m-74.52 14a.997.997 0 0 0-1 1v7a.997.997 0 0 0 1 1 .997.997 0 0 0 1-1v-7a.997.997 0 0 0-1-1m0-11a.997.997 0 0 0-1 1v7a.997.997 0 0 0 1 1 .997.997 0 0 0 1-1v-7a.997.997 0 0 0-1-1m60 2h-6c-1 2-1 3 0 5h5a.997.997 0 0 0 1-1zm-8 20a1 1 0 0 0 1-1v-10a.997.997 0 0 0-1-1h-3.446a1 1 0 0 0-.848.47l-4.554 7.287a1 1 0 0 0-.152.53v.992a1 1 0 0 0 .684.949l5.162 1.721a1 1 0 0 0 .316.051z" style="fill:#53bcda" transform="translate(-3864 -1992)"/>
<path d="M4284.473 2382.75H4201.5v-7.5h82.973c1.667-6.467 7.543-11.25 14.527-11.25 8.279 0 15 6.721 15 15s-6.721 15-15 15c-6.984 0-12.86-4.783-14.527-11.25m18.277-41.25v15h-7.5v-15zm25.418 13.635-10.606 10.607-5.304-5.304 10.607-10.606zm8.332 27.615h-15v-7.5h15zm-13.635 25.418-10.607-10.606 5.304-5.304 10.606 10.607zm-27.615 8.332v-15h7.5v15zm-25.418-13.635 10.606-10.607 5.304 5.304-10.607 10.606zm5.303-53.033 10.607 10.606-5.304 5.304-10.606-10.607z" style="fill:#ffe" transform="translate(-4149.6 -2151.6)scale(1.06667)"/>
<path d="M276 15V0h256v15zM518 .82H290v13.36h228z" style="fill:#5abeda" transform="matrix(1 0 0 17.06667 0 306)"/>
</g>
</g>
</svg>

Before

Width:  |  Height:  |  Size: 635 B

After

Width:  |  Height:  |  Size: 2.6 KiB

+15 -6
View File
@@ -1,6 +1,15 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 126 126" fill="#fff"> <svg viewBox="0 0 256 256" xmlns="http://www.w3.org/2000/svg" xml:space="preserve" style="fill-rule:evenodd;clip-rule:evenodd;stroke-linejoin:round;stroke-miterlimit:2">
<path fill="#49adc9" d="M31 83V59L18 83h13Z"/> <desc>Traced by Dogo314</desc>
<path d="m35 87 2 25h5V87h-7ZM45 87v25h5l2-25h-7ZM76 87l2 25h5V87h-7ZM86 87v25h5l2-25h-7ZM35 83V33h17v50H35Z"/> <g transform="translate(-276 -306)">
<path d="M76 33h17v50H76z"/> <path style="fill:none" d="M276 306h256v256H276z"/>
<path fill="#49adc9" d="M97 83h13L97 59v24ZM56 83V29H35V16h58v13H72v54H56Z"/> <clipPath id="a">
</svg> <path d="M276 306h256v256H276z"/>
</clipPath>
<g clip-path="url(#a)">
<path style="fill:#011419;" transform="translate(0 306)" d="M276 0h256v256H276z"/>
<path d="M668 1538h-40v-24h104v24h-40v96h-24zm-48 96h-24l24-44zm120 0v-44l24 44z" style="fill:#53bcda" transform="translate(-276 -1164)"/>
<path d="M660 1546v88h-32v-88zm72 0v88h-32v-88zm-92 96v40h-8l-4-40zm72 0v40h-8l-4-40zm-64 0h12l-4 40h-8zm72 0h12l-4 40h-8z" style="fill:#ffe" transform="translate(-276 -1164)"/>
<path d="M276 15V0h256v15zM518 .82H290v13.36h228z" style="fill:#5abeda" transform="matrix(1 0 0 17.06667 0 306)"/>
</g>
</g>
</svg>

Before

Width:  |  Height:  |  Size: 352 B

After

Width:  |  Height:  |  Size: 981 B

+15 -4
View File
@@ -1,4 +1,15 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 126 126" fill-rule="evenodd"> <svg viewBox="0 0 256 256" xmlns="http://www.w3.org/2000/svg" xml:space="preserve" style="fill-rule:evenodd;clip-rule:evenodd;stroke-linejoin:round;stroke-miterlimit:2">
<path d="M121 85v3H67v6h-3v16H53V93h-8a50.6 50.6 0 0 0-1 9s-2.038 2.452-7-1c0 0-.913-2.905 3-8v-3l-2-2H16v2h1v2l-1 1h-3l-3-3H8l-1 3H4V78h8l2 3h5l1-1h7l4-2h16v-1h18v1h4v2h52v2h-2v3h2Zm-69 4h-6v3h6v-3Z" fill="#49adc9"/> <desc>Traced by Dogo314</desc>
<path d="m92 29-3 1.25-2 .917h-8L76 33H42V22h34l3 1.833h8l2 .917L92 26l2 1.5zm-59 3.083V22h5v11h-5v-.917zM92 44l-3 1.25-2 .917h-8L76 48H42V37h34l3 1.833h8l2 .917L92 41l2 1.5zm-59 3.083V37h5v11h-5v-.917zM92 59l-3 1.25-2 .917h-8L76 63H42V52h34l3 1.833h8l2 .917L92 56l2 1.5zm-59 3.083V52h5v11h-5v-.917z" fill="#fff"/> <g transform="translate(-276 -306)">
</svg> <path style="fill:none" d="M276 306h256v256H276z"/>
<clipPath id="a">
<path d="M276 306h256v256H276z"/>
</clipPath>
<g clip-path="url(#a)">
<path style="fill:#011419;" transform="translate(0 306)" d="M276 0h256v256H276z"/>
<path d="M308 2453.998a2 2 0 0 1 1.998-1.998H314c1.061 0 2.078.421 2.828 1.172A4 4 0 0 1 318 2456v1l27-4h32v-2h2l1 2h1v-2h2l1 2h1v-2h2l1 2h1v-2h2l1 2h1v-2h2l1 2h1v-2h2l1 2 1-2h6l1 2h6l6 3h88v4h-4v1h2v5h2v5h-96v11h-5v28h-20v-30h-10.622a5 5 0 0 0-4.957 4.339l-1.19 8.925a2 2 0 0 1-1.982 1.736h-4.491a4.75 4.75 0 0 1-3.364-1.394 4.75 4.75 0 0 1-1.394-3.364V2490l5-14v-.394a5.606 5.606 0 0 0-5.606-5.606H321v3l.762.381a2.24 2.24 0 0 1 1.238 2.003v.026a3.59 3.59 0 0 1-3.59 3.59h-1.993a9.1 9.1 0 0 1-4.515-1.199L308 2475a5 5 0 0 1-5 5h-1a2 2 0 0 1-2-2v-22c0-1.061.421-2.078 1.172-2.828A4 4 0 0 1 304 2452h2a2 2 0 0 1 2 1.998M376 2473a2 2 0 0 0-2 2v1a2 2 0 0 0 2 2h6a2 2 0 0 0 2-2v-1a2 2 0 0 0-2-2h-4c0 1 .5 3 1 4-1.837-.791-3-2-3-4" style="fill:#53bcda" transform="translate(0 -1992)"/>
<path d="M356 2350v20h-8v-20zm78 16-5 4h-65v-20h65l5 4h15l11 6-11 6zm-78 12v20h-8v-20zm78 16-5 4h-65v-20h65l5 4h15l11 6-11 6zm-78 12v20h-8v-20zm78 16-5 4h-65v-20h65l5 4h15l11 6-11 6z" style="fill:#ffe" transform="translate(0 -1992)"/>
<path d="M276 15V0h256v15zM518 .82H290v13.36h228z" style="fill:#5abeda" transform="matrix(1 0 0 17.06667 0 306)"/>
</g>
</g>
</svg>

Before

Width:  |  Height:  |  Size: 633 B

After

Width:  |  Height:  |  Size: 1.6 KiB

+15 -6
View File
@@ -1,6 +1,15 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 126 126" fill="#fff"> <svg viewBox="0 0 256 256" xmlns="http://www.w3.org/2000/svg" xml:space="preserve" style="fill-rule:evenodd;clip-rule:evenodd;stroke-linejoin:round;stroke-miterlimit:2">
<path fill="#679552" d="M90 33s-6-8.3-18-15h43v15H90Zm2 24v14H31v-3h7l1-1 7-1 1-1h3l3-4v-1l-3.1-4H47l-1-1-7-1h-5v-1h5l7-1 1-1h3l3-4v-1l-3-4h-3l-1-1-6-1h-6l12-1 1-1h3l3-4v-1l-3-4h-3l-1-1-10-1h-5v-9h22s39 0 39 39Zm-7 19v16H41V76h44Zm8 20 13 16H18l13-16h62Z"/> <desc>Traced by Dogo314</desc>
<path d="M9 57v7h26l1-1h8l1-1h3l1-1.5-1-1.5h-3l-1-1h-8l-1-1H9Z"/> <g transform="translate(-276 -306)">
<path d="M9 43v7h26l1-1h8l1-1h3l1-1.5-1-1.5h-3l-1-1h-8l-1-1H9Z"/> <path style="fill:none" d="M276 306h256v256H276z"/>
<path d="M9 30v7h26l1-1h8l1-1h3l1-1.5-1-1.5h-3l-1-1h-8l-1-1H9Z"/> <clipPath id="a">
</svg> <path d="M276 306h256v256H276z"/>
</clipPath>
<g clip-path="url(#a)">
<path style="fill:#091901;" transform="translate(0 306)" d="M276 0h256v256H276z"/>
<path d="m358 685-3 3h-47v-16h47l3 3h13l9 5-9 5zm0 24-3 3h-47v-16h47l3 3h13l9 5-9 5zm0 24-3 3h-47v-16h47l3 3h13l9 5-9 5z" style="fill:#ffe" transform="translate(0 -306)"/>
<path d="M377 659v-6h27c31.459 0 57 25.541 57 57v15h-84v-6h7.735l2.25-2.25h8.82l17.55-9.75-16.2-9 16.2-9-16.2-9 16.2-9-17.55-9.75h-8.82l-2.25-2.25zm53.849-6H491v21h-35.306a63.3 63.3 0 0 0-24.845-21M449 731v21h-60v-21zm12 27 18 21H359l18-21z" style="fill:#679452" transform="translate(-154.667 -520.667)scale(1.33333)"/>
<path d="M276 15V0h256v15zM518 .82H290v13.36h228z" style="fill:#689452" transform="matrix(1 0 0 17.06667 0 306)"/>
</g>
</g>
</svg>

Before

Width:  |  Height:  |  Size: 542 B

After

Width:  |  Height:  |  Size: 1.1 KiB

+15 -5
View File
@@ -1,5 +1,15 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 126 126" fill="#fff"> <svg viewBox="0 0 256 256" xmlns="http://www.w3.org/2000/svg" xml:space="preserve" style="fill-rule:evenodd;clip-rule:evenodd;stroke-linejoin:round;stroke-miterlimit:2">
<path fill="#679552" d="M90 33s-6-8.3-18-15h43v15H90Zm2 24v14H44s9-22.4 9-28-9-25-9-25h9s39 0 39 39Zm-7 35H50v-8l-6-6v-2h41v16Zm-47 9h12v-5h43l13 16H18l9-11h11Z"/> <desc>Traced by Dogo314</desc>
<path d="M40 69v11l6 6v11H36V18h4s9 19.4 9 25-9 26-9 26Z"/> <g transform="translate(-276 -306)">
<path d="M33 69v11l-6 6v11h10V18h-4s-9 19.4-9 25 9 26 9 26Z"/> <path style="fill:none" d="M276 306h256v256H276z"/>
</svg> <clipPath id="a">
<path d="M276 306h256v256H276z"/>
</clipPath>
<g clip-path="url(#a)">
<path style="fill:#091901;" transform="translate(0 306)" d="M276 0h256v256H276z"/>
<path d="M404 758h57l18 21H359l10.286-12H404zm-8.675-105H404c31.459 0 57 25.541 57 57v15h-65.675l12-36zM395 731h54v21h-45v-8.485l-9-9zm35.849-78H491v21h-35.306a63.3 63.3 0 0 0-24.845-21" style="fill:#679452" transform="translate(-154.667 -520.667)scale(1.33333)"/>
<path d="m2020 656 16 48-16 48v16l12 12v20h-36v-20l12-12v-16l-16-48 16-48z" style="fill:#ffe" transform="translate(-1656 -306)"/>
<path d="M276 15V0h256v15zM518 .82H290v13.36h228z" style="fill:#689452" transform="matrix(1 0 0 17.06667 0 306)"/>
</g>
</g>
</svg>

Before

Width:  |  Height:  |  Size: 372 B

After

Width:  |  Height:  |  Size: 1.0 KiB

+15 -6
View File
@@ -1,6 +1,15 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 126 126" fill="#fff"> <svg viewBox="0 0 256 256" xmlns="http://www.w3.org/2000/svg" xml:space="preserve" style="fill-rule:evenodd;clip-rule:evenodd;stroke-linejoin:round;stroke-miterlimit:2">
<path fill="#de7b6c" d="M99 120a91 91 0 0 0-4.5-27h15.3a53.7 53.7 0 0 1 7.2 27H99Zm-8-35c2.5-.2 4.7-3.3 6.2-6.8A54 54 0 0 1 107.9 90H93.4L91 85Zm-7.9-11a37.2 37.2 0 0 0-9-6.8 53.7 53.7 0 0 1 8.8 2.6c0 1.4 0 2.8.2 4.1Zm1.9 6.5a8.8 8.8 0 0 0 2.2 3.4 50.1 50.1 0 0 1 3.1 6.1H65v-5.2l1-.8c2.4-1.9 4.7-6.3 4.7-6.3s.3-4 .5-8.5A35 35 0 0 1 85 80.5ZM35.5 93H62v27H31a85.5 85.5 0 0 1 4.5-27ZM56 69v8s3.4 5.2 5 7a8.6 8.6 0 0 0 1 1v5H36.7A38.3 38.3 0 0 1 56 69Zm-11.1.2a53.8 53.8 0 0 1 8.5-2.3 37 37 0 0 0-9.5 7 30.5 30.5 0 0 0 1-4.7ZM18 90a54 54 0 0 1 11.6-12.5C31 81.1 33 84.9 36 85l-2.3 5H18.1Zm10 30H9a53.7 53.7 0 0 1 7.2-27h16.3c-2.4 7.1-4.1 16-4.4 27ZM65 93h26.5a85.5 85.5 0 0 1 4.6 27H65V93Zm-2 81a53.7 53.7 0 0 1-32.6-11h65.2A53.7 53.7 0 0 1 63 174Z"/> <desc>Traced by Dogo314</desc>
<path d="m32 75 3 6s1.3 2.3 3 0a28.7 28.7 0 0 0 3-6V59s2-.5 2-2V37H30v20a1.9 1.9 0 0 0 2 2v16Zm-1-47a1 1 0 0 0-1 1v1a1 1 0 0 0 1 1h11a1 1 0 0 0 1-1v-1a1 1 0 0 0-1-1H31Z"/> <g transform="translate(-276 -306)">
<path d="m59 75 3 6s1.3 2.3 3 0a28.7 28.7 0 0 0 3-6V59s2-.5 2-2V37H57v20a1.9 1.9 0 0 0 2 2v16Zm-1-47a1 1 0 0 0-1 1v1a1 1 0 0 0 1 1h11a1 1 0 0 0 1-1v-1a1 1 0 0 0-1-1H58Z"/> <path style="fill:none" d="M276 306h256v256H276z"/>
<path d="m86 75 3 6s1.3 2.3 3 0a28.7 28.7 0 0 0 3-6V59s2-.5 2-2V37H84v20a1.9 1.9 0 0 0 2 2v16Zm-1-47a1 1 0 0 0-1 1v1a1 1 0 0 0 1 1h11a1 1 0 0 0 1-1v-1a1 1 0 0 0-1-1H85Z"/> <clipPath id="a">
</svg> <path d="M276 306h256v256H276z"/>
</clipPath>
<g clip-path="url(#a)">
<path style="fill:#190301;" transform="translate(0 306)" d="M276 0h256v256H276z"/>
<path d="M4797.944 201.687q-.495 1.099-.948 2.248h-10.185a41.3 41.3 0 0 1 7.522-7.899zm47.723-5.651a41.3 41.3 0 0 1 7.522 7.899h-10.185a51 51 0 0 0-.948-2.248zm-27.375 5.413v2.486h-17.657c3.052-7.205 7.437-12.644 12.532-15.248v4.74zm8.541-12.762c5.095 2.604 9.48 8.043 12.532 15.248h-17.657v-2.486l5.125-8.022zM4779 228c0-7.466 2-14.468 5.492-20.5h11.236c-1.956 6.138-3.061 13.11-3.061 20.5zm17.083 0v-.007c0-7.463 1.165-14.462 3.201-20.493h19.008V228zm25.625 0v-20.5h19.008c2.036 6.031 3.201 13.03 3.201 20.493V228zm25.625 0c0-7.39-1.105-14.362-3.061-20.5h11.236A40.8 40.8 0 0 1 4861 228z" style="fill:#dd6658" transform="matrix(2.34146 0 0 2.2439 -10881.854 22.39)"/>
<path d="m3432 426-4-4v-36h24v36l-4 4v28l-8 12-8-12zm20-56v8h-24v-8zm28 56-4-4v-36h24v36l-4 4v28l-8 12-8-12zm20-56v8h-24v-8zm-116 56-4-4v-36h24v36l-4 4v28l-8 12-8-12zm20-56v8h-24v-8z" style="fill:#ffe" transform="translate(-3036)"/>
<path d="M276 15V0h256v15zM518 .82H290v13.36h228z" style="fill:#e67366" transform="matrix(1 0 0 17.06667 0 306)"/>
</g>
</g>
</svg>

Before

Width:  |  Height:  |  Size: 1.3 KiB

After

Width:  |  Height:  |  Size: 1.5 KiB

+15 -8
View File
@@ -1,8 +1,15 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 126 126" fill="#fff"> <svg viewBox="0 0 256 256" xmlns="http://www.w3.org/2000/svg" xml:space="preserve" style="fill-rule:evenodd;clip-rule:evenodd;stroke-linejoin:round;stroke-miterlimit:2">
<path fill="#de7b6c" d="M99 120a91 91 0 0 0-4.5-27h15.3a53.7 53.7 0 0 1 7.2 27H99Zm-3-31V77.3A54 54 0 0 1 107.9 90H95ZM77 72.6V89l1 1H65v-4.6l8-8.4v-7a33.6 33.6 0 0 1 4 2.6ZM35.5 93H62v27H31a85.5 85.5 0 0 1 4.5-27ZM54 70v7l8 8.4V90H36.7A39 39 0 0 1 54 70ZM18.1 90a54 54 0 0 1 17.6-16.5l4.7 4.5a51 51 0 0 0-6.8 12H18.1Zm10 30H9a53.7 53.7 0 0 1 7.2-27h16.3c-2.4 7.1-4.1 16-4.4 27Zm36.9 0V93h15.8l5.7 6 5.2-5.5A86 86 0 0 1 96 120H65Z"/> <desc>Traced by Dogo314</desc>
<path d="m35 68 6.5 7 6.5-7V46s3-.8 3-3V26H32v17.1a3 3 0 0 0 3 2.9v22ZM33 17a1 1 0 0 0-1 1v1a1 1 0 0 0 1 1h17a1 1 0 0 0 1-1v-1a1 1 0 0 0-1-1H33Z"/> <g transform="translate(-276 -306)">
<path d="m57 76 6.5 7 6.5-7V54s3-.8 3-3V34H54v17.1a3 3 0 0 0 3 2.9v22Z"/> <path style="fill:none" d="M276 306h256v256H276z"/>
<path d="M55 25a1 1 0 0 0-1 1v1a1 1 0 0 0 1 1h17a1 1 0 0 0 1-1v-1a1 1 0 0 0-1-1H55Z"/> <clipPath id="a">
<path d="m80 88 6.5 7 6.5-7V66s3-.8 3-3V46H77v17.1a3 3 0 0 0 3 2.9v22Z"/> <path d="M276 306h256v256H276z"/>
<path d="M78 37a1 1 0 0 0-1 1v1a1 1 0 0 0 1 1h17a1 1 0 0 0 1-1v-1a1 1 0 0 0-1-1H78Z"/> </clipPath>
</svg> <g clip-path="url(#a)">
<path style="fill:#190301;" transform="translate(0 306)" d="M276 0h256v256H276z"/>
<path d="M4801.225 195.624c-1.606 2.477-3.028 5.267-4.229 8.311h-10.185a41.3 41.3 0 0 1 11.876-10.959zm44.4.378a41.3 41.3 0 0 1 7.564 7.933h-7.564zm-4.394 13.104c1.716 5.654 2.686 12.078 2.686 18.887V228h-22.209v-20.5h9.689l5.686 5.933zm-12.689-5.171h-6.834v-2.089l6.834-7.13zm-10.25-2.089v2.089h-17.657c2.705-6.387 6.457-11.385 10.823-14.252v5.033zM4779 228c0-7.466 2-14.468 5.492-20.5h11.236c-1.956 6.138-3.061 13.11-3.061 20.5zm17.083 0v-.007c0-7.463 1.165-14.462 3.201-20.493h19.008V228zm51.25 0c0-7.39-1.105-14.362-3.061-20.5h11.236A40.8 40.8 0 0 1 4861 228z" style="fill:#dd6658" transform="matrix(2.34146 0 0 2.2439 -10881.854 22.39)"/>
<path d="m3744 442.2-4-8.2v-32h32v32l-4 8.2V478l-12 12-12-12zm28-56.2v8h-32v-8zm-68 34.2-4-8.2v-32h32v32l-4 8.2V456l-12 12-12-12zm28-56.2v8h-32v-8zm-68 42.2-4-8.2v-32h32v32l-4 8.2V442l-12 12-12-12zm28-56.2v8h-32v-8z" style="fill:#ffe" transform="translate(-3312)"/>
<path d="M276 15V0h256v15zM518 .82H290v13.36h228z" style="fill:#e67366" transform="matrix(1 0 0 17.06667 0 306)"/>
</g>
</g>
</svg>

Before

Width:  |  Height:  |  Size: 992 B

After

Width:  |  Height:  |  Size: 1.5 KiB

+15 -17
View File
@@ -1,17 +1,15 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 126 126" fill="#fff"> <svg viewBox="0 0 256 256" xmlns="http://www.w3.org/2000/svg" xml:space="preserve" style="fill-rule:evenodd;clip-rule:evenodd;stroke-linejoin:round;stroke-miterlimit:2">
<path fill="#de7b6c" d="M99 120a91 91 0 0 0-4.5-27h15.3a53.7 53.7 0 0 1 7.2 27H99ZM86.1 77.4l-3-7.5A54 54 0 0 1 107.9 90H93.4a50.6 50.6 0 0 0-7.2-12.6ZM90.3 90H69V68.3l1 .3L76 84l8.7-3.7a47 47 0 0 1 5.5 9.7Zm-48.1-9.7 8.7 3.7L57 68.6l.9-.3V90H36.7a47 47 0 0 1 5.5-9.7ZM33.6 90H18.1a54 54 0 0 1 26-20.5l-3.3 7.9A50.5 50.5 0 0 0 33.6 90Zm-5.5 30H9a53.7 53.7 0 0 1 7.2-27h16.3c-2.4 7.1-4.1 16-4.4 27ZM63 174a53.7 53.7 0 0 1-32.6-11h65.2A53.7 53.7 0 0 1 63 174Zm28.5-81a85.5 85.5 0 0 1 4.6 27H65V93h26.5Zm-56 0H62v27H31a85.5 85.5 0 0 1 4.5-27Z"/> <desc>Traced by Dogo314</desc>
<path d="M62 49h3v4h-3z"/> <g transform="translate(-276 -306)">
<path d="M62 58h3v4h-3z"/> <path style="fill:none" d="M276 306h256v256H276z"/>
<path d="M62 67h3v4h-3z"/> <clipPath id="a">
<path d="M62 76h3v4h-3z"/> <path d="M276 306h256v256H276z"/>
<path d="M62 85h3v4h-3z"/> </clipPath>
<path d="m56 47.8 2.8 1-1.2 3.8-2.9-1Z"/> <g clip-path="url(#a)">
<path d="m53.2 56.4 2.8 1-1.2 3.7-2.8-.9Z"/> <path style="fill:#190301;" transform="translate(0 306)" d="M276 0h256v256H276z"/>
<path d="m50.4 65 2.9.9-1.2 3.8-2.9-1Z"/> <path d="M4801.024 195.937c-1.524 2.398-2.877 5.082-4.028 7.998h-10.185a41.2 41.2 0 0 1 16.006-13.166l-1.802 5.165zm36.159-5.168a41.2 41.2 0 0 1 16.006 13.166h-10.185c-1.151-2.916-2.504-5.6-4.028-7.998l.009-.003zm-1.423 6.389c1.343 2.02 2.553 4.294 3.605 6.777h-14.24v-16.004l.186.071 4.042 11.59zm-14.052 10.342h19.008c2.036 6.031 3.201 13.03 3.201 20.493V228h-22.209zm-3.416 0V228h-22.209v-.007c0-7.463 1.165-14.462 3.201-20.493zm-3.417-3.565h-14.24c1.052-2.483 2.262-4.757 3.605-6.777l6.407 2.434 4.042-11.59.186-.071zM4779 228c0-7.466 2-14.468 5.492-20.5h11.236c-1.956 6.138-3.061 13.11-3.061 20.5zm68.333 0c0-7.39-1.105-14.362-3.061-20.5h11.236A40.8 40.8 0 0 1 4861 228z" style="fill:#dd6658" transform="matrix(2.34146 0 0 2.2439 -10881.854 22.39)"/>
<path d="m47.4 73 2.9.9-1.2 3.8-2.9-1Z"/> <path d="m3996 370.433 8.343-6.422-3.848 10.817 11.477-.317L4002.5 381l9.472 6.489-11.477-.317 3.848 10.817-9.098-7.003L3992 402l-3.245-11.014-9.098 7.003 3.848-10.817-11.477.317L3981.5 381l-9.472-6.489 11.477.317-3.848-10.817 8.343 6.422V342h8zm0 37.567v8h-8v-8zm0 16v8h-8v-8zm0 16v8h-8v-8zm0 16v8h-8v-8zm0 16v8h-8v-8zm-11.528-64.622-2.736 7.517-7.518-2.736 2.737-7.517zM3979 422.413l-2.736 7.518-7.518-2.737 2.736-7.517zm-5.473 15.035-2.736 7.518-7.517-2.737 2.736-7.517zm-5.472 15.035-2.736 7.518-7.518-2.736 2.737-7.518zm38.99-47.841 2.737 7.517-7.518 2.736-2.736-7.517zm5.473 15.035 2.736 7.517-7.518 2.737-2.736-7.518zm5.472 15.035 2.736 7.517-7.517 2.737-2.736-7.518zm5.472 15.035 2.737 7.518-7.518 2.736-2.736-7.518z" style="fill:#ffe" transform="translate(-3588)"/>
<path d="m68.4 48.5 2.9-1 1.3 3.9-2.9 1Z"/> <path d="M276 15V0h256v15zM518 .82H290v13.36h228z" style="fill:#e67366" transform="matrix(1 0 0 17.06667 0 306)"/>
<path d="m71.4 57 2.8-1 1.3 3.9-2.8 1Z"/> </g>
<path d="m74.3 65.6 2.8-1 1.3 3.8-2.8 1Z"/> </g>
<path d="m76.7 73.8 2.8-1 1.3 3.8-2.8 1Z"/> </svg>
<path d="M70.8 32.6 76 37l-6.3-.3L71 43l-5-4-2.5 6-2.5-6-5 4 1.3-6.3-6.3.3 5.2-4.4L51 29h6l-1-6 6 4V12h3v15l6-4-1 6h6Z"/>
</svg>

Before

Width:  |  Height:  |  Size: 1.2 KiB

After

Width:  |  Height:  |  Size: 2.1 KiB

+15 -5
View File
@@ -1,5 +1,15 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 126 126" fill="#fff"> <svg viewBox="0 0 256 256" xmlns="http://www.w3.org/2000/svg" xml:space="preserve" style="fill-rule:evenodd;clip-rule:evenodd;stroke-linejoin:round;stroke-miterlimit:2">
<path fill="#de7b6c" d="M99 120a91 91 0 0 0-4.5-27h15.3a53.7 53.7 0 0 1 7.2 27H99ZM74.1 67.2A54 54 0 0 1 107.9 90H93.4c-5.3-13-13-19.5-19.2-22.8ZM33.6 90H18.1a54 54 0 0 1 35.3-23.1A42.4 42.4 0 0 0 33.6 90Zm-5.5 30H9a53.7 53.7 0 0 1 7.2-27h16.3c-2.4 7.1-4.1 16-4.4 27ZM63 174a53.7 53.7 0 0 1-32.6-11h65.2A53.7 53.7 0 0 1 63 174Zm33-54H65V93h26.5a85.5 85.5 0 0 1 4.6 27Zm-5.7-30H65v-3l7.6-17.1c8.7 4.4 14.3 12 17.7 20.1ZM62 120H31a85.5 85.5 0 0 1 4.5-27H62v27Zm0-53v23H36.7A37 37 0 0 1 62 67Z"/> <desc>Traced by Dogo314</desc>
<path d="m65 79 16-42-16 5V12L49 55l16-5v29Z"/> <g transform="translate(-276 -306)">
<path d="m33 65.7 3.2 5A52 52 0 0 0 27 77l-3.7-3.7a41.7 41.7 0 0 1 9.8-7.6ZM47 60.4l2 5.3a54.8 54.8 0 0 0-10.2 3.7l-3-5.1A51 51 0 0 1 47 60.4ZM61 58.9v5.2a54.2 54.2 0 0 0-9 .9l-1.6-5.3A63.9 63.9 0 0 1 61 59Zm18.3 2.2a60.2 60.2 0 0 1 10.9 3.6L87.6 69a51.2 51.2 0 0 0-10.1-3.4l1.2-3.6Zm23.4 12.2L99 77a31.8 31.8 0 0 0-8.8-6.7l3-4.2a35.4 35.4 0 0 1 9.5 7.2Z"/> <path style="fill:none" d="M276 306h256v256H276z"/>
</svg> <clipPath id="a">
<path d="M276 306h256v256H276z"/>
</clipPath>
<g clip-path="url(#a)">
<path style="fill:#190301;" transform="translate(0 306)" d="M276 0h256v256H276z"/>
<path d="M4818.292 207.5V228h-22.209v-.007c0-7.463 1.165-14.462 3.201-20.493zm0-3.565h-17.657c4.035-9.527 10.401-15.966 17.657-16.846zm9.436-14.758c4.713 2.762 8.765 7.978 11.637 14.758h-16.848zM4779 228c0-7.466 2-14.468 5.492-20.5h11.236c-1.956 6.138-3.061 13.11-3.061 20.5zm42.708 0v-20.5h19.008c2.036 6.031 3.201 13.03 3.201 20.493V228zm25.625 0c0-7.39-1.105-14.362-3.061-20.5h11.236A40.8 40.8 0 0 1 4861 228zm-60.522-24.065c4.86-6.689 11.692-11.854 19.638-14.639-3.826 3.571-7.073 8.608-9.453 14.639zm46.74-14.639c7.946 2.785 14.778 7.95 19.638 14.639h-10.185c-2.38-6.031-5.627-11.068-9.453-14.639" style="fill:#dd6658" transform="matrix(2.34146 0 0 2.2439 -10881.854 22.39)"/>
<path d="m4548 410-28 8 28-76v52l28-8-28 76zm-74.251 40.065a112.6 112.6 0 0 1 15.666-10.204l3.757 7.065a105 105 0 0 0-14.054 9.097zm22.842-13.749a114 114 0 0 1 17.386-6.196l1.937 7.767a106 106 0 0 0-15.558 5.511zm25.183-7.992a116 116 0 0 1 16.297-1.975l.143 8.003c-4.934.26-9.775.85-14.501 1.748zm50.423 1.324a114 114 0 0 1 15.729 5.167l-3.516 7.208a106 106 0 0 0-14.014-4.576zm23.018 8.47a113 113 0 0 1 14.383 8.52l-5.048 6.233a105 105 0 0 0-12.843-7.561z" style="fill:#ffe" transform="translate(-4140)"/>
<path d="M276 15V0h256v15zM518 .82H290v13.36h228z" style="fill:#e67366" transform="matrix(1 0 0 17.06667 0 306)"/>
</g>
</g>
</svg>

Before

Width:  |  Height:  |  Size: 988 B

After

Width:  |  Height:  |  Size: 1.8 KiB

+15 -4
View File
@@ -1,4 +1,15 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 126 126" fill="#fff"> <svg viewBox="0 0 256 256" xmlns="http://www.w3.org/2000/svg" xml:space="preserve" style="fill-rule:evenodd;clip-rule:evenodd;stroke-linejoin:round;stroke-miterlimit:2">
<path fill="#de7b6c" d="M99 120a91 91 0 0 0-4.5-27h15.3a53.7 53.7 0 0 1 7.2 27H99Zm-8.3-35.7L97 78a54 54 0 0 1 10.9 12H93.4a55.8 55.8 0 0 0-2.7-5.7ZM29 78l7 6.7a56 56 0 0 0-2.5 5.3H18.1a54 54 0 0 1 11-12Zm-1 42H9a53.7 53.7 0 0 1 7.2-27h16.3c-2.4 7.1-4.1 16-4.4 27ZM63 174a53.7 53.7 0 0 1-32.6-11h65.2A53.7 53.7 0 0 1 63 174Zm33-54H65V93h.1l8.9 8 8-8h9.5a85.5 85.5 0 0 1 4.6 27ZM35.6 93h9.2l8.3 8 8.9-8h.1v27H31a85.5 85.5 0 0 1 4.5-27Zm1.2-3 1.5-3.3 3.4 3.3h-5Zm52-3.6 1.6 3.6H85Z"/> <desc>Traced by Dogo314</desc>
<path d="m75.7 79 3 3 7.2-7 5 5-17.2 17-5-5 7-7-3-3-5.1 4H59l-5-4-3 3 7 7-5 5-17-17 5-5 7 7 3-3-18-17V41h7c-.5-23 22-24 22-24h2.5S87.5 18 87 41H94v21Zm-4.2-2a2.5 2.5 0 1 0-2.5-2.5 2.5 2.5 0 0 0 2.5 2.5Zm0-9a2.5 2.5 0 1 0-2.5-2.5 2.5 2.5 0 0 0 2.5 2.5Zm-8 14a2.5 2.5 0 1 0-2.5-2.5 2.5 2.5 0 0 0 2.5 2.5Zm0-9a2.5 2.5 0 1 0-2.5-2.5 2.5 2.5 0 0 0 2.5 2.5Zm0-10a2.5 2.5 0 1 0-2.5-2.5 2.5 2.5 0 0 0 2.5 2.5Zm-8 14a2.5 2.5 0 1 0-2.5-2.5 2.5 2.5 0 0 0 2.5 2.5Zm0-9a2.5 2.5 0 1 0-2.5-2.5 2.5 2.5 0 0 0 2.5 2.5ZM82 41H45v14l8 6 9-7h2.6l9.2 7 8.2-6V41Z"/> <g transform="translate(-276 -306)">
</svg> <path style="fill:none" d="M276 306h256v256H276z"/>
<clipPath id="a">
<path d="M276 306h256v256H276z"/>
</clipPath>
<g clip-path="url(#a)">
<path style="fill:#190301;" transform="translate(0 306)" d="M276 0h256v256H276z"/>
<path d="M4798.688 200.107a51 51 0 0 0-1.692 3.828h-10.185a41.3 41.3 0 0 1 7.779-8.104zm46.722-4.276a41.3 41.3 0 0 1 7.779 8.104h-10.185a51 51 0 0 0-1.692-3.828zm-11.182 11.669h6.488c2.036 6.031 3.201 13.03 3.201 20.493V228h-22.209v-19.023l5.552 5.793zm-15.936 1.477V228h-22.209v-.007c0-7.463 1.165-14.462 3.201-20.493h6.488l6.968 7.27zM4779 228c0-7.466 2-14.468 5.492-20.5h11.236c-1.956 6.138-3.061 13.11-3.061 20.5zm68.333 0c0-7.39-1.105-14.362-3.061-20.5h11.236A40.8 40.8 0 0 1 4861 228z" style="fill:#dd6658" transform="matrix(2.34146 0 0 2.2439 -10881.854 22.39)"/>
<path d="m5074 460-30-30v-36h12c0-22.077 17.923-40 40-40s40 17.923 40 40h12v36l-30 30 6 6 12-12 8 8-31 31-8-8 11-11-6-6-.565.565c-7.42 7.42-19.45 7.42-26.87 0L5082 468l-6 6 11 11-8 8-31-31 8-8 12 12zm22-34c-2.208 0-4 1.792-4 4s1.792 4 4 4 4-1.792 4-4-1.792-4-4-4m-14 8c-2.208 0-4 1.792-4 4s1.792 4 4 4 4-1.792 4-4-1.792-4-4-4m14 24c-2.208 0-4 1.792-4 4s1.792 4 4 4 4-1.792 4-4-1.792-4-4-4m32-64h-64v24l12 12 20-12 20 12 12-12zm-32 48c-2.208 0-4 1.792-4 4s1.792 4 4 4 4-1.792 4-4-1.792-4-4-4m14-8c-2.208 0-4 1.792-4 4s1.792 4 4 4 4-1.792 4-4-1.792-4-4-4m-28 16c-2.208 0-4 1.792-4 4s1.792 4 4 4 4-1.792 4-4-1.792-4-4-4m28 0c-2.208 0-4 1.792-4 4s1.792 4 4 4 4-1.792 4-4-1.792-4-4-4" style="fill:#ffe" transform="translate(-4692)"/>
<path d="M276 15V0h256v15zM518 .82H290v13.36h228z" style="fill:#e67366" transform="matrix(1 0 0 17.06667 0 306)"/>
</g>
</g>
</svg>

Before

Width:  |  Height:  |  Size: 1.1 KiB

After

Width:  |  Height:  |  Size: 1.9 KiB

+15 -13
View File
@@ -1,13 +1,15 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 126 126" fill="#fff"> <svg viewBox="0 0 256 256" xmlns="http://www.w3.org/2000/svg" xml:space="preserve" style="fill-rule:evenodd;clip-rule:evenodd;stroke-linejoin:round;stroke-miterlimit:2">
<path fill="#de7b6c" d="M99 120a91 91 0 0 0-4.5-27h15.3a53.7 53.7 0 0 1 7.2 27H99ZM79 70.3v-1.8A54 54 0 0 1 107.9 90H93.4c-4-9.8-9.4-15.9-14.4-19.7ZM57 90H36.7A42 42 0 0 1 48 74.1V84h9v6Zm-23.4 0H18.1A54 54 0 0 1 48 68.2v2A45 45 0 0 0 33.6 90Zm-5.5 30H9a53.7 53.7 0 0 1 7.2-27h16.3c-2.4 7.1-4.1 16-4.4 27ZM63 174a53.7 53.7 0 0 1-32.6-11h65.2A53.7 53.7 0 0 1 63 174Zm33-54H65V93h26.5a85.5 85.5 0 0 1 4.6 27ZM35.6 93H62v27H31a85.5 85.5 0 0 1 4.5-27Zm54.8-3H70v-6h9V74a42 42 0 0 1 11.3 16Z"/> <desc>Traced by Dogo314</desc>
<path d="M53 24h3v15h-3z"/> <g transform="translate(-276 -306)">
<path d="M53 44h3v15h-3z"/> <path style="fill:none" d="M276 306h256v256H276z"/>
<path d="M53 64h3v15h-3z"/> <clipPath id="a">
<path d="M62 15h3v13h-3z"/> <path d="M276 306h256v256H276z"/>
<path d="M62 31h3v15h-3z"/> </clipPath>
<path d="M62 51h3v16h-3z"/> <g clip-path="url(#a)">
<path d="M62 71h3v16h-3z"/> <path style="fill:#190301;" transform="translate(0 306)" d="M276 0h256v256H276z"/>
<path d="M71 24h3v15h-3z"/> <path d="M4818.292 207.5V228h-22.209v-.007c0-7.463 1.165-14.462 3.201-20.493zm-3.417-3.565h-14.24c1.969-4.65 4.494-8.564 7.407-11.456v6.999h6.833zm17.083-11.456c2.913 2.892 5.438 6.806 7.407 11.456h-14.24v-4.457h6.833zm-10.25 15.021h19.008c2.036 6.031 3.201 13.03 3.201 20.493V228h-22.209zM4779 228c0-7.466 2-14.468 5.492-20.5h11.236c-1.956 6.138-3.061 13.11-3.061 20.5zm68.333 0c0-7.39-1.105-14.362-3.061-20.5h11.236A40.8 40.8 0 0 1 4861 228zm-60.522-24.065c4.86-6.689 11.692-11.854 19.638-14.639-3.826 3.571-7.073 8.608-9.453 14.639zm46.74-14.639c7.946 2.785 14.778 7.95 19.638 14.639h-10.185c-2.38-6.031-5.627-11.068-9.453-14.639" style="fill:#dd6658" transform="matrix(2.34146 0 0 2.2439 -10881.854 22.39)"/>
<path d="M71 44h3v15h-3z"/> <path d="M2892 452v28h-8v-28zm0-36v28h-8v-28zm-16 18v28h-8v-28zm0-36v28h-8v-28zm32 36v28h-8v-28zm0-36v28h-8v-28zm-16-14v24h-8v-24zm0-32v24h-8v-24zm-16 10v28h-8v-28zm32 0v28h-8v-28z" style="fill:#ffe" transform="translate(-2484)"/>
<path d="M71 64h3v15h-3z"/> <path d="M276 15V0h256v15zM518 .82H290v13.36h228z" style="fill:#e67366" transform="matrix(1 0 0 17.06667 0 306)"/>
</svg> </g>
</g>
</svg>

Before

Width:  |  Height:  |  Size: 863 B

After

Width:  |  Height:  |  Size: 1.6 KiB

+14 -15
View File
@@ -1,15 +1,14 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 126 126" fill="#fff"> <svg viewBox="0 0 256 256" xmlns="http://www.w3.org/2000/svg" xml:space="preserve" style="fill-rule:evenodd;clip-rule:evenodd;stroke-linejoin:round;stroke-miterlimit:2">
<path fill="#c9b269" d="M4 122v-20l20 20H4Zm118 0v-20l-20 20h20Zm0-118v20L102 4h20ZM4 4v20L24 4H4Z"/> <desc>Traced by Dogo314</desc>
<circle cx="63" cy="63" r="12"/> <g transform="translate(-28.444 589.487)scale(.98084)">
<path d="m43.8 84.7-.7-.7-1.4-1.4-.7-.7 9.2-9.2.7.7 1.4 1.4.7.7Z"/> <path style="fill:none" d="M29-601h261v261H29z"/>
<path d="m85 82.2-.7.7-1.4 1.4-.7.7-9.2-9.2.7-.7 1.4-1.4.7-.7Z"/> <clipPath id="a">
<path d="m43.8 41.3-.7.7-1.4 1.4-.7.7 9.2 9.2.7-.7 1.4-1.4.7-.7Z"/> <path d="M29-601h261v261H29z"/>
<path d="m85 43.8-.7-.7-1.4-1.4-.7-.7-9.2 9.2.7.7 1.4 1.4.7.7Z"/> </clipPath>
<path d="M15 65v-4h32v4H15Z"/> <g clip-path="url(#a)">
<path d="M79 61h32v3H79z"/> <path style="fill:#363426" transform="translate(-252.39 -601)scale(1.01953)" d="M276 0h256v256H276z"/>
<path d="M79 62h32v3H79z"/> <path d="M1232 102c14.35 0 26 11.65 26 26s-11.65 26-26 26-26-11.65-26-26 11.65-26 26-26m-42 20v12h-62v-12zm84 12v-12h62v12zm-7.092-31.055-8.485-8.486 21.213-21.213 8.485 8.486zm-8.485 61.331 8.485-8.485 21.213 21.213-8.485 8.485zm-61.331-8.485 8.485 8.485-21.213 21.213-8.485-8.485zm8.485-61.332-8.485 8.486-21.213-21.213 8.485-8.486zM1238 86h-12V36h12zm-12 84h12v50h-12z" style="fill:#ffe" transform="translate(-1096.563 -601)scale(1.01953)"/>
<path d="M61 79h3v21h-3z"/> <path d="M276 256V0h256v256zM518 14H290v228h228zM300 24h32l-32 32zm0 208v-32l32 32zm208 0h-32l32-32zm0-208v32l-32-32z" style="fill:#c9b269" transform="translate(-252.39 -601)scale(1.01953)"/>
<path d="M62 79h3v21h-3z"/> </g>
<path d="M61 26h3v21h-3z"/> </g>
<path d="M62 26h3v21h-3z"/> </svg>
</svg>

Before

Width:  |  Height:  |  Size: 697 B

After

Width:  |  Height:  |  Size: 1.2 KiB

+15 -8
View File
@@ -1,8 +1,15 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 126 126" fill="#fff"> <svg viewBox="0 0 256 256" xmlns="http://www.w3.org/2000/svg" xml:space="preserve" style="fill-rule:evenodd;clip-rule:evenodd;stroke-linejoin:round;stroke-miterlimit:2">
<path fill="#de7b6c" d="M99 120a91 91 0 0 0-4.5-27h15.3a53.7 53.7 0 0 1 7.2 27H99ZM78 69.6l.4-1.3A54 54 0 0 1 107.9 90H93.4A44.6 44.6 0 0 0 78 69.6Zm-29.8.5A45 45 0 0 0 33.6 90H18.1a54 54 0 0 1 29.5-21.7 16 16 0 0 0 .6 1.8ZM28.1 120H9a53.7 53.7 0 0 1 7.2-27h16.3c-2.4 7.1-4.1 16-4.4 27ZM63 174a53.7 53.7 0 0 1-32.6-11h65.2A53.7 53.7 0 0 1 63 174Zm33-54H65V93h26.5a85.5 85.5 0 0 1 4.6 27Zm-5.7-30H65V79.9a16 16 0 0 0 11.7-7.6c6.4 4.5 10.7 11 13.6 17.7ZM62 120H31a85.5 85.5 0 0 1 4.5-27H62v27ZM36.7 90a41 41 0 0 1 13-17.2A16 16 0 0 0 62 80v10H36.7Z"/> <desc>Traced by Dogo314</desc>
<circle cx="63" cy="64" r="12"/> <g transform="translate(-276 -306)">
<path d="M35 62h12v3H35zM79 62h12v3H79z"/> <path style="fill:none" d="M276 306h256v256H276z"/>
<path d="m73.1 51.5 8.5-8.5 2.1 2.1-8.4 8.5Z"/> <clipPath id="a">
<path d="M53 51.8 44.2 43 42 45.2l8.8 8.8Z"/> <path d="M276 306h256v256H276z"/>
<path d="M62 13h2v45h-2z"/> </clipPath>
</svg> <g clip-path="url(#a)">
<path style="fill:#190301;" transform="translate(0 306)" d="M276 0h256v256H276z"/>
<path d="M4829.801 190.582c3.829 2.956 7.123 7.589 9.564 13.353h-17.657v-8.149c3.342-.499 6.24-2.443 8.093-5.204m-11.509 5.204v8.149h-17.657c2.441-5.764 5.735-10.397 9.564-13.353 1.853 2.761 4.751 4.705 8.093 5.204M4779 228c0-7.466 2-14.468 5.492-20.5h11.236c-1.956 6.138-3.061 13.11-3.061 20.5zm17.083 0v-.007c0-7.463 1.165-14.462 3.201-20.493h19.008V228zm25.625 0v-20.5h19.008c2.036 6.031 3.201 13.03 3.201 20.493V228zm25.625 0c0-7.39-1.105-14.362-3.061-20.5h11.236A40.8 40.8 0 0 1 4861 228zm-60.522-24.065c4.86-6.689 11.692-11.854 19.638-14.639-3.826 3.571-7.073 8.608-9.453 14.639zm46.74-14.639c7.946 2.785 14.778 7.95 19.638 14.639h-10.185c-2.38-6.031-5.627-11.068-9.453-14.639" style="fill:#dd6658" transform="matrix(2.34146 0 0 2.2439 -10881.854 22.39)"/>
<path d="M5376 414.401c9.124 1.855 16 9.93 16 19.599 0 11.038-8.962 20-20 20s-20-8.962-20-20c0-9.669 6.876-17.744 16-19.599V342h8zM5424 430v8h-24v-8zm-18.059-35.598 5.657 5.657-16.971 16.97-5.656-5.656zm-73.539 5.657 5.657-5.657 16.97 16.971-5.656 5.656zM5320 438v-8h24v8z" style="fill:#ffe" transform="translate(-4968)"/>
<path d="M276 15V0h256v15zM518 .82H290v13.36h228z" style="fill:#e67366" transform="matrix(1 0 0 17.06667 0 306)"/>
</g>
</g>
</svg>

Before

Width:  |  Height:  |  Size: 836 B

After

Width:  |  Height:  |  Size: 1.7 KiB

+15 -5
View File
@@ -1,5 +1,15 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 126 126" fill="#fff"> <svg viewBox="0 0 256 256" xmlns="http://www.w3.org/2000/svg" xml:space="preserve" style="fill-rule:evenodd;clip-rule:evenodd;stroke-linejoin:round;stroke-miterlimit:2">
<path fill="#de7b6c" d="M94.5 93h15.3a53.7 53.7 0 0 1 7.2 27H99c-.4-11-2-19.9-4.5-27ZM74.2 67.2A54 54 0 0 1 107.9 90H93.4c-5.3-13-13-19.5-19.2-22.8ZM90.3 90H65V67a37 37 0 0 1 25.3 23Zm-54.8 3H62v27H31a85.5 85.5 0 0 1 4.5-27ZM62 67v23H36.7A37 37 0 0 1 62 67ZM33.6 90H18.1a54 54 0 0 1 35.3-23.1A42.4 42.4 0 0 0 33.6 90Zm-5.5 30H9a53.7 53.7 0 0 1 7.2-27h16.3c-2.4 7.1-4.1 16-4.4 27Zm67.5 43a54 54 0 0 1-65.2 0h65.2Zm-4-70a85.5 85.5 0 0 1 4.5 27H65V93h26.5Z"/> <desc>Traced by Dogo314</desc>
<path d="M54 39V11H29l18 28h7ZM73 11h25L80 39h-7V11Z"/> <g transform="translate(-276 -306)">
<path d="M59 11h9v33h9L64 64 50 44h9"/> <path style="fill:none" d="M276 306h256v256H276z"/>
</svg> <clipPath id="a">
<path d="M276 306h256v256H276z"/>
</clipPath>
<g clip-path="url(#a)">
<path style="fill:#190301;" transform="translate(0 306)" d="M276 0h256v256H276z"/>
<path d="M4779 228c0-7.466 2-14.468 5.492-20.5h11.236c-1.956 6.138-3.061 13.11-3.061 20.5zm17.083 0v-.007c0-7.463 1.165-14.462 3.201-20.493h19.008V228zm25.625 0v-20.5h19.008c2.036 6.031 3.201 13.03 3.201 20.493V228zm25.625 0c0-7.39-1.105-14.362-3.061-20.5h11.236A40.8 40.8 0 0 1 4861 228zm-60.522-24.065c4.86-6.689 11.692-11.854 19.638-14.639-3.826 3.571-7.073 8.608-9.453 14.639zm46.74-14.639c7.946 2.785 14.778 7.95 19.638 14.639h-10.185c-2.38-6.031-5.627-11.068-9.453-14.639m-15.259-2.207v16.846h-17.657c4.035-9.527 10.401-15.966 17.657-16.846m21.073 16.846h-17.657v-16.846c7.256.88 13.622 7.319 17.657 16.846" style="fill:#dd6658" transform="matrix(2.34146 0 0 2.2439 -10881.854 22.39)"/>
<path d="M4790.826 84 4759 36h45v48zM4812 36h16v56h15.87L4820 128l-23.87-36H4812zm24 0h45l-31.826 48H4836z" style="fill:#ffe" transform="translate(-4416 306)"/>
<path d="M276 15V0h256v15zM518 .82H290v13.36h228z" style="fill:#e67366" transform="matrix(1 0 0 17.06667 0 306)"/>
</g>
</g>
</svg>

Before

Width:  |  Height:  |  Size: 641 B

After

Width:  |  Height:  |  Size: 1.5 KiB

+17 -5
View File
@@ -1,5 +1,17 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 126 126" fill="#fff"> <svg viewBox="0 0 256 256" xmlns="http://www.w3.org/2000/svg" xml:space="preserve" style="fill-rule:evenodd;clip-rule:evenodd;stroke-linejoin:round;stroke-miterlimit:2">
<path fill="#de7b6c" d="M99 120a91 91 0 0 0-4.5-27h15.3a53.7 53.7 0 0 1 7.2 27H99ZM76 68.2v-.6A54 54 0 0 1 107.9 90H93.4A43.6 43.6 0 0 0 76 68.2Zm-25 0A43.5 43.5 0 0 0 33.6 90H18.1A54 54 0 0 1 51 67.4v.8ZM28 120H9a53.7 53.7 0 0 1 7.2-27h16.3c-2.4 7.1-4.1 16-4.4 27Zm35 54a53.7 53.7 0 0 1-32.6-11h65.2A53.7 53.7 0 0 1 63 174Zm33-54H65v-13.1l6-6.9v-7h20.5a85.5 85.5 0 0 1 4.6 27Zm-5.7-30H71v-5l5-4v-9.2A40.3 40.3 0 0 1 90.3 90ZM51 71.8V81l5 4v5H36.7c3-7 7.5-13.6 14.3-18.2ZM35.5 93H56v7l6 6.9V120H31a85.5 85.5 0 0 1 4.5-27Z"/> <desc>Traced by Dogo314</desc>
<path d="M54 59h19v20l-5 4v16l-4.5 5-4.5-5V83l-5-4V59Z"/> <g transform="translate(-276 -306)">
<path d="M73 33h-4c0-3.9-2.5-7-5.5-7S58 29.1 58 33h-4c0-9.6 4-10 4-10s-4-4-4-12h4s.8 8 5 8h.6c4.4 0 5.2-8 5.2-8H73c0 8-4.2 12-4.2 12s4.2.4 4.2 10Zm0 0h-4c0 3.9-2.5 7-5.5 7S58 36.9 58 33h-4c0 9.6 4 10 4 10s-4 4-4 12h4s.8-8 5-8h.6c4.4 0 5.2 8 5.2 8H73c0-8-4.2-12-4.2-12s4.2-.4 4.2-10Z"/> <path style="fill:none" d="M276 306h256v256H276z"/>
</svg> <clipPath id="a">
<path d="M276 306h256v256H276z"/>
</clipPath>
<g clip-path="url(#a)">
<path style="fill:#190301;" transform="translate(0 306)" d="M276 0h256v256H276z"/>
<path d="M4818.292 219.132V228h-22.209v-.007c0-7.463 1.165-14.462 3.201-20.493h13.883v4.279zm-5.125-15.197h-12.532c2.345-5.537 5.478-10.031 9.115-12.997v6.452l3.417 3.565zm17.083-12.997c3.637 2.966 6.77 7.46 9.115 12.997h-12.532v-2.98l3.417-3.565zm-3.417 16.562h13.883c2.036 6.031 3.201 13.03 3.201 20.493V228h-22.209v-8.868l5.125-7.353zM4779 228c0-7.466 2-14.468 5.492-20.5h11.236c-1.956 6.138-3.061 13.11-3.061 20.5zm68.333 0c0-7.39-1.105-14.362-3.061-20.5h11.236A40.8 40.8 0 0 1 4861 228zm-60.522-24.065c4.86-6.689 11.692-11.854 19.638-14.639-3.826 3.571-7.073 8.608-9.453 14.639zm46.74-14.639c7.946 2.785 14.778 7.95 19.638 14.639h-10.185c-2.38-6.031-5.627-11.068-9.453-14.639" style="fill:#dd6658" transform="matrix(2.34146 0 0 2.2439 -10881.854 22.39)"/>
<path d="m4257 455.893-5-5.435V426h20v24.458l-5 5.435v16.984l-5 7.474-5-7.474z" style="fill:#ffe" transform="matrix(1.6 0 0 1.47193 -6415.2 -201.04)"/>
<path d="M4251.833 342h8.334c0 7.977 5.381 11.744 10.419 15.733 6.964 5.513 13.581 11.241 13.581 22.267s-6.617 16.754-13.581 22.267c-5.038 3.989-10.419 7.756-10.419 15.733h-8.334c0-11.026 6.617-16.754 13.581-22.267 5.038-3.989 10.419-7.756 10.419-15.733s-5.381-11.744-10.419-15.733c-6.964-5.513-13.581-11.241-13.581-22.267" style="fill:#ffe" transform="translate(-3864)"/>
<path d="M4251.833 342h8.334c0 7.977 5.381 11.744 10.419 15.733 6.964 5.513 13.581 11.241 13.581 22.267s-6.617 16.754-13.581 22.267c-5.038 3.989-10.419 7.756-10.419 15.733h-8.334c0-11.026 6.617-16.754 13.581-22.267 5.038-3.989 10.419-7.756 10.419-15.733s-5.381-11.744-10.419-15.733c-6.964-5.513-13.581-11.241-13.581-22.267" style="fill:#ffe" transform="matrix(-1 0 0 1 4672 0)"/>
<path d="M276 15V0h256v15zM518 .82H290v13.36h228z" style="fill:#e67366" transform="matrix(1 0 0 17.06667 0 306)"/>
</g>
</g>
</svg>

Before

Width:  |  Height:  |  Size: 954 B

After

Width:  |  Height:  |  Size: 2.3 KiB

+15 -4
View File
@@ -1,4 +1,15 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 126 126" fill="#fff"> <svg viewBox="0 0 256 256" xmlns="http://www.w3.org/2000/svg" xml:space="preserve" style="fill-rule:evenodd;clip-rule:evenodd;stroke-linejoin:round;stroke-miterlimit:2">
<path fill="#de7b6c" d="M94.5 93h15.3a53.7 53.7 0 0 1 7.2 27H99c-.4-11-2-19.9-4.5-27ZM74.2 67.2A54 54 0 0 1 107.9 90H93.4c-5.3-13-13-19.5-19.2-22.8ZM90.3 90H65V67a37 37 0 0 1 25.3 23Zm-54.8 3H62v27H31a85.5 85.5 0 0 1 4.5-27ZM62 67v23H36.7A37 37 0 0 1 62 67ZM33.6 90H18.1a54 54 0 0 1 35.3-23.1A42.4 42.4 0 0 0 33.6 90Zm-5.5 30H9a53.7 53.7 0 0 1 7.2-27h16.3c-2.4 7.1-4.1 16-4.4 27Zm67.5 43a54 54 0 0 1-65.2 0h65.2Zm-4-70a85.5 85.5 0 0 1 4.5 27H65V93h26.5Z"/> <desc>Traced by Dogo314</desc>
<path d="M106 83S91.3 63.5 63 64c-28.4-.5-44 20-44 20s-5-15 1-22c7.3-8.6 19.2-5.1 21-5 3 .2 2-1 2-1s-2.8-3.6-7-3c-9.5 1.4-5-6-5-6 5.9-9.8 19.6-6 23.2-5.3 1.3.3.8-.7.8-.7s-5.9-2.3-6-5c-.4-9.7 14-8 14-8h.5c2.6-.1 13.8-.5 13.4 8.1 0 2.7-6 5-6 5s-.4 1 .9.7c3.5-.8 17.2-4.5 23 5.3 0 0 4.5 7.4-5 6-4.1-.7-6.9 3-6.9 3s-1 1.2 2 1c1.7-.2 13.6-3.6 20.9 5 5.9 6.9.2 20.9.2 20.9Z"/> <g transform="translate(-276 -306)">
</svg> <path style="fill:none" d="M276 306h256v256H276z"/>
<clipPath id="a">
<path d="M276 306h256v256H276z"/>
</clipPath>
<g clip-path="url(#a)">
<path style="fill:#190301;" transform="translate(0 306)" d="M276 0h256v256H276z"/>
<path d="M4779 228c0-7.466 2-14.468 5.492-20.5h11.236c-1.956 6.138-3.061 13.11-3.061 20.5zm17.083 0v-.007c0-7.463 1.165-14.462 3.201-20.493h19.008V228zm25.625 0v-20.5h19.008c2.036 6.031 3.201 13.03 3.201 20.493V228zm25.625 0c0-7.39-1.105-14.362-3.061-20.5h11.236A40.8 40.8 0 0 1 4861 228zm-60.522-24.065c4.86-6.689 11.692-11.854 19.638-14.639-3.826 3.571-7.073 8.608-9.453 14.639zm46.74-14.639c7.946 2.785 14.778 7.95 19.638 14.639h-10.185c-2.38-6.031-5.627-11.068-9.453-14.639m-15.259-2.207v16.846h-17.657c4.035-9.527 10.401-15.966 17.657-16.846m21.073 16.846h-17.657v-16.846c7.256.88 13.622 7.319 17.657 16.846" style="fill:#dd6658" transform="matrix(2.34146 0 0 2.2439 -10881.854 22.39)"/>
<path d="M2539.007 462.941C2534.678 458.599 2532 452.61 2532 446c0-12.015 8.849-21.981 20.38-23.728A24 24 0 0 1 2556 422h20c-4-4-10-8-17-8h-6.668c1.907-11.345 11.785-20 23.668-20h21c-2.743-2.743-6.425-5.485-10.726-6.938C2590.513 377.04 2600.441 370 2612 370s21.487 7.04 25.726 17.062c-4.301 1.453-7.983 4.195-10.726 6.938h21c11.883 0 21.761 8.655 23.668 20H2665c-7 0-13 4-17 8h20q1.847.002 3.62.272c11.531 1.747 20.38 11.713 20.38 23.728 0 6.61-2.678 12.599-7.007 16.941-11.172-10.572-24.824-18.742-40.049-23.624-10.35-3.318-21.426-5.117-32.944-5.117s-22.594 1.799-32.944 5.117c-15.225 4.882-28.877 13.052-40.049 23.624" style="fill:#ffe" transform="translate(-2208)"/>
<path d="M276 15V0h256v15zM518 .82H290v13.36h228z" style="fill:#e67366" transform="matrix(1 0 0 17.06667 0 306)"/>
</g>
</g>
</svg>

Before

Width:  |  Height:  |  Size: 914 B

After

Width:  |  Height:  |  Size: 2.0 KiB

+15 -8
View File
@@ -1,8 +1,15 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 126 126" fill="#fff"> <svg viewBox="0 0 256 256" xmlns="http://www.w3.org/2000/svg" xml:space="preserve" style="fill-rule:evenodd;clip-rule:evenodd;stroke-linejoin:round;stroke-miterlimit:2">
<path fill="#de7b6c" d="M94.5 93h15.3a53.7 53.7 0 0 1 7.2 27H99c-.4-11-2-19.9-4.5-27ZM74.2 67.2A54 54 0 0 1 107.9 90H93.4c-5.3-13-13-19.5-19.2-22.8ZM90.3 90H65V67a37 37 0 0 1 25.3 23Zm-54.8 3H62v27H31a85.5 85.5 0 0 1 4.5-27ZM62 67v23H36.7A37 37 0 0 1 62 67ZM33.6 90H18.1a54 54 0 0 1 35.3-23.1A42.4 42.4 0 0 0 33.6 90Zm-5.5 30H9a53.7 53.7 0 0 1 7.2-27h16.3c-2.4 7.1-4.1 16-4.4 27Zm67.5 43a54 54 0 0 1-65.2 0h65.2Zm-4-70a85.5 85.5 0 0 1 4.5 27H65V93h26.5Z"/> <desc>Traced by Dogo314</desc>
<path d="M62 14h3v50h-3zM71 14h3v3h-3zM71 24h3v3h-3zM71 33h3v3h-3zM71 42h3v3h-3zM71 51h3v3h-3zM71 60h3v3h-3z"/> <g transform="translate(-276 -306)">
<path d="m49.6 58.3 4-.5.8 6-4 .4Z"/> <path style="fill:none" d="M276 306h256v256H276z"/>
<path d="m39.1 60.8 3.8-1.3 2 5.7-3.8 1.3Z"/> <clipPath id="a">
<path d="m28.7 66.6 3.3-2.2 3.3 5-3.3 2.2Z"/> <path d="M276 306h256v256H276z"/>
<path d="m20.5 73.1 3-2.7 4 4.5-3 2.7Z"/> </clipPath>
</svg> <g clip-path="url(#a)">
<path style="fill:#190301;" transform="translate(0 306)" d="M276 0h256v256H276z"/>
<path d="M4779 228c0-7.466 2-14.468 5.492-20.5h11.236c-1.956 6.138-3.061 13.11-3.061 20.5zm17.083 0v-.007c0-7.463 1.165-14.462 3.201-20.493h19.008V228zm25.625 0v-20.5h19.008c2.036 6.031 3.201 13.03 3.201 20.493V228zm25.625 0c0-7.39-1.105-14.362-3.061-20.5h11.236A40.8 40.8 0 0 1 4861 228zm-60.522-24.065c4.86-6.689 11.692-11.854 19.638-14.639-3.826 3.571-7.073 8.608-9.453 14.639zm46.74-14.639c7.946 2.785 14.778 7.95 19.638 14.639h-10.185c-2.38-6.031-5.627-11.068-9.453-14.639m-15.259-2.207v16.846h-17.657c4.035-9.527 10.401-15.966 17.657-16.846m21.073 16.846h-17.657v-16.846c7.256.88 13.622 7.319 17.657 16.846" style="fill:#dd6658" transform="matrix(2.34146 0 0 2.2439 -10881.854 22.39)"/>
<path d="M3168 346v88h-8v-88zm16 0v8h-8v-8zm0 16v8h-8v-8zm0 16v8h-8v-8zm0 16v8h-8v-8zm0 16v8h-8v-8zm0 16v8h-8v-8zm-34.815.946 1.389 7.879-7.878 1.389-1.389-7.879zm-18.364 4.199 2.736 7.518-7.518 2.736-2.736-7.518zm-17.357 7.324 4 6.928-6.928 4-4-6.928zm-15.821 10.227 5.142 6.128-6.128 5.143-5.142-6.129z" style="fill:#ffe" transform="translate(-2760)"/>
<path d="M276 15V0h256v15zM518 .82H290v13.36h228z" style="fill:#e67366" transform="matrix(1 0 0 17.06667 0 306)"/>
</g>
</g>
</svg>

Before

Width:  |  Height:  |  Size: 829 B

After

Width:  |  Height:  |  Size: 1.7 KiB

+17 -8
View File
@@ -1,8 +1,17 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 126 126" fill="#fff"> <svg viewBox="0 0 256 256" xmlns="http://www.w3.org/2000/svg" xml:space="preserve" style="fill-rule:evenodd;clip-rule:evenodd;stroke-linejoin:round;stroke-miterlimit:2">
<path d="M78 32h8l-8 7v-7"/> <desc>Traced by Dogo314</desc>
<path d="M78 19h8l-8-7v7"/> <g transform="translate(-276 -306)">
<path d="M114 30H78v-9h36s5 .5 5 4v1c0 3.5-5 4-5 4Z"/> <path style="fill:none" d="M276 306h256v256H276z"/>
<path fill="#49adc9" d="M81 103v4l6 6 1 1H65l1-1 6-6v-8l6-7V78h9v18Zm-7-16-6 7H58l-6-7V74H39V58l4-4h8l5-4h14l5 4h8l4 4v16H74v13Zm-4-29H56v12h14V58ZM48 92l6 7v8l6 6 1 1H38l1-1 6-6v-4l-6-7V78h9v14Z"/> <clipPath id="a">
<path d="M8 37h26l2-2h7l6-3-6-3h-7l-2-2H8v10Z"/> <path d="M276 306h256v256H276z"/>
<path d="M8 23h26l2-2h7l6-3-6-3h-7l-2-2H8v10Z"/> </clipPath>
</svg> <g clip-path="url(#a)">
<path style="fill:#011419;" transform="translate(0 306)" d="M276 0h256v256H276z"/>
<path d="M688 1930h-16l-12-12v-24h-24v-28l8-8h16l8-8h24l8 8h16l8 8v28h-24v24zm4-64h-24v20h24zm-40 36v26l12 12v14l12 12h-40l12-12v-8l-12-12v-32zm56 0h16v32l-12 12v8l12 12h-40l12-12v-14l12-12z" style="fill:#53bcda" transform="translate(-276 -1440)"/>
<path d="m630 1823-3 3h-47v-16h47l3 3h13l9 5-9 5z" style="fill:#ffe" transform="translate(-276 -1464)"/>
<path d="m630 1823-3 3h-47v-16h47l3 3h13l9 5-9 5z" style="fill:#ffe" transform="translate(-276 -1440)"/>
<path d="M773 1814h-64v-16h64c4.415 0 8 3.585 8 8s-3.585 8-8 8m-64-32 12 12h-12zm0 36h12l-12 12z" style="fill:#ffe" transform="translate(-277 -1440)"/>
<path d="M276 15V0h256v15zM518 .82H290v13.36h228z" style="fill:#5abeda" transform="matrix(1 0 0 17.06667 0 306)"/>
</g>
</g>
</svg>

Before

Width:  |  Height:  |  Size: 497 B

After

Width:  |  Height:  |  Size: 1.3 KiB

+14 -4
View File
@@ -1,4 +1,14 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 126 126" fill="#fff"> <svg viewBox="0 0 256 256" xmlns="http://www.w3.org/2000/svg" xml:space="preserve" style="fill-rule:evenodd;clip-rule:evenodd;stroke-linejoin:round;stroke-miterlimit:2">
<path fill="#c9b269" d="M4 122v-20l20 20H4Zm118 0v-20l-20 20h20Zm0-118v20L102 4h20ZM4 4v20L24 4H4Z"/> <desc>Traced by Dogo314</desc>
<path d="M36 50.8c.1-.5.6-1.8 3-1.8h20V14a1.9 1.9 0 0 1 1.8-2h4.4a1.9 1.9 0 0 1 1.8 2v35h20c3 0 3 2 3 2v3l-4.3 10.1Zm33.5 51-14.7-4-4.8-11 23.3 6.1ZM63 117l-6.2-14.5 11.1 3ZM48 82 43.2 71l35.5 9.5-3.8 8.8ZM36.5 55 84 67.9l-3.8 8.9-39-10.5Z"/> <g transform="translate(-28.444 589.487)scale(.98084)">
</svg> <path style="fill:none" d="M29-601h261v261H29z"/>
<clipPath id="a">
<path d="M29-601h261v261H29z"/>
</clipPath>
<g clip-path="url(#a)">
<path style="fill:#363426" transform="translate(-252.39 -601)scale(1.01953)" d="M276 0h256v256H276z"/>
<path d="M442.661 126.568 356 104h40V36h16v68h40zm-82.951-13.602 79.963 20.824-6.35 15.346-65.729-17.117zm11.594 28.02 59.031 15.372-6.351 15.346-44.796-11.665zm11.595 28.019 38.097 9.921-6.35 15.346-23.863-6.214zm11.594 28.019 17.165 4.47L404 220z" style="fill:#ffe" transform="translate(-252.39 -601)scale(1.01953)"/>
<path d="M276 256V0h256v256zM518 14H290v228h228zm-10 10v32l-32-32zM300 232v-32l32 32zm0-208h32l-32 32zm208 208h-32l32-32z" style="fill:#c9b269" transform="translate(-252.39 -601)scale(1.01953)"/>
</g>
</g>
</svg>

Before

Width:  |  Height:  |  Size: 429 B

After

Width:  |  Height:  |  Size: 1.1 KiB

+15 -8
View File
@@ -1,8 +1,15 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 126 126" fill-rule="evenodd"> <svg viewBox="0 0 256 256" xmlns="http://www.w3.org/2000/svg" xml:space="preserve" style="fill-rule:evenodd;clip-rule:evenodd;stroke-linejoin:round;stroke-miterlimit:2">
<path <desc>Traced by Dogo314</desc>
d="m29 69 8 .012A.98.98 0 0 0 38 70h1a.967.967 0 0 0 1-1h3a.977.977 0 0 0 1 1h1a.951.951 0 0 0 1-1s-.258-1 3-1c0 0 1-.146 1 2v8h6l2 2s3 .016 3 1a11.256 11.256 0 0 1 3 0c1.526.229 3.038-3 8-3s7 3 7 3h2a1.963 1.963 0 0 1 2-1c2.092.009 13 1 13 1l8-1v1h4a40.413 40.413 0 0 1 6-1c1.83-.024 2 2 2 2a13.018 13.018 0 0 1 1 9s-2.3 2.2-6 0h-5l-1 1H95s-.868.934 1 1c0 0 .959 1-5 1l-1 1h-7v1h-1l-1 8s-3.411 1.326-3-1 1-7 1-7l-1-2h-1v3h-9v3s.893.522 0 1-.694 1.152-3 1v2l-2 2 1 2-7-3 6-6a1.665 1.665 0 0 0-2-2l-1-1v-2h-2v1h-4l-2 3h-5s-.978.26-1 2 .45 6.547-3 7a1.322 1.322 0 0 1-2 0c-.9-1.1-.745-11.807-12-12l-1-1H16l-2-1v1s-1.418 1.42-5 0c-1.885-.747-1.35-13.582 0-15 2.185-2.3 7 0 7 0V69l1-1h3l1 1h8z" <g transform="translate(-276 -306)">
fill="#49adc9" /> <path style="fill:none" d="M276 306h256v256H276z"/>
<path <clipPath id="a">
d="M94 38v-4h10v4H94Zm-4.95-12.828 7.071-7.072 2.828 2.828L91.879 28ZM81 46a10 10 0 0 1-9.541-7H23v-6h48.459A10 10 0 1 1 81 46Zm-2-33h4v10h-4V13Zm-15.993 7.852 2.855-2.864L73 25.148l-2.855 2.864Zm10.011 26-7.15 7.161-2.86-2.864 7.15-7.161ZM83 59h-4V49h4v10Zm16.012-7.929L96.179 53.9 89.1 46.828 91.929 44Z" <path d="M276 306h256v256H276z"/>
fill="#fff" /> </clipPath>
</svg> <g clip-path="url(#a)">
<path style="fill:#011419;" transform="translate(0 306)" d="M276 0h256v256H276z"/>
<path d="M4284.473 2382.75H4201.5v-7.5h82.973c1.667-6.467 7.543-11.25 14.527-11.25 8.279 0 15 6.721 15 15s-6.721 15-15 15c-6.984 0-12.86-4.783-14.527-11.25m18.277-41.25v15h-7.5v-15zm25.418 13.635-10.606 10.607-5.304-5.304 10.607-10.606zm8.332 27.615h-15v-7.5h15zm-13.635 25.418-10.607-10.606 5.304-5.304 10.606 10.607zm-27.615 8.332v-15h7.5v15zm-25.418-13.635 10.606-10.607 5.304 5.304-10.607 10.606zm5.303-53.033 10.607 10.606-5.304 5.304-10.606-10.607z" style="fill:#ffe" transform="translate(-4149.6 -2151.6)scale(1.06667)"/>
<path d="M276 15V0h256v15zM518 .82H290v13.36h228z" style="fill:#5abeda" transform="matrix(1 0 0 17.06667 0 306)"/>
<path d="M779 2755h-1v1h-2v-1h-14v1h-2v-1h-1v1h-2v-1h-1v1h-2v-1h-1v1h-2v-1h-1v1h-2v-1h-1v1h-2v-1h-2v1h-2v2h2v1l-1 1h-9v1l-1 1h-13v2h-2v14a2 2 0 0 1-2 2h-2a2 2 0 0 1-2-2v-14h-2v-2h-2v4h-17v5l1 1v1h-2l1 1v1h-3a2 2 0 0 0-2 2v.586a1 1 0 0 1-.293.707l-.414.414a1 1 0 0 1-.707.293h-.051c-.334 0-.646.167-.832.445l-1.16 1.741a2 2 0 0 0-.234 1.742l.382 1.144a2 2 0 0 1-.234 1.742l-.478.717a2 2 0 0 1-2.558.679L670 2783l8.208-10.943a3.97 3.97 0 0 0 .792-2.378 4.68 4.68 0 0 0-4.678-4.679H674v-5h-3v2h-8v2l-4 4h-8a4 4 0 0 0-2.828 1.172A4 4 0 0 0 647 2772v11a1 1 0 0 1-1 1h-4v1l-1 1h-2l-1-1c-1-10-6-20-13-20h-4v-3h-6v-2h-34a4 4 0 0 1-2.828-1.172A4 4 0 0 1 577 2756v-20c0-1.061.421-2.078 1.172-2.828A4 4 0 0 1 581 2732h10v-19h9l3 2h3v-1h26v1h4v-1h5v1h3l3-2h9v18h11l4 4h4v1h9s4-5 14-5 14 5 14 5h4v-1h5v1h22v1h2v-1h2v1h1v-1h2v1h1v-1h2v1h1v-1h2v1h1v-1h2v1h1v-1h2v1h12v-1h2v1h1v-1h2v1s4 6.927 4 10v6a2 2 0 0 1-2 2v1h-2z" style="fill:#53bcda" transform="translate(-276 -2268)"/>
</g>
</g>
</svg>

Before

Width:  |  Height:  |  Size: 1.1 KiB

After

Width:  |  Height:  |  Size: 2.1 KiB

+17 -5
View File
@@ -1,5 +1,17 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 126 126" fill="#fff"> <svg viewBox="0 0 256 256" xmlns="http://www.w3.org/2000/svg" xml:space="preserve" style="fill-rule:evenodd;clip-rule:evenodd;stroke-linejoin:round;stroke-miterlimit:2">
<path fill="#49adc9" d="M121 83v9H81v-2H70v2H49l-2 4h-8l-7 9h-3l-9-8h-8v-1H5V78h37v-1h4v1h5v-1h3v1h2v-1h2v1h2v-1h4v1h11v-1h46v4h-3v2h3Zm-87 8h-6v7h2l4-5v-2Zm11 1h-3v2h3v-2Z"/> <desc>Traced by Dogo314</desc>
<path d="M62 50V31h24l4 3h15l8 7-8 6H90l-4 3H62Z"/> <g transform="translate(-276 -306)">
<path d="M35 31v4c-3.9 0-7 2.5-7 5.5s3.1 5.5 7 5.5v4c-9.6 0-10-4-10-4s-4 4-12 4v-4s8-.8 8-5v-.6c0-4.4-8-5.2-8-5.2V31c8 0 12 4.2 12 4.2s.4-4.2 10-4.2Zm0 0v4c3.9 0 7 2.5 7 5.5S38.9 46 35 46v4c9.6 0 10-4 10-4s4 4 12 4v-4s-8-.8-8-5v-.6c0-4.4 8-5.2 8-5.2V31c-8 0-12 4.2-12 4.2S44.6 31 35 31Z"/> <path style="fill:none" d="M276 306h256v256H276z"/>
</svg> <clipPath id="a">
<path d="M276 306h256v256H276z"/>
</clipPath>
<g clip-path="url(#a)">
<path style="fill:#011419;" transform="translate(0 306)" d="M276 0h256v256H276z"/>
<path d="M3166 2452h18l1-1h83v7h-4v4h4v13a2 2 0 0 1-2 2h-68l-3-2h-16l-3 2h-37v1.967c0 .67-.218 1.323-.62 1.86l-1.18 1.573a4 4 0 0 1-3.2 1.6h-12l-12.103 13.965a3 3 0 0 1-2.267 1.035h-.63c-3 0-16-7-18-12h-14l-4-2h-9a2 2 0 0 1-2-2v-29a2 2 0 0 1 2-2h66v-2h2v2h2v-2h2v2h2v-2h2v2h2v-2h2v2h2v-2h2v2h2v-2h2v2h2v-2h2v2h2v-2h2v2h2v-2h2v2h2v-2h2zm-62 24a2 2 0 0 0-2 2v7a2 2 0 0 0 2 2h1.172a2 2 0 0 0 1.414-.586l5.828-5.828a2 2 0 0 0 .586-1.414V2478a2 2 0 0 0-2-2zm23 4a.997.997 0 0 0 1 1h4a.997.997 0 0 0 1-1v-2a.997.997 0 0 0-1-1h-4a.997.997 0 0 0-1 1z" style="fill:#53bcda" transform="translate(-2760 -1992)"/>
<path d="m4293.25 432.794-2.5 2.717h-27.5v-21.74h27.5l2.5 2.718h20l7.5 8.152-7.5 8.153z" style="fill:#ffe" transform="matrix(1.6 0 0 1.47193 -6421.2 -231.04)"/>
<path d="M4186 440.167v-8.334c7.977 0 11.744-5.381 15.733-10.419 5.513-6.964 11.241-13.581 22.267-13.581s16.754 6.617 22.267 13.581c3.989 5.038 7.756 10.419 15.733 10.419v8.334c-11.026 0-16.754-6.617-22.267-13.581-3.989-5.038-7.756-10.419-15.733-10.419s-11.744 5.381-15.733 10.419c-5.513 6.964-11.241 13.581-22.267 13.581" style="fill:#ffe" transform="translate(-3870 -30)"/>
<path d="M4350 407.833v8.334c-7.977 0-11.744 5.381-15.733 10.419-5.513 6.964-11.241 13.581-22.267 13.581s-16.754-6.617-22.267-13.581c-3.989-5.038-7.756-10.419-15.733-10.419v-8.334c11.026 0 16.754 6.617 22.267 13.581 3.989 5.038 7.756 10.419 15.733 10.419s11.744-5.381 15.733-10.419c5.513-6.964 11.241-13.581 22.267-13.581" style="fill:#ffe" transform="matrix(-1 0 0 1 4666 -30)"/>
<path d="M276 15V0h256v15zM518 .82H290v13.36h228z" style="fill:#5abeda" transform="matrix(1 0 0 17.06667 0 306)"/>
</g>
</g>
</svg>

Before

Width:  |  Height:  |  Size: 603 B

After

Width:  |  Height:  |  Size: 2.1 KiB

+15 -4
View File
@@ -1,4 +1,15 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 126 126" fill="#fff"> <svg viewBox="0 0 256 256" xmlns="http://www.w3.org/2000/svg" xml:space="preserve" style="fill-rule:evenodd;clip-rule:evenodd;stroke-linejoin:round;stroke-miterlimit:2">
<path fill-rule="evenodd" fill="#49adc9" d="M39 75v-2h50v2h32v15h-4v1h-10v-1H96v1h6v2h-8l-3 8H81v-5h-2l-7 10-4-4 7-10H50v17h-5V99l-4-5h-6l-1-2H24l-1-2h-3l-9 5H6l-2-2V74l2-2h5l9 3h19Zm43 18 2-2 4 4-2 2Z"/> <desc>Traced by Dogo314</desc>
<path d="M79 50c-5.3 0-30-7-30-7H35l-4 9H17l5-12v-1l-5-12h14l4 9h14s24.7-7 30-7 28 7 28 7v7s-22.7 7-28 7Z"/> <g transform="translate(-276 -306)">
</svg> <path style="fill:none" d="M276 306h256v256H276z"/>
<clipPath id="a">
<path d="M276 306h256v256H276z"/>
</clipPath>
<g clip-path="url(#a)">
<path style="fill:#011419;" transform="translate(0 306)" d="M276 0h256v256H276z"/>
<path d="M1490 2477h-3v30h-10l-11-25h-8v-5h-3v2h-2v-2h-2v2h-2v-2h-3v2h-2v-2h-2v2h-2v-2l-2-2h-3l-25 6-6-2v-35l6-2 25 6h29l2-4h88l4 4h29v-1h18v1h7v27h-7v1h-18v-1h-17v1h9v3h-14l-6 15h-6l-2-2v2h-10v-8h-2v3h-1.298a3.1 3.1 0 0 0-2.616 1.436l-5.461 8.581a4 4 0 0 0-.625 2.148v1.045a2.79 2.79 0 0 1-2.79 2.79h-.139a.3.3 0 0 1-.134-.032l-8.162-4.081a1.725 1.725 0 0 1-.651-2.522l9.467-13.77c.27-.393.468-.832.584-1.296L1528 2480h2v-3h-26v2h-2v-2h-2v2h-2v-2h-2v2h-2v-2h-2v2h-2zm55.882 0a1.88 1.88 0 0 0-1.882 1.882v3.048a2 2 0 0 0 .891 1.664l1.605 1.07c.329.219.715.336 1.11.336h1.566a2 2 0 0 0 1.414-.586l.828-.828a2 2 0 0 0 .586-1.414v-.344a2 2 0 0 0-.586-1.414L1550 2479h-1.197c-.492 0-.942-.278-1.162-.719l-.282-.562a1.3 1.3 0 0 0-1.162-.719z" style="fill:#53bcda" transform="translate(-1104 -1992)"/>
<path d="M276 15V0h256v15zM518 .82H290v13.36h228z" style="fill:#5abeda" transform="matrix(1 0 0 17.06667 0 306)"/>
<path d="m1436 2385-8-23h24l8 16h24l52-12 52 12v14l-52 12-52-12h-24l-8 16h-24z" style="fill:#ffe" transform="translate(-1104 -1992)"/>
</g>
</g>
</svg>

Before

Width:  |  Height:  |  Size: 398 B

After

Width:  |  Height:  |  Size: 1.6 KiB

+14 -4
View File
@@ -1,4 +1,14 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 126 126"> <svg viewBox="0 0 256 256" xmlns="http://www.w3.org/2000/svg" xml:space="preserve" style="fill-rule:evenodd;clip-rule:evenodd;stroke-linejoin:round;stroke-miterlimit:2">
<path fill="#fff" fill-rule="evenodd" d="M85 108H23l-8-9V89h17l10 9h24l10-9h17v10zM54 94 31 77V57h4c0-18.7 19-19 19-19s19 .3 19 19h4v20zm14-37H40v14h7l3-4h8l3 4h7V57zm48-15h-16v16h-7V42H77v-7h16V19h7v16h16v7z"/> <desc>Traced by Dogo314</desc>
<path fill="#c9b269" fill-rule="evenodd" d="M4 122v-20l20 20H4Zm118 0v-20l-20 20h20Zm0-118v20L102 4h20ZM4 4v20L24 4H4Z"/> <g transform="translate(-28.444 589.487)scale(.98084)">
</svg> <path style="fill:none" d="M29-601h261v261H29z"/>
<clipPath id="a">
<path d="M29-601h261v261H29z"/>
</clipPath>
<g clip-path="url(#a)">
<path style="fill:#363426" transform="translate(-252.39 -601)scale(1.01953)" d="M276 0h256v256H276z"/>
<path d="M1526 101h8v32l-40 32-40-32v-32h8c0-17.661 14.339-32 32-32s32 14.339 32 32m-56 24h12l4-8h16l4 8h12v-24h-48zm90-50.028h-27.972v-12H1560V35h12v27.972h27.972v12H1572v27.973h-12zM1546 189h-104l-16-16v-16h32l16 16h40l16-16h32v16z" style="fill:#ffe" transform="translate(-1379.992 -585.707)scale(1.01953)"/>
<path d="M276 15V0h256v15zM518 .82H290v13.36h228zm-10 12.774h-32l32-1.875zM300 1.406h32l-32 1.875zm208 0v1.875l-32-1.875zM300 13.594v-1.875l32 1.875z" style="fill:#c9b269" transform="matrix(1.01953 0 0 17.4 -252.39 -601)"/>
</g>
</g>
</svg>

Before

Width:  |  Height:  |  Size: 416 B

After

Width:  |  Height:  |  Size: 1.1 KiB

+15 -5
View File
@@ -1,5 +1,15 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 126 126" fill="#fff"> <svg viewBox="0 0 256 256" xmlns="http://www.w3.org/2000/svg" xml:space="preserve" style="fill-rule:evenodd;clip-rule:evenodd;stroke-linejoin:round;stroke-miterlimit:2">
<path fill="#c9b269" d="M82 52V24h30L96.4 52H82Zm-50.4 0L16 24h30v28H31.6Zm44.7 36L64 110 51.7 88h24.6Z"/> <desc>Traced by Dogo314</desc>
<path d="M34 84V56h9v10h10V56h9v28H34ZM66 84V56h9v10h10V56h9v28H66ZM50 52V24h9v10h10V24h9v28H50Z"/> <g transform="translate(-28.444 589.487)scale(.98084)">
<path fill="#c9b269" d="M5 123v-20l20 20H5Zm118 0v-20l-20 20h20Zm0-118v20L103 5h20ZM5 5v20L25 5H5Z"/> <path style="fill:none" d="M29-601h261v261H29z"/>
</svg> <clipPath id="a">
<path d="M29-601h261v261H29z"/>
</clipPath>
<g clip-path="url(#a)">
<path style="fill:#363426" transform="translate(-252.39 -601)scale(1.01953)" d="M276 0h256v256H276z"/>
<path d="M2592 116h16v48h-48v-48h16v16h16zm56 0h16v48h-48v-48h16v16h16zm-28-56h16v48h-48V60h16v16h16z" style="fill:#ffe" transform="translate(-2503.516 -601)scale(1.01953)"/>
<path d="M2580 60v48h-24.757L2528 60zm11.568 112h40.864L2612 208zm77.189-64H2644V60h52z" style="fill:#c9b269" transform="translate(-2503.516 -601)scale(1.01953)"/>
<path d="M276 15V0h256v15zM518 .82H290v13.36h228zm-10 12.774h-32l32-1.875zM300 1.406h32l-32 1.875zm208 0v1.875l-32-1.875zM300 13.594v-1.875l32 1.875z" style="fill:#c9b269" transform="matrix(1.01953 0 0 17.4 -252.39 -601)"/>
</g>
</g>
</svg>

Before

Width:  |  Height:  |  Size: 394 B

After

Width:  |  Height:  |  Size: 1.1 KiB

+15 -5
View File
@@ -1,5 +1,15 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 126 126" fill="#fff"> <svg viewBox="0 0 256 256" xmlns="http://www.w3.org/2000/svg" xml:space="preserve" style="fill-rule:evenodd;clip-rule:evenodd;stroke-linejoin:round;stroke-miterlimit:2">
<path fill="#679552" d="M90 33s-6-8.3-18-15h43v15H90Zm2 24v14H50.6l-.6-6 17-17V28H47L31 43.1V18h22s39 0 39 39Zm-7 35H41v-7l9-9h35v16Zm8 4 13 16H18l13-16h62Z"/> <desc>Traced by Dogo314</desc>
<path d="M63 32v14L46 63v10L34 85V61H10l12-12h10l17-17h14Z"/> <g transform="translate(-276 -306)">
<path d="M20 86v-9l6-6v10ZM24 69l-6 5H9l5-5h10Z"/> <path style="fill:none" d="M276 306h256v256H276z"/>
</svg> <clipPath id="a">
<path d="M276 306h256v256H276z"/>
</clipPath>
<g clip-path="url(#a)">
<path style="fill:#091901;" transform="translate(0 306)" d="M276 0h256v256H276z"/>
<path d="M377 689v-36h27c31.459 0 57 25.541 57 57v15h-57v-9.515l21-21V668h-26.485l-21 21zm26.485 42H449v21h-60v-6.515zm27.364-78H491v21h-35.306a63.3 63.3 0 0 0-24.845-21M461 758l18 21H359l18-21z" style="fill:#679452" transform="translate(-154.667 -520.667)scale(1.33333)"/>
<path d="M956 684v24l-28 28v20l-28 28v-44h-44l28-28h20l28-28zm-76 82 12-12v14l-12 12zm-6-6h-14l12-12h14z" style="fill:#ffe" transform="translate(-552 -306)"/>
<path d="M276 15V0h256v15zM518 .82H290v13.36h228z" style="fill:#689452" transform="matrix(1 0 0 17.06667 0 306)"/>
</g>
</g>
</svg>

Before

Width:  |  Height:  |  Size: 358 B

After

Width:  |  Height:  |  Size: 1.1 KiB

+15 -4
View File
@@ -1,4 +1,15 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 126 126" fill-rule="evenodd"> <svg viewBox="0 0 256 256" xmlns="http://www.w3.org/2000/svg" xml:space="preserve" style="fill-rule:evenodd;clip-rule:evenodd;stroke-linejoin:round;stroke-miterlimit:2">
<path fill="#c9b269" d="M94.47 92h15.288A53.737 53.737 0 0 1 117 119H98.924c-.329-11.02-2.004-19.88-4.454-27zM74.191 66.2A53.991 53.991 0 0 1 107.9 89H93.357c-5.213-12.973-13.046-19.528-19.166-22.8zM90.327 89H65V66c13.307 3.34 20.946 12.73 25.327 23zM35.5 92H62v27H30.912A85.548 85.548 0 0 1 35.5 92zM62 66v23H36.681C41.065 78.73 48.7 69.343 62 66zM33.635 89H18.1a53.974 53.974 0 0 1 35.28-23.1c-6.199 3.159-14.367 9.7-19.745 23.1zm-5.559 30H9a53.731 53.731 0 0 1 7.242-27h16.281c-2.446 7.12-4.123 15.98-4.447 27zm67.569 43a53.939 53.939 0 0 1-65.289 0h65.288zm-4.136-70a85.481 85.481 0 0 1 4.58 27H65V92h26.509z"/> <desc>Traced by Dogo314</desc>
<path fill="#fff" d="M54 38V10H29l18 28h7zm19-28h25L80 38h-7V10zm-14 0h9v33h9L64 63 50 43h9"/> <g transform="translate(-28.444 589.487)scale(.98084)">
</svg> <path style="fill:none" d="M29-601h261v261H29z"/>
<clipPath id="a">
<path d="M29-601h261v261H29z"/>
</clipPath>
<g clip-path="url(#a)">
<path style="fill:#363426" transform="translate(-252.39 -601)scale(1.01953)" d="M276 0h256v256H276z"/>
<path d="M4779 228c0-7.466 2-14.468 5.492-20.5h11.236c-1.956 6.138-3.061 13.11-3.061 20.5zm17.083 0v-.007c0-7.463 1.165-14.462 3.201-20.493h19.008V228zm25.625 0v-20.5h19.008c2.036 6.031 3.201 13.03 3.201 20.493V228zm25.625 0c0-7.39-1.105-14.362-3.061-20.5h11.236A40.8 40.8 0 0 1 4861 228zm-60.522-24.065c4.86-6.689 11.692-11.854 19.638-14.639-3.826 3.571-7.073 8.608-9.453 14.639zm46.74-14.639c7.946 2.785 14.778 7.95 19.638 14.639h-10.185c-2.38-6.031-5.627-11.068-9.453-14.639m-15.259-2.207v16.846h-17.657c4.035-9.527 10.401-15.966 17.657-16.846m21.073 16.846h-17.657v-16.846c7.256.88 13.622 7.319 17.657 16.846" style="fill:#c9b269" transform="matrix(2.3872 0 0 2.28773 -11346.78 -890.149)"/>
<path d="M4790.826 84 4759 36h45v48zM4812 36h16v56h15.87L4820 128l-23.87-36H4812zm24 0h45l-31.826 48H4836z" style="fill:#ffe" transform="translate(-4754.64 -601)scale(1.01953)"/>
<path d="M276 15V0h256v15zM518 .82H290v13.36h228z" style="fill:#c9b269" transform="matrix(1.01953 0 0 17.4 -252.39 -601)"/>
</g>
</g>
</svg>

Before

Width:  |  Height:  |  Size: 813 B

After

Width:  |  Height:  |  Size: 1.5 KiB

+15 -8
View File
@@ -1,8 +1,15 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 126 126" fill="#fff"> <svg viewBox="0 0 256 256" xmlns="http://www.w3.org/2000/svg" xml:space="preserve" style="fill-rule:evenodd;clip-rule:evenodd;stroke-linejoin:round;stroke-miterlimit:2">
<g fill="#49adc9"> <desc>Traced by Dogo314</desc>
<path d="M79 41h9v10h-9z"/> <g transform="translate(-276 -306)">
<path d="M75 41H64l-10-9v14l11 4v48h39l9-9V32l-10 9H92v14H75V41Z"/> <path style="fill:none" d="M276 306h256v256H276z"/>
<path d="m54 27 11 10h37l11-10V16H54v11Z"/> <clipPath id="a">
</g> <path d="M276 306h256v256H276z"/>
<path d="M8 99s24 16 26 16 26-16 26-16V53s-22-6-26-6-26 6-26 6v46Zm15-18 15-21-5 17h12L30 97l5-16H23Z"/> </clipPath>
</svg> <g clip-path="url(#a)">
<path style="fill:#011419;" transform="translate(0 306)" d="M276 0h256v256H276z"/>
<path d="M276 15V0h256v15zM518 .82H290v13.36h228z" style="fill:#5abeda" transform="matrix(1 0 0 17.06667 0 306)"/>
<path d="M388 1569.204V1541l17 17h19v24h32v-24h19l17-17v101l-16 16h-68v-84.448zM472 1550h-64l-20-20v-16h104v16zm-24 8v16h-16v-16z" style="fill:#53bcda" transform="translate(0 -1164)"/>
<path d="m3390 1570 46 10v75l-46 27-46-27v-75zm0 47 8-33-30 43h22l-8 33 30-43z" style="fill:#ffe" transform="translate(-3036 -1164)"/>
</g>
</g>
</svg>

Before

Width:  |  Height:  |  Size: 366 B

After

Width:  |  Height:  |  Size: 984 B

+15 -4
View File
@@ -1,4 +1,15 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 126 126" fill="#fff"> <svg viewBox="0 0 256 256" xmlns="http://www.w3.org/2000/svg" xml:space="preserve" style="fill-rule:evenodd;clip-rule:evenodd;stroke-linejoin:round;stroke-miterlimit:2">
<path fill="#679552" d="M121 121H5v-20l17-7 20 10 21-10 21 10 20-10 17 7.2V121Z"/> <desc>Traced by Dogo314</desc>
<path d="M37 75s24 16 26 16 26-16 26-16V29s-22-6-26-6-26 6-26 6v46Zm15-18 15-21-5 17h12L59 73l5-16H52Z"/> <g transform="translate(-276 -306)">
</svg> <path style="fill:none" d="M276 306h256v256H276z"/>
<clipPath id="a">
<path d="M276 306h256v256H276z"/>
</clipPath>
<g clip-path="url(#a)">
<path style="fill:#091901;" transform="translate(0 306)" d="M276 0h256v256H276z"/>
<path d="M516 1148H292v-38.222L332 1092l36 16 36-16 36 16 36-16 40 17.778z" style="fill:#679452" transform="translate(0 -602)"/>
<path d="M1784 1064.067 1738 1037v-83l46-10 46 10v83zm0-68.067 8-34-30 42h22l-8 34 30-42z" style="fill:#ffe" transform="translate(-1380 -582)"/>
<path d="M276 15V0h256v15zM518 .82H290v13.36h228z" style="fill:#689452" transform="matrix(1 0 0 17.06667 0 306)"/>
</g>
</g>
</svg>

Before

Width:  |  Height:  |  Size: 275 B

After

Width:  |  Height:  |  Size: 938 B

+14 -4
View File
@@ -1,4 +1,14 @@
<svg xmlns="http://www.w3.org/2000/svg" fill-rule="evenodd" viewBox="0 0 126 126"> <svg viewBox="0 0 256 256" xmlns="http://www.w3.org/2000/svg" xml:space="preserve" style="fill-rule:evenodd;clip-rule:evenodd;stroke-linejoin:round;stroke-miterlimit:2">
<path fill="#c9b269" d="M4 122v-20l20 20H4Zm118 0v-20l-20 20h20Zm0-118v20L102 4h20ZM4 4v20L24 4H4Z"/> <desc>Traced by Dogo314</desc>
<path fill="#fff" d="M63 48s-9.206.521-14 6c0 0-2.527 1.473-4 0s0-4 0-4a27.841 27.841 0 0 1 18-7v5zm0 0s9.376.684 14.258 6.324c0 0 2.574 1.516 4.074 0s0-4.118 0-4.118A28.213 28.213 0 0 0 63 43v5zm0-9s13.118.36 18 6c0 0 4.832 3.841 6.332 2.324.6-.608 1.768-1.8.668-3.324-1.644-2.286-6-5-6-5a39.028 39.028 0 0 0-19-5v5zm0 0s-12.892.495-17.69 6.277c0 0-4.749 3.937-6.223 2.383-.591-.623-1.737-1.841-.657-3.408 1.615-2.343 5.9-5.126 5.9-5.126A37.218 37.218 0 0 1 63 34v5zm0-9s-18.2 2.218-23 8c0 0-4.407 4.468-7 3-.747-.423-1.081-2.433 0-4 1.615-2.343 9-7 9-7s10.172-5 21-5v5zm0 0s18.387 2.079 23.234 7.751c0 0 4.452 4.383 7.071 2.943.755-.415 1.092-2.386 0-3.923-1.632-2.3-9.092-6.866-9.092-6.866S73.938 25 63 25v5zM45 71s-.338 1-3 1a7.075 7.075 0 0 1-4-1 11.323 11.323 0 0 0 0-4 1.6 1.6 0 0 0-1-1h-6c-2.025 0-.465 4.5 1 6 1.88 1.912 4.453 1.528 10 6a8.853 8.853 0 0 1 3 8s1.181 9-12 9-10-12-10-12 .339-1 3-1a7.031 7.031 0 0 1 4 1 11.308 11.308 0 0 0 0 4 1.605 1.605 0 0 0 1 1h5a1.936 1.936 0 0 0 2-2s1.477-3.839-4-6c-6.467-2.552-8.921-5.5-10-7a.564.564 0 0 1-.106-.389A22.684 22.684 0 0 1 23.031 68c.039-1.465-1.179-9 11.984-9S45 71 45 71zm56 0s-.338 1-3 1a7.075 7.075 0 0 1-4-1 11.323 11.323 0 0 0 0-4 1.6 1.6 0 0 0-1-1h-6c-2.025 0-.465 4.5 1 6 1.88 1.912 4.453 1.528 10 6a8.853 8.853 0 0 1 3 8s1.181 9-12 9-10-12-10-12 .339-1 3-1a7.031 7.031 0 0 1 4 1 11.308 11.308 0 0 0 0 4 1.605 1.605 0 0 0 1 1h5a1.936 1.936 0 0 0 2-2s1.477-3.839-4-6c-6.467-2.552-8.921-5.5-10-7a.564.564 0 0 1-.106-.389A22.684 22.684 0 0 1 79.031 68c.039-1.465-1.179-9 11.984-9S101 71 101 71zM70 94H55c-3.154 0-4-5-4-5l.143-12L51 65s.846-5 4-5h15c3.255 0 4 5 4 5v24s-.745 5-4 5zm-7.5-5c-1.374.026-4.5.723-4.5-2V75.908l-.044-8.9c-.017-2.72 3.17-2.034 4.544-2.008 1.374-.026 4.5-.723 4.5 2v20c0 2.724-3.126 2.026-4.5 2z"/> <g transform="translate(-28.444 589.487)scale(.98084)">
</svg> <path style="fill:none" d="M29-601h261v261H29z"/>
<clipPath id="a">
<path d="M29-601h261v261H29z"/>
</clipPath>
<g clip-path="url(#a)">
<path style="fill:#363426" transform="translate(-252.39 -601)scale(1.01953)" d="M276 0h256v256H276z"/>
<path d="M648.893 108.893C656.858 100.929 667.858 96 680 96s23.142 4.929 31.107 12.893l-5.656 5.656C698.934 108.033 689.934 104 680 104s-18.934 4.033-25.451 10.549zm-11.311-11.311C648.443 86.721 663.443 80 680 80s31.557 6.721 42.418 17.582l-5.656 5.656C707.35 93.825 694.35 88 680 88s-27.35 5.825-36.762 15.238zM626.27 86.27C640.027 72.514 659.027 64 680 64s39.973 8.514 53.73 22.27l-5.656 5.656C715.765 79.617 698.765 72 680 72s-35.765 7.617-48.074 19.926zM613 145v-8c0-3.183 1.264-6.235 3.515-8.485A12 12 0 0 1 625 125h12c3.183 0 6.235 1.264 8.485 3.515A12 12 0 0 1 649 137v6a2 2 0 0 1-2 2h-6a2 2 0 0 1-2-2v-6a2 2 0 0 0-2-2h-12a2 2 0 0 0-2 2v6c18 12 26 17 26 22v8c0 3.183-1.264 6.235-3.515 8.485A12 12 0 0 1 637 185h-12a12 12 0 0 1-8.485-3.515A12 12 0 0 1 613 173v-6a2 2 0 0 1 2-2h6a2 2 0 0 1 2 2v6a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2v-8c-17-11-26-16-26-20m97 0v-8c0-3.183 1.264-6.235 3.515-8.485A12 12 0 0 1 722 125h12c3.183 0 6.235 1.264 8.485 3.515A12 12 0 0 1 746 137v6a2 2 0 0 1-2 2h-6a2 2 0 0 1-2-2v-6a2 2 0 0 0-2-2h-12a2 2 0 0 0-2 2v6c18 12 26 17 26 22v8c0 3.183-1.264 6.235-3.515 8.485A12 12 0 0 1 734 185h-12a12 12 0 0 1-8.485-3.515A12 12 0 0 1 710 173v-6a2 2 0 0 1 2-2h6a2 2 0 0 1 2 2v6a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2v-8c-17-11-26-16-26-20m-24-20c6.627 0 12 5.373 12 12v35c0 6.627-5.373 12-12 12h-12c-6.627 0-12-5.373-12-12v-35c0-6.627 5.373-12 12-12zm-1 9h-10a4 4 0 0 0-2.828 1.172A4 4 0 0 0 671 138v33c0 1.061.421 2.078 1.172 2.828A4 4 0 0 0 675 175h10a4 4 0 0 0 2.828-1.172A4 4 0 0 0 689 171v-33a4 4 0 0 0-1.172-2.828A4 4 0 0 0 685 134" style="fill:#ffe" transform="translate(-533.781 -601)scale(1.01953)"/>
<path d="M276 256V0h256v256zM518 14H290v228h228zm-10 10v32l-32-32zm0 208h-32l32-32zm-208 0v-32l32 32zm0-208h32l-32 32z" style="fill:#c9b269" transform="translate(-252.39 -601)scale(1.01953)"/>
</g>
</g>
</svg>

Before

Width:  |  Height:  |  Size: 1.9 KiB

After

Width:  |  Height:  |  Size: 2.3 KiB

+15 -4
View File
@@ -1,4 +1,15 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 126 126" fill="#fff"> <svg viewBox="0 0 256 256" xmlns="http://www.w3.org/2000/svg" xml:space="preserve" style="fill-rule:evenodd;clip-rule:evenodd;stroke-linejoin:round;stroke-miterlimit:2">
<path fill-rule="evenodd" d="M24 26h15L24 13v13ZM24 53h15L24 66V53ZM24 30h73s9 1 9 10-9 9-9 9H24V30Zm71.5 4a5.5 5.5 0 1 1-5.5 5.5 5.5 5.5 0 0 1 5.5-5.5Z"/> <desc>Traced by Dogo314</desc>
<path fill="#49adc9" d="m110 95-3 3h-9l-4 11h-3l-3-3h-3v3h-6l-6-3h-1l-9 9h-4L48 98H34l-3-3H14V84h19v-3h7v-3h42v-2h24v2h1v4h5v13h-2Zm-49 5v8l8-8h-8Zm20 3h-5v3l5 1v-4Z"/> <g transform="translate(-276 -306)">
</svg> <path style="fill:none" d="M276 306h256v256H276z"/>
<clipPath id="a">
<path d="M276 306h256v256H276z"/>
</clipPath>
<g clip-path="url(#a)">
<path style="fill:#011419;" transform="translate(0 306)" d="M276 0h256v256H276z"/>
<path d="m3442 2517-12-3v-4l-7-6-9-18h-25v-3h-3v-2h-34v-21h34v-4h12v-3l2-2h72l2-5h44l2 5v5h6l2 2v24l-2 2h-3v1h1v3h-17.034a7 7 0 0 0-6.607 4.688L3495 2508l-8-3 1-3-8-2-1 6h-7l-15-5-15 13zm-4-27-2 13h3l11-10-7-3zm31.822 6.657a3 3 0 0 0-1.874-.657h-.489a3 3 0 0 0-2.941 2.412l-.041.201a3 3 0 0 0 1.76 3.346l2.596 1.112a3 3 0 0 0 3.582-.957l.422-.563a2 2 0 0 0-.351-2.762z" style="fill:#53bcda" transform="translate(-3036 -1992)"/>
<path d="M2949 2398h-128v-32h128c8.831 0 16 7.169 16 16s-7.169 16-16 16m0-24c-4.415 0-8 3.585-8 8s3.585 8 8 8 8-3.585 8-8-3.585-8-8-8m-128-40 24 24h-24zm0 96v-24h24z" style="fill:#ffe" transform="translate(-2485 -1992)"/>
<path d="M276 15V0h256v15zM518 .82H290v13.36h228z" style="fill:#5abeda" transform="matrix(1 0 0 17.06667 0 306)"/>
</g>
</g>
</svg>

Before

Width:  |  Height:  |  Size: 409 B

After

Width:  |  Height:  |  Size: 1.3 KiB

+15 -1
View File
@@ -1 +1,15 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 126 126"><g><path fill="#49adc9" fill-rule="evenodd" d="m80 81 3 3h30l2 2h3v1h3v1h-3l-1 1v1h2v1h-4l-3 5h-3v-1h-2v1H94v-1h-2v1h-2v-1l-2-1-3 3h-8v8H65v-8h-8l-3 3h-7s-3.855 5.6-3 8c.984 2.76-2 3-2 3l-5-3s-.774-2.848 0-4c.748-1.113 6-6 6-6v-4h-7l-1-1h-8l-4 4H10l-2 2H6l-1-1V83l1-1h30l7-1v-1h4v1h2v-1h2v1h1v-1h6v1h3v-1h1v1h2v-1h1v1h15ZM49 94h6v2l-2 2h-4v-4Z"/><path d="M45 61h26l2-2h8l5-2.469L81 54h-8l-2-2H45v9Z" fill="#fff" fill-rule="evenodd"/><path d="M45 48h26l2-2h8l5-2.469L81 41h-8l-2-2H45v9Z" fill="#fff" fill-rule="evenodd"/><path d="M45 35h26l2-2h8l5-2.469L81 28h-8l-2-2H45v9Z" fill="#fff" fill-rule="evenodd"/></g></svg> <svg viewBox="0 0 256 256" xmlns="http://www.w3.org/2000/svg" xml:space="preserve" style="fill-rule:evenodd;clip-rule:evenodd;stroke-linejoin:round;stroke-miterlimit:2">
<desc>Traced by Dogo314</desc>
<g transform="translate(-276 -306)">
<path style="fill:none" d="M276 306h256v256H276z"/>
<clipPath id="a">
<path d="M276 306h256v256H276z"/>
</clipPath>
<g clip-path="url(#a)">
<path style="fill:#011419;" transform="translate(0 306)" d="M276 0h256v256H276z"/>
<path d="M276 15V0h256v15zM518 .82H290v13.36h228z" style="fill:#5abeda" transform="matrix(1 0 0 17.06667 0 306)"/>
<path d="m974 2371-3 3.142h-47V2358h47l3 3h13l9 5-9 5zm0 24-3 3.142h-47V2382h47l3 3h13l9 5-9 5zm0 23.858-3 3.142h-47v-16.142h47l3 3h13l9 5-9 5z" style="fill:#ffe" transform="translate(-552 -1992)"/>
<path d="M1011 2484h-2v2h-3l-3-3-4 4h-15v14h-22v-14h-17l-.215.537a7.1 7.1 0 0 1-6.592 4.463H931c-.796 0-1.559.316-2.121.879A3 3 0 0 0 928 2495v1.488c0 .835-.677 1.512-1.512 1.512h-.002c-.357 0-.695.165-.915.446a1.17 1.17 0 0 0-.211.995l.277 1.105a1.17 1.17 0 0 1-1.136 1.454h-.001a1.08 1.08 0 0 0-1.026 1.423l.986 2.956a3.5 3.5 0 0 1-.408 3.043l-.175.263a1.9 1.9 0 0 1-2.33.692l-10.411-4.462a1.998 1.998 0 0 1-.913-2.891l10.624-17.162A2 2 0 0 0 920 2483h-9l-4-3h-14l-6.243 6.243a6 6 0 0 1-4.242 1.757h-18.272a3 3 0 0 0-2.122.879l-.533.533a3 3 0 0 1-1.394.79l-2.253.563a3 3 0 0 1-1.842-.125l-2.213-.886a3 3 0 0 1-1.886-2.785V2461c0-.796.316-1.559.879-2.121A3 3 0 0 1 855 2458h56l10-2h2v-2h2v2h2v-2h2v2h2v-2h2v2h2v-2h2v2h2v-2h2v2h2v-2h2v2h2v-2h2v2h2v-2h2v2h2v-2h2v2h2v-2h2l2 2h26a2 2 0 0 1 2 2v1c0 1.061.421 2.078 1.172 2.828A4 4 0 0 0 995 2463h56l1 4 2 1h9v3h-7v2h4v4h-9l-1 3h-3l-2 2v4h-2v-2h-2v2h-2v-2h-2v2h-2v-2h-2v2h-2v-2h-2v2h-2v-2h-2v2h-2v-2h-2v2h-2v-2h-2v2h-2v-2h-2v2h-2zm-77-1h-1a2 2 0 0 0-2 2v2a2 2 0 0 0 2 2h6a4 4 0 0 0 2.828-1.172A4 4 0 0 0 943 2485a2 2 0 0 0-2-2h-5c0 2 0 3 1 5h-1c-1-1-2-2-2-5" style="fill:#53bcda" transform="translate(-552 -1992)"/>
</g>
</g>
</svg>

Before

Width:  |  Height:  |  Size: 679 B

After

Width:  |  Height:  |  Size: 2.0 KiB

+15 -8
View File
@@ -1,8 +1,15 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 126 126" fill="#fff"> <svg viewBox="0 0 256 256" xmlns="http://www.w3.org/2000/svg" xml:space="preserve" style="fill-rule:evenodd;clip-rule:evenodd;stroke-linejoin:round;stroke-miterlimit:2">
<path fill-rule="evenodd" d="M7 59h17v19h20V59h17v54H7V59Zm7 29h19v2a1 1 0 0 0 1 1h14s6 2.4 6 4.6-6 4.4-6 4.4H34a1 1 0 0 0-1 1v2H14V88Z"/> <desc>Traced by Dogo314</desc>
<g fill="#49adc9"> <g transform="translate(-276 -306)">
<path d="M79 41h9v10h-9z"/> <path style="fill:none" d="M276 306h256v256H276z"/>
<path d="M75 41H63l-9-9v23h11v43h39l9-9V32l-9 9H92v14H75V41Z"/> <clipPath id="a">
<path d="m54 27 11 10h37l11-10V16H54v11Z"/> <path d="M276 306h256v256H276z"/>
</g> </clipPath>
</svg> <g clip-path="url(#a)">
<path style="fill:#011419;" transform="translate(0 306)" d="M276 0h256v256H276z"/>
<path d="M388 1582v-41l17 17h19v24h32v-24h19l17-17v101l-16 16h-68v-76zm84-32h-64l-20-20v-16h104v16zm-24 8v16h-16v-16z" style="fill:#53bcda" transform="translate(0 -1164)"/>
<path d="M2852 1590h32v96h-96v-96h32v32h32zm-52 76h32l4-4h25l10-8-10-8h-25l-4-4h-32z" style="fill:#ffe" transform="translate(-2484 -1164)"/>
<path d="M276 15V0h256v15zM518 .82H290v13.36h228z" style="fill:#5abeda" transform="matrix(1 0 0 17.06667 0 306)"/>
</g>
</g>
</svg>

Before

Width:  |  Height:  |  Size: 396 B

After

Width:  |  Height:  |  Size: 978 B

+15 -5
View File
@@ -1,5 +1,15 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 126 126" fill="#fff"> <svg viewBox="0 0 256 256" xmlns="http://www.w3.org/2000/svg" xml:space="preserve" style="fill-rule:evenodd;clip-rule:evenodd;stroke-linejoin:round;stroke-miterlimit:2">
<path fill="#679552" d="M-9 140v-39l9 2v23h126v-22.7l4 1.7 3 35H-9Zm130-19H5v-20l17-7 20 10 21-10 21 10 20-10 17 7.2V121Z"/> <desc>Traced by Dogo314</desc>
<path d="m33 94 9 5 21-10 21 10 9-5-8-11V43h-7v31H68V64l-3-3V51h-4v10l-3 3v10H48V43h-7v40Z"/> <g transform="translate(-276 -306)">
<path d="M72 27 57 47l5-16H50l15-21-5 17h12Z"/> <path style="fill:none" d="M276 306h256v256H276z"/>
</svg> <clipPath id="a">
<path d="M276 306h256v256H276z"/>
</clipPath>
<g clip-path="url(#a)">
<path style="fill:#091901;" transform="translate(0 306)" d="M276 0h256v256H276z"/>
<path d="M516 1148H292v-38.222L332 1092l36 16 36-16 36 16 36-16 40 17.778z" style="fill:#679452" transform="translate(0 -602)"/>
<path d="M1784 996h20l-28 40 8-32h-20l28-40zm4 111.245-36 16-16.16-7.182L1748 1096v-72h12v56h16v-16l8-8v-16h8v16l8 8v16h16v-56h12v72l12.16 20.063-16.16 7.182z" style="fill:#ffe" transform="translate(-1384 -626)"/>
<path d="M276 15V0h256v15zM518 .82H290v13.36h228z" style="fill:#689452" transform="matrix(1 0 0 17.06667 0 306)"/>
</g>
</g>
</svg>

Before

Width:  |  Height:  |  Size: 355 B

After

Width:  |  Height:  |  Size: 1007 B

+14 -4
View File
@@ -1,4 +1,14 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 126 126" fill="#fff"> <svg viewBox="0 0 256 256" xmlns="http://www.w3.org/2000/svg" xml:space="preserve" style="fill-rule:evenodd;clip-rule:evenodd;stroke-linejoin:round;stroke-miterlimit:2">
<path fill="#c9b269" d="M4 122v-20l20 20H4Zm118 0v-20l-20 20h20Zm0-118v20L102 4h20ZM4 4v20L24 4H4Z"/> <desc>Traced by Dogo314</desc>
<path d="M9 78v10l10 10h88l10-10V78H73v14H53V78H9ZM26 74V28h74v46H26Zm37-40L41 57h12v14h20V57h12Z"/> <g transform="translate(-28.444 589.487)scale(.98084)">
</svg> <path style="fill:none" d="M29-601h261v261H29z"/>
<clipPath id="a">
<path d="M29-601h261v261H29z"/>
</clipPath>
<g clip-path="url(#a)">
<path style="fill:#363426" transform="translate(-252.39 -601)scale(1.01953)" d="M276 0h256v256H276z"/>
<path d="M4608 68v80h-128V68zm-48 72v-20h24l-40-44-40 44h24v20zm56 48h-144l-16-16.106V156h72v15.894h32V156h72v15.894z" style="fill:#ffe" transform="translate(-4473.25 -601)scale(1.01953)"/>
<path d="M276 15V0h256v15zM518 .82H290v13.36h228zm-10 12.774h-32l32-1.875zM300 1.406h32l-32 1.875zm208 0v1.875l-32-1.875zM300 13.594v-1.875l32 1.875z" style="fill:#c9b269" transform="matrix(1.01953 0 0 17.4 -252.39 -601)"/>
</g>
</g>
</svg>

Before

Width:  |  Height:  |  Size: 287 B

After

Width:  |  Height:  |  Size: 977 B

+230 -112
View File
@@ -7,7 +7,7 @@
<link rel="preconnect" href="https://fonts.googleapis.com"> <link rel="preconnect" href="https://fonts.googleapis.com">
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin> <link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
<link href="https://fonts.googleapis.com/css2?family=Exo+2:wght@400;600;700&family=Rajdhani:wght@600;700&family=Share+Tech+Mono&display=swap" rel="stylesheet"> <link href="https://fonts.googleapis.com/css2?family=Exo+2:wght@400;600;700&family=Rajdhani:wght@600;700&family=Share+Tech+Mono&display=swap" rel="stylesheet">
<link rel="stylesheet" href="styles.css"> <link rel="stylesheet" href="styles.css?v=1.0.0">
</head> </head>
<body> <body>
@@ -55,24 +55,47 @@
<!-- ── LOGIN ─────────────────────────────────────────────────── --> <!-- ── LOGIN ─────────────────────────────────────────────────── -->
<div id="view-login" class="view view-centered"> <div id="view-login" class="view view-centered">
<div class="login-box"> <div class="login-shell">
<div class="login-header"> <section class="login-intel card">
<span class="login-logo"></span> <div class="eyebrow">Super Earth Command</div>
<h1>HELLDIVERS 2</h1> <h1 class="login-intel-title">Deploy faster. Input cleaner. Win harder.</h1>
<p class="login-sub">STRATAGEM TRAINER — SUPER EARTH AUTHORIZED</p> <p class="login-intel-copy">
Train every stratagem like a live-fire drill, chase leaderboard position, and challenge active Helldivers in the arena.
</p>
<div class="login-intel-grid">
<div class="intel-stat">
<span class="intel-stat-value">4</span>
<span class="intel-stat-label">Training Modes</span>
</div>
<div class="intel-stat">
<span class="intel-stat-value">1v1</span>
<span class="intel-stat-label">Arena Duels</span>
</div>
<div class="intel-stat">
<span class="intel-stat-value">ELO</span>
<span class="intel-stat-label">Rank Tracking</span>
</div>
</div>
</section>
<div class="login-box">
<div class="login-header">
<span class="login-logo"></span>
<h1>HELLDIVERS 2</h1>
<p class="login-sub">STRATAGEM TRAINER — SUPER EARTH AUTHORIZED</p>
</div>
<form id="login-form" class="login-form" autocomplete="off">
<div class="field">
<label for="login-username">Helldiver ID</label>
<input id="login-username" type="text" placeholder="Username" autocomplete="username" required>
</div>
<div class="field">
<label for="login-password">Access Code</label>
<input id="login-password" type="password" placeholder="Password" autocomplete="current-password" required>
</div>
<p id="login-error" class="error hidden"></p>
<button type="submit" class="btn btn-accent btn-full">AUTHENTICATE</button>
</form>
</div> </div>
<form id="login-form" class="login-form" autocomplete="off">
<div class="field">
<label for="login-username">Helldiver ID</label>
<input id="login-username" type="text" placeholder="Username" autocomplete="username" required>
</div>
<div class="field">
<label for="login-password">Access Code</label>
<input id="login-password" type="password" placeholder="Password" autocomplete="current-password" required>
</div>
<p id="login-error" class="error hidden"></p>
<button type="submit" class="btn btn-accent btn-full">AUTHENTICATE</button>
</form>
</div> </div>
</div> </div>
@@ -105,6 +128,28 @@
<!-- ── DASHBOARD ─────────────────────────────────────────────── --> <!-- ── DASHBOARD ─────────────────────────────────────────────── -->
<div id="view-dashboard" class="view hidden"> <div id="view-dashboard" class="view hidden">
<div class="dashboard-grid"> <div class="dashboard-grid">
<div class="card dashboard-briefing">
<div class="briefing-copy">
<div class="eyebrow">Mission Briefing</div>
<h2 class="briefing-title">Your command deck for practice, duels, and rank progress.</h2>
<p class="briefing-text" id="dash-status-line">Loading tactical status...</p>
<div class="briefing-pills">
<span class="status-pill">
<span class="status-pill-label">Online</span>
<strong id="dash-online-count">0</strong>
</span>
<span class="status-pill">
<span class="status-pill-label">Daily</span>
<strong id="dash-daily-focus">Pending</strong>
</span>
</div>
</div>
<div class="briefing-actions">
<button class="btn btn-accent" id="btn-briefing-practice">⚡ Quick Start</button>
<button class="btn btn-muted" id="btn-briefing-lobby">⚔ Open Arena</button>
<button class="btn btn-muted" id="btn-briefing-leaderboard">Hall of Heroes</button>
</div>
</div>
<!-- Hero card --> <!-- Hero card -->
<div class="card card-hero dashboard-hero"> <div class="card card-hero dashboard-hero">
@@ -162,14 +207,16 @@
<!-- Recent sessions --> <!-- Recent sessions -->
<div class="card"> <div class="card">
<h3 class="card-title">Recent Sessions</h3> <h3 class="card-title">Recent Sessions</h3>
<table class="data-table"> <div class="table-wrap">
<thead> <table class="data-table">
<tr><th>Stratagem</th><th>Mode</th><th>Score</th><th>Time</th></tr> <thead>
</thead> <tr><th>Stratagem</th><th>Mode</th><th>Score</th><th>Time</th></tr>
<tbody id="dash-recent"> </thead>
<tr><td colspan="4" class="muted">No sessions yet</td></tr> <tbody id="dash-recent">
</tbody> <tr><td colspan="4" class="muted">No sessions yet</td></tr>
</table> </tbody>
</table>
</div>
</div> </div>
</div> </div>
@@ -234,72 +281,80 @@
</div> </div>
</div> </div>
<div class="stratagem-display card"> <div class="practice-focus-shell">
<!-- Stratagem icon --> <div class="practice-focus-meta">
<div class="stratagem-icon-wrap"> <span class="focus-chip">Live Drill</span>
<img id="practice-icon" class="stratagem-icon-lg" src="" alt="" style="display:none"> <span class="focus-chip focus-chip-muted">Stay on target</span>
<div id="practice-icon-fallback" class="stratagem-icon-fallback"></div>
</div> </div>
<div class="stratagem-category" id="practice-category"></div> <div id="practice-feedback" class="gameplay-feedback hidden" aria-live="polite"></div>
<div class="stratagem-name" id="practice-name"></div>
<div class="arrow-sequence" id="practice-sequence"></div>
<div class="practice-hint">Arrow Keys or D-Pad · <kbd>Esc</kbd> to stop</div>
</div>
<!-- Upcoming queue --> <div class="stratagem-display card">
<div class="stratagem-queue" id="practice-queue"></div> <!-- Stratagem icon -->
<div class="stratagem-icon-wrap">
<img id="practice-icon" class="stratagem-icon-lg" src="" alt="" style="display:none">
<div id="practice-icon-fallback" class="stratagem-icon-fallback"></div>
</div>
<div class="stratagem-category" id="practice-category"></div>
<div class="stratagem-name" id="practice-name"></div>
<div class="arrow-sequence arrow-sequence-hero" id="practice-sequence"></div>
<div class="practice-hint">Arrow Keys or D-Pad · <kbd>Esc</kbd> to stop</div>
</div>
<div class="practice-hud"> <!-- Upcoming queue -->
<!-- Timer ring / lives / elapsed --> <div class="stratagem-queue" id="practice-queue"></div>
<div class="hud-item" id="hud-timer-wrap">
<div class="hud-label" id="hud-timer-label">TIME</div> <div class="practice-hud">
<div class="timer-ring-wrap"> <!-- Timer ring / lives / elapsed -->
<svg class="timer-ring-svg" viewBox="0 0 80 80"> <div class="hud-item" id="hud-timer-wrap">
<circle class="timer-ring-bg" cx="40" cy="40" r="35"/> <div class="hud-label" id="hud-timer-label">TIME</div>
<circle class="timer-ring-fill" id="timer-ring-fill" cx="40" cy="40" r="35" <div class="timer-ring-wrap">
stroke-dasharray="219.9" stroke-dashoffset="0"/> <svg class="timer-ring-svg" viewBox="0 0 80 80">
</svg> <circle class="timer-ring-bg" cx="40" cy="40" r="35"/>
<div class="timer-ring-val" id="practice-timer">30</div> <circle class="timer-ring-fill" id="timer-ring-fill" cx="40" cy="40" r="35"
stroke-dasharray="219.9" stroke-dashoffset="0"/>
</svg>
<div class="timer-ring-val" id="practice-timer">30</div>
</div>
</div>
<!-- Lives (endless mode) -->
<div class="hud-item hidden" id="hud-lives-wrap">
<div class="hud-label">LIVES</div>
<div class="lives-display" id="practice-lives">
<span class="life-icon"></span>
<span class="life-icon"></span>
<span class="life-icon"></span>
</div>
</div>
<div class="hud-item">
<div class="hud-label">SCORE</div>
<div class="hud-value" id="practice-score">0</div>
</div>
<div class="hud-item" id="hud-streak-item">
<div class="hud-label">STREAK</div>
<div class="hud-value accent" id="practice-streak">0</div>
<div class="combo-badge hidden" id="practice-combo">×1.0</div>
</div> </div>
</div> </div>
<!-- Lives (endless mode) --> <!-- D-Pad -->
<div class="hud-item hidden" id="hud-lives-wrap"> <div class="dpad" id="practice-dpad">
<div class="hud-label">LIVES</div> <div class="dpad-row">
<div class="lives-display" id="practice-lives"> <button class="dpad-btn" data-dir="up" aria-label="Arrow up"><span class="dir-glyph dir-up" aria-hidden="true"><svg viewBox="0 0 64 64" focusable="false"><path class="dir-line" d="M32 50 L32 18" /><path class="dir-head" d="M32 12 L20 24 H28 V50 H36 V24 H44 Z" /></svg></span></button>
<span class="life-icon"></span> </div>
<span class="life-icon"></span> <div class="dpad-row">
<span class="life-icon"></span> <button class="dpad-btn" data-dir="left" aria-label="Arrow left"><span class="dir-glyph dir-left" aria-hidden="true"><svg viewBox="0 0 64 64" focusable="false"><path class="dir-line" d="M32 50 L32 18" /><path class="dir-head" d="M32 12 L20 24 H28 V50 H36 V24 H44 Z" /></svg></span></button>
<div class="dpad-center"></div>
<button class="dpad-btn" data-dir="right" aria-label="Arrow right"><span class="dir-glyph dir-right" aria-hidden="true"><svg viewBox="0 0 64 64" focusable="false"><path class="dir-line" d="M32 50 L32 18" /><path class="dir-head" d="M32 12 L20 24 H28 V50 H36 V24 H44 Z" /></svg></span></button>
</div>
<div class="dpad-row">
<button class="dpad-btn" data-dir="down" aria-label="Arrow down"><span class="dir-glyph dir-down" aria-hidden="true"><svg viewBox="0 0 64 64" focusable="false"><path class="dir-line" d="M32 50 L32 18" /><path class="dir-head" d="M32 12 L20 24 H28 V50 H36 V24 H44 Z" /></svg></span></button>
</div> </div>
</div> </div>
<div class="hud-item"> <button class="btn btn-muted btn-sm" id="btn-stop-practice">■ Stop Training</button>
<div class="hud-label">SCORE</div>
<div class="hud-value" id="practice-score">0</div>
</div>
<div class="hud-item" id="hud-streak-item">
<div class="hud-label">STREAK</div>
<div class="hud-value accent" id="practice-streak">0</div>
<div class="combo-badge hidden" id="practice-combo">×1.0</div>
</div>
</div> </div>
<!-- D-Pad -->
<div class="dpad" id="practice-dpad">
<div class="dpad-row">
<button class="dpad-btn" data-dir="up" aria-label="Arrow up"></button>
</div>
<div class="dpad-row">
<button class="dpad-btn" data-dir="left" aria-label="Arrow left"></button>
<div class="dpad-center"></div>
<button class="dpad-btn" data-dir="right" aria-label="Arrow right"></button>
</div>
<div class="dpad-row">
<button class="dpad-btn" data-dir="down" aria-label="Arrow down"></button>
</div>
</div>
<button class="btn btn-muted btn-sm" id="btn-stop-practice">■ Stop Training</button>
</div> </div>
</div> </div>
@@ -406,27 +461,38 @@
<div style="text-align:center;margin-bottom:8px"> <div style="text-align:center;margin-bottom:8px">
<img id="match-icon" class="stratagem-icon-md" src="" alt="" style="display:none"> <img id="match-icon" class="stratagem-icon-md" src="" alt="" style="display:none">
</div> </div>
<div class="match-sequences"> <div class="match-focus-shell">
<div class="match-seq-col"> <div id="match-feedback" class="gameplay-feedback hidden" aria-live="polite"></div>
<div class="match-seq-label">YOU</div> <div class="match-sequences">
<div class="arrow-sequence" id="match-me-sequence"></div> <div class="match-seq-col">
<div class="match-seq-label">YOU</div>
<div class="duel-progress">
<div class="duel-progress-bar"><div class="duel-progress-fill" id="match-me-progress-fill" style="width:0%"></div></div>
<div class="duel-progress-text" id="match-me-progress-text">0 / 0</div>
</div>
<div class="arrow-sequence arrow-sequence-hero arrow-sequence-duel" id="match-me-sequence"></div>
</div>
<div class="match-seq-col">
<div class="match-seq-label">OPPONENT</div>
<div class="duel-progress">
<div class="duel-progress-bar"><div class="duel-progress-fill duel-progress-fill-opp" id="match-opp-progress-fill" style="width:0%"></div></div>
<div class="duel-progress-text" id="match-opp-progress-text">0 / 0</div>
</div>
<div class="arrow-sequence arrow-sequence-hero arrow-sequence-duel" id="match-opp-sequence"></div>
</div>
</div> </div>
<div class="match-seq-col"> <div class="dpad" id="match-dpad">
<div class="match-seq-label">OPPONENT</div> <div class="dpad-row">
<div class="arrow-sequence" id="match-opp-sequence"></div> <button class="dpad-btn" data-dir="up" aria-label="Arrow up"><span class="dir-glyph dir-up" aria-hidden="true"><svg viewBox="0 0 64 64" focusable="false"><path class="dir-line" d="M32 50 L32 18" /><path class="dir-head" d="M32 12 L20 24 H28 V50 H36 V24 H44 Z" /></svg></span></button>
</div> </div>
</div> <div class="dpad-row">
<div class="dpad" id="match-dpad"> <button class="dpad-btn" data-dir="left" aria-label="Arrow left"><span class="dir-glyph dir-left" aria-hidden="true"><svg viewBox="0 0 64 64" focusable="false"><path class="dir-line" d="M32 50 L32 18" /><path class="dir-head" d="M32 12 L20 24 H28 V50 H36 V24 H44 Z" /></svg></span></button>
<div class="dpad-row"> <div class="dpad-center"></div>
<button class="dpad-btn" data-dir="up" aria-label="Arrow up"></button> <button class="dpad-btn" data-dir="right" aria-label="Arrow right"><span class="dir-glyph dir-right" aria-hidden="true"><svg viewBox="0 0 64 64" focusable="false"><path class="dir-line" d="M32 50 L32 18" /><path class="dir-head" d="M32 12 L20 24 H28 V50 H36 V24 H44 Z" /></svg></span></button>
</div> </div>
<div class="dpad-row"> <div class="dpad-row">
<button class="dpad-btn" data-dir="left" aria-label="Arrow left"></button> <button class="dpad-btn" data-dir="down" aria-label="Arrow down"><span class="dir-glyph dir-down" aria-hidden="true"><svg viewBox="0 0 64 64" focusable="false"><path class="dir-line" d="M32 50 L32 18" /><path class="dir-head" d="M32 12 L20 24 H28 V50 H36 V24 H44 Z" /></svg></span></button>
<div class="dpad-center"></div> </div>
<button class="dpad-btn" data-dir="right" aria-label="Arrow right"></button>
</div>
<div class="dpad-row">
<button class="dpad-btn" data-dir="down" aria-label="Arrow down"></button>
</div> </div>
</div> </div>
</div> </div>
@@ -451,14 +517,16 @@
</div> </div>
<div class="card"> <div class="card">
<table class="data-table"> <div class="table-wrap">
<thead id="leaderboard-thead"> <table class="data-table">
<tr><th>#</th><th>Helldiver</th><th>Rank</th><th>Total Score</th><th>Sessions</th><th>Match W/Total</th></tr> <thead id="leaderboard-thead">
</thead> <tr><th>#</th><th>Helldiver</th><th>Rank</th><th>Total Score</th><th>Sessions</th><th>Match W/Total</th></tr>
<tbody id="leaderboard-table-body"> </thead>
<tr><td colspan="6" class="muted">Loading...</td></tr> <tbody id="leaderboard-table-body">
</tbody> <tr><td colspan="6" class="muted">Loading...</td></tr>
</table> </tbody>
</table>
</div>
</div> </div>
</div> </div>
@@ -466,6 +534,29 @@
<div id="view-admin" class="view hidden"> <div id="view-admin" class="view hidden">
<div class="page-header"> <div class="page-header">
<h2 class="page-title">ADMIN PANEL</h2> <h2 class="page-title">ADMIN PANEL</h2>
<p class="page-sub">User control, password operations, role management, and live system activity</p>
</div>
<div class="admin-overview" id="admin-overview">
<div class="card admin-stat-card">
<div class="card-title">Helldivers</div>
<div class="admin-stat-value" id="admin-total-users"></div>
<div class="admin-stat-meta">Registered accounts</div>
</div>
<div class="card admin-stat-card">
<div class="card-title">Admins</div>
<div class="admin-stat-value" id="admin-total-admins"></div>
<div class="admin-stat-meta">Users with command access</div>
</div>
<div class="card admin-stat-card">
<div class="card-title">Temp Passwords</div>
<div class="admin-stat-value" id="admin-temp-passwords"></div>
<div class="admin-stat-meta">Accounts requiring password change</div>
</div>
<div class="card admin-stat-card">
<div class="card-title">Practice Sessions</div>
<div class="admin-stat-value" id="admin-practice-sessions"></div>
<div class="admin-stat-meta">Total runs recorded</div>
</div>
</div> </div>
<div class="admin-layout"> <div class="admin-layout">
<div class="card"> <div class="card">
@@ -484,12 +575,35 @@
<p id="admin-error" class="error hidden"></p> <p id="admin-error" class="error hidden"></p>
<button class="btn btn-accent" id="btn-create-user">Create User</button> <button class="btn btn-accent" id="btn-create-user">Create User</button>
<div id="new-pw-display" class="pw-display hidden"></div> <div id="new-pw-display" class="pw-display hidden"></div>
<div class="divider"></div>
<div class="admin-spotlight">
<div class="admin-spotlight-label">Top performer</div>
<div class="admin-spotlight-value" id="admin-top-user"></div>
<div class="admin-spotlight-meta" id="admin-top-user-meta">Loading tactical data...</div>
</div>
</div> </div>
<div class="card"> <div class="card">
<h3 class="card-title">Active Helldivers</h3> <div class="admin-users-header">
<h3 class="card-title">User Management</h3>
<input id="admin-user-search" class="admin-search" type="text" placeholder="Search user">
</div>
<div id="admin-users" class="admin-user-list">Loading...</div> <div id="admin-users" class="admin-user-list">Loading...</div>
</div> </div>
</div> </div>
<div class="admin-activity-grid">
<div class="card">
<h3 class="card-title">Recent Practice Activity</h3>
<div id="admin-recent-practice" class="admin-activity-list">
<span class="muted">Loading...</span>
</div>
</div>
<div class="card">
<h3 class="card-title">Recent Matches</h3>
<div id="admin-recent-matches" class="admin-activity-list">
<span class="muted">Loading...</span>
</div>
</div>
</div>
</div> </div>
<!-- ── PRACTICE SETTINGS MODAL ──────────────────────────────── --> <!-- ── PRACTICE SETTINGS MODAL ──────────────────────────────── -->
@@ -566,6 +680,9 @@
</div> </div>
<div class="summary-grid" id="summary-grid"></div> <div class="summary-grid" id="summary-grid"></div>
<div style="height:1px;background:var(--border);margin:16px 0"></div> <div style="height:1px;background:var(--border);margin:16px 0"></div>
<h4 style="font-family:var(--font-heading);font-size:0.85rem;letter-spacing:.06em;color:var(--text-muted);margin-bottom:8px">PERFORMANCE ANALYSIS</h4>
<div id="summary-insights" class="summary-insights"></div>
<div style="height:1px;background:var(--border);margin:16px 0"></div>
<h4 style="font-family:var(--font-heading);font-size:0.85rem;letter-spacing:.06em;color:var(--text-muted);margin-bottom:8px">TOP STRATAGEMS</h4> <h4 style="font-family:var(--font-heading);font-size:0.85rem;letter-spacing:.06em;color:var(--text-muted);margin-bottom:8px">TOP STRATAGEMS</h4>
<div id="summary-top-stratagems"></div> <div id="summary-top-stratagems"></div>
<div class="modal-actions"> <div class="modal-actions">
@@ -577,10 +694,11 @@
<!-- ── Danger vignette (≤5s) ──────────────────────────────────── --> <!-- ── Danger vignette (≤5s) ──────────────────────────────────── -->
<div id="danger-vignette" class="danger-vignette hidden"></div> <div id="danger-vignette" class="danger-vignette hidden"></div>
<div id="gameplay-countdown" class="gameplay-countdown hidden" aria-live="assertive"></div>
<!-- Toast notifications --> <!-- Toast notifications -->
<div id="toast-container"></div> <div id="toast-container"></div>
<script src="app.js"></script> <script src="app.js?v=1.0.0"></script>
</body> </body>
</html> </html>
+818 -138
View File
File diff suppressed because it is too large Load Diff
+135
View File
@@ -0,0 +1,135 @@
#!/usr/bin/env node
// Downloads stratagem icons from helldivers.wiki.gg
// Saves as public/icons/<slug>.svg (same filenames as before)
import { createWriteStream, mkdirSync } from 'fs';
import { join, dirname } from 'path';
import { fileURLToPath } from 'url';
import https from 'https';
const __dirname = dirname(fileURLToPath(import.meta.url));
const OUT_DIR = join(__dirname, '..', 'public', 'icons');
const BASE_URL = 'https://helldivers.wiki.gg/images/';
mkdirSync(OUT_DIR, { recursive: true });
// Maps our stratagem slug → wiki filename (without _Stratagem_Icon.svg suffix)
const WIKI_MAP = {
reinforce: 'Reinforce',
resupply: 'Resupply',
sos_beacon: 'SOS_Beacon',
hellbomb: 'Hellbomb',
seaf_artillery: 'SEAF_Artillery',
upload_data: 'Start_Upload',
eagle_rearm: 'Eagle_Rearm',
prospecting_drill: 'Prospecting_Drill',
orbital_gatling_barrage: 'Orbital_Gatling_Barrage',
orbital_airburst_strike: 'Orbital_Airburst_Strike',
orbital_120mm_he_barrage: 'Orbital_120mm_HE_Barrage',
orbital_380mm_he_barrage: 'Orbital_380mm_HE_Barrage',
orbital_walking_barrage: 'Orbital_Walking_Barrage',
orbital_laser: 'Orbital_Laser',
orbital_railcannon_strike: 'Orbital_Railcannon_Strike',
orbital_precision_strike: 'Orbital_Precision_Strike',
orbital_gas_strike: 'Orbital_Gas_Strike',
orbital_ems_strike: 'Orbital_EMS_Strike',
orbital_smoke_strike: 'Orbital_Smoke_Strike',
orbital_illumination_flare: 'Orbital_Illumination_Flare',
eagle_strafing_run: 'Eagle_Strafing_Run',
eagle_airstrike: 'Eagle_Airstrike',
eagle_cluster_bomb: 'Eagle_Cluster_Bomb',
eagle_napalm_airstrike: 'Eagle_Napalm_Airstrike',
lift_850_jump_pack: 'Jump_Pack',
eagle_smoke_strike: 'Eagle_Smoke_Strike',
eagle_110mm_rocket_pods: 'Eagle_110mm_Rocket_Pods',
eagle_500kg_bomb: 'Eagle_500kg_Bomb',
patriot_exosuit: 'Patriot_Exosuit',
emancipator_exosuit: 'Emancipator_Exosuit',
tesla_tower: 'Tesla_Tower',
shield_generator_relay: 'Shield_Generator_Relay',
machine_gun: 'Machine_Gun',
anti_materiel_rifle: 'Anti-Materiel_Rifle',
stalwart: 'Stalwart',
expendable_anti_tank: 'Expendable_Anti-Tank',
recoilless_rifle: 'Recoilless_Rifle',
flamethrower: 'Flamethrower',
autocannon: 'Autocannon',
heavy_machine_gun: 'Heavy_Machine_Gun',
airburst_rocket_launcher: 'Airburst_Rocket_Launcher',
commando: 'Commando',
railgun: 'Railgun',
spear: 'Spear',
quasar_cannon: 'Quasar_Cannon',
arc_thrower: 'Arc_Thrower',
laser_cannon: 'Laser_Cannon',
grenade_launcher: 'Grenade_Launcher',
supply_pack: 'Supply_Pack',
guard_dog_rover: 'Rover',
guard_dog: 'Guard_Dog',
ballistic_shield_backpack: 'Ballistic_Shield_Backpack',
shield_generator_pack: 'Shield_Generator_Pack',
directional_shield: 'Directional_Shield',
hmg_emplacement: 'HMG_Emplacement',
anti_personnel_minefield: 'Anti-Personnel_Minefield',
incendiary_mines: 'Incendiary_Mines',
anti_tank_mines: 'Anti-Tank_Mines',
machine_gun_sentry: 'Machine_Gun_Sentry',
gatling_sentry: 'Gatling_Sentry',
mortar_sentry: 'Mortar_Sentry',
autocannon_sentry: 'Autocannon_Sentry',
rocket_sentry: 'Rocket_Sentry',
ems_mortar_sentry: 'EMS_Mortar_Sentry',
anti_tank_emplacement: 'Anti-Tank_Emplacement',
};
function download(url, dest) {
return new Promise((resolve, reject) => {
const file = createWriteStream(dest);
const request = (targetUrl) => {
https.get(targetUrl, { headers: { 'User-Agent': 'helldivers-trainer-bot/1.0' } }, (res) => {
if (res.statusCode === 301 || res.statusCode === 302) {
file.destroy();
return request(res.headers.location);
}
if (res.statusCode !== 200) {
file.destroy();
return reject(new Error(`HTTP ${res.statusCode}`));
}
res.pipe(file);
file.on('finish', () => file.close(resolve));
}).on('error', reject);
};
request(url);
});
}
async function main() {
const entries = Object.entries(WIKI_MAP);
let ok = 0, fail = 0;
for (const [slug, wikiName] of entries) {
const filename = wikiName + '_Stratagem_Icon.svg';
const url = BASE_URL + filename;
const dest = join(OUT_DIR, slug + '.svg');
try {
await download(url, dest);
console.log(`${slug}`);
ok++;
} catch (err) {
console.error(`${slug} (${err.message})`);
fail++;
}
}
console.log(`\nDone: ${ok} ok, ${fail} failed`);
}
main();
-6
View File
@@ -119,12 +119,6 @@ async function downloadAll() {
const slug = name.replace(/[^a-z0-9]/gi, '_').toLowerCase(); const slug = name.replace(/[^a-z0-9]/gi, '_').toLowerCase();
const outPath = path.join(ICONS_DIR, slug + '.svg'); const outPath = path.join(ICONS_DIR, slug + '.svg');
if (fs.existsSync(outPath)) {
console.log(` ✓ skip ${name}`);
ok++;
continue;
}
// Build GitHub raw URL (spaces → %20) // Build GitHub raw URL (spaces → %20)
const encoded = encodeURIComponent(folder) + '/' + encodeURIComponent(file + '.svg'); const encoded = encodeURIComponent(folder) + '/' + encodeURIComponent(file + '.svg');
const url = `${BASE_URL}/${encoded}`; const url = `${BASE_URL}/${encoded}`;
+57
View File
@@ -0,0 +1,57 @@
#!/usr/bin/env node
const fs = require('fs');
const path = require('path');
const repoRoot = process.cwd();
const pkgPath = path.join(repoRoot, 'package.json');
const publicDir = path.join(repoRoot, 'public');
if (!fs.existsSync(pkgPath) || !fs.existsSync(publicDir)) process.exit(0);
const pkg = JSON.parse(fs.readFileSync(pkgPath, 'utf8'));
const version = pkg.version;
if (!version) {
console.error('package.json version missing');
process.exit(1);
}
function walkHtmlFiles(dir) {
const out = [];
for (const entry of fs.readdirSync(dir, { withFileTypes: true })) {
const full = path.join(dir, entry.name);
if (entry.isDirectory()) out.push(...walkHtmlFiles(full));
else if (entry.isFile() && entry.name.endsWith('.html')) out.push(full);
}
return out;
}
function isLocalAsset(rawUrl) {
return !/^(?:[a-z]+:|\/\/|#)/i.test(rawUrl);
}
function withVersion(rawUrl) {
const [baseWithQuery, hash = ''] = rawUrl.split('#');
const [pathname, query = ''] = baseWithQuery.split('?');
const params = new URLSearchParams(query);
params.set('v', version);
const qs = params.toString();
return pathname + (qs ? '?' + qs : '') + (hash ? '#' + hash : '');
}
const htmlFiles = walkHtmlFiles(publicDir);
let changed = 0;
for (const file of htmlFiles) {
let content = fs.readFileSync(file, 'utf8');
const next = content
.replace(/(<link\b[^>]*href=["'])([^"']+\.css(?:\?[^"']*)?)(["'][^>]*>)/gi, (m, p1, url, p3) => {
return isLocalAsset(url) ? p1 + withVersion(url) + p3 : m;
})
.replace(/(<script\b(?![^>]*type=["']application\/json["'])[^>]*\bsrc=["'])([^"']+\.js(?:\?[^"']*)?)(["'][^>]*>\s*<\/script>)/gi, (m, p1, url, p3) => {
return isLocalAsset(url) ? p1 + withVersion(url) + p3 : m;
});
if (next !== content) {
fs.writeFileSync(file, next);
changed += 1;
}
}
if (changed > 0) console.log('Synced versioned assets in ' + changed + ' HTML file(s).');
+73
View File
@@ -0,0 +1,73 @@
#!/usr/bin/env node
const fs = require('fs');
const path = require('path');
const cp = require('child_process');
const repoRoot = process.cwd();
const pkgPath = path.join(repoRoot, 'package.json');
const publicDir = path.join(repoRoot, 'public');
if (!fs.existsSync(pkgPath) || !fs.existsSync(publicDir)) process.exit(0);
const pkg = JSON.parse(fs.readFileSync(pkgPath, 'utf8'));
const version = pkg.version;
const failures = [];
function git(args) {
return cp.execFileSync('git', args, { cwd: repoRoot, encoding: 'utf8' }).trim();
}
function walkHtmlFiles(dir) {
const out = [];
for (const entry of fs.readdirSync(dir, { withFileTypes: true })) {
const full = path.join(dir, entry.name);
if (entry.isDirectory()) out.push(...walkHtmlFiles(full));
else if (entry.isFile() && entry.name.endsWith('.html')) out.push(full);
}
return out;
}
function isLocalAsset(rawUrl) {
return !/^(?:[a-z]+:|\/\/|#)/i.test(rawUrl);
}
for (const file of walkHtmlFiles(publicDir)) {
const rel = path.relative(repoRoot, file);
const content = fs.readFileSync(file, 'utf8');
for (const match of content.matchAll(/<link\b[^>]*href=["']([^"']+\.css(?:\?[^"']*)?)["']/gi)) {
const url = match[1];
if (isLocalAsset(url) && !new URLSearchParams((url.split('?')[1] || '')).get('v')?.includes(version)) {
failures.push(rel + ': stylesheet version does not match package.json');
}
}
for (const match of content.matchAll(/<script\b(?![^>]*type=["']application\/json["'])[^>]*\bsrc=["']([^"']+\.js(?:\?[^"']*)?)["']/gi)) {
const url = match[1];
if (isLocalAsset(url) && !new URLSearchParams((url.split('?')[1] || '')).get('v')?.includes(version)) {
failures.push(rel + ': script version does not match package.json');
}
}
}
const staged = git(['diff', '--cached', '--name-only', '--diff-filter=ACMR']).split(/\n+/).filter(Boolean);
const codeTouched = staged.some(file => /^(public\/.*\.(html|css|js)|server\.js|package\.json|package-lock\.json)$/.test(file));
const projectMapTouched = staged.includes('PROJECT_MAP.md');
const changelogTouched = staged.includes('CHANGELOG.md');
if (codeTouched && !changelogTouched) failures.push('CHANGELOG.md must be staged when app code, assets, or version files change.');
if (codeTouched && fs.existsSync(path.join(repoRoot, 'PROJECT_MAP.md')) && !projectMapTouched) {
failures.push('PROJECT_MAP.md must be staged when app code or frontend state/routes change.');
}
const stagedPackageDiff = staged.includes('package.json')
? git(['diff', '--cached', '--', 'package.json'])
: '';
if (stagedPackageDiff.includes('"version"') && fs.existsSync(path.join(repoRoot, 'CHANGELOG.md'))) {
const changelog = fs.readFileSync(path.join(repoRoot, 'CHANGELOG.md'), 'utf8');
if (!changelog.includes('## [' + version + ']') && !changelog.includes('## [Unreleased]')) {
failures.push('CHANGELOG.md must mention the current package.json version or contain an [Unreleased] section.');
}
}
if (failures.length) {
console.error('Release verification failed:');
for (const failure of failures) console.error('- ' + failure);
process.exit(1);
}
+105 -1
View File
@@ -311,7 +311,22 @@ app.post('/api/change-password', requireAuth, async (req, res) => {
// ── User management (admin) ─────────────────────────────────────────────────── // ── User management (admin) ───────────────────────────────────────────────────
app.get('/api/users', requireAuth, requireAdmin, (req, res) => { app.get('/api/users', requireAuth, requireAdmin, (req, res) => {
const users = db.prepare('SELECT username, role, mustChange FROM users ORDER BY username').all(); const users = db.prepare(`
SELECT
u.username,
u.role,
u.mustChange,
COALESCE(u.elo, 1000) AS elo,
COALESCE(ps.sessions, 0) AS sessions,
ps.lastPlayed AS lastPlayed
FROM users u
LEFT JOIN (
SELECT username, COUNT(*) AS sessions, MAX(created_at) AS lastPlayed
FROM practice_sessions
GROUP BY username
) ps ON ps.username = u.username
ORDER BY u.username
`).all();
res.json(users.map(u => ({ ...u, mustChange: u.mustChange === 1 }))); res.json(users.map(u => ({ ...u, mustChange: u.mustChange === 1 })));
}); });
@@ -347,6 +362,95 @@ app.delete('/api/users/:username', requireAuth, requireAdmin, (req, res) => {
res.json({ ok: true }); res.json({ ok: true });
}); });
app.post('/api/users/:username/reset-password', requireAuth, requireAdmin, async (req, res) => {
const { username } = req.params;
const user = db.prepare('SELECT username FROM users WHERE username = ?').get(username);
if (!user) return res.status(404).json({ error: 'User not found' });
const tempPw = crypto.randomBytes(6).toString('hex');
const hash = await bcrypt.hash(tempPw, 12);
db.prepare('UPDATE users SET hash = ?, mustChange = 1 WHERE username = ?').run(hash, username);
res.json({ ok: true, tempPassword: tempPw });
});
app.patch('/api/users/:username', requireAuth, requireAdmin, (req, res) => {
const { username } = req.params;
const { role } = req.body || {};
if (!['admin', 'user'].includes(role)) return res.status(400).json({ error: 'Valid role required' });
const user = db.prepare('SELECT username, role FROM users WHERE username = ?').get(username);
if (!user) return res.status(404).json({ error: 'User not found' });
if (username === req.session.user && role !== 'admin') {
return res.status(400).json({ error: 'You cannot demote yourself' });
}
if (user.role === 'admin' && role !== 'admin') {
const adminCount = db.prepare("SELECT COUNT(*) AS c FROM users WHERE role = 'admin'").get().c;
if (adminCount <= 1) return res.status(400).json({ error: 'Cannot demote the last admin' });
}
db.prepare('UPDATE users SET role = ? WHERE username = ?').run(role, username);
res.json({ ok: true });
});
app.get('/api/admin/overview', requireAuth, requireAdmin, (req, res) => {
const totals = db.prepare(`
SELECT
COUNT(*) AS users,
SUM(CASE WHEN role = 'admin' THEN 1 ELSE 0 END) AS admins,
SUM(CASE WHEN mustChange = 1 THEN 1 ELSE 0 END) AS tempPasswords
FROM users
`).get();
const activity = db.prepare(`
SELECT
(SELECT COUNT(*) FROM practice_sessions) AS practiceSessions,
(SELECT COUNT(*) FROM matches) AS matches,
(SELECT COALESCE(SUM(score), 0) FROM practice_sessions) AS totalPracticeScore
`).get();
const topUser = db.prepare(`
SELECT username, COUNT(*) AS sessions, COALESCE(SUM(score), 0) AS totalScore
FROM practice_sessions
GROUP BY username
ORDER BY totalScore DESC, sessions DESC
LIMIT 1
`).get();
const latestActivity = db.prepare(`
SELECT username, stratagem, score, created_at
FROM practice_sessions
ORDER BY created_at DESC
LIMIT 1
`).get();
res.json({
totals,
activity,
topUser: topUser || null,
latestActivity: latestActivity || null,
});
});
app.get('/api/admin/activity', requireAuth, requireAdmin, (req, res) => {
const practice = db.prepare(`
SELECT username, stratagem, score, mode, created_at
FROM practice_sessions
ORDER BY created_at DESC
LIMIT 10
`).all();
const matches = db.prepare(`
SELECT winner, loser, winner_rounds, loser_rounds, created_at
FROM matches
ORDER BY created_at DESC
LIMIT 10
`).all();
res.json({ practice, matches });
});
// ── Leaderboard cache ───────────────────────────────────────────────────────── // ── Leaderboard cache ─────────────────────────────────────────────────────────
let lbCache = null; let lbCache = null;
let lbCacheTime = 0; let lbCacheTime = 0;