Compare commits

..

56 Commits

Author SHA1 Message Date
dgtlmoon
9e2acadb7e 0.52.7
Some checks failed
Build and push containers / metadata (push) Has been cancelled
Build and push containers / build-push-containers (push) Has been cancelled
Publish Python 🐍distribution 📦 to PyPI and TestPyPI / Build distribution 📦 (push) Has been cancelled
Publish Python 🐍distribution 📦 to PyPI and TestPyPI / Test the built package works basically. (push) Has been cancelled
Publish Python 🐍distribution 📦 to PyPI and TestPyPI / Publish Python 🐍 distribution 📦 to PyPI (push) Has been cancelled
ChangeDetection.io App Test / lint-code (push) Has been cancelled
ChangeDetection.io App Test / test-application-3-10 (push) Has been cancelled
ChangeDetection.io App Test / test-application-3-11 (push) Has been cancelled
ChangeDetection.io App Test / test-application-3-12 (push) Has been cancelled
ChangeDetection.io App Test / test-application-3-13 (push) Has been cancelled
2026-01-19 09:37:01 +01:00
吾爱分享
48da93b4ec Fix zh PO duplicates and complete new translations. (#3773) 2026-01-19 09:35:52 +01:00
dgtlmoon
0c1adc8906 Lots of translation updates (#3772)
Some checks failed
Build and push containers / metadata (push) Has been cancelled
Build and push containers / build-push-containers (push) Has been cancelled
Publish Python 🐍distribution 📦 to PyPI and TestPyPI / Build distribution 📦 (push) Has been cancelled
ChangeDetection.io App Test / lint-code (push) Has been cancelled
Publish Python 🐍distribution 📦 to PyPI and TestPyPI / Test the built package works basically. (push) Has been cancelled
Publish Python 🐍distribution 📦 to PyPI and TestPyPI / Publish Python 🐍 distribution 📦 to PyPI (push) Has been cancelled
ChangeDetection.io App Test / test-application-3-10 (push) Has been cancelled
ChangeDetection.io App Test / test-application-3-11 (push) Has been cancelled
ChangeDetection.io App Test / test-application-3-12 (push) Has been cancelled
ChangeDetection.io App Test / test-application-3-13 (push) Has been cancelled
2026-01-17 22:24:23 +01:00
dgtlmoon
9e5a0a0209 UI - Global "mute" and "pause" buttons on main menu, move "Backups" to "Settings" (#3769)
Some checks failed
Build and push containers / metadata (push) Has been cancelled
Build and push containers / build-push-containers (push) Has been cancelled
Publish Python 🐍distribution 📦 to PyPI and TestPyPI / Build distribution 📦 (push) Has been cancelled
Publish Python 🐍distribution 📦 to PyPI and TestPyPI / Test the built package works basically. (push) Has been cancelled
Publish Python 🐍distribution 📦 to PyPI and TestPyPI / Publish Python 🐍 distribution 📦 to PyPI (push) Has been cancelled
ChangeDetection.io App Test / lint-code (push) Has been cancelled
ChangeDetection.io App Test / test-application-3-10 (push) Has been cancelled
ChangeDetection.io App Test / test-application-3-11 (push) Has been cancelled
ChangeDetection.io App Test / test-application-3-12 (push) Has been cancelled
ChangeDetection.io App Test / test-application-3-13 (push) Has been cancelled
ChangeDetection.io Container Build Test / Build linux/amd64 (alpine) (push) Has been cancelled
ChangeDetection.io Container Build Test / Build linux/arm64 (alpine) (push) Has been cancelled
ChangeDetection.io Container Build Test / Build linux/amd64 (main) (push) Has been cancelled
ChangeDetection.io Container Build Test / Build linux/arm/v7 (main) (push) Has been cancelled
ChangeDetection.io Container Build Test / Build linux/arm/v8 (main) (push) Has been cancelled
ChangeDetection.io Container Build Test / Build linux/arm64 (main) (push) Has been cancelled
2026-01-17 18:20:29 +01:00
dgtlmoon
9b96689072 API & UI - Recheck all - Dont requeue existing queued or processing watches. (#3770) 2026-01-17 18:20:22 +01:00
dgtlmoon
5e5674f48d Non blocking improvements (#3767)
* Non blocking improvements

* Test fix

* Background thread re-queue

* Nonblockimg improvements, run tasks in background, add warning about CPU cores

* Misc fixes
2026-01-17 17:25:18 +01:00
dgtlmoon
272e68ad2e Improvements to deterministic fix (false triggers) (#3766) 2026-01-17 16:12:32 +01:00
dgtlmoon
01e06979d8 Run "clear all history" in background thread to prevent blocking (#3765) 2026-01-17 15:34:21 +01:00
dgtlmoon
e45c77d51d Test - Adding missing test 2026-01-17 15:33:34 +01:00
dgtlmoon
bee1130c6e Important fix for possible wrong detection of changes under high-concurrency setups (many many fetch workers) 2026-01-17 14:45:23 +01:00
dgtlmoon
5f8448d0e2 Language updates (#3764) 2026-01-17 14:11:57 +01:00
dgtlmoon
9438d38dc6 Queues and Scheduler - No need to add imported items to the check queue, the scheduler will do this #3762 (#3763), CPU usage improvements.
* No need to add imported items to the check queue, the scheduler will do this #3762

* Tests - Faster recheck/reschedule loop under pytest environment

* More wait time under test

* Bunch up some tests a little

* fix typo

* woops

* If they want to queue one thats already running, thats up to them.

* WIP

* Fixing queue limit size

* Increase max queue size and many CPU performance fixes
2026-01-17 13:43:24 +01:00
dgtlmoon
d0c66758c2 UI - Fixing link to scheduler help/tutorial page.
Some checks failed
Build and push containers / metadata (push) Has been cancelled
Build and push containers / build-push-containers (push) Has been cancelled
Publish Python 🐍distribution 📦 to PyPI and TestPyPI / Build distribution 📦 (push) Has been cancelled
Publish Python 🐍distribution 📦 to PyPI and TestPyPI / Test the built package works basically. (push) Has been cancelled
Publish Python 🐍distribution 📦 to PyPI and TestPyPI / Publish Python 🐍 distribution 📦 to PyPI (push) Has been cancelled
ChangeDetection.io App Test / lint-code (push) Has been cancelled
ChangeDetection.io App Test / test-application-3-10 (push) Has been cancelled
ChangeDetection.io App Test / test-application-3-11 (push) Has been cancelled
ChangeDetection.io App Test / test-application-3-12 (push) Has been cancelled
ChangeDetection.io App Test / test-application-3-13 (push) Has been cancelled
2026-01-16 19:14:29 +01:00
dgtlmoon
9e8a9d5907 Manual update of DE language (and recompile all languages) 2026-01-16 18:47:01 +01:00
dgtlmoon
7449be39fb Recompile CSS 2026-01-16 18:40:16 +01:00
dgtlmoon
e9f3d0bce4 UI - Mobile - Empty page watches message and layout improvements (#3760) 2026-01-16 17:59:52 +01:00
dgtlmoon
2abc8aa9b4 UI - CSS - Give dark-mode switching a soft transition 2026-01-16 17:45:33 +01:00
dgtlmoon
69b70a2a07 Edit - More reliable fetch of watch on test (usually affects tests) 2026-01-16 16:52:35 +01:00
吾爱分享
0c42bcb8d6 Manual polish for several translations in the zh locale. (#3757)
Some checks failed
Build and push containers / metadata (push) Has been cancelled
Build and push containers / build-push-containers (push) Has been cancelled
Publish Python 🐍distribution 📦 to PyPI and TestPyPI / Build distribution 📦 (push) Has been cancelled
Publish Python 🐍distribution 📦 to PyPI and TestPyPI / Test the built package works basically. (push) Has been cancelled
Publish Python 🐍distribution 📦 to PyPI and TestPyPI / Publish Python 🐍 distribution 📦 to PyPI (push) Has been cancelled
ChangeDetection.io App Test / lint-code (push) Has been cancelled
ChangeDetection.io App Test / test-application-3-10 (push) Has been cancelled
ChangeDetection.io App Test / test-application-3-11 (push) Has been cancelled
ChangeDetection.io App Test / test-application-3-12 (push) Has been cancelled
ChangeDetection.io App Test / test-application-3-13 (push) Has been cancelled
ChangeDetection.io Container Build Test / Build linux/amd64 (alpine) (push) Has been cancelled
ChangeDetection.io Container Build Test / Build linux/arm64 (alpine) (push) Has been cancelled
ChangeDetection.io Container Build Test / Build linux/amd64 (main) (push) Has been cancelled
ChangeDetection.io Container Build Test / Build linux/arm/v7 (main) (push) Has been cancelled
ChangeDetection.io Container Build Test / Build linux/arm/v8 (main) (push) Has been cancelled
ChangeDetection.io Container Build Test / Build linux/arm64 (main) (push) Has been cancelled
2026-01-16 10:50:31 +01:00
dgtlmoon
091c708a28 Fix for old selenium 3 (#3748 #3756), however be sure to use selenium 4. 2026-01-16 10:30:26 +01:00
dgtlmoon
084be9c990 Languages - Recompile languages, small fix for 'de'. 2026-01-16 09:50:15 +01:00
dependabot[bot]
6db1085337 Bump elementpath from 5.0.4 to 5.1.0 (#3754) 2026-01-16 09:22:10 +01:00
吾爱分享
66553e106d Update zh translations with improved, consistent Simplified Chinese UI copy. (#3752) 2026-01-16 09:21:29 +01:00
dependabot[bot]
5b01dbd9f8 Bump apprise from 1.9.5 to 1.9.6 (#3753) 2026-01-16 09:09:02 +01:00
dgtlmoon
c86f214fc3 0.52.6
Some checks failed
Build and push containers / metadata (push) Has been cancelled
Build and push containers / build-push-containers (push) Has been cancelled
Publish Python 🐍distribution 📦 to PyPI and TestPyPI / Build distribution 📦 (push) Has been cancelled
Publish Python 🐍distribution 📦 to PyPI and TestPyPI / Test the built package works basically. (push) Has been cancelled
Publish Python 🐍distribution 📦 to PyPI and TestPyPI / Publish Python 🐍 distribution 📦 to PyPI (push) Has been cancelled
ChangeDetection.io App Test / lint-code (push) Has been cancelled
ChangeDetection.io App Test / test-application-3-10 (push) Has been cancelled
ChangeDetection.io App Test / test-application-3-11 (push) Has been cancelled
ChangeDetection.io App Test / test-application-3-12 (push) Has been cancelled
ChangeDetection.io App Test / test-application-3-13 (push) Has been cancelled
2026-01-15 22:28:58 +01:00
dgtlmoon
32149640d9 Selenium fetcher - Small fix for #3748 RGB error on transparent screenshots or similar (#3749) 2026-01-15 20:56:53 +01:00
dgtlmoon
15f16455fc UI - Show queue size above watch table in realtime
Some checks failed
Build and push containers / metadata (push) Has been cancelled
Build and push containers / build-push-containers (push) Has been cancelled
Publish Python 🐍distribution 📦 to PyPI and TestPyPI / Build distribution 📦 (push) Has been cancelled
Publish Python 🐍distribution 📦 to PyPI and TestPyPI / Test the built package works basically. (push) Has been cancelled
Publish Python 🐍distribution 📦 to PyPI and TestPyPI / Publish Python 🐍 distribution 📦 to PyPI (push) Has been cancelled
ChangeDetection.io App Test / lint-code (push) Has been cancelled
ChangeDetection.io App Test / test-application-3-10 (push) Has been cancelled
ChangeDetection.io App Test / test-application-3-11 (push) Has been cancelled
ChangeDetection.io App Test / test-application-3-12 (push) Has been cancelled
ChangeDetection.io App Test / test-application-3-13 (push) Has been cancelled
ChangeDetection.io Container Build Test / Build linux/amd64 (alpine) (push) Has been cancelled
ChangeDetection.io Container Build Test / Build linux/arm64 (alpine) (push) Has been cancelled
ChangeDetection.io Container Build Test / Build linux/amd64 (main) (push) Has been cancelled
ChangeDetection.io Container Build Test / Build linux/arm/v7 (main) (push) Has been cancelled
ChangeDetection.io Container Build Test / Build linux/arm/v8 (main) (push) Has been cancelled
ChangeDetection.io Container Build Test / Build linux/arm64 (main) (push) Has been cancelled
2026-01-15 17:28:09 +01:00
dgtlmoon
15cdfac9d9 0.52.5 2026-01-15 14:07:09 +01:00
dgtlmoon
04de397916 Revert sub-process brotli saving because it could fork-bomb/use up too many system resources (#3747) 2026-01-15 13:56:08 +01:00
dgtlmoon
4643082c5b i18n: Recompile zh_Hant_TW/LC_MESSAGES/messages.mo 2026-01-15 13:21:49 +01:00
滅ü
3b2b74e62d i18n: Update zh_Hant_TW translations (#3745) 2026-01-15 13:12:25 +01:00
dependabot[bot]
68354cf53d Update jsonschema requirement from ~=4.25 to ~=4.26 (#3743) 2026-01-15 13:03:16 +01:00
dgtlmoon
3e364e0eba Translations - ZH_Hant_TW - Fixing timeago string handling #3737
Some checks failed
Build and push containers / metadata (push) Has been cancelled
Build and push containers / build-push-containers (push) Has been cancelled
Publish Python 🐍distribution 📦 to PyPI and TestPyPI / Build distribution 📦 (push) Has been cancelled
Publish Python 🐍distribution 📦 to PyPI and TestPyPI / Test the built package works basically. (push) Has been cancelled
Publish Python 🐍distribution 📦 to PyPI and TestPyPI / Publish Python 🐍 distribution 📦 to PyPI (push) Has been cancelled
ChangeDetection.io Container Build Test / Build linux/amd64 (alpine) (push) Has been cancelled
ChangeDetection.io Container Build Test / Build linux/arm64 (alpine) (push) Has been cancelled
ChangeDetection.io Container Build Test / Build linux/amd64 (main) (push) Has been cancelled
ChangeDetection.io Container Build Test / Build linux/arm/v7 (main) (push) Has been cancelled
ChangeDetection.io Container Build Test / Build linux/arm/v8 (main) (push) Has been cancelled
ChangeDetection.io Container Build Test / Build linux/arm64 (main) (push) Has been cancelled
ChangeDetection.io App Test / lint-code (push) Has been cancelled
ChangeDetection.io App Test / test-application-3-10 (push) Has been cancelled
ChangeDetection.io App Test / test-application-3-11 (push) Has been cancelled
ChangeDetection.io App Test / test-application-3-12 (push) Has been cancelled
ChangeDetection.io App Test / test-application-3-13 (push) Has been cancelled
2026-01-15 12:24:53 +01:00
dgtlmoon
06ea29bfc7 Translations - Fixing zh_TW to zh_Hant_TW , adding tests #3737 (#3744) 2026-01-15 12:01:12 +01:00
dependabot[bot]
f4e178955c Bump pyppeteer-ng from 2.0.0rc10 to 2.0.0rc11 (#3742) 2026-01-15 10:31:42 +01:00
dgtlmoon
51d531d732 0.52.4
Some checks failed
Build and push containers / metadata (push) Has been cancelled
Build and push containers / build-push-containers (push) Has been cancelled
Publish Python 🐍distribution 📦 to PyPI and TestPyPI / Build distribution 📦 (push) Has been cancelled
Publish Python 🐍distribution 📦 to PyPI and TestPyPI / Test the built package works basically. (push) Has been cancelled
Publish Python 🐍distribution 📦 to PyPI and TestPyPI / Publish Python 🐍 distribution 📦 to PyPI (push) Has been cancelled
ChangeDetection.io App Test / lint-code (push) Has been cancelled
ChangeDetection.io App Test / test-application-3-10 (push) Has been cancelled
ChangeDetection.io App Test / test-application-3-11 (push) Has been cancelled
ChangeDetection.io App Test / test-application-3-12 (push) Has been cancelled
ChangeDetection.io App Test / test-application-3-13 (push) Has been cancelled
CodeQL / Analyze (javascript) (push) Has been cancelled
CodeQL / Analyze (python) (push) Has been cancelled
2026-01-14 13:26:23 +01:00
dgtlmoon
e40c4ca97d Fixing Traditional Chinese locale mapping #3737 (#3738) 2026-01-14 13:26:07 +01:00
dgtlmoon
b8ede70f3a Languages - Pypi/pip package was missing translations 2026-01-14 13:09:23 +01:00
dgtlmoon
50b349b464 0.52.3
Some checks failed
Build and push containers / metadata (push) Has been cancelled
Build and push containers / build-push-containers (push) Has been cancelled
Publish Python 🐍distribution 📦 to PyPI and TestPyPI / Build distribution 📦 (push) Has been cancelled
Publish Python 🐍distribution 📦 to PyPI and TestPyPI / Test the built package works basically. (push) Has been cancelled
Publish Python 🐍distribution 📦 to PyPI and TestPyPI / Publish Python 🐍 distribution 📦 to PyPI (push) Has been cancelled
ChangeDetection.io App Test / lint-code (push) Has been cancelled
ChangeDetection.io App Test / test-application-3-10 (push) Has been cancelled
ChangeDetection.io App Test / test-application-3-11 (push) Has been cancelled
ChangeDetection.io App Test / test-application-3-12 (push) Has been cancelled
ChangeDetection.io App Test / test-application-3-13 (push) Has been cancelled
2026-01-14 12:00:54 +01:00
dgtlmoon
67d097cca7 UI - Groups - Adding 'Recheck' button from groups overview page 2026-01-14 11:59:42 +01:00
dgtlmoon
494385a379 Minor playwright memory cleanup improvements (#3736) 2026-01-14 11:54:53 +01:00
dgtlmoon
c2ee84b753 Browser Steps UI async_loop bug, refactored startup of BrowserSteps, increased test coverage. Re #3734 (#3735) 2026-01-14 11:27:01 +01:00
dgtlmoon
c1e0296cda 0.52.2
Some checks failed
Build and push containers / metadata (push) Has been cancelled
Build and push containers / build-push-containers (push) Has been cancelled
Publish Python 🐍distribution 📦 to PyPI and TestPyPI / Build distribution 📦 (push) Has been cancelled
Publish Python 🐍distribution 📦 to PyPI and TestPyPI / Test the built package works basically. (push) Has been cancelled
Publish Python 🐍distribution 📦 to PyPI and TestPyPI / Publish Python 🐍 distribution 📦 to PyPI (push) Has been cancelled
ChangeDetection.io App Test / lint-code (push) Has been cancelled
ChangeDetection.io App Test / test-application-3-10 (push) Has been cancelled
ChangeDetection.io App Test / test-application-3-11 (push) Has been cancelled
ChangeDetection.io App Test / test-application-3-12 (push) Has been cancelled
ChangeDetection.io App Test / test-application-3-13 (push) Has been cancelled
2026-01-13 16:36:16 +01:00
dgtlmoon
f041223c38 Page fetchers - Were not truely running independently and could have been blocking eachother, this commit speeds up page fetches where there is more than 1 worker. 2026-01-13 16:32:50 +01:00
dgtlmoon
d36738d7ef RSS - Bugfix - possible edge case of wrong feed info could be rendered (#3733) 2026-01-13 16:31:58 +01:00
dgtlmoon
e51ff34c89 UI - Language modal - flag icons should be round
Some checks failed
Build and push containers / metadata (push) Has been cancelled
Build and push containers / build-push-containers (push) Has been cancelled
Publish Python 🐍distribution 📦 to PyPI and TestPyPI / Build distribution 📦 (push) Has been cancelled
Publish Python 🐍distribution 📦 to PyPI and TestPyPI / Test the built package works basically. (push) Has been cancelled
Publish Python 🐍distribution 📦 to PyPI and TestPyPI / Publish Python 🐍 distribution 📦 to PyPI (push) Has been cancelled
ChangeDetection.io App Test / lint-code (push) Has been cancelled
ChangeDetection.io App Test / test-application-3-10 (push) Has been cancelled
ChangeDetection.io App Test / test-application-3-11 (push) Has been cancelled
ChangeDetection.io App Test / test-application-3-12 (push) Has been cancelled
ChangeDetection.io App Test / test-application-3-13 (push) Has been cancelled
ChangeDetection.io Container Build Test / Build linux/amd64 (alpine) (push) Has been cancelled
ChangeDetection.io Container Build Test / Build linux/arm64 (alpine) (push) Has been cancelled
ChangeDetection.io Container Build Test / Build linux/amd64 (main) (push) Has been cancelled
ChangeDetection.io Container Build Test / Build linux/arm/v7 (main) (push) Has been cancelled
ChangeDetection.io Container Build Test / Build linux/arm/v8 (main) (push) Has been cancelled
ChangeDetection.io Container Build Test / Build linux/arm64 (main) (push) Has been cancelled
2026-01-12 18:01:42 +01:00
dgtlmoon
ba4ed9cf27 0.52.1 2026-01-12 17:52:52 +01:00
dgtlmoon
33b7f1684d Merge branch 'master' of github.com:dgtlmoon/changedetection.io 2026-01-12 17:51:17 +01:00
dgtlmoon
3d14df6a11 Development branch merge into release/master
Multi-language / Translations Support (#3696)
  - Complete internationalization system implemented
  - Support for 7 languages: Czech (cs), German (de), French (fr), Italian (it), Korean (ko), Chinese Simplified (zh), Chinese Traditional (zh_TW)
  - Language selector with localized flags and theming
  - Flash message translations
  - Multiple translation fixes and improvements across all languages
  - Language setting preserved across redirects

  Pluggable Content Fetchers (#3653)
  - New architecture for extensible content fetcher system
  - Allows custom fetcher implementations

  Image / Screenshot Comparison Processor (#3680)
  - New processor for visual change detection (disabled for this release)
  - Supporting CSS/JS infrastructure added

  UI Improvements

  Design & Layout
  - Auto-generated tag color schemes
  - Simplified login form styling
  - Removed hard-coded CSS, moved to SCSS variables
  - Tag UI cleanup and improvements
  - Automatic tab wrapper functionality
  - Menu refactoring for better organization
  - Cleanup of offset settings
  - Hide sticky tabs on narrow viewports
  - Improved responsive layout (#3702)

  User Experience
  - Modal alerts/confirmations on delete/clear operations (#3693, #3598, #3382)
  - Auto-add https:// to URLs in quickwatch form if not present
  - Better redirect handling on login (#3699)
  - 'Recheck all' now returns to correct group/tag (#3673)
  - Language set redirect keeps hash fragment
  - More friendly human-readable text throughout UI

  Performance & Reliability

  Scheduler & Processing
  - Soft delays instead of blocking time.sleep() calls (#3710)
  - More resilient handling of same UUID being processed (#3700)
  - Better Puppeteer timeout handling
  - Improved Puppeteer shutdown/cleanup (#3692)
  - Requests cleanup now properly async

  History & Rendering
  - Faster server-side "difference" rendering on History page (#3442)
  - Show ignored/triggered rows in history
  - API: Retry watch data if watch dict changed (more reliable)

  API Improvements

  - Watch get endpoint: retry mechanism for changed watch data
  - WatchHistoryDiff API endpoint includes extra format args (#3703)

  Testing Improvements

  - Replace time.sleep with wait_for_notification_endpoint_output (#3716)
  - Test for mode switching (#3701)
  - Test for #3720 added (#3725)
  - Extract-text difference test fixes
  - Improved dev workflow

  Bug Fixes

  - Notification error text output (#3672, #3669, #3280)
  - HTML validation fixes (#3704)
  - Template discovery path fixes
  - Notification debug log now uses system locale for dates/times
  - Puppeteer spelling mistake in log output
  - Recalculation on anchor change
  - Queue bubble update disabled temporarily

  Dependency Updates

  - beautifulsoup4 updated (#3724)
  - psutil 7.1.0 → 7.2.1 (#3723)
  - python-engineio ~=4.12.3 → ~=4.13.0 (#3707)
  - python-socketio ~=5.14.3 → ~=5.16.0 (#3706)
  - flask-socketio ~=5.5.1 → ~=5.6.0 (#3691)
  - brotli ~=1.1 → ~=1.2 (#3687)
  - lxml updated (#3590)
  - pytest ~=7.2 → ~=9.0 (#3676)
  - jsonschema ~=4.0 → ~=4.25 (#3618)
  - pluggy ~=1.5 → ~=1.6 (#3616)
  - cryptography 44.0.1 → 46.0.3 (security) (#3589)

  Documentation

  - README updated with viewport size setup information

  Development Infrastructure

  - Dev container only built on dev branch
  - Improved dev workflow tooling
2026-01-12 17:50:53 +01:00
dgtlmoon
08ce1e28ce Adding test for #3720 2026-01-12 11:40:31 +01:00
MkDev11
e4118a1620 Testing - fix: Replace time.sleep with wait_for_notification_endpoint_output in test_notification (#3716)
Some checks failed
Build and push containers / metadata (push) Has been cancelled
Build and push containers / build-push-containers (push) Has been cancelled
Publish Python 🐍distribution 📦 to PyPI and TestPyPI / Build distribution 📦 (push) Has been cancelled
ChangeDetection.io App Test / lint-code (push) Has been cancelled
Publish Python 🐍distribution 📦 to PyPI and TestPyPI / Test the built package works basically. (push) Has been cancelled
Publish Python 🐍distribution 📦 to PyPI and TestPyPI / Publish Python 🐍 distribution 📦 to PyPI (push) Has been cancelled
ChangeDetection.io App Test / test-application-3-10 (push) Has been cancelled
ChangeDetection.io App Test / test-application-3-11 (push) Has been cancelled
ChangeDetection.io App Test / test-application-3-12 (push) Has been cancelled
ChangeDetection.io App Test / test-application-3-13 (push) Has been cancelled
CodeQL / Analyze (javascript) (push) Has been cancelled
CodeQL / Analyze (python) (push) Has been cancelled
2026-01-07 22:24:58 +01:00
dgtlmoon
64d0c09b08 Update README.md - Info about setting up different viewport sizes 2026-01-07 22:23:07 +01:00
dgtlmoon
008e5eb024 Use soft delays instead of blocking time sleeps in scheduler (#3710)
Some checks failed
Build and push containers / metadata (push) Has been cancelled
Build and push containers / build-push-containers (push) Has been cancelled
Publish Python 🐍distribution 📦 to PyPI and TestPyPI / Build distribution 📦 (push) Has been cancelled
ChangeDetection.io App Test / lint-code (push) Has been cancelled
Publish Python 🐍distribution 📦 to PyPI and TestPyPI / Test the built package works basically. (push) Has been cancelled
Publish Python 🐍distribution 📦 to PyPI and TestPyPI / Publish Python 🐍 distribution 📦 to PyPI (push) Has been cancelled
ChangeDetection.io App Test / test-application-3-10 (push) Has been cancelled
ChangeDetection.io App Test / test-application-3-11 (push) Has been cancelled
ChangeDetection.io App Test / test-application-3-12 (push) Has been cancelled
ChangeDetection.io App Test / test-application-3-13 (push) Has been cancelled
2026-01-05 10:34:14 +01:00
dgtlmoon
e6553065fd API - Watch get, retry watch data if watch dict changed (more reliable) 2026-01-05 10:31:17 +01:00
dgtlmoon
de996a4566 Notification debug log - Use locale of system for dates/times 2026-01-05 10:13:35 +01:00
dgtlmoon
4784ae4cd0 Misc small HTML Validation fixes (#3704)
Some checks failed
Build and push containers / metadata (push) Has been cancelled
Build and push containers / build-push-containers (push) Has been cancelled
Publish Python 🐍distribution 📦 to PyPI and TestPyPI / Build distribution 📦 (push) Has been cancelled
Publish Python 🐍distribution 📦 to PyPI and TestPyPI / Test the built package works basically. (push) Has been cancelled
Publish Python 🐍distribution 📦 to PyPI and TestPyPI / Publish Python 🐍 distribution 📦 to PyPI (push) Has been cancelled
ChangeDetection.io App Test / lint-code (push) Has been cancelled
ChangeDetection.io App Test / test-application-3-10 (push) Has been cancelled
ChangeDetection.io App Test / test-application-3-11 (push) Has been cancelled
ChangeDetection.io App Test / test-application-3-12 (push) Has been cancelled
ChangeDetection.io App Test / test-application-3-13 (push) Has been cancelled
2026-01-04 17:17:17 +01:00
668 changed files with 49192 additions and 4326 deletions

View File

@@ -84,6 +84,7 @@ jobs:
docker run test-changedetectionio bash -c 'python3 -m unittest changedetectionio.tests.unit.test_watch_model'
docker run test-changedetectionio bash -c 'python3 -m unittest changedetectionio.tests.unit.test_jinja2_security'
docker run test-changedetectionio bash -c 'python3 -m unittest changedetectionio.tests.unit.test_semver'
docker run test-changedetectionio bash -c 'python3 -m unittest changedetectionio.tests.unit.test_html_to_text'
# Basic pytest tests with ancillary services
basic-tests:

View File

@@ -11,6 +11,7 @@ recursive-include changedetectionio/realtime *
recursive-include changedetectionio/static *
recursive-include changedetectionio/templates *
recursive-include changedetectionio/tests *
recursive-include changedetectionio/translations *
recursive-include changedetectionio/widgets *
prune changedetectionio/static/package-lock.json
prune changedetectionio/static/styles/node_modules

View File

@@ -183,6 +183,9 @@ docker compose pull && docker compose up -d
See the wiki for more information https://github.com/dgtlmoon/changedetection.io/wiki
## Different browser viewport sizes (mobile, desktop etc)
If you are using the recommended `sockpuppetbrowser` (which is in the docker-compose.yml as a setting to be uncommented) you can easily set different viewport sizes for your web page change detection, [see more information here about setting up different viewport sizes](https://github.com/dgtlmoon/sockpuppetbrowser?tab=readme-ov-file#setting-viewport-size).
## Filters

5
babel.cfg Normal file
View File

@@ -0,0 +1,5 @@
[python: **.py]
keywords = _:1,_l:1,gettext:1
[jinja2: **/templates/**.html]
encoding = utf-8

View File

@@ -2,7 +2,7 @@
# Read more https://github.com/dgtlmoon/changedetection.io/wiki
# Semver means never use .01, or 00. Should be .1.
__version__ = '0.51.4'
__version__ = '0.52.7'
from changedetectionio.strtobool import strtobool
from json.decoder import JSONDecodeError
@@ -41,9 +41,10 @@ from loguru import logger
#
# IMPLEMENTATION:
# 1. Explicit contexts everywhere (primary protection):
# - Watch.py: ctx = multiprocessing.get_context('spawn')
# - playwright.py: ctx = multiprocessing.get_context('spawn')
# - puppeteer.py: ctx = multiprocessing.get_context('spawn')
# - isolated_opencv.py: ctx = multiprocessing.get_context('spawn')
# - isolated_libvips.py: ctx = multiprocessing.get_context('spawn')
#
# 2. Global default (defense-in-depth, below):
# - Safety net if future code forgets explicit context
@@ -286,7 +287,9 @@ def main():
return dict(right_sticky="v{}".format(datastore.data['version_tag']),
new_version_available=app.config['NEW_VERSION_AVAILABLE'],
has_password=datastore.data['settings']['application']['password'] != False,
socket_io_enabled=datastore.data['settings']['application']['ui'].get('socket_io_enabled', True)
socket_io_enabled=datastore.data['settings']['application']['ui'].get('socket_io_enabled', True),
all_paused=datastore.data['settings']['application'].get('all_paused', False),
all_muted=datastore.data['settings']['application'].get('all_muted', False)
)
# Monitored websites will not receive a Referer header when a user clicks on an outgoing link.

View File

@@ -2,7 +2,9 @@ from changedetectionio import queuedWatchMetaData
from changedetectionio import worker_handler
from flask_expects_json import expects_json
from flask_restful import abort, Resource
from loguru import logger
import threading
from flask import request
from . import auth
@@ -28,18 +30,36 @@ class Tag(Resource):
abort(404, message=f'No tag exists with the UUID of {uuid}')
if request.args.get('recheck'):
# Recheck all, including muted
# Get most overdue first
i=0
# Recheck all watches with this tag, including muted
# First collect watches to queue
watches_to_queue = []
for k in sorted(self.datastore.data['watching'].items(), key=lambda item: item[1].get('last_checked', 0)):
watch_uuid = k[0]
watch = k[1]
if not watch['paused'] and tag['uuid'] not in watch['tags']:
continue
worker_handler.queue_item_async_safe(self.update_q, queuedWatchMetaData.PrioritizedItem(priority=1, item={'uuid': watch_uuid}))
i+=1
if not watch['paused'] and tag['uuid'] in watch['tags']:
watches_to_queue.append(watch_uuid)
return f"OK, {i} watches queued", 200
# If less than 20 watches, queue synchronously for immediate feedback
if len(watches_to_queue) < 20:
for watch_uuid in watches_to_queue:
worker_handler.queue_item_async_safe(self.update_q, queuedWatchMetaData.PrioritizedItem(priority=1, item={'uuid': watch_uuid}))
return {'status': f'OK, queued {len(watches_to_queue)} watches for rechecking'}, 200
else:
# 20+ watches - queue in background thread to avoid blocking API response
def queue_watches_background():
"""Background thread to queue watches - discarded after completion."""
try:
for watch_uuid in watches_to_queue:
worker_handler.queue_item_async_safe(self.update_q, queuedWatchMetaData.PrioritizedItem(priority=1, item={'uuid': watch_uuid}))
logger.info(f"Background queueing complete for tag {tag['uuid']}: {len(watches_to_queue)} watches queued")
except Exception as e:
logger.error(f"Error in background queueing for tag {tag['uuid']}: {e}")
# Start background thread and return immediately
thread = threading.Thread(target=queue_watches_background, daemon=True, name=f"QueueTag-{tag['uuid'][:8]}")
thread.start()
return {'status': f'OK, queueing {len(watches_to_queue)} watches in background'}, 202
if request.args.get('muted', '') == 'muted':
self.datastore.data['settings']['application']['tags'][uuid]['notification_muted'] = True

View File

@@ -1,4 +1,5 @@
import os
import threading
from changedetectionio.validate_url import is_safe_valid_url
@@ -64,8 +65,17 @@ class Watch(Resource):
@validate_openapi_request('getWatch')
def get(self, uuid):
"""Get information about a single watch, recheck, pause, or mute."""
import time
from copy import deepcopy
watch = deepcopy(self.datastore.data['watching'].get(uuid))
watch = None
for _ in range(20):
try:
watch = deepcopy(self.datastore.data['watching'].get(uuid))
break
except RuntimeError:
# Incase dict changed, try again
time.sleep(0.01)
if not watch:
abort(404, message='No watch exists with the UUID of {}'.format(uuid))
@@ -302,18 +312,28 @@ class WatchHistoryDiff(Resource):
from_version_file_contents = watch.get_history_snapshot(from_timestamp)
to_version_file_contents = watch.get_history_snapshot(to_timestamp)
# Get diff preferences (using defaults similar to the existing code)
diff_prefs = {
'diff_ignoreWhitespace': False,
'diff_changesOnly': True
}
# Get diff preferences from query parameters (matching UI preferences in DIFF_PREFERENCES_CONFIG)
# Support both 'type' (UI parameter) and 'word_diff' (API parameter) for backward compatibility
diff_type = request.args.get('type', 'diffLines')
if diff_type == 'diffWords':
word_diff = True
# Generate the diff
# Get boolean diff preferences with defaults from DIFF_PREFERENCES_CONFIG
changes_only = strtobool(request.args.get('changesOnly', 'true'))
ignore_whitespace = strtobool(request.args.get('ignoreWhitespace', 'false'))
include_removed = strtobool(request.args.get('removed', 'true'))
include_added = strtobool(request.args.get('added', 'true'))
include_replaced = strtobool(request.args.get('replaced', 'true'))
# Generate the diff with all preferences
content = diff.render_diff(
previous_version_file_contents=from_version_file_contents,
newest_version_file_contents=to_version_file_contents,
ignore_junk=diff_prefs.get('diff_ignoreWhitespace'),
include_equal=not diff_prefs.get('diff_changesOnly'),
ignore_junk=ignore_whitespace,
include_equal=changes_only,
include_removed=include_removed,
include_added=include_added,
include_replaced=include_replaced,
word_diff=word_diff,
)
@@ -419,7 +439,8 @@ class CreateWatch(Resource):
new_uuid = self.datastore.add_watch(url=url, extras=extras, tag=tags)
if new_uuid:
worker_handler.queue_item_async_safe(self.update_q, queuedWatchMetaData.PrioritizedItem(priority=1, item={'uuid': new_uuid}))
# Dont queue because the scheduler will check that it hasnt been checked before anyway
# worker_handler.queue_item_async_safe(self.update_q, queuedWatchMetaData.PrioritizedItem(priority=1, item={'uuid': new_uuid}))
return {'uuid': new_uuid}, 201
else:
return "Invalid or unsupported URL", 400
@@ -449,8 +470,58 @@ class CreateWatch(Resource):
}
if request.args.get('recheck_all'):
for uuid in self.datastore.data['watching'].keys():
worker_handler.queue_item_async_safe(self.update_q, queuedWatchMetaData.PrioritizedItem(priority=1, item={'uuid': uuid}))
return {'status': "OK"}, 200
# Collect all watches to queue
watches_to_queue = self.datastore.data['watching'].keys()
# If less than 20 watches, queue synchronously for immediate feedback
if len(watches_to_queue) < 20:
# Get already queued/running UUIDs once (efficient)
queued_uuids = set(self.update_q.get_queued_uuids())
running_uuids = set(worker_handler.get_running_uuids())
# Filter out watches that are already queued or running
watches_to_queue_filtered = [
uuid for uuid in watches_to_queue
if uuid not in queued_uuids and uuid not in running_uuids
]
# Queue only the filtered watches
for uuid in watches_to_queue_filtered:
worker_handler.queue_item_async_safe(self.update_q, queuedWatchMetaData.PrioritizedItem(priority=1, item={'uuid': uuid}))
# Provide feedback about skipped watches
skipped_count = len(watches_to_queue) - len(watches_to_queue_filtered)
if skipped_count > 0:
return {'status': f'OK, queued {len(watches_to_queue_filtered)} watches for rechecking ({skipped_count} already queued or running)'}, 200
else:
return {'status': f'OK, queued {len(watches_to_queue_filtered)} watches for rechecking'}, 200
else:
# 20+ watches - queue in background thread to avoid blocking API response
# Capture queued/running state before background thread
queued_uuids = set(self.update_q.get_queued_uuids())
running_uuids = set(worker_handler.get_running_uuids())
def queue_all_watches_background():
"""Background thread to queue all watches - discarded after completion."""
try:
queued_count = 0
skipped_count = 0
for uuid in watches_to_queue:
# Check if already queued or running (state captured at start)
if uuid not in queued_uuids and uuid not in running_uuids:
worker_handler.queue_item_async_safe(self.update_q, queuedWatchMetaData.PrioritizedItem(priority=1, item={'uuid': uuid}))
queued_count += 1
else:
skipped_count += 1
logger.info(f"Background queueing complete: {queued_count} watches queued, {skipped_count} skipped (already queued/running)")
except Exception as e:
logger.error(f"Error in background queueing all watches: {e}")
# Start background thread and return immediately
thread = threading.Thread(target=queue_all_watches_background, daemon=True, name="QueueAllWatches-Background")
thread.start()
return {'status': f'OK, queueing {len(watches_to_queue)} watches in background'}, 202
return list, 200

View File

@@ -1,5 +1,4 @@
from blinker import signal
from .processors.exceptions import ProcessorException
import changedetectionio.content_fetchers.exceptions as content_fetchers_exceptions
from changedetectionio.processors.text_json_diff.processor import FilterNotFoundInResponse
@@ -9,7 +8,7 @@ from changedetectionio.flask_app import watch_check_update
import asyncio
import importlib
import os
import queue
import sys
import time
from loguru import logger
@@ -17,36 +16,51 @@ from loguru import logger
# Async version of update_worker
# Processes jobs from AsyncSignalPriorityQueue instead of threaded queue
async def async_update_worker(worker_id, q, notification_q, app, datastore):
IN_PYTEST = "pytest" in sys.modules or "PYTEST_CURRENT_TEST" in os.environ
DEFER_SLEEP_TIME_ALREADY_QUEUED = 0.3 if IN_PYTEST else 10.0
async def async_update_worker(worker_id, q, notification_q, app, datastore, executor=None):
"""
Async worker function that processes watch check jobs from the queue.
Args:
worker_id: Unique identifier for this worker
q: AsyncSignalPriorityQueue containing jobs to process
notification_q: Standard queue for notifications
app: Flask application instance
datastore: Application datastore
executor: ThreadPoolExecutor for queue operations (optional)
"""
# Set a descriptive name for this task
task = asyncio.current_task()
if task:
task.set_name(f"async-worker-{worker_id}")
logger.info(f"Starting async worker {worker_id}")
while not app.config.exit.is_set():
update_handler = None
watch = None
try:
# Use native janus async interface - no threads needed!
queued_item_data = await asyncio.wait_for(q.async_get(), timeout=1.0)
# Use sync interface via run_in_executor since each worker has its own event loop
loop = asyncio.get_event_loop()
queued_item_data = await asyncio.wait_for(
loop.run_in_executor(executor, q.get, True, 1.0), # block=True, timeout=1.0
timeout=1.5
)
except asyncio.TimeoutError:
# No jobs available, continue loop
continue
except Exception as e:
# Handle expected Empty exception from queue timeout
import queue
if isinstance(e, queue.Empty):
# Queue is empty, normal behavior - just continue
continue
# Unexpected exception - log as critical
logger.critical(f"CRITICAL: Worker {worker_id} failed to get queue item: {type(e).__name__}: {e}")
# Log queue health for debugging
@@ -61,24 +75,25 @@ async def async_update_worker(worker_id, q, notification_q, app, datastore):
continue
uuid = queued_item_data.item.get('uuid')
# RACE CONDITION FIX: Check if this UUID is already being processed by another worker
from changedetectionio import worker_handler
from changedetectionio.queuedWatchMetaData import PrioritizedItem
if worker_handler.is_watch_running(uuid):
logger.trace(f"Worker {worker_id} skipping UUID {uuid} - already being processed, re-queuing for later")
# Re-queue with MUCH lower priority (higher number = processed later)
# This prevents tight loop where high-priority item keeps getting picked immediately
if worker_handler.is_watch_running_by_another_worker(uuid, worker_id):
logger.trace(f"Worker {worker_id} detected UUID {uuid} already being processed by another worker - deferring")
# Sleep to avoid tight loop and give the other worker time to finish
await asyncio.sleep(DEFER_SLEEP_TIME_ALREADY_QUEUED)
# Re-queue with lower priority so it gets checked again after current processing finishes
deferred_priority = max(1000, queued_item_data.priority * 10)
deferred_item = PrioritizedItem(priority=deferred_priority, item=queued_item_data.item)
worker_handler.queue_item_async_safe(q, deferred_item, silent=True)
await asyncio.sleep(0.1) # Brief pause to avoid tight loop
logger.debug(f"Worker {worker_id} re-queued UUID {uuid} for subsequent check")
continue
fetch_start_time = round(time.time())
# Mark this UUID as being processed
worker_handler.set_uuid_processing(uuid, processing=True)
# Mark this UUID as being processed by this worker
worker_handler.set_uuid_processing(uuid, worker_id=worker_id, processing=True)
try:
if uuid in list(datastore.data['watching'].keys()) and datastore.data['watching'][uuid].get('url'):
@@ -117,8 +132,14 @@ async def async_update_worker(worker_id, q, notification_q, app, datastore):
# All fetchers are now async, so call directly
await update_handler.call_browser()
# Run change detection (this is synchronous)
changed_detected, update_obj, contents = update_handler.run_changedetection(watch=watch)
# Run change detection in executor to avoid blocking event loop
# This includes CPU-intensive operations like HTML parsing (lxml/inscriptis)
# which can take 2-10ms and cause GIL contention across workers
loop = asyncio.get_event_loop()
changed_detected, update_obj, contents = await loop.run_in_executor(
executor,
lambda: update_handler.run_changedetection(watch=watch)
)
except PermissionError as e:
logger.critical(f"File permission error updating file, watch: {uuid}")
@@ -412,17 +433,16 @@ async def async_update_worker(worker_id, q, notification_q, app, datastore):
datastore.update_watch(uuid=uuid, update_obj={'last_error': f"Worker error: {str(e)}"})
finally:
try:
await update_handler.fetcher.quit(watch=watch)
except Exception as e:
logger.error(f"Exception while cleaning/quit after calling browser: {e}")
# Always cleanup - this runs whether there was an exception or not
if uuid:
try:
# Mark UUID as no longer being processed
worker_handler.set_uuid_processing(uuid, processing=False)
if update_handler and hasattr(update_handler, 'fetcher') and update_handler.fetcher:
await update_handler.fetcher.quit(watch=watch)
except Exception as e:
logger.error(f"Exception while cleaning/quit after calling browser: {e}")
try:
# Mark UUID as no longer being processed by this worker
worker_handler.set_uuid_processing(uuid, worker_id=worker_id, processing=False)
# Send completion signal
if watch:
@@ -458,7 +478,9 @@ async def async_update_worker(worker_id, q, notification_q, app, datastore):
logger.debug(f"Worker {worker_id} completed watch {uuid} in {time.time()-fetch_start_time:.2f}s")
except Exception as cleanup_error:
logger.error(f"Worker {worker_id} error during cleanup: {cleanup_error}")
del(uuid)
# Brief pause before continuing to avoid tight error loops (only on error)
if 'e' in locals():
await asyncio.sleep(1.0)

View File

@@ -3,6 +3,7 @@ import glob
import threading
from flask import Blueprint, render_template, send_from_directory, flash, url_for, redirect, abort
from flask_babel import gettext
import os
from changedetectionio.store import ChangeDetectionStore
@@ -82,19 +83,24 @@ def construct_blueprint(datastore: ChangeDetectionStore):
@backups_blueprint.route("/request-backup", methods=['GET'])
def request_backup():
if any(thread.is_alive() for thread in backup_threads):
flash("A backup is already running, check back in a few minutes", "error")
flash(gettext("A backup is already running, check back in a few minutes"), "error")
return redirect(url_for('backups.index'))
if len(find_backups()) > int(os.getenv("MAX_NUMBER_BACKUPS", 100)):
flash("Maximum number of backups reached, please remove some", "error")
flash(gettext("Maximum number of backups reached, please remove some"), "error")
return redirect(url_for('backups.index'))
# Be sure we're written fresh
datastore.sync_to_json()
zip_thread = threading.Thread(target=create_backup, args=(datastore.datastore_path, datastore.data.get("watching")))
zip_thread = threading.Thread(
target=create_backup,
args=(datastore.datastore_path, datastore.data.get("watching")),
daemon=True,
name="BackupCreator"
)
zip_thread.start()
backup_threads.append(zip_thread)
flash("Backup building in background, check back in a few minutes.")
flash(gettext("Backup building in background, check back in a few minutes."))
return redirect(url_for('backups.index'))
@@ -157,7 +163,7 @@ def construct_blueprint(datastore: ChangeDetectionStore):
for backup in backups:
os.unlink(backup)
flash("Backups were deleted.")
flash(gettext("Backups were deleted."))
return redirect(url_for('backups.index'))

View File

@@ -21,31 +21,154 @@ from changedetectionio.flask_app import login_optionally_required
from loguru import logger
browsersteps_sessions = {}
browsersteps_watch_to_session = {} # Maps watch_uuid -> browsersteps_session_id
io_interface_context = None
import json
import hashlib
from flask import Response
import asyncio
import threading
import time
def run_async_in_browser_loop(coro):
"""Run async coroutine using the existing async worker event loop"""
from changedetectionio import worker_handler
# Use the existing async worker event loop instead of creating a new one
if worker_handler.USE_ASYNC_WORKERS and worker_handler.async_loop and not worker_handler.async_loop.is_closed():
logger.debug("Browser steps using existing async worker event loop")
future = asyncio.run_coroutine_threadsafe(coro, worker_handler.async_loop)
return future.result()
else:
# Fallback: create a new event loop (for sync workers or if async loop not available)
logger.debug("Browser steps creating temporary event loop")
loop = asyncio.new_event_loop()
asyncio.set_event_loop(loop)
# Dedicated event loop for ALL browser steps sessions
_browser_steps_loop = None
_browser_steps_thread = None
_browser_steps_loop_lock = threading.Lock()
def _start_browser_steps_loop():
"""Start a dedicated event loop for browser steps in its own thread"""
global _browser_steps_loop
# Create and set the event loop for this thread
loop = asyncio.new_event_loop()
asyncio.set_event_loop(loop)
_browser_steps_loop = loop
logger.debug("Browser steps event loop started")
try:
# Run the loop forever - handles all browsersteps sessions
loop.run_forever()
except Exception as e:
logger.error(f"Browser steps event loop error: {e}")
finally:
try:
return loop.run_until_complete(coro)
# Cancel all remaining tasks
pending = asyncio.all_tasks(loop)
for task in pending:
task.cancel()
# Wait for tasks to finish cancellation
if pending:
loop.run_until_complete(asyncio.gather(*pending, return_exceptions=True))
except Exception as e:
logger.debug(f"Error during browser steps loop cleanup: {e}")
finally:
loop.close()
logger.debug("Browser steps event loop closed")
def _ensure_browser_steps_loop():
"""Ensure the browser steps event loop is running"""
global _browser_steps_loop, _browser_steps_thread
with _browser_steps_loop_lock:
if _browser_steps_thread is None or not _browser_steps_thread.is_alive():
logger.debug("Starting browser steps event loop thread")
_browser_steps_thread = threading.Thread(
target=_start_browser_steps_loop,
daemon=True,
name="BrowserStepsEventLoop"
)
_browser_steps_thread.start()
# Wait for the loop to be ready
timeout = 5.0
start_time = time.time()
while _browser_steps_loop is None:
if time.time() - start_time > timeout:
raise RuntimeError("Browser steps event loop failed to start")
time.sleep(0.01)
logger.debug("Browser steps event loop thread started and ready")
def run_async_in_browser_loop(coro):
"""Run async coroutine using the dedicated browser steps event loop"""
_ensure_browser_steps_loop()
if _browser_steps_loop and not _browser_steps_loop.is_closed():
logger.debug("Browser steps using dedicated event loop")
future = asyncio.run_coroutine_threadsafe(coro, _browser_steps_loop)
return future.result()
else:
raise RuntimeError("Browser steps event loop is not available")
def cleanup_expired_sessions():
"""Remove expired browsersteps sessions and cleanup their resources"""
global browsersteps_sessions, browsersteps_watch_to_session
expired_session_ids = []
# Find expired sessions
for session_id, session_data in browsersteps_sessions.items():
browserstepper = session_data.get('browserstepper')
if browserstepper and browserstepper.has_expired:
expired_session_ids.append(session_id)
# Cleanup expired sessions
for session_id in expired_session_ids:
logger.debug(f"Cleaning up expired browsersteps session {session_id}")
session_data = browsersteps_sessions[session_id]
# Cleanup playwright resources asynchronously
browserstepper = session_data.get('browserstepper')
if browserstepper:
try:
run_async_in_browser_loop(browserstepper.cleanup())
except Exception as e:
logger.error(f"Error cleaning up session {session_id}: {e}")
# Remove from sessions dict
del browsersteps_sessions[session_id]
# Remove from watch mapping
for watch_uuid, mapped_session_id in list(browsersteps_watch_to_session.items()):
if mapped_session_id == session_id:
del browsersteps_watch_to_session[watch_uuid]
break
if expired_session_ids:
logger.info(f"Cleaned up {len(expired_session_ids)} expired browsersteps session(s)")
def cleanup_session_for_watch(watch_uuid):
"""Cleanup a specific browsersteps session for a watch UUID"""
global browsersteps_sessions, browsersteps_watch_to_session
session_id = browsersteps_watch_to_session.get(watch_uuid)
if not session_id:
logger.debug(f"No browsersteps session found for watch {watch_uuid}")
return
logger.debug(f"Cleaning up browsersteps session {session_id} for watch {watch_uuid}")
session_data = browsersteps_sessions.get(session_id)
if session_data:
browserstepper = session_data.get('browserstepper')
if browserstepper:
try:
run_async_in_browser_loop(browserstepper.cleanup())
except Exception as e:
logger.error(f"Error cleaning up session {session_id} for watch {watch_uuid}: {e}")
# Remove from sessions dict
del browsersteps_sessions[session_id]
# Remove from watch mapping
del browsersteps_watch_to_session[watch_uuid]
logger.debug(f"Cleaned up session for watch {watch_uuid}")
# Opportunistically cleanup any other expired sessions
cleanup_expired_sessions()
def construct_blueprint(datastore: ChangeDetectionStore):
browser_steps_blueprint = Blueprint('browser_steps', __name__, template_folder="templates")
@@ -123,6 +246,9 @@ def construct_blueprint(datastore: ChangeDetectionStore):
if not watch_uuid:
return make_response('No Watch UUID specified', 500)
# Cleanup any existing session for this watch
cleanup_session_for_watch(watch_uuid)
logger.debug("Starting connection with playwright")
logger.debug("browser_steps.py connecting")
@@ -131,6 +257,10 @@ def construct_blueprint(datastore: ChangeDetectionStore):
browsersteps_sessions[browsersteps_session_id] = run_async_in_browser_loop(
start_browsersteps_session(watch_uuid)
)
# Store the mapping of watch_uuid -> browsersteps_session_id
browsersteps_watch_to_session[watch_uuid] = browsersteps_session_id
except Exception as e:
if 'ECONNREFUSED' in str(e):
return make_response('Unable to start the Playwright Browser session, is sockpuppetbrowser running? Network configuration is OK?', 401)

View File

@@ -1,13 +1,8 @@
from flask import Blueprint, request, redirect, url_for, flash, render_template
from loguru import logger
from changedetectionio.store import ChangeDetectionStore
from changedetectionio.auth_decorator import login_optionally_required
from changedetectionio import worker_handler
from changedetectionio.blueprint.imports.importer import (
import_url_list,
import_distill_io_json,
import_xlsx_wachete,
import_xlsx_custom
)
def construct_blueprint(datastore: ChangeDetectionStore, update_q, queuedWatchMetaData):
import_blueprint = Blueprint('imports', __name__, template_folder="templates")
@@ -17,15 +12,26 @@ def construct_blueprint(datastore: ChangeDetectionStore, update_q, queuedWatchMe
def import_page():
remaining_urls = []
from changedetectionio import forms
#
if request.method == 'POST':
# from changedetectionio import worker_handler
from changedetectionio.blueprint.imports.importer import (
import_url_list,
import_distill_io_json,
import_xlsx_wachete,
import_xlsx_custom
)
# URL List import
if request.values.get('urls') and len(request.values.get('urls').strip()):
# Import and push into the queue for immediate update check
importer_handler = import_url_list()
importer_handler.run(data=request.values.get('urls'), flash=flash, datastore=datastore, processor=request.values.get('processor', 'text_json_diff'))
for uuid in importer_handler.new_uuids:
worker_handler.queue_item_async_safe(update_q, queuedWatchMetaData.PrioritizedItem(priority=1, item={'uuid': uuid}))
logger.debug(f"Imported {len(importer_handler.new_uuids)} new UUIDs")
# Dont' add to queue because scheduler can see that they haven't been checked and will add them to the queue
# for uuid in importer_handler.new_uuids:
# worker_handler.queue_item_async_safe(update_q, queuedWatchMetaData.PrioritizedItem(priority=1, item={'uuid': uuid}))
if len(importer_handler.remaining_data) == 0:
return redirect(url_for('watchlist.index'))
@@ -37,8 +43,10 @@ def construct_blueprint(datastore: ChangeDetectionStore, update_q, queuedWatchMe
# Import and push into the queue for immediate update check
d_importer = import_distill_io_json()
d_importer.run(data=request.values.get('distill-io'), flash=flash, datastore=datastore)
for uuid in d_importer.new_uuids:
worker_handler.queue_item_async_safe(update_q, queuedWatchMetaData.PrioritizedItem(priority=1, item={'uuid': uuid}))
# Dont' add to queue because scheduler can see that they haven't been checked and will add them to the queue
# for uuid in importer_handler.new_uuids:
# worker_handler.queue_item_async_safe(update_q, queuedWatchMetaData.PrioritizedItem(priority=1, item={'uuid': uuid}))
# XLSX importer
if request.files and request.files.get('xlsx_file'):
@@ -60,8 +68,10 @@ def construct_blueprint(datastore: ChangeDetectionStore, update_q, queuedWatchMe
w_importer.import_profile = map
w_importer.run(data=file, flash=flash, datastore=datastore)
for uuid in w_importer.new_uuids:
worker_handler.queue_item_async_safe(update_q, queuedWatchMetaData.PrioritizedItem(priority=1, item={'uuid': uuid}))
# Dont' add to queue because scheduler can see that they haven't been checked and will add them to the queue
# for uuid in importer_handler.new_uuids:
# worker_handler.queue_item_async_safe(update_q, queuedWatchMetaData.PrioritizedItem(priority=1, item={'uuid': uuid}))
# Could be some remaining, or we could be on GET
form = forms.importForm(formdata=request.form if request.method == 'POST' else None)

View File

@@ -2,6 +2,7 @@ from abc import abstractmethod
import time
from wtforms import ValidationError
from loguru import logger
from flask_babel import gettext
from changedetectionio.forms import validate_url
@@ -41,7 +42,7 @@ class import_url_list(Importer):
now = time.time()
if (len(urls) > 5000):
flash("Importing 5,000 of the first URLs from your list, the rest can be imported again.")
flash(gettext("Importing 5,000 of the first URLs from your list, the rest can be imported again."))
for url in urls:
url = url.strip()
@@ -74,7 +75,7 @@ class import_url_list(Importer):
self.remaining_data = []
self.remaining_data.append(url)
flash("{} Imported from list in {:.2f}s, {} Skipped.".format(good, time.time() - now, len(self.remaining_data)))
flash(gettext("{} Imported from list in {:.2f}s, {} Skipped.").format(good, time.time() - now, len(self.remaining_data)))
class import_distill_io_json(Importer):
@@ -94,11 +95,11 @@ class import_distill_io_json(Importer):
try:
data = json.loads(data.strip())
except json.decoder.JSONDecodeError:
flash("Unable to read JSON file, was it broken?", 'error')
flash(gettext("Unable to read JSON file, was it broken?"), 'error')
return
if not data.get('data'):
flash("JSON structure looks invalid, was it broken?", 'error')
flash(gettext("JSON structure looks invalid, was it broken?"), 'error')
return
for d in data.get('data'):
@@ -135,7 +136,7 @@ class import_distill_io_json(Importer):
self.new_uuids.append(new_uuid)
good += 1
flash("{} Imported from Distill.io in {:.2f}s, {} Skipped.".format(len(self.new_uuids), time.time() - now, len(self.remaining_data)))
flash(gettext("{} Imported from Distill.io in {:.2f}s, {} Skipped.").format(len(self.new_uuids), time.time() - now, len(self.remaining_data)))
class import_xlsx_wachete(Importer):
@@ -156,7 +157,7 @@ class import_xlsx_wachete(Importer):
wb = load_workbook(data)
except Exception as e:
# @todo correct except
flash("Unable to read export XLSX file, something wrong with the file?", 'error')
flash(gettext("Unable to read export XLSX file, something wrong with the file?"), 'error')
return
row_id = 2
@@ -196,7 +197,7 @@ class import_xlsx_wachete(Importer):
validate_url(data.get('url'))
except ValidationError as e:
logger.error(f">> Import URL error {data.get('url')} {str(e)}")
flash(f"Error processing row number {row_id}, URL value was incorrect, row was skipped.", 'error')
flash(gettext("Error processing row number {}, URL value was incorrect, row was skipped.").format(row_id), 'error')
# Don't bother processing anything else on this row
continue
@@ -210,12 +211,11 @@ class import_xlsx_wachete(Importer):
good += 1
except Exception as e:
logger.error(e)
flash(f"Error processing row number {row_id}, check all cell data types are correct, row was skipped.", 'error')
flash(gettext("Error processing row number {}, check all cell data types are correct, row was skipped.").format(row_id), 'error')
else:
row_id += 1
flash(
"{} imported from Wachete .xlsx in {:.2f}s".format(len(self.new_uuids), time.time() - now))
flash(gettext("{} imported from Wachete .xlsx in {:.2f}s").format(len(self.new_uuids), time.time() - now))
class import_xlsx_custom(Importer):
@@ -236,7 +236,7 @@ class import_xlsx_custom(Importer):
wb = load_workbook(data)
except Exception as e:
# @todo correct except
flash("Unable to read export XLSX file, something wrong with the file?", 'error')
flash(gettext("Unable to read export XLSX file, something wrong with the file?"), 'error')
return
# @todo cehck atleast 2 rows, same in other method
@@ -265,7 +265,7 @@ class import_xlsx_custom(Importer):
validate_url(url)
except ValidationError as e:
logger.error(f">> Import URL error {url} {str(e)}")
flash(f"Error processing row number {row_i}, URL value was incorrect, row was skipped.", 'error')
flash(gettext("Error processing row number {}, URL value was incorrect, row was skipped.").format(row_i), 'error')
# Don't bother processing anything else on this row
url = None
break
@@ -294,9 +294,8 @@ class import_xlsx_custom(Importer):
good += 1
except Exception as e:
logger.error(e)
flash(f"Error processing row number {row_i}, check all cell data types are correct, row was skipped.", 'error')
flash(gettext("Error processing row number {}, check all cell data types are correct, row was skipped.").format(row_i), 'error')
else:
row_i += 1
flash(
"{} imported from custom .xlsx in {:.2f}s".format(len(self.new_uuids), time.time() - now))
flash(gettext("{} imported from custom .xlsx in {:.2f}s").format(len(self.new_uuids), time.time() - now))

View File

@@ -47,9 +47,6 @@ def construct_single_watch_routes(rss_blueprint, datastore):
if len(dates) < 2:
return f"Watch {uuid} does not have enough history snapshots to show changes (need at least 2)", 400
# Add uuid to watch for proper functioning
watch['uuid'] = uuid
# Get the number of diffs to include (default: 5)
rss_diff_length = datastore.data['settings']['application'].get('rss_diff_length', 5)
@@ -101,7 +98,7 @@ def construct_single_watch_routes(rss_blueprint, datastore):
date_index_from, date_index_to)
# Create and populate feed entry
guid = f"{watch['uuid']}/{timestamp_to}"
guid = f"{uuid}/{timestamp_to}"
fe = fg.add_entry()
title_suffix = f"Change @ {res['original_context']['change_datetime']}"
populate_feed_entry(fe, watch, res.get('body', ''), guid, timestamp_to,

View File

@@ -63,11 +63,8 @@ def construct_tag_routes(rss_blueprint, datastore):
# Only include unviewed watches
if not watch.viewed:
# Add uuid to watch for proper functioning
watch['uuid'] = uuid
# Include a link to the diff page
diff_link = {'href': url_for('ui.ui_diff.diff_history_page', uuid=watch['uuid'], _external=True)}
# Include a link to the diff page (use uuid from loop, don't modify watch dict)
diff_link = {'href': url_for('ui.ui_diff.diff_history_page', uuid=uuid, _external=True)}
# Get watch label
watch_label = get_watch_label(datastore, watch)

View File

@@ -5,6 +5,7 @@ from zoneinfo import ZoneInfo, available_timezones
import secrets
import flask_login
from flask import Blueprint, render_template, request, redirect, url_for, flash
from flask_babel import gettext
from changedetectionio.store import ChangeDetectionStore
from changedetectionio.auth_decorator import login_optionally_required
@@ -60,7 +61,7 @@ def construct_blueprint(datastore: ChangeDetectionStore):
# SALTED_PASS means the password is "locked" to what we set in the Env var
if not os.getenv("SALTED_PASS", False):
datastore.remove_password()
flash("Password protection removed.", 'notice')
flash(gettext("Password protection removed."), 'notice')
flask_login.logout_user()
return redirect(url_for('settings.settings_page'))
@@ -77,14 +78,20 @@ def construct_blueprint(datastore: ChangeDetectionStore):
# Handle dynamic worker count adjustment
old_worker_count = datastore.data['settings']['requests'].get('workers', 1)
new_worker_count = form.data['requests'].get('workers', 1)
datastore.data['settings']['requests'].update(form.data['requests'])
# Adjust worker count if it changed
if new_worker_count != old_worker_count:
from changedetectionio import worker_handler
from changedetectionio.flask_app import update_q, notification_q, app, datastore as ds
# Check CPU core availability and warn if worker count is high
cpu_count = os.cpu_count()
if cpu_count and new_worker_count >= (cpu_count * 0.9):
flash(gettext("Warning: Worker count ({}) is close to or exceeds available CPU cores ({})").format(
new_worker_count, cpu_count), 'warning')
result = worker_handler.adjust_async_worker_count(
new_count=new_worker_count,
update_q=update_q,
@@ -92,18 +99,18 @@ def construct_blueprint(datastore: ChangeDetectionStore):
app=app,
datastore=ds
)
if result['status'] == 'success':
flash(f"Worker count adjusted: {result['message']}", 'notice')
flash(gettext("Worker count adjusted: {}").format(result['message']), 'notice')
elif result['status'] == 'not_supported':
flash("Dynamic worker adjustment not supported for sync workers", 'warning')
flash(gettext("Dynamic worker adjustment not supported for sync workers"), 'warning')
elif result['status'] == 'error':
flash(f"Error adjusting workers: {result['message']}", 'error')
flash(gettext("Error adjusting workers: {}").format(result['message']), 'error')
if not os.getenv("SALTED_PASS", False) and len(form.application.form.password.encrypted_password):
datastore.data['settings']['application']['password'] = form.application.form.password.encrypted_password
datastore.needs_write_urgent = True
flash("Password protection enabled.", 'notice')
flash(gettext("Password protection enabled."), 'notice')
flask_login.logout_user()
return redirect(url_for('watchlist.index'))
@@ -122,10 +129,10 @@ def construct_blueprint(datastore: ChangeDetectionStore):
if plugin_form.data:
save_plugin_settings(datastore.datastore_path, plugin_id, plugin_form.data)
flash("Settings updated.")
flash(gettext("Settings updated."))
else:
flash("An error occurred, please see below.", "error")
flash(gettext("An error occurred, please see below."), "error")
# Convert to ISO 8601 format, all date/time relative events stored as UTC time
utc_time = datetime.now(ZoneInfo("UTC")).isoformat()
@@ -175,7 +182,7 @@ def construct_blueprint(datastore: ChangeDetectionStore):
secret = secrets.token_hex(16)
datastore.data['settings']['application']['api_access_token'] = secret
datastore.needs_write_urgent = True
flash("API Key was regenerated.")
flash(gettext("API Key was regenerated."))
return redirect(url_for('settings.settings_page')+'#api')
@settings_blueprint.route("/notification-logs", methods=['GET'])
@@ -186,4 +193,32 @@ def construct_blueprint(datastore: ChangeDetectionStore):
logs=notification_debug_log if len(notification_debug_log) else ["Notification logs are empty - no notifications sent yet."])
return output
@settings_blueprint.route("/toggle-all-paused", methods=['GET'])
@login_optionally_required
def toggle_all_paused():
current_state = datastore.data['settings']['application'].get('all_paused', False)
datastore.data['settings']['application']['all_paused'] = not current_state
datastore.needs_write_urgent = True
if datastore.data['settings']['application']['all_paused']:
flash(gettext("Automatic scheduling paused - checks will not be queued."), 'notice')
else:
flash(gettext("Automatic scheduling resumed - checks will be queued normally."), 'notice')
return redirect(url_for('watchlist.index'))
@settings_blueprint.route("/toggle-all-muted", methods=['GET'])
@login_optionally_required
def toggle_all_muted():
current_state = datastore.data['settings']['application'].get('all_muted', False)
datastore.data['settings']['application']['all_muted'] = not current_state
datastore.needs_write_urgent = True
if datastore.data['settings']['application']['all_muted']:
flash(gettext("All notifications muted."), 'notice')
else:
flash(gettext("All notifications unmuted."), 'notice')
return redirect(url_for('watchlist.index'))
return settings_blueprint

View File

@@ -25,6 +25,7 @@
<li class="tab"><a href="#ui-options">{{ _('UI Options') }}</a></li>
<li class="tab"><a href="#api">{{ _('API') }}</a></li>
<li class="tab"><a href="#rss">{{ _('RSS') }}</a></li>
<li class="tab"><a href="{{ url_for('backups.index') }}" class="pure-menu-link">{{ _('Backups') }}</a></li>
<li class="tab"><a href="#timedate">{{ _('Time & Date') }}</a></li>
<li class="tab"><a href="#proxies">{{ _('CAPTCHA & Proxies') }}</a></li>
{% if plugin_tabs %}
@@ -53,9 +54,9 @@
</div>
<div class="pure-control-group">
{{ render_field(form.application.form.filter_failure_notification_threshold_attempts, class="filter_failure_notification_threshold_attempts") }}
<span class="pure-form-message-inline">After this many consecutive times that the CSS/xPath filter is missing, send a notification
<span class="pure-form-message-inline">{{ _('After this many consecutive times that the CSS/xPath filter is missing, send a notification') }}
<br>
Set to <strong>0</strong> to disable
{{ _('Set to') }} <strong>0</strong> {{ _('to disable') }}
</span>
</div>
<div class="pure-control-group">
@@ -64,36 +65,33 @@
{{ render_button(form.application.form.removepassword_button) }}
{% else %}
{{ render_field(form.application.form.password) }}
<span class="pure-form-message-inline">Password protection for your changedetection.io application.</span>
<span class="pure-form-message-inline">{{ _('Password protection for your changedetection.io application.') }}</span>
{% endif %}
{% else %}
<span class="pure-form-message-inline">Password is locked.</span>
<span class="pure-form-message-inline">{{ _('Password is locked.') }}</span>
{% endif %}
</div>
<div class="pure-control-group">
{{ render_checkbox_field(form.application.form.shared_diff_access, class="shared_diff_access") }}
<span class="pure-form-message-inline">Allow access to the watch change history page when password is enabled (Good for sharing the diff page)
</span>
<span class="pure-form-message-inline">{{ _('Allow access to the watch change history page when password is enabled (Good for sharing the diff page)') }}</span>
</div>
<div class="pure-control-group">
{{ render_checkbox_field(form.application.form.empty_pages_are_a_change) }}
<span class="pure-form-message-inline">When a request returns no content, or the HTML does not contain any text, is this considered a change?</span>
<span class="pure-form-message-inline">{{ _('When a request returns no content, or the HTML does not contain any text, is this considered a change?') }}</span>
</div>
</fieldset>
</div>
<div class="tab-pane-inner" id="notifications">
<fieldset>
<div class="field-group">
{{ render_common_settings_form(form.application.form, emailprefix, settings_application, extra_notification_token_placeholder_info) }}
</div>
{{ render_common_settings_form(form.application.form, emailprefix, settings_application, extra_notification_token_placeholder_info) }}
</fieldset>
<div class="pure-control-group" id="notification-base-url">
{{ render_field(form.application.form.base_url, class="m-d") }}
<span class="pure-form-message-inline">
Base URL used for the <code>{{ '{{ base_url }}' }}</code> token in notification links.<br>
Default value is the system environment variable '<code>BASE_URL</code>' - <a href="https://github.com/dgtlmoon/changedetection.io/wiki/Configurable-BASE_URL-setting">read more here</a>.
{{ _('Base URL used for the') }} <code>{{ '{{ base_url }}' }}</code> {{ _('token in notification links.') }}<br>
{{ _('Default value is the system environment variable') }} '<code>BASE_URL</code>' - <a href="https://github.com/dgtlmoon/changedetection.io/wiki/Configurable-BASE_URL-setting">{{ _('read more here') }}</a>.
</span>
</div>
</div>
@@ -102,15 +100,15 @@
<div class="pure-control-group inline-radio">
{{ render_field(form.application.form.fetch_backend, class="fetch-backend") }}
<span class="pure-form-message-inline">
<p>Use the <strong>Basic</strong> method (default) where your watched sites don't need Javascript to render.</p>
<p>The <strong>Chrome/Javascript</strong> method requires a network connection to a running WebDriver+Chrome server, set by the ENV var 'WEBDRIVER_URL'. </p>
<p>{{ _('Use the') }} <strong>{{ _('Basic') }}</strong> {{ _('method (default) where your watched sites don\'t need Javascript to render.') }}</p>
<p>{{ _('The') }} <strong>{{ _('Chrome/Javascript') }}</strong> {{ _('method requires a network connection to a running WebDriver+Chrome server, set by the ENV var') }} 'WEBDRIVER_URL'. </p>
</span>
</div>
<fieldset class="pure-group" id="webdriver-override-options" data-visible-for="application-fetch_backend=html_webdriver">
<div class="pure-form-message-inline">
<strong>If you're having trouble waiting for the page to be fully rendered (text missing etc), try increasing the 'wait' time here.</strong>
<strong>{{ _('If you\'re having trouble waiting for the page to be fully rendered (text missing etc), try increasing the \'wait\' time here.') }}</strong>
<br>
This will wait <i>n</i> seconds before extracting the text.
{{ _('This will wait') }} <i>n</i> {{ _('seconds before extracting the text.') }}
</div>
<div class="pure-control-group">
{{ render_field(form.application.form.webdriver_delay) }}
@@ -119,27 +117,27 @@
<div class="pure-control-group">
{{ render_field(form.requests.form.workers) }}
{% set worker_info = get_worker_status_info() %}
<span class="pure-form-message-inline">Number of concurrent workers to process watches. More workers = faster processing but higher memory usage.<br>
Currently running: <strong>{{ worker_info.count }}</strong> operational {{ worker_info.type }} workers{% if worker_info.active_workers > 0 %} ({{ worker_info.active_workers }} actively processing){% endif %}.</span>
<span class="pure-form-message-inline">{{ _('Number of concurrent workers to process watches. More workers = faster processing but higher memory usage.') }}<br>
{{ _('Currently running:') }} <strong>{{ worker_info.count }}</strong> {{ _('operational') }} {{ worker_info.type }} {{ _('workers') }}{% if worker_info.active_workers > 0 %} ({{ worker_info.active_workers }} {{ _('actively processing') }}){% endif %}.</span>
</div>
<div class="pure-control-group">
{{ render_field(form.requests.form.jitter_seconds, class="jitter_seconds") }}
<span class="pure-form-message-inline">Example - 3 seconds random jitter could trigger up to 3 seconds earlier or up to 3 seconds later</span>
<span class="pure-form-message-inline">{{ _('Example - 3 seconds random jitter could trigger up to 3 seconds earlier or up to 3 seconds later') }}</span>
</div>
<div class="pure-control-group">
{{ render_field(form.requests.form.timeout) }}
<span class="pure-form-message-inline">For regular plain requests (not chrome based), maximum number of seconds until timeout, 1-999.<br>
<span class="pure-form-message-inline">{{ _('For regular plain requests (not chrome based), maximum number of seconds until timeout, 1-999.') }}</span><br>
</div>
<div class="pure-control-group inline-radio">
{{ render_field(form.requests.form.default_ua) }}
<span class="pure-form-message-inline">
Applied to all requests.<br><br>
Note: Simply changing the User-Agent often does not defeat anti-robot technologies, it's important to consider <a href="https://changedetection.io/tutorial/what-are-main-types-anti-robot-mechanisms">all of the ways that the browser is detected</a>.
{{ _('Applied to all requests.') }}<br><br>
{{ _('Note: Simply changing the User-Agent often does not defeat anti-robot technologies, it\'s important to consider') }} <a href="https://changedetection.io/tutorial/what-are-main-types-anti-robot-mechanisms">{{ _('all of the ways that the browser is detected') }}</a>.
</span>
</div>
<div class="pure-control-group">
<br>
Tip: <a href="https://github.com/dgtlmoon/changedetection.io/wiki/Proxy-configuration#brightdata-proxy-support">Connect using Bright Data and Oxylabs Proxies, find out more here.</a>
{{ _('Tip:') }} <a href="https://github.com/dgtlmoon/changedetection.io/wiki/Proxy-configuration#brightdata-proxy-support">{{ _('Connect using Bright Data and Oxylabs Proxies, find out more here.') }}</a>
</div>
</div>
@@ -148,15 +146,15 @@
<fieldset class="pure-group">
{{ render_checkbox_field(form.application.form.ignore_whitespace) }}
<span class="pure-form-message-inline">Ignore whitespace, tabs and new-lines/line-feeds when considering if a change was detected.<br>
<i>Note:</i> Changing this will change the status of your existing watches, possibly trigger alerts etc.
<span class="pure-form-message-inline">{{ _('Ignore whitespace, tabs and new-lines/line-feeds when considering if a change was detected.') }}<br>
<i>{{ _('Note:') }}</i> {{ _('Changing this will change the status of your existing watches, possibly trigger alerts etc.') }}
</span>
</fieldset>
<fieldset class="pure-group">
{{ render_checkbox_field(form.application.form.render_anchor_tag_content) }}
<span class="pure-form-message-inline">Render anchor tag content, default disabled, when enabled renders links as <code>(link text)[https://somesite.com]</code>
<span class="pure-form-message-inline">{{ _('Render anchor tag content, default disabled, when enabled renders links as') }} <code>(link text)[https://somesite.com]</code>
<br>
<i>Note:</i> Changing this could affect the content of your existing watches, possibly trigger alerts etc.
<i>{{ _('Note:') }}</i> {{ _('Changing this could affect the content of your existing watches, possibly trigger alerts etc.') }}
</span>
</fieldset>
<fieldset class="pure-group">
@@ -167,9 +165,9 @@ nav
//*[contains(text(), 'Advertisement')]") }}
<span class="pure-form-message-inline">
<ul>
<li> Remove HTML element(s) by CSS and XPath selectors before text conversion. </li>
<li> Don't paste HTML here, use only CSS and XPath selectors </li>
<li> Add multiple elements, CSS or XPath selectors per line to ignore multiple parts of the HTML. </li>
<li> {{ _('Remove HTML element(s) by CSS and XPath selectors before text conversion.') }} </li>
<li> {{ _('Don\'t paste HTML here, use only CSS and XPath selectors') }} </li>
<li> {{ _('Add multiple elements, CSS or XPath selectors per line to ignore multiple parts of the HTML.') }} </li>
</ul>
</span>
</fieldset>
@@ -177,50 +175,50 @@ nav
{{ render_field(form.application.form.global_ignore_text, rows=5, placeholder="Some text to ignore in a line
/some.regex\d{2}/ for case-INsensitive regex
") }}
<span class="pure-form-message-inline">Note: This is applied globally in addition to the per-watch rules.</span><br>
<span class="pure-form-message-inline">{{ _('Note: This is applied globally in addition to the per-watch rules.') }}</span><br>
<span class="pure-form-message-inline">
<ul>
<li>Matching text will be <strong>ignored</strong> in the text snapshot (you can still see it but it wont trigger a change)</li>
<li>Note: This is applied globally in addition to the per-watch rules.</li>
<li>Each line processed separately, any line matching will be ignored (removed before creating the checksum)</li>
<li>Regular Expression support, wrap the entire line in forward slash <code>/regex/</code></li>
<li>Changing this will affect the comparison checksum which may trigger an alert</li>
<li>{{ _('Matching text will be') }} <strong>{{ _('ignored') }}</strong> {{ _('in the text snapshot (you can still see it but it wont trigger a change)') }}</li>
<li>{{ _('Note: This is applied globally in addition to the per-watch rules.') }}</li>
<li>{{ _('Each line processed separately, any line matching will be ignored (removed before creating the checksum)') }}</li>
<li>{{ _('Regular Expression support, wrap the entire line in forward slash') }} <code>/regex/</code></li>
<li>{{ _('Changing this will affect the comparison checksum which may trigger an alert') }}</li>
</ul>
</span>
</fieldset>
<fieldset class="pure-group">
{{ render_checkbox_field(form.application.form.strip_ignored_lines) }}
<span class="pure-form-message-inline">Remove any text that appears in the "Ignore text" from the output (otherwise its just ignored for change-detection)<br>
<i>Note:</i> Changing this will change the status of your existing watches, possibly trigger alerts etc.
<span class="pure-form-message-inline">{{ _('Remove any text that appears in the "Ignore text" from the output (otherwise its just ignored for change-detection)') }}<br>
<i>{{ _('Note:') }}</i> {{ _('Changing this will change the status of your existing watches, possibly trigger alerts etc.') }}
</span>
</fieldset>
</div>
<div class="tab-pane-inner" id="api">
<h4>API Access</h4>
<p>Drive your changedetection.io via API, More about <a href="https://changedetection.io/docs/api_v1/index.html">API access and examples here</a>.</p>
<h4>{{ _('API Access') }}</h4>
<p>{{ _('Drive your changedetection.io via API, More about') }} <a href="https://changedetection.io/docs/api_v1/index.html">{{ _('API access and examples here') }}</a>.</p>
<div class="pure-control-group">
{{ render_checkbox_field(form.application.form.api_access_token_enabled) }}
<div class="pure-form-message-inline">Restrict API access limit by using <code>x-api-key</code> header - required for the Chrome Extension to work</div><br>
<div class="pure-form-message-inline"><br>API Key <span id="api-key">{{api_key}}</span>
<span style="display:none;" id="api-key-copy" >copy</span>
<div class="pure-form-message-inline">{{ _('Restrict API access limit by using') }} <code>x-api-key</code> {{ _('header - required for the Chrome Extension to work') }}</div><br>
<div class="pure-form-message-inline"><br>{{ _('API Key') }} <span id="api-key">{{api_key}}</span>
<span style="display:none;" id="api-key-copy" >{{ _('copy') }}</span>
</div>
</div>
<div class="pure-control-group">
<a href="{{url_for('settings.settings_reset_api_key')}}" class="pure-button button-small button-cancel">Regenerate API key</a>
<a href="{{url_for('settings.settings_reset_api_key')}}" class="pure-button button-small button-cancel">{{ _('Regenerate API key') }}</a>
</div>
<div class="pure-control-group">
<h4>Chrome Extension</h4>
<p>Easily add any web-page to your changedetection.io installation from within Chrome.</p>
<strong>Step 1</strong> Install the extension, <strong>Step 2</strong> Navigate to this page,
<strong>Step 3</strong> Open the extension from the toolbar and click "<i>Sync API Access</i>"
<h4>{{ _('Chrome Extension') }}</h4>
<p>{{ _('Easily add any web-page to your changedetection.io installation from within Chrome.') }}</p>
<strong>{{ _('Step 1') }}</strong> {{ _('Install the extension,') }} <strong>{{ _('Step 2') }}</strong> {{ _('Navigate to this page,') }}
<strong>{{ _('Step 3') }}</strong> {{ _('Open the extension from the toolbar and click') }} "<i>{{ _('Sync API Access') }}</i>"
<p>
<a id="chrome-extension-link"
title="Try our new Chrome Extension!"
title="{{ _('Try our new Chrome Extension!') }}"
href="https://chromewebstore.google.com/detail/changedetectionio-website/kefcfmgmlhmankjmnbijimhofdjekbop">
<img alt="Chrome store icon" src="{{ url_for('static_content', group='images', filename='google-chrome-icon.png') }}" alt="Chrome">
Chrome Webstore
<img alt="{{ _('Chrome store icon') }}" src="{{ url_for('static_content', group='images', filename='google-chrome-icon.png') }}" >
{{ _('Chrome Webstore') }}
</a>
</p>
</div>
@@ -231,20 +229,20 @@ nav
</div>
<div class="pure-control-group">
{{ render_field(form.application.form.rss_diff_length) }}
<span class="pure-form-message-inline">Maximum number of history snapshots to include in the watch specific RSS feed.</span>
<span class="pure-form-message-inline">{{ _('Maximum number of history snapshots to include in the watch specific RSS feed.') }}</span>
</div>
<div class="pure-control-group">
{{ render_checkbox_field(form.application.form.rss_reader_mode) }}
<span class="pure-form-message-inline">For watching other RSS feeds - When watching RSS/Atom feeds, convert them into clean text for better change detection.</span>
<span class="pure-form-message-inline">{{ _('For watching other RSS feeds - When watching RSS/Atom feeds, convert them into clean text for better change detection.') }}</span>
</div>
<div class="pure-control-group grey-form-border">
<div class="pure-control-group">
{{ render_field(form.application.form.rss_content_format) }}
<span class="pure-form-message-inline">Does your reader support HTML? Set it here</span>
<span class="pure-form-message-inline">{{ _('Does your reader support HTML? Set it here') }}</span>
</div>
<div class="pure-control-group">
{{ render_field(form.application.form.rss_template_type) }}
<span class="pure-form-message-inline">'System default' for the same template for all items, or re-use your "Notification Body" as the template.</span>
<span class="pure-form-message-inline">{{ _('\'System default\' for the same template for all items, or re-use your "Notification Body" as the template.') }}</span>
</div>
<div>
{{ render_field(form.application.form.rss_template_override) }}
@@ -257,38 +255,38 @@ nav
</div>
<div class="tab-pane-inner" id="timedate">
<div class="pure-control-group">
Ensure the settings below are correct, they are used to manage the time schedule for checking your web page watches.
{{ _('Ensure the settings below are correct, they are used to manage the time schedule for checking your web page watches.') }}
</div>
<div class="pure-control-group">
<p><strong>UTC Time &amp Date from Server:</strong> <span id="utc-time" >{{ utc_time }}</span></p>
<p><strong>Local Time &amp Date in Browser:</strong> <span class="local-time" data-utc="{{ utc_time }}"></span></p>
<p>
<p><strong>{{ _('UTC Time & Date from Server:') }}</strong> <span id="utc-time" >{{ utc_time }}</span></p>
<p><strong>{{ _('Local Time & Date in Browser:') }}</strong> <span class="local-time" data-utc="{{ utc_time }}"></span></p>
<div>
{{ render_field(form.application.form.scheduler_timezone_default) }}
<datalist id="timezones" style="display: none;">
{%- for timezone in available_timezones -%}<option value="{{ timezone }}">{{ timezone }}</option>{%- endfor -%}
</datalist>
</p>
</div>
</div>
</div>
<div class="tab-pane-inner" id="ui-options">
<div class="pure-control-group">
{{ render_checkbox_field(form.application.form.ui.form.open_diff_in_new_tab, class="open_diff_in_new_tab") }}
<span class="pure-form-message-inline">Enable this setting to open the diff page in a new tab. If disabled, the diff page will open in the current tab.</span>
<span class="pure-form-message-inline">{{ _('Enable this setting to open the diff page in a new tab. If disabled, the diff page will open in the current tab.') }}</span>
</div>
<div class="pure-control-group">
{{ render_checkbox_field(form.application.form.ui.form.socket_io_enabled, class="socket_io_enabled") }}
<span class="pure-form-message-inline">Realtime UI Updates Enabled - (Restart required if this is changed)</span>
<span class="pure-form-message-inline">{{ _('Realtime UI Updates Enabled - (Restart required if this is changed)') }}</span>
</div>
<div class="pure-control-group">
{{ render_checkbox_field(form.application.form.ui.form.favicons_enabled, class="") }}
<span class="pure-form-message-inline">Enable or Disable Favicons next to the watch list</span>
<span class="pure-form-message-inline">{{ _('Enable or Disable Favicons next to the watch list') }}</span>
</div>
<div class="pure-control-group">
{{ render_checkbox_field(form.application.form.ui.use_page_title_in_list) }}
</div>
<div class="pure-control-group">
{{ render_field(form.application.form.pager_size) }}
<span class="pure-form-message-inline">Number of items per page in the watch overview list, 0 to disable.</span>
<span class="pure-form-message-inline">{{ _('Number of items per page in the watch overview list, 0 to disable.') }}</span>
</div>
</div>
@@ -336,18 +334,18 @@ nav
</div>
</div>
<p><strong>Tip</strong>: "Residential" and "Mobile" proxy type can be more successfull than "Data Center" for blocked websites.
<p><strong>{{ _('Tip') }}</strong>: {{ _('"Residential" and "Mobile" proxy type can be more successfull than "Data Center" for blocked websites.') }}</p>
<div class="pure-control-group" id="extra-proxies-setting">
{{ render_fieldlist_with_inline_errors(form.requests.form.extra_proxies) }}
<span class="pure-form-message-inline">"Name" will be used for selecting the proxy in the Watch Edit settings</span><br>
<span class="pure-form-message-inline">SOCKS5 proxies with authentication are only supported with 'plain requests' fetcher, for other fetchers you should whitelist the IP access instead</span>
<span class="pure-form-message-inline">{{ _('"Name" will be used for selecting the proxy in the Watch Edit settings') }}</span><br>
<span class="pure-form-message-inline">{{ _('SOCKS5 proxies with authentication are only supported with \'plain requests\' fetcher, for other fetchers you should whitelist the IP access instead') }}</span>
{% if form.requests.proxy %}
<div>
<br>
<div class="inline-radio">
{{ render_field(form.requests.form.proxy, class="fetch-backend-proxy") }}
<span class="pure-form-message-inline">Choose a default proxy for all watches</span>
<span class="pure-form-message-inline">{{ _('Choose a default proxy for all watches') }}</span>
</div>
</div>
{% endif %}

View File

@@ -1,5 +1,7 @@
import threading
from flask import Blueprint, request, render_template, flash, url_for, redirect
from flask_babel import gettext
from loguru import logger
from changedetectionio.store import ChangeDetectionStore
from changedetectionio.flask_app import login_optionally_required
@@ -43,11 +45,11 @@ def construct_blueprint(datastore: ChangeDetectionStore):
title = request.form.get('name').strip()
if datastore.tag_exists_by_name(title):
flash(f'The tag "{title}" already exists', "error")
flash(gettext('The tag "{}" already exists').format(title), "error")
return redirect(url_for('tags.tags_overview_page'))
datastore.add_tag(title)
flash("Tag added")
flash(gettext("Tag added"))
return redirect(url_for('tags.tags_overview_page'))
@@ -62,39 +64,73 @@ def construct_blueprint(datastore: ChangeDetectionStore):
@tags_blueprint.route("/delete/<string:uuid>", methods=['GET'])
@login_optionally_required
def delete(uuid):
removed = 0
# Delete the tag, and any tag reference
# Delete the tag from settings immediately
if datastore.data['settings']['application']['tags'].get(uuid):
del datastore.data['settings']['application']['tags'][uuid]
for watch_uuid, watch in datastore.data['watching'].items():
if watch.get('tags') and uuid in watch['tags']:
removed += 1
watch['tags'].remove(uuid)
# Remove tag from all watches in background thread to avoid blocking
def remove_tag_background(tag_uuid):
"""Background thread to remove tag from watches - discarded after completion."""
removed_count = 0
try:
for watch_uuid, watch in datastore.data['watching'].items():
if watch.get('tags') and tag_uuid in watch['tags']:
watch['tags'].remove(tag_uuid)
removed_count += 1
logger.info(f"Background: Tag {tag_uuid} removed from {removed_count} watches")
except Exception as e:
logger.error(f"Error removing tag from watches: {e}")
flash(f"Tag deleted and removed from {removed} watches")
# Start daemon thread
threading.Thread(target=remove_tag_background, args=(uuid,), daemon=True).start()
flash(gettext("Tag deleted, removing from watches in background"))
return redirect(url_for('tags.tags_overview_page'))
@tags_blueprint.route("/unlink/<string:uuid>", methods=['GET'])
@login_optionally_required
def unlink(uuid):
unlinked = 0
for watch_uuid, watch in datastore.data['watching'].items():
if watch.get('tags') and uuid in watch['tags']:
unlinked += 1
watch['tags'].remove(uuid)
# Unlink tag from all watches in background thread to avoid blocking
def unlink_tag_background(tag_uuid):
"""Background thread to unlink tag from watches - discarded after completion."""
unlinked_count = 0
try:
for watch_uuid, watch in datastore.data['watching'].items():
if watch.get('tags') and tag_uuid in watch['tags']:
watch['tags'].remove(tag_uuid)
unlinked_count += 1
logger.info(f"Background: Tag {tag_uuid} unlinked from {unlinked_count} watches")
except Exception as e:
logger.error(f"Error unlinking tag from watches: {e}")
flash(f"Tag unlinked removed from {unlinked} watches")
# Start daemon thread
threading.Thread(target=unlink_tag_background, args=(uuid,), daemon=True).start()
flash(gettext("Unlinking tag from watches in background"))
return redirect(url_for('tags.tags_overview_page'))
@tags_blueprint.route("/delete_all", methods=['GET'])
@login_optionally_required
def delete_all():
for watch_uuid, watch in datastore.data['watching'].items():
watch['tags'] = []
# Clear all tags from settings immediately
datastore.data['settings']['application']['tags'] = {}
flash(f"All tags deleted")
# Clear tags from all watches in background thread to avoid blocking
def clear_all_tags_background():
"""Background thread to clear tags from all watches - discarded after completion."""
cleared_count = 0
try:
for watch_uuid, watch in datastore.data['watching'].items():
watch['tags'] = []
cleared_count += 1
logger.info(f"Background: Cleared tags from {cleared_count} watches")
except Exception as e:
logger.error(f"Error clearing tags from watches: {e}")
# Start daemon thread
threading.Thread(target=clear_all_tags_background, daemon=True).start()
flash(gettext("All tags deleted, clearing from watches in background"))
return redirect(url_for('tags.tags_overview_page'))
@tags_blueprint.route("/edit/<string:uuid>", methods=['GET'])
@@ -106,7 +142,7 @@ def construct_blueprint(datastore: ChangeDetectionStore):
default = datastore.data['settings']['application']['tags'].get(uuid)
if not default:
flash("Tag not found", "error")
flash(gettext("Tag not found"), "error")
return redirect(url_for('watchlist.index'))
form = group_restock_settings_form(
@@ -181,7 +217,7 @@ def construct_blueprint(datastore: ChangeDetectionStore):
datastore.data['settings']['application']['tags'][uuid].update(form.data)
datastore.data['settings']['application']['tags'][uuid]['processor'] = 'restock_diff'
datastore.needs_write_urgent = True
flash("Updated")
flash(gettext("Updated"))
return redirect(url_for('tags.tags_overview_page'))

View File

@@ -50,7 +50,8 @@
<td>{{ "{:,}".format(tag_count[uuid]) if uuid in tag_count else 0 }}</td>
<td class="title-col inline"> <a href="{{url_for('watchlist.index', tag=uuid) }}">{{ tag.title }}</a></td>
<td>
<a class="pure-button pure-button-primary" href="{{ url_for('tags.form_tag_edit', uuid=uuid) }}">{{ _('Edit') }}</a>&nbsp;
<a class="pure-button pure-button-primary" href="{{ url_for('tags.form_tag_edit', uuid=uuid) }}">{{ _('Edit') }}</a>
<a href="{{ url_for('ui.form_watch_checknow', tag=uuid) }}" class="pure-button pure-button-primary" >{{ _('Recheck') }}</a>
<a class="pure-button button-error"
href="{{ url_for('tags.delete', uuid=uuid) }}"
data-requires-confirm

View File

@@ -1,5 +1,7 @@
import time
import threading
from flask import Blueprint, request, redirect, url_for, flash, render_template, session
from flask_babel import gettext
from loguru import logger
from changedetectionio.store import ChangeDetectionStore
@@ -16,42 +18,42 @@ def _handle_operations(op, uuids, datastore, worker_handler, update_q, queuedWat
if datastore.data['watching'].get(uuid):
datastore.delete(uuid)
if emit_flash:
flash(f"{len(uuids)} watches deleted")
flash(gettext("{} watches deleted").format(len(uuids)))
elif op == 'pause':
for uuid in uuids:
if datastore.data['watching'].get(uuid):
datastore.data['watching'][uuid]['paused'] = True
if emit_flash:
flash(f"{len(uuids)} watches paused")
flash(gettext("{} watches paused").format(len(uuids)))
elif op == 'unpause':
for uuid in uuids:
if datastore.data['watching'].get(uuid):
datastore.data['watching'][uuid.strip()]['paused'] = False
if emit_flash:
flash(f"{len(uuids)} watches unpaused")
flash(gettext("{} watches unpaused").format(len(uuids)))
elif (op == 'mark-viewed'):
for uuid in uuids:
if datastore.data['watching'].get(uuid):
datastore.set_last_viewed(uuid, int(time.time()))
if emit_flash:
flash(f"{len(uuids)} watches updated")
flash(gettext("{} watches updated").format(len(uuids)))
elif (op == 'mute'):
for uuid in uuids:
if datastore.data['watching'].get(uuid):
datastore.data['watching'][uuid]['notification_muted'] = True
if emit_flash:
flash(f"{len(uuids)} watches muted")
flash(gettext("{} watches muted").format(len(uuids)))
elif (op == 'unmute'):
for uuid in uuids:
if datastore.data['watching'].get(uuid):
datastore.data['watching'][uuid]['notification_muted'] = False
if emit_flash:
flash(f"{len(uuids)} watches un-muted")
flash(gettext("{} watches un-muted").format(len(uuids)))
elif (op == 'recheck'):
for uuid in uuids:
@@ -59,21 +61,21 @@ def _handle_operations(op, uuids, datastore, worker_handler, update_q, queuedWat
# Recheck and require a full reprocessing
worker_handler.queue_item_async_safe(update_q, queuedWatchMetaData.PrioritizedItem(priority=1, item={'uuid': uuid}))
if emit_flash:
flash(f"{len(uuids)} watches queued for rechecking")
flash(gettext("{} watches queued for rechecking").format(len(uuids)))
elif (op == 'clear-errors'):
for uuid in uuids:
if datastore.data['watching'].get(uuid):
datastore.data['watching'][uuid]["last_error"] = False
if emit_flash:
flash(f"{len(uuids)} watches errors cleared")
flash(gettext("{} watches errors cleared").format(len(uuids)))
elif (op == 'clear-history'):
for uuid in uuids:
if datastore.data['watching'].get(uuid):
datastore.clear_watch_history(uuid)
if emit_flash:
flash(f"{len(uuids)} watches cleared/reset.")
flash(gettext("{} watches cleared/reset.").format(len(uuids)))
elif (op == 'notification-default'):
from changedetectionio.notification import (
@@ -86,7 +88,7 @@ def _handle_operations(op, uuids, datastore, worker_handler, update_q, queuedWat
datastore.data['watching'][uuid]['notification_urls'] = []
datastore.data['watching'][uuid]['notification_format'] = USE_SYSTEM_DEFAULT_NOTIFICATION_FORMAT_FOR_WATCH
if emit_flash:
flash(f"{len(uuids)} watches set to use default notification settings")
flash(gettext("{} watches set to use default notification settings").format(len(uuids)))
elif (op == 'assign-tag'):
op_extradata = extra_data
@@ -101,7 +103,7 @@ def _handle_operations(op, uuids, datastore, worker_handler, update_q, queuedWat
datastore.data['watching'][uuid]['tags'].append(tag_uuid)
if emit_flash:
flash(f"{len(uuids)} watches were tagged")
flash(gettext("{} watches were tagged").format(len(uuids)))
if uuids:
for uuid in uuids:
@@ -138,9 +140,9 @@ def construct_blueprint(datastore: ChangeDetectionStore, update_q, worker_handle
try:
datastore.clear_watch_history(uuid)
except KeyError:
flash('Watch not found', 'error')
flash(gettext('Watch not found'), 'error')
else:
flash("Cleared snapshot history for watch {}".format(uuid))
flash(gettext("Cleared snapshot history for watch {}").format(uuid))
return redirect(url_for('watchlist.index'))
@ui_blueprint.route("/clear_history", methods=['GET', 'POST'])
@@ -150,11 +152,26 @@ def construct_blueprint(datastore: ChangeDetectionStore, update_q, worker_handle
confirmtext = request.form.get('confirmtext')
if confirmtext == 'clear':
for uuid in datastore.data['watching'].keys():
datastore.clear_watch_history(uuid)
flash("Cleared snapshot history for all watches")
# Run in background thread to avoid blocking
def clear_history_background():
# Capture UUIDs first to avoid race conditions
watch_uuids = list(datastore.data['watching'].keys())
logger.info(f"Background: Clearing history for {len(watch_uuids)} watches")
for uuid in watch_uuids:
try:
datastore.clear_watch_history(uuid)
except Exception as e:
logger.error(f"Error clearing history for watch {uuid}: {e}")
logger.info("Background: Completed clearing history")
# Start daemon thread
threading.Thread(target=clear_history_background, daemon=True).start()
flash(gettext("History clearing started in background"))
else:
flash('Incorrect confirmation text.', 'error')
flash(gettext('Incorrect confirmation text.'), 'error')
return redirect(url_for('watchlist.index'))
@@ -168,18 +185,32 @@ def construct_blueprint(datastore: ChangeDetectionStore, update_q, worker_handle
# Save the current newest history as the most recently viewed
with_errors = request.args.get('with_errors') == "1"
tag_limit = request.args.get('tag')
logger.debug(f"Limiting to tag {tag_limit}")
now = int(time.time())
for watch_uuid, watch in datastore.data['watching'].items():
if with_errors and not watch.get('last_error'):
continue
if tag_limit and ( not watch.get('tags') or tag_limit not in watch['tags'] ):
logger.debug(f"Skipping watch {watch_uuid}")
continue
# Mark watches as viewed in background thread to avoid blocking
def mark_viewed_background():
"""Background thread to mark watches as viewed - discarded after completion."""
marked_count = 0
try:
for watch_uuid, watch in datastore.data['watching'].items():
if with_errors and not watch.get('last_error'):
continue
datastore.set_last_viewed(watch_uuid, now)
if tag_limit and (not watch.get('tags') or tag_limit not in watch['tags']):
continue
datastore.set_last_viewed(watch_uuid, now)
marked_count += 1
logger.info(f"Background marking complete: {marked_count} watches marked as viewed")
except Exception as e:
logger.error(f"Error in background mark as viewed: {e}")
# Start background thread and return immediately
thread = threading.Thread(target=mark_viewed_background, daemon=True)
thread.start()
flash(gettext("Marking watches as viewed in background..."))
return redirect(url_for('watchlist.index', tag=tag_limit))
@ui_blueprint.route("/delete", methods=['GET'])
@@ -188,14 +219,14 @@ def construct_blueprint(datastore: ChangeDetectionStore, update_q, worker_handle
uuid = request.args.get('uuid')
if uuid != 'all' and not uuid in datastore.data['watching'].keys():
flash('The watch by UUID {} does not exist.'.format(uuid), 'error')
flash(gettext('The watch by UUID {} does not exist.').format(uuid), 'error')
return redirect(url_for('watchlist.index'))
# More for testing, possible to return the first/only
if uuid == 'first':
uuid = list(datastore.data['watching'].keys()).pop()
datastore.delete(uuid)
flash('Deleted.')
flash(gettext('Deleted.'))
return redirect(url_for('watchlist.index'))
@@ -212,7 +243,7 @@ def construct_blueprint(datastore: ChangeDetectionStore, update_q, worker_handle
if not datastore.data['watching'].get(uuid).get('paused'):
worker_handler.queue_item_async_safe(update_q, queuedWatchMetaData.PrioritizedItem(priority=5, item={'uuid': new_uuid}))
flash('Cloned, you are editing the new watch.')
flash(gettext('Cloned, you are editing the new watch.'))
return redirect(url_for("ui.ui_edit.edit_page", uuid=new_uuid))
@@ -224,38 +255,81 @@ def construct_blueprint(datastore: ChangeDetectionStore, update_q, worker_handle
uuid = request.args.get('uuid')
with_errors = request.args.get('with_errors') == "1"
i = 0
running_uuids = worker_handler.get_running_uuids()
if uuid:
if uuid not in running_uuids:
# Single watch - check if already queued or running
if worker_handler.is_watch_running(uuid) or uuid in update_q.get_queued_uuids():
flash(gettext("Watch is already queued or being checked."))
else:
worker_handler.queue_item_async_safe(update_q, queuedWatchMetaData.PrioritizedItem(priority=1, item={'uuid': uuid}))
i += 1
flash(gettext("Queued 1 watch for rechecking."))
else:
# Recheck all, including muted
# Get most overdue first
# Multiple watches - first count how many need to be queued
watches_to_queue = []
for k in sorted(datastore.data['watching'].items(), key=lambda item: item[1].get('last_checked', 0)):
watch_uuid = k[0]
watch = k[1]
if not watch['paused']:
if watch_uuid not in running_uuids:
if with_errors and not watch.get('last_error'):
continue
if not watch['paused'] and watch_uuid:
if with_errors and not watch.get('last_error'):
continue
if tag != None and tag not in watch['tags']:
continue
watches_to_queue.append(watch_uuid)
if tag != None and tag not in watch['tags']:
continue
# If less than 20 watches, queue synchronously for immediate feedback
if len(watches_to_queue) < 20:
# Get already queued/running UUIDs once (efficient)
queued_uuids = set(update_q.get_queued_uuids())
running_uuids = set(worker_handler.get_running_uuids())
worker_handler.queue_item_async_safe(update_q, queuedWatchMetaData.PrioritizedItem(priority=1, item={'uuid': watch_uuid}))
i += 1
# Filter out watches that are already queued or running
watches_to_queue_filtered = []
for watch_uuid in watches_to_queue:
if watch_uuid not in queued_uuids and watch_uuid not in running_uuids:
watches_to_queue_filtered.append(watch_uuid)
if i == 1:
flash("Queued 1 watch for rechecking.")
if i > 1:
flash(f"Queued {i} watches for rechecking.")
if i == 0:
flash("No watches available to recheck.")
# Queue only the filtered watches
for watch_uuid in watches_to_queue_filtered:
worker_handler.queue_item_async_safe(update_q, queuedWatchMetaData.PrioritizedItem(priority=1, item={'uuid': watch_uuid}))
# Provide feedback about skipped watches
skipped_count = len(watches_to_queue) - len(watches_to_queue_filtered)
if skipped_count > 0:
flash(gettext("Queued {} watches for rechecking ({} already queued or running).").format(
len(watches_to_queue_filtered), skipped_count))
else:
if len(watches_to_queue_filtered) == 1:
flash(gettext("Queued 1 watch for rechecking."))
else:
flash(gettext("Queued {} watches for rechecking.").format(len(watches_to_queue_filtered)))
else:
# 20+ watches - queue in background thread to avoid blocking HTTP response
# Capture queued/running state before background thread
queued_uuids = set(update_q.get_queued_uuids())
running_uuids = set(worker_handler.get_running_uuids())
def queue_watches_background():
"""Background thread to queue watches - discarded after completion."""
try:
queued_count = 0
skipped_count = 0
for watch_uuid in watches_to_queue:
# Check if already queued or running (state captured at start)
if watch_uuid not in queued_uuids and watch_uuid not in running_uuids:
worker_handler.queue_item_async_safe(update_q, queuedWatchMetaData.PrioritizedItem(priority=1, item={'uuid': watch_uuid}))
queued_count += 1
else:
skipped_count += 1
logger.info(f"Background queueing complete: {queued_count} watches queued, {skipped_count} skipped (already queued/running)")
except Exception as e:
logger.error(f"Error in background queueing: {e}")
# Start background thread and return immediately
thread = threading.Thread(target=queue_watches_background, daemon=True, name="QueueWatches-Background")
thread.start()
# Return immediately with approximate message
flash(gettext("Queueing watches for rechecking in background..."))
return redirect(url_for('watchlist.index', **({'tag': tag} if tag else {})))
@@ -326,7 +400,7 @@ def construct_blueprint(datastore: ChangeDetectionStore, update_q, worker_handle
except Exception as e:
logger.error(f"Error sharing -{str(e)}")
flash(f"Could not share, something went wrong while communicating with the share server - {str(e)}", 'error')
flash(gettext("Could not share, something went wrong while communicating with the share server - {}").format(str(e)), 'error')
return redirect(url_for('watchlist.index'))

View File

@@ -1,4 +1,5 @@
from flask import Blueprint, request, redirect, url_for, flash, render_template, make_response, send_from_directory
from flask_babel import gettext
import re
import importlib
@@ -89,12 +90,12 @@ def construct_blueprint(datastore: ChangeDetectionStore):
try:
watch = datastore.data['watching'][uuid]
except KeyError:
flash("No history found for the specified link, bad link?", "error")
flash(gettext("No history found for the specified link, bad link?"), "error")
return redirect(url_for('watchlist.index'))
dates = list(watch.history.keys())
if not dates or len(dates) < 2:
flash("Not enough history (2 snapshots required) to show difference page for this watch.", "error")
flash(gettext("Not enough history (2 snapshots required) to show difference page for this watch."), "error")
return redirect(url_for('watchlist.index'))
# Get the processor type for this watch
@@ -150,7 +151,7 @@ def construct_blueprint(datastore: ChangeDetectionStore):
try:
watch = datastore.data['watching'][uuid]
except KeyError:
flash("No history found for the specified link, bad link?", "error")
flash(gettext("No history found for the specified link, bad link?"), "error")
return redirect(url_for('watchlist.index'))
# Get the processor type for this watch
@@ -206,7 +207,7 @@ def construct_blueprint(datastore: ChangeDetectionStore):
try:
watch = datastore.data['watching'][uuid]
except KeyError:
flash("No history found for the specified link, bad link?", "error")
flash(gettext("No history found for the specified link, bad link?"), "error")
return redirect(url_for('watchlist.index'))
# Get the processor type for this watch
@@ -273,7 +274,7 @@ def construct_blueprint(datastore: ChangeDetectionStore):
try:
watch = datastore.data['watching'][uuid]
except KeyError:
flash("No history found for the specified link, bad link?", "error")
flash(gettext("No history found for the specified link, bad link?"), "error")
return redirect(url_for('watchlist.index'))
# Get the processor type for this watch

View File

@@ -2,6 +2,7 @@ from copy import deepcopy
import os
import importlib.resources
from flask import Blueprint, request, redirect, url_for, flash, render_template, abort
from flask_babel import gettext
from loguru import logger
from jinja2 import Environment, FileSystemLoader
@@ -31,14 +32,14 @@ def construct_blueprint(datastore: ChangeDetectionStore, update_q, queuedWatchMe
# More for testing, possible to return the first/only
if not datastore.data['watching'].keys():
flash("No watches to edit", "error")
flash(gettext("No watches to edit"), "error")
return redirect(url_for('watchlist.index'))
if uuid == 'first':
uuid = list(datastore.data['watching'].keys()).pop()
if not uuid in datastore.data['watching']:
flash("No watch with the UUID %s found." % (uuid), "error")
flash(gettext("No watch with the UUID {} found.").format(uuid), "error")
return redirect(url_for('watchlist.index'))
switch_processor = request.args.get('switch_processor')
@@ -46,12 +47,18 @@ def construct_blueprint(datastore: ChangeDetectionStore, update_q, queuedWatchMe
for p in processors.available_processors():
if p[0] == switch_processor:
datastore.data['watching'][uuid]['processor'] = switch_processor
flash(f"Switched to mode - {p[1]}.")
flash(gettext("Switched to mode - {}.").format(p[1]))
datastore.clear_watch_history(uuid)
redirect(url_for('ui_edit.edit_page', uuid=uuid))
# be sure we update with a copy instead of accidently editing the live object by reference
default = deepcopy(datastore.data['watching'][uuid])
default = None
while not default:
try:
default = deepcopy(datastore.data['watching'][uuid])
except RuntimeError as e:
# Dictionary changed
continue
# Defaults for proxy choice
if datastore.proxy_list is not None: # When enabled
@@ -65,7 +72,7 @@ def construct_blueprint(datastore: ChangeDetectionStore, update_q, queuedWatchMe
processor_name = datastore.data['watching'][uuid].get('processor', '')
processor_classes = next((tpl for tpl in processors.find_processors() if tpl[1] == processor_name), None)
if not processor_classes:
flash(f"Cannot load the edit form for processor/plugin '{processor_classes[1]}', plugin missing?", 'error')
flash(gettext("Cannot load the edit form for processor/plugin '{}', plugin missing?").format(processor_classes[1]), 'error')
return redirect(url_for('watchlist.index'))
parent_module = processors.get_parent_module(processor_classes[0])
@@ -235,7 +242,14 @@ def construct_blueprint(datastore: ChangeDetectionStore, update_q, queuedWatchMe
# Recast it if need be to right data Watch handler
watch_class = processors.get_custom_watch_obj_for_processor(form.data.get('processor'))
datastore.data['watching'][uuid] = watch_class(datastore_path=datastore.datastore_path, default=datastore.data['watching'][uuid])
flash("Updated watch - unpaused!" if request.args.get('unpause_on_save') else "Updated watch.")
flash(gettext("Updated watch - unpaused!") if request.args.get('unpause_on_save') else gettext("Updated watch."))
# Cleanup any browsersteps session for this watch
try:
from changedetectionio.blueprint.browser_steps import cleanup_session_for_watch
cleanup_session_for_watch(uuid)
except Exception as e:
logger.debug(f"Error cleaning up browsersteps session: {e}")
# Re #286 - We wait for syncing new data to disk in another thread every 60 seconds
# But in the case something is added we should save straight away
@@ -279,7 +293,7 @@ def construct_blueprint(datastore: ChangeDetectionStore, update_q, queuedWatchMe
else:
if request.method == 'POST' and not form.validate():
flash("An error occurred, please see below.", "error")
flash(gettext("An error occurred, please see below."), "error")
# JQ is difficult to install on windows and must be manually added (outside requirements.txt)
jq_support = True
@@ -324,8 +338,6 @@ def construct_blueprint(datastore: ChangeDetectionStore, update_q, queuedWatchMe
'url': url_for('rss.rss_single_watch', uuid=watch['uuid'], token=app_rss_token)
},
'settings_application': datastore.data['settings']['application'],
'system_has_playwright_configured': os.getenv('PLAYWRIGHT_DRIVER_URL'),
'system_has_webdriver_configured': os.getenv('WEBDRIVER_URL'),
'ui_edit_stats_extras': collect_ui_edit_stats_extras(watch),
'visual_selector_data_ready': datastore.visualselector_data_is_ready(watch_uuid=uuid),
'timezone_default_config': datastore.data['settings']['application'].get('scheduler_timezone_default'),

View File

@@ -118,6 +118,7 @@ def construct_blueprint(datastore: ChangeDetectionStore):
sent_obj = process_notification(n_object, datastore)
except Exception as e:
logger.error(e)
e_str = str(e)
# Remove this text which is not important and floods the container
e_str = e_str.replace(

View File

@@ -1,4 +1,5 @@
from flask import Blueprint, request, url_for, flash, render_template, redirect
from flask_babel import gettext
import time
from loguru import logger
@@ -32,7 +33,7 @@ def construct_blueprint(datastore: ChangeDetectionStore):
try:
watch = datastore.data['watching'][uuid]
except KeyError:
flash("No history found for the specified link, bad link?", "error")
flash(gettext("No history found for the specified link, bad link?"), "error")
return redirect(url_for('watchlist.index'))
# Get the processor type for this watch
@@ -74,7 +75,7 @@ def construct_blueprint(datastore: ChangeDetectionStore):
blocked_line_numbers = []
if datastore.data['watching'][uuid].history_n == 0 and (watch.get_error_text() or watch.get_error_snapshot()):
flash("Preview unavailable - No fetch/check completed or triggers not reached", "error")
flash(gettext("Preview unavailable - No fetch/check completed or triggers not reached"), "error")
else:
# So prepare the latest preview or not
preferred_version = request.args.get('version')
@@ -156,7 +157,7 @@ def construct_blueprint(datastore: ChangeDetectionStore):
try:
watch = datastore.data['watching'][uuid]
except KeyError:
flash("No history found for the specified link, bad link?", "error")
flash(gettext("No history found for the specified link, bad link?"), "error")
return redirect(url_for('watchlist.index'))
# Get the processor type for this watch

View File

@@ -87,7 +87,7 @@
</form>
</div>
<div id="diff-jump">
<div id="diff-jump" style="display:none;"><!-- disabled for now -->
<a id="jump-next-diff" title="{{ _('Jump to next difference') }}">{{ _('Jump') }}</a>
</div>

View File

@@ -206,7 +206,7 @@ Math: {{ 1 + 1 }}") }}
<div class="tab-pane-inner" id="browser-steps">
{% if capabilities.supports_browser_steps %}
{% if visual_selector_data_ready %}
{% if true %}
<img class="beta-logo" src="{{url_for('static_content', group='images', filename='beta-logo.png')}}" alt="New beta functionality">
<fieldset>
<div class="pure-control-group">

View File

@@ -1,4 +1,5 @@
from flask import Blueprint, request, redirect, url_for, flash
from flask_babel import gettext
from changedetectionio.store import ChangeDetectionStore
from changedetectionio.auth_decorator import login_optionally_required
from changedetectionio import worker_handler
@@ -20,7 +21,7 @@ def construct_blueprint(datastore: ChangeDetectionStore, update_q, queuedWatchMe
url = request.form.get('url').strip()
if datastore.url_exists(url):
flash(f'Warning, URL {url} already exists', "notice")
flash(gettext('Warning, URL {} already exists').format(url), "notice")
add_paused = request.form.get('edit_and_watch_submit_button') != None
processor = request.form.get('processor', 'text_json_diff')
@@ -28,12 +29,12 @@ def construct_blueprint(datastore: ChangeDetectionStore, update_q, queuedWatchMe
if new_uuid:
if add_paused:
flash('Watch added in Paused state, saving will unpause.')
flash(gettext('Watch added in Paused state, saving will unpause.'))
return redirect(url_for('ui.ui_edit.edit_page', uuid=new_uuid, unpause_on_save=1, tag=request.args.get('tag')))
else:
# Straight into the queue.
worker_handler.queue_item_async_safe(update_q, queuedWatchMetaData.PrioritizedItem(priority=1, item={'uuid': new_uuid}))
flash("Watch added.")
flash(gettext("Watch added."))
return redirect(url_for('watchlist.index', tag=request.args.get('tag','')))

View File

@@ -2,8 +2,8 @@ import os
import time
from flask import Blueprint, request, make_response, render_template, redirect, url_for, flash, session
from flask_login import current_user
from flask_paginate import Pagination, get_page_parameter
from flask_babel import gettext as _
from changedetectionio import forms
from changedetectionio import processors
@@ -74,7 +74,10 @@ def construct_blueprint(datastore: ChangeDetectionStore, update_q, queuedWatchMe
pagination = Pagination(page=page,
total=total_count,
per_page=datastore.data['settings']['application'].get('pager_size', 50), css_framework="semantic")
per_page=datastore.data['settings']['application'].get('pager_size', 50),
css_framework="semantic",
display_msg=_('displaying <b>{start} - {end}</b> {record_name} in total <b>{total}</b>'),
record_name=_('records'))
sorted_tags = sorted(datastore.data['settings']['application'].get('tags').items(), key=lambda x: x[1]['title'])
@@ -85,16 +88,19 @@ def construct_blueprint(datastore: ChangeDetectionStore, update_q, queuedWatchMe
app_rss_token=datastore.data['settings']['application'].get('rss_access_token'),
datastore=datastore,
errored_count=errored_count,
extra_classes='has-queue' if not update_q.empty() else '',
form=form,
generate_tag_colors=processors.generate_processor_badge_colors,
guid=datastore.data['app_guid'],
has_proxies=datastore.proxy_list,
hosted_sticky=os.getenv("SALTED_PASS", False) == False,
now_time_server=round(time.time()),
pagination=pagination,
processor_badge_css=processors.get_processor_badge_css(),
processor_badge_texts=processors.get_processor_badge_texts(),
processor_descriptions=processors.get_processor_descriptions(),
processor_badge_css=processors.get_processor_badge_css(),
queued_uuids=[q_uuid.item['uuid'] for q_uuid in update_q.queue],
queue_size=update_q.qsize(),
queued_uuids=update_q.get_queued_uuids(),
search_q=request.args.get('q', '').strip(),
sort_attribute=request.args.get('sort') if request.args.get('sort') else request.cookies.get('sort'),
sort_order=request.args.get('order') if request.args.get('order') else request.cookies.get('order'),

View File

@@ -22,6 +22,33 @@ document.addEventListener('DOMContentLoaded', function() {
/* Auto-generated processor badge colors */
{{ processor_badge_css|safe }}
/* Auto-generated tag colors */
{%- for uuid, tag in tags -%}
{%- if tag and tag.title -%}
{%- set class_name = tag.title|sanitize_tag_class -%}
{%- set colors = generate_tag_colors(tag.title) -%}
.button-tag.tag-{{ class_name }} {
background-color: {{ colors['light']['bg'] }};
color: {{ colors['light']['color'] }};
}
.watch-tag-list.tag-{{ class_name }} {
background-color: {{ colors['light']['bg'] }};
color: {{ colors['light']['color'] }};
}
html[data-darkmode="true"] .button-tag.tag-{{ class_name }} {
background-color: {{ colors['dark']['bg'] }};
color: {{ colors['dark']['color'] }};
}
html[data-darkmode="true"] .watch-tag-list.tag-{{ class_name }} {
background-color: {{ colors['dark']['bg'] }};
color: {{ colors['dark']['color'] }};
}
{%- endif -%}
{%- endfor -%}
</style>
<div class="box" id="form-quick-watch-add">
@@ -35,7 +62,7 @@ document.addEventListener('DOMContentLoaded', function() {
{{ render_nolabel_field(form.edit_and_watch_submit_button, title=_("Edit first then Watch") ) }}
</div>
<div id="watch-group-tag">
{{ render_field(form.tags, value=active_tag.title if active_tag_uuid else '', placeholder="Watch group / tag", class="transparent-field") }}
{{ render_field(form.tags, value=active_tag.title if active_tag_uuid else '', placeholder=_("Watch group / tag"), class="transparent-field") }}
</div>
<div id="quick-watch-processor-type">
{{ render_simple_field(form.processor) }}
@@ -72,9 +99,14 @@ document.addEventListener('DOMContentLoaded', function() {
data-confirm-message="{{ _('<p>Are you sure you want to delete the selected watches?</strong></p><p>This action cannot be undone.</p>') }}"
data-confirm-button="{{ _('Delete') }}"><i data-feather="trash" style="width: 14px; height: 14px; stroke: white; margin-right: 4px;"></i>{{ _('Delete') }}</button>
</div>
{%- if watches|length >= pagination.per_page -%}
{{ pagination.info }}
{%- endif -%}
<div id="stats_row">
<div class="left">{%- if watches|length >= pagination.per_page -%}{{ pagination.info }}{%- endif -%}</div>
<div class="right" >{{ _('Queued size') }}: <span id="queue-size-int">{{ queue_size }}</span></div>
</div>
{%- if search_q -%}<div id="search-result-info">{{ _('Searching') }} "<strong><i>{{search_q}}</i></strong>"</div>{%- endif -%}
<div>
<a href="{{url_for('watchlist.index')}}" class="pure-button button-tag {{'active' if not active_tag_uuid }}">{{ _('All') }}</a>
@@ -82,7 +114,7 @@ document.addEventListener('DOMContentLoaded', function() {
<!-- tag list -->
{%- for uuid, tag in tags -%}
{%- if tag != "" -%}
<a href="{{url_for('watchlist.index', tag=uuid) }}" class="pure-button button-tag {{'active' if active_tag_uuid == uuid }}">{{ tag.title }}</a>
<a href="{{url_for('watchlist.index', tag=uuid) }}" class="pure-button button-tag tag-{{ tag.title|sanitize_tag_class }} {{'active' if active_tag_uuid == uuid }}">{{ tag.title }}</a>
{%- endif -%}
{%- endfor -%}
</div>
@@ -127,7 +159,7 @@ document.addEventListener('DOMContentLoaded', function() {
<tbody>
{%- if not watches|length -%}
<tr>
<td colspan="{{ cols_required }}" style="text-wrap: wrap;">{{ _('No website watches configured, please add a URL in the box above, or') }} <a href="{{ url_for('imports.import_page')}}" >{{ _('import a list') }}</a>.</td>
<td colspan="{{ cols_required }}" style="text-wrap: wrap;">{{ _('No web page change detection watches configured, please add a URL in the box above, or') }} <a href="{{ url_for('imports.import_page')}}" >{{ _('import a list') }}</a>.</td>
</tr>
{%- endif -%}
@@ -169,7 +201,7 @@ document.addEventListener('DOMContentLoaded', function() {
<div class="flex-wrapper">
{% if 'favicons_enabled' not in ui_settings or ui_settings['favicons_enabled'] %}
<div>{# A page might have hundreds of these images, set IMG options for lazy loading, don't set SRC if we dont have it so it doesnt fetch the placeholder' #}
<img alt="Favicon thumbnail" class="favicon" loading="lazy" decoding="async" fetchpriority="low" {% if favicon %} src="{{url_for('static_content', group='favicon', filename=watch.uuid)}}" {% else %} src='data:image/svg+xml;utf8,%3Csvg xmlns="http://www.w3.org/2000/svg" width="7.087" height="7.087" viewBox="0 0 7.087 7.087"%3E%3Ccircle cx="3.543" cy="3.543" r="3.279" stroke="%23e1e1e1" stroke-width="0.45" fill="none" opacity="0.74"/%3E%3C/svg%3E' {% endif %} />
<img alt="Favicon thumbnail" class="favicon" loading="lazy" decoding="async" fetchpriority="low" {% if favicon %} src="{{url_for('static_content', group='favicon', filename=watch.uuid)}}" {% else %} src='data:image/svg+xml;utf8,%3Csvg xmlns="http://www.w3.org/2000/svg" width="7.087" height="7.087" viewBox="0 0 7.087 7.087"%3E%3Ccircle cx="3.543" cy="3.543" r="3.279" stroke="%23e1e1e1" stroke-width="0.45" fill="none" opacity="0.74"/%3E%3C/svg%3E' {% endif %} >
</div>
{% endif %}
<div>
@@ -191,7 +223,7 @@ document.addEventListener('DOMContentLoaded', function() {
<span class="processor-badge processor-badge-{{ watch['processor'] }}" title="{{ processor_descriptions.get(watch['processor'], watch['processor']) }}">{{ processor_badge_texts[watch['processor']] }}</span>
{%- endif -%}
{%- for watch_tag_uuid, watch_tag in datastore.get_all_tags_for_watch(watch['uuid']).items() -%}
<span class="watch-tag-list">{{ watch_tag.title }}</span>
<span class="watch-tag-list tag-{{ watch_tag.title|sanitize_tag_class }}">{{ watch_tag.title }}</span>
{%- endfor -%}
</div>
<div class="status-icons">

View File

@@ -1,3 +1,4 @@
import gc
import json
import os
from urllib.parse import urlparse
@@ -185,20 +186,33 @@ class fetcher(Fetcher):
super().screenshot_step(step_n=step_n)
screenshot = await capture_full_page_async(page=self.page, screenshot_format=self.screenshot_format)
# Request GC immediately after screenshot to free memory
# Screenshots can be large and browser steps take many of them
await self.page.request_gc()
if self.browser_steps_screenshot_path is not None:
destination = os.path.join(self.browser_steps_screenshot_path, 'step_{}.jpeg'.format(step_n))
logger.debug(f"Saving step screenshot to {destination}")
with open(destination, 'wb') as f:
f.write(screenshot)
# Clear local reference to allow screenshot bytes to be collected
del screenshot
gc.collect()
async def save_step_html(self, step_n):
super().save_step_html(step_n=step_n)
content = await self.page.content()
# Request GC after getting page content
await self.page.request_gc()
destination = os.path.join(self.browser_steps_screenshot_path, 'step_{}.html'.format(step_n))
logger.debug(f"Saving step HTML to {destination}")
with open(destination, 'w', encoding='utf-8') as f:
f.write(content)
# Clear local reference
del content
gc.collect()
async def run(self,
fetch_favicon=True,
@@ -305,6 +319,12 @@ class fetcher(Fetcher):
if self.status_code != 200 and not ignore_status_codes:
screenshot = await capture_full_page_async(self.page, screenshot_format=self.screenshot_format)
# Cleanup before raising to prevent memory leak
await self.page.close()
await context.close()
await browser.close()
# Force garbage collection to release Playwright resources immediately
gc.collect()
raise Non200ErrorCodeReceived(url=url, status_code=self.status_code, screenshot=screenshot)
if not empty_pages_are_a_change and len((await self.page.content()).strip()) == 0:
@@ -313,48 +333,52 @@ class fetcher(Fetcher):
await browser.close()
raise EmptyReply(url=url, status_code=response.status)
# Run Browser Steps here
if self.browser_steps_get_valid_steps():
await self.iterate_browser_steps(start_url=url)
await self.page.wait_for_timeout(extra_wait * 1000)
now = time.time()
# So we can find an element on the page where its selector was entered manually (maybe not xPath etc)
if current_include_filters is not None:
await self.page.evaluate("var include_filters={}".format(json.dumps(current_include_filters)))
else:
await self.page.evaluate("var include_filters=''")
await self.page.request_gc()
# request_gc before and after evaluate to free up memory
# @todo browsersteps etc
MAX_TOTAL_HEIGHT = int(os.getenv("SCREENSHOT_MAX_HEIGHT", SCREENSHOT_MAX_HEIGHT_DEFAULT))
self.xpath_data = await self.page.evaluate(XPATH_ELEMENT_JS, {
"visualselector_xpath_selectors": visualselector_xpath_selectors,
"max_height": MAX_TOTAL_HEIGHT
})
await self.page.request_gc()
self.instock_data = await self.page.evaluate(INSTOCK_DATA_JS)
await self.page.request_gc()
self.content = await self.page.content()
await self.page.request_gc()
logger.debug(f"Scrape xPath element data in browser done in {time.time() - now:.2f}s")
# Bug 3 in Playwright screenshot handling
# Some bug where it gives the wrong screenshot size, but making a request with the clip set first seems to solve it
# JPEG is better here because the screenshots can be very very large
# Screenshots also travel via the ws:// (websocket) meaning that the binary data is base64 encoded
# which will significantly increase the IO size between the server and client, it's recommended to use the lowest
# acceptable screenshot quality here
# Wrap remaining operations in try/finally to ensure cleanup
try:
# Run Browser Steps here
if self.browser_steps_get_valid_steps():
await self.iterate_browser_steps(start_url=url)
await self.page.wait_for_timeout(extra_wait * 1000)
now = time.time()
# So we can find an element on the page where its selector was entered manually (maybe not xPath etc)
if current_include_filters is not None:
await self.page.evaluate("var include_filters={}".format(json.dumps(current_include_filters)))
else:
await self.page.evaluate("var include_filters=''")
await self.page.request_gc()
# request_gc before and after evaluate to free up memory
# @todo browsersteps etc
MAX_TOTAL_HEIGHT = int(os.getenv("SCREENSHOT_MAX_HEIGHT", SCREENSHOT_MAX_HEIGHT_DEFAULT))
self.xpath_data = await self.page.evaluate(XPATH_ELEMENT_JS, {
"visualselector_xpath_selectors": visualselector_xpath_selectors,
"max_height": MAX_TOTAL_HEIGHT
})
await self.page.request_gc()
self.instock_data = await self.page.evaluate(INSTOCK_DATA_JS)
await self.page.request_gc()
self.content = await self.page.content()
await self.page.request_gc()
logger.debug(f"Scrape xPath element data in browser done in {time.time() - now:.2f}s")
# Bug 3 in Playwright screenshot handling
# Some bug where it gives the wrong screenshot size, but making a request with the clip set first seems to solve it
# JPEG is better here because the screenshots can be very very large
# Screenshots also travel via the ws:// (websocket) meaning that the binary data is base64 encoded
# which will significantly increase the IO size between the server and client, it's recommended to use the lowest
# acceptable screenshot quality here
# The actual screenshot - this always base64 and needs decoding! horrible! huge CPU usage
self.screenshot = await capture_full_page_async(page=self.page, screenshot_format=self.screenshot_format)
except ScreenshotUnavailable:
# Re-raise screenshot unavailable exceptions
raise
except Exception as e:
# It's likely the screenshot was too long/big and something crashed
raise ScreenshotUnavailable(url=url, status_code=self.status_code)
@@ -389,6 +413,10 @@ class fetcher(Fetcher):
pass
browser = None
# Force Python GC to release Playwright resources immediately
# Playwright objects can have circular references that delay cleanup
gc.collect()
# Plugin registration for built-in fetcher
class PlaywrightFetcherPlugin:

View File

@@ -204,7 +204,7 @@ class fetcher(Fetcher):
import re
self.delete_browser_steps_screenshots()
n = int(os.getenv("WEBDRIVER_DELAY_BEFORE_CONTENT_READY", 5)) + self.render_extract_delay
n = int(os.getenv("WEBDRIVER_DELAY_BEFORE_CONTENT_READY", 12)) + self.render_extract_delay
extra_wait = min(n, 15)
logger.debug(f"Extra wait set to {extra_wait}s, requested was {n}s.")
@@ -288,28 +288,27 @@ class fetcher(Fetcher):
# Enable Network domain to detect when first bytes arrive
await self.page._client.send('Network.enable')
# Now set up the frame navigation handlers
async def handle_frame_navigation(event=None):
# Wait n seconds after the frameStartedLoading, not from any frameStartedLoading/frameStartedNavigating
logger.debug(f"Frame navigated: {event}")
w = extra_wait - 2 if extra_wait > 4 else 2
logger.debug(f"Waiting {w} seconds before calling Page.stopLoading...")
await asyncio.sleep(w)
logger.debug("Issuing stopLoading command...")
await self.page._client.send('Page.stopLoading')
logger.debug("stopLoading command sent!")
async def setup_frame_handlers_on_first_response(event):
# Only trigger for the main document response
if event.get('type') == 'Document':
logger.debug("First response received, setting up frame handlers for forced page stop load.")
# De-register this listener - we only need it once
self.page._client.remove_listener('Network.responseReceived', setup_frame_handlers_on_first_response)
# Now set up the frame navigation handlers
async def handle_frame_navigation(event):
# Wait n seconds after the frameStartedLoading, not from any frameStartedLoading/frameStartedNavigating
logger.debug(f"Frame navigated: {event}")
w = extra_wait - 2 if extra_wait > 4 else 2
logger.debug(f"Waiting {w} seconds before calling Page.stopLoading...")
await asyncio.sleep(w)
logger.debug("Issuing stopLoading command...")
await self.page._client.send('Page.stopLoading')
logger.debug("stopLoading command sent!")
self.page._client.on('Page.frameStartedNavigating', lambda e: asyncio.create_task(handle_frame_navigation(e)))
self.page._client.on('Page.frameStartedLoading', lambda e: asyncio.create_task(handle_frame_navigation(e)))
self.page._client.on('Page.frameStoppedLoading', lambda e: logger.debug(f"Frame stopped loading: {e}"))
logger.debug("First response received, setting up frame handlers for forced page stop load DONE SETUP")
# De-register this listener - we only need it once
self.page._client.remove_listener('Network.responseReceived', setup_frame_handlers_on_first_response)
# Listen for first response to trigger frame handler setup
self.page._client.on('Network.responseReceived', setup_frame_handlers_on_first_response)
@@ -318,8 +317,11 @@ class fetcher(Fetcher):
attempt=0
while not response:
logger.debug(f"Attempting page fetch {url} attempt {attempt}")
asyncio.create_task(handle_frame_navigation())
response = await self.page.goto(url, timeout=0)
await asyncio.sleep(1 + extra_wait)
await self.page._client.send('Page.stopLoading')
if response:
break
if not response:

View File

@@ -15,7 +15,7 @@ class fetcher(Fetcher):
proxy_url = None
# Capability flags
supports_browser_steps = True
supports_browser_steps = False
supports_screenshots = True
supports_xpath_element_data = True
@@ -156,6 +156,19 @@ class fetcher(Fetcher):
from PIL import Image
import io
img = Image.open(io.BytesIO(screenshot_png))
# Convert to RGB if needed (JPEG doesn't support transparency)
# Always convert non-RGB modes to RGB to ensure JPEG compatibility
if img.mode in ('RGBA', 'LA', 'P', 'PA'):
# Handle transparency by compositing onto white background
if img.mode == 'P':
img = img.convert('RGBA')
background = Image.new('RGB', img.size, (255, 255, 255))
if img.mode in ('RGBA', 'LA', 'PA'):
background.paste(img, mask=img.split()[-1]) # Use alpha channel as mask
img = background
elif img.mode != 'RGB':
# For other modes, direct conversion
img = img.convert('RGB')
jpeg_buffer = io.BytesIO()
img.save(jpeg_buffer, format='JPEG', quality=int(os.getenv("SCREENSHOT_QUALITY", 72)))
self.screenshot = jpeg_buffer.getvalue()

View File

@@ -57,14 +57,15 @@ class SignalPriorityQueue(queue.PriorityQueue):
def put(self, item, block=True, timeout=None):
# Call the parent's put method first
super().put(item, block, timeout)
# After putting the item in the queue, check if it has a UUID and emit signal
if hasattr(item, 'item') and isinstance(item.item, dict) and 'uuid' in item.item:
uuid = item.item['uuid']
# Get the signal and send it if it exists
watch_check_update = signal('watch_check_update')
if watch_check_update:
# Send the watch_uuid parameter
# NOTE: This would block other workers from .put/.get while this signal sends
# Signal handlers may iterate the queue/datastore while holding locks
watch_check_update.send(watch_uuid=uuid)
# Send queue_length signal with current queue size
@@ -312,14 +313,15 @@ class AsyncSignalPriorityQueue(asyncio.PriorityQueue):
async def put(self, item):
# Call the parent's put method first
await super().put(item)
# After putting the item in the queue, check if it has a UUID and emit signal
if hasattr(item, 'item') and isinstance(item.item, dict) and 'uuid' in item.item:
uuid = item.item['uuid']
# Get the signal and send it if it exists
watch_check_update = signal('watch_check_update')
if watch_check_update:
# Send the watch_uuid parameter
# NOTE: This would block other workers from .put/.get while this signal sends
# Signal handlers may iterate the queue/datastore while holding locks
watch_check_update.send(watch_uuid=uuid)
# Send queue_length signal with current queue size

View File

@@ -9,6 +9,7 @@ import threading
import time
import timeago
from blinker import signal
from pathlib import Path
from changedetectionio.strtobool import strtobool
from threading import Event
@@ -27,7 +28,6 @@ from flask import (
url_for,
)
from flask_compress import Compress as FlaskCompress
from flask_login import current_user
from flask_restful import abort, Api
from flask_cors import CORS
@@ -44,6 +44,7 @@ from changedetectionio.api import Watch, WatchHistory, WatchSingleHistory, Watch
from changedetectionio.api.Search import Search
from .time_handler import is_within_schedule
from changedetectionio.languages import get_available_languages, get_language_codes, get_flag_for_locale, get_timeago_locale
IN_PYTEST = "pytest" in sys.modules or "PYTEST_CURRENT_TEST" in os.environ
datastore = None
@@ -54,7 +55,7 @@ extra_stylesheets = []
# Use bulletproof janus-based queues for sync/async reliability
update_q = RecheckPriorityQueue()
notification_q = NotificationQueue()
MAX_QUEUE_SIZE = 2000
MAX_QUEUE_SIZE = 5000
app = Flask(__name__,
static_url_path="",
@@ -83,6 +84,10 @@ app.config['NEW_VERSION_AVAILABLE'] = False
if os.getenv('FLASK_SERVER_NAME'):
app.config['SERVER_NAME'] = os.getenv('FLASK_SERVER_NAME')
# Babel/i18n configuration
app.config['BABEL_TRANSLATION_DIRECTORIES'] = str(Path(__file__).parent / 'translations')
app.config['BABEL_DEFAULT_LOCALE'] = 'en_GB'
#app.config["EXPLAIN_TEMPLATE_LOADING"] = True
@@ -296,6 +301,25 @@ def _jinja2_filter_fetcher_status_icons(fetcher_name):
return ''
@app.template_filter('sanitize_tag_class')
def _jinja2_filter_sanitize_tag_class(tag_title):
"""Sanitize a tag title to create a valid CSS class name.
Removes all non-alphanumeric characters and converts to lowercase.
Args:
tag_title: The tag title string
Returns:
str: A sanitized string suitable for use as a CSS class name
"""
import re
# Remove all non-alphanumeric characters and convert to lowercase
sanitized = re.sub(r'[^a-zA-Z0-9]', '', tag_title).lower()
# Ensure it starts with a letter (CSS requirement)
if sanitized and not sanitized[0].isalpha():
sanitized = 'tag' + sanitized
return sanitized if sanitized else 'tag'
# Import login_optionally_required from auth_decorator
from changedetectionio.auth_decorator import login_optionally_required
@@ -350,6 +374,16 @@ def changedetection_app(config=None, datastore_o=None):
global datastore, socketio_server
datastore = datastore_o
# Set datastore reference in notification queue for all_muted checking
notification_q.set_datastore(datastore)
# Import and create a wrapper for is_safe_url that has access to app
from changedetectionio.is_safe_url import is_safe_url as _is_safe_url
def is_safe_url(target):
"""Wrapper for is_safe_url that passes the app instance"""
return _is_safe_url(target, app)
# so far just for read-only via tests, but this will be moved eventually to be the main source
# (instead of the global var)
app.config['DATASTORE'] = datastore_o
@@ -368,13 +402,9 @@ def changedetection_app(config=None, datastore_o=None):
def get_locale():
# 1. Try to get locale from session (user explicitly selected)
if 'locale' in session:
locale = session['locale']
print(f"DEBUG: get_locale() returning from session: {locale}")
return locale
return session['locale']
# 2. Fall back to Accept-Language header
locale = request.accept_languages.best_match(language_codes)
print(f"DEBUG: get_locale() returning from Accept-Language: {locale}")
return locale
return request.accept_languages.best_match(language_codes)
# Initialize Babel with locale selector
babel = Babel(app, locale_selector=get_locale)
@@ -397,6 +427,12 @@ def changedetection_app(config=None, datastore_o=None):
if request.endpoint and request.endpoint == 'static_content' and request.view_args:
# Handled by static_content handler
return None
# Permitted - static flag icons need to load on login page
elif request.endpoint and request.endpoint == 'static_flags':
return None
# Permitted - language selection should work on login page
elif request.endpoint and request.endpoint == 'set_language':
return None
# Permitted
elif request.endpoint and 'login' in request.endpoint:
return None
@@ -465,37 +501,73 @@ def changedetection_app(config=None, datastore_o=None):
@login_manager.unauthorized_handler
def unauthorized_handler():
flash("You must be logged in, please log in.", 'error')
return redirect(url_for('login', next=url_for('watchlist.index')))
# Pass the current request path so users are redirected back after login
return redirect(url_for('login', redirect=request.path))
@app.route('/logout')
def logout():
flask_login.logout_user()
# Check if there's a redirect parameter to return to after re-login
redirect_url = request.args.get('redirect')
# If redirect is provided and safe, pass it to login page
if redirect_url and is_safe_url(redirect_url):
return redirect(url_for('login', redirect=redirect_url))
# Otherwise just go to watchlist
return redirect(url_for('watchlist.index'))
@app.route('/set-language/<locale>')
def set_language(locale):
"""Set the user's preferred language in the session"""
if not request.cookies:
logger.error("Cannot set language without session cookie")
flash("Cannot set language without session cookie", 'error')
return redirect(url_for('watchlist.index'))
# Validate the locale against available languages
if locale in language_codes:
session['locale'] = locale
# CRITICAL: Flask-Babel caches the locale in the request context (ctx.babel_locale)
# We must refresh to clear this cache so the new locale takes effect immediately
# This is especially important for tests where multiple requests happen rapidly
from flask_babel import refresh
refresh()
else:
logger.error(f"Invalid locale {locale}, available: {language_codes}")
# Redirect back to the page they came from, or home
# Check if there's a redirect parameter to return to the same page
redirect_url = request.args.get('redirect')
# If redirect is provided and safe, use it
if redirect_url and is_safe_url(redirect_url):
return redirect(redirect_url)
# Otherwise redirect to watchlist
return redirect(url_for('watchlist.index'))
# https://github.com/pallets/flask/blob/93dd1709d05a1cf0e886df6223377bdab3b077fb/examples/tutorial/flaskr/__init__.py#L39
# You can divide up the stuff like this
@app.route('/login', methods=['GET', 'POST'])
def login():
# Extract and validate the redirect parameter
redirect_url = request.args.get('redirect') or request.form.get('redirect')
# Validate the redirect URL - default to watchlist if invalid
if redirect_url and is_safe_url(redirect_url):
validated_redirect = redirect_url
else:
validated_redirect = url_for('watchlist.index')
if request.method == 'GET':
if flask_login.current_user.is_authenticated:
flash("Already logged in")
return redirect(url_for("watchlist.index"))
output = render_template("login.html")
# Already logged in - redirect immediately to the target
flash(gettext("Already logged in"))
return redirect(validated_redirect)
flash(gettext("You must be logged in, please log in."), 'error')
output = render_template("login.html", redirect_url=validated_redirect)
return output
user = User()
@@ -505,23 +577,13 @@ def changedetection_app(config=None, datastore_o=None):
if (user.check_password(password)):
flask_login.login_user(user, remember=True)
# For now there's nothing else interesting here other than the index/list page
# It's more reliable and safe to ignore the 'next' redirect
# When we used...
# next = request.args.get('next')
# return redirect(next or url_for('watchlist.index'))
# We would sometimes get login loop errors on sites hosted in sub-paths
# note for the future:
# if not is_safe_valid_url(next):
# return flask.abort(400)
return redirect(url_for('watchlist.index'))
# Redirect to the validated URL after successful login
return redirect(validated_redirect)
else:
flash('Incorrect password', 'error')
flash(gettext('Incorrect password'), 'error')
return redirect(url_for('login'))
return redirect(url_for('login', redirect=redirect_url if redirect_url else None))
@app.before_request
def before_request_handle_cookie_x_settings():
@@ -531,6 +593,40 @@ def changedetection_app(config=None, datastore_o=None):
app.config['SESSION_COOKIE_PATH'] = request.headers['X-Forwarded-Prefix']
return None
@app.route("/static/flags/<path:flag_path>", methods=['GET'])
def static_flags(flag_path):
"""Handle flag icon files with subdirectories"""
from flask import make_response
import re
# flag_path comes in as "1x1/de.svg" or "4x3/de.svg"
if re.match(r'^(1x1|4x3)/[a-z0-9-]+\.svg$', flag_path.lower()):
# Reconstruct the path safely with additional validation
parts = flag_path.lower().split('/')
if len(parts) != 2:
abort(404)
subdir = parts[0]
svg_file = parts[1]
# Extra validation: ensure subdir is exactly 1x1 or 4x3
if subdir not in ['1x1', '4x3']:
abort(404)
# Extra validation: ensure svg_file only contains safe characters
if not re.match(r'^[a-z0-9-]+\.svg$', svg_file):
abort(404)
try:
response = make_response(send_from_directory(f"static/flags/{subdir}", svg_file))
response.headers['Content-type'] = 'image/svg+xml'
response.headers['Cache-Control'] = 'max-age=86400, public' # Cache for 24 hours
return response
except FileNotFoundError:
abort(404)
else:
abort(404)
@app.route("/static/<string:group>/<string:filename>", methods=['GET'])
def static_content(group, filename):
from flask import make_response
@@ -781,13 +877,13 @@ def changedetection_app(config=None, datastore_o=None):
worker_handler.start_workers(n_workers, update_q, notification_q, app, datastore)
# @todo handle ctrl break
ticker_thread = threading.Thread(target=ticker_thread_check_time_launch_checks).start()
threading.Thread(target=notification_runner).start()
ticker_thread = threading.Thread(target=ticker_thread_check_time_launch_checks, daemon=True, name="TickerThread-ScheduleChecker").start()
threading.Thread(target=notification_runner, daemon=True, name="NotificationRunner").start()
in_pytest = "pytest" in sys.modules or "PYTEST_CURRENT_TEST" in os.environ
# Check for new release version, but not when running in test/build or pytest
if not os.getenv("GITHUB_REF", False) and not strtobool(os.getenv('DISABLE_VERSION_CHECK', 'no')) and not in_pytest:
threading.Thread(target=check_for_new_version).start()
threading.Thread(target=check_for_new_version, daemon=True, name="VersionChecker").start()
# Return the Flask app - the Socket.IO will be attached to it but initialized separately
# This avoids circular dependencies
@@ -832,7 +928,7 @@ def notification_runner():
# At the moment only one thread runs (single runner)
n_object = notification_q.get(block=False)
except queue.Empty:
time.sleep(1)
app.config.exit.wait(1)
else:
@@ -869,7 +965,7 @@ def notification_runner():
app.config['watch_check_update_SIGNAL'].send(app_context=app, watch_uuid=n_object.get('uuid'))
# Process notifications
notification_debug_log+= ["{} - SENDING - {}".format(now.strftime("%Y/%m/%d %H:%M:%S,000"), json.dumps(sent_obj))]
notification_debug_log+= ["{} - SENDING - {}".format(now.strftime("%c"), json.dumps(sent_obj))]
# Trim the log length
notification_debug_log = notification_debug_log[-100:]
@@ -885,6 +981,10 @@ def ticker_thread_check_time_launch_checks():
logger.debug(f"System env MINIMUM_SECONDS_RECHECK_TIME {recheck_time_minimum_seconds}")
# Workers are now started during app initialization, not here
WAIT_TIME_BETWEEN_LOOP = 1.0 if not IN_PYTEST else 0.01
if IN_PYTEST:
# The time between loops should be less than the first .sleep/wait in def wait_for_all_checks() of tests/util.py
logger.warning(f"Looks like we're in PYTEST! Setting time between searching for items to add to the queue to {WAIT_TIME_BETWEEN_LOOP}s")
while not app.config.exit.is_set():
@@ -902,12 +1002,20 @@ def ticker_thread_check_time_launch_checks():
if health_result['status'] != 'healthy':
logger.warning(f"Worker health check: {health_result['message']}")
last_health_check = now
# Check if all checks are paused
if datastore.data['settings']['application'].get('all_paused', False):
app.config.exit.wait(1)
continue
# Get a list of watches by UUID that are currently fetching data
running_uuids = worker_handler.get_running_uuids()
# Build set of queued UUIDs once for O(1) lookup instead of O(n) per watch
queued_uuids = {q_item.item['uuid'] for q_item in update_q.queue}
# Re #232 - Deepcopy the data incase it changes while we're iterating through it all
watch_uuid_list = []
while True:
@@ -924,16 +1032,17 @@ def ticker_thread_check_time_launch_checks():
else:
break
# Re #438 - Don't place more watches in the queue to be checked if the queue is already large
while update_q.qsize() >= 2000:
logger.warning(f"Recheck watches queue size limit reached ({MAX_QUEUE_SIZE}), skipping adding more items")
time.sleep(3)
recheck_time_system_seconds = int(datastore.threshold_seconds)
# Check for watches outside of the time threshold to put in the thread queue.
for uuid in watch_uuid_list:
for watch_index, uuid in enumerate(watch_uuid_list):
# Re #438 - Check queue size every 100 watches for CPU efficiency (not every watch)
if watch_index % 100 == 0:
current_queue_size = update_q.qsize()
if current_queue_size >= MAX_QUEUE_SIZE:
logger.debug(f"Queue size limit reached ({current_queue_size}/{MAX_QUEUE_SIZE}), stopping scheduler this iteration.")
break
now = time.time()
watch = datastore.data['watching'].get(uuid)
if not watch:
@@ -983,7 +1092,7 @@ def ticker_thread_check_time_launch_checks():
seconds_since_last_recheck = now - watch['last_checked']
if seconds_since_last_recheck >= (threshold + watch.jitter_seconds) and seconds_since_last_recheck >= recheck_time_minimum_seconds:
if not uuid in running_uuids and uuid not in [q_uuid.item['uuid'] for q_uuid in update_q.queue]:
if not uuid in running_uuids and uuid not in queued_uuids:
# Proxies can be set to have a limit on seconds between which they can be called
watch_proxy = datastore.get_preferred_proxy_for_watch(uuid=uuid)
@@ -1025,8 +1134,5 @@ def ticker_thread_check_time_launch_checks():
# Reset for next time
watch.jitter_seconds = 0
# Wait before checking the list again - saves CPU
time.sleep(1)
# Should be low so we can break this out in testing
app.config.exit.wait(1)
app.config.exit.wait(WAIT_TIME_BETWEEN_LOOP)

View File

@@ -727,8 +727,8 @@ class ValidateStartsWithRegex(object):
raise ValidationError(self.message or _l("Invalid value."))
class quickWatchForm(Form):
url = fields.URLField('URL', validators=[validateURL()])
tags = StringTagUUID('Group tag', [validators.Optional()])
url = fields.URLField(_l('URL'), validators=[validateURL()])
tags = StringTagUUID(_l('Group tag'), validators=[validators.Optional()])
watch_submit_button = SubmitField(_l('Watch'), render_kw={"class": "pure-button pure-button-primary"})
processor = RadioField(_l('Processor'), choices=lambda: processors.available_processors(), default="text_json_diff")
edit_and_watch_submit_button = SubmitField(_l('Edit > Watch'), render_kw={"class": "pure-button pure-button-primary"})
@@ -781,11 +781,12 @@ class SingleBrowserStep(Form):
class processor_text_json_diff_form(commonSettingsForm):
url = fields.URLField('URL', validators=[validateURL()])
tags = StringTagUUID('Group tag', [validators.Optional()], default='')
url = fields.URLField('Web Page URL', validators=[validateURL()])
tags = StringTagUUID('Group Tag', [validators.Optional()], default='')
time_between_check = EnhancedFormField(
TimeBetweenCheckForm,
label=_l('Time Between Check'),
conditional_field='time_between_check_use_default',
conditional_message=REQUIRE_ATLEAST_ONE_TIME_PART_WHEN_NOT_GLOBAL_DEFAULT,
conditional_test_function=validate_time_between_check_has_values
@@ -947,7 +948,7 @@ class DefaultUAInputForm(Form):
# datastore.data['settings']['requests']..
class globalSettingsRequestForm(Form):
time_between_check = RequiredFormField(TimeBetweenCheckForm)
time_between_check = RequiredFormField(TimeBetweenCheckForm, label=_l('Time Between Check'))
time_schedule_limit = FormField(ScheduleLimitForm)
proxy = RadioField(_l('Default proxy'))
jitter_seconds = IntegerField(_l('Random jitter seconds ± check'),
@@ -1007,7 +1008,7 @@ class globalSettingsApplicationForm(commonSettingsForm):
render_kw={"placeholder": "0.1", "style": "width: 8em;"}
)
password = SaltyPasswordField()
password = SaltyPasswordField(_l('Password'))
pager_size = IntegerField(_l('Pager size'),
render_kw={"style": "width: 5em;"},
validators=[validators.NumberRange(min=0,

View File

@@ -539,6 +539,18 @@ def cdata_in_document_to_text(html_content: str, render_anchor_tag_content=False
def html_to_text(html_content: str, render_anchor_tag_content=False, is_rss=False, timeout=10) -> str:
"""
Convert HTML content to plain text using inscriptis.
Thread-Safety: This function uses inscriptis.get_text() which internally calls
lxml.html.fromstring() with the default parser. Testing with 50 concurrent threads
confirms this approach is thread-safe and produces deterministic output.
Alternative Approach Rejected: An explicit HTMLParser instance (thread-local or fresh)
would also be thread-safe, but was found to break change detection logic in subtle ways
(test_check_basic_change_detection_functionality). The default parser provides correct
and reliable behavior.
"""
from inscriptis import get_text
from inscriptis.model.config import ParserConfig

View File

@@ -0,0 +1,113 @@
"""
URL redirect validation module for preventing open redirect vulnerabilities.
This module provides functionality to safely validate redirect URLs, ensuring they:
1. Point to internal routes only (no external redirects)
2. Are properly normalized (preventing browser parsing differences)
3. Match registered Flask routes (no fake/non-existent pages)
4. Are fully logged for security monitoring
References:
- https://flask-login.readthedocs.io/ (safe redirect patterns)
- https://blog.miguelgrinberg.com/post/the-flask-mega-tutorial-part-v-user-logins
- https://www.pythonkitchen.com/how-prevent-open-redirect-vulnerab-flask/
"""
from urllib.parse import urlparse, urljoin
from flask import request
from loguru import logger
def is_safe_url(target, app):
"""
Validate that a redirect URL is safe to prevent open redirect vulnerabilities.
This follows Flask/Werkzeug best practices by ensuring the redirect URL:
1. Is a relative path starting with exactly one '/'
2. Does not start with '//' (double-slash attack)
3. Has no external protocol handlers
4. Points to a valid registered route in the application
5. Is properly normalized to prevent browser parsing differences
Args:
target: The URL to validate (e.g., '/settings', '/login#top')
app: The Flask application instance (needed for route validation)
Returns:
bool: True if the URL is safe for redirection, False otherwise
Examples:
>>> is_safe_url('/settings', app)
True
>>> is_safe_url('//evil.com', app)
False
>>> is_safe_url('/settings#general', app)
True
>>> is_safe_url('/fake-page', app)
False
"""
if not target:
return False
# Normalize the URL to prevent browser parsing differences
# Strip whitespace and replace backslashes (which some browsers interpret as forward slashes)
target = target.strip()
target = target.replace('\\', '/')
# First, check if it starts with // or more (double-slash attack)
if target.startswith('//'):
logger.warning(f"Blocked redirect attempt with double-slash: {target}")
return False
# Parse the URL to check for scheme and netloc
parsed = urlparse(target)
# Block any URL with a scheme (http://, https://, javascript:, etc.)
if parsed.scheme:
logger.warning(f"Blocked redirect attempt with scheme: {target}")
return False
# Block any URL with a network location (netloc)
# This catches patterns like //evil.com, user@host, etc.
if parsed.netloc:
logger.warning(f"Blocked redirect attempt with netloc: {target}")
return False
# At this point, we have a relative URL with no scheme or netloc
# Use urljoin to resolve it and verify it points to the same host
ref_url = urlparse(request.host_url)
test_url = urlparse(urljoin(request.host_url, target))
# Check: ensure the resolved URL has the same netloc as current host
if not (test_url.scheme in ('http', 'https') and ref_url.netloc == test_url.netloc):
logger.warning(f"Blocked redirect attempt with mismatched netloc: {target}")
return False
# Additional validation: Check if the URL matches a registered route
# This prevents redirects to non-existent pages or unintended endpoints
try:
# Get the path without query string and fragment
# Fragments (like #general) are automatically stripped by urlparse
path = parsed.path
# Create a URL adapter bound to the server name
adapter = app.url_map.bind(ref_url.netloc)
# Try to match the path to a registered route
# This will raise NotFound if the route doesn't exist
endpoint, values = adapter.match(path, return_rule=False)
# Block redirects to static file endpoints - these are catch-all routes
# that would match arbitrary paths, potentially allowing unintended redirects
if endpoint in ('static_content', 'static', 'static_flags'):
logger.warning(f"Blocked redirect to static endpoint: {target}")
return False
# Successfully matched a valid route
logger.debug(f"Validated safe redirect to endpoint '{endpoint}': {target}")
return True
except Exception as e:
# Route doesn't exist or can't be matched
logger.warning(f"Blocked redirect to non-existent route: {target} (error: {e})")
return False

View File

@@ -29,18 +29,24 @@ def get_timeago_locale(flask_locale):
"""
locale_map = {
'zh': 'zh_CN', # Chinese Simplified
# timeago library just hasn't been updated to use the more modern locale naming convention, before BCP 47 / RFC 5646.
'zh_TW': 'zh_TW', # Chinese Traditional (timeago uses zh_TW)
'zh_Hant_TW': 'zh_TW', # Flask-Babel normalizes zh_TW to zh_Hant_TW, map back to timeago's zh_TW
'pt': 'pt_PT', # Portuguese (Portugal)
'sv': 'sv_SE', # Swedish
'no': 'nb_NO', # Norwegian Bokmål
'hi': 'in_HI', # Hindi
'cs': 'en', # Czech not supported by timeago, fallback to English
'en_GB': 'en', # British English - timeago uses 'en'
'en_US': 'en', # American English - timeago uses 'en'
}
return locale_map.get(flask_locale, flask_locale)
# Language metadata: flag icon CSS class and native name
# Using flag-icons library: https://flagicons.lipis.dev/
LANGUAGE_DATA = {
'en': {'flag': 'fi fi-gb fis', 'name': 'English'},
'en_GB': {'flag': 'fi fi-gb fis', 'name': 'English (UK)'},
'en_US': {'flag': 'fi fi-us fis', 'name': 'English (US)'},
'de': {'flag': 'fi fi-de fis', 'name': 'Deutsch'},
'fr': {'flag': 'fi fi-fr fis', 'name': 'Français'},
'ko': {'flag': 'fi fi-kr fis', 'name': '한국어'},
@@ -50,7 +56,7 @@ LANGUAGE_DATA = {
'it': {'flag': 'fi fi-it fis', 'name': 'Italiano'},
'ja': {'flag': 'fi fi-jp fis', 'name': '日本語'},
'zh': {'flag': 'fi fi-cn fis', 'name': '中文 (简体)'},
'zh_TW': {'flag': 'fi fi-tw fis', 'name': '繁體中文'},
'zh_Hant_TW': {'flag': 'fi fi-tw fis', 'name': '繁體中文'},
'ru': {'flag': 'fi fi-ru fis', 'name': 'Русский'},
'pl': {'flag': 'fi fi-pl fis', 'name': 'Polski'},
'nl': {'flag': 'fi fi-nl fis', 'name': 'Nederlands'},
@@ -71,10 +77,7 @@ def get_available_languages():
"""
translations_dir = Path(__file__).parent / 'translations'
# Always include English as base language
available = {
'en': LANGUAGE_DATA['en']
}
available = {}
# Scan for translation directories
if translations_dir.exists():
@@ -85,6 +88,10 @@ def get_available_languages():
if po_file.exists():
available[lang_dir.name] = LANGUAGE_DATA[lang_dir.name]
# If no English variants found, fall back to adding en_GB as default
if 'en_GB' not in available and 'en_US' not in available:
available['en_GB'] = LANGUAGE_DATA['en_GB']
return available

View File

@@ -37,6 +37,8 @@ class model(dict):
},
'application': {
# Custom notification content
'all_paused': False,
'all_muted': False,
'api_access_token_enabled': True,
'base_url' : None,
'empty_pages_are_a_change': False,

View File

@@ -10,54 +10,23 @@ from pathlib import Path
from loguru import logger
from .. import jinja2_custom as safe_jinja
from ..diff import ADDED_PLACEMARKER_OPEN
from ..html_tools import TRANSLATE_WHITESPACE_TABLE
FAVICON_RESAVE_THRESHOLD_SECONDS=86400
BROTLI_COMPRESS_SIZE_THRESHOLD = int(os.getenv('SNAPSHOT_BROTLI_COMPRESSION_THRESHOLD', 1024))
def _brotli_compress_worker(conn, filepath, mode=None):
minimum_seconds_recheck_time = int(os.getenv('MINIMUM_SECONDS_RECHECK_TIME', 3))
mtable = {'seconds': 1, 'minutes': 60, 'hours': 3600, 'days': 86400, 'weeks': 86400 * 7}
def _brotli_save(contents, filepath, mode=None, fallback_uncompressed=False):
"""
Worker function to compress data with brotli in a separate process.
This isolates memory - when process exits, OS reclaims all memory.
Args:
conn: multiprocessing.Pipe connection to receive data
filepath: destination file path
mode: brotli compression mode (e.g., brotli.MODE_TEXT)
"""
import brotli
try:
# Receive data from parent process via pipe (avoids pickle overhead)
contents = conn.recv()
if mode is not None:
compressed_data = brotli.compress(contents, mode=mode)
else:
compressed_data = brotli.compress(contents)
with open(filepath, 'wb') as f:
f.write(compressed_data)
# Send success status back
conn.send(True)
# No need for explicit cleanup - process exit frees all memory
except Exception as e:
logger.error(f"Brotli compression worker failed: {e}")
conn.send(False)
finally:
conn.close()
def _brotli_subprocess_save(contents, filepath, mode=None, timeout=30, fallback_uncompressed=False):
"""
Save compressed data using subprocess to isolate memory.
Uses Pipe to avoid pickle overhead for large data.
Save compressed data using native brotli.
Testing shows no memory leak when using gc.collect() after compression.
Args:
contents: data to compress (str or bytes)
filepath: destination file path
mode: brotli compression mode (e.g., brotli.MODE_TEXT)
timeout: subprocess timeout in seconds
fallback_uncompressed: if True, save uncompressed on failure; if False, raise exception
Returns:
@@ -67,88 +36,43 @@ def _brotli_subprocess_save(contents, filepath, mode=None, timeout=30, fallback_
Exception: if compression fails and fallback_uncompressed is False
"""
import brotli
import multiprocessing
import sys
import gc
# Ensure contents are bytes
if isinstance(contents, str):
contents = contents.encode('utf-8')
# Use explicit spawn context for thread safety (avoids fork() with multi-threaded parent)
# Always use spawn - consistent behavior in tests and production
ctx = multiprocessing.get_context('spawn')
parent_conn, child_conn = ctx.Pipe()
# Run compression in subprocess using spawn (not fork)
proc = ctx.Process(target=_brotli_compress_worker, args=(child_conn, filepath, mode))
# Windows-safe: Set daemon=False explicitly to avoid issues with process cleanup
proc.daemon = False
proc.start()
try:
# Send data to subprocess via pipe (avoids pickle)
parent_conn.send(contents)
logger.debug(f"Starting brotli compression of {len(contents)} bytes.")
# Wait for result with timeout
if parent_conn.poll(timeout):
success = parent_conn.recv()
if mode is not None:
compressed_data = brotli.compress(contents, mode=mode)
else:
success = False
logger.warning(f"Brotli compression subprocess timed out after {timeout}s")
# Graceful termination with platform-aware cleanup
try:
proc.terminate()
except Exception as term_error:
logger.debug(f"Process termination issue (may be normal on Windows): {term_error}")
compressed_data = brotli.compress(contents)
parent_conn.close()
proc.join(timeout=5)
with open(filepath, 'wb') as f:
f.write(compressed_data)
# Force kill if still alive after graceful termination
if proc.is_alive():
try:
if sys.platform == 'win32':
# Windows: use kill() which is more forceful
proc.kill()
else:
# Unix: terminate() already sent SIGTERM, now try SIGKILL
proc.kill()
proc.join(timeout=2)
except Exception as kill_error:
logger.warning(f"Failed to kill brotli compression process: {kill_error}")
logger.debug(f"Finished brotli compression - From {len(contents)} to {len(compressed_data)} bytes.")
# Check if file was created successfully
if success and os.path.exists(filepath):
return filepath
# Force garbage collection to prevent memory buildup
gc.collect()
return filepath
except Exception as e:
logger.error(f"Brotli compression error: {e}")
try:
parent_conn.close()
except:
pass
try:
proc.terminate()
proc.join(timeout=2)
except:
pass
# Compression failed
if fallback_uncompressed:
logger.warning(f"Brotli compression failed for {filepath}, saving uncompressed")
fallback_path = filepath.replace('.br', '')
with open(fallback_path, 'wb') as f:
f.write(contents)
return fallback_path
else:
raise Exception(f"Brotli compression subprocess failed for {filepath}")
# Compression failed
if fallback_uncompressed:
logger.warning(f"Brotli compression failed for {filepath}, saving uncompressed")
fallback_path = filepath.replace('.br', '')
with open(fallback_path, 'wb') as f:
f.write(contents)
return fallback_path
else:
raise Exception(f"Brotli compression failed for {filepath}: {e}")
FAVICON_RESAVE_THRESHOLD_SECONDS=86400
minimum_seconds_recheck_time = int(os.getenv('MINIMUM_SECONDS_RECHECK_TIME', 3))
mtable = {'seconds': 1, 'minutes': 60, 'hours': 3600, 'days': 86400, 'weeks': 86400 * 7}
class model(watch_base):
__newest_history_key = None
@@ -492,7 +416,6 @@ class model(watch_base):
self.ensure_data_dir_exists()
threshold = int(os.getenv('SNAPSHOT_BROTLI_COMPRESSION_THRESHOLD', 1024))
skip_brotli = strtobool(os.getenv('DISABLE_BROTLI_TEXT_SNAPSHOT', 'False'))
# Binary data - detect file type and save without compression
@@ -516,7 +439,7 @@ class model(watch_base):
# Text data - use brotli compression if enabled and above threshold
else:
if not skip_brotli and len(contents) > threshold:
if not skip_brotli and len(contents) > BROTLI_COMPRESS_SIZE_THRESHOLD:
# Compressed text
import brotli
snapshot_fname = f"{snapshot_id}.txt.br"
@@ -524,7 +447,7 @@ class model(watch_base):
if not os.path.exists(dest):
try:
actual_dest = _brotli_subprocess_save(contents, dest, mode=brotli.MODE_TEXT, fallback_uncompressed=True)
actual_dest = _brotli_save(contents, dest, mode=brotli.MODE_TEXT, fallback_uncompressed=True)
if actual_dest != dest:
snapshot_fname = os.path.basename(actual_dest)
except Exception as e:
@@ -950,13 +873,13 @@ class model(watch_base):
def save_last_text_fetched_before_filters(self, contents):
import brotli
filepath = os.path.join(self.watch_data_dir, 'last-fetched.br')
_brotli_subprocess_save(contents, filepath, mode=brotli.MODE_TEXT, fallback_uncompressed=False)
_brotli_save(contents, filepath, mode=brotli.MODE_TEXT, fallback_uncompressed=False)
def save_last_fetched_html(self, timestamp, contents):
self.ensure_data_dir_exists()
snapshot_fname = f"{timestamp}.html.br"
filepath = os.path.join(self.watch_data_dir, snapshot_fname)
_brotli_subprocess_save(contents, filepath, mode=None, fallback_uncompressed=True)
_brotli_save(contents, filepath, mode=None, fallback_uncompressed=True)
self._prune_last_fetched_html_snapshots()
def get_fetched_html(self, timestamp):

View File

@@ -7,6 +7,7 @@ and exporting to CSV format. This is the default extractor that all processors
"""
import os
from flask_babel import gettext
from loguru import logger
@@ -101,7 +102,7 @@ def process_extraction(watch, datastore, request, url_for, make_response, send_f
)
if not extract_form.validate():
flash("An error occurred, please see below.", "error")
flash(gettext("An error occurred, please see below."), "error")
# render_template needs to be imported from Flask for this to work
from flask import render_template as flask_render_template
return render_form(
@@ -127,5 +128,5 @@ def process_extraction(watch, datastore, request, url_for, make_response, send_f
response.headers['Expires'] = "0"
return response
flash('No matches found while scanning all of the watch history for that RegEx.', 'error')
flash(gettext('No matches found while scanning all of the watch history for that RegEx.'), 'error')
return redirect(url_for('ui.ui_diff.diff_history_page_extract_GET', uuid=uuid))

View File

@@ -8,6 +8,7 @@ of concerns and easy backend swapping (LibVIPS, OpenCV, PIL, etc.).
import os
import json
import time
from flask_babel import gettext
from loguru import logger
from changedetectionio.processors.image_ssim_diff import SCREENSHOT_COMPARISON_THRESHOLD_OPTIONS_DEFAULT, PROCESSOR_CONFIG_NAME, \
@@ -129,7 +130,7 @@ def get_asset(asset_name, watch, datastore, request):
except Exception as e:
exception_container[0] = e
thread = threading.Thread(target=thread_target)
thread = threading.Thread(target=thread_target, daemon=True, name="ImageDiff-Asset")
thread.start()
thread.join(timeout=60)
@@ -283,7 +284,7 @@ def _draw_bounding_box_if_configured(img_bytes, watch, datastore):
except Exception as e:
exception_container[0] = e
thread = threading.Thread(target=thread_target)
thread = threading.Thread(target=thread_target, daemon=True, name="ImageDiff-BoundingBox")
thread.start()
thread.join(timeout=15)
@@ -324,7 +325,7 @@ def render(watch, datastore, request, url_for, render_template, flash, redirect)
versions = list(watch.history.keys())
if len(versions) < 2:
flash("Not enough history to compare. Need at least 2 snapshots.", "error")
flash(gettext("Not enough history to compare. Need at least 2 snapshots."), "error")
return redirect(url_for('watchlist.index'))
# Default: compare latest two versions
@@ -359,7 +360,7 @@ def render(watch, datastore, request, url_for, render_template, flash, redirect)
except Exception as e:
logger.error(f"Failed to load screenshots: {e}")
flash(f"Failed to load screenshots: {e}", "error")
flash(gettext("Failed to load screenshots: {}").format(e), "error")
return redirect(url_for('watchlist.index'))
# Calculate change percentage using isolated subprocess to prevent memory leaks (async-safe)
@@ -392,7 +393,7 @@ def render(watch, datastore, request, url_for, render_template, flash, redirect)
except Exception as e:
exception_container[0] = e
thread = threading.Thread(target=thread_target)
thread = threading.Thread(target=thread_target, daemon=True, name="ImageDiff-ChangePercentage")
thread.start()
thread.join(timeout=60)
@@ -408,7 +409,7 @@ def render(watch, datastore, request, url_for, render_template, flash, redirect)
logger.error(f"Failed to calculate change percentage: {e}")
import traceback
logger.error(traceback.format_exc())
flash(f"Failed to calculate diff: {e}", "error")
flash(gettext("Failed to calculate diff: {}").format(e), "error")
return redirect(url_for('watchlist.index'))
# Load historical data if available (for charts/visualization)

View File

@@ -13,14 +13,9 @@ Research: https://github.com/libvips/pyvips/issues/234
import multiprocessing
# CRITICAL: Use 'spawn' instead of 'fork' to avoid inheriting parent's
# CRITICAL: Use 'spawn' context instead of 'fork' to avoid inheriting parent's
# LibVIPS threading state which can cause hangs in gaussblur operations
# https://docs.python.org/3/library/multiprocessing.html#contexts-and-start-methods
try:
multiprocessing.set_start_method('spawn', force=False)
except RuntimeError:
# Already set, ignore
pass
def _worker_generate_diff(conn, img_bytes_from, img_bytes_to, threshold, blur_sigma, max_width, max_height):
@@ -95,9 +90,10 @@ def generate_diff_isolated(img_bytes_from, img_bytes_to, threshold, blur_sigma,
Returns:
bytes: JPEG diff image or None on failure
"""
parent_conn, child_conn = multiprocessing.Pipe()
ctx = multiprocessing.get_context('spawn')
parent_conn, child_conn = ctx.Pipe()
p = multiprocessing.Process(
p = ctx.Process(
target=_worker_generate_diff,
args=(child_conn, img_bytes_from, img_bytes_to, threshold, blur_sigma, max_width, max_height)
)
@@ -140,7 +136,8 @@ def calculate_change_percentage_isolated(img_bytes_from, img_bytes_to, threshold
Returns:
float: Change percentage
"""
parent_conn, child_conn = multiprocessing.Pipe()
ctx = multiprocessing.get_context('spawn')
parent_conn, child_conn = ctx.Pipe()
def _worker_calculate(conn):
try:
@@ -185,7 +182,7 @@ def calculate_change_percentage_isolated(img_bytes_from, img_bytes_to, threshold
finally:
conn.close()
p = multiprocessing.Process(target=_worker_calculate, args=(child_conn,))
p = ctx.Process(target=_worker_calculate, args=(child_conn,))
p.start()
result = 0.0
@@ -233,7 +230,8 @@ def compare_images_isolated(img_bytes_from, img_bytes_to, threshold, blur_sigma,
tuple: (changed_detected, change_percentage)
"""
print(f"[Parent] Starting compare_images_isolated subprocess", flush=True)
parent_conn, child_conn = multiprocessing.Pipe()
ctx = multiprocessing.get_context('spawn')
parent_conn, child_conn = ctx.Pipe()
def _worker_compare(conn):
try:
@@ -301,7 +299,7 @@ def compare_images_isolated(img_bytes_from, img_bytes_to, threshold, blur_sigma,
finally:
conn.close()
p = multiprocessing.Process(target=_worker_compare, args=(child_conn,))
p = ctx.Process(target=_worker_compare, args=(child_conn,))
print(f"[Parent] Starting subprocess (pid will be assigned)", flush=True)
p.start()
print(f"[Parent] Subprocess started (pid={p.pid}), waiting for result (30s timeout)", flush=True)

View File

@@ -4,6 +4,7 @@ Preview rendering for SSIM screenshot processor.
Renders images properly in the browser instead of showing raw bytes.
"""
from flask_babel import gettext
from loguru import logger
@@ -87,7 +88,7 @@ def render(watch, datastore, request, url_for, render_template, flash, redirect)
versions = list(watch.history.keys())
if len(versions) == 0:
flash("Preview unavailable - No snapshots captured yet", "error")
flash(gettext("Preview unavailable - No snapshots captured yet"), "error")
return redirect(url_for('watchlist.index'))
# Get the version to display (default: latest)

View File

@@ -16,8 +16,11 @@ from ..base import difference_detection_processor, SCREENSHOT_FORMAT_PNG
# All image operations now use OpenCV via isolated_opencv subprocess handler
# Template matching temporarily disabled pending OpenCV implementation
name = 'Visual / Image screenshot change detection'
description = 'Compares screenshots using fast OpenCV algorithm, 10-100x faster than SSIM'
# Translation marker for extraction
def _(x): return x
name = _('Visual / Image screenshot change detection')
description = _('Compares screenshots using fast OpenCV algorithm, 10-100x faster than SSIM')
del _
processor_weight = 2
list_badge_text = "Visual"
@@ -201,7 +204,7 @@ class perform_site_check(difference_detection_processor):
except Exception as e:
exception_container[0] = e
thread = threading.Thread(target=thread_target)
thread = threading.Thread(target=thread_target, daemon=True, name="ImageDiff-Processor")
thread.start()
thread.join(timeout=60)

View File

@@ -8,8 +8,11 @@ import time
urllib3.disable_warnings(urllib3.exceptions.InsecureRequestWarning)
# Translatable strings - extracted by pybabel, translated at runtime in __init__.py
name = 'Re-stock & Price detection for pages with a SINGLE product' # _()
description = 'Detects if the product goes back to in-stock' # _()
# Use a marker function so pybabel can extract these strings
def _(x): return x # Translation marker for extraction only
name = _('Re-stock & Price detection for pages with a SINGLE product')
description = _('Detects if the product goes back to in-stock')
del _ # Remove marker function
processor_weight = 1
list_badge_text = "Restock" # _()

View File

@@ -17,8 +17,11 @@ from changedetectionio.processors.magic import guess_stream_type
urllib3.disable_warnings(urllib3.exceptions.InsecureRequestWarning)
name = 'Webpage Text/HTML, JSON and PDF changes'
description = 'Detects all text changes where possible'
# Translation marker for extraction - allows pybabel to find these strings
def _(x): return x
name = _('Webpage Text/HTML, JSON and PDF changes')
description = _('Detects all text changes where possible')
del _ # Remove marker
processor_weight = -100
list_badge_text = "Text"

View File

@@ -86,6 +86,7 @@ class RecheckPriorityQueue:
def get(self, block: bool = True, timeout: Optional[float] = None):
"""Thread-safe sync get with priority ordering"""
import queue
try:
# Wait for notification
self.sync_q.get(block=block, timeout=timeout)
@@ -103,8 +104,11 @@ class RecheckPriorityQueue:
logger.debug(f"Successfully retrieved item: {self._get_item_uuid(item)}")
return item
except queue.Empty:
# Queue is empty with timeout - expected behavior, re-raise without logging
raise
except Exception as e:
logger.critical(f"CRITICAL: Failed to get item from queue: {str(e)}")
# Re-raise without logging - caller (worker) will handle and log appropriately
raise
# ASYNC INTERFACE (for workers)
@@ -172,7 +176,16 @@ class RecheckPriorityQueue:
def empty(self) -> bool:
"""Check if queue is empty"""
return self.qsize() == 0
def get_queued_uuids(self) -> list:
"""Get list of all queued UUIDs efficiently with single lock"""
try:
with self._lock:
return [item.item['uuid'] for item in self._priority_items if hasattr(item, 'item') and 'uuid' in item.item]
except Exception as e:
logger.critical(f"CRITICAL: Failed to get queued UUIDs: {str(e)}")
return []
def close(self):
"""Close the janus queue"""
try:
@@ -348,21 +361,31 @@ class NotificationQueue:
Simple wrapper around janus with bulletproof error handling.
"""
def __init__(self, maxsize: int = 0):
def __init__(self, maxsize: int = 0, datastore=None):
try:
self._janus_queue = janus.Queue(maxsize=maxsize)
# BOTH interfaces required - see class docstring for why
self.sync_q = self._janus_queue.sync_q # Flask routes, threads
self.async_q = self._janus_queue.async_q # Async workers
self.notification_event_signal = signal('notification_event')
self.datastore = datastore # For checking all_muted setting
logger.debug("NotificationQueue initialized successfully")
except Exception as e:
logger.critical(f"CRITICAL: Failed to initialize NotificationQueue: {str(e)}")
raise
def set_datastore(self, datastore):
"""Set datastore reference after initialization (for circular dependency handling)"""
self.datastore = datastore
def put(self, item: Dict[str, Any], block: bool = True, timeout: Optional[float] = None):
"""Thread-safe sync put with signal emission"""
try:
# Check if all notifications are muted
if self.datastore and self.datastore.data['settings']['application'].get('all_muted', False):
logger.debug(f"Notification blocked - all notifications are muted: {item.get('uuid', 'unknown')}")
return False
self.sync_q.put(item, block=block, timeout=timeout)
self._emit_notification_signal(item)
logger.debug(f"Successfully queued notification: {item.get('uuid', 'unknown')}")
@@ -374,6 +397,11 @@ class NotificationQueue:
async def async_put(self, item: Dict[str, Any]):
"""Pure async put with signal emission"""
try:
# Check if all notifications are muted
if self.datastore and self.datastore.data['settings']['application'].get('all_muted', False):
logger.debug(f"Notification blocked - all notifications are muted: {item.get('uuid', 'unknown')}")
return False
await self.async_q.put(item)
self._emit_notification_signal(item)
logger.debug(f"Successfully async queued notification: {item.get('uuid', 'unknown')}")

View File

@@ -150,11 +150,8 @@ def handle_watch_update(socketio, **kwargs):
# Get list of watches that are currently running
running_uuids = worker_handler.get_running_uuids()
# Get list of watches in the queue
queue_list = []
for q_item in update_q.queue:
if hasattr(q_item, 'item') and 'uuid' in q_item.item:
queue_list.append(q_item.item['uuid'])
# Get list of watches in the queue (efficient single-lock method)
queue_list = update_q.get_queued_uuids()
# Get the error texts from the watch
error_texts = watch.compile_error_texts()
@@ -254,21 +251,32 @@ def init_socketio(app, datastore):
from changedetectionio import queuedWatchMetaData
from changedetectionio import worker_handler
from changedetectionio.flask_app import update_q, watch_check_update
import threading
logger.trace(f"Got checkbox operations event: {data}")
datastore = socketio.datastore
_handle_operations(
op=data.get('op'),
uuids=data.get('uuids'),
datastore=datastore,
extra_data=data.get('extra_data'),
worker_handler=worker_handler,
update_q=update_q,
queuedWatchMetaData=queuedWatchMetaData,
watch_check_update=watch_check_update,
emit_flash=False
)
def run_operation():
"""Run the operation in a background thread to avoid blocking the socket.io event loop"""
try:
_handle_operations(
op=data.get('op'),
uuids=data.get('uuids'),
datastore=datastore,
extra_data=data.get('extra_data'),
worker_handler=worker_handler,
update_q=update_q,
queuedWatchMetaData=queuedWatchMetaData,
watch_check_update=watch_check_update,
emit_flash=False
)
except Exception as e:
logger.error(f"Error in checkbox operation thread: {e}")
# Start operation in a disposable daemon thread
thread = threading.Thread(target=run_operation, daemon=True, name=f"checkbox-op-{data.get('op')}")
thread.start()
@socketio.on('connect')
def handle_connect():

View File

@@ -82,27 +82,22 @@ echo "RUNNING WITH BASE_URL SET"
# Re #65 - Ability to include a link back to the installation, in the notification.
export BASE_URL="https://really-unique-domain.io"
REMOVE_REQUESTS_OLD_SCREENSHOTS=false pytest -vv -s --maxfail=1 tests/test_notification.py
# Re-run with HIDE_REFERER set - could affect login
export HIDE_REFERER=True
pytest -vv -s --maxfail=1 tests/test_access_control.py
REMOVE_REQUESTS_OLD_SCREENSHOTS=false pytest -vv -s --maxfail=1 tests/test_notification.py tests/test_access_control.py
# Re-run a few tests that will trigger brotli based storage
export SNAPSHOT_BROTLI_COMPRESSION_THRESHOLD=5
pytest -vv -s --maxfail=1 tests/test_access_control.py
REMOVE_REQUESTS_OLD_SCREENSHOTS=false pytest tests/test_notification.py
pytest -vv -s --maxfail=1 tests/test_backend.py
pytest -vv -s --maxfail=1 tests/test_rss.py
pytest -vv -s --maxfail=1 tests/test_unique_lines.py
# And again with brotli+screenshot attachment
SNAPSHOT_BROTLI_COMPRESSION_THRESHOLD=5 REMOVE_REQUESTS_OLD_SCREENSHOTS=false pytest -vv -s --maxfail=1 --dist=load tests/test_backend.py tests/test_rss.py tests/test_unique_lines.py tests/test_notification.py tests/test_access_control.py
# Try high concurrency
FETCH_WORKERS=130 pytest tests/test_history_consistency.py -v -l
FETCH_WORKERS=50 pytest tests/test_history_consistency.py -vv -l -s
# Check file:// will pickup a file when enabled
echo "Hello world" > /tmp/test-file.txt
ALLOW_FILE_URI=yes pytest -vv -s tests/test_security.py
# Run it again so that brotli kicks in
TEST_WITH_BROTLI=1 SNAPSHOT_BROTLI_COMPRESSION_THRESHOLD=100 FETCH_WORKERS=20 pytest tests/test_history_consistency.py -vv -l -s

View File

@@ -0,0 +1,148 @@
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" id="flag-icons-ad" viewBox="0 0 512 512">
<path fill="#d0103a" d="M0 0h512v512H0z"/>
<path fill="#fedf00" d="M0 0h348.2v512H0z"/>
<path fill="#0018a8" d="M0 0h163.8v512H0z"/>
<path fill="#c7b37f" d="M240.3 173.3c6.2 0 8.7 5.3 14.9 5.3 3.8 0 6-1.2 9.3-3.1 2.4-1.3 3.8-2 6.5-2s4.4.8 5.8 3.1a9 9 0 0 1 1 5.4 32 32 0 0 1-2.1 6.7c-.5 1.2-1 2-1 3.3 0 3.3 4.4 4.4 7.4 4.5.7 0 6.3 0 9.7-3.4-1.9 0-4-1.5-4-3.4 0-2 1.5-3.5 3.5-4.1.4-.1 1 .2 1.4 0 .5-.2.2-.8.7-1.1 1-.8 1.6-1.3 2.9-1.3a3 3 0 0 1 2 .6c.3.2.5.6.9.6 1 0 1.4-.6 2.3-.6.7 0 1.2 0 1.8.4.6.3.6 1.2 1.2 1.2.3 0 1.9-.6 2.8-.6 1.7 0 2.7.6 3.8 2 .3.3.5 1 .8 1a5 5 0 0 1 3.9 2.4c.2.3.5 1.1.9 1.3.4.1.7.1 1.3.5a4.8 4.8 0 0 1 2.3 3.9c0 .5-.3 1.2-.4 1.7-1.5 5.2-5.1 7-8.7 11.4-1.6 2-2.8 3.5-2.8 6 0 .6.8 1.7 1 2.2-.1-1.2.4-2.6 1.6-2.7 1.7 0 3 1.2 3.2 2.8 0 .4 0 1.1-.2 1.5.9-.6 2-1 3.2-1.1a9.9 9.9 0 0 1 1.5 0 13 13 0 0 1 7.4 3 16.9 16.9 0 0 1 5.9 13.4c-.7 4.3-.3 11.9-11 15 2 .8 3.3 2.3 3.3 4.1 0 2-1.5 3.8-3.5 3.8a3.5 3.5 0 0 1-2.8-1.1c-2.2 2.2-2.7 4.5-2.7 7.7 0 1.9.4 3 1.2 4.7a9 9 0 0 0 3 4.2c.8-1.2 1.6-2 3-2 1.5 0 2.7.4 3.3 1.7.1.3 0 .7.2 1 .2.5.7.6 1 1.1.3.8 0 1.4.3 2.2.2.5.7.6 1 1 .3.9.4 1.4.4 2.3 0 2.4-2.2 4-4.6 4-.8 0-1.2-.2-1.9-.1 1.4 1.3 2.4 2 3.5 3.6a14.1 14.1 0 0 1 2.3 8.2c0 3.6-.6 5.8-2.2 9a16 16 0 0 1-5.6 6.8 28 28 0 0 1-12.8 5c-3.4.7-5.3 1-8.8 1.2l-11.3.6c-5.7.4-9.7 1.2-13.8 5.3 2 1.4 3.3 2.8 3.3 5.2 0 2.4-1.5 4.2-3.9 5-.5.1-1 0-1.4.2-.6.3-.6 1-1.2 1.4a5 5 0 0 1-3 .8c-2.2 0-3.6-.5-5.2-2-1.7 1.4-2.3 2.7-4.3 3.9-.7.3-1 .8-1.7.8-1.2 0-1.8-.7-2.7-1.4a18.4 18.4 0 0 1-3.6-3.3c-1.8 1.1-2.9 2-5 2a5.2 5.2 0 0 1-3.1-.9c-.6-.3-.7-.9-1.3-1.2-.6-.4-1-.2-1.7-.5-2.4-1-4-2.8-4-5.5 0-2.3 1.5-3.8 3.6-4.7-4-4-8-4.7-13.6-5-4.4-.4-7-.4-11.3-.7-3.4-.2-5.4-.6-8.8-1.1-2.6-.4-4.1-.6-6.5-1.7-8.2-3.8-13.4-9-14.5-18v-2c0-4.7 1.8-7.5 5-10.8-.8-.2-1.3 0-2.2-.2-2-.8-3.5-2.2-3.5-4.4 0-.8 0-1.4.4-2 .3-.6.8-.7 1-1.2.1-.8 0-1.3.3-2 .2-.5.6-.5.8-1 .7-1.5 1.6-2.7 3.3-2.7 1.4 0 2.3.8 3 2 1.4-.7 1.8-1.7 2.6-3 1.3-2.2 1.8-3.7 1.8-6.2a11 11 0 0 0-.7-4.4c-.4-1.2-.5-2-1.4-3a3.5 3.5 0 0 1-2.8 1.2c-2.3 0-4-2-4-4.3 0-1.7.8-3 2.4-3.7-1.3-1-2.4-1.2-3.7-2-2.1-1.4-2.9-2.7-4.2-4.8-1-1.4-1.2-2.3-1.6-3.8a15 15 0 0 1-.9-5v-1.3c.6-3.9 1.3-6.4 3.8-9.5a11 11 0 0 1 4.6-3.9 11.6 11.6 0 0 1 6.5-1.3c1 .2 1.5.2 2.3.7.3.2.9.7.9.3l-.2-1c0-1.7 1.2-3.2 2.8-3.2 1.2 0 1.7 1 2.3 2 .4-.6.6-1 .6-1.7 0-2.8-1.5-4.2-3.2-6.3-3.7-4.7-8.4-6.9-8.4-12.8 0-1.8.9-3 2.4-4 .4-.2 1 0 1.5-.2.3-.3.3-.7.5-1.1a4 4 0 0 1 1.3-1.3c.8-.8 1.6-.5 2.5-1.2.5-.3.6-.7 1-1.2 1-1.2 2-1.8 3.6-1.8.8 0 1.3 0 2 .3.3 0 .8.5.9.4.1-.2.6-.7 1.1-1 .7-.3 1-.4 1.8-.4.9 0 1.4.5 2.3.5.4 0 .4-.3.7-.5.8-.5 1.2-.8 2.2-.8 1 0 1.4.3 2.2.8.7.4.8 1 1.6 1.5l1.2.3c2 .6 3.6 2 3.6 4.2 0 1.2-.2 2-1.1 2.8-.7.6-1.4.5-2.3.8a13 13 0 0 0 9 2.8c3.5 0 7.6-1.3 7.6-4.7 0-1.6-.9-2.4-1.5-3.8a15 15 0 0 1-1.7-6.9c0-2.2.2-3.5 1.5-5.3 1.3-1.9 3-2.3 5.2-2.3"/>
<g fill="none" stroke="#703d29">
<path stroke-linejoin="round" stroke-width=".5" d="M217.9 191.2c.2.9.9 1.6 2 2a3 3 0 0 0 3-1.1c.8-1 .7-2.3.5-3.3a3.8 3.8 0 0 0-1.4-1.8z"/>
<path stroke-linecap="round" stroke-width=".5" d="M320.8 252.9c-1-2.3-3.4-1.3-3.6 0-.3 3 2.3 3.8 4.1 3.3.9-.2 1.6-.8 2-1.5.5-.8.6-2 .3-3a4 4 0 0 0-.7-1.3 4 4 0 0 0-1-1c-.7-.4-1.5-.5-2.7-.5-4.4 0-8.3 5.3-9.6 10.8a23.6 23.6 0 0 0-.2 9.6 18 18 0 0 0 4.7 9 20 20 0 0 0 7.9 4.7c1.1.3 2.2.3 3.1 0 2.7-.5 3.9-3 2.6-5.5-1.1-2-4.3-3.2-5.8-.6a2.6 2.6 0 0 0-.4 1.3c0 .7.3 1.5.8 1.8 1.2.8 3 .6 3-1.5"/>
<path stroke-width=".7" d="M307 283.2a9 9 0 0 1 5.3-3c2.4-.2 4.5.5 6.6 1.6a14.9 14.9 0 0 1 8.6 13.6c0 3-.8 6-1.5 7.6-.7 1.3-2.5 7.1-12.3 11.2a67.4 67.4 0 0 1-20.5 3c-8.4.4-16 .7-20.5 6.2"/>
<g stroke-width=".6">
<path d="M309.1 292.6c-.2-.9 0-1.7.7-2.7 1-1.3 2.9-1.7 4.7-.7.6.3 1.3.8 2 1.7l1 1.2.8 2c2 5.6-1.2 11.7-5.2 14.1-3.2 2-7 2.8-11.5 3.3l-5.3.3h-7.6a56.3 56.3 0 0 0-5.8 0l-6 .6-4.4.8-1.5.4-1 .3a31.9 31.9 0 0 0-7.7 3.3c-.7.4-1.5.9-2 1.4l-1.1 1c-1.5 1.4-3.1 3-3.5 5.3v1.3c0 1.4 1.1 3.4 4.3 4m4.4-136.1c.6 1.2 1 2 .6 3.1-.4 1.4-1.4 2.3-2.8 2.3-3.2 0-5-3.8-3.6-6.2 2.5-4.3 7.4-1.9 12 .2-.3-1-.7-1.4-.6-2.8 0-3.3 2.6-4.8 3.6-8 .6-1.8.8-3.4-.6-4.7-1.1-1.2-2.5-1.1-4-.5-3.1 1.2-6.8 4.6-13.3 4.7-6.5 0-10.3-3.5-13.4-4.7-1.5-.6-2.9-.7-4 .5-1.4 1.3-1.2 3-.6 4.8 1 3 3.5 4.6 3.6 8 0 1.3-.3 1.6-.6 2.7 4.6-2 9.7-4.7 12-.2 1.3 2.5-.4 6.2-3.6 6.2-1.4 0-2.4-1-2.8-2.3-.4-1.1 0-2.2.6-3.1"/>
<path stroke-linecap="round" d="M251.7 191.9c1.2 1 2 2.1 1.9 4-.1 2-.7 2.5-2.2 3.6m1.9-3c-.1 1.2-.6 2-1.8 2.5"/>
</g>
<path fill="#c7b37f" stroke="none" d="m221.4 186.6.5.4.6.7.4.8.2.6v1.5l-.2.7-.4.5-.4.5-.7.3-.9.2-.7.2-.8-.4-.8-.5-.4-.7-.3-.8v-.3z"/>
<path stroke-linecap="round" stroke-width=".5" d="M220.2 189.7c-.3-1.3-1.8-1.6-2.4-.8-1 1.2-.3 3.2 1.6 3.8a3 3 0 0 0 3-1.1c.8-1 .8-2.3.5-3.2-.2-.7-.7-1.2-1.4-1.7-2.2-1.7-5.7-1.3-6.8 1.5-1.5 3.6 1.7 6.3 4.7 8.3 3.8 2.5 8 3 11.3 3 7.3-.1 12.9-3.6 16.5-5.6.8-.5 1.7-.4 2.1.2.5.6.5 1.5-.2 2.2"/>
<path stroke-width=".5" d="m198.4 289-1.6.5-1.7 1.3-.7 1-.9 1.6-.4 1.2-.3 1.5-.2 1m15.2-8v1.4l-.3 1-.7 1.7-1.1 1.5-1.2 1-1 .4-1.2.3"/>
<path stroke-width=".6" d="M255.8 327.3c-.3 1.3-1.5 2.8-4.3 3.4h-.5"/>
<path stroke-width=".7" d="M323.4 285a14.6 14.6 0 0 1 4.5 10.8c-.1 2.8-.8 6-1.6 7.5-.7 1.3-2.5 7.2-12.3 11.2a67.7 67.7 0 0 1-20.5 3.1c-8.2.4-15.8.7-20.3 6"/>
<path stroke-width=".5" d="M310 290.3c.6-.9 2.8-1.9 4.6-1a5 5 0 0 1 2 1.7"/>
<path stroke-width=".7" d="m321.3 283 1.1.4a5.6 5.6 0 0 0 3.2 0c2.2-.6 3.7-2.7 2.5-5.5a4.5 4.5 0 0 0-1.4-1.7"/>
<path stroke-linecap="round" stroke-width=".5" d="M192.2 223.8c-1.5 1-2.6 1.2-3.8 2.5a22.5 22.5 0 0 0-2.1 5.5m36.9-41.4c0 1.4-1 2.3-2.4 2.6"/>
<path stroke-width=".5" d="M317.7 217.6c3.8 0 14.8 2.9 14.9 15.8 0 12.8-8 14.9-11.1 15.7"/>
<path stroke-width=".5" d="M318.7 217.6c6.5-.3 13.2 4.5 13.5 16.5.3 9.4-6.4 13.6-9.6 14.5m-7.6 14.1.2-1.2.4-2 .6-1.7.7-1.3.8-1m6.3-2.7-.1 1.2-.4.9-.5.8-.7.5-1 .3h-1.5m-11.4-42.3.3-1.3.6-1.3.7-1.2 1.4-1.7 1-1.2 1.7-1.7 1.5-1.5 1-1.1 1.2-1.5 1-1.7.7-1.3.4-1.8.1-2.1-.2-.7M310 296.7l1.3-.3 1-.5.5-.5.4-.7.2-1v-.6M187 283.3l.9.1h1.2l1.3-.5m4-29.3-.2 1.2-.2.4-.4.5-.5.4-.6.3-.8.1h-.5m8-12.5-.3 1.8-.4.7-.7 1-1 .7-.9.5-1.8.4m12.2-31.8-.3 1-.5.8-.6.9-.8.7-1 .5-.8.2h-.6m.3-5v.8"/>
<g stroke-width=".5">
<path stroke-linecap="round" d="M203.4 243.3a5.5 5.5 0 0 1-1.6 1M322.2 280l.4.2c1 .7 3.3-.2 2.7-2"/>
<path d="M318.2 255.7c.8 1 2.4 1.3 3.6 1 .9-.2 1.5-.8 2-1.6.4-.8.6-1.9.3-3a4 4 0 0 0-.7-1.3 5.4 5.4 0 0 0-1.1-1.1l-.3-.2m5.2 27.2a3.1 3.1 0 0 0 0-.6c0-.9-.4-1.7-1-2.3-.2-.2-.4-.5-.7-.6m.4.3c0-1.5-1.3-2.5-2.8-2.8m-3.3 2.3c-.4-.3-.8-.5-1-.9a12.6 12.6 0 0 1-3.5-8.5c0-3.3 1.3-6.7 2.8-8M273 323.3l1.5-1.3 1-.8 1.8-1.1 1.8-.9 1.2-.3 2.5-.5 2.9-.5M262 333.4a14.1 14.1 0 0 1-6.1 5 14.1 14.1 0 0 1-6.1-5"/>
<path stroke-linecap="round" d="M251.5 330.1a8 8 0 0 1-1.7 3.3"/>
<path d="m251.8 328.4-.4 1.8m-1.8 3.3-.8.8-1.4.7-1.5.5m-4.5-142.2c.2-.6.4-1.1.3-2.1 0-3.4-2.5-4.9-3.5-8-.6-1.8-.9-3.4.5-4.8 1.2-1.1 2.5-1 4-.5 3.2 1.2 6.9 4.7 13.4 4.8-6.5-.1-10.2-3.6-13.3-4.8-1.6-.6-3-.8-4.2.4-1.4 1.3-1 3-.4 5 1 3 3.3 4.5 3.4 7.9 0 1-.2 1.5-.4 2m14.9-10.7c6.4-.4 11.9-4.7 13.7-5 1.6-.3 2.4-.2 3.6.9-1.2-1.1-2.5-1-4-.5-3 1.2-6.8 4.7-13.3 4.8m63.7 90.3a12.4 12.4 0 0 1-5-9.9c0-3.3 1.3-6.7 2.9-8m-56 78a14.1 14.1 0 0 1-6 5 14 14 0 0 1-6.2-5"/>
<path stroke-linecap="round" d="m245.3 195 1.9-1c.8-.6 1.9-.5 2.3 0 .5.7.6 1.7-.1 2.3"/>
<path d="M235.8 199.4c4.4-.9 8-2.9 10.6-4.4m25.9 131.4.6.7.2.7c.2 1.2-.6 2-1.5 2.1a2.7 2.7 0 0 1-2.8-1.6m-33.3-129.1c4.4-1 8-2.9 10.7-4.4m78 85.5c-.7.3-1.2.3-2.2-.2l-1.5-.8c-2-1.1-4.5-3-6.8-7.2a15 15 0 0 1-1.3-3.6c-.2-.9-.4-1.8-.4-2.7a20.5 20.5 0 0 1 .5-5 16.2 16.2 0 0 1 3.2-7.2c1-1.3 1.7-2 3.5-2m-115-31.5a5.7 5.7 0 0 1 2.1 4.6c0 2.5-2 6.5-7.2 8-2 .5-3.8 0-5-.7"/>
<path d="M205 228.5c1 .6 1.3 1.4 1.3 2.6 0 .8-.5 2-1.5 3a9.9 9.9 0 0 1-7 3.2 8.2 8.2 0 0 1-4.8-1.4 7.3 7.3 0 0 1-3-4.3"/>
<path d="M205 233.8c1 1 1.3 2.2 1.3 3.7 0 2.2-.9 3.9-3 5.7a5 5 0 0 1-1.5 1m103.6-17.6v2.9m-.3-3.6v4m.3-12.6v5.2m-.3-6.3v7m-1.5 65.7c-1 2-1.8 3-3.3 4.5a15.7 15.7 0 0 1-4.7 3.3 19.7 19.7 0 0 1-5.2 1.7c-2.1.5-3.4.6-5.5.7-2 0-3.1 0-5.1-.2-2.1 0-3.3-.4-5.4-.6-1.7-.1-2.7-.3-4.5-.3a22.8 22.8 0 0 0-8.7 1.5c-2.2.9-4.6 2.4-5.1 3-.5-.6-3-2.1-5.1-3a22.8 22.8 0 0 0-8.8-1.5c-1.7 0-2.7.2-4.4.3-2.1.2-3.3.5-5.4.6a37.3 37.3 0 0 1-10.6-.5c-2.1-.5-3.3-.8-5.3-1.8a15.7 15.7 0 0 1-5-3.7m33.6 42.7 1.5-.2m24.2-1.9 1.4-.1 1.4-.6 1-.5 1.3-1.6.3-.6.2-1.3v-.6M314 218.8c.6-2.1-.2-4.3-2.2-4.3m-105.6 37.3a6.5 6.5 0 0 1-2.9 3.7m3-37.4a5.2 5.2 0 0 1-3 3.2c-1.4.7-3.2 0-4-.6"/>
<path stroke-linecap="round" d="M195 225.9c1.3.6 2.5-.3 2.3-1.9a2.3 2.3 0 0 0-2-1.8"/>
<path d="M200.1 293.3c.3.3.4.6.7.6.5.1 1 .3 1.5-.4.7-.9.3-2.2-.4-3.1a4 4 0 0 0-4.7-.7c-.5.3-1.3.7-2 1.6l-.9 1.3-.9 2c-1.6 4.6.3 9.5 3.4 12.5"/>
<path stroke-linecap="round" d="m272.2 326.3.5.6.2.7c.2 1.2-.6 2-1.6 2-1.3.2-2.2-.6-2.7-1.6"/>
<path d="M311.6 187.8a6 6 0 0 1 5 5.6c0 3.6-1.2 4.9-3.1 7.4-2 2.7-8.5 7.7-8.5 13.4 0 3.4 1 5.6 3.4 6.7 1.6.7 3.5 0 4.3-.8 2-1.9 1.3-5.2-1-5.6-2.5-.4-3 3.7-.5 3.4m14.3 55.3a3 3 0 0 0-2.9-2.5 3 3 0 0 0-3 3c0 .8.4 1.5.9 2"/>
<path d="M307.1 220.1a5.7 5.7 0 0 0-2.1 4.6c0 2.5 2 6.5 7.2 8 1.9.5 3.8.4 5-.3m-124.9-8.2a7.5 7.5 0 0 0-3.8 2.7 13.5 13.5 0 0 0-1.9 4.9c-.1.7-.3 3 .1 5.3a12.7 12.7 0 0 0 1.9 4.5l.8 1 .9.7m51.2 73.6c3.9 1.8 6.7 3 9.2 6.9a8.2 8.2 0 0 1-1.7 10 6.6 6.6 0 0 1-5.4 1.6c-1.5-.2-3-1.3-3.2-2m-37.2-90a6.6 6.6 0 0 1 3.1 6c0 3-1.5 4.8-3.2 5.9"/>
<path stroke-linecap="round" d="M201.2 253.1c3.3 4.1 5 6.5 5.1 11.3.1 4.6-1.4 7.7-4 11"/>
<path d="M263.8 199.5a3.3 3.3 0 0 0 1.3-1.8c.4-1.2.4-2.2-.3-3.1.8 1 .9 1.9.7 3.1-.2.8-.7 1.2-1.3 1.8m41.2 69v12.8a19.6 19.6 0 0 1-.3 3.4m0-17.5V283l-.4 2.1m.4-34.3v11.6m.3-10.7v9.4m0-21.5v7.1m-.3-7.9v8.8m.3-15.2v2.8m-.3-3.4v4m-1.4 52.2-.3.5a15 15 0 0 1-3.4 4.6 15.7 15.7 0 0 1-4.6 3.2 19.7 19.7 0 0 1-5.3 1.8c-2 .5-3.3.6-5.5.7-2 0-3 0-5-.2-2.2-.1-3.3-.4-5.4-.6-1.8-.1-2.8-.3-4.5-.3a22.9 22.9 0 0 0-8.8 1.5c-2.1.9-4.5 2.4-5 3a17 17 0 0 0-5.1-3 22.9 22.9 0 0 0-8.8-1.5c-1.7 0-2.7.2-4.5.3-2 .2-3.2.5-5.4.6a37.3 37.3 0 0 1-10.5-.5 19.8 19.8 0 0 1-10-5 17.6 17.6 0 0 1-1.9-2.3m-1.6-2.5a8 8 0 0 1-1.8 6.2c-.7.7-2.2 2-4 2-3 .1-4-2-4.1-2.5"/>
<path d="M204.5 287a8.2 8.2 0 0 1 1.5 2.1c.7 1.4.5 3.8-.1 5a3.7 3.7 0 0 1-.3.3m-16.1 14.4c1.8 2 4.5 4 8.7 5.7a67.4 67.4 0 0 0 20.5 3.1c8 .3 15.5.7 20 5.7m13.9-3.3a12 12 0 0 1 3.2 4.5m-5.9 9.2a7 7 0 0 1-.5.5 6.6 6.6 0 0 1-5.3 1.6 5 5 0 0 1-3.5-2m-4.3-2.4.3.3a6 6 0 0 0 4 2m21.6 0a14.1 14.1 0 0 1-6.1 4.9 14.1 14.1 0 0 1-6.1-5l-.2-.3m12.4.3.6.6a6.6 6.6 0 0 0 5.3 1.6 4.4 4.4 0 0 0 3.3-2l.4-.6"/>
<path d="m271.2 333.3-.6 1-.9.7-1.3.6H267"/>
<path d="M274.4 324.2a6.1 6.1 0 0 1 1.9 2.3c.2.6.4 1.3.4 2a4.7 4.7 0 0 1-1.1 3.2 6 6 0 0 1-4.4 2 4.4 4.4 0 0 1-.3 0m.1-.2a5.5 5.5 0 0 1-4.1-1.7m51-54.3a19 19 0 0 1-4-5.2 15 15 0 0 1-1.3-3.6c-.2-.9-.4-1.7-.4-2.6 0-1.6.1-3.2.5-5a16.7 16.7 0 0 1 3.3-7.3c.5-.6 1-1.4 1.6-1.8m-1-60.6c2 .2 3.8 2.3 3.8 4.5 0 3.1-1 4.4-3.5 7.4-2.1 2.7-8.5 7.3-8.3 11.7 0 .8.5 1.6 1 2.2M307 220c.4.5 1 .8 1.6 1.1a4 4 0 0 0 3.4-.2m-16.9-34.6a4.8 4.8 0 0 1 1.8 2.1c1.4 3.6-1.8 6.3-4.8 8.3a17 17 0 0 1-6.6 2.6"/>
<path d="M291.7 193.2c-.7 0-1.6-.2-2.5-1.2a2.7 2.7 0 0 1-.6-.7m-11.9 3.9a3.7 3.7 0 0 1-1-.8c-.7-.8-1.2-1.9-.7-3.5.5-1.5 3-5.8 3-8.7.3-4.5-1.5-7.2-4.2-8.2"/>
<path stroke-linecap="round" d="m277.9 181.2-.1 1.7-.5 1.7-.9 2.3-.7 1.6-.7 1.5-.3 1-.2.8.1.8m30.5 101c0 .3.4.6.4.6a6.2 6.2 0 0 0 4.4 2.5c3 0 3.7-2.1 3.8-2.6.4-2.3-.4-3-1.6-3.6 0 0-.7-.3-1.5-.2"/>
<path d="M189.6 283.5a5.5 5.5 0 0 1-3 0c-2.3-.7-4-2.9-3.1-5.5m10.7-25.5c.2.2.3.6.3.8.3 3-2.2 3.8-4 3.4a4.5 4.5 0 0 1-2.5-1.9 3.8 3.8 0 0 1-.5-1.8m17.7-19c.4.5.8 1 1 1.5m-1-6.8c.5.3.8.6 1 1"/>
<path stroke-linecap="round" d="M206.3 232.4a6.8 6.8 0 0 1-1.3 2 9.9 9.9 0 0 1-7 3.1 8.2 8.2 0 0 1-4.8-1.4 7.6 7.6 0 0 1-3.3-4.4"/>
<path d="M204.3 220.2a6.2 6.2 0 0 1 2 2.7"/>
<path stroke-linecap="round" d="M206.3 226.6a9.4 9.4 0 0 1-7 6.3 7 7 0 0 1-5.2-.9"/>
<path d="M192 226c.2 2.1 1.7 3.7 4.3 3.8 3.8 0 6-5.4 2.7-9.3"/>
<path stroke-linecap="round" d="M183.6 244.4c.5.7 1.2 1.3 1.8 1.9a13.4 13.4 0 0 0 4.8 2.6m4.2.4c3.4-.4 5.3-2.9 4.9-5.8-.3-2.3-2.4-4-3.8-4"/>
<path d="M199.9 214.5c1.4 0 2.3 1.3 2.2 2.4"/>
<path stroke-linecap="round" d="M199.5 194.5a9.2 9.2 0 0 0 4 4.6M319 224a3.7 3.7 0 0 1-3.3 5.7 4.2 4.2 0 0 1-3.5-2"/>
<path d="M305.4 199.3v12.6"/>
<path stroke-linecap="round" d="M195 225.9c1.2.8 2.6-.6 2-2.1-.3-1-1.8-2.1-3.8-.8-2.1 1.5-1.5 6.3 2.7 6.3 3.7.1 6-5.4 2.7-9.2-3.2-3.7-9-2.9-13 .2a17.1 17.1 0 0 0-5.6 9.3 17 17 0 0 0 0 7.4 16.7 16.7 0 0 0 2.4 6l1 1.3 1.6 1.6a12 12 0 0 0 8.3 3c3.8-.1 6-2.8 5.5-5.9-.4-3-3.4-4.5-5.4-3-1.3.9-1.8 3.8.6 4.5 1.3.4 2.5-1.3 1.6-2.3m103.6-57.5c2.2-1.2 3.8-1 5 .7a7.9 7.9 0 0 1 1.3 5.8c-.4 2.2-1 3-2.8 4.6"/>
<path stroke-linecap="round" d="M304.4 185.6c2.5-1.6 5.2-1 6.6 1.3a7.3 7.3 0 0 1 1.3 4.9 9 9 0 0 1-4.6 7.3"/>
<path d="M316 191.3c2 .2 3.7 2 3.7 4.2 0 3-.8 4.4-3.3 7.4-2.1 2.6-8.4 7.2-8.3 11.7 0 1.6 1.5 3.2 2.7 3.3"/>
<path stroke-linecap="round" d="M316.3 225.9c-1.2.8-2.6-.5-2-2 .4-1 1.8-2.2 3.7-.9 2.2 1.5 1.6 6.3-2.6 6.3-3.7.1-6.3-5.2-2.7-9.2 3.3-3.7 9.4-3 13.2 0 1.6 1.4 5 5 5.6 9.6.9 5.6.7 12.6-5 16.8a13.8 13.8 0 0 1-8.5 2.4c-3.8-.1-6-2.8-5.5-5.9.4-3 3.3-4.3 5.4-3 2.2 1.1 1.8 4.3-.6 4.5-1.4.2-2.5-1.3-1.6-2.3"/>
<path d="M314.3 224c.6-2.9 3-3.1 5-3.1 5.2 0 8.9 6.3 9 12.4 0 7.6-3.3 12.1-9 12.3-1.3.1-3.8-.6-3.9-2.3"/>
<path stroke-linecap="square" d="M317.5 222.7c5.6 1.2 7.6 6.2 7.6 11 0 3.9-.4 9.2-8 11"/>
<path d="M326.7 276.3a3.1 3.1 0 1 0-5 1.8"/>
<path stroke-linecap="round" d="M315.6 271.5a13.3 13.3 0 0 0 5 4.8m-1 8.4c-2.7-1.7-7.7-4-12.2-1.8a6.3 6.3 0 0 0-3.4 3.5 8 8 0 0 0 1.5 7.7 6 6 0 0 0 4 2.1c3 0 3.7-2 3.8-2.5.3-2.2-1-3.1-1.6-3.3-.6-.2-2.2-.2-2.6 1-.1.4-.1 1.1.2 1.6"/>
<path stroke-linecap="round" d="M272.4 326.7c.8 1.8-.1 2.6-1.3 2.7-1.7.2-2.6-1.1-2.7-2.3-.2-2 1.5-3.9 3.5-3.8a4.4 4.4 0 0 1 4 2.8c.2.6.3 1.2.3 1.9a4.7 4.7 0 0 1-1.1 3.3 6 6 0 0 1-4.3 2c-3.4.1-6-3-6-6.3 0-6.1 9.1-9.5 12.8-10.4a67 67 0 0 1 14.3-1.8c2.9-.2 5-.1 8.1-.4 2.8-.3 4.3-.5 7.2-1.1a22 22 0 0 0 10-5.2 13.7 13.7 0 0 0 3.7-17.7 11.5 11.5 0 0 0-8.2-5.3c-3-.5-5.6.8-7.2 3.8a6.2 6.2 0 0 0 .1 5c.5.9 2 2.3 3.8 2.3 3 0 3.8-2 3.9-2.5.3-2.2-1-3.1-1.6-3.3-.6-.2-2.2-.2-2.6 1-.1.4-.1 1.1.2 1.6"/>
<path stroke-linecap="round" d="M269.8 317c-4 1.7-6.8 3-9.2 6.7a7.9 7.9 0 0 0-1 4c0 2.1 1 4.5 2.7 6a6.6 6.6 0 0 0 5.4 1.7c1.5-.2 3-1.3 3.2-2"/>
<path d="M308 243.3c-1.7.6-3 3.4-3 6 0 3 1.4 5 3.2 6"/>
<path stroke-linecap="round" d="M310 253.1c-3.2 4.1-5 6.5-5 11.3-.1 4.6 1.3 7.7 4 11"/>
<path d="m292.7 185.6.3-.4c1.3-2 3.7-2.5 5.5-1.2 2 1.6 2.6 4.3 2 7.2a7 7 0 0 1-3.2 4.4"/>
<path stroke-linecap="round" d="M212 184.7c-2-1-3.7-.8-5 .7a7.5 7.5 0 0 0-1.2 5.8c.4 2.1 1 3 2.8 4.6"/>
<path d="M206.9 185.6c-2.5-1.6-5.2-1-6.6 1.3a7.3 7.3 0 0 0-1.3 4.9 9 9 0 0 0 4.6 7.3"/>
<path d="M199.7 187.8a5.5 5.5 0 0 0-4.8 5.3c0 3.6.9 5 2.9 7.7s8.5 7.7 8.5 13.4c0 3.4-1 5.6-3.4 6.7-1.6.7-3.5 0-4.3-.8-2-1.9-1.2-5.2.9-5.6 2.6-.4 3.1 3.7.6 3.4"/>
<path d="M195.2 191.3c-2 .2-4 2-4 4 0 3.1 1.2 4.5 3.7 7.6 2 2.6 8 7.2 7.9 11.6 0 1.6-1.2 3.7-2.3 3.4"/>
<path stroke-linecap="round" d="M190.5 252.9c1-2.3 3.4-1.3 3.5 0 .4 3-2.2 3.8-4 3.3-1-.2-1.6-.8-2-1.5a3.9 3.9 0 0 1 .4-4.3 4 4 0 0 1 1-1c.7-.4 1.5-.5 2.7-.5 4.4 0 8.3 5.3 9.6 10.8a23.6 23.6 0 0 1 .2 9.6 18 18 0 0 1-4.7 9 20.1 20.1 0 0 1-7.9 4.7 5.6 5.6 0 0 1-3.2 0c-2.2-.6-3.7-2.8-2.5-5.5 1-2.1 4.3-3.2 5.8-.6.1.3.3.7.3 1.3 0 .7-.3 1.5-.8 1.8-1.1.8-3 .6-2.9-1.5"/>
<path d="M187 280.3c.8.3 1.3.3 2.3-.2l1.5-.8c2-1.1 4.5-3 6.7-7.2a15.1 15.1 0 0 0 1.4-3.6c.2-.9.4-1.8.4-2.7a20.5 20.5 0 0 0-.5-5 16.2 16.2 0 0 0-3.2-7.2c-1-1.3-1.7-2-3.5-2m-7.5 24.7a3.1 3.1 0 1 1 5 1.8"/>
<path d="M185.8 273.2a3 3 0 0 1 2.9-2.5 3 3 0 0 1 3 3 3 3 0 0 1-1 2"/>
<path d="M191.5 273a12.4 12.4 0 0 0 5-9.9c0-3.3-1.3-6.7-2.9-8"/>
<path stroke-linecap="round" d="M195.7 271.5a13.2 13.2 0 0 1-5 4.8"/>
<path d="M203.7 283c-.8-1.8-2.2-2.6-4.6-2.9a11 11 0 0 0-6.6 1.6 14.8 14.8 0 0 0-8 9 13.7 13.7 0 0 0-.6 4.6c0 2.9.8 6 1.6 7.5.6 1.4 2.4 7.2 12.2 11.2a67.7 67.7 0 0 0 20.6 3.2c8.3.3 16 .6 20.4 6.1"/>
<path stroke-linecap="round" d="M191.7 284.7c2.7-1.7 7.6-4 12.1-1.8a7 7 0 0 1 3.5 3.5 8 8 0 0 1-1.5 7.7c-.7.7-2.1 2-4 2.1-3 0-3.7-2-3.8-2.5-.3-2.2 1-3.1 1.6-3.3.5-.2 2.2-.2 2.6 1 .1.4.1 1.1-.2 1.6"/>
<path d="M202.2 292.6a2.7 2.7 0 0 0-.7-2.7 4.1 4.1 0 0 0-4.7-.7 5 5 0 0 0-2 1.7l-1 1.2-.8 2c-2 5.6 1.2 11.6 5.2 14.1a24 24 0 0 0 11.5 3.3l5.3.3h13.4l6 .6 4.4.8 1.5.4 1 .3a31.9 31.9 0 0 1 7.7 3.3c.7.4 1.5.8 2 1.4l1.1 1c1.5 1.4 3.1 3 3.5 5.3v1.3c0 1.4-1.1 3.4-4.3 4"/>
<path d="M239 326.7c-1 1.8 0 2.6 1.2 2.7 1.7.2 2.6-1.1 2.7-2.3.2-2-1.5-3.9-3.5-3.8a4.4 4.4 0 0 0-4 2.8 5.5 5.5 0 0 0-.3 1.9 4.7 4.7 0 0 0 1 3.3 6 6 0 0 0 4.4 2c3.4.1 6-3 6-6.3 0-6.1-9.1-9.5-12.8-10.4a67 67 0 0 0-14.3-1.8c-2.9-.2-5-.1-8.1-.4-2.8-.3-4.3-.5-7.2-1.1a22 22 0 0 1-10-5.2 13.7 13.7 0 0 1-3.7-17.7 11.5 11.5 0 0 1 8.2-5.3c3-.5 5.6.8 7.1 3.8.8 1.4.6 3.8 0 5a4.8 4.8 0 0 1-3.9 2.3c-3 0-3.7-2-3.8-2.5-.3-2.2 1-3.1 1.6-3.3.5-.2 2.2-.2 2.6 1 .1.4.1 1.1-.2 1.6"/>
<path stroke-linecap="round" d="M218.6 185.6a97 97 0 0 0-.3-.4c-1.3-2-3.7-2.5-5.5-1.2-2 1.6-2.6 4.3-2 7.2a7 7 0 0 0 3.2 4.4"/>
<path d="M293.4 191.7c-3.2 3.5-6.5 4.6-11.3 4.8-1.5 0-4.4-.5-6-1.7-1-.8-2.3-2-1.5-4.4.5-1.5 3-5.7 3-8.7.2-4.5-1.5-7-4.2-7.9-5-1.8-10.4 3.2-13.6 4.3a11 11 0 0 1-4.1.6c-1.6 0-2.5 0-4.2-.6-3.2-1.1-8.6-6-13.6-4.3-2.7 1-4.4 3.4-4.2 8 0 2.9 2.5 7.1 3 8.6.8 2.3-.4 3.6-1.5 4.4a11.6 11.6 0 0 1-6 1.7c-4.9-.2-8-1.3-11.3-4.8"/>
<path stroke-linecap="round" d="M237.9 315.5c.6.3.1-.1 4.2 1.7 3.8 1.7 6.6 3.2 9 7a8.5 8.5 0 0 1 .7 5.9"/>
<path d="M238.1 332.8a6.4 6.4 0 0 0 2.6.7c3.4.1 6-3 6-6.3 0-2.2-1.2-4-2.9-5.6"/>
<path stroke-linecap="round" d="M238.9 326.7c-.9 1.9.3 2.8 1.5 3 1.7.2 2.6-1.2 2.8-2.4a3.6 3.6 0 0 0-1.7-3.3"/>
<path d="M312 187.8c2.6 0 4.9 2.9 4.9 5.8 0 3.4-1.8 5.5-3.1 7-1 1.3-2.2 2.4-3.6 3.8"/>
<path stroke-linecap="round" d="M309 185.1a5 5 0 0 1 2.3 2 7.3 7.3 0 0 1 1.2 4.9c-.1 3.4-2.5 5.7-4.7 7.1m-3.8-14 .5.6a7 7 0 0 1 1.2 5.7 6.5 6.5 0 0 1-3 4.4m-4-11.6c2 1.6 2.7 4.4 2 7.2-.5 2-1.8 3.3-3.3 4.2m8.9 32.9c.2.7.6 1 1.2 1.5a10.8 10.8 0 0 0 4.9 2.9 6.2 6.2 0 0 0 5-.7M187 275.4c1 0 2 .6 2.7 1.8a2.6 2.6 0 0 1 .3 1.2c0 .7-.3 1.4-.8 1.8-1.2.7-3.2.4-3.1-1.7"/>
<path d="M193.2 249c4 .8 7.7 5.5 9 10.7a23.6 23.6 0 0 1 .2 9.6 18 18 0 0 1-4.7 9c-.5.6-1 1-1.7 1.5l-.9.6m-6.3-9.7c1.6 0 3 1.5 3 3.2a3 3 0 0 1-.8 2"/>
<path d="M187.7 272.6c1.7 0 3.3 1.6 3.3 3.3a3.1 3.1 0 0 1-1.2 2.5"/>
<path stroke-linecap="round" d="M203.2 255.6c1.5 2 2.6 3.9 3 6.2m0 6.8a13.8 13.8 0 0 1-1.2 3.2 14.2 14.2 0 0 1-2.8 3.7"/>
<path d="M203.4 243.5a7.5 7.5 0 0 1 2.8 3.8"/>
<path stroke-linecap="round" d="M206.3 239.6a8.7 8.7 0 0 1-2.7 3.7m-7.3-13.8 1.7-.4 1-.8.7-1 .5-1.4.3-1.2"/>
<path d="m192.8 223.4-2 .7a7 7 0 0 0-2.8 2.4 13.5 13.5 0 0 0-1.8 4.8c-.2.7-.4 3 0 5.3a12.6 12.6 0 0 0 2 4.6l.8 1c1 1 2 1.7 3.5 1.4"/>
<path stroke-linecap="round" d="M202.4 215.8c-.2 1-.8 2.3-2.4 2.2"/>
<path d="M196.5 222.8c-1.5-1.5-4.8-1.9-8 .2-.5.2-.9.6-1.3 1a7 7 0 0 0-1.1 1.2l-1.2 2a10 10 0 0 0-.7 2c-.6 2.3-.6 4.5-.6 5l.3 2.2a15 15 0 0 0 1.8 5 8.2 8.2 0 0 0 6.2 4.3c1.4.1 3.9-.6 4-2.4"/>
<path stroke-linecap="round" d="M291 189.7c.2-1.4 1.8-1.6 2.4-.8 1 1.2.4 3.2-1.5 3.8a3 3 0 0 1-3-1.1c-.9-1-.8-2.2-.5-3.2.2-.7.7-1.2 1.4-1.7 2.1-1.7 5.7-1.3 6.8 1.5 1.5 3.6-1.7 6.3-4.7 8.3-3.8 2.5-8 3-11.3 3-7.3-.1-12.9-3.6-16.5-5.6-.8-.5-1.7-.4-2.1.2-.5.6-.5 1.5.2 2.1"/>
<path stroke-linecap="round" d="M292.5 188.4c.8 0 1 .4 1.2.7 1 1.2.3 3.2-1.6 3.8m14.3 41.2c-2.8 3-.3 8.3 1.8 9.5.7.5 1 .2 1.6.6"/>
<path d="M306.5 228.3c-1 .7-1.2 1.4-1.3 2.6a4.2 4.2 0 0 0 1.2 3.2 11.2 11.2 0 0 0 7.3 3 8.2 8.2 0 0 0 4.9-1.4 7.3 7.3 0 0 0 3-4.3M305 281v2c-.4 2.2-.7 3.5-1.7 5.5a15 15 0 0 1-3.4 4.5 15.7 15.7 0 0 1-4.7 3.3 19.7 19.7 0 0 1-5.2 1.8 33 33 0 0 1-5.5.6h-5l-5.5-.7c-1.7-.2-2.7-.3-4.4-.3a22.8 22.8 0 0 0-8.8 1.5 17 17 0 0 0-5 3c-.6-.6-3-2.2-5.2-3a17.6 17.6 0 0 0-4.1-1.2c-1.8-.3-2.8-.3-4.6-.3-1.8 0-2.7.1-4.5.3-2 .2-3.3.5-5.4.6-2 .1-3 .2-5 .1-2.2 0-3.4-.2-5.6-.6a19.7 19.7 0 0 1-5.2-1.8c-2-1-3-1.7-4.7-3.3a15 15 0 0 1-3.3-4.5 15.1 15.1 0 0 1-1.7-5.5v-83.4H305z"/>
</g>
<g fill="#c7b37f" stroke="#c7b37f">
<path stroke-width=".3" d="M198.3 292.5a2 2 0 1 1 4 0 2 2 0 0 1-4 0zm-12.2-14.1c0-1 .6-1.8 1.4-1.8.8 0 1.4.8 1.4 1.8s-.6 1.8-1.4 1.8c-.8 0-1.4-.8-1.4-1.8z"/>
<path stroke="none" d="M193 242.9c0-.8.7-1.5 1.4-1.5.8 0 1.4.7 1.4 1.5s-.6 1.4-1.4 1.4c-.7 0-1.3-.6-1.3-1.4zm24.6-52.5c-.1-.9.4-1.6 1-1.6.7-.1 1.4.5 1.5 1.3 0 .8-.4 1.5-1.1 1.6-.7 0-1.4-.5-1.4-1.3"/>
</g>
<g stroke="#c7b37f" stroke-linecap="round" stroke-width=".5">
<path d="M191.4 251.2a1.8 1.8 0 0 0-.6.4l-.5.7-.2 1m3.8 21.3.7-.8.6-.8.4-.7.5-1m-1 11-1.2.6-.9.5a14 14 0 0 0-1 .7l-1 .8m12-30.3-.6-.7-.7-.7-.8-.5"/>
<path stroke-linecap="butt" d="m203.3 244-1 .4a4 4 0 0 1-1.1.2"/>
<path d="M190 230.8c0 .4.1.7.3 1.1l.7 1.4a6.8 6.8 0 0 0 2.2 2.1l1.2.7m-.9-4.7 1 .5a6 6 0 0 0 2.4.5l1.5-.1m5.7-32.5-1.6-1a9.6 9.6 0 0 1-2.4-2.3l-.7-1m6-3.6.5 1.3 1.2 1.7c.7.8 1.3 1 2.2 1.6m1.1-4.7.5 1.2.7 1 1 1c.6.5 1 .6 1.6 1"/>
</g>
<path fill="#703d29" stroke-width=".1" d="M266.6 185.3c0-1.4-1.3-1.5-1.9-1.5-1.4 0-1.8 1-3.7 2a9.5 9.5 0 0 1-5.3 1.4 9 9 0 0 1-5.4-1.5c-1.9-1-2.2-1.9-3.6-1.9-.8 0-1.9.7-1.8 2v.7s.2 0 .2.2c0-.7.1-1 .4-1.4a1.8 1.8 0 0 1 1.3-.7c1.5 0 2 1 3.9 2a9.5 9.5 0 0 0 5.3 1.5c2 0 3.1-.3 5.4-1.5 1.9-1 2.4-2 3.9-2 .5 0 .8.3 1 .8v.7h.2c0-.1.2-.2.1-.8z"/>
</g>
<g fill="#703d29">
<path d="M211.5 299.2c.4-.4.8-.3.8-.5l-.2-.2-.7-.2-.7-.3s-.3-.2-.4 0c0 .3.9.3.5 1.1 0 .2-.1.5-.6 1l-2.1 2.3-.2.2V299l.1-1.4c.2-.4.6 0 .7-.3 0-.2 0-.2-.2-.3-.2 0-.4 0-1-.3l-.7-.3c-.1 0-.4-.2-.5 0l.1.2c.3.2.4.3.4.7v6c0 .4.1.6.2.6l.3-.2 4.2-4.6z"/>
<path d="M214 300.1c.3-.8.8-.3.9-.6l-.3-.2-1-.3-1-.4h-.3c0 .4 1 .4.7 1.3l-1.4 4.4c-.3.8-.8.4-.9.7v.1l1 .3 1.2.4h.3c.1-.3-1-.2-.6-1.3zm3 1c.1-.6.4-.6.7-.5.8.3 1 1.1.8 2-.2.5-.4 1-1.6.7-.3-.1-.6-.2-.5-.4zm-2.3 3.9c-.4 1.1-1 .6-1 1l.2.1 1.3.4.7.2h.3c0-.4-.9-.2-.6-1.2l.5-1.6c0-.3 0-.4.5-.3.4.2.5.3.6.7l.3 1.7c0 .6.2 1.3.8 1.4.3.2 1 .1 1-.2v-.1h-.3l-.3-.3-.5-3 .6-.2c.3-.2.6-.4.8-1 .1-.4.3-1.7-1.5-2.3l-1.6-.4-1-.3h-.2c-.1.4.9.3.6 1.3l-1.2 4zm6.7 2c-.2 1-1 .4-1.2.7 0 .2.1.3.3.3l1.2.2 1.1.4.5-.1c0-.3-1.1-.3-.8-1.4l1-4.2c0-.5.2-.5.5-.4l.7.2c1 .2.5 1.1.8 1.2.3 0 .2-.3.3-.5v-1.1l-2.6-.6-2.5-.6c-.2 0-.2 0-.2.2l-.5 1.2v.3c.5.1.5-1.2 1.4-1l.7.2c.4.1.5.2.4.6l-1 4.3zm10.2-2.7c.3-.5.7-.4.7-.6l-.3-.2h-.7l-.7-.2c-.1 0-.4-.1-.4 0 0 .4.9.2.7 1 0 .2-.1.6-.5 1.1l-1.7 2.7-.1.2v-.3l-.6-3.2a4.3 4.3 0 0 1-.1-1.3c0-.4.5-.2.6-.5l-.3-.2-1-.1-.8-.2c-.1 0-.4-.1-.4 0l.1.2c.4.2.5.3.5.7l1.1 5.9c.1.4.2.5.3.5l.2-.2zm.5 5.4.1.4 1.4.6c1.1.2 2-.5 2.3-1.7.2-1.2-.3-1.7-1.2-2.3-1-.8-1.5-1-1.3-1.6 0-.6.5-1 1-.8 1.5.2 1.4 2 1.6 2 .1 0 .2 0 .2-.3l.1-1.3v-.3h-.5c-.3 0-.5-.4-1.2-.5-1-.2-1.8.5-2 1.6-.2 1 .2 1.4 1 1.9 1.2.9 1.7 1 1.6 1.9-.2.7-.8 1.1-1.4 1-1-.2-1.3-1.1-1.5-2l-.1-.3c-.2 0-.2.3-.2.4v1.3zm12.6-3.5c.3-.6.6-.5.7-.7 0-.2-.2-.2-.3-.2h-.8l-.7-.1-.4.1c0 .4 1 0 .8 1 0 .1 0 .5-.3 1l-1.4 2.9-.2.2v-.2l-1-3.2a4.3 4.3 0 0 1-.2-1.3c0-.4.6-.3.6-.5s0-.2-.3-.2h-1l-.8-.1c-.1 0-.4-.1-.4 0l.1.2c.4.2.5.3.6.6l1.7 5.8c.1.4.2.5.3.5l.2-.3z"/>
<path d="M246 310.8c0 1-.8.8-.8 1.2h1l1 .1.4-.1c0-.5-1.1.2-1.1-1.7v-3.4s.2 0 .3.2l4 5h.3v-.2l.1-5.3c0-1 .8-.8.8-1.1l-.2-.1h-2v.1c0 .3 1 .2 1 1v3.2l-.1.4-.3-.3-3.4-4.2c-.1-.2 0-.3-.3-.3h-1.4l-.1.2c0 .4 1-.2.9 1.7v3.6zm8.4-4.3c0-1 .6-.6.6-.9l-.3-.1h-2.3c0 .4.9.1.9 1v4.6c0 1-.6.7-.6 1v.1h2.3l.3-.1c0-.3-1 .1-1-1zm3.6 4.4c0 1.2-1 .7-1 1 0 .3.2.3.3.3h2.4c.3 0 .5 0 .5-.2 0-.3-1.1 0-1.1-1.2v-4.3c0-.5 0-.5.3-.5h.8c1 0 .7 1 1 1 .3 0 .2-.4.2-.5l-.1-.9s0-.2-.2-.2H256c-.2 0-.2.2-.2.3l-.1 1.2.1.4c.4 0 .1-1.3 1.1-1.3h.7c.4 0 .5 0 .5.5v4.4zm5-1.8h-.3v-.4l.6-1.8h.1l1 1.7v.3l-.2.1zm1.5.4c.2 0 .3 0 .6.8l.2.6c0 .6-.6.6-.6.8 0 .2.2.1.3.1h1l1-.1c.3 0 .4 0 .4-.2 0-.3-.5.1-.8-.6l-2.8-5.6-.2-.3-.2.4-1.9 5.9c-.2.5-.6.5-.6.7 0 .2.2.1.3.1h1.5c.2-.1.5 0 .5-.3 0-.2-1 0-1-.7l.1-.7c.2-.7.3-.7.5-.7zm6.6-4c0-.6 0-.6 1-.7 1.6-.3 1.1 1 1.5.9.2 0 .1-.4.1-.5l-.1-1h-.2l-2 .2-2.2.3c-.2 0-.2 0-.2.2 0 .3 1 0 1 .8l.6 4.4c.2 1.2-.5.7-.5 1.2h.2l1.1-.1 1-.1c.2 0 .4 0 .4-.2 0-.3-1 0-1.1-1l-.2-1.4c0-.5-.1-.6.3-.7h.6c.9-.2.8.9 1 .8.3 0 .2-.3.1-.5l-.2-1.6c0-.3-.2-.3-.2-.3-.2 0-.1 1-.8 1l-.6.1c-.4 0-.4 0-.4-.4zm3.2 2.2c.3 2 1.7 3 3.4 2.7 2.7-.5 2.8-3 2.5-4.2-.3-2-1.8-3-3.5-2.7-2 .4-2.8 2.2-2.4 4.2m.9-.7c-.3-1.4 0-2.7 1.4-3 1-.3 2.3.6 2.7 2.7.3 1.6 0 3-1.4 3.2-1.5.3-2.4-1.5-2.7-2.9m6.7-3.3c-.2-.6.1-.7.4-.7.8-.2 1.5.3 1.7 1.3.1.5.2 1-1 1.3-.3.1-.6.2-.7 0l-.4-2zm0 4.5c.3 1.2-.5 1-.4 1.3 0 .2.2.2.3.1l1.3-.3.7-.1c.2 0 .2-.2.2-.2 0-.4-.8.2-1-.8l-.4-1.6c-.1-.3-.2-.4.3-.5.4 0 .6 0 .9.3l1 1.3c.4.5.8 1 1.5.9.3-.1.8-.5.7-.7 0-.1 0-.2-.1-.1h-.6l-2-2.3.5-.5c.1-.3.3-.7.2-1.3-.1-.4-.6-1.7-2.5-1.2l-1.6.4-1 .2-.2.2c.1.4 1-.2 1.2.8zm6.9-1.5c.3 1-.8.9-.7 1.2 0 .2.2.2.3.2l1.2-.4 1.2-.3c.2 0 .4 0 .3-.2 0-.3-1 .2-1.3-.9l-1.1-4.2c-.1-.4 0-.5.3-.6l.7-.2c1-.3 1 .8 1.3.8.2 0 0-.4 0-.5l-.4-.9s0-.2-.2-.2l-2.5.7-2.5.7c-.2 0-.1.1-.1.2l.2 1.3c0 .1 0 .3.2.3.3-.1-.2-1.3.7-1.5l.7-.2c.3 0 .4 0 .6.4l1 4.3zm4.4-5.9c-.3-.9.4-.7.3-1h-.3c-.4 0-.7.2-1 .3l-1 .2s-.3 0-.2.2c0 .3 1-.2 1.2.6l1.2 4.4c.2 1-.4.8-.3 1.2l1-.2 1.3-.3c.2-.1.2-.2.2-.3 0-.3-.9.4-1.2-.7zm1.8 2.1c.6 1.9 2.1 2.7 3.8 2.2 2.6-.9 2.3-3.3 1.9-4.5-.6-2-2.3-2.7-3.8-2.2-2 .7-2.6 2.6-1.9 4.5m.8-.8c-.4-1.3-.4-2.7 1-3.2 1-.4 2.3.3 3 2.4.5 1.5.5 2.8-1 3.3-1.4.5-2.5-1.2-3-2.5m6.1-4.3c-.2-.6 0-.7.4-.8.8-.3 1.5.2 1.8 1 .2.6.4 1-.8 1.6-.3 0-.6.2-.7 0zm.7 4.5c.4 1-.4 1-.2 1.3 0 .2.2.1.3 0 .4 0 .8-.3 1.2-.4l.7-.3c.2 0 .2-.1.2-.2-.1-.3-.8.3-1.2-.6l-.6-1.5c0-.4-.2-.4.3-.6.4-.1.5-.1.9.2l1.2 1.2c.5.4 1 .8 1.6.6.3-.1.7-.5.6-.8 0 0 0-.1-.1 0h-.6l-2.2-2 .3-.5c.1-.3.2-.7 0-1.3-.2-.4-.8-1.6-2.6-.9l-1.6.7-1 .3v.2c.1.3.8-.4 1.2.6z"/>
</g>
<g fill="#fedf00" transform="translate(0 76.8)scale(.512)">
<path fill="#d52b1e" d="M412.7 249.3h82.1v82h-82.1z"/>
<path id="ad-a" fill="#fff" d="M451.2 313.8s0 3-.8 5.3c-1 2.7-1 2.7-1.9 4a13.2 13.2 0 0 1-3.8 4c-2 1.2-4 1.8-6 1.6-5.4-.4-8-6.4-9.2-11.2-1.3-5.1-5-8-7.5-6-1.4 1-1.4 2.8-.3 4.6a9 9 0 0 0 4.1 2.8l-2.9 3.7s-6.3-.8-7.5-7.4c-.5-2.5.7-7.1 4.9-8.5 5.3-1.8 8.6 2 10.3 5.2 2.2 4.4 3.2 12.4 9.4 11.2 3.4-.7 5-5.6 5-7.9l2.4-2.6 3.7 1.2z"/>
<use xlink:href="#ad-a" width="100%" height="100%" transform="matrix(-1 0 0 1 907.5 0)"/>
<path d="m461.1 279 10.8-11.7s1.6-1.3 1.6-3.4l-2.2.4-.5-1.2-.1-1.1 3-.7V260l.3-1.3-3.2.2.3-1.4.5-1 1.9-.4h1.9c1.8-3.4 9.2-6.4 14.4-1 3.8 4 3 11.2-2 13.2a6.3 6.3 0 0 1-6.8-1.1l2-4c2.7 1.7 5-.3 4.8-2.4-.2-2.7-2-4.3-4.3-4.5-2.3-.2-4 1-5 3-.6 1.3-.3 2.2-.5 3.6-.2 1.5 0 2.3-.5 3.8a8.8 8.8 0 0 1-2.4 3.6l-11 12-43 46.4-3.2-3z"/>
<path fill="#fff" d="M429.5 283s2.7 13.4 11.9 33.5c4.7-1.7 7.4-2.8 12.4-2.8 4.9 0 7.6 1 12.3 2.8A171 171 0 0 0 478 283l-24.2-31z"/>
<path d="m456.1 262.4 16.8 21.7s-2.2 10.5-9 26.3c-2.7-.6-5-1.1-7.8-1.3zm-4.7 0-16.8 21.7s2.2 10.5 9 26.3c2.7-.6 5-1.1 7.8-1.3z"/>
</g>
<g fill="#d52b1e">
<path fill="#fedf00" d="M257.8 204.4H300v42h-42z"/>
<path d="M263.7 204.4h6.3v42h-6.3zm12 0h6.3v42h-6.2zm12 0h6.3v42h-6.2z"/>
</g>
<g fill="#d52b1e" stroke="#d52b1e" stroke-width=".5">
<path fill="#fedf00" stroke="none" d="M211.4 282.8c.2.8.4 2 1.1 3.4.8 1.2.5 1.2 2.2 3a13.8 13.8 0 0 0 6.7 3.6c3.4 1 5.7 1 8.5.9 2.2-.1 3.9-.4 5.3-.6 2-.2 3.4-.4 5.7-.5a32.4 32.4 0 0 1 3.1 0c1.2 0 2.4.3 3.7.5 2.8.6 5.6 1.7 5.6 1.7v-43.9h-42v30z"/>
<path stroke-width=".3" d="m216.3 290.5 2 1.2 2.7 1v-41.8h-4.7zm23.4 2v-41.6H235v42.2l4.7-.5zm9.3-41.6h-4.6v41.7a31 31 0 0 1 4.6.8zm-18.6 0v42.7h-4.7v-42.7z"/>
</g>
<g transform="translate(0 76.8)scale(.512)">
<path fill="#fedf00" d="M585.5 402.4a20.8 20.8 0 0 1-2.2 6.6c-1.5 2.3-1 2.3-4.3 6a26.3 26.3 0 0 1-13 7 51.8 51.8 0 0 1-16.6 1.6c-4.3-.2-7.5-.7-10.3-1-3.8-.6-6.7-.9-11-1a62.9 62.9 0 0 0-6.2 0 83.3 83.3 0 0 0-18.3 4.2V340h82.2v58.5z"/>
<g id="ad-b">
<path fill="#d52b1e" d="m524.6 347-.6.2-.8.8c-.4.4-.7.5-1.2.8l-.6.5c-.3.3 0 .6-.3 1-.1.4-.3.6-.6 1-.4.4-.7.5-1 1l-1.2 1-.3.1h-.6c-.4.2-.5.6-.8.8l.3.6.8 1.4c.2.3.2.7.5.8.5.2.9.2 1.3.1.8.2 1.3.2 2 .5l1.5.8c.5.3.8.4 1.3.5h1.8v.3l2 1a1.7 1.7 0 0 0-.1.4c-.1.3-.2.7-.1.8.6 1.9 1.2 3 1.5 3.2.6.2.8.9 1.1 1.5l-.3.3c-.6.6-1.2 1-1.7 1.8-.7 1.2-1.2 1.2-.3 2.8l1.5 2.4c.4.7.6 1.2.8 2 .2.7.3 1.2.3 2l1 .3.7-.6.6-1.2v-1c-.2-.1-.3-.4-.2-.7 0-.4.5-.3.7-.6.3-.5-.4-.8-.7-1.1-.6-.7-1.4-.9-1.6-1.9 0-.2 0-.4.4-.7l2-1.8c.2.1.6.2 1 .1l1.3.4c.6.2.9 0 1.2 0h.4l.1.6c.1 1-.1 3 .2 3.5l.3.6.2.6v2l-.2 1.7c0 .4-.2.7-.5 1-.2.4-.6.4-1 .7v1l1.1.5 1.3.3.7-.3.1-.6.5-.5c.4-.2.8 0 .9-.1.2-.3 0-.4 0-.8 0-.6-.2-1-.3-1.6a11.8 11.8 0 0 1-.1-2.8c0-.6 0-1 .2-1.5.1-1 .4-1.4.6-2.2.3-1 .3-1.6.4-2.5a24.4 24.4 0 0 0 10.1-.6c.8.7 1.7 1.2 2.7 1.6v1c0 .3 0 .4.2.7l.3.3c.3 0 .5 0 .7-.2.2-.2.2-.4.2-.7v-.7h1.8v1.1c.1.3.3.4.5.4a.7.7 0 0 0 .6 0c.3-.2.2-.6.3-1v-.7l1-.4a5.1 5.1 0 0 1 0 .9l-.3.9c-.2.6-.5.8-.8 1.4-.4.6-.5 1-1 1.5l-.6.7-.6.9-.9 1c-.7.6-1.2.2-2 .9l-.3 1 1.4.6 1.3.2.4-.2c0-.3 0-.6.3-.8.2-.3.4-.3.7-.4.4 0 .8 0 1-.2.4-.3.4-1 .7-1.5a12.7 12.7 0 0 1 3-3.9l1.7-1.4c.2-.4.5-.5.5-1l-.2-.6-.2-1c1.5.7 1 .7 1.2 1.4.3.6 0 1 .1 1.7.1.8.5 1.1.5 1.9.1.9-.1 1.4-.3 2.3-.1.8-.1 1.3-.5 2a3.8 3.8 0 0 1-1.1 1.5l-.6.5-.1 1 1.1.4 1.6.4.4-.3c.2-.7 0-1.7.4-1.7.4-.1.7 0 .8-.3v-.7l.7-4.5.4-1.9.4-1.7c.7-2-.2-2.3-1-3.6-.5-.7-.7-1-.7-1.5V362a42.7 42.7 0 0 1 0-2.8l.4-.2c1.2-.7 1.7-.9 2.4-2.5a3.4 3.4 0 0 0 .3-1.5v-1l-.4-1a3.2 3.2 0 0 0-.6-.8c-.7-1-1.7-1.1-2.7-1.5-1.5-.5-2.5-.4-4-.5-1.8-.2-2.7-.2-4.4 0-2 0-3.1.4-5.1.7l-4.9.4c-2.3 0-4.4-.5-5.8-.4-2.4.2-2.5.8-6.2 1.1a67 67 0 0 1-3.8.2l-2.2-.7c.9-.3 1.1-.5 1.5-1 .3-.4.2-.7.6-1.1l.7-1a2.2 2.2 0 0 0-.9-.4h-1a3 3 0 0 0-1.2.3l-.8.6-2.2-1.2a8.8 8.8 0 0 0-3-.9zm2 11.8"/>
<g fill="none" stroke="#fedf00" stroke-linecap="round">
<path d="m568.8 359.5-.8.3c-.9.4-1.6.4-2.6.5-2.6.2-4.3-1.1-7-.9-1.4.1-2 1.2-3.5 1.6a9.3 9.3 0 0 1-1.7.2l.5-1s-1.2.3-2 .3a7.5 7.5 0 0 1-1.6-.2l1-1-1.3-.2a4 4 0 0 1-1-.7 20.5 20.5 0 0 0 1.7-.3c1.5-.4 2-1.2 3.9-1.4 1.1 0 3 0 7.6.8 3 .5 4.4.2 5.5-.3.8-.3 1-1 1.1-1.8.1-.8-.4-1.4-.8-1.8-.1 0-.5-.3-1.1-.4"/>
<path fill="#fcd900" stroke-linecap="butt" stroke-width=".5" d="M524.8 350.6c-.5 0-.9 0-1.3.3-.5.3-.6.7-1 1.1.5.1.8.4 1.2.3.4 0 .5-.2.8-.5.3-.4.4-.7.4-1.2z"/>
<path d="M536 363.8a13.6 13.6 0 0 0 1 2.3c.2.8 0 1.2.2 2v1.6m6.8-7-.3 1.3-1 3.5v.7m-11-4c.9.2.6 3.3 1.9 4"/>
<path stroke-linecap="butt" d="m560.1 369.8.4-.3a8.2 8.2 0 0 0 2.7-1.8"/>
<path d="M552.4 368c3.5-.9 5.9-2.6 7.6-2.9m-4-1.5h.8c1.5-.3 1.7.6 2.7 1.2 1.9 1 2.1 2.3 4.3 3.4l.4.1.8.4"/>
<path fill="#fcd900" stroke-linecap="butt" stroke-width=".5" d="M517.7 354.5h.7l.8-.2c.3 0 .5 0 .7.2.2 0 .2.1.3.3 0 .2.2.3.1.5 0 .2-.3.4-.6.4-.2 0-.4 0-.5-.3a.5.5 0 0 1 0-.4 1 1 0 0 1-.9 0 1 1 0 0 1-.6-.5z"/>
</g>
<path fill="#0065bd" d="m525.1 364.2-2-.9c.4-.2.7-.2 1-.5.3-.4.3-.8.5-1.3s.2-1 .7-1.4c.3-.2.8-.2 1.1-.1.4 0 .8.4.9.7 0 .6-.2 1-.3 1.5 0 .6-.3.9-.2 1.4 0 .4.2.6.4 1l-2-.4zm-1 1a.6.6 0 1 1 .7.5.6.6 0 0 1-.7-.6zm-1.7-16.6h-.2c-.4-.4-.4-.8-.6-1.2a4 4 0 0 1-.3-1.2v-2c0-.3 0-.6-.2-.9 0-.2-.4-.3-.3-.4 0-.1.3 0 .4 0 .4 0 .6.1 1 .4.3.3.5.6.6 1l.4 1.5.3.8.5.6-.7.8zm3.6 10.6 2.2 1a9.2 9.2 0 0 0 3.5-3.8c.9-1.8 1-2.7 1.4-4.4l-1.8-.5h-.4c-.5 1.8-.7 2.7-1.6 4.2-.8 1.3-1.7 2.3-2.6 3zm5 18.2.8-1.3 1.4-1.1h.4a8.7 8.7 0 0 1-.5 2.8l-.4 1-.5.5c-.5-.8-1.3-1.3-1.3-2zm33 1.8 1.4.6 1.5.9v.5l-1.5.2a8.4 8.4 0 0 1-1.3 0h-1l-.6-.4c.5-.7.8-1.6 1.4-1.8zm-9.8-2 1.4.5 1.5 1c0 .1.1.3 0 .4a9 9 0 0 1-2.7.3l-1-.1-.7-.3c.6-.7.9-1.7 1.5-1.8m-17.4 2.1 1.5.5 1.5 1v.5a9 9 0 0 1-2.8.2h-1l-.6-.4c.5-.7.8-1.6 1.4-1.8m-9-29.8c-.6-.3-1-1-.6-1.6.1-.2.4-.2.6-.4.2-.3.1-.5 0-.8l-.1-1-.2-1c0-.6 0-1 .4-1.6.2-.3.7-.6.8-.6.2.1 0 .5 0 .8 0 .5.1.7.3 1.2l.7 1.3c.2.6.4.8.4 1.4 0 .5 0 .7-.2 1.2a2 2 0 0 1-.6.8 2 2 0 0 1-.8.4 1.1 1.1 0 0 1-.6 0z"/>
</g>
<use xlink:href="#ad-b" width="100%" height="100%" y="36.6"/>
</g>
<path fill="none" stroke="#703d29" stroke-width=".4" d="M211.3 204.4h42v42h-42zm46.5 0H300v42h-42zm-46.4 78.4c.2.8.4 2 1.1 3.4.8 1.2.5 1.2 2.2 3a13.8 13.8 0 0 0 6.7 3.6c3.4 1 5.7 1 8.5.9 2.2-.1 3.9-.4 5.3-.6 2-.2 3.4-.4 5.7-.5a32.4 32.4 0 0 1 3.1 0c1.2 0 2.4.3 3.7.5 2.8.6 5.6 1.7 5.6 1.7v-43.9h-42v30zm88.4 0c-.1.8-.4 2-1.1 3.4-.8 1.2-.5 1.2-2.2 3a13.8 13.8 0 0 1-6.7 3.6 26.1 26.1 0 0 1-8.5.9c-2.2-.1-3.9-.4-5.3-.6a55.6 55.6 0 0 0-5.6-.5 32.4 32.4 0 0 0-3.2 0c-1.2 0-2.4.3-3.7.5-2.8.6-5.7 1.7-5.7 1.7v-43.9H300v30z"/>
</svg>

After

Width:  |  Height:  |  Size: 32 KiB

View File

@@ -0,0 +1,6 @@
<svg xmlns="http://www.w3.org/2000/svg" id="flag-icons-ae" viewBox="0 0 512 512">
<path fill="#00732f" d="M0 0h512v170.7H0z"/>
<path fill="#fff" d="M0 170.7h512v170.6H0z"/>
<path fill="#000001" d="M0 341.3h512V512H0z"/>
<path fill="red" d="M0 0h180v512H0z"/>
</svg>

After

Width:  |  Height:  |  Size: 274 B

View File

@@ -0,0 +1,81 @@
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" id="flag-icons-af" viewBox="0 0 512 512">
<g fill-rule="evenodd" stroke-width="1pt">
<path fill="#000001" d="M0 0h512v512H0z"/>
<path fill="#090" d="M341.3 0H512v512H341.3z"/>
<path fill="#bf0000" d="M170.7 0h170.6v512H170.7z"/>
</g>
<g fill="#fff" fill-rule="evenodd" stroke="#bd6b00" stroke-width=".5" transform="translate(2.2 86.8)scale(.84611)">
<path d="M319.5 225.8h8.3c0 3.2 2 6.6 4.5 8.5h-16c2.5-2.2 3.2-5 3.2-8.5z"/>
<path stroke="none" d="m266.7 178.5 4.6 5 57 .2 4.6-5-14.6-.3-7-5h-23l-6.6 5.1z"/>
<path d="M290 172.7h19.7c2.6-1.4 3.5-5.9 3.5-8.4 0-7.4-5.3-11-10.5-11.2-.8 0-1.7-.6-1.9-1.3-.5-1.6-.4-2.7-1-2.6-.4 0-.3 1-.7 2.4-.3.8-1.1 1.5-2 1.6-6.4.3-10.6 5-10.5 11.1.1 4 .6 6.4 3.4 8.4z"/>
<path stroke="none" d="M257.7 242.8H342l-7.5-6.1h-69.4z"/>
<path d="m296.4 219.7 1.5 4.6h3.5l-2.8-4.6zm-2 4.6 1 4.6h4l-1.5-4.6zm7 0 2.8 4.6h5.9l-4.6-4.6zm-34.5 10.4c3.1-2.9 5.1-5.3 5.1-8.8h7.6c0 2 .7 3.1 1.8 3h7.7v-4.5h-5.6v-24.7c-.2-8.8 10.6-13.8 15-13.8h-26.3v-.8h55.3v.8H301c7.9 0 15.5 7.5 15.6 13.8v7h-1l-.1-6.9c0-6.9-8.7-13.3-15.7-13.1-6 .1-15.4 5.9-15.3 13v2.2l14.3.1-.1 2.5 2.2 1.4 4.5 1.4v3.8l3.2.9v3.7l3.8 1.7v3.8l2.5 1.5-.1 3.9 3.3 2.3h-7.8l4.9 5.5h-7.3l-3.6-5.5h-4.7l2.1 5.4h-5l-1.3-5.4h-6.2v5.8H267zm22.2-15v4.6h5.3l-1-4.6H289z"/>
<path fill="none" d="M289.4 211.7h3.3v7.6h-3.3z"/>
<path fill="none" d="M284.7 219.8h3.2v-5.6c0-2.4 2.2-4.9 3.2-5 1.2 0 2.9 2.3 3 4.8v5.8h3.4v-14.4h-12.8zm25.6 3.3h4v3.2h-4zm-2.4-5.3h4v3.1h-4zm-3.9-5.4h4v3.1h-4zm-3.3-4.5h4v3.1h-4z"/>
<path fill="none" d="m298 219.8 4.2.2 7.3 6.4v-3.8l-2.5-1.8v-3l-3.6-2v-3.3l-3.5-1.2V207l-1.7-1.5z"/>
<path d="M315.4 210.3h1v7.1h-1z"/>
<g id="af-a">
<path d="M257.3 186.5c-1.2-2-2.7 2.8-7.8 6.3-2.3 1.6-4 5.9-4 8.7 0 2 .2 3.9 0 5.8-.1 1.1-1.4 3.8-.5 4.5 2.2 1.6 5.1 5.4 6.4 6.7 1.2 1 2.2-5.3 3-8 1-3 .6-6.7 3.2-9.4 1.8-2 6.4-3.8 6-4.6z"/>
<path fill="#bf0000" d="M257 201.9a10 10 0 0 0-1.6-2.6 6.1 6.1 0 0 0-2.4-1.8 5.3 5.3 0 0 1-2.4-1.5 3.6 3.6 0 0 1-.8-1.5 5.9 5.9 0 0 1 0-2l-.3.3c-2.3 1.6-4 5.9-4 8.7a28.5 28.5 0 0 0 0 2.3c.2.5.3 1 .6 1.3l1.1.8 2.7.7a7.1 7.1 0 0 1 2.6 2 10.5 10.5 0 0 1 1.8 2.6l.2-.8c.8-2.7.7-5.9 2.6-8.5z"/>
<path fill="none" d="M249.8 192.4c-.5 3.3 1.4 4.5 3.2 5.1 1.8.7 3.3 2.6 4 4.4m-11.7 1.5c.8 3 2.8 2.6 4.6 3.2 1.8.7 3.7 3 4.5 4.8"/>
<path d="m255.6 184.5 1-.6 17.7 29.9-1 .6z"/>
<path d="M257.5 183.3a2 2 0 1 1-4 0 2 2 0 1 1 4 0zm15.2-24h7.2v1.6h-7.2zm0 3.1h7.2v13.8h-7.2zm-.4-5h8c.2-2.7-2.5-5.6-4-5.6-1.6.1-4.1 3-4 5.6z"/>
<path fill="#bd6b00" stroke="none" d="M292.6 155.8c-1.5.6-2.7 2.3-3.4 4.3-.7 2-1 4.3-.6 6.1 0 .7.3 1.1.5 1.5.2.3.4.5.6.5.3 0 .6 0 .7-.3l.2-.8c-.1-2-.1-3.8.3-5.4a7.7 7.7 0 0 1 3-4.4c.3-.2.4-.5.5-.7a1 1 0 0 0-.3-.7c-.4-.3-1-.4-1.5-.1m.2.4c.4-.2.8 0 1 .1l.1.2c0 .1 0 .2-.3.4a8.2 8.2 0 0 0-3.1 4.6 16.7 16.7 0 0 0-.3 5.6 1 1 0 0 1-.2.6s0 .1-.2 0c0 0-.2 0-.4-.3a3.9 3.9 0 0 1-.4-1.2c-.3-1.8 0-4 .7-6 .7-1.8 1.8-3.4 3-4z"/>
<path fill="#bd6b00" stroke="none" d="M295.2 157.7c-1.5.7-2.5 2.3-3 4.2a13.6 13.6 0 0 0-.3 5.9c.2 1.3 1 2 1.6 2 .3.1.6 0 .8-.3.2-.3.3-.6.2-1-.4-1.6-.5-3.4-.3-5.1.3-1.7 1-3.2 2.2-4.1.3-.3.5-.5.5-.8a.8.8 0 0 0-.2-.6c-.4-.3-1-.4-1.5-.2m.2.5c.4-.2.8-.1 1 0l.1.3-.3.4a6.5 6.5 0 0 0-2.4 4.4c-.3 1.8-.1 3.7.2 5.2.1.4 0 .6 0 .8l-.5.1c-.3 0-1-.5-1.2-1.7-.3-1.7-.2-3.9.3-5.7.5-1.8 1.5-3.3 2.8-3.8"/>
<path d="M272.3 187.4h8v11h-8zm.5 17.4h7.7v2.4h-7.7zm-.2 4.1h8v8.7h-8zm-.6 10.5h8.7v4.9H272zm1.1-16.6h7l1.4-2.4h-9.6zm9.4-8.6.1-6h4.8a17.4 17.4 0 0 0-4.9 6z"/>
<path fill="none" d="M273.6 196.7c0 1.3 1.5.8 1.5.1v-5.6c0-1 2.4-.8 2.4-.1v6c0 1 1.7.9 1.6 0v-7c0-2.2-5.5-2.1-5.5-.1zm0 13.3h5.7v7h-5.7z"/>
<path d="M277.2 213h2v1h-2zm-3.5 0h2v1h-2zm2-3h1.5v3h-1.5zm0 4h1.5v3.1h-1.5zM244 139c.4 5.5-1.4 8.6-4.3 8.1-.8-3 1-5.1 4.3-8.1zm-6.5 12.3c-2.6-1.3-.7-11.5.3-15.8.7 5.5 2 13.3-.3 15.8z"/>
<path d="M238.4 151.8c4.4 1.5 8-3.2 9.1-8.7-3.6 5-9.5 5-9 8.7zm-3.3 5.1c-3.4-.9-1.4-11.7-.7-16 .7 4.5 3.1 14.5.7 16zm1.2-.3c.2-3.7 3.9-2.7 6.5-4.7-.5 2-2 5.2-6.5 4.7zm-4.2 5c-3.4-1-1.4-12.6-1.6-17.4 1 4.2 4.2 16.3 1.6 17.4zm1.6-.5c2.8.9 6.5-1 6.8-4.3-2.5 1.7-6.3.4-6.8 4.3z"/>
<path d="M229.5 166.7c-3.2.3-1.8-9.6-1.8-18.8 1.2 8.6 4.5 16.5 1.8 18.8z"/>
<path d="M230.7 166.3c2.2 1 6.1-.7 7.2-4.4-4 1.7-6.6 0-7.2 4.4zm25.6-22.2c-.6 4.9-2.6 7.7-5.5 7.2-.8-3 1.6-5 5.5-7.2zm-7.8 12.4c4.9.7 6.6-3 10-7.9-4.7 3.4-10.2 4-10 8z"/>
<path d="M247 156c-2.6-3.2 0-7.3 2-10.7-.4 5.1 1.3 8-2 10.7zm-1 5.3c-.4-3.2 5-3.9 7.4-5.6-.9 1.8-2 6.7-7.5 5.6z"/>
<path d="M244.8 161.3c-3.7-.4-2.2-6.7.5-10.1-1.1 4.8 2 8.1-.5 10.1z"/>
<path d="M242 166.6c-4.2-2-1.5-7.2 0-10.3-.6 4.1 2.8 7.2 0 10.2z"/>
<path d="M242.8 166c2.2 3 6.5-.8 7.4-5.2-3.7 3.1-6.5 2.6-7.4 5.3zm-9.6 20.3c-.4-4.3 2.8-12 .5-16.2-.3-.6.7-2.1 1.4-1.2 1 1.5 2 5.7 2.5 4.1.4-1.7.5-4.6 2-5.2 1-.3 2.3-.6 1.9 1-.4 1.4-1.2 3.4-.3 3.5.5 0 2-2 3.3-3 1-.8 2.6.6 1 1.8-4.8 4-9.5 5.9-12.3 15.2zm-8.7 64.5c-.6 0-1.3-.3-.6.6 5.7 7 7.3 9 15.6 8 8.3-1.1 10.3-3.4 16.2-6.7a14.6 14.6 0 0 1 11.2-1c1.6.5 2.6.5 1.4-.7-1.2-1.1-2.5-2.7-4-3.8a17.5 17.5 0 0 0-12.7-2.7c-6 1-11.1 4.9-17.2 6.4a25 25 0 0 1-9.9 0zm47.8 12.5c1 .2 1.7 2.2 2.3.9.8-2.3.2-4-.8-3.9-1.2.3-3.1 3-1.5 3z"/>
<path stroke="none" d="M220.6 183c-1.2-1.4-.9-1.8 1-1.9 1.4 0 4.2 1 5.3.1 1-.7.5-3.7 1-5 .2-.9.7-2 2-.2 3.6 5.8 8 12.8 10 19.6 1 3.8 0 9.8-3.4 13.8 0-3.4-1.2-5.7-2.7-8.6-2-3.7-9.1-14-13.2-17.9z"/>
<path d="M235.5 213.4c4 0 4.7-5.3 4.7-6.8-2 .4-5.4 3.7-4.7 6.8zm34.5 51.9c2.8.6 2.7-6.2-.2-9.1 1.3 4.4-2 8.4.1 9zm-1.2-.1c.2 3.2-8-.4-10-3 4.8 2.1 9.8.4 10 3zm-3.5-4.6c.3 3.1-7 .3-9.3-2.1 4.9 1.6 9-.5 9.3 2zm1.3.4c2.9.7 2.4-6.4-.4-8.8 1.4 4.7-1.8 8.1.4 8.8zm-3-4.3c2.9.7 1.2-5.4-.9-7.8.4 4.4-1 7.5 1 7.8zm-1.5 0c.3 3.2-5.4.8-7.6-2.3 4.8 1.5 7.3-.3 7.6 2.3zm-1.5-2.5c1.8-1.3-.1-4.8-3.7-4.6.4 2.1 1.6 5.9 3.7 4.6zm14 14.7c.1 3.2-8 1.6-10.6-1.8 5.2 1 10.3-.8 10.5 1.8zm-32.4-5.8c.3 3.2-8.6-.4-10.8-3.4 4.7 1.6 10.5.8 10.8 3.4zm5.4 1.3c1.9-1.3-1.9-4.7-5-5.5.4 2.1 3 6.8 5 5.6zm.6 2.3c.2 2.9-9.5 1.3-12-1.4 8.3 1.5 11.7-1.1 12 1.4z"/>
<path d="M252.8 268.6c1 2.7-8.3 2-11.6.5 5.3 0 10.8-2.4 11.6-.5z"/>
<path d="M257.1 270.6c1 2.4-7.6 2.4-11.8 1 5.6 0 10.8-3.4 11.8-1zm6.3 1.3c1.6 2.9-7.6 3.1-10.5 1.7 5.2-.7 9.2-4 10.5-1.7zm-10.7-4.9c-2.9 1.8-2.7-3.6-5-7.3 3.6 3.3 7 5.6 5 7.3z"/>
<path d="M257.9 269c-2.4 2.1-4.4-5.3-6.6-9.5 3.6 4 8.8 7.7 6.6 9.4zm6.8 2c-2 2.4-8-7-10.2-12 3.3 3.9 11.8 10 10.2 12zm-5.8 7.2c-1 3.6-16.2-3.4-18-7.1 8.8 4.6 18.2 3.6 18 7zm-48.7-73.8c-.4-.5-1.4 0-1.2 1.1.3 1.5 2.5 9.2 6.3 11.8 2.7 2 17 5.1 23.4 6.5 3.6.7 6.5 2.5 8.9 5.3a94.4 94.4 0 0 0-3-9.8c-1.2-3-4.4-6.2-7.8-6.3-6.1-.3-14.1-.8-20-3.3a16 16 0 0 1-6.7-5.3z"/>
<path d="M245.5 234.9c2 1.4 4.1-3.7 1.7-8.6-.1 4.7-3.8 6.3-1.7 8.6z"/>
<path d="M247.4 239.6c2.7.8 3.5-4 1.8-7.8.3 4.1-4.3 6.6-1.8 7.8z"/>
<path d="M249.5 243.4c2.6 1.3 3.5-3.6 1.7-7.1.2 4.5-3.7 5.9-1.7 7z"/>
<path d="M248.4 243.7c-1 3-7-2.7-8-5.8 3.7 3.7 8.7 3.2 8 5.7z"/>
<path d="M245.7 239c-1.2 3-8.7-5-10.4-8.7 3.7 3.7 11.2 6.5 10.4 8.6z"/>
<path d="M244.2 234.3c-1.2 3.5-9.3-5.8-11.7-9.1 4 3.6 12.6 6.6 11.7 9.1zm-.3-3.4c3-.6-.1-3-3.7-6.9-.1 4.1.5 7 3.7 6.9z"/>
<path d="M239 228.5c1.3-1.3-1.1-1.9-4.1-5.3-.5 2.3 2.8 6.5 4.2 5.3zm14 15.2c1.6 1 2.6-2.3.7-5.2-.5 3.2-2.1 4-.7 5.2zm-34.2-20.3c-3.3 2-8.6-6-10-9.3 2.9 3.8 10.6 7.2 10 9.3z"/>
<path d="M221.7 228c-1.9 2-7.7-3.5-9.7-6.3 3 2.7 10.5 3 9.7 6.3z"/>
<path d="M224.8 232.2c-.6 2.8-9-3.5-11-6.5 3.6 3.5 11.6 3.2 11 6.5z"/>
<path d="M223.5 235.3c-1.3 2.5-8.2-3.8-9.9-7 4.3 3.6 11 4.5 10 7zM220 223c2.1-2.3 1.2-3.4-.4-7-.8 3.7-2.1 5.2.4 7zm2.9 4.3c4 .2 0-4.6-1-8.7.4 4.6-1 8.3 1 8.7z"/>
<path d="M225.4 231.1c2.7-.6 2-4.5-.2-9.2.5 5.1-2.3 8 .2 9.2zm-1 7.7c-1 3-8.8-4-10-6.8 4 3.4 10.7 4.5 10 6.8z"/>
<path d="M229.1 243.6c-1.1 3-9.3-3.2-11.8-6.6 4.9 4 12.4 3.6 11.8 6.6z"/>
<path d="M233.9 248.5c-1.3 4.3-9.9-2.6-12.4-6 5.4 4.2 13 3 12.4 6zm-8-11c2.3 1.1 3.2-5.4 1.9-10.1 0 5-4.7 8.8-2 10z"/>
<path d="M229.8 242.7c2.8.8 2-6.3-.5-11-.3 4.7-2.3 9 .5 11zm5 4.9c3 .1 1-6.1-1.6-9.6.4 4.5-1 9 1.6 9.6zm-5.5 2.6c-1 1.6-3.2-1.3-7-3.5 3.4 1 7.4 2 7 3.5zm-1.8-52.7c3-2.2.7-6.2 0-10-1 3.6-3.4 8.4 0 10zm0 5.3c-4.5-.5-3.8-6.1-4-9.7 1.4 4.9 5 5.7 4 9.8zm.6-.7c3.7-.2 3.5-4.4 3.7-8.6-1.9 3.9-4 4.5-3.7 8.6z"/>
<path d="M228 207.3c-3 .3-4.4-2.6-5-7 2.7 4.1 5.1 2.8 5 7zm1-.3c3.7.5 3-3.8 3-7-1.2 3-4.2 4-3 7z"/>
<path d="M223.2 205.2c.3 2.8 2.1 7.6 5 6.5 1.1-3.4-2.6-4.1-5-6.5z"/>
<path d="M229 212c-1.2-2.4 3-3.7 3.8-6.9.5 4.6.1 7.6-3.8 7zm-11.9-29.2c2.3-2.4.3-6.4-.4-10.2-1 3.6-2.5 8.4.4 10.2zm0 4.6c-4 .5-5-7.7-5.5-11.3 1.4 4.9 6 7 5.5 11.4zm.8 0c2.8-1.5 2.2-4.7 3-7-1.8 2.9-3.6 3.3-3 7z"/>
<path d="M217 192.8c-4.1.3-6.6-8.8-6.8-12.4 1.3 4.9 7.4 7.5 6.9 12.4zm.9-.2c4-.9 3.5-3.5 2.9-7.6-1.3 4.2-3.5 3.3-2.9 7.6z"/>
<path d="M217 198c-4.6.8-4.3-6.6-8-11.9 3.2 4 9 9 8 11.9zm1-.3c3.6.2 4-5.1 3.8-7.3-.9 2.2-5 4.2-3.7 7.4z"/>
<path d="M209.8 192.3c1.7 5.7 4.2 11.4 7.2 11 1.5-3.3-2.9-3.7-7.2-11z"/>
<path d="M218.1 202.4c-1.2-2.5 3-3.7 3.8-6.9.5 4.6.1 7.6-3.8 6.9zm-7.1-3.6c2.5 5.1 3.6 11 7 10.1 1.3-4-3.8-4.8-7-10.1z"/>
<path d="M218.7 208c-1.5-2.8 2.7-3.7 3.8-7.4.5 4.8 0 8.3-3.8 7.3zm7.2-34.5c2.4.6 5-2.1 4.1-6.2-2.8.6-4 3.2-4.1 6.2zm-7.9-2.1c.2 1.2 1.7 1.3 1.2-.4a5.3 5.3 0 0 1 0-3.4 7.5 7.5 0 0 0 0-4.6c-.4-1-1.8-.4-1.2.4.6.9.7 2.8.2 3.7-.6 1.3-.4 3-.2 4.3zm22.9 16c-1 1.3-2.9.4-1.4-1.5 1.2-1.5 3-2.8 3-4.4.2-2 1.3-5 2.4-6.1 1.1-1.1 2.4.4 1.2 1.2-1.3.8-2.2 4.4-2.1 5.8-.1 2-2 3.5-3.1 5zm-3-2.3c-1 1.4-2.4.5-1.6-1.7.7-1.5.8-3.5 1.6-4.6 1.2-1.7 3-3.1 4.1-4.2 1.2-1 2 0 1 1a27 27 0 0 0-3.3 4c-1.4 2.2-.8 4-1.8 5.5zm-15.7-7.2c-.1 2 1.5 2.4 1.4-.4 0-3-2.2-5.8-1-10.3.8-2.2.8-6.3.4-8.4-.4-2.2-2-.8-1.3.9.6 2-.1 5.6-.6 7.5-1.5 5.4 1.2 8 1 10.7zm4.3-11c-.2 1.9-1.8 2-1.3-.5.4-2 .4-3.6 0-5.3-.6-2.1-.4-5.7 0-7.2.5-1.6 2-.7 1.4.5a9.9 9.9 0 0 0-.3 5.9c.6 2 .5 4.8.2 6.7zM210.9 204c.8.9 2 .3 1-1-1-1-.7-1.2-1.3-2.4-.6-1.4-.5-2.1-1.2-3-.7-1-1.6 0-1 .7.8 1 .6 1.6 1 2.5 1 1.5.7 2.3 1.5 3.2zm20.4 24.6a8.6 8.6 0 0 1 4.4 6.7 16 16 0 0 0 2 7.1c-2-.5-3-3.7-3.3-6.8-.3-3.2-2-4.5-3-7zm5.1 5.9c1.7 3.1 4 4.3 4.2 6.6.2 2.7.4 2.8 1.1 5.4-2-.5-2.5-.7-3-4.7-.3-2.8-2.6-4.7-2.3-7.3z"/>
<path stroke="none" d="M289 263.3c1 1.8 2 4.5 4 4 0-1.3-2.1-2.3-4-4m3 .6c3.7 1.6 7 1.2 7.5 3.6-3.6.4-5-1-7.6-3.6zm-16.1-12.7a14 14 0 0 1 5 7.7 29 29 0 0 0 3.6 7.8 13 13 0 0 1-5.3-7.4c-.7-3-1.6-5.3-3.3-8zm3.1 0c2.8 2.2 5.4 4.8 6.2 7.9.8 2.9 1.3 5.1 3.2 8-3-1.9-4.1-4.7-5-7.8-.7-3-2.5-5.2-4.4-8zm9.2 7.3a1.1 1.1 0 0 1 .7-1.2 33.4 33.4 0 0 1 2.6-.8c1-.3 1.6.4 1.6.9v2c0 .7-.2.8-.7.9-.7.1-1.7.2-2.4.7-.6.4-1.2.1-1.5-.5zm10.6 0c0-.6-.2-1.1-.6-1.2a5.4 5.4 0 0 0-2.4-.4c-1 0-1.1.2-1.1.6v2.1c0 .8 0 .8.4 1 .7 0 1.8 0 2.5.6.5.3 1 0 1.1-.6z"/>
</g>
<use xlink:href="#af-a" width="100%" height="100%" x="-600" transform="scale(-1 1)"/>
<g stroke="none">
<path d="M328.5 286.6c0 1.2.2 2.2 1 3.1a19 19 0 0 0-13.8 1.1c-1.8.8-4-1-1.9-2.7 3-2.3 9.7-1 14.7-1.5m-57.5 0a7 7 0 0 1-.4 3c4.4-1.7 9.1-.2 13.6 1.6 3 1.3 3.3-1 2.8-1.7a6.5 6.5 0 0 0-5-2.9zm3.8-21.7c-1.3-.5-2.7 0-4 1.4-4.3 4.2-9.4 8.3-13.5 11.6-1.5 1.3-3 3.7 3.4 6 .3.2 5 2 8 2 1.3 0 1.3 1.8 1 2.3-.5 1-.1 1.4-1.1 2.3-1.1 1 0 2.1 1 1.3 3.6-3.2 9.6-1.1 15.3.7 1.4.4 3.8.3 3.8-1.6 0-2 1.5-3.4 2.4-3.5 2.4.4 14 .5 17.5.1 2-.3 2.2 2.9 3.3 4 .8.9 3.7 1.1 5.8.2 4-1.8 10-1.8 12.5 0 1 .7 1.9 0 1.3-.7-.8-1-.7-1.6-1.1-2.4-1-2-.2-2.4.8-2.5 11-1.5 14.6-5.2 11.2-8.3-4.4-3.8-9.2-7.7-13.4-12.2-1.2-1.2-2-1.7-4.3-.7a66.5 66.5 0 0 1-25.3 5.9 76 76 0 0 1-24.6-5.8z"/>
<path fill="#bd6b00" d="m326.6 265.5-1.6.4c-9 3.2-17.2 5.4-25.7 5.4-8.3 0-17-2.4-24.9-5.6a2.3 2.3 0 0 0-1.5 0c-.5.1-1 .4-1.3.7a115.5 115.5 0 0 1-11.8 10.3c-.7.5-.6 1.8.5 2.2 8.3 3 16.4 8.5 39.6 8.3 23.5-.2 31.8-5.6 39.2-8.1.5-.2 1-.5 1.3-1a1 1 0 0 0 .1-.8 2 2 0 0 0-.6-.8c-4.3-3.5-8.8-6.3-11.8-10.4-.3-.5-.9-.6-1.5-.5zm0 .5c.5 0 1 0 1.1.3 3 4.3 7.7 7 11.9 10.5l.4.7a.5.5 0 0 1 0 .4c-.1.3-.6.6-1 .7-7.6 2.6-15.7 8-39 8.2-23.2.2-31.2-5.3-39.5-8.3-.8-.4-.7-1.2-.4-1.4 4.2-3.2 8.2-6.8 11.8-10.4a2.5 2.5 0 0 1 1.1-.6h1.2a68 68 0 0 0 25 5.6c8.7 0 17-2.2 26-5.3a6.7 6.7 0 0 1 1.5-.4z"/>
<path d="M269.7 114.6c0-1.4 2-1.5 1.8.4-.3 2.3 4.5 8.3 4.9 12 .3 2.5-1.5 4.6-3.2 6a6.6 6.6 0 0 1-6.8.5c-.9-.8-1.7-3.3-1-4.3.2-.3 1.3 3.7 3.7 3.7 3.3 0 6-2.5 6-4.7.2-3.8-5.3-9.8-5.4-13.6m9.5 9.4c.6-.4 1.4 1.3.8 1.7-.5.3-1.5-1.3-.8-1.8zm1.5-3.5c-.3.2-.8 0-.7-.2a12 12 0 0 1 3.6-3.3c.4-.2 1 .4.8.7a11 11 0 0 1-3.7 2.8m12.6-10c.3-.6 2.1-1.3 2.6-1.7.4-.5.6.4.4.7-.3.7-1.9 1.7-2.6 1.8-.3 0-.6-.4-.4-.7zm4.3.3a8.3 8.3 0 0 1 2.5-3.4c.5-.3 1.3 0 1.1.4a9 9 0 0 1-2.9 3.3c-.3.3-.8 0-.7-.3m-3.7 2.7c-.3.2-.1.7.1.8.6.2 1.5.2 2 0 .6-.4.3-2.9-.5-1.6-.6.8-1 .6-1.6.8m-7.3 5.6c-1.3-1 .4-2.4 1.7-1.4 2.7 2-4 9.8-7.6 13.4-.7.7-1.3-1-.4-1.9a33.7 33.7 0 0 0 6.7-7.6c.4-.5.7-1.6-.4-2.5m15.3-6.6c.1-1-1.6 0-1.6-1.3 0-.7 1.9-1.2 2.7-.4 1.3 1.4.3 3.7-2 3.9-1.8 0-5 2.7-4.5 3.2.5.7 5.4 1.1 8.3.7 1.8-.3 1.4 1.3-.4 1.5-1.8.2-3.2 0-4.8.6-2 .5-2.8 3-3.9 4-.2.2-.8-.8-.6-1.2.8-1.2 2-3 3.4-3.6.8-.3-2.4-.4-3.4-.7-.8-.2-.6-1.3-.3-1.9.4-.8 3.4-3.9 4.7-3.8 1.1 0 2.3-.3 2.4-1m5 .2c.6-.5 1-1.3 1.5-1.8.3-.3.9 0 .8.8-.1.7-1 1.2-1.5 1.7-.5.3-1-.4-.7-.7zm6.5-2.3c.9 0 1 1.6.2 1.8-.6.2-1-1.7-.2-1.8m-2.1 5c0 1.5.7 1.4 2 1.3 1.3 0 2.4 0 2.4-1.2 0-1.3-.7-2.5-1-1.6-.1.8-.3 2.2-.8 1.6-.4-.5-.2-.6-1 .2-.5.5-.5-.2-.8-.6-.2-.3-.8.2-.8.4zm-9.2 7.2c-.3 1.9 0 4.5.9 4.5 1.2 0 3.6-4 4.8-6.2.7-1.2 1.8-1.4 1.3-.1-.7 1.9-.6 6 0 7.2.4.6 3-.6 3.4-1.5.8-1.7.1-4.8.4-6.7.1-1.2 1.3-1.5 1.2-.3a75.6 75.6 0 0 0-.1 7.5c0 1 2.9 2.4 3.3-.6.2-1.8 1.2-3.7 0-5.7-.8-1.3 1.1-1.2 2.1.6.7 1.2-.6 3.2-.5 4.7 0 2.4-1.8 3.8-3.1 3.8-1.2 0-2-1.5-3-1.5s-2.2 1.7-3 1.6c-3.6-.2-1.7-5.3-2.8-5.4-1.2 0-2.5 5-4 4.9-1.4-.2-3-4.2-2.3-5.8.5-1.6 1.5-2 1.4-1m16.9-8c-1.7-1 0-3.7.9-2.8 1.6 2 3.2 6.5 4.4 6.9.7.2.6-3.4 1.1-5 .4-1.3 1.8-.9 1.6.7-.1.5-2 6.4-1.8 6.6a47.1 47.1 0 0 1 3.3 7.8c.3 1.2-1.1.4-1.3.2-.9-1.4-2.4-6.5-2.4-6.2l-1.7 7.7c-.2 1-1.7.8-1.3-1 .3-1.4 2.3-8.3 2.2-8.6a17.2 17.2 0 0 0-5-6.3"/>
<path d="M322 131.2c-.4 0-1.2 1 1.2 1.5 3.1.6 6.6-.5 7.6-3.6 1.3-3.7 2-7.2 2.7-8.5.8-1.5 1.8-1.4 1-3.6-.5-1.7-1.5-1.2-1.7-.3-.5 2.3-2.6 10-3.3 11.3-1.2 2.6-3.7 3.6-7.5 3.2"/>
<path d="M328.4 119c-.4-.7-1.2 0-1 .7a1.2 1.2 0 0 0 1.2 1c.7 0 2.2.1 2.2-1 0-.8-.7-1.5-1.1-.6-.5.8-1 .7-1.3 0zm.7-3c-.2.2 0 1.1.3 1a7 7 0 0 0 3.3-.8c.2-.2.1-.7-.2-.7-1 0-2.6 0-3.4.5m8.8 2.3c.8-1.2 2.8-1.3 2 .4a614.3 614.3 0 0 1-6.3 12.3c-.8 1.4-1.4.7-.8-.4.7-1.4 4.9-12 5.1-12.3"/>
<path d="M330.2 133c-.2-.8-1.5-2-1.3.2.2 3.8 5.5 2.6 7 1.3s.3 4.3 2.2 4.9c1 .3 3-1.1 4-2.4 2.7-3.5 4.5-8.6 7-12 1-1.4-.5-2.4-1-1.3-2.4 3.8-5.2 11.6-8.3 13.6-2.5 1.6-1.7-2-1.8-3.2-.1-.8-1.1-2-2.4-.9a5.5 5.5 0 0 1-3.7 1.2c-.7 0-1.4 0-1.7-1.4"/>
<path d="M339.6 126c0-.3-1.1-.4-1 .7 0 .8 1 1 1.1 1 1.5-1.2-.3-.6-.1-1.8zm-2.3 4.4c-.3 0-.6 1 .2 1.1l3.9-.2c.4 0 .6-.9-.4-.8-1.2 0-2.7-.3-3.7 0zm-62-16.6c.5 0 1.6 1.4 1.5 1.9 0 .2-1.2 0-1.5-.3-.3-.3-.2-1.6 0-1.6m-5.3 10.4c-1 .6.2 1.7 1 1.2 2.8-1.9 7-3.8 8-7.5.3-1.2 1.4-3.1 2.5-3.5 1-.5 2.6 1.9 3.6 0 .6-1 2.7.7 3.2-.4.6-1.3.3-2 .3-3.4 0-.8-.7-1-1.2.3-.2.6 0 1.2-.1 1.6-.2.2-.6.4-1 .2-.2-.2 0-.7-.6-1-.2 0-.6-.1-.8.2-.7 1.3-1 2.5-2.1 1-.9-1-1.4-3.1-2-.3-.2 1-1.7 2.4-2.6 2.4-1.1 0-.8-3-3.2-2.5-1.3.3-1.2 2.7-1 3.5.3 1.3 4 .4 3.7 1.2-.6 2.7-4.4 5.4-7.7 7m-22.7 13.2c-.1.5.5 1.7 1.1 1.8.6 0 1-1.3.8-1.8-.2-.3-1.8-.3-1.9 0m3.3 4.9c-.4-.4-1.6.7-.6 1.5.5.5 2.5 1.1 3 .2.8-1.2-.7-5.5 0-6 .5-.5 2.8 2.8 4 3 2.7.4 2-4.6 5-4.2 1.9.2 2.1-2.2 1.8-3.8-.2-1.5-2.6-3.6-3.7-4.6-1.4-1.2-2.1 1-1.2 1.6 1.2 1 3.3 2.9 3.6 4.1.1.6-1.4 1.8-2 1.5-1.4-.8-2.6-4-3.8-4.7-.4-.2-1.4.3-1 1.3.6 1.1 3 2.7 3.1 3.9.1 1-1 3.2-1.8 3.2-.9 0-3-2.7-3.7-4-.4-.5-1.5-.5-1.7.4a22 22 0 0 0 .5 5.5c.2 1.6-.9 1.7-1.5 1.1m-4-8.6c-.4.4.8 1.2 1 1 .4-.4 2.1-2.3 1.8-3-.3-.6-2.6-2-3-1.3-.7 1.1 2.2 1.7 1.7 2a7 7 0 0 0-1.5 1.3m4.1-8.4s.8 2.5 1.4 1.4c.4-.7-1.4-1.4-1.4-1.4m1.2 4c-.2 0-1 .7-.5 1 .8.4 2.9.8 2.4-.7-.3-.9 3.2 0 2.3-2.4a3.7 3.7 0 0 0-1.7-1.7c-.4 0-1.5.5-.8.9.5.2 2 1.1 1.5 1.7-.7.6-1.1-.3-1.9-.1-.4 0-.1 1.2-.4 1.5 0 .2-.7-.4-.9-.3zm5.5-9.5a3.5 3.5 0 0 0-1.2 2c0 .2.3.6.5.5a3.2 3.2 0 0 0 1.2-1.9c0-.3-.2-.8-.5-.6m2.8-.3c-.8-1 1-2.6 1.7-.5.5 1.3 5.5 7.9 6.5 10.1.8 1.5 0 2.1-.9 1-2.5-3.2-4.6-7.2-7.3-10.6m5.2.1c.9-1 2.7-3 2.2-4-.4-1-1.5-1-1.7-.7-1 1.3.8 1 .5 1.4-.5 1-1 1.6-1.3 2.6-.1.3.1.9.3.7m77.8 3.2c-.7-.5.6-3 1.5-2 2.3 2.7 3.4 11.6 4.1 18.3 0 0-1 .9-1 .7 0-3.5-1.5-14.4-4.6-17m-53.1-8.6c-.8-1.8 1.1-2.4 1.4-1.2 1.3 5.8 4.5 10.2 7 14.1.7 1.2 0 2-1.7.8-1.2-.8-2.5-3.9-3-4-1.2-.2-3.8 5-9.1 3.5-1.4-.4-1.3-4.5-1.4-6.3 0-.9 1-1 1 0 0 1.7 0 5.2 2.1 5.4 1.8 0 5.6-2.4 6.4-4.4.8-2-1.9-5.9-2.7-8z"/>
<path d="M344.6 138.4c.4-1.2 6.1-10.8 6.9-12.9.4-1 2 1.8.4 3.3-1.4 1.2-5.5 8-6.3 10.4-.4 1-1.4.5-1-.8"/>
<path d="M354.3 129.3c1-4 3.6.6 1.3 2.8-3.4 3.4-4.5 9.9-10 10.9-1.4.3-4-.7-4.8-1.3-.3-.2.2-1.6 1.1-.9 1.3 1 4.1 1.3 5.6.1a25.4 25.4 0 0 0 6.8-11.6m-57 12.7c-.3.3-1 .3-1.1.7-.3 1.4 0 2.2-.3 3.6s-1.3 1.4-1.2.3c0-1.4 1.3-3.5.4-3.6-.6-.1-1-.9-.4-1.3 1.1-.7 1.7-.6 2.4-.4.3.1.4.5.2.7"/>
<path d="M296.5 140c-1.4 1.4-2.8 1.9-4.1 3.5-.6.6-.5 1.5-.9 2.4-.3.9-1.4 1-1.7.9-.5-.4-.4-2-1-1.2-.6.9-.9 2-1.7 2-.7 0-2-1.5-1.3-1.5 2.3-.3 2.2-2 3-2.2 1-.1 1 1.5 1.7 1.2.4-.2.7-2.1 1.2-2.6 1.5-1.6 2.7-2.4 4.3-3.6.7-.6 1.3.5.5 1.2zm5.3 5c-1.2.2-1 1.7-.6 1.8.5.3 1.4.4 1.7-1.3.2-.7.3 3.5 1.8 1.9 1-1 3.1.2 4-1 .7-.9 1-1.5.4-2.7-.2-.3-1-.2-1 .7 0 .8-.5 1.7-1.3 1.6-.4-.1.2-1.9-.2-2.4a.5.5 0 0 0-.7 0c-.3.4.3 2.2-.6 2.4-1.2.2-.6-1.2-1-1.4-1.7-.8-1.8.2-2.5.3zm9-3c.9-.2.6-.2 2-1.3.5-.4.6.8.5 1.3 0 .7-1 .2-1.3.9-.4.9-.2 3-.4 3.8 0 .4-.8.4-.8 0-.2-1 .1-2 0-3.3 0-.4-.5-1.1 0-1.3zm-5-2.5c-.2.9-.2 1.6-.2 2.3 0 .5 1 .2 1 .1 0-.8.2-2 0-2.3-.2-.1-.7-.3-.8-.1"/>
<path d="m299.5 130.2-1.4 5.6-2-3.8v3.9l-4.4-5.2 1.5 5.6-4-3.4 2.2 3.8-7-4.5 4.4 5.2-5.6-2.8 4 3.4-9-3.4 8.7 4.3a29 29 0 0 1 12.6-2.6c4.9 0 9.3 1 12.5 2.6l8.8-4.3-9 3.4 4-3.4-5.5 2.8 4.3-5.2-7 4.5 2.2-3.8-4 3.3 1.5-5.5-4.3 5.2V132l-2 3.8z"/>
</g>
</g>
<path fill="#fff" d="m249 299.7-.1 2.2h-.4v-1.5a7.4 7.4 0 0 0-.4-1.3 5.8 5.8 0 0 0-.5-1 11.3 11.3 0 0 0-.8-1.1l.7-1.8a5.3 5.3 0 0 1 1.1 2 7.5 7.5 0 0 1 .5 2.5m5.5-3.4c0 .6-.1 1-.3 1.2-.2.3-.6.5-1 .6l.2 1.1a5.3 5.3 0 0 1 0 1.7v1h-.4v-1a4.4 4.4 0 0 0-.2-.8 28.8 28.8 0 0 0-.3-.8 8.4 8.4 0 0 0-.6-1.2l-.8-1.3.5-1.6.8.9.7.2c.7 0 1-.3 1-1h.3a8 8 0 0 0 0 .5v.5m5.1 3.9-.4 1.7-.6-.6a3.5 3.5 0 0 1-.3-1 9.9 9.9 0 0 1 0-1.4 3 3 0 0 1-.9.1c-.4 0-.7 0-1-.3a1 1 0 0 1-.4-.8c0-.7.2-1.3.6-1.8.3-.6.7-.9 1.2-.9.3 0 .6.1.7.3l.3.8v1.6c0 .7 0 1.2.2 1.4 0 .3.3.5.6.9m-1.5-2.9c0-.4-.3-.6-.7-.6a.8.8 0 0 0-.4.1c-.2.1-.2.2-.2.3 0 .2.2.3.8.3a2.2 2.2 0 0 0 .5 0m6.9 2.3-.2 2.1c-.4-.3-.8-.8-1.1-1.5a20 20 0 0 1-1.1-3.3 41.3 41.3 0 0 1-.8 3l-.6 1.3a2 2 0 0 1-.6.6v-2l.8-1.2a6 6 0 0 0 .6-1.4 16 16 0 0 0 .3-2h.4l.7 2a6.7 6.7 0 0 0 1.6 2.4"/>
<path fill="#bf0000" d="M280.5 319.2c.3.3.5.6.6 1l.2 1.2h-.6a6.2 6.2 0 0 0-.7-1.1 15.2 15.2 0 0 0-1-1l-1.3-1.2a27.3 27.3 0 0 0-1.6-1.3l-.5-.4-.2-.6a9 9 0 0 1-.1-1.3l2.1 1.7a35.3 35.3 0 0 1 2 1.8zm-7.6-4.6-.1 1.6-2.5-.1.2-1.6h2.4m6.7 7.1-6 1.9-1.2-1.6 5.2-1.5a6.3 6.3 0 0 0-.5-.7l-.7-.5a1.1 1.1 0 0 1-.4.8 2 2 0 0 1-.8.5 2.7 2.7 0 0 1-1.4 0c-.5 0-.8-.3-1-.6a3.1 3.1 0 0 1-.5-1.7c0-.8.2-1.3.6-1.5.6-.2 1.4 0 2.5.5a6.5 6.5 0 0 1 2.4 2zm-4.7-3.2a3.1 3.1 0 0 0-.6-.2.9.9 0 0 0-.5 0 .5.5 0 0 0-.4.3.4.4 0 0 0 0 .4l.4.2h.5a.9.9 0 0 0 .3-.3zm-6.4-1.2-.4 1.6-2.5-.3.4-1.5zm6 6-1.4.4a4.2 4.2 0 0 1-1.4 0 2.8 2.8 0 0 1-1.2-.3c-.2.4-.6.7-1.1 1a5.9 5.9 0 0 1-1.3.4l-1 .3-.8-1.6 1-.2 1-.3.6-.4a4.7 4.7 0 0 0-.7-.4 1 1 0 0 0-.6-.1.3.3 0 0 0-.2 0 .5.5 0 0 0 0 .3h-.5c-.4-.7-.5-1.2-.3-1.6.3-.4.8-.7 1.6-.9.8-.2 1.5-.2 2.1 0 .6 0 1 .3 1.2.6.1.2.2.4.1.6 0 .2 0 .5-.3 1a1.6 1.6 0 0 0 1 0l1.3-.3zm-6.4 1.5-1.3.2c-.7 0-1.3 0-1.8-.4a4.3 4.3 0 0 1-1.3-2l-.6-1.7a2 2 0 0 0-.6-1l-.8-.3.5-1.7 1.1.9.8 1.3.4 1.2a5 5 0 0 0 1 1.7c.2.3.4.4.7.3l1.3-.2zm-5.5-6-.9 1.5-2.3-.6.8-1.5zm1.4 6.7-6 .5-.3-1.6 5-.5a1.9 1.9 0 0 0-.6-.7 6 6 0 0 0-.8-.5l.5-1.5c.5.3 1 .6 1.2 1 .2.4.5 1 .6 1.7zm-4.8.8a13 13 0 0 1-1.8-.2 8.3 8.3 0 0 1-1.3-.4 4.5 4.5 0 0 1-1 .3h-3c-.5 0-.8 0-1-.2l-.6-.8a3.3 3.3 0 0 1-1.3.7 4 4 0 0 1-1.3.2h-1.4l.2-1.8 1.3.1c.7 0 1.3 0 1.7-.3.6-.3 1-.8 1-1.4h.6a22.9 22.9 0 0 0-.1 1c0 .3 0 .5.3.6l.7.2h2.9c.4-.2.6-.5.7-1l.1-.3a2.6 2.6 0 0 1 .4-.2l.4-.1v.6l-.3.8a6.4 6.4 0 0 0 1.7.4c0-.1 0-.3-.2-.5 0-.3-.2-.4-.2-.5a.4.4 0 0 1 .1-.2l.3-.2.8-.7.3.7c0 .2.1.5 0 .8l-.1 2.4m-9-7-1.5 1-1.1-.6-1.1.8-1.5-.9 1.4-1 1.2.7 1.1-.9zm-2.4 6.4-5.8-1 .7-1.6 4.8.8a1.3 1.3 0 0 0 0-.8 4 4 0 0 0-.5-.6l1.3-1.3c.3.4.5.8.5 1.2 0 .4 0 1-.4 1.7zm-4.9-.8-1.2-.3c-.7-.1-1.1-.4-1.2-.9-.1-.5.1-1.2.7-2.2l1-1.7.2-.9-.3-.6 1.8-1.2.2 1.1c0 .4-.2.9-.6 1.4l-.6 1.2a4 4 0 0 0-.7 1.7c0 .3.1.5.4.5l1.2.3zm-3-6.3-2 .9-1.4-1.4 2-.8zm-.9 5.3a4 4 0 0 1-1.2 1.1c-.4.3-.9.4-1.4.5a7 7 0 0 1-1.9 0 11.8 11.8 0 0 1-2.2-.6 6 6 0 0 1-2.7-1.6c-.5-.6-.5-1.2 0-1.8a5.6 5.6 0 0 1 1.5-1.3 18.8 18.8 0 0 1 3-1.2l.4.4c-1 .4-1.8.7-2.2 1a3.3 3.3 0 0 0-1 .7c-.3.4-.3.8.1 1.3a8.4 8.4 0 0 0 5 1.8c1 0 1.6-.3 1.9-.6l.4-.7.1-1.4 2-1.2-.1 1.2c-.1.4-.4.8-.8 1.3z"/>
</svg>

After

Width:  |  Height:  |  Size: 20 KiB

View File

@@ -0,0 +1,14 @@
<svg xmlns="http://www.w3.org/2000/svg" id="flag-icons-ag" viewBox="0 0 512 512">
<defs>
<clipPath id="ag-a">
<path fill="#25ff01" d="M109 47.6h464.8v464.9H109z"/>
</clipPath>
</defs>
<g fill-rule="evenodd" clip-path="url(#ag-a)" transform="translate(-120 -52.4)scale(1.1014)">
<path fill="#fff" d="M0 47.6h693V512H0z"/>
<path fill="#000001" d="M109 47.6h464.8v186.1H109z"/>
<path fill="#0072c6" d="M128.3 232.1h435.8v103.5H128.3z"/>
<path fill="#ce1126" d="M692.5 49.2v463.3H347zm-691.3 0v463.3h345.7z"/>
<path fill="#fcd116" d="m508.8 232.2-69.3-17.6 59-44.4-72.5 10.3 37.3-63-64.1 37.2 11.3-73.5-43.4 58-17.6-67.3-19.6 69.3-43.4-59 12.4 75.6-64.1-39.3 37.2 63-70.3-11.3 57.9 43.4-72.4 18.6z"/>
</g>
</svg>

After

Width:  |  Height:  |  Size: 751 B

View File

@@ -0,0 +1,29 @@
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" id="flag-icons-ai" viewBox="0 0 512 512">
<defs>
<path id="ai-b" fill="#f90" d="M271 87c1.5 3.6 6.5 7.6 7.8 9.6-1.7 2-2 1.8-1.8 5.4 3-3.1 3-3.5 5-3 4.2 4.2.8 13.3-2.8 15.3-3.4 2.1-2.8 0-8 2.6 2.3 2 5.1-.3 7.4.3 1.2 1.5-.6 4.1.4 6.7 2-.2 1.8-4.3 2.2-5.8 1.5-5.4 10.4-9.1 10.8-14.1 1.9-.9 3.7-.3 6 1-1.1-4.6-4.9-4.6-5.9-6-2.4-3.7-4.5-7.8-9.6-9-3.8-.7-3.5.3-6-1.4-1.6-1.2-6.3-3.4-5.5-1.6"/>
</defs>
<clipPath id="ai-a">
<path d="M0 0v128h298.7v128H256zm256 0H128v298.7H0V256z"/>
</clipPath>
<path fill="#012169" d="M0 0h512v512H0z"/>
<path stroke="#fff" stroke-width="50" d="m0 0 256 256m0-256L0 256"/>
<path stroke="#c8102e" stroke-width="30" d="m0 0 256 256m0-256L0 256" clip-path="url(#ai-a)"/>
<path stroke="#fff" stroke-width="75" d="M128 0v298.7M0 128h298.7"/>
<path stroke="#c8102e" stroke-width="50" d="M128 0v298.7M0 128h298.7"/>
<path fill="#012169" d="M0 256h256V0h85.3v341.3H0z"/>
<path fill="#fff" d="M323.6 224.1c0 90.4 9.8 121.5 29.4 142.5a179.4 179.4 0 0 0 35 30 179.7 179.7 0 0 0 35-30c19.5-21 29.3-52.1 29.3-142.5-14.2 6.5-22.3 9.7-34 9.5a78.4 78.4 0 0 1-30.3-9.5 78.4 78.4 0 0 1-30.3 9.5c-11.7.2-19.8-3-34-9.5z"/>
<g transform="matrix(1.96 0 0 2.002 -141.1 95.2)">
<use xlink:href="#ai-b"/>
<circle cx="281.3" cy="91.1" r=".8" fill="#fff" fill-rule="evenodd"/>
</g>
<g transform="matrix(-.916 -1.77 1.733 -.935 463.1 861.4)">
<use xlink:href="#ai-b"/>
<circle cx="281.3" cy="91.1" r=".8" fill="#fff" fill-rule="evenodd"/>
</g>
<g transform="matrix(-1.01 1.716 -1.68 -1.031 825 -71)">
<use xlink:href="#ai-b"/>
<circle cx="281.3" cy="91.1" r=".8" fill="#fff" fill-rule="evenodd"/>
</g>
<path fill="#9cf" d="M339.8 347.4a78 78 0 0 0 13.2 19.2 179.4 179.4 0 0 0 35 30 180 180 0 0 0 35-30 78 78 0 0 0 13.2-19.2z"/>
<path fill="#fdc301" d="M321 220.5c0 94.2 10.1 126.6 30.5 148.5a187 187 0 0 0 36.5 31 186.3 186.3 0 0 0 36.4-31.1C444.8 347 455 314.7 455 220.5c-14.8 6.8-23.3 10.1-35.5 10-11-.3-22.6-5.7-31.5-10-9 4.3-20.6 9.7-31.5 10-12.3.1-20.7-3.2-35.6-10zm4 5c13.9 6.5 21.9 9.6 33.4 9.4a76.4 76.4 0 0 0 29.6-9.4c8.4 4 19.3 9.2 29.6 9.4 11.5.2 19.4-3 33.4-9.4 0 89-9.6 119.6-28.8 140.2a176 176 0 0 1-34.2 29.4 175.6 175.6 0 0 1-34.3-29.4c-19.2-20.6-28.7-51.3-28.7-140.2"/>
</svg>

After

Width:  |  Height:  |  Size: 2.3 KiB

View File

@@ -0,0 +1,5 @@
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" id="flag-icons-al" viewBox="0 0 512 512">
<path fill="red" d="M0 0h512v512H0z"/>
<path id="al-a" fill="#000001" d="M204.9 99.5c-5 0-13.2 1.6-13 5.4-14-2.3-15.4 3.4-14.6 8.5 1.4-2 3-3.1 4.2-3.3 1.9-.3 3.8.3 5.8 1.5a23 23 0 0 1 5 4.4c-4.8 1.1-8.6.4-12.4-.3a17.6 17.6 0 0 1-6.1-2.5c-1.6-1.1-2.1-2.1-4.6-4.7-2.9-3-6-2.1-5 2.5 2.2 4.3 6 6.3 10.7 7 2.2.4 5.6 1.2 9.4 1.2 3.8 0 8.1-.5 10.5 0-1.4.8-3 2.4-6.2 3-3.2.6-8-2-11-2.6.4 2.5 3.5 4.8 9.7 6 10.2 2.2 18.7 4 24.3 7 5.6 3 9.1 6.8 11.6 9.8 5 6 5.3 10.5 5.6 11.5 1 9.5-2.2 14.8-8.4 16.4-3 .8-8.5-.7-10.5-3-2-2.4-4-6.4-3.4-12.7.5-2.5 3.4-9 1-10.3a291.6 291.6 0 0 0-34.4-16c-2.7-1.1-5 2.5-5.8 4A53.5 53.5 0 0 1 129 107c-4.6-8.1-12.1 0-10.9 7.7 2.1 8.6 8.6 14.8 16.5 19.2 8 4.5 18.1 8.8 28.3 8.6 5.5 1 5.5 8.2-1.1 9.5-13 0-23.2-.2-32.9-9.6-7.4-6.7-11.5 1.3-9.4 5.8 3.6 14 23.6 18 43.8 13.4 7.8-1.3 3.1 7 .9 7.2-8.4 6-23.5 12-36.8-.1-6.1-4.7-10.2-.7-8 6 6 17.5 28.5 13.8 44 5.2 4-2.2 7.6 3 2.7 6.9-19.2 13.4-28.9 13.6-37.6 8.4-10.8-4.3-11.8 7.8-5.3 11.8 7.2 4.4 25.4 1 38.9-7.4 5.7-4.2 6 2.4 2.3 5-15.9 13.8-22.2 17.5-38.8 15.2-8.2-.6-8 9.5-1.6 13.5 8.8 5.4 26.1-3.6 39.5-14.7 5.6-3 6.6 2 3.8 7.8a57.4 57.4 0 0 1-23.3 19.2 29.1 29.1 0 0 1-19.5.7c-6.2-2.2-7 4.2-3.6 10 2 3.5 10.6 4.7 19.7 1.4 9.2-3.2 19-10.8 25.7-19.8 6-5.1 5.2 1.8 2.5 6.7-13.5 21.3-25.9 29.2-42.1 27.9-7.3-1.2-8.9 4.4-4.3 9.6 8 6.7 18.2 6.4 27-.2a751 751 0 0 0 30.8-32.6c5.5-4.4 7.3 0 5.7 9-1.5 5.1-5.2 10.5-15.3 14.5-7 4-1.8 9.4 3.4 9.5 2.9 0 8.7-3.3 13-8.3 5.9-6.5 6.2-11 9.5-21.1 3-5 8.4-2.7 8.4 2.5-2.6 10.2-4.8 12-10 16.2-5.1 4.7 3.4 6.3 6.3 4.4 8.3-5.6 11.3-12.8 14.1-19.4 2-4.8 7.8-2.5 5.1 5.3-6.4 18.5-17 25.8-35.5 29.6-1.9.3-3 1.4-2.4 3.6l7.5 7.5c-11.5 3.3-20.8 5.2-32.2 8.5L142 300.6c-1.5-3.4-2.2-8.7-10.4-5-5.7-2.6-8.2-1.6-11.4 1 4.5.1 6.5 1.3 8.3 3.4 2.3 6 7.6 6.6 13 5 3.5 2.9 5.4 5.2 9 8.2l-17.8-.6c-6.3-6.7-11.3-6.3-15.8-1-3.5.5-5 .5-7.3 4.7 3.7-1.5 6-2 7.7-.3 6.6 3.9 11 3 14.3 0l18.7 1.1c-2.3 2-5.6 3.1-8 5.2-9.7-2.8-14.7 1-16.4 8.8a18.2 18.2 0 0 0-1.4 10c1-3.2 2.5-5.9 5.3-7.6 8.6 2.2 11.8-1.3 12.3-6.5 4.2-3.4 10.5-4.1 14.6-7.6 4.9 1.6 7.2 2.6 12.1 4.1 1.7 5.3 5.7 7.4 12 6 7.7.3 6.3 3.4 7 5.9 2-3.6 2-7-2.8-10.3-1.7-4.6-5.5-6.7-10.4-4-4.7-1.3-5.9-3.2-10.5-4.6 11.7-3.7 20-4.5 31.8-8.3 3 2.8 5.2 4.8 8.2 7.2 1.6 1 3 1.2 4 0 7.3-10.6 10.6-20 17.4-27 2.6-2.9 6-6.8 9.6-7.8 1.8-.4 4-.2 5.5 1.4 1.4 1.6 2.6 4.4 2 8.7-.6 6.2-2 8.2-3.8 11.8-1.7 3.7-3.9 6-6 8.8-4.4 5.7-10.1 9-13.5 11.2-6.8 4.4-9.7 2.5-15 2.2-6.7.8-8.5 4.1-3 8.7a21 21 0 0 0 13.7 2.3c3.3-.6 7-4.8 9.8-7 3-3.6 8.1.6 4.7 4.7-6.3 7.5-12.6 12.4-20.3 12.3-8.2 1-6.7 5.7-1.3 7.9 9.8 4 18.6-3.5 23-8.5 3.5-3.7 6-3.9 5.3 2-3.4 10.5-8.1 14.6-15.7 15.1-6.2-.5-6.3 4.2-1.7 7.5 10.3 7 17.7-5 21.2-12.4 2.5-6.6 6.3-3.5 6.7 2 0 7.3-3.2 13.2-12 20.7 6.7 10.7 14.5 21.7 21.3 32.5l20.5-228.2-20.5-36c-2.1-2-9.3-10.5-11.2-11.7-.7-.7-1.1-1.2-.1-1.6 1-.4 3.2-.8 4.8-1-4.4-4.4-8-5.8-16.3-8.2 2-.8 4-.3 9.9-.6a32.3 32.3 0 0 0-14.4-11c4.5-3 5.3-3.3 9.8-7-7.7-.6-14.3-2-20.8-4a41 41 0 0 0-12.8-3.7m.7 9c4 0 6.6 1.4 6.6 3 0 1.7-2.5 3.1-6.6 3.1-4 0-6.6-1.5-6.6-3.2 0-1.7 2.6-3 6.6-3z"/>
<use xlink:href="#al-a" width="100%" height="100%" transform="matrix(-1 0 0 1 512 0)"/>
</svg>

After

Width:  |  Height:  |  Size: 3.2 KiB

View File

@@ -0,0 +1,5 @@
<svg xmlns="http://www.w3.org/2000/svg" id="flag-icons-am" viewBox="0 0 512 512">
<path fill="#d90012" d="M0 0h512v170.7H0z"/>
<path fill="#0033a0" d="M0 170.7h512v170.6H0z"/>
<path fill="#f2a800" d="M0 341.3h512V512H0z"/>
</svg>

After

Width:  |  Height:  |  Size: 236 B

View File

@@ -0,0 +1,13 @@
<svg xmlns="http://www.w3.org/2000/svg" id="flag-icons-ao" viewBox="0 0 512 512">
<g fill-rule="evenodd" stroke-width="1pt">
<path fill="red" d="M0 0h512v259.8H0z"/>
<path fill="#000001" d="M0 252.2h512V512H0z"/>
</g>
<path fill="#ffec00" fill-rule="evenodd" d="M228.7 148.2c165.2 43.3 59 255.6-71.3 167.2l-8.8 13.6c76.7 54.6 152.6 10.6 174-46.4 22.2-58.8-7.6-141.5-92.6-150z"/>
<path fill="#ffec00" fill-rule="evenodd" d="m170 330.8 21.7 10.1-10.2 21.8-21.7-10.2zm149-99.5h24v24h-24zm-11.7-38.9 22.3-8.6 8.7 22.3-22.3 8.7zm-26-29.1 17.1-16.9 16.9 17-17 16.9zm-26.2-39.8 22.4 8.4-8.5 22.4-22.4-8.4zM316 270l22.3 8.9-9 22.2-22.2-8.9zm-69.9 70 22-9.3 9.5 22-22 9.4zm-39.5 2.8h24v24h-24zm41.3-116-20.3-15-20.3 14.6 8-23-20.3-15h24.5l8.5-22.6 7.8 22.7 24.7-.3-19.6 15.3z"/>
<path fill="#fe0" fill-rule="evenodd" d="M336 346.4c-1.2.4-6.2 12.4-9.7 18.2l3.7 1c13.6 4.8 20.4 9.2 26.2 17.5a7.9 7.9 0 0 0 10.2.7s2.8-1 6.4-5c3-4.5 2.2-8-1.4-11.1-11-8-22.9-14-35.4-21.3"/>
<path fill="#000001" fill-rule="evenodd" d="M365.3 372.8a4.3 4.3 0 1 1-8.7 0 4.3 4.3 0 0 1 8.6 0zm-21.4-13.6a4.3 4.3 0 1 1-8.7 0 4.3 4.3 0 0 1 8.7 0m10.9 7a4.3 4.3 0 1 1-8.7 0 4.3 4.3 0 0 1 8.7 0"/>
<path fill="#fe0" fill-rule="evenodd" d="M324.5 363.7c-42.6-24.3-87.3-50.5-130-74.8-18.7-11.7-19.6-33.4-7-49.9 1.2-2.3 2.8-1.8 3.4-.5 1.5 8 6 16.3 11.4 21.5A5288 5288 0 0 1 334 345.6c-3.4 5.8-6 12.3-9.5 18z"/>
<path fill="#ffec00" fill-rule="evenodd" d="m297.2 305.5 17.8 16-16 17.8-17.8-16z"/>
<path fill="none" stroke="#000" stroke-width="3" d="m331.5 348.8-125-75.5m109.6 58.1L274 304.1m18.2 42.7L249.3 322"/>
</svg>

After

Width:  |  Height:  |  Size: 1.6 KiB

View File

@@ -0,0 +1,5 @@
<svg xmlns="http://www.w3.org/2000/svg" id="flag-icons-aq" viewBox="0 0 512 512">
<path fill="#3a7dce" d="M0 0h512v512H0z"/>
<path fill="#fff" d="M107.7 240.9c-3.5-7.9-3.5-7.9-3.5-15.7-1.8 0-2.1.4-3.1 0-1-.3-1.4 7.3-4.7 5.8-.5-.7 2.4-6.2-.8-8.4-1-.8.3-5.3-.2-7.2 0 0-4 2.3-7-5.9-1.4-2.1-3.4 2-3.4 2s.9 2.5-.7 3c-2.3-1.8-3.9-.8-6.7-3.3-2.9-2.5.6-5.4-4.8-7.6 3.5-9.8 3.5-7.8 12.2-11.8-5.2-3.9-5.2-3.9-8.7-9.8-5.3-2-7-3.9-12.2-7.8-7-9.8-10.5-29.4-10.5-43.2 4.4-4.6 10.5 15.7 19.2 21.6l12.2 5.9c7 4 8.7 7.8 14 11.8l15.6 5.9c7 5.8 10.5 13.7 15.7 15.6 5.7 0 6.8-3.6 8.6-3.9 10.2-.5 15.5-2 17.5-5.5 2-2.8 7 1.6 21-4.3l-1.8-7.8s3.8-3.5 8.8-2c-.2-3.6-.5-13.1 4.4-17.5-3-3.5-1-6-1-6s2.8-3 3.2-4.6c-1.5-8.7 1.2-8.8 1.9-11.3.6-2.6-2.4-1.7-1.6-5.2.9-3.5 6-4.4 6.6-7.3.7-2.8-1.5-4.3-1.3-5 1-2.7.1-9.2 0-11.7 9.3-2.9 12.4-11.4 15.7-7.9 1.7-11.8 3.5-15.7 14-15.7 1.4-3.6-3.9-6.7-1.8-7.8 3.5-.5 6.1-.3 10.2 5.7 1.3 1.9 1.5-2.8 2.8-3.3 1.4-.5 4.5-.5 5-2.8.4-2.4 1.1-5.5 2.9-9.4 1.5-3.2 2.6 1.2 4 7.4 7.3.3 23.9 2.2 30.9 4.3 5.2 1.6 8.7-1.5 13.7-2.1 3.7 4.2 7.2 1 9.1 10 2.8 4.7 7.3.3 8.3 1.8 5.9 18 26 5.8 27.4 6.1 2.6 0 5.7 8.1 7.7 8 3.3-.7 2.4-3.2 5.2-2.2-.7 6.8 5.7 14.7 5.7 19.7 0 0 1.5.9 3-.6 1.4-1.5 2.7-5.4 4-5.3 3 .5 4.3 1 7.8 1.6 9.4 3.7 14.3 4.5 18 6.3 1.6 3.6 3.3 5.4 6.8 4.7 2.8 2.2.7 5 2.4 5.2 3.5-2 4.7-4.1 8.1-2.2 3.5 2 7 6 8.8 9.8 0 2-1.8 9.8 0 21.6.8 4 1.3 7 5 13.8-1 6.9 4.7 18.5 4.7 21.5 0 3.9-2.8 6-4.5 9.8 7 6 0 15.7-3.5 21.6 26.2 5.9 14 17.7 34.9 11.8-5.3 13.7-3.4 12.6 1.8 26.3-10.4 7.9-.2 10.3-7.2 20-.4.7 4.2 8.6 10.6 8.6-1.7 15.7-7 9.8-5.2 33.3-13.8-.3-8.2 17.6-17.5 15.7.6 11.3 5.3 12.2 3.5 23.6-7 2-7 2-10.4 7.8l-5.3-2c-1.7 9.9-5.2 11.8 0 21.6 0 0-6.7.3-8.7 0-.1 3.4 3 4.3 3.5 7.9-.3 1.4-10 7.6-17.4 7.8-2 4.9 5.2 10 4.8 12.5-8.2 1.7-11.8 13-11.8 13s4.2 2 3.5 4c-2.3-1.9-3.5-2-7-2-1.7.5-6-.1-10 7.6-4.5 1.7-6.6 1-10 6.1-1.5-4.8-3.7 0-6.3 2-2.7 1.8-6.2 6.4-6.7 6.2.1-1.3 1.6-6.2 1.6-6.2l-8.7 2h-1c-.8.1-.6-5.7-2.2-5.5-1.7.3-6.4 7.3-8 7.6-1.6.2-2.1-2.3-3.5-2-1.4.1-4.1 7.4-5 7.6-1 .2-5-4.4-8.3-3.8-17.2 6.8-19.9-13.4-22.6-2-3.6-2.1-3-.9-6.6.2-2.3.7-2.5-3.5-4.6-3.4-4.2.1-4 4.5-6.2 3.2-1.8-9.2-13-7.5-14.1-11.5-.9-4 4.8-4 6.7-6.8 1.4-4-1.5-5.5 4.3-9.4 7.4-5.7 3.1-7.8 4.4-12.1 2.4-6.2 2.4-7.7.4-13.2 0 0-5.8-17.6-7-17.6-3.4-1.1-3.4 6.5-8.5 8.6-10.5 3.9-29-10-32.2-10-3 .1-16.5 3.7-16-4-2 7.5-9.6 1.8-10 1.8-7 0-4.3 6-9 5.8-2.1-.8-23.6-2.2-23.6-2.2v4l-14-8-12.2-3.9c-10.4-3.9-5.2-13.7-22.6-7.8v-11.8h-8.7c3.4-23.5 0-11.7-1.8-33.3l-7 2c-7-10.7 9.7-8.6-5.2-15.8 0 0 .3-11.7-3.5-7.8-.7.5 1.8 5.9 1.8 5.9-14-2-17.5-5.9-17.5-21.6 0 0 11.5 1.9 10.5 0-1.6-3-3.8-22-3.4-23.3-.2-2.6 10.7-9.1 8.6-15.3 1.3-.6 5.3-.6 5.3-.6"/>
<path fill="none" stroke="#fff" stroke-linejoin="round" stroke-width="2.5" d="M595.5 297.6c-.6 1.3-.5 2.6.1 3.6 1.1-1.7.2-2.4 0-3.6zm-476-149.4s-3-.4-2.4 2.3c1-2 2.3-2.2 2.4-2.3zm-.3-6.4c-1.7 0-3.8-.2-3 2.5 1-2.1 3-2.4 3-2.5zm12.7 36.3s2.6-.2 2 2.5c-1-2-2-2.4-2-2.5z" transform="matrix(.86021 0 0 .96774 -50 10)"/>
</svg>

After

Width:  |  Height:  |  Size: 2.9 KiB

View File

@@ -0,0 +1,32 @@
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" id="flag-icons-ar" viewBox="0 0 512 512">
<path fill="#74acdf" d="M0 0h512v512H0z"/>
<path fill="#fff" d="M0 170.7h512v170.7H0z"/>
<g id="ar-c" transform="translate(-153.6)scale(1.024)">
<path id="ar-a" fill="#f6b40e" stroke="#85340a" stroke-width="1.1" d="m396.8 251.3 28.5 62s.5 1.2 1.3.9c.8-.4.3-1.6.3-1.6l-23.7-64m-.7 24.2c-.4 9.4 5.4 14.6 4.7 23-.8 8.5 3.8 13.2 5 16.5 1 3.3-1.2 5.2-.3 5.7 1 .5 3-2.1 2.4-6.8-.7-4.6-4.2-6-3.4-16.3.8-10.3-4.2-12.7-3-22"/>
<use xlink:href="#ar-a" width="100%" height="100%" transform="rotate(22.5 400 250)"/>
<use xlink:href="#ar-a" width="100%" height="100%" transform="rotate(45 400 250)"/>
<use xlink:href="#ar-a" width="100%" height="100%" transform="rotate(67.5 400 250)"/>
<path id="ar-b" fill="#85340a" d="M404.3 274.4c.5 9 5.6 13 4.6 21.3 2.2-6.5-3.1-11.6-2.8-21.2m-7.7-23.8 19.5 42.6-16.3-43.9"/>
<use xlink:href="#ar-b" width="100%" height="100%" transform="rotate(22.5 400 250)"/>
<use xlink:href="#ar-b" width="100%" height="100%" transform="rotate(45 400 250)"/>
<use xlink:href="#ar-b" width="100%" height="100%" transform="rotate(67.5 400 250)"/>
</g>
<use xlink:href="#ar-c" width="100%" height="100%" transform="rotate(90 256 256)"/>
<use xlink:href="#ar-c" width="100%" height="100%" transform="rotate(180 256 256)"/>
<use xlink:href="#ar-c" width="100%" height="100%" transform="rotate(-90 256 256)"/>
<circle cx="256" cy="256" r="28.4" fill="#f6b40e" stroke="#85340a" stroke-width="1.5"/>
<path id="ar-h" fill="#843511" stroke-width="1" d="M265.7 250c-2 0-3.8.8-4.9 2.5 2.2 2 7 2.2 10.3-.2a7.5 7.5 0 0 0-5.4-2.4zm0 .4c1.9 0 3.6.8 3.9 1.7-2.2 2.4-5.7 2.2-7.9.4 1-1.5 2.5-2.1 4-2.1"/>
<use xlink:href="#ar-d" width="100%" height="100%" transform="matrix(-1 0 0 1 512.3 0)"/>
<use xlink:href="#ar-e" width="100%" height="100%" transform="matrix(-1 0 0 1 512.3 0)"/>
<use xlink:href="#ar-f" width="100%" height="100%" transform="translate(19.3)"/>
<use xlink:href="#ar-g" width="100%" height="100%" transform="matrix(-1 0 0 1 512.3 0)"/>
<path fill="#85340a" d="M251.6 260a2 2 0 1 0 2 3c.8.6 1.8.6 2.4.6h.3c.5 0 1.6 0 2.3-.6.4.5 1 .8 1.6.8a2 2 0 0 0 .4-3.9c.5.2.9.7.9 1.3a1.3 1.3 0 0 1-2.7 0 3 3 0 0 1-2.7 1.8 3.3 3.3 0 0 1-2.7-1.8c0 .7-.6 1.3-1.3 1.3a1.3 1.3 0 0 1-.4-2.6zm2.2 5.8c-2.2 0-3 2-5 3.3 1-.5 2-1.3 3.5-2.2 1.5-.9 2.8.2 3.7.2.9 0 2.2-1.1 3.7-.2 1.5.9 2.4 1.7 3.5 2.2-2-1.4-2.8-3.3-5-3.3a6 6 0 0 0-2.2.6c-1-.4-1.8-.6-2.2-.6"/>
<path fill="#85340a" d="M253 268.3c-.8 0-2 .3-3.6.8 4-1 4.8.4 6.6.4 1.7 0 2.6-1.3 6.6-.4-4.4-1.4-5.3-.5-6.6-.5-.9 0-1.5-.3-3-.3"/>
<path fill="#85340a" d="M249.6 269h-.8c4.6.5 2.4 3.1 7.2 3.1 4.8 0 2.6-2.6 7.2-3-4.8-.5-3.3 2.4-7.2 2.4-3.7 0-2.6-2.5-6.4-2.5"/>
<path fill="#85340a" d="M260 276.1a4 4 0 0 0-8 0 4 4 0 0 1 8 0"/>
<path id="ar-e" fill="#85340a" stroke-width="1" d="M238.3 249.9c5-4.4 11.4-5 14.9-1.8a8.6 8.6 0 0 1 1.6 3.7c.5 2.5-.3 5.2-2.3 8 .3 0 .7.1 1 .4 1.7-3.4 2.3-6.8 1.7-10l-.7-2.5c-4.8-4-11.4-4.4-16.2 2.2"/>
<path id="ar-d" fill="#85340a" stroke-width="1" d="M246.2 248.6c2.8 0 3.5.6 4.8 1.7 1.3 1.1 2 .9 2.2 1.1.2.2 0 .9-.4.7-.5-.3-1.4-.7-2.7-1.8-1.3-1-2.6-1-4-1-3.8 0-6 3.2-6.5 3-.4-.2 2.2-3.7 6.6-3.7"/>
<use xlink:href="#ar-h" width="100%" height="100%" transform="translate(-19.6)"/>
<circle id="ar-f" cx="246.3" cy="252.1" r="2" fill="#85340a" stroke-width="1"/>
<path id="ar-g" fill="#85340a" stroke-width="1" d="M241 253.4c3.7 2.8 7.4 2.6 9.6 1.3 2.2-1.3 2.2-1.8 1.7-1.8-.4 0-.9.5-2.6 1.4-1.8.8-4.4.8-8.8-1z"/>
</svg>

After

Width:  |  Height:  |  Size: 3.5 KiB

View File

@@ -0,0 +1,109 @@
<svg xmlns="http://www.w3.org/2000/svg" xml:space="preserve" version="1.0" id="flag-icons-arab" viewBox="0 0 512 512">
<path fill="#006233" d="M0 0v512h512V0Z" class="arab-fil0 arab-str0"/>
<g fill="#fff" fill-rule="evenodd" stroke="#fff">
<path stroke-width=".4" d="M1071.9 2779.7c-25.9 38.9-7.2 64.2 19.5 66 17.6 1.3 54.2-24.9 54.1-55.7l-10-5.6c5.6 15.8-.2 20.8-12.1 31.6-23.5 21.3-71.5 22.8-51.5-36.3z" transform="matrix(.38779 0 0 .35285 -224 -715.6)"/>
<path d="M1277.2 2881.7c145.8 4.1 192.2-137 102.2-257.8l-8.9 13.3c5.8 56.3 14.2 111.8 15 169.5-17.6 20.7-43.2 13-48.3-10 .3-31.2-9.9-57.6-22.8-82.8l-7.2 13.3c8.4 20.7 17.5 44 19.4 69.5-41.6 49.9-87.6 60-70.5-5.6-32.9 57.5 16.9 98 73.3 9.5 12.1 60.4 58.9 22.9 61.7 9.9 5.1-39.6 2.5-103.4-7.8-153.8 40.6 70.3 42 121 20.4 154.9-24 37.7-76.2 55.3-126.5 70.1z" transform="matrix(.38779 0 0 .35285 -224 -715.6)"/>
<path d="M1359.9 2722.2c-31.2 2.3-47.2-4.1-30.3-27.2 16.7-22.6 32.3-4.6 36.5 25.6 3.9 28.3-54.8 64.4-75.1 64.4-30.7 0-44.9-39.5-16.6-75-36.4 103.6 78.6 43.5 85.5 12.2zm-21.6-24c-3.8-.2-6.6 6.5-4.7 7.8 5.5 3.8 14.2 1.5 15.1-.4 1.9-4.2-5.1-7.2-10.4-7.4z" transform="matrix(.38779 0 0 .35285 -224 -715.6)"/>
<path d="M1190.5 2771.1c-30 59-.1 83.4 38.4 76.6 22.4-4.1 50.8-20 67.2-41.7.3-47.8-.4-95.2-4.6-141.5 15-17.9-1.3-17.8-7-37-2.6 11.2-8.9 23.3-2.8 32 4.3 46.7 6.7 94 6.6 142.2-30.2 24.3-52.9 33.3-69.1 33.1-33.5-.3-40.7-28.5-28.7-63.7z" transform="matrix(.38779 0 0 .35285 -224 -715.6)"/>
<path d="M1251.8 2786.7c-.5-44.5-1.2-95-5.2-126.1 15.6-17.3-.8-17.7-5.9-37.1-3 11-9.6 23-3.8 31.9 2.6 47.6 5.1 95.2 5.6 142.8 3.6-2.3 7.7-3.2 9.3-11.5z" transform="matrix(.38779 0 0 .35285 -224 -715.6)"/>
<path stroke-width=".4" d="M1135.4 2784.6c-3.8-4.8-6.5-10.2-9.6-14.9-.5-6.7 4-12.9 4.6-16.3 5.1 7.9 8.1 13.9 12.2 17.8m5.4 3.1c7.5 3 16.7 3 25.2 3.2 32.8.6 67.3-4.8 63.6 39.6a66.2 66.2 0 0 1-65.2 61.9c-41.7-.4-77.3-46.4-13-131.1 6.2-1 14.3.7 21 1.3 11.5.9 23.3-.2 36.8-11-1.6-27.9-1.6-54.3-5-79.5-5.8-8.9.8-20.8 3.8-31.9 5.1 19.4 21.4 19.8 5.9 37.2 3.7 28 4.1 56.5 4.1 73.5-7.8 11.9-13.9 24.5-36.7 29.3-23.3-3.4-33.8-36-58.1-25.2 6.7-29.4 68.4-36.1 74.6-12.9-4.1 24.2-61.7 14.5-77 92.7-4.7 24.1 20.7 46.3 46.8 44.5 25.5-1.7 52.7-19.4 55.4-49.2 2.1-24.9-33-22-47.7-21.7-21.4.5-34.9-2.8-43-7.5m21.9-53.9c3.8-3.6 17.1-6.1 21.9-.3-3.6 2.4-7.1 5-10 8.1-5-2.6-8.3-5.2-11.9-7.8z" transform="matrix(.38779 0 0 .35285 -224 -715.6)"/>
<path d="M1194 2650.9a49 49 0 0 1 5.3 21c-2.2 10.4-11.1 20.1-20.3 20.4-5.7.2-12.1-1.4-16.6-10.3-.5-1.1-2.9-3.7-5.2-2.5-10.1 16.6-17.6 23.6-26.7 23.5-18.2-.3-12.8-16.5-29.6-21.5-7-.2-18.5 6.9-24.4 20.8-22.4 63.5-42.8-.2-34.1-29.8 1.3 28.3 8.1 45.1 15.1 44.6 5.1-.5 9.6-12.3 16.1-24.7 5-9.5 17-26.6 29.7-26.6 11.6.3 4.3 21.6 27.5 21.3 11.2-.2 21.5-8.8 31.9-26 2.3-.4 2.9 3.7 3.4 5.1 1.6 5.9 11.8 22.1 25.6 7.3-.7-3.2-.4-8.5-3.9-9.6z" transform="matrix(.38779 0 0 .35285 -224 -715.6)"/>
<path stroke-width=".4" d="M1266.9 2598.3c-12.3 6.1-21.3.5-26.4-4.9 8.9-1.8 15.8-5 17.8-12-4-9-13.5-12.9-26.9-13-17.9.5-27.1 7.7-28.2 17.6 8.3.3 15.8-2 19 6-14.7 7.2-32 9.8-50.8 9.7-30.8 1.6-35.3-12.3-43.4-24.5-.6-.8-3.3-2.1-4.7-1.9-9.5 0-16.5 33.2-27.2 33.1-10.7-1.4-8.3-21.4-11.4-32.8-2.6 17.9 3.3 84.5 36.4 12.2 1-2.4 2.4-1.7 3.3.3 8.9 20.2 27 27.2 46.5 28.2 16.3.9 37.1-6.2 59.4-18.8 5.9 6.5 10.6 13.9 23 15.3 14.5.7 30-9.8 33.5-22.8 1.8-6.7 2.1-19.9-5-20.1-9.9-.3-17.1 23.7-14.8 45.3.2-.3 1.3-5.4 1.3-5.4m-43.8-28.8c6.5-3 12.8-4.4 17.8 2.2a27.4 27.4 0 0 0-8.4 4c-2.8-2.2-6.6-3.3-9.4-6.2zm47.8 14.9c1.6-7.1 2.5-12.8 8.3-16.5 1.2 7.5 1.4 11.7-8.3 16.5zm39 11c-1.9-6.1-3.8-11.4-4.4-18-1.4-13.4 10.1-21 20.5-19.9 10.7 1.1 17.8 5.1 28 8.6 8 2.7 18.8 4.8 29.1 7.7 5.8 2.6 0 9.4-1.5 10.3-25.8 10.1-44.1 26.1-60.5 26.8-9.8.5-18.5-5.9-26.4-19-.5-25.4-1.4-55.2-3.9-73.9 3.8-3.8 4.6-6.6 6.4-9.7 2 24.7 2.8 50.7 3.3 76.9 2.1 4.5 4.7 8.3 9.4 10.2zm16.5 2c-13.8 3.9-12.1-7.8-13.4-15-1.5-8.4-.5-17.9 10.2-15.5 13.9 3.7 26.6 8.6 38.9 13.8z" transform="matrix(.38779 0 0 .35285 -224 -715.6)"/>
<path stroke-width=".4" d="m1314.3 2621.3 1.9 9.3h1.5l-.6-8.7" transform="matrix(.38779 0 0 .35285 -224 -715.6)"/>
<path stroke-linecap="round" stroke-linejoin="round" stroke-width="4" d="m1094.2 2718.5 7-7.2 8.1 6.9-7.5 6.7zm17.8-2.4 7.1-7.2 8.1 6.9-7.5 6.7zm-49.5-74.6 7.1-7.2 8.1 6.9-7.5 6.7zm3.2 21.2 7.1-7.2 8 6.9-7.5 6.7zm128.5 35.5 6.5-5.3 6 6.5-6.8 4.8zm-85.8-135.7 4.6-4.7 5.3 4.5-4.9 4.4zm11.7-1.5 4.6-4.8 5.3 4.6-4.9 4.3zm245.6 53.7-4.4 3.7-4.2-4.3 4.6-3.4z" transform="matrix(.38779 0 0 .35285 -224 -715.6)"/>
<path stroke-width=".4" d="m1158.7 2747.4-.5 7.9 12.6 1.2 10.1-7.6z" transform="matrix(.38779 0 0 .35285 -224 -715.6)"/>
<path d="m1265.2 2599.8 3.7-.8-.4 10.3-2.3.9z" transform="matrix(.38779 0 0 .35285 -224 -715.6)"/>
</g>
<path fill="#fff" d="M256 348c55 0 99.8-40.7 99.8-90.8a87.3 87.3 0 0 0-34.7-68.8 74.9 74.9 0 0 1 20.5 51.3c0 43.5-38.3 78.8-85.6 78.8s-85.6-35.3-85.6-78.8a74.8 74.8 0 0 1 20.6-51.3 87.3 87.3 0 0 0-34.8 68.8c0 50.1 44.8 90.9 99.8 90.9z" class="arab-fil2"/>
<g fill="#fff" stroke="#000" stroke-width="8">
<path d="M-54 1623c-88 44-198 32-291-28-4-2-6 1-2 12 10 29 18 52-12 95-13 19 2 22 24 20 112-11 222-36 275-57zm-2 52c-35 14-95 31-162 43-27 4-26 21 22 27 49 5 112-30 150-61z" class="arab-fil2 arab-str2" transform="matrix(.25022 0 0 .22768 256 29)"/>
<path d="M0 1579c12 0 34-5 56-8 41-7 11 56-56 56v21c68 0 139-74 124-107-21-48-79-7-124-7s-103-41-124 7c-15 33 56 107 124 107v-21c-67 0-97-63-56-56 22 3 44 8 56 8z" class="arab-fil2 arab-str2" transform="matrix(.25022 0 0 .22768 256 29)"/>
<path d="M54 1623c88 44 198 32 291-28 4-2 6 1 2 12-10 29-18 52 12 95 13 19-2 22-24 20-112-11-222-36-275-57zm2 52c35 14 94 31 162 43 27 4 26 21-22 27-49 5-112-30-150-61z" class="arab-fil2 arab-str2" transform="matrix(.25022 0 0 .22768 256 29)"/>
<path d="M3 1665c2 17 5 54 28 38 31-21 38-37 38-67 0-19-23-47-69-47s-69 28-69 47c0 30 7 46 38 67 23 16 25-21 28-38 1-6 6-4 6 0z" class="arab-fil2 arab-str2" transform="matrix(.25022 0 0 .22768 256 29)"/>
</g>
<g fill="#fff" stroke="#000" stroke-width="8">
<path d="M-29 384c-13-74-122-79-139-91-20-13-17 0-10 20 20 52 88 73 119 79 25 4 33 6 30-8z" class="arab-fil2 arab-str2" transform="matrix(.25022 0 0 .22768 256 29)"/>
<path d="M4 386c11-76-97-112-110-129-15-18-17-7-10 14 13 45 60 98 88 112 23 12 30 17 32 3z" class="arab-fil2 arab-str2" transform="matrix(.25022 0 0 .22768 256 29)"/>
<path d="M93 430c10-91-78-105-101-134-15-18-16-8-11 13 10 46 54 100 81 117 21 13 30 18 31 4z" class="arab-fil2 arab-str2" transform="matrix(.25022 0 0 .22768 256 29)"/>
<path d="M66 410c-91-59-155-26-181-29-25-3-33 13 10 37 53 29 127 25 156 14 30-12 21-18 15-22zm137 40c-28-98-93-82-112-94s-21-9-17 13c8 39 75 82 108 95 12 4 27 10 21-14z" class="arab-fil2 arab-str2" transform="matrix(.25022 0 0 .22768 256 29)"/>
<path d="M190 467c-78-63-139-16-163-23-18-5-10 7-3 12 50 35 112 54 160 32 19-8 20-10 6-21zm169 64c1-62-127-88-154-126-16-23-30-11-22 26 12 48 100 101 148 111 29 6 28-4 28-11z" class="arab-fil2 arab-str2" transform="matrix(.25022 0 0 .22768 256 29)"/>
<path d="M355 542c-81-73-149-49-174-56-25-6-35 9 4 39 48 36 122 43 153 36s23-14 17-19zm145 107c-23-106-96-128-114-148-17-20-35-14-20 34 18 57 77 107 108 119 30 13 28 3 26-5z" class="arab-fil2 arab-str2" transform="matrix(.25022 0 0 .22768 256 29)"/>
<path d="M499 663c-59-95-136-92-160-105-23-14-39-2-8 39 36 50 110 78 144 80s28-7 24-14z" class="arab-fil2 arab-str2" transform="matrix(.25022 0 0 .22768 256 29)"/>
<path d="M575 776c34-108-44-148-52-166-9-18-18-18-23 1-22 77 49 152 60 167 11 14 13 7 15-2z" class="arab-fil2 arab-str2" transform="matrix(.25022 0 0 .22768 256 29)"/>
<path d="M559 806c-27-121-98-114-114-131-17-17-19-5-16 17 8 59 79 99 111 119 10 6 22 13 19-5zm68 142c49-114-9-191-27-208-18-16-29-23-23 0 8 35-20 125 23 191 14 22 16 43 27 17z" class="arab-fil2 arab-str2" transform="matrix(.25022 0 0 .22768 256 29)"/>
<path d="M601 971c11-70-29-134-72-159-25-15-26-11-26 10 2 65 63 119 81 149 17 28 16 7 17 0z" class="arab-fil2 arab-str2" transform="matrix(.25022 0 0 .22768 256 29)"/>
<path d="M590 1153c-36-132 39-208 62-223 22-16 36-22 26 3-15 37 1 140-56 205-18 22-25 45-32 15z" class="arab-fil2 arab-str2" transform="matrix(.25022 0 0 .22768 256 29)"/>
<path d="M598 1124c30-115-35-180-55-193-19-13-31-18-22 3 12 32-1 122 49 178 16 19 22 38 28 12z" class="arab-fil2 arab-str2" transform="matrix(.25022 0 0 .22768 256 29)"/>
<path d="M561 1070c-54 58-55 143-31 193 15 29 17 27 31 6 38-61 15-149 17-188 1-37-11-17-17-11z" class="arab-fil2 arab-str2" transform="matrix(.25022 0 0 .22768 256 29)"/>
<path d="M650 1162c0 80-49 145-101 165-30 11-30 8-26-16 14-90 83-123 108-152 24-28 19-5 19 3z" class="arab-fil2 arab-str2" transform="matrix(.25022 0 0 .22768 256 29)"/>
<path d="M464 1400c88-80 41-136 45-188 2-28-9-21-19-11-56 55-59 153-47 191 5 17 13 15 21 8z" class="arab-fil2 arab-str2" transform="matrix(.25022 0 0 .22768 256 29)"/>
<path d="M582 1348c-29 88-106 142-171 145-38 2-37-1-24-27 49-94 136-105 175-129 36-22 23 2 20 11z" class="arab-fil2 arab-str2" transform="matrix(.25022 0 0 .22768 256 29)"/>
<path d="M343 1513c114-57 91-152 112-176 15-17-3-15-12-9-67 39-121 101-122 167 0 25 2 28 22 18z" class="arab-fil2 arab-str2" transform="matrix(.25022 0 0 .22768 256 29)"/>
<path d="M187 1619c144 23 211-86 253-96 22-5 6-14-5-15-96-11-218 34-255 84-15 20-15 24 7 27z" class="arab-fil2 arab-str2" transform="matrix(.25022 0 0 .22768 256 29)"/>
<path d="M333 1448c-29 95-137 173-218 179-38 3-38-1-24-26 65-118 178-138 218-168 34-26 27 6 24 15zM29 384c13-74 122-79 139-91 20-13 17 0 10 20-20 52-88 73-119 79-25 4-33 6-30-8z" class="arab-fil2 arab-str2" transform="matrix(.25022 0 0 .22768 256 29)"/>
<path d="M-4 386c-11-76 97-112 110-129 15-18 17-7 10 14-13 45-60 98-88 112-23 12-30 17-32 3z" class="arab-fil2 arab-str2" transform="matrix(.25022 0 0 .22768 256 29)"/>
<path d="M-93 430c-10-91 78-105 101-134 15-18 16-8 11 13-10 46-54 100-81 117-21 13-30 18-31 4z" class="arab-fil2 arab-str2" transform="matrix(.25022 0 0 .22768 256 29)"/>
<path d="M-66 410c91-59 155-26 181-29 25-3 33 13-10 37-53 29-127 25-156 14-30-12-21-18-15-22zm-137 40c28-98 93-82 112-94s21-9 17 13c-8 39-75 82-108 95-12 4-27 10-21-14z" class="arab-fil2 arab-str2" transform="matrix(.25022 0 0 .22768 256 29)"/>
<path d="M-190 467c78-63 139-16 163-23 18-5 10 7 3 12-50 35-112 54-160 32-19-8-20-10-6-21zm-169 64c-1-62 127-88 154-126 16-23 30-11 22 26-12 48-100 101-148 111-29 6-28-4-28-11z" class="arab-fil2 arab-str2" transform="matrix(.25022 0 0 .22768 256 29)"/>
<path d="M-355 542c81-73 149-49 174-56 25-6 35 9-4 39-48 36-122 43-153 36s-23-14-17-19zm-145 107c23-106 96-128 114-148 17-20 35-14 20 34-18 57-77 107-108 119-30 13-28 3-26-5z" class="arab-fil2 arab-str2" transform="matrix(.25022 0 0 .22768 256 29)"/>
<path d="M-499 663c59-95 136-92 160-105 23-14 39-2 8 39-36 50-110 78-144 80s-28-7-24-14z" class="arab-fil2 arab-str2" transform="matrix(.25022 0 0 .22768 256 29)"/>
<path d="M-575 776c-34-108 44-148 52-166 9-18 18-18 23 1 22 77-49 152-60 167-11 14-13 7-15-2z" class="arab-fil2 arab-str2" transform="matrix(.25022 0 0 .22768 256 29)"/>
<path d="M-559 806c27-121 98-114 114-131 17-17 19-5 16 17-8 59-79 99-111 119-10 6-22 13-19-5zm-68 142c-49-114 9-191 27-208 18-16 29-23 23 0-8 35 20 125-23 191-14 22-16 43-27 17z" class="arab-fil2 arab-str2" transform="matrix(.25022 0 0 .22768 256 29)"/>
<path d="M-601 971c-11-70 29-134 72-159 25-15 26-11 26 10-2 65-63 119-81 149-17 28-16 7-17 0z" class="arab-fil2 arab-str2" transform="matrix(.25022 0 0 .22768 256 29)"/>
<path d="M-590 1153c36-132-39-208-62-223-22-16-36-22-26 3 15 37-1 140 56 205 18 22 24 45 32 15z" class="arab-fil2 arab-str2" transform="matrix(.25022 0 0 .22768 256 29)"/>
<path d="M-598 1124c-30-115 35-180 55-193 19-13 31-18 22 3-12 32 1 122-49 178-16 19-22 38-28 12z" class="arab-fil2 arab-str2" transform="matrix(.25022 0 0 .22768 256 29)"/>
<path d="M-561 1070c54 58 55 143 31 193-15 29-17 27-31 6-38-61-15-149-17-188-1-37 11-17 17-11z" class="arab-fil2 arab-str2" transform="matrix(.25022 0 0 .22768 256 29)"/>
<path d="M-650 1162c0 80 49 145 101 165 30 11 30 8 26-16-14-90-83-123-108-152-24-28-19-5-19 3z" class="arab-fil2 arab-str2" transform="matrix(.25022 0 0 .22768 256 29)"/>
<path d="M-464 1400c-88-80-41-136-45-188-2-28 9-21 19-11 56 55 59 153 47 191-5 17-13 15-21 8z" class="arab-fil2 arab-str2" transform="matrix(.25022 0 0 .22768 256 29)"/>
<path d="M-582 1348c29 88 106 142 171 145 38 2 37-1 24-27-49-94-136-105-175-129-36-22-23 2-20 11z" class="arab-fil2 arab-str2" transform="matrix(.25022 0 0 .22768 256 29)"/>
<path d="M-343 1513c-114-57-91-152-112-176-15-17 3-15 12-9 67 39 121 101 122 167 0 25-2 28-22 18z" class="arab-fil2 arab-str2" transform="matrix(.25022 0 0 .22768 256 29)"/>
<path d="M-187 1619c-144 23-211-86-253-96-22-5-6-14 5-15 96-11 218 34 255 84 15 20 15 24-7 27z" class="arab-fil2 arab-str2" transform="matrix(.25022 0 0 .22768 256 29)"/>
<path d="M-333 1448c29 95 137 173 218 179 38 3 38-1 24-26-65-118-178-138-218-168-34-26-27 6-24 15z" class="arab-fil2 arab-str2" transform="matrix(.25022 0 0 .22768 256 29)"/>
</g>
<path fill="#006233" d="M298.3 137.4c-4.8-3.1-22.3-1.3-25.5-3.4 6.2 4.8 20.2 1.4 25.5 3.4m42.3 8.2c-3.8-6.1-26-10.2-29.3-15.7 5.8 10.5 23 9.1 29.3 15.7m-3.3 7c-8.2-7.2-27.5-4.2-33.2-8.6 13.5 11.2 21 2.5 33.2 8.7zM289 120.4c5.3 2.5 11.8 5 15 10.9-3.7-4.6-10.5-6.4-16-10.2.3 0 .8-.5 1-.7m82.1 46.9c-3.3-6.9-14.8-14.4-15.8-16.9 3.3 8.9 12.8 11 15.8 16.9m3 12c-10-14.3-25.8-12.7-32-18.2 4.7 5.3 22.8 8.7 32 18.2m23.3 22.1c.7-15.2-11.8-21-12.3-29.6-.2 10.3 12.8 24.2 12.3 29.6m-6.3 8.2c-2.5-13.2-19.5-14.1-22.5-21.8 0 7.2 20 14.8 22.5 21.8m14-7.5c9 10 2.8 25.3 6.5 36.4-4.5-8.2-2.2-28.6-6.5-36.4m-14.7 42.8c13.5 13.2 8 28 13.5 34.4-6.8-9-5.8-26.2-13.5-34.4m28 1.8c-11.5 11.6-4.5 29.1-10.5 37.4 6.7-7.1 5.7-28.8 10.5-37.4m-14.5 0c-1.5-13.4-15.3-20.5-16.5-27.8-1.5 7.3 13.2 18.7 16.5 27.8m-7 32.1c2.2 9.4-6 29.4-3.5 35.5-5.5-10.7 4.7-31 3.5-35.5m17.7 21.4c-5.5 16.6-16.5 15.5-20 25.5 2.5-9.5 17-18.2 20-25.5m-35.7 7.8c-7.3 11.1-1.3 23.9-7.3 31.8 8.5-8 4-22.7 7.3-31.8m17.5 30.5c-8.8 14.8-26.8 13.4-34 24.1 7.2-13.4 29.5-15.7 34-24.1m-31.8-1.9c-15.5 9.8-10.8 20-22.5 31 14.7-11 13.5-23 22.5-31m-7.3 39.7c-15-.5-36.5 17.3-49.5 15.9 13 2.5 37-13.4 49.5-16zm-24.2-16c-1 13.9-40 22.8-44.3 32.1 4.7-12.3 39-21.4 44.3-32zm-88.4-256c-5-4-11-7.1-12.7-11 1.2 5 6.2 8.7 11.2 12 .5-.2 1-.9 1.5-1m-8.5 4c-7.7-3.4-16.7-3.2-20.7-8 2.5 4.8 11 6.7 18.2 9.2.8-.5 1.8-1 2.6-1.2zm-22.5 29.2c4.8-3.2 22.3-1.4 25.5-3.4-6.2 4.7-20.2 1.3-25.5 3.4m-42.3 8.2c3.8-6.2 26-10.3 29.3-15.7-5.8 10.4-23 9-29.3 15.7m3.3 7c8.2-7.3 27.5-4.3 33.3-8.6-13.5 11.1-21 2.5-33.3 8.6m33.3-21.4c4.7-9 18.2-10.2 21.7-15.7-5.2 8.2-16.7 9.6-21.7 15.7m38.5-8c13.8-5.9 27.3-.9 33.8-3.6-8 3.9-27 2-33.8 3.7zm-105.6 44c3.3-6.8 14.8-14.4 15.8-16.9-3.3 9-12.8 11-15.8 16.9m-3 12c10-14.3 25.8-12.7 32-18.2-4.7 5.3-22.7 8.7-32 18.3zm-23.3 22.1c-.7-15.2 11.8-21 12.3-29.6.2 10.3-12.8 24.2-12.3 29.6m6.3 8.2c2.5-13.2 19.5-14 22.5-21.8 0 7.3-20 14.8-22.5 21.8m-14-7.5c-9 10-2.8 25.3-6.5 36.4 4.5-8.1 2.2-28.6 6.5-36.4m14.7 42.8c-13.5 13.2-8 28-13.5 34.4 6.8-8.9 5.8-26.2 13.5-34.4m-28 1.9c11.5 11.6 4.5 29 10.5 37.3-6.7-7-5.7-28.7-10.5-37.3m14.5 0c1.5-13.5 15.3-20.5 16.5-27.8 1.5 7.3-13.2 18.7-16.5 27.8m7 32c-2.2 9.4 6 29.4 3.5 35.6 5.5-10.7-4.7-31-3.5-35.5zm-17.7 21.4c5.5 16.7 16.5 15.5 20 25.5-2.5-9.5-17-18.2-20-25.4zm35.8 7.8c7.2 11.2 1.2 23.9 7.2 31.9-8.5-8-4-22.8-7.2-31.9m-17.6 30.5c8.8 14.8 26.8 13.4 34 24.1-7.2-13.4-29.5-15.7-34-24.1m31.8-1.8c15.5 9.8 10.8 20 22.5 31-14.7-11-13.5-23-22.5-31m7.3 39.6c15-.5 36.5 17.3 49.5 16-13 2.4-37-13.5-49.5-16m24.3-16c1 14 40 22.8 44.2 32.2-4.7-12.3-39-21.4-44.3-32.1zm56.7-236.5c3-12.3 18-14.6 20-21.9-.7 7.8-18.5 16.4-20 22zM280 93.3c-2.2 9.3-18.5 14.6-20.7 21.6.7-9.5 17.5-15 20.7-21.6m-12.7 22c7.7-11.3 23.7-8.3 29.3-15-4 7.8-23.8 8-29.3 15" class="arab-fil0"/>
<path fill="none" stroke="#f7c608" stroke-linecap="round" stroke-linejoin="round" stroke-width="1.9" d="M373.2 256c0 59.2-52.7 107.1-117.7 107.1s-117.6-47.9-117.6-107c0-59.2 52.6-107 117.6-107s117.7 47.8 117.7 107z"/>
<path fill="#f7c608" d="m232.4 363.2-.4 1.3c-.3.9-1.2 1.3-2.2 1.3-2.5-.7-5.6-1.3-8.5-2l2.7-8.3a90.2 90.2 0 0 0 8.5 1.8c1 .2 1.5 1 1.2 2l-.4 1m-20.2-5.1.4-1.3c.3-1 1.2-1.4 2.2-1.1 2.3.8 5.1 1.8 8.3 2.7l-2.7 8.3c-3-.8-5.8-1.6-8.3-2.5-1-.5-1.2-2.2-.9-3"/>
<path fill="#006233" d="m230.8 362.5-.3.9c-.2.6-1 1-1.8.9l-7-1.8 1.9-5.9a87 87 0 0 0 7 1.6c.9.2 1.3.8 1 1.5l-.2.7m-16.8-4.3.3-1c.2-.6 1-.9 1.8-.6l6.9 2.1-2 6a105.5 105.5 0 0 1-7-2c-.6-.4-.9-1.7-.7-2.3"/>
<path fill="#f7c608" d="m200.2 352.8-.8 1.2c-.5.7-1.5 1-2.5.6-2.1-1.2-5-2.6-7.5-4.1l5.1-7.3a85.7 85.7 0 0 0 7.6 4c.9.5 1.1 1.4.6 2.2l-.7 1m-17.8-10.2.8-1.2c.5-.7 1.6-1 2.4-.5 2 1.5 4.4 3.1 7.1 4.7l-5.1 7.3a97 97 0 0 1-7.2-4.5c-.8-.7-.4-2.4 0-3.1"/>
<path fill="#006233" d="m198.9 351.7-.6.8c-.4.6-1.2.7-2 .4l-6.2-3.5 3.7-5.2c2.2 1.4 4.6 2.5 6.3 3.4.7.4 1 1 .5 1.6l-.5.7m-14.8-8.5.6-.8c.4-.5 1.2-.6 2-.2a95.4 95.4 0 0 0 5.9 3.8l-3.7 5.2a68.3 68.3 0 0 1-6-3.7c-.6-.5-.5-1.8-.1-2.3"/>
<path fill="#f7c608" d="m172.6 334.6-1.2.9c-.7.6-1.8.5-2.6 0l-6-5.9 7.3-5.6c2 2.2 4.4 4.3 6 5.7.7.7.6 1.6-.1 2.2l-1 .8m-14-14.3 1.2-1a1.8 1.8 0 0 1 2.5.2 78 78 0 0 0 5.3 6.4l-7.1 5.6a98.8 98.8 0 0 1-5.6-6.1c-.4-.9.4-2.5 1.1-3"/>
<path fill="#006233" d="m171.6 333.2-.8.6c-.5.5-1.3.3-2-.1l-5-5 5.2-4a78.2 78.2 0 0 0 5 4.8c.6.6.6 1.3 0 1.8l-.6.5m-11.6-12 .8-.5c.6-.5 1.4-.4 2 .2a76.5 76.5 0 0 0 4.4 5.2l-5.1 4a67.8 67.8 0 0 1-4.6-5c-.5-.7 0-1.9.6-2.3"/>
<path fill="#f7c608" d="m151.7 310-1.4.6c-.9.4-2 0-2.5-.7-1-2-2.7-4.7-4-7.1l8.7-3.6c1.4 2.7 3 5.3 4.1 7 .4.9 0 1.8-.8 2.1l-1.2.5m-9-17.3 1.4-.6c1-.3 2 0 2.3.8a75.3 75.3 0 0 0 3.2 7.5l-8.6 3.6c-1.3-2.5-2.5-5-3.4-7.4-.2-1 1-2.2 2-2.6"/>
<path fill="#006233" d="m151.2 308.4-1 .4c-.6.3-1.4 0-1.9-.6l-3.2-6 6.2-2.6a72.3 72.3 0 0 0 3.4 6c.3.6 0 1.3-.6 1.6l-.8.4m-7.4-14.4 1-.4c.6-.3 1.4 0 1.7.7.7 1.8 1.6 4 2.7 6.2l-6.2 2.5a78 78 0 0 1-2.9-6c-.1-.8.7-1.8 1.4-2"/>
<path fill="#f7c608" d="m139.2 281.1-1.5.2a2.1 2.1 0 0 1-2.2-1.3l-1.5-7.9 9.4-1.2a68 68 0 0 0 1.7 7.8c.2 1-.4 1.7-1.4 1.8l-1.3.2m-3.2-18.9 1.5-.2c1-.1 1.8.4 2 1.4 0 2.2.2 5 .7 8l-9.4 1.1c-.4-2.7-.9-5.3-1-7.9.1-1 1.7-1.8 2.7-2"/>
<path fill="#006233" d="m139.2 279.5-1 .1c-.7.1-1.3-.4-1.6-1.1-.3-1.9-.9-4.3-1.2-6.6l6.7-.9a68.7 68.7 0 0 0 1.4 6.6c0 .7-.3 1.3-1 1.4l-1 .2m-2.6-15.8 1-.1c.8 0 1.4.4 1.5 1.2.1 1.8.3 4.1.7 6.5l-6.8 1c-.3-2.3-.7-4.6-.8-6.6 0-.8 1.2-1.5 2-1.6"/>
<path fill="#f7c608" d="m136.2 250.2-1.5-.2c-1-.1-1.6-1-1.7-1.9l1-7.9 9.4 1.3a69 69 0 0 0-.7 7.9c-.2.9-1 1.5-2 1.3l-1.3-.1m2.8-19 1.5.2c1 .2 1.6 1 1.4 1.8a73.3 73.3 0 0 0-1.7 7.9l-9.4-1.3a85 85 0 0 1 1.5-7.8c.4-1 2.2-1.4 3.2-1.2"/>
<path fill="#006233" d="m136.8 248.6-1.1-.2c-.7 0-1.2-.7-1.2-1.5l.9-6.5 6.7.8a69.3 69.3 0 0 0-.7 6.7c-.1.7-.7 1.2-1.4 1.1l-1-.1m2.4-15.8 1 .2c.8 0 1.2.7 1 1.4-.4 1.9-1 4.1-1.3 6.5l-6.7-.8c.3-2.3.7-4.5 1.2-6.6.3-.7 1.6-1 2.3-1"/>
<path fill="#f7c608" d="m142.9 219.7-1.3-.6c-1-.3-1.3-1.2-1.1-2.2 1-2 2.1-4.8 3.4-7.3l8.6 3.6a75 75 0 0 0-3.2 7.4c-.4.9-1.4 1.2-2.3.8l-1.1-.4m8.5-17.5 1.3.5c1 .4 1.3 1.3.9 2.1a77.3 77.3 0 0 0-4.1 7l-8.6-3.5a78 78 0 0 1 3.8-7.1c.7-.8 2.6-.8 3.5-.4"/>
<path fill="#006233" d="m144 218.4-1-.5c-.7-.2-1-1-.7-1.7l2.8-6 6.2 2.5a70.7 70.7 0 0 0-2.7 6.1c-.3.7-1 1-1.7.8l-.9-.4m7.1-14.5 1 .4c.7.3.9 1 .6 1.7a76.1 76.1 0 0 0-3.4 5.9l-6.2-2.6a82.2 82.2 0 0 1 3.2-6c.5-.6 2-.6 2.6-.4"/>
<path fill="#f7c608" d="m158.8 192.2-1.2-.9c-.7-.6-.8-1.6-.3-2.4 1.6-1.7 3.5-4.1 5.5-6.2l7.2 5.7a76.9 76.9 0 0 0-5.4 6.3 1.8 1.8 0 0 1-2.4.2l-1-.8m13.6-14.6 1.1 1c.8.5.9 1.5.2 2.2a83.6 83.6 0 0 0-6.1 5.7l-7.2-5.7 6-5.8c.8-.6 2.6 0 3.4.5"/>
<path fill="#006233" d="m160.2 191.1-.8-.6c-.6-.4-.6-1.2-.2-1.9l4.7-5 5.1 4a76.1 76.1 0 0 0-4.5 5.2c-.5.6-1.3.7-1.9.3l-.7-.6m11.3-12.1.9.6c.5.5.5 1.2 0 1.8a85 85 0 0 0-5 4.8l-5.2-4a58 58 0 0 1 4.9-5c.6-.5 2-.1 2.5.3"/>
<path fill="#f7c608" d="m182.5 169.9-.8-1.2c-.6-.8-.3-1.7.4-2.4l7.2-4.5 5.1 7.3a83.2 83.2 0 0 0-7 4.7 1.8 1.8 0 0 1-2.5-.5l-.7-1m17.6-10.5.8 1.2c.6.7.3 1.7-.5 2.2a83.6 83.6 0 0 0-7.7 3.9l-5.1-7.3c2.5-1.5 5-3 7.5-4.1 1-.3 2.6.7 3 1.4"/>
<path fill="#006233" d="m184.2 169.2-.6-.8c-.4-.6-.2-1.3.4-1.8 1.8-1 4-2.5 6-3.8l3.7 5.2-5.9 3.9c-.7.4-1.5.3-1.9-.2l-.5-.7m14.6-8.8.6.9c.4.5.2 1.2-.5 1.6a88.8 88.8 0 0 0-6.4 3.3l-3.6-5.2a96.5 96.5 0 0 1 6.2-3.4c.8-.3 2 .4 2.4 1"/>
<path fill="#f7c608" d="m212.2 154.5-.4-1.3c-.3-.9.2-1.7 1-2.2 2.5-.6 5.5-1.7 8.4-2.5l2.7 8.3a88 88 0 0 0-8.3 2.7c-1 .3-1.9-.2-2.1-1l-.4-1.1m20-5.7.5 1.3c.3 1-.2 1.8-1.2 2a94.8 94.8 0 0 0-8.5 1.8l-2.7-8.3c2.9-.7 5.8-1.5 8.5-2 1 0 2.2 1.3 2.5 2.2"/>
<path fill="#006233" d="m214 154.3-.3-1c-.2-.6.2-1.2 1-1.5 2-.6 4.5-1.4 7-2l1.9 5.9a86.6 86.6 0 0 0-7 2.2c-.8.1-1.5-.1-1.7-.8l-.2-.7m16.7-4.7.3 1c.2.6-.3 1.2-1 1.4a98 98 0 0 0-7.2 1.6l-1.9-6a107 107 0 0 1 7-1.7c1 0 1.9.9 2 1.5"/>
<path fill="#f7c608" d="M245.4 147.4v-1.3c0-1 .8-1.6 1.8-1.9l8.7-.2v8.7a89.5 89.5 0 0 0-8.7.4c-1 0-1.8-.7-1.8-1.6v-1.1m21-.3v1.4c0 1-.7 1.6-1.7 1.6a96 96 0 0 0-8.8-.4V144c3 0 6 0 8.8.2 1 .2 1.7 1.8 1.7 2.7"/>
<path fill="#006233" d="M247.2 147.7v-1c0-.6.6-1.1 1.5-1.3l7.3-.1v6.1a92 92 0 0 0-7.3.4c-.9 0-1.5-.5-1.5-1.2v-.8m17.5-.2v1c0 .7-.6 1.2-1.5 1.2a87.9 87.9 0 0 0-7.2-.4v-6.1l7.2.1c.9.2 1.5 1.3 1.5 2"/>
<path fill="#f7c608" d="m277.3 149 .4-1.4c.2-.8 1.2-1.3 2.2-1.3 2.4.6 5.6 1.2 8.5 2l-2.6 8.3a90.2 90.2 0 0 0-8.6-1.7c-1-.3-1.5-1.1-1.2-2l.4-1.1m20.3 5-.5 1.3c-.2.9-1.2 1.4-2.1 1.1a93.4 93.4 0 0 0-8.3-2.6l2.6-8.3a82 82 0 0 1 8.3 2.4c1 .4 1.2 2.2 1 3"/>
<path fill="#006233" d="m279 149.7.2-1c.2-.6 1-1 1.8-.9 2 .6 4.6 1 7 1.7l-1.8 6a89 89 0 0 0-7.1-1.6c-.8-.2-1.3-.8-1-1.4l.2-.8m16.8 4.2-.3 1c-.2.6-1 .9-1.7.7a92.3 92.3 0 0 0-7-2.2l2-6 6.9 2c.8.4 1 1.7.8 2.3"/>
<path fill="#f7c608" d="m309.5 159 .8-1c.6-.9 1.6-1 2.6-.8l7.5 4-5 7.4a86 86 0 0 0-7.7-3.8 1.6 1.6 0 0 1-.6-2.3l.7-1m18 10-.9 1.2a1.8 1.8 0 0 1-2.4.5 87.8 87.8 0 0 0-7.1-4.6l5-7.3c2.6 1.4 5.1 2.9 7.3 4.4.7.7.4 2.4-.1 3.2"/>
<path fill="#006233" d="m310.9 160.2.6-.8c.4-.6 1.2-.7 2-.4 1.7 1 4.1 2.1 6.2 3.4l-3.6 5.2a84.9 84.9 0 0 0-6.4-3.3c-.7-.4-1-1-.5-1.6l.5-.7m14.8 8.3-.5.8c-.4.6-1.2.7-2 .3a86.9 86.9 0 0 0-6-3.8l3.7-5.2c2.1 1.2 4.3 2.4 6 3.6.7.6.6 1.8.2 2.4"/>
<path fill="#f7c608" d="m337.4 177 1.1-.8c.8-.7 1.8-.6 2.7 0 1.6 1.7 4 3.7 6 5.8l-7.2 5.7a79.8 79.8 0 0 0-6.2-5.7c-.6-.7-.5-1.6.2-2.2l1-.8m14 14.2-1.1 1a1.8 1.8 0 0 1-2.5-.2c-1.4-1.9-3.3-4-5.4-6.3l7.2-5.7c2 2 3.9 4 5.5 6.1.5.8-.3 2.4-1 3"/>
<path fill="#006233" d="m338.3 178.5.8-.7c.6-.4 1.4-.3 2 .1 1.4 1.5 3.4 3.2 5 5l-5 4a78.5 78.5 0 0 0-5.2-4.8c-.5-.5-.5-1.3 0-1.7l.7-.6m11.7 11.9-.8.6c-.6.4-1.4.3-2-.2a80.2 80.2 0 0 0-4.5-5.2l5.1-4c1.7 1.6 3.3 3.3 4.7 5 .4.6-.1 1.8-.6 2.3"/>
<path fill="#f7c608" d="m358.5 201.5 1.4-.6c.9-.4 1.9 0 2.5.7 1 2 2.7 4.6 4 7l-8.7 3.7c-1.3-2.7-3-5.2-4.1-7-.4-.8 0-1.7.8-2.1l1.2-.5m9 17.2-1.3.6c-.9.4-1.9 0-2.3-.8a75.5 75.5 0 0 0-3.3-7.4l8.7-3.6a86.5 86.5 0 0 1 3.4 7.3c.2 1-1 2.2-2 2.6"/>
<path fill="#006233" d="m359 203 1-.4c.6-.2 1.4 0 1.9.7.9 1.7 2.2 3.9 3.2 6l-6.1 2.5a79.4 79.4 0 0 0-3.4-5.8c-.4-.7-.2-1.4.5-1.7l.8-.4m7.6 14.4-1 .4c-.7.3-1.4 0-1.8-.7-.7-1.8-1.6-4-2.7-6.2l6.1-2.6a86.3 86.3 0 0 1 3 6c.1.9-.7 1.8-1.4 2.1"/>
<path fill="#f7c608" d="m371.2 230.3 1.5-.2c1-.2 1.9.4 2.3 1.3l1.5 7.8-9.3 1.3a69.8 69.8 0 0 0-1.9-7.8c-.1-.9.5-1.7 1.5-1.8l1.2-.2m3.4 18.9-1.4.2c-1 .1-1.9-.4-2-1.3l-.8-8 9.3-1.3c.5 2.7 1 5.4 1.1 7.9 0 1-1.7 1.9-2.7 2"/>
<path fill="#006233" d="m371.2 232 1-.2c.8-.1 1.4.4 1.7 1.1l1.3 6.5-6.7 1a68.8 68.8 0 0 0-1.5-6.6c-.1-.7.3-1.3 1-1.4l1-.2m2.7 15.7-1 .2c-.7.1-1.4-.4-1.5-1.2a71.7 71.7 0 0 0-.7-6.5l6.7-1c.4 2.3.8 4.5 1 6.6-.1.8-1.3 1.5-2 1.6"/>
<path fill="#f7c608" d="m374.5 261.2 1.5.2c1 0 1.7.9 1.8 1.8-.4 2.3-.6 5.2-1 8l-9.4-1.2c.5-3 .7-6 .7-8 .1-.9 1-1.5 2-1.3l1.2.1m-2.5 19-1.5-.2c-1-.1-1.7-.9-1.5-1.8.5-2.2 1.2-4.9 1.6-7.8l9.5 1.1c-.4 2.7-.8 5.4-1.5 7.9-.3.9-2.2 1.3-3.2 1.2"/>
<path fill="#006233" d="m374 262.8 1 .1c.8 0 1.2.7 1.3 1.5l-.8 6.6-6.8-.8c.4-2.5.6-5 .7-6.6 0-.8.7-1.3 1.4-1.2h.9m-2.2 15.9-1-.1c-.8-.1-1.2-.8-1-1.5.4-1.9.9-4 1.3-6.6l6.7.9a82 82 0 0 1-1.2 6.5c-.2.8-1.6 1.2-2.3 1"/>
<path fill="#f7c608" d="m368.2 291.7 1.3.6c1 .3 1.3 1.2 1.1 2.2-1 2-2 4.8-3.3 7.3l-8.7-3.5a76 76 0 0 0 3.1-7.5c.4-.8 1.4-1.1 2.3-.8l1.2.5m-8.4 17.6-1.3-.6c-1-.4-1.3-1.3-1-2.1 1.3-2 2.8-4.4 4.1-7l8.7 3.4c-1.2 2.5-2.5 5-3.8 7.2-.6.8-2.5.7-3.5.3"/>
<path fill="#006233" d="m367.1 293 1 .5c.7.3.9 1 .7 1.7l-2.8 6.1-6.2-2.5a70.7 70.7 0 0 0 2.6-6.2c.4-.6 1.1-1 1.8-.7l.8.3m-7 14.6-1-.4c-.6-.2-.8-1-.5-1.7a76 76 0 0 0 3.3-5.9l6.2 2.5a86 86 0 0 1-3.1 6c-.5.7-1.9.7-2.5.5"/>
<path fill="#f7c608" d="m352.5 319.4 1.2.8c.8.6.8 1.6.4 2.4l-5.5 6.2-7.2-5.6c2-2.2 4-4.6 5.3-6.3.6-.7 1.6-.8 2.4-.2l1 .7m-13.5 14.7-1.1-.8c-.8-.6-.9-1.6-.2-2.3a77 77 0 0 0 6-5.8l7.3 5.6a94.1 94.1 0 0 1-5.9 6c-.8.5-2.6 0-3.4-.6"/>
<path fill="#006233" d="m351.1 320.4.9.6c.5.5.5 1.2.1 1.9l-4.6 5.1-5.2-4c1.8-1.8 3.4-3.8 4.5-5.2.5-.6 1.3-.7 1.9-.3l.7.5m-11.2 12.3-.8-.7c-.6-.4-.6-1.1 0-1.7a82 82 0 0 0 5-4.9l5.1 4a77 77 0 0 1-4.8 5c-.7.5-2 .2-2.6-.3"/>
<path fill="#f7c608" d="m329 341.9.8 1.1c.6.8.4 1.7-.3 2.4l-7.2 4.6-5.2-7.3a83 83 0 0 0 7-4.7 1.8 1.8 0 0 1 2.5.4l.6 1m-17.4 10.7-.8-1.2c-.6-.7-.4-1.7.5-2.2a89.9 89.9 0 0 0 7.6-4l5.2 7.3c-2.5 1.4-5 3-7.5 4.1-1 .4-2.5-.6-3-1.4"/>
<path fill="#006233" d="m327.3 342.5.6.9c.4.5.2 1.2-.4 1.8l-6 3.7-3.7-5.1a84.6 84.6 0 0 0 5.9-4c.7-.4 1.5-.3 1.9.3l.5.7m-14.6 8.8-.5-.8c-.4-.6-.2-1.3.5-1.7a88.6 88.6 0 0 0 6.3-3.3l3.7 5.1c-2 1.3-4.2 2.5-6.2 3.5-.8.3-2-.3-2.4-.9"/>
<path fill="#f7c608" d="m299.5 357.4.4 1.4c.3.8-.2 1.7-1 2.1l-8.4 2.6-2.7-8.3a80.4 80.4 0 0 0 8.2-2.7c1-.3 1.9.1 2.2 1l.3 1.1m-20 5.8-.4-1.3c-.3-.9.2-1.8 1.1-2 2.5-.4 5.5-1 8.6-1.9l2.7 8.3c-2.9.8-5.7 1.6-8.4 2-1 .1-2.3-1.2-2.6-2"/>
<path fill="#006233" d="m297.7 357.7.3.9c.2.6-.2 1.2-1 1.6-2 .6-4.5 1.4-7 2l-1.9-5.8a87.7 87.7 0 0 0 6.9-2.3c.8-.2 1.5.1 1.8.7l.2.8m-16.7 4.8-.3-1c-.2-.6.3-1.2 1-1.4a87.9 87.9 0 0 0 7.1-1.6l2 5.9a106 106 0 0 1-7 1.7c-.9.1-1.8-.8-2-1.4"/>
<path fill="#f7c608" d="M266.3 364.8v1.4c0 1-.7 1.6-1.7 1.8-2.5 0-5.7.3-8.8.3v-8.6a87.7 87.7 0 0 0 8.7-.5c1 0 1.8.6 1.8 1.5v1.2m-21 .4v-1.4c0-.9.7-1.6 1.7-1.6 2.5.2 5.5.4 8.7.4l.1 8.6a100.6 100.6 0 0 1-8.7-.1c-1-.2-1.8-1.8-1.8-2.7"/>
<path fill="#006233" d="M264.5 364.6v1c0 .6-.6 1-1.4 1.3l-7.3.2v-6.2c2.6 0 5.3-.2 7.2-.4.9 0 1.5.5 1.5 1.1v.8m-17.5.4v-1c0-.7.6-1.2 1.4-1.2 2.1.2 4.6.3 7.3.3l.1 6.2-7.3-.1c-.8-.2-1.5-1.3-1.5-2"/>
</svg>

After

Width:  |  Height:  |  Size: 26 KiB

View File

@@ -0,0 +1,73 @@
<svg xmlns="http://www.w3.org/2000/svg" id="flag-icons-as" viewBox="0 0 512 512">
<path fill="#006" d="M0 0h512v512H0Z"/>
<path fill="#bd1021" d="M0 256 512 0v512Z"/>
<path fill="#fff" d="m41.4 256 470-228.6v457.2"/>
<path d="M334.9 288.5c5.4.3 5.2 5.7 5.2 5.7l19.3.5c2.5-6.8 5-6 9.7-2.6a35 35 0 0 0 9.3 4.5c2-9.6 15.6-7.7 15.6-7.7 5.8-13.9 6.3-13.7 2.8-15.5a11.4 11.4 0 0 1-4.9-4.7 28 28 0 0 1-5.4-13.3c-.4-3.5-4.5 1.7-5.2.7-.7-1.2-6.8-.5-6.8-.5 1.5 1.6-3.6.6-3.6.6.5.5 0 2 0 2-.5-.7-4.4-1.4-4.4-1.4a6.5 6.5 0 0 1-1.2 1.7c-2.1-.8-6.3-.7-6.3-.7a21.4 21.4 0 0 0-11.7 3c-1.7 1-8 4-13 9-5.1 5-8 4.3-8 4.3-1.5 5.6-13.6 12.3-13.6 12.3-2 1.7-8.1 2.5-11.2 0-3.1-2.6 0-7.4 0-7.4 1.2-2 2.3-2 2.4-9.5.1-5 5.3-9.2 10.7-15 6.6-7.3 15.9-19.3 15.9-19.3 0 3.7 2 4.3 2 4.3 1.8-3.7 4.4-6.7 4.4-6.7.2.3.6.5.6.5 2-2.8 3.3-3.9 3.3-3.9-.7-.3-6.5 0-11.8 4.7-5.4 4.7-9 3.1-9 3.1-3.7-1.2-4-4-4-4-2.8-11.8 7.9-20 7.9-20-14.3-3.5-4-21.7 13.8-29.5 17.7-7.7 17.5-11.2 17.5-11.2a13.9 13.9 0 0 1 2 3.3c0-.1 1.4-2 11.7-6.6a76 76 0 0 0 15-8.5c1.4 2.6 1.2 4.4 1.2 4.4 28-9.8 55.5-32.4 55.5-32.4.8 1.9.4 4.8.4 4.8 4.6-4.3 21-14 21-14 .3 6.2-4.8 8.6-4.8 8.6a8.2 8.2 0 0 1 .8 2.5 384 384 0 0 0 15.4-10.2c4.6 4 .5 10.4.5 10.4 1.6-.2 2.7-1.6 2.7-1.6 1.3 6.8-6.3 12.8-6.3 12.8a10 10 0 0 0 3.6-1.4c-1.5 7.4-15.5 15.6-15.5 15.6 2 1.8.1 4.2-1.6 5.4-1.7 1-4.6 3.4-3.7 4.4.9 1 7.1-3.5 7.1-3.5 1 3.1-6.9 9.3-6.9 9.3 5.6.7 21-6.3 21-6.3-1.3 6-7 10.6-14.3 13.3-7.1 2.7-6.7 3.1-6.7 3.1 1.2 1 11-1.9 11-1.9-2.9 6.6-13.2 11.2-13.2 11.2 2.8 2.5 6.7-.4 10.6-3a62 62 0 0 1 15-6.9c5.7-2 9.8-.5 9.8-.5 5-1.5 9 .7 9 .7 9.2.7 10.2 4 10.2 4 1 .3 1.8.7 4.2 2.5 2.4 1.7 2.2 7.1 2.1 9.8 0 2.6-.8 2.6-1.3 3.3-.4.8-.5 1.6-.5 2.6s-2.4 7.4-16.7 7.4h-21.8c-1.2 0-2.6.7-2.6.7-6 3-2.8-2-10 3.8-7.2 6-10.9 5-10.9 5a96.2 96.2 0 0 1-13 11.2c-4.3 2.8-3.6 2.5.2 4.1s9.4 0 9.4 0c-3.6 2.5-1 3.6-1 3.6 4.6-3 7.6-1.9 7.6-1.9 1.5 4.2-4 10.8-4 10.8 2.1.2 6.1 0 6.1 0-1 2.8-4.9 5.9-7.8 6.8-3 1-2.5 1.4-1.6 3 .8 1.9.2 3.7.2 3.7-5.2-3.5-5.3-.4-5.3-.4-.6 4.1-.5 10.2-.5 10.2-3.6-1.8-3.8.6-3.8.6a23 23 0 0 1-5.4 8.1c-.1-2.3-2.3-3-2.3-3-2.3 4.5-6.6 7.2-6.6 7.2-.5 3.8.6 9.1.6 9.1-2.8-.5-3.8-.5-4.2.1-.4.7.6 1 .6 1l35.6.9c.5 0 2.6.3 2.6 4 .1 4-3 4.2-3 4.2l-39-1s.2 1.1-1.8 2.2-1.3-1.2-2 3.6c-.5 4.7-8.2-.4-8.2-.4-1.3 1.9-4.3 4.3-4.3 4.3-1.8-5.3-3.6-7-6.4-2.4-2.7 4.6 5.1 3.8 5.1 3.8l48.2-7c2.5-.2 5.1 0 6.3 3.4 1 3.5-5.6 4-5.6 4l-46.9 5.2c-1 2.7-4.9 2.6-4.9 2.6.4 2.6-2.4 4.3-3.8 5.2-1.5 1-6 .6-6 .6-5.4 3.7-8 .8-8 .8-3.6 1.5-5.8.8-8.7-.4-3-1.3-2.7-4.8-2.7-4.8l-29.6 3a7.2 7.2 0 0 0-2.3 1.5c1 1.3-2.2 4.4-2.2 4.4 1 .6 2.6 2.3 2.9 6 .2 4-4.8 4.6-2.3 7.4 2.4 2.7 7.1.4 12.3-2 5-2.5 10-2.2 12.2-2.2 2.2 0 8.3 1.6 12.1 3 3.8 1.2 5.1.4 5.4-1.5.2-2 2-2.5 2-2.5-.5 1.9.5 2.8.5 2.8 1.5 0 4-1.4 4-1.4-.2 1.5-2.1 2.4-2.1 2.4-3.7 2.4 1.4 1.5 1.4 1.5a50.3 50.3 0 0 1 16.5-1.6 130.7 130.7 0 0 1 15.2 5.6c.4-1.3.2-4.4.2-4.4a9 9 0 0 1 4.4 2.8c1.3-1.3.5-3.6.5-3.6 10.2 5.8-2.2 8.4-5.5 9.6-3.3 1-3.3 2.4-3.3 2.4 2.8-.8 4.7-1.2 7-1.4 2.2-.1 1.4 0 6.9-1 5.5-1.2 8.3 1.2 8.3 1.2-4.6.2-6 1.6-6 1.6 3 1.9.2 3.6.2 3.6-4.1-5.2-7.7.2-7.7.2a16.3 16.3 0 0 1 6.8 1.4c.9.6 3 1.7 5.7 3 3.8 1.6 3 .6 6 1.6 3 1.2 1.8 4 1.8 4a7.3 7.3 0 0 0-4-3.2c-.2 3.1-3.3 3.7-3.3 3.7 3.9-4.2-4.4-6.1-8.3-6-3.8 0-6.7 2.5-6.7 2.5 7.8 7.4 13.2 5 13.2 5-1 2.6-7.4 1.5-7.4 1.5 3 2.3 2.6 3.9 2.6 3.9-1.6-1.6-4.1-.8-9.8-4.4-5.5-3.6-10.5-2.4-10.5-2.4 5.5 5.7-2 9.2-2 9.2-2.8 1.7 1.2 3.7 1.2 3.7-3.5.7-4-2.8-4-2.8-1.8-.4-4.4 1.8-4.4 1.8.2-3.5 4.9-1.7 5-5.4.1-3.7-4.3-6.6-17.5-4.8-13.2 1.9-17-2.4-17-2.4-1.2 0-1.3 1.2-1.3 1.2 2 2.1 3 3 2.7 4.4-.4 1.5.7 2 .7 2-2.5-.2-2.6-3-2.6-3 0 1.2-.5 1.2-1.3 2.5s0 2.8 0 2.8c-1.1-.9-3-2-1.2-4.5 1.3-2-2.8-4.5-2.8-4.5-1.7-1.7-6-.1-6-.1-9 1.7-14.2-4-14.2-4-1 0-3-.5-3-.5-9.5 4.2-17.9-5-17.9-5-7.1 1.4-10.4-2-12.5-5.5a12.3 12.3 0 0 0-5.6-5.4c-2.8-1.6-5.5-6.6-2.8-9.2 2.2-2.3 1.6-2.8 1.6-2.8-3.8-6.3 6.5-8.2 6.8-9.8.2-2.1 2.4-3.5 4.7-3.7 2.4-.1 2.4 0 4-1.4 1.4-1.7 4.3.3 4.3.3.7-.4 5.8-4.4 10.3-2.4 4.6 2 8.4.7 8.4.7 3.2-.7 29.9-4.3 29.9-4.3 1.6-2.7 3-5.8 10.3-7.4s12.8-6.4 12.8-6.4c-1.3-1.4-3.5-1.3-4.6-1.4-1.1-.1-3.4-2.2-3.4-2.2-1.4.7-2 .4-11.7 6.3-8.7 5.2-9-5.2-9-5.2h-18.7c-.3 4-3.3 5.6-3.3 5.6l-7 .3c-3.7-2-3.7-8.8-3.7-8.8a65.2 65.2 0 0 0-32.2 7.7c-23.4-11.9-41.7-14.7-41.7-14.7 28.4-3 43.5-11 43.5-11a67.5 67.5 0 0 0 30.4 9.7c.5-5.7 4.4-7.1 4.4-7.1z"/>
<path fill="#ffc221" d="M301 335.7c-5.9 3.4-4.8 5.3-4.3 6.4.5 1 .6 2.1-1 3.8-1.7 1.6-1.5 2.2-1.5 2.2.3 5.7 4.3 7 6 8.4 1.5 1.1 3.9 4.9 3.9 4.9a9.3 9.3 0 0 0 8.7 4.4c2.4 0 2.2-.2 1-1.3l-3.6-3a18.8 18.8 0 0 1 6.2 4.5c6 6.6 11.6 5.7 14 5.4 2.5-.3 2.1-1.8 2.1-1.8-.1-.2-2.4-.4-2.4-.4-9.2-.8-11.9-6.8-11.9-6.8a25.7 25.7 0 0 0 16.7 6.4c2.6-.1 2.4.7 1.9.8-.6.1-1.3 0-2.6-.1-1.2 0-1.2.2-1 .8.4.4 1.5.5 3 .4 1.4 0 .2.2 4 3 3.8 3 13 .6 13 .6-6-1.5-6.8-4.3-6.8-4.3-8.2 1-11.5-3.9-11.5-3.9a34.7 34.7 0 0 0-5.9-3.7c-4.6-2-5.3-6.2-5.3-6.2 1.3 2 3.8 4 7 5 3.3.8 4.1 1.2 4.1 1.2a4 4 0 0 1-2.4-.2c-3.2-1-1.4.3-1.4.3 3.6 2.9 4.5 2.6 4.5 2.6 9.3 1 4.7-2.7 4.7-2.7 6.5 1.6 7.7-.9 7.7-.9 1.4 3 6.4 1.8 6.4 1.8-6.7 3.3-1.7 2.3-1.7 2.3 6.8-1.2 8.2.5 8.2.5 1.7 1.7 3.6 1.5 3.6 1.5s1.2 0 3.7.5c2.6.5 6.6 2.7 10.3 2.3 3.6-.5 4.3.6 4.3.6-.8-.2-2.4-.5-5.2.8-2.9 1.3-7.9 1.7-15.2 0s-7.8-1.4-7.8-1.4a10 10 0 0 1 3.6 4.3c.3 1.2 1.6 1.3 1.6 1.3.5-1.6 2.6-2.3 2.6-2.3 1.5 1.3 5.4 3 5.4 3 .4-.8 0-1.4 0-1.4 2.7 2.7 6 1.9 6 1.9.8-.6.6-2.2.6-2.2 1.1 0 1.3.7 2 1.3 1 .4 3.4.1 3.4.1-1-.4-1.7-1.8-1.7-1.8 3.8-2.5 11.7-1.5 11.7-1.5 5.7 1.1 5 4.9 5 4.9a11 11 0 0 1 2.8 2.3c.5-1.4 0-2.7 0-2.7 2.7 1.2 3.2 4.3 3.2 4.3 3-3.5-2.9-7.4-2.9-7.4 2.9-.4 6-.1 8 .1a14.7 14.7 0 0 1 7 3.3 19 19 0 0 0 6.2 2.7c0-.8-2.2-2.1-2.7-2.4-.5-.2-.7-1-.7-1 2 .4 3.3.2 3.3.2a47.2 47.2 0 0 1-8.7-6.2c2.6.3 4.1-1.3 4.1-1.3-5.5 0-5.7-1.3-5.7-1.3.7.1 3.2.8 6.5.1s7.8 0 7.8 0c-2.4-3.8-11.5-3.1-14.5-3-3 .2-4-.2-4-.2.4-.2 1-.7 3.2-.8 2.3 0 4.6.3 7.2-1.6 2.5-1.7 6.1-1.1 6.1-1.1-.8-1.8-5-2.4-8.6 0-3.6 2.2-7 1.6-7 1.6 5.8-.8 7.4-2.9 7.4-2.9-1.6-.5-2.6.1-6 .8-3.5.7-4.4-.5-4.4-.5 3.7-2.2 6.4-3.1 6.4-3.1-3.2-.8-6.2-2.2-6.2-2.2-3.3 3.2-6 5-12.4 1.7-6.4-3.5-9.8-3-9.8-3a15 15 0 0 1 15.7.6c4.2 2.5 5.5.5 5.5.5-1.4-.8-1.2-1.6-1.2-1.6 10.2 5.2 14.7 2 17 .5 2.2-1.6-1.1-3.6-1.1-3.6-.2 3.2-4.4 4.9-7.7 3.7-3.3-1.1-6.3-2.5-11-4.6-4.8-2-10.6-.9-16.2.3-5.6 1.1-6.2.6-6.8.2-.5-.5-.7-1.8-3.6-.7-2.8 1.2-9.4-1.9-13.5-2.9a25 25 0 0 0-16.5 2.7c-5.8 3.3-8.7 2.5-10.4 1.7-1.7-.8-2.9-3-1-5s2-2.4 1.9-5.2c-.2-2.8-3-4.5-3-4.5 2.6-2.6 3.2-3.3 2.3-4.4-.8-1.1.5-1.1 2-1.8 1.5-.6.8-.7.5-1.6-.4-.8-1.2-.6-1.2-.6-3.4.1-5.3-.9-5.3-.9-5.5-2.5-10.8 2.5-10.8 2.5-3.1-2.5-3.9-.8-4.5-.3-.4.6-1.6 1-3 1.2-1.4.1-3.5.6-4.1 2 0 0-.7 1 0 2 0 0 .9 1.4-.6 3-1.6 1.6-2.2 1.9-1.6 3.4.4 1.5.3 2.7-.4 3.6 0 0-.7-.8-.5-1.8.2-1 .2-1.7 0-2.2 0 0-1.6 1.5-1.8 2.6 0 0-.7-1.7 1.6-4 2.2-2.2 3.3-3.3 2.6-4.2-.5-.7-2.1.4-2.5.7z"/>
<path d="M307.5 360.6s-2.8-2.2-2.5-5.2c.3-3 .3-3.2 0-4 0 0-.6.3-.5 1.5l-.2 2.4s-1.5-2.4-2.2-2.9c0 0 .6-2.6-.2-3.7s-1.6-1.2-2.5-.8c-1.4.4-2.3 1.6 2 5.2 0 0 1.6 1.3 2.7 4 1.1 2.9 3 3.3 3.3 3.5zm14-8.3s-.3-1.6 1.3-4.6a6.5 6.5 0 0 0 .2-6c-.3-.8-.5-.5 1-1.8 2-1.6-.7-3.6 2.5-6.4 0 0 2-1.7 2.4-2.4 0 0-3.2 1.7-5.4 2.6-2.2.9-10.3 4.9-8.5 7.6 1.8 2.7 1.6 2.8 1.3 4 0 0-5-2.6-3.1-6.8 0 0 .7-1.6 2.7-3.6 2-1.7.9.4 4.6-1.8 0 0 3-1.8 4.6-4.1 0 0-2 1.2-2.7 1.4 0 0-4.4.8-6.2 2.6-1.7 2-5.5 5.1-4.3 8.7 0 0-4.3-.5-5.3-5 0 0-8.1 9.9 9 14.6 0 0 3 .9 5.9 1"/>
<path fill="#ffc221" d="M396.2 318.9c6.4-.9 43.2-6.5 46.6-6.9 3.6-.3 5-.8 6.2 2.2 1.4 3.2-5 3.3-5 3.3l-44 5c-2 .2-2.5-.6-2.5-.6l-1.7-2.2s-.5-.6.4-.8"/>
<path fill="#5a3719" d="M306.4 339s-4.8 9.9 13.9 12.3c0 0 0-1 .8-2.7.8-1.5 2.4-4.7.8-6.7-1.5-2 1.3-1 1.6-3.7.5-2.6-.2-2.3 1.1-4 0 0-5.8 2.1-8 4.7-2.3 2.6 3 4.5 0 7.4 0 0-2.8-1-4.3-3.9 0 0-3.6.1-6-3.5z"/>
<path d="M324.7 351.2s4.6 4 10 3.8c5.5-.2 7.9-1.6 9.3-3.8 0 0 1 1.6 1 2.7 0 0 4.8-3.9 13-.4s5.6 2.4 7.4 2.7c0 0-3.5-.6-11.4 3-8.2 3.7-29.6 2.4-29.4-8z"/>
<path fill="#5a3719" d="M317 333.5s2 .4 4-2c0 0-2.7.6-4 2m-15.7 18.6s-3.8-3-1.4-3.6c0 0 1.8-.4 1.4 3.6"/>
<path d="M385.1 371s2.2-3.7 8-3.7c6 0 6.6 2.8 14 3.3 0 0-8.9 2.5-15.1.3a8.9 8.9 0 0 0-6.9.1"/>
<path fill="#5a3719" d="M326.6 353.9s9 5.3 16.8-.5c0 0 .6.6 1.2 2 0 0 6-5.7 16.6.5 0 0-1.3-.2-6.3 2-6.5 2.8-22.9 4.7-28.3-4.1z"/>
<path d="M360.8 359.3s8.5 1 15.6.5c4.4-.2 9.2-1 6.9.4-2.5 1.5-1.3 1.7 8.9.8 10-1-.1 1.9 6.8 2.8 0 0-16.9 8.6-38.2-4.5"/>
<path fill="#5a3719" d="M383 353.9s5-1.8 9.7.3c4.5 2.2 3.8 2.4 6.9 2.7 0 0-2.1 3-7.2.6a31 31 0 0 0-9.4-3.6m5.6 15.2s4.9-2.4 10.3.1c.6.4 2 1 3.5 1.3 0 0-4.1 1.3-8.4 0a30 30 0 0 0-5.4-1.4m-24.2-8.7s11 1 16.8-.2c0 0-6.8 3.3 10.4 1.8 0 0 3.7-.4 3.3.2-.5.6-.8 1 1.1 1.6 0 0-12.7 5.8-31.6-3.4"/>
<path d="M310 351.2s.1.8 2.5 1.9c2.5 1 3.8 3 4.3 4a6 6 0 0 0 3.7 3.1s-8.6 1.8-12.3-2.7c0 0-3-3.1 1.7-6.3"/>
<path fill="#5a3719" d="M377.2 370.9s-3.3-.3-8-1.8c-4.6-1.7-5.8-.3-8.4-2.2-2.6-2-7.9-.8-8.8-.6-1 0-3.8 0-.4-2.3 0 0-2.7 0-3.8-1.5 0 0-1.2 1.3-6 .8 0 0 2.2 3.3-6.3 2.3a11 11 0 0 0 11.8 3.3s-.6 2.6 3.3 3.6c4 1 4.7 1.7 6.8 2.5 0 0 .2-1.6-5-5.4 0 0 2.8-.1 6.8.9s13.1 3.2 18 .4m2.1 3.9s.9 2 3.5 1.5c2.5-.5 6.7-1.2 10.8.9 0 0 .8-3.5-7.5-3.7 0 0-5.1.2-6.8 1.3m-69.6-22.4s-3.2 2.6-.3 5.3c2.6 2.5 6.7 2.3 8.7 2.2 0 0-1.3-.6-2.2-2.2-1.1-1.5-1.1-2.6-3.3-3.6-2.2-1-2.5-1.2-2.9-1.7m-3.2-13.5s-4.9 10 13.9 12.4c0 0 0-1 .8-2.7.6-1.5 2.3-4.7.8-6.7-1.6-2 1.2-1 1.6-3.7.4-2.6-.3-2.3 1-4 0 0-5.8 2.1-8 4.7-2.3 2.6 3 4.5 0 7.4 0 0-2.8-1-4.3-3.8 0 0-3.6 0-6-3.6z"/>
<path d="M355.4 362s4-.7 13.9 3c10 3.7 14.1 2.8 15.6 2.8 0 0-5.6 2.9-14.3-1-7.7-3.4-8.2-2-15.2-4.8"/>
<path fill="#ffc221" d="M417.8 359.8s2.2-.1 3.6.4c0 0 .8-.7 3-1 0 0-1.4-1.2-6.6.6m-6.8-5.6s2.2 0 3-1.2c0 0-1.3-1.4-3-2.2 0 0 .4 1.7 0 3.4m-76.5-25.4s-.5-1.2 2-1.5l33.3-4.8s1.6 0 1.9 1c.2 1.3-.2 2.1-7.7 3-7.5.8-27.3 3.3-27.3 3.3s-2 .4-2.2-1"/>
<path fill="#ffc221" d="M364.7 327.4s0 4.4 4.5 5c4.3.7 5.8-.2 7-2.5.3-.6 1.6-5.2-.3-5.5a7 7 0 0 0-3.1.3c-1.5.7-2.9 1.4-2.5 2.1 1.2 1.7 1.4 2 1 2.2-1.1.3-1.9-.7-2.1-1.4-.2-.8.6-1.3-2.3-.8-1.2.1-2.2.1-2.2.6"/>
<path fill="#ffc221" d="M383.3 324c2.2.3 2 5.1-.6 7.3-3 2.4-5.7 1.5-5.7 1.5-1.6-.6-1.3-.4-.2-2.1 1-1.7 1.6-3.9 1-5.4-.2-.5.3-1 1-1 0 0 2.2-.5 4.5-.3"/>
<path fill="#ffc221" d="M385.3 324.5s1.6 2-.4 5.8c0 0-1 1.1 1.1 1 2-.2 6.6-2.3 6-5.1 0 0 0-.7-1.3-.7-1.2.1-.2-.6.3-.8.5 0 2-.7-2-3.3 0 0-.6-.5-1.4-.3-.6.3-2.7 1-2.7 2.4 0 .5.4 1 .4 1"/>
<path fill="#ffc221" d="M389.6 321s3.3 2.3 3.2 3c0 .6-.3 1.6.6 1.4.8 0 4.2-.8 3.3-3-1-2.3-2-3-3.5-3.7-1.6-.5-2 .2-3.4 1.3 0 0-1 .6-.2 1m-17.1 3.2s.5-1.6-2.4-2.3c0 0 1.2-1 3.7-.5 2.3.5 2.1 2.2 2.1 2.3 0 0-1.9 0-3.4.5m6.2-.4s3.2-.6 4.7-.4c0 0-1.6-3.6-6-2.5 0 0 1.6 2 1.3 2.9m5.6-.8s0-1.2 2.8-2.3c0 0-1.3-1.3-3.3-1.1-2.1 0-2.6.8-2.6.8s2.5.9 3.1 2.5zm1-4s1.9.6 3 1.5c0 0 1.6-1.8 3-2.2 0 0-2.7-1.4-6 .8z"/>
<path fill="#5a3719" d="M294 310.3s7.7-6.5 12-5.7c4.3.8 2.2.3 6.8-.5 4.8-.7 9.6-1.2 11.6-1 0 0-5.8-4-15.9-4 0 0-7.1 2.5-12 5.8 0 0-9.6-5.3-19.4-2.2 0 0 10.7 4 17 7.6z"/>
<path fill="#ffc221" d="m375.6 321.6 1.3-.2s2.1 2.6.6 2.6c-1.3 0-.9-.3-1-1a2.5 2.5 0 0 0-1-1.4zm-9.7.2s-.8 1 .7.8c1.8-.3 1.5 0 3.3-1.3 0 0 1.3-1.3 3.5-.5 0 0 1.8.6 3.3-.1 1.6-.8 1.9-.7 2.7-.7.8.1.8.3 1.8-.5 1.2-.8 3-.2 4.2-1.2 1.2-1 2.7-.1 0-2 0 0-.6-.6-.5-1 0 0 1 .3 1.9 1 .8.7 2 .5 2.3.3 0 0 .2-2.4 2.5-4.6 2.4-2.2 2.4-2.3 1-2.3s-3.7-.6-4.5 0-7.7 5.1-11.8 5.9c-4 .8-7.7 2-10.4 6.2m-108-25s12.5 3.2 15.2 4.5c0 0 .7-2-5-3.6 0 0 13.8-.4 28.2 6.2 0 0 7-6 29.6-4.2 0 0 0-2 .2-3.5 0 0-15.8-.5-30.3-9.3 0 0-13.1 6.4-37.9 10zm69 6c-.7-12.7 4-13.9 4-13.9s2.4.1 4.8.5c0 0-3.8 4.6-2.8 13.7 0 0 .4 1.4-2.8 1.4S327 303 327 303z"/>
<path fill="#5a3719" d="M330.3 311.2s-2.4-2.4-2.6-5.2c0 0 0-.7 2.3-.7 2.4.1 2.7-.1 3.3 1.3.5 1.3 2 4.1 2.4 4.5z"/>
<path fill="#ffc221" d="M335.4 304.9a30.2 30.2 0 0 1-.3-4.9c.2-7 1.3-6.4 1.8-5.5h2.5s-1.8-8-4-3.3a20.3 20.3 0 0 0-1.6 11.2c.2 2.1.4 3.4.7 4.2z"/>
<path fill="#5a3719" d="M362.8 304.9s4.6.8-2.5 2.4c0 0 .3 8.7 8.7 2.6 0 0 5.1-3.2 8.5-4.5 0 0 1.8-.5 1.6-1.9 0 0 .2-1.6-1.6-1.2 0 0-1.5 0-2.5-.3 0 0-1-1.2-1.6-.8-.7.5-2.3.2-1 1.8 1.2 1.4 1.6 1 2.2.6.6-.4 3.3-1.4.8.8s-4.4-1.3-5.2-2zm-23.5 1h-2s-1.2 1.6-2-1l-.7 1.7s2.4 9.3 4.7-.7"/>
<path fill="#ffc221" d="M336.4 295.1s-1.1 6.2.3 9.8l22.5.5s-.3-4.3 0-10.3H356s-.5 5 0 8h-.6s-.4-4.2 0-8h-2.6s-.4 4.6-.1 8h-.5s-.4-4 0-8h-2.5s-.5 4.1 0 8h-.7s-.5-4.1 0-8h-2.9s-.6 3.9 0 8h-.5s-.7-3.9 0-8h-2.9s-.6 4.4 0 8h-.6s-.4-4.2.1-8h-2.7s-.7 3.7 0 8h-.7s-.4-3.2.2-8zm23.7 11.1s-.5-11 1.5-13.8c2.1-2.8 2.6-2.3 6.2 0s8.2 4.8 9 5c.7.3 1.8.6 1.8 2.6s.3 2.6-2.8 0c-.4-.3-1.9-1.6-3-2-2.7-.8.7.6 1.7 2.1.8 1.2 1.6 1-.6 1.6a233.6 233.6 0 0 0-13.8 4.5"/>
<path d="M368 298.3s-1.7-2 .5-2.4c2-.5 2.2 3.2 2.6 5.4.3 2.3-2.6-2.2-3-2.9zm-3 9.7s-2.4.9-.8 1.6c1.6.8 6-2.9 4.5-2.6-1.6.2-3.7 1-3.7 1m3.3-3.4s2.1-.2 1.6.7c-.3 1-1.1.4-1.4.1-.4-.1-1.8-.7-.2-.8"/>
<path fill="#ffc221" d="M379.7 301.7s.5 4.2 4.1 5.3c0 0 2.2.5 1.7-1.3l-.6-2.2c-.3-.7-1.8-1.1-2-1.2-.1 0-.3-.5.7-.1 1 .3 1.1.4 1-.4 0-.7-.6-.4-1.5-.8-.3-.2 0-.5.4-.4.4 0 1.3.4 1.3-1 0 0 .2-.9-.9-.9-1.2 0-1.1-.6-.8-.7.4 0 1.6.8 2-.7.4-1.4-1.7-.5-1.4-1.3.3-.8 1.8.4 1.8-.5.2-.8 1.4-1.2-.7-1.5-.9-.1 0-.6 1-.4 1.2.1 1.9-1.2 2.5-1.7.8-.5 4.5-2.7-.6-2-5 .7-6.5 3.2-6.7 3.7a13.9 13.9 0 0 0-1.3 8.1"/>
<path fill="#ffc221" d="M391.4 305c.7-.1 1.3 0 1.5.4.8 1.7-1 1.2-2.1 2.4s-1.2 1-2.6.6c-1.5-.5-2-2.7-2-2.7-.2-.8.4-.8 1.1-.7 0 0 2.5.3 4.1 0m-5.4-.9s0 .4 1 .5c.7 0 3.2.3 4.8-.2 0 0 .4 0 .2-1 0 0 0-.7-1.3-.4-1.4.2-3.3 0-4-.1-.6-.2-1 0-.7 1.1zm-.2-3s0 1.2 1.2 1.4h3.7c.6 0 1.5-.3 1.6-1 0-.9.3-1.4-1.4-1s-3.6.1-3.8 0c-.2 0-1.3-.3-1.3.5zm.6-2.8s-.4.7-.3 1.2c0 .6 1 .9 2.7.9 1.7 0 3.3-.3 3.4-.9.1-.6.5-1.3-.8-1a12 12 0 0 1-3.8 0c-.7-.3-1.2-.4-1.2-.2"/>
<path fill="#5a3719" d="M450.2 305.1s0 1.1.9 2.4l-48.2-1.4s.6-.4.8-2.3z"/>
<path fill="#ffc221" d="M386.8 296.4s-.4 1.2.4 1.4c.8.3 2.3.5 4.3.2 0 0 1 0 1.3-1 .4-1 .3-.5-2.4-1 0 0-.9-.3 1.6-.3 0 0 1.5 0 1.6-.2.3-.2 2.2-1.8-.3-1.6-2.4 0-1.2-.5 0-.5 1.3 0 1.6.3 2 0s0-.2-.6-.9-.2-.5.3 0c.5.3.8.4 1.3 0 .6-.6-.4-1.3 0-1.2.4 0 .7.9 2.2.2 1.7-.9 3.8-.5 4.4 0 .5.4 2.2 1 3.2 0s-1.2-2-.3-2c1-.2 1.6.2 2-.6.4-.8-1.5-1.4.3-2 1.7-.4.2-5.3-.3-5.7 0 0-2 1.1-4.1 4.5-2.2 3.5-3.5 5.6-6.4 4.5-4-1.6-6.3.7-7 1-1 .7 2.2 1 .3 1-1.8 0-1.8.2-2 .5-.1.2 0 .5.4.6.3 0 1 .6-.1.6-1.2 0-2-.2-1.6 1 0 0 0 .2.6.3.7 0 1 .8-.3.8-.8 0-.8.3-.8.4m4.4 12s-.8.6.3.7c1.2 0 1.8.3 2.2-.3s2-.4 1-1.3c-1.2-.9-1.9-.4-3.5 1z"/>
<path fill="#ffc221" d="M396.2 293.9s4-3.8 7.3-1.2l3.8 3s.4.3-.5 1.1c-1 .9 0 .9 1 .3 1-.5 1 0 1.5.6.5.5 1.2.8-.4.8H404s-2.2.2-1-.8c1-.9.8-2 .3-2-.6 0 0 .6-.4 1s-1.1.8-2 .8-1.4.6-.2 1c1.3.5-.1.8-.8.8s-3.7.2-.6.6c3.2.4-.3.3 2 1.6 2.7 1.5.8 4.6-.2 4.9 0 0-1 .6.3.4 1.4-.2 2.1-.3 1.1.4-.9.8-2.8 3.1-5.4 1.3 0 0-1.3-.5.9-.7 2.2 0-1.8-.6-2.5-1-.6-.4-3-3-1.5-2.7 1.6.3 1-.6 0-.9-.9-.3-1-1.7 0-1.5 1 .4 2.2 1 3.1.9.9 0 .6-.4-1.2-.9-1.8-.6-2.5-.7-2.1-2.2.4-1.5 2.4.6 2-.5-.5-1.2-2.3-.6-1.4-2s1.2-.9 1.6-.7c.4.1 1 0 0-.8-.9-.6 0-1.4.2-1.6"/>
<path d="M399 295s0-.5.8-.4c.7 0 .5-.3.7-.5.2 0 2 .6.3 1.2-.6.2-1.6 0-1.7-.3z"/>
<path fill="#ffc221" d="M403 299.2s-1.4.7-.2 2.1c1 1.3 1 1.7 1 2.5-.1.8 46.4 1.3 46.4 1.3s-.1-3 1.8-4.7z"/>
<path fill="#5a3719" d="M450.9 304.3s.2-2.6 1.6-3.4c.8-.5 1.8-.2 2.2 1.8.7 2.9-1.8 5.4-2.9 4.3-1-1-.8-2.7-.8-2.7z"/>
<path fill="#7b3c20" d="M397.6 315.1s3.1-2.7 3.6-3.8c0 0 8.4 6 7.9.5 0 0 0-1.5.2-2.9 0 0 3 .4 3.5-2l-7.8-.3s-.8-.2-2 1.1-3.7 2.7-6 1.5c0 0-1-.8-2-.1-1 .7-1 .8-.2 1.6s2.5 3.1 2.8 4.4m18-16.4-4.6-.1s-1.6-2.4-4.9-5c0 0-1-.4.8-1.9 2-1.5 2.5-3 2.5-3.8 0-.6 0-1.8.7-1 .6.9 5.3 5.2 6 4 .7-1.3.9-1.9.9-2.3.2-.4.3-1.6 1-.3.7 1.2 1.1.9 1.2 4 0 0 0 3.3.6 4.4 0 0-6-1.9-4.1 2zm-19.8-9.8s3.5 2 5.2-.6c1.6-2.6 2.8-3 1.5-5.7-1.3-2.4 0-3.6 1-4.7 1-1 1.9-.8 2-5 .1-4 3-5.3 4.2-6.6 1.3-1.2 4.4-3.1-.4-4-4.7-.7-14.3-3.2-16.7-6.9-2.5-3.7-3.6-1.5-3.6-1.4 0 .2-.8 2.9 1.6 7.8s4.5 8 7 9.6c2.3 1.7 4.4 2.5 3.2 5.8s-3.2 9.1-5 11.8z"/>
<path fill="#5a3719" d="M408.7 278.5s.5 8.5 6.7 11.5c0 0 1.4-3.3.8-6.6 0 0 2 .2 2.6 1.1 0 0 0-2.4-2.8-3.3-3-.9-1.5-6.4-.5-7 1-.6.7-1.8 0-2.8-.7-1-.8-2.4 1.6-1.8 2.4.6 2-.6.5-1.8-1.4-1.2-1.3-2.7.7-2.7s5.5-2 3.4-2.6c-2-.6-2.7-1.3 0-2 2.9-1 4.3-1.9 2.2-2.1-2.2-.3-3.6-1-1.5-1.3 2-.4-.3-2.5-2.7-2.6-2.5-.1-7.5.8-3.5-2.4s-5.7-.8-1.7-3c4-2-1.4-1.2-2.2-1.2-.7 0-.7 0-.4-1 .3-1.1-.5-1.7-1.8-1-1.1.7-1.1.7-1-.8 0-1.5-1.4-.4-2.3 0-1 .4-3.1 2-4.1 1.2-.8-1-1.3-1.9-4-.3-2.9 1.7-2.2.3-2.1-.5 0-.8 1-3.6-2.7-.5s-.8-3.3-3.7-1.2c-3 2.2-3.3 2.6-3.8 1.7-.4-1-1-1.8-4.3.3-3.3 2-.8-1.3-.4-2 .5-.8 1.9-5.5-1-1.8 0 0-1.4 2.6-4.5-2 0 0-3.2 4.6-4.1 2.5-.9-2-1.7-2.2-2.8-.9-1 1.3-.3 0-.7-1.2-.5-1-.8-3.1-6.3.8-5.4 4.1 2 1.2-2.2 3s-14.3 7.5-5.1 6.2c9.3-1.3-4.5 3.6-1.3 4.5 3.2.9 2.2 3.7 14.3.4 12-3.3 10-.5 16.2-3.2 6.2-2.6-1.4.9 6.8.8 8.3-.3 1.4 0 3 1.6 1.7 1.7 8.6 5.7 15 6.5 6.6.6 8.2-1.8 6.4 1-2 2.8-2.6 3.9-3.7 5-1 .8-4.2 3.1-4.3 7 0 3.9-5 4.5-3.2 8.9z"/>
<path fill="#5a3719" d="M419.4 288s-1.5-1.1-1.5-3c0 0 1 .2 1.5.8 0 0 3.7-4.2-.9-5.7-4.4-1.6-2.2-5.6-.6-5.6 1.5 0 1.8-.4.5-2.2-1.3-1.6-1.2-1.8 1.4-2.2 2.4-.4 2.2-1 1-1.6a8.2 8.2 0 0 1-2-1.6s7.2-3.1 4.9-4.6c-2.4-1.4 0-1 2-2.5 2.2-1.5 2.5-1.8 2.7-2.4 0 0-2 .2-3.6 0 0 0 1.8-1 0-2.5s-2.4-2.7-5.4-2c-2.8.6-1.8-.3-.8-1.5 1.2-1.2.7-1.9-1.4-2.2 0 0 .3-1.2 1.8-2.7 0 0-3.9.3-5.2-.4 0 0 1.6-1 1.6-2.4 0 0-2 .8-4.8.5 0 0 1.7-1.4 1.7-2.6 0 0-4.8 1-7 2.7 0 0-.4 0-.7-.6-.4-.4-.7-1-5.9.6 0 0 .6-2.3 1.9-3.3 1.2-.8 1-2.6-7 2.4 0 0-1.1-.6-2-3 0 0-1.8 2.4-3.1 3.2 0 0-1.2.5-1-1 .2-1.7-.8-.6-1.6 0-.8.3-1.4 1.5-1-1.7s-1.2-3.9-1.2-3.9-2.4 3.6-3.9 4c0 0-2.6-2.6-3.6-4.3-.9-1.6-.9-2.3-1.8.7-1 3-2 3.2-2 3.2s-1.7-1.4-1.9-2.2c0 0-.2.9-.8 1.2 0 0-1.4-1.7-1.3-4 0 0-8.7 4.8-9.8 7.7 0 0-8.2-.5-11.5.1 0 0 .8-2.6 3-4 0 0-2.2-.2-2.3-2.4 0 0 1.7.2 2.8 0 1-.3-1.5-3.4 1.2-3.5 2.7 0 4.4 1.3 3.3-2.3-1.3-3.6-.8-3.6-.8-3.6s4.8 2.8 5.5 2c.8-.6-.6-2 3.6-1.4 4.2.8 3-1.6 4.7-1.8 1.6 0 2.4 1 1.4-6.5s5.1 3.7 1-7.7c0 0-1-3.5-3.6-5 0 0-.6 2.5-3.3.4-2.9-2.3-8.4-3-6-4.8 2.3-1.8 3.4-4 2.7-5.5 0 0-2.8 2.8-7.5.8-3.8-1.7-4.6 1.3-8.4.5 0 0 0-1 3.2-3.6 3.3-2.6-1.8.8-3.8 1.3-2 .5-2.6 0 1.6-3.3 4.3-3.3 12.8-9 11.6-13.9 0 0 2 2.6 7.3.7 5.2-1.8 9.2-2.5 10.7-5.3 1.6-2.6 5.7-5.3 6.8-6 1.1-.6 2.5-1 .9 1.6-1.7 2.6-4.3 7-11.5 10-7.3 3-10 5.1-11.4 6.8-1.3 1.5-8 5-3.6 4.5 4.3-.7 11.7 0 8.2-1-3.4-1-7.4.6-4.2-2.3s3.8-3.8 8.4-5.8c4.7-2 9.8-6.4 9.3-1.6-.5 4.6-9.2 9.7-11.3 11.2-2.1 1.6-1.3 1.4-1.3 2 0 .6-.3 1.9-1.2 2.4-.9.6-.6 1.3-.4 2.6.3 1.4-.2 1.9.4 2.1.7.2 1.3.3 1.5 1.2.3 1 .7 1.1 2 1 1.2-.1 2 0 2 .8.2.7 1.4 1.7 1.5-.5.1-2.3 1-2.7-1.3-1.7-2.3 1-2.8.7-2.7-.4 0-1-.3-.8-1.2-.9-1 0-1.3-1.4.4-2.3 1.7-.9 1.7 0 3.8-1.8 2.1-1.8 2.1-2.2 2.5-3 .3-.9-3 2.4-4.7 3.1-1.6.8-1.1-.5-.8-2.3.2-1.8 4.2-4.3 6-4.3 1.9 0 6 1 4.3 3.6-1.8 2.5-6.9 5.5-4.8 5.7 2.2.2 2.6-.6 3.9.4 1.2 1.2 0 3.5-.5 4.7a9 9 0 0 1-2.4 3s-2.3-4.2-2.2-.9c0 3.3-.5 4.4 0 4.5.5.2 3 1.9 3.8 1.9s-4.4 2.4-2.2 2.6c2.2.2 5.8-1 7-3.3 0 0-4.6-1-6.3-2.7 0 0 5.1-1.2 3.7-6.2 0 0 5.2 1.4 3 3.8-2.3 2.3-3.7 2-1.7 2.6 2 .6 2.8 1.2 2.8 1.2s1.4.7.6 1.7c-.8 1.2-.8 2.8 0 2.7.5 0 2.7-1 1-2-2-1.2 2-1 .3-2-1.6-1-2.1-1.1-2.5-1.6-.5-.4 21-13 10.1-8.3 0 0 2.3-5 5.5-5 3 0 3.3 2.5 1.6 4.5-1.9 1.9-3 4.9-7.2 5.5 0 0 6 3-1.1 7.8 0 0-1.6.7-1 1.2.6.6 4.8-1.8 5.4-3.2a5.9 5.9 0 0 1 3.1-3.2c1.6-.8 9.6-6.2 12-10.3 2.4-4 3-4.1 7.6-7.9s3.9-3 4.5-3.9c.6-.9.8-2.4 3-3.6 2-1.2 10.4-5.8 13-7.7 2.6-1.9 8-5.4 10.2-8.3 2.3-2.9 8.5-6.6 10-6 1.6.8 0 3-3.7 5.7s-12.6 10-14.1 11.2a47.7 47.7 0 0 1-12 7c-2.8.4-2.5 1.4-4.2 3.3s-5.7 5.7-7 6.7c-1.3 1.2-4.5 3.3-4.7 4.9-.1 1.5.6 1.7-2 4a50.5 50.5 0 0 1-12.7 8.7s4.8 1.6 2 4.9c-2.9 3.2-2.7 2.7-2.9 3 0 0 7.2-1.2 2.2 4.5 0 0-1.1 1.7 1.2 0 2.4-2 1.4-4.4 1.1-4.7 0 0 3.9-2.5 8.4-2.5 4.4 0 4.2-.4.2-1.5 0 0 2.9-3.5 5.2-1.7 2.5 1.6 1.7 2.7-.8 4-2.6 1.4-6.3 1.8-9 3.4 0 0 5.2 1 8-1.1 2.8-2.2 3-1.1 3.3-.7.4.4.7 1-.5 2.9-1.3 1.8-1.4 1.8-1.3 2.2 0 .5-.2 1.7-2.7 2-2.4.5-3.7 1.6-2.8 2.8.8 1.2.8 4.1-1.3 3.9-2.1-.3-1.6-2-2.4-2.7-.8-.6-2-1.6-5.8.3-3.8 2-4-.4-3.9-1.7 0 0-2.4 2.2-4.5.3-2-2-.2-2.8 1-3.8s6-3.1 3.1-2.7c-3 .3-7.2.5-8.1-1.6-1.1-2.3 2-2 2.6-1.8.5.1 2.4 1.8 2.6-.3 0-2.3 3.2-2.5 2.1-3-1-.3-2.6 1-3 1.6 0 0-2.2-3.1-5.8-2.2-3.6 1.1 1.1.7 2 .9 1 .1.4 2-2.8 4.9-3.2 2.8-1.8 2 .6 2 2.5 0 8.3 0 5 2.7-3.5 2.9-4.9 4.2-6.6 3.8-1.8-.5.1-1.7 1-2.3.8-.4 1.2-1.3-.5-.6-1.7.6-2.2.7-3.6-1.6-1.3-2.5-.8-1.7-.2-3.3.6-1.6 1.9-3.2.3-2.6-1.6.6-1.4.6-1.3-1.2.1-1.8-1.8-2.2-1.8-2.2s.9 1.8.1 3c-.6 1.1-.7 1.5.4 1.8 1.2.3 2.2 1.3.7 2.3-1.6 1-1.3.9-.4 1.5 1 .7 2.4 1.4.9 2.9-1.5 1.4-.3 1 .5 1s2.4.6 2.4 2c0 1.5 0 1.8 2.4.5 2.4-1.4 7.2-1.2 7.2.6-.1 2-.7 2.5 2 .8 2.5-1.6 3.6 1.5 5.4 0 1.7-1.5 2.9-3 5-.4 2 2.6 1.3 3.3-1.2 5.2-2.4 1.8 1.3.4 3.1-.6s7.2-1.6 10.3-.2c3 1.3 3.9 1 6 0 2.4-.8 3.5-1 6.9 1.2a13 13 0 0 0 7.8 2.6s-3.7 1.5-8 1.7c-4.2.4-6.4 1-7.2 1.7 0 0 2.5 1.7 3 3.5 0 0 2.8-.4 4.1.1 0 0-.6 2 1 3.1 1.8 1.1 3 1.5 1.7 3s2 .8.1 2.8c-1.8 2.2-2.3 3.1-2.4 4.9 0 1.6.4 1.8-1.2 2-1.6.2.3 2-.5 4.3-.7 2-5.3 1.8-5.1 7.7 0 0 1.3-2.8 4-5.4 2.7-2.4 2.8-2.7 2.7-4.2 0-1.5-.1-1.2 1.4-2.3 1.3-1.2-.7-2.2.8-3.9 1.4-1.6.1-1.3 1.9-2.9 1.6-1.6-1.6-1.8.2-3.5 1.6-1.6-4.3-3.7-2.5-4.7 1.7-1.1 4.6-2.7-5.3-2.5 0 0 2.4-4 10.7-3.1 0 0-2 1.6-2.3 3.1l1.6.7s-.4 1.1-2 2.4c0 0 4.5 2.5 5.2 4 0 0-2.7.8-3.4 2 0 0 1.2 1.4 1.6 3 0 0-3-.3-3.4 2-.4 2.2-1.3.7-1.3 2s0 1.9-1 2.1c-1 .2-.2 1.3 0 2 .1.8.5 2.5.4 3 0 0-1.6 0-2.3.2 0 0 .5 3.3-1.3 3.7-1.8.5 1 1.2-1 1.5-1.9.3-1.6.5-4 4.7 0 0 2-1.1 4-2.5 2.2-1.4 0-1 3.4-4.3 3.4-3.5 2.8-3.7 2.5-5.4-.3-1.7-.3-3.1.9-4.8 1.3-1.6 1.6-3.5 6.1-3.2 0 0-1.3-3-3-3.7 0 0 2.2-1.5 4.4-1.6 0 0-2-2.5-6-4.7 0 0 3.3-2.9 4.1-4.2 0 0-1.5.3-2.8 0 0 0 .6-1.3 3.6-3.3 0 0 1.7 1.5 1.5 3.1 0 0 5.2-2.9 8-2.5 0 0 1.5 3.6-5.6 10.5 0 0 4.4.4 6.3.2 0 0-1 3.3-6.4 5.3-5.3 2 1.1 4.4-4.3 4-5.4-.4-3.8 1.4-3.6 4.1.1 2.8.3 5.7.2 6.4 0 0-4.3-1.4-4.2 2.8 0 4.2-2.3 5.1-2.7 5.5 0 0-1.3-1-3.2-1.8 0 0-2.7 5.1-7 8.1z"/>
<path fill="#7b3c20" d="M413.2 235.2s1.4-.2 4 1.4c2.4 1.6 4.9-1.7 2.2-2.5-2.9-.8 0-1.9 2.4.2 2.6 2 3.6 1 4.5.3 1-.7 2-1.2.3-2.3-1.7-1.2 1.2-.6 2.5.3 1.3.8.8 1.6.6 1.8-.2.3-.3 3 2.2.5 2.6-2.6 3.9-5.1 3.8-6.4 0 0 1.4.9 1.6 2.5.2 1.6 2.2-.8 2.8-1.7.7-.8 1.7-3.1 1.6-4.8 0 0 1.7 2.7 4.3 0 2.5-2.6 1.5-1 4.5-1.8a18.8 18.8 0 0 0 9-5.5c2.1-2.6 2.3-.8 5-1.5s8.1-4.4 8.6-6.5c.5-2 .4-3.3-.3-2.5-.8.6-.5 0-1.6-.6-1.3-.8-3 .9-3 .9s1.7 1.3.4 1.9c-1.3.5-2.4 2.4-5 1.6-2.4-.7-5 2.4-5 2.4s2.2 1.7-.8 2.8c-2.8 1.2-2.4 1.5-4.1.3 0 0-3.1 3.9-5 4.7 0 0-.7 0-1.2-.8 0 0-2 2.3-3 2.7 0 0-1.4-1.2-2.5-1.6 0 0-2.5 3-4.5 4 0 0-.6-1.2-1.9-2 0 0-.6 4-4.9 6.3 0 0 .3-1-1.9-2.5 0 0-5.3 4.6-7.3 5.1-2.1.4-.3-1 0-1.6.3-.6 1.6-2.5-1-3.3s-2 .6-2.6.8c-.6.3-.6-.5-2.4-.2-1.6.2-1.4 1-2.1 1.3-.8.2-3.8-.5-3.6 1.4.2 2 1.6 3.4-1 4.5-2.7 1.2 1 1 4.4.4"/>
<path fill="#5a3719" d="M423.9 229.7s.6-2.6-1.6-3.8c0 0 14-2.2 3.4-7.6 0 0 12.7-2.5 9.7-6.5s-6-3.3-6.3-3.1c-.4 0 2.7-2.4 3.5-2 .8.3 11 4.1 8.3.8-2.5-3.3-2.3-3.1-2.7-4.1 0 0 3.3 0 8.4 4.9 0 0 1-1 1-3.1 0 0 3.5 1 4.7 2.1 0 0 .6-1.2.3-2 0 0 3.2 1.7 4.3 3.5 0 0 1.4-1.2 1.6-2.7 0 0 3.1 1.3 4 2.3 0 0 1-1.4.6-3.3 0 0 5.1 1.5 5.9-1.6 0 0 5.1 1 1.8 3-4.4 2.7-.5-.6-5 2.5-3.4 2.5-5.3 5.3-7 4.7-1.2-.5-2.7 3-4.3 1.4-1.6-1.8-1.6-1-2.9.8a26.1 26.1 0 0 1-3 3.7s-.8-.5-1.6-1.3c0 0-1 1.7-2.2 3 0 0-1-1.4-2.7-2.2 0 0-2.6 3-4.1 4 0 0-1.6-1.5-3.1-2 0 0-.3 4-3.4 6 0 0-.6-1.2-2.7-2 0 0-1.5 2.4-4.9 4.5z"/>
<path fill="#5a3719" d="M416.5 223.5s-1.7 1.3-.6 2.7c1.1 1.4 1.2-.3 2.6-.3 1.4-.2 18.6-3.2 3-7.8 0 0 .6-.7 3.3-.8 2.7-.4 12.5-3 8-6.5-4.6-3.4-8.5 1.2-4.6-3 3-3.3.6-4.9.6-4.9l-11 7.2c-2 1-5 3.3-1.5 4.3 3.4 1 5.7-3.7 6-2.6.3 1-6.9 5-5.8 6.9 1 1.8.8 3.4 2.5 3 1.8-.3 6.6.9 2.7.8-3.9-.2-5.2 1-5.2 1"/>
<path d="M422.7 214.8s-1.6 1.2.5.6 6.3-1.5 5.6-2.5c-.9-1.2-3.6.1-6 2z"/>
<path fill="#7b3c20" d="M450.4 196.9s8-.3 11.3 2c3.3 2.2 4.9 3.7 5.9 4 0 0-.2 3-5.3.8 0 0 .3 1.5-.3 3 0 0-1.9-1.4-4-1.8 0 0-.5 1.1-1.1 1.8 0 0-2.3-2.3-5-3l-.8 1.6s-2.8-1.7-5-1.7c0 0 .5 1.7 0 2.5 0 0-5.7-4.7-10.9-4.1 0 0 2.5 3.7 4.1 5.5 0 0-10.5-.8-8.7-6.5 1.7-5.6-.1-4.2 6.7-4.1z"/>
<path fill="#5a3719" d="M401.3 212.5s-1.2 1 0 1.8 5.3-2.2 5.9-2.6c.6-.5 2-.4 0 1.2s-4 3.2-5.5 4.9c0 0 7-2 11.5-5.8 4.5-4-.2-1.4 7.5-5.1 7.7-3.8 11.7-9.7 7.6-9-4.1.6-7.9 5.3-11.1 7.1-3.2 1.8-5 2-4.5 1s2.8-.7 7.3-4.2c4.4-3.6 3.4-3.2 3.4-4.5 0-1.3-1.6-4.4 5-7.9 6.7-3.5 27.4-15.5 29.2-19.8 0 0-6 .7-14 6.6a74.3 74.3 0 0 1-14.4 9.4c-2.2.8-2 .2-3.3 2a183.2 183.2 0 0 1-10.8 10.4c-1.4 1-1.9 1.8-2 4 0 1.1-9 8-11.7 10.5z"/>
<path fill="#5a3719" d="M428.7 196.7s-1.7.6-3.1 0c-1.5-.8-1-4 2.6-5.9a53.3 53.3 0 0 1 13.4-5.1s-.5 4-10.8 7.6c0 0 .7 2-2.1 3.4"/>
<path fill="#aa5323" d="M432.3 194s.3 1 0 1.9c0 0 19 1.8 29-9.8 0 0-13.6 1.3-19 4.5 0 0 3.5-4.2 13.6-7.7s14.3-8 15.2-10.3c0 0-13 4.5-19 4.5 0 0-1.2 0-2.4.6-1.2.7-9.3 6.6-11.5 7.6 0 0 4.6-.4 6.2-1.8 0 0-3.2 8.5-12.1 10.5"/>
<path fill="#5a3719" d="M395.7 204.9s-2.5 1.8-1.5 2.6c1 .9 2.8 1 6.5-2 3.8-3.3 12.9-11 7.1-11.3 0 0-7.3-.5-7 4 .2 4.5-4.8 6.4-5.1 6.7m-17-2.7s4.9 2.9 3 5.2c0 0 14.9-12.6 10.6-15.4-4-2.7-7.3 2.5-6.3 3s3.1-.4 2.4.5a82.5 82.5 0 0 1-9.7 6.7m-3.9-4s3.3 1 3.5 2.4c0 1.3 9.8-6.9 7.2-10.4-1.2-1.5-6.5-2.2-6.8 1-.3 3 4.9-.4 3 1.8-2.2 3-6.1 4.7-6.9 5.2m34.8-6.9s-2 1.5-.1 2.4c1.9.9 3-.5 4-1.3.9-.9 5.5-4.3 6.5-6.4 1.2-2.2 2.7-2.9 4.4-4 1.7-1 13.5-7 20.8-13.5 7.3-6.5 4.2-4.8 11.7-9s12.5-8 14.1-12.6c0 0-3.5 1.2-6.5 3.2-3.1 2-10 6.3-11.5 7-1.4.5-3.2.6-4.3 1.7-1 1.1-1 2.4-4.6 5.4-3.7 3-22.4 16.2-24.7 18.1a357 357 0 0 0-9.8 9"/>
<path fill="#aa5323" d="M394.6 195.7s2-1.1 5.9-.8c3.8.2 19-14.6 23.4-17.5a364.4 364.4 0 0 0 20-14.7c2-1.9 2.3-3.8 3.9-4.9 1.6-1 3.1-.9 6.8-3 3.7-2.1 21.6-12.8 20.6-19 0 0-26.7 15.9-32.8 21.1a400 400 0 0 1-26.3 18.9c-3 2-5.4 5.2-10.5 9.4-5.1 4-10.2 7.6-11 10.5"/>
<path fill="#aa5323" d="M389 190s4.9-.5 5.6 2c0 0 10.5-7.3 13-10.3 2.4-3-.9-1.3 5.1-5.2a634 634 0 0 0 28.9-20.4c2.8-2.5 8.3-5.8 12.6-8.8 4.4-2.9 21.3-11.2 19.4-18l-15.2 10.1c-2.8 1.9-4 .8-6.8 3-3 2.3-9.2 6.7-10.3 8.2a172 172 0 0 1-15.3 11.8c-4.7 3-15 9.1-20.1 13.5a643 643 0 0 1-17 14z"/>
<path fill="#aa5323" d="M373.7 188.6s2.4 0 3.3 1c0 0 4.5-4.1 9.4 0 0 0 18-12.3 19.8-15.3 1.8-3 4.8-3.1 11.7-8.2 7-5.1 11.4-7.3 16-10.8 4.7-3.7 8.7-7.8 12-10 3.3-2.1 11.8-7.7 10.4-12.4 0 0-6.9 3.8-11.3 8.7-4.5 5-4 .8-8.6 4.8A88.2 88.2 0 0 1 419 159c-5.8 2.9-2.3 2.6-6.6 5.3-4.1 2.7-3.8 2.3-5.4 2.7a10.6 10.6 0 0 0-5.4 3.2 53.6 53.6 0 0 1-10.3 6.9 113.6 113.6 0 0 0-17.7 11.6z"/>
<path fill="#aa5323" d="M379 179.3s-.9-2 .8-3.5c1.7-1.4 5-5.2 5.4-7.5.5-2.5.1-2 5-4.1a200.7 200.7 0 0 0 40.8-23c2-1.6 7-5 8.9-6.6 0 0 .9 2.6-1.3 4.5a237 237 0 0 1-23 15.8c-2.3 1.3-8 4.2-10.1 6-2 1.6-1.7 2.1-10.9 6.6-9.1 4.4-9.5 5-9.3 5.3.3.4 4.4-1.4 6.4-2.6 2-1.1 9.4-4.6 11.7-6.4 2.2-1.8 6-4.5 7.6-5.4 1.6-.8 15-9 19-11.9 3.8-2.8 4.9-3.7 5.7-3.2.8.4 2.2.4.5 2s-7.2 6.6-9.3 8c-2.1 1.3-8.7 5.2-10.5 6.1-1.8 1-2.5 2.7-3.6 3.5-1 .8-4 2.8-7.6 3.6s-4.2 3.6-6.6 5.2c-2.4 1.5-19.3 10.6-19.8 11 0 0 1-1 .3-3.4z"/>
<path fill="#aa5323" d="M437.5 141.3s-.9.8-.4 1.3c.6.7 3 2.3 6-.6a113.6 113.6 0 0 1 13.4-10.8c2.4-1.5 3.7-2.9 3.6-5 0 0-12.1 6.5-22.6 15.1m16.7-1s1.8-3.2 6.4-6.1c4.6-3 11.5-7.2 12.3-8.2 0 0 1.6 1.8-1.9 4.1a332.5 332.5 0 0 0-11.4 7.5 15 15 0 0 1-5.4 2.6z"/>
<path fill="#7b3c20" d="M361.4 174s-5 2.7-3.2 4.4c1.8 1.6 4.5 1.1 5.7.6 1-.4 3.2-1 3.5-1 .3-.1 4.7-1.4 5.9-3.5 1-2 4-4.4 6.4-6 2.4-1.7 3.3-3.5 2.9-4.7 0 0-20 9.4-21.2 10.2m-30.2 23.4s3.6-2.1 8.5-.8c0 0-.2-1.1-1-1.8 0 0 6-1.5 7.3-4.2 1.3-2.7 1.6-2 2.7-2.8 1.2-.8 9.2-7.3 8.3-8.7-1-1.4-1.1-3.2-1.8-3.9 0 0-1.6 2.3-9.5 6-7.8 3.9-16.5 6.7-22.9 15.2-6.3 8.6-5.6 13.5 2.1 15.7 0 0 5.4-3.4 18.7-2.3 13.3 1.3 17.8 6.2 18.7 7.1.8 1 3.5 4.2.9 9.8 0 0 2.7 1.1 2.8-1.4.3-2.6.4-2 1-1.7.7.5 1.4.5 1-1.4-.2-2-1-6.3-2.4-7.8-1.1-1.5.3-.8 1-.6.8.4 3.6 2.7 2-1.6-1.7-4-2.2-2-2.3-1.9 0 .3-.3 1.3-4-1.4a28.6 28.6 0 0 0-9.4-4.8c-2.4-.6-.7-.6.8-1.1 1.5-.6 3.3-.8 4-2.5 0 0-1.4.4-4-.6a14 14 0 0 0-12.3 2.2s1.3-5-2.6-4.7c-4 .3-6.6.2-10.8 3.5 0 0-.2-5 3.7-7.6 4-2.6 3.4-1 5.6-1.7 2.2-.6 2.4-2.8 1.4-3.6 0 0 5.2 1 13.8-6.2 0 0-4.7 6-10.3 7.3 0 0-.9 3.3-6 4-5 .6-4.9 3.6-4.9 4.3z"/>
<path fill="#5a3719" d="M316.6 227s2.4-15.1 16.6-16.2c12.2-1 16.2.6 18.6 1.4s8.5 2.5 6.1 4.5c-2.3 1.9-3.6 1.6-3.6 1.6s2.6-3 .2-3.6c-2.5-.4-2.6 1-3 2.2-.4 1.4-.4 2.8-1.7 3.8 0 0-1.2-1.4-3-.2s-.2 1.3.5 1.1c.7-.2 1.6-.6 1.4.6-.2 1-1.1 3-4 4.5-3 1.4-2.9 1.4-6.3 2-3.5.5-6.7 1.9-11.1 5.6-4.5 3.9-9.3 2.6-10.3-1.6-.8-3.7-.4-5.7-.4-5.7"/>
<path d="M332.7 226.4s1.3-3-1-4.3c0 0-7.4 1.3-9.7-.9 0 0 8-.5 13-2.5 5-1.8 3.6-3.2 1.9-3.6-1.8-.3-5 .5-5.3 2 0 0-1-1.5.3-2.7 1.3-1.1 3.2-1.3 5-.8 1.8.5 3.3 1.3 9.1-1.7 0 0 3.4.8 3.5 3 0 2.3-.2 3.2-.6 3.5-.2.4-.6 1-1.3 1-.7 0-1.7-.2-2.5 1.3-.8 1.6-1.4 3-2.9 4 0 0 1.7-4.9-2.6-6 0 0-3.5 2-6.2 2.2 0 0 3.5 3.2-.8 5.5z"/>
<path fill="#5a3719" d="M340.4 217.4s-1.6-1.7.5-2c2.2 0 5 1.5 4.4 2.9-.5 1.3-3 1.2-4.9-.9"/>
<path fill="#fff" d="M461.4 193.7s-4 1.1-.3 3.6c3.6 2.4 5.4 4.5 8 5.1 2.7.7 5.4 1.6 5.4 4.3 0 2.6-.6 3.7-2 5.5-1.5 1.9.8 2.6 2.7 1.6l4.8-2.3c1.2-.8 3.3-.7 1.5.3-2 1-4 1.6-1.5 1.6 2.4.1 17.3.4 20.4-.6 3.1-1 7.2-1.3 7.5-5.3 0 0 .2-1.8 1.3-2.6 1.2-.8 2-2.5.3-1.4-1.7 1.3-3 1.8-3.3 1.5-.3-.4-.5-.6.8-1.2 1.2-.6 1.9 0 3-1.6 1.2-1.8 1.1-1.5.5-2.2-.6-.6-2-1-1.3-1.8.7-.9 1.3-3.3-1.4-2-2.7 1.5-8.1 5.2-10.7 5.8-2.4.6-4.3 1.3-7.6 2a30 30 0 0 0-9 3.4c-3.6 2-3.3-1.2-2.7-1.6 0 0 1.4 2.5 5-.7 3.6-3.1 2.4-.2 11.3-3.1 8.8-2.9 6.7-3.4 10.1-5.1 3.6-1.8 6.8-2 4.4-4.4-2.5-2.4-2.7-2.6-5.8 0a36.8 36.8 0 0 1-17 7s20-8.6 18-9.8a22.1 22.1 0 0 0-5.7-2.7c-1.4-.4-1.8-.7-5 .8-3.2 1.4-3.7 1.7-4.6 1.8-1 0-3.7.6-7.5 2.6s-5.8 2.8-8.5 4.3c0 0 1.8-3.6 9.8-6 7.8-2.3 11.8-4.4 11-4.8s-2.9-.9-4.3-.5c-1.5.2-1-.2-6 1.8-4.7 1.8-2.7 1.4-6.5 2.3-4 .8-5.5 1.6-7.4 2.4 0 0 .8-1 3.4-2 1.4-.4-1.5-1 2.3-1.1h1a34.3 34.3 0 0 0 9.2-3.4c-.8-.2-5.4-.7-10.2 1.6-4.7 2.1-2.6 1.4-4.2 1.6-1.6.4-5.2 2.6-6.4 3.6-1.2 1-2.8 1.7-2.8 1.7"/>
<path fill="#5a3719" d="M344.1 215.3s1.9.6 2.4 1.9c.5 1.3 1.6-.6 1.6-1.2 0-.5-1.2-3.2-3.2-2-2 1.2-1 1.2-.8 1.3"/>
<path fill="#7b3c20" d="M339 241.1s3.9-1.8 7.3-1.6c0 0-1.4-4.7 1-4 2.3.9 1.6.6 2.1.6 0 0 .2-3.1-.5-4.4 0 0 2.5.6 4.9.6 0 0-2.3-4.4.2-7.5a7.4 7.4 0 0 0 4.5 3.7v-2.6s1.8-.2 3.3.5c1.4.8 2.6-8-1.7-10 0 0-1 1.7-5 2.5s-4 1.6-5.6 4.7-3 3-6.5 5.2a17.8 17.8 0 0 0-5.5 7s1.7 2 1.5 5.3"/>
<path fill="#999" d="M472.5 189.7c1.4-.2-1.5-1 2.3-1.1h1a34.3 34.3 0 0 0 9.2-3.4c-.8-.2-5.4-.7-10.2 1.5s-2.6 1.5-4.2 1.8a22 22 0 0 0-6.4 3.5c-1.2 1-2.8 1.7-2.8 1.7s-4 1.1-.3 3.6c3.6 2.4 5.4 4.5 8 5.1 2.7.7 5.4 1.6 5.4 4.3a7.4 7.4 0 0 1-2 5.5c-1.5 1.9.8 2.6 2.7 1.6l4.8-2.3c1.2-.8 3.3-.7 1.4.3-2 1-3.9 1.6-1.4 1.6 2.4.1 17.3.4 20.4-.6 3.1-1 7.2-1.3 7.5-5.3 0 0 .2-1.8 1.3-2.6 1.2-.8 2-2.5.3-1.4-1.7 1.3-3 1.8-3.3 1.5-.3-.4-.5-.6.8-1.2 1.2-.6 1.9 0 3-1.6 1.2-1.8 1.1-1.5.5-2.2-.4-.3-.9-.5-1.1-.9 0 0-1-.8-2-.1a29.4 29.4 0 0 1-7.4 2.8c-1.8.2-3.8 1-7 2.6s-8.8 5-9.7 1.8l-2.8 1.2c-3.7 1.9-3.4-.8-2.7-1.6 0 0-2 2.2-1.9.3 0-2 1.3-1.7 3.5-2.3 2.1-.7 5.5-2 4.1-3.2-1.4-1.1-2.9 1.2-4.4 1.9-1.6.7-4.7 1.3-5.2-1-.5-2.2-.5-3.8-4.6-4-4.2-.2-4.1-2.9-3-4 1.3-1.1 2.2-3 6.2-3.8"/>
<path d="M485.9 210s6.5-2.9 12.5-4.3 1.3.2.3.5-10.4 3.4-12.6 4.5c-2.2 1-1.8.1-.2-.5zm1.4 1.5s7.4-2.5 8.8-1.5c1.4 1 .2.6-1.4.8-1.6.2-6 1-7.2 1-1.2 0-.2-.3-.2-.3m11.9-2.6s1.4-.3 1.5.3c.1.5-.6.6-1.4.5-.8-.2-1.4-.6-.1-.8"/>
<path fill="#fff" d="M305 273s-.3-6.5 3-9.8 19-19.7 21.4-24.3c0 0 2 1.4 2.1 4 0 0 2.7-4.5 4.8-6.3 0 0 1.9 2 1.6 5.8 0 0 3.8-2 9.7-2 0 0-2.3 2.4-2.3 4 0 0 8.1-1 12.5-.2 0 0-11.3 6.2-8.2 6.8 3.3.6 6.5 0 6.5 0s-3.6 3.6-9.3 4.3c0 0 7.3 0 8.8 1.6 0 0-7.1 1-12.8 5.4 0 0-.6-.3-.6-1.9 0 0-.2 1.5-1.8 2.9-1.7 1.3-5.5 4.2-7 5.7-1.4 1.4-4 4.3-7 4.2 0 0 .6-2.3-1.5-3a6 6 0 0 0-6.3 1.6s-7.6.2-10.1.5c0 0 1.7-2.7 3.3-2.7 1.6 0 8 1 8.6-3.4.5-4.3-4.1-3.2-2.4-5.7 1.8-2.6 1.4-2.5 1.5-2.8 0 0-1.5.8-2.3 3.1a11.4 11.4 0 0 1-4.5 6.4 16 16 0 0 0-5.2 5.3s-1.4.2-2.6.5z"/>
<path fill="#fff" d="M312.3 269s.2-.7 2.4-1.2c2.3-.4 2.5-1.4 2.1-2-.3-.3-1.6-.3.5-2.9 0 0 .8.3 1.3.9.6.6 3 5.8-6.3 5.3z"/>
<path fill="#999" d="M307 264.5c0 4.3 5.7 2.7 5.7 2.7a22.9 22.9 0 0 0-4.1 3.7c.4-2-3.2-2.6-3.2-2.6a13 13 0 0 1 1.6-3.8m20.6-23 1.8-2.6s2 1.4 2.1 4c0 0 2.7-4.5 4.8-6.3 0 0 1.9 2 1.6 5.8 0 0 3.8-2 9.7-2 0 0-2.3 2.4-2.3 4 0 0 8.1-1 12.5-.2 0 0-11.3 6.2-8.2 6.8 3.3.6 6.5 0 6.5 0s-3.6 3.6-9.3 4.3c0 0 7.3 0 8.8 1.6 0 0-2.2.3-5 1.3 0 0-2-2-8.1-1.6 0 0 4.7-2.7 8.5-3.6 0 0-1.6-2.1-4.3-.2 0 0-5.1-3.5-.8-6.5 0 0-3-.6-5 .8 0 0 0-2.5 2.2-3.5 0 0-5.7-1-7 3.2 0 0-1.2-1.7-.6-3.6 0 0-3.5 2-5.1 4.2 0 0-.6-4.3-2.8-5.9m-11 27.3c-1 .3-2.5.4-4.3.3 0 0 .1-.6 1.4-1 0 0 .3.7 2.8.7"/>
<path d="M327 252.6s2.6 2 3.5 3.2c0 0 2.4-1.6 3.2-3 0 0 2 1.2 2.5 3 0 0 1.4-.8 1.6-2 0 0 3.3.6 4.4 1.6 0 0 .5-3 0-5.1 0 0 2.3.2 3.7.8 0 0-1.3-2.1 5.3-4.8 0 0-5 1.1-7 3.2 0 0-2 .2-3-.4v4.7s-1.2-.6-3.7-1.2c0 0-.6 1.1-1 1.4 0 0-1.7-1.4-2.3-2.9 0 0-2.5 2.2-3.3 3.1 0 0-2.4-1.6-4-1.6z"/>
<path fill="#ffc221" d="M312 285.2s1 .5 3.4-1.5 9.3-6.3 9.9-9.8c.7-3.5-2.2-3.7-4.4-2.7-2.3 1-1.3 3-1.2 3.6 0 .6.2 3-3.5 6.4l-4.3 4z"/>
<path fill="#ffc221" d="M311.2 286.2s-5.5-2.3-.6-4.7 7.1-3.1 7.7-5.2c.6-2 .3-1.7-1.6-.9-1.8.9-8.8 4.1-9.8 1.1 0 0 2.8 1.1 6.4-.6 3.6-1.8 6.6-2.3 4.3-3-2.3-.7-10.6.2-11.9.6-1.4.4-1 .3-1.3 1.6-.2 1.4-1.7 4.3-2.3 5-.5.9-2 4.4.6 6a9.2 9.2 0 0 0 8.5.1"/>
<path d="M309 274.3s-1.2.2-1 .7c.3.4.6.4 1 .4.5 0 1.2-.3 1.3-.5 0-.4-.8-.8-1.2-.6z"/>
<path fill="#fff" d="M310.8 285s-2.5-1.2.4-2.8c3-1.6 6-3.2 6.5-3.8 0 0-1.4 2-6.8 6.6z"/>
</svg>

After

Width:  |  Height:  |  Size: 32 KiB

View File

@@ -0,0 +1,4 @@
<svg xmlns="http://www.w3.org/2000/svg" id="flag-icons-at" viewBox="0 0 512 512">
<path fill="#fff" d="M0 170.7h512v170.6H0z"/>
<path fill="#c8102e" d="M0 0h512v170.7H0zm0 341.3h512V512H0z"/>
</svg>

After

Width:  |  Height:  |  Size: 203 B

View File

@@ -0,0 +1,8 @@
<svg xmlns="http://www.w3.org/2000/svg" id="flag-icons-au" viewBox="0 0 512 512">
<path fill="#00008B" d="M0 0h512v512H0z"/>
<path fill="#fff" d="M256 0v32l-95 96 95 93.5V256h-33.5L127 162l-93 94H0v-34l93-93.5L0 37V0h31l96 94 93-94z"/>
<path fill="red" d="m92 162 5.5 17L21 256H0v-1.5zm62-6 27 4 75 73.5V256zM256 0l-96 98-2-22 75-76zM0 .5 96.5 95 67 91 0 24.5z"/>
<path fill="#fff" d="M88 0v256h80V0zM0 88v80h256V88z"/>
<path fill="red" d="M0 104v48h256v-48zM104 0v256h48V0z"/>
<path fill="#fff" d="m202 402.8-45.8 5.4 4.6 45.9-32.8-32.4-33 32.2 4.9-45.9-45.8-5.8L93 377.4 69 338l43.6 15 15.8-43.4 15.5 43.5 43.7-14.7-24.3 39.2 38.8 25.1Zm222.7 8-20.5 2.6 2.2 20.5-14.8-14.4-14.7 14.5 2-20.5-20.5-2.4 17.3-11.2-10.9-17.5 19.6 6.5 6.9-19.5 7.1 19.4 19.5-6.7-10.7 17.6zM415 293.6l2.7-13-9.8-9 13.2-1.5 5.5-12.1 5.5 12.1 13.2 1.5-9.8 9 2.7 13-11.6-6.6zm-84.1-60-20.3 2.2 1.8 20.3-14.4-14.5-14.8 14.1 2.4-20.3-20.2-2.7 17.3-10.8-10.5-17.5 19.3 6.8 7.2-19.1 6.7 19.3 19.4-6.3-10.9 17.3zm175.8-32.8-20.9 2.7 2.3 20.9-15.1-14.7-15 14.8 2.1-21-20.9-2.4 17.7-11.5-11.1-17.9 20 6.7 7-19.8 7.2 19.8 19.9-6.9-11 18zm-82.1-83.5-20.7 2.3 1.9 20.8-14.7-14.8L376 140l2.4-20.7-20.7-2.8 17.7-11-10.7-17.9 19.7 6.9 7.3-19.5 6.8 19.7 19.8-6.5-11.1 17.6z"/>
</svg>

After

Width:  |  Height:  |  Size: 1.2 KiB

View File

@@ -0,0 +1,186 @@
<svg xmlns="http://www.w3.org/2000/svg" id="flag-icons-aw" viewBox="0 0 512 512">
<defs>
<clipPath id="aw-a">
<path fill="gray" d="M0 0h512v512H0z"/>
</clipPath>
</defs>
<g clip-path="url(#aw-a)">
<path fill="#39c" d="M0 0v512h768V0z"/>
<path fill="#ff0" d="M0 341.3v28.5h768v-28.5zm0 57v28.4h768v-28.5H0z"/>
<path fill="#9cc" d="m122 28 2.4 2.5-2.3-2.4zm-2.3 4.8 2.4 2.4zm4.7 0 2.4 2.4-2.3-2.4z"/>
<path fill="#ccf" d="m119.7 35.2 2.4 2.4zm4.7 0 2.4 2.4-2.3-2.4z"/>
<path fill="#6cc" d="m117.3 40 2.4 2.3z"/>
<path fill="#c66" d="m122 40 2.4 2.3-2.3-2.3z"/>
<path fill="#6cc" d="m126.8 40 2.4 2.3z"/>
<path fill="#ccf" d="m117.3 42.4 2.4 2.3zm9.5 0 2.4 2.3z"/>
<path fill="#fcc" d="m119.7 44.7 2.4 2.4zm4.7 0 2.4 2.4-2.3-2.4z"/>
<path fill="#6cc" d="m115 47.1 2.3 2.4-2.4-2.4z"/>
<path fill="#c00" stroke="#fff" stroke-width="3" d="M121.7 32.9 105 96.2l-63.5 17.2 63.3 16.5 16.9 63.3 16.9-63.3 63.2-16.9-63.3-16.8z"/>
<path fill="#6cc" d="m129.2 47.1 2.4 2.4z"/>
<path fill="#9cf" d="m115 49.5 2.3 2.4-2.4-2.4m14.3 0 2.4 2.4z"/>
<path fill="#fcc" d="m117.3 51.9 2.4 2.3zm9.5 0 2.4 2.3z"/>
<path fill="#69c" d="m112.5 54.3 2.4 2.3z"/>
<path fill="#c33" d="m118.1 55.8.8 1.6zm9.5 0 .8 1.6z"/>
<path fill="#69c" d="m131.6 54.3 2.4 2.3z"/>
<path fill="#9cf" d="M112.5 56.6 115 59zm19 0L134 59z"/>
<path fill="#fcc" d="m115 59 2.3 2.4-2.4-2.4m14.3 0 2.4 2.4z"/>
<path fill="#69c" d="m110.2 61.4 2.3 2.4zm23.8 0 2.4 2.4z"/>
<path fill="#9cc" d="m110.2 63.8 2.3 2.4zm23.8 0 2.4 2.4z"/>
<path fill="#cff" d="m110.2 66.2 2.3 2.3zm23.8 0 2.4 2.3z"/>
<path fill="#69c" d="m107.8 68.5 2.4 2.4z"/>
<path fill="#fcc" d="M112.5 68.5 115 71zm19 0L134 71z"/>
<path fill="#69c" d="m136.3 68.5 2.4 2.4z"/>
<path fill="#9cc" d="m107.8 71 2.4 2.3-2.4-2.4z"/>
<path fill="#c33" d="m113.3 72.5.8 1.6zm19 0 .9 1.6z"/>
<path fill="#9cc" d="m136.3 71 2.4 2.3-2.3-2.4z"/>
<path fill="#cff" d="m107.8 73.3 2.4 2.4zm28.6 0 2.3 2.4z"/>
<path fill="#fcc" d="m110.2 75.7 2.3 2.3zm23.8 0 2.4 2.3z"/>
<path fill="#9cc" d="m105.4 78 2.4 2.4-2.4-2.3z"/>
<path fill="#c33" d="m111 79.6.7 1.6zm23.9 0 .8 1.6z"/>
<path fill="#9cc" d="m138.7 78 2.4 2.4-2.4-2.3z"/>
<path fill="#ccf" d="m105.4 80.4 2.4 2.4zm33.3 0 2.4 2.4z"/>
<path fill="#fcc" d="m107.8 82.8 2.4 2.4zm28.6 0 2.3 2.4z"/>
<path fill="#9cc" d="m103 85.2 2.4 2.4z"/>
<path fill="#c33" d="m108.6 86.8.8 1.6zm28.5 0 .8 1.6z"/>
<path fill="#9cc" d="m141.1 85.2 2.4 2.4z"/>
<path fill="#ccf" d="m103 87.6 2.4 2.4zm38.1 0 2.4 2.4z"/>
<path fill="#fcc" d="m105.4 90 2.4 2.3zm33.3 0 2.4 2.3z"/>
<path fill="#9cc" d="m100.6 92.3 2.4 2.4z"/>
<path fill="#c33" d="m105.4 92.3 2.4 2.4zm33.3 0 2.4 2.4z"/>
<path fill="#9cc" d="m143.5 92.3 2.4 2.4zm-50 2.4 2.4 2.4z"/>
<path fill="#ccf" d="m95.9 94.7 2.4 2.4zm52.3 0 2.4 2.4z"/>
<path fill="#9cc" d="m150.6 94.7 2.4 2.4zm-64.2 2.4 2.3 2.4z"/>
<path fill="#ccf" d="m88.7 97.1 2.4 2.4z"/>
<path fill="#fcc" d="m98.3 97.1 2.3 2.4z"/>
<path fill="#c33" d="m100.6 97.1 2.4 2.4zm42.9 0 2.4 2.4z"/>
<path fill="#fcc" d="m145.9 97.1 2.3 2.4z"/>
<path fill="#ccf" d="m155.4 97.1 2.4 2.4z"/>
<path fill="#9cc" d="m157.8 97.1 2.3 2.4z"/>
<path fill="#69c" d="m76.8 99.5 2.4 2.4z"/>
<path fill="#9cc" d="m79.2 99.5 2.4 2.4z"/>
<path fill="#cff" d="m81.6 99.5 2.4 2.4z"/>
<path fill="#fcc" d="m91.1 99.5 2.4 2.4z"/>
<path fill="#c33" d="m95 100.3 1.7.8-1.6-.8m54.7 0 1.6.8z"/>
<path fill="#fcc" d="m153 99.5 2.4 2.4z"/>
<path fill="#cff" d="m162.5 99.5 2.4 2.4z"/>
<path fill="#9cc" d="m165 99.5 2.3 2.4z"/>
<path fill="#69c" d="m167.3 99.5 2.4 2.4zm-97.6 2.4 2.4 2.3z"/>
<path fill="#9cc" d="m72 101.9 2.5 2.3z"/>
<path fill="#cff" d="m74.5 101.9 2.3 2.3z"/>
<path fill="#fcc" d="m84 101.9 2.4 2.3z"/>
<path fill="#c33" d="m88 102.7 1.5.8zm69 0 1.6.8z"/>
<path fill="#fcc" d="m160.2 101.9 2.3 2.3z"/>
<path fill="#cff" d="m169.7 101.9 2.3 2.3z"/>
<path fill="#9cc" d="m172 101.9 2.4 2.3z"/>
<path fill="#69c" d="m174.4 101.9 2.4 2.3zm-111.8 2.3 2.3 2.4z"/>
<path fill="#9cf" d="m65 104.2 2.3 2.4-2.4-2.4z"/>
<path fill="#fcc" d="m76.8 104.2 2.4 2.4z"/>
<path fill="#c33" d="m80.8 105 1.6.8zm83.3 0 1.6.8z"/>
<path fill="#fcc" d="m167.3 104.2 2.4 2.4z"/>
<path fill="#9cf" d="m179.2 104.2 2.4 2.4z"/>
<path fill="#69c" d="m181.6 104.2 2.3 2.4z"/>
<path fill="#6cc" d="m55.4 106.6 2.4 2.4z"/>
<path fill="#9cf" d="m57.8 106.6 2.4 2.4z"/>
<path fill="#fcc" d="m67.3 106.6 2.4 2.4zm109.5 0 2.4 2.4z"/>
<path fill="#9cf" d="m186.3 106.6 2.4 2.4z"/>
<path fill="#6cc" d="m188.7 106.6 2.4 2.4zM48.3 109l2.4 2.4z"/>
<path fill="#ccf" d="m50.6 109 2.4 2.4-2.3-2.4z"/>
<path fill="#fcc" d="m60.2 109 2.3 2.4z"/>
<path fill="#c33" d="m64.1 109.8 1.6.8zm116.7 0 1.6.8z"/>
<path fill="#fcc" d="m184 109 2.3 2.4z"/>
<path fill="#ccf" d="m193.5 109 2.4 2.4z"/>
<path fill="#6cc" d="m195.9 109 2.3 2.4z"/>
<path fill="#9cc" d="m41.1 111.4 2.4 2.4z"/>
<path fill="#ccf" d="m43.5 111.4 2.4 2.4z"/>
<path fill="#fcc" d="m53 111.4 2.4 2.4zm138.1 0 2.4 2.4z"/>
<path fill="#ccf" d="m200.6 111.4 2.4 2.4z"/>
<path fill="#9cc" d="m203 111.4 2.4 2.4zm-166.6 2.4 2.4 2.3z"/>
<path fill="#c66" d="m48.3 113.8 2.4 2.3zm147.6 0 2.3 2.3z"/>
<path fill="#9cc" d="m207.8 113.8 2.3 2.3zM41 116l2.4 2.4z"/>
<path fill="#ccf" d="m43.5 116.1 2.4 2.4z"/>
<path fill="#fcc" d="m53 116.1 2.4 2.4zm138.1 0 2.4 2.4z"/>
<path fill="#ccf" d="m200.6 116.1 2.4 2.4z"/>
<path fill="#9cc" d="m203 116.1 2.4 2.4z"/>
<path fill="#6cc" d="m48.3 118.5 2.4 2.4z"/>
<path fill="#ccf" d="M50.6 118.5 53 121l-2.3-2.4z"/>
<path fill="#fcc" d="m60.2 118.5 2.3 2.4z"/>
<path fill="#c33" d="m64.1 119.3 1.6.8zm116.7 0 1.6.8z"/>
<path fill="#fcc" d="m184 118.5 2.3 2.4z"/>
<path fill="#ccf" d="m193.5 118.5 2.4 2.4z"/>
<path fill="#6cc" d="m195.9 118.5 2.3 2.4zM55.4 121l2.4 2.4z"/>
<path fill="#9cf" d="m57.8 120.9 2.4 2.4z"/>
<path fill="#fcc" d="m67.3 120.9 2.4 2.4zm109.5 0 2.4 2.4z"/>
<path fill="#9cf" d="m186.3 120.9 2.4 2.4z"/>
<path fill="#6cc" d="m188.7 120.9 2.4 2.4z"/>
<path fill="#69c" d="m62.5 123.3 2.4 2.4-2.3-2.4z"/>
<path fill="#9cf" d="m65 123.3 2.3 2.4-2.4-2.4z"/>
<path fill="#fcc" d="m76.8 123.3 2.4 2.4z"/>
<path fill="#c33" d="m80.8 124 1.6.9-1.6-.8m83.3 0 1.6.8z"/>
<path fill="#fcc" d="m167.3 123.3 2.4 2.4z"/>
<path fill="#9cf" d="m179.2 123.3 2.4 2.4z"/>
<path fill="#69c" d="m181.6 123.3 2.3 2.4zm-111.9 2.4 2.4 2.3z"/>
<path fill="#9cc" d="m72 125.7 2.5 2.3z"/>
<path fill="#cff" d="m74.5 125.7 2.3 2.3z"/>
<path fill="#fcc" d="m84 125.7 2.4 2.3z"/>
<path fill="#c33" d="m88 126.5 1.5.7zm69 0 1.6.8z"/>
<path fill="#fcc" d="m160.2 125.7 2.3 2.3z"/>
<path fill="#cff" d="m169.7 125.7 2.3 2.3z"/>
<path fill="#9cc" d="m172 125.7 2.4 2.3z"/>
<path fill="#69c" d="m174.4 125.7 2.4 2.3zM76.8 128l2.4 2.4z"/>
<path fill="#9cc" d="m79.2 128 2.4 2.4z"/>
<path fill="#cff" d="m81.6 128 2.4 2.4z"/>
<path fill="#fcc" d="m91.1 128 2.4 2.4z"/>
<path fill="#c33" d="m95 128.8 1.7.8-1.6-.8m54.7 0 1.6.8z"/>
<path fill="#fcc" d="m153 128 2.4 2.4z"/>
<path fill="#cff" d="m162.5 128 2.4 2.4z"/>
<path fill="#9cc" d="m165 128 2.3 2.4z"/>
<path fill="#69c" d="m167.3 128 2.4 2.4z"/>
<path fill="#9cc" d="m86.4 130.4 2.3 2.4z"/>
<path fill="#ccf" d="m88.7 130.4 2.4 2.4z"/>
<path fill="#fcc" d="m98.3 130.4 2.3 2.4z"/>
<path fill="#c33" d="m100.6 130.4 2.4 2.4zm42.9 0 2.4 2.4z"/>
<path fill="#fcc" d="m145.9 130.4 2.3 2.4z"/>
<path fill="#ccf" d="m155.4 130.4 2.4 2.4z"/>
<path fill="#9cc" d="m157.8 130.4 2.3 2.4zm-64.3 2.4 2.4 2.4z"/>
<path fill="#ccf" d="m95.9 132.8 2.4 2.4zm52.3 0 2.4 2.4z"/>
<path fill="#9cc" d="m150.6 132.8 2.4 2.4zm-50 2.4 2.4 2.4z"/>
<path fill="#c33" d="m105.4 135.2 2.4 2.4zm33.3 0 2.4 2.4z"/>
<path fill="#9cc" d="m143.5 135.2 2.4 2.4z"/>
<path fill="#fcc" d="m105.4 137.6 2.4 2.3zm33.3 0 2.4 2.3z"/>
<path fill="#ccf" d="m103 140 2.4 2.3z"/>
<path fill="#c33" d="m108.6 141.5.8 1.6zm28.5 0 .8 1.6z"/>
<path fill="#ccf" d="m141.1 140 2.4 2.3z"/>
<path fill="#9cc" d="m103 142.3 2.4 2.4zm38.1 0 2.4 2.4z"/>
<path fill="#fcc" d="m107.8 144.7 2.4 2.4zm28.6 0 2.3 2.4z"/>
<path fill="#ccf" d="m105.4 147 2.4 2.5z"/>
<path fill="#c33" d="m111 148.7.7 1.6zm23.9 0 .8 1.6z"/>
<path fill="#ccf" d="m138.7 147 2.4 2.5z"/>
<path fill="#9cc" d="m105.4 149.5 2.4 2.3zm33.3 0 2.4 2.3z"/>
<path fill="#fcc" d="m110.2 151.8 2.3 2.4zm23.8 0 2.4 2.3z"/>
<path fill="#cff" d="m107.8 154.2 2.4 2.4z"/>
<path fill="#c33" d="m113.3 155.8.8 1.6zm19 0 .9 1.6z"/>
<path fill="#cff" d="m136.3 154.2 2.4 2.4z"/>
<path fill="#9cc" d="m107.8 156.6 2.4 2.4zm28.6 0 2.3 2.4z"/>
<path fill="#69c" d="m107.8 159 2.4 2.4z"/>
<path fill="#fcc" d="m112.5 159 2.4 2.4zm19 0 2.5 2.4z"/>
<path fill="#69c" d="m136.3 159 2.4 2.4z"/>
<path fill="#cff" d="m110.2 161.4 2.3 2.3zm23.8 0 2.4 2.3z"/>
<path fill="#9cc" d="m110.2 163.8 2.3 2.3zm23.8 0 2.4 2.3z"/>
<path fill="#69c" d="m110.2 166.1 2.3 2.4zm23.8 0 2.4 2.4z"/>
<path fill="#fcc" d="m115 168.5 2.3 2.4-2.4-2.4m14.3 0 2.4 2.4z"/>
<path fill="#9cf" d="m112.5 170.9 2.4 2.4z"/>
<path fill="#c33" d="m118.1 172.5.8 1.6zm9.5 0 .8 1.6z"/>
<path fill="#9cf" d="m131.6 170.9 2.4 2.4z"/>
<path fill="#69c" d="m112.5 173.3 2.4 2.3zm19 0 2.5 2.3z"/>
<path fill="#fcc" d="m117.3 175.7 2.4 2.3zm9.5 0 2.4 2.3z"/>
<path fill="#9cf" d="m115 178 2.3 2.4-2.4-2.4zm14.2 0 2.4 2.4z"/>
<path fill="#6cc" d="m115 180.4 2.3 2.4-2.4-2.4m14.3 0 2.4 2.4z"/>
<path fill="#fcc" d="m119.7 182.8 2.4 2.4zm4.7 0 2.4 2.4-2.3-2.4z"/>
<path fill="#ccf" d="m117.3 185.2 2.4 2.3zm9.5 0 2.4 2.3z"/>
<path fill="#6cc" d="m117.3 187.6 2.4 2.3z"/>
<path fill="#c66" d="m122 187.6 2.4 2.3-2.3-2.3z"/>
<path fill="#6cc" d="m126.8 187.6 2.4 2.3z"/>
<path fill="#ccf" d="m119.7 192.3 2.4 2.4zm4.7 0 2.4 2.4-2.3-2.4z"/>
<path fill="#9cc" d="m119.7 194.7 2.4 2.4zm4.7 0 2.4 2.4-2.3-2.4m-2.4 4.8 2.4 2.3z"/>
</g>
</svg>

After

Width:  |  Height:  |  Size: 10 KiB

View File

@@ -0,0 +1,18 @@
<svg xmlns="http://www.w3.org/2000/svg" id="flag-icons-ax" viewBox="0 0 512 512">
<defs>
<clipPath id="ax-a">
<path fill-opacity=".7" d="M166 0h850v850H166z"/>
</clipPath>
</defs>
<g clip-path="url(#ax-a)" transform="translate(-100)scale(.6024)">
<path fill="#0053a5" d="M0 0h1300v850H0z"/>
<g fill="#ffce00">
<path d="M400 0h250v850H400z"/>
<path d="M0 300h1300v250H0z"/>
</g>
<g fill="#d21034">
<path d="M475 0h100v850H475z"/>
<path d="M0 375h1300v100H0z"/>
</g>
</g>
</svg>

After

Width:  |  Height:  |  Size: 543 B

View File

@@ -0,0 +1,8 @@
<svg xmlns="http://www.w3.org/2000/svg" id="flag-icons-az" viewBox="0 0 512 512">
<path fill="#3f9c35" d="M0 0h512v512H0z"/>
<path fill="#ed2939" d="M0 0h512v341.3H0z"/>
<path fill="#00b9e4" d="M0 0h512v170.7H0z"/>
<circle cx="238.8" cy="256" r="76.8" fill="#fff"/>
<circle cx="255.9" cy="256" r="64" fill="#ed2939"/>
<path fill="#fff" d="m324.2 213.3 8.1 23 22-10.5-10.4 22 23 8.2-23 8.2 10.4 22-22-10.5-8.1 23-8.2-23-22 10.5 10.5-22-23-8.2 23-8.2-10.5-22 22 10.5z"/>
</svg>

After

Width:  |  Height:  |  Size: 488 B

View File

@@ -0,0 +1,12 @@
<svg xmlns="http://www.w3.org/2000/svg" id="flag-icons-ba" viewBox="0 0 512 512">
<defs>
<clipPath id="ba-a">
<path fill-opacity=".7" d="M0 0h512v512H0z"/>
</clipPath>
</defs>
<g fill-rule="evenodd" clip-path="url(#ba-a)">
<path fill="#009" d="M0 0h512v512H0z"/>
<path fill="#fc0" d="m77 0 437 437V0z"/>
<path fill="#FFF" d="m461.4 470.4-26.1-19.1-26.9 19 10.2-31.2-26.4-19.2h32.7l10.2-31 10 31.1 32.8.1-26.2 19.4zm76.7 10.4h-32.7l-10-31.2-10.2 31.1h-32.8l26.4 19.2-10.1 31.2 26.8-19 26.2 19-9.8-30.9zM391.8 379.6l26.2-19.4h-32.7L375.2 329 365 360h-32.7l26.4 19.3-10.1 31.1 26.8-19 26.1 19.1zm-60.3-60.4 26.2-19.4-32.8-.1-10-31.2-10.2 31.2-32.7-.1 26.4 19.2-10.2 31.2 26.9-19 26.1 19.1zm-59.7-59.7 26.2-19.4h-32.7l-10.1-31.2L245 240h-32.7l26.4 19.2-10.1 31.2 26.8-19 26.1 19zm-60.4-60.3 26.2-19.3-32.8-.1-10-31.2-10.2 31.2-32.7-.1 26.4 19.2-10.2 31.2 26.9-19 26.1 19-9.7-30.8zm-59.7-59.9L178 120l-32.7-.1-10-31.2-10.3 31.1H92.2l26.4 19.2-10.1 31.2 26.8-19 26.1 19zm-60-60L118 60l-32.7-.1-10-31.2L65 59.8H32.2L58.6 79l-10.1 31.2 26.8-19 26.2 19zm-60-60L58 0 25.2-.1l-10-31.2L4.8-.2h-32.7L-1.4 19l-10.1 31.2 26.8-19 26.1 19z"/>
</g>
</svg>

After

Width:  |  Height:  |  Size: 1.1 KiB

View File

@@ -0,0 +1,6 @@
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" id="flag-icons-bb" viewBox="0 0 512 512">
<path fill="#00267f" d="M0-.2h512V512H0z"/>
<path fill="#ffc726" d="M170.7-.2h170.6V512H170.7z"/>
<path id="bb-a" fill="#000001" d="M256 173.3c-5.5 15.1-11.2 30.9-23.3 43a51.7 51.7 0 0 1 14.6-2.3v63.6l-18 2.7c-.7 0-.9-1-.9-2.4a243.6 243.6 0 0 0-11.7-53.6c-.4-2.3-7.2-11.3-2-9.7.7 0 7.7 3 6.6 1.6a68 68 0 0 0-37.1-19.2c-1.2-.3-2 .3-.9 1.7 18 27.7 33.1 60.4 33 99.2 7 0 24-4.1 31-4.1v44.9h8.8l2-125.4z"/>
<use xlink:href="#bb-a" width="100%" height="100%" transform="matrix(-1 0 0 1 512 0)"/>
</svg>

After

Width:  |  Height:  |  Size: 631 B

View File

@@ -0,0 +1,4 @@
<svg xmlns="http://www.w3.org/2000/svg" id="flag-icons-bd" viewBox="0 0 512 512">
<path fill="#006a4e" d="M0 0h512v512H0z"/>
<circle cx="230" cy="256" r="170.7" fill="#f42a41"/>
</svg>

After

Width:  |  Height:  |  Size: 189 B

View File

@@ -0,0 +1,7 @@
<svg xmlns="http://www.w3.org/2000/svg" id="flag-icons-be" viewBox="0 0 512 512">
<g fill-rule="evenodd" stroke-width="1pt">
<path fill="#000001" d="M0 0h170.7v512H0z"/>
<path fill="#ffd90c" d="M170.7 0h170.6v512H170.7z"/>
<path fill="#f31830" d="M341.3 0H512v512H341.3z"/>
</g>
</svg>

After

Width:  |  Height:  |  Size: 302 B

View File

@@ -0,0 +1,7 @@
<svg xmlns="http://www.w3.org/2000/svg" id="flag-icons-bf" viewBox="0 0 512 512">
<g fill-rule="evenodd">
<path fill="#de0000" d="M512 511.6H.5V0H512z"/>
<path fill="#35a100" d="M511.8 512H0V256.2h511.7z"/>
</g>
<path fill="#fff300" fill-rule="evenodd" d="m389 223.8-82.9 56.5 31.7 91.6-82.7-56.7-82.8 56.7 31.7-91.6-82.8-56.6 102.3.2 31.6-91.7 31.5 91.6"/>
</svg>

After

Width:  |  Height:  |  Size: 379 B

View File

@@ -0,0 +1,5 @@
<svg xmlns="http://www.w3.org/2000/svg" id="flag-icons-bg" viewBox="0 0 512 512">
<path fill="#fff" d="M0 0h512v170.7H0z"/>
<path fill="#00966e" d="M0 170.7h512v170.6H0z"/>
<path fill="#d62612" d="M0 341.3h512V512H0z"/>
</svg>

After

Width:  |  Height:  |  Size: 233 B

View File

@@ -0,0 +1,4 @@
<svg xmlns="http://www.w3.org/2000/svg" id="flag-icons-bh" viewBox="0 0 512 512">
<path fill="#fff" d="M0 0h512v512H0"/>
<path fill="#ce1126" d="M512 0H102.4l83.4 51.2-83.4 51.2 83.4 51.2-83.4 51.2 83.4 51.2-83.4 51.2 83.4 51.2-83.4 51.2 83.4 51.2-83.4 51.2H512"/>
</svg>

After

Width:  |  Height:  |  Size: 276 B

View File

@@ -0,0 +1,15 @@
<svg xmlns="http://www.w3.org/2000/svg" id="flag-icons-bi" viewBox="0 0 512 512">
<defs>
<clipPath id="bi-a">
<path fill="gray" d="M60.8 337h175v175h-175z"/>
</clipPath>
</defs>
<g fill-rule="evenodd" clip-path="url(#bi-a)" transform="translate(-178 -986)scale(2.9257)">
<path fill="#18b637" d="m0 337 146.6 87.5L0 512zm293.1 0-146.5 87.5L293 512z"/>
<path fill="#cf0921" d="m0 337 146.6 87.5L293 337zm0 175 146.6-87.5L293 512z"/>
<path fill="#fff" d="M293.1 337h-27.3L0 495.7V512h27.3l265.8-158.7z"/>
<path fill="#fff" d="M197.2 424.5a50.6 50.6 0 1 1-101.2 0 50.6 50.6 0 0 1 101.2 0"/>
<path fill="#fff" d="M0 337v16.3L265.8 512h27.3v-16.3L27.3 337z"/>
<path fill="#cf0921" stroke="#18b637" stroke-width="1pt" d="m156.5 405.4-6.6.1-3.4 5.6-3.4-5.6-6.5-.1 3.2-5.8-3.2-5.7 6.6-.2 3.4-5.6 3.4 5.7h6.5l-3.1 5.8zm-22 38.2h-6.6l-3.4 5.7-3.4-5.6-6.6-.2 3.2-5.7-3.1-5.8 6.5-.1 3.4-5.6 3.4 5.6 6.6.2-3.2 5.7zm44.6 0h-6.6l-3.4 5.7-3.4-5.6-6.5-.2 3.1-5.7-3.1-5.8 6.6-.1 3.4-5.6 3.4 5.6 6.5.2-3.2 5.7z"/>
</g>
</svg>

After

Width:  |  Height:  |  Size: 1.0 KiB

View File

@@ -0,0 +1,14 @@
<svg xmlns="http://www.w3.org/2000/svg" id="flag-icons-bj" viewBox="0 0 512 512">
<defs>
<clipPath id="bj-a">
<path fill="gray" d="M67.6-154h666v666h-666z"/>
</clipPath>
</defs>
<g clip-path="url(#bj-a)" transform="translate(-52 118.4)scale(.7688)">
<g fill-rule="evenodd" stroke-width="1pt">
<path fill="#319400" d="M0-154h333v666H0z"/>
<path fill="#ffd600" d="M333-154h666v333H333z"/>
<path fill="#de2110" d="M333 179h666v333H333z"/>
</g>
</g>
</svg>

After

Width:  |  Height:  |  Size: 501 B

View File

@@ -0,0 +1,7 @@
<svg xmlns="http://www.w3.org/2000/svg" id="flag-icons-bl" viewBox="0 0 512 512">
<g fill-rule="evenodd" stroke-width="1pt">
<path fill="#fff" d="M0 0h512v512H0z"/>
<path fill="#00267f" d="M0 0h170.7v512H0z"/>
<path fill="#f31830" d="M341.3 0H512v512H341.3z"/>
</g>
</svg>

After

Width:  |  Height:  |  Size: 289 B

View File

@@ -0,0 +1,97 @@
<svg xmlns="http://www.w3.org/2000/svg" id="flag-icons-bm" viewBox="0 0 512 512">
<path fill="#cf142b" d="M0 0h512v512H0z"/>
<path fill="#006" d="M0 0h256v256H0z"/>
<path fill="#fff" d="M256 0v32l-95 96 95 93.5V256h-33.5L127 162l-93 94H0v-34l93-93.5L0 37V0h31l96 94 93-94z"/>
<path fill="#c8102e" d="m92 162 5.5 17L21 256H0v-1.5zm62-6 27 4 75 73.5V256zM256 0l-96 98-2-22 75-76zM0 .5 96.5 95 67 91 0 24.5z"/>
<path fill="#fff" d="M88 0v256h80V0zM0 88v80h256V88z"/>
<path fill="#c8102e" d="M0 104v48h256v-48zM104 0v256h48V0z"/>
<path fill="#fff" d="M467 146.6v161.6c0 43.1-86.1 57.2-86.1 57.2s-86.5-14-86.5-57.4V146.6z"/>
<path fill="#2f8f22" d="M467 308.2c0 43.1-86.1 57.2-86.1 57.2s-86.5-14-86.5-57.4c0 0 0-3.5 1.8-5.4 0 0-1 7.1 4.5 12.6 0 0-4.3-7.8 0-15.3 0 0-1.6 9.8 4.4 15.3 0 0-3.3-7.9.4-16.7 0 0-1.8 14.3 4.8 17.3 0 0 1.8-8.4-.9-13.6 0 0 4.6 1.8 4.3 13.8 0 0 1.5-1.8 1.8-10.5 0 0 .3 10 3.6 12.3 0 0 1.2-1-.4-5.5-1.5-4.4.6-6 1-6 0 0-.7 5 3.4 8.8 0 0-1.7-7.9.8-9 0 0-.6 6.7 4.7 8.1 0 0 .4-1.9-.8-4 0 0-1-2.5-.2-4.5 0 0 1.6 6 3.9 7 0 0-1.3-3.6 0-7 0 0 .2 5 4.8 7.1 0 0-3-4-2-8.2l28.8 1.4 14.9.7 44.7-3 7.6-6.7s3.1 4.1-1.7 10.8c0 0 4.7-.8 6.3-8.3 0 0 1.9 4.1-.7 8.8 0 0 5.2-5.4 6-11.3 0 0 2 5.8-3 12 0 0 4.5-1.6 6.4-8.1 0 0 1.5 4-2.8 9.5 0 0 8.1-4.1 8-13 0 0 3.2 4.8-.6 11.6 0 0 4-3.7 4.6-9.3 0 0 2.2 2.5-.3 9.4 0 0 5-4.8 5.9-9.9 0 0 1 4.8-3.3 10.8 0 0 3-.8 5.8-6.6 0 0 .7 2.4-1.8 6.6 0 0 2.7-.5 4.5-5.9 0 0 .4 3.2-.5 6 0 0 2.2-1.3 2.7-7.3 0 0 1.1 1.9 1.1 4.4v.8z"/>
<path fill="#d40000" stroke="#000" stroke-linejoin="round" stroke-width="1.2" d="M422.7 214.7s-3 .6-6.9-.6c-3.8-1.2-5.4-.7-6.6 0 0 0 1.6-3.1-2.2-5.6 0 0 1.2 3.2-.5 4.6 0 0-.7.7-1.7-.3 0 0-1.3-1.5-2.7-2.4 0 0 3.2-1.2 2.6-4.5-.6-3.3-2.4-3.6-3.2-4.1a6 6 0 0 0 0 2.4s-3.6-2 1.2-4.7 4-4.4 3-5.8a13.1 13.1 0 0 0-3.5-3.6s1 1.6.7 2.9c-.1 1.2-2.4 2-1.9-.1.5-2.4 0-2 0-4.3 0 0 4.2 1.4 6-2.8 0 0 1.5-4.3-3.8-6.4 0 0 1.3 1.8.7 3 0 0-1.2 2.2-2.5.6-1.3-1.7-2.3-2.2-2.2-4.2 0 0 5 .7 3.6-4.7 0 0-.8 3.6-7.2-1.2 0 0 4.2-4.2 2.5-7.6 0 0-.4-1.5-4.8-.7 0 0 3.8-2.4 2.2-4.5 0 0-.8-1.3-4.5.4 0 0 1.4-2.3-2.2-5 0 0-2.3 1.2-3.5 2.4 0 0-2.4-3-4-4.3 0 0-2.8 1.1-3.5 4.3 0 0-1.4-1.5-4.3-2.4 0 0-1.5 2.8.4 5 0 0-1.4 0-3.9-1.1 0 0-2.9-1.2-2.4 1.1.4 2.4.6 3 1.2 4.2 0 0-6.4-1.5-6.2 2a8.8 8.8 0 0 0 3.1 6.2s-3.6 4.8-6.7 1.2c0 0-1.2 1.2 1.2 4.2 0 0 2.4 2.5.4 4.2 0 0-2.5 2-3.7-2 0 0-4.2 4.1.7 7.2 0 0 3.1 1.8 6.3-1 0 0-1 8-4 6.4 0 0-1.8-1.2 1.4-2.9 0 0-4.8-.6-5.5 4 0 0-.6 3.5 3.6 5 0 0 3.1 1.2-.1 3.6 0 0-2.4 1.7-.9 4.4 0 0 1.8 2.8-2.8 3.2 0 0-2.4 0-3.4-.4 0 0-1 2-.3 4 0 0-2.4-1.7-7.5.2-5.3 2-5 .6-5.3 1.2l-1.5 2.4s2.7 3.6 2.8 3.3l-.6 4 1.5.6 10.7-4.8 11-5.7 9 .4 5.5 1.3 7.3.6 5.4-2.8h7.6l8.3 4.2 9.6 5.7 5 1 3.8-.3v-7.8z"/>
<path fill="#d40000" stroke="#000" stroke-linejoin="round" stroke-width="1.2" d="M335.6 223.7s4.1 2.2 6-.3c0 0 2.2-4.4-2.8-6 0 0 2.7-3.2-.3-6.2 0 0-1.5-1.6-4.1-.5 0 0-1.2-2.3-3.7-2.2 0 0-2.4 0-3.1 2.5 0 0-3.1-1.2-4.8.6 0 0-3 3.2 1 5.8l3 .3 2.8-1.4 3.2.9s-.8 3.2 2.8 6.5z"/>
<path fill="#64b4d1" stroke="#000" stroke-width="1.2" d="M429 216.1a6.7 6.7 0 0 1 6.8 3.8c2.7 6.2-3 9.6-3 9.6.4 1.3.5 3.2.5 3.2 7.9 1 6.5 9.8 6.5 9.8l-2.7-2.2c-4.5-1.8-9.3 2.2-12.6 8.6-3.3 6.6-1.8 9.5-1.2 17.3.6 7.7 13.1 12.4 13.1 12.4l-9.8 25c-3.8 10-11.9 5.9-14.3 3.7-2.2-2-2.8-.8-3.9 0-1.2 1 5.3 6-6.6 10.8-11.6 4.7-13.7 8.3-15.7 9.5-1.9 1.2-10 .5-10.7-.6-1-1-.5-1-3.6-2.9-3-1.7-8.1-3.5-13.7-6.2s-5.5-6.2-5.4-6.9c0-.7 2-6.5-4.6-1.9-6.6 4.7-12.2-2.2-12.2-2.2-1.2-1.7-6.8-16.4-6.8-16.4a92.4 92.4 0 0 0-4.3-12s-.3.8 4.6-2c4.7-2.7 7-7.3 8.7-11.9 1.6-4.6 0-12.5-.6-14-.6-1.6-4.2-8.9-8.7-10.4-4.5-1.6-7.6 2.4-7.6 2.4s-1.3-9 6.6-10c0 0 0-1.8.5-3.1 0 0-5.6-3.4-3-9.6 0 0 1.8-4.3 6.8-3.8l-1.2 2.4s-1.2 12.6 17.3 4.2c18.5-8.6 17.9-10.2 28.6-4.8l7.6-.1s11.1-5.3 14.7-3c3.6 2.3 16.3 9.4 16.3 9.4s12.4 4.7 15-4z"/>
<path fill="#fff" stroke="#00247d" stroke-miterlimit="10" stroke-width="1.2" d="M373.1 271s-.6-3.9-1.2-6.4c0 0-1.4-3.9 1-6.8l2.8-3.3s1.8-2.4 4-2.7c0 0 2.4 0 2.5-.5.2-.5 2.7-4.5 8.6 0 0 0 1.7-3 4.7-3.6 0 0 3-.8 4.6 1.4 0 0 3.4-2.6 6.4 1.7 0 0 4-2.4 7.2 2.3 0 0 3.9-2 6.4 2.1 2.5 4.3 2 6 2 6l2 6.8 6.5 8-15.3 5.8h-6.9l-13.7 3.6-24.3 1.9-6.7-8 9.5-8.3z"/>
<path fill="#d40000" stroke="#000" stroke-linejoin="round" stroke-width="1.2" d="M352.6 311.5s-3.6.1-5.5 1.2c-1.8.8-3.2 1.8-5.3 3.2 0 0-1.1 1.3-5.3.5 0 0-7.1-1.7-7.1 4 0 0-8.9.6-5.3 8.3 0 0 2.4 6 7.4 1.8 0 0-3.2 4.5 3 6.3 0 0 4.4 1.2 5.7-3.5 0 0 .7-1.8-1-4 0 0 2.2-.4 3.6-2.7 0 0-4.5 5.8.5 8 0 0 6.3 1.5 6.7-5 0 0-.6-3.2 1.9-4.3 0 0 5-1.2 7.1-6.6 0 0-7.1-3.9-6.4-7.2zM337.9 254s-5.6-2.5-8.3 0c0 0-3.6-2.2-7.5 0 0 0-3.7 2.4-6.3 5.2 0 0-1.8 1.5-1.2 6.4 0 0 1 3.5.4 5.1 0 0-1.2-.2-3.7 2.8 0 0-3 3.5-6 .3 0 0 1 4.6 6.2 3.8 0 0-2.5 2-.4 7 0 0 1.7 3.6-1 8.2 0 0 4.6-1.8 4.5-7.2 0 0-.5-3.6 1-6 0 0-1.5 2.2 1.6 7.1 0 0 2.4 3.6.5 7.2 0 0 4.4-1.6 4-7-.5-5.4-3-3.2-1.4-8.2 0 0 .5 2.6 1.8 4a7.2 7.2 0 0 1 2.4 7s2.6-3.4 2-6.8a13.1 13.1 0 0 0-1.3-4.4l8.3-4.8 4.3-7.5z"/>
<path fill="none" stroke="#000" stroke-miterlimit="10" stroke-width="1.2" d="M325.2 275.5s-3.6-.2-4-3m-6.2-1.8s1.2 0 2.4 1.2c0 0 .7 1.2 2 1"/>
<path d="M330.3 265.2s-1.8 0-2.9-.8c0 0-1-.7-1.5.4 0 0-1 1.6.7 2.3 0 0 2.3 1.2-1.2 3.4 0 0 4-1.6 2.4-3.6 0 0-1.8-1.2-1.2-1.7 0 0 .2-.4 1 0 .7.6 2.1.4 2.7 0"/>
<path fill="#784421" stroke="#000" stroke-width="1.2" d="m385 275 2-.6-13.9-48h-.5z"/>
<path d="M338.5 328.3s-3.2-1.9-6 .3c0 0 .4-1.2 2.5-1.7 0 0 1.1-3.2 4.2-2.9 0 0-1.3 1.6-3 2.8 0 0 1.9.2 2.5 1.5z"/>
<path fill="#64b4d1" stroke="#00247d" stroke-miterlimit="2.6" stroke-width="1.2" d="M327 335.8s-5.2-3.2-2.3-8.7c0 0 .8-1.5 2.4-1.2 0 0 3.2 1 .7 5.5 0 0-1.3 2.9-.7 4.5zm10.6 5.3s-7.4-3.4-5.1-9.2c0 0 .7-2 2.3-1.8 0 0 2.9.2 2.3 4 0 0-.8 3.6.5 7z"/>
<path d="M336 319.6s-2.2 1.7-3 2.8c0 0-1-1.2-2.2-1.8 0 0 1.4-.3 2.1.3 0 0 1.2-1 3.1-1.3"/>
<path fill="#64b4d1" stroke="#00247d" stroke-miterlimit="2.6" stroke-width="1.2" d="M342.6 339.6s6-1.4 4.8-7.5c0 0-.6-2.6-3-2.2 0 0-3 .8-1.1 4.6 0 0 1.2 2.6-.7 5.1z"/>
<path fill="#f5ce00" stroke="#000" stroke-miterlimit="2.6" stroke-width="1.2" d="m369 212.7 5.7 1.9s5.3 2.3 12.2 0l5.3-2-3.6 5.4v2.9l2.2 3.2s-1.4.6-5.4-2c0 0-4.4-3.4-9.7 0 0 0-3 2-5.3 2l3.4-3.8-1.3-3.5-3.6-4.3z"/>
<path fill="#fff" d="M344.9 332.5s.2-.4 0-.5l-.5.2s-.6 1 0 2.4c0 0 .5.9.2 1.8l.1.4s.3-.1.3-.4c0 0 .3-.8-.3-1.8 0 0-.6-1.4.2-2.1"/>
<path fill="#d40000" stroke="#000" stroke-linejoin="round" stroke-width="1.2" d="M425.3 223.7s-4.1 2.2-6-.3c0 0-2-4.4 3-6 0 0-2.8-3.2 0-6.2 0 0 1.6-1.6 4.2-.5 0 0 1.2-2.3 3.7-2.2 0 0 2.4 0 3.1 2.5 0 0 3.2-1.2 5 .6 0 0 2.8 3.2-1.3 5.8l-2.8.3-2.9-1.4-3.1.9s.8 3.2-2.9 6.5z"/>
<path fill="#f5ce00" stroke="#000" stroke-miterlimit="2.6" stroke-width="1.2" d="M392.2 220.4s0 .8-.8 1c0 0-1 .3-1.6-.9v-.3c0-.5-.2-2 1.4-3.3 0 0 2.7-2.1 7.7.5a192 192 0 0 0 14.8 7.5s3 1.6 7.8 1.8c0 0 6.6.5 9.3-4.1 0 0 2.2-3.5 0-5.8 0 0-.8-1-2.2-.8a3 3 0 0 0-1.8 1.2s-1.1 1.4 0 2.5c0 0 1.6 1 2.2-1 0 .2.5 1.7-.3 2.9 0 0-4 6-15-.1l-14.2-8.1s-7.2-3.7-11.6 2.1c0 0-3.5 4.8 1 7.9 0 0 3.4 2 5.4-1.2 0 0 1.8-3.1-1-4.4 0 0-2.3-1.2-3.3 1.2s1.8 3 2 1.3c0 0 0-.4.3 0z"/>
<path fill="#e4cb5e" stroke="#000" stroke-miterlimit="2.6" stroke-width="1.2" d="M335.3 245.2v-9c0-.8 0-1.2 1.2-2.2 1-.8 2.2-2.3 3.7 1.7 0 0 3.2-3.5 4.3-4 0 0 1.9-1.5 3.2.7 0 0 1.7-2.6 3-3.2 0 0 3.2-2 3.3 4.2l2.5-2.4s2-1.5 4.2.7c0 0 3.6 3.6 4 4.6 0 0 .9 1 1 2.7 0 0 0 2 1 3 0 0 1.2 1 2.2 1.2 0 0 2.5.1 3.6 2.6 0 0 .4-.5 1.7 11.2v21.5l-14.4 17.1-23.2-6.6-9.2-3.9-2.1-6.6 9-5.9 4.7-13-1.4-9.3-2.3-5.2z"/>
<path fill="#784421" stroke="#000" stroke-width="1.2" d="m399 256.4 1.2-1.5 2.5-2s4 10.4 4.2 12.7v3.2s6 1.6 7.1 10.7l-5 9.2-7.7-4.4-2.3-1.5z"/>
<path fill="#fff" d="M325.7 328.4s.2-.3 0-.6l-.5.4s-1.6 1.7-.3 4.4c0 0 0 .4.4.2 0 0 .2 0 0-.3 0 0-1.2-2.4.4-4z"/>
<path fill="none" stroke="#000" stroke-miterlimit="10" stroke-width="1.2" d="M349 326.6s.1-.8-.3-1.6c0 0-.4-.6-.3-1.5m5.6-90.1s0 2.3.7 4c.6 1.6 3 4.5 3 5.9"/>
<path fill="#d40000" stroke="#000" stroke-linejoin="round" stroke-width="1.2" d="M408.4 311.5s3.6.1 5.5 1.2c1.9.8 3.3 1.8 5.5 3.2 0 0 1 1.3 5.1.5 0 0 7.3-1.7 7.3 4 0 0 8.7.6 5.1 8.3 0 0-2.4 6-7.4 1.8 0 0 3.2 4.5-3 6.3 0 0-4.4 1.2-5.7-3.5 0 0-.7-1.8 1-4 0 0-2-.4-3.5-2.7 0 0 4.5 5.8-.5 8 0 0-6.3 1.5-6.7-5 0 0 .5-3.2-1.9-4.3 0 0-5-1.2-7.2-6.6 0 0 7.1-3.9 6.4-7.2z"/>
<path fill="none" stroke="#000" stroke-miterlimit="10" stroke-width="1.2" d="m351.2 243.4 6 47.8m-4.6-47.9 6.7 44.6m-5.5-44.8 7.7 44.2"/>
<path fill="#784421" stroke="#000" stroke-width="1.2" d="m366 283.5 2.1-.7-14-48h-.4z"/>
<path fill="none" stroke="#000" stroke-miterlimit="10" stroke-width="1.2" d="m358 241.3 14.2 35.5m-15-35 13.5 37"/>
<path fill="#fff" d="M335 337.6s-1.7-1.5-1.5-4.3c0 0 0-.6-.2-.7 0 0-.4-.1-.4.6 0 0-.4 2.9 1.6 4.5 0 0 .1.3.3.2 0 0 .3 0 0-.3z"/>
<path fill="none" stroke="#000" stroke-miterlimit="10" stroke-width="1.2" d="m358.8 240.8 14.3 32.4M355 242.8l9 43.7"/>
<path fill="#f5ce00" stroke="#000" stroke-miterlimit="2.6" stroke-width="1.2" d="M427.4 275c-6.4-3.6-7.8-11.4-7.8-11.4a24.6 24.6 0 0 1 1.7-14.3c4-8.6 11-10.3 11-10.3s-6.8 4.8-8.8 11.2c0 0-1.4 5.5-.5 10.7.8 5.5.4 4.1 1.7 8.3l2.7 6z"/>
<path fill="#784421" stroke="#000" stroke-width="1.2" d="m400 254.7-26.5 8.5-1.5 12c-6.3 9.1-19.2 10.7-19.2 10.7l10 10.7 19.1 4 10.2-7.8 9.2-8.4c-1-4.5-.5-11.2-.5-11.2 0-1.2.5-3.8.5-3.8s-1.6-10.7-1.2-14.5z"/>
<path fill="none" stroke="#000" stroke-miterlimit="10" stroke-width="1.2" d="M372.4 272.2s17.5-5.5 28-10m-36.5 20s22-4 37.4-12.8l5.6-3.8"/>
<path fill="none" stroke="#000" stroke-miterlimit="10" stroke-width="1.2" d="m406.9 268.8-6 4.4s-24.6 11.2-43.3 11.6m43.2-3.6s-18.9 9.7-29.6 9.8"/>
<path fill="#d40000" stroke="#000" stroke-linejoin="round" stroke-width="1.2" d="M423.2 254s5.6-2.5 8.3 0c0 0 3.6-2.2 7.7 0 0 0 3.5 2.4 6.2 5.2 0 0 1.8 1.5 1.2 6.4 0 0-1 3.5-.4 5.1 0 0 1.2-.2 3.6 2.8 0 0 3.2 3.5 6 .3 0 0-.9 4.6-6 3.8 0 0 2.4 2 .2 7 0 0-1.5 3.6 1 8.2 0 0-4.6-1.8-4.3-7.2 0 0 .3-3.6-1-6 0 0 1.3 2.2-1.8 7.1 0 0-2.3 3.6-.3 7.2 0 0-4.6-1.6-4-7 .3-5.4 3-3.2 1.2-8.2 0 0-.3 2.6-1.6 4a7.2 7.2 0 0 0-2.4 7s-2.6-3.4-2-6.8c.6-3.5 1.1-4.4 1.1-4.4l-8.3-4.8-4.2-7.5z"/>
<path fill="#fff" stroke="#00247d" stroke-miterlimit="10" stroke-width="1.2" d="M328 284.4s.8-3.7 4.2-2.4c0 0 1.2-6 7.8-6.2 6.4-.2 6.8 6.4 6.8 6.8 0 0 2-2.8 5-2.5 0 0 5.6-.3 3.7 8.5l1 1.2s4-9.9 12.7-7.4c0 0 8.3 2.6 3 10.7 0 0 4.1 5.5 7.6 5 3.6-.5 6.7-1.6 10.1-7.8 3.6-6.2 11.7-7.2 13.7-6.8 2 .3 3.7 1.8 4 3.2 0 0 4.4-14.3 19.9-12.2l6.2 3.3 2.4 1-3.6 10L424 308l-6.5 2-6.8-3.9-2.4 1.2-.1 5.9-9 6.4-6.2 2.5-6.8 4.8-1.6 4.2s-3.7-1.7-8 0l-1.5-3.6-4-3.7-15.5-7.4-2.8-9-2.8-1.3-3.2 3.6-4.6.6-6.9-4.8-7.5-21z"/>
<path fill="none" stroke="#000" stroke-miterlimit="2.6" stroke-width="1.2" d="M395.5 214s-6-.2-5.7 6"/>
<path fill="#f5ce00" stroke="#000" stroke-miterlimit="2.6" stroke-width="1.2" d="M434.4 279.3c-10.3-3.2-13.1-14.3-13.1-14.3a25.5 25.5 0 0 1 1.3-15.5c4.8-11 12.6-11 12.6-11a4 4 0 0 1 4.6 3.2c.3 2.4-1.3 3.3-1.3 3.3-2.8 1.5-4.6-.5-4.6-.5-1.2-1.6-.2-2.9-.2-2.9.7-1 2-.4 2-.4 1.2.2 1 1.6 1 1.6s.3-1.6-1.2-1.8c0 0-3.2-.7-6.8 3.8 0 0-4.8 6.1-4.8 14.1 0 0-.6 14.8 14.8 18.6 0 0-1.7 2.4-4.7 11.1 0 0-3.3 11.2-6.4 17.3 0 0-4.3 8.6-13.8 5.1 0 0-5.6-2.5-5.6-6.5 0 0-.4-3.8 3-4 0 0 3.3-.3 3.3 2.5 0 0 0 3-3.6 2.4 0 0-1.2-.3-1-1.5 0 0 .2-1.2 1.7-.6 1.6.6 0 0 0-.1 0 0-.6-.3-1.2 0 0 0-.6 0-.6 1 0 0 0 .6.8 1.1l1.6.2s1 2 3.1 2.7a8 8 0 0 0 7-1.2 10.7 10.7 0 0 0 3-4.3 113.3 113.3 0 0 0 5.3-13.5s1.8-5.7 3.3-8.7z"/>
<path fill="#f5ce00" stroke="#000" stroke-miterlimit="2.6" stroke-width="1.2" d="M405.3 307.4s2-.2 2 1.5c0 0 0 2.4-3.2 1.9 0 0-3-.6-1.9-4 0 0 .7-2.3 3.6-2 0 0 2.7 0 4 3.8 0 0 .9 3.3-.8 6-1.8 3-6.2 5-8.3 6 0 0-8.8 3.3-11.4 5.3 0 0-4 2.9-2.1 5.6 0 0 .7 1.1 1.6 1.1 0 0 1.2 0 1.4-1.2 0 0 0 .7-.8 1 0 0-.8.4-1.6-.3 0 0-1-1-.3-2.4 0 0 1.1-1.6 3.6-.6 0 0 2 1.1 1.2 3.3 0 0-.8 2.1-3.3 2 0 0-2 0-3.3-1.2-1.9-2.1-2-6-.2-8 0 0 1.6-2.1 4.8-3.6l9-3.5a18 18 0 0 0 6.4-4.1s1.3-1.4 1.8-4c0 0 .3-2-.9-2.4l-1.2-.3z"/>
<path fill="none" stroke="#000" stroke-miterlimit="2.6" stroke-width="1.2" d="M405.5 307.4s2.2-.4 3.5 2.2c0 0 .7 1.5.8 2.5m.8-9s-2.2.3-1.1 3.4c1.2 2.9 3 3.7 3.6 4.2"/>
<path fill="#f5ce00" stroke="#000" stroke-miterlimit="2.6" stroke-width="1.2" d="M369 220.4s0 .8.9 1c0 0 .8.2 1.3-.9l.1-.3c0-.5.3-2-1.3-3.3 0 0-2.7-2.1-7.7.5 0 0-4 2-6.7 3.6 0 0-7.2 3.8-8.1 4 0 0-3.1 1.6-7.9 1.8 0 0-6.6.5-9.3-4.1 0 0-2.1-3.5 0-5.8 0 0 .8-1 2.3-.8.6.1 1.2.4 1.8 1.2 0 0 1 1.4-.2 2.5 0 0-1.5 1-2.1-1 0 .2-.4 1.6.5 3 0 0 3.9 5.9 14.8-.3l14.3-8s7.1-3.7 11.5 2c0 0 3.5 4.8-1 8 0 0-3.3 2-5.4-1.2 0 0-1.7-3 1-4.4 0 0 2.3-1.2 3.4 1.2 1 2.4-2 3-2.1 1.3 0 0 0-.4-.2 0zm-35.2 54.7c6.3-3.5 7.7-11.5 7.7-11.5 1.4-8-1.7-14.3-1.7-14.3-4-8.6-11-10.3-11-10.3s6.9 4.8 8.8 11.2c0 0 1.5 5.5.6 10.7-.9 5.5-.5 4.1-1.8 8.3z"/>
<path fill="none" stroke="#000" stroke-miterlimit="2.6" stroke-width="1.2" d="M365.7 214s6-.2 5.6 6"/>
<path fill="#f5ce00" stroke="#000" stroke-miterlimit="2.6" stroke-width="1.2" d="M326.6 279.3c10.4-3.2 13.1-14.3 13.1-14.3a25.5 25.5 0 0 0-1.2-15.5c-4.7-11-12.6-11-12.6-11a4 4 0 0 0-4.5 3.2c-.4 2.4 1.3 3.3 1.3 3.3 2.7 1.5 4.5-.5 4.5-.5 1.2-1.6.2-2.9.2-2.9-.7-1-2-.4-2-.4-1.2.2-1 1.6-1 1.6s-.3-1.6 1.3-1.8c0 0 3.2-.7 6.8 3.8 0 0 4.7 6.1 4.7 14.1 0 0 .6 14.8-14.8 18.6 0 0 1.7 2.4 4.7 11.1 0 0 3.3 11.2 6.5 17.3 0 0 4.2 8.6 13.8 5.1 0 0 5.6-2.5 5.6-6.5 0 0 .3-3.8-3-4 0 0-3.4-.3-3.4 2.5 0 0 0 3 3.6 2.4 0 0 1.2-.3 1-1.5 0 0-.1-1.2-1.7-.6-1.5.6 0 0 0-.1 0 0 .6-.3 1.2 0 0 0 .6 0 .6 1 0 0 0 .6-.7 1.1l-1.6.2s-1 2-3.2 2.7a7.5 7.5 0 0 1-7-1.2 10.7 10.7 0 0 1-3-4.3 113.5 113.5 0 0 1-5.3-13.5s-1.7-5.7-3.2-8.7l-.6-1.2z"/>
<path fill="#f5ce00" stroke="#000" stroke-miterlimit="2.6" stroke-width="1.2" d="M355.8 307.4s-1.9-.2-1.9 1.5c0 0 0 2.4 3.1 1.9 0 0 3-.6 2-4 0 0-.8-2.3-3.7-2 0 0-2.7 0-3.9 3.8 0 0-1 3.3.7 6 1.8 3 6.2 5 8.4 6 0 0 8.7 3.3 11.3 5.3 0 0 4 2.9 2.1 5.6 0 0-.6 1.1-1.6 1.1 0 0-1.2 0-1.3-1.2 0 0 0 .7.7 1 0 0 .8.4 1.6-.3 0 0 1-1 .3-2.4 0 0-1-1.6-3.5-.6 0 0-2.1 1.1-1.2 3.3 0 0 .8 2.1 3.3 2 0 0 1.9 0 3.2-1.2 1.9-2.1 2-6 .3-8 0 0-1.6-2.1-4.7-3.6-2-.6-5.5-2.1-9.1-3.5a16.5 16.5 0 0 1-6.4-4.1s-1.3-1.4-1.8-4c0 0-.4-2 .8-2.4z"/>
<path fill="none" stroke="#000" stroke-miterlimit="2.6" stroke-width="1.2" d="M355.6 307.4s-2.2-.4-3.5 2.2c0 0-.7 1.5-.8 2.5m-.7-9s2.1.3 1 3.4c-1.1 2.9-3 3.7-3.5 4.2m27.4-91.1s5.1-3.3 10.4.3m-39.7 31.3s.7-3-2.7-8l-3.2-7.5m7.4-3.3 2.4 6.6 2.9 6.8"/>
<path fill="none" stroke="#000" stroke-miterlimit="10" stroke-width="1.2" d="M348.5 254.3s2 2.1 1.8 5.6m-8-7.9s2 1 1.8 6.8c0 0 0 4 3 6.2m-5.2 1.4s6.6-.7 7.1 3.5c0 0 0 4 2.4 4.3 0 0 3.3.3 4 3.6M344 271s1.2 1.7 2.4 2.6m6.2-7s1.7 2.7 2 4.1m5.4-35s1.5 2.1 3 3m3.2 9.6s3.3 1.6 2.9 10c0 0-.5 5 1 7.7"/>
<path fill="#784421" stroke="#000" stroke-width="1.2" d="m350.5 242.6.3.8s6 .3 9.2-3.8l-.4-.8s-5.2-.3-9 3.8z"/>
<path fill="none" stroke="#000" stroke-miterlimit="10" stroke-width="1.2" d="M372 274.5s20.7-6 28.7-9.6"/>
<path fill="#784421" stroke="#000" stroke-width="1.2" d="m369.9 236.5-.2-.6 10-4 .3.8z"/>
<path fill="none" stroke="#000" stroke-miterlimit="10" stroke-width="1.2" d="m370.7 236.1 6.8 33.3m-5.6-33.6 7.8 33m-6.5-33.6 8.5 32.9m-5.1-34.1 11.5 24.6m-10-25 12.3 24.2M379.2 233l13.3 24.3M377 269.6l5.3-1.6m-9.2-1.6s15.3-4.5 27-9.2M372.9 268s19.4-5 27.2-8.8m-21.3 24.6 1 3.3 2.8-1-.9-3.1m5-1.3 1 3 2.7-.9-1-3m-16-17.6-.2-4.2 25.5-7.7 1.4 3.6m-16 .8 1.3 3.8m7.5-6.4 1.7 3.6m.4-4.3 1.6 3.3m.5-4 1.5 3.6m0-4 2.9-1.6 1.2 3.1m-2.6-2.3 1.4 3.3"/>
<path fill="none" stroke="#00247d" stroke-miterlimit="10" stroke-width="1.2" d="M336.9 299.1s-5-5.1 0-10c0 0-5.5-2.6-4.7-7m13.6 21s-5.2.7-3.7-9.4c0 0-2.1 4-2.9 6a4.7 4.7 0 0 0 2 5.4c1 .6 5.6 1.8 7-1.2m-8.2-16.2s-2.2 1.9-.6 5.4m2.7-5s.2 3.5 2 5.4m-.4-6.7s0 4 2.8 6.6m-1.4-8s0 4.5 3.3 7.4m13.5-.7s1.7-3.9 5.2-3.6c0 0-1.6.8-1.6 2.5 0 0-.3 3 2.8 3.2 0 0 2.5.4 3.9-1"/>
<path fill="none" stroke="#00247d" stroke-miterlimit="10" stroke-width="1.2" d="M370.5 309.1s-9-4.2-8-10.1c0 0 .4-3.6 4-5.4m-2 3.8s-.8 2.5 1 4.3m1-6s-1.1 2.8.8 4.8m1.4-6.3s-1.3 2.4.2 4.5m-8.3 11s4.8 4.3 8.6 4.3m-10.2-2.9s4.6 3.6 7.4 4.2m-9-3.2s5.6 4.9 9 5.2m13.7 4.6s-5.4 3-1.1 6.2m-2.4-9.4 9-4.6m-6.8 6.2s9.1-5.5 11.7-6.7m-7 7.2s7.7-5.2 12-7.5m-6.9 7.1s5.4-4 10.5-7.1m1.8-5.1s-2.6-3.9-11.2 0c0 0 3.2-2.9 9.4-5.2m8.6-16.3s.7 3.1 0 5"/>
<path fill="none" stroke="#00247d" stroke-miterlimit="10" stroke-width="1.2" d="M393.9 301.7s1.7-2.6 6.3-4c0 0 1.2 3 4.7 2.5 0 0 5.3-1.1 3.6-7 0 0-1-4.2-7.1-4.7m18-7.3s6.2 1.2 6 6.1c0 0 .7 7.6-7.3 9m6.5-12s1.7-3.7 5.5-5.2m-4.5-2.2s1.6 2.8 2.7 3.1m-3.6-1 2 2.5m-2.6-.5a8 8 0 0 0 1.6 1.6m-33.4-30.8s1.2-2 4.3-1.2m12.2 15.8s1.9-7.8 8.4-5m-2.6-.6s.6-3.6-1-5.5m-3.5 5.2s.8 1.5 0 2.7"/>
<path fill="#64b4d1" stroke="#00247d" stroke-miterlimit="2.6" stroke-width="1.2" d="M423.5 341s7.4-3.3 5.2-9.1c0 0-.7-2-2.4-1.8 0 0-2.9.1-2.4 4 0 0 1 3.8-.5 7z"/>
<path fill="#fff" d="M426.2 337.6s1.6-1.5 1.4-4.3c0 0-.1-.6.1-.7 0 0 .4-.1.4.6 0 0 .5 2.9-1.5 4.5 0 0 0 .3-.3.2 0 0-.2 0-.1-.3"/>
<path fill="#64b4d1" stroke="#00247d" stroke-miterlimit="2.6" stroke-width="1.2" d="M434 335.8s5.3-3.2 2.4-8.7c0 0-.8-1.5-2.4-1.2 0 0-3.2 1-.7 5.5 0 0 1.2 2.9.7 4.5z"/>
<path fill="#fff" d="M435.4 328.4s-.3-.3 0-.6l.3.4s1.6 1.7.4 4.4c0 0-.2.4-.5.2v-.3s1.2-2.4-.2-4z"/>
<path fill="#64b4d1" stroke="#00247d" stroke-miterlimit="2.6" stroke-width="1.2" d="M418.4 339.6s-5.8-1.4-4.7-7.5c0 0 .5-2.6 3-2.2 0 0 3 .8 1.1 4.6 0 0-1.2 2.6.6 5.1z"/>
<path fill="#fff" d="M416.2 332.5s-.2-.4 0-.5c0 0 .3 0 .4.2 0 0 .6 1 .2 2.4 0 0-.5.9-.3 1.8 0 0 0 .3-.2.4l-.3-.4s-.2-.8.3-1.8c0 0 .6-1.4 0-2.1z"/>
<path d="M422.6 328.3s3.3-1.9 6 .3c0 0-.3-1.2-2.4-1.7 0 0-1.1-3.2-4.2-2.9 0 0 1.2 1.6 3 2.8 0 0-1.8.2-2.4 1.5m2.4-8.7s2.4 1.7 3.2 2.8c0 0 .8-1.2 2-1.8 0 0-1.3-.3-2 .3 0 0-1.2-1-3.1-1.3z"/>
<path fill="none" stroke="#000" stroke-miterlimit="10" stroke-width="1.2" d="M412.1 326.6s-.2-.8.4-1.6c0 0 .3-.6.2-1.5m23.4-48s3.4-.2 4-3m6-1.8s-1.2 0-2.3 1.2c0 0-.8 1.2-2 1"/>
<path d="M431 265.2s1.7 0 2.7-.8c0 0 1-.7 1.7.4 0 0 1 1.6-.9 2.3 0 0-2.1 1.2 1.3 3.4 0 0-4.1-1.6-2.4-3.6 0 0 1.8-1.2 1.1-1.7 0 0-.2-.4-1 0-.7.6-2 .4-2.6 0z"/>
<path fill="#64b4d1" stroke="#00247d" stroke-miterlimit="2.6" stroke-width="1.2" d="M433.3 221.6s.9-1.2.5-4.4 2.6-3.7 3.7-2.8c0 0 1.2 1 0 3.1a8.3 8.3 0 0 1-4.2 4.1z"/>
<path fill="#fff" d="M434.4 219s1.2-1.1.6-3.6l.1-.2h.4s.6 2.8-.6 4.2c0 0-.3.3-.5 0z"/>
<path fill="#64b4d1" stroke="#00247d" stroke-miterlimit="2.6" stroke-width="1.2" d="M432.5 220.4s-.1-1.4-2.4-3.6c-2.4-2.4-.5-4.4 1-4.4 0 0 1.4 0 2 2.3a8.3 8.3 0 0 1-.6 5.7z"/>
<path fill="#fff" d="M432.1 217.4s0-1.6-2.1-3.3v-.4h.3s2.3 1.8 2.3 3.8c0 0 0 .3-.2.3 0 0-.3 0-.3-.4"/>
<path fill="#64b4d1" stroke="#00247d" stroke-miterlimit="2.6" stroke-width="1.2" d="M429.3 219.3s-.6-1-3.5-2.1c-2.8-1-2.1-3.5-1-4 0 0 1.4-.5 2.7 1.1a7.6 7.6 0 0 1 1.8 5z"/>
<path fill="#fff" d="M428 217.3s-.6-1.4-3.3-2.1c0 0-.2 0-.2-.3 0 0 0-.2.4-.1 0 0 2.8.6 3.7 2.4l-.2.3s-.2 0-.3-.2z"/>
<path fill="#64b4d1" stroke="#00247d" stroke-miterlimit="2.6" stroke-width="1.2" d="M431 220.4s-1.3.5-4.4-1c-3-1.5-4.4 1.1-3.8 2.3 0 0 .5 1.6 2.9 1.2a8.3 8.3 0 0 0 5.4-2.4z"/>
<path fill="#fff" d="M424 221.4s1.3 1 3.8 0h.4s0 .2-.2.3c0 0-2.7 1.2-4.5.1 0 0-.2 0 0-.3h.4z"/>
<path fill="none" stroke="#000" stroke-miterlimit="2.6" stroke-width="1.2" d="M426.6 210.7s1.5.8 1.2 2.5"/>
<path fill="none" stroke="#000" stroke-miterlimit="10" stroke-width="1.2" d="M433.3 211s.6 1.9 0 3"/>
<path fill="#64b4d1" stroke="#00247d" stroke-miterlimit="2.6" stroke-width="1.2" d="M327.6 221.6s-.9-1.2-.5-4.4c.3-3.4-2.5-3.7-3.6-2.8 0 0-1.2 1-.1 3.1a8.3 8.3 0 0 0 4.2 4.1z"/>
<path fill="#fff" d="M326.5 219s-1-1.1-.6-3.6v-.2h-.5s-.5 2.8.7 4.2c0 0 .3.3.4 0z"/>
<path fill="#64b4d1" stroke="#00247d" stroke-miterlimit="2.6" stroke-width="1.2" d="M328.5 220.4s0-1.4 2.4-3.6c2.4-2.4.5-4.4-1-4.4 0 0-1.5 0-2 2.3a8.3 8.3 0 0 0 .6 5.7z"/>
<path fill="#fff" d="M328.9 217.4s0-1.6 2-3.3c0 0 .2-.3 0-.4h-.2s-2.4 1.8-2.4 3.8c0 0 0 .3.3.3 0 0 .3 0 .3-.4"/>
<path fill="#64b4d1" stroke="#00247d" stroke-miterlimit="2.6" stroke-width="1.2" d="M331.6 219.3s.6-1 3.6-2.1c2.7-1 2-3.5.8-4 0 0-1.2-.5-2.6 1.1a7.6 7.6 0 0 0-1.8 5z"/>
<path fill="#fff" d="M333 217.3s.5-1.4 3.1-2.1c0 0 .3 0 .3-.3 0 0 0-.2-.3-.1 0 0-2.8.6-3.6 2.4v.3s.3 0 .4-.2z"/>
<path fill="#64b4d1" stroke="#00247d" stroke-miterlimit="2.6" stroke-width="1.2" d="M329.8 220.4s1.5.5 4.4-1c3.1-1.5 4.5 1.1 4 2.3 0 0-.6 1.6-3 1.2a8.3 8.3 0 0 1-5.4-2.4z"/>
<path fill="#fff" d="M337 221.4s-1.3 1-4 0h-.2v.3s2.9 1.2 4.5.1c0 0 .3 0 0-.3z"/>
<path fill="none" stroke="#000" stroke-miterlimit="2.6" stroke-width="1.2" d="M334.4 210.7s-1.6.8-1.2 2.5"/>
<path fill="none" stroke="#000" stroke-miterlimit="10" stroke-width="1.2" d="M327.6 211s-.6 1.9 0 3"/>
<path d="M394.1 193.6s1 2.7.6 5.2c-.4 2.4.1 2.9 1 3.4.7.3 2.3-.4 2.4-2.2 0 0 2 3.8-1.7 6.3 0 0-2.8 1.7-5-.4-.9-.9-1.2-3-.8-5 0 0 .6-2.7-.4-5.5 0 0 1.5 1.6 1.2 4.9 0 0-.9 6 3.5 5.6 0 0 3 0 3.1-3.6 0 0-1.2 1.2-2.5.8a2.4 2.4 0 0 1-1.8-2.8c.2-1.6.6-4.3.4-6.7m-4.8 9.5s-.3 4.8-4.5 5.9c0 0 .6-.9-.4-3.3 0 0-1-1.2-1-3.3 0 0-1.1 1 .3 3.8 1 1.7.1 3.6-.1 3.7-.4.1 7-1 5.6-6.7zm-5.6-4.5s-1-1.2-1.2-3.8c0-2.7-.4-3.4-.8-3.6 0 0 .5 2.3.4 3.6 0 1.5 0 2.4.3 3 0 0-2.4.3-3.8-3-1.3-3.3-2.7-3-3.5-3 0 0 .9.1 2.4 3 1.7 3 2.2 3.7 6.2 3.7zm-10.7-7s1.2 3.2 1.3 4.8c0 0-3.1-1-4-3.5 0 0-3.2 1-2 4.7 0 0-2.8-1-4.1-3.2 0 0 1.5 1.2 3 1.7 0 0-.2-3.1 3.6-4.2 0 0 .6 2.7 2.7 3.3zm5-5.4s1.2 1.5 3.3 1.5a3.6 3.6 0 0 0 3.3-1.5s-.2 2.6-3.3 2.7c0 0-3.3 0-3.3-2.7m-13.5 18.5 2 1.9s1.2 1.2 2-.3c0 0 1.4-2.4 3-2.2 0 0-1.3.7-2.4 3 0 0-.3.7-1.2.8-.5 0-1 .2-1.8-.7l-1.6-2.4zm16.7-29.4c-3.2 0-.5 2.4-.5 2.4 0 4-3 5.4-5.2 4.2-2.3-1.2-.5-4-.5-4s-2.4 1.5-1 3.9c1.6 2.4 5.8 1.2 7.2-.9 1.6 2.2 5.7 3.3 7.2.9 1.6-2.4-.9-4-.9-4s1.8 2.9-.4 4c-2.2 1.3-5.4 0-5.3-4 0 0 2.8-2.5-.5-2.5zm2-4.4s1.2 2 1 5c0 0 1-3-1-4.9zm-10 4.7s-.2-2.2-2.4-2.4c0 0 2 1.3 2.4 2.4m16.1 0s.3-2.2 2.4-2.4c0 0-1.8 1.3-2.4 2.4m-19.3 3.2s1.7.5 2.6-.7zm-5.4-13.1s2-.1 3.9 2.7c0 0-2 1-2.4 1.6 0 0 0-1 1-1.7 0 0-.4-1.4-2.5-2.5zm32 0s-2-.1-3.8 2.7c0 0 1.9 1 2.4 1.6 0 0 0-1-1-1.7 0 0 .4-1.4 2.4-2.5zm-14.7 2.2s1.7.5 3.8-.7c0 0 2.7-1.4 4.3 0 0 0-1.4-.7-4.3.7 0 0-2.7 1.6-3.8 0"/>
<path fill="#fff" d="M383.7 169.6s1.5-2.5 6-2c0 0-1.2 3.6-6 2"/>
<ellipse cx="386.7" cy="168.8" fill="#784421" rx=".8" ry="1.1"/>
<ellipse cx="386.7" cy="168.8" rx=".5" ry=".7"/>
<path d="M374.2 164.1s2.7.3 4.5 1.2c0 0 1.8 1.2 3.8-.3 0 0 2.3-1.4 3.7-3.1 0 0-3.4 2.3-4.7 2.7 0 0-1.2-1-1.6-2.3 0 0 .1-1 2-2.7 0 0-2.5.8-3 2.9a7.2 7.2 0 0 0 1.5 2.3s-.5.3-1.7-.6c0 0-2.7-.8-4.5 0zm7.1 17c-2.3 2.1 0 1.9 0 1.9s2.4.2 0-2zm-1.4-13.2s-1.8.5-4-.7c0 0-2.6-1.4-4.2 0 0 0 1.4-.7 4.3.7 0 0 2.8 1.6 4 0z"/>
<path fill="#fff" d="M378.1 169.6s-1.4-2.5-6-2c0 0 1.2 3.6 6 2"/>
<ellipse cx="375" cy="168.8" fill="#784421" rx=".8" ry="1.1"/>
<ellipse cx="375" cy="168.8" rx=".5" ry=".7"/>
<path fill="none" stroke="#000" stroke-width="1.2" d="M467.3 146.6v161.6c0 43.1-86.2 57.2-86.2 57.2s-86.3-14-86.3-57.2V146.6z"/>
</svg>

After

Width:  |  Height:  |  Size: 22 KiB

View File

@@ -0,0 +1,36 @@
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" id="flag-icons-bn" viewBox="0 0 512 512">
<path fill="#f7e017" d="M0 0h512v512H0z"/>
<path fill="#fff" d="M0 35.6V263l512 106.7v-121z"/>
<path fill="#000001" d="M0 156.4v106.7l512 213.3V369.8z"/>
<g fill="#cf1126" transform="translate(-256)scale(.71111)">
<path d="M695.7 569.7a117.2 117.2 0 0 1-49.4-17.2c-2.4-1.6-4.6-3-5-3-.4 0-.6 1.9-.6 4.1 0 6.4-2.6 9.6-9 11.3-6.2 1.6-15.6-1.6-23.2-8a68.3 68.3 0 0 0-24.7-13.5 39.9 39.9 0 0 0-28 3.6 8.7 8.7 0 0 1-2.8 1.3c-1.1 0-1-6.9.2-9 1.5-3 5.1-5.8 9.4-7.3 2.2-.8 4-1.8 4-2.3 0-.4-.8-2-1.7-3.6-2.9-5.1-1.7-10 3.4-13.9 5.2-4 14-4.6 21.7-1.7a32 32 0 0 0 4 1.4c1 0 .4-1.5-2.4-5.6-3.2-4.7-3.9-7-3.5-12.7a14.7 14.7 0 0 1 13.5-13.5c5.8-.4 9.4 1.6 18 9.7a144 144 0 0 0 86 41.6c8.3 1 24.8.5 34.5-1a156 156 0 0 0 81.8-40.8c6.4-6 9.4-7.6 14.7-7.6 4.5 0 7.7 1.4 11 5 3 3.3 4 6.4 3.6 11.5-.2 3.2-.7 4.7-2.6 7.9-2.8 4.5-2.3 5 3.2 2.8 7.6-3 16.9-1.6 21.9 3.2 4.4 4.2 4.8 8.4 1.4 14-1.3 2.1-2.3 4-2.3 4.4 0 .6 1 .8 5.5 1.6 6 1 9.5 5.4 9.5 12.2 0 2-.3 3.7-.6 3.7s-2.6-.9-5-1.9c-7-2.9-11-3.6-19.2-3.5-6.2 0-8.3.3-12.6 1.7a57.5 57.5 0 0 0-19.5 11.5c-6.4 5.7-10.4 7.5-16.6 7.4-5.8 0-9.7-1.7-11.8-5-1.1-1.8-1.3-2.8-1-6.8.2-2.6.1-4.7 0-4.7-.3 0-2.5 1.4-5 3.1A80.5 80.5 0 0 1 778 560a181.6 181.6 0 0 1-82.3 9.7"/>
<path d="M706.3 525.2a136.4 136.4 0 0 1-97.9-55.7c-24.4-33.2-32-77.1-24.6-117.2 4-18.3 12-36.6 25.5-49.6a114.6 114.6 0 0 0-8.7 74.3c9 49.8 51 91.9 101.3 99.2 20 5.7 40.5-.4 59.5-6.5 42-14.8 74-54.6 77.8-99.1 3.3-24-.3-49.1-11.2-71 6.2 3.3 14 16.2 18.6 24.8 16 31 16.7 68.1 7.3 101.2-12.8 42.1-45 79-87.5 92.4a165.7 165.7 0 0 1-60 7.2z"/>
<g id="bn-a">
<path d="M512 469.9c-2.5-.4-5.3 2.1-4.3 4.7 1.8 2.6 5 4 7.8 5.2a54.2 54.2 0 0 0 23.2 3.6 49.6 49.6 0 0 0 17-3c3-1 6.8-2 8-5.4 1.3-2.1-1-4.3-3.1-3.9-3 .7-6 2-9 2.9a57.7 57.7 0 0 1-20.3 2 54 54 0 0 1-14.4-4.2c-1.6-.7-3.1-1.7-4.9-1.9"/>
<path d="M514.8 459.5c-2.5-.4-4.7 2.6-3.7 5 2 2.8 5.3 4.3 8.4 5.6a42.4 42.4 0 0 0 17 2.9h1.5a37.6 37.6 0 0 0 14.4-2.8c2.7-1.1 6.1-2.2 7.3-5.2.9-1.7.2-4.1-2-4.3-1.8 0-3.5 1.2-5.3 1.7a44.3 44.3 0 0 1-20.6 3.2c-4.4-.5-8.5-2.1-12.5-4-1.5-.7-2.8-1.8-4.5-2z"/>
<path d="M518.3 449.6c-2.2-.3-3.7 2.2-3.3 4.1.3 1.8 1.8 3 3.1 4a30 30 0 0 0 18.6 5.3h1.6a28 28 0 0 0 12-2.8c2.5-1 5.4-2.3 6.3-5.2.4-1.3.6-3.2-.9-4-1.6-.8-3.1.5-4.5 1a34 34 0 0 1-15.5 3.9 27 27 0 0 1-13.1-4c-1.5-.7-2.7-2-4.3-2.3"/>
<path d="M481.5 302.7c-3.2 3.3-.7 9.3-1 13.5 1.8 13.2 3.9 26.5 8.8 39 6 12 18.8 18.5 26.5 29.2 2.8 5.1 1.8 11.3 2.4 17 .4 15.3.3 30.7 0 46 7 3.6 14.5 7 22.5 5.7 4.7-1.1 13.5-1.8 14.5-6.5l-1-79.5c-2.7-8.1-11-12.3-17.1-17.5a155.5 155.5 0 0 1-14.2-16.1c-2.6-4.5-12.9-6-9.2 1.6 2.2 6.7 7.7 11.6 9.1 18.6.3 3.9 5 11 1 13.2a24.5 24.5 0 0 0-10.7-10c-4.4-3.3-11.7-4.7-13.3-10.5a42.9 42.9 0 0 0-11-22c1.5-7.4 0-16.7-6.4-21.5z"/>
<path d="M491.4 304.2c-3 .5-2.8 4.2-1.5 6.2a27.2 27.2 0 0 1 1.1 13.4 44.1 44.1 0 0 1 10.6 21.7c0 3 3.2 4 5.3 5.5 4.9 3.1 10.3 5.4 14.7 9.3.9 1 1.6 2 1 0-.7-2.6-1-5.4-3-7.3-2.8-3-6.2-5.6-10.2-6.4-.3-4.2-2.3-8-4.1-11.6-2-3.5-4.1-7.2-7.5-9.4 0-6.1 0-12.5-2.6-18.2-.8-1.4-2-3.1-3.8-3.2"/>
<path d="M499.7 306.6c-2 .6-1.6 3.2-1 4.7a54 54 0 0 1 1 13.2c3.9 3 6.2 7.4 8.4 11.6 1.4 2.8 2.6 5.8 3.1 8.9 3.1 1 5.8 3 8.2 5-1-2.8-3-5-4.5-7.7s-3-5.6-3.7-8.7c-3-3.1-4.6-7.6-4-12 .2-4.7-1.3-9.6-4.5-13.2-.8-.8-1.8-1.7-3-1.8"/>
<path d="M509.2 308c-1.2.2-1.8 1.2-2.4 2.1-.3.9.8 1.8 1 2.8a21.8 21.8 0 0 1 1.4 10.4c-.1 2.5.8 5 2 7a3.9 3.9 0 0 1 3.5-2.8c.5 0 1.4.2 1-.7-.4-4.8-1.1-9.6-2.8-14a9.6 9.6 0 0 0-2.8-4.5c-.2-.2-.6-.4-1-.3z"/>
</g>
<use xlink:href="#bn-a" width="100%" height="100%" transform="matrix(-1 0 0 1 1440 0)"/>
<path d="M715.7 476a35.6 35.6 0 0 1-29.9-24c.3-2.2 3 1.2 4.3 1.5a19 19 0 0 0 8 2.6c3.5 1.5 5.7 5 9.1 6.9 1.6 1.2 7.2 3.6 6.1-.3-1.3-2-2.2-4.6-1-7 1.8-4.1 4.7-7.7 7.7-11.2 2.1-.7 3.6 3.6 5.1 5 2.1 3.3 4.7 7.3 3.4 11.3-1.2 1.5-2 6 1.3 4.6 4-1.8 7.3-4.8 10.6-7.6 3-2 6.7-2.1 9.7-4 1.5-.3 4.4-3.1 5-1.6a44.9 44.9 0 0 1-7.4 12.3 32.1 32.1 0 0 1-18.8 10.9c-4.4.8-8.8 1-13.2.6"/>
<path d="M731.5 460.2c.3-2.7-.3-5.4-1.7-8-2.1-4.2-5-8-8-11.9-2.8-1.6-4.3 3.7-6.1 5.2-2.9 4.3-6.5 8.7-6.7 14-1.6 2.5-4.6-2-5.9-3.5a19 19 0 0 1-4-12 50.8 50.8 0 0 1 3.6-20.6c2-5.6 5.1-11 4.8-17 .2-4.7-.7-9.7-4.4-12.8-3.6-2.8 2.3-3.4 4.1-2 3.2.3 4.9 5.5 7.8 4.2 1.1-2.7 1.4-6 3.8-8.1 2.3-3.2 4.7 1.3 5.5 3.5 1.7 1.8 0 6.5 2.6 6.6 3.2-2.3 5.5-6 9.6-6.9 1.7-1 4.5 0 2.3 1.8-3 2.9-5.6 6.4-6.2 10.7-.9 5.3.4 10.7 2.7 15.4 4.5 9.4 8 20 5.7 30.5-1 4.6-4.2 8.6-8 11.3-.5.3-1.3.3-1.5-.4"/>
<path d="M726.7 389.6a21.2 21.2 0 0 0-5.6-7c-2.4 0-3.9 3-5.5 4.6-1.1 2.1-2.5 5.6-5.3 2.9-4.5-2.6-5.2-8.3-5.2-13-.3-7.6 2.8-14.7 5.5-21.6 1.7-4.3 1.3-9.2.2-13.6-1.3-5-5.4-8.6-8.5-12.6.2-1.5 4.2-.7 5.7-.4 3.4.9 5.4 3.8 7.9 6 1.8-.6 1-4.2 1.9-5.9 0-2.4 3.2-5.5 4.5-2.1 2 2.2 0 6.5 2.5 7.8 2.4-.9 3.6-3.5 5.8-4.7a8 8 0 0 1 7.8-.5c.9 2.2-2.6 4-3.6 6a20.4 20.4 0 0 0-3.8 18c1.4 5 3.8 9.5 4.7 14.5a40.1 40.1 0 0 1-.5 17.2c-.9 3.4-3.8 5.6-6.8 7-.8-.7-1.2-1.7-1.7-2.6"/>
<path d="M711.6 326.9c-3.4-2.5-4.5-4.8-4.5-9.5 0-2.3.5-3.6 2-5.8 2.4-3.2 2-4.2-1.3-3.3-5.3 1.5-7.8.2-8-4.3 0-2.2.4-3.1 3.3-6.7 2.4-2.8 3.3-4.3 2.8-4.8-.5-.4-3.3 2-9 7.8a124 124 0 0 1-11.4 10.6c-9.8 6.6-19.2 7.6-23.5 2.5-2.2-2.6-2.1-4 .4-5.6a27.4 27.4 0 0 0 4.4-3.7 86 86 0 0 1 16.1-11.6c3.6-1.8 4.4-3 2.1-3-3 0-12.5 6.2-19.8 12.8-2.1 2-5.2 4.2-6.8 5a25.4 25.4 0 0 1-13.9 1c-2.2-.7-6.3-4.5-6.3-5.9 0-.3 1-1.1 2-1.8a30 30 0 0 0 4.6-3.2c5.8-5 16.8-10.3 25.5-12.2 2.8-.5 1.7-2-1.4-1.8a56 56 0 0 0-25 11.7c-8.3 6.9-20.8 6.2-24.8-1.3-.7-1.3-1.2-2.5-1-2.7a92.8 92.8 0 0 0 20.4-7.8 51.5 51.5 0 0 1 18.1-6.5c2.8-.5 3-1.9.3-2.2-3.6-.4-9 1.4-18.5 6-12.3 6.1-15.8 7.2-22.2 6.8-6-.4-9.3-1.9-14-6.4-3.2-3-7.6-10.5-6.8-11.4a63.5 63.5 0 0 0 15.8 1.3c8.3 0 10.6-.2 15-1.5a84.3 84.3 0 0 0 24-12.1 57.5 57.5 0 0 1 36.8-13.6c12.4 0 20.2 2.8 27.2 9.9 2.4 2.4 4.4 3.9 4.7 3.6.3-.3.6-4.5.7-9.3 0 0 3.7-.4 4.5.7 0 7.7 0 8.4 1.2 8.4.7 0 1.5-.8 2-2 1-2.5 5-6 9.2-8.2 9-4.5 24.7-4.7 37.3-.3a62.4 62.4 0 0 1 16.7 9.5 90.2 90.2 0 0 0 24 12c6.8 2 19 2.5 25.1 1a61.9 61.9 0 0 1 5.4-1c2.3 0-1.6 7.6-6.2 12.1-8.4 8.2-19.3 8.1-34.6-.1-9.6-5.2-21-8-21-5.2 0 .6.6 1 1.5 1 3.3 0 9.7 2.2 18.7 6.5a53.7 53.7 0 0 0 18.3 6.5c2.3 0 2.4 1.5.2 4.7-2.3 3.4-6.2 5-11.7 5-5.3 0-8.3-1.1-13-5-8-6.6-27.6-14-26.9-10 .2.7 1.1 1.2 3.2 1.5a56 56 0 0 1 23.1 11l5.9 4.3c1.1.6 1.1.8.2 2.5-1.4 2.8-5.2 4.9-9.2 5.3-5.2.6-9.8-1-14.5-5-10-8.3-19.3-14.3-22.3-14.3-2.5 0-1.4 1.4 3 3.7a79.7 79.7 0 0 1 15.8 11c2 1.9 4.3 3.7 5 4.1 1.9 1 1.8 2.4-.2 5s-5.4 3.8-9.7 3.3c-8.6-.9-15.4-5-26-16a70.7 70.7 0 0 0-8.2-7.8c-1.4 0-.5 1.9 2.2 5 3.4 3.7 4 5.8 2.7 9-1.1 2.6-3 3.3-6.8 2.2-4-1-4.6 0-2 3.1 3.8 4.9 3.3 10.7-1.5 14.8a12 12 0 0 1-3.4 2.3c-.4 0-1.4-1-2.3-2.4-3-4.6-5.7-4.6-8.7 0a53.6 53.6 0 0 1-2 3 113.1 113.1 0 0 1-3-2.2"/>
<path d="m726.7 233-5.2 4-4.6-3.4v27.8h9.8z"/>
<path d="M694.9 204.3a88.3 88.3 0 0 1-9 32.3l11.1-10.3 7.7 9.2 8.4-9.4 8.5 8 8.2-8.3 8.5 10 7.4-8.2 12.6 9c-4.6-10-10.7-18.6-10-32.8-12.1 9-41 10.6-53.4.4z"/>
<path d="M717 197.6c-4.5 0-9.2.1-13.4 1a20.1 20.1 0 0 0-7.8 3c.3 8.6 41 12.1 51.9.2a20 20 0 0 0-8.2-3.3c-4-.8-8.6-.8-12.9-1v7.1H717z"/>
<path d="M724.9 154h-6.3v49.4h6.4z"/>
<path d="m724.9 155.2-2.4 23.7 24.3 11.9-12.3-16.5 16.8-5.5zm-2.7-6.1c-3.7 0-6.4 1.4-6.4 3s2.7 3 6.4 3 6.4-1.4 6.4-3-2.7-3-6.4-3"/>
</g>
<g fill="#f7e017">
<path d="M249.6 401c2.9-1 4.5-2.7 5.6-6a18 18 0 0 0 1-3.9c-.3-1-1.6-1-2.9.2-1 .7-1 1.1-.8 2.7.7 4-.7 5-8.3 5.8-.7 0-2.9 0-4.8-.3-3.6-.4-4.8 0-3.5 1a7 7 0 0 0 2.2 1c2 .5 9.4.2 11.5-.6zm15.7-.7c.4-.4 1.8-1 3.2-1.5 1.8-.6 2.8-1.2 3.5-2.4 2.2-3.3 1.8-6.1-1.4-10-1.8-2-2.6-2-4 .4-1.2 2-1.2 2 .6 2.5 1 .2 1.8 1 2.3 1.8 1.9 3.3 1.3 5.3-1.5 5.3-2.6 0-3.3.4-4 2a8.9 8.9 0 0 0-.6 2.1c0 .7 1 .6 1.9-.2m-5.2-3.8c.5-1.3.7-3.6.6-8.4 0-3.7-.1-6.8-.3-7-.4-.3-2.5 1-2.8 1.9-.1.5.1 1.5.5 2.3.7 1.3.8 2.5.6 7.5-.3 6.3.1 7.3 1.4 3.7"/>
<path d="M248.1 393.6c.3-1.2.6-3.6.7-5.4.2-1.7.5-4 .8-5 .8-2.4 0-3-2-1.6l-1.4 1 .3 3.5c.3 3.2-.2 9.1-1 11.4-.1.7.2.5 1-.4a9.4 9.4 0 0 0 1.6-3.6zm-10.7 1.7c2.6-2.2 2.3-6 2.9-9 0-2 1.3-4.4.4-6.1-2.4.4-4 2.7-2.7 5 .1 2.7 0 5.6-1.3 8-1.1 1.5-4.7 1-4.5-1.1.9-3.3-3-1.7-4.6-.8-1.2.8-3.7.9-2.8-1.2-.6-2.8-4.1-1-6-1-1.8 0-.2-3.7-2.8-3-4.8-.5-10.2 0-14.4-3-2.4-1.1-2-4-.8-6 1.6-2.6 2-5.9 4.4-7.9 2.4-2.3-2.2-1.3-3.3-.5-2.3 1.2-.2 4.5-2 6.3-1.2 2-2.7 4.5-5.2 4.2-3.8-.7-6-4.2-8.6-6.5-2.3-.5-1 3.7.2 4.6a23.3 23.3 0 0 0 7.9 3.8c2.8-.5 2.9 3.2 5.3 3.8 4.4 2 9.3 2.6 14 2.9 2 .1.9 3.5 3.4 2.8 1.4.4 4.5-.5 4.6 1.1-2 2.5 2 2.5 3.6 2 2-.3 4.4-1 5 1.6 1.6 1.8 4.6 1.5 6.5.5z"/>
<path d="M195 373.7c.7-1 1.9-3 2.6-4.5a17.3 17.3 0 0 1 2.1-3.7c1.3-1.4.6-2.2-1.5-1.7-1 .2-1.5.6-1.6 1.5-.6 3-1.7 6.1-2.7 7.5-1.8 2.6-1.8 2.7-1 2.7.3 0 1.2-.8 2-1.8zM168.2 357c-2 0-2 1.3-.1 2 .9.3 1.7 1 2.3 2.4 2 3.7 3 4.4 8 4.8l3.3.3.1 2c.1 1 .4 2 .6 2 .3 0 1.5-.6 2.8-1.2 2.3-1.2 4.6-4 4.6-5.7 0-1.1-2-2.4-3.6-2.4a7 7 0 0 0-3.4 1.5c-3.6 2.6-7.4 2-9.5-1.3-1.7-2.8-3.5-4.4-5.1-4.4m17.4 7c1 0 1.2.7.7 2-.4 1-1.6 1-2 0-.3-1 .3-2 1.3-2m134.9-4.4c-1.3 0-1.7.3-2.5 1.6-1.4 2-1.5 6.3-.2 7.8.7 1 .8 1 2.5.3 2.3-1 2.7-.9 2.6.3 0 3.2-4.5 9.2-9.2 12.5a8.5 8.5 0 0 0-2.5 2.1c-.4 1 1.4.7 3.5-.4 3-1.5 6.8-5.4 8.4-8.5 1.2-2.5 1.4-3.3 1.6-7.6 0-4 0-5.1-.7-6.5-.7-1.5-1-1.6-2.9-1.6zm.2 2.8c1 0 1.1.2 1.2 1.6.1 1.2 0 1.9-.7 2.5-1 .8-1 .8-1.8-.4-1-1.7-.4-3.7 1.3-3.7m-21.6 30.3a16 16 0 0 0 8.2-7.7 20.6 20.6 0 0 0 1.3-3.3c0-.6-2-1.5-3.3-1.5s-1.4-.9-1-3.2c.6-2.3 0-5.1-1-5.1-.4 0-1 .5-1.4 1.1-.7 1-.7 1.5-.2 3 .7 2 .1 3.7-1.8 5-1 .7-1.5 1.5-1.5 2.2 0 .6.1 1.1.2 1.1l2.3-1.1 2-1.2 1.3 1c.6.5 1.2 1.4 1.2 1.9 0 2.5-7.2 6.8-12.2 7.2-2.6.2-3 0-4-.8-.7-.8-1-1.4-.8-2.3l.6-2.7c.5-2.2-.5-1.9-2.1.7-1.4 2-1.8 4.4-1 5.6.6 1 4.7 1.9 7.6 1.7 1.8-.1 3.7-.6 5.6-1.6m27.7-15.5c2.6-2.6 3.8-5.8 3.8-10.7v-3.7l2.1-1c2.8-1.3 5.5-4 5.5-5.4 0-1.6-.7-1.5-1.9.2-.9 1.2-2 1.9-6.4 3.9-1.1.5-1.2.8-1.4 5.4-.3 5.3-1 7.2-4 10.9-1.8 2.1-1.9 2.4-.6 2.4.5 0 1.8-.8 3-2zm-28.5-3c.3-.7-1.2-1.2-1.8-.6-.3.3-.3.7-.1 1 .4.7 1.7.5 2-.3zm39.3-10.1c.3-.8-1.2-1.3-1.8-.7-.3.3-.3.8-.1 1 .4.7 1.7.5 2-.3zm-47.3-27.6c-1 .5-1.5 1.6-2.2 2.5-.5.3-.1.6.2 1 1.8 1.9 2.5 4.5 3.4 7 .8 2.8 1.9 5.9 1 8.9-.4 1.1-1.3 2.3-2.6 2-2.2-.2-4.3-.7-6.4-.7-2 0-3.5 1.8-5.4 1.6-1.3.1-1.2-2.5-2.4-1.8-.6 1.4-.3 2.9-.4 4.4.3.2.9 0 1.2 0h4c.2 1.4.1 3 1.1 4 1.4.5 2.9 0 4.1-.5 1.4-.6 1.6-2.3 2-3.5.4-1.4 2.2-1 3.3-1.6a6.1 6.1 0 0 0 4.1-6.1c-.1-4.1-1.7-8-2.9-11.8-.6-1.7-1-3.4-1.7-5.1 0-.1-.2-.3-.4-.2zm-6.4 23.3c1.4 0 2 1.7 1.8 2.9-.6 1.6-2.6.6-3-.6-.7-1-.2-2.4 1.2-2.3"/>
<path d="M230.4 346.5a3.6 3.6 0 0 0-2.1.7c-3.8 2.7-4.8 5.8-2.2 7 1.9.9 1.4 2-1.6 3.5-4.2 2-8 1.8-15-1.1-1.8-.8-2.3-.5-1.9 1.1.4 1.6 1.9 2.4 5.4 3.3 3.9.8 8.5.6 11.5-.7a14.9 14.9 0 0 0 4.6-3.6l2.3-2.5 2.7.3c3.3.4 3.4.5 3.4 2 0 1.3 0 1.4 3.1 1.6l5 .3c1.4 0 2.2.3 2.6 1 .6.7 1 .8 6 .3 4.6-.4 5.6-.4 7.7.4 1.5.5 3.1.7 4.4.5 3.6-.4 8.5-3.3 9.2-5.5.1-.2 1.4-.7 2.9-1 3.6-.7 3.8-1.5.4-1.9a24.3 24.3 0 0 1-4.9-1.2 13 13 0 0 0-3.7-.9c-1.8 0-3.6 1.1-3.6 2.3 0 .8.3.9 2.5.7 2-.3 2.6-.2 3.6.7.8.6 1.2 1.2 1 1.4-.4.8-4.6 2.7-6.5 3a5 5 0 0 1-3.2-.4c-1.7-.8-4.1-1-4.6-.3-.1.4-.7.2-1.4-.5l-1-1-2.6 1c-2.6 1-3.5 1-3.5-.2 0-.6-.7-.6-4.5-.4-4.2.3-4.6.2-5.4-.6-.7-.8-.7-1.1-.2-2 .5-.7.5-1 0-1.5-.4-.4-1-.4-2.6 0-4.1 1.1-5.3.5-5.3-2.7 0-2-1.1-3.1-2.5-3.1m-1 3c.2 0 .3 0 .6.4.4.3.6 1 .4 1.4-.3 1-2.1.9-2.5-.1-.1-.5 0-1 .6-1.4z"/>
<path d="M222 352.4c2.4-1.6 2.4-1.4 2.7-5.9.3-3 .3-3.3-.6-3.3-1.2 0-1.9 1.3-1.9 3.9 0 1.6-.2 2.4-1 3.3-2.2 2-7.4 1.1-8-1.5-.2-.9 0-1.7 1.1-3.2 2.3-3.2 1.8-4-1-1.6-2 1.7-2.3 1.7-1.9.3.3-1.3-.4-1.9-2-1.5-.7.2-1.1.7-1.3 1.7-.2 1-.7 1.5-1.4 1.6-1.3.4-3.4-.8-3.4-1.9 0-.7 3.2-4.6 7.3-9a19 19 0 0 0 2.9-3.3c0-.2-.9-.4-1.9-.4-1.5 0-1.8.2-1.8.9 0 .4-2.1 3.2-4.7 6-5.3 6-5.7 7.3-3 8.8a6.4 6.4 0 0 0 6.9-.2l1.7-1.2v2.2c0 2.7.5 3.6 2.7 4.8a8.5 8.5 0 0 0 8.5-.5zm111.3-36.9c-2 1.2-.5 3.7-.2 5.3-.8 2.2-3.6 2.8-5.7 3.3-3 .4-5.1 3-6.2 5.6-.6 1.7-2.1 4.3-3.7 1.7-1.4-1.4-4-2.5-5.6-.9-1.3 1.2-1.6 3-2.1 4.6-.7-1.2-1-3-2.6-3.4-2.5.3-1.6 3.5-.5 4.8 1.1 1.5 2.1 3.5 1 5.3-.8 2.2-4 3.6-6 1.8-1.7-1-.5-4.3-2.2-4.5-.9.7-1 4.1-2.3 2.2-1-1.6-.5-3.8-1.7-5.2-1.4.2-2.6 2.6-2.1 4a23 23 0 0 1 3.4 8.8c.5 1.3 0 3.7 1.1 4.2.8-2 0-4.2.7-6.2 1.8-.2 4 .6 5.9.2 2.8-.4 5-2.7 5.9-5.2.3-2 0-3.8-.1-5.7 2.2.3 4.5.3 6.6 1 1 1.6-.3 3.9-.6 5.6-1.1 3.6-4 6.2-6.7 8.6-1.1.7-1.3 2.5.4 1.6 3.7-1.6 6.4-5 8-8.6 1.2-2.7.2-5.8 1-8.6 1.1-2.2 3.8-1.7 5.8-1.7 2-.1 3.8-2.5 3-4.5-.6-2.3 1.9-3.4 3.5-4.2 2.2-1.1 4-3.4 3.8-6-.1-1.3 0-3.8-1.8-3.9m-7.9 13.3c2.4.7-.4 5.2-1.7 2.3-.3-1 .6-2.3 1.7-2.3m-11 3.3c3.1-.2 2 4.3-.6 2.3-1.4-.7-1-2.4.6-2.3m-111.7 17.4c.1-.5-.1-.8-.5-.8-.9 0-1.4.8-1 1.4.4.7 1.4.3 1.5-.6m36.2-4c0-.7-.3-1-.8-.8-1.2.2-1.4 1.7-.2 1.7.7 0 1-.3 1-1zm-44.7-21.7c-1.5-.3-2.4.9-2.9 2-1 1.9-2.4 3.7-4.3 4.7-1.4.4-3-.2-4.1-.9-1.5-.7-1.1-2.4-1.8-3.6-1-.8-2.8.3-2.8 1.6-.1 1.7 1.5 2.7 2.8 3.3 1.1.7 2.7 1.1 3.2 2.5 0 1.2.4 2.5 1.9 2 1.6 0 2 2 1.3 3.2a6.8 6.8 0 0 0-.8 4.3c.8.7 1.6-1 2.2-1.6l1.1-1.5c2.8.2 5.7.5 8.5.4 2 0 3.8-1.3 5-2.7 1.9-2 3.4-4.2 5.5-5.8 1.5-.4.7-3.2-.9-2.4-1.4.6-1.8 2.1-2.8 3.1-1.6 2-3.3 4-5.4 5.6-1.5.6-3.2.4-4.8 0-.6-.5 1.3-1 1.6-1.6.9-1 2-1.8 2.4-3-.5-1-2-1.1-3-1.1-2.7.3-4.7 2.5-7.3 2.7-2 0-1-2.1 0-2.8 1.7-2.1 3.6-4.1 5.5-6.2.5-.6 2.4-1.2 1.2-2-.4-.2-.9-.2-1.3-.2m1.3 10.6c1.3.7-.9 2-1.8 1.8-1.2.3-1.2-.9-.2-1.1.6-.3 1.3-.7 2-.7m-4.1 2.8c.7 0 2.3.7.8 1.1-1 .8-2.2-.8-.8-1.1"/>
<path d="M223.4 339c0-1-1.8-.9-2 .2-.1.6 0 .8 1 .7.5-.1 1-.5 1-.9m79.7-7c.2-1-1.2-1.6-1.9-1-.7.8 0 2.1 1 2 .4-.2.8-.6.9-1m-124-9.8c1.2-1 1.2-1.1.7-3.5-.8-3.3-.7-3.7.5-4 1.6-.4 5.7 1.8 6.6 3.5.7 1.4.7 1.4-.5 2.5-1.3 1.2-1.3 2.6 0 2.6 1 0 4-2.8 4-3.8 0-1.3-3.3-4.6-5.8-5.8a11.4 11.4 0 0 0-5-1c-3.3 0-3.7.7-2.9 4.5 1 4.4-.3 5-4 1.7a11.1 11.1 0 0 1-3.6-9.2c0-4.4 1.7-6.6 5.4-7 2.6-.4 2.5-1 0-1.4-3.9-.6-7 2-8.3 6.4-1.3 5 1.8 11.1 7.2 14.2 2.9 1.7 4 1.7 5.7.3m148.5-5.5c.3-.3.5-1 .5-1.5s.6-1.7 1.2-2.5a7.2 7.2 0 0 0 1.2-2c0-.9-1.5-.8-2.6 0-1.2 1-2 1-2 .1 0-.2.5-.7 1.2-1 1.7-.8 1.8-1.6.4-2.3-1.9-.8-3.7.7-3.9 3.2-.1 1.7 0 2 1.3 2.7 1.2.7 1.4 1.1 1.2 2-.3 1.8.4 2.4 1.5 1.3m14-1.6c1-.9 1.8-2 1.8-2.3 0-.3.9-1.2 2-2 3-2.2 3.7-4.4 2.3-7.9-.5-1.3-2.2-3.2-5.8-6.5a37 37 0 0 0-5.7-4.6c-1 0-.9 3.7.1 4 1.9.6 3 1.4 5.8 4 3.4 3 4.9 5.8 4 7.3-.7 1.5-1.8 1-4.8-2-1.5-1.7-3-3-3.3-3-.4 0-.6.5-.6 1.4 0 1 .5 2 2 3.7 2.5 2.8 2.8 4.4 1 5.9-.8.5-1.4 1-1.6 1a35.7 35.7 0 0 0-9.5-10.6c-.5 0-.7.4-.7 1.5 0 1.3.3 1.8 1.3 2.3 1.2.6 4.4 3.8 7.5 7.6.9 1 1.8 2 2 2 .1 0 1.1-.8 2.1-1.8zm6.2-17.8c-.4-1.3-9-10-9.8-10-.5 0-.6.5-.5 1.9 0 1.7.3 2 1.4 2.2.8.3 3 2 5 4s3.8 3.4 4 3.3zm-51 98.7a1.3 1.2 0 1 1-2.4 0 1.3 1.2 0 1 1 2.5 0zm4.6-1.5a1.3 1.2 0 1 1-2.6 0 1.3 1.2 0 1 1 2.6 0"/>
</g>
</svg>

After

Width:  |  Height:  |  Size: 14 KiB

View File

@@ -0,0 +1,674 @@
<svg xmlns="http://www.w3.org/2000/svg" id="flag-icons-bo" viewBox="0 0 512 512">
<path fill="#007934" d="M0 0h512v512H0z"/>
<path fill="#ffe000" d="M0 0h512v341.3H0z"/>
<path fill="#d52b1e" d="M0 0h512v170.7H0z"/>
<path fill="#a05a2c" stroke="#000" stroke-width=".1" d="M307.8 224.8 203.3 329.2a97.8 97.8 0 0 0-1.4-1c.4-.5 104-103.8 104.5-104.5a7.4 7.4 0 0 1 1.4 1z"/>
<path fill="#e7e7e7" stroke="#000" stroke-width=".1" d="M314.3 218.2c-.4.7-1.5 2.6-1 4l-2.1-1.6c.5 1 .4 1.5-.2 1.9-.3.4-1.5.3-2.2.2a6 6 0 0 0 2.6 1l2 .1c-.6.3-2.3.9-3.4 1-.6.2-1.7.3-2.2 0-.6.6-2-.4-1.3-1-.3-.4-.3-.9-.4-1.5 0-.8 0-2 .7-3.2 0 .6.3 1.2.5 1.8.2.5.7 1 1.2 1.5-.3-.5-.5-1.3 0-1.9.6-.5 1.4-.5 2.2-.2l-2-1.4c.8 0 3.5-1 4.4-1.6a67 67 0 0 0 5.2-4 57.6 57.6 0 0 0-4 4.9z"/>
<path fill="#a05a2c" stroke="#000" stroke-width=".1" d="m327.5 237.6-134 75.7-1-1.3c.5-.4 133.2-75.2 134-75.7a6.3 6.3 0 0 1 1 1.3z"/>
<path fill="#e7e7e7" stroke="#000" stroke-width=".1" d="M335.9 232.8c-.6.6-2.3 2.2-2.3 3.6-.7-.7-1-1.2-1.6-2 .3 1 0 1.6-.7 1.8-.4.3-1.5 0-2.2-.3.6.6 1.2 1.2 2.2 1.6l1.9.5c-.7.2-2.5.3-3.7.2-.5 0-1.6-.2-2-.6-.8.5-1.8-.8-1-1.3-.2-.3 0-.8.1-1.4.2-.8.7-2 1.7-3a8.3 8.3 0 0 0 0 1.9c0 .6.3 1.1.6 1.7-.1-.5 0-1.3.7-1.7.7-.5 1.5-.3 2.1.2l-1.5-1.8c.8.2 3.7-.2 4.7-.5s4.4-1.8 6.4-2.7a65 65 0 0 0-5.4 3.8z"/>
<path fill="#a05a2c" stroke="#000" stroke-width=".1" d="m316 232-120.4 90.9-1.2-1.2 120.5-90.9a6.3 6.3 0 0 1 1.2 1.2z"/>
<path fill="#e7e7e7" stroke="#000" stroke-width=".1" d="M323.6 226.2c-.5.7-2 2.4-1.7 3.9l-1.8-1.8c.4 1 .1 1.5-.5 1.8-.4.4-1.5.2-2.2 0 .7.5 1.4 1 2.4 1.3l2 .3c-.7.3-2.4.6-3.6.7-.6 0-1.7 0-2.1-.4-.7.5-2-.6-1.2-1.2-.2-.3-.2-.8-.1-1.5 0-.7.4-2 1.2-3a8.4 8.4 0 0 0 .2 1.8c.1.6.5 1 1 1.6-.3-.5-.3-1.3.3-1.8.7-.5 1.5-.4 2.1 0l-1.7-1.7c.8.1 3.6-.6 4.6-1 1-.4 4-2.2 5.8-3.4a61.8 61.8 0 0 0-4.7 4.4z"/>
<path fill="#a05a2c" stroke="#000" stroke-width=".1" d="m204.2 224.8 104.5 104.4a97.8 97.8 0 0 1 1.4-1L205.5 223.6l-1.3 1z"/>
<path fill="#e7e7e7" stroke="#000" stroke-width=".1" d="M197.7 218.2c.3.7 1.5 2.6 1 4l2.1-1.6c-.5 1-.4 1.5.2 1.9.3.4 1.5.3 2.2.2a6 6 0 0 1-2.6 1l-2 .1c.6.3 2.3.9 3.4 1 .6.2 1.7.3 2.2 0 .6.6 2-.4 1.4-1 .2-.4.3-.9.3-1.5a6.2 6.2 0 0 0-.7-3.2 8.5 8.5 0 0 1-.5 1.8c-.2.5-.7 1-1.2 1.5.3-.5.5-1.3 0-1.9-.6-.5-1.4-.5-2.2-.2l2-1.4c-.8 0-3.5-1-4.4-1.6a67 67 0 0 1-5.2-4c1.3 1.4 3.6 4.1 4 4.9z"/>
<path fill="#a05a2c" stroke="#000" stroke-width=".1" d="m184.5 237.6 134 75.7 1-1.3c-.5-.4-133.2-75.2-134-75.7z"/>
<path fill="#e7e7e7" stroke="#000" stroke-width=".1" d="M176.1 232.8c.6.6 2.3 2.2 2.4 3.6l1.4-2c-.2 1 .2 1.6.8 1.8.4.3 1.5 0 2.2-.3a5.4 5.4 0 0 1-2.2 1.6l-1.9.5c.7.2 2.5.3 3.6.2.6 0 1.7-.2 2.1-.6.8.5 1.8-.8 1-1.3.2-.3 0-.8-.1-1.4a6.8 6.8 0 0 0-1.7-3v1.9c0 .6-.3 1.1-.6 1.7.1-.5 0-1.3-.7-1.7-.7-.5-1.5-.3-2.1.2l1.4-1.8c-.7.2-3.6-.2-4.6-.5-1-.3-4.4-1.8-6.4-2.7a65 65 0 0 1 5.4 3.8z"/>
<path fill="#a05a2c" stroke="#000" stroke-width=".1" d="m196 232 120.4 90.9 1.2-1.2-120.5-90.9-1.2 1.2z"/>
<path fill="#e7e7e7" stroke="#000" stroke-width=".1" d="M188.4 226.2c.5.7 2 2.4 1.7 3.9l1.8-1.8c-.4 1-.1 1.5.5 1.8.4.4 1.5.2 2.2 0-.6.5-1.4 1-2.4 1.3l-2 .3c.7.3 2.4.6 3.6.7.6 0 1.7 0 2.1-.4.7.5 2-.6 1.2-1.2.2-.3.2-.8.1-1.5 0-.7-.4-2-1.2-3a8.4 8.4 0 0 1-.2 1.8c-.1.6-.5 1-1 1.6.3-.5.3-1.3-.3-1.8-.7-.5-1.5-.4-2.2 0l1.8-1.7c-.8.1-3.6-.6-4.6-1a70.7 70.7 0 0 1-5.8-3.4z"/>
<path fill="#00e519" stroke="#000" stroke-width=".1" d="M234.8 302.4a40.8 40.8 0 0 1 17.8-4c-8.5 6.5-17 6.8-17.8 4z"/>
<path fill="#ffe533" stroke="#000" stroke-width=".1" d="M234.8 302.4c.8 2.8 9.3 2.5 17.8-3.9a67 67 0 0 1-17.7 3.9z"/>
<path fill="none" stroke="#000" stroke-linecap="round" stroke-width=".1" d="M234.8 302.4c.8 2.8 9.3 2.5 17.8-3.9a67 67 0 0 1-17.7 3.9z"/>
<path fill="none" stroke="#000" stroke-width=".1" d="M234.8 302.3a44 44 0 0 1 17.8-3.9c-8.4 6.5-17 6.7-17.8 4z"/>
<path fill="#a05a2c" stroke="#000" stroke-width=".1" d="m285.4 234.8-27.2 55.8c-1.3 1.1-2.4-.3-2.8-.2-1.7 1.9-3.9 2.3-4.4 2.7-1.9 2.5-.8 4.6-.7 4.8 1.4 2-1.7 3.8-1.5 4.4-.7 1-3 .8-3.4 2l-5 10c-.8.5-4 6.5-4 6.5-2.2 0-10.9-5.6-11-5.5 4.8-7.8 16.5-19.7 16.2-20.5 3.3-5.6 8.5-11.6 10.8-11.5 3.2-1.7 4.8-6 4.1-7 2.5-.1 3.8-1.6 4-1.7l20-40c1.7-.6 1.5.1 2 1 0 0 1-1.2 1-1.4 1-.4 1.9.2 1.9.6z"/>
<path fill="#cce5e5" stroke="#000" stroke-width=".1" d="M286.4 222.7c-.5 1 .3 1 .6 1.2l1.2.3c1.3 0 2 .7 2 1.2l-32 65.2c-1.3 1.1-2.6-.2-3 0l21.9-44.7 10.6-20-2.9-1.3c-.9-.2-1.2-.8-.8-1.7l13.4-23-10.7 22.3-.3.5"/>
<path fill="#e7e7e7" stroke="#000" stroke-width=".1" d="M286.4 222.7c-.5 1 .3 1 .6 1.2l1.2.3c1.3 0 2 .7 2 1.2l-32 65.2c-1.3 1.1-2.6-.2-3 0l21.9-44.7 10.6-20-2.9-1.3c-.9-.2-1.2-.8-.8-1.7l13.4-23-10.7 22.3-.3.5"/>
<path fill="none" stroke="#000" stroke-width=".1" d="M244 290.6c-3-.1-4.8 2.2-2.8 5m1.5-2.5c-1.1.6-1.9-.4-1.9-.4m16.3-14c-1.7 6-4.7 10-5.3 11.2-2.3 2.4-4.2 7.7-3.8 8.7l-8.7 14.2"/>
<path fill="#cce5e5" stroke="#000" stroke-width=".1" d="M258.1 290.9c-1.4-.5-6.1-4.9-10.7-4.1-3.5 4-5.6 8.2-6.2 8.8a60 60 0 0 0 8.1 5.8c.7-.5 1-1.7 1-1.7 1-1-.1-1.8-.1-1.8.1-2.7 2-4.5 4-4.6 2.4-.2 1.7-.4 2-.4 1.1-.6 1.9-2 1.9-2z"/>
<path fill="none" stroke="#000" stroke-width=".1" d="M258.1 290.9c-1.4-.5-6.1-4.9-10.7-4.1-3.5 4-5.6 8.2-6.2 8.8a60 60 0 0 0 8.1 5.8c.7-.5 1-1.7 1-1.7 1-1-.1-1.8-.1-1.8.1-2.7 2-4.5 4-4.6 2.4-.2 1.7-.4 2-.4 1.1-.6 1.9-2 1.9-2z"/>
<path fill="#cce5e5" stroke="#000" stroke-width=".1" d="M253.4 291c-2.1 0-4.3 1-5 2.8l5-2.8"/>
<path fill="none" stroke="#000" stroke-width=".1" d="M253.4 291c-2.1 0-4.3 1-5 2.8m-3.9.7c.2.4.8.7 1.3.5.5-.2.8-.7.6-1.1-.2-.5-.8-.7-1.3-.5-.5.2-.8.6-.6 1.1zm2.7-3.6c.2.4.8.6 1.3.5.5-.2.8-.7.6-1.2-.2-.4-.8-.6-1.3-.4-.5.1-.8.6-.6 1z"/>
<path fill="#cce5e5" stroke="#000" stroke-width=".1" d="M283 241.2c.8-.3 1.2-1.3.8-2.2l-5-1.8s-.6.1-1 .8c-.6.7.1 1.3.1 1.3l5.1 1.9"/>
<path fill="none" stroke="#000" stroke-width=".1" d="M283 241.2c.8-.3 1.2-1.3.8-2.2l-5-1.8s-.6.1-1 .8c-.6.7.1 1.3.1 1.3l5.1 1.9"/>
<path fill="#00e519" stroke="#000" stroke-width=".1" d="M228.8 305.1c4.2-2.9 16-4.6 17.7-4.1-8.3 6.6-16.9 7-17.7 4.1z"/>
<path fill="#ffe533" stroke="#000" stroke-width=".1" d="M228.9 305.1c.8 2.8 9.3 2.5 17.6-4a66 66 0 0 1-17.6 4z"/>
<path fill="none" stroke="#000" stroke-linecap="round" stroke-width=".1" d="M228.9 305.1c.8 2.8 9.3 2.5 17.6-4a66 66 0 0 1-17.6 4z"/>
<path fill="none" stroke="#000" stroke-width=".1" d="M228.8 305.1a42.6 42.6 0 0 1 17.8-4.2c-8.4 6.6-17 7-17.8 4.2z"/>
<path fill="#a05a2c" stroke="#000" stroke-width=".1" d="M278 236.9 252 293c-1.3 1-2.5-.3-2.9-.2-1.5 1.9-3.8 2.3-4.2 2.7-1.9 2.6-.8 4.7-.7 4.9 1.5 1.8-1.6 3.7-1.4 4.3-.6 1.1-2.9 1-3.3 2.2-.1-.1-4.5 9-5 10-.6.5-3.7 6.5-3.7 6.5-2.3 0-11-5.4-11.2-5.3 4.7-7.9 16.1-20 15.9-20.7 3.2-5.6 8.3-11.7 10.5-11.7 3.2-1.8 4.7-6.1 4-7 2.5-.2 3.8-1.7 4-1.8l19.2-40.3c1.7-.6 1.4 0 2 1l1-1.4c.9-.5 1.8.2 1.8.6z"/>
<path fill="none" stroke="#000" stroke-width=".1" d="M278 236.9 252 293c-1.3 1-2.5-.3-2.9-.2-1.5 1.9-3.8 2.3-4.2 2.7-1.9 2.6-.8 4.7-.7 4.9 1.5 1.8-1.6 3.7-1.4 4.3-.6 1.1-2.9 1-3.3 2.2-.1-.1-4.5 9-5 10-.6.5-3.7 6.5-3.7 6.5-2.3 0-11-5.4-11.2-5.3 4.7-7.9 16.1-20 15.9-20.7 3.2-5.6 8.3-11.7 10.5-11.7 3.2-1.8 4.7-6.1 4-7 2.5-.2 3.8-1.7 4-1.8l19.2-40.3c1.7-.6 1.4 0 2 1l1-1.4c.9-.5 1.8.2 1.8.6z"/>
<path fill="#cce5e5" stroke="#000" stroke-width=".1" d="M278.8 224.7c-.5 1 .3 1 .6 1.2l1.2.3c1.3 0 2 .7 2 1.1L252 293.1c-1.3 1-2.6-.3-3 0l21-45 10.2-20.2-3-1.2c-.9-.2-1.1-.8-.8-1.7l13-23.3-10.4 22.6-.2.4"/>
<path fill="#e7e7e7" stroke="#000" stroke-width=".1" d="M278.8 224.7c-.5 1 .3 1 .6 1.2l1.2.3c1.3 0 2 .7 2 1.1L252 293.1c-1.3 1-2.6-.3-3 0l21-45 10.2-20.2-3-1.2c-.9-.2-1.1-.8-.8-1.7l13-23.3-10.4 22.6-.2.4"/>
<path fill="none" stroke="#000" stroke-width=".1" d="M237.8 293.2c-3.1 0-4.8 2.3-2.7 5m1.4-2.5c-1.1.7-1.8-.3-1.8-.3m16-14.2c-1.6 6-4.5 10-5.1 11.3-2.3 2.3-4 7.7-3.7 8.6l-8.3 14.4"/>
<path fill="#cce5e5" stroke="#000" stroke-width=".1" d="M251.9 293.3c-1.5-.5-6.2-4.7-10.8-4-3.4 4.2-5.4 8.4-6 9a55 55 0 0 0 8.2 5.6c.7-.4 1-1.6 1-1.6 1-1-.2-1.9-.2-1.9 0-2.6 2-4.5 3.9-4.6 2.4-.3 1.7-.4 2-.5 1.1-.6 1.9-2 1.9-2z"/>
<path fill="none" stroke="#000" stroke-width=".1" d="M251.9 293.3c-1.5-.5-6.2-4.7-10.8-4-3.4 4.2-5.4 8.4-6 9a55 55 0 0 0 8.2 5.6c.7-.4 1-1.6 1-1.6 1-1-.2-1.9-.2-1.9 0-2.6 2-4.5 3.9-4.6 2.4-.3 1.7-.4 2-.5 1.1-.6 1.9-2 1.9-2z"/>
<path fill="#cce5e5" stroke="#000" stroke-width=".1" d="M247.2 293.5c-2.1 0-4.3 1-5 2.8l5-2.8"/>
<path fill="none" stroke="#000" stroke-width=".1" d="M247.2 293.5c-2.1 0-4.3 1-5 2.8m-3.8.8c.2.5.8.7 1.3.5.5-.2.7-.7.5-1.1-.2-.5-.8-.6-1.3-.5-.5.2-.7.7-.5 1.1zm2.6-3.7c.2.5.8.7 1.3.5.5-.2.7-.7.5-1-.2-.5-.7-.7-1.2-.6s-.8.7-.6 1.1z"/>
<path fill="#cce5e5" stroke="#000" stroke-width=".1" d="M275.8 243.3c.8-.4 1.2-1.3.7-2.2l-5-1.7s-.6 0-1 .8c-.6.7.1 1.2.1 1.2l5.2 1.9"/>
<path fill="none" stroke="#000" stroke-width=".1" d="M275.8 243.3c.8-.4 1.2-1.3.7-2.2l-5-1.7s-.6 0-1 .8c-.6.7.1 1.2.1 1.2l5.2 1.9"/>
<path fill="#00e519" stroke="#000" stroke-width=".1" d="M278 302.2a41 41 0 0 0-18-4c8.6 6.6 17.2 6.8 18 4z"/>
<path fill="#ffe533" stroke="#000" stroke-width=".1" d="M278 302.2c-.8 2.8-9.4 2.6-18-3.9a68 68 0 0 0 18 3.9z"/>
<path fill="none" stroke="#000" stroke-linecap="round" stroke-width=".1" d="M278 302.2c-.8 2.8-9.4 2.6-18-3.9a68 68 0 0 0 18 3.9z"/>
<path fill="none" stroke="#000" stroke-width=".1" d="M278 302.1c-4.5-3-17-4.2-18-3.9 8.6 6.5 17.2 6.8 18 4z"/>
<path fill="#a05a2c" stroke="#000" stroke-width=".1" d="m226.9 234 27.4 56.4c1.4 1 2.5-.4 3-.2 1.6 1.8 3.8 2.2 4.3 2.6 2 2.6.9 4.7.8 4.9-1.5 2 1.6 3.8 1.5 4.4.6 1 3 .8 3.4 2.1l5.1 10c.7.5 4 6.6 4 6.6 2.3 0 11-5.7 11.2-5.6-5-7.8-16.7-19.9-16.5-20.7-3.3-5.6-8.6-11.7-10.9-11.6-3.2-1.7-4.8-6-4.1-7-2.5-.1-3.9-1.6-4-1.7l-20.3-40.5c-1.7-.6-1.4.1-2 1.1l-1-1.4c-1-.5-1.9.2-1.9.6z"/>
<path fill="#cce5e5" stroke="#000" stroke-width=".1" d="M225.8 221.7c.6 1-.3 1-.5 1.2l-1.2.4c-1.3 0-2 .7-2 1l32.2 66c1.4 1.1 2.7-.2 3.1 0l-22.1-45.1-10.7-20.3 2.9-1.2c.9-.2 1.2-.8.8-1.8l-13.6-23.3 11 22.7.1.4"/>
<path fill="#e7e7e7" stroke="#000" stroke-width=".1" d="M225.8 221.7c.6 1-.3 1-.5 1.2l-1.2.4c-1.3 0-2 .7-2 1l32.2 66c1.4 1.1 2.7-.2 3.1 0l-22.1-45.1-10.7-20.3 2.9-1.2c.9-.2 1.2-.8.8-1.8l-13.6-23.3 11 22.7.1.4"/>
<path fill="none" stroke="#000" stroke-width=".1" d="M268.7 290.3c3.1-.1 4.9 2.2 2.8 5m-1.4-2.5c1 .6 1.8-.4 1.8-.4m-16.4-14c1.7 6 4.7 10 5.3 11.2 2.3 2.4 4.3 7.8 3.9 8.7l8.7 14.4"/>
<path fill="#cce5e5" stroke="#000" stroke-width=".1" d="M254.5 290.6c1.4-.5 6.1-5 10.8-4.2 3.5 4.2 5.6 8.3 6.2 9a53 53 0 0 1-8.2 5.8c-.7-.5-1-1.7-1-1.7-1-1 .2-1.9.2-1.9-.1-2.6-2-4.5-4-4.6-2.5-.2-1.8-.4-2.1-.4a6.2 6.2 0 0 1-2-2z"/>
<path fill="none" stroke="#000" stroke-width=".1" d="M254.5 290.6c1.4-.5 6.1-5 10.8-4.2 3.5 4.2 5.6 8.3 6.2 9a53 53 0 0 1-8.2 5.8c-.7-.5-1-1.7-1-1.7-1-1 .2-1.9.2-1.9-.1-2.6-2-4.5-4-4.6-2.5-.2-1.8-.4-2.1-.4a6.2 6.2 0 0 1-2-2z"/>
<path fill="#cce5e5" stroke="#000" stroke-width=".1" d="M259.2 290.7c2.1 0 4.4 1 5 2.8l-5-2.8"/>
<path fill="none" stroke="#000" stroke-width=".1" d="M259.2 290.7c2.1 0 4.4 1 5 2.8m4 .7c-.2.5-.8.7-1.3.6-.5-.2-.8-.7-.6-1.2.2-.4.8-.6 1.3-.5.5.2.8.7.6 1.1zm-2.7-3.6c-.2.4-.8.6-1.3.4-.6-.1-.8-.6-.6-1 .2-.5.8-.7 1.3-.6.5.2.8.7.6 1.2z"/>
<path fill="#cce5e5" stroke="#000" stroke-width=".1" d="M229.3 240.4c-.8-.3-1.2-1.3-.8-2.2l5-1.8s.7 0 1.2.8c.5.7-.2 1.2-.2 1.2l-5.2 2"/>
<path fill="none" stroke="#000" stroke-width=".1" d="M229.3 240.4c-.8-.3-1.2-1.3-.8-2.2l5-1.8s.7 0 1.2.8c.5.7-.2 1.2-.2 1.2l-5.2 2"/>
<path fill="#00e519" stroke="#000" stroke-width=".1" d="M283.3 305.1c-4-2.9-16-4.6-17.7-4.1 8.4 6.6 17 7 17.7 4.1z"/>
<path fill="#ffe533" stroke="#000" stroke-width=".1" d="M283.3 305.1c-.8 2.8-9.3 2.5-17.6-4a66 66 0 0 0 17.6 4z"/>
<path fill="none" stroke="#000" stroke-linecap="round" stroke-width=".1" d="M283.3 305.1c-.8 2.8-9.3 2.5-17.6-4a66 66 0 0 0 17.6 4z"/>
<path fill="none" stroke="#000" stroke-width=".1" d="M283.3 305.1a42.6 42.6 0 0 0-17.7-4.2c8.4 6.6 17 7 17.7 4.2z"/>
<path fill="#a05a2c" stroke="#000" stroke-width=".1" d="m234.1 236.9 26 56.2c1.4 1 2.5-.3 3-.2 1.5 1.9 3.7 2.3 4.2 2.7 1.8 2.6.8 4.7.6 4.9-1.4 1.8 1.6 3.7 1.5 4.3.6 1.1 2.9 1 3.3 2.2.1-.1 4.5 9 4.9 10 .7.5 3.8 6.5 3.8 6.5 2.2 0 11-5.4 11.2-5.3-4.7-7.9-16.2-20-16-20.7-3-5.6-8.2-11.7-10.5-11.7-3.1-1.8-4.6-6.1-4-7-2.4-.2-3.7-1.7-3.9-1.8L239 236.7c-1.7-.6-1.4 0-2 1l-1-1.4c-.9-.5-1.8.2-1.9.6z"/>
<path fill="none" stroke="#000" stroke-width=".1" d="m234.1 236.9 26 56.2c1.4 1 2.5-.3 3-.2 1.5 1.9 3.7 2.3 4.2 2.7 1.8 2.6.8 4.7.6 4.9-1.4 1.8 1.6 3.7 1.5 4.3.6 1.1 2.9 1 3.3 2.2.1-.1 4.5 9 4.9 10 .7.5 3.8 6.5 3.8 6.5 2.2 0 11-5.4 11.2-5.3-4.7-7.9-16.2-20-16-20.7-3-5.6-8.2-11.7-10.5-11.7-3.1-1.8-4.6-6.1-4-7-2.4-.2-3.7-1.7-3.9-1.8L239 236.7c-1.7-.6-1.4 0-2 1l-1-1.4c-.9-.5-1.8.2-1.9.6z"/>
<path fill="#cce5e5" stroke="#000" stroke-width=".1" d="M233.3 224.7c.5 1-.3 1-.6 1.2l-1.1.3c-1.3 0-2 .7-2 1.1l30.6 65.8c1.3 1 2.6-.3 3 0l-21-45-10.2-20.2 3-1.2c.8-.2 1.1-.8.7-1.7l-12.9-23.3 10.3 22.5.2.5"/>
<path fill="#e7e7e7" stroke="#000" stroke-width=".1" d="M233.3 224.7c.5 1-.3 1-.6 1.2l-1.1.3c-1.3 0-2 .7-2 1.1l30.6 65.8c1.3 1 2.6-.3 3 0l-21-45-10.2-20.2 3-1.2c.8-.2 1.1-.8.7-1.7l-12.9-23.3 10.3 22.5.2.5"/>
<path fill="none" stroke="#000" stroke-width=".1" d="M274.3 293.2c3.2 0 4.9 2.3 2.8 5m-1.4-2.5c1 .7 1.8-.3 1.8-.3m-16-14.2c1.6 6 4.5 10 5 11.3 2.3 2.3 4.1 7.7 3.8 8.6l8.3 14.4"/>
<path fill="#cce5e5" stroke="#000" stroke-width=".1" d="M260.3 293.3c1.4-.5 6.2-4.7 10.8-4 3.4 4.2 5.4 8.4 6 9a53.2 53.2 0 0 1-8.3 5.6c-.6-.4-1-1.6-1-1.6-.8-1 .3-1.9.3-1.9 0-2.6-2-4.5-3.9-4.6-2.4-.3-1.7-.4-2-.5-1.1-.6-1.9-2-1.9-2z"/>
<path fill="none" stroke="#000" stroke-width=".1" d="M260.3 293.3c1.4-.5 6.2-4.7 10.8-4 3.4 4.2 5.4 8.4 6 9a53.2 53.2 0 0 1-8.3 5.6c-.6-.4-1-1.6-1-1.6-.8-1 .3-1.9.3-1.9 0-2.6-2-4.5-3.9-4.6-2.4-.3-1.7-.4-2-.5-1.1-.6-1.9-2-1.9-2z"/>
<path fill="#cce5e5" stroke="#000" stroke-width=".1" d="M265 293.5c2 0 4.3 1 5 2.8l-5-2.8"/>
<path fill="none" stroke="#000" stroke-width=".1" d="M265 293.5c2 0 4.3 1 5 2.8m3.8.8c-.2.5-.8.7-1.3.5-.5-.2-.8-.7-.6-1.1.2-.5.8-.6 1.3-.5.6.2.8.7.6 1.1zm-2.6-3.7c-.2.5-.8.7-1.3.5-.5-.2-.8-.7-.6-1 .2-.5.8-.7 1.3-.6.5.2.8.7.6 1.1z"/>
<path fill="#cce5e5" stroke="#000" stroke-width=".1" d="M236.4 243.3a1.6 1.6 0 0 1-.8-2.2l5-1.7s.7 0 1.1.8c.5.7-.2 1.2-.2 1.2l-5 1.9"/>
<path fill="none" stroke="#000" stroke-width=".1" d="M236.4 243.3a1.6 1.6 0 0 1-.8-2.2l5-1.7s.7 0 1.1.8c.5.7-.2 1.2-.2 1.2l-5 1.9"/>
<path fill="#a05a2c" stroke="#000" stroke-width=".1" d="m251 267.4 37.8-40.5a94.1 94.1 0 0 1-1.4-1l-38 40.5c-.5-.2 2 1.3 1.5 1z"/>
<path fill="#e7e7e7" fill-rule="evenodd" stroke="#000" stroke-width=".1" d="M287.8 226.3c-1.3-1-3.7-2.3-5.3-2-.6-2.2 2.7-4.6 4-4.2-.3 2.5 3.4 4 3.3 4l-2 2.3z"/>
<path fill="#e7e7e7" stroke="#000" stroke-width=".1" d="M290.3 224.4c1 .9 1.4 1 3 1.7 1.4.8 3.4-1.2 4.3-1.8 0 0 1 3.6-1.2 6s-4.9 3-7 2.2c0 0 2.8-2.7 1.7-3.9-1.1-1.1-1.5-1.2-2.6-2"/>
<path fill="#e7e7e7" stroke="#000" stroke-width=".1" d="M19.4-370.2h4.4v2.4h-4.4z" transform="matrix(-.67726 .73575 -.82314 -.56784 0 0)"/>
<path fill="#007934" fill-rule="evenodd" stroke="#000" stroke-width=".1" d="m243.4 309.7-1 9.6 1.9-2.4c.3-.6 1.6-2.2 1.9-7.9 0 0-1-3-1.5-3-.8-.5-1.3 3.7-1.3 3.7zm2.3-21.5L243 305c0 .4 1.3 1.7 2.3-1.3l1.5-11.2-1-4.4z"/>
<path fill="#d52b1e" fill-rule="evenodd" stroke="#000" stroke-width=".1" d="M251.6 303.5c-.6-.8-1.4-1.7-1.5-2.1l-.4 3.4s2.1 1.5 1.8 4.6l.5-.6.2-1.3s.5-2 .5-3.2c0 0-.5-.2-1.1-.8z"/>
<path fill="#ffe000" fill-rule="evenodd" stroke="#000" stroke-width=".1" d="M242.4 319.3s3.6-3 3.8-10.3l.4-2s0 1.6.8.4c.7-1.6.7-3 .7-3s1.3-1.6 1.7.4l-1.3 10.2a54.8 54.8 0 0 1-.3 2.2s-.7-1.2-1.4 0c-.8 1.3-2 2.9-4.4 2.1zm4.3-26.7-1.5 11.2s1.2.6 1.4 3.2c.1 1.2.6.6.8.4.3-.8 0-2.4 0-2.4l.8-7.8s-1.4-3.6-1.5-4.6z"/>
<path fill="#ffe000" fill-rule="evenodd" stroke="#000" stroke-width=".1" d="m245.5 318.7-.2 2.8s1 0 1.8-1.2c.8-1.3 1-3 1-3s-.7-1.3-1.3 0a4 4 0 0 1-1.3 1.4zm2-11.3a6.3 6.3 0 0 0 .6-3l-.8.6c.3 1.2.1 2.4.1 2.4z"/>
<path fill="#d52b1e" fill-rule="evenodd" stroke="#000" stroke-width=".1" d="M251 306.3c-.6-1-1.4-1.6-1.4-1.6l-1.6 12.7s-.4 3.2-2.4 4c0 0 1.1 11 4.7 8 .5-.5 1.2-3.9 1-5.9l-1-6.4a28.5 28.5 0 0 1 1.2-7.8c.2-.2 0-1.8-.6-3z"/>
<path fill="#d52b1e" fill-rule="evenodd" stroke="#000" stroke-width=".1" d="m252.7 304.3 1.1 1c.2 0-2.5 20.7-2.5 20.7s0-2.2-.7-6.4c-.7-3.4.2-8 1-10.2 0 0 .8-.7 1-5z"/>
<path fill="#f7e214" fill-rule="evenodd" stroke="#000" stroke-width=".1" d="m248 297.4-.6 7.6s1.8-2.6 2.3-.2l.4-3.5s-1.6-2.5-2-4z"/>
<path fill="#007934" fill-rule="evenodd" stroke="#000" stroke-width=".1" d="M246.7 307s-.6-6.5-3.8-2c0 0-.3 2.7 0 3.3 0 .8.9 1.8 1.3 2.5.7 1 1.4-.3 1.4-.3s.7-1 1-3.5z"/>
<path fill="#d52b1e" stroke="#000" stroke-width=".1" d="M221.7 252.7c-.2-3.7-1.3-9.8-1.4-14l-12.8-13.1s-1.6 10.5-6.2 16.6l20.3 10.5"/>
<path fill="#ffe000" stroke="#000" stroke-width=".1" d="M222.6 253.2c.5-2.6 1.2-5.5 1.6-11l-8.2-8c0 3.4-3.8 8.6-4.1 15"/>
<path fill="#007934" stroke="#000" stroke-width=".1" d="M229.7 261c1-4.5-1.4-5.1 2-11.5l-7.6-7.3c-1.4 4.3-2.3 7-2.2 10.8l6.5 4.6"/>
<path fill="#d52b1e" stroke="#000" stroke-width=".1" d="M200 288c-1.5-4.5.6-13.5.4-19.3-.2-3.7 2.5-17.6 2.5-21.9l-15-9.4s-.7 15.3-2.5 32a66.3 66.3 0 0 0-.4 22.8c1.6 9.3 3.2 13.1 7 17 6.6 7 20.9 3 20.9 3 12-2.6 19-10.2 19-10.2s-4 1-10.3 1.6c-14-1-19.4 2.5-19.8-11.8"/>
<path fill="#f7e214" stroke="#000" stroke-width=".1" d="m240.4 297.4.2-.1c-2.6 1-6.2 2-6.2 2l-8.5.7c-18.4.4-16.1-11-15.4-29.4.2-7 1.6-15.8 1.2-18.9l-12.3-7c-4 11.3-2.8 19.3-3.6 25-.4 6.4-1.8 18.6.3 24 2.9 12.4 12.6 11.9 25.8 10.8 6.5-.6 10-2.3 10-2.3l8.5-4.9"/>
<path fill="#007a3d" stroke="#000" stroke-width=".1" d="M240.6 297.1a37.3 37.3 0 0 1-6.3 2.3l-8.6.9c-13.3 1-21.1-8.3-19.4-29.5A66 66 0 0 1 209 250l7.3 4.3v.7c-.4 2.2-1.4 7.5-1.4 9.9 0 17 10.7 30 25.4 32.3l.2-.1"/>
<path fill="none" stroke="#000" stroke-width=".1" d="M192 246c1.2 2 8.6 13.3 12.7 15.5m-11.5-8.2c1.2 2.1 10.3 14.9 14.4 15.6m-16.5 3.9c2 2.5 4.1 7.4 10.3 10.6M194 287c4.1 4 14.4 12.4 24.3 12.8m-24.3-6.4c2 2.5 6.6 14.2 25.6 8.9m-28.5-6.7c1.2 2.8 10.8 18.4 27.7 12.3"/>
<path fill="#d52b1e" stroke="#000" stroke-width=".1" d="M211 282.5c-1.6-4.6.5-13.6.3-19.4-.2-3.7 1.5-16.5 1.5-20.8l-14.1-10.5s-.7 15.3-2.4 32c-1.6 8.5-2.7 19-1.6 25.5 2 10.6 7 13.6 8 14.5 7.2 6.4 23.4 5.7 25 5.2 11.6-4.2 16.6-11.6 16.6-11.6s-5.5 0-11.8.6c-14-1-21-.4-21.4-14.7"/>
<path fill="#ffe000" stroke="#000" stroke-width=".1" d="m251.3 291.8.2-.2c-2.6 1-6.2 2.1-6.2 2.1l-8.5.7c-18.4.4-16.1-11-15.4-29.4.2-7 .4-13.3 0-16.4l-11-8c-4 11.3-3 17.8-3.7 23.6-.4 6.3-1.8 18.5.3 23.8 2.8 12.5 12.6 12 25.7 10.9 6.6-.6 10-2.3 10-2.3l8.6-4.9"/>
<path fill="#007934" stroke="#000" stroke-width=".1" d="M251.6 291.6a37 37 0 0 1-6.3 2.3l-8.6.8c-13.3 1.2-21.2-8.2-19.5-29.4 0-7.5-.2-8 2.4-18 4 2.6 11.9 9.3 11.9 9.3s-2.1 3-1.6 7.2c0 17 6.8 25.7 21.5 27.9l1.6-14"/>
<path fill="none" stroke="#000" stroke-width=".1" d="M202.8 240.3a60.7 60.7 0 0 0 12.8 15.6m-11.5-8.2c1.2 2.2 10.3 14.9 14.4 15.6m-16.5 3.9c2 2.5 4.1 7.4 10.3 10.6m-7.4 3.5c4.1 4 14.4 12.4 24.3 12.8m-24.3-6.4c2 2.5 6.6 14.2 25.6 8.9m-28.5-6.7c1.2 2.8 10.7 18.4 27.7 12.3"/>
<path fill="#e8a30e" stroke="#000" stroke-width=".1" d="m188 238.9-.8 6.4c-.3 4.7-.1 8.2.1 10.5 0 .2.9 5.8.6 6.1-1 1.3-1.1 1.4-2.3.5-.1-.2.5-6 .6-6.8l.4-10.5c0-1.1 1-6.8 1-6.8s.1-1.3.3.6"/>
<path fill="none" stroke="#000" stroke-width=".1" d="m188 238.9-.8 6.4c-.3 4.7-.1 8.2.1 10.5 0 .2 1.1 8 .7 6.1-1 1.3-1.3 1.7-2.4.8-.2-.2.5-6.3.6-7l.4-10.6c0-1.1 1-6.8 1-6.8s.1-1.3.3.6z"/>
<path fill="#f7e214" stroke="#000" stroke-width=".1" d="M187.8 237s-1.2 6.5-1.3 10.2c-.2 4.5-.4 5.8-.3 8.5l-.6 4.8c-.1.7.1.1 0 .2-1 .6-1.6.1-2.1-.3-.2-.2 1.5-4 1.5-4.9.9-11.4 2.5-18.2 2.5-18.2s-.6 4.1.3-.3"/>
<path fill="#e8a30e" stroke="#000" stroke-width=".1" d="M187.8 237s-1.2 6.5-1.3 10.2c-.2 4.5-.4 5.8-.3 8.5l-.6 4.8c-.1.7.1.1 0 .2-1 .6-1.6.1-2.1-.3-.2-.2 1.5-4 1.5-4.9.9-11.4 2.5-18.2 2.5-18.2s-.6 4.1.3-.3zm-.5 18.5s-1 .4-1.1.2m0-1.4s.8 0 1-.2m-.1-1.2s-.7.4-.8.2m.7-1.8h-.6m.7-1.6h-.7m.6-2.3s-.4.2-.4 0m.5-1.9h-.5m-.5 10.2s-1 .1-1.1-.2m1.1-2s-1 0-1-.2m1-1.4h-.8m1-1.5h-.7m.7-1.8-.5-.1m.7-1.5s-.5 0-.6-.2m.7-1.7s-.4.3-.4 0m0 9.6s-1 0-1-.3m13.6-21.1-.7 6.4c-.3 4.7-.1 8.3 0 10.5 0 .2 1 5.8.7 6.1-1.1 1.3-1.2 1.4-2.3.5-.2-.2.5-6 .5-6.8.2-.8.3-7.5.5-10.5 0-1.1 1-6.8 1-6.8s.1-1.3.3.6"/>
<path fill="none" stroke="#000" stroke-width=".1" d="m198.8 233.3-.7 6.4a70 70 0 0 0 0 10.5c0 .2 1.2 8 .8 6.1-1 1.3-1.3 1.7-2.4.8-.2-.2.5-6.3.6-7l.4-10.6c0-1.1 1-6.8 1-6.8s.1-1.3.3.6z"/>
<path fill="#e8a30e" stroke="#000" stroke-width=".1" d="M198.7 231.4s-1.2 6.5-1.4 10.2c-.1 4.5-.3 5.8-.2 8.5l-.6 4.8c-.1.7 0 .2 0 .2-1 .6-1.6.1-2.2-.3-.1-.2 1.5-4 1.6-4.9.9-11.4 2.5-18.2 2.5-18.2l.3-.3"/>
<path fill="none" stroke="#000" stroke-width=".1" d="M198.7 231.4s-1.2 6.5-1.3 10.2c-.2 4.5-.4 5.8-.3 8.5l-.6 4.8c-.1.7 0 .2 0 .2-1 .6-1.6.1-2.2-.3-.1-.2 1.5-4 1.6-4.9.9-11.4 2.5-18.2 2.5-18.2zm-.5 18.5s-1 .4-1.1.2m0-1.4s.7 0 .9-.2m0-1.2s-.7.4-.8.2m.7-1.8h-.6m.7-1.6h-.7m.6-2.3s-.4.2-.5 0m.6-1.9h-.6m-.5 10.2s-1 .1-1-.2m1.1-2s-1 0-1-.2m1-1.4h-.8m1-1.5h-.8m.8-1.8-.5-.1m.7-1.5s-.5 0-.6-.2m.7-1.7s-.5.3-.5 0m0 9.6s-1 0-1-.3"/>
<path fill="#e8a30e" stroke="#000" stroke-width=".1" d="M207.3 225.3s.5 5.5.2 8.6c-.4 3.8-.3 4.9-.7 7v4.3c.9.5 1.6.2 2.2-.1.2-.1-1-3.5-1-4.2.4-9.5-.5-15.3-.5-15.3l-.2-.2"/>
<path fill="#e8a30e" stroke="#000" stroke-width=".1" d="M207.3 225.3s.5 5.5.2 8.6c-.4 3.8-.3 4.9-.7 7v4.3c.9.5 1.6.2 2.2-.1.2-.1-1-3.5-1-4.2.4-9.5-.5-15.2-.5-15.2zm-.4 15.7s1 .2 1.1 0m-.8-1.8s.9.1 1-.1m-1-1.3h.9m-.8-1.2h.7m-.5-1.6h.5m-.5-1.3h.5m-.4-1.5s.4.3.4 0m-1 8s1 0 1-.2"/>
<path fill="#005000" stroke="#000" stroke-width=".1" d="M241 236.4h1z"/>
<path fill="#fff" fill-rule="evenodd" stroke="#000" stroke-width=".1" d="M252.5 273.5s-.4-.2-.5 0l.2.2zm-1 1.2 2.2-.2"/>
<path fill="#e8a30e" fill-rule="evenodd" stroke="#000" stroke-width=".1" d="M226.3 303.1c-.2 3.3-7.8 7-13.5.2-6-4.8-4.7-12.2 0-13.2l58.3-56.8c2.4-1.3 2.6-2.5 3.8-3.7 2.4 2.6 7.5 7.2 10.2 9.5-1.7 1.4-3 2.7-3.4 3.8z"/>
<path fill="#e7e7e7" fill-rule="evenodd" stroke="#000" stroke-linejoin="round" stroke-width=".1" d="M275 229.4c2.8-3.8 13.6 6 10.7 9.2-2.9 3-13.3-5.4-10.7-9.2z"/>
<path fill="#cccccf" fill-rule="evenodd" stroke="#000" stroke-width=".1" d="M284.8 237.8c-2 1.6-10-5-8.6-7.6 2.1-2.4 10.8 6.1 8.6 7.6z"/>
<path fill="none" stroke="#000" stroke-width=".1" d="M281.6 243a16.8 16.8 0 0 1-10.5-9.6m-24.5 48a17.3 17.3 0 0 1-12.2-12.5m9.7 15.3a17.3 17.3 0 0 1-12.2-12.4m-2.3 27.5a19 19 0 0 1-13-13m10.5 15.8a19.2 19.2 0 0 1-13-13"/>
<path fill="none" stroke="#000" stroke-linecap="round" stroke-width=".1" d="M212.6 304c-.3 1.5-1 2-2.2 1.5m14.7-2c-2.3 3.6-4.9 2.5-7 2.5"/>
<path fill="#e8a30e" stroke="#000" stroke-width=".1" d="M209.5 304.2c0 1 .8 1.8 1.8 1.8a1.8 1.8 0 0 0 1.9-1.8c0-1-.8-1.8-1.9-1.8-1 0-1.8 1.1-1.8 2"/>
<path fill="none" stroke="#000" stroke-linecap="round" stroke-width=".1" d="M212.8 303.9c-.3 1.4-1 1.9-2.2 1.4m14.5-1.9c-2.3 3.7-4.9 2.6-7 2.6"/>
<path fill="#007934" fill-rule="evenodd" stroke="#000" stroke-width=".1" d="m268.6 309.7 1 9.6-1.9-2.4c-.3-.6-1.6-2.2-1.9-7.9 0 0 1-3 1.5-3 .8-.5 1.3 3.7 1.3 3.7zm-2.4-21.5 2.9 16.9c0 .4-1.3 1.7-2.3-1.3l-1.5-11.2 1-4.4z"/>
<path fill="#d52b1e" fill-rule="evenodd" stroke="#000" stroke-width=".1" d="M260.4 303.5c.6-.8 1.4-1.7 1.5-2.1l.4 3.4s-2.2 1.5-1.8 4.6l-.5-.6-.2-1.3-.5-3.2s.5-.2 1.1-.8z"/>
<path fill="#ffe000" fill-rule="evenodd" stroke="#000" stroke-width=".1" d="M269.6 319.3s-3.6-3-3.8-10.3l-.4-2s0 1.6-.8.4c-.7-1.6-.7-3-.7-3s-1.3-1.6-1.7.4a1925.6 1925.6 0 0 0 1.6 12.4s.7-1.2 1.4 0c.8 1.3 2 2.9 4.4 2.1zm-4.3-26.7 1.5 11.2s-1.2.6-1.4 3.2c-.1 1.2-.6.6-.8.4-.3-.8 0-2.4 0-2.4l-.8-7.8s1.4-3.6 1.5-4.6z"/>
<path fill="#ffe000" fill-rule="evenodd" stroke="#000" stroke-width=".1" d="m266.5 318.7.2 2.8s-1 0-1.7-1.2c-.9-1.3-1.2-3-1.2-3s.8-1.3 1.4 0a4 4 0 0 0 1.3 1.4zm-2-11.3a6.3 6.3 0 0 1-.6-3l.7.6c-.2 1.2 0 2.4 0 2.4z"/>
<path fill="#d52b1e" fill-rule="evenodd" stroke="#000" stroke-width=".1" d="M261 306.3c.6-1 1.4-1.6 1.4-1.6l1.6 12.7s.4 3.2 2.4 4c0 0-1.1 11-4.7 8-.5-.5-1.2-3.9-1-5.9l1-6.4a28.5 28.5 0 0 0-1.2-7.8c-.2-.2 0-1.8.6-3z"/>
<path fill="#d52b1e" fill-rule="evenodd" stroke="#000" stroke-width=".1" d="M259.4 304.3s-1 1-1.2 1c-.2 0 2.5 20.7 2.5 20.7s0-2.2.7-6.4c.7-3.4-.2-8-1-10.2 0 0-.8-.7-1-5z"/>
<path fill="#f7e214" fill-rule="evenodd" stroke="#000" stroke-width=".1" d="m264 297.4.6 7.6s-1.8-2.6-2.3-.2l-.4-3.5s1.6-2.5 2-4z"/>
<path fill="#007934" fill-rule="evenodd" stroke="#000" stroke-width=".1" d="M265.3 307s.6-6.5 3.8-2c0 0 .3 2.7 0 3.3 0 .8-.9 1.8-1.3 2.5-.7 1-1.4-.3-1.4-.3s-.7-1-1-3.5z"/>
<path fill="#d52b1e" stroke="#000" stroke-width=".1" d="M290.4 252.7c0-3.7 1.2-9.8 1.3-14l12.8-13.1s1.6 10.5 6.2 16.6l-20.3 10.5"/>
<path fill="#ffe000" stroke="#000" stroke-width=".1" d="M289.4 253.2c-.5-2.6-1.2-5.5-1.6-11l8.2-8c0 3.4 3.9 8.6 4.1 15"/>
<path fill="#007934" stroke="#000" stroke-width=".1" d="M282.3 261c-1-4.5 1.4-5.1-2-11.5l7.6-7.3c1.4 4.3 2.3 7 2.2 10.8l-6.5 4.6"/>
<path fill="#d52b1e" stroke="#000" stroke-width=".1" d="M312 288c1.5-4.5-.6-13.5-.4-19.3.2-3.7-2.5-17.6-2.5-21.9l15-9.4s.7 15.3 2.5 32c1.5 8.5 1.5 16.3.4 22.8-1.6 9.3-3.2 13.1-7 17-6.6 7-20.9 3-20.9 3-12-2.6-19-10.2-19-10.2s4 1 10.3 1.6c14-1 19.4 2.5 19.8-11.8"/>
<path fill="#f7e214" stroke="#000" stroke-width=".1" d="m271.6 297.4-.2-.1c2.6 1 6.2 2 6.2 2l8.5.7c18.4.4 16.1-11 15.4-29.4-.2-7-1.6-15.8-1.2-18.9l12.3-7c4 11.3 2.8 19.3 3.6 25 .4 6.4 1.8 18.6-.3 24-2.8 12.4-12.6 11.9-25.7 10.8a31.7 31.7 0 0 1-10.1-2.3l-8.5-4.9"/>
<path fill="#007a3d" stroke="#000" stroke-width=".1" d="M271.4 297.1a37 37 0 0 0 6.3 2.3l8.6.9c13.3 1 21.1-8.3 19.4-29.5A66 66 0 0 0 303 250l-7.3 4.3v.7c.4 2.2 1.4 7.5 1.4 9.9 0 17-10.7 30-25.4 32.3l-.2-.1"/>
<path fill="none" stroke="#000" stroke-width=".1" d="M320 246c-1.2 2-8.6 13.3-12.8 15.5m11.6-8.2c-1.2 2.1-10.3 14.9-14.4 15.6m16.5 3.9c-2 2.5-4.1 7.4-10.3 10.6m7.4 3.5c-4.2 4-14.4 12.4-24.4 12.8m24.4-6.4c-2 2.5-6.6 14.2-25.6 8.9m28.5-6.7c-1.2 2.8-10.7 18.4-27.7 12.3"/>
<path fill="#d52b1e" stroke="#000" stroke-width=".1" d="M301 282.5c1.6-4.6-.5-13.6-.3-19.4.2-3.7-1.5-16.5-1.5-20.8l14.1-10.5s.7 15.3 2.4 32c1.6 8.5 2.7 19 1.6 25.5-2 10.6-7 13.6-8 14.5-7.2 6.4-23.4 5.7-25 5.2-11.6-4.2-16.7-11.6-16.7-11.6s5.5 0 11.9.6c14-1 21-.4 21.4-14.7"/>
<path fill="#ffe000" stroke="#000" stroke-width=".1" d="m260.7 291.8-.2-.2c2.6 1 6.2 2.1 6.2 2.1l8.5.7c18.4.4 16.1-11 15.4-29.4-.2-7-.4-13.3 0-16.4l11-8c4 11.3 3 17.8 3.7 23.6.4 6.3 1.8 18.5-.3 23.8-2.8 12.5-12.5 12-25.7 10.9-6.6-.6-10-2.3-10-2.3l-8.6-4.9"/>
<path fill="#007934" stroke="#000" stroke-width=".1" d="M260.4 291.6a36.8 36.8 0 0 0 6.3 2.3l8.6.8c13.3 1.2 21.2-8.2 19.5-29.4 0-7.5.2-8-2.4-18-4 2.6-11.9 9.3-11.9 9.3s2.1 3 1.6 7.2c0 17-6.8 25.7-21.5 27.9l-1.6-14"/>
<path fill="none" stroke="#000" stroke-width=".1" d="M309.2 240.3a60.7 60.7 0 0 1-12.8 15.6m11.6-8.2c-1.3 2.2-10.4 14.9-14.5 15.6m16.5 3.9c-2 2.5-4.1 7.4-10.3 10.6m7.4 3.5c-4.1 4-14.4 12.4-24.3 12.8m24.3-6.4c-2 2.5-6.6 14.2-25.6 8.9m28.5-6.7c-1.2 2.8-10.7 18.4-27.7 12.3"/>
<path fill="#f7e214" stroke="#000" stroke-width=".1" d="m324 238.9.8 6.4c.3 4.7.1 8.2-.1 10.5 0 .2-.9 5.8-.6 6.1 1 1.3 1.1 1.4 2.3.5.1-.2-.5-6-.6-6.8l-.4-10.5c0-1.1-1-6.8-1-6.8s-.1-1.3-.3.6"/>
<path fill="#e8a30e" stroke="#000" stroke-width=".1" d="m324 238.9.8 6.4c.3 4.7.1 8.2-.1 10.5l-.8 6.1c1.1 1.3 1.4 1.7 2.5.8a64 64 0 0 0-.6-7l-.4-10.6c0-1.1-1-6.8-1-6.8s-.1-1.3-.3.6z"/>
<path fill="#f7e214" stroke="#000" stroke-width=".1" d="M324.2 237s1.2 6.5 1.3 10.2c.2 4.5.4 5.8.3 8.5l.6 4.8c.1.7-.1.1 0 .2 1 .6 1.6.1 2.1-.3.2-.2-1.5-4-1.5-4.9-.9-11.4-2.6-18.2-2.6-18.2s.7 4.1-.2-.3"/>
<path fill="#e8a30e" stroke="#000" stroke-width=".1" d="M324.2 237s1.2 6.5 1.3 10.2c.2 4.5.4 5.8.3 8.5l.6 4.8c.1.7-.1.1 0 .2 1 .6 1.6.1 2.1-.3.2-.2-1.5-4-1.5-4.9-.9-11.4-2.6-18.2-2.6-18.2s.7 4.1-.2-.3zm.5 18.5s1 .4 1.1.2m0-1.4s-.8 0-1-.2m.1-1.2s.6.4.8.2m-.7-1.8h.5m-.6-1.6h.7m-.6-2.3s.4.2.4 0m-.5-1.9h.5m.5 10.2s1 .1 1.1-.2m-1.1-2s1 0 1-.2m-1-1.4h.7m-1-1.5h.8m-.7-1.8.5-.1m-.7-1.5s.4 0 .5-.2m-.6-1.7s.4.3.4 0m0 9.6s1 0 1-.3"/>
<path fill="#f7e214" stroke="#000" stroke-width=".1" d="m313.2 233.3.7 6.4c.3 4.7.1 8.3 0 10.5 0 .2-1 5.8-.7 6.1 1.1 1.3 1.2 1.4 2.3.5.2-.2-.5-6-.5-6.8-.2-.8-.3-7.5-.5-10.5 0-1.1-1-6.8-1-6.8s-.1-1.3-.3.6"/>
<path fill="#e8a30e" stroke="#000" stroke-width=".1" d="m313.2 233.3.7 6.4a70 70 0 0 1 0 10.5c0 .2-1.2 8-.8 6.1 1 1.3 1.3 1.7 2.4.8a64 64 0 0 0-.6-7l-.4-10.6c0-1.1-1-6.8-1-6.8s-.1-1.3-.3.6z"/>
<path fill="#f7e214" stroke="#000" stroke-width=".1" d="M313.3 231.4s1.2 6.5 1.4 10.2c.1 4.5.3 5.8.2 8.5l.6 4.8c.1.7 0 .2 0 .2 1 .6 1.6.1 2.2-.3.1-.2-1.5-4-1.6-4.9-.9-11.4-2.5-18.2-2.5-18.2l-.3-.3"/>
<path fill="#e8a30e" stroke="#000" stroke-width=".1" d="M313.3 231.4s1.2 6.5 1.3 10.2c.2 4.5.4 5.8.3 8.5l.6 4.8c.1.7 0 .2 0 .2 1 .6 1.6.1 2.1-.3.2-.2-1.5-4-1.5-4.9-.9-11.4-2.5-18.2-2.5-18.2zm.5 18.5s1 .4 1.1.2m0-1.4s-.8 0-.9-.2m0-1.2s.7.4.8.2m-.7-1.8h.6m-.7-1.6h.7m-.6-2.3s.4.2.4 0m-.5-1.9h.5m.6 10.2s1 .1 1-.2m-1.1-2s1 0 1-.2m-1-1.4h.8m-1-1.5h.8m-.8-1.8.5-.1m-.7-1.5s.5 0 .6-.2m-.7-1.7s.5.3.4 0m.1 9.6s1 0 1-.3m-11.3-23.4s-.5 5.4-.2 8.5c.4 3.8.3 4.9.7 7v4.3c-.9.5-1.6.2-2.2-.1-.2-.1 1-3.5 1-4.2-.4-9.5.5-15.3.5-15.3l.2-.2"/>
<path fill="#e8a30e" stroke="#000" stroke-width=".1" d="M304.7 225.3s-.5 5.5-.2 8.6c.4 3.8.3 4.9.7 7v4.3c-.9.5-1.6.2-2.2-.1-.2-.1 1-3.5 1-4.2-.4-9.5.5-15.2.5-15.2zm.4 15.7s-1 .2-1.1 0m.8-1.8s-.9.1-1-.1m1-1.3h-.9m.8-1.2h-.7m.5-1.6h-.5m.5-1.3h-.5m.4-1.5s-.4.3-.4 0m1 8s-1 0-1-.2"/>
<path fill="#005000" stroke="#000" stroke-width=".1" d="M271 236.4h-1z"/>
<path fill="#fff" fill-rule="evenodd" stroke="#000" stroke-width=".1" d="M259.5 273.5s.4-.2.5 0l-.2.2zm1 1.2-2.2-.2"/>
<path fill="#d52b1e" stroke="#000" stroke-width=".1" d="M225.8 229.8c0-2.2 2-3.5 2.4-3.7 1-.7 1.7-1.3 4-1.6l.1.9c0 .4-.5 1.7-2.2 2.9a12.3 12.3 0 0 1-4.3 1.5z"/>
<path fill="#a05a2c" fill-rule="evenodd" stroke="#000" stroke-width=".1" d="m225.8 229 31.6 41 1.5-1.4-32.3-41.8z"/>
<path fill="#d52b1e" stroke="#000" stroke-width=".1" d="M225.3 221s3.4-.4 3-2.3c-.6-2-2.9-2-3.8-2-1 0-4.2.6-5 1.6-1 1-3 2.6-2.4 5.3a21.3 21.3 0 0 0 2.5 6.3c1 1.8.7 3.5.5 4.2-.1.3-.4 1.4.4 1.8 1.3.5 1.6.5 2.7-.7s2.6-3.1 2.6-5.4c0-2.2 2-3.5 2.4-3.7 1-.7 1.7-1.3 4-1.6 0 0-.9-1.3-2-1.2a9 9 0 0 1-5-2.3z"/>
<path fill="none" stroke="#000" stroke-width=".1" d="M225.3 221s3.4-.4 3-2.3c-.6-2-2.9-2-3.8-2-1 0-4.2.6-5 1.6-1 1-3 2.6-2.4 5.3a21.3 21.3 0 0 0 2.5 6.3c1 1.8.7 3.5.5 4.2-.1.3-.4 1.4.4 1.8 1.3.5 1.6.5 2.7-.7s2.6-3.1 2.6-5.4c0-2.2 2-3.5 2.4-3.7 1-.7 1.7-1.3 4-1.6 0 0-.9-1.3-2-1.2a9 9 0 0 1-5-2.3z"/>
<path fill="none" stroke="#000" stroke-width=".1" d="M225.3 221c-.5 0-1.9-.6-2.8-.3-1 .4-2.8 1.5-2.5 3.1m11-.2s-1.9.8-3.3 1.8a42 42 0 0 0-3.7 3.4c-1.1 1.1-1.4 2.6-3.7 4.2m9.5-9.7-1.5 1.1c-.6.4-.8 1-1.3 1.4"/>
<path fill="#e8a30e" fill-rule="evenodd" stroke="#000" stroke-width=".1" d="M285.7 303.1c.2 3.3 7.8 7 13.5.2 6-4.8 4.7-12.2 0-13.2l-58.3-56.8c-2.4-1.3-2.6-2.5-3.8-3.7-2.4 2.6-7.5 7.2-10.2 9.5 1.6 1.4 3 2.7 3.4 3.8z"/>
<path fill="#e7e7e7" fill-rule="evenodd" stroke="#000" stroke-linejoin="round" stroke-width=".1" d="M237 229.4c-2.8-3.8-13.6 6-10.7 9.2 2.9 3 13.3-5.4 10.7-9.2z"/>
<path fill="#cccccf" fill-rule="evenodd" stroke="#000" stroke-width=".1" d="M227.2 237.8c2 1.6 10-5 8.6-7.6-2.1-2.4-10.8 6.1-8.6 7.6z"/>
<path fill="none" stroke="#000" stroke-width=".1" d="M230.4 243c4.8-1.5 8.3-4.7 10.5-9.6m24.5 48a17.3 17.3 0 0 0 12.2-12.5m-9.7 15.3a17.3 17.3 0 0 0 12.2-12.4m2.3 27.5a19 19 0 0 0 13-13M285 302.2a19.2 19.2 0 0 0 13-13"/>
<path fill="none" stroke="#000" stroke-linecap="round" stroke-width=".1" d="M299.4 304c.3 1.5 1 2 2.2 1.5m-14.7-2c2.3 3.6 4.9 2.5 7 2.5"/>
<path fill="#e8a30e" stroke="#000" stroke-width=".1" d="M302.5 304.2c0 1-.8 1.8-1.8 1.8a1.8 1.8 0 0 1-1.9-1.8c0-1 .9-1.8 1.9-1.8 1 0 1.8 1.1 1.8 2"/>
<path fill="none" stroke="#000" stroke-linecap="round" stroke-width=".1" d="M299.2 303.9c.3 1.4 1 1.9 2.2 1.4m-14.5-1.9c2.3 3.7 4.9 2.6 7 2.6"/>
<path fill="#007934" fill-rule="evenodd" stroke="#000" stroke-width=".1" d="M277 187.2c1.9 3 4.7 8.5 5.4 12.7a24 24 0 0 1-7.5 22.3c-5.5 5-14 6.5-17.7 7.2-3.5.8-6.1 2-6.7 2.7 0-.6-.1-1.1.5-1.7 1.7-.7 4.4-1.2 8.3-2 7.7-1.6 15.8-4.5 20.2-12.9 5.8-11 2.4-19.7-2.6-28.2z"/>
<path fill="#d52b1e" stroke="#000" stroke-width=".1" d="M279 220a.5.6 49.9 0 1-.6-.7.5.6 49.9 0 1 .7.7z"/>
<path fill="#007934" fill-rule="evenodd" stroke="#000" stroke-width=".1" d="M284.4 218.6c-1.2.7-2.3.9-3.2 1.2l-2.4.7-1.6.7c-.8.4-1.7 1.5-1.7 1.5s1.3 1.3 2.8 1.1c1.2-.1 1.8-.5 2.4-.8.7-.3.6-.6 1.6-1.3 1-.7 1.6-2.1 2-3.1zm-6 1.3c-.4.6-1.3.5-1.8.4l-.3.3c.7 0 1.7 0 2.1-.6z"/>
<path fill="#007934" fill-rule="evenodd" stroke="#000" stroke-width=".1" d="M284.3 218.7a17.7 17.7 0 0 1-4.9 3c-2 .8-4.2 1-5.3 1l-.3.3a19.6 19.6 0 0 0 5.4-1.1 16 16 0 0 0 5.1-3.2zm-2.5 4.8c-2 0-3.2.6-5.2 1-1.7.4-3.9-.5-5 1.2 4.7 3 8 1 10.2-2.2z"/>
<path fill="#007934" fill-rule="evenodd" stroke="#000" stroke-width=".1" d="M277.6 227.8c-1-.8-8.6-3.4-9.9-.5 1.9 2 7.2 2.5 9.9.5z"/>
<path fill="#007934" fill-rule="evenodd" stroke="#000" stroke-width=".1" d="M275.7 229.8c-.8 0-1.7-.3-2.7-.4-.9 0-1.3-.2-2-.3-1.1-.2-2.4-1.8-6.4-.6 1.5 3.6 6.8 4.4 11.1 1.4zm1.8-2c-4.1.9-9 0-10.8-1l-.3.1a17.4 17.4 0 0 0 11 1zm4.2-4.3c-2.4 1.6-5.5 2.9-12.1 2l-.2.2c9.2.8 10-.9 12.3-2.2z"/>
<path fill="#007934" fill-rule="evenodd" stroke="#000" stroke-width=".1" d="M275.7 229.9c-3.2 0-5 1.5-11-1.4-.4-.3-1-.4-1.4-.6l-.6.2c.4.2 1 .2 1.5.3 7.4 3.3 7.2 1.8 11.5 1.5z"/>
<path fill="#d52b1e" stroke="#000" stroke-width=".1" d="M263.7 225.7a.5.6 66.2 1 0 .5.8.5.6 66.2 1 0-.5-.8z"/>
<path fill="#007934" fill-rule="evenodd" stroke="#000" stroke-width=".1" d="M263.6 226.4c-.7.2-.9 1-1 1.5l-.3.1c.2-.6.5-1.5 1.2-1.8z"/>
<path fill="#d52b1e" stroke="#000" stroke-width=".1" d="M283.6 199.3a.5.6 15.8 1 1-.9-.3.5.6 15.8 0 1 1 .3z"/>
<path fill="#007934" fill-rule="evenodd" stroke="#000" stroke-width=".1" d="M279 216.7c0-2.2-1.2.9-3.3-4.1-.7-1.5-.7-2.4-1.1-4.6 1.2 2 3.2 2.4 4 3.9.8 1.4.6 3.7.5 4.8z"/>
<path fill="#007934" fill-rule="evenodd" stroke="#000" stroke-width=".1" d="M274.6 208.2s1.1 2.5 2.7 4.3c1.5 1.8 1.8 4 1.8 4"/>
<path fill="#007934" fill-rule="evenodd" stroke="#000" stroke-width=".1" d="M275.7 210.3c1.4 1.9 3.2 4 3.3 6.4h.2c-.3-3-2.1-4.4-3.2-5.9zm11.6 2.9c-1 .8-2 1.1-3 1.5-.5.3-1 .8-1.5 1-.3.2-.9.2-1.4.6-.7.4-2.2 2.1-2.2 2.1s1.4 1.2 2.3 1c2.5-.5 3.2-1.5 4.5-2.4 1-.8 1-2.7 1.3-3.8z"/>
<path fill="#007934" fill-rule="evenodd" stroke="#000" stroke-width=".1" d="m278 218.5-.2.3c1.5-.1 3.8-1.5 5.3-2.3 2-1 3.2-1.8 4-3.3a9.5 9.5 0 0 1-4.1 3.3c-1.6.8-4 2.1-5 2z"/>
<path fill="#007934" fill-rule="evenodd" stroke="#000" stroke-width=".1" d="M288.1 208.3c-.8 1-1.8 1.4-2.5 2l-1.4 1.2c-.3.2-.9.4-1.3.8-.6.6-1.6 2.3-1.6 2.3s.7.7 1.5.4c2.5-.3 3.3-1.5 4.2-3.7.5-1 1-1.9 1.1-3z"/>
<path fill="#d52b1e" stroke="#000" stroke-width=".1" d="M279 212.8a.6.5 62 1 0 .8-.4.6.5 62 0 0-.8.3z"/>
<path fill="#007934" fill-rule="evenodd" stroke="#000" stroke-width=".1" d="m280 215-.2.4c3-1.4 7-4.2 8.4-7-1.9 3-5 5-8.2 6.6zm8.8-11.4c-.7 1-1.6 1.6-2.3 2.1l-1.2 1.3-1.1.9c-.6.6-1.4 2.4-1.4 2.4s1 .8 1.7.5c.8-.4 1.8-1.3 2.3-1.7.5-.5.6-1.6 1.2-2.4.7-1 .8-2 .8-3z"/>
<path fill="#007934" fill-rule="evenodd" stroke="#000" stroke-width=".1" d="M286.6 206.8a15.4 15.4 0 0 1-5 4v.4c2.7-1.6 3.8-3 5-4.4zm1.2-6c-.5 1-1.3 1.5-1.8 2.1l-1 1.3-.9.9c-.4.6-.8 2.3-.8 2.3s.6.6 1.2.2a12.5 12.5 0 0 0 2-1.8c.4-.4.6-1.5 1-2.3a4 4 0 0 0 .3-2.8zm-4.7-1.2c-.3.5-.4 1.1-.5 1.7l-.1-.4c.1-.5.2-1 .5-1.4z"/>
<path fill="#007934" fill-rule="evenodd" stroke="#000" stroke-width=".1" d="M286.3 203.8a13.8 13.8 0 0 1-4 4.2l-.1.3c2.3-1.7 3.2-3.1 4.1-4.5zm-6 10.5a3.5 3.5 0 0 0-.6-1.4h-.1c.3.6.4 1 .5 1.7z"/>
<path fill="#d52b1e" stroke="#000" stroke-width=".1" d="M279.4 193.4a.5.3 39.5 0 1-.6.5.5.3 39.5 0 1 .6-.5z"/>
<path fill="#007934" fill-rule="evenodd" stroke="#000" stroke-width=".1" d="M280.7 194.7a10 10 0 0 0-1.3-1c0 .1-.1.1 0 .2l1.4 1zm5.9.4c-1.2 2.5-4.1 4.3-3 8 3 2.7 3.2-4.8 3-8z"/>
<path fill="#007934" fill-rule="evenodd" stroke="#000" stroke-width=".1" d="M283.8 189.5c-.5 2.6-2.8 4.8-1.3 8.2 4.3 1 2.3-4.7 1.3-8.2z"/>
<path fill="#007934" fill-rule="evenodd" stroke="#000" stroke-width=".1" d="M281.3 185.6c2.1 4 2.7 6.3.1 8.9 0 0-1.3-1.3-1.6-3.5-.3-2 1.3-4.3 1.5-5.4z"/>
<path fill="#007934" fill-rule="evenodd" stroke="#000" stroke-width=".1" d="M277.8 183.3c.5 2.5-1.6 3.7 1.5 7 2.2-2.7 1.1-3.4-1.5-7z"/>
<path fill="#007934" fill-rule="evenodd" stroke="#000" stroke-width=".1" d="M277 187.7c-3.7.4-2.3-2.7-3.3-5.6 2.1 1.6 5 2.2 3.2 5.6zm2.3 4.8c-1-4.7-4.3-2.9-6-5 .9 3 2.2 5.1 6 5zm1.4 4.3c-2.8-.2-5-1.5-6.6-4.6 3 1.2 6.1 1.4 6.6 4.6z"/>
<path fill="#007934" fill-rule="evenodd" stroke="#000" stroke-width=".1" d="M281.1 200.9c-1-1.3-1-2.1-1.5-3a9.6 9.6 0 0 0-3.3-3.9c0 3.3.5 7 4.8 6.9z"/>
<path fill="#007934" fill-rule="evenodd" stroke="#000" stroke-width=".1" d="M281.8 204.3a21.5 21.5 0 0 0-6-6c1.1 2.3.6 6.6 6 6z"/>
<path fill="#007934" fill-rule="evenodd" stroke="#000" stroke-width=".1" d="M281.3 209.1c-5.3-.1-4.8-5.1-4.8-7.5 1 1.5 2.1 2.7 3 3.7 1 1.2 1.8 2.4 1.8 3.8z"/>
<path fill="#007934" fill-rule="evenodd" stroke="#000" stroke-width=".1" d="M280.7 212c-.5-1-.1-1.4-1-2.4-1.1-1-3-2.8-4-5-.2 2-.2 4.8 1.2 5.7 1 .8 2 1 3.8 1.8zm-4.6 7.8c-4.2-3.2-1.7-6-1.4-8.4 1.1 2.8 4 5.1 1.4 8.4zm1.6-31.1a59 59 0 0 0-3.9-6.5c2 3 3 4.9 4.1 6.9"/>
<path fill="#007934" fill-rule="evenodd" stroke="#000" stroke-width=".1" d="M276.1 220.6c.2-3.3-.7-6.1-1.3-9 .6 3 1.3 6.2 1 9.3zm5-7.9c-.5-2-4.5-3.3-5.4-8 .8 4.7 4.8 5.8 5.2 8.5zm.8-2.7v.5c-.7-3.1-4.4-4.7-5.4-8.9 1.5 4.6 4.5 5.2 5.4 8.4zm.8-4.7c-1.9-2.8-4.4-3.8-6.8-7 2.2 3.1 5 4.6 6.8 7.4zm-.1-3.6c-2-1-4-3.3-6.3-7.7 1.5 3.3 3.3 6.2 6.3 8.1zm-.9-4.3c-2.4-1.9-5.4-3.1-7.6-5.3 1.8 2 5.3 3.5 7.6 5.6zm-1.8-4.6c-2.4-1.6-4.7-2.1-6.6-5.2 1.5 3 4 3.8 6.6 5.4zm6.7 2.3c-.9 3.3-1.6 6.8-3.8 9v-.5c1-.5 2.6-4 3.8-8.5zm-2.7-5.5c-.2 3.4-.1 7-1.9 9l-.1-.5c1.8-1.4 1.6-5.2 2-8.5zm-2.4-3.8c.6 3 .6 5.7-.2 10.2l-.2-.4c.5-2.6 1-5.3.4-9.8zm-3.7-2.4c1.2 2.5 2.2 5.1 1.4 7.8l-.2-.3c.9-2.5-.2-5-1.2-7.5zm-4.6 33.3c1.4 3.4-.4 5.9-2.7 7.3-1.7-5 1.9-4.4 2.7-7.3z"/>
<path fill="#007934" fill-rule="evenodd" stroke="#000" stroke-width=".1" d="M273.3 216.7c.2 2-2 4.5-2.8 8l-.3.3c1-4.3 3.3-6 3-8.3z"/>
<path fill="#d52b1e" stroke="#000" stroke-width=".1" d="M281.3 193.3a.3.5 1.9 1 1-.7-.1.3.5 1.9 0 1 .7.1z"/>
<path fill="#007934" fill-rule="evenodd" stroke="#000" stroke-width=".1" d="M281.1 195.2v-1.7h-.2v1.9z"/>
<path fill="#d52b1e" stroke="#000" stroke-width=".1" d="M280.3 193a.3.4 2 0 1-.5.2.3.4 2 0 1 .5-.3z"/>
<path fill="#007934" fill-rule="evenodd" stroke="#000" stroke-width=".1" d="M280.7 194.5a8.2 8.2 0 0 1 0 .3z"/>
<path fill="#d52b1e" stroke="#000" stroke-width=".1" d="M282.4 199.3a.5.3 80.5 0 1-.7 0 .5.3 80.5 1 1 .7 0z"/>
<path fill="#007934" fill-rule="evenodd" stroke="#000" stroke-width=".1" d="M282.5 201.2a9.9 9.9 0 0 0-.4-1.6l.3 1.8z"/>
<path fill="#d52b1e" stroke="#000" stroke-width=".1" d="M281.2 199.7a.5.3 57 1 1-.5.5.5.3 57 0 1 .5-.5z"/>
<path fill="#007934" fill-rule="evenodd" stroke="#000" stroke-width=".1" d="M282.4 201.2a8.8 8.8 0 0 1 0 .3z"/>
<path fill="#d52b1e" stroke="#000" stroke-width=".1" d="M281 212.4a.3.5 12.7 1 1-.7-.3.3.5 12.7 0 1 .6.3z"/>
<path fill="#007934" fill-rule="evenodd" stroke="#000" stroke-width=".1" d="m280.4 214.2.2-1.6h-.1a9.5 9.5 0 0 1-.3 1.8z"/>
<path fill="#d52b1e" stroke="#000" stroke-width=".1" d="M281.6 213.2a.3.5 50.5 0 0 .5.5.3.5 50.5 1 0-.5-.5z"/>
<path fill="#007934" fill-rule="evenodd" stroke="#000" stroke-width=".1" d="m280.2 214.5 1.4-1v.2a9.4 9.4 0 0 0-1.4 1z"/>
<path fill="#d52b1e" stroke="#000" stroke-width=".1" d="M278.1 218.6a.3.5 40.4 0 1-.5-.6.3.5 40.4 0 1 .5.6z"/>
<path fill="#007934" fill-rule="evenodd" stroke="#000" stroke-width=".1" d="M276.8 219.9a10 10 0 0 0 1-1.3h-.2l-1 1.4z"/>
<path fill="#d52b1e" stroke="#000" stroke-width=".1" d="M276.1 218.2a.5.6 10 0 0 1 0 .5.6 10 1 0-1 0z"/>
<path fill="#007934" fill-rule="evenodd" stroke="#000" stroke-width=".1" d="M276.7 218.7c-.3.7-.1 1 0 1.2l-.1.4c-.2-.4-.3-.8-.1-1.6zm-13 10c-.7.1-1-.3-1.2-.7h-.4c.4.5.8 1 1.6 1v-.2z"/>
<path fill="#d52b1e" stroke="#000" stroke-width=".1" d="M263.8 229.5a.6.5 9.5 0 1 .2-.9.6.5 9.5 1 1-.2.9z"/>
<path fill="#007934" fill-rule="evenodd" stroke="#000" stroke-width=".1" d="M269.5 219.8a5.9 5.9 0 0 1-4.2 6.8c-1-4.2 3-4.4 4.2-6.8z"/>
<path fill="#007934" fill-rule="evenodd" stroke="#000" stroke-width=".1" d="M269.6 219.8a23 23 0 0 1-5.1 7.7h-.6a20 20 0 0 0 5.7-7.7z"/>
<path fill="#d52b1e" stroke="#000" stroke-width=".1" d="M264.3 227.5a.5.4 9.8 0 1-.4-.8.5.4 9.8 1 1 .4.8z"/>
<path fill="#007934" fill-rule="evenodd" stroke="#000" stroke-width=".1" d="M262.3 228a8.6 8.6 0 0 0 1.6-.7h-.2l-1.7.7zm2.8-5.3c-.1 1.3-1.2 2.5-2.1 3.5-1 .9-1.1 1.2-2.4 1.6-1.4-3 3-3.5 4.5-5z"/>
<path fill="#007934" fill-rule="evenodd" stroke="#000" stroke-width=".1" d="M265.1 222.7c-1.5 2.7-3.8 4-5 5.8h-.2c1.8-2.4 3.3-2.9 5.2-5.8zm-30-35.5c-1.9 3-4.7 8.5-5.4 12.7a24 24 0 0 0 7.5 22.3c5.5 5 14 6.5 17.7 7.2 3.5.8 6.1 2 6.7 2.7 0-.6.1-1.1-.5-1.7-1.7-.7-4.4-1.2-8.3-2-7.7-1.6-15.8-4.5-20.3-12.9-5.7-11-2.3-19.7 2.7-28.2z"/>
<path fill="#007934" fill-rule="evenodd" stroke="#000" stroke-width=".1" d="M249.7 227.8c-.2.5-4.3 4-8 3.7-2.6-.2-3-.8-3-.8s-.3-.7 2-1.2c2.5-.5 6.7-2.1 9-1.7z"/>
<path fill="#007934" stroke="#000" stroke-width=".1" d="M238.8 230.7c2.8.3 5.8-.8 8-1.7"/>
<path fill="#007934" fill-rule="evenodd" stroke="#000" stroke-width=".1" d="M246.6 222.6a11 11 0 0 1 4.9 4c1 1.6.8 2 .8 2s-.3.3-1.4-1c-1.2-1.4-3.6-3.6-4.3-5z"/>
<path fill="#007934" stroke="#000" stroke-width=".1" d="M252.3 228.5c-1-1.8-2.7-3.3-4-4.5"/>
<path fill="#007934" fill-rule="evenodd" stroke="#000" stroke-width=".1" d="M235 187.6c-.1-.4.3-3.7 2.1-4.7 1.4-.8 1.9-.6 1.9-.6s.4.3-.5 1.4c-1 1-2.3 3.3-3.6 3.9z"/>
<path fill="#007934" stroke="#000" stroke-width=".1" d="M239 182.3c-1.6.8-2.5 2.4-3.2 3.7"/>
<path fill="#007934" fill-rule="evenodd" stroke="#000" stroke-width=".1" d="M234 189.3c-.2-.3-1-3.2-.2-5 .6-1.5 1-1.6 1-1.6s.3 0 .1 1.4c-.2 1.4-.2 4-.9 5.2z"/>
<path fill="#007934" stroke="#000" stroke-width=".1" d="M234.7 182.8c-.7 1.5-.7 3.3-.7 4.7"/>
<path fill="#007934" fill-rule="evenodd" stroke="#000" stroke-width=".1" d="M234 189.3a9 9 0 0 0 4.1-2.2c1-1.1.9-1.4.9-1.4s-.1-.2-1.2.6c-1 .8-3 2-3.8 3z"/>
<path fill="#007934" stroke="#000" stroke-width=".1" d="M239 185.7c-1 1.2-2.5 2-3.6 2.8"/>
<path fill="#007934" fill-rule="evenodd" stroke="#000" stroke-width=".1" d="M232.7 191.6c-.1-.3-1.4-3.4-.9-5.6.3-1.6.7-1.8.7-1.8s.3 0 .3 1.5c0 1.6.3 4.5 0 5.9z"/>
<path fill="#007934" stroke="#000" stroke-width=".1" d="M232.5 184.3c-.5 1.7-.2 3.7 0 5.3"/>
<path fill="#007934" fill-rule="evenodd" stroke="#000" stroke-width=".1" d="M231.8 193.7c-.3-.2-2.4-3.1-2.2-5.6.1-1.8.5-2 .5-2s.5-.2.7 1.5c.3 1.6 1.3 4.5 1 6z"/>
<path fill="#007934" stroke="#000" stroke-width=".1" d="M230.1 186.1c-.2 2 .5 4 1 5.6"/>
<path fill="#007934" fill-rule="evenodd" stroke="#000" stroke-width=".1" d="M230.6 196.4a10 10 0 0 1-2.5-5c-.2-1.7 0-2 0-2s.3 0 .8 1.4c.5 1.5 1.7 4.2 1.7 5.6z"/>
<path fill="#007934" stroke="#000" stroke-width=".1" d="M228.2 189.5c0 1.8 1 3.7 1.6 5.1"/>
<path fill="#007934" fill-rule="evenodd" stroke="#000" stroke-width=".1" d="M232.8 191.6c.3 0 3.4-.3 4.8-1.8 1-1.2 1-1.6 1-1.6s-.1-.3-1.3.4c-1.3.8-3.7 1.9-4.5 3z"/>
<path fill="#007934" stroke="#000" stroke-width=".1" d="M238.6 188.3c-1.1 1.2-2.8 2-4.2 2.6"/>
<path fill="#007934" fill-rule="evenodd" stroke="#000" stroke-width=".1" d="M231.8 193.7c.2 0 3.4 0 5-1.5 1-1 1-1.5 1-1.5s-.1-.3-1.4.4c-1.2.7-3.7 1.6-4.6 2.6z"/>
<path fill="#007934" stroke="#000" stroke-width=".1" d="M237.8 190.8c-1.2 1.2-3 1.8-4.3 2.3"/>
<path fill="#007934" fill-rule="evenodd" stroke="#000" stroke-width=".1" d="M230.8 196.4c.3.1 3.6-.1 5.2-1.8 1.2-1.1 1.1-1.6 1.1-1.6s-.1-.4-1.4.4c-1.4.8-4 2-5 3z"/>
<path fill="#007934" stroke="#000" stroke-width=".1" d="M237 193c-1.1 1.4-3 2.2-4.4 2.8"/>
<path fill="#007934" fill-rule="evenodd" stroke="#000" stroke-width=".1" d="M231.3 195.2s-.3-.6-.3-1.1l.1-.9h-.2l-.1.8v.3l-.5-.5-.2-.4h-.1l.3.7c.5.4.8 1.2.8 1.2"/>
<path fill-rule="evenodd" stroke="#000" stroke-width=".1" d="M230 192.3a.6.4 83.5 1 1 .1 1.2.6.4 83.5 1 1-.1-1.2z" overflow="visible" style="marker:none"/>
<path fill-rule="evenodd" stroke="#000" stroke-width=".1" d="M231.3 192.3a.4.6 19.3 1 1-.4 1.1.4.6 19.3 1 1 .4-1z" overflow="visible" style="marker:none"/>
<path fill="#007934" fill-rule="evenodd" stroke="#000" stroke-width=".1" d="m231.2 195.2 1-.7.4-.8h.2l-.5.8-.2.3.7-.1.4-.3.1.2-.7.3c-.6 0-1.4.4-1.4.4"/>
<path fill-rule="evenodd" stroke="#000" stroke-width=".1" d="M234 193.7a.4.6 45.6 1 0-.8.9.4.6 45.6 1 0 .8-.8z" overflow="visible" style="marker:none"/>
<path fill-rule="evenodd" stroke="#000" stroke-width=".1" d="M233 192.9a.4.6 19.8 1 0-.4 1.1.4.6 19.8 1 0 .4-1.1z" overflow="visible" style="marker:none"/>
<path fill="#007934" fill-rule="evenodd" stroke="#000" stroke-width=".1" d="M229.8 199.3a11 11 0 0 1-3-5c-.3-1.8 0-2 0-2s.3-.2.8 1.3c.7 1.5 2 4.2 2.2 5.7z"/>
<path fill="#007934" stroke="#000" stroke-width=".1" d="M226.8 192.3c.2 1.9 1.2 3.8 2 5.2"/>
<path fill="#007934" fill-rule="evenodd" stroke="#000" stroke-width=".1" d="M230 199.3c.3.1 3.8-.4 5.3-2.2 1.1-1.3 1-1.7 1-1.7s-.1-.4-1.4.5c-1.4 1-4 2.2-5 3.5z"/>
<path fill="#007934" stroke="#000" stroke-width=".1" d="M236.3 195.4c-1.2 1.5-3 2.4-4.5 3.1"/>
<path fill="#007934" fill-rule="evenodd" stroke="#000" stroke-width=".1" d="M229.5 202.3c.3 0 3.8-1 5.4-2.9 1.2-1.3 1-1.7 1-1.7s0-.3-1.4.7-4 2.6-5 3.9z"/>
<path fill="#007934" stroke="#000" stroke-width=".1" d="M236 197.8c-1.3 1.4-3.2 2.5-4.6 3.4"/>
<path fill="#007934" fill-rule="evenodd" stroke="#000" stroke-width=".1" d="M229.4 202.3c-.3-.1-3.6-2.4-4-4.9-.4-1.8 0-2.1 0-2.1s.4-.3 1.1 1.3c.8 1.5 2.8 4 3 5.7z"/>
<path fill="#007934" stroke="#000" stroke-width=".1" d="M225.4 195.4a12 12 0 0 0 2.7 5.1"/>
<path fill="#007934" fill-rule="evenodd" stroke="#000" stroke-width=".1" d="M229.5 206c.3-.1 3.6-1.8 5-4 .9-1.5.7-2 .7-2s-.2-.2-1.4 1.1c-1.1 1.3-3.6 3.4-4.3 4.8z"/>
<path fill="#007934" stroke="#000" stroke-width=".1" d="M235.2 200.2c-1 1.7-2.7 3.2-4 4.3"/>
<path fill="#007934" fill-rule="evenodd" stroke="#000" stroke-width=".1" d="M229.4 206c-.4 0-3.9-1.7-4.8-4.2-.6-1.8-.4-2.2-.4-2.2s.4-.3 1.4 1.1c1 1.5 3.4 3.8 3.8 5.4z"/>
<path fill="#007934" stroke="#000" stroke-width=".1" d="M224.3 199.7c.6 2 2.2 3.6 3.5 4.8"/>
<path fill="#007934" fill-rule="evenodd" stroke="#000" stroke-width=".1" d="M229.4 204.4s-.5-.6-.6-1.1c-.2-.6 0-1 0-1h-.4l.2 1v.3c.3.4-.4-.3-.6-.4l-.3-.5-.2.2.6.6c.6.3 1.2 1 1.2 1"/>
<path fill-rule="evenodd" stroke="#000" stroke-width=".1" d="M227.2 201.7a.6.4 69.4 1 1 .5 1.2.6.4 69.4 1 1-.5-1.2z" overflow="visible" style="marker:none"/>
<path fill-rule="evenodd" stroke="#000" stroke-width=".1" d="M228.6 201.3a.4.6 5.2 1 1-.1 1.3.4.6 5.2 1 1 .1-1.3z" overflow="visible" style="marker:none"/>
<path fill="#007934" fill-rule="evenodd" stroke="#000" stroke-width=".1" d="M229.4 204.3s.5-.4.8-1c.3-.5.3-.8.3-.8h.2l-.3.8a4.2 4.2 0 0 1-.1.4l.7-.3.4-.4.1.2-.6.5c-.7.2-1.4.8-1.4.8"/>
<path fill-rule="evenodd" stroke="#000" stroke-width=".1" d="M232 202a.4.6 31.5 1 0-.6 1.2.4.6 31.5 1 0 .6-1.1zm-1.3-.5a.4.6 5.7 1 0-.1 1.2.4.6 5.7 1 0 .1-1.2z" overflow="visible" style="marker:none"/>
<path fill="#007934" fill-rule="evenodd" stroke="#000" stroke-width=".1" d="M229.8 209.3c-.4 0-4-1.9-5.5-4.3-1-1.8-.9-2.2-.9-2.2s.3-.4 1.6 1c1.3 1.5 4 3.9 4.8 5.5z"/>
<path fill="#007934" stroke="#000" stroke-width=".1" d="M223.5 202.8c1 2 3 3.6 4.4 5"/>
<path fill="#007934" fill-rule="evenodd" stroke="#000" stroke-width=".1" d="M230 209.2c.4 0 4.3-2 5.2-4.6.8-2 .4-2.4.4-2.4s-.4-.4-1.5 1.2c-1.1 1.5-3.6 4-4 5.8z"/>
<path fill="#007934" stroke="#000" stroke-width=".1" d="M235.6 202.3c-.7 2.1-2.5 3.9-3.8 5.3"/>
<path fill="#007934" fill-rule="evenodd" stroke="#000" stroke-width=".1" d="M231 212.5c.4 0 4-2.3 4.9-5 .6-2 .3-2.5.3-2.5s-.3-.3-1.3 1.4c-1.1 1.6-3.5 4.4-3.9 6.1z"/>
<path fill="#007934" stroke="#000" stroke-width=".1" d="M236.2 205.1c-.6 2.2-2.3 4-3.5 5.6"/>
<path fill="#007934" fill-rule="evenodd" stroke="#000" stroke-width=".1" d="M230.8 212.5c-.5 0-5-1.3-6.7-4-1.1-2-.9-2.6-.9-2.6s.4-.5 1.9 1c1.6 1.5 4.8 3.8 5.7 5.6z"/>
<path fill="#007934" stroke="#000" stroke-width=".1" d="M223.3 206c1.1 2.2 3.4 3.8 5.2 5"/>
<path fill="#007934" fill-rule="evenodd" stroke="#000" stroke-width=".1" d="M234.8 219.4a12 12 0 0 0 3-6c.1-1.9-.2-2.2-.2-2.2s-.4-.1-.9 1.6c-.5 1.8-1.9 5-1.9 6.6z"/>
<path fill="#007934" stroke="#000" stroke-width=".1" d="M237.6 211.3c0 2.1-1 4.3-1.8 6"/>
<path fill="#007934" fill-rule="evenodd" stroke="#000" stroke-width=".1" d="M234.6 219.3c-.4.2-5.6 0-8-2.2-1.9-1.7-1.8-2.4-1.8-2.4s.3-.5 2.3.5c2 1.1 6.1 2.5 7.5 4.1z"/>
<path fill="#007934" stroke="#000" stroke-width=".1" d="M224.9 214.8c1.9 1.9 4.7 2.9 7 3.6"/>
<path fill="#007934" fill-rule="evenodd" stroke="#000" stroke-width=".1" d="M232.7 216.6c-.4 0-5-1-7.3-3.4-1.6-1.7-1.5-2.2-1.5-2.2s.2-.4 2 .9c1.9 1.2 5.5 3.1 6.8 4.7z"/>
<path fill="#007934" stroke="#000" stroke-width=".1" d="M224 211c1.6 2 4.2 3.3 6.2 4.3"/>
<path fill="#007934" fill-rule="evenodd" stroke="#000" stroke-width=".1" d="M233 216.5c.3-.2 3.8-3 4.2-6 .2-2.1-.2-2.6-.2-2.6s-.5-.2-1.2 1.6c-.8 1.9-2.8 5-2.8 7z"/>
<path fill="#007934" stroke="#000" stroke-width=".1" d="M237 208c-.2 2.4-1.6 4.6-2.7 6.4"/>
<path fill="#007934" fill-rule="evenodd" stroke="#000" stroke-width=".1" d="M232 214.9s-.8-.3-1.2-.9c-.4-.5-.5-.9-.5-.9h-.3l.5 1 .3.3-.8-.1-.6-.4v.3s.5.4.8.4a4 4 0 0 1 1.6.5"/>
<path fill-rule="evenodd" stroke="#000" stroke-width=".1" d="M228.5 213.1a.7.5 45.9 1 1 1 1 .7.5 45.9 1 1-1-1z" overflow="visible" style="marker:none"/>
<path fill-rule="evenodd" stroke="#000" stroke-width=".1" d="M229.8 212.1a.7.5 71.6 1 1 .4 1.4.7.5 71.6 1 1-.4-1.4z" overflow="visible" style="marker:none"/>
<path fill="#007934" fill-rule="evenodd" stroke="#000" stroke-width=".1" d="M232 214.9s.4-.8.5-1.4c0-.7-.2-1-.2-1l.3-.2v1.5l.6-.6.3-.6.2.1s-.2.7-.4.9a4 4 0 0 0-1 1.4"/>
<path fill-rule="evenodd" stroke="#000" stroke-width=".1" d="M233.7 211.4a.5.7 8 1 0-.2 1.4.5.7 8 1 0 .2-1.4z" overflow="visible" style="marker:none"/>
<path fill-rule="evenodd" stroke="#000" stroke-width=".1" d="M232.1 211.3a.7.5 72.2 1 0 .5 1.4.7.5 72.2 1 0-.5-1.4z" overflow="visible" style="marker:none"/>
<path fill="#007934" fill-rule="evenodd" stroke="#000" stroke-width=".1" d="M236.6 221.4c-.4.2-4.6 1.2-7.3-.2-2-1-2-1.6-2-1.6s0-.5 2 0c2 .4 5.6.8 7.3 1.8z"/>
<path fill="#007934" stroke="#000" stroke-width=".1" d="M227.3 219.7c2.1 1.1 4.7 1.4 6.7 1.6"/>
<path fill="#007934" fill-rule="evenodd" stroke="#000" stroke-width=".1" d="M236.8 221.4c.2-.2 2-2.8 2-5.2 0-1.8-.4-2.1-.4-2.1s-.3-.2-.6 1.4c-.3 1.6-1.2 4.3-1 5.9z"/>
<path fill="#007934" stroke="#000" stroke-width=".1" d="M238.4 214.2c.2 1.9-.5 3.8-1 5.3"/>
<path fill="#007934" fill-rule="evenodd" stroke="#000" stroke-width=".1" d="M240.6 224.4c-.4.2-5.5 1.5-8.5.2-2.3-1-2.4-1.5-2.4-1.5s0-.6 2.4-.2c2.3.4 6.6.4 8.5 1.5z"/>
<path fill="#007934" stroke="#000" stroke-width=".1" d="M229.8 223.1c2.4 1.1 5.4 1.2 7.8 1.3"/>
<path fill="#007934" fill-rule="evenodd" stroke="#000" stroke-width=".1" d="M240.8 224.3c.2-.3 1.3-4 0-6-1-1.4-1.5-1.4-1.5-1.4s-.5.1-.1 1.7c.4 1.6.6 4.6 1.6 5.7z"/>
<path fill="#007934" stroke="#000" stroke-width=".1" d="M239.3 217c1.1 1.4 1.3 3.6 1.4 5.2"/>
<path fill="#007934" fill-rule="evenodd" stroke="#000" stroke-width=".1" d="M238.2 222.6s-.6.4-1.3 0c-.6-.3-.9-.7-.9-.7l-.3.2a10 10 0 0 0 1.4 1l-1 .2-.6-.2v.3l1 .1 1.6-.5"/>
<path fill-rule="evenodd" stroke="#000" stroke-width=".1" d="M234.1 222.7a.8.6 24.1 1 1 1.5.6.8.6 24.1 1 1-1.5-.7z" overflow="visible" style="marker:none"/>
<path fill-rule="evenodd" stroke="#000" stroke-width=".1" d="M235 221a.8.6 49.9 1 1 1 1.3.8.6 49.9 1 1-1-1.3z" overflow="visible" style="marker:none"/>
<path fill="#007934" fill-rule="evenodd" stroke="#000" stroke-width=".1" d="M238.3 223s.6-.6.2-1.3a2.8 2.8 0 0 0-.7-1l.2-.3.7 1 .2.5.3-1a17.5 17.5 0 0 0 0-.6h.2v1c0 .3-.6 1.6-.6 1.6"/>
<path fill-rule="evenodd" stroke="#000" stroke-width=".1" d="M238.6 218.8a.8.6 69.5 1 0 .6 1.5.8.6 69.5 1 0-.6-1.5zm-1.6.8a.8.6 43.7 1 0 1.1 1.2.8.6 43.7 1 0-1.1-1.2z" overflow="visible" style="marker:none"/>
<path fill="#007934" fill-rule="evenodd" stroke="#000" stroke-width=".1" d="M243.5 226c-.2.3-4.5 3.1-7.8 2.4-2.5-.5-2.8-1.1-2.8-1.1s-.2-.6 2-.8c2.4-.2 6.5-1.2 8.6-.5z"/>
<path fill="#007934" stroke="#000" stroke-width=".1" d="M233 227.3c2.6.7 5.5 0 7.7-.6"/>
<path fill="#007934" fill-rule="evenodd" stroke="#000" stroke-width=".1" d="M246.2 226.7s-.5.8-1.4.6c-.9-.2-1.3-.5-1.3-.5l-.3.3 1.4.5h.5s-.6.6-1 .6l-.7.2v.3l1.2-.3c.3 0 1.6-1.2 1.6-1.2"/>
<path fill-rule="evenodd" stroke="#000" stroke-width=".1" d="M241.7 228.3a1 .6 5.4 1 1 1.8.2 1 .6 5.4 1 1-1.8-.2zm.4-2a1 .6 31.2 1 1 1.6.9 1 .6 31.2 1 1-1.6-1z" overflow="visible" style="marker:none"/>
<path fill="#007934" fill-rule="evenodd" stroke="#000" stroke-width=".1" d="M244.8 226.4c.2-.4.8-4.2-1-6-1.3-1.3-2-1.2-2-1.2s-.5.2.2 1.7c.8 1.5 1.5 4.5 2.8 5.5z"/>
<path fill="#007934" stroke="#000" stroke-width=".1" d="M242 219.3c1.4 1.3 2 3.4 2.3 5"/>
<path fill="#007934" fill-rule="evenodd" stroke="#000" stroke-width=".1" d="M246.8 227.3s.2-.9-.5-1.4c-.7-.6-1.2-.7-1.2-.7v-.3l1.3.6.4.4s0-.8-.2-1.1a20 20 0 0 0-.4-.7l.3-.2.6 1.1.1 2"/>
<path fill-rule="evenodd" stroke="#000" stroke-width=".1" d="M245 222.9a1 .6 42.7 1 0 1.4 1.2 1 .6 42.7 1 0-1.4-1.2zm-1.3 1.7a1 .6 17 1 0 1.8.5 1 .6 17 1 0-1.8-.5z" overflow="visible" style="marker:none"/>
<path fill="#452c25" d="M255 223s-2.5 5.7-1.6 6.3c0 0 2.5-4.5 4.8-6.2 1.1-1.1 1.8 0 2-1 .1-1-3-2.3-3-2.3l-2.1 2.9"/>
<path fill="none" stroke="#000" stroke-width=".2" d="M255 223s-2.5 5.7-1.6 6.3c0 0 2.5-4.5 4.8-6.2 1.1-1.1 1.8 0 2-1 .1-1-3-2.3-3-2.3l-2.1 2.9"/>
<path fill="#452c25" d="M246 227.3s-3.7 6.4-2.7 6.4c1 .1 4.8-8 4.8-8l-1.3.2z"/>
<path fill="none" stroke="#000" stroke-width=".1" d="M246 227.3s-3.7 6.4-2.7 6.4c1 .1 4.8-8 4.8-8l-1.3.2z"/>
<path fill="#452c25" d="M247 225.6s-3.8 6.2-2.8 6.3c1 0 5-8 5-8l-1.3.3z"/>
<path fill="none" stroke="#000" stroke-width=".1" d="M247 225.6s-3.8 6.2-2.8 6.3c1 0 5-8 5-8l-1.3.3z"/>
<path fill="#452c25" d="M247.8 224.5s-4.3 5.8-3.4 6c1 .2 5.7-7.4 5.7-7.4h-1.3z"/>
<path fill="none" stroke="#000" stroke-width=".1" d="M247.8 224.5s-4.3 5.8-3.4 6c1 .2 5.7-7.4 5.7-7.4h-1.3z"/>
<path fill="#452c25" d="M249 223.5s-5.1 5.2-4.2 5.5a35 35 0 0 0 6.7-6.6l-1.4-.1z"/>
<path fill="none" stroke="#000" stroke-width=".1" d="M249 223.5s-5.1 5.2-4.2 5.5a35 35 0 0 0 6.7-6.6l-1.4-.1z"/>
<path fill="#452c25" d="M249.1 221.6s-4.4 5.8-3.4 6c.9.2 5.8-7.4 5.8-7.4h-1.3z"/>
<path fill="none" stroke="#000" stroke-width=".1" d="M249.1 221.6s-4.4 5.8-3.4 6c.9.2 5.8-7.4 5.8-7.4h-1.3z"/>
<path fill="#452c25" d="M248 226.5s-4.3 5.9-3.4 6c1 .3 5.7-7.4 5.7-7.4l-1.3.1z"/>
<path fill="none" stroke="#000" stroke-width=".1" d="M248 226.5s-4.3 5.9-3.4 6c1 .3 5.7-7.4 5.7-7.4l-1.3.1z"/>
<path fill="#452c25" d="M250.4 225.4s-2.5 4.7-2.2 5a17 17 0 0 0 4.9-5.6c1.5-2.8-2.8.5-2.8.5"/>
<path fill="none" stroke="#000" stroke-width=".1" d="M250.4 225.4s-2.5 4.7-2.2 5a17 17 0 0 0 4.9-5.6c1.5-2.8-2.8.5-2.8.5"/>
<path fill="#452c25" d="M250.7 225s-2.5 5.7-1.6 6.3c0 0 3.1-3.5 4-6.3.7-2.8 0-.2 0-.2l-.3-3-2 2.9"/>
<path fill="none" stroke="#000" stroke-width=".2" d="M250.7 225s-2.5 5.7-1.6 6.3c0 0 3.1-3.5 4-6.3.7-2.8 0-.2 0-.2l-.3-3-2 2.9"/>
<path fill="#452c25" d="M249.4 224.4s-5 5.2-4.1 5.5c.9.3 6.6-6.6 6.6-6.6h-1.3z"/>
<path fill="none" stroke="#000" stroke-width=".1" d="M249.4 224.4s-5 5.2-4.1 5.5c.9.3 6.6-6.6 6.6-6.6h-1.3z"/>
<path fill="#452c25" d="M249.8 225.1s-5 5.2-4.1 5.5c.9.3 6.6-6.5 6.6-6.5l-1.3-.2z"/>
<path fill="none" stroke="#000" stroke-width=".1" d="M249.8 225.1s-5 5.2-4.1 5.5c.9.3 6.6-6.5 6.6-6.5l-1.3-.2z"/>
<path fill="#452c25" d="M250.2 226s-5 5.1-4.1 5.4c.9.4 6.6-6.5 6.6-6.5l-1.3-.2z"/>
<path fill="none" stroke="#000" stroke-width=".1" d="M250.2 226s-5 5.1-4.1 5.4c.9.4 6.6-6.5 6.6-6.5l-1.3-.2z"/>
<path fill="#452c25" d="M250.6 218.8s-3.8 4.8-3.2 5.6c.5.9 4-2.2 5-4.3 1.1-2.1-1.8-1.5-1.8-1.5"/>
<path fill="none" stroke="#000" stroke-width=".1" d="M250.6 218.8s-3.8 4.8-3.2 5.6c.5.9 4-2.2 5-4.3 1.1-2.1-1.8-1.5-1.8-1.5"/>
<path fill="#452c25" d="M250.5 223.9s-3.3 6.2-2.4 5.8c.8-.3 4-5 4.4-6 .4-1 .3-2.1.3-2.1l-2.5 1.5.2 1.2"/>
<path fill="none" stroke="#000" stroke-width=".1" d="M250.5 223.9s-3.3 6.2-2.4 5.8c.8-.3 4-5 4.4-6 .4-1 .3-2.1.3-2.1l-2.5 1.5.2 1.2"/>
<path fill="#452c25" d="M250.5 221.9s2.7-5 0 .9c-2.7 5.8-3.7 4.9-3.7 4.9-.2-.4 2.3-4.3 2.3-4.3s2-3 2.4-3.3"/>
<path fill="none" stroke="#000" stroke-width=".1" d="M250.5 221.9s2.7-5 0 .9c-2.7 5.8-3.7 4.9-3.7 4.9-.2-.4 2.3-4.3 2.3-4.3s2-3 2.4-3.3"/>
<path fill="#452c25" d="M253.4 221.2s3-4.9 0 1c-3 5.7-4.2 4.8-4.2 4.8-.2-.4 2.6-4.3 2.6-4.3s2.1-3 2.6-3.3"/>
<path fill="none" stroke="#000" stroke-width=".1" d="M253.4 221.2s3-4.9 0 1c-3 5.7-4.2 4.8-4.2 4.8-.2-.4 2.6-4.3 2.6-4.3s2.1-3 2.6-3.3"/>
<path fill="#452c25" stroke="#000" stroke-width=".1" d="M252.3 219.2s-3.8 4.8-3.2 5.6c.5.8 4-2.2 5-4.3 1.1-2.2-1.8-1.5-1.8-1.5"/>
<path fill="#e8a30e" d="M291 267.8a35 39.4 0 1 1-70 0 35 39.4 0 1 1 70 0"/>
<path fill="none" stroke="#390" stroke-width=".9" d="M228 267.8c0-18.3 12.8-32.3 28-32.3s28 14 28 32.3" color="#000" font-family="Sans" font-weight="400" overflow="visible" style="line-height:normal;text-indent:0;text-align:start;text-decoration-line:none;text-transform:none;marker:none"/>
<path fill="#007934" stroke="#eee" stroke-width=".1" d="M221 269.9c1 20.8 16.3 37.3 35 37.3s34-16.5 35-37.3z"/>
<path fill="none" stroke="#000" stroke-width=".4" d="M291 267.8a35 39.4 0 1 1-70 0 35 39.4 0 1 1 70 0z"/>
<path fill="#d52b1e" stroke="#000" stroke-width=".1" d="M250.1 240.4c-.3 1.5 0 2.7.8 3.9a5 5 0 0 1 1 2.9 8.4 8.4 0 0 0-.8.4l-6-3.9 4 5.9a8.6 8.6 0 0 0-.2.3 5.2 5.2 0 0 0-3.2-.4 5.3 5.3 0 0 1-3.9-.8 4.8 4.8 0 0 0 3.3 2.2c1 .2 2 .6 2.7 1.4l-.2.8-7 1.4 7 1.4a9 9 0 0 0 .1.3 5.2 5.2 0 0 0-2.5 2 5.3 5.3 0 0 1-3.4 2.2c1.5.4 2.8 0 4-.8.8-.5 1.8-1 2.8-.9l.5.7-4 6 6-4 .2.2a5.2 5.2 0 0 0-.4 3.2 5.3 5.3 0 0 1-.8 3.9 4.8 4.8 0 0 0 2.2-3.3 5.2 5.2 0 0 1 1.4-2.7l.9.2 1.4 7 1.3-7h.4a5.2 5.2 0 0 0 2 2.5 5.3 5.3 0 0 1 2.2 3.3 4.8 4.8 0 0 0-.8-4 5.2 5.2 0 0 1-1-2.8l.8-.5 6 4-4-5.9a8.6 8.6 0 0 0 .2-.3 5 5 0 0 0 3.2.4 5.3 5.3 0 0 1 3.9.8 4.8 4.8 0 0 0-3.4-2.2 5.2 5.2 0 0 1-2.7-1.4l.2-.9 7-1.4-7-1.3a8.3 8.3 0 0 0 0-.4 5.2 5.2 0 0 0 2.5-2 5.3 5.3 0 0 1 3.3-2.1 4.8 4.8 0 0 0-3.9.7 5.2 5.2 0 0 1-2.8 1 8.4 8.4 0 0 0-.5-.8l4-5.9-6 4a8.6 8.6 0 0 0-.2-.2c.5-1.2.6-2.2.4-3.2a5.3 5.3 0 0 1 .8-4 4.8 4.8 0 0 0-2.2 3.4 5.2 5.2 0 0 1-1.4 2.7 8.5 8.5 0 0 0-.9-.2l-1.4-7-1.3 7h-.4a5.2 5.2 0 0 0-2-2.5 5.3 5.3 0 0 1-2.2-3.3z" overflow="visible" style="marker:none"/>
<path d="M262.2 252.5c-1.7-1.5-4-1.8-5.1-.6-1 1.2-.8 2.5.2 4a.6.6 0 0 0-.3.2 5.2 5.2 0 0 1-.4-4.4c1.7-1.3 4-1.5 5.6.8"/>
<path d="M259.5 252c-1 0-1.2.3-1.7.6-.4.4-.7.3-.7.4-.1 0 0 .3.1.2.2 0 .5-.2 1-.6s.8-.3 1.3-.3c1.4 0 2.1 1.1 2.3 1 .1 0-.8-1.3-2.3-1.3"/>
<path d="M261.3 253.3c-1-1-2.9-1.1-3.6.1h.3c.7-1.2 2.6-.7 2.7-.2v.2"/>
<circle cx="259.4" cy="253.3" r=".7"/>
<path d="M257.7 253.4c.7.7 2.4.8 3.6 0l-.6-.2c-.7.9-2 .8-2.7.2v-.2"/>
<path d="M261.3 253.7c-1.3 1-2.6 1-3.3.5-.8-.5-.8-.6-.6-.6l.9.4c.6.3 1.5.3 3-.3m-3.7 2.3a.5.5 0 1 1-.6.4c0 .2-.4.6-1 .6h-.1l.1.3c.1 0 .6 0 1-.2a.7.7 0 1 0 .6-1.1m1 3.2c-.8-.5-1-1.2-1.8-1.2a2 2 0 0 0-.8.3h-.1l.1.2c.3 0 .8-.4 1.3 0l1.2.7m-.2 0c-1.5-.5-1.8-.2-2.3-.2h-.1l.1.3c.6 0 1-.4 2.3-.1"/>
<path d="M258.5 259.2c-1.7-.2-1.1.8-2.5.8h-.1l.1.2c1.7 0 1-.9 2.5-1m-8.7-6.7c1.7-1.5 4-1.8 5.1-.6 1 1.2.8 2.6-.2 4 0 0 .2 0 .3.2a5.2 5.2 0 0 0 .4-4.4c-1.7-1.3-4-1.5-5.6.8"/>
<path d="M252.5 252c1 0 1.2.3 1.7.6.4.4.7.3.7.4.1 0 0 .3-.1.2-.2 0-.5-.2-1-.6s-.8-.3-1.3-.3c-1.4 0-2.1 1.1-2.3 1-.1 0 .8-1.3 2.3-1.3"/>
<path d="M250.8 253.3c1-1 2.8-1.1 3.5.1h-.3c-.7-1.2-2.6-.7-2.7-.2v.2"/>
<circle cx="-252.7" cy="253.3" r=".7" transform="scale(-1 1)"/>
<path d="M254.3 253.4c-.7.7-2.4.8-3.5 0l.5-.2c.7.9 2 .8 2.7.2v-.2"/>
<path d="M250.7 253.7c1.3 1 2.6 1 3.3.5.8-.5.8-.6.6-.6l-.9.4c-.6.3-1.5.3-3-.3m3.7 2.3a.5.5 0 1 0 .6.4c0 .2.4.6 1 .6h.2l-.2.3c-.1 0-.6 0-1-.2a.7.7 0 1 1-.6-1.1m-1 3.2c.8-.5 1-1.2 1.8-1.2l.8.3h.2l-.2.2c-.3 0-.8-.4-1.3 0zm.2 0c1.5-.5 1.8-.2 2.3-.2h.1l-.1.3c-.6 0-1-.4-2.3-.1"/>
<path d="M253.5 259.2c1.7-.2 1.1.8 2.5.8h.1l-.1.2c-1.7 0-1-.9-2.5-1"/>
<path fill="#007934" stroke="#000" stroke-linecap="round" stroke-width=".1" d="M259.4 275.6c1.7.3 3.5.2 5-.3a10.5 10.5 0 0 1 4.6-.6c0-.2.4-.4.2-.6-.6-.3-1.3-.3-2-.6-1.1-.5-1.8-1.4-3-2 0-.1-.5-.4-.5-.7 2.3 3.4 8 1.7 12.7 1.3.5.1 1.6-.2 2.6-.5 1.2-.4 4 0 4.7-.6l-1.5-1c-.6-.9-2.4-.8-3.2-1.7-1.4-1.5-3.5-2-5.1-3.2-.4-.2-1.2-.1-1.7-.3-.7-.5 0-.5-5.4-4.9-4.8-2-4.5-3.5-7.5-4.6-1-.6-2-1.5-3-1.2-1.5.4-5 2.2-6.6 3l-4 3.1c-.3.3-3.7 3.1-7.5 5.2a121 121 0 0 1-9.9 5c8.7-.4-7.7 2.5 31.1 5.2z"/>
<path fill="#007934" stroke="#000" stroke-width=".1" d="M238.2 265.7a59 59 0 0 0 13.2-9c-.4 0 .7 1 .6 1.4.8 0 .4-1 1-1s1-.2 1.4-.3c.5-.1.2.2.2.4-.7 1.3-2.2 2-3.4 3 .1.2.3.3.2.4.4.1 1 .1 1.2-.1l.1-.4c.5.2.3.5.1.8-.3.7-1.5.6-2 1.2a6.6 6.6 0 0 1-1.5 1.7c.5-.4 1.1-1 1.8-1 1-.1 1.4-.8 2.3-1 1-.2 1.6-1 2.4-1.6-.3.5-1 .9-.7 1.4a.6.6 0 0 0 .6.1c-.7.9-2.1 1.6-2.6 2.6-.4-.1-.7.2-1 .2-.5.2-.4.9-.7 1-1.2.8-1.9 2-2.4 3l-1.5.8c-.7.2-4.9 3.5-5 3-.3-2.2-4.6 1.8-14.1-1.6m32.6-.1-.2-.2c.1-.3-.5-.4-.5-.7 1 0 2 1.3 2.6.5.2-.1-.3-.4.4-.6.2 0-.1-.2 0-.3h-1l-.8-.3c-.3-.1-.5-.5 0-.6 1-.2 2 .5 2.8.2l1.8-.6c.3 0 1.3 0 1 .3-.3.2-.8.1-1 .2-.6.1-1 .4-1.6.6.4 0 .3.4.7.3.7-.2 1.4-.5 2.1-.5l.2-.5h.2c-.3-.5.7-.3 1-.7l.2.1c-.5.2-.3.6-.4.8l-.3.3c.3.2.3-.2.6 0h.6c.4 0 .8-.1.6-.4-.3-.3-.6-.5-.6-.9h-.2c.6 0 1 .1 1.2.4.3.2.4.6.8.7.9.2.8-.2.8-.7.7 0 1.7.4 1.5.7 0 .3-.6.5-1.1.5-.4 0-.2.3-.4.3-.4 0-1 0-1.1.3-.2.2 0 .7.3 1h2c.1-.4.6-.5 1-.8.4-.2-.3-.4-.6-.6-.3-.1-.1-.2 0-.4.3-.3 1 0 1-.2.2-.3-.1-.7.2-.8.2-.2.5.1.4.3l.7-.2c.4 0 .6.3.4.3-.4.3-.8.5-.7 1 0 .2-.5.2-.3.4.5.3.4.6.6 1 .1.4 1 .5 1.7.3-.3-.7 1.4-.3 2.2-.5v-.2c-.4-.2-.5-.3-.4-.6l-.2-.2c1.1.4 3 1 3.9 1.6-1 .2-3-.3-4 0-1.4.2-2.6.6-4 .6-.6 0-1.2-.3-1.8-.4m-12-.7-.3-.1"/>
<path fill="#007934" stroke="#000" stroke-width=".1" d="M257.3 276.4c2 0 2.3 1.5 3.7.1 1.2.2 2.4-.2 2.4-.4 2.9.6 11.9-.2 11.3-.8-1-1-2.5-1.5-3.7-2.4l-1.2-.4c-.7-.2-1.6 0-2.1-.3-1-.5-2-1-2.8-1.6-.5-.4-.7-1-1.3-1.5-.6-.4-1.4-.5-2-.8-1-.3-1.5-1.3-2.4-2-.3-.2-.8-.1-1.2-.4-.7-.3-1.3-1.2-2-1-1.2.1-1.9 1.1-3 1.6-1 .5-1.5 1.3-2.3 1.8-.2.1-2.8 1.9-5.7 3a76.7 76.7 0 0 1-7 2.7s2.5 1.9 8.5 1.6l3.6 1.2 2-.4h5.1z"/>
<path fill="#007934" stroke="#000" stroke-width=".1" d="M245 271.8c1.4-.6 6.5-3 8-4.8-.2 0 .5.5.4.8.5 0 .3-.5.7-.6l.8-.1c.3-.1.1 0 .1.2-.4.7-1.3 1-2 1.6 0 0 .1.1 0 .2h.8l.1-.3c.3.1.2.3 0 .4-.1.4-.9.4-1.1.7l-1 1c.3-.3.7-.6 1.1-.6.7 0 .9-.4 1.4-.5.6-.2 1-.6 1.5-.9-.2.2-.6.4-.5.7l.4.2c-.4.4-1.2.7-1.5 1.3-.3-.1-.5 0-.7.1-.2 0-.2.5-.3.6-.8.3-1.2 1-1.5 1.5 0 0-.7.4-1 .4-.3.2-2.9 2-3 1.7-.2-1.2-2.6.5-8.5-1.3"/>
<path fill="#00a6de" stroke="#000" stroke-width=".1" d="M256 228.4c-19.3 0-35 17.7-35 39.4 0 21.8 15.7 39.4 35 39.4s35-17.6 35-39.4-15.7-39.4-35-39.4zm0 8.8c14.1 0 26.3 13.1 26.3 30.6s-12.2 30.6-26.3 30.6c-14.1 0-26.3-13.1-26.3-30.6s12.2-30.6 26.3-30.6z" color="#000" font-family="Sans" font-weight="400" overflow="visible" style="line-height:normal;text-indent:0;text-align:start;text-decoration-line:none;text-transform:none;marker:none"/>
<path fill="#e8a30e" d="M261 284.6c0 .2 0 .2-.4.2-.4.1-.5.1-.5-.1s0-.2.5-.3c.3 0 .4 0 .4.2"/>
<path fill="#e8a30e" d="m261.1 284.6-.5.2h-.6c0-.2.3-.3.6-.3h.5zm-3 9.5c.9-2.2 1-4-.1-6.4 2-1.9 3.5-1.2 4.8.1-1.3 2.4-1 4.1-.2 6.4a4.3 4.3 0 0 1-4.5 0z"/>
<path fill="#e8a30e" d="M260.3 286.5v8.3c0-2.8.2-5.5 0-8.3"/>
<path fill="#e8a30e" d="M260.7 286.6a47.4 47.4 0 0 0-.4 8.2h.2c0-3.1 0-5.7.4-8.2a3 3 0 0 0-.2 0m.7-2.7c-.4.4-.5.4-.4 1 .4-.2.4-.5.4-1"/>
<path fill="#e8a30e" d="M260.6 284.2c.2.2.6.4.4 1-.5-.3-.4-.4-.4-1"/>
<path fill="#e8a30e" d="M260.5 284.9c.3.2.6.3.4.8-.3-.3-.4-.3-.4-.8"/>
<path fill="#e8a30e" d="M260.4 285.2c.3.3.6.4.4 1-.4-.3-.4-.3-.4-1"/>
<path fill="#e8a30e" d="M260.3 285.8c.3.2.7.3.4 1-.4-.4-.2-.5-.4-1"/>
<path fill="#e8a30e" d="M260.3 286.3c.2.2.6.4.4 1-.4-.4-.4-.4-.4-1m1.3-1.8c-.2.1-.6.1-.6.8.5-.3.5-.2.6-.8"/>
<path fill="#e8a30e" d="M261.6 285c-.2.1-.7 0-.7.7.6-.3.6-.2.7-.7"/>
<path fill="#e8a30e" d="M261.5 285.4c-.2.1-.6.1-.7.8.6-.3.6-.2.7-.8"/>
<path fill="#e8a30e" d="M261.5 286c-.2 0-.7-.1-.7.7.4 0 .4-.3.7-.7"/>
<path fill="#e8a30e" d="M261.3 286.5c-.3.1-.5 0-.6.8.5-.4.5-.3.6-.8m.3.4c-.8 2.2-1 4.2-.9 7.9a6.8 6.8 0 0 0 .2 0c0-3.7.1-5.7.8-7.8a3 3 0 0 0-.1-.1m1.2-2.4c-.4.3-.6.2-.5.9.4-.2.4-.4.5-1z"/>
<path fill="#e8a30e" d="M262 284.6c.2.2.5.4.1 1-.3-.4-.2-.4-.1-1"/>
<path fill="#e8a30e" d="M261.8 285.2c.2.3.5.4.2 1-.2-.5-.3-.5-.2-1"/>
<path fill="#e8a30e" d="M261.6 285.5c.2.3.5.5.2 1.1-.4-.4-.3-.5-.2-1z"/>
<path fill="#e8a30e" d="M261.4 286c.2.3.6.5.2 1-.4-.4-.1-.5-.2-1"/>
<path fill="#e8a30e" d="M261.2 286.5c.2.3.6.5.2 1-.3-.3-.3-.4-.2-1m1.8-1.4c-.3 0-.7 0-.8.6.5-.2.5-.1.8-.6"/>
<path fill="#e8a30e" d="M262.8 285.5c-.2.1-.7 0-.8.6.6-.2.6-.1.8-.6"/>
<path fill="#e8a30e" d="M262.7 286c-.3 0-.7 0-.9.6.6-.2.6-.2.9-.7z"/>
<path fill="#e8a30e" d="M262.5 286.5c-.2 0-.7-.2-.9.6.5 0 .5-.3 1-.6z"/>
<path fill="#e8a30e" d="M262.2 287c-.4 0-.5 0-.7.6.5-.2.5-.2.7-.7zm.1.4c-1 2-1.2 3.8-.7 7.2a5 5 0 0 0 .2 0c-.5-3.3-.3-5.2.6-7.1a3.5 3.5 0 0 0 0-.1zm1.7-2.4c-.5.2-.7.2-.7.8.4-.1.5-.3.7-.8"/>
<path fill="#e8a30e" d="M263.1 285c.2.3.4.5 0 1-.3-.4-.2-.4 0-1"/>
<path fill="#e8a30e" d="M262.8 285.6c.2.3.5.5.1 1-.1-.5-.3-.5 0-1z"/>
<path fill="#e8a30e" d="M262.6 285.9c.2.3.4.6 0 1-.3-.4-.2-.4 0-1"/>
<path fill="#e8a30e" d="M262.3 286.4c.2.3.5.5 0 1-.2-.5 0-.5 0-1"/>
<path fill="#e8a30e" d="M262 286.8c.2.3.6.6.2 1-.3-.4-.3-.4-.1-1zm2-1.2c-.2 0-.6 0-.9.5.6 0 .6 0 .9-.5"/>
<path fill="#e8a30e" d="M263.8 286c-.2.1-.7 0-.9.5.7 0 .6 0 1-.5z"/>
<path fill="#e8a30e" d="M263.6 286.4c-.2 0-.7 0-1 .5.7 0 .7 0 1-.5"/>
<path fill="#e8a30e" d="M263.4 287c-.3 0-.7-.4-1 .4.5 0 .5-.2 1-.5z"/>
<path fill="#e8a30e" d="M263 287.4c-.3 0-.5-.1-.8.5.5-.1.5 0 .8-.5m-3.2-.8h-.1a44 44 0 0 0 .1 0m-.7-2.7c.4.4.6.4.4 1-.4-.3-.4-.5-.4-1"/>
<path fill="#e8a30e" d="M259.9 284.2c-.2.2-.6.3-.4 1 .5-.3.4-.4.4-1"/>
<path fill="#e8a30e" d="M260 284.9c-.3.2-.6.2-.4.8.3-.3.4-.3.4-.8"/>
<path fill="#e8a30e" d="M260 285.2c-.2.3-.5.4-.3 1 .4-.3.4-.3.4-1z"/>
<path fill="#e8a30e" d="M260.2 285.8c-.3.2-.7.3-.4 1 .4-.4.2-.6.4-1"/>
<path fill="#e8a30e" d="M260.2 286.3c-.2.2-.6.3-.4 1 .4-.4.4-.4.4-1m-1.3-1.9c.2.2.6.2.6.9-.5-.4-.5-.3-.6-.9"/>
<path fill="#e8a30e" d="M258.9 284.9c.2.1.7.1.7.8-.6-.3-.6-.3-.7-.8"/>
<path fill="#e8a30e" d="M259 285.3c.2.2.6.2.7.9-.6-.4-.6-.3-.7-.9"/>
<path fill="#e8a30e" d="M259 286c.2 0 .7-.1.7.7-.4-.1-.4-.4-.7-.8z"/>
<path fill="#e8a30e" d="M259.2 286.4c.3.2.5.2.6.8-.5-.3-.5-.2-.6-.8m-.2.6a4 4 0 0 0-.2 0c.7 2.2 1 4.2 1 7.7a20 20 0 0 0-.8-7.8zm-1.3-2.7c.4.4.6.3.6 1-.5-.2-.5-.4-.6-1"/>
<path fill="#e8a30e" d="M258.5 284.5c-.2.3-.5.5-.1 1 .3-.4.3-.4.1-1"/>
<path fill="#e8a30e" d="M258.7 285.1c-.2.3-.5.4-.2 1 .2-.4.3-.4.2-1"/>
<path fill="#e8a30e" d="M258.9 285.5c-.2.3-.5.4-.2 1 .4-.4.3-.4.2-1"/>
<path fill="#e8a30e" d="M259.1 286c-.2.3-.6.4-.2 1 .4-.4.1-.5.2-1"/>
<path fill="#e8a30e" d="M259.3 286.5c-.2.3-.6.5-.3 1 .3-.4.4-.4.3-1m-1.8-1.6c.3.2.7 0 .8.7-.6-.2-.5-.1-.8-.7"/>
<path fill="#e8a30e" d="M257.7 285.4c.2.1.7 0 .8.6-.6-.2-.6-.1-.8-.6"/>
<path fill="#e8a30e" d="M257.8 285.8c.3.1.7 0 .9.7-.6-.2-.6-.2-.9-.7"/>
<path fill="#e8a30e" d="M258 286.4c.2 0 .7-.2.9.6-.5 0-.5-.3-1-.6z"/>
<path fill="#e8a30e" d="M258.3 286.8c.3.1.5 0 .7.7-.5-.2-.5-.2-.7-.7m0 .7h-.2c1 2 1 3.8.8 7h.2c.3-3.2.1-5-.8-7m-1.8-2.7c.5.3.7.2.7.9-.4-.2-.5-.4-.7-.9"/>
<path fill="#e8a30e" d="M257.4 284.9c-.1.3-.4.5 0 1 .3-.4.2-.4 0-1"/>
<path fill="#e8a30e" d="M257.7 285.5c-.2.3-.5.4-.1.9.1-.4.3-.4 0-1z"/>
<path fill="#e8a30e" d="M257.9 285.8c-.2.3-.4.5 0 1 .3-.4.2-.4 0-1"/>
<path fill="#e8a30e" d="M258.2 286.3c-.2.3-.5.5-.1 1 .3-.5 0-.5 0-1z"/>
<path fill="#e8a30e" d="M258.4 286.8c-.2.2-.5.5 0 1 .2-.4.2-.5 0-1m-1.9-1.4c.2.1.6 0 .9.6-.6-.1-.6 0-.9-.6"/>
<path fill="#e8a30e" d="M256.7 285.9c.2 0 .7-.1.9.5-.7-.1-.6 0-1-.5z"/>
<path fill="#e8a30e" d="M256.9 286.3c.2 0 .7-.1 1 .5-.7 0-.7 0-1-.5"/>
<path fill="#e8a30e" d="M257.1 286.8c.2 0 .7-.3 1 .5-.5 0-.5-.2-1-.5"/>
<path fill="#e8a30e" d="M257.5 287.2c.3 0 .5 0 .8.6-.6-.1-.5-.1-.8-.6m2.3-3.4c.4.5.6.5.3 1-.3-.2-.3-.5-.3-1"/>
<path fill="#e8a30e" d="M260.6 284.2c-.2.2-.6.3-.4 1 .4-.3.4-.4.4-1"/>
<path fill="#e8a30e" d="M260.6 284.9c-.3.2-.6.2-.4.8.3-.3.4-.3.4-.8"/>
<path fill="#e8a30e" d="M260.7 285.2c-.3.3-.6.3-.4 1 .4-.3.4-.3.4-1"/>
<path fill="#e8a30e" d="M260.8 285.8c-.3.2-.7.3-.5 1 .5-.4.3-.6.5-1"/>
<path fill="#e8a30e" d="M260.8 286.3c-.2.2-.7.3-.5 1 .4-.4.5-.4.5-1m-1.2-2c.1.2.6.3.5 1-.5-.4-.5-.4-.5-1"/>
<path fill="#e8a30e" d="M259.6 284.8c.2.2.6.2.6.9-.6-.4-.5-.3-.6-.9"/>
<path fill="#e8a30e" d="M259.6 285.3c.2.1.7.2.7.8-.6-.3-.6-.3-.7-.8"/>
<path fill="#e8a30e" d="M259.6 285.9c.2 0 .7 0 .7.8-.4-.2-.4-.4-.7-.8"/>
<path fill="#e8a30e" d="M259.8 286.4c.3.1.5.1.5.8-.4-.3-.4-.3-.5-.8m-.4.3c.6 2.6.7 5 .7 8h.1c.1-2.7 0-5.3-.7-8m-1-2.5c.4.3.6.3.5 1-.5-.3-.5-.5-.6-1z"/>
<path fill="#e8a30e" d="M259.2 284.4c-.2.2-.5.4-.2 1 .3-.4.3-.4.2-1"/>
<path fill="#e8a30e" d="M259.3 285c-.2.3-.5.4-.2 1 .2-.4.3-.4.2-1"/>
<path fill="#e8a30e" d="M259.5 285.4c-.2.2-.5.4-.2 1 .3-.4.3-.4.2-1"/>
<path fill="#e8a30e" d="M259.7 285.9c-.2.3-.6.4-.3 1 .4-.4.2-.5.3-1"/>
<path fill="#e8a30e" d="M259.8 286.4c-.2.3-.6.4-.3 1 .3-.4.4-.4.3-1m-1.6-1.6c.2 0 .6 0 .7.7-.5-.3-.5-.2-.7-.7"/>
<path fill="#e8a30e" d="M258.3 285.2c.2.1.7 0 .8.7-.6-.2-.6-.2-.8-.7"/>
<path fill="#e8a30e" d="M258.4 285.6c.2.2.7.1.8.8-.6-.3-.6-.2-.8-.8"/>
<path fill="#e8a30e" d="M258.5 286.2c.3 0 .7-.1.9.7-.5 0-.5-.3-.9-.7"/>
<path fill="#e8a30e" d="M258.8 286.7c.4 0 .5 0 .7.7-.5-.2-.5-.2-.7-.7m-.8 1a6.7 6.7 0 0 1 .8 4c0 .8-.2 1.7-.4 2.6h.2c.6-2.7.5-4.7-.6-6.6"/>
<path fill="#e8a30e" d="M258.6 287.2c.8 2.3.9 4.4.7 7.5h.2a16 16 0 0 0-.9-7.5m-1.5-2.6c.5.3.7.2.7.9-.5-.2-.5-.4-.7-.9"/>
<path fill="#e8a30e" d="M258 284.6c-.2.3-.5.5 0 1.1.2-.4.1-.4 0-1z"/>
<path fill="#e8a30e" d="M258.2 285.3c-.2.3-.5.4-.1.9.2-.4.3-.4.1-1z"/>
<path fill="#e8a30e" d="M258.4 285.6c-.1.3-.4.5 0 1 .3-.4.2-.4 0-1"/>
<path fill="#e8a30e" d="M258.7 286c-.2.4-.6.6-.1 1.1.3-.5 0-.5.1-1z"/>
<path fill="#e8a30e" d="M258.9 286.6c-.2.3-.5.5-.1 1 .2-.4.2-.5.1-1m-1.9-1.4c.3 0 .7 0 .9.6-.6-.2-.6-.1-.9-.6"/>
<path fill="#e8a30e" d="M257.2 285.6c.2.1.7 0 .9.6-.7-.1-.6 0-.9-.6"/>
<path fill="#e8a30e" d="M257.4 286c.2.1.7 0 .9.6-.6-.1-.6 0-.9-.6"/>
<path fill="#e8a30e" d="M257.6 286.6c.2 0 .7-.3 1 .5-.5 0-.6-.2-1-.5"/>
<path fill="#e8a30e" d="M258 287c.3 0 .5 0 .7.6-.5-.2-.5-.1-.7-.6m-2-1.7c.5.2.6 0 .8.7-.5 0-.6-.3-.9-.7zm.8-.1c-.1.3-.4.6.1 1 .3-.4.2-.5-.1-1"/>
<path fill="#e8a30e" d="M257.2 285.8c-.2.3-.4.4 0 .9.1-.4.2-.4 0-1z"/>
<path fill="#e8a30e" d="M257.4 286c-.1.4-.3.6.1 1.1.3-.5.2-.5-.1-1z"/>
<path fill="#e8a30e" d="M257.8 286.5c-.2.3-.5.6 0 1 .3-.5 0-.5 0-1"/>
<path fill="#e8a30e" d="M258 287c0 .2-.4.5 0 1 .3-.5.3-.5 0-1m-2-1.1c.2 0 .6-.2 1 .4-.7 0-.7 0-1-.4"/>
<path fill="#e8a30e" d="M256.2 286.3c.3 0 .7-.2 1 .4-.7 0-.6 0-1-.4"/>
<path fill="#e8a30e" d="M256.5 286.6c.2 0 .7-.1 1 .5-.7 0-.7 0-1-.5"/>
<path fill="#e8a30e" d="M256.8 287.1c.2 0 .6-.3 1 .4-.5.1-.6-.1-1-.4"/>
<path fill="#e8a30e" d="M257.2 287.5c.4 0 .5 0 .8.5-.5-.1-.5 0-.8-.5m4-.8a27.5 27.5 0 0 0-.7 8h.2c0-3 0-5.4.7-8zm1.1-2.4c-.4.3-.6.3-.5.9.4-.2.5-.4.5-1z"/>
<path fill="#e8a30e" d="M261.5 284.4c.2.3.5.5.2 1-.4-.3-.3-.4-.2-1"/>
<path fill="#e8a30e" d="M261.3 285c.3.3.6.4.3 1-.3-.4-.4-.4-.3-1"/>
<path fill="#e8a30e" d="M261.2 285.4c.2.3.5.5.2 1-.4-.3-.3-.4-.2-1"/>
<path fill="#e8a30e" d="M261 286c.2.2.6.4.3 1-.5-.5-.2-.6-.3-1"/>
<path fill="#e8a30e" d="M260.8 286.4c.3.3.6.5.3 1-.3-.3-.3-.4-.3-1m1.7-1.5c-.2 0-.7 0-.8.7.6-.3.6-.2.8-.8z"/>
<path fill="#e8a30e" d="M262.4 285.3c-.2.1-.7 0-.8.6.6-.1.6 0 .8-.6"/>
<path fill="#e8a30e" d="M262.3 285.7c-.3.2-.8 0-.9.7.7-.2.6-.1.8-.7z"/>
<path fill="#e8a30e" d="M262.1 286.3c-.2 0-.7-.2-.8.6.4 0 .5-.3.8-.6"/>
<path fill="#e8a30e" d="M261.8 286.8c-.3 0-.5 0-.6.6.5-.2.4-.1.6-.6m.2.3c-1 2.3-1.1 4.4-.9 7.6h.2c-.2-3.2 0-5.3.8-7.5zm1.5-2.4c-.4.3-.6.2-.6.9.5-.2.5-.4.7-.9z"/>
<path fill="#e8a30e" d="M262.7 284.8c.2.3.5.5 0 1-.2-.4-.2-.5 0-1"/>
<path fill="#e8a30e" d="M262.4 285.4c.3.3.5.4.2.9-.2-.4-.3-.4-.2-1z"/>
<path fill="#e8a30e" d="M262.3 285.7c.1.3.4.5 0 1-.3-.4-.2-.4 0-1"/>
<path fill="#e8a30e" d="M262 286.2c.2.3.5.5 0 1-.3-.5 0-.5 0-1"/>
<path fill="#e8a30e" d="M261.8 286.6c.1.3.5.6 0 1.1-.2-.4-.2-.5 0-1zm1.8-1.3c-.2.1-.6 0-.8.6.6-.1.5 0 .8-.6"/>
<path fill="#e8a30e" d="M263.4 285.8c-.2 0-.6-.1-.8.5.6-.1.6 0 .8-.5"/>
<path fill="#e8a30e" d="M263.3 286.2c-.3 0-.7-.1-1 .5.7 0 .7 0 1-.5"/>
<path fill="#e8a30e" d="M263 286.7c-.2 0-.6-.3-.9.5.5 0 .5-.2 1-.5z"/>
<path fill="#e8a30e" d="M262.7 287.1c-.4 0-.5 0-.8.6.5-.1.5-.1.8-.6m0 .6c-1.2 2-1 4.2-.6 6.7h.2c-.2-1.2-.4-2.1-.3-3a6.4 6.4 0 0 1 .8-3.6 11.8 11.8 0 0 0-.1 0zm2-2.2c-.5.2-.7 0-.8.7.5 0 .6-.3.8-.7"/>
<path fill="#e8a30e" d="M263.9 285.3c0 .4.3.6-.2 1.1-.2-.5-.1-.5.2-1z"/>
<path fill="#e8a30e" d="M263.5 285.9c.2.3.4.5 0 1-.2-.5-.3-.5 0-1"/>
<path fill="#e8a30e" d="M263.3 286.2c0 .3.3.6-.2 1-.2-.5-.1-.5.2-1"/>
<path fill="#e8a30e" d="M262.9 286.6c.1.3.4.6 0 1-.3-.5 0-.5 0-1"/>
<path fill="#e8a30e" d="M262.6 287c.1.3.4.6 0 1-.2-.4-.3-.5 0-1m2-1c-.2.1-.6-.1-.9.5.6 0 .6 0 1-.4z"/>
<path fill="#e8a30e" d="M264.4 286.5c-.2 0-.6-.2-1 .3.7 0 .7 0 1-.3"/>
<path fill="#e8a30e" d="M264.2 286.8c-.3 0-.7-.2-1 .4.6 0 .6 0 1-.4"/>
<path fill="#e8a30e" d="M263.9 287.3c-.3 0-.6-.4-1 .3.4.1.5 0 1-.3"/>
<path fill="#e8a30e" d="M263.4 287.6c-.3 0-.4 0-.8.5.5 0 .5 0 .8-.5m-3.7 3h1.2c.8 0 1.3.2 1.3.4s-.5.3-1.3.3h-1.2c-.7 0-1.3-.2-1.3-.4s.6-.3 1.3-.3"/>
<path fill="#e8a30e" d="m258.9 290.6-.4.6a.3.3 0 0 0 .2 0h.2l.4-.6zm1 0-.5.7h.5l.4-.7h-.5zm.9 0-.5.7h.5l.4-.7zm.9 0-.4.7h.5l.3-.6a.3.3 0 0 0-.2 0z"/>
<path fill="#e7e7e7" stroke="#000" stroke-width=".1" d="m252.3 286.7.5 2.9.2.2v1l.1.2c.3.5.3 1.2.4 1.7 0 .2 0 0 .4.6h.4l.1.2-.2.3h-.7l-.3-.2v-.2l-.2-.1-.1-.6-.8-1c-.1-.2-.1-.5-.3-.6 0-.2-.2-.2-.3-.3-.5-1.1-1-3.1-1-3.1m-6.9-1.2 2 .4-.6 2.8c-.3.9-.3 1-.2 1.2.2.4.4 1.2 1.2 2.3.2.3.5.3.6.4l.5.4h.6l.1-.2c0-.2-.3-.1-.5-.3-.1-.3-.6-.8-.6-1.2-.3-.8-.2-.8-.2-1.6 0-.4.4-1.3.5-1.8a4.6 4.6 0 0 0 .5-2l-.8-2-.5-.6m-1.8-1.2c-3 1-1.7 3.8-.9 3.8m9.8-8.7.5-1v-.4l-.8 1"/>
<path fill="#e7e7e7" stroke="#000" stroke-width=".1" d="M255.1 279.9h.5v-.3l-.1-.4c-.5-.4-1-.4-1-.7v-.2c0-.2-.9-.3-1-.5l-.5-.2h-.3c-.7 0-1 .8-1.2 1.3 0 0-.2 2.3-.6 3.3a.8.8 0 0 1-.1.3l-.2.2-4.5-.3a4 4 0 0 0-2 .8s-1 .7-1.2 1.7c0 .4 0 .8.2 1.2 1 2.7 2 0 2.3 0h.4c.5 0 1.4 1.6 2.8 2 4.3.9 5.5-1.4 5.4-6.3v-.2l.2-.5v-.5l-.1-.3 1.2-.2.2-.1"/>
<path fill="#e7e7e7" stroke="#000" stroke-width=".1" d="m253 278.5.6-1.2v-.5l-1 1.1v.1m-9.5 8c.3.9.8 1.7.7 2 0 .4-.3.6-.3.7l-.1.1c-.2.1-.2.4-.3.6l-.1.6c0 .8.5 2.4.6 2.4l.3.3v.5l-.1.7v.2l.4.2h.6l-.4-.4a.4.4 0 0 1 0-.3l.3-.4v-.4l-.1-.2a8.8 8.8 0 0 1-.1-1v-1.2l.2-.1.1-.3 1-.6 1-1.1.1-.5a.6.6 0 0 0 0-.2 4 4 0 0 0-.3-1 3.4 3.4 0 0 0-.6-.8m6.3 2c-.6.3-2 .6-2 .9 0 0 0 1.7-.2 2.4l-.3.6-.2.7c-.1.3-.3.6-.3 1v.5l.4.2-.4.2-.7-.3v-.6l.1-.7-.1-.5-.1-1.4v-5m5-5.7c.2.3.5.4 1.3.1.2.1.4.3.7-.2m-.4-.6.3.1c0-.1 0-.2-.1-.1z"/>
<path d="m253.6 278.8.1.1c.1.2.4.3.6 0-.3-.3-.5-.1-.6 0z"/>
<path fill="#e7e7e7" fill-rule="evenodd" stroke="#000" stroke-width=".1" d="M265.7 291.1a2 2 0 0 0 0 .8 2 2 0 0 0 0 .8 2 2 0 0 0 0 .8 2.1 2.1 0 0 0 0 .7c.3.2 1 .2 1.3 0v-.7a2 2 0 0 0 0-.8 2 2 0 0 0 0-.8 2 2 0 0 0 0-.8 2.4 2.4 0 0 0 0-.8 2.2 2.2 0 0 0 0-.8 2.4 2.4 0 0 0 0-.8v-.9a2.5 2.5 0 0 0 0-.8 2.6 2.6 0 0 0 0-.9 2.3 2.3 0 0 0 0-.8 2 2 0 0 0 0-.8 2.7 2.7 0 0 0 0-.9 2.5 2.5 0 0 0 0-.8v-.8a3.1 3.1 0 0 0 0-.9 3.1 3.1 0 0 0 0-.8v-2.5a2.4 2.4 0 0 0-.1-.8v-.8a2.1 2.1 0 0 0 0-.3h-.8v.3c-.1.1-.1.6 0 .8a2.5 2.5 0 0 0 0 .8 2.7 2.7 0 0 0-.1.8 2.9 2.9 0 0 0 0 .8v.9a3.1 3.1 0 0 0 0 .8 3.1 3.1 0 0 0 0 .9 3.5 3.5 0 0 0 0 .8 2.5 2.5 0 0 0-.1.8 2.6 2.6 0 0 0 0 .9c0 .2-.1.5 0 .8a2.4 2.4 0 0 0 0 .8 2.6 2.6 0 0 0 0 .9c-.1.2-.1.5 0 .8a2.8 2.8 0 0 0-.1.9v.8a2.2 2.2 0 0 0 0 .8 2.4 2.4 0 0 0 0 .8z"/>
<path fill="#e7e7e7" fill-rule="evenodd" stroke="#000" stroke-linejoin="round" stroke-width=".1" d="M265.7 291.9h1.3m-1.3-.8h1.3m-1.2-.8h1.2m-1.2-.8h1.2m-1.2-.9h1.2m-1.2-.8h1.2m-1.2-.8h1.2m-1.1-.9h1m-1-.8h1m-1-.8h1m-1-.9h1m-1-.8h1m-1-.9h1m-1-.8h1m-1-.8h1m-.9-.9h1m-1-.8h1m-1-.8h.9m-.8-.9h.8m-.9-.7h.9m-1.2 16.5h1.3m-1.3.7a2.5 2.5 0 0 0 1.3 0"/>
<path fill="#007934" fill-rule="evenodd" stroke="#e7e7e7" stroke-width=".1" d="m268.3 274.2 2.2-.1a14.6 14.6 0 0 0-.9-.3h2.4a5.2 5.2 0 0 0-1-.5c.7-.1 1.7 0 2.3.1l-1-.5 2 .1a2.8 2.8 0 0 0-.9-.5 8.6 8.6 0 0 1 2.7-.1 9.2 9.2 0 0 0-8.6.8 6.5 6.5 0 0 1 1-1.2 2.7 2.7 0 0 0-.7 0l1.3-1a3.1 3.1 0 0 0-.8 0l1.5-1a3.3 3.3 0 0 0-.9 0 5 5 0 0 1 1.7-1.1 4.2 4.2 0 0 0-1 0c.5-.4 1.2-1 2.1-1.4-3.5.4-5.5 3-5.7 5.1-.9-2-3.5-4-7-3.8 1 .3 1.9.7 2.5 1.1a4.6 4.6 0 0 0-1 .1c.7.2 1.5.6 2 1a3.6 3.6 0 0 0-.9.1l1.8.8-.8.1 1.6.8a3 3 0 0 0-.8 0l1.4.8c-2.2-.5-5.4.3-7.9 3.1.4-.3 1.9-.8 2.4-1a4 4 0 0 0-.6.9 8.9 8.9 0 0 1 2.2-1.2 5 5 0 0 0-.4.8l2-1-.5.8 1.8-.7-.5.7 1-.3a6.6 6.6 0 0 0-3 6.1c0-.4.6-1.6.9-2v1a9 9 0 0 1 1-2.1l.1 1 1-2.1v1a14.2 14.2 0 0 1 1.2-2v.8l.3-.6.7-1 .3.4c.2.4.5 1.1.5 1.9a3.4 3.4 0 0 0 .3-1c.3.8.7 2 .7 2.6l.2-1c.3.5.7 1.8.7 2.4l.3-1 .6 2.4c.8-3.1-.4-5.2-2-6.7.4.2 1 .6 1.4 1.1a5.2 5.2 0 0 0-.3-1l1.6 1.6a2.9 2.9 0 0 0-.2-1c.7.5 1.2 1.3 1.6 1.7l-.2-1c.6.5 1.2 1.4 1.4 2l-.1-1.2c.8.7 1 1.4 1.3 1.9 0-2.9-3.3-5.4-6.3-5.7z"/>
<path fill="none" stroke="#e7e7e7" stroke-linecap="round" stroke-linejoin="round" stroke-width=".1" d="M267 274.2c3.4-.4 7.6 2.4 7.6 5.7-.2-.4-.5-1.2-1.4-1.9l.2 1.1a6.5 6.5 0 0 0-1.4-1.9l.2 1c-.4-.4-1-1.2-1.6-1.6l.2.8a15.3 15.3 0 0 0-1.6-1.4l.3 1a6 6 0 0 0-1.3-1.2m-2-1.6c-2-1.3-6.2-1-9.3 2.5.4-.3 1.9-.8 2.4-1a4 4 0 0 0-.5.9 8.9 8.9 0 0 1 2.1-1.2 5.1 5.1 0 0 0-.4.8l2-1-.5.8 1.8-.7-.5.7 1-.4"/>
<path fill="none" stroke="#e7e7e7" stroke-linecap="round" stroke-linejoin="round" stroke-width=".1" d="M266.4 273.7c-.4-2.4-3.3-5-7.4-4.9 1 .3 1.9.7 2.5 1.1a4.6 4.6 0 0 0-1 .1c.7.2 1.5.6 2 1a3.6 3.6 0 0 0-.9.1l1.8.8-.8.1c.5.1 1.2.5 1.6.8a3 3 0 0 0-.8 0l1.4.8m1.6 1c-2.8.9-5.5 3.6-5.1 7.2 0-.4.6-1.6.9-2v1a9 9 0 0 1 1-2.1l.1 1 1-2.1v1a14.1 14.1 0 0 1 1.2-2v.8c0-.2.9-1.4 1-1.5m-1.7.1a9.3 9.3 0 0 0-.4 1.6m-.6-.9a10.4 10.4 0 0 0-.5 2m-.5-1a9.5 9.5 0 0 0-.6 2"/>
<path fill="none" stroke="#e7e7e7" stroke-linecap="round" stroke-linejoin="round" stroke-width=".1" d="M266.5 275.9v-.7" class="bo-fil1 bo-str2"/>
<path fill="none" stroke="#e7e7e7" stroke-linecap="round" stroke-linejoin="round" stroke-width=".1" d="m269.4 278.7.1 1.5m-1.1-3.3.1 1.7m-1.1-2.8.2 1.4m5-.5a3.7 3.7 0 0 1 .6 1.3m-2-2.3.8 1.6m-2.1-2 .7 1.3m-11.3-.9a5 5 0 0 1 1.8-1.2m-.2 1c.4-.6.7-1 1.7-1.4m-.2 1.2c.4-.5 1-1 1.8-1.3m-.4 1.3c.5-.5 1-.8 1.7-1m-4-4.4c.8.1 1.7.3 2.3.7m-1.2.4a5 5 0 0 1 2 .5m-1.2.4c.7 0 1.5.3 2.2.7m-1.4.2a4.1 4.1 0 0 1 1.9.6m.8.2a9.1 9.1 0 0 1 9.2-1.2 8.6 8.6 0 0 0-2.7.1c.5.1.9.4 1 .5-.9-.1-1.2-.2-2.2-.1.5.1.8.3 1.1.5a7.8 7.8 0 0 0-2.3-.1l1 .4h-2.4l1 .4-2.3.1m5.1-1.7a6.4 6.4 0 0 0-2.2-.3m1 .7a6.2 6.2 0 0 0-2.7-.3m1.5.7a7.3 7.3 0 0 0-2.7-.2m1.3.7a5.3 5.3 0 0 0-2.1-.1m.9 1.1c.3.3.6.7.8 1.2"/>
<path fill="none" stroke="#e7e7e7" stroke-linecap="round" stroke-linejoin="round" stroke-width=".1" d="M266 272.6c.2-2.1 2.2-4.7 5.7-5a9 9 0 0 0-2 1.3h1c-.7.2-1.4.7-1.8 1.2h1c-.6.2-1.2.6-1.5 1h.8c-.4 0-1 .6-1.3.9a2.7 2.7 0 0 1 .7 0c-.5.3-1 .8-1.1 1.2m2.1-4.3c-.5.2-1.1.4-1.6.8m1 .4a4.8 4.8 0 0 0-1.6.5m1 .5c-.6 0-1.1.3-1.6.7m1 .2a3.4 3.4 0 0 0-1.5.8m-.5 2.6a6.4 6.4 0 0 0-.3 1.2m1.3-2.1c2 1.7 4.4 4 3.3 8a8.8 8.8 0 0 0-.6-2.3c0 .4-.2.7-.3 1a7.2 7.2 0 0 0-.7-2.6l-.2 1c0-.6-.4-1.7-.7-2.5a3.4 3.4 0 0 1-.3 1c0-1-.4-1.8-.8-2.2"/>
<path fill="#e8a30e" stroke="#000" stroke-width=".1" d="m227.5 249 1.4.8.3-.6c.2-.3.2-.5.1-.7 0-.2-.2-.4-.5-.5-.3-.2-.6-.3-.8-.2-.2 0-.3.2-.4.4l-.3.6c0 .1 0 .2.2.3m1.8 1 1.7.9h.3c.1 0 .3-.2.4-.5l.3-.6a.6.6 0 0 0 0-.5.8.8 0 0 0-.2-.2 2 2 0 0 0-.4-.3c-.8-.4-1.4-.3-1.7.4l-.4.7m-2.8-.8a31.7 31.7 0 0 0 .7-1.2c.1-.4.3-.7.6-.9l.6-.4h.9l.5.6.1.8c.3-.3.7-.5 1-.6a1.3 1.3 0 0 1 1 .1c.4.2.7.6.8 1 0 .6 0 1.2-.5 1.9a28 28 0 0 1-.8 1.4l-.3.7a12 12 0 0 0-1.5-1l-1.9-1a12.3 12.3 0 0 0-1.6-.7l.4-.7m9.5-11.5c-.8.6-.7 1.5.4 2.8.5.6 1 1 1.5 1 .5.2 1 0 1.4-.3.4-.3.6-.7.5-1.1a3.3 3.3 0 0 0-.8-1.6c-.6-.7-1.1-1.1-1.6-1.2-.5-.2-1 0-1.4.4m4-.2c.5.6.7 1.4.7 2.1a3 3 0 0 1-1.2 2 3.1 3.1 0 0 1-2.2.9 2.6 2.6 0 0 1-2-1 3 3 0 0 1-.7-2.2 2.9 2.9 0 0 1 1.1-2 3.1 3.1 0 0 1 2.3-1c.7.1 1.4.5 2 1.2m8.5-2.8.3 1a15.2 15.2 0 0 0 2-.7l.4-.1a5.3 5.3 0 0 0 .3.9l-.6.1-2.5.7-.7.2-.4-1.7-.6-2a15 15 0 0 0-.5-1.7l.6-.2.7-.2.4 1.7.6 2m9.8-3 .1-1.8h.8l.7.1-.3 1.8-.2 2-.1 1.8a12 12 0 0 0-.7 0h-.8v-.1l.3-1.7.2-2.2m10.5 5.6a38.2 38.2 0 0 0 3.4-2.8l.4.2.4.2-5 3.8-.5-.3a292.6 292.6 0 0 1 .5-4.7 28.2 28.2 0 0 0 .1-1.4 7.9 7.9 0 0 0 1.4.7 37.1 37.1 0 0 0-.6 4.3m9 4.1a13 13 0 0 0 1.2-1.2l.5.5.5.5-1.4 1.1-1.5 1.5-1.3 1.2a12.3 12.3 0 0 0-.5-.5l-.5-.5 1.4-1.1 1.6-1.5m5.3 10.7a46.2 46.2 0 0 0 1.4-1.5h-2a22.2 22.2 0 0 0 .6 1.5m-1.2-1.5-2 .2a2 2 0 0 0-.2-.4 2.8 2.8 0 0 0-.2-.4 326.8 326.8 0 0 0 6.2 0l.4.6a87.3 87.3 0 0 0-4.2 4.6l-.3-.7a5.7 5.7 0 0 0-.3-.6l1.5-1.4a35.3 35.3 0 0 0-1-1.9" font-family="Linux Biolinum" font-size="100" font-weight="700" letter-spacing="60" style="line-height:125%;text-align:center" text-anchor="middle" word-spacing="0"/>
<path fill="#e8a30e" stroke="#000" stroke-linecap="square" stroke-linejoin="round" stroke-width=".1" d="m261.3 299.3-.9 2.4H258l2 1.5-.7 2.4 2-1.4 2.1 1.4-.7-2.4 2-1.5H262zm9.7-4.1-.8 2.3h-2.5l2 1.6-.7 2.4 2-1.5 2 1.5-.7-2.4 2-1.5h-2.5zm15-26.7-.8 2.4h-2.5l2 1.6-.7 2.3 2-1.4 2.1 1.4-.7-2.4 2-1.4-2.5-.1zm-7.1 19 .8 2.4h2.5l-2 1.5.8 2.4-2.1-1.4-2 1.4.7-2.4-2-1.4 2.5-.1zm5-8.7.9 2.4h2.5l-2 1.6.7 2.3-2-1.4-2.1 1.4.7-2.3-2-1.5h2.5zm-33.1 20.5.8 2.4h2.5l-2 1.5.7 2.4-2-1.4-2.1 1.4.7-2.4-2-1.5h2.5zm-9.8-4.1.8 2.3h2.5l-2 1.6.8 2.4-2.1-1.5-2 1.5.7-2.4-2-1.5h2.5zm-15-26.7.8 2.4h2.5l-2 1.5.7 2.4-2-1.4-2 1.4.6-2.4-2-1.5h2.5zm7.1 19-.8 2.4h-2.5l2 1.5-.7 2.4 2-1.4 2 1.4-.7-2.4 2-1.5H234zm-5-8.7-.9 2.4h-2.5l2 1.6-.7 2.3 2-1.4 2.1 1.4-.7-2.3 2-1.5h-2.5z"/>
<path fill="#e7e7e7" stroke="#000" stroke-width=".1" d="M257.1 264.6v-.5h.1l-.9-.5h-.7l-.8.5v.5h2.3"/>
<path fill="#e7e7e7" stroke="#000" stroke-width=".1" d="M257.1 264.6v-.5h.1l-.9-.5v-.8h-.6v.8l-1 .5h.1v.5zm.3.7v.2h-2.8v-.2h2.8"/>
<path fill="#e7e7e7" stroke="#000" stroke-width=".1" d="M257.4 265.3v.2h-2.8v-.2zm-2.6 0v-.6.6-.7h2.5v.1h-.2v.6-.6h.1v.6"/>
<path fill="#e7e7e7" stroke="#000" stroke-width=".1" d="M254.8 265.3v-.6.6-.7h2.5v.1h-.2v.6-.6h.1v.6"/>
<path fill="#e7e7e7" stroke="#000" stroke-width=".1" d="M255.3 265.2v-.4h-.3v.4h.3"/>
<path fill="#e7e7e7" stroke="#000" stroke-width=".1" d="M255 264.9v.2h.2v-.2h-.1m1.9.3v-.4h-.4v.4h.4"/>
<path fill="#e7e7e7" stroke="#000" stroke-width=".1" d="M256.7 264.9v.2h.2v-.2h-.2m.3-.3v-.4h-.4v.4z"/>
<path fill="#e7e7e7" stroke="#000" stroke-width=".1" d="M256.7 264.3v.2h.2v-.2h-.2m-1.4.2v-.3h-.3v.3z"/>
<path fill="#e7e7e7" stroke="#000" stroke-width=".1" d="M255 264.3v.2h.2v-.2h-.1m.8.2v-.3h-.3v.4h.3"/>
<path fill="#e7e7e7" stroke="#000" stroke-width=".1" d="M255.7 264.3v.2h.1v-.2h-.1m.7.2v-.3h-.3v.4h.3"/>
<path fill="#e7e7e7" stroke="#000" stroke-width=".1" d="M256.1 264.3v.2h.2v-.2h-.2"/>
<path fill="#e7e7e7" stroke="#000" stroke-width=".1" d="M256.5 264.4v1h-1v-1h1"/>
<path fill="#e7e7e7" stroke="#000" stroke-width=".1" d="M256.5 264.4v1h-1v-1zm-1 .3h1m-.9.6v-.6m.8.6v-.6m.5-.6-.6-.4h-.6l-.6.4h1.8m-1.2-.5h.5m-.3-.2v.2h.2v-.2h-.2m-.3 1v.1m.3 0zm.1 0zm.4 0"/>
<path fill="#e7e7e7" fill-rule="evenodd" d="M255.8 262.4h.4v.4h-.4z"/>
<path fill="none" stroke="#000" stroke-width=".1" d="M256 262v.4m-.2-.3h.4"/>
<path fill="#452c25" d="M253 224.3s-2.6 5.8-1.7 6.4c0 0 3.1-3.5 4-6.3.8-2.8 0-.2 0-.2l-.3-3-2 2.9"/>
<path fill="none" stroke="#000" stroke-width=".2" d="M253 224.3s-2.6 5.8-1.7 6.4c0 0 3.1-3.5 4-6.3.8-2.8 0-.2 0-.2l-.3-3-2 2.9"/>
<path fill="#452c25" d="M253.5 221.6s-3 6.4-2.3 6.8c0 0 2.5-2.9 3.1-5.1.7-2.3 0-.2 0-.2l.8-4.1"/>
<path fill="none" stroke="#000" stroke-width=".1" d="M253.5 221.6s-3 6.4-2.3 6.8c0 0 2.5-2.9 3.1-5.1.7-2.3 0-.2 0-.2l.8-4.1"/>
<path fill="#452c25" d="M256.6 220.1s-3 6.4-2.4 6.9c0 0 2.6-2.9 3.2-5.2.7-2.3 0-.1 0-.1l.8-4.1"/>
<path fill="none" stroke="#000" stroke-width=".1" d="M256.6 220.1s-3 6.4-2.4 6.9c0 0 2.6-2.9 3.2-5.2.7-2.3 0-.1 0-.1l.8-4.1"/>
<path fill="#452c25" d="m295.3 208.7 3.6 2s.8.7-1 .3c-2-.5-6-1.9-13.7-6.8-3.5-2.2-4.6-2.2-4.6-2.2l4.8.2z"/>
<path fill="none" stroke="#000" stroke-width=".1" d="m295.3 208.7 3.6 2s.8.7-1 .3c-2-.5-6-1.9-13.7-6.8-3.5-2.2-4.6-2.2-4.6-2.2l4.8.2z"/>
<path fill="#452c25" d="m296.5 207.8 3.5 2s.9.7-1 .3c-2-.4-6-1.8-13.7-6.8-3.4-2.2-.7 1.9-.7 1.9l.6-2.7z"/>
<path fill="none" stroke="#000" stroke-width=".1" d="m296.5 207.8 3.5 2s.9.7-1 .3c-2-.4-6-1.8-13.7-6.8-3.4-2.2-.7 1.9-.7 1.9l.6-2.7z"/>
<path fill="#452c25" d="M302.4 209.7s-4.3-.8-5.8-2c0 0 .3.6-1.8-.4 0 0 .8 1.9-5-2.1-6-4-3.9-2-3.9-2l1.7-.4 10 4c1 .3 4.8 3 4.8 3"/>
<path fill="none" stroke="#000" stroke-width=".1" d="M302.4 209.7s-4.3-.8-5.8-2c0 0 .3.6-1.8-.4 0 0 .8 1.9-5-2.1-6-4-3.9-2-3.9-2l1.7-.4 10 4c1 .3 4.8 3 4.8 3z"/>
<path fill="#452c25" d="m280.1 211.3 1.5 2s-.5 2-5.4-1.8l-4.7-3.4 2.7-.3 6 3.4"/>
<path fill="none" stroke="#000" stroke-width=".1" d="m280.1 211.3 1.5 2s-.5 2-5.4-1.8l-4.7-3.4 2.7-.3 6 3.4"/>
<path fill="#452c25" d="M273.7 212.3s2.3 3 1.8 3.4c-.5.4-3.2.2-5.2-2.7-1.9-3 0-.2 0-.2l.2-4.7 3.3 4"/>
<path fill="none" stroke="#000" stroke-width=".1" d="M273.7 212.3s2.3 3 1.8 3.4c-.5.4-3.2.2-5.2-2.7-1.9-3 0-.2 0-.2l.2-4.7 3.3 4"/>
<path fill="#452c25" d="M276 211s2.3 2.8 2 3.2c-.2.5-3.3.2-5.8-2.6-2.5-2.8-.4-3.7-.4-3.7l4.2 2.9"/>
<path fill="none" stroke="#000" stroke-width=".1" d="M276 210.9s2.3 2.9 2 3.3c-.2.5-3.3.2-5.8-2.6-2.5-2.8-.4-3.7-.4-3.7l4.3 3z"/>
<path fill="#452c25" d="M288.7 209.3s6.3 2.7 1.6 2.5c0 0-9.1-2.5-13.9-6.5l1.4-1.8 10.8 5.6"/>
<path fill="none" stroke="#000" stroke-width=".1" d="M288.7 209.3s6.3 2.7 1.6 2.5c0 0-9.1-2.5-13.9-6.5l1.4-1.8 10.8 5.6"/>
<path fill="#452c25" d="M292 208.5s3.4 2 3.7 2.8-10.6-2-16.4-6.8l2.6-1.2z"/>
<path fill="none" stroke="#000" stroke-width=".1" d="M292 208.5s3.4 2 3.7 2.8-10.6-2-16.4-6.8l2.6-1.2z"/>
<path fill="#452c25" d="M282.1 210.3s2.5 2 2.2 2.3a17 17 0 0 1-9.2-3.5l.4-1.8z"/>
<path fill="none" stroke="#000" stroke-width=".1" d="M282.1 210.3s2.5 2 2.2 2.3a17 17 0 0 1-9.2-3.5l.4-1.8 6.6 3"/>
<path fill="#452c25" d="M286.3 210.2s2.4 1.7 2 1.8c-.6.2-2.5 1.7-11.5-3.6l-1.1-.6 1.4-2.2 9.2 4.4"/>
<path fill="none" stroke="#000" stroke-width=".1" d="M286.3 210.1s2.4 1.8 2 2c-.6.1-2.5 1.6-11.5-3.7l-1.1-.6 1.4-2.2z"/>
<path fill="#452c25" d="M277 205.2s3 2.6 2.6 3c-.4.4-3.9-.4-5.5-1.6-1.5-1.1-2.6-2.6-2.6-2.6l3.3-.7 2.2 2z"/>
<path fill="none" stroke="#000" stroke-width=".1" d="M277 205.2s3 2.6 2.6 3c-.4.4-3.9-.4-5.5-1.6-1.5-1.1-2.6-2.6-2.6-2.6l3.3-.7 2.2 2z"/>
<path fill="#452c25" d="m273.5 200.8 5.4 3.2s4.4 3.1 3.9 3.4c-.5.2-4-.8-6.4-2.2a29.5 29.5 0 0 1-5.3-4.2"/>
<path fill="none" stroke="#000" stroke-width=".1" d="m273.5 200.8 5.4 3.2s4.4 3.1 3.9 3.4c-.5.2-4-.8-6.4-2.2a29.5 29.5 0 0 1-5.3-4.2"/>
<path fill="#452c25" d="M270.1 216s1 2.5.4 2.7c-.6.2-2-.2-3.3-2.5-1.1-2.4 1-1.4 1-1.4l2 1.1z"/>
<path fill="none" stroke="#000" stroke-width=".1" d="M270.1 216s1 2.5.4 2.7c-.6.2-2-.2-3.3-2.5-1.1-2.4.9-1.3.9-1.3l2 1z"/>
<path fill="#452c25" d="M271.9 214.3s1.5 2.4 1.2 2.7c-.4.3-2.3 1.2-4.5-2s2.2-2.5 2.2-2.5l1 1.8z"/>
<path fill="none" stroke="#000" stroke-width=".1" d="M271.9 214.3s1.5 2.4 1.2 2.7c-.4.3-2.3 1.2-4.5-2s2.2-2.5 2.2-2.5l1 1.8z"/>
<path fill="#452c25" d="M267.4 203s5.1 10 4.7 10.5c-.4.5-2.5 0-3.6-2.6a53.3 53.3 0 0 1-2-6z"/>
<path fill="none" stroke="#000" stroke-width=".1" d="M267.4 203s5.1 10 4.7 10.5c-.4.5-2.5 0-3.6-2.6s-2-6-2-6z"/>
<path fill="#452c25" d="M273.4 205.6s4.2 3.6 3.4 4c-1 .5-2.6-.1-5.1-2.6-2.5-2.5 1.6-1.6 1.6-1.6"/>
<path fill="none" stroke="#000" stroke-width=".1" d="M273.4 205.5s4.3 3.7 3.4 4.2c-1 .5-2.6-.2-5.1-2.7-2.5-2.5 1.7-1.5 1.7-1.5z"/>
<path fill="#452c25" d="M271.3 205.7s3 5.6 2.7 6c-.4.6-2.7-1.3-3.8-2.7s-2-3.5-2-3.5"/>
<path fill="none" stroke="#000" stroke-width=".1" d="M271.3 205.7s3 5.6 2.7 6c-.4.6-2.7-1.3-3.8-2.7s-2-3.5-2-3.5"/>
<path fill="#452c25" d="M248.4 217.2v3.5c.1.2 1.9.3 2-2.2 0-2.5-.4-2.6-.4-2.6z"/>
<path fill="none" stroke="#000" stroke-width=".1" d="M248.4 217.2v3.5c.1.2 1.9.3 2-2.2 0-2.5-.4-2.6-.4-2.6l-1.6 1.2"/>
<path fill="#452c25" d="M249.4 213.2s-1.1 3.7 0 4.4c1.1.8 2-3.6 2-4.6.1-1-2 .2-2 .2"/>
<path fill="none" stroke="#000" stroke-width=".1" d="M249.4 213.2s-1.1 3.7 0 4.4c1.1.8 2-3.6 2-4.6.1-1-2 .2-2 .2z"/>
<path fill="#452c25" d="M250.2 218s.3 3.4.9 3.5c.6.2 1.7-1 1.7-1.9 0-.9-1.1-3-1.1-3l-1.5 1.2"/>
<path fill="none" stroke="#000" stroke-width=".1" d="M250.2 218s.3 3.4.9 3.5c.6.2 1.7-1 1.7-1.9 0-.9-1.1-3-1.1-3l-1.5 1.2"/>
<path fill="#452c25" stroke="#000" stroke-width=".1" d="M250.3 213.8s-1.2 3.7 0 4.4c1 .8 2-3.6 2-4.6 0-1-2 .2-2 .2z"/>
<path fill="#452c25" d="M250.4 207.8s-1.8 1.8-1.7 2.8c0 1 2.5-1.3 2.8-1.8.2-.4-1.1-1-1.1-1"/>
<path fill="none" stroke="#000" stroke-width=".1" d="M250.4 207.8s-1.8 1.8-1.7 2.8c0 1 2.5-1.3 2.8-1.8.2-.4-1.1-1-1.1-1z"/>
<path fill="#452c25" d="M249.2 206.8s-1.4 2.6-1 3.3c.3.8 1.7-.5 2.3-1.4.6-1-1.3-1.8-1.3-1.8"/>
<path fill="none" stroke="#000" stroke-width=".1" d="M249.2 206.8s-1.4 2.6-1 3.3c.3.8 1.7-.5 2.3-1.4.6-1-1.3-1.8-1.3-1.8z"/>
<path fill="#452c25" d="M268.3 203.5s2.1 4.1 1.5 4.3c-.6.2-1.5-.8-2.4-2-.9-1.2.9-2.3.9-2.3"/>
<path fill="none" stroke="#000" stroke-width=".1" d="M268.3 203.5s2.1 4.1 1.5 4.3c-.6.2-1.5-.8-2.4-2-.9-1.2.9-2.3.9-2.3z"/>
<path fill="#452c25" stroke="#000" stroke-width=".1" d="M268.3 211.9s.8 3.4.1 3.7c-1.3.7-2-2.4-2.2-3.6 0-1.2 2.1-.1 2.1-.1zm-2.7 5.4s.2 2.6-.2 2.8c-.3.3-1.2.3-2.3-1.8-1-2.2-.5-1.4-.5-1.4l2.5-1.2.5 1.4"/>
<path fill="#452c25" stroke="#000" stroke-width=".1" d="M268.1 216.7s.3 2.8-.2 2.8c-.6.1-2-.8-2.7-2.4-.7-2 2.6-1.4 2.6-1.4z"/>
<path fill="#452c25" stroke="#000" stroke-width=".1" d="M265.6 208.4s2.7 6.2 2.3 7.1c-.9 1.8-3.4-3.8-4.2-6-.8-2.4 1.9-1.1 1.9-1.1z"/>
<path fill="#452c25" stroke="#000" stroke-width=".1" d="M264.3 209.4s3.8 7 2.1 7c-1.5.2-4.5-5-5-6.1-.5-1.2 2.9-.9 2.9-.9z"/>
<path fill="#452c25" stroke="#000" stroke-width=".1" d="M264 210.8s1.9 6.6.7 6c-1.2-.5-2.7-5.5-2.9-6.6-.2-1 2.2.7 2.2.7zm6.6-9.4s3 4.5 2 4.6c-1 .1-4.4-3-4.4-3.5s2.4-1 2.4-1z"/>
<path fill="#452c25" stroke="#000" stroke-width=".1" d="M268.8 201.7s3.7 5 2.6 5.2c-1.1.3-1.2-.5-1.2-.5s-3-2.7-3.1-3.3c-.3-.7 1.6-1.5 1.6-1.5m3.8.1s2.5 2.6 1.8 3.5c-.6 1-4.2-3.3-4.6-3.8-.5-.6 3 .2 3 .2m-6.4 3.8s4.1 8 3.3 8.7c-.7.8-5.3-6-5.4-7-.2-.9 2.2-1.9 2.2-1.9"/>
<path fill="#452c25" stroke="#000" stroke-width=".2" d="M264 206s1.6 2.6 1.5 4c0 1.3-2.5-2-2.7-2.6-.2-.6 1.2-1.3 1.2-1.3z"/>
<path fill="#452c25" stroke="#000" stroke-width=".1" d="M267.3 204.8s1.3 2.6.9 3.3c-.4.8-2.1-1.5-2.7-2.4-.6-1 1.8-1 1.8-1z"/>
<path fill="#452c25" stroke="#000" stroke-width=".2" d="M261.4 207.3s2 2.2 2 3.4c-.2 1.2-3-1.7-3.3-2.3-.3-.5 1.3-1 1.3-1z"/>
<path fill="#452c25" stroke="#000" stroke-width=".1" d="M274.3 201s3 2.6 2.6 3c-.5.5-4.6-2.4-5.2-3-.6-.6 2.6 0 2.6 0z"/>
<path fill="#452c25" stroke="#000" stroke-width=".1" d="m271.8 200.7 2.3 2s2.2 1.5 1.8 1.9c-.3.3-3.8-1.2-4.4-2-.6-.6-.5-1.4-.5-1.4zm7.7.7s9 3.6 8.6 4.5c-.3.8-9.3-3-10.8-4s2.1-.6 2.1-.6"/>
<path fill="#452c25" stroke="#000" stroke-width=".1" d="M279.9 202.5s6.7 3.8 5.9 4.1c-.8.4-5.6-.9-8-2.6a38.4 38.4 0 0 1-3.6-2.6l3-.7zm-16.6 4.6s1.3 2.6 1 3.3c-.5.8-1.7-.6-2.3-1.5-.6-1 1.3-1.8 1.3-1.8zm.3 5.8s1.1 3.7 0 4.4c-1.2.7-2-3.7-2-4.7s2 .3 2 .3z"/>
<path fill="#452c25" stroke="#000" stroke-width=".1" d="M258.4 206.7s3.8-1.6 4.5-1.5c0 0 .7-.2 1.1-.5l1.4-1.1s-.6-4.5 4.1-4l12.3 1.2a48 48 0 0 1 7 2c1 .5 8.1 3.7 9.6 4.2.8.3 2.7 1.5 4.1 2.4 1 .7 0 .2 0 .2s-11.5-6-15.5-6.9c-1-.2 0 1.2 0 1.2l-3.6-1.5a6.3 6.3 0 0 0-3-.6 6.2 6.2 0 0 1-2.4-.3c-.6-.2-4-.3-4.7-.4a7.8 7.8 0 0 1-1-.2l.2.4-1.7-.3-.5.8s-1.6.3-1.7-.2c-.2-.6-1 2.3-1.4 3.2-.4.8-2 .8-2.5 1.3a5.4 5.4 0 0 1-1 1c-.2.2-1.5.9-1.9.9l-3 .2-.7-1zm5 10.6s0 3.3-.2 3.6c-.2.2-1.8.1-1.8-2.3 0-2.5.4-2.6.4-2.6l1.6 1.2"/>
<path fill="#452c25" stroke="#000" stroke-width=".1" d="M263.8 214.8s-.4-1.4-.6-1.6c-.2-.2.1-.4.1-.4s-.6-1.5-1-1.7c-.3-.3.1-.5.1-.5s-.6-1-1-1.2c-.5-.3 0-.4 0-.4s-.6-1.3-1.7-2c0 0-.7-.7-1.4-1-.8-.1-2.6-.3-4.9-.3a4 4 0 0 0-3.3 1.7l-.2 1.9.4-.2-.5 2.3c-.1.6.4 1.5.4 2.6a11 11 0 0 0 .9 4.2l.1.3c.1-.2.4.6.6 1 0 0 .1 1.1.2.7.1-.2.5.6.7 1.2 0 .2.5 1.5.5.9 0-.7.4 1.3.4 1.6l.6-.8.2 1 .5-.1-.2.8s1.3-1 1.3-1.4l.1-.7.4-.4.7-1s1.6 1.2 1.8 1.7l.3.8.4-.4.4 1 .2-.5.2.6.2.4c.1 0 .4.1.8-.7.7-1.1.7-2 .7-2.2 0-.2.3.4.3.4s.6-1.1.5-1.8c0-.7.4-.5.4-.5V218c-.1-.5.3-.4.3-.4s-.1-2.2-.3-2.4c0-.3.4-.3.4-.3z"/>
<path d="M260.6 209.8c.3 0 .5.4.6.7v-.1c-.1-.3-.3-.7-.6-.8zm.3 1.3c.6.5.6 1.2.6 2 0 0 0 .1 0 0 0-.8 0-1.6-.6-2.1zm1.2.7a3.2 3.2 0 0 1 .4 1.8c0-.7 0-1.3-.4-2zm.4 2.6-.1 1.1a.5.5 0 0 0 0 .2 11.8 11.8 0 0 0 .1-1.3m-.4 2v.7a4.1 4.1 0 0 0 0-.8m-.7-2.4a15.3 15.3 0 0 0 0 1.2 14.3 14.3 0 0 1 0-1.2m1.5 2.4a1.2 1.2 0 0 1 .3.6 1.2 1.2 0 0 0-.3-.7zm-.1-2.8.4.5a3.3 3.3 0 0 0-.4-.6zm-1.5 2.1a6.4 6.4 0 0 1-.1 1.1.4.4 0 0 0 0 .1 6.9 6.9 0 0 0 0-1.2m-.7.8a5.7 5.7 0 0 1 0 1.1 6.6 6.6 0 0 0 0-1.2z"/>
<path fill="#452c25" d="M246.1 207.3s-.9 3.4-.2 3.7c1.3.7 2.2-2.3 2.3-3.5.1-1.3-2-.2-2-.2"/>
<path fill="none" stroke="#000" stroke-width=".1" d="M246.1 207.3s-.9 3.4-.2 3.7c1.3.7 2.2-2.3 2.3-3.5.1-1.3-2-.2-2-.2z"/>
<path fill="#452c25" d="M248 207.3s-1.6 1.7-1.6 2.7c0 1 2.5-1.3 2.8-1.8.2-.4-1.1-1-1.1-1"/>
<path fill="none" stroke="#000" stroke-width=".1" d="M248 207.3s-1.6 1.7-1.6 2.7c0 1 2.5-1.3 2.8-1.8.2-.4-1.1-1-1.1-1z"/>
<path fill="#452c25" d="M218.7 207.5s-3.5 1.8-3.8 2.5c-.4.8 10.7-1.1 16.7-5.4l-2.4-1.4z"/>
<path fill="none" stroke="#000" stroke-width=".1" d="M218.7 207.5s-3.5 1.8-3.8 2.5c-.4.8 10.7-1.1 16.7-5.4l-2.4-1.4z"/>
<path fill="#452c25" d="M222.9 208.2s-6.5 2.4-1.8 2.5c0 0 9.3-2 14.2-5.7l-1.2-1.9z"/>
<path fill="none" stroke="#000" stroke-width=".1" d="M223 208.2s-6.6 2.4-1.9 2.5c0 0 9.3-2 14.2-5.7l-1.2-1.9z"/>
<path fill="#452c25" d="M232.4 201.7s-6.8 3.5-6 3.9c.7.4 5.6-.7 8.1-2.3 2.6-1.6 3.6-2.5 3.6-2.5l-3-.8z"/>
<path fill="none" stroke="#000" stroke-width=".1" d="M232.4 201.7s-6.8 3.5-6 3.9c.7.4 5.6-.7 8.1-2.3 2.6-1.6 3.6-2.5 3.6-2.5l-3-.8z"/>
<path fill="#452c25" d="M229.8 209.4s-2.4 2-2.1 2.2c.3.3 5.3-.5 9.2-3.6l-.5-1.8-6.6 3"/>
<path fill="none" stroke="#000" stroke-width=".1" d="M229.8 209.4s-2.4 2-2.1 2.2c.3.3 5.3-.5 9.2-3.6l-.5-1.8-6.6 3"/>
<path fill="#452c25" d="M225.6 209s-2.3 1.9-1.8 2c.5.2 2.5 1.6 11.2-4.2l1-.6-1.5-2.2-9 4.9"/>
<path fill="none" stroke="#000" stroke-width=".1" d="M225.6 209s-2.3 1.8-1.8 2c.5.2 2.5 1.6 11.2-4.2l1-.6-1.5-2.2z"/>
<path fill="#452c25" d="M223.8 202.2A72.3 72.3 0 0 0 209 210l19-7.6m12 11.4s-1.6 2.4-1.3 2.7c.3.3 2.3 1.2 4.6-1.9 2.2-3-2.2-2.6-2.2-2.6z"/>
<path fill="none" stroke="#000" stroke-width=".1" d="M240 213.8s-1.6 2.4-1.3 2.7c.4.3 2.3 1.2 4.6-1.9 2.2-3.1-2.2-2.6-2.2-2.6z"/>
<path fill="#452c25" d="M241.7 215.5s-1 2.5-.5 2.8c.6.2 2.1-.2 3.4-2.5s-.6-1-.6-1zm-3.5-3.8s-2.4 3-1.9 3.4c.5.4 3.2.3 5.3-2.6 2-2.8 0-.1 0-.1l-.6-2.6z"/>
<path fill="none" stroke="#000" stroke-width=".1" d="M241.7 215.5s-1 2.5-.5 2.8c.6.2 2.1-.2 3.4-2.5s-.6-1-.6-1zm-3.5-3.8s-2.4 3-1.9 3.4c.5.4 3.2.3 5.3-2.6 2-2.8 0-.1 0-.1l-.6-2.6-2.8 1.8"/>
<path fill="#452c25" d="M236 210.3s-2.4 2.7-2.2 3.2c.3.4 3.4.3 6-2.4 2.6-2.8.5-3.7.5-3.7L236 210"/>
<path fill="none" stroke="#000" stroke-width=".1" d="M236 210.3s-2.4 2.7-2.2 3.2c.3.4 3.4.3 6-2.4 2.6-2.8.5-3.7.5-3.7L236 210"/>
<path fill="#452c25" d="m231.8 210.5-1.5 2s.5 1.9 5.5-1.6l4.8-3.2-2.7-.5-6.1 3.1"/>
<path fill="none" stroke="#000" stroke-width=".1" d="m231.8 210.4-1.4 2s.4 2 5.4-1.5l4.8-3.2-2.7-.5-6 3.2z"/>
<path fill="#452c25" d="m215.7 207.4-3.3 1.5s-.7.6 1.2.7a41.8 41.8 0 0 0 17.6-7.7l-2.5-1z"/>
<path fill="none" stroke="#000" stroke-width=".1" d="m215.7 207.4-3.3 1.5s-.7.6 1.2.7a41.8 41.8 0 0 0 17.6-7.7l-2.5-1z"/>
<path fill="#452c25" d="M210.2 209.5s4.6-.5 6.4-1.7c0 0-.3.5 2-.4 0 0-1.2 2.1 5.7-2 7-4.3 0-.2 0-.2l7.8-4.4-.5-.8-15.7 6.6a58 58 0 0 0-5.7 2.9"/>
<path fill="none" stroke="#000" stroke-width=".1" d="m224.4 205.3 7.6-4.5-.4-.8-15.7 6.6c-1.1.3-5.7 2.9-5.7 2.9s4.6-.5 6.4-1.7c0 0-.3.5 2-.4 0 0-1.1 2 5.8-2.1z"/>
<path fill="#452c25" d="M243.8 215.4s-.5 3.7 0 3.8c.6.1 2.1-1 2.8-3.3.6-2.2-2.5-2-2.5-2l-.5 1.4"/>
<path fill="none" stroke="#000" stroke-width=".2" d="M243.8 215.4s-.5 3.7 0 3.8c.6.1 2.1-1 2.8-3.3.6-2.2-2.5-2-2.5-2l-.5 1.4"/>
<path fill="#452c25" d="M246.2 217s-.3 2.6 0 2.9c.4.2 1.3.3 2.4-1.8l.6-1.3-2.5-1.4-.5 1.4"/>
<path fill="none" stroke="#000" stroke-width=".1" d="M246.2 217s-.3 2.6 0 2.9c.4.2 1.3.3 2.4-1.8l.6-1.3-2.5-1.4-.5 1.5z"/>
<path fill="#452c25" d="M246.8 212.3s-2 4.3-.8 4.3c1.1 0 2.6-3.3 2.9-4 .2-.8-2-.3-2-.3"/>
<path fill="none" stroke="#000" stroke-width=".1" d="M246.8 212.3s-2 4.3-.8 4.3c1.1 0 2.6-3.3 2.9-4 .2-.8-2-.3-2-.3z"/>
<path fill="#452c25" d="M246.7 212.3s-.8 4.7.3 4.3c1-.4 1.7-4 1.7-4.8 0-.7-2 .4-2 .4"/>
<path fill="none" stroke="#000" stroke-width=".1" d="M246.7 212.3s-.8 4.7.3 4.3c1-.4 1.7-4 1.7-4.8 0-.7-2 .4-2 .4z"/>
<path fill="#452c25" d="M248.3 212.7s-1.2 3.7 0 4.5c1 .7 2-3.7 2-4.7s-2 .2-2 .2"/>
<path fill="none" stroke="#000" stroke-width=".1" d="M248.3 212.7s-1.2 3.7 0 4.5c1 .7 2-3.7 2-4.7s-2 .2-2 .2z"/>
<path fill="#452c25" stroke="#000" stroke-width=".1" d="M243.7 211.5s-1.2 3.4-.5 3.8c1.3.6 2.4-2.4 2.5-3.5.2-1.3-2-.3-2-.3zm-8.5-7s-3 2.5-2.7 2.9c.4.4 4-.3 5.5-1.4 1.6-1 2.2-1.6 2.2-1.6l-2.7-1.7z"/>
<path fill="none" stroke="#000" stroke-width=".1" d="M237.9 202s-2 1.5-1.6 1.9c.3.4 3.8-1 4.5-1.7.6-.7.6-1.4.6-1.4z"/>
<path fill="#452c25" stroke="#000" stroke-width=".1" d="M239.9 201.7s-2.7 2.2-2 3c.6.7 4.3-2.8 4.8-3.2.5-.5-3.1 0-3.1 0"/>
<path fill="#452c25" stroke="#000" stroke-width=".1" d="m238.7 200.7-5.3 2.5s-4.5 3-4 3.2c.4.3 3.9-.6 6.4-1.9 2.5-1.2 5.2-3.3 5.2-3.3m-.8 2.4s-5.8 4.9-5 5.4c1 .5 4.8-1.6 7.4-4"/>
<path fill="#452c25" stroke="#000" stroke-width=".1" d="M240.9 205.2s-3.3 5.5-2.9 6c.4.6 2.7-1.3 3.9-2.7 1.2-1.3 2.1-3.4 2.1-3.4"/>
<path fill="#452c25" stroke="#000" stroke-width=".1" d="M242.8 205.7s-3.6 6.5-3.2 7c.4.6 2.5.2 3.7-2.4 1.2-2.6 1.1-4.2 1.1-4.2z"/>
<path fill="#452c25" stroke="#000" stroke-width=".1" d="M244.8 206s-3.9 8-3.1 8.8c.7.8 5-6 5.3-7 .3-1.8-2.2-2-2.2-2m-8.2-5.2s-3.6 1.7-2.8 2c.7.4 4-1 4.4-1.2.5-.2-1.6-.8-1.6-.8z"/>
<path fill="#452c25" stroke="#000" stroke-width=".1" d="M237.1 201.2s-2.2 1.7-1.7 2.2c.4.4 3.7-1.4 4.4-2 .6-.5-2.7-.2-2.7-.2zm4.6.1s-3 4-2.1 4.2c1 .1 4.4-2.6 4.4-3 0-.5-2.3-1.2-2.3-1.2z"/>
<path fill="#452c25" stroke="#000" stroke-width=".1" d="M243 202.2s-3.2 4-2.3 4.3c1 .2 1-.4 1-.4s2.5-2.1 2.7-2.6c.2-.6-1.3-1.3-1.3-1.3"/>
<path fill="#452c25" stroke="#000" stroke-width=".1" d="M244 203.2s-2.3 4-1.7 4.2c.6.2 1.5-.7 2.5-2 1-1.1-.8-2.2-.8-2.2z"/>
<path fill="#452c25" stroke="#000" stroke-width=".1" d="M244.6 205s-1.4 2.5-1 3.3c.3.8 1.7-.6 2.3-1.5.6-.9-1.3-1.8-1.3-1.8zm.6 7s-1 3.4-.3 3.7c1.4.7 2.2-2.3 2.3-3.5.2-1.3-2-.2-2-.2z"/>
<path fill="#452c25" stroke="#000" stroke-width=".1" d="M251.4 207.4s-1-.3-1.6-.3c0 0-2-1.6-3-1.8-1.2-.1-.3-.1-.3-.1s0-2.6-.4-2.8c0 0-.2-2.7-1.8-2.9-1.7-.2-5.5.2-6.2 0-.6-.3-2.7-1.2-6.7-.1-4 1-12 4.6-12.3 4.7-.4.1 9-2 11.8-3.2 0 0 2.6-.2 3.4-.5 0 0-3 1.5-.2.9 2.8-.7 2.2 0 2.2 0s-.3.6 1.3.2c1.6-.3 1.6 0 1.6 0s1.8.7 3.2-.2c0 0 .7 2.6 1.6 3 0 0 1.1 2.2 3.4 2.7l1.3.9 1.3.4 1.3-1"/>
<path fill="#452c25" stroke="#000" stroke-width=".1" d="M232.8 200.6s-9 3.2-8.7 4c.3 1 9.4-2.4 10.9-3.4 1.4-.9-2-.7-2-.7"/>
<path d="m257.9 207.6.6.2a1.6 1.6 0 0 0-.4-.4l-.7-.3.1.2zm-7 6.8c0 .3 0 .6.2.8v-.1c-.1-.3-.1-.6-.3-.8zm1.3-7 .9-.1v-.2c-.3 0-.6 0-1 .2zm1.9-.1.9-.2v-.1a2 2 0 0 0-1 .2m-3 1.7a.3.3 0 0 0 0 .2zm-.2 4.9v.7a.3.3 0 0 0 0-.1 4.3 4.3 0 0 1 0-.6c0-.1 0-.1 0 0"/>
<path fill="#bd8759" d="m252.4 228.2-1.2 1.1a4 4 0 0 0-.1.7s.9 0 .8.4c0 0 .3.2.8-.9.4-1 .9-1.6 1.2-1.5.3 0 .8.3 1 .6.2.2.5.4.9.3 0 0-.4-.6-.2-.8h.7s-.4-.8-1-1c-.7 0-1.2-.2-1-.5l1-2.6-1.1-1.6-.5 1.4.2 1c0 .3-1 2.2-1 2.3l-3 1.2c-.2 0-.8.8-.8.8v.5s.3-.3.5-.1c0 0 .2-.4.5-.3l.2.2.5-.4.1-.1.6-.2"/>
<path fill="none" stroke="#000" stroke-width=".1" d="m252.4 228.2-1.2 1.1a4 4 0 0 0-.1.7s.9 0 .8.4c0 0 .3.2.8-.9.4-1 .9-1.6 1.2-1.5.3 0 .8.3 1 .6.2.2.5.4.9.3 0 0-.4-.6-.2-.8h.7s-.4-.8-1-1c-.7 0-1.2-.2-1-.5l1-2.6-1.1-1.6-.5 1.4.2 1c0 .3-1 2.2-1 2.3l-3 1.2c-.2 0-.8.8-.8.8v.5s.3-.3.5-.1c0 0 .2-.4.5-.3l.2.2.5-.4.1-.1.6-.2"/>
<path fill="#bd8759" d="M259.3 223.1v2.3c0 .4 0 .9-.2 1.2-.2.3-.4.5-.7.5s-1.2 0-1.4.3a5.4 5.4 0 0 1-.3.5s.6-.4.6 0c.1.3-.2.5-.2.5s.5.1 1-.1c.4-.3.7-.4.9-.4.2 0 .4.3.4.3v1c0 .5 0 1.3.4 1.3 0 0 .1-.4.3-.5.2 0 .6.4.5.6v-1.4l-.3-1s1.4.5 1.5.7l.6.4c.1 0 0-.5.3-.5h.3s-.4-.9-1-1.2l-1.3-.5c-.2-.3-.3-.6-.3-1v-3l-1-.2"/>
<path fill="none" stroke="#000" stroke-width=".1" d="M259.4 223v2.4c0 .4 0 .9-.3 1.2-.2.3-.4.5-.7.5s-1.2 0-1.4.3a5.2 5.2 0 0 1-.3.5s.6-.4.6 0c.1.3-.2.5-.2.5s.5.1 1-.1c.4-.3.7-.4.9-.4.2 0 .4.3.4.3v1c0 .5 0 1.3.4 1.3 0 0 .1-.4.3-.5.2 0 .6.4.5.6v-1.4l-.3-1s1.4.5 1.5.7l.6.4c.1 0 0-.5.3-.5h.3s-.4-.9-1-1.2l-1.3-.5c-.2-.3-.3-.6-.3-1v-3z"/>
<path fill="#dcddde" d="M250.7 210.5s-.1-1.4.3-1.6c0 0 .1-1.2 1.8-1 0 0 .6-1 1.5-.5 0 0 .8-.4 1.3-.2a5 5 0 0 1 1.2.8s.7-.1 1 .1c.4.3.2 1.2.2 1.2s.9.6 1 1.2c0 .5 0 .7-.2.9 0 0 .4.3.3.7 0 .4-.4 1-.5 1s0 1.1-.3 1.5c-.4.4-.7.4-.9.5-.1 0-.5.6-1 .7-.3 0-.8-.6-.9-.8 0-.2-.5-.4-.5-.4s-1.2 1.3-2 1a2 2 0 0 1-1.2-1l-.3-1s-1-.5-.8-1c0-.5.4-1 .4-1z"/>
<path fill="none" stroke="#000" stroke-width=".1" d="M253.7 226a.3.3 0 0 1-.3 0m.7-1a.8.8 0 0 1-.4 0m0 .6h.2m-1 1.5a.3.3 0 0 0 .1.1m6.9-1 .5.1m-.2-.6h-.4m.4-.6a1 1 0 0 1-.4 0m-.1 2 .4.1m-.4.5a.2.2 0 0 1 .2 0m0 1.7a.4.4 0 0 1 .2 0m-5.4-2.2a.4.4 0 0 0-.3.3m1.1-.2c-.2.1-.3.3-.3.5m-4.9.4.5.3m10.5-1a.4.4 0 0 0-.2.3m.8 0a.2.2 0 0 0-.1.1"/>
<path fill="#d9c0b9" d="m249 229.4.6-.1s-.3.7-.2 1c0 0-.6-.4-.4-.9"/>
<path fill="none" stroke="#000" stroke-width=".1" d="m249 229.4.6-.1s-.3.7-.2 1c0 0-.6-.4-.4-.9z"/>
<path fill="#d9c0b9" d="M251.3 229.8s-.7 1.1.1 1.7c0 0 0-1 .6-1.3l-.8-.3z"/>
<path fill="none" stroke="#000" stroke-width=".1" d="M251.3 229.8s-.7 1.1.1 1.7c0 0 0-1 .6-1.3l-.8-.3z"/>
<path fill="#d9c0b9" d="m255.6 228.8-.2-.6.2-.2h.6s.4.9 0 1.3c0 0 0-.5-.2-.5z"/>
<path fill="none" stroke="#000" stroke-width=".1" d="m255.6 228.8-.2-.6.2-.2h.6s.4.9 0 1.3c0 0 0-.5-.2-.5z"/>
<path fill="#d9c0b9" d="M257 227.6h.4l.1.4v.3l-.4.2s-.5-.2-.4.5c0 0-.2-1.2.3-1.4"/>
<path fill="none" stroke="#000" stroke-width=".1" d="M257 227.6h.4l.1.4v.3l-.4.2s-.5-.2-.4.5c0 0-.2-1.2.3-1.4z"/>
<path fill="#d9c0b9" d="m259.7 230.3.4-.5.4.3-.2 1.2v.1l-.3-.3z"/>
<path fill="none" stroke="#000" stroke-width=".1" d="m259.7 230.3.4-.5.4.3-.2 1.2v.1l-.3-.3z"/>
<path fill="#d9c0b9" d="M262.3 229.1s.7.8.6 1c0 0 .7-.6-.2-1.5z"/>
<path fill="none" stroke="#000" stroke-width=".1" d="M262.3 229.1s.7.8.6 1c0 0 .7-.6-.2-1.5z"/>
<path d="M259.5 209c.1 0 .2 0 .3.2v-.1c0-.2-.2-.3-.3-.3v.1m.1 2.3.5.7v-.1a1.8 1.8 0 0 0-.5-.8zm-.4-1.7.5.6v-.1zm.5 3.7-.1 1a2 2 0 0 0 .1-1.1.4.4 0 0 0 0 .1m.5 1.2v-.1m2 4.1a5.1 5.1 0 0 1 .1 1.4l-.1-1.5zm-.3 1a7.9 7.9 0 0 1-.4.9v.1a7.8 7.8 0 0 0 .4-1m-11-3.2.8 1.3v-.1zm2 0c-.3.1-.4-.3-.6-.4v.2c.2 0 .3.4.5.4zm-1 1.8.5 1zm1.2.5c.3.2.5.5.6.8v-.1a2.9 2.9 0 0 0-.6-.9zm0 1.3.3.7v-.2l-.4-.7zm1.2.2a3 3 0 0 1 .1.8 3.5 3.5 0 0 0 0-.9s-.1.1 0 .1m-.6 1.1c0 .4.2.7.4 1v-.1za.4.4 0 0 0 0 .1m.3-4.6.9.2a8.6 8.6 0 0 1-.9-.4v.1m.2 1.3 1 .5v-.2l-1-.5zm.3 1.3.6.6v-.1a4.8 4.8 0 0 1-.6-.6zm.4 1.7.3.8a.3.3 0 0 0 0-.1 1.9 1.9 0 0 0-.3-.8zm1-4.2.1.5v-.1a10.8 10.8 0 0 1 0-.5.3.3 0 0 0 0 .1m2.4-1-.2.5v.2a3.8 3.8 0 0 0 .3-.6m1-.1v.8a.4.4 0 0 0 0 .1 4.4 4.4 0 0 0 0-1m.2 1.7a3 3 0 0 1 0 .7.6.6 0 0 0 0 .1 4 4 0 0 0 0-.8m.8 1.5a1.4 1.4 0 0 1-.5.8v.2c.3-.3.5-.6.5-.9a.5.5 0 0 0 0-.1m-2.6-1.5-.2.4v.1zm.3 2a2 2 0 0 1-.3.4v.2a2 2 0 0 0 .3-.4zm-.9 1c-.3-.4-.5-.8-.3-1.3v-.1c-.2.5-.1 1.1.3 1.5zm-1.2-1.1v.7a2 2 0 0 0 0-.9.3.3 0 0 0 0 .2m2.8 1.3-.3.7v.1zm1.8.7-.5.7v.2a9.7 9.7 0 0 0 .5-.8zm.8.9a18 18 0 0 0 0 .1.5.5 0 0 0 0-.1m1.1-1.7v.5c0 .1 0 0 0 0zc0-.1 0 0 0 0m-11.8-5.2v1.4s.1-.1 0-.1z"/>
<path fill="#fff" d="M254.7 209.4c.8-.7 1.8-1.4 2.9-1.1v-.2c-1-.2-2.1.5-2.9 1.2zm3.7.9c-.8-.6-2-.7-2.8-.1v.1c.7-.6 2-.4 2.8.1zm-3 1.1a6 6 0 0 1 .6 3.2.5.5 0 0 0 0 .1c.2-1.2-.2-2.3-.5-3.4zm-1.2.6c.2 1 0 2 0 3v.1c0-1 .2-2.2 0-3.2m1.6-.7c1 .3 2 1 2.5 1.8v-.1a4.1 4.1 0 0 0-2.5-1.8zm-.9 1.4-.1 1.9v.1c.2-.6.1-1.3.1-2m1.6-.1c.6.5 1.1 1.3 1.2 2a3.4 3.4 0 0 0-1.2-2.2zm-4.6 1.7c.2-.3.4-.6.8-.8v-.1c-.4.1-.6.5-.8.8m1.5-5.3a2 2 0 0 0-1-1.2v.1c.4.3.8.7 1 1.2zm-1 0a3.7 3.7 0 0 0-1.6-.3v.1c.6 0 1.1 0 1.7.3zm1.6-.1c0-.5 0-1-.5-1.4v.1c.4.3.6.7.5 1.2m2 .7c.5-.2 1-.2 1.5-.2v-.1c-.5 0-1 0-1.5.2zm.9 1.4c.7 0 1.3.4 1.8 1v-.3a2.8 2.8 0 0 0-1.8-1zm-3.4 2c-.2.8 0 1.7-.9 2v.3c.9-.3.7-1.3 1-2z"/>
<path fill="#fff" d="M255.5 212.3c.3.7.7 1.5.5 2.4a1 1 0 0 0 0 .2c.2-1-.2-2-.5-2.9zm1-.2a2 2 0 0 1 1.6 1.6v-.1a1 1 0 0 0 0-.2 1.8 1.8 0 0 0-1.5-1.5v.2m0 1.1c0 .7.3 1.3 0 2v.2c.3-.8.1-1.6 0-2.4a1 1 0 0 0 0 .2m-.4-2.7c.8-.2 1.6-.3 2.3.3v-.3c-.7-.6-1.5-.4-2.3-.3zm-1.5-1.6c0-.7.7-1.2 1.3-1.4v-.3c-.7.2-1.2.7-1.3 1.4a1 1 0 0 0 0 .2m-.8.5c0-.8-.3-1.4-.6-2v.2c.2.6.6 1.2.6 1.8 0 .2 0 0 0 0m-.7.4a2 2 0 0 0-1.1-1.4v.2c.5.3 1 .8 1.1 1.4a.8.8 0 0 0 0-.2m-1-.3a3 3 0 0 0-1.3-.6v.2c.5.1.9.4 1.3.6zm2.3 3.1c0 .7.2 1.4-.2 2v.3c.5-.7.3-1.6.3-2.5v.2"/>
<path fill="#fff" d="M255.3 212.1c.3.7.6 1.4.5 2.1v.2c0-1-.2-1.7-.5-2.5zm.6-1c.7.3 1.3.5 1.8 1v-.2a3.8 3.8 0 0 0-1.8-1zm-1.8-1.5a16 16 0 0 0 .1-1.8c0-.2 0-.2 0 0 0 .5 0 1-.2 1.6zm-1.2-.4a6 6 0 0 1-1.3-.9v.3l1.3.9zm-.2 3.5c-.3.2-.5.5-.7.9v.2l.7-.8zm.9.6c0 .4-.3.8-.6 1.2v.2c.4-.4.6-.8.6-1.4 0 0 0-.2 0 0m2.3-3.8c.4-.7 1.3-.7 2-1v-.2c-.7.2-1.6.2-2 .9v.2m-4.5 0a2.2 2.2 0 0 1-.4-.2v.2l.4.2zm.1 3.3a1 1 0 0 0-.4.2v.3l.4-.2za.8.8 0 0 0 0-.1m.6.1-.7.7v.2l.7-.7zm1.1.3c-.2.6-1 1.3-.4 2v-.3c-.4-.5.2-1 .4-1.4zm.8 0-.2 1.8a1 1 0 0 0 0 .3 10.5 10.5 0 0 0 .2-2.1m2-.7c.5.6.9 1.2 1 2v-.3a5.7 5.7 0 0 0-1-2zm.2-.5c.8.5 1.6 1 2.1 1.9v-.3c-.5-.8-1.3-1.3-2-1.9z"/>
<path fill="#fff" d="M256.6 211h.8l.6.5c.2.1.5.2.6.4.3.3.3.7.3 1a.8.8 0 0 0 0-.2l-.1-.8-.5-.5-.8-.5c-.3-.2-.6-.2-1-.1zm1.8 1.5.3.8v-.2zm-2.1-3.8 1.6-.4v-.3l-1.6.4zm-2.2.3a2.4 2.4 0 0 1 .4-.8l.4-.9v-.3l-.4.8c0 .3-.3.6-.4 1zm-1.8 5 .1 1.3v-.3a1.5 1.5 0 0 1 0-.8zm1 .8c-.2.2-.2.6 0 1zm.8-.5-.2.8v.2zs0-.1 0 0m0-1.5v.5zm-.3.2a.9.9 0 0 1 0 .1.8.8 0 0 0 0 .3v-.7zm-.6-.2a3.7 3.7 0 0 0 0 .5.8.8 0 0 0 0 .2zm-.4 0-.9.6v.3l1-.7zm-.8 0c-.1.2-.3.3-.5.3v.3c.2 0 .4-.1.5-.3v-.1a3.3 3.3 0 0 0 0-.1m-1-.3-.4.2v.2l.4-.2zm3-.1.1.5a.8.8 0 0 0 0-.2zm.4-.2.1.6a.4.4 0 0 0 0-.1v-.2a1 1 0 0 1 0-.3v-.2zm.3 0 .1.3v-.1a.9.9 0 0 0 0-.5h-.1zm.4-.1a.8.8 0 0 1 .4.2v-.4a.8.8 0 0 0-.4-.2zm.3-.4.6.3v-.3a1.3 1.3 0 0 1-.6-.3v.4m.5-1.2h.4v-.2a2.5 2.5 0 0 0-.4 0zm-.3-.6.4-.4a5.7 5.7 0 0 0 0-.2l-.4.4zm-.4-.5a1 1 0 0 1 .2-.5v-.2a1.1 1.1 0 0 0-.2.6s0 .1 0 0m-.4-.2.5-.8v-.2l-.5.8z"/>
<path fill="#fff" d="m254.4 208.3.1 1v-.1a.7.7 0 0 0 0-.2zm-1.4.2.2.4a2 2 0 0 1 .1.3c0-.1 0 0 0 0v-.3l-.3-.6zm-.2.6a4.8 4.8 0 0 0-.6-.5 1.6 1.6 0 0 0 0 .1v.2l.6.4zm.8.3a3 3 0 0 0-.1-1.8v.3c.2.4.2.8.1 1.2v.2m1.3-.7v-.3z"/>
<path fill="#fff" d="m253.6 209.4.1-1v-.3l-.2 1a1.6 1.6 0 0 0 0 .3m3.8 2.1c.3.1.6.3.7.6v-.4c-.1-.3-.4-.5-.7-.6zm-1 2v.6a1.2 1.2 0 0 0 0 .3s0 .1 0 0a2.8 2.8 0 0 0 0-1.2.7.7 0 0 0 0 .1v.3m-.9-.6v1.3s0 .2 0 0v-1.5zm-.4.4a22.6 22.6 0 0 0-.3 1.7l.3-1.3zm.6.3v1.1a1.5 1.5 0 0 0 0 .3c0 .1 0 .1 0 0v-1.6zm-2.8.2a.7.7 0 0 1 0 .1v-.5.1a1.4 1.4 0 0 0 0 .3m1.2-.8.1.4v-.8zm.3-.2a.4.4 0 0 1 .1.2s0 .1 0 0a.7.7 0 0 0 0 .2zl-.1-.5a1.4 1.4 0 0 0 0 .2zm.4-.3.2.4a1 1 0 0 0 0-.2v-.2l-.2-.4a2.8 2.8 0 0 0 0 .3m.9-.3.5.7v-.4a10 10 0 0 1-.5-.7zm.4-.7.5.6v-.5a4.4 4.4 0 0 1-.4-.6zm-4.6-2.1a1.8 1.8 0 0 0-.5-.3v.4c.2 0 .3.2.5.3zm1.4-.5a.5.5 0 0 1 0 .1v.1za1 1 0 0 0 0-.4 1 1 0 0 0 0 .1zm1-1.1-.1.8v.3s0 .1 0 0c.2-.3.2-.8.2-1.2a.6.6 0 0 0 0-.1zm.2 1.5.5-.6v-.4l-.5.6zm.7 0 .2-.3v-.3l-.2.2a1.4 1.4 0 0 0 0 .2zm1 .2a8.3 8.3 0 0 1-.7 0v.4a8 8 0 0 0 .8 0zm-.3 1c.4.1.7.4 1 .6 0 0 .2-.4 0-.4l-1-.7z"/>
<path fill="#fff" d="m256 211.2.9.6v-.5l-1-.6a2.3 2.3 0 0 0 0 .2v.2m-2-1.5v-.6zm-2.4-1c.2.3.6.5 1 .8l.6.7s.1-.4 0-.4l-.6-.6-1-1c0 .1-.1.4 0 .4m.6 1.2a8.2 8.2 0 0 1-.5-.6 1.8 1.8 0 0 0 0 .2v.2a8 8 0 0 0 .5.6zm-.4 2.7-.3.6v.4l.3-.6zm.3.4v.7a1.4 1.4 0 0 0 0 .3v-1.1a.7.7 0 0 0 0 .1m1.1 2c.2-.8.2-1.4.2-2.1 0-.3 0 0 0 0 0 .6 0 1.1-.2 1.6v.4m.6-1.6.1.7a1.4 1.4 0 0 0 0 .3s0 .1 0 0v-1.4a.7.7 0 0 0 0 .2zm.6-.2c.2.3.3.6.2 1v.2c.1-.5.1-1.2-.2-1.6zm.2-.3.4 1.8v-.3a14.2 14.2 0 0 0-.3-1.9zm.5-.1.7 1.1a.7.7 0 0 0 0-.1v-.3a4 4 0 0 0-.7-1.1zm1.2-1c0-.2-.3-.3-.5-.2v.4c.2 0 .4 0 .5.2z"/>
<path fill="#fff" d="M255.7 211.3h1.2v-.5h-1.2zm.7-3.1a3 3 0 0 0-.5 1.3v.3s0 .1 0 0c0-.4.2-.9.5-1.2zm-1.6.3c0 .4.2.7.3 1a.8.8 0 0 0 0-.1v-.3l-.3-1v.1a1.3 1.3 0 0 0 0 .3m-.3.6a1.6 1.6 0 0 1-.4-.5 1 1 0 0 0 0 .1v.3a1.7 1.7 0 0 0 .4.5zm-.6.3c-.5-.1-.9-.3-1.3-.6v.4c.4.3.8.5 1.3.6z"/>
<path fill="#dba05f" d="m254.4 209.3-2.3.4-2 .2-1.3-.4c-.4 0-1.7-.2-2.2.3l-1 .8c-.1.2-.7.7-.7 1 0 .2.1.6.4.6.3 0 1 .6 1 .8 0 .2.8.4 1.6.4 1.4 0 2.1-.7 4.2-.4 1.2 0 3.3-.8 3.7-1.4.4-.5.6-1.1.2-1.7-.3-.7-1.5-.6-1.6-.6"/>
<path fill="none" stroke="#000" stroke-width=".1" d="m254.4 209.3-2.3.4-2 .2-1.3-.4c-.4 0-1.7-.2-2.2.3l-1 .8c-.1.2-.7.7-.7 1 0 .2.1.6.4.6.3 0 1 .6 1 .8 0 .2.8.4 1.6.4 1.4 0 2.1-.7 4.2-.4 1.2 0 3.3-.8 3.7-1.4.4-.5.6-1.1.2-1.7-.3-.7-1.5-.6-1.6-.6z"/>
<path d="m246.8 211.3.1-.2.2-.2a.9.9 0 0 1 .4-.3h-.1.7l-.7.1h.6-.5c-.3.1-.3.5-.7.7"/>
<path fill="none" d="m246.7 211.2.4-.4.7-.3h.3"/>
<path fill="none" d="m247.4 210.6-.4.3-.3.3m.8-.6h.5m-.6.1h.5"/>
<path d="m247.9 211-.2.1-.1.1-.3.2-.4.1.5-.1-.4.1.4-.1-.4.1h.1s.4 0 .8-.4"/>
<path fill="none" d="m247.8 211-.3.2s-.3.3-.4.2l-.2.1m.4-.1.3-.2.2-.2m-.4.4-.4.1m.4-.1-.3.1"/>
<path fill="#c6262c" d="M248.4 209.6s0-.6-.6-.8a3.4 3.4 0 0 0-1.4-.2l-.6.1a2.7 2.7 0 0 0-.6.2v.3c-.2.2-.5.4-.4.6.2.3 0 .3.2.4.2 0 0-.1 0-.1s-1 .3-.8.9c.2.6.5.4.6.4l.5-.3.8-.7 1-.4h.6z"/>
<path fill="none" stroke="#000" stroke-width=".1" d="M248.4 209.6s0-.6-.6-.8a3.4 3.4 0 0 0-1.4-.2l-.6.1a2.7 2.7 0 0 0-.6.2v.3c-.2.2-.5.4-.4.6.2.3 0 .3.2.4.2 0 0-.1 0-.1s-1 .3-.8.9c.2.6.5.4.6.4l.5-.3.8-.7 1-.4h.6z"/>
<path d="m247.7 211-.3.4-.4-.1.4-.5z"/>
<path fill="#d9c0b9" d="M243.8 213.6s-.7-1.3 1.4-2l.8.6s-.4.6-1.6.8c0 0-.6.2-.6.6"/>
<path fill="none" stroke="#000" stroke-width=".1" d="M243.8 213.6s-.7-1.3 1.4-2l.8.6s-.4.6-1.6.8c0 0-.6.2-.6.6z"/>
<path fill="#d9c0b9" d="M244 213.4s.9.1 1.5-.3c.4-.3.6-.2.7-.1 0 0 0-.5-.2-.8l-1 .7c-.5 0-.8 0-1 .5"/>
<path fill="none" stroke="#000" stroke-width=".1" d="M244 213.4s.9.1 1.5-.3c.4-.3.6-.2.7-.1 0 0 0-.5-.2-.8l-1 .7c-.5 0-.8 0-1 .5z"/>
<path fill="#7a2e26" d="M246.4 213h.5v-.2h-.5zm-.3-2.2c-.1 0 0 .2-.2.3v.1c.1 0 0-.2.2-.2zm.5.3.3-.2v-.1c-.2 0-.3 0-.4.2zm.6.8a.3.3 0 0 0 .3-.1v-.1a.3.3 0 0 1-.3 0zm.5-.2a.8.8 0 0 0 .4-.3v-.1a.8.8 0 0 1-.4.3zm-.7-.7-.4.4v.1l.4-.4zm.3 2.2 1-.1v-.2a3.3 3.3 0 0 1-1 .2m1.6 0c.5-.3 1-.6 1-1.2v-.1c0 .6-.5.9-1 1.2zm.3-.8c.4-.2.6-.5.7-.9v-.1c-.1.4-.4.7-.7.9zm-.1-2c.2-.1.5.1.7.3v-.2l-.7-.3zm6.6 1c.3-.4.2-1-.1-1.4v.1c.2.4.4.8.1 1.2zm-5-.7c.2.2 1 .8.8 1.2v.1c.3-.6-.4-1.2-.9-1.5zm2.3 2.2a1.6 1.6 0 0 0 .1-.4.5.5 0 0 0 0-.1v.5"/>
<path fill="#5e3f17" d="m253.7 212.5.6-.3m-9-.2c-.4.2-1 .2-1 .7 0-.5.6-.5 1-.7"/>
<path fill="#842116" d="M245 210.4c.1 0 .3.1.3.3a.5.5 0 0 0 0 .1.7.7 0 0 0 0-.3c0-.2-.2-.2-.3-.2zm.7.3a.7.7 0 0 0 0-.6zm.6-.6c0-.2-.1-.5-.4-.6v.1c.3.1.3.4.4.6a.3.3 0 0 0 0-.1m.5-.1c0-.2 0-.5-.2-.6v.1zm-.9-.7c.5-.2 1.6-.3 2 .2v-.2c-.4-.5-1.5-.4-2-.1z"/>
<path fill="#7a2e26" d="M244.8 211.3v-.5s-.1 0 0 0zm5 1.5a.7.7 0 0 0 .3-.5v-.1a.7.7 0 0 1-.3.4zm.8-.1a.4.4 0 0 0 .1-.3zm4.6-2.5a1 1 0 0 1 .1.7.4.4 0 0 0 0 .1v-1s-.1.1 0 .2m-.6.4.1.7v-.8.1m-.5.4"/>
<path fill="#452c25" d="m260.5 224.5.1.3h.1l-.1-.3z"/>
<path fill="#dcddde" d="M250 208c-1.7 0-3.5-1.2-3.5-1.2-2.3-.4-2.4-2.5-2.4-2.5-1-.3-1.7-2.6-1.7-2.6-1.4.8-3.2 0-3.2 0s0-.4-1.6 0c-1.6.3-1.3-.3-1.3-.3s.6-.7-2.2 0c-2.8.6.3-.9.3-.9-.9.3-3.5.5-3.5.5-1 0-2 .5-3 .8-.8.2-2 .4-2.5.7l-7.3 3.1-5.9 2.3c.3 0 3.7-2.3 8-4.2a93.5 93.5 0 0 1 11-4.2c3.1-1 5.6-.5 7 0 .7.2 4.4-.1 6 0 1.8.3 2 3 2 3 .2.2.4 2.8.4 2.8s-1 0 .1.2 3.1 1.7 3.1 1.7h.8s.4-.5.9-.7l1.6-.5h2.1l2.2.3c.9.1 1 .2 1.3.3h.5c1-.5 3.2-1.3 3.6-1.2 0 0 .8-.2 1.2-.5a112 112 0 0 0 1.4-1.1s-.6-4.7 4.1-4.3l12.3 1.3a47.8 47.8 0 0 1 12.5 4.5l4.3 1.9c2.4 1 4.1 2.5 4.1 2.5l-3.8-1.9c-1-.4-2-.6-2.8-1l-3.9-1.8c-3.7-1.7-3.6-1.8-5.1-1.9-1 0 .7 1.2.7 1.2l-4.4-1.7a6.3 6.3 0 0 0-3-.6 6.2 6.2 0 0 1-2.4-.3c-.6-.2-4-.4-4.7-.4a7.8 7.8 0 0 1-1-.2l.2.4-1.7-.3-.5.7s-1.6.3-1.7-.2c-.2-.5-1 2.4-1.4 3.2-.4.9-2.4.6-2.9 1.1-.4.6-1.5 1-1.7 1-.2.2-1 .1-1.4.1-.6 0 0 0-1.1.2l-1.2-.1-1.5-.5-3.8-.2a6 6 0 0 0-1.5.4l-1.3.8"/>
<path fill="#e7e7e7" stroke="#000" stroke-width=".1" d="M250 208c-1.7 0-3.5-1.2-3.5-1.2-2.3-.4-2.4-2.5-2.4-2.5-1-.3-1.7-2.6-1.7-2.6-1.4.8-3.2 0-3.2 0s0-.4-1.6 0c-1.6.3-1.3-.3-1.3-.3s.6-.7-2.2 0c-2.8.6.3-.9.3-.9-.9.3-3.5.5-3.5.5-1 0-2 .5-3 .8-.8.2-2 .4-2.5.7l-7.3 3.1-5.9 2.3c.3 0 3.7-2.3 8-4.2a93.5 93.5 0 0 1 11-4.2c3.1-1 5.6-.5 7 0 .7.2 4.4-.1 6 0 1.8.3 2 3 2 3 .2.2.4 2.8.4 2.8s-1 0 .1.2 3.1 1.7 3.1 1.7h.8s.4-.5.9-.7l1.6-.5h2.1l2.2.3c.9.1 1 .2 1.3.3h.5c1-.5 3.2-1.3 3.6-1.2 0 0 .8-.2 1.2-.5l1.4-1.1s-.6-4.7 4.1-4.3l12.3 1.3a47.8 47.8 0 0 1 12.5 4.5l4.3 1.9c2.4 1 4.1 2.5 4.1 2.5l-3.8-1.9c-1-.4-2-.6-2.8-1l-3.9-1.8c-3.7-1.7-3.6-1.8-5.1-1.9-1 0 .7 1.2.7 1.2l-4.4-1.7a6.3 6.3 0 0 0-3-.6 6.2 6.2 0 0 1-2.4-.3c-.6-.2-4-.4-4.7-.4a7.8 7.8 0 0 1-1-.2l.2.4-1.7-.3-.5.7s-1.6.3-1.7-.2c-.2-.5-1 2.4-1.4 3.2-.4.9-2.4.6-2.9 1.1-.4.6-1.5 1-1.7 1-.2.2-1 .1-1.4.1-.6 0 0 0-1.1.2l-1.2-.1-1.5-.5-3.8-.2a6 6 0 0 0-1.5.4l-1.3.8"/>
<path fill="#452c25" d="M250.3 207.4s-.2.1-.3.5v.2"/>
<path fill="#574f4c" d="m259.5 206.9.7.5s0 .1 0 0a7 7 0 0 0-.8-.7.6.6 0 0 0 .1.2"/>
</svg>

After

Width:  |  Height:  |  Size: 111 KiB

View File

@@ -0,0 +1,5 @@
<svg xmlns="http://www.w3.org/2000/svg" id="flag-icons-bq" viewBox="0 0 512 512">
<path fill="#21468b" d="M0 0h512v512H0z"/>
<path fill="#fff" d="M0 0h512v341.3H0z"/>
<path fill="#ae1c28" d="M0 0h512v170.7H0z"/>
</svg>

After

Width:  |  Height:  |  Size: 225 B

View File

@@ -0,0 +1,45 @@
<svg xmlns="http://www.w3.org/2000/svg" id="flag-icons-br" viewBox="0 0 512 512">
<g stroke-width="1pt">
<path fill="#229e45" fill-rule="evenodd" d="M0 0h512v512H0z"/>
<path fill="#f8e509" fill-rule="evenodd" d="m261.4 405.4 229.8-149.2L260 106.6l-230.7 150z"/>
<path fill="#2b49a3" fill-rule="evenodd" d="M361.5 256a97.2 97.2 0 1 1-194.3-.2 97.2 97.2 0 0 1 194.3.2"/>
<path fill="#ffffef" fill-rule="evenodd" d="m232.3 314.2-3-1.8-3.1 1.6.7-3.5-2.4-2.5 3.4-.4 1.6-3.2 1.5 3.3 3.4.6-2.6 2.4m65.7 20-3-1.8-3.2 1.6.7-3.5-2.4-2.5 3.5-.4 1.6-3.2 1.4 3.3 3.4.6-2.5 2.4m-27.6-22.9-2.6-1.5-2.7 1.3.6-3-2-2.2 2.9-.3 1.4-2.7 1.2 2.8 3 .5-2.2 2m66.2-6.4-2.6-1.5-2.6 1.3.6-2.9-2-2.1 2.9-.4 1.3-2.6 1.3 2.7 2.9.5-2.2 2m-66.6-16.7-3-1.8-3.1 1.6.7-3.5-2.4-2.5 3.4-.4 1.6-3.1 1.5 3.2 3.4.6-2.6 2.4M188 245l-3-1.8-3 1.6.6-3.5-2.4-2.5 3.5-.4 1.6-3.2 1.4 3.3 3.4.6-2.5 2.4m10.1 43.5-3-1.7-3.1 1.5.7-3.4-2.4-2.6 3.4-.4 1.6-3 1.5 3.1 3.4.7-2.6 2.3m100.6-51.3-2.6-1.5-2.8 1.3.6-3-2-2.3 3-.3 1.4-2.8 1.3 2.9 3 .5-2.3 2.1m-5 29.2L290 255l-2.1 1 .4-2.4-1.6-1.7 2.4-.3 1.1-2.2 1 2.3 2.4.4-1.8 1.6m-108.4 38.5-2-1.2-2.1 1 .4-2.3-1.6-1.7 2.4-.2 1-2 1 2 2.3.5-1.7 1.6m152.6 11.5-1.7-.8-1.7.7.4-1.7-1.3-1.3 1.9-.2.9-1.5.7 1.6 1.9.3-1.4 1.2"/>
<path fill="#ffffef" fill-rule="evenodd" d="m183.5 292.3-2-1.2-2.1 1 .5-2.3-1.7-1.7 2.3-.2 1.1-2 1 2 2.3.5-1.7 1.6"/>
<path fill="#ffffef" fill-rule="evenodd" d="m183.5 292.3-2-1.2-2.1 1 .5-2.3-1.7-1.7 2.3-.2 1.1-2 1 2 2.3.5-1.7 1.6m32.2 2.3-2-1.2-2 1 .4-2.3-1.6-1.7 2.3-.2 1-2.1 1 2.1 2.3.5-1.7 1.6m-3.7 13-2-1.2-2 1 .4-2.3-1.6-1.7 2.3-.3 1-2 1 2 2.3.5-1.7 1.6m66.7-17-2-1.2-2.1 1 .4-2.3-1.6-1.7 2.3-.2 1.1-2.1 1 2.1 2.2.4-1.7 1.6m-19.1 2.4-2-1.2-2.1 1 .5-2.3-1.6-1.7 2.3-.2 1-2.1 1 2.1 2.3.4-1.7 1.6m-52.5-4.4-1.2-.7-1.3.6.2-1.5-1-1 1.5-.2.7-1.3.5 1.4 1.5.2-1 1M333.2 310l-2-1.1-2.1 1 .5-2.3-1.6-1.7 2.3-.3 1-2 1 2 2.3.5-1.7 1.6m-16 4.4-1.6-1-1.7 1 .4-2-1.4-1.4 2-.2.8-1.7.8 1.7 2 .4-1.5 1.3m8 1.8-1.6-1-1.6.9.3-1.8-1.2-1.3 1.8-.2.8-1.6.7 1.6 1.8.3-1.3 1.3m22.2-17.4-1.5-.9-1.6.8.4-1.7-1.2-1.3 1.7-.2.8-1.5.7 1.6 1.7.3-1.3 1.2M317 322.9l-2-1.1-2 1 .5-2.2-1.6-1.5 2.2-.3 1.1-1.9 1 2 2.1.4-1.6 1.4m.4 10.9-1.8-1-1.8.9.4-2.2-1.4-1.5 2-.3 1-1.9.8 2 2 .4-1.5 1.4M302.3 312l-1.5-.9-1.6.8.4-1.8-1.2-1.2 1.7-.2.8-1.6.7 1.6 1.7.3-1.3 1.2m-13.5 1.8-1.5-.9-1.6.8.4-1.8-1.2-1.2 1.7-.2.8-1.6.7 1.6 1.7.3-1.2 1.2M265 291.4l-1.5-.9-1.6.8.4-1.7-1.2-1.3 1.7-.2.8-1.5.7 1.6 1.7.3-1.3 1.1m2.9 43.5-1.3-.7-1.3.7.3-1.5-1-1 1.4-.3.7-1.3.6 1.4 1.5.2-1.1 1m-35.2-66-3-1.7-3.1 1.5.7-3.4-2.4-2.6 3.4-.4 1.6-3.1 1.5 3.2 3.4.6-2.6 2.4"/>
<path fill="#fff" fill-rule="evenodd" d="M355.1 291a95 95 0 0 0 4.4-15.1c-51.6-45.4-109.2-68.7-182-63.9a95 95 0 0 0-6.4 15.9 233 233 0 0 1 184 63z"/>
<path fill="#309e3a" d="m331.9 265.4 1.8 1a2.6 2.6 0 0 0-.2 1.8c.1.4.5.9 1 1.2.6.4 1.1.6 1.6.6.4 0 .8-.3 1-.6.1-.2.2-.4.1-.7l-.3-.8-1.2-1.3a5.9 5.9 0 0 1-1.4-2.3 2.8 2.8 0 0 1 1.6-3.3 2.9 2.9 0 0 1 1.7-.2 5.3 5.3 0 0 1 2 .9 6 6 0 0 1 2 2.4 3 3 0 0 1-.5 2.6l-1.8-1.1c.2-.5.3-1 .2-1.4-.1-.3-.5-.7-1-1-.5-.4-1-.5-1.4-.5a.8.8 0 0 0-.6.3.8.8 0 0 0-.1.7c0 .4.5 1 1.2 1.7l1.5 2a3 3 0 0 1-.2 3.2 3.1 3.1 0 0 1-1.4 1.1 3 3 0 0 1-1.9.2 6 6 0 0 1-2.1-1 4.6 4.6 0 0 1-2-2.5c-.3-.9-.2-1.9.4-3m-8.8-5.7 2 1a2.6 2.6 0 0 0-.2 1.6c.1.5.5 1 1 1.3.6.4 1.1.5 1.6.4.4 0 .8-.2 1-.6a1 1 0 0 0 .1-.6c0-.3-.1-.5-.4-.8l-1.2-1.3a6 6 0 0 1-1.5-2.2 2.8 2.8 0 0 1 .3-2.4 2.8 2.8 0 0 1 1.2-1 3 3 0 0 1 1.7-.2c.6 0 1.2.3 2 .8 1 .7 1.8 1.4 2 2.3a3 3 0 0 1-.3 2.6l-1.9-1.1c.3-.5.3-1 .2-1.3-.2-.4-.5-.7-1-1a2.4 2.4 0 0 0-1.5-.5.8.8 0 0 0-.6.4.8.8 0 0 0 0 .7c0 .3.5.9 1.2 1.7.8.7 1.3 1.4 1.6 1.8a3 3 0 0 1-.1 3.3 3.2 3.2 0 0 1-3.2 1.4 6.1 6.1 0 0 1-2.2-.9 4.7 4.7 0 0 1-2.1-2.4 4.1 4.1 0 0 1 .3-3m-10.8-3 5.6-9 6.7 4-1 1.6-4.8-3-1.3 2 4.6 2.8-1 1.6-4.5-2.8-1.5 2.5 5 3-.9 1.6zm-15.8-12.9.9-1.6 4 2.2-1.9 3.7a7.2 7.2 0 0 1-4.8-.6 5.8 5.8 0 0 1-2.2-2 4.5 4.5 0 0 1-.8-2.6c0-1 .3-1.9.8-2.8a6.1 6.1 0 0 1 2-2.3c.7-.6 1.7-.9 2.7-.9.7 0 1.6.3 2.5.7a5 5 0 0 1 2.3 2.2c.4.8.5 1.7.3 2.7l-2.1-.6a2.2 2.2 0 0 0-.2-1.5 2.5 2.5 0 0 0-1.2-1.1 2.9 2.9 0 0 0-2.4-.3c-.7.3-1.4 1-2 2a4.8 4.8 0 0 0-.5 3c.2.8.7 1.4 1.6 1.8l1.3.4h1.3l.6-1.2zm-68.8-17 1.6-10.6 3.2.5.8 7.5 3-7 3.1.5-1.5 10.6-2-.3 1.2-8.3-3.3 8-2-.3-.9-8.7-1.2 8.4zm-10.7-1.3 1-10.6 7.8.7-.1 1.8-5.8-.5-.2 2.3 5.3.5-.1 1.8-5.3-.5-.3 3 5.9.5-.2 1.8z"/>
<g stroke-opacity=".5">
<path fill="#309e3a" d="M181.4 218.8c0-1 .2-2 .5-2.7l1-1.4 1.5-1a5.8 5.8 0 0 1 2.3-.3 5 5 0 0 1 3.7 1.6c1 1 1.3 2.3 1.3 4 0 1.8-.6 3.1-1.5 4a5 5 0 0 1-3.8 1.4 5 5 0 0 1-3.7-1.5 5 5 0 0 1-1.3-4z"/>
<path fill="#f7ffff" d="M183.6 218.8c0 1.2.2 2.2.8 2.8.5.7 1.2 1 2 1a3 3 0 0 0 2.2-.9c.5-.6.8-1.5.9-2.7 0-1.3-.2-2.2-.8-2.8a2.7 2.7 0 0 0-2-1c-1 0-1.7.3-2.2.9-.6.6-.9 1.5-1 2.7z"/>
</g>
<g stroke-opacity=".5">
<path fill="#309e3a" d="m194 224.4.1-10.7h4.5c1.2 0 2 .2 2.5.4s1 .5 1.2 1 .5 1 .5 1.7c0 .8-.3 1.4-.7 2-.5.5-1.2.8-2.2 1 .5.2.9.5 1.2.8l1.2 1.8 1.3 2H201l-1.5-2.3a16 16 0 0 0-1.2-1.6 1.6 1.6 0 0 0-.6-.4 3.5 3.5 0 0 0-1-.2h-.5v4.5z"/>
<path fill="#fff" d="M196.2 218.2h1.6a8.1 8.1 0 0 0 2 0l.5-.5c.2-.2.3-.5.3-.8 0-.4-.1-.7-.3-.9a1.3 1.3 0 0 0-.8-.4h-3.2z"/>
</g>
<g stroke-opacity=".5">
<path fill="#309e3a" d="m206.2 214.2 3.9.2a7.6 7.6 0 0 1 2 .3 4 4 0 0 1 1.5 1 5 5 0 0 1 1 1.9c.2.7.2 1.5.2 2.5a5.3 5.3 0 0 1-1.7 4.1c-.4.3-.9.6-1.5.8h-2l-4-.1z"/>
<path fill="#fff" d="m208.2 216.1-.3 7 1.6.2h1.3l.9-.5c.3-.2.4-.5.6-1l.3-2-.1-1.8c-.2-.5-.3-.8-.6-1a2 2 0 0 0-1-.6 9.6 9.6 0 0 0-1.7-.2z"/>
</g>
<g stroke-opacity=".5">
<path fill="#309e3a" d="m258.5 233.3 2.5-10.4 3.3.8c1.3.3 2.1.6 2.5.8.5.3 1 .7 1.2 1.3.3.7.3 1.4.1 2.2a3 3 0 0 1-1.9 2.3 3 3 0 0 1-1.1.3 12 12 0 0 1-2.2-.4l-1.4-.3-1 3.9z"/>
<path fill="#fff" d="m262.6 225.2-.7 3 1.2.2c.8.2 1.4.3 1.7.2a1.4 1.4 0 0 0 1.2-1l-.1-1.1a1.5 1.5 0 0 0-.8-.7l-1.5-.4z"/>
</g>
<g stroke-opacity=".5">
<path fill="#309e3a" d="m268.4 236.3 3.5-10.1 4.3 1.5a8 8 0 0 1 2.2 1c.4.4.7.9.9 1.5s0 1.1-.2 1.7c-.2.8-.7 1.3-1.3 1.6a3 3 0 0 1-2.3.3l.8 1.2.6 2 .5 2.4-2.4-.8-.7-2.7a14.5 14.5 0 0 0-.6-1.9 1.6 1.6 0 0 0-.4-.6 3.4 3.4 0 0 0-1-.5l-.4-.1-1.5 4.2z"/>
<path fill="#fff" d="m272.4 231.2 1.5.5 1.9.5c.3 0 .5 0 .7-.2l.5-.7v-1a1.3 1.3 0 0 0-.6-.6l-1.5-.5-1.6-.6z"/>
</g>
<g stroke-opacity=".5">
<path fill="#309e3a" d="M280.9 235.9a6.8 6.8 0 0 1 1.3-2.5c.3-.5.8-.8 1.3-1.1a4.2 4.2 0 0 1 1.6-.5c.7 0 1.5 0 2.3.3a5 5 0 0 1 3.2 2.5c.6 1.2.7 2.7.1 4.3a5.6 5.6 0 0 1-2.5 3.5 5 5 0 0 1-4 .2 5 5 0 0 1-3.2-2.5 5.5 5.5 0 0 1-.1-4.2"/>
<path fill="#fff" d="M283 236.5c-.3 1.1-.3 2 0 2.8.4.8 1 1.3 1.8 1.6.8.2 1.5.1 2.2-.3.7-.4 1.3-1.2 1.7-2.4.3-1.2.3-2.1 0-2.9a2.7 2.7 0 0 0-1.8-1.5 2.7 2.7 0 0 0-2.3.3c-.7.4-1.2 1.2-1.6 2.4"/>
</g>
<g stroke-opacity=".5">
<path fill="#309e3a" d="m301.7 250.8 4.9-9.5 4 2c1 .6 1.7 1 2 1.4.4.5.6 1 .7 1.5s0 1.2-.4 1.7c-.3.7-.8 1.2-1.5 1.5-.7.2-1.4.2-2.3-.1.3.4.5.9.6 1.3l.3 2.1.2 2.5-2.3-1.2-.3-2.8-.3-2a1.6 1.6 0 0 0-.4-.6 3.5 3.5 0 0 0-.9-.6l-.4-.2-2 4z"/>
<path fill="#fff" d="m306.4 246.3 1.4.7 1.8.8c.3 0 .5 0 .7-.2a1.5 1.5 0 0 0 .8-1.5 1.3 1.3 0 0 0-.6-.7 21 21 0 0 0-1.3-.8l-1.5-.7z"/>
</g>
<g stroke-opacity=".5">
<path fill="#309e3a" d="M341.2 270.3c.6-1 1.2-1.6 2-2a5 5 0 0 1 1.6-.7 4.2 4.2 0 0 1 1.6 0c.7.1 1.5.4 2.2 1a5 5 0 0 1 2.3 3.3 6 6 0 0 1-1.1 4.1 5.6 5.6 0 0 1-3.5 2.6 5 5 0 0 1-3.9-.9 5 5 0 0 1-2.3-3.3 5.5 5.5 0 0 1 1-4.1z"/>
<path fill="#fff" d="M343 271.4c-.6 1-.9 2-.8 2.8a3 3 0 0 0 1.3 2 2.7 2.7 0 0 0 2.2.4c.8-.2 1.6-.8 2.3-1.9.7-1 1-1.9.8-2.7 0-.8-.5-1.4-1.2-2s-1.5-.6-2.3-.4c-.8.2-1.5.8-2.2 1.8z"/>
</g>
<path fill="#309e3a" d="m246.4 229 1.7-7.6 5.6 1.3-.3 1.3-4-1-.4 1.7 3.7.9-.3 1.3-3.7-1-.5 2.1 4.2 1-.3 1.3z"/>
</g>
</svg>

After

Width:  |  Height:  |  Size: 7.5 KiB

View File

@@ -0,0 +1,13 @@
<svg xmlns="http://www.w3.org/2000/svg" id="flag-icons-bs" viewBox="0 0 512 512">
<defs>
<clipPath id="bs-a">
<path fill-opacity=".7" d="M56.6 26.4H537v480.3H56.6z"/>
</clipPath>
</defs>
<g fill-rule="evenodd" clip-path="url(#bs-a)" transform="matrix(1.066 0 0 1.067 -60.4 -28.1)">
<path fill="#fff" d="M990 506.2H9.4V27.6H990z"/>
<path fill="#ffe900" d="M990 370.6H9.4V169.2H990z"/>
<path fill="#08ced6" d="M990 506.2H9.4V346.7H990zm0-319H9.4V27.9H990z"/>
<path fill="#000001" d="M9 25.9c2.1 0 392.3 237 392.3 237L7.8 505.3z"/>
</g>
</svg>

After

Width:  |  Height:  |  Size: 579 B

View File

@@ -0,0 +1,89 @@
<svg xmlns="http://www.w3.org/2000/svg" id="flag-icons-bt" viewBox="0 0 512 512">
<path fill="#ffd520" d="M0 0h512v512H0z"/>
<path fill="#ff4e12" d="M0 512h512V0z"/>
<g stroke="#000" stroke-width=".5">
<g fill="#fff" stroke-width=".4">
<path d="M281.9 162.5c-4-1.4-6.4.6-6.3 5.7.1 5 2.8 7.9 6.7 6z"/>
<path d="M285.3 153.1c-3.2-2.6-6.3-1.5-7.8 3.3s.1 8.4 4.4 7.9z"/>
<path d="M290.7 144c-2.8-3-6-2.5-8.2 2-2.2 4.5-1.3 8.3 3 8.5zm-3.5 44.2c-4.8 1.8-5.3 8.3-2.3 12.3s8.5 4.8 11.6 0z"/>
<path d="M281.6 174.4c-4.5-1.5-8.6 4.6-9.3 10-.8 7-10.6 9.2-5.2 19.7 1.1-6.7 5.5-10.3 9-10.6 3.5-.2 8.8-1 11-5.3zm14.3 26.9c-5.2 1.3-6 8.3-2.2 13.3 3.2 4.3 13.3 3.3 13-1L296 201.3zm15 42.3c.2-4.5-7-6.3-10.5-5.4-3.6.9-10.3-.1-11.9-3.9-1.2 3 .6 6.3 5.7 8 3.8 1.2 3.8 4 2.6 5.2 3 .5 11.5.5 14-3.9z"/>
<path d="M306.8 214.7c-5.2-2.2-8.3 1.2-10.2 4.6-3 4.9-11.8-1.4-14.8 5.1 4-1.7 8.2 2 10.1 3.3 5.6 3.6 16.2 2.5 17.7-6z"/>
<path d="M309.8 220.8c-5.2 3.8-7.2 8.5-7 11.6 0 3.2 4.5 10 9.2 10.5 2.8-5.7 4.2-17.6-2.2-22.1zM288.4 245c0-1.9 2.8-2.6 4.7-2 1.8.6 4.7 2.5 3.7 4.5zM260 234.7c-.5-2.3 3.2-6.2 8-4 5 2.1 5.6 6.3 3.6 7.9z"/>
<path d="M272 238.8c-.4-1.2 3.1-3.7 9.1-2.2s7.5 5.4 7.3 8.4zm-12.6-4.1c3.1-2.4 2-7-.9-8.3-5.1-2.5-3.2-9-6.5-10.3-3.3-1.2-6.4-3.5-6.5-5.8-1.7 3.2-.7 6 1.6 8s-1.8 10.2 1.1 12.4zm-67.3-1.8c-2.6-4.1-9-3.3-11.5-.5-2.7 3-2.3 7.2.2 9zm15-6.1c-1-5.5-7.6-6.2-11.2-4.8-3.7 1.4-6.2 7-3.8 11z"/>
<path d="M217.2 226c2.4-4.6-2.2-11.5-7.5-12.5-4.4-.9-9.6-.8-11.3-5.2-1 3.8 1.7 6.2 5 8.3 3.3 2.2-.6 7.7 4.7 10.8z"/>
<path d="M216.7 226.2c-1-3.3 1.2-7.8 5.7-7.5 4.5.4 7 3.6 5 7.7z"/>
<path d="M226.8 226.4c-.7-3.4 2.2-7.5 6.6-6.5 4.4.9 6.5 4.5 4 8.3z"/>
<path d="M236.7 228c-.4-3.4 2.6-7.4 7-6.2 4.4 1.1 6.3 4.8 3.5 8.5zM161 285.6c-8.4 0-10.5 2-11.7 10.6-1.5 10.8 13.2 12 11.7-10.6z"/>
<path d="M164.7 274.3c-12.9-5-20 15.5-32.7 11.9 4.6 7.3 15.7 0 19.8.7 7 1.3 22.2-1.3 13-12.6zm-8.4 28c-6.4-3-13.3 6.8-12 11.1 1.6 5.5 16.2 1 12-11.1zm-29.9 42.1c3.6 1 7.8 3 7 9.8-.7 6.8-13.5 20.6-25 21.4-11.6.7-15.7 14.7-25.7 10.8 9.3-1.8 9.3-12.3 16.6-15.6-5.3-1.9-8 10-14.8 10-6.8 0-10 10.9-18.3 10.1-8.3-.7-9.2 13.1-25.8 13.3-12.6.1-28.3 15-34 8.6 12.3-1.8 17.3-8.6 24.6-16.1 11.8-12 25.1-6.7 29.7-17.3a30.9 30.9 0 0 1-17.9 5.2c-7.7-.1-16.2 12.3-24.8 6.8 5-.6 8.3-2.8 13.5-8.3 5.4-5.6 13.3-2 19.6-7.8 9.8-9 18.2-1.5 27.6-12.8-2.6-1.2-8.3-.3-13.5 2.4-5.3 2.8-12-1.9-18.1 1.4.7-7.4 14.8-3.2 23.6-8.3 10-5.8 18.1-4 26-3.4-11 0-15.2-10.4-30.3-7.4-6.5 1.3-11.8-9-18.3-3.8.2-3.9 7-7 14-3.2 7 3.7 10-3.3 24 5.5 5.7 3.6 15.6-2.3 21.9 1.6-.8-2.4-4.4-3.9-8.6-3.5 2.6-5.4 19.6-4.7 27 .7z"/>
<path d="M137.6 336.3c-5.5-4.3-13.2.9-18.4-1.2 0 3.6 1.7 8.8 7.5 10.8a139 139 0 0 0 11-9.6z"/>
<path d="M146.3 324.1c-8.7-4.4-10.2 6.5-17 4.3.3 3.1 2.8 7 8.3 7.9z"/>
<path d="M151.4 314.2c-12.8-5-14.4 7.3-22 4.9 1.8 4.2 12.6 6.5 18.1 5l4-10zm17.6-53.9c-3.4-4.8-10.5-.9-11.7 4.8-1.1 5.6 1.7 13.5 6.4 11.8z"/>
<path d="M177.7 245.2c-6-1.3-12.7-.7-12 5-2.2 1-2.9 8.5 3.3 10.1l8.7-15z"/>
<path d="M181.6 241.3c-5.8-6.7-12.3-6.6-15.9-3.7-6.6 5.3-13 2.2-13.3 7.5 4-3 7.6.6 10.8-.5 3.3-1.1 5.7 5.2 14.7 2.5zm-14 101.4c.9 1.6 6.3 2.4 9-.4 3.4-3.7-.4-13.8-6-14.6-5.5-.7-6 11.5-3 15z"/>
<path d="M161.3 343c8 2.8 11.3-3.7 7-7.9a79.6 79.6 0 0 1-7 7.8z"/>
<path d="M131.7 353.7c-1.5 4.6-9.3 5.3-18 19.4-8.9 14-17.3 8.1-19.4 17.8 10.5-8.5 18.8-2.9 25.1-11.3 9.6-12.8 17.4-11 21.1-19.6 5.3-12.3 28.4-12 29.6-31.4-7.7-1.5-32.4 19.4-38.4 25.1zM330 164c10 3.3 10.3 16.3 21.8 20.6 11.6 4.2 12.7 14.5 22.1 12-8.8-2.4-8.2-12.5-17.3-15-10.8-3-14.8-19.4-23.4-21.9m42.8 72.5c1.8 4 1.5 11.1-4.7 13 3.4 2.2 8.4.1 11.1-4.5-4.1 9.2-1.3 17.5 5.2 19-3.1-6.3 3.9-9.3 1.6-13.5 4.2 1.8 7.8 7.4 7.7 11 5.4-6-4-14.1-2.3-19.8zm-65 64.5c-6.2-5.4-8.8 1.4-11.8-1-2.8-2.1-6.6-2.4-8-.2 5.2.1 2.7 4.2 12.9 5.2-10.2.7-8.4 12.1-15.2 11.6 7.3 6.9 11-6.2 17-4-1.8.5 2.7 4.6-.4 10.1 5-.1 7.1-7.1 7.8-10.8zm-135.5 58.6c-2.3-1.8-8.8-2.7-11.3-1.2-2.5 1.5-1.6 1.9 1.4 2.1 3 .3 6.9 5.1.4 5.4-3 .1-2 7.4-8.3 8 2.5 3 9.9 1 12.5-2.5-.5 2.9 3.3 5.4 1.8 8.8 4.6.5 2-9.4 9.3-8.9-3 .4-1.8 7.2 3.5 5.4-3.1 1.5-1.5 5.2 2 4.3-2.2.7-3 3.6.1 5.3 3-4.2-.3-19-11.4-26.7zM449 216.7a17.4 17.4 0 1 0 0-34.8 17.4 17.4 0 0 0 0 34.8z"/>
<path d="M358 237.7c5.3-5 13.3-7.5 18.8-3.7 5.5 3.7 23.9 8.2 33 2 9-6.3 13.2-9.6 17.2-8.8 3 4.5 6.7 6.6 11.2 7 1.4 1.5 6.3 2.8 9 2.4 4 1 9-.3 12.9-4.5 6 .8 11.6-3.7 13.8-10.5 6.4-.7 6.8-7.9 2.7-12.6-3.7-.8-.8-13.5-14.5-11 5.7 3.5 1.3 10.6 6.1 13.8-3.2 0-7.4 1.4-8.4 6.3 1.2-3.4-.2-5.6-1.1-6.4.1-2.9-6.3-10-12.3-7.4 4.3 1 1.9 8 5 10.6a8 8 0 0 0-6 3.2c-1.7-2.9-7.4-5.9-11-6.1 0-1-.1-3-.6-4a18 18 0 0 1-2.2-11.2c-3 3.2-5.6 7.8-7 11-4.8-3.2-16.6 1.5-22.2 2.8-5.5 1.3-24-1.8-28.3-6.3a47.9 47.9 0 0 0-20.4-9.5c-10.7-3.1-10.8-14.8-22.6-22.9-.2 14.6 21.9 60.8 26.9 65.8zm-123 111a16.8 16.8 0 1 0 0-33.6 16.8 16.8 0 0 0 0 33.6z"/>
<path d="M194.7 335.8c3.4 4.4 9.2 4.1 11.6 3.7 2 5.3 8.4 5.2 11.2 8 2.7 3 12.2 2.7 15 1-2.6-.2-5.9-1.7-9-4.3-3.8-3.2-2-9.5-5-11.8 2.2-2.5 2.6-6.7 2.1-8.3 2.4-1.4 4.2-3.6 4.4-4.8a15 15 0 0 0 9.3-4c2.1 2 7.5-.6 10.4 2.8.7-8.3-7.3-12.7-12.5-10-2.2-1-7.8-.3-8.8 1.2-1.8-.8-6.7 1.7-9 3.4 2.6-1.4 3-5.5 2-7 2-1 4.5-3.8 4.7-6 3 .5 7.5-1.5 9.6-1-3.3-4.2-8.7-5.7-14.2-5.4-5.8.4-8.2 4.4-9 8.7-3.3 2-4.5 8.8-3.2 11.2-2 0-3.8 1.8-4.5 2.9a26 26 0 0 0-9.1-2m1.2-6.8c-1.2-3.3.3-6.2 1-8.8 2-6.6.8-8.3-5-7.4a46 46 0 0 0 4 16.2z"/>
<path d="M187.5 291.4c1.5 1.6 6.9 2.3 7.4-2.5.7-5.5-1.5-7.6-6.3-5.5-.4 1.3-.8 6.4-1 8z"/>
<path d="M188.7 283.2c2 .8 6.3 2.5 8.7-2.2 2-3.9-.6-6.9-4.8-6.6-1 1.1-3 5.1-4 8.8z"/>
<path d="M192.4 274c.5 1.5 5.6 6.5 9.4 2.9 3.7-3.6 3.7-9-1.9-11-1.5.2-6 5.5-7.5 8.1z"/>
<path d="M199.9 265.8c1.1 3.2 4.6 8.6 11.2 6 6.5-2.4 3.7-10.6.7-12.2-1.7 0-8.9 3.3-12 6.2z"/>
<path d="M211.8 259.6c-.5 2.7 0 10.3 9 10.1 8.8 0 6.3-10.5 4-12-3.6 0-9.7.1-13 1.9z"/>
<path d="M225.3 258c-1 2.2-3.3 16.2 14.1 12.4 2.3-.5 8.2-13.5-14.2-12.3z"/>
<path d="M234.8 259.3c-1.8 1.8 2.8 16 14.6 13.6 11.8-2.4 1.9-15.9-14.6-13.6z"/>
<path d="M244.8 261.4c-1.8 4 1 15.5 15.5 15.5 13.3 0-.6-15.2-15.4-15.5z"/>
<path d="M256.3 264.8c-1 2.2-2.1 14.4 15 15.5 12.5.7 9.5-16.9-15-15.5z"/>
<path d="M274.7 270c-2.1 3.8-4.4 13.2 14.5 14 12 .4 4.6-13.8-14.5-14z"/>
<path d="M290.4 272.9c-2.7 3.7-.7 11.1 6.3 12.5 8.8 1.8 10-6.5 4-10.5s-10.3-2-10.3-2z"/>
<path d="M299 274.6c-2 3.5-.8 12 12.5 12 2.8 0 13.3-10.7-12.5-12zM195.9 438.4a19.5 19.5 0 1 0 0-39.1 19.5 19.5 0 0 0 0 39z"/>
<path d="M339.1 154.3c-1.5 1.5-4.6 6-5.2 7.8-6.6 19.6 10.9 34.3 21 55.3a61 61 0 0 1-5.5 59.2c-4.3 5.7-3 7.3-8.5 13.1-2.1 2.2-4.5 5-3.8 13 3.6-1.2 8.6 2 9.6 4.8 2.5-1.2 6-.7 7.3.8 4.2-2 7.8-1 11.5 3 3.3-.5 6.8 0 10 3.5 1.8-3.5 5.3-4.8 7.8-4-.2-4.5 4.3-7.8 8.3-6a7.4 7.4 0 0 1 9.6-8.8c4.5-3.5 13.5-3.8 18 1.5-8-2.3-7.7 6.3-14.5 5.5 1.8 5-2.8 8-7.3 9.5 2.9-1.3 6-3 7-1.2 2.5-2.2 7.6-1.4 8.8-.3 3.4-1 6.6-.2 8 3.8 4.6 2.8 7.6 9.8 4.3 15-1-5.5-4.7-5.2-6.2-7.5-3.6 1.3-7 1.3-8-1-2 2-8.9 3.8-11.9.8-1.1 4.5-5 8.3-9.5 8.3 1.2 3.5-2.3 9.5-5 12.5 4.2 2.3 3 7.3 2 10.3 6.5 1 1 6.8 12.3 10.6-5.6 1.7-16.4 0-17.9-6.8-5.5-.3-9.3-5.8-9-11.6-4.3-4-5-9.7 1-13.8-5 1.5-7.8-6.5-15-3.2-3.7 1.6-13.2-1.2-13.1-4.5-1.5 2.5-10.7 1.5-12-2.8-3 1.6-10-1.1-9.9-5.3-3.9 1.8-9.1-1.4-8.9-5.4-3.6-.5-4-3.7-3.8-6.5-3.2-1.5-2.3-4.7-1-8.4-2.3-2.5-1.3-6 .4-9.3-2.5-2.5-2-5.5-1.2-9-12.1-1-27.2-4-61.8-14.6-52.2-16-66.3 21.6-54.8 45.2 13.4 27.2-1.5 33.1 3 53.5 4.8 1 7.3 5 7 9.3 2.9 0 5 2.7 4 7.7a8.7 8.7 0 0 1 7.4 2.3c1.7-3.3 7.5-4 10.5-.2 6.6-.5 9.8 4.7 9.6 11.3a17.6 17.6 0 0 1-1.5 18.8c.3-2.6 0-6.4-.2-8.7-.2-4.1-6-5-5.4-8.4-3 .3-5.9-1.4-6.9-3.6a6.6 6.6 0 0 1-6.4 1.2c3.4 1.5 6 7.6 5 11.6 1.8 3 1.4 8.5-.7 11-1 4.8-4.8 6.6-9.7 4.4a8.4 8.4 0 0 0 3.7-7.5 9.8 9.8 0 0 1-2.8-6.2c-4.9.8-11.7-3.4-13-5a19.5 19.5 0 0 0-19.4 19.6c-.5-4-5.6-8-5-11.4-3-9.3 1.3-18 13.6-19.7-1.5-3.5 3.7-7.2 1.7-11.2a94.8 94.8 0 0 0-14.3-19.6c4.3-7.3 3-17 .5-23.1-3.6-8.7-7-6.5-19.8 7.5-21 23-48.8 16.6-73.4 31.7-6.5 4-13 5.5-6-1.5s25.6-14 37.7-20.1c22.6-11.3 41.7-30.2 49.2-66.8 17.7-86.2 82.9-57.8 124-41.7 38.7 15 31.7-19.1 12.1-39.7-23.5-24.7-18.8-44.2-7.8-59.8 19.9-2.7 57.9 4.2 50.2 10.8z"/>
<path d="M409 366a21.5 21.5 0 1 0 0-43 21.5 21.5 0 0 0 0 43z"/>
</g>
<g fill="none" stroke-width=".4">
<path d="M327.1 155.3c-4.8 21.1-.8 30.7 6.3 40 14.5 19.2 26 63 9.5 91.6"/>
<g stroke-linecap="round">
<path d="M352.2 262.2c2-.8 5.8-3.1 6.7-7.3m-5.2-1.9c.6-3.6 6.3-5.2 6.4-9m-6.3-5.2c-.3-3.7 5.7-7.1 4.8-10.9m-8-2.6c-.5-2.1 5-6.2 3.5-9.6m-7.7-3.6c-1.1-2.4 2.7-5.1 1-7.7m-7-2.9c-.4-1.6 2-5.2.7-7.3m-6.7-5c.5-.7 2.5-2.2 1.7-4.1m-5.9-5c.9-.5 3.3-1.3 3-3.1"/>
<path stroke-linejoin="round" d="M204.5 416.8c-5-1.8-11.3.7-12.5 5m3.7 3.9c.7-4.3 7.2-6.2 9.2-4.2-4.1-2.2-6.1 5.8-2.5 6m33.8-101.1c-3 1.5-4 7 0 11.1m4.5-9.9c-2.1 1.8-2 7 1.1 8.3-2.6-1.9 0-5.1 2-5.3 1.8 0 3 2.2.8 4.4m172.5 5c-7-1.8-12.7 6.3-6.3 13.6 0-7 5-11.7 11-10.4m-2.7 4.8a2.6 2.6 0 0 0-2.7 2.7c0 1.4 1.2 2.7 3.1 2.7 1.3 0 2.3-1.4 2.3-2.6m22-157c1.2 4.4 7 6.1 11.7 5.1m0-2.8c-3.6.2-6.6-3.2-6.4-6.1 0 2.1 5 3.1 6.4 1.7"/>
<path d="M206.3 339.5c-1-2.5 3-5 3.1-7.4.2-2.4 4.6-4.2 9 .3m-2-26.8c-1 .4-1.7 1-2.4 1.2m11 12.5c-1 0-3.3 0-4.5-.9m.1 5.7c-.9.4-2.8 1.2-4 1.4m-39 74.4c-.2 2.3 2 5.6 3.3 6.6m6.4-12c-1.2 2-2 5.2-1.2 7.4m20 .2c-2.3-1.5-.8-5.4-1-8-.3-2.5 2.6-6.5 8.2-3m-28.4-3.3c2.3-.4 4.7-.3 6.2.3m22.5-7.5a8.1 8.1 0 0 0-1.4 3.9m12-4.2c-1.8 0-3.3 1.3-4.1 2.6M199.8 316c2 .7 7.2 3.9 7.4 7.2m13.9-23.6c-6.2 0-8.5-6.4-3.9-6.4m15 14.8c-2.4 1-1.3 5.2 2 7.2m-16.7 32.3c-1.2-1.5.3-6 4.2-4.6m5 50.4c.2-3.8 5-6 7-1.8m-24.9 12.7c-.3-4.2 1.8-5.6 3.7-5.8 1.9-.3 4.6 1.3 5.8 4m-47 5c.3-2.5 2.5-5.2 4.7-4.8M401.2 296c-1.7 1.2-2.7 6.5 3.5 7m-13 1.8c0 .6.7 1.5 1.2 1.8m28.3 8.2c-1.6-1.3-5.8 3.8-2 7.5M381.3 357c-1-3.6 2.4-4.5 5.5-3.8m-13.5-21.6c1.9-1.2 3.8-2.6 6.1-3.2m-7.1 17c0-3 1.5-5.5 2.9-6.2m8.1-28.4a17 17 0 0 0 2.4 9m27.5-8.8c-1.8.6-3.4 1.3-4.1 2.8m2.1 7.5c.9-.7 1.9-1.6 2.3-2.2m45.2-107.4c0 3.5-4.4 5.4-7.3 3.2m16.8-3c2 1.4 8.7 0 7.1-3.9M460 232a9.7 9.7 0 0 1-4.7-3m18.6-7.4a7.3 7.3 0 0 1-5-.5m-30.7 13.1c1.3 0 4.3-.5 6.3-1.6m-10-20.6a5.4 5.4 0 0 0-3.8.7m29 5.4a10 10 0 0 1-3 5.1"/>
<path stroke-linejoin="round" d="M430.2 223.7c3.1-1.4 7 9.3 14.5 5.5m.7-11c-1 1.3-1.7 3.4-1.8 5.3"/>
</g>
<path d="M295.2 201.8c1-.1 2.8-.5 3.1-1.8M166 318.8c3.8 2.1 6.4 5.8 4.8 11.2m167.8-139.6c1.2.7 5.4.7 7.8-.2m3 2.7c0 1.7.4 8.4-3 9.8m1.3-1c3.1 1 9.4.7 11.4-5m-4.4 4.8a6.9 6.9 0 0 1-2.8 10m4-5.8c3.7 1.2 12.1 1.3 11.2-5.8m-2.8 5.8c2.5 3.5 13.5 7.6 11.8.3m-22 9.8c4.3 1 10.3-1.9 7.8-9.4m12 3.8c.7 2.9 14.7 5.9 12.8-.6m-2.6 3.7c2.6 6 16.6 5.6 12.2-2.5M394 217c2.8 3.4 15 1.4 10.2-6.8m-.1 6.7c7.6 5.7 16.5-2.5 6.9-8.6m4.4 6.7c6.7 5.4 15-4.4 9.1-7.2m-62.8 5c2.2.6 6.7.3 7.7-3.6m-1.7 2.6c-.2 5.8 9.4 8 11.8 1.4m-3.2 3.5c1.8 3.8 10.2 5.3 11.6 0m-1.4 2.4c1.4 3.8 8.7 3.4 10.7-.5m-2.7 2.5c2.3 5 11.6 5 13.7-2.2m-1.6 3.1c3.6 2.3 11.4 1.4 10.8-5.6m-1.5 5c5.4 4.4 13 .1 9.3-7.3m-.4 13c2.9-.4 4.4-6.2 1.4-7.7m-68.3 8.8c6-3.3 7.1-8.8 3-14.2m2.1 8.7c3.8 2.2 11-.2 12.2-5.7m-7 6.3c2 2.7 2.5 6.1-.3 9.3m2-5.8c6.7-4.2 15 3.5 8.8 8.2m-1.1-8.6c1.5-.4 4.1-3.1 4.4-6.3m-1.4 9.2c2.7-2.9 21.6 3 9.7 9m-1-17c3.7 1.5 5.6 6.6 0 8.4m4.8 4.3c4-4.2 16.6-1.5 12.1 3.7m-3-5.4c2.2-7.6 15.7-2.9 11.3.3m-14-8c.3 1.6.4 5.3-2 7.3m13.2-8.7a6 6 0 0 1-.7 5m9.3-5c.7 1.5 2 4-.8 6.2m-106.7-63.9c.1 7.2 2.6 12 12.3 7.4m-9.3 1.2c-4.8 6.4.6 13.3 10 6.4m-24.7-3.3c6.5 7 18.2 1.9 10.7-8.8m7.9 14.8c-1.3 7 4.4 8.3 9 5.2m-33.4-10c1.2 6.9 8.3 12.4 15.2 8M304 188c0 9.9 13.7 11 16.8.7m-5 6.3c4.5 9 14 5.4 17.2-.1m-27-14.5c1.8 4.5 5.3 9.4 13.5 5.7m-38.6-7.8c1.1 3.7 7.7 8 15.2 3m-10.5 1.7c-4 5.9 4 11.4 13.6 2.6m-8.9 4.7c1.7 8.2 5 14.9 16.7 4.2m-5.9 4.3c4.3 5.3 10.8 8.5 17-.4"/>
<path d="M322.7 200.3c-.4 6.3.9 9.4 5.8 9.2 3.8-.2 7.5-3.3 9.6-6.6m-10.5 6.6c-.1 7.1 5.5 12.8 16 5.5m-11.6 2.9c-2 5.4 4 14.2 15.8 9.6m-40.8-24c-.8 7 5.7 11.6 16 2.7m-11 5c.4 5.7 6.8 12.5 16.2 2.7m-11.7 4.5c-.7 9.6 8.2 12.4 15.7 5m-29-12.2c2 .1 3.5-1.6 4.5-2.9m-.3 10c1.7.3 4.7-1.3 5.7-3.3m-1.3 14.7c2 2.1 8.8.6 9.6-2.3m-2 2.1c3.7 8.8 13.7 8.5 17.9-1.5m-2 3.6c2 5.1 6.7 8.4 14.5 6.6m-10.7-1.4c-4.4 7.2 1.4 15.6 11.2 7.3m-8.8 3.4c-.5 4.5 3.7 9.7 9.3 10.3M323 234.3c-1.5 10.2 5.8 15 15 9.7m-25.6-4.8c2.4 1.9 6.6 2.1 10.6.6m5 6c-2.3 8.5 6.5 14.6 14 5.1m-26.2-10.3c0 4.4 4.4 9.2 11.8 7.8m20.7 8.8c-5 3.4-6 9.4 1 13.3m-13.3-15c.2 5 2.6 8 8.3 8.4m-15.7-11.1c-7.6 6.9-.2 15 8.8 8.1m-3.6 2.2c-2.5 7.9 7 12.7 12 4.6m-27.5-21.5c-2.8 7.8.7 13 7.1 12.5m-17-14c.3 4.7 4.3 6.3 8.9 5.3m-6-.4c-3.5 6.6 1.7 10 8.5 7.6m20.6 14.5c-1.1 4.2-.5 7.2 5.6 8.6m-5.2-2.7c-7.5 3.4-8 10.6-2.3 15.2m-3.7-23.1a7.4 7.4 0 0 0 1.1 12m-34-35c-4.3 4.3-.3 15.9 9.2 9.5m15.2 5.2c-5.8 4.8-3.1 13.5 6.4 11m-16-14.6c-3 8.5 0 11.5 6.7 11.7"/>
<path d="M295.4 246.4a8 8 0 0 0-1.4 11.9c2.2 2.5 6.5 1.4 7.8-1.9M284.6 243c-5.7 7.4 0 16.2 8.2 13.6m22.7 8.4c-5.9 2-10.4 7.5-6.7 12.1 2 2.8 11.4 3.2 14-7.5m-18-11.5c-3.3 4.9-2.2 9.5 4 11.9m-4.3-2.8c-3.6 2-6 4.4-5.2 8.8m-3-16.4c-1.3 5.9.3 9.5 4 11.3m-4.1-4.3c-5.6-.4-8.5 2-6.6 7.5m.5-6.1c-5.6-2-6.4-6.8-4-11.8m-.8 7.4c-6 .2-8.7 3.2-8.7 7.4"/>
<path d="M277.1 240.1c-4.4 1.9-5.8 7.8-4.1 11 1.6 3.3 6.8 3.6 9.9 1.4m-18-17c-4.1 4.5.5 13.3 7.7 11.1m-18-14.7c-3.8 5.3.3 14.1 10 11.6m.5 24.5c-1-6.3 5.5-10.4 13.5-2.3m-3.9-12.7a9.9 9.9 0 0 0-3.1 8.3M244.2 229c-4.1 7 .9 13.5 9.8 11m13.5 6.5c-6 5.9-4 11.8.5 15.2m-4.3-8.3c-9 .1-9.4 10.4-2.1 13.7m-4.7-24c-3.6 2.5-4.8 9.4 1.5 12.2m-1.7 3.2c-3.8-1.7-8.3.4-8 4.8m2.3-4.6c-3.4-8-13.3-6.7-12.4 1.6m15.2-11.6c-2.2.4-6.4 1.7-8 5m.6-14c-4 4.5-1 10 2.3 11M234.4 227c-.7 5.4 1.4 8 8.2 7.6m-5.8-.7c-2.6 6.6.9 9.4 7.7 9m-6.2-1c-4 4.8-1.2 10 2.7 12.1m-4.6-6c-7.1-.9-8.2 7.4-5.9 11.3"/>
<path d="M230.7 226.3c-4.4 1.9-7 7.4-4.6 10.8 2.4 3.4 7.2 2.3 9.8.5m-8.3 1c-3.6 5.5-.3 9.7 3.6 11.3"/>
<path d="M213.6 225.7c-3 3-1.1 9.1 5.9 9.3 5.6 0 8.5-5.3 6.8-9m-7.8 9c-2.3 5-.9 10.4 7.6 9.5m3.7 7.9c-5.3-2.4-12.3 0-9.3 6.3m-.8-15.2c-2.1 3-1.3 7.3 1 10m-1.3-2c-3.6.6-7 2.5-4.8 8m-.5-4.5c-4.5-1.3-10.3 2-6.8 6.6m-.8-4.4c-3.8-.6-8.5 3.5-4.7 7.6m-1.5-3.4c-3.5 1-7.7 5-4 8m21.7-27.7c-5 2.3-5.6 8-3.2 12m-2.1-22.4c-7.5 2.9-7.4 13 .9 16m-3.5-2.2c-4.6 2.7-5.4 7.7-2.4 11m-5.5-28.6c-3 1-2.8 10.3 5.2 10m-13.5-6.8c-6 4 1.2 14.2 11 6.9m-5.4 2.5c-.9 4.1.3 8.7 7 9.2m-6.6-3.7a6.5 6.5 0 0 0 3 12.3m-18.2-21.2c-6.1 5.7 5 10.6 9.2 2.4m-17.7 7c-3 3.7 7.5 13.2 12.1-2.7m1.2-.3c.2 3.8 2.5 6 7.1 6.3m0 3.6c-7.5 1.2-9.9 10.5-1.6 12.5m-12.2-13.7c-.2 3.5 3.4 6.4 7.6 5.8m3.7 7.6c-6.8 1.5-7.6 10.3-1.6 9.8m-3.1 8.2c-5.7-1.7-5.8-8.4-.8-11"/>
<path d="M184.7 277.3c-4.8 2.8-2.9 9.8-.4 10.8s4.5-.3 4.8-2.4m-.4 9.6c.5 3.3-11.6 2-5.4-8.1m0 8.7c-4.1 6.4 2.5 11.6 6.7 6.2m-6.2 1.5c-1.6 5.2 4.6 8.9 8.6 4.9m-22.1-53c-2.3 4.6 9 6.3 9.8-3.2m-13 10c-2.2 9 14.8 7.2 10.4-4.5m.4 6a8 8 0 0 0 11.3-6.1m-5.1 6.4a9.8 9.8 0 0 0 4.6 6.1m-12.8-3.7c-.7 4.9 4.2 8.9 9.8 8.5m-9-3.8c-2.7 3.8-3.5 11 5.1 11.6m-18.2-10.3c-1.4 3.9 6.8 7.9 11.6 1.5m-14.1 8.4c-.7 3 6.7 7 10.8-5.6m-3.3 6.4c1.8 3.1 7.7 5.6 11.3-.5m-5.9 3.7c-1.5 4.4 2.7 8.6 7.7 7.3m-17-8.3c-1 6.3 6.2 10 10.7 6.7m-15.6-4c-2.1 8.1 8.2 11.1 12 5.1m-2.5 2.4c.3 4.5 7.4 8.4 12.9 4.6m-25.5-.8c-.5 2 8 4 9.2-3m-4.3 4.7c2 5.2 8.8 6.4 12.7.1m-2.3 2.5c.9 4.8 7 7.5 12.5 4.2m2.2 1.9c-1.4 6.4 5.3 11.5 9.4 8m-20-9.1c-2 7 6.7 11 11.6 7.1m-22.2-10.7c-.5 6.6 4.6 10.5 10.5 7.6m-21.7-7c-1.7 4.3 7.6 7.8 12 4.2m-17.8 7.5c2.4 2.8 10.7 0 11.5-6.1m-2.3 4.5c3 3.5 10.2 5.4 13-2.1m-2.4 3.9c-.2 5.4 9.5 9.3 12.6-.7m11.4 2c-.9 2.6 1.2 6.8 5.5 7.3m-13.5-9c-.6 3 3.8 7.3 8.4 5.6m1 1.2c-1.3 3.3-.3 8 4.1 8m-3.7-1.9c-3.3 2.8-2 7.7 2.8 7.9m-4.5-3.2c-4.7 3.1-3 10 3.1 9.6m-17.2-23c0 6.8 8.4 7.8 10 1.6m-3.2 4c-1.3 4 2 7.9 7.1 6.8m-6.1 41.7c1.1 1.6 5.8-1.2 4.5-4-1.2-2.7-6.2-1.2-5.6 1.7m4.5-2.8c.6-5.5-6-6.4-7.6-1.6m2.4-2.8c1.7-2.7-3.9-6.5-6.1-2.5m2-1.6c1.5-4-4.8-5.8-5.3-2.1m-1.4-5.3c.8-2 7.8-.8 4.8 3.4m5.4 5c2.8-2.5-1.9-7.7-4.8-5.8m23.4 13.5c-2.2.2-4.5 1.6-2.9 6.3 1.2 3.2 6 3.4 6.7 1.4"/>
<path d="M199 372.9c-2-1.4-6.7 1-4.6 5.4 1.6 3.4 5.7 2 6.3.3m-13.6.7c1 2 6.4 1.1 7.3-1m-3.7-5.2c1.2-.7 3.2.2 3.7 1.2m-4-32.1c-3.7 2.4-1.4 9.6 4.2 7.8m-5.4-2c-2.9 2.3-.2 9.4 5.2 6.7m-4.3 0c-2 2 0 7.6 5.2 6.6m-6-3.8c-1-.5-4-.1-5.3 1.7m2-27.1c-2.7 2.6-1.4 8 3.8 8.4m-4.7-3c-4 2-4 9.9 4 10.2m-4.3-1.3c-2.2 1.8-1.2 8.6 4.5 7.7m-2.7-.2c-.8.8-1 2.8-.3 3.7m-2.2-6.3c-2 0-4.7 1.5-5.4 3.6m-3.6-7.3c.8-2 7-1.9 7.4 4m.6-7a4 4 0 0 0-3 2.7m.3-21.1c-2.7 2.4-4 10.1 4.2 11.6m-9.6 4.3c0-2 5.6-3.8 7.5-.7m-11.1-10.5c.8 1.5 4.7 3.7 7 2m-27.2-14.3a6.2 6.2 0 0 0 7 6.4c4.2-.5 5-4.2 3.8-6.6m-3.2 6.7c-2.7 3.4.7 8.2 3.8 6.8m-.6-9.2c1.6-.6 7-1.4 8.6 1.1m-26 0c-1.3 1.8 6.5 3.7 9 0m-2.5 2c-.3 2.4 1 6.7 7.4 5"/>
<path d="M159.5 334.6c1-2-3.8-5.6-7.4-1.7-3.7 3.9.5 8.3 2.7 6.8m-12-13.5c-2 3.3 5.4 9.3 9.5 3.7"/>
<path d="M138 331.9c-2.7 2.7.6 7.6 4.5 6.1 4-1.5 3.6-5.6 2.7-6.7"/>
<path d="M132.8 336.9c-2 2 0 6.5 3 6.5s4.7-2.3 4.1-5.2m5-1.7c-.5 3 3.8 5 6.6 2.2m.1-5.2c.4-.7 0-1.7-.6-2.2m-22.7 9.5c-2.5 2 2.8 7.4 6.1 2.4m12.8-3.5c-1.6 1.5.9 5.5 3.4 4.3m-12-1.5c.3 2.7 5.6 4.7 9 .6m-6.2 2c-.8 1.8.9 4.5 2.9 4.1m47.1 11.5c-2 3.8 4.3 8.3 8.8 3.7m-4.3 2c-1 2 .2 5 2 6m-7.9-1.7c.5-1.8 3.2-3.6 5.6-2.7m-8.8-2.2c.3-1.7 2.6-3.4 4.3-3m143.5-75.4c-8.9.2-5.1 14.5 2.5 11.6m-5.4-1c-1.7 2.9 1.7 7.5 5.4 4.8m-1 .5c-2.6 4.4 6.8 11.1 10.6 4.2m-3 2.7c0 4.1 12.2 6.7 10.4-1.5m-1.1 4.5c2.8 4.9 13.6 5.4 12.5-2m-2.4 5.1c2.3 3.3 12.8 5.3 12.5-1.5M320.3 275c1.5 3.9 6.7 5.3 12.3 3m-15.6-.2c3.6 2.2-1.6 12.5-7 8.4m7-2c4 1.8 8.7.5 10-5m-2.3 4.2c.4 2.9 4.5 5.2 10 4m-19.7-1c5 4.3-2.2 13-5.5 9m7.4-5.7c2.4 1.7 8.6.7 9.2-4m-2.8 4c.5 3 3 4.1 6.3 4.3m-14-.2c2.5 3.5 8.7 4.6 11.5-.1m-2.8 2.6c-.2 3.4 3.5 6.2 7.4 5.4m-21 2.2c3.2 1.6 6.7-4.5 4-8.8m-.3 15.3c4 .3 4.4-5.7.8-9m8.1 14.4c3.3-.8 2.3-8-5.6-8.5m15.5 13.8c3.2-.9.7-8.8-8-8.3m20 11c2.1-3.2-5-8.8-10.7-5.9m16.6 10.5c3.9 1 6.5-9.2-5.8-7.6m13 7.6c3.3-1 5.7-7-4.2-5m11.7 5.5c3 1.5 4.4-7.3-4.8-5m-45.8-22.4c3.7 2.1 9.6-.4 9.1-5.2m-1.5 4.2c1.3 2.2.8 6.6-1.6 7.8m2-2.5c2.5 1 5.9 0 7.9-4m-3.5 4c.7 1.7 1 5.2-.6 7m1.2-4c2.8 1.5 6-.5 7.4-3.4m-1.7 2.5c2 1.2 3.7 7.1.4 9.5m1.8-2.7c2.4.1 6 .1 8.2-3m-1.6 1.7c2.1.6 4.6 4.2 3.7 7.3m.2-1.1c2.4-.3 6.5-2 7.6-4.8m-1.1 1.9a6.5 6.5 0 0 1 3.1 6.3m0-2c2.4-.2 4.5-1.4 5.2-4m-.7 1.7c1.8.6 4 2.6 4 5m-.2-1.5c1.8-.3 3-1.4 4.2-3.1m4.7-.3c2.3 2.3-.7 9.8-5.4 8.4m-42.8-160.6c-4.6 2.8-17.8 2-11.3-9m12.6 1.6c-9.2 3.7-20.5-3.4-8.7-11m-3.1-2.5c-7.7 0-12.8 12.3-2.5 16.5m-27.3-11.4c-2 4 5.2 8.2 10 4.3 3.9-3 3.6-11.2 1.3-14.3M281 160c-2.5 8.3 16 8.8 13-4.4m-14 16.7c.6 6.3 17.7 4.3 12.2-8.4m2-3.5c1.4 1.9 5.1 5.1 11.5 4.5m-8.5-13.4c.6 2.2 4.4 4 9.3 2.3M125.9 342.6c-4.4 3.1 2.3 8 4.7 2.6m-8.1-.2c-4.3 3 2.3 8 4.8 2.6m-8.4-.3c-4.3 3.1 2.3 8 4.8 2.6m-8.6-.4c-4.1 2.2.7 7.6 5 2.8m-9-.8c-4.2 2.2.7 7.6 4.9 2.9m16-9.3c0 3.2 6.1 4.5 8.3-.3M136 348c-1.9 2.4 1.6 5.4 3.5 4.3m-11.6-4.7c-.2 2.7 5.1 4.2 7.7 1.3m-4.8 1.5c-1.7 2.2 1.6 5.2 3.8 4.3m-10.2-4.7c.2 2.2 3.2 4.6 6.5 3.2m-4.6-.3c-1.2 1.1-.6 3.8 1.2 4.6m-7.7-4.8c-.5 2 2.8 5.4 6.2 3.2m-5.5-1c-2 1.7-1.8 4 .8 4.4m-5.6-4.6c-.3 1.3 1.4 3.5 3.6 3.2m-14.4-3.3c-2 1 3.2 6.5 6.4 1.5m-11.3.8c-2.5 1.2 3.7 7.2 6.5 1m9.8-1.3c-2 .5-3.2 3.3-1.6 4.4m-4.8-3.4c-.2 1.2 2.1 3 4 2.3m-5.6-1.8c-2 1.2-1 4.5 1.3 4m-8-1.8c-1.8 1.3-.6 4 1.8 3.3m1.4-3.5c0 .7 1.6 1.8 2.9 1.4M95.4 359c-2.2 1-2.1 6.5 5.3 3.5m-10.3-1.3c-3 1.5-2 5.7 4.7 1.7m.5.3c-.8.6-1.7 3.4 1.4 2.3m-7-1c-1.3 1.1-.5 3.5 2.3 2.6m-8.8-2.2c-2.3 1.3 2.7 3 6-.4m-4.5 2c-1 1-1 4 1.6 3m-8-1.8c-1.5 1.2 1 2.7 5.8.6m-4 1c-1.7 1.5-1.5 3.3 1 2.8m-6.1-2c-2 1.8.8 3 4.2 1.6m-4.2.4c-3.3 1.5-1.9 4.3.2 3.2m111 6.4c-.8 1.7 1.7 3 4.1 2.7 2.3-.4 4.5-2.3 2.8-5m0 3.3c2.3 1.8 6.4-.2 6.4-2.9"/>
</g>
<g fill="#fff" stroke-width=".4">
<path d="M332 116.7c-10-5-30.9-14.4-36.8-6.8 5.4-2.3 21.2.1 34.3 12.2z"/>
<path d="M338 116.1c-11.5-13.5-18.4-10.5-26.7-15.1-7.9-4.4-20.4-5.3-22.8 1.7 11.5-5.6 22 3 28.4 4 9 1.4 14 8.3 16.6 11.5l4.6-2zm43.8-1.7c-6-13.8-18.9-10.2-24.6-16-8.3-8.6-29.2-16.5-37.9-10.6 19-1 27.2 13.1 37.4 18 7.3 3.6 15 11.1 25.1 8.6z"/>
<path d="M359.2 112.9c-10.3-12.8-26-24.1-33.4-19.8 9.6.5 12.6 7.1 19.4 11.4 6.8 4.3 3.7 10.4 14 8.4zm-49 22.6c-10.7-4-31.8-6-41.6 6.3 16.3 2.7 41 1.2 41.7-6.3z"/>
<path d="M308.3 140.3c-10.8-5-19.3 2-29.4 1-19.4-1.9-33.2-.8-35 8.5 11.1-9.9 29.7-1.7 37.2-3.8 7.6-2 35.4-.2 44.2 3.6-4.5-5.6-11.5-7-17-9.3zm33.9-28.8c-2.6-8.3-2.4-17 10-16.4-3.1-4-14.7-6-16.6 8.6-13.7-10-28.6-11.8-31.4-3.1 7-6 18-1.6 31 13.2a23.2 23.2 0 0 1 7-2.3z"/>
<path d="M323.3 123c-7.8-5-18.3-13.2.1-16.5-7.8-4.3-19.4-2.4-18.1 12.2-21.2-8.6-36.3-5.7-39.5 2.7-3.5 9.3 9.6 14.5 11.8 8.6-2.4 1-10.5-1.8-6.3-7 4.3-5.3 26.2-1.4 47 9.5 5.8 3 25.6 2.5 5-9.5z"/>
<path d="M317.8 136.8c-6-12.3-25.5-1.2-29.4-13-5.4 17.4 27.7 7.7 29.4 13zm124 13.3c4 2 7.6-1.2 1.3-3.7 4 2 7.7-1 1.4-3.6 4.1 2 7.7-1 1.4-3.6-1.7 1.7-4 7.9-4.2 10.9zm2-23.6c9.1-9.6-.7-12.8 10.4-22.6 9-8 1.7-13.4 10.3-19.6 2.7-2 8.7-6 9.3-10 3.6 9-11.3 10.2-10.3 24.8.6 9.3-5.7 8.5-8 24-.6 3.4-2.8 10.7-11.6 3.4z"/>
<path d="M447.9 130.7c5-10.8 10.8-10.6 13.5-14.8 5.3-8 16.5 1.4 26-5.8-1.7 10.2-14.4 6.6-20 13.1-5.4 6.5-10 9.5-19.5 7.5z"/>
<path d="M449.1 134.3c8.8-7 15.3-2.4 21.4-6 15.3-9.4 21.5 1.8 35.1-2.6-3.6 8.8-23.8 1.3-32.6 7.8s-39.7 12.8-23.9.8zm-25.6 50a11 11 0 0 0-9.1-9.8c-5.3-.6-7.6-6.1-11.6-6.4-4-.2-6.7-8.2-12.2-8.1-5.5.1-7.8 7.3 5.2 13.8 13 6.5 27.2 14 27.7 10.5zm-16.3 3.4c-5.5.3-6.3 8.3-11.6 8.6 7.3 3.9 12.6-1.8 16.4-6.8z"/>
<path d="M411.7 188.7c-4.7 4-6.1 12.5.8 14.9-4.2-5.7 7.3-8.3 3.7-13.6z"/>
<path d="M416.5 189c-3.8 7.3 5.9 8.2 3.4 13.7 5.5-1.3 6.4-11.7 1.4-14.5z"/>
<path d="M379.6 173.4c9-.5 17.3 4.4 22.8 12.3 3.5 5 15.3 7 19.4 3 4-4 1.7-12.5-8.3-9.8-2.5-4.2-9.8-2.7-13.3-6.2-3.5-3.6-17.1-13.6-20.6.7z"/>
<path stroke-linecap="round" d="M413.5 179c-2.4.4-3.2 4.6-1.7 6.7m6.8-4.2c.8 1.2.3 3-.1 3.9m-24.6-11.6c4.6.2 5.5 3.6 10.5 4.9"/>
<path d="M390.8 162.4c16 4 28.8 7.5 36.7 12a42.5 42.5 0 0 0 30.8 2.8c10.7-3 31.3-5.8 30.3 7.5 5.6-6.6-1.5-13.8-15.8-15 .3-6.6-6.7-12.5-11.7-8.6 4.6-.6 8.6 8-.5 11.6A8.2 8.2 0 0 0 449 163c4.3 1.3 8.7 8.5-1 11.3-6.1 1.8-15-.5-21.6-4.5-6.6-4-43.8-18.6-35.7-7.5z"/>
<path d="M431.3 155.8c-5 2.3-1.8 7.6-9.5 10.6-7.8 3-13.2 10-11.5 15.8 5.3-11.5 14.6-11 17.9-15.6 3.2-4.5 8-11.1 3.1-10.8z"/>
<path d="M432.7 156.6c-.3 9.2-7.5 5.8-4.7 18.7a26 26 0 0 1-.2 17c8-5.8 2.9-18.2 6.5-22.9a33 33 0 0 0 5-8.8c-2 5.3-1.8 15 3.3 17.6-4.1-9.8 11.2-17.8.6-29.1-1.5 2.7-6.2 7.6-10.5 7.5zm-25.6-9.2c1.2 2 2.5 6.7 1.4 9.3a22 22 0 0 0 7.2-8c5.2.7 7.2 7.1 2.3 10 3 0 8.2 0 11-3.5-3.5-3.9-14.4-9.9-22-7.8z"/>
<path d="M329 129.4a9.6 9.6 0 0 0-4.7-2c-7.6-1.5-3.6-8.3 2.8-8.3 13.8-15 21.6-3.4 38.4-8.2 6-1.7 10-1.2 13.2.2 7.5-5 16.3-3.6 22.7 2.3.7-1.1 1.7-2 3-2.4 6-1.6 10.7 3.4 12.3 10 4.6-1 9.9 1.4 13.4 4.5 4.7-2.5 8-2.6 9.2 0 4.3-2 9.8-3.3 12.6 3.5 2.8 6.8-6.5 4.7-8 19-1 8.9-10.8 12.4-18.6 7-12.5-8.3-24.6-9.7-30.7 3.1-6 12.8-10.7 20.3-25.3 16-5.3-1.4-12 .6-16.3 6.4-4.3 5.7-10.8.3-18.6 1 9.8-1.5 6-4 14.5-4.6 7.8-.5 5.8-7.7 10.8-8.8-19.5 5-18.8-2.2-34.9 2.8 7-9 18.1-4 23.6-9.3-14.5-.2-21-9.7-27.6-5.8-10.3 6.3-5.8 24.2-32.6 22.6-13-.7-21.4 1-29.2 8.8 13.6-28 32-12.6 41-21.6a66 66 0 0 0 12-14.3 6 6 0 0 1 4-3.1c-22.4-7-8.9-18 13-18.8z"/>
<path stroke-linecap="round" d="M439.3 125.5c.4.7.5 1.6.5 2.7 0 5.6-8.2 5.8-8.7 14-.3 4.2-.8 6.6-3.7 6.1-2.9-.5-5.4-5-2.6-10.3"/>
<path d="M333.1 121.2a10.6 10.6 0 0 0-6-2m51.5-8.1c6.7 2.9 9.9 9.8 19.6 10 9.3.4 15 13.9 30.6 5.1l1.2-.6m-28.6-12.2a12.3 12.3 0 0 0-1.3 8m-29 20.4c-11.9 0-14.9 6-14.9 11.8 0 5.8 5.6 13.3 15.3 13.3 9.8 0 15.1-6 15.1-12.6s-6-12.5-15.6-12.5z"/>
<path d="M373.2 166.6c-.3-3.2-6.2-2.7-6-5.2s3.3-3.6 3.3-7 5.3-3.8 7-1c1.8 2.7 7.1 8 8.2 5.3m-8.1-5.4a9.7 9.7 0 0 0-.4 12.8m4.1-8.5c-.8 1.9-1 4.8 0 6.5"/>
<path fill="none" d="M428.2 148.4c9.3.7 10.8-9.4 4-10m-15.3-17.5c-3.2-4-10.6-5.4-10.7 3.2"/>
<path d="M405.3 134c-3.1-7.8-11.2-9-15.4-5-3.6 3.2-3.7 11.6 4 13.4 2.6-3.1 7.8-7.3 11.4-8.4zm-3.4-4.9c-4.6-4-11.2 3.6-5.2 10.6M316 148c3-.7 7.4.8 14.2 4 4.3 2 17 6.3 25.1 2-8.3 3-14.5-9.6-20.8-8-6.3 1.5-17.8 3.8-22.6-.8 11.8.8 18.1-8.6 31.6-.5a23 23 0 0 0 12.8 3.5c-11-13.3-25.6-4.8-27.1-15.6 6.7 7.2 23-1.6 31.2 11.8m-28.8-9.8c-1.6-1.9-.9-3.8-2.5-5.3"/>
</g>
<path stroke="none" d="M416.9 121c-2.8-3-8.8-.7-7.1 5.3a9.4 9.4 0 0 1 7-5.4zm-17.1 16a20.6 20.6 0 0 1 5.5-3 12 12 0 0 0-3.7-5.1c-1.4-1-5.6 4.6-1.8 8.1"/>
<path fill="none" stroke-linecap="round" stroke-width=".4" d="M392.4 126.8c-4.5-3-8.7-2.7-10-.2-3.3-.1-6 2.3-6.2 7m7 2c-5.4-3.7-12.8-2.3-12.3 6m-3.2 4.7c2.6-2.1 6.4-3.6 9.2.1m31-8.3c-1 1.4-1.7 3.6 0 6.8-2-2.6-7.1-2.6-12.5 4.4m24.5-11.5c-6.5.7-6.4 5-1.1 6.9m-45.4-22.9c-5.5-1.1-9.5 2.2-1.9 5M384 118c-7.8-2-11 0-7.4 1.8m-15.1 29.4c-.3 2.8 1.3 6.4 5.8 2.3m-4.3 6c0 .8-.1 1.6-.6 2.3m-17.5-39c-4.7-1.5-5.6-5.9-.1-5.5m-1.5 15.6c-5.3-1.8-5.3-7-.9-6.4m10.7 3.7c-6.2-1.5-6.4-5.7-1.8-5.1m2.5-8c-3.2-.2-8.3 3.5.2 5.6m9 1.8c-7.7-1.2-7.5 2-3 4m8.8-11.3c-6-1.1-8 2.4-4 3.9M350.3 137c-1.4-1.2-2.6-6.9 4.3-5.2m10 3.4c-4.6-1.2-9 3.3-4.8 6m11-11.4c-5-.8-9 .5-6.4 2.3"/>
<path fill="#fff" stroke-width=".4" d="M416.6 121a9.3 9.3 0 0 0-6.8 5.3"/>
</g>
</svg>

After

Width:  |  Height:  |  Size: 24 KiB

View File

@@ -0,0 +1,13 @@
<svg xmlns="http://www.w3.org/2000/svg" id="flag-icons-bv" viewBox="0 0 512 512">
<defs>
<clipPath id="bv-a">
<path fill-opacity=".7" d="M0 0h512v512H0z"/>
</clipPath>
</defs>
<g fill-rule="evenodd" stroke-width="1pt" clip-path="url(#bv-a)">
<path fill="#fff" d="M-68 0h699.7v512H-68z"/>
<path fill="#d72828" d="M-93-77.8h218.7v276.2H-93zM249.4-.6h381v199h-381zM-67.6 320h190.4v190.3H-67.5zm319.6 2.1h378.3v188.2H252z"/>
<path fill="#003897" d="M156.7-25.4H221v535.7h-64.5z"/>
<path fill="#003897" d="M-67.5 224.8h697.8v63.5H-67.5z"/>
</g>
</svg>

After

Width:  |  Height:  |  Size: 585 B

View File

@@ -0,0 +1,7 @@
<svg xmlns="http://www.w3.org/2000/svg" id="flag-icons-bw" viewBox="0 0 512 512">
<g fill-rule="evenodd">
<path fill="#00cbff" d="M0 0h512v512H0z"/>
<path fill="#fff" d="M0 192h512v128H0z"/>
<path fill="#000001" d="M0 212.7h512V299H0z"/>
</g>
</svg>

After

Width:  |  Height:  |  Size: 266 B

View File

@@ -0,0 +1,18 @@
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xml:space="preserve" id="flag-icons-by" viewBox="0 0 512 512">
<defs>
<clipPath id="by-a">
<path d="M0 0h200v608h8v284l-8 8H0Z"/>
</clipPath>
</defs>
<path fill="#ce1720" stroke-width="1.91554" d="M0 0h512v512H0Z"/>
<g fill="#fff" clip-path="url(#by-a)" transform="matrix(.5625 0 0 .56889 5 0)">
<g id="by-c">
<path id="by-b" d="M36 0v14h-9v14H16v16H8v13H-8V24H8V6H-8V0Zm26 77v15h-8v12h-8V92h-8V77h-8V57h8V42h8V30h8v12h8v15h8v20Zm-17-1h10V58H45ZM19 183h8v-18h-8zm54 0h8v-18h-8ZM-8 305H6v13h6v16h9v15h12v-15h9v-16h8v-13H38v-15h21v10h13v17h11v19h-8v14h-7v13h-6v14h-9v12h-7v11h-9v14H24v-15h-9v-14H8v-9H-8v-23H8v-20H-8Z"/>
<use xlink:href="#by-b" transform="matrix(-1 0 0 1 200 0)"/>
<path d="M96 0v32h8V0h32v14h-8v14h-12v16h-8v13H92V44h-8V28H72V14h-8V0Zm-2 274v-11h-6v-13h-7v-14h-8v-14h-8v-10h-9v-14H44v14h-9v10h-7v14h-8v14h-6v13H8v17H-8v-44H8v-20H-8v-33H8v14h10v14h10v-14h10v-14h8v-18h-8v-14H28v-14H18v14H8v14H-8v-41H8v-19H-8V77H8v13h8v16h11v13h9v15h7v12h14v-12h7v-15h9v-13h11V90h8V77h16v13h8v16h11v13h9v15h7v12h14v-12h7v-15h9v-13h11V90h8V77h16v28h-16v19h16v41h-16v-14h-10v-14h-10v14h-10v14h-8v18h8v14h10v14h10v-14h10v-14h16v33h-16v20h16v44h-16v-17h-6v-13h-6v-14h-8v-14h-7v-10h-9v-14h-12v14h-9v10h-8v14h-8v14h-7v13h-6v11zm2-167v27h8v-27zm-4 58v-14H82v-14H72v14H62v14h-8v18h8v14h10v14h10v-14h10v-14h16v14h10v14h10v-14h10v-14h8v-18h-8v-14h-10v-14h-10v14h-10v14zm4 46v27h8v-27z"/>
</g>
<use xlink:href="#by-c" transform="matrix(1 0 0 -1 0 900)"/>
<path d="M-8 408H8v14h7v8h8v14h7v12h-7v14h-8v8H8v14H-8Zm216 0v84h-16v-14h-7v-8h-8v-14h-7v-12h7v-14h8v-8h7v-14ZM62 459h8v-18h-8zm76 0v-18h-8v18zm-42-59h8v-18h-8zm0 100v18h8v-18Zm-50-75h14v-11h10v-10h5v-10h6v-14h8v-14h4v-13h14v13h4v14h8v14h6v10h5v10h10v11h14v50h-14v11h-10v10h-5v10h-6v14h-8v14h-4v13H93v-13h-4v-14h-8v-14h-6v-10h-5v-10H60v-11H46Zm50 9v-15h-8v-10h-8v25h8v9h5v14h-5v9h-8v25h8v-10h8v-15h8v15h8v10h8v-25h-8v-9h-5v-14h5v-9h8v-25h-8v10h-8v15z"/>
</g>
<path fill="#007c30" stroke-width="1.7899" d="M117.3 341.3h395V512h-395z"/>
</svg>

After

Width:  |  Height:  |  Size: 2.1 KiB

File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 46 KiB

View File

@@ -0,0 +1,4 @@
<svg xmlns="http://www.w3.org/2000/svg" id="flag-icons-ca" viewBox="0 0 512 512">
<path fill="#fff" d="M81.1 0h362.3v512H81.1z"/>
<path fill="#d52b1e" d="M-100 0H81.1v512H-100zm543.4 0h181.1v512H443.4zM135.3 247.4l-14 4.8 65.4 57.5c5 14.8-1.7 19.1-6 26.9l71-9-1.8 71.5 14.8-.5-3.3-70.9 71.2 8.4c-4.4-9.3-8.3-14.2-4.3-29l65.4-54.5-11.4-4.1c-9.4-7.3 4-34.8 6-52.2 0 0-38.1 13.1-40.6 6.2l-9.9-18.5-34.6 38c-3.8 1-5.4-.6-6.3-3.8l16-79.7-25.4 14.3c-2.1.9-4.2 0-5.6-2.4l-24.5-49-25.2 50.9c-1.9 1.8-3.8 2-5.4.8l-24.2-13.6 14.5 79.2c-1.1 3-3.9 4-7.1 2.3l-33.3-37.8c-4.3 7-7.3 18.4-13 21-5.7 2.3-25-4.9-37.9-7.7 4.4 15.9 18.2 42.3 9.5 51z"/>
</svg>

After

Width:  |  Height:  |  Size: 644 B

View File

@@ -0,0 +1,19 @@
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" id="flag-icons-cc" viewBox="0 0 512 512">
<defs>
<path id="cc-a" d="m0-360 69.4 215.8 212-80.3L156-35.6 351 80.1 125 99.8l31.1 224.6L0 160l-156.2 164.3 31.1-224.5L-351 80l195-115.7-125.5-188.9 212 80.3z"/>
<path id="cc-b" d="M0-210 54.9-75.5l144.8 10.6-111 93.8 34.7 141L0 93.3-123.4 170l34.6-141-111-93.8 145-10.6z"/>
</defs>
<path fill="green" d="M0 0h512v512H0z"/>
<circle cx="268.2" cy="250.4" r="61.2" fill="#ffe000"/>
<circle cx="287.3" cy="250.4" r="50.4" fill="green"/>
<circle cx="75.2" cy="189.2" r="64.2" fill="#ffe000"/>
<path fill="#802000" stroke="#7b3100" stroke-width="1.4" d="M70.7 237.6h16s.8-1.5-.1-2.2c-.9-.8-4.3-1-3.4-3.5 2-5.4 2.2-3.7 3.4-16.4 1.2-12.7 1.7-32.6 1.7-32.6H86s.5 6.2-.9 14.3c-1.3 8-1.7 8.7-3.2 15-1.4 6.1-1.7 6.6-3 10.3-1.3 3.6-1.5 3.7-3.5 7l-2.5 4.2c-.6 1-1.3.7-1.7 1.4-.4.8-.5 2.5-.5 2.5z"/>
<path fill="green" d="M83 142.5c0 2.5-.2 5.7-1.2 8.4-1 3-2.2 6-2.1 9-1.7.7-3.4-3.5-5-1 1.2 3.3 4 6 5.9 9 .3 1 3 3.5 1.5 4-4-1.3-5-6.4-7.5-9.5a17.5 17.5 0 0 0-14.2-9c-2.3 0-9.6-.6-7.7 3.2 2.8 2 6.3 3.2 9 5.3 2.1.2 5.8 3.6 5.6 5-3.6-1.5-5.3-3.3-9.2-4.8-5.3-2-12.6-.9-15.5 4.4-.6 1.4-1.4 5.3.3 5.7 2-3.1 5-6.6 9.2-5.7 3.3.3-3.8 6.3-1 5 .8-.3 2.8-1.6 4.1-1.7 1.4-.2 2.2.8 3.2 1 2.1.3 2.7 1.1 2.5 1.6-.2.6-1 .1-3 .8-1 .3-1.6 1.3-2.9 1.7-1.2.4-3.8.4-4.7 0-3.4-1.4-8.9-1.1-10 3 0 2-1.6-.1-2.3.7-.6 2-.8 4-3.8 3.9-1.8 1.9-3.6 3.9-6 5.2 1.4 3.1 6.8-3.1 6.5-.5-2.3 3.2 1.2 3.9 2.8 1.4 2.6-2.8 5.9-6.1 9.8-3.3 1.9 1.7 3-1 4.3-.8.9 2.2 2 0 3-.5 1.5-.2 1 2 3 .6 3.7-2.5 8.3-.4 12-2.8 3.8-1.8.5 1.4-.6 2.7-1.7 3.3-.2 7.7-4 9.7-1.4 4 1.8 9.2-1.5 12.1-.5 1.9 4.3 1.7 5.6 2.4 2.4.1 0-5.3 2.2-6 3.1 1.9 3-3.5 2.4-5.2.3-3.7.5-7.8 2.3-11.3 2-4.1 3.9 1.7 1.6 3.4-1.2 3.8-3 8.7-.2 12.2.9.2 1.5 2.2 2.6 2.8 1 .7 2.5-.1 2.8-2 1.4-5.4.7-11.4 2.7-16.7 1.3-1.7 3.3-.3 4.1 1.2 2.8 3.2 4.7 7.2 8 9.9a14 14 0 0 1 7.2 6.7c0 2.4 6.8 2.7 4.8 0-2-2.5-.7-5.2 1.3-6.9 1 .3.7-1.6 0-.9-1.4-.3-1.5-2.8.3-1.6 3.2 1-.2-2.3-1.3-2.4-2.7-1.6-5.7-3.5-7-6.4 3.4 0 7 2 10.5.8 2.9-1.5 5.7.1 6.7 2.6 2.2-.4 1.3-2.5 0-3.3 1.6-.6 2.7-2 .8-3.2-1-1.4 1.4-3.6-1.6-3.5.1-2.3-.8-4.3-3.2-5.1-2.5-2.1-9.7 3-9.5-1.7-.7-2.5 3-.3 4-1.6 1-2.7-5-2.4-3-4.5 1.2-.8 7.4-2 2.6-3a7.6 7.6 0 0 1-6.4-1c-1.7 3-6.7-1.6-5.8 3.6-.7 2-5 7-6.3 3.1 1-3 6.3-4 4.6-8-.2-2.6-2.3.4-3.3.2-.5-1.6 1.5-3.5 3-3.9 2.7 2.2 2.8-2.7 5.5-2.3 2-.4-.7-1.2-1.2-1.6.5-1.4 3.5-2.2.6-3.4-2.6-2-4.5 2-6.6 2.1-2-2.3 1.8-3.4 2.9-4.6 0-1-2.3-.3-1.6-1 .6-1.2 4.8-1.3 2.8-2.9-2.9-1-6.6-.7-9.4.5-1.8.6-2.3 4.6-3.8 4.4-.8-1.7.2-5.2-2.2-5.8zm13.7 38.9c2.3-.4 0 3.3-1 3.3.1-1.3-3.2-1.2-1.1-2.4a6.7 6.7 0 0 1 2.1-1z"/>
<g fill="#ffe000" transform="translate(-25.8 103.5)scale(.05833)">
<use xlink:href="#cc-a" width="100%" height="100%" x="7560" y="4200"/>
<use xlink:href="#cc-a" width="100%" height="100%" x="6300" y="2205"/>
<use xlink:href="#cc-a" width="100%" height="100%" x="7560" y="840"/>
<use xlink:href="#cc-a" width="100%" height="100%" x="8680" y="1869"/>
<use xlink:href="#cc-b" width="100%" height="100%" x="8064" y="2730"/>
</g>
</svg>

After

Width:  |  Height:  |  Size: 3.0 KiB

View File

@@ -0,0 +1,12 @@
<svg xmlns="http://www.w3.org/2000/svg" id="flag-icons-cd" viewBox="0 0 512 512">
<defs>
<clipPath id="cd-a">
<path fill="#fff" d="M0-88h600v600H0z"/>
</clipPath>
</defs>
<g clip-path="url(#cd-a)" transform="translate(0 75.1)scale(.853)">
<path fill="#007fff" d="M0-88h800v600H0z"/>
<path fill="#f7d618" d="M36 32h84l26-84 26 84h84l-68 52 26 84-68-52-68 52 26-84zM750-88 0 362v150h50L800 62V-88z"/>
<path fill="#ce1021" d="M800-88 0 392v120L800 32z"/>
</g>
</svg>

After

Width:  |  Height:  |  Size: 498 B

View File

@@ -0,0 +1,13 @@
<svg xmlns="http://www.w3.org/2000/svg" id="flag-icons-cefta" viewBox="0 0 512 512">
<path fill="#039" d="M0 0h512v512H0z"/>
<circle cx="256" cy="266.5" r="32.5" fill="none" stroke="#fc0" stroke-width="29.3"/>
<circle cx="256" cy="266.5" r="94.2" fill="none" stroke="#fc0" stroke-width="29.3"/>
<path fill="#039" d="m346.3 176.1 90.3 90.3-90.3 90.3-90.3-90.3z"/>
<path fill="#fc0" d="M102.1 251.8h63.2v29.3h-63.2zm276.4 0h94.2v29.3h-94.2zm-76.6-51.9 41.3-41.3 20.7 20.7-41.3 41.3zM241.3 51.8h29.3V166h-29.3z"/>
<circle cx="154.8" cy="170.3" r="14.7" fill="#fc0"/>
<circle cx="68.6" cy="266.5" r="14.7" fill="#fc0"/>
<circle cx="256" cy="406.8" r="14.7" fill="#fc0"/>
<circle cx="256" cy="453.9" r="14.7" fill="#fc0"/>
<circle cx="350.2" cy="266.5" r="14.7" fill="#fc0"/>
<path fill="#fc0" d="m136.9 364.3 20.7-20.7 20.7 20.7-20.7 20.7zm218.5 22.3L376 366l20.7 20.7-20.7 20.8z"/>
</svg>

After

Width:  |  Height:  |  Size: 908 B

View File

@@ -0,0 +1,15 @@
<svg xmlns="http://www.w3.org/2000/svg" id="flag-icons-cf" viewBox="0 0 512 512">
<defs>
<clipPath id="cf-a">
<path fill-opacity=".7" d="M0 0h512v512H0z"/>
</clipPath>
</defs>
<g fill-rule="evenodd" clip-path="url(#cf-a)">
<path fill="#00f" d="M-52-.5h768v127H-52z"/>
<path fill="#ff0" d="M-52 383.5h768V512H-52z"/>
<path fill="#009a00" d="M-52 255h768v128.5H-52z"/>
<path fill="#fff" d="M-52 126.5h768V255H-52z"/>
<path fill="red" d="M268 0h128v512H268z"/>
<path fill="#ff0" d="M109.5 112.3 75.9 89.1l-33.4 23.4 11.6-39.2-32.5-24.6 40.7-1L75.7 8.8l13.5 38.6 40.8.8L97.6 73"/>
</g>
</svg>

After

Width:  |  Height:  |  Size: 635 B

View File

@@ -0,0 +1,12 @@
<svg xmlns="http://www.w3.org/2000/svg" id="flag-icons-cg" viewBox="0 0 512 512">
<defs>
<clipPath id="cg-a">
<path fill-opacity=".7" d="M115.7 0h496.1v496h-496z"/>
</clipPath>
</defs>
<g fill-rule="evenodd" stroke-width="1pt" clip-path="url(#cg-a)" transform="translate(-119.5)scale(1.032)">
<path fill="#ff0" d="M0 0h744v496H0z"/>
<path fill="#00ca00" d="M0 0v496L496 0z"/>
<path fill="red" d="M248 496h496V0z"/>
</g>
</svg>

After

Width:  |  Height:  |  Size: 461 B

View File

@@ -0,0 +1,9 @@
<svg xmlns="http://www.w3.org/2000/svg" id="flag-icons-ch" viewBox="0 0 512 512">
<g fill-rule="evenodd" stroke-width="1pt">
<path fill="red" d="M0 0h512v512H0z"/>
<g fill="#fff">
<path d="M96 208h320v96H96z"/>
<path d="M208 96h96v320h-96z"/>
</g>
</g>
</svg>

After

Width:  |  Height:  |  Size: 288 B

View File

@@ -0,0 +1,7 @@
<svg xmlns="http://www.w3.org/2000/svg" id="flag-icons-ci" viewBox="0 0 512 512">
<g fill-rule="evenodd">
<path fill="#00cd00" d="M341.5 0H512v512H341.5z"/>
<path fill="#ff9a00" d="M0 0h170.3v512H0z"/>
<path fill="#fff" d="M170.3 0h171.2v512H170.3z"/>
</g>
</svg>

After

Width:  |  Height:  |  Size: 280 B

View File

@@ -0,0 +1,9 @@
<svg xmlns="http://www.w3.org/2000/svg" id="flag-icons-ck" viewBox="0 0 512 512">
<path fill="#006" d="M0 0h512v512H0z"/>
<path fill="#fff" fill-rule="evenodd" d="m344.8 250.1 5.7-18.3-15.4-11.7 19.4-.2 6.5-18.1 6.3 18.1 19.4.6-15.6 11.4 5.6 18.4-15.9-11m29.7 14.4 11.4-15.3-10.6-16.3 18.4 6.4 12-14.8V233l18 7.1-18.4 5.5-.9 19.2-11.3-15.8m-108 16.5-.8-19.2-18.4-5.7 18.2-7v-19.1l12 14.9 18.4-6.2-10.8 16.1 11.4 15.4-18.6-5m-43.6 45-8-17.4-19.2 2 14-13.5-7.2-17.7 16.7 9 14.6-13-3.7 19.1 16.3 9.7-19 2.8m-19.2 61-14.6-12.1-16.5 10 7-18.3-14-12.8 18.9.9 7.7-18 4.7 18.8 18.9 1.7-16 10.8m3.5 66.3-18.2-5.3-11 16-.8-19.7-18-6 17.7-6.9v-19.7l11.7 15.5 18-6.1-10.5 16.3m32.4 55.9-18.7 2.6-3.8 19.1L244 428l-18.8 1.8 13.5-13.5-7.9-18 16.9 9.3 14-13-3 19.3m49.4 41.7-16.7 9 3 19.3-14.1-13.6-17 8.3 8-17.4-13.5-14.1 19 2.8 8.7-17 3.7 19m59.1 10-9 16.8 12.8 14.5-19.1-3.6-9.8 16.4-2.7-19-18.9-4.4 17.4-8.2-1.9-19 13.5 13.9m63-14.4-.7 19.2 18 7-18.6 5.6-1.3 19.1-11-15.7-18.8 4.9 11.9-15.4-10.3-16.1 18.3 6.2m59.8-223.2 13.1 13.9 17.5-8.1-9 17.4L475 284l-18.7-3-9.8 17-2.5-19.3-18.6-4 17.2-8.7m37.6 23.1 6 18.3 19.1.3-15.5 11.7L495 338l-15.6-11-16 11.1 6-18.5-15.2-11.6 19.3-.5m21.4 36.5-2.2 19 17.3 8.6-19 4-3 19-9.5-16.7-19.1 3.2 13-14.3-8.8-17 17.7 7.9m3.2 43.7-8.5 17.1 13.3 14-19.1-2.8-9.3 16.7-3.3-18.9-19-3.7 17-8.8-2.5-19 14 13.5m-10.9 43-16.1 10 4.1 19-14.8-12.6-16.5 9.4 7-18-14.4-13.2 19.1 1.6 7.7-17.6 4.9 19"/>
<path fill="#006" d="M0-.5h256v256H0z"/>
<path fill="#fff" d="M256-.5v32l-95 96 95 93.5v34.5h-33.5l-95.5-94-93 94H0v-34L93 128 0 36.5v-37h31l96 94 93-94z"/>
<path fill="#c8102e" d="m92 161.5 5.5 17-76.5 77H0V254zm62-6 27 4 75 73.5v22.5zM256-.5l-96 98-2-22 75-76zM0 0l96.5 94.5-29.5-4L0 24z"/>
<path fill="#fff" d="M88-.5v256h80V-.5zm-88 88v80h256v-80z"/>
<path fill="#c8102e" d="M0 103.5v48h256v-48zM104-.5v256h48V-.5z"/>
</svg>

After

Width:  |  Height:  |  Size: 1.8 KiB

View File

@@ -0,0 +1,13 @@
<svg xmlns="http://www.w3.org/2000/svg" id="flag-icons-cl" viewBox="0 0 512 512">
<defs>
<clipPath id="cl-a">
<path fill-opacity=".7" d="M0 0h708.7v708.7H0z"/>
</clipPath>
</defs>
<g fill-rule="evenodd" clip-path="url(#cl-a)" transform="scale(.722)">
<path fill="#fff" d="M354.3 0H1063v354.3H354.3z"/>
<path fill="#0039a6" d="M0 0h354.3v354.3H0z"/>
<path fill="#fff" d="m232.3 265.3-55-41.1-54.5 41.5 20.3-67.5-54.5-41.7 67.4-.6 21-67.3 21.3 67.2h67.5L211.4 198z"/>
<path fill="#d52b1e" d="M0 354.3h1063v354.4H0z"/>
</g>
</svg>

After

Width:  |  Height:  |  Size: 566 B

View File

@@ -0,0 +1,15 @@
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" id="flag-icons-cm" viewBox="0 0 512 512">
<path fill="#007a5e" d="M0 0h170.7v512H0z"/>
<path fill="#ce1126" d="M170.7 0h170.6v512H170.7z"/>
<path fill="#fcd116" d="M341.3 0H512v512H341.3z"/>
<g fill="#fcd116" transform="translate(256 256)scale(5.6889)">
<g id="cm-b">
<path id="cm-a" d="M0-8-2.5-.4 1.3.9z"/>
<use xlink:href="#cm-a" width="100%" height="100%" transform="scale(-1 1)"/>
</g>
<use xlink:href="#cm-b" width="100%" height="100%" transform="rotate(72)"/>
<use xlink:href="#cm-b" width="100%" height="100%" transform="rotate(144)"/>
<use xlink:href="#cm-b" width="100%" height="100%" transform="rotate(-144)"/>
<use xlink:href="#cm-b" width="100%" height="100%" transform="rotate(-72)"/>
</g>
</svg>

After

Width:  |  Height:  |  Size: 840 B

View File

@@ -0,0 +1,11 @@
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" id="flag-icons-cn" viewBox="0 0 512 512">
<defs>
<path id="cn-a" fill="#ff0" d="M1-.3-.7.8 0-1 .6.8-1-.3z"/>
</defs>
<path fill="#ee1c25" d="M0 0h512v512H0z"/>
<use xlink:href="#cn-a" width="30" height="20" transform="translate(128 128)scale(76.8)"/>
<use xlink:href="#cn-a" width="30" height="20" transform="rotate(-121 142.6 -47)scale(25.5827)"/>
<use xlink:href="#cn-a" width="30" height="20" transform="rotate(-98.1 198 -82)scale(25.6)"/>
<use xlink:href="#cn-a" width="30" height="20" transform="rotate(-74 272.4 -114)scale(25.6137)"/>
<use xlink:href="#cn-a" width="30" height="20" transform="matrix(16 -19.968 19.968 16 256 230.4)"/>
</svg>

After

Width:  |  Height:  |  Size: 751 B

View File

@@ -0,0 +1,7 @@
<svg xmlns="http://www.w3.org/2000/svg" id="flag-icons-co" viewBox="0 0 512 512">
<g fill-rule="evenodd" stroke-width="1pt">
<path fill="#ffe800" d="M0 0h512v512H0z"/>
<path fill="#00148e" d="M0 256h512v256H0z"/>
<path fill="#da0010" d="M0 384h512v128H0z"/>
</g>
</svg>

After

Width:  |  Height:  |  Size: 286 B

Some files were not shown because too many files have changed in this diff Show More