788 Commits

Author SHA1 Message Date
Pax1601
fa0643987b Remove need for path variable 2023-12-06 12:37:59 +01:00
Pax1601
dcff462b32 v0.4.11-alpha-rc3 2023-12-06 09:15:44 +01:00
Pax1601
fa04e5f8bb Merge pull request #670 from Pax1601/650-robots-can-be-sent-to-refuel-while-protected
Added extra protection for robots
2023-12-06 08:17:21 +01:00
Pax1601
c8d5f9ce0e Formatted file 2023-12-06 08:17:01 +01:00
Pax1601
55642a89b1 Merge pull request #671 from Pax1601/651-control-tips-quick-options-shown-but-nothing-happens
Removed Quick Options option
2023-12-06 08:12:00 +01:00
PeekabooSteam
f305aa3929 Removed Quick Options option 2023-12-05 21:51:32 +00:00
PeekabooSteam
47ee88c339 Added extra protection for robots 2023-12-05 20:44:26 +00:00
Pax1601
022e041f68 Merge branch 'main' of https://github.com/Pax1601/DCSOlympus 2023-12-05 19:30:50 +01:00
Pax1601
0cc53890c1 v0.4.10-alpha-rc2 2023-12-05 19:30:34 +01:00
Pax1601
e37f7a4977 v0.4.10-alpha-rc1 2023-12-05 19:18:37 +01:00
Pax1601
8d03c6a767 Merge branch 'main' of https://github.com/Pax1601/DCSOlympus 2023-12-05 15:59:25 +01:00
Pax1601
e29fdfd8c7 Fixed typo in map attribution 2023-12-05 15:59:19 +01:00
Pax1601
af619c3687 Merge pull request #666 from Pax1601/rc1-fixes
Rc1 fixes
2023-12-05 15:44:29 +01:00
Pax1601
6afb6682ea Fixed IADS creation, no longer clogs the server 2023-12-05 15:43:48 +01:00
Pax1601
9c2c7f45c6 Demo mode disabled 2023-12-05 11:35:10 +01:00
Pax1601
7fbc19e90a Merge pull request #665 from Pax1601/rc1-fixes
RC1 fixes
2023-12-05 11:31:14 +01:00
Pax1601
8f2f73dc0e RC1 fixes 2023-12-05 11:26:18 +01:00
Pax1601
24a1681337 Merge pull request #663 from Pax1601/task-optimization
Task optimization
2023-12-05 10:07:09 +01:00
Pax1601
304e8ba3a0 Fixed compilation warnings 2023-12-05 10:06:47 +01:00
Pax1601
45b840fa72 Changed default multiplier value 2023-12-05 09:24:13 +01:00
Pax1601
82704f042b Added check on negative speed 2023-12-05 09:22:22 +01:00
Pax1601
87d71da55e Small tweak to multiplier 2023-12-05 09:14:06 +01:00
Pax1601
71cf7c67f7 Fixed change altitude and speed for helicopters 2023-12-05 09:11:36 +01:00
Pax1601
62142ed976 Version 2 of tasking optimization 2023-12-04 21:06:13 +01:00
Pax1601
f56bd514dc Fixed tab order in installer 2023-12-03 21:30:16 +01:00
Pax1601
e30f161d1d Removed unnecessary file 2023-12-03 21:11:14 +01:00
Pax1601
720bfb3118 Added git clean command 2023-12-03 21:06:05 +01:00
Pax1601
4100a3cc67 v0.4.9-alpha-rc1 2023-12-03 21:04:19 +01:00
Pax1601
942993ff6d Added ranges for SAM Sites 2023-12-03 21:00:32 +01:00
Pax1601
fbf435c799 Added missing images, changed mop to da aaa 2023-12-03 20:46:26 +01:00
Pax1601
8fdb0d82e8 Merge branch 'main' of https://github.com/Pax1601/DCSOlympus 2023-12-03 19:54:36 +01:00
Pax1601
dcbebab61b Updated databases 2023-12-03 19:54:33 +01:00
Pax1601
7b10afae43 Merge pull request #644 from Pax1601/639-create-boilerplate-plugin
Added boilerplate plugin
2023-12-03 19:51:32 +01:00
PeekabooSteam
81d8a88abd Removed old definition file 2023-12-03 18:48:51 +00:00
Pax1601
cb14158a0f Merge pull request #645 from WoodyXP/main
Example script to set airbase to a certain coalition
2023-12-03 19:32:13 +01:00
PeekabooSteam
38fc60352a Fixed typo 2023-12-03 18:12:18 +00:00
PeekabooSteam
3748f0d6e3 Added extensive documentation. 2023-12-03 14:23:08 +00:00
Stefan Arsic
edd626d5e5 Example script to set airbase to a certain coalition 2023-12-03 14:38:58 +01:00
PeekabooSteam
f785e75686 Corrected package name 2023-12-03 12:28:19 +00:00
PeekabooSteam
9a46ed70b7 Added boilerplate plugin 2023-12-03 12:24:52 +00:00
Pax1601
532c09a815 Fixed merge error 2023-12-03 11:49:39 +01:00
Pax1601
e430d38c63 Merge pull request #643 from Pax1601/525-ships-spawn-with-0-health-indicated
Health correctly computed for ships too
2023-12-03 11:35:55 +01:00
Pax1601
289b36de6d Health correctly computed for ships too 2023-12-03 11:35:37 +01:00
Pax1601
7e01f40e5c Merge pull request #642 from Pax1601/537-cannot-copy-paste-robots
It's now possible to copy robots
2023-12-03 11:10:17 +01:00
Pax1601
cac4bb5f13 It's now possible to copy robots
Know limitation: it's not possible to copy payloads of units spawned by other scripts. They must be in the .miz file. Don't think we can do much about this.
2023-12-03 11:09:50 +01:00
Pax1601
c8bb041887 Merge pull request #635 from Pax1601/633-unable-to-hide-olympus-controlled-units
633 unable to hide olympus controlled units
2023-12-02 18:32:40 +01:00
PeekabooSteam
9302c5c6d1 Merge branch '633-unable-to-hide-olympus-controlled-units' of https://github.com/Pax1601/DCSOlympus into 633-unable-to-hide-olympus-controlled-units 2023-12-02 16:05:51 +00:00
PeekabooSteam
84a3313f2c TS declarations 2023-12-02 16:04:12 +00:00
PeekabooSteam
1eb3beeb2e Merge branch 'main' into 633-unable-to-hide-olympus-controlled-units 2023-12-02 15:58:37 +00:00
PeekabooSteam
d0e6ef8c6c Changed order 2023-12-02 12:57:58 +00:00
PeekabooSteam
5da1df7e20 Added Olympus unit toggle 2023-12-02 12:47:00 +00:00
Pax1601
16fa6d9805 Updated databases 2023-12-02 13:25:46 +01:00
Pax1601
0ca7766689 Merge pull request #634 from Pax1601/minor-refactoring
Minor refactoring
2023-12-02 12:37:55 +01:00
Pax1601
4342575418 Merge pull request #632 from Pax1601/631-alignment-of-second-bar-in-visibility-options-is-too-tall
Fixed bar height
2023-12-02 12:37:41 +01:00
Pax1601
4cdb73a60d Fixed error in address for configuration 2023-12-02 12:36:42 +01:00
PeekabooSteam
a23c53bcb8 Fixed bar height 2023-12-02 11:04:37 +00:00
Pax1601
19ac4f92e0 Merge branch 'main' into minor-refactoring 2023-12-02 11:20:38 +01:00
Pax1601
0b8f48b4fd Merge pull request #615 from Pax1601/602-attack-mode-not-working-on-ground-and-navy-units
Added ATTACK state for ground and navy units
2023-12-02 11:19:05 +01:00
Pax1601
d2fa94a6cb Minor graphical tweak 2023-12-02 11:17:30 +01:00
Pax1601
da1c674911 Merge branch 'main' into 602-attack-mode-not-working-on-ground-and-navy-units 2023-12-02 10:53:24 +01:00
Pax1601
7184bc1eb2 Merge branch 'main' into 602-attack-mode-not-working-on-ground-and-navy-units 2023-12-02 10:49:28 +01:00
Pax1601
37f30a0f1a Merge pull request #629 from Pax1601/Shredmetal-patch-1
Update LEGAL
2023-12-02 10:48:43 +01:00
Pax1601
04f4b3e78a Merge pull request #626 from Pax1601/609-update-top-menu-ui
Styled top bar, fixed IADS toggle.
2023-12-02 10:48:12 +01:00
Pax1601
dbdc162fae Merge pull request #630 from Pax1601/read-config-location-with-lfs.writedir()
Read config location with lfs.writedir()
2023-12-02 10:47:33 +01:00
Pax1601
563f673fb3 Minor tweak 2023-12-02 10:46:59 +01:00
Pax1601
423e799a82 Completed reading from current instance 2023-12-02 10:40:03 +01:00
Shredmetal
4734b89414 Update LEGAL
Amended unilateral modification term to state explicitly that parties agree to be bound by such terms as modified from time to time
2023-12-02 14:33:27 +08:00
Shredmetal
6f708e7733 update LEGAL
added unilateral modification term so we can change the agreement at will without informing users beyond updating the repo
2023-12-02 14:21:38 +08:00
PeekabooSteam
f0c3f95189 Merge and fix conflict 2023-12-01 16:55:14 +00:00
Pax1601
93ca0e3f22 Added read from lfs 2023-12-01 17:44:03 +01:00
PeekabooSteam
d94432636f Styled top bar, fixed IADS toggle. 2023-12-01 15:51:02 +00:00
Pax1601
60fca35d80 Merge branch 'main' of https://github.com/Pax1601/DCSOlympus 2023-12-01 14:12:50 +01:00
Pax1601
db71462d1c Update sample.png 2023-12-01 14:12:10 +01:00
Pax1601
86f522176a Update README.md 2023-12-01 14:08:41 +01:00
Pax1601
94ee71c48f A couple of comments 2023-12-01 13:02:18 +01:00
Pax1601
fda0b21fb0 Minor refactoring 2023-12-01 13:00:02 +01:00
Pax1601
775148cec8 Merge pull request #621 from Pax1601/610-update-spawn-menu-ui
Unit spawn menu restyled
2023-11-30 17:29:30 +01:00
Pax1601
f2dc4a1a00 Unit spawn menu restyled 2023-11-30 17:29:11 +01:00
Pax1601
eda5723a3c Merge pull request #620 from Pax1601/617-check-iads-respects-requested-units-and-add-unit-preview-on-spawn
617 check iads respects requested units and add unit preview on spawn
2023-11-30 15:55:36 +01:00
Pax1601
b044d9a6c0 Minor comments 2023-11-30 15:46:48 +01:00
Pax1601
125d5396b9 Fixed IADS creation
It now also considers airbases when creating the IADS. Fixed styling and unit types. Currently SAM Sites ranges are incorrect but will be fixed when database is updated
2023-11-30 15:36:31 +01:00
Pax1601
17b8b35a43 Added ATTACK state for ground and navy units 2023-11-30 13:08:43 +01:00
Pax1601
4bd017e3c7 Merge pull request #612 from Pax1601/542-spawn-menu-dropdowns-overlap-menu
Alignment fixed, spelling corrected
2023-11-30 11:12:52 +01:00
Pax1601
37447a7fd3 Merge pull request #613 from Pax1601/592-detect-if-installing-olympus-again-and-dont-prompt-to-set-olympusjson-properties
592 detect if installing olympus again and dont prompt to set olympusjson properties
2023-11-30 11:09:34 +01:00
Pax1601
1ed1dec65e Added full stop for Peekaboo 2023-11-30 11:08:48 +01:00
Pax1601
5e2e465813 Installer updated to allow preservation of old config 2023-11-30 11:01:45 +01:00
PeekabooSteam
335655406e Alignment fixed, spelling corrected 2023-11-30 09:41:43 +00:00
Pax1601
bf12d6330c Merge pull request #606 from Pax1601/566-ground-and-naval-units-have-roe-only-designated-option
Added a warning message for ground and navy units ROE
2023-11-29 12:57:41 +01:00
Pax1601
3cca3187ad Added a warning message for ground and navy units ROE 2023-11-29 12:57:17 +01:00
Pax1601
f4388a2cff Merge pull request #605 from Pax1601/594-bounds-for-normandy-map-are-missing
Bounds added for Normandy theatre
2023-11-29 11:54:33 +01:00
Pax1601
7cf5d324eb Bounds added for Normandy theatre 2023-11-29 11:54:16 +01:00
Pax1601
ec9ef2b0fb Merge branch 'main' of https://github.com/Pax1601/DCSOlympus 2023-11-29 11:06:34 +01:00
Pax1601
6c852d93a9 Minor tweak on splash screen when screen is very small 2023-11-29 11:06:31 +01:00
Pax1601
290067932e Merge pull request #604 from Pax1601/596-add-a-way-for-users-to-know-there-is-a-new-version-available
Added latest version number
2023-11-29 10:49:04 +01:00
Pax1601
4aa3a43604 Added latest version number
It pulses if a newer version is available
2023-11-29 10:46:43 +01:00
Pax1601
3c33696452 Create version.json
Added version file
2023-11-29 09:58:16 +01:00
Pax1601
3ea1ab8f30 Added link to wiki 2023-11-28 17:36:55 +01:00
Pax1601
76801f773d Merge pull request #601 from Pax1601/412-improve-importexport
412 improve importexport
2023-11-28 17:31:34 +01:00
Pax1601
de7eeec94a Completed import/export page 2023-11-28 17:30:59 +01:00
Pax1601
0723a3ab95 Merge branch 'main' into 412-improve-importexport 2023-11-28 17:15:41 +01:00
Pax1601
8ef48ad977 Implemented filename selector 2023-11-28 16:59:23 +01:00
Pax1601
ed24d1af60 Merge pull request #600 from Pax1601/fix-aim-errors
Fixed error in lead calculation code
2023-11-28 16:42:45 +01:00
Pax1601
e3dffb8245 Fixed error in lead calculation code 2023-11-28 16:41:43 +01:00
Pax1601
74310a5ad3 Fixed installation prompt about passwords 2023-11-27 21:26:48 +01:00
Pax1601
a2223165e8 Merge branch 'main' into 412-improve-importexport 2023-11-26 21:13:24 +01:00
Pax1601
a879761dc2 Installation fixes 2023-11-24 21:38:55 +01:00
Pax1601
124b909aa4 v0.4.8 2023-11-24 19:43:24 +01:00
Pax1601
858e9eb066 Merge pull request #591 from Pax1601/584-add-state-icon-for-scenic-aaa-functions
Added state icons for scenic functions
2023-11-24 17:53:02 +01:00
Pax1601
7415e0cb97 Added state icons for scenic functions
And fixed dropdowns in case of duplicate labels
2023-11-24 17:52:48 +01:00
Pax1601
915020ddc3 Merge pull request #590 from Pax1601/532-stop-any-previous-connection-requests-before-connecting-again
Added code to clear any previous connection attempt
2023-11-24 11:50:32 +01:00
Pax1601
95915489b2 Added code to clear any previous connection attempt 2023-11-24 11:49:09 +01:00
Pax1601
3e39c3351a Merge pull request #589 from Pax1601/520-south-atlantic-initial-viewpoint
Added bounds for South Atlantic map
2023-11-24 11:43:41 +01:00
Pax1601
244d32e7d2 Added bounds for South Atlantic map 2023-11-24 11:43:26 +01:00
Pax1601
16a79827b7 Merge pull request #588 from Pax1601/586-spawn-toggle-background-missing
Fixed toggles
2023-11-24 10:05:13 +01:00
Pax1601
bd6a36e9ea Merge pull request #587 from Pax1601/487-improve-simulated-firefights
Added indirect fire mode
2023-11-23 23:45:20 +01:00
Pax1601
771695af59 Added indirect fire mode 2023-11-23 23:45:00 +01:00
PeekabooSteam
e811c7bd46 Fixed toggles 2023-11-23 22:44:24 +00:00
Pax1601
20f99c287f Minor change in unit label dropdown
It now expands to fill the space, but it still overflows with long unit names as per #542
2023-11-23 20:32:42 +01:00
Pax1601
f464c9ae76 Merge pull request #585 from Pax1601/511-jf-17-isnt-assigned-to-any-roles-other-than-cap
Added JF-17 loadouts
2023-11-23 20:12:27 +01:00
Pax1601
15ccb3dc04 Added JF-17 loadouts 2023-11-23 20:11:54 +01:00
Pax1601
defe40d48f Merge pull request #583 from Pax1601/miss-on-purpose-tweaks
Added effect of acquisition range to wake units up
2023-11-23 20:09:43 +01:00
Pax1601
0f2622e821 Merge pull request #560 from Pax1601/524-units-will-not-perform-scenic-aaa-until-the-operate-as-toggle-is-toggled
Fixed missing reset of expected value of operateAs toggle
2023-11-23 20:09:09 +01:00
Pax1601
b442d238cd Fixed error in getUnitsVariable function 2023-11-23 20:08:37 +01:00
Pax1601
00f2a3c19d Merge branch 'main' into 524-units-will-not-perform-scenic-aaa-until-the-operate-as-toggle-is-toggled 2023-11-23 19:57:09 +01:00
Pax1601
dcbfdf8666 Added effect of acquisition range to wake units up
Note: alertness time constant suppressed
2023-11-23 16:40:18 +01:00
Pax1601
6e84423032 Merge pull request #577 from Pax1601/576-toggles-gone-walkabout
Fixed UCP toggles, added copy-paste control for plugins
2023-11-23 10:29:23 +01:00
PeekabooSteam
912ab75a96 Moved Database Manager Link 2023-11-22 17:55:39 +00:00
PeekabooSteam
1022fc2f0c Fixed UCP toggles, added copy-paste control for plugins 2023-11-22 17:15:23 +00:00
Pax1601
65edce855b Merge pull request #568 from Pax1601/loading-screen
Loading screen
2023-11-22 15:13:11 +01:00
Pax1601
0ba05d5795 Merge pull request #572 from Pax1601/540-grouped-units-cant-be-selected
Grouped units can be deleted now
2023-11-22 15:13:02 +01:00
Pax1601
1b17e17290 Added some TODO comments
And very minor refactoring
2023-11-22 15:12:28 +01:00
Pax1601
87957df1fb Fixed incorrect behaviour when rotating unit destinations
And a minor map code refactoring
2023-11-22 15:04:09 +01:00
Pax1601
d3f8d4eff7 Grouped units can be deleted now
Also added some performance optimizations on drawing of selected units and removed destination preview icon for single unit selection
2023-11-22 13:12:35 +01:00
Pax1601
3ffeed3b39 Merge pull request #569 from Pax1601/533-allow-users-to-edit-the-config-json-during-the-installation-process
533 allow users to edit the config json during the installation process
2023-11-22 11:35:06 +01:00
Pax1601
4197e4402c Relative paths for nwjs and node folders 2023-11-22 11:33:13 +01:00
Pax1601
1cfe6f5583 Added simple loading screen 2023-11-22 11:32:13 +01:00
Pax1601
ad5cb83abf Completed server version 2023-11-21 17:35:09 +01:00
Pax1601
f4a4882dbc Merge pull request #564 from Pax1601/563-map-icon-disappears-after-changing-map-type
We no longer LOSE the icon
2023-11-21 14:38:34 +01:00
Pax1601
ecb2cf182a Merge pull request #561 from Pax1601/Shredmetal-patch-1
Update LEGAL
2023-11-21 14:38:20 +01:00
Pax1601
6aea839e04 Added configurator GUI 2023-11-21 14:34:51 +01:00
PeekabooSteam
e20d2fa95a We no longer LOSE the icon 2023-11-20 20:33:41 +00:00
Pax1601
806d0cc52f Added ability for users to edit configuration during installation 2023-11-20 18:19:41 +01:00
Shredmetal
2a2baaf324 Update LEGAL 2023-11-21 01:02:03 +08:00
Pax1601
74989ec015 Fixed missing reset of expected value of operateAs toggle 2023-11-20 12:30:44 +01:00
Pax1601
31af3a53ce Merge pull request #559 from Pax1601/528-unknown-units-have-no-icons
Added default marker for unkown units
2023-11-20 11:43:42 +01:00
Pax1601
361d51b55d Merge pull request #545 from Pax1601/531-november-ui-cleanup
531 november UI cleanup
2023-11-20 09:45:36 +01:00
Pax1601
a12c09eba5 Minor refactoring 2023-11-20 09:44:59 +01:00
Pax1601
bcfe0653bd Merge pull request #544 from Pax1601/543-duplicated-categories-due-to-misspelling
Fixed typos
2023-11-20 09:35:10 +01:00
PeekabooSteam
c43bc763f3 Fixed typos 2023-11-19 13:47:24 +00:00
PeekabooSteam
85325c17ac More styling, added pulse to scenic actions from (?) 2023-11-19 11:17:00 +00:00
PeekabooSteam
178706f8de Finalised styling for UCP 2023-11-18 22:02:59 +00:00
Pax1601
51defbb8b2 Added default marker for unkown units 2023-11-18 19:01:47 +01:00
PeekabooSteam
84cf9aa27a More changes from the list 2023-11-17 22:44:15 +00:00
PeekabooSteam
a66098e080 Merge branch 'main' into 531-november-ui-cleanup 2023-11-17 21:46:58 +00:00
Pax1601
283b9e682e v0.4.7 2023-11-17 22:04:21 +01:00
Pax1601
8b5956e76b Merge pull request #536 from Pax1601/489-show-all-the-action-options-of-the-selected-units-even-if-some-units-dont-have-them
489 show all the action options of the selected units even if some units dont have them
2023-11-17 22:02:51 +01:00
Pax1601
017a89b945 getDesc().category reimplemented
unit:getCategory() reports "Airplane" for Helicopters
2023-11-17 22:02:32 +01:00
Pax1601
5bc685182b Merge branch 'main' into 489-show-all-the-action-options-of-the-selected-units-even-if-some-units-dont-have-them 2023-11-17 21:40:09 +01:00
Pax1601
f47fc2fb19 Merge pull request #535 from Pax1601/534-olympus-not-sending-data-with-dcs-open-beta-29148111
Changed unit:getCategory to Object.getCategory(unit)
2023-11-17 21:35:20 +01:00
Pax1601
11d6f25606 Changed unit:getCategory to Object.getCategory(unit)
And added some isExist guards
2023-11-17 21:34:50 +01:00
Pax1601
331692e3d3 Merge branch '489-show-all-the-action-options-of-the-selected-units-even-if-some-units-dont-have-them' of https://github.com/Pax1601/DCSOlympus into 489-show-all-the-action-options-of-the-selected-units-even-if-some-units-dont-have-them 2023-11-17 21:10:49 +01:00
Pax1601
7483225e0d Small tweak to login page 2023-11-17 21:10:46 +01:00
PeekabooSteam
f00df5ca3f Some changes done 2023-11-17 17:07:56 +00:00
Pax1601
22ae882032 Unit gets forcefully deselected when hidden 2023-11-17 17:45:10 +01:00
Pax1601
fbab82e4de Merge branch 'main' into 489-show-all-the-action-options-of-the-selected-units-even-if-some-units-dont-have-them 2023-11-17 17:26:56 +01:00
Pax1601
ca81d1c4ce Merge pull request #530 from Pax1601/529-add-favicon
Favicons
2023-11-17 17:24:03 +01:00
Pax1601
a1884ab19f Merge pull request #527 from Pax1601/522-flashpulse-robot-lock-when-trying-to-give-orders-to-protected-units
Lock flashes on protected robot interaction
2023-11-17 17:23:18 +01:00
Pax1601
8905cd5e85 Merge pull request #526 from Pax1601/523-selected-units-dont-get-hidden
Selected units now hidden on request
2023-11-17 17:22:36 +01:00
PeekabooSteam
8d5ed33ad8 Favicons 2023-11-17 11:35:55 +00:00
Pax1601
b747752b76 Fixed error in follow command 2023-11-17 07:59:04 +01:00
PeekabooSteam
4e13daa270 Lock flashes on protected robot interaction 2023-11-16 23:08:01 +00:00
PeekabooSteam
c00096bd9a Selected units now hidden on request 2023-11-16 22:26:09 +00:00
PeekabooSteam
210c1fbecf Added a selective interface for import and export 2023-11-16 21:44:40 +00:00
Pax1601
4a54011aac Large rework of context menus for units and map 2023-11-16 15:31:07 +01:00
PeekabooSteam
b89c5142b6 Merge and fix 2023-11-16 11:28:32 +00:00
PeekabooSteam
0421f6b8fe Fixed regex undefined 2023-11-16 11:16:54 +00:00
Pax1601
0c50141be6 v0.4.6 2023-11-15 16:42:24 +01:00
Pax1601
a71b8806e7 Update groundunitdatabase.json 2023-11-15 16:06:52 +01:00
Pax1601
e0a27c574f Merge pull request #519 from Pax1601/493-for-ground-units-add-marker-symbol-in-database
493 for ground units add marker symbol in database
2023-11-15 15:38:59 +01:00
Pax1601
8d7a49a31f Created group handlers 2023-11-15 15:38:16 +01:00
Pax1601
25e2c50438 Added unit marker to database and implemented better grouping 2023-11-14 17:43:24 +01:00
Pax1601
e3423ea9a3 Merged new databases 2023-11-14 07:53:01 +01:00
Pax1601
812112858c Merge branch 'main' into 493-for-ground-units-add-marker-symbol-in-database 2023-11-13 19:27:41 +01:00
Pax1601
8db1357904 Merge branch 'main' of https://github.com/Pax1601/DCSOlympus 2023-11-13 18:55:19 +01:00
Pax1601
bba0aa9f52 Fixed databasemanager overflow 2023-11-13 18:54:11 +01:00
Pax1601
1cc549b24a Added entry to databases 2023-11-13 18:02:08 +01:00
Pax1601
7cafeb73ca Added tags to unit spawn menu 2023-11-13 16:04:53 +01:00
Pax1601
772f082913 Tweaked installer message 2023-11-13 09:08:40 +01:00
Pax1601
9f7efe3018 Merge pull request #517 from Pax1601/437-f-14b-not-spawning-with-weapons
Fixed errors in loadouts scripts
2023-11-12 18:44:18 +01:00
Pax1601
a28584b08b Fixed errors in loadouts scripts 2023-11-12 18:43:49 +01:00
Pax1601
5cba46a482 Merge pull request #516 from Pax1601/437-f-14b-not-spawning-with-weapons
Fixed loadout generator adding exceptions for Tomcats
2023-11-12 17:43:37 +01:00
Pax1601
a15b7620eb Fixed loadout generator adding exceptions for Tomcats 2023-11-12 17:42:54 +01:00
PeekabooSteam
9ef6efa3e0 Mid-way commit 2023-11-12 16:18:31 +00:00
Pax1601
49bff88c4e Radio and TACAN frequencies are now clamped 2023-11-12 17:18:18 +01:00
Pax1601
80af34fa3e Merge pull request #515 from Pax1601/265-cloning-a-dead-unit-fails
Dead units can now be cloned
2023-11-12 16:36:04 +01:00
Pax1601
1d6f2644aa Dead units can now be cloned 2023-11-12 16:35:31 +01:00
Pax1601
dc61d364d1 Merge pull request #514 from Pax1601/448-on-chrome-fps-drops-to-single-digits-when-zoomed-in
Implemented custom fast renderer for range circles
2023-11-12 15:50:44 +01:00
Pax1601
78de9dd538 Implemented custom fast renderer for range circles
It's a bit hacky since I had to override a default leaflet renderer function. Works well but may be injected in a more elegant way.
2023-11-12 15:49:46 +01:00
Pax1601
ccaea5b9d1 Better unit explosion buttons design 2023-11-12 14:08:10 +01:00
Pax1601
e02e9de55d Updated databases 2023-11-09 19:27:32 +01:00
Pax1601
40da192dbb Merge pull request #512 from Pax1601/486-add-more-advanced-effects
486 add more advanced effects
2023-11-09 08:27:06 +01:00
Pax1601
c8254238c7 Scrollable unit control panel tweak 2023-11-09 08:26:43 +01:00
Pax1601
9caee0c77c Implemented buttons to apply advanced controls directly to units 2023-11-08 23:33:27 +01:00
Pax1601
b9830f0190 Merge branch 'main' into 486-add-more-advanced-effects 2023-11-08 22:04:52 +01:00
Pax1601
02a0a9b783 Merge pull request #504 from Pax1601/484-add-life-meter-to-ground-units
484 add life meter to ground units
2023-11-08 21:57:27 +01:00
Pax1601
ea1758a1a9 Added backend code for health display
And fixed the issue of ground units not being deleted correctly
2023-11-08 21:56:39 +01:00
PeekabooSteam
b43afd4e9c Export customisation working - but ugly. 2023-11-08 14:09:35 +00:00
PeekabooSteam
7700aa2030 Merge branch 'main' into 412-improve-importexport 2023-11-08 12:52:27 +00:00
Pax1601
d5d8391f63 Merge pull request #508 from Pax1601/494-make-the-installer-more-clear-specify-that-olympus-must-be-installed-in-savedgames
Changed message and fixed wrong installation folder after user selection
2023-11-08 10:17:40 +01:00
Pax1601
b508d2301b Changed message and fixed wrong installation folder after user selection 2023-11-08 10:16:33 +01:00
Pax1601
01b3336709 Merge pull request #507 from Pax1601/495-make-ui-port-configurable-from-olympusjson
Added port selection to config
2023-11-08 09:59:50 +01:00
Pax1601
6ba37aefd6 Added port selection to config 2023-11-08 09:59:21 +01:00
PeekabooSteam
e68683acb7 Export matrix reads from data 2023-11-07 22:04:09 +00:00
Pax1601
a804904ff5 Merge pull request #506 from Pax1601/dynamic-resizing
Dynamic resizing
2023-11-07 19:36:08 +01:00
Pax1601
eacb89176c Completed new resizable design 2023-11-07 17:37:19 +01:00
PeekabooSteam
ec971aa822 Merge branch 'main' into 484-add-life-meter-to-ground-units 2023-11-06 22:29:23 +00:00
PeekabooSteam
e1f404c647 Added some doc comments 2023-11-06 22:28:44 +00:00
PeekabooSteam
5f1e32d610 Conflict fix 2023-11-06 21:51:45 +00:00
PeekabooSteam
732ee2bbb9 Added + for naval and ground units 2023-11-06 21:49:54 +00:00
Pax1601
1e461250d5 Added advanced effects 2023-11-06 19:26:15 +01:00
Pax1601
f727174044 Testing of dynamic resizing 2023-11-06 18:30:59 +01:00
Pax1601
7edc687f7b Merge pull request #501 from Pax1601/499-spawn-menu-reorganisation
Air defence has its own spawn icon
2023-11-06 11:13:12 +01:00
Pax1601
596fbf0b87 Merge branch 'main' into 499-spawn-menu-reorganisation 2023-11-06 11:12:46 +01:00
PeekabooSteam
8dc48c10c3 Added dialog 2023-11-05 22:35:00 +00:00
PeekabooSteam
5db90e5896 Changed air defence form to extend ground units' form 2023-11-05 19:24:23 +00:00
PeekabooSteam
dd811def07 Added health bar 2023-11-05 19:11:42 +00:00
Pax1601
5273291e9a Merge pull request #503 from Pax1601/485-improve-miss-on-purpose
485 improve miss on purpose
2023-11-05 17:35:03 +01:00
Pax1601
130dbda499 Merge branch 'main' into 485-improve-miss-on-purpose 2023-11-05 17:34:56 +01:00
Pax1601
769aea7e4e Merge pull request #502 from Pax1601/500-log-in-form-needs-to-submit-when-pressing-enterreturn
500 log in form needs to submit when pressing enterreturn
2023-11-05 17:28:42 +01:00
Pax1601
fa3d65bde6 Completed miss on purpose functionality 2023-11-05 17:26:39 +01:00
PeekabooSteam
073281135c Fixed odd 'undefined' bug 2023-11-05 13:15:41 +00:00
PeekabooSteam
4c7f979e56 Merge branch '498-set-ucp-and-uip-toggles-into-olympus-context' into 500-log-in-form-needs-to-submit-when-pressing-enterreturn 2023-11-05 13:08:24 +00:00
PeekabooSteam
a5bfb4f8d2 Form submits on return press 2023-11-05 13:05:46 +00:00
PeekabooSteam
a04780f311 Merge branch 'main' into 500-log-in-form-needs-to-submit-when-pressing-enterreturn 2023-11-05 12:37:36 +00:00
PeekabooSteam
aad0fd22ad Air defence has its own spawn icon 2023-11-05 10:57:53 +00:00
Pax1601
bc1c3994d3 Merge branch 'main' into 485-improve-miss-on-purpose 2023-11-04 10:21:37 +01:00
Pax1601
840033aa6a Merge pull request #496 from Pax1601/468-robot-protection-toggle
468 robot protection toggle
2023-11-04 10:10:09 +01:00
Pax1601
9cc6e9e790 More work on miss on purpose 2023-11-04 09:57:18 +01:00
PeekabooSteam
b1ad2f409e Controlling panels and spawn menu from context 2023-11-03 22:36:35 +00:00
PeekabooSteam
7106646042 Updated landAtPoint logic 2023-11-03 18:28:05 +00:00
PeekabooSteam
31405119f0 Enabled mixed-group actions, fixed some helicopter messages. 2023-11-03 18:17:40 +00:00
PeekabooSteam
2e5ee93361 Tweaked colours. 2023-11-03 14:05:39 +00:00
PeekabooSteam
f981a661d5 Added lock image and tooltip/titles. 2023-11-03 13:29:09 +00:00
Pax1601
7e05bbf5e3 Improved scheduler logging 2023-11-03 11:37:09 +01:00
PeekabooSteam
4465f4a3bb PoC of robot protection 2023-11-02 23:03:17 +00:00
PeekabooSteam
ade4f183cd Commit so I can switch to another branch. 2023-11-02 18:22:42 +00:00
Pax1601
99dc61799f Merge branch 'main' of https://github.com/Pax1601/DCSOlympus 2023-11-02 17:24:39 +01:00
Pax1601
a213b94606 Minor fixes 2023-11-02 17:24:35 +01:00
Pax1601
6600ed8cbb Merge pull request #473 from Pax1601/357-map-context-switching
357 map context switching
2023-11-02 09:46:09 +01:00
PeekabooSteam
826bf12bd6 Merge branch 'main' into 357-map-context-switching 2023-10-31 20:30:18 +00:00
Pax1601
528e0db79c Updated demo.js 2023-10-31 17:48:09 +01:00
Pax1601
11a5fec195 Added effect of vertical velocity and of scatter and intensity 2023-10-30 15:56:10 +01:00
Pax1601
c0f3f3a40a Added scatter and intensity selectors in UI 2023-10-30 12:46:49 +01:00
Pax1601
88844db23a Added shots scatter and intensity variables to backend 2023-10-30 10:09:49 +01:00
Pax1601
31710b4e28 Updated legal text 2023-10-30 09:56:07 +01:00
Pax1601
42d2f6400b Merge pull request #476 from Pax1601/edits_legal
Update and rename COPYING to LEGAL
2023-10-28 14:42:03 +02:00
Pax1601
2701d6adc0 Merge pull request #472 from Pax1601/464-proposed-hot-group-behaviour-tweak-to-be-like-lakecraft-shift-+-1-appends-to-group
464 proposed hot group behaviour tweak to be like lakecraft shift + 1 appends to group
2023-10-28 14:40:06 +02:00
Pax1601
5a4b203937 Merge pull request #477 from Pax1601/463-delete-needs-three-buttons
Added new delete method dialog
2023-10-28 14:38:42 +02:00
Pax1601
74cb7877cb Merge pull request #474 from Pax1601/460-sam-threat-rings-appear-when-they-shouldnt
460 sam threat rings appear when they shouldnt
2023-10-28 14:36:24 +02:00
PeekabooSteam
f954338c27 Added new delete method dialog 2023-10-27 17:26:41 +01:00
Shredmetal
cc729b1d25 Update and rename COPYING to LEGAL
Cleaned up the legal text
2023-10-26 16:45:58 +08:00
PeekabooSteam
4a4b1d6b00 Merge branch 'main' of https://github.com/Pax1601/DCSOlympus into main 2023-10-20 11:04:24 +01:00
Pax1601
d14741f3b1 Merge pull request #471 from Pax1601/470-spawn-menu-qty-sorted-alphabetically-not-numerically
Unit spawn qty now sorted numerically.
2023-10-19 01:29:45 +02:00
PeekabooSteam
94684fff9f More spacing tweaking 2023-10-18 13:54:33 +01:00
PeekabooSteam
44deef4a5a Tweaked spacing 2023-10-18 13:23:25 +01:00
PeekabooSteam
67079e1c0b Munitions constrained to a scrollable 2023-10-18 13:20:54 +01:00
PeekabooSteam
005ffc55ce var => let 2023-10-18 12:15:59 +01:00
PeekabooSteam
1691b0b30c Range rings only showing when necessary 2023-10-18 12:13:51 +01:00
PeekabooSteam
e4e55430ca Optimised quantity option generator 2023-10-18 11:17:05 +01:00
PeekabooSteam
4d31d9d748 Unit spawn qty now sorted numerically. 2023-10-18 10:23:50 +01:00
PeekabooSteam
1413f596fb Improved filter logic 2023-10-17 11:27:21 +01:00
PeekabooSteam
c0aee94da5 Hotgroup logic updated 2023-10-16 19:45:51 +01:00
PeekabooSteam
8e545346e6 Exploratory tweaks 2023-10-16 09:13:44 +01:00
PeekabooSteam
2b1272c70d Removed needless [] 2023-10-15 11:53:12 +01:00
PeekabooSteam
121f9b6ec3 Tweaked string functions 2023-10-15 11:51:49 +01:00
PeekabooSteam
6f9722143e Took shift and alt requirements from T key for demo data 2023-10-15 10:59:39 +01:00
PeekabooSteam
5bf62f4b93 Removed needless context.ts ref 2023-10-15 10:24:41 +01:00
PeekabooSteam
79319dd006 Shortcuts can be set to a context 2023-10-15 10:22:03 +01:00
PeekabooSteam
fdcff53697 Shortcuts now settable to a context. 2023-10-15 09:43:26 +01:00
Pax1601
24cd2729db Startup script updated 2023-10-15 09:54:57 +02:00
Pax1601
9ca2703f16 More package build updates 2023-10-14 12:32:24 +02:00
Pax1601
1a579c5755 Build scripts updated 2023-10-14 12:13:32 +02:00
Pax1601
7344c761fe Small bugfixes 2023-10-14 11:07:39 +02:00
Pax1601
203a981fed Merge pull request #459 from Pax1601/small-issues
Modified isTanker and isAWACS to isActiveTanker and isActiveAWACS
2023-10-13 16:35:52 +02:00
Pax1601
d3faf65900 Modified isTanker and isAWACS to isActiveTanker and isActiveAWACS 2023-10-13 16:35:11 +02:00
Pax1601
5efbf81090 Merge pull request #458 from Pax1601/small-issues
Fixed wrong cursor type
2023-10-13 15:23:51 +02:00
Pax1601
9ffab7d531 Fixed wrong cursor type 2023-10-13 15:23:29 +02:00
Pax1601
0886ff1be1 Merge pull request #456 from Pax1601/small-issues
Removed preferCanvas option for map
2023-10-13 12:49:12 +02:00
Pax1601
2893182713 Removed preferCanvas option for map
Which apparently causes Chrome to slow down when zoomed in. More test required to check performance.
2023-10-13 12:48:51 +02:00
Pax1601
478bb18ab2 Updated version number 2023-10-11 18:05:58 +02:00
Pax1601
eae07ca6cc Merge pull request #455 from Pax1601/small-issues
Small issues
2023-10-11 18:01:46 +02:00
Pax1601
2264faabfc Updated databases 2023-10-11 18:01:27 +02:00
Pax1601
4cdf82cb14 Database fixes 2023-10-11 15:20:24 +02:00
Pax1601
5a7e511dac Merge pull request #450 from Pax1601/small-issues
Small issues
2023-10-11 12:56:04 +02:00
Pax1601
a29eb3d343 Added stop command to helicopters 2023-10-11 12:55:41 +02:00
Pax1601
3c65aefe61 Fixed destination preview handle showing incorrectly 2023-10-11 12:49:44 +02:00
Pax1601
867d7697d2 Moved tanker/AWACS button to control panel 2023-10-11 12:37:16 +02:00
Pax1601
ebee6610a3 Added tanker and off state icons 2023-10-11 08:00:43 +02:00
Pax1601
c26691c2fc Merge pull request #449 from Pax1601/small-issues
Added "land at point" state for helicopters
2023-10-10 17:11:05 +02:00
Pax1601
a038d6e999 Added "land at point" state for helicopters 2023-10-10 17:10:29 +02:00
Pax1601
aa1550ca01 Merge pull request #446 from Pax1601/small-issues
TACAN and radio can now be set on carriers
2023-10-10 15:49:15 +02:00
Pax1601
80eaa643c9 TACAN and radio can now be set on carriers 2023-10-10 15:27:42 +02:00
Pax1601
d67d9c1afd Merge pull request #445 from Pax1601/small-issues
Added Strike Eagle
2023-10-10 15:18:43 +02:00
Pax1601
af15fc123d Added Strike Eagle 2023-10-10 15:18:19 +02:00
Pax1601
0ce56e6529 Merge pull request #444 from Pax1601/metadata
Added abilities and description to spawn menu
2023-10-10 14:34:37 +02:00
Pax1601
258164c285 Added abilities and description to spawn menu 2023-10-10 14:34:19 +02:00
Pax1601
746617deb0 Merge pull request #443 from Pax1601/427-toggle-mouse-info-format-latlng-grid-decimals
Can now get LatLng, MGRS and UTM location data
2023-10-09 10:46:15 +02:00
Pax1601
c51d00673d Merge pull request #441 from Pax1601/440-refuelling-misspelled-as-refueling
Missing Ls added
2023-10-09 10:45:32 +02:00
PeekabooSteam
bedd21522a Can now get LatLng, MGRS and UTM location data 2023-10-08 16:44:55 +01:00
PeekabooSteam
382013d0ca Missing Ls added 2023-10-06 16:56:09 +01:00
Pax1601
3794207d97 Added missing button 2023-10-06 16:20:43 +02:00
Pax1601
2805323cfa Merge pull request #439 from Pax1601/small-bugfixes
Small bugfixes
2023-10-06 16:08:38 +02:00
Pax1601
0db2e56e32 Completed range rings 2023-10-06 16:07:54 +02:00
Pax1601
a33ad18322 Merge pull request #438 from Pax1601/432-display-in-game-time-and-elapsed-time
432 display in game time and elapsed time
2023-10-06 14:28:40 +02:00
PeekabooSteam
885ef6b357 Time font weight now bold 2023-10-05 17:59:09 +01:00
PeekabooSteam
2435072b07 'Connected' messaged is now a clock/timer 2023-10-05 15:12:07 +01:00
Pax1601
d462bd16b5 Implemented range rings 2023-10-05 13:51:13 +02:00
Pax1601
b08a3835dc Some database changes, started to add threat rings 2023-10-05 11:02:02 +02:00
Pax1601
ace0908d84 Merge pull request #436 from Pax1601/328-add-simple-miss-on-purpose-mode-for-aaa
328 add simple miss on purpose mode for aaa
2023-10-05 10:04:52 +02:00
Pax1601
5186fffb5e Merge commit 2023-10-05 10:04:40 +02:00
Pax1601
c5160c9baa Modified database editor 2023-10-05 10:02:23 +02:00
Pax1601
63acc94558 Merge pull request #434 from Pax1601/433-remove-scale-tool-replace-with-space-efficient-version-of-server-performance-monitor
433 remove scale tool replace with space efficient version of server performance monitor
2023-10-05 09:11:38 +02:00
PeekabooSteam
fc82407d9a Grammatical update 2023-10-04 20:55:01 +01:00
Pax1601
a0ac9eb285 Merge branch 'main' into 328-add-simple-miss-on-purpose-mode-for-aaa 2023-10-04 21:21:08 +02:00
PeekabooSteam
fc835eaba7 Remove debugger line 2023-10-04 20:11:55 +01:00
PeekabooSteam
f7b3e5bf77 Moved server performance indicators; control tips working again. 2023-10-04 20:07:49 +01:00
Pax1601
e41484186b Merge pull request #431 from Pax1601/422-coalitions-can-see-each-others-bullseye
Bullseyes now coalition-limited
2023-10-04 14:55:02 +02:00
PeekabooSteam
e0bfe6a96c Bullseyes now coalilition limited 2023-10-04 13:14:36 +01:00
Pax1601
228f184548 Merge pull request #430 from Pax1601/423-some-improvements-on-units-list
Improved visuals and truncated unit names
2023-10-04 14:11:44 +02:00
PeekabooSteam
892ce4c453 Improved visuals and truncated unit names 2023-10-03 21:57:51 +01:00
Pax1601
569d45d58a Added "operate as" toggle 2023-10-03 17:31:44 +02:00
Pax1601
ce5f00e075 Added options for miss on purpose and scenic AAA 2023-10-03 15:25:45 +02:00
Pax1601
4da407008e More work on miss on purpose 2023-10-02 21:52:04 +02:00
Pax1601
96e79cc8ae Merge pull request #429 from Pax1601/map-bugfixes
Multiple bugfixes
2023-10-02 17:30:59 +02:00
Pax1601
ee93806e19 Multiple bugfixes 2023-10-02 17:29:54 +02:00
Pax1601
fcb02602a0 Reformatted some files 2023-10-02 10:12:24 +02:00
Pax1601
5d4fdf1e76 Merge pull request #411 from Pax1601/410-update-shortcuts-to-plugin-friendly-format
Converted for plugin use
2023-10-02 09:03:30 +02:00
Pax1601
9af59fb51c Merge pull request #418 from Pax1601/417-unit-list
417 unit list
2023-10-02 09:01:28 +02:00
Pax1601
6493d37b7c Merge pull request #421 from Pax1601/419-server-is-paused
User now alerted when server is paused.
2023-10-02 08:59:48 +02:00
PeekabooSteam
a82c033da0 Timeout much shorter when server is paused to reduce update lag 2023-10-02 07:15:00 +01:00
PeekabooSteam
91484e1c98 Can now toggle unit labels with L 2023-10-01 21:42:23 +01:00
PeekabooSteam
3db5202cdf User now alerted when server is paused. 2023-10-01 20:53:30 +01:00
PeekabooSteam
5a28974027 Added additive hotgroup select 2023-10-01 20:12:36 +01:00
PeekabooSteam
4d694f1f74 Added Escape and no-tab-swap-hotgroups 2023-10-01 20:02:45 +01:00
Pax1601
5035c408e7 Basic scenic and miss on purpose AAA modes 2023-10-01 19:15:56 +02:00
Pax1601
d209f98265 Fixed wrong init of altitude sliders in spawn menu 2023-10-01 15:47:23 +02:00
PeekabooSteam
85b1404321 More sorting, changed keybind to U 2023-10-01 12:00:10 +01:00
PeekabooSteam
72c6e4e94e Using proper add and not being lazy 2023-09-30 22:33:47 +01:00
PeekabooSteam
eb46ed2768 Emitted decs 2023-09-30 22:30:29 +01:00
PeekabooSteam
7f4f01c9e8 Alpha of unit list 2023-09-30 22:19:48 +01:00
Pax1601
691d2746e6 Merge pull request #416 from Pax1601/385-setting-altitude-to-silly-number
Fixed wrong callback call from slider
2023-09-30 19:27:33 +02:00
Pax1601
d41dfc1e0d Fixed wrong callback call from slider 2023-09-30 19:27:16 +02:00
Pax1601
493898bd4a Merge pull request #414 from Pax1601/329-add-basic-automatic-firefight
329 add basic automatic firefight
2023-09-30 19:04:18 +02:00
Pax1601
8ebe427269 Enabled direction randomization 2023-09-30 19:03:59 +02:00
Pax1601
48d4ff97a0 Fixed elevation calculations 2023-09-30 18:53:32 +02:00
PeekabooSteam
83769bf539 Converted for plugin use 2023-09-29 18:09:38 +01:00
Pax1601
0954bf2923 Merge branch 'main' of https://github.com/Pax1601/DCSOlympus 2023-09-29 17:21:58 +02:00
Pax1601
a2f5f82e28 Removed redundant loadout roles 2023-09-29 17:21:53 +02:00
Pax1601
a82af04fca Merge pull request #409 from Pax1601/Pax1601-patch-1
Update ci.yml
2023-09-29 15:35:03 +02:00
Pax1601
a1a876429c Update ci.yml 2023-09-29 15:34:54 +02:00
Pax1601
58830fa53e Update package-lock.json 2023-09-29 15:30:50 +02:00
Pax1601
15c8e32fef Merge pull request #408 from Pax1601/407-create-a-simple-plugin-to-manage-units-database
407 create a simple plugin to manage units database
2023-09-29 15:28:07 +02:00
Pax1601
59c915d8bc Updated lock file for checks 2023-09-29 15:26:06 +02:00
Pax1601
968ff61979 Database editor (almost) completed
Liveries editor still to add, but no one in his right mind would change them manually since we have scripts for that
2023-09-29 15:24:08 +02:00
Pax1601
94901849e6 More work on database editing 2023-09-28 17:33:38 +02:00
Pax1601
ff42126b0e Merge branch '329-add-basic-automatic-firefight' into 407-create-a-simple-plugin-to-manage-units-database 2023-09-28 09:09:02 +02:00
Pax1601
39ddf10ca7 Added code to save edited database to disk 2023-09-27 21:46:05 +02:00
Pax1601
7a24e5d39d More work on database manager 2023-09-27 17:08:15 +02:00
Pax1601
e9100504a0 More work on database manager 2023-09-25 17:35:17 +02:00
Pax1601
099cbfdf75 Added more code to handle loadouts 2023-09-24 20:03:21 +02:00
Pax1601
28afef8847 Merge branch 'main' into 407-create-a-simple-plugin-to-manage-units-database 2023-09-24 10:22:45 +02:00
Pax1601
010b1e1cce Exported definitions and fixed interfaces 2023-09-24 10:21:28 +02:00
Pax1601
274ce76c2b Basic plugin structure 2023-09-22 17:58:37 +02:00
Pax1601
f3155e618b Added target altitude effect to simulated fire fight 2023-09-22 16:05:03 +02:00
Pax1601
18307caab3 Merge branch 'main' into 329-add-basic-automatic-firefight 2023-09-22 15:15:58 +02:00
Pax1601
2e279b8876 Update .gitignore 2023-09-22 15:15:22 +02:00
Pax1601
0da878f50f Merge pull request #396 from Pax1601/391-control-tips-mouseover-option
Tips added for formations
2023-09-22 15:06:33 +02:00
Pax1601
ecfb3644be Merge pull request #403 from Pax1601/388-double-click-select-all-only-on-unselected
Unit doubleclick fixed
2023-09-22 15:05:42 +02:00
Pax1601
c87d18fd8e Merge pull request #406 from Pax1601/394-retrieve-ground-altitude-at-mouse-coordinates-location
394 retrieve ground altitude at mouse coordinates location
2023-09-22 15:03:55 +02:00
Pax1601
5810f9232a Completed ground elevation provider and added to mouse info panel 2023-09-22 15:03:35 +02:00
PeekabooSteam
fb8eb6f357 Unit doubleclick fixed 2023-09-22 08:36:07 +01:00
PeekabooSteam
7eb76ff32d Added hotgroup 2023-09-21 22:54:09 +01:00
PeekabooSteam
c3d3de9984 Conflict 2023-09-21 22:23:47 +01:00
PeekabooSteam
cc2549dbdf Tips added for formations 2023-09-21 22:19:01 +01:00
Pax1601
7efa8eab18 Added api enpoint to retrieve altitude at coordinates 2023-09-21 17:37:13 +02:00
Pax1601
376ae9ec1c Update ci.yml 2023-09-21 15:03:59 +02:00
Pax1601
9882b2999f Update ci.yml 2023-09-21 14:58:54 +02:00
Pax1601
3667a75244 Merge pull request #393 from Pax1601/Pax1601-patch-1
Update ci.yml
2023-09-21 14:53:19 +02:00
Pax1601
4089448b53 Update ci.yml 2023-09-21 14:53:09 +02:00
Pax1601
fec11869a8 Update ci.yml 2023-09-21 13:31:21 +02:00
Pax1601
e7e56d1cdb Removed caching 2023-09-21 13:28:32 +02:00
Pax1601
9db01d6060 Modified deploy 2023-09-21 13:23:39 +02:00
Pax1601
ed38397631 Removed types definitions 2023-09-21 13:17:44 +02:00
Pax1601
b3dddc0570 Added types folder 2023-09-21 13:10:39 +02:00
Pax1601
6fa06de245 Added job needs 2023-09-21 13:06:10 +02:00
Pax1601
834ddde1d0 Merged actions 2023-09-21 13:03:14 +02:00
Pax1601
5d4348f8a7 Create static.yml 2023-09-21 12:54:55 +02:00
Pax1601
36f2917995 Synced lock file 2023-09-21 11:03:03 +02:00
Pax1601
eedbec175d Fixed working directory 2023-09-21 10:58:18 +02:00
Pax1601
344ec86722 Executing workflow in client directory 2023-09-21 10:56:17 +02:00
Pax1601
952d1e5895 Added typescript dependency 2023-09-21 10:51:31 +02:00
Pax1601
a371484f38 Removed wrong workflow steps 2023-09-21 10:48:43 +02:00
Pax1601
1567a6fd27 Workflow test 2023-09-21 10:42:12 +02:00
Pax1601
e0f96b5cca Added package.json 2023-09-21 10:38:51 +02:00
Pax1601
8f6e48642c Added package-lock 2023-09-21 10:34:48 +02:00
Pax1601
0c4c10dc1a Fixed folder typo 2023-09-21 10:27:38 +02:00
Pax1601
de6b78d762 Automatic workflow test 2023-09-21 10:24:15 +02:00
Pax1601
6b77f32548 Merge pull request #392 from Pax1601/391-control-tips-mouseover-option
Can now specify a selector or a mouseover
2023-09-21 10:09:10 +02:00
Pax1601
fd2b7a00e1 Moved gun data into databases jsons, made core read from databases 2023-09-20 18:58:21 +02:00
PeekabooSteam
818886a65e Can now specify a selector or a mouseover 2023-09-20 17:30:58 +01:00
Pax1601
0ca31afc91 Merge branch 'main' into 329-add-basic-automatic-firefight 2023-09-20 17:34:02 +02:00
Pax1601
024a73da63 Merge pull request #384 from Pax1601/poc-plugins-v1
Poc plugins v1
2023-09-20 16:27:29 +02:00
Pax1601
744b0063d8 Merge pull request #390 from Pax1601/308-desired-speed-sliders-dots-not-showing-in-client
Fix issue #308 - remove color-mix and set precomputed css variable value
2023-09-20 16:26:29 +02:00
amouillard
355923f680 Fix issue #308 - remove color-mix and set precomputed css variable value 2023-09-20 16:19:24 +02:00
Pax1601
44332a2004 Moved server code to dedicated ServerManager class 2023-09-18 17:10:14 +02:00
Pax1601
2f125e3d0e Completed plugins framework
More work required to define all interfaces for the useful classes in the @types folder
2023-09-15 23:07:15 +02:00
Pax1601
588228c050 Implemented basic Plugin handling 2023-09-15 17:05:26 +02:00
Pax1601
8977ba9b6d Added basic simulated firefight state 2023-09-15 09:36:27 +02:00
PeekabooSteam
ad06117b78 Refined a bit more. 2023-09-14 21:10:52 +01:00
PeekabooSteam
01b30ccf12 Refined the options a bit. 2023-09-14 20:56:34 +01:00
PeekabooSteam
7f75905d5d Resolved conflicts 2023-09-14 18:59:20 +01:00
PeekabooSteam
798856c649 Nearly final commit of control tips' v1 2023-09-14 17:55:01 +01:00
Pax1601
9acd358080 Merge pull request #383 from Pax1601/374-right-click-drag-error
Fix issue #374
2023-09-13 19:15:27 +02:00
amouillard
31c112157a Fix issue #374 2023-09-13 18:47:24 +02:00
PeekabooSteam
d2e162edbf Removed directory creation. 2023-09-12 19:07:36 +01:00
PeekabooSteam
6aaffe20d9 Plugin (not) work. 2023-09-12 19:04:52 +01:00
Pax1601
6d32b20117 More documentation 2023-09-12 17:54:59 +02:00
Pax1601
bd894704b1 v0.4.4 2023-09-10 17:26:33 +02:00
Pax1601
7af2162b50 Merge pull request #379 from Pax1601/368-spawn-points-can-integer-overflow-on-the-server-side
Switched from unsigned int to int for spawn points
2023-09-09 19:15:34 +02:00
Pax1601
c735d108d4 Merge pull request #378 from Pax1601/refactor
Refactor
2023-09-09 19:08:31 +02:00
Pax1601
6a2ffc936e More bugfixing, set CAS and ASL to be default modes 2023-09-09 19:07:09 +02:00
Pax1601
74d5480587 Minor refactor and bug fixing 2023-09-08 22:41:37 +02:00
Pax1601
89c39c7038 Code documentation and refactoring 2023-09-08 17:40:53 +02:00
Pax1601
61f955cfeb Added copy ability in RTS mode 2023-09-08 16:25:12 +02:00
Pax1601
744adee94c Merge branch 'main' into 345-allow-for-copy-and-paste-in-rts-mode 2023-09-07 16:56:55 +02:00
Pax1601
267c0b037d Merge branch 'main' into 345-allow-for-copy-and-paste-in-rts-mode 2023-09-07 13:03:50 +02:00
Pax1601
860414b7b2 Merge pull request #377 from Pax1601/370-write-better-method-of-determining-if-a-command-has-been-completed
370 write better method of determining if a command has been completed
2023-09-07 13:03:05 +02:00
Pax1601
09bf361d44 Added ability to delete original cloned units
Mostly useful to group units together
2023-09-07 13:02:14 +02:00
Pax1601
e2f80c5788 Fixed table deepcopy 2023-09-06 20:19:47 +02:00
Pax1601
a96a6eb57d Added command hash control 2023-09-05 17:25:32 +02:00
PeekabooSteam
803f9a7fd6 Started working on shurtcuts plugin 2023-09-05 09:43:36 +01:00
Pax1601
71a141e0b8 Merge pull request #373 from Pax1601/372-pan-up-doesnt-work-via-keyboard
Pan up now pans
2023-09-05 09:42:55 +02:00
PeekabooSteam
a99b85e646 More plugin design 2023-09-04 23:56:48 +01:00
PeekabooSteam
333169d18c Pan up now pans 2023-09-04 22:57:32 +01:00
PeekabooSteam
a08eb418a6 Stash commit to open a new branch. 2023-09-04 22:54:01 +01:00
Pax1601
cbb878cf96 Fixed errors in lua clone units 2023-09-04 21:44:22 +02:00
Pax1601
d684f91a5a Merge branch '370-write-better-method-of-determining-if-a-command-has-been-completed' into 345-allow-for-copy-and-paste-in-rts-mode 2023-09-04 19:02:10 +02:00
Pax1601
f2de4cd34c Completed implementation 2023-09-04 19:01:50 +02:00
Pax1601
3d076a605b Merge branch '370-write-better-method-of-determining-if-a-command-has-been-completed' into 345-allow-for-copy-and-paste-in-rts-mode 2023-09-04 17:31:58 +02:00
Pax1601
3607f88e18 Converted clone function to pure lua 2023-09-04 17:27:09 +02:00
Pax1601
a0d2bb11ed Switched from unsigned int to int for spawn points 2023-09-04 16:06:41 +02:00
Pax1601
ede245a37d Implemented executed commands provider 2023-09-04 12:41:54 +02:00
Pax1601
aca1e112d2 Merge pull request #371 from Pax1601/369-coalition-colour-incorrectly-set-on-spawn-menu-in-rts-mode
Minor bugfix
2023-09-04 11:00:46 +02:00
Pax1601
bf5d6dac18 Minor bugfix 2023-09-04 11:00:28 +02:00
Pax1601
182ce4da42 Hotfix 2023-09-03 17:55:58 +02:00
Pax1601
41e2e6fa59 Updated documentation 2023-09-03 16:45:48 +02:00
Pax1601
fe0e964a5a Merge pull request #367 from Pax1601/343-add-ability-to-select-unit-nation-and-livery
v0.4.4
2023-09-03 16:34:34 +02:00
Pax1601
bee35f9ee9 v0.4.4 2023-09-03 16:34:11 +02:00
Pax1601
e66a1bb5b4 Merge pull request #366 from Pax1601/343-add-ability-to-select-unit-nation-and-livery
343 add ability to select unit nation and livery
2023-09-03 16:32:06 +02:00
Pax1601
8490997604 Merge branch 'main' into 343-add-ability-to-select-unit-nation-and-livery 2023-09-03 15:18:35 +02:00
Pax1601
6898d1df6d Completed unit nation selection and new spawn menu 2023-09-03 15:15:11 +02:00
PeekabooSteam
4d863bb894 First commit 2023-09-03 12:08:35 +01:00
Pax1601
a338e5fa26 Added docs folder 2023-09-01 16:44:47 +02:00
Pax1601
695adc8acb More work on units spawn menu and started to add documentation 2023-09-01 16:13:15 +02:00
Pax1601
fab7d26191 More work on scripted spawn menu 2023-08-31 17:25:47 +02:00
Pax1601
3959139dd8 Started conversion to scripted unit spawn menu 2023-08-30 20:01:25 +02:00
Pax1601
1298669f1c Merge pull request #365 from Pax1601/358-right-click-long-press-for-unit-action-context-menu
358 right click long press for unit action context menu
2023-08-30 09:13:13 +02:00
Pax1601
4fe40f5ff7 Merge branch 'main' into 358-right-click-long-press-for-unit-action-context-menu 2023-08-30 09:13:06 +02:00
Pax1601
a10c113c42 Right click long press menu completed 2023-08-30 09:10:42 +02:00
Pax1601
d5f4b5c711 More work on country selection 2023-08-29 19:17:36 +02:00
Pax1601
93707af56b Merge pull request #363 from Pax1601/350-in-rts-mode-helicopters-are-shown-with-a-distinctive-shape-that-allows-to-identify-them
Non visually detected units are now drawn with generic symbol
2023-08-29 14:59:42 +02:00
Pax1601
0ae694c1a8 Non visually detected units are now drawn with generic symbol 2023-08-29 14:59:23 +02:00
Pax1601
0b53fb19b7 Merge pull request #362 from Pax1601/356-add-marker-for-deployed-smoke
Create colored smoke markers
2023-08-29 10:02:50 +02:00
Pax1601
cc386e86b9 Create colored smoke markers 2023-08-29 10:02:18 +02:00
Pax1601
a922d7de31 Merge pull request #361 from Pax1601/349-add-ability-to-hide-units-names
349 add ability to hide units names
2023-08-29 09:39:27 +02:00
Pax1601
8e7d64f0e4 Remove shortcut and added option in dropdown 2023-08-29 09:39:07 +02:00
Pax1601
0bc406538b Merge pull request #360 from Pax1601/351-double-click-on-a-unit-should-select-all-units-of-that-time-on-the-screen
351 double click on a unit should select all units of that time on the screen
2023-08-28 17:14:23 +02:00
Pax1601
9547559e00 Refactoring and merge 2023-08-28 17:14:03 +02:00
Pax1601
70783dc828 Merge branch 'main' into 351-double-click-on-a-unit-should-select-all-units-of-that-time-on-the-screen 2023-08-28 17:05:34 +02:00
Pax1601
85bdd791b8 Implemented long press right click menu 2023-08-28 15:48:46 +02:00
Pax1601
9d7e61556d Added unit country selection 2023-08-27 15:59:50 +02:00
Pax1601
4d954688a9 v0.4.3 2023-08-26 10:58:51 +02:00
Pax1601
eb80c39b98 Loadouts changes and spawn menu update 2023-08-24 16:16:59 +02:00
Pax1601
b1e4dd62b0 Merge branch 'main' of https://github.com/Pax1601/DCSOlympus 2023-08-15 15:02:52 +02:00
Pax1601
9db07b2ff8 Reordered scripts folder 2023-08-15 15:02:49 +02:00
Pax1601
df432b1635 Merge pull request #355 from Pax1601/208-fix-airport-info-and-spawn-menu-1
Moved code from broken branch.
2023-08-15 12:26:49 +02:00
Pax1601
e96cb2716d Moved airfields database to public/database folder 2023-08-15 12:26:05 +02:00
Pax1601
3055378b86 Minimal code refactoring 2023-08-15 11:19:44 +02:00
Pax1601
e4b34b1dbc Merge pull request #354 from Pax1601/348-ctrl+click-on-units-on-the-units-control-panel-should-remove-them-from-the-list
Ctrl-click-deselect
2023-08-15 11:09:40 +02:00
Pax1601
f544b0afaa Minimal code refactoring 2023-08-15 11:09:00 +02:00
PeekabooSteam
06e1cbeb7e Changed events to use pre-existing names 2023-08-14 23:12:14 +01:00
PeekabooSteam
6da84dd7b0 Moved code from broken branch. 2023-08-13 15:34:59 +01:00
PeekabooSteam
07b69fe96f Added dbl-click select but it's buggy AF 2023-08-12 19:31:08 +01:00
PeekabooSteam
94b8a9270d Ctrl-click-deselect 2023-08-12 17:45:38 +01:00
PeekabooSteam
e0a3fd1795 Corrected some variable names. 2023-08-12 16:46:37 +01:00
Pax1601
14552913a3 Merge pull request #352 from Pax1601/343-add-ability-to-select-unit-nation-and-livery
343 add ability to select unit nation and livery
2023-08-12 12:37:21 +02:00
Pax1601
a76ab8e037 Removed debug flag 2023-08-12 12:32:40 +02:00
Pax1601
6c496e428f Added costs to blueprints 2023-08-12 12:31:28 +02:00
Pax1601
46ca6ac327 Merge branch 'main' into 343-add-ability-to-select-unit-nation-and-livery 2023-08-10 17:52:43 +02:00
Pax1601
27d77f97db Added livery ID 2023-08-10 17:50:10 +02:00
Pax1601
f24d7277a0 Update README.md 2023-08-04 19:09:29 +02:00
Pax1601
94d2ce7fbe Minor bugfixing on unit visibility 2023-08-04 19:07:46 +02:00
Pax1601
9391e78b16 Merge branch 'main' of https://github.com/Pax1601/DCSOlympus 2023-08-04 12:56:05 +02:00
Pax1601
902e4a45ac Updated version number 2023-08-04 12:55:46 +02:00
Pax1601
67b2ceeee7 Merge pull request #344 from Pax1601/bugfixing
Bugfixing
2023-08-04 12:53:48 +02:00
Pax1601
f111e513c5 More bugfixing 2023-08-04 12:53:14 +02:00
Pax1601
2f839624a8 More frontend bugfixing 2023-08-04 11:05:21 +02:00
Pax1601
187fcd3d85 Moved unit databases outside of source and started adding country flags 2023-08-02 12:11:07 +02:00
Pax1601
66f08e8fce Fixed ROEs 2023-07-31 14:08:36 +02:00
Pax1601
f97b1e5f47 Merge pull request #332 from WoodyXP/331-Fix-AH-64-Loadout-Issue
Updated the Apache loadout with the correct CLSIDs
2023-07-31 10:05:07 +02:00
Pax1601
c3b4c4ae36 Multiple bugfixes 2023-07-31 08:08:20 +02:00
Pax1601
fd7f4b9772 Multiple bug fixes and optimizations 2023-07-28 17:43:31 +02:00
Pax1601
bac2c430ef Merge pull request #342 from Pax1601/340-dont-install-development-node-modules
Added package command to prune dev modules
2023-07-27 19:22:35 +02:00
Pax1601
3f1c9942c3 Merge pull request #341 from Pax1601/333-missiles-and-bombs-are-not-being-exported
333 missiles and bombs are not being exported
2023-07-27 19:22:08 +02:00
Pax1601
80ed675cbc Completed transition to weapons handler 2023-07-27 19:21:34 +02:00
Pax1601
6d434e48a1 Added missing files 2023-07-27 17:16:21 +02:00
Pax1601
7961870ac4 Added package command to prune dev modules 2023-07-27 17:15:57 +02:00
Pax1601
0150ae9df1 Splitted weapons and units managers 2023-07-27 16:27:59 +02:00
Pax1601
875f3ebe68 Added handler to detect units and weapons creation 2023-07-26 22:39:26 +02:00
Pax1601
3fac8a5663 Fixed missing isAlive value 2023-07-26 10:58:39 +02:00
Pax1601
3c11e1c2a1 Front end tweaks 2023-07-25 17:54:26 +02:00
Pax1601
81871b596b Completed backend for advanced RTS functions 2023-07-23 22:30:25 +02:00
Pax1601
8ffd5ef972 Started to add advanced RTS options to backend 2023-07-21 19:51:23 +02:00
Pax1601
4ae72b7c0b Front end tweaks
Added visibility options and server log panel
2023-07-21 17:33:24 +02:00
Pax1601
5613394a2c Completed RTS front end 2023-07-20 17:49:41 +02:00
Pax1601
2e113b468a Merge branch 'performance-optimization' into 326-add-advanced-rts-options 2023-07-20 11:02:26 +02:00
Pax1601
018e37cd2a Minor graphic tweaks 2023-07-20 10:59:48 +02:00
Pax1601
1d5f24dc1a Added check on repeated commands on scheduler 2023-07-19 20:56:19 +02:00
Pax1601
cbb8920de7 Styled the server load panel 2023-07-19 17:41:05 +02:00
Pax1601
7eb6cadc4e Merge remote-tracking branch 'origin/performance-optimization' into 326-add-advanced-rts-options 2023-07-19 17:03:35 +02:00
Pax1601
a4db569fbd Performance optimizations for large unit counts 2023-07-18 21:56:56 +02:00
WoodyXP
2582dfd3c3 Updated the Apache loadout with the correct CLSIDs 2023-07-16 01:15:10 +02:00
Pax1601
e9a3ecb9eb Started to implement RTS advanced options 2023-07-13 17:52:05 +02:00
Pax1601
785647ad24 Merge branch 'pr/325' 2023-07-13 11:28:43 +02:00
WoodyXP
72cd4de55f Added the correct name for every naval unit 2023-07-12 19:08:24 +02:00
WoodyXP
e882123692 Removed naval units mods 2023-07-12 17:08:08 +02:00
Pax1601
a949a9bf22 Tweaks and implemented workaround to MIST bug 2023-07-12 17:01:03 +02:00
WoodyXP
75c897eb5b Change function to filter by era due to change of value type 2023-07-12 16:41:55 +02:00
WoodyXP
b48f74f879 Added coalition to naval units 2023-07-12 16:31:46 +02:00
WoodyXP
c6eeeac7c1 Added coaltion to helicopter units 2023-07-12 15:50:14 +02:00
WoodyXP
9c1edd2a86 Added coalition to groundunits and fixed some eras and reformatted aircraft db 2023-07-12 15:43:13 +02:00
WoodyXP
133c447d5d Added coalition to aircraftdatabase.ts and switched era list to string 2023-07-12 14:57:15 +02:00
Pax1601
b78cd27e4e Merge pull request #323 from Pax1601/319-add-basic-rts-functions
319 add basic rts functions
2023-07-11 18:56:57 +02:00
Pax1601
5d29c82244 Commented not implemented functions 2023-07-11 18:56:37 +02:00
Pax1601
f379f6b998 Tweaks to IADS creation and menus 2023-07-11 17:30:05 +02:00
Pax1601
439111f7a0 Merge branch 'main' into 319-add-basic-rts-functions 2023-07-11 14:34:59 +02:00
Pax1601
55372d5a5b Merge pull request #322 from WoodyXP/321-Adding-Era-To-Helicopter-DB
Added era to all helicopter units
2023-07-11 14:30:09 +02:00
Pax1601
13e3b93e93 More tweaks on frontend 2023-07-10 16:58:54 +02:00
WoodyXP
7a6929e34b Added era to all helicopter units 2023-07-10 14:07:12 +02:00
Pax1601
a0763a6450 Minor tweaks and fixes 2023-07-09 18:48:21 +02:00
Pax1601
2d4202979f Merge branch '312-add-ability-to-draw-areas-and-fill-with-iads' into 319-add-basic-rts-functions 2023-07-07 17:27:20 +02:00
Pax1601
327d5c74d9 Add basic visibility functions and ability to spawn multiple units in group 2023-07-07 17:26:41 +02:00
Pax1601
3bad83a02f Merge pull request #316 from WoodyXP/313-fix-getByRange-function
Changed the function that it gets all the units with a specified range
2023-07-06 13:10:17 +02:00
Pax1601
eee97294df Merge branch 'main' into 313-fix-getByRange-function 2023-07-06 13:10:10 +02:00
Pax1601
56427d84ad Merge pull request #317 from WoodyXP/131-add-navalunitdb
131 add navalunitdb
2023-07-06 13:08:48 +02:00
Pax1601
fc1983d554 Merge pull request #318 from Pax1601/312-add-ability-to-draw-areas-and-fill-with-iads
312 add ability to draw areas and fill with iads
2023-07-06 13:00:14 +02:00
Pax1601
30568e54f7 Converted demo data creation to binary data 2023-07-06 12:59:08 +02:00
Pax1601
1af98cc54f Tweaks and optimizations of front end 2023-07-05 20:14:48 +02:00
Stefan Arsic
fb3a628ad0 Update unitPayloads.lua 2023-07-05 18:55:47 +02:00
Stefan Arsic
79b0eeae9e Update unitPayloads.lua 2023-07-05 18:49:53 +02:00
WoodyXP
3b2757a022 Added all ship to the naval database and made a function to filter by ship type 2023-07-05 18:47:02 +02:00
WoodyXP
fa9f1e05ea Updated the navalunitdb and added new type range into unit types 2023-07-04 17:36:23 +02:00
WoodyXP
fff0c8244e Merge branch 'main' into 131-add-navalunitdb 2023-07-04 16:32:54 +02:00
Stefan Arsic
5777632114 Create navalunitdatabase.ts 2023-07-04 14:04:08 +02:00
WoodyXP
d013337c5e Changed the function that it gets all the units with a specified range 2023-07-03 19:06:40 +02:00
Pax1601
ec91376da2 More fixes in binary data transmission 2023-07-02 22:13:53 +02:00
Pax1601
807cdfeb5b Added code to update ammo and contacts 2023-07-01 12:31:30 +02:00
Pax1601
9f6da4845a Merge pull request #315 from WoodyXP/313-add-sam-information-V2
Added Era and Range to Sams and Ground Units V2
2023-06-29 17:16:45 +02:00
Pax1601
211cf48681 More fixes on binary data transmission 2023-06-29 08:10:14 +02:00
Pax1601
4d9dd364b6 Converted data transfer to binary key-value method 2023-06-26 18:53:04 +02:00
Stefan Arsic
52dfcebc14 Update groundunitsdatabase.ts 2023-06-26 14:14:53 +02:00
Stefan Arsic
2bce51fca6 Update groundunitsdatabase.ts 2023-06-26 14:14:21 +02:00
Stefan Arsic
3a2048f3ec Updated Era 2023-06-26 14:12:57 +02:00
Stefan Arsic
63e602afb1 Fixed some more era types 2023-06-26 09:24:02 +02:00
Stefan Arsic
7a71065b76 Fixed Typo and Era type 2023-06-26 09:21:11 +02:00
Pax1601
1989219579 Fixed update error and added update trigger 2023-06-25 19:04:12 +02:00
Pax1601
dd2e858db4 More work on client conversion to binary data 2023-06-23 17:32:38 +02:00
Pax1601
916752301a Started transition to binary data on client side 2023-06-22 22:17:00 +02:00
Pax1601
1d62b4c115 Transition to json to binary data transfers 2023-06-22 17:28:40 +02:00
WoodyXP
258f1136e2 Added Era and Range to Sams and Ground Units V2 2023-06-22 16:10:48 +02:00
Pax1601
9d0e2239e4 Added new method for handling data 2023-06-21 20:05:41 +02:00
WoodyXP
5555c44c4e Merging pax main 2023-06-21 18:26:12 +02:00
WoodyXP
f80a91ca1e Fixing Merge conflict 2023-06-21 18:20:01 +02:00
Pax1601
61d6d9f16c Added better temporary markers and more map functions 2023-06-20 17:36:21 +02:00
Pax1601
635c487c2b Added area editing functions 2023-06-19 17:14:53 +02:00
Pax1601
f9f02c3eb0 Added more functions to edit Coalition Areas 2023-06-18 19:55:01 +02:00
Pax1601
ad3b1cb167 Added basic ability to draw poligons 2023-06-16 17:32:09 +02:00
Pax1601
ca7c52ff67 Fixed error in mouse coordinates
Will need refining
2023-06-13 17:58:43 +02:00
Pax1601
feae9a4806 Minor bugfixes 2023-06-13 17:42:18 +02:00
Pax1601
6c24533393 Merge branch '153-add-ability-to-take-control-of-existing-units-from-me' 2023-06-13 17:07:21 +02:00
Pax1601
4f2debeb4f Added ability to take control of units
And bugfixes
2023-06-13 17:03:04 +02:00
Pax1601
27b56deb45 Merge pull request #302 from Pax1601/Advanced-spawn-and-control-options
Advanced spawn and control options
2023-06-12 10:00:29 +02:00
Pax1601
1d4ecf5316 Completed advanced controls also for units 2023-06-11 18:21:12 +02:00
Pax1601
fd00cffa15 Added backend for advanced commands 2023-06-06 17:27:11 +02:00
Pax1601
ab3a017b55 Minor change in distance representation 2023-06-06 14:53:46 +02:00
Pax1601
f84ff1c7b2 Merge branch 'Minor-bugfixes' into Advanced-spawn-and-control-options 2023-06-06 12:52:02 +02:00
Pax1601
1d20a3b017 Common unit functions moved to unit class 2023-06-06 12:50:18 +02:00
Pax1601
dca3438db0 Added backend for altitude type, onOff, follow roads and explosion 2023-06-05 21:22:22 +02:00
Pax1601
6c52f4de59 Added front end for area attacks 2023-06-05 17:30:37 +02:00
Pax1601
d508263f9e Minor fixes and mouse measuring restyle 2023-06-05 16:21:49 +02:00
Pax1601
ec0b179e32 Fixed confirmation menu for human deletion 2023-06-01 17:33:18 +02:00
Pax1601
0bc2fc592f Merge branch 'main' into Advanced-spawn-and-control-options 2023-06-01 17:30:38 +02:00
Pax1601
601cf35556 Merge branch 'main' into Advanced-spawn-and-control-options 2023-06-01 17:25:01 +02:00
Pax1601
156c730352 Merge pull request #300 from Pax1601/61-allow-for-spawning-of-pre-made-ground-unit-groups
Added more templates for sam sites
2023-06-01 17:22:19 +02:00
Pax1601
83f87f1e16 Added more templates for sam sites 2023-06-01 17:22:01 +02:00
Pax1601
1dd4014e61 Completed frontend controls 2023-06-01 17:18:14 +02:00
Pax1601
ed2a9d9155 Merge pull request #299 from Pax1601/bobprofisker-patch-1
Add files via upload
2023-06-01 15:58:48 +02:00
bobprofisker
bf006e725a Add files via upload
I haven't checked this works verbatim on my PC, worked on the server but bundled both files together as one for ease and didn't check it didn't error, can't see why it would though pretty simple and correct for our server will let the olympus parrots speak.
2023-05-30 21:45:03 +01:00
Pax1601
4087dbde21 Minor optimizations 2023-05-29 17:09:06 +02:00
Pax1601
982ff838a6 Merge pull request #298 from Pax1601/296-create-airbases-api
296 create airbases api
2023-05-29 15:20:17 +02:00
PeekabooSteam
8d2583264e Merge branch 'main' into 296-create-airbases-api 2023-05-29 13:44:14 +01:00
Pax1601
2db035457c Merge pull request #281 from Pax1601/164-add-confirmation-message-when-deleting-a-player
Added (crude) confirm function
2023-05-29 14:38:00 +02:00
Pax1601
7989ec2ca5 Merge pull request #297 from Pax1601/To-add-airfield-JSON-files-2023_05_24
To add airfield json files 2023 05 24
2023-05-29 14:36:10 +02:00
Pax1601
9d4f55a157 Merge pull request #294 from Pax1601/293-replace-missing-atc-images
Icons now back
2023-05-29 14:35:45 +02:00
PeekabooSteam
a56db1bdfe Merge branch 'main' into 296-create-airbases-api 2023-05-29 12:10:10 +01:00
PeekabooSteam
64ff5ce539 Airbases API added 2023-05-29 12:08:21 +01:00
Pax1601
45bb49cfe1 Added switch toggle 2023-05-27 10:06:34 +02:00
PeekabooSteam
669ec358ac Icons now back 2023-05-25 21:17:17 +01:00
PeekabooSteam
3ff182e200 Merge pull request #280 from Pax1601/278-put-real-mission-times-into-atc
278 put real mission times into atc
2023-05-24 23:33:44 +01:00
PeekabooSteam
4b709ce33b Conflict resolution 2023-05-24 23:32:53 +01:00
PeekabooSteam
a5a2a803c6 Fixed casing. 2023-05-24 23:13:47 +01:00
PeekabooSteam
e6d642994c Improved check for humans 2023-05-24 21:55:09 +01:00
PeekabooSteam
4e9eab2cce Warning now only shows when humans are in the selection. 2023-05-24 21:38:35 +01:00
Stefan Arsic
e4e9e44eea Create persiangulf.json 2023-05-24 18:34:03 +02:00
Pax1601
9586910f03 Added AGL/ASL switch 2023-05-24 17:37:41 +02:00
Shredmetal
f26dfa5011 Update caucasus.json to match airfield names with game files 2023-05-24 22:24:50 +08:00
Shredmetal
f9aae2bccf Add Nevada airfield data 2023-05-24 22:19:16 +08:00
Shredmetal
bdff79c725 Merge pull request #291 from Pax1601/main
Minor fixes (merging from main)
2023-05-24 22:18:14 +08:00
Pax1601
ec872e181d Minor fixes 2023-05-24 15:15:44 +02:00
Shredmetal
1c86002ca5 Merge pull request #290 from Pax1601/main
Merge main commits into airfield JSON addition branch
2023-05-24 18:35:18 +08:00
Shredmetal
3ee6c57d33 Added Marianas, fixed ICAO for Akrotiri 2023-05-24 18:32:55 +08:00
Pax1601
5f2f2a83dd Merge pull request #279 from Pax1601/coalitionChecker
Add files via upload
2023-05-24 11:09:21 +02:00
Pax1601
1b0a0825e6 Merge pull request #288 from Pax1601/273-add-ability-for-units-to-retain-relative-position
273 add ability for units to retain relative position
2023-05-24 11:08:27 +02:00
Pax1601
3009a73a66 Completed transition to injected svgs 2023-05-24 11:07:41 +02:00
Pax1601
e7ce9ac76d More svg injection, removing stringed html from code 2023-05-24 08:21:04 +02:00
Stefan Arsic
80a4ea1ab9 Create caucasus.json 2023-05-23 20:33:08 +02:00
Shredmetal
5dd9ed42b0 Added syria airfield data 2023-05-24 01:33:33 +08:00
Shredmetal
5c5fa928e7 Delete client/src/airfield_data directory 2023-05-24 01:32:23 +08:00
Shredmetal
2597fb659f Rename syria_airfields.json to syriaAirfields.json 2023-05-24 01:31:54 +08:00
Shredmetal
d4d28d39ae Add files via upload
JSON file containing information on all airfields on the Syria map
2023-05-24 00:26:12 +08:00
Pax1601
a2664dc676 Refactoring of files and more svg tidy up 2023-05-22 17:39:33 +02:00
Pax1601
32cb147a02 More restyling with svg images 2023-05-22 08:22:50 +02:00
PeekabooSteam
05a8085e06 ATC now 'live'; added visual improvemnts. 2023-05-20 22:17:04 +01:00
bobprofisker
0392c43835 Add files via upload
Wasn't sure if you were serious about wanting the code for how to get all the coalitions out of the mission file, this is how you do it and how you can get a string for what it actually is if that is needed.
2023-05-20 22:16:41 +01:00
Pax1601
a6583cc317 Added resources router 2023-05-19 21:20:33 +02:00
Pax1601
bf88c9b951 Implemented group destination spacing 2023-05-19 14:38:28 +02:00
Pax1601
9cc0058e32 Minor graphic tweaks 2023-05-19 09:17:11 +02:00
Pax1601
9eb295d9a1 Added auto selection of units in group 2023-05-18 17:48:03 +02:00
Pax1601
10d250e3a5 Added basic template spawning 2023-05-18 09:09:20 +02:00
PeekabooSteam
2b155c4ed3 ATC clocks now synched to mission time 2023-05-17 19:36:12 +01:00
PeekabooSteam
4a93c1eead Added (crude) confirm function 2023-05-17 16:59:36 +01:00
Pax1601
0b490e4ce2 Merge pull request #277 from Pax1601/264-add-avanced-unit-control-options
264 add avanced unit control options
2023-05-17 16:17:33 +02:00
Pax1601
03a8c93e9e Added advanced unit controls
Radio, ECM, countermeasures and prohibits
2023-05-17 16:17:17 +02:00
Pax1601
84cca6b9d1 Merge pull request #276 from Pax1601/Update-UnitDataBase-and-AircraftDatabase-(DO-NOT-MERGE-WITHOUT-TESTING)
Update unit data base and aircraft database (do not merge without testing)
2023-05-17 12:07:52 +02:00
Pax1601
0f353641ed Merge branch 'main' into Update-UnitDataBase-and-AircraftDatabase-(DO-NOT-MERGE-WITHOUT-TESTING) 2023-05-17 12:07:37 +02:00
Pax1601
16c37a3445 Merge pull request #275 from Pax1601/271-add-unit-hotgroups
271 add unit hotgroups
2023-05-17 11:43:34 +02:00
Pax1601
25d411b1be Completed hotgroups
Single hotgroup per unit
2023-05-17 11:43:14 +02:00
Pax1601
493c75b6e7 Added hotgroups ui and basic functions
User interaction still TBD
2023-05-15 17:37:20 +02:00
Pax1601
1ca2c66b45 Merge pull request #270 from Pax1601/v0.2.2-fixes
Fixed #261 and #262
2023-05-15 15:09:23 +02:00
Pax1601
772c065a73 Fixed #261 and #262 2023-05-15 15:08:56 +02:00
Pax1601
71ef292763 Added frontend controls for emissions and countermeasures 2023-05-11 17:24:56 +02:00
Pax1601
98a6053a85 v0.2.1 release 2023-05-10 17:07:26 +02:00
Pax1601
7d3debfa7a Merge pull request #259 from Pax1601/221-dont-allow-to-give-tasks-to-human-players
Removed options to command human units
2023-05-10 16:54:52 +02:00
Pax1601
847234633a Removed options to command human units 2023-05-10 16:54:36 +02:00
Pax1601
47d9ff2e10 Merge pull request #258 from Pax1601/236-clean-up-server-from-dead-units
Optimized transmission of data of dead units
2023-05-10 16:14:15 +02:00
Pax1601
e69294b98c Optimized transmission of data of dead units
Dead units only transmit basedata. Empty fields and empty units are removed from update packages.
2023-05-10 16:13:55 +02:00
Pax1601
cf3cdcbd44 Merge pull request #257 from Pax1601/210-fix-ordinance-indicators-below-unit-markers
Ordnance markers are now painted correctly
2023-05-10 11:50:44 +02:00
Pax1601
7545e848d6 Ordnance markers are now painted correctly 2023-05-10 11:50:26 +02:00
Pax1601
d146a47e71 Merge pull request #255 from Pax1601/38-user-authentication-missing
38 user authentication missing
2023-05-10 08:59:21 +02:00
Pax1601
91f8996fba Implemented basic authentication
Also fixed Tankers and AWACS which now operate as expected
2023-05-10 08:59:02 +02:00
Pax1601
57b74bd1b1 Added frontend code for authentication 2023-05-09 15:41:04 +02:00
Pax1601
865be6283c Merge branch 'main' of https://github.com/Pax1601/DCSOlympus 2023-05-05 17:12:16 +02:00
Pax1601
e0636b53f0 Added tristate coalition switch 2023-05-05 17:11:28 +02:00
Pax1601
987c8ee41c Merge pull request #254 from Pax1601/216-increase-ui-reactivity
Removed 200ms delay and small UI fixes
2023-05-04 17:34:08 +02:00
Pax1601
e54a70ffa8 Removed 200ms delay and small UI fixes 2023-05-04 17:32:55 +02:00
Pax1601
fcf1e2d94a Merge pull request #253 from Pax1601/186-style-dropdown-scrollbars
Partially styled, fixed custom fonts
2023-05-04 16:03:47 +02:00
Pax1601
35648b67f5 Partially styled, fixed custom fonts 2023-05-04 16:03:28 +02:00
Pax1601
f0dc581261 Merge pull request #252 from Pax1601/217-dropdowns-dont-close-when-clicking-outside-of-them
Dropdowns now close when clicking outside of them
2023-05-04 09:54:43 +02:00
Pax1601
7ecfc5afef Dropdowns now close when clicking outside of them 2023-05-04 09:54:26 +02:00
Pax1601
e3b88d4e35 Merge pull request #251 from Pax1601/220-add-temporary-marker-for-units-spawning
Added temporary spawn marker
2023-05-03 19:15:21 +02:00
Pax1601
669ee510d3 Added temporary spawn marker 2023-05-03 19:15:00 +02:00
Pax1601
b8edc500c4 Merge pull request #250 from Pax1601/241-ground-units-can-not-be-copy-pasted
Ground units can now be copy-pasted
2023-05-03 10:08:37 +02:00
Pax1601
dc57028a3c Ground units can now be copy-pasted 2023-05-03 10:07:38 +02:00
Pax1601
9eb01654c6 Merge pull request #249 from Pax1601/213-request-spawn-on-airfield
Takeoff task changed to TakeoffParkingHot
2023-05-03 09:22:21 +02:00
Pax1601
8539314984 Takeoff task changed to TakeoffParkingHot 2023-05-03 09:22:00 +02:00
Pax1601
cb24a19d17 Small fixes to map panning 2023-05-02 15:50:55 +02:00
Pax1601
bd7700efce Merge pull request #248 from Pax1601/245-map-cant-be-panned-with-arrows-if-unit-is-selected
Multiple map panning fixes and improvements
2023-05-02 14:30:59 +02:00
Pax1601
a23bdd4b33 Multiple map panning fixes and improvements 2023-05-01 21:51:46 +02:00
Pax1601
7427c7059c Fixed error due to missing declarations 2023-05-01 11:12:21 +02:00
Shredmetal
d32923ffe8 Added AircraftDatabase with era
DO NOT MERGE WITHOUT TESTING. This will break olympus as of the date of upload.
2023-05-01 17:05:16 +08:00
Pax1601
89a71ef04e Merge pull request #243 from Pax1601/209-update-follow-functionality-for-ordering-units
209 update follow functionality for ordering units
2023-05-01 10:37:59 +02:00
Pax1601
640f764354 Implemented as described in issue 2023-05-01 10:37:40 +02:00
Shredmetal
2dad717a42 Updated GroundUnitsDatabase
This will cause the current build to crash as it does not recognise the "effective_target" key: value pair. Do not merge into main until this has been addressed.
2023-05-01 15:54:36 +08:00
Pax1601
ee08d9d48e Started work on better follow functionality
And other minor fixes
2023-04-28 17:32:28 +02:00
Pax1601
bf365270ae Merge pull request #230 from Pax1601/218-add-humandcs-controlledolympus-controller-icon
218 add humandcs controlledolympus controller icon
2023-04-28 15:43:22 +02:00
Pax1601
6ec2235114 Fixed units jumping back 2023-04-27 16:06:08 +02:00
Pax1601
8f7071510b Merge pull request #225 from Shredmetal/Add-loadouts-to-aircraftdatabase-and-unipayloads-22/4
Add files via upload
2023-04-27 12:27:48 +02:00
Shredmetal
1f72612255 Add files via upload
fixed issues with the tomcat loadouts in use - ISSUE WILL RESURFACE IF NEW LOADOUTS ADDED. Remember to change the unitPayloads lua together with the AircraftDatabase
2023-04-27 02:45:04 +08:00
Shredmetal
94c5765bc6 Add files via upload
fixed references to aircraftdatabase
2023-04-27 02:43:08 +08:00
Pax1601
04c7fc3741 Added human and DCS controlled icons 2023-04-26 17:42:17 +02:00
Pax1601
40bcd46677 Added minimap and scale 2023-04-26 16:49:01 +02:00
Shredmetal
ab736adabe Add files via upload
Helicopterdatabase
2023-04-26 05:19:55 +08:00
Pax1601
f4fd516d92 Merge pull request #214 from Shredmetal/Add-loadouts-to-aircraftdatabase-and-unipayloads-22/4
Changed aircraftdatabase.ts and unitpayloads.lua
2023-04-24 19:23:03 +02:00
Shredmetal
4c3cfc608b Add files via upload
Added MiG-21Bis Fox-1 only loadout
2023-04-24 18:54:47 +08:00
Shredmetal
6ae23509a6 Add files via upload
added MiG-21Bis loadout, fox 1 only
2023-04-24 18:53:49 +08:00
Shredmetal
20077417af Add files via upload
replacing deleted unitpaylods
2023-04-22 23:47:41 +08:00
Shredmetal
673e00c0e8 Delete unitPayloads.lua
Delete to reuploaded amended unitpayloads
2023-04-22 23:36:36 +08:00
Shredmetal
197159fc2a Add files via upload
Updated aircraftdatabase.ts
2023-04-22 23:33:06 +08:00
Shredmetal
1ca0029407 Delete aircraftdatabase.ts
Delete to reupload amended file
2023-04-22 23:31:07 +08:00
Pax1601
b72d92ffd7 Fixed installer 2023-04-22 10:07:21 +02:00
Pax1601
e04e4b2dec Merge pull request #203 from Pax1601/146-add-in-game-clock-time-to-data-stream
Implemented
2023-04-21 19:10:31 +02:00
Pax1601
35709987e7 Implemented
Added date, start time, elapsed time, current time
2023-04-21 19:10:03 +02:00
Pax1601
bcc6b5b5c3 Merge pull request #202 from Pax1601/200-multiple-errors-referring-to-script
Issue fixed by updating MIST and checking method existance
2023-04-21 19:00:51 +02:00
Pax1601
a047a04d09 Issue fixed by updating MIST and checking method existance 2023-04-21 19:00:29 +02:00
Pax1601
f6d16944c2 Added loadouts 2023-04-21 18:10:09 +02:00
Pax1601
ee361f12f2 Merge pull request #201 from Pax1601/194-atc-tower-assign-altitude
Adding missing files.
2023-04-20 20:20:59 +02:00
PeekabooSteam
14cdec9615 Adding missing files. 2023-04-20 19:14:19 +01:00
Pax1601
5cff54bfde Merge branch 'main' of https://github.com/Pax1601/DCSOlympus 2023-04-20 17:28:49 +02:00
Pax1601
a9e18e42d3 Added missing planes 2023-04-20 17:28:46 +02:00
Pax1601
6ce9b2ddea Merge pull request #199 from Pax1601/feature-atc-tower
Feature atc tower
2023-04-20 15:50:50 +02:00
PeekabooSteam
06f10cd399 Merge pull request #198 from Pax1601/194-atc-tower-assign-altitude
Added assigned speeds, alts, select unit.
2023-04-20 14:23:57 +01:00
PeekabooSteam
3124a0f6b5 Added assigned speeds, alts, select unit. 2023-04-20 14:22:16 +01:00
dpassoni
090973a3d1 Updated version 2023-04-20 12:36:43 +02:00
Pax1601
992b1d40c9 Merge pull request #196 from Pax1601/73-add-tankers-and-awacs-spawning
73 add tankers and awacs spawning
2023-04-20 12:18:57 +02:00
Pax1601
41be6402cd Merge branch 'main' into 73-add-tankers-and-awacs-spawning 2023-04-19 16:35:37 +02:00
Pax1601
c3c84b2115 Follow, tankers and AWACS completed 2023-04-19 16:30:14 +02:00
Pax1601
f24c57cc18 Follow feature completed 2023-04-19 10:19:56 +02:00
Pax1601
cfd98e74ea Added states and more work on custom formations 2023-04-18 11:01:31 +02:00
Pax1601
be69aeb69e Custom formations 2023-04-17 18:01:23 +02:00
PeekabooSteam
79f616cf8d Merge pull request #195 from Pax1601/193-atc-tower-manually-sort-strips
Flights now sortable.
2023-04-16 23:42:04 +01:00
PeekabooSteam
d77735581a Flights now sortable. 2023-04-16 23:34:00 +01:00
Pax1601
77d39c17b8 More work on follow and tanking (added combo tasks) 2023-04-16 20:24:33 +02:00
PeekabooSteam
3eefe441b4 Merge pull request #192 from Pax1601/188-atc-tower-add-plane-to-strip-board-via-click
Can add flights by click.
2023-04-16 13:15:56 +01:00
PeekabooSteam
e84fa7caaa Can add flights by click. 2023-04-16 12:58:14 +01:00
PeekabooSteam
a3d919bad9 Merge pull request #190 from Pax1601/187-atc-tower-list-planes-being-monitored
Flights now listed by board.
2023-04-14 23:13:46 +01:00
PeekabooSteam
8707982769 Flights now listed by board. 2023-04-14 23:11:55 +01:00
Pax1601
39698c66a3 More work on follow and tanking 2023-04-14 17:30:10 +02:00
Pax1601
b56f1ca547 Fixed checkbox and frequency 2023-04-14 07:59:24 +02:00
Pax1601
4a90193426 Added functions to set TACAN and radio frequencies 2023-04-13 08:09:15 +02:00
Pax1601
7eee469bed More work on advanced settings dialog 2023-04-12 17:21:36 +02:00
Pax1601
316261e01e Started to implement advanced settings 2023-04-11 20:30:59 +02:00
Pax1601
df2aef498f Updated version numbers 2023-04-11 20:30:19 +02:00
Pax1601
f4bb484c7d Merge pull request #179 from Pax1601/atc-mission-board
Atc mission board
2023-04-11 15:23:09 +02:00
Pax1601
f4ddbbd1af Merge pull request #184 from Pax1601/180-unit-loadout-overflows-unitinfopanel
String management for loadout items.
2023-04-11 15:22:04 +02:00
Pax1601
c3233ad999 Merge pull request #185 from Pax1601/181-dropdowns-can-overflow-to-window-page
Dropdowns limited to 382px.  Ground unit types are automatically sorted
2023-04-11 15:21:22 +02:00
Pax1601
1f51d69126 Added basic tanker and AWACS enroute tasks
Tanker not working propertly yet, frequency setting still needed
2023-04-11 15:20:17 +02:00
PeekabooSteam
14ae0d083f Dropdowns limited to 382px. Ground unit types are automatically sorted 2023-04-09 15:22:27 +01:00
PeekabooSteam
8d951410e5 String management for loadout items. 2023-04-09 10:49:40 +01:00
PeekabooSteam
7605dd26ff Resolved conflicts 2023-04-09 09:54:21 +01:00
Pax1601
1b093782c3 Merge pull request #182 from Pax1601/176-minus-keystroke-zooms-out-and-brings-up-unit-list
Removed callback at "minus" keypress
2023-04-09 10:12:41 +02:00
Pax1601
2947d55bc5 Merge pull request #183 from Pax1601/163-f-15c-instant-action-cc-bomber-intercept-crashes-olympus
Added check on existance of mist structures
2023-04-09 10:12:29 +02:00
Pax1601
103fcde426 Removed callback at "minus" keypress 2023-04-09 10:11:51 +02:00
Pax1601
3193eb0021 Added check on existance of mist structures 2023-04-09 10:08:49 +02:00
Pax1601
0456bbef52 Minor bugfix on demo data 2023-04-09 09:48:49 +02:00
Pax1601
c54c7d2d78 Merge pull request #174 from Pax1601/147-speed-and-altitude-controls-jumping-back
Sliders no longer jump after update.
2023-04-08 15:16:07 +02:00
Pax1601
9c834e4072 Merge pull request #170 from Pax1601/149-loadout-numbers-overflowing
Aligned numbers within pills.
2023-04-08 15:04:51 +02:00
Pax1601
b10522498b Merge pull request #171 from Pax1601/111-measurebox-shows-000-when-measuring-north-should-read-360
111 measurebox shows 000 when measuring north should read 360
2023-04-08 15:01:44 +02:00
Pax1601
fd23fd3034 Merge pull request #172 from Pax1601/148-missing-scrollbar-for-units-buttons
Added scrollable to selected units' list; bit of tidying up.
2023-04-08 15:00:06 +02:00
Pax1601
3aa6d27ed3 Merge pull request #177 from Pax1601/175-keystrokes-in-input-fields-are-triggering-shortcuts
keyEventWasInInput() function added.
2023-04-08 14:55:36 +02:00
Pax1601
b98c392f79 Merge pull request #178 from Pax1601/121-spawn-context-menu-and-airbase-menu-overflow-window
Clipping is now less bad.
2023-04-08 14:54:15 +02:00
PeekabooSteam
071942b632 Slightly nicer PoC. 2023-04-04 23:38:08 +01:00
PeekabooSteam
5dda45ad22 Clipping is now less bad. 2023-04-04 19:16:00 +01:00
PeekabooSteam
6ffcb76f03 keyEventWasInInput() function added. 2023-04-04 15:51:11 +01:00
PeekabooSteam
6993650ff8 Sliders no longer jump after update. 2023-04-04 15:04:45 +01:00
PeekabooSteam
6b22c1ef63 Added scrollable to selected units' list; bit of tidying up. 2023-03-31 21:06:46 +01:00
PeekabooSteam
ee6fadfb36 Merge branch '111-measurebox-shows-000-when-measuring-north-should-read-360' of https://github.com/Pax1601/DCSOlympus into 111-measurebox-shows-000-when-measuring-north-should-read-360 2023-03-31 20:31:45 +01:00
PeekabooSteam
2f5b9d1f94 360 now shows for bullseyes. 2023-03-31 20:31:36 +01:00
PeekabooSteam
b9f32a5b82 Aligned numbers within pills. 2023-03-31 20:27:04 +01:00
PeekabooSteam
6f64bd1622 ATC Ground board PoC. 2023-03-29 21:15:33 +01:00
Pax1601
ff20eec472 Merge pull request #169 from Pax1601/71-add-counters-to-data-to-avoid-units-jumping-back
Added check on message time
2023-03-29 09:19:53 +02:00
Pax1601
9c9d53f3fb Added check on message time 2023-03-29 09:19:35 +02:00
Pax1601
b4e34bf9e4 Merge pull request #168 from Pax1601/155-pasting-units-generates-many-units-if-ctrl+v-is-held-down
Maximum paste rate set to once every 250ms
2023-03-29 09:00:16 +02:00
Pax1601
73a539bf94 Removed log 2023-03-29 09:00:04 +02:00
Pax1601
ac44c208a8 Maximum paste rate set to once every 250ms 2023-03-29 08:59:32 +02:00
Pax1601
04618cb247 Merge pull request #167 from Pax1601/166-ground-unit-type-not-selected
Fixed
2023-03-29 08:54:20 +02:00
Pax1601
3bdba116e8 Fixed 2023-03-29 08:54:03 +02:00
Pax1601
ea94d8ac24 Merge branch 'main' of https://github.com/Pax1601/DCSOlympus 2023-03-29 08:51:08 +02:00
Pax1601
ab51a76075 Client modified to work on any address 2023-03-29 08:51:05 +02:00
Pax1601
cae9b16d97 Merge pull request #157 from Pax1601/156-delete-lua-function-can-cause-player-desync-in-multiplayer
updated Olympus.delete to avoid player desync
2023-03-28 14:27:28 +02:00
Wirts Legs
ee6537de7c updated Olympus.delete to avoid player desync 2023-03-27 19:16:50 -04:00
Pax1601
efae7c23ff Merge pull request #152 from Pax1601/151-spawn-menu-not-working-in-firefox
PointerEvent changed to MouseEvent.
2023-03-27 09:19:50 +02:00
PeekabooSteam
df79f6577b PointerEvent changed to MouseEvent. 2023-03-26 20:10:25 +01:00
PeekabooSteam
14147168f9 ATC stuff. 2023-03-26 20:00:23 +01:00
PeekabooSteam
da008c220d Added beginnings of new ATC framework. 2023-03-26 15:39:21 +01:00
PeekabooSteam
d86a250575 Remove old ATC code. 2023-03-26 11:00:20 +01:00
WoodyXP
880ce3919d Added emtpy Loadouts for all aircraft 2023-02-14 15:27:35 +01:00
WoodyXP
b489659ddd Merge branch 'main' of https://github.com/WoodyXP/DCSOlympus 2023-02-14 01:39:40 +01:00
WoodyXP
f8344b1662 Added CLSID to payloadNames.js, Updated the payLoadConverter.py so the CLSID can be added, Added 1 custom Loadout in unitPayloads.lue 2023-02-14 01:36:36 +01:00
946 changed files with 202066 additions and 33474 deletions

33
.github/workflows/ci.yml vendored Normal file
View File

@@ -0,0 +1,33 @@
# ci.yml file for GitHub Actions
name: CI
on: [push]
# Sets permissions of the GITHUB_TOKEN to allow deployment to GitHub Pages
permissions:
contents: write
pages: write
id-token: write
jobs:
build_docs:
runs-on: ubuntu-latest
steps:
- name: Checkout the repository
uses: actions/checkout@v2
- name: Setup Node.js
uses: actions/setup-node@v2
- name: Install dependencies
run: npm ci
working-directory: ./client
- name: Create the docs directory locally in CI
run: npx typedoc --out ../docs/client @types/*.d.ts src/**/*.ts
working-directory: ./client
- name: Deploy 🚀
uses: JamesIves/github-pages-deploy-action@v4
with:
folder: docs

11
.gitignore vendored
View File

@@ -1,5 +1,8 @@
bin
/scripts/old
/scripts/python/configurator/dist
/scripts/python/configurator/build
/scripts/python/configurator/venv
.vs
x64
core.user
@@ -9,4 +12,10 @@ Output
node_modules
/client/TODO.txt
/client/public/javascripts/bundle.js
!client/bin
!client/bin
/client/public/plugins
/client/plugins/controltips/index.js
hgt
/client/public/databases/units/old
/client/plugins/databasemanager/index.js

View File

@@ -1,4 +1,34 @@
GNU GENERAL PUBLIC LICENSE
DCS Olympus
A real-time AI unit control mod for DCS World
Copyright (C) 2023 Veltro & Gang (the "DCS Olympus Team" or the
"Rightsholders")
DCS Olympus (the "MATERIAL" or "Software") is provided completely free
to users subject to the it under both the terms of version 3 of the GNU
General Public License ("GPLv3") as published by the Free Software Foundation,
and the additional terms set out below (the "Additional Terms"). In the event
that the terms of GPLv3 conflict with the Additional Terms, the
Additional Terms shall prevail.
The authors and/or copyright holders of the Software have not received any
financial benefit in connection with the Software. In any event, the
Software is provided “as is”, without warranty of any kind, express or
implied, including but not limited to the warranties of merchantability,
fitness for a particular purpose and non-infringement. In no event shall
the authors and/or copyright holders be liable for any claim, damages or
other liability, whether in an action of contract, tort or otherwise,
arising from, out of or in connection with the Software or the use or
other dealings in the Software.
THIS MATERIAL IS NOT MADE OR SUPPORTED BY EAGLE DYNAMICS SA.
Any party making use of the Software in any manner agrees to be bound by
the entirety of this document.
GNU GENERAL PUBLIC LICENSE
Version 3, 29 June 2007
Copyright (C) 2007 Free Software Foundation, Inc. <https://fsf.org/>
@@ -618,57 +648,31 @@ an absolute waiver of all civil liability in connection with the
Program, unless a warranty or assumption of liability accompanies a
copy of the Program in return for a fee.
END OF TERMS AND CONDITIONS
END OF GNU GENERAL PUBLIC LICENCE
How to Apply These Terms to Your New Programs
ADDITIONAL TERMS & CONDITIONS
If you develop a new program, and you want it to be of the greatest
possible use to the public, the best way to achieve this is to make it
free software which everyone can redistribute and change under these terms.
1. Governing Law
To do so, attach the following notices to the program. It is safest
to attach them to the start of each source file to most effectively
state the exclusion of warranty; and each file should have at least
the "copyright" line and a pointer to where the full notice is found.
Save where specifically provided for otherwise, the provisions of the
GNU General Public Licence Version 3 above shall be governed by and
interpreted in accordance with English Law and the parties submit to the
exclusive jurisdiction of the English Courts.
<one line to give the program's name and a brief idea of what it does.>
Copyright (C) <year> <name of author>
2. Entire Agreement
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
The text of this document contains the entire understanding between
you, the licensee, and the authors and/or copyright holders of the
Software with respect to the subject matter to which it pertains.
It supersedes all prior agreements and understandings (if applicable),
oral or written, with respect to such matters.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
3. Unilateral Modification
You should have received a copy of the GNU General Public License
along with this program. If not, see <https://www.gnu.org/licenses/>.
Also add information on how to contact you by electronic and paper mail.
If the program does terminal interaction, make it output a short
notice like this when it starts in an interactive mode:
<program> Copyright (C) <year> <name of author>
This program comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
This is free software, and you are welcome to redistribute it
under certain conditions; type `show c' for details.
The hypothetical commands `show w' and `show c' should show the appropriate
parts of the General Public License. Of course, your program's commands
might be different; for a GUI interface, you would use an "about box".
You should also get your employer (if you work as a programmer) or school,
if any, to sign a "copyright disclaimer" for the program, if necessary.
For more information on this, and how to apply and follow the GNU GPL, see
<https://www.gnu.org/licenses/>.
The GNU General Public License does not permit incorporating your program
into proprietary programs. If your program is a subroutine library, you
may consider it more useful to permit linking proprietary applications with
the library. If this is what you want to do, use the GNU Lesser General
Public License instead of this License. But first, please read
<https://www.gnu.org/licenses/why-not-lgpl.html>.
The parties agree that the DCS Olympus Team shall have the right to
unilaterally modify these terms (i.e. the agreement between you and the
DCS Olympus Team for the use of the Software), and that parties shall
be bound by such terms as modified from time to time. The DCS Olympus Team
shall not have an obligation to inform you of such modification, save that
such changes will be published on the DCS Olympus Github Repository located at
https://github.com/Pax1601/DCSOlympus.

View File

@@ -1,4 +1,4 @@
# Important note: DCS Olympus is in alpha state. No official release has been produced yet. The first public version is planned for Q2 2023.
# Important note: DCS Olympus is in alpha state. No official release has been produced yet. The first public version is planned for mid december 2023.
# DCS Olympus
*A real-time web interface to spawn and control units in DCS World*
@@ -6,32 +6,19 @@
![alt text](https://github.com/Pax1601/DCSOlympus/blob/main/client/sample.png?raw=true)
### What is this?
DCS Olympus is a mod for DCS World. It allows users to spawn, control, task, group, and remove units from a DCS World server using a real-time map interface, similarly to Real Time Strategy games. The user interface also provides useful informations units, like loadouts, fuel, tasking, and so on. In the future, more features for DCS World GCI and JTAC will be available.
DCS: Olympus is a free and open-source mod for DCS that enables dynamic real-time control through a map interface. The user is able to spawn units/groups, deploy a variety of effects such as smoke, flares, or explosions, and waypoints/tasks can be given to AI units in real-time in a way similar to a classic RTS game.
### Features and how to use it
- Spawn air and ground units, with preset loadouts
- Double click on the map to spawn a blue and red units, both in the air and in the ground, with preset loadouts for air-to-air or air-to-ground tasks;
- Control units
- Select one ore more units to move them around. Hold down ctrl and click to create a route for the unit to follow;
- Attack other units
- After selecting one ore more units, double click on another unit and select "Attack" to attack it, depending on the available weapons.
Additionally Olympus is able to run several effects and unit behaviours beyond the core DCS offerings. This includes such things as napalm and white phosphosous explosions, or setting up AA units to fire at players and miss, and more.
It even includes Red and Blue modes which limit your view and powers to just seeing what your coalition sees, with a spawning budget you could play against your friends even with no-one in the game piloting, or have a Red commander working against a squadron of blue pilots, and/or a blue commander working with them.
Even better it requires no client mods be installed if used on a server
The full feature list is simply too long to enumerate in a short summary but needless to say Olympus offers up a lot of unique gameplay that has previously not existed, and enhances many other elements of DCS in exciting ways
### Installing DCS Olympus
A prebuilt installer will soon be released and available here
### Building DCS Olympus
DCS Olympus is comprised of two modules:
A "core" c++ .dll module, which is run by DCS and exposes all the necessary data, and provides endpoints for commands from a REST server. A Visual Studio 2017/2019/2022 solution is provided, and requires no additional configuration. The core dll solution has two dependencies, both can be installed using vcpkg (https://vcpkg.io/en/getting-started.html):
- cpprestsdk: `vcpkg install cpprestsdk:x64-windows`
- geographiclib: `vcpkg install geographiclib:x64-windows`
A "client" node.js typescript web app, which can be hosted on the server using express.js. A Visual Studio Code configuration is provided for debugging. The client requires node.js to be installed for building (https://nodejs.org/en/). After installing node.js, move in the client folder and run the following commands:
- `npm install`
- `npm -g install`
After installing all the necessary dependencies you can start a development server executing the *client/debug.bat* batch file, and visiting http:\\localhost:3000 with any modern browser (tested with updated Chrome, Firefox and Edge). However, it is highly suggested to simply run the `Launch Chrome against localhost` debug configuration in Visual Studio Code.

28
build.bat Normal file
View File

@@ -0,0 +1,28 @@
call git clean -fx
cd src
msbuild olympus.sln /t:Rebuild /p:Configuration=Release
cd ..
cd scripts/python/configurator
call build_configurator.bat
cd ../../..
cd client
rmdir /s /q "hgt"
call npm install
call npm run emit-declarations
call npm run build-release
cd "plugins\controltips"
call npm install
call npm run build-release
cd "..\.."
cd "plugins\databasemanager"
call npm install
call npm run build-release
cd "..\.."
call npm prune --production
cd ..

2
build_package.bat Normal file
View File

@@ -0,0 +1,2 @@
call build.bat
call "C:\Program Files (x86)\Inno Setup 6\iscc.exe" "installer\olympus.iss"

View File

@@ -4,17 +4,6 @@
// For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387
"version": "0.2.0",
"configurations": [
{
"name": "Attach to Chrome",
"port": 9222,
"urlFilter": "http://localhost:3000/*",
"request": "attach",
"type": "chrome",
"webRoot": "${workspaceFolder}/public/",
"sourceMapPathOverrides": {
"src/*": "${workspaceFolder}/src/*"
}
},
{
"type": "chrome",
"request": "launch",
@@ -24,7 +13,8 @@
"sourceMapPathOverrides": {
"src/*": "${workspaceFolder}/src/*"
},
"preLaunchTask": "server"
"preLaunchTask": "server",
"port": 9222
}
]
}

View File

@@ -6,7 +6,7 @@
{
"label": "server",
"type": "shell",
"command": "npm run start",
"command": "npm run debug",
"isBackground": true
}
]

2589
client/@types/olympus/index.d.ts vendored Normal file

File diff suppressed because it is too large Load Diff

View File

@@ -1,7 +0,0 @@
RTB
tanker
scenario dropdown
explosion
wrong name for ground units
improve map zIndex
human symbol if user

View File

@@ -3,36 +3,47 @@ var path = require('path');
var cookieParser = require('cookie-parser');
var logger = require('morgan');
var fs = require('fs');
var bodyParser = require('body-parser');
var indexRouter = require('./routes/index');
var uikitRouter = require('./routes/uikit');
var usersRouter = require('./routes/users');
var atcRouter = require('./routes/api/atc');
var airbasesRouter = require('./routes/api/airbases');
var elevationRouter = require('./routes/api/elevation');
var databasesRouter = require('./routes/api/databases');
var indexRouter = require('./routes/index');
var uikitRouter = require('./routes/uikit');
var usersRouter = require('./routes/users');
var resourcesRouter = require('./routes/resources');
var pluginsRouter = require('./routes/plugins');
var app = express();
app.use(logger('dev'));
app.use(express.json());
app.use(express.urlencoded({ extended: false }));
app.use(bodyParser.json({limit: '50mb'}));
app.use(bodyParser.urlencoded({limit: '50mb', extended: true}));
app.use(cookieParser());
app.use(express.static(path.join(__dirname, 'public')));
app.use('/', indexRouter);
app.use('/api/atc', atcRouter);
app.use('/api/airbases', airbasesRouter);
app.use('/api/elevation', elevationRouter);
app.use('/api/databases', databasesRouter);
app.use('/plugins', pluginsRouter)
app.use('/users', usersRouter);
app.use('/uikit', uikitRouter);
app.use('/resources', resourcesRouter);
app.set('view engine', 'ejs');
let rawdata = fs.readFileSync('../olympus.json');
let config = JSON.parse(rawdata);
app.get('/config', (req, res) => res.send(config));
if (config["server"] != undefined)
app.get('/config', (req, res) => res.send(config["server"]));
module.exports = app;
const DemoDataGenerator = require('./demo.js');
var demoDataGenerator = new DemoDataGenerator(10);
app.get('/demo/units', (req, res) => demoDataGenerator.units(req, res));
app.get('/demo/logs', (req, res) => demoDataGenerator.logs(req, res));
app.get('/demo/bullseyes', (req, res) => demoDataGenerator.bullseyes(req, res));
app.get('/demo/airbases', (req, res) => demoDataGenerator.airbases(req, res));
app.get('/demo/mission', (req, res) => demoDataGenerator.mission(req, res));
var demoDataGenerator = new DemoDataGenerator(app, config);

View File

@@ -1,5 +1,22 @@
#!/usr/bin/env node
console.log('\x1b[36m%s\x1b[0m', "*********************************************************************");
console.log('\x1b[36m%s\x1b[0m', "* _____ _____ _____ ____ _ *");
console.log('\x1b[36m%s\x1b[0m', "* | __ \\ / ____|/ ____| / __ \\| | *");
console.log('\x1b[36m%s\x1b[0m', "* | | | | | | (___ | | | | |_ _ _ __ ___ _ __ _ _ ___ *");
console.log('\x1b[36m%s\x1b[0m', "* | | | | | \\___ \\ | | | | | | | | '_ ` _ \\| '_ \\| | | / __| *");
console.log('\x1b[36m%s\x1b[0m', "* | |__| | |____ ____) | | |__| | | |_| | | | | | | |_) | |_| \\__ \\ *");
console.log('\x1b[36m%s\x1b[0m', "* |_____/ \\_____|_____/ \\____/|_|\\__, |_| |_| |_| .__/ \\__,_|___/ *");
console.log('\x1b[36m%s\x1b[0m', "* __/ | | | *");
console.log('\x1b[36m%s\x1b[0m', "* |___/ |_| *");
console.log('\x1b[36m%s\x1b[0m', "*********************************************************************");
console.log('\x1b[36m%s\x1b[0m', "");
console.log("Please wait while DCS Olympus Server starts up...");
var fs = require('fs');
let rawdata = fs.readFileSync('../olympus.json');
let config = JSON.parse(rawdata);
/**
* Module dependencies.
*/
@@ -12,8 +29,14 @@ var http = require('http');
* Get port from environment and store in Express.
*/
var port = normalizePort(process.env.PORT || '3000');
var configPort = null;
if (config["client"] != undefined && config["client"]["port"] != undefined) {
configPort = config["client"]["port"];
}
var port = normalizePort(configPort || '3000');
app.set('port', port);
console.log("Express server listening on port: " + port)
/**
* Create HTTP server.
@@ -88,3 +111,6 @@ function onListening() {
: 'port ' + addr.port;
debug('Listening on ' + bind);
}
console.log("DCS Olympus server v0.4.11-alpha-rc3 started correctly!")
console.log("Waiting for connections...")

4
client/copy.bat Normal file
View File

@@ -0,0 +1,4 @@
copy .\\node_modules\\leaflet\\dist\\leaflet.css .\\public\\stylesheets\\leaflet\\leaflet.css
copy .\\node_modules\\leaflet-gesture-handling\\dist\\leaflet-gesture-handling.css .\\public\\stylesheets\\leaflet\\leaflet-gesture-handling.css
copy .\\node_modules\\leaflet.nauticscale\\dist\\leaflet.nauticscale.js .\\public\\javascripts\\leaflet.nauticscale.js
copy .\\node_modules\\leaflet-path-drag\\dist\\L.Path.Drag.js .\\public\\javascripts\\L.Path.Drag.js

View File

@@ -1,2 +1,2 @@
start cmd /k "npm run start"
start cmd /k "watchify .\src\index.ts --debug -p [ tsify --noImplicitAny ] -o .\public\javascripts\bundle.js"
start cmd /k "watchify .\src\index.ts --debug -o .\public\javascripts\bundle.js -t [ babelify --global true --presets [ @babel/preset-env ] --extensions '.js'] -p [ tsify --noImplicitAny ]

File diff suppressed because it is too large Load Diff

8503
client/package-lock.json generated

File diff suppressed because it is too large Load Diff

View File

@@ -2,34 +2,60 @@
"name": "DCSOlympus",
"node-main": "./bin/www",
"main": "http://localhost:3000",
"version": "0.1.1-alpha",
"version": "v0.4.11-alpha-rc3",
"private": true,
"scripts": {
"copy": "copy .\\node_modules\\leaflet\\dist\\leaflet.css .\\public\\stylesheets\\leaflet.css",
"start": "npm run copy & concurrently --kill-others \"npm run watch\" \"nodemon ./bin/www\"",
"watch": "watchify .\\src\\index.ts --debug -p [ tsify --noImplicitAny ] -o .\\public\\javascripts\\bundle.js"
"build": "browserify .\\src\\index.ts --debug -o .\\public\\javascripts\\bundle.js -t [ babelify --global true --presets [ @babel/preset-env ] --extensions '.js'] -p [ tsify --noImplicitAny ] && copy.bat",
"build-release": "browserify .\\src\\index.ts -o .\\public\\javascripts\\bundle.js -t [ babelify --global true --presets [ @babel/preset-env ] --extensions '.js'] -p [ tsify --noImplicitAny ] && copy.bat",
"emit-declarations": "tsc --project tsconfig.json --declaration --emitDeclarationOnly --outfile ./@types/olympus/index.d.ts",
"copy": "copy.bat",
"start": "node ./bin/www",
"debug": "npm run copy & concurrently --kill-others \"npm run watch\" \"nodemon --ignore ./public/databases/ ./bin/www\"",
"watch": "watchify .\\src\\index.ts --debug -o .\\public\\javascripts\\bundle.js -t [ babelify --global true --presets [ @babel/preset-env ] --extensions '.js'] -p [ tsify --noImplicitAny ]"
},
"dependencies": {
"@types/geojson": "^7946.0.10",
"@types/leaflet": "^1.9.0",
"@turf/turf": "^6.5.0",
"body-parser": "^1.20.2",
"cookie-parser": "~1.4.4",
"debug": "~2.6.9",
"ejs": "^3.1.8",
"express": "~4.16.1",
"leaflet": "^1.9.3",
"milsymbol": "^2.0.0",
"express-basic-auth": "^1.2.1",
"js-sha256": "^0.10.1",
"leaflet-gesture-handling": "^1.2.2",
"morgan": "~1.9.1",
"save": "^2.9.0"
"save": "^2.9.0",
"srtm-elevation": "^2.1.2",
"uuid": "^9.0.1"
},
"devDependencies": {
"@types/gtag.js": "^0.0.12",
"@babel/preset-env": "^7.21.4",
"@tanem/svg-injector": "^10.1.68",
"@types/formatcoords": "^1.1.0",
"@types/geojson": "^7946.0.10",
"@types/leaflet": "^1.9.0",
"@types/node": "^18.16.1",
"@types/sortablejs": "^1.15.0",
"@types/svg-injector": "^0.0.29",
"babelify": "^10.0.0",
"browserify": "^17.0.0",
"concurrently": "^7.6.0",
"cp": "^0.2.0",
"esmify": "^2.1.1",
"formatcoords": "^1.1.3",
"geodesy": "^1.1.2",
"leaflet": "^1.9.3",
"leaflet-control-mini-map": "^0.4.0",
"leaflet-path-drag": "*",
"leaflet.nauticscale": "^1.1.0",
"nodemon": "^2.0.20",
"requirejs": "^2.3.6",
"sortablejs": "^1.15.0",
"tinyify": "^4.0.0",
"tsify": "^5.0.4",
"tslib": "latest",
"typescript": "^4.9.4",
"usng.js": "^0.4.5",
"watchify": "^4.0.0"
}
}

View File

@@ -0,0 +1,8 @@
mkdir .\\..\\DCSOlympus\\client\\public\\plugins\\boilerplateplugin
copy .\\index.js .\\..\\DCSOlympus\\client\\public\\plugins\\boilerplateplugin\\index.js
copy .\\plugin.json .\\..\\DCSOlympus\\client\\public\\plugins\\boilerplateplugin\\plugin.json
copy .\\style.css .\\..\\DCSOlympus\\client\\public\\plugins\\boilerplateplugin\\style.css
mkdir .\\..\\DCSOlympus\\client\\public\\plugins\\boilerplateplugin\\images
copy .\\images\\*.* .\\..\\DCSOlympus\\client\\public\\plugins\\boilerplateplugin\\images\\

Binary file not shown.

After

Width:  |  Height:  |  Size: 928 B

View File

@@ -0,0 +1,14 @@
{
"name": "boilerplateplugin",
"version": "v0.0.1",
"private": true,
"scripts": {
"build": "browserify ./src/index.ts -p [ tsify --noImplicitAny] > index.js && copy.bat"
},
"devDependencies": {
"@types/sortablejs": "^1.15.4",
"browserify": "^17.0.0",
"sortablejs": "^1.15.0",
"tsify": "^5.0.4"
}
}

View File

@@ -0,0 +1,7 @@
{
"name": "Boilerplate",
"version": "0.0.1",
"description": "Base plugin starter",
"authorName": "",
"authorContact": ""
}

View File

@@ -0,0 +1,3 @@
# Boilerplate plugin
See: https://github.com/Pax1601/DCSOlympus/wiki/Developer-Guide

View File

@@ -0,0 +1,27 @@
import { OlympusPlugin } from "interfaces";
import { OlympusApp } from "olympusapp";
export class BoilerplatePlugin implements OlympusPlugin {
#app!: OlympusApp;
constructor() {
}
/**
* @param app <OlympusApp>
*
* @returns boolean on success/fail
*/
initialize(app: OlympusApp) : boolean {
this.#app = app;
return true; // Return true on success
}
getName() {
return "Boilerplate";
}
}

View File

@@ -0,0 +1,5 @@
import { BoilerplatePlugin } from "./boilerplate";
globalThis.getOlympusPlugin = () => {
return new BoilerplatePlugin();
}

View File

@@ -0,0 +1,104 @@
{
"compilerOptions": {
/* Visit https://aka.ms/tsconfig to read more about this file */
/* Projects */
// "incremental": true, /* Save .tsbuildinfo files to allow for incremental compilation of projects. */
// "composite": true, /* Enable constraints that allow a TypeScript project to be used with project references. */
// "tsBuildInfoFile": "./.tsbuildinfo", /* Specify the path to .tsbuildinfo incremental compilation file. */
// "disableSourceOfProjectReferenceRedirect": true, /* Disable preferring source files instead of declaration files when referencing composite projects. */
// "disableSolutionSearching": true, /* Opt a project out of multi-project reference checking when editing. */
// "disableReferencedProjectLoad": true, /* Reduce the number of projects loaded automatically by TypeScript. */
/* Language and Environment */
"target": "ES2017", /* Set the JavaScript language version for emitted JavaScript and include compatible library declarations. */
// "lib": [], /* Specify a set of bundled library declaration files that describe the target runtime environment. */
// "jsx": "preserve", /* Specify what JSX code is generated. */
// "experimentalDecorators": true, /* Enable experimental support for TC39 stage 2 draft decorators. */
// "emitDecoratorMetadata": true, /* Emit design-type metadata for decorated declarations in source files. */
// "jsxFactory": "", /* Specify the JSX factory function used when targeting React JSX emit, e.g. 'React.createElement' or 'h'. */
// "jsxFragmentFactory": "", /* Specify the JSX Fragment reference used for fragments when targeting React JSX emit e.g. 'React.Fragment' or 'Fragment'. */
// "jsxImportSource": "", /* Specify module specifier used to import the JSX factory functions when using 'jsx: react-jsx*'. */
// "reactNamespace": "", /* Specify the object invoked for 'createElement'. This only applies when targeting 'react' JSX emit. */
// "noLib": true, /* Disable including any library files, including the default lib.d.ts. */
// "useDefineForClassFields": true, /* Emit ECMAScript-standard-compliant class fields. */
// "moduleDetection": "auto", /* Control what method is used to detect module-format JS files. */
/* Modules */
"module": "commonjs", /* Specify what module code is generated. */
"rootDirs": ["./src", "./@types"], /* Specify the root folder within your source files. */
// "moduleResolution": "node", /* Specify how TypeScript looks up a file from a given module specifier. */
// "baseUrl": "./", /* Specify the base directory to resolve non-relative module names. */
// "paths": {}, /* Specify a set of entries that re-map imports to additional lookup locations. */
// "rootDirs": [], /* Allow multiple folders to be treated as one when resolving modules. */
"typeRoots": [
"./node_modules/@types",
"@types"
], /* Specify multiple folders that act like './node_modules/@types'. */
"types": [
"olympus"
], /* Specify type package names to be included without being referenced in a source file. */
// "allowUmdGlobalAccess": true, /* Allow accessing UMD globals from modules. */
// "moduleSuffixes": [], /* List of file name suffixes to search when resolving a module. */
// "resolveJsonModule": true, /* Enable importing .json files. */
// "noResolve": true, /* Disallow 'import's, 'require's or '<reference>'s from expanding the number of files TypeScript should add to a project. */
/* JavaScript Support */
"allowJs": true, /* Allow JavaScript files to be a part of your program. Use the 'checkJS' option to get errors from these files. */
// "checkJs": true, /* Enable error reporting in type-checked JavaScript files. */
// "maxNodeModuleJsDepth": 1, /* Specify the maximum folder depth used for checking JavaScript files from 'node_modules'. Only applicable with 'allowJs'. */
/* Emit */
// "declaration": true, /* Generate .d.ts files from TypeScript and JavaScript files in your project. */
// "declarationMap": true, /* Create sourcemaps for d.ts files. */
// "emitDeclarationOnly": true, /* Only output d.ts files and not JavaScript files. */
// "sourceMap": true, /* Create source map files for emitted JavaScript files. */
// "outFile": "./", /* Specify a file that bundles all outputs into one JavaScript file. If 'declaration' is true, also designates a file that bundles all .d.ts output. */
// "outDir": "./", /* Specify an output folder for all emitted files. */
// "removeComments": true, /* Disable emitting comments. */
// "noEmit": true, /* Disable emitting files from a compilation. */
// "importHelpers": true, /* Allow importing helper functions from tslib once per project, instead of including them per-file. */
// "importsNotUsedAsValues": "remove", /* Specify emit/checking behavior for imports that are only used for types. */
// "downlevelIteration": true, /* Emit more compliant, but verbose and less performant JavaScript for iteration. */
// "sourceRoot": "", /* Specify the root path for debuggers to find the reference source code. */
// "mapRoot": "", /* Specify the location where debugger should locate map files instead of generated locations. */
// "inlineSourceMap": true, /* Include sourcemap files inside the emitted JavaScript. */
// "inlineSources": true, /* Include source code in the sourcemaps inside the emitted JavaScript. */
// "emitBOM": true, /* Emit a UTF-8 Byte Order Mark (BOM) in the beginning of output files. */
// "newLine": "crlf", /* Set the newline character for emitting files. */
// "stripInternal": true, /* Disable emitting declarations that have '@internal' in their JSDoc comments. */
// "noEmitHelpers": true, /* Disable generating custom helper functions like '__extends' in compiled output. */
// "noEmitOnError": true, /* Disable emitting files if any type checking errors are reported. */
// "preserveConstEnums": true, /* Disable erasing 'const enum' declarations in generated code. */
// "declarationDir": "./", /* Specify the output directory for generated declaration files. */
// "preserveValueImports": true, /* Preserve unused imported values in the JavaScript output that would otherwise be removed. */
/* Interop Constraints */
// "isolatedModules": true, /* Ensure that each file can be safely transpiled without relying on other imports. */
// "allowSyntheticDefaultImports": true, /* Allow 'import x from y' when a module doesn't have a default export. */
"esModuleInterop": true, /* Emit additional JavaScript to ease support for importing CommonJS modules. This enables 'allowSyntheticDefaultImports' for type compatibility. */
// "preserveSymlinks": true, /* Disable resolving symlinks to their realpath. This correlates to the same flag in node. */
"forceConsistentCasingInFileNames": true, /* Ensure that casing is correct in imports. */
/* Type Checking */
"strict": true, /* Enable all strict type-checking options. */
// "noImplicitAny": true, /* Enable error reporting for expressions and declarations with an implied 'any' type. */
// "strictNullChecks": true, /* When type checking, take into account 'null' and 'undefined'. */
// "strictFunctionTypes": true, /* When assigning functions, check to ensure parameters and the return values are subtype-compatible. */
// "strictBindCallApply": true, /* Check that the arguments for 'bind', 'call', and 'apply' methods match the original function. */
// "strictPropertyInitialization": true, /* Check for class properties that are declared but not set in the constructor. */
// "noImplicitThis": true, /* Enable error reporting when 'this' is given the type 'any'. */
// "useUnknownInCatchVariables": true, /* Default catch clause variables as 'unknown' instead of 'any'. */
// "alwaysStrict": true, /* Ensure 'use strict' is always emitted. */
// "noUnusedLocals": true, /* Enable error reporting when local variables aren't read. */
// "noUnusedParameters": true, /* Raise an error when a function parameter isn't read. */
// "exactOptionalPropertyTypes": true, /* Interpret optional property types as written, rather than adding 'undefined'. */
// "noImplicitReturns": true, /* Enable error reporting for codepaths that do not explicitly return in a function. */
// "noFallthroughCasesInSwitch": true, /* Enable error reporting for fallthrough cases in switch statements. */
// "noUncheckedIndexedAccess": true, /* Add 'undefined' to a type when accessed using an index. */
// "noImplicitOverride": true, /* Ensure overriding members in derived classes are marked with an override modifier. */
// "noPropertyAccessFromIndexSignature": true, /* Enforces using indexed accessors for keys declared using an indexed type. */
// "allowUnusedLabels": true, /* Disable error reporting for unused labels. */
// "allowUnreachableCode": true, /* Disable error reporting for unreachable code. */
/* Completeness */
// "skipDefaultLibCheck": true, /* Skip type checking .d.ts files that are included with TypeScript. */
"skipLibCheck": true /* Skip type checking all .d.ts files. */
},
"include": [
"src/*.ts",
"../DCSOlympus/client/@types/olympus/index.d.ts"
]
}

View File

@@ -0,0 +1,5 @@
mkdir .\\..\\..\\public\\plugins\\controltipsplugin
copy .\\index.js .\\..\\..\\public\\plugins\\controltipsplugin\\index.js
copy .\\plugin.json .\\..\\..\\public\\plugins\\controltipsplugin\\plugin.json
copy .\\style.css .\\..\\..\\public\\plugins\\controltipsplugin\\style.css

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,29 @@
{
"name": "ControlTipsPlugin",
"version": "v0.0.1",
"private": true,
"scripts": {
"build": "browserify ./src/index.ts -p [ tsify --noImplicitAny] > index.js && copy.bat",
"build-release": "browserify ./src/index.ts -p [ tsify --noImplicitAny] > index.js && copy.bat"
},
"dependencies": {},
"devDependencies": {
"@babel/preset-env": "^7.21.4",
"@types/node": "^18.16.1",
"@types/sortablejs": "^1.15.0",
"babelify": "^10.0.0",
"browserify": "^17.0.0",
"concurrently": "^7.6.0",
"cp": "^0.2.0",
"esmify": "^2.1.1",
"nodemon": "^2.0.20",
"requirejs": "^2.3.6",
"sortablejs": "^1.15.0",
"tinyify": "^4.0.0",
"tsify": "^5.0.4",
"tslib": "latest",
"typescript": "^4.9.4",
"usng.js": "^0.4.5",
"watchify": "^4.0.0"
}
}

View File

@@ -0,0 +1,6 @@
{
"name": "Control Tip Plugin",
"version": "0.0.1",
"description": "This plugin shows useful control tips on the right side of the screen. The tips change dynamically depending on what the user does",
"author": "Peekaboo"
}

View File

@@ -0,0 +1,396 @@
import { OlympusPlugin } from "interfaces";
import { OlympusApp } from "olympusapp";
import { Unit } from "unit/unit";
const SHOW_CONTROL_TIPS = "Show control tips"
export class ControlTipsPlugin implements OlympusPlugin {
#element: HTMLElement;
#app: any;
#shortcutManager: any;
#cursorIsHoveringOverUnit: boolean = false;
#cursorIsHoveringOverAirbase: boolean = false;
#mouseoverElement!: HTMLElement;
constructor() {
this.#element = document.createElement("div");
this.#element.id = "control-tips-panel";
document.body.appendChild(this.#element);
}
getName() {
return "Control Tips Plugin"
}
initialize(app: any) {
this.#app = app;
this.#shortcutManager = this.#app.getShortcutManager();
this.#shortcutManager.onKeyDown(() => {
this.#updateTips()
});
this.#shortcutManager.onKeyUp(() => {
this.#updateTips()
});
document.addEventListener("airbaseMouseover", (ev: CustomEventInit) => {
this.#cursorIsHoveringOverAirbase = true;
this.#updateTips();
});
document.addEventListener("airbaseMouseout", (ev: CustomEventInit) => {
this.#cursorIsHoveringOverAirbase = false;
this.#updateTips();
});
document.addEventListener("unitDeselection", (ev: CustomEventInit ) => {
this.#updateTips();
});
document.addEventListener("unitMouseover", (ev: CustomEventInit) => {
this.#cursorIsHoveringOverUnit = true;
this.#updateTips();
});
document.addEventListener("unitMouseout", (ev: CustomEventInit) => {
this.#cursorIsHoveringOverUnit = false;
this.#updateTips();
});
document.addEventListener("unitsSelection", (ev: CustomEventInit ) => {
this.#updateTips();
});
document.addEventListener("mapOptionsChanged", () => {
this.toggle( !this.#app.getMap().getVisibilityOptions()[SHOW_CONTROL_TIPS] );
});
document.addEventListener( "mouseover", ( ev: MouseEvent ) => {
if ( ev.target instanceof HTMLElement ) {
this.#mouseoverElement = <HTMLElement>ev.target;
}
this.#updateTips();
});
document.addEventListener( "mouseup", ( ev: MouseEvent ) => {
this.#updateTips();
});
this.#updateTips();
this.#app.getMap().addVisibilityOption(SHOW_CONTROL_TIPS, true);
return true;
}
getElement() {
return this.#element;
}
toggle(bool?: boolean) {
this.getElement().classList.toggle("hide", bool);
}
#updateTips() {
const combos: Array<object> = [
{
"keys": [],
"tips": [
{
"key": `SHIFT`,
"action": `Box select`,
"showIfHoveringOverAirbase": false,
"showIfHoveringOverUnit": false,
"showIfUnitSelected": false
},
{
"key": `Mouse1`,
"action": `Deselect`,
"showIfUnitSelected": true
},
{
"key": `Mouse1+drag`,
"action": `Move map`,
"showIfHoveringOverAirbase": false,
"showIfHoveringOverUnit": false,
"showIfUnitSelected": false
},
{
"key": `Mouse2`,
"action": `Spawn menu`,
"showIfUnitSelected": false,
"showIfHoveringOverAirbase": false,
"showIfHoveringOverUnit": false
},
{
"key": `Mouse2`,
"action": `Airbase menu`,
"showIfUnitSelected": false,
"showIfHoveringOverAirbase": true,
"showIfHoveringOverUnit": false
},
{
"key": `Mouse2`,
"action": `Set first waypoint`,
"showIfHoveringOverAirbase": false,
"showIfUnitSelected": true,
"unitsMustBeControlled": true
},
{
"key": `Mouse2 (hold)`,
"action": `Interact (ground)`,
"showIfUnitSelected": true,
"showIfHoveringOverAirbase": false,
"showIfHoveringOverUnit": false,
"unitsMustBeControlled": true
},
{
"key": `Shift`,
"action": "<em> in formation...</em>",
"showIfUnitSelected": true,
"minSelectedUnits": 2
},
{
"key": "CTRL",
"action": "<em> ... more</em>",
"showIfUnitSelected": true,
"showIfHoveringOverAirbase": false,
"unitsMustBeControlled": true
},
{
"key": "CTRL",
"action": " Pin tool",
"showIfUnitSelected": false,
"showIfHoveringOverAirbase": false,
"showIfHoveringOverUnit": false,
"unitsMustBeControlled": true
},
{
"key": "CTRL+Mouse2",
"action": " Airbase menu",
"showIfUnitSelected": true,
"showIfHoveringOverAirbase": true,
"unitsMustBeControlled": true
},
{
"key": `Mouse1`,
"action": "Toggle Blue/Red",
"mouseoverSelector": "#coalition-switch .ol-switch-fill"
},
{
"key": `Mouse2`,
"action": "Set Neutral",
"mouseoverSelector": "#coalition-switch .ol-switch-fill"
},
{
"key": `Mouse1`,
"action": "Toggle time display",
"mouseoverSelector": "#connection-status-panel[data-is-connected] #connection-status-message abbr"
},
{
"key": `Mouse1 or Z`,
"action": "Change location system",
"mouseoverSelector": "#coordinates-tool, #coordinates-tool *"
},
{
"key": `Comma`,
"action": "Decrease precision",
"mouseoverSelector": `#coordinates-tool[data-location-system="MGRS"], #coordinates-tool[data-location-system="MGRS"] *`
},
{
"key": `Period`,
"action": "Increase precision",
"mouseoverSelector": `#coordinates-tool[data-location-system="MGRS"], #coordinates-tool[data-location-system="MGRS"] *`
}
]
},
{
"keys": ["ControlLeft"],
"tips": [
{
"key": `Mouse1`,
"action": "Toggle pin",
"showIfUnitSelected": false,
"showIfHoveringOverAirbase": false,
"showIfHoveringOverUnit": false
},
{
"key": `Mouse1`,
"action": "Toggle selection",
"showIfUnitSelected": true,
"showIfHoveringOverAirbase": false,
"showIfHoveringOverUnit": true
},
{
"key": `Mouse2`,
"action": `Add waypoint`,
"showIfHoveringOverAirbase": false,
"showIfHoveringOverUnit": false,
"showIfUnitSelected": true,
"unitsMustBeControlled": true
},
{
"key": `Mouse2`,
"action": `Interact (airbase)`,
"showIfHoveringOverAirbase": true,
"showIfUnitSelected": true,
"unitsMustBeControlled": true
},
{
"key": `Mouse2`,
"action": `Interact (unit)`,
"showIfHoveringOverAirbase": false,
"showIfHoveringOverUnit": true,
"showIfUnitSelected": true,
"unitsMustBeControlled": true
},
{
"key": `Shift`,
"action": "<em> in formation...</em>",
"showIfUnitSelected": true,
"minSelectedUnits": 2
},
{
"key": `[Num 1-9]`,
"action": "Set hotgroup",
"showIfUnitSelected": true
}
]
},
{
"keys": ["ShiftLeft"],
"tips": [
{
"key": `Mouse1+drag`,
"action": "Box select",
"showIfUnitSelected": false
},
{
"key": `Mouse2`,
"action": "Set first formation waypoint",
"showIfUnitSelected": true,
"minSelectedUnits": 2
},
{
"key": `[Num 1-9]`,
"action": "Add to hotgroup",
"showIfUnitSelected": true
},
{
"key": "CTRL",
"action": "<em> ... more</em>",
"minSelectedUnits": 2,
"showIfUnitSelected": true,
"showIfHoveringOverAirbase": false,
"unitsMustBeControlled": true
}
]
},
{
"keys": ["ControlLeft", "ShiftLeft"],
"tips": [
{
"key": `Mouse2`,
"action": "Add formation waypoint",
"showIfUnitSelected": true,
"minSelectedUnits": 2,
"unitsMustBeControlled": true
}, {
"key": `[Num 1-9]`,
"action": "Add hotgroup to selection",
"callback": ( tip:object ) => {
return (Object.values<Unit>( this.#app.getUnitsManager().getUnits() ).some( ( unit:Unit ) => {
return unit.getAlive() && unit.getControlled() && unit.getHotgroup();
}));
},
"showIfUnitSelected": true,
"minSelectedUnits": 1
}
]
}
];
const currentCombo: any = combos.find((combo: any) => this.#shortcutManager.keyComboMatches(combo.keys)) || combos[0];
const element = this.getElement();
element.innerHTML = "";
let numSelectedUnits = 0;
let numSelectedControlledUnits = 0;
let unitSelectionContainsControlled = false;
if (this.#app.getUnitsManager()) {
let selectedUnits = Object.values(this.#app.getUnitsManager().getSelectedUnits());
numSelectedUnits = selectedUnits.length;
numSelectedControlledUnits = selectedUnits.filter((unit: any) => unit.getControlled()).length;
unitSelectionContainsControlled = numSelectedControlledUnits > 0;
}
const tipsIncludesActiveMouseover = ( currentCombo.tips.some( ( tip:any ) => {
if ( !tip.mouseoverSelector ) {
return false;
}
if ( this.#mouseoverElement instanceof HTMLElement === false ) {
return false;
}
if ( !this.#mouseoverElement.matches( tip.mouseoverSelector ) ) {
return false;
}
return true;
}));
currentCombo.tips.filter((tip: any) => {
if (numSelectedUnits > 0) {
if (tip.showIfUnitSelected === false) {
return false;
}
if (tip.unitsMustBeControlled === true && unitSelectionContainsControlled === false) {
return false;
}
if ( typeof tip.minSelectedUnits === "number" && numSelectedControlledUnits < tip.minSelectedUnits ) {
return false;
}
}
if (numSelectedUnits === 0 && tip.showIfUnitSelected === true) {
return false;
}
if (typeof tip.showIfHoveringOverAirbase === "boolean") {
if (tip.showIfHoveringOverAirbase !== this.#cursorIsHoveringOverAirbase) {
return false;
}
}
if (typeof tip.showIfHoveringOverUnit === "boolean") {
if (tip.showIfHoveringOverUnit !== this.#cursorIsHoveringOverUnit) {
return false;
}
}
if ( tipsIncludesActiveMouseover && ( typeof tip.mouseoverSelector !== "string" || !this.#mouseoverElement.matches( tip.mouseoverSelector ) ) ) {
return false;
}
if ( !tipsIncludesActiveMouseover && typeof tip.mouseoverSelector === "string" ) {
return false;
}
if ( typeof tip.callback === "function" && !tip.callback( tip ) ) {
return false;
}
element.innerHTML += `<div><span class="key">${tip.key}</span><span class="action">${tip.action}</span></div>`;
});
}
}

View File

@@ -0,0 +1,5 @@
import { ControlTipsPlugin } from "./controltipsplugin";
globalThis.getOlympusPlugin = () => {
return new ControlTipsPlugin();
}

View File

@@ -0,0 +1,33 @@
#control-tips-panel {
align-self: center;
display: flex;
flex-flow: column wrap;
font-size: 13px;
justify-self: flex-end;
position: absolute;
right: 10px;
row-gap: 20px;
text-align: right;
z-index: 999;
}
#control-tips-panel>* {
align-items: center;
align-self: end;
background-color: var(--background-steel);
border-radius: var(--border-radius-md);
color: white;
column-gap: 8px;
display: flex;
justify-items: right;
opacity: .9;
padding: 5px;
width: fit-content;
}
#control-tips-panel>*>.key {
background-color: var(--background-grey);
border-radius: var(--border-radius-sm);
color: white;
padding: 1px 4px;
}

View File

@@ -0,0 +1,104 @@
{
"compilerOptions": {
/* Visit https://aka.ms/tsconfig to read more about this file */
/* Projects */
// "incremental": true, /* Save .tsbuildinfo files to allow for incremental compilation of projects. */
// "composite": true, /* Enable constraints that allow a TypeScript project to be used with project references. */
// "tsBuildInfoFile": "./.tsbuildinfo", /* Specify the path to .tsbuildinfo incremental compilation file. */
// "disableSourceOfProjectReferenceRedirect": true, /* Disable preferring source files instead of declaration files when referencing composite projects. */
// "disableSolutionSearching": true, /* Opt a project out of multi-project reference checking when editing. */
// "disableReferencedProjectLoad": true, /* Reduce the number of projects loaded automatically by TypeScript. */
/* Language and Environment */
"target": "ES2017", /* Set the JavaScript language version for emitted JavaScript and include compatible library declarations. */
// "lib": [], /* Specify a set of bundled library declaration files that describe the target runtime environment. */
// "jsx": "preserve", /* Specify what JSX code is generated. */
// "experimentalDecorators": true, /* Enable experimental support for TC39 stage 2 draft decorators. */
// "emitDecoratorMetadata": true, /* Emit design-type metadata for decorated declarations in source files. */
// "jsxFactory": "", /* Specify the JSX factory function used when targeting React JSX emit, e.g. 'React.createElement' or 'h'. */
// "jsxFragmentFactory": "", /* Specify the JSX Fragment reference used for fragments when targeting React JSX emit e.g. 'React.Fragment' or 'Fragment'. */
// "jsxImportSource": "", /* Specify module specifier used to import the JSX factory functions when using 'jsx: react-jsx*'. */
// "reactNamespace": "", /* Specify the object invoked for 'createElement'. This only applies when targeting 'react' JSX emit. */
// "noLib": true, /* Disable including any library files, including the default lib.d.ts. */
// "useDefineForClassFields": true, /* Emit ECMAScript-standard-compliant class fields. */
// "moduleDetection": "auto", /* Control what method is used to detect module-format JS files. */
/* Modules */
"module": "commonjs", /* Specify what module code is generated. */
"rootDirs": ["./src", "../../@types"], /* Specify the root folder within your source files. */
// "moduleResolution": "node", /* Specify how TypeScript looks up a file from a given module specifier. */
// "baseUrl": "./", /* Specify the base directory to resolve non-relative module names. */
// "paths": {}, /* Specify a set of entries that re-map imports to additional lookup locations. */
// "rootDirs": [], /* Allow multiple folders to be treated as one when resolving modules. */
"typeRoots": [
"./node_modules/@types",
"../../@types"
], /* Specify multiple folders that act like './node_modules/@types'. */
"types": [
"olympus"
], /* Specify type package names to be included without being referenced in a source file. */
// "allowUmdGlobalAccess": true, /* Allow accessing UMD globals from modules. */
// "moduleSuffixes": [], /* List of file name suffixes to search when resolving a module. */
// "resolveJsonModule": true, /* Enable importing .json files. */
// "noResolve": true, /* Disallow 'import's, 'require's or '<reference>'s from expanding the number of files TypeScript should add to a project. */
/* JavaScript Support */
"allowJs": true, /* Allow JavaScript files to be a part of your program. Use the 'checkJS' option to get errors from these files. */
// "checkJs": true, /* Enable error reporting in type-checked JavaScript files. */
// "maxNodeModuleJsDepth": 1, /* Specify the maximum folder depth used for checking JavaScript files from 'node_modules'. Only applicable with 'allowJs'. */
/* Emit */
// "declaration": true, /* Generate .d.ts files from TypeScript and JavaScript files in your project. */
// "declarationMap": true, /* Create sourcemaps for d.ts files. */
// "emitDeclarationOnly": true, /* Only output d.ts files and not JavaScript files. */
// "sourceMap": true, /* Create source map files for emitted JavaScript files. */
// "outFile": "./", /* Specify a file that bundles all outputs into one JavaScript file. If 'declaration' is true, also designates a file that bundles all .d.ts output. */
// "outDir": "./", /* Specify an output folder for all emitted files. */
// "removeComments": true, /* Disable emitting comments. */
// "noEmit": true, /* Disable emitting files from a compilation. */
// "importHelpers": true, /* Allow importing helper functions from tslib once per project, instead of including them per-file. */
// "importsNotUsedAsValues": "remove", /* Specify emit/checking behavior for imports that are only used for types. */
// "downlevelIteration": true, /* Emit more compliant, but verbose and less performant JavaScript for iteration. */
// "sourceRoot": "", /* Specify the root path for debuggers to find the reference source code. */
// "mapRoot": "", /* Specify the location where debugger should locate map files instead of generated locations. */
// "inlineSourceMap": true, /* Include sourcemap files inside the emitted JavaScript. */
// "inlineSources": true, /* Include source code in the sourcemaps inside the emitted JavaScript. */
// "emitBOM": true, /* Emit a UTF-8 Byte Order Mark (BOM) in the beginning of output files. */
// "newLine": "crlf", /* Set the newline character for emitting files. */
// "stripInternal": true, /* Disable emitting declarations that have '@internal' in their JSDoc comments. */
// "noEmitHelpers": true, /* Disable generating custom helper functions like '__extends' in compiled output. */
// "noEmitOnError": true, /* Disable emitting files if any type checking errors are reported. */
// "preserveConstEnums": true, /* Disable erasing 'const enum' declarations in generated code. */
// "declarationDir": "./", /* Specify the output directory for generated declaration files. */
// "preserveValueImports": true, /* Preserve unused imported values in the JavaScript output that would otherwise be removed. */
/* Interop Constraints */
// "isolatedModules": true, /* Ensure that each file can be safely transpiled without relying on other imports. */
// "allowSyntheticDefaultImports": true, /* Allow 'import x from y' when a module doesn't have a default export. */
"esModuleInterop": true, /* Emit additional JavaScript to ease support for importing CommonJS modules. This enables 'allowSyntheticDefaultImports' for type compatibility. */
// "preserveSymlinks": true, /* Disable resolving symlinks to their realpath. This correlates to the same flag in node. */
"forceConsistentCasingInFileNames": true, /* Ensure that casing is correct in imports. */
/* Type Checking */
"strict": true, /* Enable all strict type-checking options. */
// "noImplicitAny": true, /* Enable error reporting for expressions and declarations with an implied 'any' type. */
// "strictNullChecks": true, /* When type checking, take into account 'null' and 'undefined'. */
// "strictFunctionTypes": true, /* When assigning functions, check to ensure parameters and the return values are subtype-compatible. */
// "strictBindCallApply": true, /* Check that the arguments for 'bind', 'call', and 'apply' methods match the original function. */
// "strictPropertyInitialization": true, /* Check for class properties that are declared but not set in the constructor. */
// "noImplicitThis": true, /* Enable error reporting when 'this' is given the type 'any'. */
// "useUnknownInCatchVariables": true, /* Default catch clause variables as 'unknown' instead of 'any'. */
// "alwaysStrict": true, /* Ensure 'use strict' is always emitted. */
// "noUnusedLocals": true, /* Enable error reporting when local variables aren't read. */
// "noUnusedParameters": true, /* Raise an error when a function parameter isn't read. */
// "exactOptionalPropertyTypes": true, /* Interpret optional property types as written, rather than adding 'undefined'. */
// "noImplicitReturns": true, /* Enable error reporting for codepaths that do not explicitly return in a function. */
// "noFallthroughCasesInSwitch": true, /* Enable error reporting for fallthrough cases in switch statements. */
// "noUncheckedIndexedAccess": true, /* Add 'undefined' to a type when accessed using an index. */
// "noImplicitOverride": true, /* Ensure overriding members in derived classes are marked with an override modifier. */
// "noPropertyAccessFromIndexSignature": true, /* Enforces using indexed accessors for keys declared using an indexed type. */
// "allowUnusedLabels": true, /* Disable error reporting for unused labels. */
// "allowUnreachableCode": true, /* Disable error reporting for unreachable code. */
/* Completeness */
// "skipDefaultLibCheck": true, /* Skip type checking .d.ts files that are included with TypeScript. */
"skipLibCheck": true /* Skip type checking all .d.ts files. */
},
"include": [
"src/*.ts",
"../../@types/olympus/*.d.ts"
]
}

View File

@@ -0,0 +1,20 @@
{
// Use IntelliSense to learn about possible attributes.
// Hover to view descriptions of existing attributes.
// For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387
"version": "0.2.0",
"configurations": [
{
"name": "Attach to Chrome",
"port": 9222,
"urlFilter": "http://localhost:3000/*",
"request": "attach",
"type": "chrome",
"webRoot": "${workspaceFolder}../../public/",
"sourceMapPathOverrides": {
"src/*": "src/*"
},
"preLaunchTask": "start"
}
]
}

View File

@@ -0,0 +1,13 @@
{
// See https://go.microsoft.com/fwlink/?LinkId=733558
// for the documentation about the tasks.json format
"version": "2.0.0",
"tasks": [
{
"label": "start",
"type": "shell",
"command": "npm run start",
"isBackground": true
}
]
}

View File

@@ -0,0 +1,5 @@
mkdir .\\..\\..\\public\\plugins\\databasemanager
copy .\\index.js .\\..\\..\\public\\plugins\\databasemanager\\index.js
copy .\\plugin.json .\\..\\..\\public\\plugins\\databasemanager\\plugin.json
copy .\\style.css .\\..\\..\\public\\plugins\\databasemanager\\style.css

File diff suppressed because one or more lines are too long

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,32 @@
{
"name": "DatabaseManagerPlugin",
"version": "v0.0.1",
"private": true,
"scripts": {
"build": "browserify ./src/index.ts -p [ tsify --noImplicitAny] > index.js && copy.bat",
"build-release": "browserify ./src/index.ts -p [ tsify --noImplicitAny] -p [ tinyify ] > index.js && copy.bat",
"start": "npm run copy & concurrently --kill-others \"npm run watch\"",
"copy": "copy.bat",
"watch": "watchify ./src/index.ts --debug -o ../../public/plugins/databasemanager/index.js -t [ babelify --global true --presets [ @babel/preset-env ] --extensions '.js']"
},
"dependencies": {},
"devDependencies": {
"@babel/preset-env": "^7.21.4",
"@types/node": "^18.16.1",
"@types/sortablejs": "^1.15.0",
"babelify": "^10.0.0",
"browserify": "^17.0.0",
"concurrently": "^7.6.0",
"cp": "^0.2.0",
"esmify": "^2.1.1",
"nodemon": "^2.0.20",
"requirejs": "^2.3.6",
"sortablejs": "^1.15.0",
"tinyify": "^4.0.0",
"tsify": "^5.0.4",
"tslib": "latest",
"typescript": "^4.9.4",
"usng.js": "^0.4.5",
"watchify": "^4.0.0"
}
}

View File

@@ -0,0 +1,6 @@
{
"name": "Control Tip Plugin",
"version": "0.0.1",
"description": "This plugin shows useful control tips on the right side of the screen. The tips change dynamically depending on what the user does",
"author": "Peekaboo"
}

View File

@@ -0,0 +1,110 @@
import { LoadoutBlueprint, UnitBlueprint } from "interfaces";
import { UnitEditor } from "./uniteditor";
import { LoadoutEditor } from "./loadouteditor";
import { addCheckboxInput, addDropdownInput, addLoadoutsScroll, addNewElementInput, addStringInput } from "./utils";
/** Database editor for Air Units, both Aircraft and Helicopter since they are identical in terms of datbase entries.
*
*/
export class AirUnitEditor extends UnitEditor {
#loadoutEditor: LoadoutEditor | null = null;
constructor(contentDiv1: HTMLElement, contentDiv2: HTMLElement, contentDiv3: HTMLElement) {
super(contentDiv1, contentDiv2, contentDiv3);
/* The loadout editor allows to edit the loadout (who could have thought eh?) */
this.#loadoutEditor = new LoadoutEditor(this.contentDiv3);
/* Refresh the loadout editor if needed */
this.contentDiv3.addEventListener("refresh", () => {
if (this.visible)
this.#loadoutEditor?.show();
});
}
/** Sets a unit blueprint as the currently active one
*
* @param blueprint The blueprint to edit
*/
setBlueprint(blueprint: UnitBlueprint) {
this.blueprint = blueprint;
if (this.blueprint !== null) {
this.contentDiv2.replaceChildren();
var title = document.createElement("label");
title.innerText = "Unit properties";
this.contentDiv2.appendChild(title);
addStringInput(this.contentDiv2, "Name", blueprint.name, "text", (value: string) => { blueprint.name = value; }, true);
addStringInput(this.contentDiv2, "Label", blueprint.label, "text", (value: string) => { blueprint.label = value; });
addStringInput(this.contentDiv2, "Short label", blueprint.shortLabel, "text", (value: string) => { blueprint.shortLabel = value; });
addDropdownInput(this.contentDiv2, "Coalition", blueprint.coalition, ["", "blue", "red"], (value: string) => {blueprint.coalition = value; });
addDropdownInput(this.contentDiv2, "Era", blueprint.era, ["WW2", "Early Cold War", "Mid Cold War", "Late Cold War", "Modern"], (value: string) => {blueprint.era = value; });
addStringInput(this.contentDiv2, "Filename", blueprint.filename ?? "", "text", (value: string) => { blueprint.filename = value; });
addStringInput(this.contentDiv2, "Cost", String(blueprint.cost) ?? "", "number", (value: string) => { blueprint.cost = parseFloat(value); });
addCheckboxInput(this.contentDiv2, "Can target point", blueprint.canTargetPoint ?? false, (value: boolean) => {blueprint.canTargetPoint = value;})
addStringInput(this.contentDiv2, "Description", blueprint.description ?? "", "text", (value: string) => {blueprint.description = value; });
addStringInput(this.contentDiv2, "Tags", blueprint.tags ?? "", "text", (value: string) => {blueprint.tags = value; });
/* Add a scrollable list of loadouts that the user can edit */
var title = document.createElement("label");
title.innerText = "Loadouts";
this.contentDiv2.appendChild(title);
addLoadoutsScroll(this.contentDiv2, blueprint.loadouts ?? [], (loadout: LoadoutBlueprint) => {
this.#loadoutEditor?.setLoadout(loadout);
this.#loadoutEditor?.show();
});
addNewElementInput(this.contentDiv2, (ev: MouseEvent, input: HTMLInputElement) => { this.addLoadout(input.value); });
this.#loadoutEditor?.hide();
}
}
/** Add a new empty blueprint
*
* @param key Blueprint key
*/
addBlueprint(key: string) {
if (this.database != null) {
this.database.blueprints[key] = {
name: key,
coalition: "",
label: "",
shortLabel: "",
era: "",
loadouts: [],
enabled: true
}
this.show();
this.setBlueprint(this.database.blueprints[key]);
}
}
/** Add a new empty loadout to the currently active blueprint
*
* @param loadoutName The name of the new loadout
*/
addLoadout(loadoutName: string) {
if (loadoutName && this.blueprint !== null) {
this.blueprint.loadouts?.push({
name: loadoutName,
code: "",
fuel: 1,
items: [],
roles: [],
enabled: true
})
this.setBlueprint(this.blueprint);
}
}
/** Hide the editor
*
*/
hide() {
super.hide();
this.#loadoutEditor?.hide();
}
}

View File

@@ -0,0 +1,424 @@
import { OlympusPlugin, UnitBlueprint } from "interfaces";
import { AirUnitEditor } from "./airuniteditor";
import { OlympusApp } from "olympusapp";
import { GroundUnitEditor } from "./grounduniteditor";
import { PrimaryToolbar } from "toolbars/primarytoolbar";
import { NavyUnitEditor } from "./navyuniteditor";
/** Database Manager
*
* This database provides a user interface to allow easier and convenient unit databases manipulation. It allows to edit all the fields of the units databases, save them
* on the server, and restore the defaults.
*
* TODO:
* Add ability to manage liveries
*
*/
export class DatabaseManagerPlugin implements OlympusPlugin {
#app!: OlympusApp;
#element: HTMLElement;
#mainContentContainer: HTMLElement;
#contentDiv1: HTMLElement;
#contentDiv2: HTMLElement;
#contentDiv3: HTMLElement;
/* Upper tab buttons */
#button1: HTMLButtonElement;
#button2: HTMLButtonElement;
#button3: HTMLButtonElement;
#button4: HTMLButtonElement;
/* Lower operation buttons */
#button5: HTMLButtonElement;
#button6: HTMLButtonElement;
#button7: HTMLButtonElement;
#button8: HTMLButtonElement;
#button9: HTMLButtonElement;
/* Database editors */
#aircraftEditor: AirUnitEditor;
#helicopterEditor: AirUnitEditor;
#groundUnitEditor: GroundUnitEditor;
#navyUnitEditor: NavyUnitEditor;
constructor() {
/* Create main HTML element */
this.#element = document.createElement("div");
this.#element.id = "database-manager-panel";
this.#element.oncontextmenu = () => { return false; }
this.#element.classList.add("ol-dialog");
document.body.appendChild(this.#element);
/* Start hidden */
this.toggle(false);
/* Create the top tab buttons container and buttons */
let topButtonContainer = document.createElement("div");
this.#button1 = document.createElement("button");
this.#button1.classList.add("tab-button");
this.#button1.textContent = "Aircraft database";
this.#button1.onclick = () => { this.#hideAll(); this.#aircraftEditor.show(); this.#button1.classList.add("selected"); };
topButtonContainer.appendChild(this.#button1);
this.#button2 = document.createElement("button");
this.#button2.classList.add("tab-button");
this.#button2.textContent = "Helicopter database";
this.#button2.onclick = () => { this.#hideAll(); this.#helicopterEditor.show(); this.#button2.classList.add("selected"); };
topButtonContainer.appendChild(this.#button2);
this.#button3 = document.createElement("button");
this.#button3.classList.add("tab-button");
this.#button3.textContent = "Ground Unit database";
this.#button3.onclick = () => { this.#hideAll(); this.#groundUnitEditor.show(); this.#button3.classList.add("selected"); };
topButtonContainer.appendChild(this.#button3);
this.#button4 = document.createElement("button");
this.#button4.classList.add("tab-button");
this.#button4.textContent = "Navy Unit database";
this.#button4.onclick = () => { this.#hideAll(); this.#navyUnitEditor.show(); this.#button4.classList.add("selected"); };
topButtonContainer.appendChild(this.#button4);
this.#element.appendChild(topButtonContainer);
/* Create the container for the database editor elements and the elements themselves */
this.#mainContentContainer = document.createElement("div");
this.#mainContentContainer.classList.add("dm-container");
this.#element.appendChild(this.#mainContentContainer);
this.#contentDiv1 = document.createElement("div");
this.#contentDiv1.classList.add("dm-content-container", "ol-scrollable");
this.#mainContentContainer.appendChild(this.#contentDiv1);
this.#contentDiv2 = document.createElement("div");
this.#contentDiv2.classList.add("dm-content-container", "ol-scrollable");
this.#mainContentContainer.appendChild(this.#contentDiv2);
this.#contentDiv3 = document.createElement("div");
this.#contentDiv3.classList.add("dm-content-container", "ol-scrollable");
this.#mainContentContainer.appendChild(this.#contentDiv3);
/* Create the database editors, which use the three divs created before */
this.#aircraftEditor = new AirUnitEditor(this.#contentDiv1, this.#contentDiv2, this.#contentDiv3);
this.#helicopterEditor = new AirUnitEditor(this.#contentDiv1, this.#contentDiv2, this.#contentDiv3);
this.#groundUnitEditor = new GroundUnitEditor(this.#contentDiv1, this.#contentDiv2, this.#contentDiv3);
this.#navyUnitEditor = new NavyUnitEditor(this.#contentDiv1, this.#contentDiv2, this.#contentDiv3);
/* Create the bottom buttons container. These buttons allow to save, restore, reset, and discard the changes */
let bottomButtonContainer = document.createElement("div");
this.#button5 = document.createElement("button");
this.#button5.textContent = "Save";
this.#button5.title = "Save the changes on the server"
this.#button5.onclick = () => { this.#saveDatabases();};
bottomButtonContainer.appendChild(this.#button5);
this.#button6 = document.createElement("button");
this.#button6.textContent = "Discard";
this.#button6.title = "Discard all changes and reload the database from the server";
this.#button6.onclick = () => { this.#loadDatabases(); };
bottomButtonContainer.appendChild(this.#button6);
this.#button7 = document.createElement("button");
this.#button7.textContent = "Reset defaults";
this.#button7.onclick = () => { this.#resetToDefaultDatabases(); };
this.#button7.title = "Reset the databases to the default values";
bottomButtonContainer.appendChild(this.#button7);
this.#button8 = document.createElement("button");
this.#button8.textContent = "Restore previous";
this.#button8.onclick = () => { this.#restoreToPreviousDatabases(); };
this.#button8.title = "Restore the previously saved databases. Use this if you saved a database by mistake.";
bottomButtonContainer.appendChild(this.#button8);
this.#button9 = document.createElement("button");
this.#button9.textContent = "Close";
this.#button9.title = "Close the Database Manager"
this.#button9.onclick = () => { this.toggle(false); };
bottomButtonContainer.appendChild(this.#button9);
this.#element.appendChild(bottomButtonContainer);
}
/**
*
* @returns The name of the plugin
*/
getName() {
return "Database Control Plugin"
}
/** Initialize the plugin
*
* @param app The OlympusApp singleton
* @returns True if successfull
*/
initialize(app: any) {
this.#app = app;
const contextManager = this.#app.getContextManager();
contextManager.add( "databaseManager", {
"allowUnitCopying": false,
"allowUnitPasting": false,
"useSpawnMenu": false,
"useUnitControlPanel": false,
"useUnitInfoPanel": false
});
/* Load the databases and initialize the editors */
this.#loadDatabases();
/* Add a button to the main Olympus App to allow the users to open the dialog */
var mainButtonDiv = document.createElement("div");
var mainButton = document.createElement("button");
mainButton.textContent = "Database manager";
mainButtonDiv.appendChild(mainButton);
var toolbar: PrimaryToolbar = this.#app?.getToolbarsManager().get("primaryToolbar") as PrimaryToolbar;
var elements = toolbar.getMainDropdown().getOptionElements();
var arr = Array.prototype.slice.call(elements);
arr.splice(arr.length - 3, 0, mainButtonDiv);
toolbar.getMainDropdown().setOptionsElements(arr);
mainButton.onclick = () => {
toolbar.getMainDropdown().close();
if (this.#app?.getMissionManager().getCommandModeOptions().commandMode === "Game master")
this.toggle();
}
return true;
}
/**
*
* @returns The main container element
*/
getElement() {
return this.#element;
}
/** Toggles the visibility of the dialog
*
* @param bool Force a specific visibility state
*/
toggle(bool?: boolean) {
if (bool)
this.getElement().classList.toggle("hide", !bool);
else
this.getElement().classList.toggle("hide");
if ( this.#app )
this.#app.getContextManager().setContext( this.getElement().classList.contains("hide") ? "olympus" : "databaseManager" );
}
/** Hide all the editors
*
*/
#hideAll() {
this.#aircraftEditor.hide();
this.#helicopterEditor.hide();
this.#groundUnitEditor.hide();
this.#navyUnitEditor.hide();
this.#button1.classList.remove("selected");
this.#button2.classList.remove("selected");
this.#button3.classList.remove("selected");
this.#button4.classList.remove("selected");
}
/** Load the databases from the app to the editor. Note, this does not reload the databases from the server to the app
*
*/
#loadDatabases() {
var aircraftDatabase = this.#app?.getAircraftDatabase();
if (aircraftDatabase != null)
this.#aircraftEditor.setDatabase(aircraftDatabase);
var helicopterDatabase = this.#app?.getHelicopterDatabase();
if (helicopterDatabase != null)
this.#helicopterEditor.setDatabase(helicopterDatabase);
var groundUnitDatabase = this.#app?.getGroundUnitDatabase();
if (groundUnitDatabase != null)
this.#groundUnitEditor.setDatabase(groundUnitDatabase);
var navyUnitDatabase = this.#app?.getNavyUnitDatabase();
if (navyUnitDatabase != null)
this.#navyUnitEditor.setDatabase(navyUnitDatabase);
this.#hideAll();
this.#aircraftEditor.show();
this.#button1.classList.add("selected");
}
/** Save the databases on the server and reloads it to apply the changes
*
*/
#saveDatabases() {
var aircraftDatabase = this.#aircraftEditor.getDatabase();
if (aircraftDatabase){
this.#uploadDatabase(aircraftDatabase, "aircraftdatabase", "Aircraft database", () => {
var helicopterDatabase = this.#helicopterEditor.getDatabase();
if (helicopterDatabase) {
this.#uploadDatabase(helicopterDatabase, "helicopterDatabase", "Helicopter database", () => {
var groundUnitDatabase = this.#groundUnitEditor.getDatabase();
if (groundUnitDatabase) {
this.#uploadDatabase(groundUnitDatabase, "groundUnitDatabase", "Ground Unit database", () => {
var navyUnitDatabase = this.#navyUnitEditor.getDatabase();
if (navyUnitDatabase) {
this.#uploadDatabase(navyUnitDatabase, "navyUnitDatabase", "Navy Unit database", () => {
this.#app?.getAircraftDatabase().load(() => {});
this.#app?.getHelicopterDatabase().load(() => {});
this.#app?.getGroundUnitDatabase().load(() => {});
this.#app?.getNavyUnitDatabase().load(() => {});
this.#app?.getServerManager().reloadDatabases(() => {
this.#app?.getPopupsManager().get("infoPopup")?.setText("Olympus core databases reloaded");
})
});
}
});
}
});
}
});
}
}
/** Resets the databases to the default values
*
*/
#resetToDefaultDatabases() {
this.#resetToDefaultDatabase("aircraftdatabase", "Aircraft database", () => {
this.#app?.getAircraftDatabase().load(() => {
this.#resetToDefaultDatabase("helicopterdatabase", "Helicopter database", () => {
this.#app?.getHelicopterDatabase().load(() => {
this.#resetToDefaultDatabase("groundunitdatabase", "Ground Unit database", () => {
this.#app?.getGroundUnitDatabase().load(() => {
this.#resetToDefaultDatabase("navyunitdatabase", "Navy Unit database", () => {
this.#app?.getNavyUnitDatabase().load(() => {
this.#loadDatabases();
this.#app?.getServerManager().reloadDatabases(() => {
this.#app?.getPopupsManager().get("infoPopup")?.setText("Olympus core databases reloaded");
})
this.#hideAll();
this.#aircraftEditor.show();
this.#button1.classList.add("selected");
});
});
});
});
});
});
});
});
}
/** Restores the databases to the previous saved values. This is useful if you saved the databases by mistake and want to undo the error.
*
*/
#restoreToPreviousDatabases() {
this.#restoreToPreviousDatabase("aircraftdatabase", "Aircraft database", () => {
this.#app?.getAircraftDatabase().load(() => {
this.#restoreToPreviousDatabase("helicopterdatabase", "Helicopter database", () => {
this.#app?.getHelicopterDatabase().load(() => {
this.#restoreToPreviousDatabase("groundunitdatabase", "Ground Unit database", () => {
this.#app?.getGroundUnitDatabase().load(() => {
this.#restoreToPreviousDatabase("navyunitdatabase", "Navy Unit database", () => {
this.#app?.getNavyUnitDatabase().load(() => {
this.#loadDatabases();
this.#app?.getServerManager().reloadDatabases(() => {
this.#app?.getPopupsManager().get("infoPopup")?.setText("Olympus core databases reloaded");
})
this.#hideAll();
this.#aircraftEditor.show();
this.#button1.classList.add("selected");
});
});
});
});
});
});
});
});
}
/** Upload a single database to the server
*
* @param database The database
* @param name The name of the database as it will be saved on the server
* @param label A label used in the info popup
*/
#uploadDatabase(database: { blueprints: { [key: string]: UnitBlueprint } }, name: string, label: string, callback: CallableFunction) {
var xmlHttp = new XMLHttpRequest();
xmlHttp.open("PUT", "/api/databases/save/units/" + name);
xmlHttp.setRequestHeader("Content-Type", "application/json");
xmlHttp.onload = (res: any) => {
if (xmlHttp.status == 200) {
this.#app?.getPopupsManager().get("infoPopup")?.setText(label + " saved successfully");
callback();
}
else {
this.#app?.getPopupsManager().get("infoPopup")?.setText("An error has occurred while saving the " + label);
}
};
xmlHttp.onerror = (res: any) => {
this.#app?.getPopupsManager().get("infoPopup")?.setText("An error has occurred while saving the " + label);
}
xmlHttp.send(JSON.stringify(database));
}
/** Resets a database to its default values on the server. NOTE: this only resets the database on the server, it will not reload it in the app.
*
* @param name The name of the database as it is saved on the server
* @param label A label used in the info popup
* @param callback Called when the operation is completed
*/
#resetToDefaultDatabase(name: string, label: string, callback: CallableFunction) {
var xmlHttp = new XMLHttpRequest();
xmlHttp.open("PUT", "/api/databases/reset/units/" + name);
xmlHttp.setRequestHeader("Content-Type", "application/json");
xmlHttp.onload = (res: any) => {
if (xmlHttp.status == 200) {
this.#app?.getPopupsManager().get("infoPopup")?.setText(label + " reset successfully");
callback();
}
else {
this.#app?.getPopupsManager().get("infoPopup")?.setText("An error has occurred while resetting the " + label);
}
};
xmlHttp.onerror = (res: any) => {
this.#app?.getPopupsManager().get("infoPopup")?.setText("An error has occurred while resetting the " + label)
}
xmlHttp.send("");
}
/** Restores a database to its previously saved values on the server. NOTE: this only restores the database on the server, it will not reload it in the app.
*
* @param name The name of the database as it is saved on the server
* @param label A label used in the info popup
* @param callback Called when the operation is completed
*/
#restoreToPreviousDatabase(name: string, label: string, callback: CallableFunction) {
var xmlHttp = new XMLHttpRequest();
xmlHttp.open("PUT", "/api/databases/restore/units/" + name);
xmlHttp.setRequestHeader("Content-Type", "application/json");
xmlHttp.onload = (res: any) => {
if (xmlHttp.status == 200) {
this.#app?.getPopupsManager().get("infoPopup")?.setText(label + " restored successfully");
callback();
}
else {
this.#app?.getPopupsManager().get("infoPopup")?.setText("An error has occurred while restoring the " + label);
}
};
xmlHttp.onerror = (res: any) => {
this.#app?.getPopupsManager().get("infoPopup")?.setText("An error has occurred while restoring the " + label)
}
xmlHttp.send("");
}
}

View File

@@ -0,0 +1,77 @@
import { UnitBlueprint } from "interfaces";
import { UnitEditor } from "./uniteditor";
import { addCheckboxInput, addDropdownInput, addStringInput } from "./utils";
/** Database editor for ground units
*
*/
export class GroundUnitEditor extends UnitEditor {
#blueprint: UnitBlueprint | null = null;
constructor(contentDiv1: HTMLElement, contentDiv2: HTMLElement, contentDiv3: HTMLElement) {
super(contentDiv1, contentDiv2, contentDiv3);
}
/** Sets a unit blueprint as the currently active one
*
* @param blueprint The blueprint to edit
*/
setBlueprint(blueprint: UnitBlueprint) {
this.#blueprint = blueprint;
if (this.#blueprint !== null) {
this.contentDiv2.replaceChildren();
var title = document.createElement("label");
title.innerText = "Unit properties";
this.contentDiv2.appendChild(title);
addStringInput(this.contentDiv2, "Name", blueprint.name, "text", (value: string) => {blueprint.name = value; }, true);
addStringInput(this.contentDiv2, "Label", blueprint.label, "text", (value: string) => {blueprint.label = value; });
addStringInput(this.contentDiv2, "Short label", blueprint.shortLabel, "text", (value: string) => {blueprint.shortLabel = value; });
addStringInput(this.contentDiv2, "Type", blueprint.type?? "", "text", (value: string) => {blueprint.type = value; });
addStringInput(this.contentDiv2, "Unit when grouped", blueprint.unitWhenGrouped?? "", "text", (value: string) => {blueprint.unitWhenGrouped = value; });
addDropdownInput(this.contentDiv2, "Coalition", blueprint.coalition, ["", "blue", "red"], (value: string) => {blueprint.coalition = value; });
addDropdownInput(this.contentDiv2, "Era", blueprint.era, ["WW2", "Early Cold War", "Mid Cold War", "Late Cold War", "Modern"], (value: string) => {blueprint.era = value; });
//addStringInput(this.contentDiv2, "Filename", blueprint.filename?? "", "text", (value: string) => {blueprint.filename = value; });
addStringInput(this.contentDiv2, "Cost", String(blueprint.cost)?? "", "number", (value: string) => {blueprint.cost = parseFloat(value); });
addStringInput(this.contentDiv2, "Acquisition range [m]", String(blueprint.acquisitionRange)?? "", "number", (value: string) => {blueprint.acquisitionRange = parseFloat(value); });
addStringInput(this.contentDiv2, "Engagement range [m]", String(blueprint.engagementRange)?? "", "number", (value: string) => {blueprint.engagementRange = parseFloat(value); });
addStringInput(this.contentDiv2, "Targeting range [m]", String(blueprint.targetingRange)?? "", "number", (value: string) => {blueprint.targetingRange = parseFloat(value); });
addStringInput(this.contentDiv2, "Aim method range [m]", String(blueprint.aimMethodRange)?? "", "number", (value: string) => {blueprint.aimMethodRange = parseFloat(value); });
addStringInput(this.contentDiv2, "Barrel height [m]", String(blueprint.barrelHeight)?? "", "number", (value: string) => {blueprint.barrelHeight = parseFloat(value); });
addStringInput(this.contentDiv2, "Muzzle velocity [m/s]", String(blueprint.muzzleVelocity)?? "", "number", (value: string) => {blueprint.muzzleVelocity = parseFloat(value); });
addStringInput(this.contentDiv2, "Aim time [s]", String(blueprint.aimTime)?? "", "number", (value: string) => {blueprint.aimTime = parseFloat(value); });
addStringInput(this.contentDiv2, "Shots to fire", String(blueprint.shotsToFire)?? "", "number", (value: string) => {blueprint.shotsToFire = Math.round(parseFloat(value)); });
addStringInput(this.contentDiv2, "Shots base interval [s]", String(blueprint.shotsBaseInterval)?? "", "number", (value: string) => {blueprint.shotsBaseInterval = Math.round(parseFloat(value)); });
addStringInput(this.contentDiv2, "Shots base scatter [°]", String(blueprint.shotsBaseScatter)?? "", "number", (value: string) => {blueprint.shotsBaseScatter = Math.round(parseFloat(value)); });
addStringInput(this.contentDiv2, "Alertness time constant [s]", String(blueprint.alertnessTimeConstant)?? "", "number", (value: string) => {blueprint.alertnessTimeConstant = Math.round(parseFloat(value)); });
addCheckboxInput(this.contentDiv2, "Can target point", blueprint.canTargetPoint ?? false, (value: boolean) => {blueprint.canTargetPoint = value;})
addCheckboxInput(this.contentDiv2, "Can rearm", blueprint.canRearm ?? false, (value: boolean) => {blueprint.canRearm = value;})
addCheckboxInput(this.contentDiv2, "Can operate as AAA", blueprint.canAAA ?? false, (value: boolean) => {blueprint.canAAA = value;})
addCheckboxInput(this.contentDiv2, "Indirect fire (e.g. mortar)", blueprint.indirectFire ?? false, (value: boolean) => {blueprint.indirectFire = value;})
addStringInput(this.contentDiv2, "Description", blueprint.description ?? "", "text", (value: string) => {blueprint.description = value; });
addStringInput(this.contentDiv2, "Tags", blueprint.tags ?? "", "text", (value: string) => {blueprint.tags = value; });
addStringInput(this.contentDiv2, "Marker file", blueprint.markerFile ?? "", "text", (value: string) => {blueprint.markerFile = value; });
}
}
/** Add a new empty blueprint
*
* @param key Blueprint key
*/
addBlueprint(key: string) {
if (this.database != null) {
this.database.blueprints[key] = {
name: key,
coalition: "",
label: "",
shortLabel: "",
era: "",
enabled: true
}
this.show();
this.setBlueprint(this.database.blueprints[key]);
}
}
}

View File

@@ -0,0 +1,5 @@
import { DatabaseManagerPlugin } from "./databasemanagerplugin";
globalThis.getOlympusPlugin = () => {
return new DatabaseManagerPlugin();
}

View File

@@ -0,0 +1,55 @@
import { LoadoutBlueprint } from "interfaces";
import { addLoadoutItemsEditor, addStringInput, arrayToString, stringToArray } from "./utils";
/** The LoadoutEditor allows the user to edit a loadout
*
*/
export class LoadoutEditor {
#contentDiv: HTMLElement;
#loadout: LoadoutBlueprint | null = null;
#visible: boolean = false;
constructor(contentDiv: HTMLElement) {
this.#contentDiv = contentDiv;
this.#contentDiv.addEventListener("refresh", () => {
if (this.#visible)
this.show();
})
}
/** Set the loadout to edit
*
* @param loadout The loadout to edit
*/
setLoadout(loadout: LoadoutBlueprint) {
this.#loadout = loadout;
}
/** Show the editor
*
*/
show() {
this.#visible = true;
this.#contentDiv.replaceChildren();
var title = document.createElement("label");
title.innerText = "Loadout properties";
this.#contentDiv.appendChild(title);
if (this.#loadout) {
var loadout = this.#loadout;
addStringInput(this.#contentDiv, "Name", loadout.name, "text", (value: string) => {loadout.name = value; this.#contentDiv.dispatchEvent(new Event("refresh"));});
addStringInput(this.#contentDiv, "Code", loadout.code, "text", (value: string) => {loadout.code = value; });
addStringInput(this.#contentDiv, "Roles", arrayToString(loadout.roles), "text", (value: string) => {loadout.roles = stringToArray(value);});
addLoadoutItemsEditor(this.#contentDiv, this.#loadout);
}
}
/** Hide the editor
*
*/
hide() {
this.#visible = false;
this.#contentDiv.replaceChildren();
}
}

View File

@@ -0,0 +1,60 @@
import { UnitBlueprint } from "interfaces";
import { UnitEditor } from "./uniteditor";
import { addDropdownInput, addStringInput } from "./utils";
/** Database editor for navy units
*
*/
export class NavyUnitEditor extends UnitEditor {
#blueprint: UnitBlueprint | null = null;
constructor(contentDiv1: HTMLElement, contentDiv2: HTMLElement, contentDiv3: HTMLElement) {
super(contentDiv1, contentDiv2, contentDiv3);
}
/** Sets a unit blueprint as the currently active one
*
* @param blueprint The blueprint to edit
*/
setBlueprint(blueprint: UnitBlueprint) {
this.#blueprint = blueprint;
if (this.#blueprint !== null) {
this.contentDiv2.replaceChildren();
var title = document.createElement("label");
title.innerText = "Unit properties";
this.contentDiv2.appendChild(title);
addStringInput(this.contentDiv2, "Name", blueprint.name, "text", (value: string) => {blueprint.name = value; }, true);
addStringInput(this.contentDiv2, "Label", blueprint.label, "text", (value: string) => {blueprint.label = value; });
addStringInput(this.contentDiv2, "Short label", blueprint.shortLabel, "text", (value: string) => {blueprint.shortLabel = value; });
addStringInput(this.contentDiv2, "Type", blueprint.type?? "", "text", (value: string) => {blueprint.type = value; });
addDropdownInput(this.contentDiv2, "Coalition", blueprint.coalition, ["", "blue", "red"], (value: string) => {blueprint.coalition = value; });
addDropdownInput(this.contentDiv2, "Era", blueprint.era, ["WW2", "Early Cold War", "Mid Cold War", "Late Cold War", "Modern"], (value: string) => {blueprint.era = value; });
//addStringInput(this.contentDiv2, "Filename", blueprint.filename?? "", "text", (value: string) => {blueprint.filename = value; });
addStringInput(this.contentDiv2, "Cost", String(blueprint.cost)?? "", "number", (value: string) => {blueprint.cost = parseFloat(value); });
addStringInput(this.contentDiv2, "Barrel height [m]", String(blueprint.barrelHeight)?? "", "number", (value: string) => {blueprint.barrelHeight = parseFloat(value); });
addStringInput(this.contentDiv2, "Muzzle velocity [m/s]", String(blueprint.muzzleVelocity)?? "", "number", (value: string) => {blueprint.muzzleVelocity = parseFloat(value); });
}
}
/** Add a new empty blueprint
*
* @param key Blueprint key
*/
addBlueprint(key: string) {
if (this.database != null) {
this.database.blueprints[key] = {
name: key,
coalition: "",
label: "",
shortLabel: "",
era: "",
enabled: true
}
this.show();
this.setBlueprint(this.database.blueprints[key]);
}
}
}

View File

@@ -0,0 +1,117 @@
import { UnitBlueprint } from "interfaces";
import { UnitDatabase } from "unit/databases/unitdatabase";
import { addBlueprintsScroll, addNewElementInput } from "./utils";
/** Base abstract class of Unit database editors
*
*/
export abstract class UnitEditor {
blueprint: UnitBlueprint | null = null;
database: {blueprints: {[key: string]: UnitBlueprint}} | null = null;
visible: boolean = false;
contentDiv1: HTMLElement;
contentDiv2: HTMLElement;
contentDiv3: HTMLElement;
constructor(contentDiv1: HTMLElement, contentDiv2: HTMLElement, contentDiv3: HTMLElement) {
this.contentDiv1 = contentDiv1;
this.contentDiv2 = contentDiv2;
this.contentDiv3 = contentDiv3;
/* Refresh the list of units if it changes */
this.contentDiv1.addEventListener("refresh", () => {
if (this.visible)
this.show();
})
/* If the unit properties or loadout are edited, reload the editor */
this.contentDiv2.addEventListener("refresh", () => {
if (this.visible) {
if (this.blueprint !== null)
this.setBlueprint(this.blueprint);
}
});
this.contentDiv3.addEventListener("refresh", () => {
if (this.visible) {
if (this.blueprint !== null)
this.setBlueprint(this.blueprint);
}
});
}
/**
*
* @param database The database that the editor will operate on
*/
setDatabase(database: UnitDatabase) {
this.database = JSON.parse(JSON.stringify({blueprints: database.getBlueprints(true)}));
}
/** Show the editor
* @param filter String filter
*/
show(filter: string = "") {
this.visible = true;
this.contentDiv1.replaceChildren();
this.contentDiv2.replaceChildren();
this.contentDiv3.replaceChildren();
/* Create the list of units. Each unit is clickable to activate the editor on it */
if (this.database != null) {
var title = document.createElement("label");
title.innerText = "Units list";
this.contentDiv1.appendChild(title);
var filterInput = document.createElement("input");
filterInput.value = filter;
this.contentDiv1.appendChild(filterInput);
filterInput.onchange = (e: Event) => {
this.show((e.target as HTMLInputElement).value);
}
this.addBlueprints(filter);
}
}
/** Hide the editor
*
*/
hide() {
this.visible = false;
this.contentDiv1.replaceChildren();
this.contentDiv2.replaceChildren();
this.contentDiv3.replaceChildren();
}
/**
*
* @returns The edited database
*/
getDatabase() {
return this.database;
}
/**
*
* @param filter String filter
*/
addBlueprints(filter: string = "") {
if (this.database) {
addBlueprintsScroll(this.contentDiv1, this.database, filter, (key: string) => {
if (this.database != null)
this.setBlueprint(this.database.blueprints[key])
});
addNewElementInput(this.contentDiv1, (ev: MouseEvent, input: HTMLInputElement) => {
if (input.value != "")
this.addBlueprint((input).value);
});
}
}
/* Abstract methods which will depend on the specific type of units */
abstract setBlueprint(blueprint: UnitBlueprint): void;
abstract addBlueprint(key: string): void;
}

View File

@@ -0,0 +1,297 @@
import { LoadoutBlueprint, LoadoutItemBlueprint, UnitBlueprint } from "interfaces";
/** This file contains a set of utility functions that are reused in the various editors and allows to declutter the classes
*
*/
/** Add a string input in the form of String: [ value ]
*
* @param div The HTMLElement that will contain the input
* @param key The key of the input, which will be used as label
* @param value The initial value of the input
* @param type The type of the input, e.g. "Text" or "Number" as per html standard
* @param callback Callback called when the user enters a new value
* @param disabled If true, the input will be disabled and read only
*/
export function addStringInput(div: HTMLElement, key: string, value: string, type: string, callback: CallableFunction, disabled?: boolean) {
var row = document.createElement("div");
var dt = document.createElement("dt");
var dd = document.createElement("dd");
dt.innerText = key;
var input = document.createElement("input");
input.value = value;
input.textContent = value;
input.type = type?? "text";
input.disabled = disabled?? false;
input.onchange = () => callback(input.value);
dd.appendChild(input);
row.appendChild(dt);
row.appendChild(dd);
row.classList.add("input-row");
div.appendChild(row);
}
/** Add a dropdown (select) input
*
* @param div The HTMLElement that will contain the input
* @param key The key of the input, which will be used as label
* @param value The initial value of the input
* @param options The dropdown options
*/
export function addDropdownInput(div: HTMLElement, key: string, value: string, options: string[], callback: CallableFunction, disabled?: boolean) {
var row = document.createElement("div");
var dt = document.createElement("dt");
var dd = document.createElement("dd");
dt.innerText = key;
var select = document.createElement("select");
options.forEach((option: string) => {
var el = document.createElement("option");
el.value = option;
el.innerText = option;
select.appendChild(el);
});
select.value = value;
select.disabled = disabled?? false;
select.onchange = () => callback(select.value);
dd.appendChild(select);
row.appendChild(dt);
row.appendChild(dd);
row.classList.add("input-row");
div.appendChild(row);
}
/** Add a checkbox input in the form of String: [ value ]
*
* @param div The HTMLElement that will contain the input
* @param key The key of the input, which will be used as label
* @param value The initial value of the input
* @param callback Callback called when the user enters a new value
* @param disabled If true, the input will be disabled and read only
*/
export function addCheckboxInput(div: HTMLElement, key: string, value: boolean, callback: CallableFunction, disabled?: boolean) {
var row = document.createElement("div");
var dt = document.createElement("dt");
var dd = document.createElement("dd");
dt.innerText = key;
var input = document.createElement("input");
input.checked = value;
input.type = "checkbox";
input.disabled = disabled?? false;
input.onchange = () => callback(input.checked);
dd.appendChild(input);
row.appendChild(dt);
row.appendChild(dd);
row.classList.add("input-row");
div.appendChild(row);
}
/** Create a loadout items editor. This editor allows to add or remove loadout items, as well as changing their name and quantity
*
* @param div The HTMLElement that will contain the editor
* @param loadout The loadout to edit
*/
export function addLoadoutItemsEditor(div: HTMLElement, loadout: LoadoutBlueprint) {
var itemsEl = document.createElement("div");
itemsEl.classList.add("dm-scroll-container", "dm-items-container");
/* Create a row for each loadout item to allow and change the name and quantity of the item itself */
loadout.items.sort((a: LoadoutItemBlueprint, b: LoadoutItemBlueprint) => a.name.localeCompare(b.name, undefined, {sensitivity: 'base'}));
loadout.items.forEach((item: LoadoutItemBlueprint, index: number) => {
var rowDiv = document.createElement("div");
var nameLabel = document.createElement("label");
nameLabel.innerText = "Name"
rowDiv.appendChild(nameLabel);
var nameInput = document.createElement("input");
rowDiv.appendChild(nameInput);
nameInput.textContent = item.name;
nameInput.value = item.name
nameInput.onchange = () => { loadout.items[index].name = nameInput.value; }
var quantityLabel = document.createElement("label");
quantityLabel.innerText = "Quantity"
rowDiv.appendChild(quantityLabel);
var quantityInput = document.createElement("input");
rowDiv.appendChild(quantityInput);
quantityInput.textContent = String(item.quantity);
quantityInput.value = String(item.quantity);
quantityInput.type = "number";
quantityInput.step = "1";
quantityInput.onchange = () => { loadout.items[index].quantity = parseInt(quantityInput.value); }
/* This button allows to remove the item */
var button = document.createElement("button");
button.innerText = "X";
button.onclick = () => {
loadout.items.splice(index, 1);
div.dispatchEvent(new Event("refresh"));
}
rowDiv.appendChild(button);
itemsEl.appendChild(rowDiv);
})
div.appendChild(itemsEl);
/* Button to add a new item to the loadout */
var inputDiv = document.createElement("div");
inputDiv.classList.add("dm-new-item-input");
var button = document.createElement("button");
button.innerText = "Add";
inputDiv.appendChild(button);
div.appendChild(inputDiv);
button.addEventListener("click", (ev: MouseEvent) => {
loadout?.items.push({
name: "",
quantity: 1
})
div.dispatchEvent(new Event("refresh"));
});
}
/** Add a input and button to create a new element in a list. It uses a generic callback to actually add the element.
*
* @param div The HTMLElement that will contain the input and button
* @param callback Callback called when the user clicks on "Add"
*/
export function addNewElementInput(div: HTMLElement, callback: CallableFunction) {
var inputDiv = document.createElement("div");
inputDiv.classList.add("dm-new-element-input");
var input = document.createElement("input");
inputDiv.appendChild(input);
var button = document.createElement("button");
button.innerText = "Add";
button.addEventListener("click", (ev: MouseEvent) => callback(ev, input));
inputDiv.appendChild(button);
div.appendChild(inputDiv);
}
/** Add a scrollable list of blueprints
*
* @param div The HTMLElement that will contain the list
* @param database The database that will be used to fill the list of blueprints
* @param filter A string filter that will be executed to filter the blueprints to add
* @param callback Callback called when the user clicks on one of the elements
*/
export function addBlueprintsScroll(div: HTMLElement, database: {blueprints: {[key: string]: UnitBlueprint}}, filter: string, callback: CallableFunction) {
var scrollDiv = document.createElement("div");
scrollDiv.classList.add("dm-scroll-container");
if (database !== null) {
var blueprints: {[key: string]: UnitBlueprint} = database.blueprints;
for (let key of Object.keys(blueprints).sort((a, b) => a.localeCompare(b, undefined, {sensitivity: 'base'}))) {
var addKey = true;
if (filter !== "") {
try {
var blueprint = blueprints[key];
addKey = eval(filter);
} catch {
console.error("An error has occurred evaluating the blueprint filter")
}
}
if (addKey) {
var rowDiv = document.createElement("div");
scrollDiv.appendChild(rowDiv);
let text = document.createElement("div");
text.innerHTML = `<div>${key}</div> <div>${blueprints[key].label}</div>`;
text.onclick = () => {
callback(key);
const collection = document.getElementsByClassName("blueprint-selected");
for (let i = 0; i < collection.length; i++) {
collection[i].classList.remove("blueprint-selected");
}
text.classList.add("blueprint-selected");
}
rowDiv.appendChild(text);
let checkbox = document.createElement("input");
checkbox.type = "checkbox";
checkbox.checked = blueprints[key].enabled;
checkbox.onclick = () => {
console.log(checkbox.checked);
blueprints[key].enabled = checkbox.checked;
}
rowDiv.appendChild(checkbox);
/* This button allows to remove an element from the list. It requires a refresh. */
var button = document.createElement("button");
button.innerText = "X";
button.onclick = () => {
delete blueprints[key];
div.dispatchEvent(new Event("refresh"));
}
rowDiv.appendChild(button);
}
}
}
div.appendChild(scrollDiv);
}
/** Add a scrollable list of loadouts
*
* @param div The HTMLElement that will contain the list
* @param loadouts The loadouts that will be used to fill the list
* @param callback Callback called when the user clicks on one of the elements
*/
export function addLoadoutsScroll(div: HTMLElement, loadouts: LoadoutBlueprint[], callback: CallableFunction) {
var loadoutsEl = document.createElement("div");
loadoutsEl.classList.add("dm-scroll-container", "dm-loadout-container")
loadouts.sort((a: LoadoutBlueprint, b: LoadoutBlueprint) => a.name.localeCompare(b.name, undefined, {sensitivity: 'base'}));
loadouts.forEach((loadout: LoadoutBlueprint, index: number) => {
var rowDiv = document.createElement("div");
loadoutsEl.appendChild(rowDiv);
var text = document.createElement("label");
text.textContent = loadout.name;
text.onclick = () => { callback(loadout) };
rowDiv.appendChild(text);
/* The "Empty loadout" can not be removed */
if (loadout.name !== "Empty loadout") {
let checkbox = document.createElement("input");
checkbox.type = "checkbox";
checkbox.checked = loadout.enabled;
checkbox.onclick = () => {
console.log(checkbox.checked);
loadout.enabled = checkbox.checked;
}
rowDiv.appendChild(checkbox);
/* This button allows to remove an element from the list. It requires a refresh. */
var button = document.createElement("button");
button.innerText = "X";
button.onclick = () => {
loadouts.splice(index, 1);
div.dispatchEvent(new Event("refresh"));
}
rowDiv.appendChild(button);
}
});
div.appendChild(loadoutsEl);
}
/** Converts an array of string into a single string like [val1, val2, val3]
*
* @param array The input array of strings
* @returns The string
*/
export function arrayToString(array: string[]) {
return "[" + array.join( ", " ) + "]";
}
/** Converts an a single string like [val1, val2, val3] into an array
*
* @param input The input string
* @returns The array
*/
export function stringToArray(input: string) {
return input.match( /(\w)+/g ) ?? [];
}

View File

@@ -0,0 +1,295 @@
#database-manager-panel {
flex-direction: column;
display: flex;
width: 80%;
height: 80%;
padding: 10px;
border-radius: 5px;
background-color: var(--background-steel) !important;
z-index: 9999999;
}
@media (min-width: 1200px) {
.dm-container {
flex-direction: row;
}
}
@media (max-width: 1200px) {
.dm-container {
flex-direction: column;
overflow-y: auto;
}
}
#database-manager-panel * {
font-size: 13;
font-family: 'Open Sans', sans-serif !important;
user-select: none;
}
#database-manager-panel>div:first-child {
display: flex;
align-items: center;
}
#database-manager-panel>div:last-child {
display: flex;
column-gap: 5px;
align-items: center;
justify-content: end;
justify-items: end;
margin-top: 5px;
}
#database-manager-panel>div:last-child>button {
border: 1px solid white;
}
.dm-container {
background-color: var(--background-grey);
border: 2px solid #777777;
position: relative;
display: flex;
width: 100%;
padding: 5px;
height: calc(100% - 64px - 5px);
border-radius: 0px 5px 5px 5px;
}
.dm-content-container {
position: relative;
margin: 10px;
display: flex;
flex-direction: column;
row-gap: 5px;
max-height: 100%;
padding: 10px;
}
@media (min-width: 1200px) {
.dm-content-container {
height: calc(100% - 20px);
}
.dm-content-container:nth-of-type(1) {
width: 400px;
}
.dm-content-container:nth-of-type(2) {
width: 500px;
}
.dm-content-container:nth-of-type(3) {
flex: 1;
}
}
@media (max-width: 1200px) {
.dm-content-container {
width: calc(100% - 20px);
}
.dm-content-container:nth-of-type(1) {
height: 30%;
}
.dm-content-container:nth-of-type(2) {
height: 50%;
}
.dm-content-container:nth-of-type(3) {
flex: 1;
}
}
.dm-content-container>label {
font-size: 18px !important;
font-weight: bold;
}
.dm-scroll-container {
display: flex;
flex-direction: column;
overflow-y: scroll;
max-height: 100%;
color: black;
font-weight: bold;
}
#database-manager-panel input {
font-weight: bold;
}
.dm-scroll-container>div:nth-child(even) {
background-color: gainsboro;
}
.dm-scroll-container>div:nth-child(odd) {
background-color: white;
}
.dm-scroll-container>div *:nth-child(1) {
height: 100%;
width: calc(100% - 25px);
padding: 2px;
word-wrap: break-word;
}
.dm-scroll-container>div *:nth-child(1):hover {
background-color: var(--accent-dark-blue);
color: white;
cursor: pointer;
}
.blueprint-selected {
background-color: var(--accent-light-blue) !important;
color: white;
}
.dm-scroll-container>div {
display: flex;
align-items: center;
justify-content: space-between;
}
.dm-scroll-container>div>div {
display: flex;
align-items: center;
justify-content: space-between;
}
.dm-scroll-container>div>button {
height: 20px;
width: 20px;
padding: 0px;
}
.dm-scroll-container>div>div>div:nth-child(1) {
width: fit-content;
}
.dm-scroll-container>div>div>div:nth-child(2) {
overflow: hidden;
text-wrap: nowrap;
text-overflow: ellipsis;
font-weight: normal;
}
.input-row {
width: 100%;
display: flex;
flex-direction: row;
}
@media (max-width: 1200px) {
.dm-content-container label {
width: 100%;
}
.input-row {
width: 50%;
}
}
.input-row>dt {
width: 250px;
}
.input-row>dd {
width: 100%;
text-align: right;
}
.input-row>dd>* {
width: 100%;
font-weight: bold;
}
.input-row>dd>*[type="checkbox"] {
width: 20px;
font-weight: bold;
}
.dm-loadout-container {
max-height: 100%;
max-width: 500px;
width: 100%;
}
.dm-items-container {
max-height: 100%;
height: fit-content;
}
.dm-items-container>div {
display: flex;
align-items: center;
column-gap: 2px;
}
.dm-items-container>div>label {
width: 80px !important;
}
.dm-items-container div>input:nth-of-type(1) {
flex: 1;
font-weight: bold;
}
.dm-items-container div>input:nth-of-type(2) {
width: 40px;
font-weight: bold;
}
.dm-new-element-input {
display: flex;
flex-direction: row;
column-gap: 2px;
width: 100%;
align-items: center;
}
.dm-new-element-input>input {
width: 100%;
}
.dm-new-element-input>button {
width: 60px;
}
.dm-new-item-input {
display: flex;
justify-content: end;
}
.dm-new-item-input>button {
width: 60px;
}
.tab-button {
transform: translateY(+3px);
background-color: var(--background-steel);
border-radius: 0;
border-bottom: 2px solid transparent !important;
border-top: 2px solid #777777 !important;
border-left: 2px solid #777777 !important;
border-right: 0px solid #777777 !important;
}
.tab-button.selected {
background-color: var(--background-grey);
z-index: 10;
}
.tab-button:first-of-type {
border-top-left-radius: 5px;
}
.tab-button:last-of-type {
border-top-right-radius: 5px;
border-right: 2px solid #777777 !important;
}
#database-manager-panel button :not(.dm-scroll-container>div) {
border: 1px solid white;
}

View File

@@ -0,0 +1,103 @@
{
"compilerOptions": {
/* Visit https://aka.ms/tsconfig to read more about this file */
/* Projects */
// "incremental": true, /* Save .tsbuildinfo files to allow for incremental compilation of projects. */
// "composite": true, /* Enable constraints that allow a TypeScript project to be used with project references. */
// "tsBuildInfoFile": "./.tsbuildinfo", /* Specify the path to .tsbuildinfo incremental compilation file. */
// "disableSourceOfProjectReferenceRedirect": true, /* Disable preferring source files instead of declaration files when referencing composite projects. */
// "disableSolutionSearching": true, /* Opt a project out of multi-project reference checking when editing. */
// "disableReferencedProjectLoad": true, /* Reduce the number of projects loaded automatically by TypeScript. */
/* Language and Environment */
"target": "ES2017", /* Set the JavaScript language version for emitted JavaScript and include compatible library declarations. */
// "lib": [], /* Specify a set of bundled library declaration files that describe the target runtime environment. */
// "jsx": "preserve", /* Specify what JSX code is generated. */
// "experimentalDecorators": true, /* Enable experimental support for TC39 stage 2 draft decorators. */
// "emitDecoratorMetadata": true, /* Emit design-type metadata for decorated declarations in source files. */
// "jsxFactory": "", /* Specify the JSX factory function used when targeting React JSX emit, e.g. 'React.createElement' or 'h'. */
// "jsxFragmentFactory": "", /* Specify the JSX Fragment reference used for fragments when targeting React JSX emit e.g. 'React.Fragment' or 'Fragment'. */
// "jsxImportSource": "", /* Specify module specifier used to import the JSX factory functions when using 'jsx: react-jsx*'. */
// "reactNamespace": "", /* Specify the object invoked for 'createElement'. This only applies when targeting 'react' JSX emit. */
// "noLib": true, /* Disable including any library files, including the default lib.d.ts. */
// "useDefineForClassFields": true, /* Emit ECMAScript-standard-compliant class fields. */
// "moduleDetection": "auto", /* Control what method is used to detect module-format JS files. */
/* Modules */
"module": "commonjs", /* Specify what module code is generated. */
"rootDirs": ["./src"], /* Specify the root folder within your source files. */
// "moduleResolution": "node", /* Specify how TypeScript looks up a file from a given module specifier. */
// "baseUrl": "./", /* Specify the base directory to resolve non-relative module names. */
// "paths": {}, /* Specify a set of entries that re-map imports to additional lookup locations. */
// "rootDirs": [], /* Allow multiple folders to be treated as one when resolving modules. */
"typeRoots": [
"./node_modules/@types",
"../../@types"
], /* Specify multiple folders that act like './node_modules/@types'. */
"types": [
"olympus"
], /* Specify type package names to be included without being referenced in a source file. */
// "allowUmdGlobalAccess": true, /* Allow accessing UMD globals from modules. */
// "moduleSuffixes": [], /* List of file name suffixes to search when resolving a module. */
// "resolveJsonModule": true, /* Enable importing .json files. */
// "noResolve": true, /* Disallow 'import's, 'require's or '<reference>'s from expanding the number of files TypeScript should add to a project. */
/* JavaScript Support */
"allowJs": true, /* Allow JavaScript files to be a part of your program. Use the 'checkJS' option to get errors from these files. */
// "checkJs": true, /* Enable error reporting in type-checked JavaScript files. */
// "maxNodeModuleJsDepth": 1, /* Specify the maximum folder depth used for checking JavaScript files from 'node_modules'. Only applicable with 'allowJs'. */
/* Emit */
// "declaration": true, /* Generate .d.ts files from TypeScript and JavaScript files in your project. */
// "declarationMap": true, /* Create sourcemaps for d.ts files. */
// "emitDeclarationOnly": true, /* Only output d.ts files and not JavaScript files. */
// "sourceMap": true, /* Create source map files for emitted JavaScript files. */
// "outFile": "./", /* Specify a file that bundles all outputs into one JavaScript file. If 'declaration' is true, also designates a file that bundles all .d.ts output. */
// "outDir": "./", /* Specify an output folder for all emitted files. */
// "removeComments": true, /* Disable emitting comments. */
// "noEmit": true, /* Disable emitting files from a compilation. */
// "importHelpers": true, /* Allow importing helper functions from tslib once per project, instead of including them per-file. */
// "importsNotUsedAsValues": "remove", /* Specify emit/checking behavior for imports that are only used for types. */
// "downlevelIteration": true, /* Emit more compliant, but verbose and less performant JavaScript for iteration. */
// "sourceRoot": "", /* Specify the root path for debuggers to find the reference source code. */
// "mapRoot": "", /* Specify the location where debugger should locate map files instead of generated locations. */
// "inlineSourceMap": true, /* Include sourcemap files inside the emitted JavaScript. */
// "inlineSources": true, /* Include source code in the sourcemaps inside the emitted JavaScript. */
// "emitBOM": true, /* Emit a UTF-8 Byte Order Mark (BOM) in the beginning of output files. */
// "newLine": "crlf", /* Set the newline character for emitting files. */
// "stripInternal": true, /* Disable emitting declarations that have '@internal' in their JSDoc comments. */
// "noEmitHelpers": true, /* Disable generating custom helper functions like '__extends' in compiled output. */
// "noEmitOnError": true, /* Disable emitting files if any type checking errors are reported. */
// "preserveConstEnums": true, /* Disable erasing 'const enum' declarations in generated code. */
// "declarationDir": "./", /* Specify the output directory for generated declaration files. */
// "preserveValueImports": true, /* Preserve unused imported values in the JavaScript output that would otherwise be removed. */
/* Interop Constraints */
// "isolatedModules": true, /* Ensure that each file can be safely transpiled without relying on other imports. */
// "allowSyntheticDefaultImports": true, /* Allow 'import x from y' when a module doesn't have a default export. */
"esModuleInterop": true, /* Emit additional JavaScript to ease support for importing CommonJS modules. This enables 'allowSyntheticDefaultImports' for type compatibility. */
// "preserveSymlinks": true, /* Disable resolving symlinks to their realpath. This correlates to the same flag in node. */
"forceConsistentCasingInFileNames": true, /* Ensure that casing is correct in imports. */
/* Type Checking */
"strict": true, /* Enable all strict type-checking options. */
// "noImplicitAny": true, /* Enable error reporting for expressions and declarations with an implied 'any' type. */
// "strictNullChecks": true, /* When type checking, take into account 'null' and 'undefined'. */
// "strictFunctionTypes": true, /* When assigning functions, check to ensure parameters and the return values are subtype-compatible. */
// "strictBindCallApply": true, /* Check that the arguments for 'bind', 'call', and 'apply' methods match the original function. */
// "strictPropertyInitialization": true, /* Check for class properties that are declared but not set in the constructor. */
// "noImplicitThis": true, /* Enable error reporting when 'this' is given the type 'any'. */
// "useUnknownInCatchVariables": true, /* Default catch clause variables as 'unknown' instead of 'any'. */
// "alwaysStrict": true, /* Ensure 'use strict' is always emitted. */
// "noUnusedLocals": true, /* Enable error reporting when local variables aren't read. */
// "noUnusedParameters": true, /* Raise an error when a function parameter isn't read. */
// "exactOptionalPropertyTypes": true, /* Interpret optional property types as written, rather than adding 'undefined'. */
// "noImplicitReturns": true, /* Enable error reporting for codepaths that do not explicitly return in a function. */
// "noFallthroughCasesInSwitch": true, /* Enable error reporting for fallthrough cases in switch statements. */
// "noUncheckedIndexedAccess": true, /* Add 'undefined' to a type when accessed using an index. */
// "noImplicitOverride": true, /* Ensure overriding members in derived classes are marked with an override modifier. */
// "noPropertyAccessFromIndexSignature": true, /* Enforces using indexed accessors for keys declared using an indexed type. */
// "allowUnusedLabels": true, /* Disable error reporting for unused labels. */
// "allowUnreachableCode": true, /* Disable error reporting for unreachable code. */
/* Completeness */
// "skipDefaultLibCheck": true, /* Skip type checking .d.ts files that are included with TypeScript. */
"skipLibCheck": true /* Skip type checking all .d.ts files. */
},
"include": [
"src/*.ts"
]
}

View File

@@ -0,0 +1,466 @@
{
"airfields": {
"Anapa-Vityazevo": {
"ICAO": "URKA",
"elevation": "141",
"TACAN": "",
"runways": [
{
"headings": [
{
"22": {
"magHeading": "214",
"ILS": ""
},
"04": {
"magHeading": "034",
"ILS": ""
}
}
],
"length": "9000"
}
]
},
"Batumi": {
"ICAO": "UGSB",
"elevation": "33",
"TACAN": "16X",
"runways": [
{
"headings": [
{
"13": {
"magHeading": "119",
"ILS": ""
},
"31": {
"magHeading": "299",
"ILS": ""
}
}
],
"length": "7500"
}
]
},
"Beslan": {
"ICAO": "URMO",
"elevation": "1722",
"TACAN": "",
"runways": [
{
"headings": [
{
"10": {
"magHeading": "086",
"ILS": "110.50"
},
"28": {
"magHeading": "266",
"ILS": ""
}
}
],
"length": "9600"
}
]
},
"Gelendzhik": {
"ICAO": "URKG",
"elevation": "72",
"TACAN": "",
"runways": [
{
"headings": [
{
"19": {
"magHeading": "212",
"ILS": ""
},
"01": {
"magHeading": "032",
"ILS": ""
}
}
],
"length": "5400"
}
]
},
"Gudauta": {
"ICAO": "UG23",
"elevation": "69",
"TACAN": "",
"runways": [
{
"headings": [
{
"15": {
"magHeading": "144",
"ILS": ""
},
"33": {
"magHeading": "324",
"ILS": ""
}
}
],
"length": "7700"
}
]
},
"Kobuleti": {
"ICAO": "UG5X",
"elevation": "69",
"TACAN": "67X",
"runways": [
{
"headings": [
{
"25": {
"magHeading": "243",
"ILS": ""
},
"07": {
"magHeading": "063",
"ILS": "111.50"
}
}
],
"length": "7400"
}
]
},
"Krasnodar-Center": {
"ICAO": "URKL",
"elevation": "98",
"TACAN": "",
"runways": [
{
"headings": [
{
"27": {
"magHeading": "259",
"ILS": ""
},
"09": {
"magHeading": "079",
"ILS": ""
}
}
],
"length": "7700"
}
]
},
"Krasnodar-Pashkovsky": {
"ICAO": "URKK",
"elevation": "112",
"TACAN": "",
"runways": [
{
"headings": [
{
"23": {
"magHeading": "219",
"ILS": ""
},
"05": {
"magHeading": "039",
"ILS": ""
}
}
],
"length": "9600"
}
]
},
"Krymsk": {
"ICAO": "URKW",
"elevation": "66",
"TACAN": "",
"runways": [
{
"headings": [
{
"22": {
"magHeading": "212",
"ILS": ""
},
"04": {
"magHeading": "032",
"ILS": ""
}
}
],
"length": "8000"
}
]
},
"Kutaisi": {
"ICAO": "UGKO",
"elevation": "148",
"TACAN": "44X",
"runways": [
{
"headings": [
{
"25": {
"magHeading": "247",
"ILS": ""
},
"07": {
"magHeading": "067'",
"ILS": "109.75"
}
}
],
"length": "7700"
}
]
},
"Maykop-Khanskaya": {
"ICAO": "URKH",
"elevation": "591",
"TACAN": "",
"runways": [
{
"headings": [
{
"22": {
"magHeading": "211",
"ILS": ""
},
"04": {
"magHeading": "031",
"ILS": ""
}
}
],
"length": "10100"
}
]
},
"Mineralnye Vody": {
"ICAO": "URMM",
"elevation": "1050",
"TACAN": "",
"runways": [
{
"headings": [
{
"12": {
"magHeading": "108",
"ILS": "111.70"
},
"30": {
"magHeading": "288",
"ILS": "109.30"
}
}
],
"length": "12700"
}
]
},
"Mozdok": {
"ICAO": "XRMF",
"elevation": "507",
"TACAN": "",
"runways": [
{
"headings": [
{
"26": {
"magHeading": "255",
"ILS": ""
},
"08": {
"magHeading": "075",
"ILS": ""
}
}
],
"length": "9400"
}
]
},
"Nalchik": {
"ICAO": "URMN",
"elevation": "1411",
"TACAN": "",
"runways": [
{
"headings": [
{
"24": {
"magHeading": "228",
"ILS": "110.50"
},
"06": {
"magHeading": "048'",
"ILS": ""
}
}
],
"length": "7000"
}
]
},
"Novorossiysk": {
"ICAO": "URKN",
"elevation": "131",
"TACAN": "",
"runways": [
{
"headings": [
{
"22": {
"magHeading": "214",
"ILS": ""
},
"04": {
"magHeading": "034",
"ILS": ""
}
}
],
"length": "5400"
}
]
},
"Senaki-Kolkhi": {
"ICAO": "UGKS",
"elevation": "43",
"TACAN": "31X",
"runways": [
{
"headings": [
{
"27": {
"magHeading": "268",
"ILS": ""
},
"09": {
"magHeading": "088'",
"ILS": "108.90"
}
}
],
"length": "7400"
}
]
},
"Sochi-Adler": {
"ICAO": "URSS",
"elevation": "98",
"TACAN": "",
"runways": [
{
"headings": [
{
"27": {
"magHeading": "235",
"ILS": ""
},
"06": {
"magHeading": "055",
"ILS": "111.10"
}
}
],
"length": "9700"
}
]
},
"Tbilisi-Lochini": {
"ICAO": "UGTB",
"elevation": "1574",
"TACAN": "25X",
"runways": [
{
"headings": [
{
"13": {
"magHeading": "121",
"ILS": "110.30"
},
"31": {
"magHeading": "301",
"ILS": "108.90"
}
}
],
"length": "9300"
}
]
},
"Soganlug": {
"ICAO": "UG24",
"elevation": "1500",
"TACAN": "25X",
"runways": [
{
"headings": [
{
"14": {
"magHeading": "125",
"ILS": ""
},
"32": {
"magHeading": "305",
"ILS": ""
}
}
],
"length": "6500"
}
]
},
"Sukhumi-Babushara": {
"ICAO": "UGSS",
"elevation": "43",
"TACAN": "",
"runways": [
{
"headings": [
{
"12": {
"magHeading": "109",
"ILS": ""
},
"30": {
"magHeading": "289",
"ILS": ""
}
}
],
"length": "11400"
}
]
},
"Vaziani": {
"ICAO": "UG27",
"elevation": "1524",
"TACAN": "22X",
"runways": [
{
"headings": [
{
"13": {
"magHeading": "129",
"ILS": "108.75"
},
"31": {
"magHeading": "309",
"ILS": "108.75"
}
}
],
"length": "7700"
}
]
}
}
}

View File

@@ -0,0 +1,466 @@
{
"airfields": {
"Anapa-Vityazevo": {
"ICAO": "URKA",
"elevation": "141",
"TACAN": "",
"runways": [
{
"headings": [
{
"22": {
"magHeading": "214",
"ILS": ""
},
"04": {
"magHeading": "034",
"ILS": ""
}
}
],
"length": "9000"
}
]
},
"Batumi": {
"ICAO": "UGSB",
"elevation": "33",
"TACAN": "16X",
"runways": [
{
"headings": [
{
"13": {
"magHeading": "119",
"ILS": ""
},
"31": {
"magHeading": "299",
"ILS": ""
}
}
],
"length": "7500"
}
]
},
"Beslan": {
"ICAO": "URMO",
"elevation": "1722",
"TACAN": "",
"runways": [
{
"headings": [
{
"10": {
"magHeading": "086",
"ILS": "110.50"
},
"28": {
"magHeading": "266",
"ILS": ""
}
}
],
"length": "9600"
}
]
},
"Gelendzhik": {
"ICAO": "URKG",
"elevation": "72",
"TACAN": "",
"runways": [
{
"headings": [
{
"19": {
"magHeading": "212",
"ILS": ""
},
"01": {
"magHeading": "032",
"ILS": ""
}
}
],
"length": "5400"
}
]
},
"Gudauta": {
"ICAO": "UG23",
"elevation": "69",
"TACAN": "",
"runways": [
{
"headings": [
{
"15": {
"magHeading": "144",
"ILS": ""
},
"33": {
"magHeading": "324",
"ILS": ""
}
}
],
"length": "7700"
}
]
},
"Kobuleti": {
"ICAO": "UG5X",
"elevation": "69",
"TACAN": "67X",
"runways": [
{
"headings": [
{
"25": {
"magHeading": "243",
"ILS": ""
},
"07": {
"magHeading": "063",
"ILS": "111.50"
}
}
],
"length": "7400"
}
]
},
"Krasnodar-Center": {
"ICAO": "URKL",
"elevation": "98",
"TACAN": "",
"runways": [
{
"headings": [
{
"27": {
"magHeading": "259",
"ILS": ""
},
"09": {
"magHeading": "079",
"ILS": ""
}
}
],
"length": "7700"
}
]
},
"Krasnodar-Pashkovsky": {
"ICAO": "URKK",
"elevation": "112",
"TACAN": "",
"runways": [
{
"headings": [
{
"23": {
"magHeading": "219",
"ILS": ""
},
"05": {
"magHeading": "039",
"ILS": ""
}
}
],
"length": "9600"
}
]
},
"Krymsk": {
"ICAO": "URKW",
"elevation": "66",
"TACAN": "",
"runways": [
{
"headings": [
{
"22": {
"magHeading": "212",
"ILS": ""
},
"04": {
"magHeading": "032",
"ILS": ""
}
}
],
"length": "8000"
}
]
},
"Kutaisi": {
"ICAO": "UGKO",
"elevation": "148",
"TACAN": "44X",
"runways": [
{
"headings": [
{
"25": {
"magHeading": "247",
"ILS": ""
},
"07": {
"magHeading": "067'",
"ILS": "109.75"
}
}
],
"length": "7700"
}
]
},
"Maykop-Khanskaya": {
"ICAO": "URKH",
"elevation": "591",
"TACAN": "",
"runways": [
{
"headings": [
{
"22": {
"magHeading": "211",
"ILS": ""
},
"04": {
"magHeading": "031",
"ILS": ""
}
}
],
"length": "10100"
}
]
},
"Mineralnye Vody": {
"ICAO": "URMM",
"elevation": "1050",
"TACAN": "",
"runways": [
{
"headings": [
{
"12": {
"magHeading": "108",
"ILS": "111.70"
},
"30": {
"magHeading": "288",
"ILS": "109.30"
}
}
],
"length": "12700"
}
]
},
"Mozdok": {
"ICAO": "XRMF",
"elevation": "507",
"TACAN": "",
"runways": [
{
"headings": [
{
"26": {
"magHeading": "255",
"ILS": ""
},
"08": {
"magHeading": "075",
"ILS": ""
}
}
],
"length": "9400"
}
]
},
"Nalchik": {
"ICAO": "URMN",
"elevation": "1411",
"TACAN": "",
"runways": [
{
"headings": [
{
"24": {
"magHeading": "228",
"ILS": "110.50"
},
"06": {
"magHeading": "048'",
"ILS": ""
}
}
],
"length": "7000"
}
]
},
"Novorossiysk": {
"ICAO": "URKN",
"elevation": "131",
"TACAN": "",
"runways": [
{
"headings": [
{
"22": {
"magHeading": "214",
"ILS": ""
},
"04": {
"magHeading": "034",
"ILS": ""
}
}
],
"length": "5400"
}
]
},
"Senaki-Kolkhi": {
"ICAO": "UGKS",
"elevation": "43",
"TACAN": "31X",
"runways": [
{
"headings": [
{
"27": {
"magHeading": "268",
"ILS": ""
},
"09": {
"magHeading": "088'",
"ILS": "108.90"
}
}
],
"length": "7400"
}
]
},
"Sochi-Adler": {
"ICAO": "URSS",
"elevation": "98",
"TACAN": "",
"runways": [
{
"headings": [
{
"27": {
"magHeading": "235",
"ILS": ""
},
"06": {
"magHeading": "055",
"ILS": "111.10"
}
}
],
"length": "9700"
}
]
},
"Tbilisi-Lochini": {
"ICAO": "UGTB",
"elevation": "1574",
"TACAN": "25X",
"runways": [
{
"headings": [
{
"13": {
"magHeading": "121",
"ILS": "110.30"
},
"31": {
"magHeading": "301",
"ILS": "108.90"
}
}
],
"length": "9300"
}
]
},
"Soganlug": {
"ICAO": "UG24",
"elevation": "1500",
"TACAN": "25X",
"runways": [
{
"headings": [
{
"14": {
"magHeading": "125",
"ILS": ""
},
"32": {
"magHeading": "305",
"ILS": ""
}
}
],
"length": "6500"
}
]
},
"Sukhumi-Babushara": {
"ICAO": "UGSS",
"elevation": "43",
"TACAN": "",
"runways": [
{
"headings": [
{
"12": {
"magHeading": "109",
"ILS": ""
},
"30": {
"magHeading": "289",
"ILS": ""
}
}
],
"length": "11400"
}
]
},
"Vaziani": {
"ICAO": "UG27",
"elevation": "1524",
"TACAN": "22X",
"runways": [
{
"headings": [
{
"13": {
"magHeading": "129",
"ILS": "108.75"
},
"31": {
"magHeading": "309",
"ILS": "108.75"
}
}
],
"length": "7700"
}
]
}
}
}

View File

@@ -0,0 +1,558 @@
{
"airfields": {
"Beatty": {
"ICAO": "KBTY",
"elevation": "3173",
"TACAN": "94X",
"runways": [
{
"headings": [
{
"16": {
"magHeading": "168",
"ILS": ""
},
"34": {
"magHeading": "348",
"ILS": ""
}
}
],
"length": "5500"
}
]
},
"Boulder City": {
"ICAO": "KBVU",
"elevation": "2205",
"TACAN": "114X",
"runways": [
{
"headings": [
{
"15": {
"magHeading": "153",
"ILS": ""
},
"33": {
"magHeading": "333",
"ILS": ""
}
}
],
"length": "3700"
},
{
"headings": [
{
"27": {
"magHeading": "267",
"ILS": ""
},
"09": {
"magHeading": "087",
"ILS": ""
}
}
],
"length": "4400"
}
]
},
"Creech": {
"ICAO": "KINS",
"elevation": "3126",
"TACAN": "87X",
"runways": [
{
"headings": [
{
"13": {
"magHeading": "134",
"ILS": ""
},
"31": {
"magHeading": "314",
"ILS": ""
}
}
],
"length": "4700"
},
{
"headings": [
{
"26": {
"magHeading": "260",
"ILS": ""
},
"08": {
"magHeading": "080",
"ILS": "108.70"
}
}
],
"length": "8700"
}
]
},
"Echo Bay": {
"ICAO": "0L9",
"elevation": "1549",
"TACAN": "",
"runways": [
{
"headings": [
{
"24": {
"magHeading": "246",
"ILS": ""
},
"06": {
"magHeading": "066",
"ILS": ""
}
}
],
"length": "3300"
}
]
},
"Groom Lake": {
"ICAO": "KXTA",
"elevation": "4495",
"TACAN": "18X",
"runways": [
{
"headings": [
{
"14L": {
"magHeading": "145",
"ILS": ""
},
"32R": {
"magHeading": "325",
"ILS": "109.30"
}
}
],
"length": "11700"
},
{
"headings": [
{
"14R (CLOSED)": {
"magHeading": "145",
"ILS": ""
},
"32L (CLOSED)": {
"magHeading": "325",
"ILS": ""
}
}
],
"length": "17800"
}
]
},
"Henderson Executive": {
"ICAO": "KHND",
"elevation": "2493",
"TACAN": "",
"runways": [
{
"headings": [
{
"17L": {
"magHeading": "168",
"ILS": ""
},
"35R": {
"magHeading": "348",
"ILS": ""
}
}
],
"length": "4600"
},
{
"headings": [
{
"17R": {
"magHeading": "168",
"ILS": ""
},
"35L": {
"magHeading": "348",
"ILS": ""
}
}
],
"length": "6100"
}
]
},
"Jean": {
"ICAO": "",
"elevation": "2825",
"TACAN": "",
"runways": [
{
"headings": [
{
"02L": {
"magHeading": "020",
"ILS": ""
},
"20R": {
"magHeading": "200",
"ILS": ""
}
}
],
"length": "4500"
},
{
"headings": [
{
"02R": {
"magHeading": "020",
"ILS": ""
},
"20L": {
"magHeading": "200",
"ILS": ""
}
}
],
"length": "3600"
}
]
},
"McCarran International": {
"ICAO": "KLAS",
"elevation": "2178",
"TACAN": "116X",
"runways": [
{
"headings": [
{
"01L": {
"magHeading": "013",
"ILS": ""
},
"19R": {
"magHeading": "193",
"ILS": ""
}
}
],
"length": "8000"
},
{
"headings": [
{
"01R": {
"magHeading": "013",
"ILS": ""
},
"19L": {
"magHeading": "193",
"ILS": ""
}
}
],
"length": "8000"
},
{
"headings": [
{
"07L": {
"magHeading": "078",
"ILS": ""
},
"25R": {
"magHeading": "258",
"ILS": "110.30"
}
}
],
"length": "10600"
},
{
"headings": [
{
"07R": {
"magHeading": "078",
"ILS": ""
},
"25L": {
"magHeading": "258",
"ILS": ""
}
}
],
"length": "10100"
}
]
},
"Laughlin": {
"ICAO": "KIFP",
"elevation": "673",
"TACAN": "",
"runways": [
{
"headings": [
{
"16": {
"magHeading": "164",
"ILS": ""
},
"34": {
"magHeading": "344",
"ILS": ""
}
}
],
"length": "7100"
}
]
},
"Lincoln County": {
"ICAO": "",
"elevation": "4816",
"TACAN": "",
"runways": [
{
"headings": [
{
"17": {
"magHeading": "170",
"ILS": ""
},
"35": {
"magHeading": "350",
"ILS": ""
}
}
],
"length": "4500"
}
]
},
"Mesquite": {
"ICAO": "67L",
"elevation": "1859",
"TACAN": "",
"runways": [
{
"headings": [
{
"19": {
"magHeading": "197",
"ILS": ""
},
"01": {
"magHeading": "017",
"ILS": ""
}
}
],
"length": "5000"
}
]
},
"Mina": {
"ICAO": "",
"elevation": "4560",
"TACAN": "",
"runways": [
{
"headings": [
{
"13": {
"magHeading": "140",
"ILS": ""
},
"31": {
"magHeading": "320",
"ILS": ""
}
}
],
"length": "4100"
}
]
},
"Nellis": {
"ICAO": "KLSV",
"elevation": "1849",
"TACAN": "12X",
"runways": [
{
"headings": [
{
"03L": {
"magHeading": "029",
"ILS": ""
},
"21R": {
"magHeading": "209",
"ILS": ""
}
}
],
"length": "9800"
},
{
"headings": [
{
"03R": {
"magHeading": "029",
"ILS": ""
},
"21L": {
"magHeading": "209",
"ILS": "109.10"
}
}
],
"length": "9800"
}
]
},
"North Las Vegas": {
"ICAO": "KVGT",
"elevation": "2228",
"TACAN": "",
"runways": [
{
"headings": [
{
"25": {
"magHeading": "256",
"ILS": ""
},
"07": {
"magHeading": "076",
"ILS": ""
}
}
],
"length": "4900"
},
{
"headings": [
{
"12L": {
"magHeading": "122",
"ILS": "110.70"
},
"30R": {
"magHeading": "302",
"ILS": "109.10"
}
}
],
"length": "3800"
},
{
"headings": [
{
"12R": {
"magHeading": "122",
"ILS": ""
},
"30L": {
"magHeading": "302",
"ILS": ""
}
}
],
"length": "4600"
}
]
},
"Pahute Mesa": {
"ICAO": "",
"elevation": "5059",
"TACAN": "",
"runways": [
{
"headings": [
{
"18": {
"magHeading": "182",
"ILS": ""
},
"36": {
"magHeading": "002",
"ILS": ""
}
}
],
"length": "5500"
}
]
},
"Tonopah": {
"ICAO": "KTPH",
"elevation": "5390",
"TACAN": "119X",
"runways": [
{
"headings": [
{
"11": {
"magHeading": "113",
"ILS": ""
},
"29": {
"magHeading": "293",
"ILS": ""
}
}
],
"length": "5600"
},
{
"headings": [
{
"15": {
"magHeading": "153",
"ILS": ""
},
"33": {
"magHeading": "333",
"ILS": ""
}
}
],
"length": "6800"
}
]
},
"Tonopah Test Range": {
"ICAO": "KTNX",
"elevation": "5535",
"TACAN": "77X",
"runways": [
{
"headings": [
{
"14": {
"magHeading": "145",
"ILS": "108.30"
},
"32": {
"magHeading": "325",
"ILS": "111.70"
}
}
],
"length": "11700"
}
]
}
}
}

View File

@@ -0,0 +1,747 @@
{
"airfields": {
"Abu_Dhabi_International_Airport": {
"ICAO": "OMAA",
"elevation": "92",
"TACAN": "",
"runways": [
{
"headings": [
{
"13L": {
"magHeading": "127",
"ILS": ""
},
"31R": {
"magHeading": "307",
"ILS": ""
}
}
],
"length": "13100"
},
{
"headings": [
{
"13R": {
"magHeading": "127",
"ILS": ""
},
"31L": {
"magHeading": "307",
"ILS": ""
}
}
],
"length": "13200"
}
]
},
"Ai_Ain_International_Airport": {
"ICAO": "OMAL",
"elevation": "814",
"TACAN": "",
"runways": [
{
"headings": [
{
"19": {
"magHeading": "186",
"ILS": ""
},
"01": {
"magHeading": "006",
"ILS": ""
}
}
],
"length": "12800"
}
]
},
"abu_musa_airport": {
"ICAO": "OIBA",
"elevation": "16",
"TACAN": "",
"runways": [
{
"headings": [
{
"26": {
"magHeading": "262",
"ILS": ""
},
"08": {
"magHeading": "082",
"ILS": ""
}
}
],
"length": "7800"
}
]
},
"Dhafra_AFB": {
"ICAO": "OMAM",
"elevation": "52",
"TACAN": "96X",
"runways": [
{
"headings": [
{
"13L": {
"magHeading": "126",
"ILS": "111.10"
},
"31R": {
"magHeading": "306",
"ILS": "109.10"
}
}
],
"length": "11700"
},
{
"headings": [
{
"13R": {
"magHeading": "16",
"ILS": "108.70"
},
"31L": {
"magHeading": "306",
"ILS": "108.70"
}
}
],
"length": "11700"
}
]
},
"Al_Maktoum_International_Airport": {
"ICAO": "OMDW",
"elevation": "125",
"TACAN": "",
"runways": [
{
"headings": [
{
"12": {
"magHeading": "120",
"ILS": "111.75"
},
"30": {
"magHeading": "300",
"ILS": "109.75"
}
}
],
"length": "14400"
}
]
},
"Minhad_AFB": {
"ICAO": "OMDM",
"elevation": "190",
"TACAN": "99X",
"runways": [
{
"headings": [
{
"27": {
"magHeading": "268",
"ILS": "110.75"
},
"09": {
"magHeading": "088",
"ILS": "110.70"
}
}
],
"length": "12600"
}
]
},
"Al_Bateen_Airport": {
"ICAO": "OMAD",
"elevation": "12",
"TACAN": "",
"runways": [
{
"headings": [
{
"13": {
"magHeading": "127",
"ILS": ""
},
"31": {
"magHeading": "307",
"ILS": ""
}
}
],
"length": "7000"
}
]
},
"Bandar_Abbas_airfield": {
"ICAO": "OIKB",
"elevation": "29",
"TACAN": "78X",
"runways": [
{
"headings": [
{
"03L": {
"magHeading": "25",
"ILS": ""
},
"21R": {
"magHeading": "205",
"ILS": ""
}
}
],
"length": "11000"
},
{
"headings": [
{
"03R": {
"magHeading": "25",
"ILS": ""
},
"21L": {
"magHeading": "205",
"ILS": "109.90"
}
}
],
"length": "11700"
}
]
},
"Bandar_Lengeh_Airport": {
"ICAO": "OIBL",
"elevation": "82",
"TACAN": "",
"runways": [
{
"headings": [
{
"26": {
"magHeading": "259",
"ILS": ""
},
"08": {
"magHeading": "079",
"ILS": ""
}
}
],
"length": "7900"
}
]
},
"Bandar_e_Jask_airfield": {
"ICAO": "OIZJ",
"elevation": "26",
"TACAN": "110X",
"runways": [
{
"headings": [
{
"24": {
"magHeading": "239",
"ILS": ""
},
"06": {
"magHeading": "059",
"ILS": ""
}
}
],
"length": "7300"
}
]
},
"Dubai_International_Airport": {
"ICAO": "OMDB",
"elevation": "16",
"TACAN": "",
"runways": [
{
"headings": [
{
"12L": {
"magHeading": "120",
"ILS": "110.10"
},
"30R": {
"magHeading": "300",
"ILS": "110.90"
}
}
],
"length": "11400"
},
{
"headings": [
{
"12R": {
"magHeading": "120",
"ILS": "109.50"
},
"30L": {
"magHeading": "300",
"ILS": "111.30"
}
}
],
"length": "11400"
}
]
},
"Fujarirah_AFB": {
"ICAO": "OMFJ",
"elevation": "121",
"TACAN": "",
"runways": [
{
"headings": [
{
"11": {
"magHeading": "111",
"ILS": ""
},
"29": {
"magHeading": "291",
"ILS": "111.50"
}
}
],
"length": "9700"
}
]
},
"Havadarya_AFB": {
"ICAO": "OIKP",
"elevation": "52",
"TACAN": "47X",
"runways": [
{
"headings": [
{
"26": {
"magHeading": "257",
"ILS": ""
},
"08": {
"magHeading": "077",
"ILS": "108.90"
}
}
],
"length": "7200"
}
]
},
"Jiroft_airfield": {
"ICAO": "OIKJ",
"elevation": "2664",
"TACAN": "",
"runways": [
{
"headings": [
{
"13": {
"magHeading": "125",
"ILS": ""
},
"31": {
"magHeading": "305",
"ILS": ""
}
}
],
"length": "9600"
}
]
},
"Kerman_AFB": {
"ICAO": "OIKK",
"elevation": "5745",
"TACAN": "97X",
"runways": [
{
"headings": [
{
"16": {
"magHeading": "155",
"ILS": ""
},
"34": {
"magHeading": "335",
"ILS": ""
}
}
],
"length": "12400"
}
]
},
"Khasab_AFB": {
"ICAO": "OOKB",
"elevation": "102",
"TACAN": "",
"runways": [
{
"headings": [
{
"19": {
"magHeading": "192",
"ILS": "110.30"
},
"01": {
"magHeading": "012",
"ILS": ""
}
}
],
"length": "8000"
}
]
},
"Kish_International_Airport": {
"ICAO": "OIBK",
"elevation": "115",
"TACAN": "112X",
"runways": [
{
"headings": [
{
"10": {
"magHeading": "094",
"ILS": ""
},
"28": {
"magHeading": "274",
"ILS": ""
}
}
],
"length": "11700"
},
{
"headings": [
{
"09R": {
"magHeading": "094",
"ILS": ""
},
"27L": {
"magHeading": "274",
"ILS": ""
}
}
],
"length": "11700"
}
]
},
"Lar_airbase": {
"ICAO": "OISL",
"elevation": "2635",
"TACAN": "",
"runways": [
{
"headings": [
{
"27": {
"magHeading": "268",
"ILS": ""
},
"09": {
"magHeading": "088",
"ILS": ""
}
}
],
"length": "10100"
}
]
},
"Lavan_Island_Airport": {
"ICAO": "OIBV",
"elevation": "75",
"TACAN": "",
"runways": [
{
"headings": [
{
"11": {
"magHeading": "110",
"ILS": ""
},
"29": {
"magHeading": "290",
"ILS": ""
}
}
],
"length": "8600"
}
]
},
"Liwa_Airbase": {
"ICAO": "OMLW",
"elevation": "400",
"TACAN": "121X",
"runways": [
{
"headings": [
{
"13": {
"magHeading": "130",
"ILS": ""
},
"31": {
"magHeading": "310",
"ILS": ""
}
}
],
"length": "11600"
}
]
},
"Qeshm_Airport": {
"ICAO": "OIKQ",
"elevation": "26",
"TACAN": "",
"runways": [
{
"headings": [
{
"23": {
"magHeading": "227",
"ILS": ""
},
"05": {
"magHeading": "047",
"ILS": ""
}
}
],
"length": "13600"
}
]
},
"Ras_Ai_Khaimah_International_Airport": {
"ICAO": "OMRK",
"elevation": "330",
"TACAN": "",
"runways": [
{
"headings": [
{
"17": {
"magHeading": "163",
"ILS": ""
},
"35": {
"magHeading": "343",
"ILS": ""
}
}
],
"length": "12000"
}
]
},
"Sas_Ai_Nakheel_Airport": {
"ICAO": "OMNK",
"elevation": "10",
"TACAN": "",
"runways": [
{
"headings": [
{
"16": {
"magHeading": "160",
"ILS": ""
},
"34": {
"magHeading": "340",
"ILS": ""
}
}
],
"length": "6000"
}
]
},
"Sharjah_International_Airport": {
"ICAO": "OMSJ",
"elevation": "26",
"TACAN": "",
"runways": [
{
"headings": [
{
"12L": {
"magHeading": "121",
"ILS": "108.55"
},
"30R": {
"magHeading": "301",
"ILS": "111.95"
}
}
],
"length": "10500"
},
{
"headings": [
{
"12R": {
"magHeading": "121",
"ILS": ""
},
"30L": {
"magHeading": "301",
"ILS": ""
}
}
],
"length": "10500"
}
]
},
"Shiraz_AFB": {
"ICAO": "OISS",
"elevation": "4879",
"TACAN": "94X",
"runways": [
{
"headings": [
{
"11L": {
"magHeading": "113",
"ILS": ""
},
"29R": {
"magHeading": "293",
"ILS": ""
}
}
],
"length": "14000"
},
{
"headings": [
{
"11R": {
"magHeading": "113",
"ILS": ""
},
"29L": {
"magHeading": "293",
"ILS": "108.50"
}
}
],
"length": "13800"
}
]
},
"Sir_Abu_Nuayr": {
"ICAO": "OMSN",
"elevation": "26",
"TACAN": "",
"runways": [
{
"headings": [
{
"10": {
"magHeading": "097",
"ILS": ""
},
"28": {
"magHeading": "277",
"ILS": ""
}
}
],
"length": "2300"
}
]
},
"Sirri_Island_AFB": {
"ICAO": "OIBS",
"elevation": "20",
"TACAN": "",
"runways": [
{
"headings": [
{
"12": {
"magHeading": "125",
"ILS": ""
},
"30": {
"magHeading": "305",
"ILS": ""
}
}
],
"length": "7900"
}
]
},
"Tunb_Islab_AFB": {
"ICAO": "OIGI",
"elevation": "43",
"TACAN": "",
"runways": [
{
"headings": [
{
"21": {
"magHeading": "205",
"ILS": ""
},
"03": {
"magHeading": "025",
"ILS": ""
}
}
],
"length": "6200"
}
]
},
"Tonb_e_Kochak_Airport": {
"ICAO": "OITK",
"elevation": "16",
"TACAN": "89X",
"runways": [
{
"headings": [
{
"26": {
"magHeading": "259",
"ILS": ""
},
"08": {
"magHeading": "079",
"ILS": ""
}
}
],
"length": "2500"
}
]
}
}
}

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

Binary file not shown.

Before

Width:  |  Height:  |  Size: 8.5 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.3 KiB

Binary file not shown.

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.4 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.7 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.3 KiB

View File

@@ -1,3 +0,0 @@
<svg width="15" height="14" viewBox="0 0 15 14" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M10.4766 9.25718L11.3099 8.44468C11.4401 8.31772 11.6667 8.40659 11.6667 8.58941V12.2812C11.6667 12.9541 11.1068 13.5 10.4167 13.5H1.25C0.559896 13.5 0 12.9541 0 12.2812V3.3437C0 2.67085 0.559896 2.12495 1.25 2.12495H8.3724C8.55729 2.12495 8.65104 2.34331 8.52083 2.4728L7.6875 3.2853C7.64844 3.32339 7.59635 3.3437 7.53906 3.3437H1.25V12.2812H10.4167V9.39937C10.4167 9.34605 10.4375 9.29526 10.4766 9.25718ZM14.5547 4.13335L7.71615 10.8009L5.36198 11.0548C4.67969 11.1285 4.09896 10.5673 4.17448 9.89702L4.4349 7.60171L11.2734 0.934131C11.8698 0.352686 12.8333 0.352686 13.4271 0.934131L14.5521 2.03101C15.1484 2.61245 15.1484 3.55444 14.5547 4.13335ZM11.9818 4.91792L10.4688 3.44272L5.63021 8.16284L5.4401 9.82085L7.14063 9.6355L11.9818 4.91792ZM13.6693 2.89429L12.5443 1.79741C12.4375 1.69331 12.263 1.69331 12.1589 1.79741L11.3542 2.58198L12.8672 4.05718L13.6719 3.27261C13.776 3.16597 13.776 2.99839 13.6693 2.89429Z" fill="white"/>
</svg>

Before

Width:  |  Height:  |  Size: 1.0 KiB

View File

@@ -1,21 +0,0 @@
<?xml version="1.0" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 20010904//EN"
"http://www.w3.org/TR/2001/REC-SVG-20010904/DTD/svg10.dtd">
<svg version="1.0" xmlns="http://www.w3.org/2000/svg"
width="96.000000pt" height="96.000000pt" viewBox="0 0 96.000000 96.000000"
preserveAspectRatio="xMidYMid meet">
<g transform="translate(0.000000,96.000000) scale(0.100000,-0.100000)"
fill="#000000" stroke="none">
<path d="M411 846 c-77 -78 -70 -86 69 -86 139 0 146 8 69 86 -29 30 -60 54
-69 54 -9 0 -40 -24 -69 -54z"/>
<path d="M132 668 c-16 -16 -15 -43 2 -57 9 -8 110 -11 351 -9 309 3 339 4
349 21 8 12 8 22 0 35 -10 16 -40 17 -350 20 -256 2 -343 -1 -352 -10z"/>
<path d="M132 508 c-16 -16 -15 -43 2 -57 9 -8 110 -11 351 -9 309 3 339 4
349 21 8 12 8 22 0 35 -10 16 -40 17 -350 20 -256 2 -343 -1 -352 -10z"/>
<path d="M132 348 c-16 -16 -15 -43 2 -57 9 -8 110 -11 351 -9 309 3 339 4
349 21 8 12 8 22 0 35 -10 16 -40 17 -350 20 -256 2 -343 -1 -352 -10z"/>
<path d="M363 184 c-7 -18 92 -124 117 -124 25 0 124 106 117 124 -9 24 -225
24 -234 0z"/>
</g>
</svg>

Before

Width:  |  Height:  |  Size: 1.0 KiB

View File

@@ -0,0 +1,76 @@
<svg xmlns="http://www.w3.org/2000/svg" id="flag-icons-ac" viewBox="0 0 640 480">
<path fill="#006" d="M640 480V0H0v480h640z"/>
<path fill="#8fc5ff" stroke="#fff" stroke-width="4.3" d="M574.5 199.7c0 63.7-10.2 132.5-93 165.3-82.6-32.8-92.7-101.6-93.1-165.3z"/>
<path fill="#366cc9" stroke="#000" stroke-width="4.3" d="M481.4 364.7A134.1 134.1 0 0 0 555 302h-7.8c-2.3-.4-79.4-7.8-88.7-11.7-7.9-2.8-38.4 2.7-52.4 7.8a133 133 0 0 0 75.4 66.5z"/>
<path fill="#5d3100" stroke="#000" stroke-width=".4" d="M423.6 325.6h4.7c1.1 0 1.1 0 1.5-1.2.4-1.2 1.6-.8 2.4-.4.7.4 2.3 0 3-.8.9-.8.9-.8 1.7 0 .7.8 1.1.4 2 0 .3 0 1.9-.8 2.3-2 .3-1.1 1.5-1.5 2-.7.3.8 1 .8 1.9.8.7 0 .7.3.7 1.5 0 .8 0 1.2 2-.4 1.6 1.6 2 .8 2-.8 0-1.5 0-7.8-.8-8.2-.8-.4-1.2-3.1-1.6-5 0-4 0-4-3.9-6 0-1-.8-1.5-4-1.5.5-.4 0-1.5-.7-2-.8-.3-.8-.7 0-2.3.8 0 2.4 0 2.7-1.2.8-.7 3.2-.7 4.7 0 1.6.8 3.2.8 5.9 0l4.7-2.3c2-1.2 2.3-1.6 2.3-3.1 0-4-1.1-7.8-2-9.8-1-2-1-4-2.7-7.4-1.5-3.2-1.5-4-3-5.9-.9-.8-1.3-1.2-1.3-2.3a5.9 5.9 0 0 0-2-4c-3-2.7-3.8-11.7-5.4-18.3-.8-4 0-13-1.5-14.5-2.8-2-4-1.6-6-2.3-1.5-2-1.9-5.5-3.4-9-2 .4-3.2 2.3-4.3 3-1.2.9-1.6.9-1.6 2.8 0 1.6-1.2 4-2.7 7-1.6 3.2-5.1 2-7.9 6.3-5.4-6.6-5.4-8.6-5.8-10.5 0-2-1.2-2.4-4.3-5.1v-6c-2.8-2-4.3-1.5-5.5 0-1.2 1.2-2 3.1-3.9 4-.8 1.5-4 4.6-6.3 9 2.4 35.1 10.2 70.3 34 98.5z"/>
<path fill="#ff0" stroke="#fff" stroke-width="4.3" d="M574.5 199.7c0-24.3-1.2-47.8-.8-68a248.7 248.7 0 0 0-92.3-16.9c-20.7 0-61.4 3.1-92.2 16.8.7 20.3-.8 43.8-.8 68z"/>
<path fill="#cf6200" d="M393.5 227.4c1 1.6 2.9 4.3 3 6 .8-1.6 1.4-2.2 1.5-3.1 0-1 1.3-2.7.8-3.7-.4-1-.7-1.7.4-1s.9 2 .7 3.8c-.7 5-2.7 6-3 9.3 2.9 7 .7 9.6 4 16.6.5.2 1.8-.3 2.2-.2 1.8-1.2 3-.9 5.5-.3 2.4.5 3.7 2.2 3.7 3.8 0 1.6 0 1.9.6 2.8.5.8 1.4 2.3 1.3 3.4-.3 1 .1 1.6.5 2 .3.5-.2 1.8-.4 2.4-.3.6-.2 1.7 1 3.2 1.2 1.5 4 7.9 4 11.6 0 3.9.3 5.6 1.8 6.3 1.5.7 2 1.3 1.8 2.9-.2 1.5.7 10 .9 11.4.1 1.3.7 1 1.4 1.7.6.7 1 1.5 3 1.5 2.1 0 4-.2 5.2 0 2 2.5 3 6 3.5 8.1.5 2.2.4 5 1 5 .8 0 1.5 0 1.3-2.5-.2-2.6-.4-3-1.3-4.4-1-1.3-1.5-2-1-2.7.5-.8.6-2 .5-3.1-.2-1-.6-2.6 1.2-.6l2.7 3.3c.5.6.7 2 .6 3.3-.1 1.2 0 1.7.9 1 .7-.6 1.5.5 1 1.8-.3 1.3.3 2.1 1.5 2.6 1.2.4 1.7.7 2 1.6.3.8 1.3 1.3 1.3-.6a27 27 0 0 0-1.2-6.9c-.5-1.2-.9-3.8-1-5.4-.2-1.5-.4-1.9-1.1-2.1-.7-.3-1.4-1-1.5-1.6 0-.7-.7-1-1.1-1-.5 0-.9-.3-1.2-.8-.2-.6-.5-.6-1-.6-.5-.1-1.3.2-1.6-.6-.2-.8-.6-2-1.1-2.6-.5-.6-.9-.9-1-3.2 0-2.3 0-2.6-.8-3.4-.8-.8-2-3-2.5-3.8-.4-1-1-1.9-1 0 0 2 0 3 1.3 3.7 1.2.7 1.5.7 1 1.8-.6 1 0 1.7.2 2.4.3.7.6 1.4 0 2-.6.8-1.2.6-1.1-.5a6.4 6.4 0 0 0-.9-3.3c-.4-1-.9-1.6-1.5-1-.6.4-1.1-.2-.7-.6.5-.4.3-.7 0-1-.2-.2-.4-.6.1-1.2s.5-.9.2-2.3-2.5-8.6-3.5-10.2c-1-1.7-.9-2.8.3-1.3 1.3 1.6 2.5 3 2.7 4.4 0 1.4.3 2.2.7 2.6.5.5.7.4 1-.8 0-1.1 1-.7-.4-2.8-1.5-2.1-4.1-5.7-5.2-12.2-1-6.4-1.4-10.5-2.4-12.2-1-1.8-1.3-2.2-1.4-3.8-.1-1.6 0-3.3-.7-4.5-.7-1.2-1.2-1.4-1.3.4-.1 1.8 0 6 .6 6.6.6.7.2 2.6 0 3.5-.2 1-1.7 2.1 1.7 4.1 1.3.9 1 2 1 2.6-.3.8-.5.7-1.2-.4s-1.4-2.1-2.1-2.6c-.7-.5-.9-1-.7-2.5.2-1.5.3-2.5 0-3-.4-.4-.6-.1-.9.8-.2.8-.3 3-.9 3.6-.5.6-.5.2-.8-1.1-.4-1.3.1-3.4.8-5.7.7-2.2 1.2-4.8.6-7.8s-.4-4-2.6-6.5c-2.4-2.6-5.1-5-6.1-8.1-1.2-3.2-1.4-6-2.7-7.4a17 17 0 0 0-4-3.7v-4.7c0-1.2-.5-1.8-1.8-1.6-1.3.2-2.2 1.3-3 2.8-.8 1.6-1.4.9-2.6 3.5-1.2 2.6-2.6 4-2.6 6.8z"/>
<path fill="#cf6200" d="M400.8 257.1c1 .6 1.7.9 3 .3 1.1-.6 2.5-2.4 4.3-.6a11 11 0 0 1 2.4 6.7c0 2.3 0 6.5 2.6 8.8 2.6 2.3 3.9 4.8 4 7.8a53.2 53.2 0 0 0 1.4 9c.4 1.2 1 2.6 1.9 3.5.7.8 1.4 3.1 1.5 5.5.1 2.5-.3 4.1 0 5.4.4 1.2 0 2.2-.8 1.7-1-.5-1.2-1-1.8-2-.6-1-1-.9-.5.7s2 3 3.3 3c1.3 0 1.7.1 2.6 1 .8.8.9 1.2 2.3 1.2s1.6 0 3 .4c1.3.3 1.3.2 2 0 .7-.3 1.4.4 1.9 1.7.4 1.3 1.7 5 1.7 6s0 2 .7 3c.7 1.1.5 2-.3 1.5-.7-.6-.8-.5-1.3-.3-.6.2-1-.2-1.9-.8-.8-.4-.3-.3-1.1-1.5-.8-1.3-1.3-1.7-1.3-.7s-.2 2-.8 1.4c-.6-.5-.9-.5-1.4 0-.5.6-.7 1-1.3 0-.6-1-1.3-1-2-1.3-.5-.1-.5-.1-.8-1-.3-1-1.3-1.2-2-1.2-.9 0-1.3-.4-1.4-1 0-.6-.6-1-1-1.3-.5-.3-.2-1-.3-1.7 0-.7-.7-.5-1.1-.6-.5-.2-.7-.1-.7-1.2 0-1-.5-1.3-.7-2-.4-.8 0-1.5.2-2.2.1-1 0-1.4-.6-2-.6-.8 0-1.5-1.7-3-1.7-1.3-2.5-.1-3-3.4a43.7 43.7 0 0 0-2.4-11.4c-1-1-1.5-2-2.5-2.3-1-.3-1.4 0-1.5-2-.1-2-.7-4.4-2-5.6l-2.3-2.2c-.6-.4-.9-1.4 0-3 .9-1.8.5-4.2.4-5.3-.1-1-.4-2.6-.2-3.8.2-1.2 0-2.7-.2-3.5-.3-.7-.7-1-.2-1.7zm24.5-28.8a22.1 22.1 0 0 1-4.7 4.6c-1.9 1.4-4.3 2.4-3 4.7 1.4 2.3 2.5 2.6 2.7 4.3.3 1.8.8 3.3 2 3.7 1.5.4 2 .2 2 3 0 2.7 0 4 1.2 5s1 2.2 1.6 4.7c.6 2.6.6 8.2 2.2 12 1.5 3.7 5.3 11 4.8 12.4-.4 1.5-.8 2.6.7 4.4 1.7 1.7 2.7 4.3 3 5.8 0 1.5.3 2 2 1.5a6 6 0 0 0 2.9-1.7c.5-.7 1.6-.6 3.1.2 1.5.9 3.8 1.6 5.2.9 1.3-.9 2-2.1 3.2-2.1 1.9-1.4 2.6-4.2 3-5 .4-.8.1-.8-.7-1.6-.8-.8-.4-2.2-.5-3.5-.2-1.4-.7-3.5-2.3-6.5-1.6-3-2.7-6.6-3.7-7.5-1-1-1.6-3.3-1.7-4.4-.1-1-1.4-2-2.2-2.8-.9-.9-1.6-2-2.6-6.8-1-4.7-1.6-8-1.6-9 0-.8-.2-.8-1-1.2-.8-.3-1.2-1.6-.8-2.2.1-.7-.4-1.4-.7-2.2-.2-.8 0-2.3.6-3.2.5-.8.4-3-.1-5-.5-1.8-1.1-3.4-3.3-3.8-2.1-.2-2.6-.8-3.3-2.6-1-1.7-1.8-4.8-2-5.5-.2-.7-.7-.8-2.3.6-1.6 1.3-2.2 1.7-2.2 4.3 0 1.7.4 2.2.9 3.1.5 1 .7 1.3 1 3.8.4 2.5 2.7 6.6-.2 9-3 2.2-2.6 2.8-2.5 4.4.2 1.7-.8 2.7-1.3.5-.6-2.4 0-3.7 1.6-4.8 1.6-1 3.1-2.5 2-4a19 19 0 0 1-1.7-6.6c-.1-1.6-.3-2.2-1.3-.9z"/>
<path fill="#00b800" d="m401.2 262.8.3 3.3c0 1.1.4 3.5-.5 5.2-.8 1.7-.6 2.6 0 3.1h.1c1.7-.5 2-2.3 1.5-3.2a3.2 3.2 0 0 1 .2-3c.5-1 .5-1.5 0-2.2-.5-.7-.5-.7 0-2.6.6-1.7-.7-1.7-1.6-.6zm17.4 26.3c-.3-1.2-1.5-6-1.5-9-.1-3-1.5-5.5-4-7.8-2-1.8-2.4-4.7-2.6-7-1.5-.9-2-.5-1.9 1.2 0 1.8 2 2.6 1.7 5.3-.3 2.6-.3 2 1 3.3 1.1 1.2 1.7 2.6 1 3-.7.5-.7 1.5.2 1.8 1 .4 1 1.4.9 2.4-.1.9.9 1.1 1.3 1.7.6.7.6 2.4 0 3.3-.4 1-.5 2.5.4 1.7 1-.9 1.4 0 2.1 1.2.6 1 1.2.7 2 .5a8.5 8.5 0 0 1-.7-1.6zm13 23.6c-.4 1.2-1.1.9-1.7.3-.6-.6-1.3-.6-1-1.8.2-1.1 0-1.3-.7-1.9l-.3-.3h-.8c-1.5 0-1.6-.3-2.5-1.2a6.8 6.8 0 0 0-.5-.4v.8c0 1.1 0 .8-1 1.2-1 .3-1-1.1-1.2-2a3.4 3.4 0 0 0-.1-.6 4 4 0 0 1-3-2.9c-.5-1.6 0-1.7.6-.7s.7 1.3 1.6 2c.8.5 1.2-.5.8-1.7a5.2 5.2 0 0 1 0-1.3 2 2 0 0 0-.8-1c-1.8-.7-1.2-.8-1.2-2.2.2-1.3-.1-1.3-1.2-.6-1 .7-1 0-1-2.2 0-2-1.4-2-1.7-.6-.3 1.5-.9.5-1.4-1.5-.5-2-1.5-2.6-1.5-.6 0 1.7-.6 2-1.6 1.2l.4 3.1c.5 3.3 1.3 2 3 3.5 1.6 1.4 1.1 2.2 1.7 2.9.6.7.7 1.2.6 2-.3.8-.6 1.5-.3 2.2.3.8.8 1 .8 2.1 0 1 .2.9.7 1.2h.8l.7-1c1.3-1.2 3 0 3.7 1.7.6 1.5 1.3 1.9 2.3.6 1-1.2.6-1 1.6.1 1 1.2 1.4 1 1.4 1s1-.4 1.8.2c.7.6 1 .5 2.4-1.4 1.3-2-.6-1.4-1.2-.2zm3.8-55.8c.4-3 .1-5.9 1.3-7 1.3-1 2.7-3.3 2.7 1.4-.2 4.6-.4 4.3-1.3 5.4-1 1.1-1.8 1.4-1 3.1 1.1 1.7 1.2 2 1.1 4.6-.1 2.7-.1 3.9.9 5.2 1.1 1.4 1.4 1.4 1.7 3a8.4 8.4 0 0 0 2.4 4.5c1.2 1.2 2.6 4.2 2.7 6.4.2 2.2 2 2.7 3.8 4.3 1.8 1.5-.4 2.5-1.7 1.8-1.4-.6-.9 0-1.7 1-.8 1-1 1.1-1.7-.6-.7-1.6-3-2.7-4.1-3.1-1.1-.4-2-2.2-3-4a5.2 5.2 0 0 0-3.9-2.6c.4 1.1.6 2 .5 2.4-.4 1.5-.8 2.6.7 4.4 1.7 1.7 2.7 4.3 3 5.8 0 1.5.3 2 2 1.5a7.2 7.2 0 0 0 2.9-1.7c.5-.7 1.6-.7 3.1.2 1.5.8 3.8 1.6 5.2.8 1.3-.9 2-2 3.2-2 1.9-1.4 2.6-4.3 3-5 .4-1 .1-1-.7-1.7-.8-.8-.4-2.2-.6-3.5 0-1.4-.6-3.4-2.2-6.4-1.7-3-2.7-6.6-3.7-7.5-1-1-1.7-3.3-1.7-4.4-.2-1-1.4-2-2.2-2.9-.9-.8-1.7-2-2.6-6.7-.7-3.7-1.4-6.6-1.5-8-1 1.5-1.7 2-2 .8-.5-1.2-.9-1.8-1.5-1-.5.8-.7-.8-.7-1.5s0-.7-.9-.7c-.8 0 0-1-.3-3.2-.3-2-.7-2.2-.9.2-.3 2.4-1.7 4-1.1 4.4.5.6.2 1.7-.3 3.3a5.1 5.1 0 0 0 0 3.6c.4 1-.2 3.2-.4 4.9-.3 1.7 1.1 3.5 1.5.6zm-24.8-24.2c-1 0-1.7 1-1.1 4 .4 2-1 1.6-1.6.6-.5-1-1-3-2-4.7-1.1-1.7-.6 1.1-.7 2.8-.2 1.7.9 1.7 1.8 3 1 1.4.2 1.9-.8 1.9s-.7 2.2-.4 3.6c.3 1.5-.3 1.8-1 .6-1-1.3-.3-3-.2-5.4.2-2.3.3-1.8-1.2-2.3-1.5-.6-1.3-.9-.6-2.2.5-1.4 1-2 .3-2.7-.6-.7-.5-1.1.6-1.2 1-.2.6-1 1.6-1.2 1-.3 1.4 0 1.5-1.7.1-1.5.6-2.3 1.7-1.9.7 2.3 1.5 5.8 2.1 6.8zm13.7 16c0 2.8 0 4 1.2 5s1 2.2 1.6 4.7c.6 2.6.6 8.2 2.2 12l1.8 4a7.7 7.7 0 0 0 2-2.6c.3-.8-.9-2.8-1.8-4.3-1-1.8.1-2.3 1-4.4 1-1.9 0-2-1.6-2.6-1.4-.5-1.4-2-2.2-4.1-.8-2.2-.7-3.1-.2-4.4.5-1.2.2-2.1-.9-2.4-1.1-.3-.8-1-.4-2.4.4-1.3.7-1.6-1-1.3-1.2.4-1.5.7-1.9 1z"/>
<path fill="#5d3100" d="M439.9 254.3c-.2 1.6-.2 2.5-.6 3-.4.5-.1 1.3.3 2.2.5.8.6 1.8.3 3.4-.4 1.5.2 2.6 1 3 .8.4 1.2 0 1 2a5.8 5.8 0 0 0 1.7 4.7c1 .8 1.7 2.1 1.5 3 0 .8.7 1.5 1.7 2 1 .4.8.5.8 1s.4.6 1.4.9c1 .3 2 .9 3.2 2.4 1.2 1.6 3 2.3 2.7.7-.3-1.5 0-2.8-1.6-3.5-1.7-.8-2.9-4.7-3.5-7.4a17 17 0 0 0-4-7.1c-.3-2 0-2.9-1.2-3.8a4 4 0 0 1-1.7-3.2c0-.8-.6-2-1.2-2.4-.5-.3-.8-.9-.8-1.8 0-.8-.8-.7-1 1z"/>
<path fill="#00d860" d="M432.7 327a39.2 39.2 0 0 0 9.7-2.8c1.7 1.1 4.5 2.6 5.7 2.6-2.3.5-3.9.3-4.4-.2.3.7 1 1.9 1.6 2-2.3 0-4.8-.6-5.6-1.4-2 .8-5.2 1-7-.2zm4.3 3c.9.3 5.2 1 5.8 1-1.4 1.2-.2 2.4 2.1 2.2-1 .2-2.4.6-1.5.8a24.4 24.4 0 0 0 8.9-1.8c-2 2.5-11.4 4.8-15.3-2.2zm4 6.1a9 9 0 0 1 5.3.3c-1.4.6-4.5.6-5.4-.2z"/>
<path d="M445.3 336.1c2-.3 8 1 10-.2-.7 1.9-4.3 2.2-5.7 1.7-1.3-.3-2.5-.8-3.4-.8.6-.3-.2-.3-1-.7z"/>
<path fill="#00d860" d="M447.4 339a30.5 30.5 0 0 0 9-1.1c1.7.6 5.4 1.6 6.2 1.5-1.7 1-5 .4-6 0a10.9 10.9 0 0 1-9.2-.4z"/>
<path fill="#00d860" d="M450 339.9c2.3.5 4.3.2 6.5-.5.7.2 2.3.6 3.9.6 1 .5 2.3 1.3 3.7 1.5a16.6 16.6 0 0 1-7.5-.7 19.2 19.2 0 0 0-8 1.5 3 3 0 0 1 1.5-2.3z"/>
<path d="M447.4 328.6c1.7.5 8.2.2 11.3-1.3 1.4-.7 2.2.4.7.8-5.2 2-9.5 2.6-12.5 1-1.2-.6-1.4-1.2.5-.6z"/>
<path fill="#00d860" d="M478.6 319.8c-7.9 3.7-13 4.8-23.9 1.4-1-.2-1.7 0-.6.7a40 40 0 0 0 8.5 2.6c1.4.1.9.7 0 1-.8.2-1 .8.1.4 1.1-.5 7.8-.7 10.5.7 1.1.7 1.4.5 1.3 0-.1-.4.5-.7 1.4-.8.8-.1 1.4-.4.7-.6-.7-.3-.8-.5-.3-.7.5-.3.6-.6-.2-.7-.7-.2-1.3-.4-.6-.7a9 9 0 0 1 2.6-.7c.2-.5-.1-2 .5-2.6z"/>
<path d="M465.6 320.7a26 26 0 0 0 17-6c1.6 1 3.7 2 4.9 2.2 1.1.2 2 1.2.3 1.2s-4-.7-5.2-1.2a29.5 29.5 0 0 1-17 4.3c-1.1 0-1.4-.5 0-.4z"/>
<path fill="#00d860" d="M452.3 296.3c1.6 1.1 4.3 2.9 7.8 2.6a17 17 0 0 0 5.7 3c-2.4.8-5 1.7-5.6 2.4-1-1-2.5-.8-2.8-1.4-1 1-.9 1.3-.2 1.8a22 22 0 0 0 7 .9c1.2-.4 1.7.7.6 1-2.7 1-8 0-9.8-2.9-2-2.9-3.5-4-8.5-1.3-.5-1.5-.5-1.7-1.5-1.7s-2.8-1.3-1.4-1.3 5.4-.6 8.7-3z"/>
<path fill="#00d860" d="M453.6 303c-1 .1-3.3 1.4-4.1 1.5-.9.2-2.4 1.4-.9 1.4 1.7 0 3.7-1.7 4.8-1.7 1.1 0 1.2-1.5.2-1.3zm5 5c-.7.2-3.3.8-4 .8-.7 0-1.5 0-1.4.6.1.5.3.9-.9.7-1-.2-1.9.3-2.1.6-.3.3-.5.6.6.7 1 0 1.6.3 2.9-.4 1.2-.6 2.3-1.3 3.6-1.4 1.3 0 2.6-1.8 1.2-1.5z"/>
<path d="M454.9 311.1c1.1.9 6.6 2.6 8.5 2.6 2-.1 1.7.7.2 1a12.2 12.2 0 0 1-9.6-2.7c-1.2-1 0-1.4.8-.9z"/>
<path fill="#00d860" d="M480.8 314a21 21 0 0 1-10.2.3c-1.7-.6-3.3-.6-2 .6 1 1.1 4.8 1.8 7 1.3-7.6 1.7-9.6 1.6-11.4 1.3a38 38 0 0 0-7-.2 6 6 0 0 1-3.3-.4c-.7-.5-.9-1.1 1.1-.9 2 .1 2.3-.2.6-.5-1.8-.3-4.1.4-1.8 2 2.4 1.4 7.4-.2 10.7.8a18.6 18.6 0 0 0 16.7-3.8c.3-.2.9-1-.4-.6zm-20.6-6.3c.2.6.2 1 0 1.4-.2.4-.1.9.5.4s1-1.2 1.8-.8c.7.3 2.3.3 3 .2.8 0 1-.3 0-.7a7.4 7.4 0 0 0-2.9-.6c-.6.1-1.4 0-1.9-.3s-.6 0-.5.4z"/>
<path fill="#00d860" d="M471 309.7c-.8 0-2.4-.6-3.1-1-.8-.3-2-.3-1.2 1 .9 1.2 4.6 1.7 6 1.2 1.3-.6.8-1.2 2-.4 1.4.8 2.7 1.3 3.7 1.3s1.3 0 .3-.6-1.6-.7-1.8-1.2c-.2-.5-.2-.9.9-.5 1 .3 2 .8 2.8.4.8-.4 2.2-1.3 3.5-1.3l.2-.8c-1.8 0-3 .5-3.5.6-.4.2-1.4.4-2.4.2s-2.2-.3-2.5-.5c-.4-.3-.3-.5.5-.6.8-.2 1-.7 0-.6-1 .2-4.2.2-5.8-.3-1.5-.5-2.2-.6-2.8-.3-.7.2-.6 1 .3 1 1 0 3.2.3 4 1 .6.7.6.7-.2.4-.9-.4-2.5-.2-.9 1z"/>
<path fill="#00d860" d="m484.3 307.8-.3.8c1.9 0 6.4.4 8 1.3 1.4-1.1 1.1-1.5 2-1.2 1 .3 2.4.5 3 .3a2 2 0 0 1 1.5-.2c.6 0 2-.2 2.7-.6.8-.5 2.4-1 3.3-1 .8 0 2-.3.3-.6-1.6-.3-4.2.3-5 .6-1 .3-3.5.5-5 .5s-3.6.7-5.3.3c-1.8-.4-4.2-.2-5.3-.2z"/>
<path d="M507.9 307c-3 2.2-6.8 2.7-11.1 3-1.3 0-.9.4.2.5 4.6.5 9.8-1.2 11.6-3 .5-.6.4-1.4-.7-.6z"/>
<path fill="#00d860" d="M487.1 312.2a47 47 0 0 1 7.3 1.7c1.2-.2 1.5-.4 1.3-.9-.3-.4-.4-.8 1.7-.6h7.5c.8-.3 2.3-1.5 3-1.5-1.8 0-9.5.4-10.4.3-1 0-1.5 0-2.1.4-.6.3-.9.5-1.7.1-1-.3-2.1-.7-3-.1-.6.4-2.3 0-3.6.6z"/>
<path fill="#00d860" d="M504.9 312.4c.7-.3 2.3-1.5 3-1.6 1.4-.1 2.8.4 3.5.6.7.2 1.5 0 1-.6-.4-.5 0-1.6 2-1.3 2.2.2 3.2.6 5.3.4 2.1-.2 2.9 1.3 6.7-.2-.2 1.5.5 1.6 1.2 1.3.7-.2 1.5-.2 2.7.7 1.3 1 8.7 1 10.4.7 1.8-.3 2.6.6 1.3 1s-1.6 1-1.3 1.5c.3.4.6.9-1 .7-1.7-.2-2 .3-2.7.8-.8.6-1 1-3.3.5-2.2-.4-2.7-.1-3.9 0-1.2.2-1.5.3-2.8-.1a9.6 9.6 0 0 0-5.5-.3c-1.6.6-2.7 1-4.2.6-1.5-.3-1.5-.2-.6-1 .8-1 1-1 2.8-1.1 1.8-.2 3-.7 1.9-1.4-1.3-.7-1.6-.6-3.3.1-1.6.8-2.4 1.4-4.3.4-1.8-1-2.6-.9-4-.5-1.2.3-3.2-.5-4.9-1.2zm6.1 3c-2.4.4-3-1.1-5.4-.9-.8.2-2.2 1.2-.3 1 1.9-.1 4 .9 5.8.8 1.8-.1 1-1 0-.9zm-2.6 1.7c1.1-.4 3.6.5 4.8.3 1.1-.2 2 .4.8.9-1.2.4-3.7-.7-5-.4-1.1.4-2.4-.1-.7-.8zm-24.4 6.7c1.7 0 7.8-.3 10.2-5.3.2-.4.3-.6 1 0 .7.5 3.6 2.1 8.8 2.6 1.5 0 3 .8.1.7-3-.2-7.6-1-9.1-2-2.7 4.1-7.4 4.6-11 4.5-2.1 0-1.6-.6 0-.5z"/>
<path fill="#00d860" d="M497.1 316.8c-.8 1.1-3.6 3-4.8 3.2-1.3 0-5.2-.2-6.1-.6-1-.3-2.1-.3-.8.7a11 11 0 0 0 6 1.3c1.6-.3 3.1-.8 4.2 0 1 .6 3 1.8 4.2 1.6 1.2-.3 3.5-.3 4.3 0 .8.4 2.1 1.6.1 1-2-.7-3.6-.2-4.5-.6 1 1.4 3.3 3.7 5.2 3.7.5 0 .9.9 0 1.3.8.4 3 .9 4.3-.3-.4.5-.2.7.3.9.5.2 1.1.6.2.8-1 .2-3 .3-3.6 0 2 1.3 7 3.4 12.3 2.3 1-.1 1.6-.6 0-.5-3.5 0-3.7 0-4.3-.3-.6-.4-.4-.7.6-1a24 24 0 0 1 4.3-.7c1 0 2.1-.3 0-.3-2 0-4.6 0-5.7-.4-1-.3-1.7-.9-.6-1.6 1-.7 2.1-.5 2.6-1-3.3 0-7.4-2-5.2-3.6.5-.3.4-.4-.4-.5a22 22 0 0 1-4.5-1.4c-1-.5-.4-1.1.5-1.3-2 .3-6-.7-8.6-2.6zm29.8 0c-1.8 1.3-5.3 2-6.8 2-1.4 0-1.7.4-.5.5 1.2.1 2.5.4 3 .2s.9-.2 1.6.2a6 6 0 0 0 3.8 0c1.5-.4 3.7-.6 4.7-.6 1 .1 2 .1 0-.4-1.8-.5-5-.2-5.8 0-.7.2-2.8 0-1.7-.2 1.1-.3 2-1 2.6-1.4l-.9-.3zm-1 4a11.8 11.8 0 0 1-6.1 2.3c2 .8 3.8 3 5.2 2.8-.7.5-1.5 1-2.3 1.2a8 8 0 0 0 5.4-1c3 .8 7 .2 8.3-1-2 0-4.3-.6-5.4-1.6 1 0 1.9-.5 2.3-1.1-2.3.4-6-.7-7.3-1.8z"/>
<path fill="#00d860" d="M522.7 327c.8 0 1.7-.6 2.3-1a19.2 19.2 0 0 1-11.1-2.6c-2.2-1.9-2.2-.4-.7.9a11 11 0 0 0 9.6 2.8zm5.4 4.7c-.9.5-5.3.9-6.7.5-1.5-.3-2-.2-1.8.5.3.6.6 1-.6.8a12 12 0 0 0-4 .5c-1 .2-2 1-.2.7 1.9-.2 3.5-.6 5-.3 1.3.3 6.1.4 7 0 1-.4.4-.3 0-.3-.5 0-.7-.3 0-.7.7-.3 1.1-1 1.3-1.7zm-42.3-5.8a62 62 0 0 1-9.6 2.5c-2 .9-3.6 1.4-4.6 1.4.7.6 3.5 1.2 4.5.9-.6.7-2 1.3-2.5 1.7 1.7-.3 3.5.2 4.4.3a12.2 12.2 0 0 1-6.7 1.4c.6.6 1.3 1.3 2.2 1.3a11.3 11.3 0 0 1-5.5.2c.6 1 1 1.6 1.8 1.8-1.7.1-3.7.4-5.4-.6 1.3 1.8 4.2 2.3 8.6 1.8 4.4-.5 8-2.4 9-3.2-1.8.2-4.3.3-5.4 0a32.2 32.2 0 0 0 8.6-3.7 4.9 4.9 0 0 1-2.8-.9 27 27 0 0 0 8-.8 5.8 5.8 0 0 1-3.5-2.3 34.2 34.2 0 0 0 17 .5c.8-.2.8-1.3-.7-1.1-2.8.2-8.3-.6-9.8-1.3a10.1 10.1 0 0 0 4 1.7c-2.5.8-6.2 1.3-11.6-1.7z"/>
<path fill="#00d860" d="M473.6 332.4c.5-.4 2-1 2.5-1.7-1.1.3-3.8-.3-4.5-1 1 0 2.6-.4 4.6-1.3-3.6-.1-6-.1-7.5-.9-1.4-.8-3.7-.4-4.7-.2-1 .1-.6 1.7 3.3 1.3a13.4 13.4 0 0 1-7.6 1c.4 1.4.7 2.7.3 3.5 2.1 1.2 7.7 2.7 10.5 2.5-2.5-.9-3.8-1.9-1.8-2.2 2-.2 3.2-.6 5-1z"/>
<path d="M467.3 339c4.8-.4 11.4-.5 16.6-5 1.3-1 2.2-.6.9.5a28.8 28.8 0 0 1-16 6c-2.7 0-3.9-1.3-1.5-1.6z"/>
<path fill="#00d860" d="M503.7 331a19 19 0 0 1-5.6.8 6 6 0 0 0-3.3.2c-.8.5-.9 1 .2 1l3.3.2a5.4 5.4 0 0 0-1.8 1.5c1.8-.4 4.7.3 5.6.8a2.6 2.6 0 0 1-2-.4c2.7 3 10.9 3 12.2 2.4-.6.5-1.2 1-1.7 1 2.2.5 4.8.4 7.5-1l-4.2-.2a4.9 4.9 0 0 1 2-1.2c-1-.2-4.2-.1-5 .3a3.5 3.5 0 0 1 1.5-1.7c-4 0-8.9 0-10.6-1 2.7.4 5.9-1.3 7.2-1.3-2.2 0-4.6-.5-5.2-1.5zm-10.1 2c-2 .5-5 1.4-5.9 1.8-.8.5-1.6.7.1.7a109.4 109.4 0 0 1 .6-.1c-.7 0-1.5 0-.1-.5 1.3-.4 3-1.3 5.2-1.7zm-4 4.9c.7 0 3.7 0 5-1 1.2.8 3.7 2.2 5.2 2.2 1.6 0 1.4.4 0 .6a10.5 10.5 0 0 1-5.4-1.7c-1.8.7-3.3.1-5-.1zM466 351.6a17 17 0 0 0 10.3 1.1c1.8 1.5 5.3 1.6 7.2 1.2 2-.4 3.7-.6 5.9 0 2 .8 6.4.9 7.7 1.9l-4.1.1c-.6.2-.3.5.8 1a22 22 0 0 0-11.3 3 6.4 6.4 0 0 1 6-3.8c-1.8-.6-7.7-.7-9.7.5a5.8 5.8 0 0 1-1.2-2c-3.1 1.7-9.2-.9-11.7-3zm-8-5.8a14 14 0 0 0 7.3-2.8c.7.6 3.5 1.2 6.5.3-.6.4-.7 1.3-.5 1.7a22.8 22.8 0 0 0-7 1.8c-1.2.6-5 1.1-6.2.4-1.2-.6-1.2-1.2-.2-1.4z"/>
<path fill="#00d860" d="M471.3 345.1a22.8 22.8 0 0 0-7 1.8l.5 1.7a44.4 44.4 0 0 1 15.3-1.6c-1.6.1-4.5 1.8-6.1 1.9 4-.3 7.8.5 8.8.8 1 .2 1.3 1 .5 1.8-.8.9-1.1.7.5.9 1.6 0 5-.3 6.5-1.8-.7-.6-2.2-.3-2.7-.9a7 7 0 0 0 2.7-1.6 25.3 25.3 0 0 1-4.6-.3c-.8-.2-1.5-.5-.4-1.1a6.6 6.6 0 0 0 2-1.5c-2 .5-5.1 1-7.8-1 1 .2 3.3 0 4.1-.3a5.2 5.2 0 0 0-2.2-.8c2-1 6-1.9 11.3.1a27 27 0 0 1 7.1.4c1-.8 2.6-2.8 3.5-3.2-6 .4-16.8-.6-16.5-3.8-2 2.6-6.5 4-8.4 3.6-.2.8.6 2 1.3 2.6-2 .4-5.5.8-7.1.4 1 .9 2.6 1.7 3.6 1.7-2 0-3.2.4-4.9.2z"/>
<path fill="#00d860" d="M483.7 352.3c1.8 0 5-.2 6.6-1.7-.7-.6-2.2-.3-2.7-.9a7 7 0 0 0 2.7-1.6c4.4-.4 8.1-.2 10-.7 1.8-.5 6.5-.3 7.4-.5-4.1.7-4.9 1-5 1.7-.2.7 1.2 1.1 2.2 1.1-1.7 0-4.1 1.9-4.4 2.7-2.4-1.4-3.4.2-3.8.8-1-.4-4.4-.3-6.1 1.2-2.2-.7-3.7-1-6-.7 1.5-.3 1.2-1.3-.8-1.4zm19.5-12c1.4 0 4.4.2 5.5 0a6.5 6.5 0 0 0-1.8 1.3c3.5-.4 8.2-.7 9.6-.4-1.8-.3-3.5.9-4.4 1.4-.8.5-.3.9.9 1 1.2.2 2.7 1 .6.8-2-.2-6.4-.3-7.4-.2-1 .2-1.6-.3 0-.6a10 10 0 0 0 3.1-1c-1.2.3-3.5.3-4.3 0-.8-.3-1.1-.5-.3-.8.9-.3.3-.4-.6-.3-.9 0-3 1-4.3 2.1 1.3-1.4 2.6-2.6 3.4-3.2z"/>
<path d="M487.8 342.7a8.7 8.7 0 0 0 6.8 3c.6 0 2 .9.3 1-4.3.2-6.4-.9-8.3-3.6-.4-.6.3-1.4 1.2-.4zm25.5-35.6c2.2 1 6.7 2 10.2 1.9.7 0 1.8.6.3.7a18.3 18.3 0 0 1-10.8-2c-.9-.5-.6-1 .3-.6z"/>
<path fill="#00d860" d="M515.5 307.1c3.5 0 6.1 0 7 .9 2-.5 5.7-.9 6.4-.7.8.2 1.8-.3-.1-.7-2-.4-6.2-.6-7.6-.3-1.4.2-5.7.4-7 .2.5 0 .9.2 1.3.6zm13.4 1.3c1.6-.8 6.3 0 7.7-.6-1 1.2 3.3 1.3 7 .4-1.4.8-4.5 1-5.8 1.6-1.3.6-2 .1-3-.3a11 11 0 0 0-5.9-1z"/>
<path fill="#00d860" d="M543.6 308.2c-3.7.8-8 .8-7-.4-1.4.6-6-.2-7.7.6 1.8-1 3-.1 4.2-2.2.8.1 2.6.2 3.2-.6 1 .3 3 .7 3.5 1.3.5.6 1.3-.2.7-1 1.7-.6.6.7 4.5-.3.9-.2 2.8-.6 3.5-.6a24 24 0 0 1-5 3.2z"/>
<path fill="#ff0" stroke="#000" stroke-width=".4" d="m471.6 291.1-.7-86.8c0-3.9-2-3-2 0v86zm28.2-91.4 3.1 91.4-.4.8h-2l-1.9-92.2zm26.6 77.4-1.6-74.3c0-2.4-2-2-2 .4l1.6 73.9z"/>
<path fill="#fff" stroke="#000" stroke-width=".4" d="m484.2 214.9-27.4-.4c-1.2 5.5 5.5 5 7.8 4 3.1 1.9 5.5 1.9 7 0 2.4 1.9 5.5 1.5 6.7 0 3.1 2.7 6.6 0 5.9-4zm2 13.3h-27.5c-5 4.7 1.2 7 6.7 3.9.8 1.6 3.9 2.3 6.2 1.2 2.4 1.5 5.5.4 7-1.2 2.8 1.2 6.3 1.6 7.9-4zm-.9 17.6h-26.6c-.3 4.3 5.1 3.9 7 2.7 2 3.2 6.7 2.4 8.3.4 2.7 2 5 1.6 6.2 0 2.8 2.4 5.5-.8 5.1-3.1zM487 263l-30.1-.4c-1.6 5 3.1 5.9 5 4.7.9 2.7 4.8 2 6 0 1.5 1.2 3.5.4 4.2-.8.4 2.7 4 3.1 6.7.8 5.5 3.9 10.5-.8 7.8-4.3zm26.2-7h-24.6c1.1 4.6 3.5 5.8 7.4 3 3.1 3.2 7.8 2 9 .5 5.5 4.3 8.2-.8 8.2-4zm-2.4-17.2-24.2-.8c.4 6.2 6.3 5.8 9.4 3.5 2 2.7 5.9 2 7.8 0 2.7 3.1 7.8 1.2 7-2.7zm3.2-19.2h-26c0 4.3 5.8 6.6 10.1 2.7 1.2 5.1 5.9 3.5 7.9 1.6 3 3.9 9.7-.8 7.8-4zm-1.6-13-23.5.5c0 3.9 5.5 5.5 7.5 2.3 1.2 2 5 1.6 6.2 0 1.6 2.8 4 .8 4.7 0 2.8 2 5.5.8 5.1-2.7zm27 8.7-28.2-.4c0 2.7 2.8 4 4.7 2.7 0 3.2 4 4 6.7 1.6 1.5 2.7 6.6 3.1 8.6 0 3.9 3.5 8.6.8 7.8-4zm-.4 23h-27.4c0 4 4.3 5.1 7 3.2.5 3.1 4 3.5 6 1.6 2.7 2.7 6.6 3 9 0 3 1.1 5.8-1.6 5.4-4.7zm-1.6 20.8h-21.9c0 3.9 4.7 3.9 6.7 2 2.3 2.7 5.5 2.7 7.4.7 2.7 2.4 7.4 1.6 7.8-2.7z"/>
<path stroke="#000" stroke-width=".4" d="M502.5 292c-11.7 0-23.8 0-32-.9-8.2-.7-10.6-2.3-16.4-5.8L432 272c-1.9-.8-3.8.4-1.1 2l21.9 14.4a60 60 0 0 1 13.3 11.7c4.7 5.1 7.8 5.1 10.1 4.3 2.4-.7 5.5-2 9-1.1 3.2.7 7.8 1.1 10.2.7 2 2 7 1.6 9.8.8 2.7-.8 4.7-.8 6.6-.4h6.7c2 0 7-1.1 10.5-.7 4 .7 7.4 0 9.8 0a19.5 19.6 0 0 1 7.8-.4c2.4-1.6 3.1-3.6 4-5.5 2.3-.4 3-.8 3.4-2l2.4-6.2h.8v-2.4l-1.6-2.3.8-4 2-.7-.8-4-34.4.9a7.8 7.8 0 0 0-2.4 4.3l-10.2 1.5c-1.1.4-2.3.4-3.5 2z"/>
<path stroke="#000" stroke-width=".4" d="m543.6 276.7 5-19.2c.8-2-1.1-2.3-1.9 0l-5 19.2z"/>
<path fill="#fff" stroke="#000" stroke-width=".4" d="M563.5 255.2c-4.3 2-6.6 3.1-8.6 2.3-2-.8-4.3-1.2-5.8-.4a2 2 0 0 1 0 .4 1928.6 1928.8 0 0 1-4.3 14.9c3 1.2 8.6 1.2 9.7 0 1.6-1.6 5.1-1.2 7-1.2 1.2-1.6 1.6-3.5 1.2-4.3-.4-.8 0-2.7 0-4 0-1 1.6-5.4.8-7.7z"/>
<path fill="none" stroke="#000" stroke-width=".4" d="M465 218.4a208 208 0 0 1-31.3 54.8m7.8 4.7a213 213.1 0 0 0 44.6-49.3m-27.4 16.8c-1.1 10.6-4.3 29.3-5.8 39.1m10.1-15.6c-3.9 3.9-9 10.1-13.2 13.6m49.6-34.8c-3.1 3.2-6.6 7-10.2 7.9m12.2-7a27.4 27.4 0 0 0 10.5 7.4m-12.5-24.3a33.2 33.2 0 0 1-11.7 6.7M501 232c2.3 2.3 5 5 8.6 6.7m-21.1-19.2a27.4 27.4 0 0 0 10.5-5.9m1.2 0a30 30 0 0 0 10.5 6.3m-21.5-13a15.6 15.6 0 0 0 9.4-5.4m1.2-.8c2.7 2.4 7.8 5.5 10.6 5.9m12.5 3.1c-1.6 2-5.9 5.1-8.6 5.1m10.5-5c1.2 1.9 4.3 5 6.3 5m-18.8 23.5a28.1 28.2 0 0 0 11-7.5m2 .4a21.9 21.9 0 0 0 7.3 7m-16 20.4c1.6 0 5.9-2.4 7-5m2.4-1.3a27.4 27.4 0 0 0 7.8 6.7m-73.1 3.5c5-1.6 14.9-7.8 20-13.7m-9.4 7.4c3.9 2.8 9 6 12.5 6.7m-24.3-17.6a31.3 31.3 0 0 0 9.4-5.9m2-.4c1.1 1.6 9.3 6.7 12.9 6.7m-14.9-23a38.3 38.3 0 0 1-9.8 5.4m11.8-5.5c2.7 2 8.6 5.5 12 5.5M469 207c-2.3 2.3-6.2 6.2-9.4 7.4m11.4-7c1.5 2.7 6.2 6.6 9.3 7m31.3 10.2c7.5 12.9 20.7 29 34 37.5m-55-52c10.9 15.6 32 49.7 52.3 62.2m4-13.3a72 72 0 0 1-19.2 18m17.5-13.7c-6.6-11-10.1-24.6-15.6-43m-54.7 48.5 7.8 23.4m-9.4-23.8 7.4 23.4m-9.3-24.6 7 24.2m-7.8-23.8 5.4 23.8m0-.7h6.7m-.8-2.4h-6.2m5.4-2h-6.2m5.4-1.9H474m5-2.3h-5m-.4-2h5m-5.4-1.6h5m-5.4-2h4.7m-5-1.5h4.2m-4.7-2h4m-4.4-1.5h4m-4.3-1.2h3.9m-4-1.5h3.6m-10.2 0-4.7 19.5m5.9-19.5-4 20.3M467 268l-3.2 21.5m4.7-22-2.3 22.8m2.7-1.6h-7.8m7.8-2h-9m9-2.3h-8.2m7.8-2h-7.4m7.8-2h-7.4m7.4-2.3h-6.6m6.6-2h-6.6m6.2-1.9h-5.8m5.8-2h-5m5-1.9h-4.7m4.7-1.2h-4.3m4 21.6v-23.1m25.3-7.8L478 291.5m16.8-32-13.3 32.4m14.1-32.8L485 291.9m11.8-32-8.6 32m.4-1.1h-9.8m10.5-3.2H480m9.7-2.3h-7.8m9.4-2.4h-7.8m8.2-2.3h-7.4m8.2-2.4h-7m7.7-2.7H487m6.6-2h-5.8m6.6-2.3h-5.5m6-1.6h-5.2m5.5-1.5h-5.5m5.1-1.6h-3.9m4-1.2h-3.6m3.9-1.5H492m3.9-1.6h-3.1m3-1.2h-2.7m13.3-.4 6.7 22m-5.5-21.6 8.2 21.2m-7-21.2 9.8 20.8m2.3-2-11-19.2m11 19.6h-7.8m7-3.1h-7.8m6.7-2.4h-7.5m5.9-2.7h-6.7m5.1-2.4H510m4.3-2.7h-5.1m3.9-2.7h-4.7m3.1-2.4h-3.9m12.5.4-7 20.3m9-21-6.3 20.7m2.8-.4 4.7-19.6m1.1.8-3.9 18.4m-6.6-1.2h6.6m-5.8-2.3h6.6m-5.9-2.8h6.3m-5-2.3h5.8m-5.1-2.8h5.5m-4.7-2.3h5m-3.9-2.8h4.7m-3.9-2.3h4m3.5.4 3 14m-1.9-14.8 4.3 14.5m-2.7-14.5 4.7 14.5m-2.8-13.7 5.1 13.7m-.4-1.2h-6.6m5.9-2h-6.3m5.5-1.9h-5.9m5-2.4h-5.8m4.7-2H528m4.7-1.9h-5m4.3-2h-4.7"/>
<path fill="#00b800" d="M467.6 299.2c3.1-2 8.5-1.7 11.3.4 3.3-1.8 9.2-1.3 11.9 1.2 4.2-3 7.7-3.4 11.7-.6a10.5 10.5 0 0 1 11.9.2c3.7-1.7 7.7-3.1 11.2.6a9.3 9.3 0 0 0-11.3.7c-3.5-3.5-9.7-2.2-11.8.3a7.7 7.7 0 0 0-11.5.2c-3.7-3-9.1-3.2-12-1a13 13 0 0 0-11.4-2z"/>
<path fill="#cf6200" d="M523.1 294.8c-16.1 2.8-51.4 1-59-1.1-2.7-.6-2-1.6.3-1 8.9 2 27.9 2 38.3 1.4l6.2-8.5c1-1.3 1.4-1.4 3.5-1.7l8.7-1.5v1.2c-.2.3-.4.6-.7.7 0 2 .4 7.1.9 9l1.1-.3c.7-.2 1.4 1.7.7 1.8z"/>
<path fill="#cf6200" d="M549.6 295.6h2.2c.6 0 1.6-.5 1.9-1.5l2.2-6.3-1.7-2.5.9-5.3 2-.9c.2-.3 0-1.6-.4-2l-31.6 1c-1 0-1.4 0-1.7 1.3a23.5 23.5 0 0 0 8 23.2c.5.4 1.2 0 .3-.7a26 26 0 0 1-4.3-5.7h5.2c.4 1.7 1.7 5.2 2 5.9.2.7.8.7.4-.3-.6-2-1-4.5-1.3-5.7h5.3l.4 5.2c0 .7.6.7.6-.1V296l4.8-.2-.4 5.2c-.1.9.3 1.2.5 0l.7-5.2 3.3-.2c0 1.2-1.1 4.4-1.4 5.2-.3 1 .2 1 .5.1a30.5 30.5 0 0 0 1.6-5.2z"/>
<path d="M526.5 294.8c-.5-1.1-2.3-5.1-2.4-8h7c.2 2.1.8 6.8 1.2 7.9zm5.8-8.2c.1 1.8 1 7.5 1.2 8h5.6l-.4-8.1zm-7.9-7a33.1 33.1 0 0 0-.2 6l6.7-.3-.6-5.9zm7.3-.2.4 6 6.6-.2-.3-6zm8-.3.2 6 5.7-.1c0-1.3.3-5.2.2-6.1zm7.2-.2-.2 6 6.2-.2c.3-1.3.9-4.7.9-6zm6.3 7.2-6.6.2-.6 8 6.3-.2a53.7 53.7 0 0 0 2.3-6c-.5-1-.9-1.3-1.4-2zm-13.3.4.2 8 4.8-.2.6-8zm-27-1.6-2.6.4a196 196 0 0 1-6.3 8.8l9.3-.2-.3-9zm1.2-.3.4 9.2 5.6-.4-1-9.6z"/>
<path stroke="#000" stroke-width=".4" d="M486.9 263h-30.1v-.8l30 .4zm23.5-24.2c.3 0 .3 0 0 0l-23.5-.4c-.4 0-.4 0 0 0h23.5zm-25 6.6c.3 0 .3.4 0 .4h-26.7c-.3 0 0-.4 0-.4zm.7-17.2c.4 0 .4.4 0 .4h-27.7c-.4 0-.4-.4 0-.4zm-2-13.7c.4 0 .4.4 0 .4h-27c-.3 0 0-.8 0-.8l27.4.4z"/>
<path fill="#fff" stroke="#000" stroke-width=".4" d="m512.3 206.7-23.5.4z"/>
<path stroke="#000" stroke-width=".4" d="M513.5 220c.4 0 .4 0 0 0H488c-.4 0-.4 0 0 0zm25.4 18v.4h-27.4c-.8 0-.8 0 0 0H539zm0-23.1c.8 0 .8.4 0 .4H511c-.4 0-.4-.4 0-.4h28.2zM513 255.6c.4 0 .4.4 0 .4h-25v-.4zm24.2 3.5c.4 0 .4 0 0 0h-21.9z"/>
<path fill="#ef072d" stroke="#000" stroke-width=".4" d="M557.3 263a11.7 11.7 0 0 0 0-5.5 4.3 4.3 0 0 1-2.4 0 11.7 11.7 0 0 0-1.2-.8 25 25 0 0 1-1.5 7.5c-1.2 0-4 0-5.1-.8l-1.2 3.9a13.7 13.7 0 0 0 5.9 0c0 2.3-.4 4.3-1.6 5.9 2 0 4 0 4.3-1.2 1.2-1.6 1.2-4 1.6-5.1l2-.4 1.9-.8 2.7-.4V263l.8-1.6-6.2 2z"/>
<path stroke="#000" stroke-width=".4" d="M460.3 130.8c-3.1 0-10.2 0-11.7.8-1.2.8-1.6 1.2.8 1.6 2.3.4 6.6 2 9 3.1 2.3 1.6 3.9 4 3.9 7.8a23.5 23.5 0 0 0 11.7 24.7c.4.4.8.7.4 2.3l-1.2 4.3c0 .8-.4 1.6.8 1.2a78.2 78.2 0 0 1-4 6.2c-6.2-.7-11.6 0-11.6 7 0 .9 0 1.6.7 0 1.2-1.5 2.4-3 5.1-3.8-1.5 2.7-2.3 5-2 6.6 0 1.2.8 2 1.6 0 .4-1.6 2-3.1 3.2-4.3.7-.4.7-.4.3.8a6 6 0 0 0 1.2 4.3c.8.8 1.2.4.8-.8 0-1.6 0-4.3 2-5 2.3-1.6 4.6-.9 5.4.7 1.2 2 2 0 .8-1.6-1.2-1.5-2.3-3.5-3.9-3.5l4-6.6c0-.8.7-1.2 1.5-.8 0 .4.8.4 1.1-.8l2.8-5.5 2.3-.7 4 5.8v2.4c0 1.5-1.6 5-2 6.2-4.7 0-7 0-8.6 2.8-.8 1.1.4 1.5 1.5 1.1a7.8 7.8 0 0 1 4-1.1c.7 0 1.1.7 0 1.1-2.8 1.2-4.7 3.2-4.7 5.9 0 .8.7 1.2 1.1 0a9 9 0 0 1 5.1-4c0 2 .4 5.2 2 6 1.1.7 1.1 0 .8-1.2-.8-2 0-4 1.1-5.1 2-2.3 6.7.8 7.9 1.6.7.7 1.5 1.1.7-1.2-.4-2.7-4.3-4-7.8-4.7l4.7-16.4c2 1.2 4-2 7-.8a83.4 83.4 0 0 1 14.9 8.6c1.6 1.2 2 .8 2.7 0 .8-.4 2 0 3.2 0 .7.4 1.5.8.4-1.6a28.1 28.2 0 0 0-9.4-10.1c3.1 0 7 0 7-.8s-4.7-2.4-6.6-2.4a12.9 12.9 0 0 0 6.2-3c.8-.9 0-1.3-3.1-1.3-8.2 0-12.5 0-16.8-2.3-7-4-11.4-8.6-14.9-10.2-1.5-1.1-2.7-3.5-3.9-5.4-2-6-2-9-7-11-5.1-2-11.8.4-14.5 3.1z"/>
<path fill="#fff" stroke="#000" stroke-width=".4" d="M460.7 132.4h-6.6s-.8 0 0 0l5.8 1.6c1.2 0 .8 1.1 0 .7-.8-.3-1.5 0-.8.8 4 2.8 4.7 4 4 14.5l1.9 1.6c.8 0 .4.7 0 .3-.4-.3-2 0-.8.8s2 .8.8.8-2.3.8 0 .4c2 0 3.1.8 0 1.2-2.3 0-1.6.8 0 .8 2.7 0 2 .7 1.2.7s-1.2.8.8.8h2.7c.4 0 .8 0 0 .4-.8 0-.8.8.4.8 1.2 0 2 0 .8.4-.4 0-1.2.4 0 .8 2.7 0 3 .7 2.3 1.1-.8.4-1.2.4 0 .4s2.4.4 1.2.8c-.8 0-1.2.8 0 .8s2 .8 1.2 1.2c-.8.4-1.2.8 0 .8 1.1 0 1.5.3.7.7-.7.8-1.1.8-2 0 0-.7-.7-.7-.7 0l-.8-1.1c-.4-1.2-1.2-1.2-1.2 0 0 1.1-.7.4-1.5 0a12.9 12.9 0 0 0 15.6 3c.4 0 .8 0 1.2 1.3l2.3 4.3c.4.7 1.2 0 1.2-.8l2.4-6.7c0-1.1 1.5-2 1.1 1.2 1.2-.8 5.9-1.2 9.8 0a47.7 47.7 0 0 1 10.6 5.9 2.3 2.3 0 0 0 2 .4c1 0 1.5 0-.5-2s-1.1-2.7 0-2c1.2.8 2 .4.8-.7l-3.9-3.5c-.4 0-.4-.8-2.3-.8h-6c-.7 0-1.5 0 .9.8 2.3.7 6.6 3.9 7.8 4.6 1.2.8 1.6 2.4-.4.8a102 102 0 0 0-14-7.8c-10.6 1.2-19.2 2.4-25.5-4.3-3.1-3.5-3.1-11 2-14-.8-.9-.8-1.6-.4-1.6v-2.4c-.8-.4-1.6-1.2-1.6-2-1.2 0-2-1.9-3.9-1.1-2 .8-2.3 0-3.1-.4-.4-.8-.8-.8-2-.8s-2 0-2-.8c0-.7.8-.7 2.4 0 2.7 1.2 5 2 7-.7 1.6-2.4-.7-4.3-3.9-5.1-3.5-.8-5.8 2-7.4 3.1z"/>
<path fill="#fff" stroke="#000" stroke-width=".4" d="M477.9 131.2a11 11 0 0 0-4-2.3c-1 0-1 .8-.7 1.2v2.3c.8.4 1.2 1.2 0 1.2-.8.8 0 3.5 1.2 2.7h.8s0 1.2.7 1.2c.8 0 0 .8 0 1.2h.8c.8 0 .4 1.5-.4 2 1.2 0 1.6 0 1.6.7.4.8 1.6 1.2 1.6 2.3 0 1.2 0 1.2-1.6.8-1.6-.4-1.6 0-2 .8-.3.8-.7 1.2 0 1.2.8 0 1.6.4.4.8-1.1.3-2.3 0-2.7 1.1 0 1.2 0 1.6.8 1.2l2.7-1.6 2 .4c.8.4 0 2-.8 1.2s-1.6 0-2 .4l-2 .8c-.7 0-1.5 0-1 2 0 5.4 4.2 9.3 12 9.3h13c-2.4-1.6-4-2.3-5.2-2.3H492c.4-.4 0-1.2-.4-1.2s-1.2-.8-2 0l-3.9 2c-.8 0-2 0-.8-.8l3.6-1.6c.7 0 .3-.8.3-.8s0-1.2 1.2-.8c2.4 1.6 5.9 3.6 7 3.6 1.2 0 1.6-.8.8-1.2-.7-.4-1.1-1.2-1.1-1.6 0-.4.4-.8 2 0 1.5 1.2 3.8 2 5 2.4 1.2.4 2 .4 0-.8l-9-6.7c-1.2-1.1-1.2 0-.8.8.4.8-1.1 1.2-2 .4-.7-.8-1.1-1.2 0-1.6 1.2-.3.9-.7-.3-2-1.6-1-2-1-1.6 0 .4 1.3.4 2-.8 1.7-1.1-.4-2.3-1.2-1.1-1.6.7-.8 2-1.2 0-2.4-2-1.1-.8 0-1.2.8-.4.8-1.6.8-2 0-.4-.8-1.1-1.1-.7-1.5.3-.4.3-.8 1.1 0 .8.7 1.6 0 .4-1.2-1.2-1.2-1.5-.8-1.2 0 .4.8-.7 1.6-2.3 0-.8-.4-.8-1.2 0-1.6.8 0 .8-.4 0-1.1-2.7-4.7-1.6-8.3-4.7-11.8z"/>
<path fill="#cf6200" d="M478 132c-.2.4-.3.3-.8.7-.5.4-.7 1.5.3 1.4a2 2 0 0 0 1.4-.8 8.7 8.7 0 0 0-.8-1.3zm-3-2.6c-.9.8-1 1.2-.6 1.2.5 0 .3 0 0 .6-.4.5.6.8 1 .3.5-.4.5-.5.7 0 .1.5 1 0 1.3-.3-.7-.7-1.7-1.3-2.5-1.8zm-1.5 4.4c-1 .5-.7 3.2.9 2.4.5-.2.9 0 .9.3v.7a4.7 4.7 0 0 0 1.7-1.2c.9-1.2 0-1-1.4-1s-1.7-.3-.4-1.1c1.2-.8.3-1.2-1.3-1 .2.3.1.6-.4.9zm5.9 6c-.8-.9-.3-1.2.5-1.7a1 1 0 0 0 .4-.3l-.7-2.6c-.3.2-.8 1.1-1 1.5-.2.7-.4 1.1-1 1-.7-.3-1.3.4-1.4 1.1h.5c.2.1.3.6.2 1 1.9 0 2.2 1.1 2.5 2 .4 1 .7.9 1 .3.3-.6-.3-1.5-1-2.3z"/>
<path fill="#ff0" d="M479.9 150.4c-.4.8-.4.7-1.5.7-1 .1-2.4.3-3 .9-.3.3-2.2.5-2.2 1.3 0 .9 0 1.5.8 1.6.8 0 1 .2.7.8-.4.6-.6 1.5.8 1.7 1.4 0 2.5-.3 2.8.4.4 1 0 2.1.3 2.7.2.5 1.2.7 2.7 1.2 1 .2 4.8.5 6 .3 1-.2.6-.8-.5-.8-1.2-.2-2-.4-2.3-1.2-.3-.9-.5-1.3.2-2 .6-.8 1.2-1.3.8-2.5-.3-1.1-1-2.5-2.3-2.9-1.3-.4-.9-2.3-2.3-2.4-.5 0-.8 0-1 .2z"/>
<path fill="#cf6200" d="M473.3 161.4c1.2.2 2.1.5 1.2.8-.9.3-1.5.8-.3.9 1.2 0 2.3.6 1.3.8-1 .3-1 1 .1 1s1.7.4.9 1c-.9.4-1.4.7-2-.1-.5-.9-.8-1-.9-.5-.2.6-.5.2-.9-.7-.3-.8-1.2-1.2-1-.5.3.7-.6.9-1.5.5a11 11 0 0 0 2.9 2.4c1.2-.4 2.6 0 3 0 .6 0 2.1.4 3 .9.9.4 1.5-.4 1.1-1.3-.4-1-.4-.7-.8 0-.6.4-.6-.3-.6-1.4 0-.8-.6-.7-.7-.1-.2.5-.7-.4-.5-.9.3-.5 0-.8-.4-.6-.5.2-.5 0-.6-1-.1-1.1-.5-1-.6-.5-.1.4-.6-.2-1.3-1-.5-.6-1-.2-2.1.1z"/>
<path fill="#ff0" d="M485.6 167.8c-5.5 2.2-9.5 1.2-12.5-.8 1.2-.4 2.6 0 3.1 0s2.1.4 2.9.9c.8.4 1.5-.4 1.1-1.3.7 1 1.3 1.6 2.2 1.5l3.2-.3zM473.8 142c-.4-1.2-.7-1.4-1.3-1.3-.6 0-.9-.1-1.6-.4-.6-.3-1.5 0-1.6 1.3-.2 1.3-1 1.8-2 2.6-1 .7-1.5 1.3-1.5 2.6 0 1.2-.3 1.4-1 2.4l-1.1 1.3 1.2.7c.8.4.5.9-.2.7-.7-.2-1.5.2-.2.4 1.2.3 1.7 1 .6 1-1.3-.3-2.6.8-.3.5 2.3-.2 3.1.9.5.9-2.7 0-1.7.9-.2.9 2.5 0 1.7.7 1 .7-.6 0-.9 1 .8.7l.6-1c.3-.8.5-3.1 1.5-3.8.9-.6 1.4-1.7 1.4-2.3 0-.6 1.5-3.7 2.3-4.4 1-.7 1.4-2.3 1-3.4z"/>
<path fill="#cf6200" d="M471.8 142.2c-.9-.7-1.9-.2-1.9 1 0 1-.6 1.5-1.4 2a3.5 3.5 0 0 0-1.8 2.3c0 1 .2 1.5-.4 2.3-.7.7-.8 1.3-.4 1.8.6.4.6.4.7 1 .3.6 1.4 0 1.4-.7s.3-.7 1-1.1c.8-.4 2-2.4 1.7-2.9-.2-.5-1-1 0-1.7 1-.8 1.8-1 1.8-1.6 0-.8.2-1 .5-1.3.3-.3-.6-.7-1.2-1z"/>
<path d="M471.8 141.2c-.6-.2-1 1.1-.1 1.3.9.2 1-.9 0-1.2zm-.1 1.7c-.7.1-1.5 1-.4 1 1.2-.2 1.6-1 .3-1zm-1.4 1.7c-.7.3-.5 1.3.5.6 1-.7 1.2-1.5-.5-.6zm-1 1.4c-.7.3-.7 1.3.4.6 1-.6 1.3-1.5-.4-.6z"/>
<path d="M467.9 146.7c-.7.3-.3 1.2.7.6s1-1.5-.7-.6zm.8.9c-.8.3-.3 1.2.7.6s1-1.5-.8-.6z"/>
<path d="M467.4 147.9c-.6.4-.2 1.2.9.6 1-.6.9-1.5-.9-.6zm.9 1c-.8.3-.4 1.2.7.6 1-.7 1-1.5-.8-.6z"/>
<path d="M467 149.5c-.6.3-.2 1.2.9.6 1-.6.8-1.5-.8-.6z"/>
<path d="M467 150.3c-.5.4-.1 1.4 1 .7 1-.7.8-1.5-1-.7z"/>
<path fill="#cf6200" d="M466.6 158.9c-.7 0-1.2 1.1-.3 1.3.9.2 1.1.3 1.1.9 0 .6.3 1.7 1.2 1.7 1 0 1.8-1 1-1.3-.9-.3-1.6-.6-1.7-1.4 0-.7-.8-1.2-1.3-1.2z"/>
<path fill="#ff0" d="m491.5 153 .5.6c.7.5 2 0 1.7-.5-.1-.4-.8-2 1-.8l9.2 6.5c1.9 1.4.6 1.6-.2 1.1l-5-2.3c-1.5-.9-1.7-.5-2-.3 0 .3 0 .9.6 1.4-.9.1-2.3 0-2.8-1-.5-1.2-1.7-2.6-2.6-3.7-.3-.4-.4-.7-.3-.9z"/>
<path fill="#00d860" d="M542 319.5c-1.3.9-3 2.4-1.9 4.5l.4-.1a124.1 124.1 0 0 0 12.9-19v-.6a17.9 17.9 0 0 1-4.5 2.7c.6 1.7-2.3 3.8-3.7 4.4.6 1 .4 2.6-1 2.9.3.8-.7.8-2 1.4-1.1.5-1.7.8-2.1 1.5.6-.4 1.6-.7 2-.5.4.2.6.9-.3 1.1-.8.3-1.4.7-1.8 1 1.3-.3 3.2-.2 2 .7z"/>
<path stroke="#000" stroke-width=".4" d="M481.8 151.2c-1.6-1.2-2-.4-1.6 0 .4.4 0 1.5-1.1 2h-4c-.7 0-1.9 1.5 0 1l6.3-1c.8 0 1.6-.9 0-2zm2.7 2.3c-1.1-1.2-1.5-.8-1.1 0 .4.8-.4 1.2-1.2 1.2l-5.5 1.5c-1.5 0-1.5 1.2.4 1.2 2 0 5.9-2 6.3-2 .4 0 .8-1.1 1.1-.7.4.4 1.2 0 0-1.2zm1.2 3.1-3.9 2c-1.2 0-2 1.2 0 1.2s4-2 4.7-2.4l1.6-.8s1.5-.4 0-1.5c-1.6-1.2-3.2 0-2.4.4.8.4 0 1.1 0 1.1z"/>
<path d="M469.7 131.2c-2.5-1.7-5.2 1.7-2.5 3.6 2.4 1.7 5-2 2.6-3.6z"/>
<path fill="#fff" d="M466.6 132.7h.7c0 .8.7 2 1.8 1.7-.9.7-2.6-.2-2.5-1.7zm9.6 37c.8.3 3.4.5 4.4.5l-1.2 2.2c-.3.7-.4.8-.5-.3 0-1-.6-1.7-1.1-.6l-1 2c-.3.4-.7.5-.6-.6.2-1.1.1-2.3 0-3.2z"/>
<path fill="none" stroke="#000" stroke-width="1.2" d="M574.5 199.7c0 63.7-10.2 132.5-93 165.3-82.6-32.8-92.7-101.6-93.1-165.3zm0 0c0-24.3-1.2-47.8-.8-68a248.7 248.7 0 0 0-92.3-16.9c-20.7 0-61.4 3.1-92.2 16.8.7 20.3-.8 43.8-.8 68z"/>
<path fill="#012169" d="M0 0h320v240H0Z"/>
<path fill="#fff" d="m37.5 0 122 90.5L281 0h39v31l-120 89.5 120 89V240h-40l-120-89.5L40.5 240H0v-30l119.5-89L0 32V0Z"/>
<path fill="#c8102e" d="M212 140.5 320 220v20l-135.5-99.5Zm-92 10 3 17.5-96 72H0ZM320 0v1.5l-124.5 94 1-22L295 0ZM0 0l119.5 88h-30L0 21Z"/>
<path fill="#fff" d="M120.5 0v240h80V0ZM0 80v80h320V80Z"/>
<path fill="#c8102e" d="M0 96.5v48h320v-48zM136.5 0v240h48V0Z"/>
</svg>

After

Width:  |  Height:  |  Size: 30 KiB

View File

@@ -0,0 +1,150 @@
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" id="flag-icons-ad" viewBox="0 0 640 480">
<path fill="#d0103a" d="M0 0h640v480H0z"/>
<path fill="#fedf00" d="M0 0h435.2v480H0z"/>
<path fill="#0018a8" d="M0 0h204.8v480H0z"/>
<path fill="#c7b37f" d="M300.4 136.6c7.7 0 10.9 6.6 18.6 6.6 4.7 0 7.5-1.5 11.7-3.9 2.9-1.6 4.7-2.5 8-2.5 3.4 0 5.5 1 7.3 4 1 1.6 1.8 4.9 1.3 6.7a40 40 0 0 1-2.7 8.3c-.7 1.6-1.3 2.5-1.3 4.2 0 4.1 5.6 5.5 9.4 5.6.8 0 7.7 0 12-4.2-2.3-.1-4.9-2-4.9-4.3 0-2.6 1.8-4.3 4.3-5.1.5-.1 1.3.3 1.7 0 .7-.3.4-1 1-1.4 1.2-1 2-1.6 3.6-1.6 1 0 1.6.1 2.5.7.4.4.6.8 1 .8 1.2 0 1.8-.8 3-.8a5 5 0 0 1 2.3.6c.6.3.6 1.5 1.4 1.5.4 0 2.4-.9 3.5-.9 2.2 0 3.4.8 4.8 2.5.4.5.6 1.4 1 1.4a6.2 6.2 0 0 1 4.8 3c.3.4.7 1.4 1.1 1.5.6.3 1 .2 1.7.7a6 6 0 0 1 2.8 4.8c0 .7-.3 1.6-.5 2.2-1.8 6.5-6.3 8.6-10.8 14.3-2 2.4-3.5 4.3-3.5 7.4 0 .7 1 2.1 1.3 2.7-.2-1.4.5-3.2 2-3.3a4 4 0 0 1 4 3.6 4.5 4.5 0 0 1-.3 1.8 9.6 9.6 0 0 1 4-1.4h1.9c3.3 0 7 1.9 9.3 3.8a21 21 0 0 1 7.3 16.8c-.8 5.2-.3 14.8-13.8 18.6 2.5 1 4.2 3 4.2 5.2a4.5 4.5 0 0 1-4.4 4.7 4.4 4.4 0 0 1-3.5-1.4c-2.8 2.8-3.3 5.7-3.3 9.7 0 2.4.4 3.8 1.4 6 1 2.2 1.8 3.5 3.7 5.1 1-1.5 2.1-2.6 4-2.6 1.7 0 3.2.6 3.9 2.2.2.5 0 .9.3 1.4.3.6.8.7 1.1 1.3.5 1 0 1.8.5 2.7.3.7.9.8 1.2 1.4.4 1 .5 1.6.5 2.7 0 3-2.7 5.2-5.7 5.2-1 0-1.4-.4-2.3-.3 1.7 1.7 3 2.5 4.3 4.5a17.7 17.7 0 0 1 3 10.3 22 22 0 0 1-2.8 11.2 20 20 0 0 1-7 8.5 35 35 0 0 1-16 6.4 74.4 74.4 0 0 1-11 1.4l-14.1.8c-7.2.4-12.2 1.5-17.3 6.6 2.4 1.7 4 3.5 4 6.4 0 3-1.8 5.3-4.7 6.2-.7.2-1.2 0-1.9.4s-.7 1.3-1.4 1.7a6.2 6.2 0 0 1-3.8 1 8 8 0 0 1-6.4-2.5c-2.2 1.8-3 3.4-5.5 4.9-.8.4-1.2 1-2.1 1-1.5 0-2.2-1-3.4-1.8a23 23 0 0 1-4.4-4c-2.3 1.3-3.6 2.4-6.3 2.4a7 7 0 0 1-4-1c-.6-.5-.8-1.2-1.5-1.6-.7-.5-1.3-.3-2.1-.7-3-1.3-5-3.5-5-6.8 0-2.9 1.8-4.7 4.4-6-5-5-10-5.8-17-6.2l-14-.8c-4.4-.3-6.8-.7-11-1.4-3.3-.5-5.2-.7-8.2-2.1-10.2-4.8-16.8-11.3-18-22.5-.2-1-.2-1.5-.2-2.5 0-5.8 2.3-9.4 6.4-13.5-1-.3-1.7 0-2.8-.3-2.5-1-4.4-2.7-4.4-5.5 0-1 0-1.7.5-2.6.4-.6 1-.7 1.2-1.4.2-1 0-1.6.4-2.5.3-.5.8-.6 1-1.2 1-1.9 2-3.4 4.1-3.4 1.8 0 3 1 3.8 2.5 1.8-.8 2.2-2.1 3.2-3.7a15.5 15.5 0 0 0 1.4-13.3c-.4-1.5-.6-2.5-1.8-3.7-1 1-2 1.4-3.4 1.4-2.9 0-5-2.5-5-5.3a4.8 4.8 0 0 1 3-4.6c-1.6-1.4-3-1.5-4.7-2.6-2.6-1.6-3.5-3.4-5.2-6-1.2-1.6-1.5-2.8-2-4.7a19 19 0 0 1-1-7.8c.6-5 1.5-8 4.6-11.9 1.8-2.3 3-3.7 5.8-4.9 2.3-1 3.7-1.7 6.2-1.7l2 .1a6.9 6.9 0 0 1 2.8.8c.4.2 1.1.9 1.1.4s-.3-.8-.3-1.3c0-2 1.5-4 3.6-4 1.5 0 2.1 1.4 2.9 2.7.4-.8.7-1.4.7-2.3 0-3.4-1.9-5.2-4-7.9-4.7-5.8-10.5-8.5-10.5-16 0-2.2 1-3.7 3-4.9.5-.3 1.3 0 1.8-.3s.4-1 .7-1.4c.5-.7 1-1 1.6-1.6 1-1 2-.6 3.1-1.5.6-.4.8-1 1.2-1.4 1.3-1.6 2.5-2.4 4.6-2.4 1 0 1.6 0 2.5.4l1 .5c.3-.2.8-.8 1.5-1.1a4 4 0 0 1 2.2-.6c1.1 0 1.8.6 3 .6.3 0 .4-.4.8-.6 1-.7 1.5-1 2.7-1 1.2 0 1.8.3 2.8 1 1 .5 1 1.3 2 1.8.5.3 1 .2 1.5.4 2.6.9 4.5 2.6 4.5 5.3 0 1.5-.3 2.5-1.4 3.5-.9.7-1.7.6-2.8 1a16 16 0 0 0 11.3 3.5c4.2 0 9.3-1.7 9.3-5.9 0-2-1-3-1.8-4.8a18.8 18.8 0 0 1-2.1-8.5c0-2.8.3-4.5 1.9-6.7 1.6-2.3 3.6-2.9 6.5-2.9z"/>
<g fill="none" stroke="#703d29">
<path stroke-linejoin="round" stroke-width=".7" d="M272.4 159a3.6 3.6 0 0 0 2.4 2.4c.8.3 2.7.2 3.8-1.4 1-1.2 1-2.8.6-4a4.7 4.7 0 0 0-1.7-2.2l-5.1 5.2z"/>
<path stroke-linecap="round" stroke-width=".7" d="M401 236.1c-1.2-2.9-4.3-1.6-4.4 0-.5 3.7 2.7 4.8 5 4.2a4 4 0 0 0 2.5-2c.6-1 .8-2.4.4-3.7a4.9 4.9 0 0 0-.8-1.6 5 5 0 0 0-1.3-1.2c-.9-.6-1.9-.6-3.4-.6-5.5 0-10.4 6.5-12 13.4-.6 2.2-1.3 7.3-.3 12a22.4 22.4 0 0 0 5.9 11.3 25.7 25.7 0 0 0 9.9 5.8 7.9 7.9 0 0 0 4 .1c3.2-.7 4.7-3.8 3-7-1.3-2.5-5.3-4-7.2-.6-.1.3-.4.9-.4 1.5 0 .9.4 2 1 2.4 1.5.9 3.8.6 3.7-2"/>
<path stroke-width=".8" d="M383.8 274a11.3 11.3 0 0 1 6.6-3.7c3-.4 5.6.5 8.2 2a18.5 18.5 0 0 1 10.8 17c0 3.6-1 7.5-2 9.4-.8 1.7-3 9-15.3 14-7.1 3-18 3.6-25.7 4-10.4.3-20 .7-25.5 7.6"/>
<g stroke-width=".7">
<path d="M386.4 285.7c-.3-1 0-2.1.8-3.3 1.2-1.6 3.7-2.1 6-1a7.4 7.4 0 0 1 2.5 2.2l1.1 1.6c.7 1.1 1 2 1 2.5 2.5 7-1.4 14.5-6.5 17.6-4 2.4-8.7 3.4-14.4 4-2.5.4-4 .3-6.5.5h-9.6a70.1 70.1 0 0 0-7.2 0c-2.9.3-5 .4-7.6.8-1.6.2-3.4.5-5.4 1-.6 0-1.2.2-1.8.4l-1.2.3c-3.6 1.1-7 2.4-9.8 4.2-.8.5-1.8 1-2.5 1.7l-1.3 1.2c-2 2-3.9 4-4.4 6.7v1.6c0 1.8 1.4 4.3 5.4 5m5.5-170c.8 1.4 1.3 2.3.8 3.9-.6 1.7-1.8 2.8-3.6 2.8-4 0-6.3-4.8-4.5-7.8 3.2-5.3 9.3-2.3 15 .3-.3-1.3-.8-1.8-.7-3.5.1-4.2 3.2-6 4.5-10 .7-2.3 1-4.3-.7-6-1.5-1.3-3.2-1.3-5.1-.6-3.8 1.5-8.5 5.9-16.6 6-8.2-.1-12.8-4.5-16.7-6-2-.7-3.6-.7-5.1.7-1.7 1.6-1.4 3.6-.7 6 1.3 3.8 4.4 5.7 4.5 10 0 1.6-.4 2-.7 3.4 5.7-2.6 12-5.9 15-.3 1.7 3.2-.5 7.7-4.5 7.7-1.8 0-3-1-3.6-2.7-.4-1.5 0-2.8.8-4"/>
<path stroke-linecap="round" d="M314.6 159.9a5.3 5.3 0 0 1 2.4 5c-.2 2.5-.8 3.1-2.8 4.5m2.4-3.8c-.1 1.5-.7 2.5-2.3 3.1"/>
</g>
<path fill="#c7b37f" stroke="none" d="m276.7 153.3.7.5.8.8.5 1 .2.8v1.9l-.2.8-.5.6-.6.6-.9.5-1 .2-1 .2-1-.5-.9-.6-.5-.8-.4-1v-.4l4.8-4.6z"/>
<path stroke-linecap="round" stroke-width=".7" d="M275.2 157.2c-.3-1.7-2.2-2-3-1-1.1 1.5-.3 4 2 4.7a4 4 0 0 0 3.9-1.4c1-1.3.9-2.8.5-4a4.5 4.5 0 0 0-1.7-2.2c-2.7-2-7.1-1.6-8.6 2-1.8 4.4 2.2 7.8 6 10.3 4.6 3.2 10 3.8 14 3.8 9.2-.1 16.2-4.5 20.7-7 1-.6 2.1-.5 2.7.2a2 2 0 0 1-.3 2.7"/>
<path stroke-width=".7" d="m248 281.2-2 .7-2 1.6-1 1.3-1.1 2-.5 1.5-.4 1.8-.2 1.4m19-10.1-.1 1.8-.3 1.2-1 2.2-1.3 1.8-1.5 1.2-1.1.5-1.6.4"/>
<path stroke-width=".8" d="M319.7 329.1c-.3 1.7-1.9 3.6-5.3 4.2l-.6.2"/>
<path stroke-width=".9" d="M404.2 276.2a18.3 18.3 0 0 1 5.6 13.5c0 3.6-1 7.5-2 9.4-.8 1.7-3 9-15.3 14a85 85 0 0 1-25.6 4c-10.3.3-19.8.7-25.4 7.3"/>
<path stroke-width=".6" d="M387.5 282.9c.8-1 3.5-2.4 5.8-1.1a6.2 6.2 0 0 1 2.3 2"/>
<path stroke-width=".9" d="m401.6 273.8 1.4.5a7 7 0 0 0 4 0c2.8-.8 4.6-3.4 3.2-6.9a6 6 0 0 0-1.8-2.1"/>
<path stroke-linecap="round" stroke-width=".7" d="M240.3 199.8c-2 1.1-3.3 1.4-4.8 3.1a28.1 28.1 0 0 0-2.6 6.8m46-51.7c0 1.8-1.2 2.8-3 3.2"/>
<path stroke-width=".6" d="M397.1 192a19 19 0 0 1 18.6 19.8c0 16-9.9 18.5-13.8 19.6"/>
<path stroke-width=".7" d="M398.4 192c8.1-.3 16.5 5.7 16.9 20.7.3 11.7-8 17-12 18"/>
<path stroke-width=".6" d="m393.8 248.4.1-1.6.6-2.5.7-2 .9-1.6 1-1.3m7.8-3.4v1.5l-.5 1-.7 1.1-.8.6-1.2.5h-1.1l-.8-.1m-14.3-52.8.3-1.7.8-1.6 1-1.5 1.6-2.2 1.4-1.4 2-2.2 2-1.9 1.1-1.3 1.5-1.9 1.4-2 .8-1.7.5-2.2.1-2.7-.2-.8m-12.3 128.2 1.6-.4 1.2-.6.7-.7.5-.8.3-1.2v-.9m-158.2-12.1h2.7l1.6-.6m5-36.5-.2 1.4-.4.6-.4.6-.7.5-.7.3-1 .1h-.6m9.9-15.5-.3 2.1-.5 1-.8 1.2-1.2.9-1.2.6-2.3.5m15.3-39.7-.5 1.3-.5 1-.8 1-1 1-1.2.5-1.1.3-.6-.1m.3-6.2v1"/>
<g stroke-width=".6">
<path stroke-linecap="round" d="M254.3 224a6.9 6.9 0 0 1-2.1 1.4m150.5 44.8.5.2c1.4.8 4.2-.2 3.4-2.4"/>
<path d="M397.8 239.6c1 1.3 2.9 1.7 4.4 1.3a4 4 0 0 0 2.5-2c.6-1 .8-2.4.4-3.7a4.9 4.9 0 0 0-.9-1.6 6.8 6.8 0 0 0-1.3-1.5l-.4-.2m6.4 34a4 4 0 0 0 .1-.7 4 4 0 0 0-1.3-3l-.8-.8m.4.5c0-1.8-1.5-3.2-3.4-3.5m-4.2 2.8-1.3-1a15.7 15.7 0 0 1-4.3-10.7c0-4.2 1.6-8.4 3.6-10M341.2 324l1.8-1.6 1.2-1 2.3-1.4 2.2-1 1.6-.5 3-.6 3.6-.6m-29.5 19.4a17 17 0 0 1-7.6 6.1 17.7 17.7 0 0 1-7.6-6.1"/>
<path stroke-linecap="round" d="M314.4 332.6a10 10 0 0 1-2.2 4.2"/>
<path d="m314.7 330.5-.4 2.2M312 337l-1 1-1.7.9-2 .6m-5.6-177.8c.3-.8.5-1.4.5-2.6-.1-4.2-3.2-6.1-4.5-10-.7-2.3-1-4.3.7-6 1.4-1.4 3.2-1.4 5-.6 4 1.5 8.6 5.8 16.7 6-8.1-.2-12.8-4.5-16.6-6-2-.8-3.8-1-5.3.5-1.7 1.6-1.2 3.8-.5 6.1 1.3 3.9 4.2 5.8 4.3 10 0 1.2-.3 1.8-.5 2.6M320 148c8-.4 14.9-5.8 17.1-6.3 2-.4 3-.2 4.5 1.1-1.4-1.3-3-1.2-5-.5-3.8 1.5-8.4 5.8-16.6 6m79.6 112.9a15.5 15.5 0 0 1-6.2-12.4c0-4.1 1.7-8.4 3.6-10m-70 97.6c-1.3 2-4.3 5-7.6 6.2a17.7 17.7 0 0 1-7.6-6.2"/>
<path stroke-linecap="round" d="m306.7 163.7 2.3-1.3c1-.6 2.3-.5 2.9.2.6.7.7 2-.2 2.8"/>
<path d="M294.7 169.3c5.5-1.2 10-3.6 13.4-5.5M340.3 328c.5.3.8 1 .8 1 .1.2.3.5.3.8.3 1.5-.7 2.4-2 2.6-1.7.2-3-.8-3.5-2M294.4 169c5.5-1.1 10-3.6 13.4-5.5m97.6 106.9c-1 .4-1.6.3-3-.2l-1.8-1a20.7 20.7 0 0 1-8.4-9 18.8 18.8 0 0 1-1.7-4.6 12 12 0 0 1-.5-3.3 25.6 25.6 0 0 1 4.7-15.3c1.1-1.6 2.1-2.5 4.2-2.6m-143.7-39.3a7.1 7.1 0 0 1 2.7 5.7c0 3.1-2.6 8.2-9 10a8.3 8.3 0 0 1-6.3-.8"/>
<path d="M256.3 205.6c1.1.8 1.6 1.7 1.6 3.3 0 1-.7 2.4-1.9 3.7a12.4 12.4 0 0 1-8.8 4c-2 0-4-.4-6-1.7a9 9 0 0 1-3.8-5.4"/>
<path d="M256.2 212.3c1.3 1.2 1.7 2.7 1.7 4.6 0 2.7-1.1 4.8-3.7 7-.6.6-1.2 1-2 1.5m129.5-22.1v3.5m-.3-4.4v5m.3-15.8v6.6m-.3-8v8.9m-1.9 82a18.7 18.7 0 0 1-4.2 5.6 19.6 19.6 0 0 1-5.8 4.1 24.6 24.6 0 0 1-6.6 2.2 33 33 0 0 1-6.8.9c-2.5 0-3.9 0-6.4-.2-2.6-.2-4-.6-6.7-.8-2.2-.2-3.4-.4-5.6-.3a28.3 28.3 0 0 0-11 1.8c-2.6 1-5.7 3-6.3 3.8a22 22 0 0 0-6.4-3.8 22 22 0 0 0-5.1-1.4c-2.3-.4-3.5-.4-5.8-.4-2.2 0-3.4.1-5.6.3-2.6.3-4 .6-6.7.8-2.5.2-3.9.3-6.4.2a33 33 0 0 1-13.4-3 19.5 19.5 0 0 1-6.4-4.8m42.1 53.4 1.8-.2m30.3-2.4 1.8-.1 1.7-.7 1.2-.8 1.7-2 .3-.6.3-1.7v-.8m47-136.7c.7-2.6-.2-5.4-2.8-5.3m-132 46.5a8.2 8.2 0 0 1-3.5 4.7m3.6-46.7a6.5 6.5 0 0 1-3.6 4c-1.9.8-4 0-5.2-.8"/>
<path stroke-linecap="round" d="M243.8 202.4c1.5.8 3.1-.4 2.8-2.4a2.9 2.9 0 0 0-2.5-2.2"/>
<path d="M250.2 286.6c.3.3.4.7.8.8.7.2 1.2.4 1.9-.5.8-1.1.3-2.8-.5-3.9a5 5 0 0 0-5.8-1c-.8.5-1.7 1-2.6 2.2l-1.1 1.6c-.7 1.1-1 2-1.1 2.4-2 5.9.4 12 4.1 15.7"/>
<path stroke-linecap="round" d="m340.2 327.8.7.8.2.9c.3 1.5-.7 2.4-2 2.6-1.6.2-2.8-.8-3.3-2"/>
<path d="M389.4 154.8a7.4 7.4 0 0 1 6.3 7c0 4.4-1.5 6-3.8 9.2-2.5 3.4-10.7 9.6-10.7 16.7 0 4.3 1.2 7 4.3 8.4 2 1 4.3 0 5.4-1 2.6-2.4 1.5-6.5-1.2-7-3.2-.6-3.9 4.6-.7 4.3m17.9 69a3.7 3.7 0 0 0-3.6-3 3.7 3.7 0 0 0-3.7 3.7c0 1 .4 2 1 2.6"/>
<path d="M383.9 195.1a7.1 7.1 0 0 0-2.7 5.7c0 3.1 2.6 8.2 9 10 2.4.7 4.8.6 6.2-.3m-156-10.3a9.4 9.4 0 0 0-4.8 3.5 16.9 16.9 0 0 0-2.2 12.7 15.8 15.8 0 0 0 2.3 5.6 8 8 0 0 0 1 1.2l1.2 1m64 92c4.9 2.1 8.4 3.7 11.4 8.5a10 10 0 0 1 1.2 4.9c0 2.7-1 5.7-3.3 7.6a8.3 8.3 0 0 1-6.7 2c-1.9-.2-3.7-1.6-4-2.6M254 224.1c2.7 2.2 3.9 4.2 3.9 7.5a8.4 8.4 0 0 1-4 7.5"/>
<path stroke-linecap="round" d="M251.5 236.4c4 5.1 6.3 8.1 6.4 14.1.1 5.7-1.7 9.6-5 13.7"/>
<path d="M329.8 169.3a4.1 4.1 0 0 0 1.5-2.2c.5-1.5.5-2.8-.2-4 1 1.4 1 2.5.7 4-.1 1-.8 1.5-1.6 2.3m51.5 86.1v16.2l-.1 2.5a34.4 34.4 0 0 1-.3 1.7"/>
<path d="M381.4 254v19.9l-.5 2.6m.5-43v14.6m.3-13.4v11.8m0-26.8v8.8m-.3-9.9v11m.3-19v3.5m-.3-4.2v5m-1.8 65.2-.4.7a18.7 18.7 0 0 1-4.1 5.7 19.6 19.6 0 0 1-5.9 4 24.6 24.6 0 0 1-6.5 2.2c-2.7.6-4.2.8-6.9.9-2.5 0-3.9 0-6.3-.2-2.7-.2-4.1-.5-6.8-.8-2.2-.2-3.4-.3-5.6-.3-2.2 0-3.5 0-5.7.4a22 22 0 0 0-5.2 1.4c-2.7 1.1-5.7 3-6.4 3.8-.6-.8-3.7-2.7-6.3-3.8a22 22 0 0 0-5.2-1.4c-2.2-.4-3.5-.4-5.8-.4-2.2 0-3.4.1-5.6.3-2.6.3-4 .6-6.7.8-2.5.2-3.9.3-6.3.2a33 33 0 0 1-13.5-3 19.5 19.5 0 0 1-5.8-4.1 22 22 0 0 1-2.5-2.8m-2-3.2a10.1 10.1 0 0 1-2.3 7.7c-.8.9-2.6 2.6-5 2.6-3.7 0-4.8-2.5-5-3.2"/>
<path d="M255.6 278.9c.7.7 1.3 1.5 1.9 2.5 1 1.8.6 4.8-.1 6.2a4.4 4.4 0 0 1-.3.4m-20.3 18c2.3 2.4 5.7 5 10.9 7.1 7.1 3 18.1 3.6 25.7 4 10 .3 19.3.7 25 7m17.3-4a12 12 0 0 1 4 5.5m-7.3 11.5a8.2 8.2 0 0 1-.7.7 8.3 8.3 0 0 1-6.6 2c-2-.2-3.8-1.6-4.3-2.6m-5.4-2.9.3.4a7.6 7.6 0 0 0 5.1 2.4m27 0a18 18 0 0 1-7.7 6.1 17.7 17.7 0 0 1-7.6-6.1l-.3-.5m15.6.4.7.7a8.3 8.3 0 0 0 6.7 2 5.5 5.5 0 0 0 4-2.5l.5-.7"/>
<path d="m339 336.6-.7 1.2-1.1 1-1.7.7h-1.6"/>
<path d="M343 325.3a7.7 7.7 0 0 1 2.4 2.9c.3.7.4 1.5.5 2.3a5.8 5.8 0 0 1-1.5 4.2 7.5 7.5 0 0 1-5.4 2.4 5.5 5.5 0 0 1-.4 0m.2-.2a6.8 6.8 0 0 1-5.2-2.2m63.7-67.9a23.8 23.8 0 0 1-4.8-6.4 18.8 18.8 0 0 1-1.7-4.5 12 12 0 0 1-.5-3.3 26 26 0 0 1 4.6-15.3c.7-.8 1.4-1.8 2.1-2.2m-1.3-75.9c2.5.2 4.8 3 4.8 5.7 0 3.8-1.3 5.5-4.4 9.3-2.6 3.2-10.6 9-10.3 14.5 0 1 .5 2 1.1 2.8m-3.2 3.5a7 7 0 0 0 2 1.4 5 5 0 0 0 4.3-.3M369 153a6 6 0 0 1 2.2 2.6c1.8 4.5-2.2 7.9-6 10.4a21.3 21.3 0 0 1-8.3 3.3"/>
<path d="M364.6 161.6a4.2 4.2 0 0 1-3.1-1.5 3.4 3.4 0 0 1-.7-1m-15 4.9a4.6 4.6 0 0 1-1.2-1c-1-1-1.5-2.3-.8-4.4.6-1.9 3.7-7.2 3.8-10.9.2-5.6-2-9-5.3-10.2"/>
<path stroke-linecap="round" d="m347.3 146.5-.1 2-.6 2.2-1 3-1 1.9-.8 1.9-.4 1.3-.2 1 .1.9m38 126.3.6.8c.7 1 3.2 3 5.5 3 3.7 0 4.6-2.6 4.7-3.2.5-2.9-.5-3.6-2-4.5 0 0-.8-.4-1.9-.2"/>
<path d="M237 274.4a6.9 6.9 0 0 1-3.7 0c-2.9-.9-5.2-3.6-4-7m13.4-31.8c.3.3.4.7.4 1 .4 3.8-2.8 4.8-5 4.2a5.6 5.6 0 0 1-3-2.3 4.7 4.7 0 0 1-.7-2.3m22-23.6c.6.5 1 1 1.3 1.7m-1.1-8.5c.5.4.9.9 1.1 1.3"/>
<path stroke-linecap="round" d="M257.9 210.5a8.5 8.5 0 0 1-1.6 2.4 12.4 12.4 0 0 1-8.8 4c-2 0-4-.4-6-1.7a9.5 9.5 0 0 1-4-5.6"/>
<path d="M255.4 195.3a7.8 7.8 0 0 1 2.4 3.4"/>
<path stroke-linecap="round" d="M257.8 203.2c-.9 3-3.5 6.6-8.6 7.9-2.4.6-5.6-.2-6.6-1"/>
<path d="M240 202.6c.3 2.6 2 4.6 5.4 4.6 4.7.1 7.6-6.7 3.4-11.5"/>
<path stroke-linecap="round" d="M229.4 225.5c.7.9 1.5 1.7 2.4 2.4a16.8 16.8 0 0 0 6 3.3m5.2.5c4.2-.5 6.6-3.7 6-7.3-.3-2.8-2.8-5-4.6-5.1"/>
<path d="M249.8 188.1c1.9 0 3 1.6 2.9 3"/>
<path stroke-linecap="round" d="M249.4 163a11.5 11.5 0 0 0 5 5.9m144.2 31c1.7 2.3.6 7-4 7a5.2 5.2 0 0 1-4.5-2.5"/>
<path d="M381.7 169.1V185"/>
<path stroke-linecap="round" d="M243.8 202.3c1.4 1 3.3-.7 2.5-2.6-.5-1.2-2.2-2.6-4.7-.9-2.8 1.9-2 7.8 3.2 7.9 4.7 0 7.6-6.8 3.4-11.6-4-4.6-11.3-3.6-16 .2A21.4 21.4 0 0 0 225 207a22.5 22.5 0 0 0 0 9.2 20.9 20.9 0 0 0 3 7.5l1.3 1.7c.8.8 1 1.2 2 2a15 15 0 0 0 10.4 3.7c4.6-.2 7.3-3.4 6.8-7.3-.4-3.8-4.2-5.7-6.7-3.9-1.7 1.2-2.3 4.9.7 5.8 1.6.5 3.1-1.7 2-3M374 150.9c2.7-1.4 4.8-1.2 6.3 1a9.9 9.9 0 0 1 1.6 7.2 9.2 9.2 0 0 1-3.5 5.8"/>
<path stroke-linecap="round" d="M380.5 152c3.1-2 6.5-1.1 8.3 1.6 1.3 2 1.7 3.6 1.6 6.1a11.2 11.2 0 0 1-5.7 9.2"/>
<path d="M395 159.2c2.6.2 4.6 2.5 4.6 5.1 0 3.8-1 5.5-4 9.3-2.7 3.3-10.6 9-10.4 14.6 0 2.1 1.8 4 3.3 4.2"/>
<path stroke-linecap="round" d="M395.4 202.3c-1.5 1-3.3-.6-2.5-2.4.5-1.2 2.2-2.8 4.7-1.1 2.7 1.9 2 7.8-3.3 7.9-4.7 0-8-6.6-3.4-11.6 4-4.6 11.7-3.7 16.5.1 2 1.6 6.1 6 7 12 1 7 .9 15.6-6.4 21-3 2.1-7 3.1-10.6 3-4.6-.2-7.3-3.5-6.8-7.4.5-3.8 4-5.4 6.7-3.9 2.8 1.5 2.3 5.4-.7 5.8-1.7.2-3.1-1.7-2-3"/>
<path d="M392.9 199.9c.8-3.5 3.7-3.8 6.2-3.8 6.5.1 11.1 8 11.2 15.5 0 9.5-4 15.2-11 15.5-1.9 0-5-.8-5-3"/>
<path stroke-linecap="square" d="M397 198.3c6.9 1.6 9.3 7.8 9.3 13.8 0 4.9-.5 11.6-10 13.9"/>
<path d="M408.4 265.3a3.9 3.9 0 1 0-6.3 2.4"/>
<path stroke-linecap="round" d="M394.4 259.4c1.4 2 3 4.1 6.3 6m-1.3 10.5c-3.2-2.2-9.5-5-15-2.2a7.6 7.6 0 0 0-4.4 4.4 10 10 0 0 0 1.8 9.5c.9 1 2.7 2.6 5 2.7 3.8 0 4.7-2.6 4.8-3.2.4-2.8-1.2-3.9-2-4.1-.7-.3-2.8-.2-3.2 1.3-.2.5-.2 1.3.2 2"/>
<path stroke-linecap="round" d="M340.5 328.4c1 2.2-.2 3.2-1.6 3.4-2.2.3-3.3-1.4-3.4-3a4.4 4.4 0 0 1 4.3-4.7c2.3 0 4.1 1.5 5 3.5.3.7.5 1.5.5 2.4a5.8 5.8 0 0 1-1.4 4.1 7.5 7.5 0 0 1-5.4 2.5c-4.2.1-7.5-3.8-7.5-7.8 0-7.7 11.4-12 16-13a84 84 0 0 1 17.9-2.4c3.5-.1 6.2 0 10.1-.5 3.5-.3 5.4-.5 9-1.3a27.2 27.2 0 0 0 12.6-6.4c2.9-2.7 4.5-4.5 5.9-8.2a17 17 0 0 0-1.3-13.9 14.3 14.3 0 0 0-10.3-6.8c-3.7-.5-7 1.1-9 4.8-1 1.8-.6 4.8.1 6.2a6 6 0 0 0 4.8 3c3.8 0 4.7-2.6 4.8-3.2.4-2.8-1.2-3.9-2-4.2-.7-.2-2.8-.1-3.2 1.4-.2.5-.2 1.3.2 2"/>
<path stroke-linecap="round" d="M337.2 316.2c-4.8 2.1-8.4 3.7-11.4 8.5a9.9 9.9 0 0 0-1.2 4.9c0 2.7 1.1 5.7 3.3 7.6a8.3 8.3 0 0 0 6.7 2c2-.2 3.7-1.6 4-2.6"/>
<path d="M385.1 224.1c-2.3.8-3.9 4.2-3.9 7.5a8.4 8.4 0 0 0 4 7.5"/>
<path stroke-linecap="round" d="M387.6 236.4c-4 5.1-6.3 8.1-6.4 14.1 0 5.7 1.7 9.6 5.1 13.7"/>
<path d="m365.9 152 .3-.5c1.7-2.4 4.7-3.1 6.9-1.5 2.6 2 3.3 5.4 2.6 9-.5 2.2-2 4.1-4 5.5"/>
<path stroke-linecap="round" d="M265.1 150.8c-2.6-1.2-4.7-1-6.3 1a8.7 8.7 0 0 0-1.6 7.2c.6 2.7 1.4 3.8 3.5 5.8"/>
<path d="M258.6 152a5.8 5.8 0 0 0-8.3 1.6 9.1 9.1 0 0 0-1.6 6.1c.2 4.2 2.8 7.6 5.8 9.2"/>
<path d="M249.7 154.8a6.8 6.8 0 0 0-6 6.6c0 4.5 1 6.3 3.5 9.6 2.5 3.4 10.7 9.6 10.7 16.7 0 4.3-1.2 7-4.3 8.4-2 1-4.3 0-5.4-1-2.6-2.4-1.5-6.5 1.2-7 3.3-.6 3.9 4.6.7 4.3"/>
<path d="M244 159.2c-2.5.2-5 2.3-5 5 0 3.8 1.5 5.6 4.6 9.4 2.6 3.3 10.1 9 9.9 14.5 0 2-1.5 4.6-2.9 4.3"/>
<path stroke-linecap="round" d="M238 236.1c1.3-2.9 4.4-1.6 4.6 0 .4 3.7-2.8 4.8-5.1 4.2a4 4 0 0 1-2.5-2 4.8 4.8 0 0 1-.4-3.7 4.9 4.9 0 0 1 .9-1.6 5 5 0 0 1 1.2-1.2c1-.6 1.9-.6 3.4-.6 5.5 0 10.4 6.5 12 13.4.6 2.2 1.3 7.3.3 12a22.4 22.4 0 0 1-5.8 11.3 25.8 25.8 0 0 1-10 5.8 7 7 0 0 1-3.9.1c-2.8-.9-4.6-3.5-3.2-7 1.2-2.6 5.4-4 7.3-.6.2.3.4.9.4 1.5 0 .9-.4 2-1 2.4-1.4.9-3.7.6-3.6-2"/>
<path d="M233.8 270.4c1 .4 1.6.3 2.9-.2l1.8-1c2.6-1.5 5.6-3.8 8.4-9.1a18.8 18.8 0 0 0 1.7-4.5c.3-1 .5-2.2.6-3.3a25.6 25.6 0 0 0-4.8-15.3c-1.1-1.6-2-2.5-4.2-2.6m-9.5 31a3.9 3.9 0 1 1 6.3 2.3"/>
<path d="M232.2 261.4a3.7 3.7 0 0 1 3.7-3 3.7 3.7 0 0 1 3.6 3.7 3.8 3.8 0 0 1-1 2.6"/>
<path d="M239.4 261.3a15.5 15.5 0 0 0 6.2-12.4c0-4.1-1.6-8.4-3.6-10"/>
<path stroke-linecap="round" d="M244.7 259.4a16.5 16.5 0 0 1-6.3 6"/>
<path d="M254.6 273.7c-1-2.2-2.8-3.2-5.8-3.5-3-.3-5.5.5-8.2 1.9a18.6 18.6 0 0 0-10.8 17 25 25 0 0 0 2 9.5c.9 1.6 3 9 15.3 14a86.1 86.1 0 0 0 25.7 3.9c10.4.5 20 .8 25.6 7.6"/>
<path stroke-linecap="round" d="M239.7 275.9c3.3-2.2 9.5-5 15.1-2.2a8 8 0 0 1 4.3 4.4 10 10 0 0 1-1.8 9.5c-.9 1-2.7 2.6-5 2.7-3.8 0-4.7-2.6-4.8-3.2-.4-2.8 1.2-3.9 2-4.2.7-.2 2.8-.1 3.2 1.4.2.5.2 1.3-.2 2"/>
<path d="M252.7 285.7c.3-1 .2-2.2-.8-3.3a5.1 5.1 0 0 0-6-1c-.7.5-1.6 1-2.4 2.2-.4.4-1 1.1-1.2 1.6-.7 1.1-1 2-1 2.5-2.5 7 1.5 14.4 6.5 17.6 4.4 2.8 8.8 3.6 14.4 4 2.5.3 4 .3 6.5.5h9.6a70.1 70.1 0 0 1 7.2 0c3 .3 5.1.4 7.6.8 1.6.2 3.5.5 5.4 1 .6 0 1.2.2 1.8.4l1.2.3c3.6 1.1 7 2.4 9.8 4.2.8.5 1.8 1 2.5 1.7l1.3 1.2c2 2 4 4 4.4 6.7v1.6c0 1.8-1.4 4.3-5.3 5"/>
<path d="M298.6 328.4c-1 2.2.2 3.2 1.6 3.4 2.2.3 3.3-1.4 3.5-3a4.4 4.4 0 0 0-4.4-4.7 5.5 5.5 0 0 0-5 3.5 6.9 6.9 0 0 0-.5 2.4 5.8 5.8 0 0 0 1.4 4.1 7.5 7.5 0 0 0 5.4 2.5c4.2.1 7.5-3.8 7.5-7.8 0-7.7-11.4-12-16-13a84 84 0 0 0-17.9-2.4c-3.5-.1-6.2 0-10.1-.5-3.5-.3-5.4-.5-9-1.3a27.2 27.2 0 0 1-12.5-6.4 17 17 0 0 1-4.7-22 14.3 14.3 0 0 1 10.3-6.9c3.8-.5 7 1.1 9 4.8 1 1.8.6 4.8-.1 6.2a6 6 0 0 1-4.8 3c-3.8 0-4.7-2.6-4.8-3.2-.4-2.8 1.2-3.9 2-4.2.7-.2 2.8-.1 3.2 1.4.2.5.2 1.3-.2 2"/>
<path stroke-linecap="round" d="m273.3 152-.4-.5c-1.7-2.4-4.7-3.1-6.9-1.5-2.6 2-3.3 5.4-2.5 9a9 9 0 0 0 4 5.5"/>
<path d="M366.8 159.6c-4 4.4-8.1 5.8-14.1 6-2 0-5.5-.6-7.6-2.1-1.3-1-2.8-2.6-1.9-5.5.6-1.9 3.7-7.2 3.8-10.9.3-5.6-1.9-8.7-5.3-9.9-6.2-2.2-13 4-17 5.4-2.1.7-3.2.8-5.1.8-2 0-3-.1-5.2-.8-4-1.4-10.7-7.6-17-5.4-3.4 1.2-5.5 4.3-5.3 10 .1 3.6 3.2 9 3.8 10.8 1 2.9-.5 4.5-1.9 5.5-2 1.5-5.7 2.1-7.5 2-6-.1-10.1-1.5-14.1-5.9"/>
<path stroke-linecap="round" d="M297.3 314.4c.8.3.2-.2 5.3 2a22 22 0 0 1 11.3 8.9 10.5 10.5 0 0 1 .9 7.3"/>
<path d="M297.7 336a8 8 0 0 0 3.2.9c4.2.1 7.5-3.8 7.5-7.8 0-2.8-1.5-5.2-3.6-7"/>
<path stroke-linecap="round" d="M298.6 328.4c-1 2.3.4 3.5 1.8 3.7 2.2.2 3.4-1.4 3.6-3a4.5 4.5 0 0 0-2.2-4.2"/>
<path d="M390.1 154.8c3.2 0 6 3.6 6 7.2 0 4.3-2.2 6.9-3.9 8.8-1.3 1.6-2.7 3-4.4 4.7"/>
<path stroke-linecap="round" d="M386.3 151.4a9 9 0 0 1 2.8 2.4c1.3 2 1.7 3.7 1.6 6.2-.2 4.2-3.2 7.1-6 9m-4.7-17.6.6.7c1.9 2.2 2 5.4 1.6 7.2a8.2 8.2 0 0 1-3.8 5.4m-5-14.4c2.6 2 3.4 5.4 2.5 9-.6 2.5-2.2 4-4.2 5.2m11.1 41.1c.3 1 .9 1.3 1.5 2a13.5 13.5 0 0 0 6.2 3.5c2.4.7 4.6.2 6.3-.9m-163 54c1.2 0 2.5.9 3.3 2.3.1.2.4.8.4 1.5 0 .9-.4 1.8-1 2.2-1.5 1-4 .5-4-2"/>
<path d="M241.5 231.3c5 1 9.7 6.9 11.2 13.3.6 2.3 1.3 7.3.3 12a22.4 22.4 0 0 1-6 11.4 16.5 16.5 0 0 1-2.1 1.9l-1 .7m-8-12.1c2 0 3.8 1.9 3.8 4a3.8 3.8 0 0 1-1 2.6"/>
<path d="M234.6 260.7c2.1 0 4.1 2 4.1 4.2a3.9 3.9 0 0 1-1.4 3"/>
<path stroke-linecap="round" d="M254 239.5a18 18 0 0 1 3.8 7.7m0 8.5a17.3 17.3 0 0 1-1.5 4 17.8 17.8 0 0 1-3.6 4.7"/>
<path d="M254.3 224.3c1.8 1.5 3 3 3.5 4.8"/>
<path stroke-linecap="round" d="M257.9 219.5a10 10 0 0 1-3.4 4.6m-9.2-17.2 2.2-.6 1.3-1 .8-1.1.7-1.8.3-1.5"/>
<path d="M241 199.3c-.7.2-1.6.4-2.5.8a9 9 0 0 0-3.5 3 17 17 0 0 0-2.2 12.7 15.8 15.8 0 0 0 2.3 5.6l1 1.4c1.4 1.3 2.6 2 4.6 1.7"/>
<path stroke-linecap="round" d="M253 189.8c-.3 1.3-1 2.9-3 2.7"/>
<path d="M245.7 198.5c-2-1.9-6-2.4-10.1.2L234 200a8.8 8.8 0 0 0-1.4 1.6 17.5 17.5 0 0 0-2.4 5c-.7 3-.7 5.6-.6 6.3 0 1 .2 1.9.3 2.7.6 2.8 1.4 4.8 2.3 6.2.9 1.5 3 5 7.7 5.4 1.8.1 4.8-.7 5-3"/>
<path stroke-linecap="round" d="M363.8 157c.3-1.6 2.3-1.9 3-1 1.2 1.6.4 4.2-2 4.9a4 4 0 0 1-3.8-1.4c-1-1.3-.9-2.8-.5-4 .2-.8.9-1.5 1.7-2.2 2.7-2 7.1-1.6 8.6 2 1.8 4.4-2.2 7.8-6 10.3-4.6 3.2-10 3.8-14 3.7-9.2 0-16.1-4.4-20.7-7-1-.5-2.1-.4-2.7.3a2 2 0 0 0 .3 2.7"/>
<path stroke-linecap="round" d="M365.6 155.5c1 0 1.2.4 1.5.8 1.2 1.5.3 4.1-2 4.9m17.8 51.5c-3.5 3.8-.2 10.3 2.4 11.8.9.7 1.3.3 2 .7"/>
<path d="M383.1 205.4c-1.1.8-1.5 1.7-1.6 3.3a5.3 5.3 0 0 0 1.4 4 14 14 0 0 0 9.3 3.7c2 0 4-.4 6-1.7a9 9 0 0 0 3.8-5.4m-20.8 61.8-.2 2.5a18.9 18.9 0 0 1-2 7 18.7 18.7 0 0 1-4.2 5.6 19.6 19.6 0 0 1-5.9 4 24.6 24.6 0 0 1-6.5 2.3 43.8 43.8 0 0 1-13.2.6c-2.7-.2-4.1-.5-6.8-.8-2.2-.1-3.4-.3-5.6-.3a28.3 28.3 0 0 0-10.9 1.9c-2.7 1-5.7 3-6.4 3.8-.6-.9-3.7-2.8-6.3-3.8a22 22 0 0 0-5.2-1.5c-2.2-.4-3.5-.4-5.8-.4-2.2 0-3.4.2-5.6.4-2.6.2-4 .6-6.7.7-2.5.2-3.9.3-6.3.2a33 33 0 0 1-7-.8 24.6 24.6 0 0 1-6.5-2.2 19.6 19.6 0 0 1-5.8-4.1 18.7 18.7 0 0 1-4.2-5.7 19 19 0 0 1-2-6.9c-.2-1-.2-2.5-.2-2.5V169.3h123.2v101.8z"/>
</g>
<g fill="#c7b37f" stroke="#c7b37f">
<path stroke-width=".3" d="M248 285.6a2.5 2.5 0 1 1 5 0 2.5 2.5 0 0 1-5 0zM232.5 268c0-1.3.8-2.3 1.8-2.3s1.7 1 1.7 2.3c0 1.2-.8 2.2-1.7 2.2-1 0-1.8-1-1.8-2.2z"/>
<path stroke="none" d="M241.3 223.6c0-1 .8-1.8 1.7-1.8 1 0 1.7.8 1.7 1.8s-.7 1.8-1.7 1.8-1.7-.8-1.7-1.8zM272 158c0-1 .5-2 1.4-2 .9-.1 1.7.6 1.8 1.6 0 1-.5 2-1.4 2-.9.1-1.6-.6-1.8-1.6z"/>
</g>
<g stroke="#c7b37f" stroke-linecap="round" stroke-width=".6">
<path d="M239.3 234c-.4.1-.6.2-.8.5-.3.3-.4.4-.6.9l-.2 1.2m4.7 26.7 1-1 .6-1 .5-1 .7-1.3m-1.3 14-1.5.7-1.1.6a17.4 17.4 0 0 0-1.3.8l-1.2 1m15-37.9-.8-.8-1-.8-.9-.8"/>
<path stroke-linecap="butt" d="m254.2 225-1.2.5a5.1 5.1 0 0 1-1.5.3"/>
<path d="M237.4 208.4c.2.6.2 1 .5 1.5.2.7.5 1.1.9 1.7a8.3 8.3 0 0 0 2.6 2.7l1.5.8m-1-5.8 1.3.6a7.4 7.4 0 0 0 3 .6l1.8-.1m7.2-40.7-2-1.2c-.9-.5-1.3-.9-2-1.5a9.3 9.3 0 0 1-1.1-1.3l-.8-1.3m7.5-4.6.6 1.7a7.8 7.8 0 0 0 1.4 2c1 1 1.7 1.3 2.8 2.2m1.4-6c.3.7.3 1 .7 1.6.2.5.4.8.8 1.2l1.3 1.3c.7.6 1.2.7 2 1.1"/>
</g>
<path fill="#703d29" stroke-width=".2" d="M333.3 151.6c0-1.7-1.7-1.8-2.4-1.8-1.8 0-2.3 1.1-4.6 2.3a11.9 11.9 0 0 1-6.7 2 12 12 0 0 1-6.7-2c-2.3-1.2-2.7-2.3-4.6-2.3a2.3 2.3 0 0 0-2.2 2.4v.9l.3.2c0-.8.1-1.2.5-1.7a2.2 2.2 0 0 1 1.6-.8c1.8 0 2.5 1.2 4.8 2.4 3 1.6 4.2 1.9 6.7 2a12 12 0 0 0 6.8-2c2.3-1.2 3-2.5 4.8-2.5.6 0 1 .4 1.3 1v.9l.2.1c0-.3.2-.4.2-1z"/>
</g>
<g fill="#703d29">
<path d="M264.4 294c.5-.5.9-.3 1-.6 0-.2 0-.2-.3-.3l-.9-.2-.8-.4c-.1 0-.4-.2-.5 0-.1.4 1 .4.6 1.4a3.7 3.7 0 0 1-.8 1.2l-2.6 3-.2.1v-4.3l.1-1.8c.2-.4.8 0 .9-.4 0-.1 0-.2-.3-.3-.2 0-.5 0-1.1-.3l-1-.5c-.2 0-.5-.2-.6 0l.1.3c.4.2.5.4.5 1v7.4c0 .5.1.6.2.7.1 0 .2 0 .4-.3l5.3-5.7z"/>
<path d="M267.5 295.2c.3-1.1 1-.4 1-.8.1-.2 0-.2-.2-.3l-1.3-.4c-.4 0-.8-.3-1.2-.4 0 0-.3-.1-.4 0-.1.5 1.1.5.8 1.5l-1.7 5.5c-.3 1-1 .6-1.1 1v.1l1.2.4 1.6.5h.3c.2-.4-1.2-.3-.7-1.7l1.7-5.4zm3.7 1c.2-.6.5-.5.9-.4 1 .3 1.4 1.3 1 2.5-.2.6-.4 1.2-2 .8-.3-.1-.7-.2-.6-.5l.7-2.3zm-2.8 5c-.5 1.4-1.2.8-1.3 1.2 0 .2.2.2.3.3l1.6.4.8.3h.4c.1-.5-1-.3-.7-1.5l.6-2c.1-.4.1-.5.6-.3.6.1.7.3.8.8l.3 2c.2.9.3 1.7 1 2 .5 0 1.2 0 1.4-.4l-.2-.2h-.3s-.3 0-.3-.3l-.7-3.6c0-.2.4-.2.8-.3a2 2 0 0 0 1-1.3c.1-.5.4-2.2-1.8-2.9l-2.1-.5-1.2-.4h-.3c-.1.5 1.1.4.7 1.7l-1.5 5zm8.4 2.5c-.4 1.4-1.4.5-1.5 1 0 .2.1.3.3.3l1.5.3 1.4.4c.3 0 .5.2.6-.1 0-.3-1.3-.3-1-1.8l1.3-5.2c0-.6.2-.6.6-.5l1 .2c1.1.3.5 1.5 1 1.6.2 0 .2-.4.2-.6l.1-1v-.4l-3.3-.7-3.2-.8c-.1 0-.2 0-.2.2l-.5 1.5c-.1.1-.2.4 0 .4.5.1.5-1.5 1.7-1.2l.9.2c.4.1.5.2.4.8l-1.3 5.4zm12.7-3.3c.4-.6.8-.5.9-.7 0-.2-.2-.2-.4-.3h-.9l-.9-.3c-.1 0-.4-.1-.4.1-.1.4 1 .2.8 1.3 0 .2-.1.6-.6 1.3l-2 3.3-.3.2v-.2l-.7-4a5.4 5.4 0 0 1-.1-1.8c0-.5.7-.2.7-.5 0-.2 0-.2-.4-.3l-1.1-.1c-.4 0-.7-.2-1-.3-.2 0-.5-.1-.6.1l.1.2c.5.2.6.4.7.9l1.3 7.3c.1.5.2.7.3.7.1 0 .2 0 .4-.3l4.2-6.6zm.6 6.8c0 .3 0 .3.2.5.6.2 1 .6 1.7.7 1.4.2 2.6-.7 2.8-2.2.3-1.5-.3-2.1-1.4-2.9-1.3-.9-1.8-1.1-1.7-2 .1-.7.7-1 1.4-1 1.8.3 1.6 2.6 1.8 2.6.3 0 .3-.1.3-.4l.2-1.6v-.4h-.6c-.4 0-.7-.5-1.6-.7-1.2-.2-2.3.7-2.5 2-.2 1.2.4 1.8 1.2 2.4 1.6 1.1 2.2 1.4 2 2.4-.1 1-.9 1.4-1.7 1.3-1.2-.2-1.6-1.4-1.8-2.6 0-.2 0-.3-.2-.3s-.2.3-.2.5v1.7zm15.8-4.5c.3-.7.8-.6.8-.9 0-.2-.1-.1-.4-.2h-.9l-.9-.1c-.1 0-.4 0-.4.2 0 .4 1 0 1 1.1 0 .2-.1.6-.5 1.4l-1.8 3.5-.1.3-.1-.3-1.1-4a5.4 5.4 0 0 1-.3-1.6c0-.5.7-.3.7-.6 0-.2 0-.2-.4-.2h-1.2l-1-.2c-.2 0-.5-.1-.6.1l.2.2c.4.2.6.3.7.8l2.1 7.1.4.7c.1 0 .2 0 .3-.4l3.5-7z"/>
<path d="M307.6 308.5c0 1.2-1 1-1 1.5 0 .2.1.1.3.1h2.2l.4-.1c0-.6-1.4.2-1.4-2v-4.2l.1-.1.2.1 5.1 6.3.3.1.2-.3v-6.7c0-1.3 1-1 1-1.3 0 0 0-.2-.3-.2h-2.3c-.2 0-.2.1-.2.2 0 .4 1.3.2 1.3 1.3v4l-.1.4-.4-.3-4.2-5.3c-.2-.3-.1-.3-.4-.3h-1.8l-.2.1c0 .6 1.2-.2 1.2 2.1v4.6zM318 303c0-1.1.8-.7.8-1.1 0-.1 0-.2-.4-.2h-2.6s-.3 0-.3.2c0 .4 1.1 0 1.1 1.2v5.7c0 1.1-.8.8-.8 1.2 0 0 0 .2.2.2h2.8c.2 0 .3 0 .3-.2 0-.4-1.2.2-1.2-1.3l.1-5.7zm4.5 5.5c0 1.5-1.2 1-1.2 1.4 0 .2.2.2.4.2h3c.3 0 .5 0 .5-.3s-1.4 0-1.4-1.4V303c0-.6 0-.6.5-.6h1c1.2-.1.8 1.2 1.3 1.2.2 0 .1-.4.1-.6l-.1-1c0-.2 0-.4-.2-.4l-3.3.1h-3.3l-.2.3-.1 1.6.1.4c.5 0 .2-1.6 1.4-1.6h.9c.4 0 .5 0 .6.6v5.6zm6.3-2.2h-.4l.1-.5.7-2.2v-.2l.2.1 1 2.1.2.4c0 .2-.2.2-.4.2h-1.4zm1.8.5c.3 0 .3 0 .8 1l.2.8c0 .7-.7.6-.7 1 0 .1.2.1.4 0h1.2l1.3-.1c.3 0 .4 0 .4-.2 0-.4-.6 0-1-.7l-3.4-7-.3-.4c-.2 0-.2.2-.3.4L327 309c-.2.7-.8.7-.7 1h2.3c.2-.1.5 0 .5-.3s-1.2 0-1.3-.9l.2-1c.2-.8.4-.8.6-.8l2.1-.2zm8.3-5c-.1-.8 0-.8 1.2-1 2-.2 1.4 1.3 2 1.2.2 0 0-.4 0-.6l-.1-1.1c0-.1-.1-.2-.3-.2-1 0-1.7.2-2.4.3l-2.8.4c-.2 0-.3 0-.3.2.1.5 1.3 0 1.4 1l.7 5.5c.2 1.5-.7 1-.6 1.5 0 0 0 .1.2 0l1.4-.1 1.2-.1c.3 0 .5 0 .5-.3s-1.2.1-1.4-1.2l-.2-1.7c-.1-.7-.1-.9.3-1h.8c1.1-.2 1 1.1 1.3 1 .3 0 .2-.4.1-.5l-.3-2.1c0-.3-.2-.3-.2-.3-.3 0-.1 1.1-1 1.2l-.7.1c-.5.1-.5 0-.6-.5l-.2-1.7zm4 2.8c.4 2.3 2.1 3.7 4.2 3.3 3.4-.7 3.5-3.6 3.2-5.3-.5-2.5-2.3-3.7-4.4-3.3-2.5.5-3.5 2.7-3 5.3zm1.1-1c-.3-1.6 0-3.4 1.7-3.7 1.4-.3 3 .8 3.4 3.4.3 2 0 3.6-1.8 4-1.9.4-3-2-3.3-3.6zm8.3-4.1c-.1-.7.2-.8.6-.9 1-.2 1.8.5 2.1 1.6.2.7.3 1.4-1.3 1.8-.3 0-.7.1-.8-.2l-.5-2.3zm0 5.7c.4 1.4-.5 1.3-.5 1.6.1.3.3.2.4.1.6 0 1-.3 1.6-.4l1-.2c.2 0 .2-.1.2-.2 0-.4-1 .3-1.3-1l-.5-2c0-.4-.2-.4.4-.5.5-.2.7-.1 1.1.3l1.3 1.6c.5.6 1 1.3 1.8 1.1.5-.1 1-.5 1-.9l-.2-.1-.3.1s-.3.1-.4 0l-2.4-2.9.5-.6c.2-.4.4-.9.2-1.6-.1-.5-.7-2.1-3-1.6l-2.1.6-1.2.2c-.2 0-.3.1-.2.2 0 .5 1.1-.2 1.4 1l1.2 5.2zm8.7-2c.3 1.4-1 1.2-.9 1.6 0 .3.3.2.5.2l1.4-.5 1.5-.3c.3 0 .5 0 .4-.4 0-.3-1.3.4-1.7-1l-1.3-5.3c-.2-.5 0-.6.3-.7l1-.2c1.1-.4 1.1 1 1.5.9.3 0 0-.5 0-.7l-.4-1s0-.3-.2-.2l-3.2.9-3.2.7v.3l.1 1.6c0 .2 0 .4.3.4.5-.1-.3-1.6 1-1.9l.8-.2c.4-.1.6 0 .7.5l1.4 5.3zm5.5-7.3c-.3-1 .6-.9.4-1.3h-.3l-1.4.4-1.2.3s-.3 0-.3.2c.1.4 1.2-.2 1.5.8l1.6 5.6c.2 1-.6 1-.5 1.3 0 .1 0 .2.2.1l1.1-.3 1.6-.4c.3 0 .3-.1.3-.3-.1-.3-1.1.5-1.5-.9l-1.5-5.5zm2.3 2.7c.7 2.3 2.6 3.4 4.7 2.7 3.2-1.1 3-4.1 2.4-5.7-.8-2.4-2.8-3.3-4.8-2.7-2.4.9-3.2 3.2-2.3 5.7zm1-1c-.6-1.7-.6-3.5 1.1-4 1.3-.5 3 .4 3.9 2.9.6 1.8.5 3.6-1.2 4.2-1.8.6-3.2-1.5-3.8-3.2zm7.6-5.5c-.2-.7 0-.8.4-1 1-.3 2 .3 2.4 1.4.2.6.4 1.3-1.1 1.9-.3 0-.7.2-.8 0l-.9-2.3zm.8 5.6c.6 1.4-.4 1.4-.2 1.7 0 .3.2.1.4.1l1.5-.7.9-.2c.2-.1.2-.2.2-.3-.2-.4-1 .4-1.4-.8l-.8-1.9c-.2-.4-.2-.5.3-.7.5-.2.7-.1 1.1.3l1.6 1.4c.5.5 1.1 1.1 2 .8.3-.2.9-.7.7-1l-.2-.1-.2.2h-.5l-2.8-2.5.4-.7a2 2 0 0 0 0-1.6c-.1-.6-1-2-3.1-1.2l-2 .9-1.2.4-.2.2c.2.4 1.1-.4 1.6.8l2 5z"/>
</g>
<g fill="#fedf00" transform="matrix(.64 0 0 .64 0 16)">
<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.2h.1z"/>
<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-3 43.2-46.7z"/>
<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-31-24.4 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.3v-46.7zm-4.7 0-16.8 21.7s2.2 10.5 9 26.3c2.7-.6 5-1.1 7.8-1.3v-46.7z"/>
</g>
<g fill="#d52b1e">
<path fill="#fedf00" d="M322.3 175.5h52.6V228h-52.6z"/>
<path d="M329.7 175.5h7.8V228h-7.8zm15 0h7.8V228h-7.8zm15 0h7.9V228h-7.9z"/>
</g>
<g fill="#d52b1e" stroke="#d52b1e" stroke-width=".5">
<path fill="#fedf00" stroke="none" d="M264.3 273.5c.1 1 .5 2.6 1.4 4.3 1 1.5.6 1.4 2.7 3.8a15.3 15.3 0 0 0 4 2.9 32.7 32.7 0 0 0 15 2.6c2.7-.1 4.8-.4 6.6-.7a71 71 0 0 1 11-.6c1.5 0 3 .3 4.7.6 3.5.7 7 2 7 2v-54.7h-52.6V271l.2 2.4z"/>
<path stroke-width=".3" d="m270.4 283.1 2.5 1.5 3.4 1.2v-52.2h-5.9zm29.2 2.4v-51.9h-5.8v52.8l5.8-.7zm11.7-51.9h-5.8v52.1c1.9.2 3.8.6 5.8 1v-53zm-23.4 0V287s-3.8.2-5.8 0v-53.4z"/>
</g>
<g transform="matrix(.64 0 0 .64 0 16)">
<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.5l-.3 3.8z"/>
<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.8z"/>
<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.2h-.1z"/>
<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.8-.9.6zm3.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 3l-.7.5zm5 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.8zm-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.8zm-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=".5" d="M264.1 175.5h52.6V228h-52.6zm58.2 0h52.6V228h-52.6zm-58 98c.1 1 .5 2.6 1.4 4.3 1 1.5.6 1.4 2.7 3.8a15.3 15.3 0 0 0 4 2.9 32.7 32.7 0 0 0 15 2.6c2.7-.1 4.8-.4 6.6-.7a71 71 0 0 1 11-.6c1.5 0 3 .3 4.7.6 3.5.7 7 2 7 2v-54.7h-52.6V271l.2 2.4zm110.4 0a13 13 0 0 1-1.4 4.3c-1 1.5-.6 1.4-2.7 3.8a15.4 15.4 0 0 1-4 2.9c-1.3.7-2.3 1-4.4 1.6a32.6 32.6 0 0 1-10.6 1c-2.7-.1-4.8-.5-6.5-.7a71 71 0 0 0-7.2-.6 40.5 40.5 0 0 0-3.9 0c-1.5 0-3 .3-4.7.6-3.5.7-7 2-7 2v-54.8H375v37.5l-.2 2.4z"/>
</svg>

After

Width:  |  Height:  |  Size: 33 KiB

View File

@@ -0,0 +1,6 @@
<svg xmlns="http://www.w3.org/2000/svg" id="flag-icons-ae" viewBox="0 0 640 480">
<path fill="#00732f" d="M0 0h640v160H0z"/>
<path fill="#fff" d="M0 160h640v160H0z"/>
<path d="M0 320h640v160H0z"/>
<path fill="red" d="M0 0h220v480H0z"/>
</svg>

After

Width:  |  Height:  |  Size: 251 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 640 480">
<g fill-rule="evenodd" stroke-width="1pt">
<path d="M0 0h640v480H0z"/>
<path fill="#090" d="M426.7 0H640v480H426.7z"/>
<path fill="#bf0000" d="M213.3 0h213.4v480H213.3z"/>
</g>
<g fill="#fff" fill-rule="evenodd" stroke="#bd6b00" stroke-width=".5" transform="translate(1 27.3) scale(1.06346)">
<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.1h-15z"/>
<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.4l-7.5 6.1z"/>
<path d="m296.4 219.7 1.5 4.6h3.5l-2.8-4.6h-2.2zm-2 4.6 1 4.6h4l-1.5-4.6h-3.5zm7 0 2.8 4.6h5.9l-4.6-4.6h-4.1zm-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.8v14.4zm25.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.5-.1 14.4z"/>
<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.6l-6.3-10z"/>
<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 .6-17.7-30z"/>
<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-.1zm.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-.2zm.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.8z"/>
<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.6l1.2 2.4zm9.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-.1v6.7zm0 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-4zm3 .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-.5l-.3-2zm10.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-.6l.1-2.1z"/>
</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.5zm-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.9h-11zm3.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.6zm9.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.8zm12.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-.3zm-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.8zm-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.5zm15.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-1zm5 .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.8zm-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-1zm16.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.3z"/>
<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.2z"/>
<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.5zm8.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.3z"/>
<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.4z"/>
<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.6zm-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 7zm-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 0zm3.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.1zm-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.3zm4.1-8.4s.8 2.5 1.4 1.4c.4-.7-1.4-1.4-1.4-1.4zm1.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-.6zm2.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.6zm5.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.7zm77.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-17zm-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-.8z"/>
<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.6zm-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.7z"/>
<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-.1z"/>
<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.8-1.5-5.6z"/>
</g>
</g>
<path fill="#fff" d="m311.3 295-.3 2.6h-.4l-.1-1.8a9.3 9.3 0 0 0-.5-1.6 7.3 7.3 0 0 0-.5-1.3l-1-1.4.8-2.2a6.6 6.6 0 0 1 1.5 2.4 9.4 9.4 0 0 1 .5 3.2m7-4.2c0 .7-.2 1.2-.5 1.5-.2.3-.6.6-1.3.7l.4 1.5a6.7 6.7 0 0 1 0 2 22.5 22.5 0 0 1-.1 1.3h-.4a8.2 8.2 0 0 0-.1-1.3 5.5 5.5 0 0 0-.2-1l-.4-1a10.5 10.5 0 0 0-.7-1.4l-1-1.7.6-2 1 1c.3.2.6.3 1 .3.8 0 1.2-.4 1.2-1.3h.4v1.4m6.4 4.8-.5 2.1c-.4 0-.6-.3-.8-.7l-.4-1.3a12.4 12.4 0 0 1-.1-1.7 4 4 0 0 1-1 .2 2 2 0 0 1-1.3-.4 1.3 1.3 0 0 1-.5-1c0-.9.3-1.7.7-2.3.5-.7 1-1 1.5-1.1.5 0 .8.1 1 .4a2 2 0 0 1 .3.9v2c0 .9.1 1.5.3 1.9 0 .3.3.6.8 1m-2-3.5c0-.6-.3-.8-.8-.8a1 1 0 0 0-.6.1c-.2.1-.2.2-.2.3 0 .3.3.5 1 .5l.6-.1m8.7 3-.3 2.6c-.5-.4-1-1-1.4-2a25.4 25.4 0 0 1-1.3-4.1 52.8 52.8 0 0 1-1.8 5.5 2.9 2.9 0 0 1-.8.7v-2.5c.6-.7.9-1.1 1-1.5a7.6 7.6 0 0 0 .8-1.7l.5-2.7h.4l.9 2.7c.2.6.5 1.2.9 1.6l1 1.4"/>
<path fill="#bf0000" d="M350.8 319.4c.4.4.6.8.7 1.2l.4 1.6-.8.1a7.8 7.8 0 0 0-1-1.5 18.8 18.8 0 0 0-1.1-1.2 46 46 0 0 0-1.7-1.5 34.4 34.4 0 0 0-2-1.7c-.4-.2-.6-.4-.6-.5a1.9 1.9 0 0 1-.3-.8 11.2 11.2 0 0 1-.2-1.6l2.7 2.2a44.3 44.3 0 0 1 2.5 2.2l1.4 1.5m-9.5-5.8-.2 2H338l.3-2h3m8.4 8.9-7.6 2.3-1.3-2 6.5-2-.7-.8a2.8 2.8 0 0 0-.9-.6 1.4 1.4 0 0 1-.4 1 2 2 0 0 1-1 .6 3.4 3.4 0 0 1-1.8 0 2 2 0 0 1-1.3-.7 4 4 0 0 1-.7-2.2c0-1 .3-1.6.9-1.8.7-.2 1.8 0 3 .7a8.1 8.1 0 0 1 3 2.4l2.3 3.1m-5.8-4a3.8 3.8 0 0 0-.8-.3 1.1 1.1 0 0 0-.6 0 .7.7 0 0 0-.5.3.5.5 0 0 0 0 .6l.5.2h.6l.4-.3.4-.5m-8-1.6-.5 2-3.2-.3.5-2 3.1.3m7.5 7.7-1.7.4a5.3 5.3 0 0 1-1.7 0 3.6 3.6 0 0 1-1.5-.4c-.3.5-.8 1-1.5 1.2a7.4 7.4 0 0 1-1.6.6l-1.2.3-1-2 1.1-.3a9.1 9.1 0 0 0 1.3-.4l.9-.5-1-.5h-.7a.4.4 0 0 0-.2 0 .6.6 0 0 0-.2.3h-.5c-.5-.8-.6-1.5-.3-2s.9-.8 2-1a6.8 6.8 0 0 1 2.6-.2c.8.1 1.3.4 1.5.9.2.2.2.5.2.7l-.4 1.2h.5a2 2 0 0 0 .6 0l1.7-.3 1 2m-8 1.8-1.6.3a3 3 0 0 1-2.2-.4 5.5 5.5 0 0 1-1.7-2.6l-.8-2.2a2 2 0 0 0-.8-1 4.6 4.6 0 0 0-.9-.5l.6-2.1c.6.3 1 .6 1.4 1l1 1.7.5 1.5 1.1 2.2c.3.3.7.4 1 .3l1.7-.2.7 2m-7-7.5-1 1.9-3-.7 1-1.9 3 .7m1.8 8.4-7.5.7-.4-2 6.2-.7a2.3 2.3 0 0 0-.6-.8 8.3 8.3 0 0 0-1-.6l.5-2c.7.4 1.2.9 1.6 1.3.3.5.6 1.2.8 2.1l.4 2m-6 1a17 17 0 0 1-2.2-.2 10.5 10.5 0 0 1-1.7-.5 5.6 5.6 0 0 1-1.3.4 9.9 9.9 0 0 1-1.7 0h-2a2.5 2.5 0 0 1-1.2-.3c-.3-.2-.5-.5-.8-1a4.1 4.1 0 0 1-1.5 1l-1.7.1h-1.7l.2-2.1h1.7c.8 0 1.5 0 2.1-.4a2 2 0 0 0 1.3-1.8l.7.1a30.2 30.2 0 0 0-.1 1.3c0 .3 0 .5.3.7.3.2.6.3 1 .3h1.5c1 0 1.6 0 2-.2.6-.2.9-.5 1-1.1l.1-.4s.3 0 .5-.2l.5-.2v.4a8.9 8.9 0 0 1 0 .3l-.3 1.1a12.4 12.4 0 0 0 2 .5c.1-.2 0-.4-.1-.7l-.3-.6a.5.5 0 0 1 .1-.3l.3-.2 1-.9.5 1v1l-.2 2.9m-11.3-8.7-2 1.3-1.3-.9-1.4 1-1.9-1 1.8-1.3 1.5.8 1.5-1 1.8 1m-3 8.2-7.3-1.2.8-2 6.2 1c0-.4 0-.7-.2-1a5.2 5.2 0 0 0-.5-.8l1.6-1.7c.4.6.6 1 .7 1.6 0 .5-.2 1.2-.5 2.1l-.8 2m-6.1-1-1.6-.3c-.9-.2-1.4-.6-1.5-1.2-.2-.6.1-1.5.8-2.8l1.2-2c.3-.5.4-.9.3-1.2a2.2 2.2 0 0 0-.3-.7l2.2-1.6c.3.5.3 1 .3 1.4 0 .5-.3 1.1-.7 1.8l-.8 1.4a5.8 5.8 0 0 0-.9 2.2c0 .4.2.6.5.7l1.6.4-1.1 2m-3.8-8-2.5 1.1-1.8-1.7 2.6-1 1.7 1.7m-1 6.6a6.8 6.8 0 0 1-1.6 1.4 4.2 4.2 0 0 1-1.7.6l-2.4-.1a14.8 14.8 0 0 1-2.8-.7 7.7 7.7 0 0 1-3.4-2c-.6-.8-.6-1.5 0-2.2a7 7 0 0 1 2-1.6c.8-.5 2-1 3.8-1.6l.4.5-2.8 1.2c-.5.3-1 .6-1.3 1-.4.4-.3 1 .2 1.6a10.5 10.5 0 0 0 6.3 2.2c1.2 0 2-.3 2.3-.7.3-.3.4-.6.5-1l.2-1.6 2.5-1.5a8 8 0 0 1-.1 1.5 4.4 4.4 0 0 1-1 1.6l-1.2 1.4"/>
</svg>

After

Width:  |  Height:  |  Size: 21 KiB

View File

@@ -0,0 +1,14 @@
<svg xmlns="http://www.w3.org/2000/svg" id="flag-icons-ag" viewBox="0 0 640 480">
<defs>
<clipPath id="ag-a">
<path fill-opacity=".7" d="M-79.7 0H603v512H-79.7z"/>
</clipPath>
</defs>
<g fill-rule="evenodd" clip-path="url(#ag-a)" transform="translate(74.7) scale(.9375)">
<path fill="#fff" d="M-79.7 0H603v512H-79.7V0Z"/>
<path d="M-79.6 0H603v204.8H-79.7L-79.6 0Z"/>
<path fill="#0072c6" d="M21.3 203.2h480v112h-480v-112Z"/>
<path fill="#ce1126" d="M603 .1V512H261.6L603 0v.1ZM-79.7.1V512h341.3L-79.7 0v.1Z"/>
<path fill="#fcd116" d="M440.4 203.3 364 184l64.9-49-79.7 11.4 41-69.5-70.7 41L332.3 37l-47.9 63.8-19.3-74-21.7 76.3-47.8-65 13.7 83.2L138.5 78l41 69.5-77.4-12.5 63.8 47.8L86 203.3h354.3z"/>
</g>
</svg>

After

Width:  |  Height:  |  Size: 756 B

View File

@@ -0,0 +1,758 @@
<svg xmlns="http://www.w3.org/2000/svg" id="flag-icons-ai" viewBox="0 0 640 480">
<path fill="#012169" d="M0 0h640v480H0z"/>
<path fill="#49497d" d="m484.3 180.4 2 2z"/>
<path fill="#0e0e6e" d="m486.3 180.4 2 2z"/>
<path fill="#262678" d="m480.2 182.4 2 2z"/>
<path fill="#808067" d="m482.3 182.4 2 2z"/>
<path fill="#58587b" d="m488.3 182.4 2 2z"/>
<path fill="#0e0e6e" d="m413.2 184.5 2 2z"/>
<path fill="#1b1b74" d="m476.2 184.5 2 2z"/>
<path fill="#6e6c70" d="m478.2 184.5 2 2z"/>
<path fill="#cc3" d="M416.8 188c0 52.6-6 111.7 33 152.8 8 8.4 23.4 27.7 36.5 27 13.7-.8 31.4-21.1 39.2-31 34-44.8 28.7-98.2 29.8-150.2-15.3 6.9-23 9.2-36.4 9-10 1-25.3-5.5-34.5-10-6 4-14.7 8.9-30.4 9.4-18 .8-23.8-2.3-37.2-7z"/>
<path fill="#99994e" d="m490.4 184.5 2 2z"/>
<path fill="#49497d" d="m492.4 184.5 2 2z"/>
<path fill="#0e0e6e" d="m555.3 184.5 2 2z"/>
<path fill="#a4a43d" d="m415.3 186.5 2 2z"/>
<path fill="#6e6c70" d="m417.3 186.5 2 2z"/>
<path fill="#3a3a7c" d="m419.3 186.5 2 2z"/>
<path fill="#1b1b74" d="m472 186.5 2 2z"/>
<path fill="#6e6c70" d="m474 186.5 2 2z"/>
<path fill="#a4a43d" d="m476.2 186.5 2 2z"/>
<path fill="#d0d045" d="m484.3 186.5 2 2z"/>
<path fill="#a4a43d" d="m492.4 186.5 2 2z"/>
<path fill="#8d8d5b" d="m494.4 186.5 2 2z"/>
<path fill="#3a3a7c" d="m496.5 186.5 2 2z"/>
<path fill="#262678" d="m549.2 186.5 2 2z"/>
<path fill="#53527c" d="m551.3 186.5 2 2z"/>
<path fill="#8d8d5b" d="m553.3 186.5 2 2z"/>
<path fill="#737370" d="m423.4 188.6 2 2z"/>
<path fill="#53527c" d="m425.4 188.6 2 2z"/>
<path fill="#1b1b74" d="m427.4 188.6 2 2z"/>
<path fill="#262678" d="m468 188.6 2 2z"/>
<path fill="#6e6c70" d="m470 188.6 2 2z"/>
<path fill="#a4a43d" d="m472 188.6 2 2z"/>
<path fill="#e5e59d" d="m482.3 188.6 2 2z"/>
<path fill="#fff" d="M420.9 193.8c-1 27.6-.2 58.6 4 88 4.9 15.5 4.2 24 11.3 33.2l99-.8c6-9.7 10.5-24.4 11-30.3 5.6-29.7 5.7-62.6 5.9-92a62 62 0 0 1-35.7 7.4 69 69 0 0 1-30.5-9.2c-9.5 5.6-12.8 8.2-28.4 8.9-12.2.6-22 1.6-36.6-5.2z"/>
<path fill="#f2f1d7" d="m486.3 188.6 2 2z"/>
<path fill="#d9d868" d="m488.3 188.6 2 2z"/>
<path fill="#a4a43d" d="m496.5 188.6 2 2z"/>
<path fill="#99994e" d="m498.5 188.6 2 2z"/>
<path fill="#49497d" d="m500.5 188.6 2 2z"/>
<path fill="#0e0e6e" d="m502.5 188.6 2 2z"/>
<path fill="#3a3a7c" d="m543.2 188.6 2 2z"/>
<path fill="#667" d="m545.2 188.6 2 2z"/>
<path fill="#99994e" d="m547.2 188.6 2 2z"/>
<path fill="#a4a43d" d="m549.2 188.6 2 2-2-2m-121.8 2 2 2z"/>
<path fill="#99994e" d="m429.5 190.6 2 2z"/>
<path fill="#6e6c70" d="m431.5 190.6 2 2z"/>
<path fill="#49497d" d="m433.5 190.6 2 2z"/>
<path fill="#1b1b74" d="m435.5 190.6 2 2-2-2m26.4 0 2 2z"/>
<path fill="#53527c" d="m463.9 190.6 2 2-2-2z"/>
<path fill="#8d8d5b" d="m466 190.6 2 2z"/>
<path fill="#a4a43d" d="m468 190.6 2 2z"/>
<path fill="#e5e59d" d="m478.2 190.6 2 2z"/>
<path fill="#fbfaf2" d="m480.2 190.6 2 2z"/>
<path fill="#f2f1d2" d="m490.4 190.6 2 2z"/>
<path fill="#d9d868" d="m492.4 190.6 2 2z"/>
<path fill="#a4a43d" d="m502.5 190.6 2 2z"/>
<path fill="#6e6c70" d="m504.6 190.6 2 2z"/>
<path fill="#3a3a7c" d="m506.6 190.6 2 2z"/>
<path fill="#0e0e6e" d="m533 190.6 2 2z"/>
<path fill="#32327b" d="m535 190.6 2 2z"/>
<path fill="#58587b" d="m537 190.6 2 2z"/>
<path fill="#808067" d="m539 190.6 2 2z"/>
<path fill="#a4a43d" d="m542.5 191.2 1.3.7z"/>
<path fill="#dddc7a" d="m419.3 192.6 2 2z"/>
<path fill="#d0d045" d="m421.3 192.6 2 2z"/>
<path fill="#a4a43d" d="m436.9 193.2 1.4.7z"/>
<path fill="#808067" d="m439.6 192.6 2 2z"/>
<path fill="#667" d="m441.6 192.6 2 2z"/>
<path fill="#58587b" d="m443.7 192.6 2 2z"/>
<path fill="#49497d" d="m445.7 192.6 2 2z"/>
<path fill="#737370" d="m457.9 192.6 2 2z"/>
<path fill="#99994e" d="m459.9 192.6 2 2z"/>
<path fill="#a4a43d" d="m461.9 192.6 2 2z"/>
<path fill="#e5e59d" d="m474 192.6 2 2z"/>
<path fill="#fbfaf2" d="m476.2 192.6 2 2z"/>
<path fill="#f2f1d2" d="m494.4 192.6 2 2z"/>
<path fill="#d9d868" d="m496.5 192.6 2 2z"/>
<path fill="#a4a43d" d="m507.9 193.2 1.4.7-1.3-.7z"/>
<path fill="#808067" d="m510.7 192.6 2 2z"/>
<path fill="#667" d="m512.7 192.6 2 2z"/>
<path fill="#58587b" d="m514.7 192.6 2 2z"/>
<path fill="#3a3a7c" d="m516.8 192.6 2 2z"/>
<path fill="#58587b" d="m526.2 193.2 1.4.7z"/>
<path fill="#737370" d="m528.9 192.6 2 2z"/>
<path fill="#99994e" d="m530.9 192.6 2 2-2-2z"/>
<path fill="#a4a43d" d="m533 192.6 2 2z"/>
<path fill="#dddc7a" d="m549.2 192.6 2 2z"/>
<path fill="#d0d045" d="m551.3 192.6 2 2z"/>
<path fill="#f2f1d7" d="m423.4 194.6 2 2z"/>
<path fill="#e0dea1" d="m425.4 194.6 2 2z"/>
<path fill="#dddc7a" d="m427.4 194.6 2 2z"/>
<path fill="#d9d868" d="m468 194.6 2 2z"/>
<path fill="#e5e3af" d="m470 194.6 2 2z"/>
<path fill="#f6f6e4" d="m498.5 194.6 2 2z"/>
<path fill="#e1e18c" d="m500.5 194.6 2 2z"/>
<path fill="#d4d456" d="m541 194.6 2 2z"/>
<path fill="#e1e18c" d="m543.2 194.6 2 2z"/>
<path fill="#eeedc1" d="m545.2 194.6 2 2z"/>
<path fill="#f2f1d2" d="m431.5 196.6 2 2z"/>
<path fill="#e0dea1" d="m433.5 196.6 2 2z"/>
<path fill="#dddc7a" d="m435.5 196.6 2 2z"/>
<path fill="#d0d045" d="m437.6 196.6 2 2z"/>
<path fill="#dddc7a" d="m461.9 196.6 2 2z"/>
<path fill="#e5e3af" d="m463.9 196.6 2 2-2-2z"/>
<path fill="#f6f6e4" d="m466 196.6 2 2z"/>
<path fill="#eeedc1" d="m504.6 196.6 2 2z"/>
<path fill="#e1e18c" d="m506.6 196.6 2 2z"/>
<path fill="#d4d456" d="m508.6 196.6 2 2z"/>
<path fill="#d9d868" d="m533 196.6 2 2z"/>
<path fill="#e1e18c" d="m535 196.6 2 2z"/>
<path fill="#eeedc1" d="m537 196.6 2 2z"/>
<path fill="#f6f6e4" d="m539 196.6 2 2z"/>
<path fill="#f2f1d7" d="m441.6 198.6 2 2-2-2z"/>
<path fill="#f2f1d2" d="m443.7 198.6 2 2-2-2z"/>
<path fill="#eeedc1" d="m445.7 198.6 2 2-2-2z"/>
<path fill="#f2f1d2" d="m455.2 199.3 1.3.7z"/>
<path fill="#fbfaf2" d="m457.9 198.6 2 2-2-2z"/>
<path fill="#fef8f1" d="m468 198.6 4 4v-4h-4z"/>
<path fill="#f2f1d7" d="m512.7 198.6 2 2-2-2z"/>
<path fill="#f2f1d2" d="m514.7 198.6 2 2-2-2z"/>
<path fill="#e5e3af" d="m516.8 198.6 2 2-2-2z"/>
<path fill="#e5e59d" d="m520.2 199.3 1.3.7-1.4-.7z"/>
<path fill="#e0dea1" d="m522.9 198.6 2 2-2-2z"/>
<path fill="#f2f1d2" d="m526.2 199.3 1.4.7z"/>
<path fill="#fbfaf2" d="m528.9 198.6 2 2-2-2z"/>
<path fill="#fef8f1" d="m463.9 200.7 2 2-2-2z"/>
<path fill="#fbbe66" d="m466 200.7 2 2z"/>
<path fill="#fbc477" d="m463.9 202.7 2 2-2-2z"/>
<path fill="#fcb144" d="m468 202.7 2 2z"/>
<path fill="#fe9f11" d="m463.9 204.8 2 2-2-2z"/>
<path fill="#fea522" d="m468 204.8 2 2z"/>
<path fill="#fae3c9" d="m461.9 206.8 2 2-2-2m8.2 0 2 2z"/>
<path fill="#fbead6" d="m480.2 206.8 2 2z"/>
<path fill="#f9d6aa" d="m482.3 206.8 2 2z"/>
<path fill="#fae3c9" d="m490.4 206.8 2 2z"/>
<path fill="#fef8f1" d="m492.4 206.8 2 2z"/>
<path fill="#f9d099" d="m461.9 208.8 2 2z"/>
<path fill="#fdab33" d="m470 208.8 2 2z"/>
<path fill="#fcf1e4" d="m474 208.8 2 2z"/>
<path fill="#fbc477" d="m476.2 208.8 2 2z"/>
<path fill="#fea522" d="m478.2 208.8 2 2z"/>
<path fill="#fcb755" d="m494.4 208.8 2 2z"/>
<path fill="#f9d6aa" d="m496.5 208.8 2 2z"/>
<path fill="#faca88" d="m461.9 210.9 2 2z"/>
<path fill="#fea522" d="m472 210.9 2 2-2-2m26.5 0 2 2z"/>
<path fill="#f8dcbb" d="m500.5 210.9 2 2z"/>
<path fill="#f6f6e4" d="m419.3 212.9 2 2z"/>
<path fill="#fbc477" d="m461.9 212.9 2 2z"/>
<path fill="#fbbe66" d="m502.5 212.9 2 2z"/>
<path fill="#f8dcbb" d="m504.6 212.9 2 2z"/>
<path fill="#faca88" d="m461.9 214.9 2 2z"/>
<path fill="#fcb755" d="m508.6 214.9 2 2z"/>
<path fill="#f8dcbb" d="m510.7 214.9 2 2z"/>
<path fill="#fef8f1" d="m459.9 217 2 2z"/>
<path fill="#fe9f11" d="m461.9 217 2 2z"/>
<path fill="#fdab33" d="m518.8 217 2 2z"/>
<path fill="#fcb144" d="m520.9 217 2 2z"/>
<path fill="#fbc477" d="m522.9 217 2 2z"/>
<path fill="#f9d6aa" d="m524.9 217 4 4z"/>
<path fill="#fef8f1" d="m526.9 217 2 2z"/>
<path fill="#fcb144" d="m459.9 219 2 2z"/>
<path fill="#fdab33" d="m488.3 219 2 2z"/>
<path fill="#fbc477" d="m490.4 219 2 2zm8 0 2 2-2-2z"/>
<path fill="#fea522" d="m500.5 219 2 2z"/>
<path fill="#fae3c9" d="m457.9 221 2 2z"/>
<path fill="#fcb144" d="m484.3 221 2 2z"/>
<path fill="#fae3c9" d="m486.3 221 2 2z"/>
<path fill="#f8dcbb" d="m502.5 221 2 2z"/>
<path fill="#fdab33" d="m504.6 221 2 2z"/>
<path fill="#fe9f11" d="m516.8 221 2 2z"/>
<path fill="#fcb755" d="m518.8 221 2 2z"/>
<path fill="#f9d099" d="m520.9 221 2 2z"/>
<path fill="#fbead6" d="m522.9 221 2 2z"/>
<path fill="#fcb144" d="m457.9 223 2 2z"/>
<path fill="#fbbe66" d="m482.3 223 2 2z"/>
<path fill="#f9d099" d="m506.6 223 2 2z"/>
<path fill="#fbead6" d="m514.7 223 2 2z"/>
<path fill="#fcf1e4" d="m455.9 225 2 2z"/>
<path fill="#fbbe66" d="m480.2 225 2 2z"/>
<path fill="#f9d099" d="m508.6 225 2 2z"/>
<path fill="#fae3c9" d="m514.7 225 2 2z"/>
<path fill="#fbc477" d="m455.9 227 2 2z"/>
<path fill="#fcb144" d="m478.2 227 2 2-2-2m32.5 0 2 2z"/>
<path fill="#fbbe66" d="m514.7 227 2 2z"/>
<path fill="#f6f6e4" d="m419.3 229 2 2z"/>
<path fill="#fea522" d="m455.9 229 2 2z"/>
<path fill="#fbead6" d="m478.2 229 2 2z"/>
<path fill="#fcf1e4" d="m510.7 229 2 2z"/>
<path fill="#fef8f1" d="m516.8 229 2 2z"/>
<path fill="#fcf1e4" d="m453.9 231.2 2 2z"/>
<path fill="#fbbe66" d="m476.2 231.2 2 2z"/>
<path fill="#faca88" d="m512.7 231.2 2 2z"/>
<path fill="#f9d099" d="m516.8 231.2 2 2z"/>
<path fill="#f9d6aa" d="m453.9 233.2 2 2z"/>
<path fill="#fcf1e4" d="m476.2 233.2 2 2z"/>
<path fill="#fae3c9" d="m486.3 233.2 2 2z"/>
<path fill="#fea522" d="m488.3 233.2 2 2z"/>
<path fill="#fcb144" d="m490.4 233.2 2 2z"/>
<path fill="#f9d6aa" d="m492.4 233.2 2 2z"/>
<path fill="#fef8f1" d="m512.7 233.2 2 2z"/>
<path fill="#fea522" d="m514.7 233.2 2 2z"/>
<path fill="#fdab33" d="m516.8 233.2 2 2z"/>
<path fill="#faca88" d="m453.9 235.2-2.1 6 2-6z"/>
<path fill="#fea522" d="m474 235.2 2 2z"/>
<path fill="#fef8f1" d="m476.2 235.2 2 2z"/>
<path fill="#f9d099" d="m486.3 235.2 2 2z"/>
<path fill="#fdab33" d="m494.4 235.2 2 2z"/>
<path fill="#fae3c9" d="m496.5 235.2 2 2z"/>
<path fill="#f8dcbb" d="m514.7 235.2 2 2z"/>
<path fill="#f90" d="m516.8 235.2 2 2z"/>
<path fill="#fbead6" d="m519.5 236.6.6 1.3z"/>
<path fill="#fea522" d="m478.2 237.2 2 2z"/>
<path fill="#fbbe66" d="m480.2 237.2 2 2z"/>
<path fill="#faca88" d="m482.3 237.2 2 2z"/>
<path fill="#fcb144" d="m484.3 237.2 2 2z"/>
<path fill="#fae3c9" d="m486.3 237.2 2 2z"/>
<path fill="#fe9f11" d="m488.3 237.2 2 2z"/>
<path fill="#fdab33" d="m498.5 237.2 2 2z"/>
<path fill="#fbc477" d="m500.5 237.2 2 2z"/>
<path fill="#faca88" d="m502.5 237.2 2 2z"/>
<path fill="#f9d6aa" d="m504.6 237.2 2 2z"/>
<path fill="#fae3c9" d="m507.9 237.9 1.4.7-1.3-.7z"/>
<path fill="#fef8f1" d="m510.7 237.2 2 2z"/>
<path fill="#fbc477" d="m516.8 237.2 2 2z"/>
<path fill="#fef8f1" d="m429.5 239.3 2 2z"/>
<path fill="#fcf1e4" d="m431.5 239.3 2 2z"/>
<path fill="#fcb755" d="m484.3 239.3 2 2z"/>
<path fill="#fbead6" d="m488.3 239.3 2 2z"/>
<path fill="#fea522" d="m490.4 239.3 2 2z"/>
<path fill="#fe9f11" d="m506.6 239.3 2 2z"/>
<path fill="#fcb144" d="m508.6 239.3-2 4z"/>
<path fill="#fe9f11" d="m512.7 239.3 2 2z"/>
<path fill="#fbbe66" d="m514.7 239.3 2 2z"/>
<path fill="#fcf1e4" d="m516.8 239.3 2 2z"/>
<path fill="#fae3c9" d="m429.5 241.3 2 2z"/>
<path fill="#fe9f11" d="m431.5 241.3 4 4z"/>
<path fill="#fbead6" d="m433.5 241.3 2 2zm18.3 0 2 2z"/>
<path fill="#fae3c9" d="m453.9 241.3 2 2z"/>
<path fill="#fe9f11" d="m472 241.3 2 2z"/>
<path fill="#fbc477" d="m474 241.3 2 2z"/>
<path fill="#fea522" d="m476.2 241.3 2 2z"/>
<path fill="#fbc477" d="m482.3 241.3 2 2z"/>
<path fill="#fef8f1" d="m484.3 241.3 2 2z"/>
<path fill="#fbc477" d="m492.4 241.3 2 2z"/>
<path fill="#fff" d="m508.6 241.3 2 2z"/>
<path fill="#fdab33" d="m510.7 241.3 2 2z"/>
<path fill="#fbc477" d="m518.8 241.3 2 2z"/>
<path fill="#fef8f1" d="m429.5 243.3 2 2z"/>
<path fill="#fbead6" d="m435.5 243.3 2 2z"/>
<path fill="#f9d6aa" d="m445.7 243.3 2 2z"/>
<path fill="#fe9f11" d="m455.9 243.3 2 2z"/>
<path fill="#f9d6aa" d="m459.2 244 1.4.7z"/>
<path fill="#f8dcbb" d="m472 243.3 2 2z"/>
<path fill="#fcf1e4" d="m478.2 243.3 2 2z"/>
<path fill="#f9d6aa" d="m494.4 243.3 2 2z"/>
<path fill="#fdab33" d="m508.6 243.3 2 2z"/>
<path fill="#fcb755" d="m520.9 243.3 2 2z"/>
<path fill="#fef8f1" d="m522.9 243.3 2 2z"/>
<path fill="#53527c" d="m413.2 245.4 2 2z"/>
<path fill="#fcb755" d="m431.5 245.4 2 2z"/>
<path fill="#fea522" d="m435.5 245.4 2 2z"/>
<path fill="#fbead6" d="m443.7 245.4 2 2z"/>
<path fill="#fe9f11" d="m447.7 245.4 2 2z"/>
<path fill="#fcf1e4" d="m449.8 245.4 2 2z"/>
<path fill="#fbbe66" d="m455.9 245.4 2 2z"/>
<path fill="#fbc477" d="m457.9 245.4 2 2z"/>
<path fill="#fbbe66" d="m459.9 245.4 2 2z"/>
<path fill="#fea522" d="m470 245.4 2 2z"/>
<path fill="#f9d6aa" d="m496.5 245.4 2 2z"/>
<path fill="#fcb144" d="m522.9 245.4 2 2z"/>
<path fill="#8d8d5b" d="m555.3 245.4 2 2z"/>
<path fill="#e5e3af" d="m419.3 247.4 2 2z"/>
<path fill="#f8dcbb" d="m431.5 247.4 2 2z"/>
<path fill="#fdab33" d="m437.6 247.4 2 2z"/>
<path fill="#fe9f11" d="m443.7 247.4 2 2z"/>
<path fill="#faca88" d="m447.7 247.4 2 2z"/>
<path fill="#fcf1e4" d="m455.9 247.4 2 2z"/>
<path fill="#f9d099" d="m470 247.4 2 2-2-2m28.5 0 2 2z"/>
<path fill="#fbbe66" d="m524.9 247.4 2 2z"/>
<path fill="#fea522" d="m433.5 249.4 2 2z"/>
<path fill="#fdab33" d="m439.6 249.4 2 2z"/>
<path fill="#fea522" d="m441.6 249.4 2 2z"/>
<path fill="#fe9f11" d="m445.7 249.4 2 2z"/>
<path fill="#fef8f1" d="m447.7 249.4 2 2z"/>
<path fill="#fbbe66" d="m457.9 249.4 2 2z"/>
<path fill="#fef8f1" d="m470 249.4 2 2z"/>
<path fill="#fbbe66" d="m500.5 249.4 2 2z"/>
<path fill="#f9d099" d="m526.9 249.4 2 2z"/>
<path fill="#f9d6aa" d="m433.5 251.5 2 2z"/>
<path fill="#f9d099" d="m445.7 251.5 2 2z"/>
<path fill="#fcf1e4" d="m457.9 251.5 2 2z"/>
<path fill="#fdab33" d="m468 251.5 2 2-2-2m34.5 0 2 2z"/>
<path fill="#fbead6" d="m528.9 251.5 2 2z"/>
<path fill="#fea522" d="m435.5 253.5 2 2z"/>
<path fill="#fe9f11" d="m443.7 253.5 2 2z"/>
<path fill="#fcb144" d="m459.9 253.5 2 2z"/>
<path fill="#faca88" d="m468 253.5 2 2z"/>
<path fill="#f8dcbb" d="m502.5 253.5 2 2z"/>
<path fill="#fcb144" d="m528.9 253.5 2 2z"/>
<path fill="#d3d079" d="m419.3 255.6 2 2z"/>
<path fill="#faca88" d="m435.5 255.6 2 2zm24.4 0 2 2z"/>
<path fill="#fae3c9" d="m468 255.6 2 2-2-2m34.5 0 2 2z"/>
<path fill="#f8dcbb" d="m530.9 255.6 2 2-2-2z"/>
<path fill="#f2f1d7" d="m549.2 255.6 2 2z"/>
<path fill="#58587b" d="m556 256.9.7 1.3z"/>
<path fill="#d9d868" d="m419.9 258.9.8 1.4-.7-1.4z"/>
<path fill="#f8dcbb" d="m435.5 257.6 2 2z"/>
<path fill="#f9d6aa" d="m500.5 257.6 2 2z"/>
<path fill="#fe9f11" d="m502.5 257.6 2 2z"/>
<path fill="#fcb144" d="m530.9 257.6 2 2-2-2z"/>
<path fill="#f2f1d2" d="m549.9 258.9.7 1.4z"/>
<path fill="#fcf1e4" d="m435.5 259.6 2 2z"/>
<path fill="#fef8f1" d="m498.5 259.6 2 2z"/>
<path fill="#fe9f11" d="m500.5 259.6 2 2z"/>
<path fill="#fdab33" d="m506.6 259.6-2 4z"/>
<path fill="#fcb755" d="m508.6 259.6 2 2z"/>
<path fill="#fea522" d="m533 259.6 2 2z"/>
<path fill="#f9d099" d="m535 259.6 2 2z"/>
<path fill="#53527c" d="m555.3 259.6 2 2z"/>
<path fill="#808067" d="m415.9 263 .7 1.3z"/>
<path fill="#fea522" d="m437.6 261.6 2 2-2-2m6 0 2 2-2-2z"/>
<path fill="#fe9f11" d="m466 261.6 2 2z"/>
<path fill="#fae3c9" d="m498.5 261.6 2 2z"/>
<path fill="#fef8f1" d="m506.6 261.6 2 2z"/>
<path fill="#fcb144" d="m510.7 261.6 2 2z"/>
<path fill="#fcb755" d="m537 261.6 2 2z"/>
<path fill="#fef8f1" d="m539 261.6 4 4z"/>
<path fill="#e5e59d" d="m549.9 263 .7 1.3z"/>
<path fill="#32327b" d="m556 263 .7 1.3z"/>
<path fill="#fcb755" d="m438.3 265 .6 1.4z"/>
<path fill="#fef8f1" d="m445.7 263.6 2 2z"/>
<path fill="#fbbe66" d="m466 263.6 2 2z"/>
<path fill="#fbead6" d="m498.5 263.6 2 2z"/>
<path fill="#fe9f11" d="m502.5 263.6 2 2z"/>
<path fill="#fcf1e4" d="m504.6 263.6 2 2z"/>
<path fill="#fbead6" d="m510.7 263.6 2 2z"/>
<path fill="#fdab33" d="m539 263.6 2 2z"/>
<path fill="#667" d="m415.3 265.6 2 2-2-2z"/>
<path fill="#f6f6e4" d="m421.3 265.6 2 2-2-2z"/>
<path fill="#f9d6aa" d="m445.7 265.6 2 2-2-2z"/>
<path fill="#fdab33" d="m461.9 265.6 2 2-2-2z"/>
<path fill="#fe9f11" d="m463.9 265.6 2 2-2-2z"/>
<path fill="#fcf1e4" d="m466 265.6 2 2-2-2z"/>
<path fill="#fea522" d="m500.5 265.6 2 2-2-2z"/>
<path fill="#faca88" d="m502.5 265.6 2 2-2-2m10.2 0 2 2z"/>
<path fill="#fcb144" d="m541 265.6 2 2-2-2z"/>
<path fill="#dddc7a" d="m549.2 265.6 2 2-2-2z"/>
<path fill="#58587b" d="m415.3 267.7 2 2z"/>
<path fill="#f2f1d2" d="m421.3 267.7 2 2z"/>
<path fill="#fcb144" d="m438.3 269 .6 1.4z"/>
<path fill="#fea522" d="m445.7 267.7 2 2z"/>
<path fill="#fef8f1" d="m466 267.7 2 2z"/>
<path fill="#fea522" d="m468 267.7 2 2z"/>
<path fill="#fcb144" d="m472 267.7 2 2z"/>
<path fill="#fbead6" d="m474 267.7 2 2z"/>
<path fill="#f8dcbb" d="m500.5 267.7 2 2z"/>
<path fill="#fcf1e4" d="m502.5 267.7 2 2z"/>
<path fill="#fef8f1" d="m512.7 267.7 2 2z"/>
<path fill="#fe9f11" d="m514.7 267.7 2 2z"/>
<path fill="#fbead6" d="m543.2 267.7 2 2z"/>
<path fill="#d9d868" d="m549.2 267.7 2 2z"/>
<path fill="#3a3a7c" d="m415.3 269.7 2 2z"/>
<path fill="#e5e3af" d="m421.3 269.7 2 2z"/>
<path fill="#faca88" d="m447.7 269.7 2 2z"/>
<path fill="#fbead6" d="m468 269.7 2 2z"/>
<path fill="#fe9f11" d="m474 269.7 2 2z"/>
<path fill="#fcf1e4" d="m476.2 269.7 2 2z"/>
<path fill="#fbead6" d="m498.5 269.7 2 2z"/>
<path fill="#fae3c9" d="m500.5 269.7 2 2z"/>
<path fill="#fbead6" d="m502.5 269.7 2 2z"/>
<path fill="#fbbe66" d="m514.7 269.7 2 2-2-2m16.3 0 2 2z"/>
<path fill="#fcf1e4" d="m533 269.7 2 2z"/>
<path fill="#fef8f1" d="m535 269.7 2 2z"/>
<path fill="#f8dcbb" d="m537 269.7 2 2z"/>
<path fill="#fcb755" d="m539 269.7 2 2z"/>
<path fill="#fae3c9" d="m543.2 269.7 2 2z"/>
<path fill="#808067" d="m553.3 269.7 2 2z"/>
<path fill="#32327b" d="m415.3 271.8 2 2z"/>
<path fill="#a4a43d" d="m417.9 273 .7 1.5-.6-1.4z"/>
<path fill="#e5e59d" d="m421.3 271.8 2 2z"/>
<path fill="#fbc477" d="m437.6 271.8 2 2z"/>
<path fill="#f9d6aa" d="m449.8 271.8 2 2z"/>
<path fill="#fbbe66" d="m470 271.8 2 2z"/>
<path fill="#f9d099" d="m476.2 271.8 2 2z"/>
<path fill="#fae3c9" d="m494.4 271.8 2 2z"/>
<path fill="#fcb144" d="m496.5 271.8 2 2z"/>
<path fill="#fae3c9" d="m504.6 271.8 2 2z"/>
<path fill="#f8dcbb" d="m514.7 271.8 2 2z"/>
<path fill="#f9d099" d="m530.9 271.8 2 2-2-2z"/>
<path fill="#fbc477" d="m541 271.8 2 2z"/>
<path fill="#fbead6" d="m543.2 271.8 2 2z"/>
<path fill="#737370" d="m553.3 271.8 2 2z"/>
<path fill="#d9d868" d="m421.3 273.8 2 2z"/>
<path fill="#f9d099" d="m437.6 273.8 2 2z"/>
<path fill="#f9d6aa" d="m451.8 273.8 2 2-2-2m18.3 0 2 2z"/>
<path fill="#fbc477" d="m476.2 273.8 2 2z"/>
<path fill="#fef8f1" d="m486.3 273.8 2 2z"/>
<path fill="#f8dcbb" d="m488.3 273.8 2 2z"/>
<path fill="#fbc477" d="m490.4 273.8 2 2z"/>
<path fill="#fea522" d="m492.4 273.8 2 2z"/>
<path fill="#fbead6" d="m504.6 273.8 2 2z"/>
<path fill="#f2f1d2" d="m547.2 273.8 2 2z"/>
<path fill="#58587b" d="m553.3 273.8 2 2z"/>
<path fill="#99994e" d="m417.3 275.8 2 2z"/>
<path fill="#d0d045" d="m421.3 275.8 2 2z"/>
<path fill="#fcb144" d="m453.9 275.8 2 2z"/>
<path fill="#fae3c9" d="m455.9 275.8 2 2z"/>
<path fill="#fef8f1" d="m470 275.8 2 2z"/>
<path fill="#fcb755" d="m478.2 275.8 2 2z"/>
<path fill="#fbc477" d="m480.2 275.8 2 2z"/>
<path fill="#fcb144" d="m482.3 275.8 2 2z"/>
<path fill="#fea522" d="m484.3 275.8 2 2z"/>
<path fill="#fe9f11" d="m500.5 275.8 2 2z"/>
<path fill="#f9d6aa" d="m502.5 275.8 2 2z"/>
<path fill="#fef8f1" d="m530.9 275.8 2 2-2-2z"/>
<path fill="#e0dea1" d="m547.2 275.8 2 2z"/>
<path fill="#3a3a7c" d="m553.3 275.8 2 2z"/>
<path fill="#737370" d="m417.3 277.9 2 2z"/>
<path fill="#fbfaf2" d="m423.4 277.9 2 2z"/>
<path fill="#fea522" d="m439.6 277.9 2 2z"/>
<path fill="#fe9f11" d="m457.9 277.9 2 2z"/>
<path fill="#fcb144" d="m459.9 277.9 2 2z"/>
<path fill="#fbc477" d="m461.9 277.9 2 2z"/>
<path fill="#faca88" d="m463.9 277.9 2 2-2-2z"/>
<path fill="#fbc477" d="m466 277.9 2 2z"/>
<path fill="#fcb144" d="m468 277.9 2 2z"/>
<path fill="#fdab33" d="m470 277.9 2 2z"/>
<path fill="#fbc477" d="m498.5 277.9 2 2z"/>
<path fill="#fef8f1" d="m500.5 277.9 2 2z"/>
<path fill="#fdab33" d="m528.9 277.9 2 2z"/>
<path fill="#e1e18c" d="m547.2 277.9 2 2z"/>
<path fill="#a4a43d" d="m551.9 279.2.7 1.4z"/>
<path fill="#262678" d="m553.3 277.9 2 2z"/>
<path fill="#58587b" d="m417.3 279.9 2 2z"/>
<path fill="#f2f1d2" d="m423.4 279.9 2 2z"/>
<path fill="#faca88" d="m439.6 279.9 2 2z"/>
<path fill="#fe9f11" d="m494.4 279.9 2 2z"/>
<path fill="#fbead6" d="m496.5 279.9 2 2z"/>
<path fill="#fbc477" d="m514.7 279.9 2 2z"/>
<path fill="#faca88" d="m528.9 279.9 2 2z"/>
<path fill="#d4d456" d="m547.2 279.9 2 2z"/>
<path fill="#32327b" d="m417.3 281.9 2 2z"/>
<path fill="#e5e59d" d="m423.4 281.9 2 2z"/>
<path fill="#fef8f1" d="m439.6 281.9 2 2z"/>
<path fill="#fe9f11" d="m441.6 281.9 2 2z"/>
<path fill="#fbead6" d="m494.4 281.9 2 2z"/>
<path fill="#fea522" d="m514.7 281.9 2 2z"/>
<path fill="#fcf1e4" d="m528.9 281.9 2 2z"/>
<path fill="#808067" d="m551.3 281.9 2 2z"/>
<path fill="#0e0e6e" d="m417.3 283.9 2 2z"/>
<path fill="#a4a43d" d="m419.3 283.9 2 2z"/>
<path fill="#d9d868" d="m423.4 283.9 2 2z"/>
<path fill="#f8dcbb" d="m441.6 283.9 2 2z"/>
<path fill="#f9d6aa" d="m512.7 283.9 2 2z"/>
<path fill="#faca88" d="m526.9 283.9 2 2z"/>
<path fill="#f2f1d2" d="m545.2 283.9 2 2z"/>
<path fill="#58587b" d="m551.3 283.9 2 2z"/>
<path fill="#8d8d5b" d="m419.3 286 2 2z"/>
<path fill="#f9d6aa" d="m443.7 286 2 2z"/>
<path fill="#fdab33" d="m484.3 286 2 2z"/>
<path fill="#fff" d="m486.3 286 2 2z"/>
<path fill="#fcb144" d="m489.7 286.6 1.4.7z"/>
<path fill="#fef8f1" d="m510.7 286-2 4z"/>
<path fill="#fe9f11" d="m512.7 286 2 2z"/>
<path fill="#fdab33" d="m524.9 286-2 4z"/>
<path fill="#e5e59d" d="m545.2 286 2 2z"/>
<path fill="#3a3a7c" d="m551.3 286 2 2z"/>
<path fill="#667" d="m419.3 288 2 2z"/>
<path fill="#f2f1d2" d="m425.4 288 2 2z"/>
<path fill="#f9d6aa" d="m445.7 288 2 2z"/>
<path fill="#fe9f11" d="m484.3 288 2 2z"/>
<path fill="#faca88" d="m486.3 288 2 2z"/>
<path fill="#fea522" d="m488.3 288 2 2z"/>
<path fill="#fcf1e4" d="m490.4 288 2 2z"/>
<path fill="#fdab33" d="m510.7 288 2 2z"/>
<path fill="#fef8f1" d="m524.9 288 2 2z"/>
<path fill="#d9d868" d="m545.2 288 2 2z"/>
<path fill="#a4a43d" d="m549.2 288 2 2z"/>
<path fill="#0e0e6e" d="m551.3 288 2 2z"/>
<path fill="#3a3a7c" d="m419.3 290 2 2z"/>
<path fill="#e5e59d" d="m425.4 290 2 2z"/>
<path fill="#fae3c9" d="m447.7 290 4 4z"/>
<path fill="#fe9f11" d="m449.8 290 2 2z"/>
<path fill="#f8dcbb" d="m488.3 290 2 2z"/>
<path fill="#fcf1e4" d="m506.6 290 2 2z"/>
<path fill="#fdab33" d="m508.6 290 2 2z"/>
<path fill="#fcb144" d="m520.9 290 2 2z"/>
<path fill="#fef8f1" d="m522.9 290 2 2z"/>
<path fill="#fbfaf2" d="m543.2 290 2 2z"/>
<path fill="#8d8d5b" d="m549.2 290 2 2z"/>
<path fill="#0e0e6e" d="m419.3 292 2 2z"/>
<path fill="#a4a43d" d="m421.3 292 2 2z"/>
<path fill="#d4d456" d="m425.4 292 2 2z"/>
<path fill="#f9d6aa" d="m486.3 292 2 2z"/>
<path fill="#f9d099" d="m504.6 292 2 2z"/>
<path fill="#fe9f11" d="m506.6 292 2 2z"/>
<path fill="#faca88" d="m518.8 292 2 2z"/>
<path fill="#eeedc1" d="m543.2 292 2 2z"/>
<path fill="#58587b" d="m549.2 292 2 2z"/>
<path fill="#737370" d="m421.3 294 2 2z"/>
<path fill="#f6f6e4" d="m427.4 294 2 2z"/>
<path fill="#fbbe66" d="m449.8 294 2 2z"/>
<path fill="#fcb144" d="m482.3 294 2 2z"/>
<path fill="#f8dcbb" d="m484.9 295.5.7 1.3z"/>
<path fill="#fbbe66" d="m500.5 294 2 2z"/>
<path fill="#fe9f11" d="m502.5 294 2 2z"/>
<path fill="#fbc477" d="m514.7 294 2 2z"/>
<path fill="#fcf1e4" d="m516.8 294 2 2z"/>
<path fill="#d3d079" d="m543.2 294 2 2z"/>
<path fill="#a4a43d" d="m547.2 294 2 2z"/>
<path fill="#262678" d="m549.2 294 2 2z"/>
<path fill="#49497d" d="m421.3 296 2 2z"/>
<path fill="#e0dea1" d="m427.4 296 2 2z"/>
<path fill="#fae3c9" d="m447.7 296 2 2z"/>
<path fill="#fdab33" d="m476.2 296 2 2z"/>
<path fill="#fbc477" d="m478.2 296 2 2z"/>
<path fill="#fbead6" d="m480.2 296 2 2z"/>
<path fill="#fcb144" d="m486.3 296 2 2z"/>
<path fill="#f9d6aa" d="m512.7 296 2 2z"/>
<path fill="#99994e" d="m547.2 296 2 2z"/>
<path fill="#0e0e6e" d="m421.3 298.2 2 2z"/>
<path fill="#a4a43d" d="m423.4 298.2 2 2z"/>
<path fill="#d4d456" d="m427.4 298.2 2 2z"/>
<path fill="#f9d099" d="m445.7 298.2 2 2z"/>
<path fill="#fe9f11" d="m447.7 298.2 2 2-2-2m10.2 0 2 2z"/>
<path fill="#f9d6aa" d="m459.9 298.2 2 2z"/>
<path fill="#f9d099" d="m461.9 298.2 2 2z"/>
<path fill="#f9d6aa" d="m470 298.2 2 2z"/>
<path fill="#fae3c9" d="m472 298.2 2 2z"/>
<path fill="#fef8f1" d="m474 298.2 2 2z"/>
<path fill="#fbead6" d="m490.4 298.2 2 2z"/>
<path fill="#fae3c9" d="m492.4 298.2 2 2z"/>
<path fill="#faca88" d="m494.4 298.2 2 2z"/>
<path fill="#fbc477" d="m496.5 298.2 2 2z"/>
<path fill="#fdab33" d="m498.5 298.2 2 2z"/>
<path fill="#fe9f11" d="m508.6 298.2 2 2z"/>
<path fill="#f9d6aa" d="m510.7 298.2 2 2z"/>
<path fill="#e5e3af" d="m541 298.2 2 2z"/>
<path fill="#667" d="m547.2 298.2 2 2z"/>
<path fill="#737370" d="m423.4 300.2 2 2z"/>
<path fill="#f2f1d7" d="m429.5 300.2 2 2z"/>
<path fill="#fea522" d="m443.7 300.2 2 2z"/>
<path fill="#fe9f11" d="m453.9 300.2 2 2z"/>
<path fill="#fbbe66" d="m455.9 300.2 2 2z"/>
<path fill="#fcf1e4" d="m457.9 300.2 2 2z"/>
<path fill="#fea522" d="m506.6 300.2 2 2z"/>
<path fill="#fbead6" d="m508.6 300.2 2 2z"/>
<path fill="#dddc7a" d="m541 300.2 2 2z"/>
<path fill="#a4a43d" d="m545.2 300.2 2 2z"/>
<path fill="#262678" d="m547.2 300.2 2 2z"/>
<path fill="#49497d" d="m423.4 302.2 2 2z"/>
<path fill="#a4a43d" d="m426 303.6.8 1.3z"/>
<path fill="#d3d079" d="m429.5 302.2 2 2z"/>
<path fill="#f9d099" d="m445.7 302.2 2 2z"/>
<path fill="#fcb144" d="m447.7 302.2 2 2z"/>
<path fill="#faca88" d="m449.8 302.2 2 2z"/>
<path fill="#f8dcbb" d="m451.8 302.2 2 2z"/>
<path fill="#fef8f1" d="m453.9 302.2 2 2z"/>
<path fill="#f8dcbb" d="m498.5 302.2 2 2z"/>
<path fill="#fcf1e4" d="m506.6 302.2 2 2z"/>
<path fill="#f6f6e4" d="m539 302.2 2 2z"/>
<path fill="#8d8d5b" d="m545.2 302.2 2 2z"/>
<path fill="#fbfaf2" d="m431.5 304.2 2 2z"/>
<path fill="#fbbe66" d="m498.5 304.2 2 2z"/>
<path fill="#faca88" d="m504.6 304.2 2 2z"/>
<path fill="#e1e18c" d="m539 304.2 2 2z"/>
<path fill="#49497d" d="m545.2 304.2 2 2z"/>
<path fill="#58587b" d="m425.4 306.3 2 2z"/>
<path fill="#e5e59d" d="m431.5 306.3 2 2z"/>
<path fill="#fe9f11" d="m498.5 306.3 2 2z"/>
<path fill="#fdab33" d="m502.5 306.3 2 2z"/>
<path fill="#fbfaf2" d="m537 306.3 2 2z"/>
<path fill="#a4a43d" d="m543.2 306.3 2 2z"/>
<path fill="#0e0e6e" d="m545.2 306.3 2 2z"/>
<path fill="#1b1b74" d="m425.4 308.3 2 2z"/>
<path fill="#a4a43d" d="m427.4 308.3 2 2z"/>
<path fill="#d0d045" d="m431.5 308.3 2 2z"/>
<path fill="#fbead6" d="m496.5 308.3 2 2z"/>
<path fill="#fe9f11" d="m500.5 308.3 2 2z"/>
<path fill="#fbead6" d="m502.5 308.3 2 2z"/>
<path fill="#e5e59d" d="m537 308.3 2 2z"/>
<path fill="#667" d="m543.2 308.3 2 2z"/>
<path fill="#6e6c70" d="m427.4 310.3 2 2z"/>
<path fill="#e5e3af" d="m433.5 310.3 2 2z"/>
<path fill="#faca88" d="m497 311.7.8 1.4z"/>
<path fill="#fae3c9" d="m500.5 310.3 2 2z"/>
<path fill="#fbfaf2" d="m535 310.3 2 2z"/>
<path fill="#a4a43d" d="m541 310.3 2 2z"/>
<path fill="#1b1b74" d="m543.2 310.3 2 2-2-2m-115.8 2 2 2z"/>
<path fill="#a4a43d" d="m429.5 312.4 2 2z"/>
<path fill="#d0d045" d="m433.5 312.4 2 2z"/>
<path fill="#fbfaf2" d="m435.5 312.4 2 2z"/>
<path fill="#f9d6aa" d="m498.5 312.4 2 2z"/>
<path fill="#e5e59d" d="m535 312.4 2 2z"/>
<path fill="#6e6c70" d="m541 312.4 2 2-2-2m-111.5 2 2 2z"/>
<path fill="#8cbf84" d="m435.5 314.4 2 2z"/>
<path fill="#0cf" d="M436.4 314.4c7 14.8 32 49.8 51 49.2 18.6-.7 39.5-35 47.6-49.2z"/>
<path fill="#a4a43d" d="m539 314.4 2 2z"/>
<path fill="#1b1b74" d="m541 314.4 2 2-2-2m-111.5 2 2 2z"/>
<path fill="#a4a43d" d="m431.5 316.4 2 2z"/>
<path fill="#adb333" d="m435.5 316.4 2 2z"/>
<path fill="#1ac5b5" d="m437.6 316.4 2 2z"/>
<path fill="#68b070" d="m533 316.4 2 2z"/>
<path fill="#667" d="m539 316.4 2 2z"/>
<path fill="#58587b" d="m431.5 318.5 2 2z"/>
<path fill="#7fb15c" d="m437.6 318.5 2 2z"/>
<path fill="#27c2aa" d="m530.9 318.5 2 2-2-2z"/>
<path fill="#a4a43d" d="m537 318.5-2 4z"/>
<path fill="#0e0e6e" d="m539 318.5 2 2-2-2m-107.5 2 2 2z"/>
<path fill="#a4a43d" d="m433.5 320.5 4 4z"/>
<path fill="#34be9e" d="m439.6 320.5 2 2z"/>
<path fill="#96b247" d="m530.9 320.5 2 2-2-2z"/>
<path fill="#53527c" d="m537 320.5 2 2z"/>
<path fill="#3a3a7c" d="m433.5 322.6 2 2z"/>
<path fill="#a2b23d" d="m439.6 322.6 2 2z"/>
<path fill="#0dc9c1" d="m441.6 322.6 2 2z"/>
<path fill="#5bb47c" d="m528.9 322.6 2 2z"/>
<path fill="#8d8d5b" d="m535 322.6 2 2z"/>
<path fill="#737370" d="m435.5 324.6 2 2z"/>
<path fill="#74b166" d="m441.6 324.6 2 2z"/>
<path fill="#27c2aa" d="m526.9 324.6 2 2z"/>
<path fill="#a4a43d" d="m533 324.6-2 4z"/>
<path fill="#262678" d="m535 324.6 2 2z"/>
<path fill="#0e0e6e" d="m435.5 326.6 2 2z"/>
<path fill="#a4a43d" d="m437.6 326.6 4 4z"/>
<path fill="#42bb92" d="m443.7 326.6 2 2z"/>
<path fill="#0dc9c1" d="m524.9 326.6 2 2z"/>
<path fill="#96b247" d="m526.9 326.6 2 2z"/>
<path fill="#58587b" d="m533 326.6 2 2z"/>
<path fill="#3a3a7c" d="m437.6 328.6 2 2z"/>
<path fill="#adb333" d="m443.7 328.6 2 2z"/>
<path fill="#27c2aa" d="m445.7 328.6 2 2z"/>
<path fill="#74b166" d="m524.9 328.6 2 2z"/>
<path fill="#8d8d5b" d="m530.9 328.6 2 2-2-2z"/>
<path fill="#6e6c70" d="m439.6 330.6 2 2z"/>
<path fill="#96b247" d="m445.7 330.6 2 2z"/>
<path fill="#0dc9c1" d="m447.7 330.6 2 2z"/>
<path fill="#42bb92" d="m522.9 330.6 2 2z"/>
<path fill="#a4a43d" d="m528.9 330.6-4 6 4-6z"/>
<path fill="#1b1b74" d="m530.9 330.6 2 2-2-2z"/>
<path fill="#0e0e6e" d="m439.6 332.6 2 2-2-2z"/>
<path fill="#8d8d5b" d="m441.6 332.6 2 2-2-2z"/>
<path fill="#7fb15c" d="m447.7 332.6 2 2-2-2z"/>
<path fill="#34be9e" d="m520.9 332.6 2 2-2-2z"/>
<path fill="#3a3a7c" d="m528.9 332.6 2 2-2-2z"/>
<path fill="#1b1b74" d="m441.6 334.7 2 2z"/>
<path fill="#a4a43d" d="M443.7 334.7 466 357z"/>
<path fill="#74b166" d="m449.8 334.7 2 2z"/>
<path fill="#27c2aa" d="m518.8 334.7 2 2z"/>
<path fill="#adb333" d="m520.9 334.7 2 2z"/>
<path fill="#667" d="m526.9 334.7 2 2z"/>
<path fill="#32327b" d="m443.7 336.7 2 2z"/>
<path fill="#42bb92" d="m451.8 336.7 2 2z"/>
<path fill="#0dc9c1" d="m516.8 336.7-8.2 10.2 8.3-10.3z"/>
<path fill="#adb333" d="m518.8 336.7 2 2z"/>
<path fill="#737370" d="m524.9 336.7 2 2z"/>
<path fill="#49497d" d="m445.7 338.8 2 2z"/>
<path fill="#42bb92" d="m453.9 338.8 2 2z"/>
<path fill="#96b247" d="m516.8 338.8 2 2z"/>
<path fill="#8d8d5b" d="m522.9 338.8-2 4z"/>
<path fill="#0e0e6e" d="m524.9 338.8 2 2z"/>
<path fill="#53527c" d="m447.7 340.8 2 2z"/>
<path fill="#42bb92" d="m455.9 340.8 2 2z"/>
<path fill="#96b247" d="m514.7 340.8 2 2z"/>
<path fill="#0e0e6e" d="m522.9 340.8 2 2z"/>
<path fill="#6e6c70" d="m449.8 342.8 2 2z"/>
<path fill="#42bb92" d="m457.9 342.8 2 2z"/>
<path fill="#96b247" d="m512.7 342.8 2 2z"/>
<path fill="#a4a43d" d="m518.8 342.8-4 6 4-6z"/>
<path fill="#262678" d="m520.9 342.8 2 2z"/>
<path fill="#6e6c70" d="m451.8 344.9 2 2z"/>
<path fill="#42bb92" d="m459.9 344.9 2 2z"/>
<path fill="#96b247" d="m510.7 344.9 2 2z"/>
<path fill="#262678" d="m518.8 344.9 2 2z"/>
<path fill="#6e6c70" d="m453.9 346.9 2 2z"/>
<path fill="#68b070" d="m461.9 346.9 2 2z"/>
<path fill="#27c2aa" d="m506.6 346.9 2 2z"/>
<path fill="#adb333" d="m508.6 346.9 2 2z"/>
<path fill="#262678" d="m516.8 346.9 2 2z"/>
<path fill="#667" d="m455.9 348.9 2 2z"/>
<path fill="#74b166" d="m463.9 348.9 2 2-2-2z"/>
<path fill="#34be9e" d="m504.6 348.9 2 2z"/>
<path fill="#adb333" d="m506.6 348.9 2 2z"/>
<path fill="#8d8d5b" d="m512.7 348.9-2 4z"/>
<path fill="#262678" d="m514.7 348.9 2 2z"/>
<path fill="#49497d" d="m457.9 350.9 2 2z"/>
<path fill="#96b247" d="m466 350.9 2 2z"/>
<path fill="#0dc9c1" d="m468 350.9 2 2z"/>
<path fill="#42bb92" d="m502.5 350.9 2 2z"/>
<path fill="#0e0e6e" d="m512.7 350.9 2 2z"/>
<path fill="#49497d" d="m459.9 353 2 2z"/>
<path fill="#a2b23d" d="m468 353 2 2z"/>
<path fill="#27c2aa" d="m470 353 2 2z"/>
<path fill="#74b166" d="m500.5 353 2 2z"/>
<path fill="#a4a43d" d="m506.6 353-6 8z"/>
<path fill="#808067" d="m508.6 353 2 2z"/>
<path fill="#0e0e6e" d="m510.7 353 2 2z"/>
<path fill="#262678" d="m461.9 355 2 2z"/>
<path fill="#adb333" d="m470 355 2 2z"/>
<path fill="#42bb92" d="m472 355 2 2z"/>
<path fill="#0dc9c1" d="m496.5 355 2 2z"/>
<path fill="#96b247" d="m498.5 355 2 2z"/>
<path fill="#6e6c70" d="m506.6 355 2 2z"/>
<path fill="#1b1b74" d="m463.9 357 2 2-2-2z"/>
<path fill="#8d8d5b" d="m466 357 2 2z"/>
<path fill="#74b166" d="m474 357 2 2z"/>
<path fill="#0dc9c1" d="m476.2 357 2 2z"/>
<path fill="#34be9e" d="m494.4 357 2 2z"/>
<path fill="#adb333" d="m496.5 357 2 2z"/>
<path fill="#49497d" d="m504.6 357 2 2z"/>
<path fill="#0e0e6e" d="m466 359 2 2z"/>
<path fill="#6e6c70" d="m468 359 2 2z"/>
<path fill="#a4a43d" d="m470 359 4 4z"/>
<path fill="#96b247" d="m476.2 359 2 2z"/>
<path fill="#27c2aa" d="m478.2 359 2 2z"/>
<path fill="#68b070" d="m492.4 359 2 2z"/>
<path fill="#32327b" d="m502.5 359 2 2z"/>
<path fill="#49497d" d="m470 361 2 2z"/>
<path fill="#5bb47c" d="m480.2 361 2 2z"/>
<path fill="#27c2aa" d="m488.3 361 2 2z"/>
<path fill="#96b247" d="m490.4 361 2 2z"/>
<path fill="#a4a43d" d="m496.5 361-2 4z"/>
<path fill="#808067" d="m498.5 361 2 2z"/>
<path fill="#0e0e6e" d="m500.5 361 2 2z"/>
<path fill="#262678" d="m472 363 2 2z"/>
<path fill="#8d8d5b" d="m474 363 2 2z"/>
<path fill="#8bb252" d="m482.3 363 2 2z"/>
<path fill="#1ac5b5" d="m484.3 363 2 2z"/>
<path fill="#5bb47c" d="m486.3 363 2 2z"/>
<path fill="#58587b" d="m496.5 363 2 2z"/>
<path fill="#0e0e6e" d="m474 365.2 2 2z"/>
<path fill="#667" d="m476.2 365.2 2 2z"/>
<path fill="#a4a43d" d="m478.2 365.2 2 2z"/>
<path fill="#99994e" d="m492.4 365.2 2 2z"/>
<path fill="#32327b" d="m494.4 365.2 2 2-2-2m-16.2 2 2 2z"/>
<path fill="#99994e" d="m480.2 367.2 2 2z"/>
<path fill="#a4a43d" d="m488.3 367.2 2 2z"/>
<path fill="#667" d="m490.4 367.2 2 2z"/>
<path fill="#0e0e6e" d="m492.4 367.2 2 2-2-2m-12.2 2 2 2z"/>
<path fill="#667" d="m482.3 369.2 2 2z"/>
<path fill="#a4a43d" d="m484.3 369.2 2 2z"/>
<path fill="#99994e" d="m486.3 369.2 2 2z"/>
<path fill="#32327b" d="m488.3 369.2 2 2z"/>
<path fill="#262678" d="m484.3 371.2 2 2z"/>
<path fill="#0e0e6e" d="m486.3 371.2 2 2z"/>
<path fill="#f90" d="M488.3 235.2c3.2 7.4 13.2 15.5 16 19.5-3.5 4-4.2 3.6-3.8 11 6-6.4 6.2-7 10.2-6.1 8.6 8.6 1.5 27-5.6 31-7.1 4.3-5.8-.1-16.5 5.2 4.9 4.2 10.6-.6 15.2.7 2.5 3-1.2 8.4.7 13.6 4-.4 3.6-8.7 4.6-11.7 3-11 21-18.6 21.9-28.7 3.8-1.7 7.5-.5 12 2-2.2-9.4-9.7-9.3-11.8-12.2-4.8-7.4-9.1-15.8-19.4-18-8-1.7-7.3.5-12.3-3-3.2-2.4-12.7-7-11.2-3.3z"/>
<path fill="#fff" fill-rule="evenodd" d="M510.9 243.6a1.6 1.6 0 1 1-3.3 0 1.6 1.6 0 0 1 3.3 0z"/>
<path fill="#f90" d="M463.2 266.5c5-6.2 7.6-19 9.8-23.2 5.2 1.2 5 2 11.5-1.8-8.5-2.4-9.2-2.2-10.2-6.1 3.6-11.7 23.2-14 30-9.6 7.2 4.3 2.7 5.2 12.4 12 1.4-6.2-5.5-9-6.5-13.6 1.5-3.7 8-3 11.6-7-2.2-3.5-9.3.8-12.4 1.4-11 2.5-26.3-9.8-35.6-6-3.3-2.5-4-6.4-4-11.7-7.1 6.5-3.5 13-5.2 16.3-4.2 7.7-9.7 15.5-6.8 25.6 2.2 7.8 3.8 6.2 3.2 12.3-.7 3.9-.4 14.5 2.2 11.4z"/>
<path fill="#fff" fill-rule="evenodd" d="M460 242.6c.9-.4 1.9-.1 2.3.7a1.6 1.6 0 1 1-2.2-.7z"/>
<path fill="#f90" d="M504.3 270.8c-8-1-20.1 3.3-25 3.7-1.5-5.1-.8-5.5-7.4-9 2.3 8.6 2.8 9 0 12-11.8 2.9-24-12.7-23.8-20.8 0-8.3 3.2-5 4-17-6 2-4.8 9.5-8.3 12.8-4 .6-6.6-5.3-12-6.3-1.8 3.7 5.5 7.5 7.6 9.9 7.9 8.2 5.2 27.5 13.3 33.5-.4 4.2-3.4 6.8-8 9.4 9.3 2.9 13-3.7 16.7-4 8.8-.2 18.3.4 25.5-7.3 5.4-6 3.3-6.5 8.8-9 3.7-1.4 12.6-7.2 8.6-8z"/>
<path fill="#fff" fill-rule="evenodd" d="M485.5 285.9a1.6 1.6 0 1 1 1.7-2.8 1.6 1.6 0 0 1-1.7 2.8z"/>
<path fill="#012169" d="M0 0h320v240H0z"/>
<path fill="#fff" d="m37.5 0 122 90.5L281 0h39v31l-120 89.5 120 89V240h-40l-120-89.5L40.5 240H0v-30l119.5-89L0 32V0z"/>
<path fill="#c8102e" d="M212 140.5 320 220v20l-135.5-99.5zm-92 10 3 17.5-96 72H0zM320 0v1.5l-124.5 94 1-22L295 0zM0 0l119.5 88h-30L0 21z"/>
<path fill="#fff" d="M120.5 0v240h80V0zM0 80v80h320V80z"/>
<path fill="#c8102e" d="M0 96.5v48h320v-48zM136.5 0v240h48V0z"/>
</svg>

After

Width:  |  Height:  |  Size: 36 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 640 480">
<path fill="red" d="M0 0h640v480H0z"/>
<path id="al-a" d="M272 93.3c-4.6 0-12.3 1.5-12.2 5-13-2.1-14.3 3.2-13.5 8 1.2-1.9 2.7-3 3.9-3.1 1.7-.3 3.5.3 5.4 1.4a21.6 21.6 0 0 1 4.8 4.1c-4.6 1.1-8.2.4-11.8-.2a16.5 16.5 0 0 1-5.7-2.4c-1.5-1-2-2-4.3-4.3-2.7-2.8-5.6-2-4.7 2.3 2.1 4 5.6 5.8 10 6.6 2.1.3 5.3 1 8.9 1 3.6 0 7.6-.5 9.8 0-1.3.8-2.8 2.3-5.8 2.8-3 .6-7.5-1.8-10.3-2.4.3 2.3 3.3 4.5 9.1 5.7 9.6 2 17.5 3.6 22.8 6.5a37.3 37.3 0 0 1 10.9 9.2c4.7 5.5 5 9.8 5.2 10.8 1 8.8-2.1 13.8-7.9 15.4-2.8.7-8-.7-9.8-2.9-2-2.2-3.7-6-3.2-12 .5-2.2 3.1-8.3.9-9.5a273.7 273.7 0 0 0-32.3-15.1c-2.5-1-4.5 2.4-5.3 3.8a50.2 50.2 0 0 1-36-23.7c-4.2-7.6-11.3 0-10.1 7.3 1.9 8 8 13.8 15.4 18 7.5 4.1 17 8.2 26.5 8 5.2 1 5.1 7.6-1 8.9-12.1 0-21.8-.2-30.9-9-6.9-6.3-10.7 1.2-8.8 5.4 3.4 13.1 22.1 16.8 41 12.6 7.4-1.2 3 6.6 1 6.7-8 5.7-22.1 11.2-34.6 0-5.7-4.4-9.6-.8-7.4 5.5 5.5 16.5 26.7 13 41.2 5 3.7-2.1 7.1 2.7 2.6 6.4-18.1 12.6-27.1 12.8-35.3 8-10.2-4.1-11 7.2-5 11 6.7 4 23.8 1 36.4-7 5.4-4 5.6 2.3 2.2 4.8-14.9 12.9-20.8 16.3-36.3 14.2-7.7-.6-7.6 8.9-1.6 12.6 8.3 5.1 24.5-3.3 37-13.8 5.3-2.8 6.2 1.8 3.6 7.3a53.9 53.9 0 0 1-21.8 18c-7 2.7-13.6 2.3-18.3.7-5.8-2-6.5 4-3.3 9.4 1.9 3.3 9.8 4.3 18.4 1.3 8.6-3 17.8-10.2 24.1-18.5 5.5-4.9 4.9 1.6 2.3 6.2-12.6 20-24.2 27.4-39.5 26.2-6.7-1.2-8.3 4-4 9 7.6 6.2 17 6 25.4-.2 7.3-7 21.4-22.4 28.8-30.6 5.2-4.1 6.9 0 5.3 8.4-1.4 4.8-4.8 10-14.3 13.6-6.5 3.7-1.6 8.8 3.2 9 2.7 0 8.1-3.2 12.3-7.8 5.4-6.2 5.8-10.3 8.8-19.9 2.8-4.6 7.9-2.4 7.9 2.4-2.5 9.6-4.5 11.3-9.5 15.2-4.7 4.5 3.3 6 6 4.1 7.8-5.2 10.6-12 13.2-18.2 2-4.4 7.4-2.3 4.8 5-6 17.4-16 24.2-33.3 27.8-1.7.3-2.8 1.3-2.2 3.3l7 7c-10.7 3.2-19.4 5-30.2 8l-14.8-9.8c-1.3-3.2-2-8.2-9.8-4.7-5.2-2.4-7.7-1.5-10.6 1 4.2 0 6 1.2 7.7 3.1 2.2 5.7 7.2 6.3 12.3 4.7 3.3 2.7 5 4.9 8.4 7.7l-16.7-.5c-6-6.3-10.6-6-14.8-1-3.3.5-4.6.5-6.8 4.4 3.4-1.4 5.6-1.8 7.1-.3 6.3 3.7 10.4 2.9 13.5 0l17.5 1.1c-2.2 2-5.2 3-7.5 4.8-9-2.6-13.8 1-15.4 8.3a17 17 0 0 0-1.2 9.3c.8-3 2.3-5.5 4.9-7 8 2 11-1.3 11.5-6.1 4-3.2 9.8-3.9 13.7-7.1 4.6 1.4 6.8 2.3 11.4 3.8 1.6 5 5.3 6.9 11.3 5.6 7 .2 5.8 3.2 6.4 5.5 2-3.3 1.9-6.6-2.5-9.6-1.6-4.3-5.2-6.3-9.8-3.8-4.4-1.2-5.5-3-9.9-4.3 11-3.5 18.8-4.3 29.8-7.8l7.7 6.8c1.5.9 2.9 1.1 3.8 0 6.9-10 10-18.7 16.3-25.3 2.5-2.8 5.6-6.4 9-7.3 1.7-.5 3.8-.2 5.2 1.3 1.3 1.4 2.4 4.1 2 8.2-.7 5.7-2.1 7.6-3.7 11-1.7 3.5-3.6 5.6-5.7 8.3-4 5.3-9.4 8.4-12.6 10.5-6.4 4.1-9 2.3-14 2-6.4.7-8 3.8-2.8 8.1 4.8 2.6 9.2 2.9 12.8 2.2 3-.6 6.6-4.5 9.2-6.6 2.8-3.3 7.6.6 4.3 4.5-5.9 7-11.7 11.6-19 11.5-7.7 1-6.2 5.3-1.2 7.4 9.2 3.7 17.4-3.3 21.6-8 3.2-3.5 5.5-3.6 5 1.9-3.3 9.9-7.6 13.7-14.8 14.2-5.8-.6-5.9 4-1.6 7 9.6 6.6 16.6-4.8 19.9-11.6 2.3-6.2 5.9-3.3 6.3 1.8 0 6.9-3 12.4-11.3 19.4 6.3 10.1 13.7 20.4 20 30.5l19.2-214L320 139c-2-1.8-8.8-9.8-10.5-11-.7-.6-1-1-.1-1.4.9-.4 3-.8 4.5-1-4-4.1-7.6-5.4-15.3-7.6 1.9-.8 3.7-.4 9.3-.6a30.2 30.2 0 0 0-13.5-10.2c4.2-3 5-3.2 9.2-6.7a86.3 86.3 0 0 1-19.5-3.8 37.4 37.4 0 0 0-12-3.4zm.8 8.4c3.8 0 6.1 1.3 6.1 2.9 0 1.6-2.3 2.9-6.1 2.9s-6.2-1.5-6.2-3c0-1.6 2.4-2.8 6.2-2.8z"/>
<use xlink:href="#al-a" width="100%" height="100%" transform="matrix(-1 0 0 1 640 0)"/>
</svg>

After

Width:  |  Height:  |  Size: 3.1 KiB

View File

@@ -0,0 +1,5 @@
<svg xmlns="http://www.w3.org/2000/svg" id="flag-icons-am" viewBox="0 0 640 480">
<path fill="#d90012" d="M0 0h640v160H0z"/>
<path fill="#0033a0" d="M0 160h640v160H0z"/>
<path fill="#f2a800" d="M0 320h640v160H0z"/>
</svg>

After

Width:  |  Height:  |  Size: 228 B

View File

@@ -0,0 +1,13 @@
<svg xmlns="http://www.w3.org/2000/svg" id="flag-icons-ao" viewBox="0 0 640 480">
<g fill-rule="evenodd" stroke-width="1pt">
<path fill="red" d="M0 0h640v243.6H0z"/>
<path d="M0 236.4h640V480H0z"/>
</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-150l-1.3 15.6z"/>
<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.3 7 23.4z"/>
<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.3z"/>
<path 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 0zm10.9 7a4.3 4.3 0 1 1-8.7 0 4.3 4.3 0 0 1 8.7 0z"/>
<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 640 480">
<path fill="#3a7dce" d="M0 0h640v480H0z"/>
<path fill="#fff" d="M157.7 230.8c-3.5-7.8-3.5-7.8-3.5-15.6-1.8 0-2 .3-3 0-1.1-.3-1.5 7.2-4.8 5.8-.5-.8 2.4-6.2-.7-8.5-1-.7.2-5.2-.2-7.2 0 0-4 2.4-7-5.8-1.5-2.2-3.5 2-3.5 2s.9 2.4-.7 3c-2.2-1.8-3.9-.8-6.7-3.4-2.8-2.5.6-5.4-4.8-7.5 3.5-9.8 3.5-7.9 12.2-11.8-5.2-4-5.2-4-8.7-9.8-5.2-2-7-4-12.2-7.8-7-9.9-10.5-29.5-10.5-43.2 4.4-4.6 10.5 15.7 19.2 21.6l12.2 5.9c7 3.9 8.7 7.8 14 11.7l15.6 6c7 5.8 10.5 13.6 15.7 15.6 5.7 0 6.8-3.7 8.6-3.9 10.3-.6 15.5-2 17.5-5.5 2.1-2.8 7 1.6 21-4.3l-1.7-7.9s3.7-3.4 8.7-2c-.1-3.5-.5-13 4.5-17.4-3-3.5 1.8-9 2-10.7-1.4-8.6 1.4-8.7 2-11.3.6-2.5-2.4-1.7-1.6-5.2.9-3.5 6-4.3 6.6-7.2.7-2.9-1.1-14.3-1.3-16.8 9.4-2.8 12.4-11.4 15.7-7.8C264 70 265.8 66 276.3 66c1.4-3.6-3.9-6.7-1.8-7.9 3.5-.5 6.1-.2 10.2 5.7 1.3 2 1.6-2.7 2.9-3.2 1.3-.5 4.4-.5 4.9-2.8.5-2.4 1.2-5.6 3-9.5 1.4-3.2 2.5 1.3 3.8 7.5 7.4.3 24 2.1 31 4.3 5.2 1.5 8.7-1.5 13.7-2.2 3.7 4.2 7.2 1 9.2 10 2.7 4.8 7.3.4 8.3 1.8 5.8 18.1 25.8 5.9 27.4 6.2 2.5 0 5.6 8 7.7 7.9 3.2-.6 2.3-3.1 5.2-2.1-.8 6.8 5.6 14.6 5.6 19.7 0 0 1.5.9 3-.6 1.4-1.6 2.7-5.4 4-5.3 3 .5 22 6 25.8 7.9 1.7 3.5 3.3 5.3 6.8 4.7 2.8 2.1.8 5 2.4 5.1 3.5-2 4.7-4 8.2-2.1 3.5 2 7 5.9 8.7 9.8 0 2-1.8 9.8 0 21.6.9 3.9 9.7 32.3 9.7 35.2 0 4-2.7 6-4.5 9.9 7 5.9 0 15.7-3.5 21.6 26.2 5.9 14 17.6 34.9 11.7-5.2 13.8-3.4 12.7 1.8 26.4-10.4 7.8-.2 10.2-7.1 20-.5.7 4.1 8.6 10.5 8.6-1.7 15.6-7 9.8-5.2 33.3-13.7-.3-8.2 17.6-17.4 15.7.5 11.2 5.2 12.2 3.4 23.5-7 2-7 2-10.4 7.9l-5.2-2c-1.8 9.8-5.3 11.8 0 21.6 0 0-6.8.2-8.8 0-.1 3.4 3 4.3 3.5 7.8-.2 1.4-9.9 7.6-17.4 7.9-2 4.8 5.2 10 4.8 12.4-8.2 1.8-11.8 13-11.8 13s4.2 2 3.5 4c-2.2-1.8-3.5-2-7-2-1.7.5-6 0-10 7.7-4.5 1.6-6.6 1-10 6-1.5-4.7-3.7.1-6.3 2-2.7 1.8-6.2 6.5-6.7 6.3.1-1.4 1.6-6.3 1.6-6.3L399 437c-.7.1-.5-5.7-2.2-5.5-1.7.2-6.4 7.3-8 7.5-1.6.2-2.1-2.2-3.5-2-1.4.2-4 7.5-5 7.7-1 .1-5-4.5-8.3-3.8-17.1 6.8-19.9-13.4-22.5-2-3.6-2.2-3-1-6.7.1-2.3.7-2.5-3.4-4.6-3.4-4.1.2-4 4.6-6.2 3.3-1.8-9.2-13-7.6-14-11.5-1-4 4.8-4 6.6-6.8 1.4-4-1.5-5.6 4.3-9.4 7.5-5.7 6.8-19.8 4.9-25.3 0 0-5.9-17.7-7-17.7-3.5-1-3.5 6.5-8.6 8.6-10.5 4-29-9.9-32.2-9.9-2.9 0-16.5 3.6-16-4-2 7.4-9.5 1.7-10 1.7-7 0-4.3 6.1-9 5.9-2.1-.8-23.6-2.3-23.6-2.3v4l-26.1-11.8c-10.5-4-5.3-13.7-22.7-7.8v-11.8h-8.7c3.5-23.6 0-11.8-1.8-33.4l-7 2c-7-10.6 9.8-8.6-5.2-15.7 0 0 .3-11.7-3.5-7.8-.7.5 1.8 5.8 1.8 5.8-14-2-17.4-5.8-17.4-21.5 0 0 11.4 1.8 10.4 0-1.6-3-3.7-22-3.4-23.4-.1-2.6 10.7-9 8.6-15.2 1.4-.6 5.3-.7 5.3-.7"/>
<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="scale(.86021 .96774)"/>
</svg>

After

Width:  |  Height:  |  Size: 2.8 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 640 480">
<path fill="#74acdf" d="M0 0h640v480H0z"/>
<path fill="#fff" d="M0 160h640v160H0z"/>
<g id="ar-c" transform="translate(-64) scale(.96)">
<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 320 240)"/>
<use xlink:href="#ar-c" width="100%" height="100%" transform="rotate(180 320 240)"/>
<use xlink:href="#ar-c" width="100%" height="100%" transform="rotate(-90 320 240)"/>
<circle cx="320" cy="240" r="26.7" fill="#f6b40e" stroke="#85340a" stroke-width="1.4"/>
<path id="ar-h" fill="#843511" stroke-width="1" d="M329 234.3c-1.7 0-3.5.8-4.5 2.4 2 1.9 6.6 2 9.7-.2a7 7 0 0 0-5.1-2.2zm0 .4c1.8 0 3.5.8 3.7 1.6-2 2.3-5.3 2-7.4.4 1-1.4 2.4-2 3.8-2z"/>
<use xlink:href="#ar-d" width="100%" height="100%" transform="matrix(-1 0 0 1 640.2 0)"/>
<use xlink:href="#ar-e" width="100%" height="100%" transform="matrix(-1 0 0 1 640.2 0)"/>
<use xlink:href="#ar-f" width="100%" height="100%" transform="translate(18.1)"/>
<use xlink:href="#ar-g" width="100%" height="100%" transform="matrix(-1 0 0 1 640.2 0)"/>
<path fill="#85340a" d="M316 243.7a1.8 1.8 0 1 0 1.8 2.9 4 4 0 0 0 2.2.6h.2c.6 0 1.6-.1 2.3-.6.3.5.9.7 1.5.7a1.8 1.8 0 0 0 .3-3.6c.5.2.8.6.8 1.2a1.2 1.2 0 0 1-2.4 0 3 3 0 0 1-2.6 1.7 3 3 0 0 1-2.5-1.7c0 .7-.6 1.2-1.3 1.2-.6 0-1.2-.6-1.2-1.2s.3-1 .8-1.2zm2 5.4c-2.1 0-3 2-4.8 3.1 1-.4 1.8-1.2 3.3-2 1.4-.8 2.6.2 3.5.2.8 0 2-1 3.5-.2 1.4.8 2.3 1.6 3.3 2-1.9-1.2-2.7-3-4.8-3-.4 0-1.2.2-2 .6l-2-.7z"/>
<path fill="#85340a" d="M317.2 251.6c-.8 0-1.8.2-3.4.6 3.7-.8 4.5.5 6.2.5 1.6 0 2.5-1.3 6.1-.5-4-1.2-4.9-.4-6.1-.4-.8 0-1.4-.3-2.8-.2z"/>
<path fill="#85340a" d="M314 252.2h-.8c4.3.5 2.3 3 6.8 3s2.5-2.5 6.8-3c-4.5-.4-3.1 2.3-6.8 2.3-3.5 0-2.4-2.3-6-2.3z"/>
<path fill="#85340a" d="M323.7 258.9a3.7 3.7 0 0 0-7.4 0 3.8 3.8 0 0 1 7.4 0z"/>
<path id="ar-e" fill="#85340a" stroke-width="1" d="M303.4 234.3c4.7-4.1 10.7-4.8 14-1.7a8 8 0 0 1 1.5 3.4c.4 2.4-.3 4.9-2.1 7.5l.8.4c1.6-3.1 2.2-6.3 1.6-9.4l-.6-2.3c-4.5-3.7-10.7-4-15.2 2z"/>
<path id="ar-d" fill="#85340a" stroke-width="1" d="M310.8 233c2.7 0 3.3.6 4.5 1.7 1.2 1 1.9.8 2 1 .3.2 0 .8-.3.6-.5-.2-1.3-.6-2.5-1.6s-2.5-1-3.7-1c-3.7 0-5.7 3-6.1 2.8-.5-.2 2-3.5 6.1-3.5z"/>
<use xlink:href="#ar-h" width="100%" height="100%" transform="translate(-18.4)"/>
<circle id="ar-f" cx="310.9" cy="236.3" r="1.8" fill="#85340a" stroke-width="1"/>
<path id="ar-g" fill="#85340a" stroke-width="1" d="M305.9 237.5c3.5 2.7 7 2.5 9 1.3 2-1.3 2-1.7 1.6-1.7-.4 0-.8.4-2.4 1.3-1.7.8-4.1.8-8.2-.9z"/>
</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 640 480">
<path fill="#006233" d="M0 0v480h640V0Z" 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(.36355 0 0 .3308 -130 -670.9)"/>
<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(.36355 0 0 .3308 -130 -670.9)"/>
<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(.36355 0 0 .3308 -130 -670.9)"/>
<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(.36355 0 0 .3308 -130 -670.9)"/>
<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(.36355 0 0 .3308 -130 -670.9)"/>
<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(.36355 0 0 .3308 -130 -670.9)"/>
<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(.36355 0 0 .3308 -130 -670.9)"/>
<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(.36355 0 0 .3308 -130 -670.9)"/>
<path stroke-width=".4" d="m1314.3 2621.3 1.9 9.3h1.5l-.6-8.7" transform="matrix(.36355 0 0 .3308 -130 -670.9)"/>
<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(.36355 0 0 .3308 -130 -670.9)"/>
<path stroke-width=".4" d="m1158.7 2747.4-.5 7.9 12.6 1.2 10.1-7.6z" transform="matrix(.36355 0 0 .3308 -130 -670.9)"/>
<path d="m1265.2 2599.8 3.7-.8-.4 10.3-2.3.9z" transform="matrix(.36355 0 0 .3308 -130 -670.9)"/>
</g>
<path fill="#fff" d="M320 326.3c51.6 0 93.6-38.2 93.6-85.2a81.9 81.9 0 0 0-32.6-64.4 70.2 70.2 0 0 1 19.2 48c0 40.8-35.9 73.9-80.2 73.9-44.3 0-80.2-33.1-80.2-74 0-18.3 7.2-35.1 19.2-48a81.8 81.8 0 0 0-32.6 64.6c0 46.9 42 85.1 93.6 85.1z" 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(.23458 0 0 .21345 320 27.3)"/>
<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(.23458 0 0 .21345 320 27.3)"/>
<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(.23458 0 0 .21345 320 27.3)"/>
<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(.23458 0 0 .21345 320 27.3)"/>
</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(.23458 0 0 .21345 320 27.3)"/>
<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(.23458 0 0 .21345 320 27.3)"/>
<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(.23458 0 0 .21345 320 27.3)"/>
<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(.23458 0 0 .21345 320 27.3)"/>
<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(.23458 0 0 .21345 320 27.3)"/>
<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(.23458 0 0 .21345 320 27.3)"/>
<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(.23458 0 0 .21345 320 27.3)"/>
<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(.23458 0 0 .21345 320 27.3)"/>
<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(.23458 0 0 .21345 320 27.3)"/>
<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(.23458 0 0 .21345 320 27.3)"/>
<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(.23458 0 0 .21345 320 27.3)"/>
<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(.23458 0 0 .21345 320 27.3)"/>
<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(.23458 0 0 .21345 320 27.3)"/>
<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(.23458 0 0 .21345 320 27.3)"/>
<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(.23458 0 0 .21345 320 27.3)"/>
<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(.23458 0 0 .21345 320 27.3)"/>
<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(.23458 0 0 .21345 320 27.3)"/>
<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(.23458 0 0 .21345 320 27.3)"/>
<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(.23458 0 0 .21345 320 27.3)"/>
<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(.23458 0 0 .21345 320 27.3)"/>
<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(.23458 0 0 .21345 320 27.3)"/>
<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(.23458 0 0 .21345 320 27.3)"/>
<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(.23458 0 0 .21345 320 27.3)"/>
<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(.23458 0 0 .21345 320 27.3)"/>
<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(.23458 0 0 .21345 320 27.3)"/>
<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(.23458 0 0 .21345 320 27.3)"/>
<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(.23458 0 0 .21345 320 27.3)"/>
<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(.23458 0 0 .21345 320 27.3)"/>
<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(.23458 0 0 .21345 320 27.3)"/>
<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(.23458 0 0 .21345 320 27.3)"/>
<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(.23458 0 0 .21345 320 27.3)"/>
<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(.23458 0 0 .21345 320 27.3)"/>
<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(.23458 0 0 .21345 320 27.3)"/>
<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(.23458 0 0 .21345 320 27.3)"/>
<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(.23458 0 0 .21345 320 27.3)"/>
<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(.23458 0 0 .21345 320 27.3)"/>
<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(.23458 0 0 .21345 320 27.3)"/>
</g>
<path fill="#006233" d="M359.6 128.9c-4.4-3-20.8-1.3-23.9-3.3 5.9 4.5 19 1.3 24 3.3zm39.7 7.6c-3.5-5.7-24.4-9.6-27.5-14.7 5.5 9.8 21.6 8.5 27.5 14.7zm-3 6.6c-7.8-6.8-25.8-4-31.3-8 12.7 10.4 19.7 2.3 31.2 8zM351 112.8c4.9 2.4 11 4.7 14 10.3-3.5-4.3-9.8-6-15-9.6.3 0 .7-.4 1-.7zm77 44c-3.1-6.4-14-13.4-14.9-15.8 3 8.3 12 10.3 14.8 15.8zm2.7 11.3c-9.4-13.4-24.1-12-30-17 4.5 4.9 21.4 8 30 17zm21.8 20.7c.7-14.3-11-19.6-11.4-27.7-.3 9.6 12 22.6 11.4 27.7zm-5.8 7.7c-2.4-12.4-18.3-13.2-21.1-20.5 0 6.8 18.7 13.9 21 20.5zm13.1-7c8.5 9.4 2.6 23.7 6.1 34.1-4.2-7.7-2.1-26.9-6-34.1zm-13.8 40c12.6 12.5 7.5 26.3 12.6 32.3-6.3-8.3-5.4-24.5-12.6-32.2zm26.3 1.8c-10.9 10.9-4.3 27.3-10 35 6.4-6.6 5.5-27 10-35zm-13.7 0c-1.4-12.6-14.3-19.2-15.4-26-1.5 6.8 12.4 17.5 15.4 26zm-6.5 30c2 8.8-5.7 27.6-3.3 33.4-5.2-10 4.4-29 3.3-33.3zm16.6 20.1c-5.1 15.6-15.5 14.6-18.7 24 2.3-9 16-17.1 18.7-24zm-33.5 7.3c-6.8 10.5-1.2 22.4-6.8 29.9 8-7.5 3.7-21.4 6.8-29.9zm16.4 28.6c-8.2 13.9-25.1 12.6-31.9 22.6 6.8-12.6 27.7-14.7 32-22.6zm-29.8-1.7c-14.5 9.2-10 18.8-21.1 29 13.8-10.2 12.7-21.5 21.1-29zm-6.8 37.2c-14-.5-34.2 16.2-46.4 14.9 12.2 2.4 34.7-12.6 46.4-15zm-22.7-15c-1 13-37.6 21.4-41.5 30.1 4.4-11.5 36.6-20 41.5-30zm-82.8-240c-4.7-3.7-10.4-6.7-12-10.3 1.2 4.7 5.8 8 10.5 11.3.5-.2 1-.9 1.5-1.1zm-8 3.7c-7.3-3.2-15.7-3-19.5-7.4 2.4 4.4 10.3 6.1 17.1 8.5.7-.4 1.7-.9 2.4-1zm-21.1 27.3c4.4-3 20.8-1.2 23.9-3.2-5.9 4.5-19 1.3-24 3.2zm-39.7 7.7c3.5-5.7 24.4-9.6 27.5-14.7-5.4 9.8-21.6 8.5-27.5 14.7zm3 6.6c7.8-6.8 25.9-4 31.3-8-12.7 10.4-19.7 2.3-31.2 8zm31.3-20c4.4-8.6 17-9.6 20.4-14.8-5 7.7-15.7 9-20.4 14.8zm36-7.5c13-5.5 25.7-.8 31.8-3.4-7.5 3.6-25.4 1.9-31.7 3.4zm-98.9 41.2c3-6.4 13.8-13.5 14.8-15.8-3 8.3-12 10.3-14.8 15.8zm-2.8 11.3c9.4-13.4 24.1-12 30-17-4.4 4.9-21.3 8-30 17zm-21.8 20.7c-.7-14.3 11-19.6 11.5-27.7.2 9.6-12 22.6-11.5 27.7zm5.8 7.7c2.4-12.4 18.3-13.2 21.1-20.5 0 6.8-18.7 13.9-21 20.5zm-13.1-7c-8.4 9.4-2.6 23.6-6 34.1 4.1-7.7 2-26.9 6-34.1zm13.8 40c-12.6 12.5-7.5 26.3-12.6 32.3 6.3-8.3 5.4-24.5 12.6-32.2zm-26.2 1.8c10.8 10.9 4.2 27.3 9.8 35-6.3-6.6-5.4-27-9.8-35zm13.6 0c1.4-12.6 14.3-19.2 15.4-26 1.5 6.8-12.4 17.5-15.4 26zm6.5 30c-2 8.8 5.7 27.6 3.3 33.4 5.2-10-4.4-29-3.3-33.3zm-16.6 20.1c5.2 15.6 15.5 14.6 18.8 24-2.4-9-16-17.1-18.8-24zm33.5 7.3c6.8 10.5 1.2 22.4 6.8 29.9-8-7.5-3.7-21.4-6.8-29.9zm-16.4 28.6c8.2 13.9 25.1 12.6 32 22.6-6.9-12.6-27.8-14.7-32-22.6zm29.8-1.7c14.5 9.2 10.1 18.8 21.1 29-13.8-10.2-12.6-21.5-21.1-29zm6.8 37.1c14-.4 34.3 16.3 46.4 15-12.1 2.3-34.7-12.6-46.4-15zm22.8-15c.9 13.1 37.5 21.4 41.5 30.2-4.5-11.5-36.6-20-41.6-30.1zM301 116c2.8-11.5 17-13.6 18.8-20.5-.7 7.3-17.4 15.4-18.8 20.5zm41.5-28.6c-2 8.8-17.3 13.7-19.4 20.3.7-9 16.4-14 19.4-20.3zm-12 20.8c7.3-10.7 22.3-8 27.5-14.1-3.8 7.2-22.3 7.4-27.5 14z" class="arab-fil0"/>
<path fill="none" stroke="#f7c608" stroke-linecap="round" stroke-linejoin="round" stroke-width="1.8" d="M429.8 240c0 55.5-49.3 100.4-110.3 100.4-60.9 0-110.3-44.9-110.3-100.3 0-55.5 49.4-100.4 110.3-100.4 61 0 110.3 45 110.3 100.4z"/>
<path fill="#f7c608" d="m298 340.5-.5 1.2c-.3.8-1.1 1.3-2.1 1.2l-8-1.9 2.6-7.7 8 1.7c.9.2 1.4 1 1 1.8l-.2 1m-19-4.8.4-1.2c.2-.9 1.1-1.3 2-1a95 95 0 0 0 7.8 2.5l-2.5 7.7c-2.8-.7-5.4-1.4-7.9-2.3-.8-.4-1-2-.7-2.9"/>
<path fill="#006233" d="m296.4 339.8-.3.9c-.2.6-1 .9-1.7.8l-6.6-1.6 1.8-5.6c2.4.7 4.9 1.2 6.6 1.5.8.2 1.2.8 1 1.4l-.2.7m-15.8-4 .3-1c.2-.5.9-.8 1.6-.6 1.9.6 4 1.4 6.5 2l-1.8 5.6a98.9 98.9 0 0 1-6.5-1.9c-.7-.4-1-1.5-.7-2.1"/>
<path fill="#f7c608" d="m267.7 330.8-.7 1c-.5.8-1.5 1-2.4.7-2-1.2-4.7-2.5-7-3.9l4.8-6.8a80.3 80.3 0 0 0 7.1 3.7c.8.4 1 1.3.5 2l-.6 1m-16.7-9.6.7-1c.5-.8 1.5-1 2.3-.5 1.8 1.3 4.1 2.9 6.7 4.4l-4.9 6.8a91.1 91.1 0 0 1-6.7-4.2c-.7-.7-.4-2.3 0-3"/>
<path fill="#006233" d="m266.5 329.7-.6.8c-.3.5-1.1.6-1.9.3-1.6-1-3.8-2-5.8-3.2l3.5-4.9c2 1.3 4.3 2.4 5.9 3.1.6.4.9 1 .5 1.6l-.5.6m-13.8-7.9.5-.8c.4-.5 1.1-.6 1.8-.2a89.5 89.5 0 0 0 5.6 3.6l-3.5 4.9c-2-1.2-4-2.3-5.6-3.5-.6-.5-.5-1.7-.1-2.2"/>
<path fill="#f7c608" d="m241.8 313.7-1 .8c-.8.6-1.8.5-2.6 0-1.5-1.6-3.7-3.5-5.5-5.5l6.7-5.3c2 2.1 4.2 4 5.7 5.4.7.6.6 1.5-.1 2l-.9.8m-13-13.4 1-.9c.7-.5 1.7-.5 2.3.2a73 73 0 0 0 5 6l-6.7 5.2c-1.9-2-3.7-3.9-5.2-5.8-.5-.8.3-2.2 1-2.8"/>
<path fill="#006233" d="m240.9 312.4-.8.6c-.5.4-1.2.3-1.9-.2l-4.6-4.6 4.9-3.8a77 77 0 0 0 4.7 4.5c.5.6.5 1.3 0 1.7l-.7.5m-10.8-11.2.7-.6c.6-.4 1.3-.3 1.8.2 1.2 1.5 2.6 3.2 4.3 5l-4.9 3.7-4.3-4.8c-.4-.6.1-1.7.6-2.1"/>
<path fill="#f7c608" d="m222.2 290.7-1.3.5c-.8.4-1.8 0-2.4-.6l-3.6-6.8 8.1-3.3c1.3 2.5 2.7 5 3.8 6.6.4.8 0 1.6-.8 2l-1 .4m-8.4-16.2 1.2-.6c.9-.3 1.8 0 2.2.8a70.6 70.6 0 0 0 3 7l-8 3.3a60.2 60.2 0 0 1-3.3-6.8c-.2-1 1-2.1 1.9-2.5"/>
<path fill="#006233" d="m221.7 289.2-.9.3c-.6.3-1.3 0-1.8-.6l-3-5.6 5.8-2.4a67.8 67.8 0 0 0 3.2 5.5c.3.7.1 1.4-.5 1.6l-.8.3m-7-13.5 1-.3c.6-.3 1.3 0 1.6.6a77 77 0 0 0 2.5 5.8l-5.7 2.4a58 58 0 0 1-2.7-5.7c-.2-.7.6-1.6 1.2-1.9"/>
<path fill="#f7c608" d="m210.5 263.5-1.4.2a2 2 0 0 1-2-1.2l-1.5-7.4 8.8-1.1a63.7 63.7 0 0 0 1.7 7.3c.1.9-.5 1.6-1.4 1.7l-1.2.2m-3-17.7 1.4-.2c.9-.2 1.7.4 1.8 1.2.1 2.2.3 4.7.7 7.5l-8.8 1.1a75 75 0 0 1-1-7.4c.2-.9 1.7-1.7 2.6-1.8"/>
<path fill="#006233" d="m210.5 262-1 .1c-.6.1-1.2-.3-1.5-1l-1.1-6.2 6.3-.8a64.4 64.4 0 0 0 1.3 6.1c.1.7-.3 1.3-1 1.4l-.8.1m-2.5-14.7 1-.2c.7 0 1.3.4 1.3 1.1.2 1.8.3 4 .7 6.2l-6.3.8c-.4-2-.7-4.2-.8-6.1 0-.7 1.1-1.4 1.8-1.5"/>
<path fill="#f7c608" d="m207.7 234.5-1.4-.2c-1 0-1.5-.8-1.6-1.7.3-2 .5-4.8 1-7.4l8.7 1.2a64.7 64.7 0 0 0-.7 7.4c-.1.9-.9 1.4-1.8 1.3l-1.2-.2m2.6-17.7 1.4.1c.9.2 1.5.9 1.4 1.7a68.7 68.7 0 0 0-1.7 7.4l-8.8-1.2c.4-2.5.8-5 1.4-7.4.4-.8 2.1-1.2 3-1"/>
<path fill="#006233" d="M208.2 233h-1c-.7-.2-1-.8-1.1-1.5l.8-6.1 6.3.8a65 65 0 0 0-.6 6.2c-.1.7-.7 1.1-1.4 1h-.8m2.1-14.9 1 .2c.7 0 1.1.7 1 1.4-.4 1.7-1 3.8-1.3 6l-6.3-.7 1.1-6.2c.3-.7 1.5-1 2.2-1"/>
<path fill="#f7c608" d="m214 206-1.3-.6c-.9-.3-1.2-1.1-1-2 1-2 2-4.6 3.2-6.9l8 3.4a69.8 69.8 0 0 0-3 7c-.3.7-1.2 1-2 .7l-1.2-.5m8-16.4 1.3.6c.8.3 1.2 1.2.8 2a72.5 72.5 0 0 0-3.8 6.6l-8.1-3.4c1.1-2.3 2.3-4.7 3.6-6.7.6-.7 2.4-.7 3.2-.3"/>
<path fill="#006233" d="m215 204.7-1-.4c-.6-.2-.8-1-.6-1.6l2.6-5.7 5.8 2.4a66.3 66.3 0 0 0-2.5 5.8c-.3.6-1 .9-1.6.6l-.8-.3m6.7-13.6.9.4c.6.2.8.9.5 1.6a71.3 71.3 0 0 0-3.2 5.5l-5.7-2.4c1-2 1.9-4 3-5.6.4-.6 1.7-.7 2.3-.4"/>
<path fill="#f7c608" d="m228.9 180.2-1.1-.9c-.7-.5-.8-1.4-.4-2.2 1.6-1.6 3.4-3.9 5.2-5.8l6.8 5.3a72 72 0 0 0-5 6 1.7 1.7 0 0 1-2.4 0l-.9-.6m12.8-13.7 1 .8c.8.6.8 1.5.2 2.2a78.4 78.4 0 0 0-5.7 5.3l-6.8-5.3c1.9-2 3.7-3.9 5.6-5.5.8-.5 2.5 0 3.2.5"/>
<path fill="#006233" d="m230.2 179.2-.8-.6c-.5-.4-.5-1.1-.1-1.7l4.3-4.9 4.8 3.8a71.3 71.3 0 0 0-4.2 5c-.5.5-1.2.6-1.8.2l-.6-.5m10.6-11.4.8.6c.5.4.5 1.1 0 1.6a80 80 0 0 0-4.8 4.6l-4.8-3.8c1.6-1.7 3-3.3 4.6-4.6.7-.5 2-.2 2.4.2"/>
<path fill="#f7c608" d="m251 159.2-.7-1c-.5-.8-.3-1.6.4-2.3 2-1.1 4.4-2.8 6.8-4.2l4.8 6.8a78 78 0 0 0-6.7 4.4 1.7 1.7 0 0 1-2.2-.4l-.7-1m16.5-9.8.7 1c.6.8.3 1.7-.4 2.1-2.2 1-4.6 2.2-7.2 3.7l-4.8-6.8c2.3-1.4 4.7-2.8 7-3.9 1-.2 2.4.7 2.9 1.4"/>
<path fill="#006233" d="m252.7 158.6-.6-.7c-.3-.6-.1-1.2.4-1.7 1.7-1 3.7-2.4 5.7-3.5l3.4 4.8a97 97 0 0 0-5.5 3.7c-.7.4-1.4.3-1.8-.3l-.5-.6m13.7-8.2.6.8c.3.5.1 1.2-.5 1.5a83.3 83.3 0 0 0-6 3.1l-3.4-4.8 5.8-3.3c.8-.2 1.9.4 2.3.9"/>
<path fill="#f7c608" d="m279 144.9-.5-1.3c-.2-.8.2-1.6 1-2l7.9-2.3 2.5 7.7a82.5 82.5 0 0 0-7.8 2.6c-.9.2-1.7-.2-2-1l-.3-1m18.8-5.4.4 1.3c.3.8-.2 1.6-1 1.8a88.9 88.9 0 0 0-8.1 1.7l-2.5-7.7a85 85 0 0 1 8-2c.9 0 2 1.3 2.3 2"/>
<path fill="#006233" d="m280.6 144.7-.3-1c-.1-.5.3-1 1-1.4l6.5-2 1.8 5.6a81.2 81.2 0 0 0-6.5 2c-.7.3-1.4 0-1.6-.6l-.3-.7m15.7-4.4.3.9c.2.6-.2 1.2-1 1.4-1.9.3-4.2.8-6.6 1.4l-1.8-5.5a90 90 0 0 1 6.6-1.6c.8-.1 1.6.8 1.8 1.4"/>
<path fill="#f7c608" d="M310 138.2v-1.3c0-.8.8-1.5 1.7-1.7l8.2-.2v8.1a84 84 0 0 0-8.2.4c-1 0-1.6-.6-1.6-1.5v-1m19.7-.2v1.2c0 .9-.7 1.5-1.7 1.5a90 90 0 0 0-8.2-.4V135c2.8 0 5.7 0 8.2.2 1 .2 1.7 1.7 1.7 2.6"/>
<path fill="#006233" d="M311.8 138.5v-1c0-.6.5-1 1.3-1.2l6.9-.1v5.8c-2.6 0-5.1.1-6.9.3-.7 0-1.3-.5-1.3-1v-.9m16.3-.1v.9c0 .6-.5 1-1.3 1a82.4 82.4 0 0 0-6.8-.2v-5.8l6.8.1c.8.2 1.3 1.2 1.3 1.9"/>
<path fill="#f7c608" d="m340 139.6.3-1.2c.3-.8 1.1-1.2 2.1-1.2l8 1.8-2.5 7.8a84.5 84.5 0 0 0-8-1.6c-.9-.3-1.4-1-1.1-1.9l.3-1m19 4.7-.4 1.2c-.2.9-1.1 1.3-2 1a87.5 87.5 0 0 0-7.8-2.4l2.5-7.8c2.7.7 5.4 1.4 7.8 2.3.8.4 1 2 .8 2.8"/>
<path fill="#006233" d="m341.5 140.3.2-.9c.2-.6 1-.9 1.7-.8l6.6 1.5-1.7 5.6a83.5 83.5 0 0 0-6.7-1.4c-.7-.2-1.1-.8-1-1.4l.3-.7m15.8 4-.3.8c-.2.6-.9 1-1.6.7a86.6 86.6 0 0 0-6.5-2l1.7-5.6c2.3.6 4.6 1.2 6.6 1.9.7.3 1 1.5.7 2"/>
<path fill="#f7c608" d="m370.2 149.1.7-1c.5-.8 1.5-1 2.4-.7 2 1.1 4.7 2.4 7.1 3.8l-4.7 6.9a80.6 80.6 0 0 0-7.3-3.6c-.7-.5-1-1.4-.5-2.1l.7-1m16.8 9.5-.8 1a1.7 1.7 0 0 1-2.2.5 82.3 82.3 0 0 0-6.7-4.3l4.7-6.9c2.4 1.4 4.8 2.7 6.8 4.2.7.6.4 2.2-.1 3"/>
<path fill="#006233" d="m371.5 150.2.5-.8c.4-.5 1.1-.6 1.9-.4 1.6 1 3.8 2 5.8 3.2l-3.4 5a79.3 79.3 0 0 0-6-3.1c-.6-.4-.8-1-.4-1.6l.4-.7m14 7.9-.6.8c-.4.5-1 .6-1.8.2a81.5 81.5 0 0 0-5.6-3.6l3.4-4.9 5.7 3.4c.6.6.5 1.7.1 2.3"/>
<path fill="#f7c608" d="m396.3 166 1-.9c.7-.5 1.7-.5 2.5 0l5.6 5.5-6.6 5.3a74.7 74.7 0 0 0-5.8-5.3c-.6-.6-.6-1.5.1-2l.9-.8m13.2 13.3-1 .9a1.7 1.7 0 0 1-2.4-.2 72 72 0 0 0-5-5.9l6.7-5.3c1.8 2 3.7 3.8 5.2 5.7.4.8-.3 2.3-1 2.8"/>
<path fill="#006233" d="m397.2 167.3.7-.6c.5-.4 1.3-.3 2 .1 1.2 1.4 3 3 4.6 4.6l-4.8 3.8a73.6 73.6 0 0 0-4.8-4.5c-.5-.5-.5-1.2 0-1.6l.7-.5m11 11-.8.7c-.5.4-1.3.3-1.8-.2a75.1 75.1 0 0 0-4.3-4.9l4.8-3.8 4.4 4.7c.4.7-.1 1.8-.6 2.2"/>
<path fill="#f7c608" d="m416.1 188.9 1.3-.6c.8-.3 1.8 0 2.4.7l3.7 6.6-8.1 3.5c-1.3-2.6-2.8-5-4-6.6-.3-.8 0-1.6.9-2l1-.5m8.6 16.2-1.3.5c-.8.4-1.8 0-2.1-.7a70.7 70.7 0 0 0-3.1-7l8-3.4a81.1 81.1 0 0 1 3.3 6.9c.2.9-1 2-1.8 2.4"/>
<path fill="#006233" d="m416.6 190.4.9-.4c.6-.3 1.3 0 1.8.6l3 5.5-5.8 2.5a74.4 74.4 0 0 0-3.2-5.5c-.3-.6-.1-1.3.5-1.6l.8-.3m7 13.5-.8.3c-.7.3-1.3 0-1.7-.6-.7-1.7-1.5-3.7-2.6-5.8l5.8-2.5 2.8 5.7c.1.8-.7 1.7-1.3 2"/>
<path fill="#f7c608" d="m428 215.9 1.4-.2a2 2 0 0 1 2.1 1.2l1.5 7.3-8.8 1.3a65.4 65.4 0 0 0-1.7-7.3c-.1-.9.4-1.6 1.4-1.7l1.1-.2m3.2 17.7-1.4.2c-.9.1-1.7-.4-1.8-1.3a71 71 0 0 0-.8-7.4l8.8-1.3c.4 2.6.8 5.1 1 7.5 0 .9-1.6 1.7-2.5 1.8"/>
<path fill="#006233" d="m428 217.4 1-.1c.7-.1 1.3.4 1.5 1 .3 1.8.9 4 1.2 6.1l-6.3 1a64.5 64.5 0 0 0-1.3-6.2c-.1-.7.2-1.3 1-1.3l.8-.2m2.6 14.7-1 .2c-.7 0-1.3-.4-1.4-1a67.2 67.2 0 0 0-.7-6.3l6.3-.9c.4 2.2.8 4.3.9 6.2 0 .7-1.1 1.4-1.8 1.5"/>
<path fill="#f7c608" d="m431.1 244.9 1.4.1c1 .1 1.6.9 1.7 1.8l-.9 7.4-8.8-1.1c.4-2.7.6-5.5.6-7.5.1-.8 1-1.4 1.9-1.2l1.1.1m-2.4 17.8-1.4-.2c-1 0-1.5-.8-1.4-1.7.6-2 1.2-4.6 1.6-7.3l8.8 1c-.4 2.6-.8 5.2-1.3 7.4-.4.9-2.1 1.3-3 1.2"/>
<path fill="#006233" d="M430.6 246.4h1c.7.2 1.1.8 1.2 1.5l-.8 6.2-6.3-.8.6-6.2c0-.7.6-1.2 1.3-1.1h.9m-2 14.9-1-.1c-.7-.1-1.1-.7-1-1.4.4-1.8.9-3.8 1.2-6.1l6.3.8a76.8 76.8 0 0 1-1 6c-.3.8-1.6 1.2-2.2 1"/>
<path fill="#f7c608" d="m425.1 273.5 1.3.5c.9.4 1.2 1.2 1 2l-3 7-8.2-3.3a66 66 0 0 0 3-7c.3-.8 1.2-1.1 2-.8l1.2.4m-7.9 16.5-1.2-.5c-.9-.4-1.3-1.2-.9-2 1.2-1.8 2.6-4.1 3.8-6.6l8.1 3.3a78.3 78.3 0 0 1-3.5 6.7c-.6.7-2.4.7-3.3.3"/>
<path fill="#006233" d="m424.2 274.8 1 .3c.5.3.7 1 .6 1.7l-2.6 5.7-5.9-2.3a66.2 66.2 0 0 0 2.5-5.8c.3-.7 1-1 1.6-.8l.8.4m-6.5 13.6-1-.3c-.6-.3-.8-1-.4-1.6a71.2 71.2 0 0 0 3-5.5l5.9 2.3a80.7 80.7 0 0 1-3 5.6c-.5.6-1.8.7-2.4.4"/>
<path fill="#f7c608" d="m410.5 299.4 1.1.8c.7.6.8 1.5.4 2.3-1.6 1.6-3.4 3.8-5.2 5.8L400 303c2-2 3.8-4.3 5-6 .6-.6 1.6-.6 2.3-.1l.9.7m-12.6 13.8-1-.8c-.8-.6-.9-1.5-.3-2.1 1.7-1.5 3.7-3.3 5.7-5.5l6.8 5.3a88.2 88.2 0 0 1-5.5 5.6c-.8.5-2.5 0-3.2-.6"/>
<path fill="#006233" d="m409.2 300.4.8.6c.5.4.5 1 .1 1.7l-4.3 4.8-4.9-3.7c1.7-1.8 3.2-3.6 4.2-5 .5-.5 1.3-.6 1.8-.2l.6.5m-10.4 11.5-.8-.6c-.5-.4-.5-1.1 0-1.7a77 77 0 0 0 4.6-4.5l5 3.7c-1.6 1.7-3.1 3.3-4.7 4.7-.6.4-1.8.1-2.4-.3"/>
<path fill="#f7c608" d="m388.5 320.5.7 1c.5.8.3 1.7-.3 2.3l-6.7 4.3-5-6.8a77.9 77.9 0 0 0 6.7-4.4 1.7 1.7 0 0 1 2.2.4l.7.9m-16.4 10-.7-1c-.6-.8-.4-1.7.4-2.2a84.3 84.3 0 0 0 7.2-3.7l4.8 6.8-7 4c-.9.2-2.3-.7-2.9-1.4"/>
<path fill="#006233" d="m386.9 321.1.5.8c.4.5.2 1.2-.4 1.7l-5.6 3.5-3.5-4.8 5.6-3.7c.6-.4 1.4-.3 1.7.2l.5.7m-13.6 8.3-.6-.8c-.3-.5-.1-1.2.5-1.6a83 83 0 0 0 6-3.1l3.4 4.8c-2 1.2-4 2.4-5.8 3.3-.7.3-1.9-.3-2.2-.8"/>
<path fill="#f7c608" d="m360.8 335.1.4 1.2c.3.8-.2 1.7-1 2l-7.8 2.5-2.6-7.8a75.4 75.4 0 0 0 7.7-2.6c.9-.2 1.8.2 2 1l.4 1m-18.8 5.5-.4-1.3c-.3-.8.2-1.6 1-1.8 2.4-.4 5.1-1 8-1.8l2.7 7.8c-2.7.7-5.4 1.5-8 2-1 0-2-1.3-2.3-2"/>
<path fill="#006233" d="m359 335.3.4.9c.2.6-.3 1.2-1 1.5l-6.4 2-1.9-5.6a82.2 82.2 0 0 0 6.4-2c.8-.3 1.5 0 1.7.6l.2.7m-15.6 4.5-.3-.9c-.2-.6.2-1.2 1-1.4a82.4 82.4 0 0 0 6.6-1.5l1.9 5.6a99.4 99.4 0 0 1-6.6 1.6c-.8 0-1.7-.8-2-1.4"/>
<path fill="#f7c608" d="M329.7 342v1.3c0 .9-.7 1.5-1.6 1.7-2.4 0-5.4.3-8.2.3l-.1-8.1a82.2 82.2 0 0 0 8.2-.5c1 0 1.6.6 1.6 1.5v1m-19.6.4v-1.2c0-.9.6-1.5 1.6-1.5 2.3.1 5.1.3 8.2.3v8.1l-8.2-.1c-.9-.2-1.6-1.7-1.6-2.6"/>
<path fill="#006233" d="M328 341.8v.9c0 .6-.6 1-1.4 1.2l-6.8.2v-5.7c2.5 0 5-.3 6.8-.4.8 0 1.3.4 1.4 1v.8m-16.4.3v-1c0-.5.5-1 1.3-1 2 .1 4.3.3 6.9.2v5.8H313c-.8-.2-1.4-1.3-1.4-1.9"/>
</svg>

After

Width:  |  Height:  |  Size: 26 KiB

View File

@@ -0,0 +1,72 @@
<svg xmlns="http://www.w3.org/2000/svg" id="flag-icons-as" viewBox="0 0 640 480">
<path fill="#006" d="M0 0h640v480H0Z"/>
<path fill="#bd1021" d="m-.6 240 640-240v480Z"/>
<path fill="#fff" d="m59.7 240 580-214.3v428.6"/>
<path d="M474 270.4c5.1.3 5 5.4 5 5.4l18 .4c2.3-6.3 4.8-5.6 9.2-2.4a32.9 32.9 0 0 0 8.7 4.2c1.7-9 14.5-7.2 14.5-7.2 5.6-13 6-12.9 2.7-14.5a10.7 10.7 0 0 1-4.6-4.5c-3-3.7-4.6-9.1-5-12.4-.4-3.3-4.2 1.6-5 .6-.6-1-6.3-.4-6.3-.4 1.4 1.5-3.4.6-3.4.6.5.4 0 1.7 0 1.7-.4-.6-4.1-1.2-4.1-1.2a6.1 6.1 0 0 1-1.1 1.6c-2-.8-6-.7-6-.7a20 20 0 0 0-10.9 2.8c-1.6.9-7.4 3.8-12.3 8.5-4.7 4.6-7.4 4-7.4 4-1.4 5.2-12.8 11.5-12.8 11.5-1.8 1.6-7.6 2.4-10.5 0-2.9-2.4 0-6.9 0-6.9 1.2-2 2.2-1.9 2.3-9 .1-4.7 5-8.5 10-14 6.3-6.8 15-18 15-18 0 3.4 1.8 4 1.8 4 1.7-3.5 4.2-6.3 4.2-6.3.1.3.5.4.5.4 2-2.6 3-3.6 3-3.6-.5-.3-6 0-11 4.4s-8.4 3-8.4 3c-3.5-1.2-3.8-4-3.8-4-2.5-10.9 7.4-18.7 7.4-18.7-13.4-3.2-3.7-20.3 13-27.5 16.6-7.2 16.4-10.5 16.4-10.5a13 13 0 0 1 1.8 3c.1 0 1.4-1.9 11-6.1 9.6-4.3 14.2-8 14.2-8 1.2 2.4 1 4 1 4 26.3-9.1 52-30.2 52-30.2.8 1.7.5 4.4.5 4.4 4.2-4 19.7-13.2 19.7-13.2a8.6 8.6 0 0 1-4.6 8.2 7.7 7.7 0 0 1 .8 2.3 360 360 0 0 0 14.4-9.5c4.3 3.7.4 9.8.4 9.8 1.6-.3 2.6-1.6 2.6-1.6 1.2 6.4-5.9 12-5.9 12 1.3 0 3.3-1.3 3.3-1.3-1.3 7-14.4 14.6-14.4 14.6 1.9 1.8 0 4-1.6 5-1.5 1-4.3 3.3-3.4 4.2.8 1 6.7-3.2 6.7-3.2 1 2.9-6.5 8.6-6.5 8.6 5.2.7 19.6-5.9 19.6-5.9-1.1 5.6-6.6 10-13.3 12.5-6.7 2.5-6.4 3-6.4 3 1.2.8 10.5-1.8 10.5-1.8-2.8 6.2-12.5 10.5-12.5 10.5 2.7 2.3 6.3-.4 10-2.9a58.2 58.2 0 0 1 14-6.4c5.3-1.9 9.2-.5 9.2-.5a12 12 0 0 1 8.4.6c8.7.7 9.6 3.9 9.6 3.9 1 .2 1.7.6 4 2.3 2.1 1.6 2 6.6 2 9.2-.2 2.4-.9 2.4-1.3 3-.4.8-.5 1.6-.5 2.5 0 1-2.2 6.9-15.7 6.9h-20.3c-1.2 0-2.5.7-2.5.7-5.7 2.8-2.7-2-9.4 3.6-6.8 5.5-10.2 4.6-10.2 4.6A90.1 90.1 0 0 1 568 221c-4 2.6-3.3 2.3.3 3.8s8.8 0 8.8 0c-3.4 2.3-1 3.4-1 3.4 4.4-2.7 7.2-1.7 7.2-1.7 1.4 3.9-3.8 10-3.8 10 2 .3 5.8 0 5.8 0-1 2.7-4.6 5.6-7.4 6.4-2.7 1-2.3 1.3-1.4 3 .7 1.6.1 3.3.1 3.3-4.8-3.3-5-.4-5-.4-.5 4-.4 9.6-.4 9.6-3.4-1.7-3.5.5-3.5.5-1 3.6-5.1 7.7-5.1 7.7-.2-2.2-2.2-2.8-2.2-2.8-2.2 4.2-6.1 6.7-6.1 6.7-.5 3.5.5 8.6.5 8.6-2.6-.6-3.5-.6-4 0-.3.7.6 1 .6 1l33.4.8c.5 0 2.5.3 2.5 3.8 0 3.7-3 3.9-3 3.9l-36.4-.9s.1 1-1.8 2-1.2-1.1-1.7 3.4c-.6 4.4-7.8-.4-7.8-.4-1.2 1.8-4 4-4 4-1.7-5-3.4-6.4-6-2.2-2.6 4.3 4.8 3.6 4.8 3.6s42.8-6.3 45.1-6.5c2.3-.3 4.9-.1 6 3.1 1 3.3-5.3 3.8-5.3 3.8l-44 4.8c-.9 2.6-4.5 2.4-4.5 2.4.3 2.5-2.3 4-3.6 5-1.4.8-5.6.5-5.6.5-5 3.4-7.6.7-7.6.7-3.3 1.4-5.4.8-8.1-.4-2.8-1.2-2.5-4.5-2.5-4.5l-27.8 3a6.7 6.7 0 0 0-2.2 1.2c1 1.3-2 4.3-2 4.3.9.5 2.5 2.1 2.7 5.5.2 3.7-4.5 4.3-2.2 7 2.3 2.5 6.7.3 11.5-2s9.5-2 11.5-2 7.8 1.6 11.4 2.8c3.6 1.2 4.8.4 5-1.4.2-1.7 1.9-2.3 1.9-2.3-.5 1.8.5 2.6.5 2.6a11 11 0 0 0 3.7-1.3c-.2 1.4-2 2.2-2 2.2-3.4 2.3 1.4 1.5 1.4 1.5a44 44 0 0 1 15.4-1.5 122.5 122.5 0 0 1 14.3 5.2c.4-1.2.1-4 .1-4 3 .8 4.2 2.5 4.2 2.5 1.2-1.2.4-3.4.4-3.4 9.7 5.5-2 8-5.1 9-3 1-3 2.3-3 2.3a28 28 0 0 1 6.4-1.3c2.2-.2 1.4 0 6.5-1 5.2-1 7.8 1.2 7.8 1.2-4.3.2-5.5 1.5-5.5 1.5 2.6 1.7 0 3.4 0 3.4-3.8-5-7.2.1-7.2.1a15.3 15.3 0 0 1 6.4 1.4l5.4 2.7c3.6 1.6 2.9.6 5.6 1.6 2.8 1 1.7 3.7 1.7 3.7a6.8 6.8 0 0 0-3.7-3c-.2 3-3.1 3.5-3.1 3.5 3.6-4-4.1-5.8-7.8-5.7-3.6 0-6.3 2.4-6.3 2.4 7.3 6.9 12.3 4.6 12.3 4.6-.9 2.5-6.9 1.5-6.9 1.5 2.8 2.2 2.5 3.6 2.5 3.6-1.5-1.4-4-.7-9.2-4-5.2-3.5-9.9-2.3-9.9-2.3 5.2 5.3-1.8 8.6-1.8 8.6-2.6 1.6 1 3.5 1 3.5-3.2.6-3.6-2.6-3.6-2.6-1.7-.4-4.2 1.6-4.2 1.6.2-3.2 4.6-1.6 4.6-5 .2-3.5-4-6.2-16.3-4.5-12.4 1.7-16-2.2-16-2.2-1 0-1.2 1-1.2 1 2 2 2.9 2.8 2.6 4.2-.4 1.3.6 1.8.6 1.8-2.3-.2-2.4-2.8-2.4-2.8 0 1.1-.5 1.2-1.3 2.3s0 2.7 0 2.7c-1-.8-2.7-1.8-1-4.3 1.2-1.8-2.7-4.2-2.7-4.2-1.5-1.5-5.6 0-5.6 0a14.9 14.9 0 0 1-13.3-3.7c-1 0-2.9-.6-2.9-.6-8.9 4-16.7-4.6-16.7-4.6-6.7 1.3-9.8-2-11.8-5.2a11.5 11.5 0 0 0-5.2-5c-2.6-1.6-5.2-6.2-2.6-8.7 2-2.1 1.5-2.6 1.5-2.6-3.5-5.9 6.1-7.7 6.3-9.2.3-2 2.3-3.3 4.5-3.4 2.2-.2 2.2 0 3.7-1.4 1.3-1.5 4 .3 4 .3.7-.4 5.5-4.1 9.7-2.2 4.3 1.9 7.9.6 7.9.6 3-.7 28-4 28-4 1.5-2.5 2.7-5.4 9.6-7s12-6 12-6c-1.2-1.2-3.2-1.2-4.2-1.3-1.1 0-3.2-2-3.2-2-1.3.6-2 .3-11 5.8-8.1 5-8.3-4.8-8.3-4.8H479c-.3 3.7-3 5.2-3 5.2l-6.5.3c-3.6-1.8-3.6-8.2-3.6-8.2-19.4.3-30.1 7.2-30.1 7.2-22-11.2-39.2-13.8-39.2-13.8a122.4 122.4 0 0 0 40.8-10.2 63.3 63.3 0 0 0 28.5 9c.5-5.4 4.1-6.7 4.1-6.7z"/>
<path fill="#ffc221" d="M442.3 314.6c-5.5 3.2-4.5 5-4 6s.5 2-1 3.6c-1.5 1.5-1.4 2-1.4 2 .3 5.4 4 6.6 5.7 8 1.4 1 3.6 4.5 3.6 4.5 2.9 4.1 5.9 4.2 8.1 4.2 2.3 0 2-.3 1-1.3l-3.4-2.7a17.6 17.6 0 0 1 5.9 4.1c5.6 6.2 10.8 5.4 13.1 5.2 2.3-.3 2-1.7 2-1.7a9 9 0 0 0-2.4-.4c-8.5-.8-11-6.4-11-6.4a24.1 24.1 0 0 0 15.6 6c2.4-.1 2.3.6 1.7.8l-2.4-.2c-1.1 0-1.1.3-.9.8.3.4 1.4.4 2.7.4 1.4 0 .3.1 3.8 2.8 3.6 2.8 12.3.5 12.3.5-5.7-1.3-6.4-4-6.4-4-7.7 1-10.8-3.6-10.8-3.6a32.5 32.5 0 0 0-5.6-3.5 8.9 8.9 0 0 1-5-5.8c1.3 1.8 3.7 3.8 6.7 4.6 3 .8 3.8 1.2 3.8 1.2a3.8 3.8 0 0 1-2.3-.2c-3-1-1.3.3-1.3.3 3.4 2.7 4.3 2.5 4.3 2.5 8.6.9 4.3-2.6 4.3-2.6 6.2 1.5 7.2-.8 7.2-.8 1.3 2.7 6 1.7 6 1.7-6.2 3-1.5 2.1-1.5 2.1 6.3-1.1 7.6.5 7.6.5 1.6 1.5 3.4 1.4 3.4 1.4s1.2 0 3.5.4c2.4.5 6.2 2.5 9.6 2.2 3.5-.5 4 .6 4 .6-.6-.3-2.2-.5-4.8.7-2.7 1.3-7.4 1.6-14.2 0s-7.4-1.3-7.4-1.3a8.7 8.7 0 0 1 3.4 4c.3 1.2 1.5 1.2 1.5 1.2.5-1.5 2.5-2.1 2.5-2.1a27 27 0 0 0 5 2.8c.4-.7 0-1.3 0-1.3 2.6 2.5 5.6 1.7 5.6 1.7.8-.5.6-2 .6-2 1 0 1.2.6 2 1.2.7.4 3 .1 3 .1-.8-.4-1.5-1.7-1.5-1.7 3.5-2.3 11-1.3 11-1.3 5.3 1 4.7 4.5 4.7 4.5a10 10 0 0 1 2.5 2.1c.5-1.2 0-2.5 0-2.5 2.6 1.2 3 4 3 4 3-3.2-2.7-6.8-2.7-6.8 2.7-.4 5.7-.2 7.5 0a13.8 13.8 0 0 1 6.6 3.1c2.1 1.7 5.9 2.5 5.9 2.5-.1-.7-2.2-2-2.7-2.2-.4-.2-.6-.9-.6-.9 1.9.4 3.1.2 3.1.2-6.4-4-8.1-5.9-8.1-5.9 2.4.3 3.8-1.2 3.8-1.2-5.1 0-5.4-1.2-5.4-1.2.7.1 3.1.7 6.2.1s7.2 0 7.2 0c-2.2-3.6-10.7-3-13.5-2.8-2.8.2-3.8-.2-3.8-.2.4-.2.9-.6 3-.7 2.2 0 4.3.2 6.8-1.6 2.3-1.6 5.7-1 5.7-1-.8-1.6-4.7-2.2-8 0-3.5 2.1-6.5 1.5-6.5 1.5 5.3-.8 6.9-2.7 6.9-2.7-1.6-.4-2.5.1-5.8.8-3.2.6-4-.5-4-.5 3.5-2.1 6-3 6-3-3-.6-5.8-2-5.8-2-3.2 3-5.6 4.6-11.7 1.6-6-3.2-9.2-2.8-9.2-2.8a14.2 14.2 0 0 1 14.8.6c4 2.3 5 .4 5 .4-1.2-.7-1-1.5-1-1.5 9.6 4.9 13.8 2 15.9.5 2.1-1.5-1-3.4-1-3.4-.2 3-4 4.6-7.2 3.5-3-1-6-2.4-10.4-4.3-4.4-1.8-10-.8-15.1.2-5.2 1.1-5.9.6-6.4.2-.5-.4-.7-1.7-3.4-.6-2.6 1.1-8.8-1.8-12.6-2.7-3.8-1-10.1-.5-15.5 2.5-5.4 3.1-8.2 2.3-9.8 1.6-1.6-.8-2.7-2.8-.9-4.6s2-2.3 1.8-5c-.2-2.6-2.8-4.2-2.8-4.2 2.4-2.5 3-3 2.2-4-.8-1.2.4-1.2 1.8-1.8 1.4-.6.8-.7.5-1.5-.4-.8-1.2-.6-1.2-.6-3.1.1-4.9-.8-4.9-.8-5.2-2.4-10.1 2.3-10.1 2.3-3-2.3-3.7-.7-4.2-.2-.5.5-1.6 1-3 1-1.2.2-3.1.7-3.8 1.9 0 0-.6 1 .1 2 0 0 .8 1.2-.6 2.7-1.5 1.5-2 1.8-1.5 3.3.4 1.3.3 2.4-.3 3.3 0 0-.7-.7-.5-1.7.2-1 .2-1.6 0-2 0 0-1.5 1.4-1.8 2.4 0 0-.6-1.6 1.6-3.7 2-2 3-3.2 2.4-4-.4-.6-2 .4-2.3.6z"/>
<path d="M448.4 338s-2.7-2-2.4-4.9c.3-2.7.3-3 0-3.7 0 0-.5.3-.4 1.4 0 1-.2 2.1-.3 2.3 0 0-1.3-2.3-2-2.8 0 0 .6-2.4-.2-3.4-.7-1.1-1.5-1.2-2.4-.8-1.2.4-2.1 1.5 2 4.8 0 0 1.5 1.3 2.5 3.9 1 2.6 2.8 3 3.1 3.2zm13-7.8s-.1-1.5 1.3-4.3a6.1 6.1 0 0 0 .3-5.6c-.3-.8-.6-.5.9-1.7 1.7-1.5-.7-3.4 2.3-6 0 0 1.8-1.6 2.3-2.3 0 0-3 1.6-5.2 2.5-2 .8-9.6 4.6-8 7.1 1.8 2.5 1.6 2.7 1.3 3.8 0 0-4.6-2.5-3-6.4 0 0 .8-1.5 2.7-3.4 1.8-1.6.8.4 4.3-1.7 0 0 2.7-1.6 4.3-3.9 0 0-2 1.2-2.6 1.4 0 0-4 .8-5.8 2.5-1.6 1.7-5.1 4.7-4 8 0 0-4-.4-5-4.7 0 0-7.6 9.4 8.4 13.8 0 0 3 .8 5.6 1z"/>
<path fill="#ffc221" d="M531.6 299c6-1 40.4-6.2 43.6-6.5 3.4-.3 4.7-.8 5.9 2 1.3 3-4.8 3.1-4.8 3.1l-41.1 4.7c-2 .2-2.5-.6-2.5-.6l-1.5-2s-.5-.6.4-.8z"/>
<path fill="#5a3719" d="M447.3 317.7s-4.4 9.3 13 11.6c0 0 .1-1 .8-2.5.8-1.5 2.3-4.5.8-6.4-1.4-1.9 1.2-.9 1.5-3.4.5-2.5-.2-2.2 1-3.8 0 0-5.4 2-7.6 4.5-2 2.4 2.9 4.2 0 6.9 0 0-2.5-1-4-3.6 0 0-3.3 0-5.5-3.3z"/>
<path d="M464.5 329.2s4.3 3.7 9.4 3.6c5.1-.3 7.4-1.6 8.7-3.6 0 0 1 1.5 1 2.6 0 0 4.4-3.7 12-.5s5.4 2.3 7.1 2.5c0 0-3.3-.5-10.7 2.9-7.7 3.5-27.7 2.3-27.6-7.5z"/>
<path fill="#5a3719" d="M457.3 312.6s1.9.3 3.8-1.9c0 0-2.6.5-3.8 2zM442.6 330s-3.6-2.8-1.3-3.4c0 0 1.7-.3 1.3 3.4z"/>
<path d="M521.2 347.8s2-3.5 7.5-3.5 6.1 2.6 13.1 3c0 0-8.4 2.4-14.2.3-3-1.1-5.8-.2-6.4.2z"/>
<path fill="#5a3719" d="M466.3 331.7s8.4 5 15.7-.5c0 0 .6.6 1.2 2 0 0 5.6-5.4 15.5.4 0 0-1.2-.1-5.9 1.8-6.1 2.7-21.4 4.5-26.5-3.8z"/>
<path d="M498.3 336.7s8 1 14.7.6c4.1-.2 8.6-1 6.4.4-2.3 1.3-1.1 1.5 8.4.7 9.4-1-.1 1.7 6.4 2.6 0 0-15.9 8-35.9-4.3z"/>
<path fill="#5a3719" d="M519.2 331.7s4.6-1.7 9 .3c4.3 2 3.6 2.2 6.5 2.5 0 0-2 2.9-6.7.6-4.8-2.3-6-2.8-8.8-3.4zm5.2 14.3s4.6-2.3 9.6 0c.6.4 2 1 3.3 1.2 0 0-3.8 1.3-7.8 0-1.7-.5-3-.9-5.1-1.2zm-22.7-8.2s10.3 1 15.8-.1c0 0-6.4 3 9.7 1.7 0 0 3.5-.4 3 .1-.3.5-.6 1 1.2 1.5 0 0-12 5.4-29.7-3.2z"/>
<path d="M450.7 329.2s.2.7 2.4 1.7a8.7 8.7 0 0 1 4 3.9 5.6 5.6 0 0 0 3.5 2.9s-8 1.7-11.6-2.6c0 0-2.7-3 1.6-6"/>
<path fill="#5a3719" d="M513.7 347.6s-3.1-.2-7.5-1.7c-4.3-1.5-5.4-.2-7.9-2-2.4-1.9-7.3-.7-8.2-.6-1 .1-3.6 0-.3-2.1 0 0-2.6 0-3.6-1.4 0 0-1.2 1.2-5.6.8 0 0 2 3-6 2.1a10.3 10.3 0 0 0 11.1 3c0 .2-.5 2.5 3 3.5 3.8.9 4.5 1.6 6.4 2.3 0 0 .3-1.5-4.6-5 0 0 2.6-.2 6.4.7s12.2 3.1 16.8.4zm2 3.7s.8 1.8 3.2 1.4a17 17 0 0 1 10.2.8s.7-3.2-7-3.4c0 0-4.8.2-6.4 1.2zm-65.2-21s-3 2.5-.3 5c2.4 2.3 6.2 2.1 8 2 0 0-1-.6-2-2-1-1.5-1-2.5-3-3.4-2.1-.9-2.3-1.1-2.7-1.6zm-3-12.6s-4.6 9.3 13 11.6c0 0 0-1 .7-2.5.6-1.5 2.1-4.5.8-6.4-1.6-1.9 1.1-.9 1.5-3.4.4-2.5-.3-2.2 1-3.8 0 0-5.5 2-7.7 4.5-2 2.4 2.9 4.2 0 6.9 0 0-2.5-1-4-3.6 0 0-3.3 0-5.5-3.3z"/>
<path d="M493.3 339.3s3.7-.6 13 2.9c9.4 3.4 13.3 2.6 14.6 2.5 0 0-5.2 2.8-13.4-.8-7.2-3.2-7.6-2-14.2-4.6z"/>
<path fill="#ffc221" d="M551.8 337.2s2 0 3.4.5c0 0 .7-.7 2.7-1 0 0-1.3-1.2-6.1.5zm-6.4-5.2s2.1 0 2.8-1.2c0 0-1.1-1.3-2.8-2 0 0 .4 1.6 0 3.2zm-71.7-23.8s-.5-1 1.8-1.4l31.3-4.5s1.5 0 1.7 1c.3 1.1-.1 1.9-7.2 2.7l-25.6 3.2s-1.9.3-2-1z"/>
<path fill="#ffc221" d="M502 306.9s0 4.1 4.2 4.7c4 .6 5.5-.2 6.5-2.3.3-.7 1.6-5-.2-5.3-.8-.1-2 0-2.9.3-1.4.7-2.7 1.4-2.3 2 1 1.6 1.2 2 1 2-1.2.3-1.8-.6-2-1.2-.3-.8.5-1.2-2.2-.8-1.2.1-2 .1-2 .6zm17.5-3.2c2 .3 1.9 4.8-.6 6.9-2.8 2.2-5.4 1.3-5.4 1.3-1.4-.5-1.2-.4-.1-2 1-1.5 1.5-3.6.9-5-.2-.5.3-.9 1-1 0 0 2-.4 4.2-.2z"/>
<path fill="#ffc221" d="M521.3 304.1s1.6 2-.4 5.5c0 0-.8 1 1.1.9 1.8-.2 6.1-2.2 5.7-4.8 0 0-.2-.6-1.3-.6s-.2-.5.3-.8c.4 0 1.9-.6-1.9-3 0 0-.6-.6-1.3-.3-.6.2-2.6 1-2.6 2.2 0 .5.4 1 .4 1z"/>
<path fill="#ffc221" d="M525.4 300.9s3 2.1 3 2.8c0 .6-.3 1.5.5 1.3.8 0 4-.7 3-2.8-.8-2.1-1.7-3-3.2-3.4-1.5-.6-1.9.1-3.2 1.1 0 0-.9.6-.1 1zm-16.1 3s.5-1.5-2.2-2.2c0 0 1.1-1 3.4-.4 2.2.4 2 2 2 2.1 0 0-1.8 0-3.2.5zm5.8-.4s3-.5 4.5-.4c0 0-1.6-3.3-5.7-2.3 0 0 1.5 1.8 1.2 2.7zm5.3-.8s0-1.1 2.6-2.1c0 0-1.2-1.2-3-1-2 0-2.5.7-2.5.7s2.3.8 2.9 2.4zm1-3.6s1.7.4 2.7 1.3c0 0 1.5-1.7 2.8-2 0 0-2.5-1.4-5.5.7z"/>
<path fill="#5a3719" d="M435.8 290.9s7.2-6.2 11.2-5.4c4 .8 2 .2 6.4-.5 4.4-.6 9-1.1 10.8-.9 0 0-5.4-3.8-14.9-3.7 0 0-6.6 2.3-11.3 5.3 0 0-8.9-4.9-18-2 0 0 9.9 3.7 15.8 7.2z"/>
<path fill="#ffc221" d="m512.2 301.4 1.2-.2s2 2.5.6 2.5c-1.2 0-.8-.3-1-1a2.3 2.3 0 0 0-.8-1.3zm-9 .2s-.8 1 .6.8c1.7-.3 1.4 0 3.1-1.3 0 0 1.2-1.1 3.2-.4 0 0 1.8.6 3.2-.1 1.4-.8 1.7-.7 2.5-.6.8 0 .8.2 1.7-.6 1-.7 2.8-.1 3.9-1 1.1-1 2.5-.2 0-2 0 0-.5-.5-.5-1 0 0 1 .4 1.8 1 .8.8 2 .5 2.2.4 0 0 .2-2.3 2.3-4.3 2.3-2 2.3-2.2 1-2.2s-3.5-.6-4.3 0-7.2 4.8-11 5.5c-3.8.7-7.3 1.8-9.7 5.8zm-101.3-23.4s11.7 3 14.3 4.2c0 0 .6-1.9-4.7-3.4 0 0 12.9-.4 26.4 5.8 0 0 6.6-5.6 27.7-3.9 0 0 0-1.8.2-3.3 0 0-14.8-.4-28.4-8.7 0 0-12.3 6-35.5 9.3zm64.7 5.6c-.7-11.8 3.8-13 3.8-13s2.1 0 4.4.5c0 0-3.6 4.3-2.6 12.8 0 0 .4 1.3-2.7 1.3s-2.9-1.5-2.9-1.5z"/>
<path fill="#5a3719" d="M469.8 291.7s-2.3-2.3-2.5-4.9c0 0 0-.6 2.2-.6 2.3 0 2.5-.2 3 1.1.6 1.3 2 4 2.3 4.3z"/>
<path fill="#ffc221" d="M474.5 285.7a28.3 28.3 0 0 1-.2-4.5c.1-6.6 1.2-6 1.7-5.2h2.3s-1.7-7.4-3.7-3a19 19 0 0 0-1.5 10.4c.1 2 .3 3.3.6 4z"/>
<path fill="#5a3719" d="M500.2 285.7s4.3.8-2.3 2.3c0 0 .3 8.2 8.2 2.5 0 0 4.7-3 8-4.2 0 0 1.6-.6 1.4-1.8 0 0 .2-1.5-1.5-1.1 0 0-1.4 0-2.3-.3 0 0-1-1.2-1.6-.8-.6.5-2.1.2-.9 1.7 1.2 1.4 1.5 1 2 .6.6-.4 3.1-1.4.9.7s-4.2-1.2-5-1.8zm-22 1h-2s-1 1.6-1.7-1l-.7 1.6s2.3 8.8 4.4-.6z"/>
<path fill="#ffc221" d="M475.4 276.6s-1 5.8.3 9.2l21.1.5s-.2-4 0-9.7H494s-.5 4.6 0 7.5h-.5s-.4-4 0-7.5H491s-.4 4.3 0 7.5h-.5s-.4-3.7 0-7.5H488s-.5 3.9 0 7.5h-.6s-.5-3.9 0-7.5h-2.7s-.6 3.6 0 7.5h-.5s-.6-3.6 0-7.5h-2.7s-.6 4.2 0 7.5h-.6s-.4-4 .1-7.5h-2.5s-.7 3.5 0 7.5h-.7s-.4-3 .2-7.5h-2.6zm22.3 10.4s-.5-10.2 1.4-13c2-2.6 2.5-2 5.8 0 3.4 2.2 7.7 4.5 8.5 4.8.6.3 1.6.5 1.6 2.4s.3 2.4-2.6 0a9 9 0 0 0-2.7-1.8c-2.6-.9.6.5 1.5 1.9.8 1 1.5 1-.6 1.5a219 219 0 0 0-12.9 4.2z"/>
<path d="M505 279.6s-1.5-1.8.5-2.3c2-.4 2.1 3 2.5 5.1.3 2.2-2.5-2.1-2.8-2.7zm-2.7 9s-2.3.9-.7 1.6c1.4.7 5.5-2.7 4.2-2.5-1.6.3-3.5 1-3.5 1zm3-3s2-.3 1.6.5c-.3 1-1 .4-1.4.2-.3-.2-1.6-.7-.1-.8z"/>
<path fill="#ffc221" d="M516 282.8s.6 4 4 5c0 0 2 .4 1.5-1.3 0 0-.3-1.5-.6-2-.3-.7-1.6-1-1.8-1.1-.2 0-.3-.5.6-.2 1 .3 1 .4 1-.3s-.6-.4-1.4-.8c-.4-.2 0-.4.3-.3.4 0 1.3.3 1.3-1 0 0 .1-.8-.9-.8-1.1 0-1-.6-.7-.7.3 0 1.5.8 1.9-.6.3-1.3-1.6-.5-1.4-1.2.3-.8 1.7.3 1.7-.5.2-.8 1.3-1.1-.6-1.4-.9-.1 0-.6 1-.4 1 .1 1.6-1.2 2.3-1.6.6-.5 4.2-2.6-.6-1.9-4.7.7-6.1 3-6.3 3.5a13 13 0 0 0-1.3 7.6z"/>
<path fill="#ffc221" d="M527 285.8c.7 0 1.2 0 1.4.5.8 1.6-1 1-2 2.2s-1 1-2.4.5c-1.4-.4-2-2.5-2-2.5 0-.7.5-.8 1.2-.6 0 0 2.3.2 3.9 0zm-5-.8s0 .4.9.5c.7 0 3 .3 4.5-.1 0 0 .4-.1.2-1 0 0 0-.7-1.2-.4-1.3.2-3 0-3.7-.1-.6-.2-1 0-.8 1zm-.2-2.9s-.1 1.3 1.1 1.4c1.3.2 2.9.2 3.5 0 .5 0 1.4-.2 1.5-1 0-.7.2-1.2-1.3-.8s-3.4 0-3.6 0c-.1 0-1.2-.3-1.2.4zm.5-2.5s-.3.6-.2 1.2c0 .5.9.7 2.5.7s3-.2 3.2-.7c.1-.7.5-1.3-.7-1-1.3.1-3 .2-3.6 0-.6-.3-1.1-.4-1.2-.2z"/>
<path fill="#5a3719" d="M582.1 286s0 1 .9 2.2l-45.2-1.3s.6-.4.8-2.2z"/>
<path fill="#ffc221" d="M522.7 277.8s-.4 1.1.4 1.4c.7.2 2.2.4 4 .1 0 0 1 0 1.3-1 .3-1 .3-.4-2.3-.8 0 0-.8-.3 1.5-.3 0 0 1.4 0 1.5-.2.3-.2 2-1.7-.3-1.5-2.3 0-1.1-.5 0-.5 1.2 0 1.6.3 2 0s0-.2-.7-.8-.1-.5.3-.1c.5.3.8.5 1.3 0s-.4-1.2 0-1c.3 0 .6.8 2 0 1.6-.7 3.5-.3 4 0 .6.5 2.2 1 3.1 0 1-.8-1.1-1.7-.3-1.8 1-.1 1.6.2 1.9-.5.4-.8-1.4-1.4.3-1.8 1.6-.5.2-5-.3-5.5 0 0-1.9 1.1-3.8 4.3-2.1 3.3-3.3 5.2-6 4.2-3.9-1.5-6 .6-6.5 1-1 .6 2 .8.2.9-1.7 0-1.7.2-1.8.4-.2.3 0 .5.3.6.3 0 .9.6-.1.6s-1.8-.3-1.5.9c0 0 0 .2.6.3.6 0 .8.8-.3.8-.8 0-.8.2-.8.3zm4.1 11.3s-.7.5.3.6c1.2 0 1.7.3 2.1-.3s1.8-.4.8-1.2c-1-.8-1.6-.3-3.2 1z"/>
<path fill="#ffc221" d="M531.5 275.5s3.8-3.5 6.9-1.2c3.2 2.5 3.4 2.8 3.5 2.9 0 0 .4.3-.4 1-.9.8 0 .8.9.3s1 0 1.4.5c.5.5 1.1.8-.3.8h-4.6s-2.1.2-1-.7c1-.9.8-1.9.3-2-.6 0 0 .6-.3 1-.4.4-1.1.7-1.9.7s-1.4.6-.2 1c1.1.4-.2.7-.8.7s-3.5.2-.5.6c3 .3-.3.3 2 1.5 2.4 1.4.6 4.3-.3 4.6 0 0-1 .5.2.4 1.3-.2 2-.3 1 .4-.8.6-2.6 2.9-5 1.2 0 0-1.2-.6.8-.7 2 0-1.6-.5-2.3-1-.5-.3-3-2.7-1.5-2.5 1.6.4 1-.5.1-.8-.8-.3-1-1.6 0-1.4 1 .3 2 .9 3 .8.7 0 .5-.3-1.2-.8-1.7-.6-2.4-.7-2-2 .4-1.5 2.3.5 1.8-.6-.4-1-2-.5-1.2-1.9s1-.8 1.5-.6c.3.1 1 0-.1-.8-.8-.5 0-1.3.2-1.4z"/>
<path d="M534.2 276.5s0-.5.8-.4c.6 0 .4-.2.6-.4.2 0 1.9.5.3 1-.6.3-1.6.2-1.6-.2z"/>
<path fill="#ffc221" d="M537.9 280.5s-1.3.6-.2 2c1 1 1 1.5 1 2.2-.1.8 43.4 1.3 43.4 1.3s0-2.9 1.8-4.5l-46-1z"/>
<path fill="#5a3719" d="M582.8 285.2s.2-2.4 1.6-3.1c.7-.5 1.6-.3 2 1.6.6 2.7-1.7 5.1-2.7 4-1-1-.8-2.5-.8-2.5z"/>
<path fill="#7b3c20" d="M532.9 295.4s2.9-2.5 3.4-3.6c0 0 7.8 5.6 7.3.4l.2-2.6s2.9.3 3.3-2l-7.3-.3s-.8-.1-2 1.1c-1 1.2-3.4 2.5-5.5 1.4 0 0-1-.8-1.9 0-1 .5-1 .7-.2 1.5s2.4 2.9 2.7 4zm16.8-15.4-4.3-.2s-1.5-2.2-4.6-4.6c0 0-.9-.4.8-1.8 1.8-1.4 2.3-2.8 2.3-3.5 0-.6 0-1.7.6-1 .6.8 5 4.9 5.8 3.7.6-1.2.7-1.7.7-2.1.2-.4.3-1.5 1-.3.6 1.1 1 .8 1.1 3.8 0 0 0 3 .5 4 0 0-5.6-1.7-3.8 2zm-18.6-9.2s3.3 2 5-.6c1.5-2.5 2.6-2.8 1.4-5.3-1.2-2.3 0-3.4.9-4.4 1-1 1.8-.8 1.8-4.6.2-3.9 2.8-5 4-6.3 1.2-1.2 4.2-3-.4-3.7-4.4-.8-13.4-3-15.7-6.5-2.3-3.5-3.3-1.5-3.3-1.3 0 .2-.8 2.7 1.5 7.3s4.2 7.6 6.5 9c2.2 1.5 4.2 2.3 3 5.4s-3 8.6-4.7 11z"/>
<path fill="#5a3719" d="M543.2 261s.6 8 6.3 10.8c0 0 1.3-3 .8-6.1 0 0 1.9.1 2.4 1 0 0 0-2.3-2.6-3.2-2.7-.7-1.4-6-.4-6.5.9-.6.6-1.7 0-2.6-.7-1-.8-2.3 1.4-1.7 2.3.6 2-.6.5-1.7-1.3-1.1-1.3-2.5.7-2.5s5-1.9 3.2-2.4c-2-.6-2.5-1.3 0-2 2.7-.8 4-1.7 2-2-2-.2-3.3-.9-1.4-1.2 1.9-.3-.3-2.3-2.5-2.3-2.3-.2-7 .7-3.3-2.3 3.8-3-5.4-.8-1.6-2.8 3.8-2-1.3-1.1-2-1.1s-.7 0-.4-1c.2-1-.5-1.6-1.7-.9-1 .6-1 .6-1-.7 0-1.5-1.3-.4-2.1 0-.9.3-3 1.9-3.9 1-.7-.9-1.2-1.7-3.8-.2-2.6 1.5-2 .2-2-.5s1-3.4-2.4-.5-.7-3-3.5-1c-2.7 2-3 2.4-3.5 1.5-.5-1-1-1.7-4 .3-3.1 1.9-.8-1.3-.5-2 .5-.6 1.8-5-.9-1.6 0 0-1.3 2.4-4.2-1.9 0 0-3 4.3-3.9 2.4-.8-2-1.5-2-2.6-.8-1 1.2-.2-.1-.7-1.2-.4-1-.7-2.9-5.8.8-5.1 3.8 1.8 1-2.1 2.7s-13.5 7-4.8 5.9c8.7-1.3-4.2 3.3-1.2 4.2 3 .8 2 3.5 13.4.3 11.2-3 9.4-.4 15.2-3 5.8-2.4-1.4.9 6.4.8 7.7-.2 1.3 0 2.8 1.6 1.5 1.6 8 5.3 14.1 6 6.1.6 7.7-1.7 5.9 1-1.8 2.6-2.4 3.6-3.4 4.6-1 .8-4 3-4 6.6 0 3.7-4.8 4.3-3 8.3l4.1-4z"/>
<path fill="#5a3719" d="M553.3 269.9s-1.4-1-1.4-2.8c0 0 1 .2 1.4.8 0 0 3.5-4-.8-5.4-4.1-1.4-2-5.3-.6-5.3s1.7-.3.4-2c-1.2-1.5-1-1.6 1.3-2 2.3-.4 2.1-1 1-1.5a7.7 7.7 0 0 1-1.9-1.6s6.8-2.9 4.6-4.3c-2.2-1.3 0-1 2-2.3 2-1.4 2.2-1.7 2.5-2.3 0 0-2 .3-3.4 0 0 0 1.7-.9 0-2.3s-2.3-2.6-5-2c-2.7.7-1.8-.2-.8-1.3s.6-1.7-1.3-2c0 0 .2-1.2 1.7-2.5 0 0-3.7.2-5-.4 0 0 1.6-1 1.6-2.3 0 0-2 .7-4.5.5 0 0 1.5-1.3 1.5-2.4 0 0-4.4 1-6.4 2.5 0 0-.5 0-.8-.6-.4-.4-.6-1-5.5.6 0 0 .5-2.2 1.7-3 1.2-.8 1-2.6-6.5 2.1 0 0-1-.6-1.9-2.9 0 0-1.7 2.3-2.9 3.1 0 0-1 .5-1-1 .2-1.5-.7-.5-1.4 0-.8.4-1.3 1.5-1-1.5s-1-3.6-1-3.6-2.3 3.3-3.7 3.7c0 0-2.5-2.4-3.4-4-.8-1.6-.8-2.2-1.7.6-.9 2.7-2 3-2 3s-1.5-1.3-1.6-2c0 0-.3.7-.8 1 0 0-1.3-1.5-1.2-3.7 0 0-8.2 4.5-9.2 7.2 0 0-7.7-.5-10.8.1 0 0 .7-2.4 2.7-3.7 0 0-2-.2-2-2.3 0 0 1.6.2 2.6 0s-1.4-3.1 1.1-3.2c2.5-.1 4.2 1.2 3-2.2-1-3.3-.6-3.3-.6-3.3s4.4 2.6 5.1 1.9c.8-.6-.5-2 3.4-1.4 3.9.7 2.8-1.5 4.4-1.7 1.5 0 2.3 1 1.3-6.1s4.8 3.5.9-7.2c0 0-1-3.3-3.3-4.7 0 0-.6 2.3-3.2.3-2.6-2-7.8-2.8-5.6-4.4 2.2-1.7 3.2-3.9 2.6-5.2 0 0-2.6 2.6-7 .7-3.6-1.5-4.4 1.3-8 .5 0 0 0-1 3.1-3.4 3-2.3-1.8.8-3.6 1.3-1.9.4-2.4 0 1.5-3.1 4-3 12-8.5 11-13 0 0 1.8 2.3 6.7.6 5-1.7 8.6-2.3 10-5a23 23 0 0 1 6.4-5.6c1.1-.5 2.4-1 .9 1.5-1.6 2.4-4 6.6-10.8 9.4-6.8 2.8-9.5 4.8-10.7 6.3-1.2 1.5-7.4 4.8-3.3 4.3 4-.7 10.9 0 7.6-1-3.2-.9-6.9.6-3.9-2.1 3-2.7 3.5-3.6 7.9-5.4 4.4-1.9 9.2-6.1 8.7-1.6-.5 4.4-8.6 9.1-10.6 10.6-2 1.4-1.2 1.2-1.2 1.8 0 .6-.4 1.8-1.2 2.3-.8.6-.5 1.2-.3 2.4.2 1.3-.2 1.8.4 2 .6.1 1.2.2 1.4 1.1.2 1 .6 1 1.8 1 1.1-.2 2 0 2 .6 0 .7 1.2 1.7 1.3-.4.1-2.2 1-2.5-1.2-1.5-2.2.9-2.6.6-2.6-.4s-.2-.8-1-.9c-1 0-1.3-1.3.3-2.2 1.6-.8 1.6 0 3.6-1.6 2-1.7 2-2 2.3-3 .3-.7-2.9 2.4-4.4 3-1.5.8-1-.5-.8-2.1.3-1.7 4-4 5.7-4 1.8 0 5.6 1 4 3.3-1.7 2.3-6.4 5.2-4.5 5.4 2.1.2 2.4-.6 3.6.4 1.2 1 0 3.2-.4 4.4a8.4 8.4 0 0 1-2.2 2.7s-2.2-3.8-2.1-.8c0 3.1-.5 4.2 0 4.3.5.1 2.8 1.7 3.6 1.7s-4.1 2.3-2 2.5c2 .1 5.3-1 6.4-3 0 0-4.2-1-5.9-2.6 0 0 4.9-1.2 3.5-5.8 0 0 4.9 1.3 2.7 3.5-2 2.1-3.3 1.8-1.5 2.4 1.9.6 2.7 1.2 2.7 1.2s1.3.6.5 1.6c-.7 1-.7 2.6 0 2.5.5 0 2.6-1 .9-2-1.8-1 1.9-.8.4-1.7-1.6-1-2-1.1-2.4-1.6-.5-.3 19.7-12.2 9.5-7.8 0 0 2.1-4.6 5.1-4.6 3 0 3.2 2.3 1.5 4.2-1.7 1.7-2.8 4.6-6.7 5.2 0 0 5.6 2.7-1 7.2 0 0-1.5.7-1 1.2s4.5-1.7 5-3a5.5 5.5 0 0 1 3-3 38 38 0 0 0 11.2-9.6c2.3-3.9 2.8-4 7.2-7.5s3.6-2.8 4.2-3.6c.5-.9.7-2.3 2.7-3.4 2-1.2 9.8-5.4 12.3-7.2 2.4-1.8 7.4-5 9.6-7.8 2.1-2.7 8-6.2 9.4-5.6 1.4.7-.2 2.8-3.5 5.4-3.5 2.5-12 9.3-13.3 10.4a44.7 44.7 0 0 1-11.2 6.6c-2.7.3-2.4 1.3-4 3s-5.3 5.4-6.5 6.4c-1.3 1-4.3 3-4.4 4.5-.2 1.5.5 1.6-1.9 3.8a50 50 0 0 1-11.9 8.1s4.5 1.6 1.8 4.6c-2.6 3-2.5 2.6-2.6 2.8 0 0 6.7-1 2 4.3 0 0-1 1.5 1.1 0 2.3-1.9 1.4-4.1 1-4.5 0 0 3.7-2.3 7.9-2.3 4.1 0 4-.3.2-1.4 0 0 2.7-3.2 5-1.6 2.2 1.5 1.4 2.5-.9 3.8-2.4 1.2-5.8 1.7-8.5 3.2 0 0 5 1 7.6-1.1 2.6-2 2.8-1 3-.6.5.4.8 1-.4 2.6-1.2 1.7-1.3 1.8-1.2 2.2 0 .4-.1 1.5-2.5 2-2.3.3-3.5 1.3-2.6 2.4.7 1.2.7 4-1.2 3.7-2-.3-1.6-1.9-2.3-2.5-.8-.6-1.9-1.5-5.4.2-3.6 1.9-3.8-.3-3.7-1.5 0 0-2.3 2-4.2.2-2-1.9-.2-2.6 1-3.5 1-1 5.5-3 2.8-2.5-2.7.3-6.7.4-7.6-1.6-1-2.1 2-1.9 2.4-1.7.5.2 2.3 1.7 2.5-.3 0-2 3-2.3 2-2.6-1-.4-2.5.9-2.9 1.3 0 0-2-2.9-5.4-2-3.4 1 1 .7 2 .8.8.2.3 1.8-2.7 4.6-3 2.7-1.7 1.8.5 1.8 2.3 0 7.9 0 4.6 2.6-3.2 2.7-4.5 4-6 3.6-1.8-.5 0-1.6.8-2.1s1.2-1.2-.4-.6c-1.6.5-2.1.7-3.4-1.5-1.2-2.3-.8-1.6-.2-3.1.6-1.5 1.8-3 .4-2.5-1.6.6-1.4.7-1.3-1 .1-1.7-1.7-2.1-1.7-2.1s.8 1.7.1 2.8c-.6 1-.7 1.4.4 1.6 1 .4 2 1.3.6 2.3-1.4.9-1.2.7-.4 1.3 1 .7 2.3 1.3.9 2.7-1.4 1.4-.3 1 .4 1 .8 0 2.3.6 2.3 2 0 1.2 0 1.5 2.3.3 2.3-1.3 6.7-1.1 6.7.6 0 1.8-.6 2.3 1.8.8 2.4-1.5 3.5 1.4 5.2 0 1.6-1.5 2.6-2.8 4.6-.4 1.9 2.4 1.3 3-1 4.8-2.3 1.7 1.1.4 2.9-.5s6.7-1.5 9.5-.2c2.9 1.2 3.7 1 5.8 0 2.1-.8 3.2-1 6.3 1.1 3.3 2.2 5.7 2.6 7.4 2.5 0 0-3.5 1.4-7.5 1.6-4 .3-6 1-6.7 1.6 0 0 2.3 1.5 2.8 3.2 0 0 2.6-.3 3.8.2 0 0-.6 1.9 1 2.9s2.7 1.4 1.5 2.7c-1.2 1.4 1.9.8.1 2.7-1.7 2-2.1 3-2.2 4.5 0 1.6.4 1.8-1.1 2-1.6.1.2 1.9-.5 4-.7 2-5 1.7-4.8 7.2 0 0 1.2-2.7 3.8-5 2.5-2.4 2.6-2.6 2.5-4 0-1.4-.1-1.1 1.2-2.2 1.4-1-.6-2 .8-3.6 1.3-1.5.2-1.2 1.8-2.7 1.5-1.6-1.5-1.7.2-3.3 1.5-1.6-4-3.5-2.3-4.5 1.5-1 4.3-2.4-5-2.3 0 0 2.3-3.6 10-2.9 0 0-2 1.6-2.2 3l1.6.5s-.4 1.1-1.9 2.3c0 0 4.2 2.3 4.9 3.8 0 0-2.6.8-3.3 1.8 0 0 1.2 1.3 1.6 3 0 0-2.9-.4-3.2 1.7-.4 2.1-1.3.7-1.3 2s.1 1.7-.9 2c-1 0-.1 1.1 0 1.8.2.7.6 2.3.4 2.8 0 0-1.5 0-2.1.2 0 0 .4 3-1.3 3.5-1.7.4 1 1-.9 1.3-1.8.3-1.5.5-3.7 4.5 0 0 1.9-1 3.8-2.4 2-1.3-.2-1 3-4 3.3-3.3 2.7-3.5 2.4-5.1-.2-1.6-.3-3 .9-4.5s1.5-3.2 5.7-3c0 0-1.2-2.8-2.7-3.5 0 0 2-1.3 4-1.5 0 0-1.8-2.3-5.6-4.4 0 0 3-2.6 3.9-3.9 0 0-1.5.3-2.7 0 0 0 .6-1.3 3.4-3.1 0 0 1.5 1.4 1.4 2.9 0 0 4.8-2.7 7.5-2.4 0 0 1.4 3.4-5.3 10 0 0 4.2.3 6 0 0 0-1 3.2-6 5-5 2 1 4.2-4.1 3.8-5-.4-3.5 1.3-3.4 3.9.2 2.6.3 5.3.2 6 0 0-4-1.3-4 2.6.1 4-2 4.8-2.5 5.1 0 0-1.2-1-3-1.7 0 0-2.5 4.9-6.5 7.7z"/>
<path fill="#7b3c20" d="M547.4 220.5s1.4-.2 3.8 1.2c2.3 1.5 4.6-1.5 2-2.3-2.6-.8 0-1.8 2.4.2 2.4 1.9 3.3.9 4.2.3.8-.7 1.9-1.1.3-2.2-1.6-1.1 1-.6 2.3.3 1.2.7.7 1.5.6 1.7-.2.2-.3 2.9 2 .5 2.4-2.5 3.7-4.8 3.6-6 0 0 1.3.8 1.5 2.3.2 1.5 2-.8 2.6-1.6.6-.8 1.6-3 1.5-4.4 0 0 1.6 2.5 4 0s1.4-1 4.2-1.7a17.6 17.6 0 0 0 8.5-5.2c2-2.5 2.1-.8 4.6-1.4s7.7-4.2 8.2-6.1c.4-1.9.3-3.1-.4-2.4-.7.6-.4 0-1.5-.6-1.1-.7-2.7.9-2.7.9s1.6 1.2.3 1.7c-1.2.6-2.3 2.3-4.6 1.6-2.3-.6-4.8 2.2-4.8 2.2s2 1.6-.7 2.7c-2.7 1-2.3 1.4-3.9.2 0 0-2.9 3.7-4.6 4.5 0 0-.7 0-1.2-.8 0 0-2 2.1-2.8 2.5 0 0-1.3-1-2.3-1.5 0 0-2.3 2.9-4.2 3.7 0 0-.6-1-1.8-1.7 0 0-.6 3.6-4.6 5.8 0 0 .2-1-1.8-2.3 0 0-5 4.3-6.9 4.7-2 .4-.2-.9 0-1.5.4-.5 1.6-2.3-.8-3s-2 .5-2.5.7c-.6.2-.6-.4-2.2-.2s-1.3.9-2 1.2c-.8.2-3.6-.5-3.4 1.4.1 1.8 1.5 3.1-1 4.2-2.5 1 1 .8 4.1.4z"/>
<path fill="#5a3719" d="M557.5 215.3s.6-2.5-1.5-3.5c0 0 13.2-2.1 3.2-7.2 0 0 11.9-2.3 9-6.1-2.7-3.8-5.4-3-5.8-3-.4 0 2.5-2.1 3.3-1.8.7.3 10.2 3.9 7.8.7-2.4-3-2.2-2.9-2.6-3.8 0 0 3.1 0 7.9 4.6 0 0 1-1 .9-2.9 0 0 3.3 1 4.4 2 0 0 .6-1.2.3-1.8 0 0 3 1.5 4 3.2 0 0 1.3-1.2 1.5-2.6 0 0 3 1.3 3.7 2.2 0 0 1-1.3.6-3 0 0 4.9 1.3 5.5-1.6 0 0 4.9 1 1.7 2.9-4 2.5-.4-.6-4.6 2.3-3.2 2.3-5 4.9-6.6 4.4-1.1-.5-2.5 2.9-4 1.3-1.5-1.7-1.5-1-2.7.7a24.5 24.5 0 0 1-2.8 3.5s-.8-.5-1.6-1.2c0 0-.8 1.6-2 2.8 0 0-1-1.3-2.6-2 0 0-2.3 2.7-3.8 3.7 0 0-1.4-1.4-2.9-1.9 0 0-.2 3.8-3.1 5.7 0 0-.6-1.2-2.6-2 0 0-1.4 2.3-4.6 4.3z"/>
<path fill="#5a3719" d="M550.6 209.5s-1.6 1.2-.6 2.5c1 1.4 1.1-.2 2.4-.3 1.3-.2 17.5-3 2.8-7.3 0 0 .7-.6 3.1-.8 2.6-.3 11.8-2.7 7.5-6-4.3-3.2-7.9 1.1-4.3-2.8 3-3.1.6-4.6.6-4.6s-8.5 5.6-10.4 6.7c-1.8 1-4.6 3-1.4 4 3.3 1 5.4-3.4 5.7-2.4.3 1-6.4 4.8-5.4 6.4.9 1.8.7 3.3 2.4 2.9 1.6-.3 6 .8 2.5.7-3.7-.1-5 1-5 1z"/>
<path d="M556.4 201.3s-1.5 1.1.5.6 5.9-1.4 5.2-2.4c-.8-1-3.4.2-5.7 1.8z"/>
<path fill="#7b3c20" d="M582.4 184.5s7.5-.2 10.5 1.9c3 2 4.6 3.4 5.5 3.8 0 0-.1 2.8-5 .7 0 0 .4 1.4-.2 2.8 0 0-1.7-1.2-3.8-1.7 0 0-.4 1-1 1.7 0 0-2.1-2.2-4.6-2.9 0 0-.4 1.1-.8 1.6 0 0-2.6-1.6-4.6-1.6 0 0 .4 1.7 0 2.3 0 0-5.4-4.3-10.3-3.8 0 0 2.3 3.5 3.8 5.1 0 0-9.8-.7-8-6 1.5-5.3-.2-4 6.2-4h12.3z"/>
<path fill="#5a3719" d="M536.3 199.1s-1.1 1 0 1.7c1.1.8 5-2 5.5-2.4.6-.4 2-.4 0 1.1s-3.8 3-5 4.6c0 0 6.4-1.8 10.6-5.4 4.3-3.7-.1-1.3 7-4.8 7.3-3.5 11.1-9.1 7.2-8.5-3.8.6-7.3 5-10.4 6.7-3 1.7-4.7 2-4.2 1 .4-1 2.7-.6 6.9-4 4.1-3.3 3.2-3 3.2-4.2 0-1.2-1.5-4 4.7-7.4 6.2-3.3 25.6-14.5 27.3-18.5 0 0-5.7.6-13.2 6.1a69.7 69.7 0 0 1-13.4 8.8c-2 .8-1.8.2-3.1 1.9a171.8 171.8 0 0 1-10.1 9.8c-1.3 1-1.8 1.6-1.9 3.8 0 1-8.4 7.3-11 9.7z"/>
<path fill="#5a3719" d="M562 184.3s-1.5.6-3 0c-1.3-.7-.8-3.6 2.5-5.5a50 50 0 0 1 12.6-4.8s-.5 3.8-10.1 7.1c0 0 .6 2-2 3.2z"/>
<path fill="#aa5323" d="M565.4 181.8s.3 1 0 1.8c0 0 17.9 1.7 27.1-9.2 0 0-12.7 1.2-17.7 4.3 0 0 3.2-4 12.7-7.3s13.4-7.4 14.2-9.7c0 0-12 4.3-17.7 4.3 0 0-1.2 0-2.3.5-1.1.7-8.8 6.2-10.8 7.2 0 0 4.3-.4 5.9-1.8 0 0-3 8-11.4 10z"/>
<path fill="#5a3719" d="M531 192s-2.3 1.7-1.3 2.4c1 .9 2.6 1 6-1.9 3.6-3 12.1-10.2 6.8-10.5 0 0-7-.4-6.7 3.8.2 4.2-4.4 6-4.8 6.2zm-15.9-2.5s4.6 2.7 2.8 4.9c0 0 14-11.8 10-14.4-3.8-2.6-6.9 2.3-6 2.7 1 .6 3-.4 2.3.6a77.4 77.4 0 0 1-9 6.2zm-3.6-3.8s3 1 3.2 2.3c.1 1.2 9.2-6.4 6.8-9.7-1.1-1.5-6-2-6.4.8-.2 3 4.6-.3 3 1.8-2.2 2.7-5.9 4.4-6.6 4.8zm32.6-6.4s-1.9 1.4-.1 2.3c1.8.7 2.8-.6 3.7-1.3.9-.8 5.3-4 6.2-6 1-2 2.5-2.7 4.1-3.7 1.5-1 12.6-6.6 19.5-12.7 6.8-6.1 4-4.5 11-8.4s11.7-7.5 13.2-11.8c0 0-3.3 1-6.2 3a243 243 0 0 1-10.7 6.5c-1.3.5-3 .6-4 1.6s-1 2.3-4.3 5c-3.5 2.9-21 15.3-23.2 17a334.7 334.7 0 0 0-9.2 8.5z"/>
<path fill="#aa5323" d="M530 183.4s2-1 5.6-.8c3.6.2 17.8-13.6 22-16.3a341.6 341.6 0 0 0 18.7-13.8c1.8-1.8 2-3.6 3.6-4.6 1.5-1 3-.9 6.4-2.9 3.5-2 20.3-12 19.3-17.8 0 0-25 15-30.7 19.8a375 375 0 0 1-24.7 17.7c-2.8 1.9-5 5-9.9 8.8-4.7 3.9-9.5 7.2-10.3 10z"/>
<path fill="#aa5323" d="M524.8 178s4.6-.4 5.2 1.9c0 0 10-6.8 12.2-9.6 2.2-2.8-.8-1.2 4.9-4.9a594.3 594.3 0 0 0 27-19.1c2.7-2.3 7.8-5.5 11.9-8.2 4-2.8 19.9-10.6 18.1-17l-14.2 9.5c-2.7 1.8-3.9.8-6.5 2.9-2.6 2.1-8.5 6.3-9.5 7.6a161.3 161.3 0 0 1-14.4 11c-4.4 3-14.1 8.6-18.9 12.8a602.8 602.8 0 0 1-15.8 13.2z"/>
<path fill="#aa5323" d="M510.4 176.8s2.3 0 3.1.9c0 0 4.3-3.9 8.9 0 0 0 16.8-11.5 18.5-14.4 1.7-2.8 4.5-2.9 11-7.6 6.6-4.8 10.7-6.9 15-10.2 4.4-3.4 8.1-7.3 11.2-9.3 3.1-2 11-7.2 9.8-11.7 0 0-6.5 3.6-10.6 8.2-4.2 4.6-3.8.7-8.1 4.5a82.7 82.7 0 0 1-16.3 11.7c-5.5 2.7-2.2 2.4-6.2 5-3.9 2.5-3.6 2-5 2.5a10 10 0 0 0-5.1 3c-1.6 1.7-5.4 4-9.6 6.5a106.5 106.5 0 0 0-16.6 10.9z"/>
<path fill="#aa5323" d="M515.5 168s-1-1.9.7-3.3c1.6-1.3 4.6-4.8 5-7 .5-2.3.1-1.9 4.8-3.8a188.2 188.2 0 0 0 38.2-21.6c1.8-1.5 6.4-4.6 8.3-6.2 0 0 .8 2.5-1.2 4.2a222.1 222.1 0 0 1-21.5 14.9 76.6 76.6 0 0 0-9.6 5.5c-1.9 1.6-1.6 2-10.2 6.3-8.5 4.1-9 4.6-8.7 4.9.3.4 4.2-1.3 6-2.4 1.8-1 8.8-4.3 11-6a69 69 0 0 1 7-5 296 296 0 0 0 18-11.2c3.5-2.7 4.5-3.5 5.3-3 .7.4 2 .4.4 2s-6.7 6-8.7 7.3c-2 1.3-8.1 5-9.8 5.8-1.7 1-2.4 2.5-3.4 3.2-.9.8-3.7 2.7-7 3.5s-4 3.3-6.3 4.8c-2.3 1.4-18 10-18.5 10.3 0 0 .9-1 .2-3.2z"/>
<path fill="#aa5323" d="M570.3 132.4s-.9.8-.4 1.2c.6.6 2.8 2.2 5.6-.6a106.5 106.5 0 0 1 12.5-10c2.3-1.5 3.6-2.8 3.5-4.7 0 0-11.4 6-21.2 14.1zm15.6-1s1.7-2.9 6-5.7c4.3-2.7 10.8-6.7 11.5-7.6 0 0 1.6 1.7-1.7 3.8a311.7 311.7 0 0 0-10.8 7c-.7.7-2 1.6-5 2.5z"/>
<path fill="#7b3c20" d="M499 163s-4.8 2.6-3.1 4.2c1.7 1.5 4.2 1 5.4.6l3.2-1c.4 0 4.5-1.3 5.6-3.2 1-2 3.8-4.2 6-5.8 2.2-1.5 3-3.2 2.7-4.3L499 163zm-28.4 22s3.4-2 8-.7c0 0-.2-1.1-1-1.7 0 0 5.7-1.5 6.9-4 1.2-2.5 1.5-2 2.5-2.6 1.2-.8 8.7-6.8 7.8-8.1-.9-1.3-1-3.1-1.7-3.7 0 0-1.5 2.1-9 5.7-7.2 3.6-15.4 6.2-21.4 14.2-5.9 8-5.3 12.6 2 14.7 0 0 5-3.2 17.6-2.1 12.4 1.1 16.6 5.8 17.4 6.6.8.9 3.3 4 .9 9.1 0 0 2.5 1.1 2.6-1.3.3-2.3.4-1.8 1-1.5.6.4 1.3.5 1-1.4a18 18 0 0 0-2.3-7.2c-1.1-1.5.2-.8.9-.6.7.3 3.3 2.5 1.8-1.5-1.5-3.8-2-2-2-1.8 0 .3-.4 1.2-3.8-1.4a26.8 26.8 0 0 0-8.8-4.4c-2.3-.6-.7-.6.7-1 1.4-.6 3.1-.8 3.8-2.4 0 0-1.4.3-3.8-.6a13.2 13.2 0 0 0-11.5 2s1.2-4.5-2.5-4.3c-3.6.3-6.2.2-10 3.2 0 0-.3-4.6 3.4-7 3.7-2.5 3.2-1 5.2-1.6 2-.6 2.3-2.7 1.4-3.4 0 0 4.8.9 12.8-5.8 0 0-4.3 5.7-9.5 6.8 0 0-.9 3-5.7 3.7-4.8.7-4.6 3.4-4.6 4.1z"/>
<path fill="#5a3719" d="M457 212.7s2.2-14.1 15.5-15.1c11.4-1 15.1.5 17.4 1.3s8 2.4 5.8 4.2c-2.2 1.8-3.5 1.5-3.5 1.5s2.5-2.9.2-3.3c-2.3-.5-2.4.9-2.7 2-.4 1.3-.5 2.6-1.6 3.6 0 0-1.2-1.4-2.9-.2s-.2 1.2.5 1c.6-.2 1.5-.5 1.3.5-.1 1-1 2.8-3.8 4.2-2.7 1.4-2.6 1.3-5.8 1.9-3.3.5-6.3 1.8-10.5 5.3-4.2 3.6-8.7 2.4-9.6-1.5-.8-3.4-.4-5.4-.4-5.4z"/>
<path d="M472 212.2s1.2-2.7-1-4c0 0-6.9 1.2-9-.9 0 0 7.5-.4 12.2-2.3 4.6-1.7 3.3-3 1.7-3.4-1.6-.3-4.6.5-4.9 2 0 0-1-1.6.2-2.6a5 5 0 0 1 4.7-.8c1.7.4 3.1 1.2 8.6-1.6 0 0 3.1.7 3.3 2.8 0 2.2-.3 3-.6 3.3-.2.4-.6 1-1.3 1-.6-.2-1.5-.3-2.3 1.2a8.9 8.9 0 0 1-2.6 3.7s1.5-4.6-2.5-5.7c0 0-3.3 2-5.8 2.1 0 0 3.2 3-.8 5.2z"/>
<path fill="#5a3719" d="M479.3 203.8s-1.6-1.6.4-1.9c2-.1 4.6 1.4 4.2 2.7-.6 1.2-3 1.1-4.6-.8z"/>
<path fill="#fff" d="M592.6 181.6s-3.7 1-.2 3.3c3.4 2.3 5 4.2 7.5 4.8 2.5.7 5 1.5 5 4s-.5 3.5-1.9 5.2c-1.3 1.7.8 2.4 2.6 1.5 1.8-1 3.3-1.5 4.5-2.2 1.1-.7 3-.6 1.4.3-1.9 1-3.7 1.5-1.4 1.5 2.3.1 16.2.4 19.1-.6 3-.9 6.8-1.2 7-5 0 0 .2-1.6 1.3-2.4 1-.7 1.8-2.3.2-1.2-1.5 1.1-2.7 1.7-3 1.3-.3-.3-.5-.6.7-1.1 1.2-.5 1.8 0 2.9-1.5 1-1.6 1-1.4.4-2-.6-.6-1.8-1-1.2-1.8.6-.8 1.2-3-1.4-1.7-2.5 1.3-7.6 4.8-10 5.3-2.2.5-4 1.2-7.1 1.8-3 .7-5 1.4-8.5 3.3-3.3 1.8-3-1.1-2.5-1.5 0 0 1.3 2.3 4.7-.7 3.4-2.9 2.3-.1 10.6-2.9 8.3-2.7 6.3-3.1 9.5-4.8 3.3-1.7 6.4-1.8 4-4-2.2-2.4-2.4-2.5-5.3 0a34.5 34.5 0 0 1-16 6.4s18.8-8 16.9-9.2a20.8 20.8 0 0 0-5.3-2.5c-1.3-.3-1.7-.6-4.7.8-3 1.3-3.5 1.6-4.3 1.7-1 0-3.5.6-7 2.4-3.6 1.9-5.5 2.6-8 4 0 0 1.7-3.3 9.1-5.5 7.4-2.2 11.1-4.2 10.4-4.6s-2.7-.8-4-.5c-1.5.3-1-.1-5.6 1.7-4.5 1.8-2.6 1.4-6.2 2.2-3.7.7-5.1 1.5-6.9 2.3 0 0 .8-1 3.1-1.9 1.3-.4-1.3-.9 2.2-1h1a32.2 32.2 0 0 0 8.6-3.3c-.7-.1-5.1-.6-9.5 1.6-4.5 2-2.5 1.3-4 1.5-1.6.4-5 2.4-6 3.4-1.1.9-2.7 1.5-2.7 1.5z"/>
<path fill="#5a3719" d="M482.7 201.8s1.8.5 2.2 1.8c.5 1.2 1.6-.6 1.6-1.1-.1-.6-1.2-3-3-1.9-2 1.1-1 1.1-.8 1.2z"/>
<path fill="#7b3c20" d="M477.9 226s3.7-1.8 6.9-1.5c0 0-1.3-4.4.9-3.7 2.1.8 1.5.4 2 .4 0 0 .1-2.9-.5-4 0 0 2.3.5 4.6.5 0 0-2.2-4.1.2-7a6.9 6.9 0 0 0 4.2 3.4v-2.3s1.7-.3 3 .4c1.4.8 2.5-7.6-1.5-9.3 0 0-1 1.5-4.7 2.3s-3.7 1.5-5.2 4.3-3 2.9-6.2 5c-3 2-5 6-5 6.4 0 0 1.5 2 1.3 5.1z"/>
<path fill="#999" d="M603.1 177.8c1.3-.2-1.4-.9 2-1h1a32.2 32.2 0 0 0 8.7-3.3c-.7-.1-5.1-.6-9.5 1.5s-2.5 1.4-4 1.7c-1.6.3-5 2.3-6 3.3-1.1.9-2.7 1.5-2.7 1.5s-3.7 1-.2 3.4c3.4 2.3 5 4.2 7.5 4.8 2.5.7 5 1.5 5 4a7 7 0 0 1-1.9 5.2c-1.3 1.7.8 2.4 2.6 1.5 1.8-1 3.3-1.5 4.5-2.2 1.1-.7 3-.6 1.3.3-1.8 1-3.6 1.5-1.3 1.5 2.3.1 16.2.4 19.1-.6 3-.9 6.8-1.2 7-5 0 0 .2-1.6 1.3-2.4 1-.7 1.8-2.3.2-1.2-1.5 1.1-2.8 1.7-3 1.3-.3-.3-.5-.6.7-1.1 1.2-.5 1.8 0 2.9-1.5 1-1.6 1-1.4.4-2l-1-.9s-.9-.7-1.9-.1a27.6 27.6 0 0 1-7 2.7c-1.6.1-3.5.9-6.5 2.4s-8.2 4.6-9 1.7l-2.8 1c-3.4 1.8-3-.7-2.5-1.4 0 0-1.8 2-1.7.2 0-1.8 1.2-1.5 3.3-2.1 2-.6 5-2 3.8-3-1.3-1-2.7 1-4.2 1.8-1.4.7-4.3 1.2-4.8-.9-.4-2.1-.4-3.6-4.3-3.8-4-.2-3.9-2.7-2.8-3.8 1.1-1 2-2.8 5.7-3.5z"/>
<path d="M615.6 196.9s6.1-2.8 11.7-4.1c5.7-1.3 1.2.2.3.4-1 .3-9.7 3.2-11.8 4.2-2 1-1.7.2-.2-.4zm1.4 1.3s6.9-2.3 8.2-1.4c1.3 1 .2.6-1.3.8-1.6.1-5.7.8-6.8.8-1.1 0-.1-.2-.1-.2zm11-2.5s1.4-.2 1.5.4c.1.4-.6.5-1.3.4-.7-.1-1.3-.5-.1-.8z"/>
<path fill="#fff" d="M446 255.9s-.3-6.2 2.8-9.2 17.8-18.5 20.1-22.8c0 0 2 1.3 2 3.8 0 0 2.5-4.3 4.5-6 0 0 1.7 1.8 1.5 5.4 0 0 3.5-1.9 9-1.9 0 0-2 2.4-2.1 3.9 0 0 7.6-1 11.7-.3 0 0-10.6 6-7.7 6.5 3.1.5 6.2 0 6.2 0s-3.4 3.3-8.8 4c0 0 6.9 0 8.2 1.5 0 0-6.6 1-12 5 0 0-.4-.2-.4-1.7 0 0-.3 1.4-1.8 2.7-1.5 1.2-5.1 4-6.5 5.3-1.4 1.3-3.8 4-6.6 4 0 0 .6-2.1-1.4-2.8a5.7 5.7 0 0 0-6 1.5s-7 .1-9.4.5c0 0 1.6-2.6 3-2.6 1.6 0 7.6 1 8.1-3.2.6-4-3.8-3-2.2-5.4 1.7-2.4 1.3-2.2 1.4-2.6 0 0-1.4.8-2.2 3a10.7 10.7 0 0 1-4.2 6 15 15 0 0 0-4.8 5s-1.3 0-2.4.4z"/>
<path fill="#fff" d="M452.8 252.2s.3-.8 2.3-1.2c2.2-.3 2.3-1.3 2-1.8-.3-.4-1.5-.4.5-2.8 0 0 .8.3 1.2.8.6.6 2.9 5.5-6 5z"/>
<path fill="#999" d="M447.9 247.9c0 4 5.3 2.5 5.3 2.5a21.4 21.4 0 0 0-3.8 3.6c.4-2-3-2.5-3-2.5a12.3 12.3 0 0 1 1.5-3.6zm19.3-21.5 1.7-2.5s2 1.3 2 3.8c0 0 2.5-4.3 4.5-6 0 0 1.7 1.8 1.5 5.4 0 0 3.5-1.9 9-1.9 0 0-2 2.4-2.1 3.9 0 0 7.6-1 11.7-.3 0 0-10.6 6-7.7 6.5 3.1.5 6.2 0 6.2 0s-3.4 3.3-8.8 4c0 0 6.9 0 8.2 1.5 0 0-2 .3-4.6 1.2 0 0-1.9-1.8-7.6-1.5 0 0 4.4-2.6 8-3.4 0 0-1.6-2-4-.1 0 0-4.9-3.3-.8-6.2 0 0-2.8-.5-4.7.8 0 0 0-2.3 2.1-3.3 0 0-5.4-1-6.7 3 0 0-1-1.5-.5-3.4 0 0-3.3 1.9-4.8 4 0 0-.5-4-2.6-5.5M456.8 252c-.9.2-2.3.3-4 .2 0 0 .2-.5 1.3-1 0 0 .4.8 2.7.8"/>
<path d="M466.6 236.7s2.5 2 3.3 3c0 0 2.3-1.4 3-2.7 0 0 1.9 1.1 2.4 2.8 0 0 1.3-.8 1.5-2 0 0 3 .6 4.2 1.6 0 0 .4-3 0-4.8 0 0 2.1.2 3.4.7 0 0-1.2-2 5-4.5 0 0-4.7 1.1-6.5 3 0 0-2 .2-2.9-.4v4.5s-1.2-.6-3.5-1.1c0 0-.6 1-1 1.2 0 0-1.5-1.2-2.1-2.7 0 0-2.3 2.1-3 3 0 0-2.3-1.6-3.8-1.6z"/>
<path fill="#ffc221" d="M452.5 267.3s1 .4 3.3-1.4 8.7-5.9 9.2-9.2c.7-3.3-2-3.4-4-2.5-2.2 1-1.3 2.7-1.2 3.4 0 .6.2 2.9-3.3 6l-4 3.7z"/>
<path fill="#ffc221" d="M451.9 268.3s-5.2-2.2-.6-4.5 6.7-2.9 7.2-4.9c.6-1.9.2-1.5-1.5-.7-1.7.7-8.2 3.8-9.2 1 0 0 2.7 1 6-.6 3.4-1.7 6.2-2.1 4-2.8a37 37 0 0 0-11 .5c-1.4.4-1 .3-1.3 1.6-.2 1.3-1.6 4-2.2 4.7-.5.8-1.8 4 .6 5.5a8.6 8.6 0 0 0 8 .2z"/>
<path d="M449.9 257s-1.3.2-1 .7c.2.5.5.4 1 .4.3 0 1-.2 1.1-.5 0-.3-.8-.7-1.1-.5z"/>
<path fill="#fff" d="M451.5 267.1s-2.4-1.1.4-2.6c2.7-1.5 5.6-3 6-3.6 0 0-1.3 1.9-6.4 6.2z"/>
</svg>

After

Width:  |  Height:  |  Size: 32 KiB

View File

@@ -0,0 +1,6 @@
<svg xmlns="http://www.w3.org/2000/svg" id="flag-icons-at" viewBox="0 0 640 480">
<g fill-rule="evenodd">
<path fill="#fff" d="M640 480H0V0h640z"/>
<path fill="#c8102e" d="M640 480H0V320h640zm0-319.9H0V.1h640z"/>
</g>
</svg>

After

Width:  |  Height:  |  Size: 237 B

View File

@@ -0,0 +1,8 @@
<svg xmlns="http://www.w3.org/2000/svg" id="flag-icons-au" viewBox="0 0 640 480">
<path fill="#00008B" d="M0 0h640v480H0z"/>
<path fill="#fff" d="m37.5 0 122 90.5L281 0h39v31l-120 89.5 120 89V240h-40l-120-89.5L40.5 240H0v-30l119.5-89L0 32V0z"/>
<path fill="red" d="M212 140.5 320 220v20l-135.5-99.5zm-92 10 3 17.5-96 72H0zM320 0v1.5l-124.5 94 1-22L295 0zM0 0l119.5 88h-30L0 21z"/>
<path fill="#fff" d="M120.5 0v240h80V0h-80ZM0 80v80h320V80H0Z"/>
<path fill="red" d="M0 96.5v48h320v-48zM136.5 0v240h48V0z"/>
<path fill="#fff" d="m527 396.7-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.6 17.4 11.1Zm-3.7-117.2 2.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.6-11.6 6.6Zm-104.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.8L387 178l6.7 19.3 19.4-6.3-10.9 17.3 17.1 11.2ZM623 186.7l-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 18 17.8 11.3Zm-96.1-83.5-20.7 2.3 1.9 20.8-14.7-14.8-15.1 14.4 2.4-20.7-20.7-2.8 17.7-11L467 73.5l19.7 6.9 7.3-19.5 6.8 19.7 19.8-6.5-11.1 17.6 17.4 11.5ZM234 385.7l-45.8 5.4 4.6 45.9-32.8-32.4-33 32.2 4.9-45.9-45.8-5.8 38.9-24.8-24-39.4 43.6 15 15.8-43.4 15.5 43.5 43.7-14.7-24.3 39.2 38.8 25.1Z"/>
</svg>

After

Width:  |  Height:  |  Size: 1.3 KiB

View File

@@ -0,0 +1,186 @@
<svg xmlns="http://www.w3.org/2000/svg" id="flag-icons-aw" viewBox="0 0 640 480">
<defs>
<clipPath id="aw-a">
<path fill-opacity=".7" d="M0 0h288v216H0z"/>
</clipPath>
</defs>
<g clip-path="url(#aw-a)" transform="scale(2.2222)">
<path fill="#39c" d="M0 0v216h324V0H0z"/>
<path fill="#ff0" d="M0 144v12h324v-12H0zm0 24v12h324v-12H0z"/>
</g>
<path fill="#9cc" d="m142.7 28 2.9 3-3-3zm-3 6 3 3-3-3m5.9 0 3 3-3-3z"/>
<path fill="#ccf" d="m139.7 37 3 2.9-3-3m5.9 0 3 3-3-3z"/>
<path fill="#6cc" d="m136.7 42.8 3 3-3-3z"/>
<path fill="#c66" d="m142.7 42.8 2.9 3-3-3z"/>
<path fill="#6cc" d="m148.6 42.8 2.9 3-3-3z"/>
<path fill="#ccf" d="m136.7 45.8 3 3-3-3zm11.9 0 2.9 3-3-3z"/>
<path fill="#fcc" d="m139.7 48.7 3 3-3-3m5.9 0 3 3-3-3z"/>
<path fill="#6cc" d="m133.8 51.7 3 3-3-3z"/>
<path fill="#c00" stroke="#fff" stroke-width="3.7" d="m142.2 34-20.7 78.5L42.8 134l78.4 20.5 21 78.4 20.9-78.4 78.4-21-78.4-20.9-21-78.4z"/>
<path fill="#6cc" d="m151.5 51.7 3 3-3-3z"/>
<path fill="#9cf" d="m133.8 54.6 3 3-3-3m17.7 0 3 3-3-3z"/>
<path fill="#fcc" d="m136.7 57.6 3 3-3-3m11.9 0 2.9 3-3-3z"/>
<path fill="#69c" d="m130.8 60.5 3 3-3-3z"/>
<path fill="#c33" d="m137.7 62.5 1 2-1-2m11.8 0 1 2-1-2z"/>
<path fill="#69c" d="m154.5 60.5 3 3-3-3z"/>
<path fill="#9cf" d="m130.8 63.5 3 3-3-3m23.7 0 3 3-3-3z"/>
<path fill="#fcc" d="m133.8 66.4 3 3-3-3m17.7 0 3 3-3-3z"/>
<path fill="#69c" d="m127.9 69.4 3 3-3-3zm29.5 0 3 3-3-3z"/>
<path fill="#9cc" d="m127.9 72.3 3 3-3-3m29.5 0 3 3-3-3z"/>
<path fill="#cff" d="m127.9 75.3 3 3-3-3m29.5 0 3 3-3-3z"/>
<path fill="#69c" d="m125 78.3 2.9 2.9-3-3z"/>
<path fill="#fcc" d="m130.8 78.3 3 2.9-3-3m23.7 0 3 3-3-3z"/>
<path fill="#69c" d="m160.4 78.3 3 2.9-3-3z"/>
<path fill="#9cc" d="m125 81.2 2.9 3-3-3z"/>
<path fill="#c33" d="m131.8 83.2 1 2-1-2m23.6 0 1 2-1-2z"/>
<path fill="#9cc" d="m160.4 81.2 3 3-3-3z"/>
<path fill="#cff" d="m125 84.2 2.9 3-3-3m35.5 0 3 3-3-3z"/>
<path fill="#fcc" d="m127.9 87.1 3 3-3-3m29.5 0 3 3-3-3z"/>
<path fill="#9cc" d="m122 90 3 3-3-3z"/>
<path fill="#c33" d="m128.9 92 1 2-1-2m29.5 0 1 2-1-2z"/>
<path fill="#9cc" d="m163.3 90 3 3-3-3z"/>
<path fill="#ccf" d="m122 93 3 3-3-3m41.3 0 3 3-3-3z"/>
<path fill="#fcc" d="m125 96 2.9 3-3-3m35.5 0 3 3-3-3z"/>
<path fill="#9cc" d="m119 99 3 2.9-3-3z"/>
<path fill="#c33" d="m126 100.9.9 2-1-2m35.4 0 1 2-1-2z"/>
<path fill="#9cc" d="m166.3 99 3 2.9-3-3z"/>
<path fill="#ccf" d="m119 101.9 3 3-3-3m47.3 0 3 3-3-3z"/>
<path fill="#fcc" d="m122 104.8 3 3-3-3m41.3 0 3 3-3-3z"/>
<path fill="#9cc" d="m116 107.8 3 3-3-3z"/>
<path fill="#c33" d="m122 107.8 3 3-3-3m41.3 0 3 3-3-3z"/>
<path fill="#9cc" d="m169.2 107.8 3 3-3-3m-62 3 3 2.9-3-3z"/>
<path fill="#ccf" d="m110.2 110.7 3 3-3-3m65 0 2.9 3-3-3z"/>
<path fill="#9cc" d="m178 110.7 3 3-3-3m-79.6 3 3 3-3-3z"/>
<path fill="#ccf" d="m101.3 113.7 3 3-3-3z"/>
<path fill="#fcc" d="m113.1 113.7 3 3-3-3z"/>
<path fill="#c33" d="m116 113.7 3 3-3-3m53.2 0 3 3-3-3z"/>
<path fill="#fcc" d="m172.2 113.7 3 3-3-3z"/>
<path fill="#ccf" d="m184 113.7 3 3-3-3z"/>
<path fill="#9cc" d="m187 113.7 2.9 3-3-3z"/>
<path fill="#69c" d="m86.6 116.6 3 3-3-3z"/>
<path fill="#9cc" d="m89.5 116.6 3 3-3-3z"/>
<path fill="#cff" d="m92.5 116.6 3 3-3-3z"/>
<path fill="#fcc" d="m104.3 116.6 3 3-3-3z"/>
<path fill="#c33" d="m109.2 117.6 2 1-2-1m67.9 0 2 1-2-1z"/>
<path fill="#fcc" d="m181 116.6 3 3-3-3z"/>
<path fill="#cff" d="m192.8 116.6 3 3-3-3z"/>
<path fill="#9cc" d="m195.8 116.6 3 3-3-3z"/>
<path fill="#69c" d="m198.7 116.6 3 3-3-3m-121 3 3 3-3-3z"/>
<path fill="#9cc" d="m80.7 119.6 3 3-3-3z"/>
<path fill="#cff" d="m83.6 119.6 3 3-3-3z"/>
<path fill="#fcc" d="m95.4 119.6 3 3-3-3z"/>
<path fill="#c33" d="m100.3 120.6 2 1-2-1m85.6 0 2 1-2-1z"/>
<path fill="#fcc" d="m189.9 119.6 3 3-3-3z"/>
<path fill="#cff" d="m201.7 119.6 3 3-3-3z"/>
<path fill="#9cc" d="m204.6 119.6 3 3-3-3z"/>
<path fill="#69c" d="m207.6 119.6 3 3-3-3m-138.8 3 3 2.9-3-3z"/>
<path fill="#9cf" d="m71.8 122.5 3 3-3-3z"/>
<path fill="#fcc" d="m86.6 122.5 3 3-3-3z"/>
<path fill="#c33" d="m91.5 123.5 2 1-2-1m103.3 0 2 1-2-1z"/>
<path fill="#fcc" d="m198.7 122.5 3 3-3-3z"/>
<path fill="#9cf" d="m213.5 122.5 3 3-3-3z"/>
<path fill="#69c" d="m216.4 122.5 3 3-3-3z"/>
<path fill="#6cc" d="m60 125.5 3 3-3-3z"/>
<path fill="#9cf" d="m63 125.5 2.9 3-3-3z"/>
<path fill="#fcc" d="m74.8 125.5 2.9 3-3-3zm135.8 0 2.9 3-3-3z"/>
<path fill="#9cf" d="m222.3 125.5 3 3-3-3z"/>
<path fill="#6cc" d="m225.3 125.5 3 3-3-3m-174.2 3 3 2.9-3-3z"/>
<path fill="#ccf" d="m54 128.4 3 3-3-3z"/>
<path fill="#fcc" d="m65.9 128.4 3 3-3-3z"/>
<path fill="#c33" d="m70.8 129.4 2 1-2-1m144.7 0 2 1-2-1z"/>
<path fill="#fcc" d="m219.4 128.4 3 3-3-3z"/>
<path fill="#ccf" d="m231.2 128.4 3 3-3-3z"/>
<path fill="#6cc" d="m234.2 128.4 3 3-3-3z"/>
<path fill="#9cc" d="m42.3 131.4 3 3-3-3z"/>
<path fill="#ccf" d="m45.2 131.4 3 3-3-3z"/>
<path fill="#fcc" d="m57 131.4 3 3-3-3zm171.3 0 3 3-3-3z"/>
<path fill="#ccf" d="m240 131.4 3 3-3-3z"/>
<path fill="#9cc" d="m243 131.4 3 3-3-3m-206.6 3 3 2.9-3-3z"/>
<path fill="#c66" d="m51.1 134.3 3 3-3-3zm183 0 3 3-3-3z"/>
<path fill="#9cc" d="m249 134.3 2.9 3-3-3m-206.6 3 3 3-3-3z"/>
<path fill="#ccf" d="m45.2 137.3 3 3-3-3z"/>
<path fill="#fcc" d="m57 137.3 3 3-3-3m171.3 0 3 3-3-3z"/>
<path fill="#ccf" d="m240 137.3 3 3-3-3z"/>
<path fill="#9cc" d="m243 137.3 3 3-3-3z"/>
<path fill="#6cc" d="m51.1 140.3 3 2.9-3-3z"/>
<path fill="#ccf" d="m54 140.3 3 2.9-3-3z"/>
<path fill="#fcc" d="m65.9 140.3 3 2.9-3-3z"/>
<path fill="#c33" d="m70.8 141.2 2 1-2-1m144.7 0 2 1-2-1z"/>
<path fill="#fcc" d="m219.4 140.3 3 2.9-3-3z"/>
<path fill="#ccf" d="m231.2 140.3 3 2.9-3-3z"/>
<path fill="#6cc" d="m234.2 140.3 3 2.9-3-3m-174.2 3 3 3-3-3z"/>
<path fill="#9cf" d="m63 143.2 2.9 3-3-3z"/>
<path fill="#fcc" d="m74.8 143.2 2.9 3-3-3zm135.8 0 2.9 3-3-3z"/>
<path fill="#9cf" d="m222.3 143.2 3 3-3-3z"/>
<path fill="#6cc" d="m225.3 143.2 3 3-3-3z"/>
<path fill="#69c" d="m68.8 146.2 3 2.9-3-3z"/>
<path fill="#9cf" d="m71.8 146.2 3 2.9-3-3z"/>
<path fill="#fcc" d="m86.6 146.2 3 2.9-3-3z"/>
<path fill="#c33" d="m91.5 147.1 2 1-2-1m103.3 0 2 1-2-1z"/>
<path fill="#fcc" d="m198.7 146.2 3 2.9-3-3z"/>
<path fill="#9cf" d="m213.5 146.2 3 2.9-3-3z"/>
<path fill="#69c" d="m216.4 146.2 3 2.9-3-3m-138.7 3 3 3-3-3z"/>
<path fill="#9cc" d="m80.7 149.1 3 3-3-3z"/>
<path fill="#cff" d="m83.6 149.1 3 3-3-3z"/>
<path fill="#fcc" d="m95.4 149.1 3 3-3-3z"/>
<path fill="#c33" d="m100.3 150 2 1-2-1m85.6 0 2 1-2-1z"/>
<path fill="#fcc" d="m189.9 149.1 3 3-3-3z"/>
<path fill="#cff" d="m201.7 149.1 3 3-3-3z"/>
<path fill="#9cc" d="m204.6 149.1 3 3-3-3z"/>
<path fill="#69c" d="m207.6 149.1 3 3-3-3m-121 3 2.9 2.9-3-3z"/>
<path fill="#9cc" d="m89.5 152 3 3-3-3z"/>
<path fill="#cff" d="m92.5 152 3 3-3-3z"/>
<path fill="#fcc" d="m104.3 152 3 3-3-3z"/>
<path fill="#c33" d="m109.2 153 2 1-2-1m67.9 0 2 1-2-1z"/>
<path fill="#fcc" d="m181 152 3 3-3-3z"/>
<path fill="#cff" d="m192.8 152 3 3-3-3z"/>
<path fill="#9cc" d="m195.8 152 3 3-3-3z"/>
<path fill="#69c" d="m198.7 152 3 3-3-3z"/>
<path fill="#9cc" d="m98.4 155 3 3-3-3z"/>
<path fill="#ccf" d="m101.3 155 3 3-3-3z"/>
<path fill="#fcc" d="m113.1 155 3 3-3-3z"/>
<path fill="#c33" d="m116 155 3 3-3-3m53.2 0 3 3-3-3z"/>
<path fill="#fcc" d="m172.2 155 3 3-3-3z"/>
<path fill="#ccf" d="m184 155 3 3-3-3z"/>
<path fill="#9cc" d="m187 155 2.9 3-3-3m-79.7 3 3 3-3-3z"/>
<path fill="#ccf" d="m110.2 158 3 3-3-3m65 0 2.9 3-3-3z"/>
<path fill="#9cc" d="m178 158 3 3-3-3m-62 3 3 2.9-3-3z"/>
<path fill="#c33" d="m122 161 3 2.9-3-3m41.3 0 3 3-3-3z"/>
<path fill="#9cc" d="m169.2 161 3 2.9-3-3z"/>
<path fill="#fcc" d="m122 163.9 3 3-3-3m41.3 0 3 3-3-3z"/>
<path fill="#ccf" d="m119 166.8 3 3-3-3z"/>
<path fill="#c33" d="m126 168.8.9 2-1-2m35.4 0 1 2-1-2z"/>
<path fill="#ccf" d="m166.3 166.8 3 3-3-3z"/>
<path fill="#9cc" d="m119 169.8 3 3-3-3m47.3 0 3 3-3-3z"/>
<path fill="#fcc" d="m125 172.7 2.9 3-3-3m35.5 0 3 3-3-3z"/>
<path fill="#ccf" d="m122 175.7 3 3-3-3z"/>
<path fill="#c33" d="m128.9 177.6 1 2-1-2m29.5 0 1 2-1-2z"/>
<path fill="#ccf" d="m163.3 175.7 3 3-3-3z"/>
<path fill="#9cc" d="m122 178.6 3 3-3-3m41.3 0 3 3-3-3z"/>
<path fill="#fcc" d="m127.9 181.6 3 3-3-3m29.5 0 3 3-3-3z"/>
<path fill="#cff" d="m125 184.5 2.9 3-3-3z"/>
<path fill="#c33" d="m131.8 186.5 1 2-1-2m23.6 0 1 2-1-2z"/>
<path fill="#cff" d="m160.4 184.5 3 3-3-3z"/>
<path fill="#9cc" d="m125 187.5 2.9 3-3-3m35.5 0 3 3-3-3z"/>
<path fill="#69c" d="m125 190.4 2.9 3-3-3z"/>
<path fill="#fcc" d="m130.8 190.4 3 3-3-3m23.7 0 3 3-3-3z"/>
<path fill="#69c" d="m160.4 190.4 3 3-3-3z"/>
<path fill="#cff" d="m127.9 193.4 3 3-3-3zm29.5 0 3 3-3-3z"/>
<path fill="#9cc" d="m127.9 196.3 3 3-3-3m29.5 0 3 3-3-3z"/>
<path fill="#69c" d="m127.9 199.3 3 3-3-3m29.5 0 3 3-3-3z"/>
<path fill="#fcc" d="m133.8 202.2 3 3-3-3m17.7 0 3 3-3-3z"/>
<path fill="#9cf" d="m130.8 205.2 3 3-3-3z"/>
<path fill="#c33" d="m137.7 207.2 1 2-1-2m11.8 0 1 2-1-2z"/>
<path fill="#9cf" d="m154.5 205.2 3 3-3-3z"/>
<path fill="#69c" d="m130.8 208.2 3 2.9-3-3m23.7 0 3 3-3-3z"/>
<path fill="#fcc" d="m136.7 211.1 3 3-3-3m11.9 0 2.9 3-3-3z"/>
<path fill="#9cf" d="m133.8 214 3 3-3-3zm17.7 0 3 3-3-3z"/>
<path fill="#6cc" d="m133.8 217 3 3-3-3m17.7 0 3 3-3-3z"/>
<path fill="#fcc" d="m139.7 220 3 3-3-3m5.9 0 3 3-3-3z"/>
<path fill="#ccf" d="m136.7 222.9 3 3-3-3m11.9 0 2.9 3-3-3z"/>
<path fill="#6cc" d="m136.7 225.9 3 3-3-3z"/>
<path fill="#c66" d="m142.7 225.9 2.9 3-3-3z"/>
<path fill="#6cc" d="m148.6 225.9 2.9 3-3-3z"/>
<path fill="#ccf" d="m139.7 231.8 3 3-3-3m5.9 0 3 3-3-3z"/>
<path fill="#9cc" d="m139.7 234.7 3 3-3-3m5.9 0 3 3-3-3m-3 6 3 2.9-3-3z"/>
</svg>

After

Width:  |  Height:  |  Size: 9.7 KiB

View File

@@ -0,0 +1,18 @@
<svg xmlns="http://www.w3.org/2000/svg" id="flag-icons-ax" viewBox="0 0 640 480">
<defs>
<clipPath id="ax-a">
<path fill-opacity=".7" d="M106.3 0h1133.3v850H106.3z"/>
</clipPath>
</defs>
<g clip-path="url(#ax-a)" transform="matrix(.56472 0 0 .56482 -60 -.1)">
<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: 556 B

View File

@@ -0,0 +1,8 @@
<svg xmlns="http://www.w3.org/2000/svg" id="flag-icons-az" viewBox="0 0 640 480">
<path fill="#3f9c35" d="M.1 0h640v480H.1z"/>
<path fill="#ed2939" d="M.1 0h640v320H.1z"/>
<path fill="#00b9e4" d="M.1 0h640v160H.1z"/>
<circle cx="304" cy="240" r="72" fill="#fff"/>
<circle cx="320" cy="240" r="60" fill="#ed2939"/>
<path fill="#fff" d="m384 200 7.7 21.5 20.6-9.8-9.8 20.7L424 240l-21.5 7.7 9.8 20.6-20.6-9.8L384 280l-7.7-21.5-20.6 9.8 9.8-20.6L344 240l21.5-7.7-9.8-20.6 20.6 9.8L384 200z"/>
</svg>

After

Width:  |  Height:  |  Size: 509 B

View File

@@ -0,0 +1,12 @@
<svg xmlns="http://www.w3.org/2000/svg" id="flag-icons-ba" viewBox="0 0 640 480">
<defs>
<clipPath id="ba-a">
<path fill-opacity=".7" d="M-85.3 0h682.6v512H-85.3z"/>
</clipPath>
</defs>
<g fill-rule="evenodd" clip-path="url(#ba-a)" transform="translate(80) scale(.9375)">
<path fill="#009" d="M-85.3 0h682.6v512H-85.3V0z"/>
<path fill="#FC0" d="m56.5 0 511 512.3V.3L56.5 0z"/>
<path fill="#FFF" d="M439.9 481.5 412 461.2l-28.6 20.2 10.8-33.2-28.2-20.5h35l10.8-33.2 10.7 33.3h35l-28 20.7 10.4 33zm81.3 10.4-35-.1-10.7-33.3-10.8 33.2h-35l28.2 20.5-10.8 33.2 28.6-20.2 28 20.3-10.5-33 28-20.6zM365.6 384.7l28-20.7-35-.1-10.7-33.2-10.8 33.2-35-.1 28.2 20.5-10.8 33.3 28.6-20.3 28 20.4-10.5-33zm-64.3-64.5 28-20.6-35-.1-10.7-33.3-10.9 33.2h-34.9l28.2 20.5-10.8 33.2 28.6-20.2 27.9 20.3-10.4-33zm-63.7-63.6 28-20.7h-35L220 202.5l-10.8 33.2h-35l28.2 20.4-10.8 33.3 28.6-20.3 28 20.4-10.5-33zm-64.4-64.3 28-20.6-35-.1-10.7-33.3-10.9 33.2h-34.9L138 192l-10.8 33.2 28.6-20.2 27.9 20.3-10.4-33zm-63.6-63.9 27.9-20.7h-35L91.9 74.3 81 107.6H46L74.4 128l-10.9 33.2L92.1 141l27.8 20.4-10.3-33zm-64-64 27.9-20.7h-35L27.9 10.3 17 43.6h-35L10.4 64l-11 33.3L28.1 77l27.8 20.4-10.3-33zm-64-64L9.4-20.3h-35l-10.7-33.3L-47-20.4h-35L-53.7 0l-10.8 33.2L-35.9 13l27.8 20.4-10.3-33z"/>
</g>
</svg>

After

Width:  |  Height:  |  Size: 1.3 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 640 480">
<path fill="#00267f" d="M0 0h640v480H0z"/>
<path fill="#ffc726" d="M213.3 0h213.4v480H213.3z"/>
<path id="bb-a" d="M319.8 135.5c-7 19-14 38.6-29.2 53.7 4.7-1.6 13-3 18.2-2.8v79.5l-22.4 3.3c-.8 0-1-1.3-1-3-2.2-24.7-8-45.5-14.8-67-.5-2.9-9-14-2.4-12 .8 0 9.5 3.6 8.2 1.9a85 85 0 0 0-46.4-24c-1.5-.3-2.4.5-1 2.2 22.4 34.6 41.3 75.5 41.1 124 8.8 0 30-5.2 38.7-5.2v56.1H320l2.5-156.7z"/>
<use xlink:href="#bb-a" width="100%" height="100%" transform="matrix(-1 0 0 1 639.5 0)"/>
</svg>

After

Width:  |  Height:  |  Size: 613 B

View File

@@ -0,0 +1,4 @@
<svg xmlns="http://www.w3.org/2000/svg" id="flag-icons-bd" viewBox="0 0 640 480">
<path fill="#006a4e" d="M0 0h640v480H0z"/>
<circle cx="280" cy="240" r="160" fill="#f42a41"/>
</svg>

After

Width:  |  Height:  |  Size: 187 B

View File

@@ -0,0 +1,7 @@
<svg xmlns="http://www.w3.org/2000/svg" id="flag-icons-be" viewBox="0 0 640 480">
<g fill-rule="evenodd" stroke-width="1pt">
<path d="M0 0h213.3v480H0z"/>
<path fill="#ffd90c" d="M213.3 0h213.4v480H213.3z"/>
<path fill="#f31830" d="M426.7 0H640v480H426.7z"/>
</g>
</svg>

After

Width:  |  Height:  |  Size: 287 B

View File

@@ -0,0 +1,7 @@
<svg xmlns="http://www.w3.org/2000/svg" id="flag-icons-bf" viewBox="0 0 640 480">
<g fill-rule="evenodd">
<path fill="#de0000" d="M640 479.6H.4V0H640z"/>
<path fill="#35a100" d="M639.6 480H0V240.2h639.6z"/>
<path fill="#fff300" d="m254.6 276.2-106-72.4h131L320 86.6 360.4 204l131-.1-106 72.4 40.5 117.3-106-72.6L214 393.4"/>
</g>
</svg>

After

Width:  |  Height:  |  Size: 353 B

View File

@@ -0,0 +1,7 @@
<svg xmlns="http://www.w3.org/2000/svg" id="flag-icons-bg" viewBox="0 0 640 480">
<g fill-rule="evenodd" stroke-width="1pt">
<path fill="#d62612" d="M0 320h640v160H0z"/>
<path fill="#fff" d="M0 0h640v160H0z"/>
<path fill="#00966e" d="M0 160h640v160H0z"/>
</g>
</svg>

After

Width:  |  Height:  |  Size: 283 B

View File

@@ -0,0 +1,4 @@
<svg xmlns="http://www.w3.org/2000/svg" id="flag-icons-bh" viewBox="0 0 640 480">
<path fill="#fff" d="M0 0h640v480H0"/>
<path fill="#ce1126" d="M640 0H96l110.7 48L96 96l110.7 48L96 192l110.7 48L96 288l110.7 48L96 384l110.7 48L96 480h544"/>
</svg>

After

Width:  |  Height:  |  Size: 252 B

View File

@@ -0,0 +1,15 @@
<svg xmlns="http://www.w3.org/2000/svg" id="flag-icons-bi" viewBox="0 0 640 480">
<defs>
<clipPath id="bi-a">
<path fill-opacity=".7" d="M-90.5 0H592v512H-90.5z"/>
</clipPath>
</defs>
<g fill-rule="evenodd" clip-path="url(#bi-a)" transform="translate(84.9) scale(.9375)">
<path fill="#18b637" d="m-178 0 428.8 256L-178 512zm857.6 0L250.8 256l428.8 256z"/>
<path fill="#cf0921" d="m-178 0 428.8 256L679.6 0zm0 512 428.8-256 428.8 256z"/>
<path fill="#fff" d="M679.6 0h-79.9L-178 464.3V512h79.9L679.6 47.7z"/>
<path fill="#fff" d="M398.9 256a148 148 0 1 1-296.1 0 148 148 0 0 1 296 0z"/>
<path fill="#fff" d="M-178 0v47.7L599.7 512h79.9v-47.7L-98.1 0z"/>
<path fill="#cf0921" stroke="#18b637" stroke-width="3.9" d="m280 200.2-19.3.3-10 16.4-9.9-16.4-19.2-.4 9.3-16.9-9.2-16.8 19.2-.4 10-16.4 9.9 16.5 19.2.4-9.3 16.8zm-64.6 111.6-19.2.3-10 16.4-9.9-16.4-19.2-.4 9.3-16.9-9.2-16.8 19.2-.4 10-16.4 9.9 16.5 19.2.4-9.3 16.8zm130.6 0-19.2.3-10 16.4-10-16.4-19.1-.4 9.3-16.9-9.3-16.8 19.2-.4 10-16.4 10 16.5 19.2.4-9.4 16.8z"/>
</g>
</svg>

After

Width:  |  Height:  |  Size: 1.1 KiB

View File

@@ -0,0 +1,14 @@
<svg xmlns="http://www.w3.org/2000/svg" id="flag-icons-bj" viewBox="0 0 640 480">
<defs>
<clipPath id="bj-a">
<path fill="gray" d="M67.6-154h666v666h-666z"/>
</clipPath>
</defs>
<g clip-path="url(#bj-a)" transform="matrix(.961 0 0 .7207 -65 111)">
<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: 499 B

View File

@@ -0,0 +1,5 @@
<svg xmlns="http://www.w3.org/2000/svg" id="flag-icons-bl" viewBox="0 0 640 480">
<path fill="#fff" d="M0 0h640v480H0z"/>
<path fill="#002654" d="M0 0h213.3v480H0z"/>
<path fill="#ce1126" d="M426.7 0H640v480H426.7z"/>
</svg>

After

Width:  |  Height:  |  Size: 231 B

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