mapwright 0.12.0__tar.gz → 0.16.0__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (94) hide show
  1. {mapwright-0.12.0 → mapwright-0.16.0}/.gitignore +1 -0
  2. {mapwright-0.12.0 → mapwright-0.16.0}/CHANGELOG.md +63 -1
  3. {mapwright-0.12.0 → mapwright-0.16.0}/NOTICE +20 -1
  4. {mapwright-0.12.0 → mapwright-0.16.0}/PKG-INFO +80 -3
  5. {mapwright-0.12.0 → mapwright-0.16.0}/README.md +76 -2
  6. mapwright-0.16.0/docs/gallery/age-old.png +0 -0
  7. mapwright-0.16.0/docs/gallery/age-old.svg +1 -0
  8. mapwright-0.16.0/docs/gallery/age-young.png +0 -0
  9. mapwright-0.16.0/docs/gallery/age-young.svg +1 -0
  10. mapwright-0.16.0/docs/gallery/archipelago.png +0 -0
  11. {mapwright-0.12.0 → mapwright-0.16.0}/docs/gallery/archipelago.svg +1 -1
  12. mapwright-0.16.0/docs/gallery/arctic.png +0 -0
  13. mapwright-0.16.0/docs/gallery/arctic.svg +1 -0
  14. mapwright-0.16.0/docs/gallery/continent.png +0 -0
  15. mapwright-0.16.0/docs/gallery/continent.svg +1 -0
  16. mapwright-0.16.0/docs/gallery/desert.png +0 -0
  17. mapwright-0.16.0/docs/gallery/desert.svg +1 -0
  18. mapwright-0.16.0/docs/gallery/highlands.png +0 -0
  19. mapwright-0.16.0/docs/gallery/highlands.svg +1 -0
  20. mapwright-0.16.0/docs/gallery/islands.png +0 -0
  21. {mapwright-0.12.0 → mapwright-0.16.0}/docs/gallery/islands.svg +1 -1
  22. mapwright-0.16.0/docs/gallery/pangaea.png +0 -0
  23. mapwright-0.16.0/docs/gallery/pangaea.svg +1 -0
  24. mapwright-0.16.0/docs/gallery/regions.png +0 -0
  25. {mapwright-0.12.0 → mapwright-0.16.0}/docs/gallery/regions.svg +1 -1
  26. mapwright-0.16.0/docs/gallery/roads.png +0 -0
  27. {mapwright-0.12.0 → mapwright-0.16.0}/docs/gallery/roads.svg +1 -1
  28. mapwright-0.16.0/docs/gallery/template-atoll.png +0 -0
  29. mapwright-0.16.0/docs/gallery/template-atoll.svg +1 -0
  30. mapwright-0.16.0/docs/gallery/template-isthmus.png +0 -0
  31. mapwright-0.16.0/docs/gallery/template-isthmus.svg +1 -0
  32. mapwright-0.16.0/docs/gallery/tropical.png +0 -0
  33. {mapwright-0.12.0 → mapwright-0.16.0}/docs/gallery/tropical.svg +1 -1
  34. {mapwright-0.12.0 → mapwright-0.16.0}/examples/gallery.py +17 -0
  35. {mapwright-0.12.0 → mapwright-0.16.0}/pyproject.toml +5 -2
  36. {mapwright-0.12.0 → mapwright-0.16.0}/src/mapwright/__init__.py +6 -1
  37. mapwright-0.16.0/src/mapwright/atlas_renderer.py +359 -0
  38. {mapwright-0.12.0 → mapwright-0.16.0}/src/mapwright/config.py +4 -0
  39. {mapwright-0.12.0 → mapwright-0.16.0}/src/mapwright/terrain.py +281 -73
  40. {mapwright-0.12.0 → mapwright-0.16.0}/tests/test_api_contract.py +3 -0
  41. mapwright-0.16.0/tests/test_atlas_renderer.py +163 -0
  42. {mapwright-0.12.0 → mapwright-0.16.0}/tests/test_terrain.py +60 -0
  43. mapwright-0.12.0/docs/gallery/archipelago.png +0 -0
  44. mapwright-0.12.0/docs/gallery/arctic.png +0 -0
  45. mapwright-0.12.0/docs/gallery/arctic.svg +0 -1
  46. mapwright-0.12.0/docs/gallery/continent.png +0 -0
  47. mapwright-0.12.0/docs/gallery/continent.svg +0 -1
  48. mapwright-0.12.0/docs/gallery/desert.png +0 -0
  49. mapwright-0.12.0/docs/gallery/desert.svg +0 -1
  50. mapwright-0.12.0/docs/gallery/highlands.png +0 -0
  51. mapwright-0.12.0/docs/gallery/highlands.svg +0 -1
  52. mapwright-0.12.0/docs/gallery/islands.png +0 -0
  53. mapwright-0.12.0/docs/gallery/pangaea.png +0 -0
  54. mapwright-0.12.0/docs/gallery/pangaea.svg +0 -1
  55. mapwright-0.12.0/docs/gallery/regions.png +0 -0
  56. mapwright-0.12.0/docs/gallery/roads.png +0 -0
  57. mapwright-0.12.0/docs/gallery/tropical.png +0 -0
  58. {mapwright-0.12.0 → mapwright-0.16.0}/.github/workflows/ci.yml +0 -0
  59. {mapwright-0.12.0 → mapwright-0.16.0}/.github/workflows/publish.yml +0 -0
  60. {mapwright-0.12.0 → mapwright-0.16.0}/LICENSE +0 -0
  61. {mapwright-0.12.0 → mapwright-0.16.0}/docs/gallery/citadel.png +0 -0
  62. {mapwright-0.12.0 → mapwright-0.16.0}/docs/gallery/citadel.svg +0 -0
  63. {mapwright-0.12.0 → mapwright-0.16.0}/docs/gallery/dungeon.png +0 -0
  64. {mapwright-0.12.0 → mapwright-0.16.0}/docs/gallery/dungeon.svg +0 -0
  65. {mapwright-0.12.0 → mapwright-0.16.0}/docs/gallery/port.png +0 -0
  66. {mapwright-0.12.0 → mapwright-0.16.0}/docs/gallery/port.svg +0 -0
  67. {mapwright-0.12.0 → mapwright-0.16.0}/docs/gallery/town.png +0 -0
  68. {mapwright-0.12.0 → mapwright-0.16.0}/docs/gallery/town.svg +0 -0
  69. {mapwright-0.12.0 → mapwright-0.16.0}/examples/benchmark.py +0 -0
  70. {mapwright-0.12.0 → mapwright-0.16.0}/src/mapwright/_geometry.py +0 -0
  71. {mapwright-0.12.0 → mapwright-0.16.0}/src/mapwright/_graph.py +0 -0
  72. {mapwright-0.12.0 → mapwright-0.16.0}/src/mapwright/_serde.py +0 -0
  73. {mapwright-0.12.0 → mapwright-0.16.0}/src/mapwright/dungeon.py +0 -0
  74. {mapwright-0.12.0 → mapwright-0.16.0}/src/mapwright/dungeon_renderer.py +0 -0
  75. {mapwright-0.12.0 → mapwright-0.16.0}/src/mapwright/names.py +0 -0
  76. {mapwright-0.12.0 → mapwright-0.16.0}/src/mapwright/regions.py +0 -0
  77. {mapwright-0.12.0 → mapwright-0.16.0}/src/mapwright/rng.py +0 -0
  78. {mapwright-0.12.0 → mapwright-0.16.0}/src/mapwright/roads.py +0 -0
  79. {mapwright-0.12.0 → mapwright-0.16.0}/src/mapwright/settlement.py +0 -0
  80. {mapwright-0.12.0 → mapwright-0.16.0}/src/mapwright/settlement_renderer.py +0 -0
  81. {mapwright-0.12.0 → mapwright-0.16.0}/src/mapwright/svg_renderer.py +0 -0
  82. {mapwright-0.12.0 → mapwright-0.16.0}/tests/test_config.py +0 -0
  83. {mapwright-0.12.0 → mapwright-0.16.0}/tests/test_dungeon.py +0 -0
  84. {mapwright-0.12.0 → mapwright-0.16.0}/tests/test_dungeon_renderer.py +0 -0
  85. {mapwright-0.12.0 → mapwright-0.16.0}/tests/test_geometry.py +0 -0
  86. {mapwright-0.12.0 → mapwright-0.16.0}/tests/test_graph.py +0 -0
  87. {mapwright-0.12.0 → mapwright-0.16.0}/tests/test_names.py +0 -0
  88. {mapwright-0.12.0 → mapwright-0.16.0}/tests/test_properties.py +0 -0
  89. {mapwright-0.12.0 → mapwright-0.16.0}/tests/test_regions.py +0 -0
  90. {mapwright-0.12.0 → mapwright-0.16.0}/tests/test_rng.py +0 -0
  91. {mapwright-0.12.0 → mapwright-0.16.0}/tests/test_roads.py +0 -0
  92. {mapwright-0.12.0 → mapwright-0.16.0}/tests/test_serialize.py +0 -0
  93. {mapwright-0.12.0 → mapwright-0.16.0}/tests/test_settlement.py +0 -0
  94. {mapwright-0.12.0 → mapwright-0.16.0}/tests/test_svg_renderer.py +0 -0
@@ -28,3 +28,4 @@ htmlcov/
28
28
 
29
29
  # Local working notes (roadmap, scratch)
30
30
  *.local.md
31
+ memory/
@@ -8,6 +8,65 @@ All notable changes to mapwright are documented here. The format follows
8
8
  `tests/test_api_contract.py`). While the version is `0.x`, minor versions may
9
9
  make breaking changes; these will always be noted here.
10
10
 
11
+ ## [0.16.0] — 2026-06-02
12
+
13
+ ### Added
14
+ - **`AtlasRenderer` + `ArtPack` — hand-drawn / themed atlas rendering.** A new
15
+ optional renderer that stamps symbol images from an external *art pack* onto a
16
+ `TerrainResult` to produce a hand-drawn (or any-style) fantasy-map look:
17
+ mountains (young/mid/old by `land_age`), hills, forests (pine/deciduous/cactus
18
+ by climate), dunes, settlements (by marker kind), and sea decorations + a
19
+ compass rose. mapwright ships **no art** — an art pack is a directory of PNG
20
+ symbols plus an optional `manifest.json` that maps mapwright's neutral concepts
21
+ (`Biome`, `land_age`, settlement size) onto art "slots"; a host (e.g. an
22
+ image-generation service) produces packs in any style and this renderer just
23
+ places them. `ArtPack.from_directory()` reads a manifest, or auto-discovers
24
+ slots from a conventional (Nortantis-style) folder layout. Missing fine-grained
25
+ slots fall back to a coarser sibling, so partial packs still work. Requires
26
+ Pillow — install the optional extra: `pip install "mapwright[atlas]"`. The
27
+ core library stays numpy-only; without Pillow, `import mapwright` is unaffected
28
+ and only `AtlasRenderer` rendering raises a clear install hint.
29
+
30
+ ## [0.15.0] — 2026-06-02
31
+
32
+ ### Added
33
+ - **`land_age` — geological age of the terrain** (a mapwright-original idea). A new
34
+ `WorldMapConfig` knob: 0 = *young* (jagged, tall, snow-capped peaks — think the
35
+ Rockies), 1 = *old* (worn down to rounded hills and lowlands — the Appalachians).
36
+ It shapes the hypsometric curve (a gamma on land elevation → more/fewer mountains)
37
+ and, for old land, applies weathering passes that smooth the relief. The default
38
+ (0.5) is neutral — terrain is byte-identical to before, so the feature is purely
39
+ opt-in. First slice of a broader age/era/wealth axis (forests, settlements next).
40
+
41
+ ## [0.14.0] — 2026-06-02
42
+
43
+ ### Added
44
+ - **Heightmap templates** — an optional, controllable alternative to the default
45
+ tectonic auto-generation. `RegionalTerrainGenerator.generate(..., template=…)`
46
+ builds the heightmap from composable elevation ops (hill, pit, range, trough,
47
+ strait) spread over the cell graph, and `TERRAIN_TEMPLATES` provides named
48
+ continent archetypes: `continents`, `archipelago`, `peninsula`, `isthmus`,
49
+ `volcano`, `atoll`. A template sets the *pattern* of high/low ground; `config`
50
+ still drives sea level (percentile), climate, and rivers on top. Clean-room from
51
+ the documented idea in Azgaar's Fantasy-Map-Generator (see NOTICE). The default
52
+ (no template) tectonic terrain is byte-identical — this is purely additive.
53
+
54
+ ## [0.13.0] — 2026-06-02
55
+
56
+ ### Changed
57
+ - **Tectonic-plate terrain.** The heightmap is now built from a simple plate
58
+ simulation instead of a radial/noise field: the map is tiled into continental
59
+ and oceanic plates (Voronoi over plate seeds) that drift, and **convergent plate
60
+ boundaries raise mountain ranges** — so continents get organic coastlines *and*
61
+ believable linear mountain belts, with no centre bias. The `continents` knob is
62
+ the number of continental plates; oceanic plates interleave between them, so
63
+ multi-continent worlds (`archipelago`, `islands`) fragment into scattered islands
64
+ around an inner sea rather than one blob. Sea level is now **percentile-based**
65
+ (`sea_level` maps directly to the water fraction). Rivers form reliably across
66
+ all presets (a flux-quantile source threshold). Clean-room from the documented
67
+ ideas of Nortantis (tectonics) and the Fractal Worldmap Generator (percentile
68
+ sea level); see NOTICE. Regenerated the terrain/roads/regions gallery.
69
+
11
70
  ## [0.12.0] — 2026-06-02
12
71
 
13
72
  ### Changed
@@ -198,7 +257,10 @@ Initial release. Domain-neutral procedural fantasy map & world generation.
198
257
  polygons, coastline, rivers, labelled markers. `compute_cell_polygons` rebuilds
199
258
  convex Voronoi polygons via half-plane clipping.
200
259
 
201
- [Unreleased]: https://github.com/sligara7/mapwright/compare/v0.12.0...HEAD
260
+ [Unreleased]: https://github.com/sligara7/mapwright/compare/v0.15.0...HEAD
261
+ [0.15.0]: https://github.com/sligara7/mapwright/compare/v0.14.0...v0.15.0
262
+ [0.14.0]: https://github.com/sligara7/mapwright/compare/v0.13.0...v0.14.0
263
+ [0.13.0]: https://github.com/sligara7/mapwright/compare/v0.12.0...v0.13.0
202
264
  [0.12.0]: https://github.com/sligara7/mapwright/compare/v0.11.0...v0.12.0
203
265
  [0.11.0]: https://github.com/sligara7/mapwright/compare/v0.10.0...v0.11.0
204
266
  [0.10.0]: https://github.com/sligara7/mapwright/compare/v0.9.0...v0.10.0
@@ -14,7 +14,9 @@ copied from them; this NOTICE credits the lineage of the techniques.
14
14
  https://github.com/Azgaar/Fantasy-Map-Generator
15
15
  Ideas: jittered-grid Voronoi with Lloyd relaxation, flux-accumulation
16
16
  rivers, temperature x precipitation -> biome matrix, Markov per-culture
17
- name generation, single-seed determinism, SVG cartographic rendering.
17
+ name generation, single-seed determinism, SVG cartographic rendering,
18
+ composable heightmap templates (hill/range/pit/trough/strait ops combined
19
+ into named continent archetypes).
18
20
 
19
21
  * "Generating fantasy maps" by Martin O'Leary (mewo2), and its C++ implementation
20
22
  FantasyMapGenerator by Ryan L. Guy (rlguy) (Zlib License)
@@ -31,5 +33,22 @@ copied from them; this NOTICE credits the lineage of the techniques.
31
33
  subdivided into Voronoi wards. mapwright's settlement code is an independent
32
34
  clean-room implementation built on its own geometry primitives.
33
35
 
36
+ * Nortantis by Joseph Heydorn (AGPLv3)
37
+ https://github.com/jeheydorn/nortantis
38
+ Concept only (NO code derived — AGPLv3 is incompatible with this MIT
39
+ project): the idea of shaping land with a simple tectonic-plate simulation
40
+ (continental/oceanic plates whose convergent boundaries raise mountain
41
+ ranges), and the general approach of compositing a map from stamped symbol
42
+ images. mapwright's plate model and AtlasRenderer are independent clean-room
43
+ implementations; AtlasRenderer's optional art-pack auto-discovery merely
44
+ recognises a Nortantis-like folder naming convention (mountains/, hills/,
45
+ trees/, …) as a data layout — no Nortantis code or art is used or bundled.
46
+
47
+ * "Fractal Worldmap Generator" by John Olsson / Torben Æ. Mogensen
48
+ https://www.lysator.liu.se/~johol/fwmg/fwmg.html
49
+ Ideas (clean-room): a percentile/histogram sea level so a target water
50
+ fraction is met, and elevation built from many random "faults" rather than a
51
+ centred radial field.
52
+
34
53
  The name lists ("namebases") bundled with mapwright are original, hand-authored
35
54
  data, not derived from any third-party generator.
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: mapwright
3
- Version: 0.12.0
3
+ Version: 0.16.0
4
4
  Summary: Domain-neutral procedural fantasy map & world generation: Voronoi terrain, hydraulic erosion, biomes, rivers, Markov place-names, and shaded-relief SVG.
5
5
  Project-URL: Homepage, https://github.com/sligara7/mapwright
6
6
  Project-URL: Repository, https://github.com/sligara7/mapwright
@@ -16,8 +16,11 @@ Classifier: Topic :: Games/Entertainment :: Role-Playing
16
16
  Classifier: Topic :: Multimedia :: Graphics
17
17
  Requires-Python: >=3.10
18
18
  Requires-Dist: numpy>=1.26
19
+ Provides-Extra: atlas
20
+ Requires-Dist: pillow>=10; extra == 'atlas'
19
21
  Provides-Extra: dev
20
22
  Requires-Dist: hypothesis>=6; extra == 'dev'
23
+ Requires-Dist: pillow>=10; extra == 'dev'
21
24
  Requires-Dist: pytest>=7.4; extra == 'dev'
22
25
  Requires-Dist: ruff>=0.1; extra == 'dev'
23
26
  Description-Content-Type: text/markdown
@@ -65,10 +68,19 @@ produced by [`examples/gallery.py`](examples/gallery.py):
65
68
  <tr>
66
69
  <td align="center"><img width="240" src="https://raw.githubusercontent.com/sligara7/mapwright/main/docs/gallery/roads.png" alt="settlements linked by terrain-routed roads"><br><sub><code>RegionalRoadGenerator</code></sub></td>
67
70
  <td align="center"><img width="240" src="https://raw.githubusercontent.com/sligara7/mapwright/main/docs/gallery/regions.png" alt="land partitioned into named territories"><br><sub><code>RegionGenerator</code></sub></td>
68
- <td></td>
71
+ <td align="center"><img width="240" src="https://raw.githubusercontent.com/sligara7/mapwright/main/docs/gallery/template-isthmus.png" alt="isthmus heightmap template"><br><sub><code>template="isthmus"</code></sub></td>
72
+ </tr>
73
+ <tr>
74
+ <td align="center"><img width="240" src="https://raw.githubusercontent.com/sligara7/mapwright/main/docs/gallery/template-atoll.png" alt="atoll heightmap template"><br><sub><code>template="atoll"</code></sub></td>
75
+ <td align="center"><img width="240" src="https://raw.githubusercontent.com/sligara7/mapwright/main/docs/gallery/age-young.png" alt="young jagged terrain"><br><sub><code>land_age=0</code> (young)</sub></td>
76
+ <td align="center"><img width="240" src="https://raw.githubusercontent.com/sligara7/mapwright/main/docs/gallery/age-old.png" alt="old worn terrain"><br><sub><code>land_age=1</code> (old)</sub></td>
69
77
  </tr>
70
78
  </table>
71
79
 
80
+ The two right-hand maps above are the **same continent** at `land_age=0` (young, jagged,
81
+ snow-capped peaks) vs `land_age=1` (old, worn down to rounded hills) — a mapwright-original
82
+ "geological age" knob.
83
+
72
84
  Regenerate them with `python examples/gallery.py` (SVGs always; PNGs when
73
85
  `cairosvg` is installed).
74
86
 
@@ -76,6 +88,8 @@ Regenerate them with `python examples/gallery.py` (SVGs always; PNGs when
76
88
 
77
89
  ```bash
78
90
  pip install mapwright
91
+ # hand-drawn / themed atlas rendering (adds Pillow):
92
+ pip install "mapwright[atlas]"
79
93
  # latest from git:
80
94
  pip install git+https://github.com/sligara7/mapwright.git
81
95
  # or, for local development:
@@ -112,6 +126,18 @@ WorldMapConfig.from_dict({"temperature": 5, "continents": -3}) # -> safe, clamp
112
126
  Presets: `continent`, `pangaea`, `archipelago`, `islands`, `highlands`, `desert`,
113
127
  `arctic`, `tropical`.
114
128
 
129
+ Terrain defaults to a **tectonic-plate** simulation (organic coasts + mountain ranges).
130
+ For a controllable continent *archetype*, pass a `template` (Azgaar-style composed
131
+ heightmap ops) — `config` still drives sea level, climate, and rivers on top of it:
132
+
133
+ ```python
134
+ from mapwright import RegionalTerrainGenerator, SeededRNG, WorldMapConfig, TERRAIN_TEMPLATES
135
+
136
+ print(list(TERRAIN_TEMPLATES)) # archipelago, volcano, peninsula, isthmus, atoll, continents
137
+ world = RegionalTerrainGenerator(SeededRNG(5)).generate(
138
+ 80, 58, WorldMapConfig(sea_level=0.55), template="archipelago")
139
+ ```
140
+
115
141
  Save and reload worlds (and dungeons) — JSON round-trips losslessly, so a reloaded
116
142
  world renders byte-identically:
117
143
 
@@ -169,9 +195,10 @@ Settlement presets: `hamlet`, `village`, `town`, `city`, `port`, `citadel`.
169
195
  |-----------|--------------|
170
196
  | `SeededRNG` | One seed drives everything; `.derive(label)` yields independent, reproducible sub-streams (unifies stdlib + numpy). |
171
197
  | `NameGenerator` | Order-k character Markov names over hand-authored culture namebases; reproducible across processes. |
172
- | `RegionalTerrainGenerator` | Voronoi cells (Lloyd-relaxed) → noise-shaped **organic** land/sea mask + distance-to-coast elevation → Planchon–Darboux depression fill → flux + hydraulic/creep erosion → rivers + inland lakes → latitude/elevation climate with **rain-shadow** → Whittaker biomes. |
198
+ | `RegionalTerrainGenerator` | Voronoi cells (Lloyd-relaxed) → **tectonic-plate** heightmap (organic coasts + mountain ranges at plate collisions; percentile sea level) → Planchon–Darboux depression fill → flux + hydraulic/creep erosion → rivers + inland lakes → latitude/elevation climate with **rain-shadow** → Whittaker biomes. |
173
199
  | `compute_cell_polygons` | Reconstructs convex Voronoi polygons (half-plane clipping) for vector rendering. |
174
200
  | `RegionalSVGRenderer` | Shaded-relief (hillshade) SVG: biome polygons, coastline, rivers, roads, labelled markers. |
201
+ | `AtlasRenderer` / `ArtPack` | Hand-drawn / themed PNG: stamps symbols from an external *art pack* (mountains, forests, hills, settlements, sea decorations) onto the terrain. mapwright ships no art — a pack is a skin. Needs `pip install "mapwright[atlas]"`. |
175
202
  | `RegionalRoadGenerator` | Connects settlement sites with trade routes — an MST whose edges are A*-routed over the terrain (avoids sea, climbs/crosses rivers at a cost). |
176
203
  | `RegionGenerator` | Partitions land into named factions/territories: spread capitals seed a flood fill over the land graph (sea divides them); each `Region` is Markov-named. |
177
204
  | `DungeonGenerator` | BSP-partitioned rooms + minimum-spanning-tree corridors → rooms, corridor cells, and a walkable grid (with `Dungeon.ascii()`). |
@@ -182,6 +209,56 @@ Settlement presets: `hamlet`, `village`, `town`, `city`, `port`, `citadel`.
182
209
  Everything is neutral: `RegionalTerrainGenerator` returns a `TerrainResult` of `TerrainCell`s
183
210
  (each with a `Biome`), and you decide how a `Biome` maps to your world.
184
211
 
212
+ ## Atlas rendering & art packs
213
+
214
+ `RegionalSVGRenderer` draws a clean shaded-relief map. For a **hand-drawn** (or neon, or
215
+ scrap-metal, or any) look, `AtlasRenderer` stamps little symbol images — mountains, trees,
216
+ hills, towns, sea monsters, a compass — placed exactly where the physics put them.
217
+
218
+ mapwright bundles **no art**. The renderer is the *engine*; the art is a separate **art pack**
219
+ you point it at, so the same world can wear any style without re-generating anything:
220
+
221
+ ```python
222
+ from mapwright import SeededRNG, RegionalTerrainGenerator, ArtPack, AtlasRenderer, Marker
223
+
224
+ terrain = RegionalTerrainGenerator(SeededRNG(7)).generate(80, 56)
225
+ markers = [Marker("Eldmoor", 40, 28, kind="settlement_castle")]
226
+
227
+ pack = ArtPack.from_directory("path/to/my-art-pack") # needs mapwright[atlas]
228
+ png = AtlasRenderer(pack, scale=12, seed=7).render(terrain, markers, land_age=0.3)
229
+ open("atlas.png", "wb").write(png)
230
+ ```
231
+
232
+ An **art pack** is just a directory of transparent PNG symbols plus an optional
233
+ `manifest.json` that maps mapwright's neutral concepts onto art **slots**:
234
+
235
+ ```jsonc
236
+ {
237
+ "name": "my-pack",
238
+ "colors": {"parchment": "#ecdfbf", "water": "#b5cad1",
239
+ "coast": "#463c2c", "label": "#2b2218"},
240
+ "slots": {
241
+ "mountain.young": {"files": ["mountains/sharp/*.png"], "width": 2.0, "anchor": "bottom"},
242
+ "mountain.old": {"files": ["mountains/eroded/*.png"]},
243
+ "hill": {"files": ["hills/*.png"]},
244
+ "tree.pine": {"files": ["trees/pine/*.png"]},
245
+ "tree.deciduous": {"files": ["trees/leafy/*.png"]},
246
+ "city.castle": {"files": ["cities/castle*.png"]},
247
+ "decoration.compass": {"files": ["compass/*.png"], "anchor": "center"}
248
+ }
249
+ }
250
+ ```
251
+
252
+ Slots the renderer asks for: terrain relief — `mountain.young` / `mountain.mid` /
253
+ `mountain.old` (chosen by `land_age`), `hill`, `tree.pine` / `tree.deciduous` /
254
+ `tree.cactus` (by climate), `dune`; settlements — `city.castle` / `city.large` /
255
+ `city.town` / `city.village` (by marker `kind`); decorations — `decoration.creature`
256
+ / `decoration.ship` / `decoration.compass`. A missing fine slot falls back to a coarser
257
+ sibling (`mountain.mid` → any `mountain.*`), so partial packs still render. With **no**
258
+ `manifest.json`, `ArtPack.from_directory()` auto-discovers slots from a conventional
259
+ folder layout. Because packs are pure data, a host like an image-generation service can
260
+ **produce them on demand** in any style — the generation stays the same; the pack is the skin.
261
+
185
262
  ## Determinism
186
263
 
187
264
  Every generator draws from a `SeededRNG`. The same seed (and parameters) reproduces an
@@ -41,10 +41,19 @@ produced by [`examples/gallery.py`](examples/gallery.py):
41
41
  <tr>
42
42
  <td align="center"><img width="240" src="https://raw.githubusercontent.com/sligara7/mapwright/main/docs/gallery/roads.png" alt="settlements linked by terrain-routed roads"><br><sub><code>RegionalRoadGenerator</code></sub></td>
43
43
  <td align="center"><img width="240" src="https://raw.githubusercontent.com/sligara7/mapwright/main/docs/gallery/regions.png" alt="land partitioned into named territories"><br><sub><code>RegionGenerator</code></sub></td>
44
- <td></td>
44
+ <td align="center"><img width="240" src="https://raw.githubusercontent.com/sligara7/mapwright/main/docs/gallery/template-isthmus.png" alt="isthmus heightmap template"><br><sub><code>template="isthmus"</code></sub></td>
45
+ </tr>
46
+ <tr>
47
+ <td align="center"><img width="240" src="https://raw.githubusercontent.com/sligara7/mapwright/main/docs/gallery/template-atoll.png" alt="atoll heightmap template"><br><sub><code>template="atoll"</code></sub></td>
48
+ <td align="center"><img width="240" src="https://raw.githubusercontent.com/sligara7/mapwright/main/docs/gallery/age-young.png" alt="young jagged terrain"><br><sub><code>land_age=0</code> (young)</sub></td>
49
+ <td align="center"><img width="240" src="https://raw.githubusercontent.com/sligara7/mapwright/main/docs/gallery/age-old.png" alt="old worn terrain"><br><sub><code>land_age=1</code> (old)</sub></td>
45
50
  </tr>
46
51
  </table>
47
52
 
53
+ The two right-hand maps above are the **same continent** at `land_age=0` (young, jagged,
54
+ snow-capped peaks) vs `land_age=1` (old, worn down to rounded hills) — a mapwright-original
55
+ "geological age" knob.
56
+
48
57
  Regenerate them with `python examples/gallery.py` (SVGs always; PNGs when
49
58
  `cairosvg` is installed).
50
59
 
@@ -52,6 +61,8 @@ Regenerate them with `python examples/gallery.py` (SVGs always; PNGs when
52
61
 
53
62
  ```bash
54
63
  pip install mapwright
64
+ # hand-drawn / themed atlas rendering (adds Pillow):
65
+ pip install "mapwright[atlas]"
55
66
  # latest from git:
56
67
  pip install git+https://github.com/sligara7/mapwright.git
57
68
  # or, for local development:
@@ -88,6 +99,18 @@ WorldMapConfig.from_dict({"temperature": 5, "continents": -3}) # -> safe, clamp
88
99
  Presets: `continent`, `pangaea`, `archipelago`, `islands`, `highlands`, `desert`,
89
100
  `arctic`, `tropical`.
90
101
 
102
+ Terrain defaults to a **tectonic-plate** simulation (organic coasts + mountain ranges).
103
+ For a controllable continent *archetype*, pass a `template` (Azgaar-style composed
104
+ heightmap ops) — `config` still drives sea level, climate, and rivers on top of it:
105
+
106
+ ```python
107
+ from mapwright import RegionalTerrainGenerator, SeededRNG, WorldMapConfig, TERRAIN_TEMPLATES
108
+
109
+ print(list(TERRAIN_TEMPLATES)) # archipelago, volcano, peninsula, isthmus, atoll, continents
110
+ world = RegionalTerrainGenerator(SeededRNG(5)).generate(
111
+ 80, 58, WorldMapConfig(sea_level=0.55), template="archipelago")
112
+ ```
113
+
91
114
  Save and reload worlds (and dungeons) — JSON round-trips losslessly, so a reloaded
92
115
  world renders byte-identically:
93
116
 
@@ -145,9 +168,10 @@ Settlement presets: `hamlet`, `village`, `town`, `city`, `port`, `citadel`.
145
168
  |-----------|--------------|
146
169
  | `SeededRNG` | One seed drives everything; `.derive(label)` yields independent, reproducible sub-streams (unifies stdlib + numpy). |
147
170
  | `NameGenerator` | Order-k character Markov names over hand-authored culture namebases; reproducible across processes. |
148
- | `RegionalTerrainGenerator` | Voronoi cells (Lloyd-relaxed) → noise-shaped **organic** land/sea mask + distance-to-coast elevation → Planchon–Darboux depression fill → flux + hydraulic/creep erosion → rivers + inland lakes → latitude/elevation climate with **rain-shadow** → Whittaker biomes. |
171
+ | `RegionalTerrainGenerator` | Voronoi cells (Lloyd-relaxed) → **tectonic-plate** heightmap (organic coasts + mountain ranges at plate collisions; percentile sea level) → Planchon–Darboux depression fill → flux + hydraulic/creep erosion → rivers + inland lakes → latitude/elevation climate with **rain-shadow** → Whittaker biomes. |
149
172
  | `compute_cell_polygons` | Reconstructs convex Voronoi polygons (half-plane clipping) for vector rendering. |
150
173
  | `RegionalSVGRenderer` | Shaded-relief (hillshade) SVG: biome polygons, coastline, rivers, roads, labelled markers. |
174
+ | `AtlasRenderer` / `ArtPack` | Hand-drawn / themed PNG: stamps symbols from an external *art pack* (mountains, forests, hills, settlements, sea decorations) onto the terrain. mapwright ships no art — a pack is a skin. Needs `pip install "mapwright[atlas]"`. |
151
175
  | `RegionalRoadGenerator` | Connects settlement sites with trade routes — an MST whose edges are A*-routed over the terrain (avoids sea, climbs/crosses rivers at a cost). |
152
176
  | `RegionGenerator` | Partitions land into named factions/territories: spread capitals seed a flood fill over the land graph (sea divides them); each `Region` is Markov-named. |
153
177
  | `DungeonGenerator` | BSP-partitioned rooms + minimum-spanning-tree corridors → rooms, corridor cells, and a walkable grid (with `Dungeon.ascii()`). |
@@ -158,6 +182,56 @@ Settlement presets: `hamlet`, `village`, `town`, `city`, `port`, `citadel`.
158
182
  Everything is neutral: `RegionalTerrainGenerator` returns a `TerrainResult` of `TerrainCell`s
159
183
  (each with a `Biome`), and you decide how a `Biome` maps to your world.
160
184
 
185
+ ## Atlas rendering & art packs
186
+
187
+ `RegionalSVGRenderer` draws a clean shaded-relief map. For a **hand-drawn** (or neon, or
188
+ scrap-metal, or any) look, `AtlasRenderer` stamps little symbol images — mountains, trees,
189
+ hills, towns, sea monsters, a compass — placed exactly where the physics put them.
190
+
191
+ mapwright bundles **no art**. The renderer is the *engine*; the art is a separate **art pack**
192
+ you point it at, so the same world can wear any style without re-generating anything:
193
+
194
+ ```python
195
+ from mapwright import SeededRNG, RegionalTerrainGenerator, ArtPack, AtlasRenderer, Marker
196
+
197
+ terrain = RegionalTerrainGenerator(SeededRNG(7)).generate(80, 56)
198
+ markers = [Marker("Eldmoor", 40, 28, kind="settlement_castle")]
199
+
200
+ pack = ArtPack.from_directory("path/to/my-art-pack") # needs mapwright[atlas]
201
+ png = AtlasRenderer(pack, scale=12, seed=7).render(terrain, markers, land_age=0.3)
202
+ open("atlas.png", "wb").write(png)
203
+ ```
204
+
205
+ An **art pack** is just a directory of transparent PNG symbols plus an optional
206
+ `manifest.json` that maps mapwright's neutral concepts onto art **slots**:
207
+
208
+ ```jsonc
209
+ {
210
+ "name": "my-pack",
211
+ "colors": {"parchment": "#ecdfbf", "water": "#b5cad1",
212
+ "coast": "#463c2c", "label": "#2b2218"},
213
+ "slots": {
214
+ "mountain.young": {"files": ["mountains/sharp/*.png"], "width": 2.0, "anchor": "bottom"},
215
+ "mountain.old": {"files": ["mountains/eroded/*.png"]},
216
+ "hill": {"files": ["hills/*.png"]},
217
+ "tree.pine": {"files": ["trees/pine/*.png"]},
218
+ "tree.deciduous": {"files": ["trees/leafy/*.png"]},
219
+ "city.castle": {"files": ["cities/castle*.png"]},
220
+ "decoration.compass": {"files": ["compass/*.png"], "anchor": "center"}
221
+ }
222
+ }
223
+ ```
224
+
225
+ Slots the renderer asks for: terrain relief — `mountain.young` / `mountain.mid` /
226
+ `mountain.old` (chosen by `land_age`), `hill`, `tree.pine` / `tree.deciduous` /
227
+ `tree.cactus` (by climate), `dune`; settlements — `city.castle` / `city.large` /
228
+ `city.town` / `city.village` (by marker `kind`); decorations — `decoration.creature`
229
+ / `decoration.ship` / `decoration.compass`. A missing fine slot falls back to a coarser
230
+ sibling (`mountain.mid` → any `mountain.*`), so partial packs still render. With **no**
231
+ `manifest.json`, `ArtPack.from_directory()` auto-discovers slots from a conventional
232
+ folder layout. Because packs are pure data, a host like an image-generation service can
233
+ **produce them on demand** in any style — the generation stays the same; the pack is the skin.
234
+
161
235
  ## Determinism
162
236
 
163
237
  Every generator draws from a `SeededRNG`. The same seed (and parameters) reproduces an
@@ -0,0 +1 @@
1
+ <svg xmlns="http://www.w3.org/2000/svg" width="576" height="396" viewBox="0 0 576 396"><rect width="576" height="396" fill="#183e56"/><g stroke-linejoin="round"><polygon points="0.0,0.0 13.2,0.0 16.3,18.3 0.0,27.9" fill="#1f4e6b" stroke="#1f4e6b" stroke-width="0.5"/><polygon points="13.2,0.0 41.2,0.0 41.5,8.2 24.3,21.4 16.3,18.3" fill="#1f4e6b" stroke="#1f4e6b" stroke-width="0.5"/><polygon points="41.2,0.0 70.8,0.0 66.9,20.2 51.0,19.4 41.5,8.2" fill="#1f4e6b" stroke="#1f4e6b" stroke-width="0.5"/><polygon points="70.8,0.0 89.5,0.0 95.2,15.0 90.7,21.5 66.7,21.5" fill="#1f4e6b" stroke="#1f4e6b" stroke-width="0.5"/><polygon points="89.5,0.0 117.5,0.0 111.8,15.0 95.2,15.0" fill="#1f4e6b" stroke="#1f4e6b" stroke-width="0.5"/><polygon points="117.5,0.0 133.2,0.0 139.4,21.5 116.3,21.5 111.8,15.0" fill="#3d7ea6" stroke="#3d7ea6" stroke-width="0.5"/><polygon points="133.2,0.0 157.1,0.0 154.5,18.1 139.3,21.1" fill="#3d7ea6" stroke="#3d7ea6" stroke-width="0.5"/><polygon points="157.1,0.0 177.1,0.0 175.9,19.0 153.5,25.0" fill="#3d7ea6" stroke="#3d7ea6" stroke-width="0.5"/><polygon points="177.1,0.0 196.3,0.0 198.2,17.1 183.9,24.0 175.9,19.0" fill="#8fbe78" stroke="#8fbe78" stroke-width="0.5"/><polygon points="196.3,0.0 220.0,0.0 221.2,20.9 210.5,23.6 198.2,17.1" fill="#ced6c5" stroke="#ced6c5" stroke-width="0.5"/><polygon points="220.0,0.0 245.4,0.0 243.9,14.4 221.2,20.8" fill="#e5efdc" stroke="#e5efdc" stroke-width="0.5"/><polygon points="245.4,0.0 267.8,0.0 267.8,21.4 253.7,24.2 243.9,14.4" fill="#ecf6e2" stroke="#ecf6e2" stroke-width="0.5"/><polygon points="267.8,0.0 290.2,0.0 293.3,14.2 287.5,21.5 272.2,24.0 267.8,21.4" fill="#e4edda" stroke="#e4edda" stroke-width="0.5"/><polygon points="290.2,0.0 316.8,0.0 311.7,16.3 293.3,14.2" fill="#e6f0dc" stroke="#e6f0dc" stroke-width="0.5"/><polygon points="316.8,0.0 335.7,0.0 335.0,21.4 314.5,20.3 311.7,16.3" fill="#c7c07c" stroke="#c7c07c" stroke-width="0.5"/><polygon points="335.7,0.0 350.5,0.0 357.6,15.9 353.4,20.8 335.0,21.6" fill="#ffffff" stroke="#ffffff" stroke-width="0.5"/><polygon points="350.5,0.0 374.5,0.0 374.0,14.0 357.6,15.9" fill="#9ea1a4" stroke="#9ea1a4" stroke-width="0.5"/><polygon points="374.5,0.0 398.2,0.0 398.2,13.9 395.3,16.3 374.1,13.7" fill="#6a6642" stroke="#6a6642" stroke-width="0.5"/><polygon points="398.2,0.0 420.2,0.0 415.8,17.5 398.2,14.0" fill="#7c8177" stroke="#7c8177" stroke-width="0.5"/><polygon points="420.2,0.0 438.8,0.0 438.8,20.2 418.0,20.2 415.8,17.5" fill="#7c8177" stroke="#7c8177" stroke-width="0.5"/><polygon points="438.8,0.0 463.7,0.0 466.1,14.0 464.0,17.5 442.6,24.1 438.8,20.2" fill="#3d7ea6" stroke="#3d7ea6" stroke-width="0.5"/><polygon points="463.7,0.0 494.1,0.0 490.2,15.6 466.1,14.0" fill="#1f4e6b" stroke="#1f4e6b" stroke-width="0.5"/><polygon points="494.1,0.0 515.3,0.0 516.2,17.3 508.7,24.0 494.4,22.8 490.2,15.6" fill="#1f4e6b" stroke="#1f4e6b" stroke-width="0.5"/><polygon points="515.3,0.0 535.5,0.0 535.5,21.6 516.2,17.3" fill="#1f4e6b" stroke="#1f4e6b" stroke-width="0.5"/><polygon points="535.5,0.0 553.5,0.0 553.5,21.0 547.8,24.2 535.5,21.1" fill="#1f4e6b" stroke="#1f4e6b" stroke-width="0.5"/><polygon points="553.5,0.0 576.0,0.0 576.0,23.9 553.5,21.0" fill="#1f4e6b" stroke="#1f4e6b" stroke-width="0.5"/><polygon points="0.0,33.3 0.0,27.9 16.3,18.3 24.3,21.4 29.9,35.0 21.9,45.5" fill="#1f4e6b" stroke="#1f4e6b" stroke-width="0.5"/><polygon points="29.9,35.0 24.3,21.4 41.5,8.2 51.0,19.4 42.8,35.9" fill="#1f4e6b" stroke="#1f4e6b" stroke-width="0.5"/><polygon points="42.8,35.9 51.0,19.4 68.0,20.2 68.6,38.4 49.1,44.2" fill="#1f4e6b" stroke="#1f4e6b" stroke-width="0.5"/><polygon points="68.6,37.8 68.0,21.5 90.7,21.5 93.6,36.1 86.9,41.1" fill="#3d7ea6" stroke="#3d7ea6" stroke-width="0.5"/><polygon points="93.6,36.1 90.7,21.5 95.2,15.0 111.8,15.0 116.3,21.5 113.3,36.7 106.8,41.4" fill="#3d7ea6" stroke="#3d7ea6" stroke-width="0.5"/><polygon points="113.3,36.7 116.3,21.5 138.9,21.5 137.8,45.7" fill="#ffefba" stroke="#ffefba" stroke-width="0.5"/><polygon points="137.8,45.0 138.9,21.1 161.6,16.7 161.9,40.4 155.6,47.5 147.5,49.3" fill="#f4dfae" stroke="#f4dfae" stroke-width="0.5"/><polygon points="161.9,40.4 161.7,22.8 175.9,19.0 183.9,24.0 185.4,42.7" fill="#efdbaa" stroke="#efdbaa" stroke-width="0.5"/><polygon points="185.1,39.8 183.9,24.0 198.2,17.1 210.5,23.6 201.5,45.9" fill="#8ab673" stroke="#8ab673" stroke-width="0.5"/><polygon points="202.2,44.3 210.5,23.6 221.1,20.9 230.4,39.0 220.7,52.7" fill="#96c67d" stroke="#96c67d" stroke-width="0.5"/><polygon points="230.4,39.0 221.1,20.8 243.9,14.4 253.7,24.2 246.5,40.9" fill="#ecf6e2" stroke="#ecf6e2" stroke-width="0.5"/><polygon points="246.5,40.9 253.7,24.2 267.8,21.4 272.2,24.0 273.3,45.7 266.1,51.3 248.8,44.9" fill="#f1fbe6" stroke="#f1fbe6" stroke-width="0.5"/><polygon points="273.3,45.7 272.2,24.0 287.5,21.5 297.3,41.1 290.5,49.1" fill="#e8f2de" stroke="#e8f2de" stroke-width="0.5"/><polygon points="297.3,41.1 287.5,21.5 293.3,14.2 311.7,16.3 314.5,20.3 310.7,39.6" fill="#c9c17d" stroke="#c9c17d" stroke-width="0.5"/><polygon points="310.5,40.5 314.5,20.3 335.2,21.4 335.2,40.5" fill="#ffffff" stroke="#ffffff" stroke-width="0.5"/><polygon points="335.2,42.8 335.2,21.6 353.4,20.8 358.9,42.8" fill="#d9dce0" stroke="#d9dce0" stroke-width="0.5"/><polygon points="357.9,38.8 353.4,20.8 357.6,15.9 373.7,14.1 375.1,36.6" fill="#b4b7ba" stroke="#b4b7ba" stroke-width="0.5"/><polygon points="373.6,13.6 395.3,16.3 393.8,41.1 380.4,40.6 375.1,36.6" fill="#6a6642" stroke="#6a6642" stroke-width="0.5"/><polygon points="393.7,42.2 395.3,16.3 398.2,14.0 415.8,17.5 418.1,20.2 414.9,36.0" fill="#7c8177" stroke="#7c8177" stroke-width="0.5"/><polygon points="414.9,36.0 418.1,20.2 438.8,20.2 442.6,24.1 442.4,31.9 425.3,45.6" fill="#7c8177" stroke="#7c8177" stroke-width="0.5"/><polygon points="442.4,31.9 442.6,24.1 464.0,17.5 470.2,37.3 464.8,43.6 452.4,44.5" fill="#3d7ea6" stroke="#3d7ea6" stroke-width="0.5"/><polygon points="470.2,37.3 464.0,17.5 466.1,14.0 490.2,15.6 494.4,22.8 487.5,38.2" fill="#1f4e6b" stroke="#1f4e6b" stroke-width="0.5"/><polygon points="494.4,22.8 508.7,24.0 515.8,41.3 512.6,47.3 491.2,46.0 487.5,38.2" fill="#1f4e6b" stroke="#1f4e6b" stroke-width="0.5"/><polygon points="515.8,41.3 508.7,24.0 516.2,17.3 534.7,21.4 527.3,38.7" fill="#1f4e6b" stroke="#1f4e6b" stroke-width="0.5"/><polygon points="534.9,20.9 547.8,24.2 548.8,41.7 537.6,47.3 527.3,38.7" fill="#1f4e6b" stroke="#1f4e6b" stroke-width="0.5"/><polygon points="576.0,23.9 576.0,44.6 555.8,46.3 548.8,41.7 547.8,24.2 553.5,21.0" fill="#1f4e6b" stroke="#1f4e6b" stroke-width="0.5"/><polygon points="0.0,58.5 0.0,33.3 21.9,45.5 21.9,58.5" fill="#1f4e6b" stroke="#1f4e6b" stroke-width="0.5"/><polygon points="21.9,59.4 21.9,45.5 29.9,35.0 42.8,35.9 49.1,44.2 47.6,57.9" fill="#1f4e6b" stroke="#1f4e6b" stroke-width="0.5"/><polygon points="47.3,60.2 49.1,44.2 68.1,38.5 71.7,64.0" fill="#1f4e6b" stroke="#1f4e6b" stroke-width="0.5"/><polygon points="70.8,57.4 68.0,37.7 86.9,41.1 85.2,60.5" fill="#3d7ea6" stroke="#3d7ea6" stroke-width="0.5"/><polygon points="85.2,60.8 86.9,41.1 93.6,36.1 106.8,41.4 107.3,60.8" fill="#ffffc6" stroke="#ffffc6" stroke-width="0.5"/><polygon points="107.3,59.4 106.8,41.4 113.3,36.7 136.9,45.4 123.9,61.9" fill="#ffedb9" stroke="#ffedb9" stroke-width="0.5"/><polygon points="137.3,44.8 147.5,49.3 147.5,74.1 131.7,78.8 123.9,61.9" fill="#5a9454" stroke="#5a9454" stroke-width="0.5"/><polygon points="155.6,47.5 161.9,40.4 181.4,42.3 176.4,65.4 172.6,65.7" fill="#568d50" stroke="#568d50" stroke-width="0.5"/><polygon points="182.2,38.7 199.8,45.3 195.2,65.1 176.7,63.8" fill="#8ab673" stroke="#8ab673" stroke-width="0.5"/><polygon points="200.2,43.4 220.7,52.7 224.1,68.9 195.0,65.9" fill="#cbeb99" stroke="#cbeb99" stroke-width="0.5"/><polygon points="222.8,62.9 220.7,52.7 230.4,39.0 246.5,40.9 248.8,44.9 240.0,68.3" fill="#65a65f" stroke="#65a65f" stroke-width="0.5"/><polygon points="248.8,44.9 266.1,51.3 266.6,63.5 258.8,70.9 241.4,64.5" fill="#d4f69f" stroke="#d4f69f" stroke-width="0.5"/><polygon points="266.6,63.5 266.1,51.3 273.3,45.7 290.5,49.1 292.6,61.3 283.2,71.9" fill="#ccc580" stroke="#ccc580" stroke-width="0.5"/><polygon points="292.6,61.3 290.5,49.1 297.3,41.1 311.4,39.6 316.6,61.7 311.3,68.1" fill="#cdc580" stroke="#cdc580" stroke-width="0.5"/><polygon points="316.6,61.7 311.7,40.5 337.5,40.5 333.6,59.8" fill="#cfd2d6" stroke="#cfd2d6" stroke-width="0.5"/><polygon points="333.6,59.8 337.1,42.8 354.6,42.8 358.7,58.5 353.4,66.1 340.7,67.6" fill="#847f52" stroke="#847f52" stroke-width="0.5"/><polygon points="358.7,58.5 353.7,39.3 375.1,36.6 380.4,40.6 372.5,58.5" fill="#6a6642" stroke="#6a6642" stroke-width="0.5"/><polygon points="372.5,58.5 380.4,40.6 394.6,41.1 396.8,49.8 392.6,61.3 379.7,67.8" fill="#6a6642" stroke="#6a6642" stroke-width="0.5"/><polygon points="396.8,49.8 394.8,41.9 414.9,36.0 425.3,45.6 426.2,56.6 416.8,61.5" fill="#7c8177" stroke="#7c8177" stroke-width="0.5"/><polygon points="426.2,56.6 425.3,45.6 442.4,31.9 452.4,44.5 446.2,57.6 434.4,61.3" fill="#345631" stroke="#345631" stroke-width="0.5"/><polygon points="446.2,57.6 452.4,44.5 464.8,43.6 471.4,62.3 464.2,72.3" fill="#3d7ea6" stroke="#3d7ea6" stroke-width="0.5"/><polygon points="471.4,62.3 464.8,43.6 470.2,37.3 487.5,38.2 491.2,46.0 487.7,59.1" fill="#1f4e6b" stroke="#1f4e6b" stroke-width="0.5"/><polygon points="487.7,59.1 491.2,46.0 512.6,47.3 514.1,52.9 497.0,70.0 496.2,70.0" fill="#1f4e6b" stroke="#1f4e6b" stroke-width="0.5"/><polygon points="514.1,52.9 512.6,47.3 515.8,41.3 527.3,38.7 537.6,47.3 534.9,59.3 525.3,64.0" fill="#1f4e6b" stroke="#1f4e6b" stroke-width="0.5"/><polygon points="534.9,59.3 537.6,47.3 548.8,41.7 555.8,46.3 551.3,67.8" fill="#1f4e6b" stroke="#1f4e6b" stroke-width="0.5"/><polygon points="576.0,44.6 576.0,59.6 551.7,65.7 555.8,46.3" fill="#1f4e6b" stroke="#1f4e6b" stroke-width="0.5"/><polygon points="0.0,81.3 0.0,58.5 22.5,58.5 22.5,78.8" fill="#1f4e6b" stroke="#1f4e6b" stroke-width="0.5"/><polygon points="22.5,73.2 22.5,59.3 50.4,57.7 45.4,81.1 45.1,81.3" fill="#1f4e6b" stroke="#1f4e6b" stroke-width="0.5"/><polygon points="45.4,81.1 49.8,60.6 62.9,62.6 70.6,88.0" fill="#3d7ea6" stroke="#3d7ea6" stroke-width="0.5"/><polygon points="69.2,83.4 60.7,55.3 85.4,60.6 82.8,79.0" fill="#ffefba" stroke="#ffefba" stroke-width="0.5"/><polygon points="82.8,79.0 85.4,60.8 105.8,60.8 104.7,81.0 92.9,85.7" fill="#5d9957" stroke="#5d9957" stroke-width="0.5"/><polygon points="104.7,81.0 105.9,59.2 123.9,61.9 131.7,78.8 129.3,83.3 112.8,85.6" fill="#5c9856" stroke="#5c9856" stroke-width="0.5"/><polygon points="147.5,74.1 147.5,49.3 155.6,47.5 172.6,65.7 157.2,78.8" fill="#568d50" stroke="#568d50" stroke-width="0.5"/><polygon points="159.0,85.2 157.2,78.8 172.6,65.7 173.8,65.6 184.6,89.3 183.5,91.3" fill="#589052" stroke="#589052" stroke-width="0.5"/><polygon points="184.6,89.3 172.8,63.5 195.9,65.2 195.4,82.7" fill="#ceef9b" stroke="#ceef9b" stroke-width="0.5"/><polygon points="195.4,82.7 195.9,66.0 217.5,68.3 214.4,89.9" fill="#d8fba3" stroke="#d8fba3" stroke-width="0.5"/><polygon points="218.5,61.6 236.2,67.1 238.2,85.5 234.8,90.0 228.8,91.6 214.9,86.8" fill="#d7f9a1" stroke="#d7f9a1" stroke-width="0.5"/><polygon points="235.7,62.4 258.8,70.9 258.8,85.5 238.2,85.5" fill="#d8fba3" stroke="#d8fba3" stroke-width="0.5"/><polygon points="258.8,85.9 258.8,70.9 266.6,63.5 283.2,71.9 284.1,83.9 272.2,88.6" fill="#cdc580" stroke="#cdc580" stroke-width="0.5"/><polygon points="284.2,85.2 283.2,71.9 292.6,61.3 311.3,68.1 312.0,75.3 302.4,86.4" fill="#b8b173" stroke="#b8b173" stroke-width="0.5"/><polygon points="312.0,75.3 311.3,68.1 316.6,61.7 333.6,59.8 340.7,67.6 335.6,83.3 328.7,86.1" fill="#878254" stroke="#878254" stroke-width="0.5"/><polygon points="335.6,83.3 340.7,67.6 353.4,66.1 361.5,79.0 353.7,95.9" fill="#8c8657" stroke="#8c8657" stroke-width="0.5"/><polygon points="361.5,79.0 353.4,66.1 358.7,58.5 372.5,58.5 379.7,67.8 378.3,77.5" fill="#878254" stroke="#878254" stroke-width="0.5"/><polygon points="378.1,78.8 379.7,67.8 392.6,61.3 406.0,78.8" fill="#7c774d" stroke="#7c774d" stroke-width="0.5"/><polygon points="405.2,77.8 392.6,61.3 396.8,49.8 416.8,61.5 409.5,76.6" fill="#6a6642" stroke="#6a6642" stroke-width="0.5"/><polygon points="409.5,76.6 416.8,61.5 426.2,56.6 434.4,61.3 436.9,83.9 425.2,87.8" fill="#345631" stroke="#345631" stroke-width="0.5"/><polygon points="436.9,83.9 434.4,61.3 446.2,57.6 464.2,72.3 464.2,73.4 442.7,86.6" fill="#345631" stroke="#345631" stroke-width="0.5"/><polygon points="473.7,85.3 464.2,73.4 464.2,72.3 471.4,62.3 487.7,59.1 496.2,70.0 488.6,82.3" fill="#3d7ea6" stroke="#3d7ea6" stroke-width="0.5"/><polygon points="497.0,70.0 514.1,52.9 525.3,64.0 525.2,64.2 506.9,75.2" fill="#1f4e6b" stroke="#1f4e6b" stroke-width="0.5"/><polygon points="506.9,75.2 525.2,64.2 530.8,89.1 512.1,86.4" fill="#1f4e6b" stroke="#1f4e6b" stroke-width="0.5"/><polygon points="530.6,88.1 525.2,64.2 525.3,64.0 534.9,59.3 550.4,67.3 551.5,77.1 532.7,88.1" fill="#1f4e6b" stroke="#1f4e6b" stroke-width="0.5"/><polygon points="576.0,59.6 576.0,79.0 551.6,78.2 550.2,66.1" fill="#1f4e6b" stroke="#1f4e6b" stroke-width="0.5"/><polygon points="0.0,101.3 0.0,81.3 18.4,79.2 23.2,97.5 19.8,102.3" fill="#1f4e6b" stroke="#1f4e6b" stroke-width="0.5"/><polygon points="23.2,97.5 16.2,70.9 45.1,81.3 39.3,96.2" fill="#1f4e6b" stroke="#1f4e6b" stroke-width="0.5"/><polygon points="39.3,96.2 45.1,81.3 45.4,81.1 66.4,86.8 66.6,92.1 46.6,105.8" fill="#3d7ea6" stroke="#3d7ea6" stroke-width="0.5"/><polygon points="66.6,92.1 66.3,84.3 82.8,79.0 92.9,85.7 91.6,101.4 87.1,106.0 72.7,102.6" fill="#f4e0ae" stroke="#f4e0ae" stroke-width="0.5"/><polygon points="91.6,101.4 92.9,85.7 104.7,81.0 112.8,85.6 110.1,104.3" fill="#5a9454" stroke="#5a9454" stroke-width="0.5"/><polygon points="109.1,111.4 112.8,85.6 129.3,83.3 132.5,93.8" fill="#589153" stroke="#589153" stroke-width="0.5"/><polygon points="132.5,93.8 129.3,83.3 131.7,78.8 147.5,74.1 157.2,78.8 159.0,85.2 154.1,103.4 150.7,106.2 139.8,102.1" fill="#589153" stroke="#589153" stroke-width="0.5"/><polygon points="154.1,103.4 159.0,85.2 183.5,91.3 184.0,107.5" fill="#599253" stroke="#599253" stroke-width="0.5"/><polygon points="183.9,104.5 183.5,91.3 184.6,89.3 195.4,82.7 211.4,88.8 206.8,104.5" fill="#d8fba3" stroke="#d8fba3" stroke-width="0.5"/><polygon points="211.3,111.5 206.8,104.5 212.2,85.9 228.8,91.6 225.2,110.9" fill="#d4f69f" stroke="#d4f69f" stroke-width="0.5"/><polygon points="234.8,90.0 238.3,85.5 259.3,85.5 254.4,105.3 244.8,105.0" fill="#cac27e" stroke="#cac27e" stroke-width="0.5"/><polygon points="254.4,105.3 259.2,86.0 272.2,88.6 272.2,110.0 264.5,116.6" fill="#aaa46a" stroke="#aaa46a" stroke-width="0.5"/><polygon points="272.2,110.0 272.2,88.7 285.9,83.2 288.1,107.6" fill="#898355" stroke="#898355" stroke-width="0.5"/><polygon points="288.1,107.6 286.1,85.4 302.4,86.4 309.5,104.7 292.3,110.3" fill="#726e47" stroke="#726e47" stroke-width="0.5"/><polygon points="309.1,103.7 302.4,86.4 312.0,75.3 328.7,86.1 323.2,101.7" fill="#78734b" stroke="#78734b" stroke-width="0.5"/><polygon points="323.2,101.7 328.7,86.1 335.6,83.3 353.7,95.9 355.3,101.5 331.9,110.9" fill="#7b764d" stroke="#7b764d" stroke-width="0.5"/><polygon points="354.8,99.6 353.7,95.9 361.5,79.0 379.0,77.5 381.7,98.1" fill="#9c9661" stroke="#9c9661" stroke-width="0.5"/><polygon points="381.7,97.6 379.2,78.8 404.2,78.8 399.2,95.1" fill="#6a6642" stroke="#6a6642" stroke-width="0.5"/><polygon points="399.2,95.1 404.5,78.0 409.5,76.6 425.2,87.8 418.4,105.3 408.3,105.1" fill="#6a6642" stroke="#6a6642" stroke-width="0.5"/><polygon points="418.4,105.3 425.2,87.8 436.9,83.9 442.7,86.6 448.6,101.5 437.4,112.7 420.8,108.3" fill="#345631" stroke="#345631" stroke-width="0.5"/><polygon points="448.6,101.5 442.7,86.6 464.2,73.4 473.7,85.3 471.0,101.5 463.5,106.5" fill="#345631" stroke="#345631" stroke-width="0.5"/><polygon points="471.0,101.5 473.7,85.3 488.6,82.3 499.6,97.9 484.9,107.1" fill="#3d7ea6" stroke="#3d7ea6" stroke-width="0.5"/><polygon points="488.6,82.3 496.2,70.0 497.0,70.0 506.9,75.2 512.1,86.4 500.0,98.5" fill="#1f4e6b" stroke="#1f4e6b" stroke-width="0.5"/><polygon points="511.1,111.4 500.5,98.0 512.1,86.4 529.4,88.9 524.6,105.6" fill="#1f4e6b" stroke="#1f4e6b" stroke-width="0.5"/><polygon points="532.7,88.1 552.8,76.3 559.1,101.7 551.9,106.1" fill="#1f4e6b" stroke="#1f4e6b" stroke-width="0.5"/><polygon points="576.0,79.0 576.0,101.7 559.1,101.7 553.3,78.3" fill="#1f4e6b" stroke="#1f4e6b" stroke-width="0.5"/><polygon points="0.0,123.1 0.0,101.3 19.8,102.3 23.3,121.6" fill="#1f4e6b" stroke="#1f4e6b" stroke-width="0.5"/><polygon points="23.3,121.5 19.8,102.3 23.2,97.5 39.3,96.2 46.6,105.8 47.4,112.4 40.3,121.5" fill="#1f4e6b" stroke="#1f4e6b" stroke-width="0.5"/><polygon points="47.4,112.4 46.6,105.8 66.6,92.1 72.7,102.6 63.7,116.4" fill="#3d7ea6" stroke="#3d7ea6" stroke-width="0.5"/><polygon points="63.7,116.4 72.7,102.6 87.1,106.0 88.6,116.2 84.7,124.0 69.6,128.9" fill="#fde8b5" stroke="#fde8b5" stroke-width="0.5"/><polygon points="88.6,116.2 87.1,106.0 91.6,101.4 112.5,104.7 116.8,123.2" fill="#52874d" stroke="#52874d" stroke-width="0.5"/><polygon points="115.9,119.5 113.3,108.2 132.5,93.8 139.8,102.1 119.6,120.7" fill="#52874d" stroke="#52874d" stroke-width="0.5"/><polygon points="119.6,120.7 139.8,102.1 150.7,106.2 150.8,118.0 129.0,129.5" fill="#52874d" stroke="#52874d" stroke-width="0.5"/><polygon points="150.8,118.0 150.7,106.2 154.1,103.4 182.1,107.2 182.4,119.2 173.0,128.6 157.7,127.0" fill="#5f9c59" stroke="#5f9c59" stroke-width="0.5"/><polygon points="182.4,119.2 182.0,104.5 206.8,104.5 211.3,111.5 207.7,122.7 199.0,128.5" fill="#d8fba3" stroke="#d8fba3" stroke-width="0.5"/><polygon points="207.7,122.7 211.3,111.5 231.9,110.6 234.7,123.2 221.3,131.8" fill="#cdc580" stroke="#cdc580" stroke-width="0.5"/><polygon points="221.7,129.3 228.8,91.6 234.8,90.0 244.8,105.0" fill="#c4bc7a" stroke="#c4bc7a" stroke-width="0.5"/><polygon points="234.7,123.2 233.3,117.1 244.8,105.0 254.4,105.3 264.5,116.6 264.1,121.4 240.5,127.7" fill="#c3bc7a" stroke="#c3bc7a" stroke-width="0.5"/><polygon points="264.3,119.2 264.5,116.6 272.3,110.0 288.1,107.6 292.3,110.3 292.0,131.4 285.9,131.9" fill="#6a6642" stroke="#6a6642" stroke-width="0.5"/><polygon points="292.0,131.0 292.3,110.3 307.9,105.3 313.8,131.8" fill="#6a6642" stroke="#6a6642" stroke-width="0.5"/><polygon points="312.9,127.8 307.6,103.9 323.2,101.7 331.9,110.9 331.3,120.9" fill="#79754c" stroke="#79754c" stroke-width="0.5"/><polygon points="331.3,120.9 331.9,110.9 354.0,102.1 359.6,120.4 349.9,131.1 339.2,130.1" fill="#9a9460" stroke="#9a9460" stroke-width="0.5"/><polygon points="359.6,120.4 353.2,99.7 381.3,98.2 383.0,114.0 372.1,123.1" fill="#b3ac70" stroke="#b3ac70" stroke-width="0.5"/><polygon points="383.0,114.0 381.2,97.7 399.2,95.1 408.3,105.1 396.8,119.9" fill="#7c774e" stroke="#7c774e" stroke-width="0.5"/><polygon points="396.8,119.9 408.3,105.1 418.4,105.3 420.8,108.3 417.6,128.6 411.8,132.2 399.0,126.0" fill="#6a6642" stroke="#6a6642" stroke-width="0.5"/><polygon points="420.8,108.3 437.4,112.7 441.8,134.6 417.6,128.6" fill="#345631" stroke="#345631" stroke-width="0.5"/><polygon points="440.3,126.8 437.4,112.7 448.6,101.5 463.5,106.5 463.5,118.1 453.5,129.4" fill="#345631" stroke="#345631" stroke-width="0.5"/><polygon points="463.5,118.1 463.5,106.5 471.0,101.5 484.9,107.1 489.5,123.7 481.5,131.6" fill="#ae9f7c" stroke="#ae9f7c" stroke-width="0.5"/><polygon points="489.5,123.7 484.9,107.1 500.1,97.6 511.1,111.4 507.8,124.2" fill="#3d7ea6" stroke="#3d7ea6" stroke-width="0.5"/><polygon points="507.8,124.1 511.1,111.4 524.6,105.6 538.5,119.1 532.2,130.2" fill="#1f4e6b" stroke="#1f4e6b" stroke-width="0.5"/><polygon points="538.5,119.1 524.6,105.6 529.7,88.1 532.7,88.1 551.9,106.1 547.7,116.0" fill="#1f4e6b" stroke="#1f4e6b" stroke-width="0.5"/><polygon points="576.0,101.7 576.0,127.8 558.8,127.2 547.7,116.0 551.9,106.1 559.1,101.7" fill="#1f4e6b" stroke="#1f4e6b" stroke-width="0.5"/><polygon points="0.0,142.3 0.0,123.1 23.2,121.6 20.7,144.6" fill="#1f4e6b" stroke="#1f4e6b" stroke-width="0.5"/><polygon points="20.6,145.2 23.2,121.5 40.3,121.5 46.8,135.4 39.1,146.8" fill="#1f4e6b" stroke="#1f4e6b" stroke-width="0.5"/><polygon points="46.8,135.4 40.3,121.5 47.4,112.4 63.7,116.4 69.6,128.9 65.8,137.8" fill="#3d7ea6" stroke="#3d7ea6" stroke-width="0.5"/><polygon points="65.2,139.1 69.6,128.9 84.7,124.0 96.5,140.5 87.0,150.0" fill="#ead7a7" stroke="#ead7a7" stroke-width="0.5"/><polygon points="96.5,140.5 84.7,124.0 88.6,116.2 111.7,122.0 101.4,140.0" fill="#568e51" stroke="#568e51" stroke-width="0.5"/><polygon points="101.4,140.0 113.6,118.7 119.6,120.7 129.0,129.5 130.3,138.6 113.0,149.7" fill="#4a7945" stroke="#4a7945" stroke-width="0.5"/><polygon points="130.3,138.6 129.0,129.5 150.8,118.0 157.7,127.0 150.1,145.8 141.7,148.5" fill="#447040" stroke="#447040" stroke-width="0.5"/><polygon points="150.1,145.8 157.7,127.0 173.0,128.6 176.5,143.4 160.2,151.3" fill="#477543" stroke="#477543" stroke-width="0.5"/><polygon points="176.5,143.4 173.0,128.6 182.4,119.2 199.0,128.5 199.0,139.8 190.5,149.5 185.1,150.0" fill="#579052" stroke="#579052" stroke-width="0.5"/><polygon points="199.0,139.8 199.0,128.5 207.7,122.7 221.3,131.8 219.9,147.4" fill="#b9b274" stroke="#b9b274" stroke-width="0.5"/><polygon points="219.8,148.3 221.3,131.8 234.7,123.2 240.5,127.7 242.0,146.0 227.0,150.7" fill="#b9b274" stroke="#b9b274" stroke-width="0.5"/><polygon points="242.0,146.0 240.5,127.7 262.1,122.0 262.1,139.7 246.5,148.6" fill="#6a6642" stroke="#6a6642" stroke-width="0.5"/><polygon points="262.1,117.9 285.9,131.9 272.4,147.0 262.1,139.7" fill="#6e6a45" stroke="#6e6a45" stroke-width="0.5"/><polygon points="294.2,156.7 291.5,131.0 310.4,131.7 314.8,141.8 306.3,155.3" fill="#6f935d" stroke="#6f935d" stroke-width="0.5"/><polygon points="314.8,141.8 309.3,129.2 331.3,120.9 339.2,130.1 328.9,146.4" fill="#739860" stroke="#739860" stroke-width="0.5"/><polygon points="333.9,157.2 328.9,146.4 339.2,130.1 349.9,131.1 355.2,144.3 342.9,156.6" fill="#aca56b" stroke="#aca56b" stroke-width="0.5"/><polygon points="355.2,144.3 349.9,131.1 359.6,120.4 372.1,123.1 378.4,140.7 371.6,149.2 368.8,149.7" fill="#a6a068" stroke="#a6a068" stroke-width="0.5"/><polygon points="378.4,140.7 372.1,123.1 383.0,114.0 396.8,119.9 399.0,126.0 387.7,140.2" fill="#b6af72" stroke="#b6af72" stroke-width="0.5"/><polygon points="399.0,126.0 411.8,132.2 411.8,147.5 401.8,154.3 387.7,140.2" fill="#625c55" stroke="#625c55" stroke-width="0.5"/><polygon points="411.7,147.5 411.7,132.2 417.6,128.6 434.2,132.8 434.2,143.9 423.4,151.8" fill="#6a6642" stroke="#6a6642" stroke-width="0.5"/><polygon points="434.2,143.9 434.2,125.5 453.5,129.4 458.8,143.0 455.5,150.4 446.3,151.6" fill="#345631" stroke="#345631" stroke-width="0.5"/><polygon points="458.8,143.0 453.5,129.4 463.5,118.1 481.5,131.6 480.4,138.5" fill="#345631" stroke="#345631" stroke-width="0.5"/><polygon points="480.4,138.5 481.5,131.6 489.5,123.7 507.8,124.2 507.4,146.8 488.4,152.6" fill="#bbab85" stroke="#bbab85" stroke-width="0.5"/><polygon points="507.8,124.1 532.2,130.2 534.2,141.7 516.2,152.0 507.4,146.8" fill="#3d7ea6" stroke="#3d7ea6" stroke-width="0.5"/><polygon points="534.2,141.7 532.2,130.2 538.5,119.1 547.7,116.0 558.8,127.2 550.1,144.6 542.2,146.6" fill="#1f4e6b" stroke="#1f4e6b" stroke-width="0.5"/><polygon points="576.0,127.8 576.0,142.5 558.0,148.5 550.1,144.6 558.8,127.2" fill="#1f4e6b" stroke="#1f4e6b" stroke-width="0.5"/><polygon points="0.0,166.7 0.0,142.3 21.3,144.6 18.4,164.8" fill="#1f4e6b" stroke="#1f4e6b" stroke-width="0.5"/><polygon points="17.1,173.8 21.2,145.3 39.1,146.8 44.2,157.5" fill="#1f4e6b" stroke="#1f4e6b" stroke-width="0.5"/><polygon points="44.2,157.5 39.1,146.8 46.8,135.4 67.1,138.0 60.6,157.9 49.4,160.9" fill="#1f4e6b" stroke="#1f4e6b" stroke-width="0.5"/><polygon points="60.6,157.9 66.5,139.8 87.0,150.0 87.0,159.8 70.9,167.2" fill="#3d7ea6" stroke="#3d7ea6" stroke-width="0.5"/><polygon points="87.0,159.8 87.0,150.0 96.5,140.5 101.4,140.0 113.0,149.7 113.8,162.8 96.2,168.6" fill="#d6c599" stroke="#d6c599" stroke-width="0.5"/><polygon points="113.8,162.8 113.0,149.7 130.3,138.6 141.7,148.5 140.3,153.5 120.9,168.1" fill="#406a3c" stroke="#406a3c" stroke-width="0.5"/><polygon points="140.3,153.5 141.7,148.5 150.1,145.8 160.2,151.3 164.3,165.9 149.6,174.3" fill="#52864c" stroke="#52864c" stroke-width="0.5"/><polygon points="164.3,165.9 160.2,151.3 176.5,143.4 185.1,150.0 175.1,169.4" fill="#568d50" stroke="#568d50" stroke-width="0.5"/><polygon points="177.9,174.5 175.1,169.4 185.1,150.0 190.5,149.5 205.5,168.4 201.2,174.5" fill="#5d9957" stroke="#5d9957" stroke-width="0.5"/><polygon points="205.3,168.2 190.5,149.5 199.0,139.8 221.1,147.8" fill="#b2ac6f" stroke="#b2ac6f" stroke-width="0.5"/><polygon points="232.7,176.4 227.0,150.7 242.0,146.0 246.5,148.6 250.6,158.6 239.7,175.7" fill="#6a6642" stroke="#6a6642" stroke-width="0.5"/><polygon points="250.6,158.6 246.5,148.6 262.1,139.7 272.4,147.0 274.5,156.9 266.8,163.7" fill="#6e6a45" stroke="#6e6a45" stroke-width="0.5"/><polygon points="272.4,147.0 285.9,131.9 291.5,131.4 294.7,161.2 274.5,156.9" fill="#706c46" stroke="#706c46" stroke-width="0.5"/><polygon points="292.9,178.4 289.9,157.2 306.3,155.3 319.1,169.9 317.7,172.9" fill="#7aa166" stroke="#7aa166" stroke-width="0.5"/><polygon points="306.3,155.3 314.8,141.8 328.9,146.4 333.9,157.2 329.4,165.1 319.1,169.9" fill="#a59f67" stroke="#a59f67" stroke-width="0.5"/><polygon points="342.9,156.6 355.2,144.3 368.7,149.7 357.8,171.5" fill="#a8a269" stroke="#a8a269" stroke-width="0.5"/><polygon points="358.2,173.5 357.9,171.5 368.8,149.7 371.6,149.2 383.5,165.6 375.1,176.2" fill="#a09a64" stroke="#a09a64" stroke-width="0.5"/><polygon points="383.5,165.6 371.6,149.2 378.4,140.7 387.7,140.2 401.8,154.3 398.6,165.6" fill="#8c8758" stroke="#8c8758" stroke-width="0.5"/><polygon points="398.4,166.3 401.8,154.3 411.8,147.5 423.4,151.8 427.2,167.3 419.7,176.2" fill="#6a6642" stroke="#6a6642" stroke-width="0.5"/><polygon points="427.2,167.3 423.4,151.8 434.2,143.9 446.3,151.6 437.7,167.0" fill="#345631" stroke="#345631" stroke-width="0.5"/><polygon points="437.7,167.0 446.3,151.6 455.5,150.4 464.4,165.7 464.1,167.0 450.7,178.4" fill="#345631" stroke="#345631" stroke-width="0.5"/><polygon points="464.4,165.7 455.5,150.4 458.8,143.0 480.4,138.5 488.4,152.6 487.6,155.0" fill="#345631" stroke="#345631" stroke-width="0.5"/><polygon points="487.6,155.0 488.4,152.6 507.4,146.8 516.2,152.0 518.7,166.8 509.1,176.4 493.7,171.6" fill="#9c8f6f" stroke="#9c8f6f" stroke-width="0.5"/><polygon points="518.7,166.8 516.2,152.0 534.2,141.7 542.2,146.6 542.2,163.1 531.8,170.9" fill="#3d7ea6" stroke="#3d7ea6" stroke-width="0.5"/><polygon points="542.2,163.1 542.2,146.6 550.1,144.6 558.0,148.5 561.8,159.8 553.0,168.5" fill="#1f4e6b" stroke="#1f4e6b" stroke-width="0.5"/><polygon points="576.0,142.5 576.0,162.6 561.8,159.8 558.0,148.5" fill="#1f4e6b" stroke="#1f4e6b" stroke-width="0.5"/><polygon points="0.0,185.7 0.0,166.7 21.6,164.5 25.7,177.6 20.7,188.7" fill="#1f4e6b" stroke="#1f4e6b" stroke-width="0.5"/><polygon points="25.7,177.6 23.3,170.1 44.2,157.5 49.4,160.9 47.2,180.0" fill="#1f4e6b" stroke="#1f4e6b" stroke-width="0.5"/><polygon points="47.2,180.0 49.4,160.9 60.6,157.9 70.9,167.2 69.1,184.5 50.8,184.5" fill="#3d7ea6" stroke="#3d7ea6" stroke-width="0.5"/><polygon points="69.2,183.4 70.9,167.2 87.0,159.8 96.2,168.6 94.0,183.1 86.5,187.5" fill="#e5d2a4" stroke="#e5d2a4" stroke-width="0.5"/><polygon points="94.0,183.1 96.2,168.6 113.8,162.8 120.9,168.1 122.7,173.2 121.5,179.8 108.1,191.0" fill="#c7b68e" stroke="#c7b68e" stroke-width="0.5"/><polygon points="121.5,179.8 122.7,173.2 148.7,176.4 149.7,183.6 134.2,195.0" fill="#579052" stroke="#579052" stroke-width="0.5"/><polygon points="122.7,173.2 120.9,168.1 140.3,153.5 150.6,176.6" fill="#487643" stroke="#487643" stroke-width="0.5"/><polygon points="149.7,183.6 148.5,174.9 164.3,165.9 175.1,169.4 177.9,174.5 174.9,187.4 157.7,190.6" fill="#5f9d59" stroke="#5f9d59" stroke-width="0.5"/><polygon points="174.9,187.4 177.9,174.5 201.2,174.5 202.3,189.2 195.8,195.8 177.5,191.2" fill="#63a25c" stroke="#63a25c" stroke-width="0.5"/><polygon points="220.5,196.3 202.3,189.2 201.2,174.5 205.3,168.6 230.8,177.7 225.5,193.7" fill="#c6be7c" stroke="#c6be7c" stroke-width="0.5"/><polygon points="205.0,168.5 220.5,148.5 227.0,150.7 233.2,178.6" fill="#a8a169" stroke="#a8a169" stroke-width="0.5"/><polygon points="239.7,175.7 250.6,158.6 266.8,163.7 266.8,183.8 256.0,186.8" fill="#726d47" stroke="#726d47" stroke-width="0.5"/><polygon points="266.8,183.8 266.8,163.7 274.5,156.9 290.3,160.2 292.9,178.4 291.0,182.9 271.3,186.2" fill="#678856" stroke="#678856" stroke-width="0.5"/><polygon points="290.8,183.2 292.9,178.4 317.7,172.9 320.3,189.0 310.5,195.0" fill="#9a9460" stroke="#9a9460" stroke-width="0.5"/><polygon points="320.3,189.0 317.7,172.9 319.1,169.9 329.4,165.1 344.9,184.2 330.3,193.9" fill="#a49d66" stroke="#a49d66" stroke-width="0.5"/><polygon points="329.4,165.1 333.9,157.2 342.9,156.6 357.9,171.5 358.2,173.5 350.6,184.3 344.9,184.2" fill="#a7a068" stroke="#a7a068" stroke-width="0.5"/><polygon points="350.6,184.3 358.2,173.5 375.1,176.2 380.3,190.5 374.9,195.4 355.2,192.3" fill="#a6a068" stroke="#a6a068" stroke-width="0.5"/><polygon points="380.3,190.5 375.1,176.2 383.5,165.6 399.6,165.6 393.2,192.0" fill="#95905d" stroke="#95905d" stroke-width="0.5"/><polygon points="399.3,166.7 419.7,176.2 420.6,182.8 417.6,190.2 396.3,195.0 393.2,192.0" fill="#6a6642" stroke="#6a6642" stroke-width="0.5"/><polygon points="420.6,182.8 419.7,176.2 427.2,167.3 437.7,167.0 450.7,178.4 449.3,186.6 447.2,189.0" fill="#6a6642" stroke="#6a6642" stroke-width="0.5"/><polygon points="449.3,186.6 450.7,178.4 464.1,167.0 480.3,186.8 471.1,194.6" fill="#345631" stroke="#345631" stroke-width="0.5"/><polygon points="464.1,167.0 464.4,165.7 487.6,155.0 493.7,171.6 480.7,187.2" fill="#345631" stroke="#345631" stroke-width="0.5"/><polygon points="481.1,186.7 493.7,171.6 509.1,176.4 510.8,188.2 493.5,197.8" fill="#345631" stroke="#345631" stroke-width="0.5"/><polygon points="510.8,188.2 509.1,176.4 518.7,166.8 531.8,170.9 535.7,184.5 532.3,190.5 513.8,190.8" fill="#3d7ea6" stroke="#3d7ea6" stroke-width="0.5"/><polygon points="535.7,184.5 531.8,170.9 542.2,163.1 553.0,168.5 556.7,178.0 551.8,184.5" fill="#1f4e6b" stroke="#1f4e6b" stroke-width="0.5"/><polygon points="576.0,162.6 576.0,179.4 556.7,178.0 553.0,168.5 561.8,159.8" fill="#1f4e6b" stroke="#1f4e6b" stroke-width="0.5"/><polygon points="0.0,204.9 0.0,185.7 20.7,188.7 23.6,199.7 12.4,208.3" fill="#1f4e6b" stroke="#1f4e6b" stroke-width="0.5"/><polygon points="23.6,199.7 20.7,188.7 25.7,177.6 47.3,180.0 50.9,184.5 44.1,201.3 32.5,204.1" fill="#1f4e6b" stroke="#1f4e6b" stroke-width="0.5"/><polygon points="44.1,201.3 50.9,184.5 67.5,184.5 67.5,209.2 59.8,215.4" fill="#1f4e6b" stroke="#1f4e6b" stroke-width="0.5"/><polygon points="67.5,209.2 67.5,183.0 86.5,187.5 86.5,209.2" fill="#3d7ea6" stroke="#3d7ea6" stroke-width="0.5"/><polygon points="86.5,209.2 86.5,187.5 94.0,183.1 108.1,191.0 110.0,201.7 107.6,206.9 90.0,212.4" fill="#3d7ea6" stroke="#3d7ea6" stroke-width="0.5"/><polygon points="110.0,201.7 108.1,191.0 121.5,179.8 134.2,195.0 133.0,201.7" fill="#e3d1a2" stroke="#e3d1a2" stroke-width="0.5"/><polygon points="133.0,201.7 134.2,195.0 149.7,183.6 157.7,190.6 156.0,210.5 136.0,208.2" fill="#5d9957" stroke="#5d9957" stroke-width="0.5"/><polygon points="155.7,213.6 157.7,190.6 174.9,187.4 177.5,191.2 174.8,208.4" fill="#5a9454" stroke="#5a9454" stroke-width="0.5"/><polygon points="174.8,208.4 177.5,191.2 195.8,195.8 195.8,208.1 183.4,214.3" fill="#558c50" stroke="#558c50" stroke-width="0.5"/><polygon points="203.3,213.8 195.7,208.1 195.7,195.8 202.3,189.2 220.5,196.3 216.1,211.6" fill="#c8c17d" stroke="#c8c17d" stroke-width="0.5"/><polygon points="225.5,193.7 231.2,176.5 239.7,175.7 256.0,186.8 246.6,208.3" fill="#948f5d" stroke="#948f5d" stroke-width="0.5"/><polygon points="246.8,209.5 246.6,208.3 256.0,186.8 266.8,183.8 271.3,186.2 275.9,217.4" fill="#827e52" stroke="#827e52" stroke-width="0.5"/><polygon points="275.3,213.3 271.3,186.2 291.4,182.8 291.4,211.3" fill="#71965e" stroke="#71965e" stroke-width="0.5"/><polygon points="291.4,210.7 291.4,183.6 310.5,195.0 308.7,203.3" fill="#a9a269" stroke="#a9a269" stroke-width="0.5"/><polygon points="308.7,203.3 310.5,195.0 320.3,189.0 330.3,193.9 332.7,210.3 319.1,215.7" fill="#8ab774" stroke="#8ab774" stroke-width="0.5"/><polygon points="332.7,210.3 330.3,193.9 344.9,184.2 350.6,184.3 355.2,192.3 352.6,208.6 334.7,211.4" fill="#b5ae71" stroke="#b5ae71" stroke-width="0.5"/><polygon points="351.6,215.1 355.2,192.3 374.9,195.4 373.6,211.9" fill="#c0b978" stroke="#c0b978" stroke-width="0.5"/><polygon points="373.6,211.9 374.9,195.4 380.3,190.5 393.2,192.0 396.3,195.0 396.8,204.3 378.3,215.9" fill="#a6a068" stroke="#a6a068" stroke-width="0.5"/><polygon points="396.8,204.3 396.3,195.0 417.6,190.2 423.4,204.7 420.7,209.8 402.2,211.5" fill="#6a6642" stroke="#6a6642" stroke-width="0.5"/><polygon points="423.4,204.7 417.6,190.2 420.6,182.8 447.2,189.0 443.9,203.6" fill="#6a6642" stroke="#6a6642" stroke-width="0.5"/><polygon points="443.6,204.9 447.2,189.0 449.3,186.6 471.1,194.6 469.1,209.9 466.3,211.6" fill="#345631" stroke="#345631" stroke-width="0.5"/><polygon points="469.1,209.9 471.1,194.6 480.7,186.4 493.5,197.8 493.8,205.2 483.8,215.2" fill="#345631" stroke="#345631" stroke-width="0.5"/><polygon points="493.8,205.2 493.5,197.8 510.8,188.2 513.8,190.8 515.7,209.5 509.8,214.6" fill="#8f8366" stroke="#8f8366" stroke-width="0.5"/><polygon points="515.7,209.5 513.8,190.8 532.3,190.5 536.7,205.0 533.0,211.0" fill="#3d7ea6" stroke="#3d7ea6" stroke-width="0.5"/><polygon points="536.7,205.0 532.3,190.5 535.7,184.5 551.8,184.5 556.3,202.5" fill="#1f4e6b" stroke="#1f4e6b" stroke-width="0.5"/><polygon points="576.0,179.4 576.0,201.1 556.1,201.8 551.8,184.5 556.7,178.0" fill="#1f4e6b" stroke="#1f4e6b" stroke-width="0.5"/><polygon points="0.0,228.1 0.0,204.9 12.4,208.3 12.4,222.2" fill="#1f4e6b" stroke="#1f4e6b" stroke-width="0.5"/><polygon points="12.4,222.2 12.4,208.3 23.6,199.7 32.5,204.1 32.5,225.3 24.5,230.1" fill="#1f4e6b" stroke="#1f4e6b" stroke-width="0.5"/><polygon points="32.5,225.3 32.5,204.1 44.1,201.3 59.8,215.4 59.4,218.7 45.8,229.1" fill="#1f4e6b" stroke="#1f4e6b" stroke-width="0.5"/><polygon points="59.4,218.7 59.8,215.4 67.5,209.2 86.5,209.2 90.0,212.4 90.0,227.9 88.6,229.5 68.1,229.5" fill="#3d7ea6" stroke="#3d7ea6" stroke-width="0.5"/><polygon points="90.0,227.9 90.0,212.4 107.6,206.9 116.1,221.3 109.3,232.3" fill="#efdbaa" stroke="#efdbaa" stroke-width="0.5"/><polygon points="116.1,221.3 107.6,206.9 110.0,201.8 133.0,201.8 136.0,208.2 130.2,220.8" fill="#f4dfae" stroke="#f4dfae" stroke-width="0.5"/><polygon points="130.2,220.8 136.0,208.2 158.1,210.7 158.5,223.8 152.2,230.8 134.7,229.2" fill="#65a65e" stroke="#65a65e" stroke-width="0.5"/><polygon points="158.5,223.8 158.2,213.0 174.8,208.4 183.4,214.3 182.8,227.6 177.0,233.4" fill="#53894e" stroke="#53894e" stroke-width="0.5"/><polygon points="182.8,227.6 183.4,214.3 195.8,208.1 203.3,213.8 200.7,230.4" fill="#b0aa6e" stroke="#b0aa6e" stroke-width="0.5"/><polygon points="205.3,236.7 200.7,230.4 203.3,213.8 216.1,211.6 224.2,221.7 219.8,232.0" fill="#a29c65" stroke="#a29c65" stroke-width="0.5"/><polygon points="216.1,211.6 220.5,196.3 225.5,193.7 246.6,208.3 246.8,209.5 241.4,218.9 224.2,221.7" fill="#98925f" stroke="#98925f" stroke-width="0.5"/><polygon points="241.4,218.9 246.8,209.5 272.0,216.3 271.3,236.7 267.8,239.0 246.4,234.7" fill="#789e64" stroke="#789e64" stroke-width="0.5"/><polygon points="271.2,238.8 272.1,213.6 290.9,211.4 299.2,224.2 297.7,235.0" fill="#8bb874" stroke="#8bb874" stroke-width="0.5"/><polygon points="299.2,224.2 290.7,211.0 308.7,203.3 319.1,215.7 317.4,219.0" fill="#91c079" stroke="#91c079" stroke-width="0.5"/><polygon points="321.5,235.2 317.4,219.0 319.1,215.7 332.7,210.3 334.7,211.4 339.4,230.6 330.1,239.9" fill="#bdb676" stroke="#bdb676" stroke-width="0.5"/><polygon points="339.4,230.5 334.7,211.4 359.1,207.6 355.6,231.7" fill="#c2bb79" stroke="#c2bb79" stroke-width="0.5"/><polygon points="355.5,232.3 358.1,214.1 373.6,211.9 378.3,215.9 381.8,227.0 372.6,235.4" fill="#b2ab6f" stroke="#b2ab6f" stroke-width="0.5"/><polygon points="381.8,227.0 378.3,215.9 396.8,204.3 402.2,211.5 400.6,221.5 388.5,229.0" fill="#6a6642" stroke="#6a6642" stroke-width="0.5"/><polygon points="400.6,221.5 402.2,211.5 420.7,209.8 423.3,223.5 413.0,230.5" fill="#6a6642" stroke="#6a6642" stroke-width="0.5"/><polygon points="423.3,223.5 420.7,209.8 423.4,204.7 445.2,203.5 441.6,228.9 438.7,230.7" fill="#345631" stroke="#345631" stroke-width="0.5"/><polygon points="441.6,228.9 444.9,205.3 466.3,211.6 460.7,231.7" fill="#345631" stroke="#345631" stroke-width="0.5"/><polygon points="459.3,236.6 466.3,211.6 469.1,209.9 483.8,215.2 487.3,228.2" fill="#345631" stroke="#345631" stroke-width="0.5"/><polygon points="487.6,229.5 483.8,215.2 493.8,205.2 509.8,214.6 508.4,226.5" fill="#345631" stroke="#345631" stroke-width="0.5"/><polygon points="508.1,228.7 509.8,214.6 515.7,209.5 533.0,211.0 535.8,222.0 530.0,230.8" fill="#3d7ea6" stroke="#3d7ea6" stroke-width="0.5"/><polygon points="535.8,222.0 533.0,211.0 536.7,205.0 555.3,202.6 555.3,226.5" fill="#1f4e6b" stroke="#1f4e6b" stroke-width="0.5"/><polygon points="576.0,201.1 576.0,230.6 555.3,228.6 555.3,201.9" fill="#1f4e6b" stroke="#1f4e6b" stroke-width="0.5"/><polygon points="0.0,240.9 0.0,228.1 12.4,222.2 24.5,230.1 21.6,246.2" fill="#1f4e6b" stroke="#1f4e6b" stroke-width="0.5"/><polygon points="21.6,246.5 24.5,230.1 32.5,225.3 45.8,229.1 48.5,251.0" fill="#1f4e6b" stroke="#1f4e6b" stroke-width="0.5"/><polygon points="48.4,249.9 45.8,229.1 59.4,218.7 68.1,229.5 65.7,246.8" fill="#1f4e6b" stroke="#1f4e6b" stroke-width="0.5"/><polygon points="65.7,246.8 68.1,229.5 88.6,229.5 87.1,247.3 74.1,252.5" fill="#3d7ea6" stroke="#3d7ea6" stroke-width="0.5"/><polygon points="87.1,247.3 88.6,229.5 90.0,227.9 109.3,232.3 112.5,241.4 104.8,252.8 98.2,254.6" fill="#efdbab" stroke="#efdbab" stroke-width="0.5"/><polygon points="112.5,241.4 109.3,232.3 116.1,221.3 130.2,220.8 134.7,229.2 129.2,244.4" fill="#5a9354" stroke="#5a9354" stroke-width="0.5"/><polygon points="127.3,249.6 134.7,229.2 152.2,230.8 153.3,246.9" fill="#65a65f" stroke="#65a65f" stroke-width="0.5"/><polygon points="153.3,246.9 152.2,230.8 158.5,223.8 177.0,233.4 177.0,236.2 165.8,252.0 160.2,254.0" fill="#619f5b" stroke="#619f5b" stroke-width="0.5"/><polygon points="177.0,236.2 177.0,233.4 182.8,227.6 200.7,230.4 205.3,236.7 203.1,245.3 194.0,251.3" fill="#5f9d59" stroke="#5f9d59" stroke-width="0.5"/><polygon points="203.1,245.3 205.3,236.7 219.8,232.0 232.3,247.7 220.7,259.3" fill="#a7a168" stroke="#a7a168" stroke-width="0.5"/><polygon points="219.8,232.0 224.2,221.7 241.4,218.9 246.3,234.7 236.7,247.2 232.3,247.7" fill="#8b8657" stroke="#8b8657" stroke-width="0.5"/><polygon points="246.8,258.4 236.7,247.2 246.3,234.7 267.8,239.0 263.0,254.3" fill="#7fa86a" stroke="#7fa86a" stroke-width="0.5"/><polygon points="275.2,238.2 303.3,234.2 303.3,247.7 290.1,262.6" fill="#bcb575" stroke="#bcb575" stroke-width="0.5"/><polygon points="296.3,244.4 299.2,224.2 317.4,219.0 321.5,235.2" fill="#c0b978" stroke="#c0b978" stroke-width="0.5"/><polygon points="303.3,247.7 303.3,241.9 321.5,235.2 330.1,239.9 331.3,246.0 326.5,256.4 319.5,259.9" fill="#b3ac70" stroke="#b3ac70" stroke-width="0.5"/><polygon points="331.3,246.0 330.1,239.9 339.5,230.5 356.3,231.8 352.6,252.5" fill="#bfb777" stroke="#bfb777" stroke-width="0.5"/><polygon points="352.6,252.5 356.2,232.4 372.6,235.4 375.2,251.8 356.0,258.8" fill="#847f53" stroke="#847f53" stroke-width="0.5"/><polygon points="375.2,251.8 372.6,235.4 381.8,227.0 388.5,229.0 396.8,244.5 378.4,253.6" fill="#6a6642" stroke="#6a6642" stroke-width="0.5"/><polygon points="396.8,244.5 388.5,229.0 400.6,221.5 413.0,230.5 409.6,247.3 405.6,248.1" fill="#708154" stroke="#708154" stroke-width="0.5"/><polygon points="409.6,247.3 413.0,230.5 423.3,223.5 438.7,230.7 435.0,246.0 418.2,252.2" fill="#345631" stroke="#345631" stroke-width="0.5"/><polygon points="435.0,246.0 438.7,230.7 441.6,228.9 463.3,232.0 465.1,246.6 462.2,252.2 444.8,255.8" fill="#345631" stroke="#345631" stroke-width="0.5"/><polygon points="465.1,246.6 463.7,235.3 488.7,227.7 489.6,249.2" fill="#345631" stroke="#345631" stroke-width="0.5"/><polygon points="489.5,247.5 488.7,229.3 510.4,226.2 509.5,247.5" fill="#8f8366" stroke="#8f8366" stroke-width="0.5"/><polygon points="509.5,246.5 510.3,228.9 530.0,230.8 533.8,246.8 529.1,249.6" fill="#3d7ea6" stroke="#3d7ea6" stroke-width="0.5"/><polygon points="533.8,246.8 530.0,230.8 535.8,222.0 558.4,227.3 545.1,250.4" fill="#1f4e6b" stroke="#1f4e6b" stroke-width="0.5"/><polygon points="576.0,230.6 576.0,255.0 547.5,254.0 545.1,250.4 557.5,228.8" fill="#1f4e6b" stroke="#1f4e6b" stroke-width="0.5"/><polygon points="0.0,266.2 0.0,240.9 21.9,246.2 17.1,264.6" fill="#1f4e6b" stroke="#1f4e6b" stroke-width="0.5"/><polygon points="17.1,264.6 21.8,246.5 47.6,250.8 47.0,266.8 22.5,270.8" fill="#1f4e6b" stroke="#1f4e6b" stroke-width="0.5"/><polygon points="47.0,266.8 47.6,250.0 65.7,246.8 74.1,252.5 73.4,266.0 58.0,275.6 51.7,273.1" fill="#1f4e6b" stroke="#1f4e6b" stroke-width="0.5"/><polygon points="73.4,266.0 74.1,252.5 87.1,247.3 98.2,254.6 93.9,271.3 87.5,275.1" fill="#3d7ea6" stroke="#3d7ea6" stroke-width="0.5"/><polygon points="93.9,271.3 98.2,254.6 104.8,252.8 120.7,267.9 111.5,278.7" fill="#fce7b4" stroke="#fce7b4" stroke-width="0.5"/><polygon points="120.7,267.9 104.8,252.8 112.5,241.4 132.4,245.0 130.0,266.0" fill="#61a05b" stroke="#61a05b" stroke-width="0.5"/><polygon points="130.1,264.7 131.9,249.1 153.3,246.9 160.2,254.0 158.4,260.6 149.6,268.1" fill="#65a65f" stroke="#65a65f" stroke-width="0.5"/><polygon points="175.9,280.9 158.4,260.6 160.2,254.0 165.8,252.0 185.2,261.4" fill="#65a65f" stroke="#65a65f" stroke-width="0.5"/><polygon points="165.8,252.0 177.0,236.2 194.0,251.3 191.2,258.7 185.2,261.4" fill="#d8fba3" stroke="#d8fba3" stroke-width="0.5"/><polygon points="191.2,258.7 194.0,251.3 203.1,245.3 220.7,259.3 220.1,264.8 203.2,272.0" fill="#b9b274" stroke="#b9b274" stroke-width="0.5"/><polygon points="220.1,264.8 220.7,259.3 232.3,247.7 236.7,247.2 246.8,258.4 244.6,273.6 224.5,270.6" fill="#739960" stroke="#739960" stroke-width="0.5"/><polygon points="244.5,274.5 246.8,258.4 263.0,254.3 268.4,264.2 263.2,274.5" fill="#a7a168" stroke="#a7a168" stroke-width="0.5"/><polygon points="268.4,264.2 263.0,254.3 267.8,239.0 273.5,235.3 290.1,262.6 289.9,263.4 287.0,265.7" fill="#b2ab6f" stroke="#b2ab6f" stroke-width="0.5"/><polygon points="289.9,263.4 290.1,262.6 303.3,247.7 319.5,259.9 316.7,266.8 305.8,273.6" fill="#a9a36a" stroke="#a9a36a" stroke-width="0.5"/><polygon points="330.8,284.4 316.7,266.8 319.5,259.9 326.5,256.4 339.3,268.3 332.5,284.5" fill="#6a6642" stroke="#6a6642" stroke-width="0.5"/><polygon points="326.5,256.4 331.3,246.0 352.6,252.5 356.0,258.8 354.8,264.1 339.3,268.3" fill="#6f6b46" stroke="#6f6b46" stroke-width="0.5"/><polygon points="354.6,264.7 356.0,258.8 375.2,251.8 378.4,253.6 384.0,267.7 375.5,277.1" fill="#6a6642" stroke="#6a6642" stroke-width="0.5"/><polygon points="384.0,267.7 378.4,253.6 396.8,244.5 405.6,248.1 395.0,269.1" fill="#708154" stroke="#708154" stroke-width="0.5"/><polygon points="395.0,269.1 405.6,248.1 409.6,247.3 418.2,252.2 420.1,266.1 404.7,280.3" fill="#708154" stroke="#708154" stroke-width="0.5"/><polygon points="420.1,266.1 418.2,252.2 435.0,246.0 444.8,255.8 441.8,270.3 429.7,272.0" fill="#345631" stroke="#345631" stroke-width="0.5"/><polygon points="440.2,278.2 444.8,255.7 462.2,252.2 467.5,265.5 463.8,274.9" fill="#345631" stroke="#345631" stroke-width="0.5"/><polygon points="467.5,265.5 462.2,252.2 465.1,246.6 488.2,249.0 488.2,265.5" fill="#8f8366" stroke="#8f8366" stroke-width="0.5"/><polygon points="488.2,270.4 488.2,247.5 508.5,247.5 508.5,266.4" fill="#3d7ea6" stroke="#3d7ea6" stroke-width="0.5"/><polygon points="508.5,266.4 508.5,246.3 529.1,249.6 520.4,273.6" fill="#1f4e6b" stroke="#1f4e6b" stroke-width="0.5"/><polygon points="520.8,272.6 529.1,249.6 533.8,246.8 545.1,250.4 547.5,254.0 546.5,265.9 536.3,275.2" fill="#1f4e6b" stroke="#1f4e6b" stroke-width="0.5"/><polygon points="576.0,255.0 576.0,277.1 562.3,277.7 546.5,265.9 547.5,254.0" fill="#1f4e6b" stroke="#1f4e6b" stroke-width="0.5"/><polygon points="0.0,292.3 0.0,266.2 17.1,264.6 22.5,270.8 22.5,289.5" fill="#1f4e6b" stroke="#1f4e6b" stroke-width="0.5"/><polygon points="22.5,289.7 22.5,270.8 47.0,266.8 51.7,273.1 38.3,290.9" fill="#1f4e6b" stroke="#1f4e6b" stroke-width="0.5"/><polygon points="38.3,290.9 51.7,273.1 58.0,275.6 61.7,283.6 59.0,298.7 49.6,305.5" fill="#1f4e6b" stroke="#1f4e6b" stroke-width="0.5"/><polygon points="61.7,283.6 58.0,275.6 73.4,266.0 87.5,275.1 84.9,289.4" fill="#3d7ea6" stroke="#3d7ea6" stroke-width="0.5"/><polygon points="84.8,290.3 87.5,275.1 93.9,271.3 111.5,278.7 112.0,287.4 102.4,296.5" fill="#fff9c2" stroke="#fff9c2" stroke-width="0.5"/><polygon points="112.0,287.4 111.5,278.7 120.7,267.9 128.4,266.3 138.8,300.8" fill="#619f5b" stroke="#619f5b" stroke-width="0.5"/><polygon points="135.7,290.3 127.8,264.4 149.6,268.1 151.1,285.5" fill="#5d9857" stroke="#5d9857" stroke-width="0.5"/><polygon points="151.1,285.5 149.6,268.1 158.4,260.6 175.9,280.9 175.9,281.1 158.5,289.8" fill="#65a65f" stroke="#65a65f" stroke-width="0.5"/><polygon points="175.9,281.1 175.9,280.9 185.2,261.4 191.2,258.7 203.2,272.0 200.1,284.0 182.3,286.2" fill="#c8c17d" stroke="#c8c17d" stroke-width="0.5"/><polygon points="200.1,284.0 203.2,272.0 220.1,264.8 224.5,270.6 221.9,290.4 203.1,287.5" fill="#8a8556" stroke="#8a8556" stroke-width="0.5"/><polygon points="221.5,293.3 224.5,270.6 245.3,273.7 243.7,293.1" fill="#6e915c" stroke="#6e915c" stroke-width="0.5"/><polygon points="243.8,292.5 245.3,274.5 263.2,274.5 268.5,285.0 264.9,292.5" fill="#a8a269" stroke="#a8a269" stroke-width="0.5"/><polygon points="268.5,285.0 263.2,274.5 268.4,264.2 287.0,265.7 283.1,282.9" fill="#b0aa6e" stroke="#b0aa6e" stroke-width="0.5"/><polygon points="283.1,282.9 287.0,265.7 289.9,263.4 305.8,273.6 305.8,284.4 291.8,293.4" fill="#a29c65" stroke="#a29c65" stroke-width="0.5"/><polygon points="305.8,284.4 305.8,273.6 316.7,266.8 330.8,284.4 316.7,291.2" fill="#6a6642" stroke="#6a6642" stroke-width="0.5"/><polygon points="332.5,284.5 339.3,268.3 355.5,263.9 352.8,288.3 339.9,291.2" fill="#345631" stroke="#345631" stroke-width="0.5"/><polygon points="352.8,288.3 355.3,265.1 375.5,277.1 375.2,282.1 359.9,291.9" fill="#345631" stroke="#345631" stroke-width="0.5"/><polygon points="386.0,293.8 375.2,282.1 375.5,277.1 384.0,267.7 395.0,269.1 405.4,281.2 396.2,293.9" fill="#345631" stroke="#345631" stroke-width="0.5"/><polygon points="403.4,281.4 420.1,266.1 429.7,272.0 425.3,292.8" fill="#345631" stroke="#345631" stroke-width="0.5"/><polygon points="425.2,293.2 429.7,272.0 449.3,269.2 446.6,282.7 430.7,294.6" fill="#577349" stroke="#577349" stroke-width="0.5"/><polygon points="457.2,301.9 446.6,282.7 447.7,277.2 463.8,274.9 470.2,285.3 460.0,302.9" fill="#72975f" stroke="#72975f" stroke-width="0.5"/><polygon points="470.2,285.3 463.8,274.9 467.5,265.5 492.4,265.5 488.9,286.6" fill="#a19373" stroke="#a19373" stroke-width="0.5"/><polygon points="489.1,285.3 491.7,269.8 508.5,266.4 519.6,273.1 515.4,287.5 501.8,292.9" fill="#3d7ea6" stroke="#3d7ea6" stroke-width="0.5"/><polygon points="515.4,287.5 519.8,272.4 536.3,275.2 543.2,293.1 526.8,300.1" fill="#1f4e6b" stroke="#1f4e6b" stroke-width="0.5"/><polygon points="544.2,295.7 536.3,275.2 546.5,265.9 562.3,277.7" fill="#1f4e6b" stroke="#1f4e6b" stroke-width="0.5"/><polygon points="576.0,277.1 576.0,299.7 551.4,301.5 545.9,294.1 562.3,277.7" fill="#1f4e6b" stroke="#1f4e6b" stroke-width="0.5"/><polygon points="0.0,306.9 0.0,292.3 22.7,289.5 23.5,316.3" fill="#1f4e6b" stroke="#1f4e6b" stroke-width="0.5"/><polygon points="23.3,309.4 22.8,289.8 38.3,290.9 49.6,305.5 49.0,308.3 43.5,312.6" fill="#1f4e6b" stroke="#1f4e6b" stroke-width="0.5"/><polygon points="49.0,308.3 49.6,305.5 59.0,298.7 77.7,304.9 79.0,311.6 67.0,325.0" fill="#1f4e6b" stroke="#1f4e6b" stroke-width="0.5"/><polygon points="77.7,304.9 59.0,298.7 61.7,283.6 85.7,289.6" fill="#1f4e6b" stroke="#1f4e6b" stroke-width="0.5"/><polygon points="79.0,311.6 77.7,304.9 85.3,290.4 102.4,296.5 104.6,309.9 92.5,317.3" fill="#3d7ea6" stroke="#3d7ea6" stroke-width="0.5"/><polygon points="104.6,309.9 102.4,296.5 112.0,287.4 130.9,296.8 131.3,303.1 110.0,312.6" fill="#599354" stroke="#599354" stroke-width="0.5"/><polygon points="131.3,302.4 130.6,291.9 151.1,285.5 158.5,289.8 159.6,308.1 153.5,312.6" fill="#e3ecd9" stroke="#e3ecd9" stroke-width="0.5"/><polygon points="159.6,308.1 158.5,289.8 175.9,281.1 182.2,286.2 182.2,309.3 179.6,312.7" fill="#b3ad70" stroke="#b3ad70" stroke-width="0.5"/><polygon points="182.2,309.3 182.2,286.2 200.1,284.0 203.1,287.5 201.2,306.3" fill="#807b50" stroke="#807b50" stroke-width="0.5"/><polygon points="201.2,306.3 203.1,287.5 224.7,290.9 217.8,316.1 213.8,315.7" fill="#827e52" stroke="#827e52" stroke-width="0.5"/><polygon points="217.7,316.7 224.1,293.3 243.3,293.2 245.6,309.8 238.1,317.3" fill="#6098b8" stroke="#6098b8" stroke-width="0.5"/><polygon points="245.6,309.8 243.2,292.5 264.9,292.5 269.0,302.9 259.9,313.8" fill="#9d9762" stroke="#9d9762" stroke-width="0.5"/><polygon points="269.0,302.9 264.9,292.5 268.5,285.0 283.1,282.9 291.8,293.4 291.0,299.8 282.5,305.8" fill="#97925f" stroke="#97925f" stroke-width="0.5"/><polygon points="291.0,299.8 291.8,293.4 305.8,284.4 316.7,291.2 315.8,306.1 305.1,310.4" fill="#6a6642" stroke="#6a6642" stroke-width="0.5"/><polygon points="315.8,306.1 316.7,291.2 330.8,284.4 332.5,284.5 339.9,291.2 337.5,309.7 328.2,313.0" fill="#7c8177" stroke="#7c8177" stroke-width="0.5"/><polygon points="337.5,309.7 339.9,291.2 352.8,288.3 359.9,291.9 364.8,308.5 349.9,317.5" fill="#345631" stroke="#345631" stroke-width="0.5"/><polygon points="364.8,308.5 359.9,291.9 375.2,282.1 386.0,293.8 372.9,310.8" fill="#345631" stroke="#345631" stroke-width="0.5"/><polygon points="377.5,317.3 372.9,310.8 386.0,293.8 396.2,293.9 403.4,310.5 397.8,318.3" fill="#345631" stroke="#345631" stroke-width="0.5"/><polygon points="403.4,310.5 396.2,293.9 404.7,282.1 425.9,293.1 414.8,310.5" fill="#345631" stroke="#345631" stroke-width="0.5"/><polygon points="427.5,323.9 414.8,310.5 425.7,293.4 430.7,294.6 439.7,304.9 434.1,322.9" fill="#447040" stroke="#447040" stroke-width="0.5"/><polygon points="430.7,294.6 446.6,282.7 457.2,301.9 439.7,304.9" fill="#477442" stroke="#477442" stroke-width="0.5"/><polygon points="460.0,302.9 470.2,285.3 486.8,286.5 479.4,311.2 475.2,311.9 461.9,306.0" fill="#5e7c4e" stroke="#5e7c4e" stroke-width="0.5"/><polygon points="487.5,284.4 501.8,292.9 501.8,308.7 485.6,313.7 479.4,311.2" fill="#3d7ea6" stroke="#3d7ea6" stroke-width="0.5"/><polygon points="501.8,308.7 501.8,293.0 515.4,287.5 526.8,300.1 525.0,307.8 508.2,314.2" fill="#1f4e6b" stroke="#1f4e6b" stroke-width="0.5"/><polygon points="525.0,307.8 526.8,300.1 544.7,292.4 551.4,301.5 550.4,309.7 533.1,319.3" fill="#1f4e6b" stroke="#1f4e6b" stroke-width="0.5"/><polygon points="576.0,299.7 576.0,319.5 556.6,319.5 550.4,309.7 551.4,301.5" fill="#1f4e6b" stroke="#1f4e6b" stroke-width="0.5"/><polygon points="0.0,330.9 0.0,306.9 19.0,314.5 18.2,327.6" fill="#1f4e6b" stroke="#1f4e6b" stroke-width="0.5"/><polygon points="18.0,330.8 19.3,308.8 43.5,312.6 39.4,330.8" fill="#1f4e6b" stroke="#1f4e6b" stroke-width="0.5"/><polygon points="39.4,330.8 43.5,312.6 49.0,308.3 67.0,325.0 66.8,327.8 56.8,338.0 45.2,337.1" fill="#1f4e6b" stroke="#1f4e6b" stroke-width="0.5"/><polygon points="66.8,327.8 67.0,325.0 79.0,311.6 92.5,317.3 93.6,333.7 86.2,340.6" fill="#1f4e6b" stroke="#1f4e6b" stroke-width="0.5"/><polygon points="93.6,333.7 92.5,317.3 104.6,309.9 110.0,312.6 116.4,329.6 111.4,336.0" fill="#3d7ea6" stroke="#3d7ea6" stroke-width="0.5"/><polygon points="116.4,329.6 110.0,312.6 130.5,303.5 130.5,328.1" fill="#999f92" stroke="#999f92" stroke-width="0.5"/><polygon points="130.5,331.8 130.5,302.0 153.5,312.6 151.1,322.8" fill="#ced7c5" stroke="#ced7c5" stroke-width="0.5"/><polygon points="151.1,322.8 153.5,312.6 159.6,308.1 179.6,312.7 181.7,325.2 167.5,338.3 161.0,336.4" fill="#b1aa6e" stroke="#b1aa6e" stroke-width="0.5"/><polygon points="181.7,325.2 179.6,312.7 182.2,309.3 201.2,306.3 213.8,315.7 192.5,331.4" fill="#827d51" stroke="#827d51" stroke-width="0.5"/><polygon points="196.5,340.7 192.5,331.4 213.8,315.7 218.4,316.2 220.2,338.1" fill="#959c8f" stroke="#959c8f" stroke-width="0.5"/><polygon points="220.3,338.9 218.5,316.8 238.1,317.3 245.0,335.7 238.6,341.2" fill="#6098b8" stroke="#6098b8" stroke-width="0.5"/><polygon points="245.0,335.7 238.1,317.3 245.6,309.8 259.9,313.8 264.5,327.5 256.6,336.4" fill="#9ba295" stroke="#9ba295" stroke-width="0.5"/><polygon points="264.5,327.5 259.9,313.8 269.0,302.9 282.5,305.8 282.5,328.5" fill="#807b50" stroke="#807b50" stroke-width="0.5"/><polygon points="282.5,330.5 282.5,305.8 291.0,299.8 305.1,310.4 301.6,328.2" fill="#6a6642" stroke="#6a6642" stroke-width="0.5"/><polygon points="300.8,332.0 305.1,310.4 315.8,306.1 328.2,313.0 323.6,329.2" fill="#7c8177" stroke="#7c8177" stroke-width="0.5"/><polygon points="333.1,340.7 323.6,329.2 328.2,313.0 337.5,309.7 351.3,318.4" fill="#7c8177" stroke="#7c8177" stroke-width="0.5"/><polygon points="348.8,318.1 364.8,308.5 372.9,310.8 377.5,317.3 373.5,337.5 361.1,337.5" fill="#475131" stroke="#475131" stroke-width="0.5"/><polygon points="373.3,338.5 377.5,317.3 397.8,318.3 401.5,338.5" fill="#a9b0a2" stroke="#a9b0a2" stroke-width="0.5"/><polygon points="401.0,336.1 397.8,318.3 403.4,310.5 414.8,310.5 427.5,323.9 419.5,335.4" fill="#a5ac9e" stroke="#a5ac9e" stroke-width="0.5"/><polygon points="434.1,322.9 439.7,304.9 457.2,301.9 460.0,302.9 461.9,306.0 451.0,327.9 445.3,329.3" fill="#bcad86" stroke="#bcad86" stroke-width="0.5"/><polygon points="451.0,327.9 461.9,306.0 475.2,311.9 469.6,337.2" fill="#3d7ea6" stroke="#3d7ea6" stroke-width="0.5"/><polygon points="469.5,337.4 475.2,311.9 479.4,311.2 485.6,313.7 491.3,332.6 483.9,340.0" fill="#3d7ea6" stroke="#3d7ea6" stroke-width="0.5"/><polygon points="491.3,332.6 485.6,313.7 501.8,308.7 508.2,314.2 508.6,331.5" fill="#1f4e6b" stroke="#1f4e6b" stroke-width="0.5"/><polygon points="508.6,332.2 508.2,314.2 525.0,307.8 533.1,319.3 532.9,330.2" fill="#1f4e6b" stroke="#1f4e6b" stroke-width="0.5"/><polygon points="532.9,330.6 533.1,319.3 550.4,309.7 556.6,319.5 551.0,331.9" fill="#1f4e6b" stroke="#1f4e6b" stroke-width="0.5"/><polygon points="576.0,319.5 576.0,339.5 556.0,338.6 551.0,331.9 556.6,319.5" fill="#1f4e6b" stroke="#1f4e6b" stroke-width="0.5"/><polygon points="0.0,350.7 0.0,330.9 21.6,327.0 20.0,356.7" fill="#1f4e6b" stroke="#1f4e6b" stroke-width="0.5"/><polygon points="20.0,356.7 21.4,330.8 39.4,330.8 45.2,337.1 35.9,355.7" fill="#1f4e6b" stroke="#1f4e6b" stroke-width="0.5"/><polygon points="35.9,355.7 45.2,337.1 56.8,338.0 63.6,356.3 47.8,365.9" fill="#1f4e6b" stroke="#1f4e6b" stroke-width="0.5"/><polygon points="63.6,356.3 56.8,338.0 66.8,327.8 86.2,340.6 85.5,348.2 76.0,360.3" fill="#1f4e6b" stroke="#1f4e6b" stroke-width="0.5"/><polygon points="85.5,348.2 86.2,340.6 93.6,333.7 111.4,336.0 116.5,361.9" fill="#1f4e6b" stroke="#1f4e6b" stroke-width="0.5"/><polygon points="115.6,357.4 111.4,336.0 116.4,329.6 133.6,327.8 138.9,351.9 123.5,359.5" fill="#3d7ea6" stroke="#3d7ea6" stroke-width="0.5"/><polygon points="139.0,352.2 134.1,330.2 151.1,322.8 161.0,336.4" fill="#c5cebd" stroke="#c5cebd" stroke-width="0.5"/><polygon points="139.2,352.0 161.0,336.4 167.5,338.3 173.4,358.2 154.8,365.8" fill="#dde6d3" stroke="#dde6d3" stroke-width="0.5"/><polygon points="174.0,360.1 167.5,338.3 181.7,325.2 192.5,331.4 196.5,340.7 193.8,353.9" fill="#adb4a6" stroke="#adb4a6" stroke-width="0.5"/><polygon points="193.8,353.9 196.5,340.7 221.1,338.0 217.1,360.9 203.5,361.5" fill="#939a8d" stroke="#939a8d" stroke-width="0.5"/><polygon points="215.7,368.8 220.9,339.0 238.6,341.2 240.2,363.2" fill="#6098b8" stroke="#6098b8" stroke-width="0.5"/><polygon points="240.2,363.2 238.6,341.2 245.0,335.7 256.6,336.4 263.0,352.6 242.0,364.0" fill="#7e8479" stroke="#7e8479" stroke-width="0.5"/><polygon points="263.0,352.6 256.6,336.4 264.5,327.5 284.7,328.7 282.0,358.7 274.9,358.9" fill="#7c8177" stroke="#7c8177" stroke-width="0.5"/><polygon points="282.0,358.8 284.6,330.2 305.1,327.7 308.5,357.9" fill="#7c8177" stroke="#7c8177" stroke-width="0.5"/><polygon points="308.7,359.6 305.6,331.4 323.6,329.2 333.1,340.7 333.6,343.5 324.3,357.1" fill="#7c8177" stroke="#7c8177" stroke-width="0.5"/><polygon points="333.6,343.5 333.1,340.7 350.0,320.0 361.1,337.5 351.4,347.7" fill="#475131" stroke="#475131" stroke-width="0.5"/><polygon points="356.1,364.2 351.4,347.7 361.1,337.5 374.4,337.5 377.0,360.9 367.3,367.7" fill="#6098b8" stroke="#6098b8" stroke-width="0.5"/><polygon points="377.0,360.9 374.5,338.5 399.2,338.5 399.9,355.6 389.6,363.1" fill="#7da568" stroke="#7da568" stroke-width="0.5"/><polygon points="399.9,355.6 399.1,336.1 419.5,335.4 428.3,357.2 417.1,362.8" fill="#72965f" stroke="#72965f" stroke-width="0.5"/><polygon points="428.3,357.2 419.5,335.4 427.5,323.9 434.1,322.9 445.3,329.3 442.1,352.3 432.9,358.0" fill="#a89a78" stroke="#a89a78" stroke-width="0.5"/><polygon points="442.1,352.3 445.3,329.3 451.0,327.9 469.8,337.3 461.0,355.8" fill="#3d7ea6" stroke="#3d7ea6" stroke-width="0.5"/><polygon points="466.0,364.9 461.0,355.8 469.7,337.4 483.9,340.0 491.0,358.2 480.6,368.4" fill="#1f4e6b" stroke="#1f4e6b" stroke-width="0.5"/><polygon points="491.0,358.2 483.9,340.0 491.3,332.6 509.3,331.4 511.0,359.0" fill="#1f4e6b" stroke="#1f4e6b" stroke-width="0.5"/><polygon points="510.9,357.8 509.3,332.2 533.2,330.2 533.2,357.8" fill="#1f4e6b" stroke="#1f4e6b" stroke-width="0.5"/><polygon points="533.2,357.8 533.2,330.6 551.0,331.9 556.0,338.6 547.9,357.8" fill="#1f4e6b" stroke="#1f4e6b" stroke-width="0.5"/><polygon points="576.0,339.5 576.0,361.5 555.0,362.7 547.9,357.8 556.0,338.6" fill="#1f4e6b" stroke="#1f4e6b" stroke-width="0.5"/><polygon points="0.0,382.3 0.0,350.7 20.0,356.7 18.0,368.2" fill="#1f4e6b" stroke="#1f4e6b" stroke-width="0.5"/><polygon points="46.4,396.0 42.9,396.0 18.0,368.2 20.0,356.7 35.9,355.7 47.8,365.9" fill="#1f4e6b" stroke="#1f4e6b" stroke-width="0.5"/><polygon points="60.5,396.0 46.4,396.0 47.8,365.9 63.6,356.3 76.0,360.3 77.6,365.6" fill="#1f4e6b" stroke="#1f4e6b" stroke-width="0.5"/><polygon points="100.9,396.0 60.5,396.0 77.6,365.6 98.0,378.2" fill="#1f4e6b" stroke="#1f4e6b" stroke-width="0.5"/><polygon points="98.0,378.2 77.6,365.6 76.0,360.3 85.5,348.2 111.1,359.5" fill="#1f4e6b" stroke="#1f4e6b" stroke-width="0.5"/><polygon points="133.5,396.0 100.9,396.0 98.0,378.2 113.1,356.7 123.5,359.5" fill="#3d7ea6" stroke="#3d7ea6" stroke-width="0.5"/><polygon points="148.4,396.0 133.5,396.0 123.5,359.5 139.0,351.9 154.8,365.8" fill="#cad3c1" stroke="#cad3c1" stroke-width="0.5"/><polygon points="185.0,396.0 148.4,396.0 154.8,365.8 175.6,357.4" fill="#bcc4b4" stroke="#bcc4b4" stroke-width="0.5"/><polygon points="194.5,396.0 185.0,396.0 176.1,359.4 193.8,353.9 203.5,361.5" fill="#abb2a4" stroke="#abb2a4" stroke-width="0.5"/><polygon points="220.0,396.0 194.5,396.0 203.5,361.5 225.4,360.5" fill="#7c8177" stroke="#7c8177" stroke-width="0.5"/><polygon points="254.8,396.0 220.0,396.0 224.4,366.8 240.2,363.2 242.0,364.0 254.3,385.1" fill="#6098b8" stroke="#6098b8" stroke-width="0.5"/><polygon points="254.3,385.1 242.0,364.0 263.0,352.6 274.9,358.9" fill="#7c8177" stroke="#7c8177" stroke-width="0.5"/><polygon points="287.4,396.0 254.8,396.0 254.3,385.1 274.9,358.9 282.2,358.7" fill="#6098b8" stroke="#6098b8" stroke-width="0.5"/><polygon points="309.1,396.0 287.4,396.0 282.2,358.8 310.9,357.8" fill="#6098b8" stroke="#6098b8" stroke-width="0.5"/><polygon points="336.4,396.0 309.1,396.0 310.8,359.3 324.3,357.1 339.9,374.0" fill="#475131" stroke="#475131" stroke-width="0.5"/><polygon points="339.9,374.0 324.3,357.1 333.6,343.5 351.4,347.7 356.1,364.2" fill="#6098b8" stroke="#6098b8" stroke-width="0.5"/><polygon points="371.3,396.0 336.4,396.0 339.9,374.0 356.1,364.2 367.3,367.7" fill="#687848" stroke="#687848" stroke-width="0.5"/><polygon points="398.9,396.0 371.3,396.0 367.3,367.7 377.0,360.9 389.6,363.1" fill="#6c7d4b" stroke="#6c7d4b" stroke-width="0.5"/><polygon points="409.0,396.0 398.9,396.0 389.6,363.1 399.9,355.6 417.1,362.8" fill="#b7a882" stroke="#b7a882" stroke-width="0.5"/><polygon points="445.7,396.0 409.0,396.0 417.1,362.8 428.3,357.2 432.9,358.0 446.2,391.0" fill="#3d7ea6" stroke="#3d7ea6" stroke-width="0.5"/><polygon points="446.2,391.0 432.9,358.0 442.1,352.3 461.0,355.8 466.0,364.9" fill="#3d7ea6" stroke="#3d7ea6" stroke-width="0.5"/><polygon points="487.7,396.0 445.7,396.0 446.2,391.0 466.0,364.9 480.6,368.4" fill="#1f4e6b" stroke="#1f4e6b" stroke-width="0.5"/><polygon points="509.4,396.0 487.7,396.0 480.6,368.4 491.0,358.2 509.4,359.0" fill="#1f4e6b" stroke="#1f4e6b" stroke-width="0.5"/><polygon points="533.2,396.0 509.4,396.0 509.4,357.8 533.2,357.8" fill="#1f4e6b" stroke="#1f4e6b" stroke-width="0.5"/><polygon points="551.6,396.0 533.2,396.0 533.2,357.8 547.9,357.8 555.0,362.7" fill="#1f4e6b" stroke="#1f4e6b" stroke-width="0.5"/><polygon points="576.0,361.5 576.0,396.0 551.6,396.0 555.0,362.7" fill="#1f4e6b" stroke="#1f4e6b" stroke-width="0.5"/><polygon points="42.9,396.0 0.0,396.0 0.0,382.3 18.0,368.2" fill="#1f4e6b" stroke="#1f4e6b" stroke-width="0.5"/></g><path d="M175.9,19.0 L177.1,0.0 M438.8,0.0 L438.8,20.2 M113.3,36.7 L116.3,21.5 M116.3,21.5 L138.9,21.5 M138.9,21.1 L161.6,16.7 M161.7,22.8 L175.9,19.0 M438.8,20.2 L442.6,24.1 M442.6,24.1 L442.4,31.9 M85.2,60.8 L86.9,41.1 M86.9,41.1 L93.6,36.1 M93.6,36.1 L106.8,41.4 M106.8,41.4 L113.3,36.7 M442.4,31.9 L452.4,44.5 M452.4,44.5 L446.2,57.6 M69.2,83.4 L60.7,55.3 M60.7,55.3 L85.4,60.6 M446.2,57.6 L464.2,72.3 M464.2,72.3 L464.2,73.4 M66.6,92.1 L66.3,84.3 M72.7,102.6 L66.6,92.1 M464.2,73.4 L473.7,85.3 M473.7,85.3 L471.0,101.5 M63.7,116.4 L72.7,102.6 M69.6,128.9 L63.7,116.4 M471.0,101.5 L484.9,107.1 M484.9,107.1 L489.5,123.7 M65.2,139.1 L69.6,128.9 M87.0,150.0 L65.2,139.1 M489.5,123.7 L507.8,124.2 M507.8,124.2 L507.4,146.8 M87.0,159.8 L87.0,150.0 M507.4,146.8 L516.2,152.0 M516.2,152.0 L518.7,166.8 M518.7,166.8 L509.1,176.4 M69.2,183.4 L70.9,167.2 M70.9,167.2 L87.0,159.8 M94.0,183.1 L86.5,187.5 M86.5,187.5 L69.2,183.4 M108.1,191.0 L94.0,183.1 M509.1,176.4 L510.8,188.2 M110.0,201.7 L108.1,191.0 M510.8,188.2 L513.8,190.8 M513.8,190.8 L515.7,209.5 M515.7,209.5 L509.8,214.6 M90.0,227.9 L90.0,212.4 M90.0,212.4 L107.6,206.9 M107.6,206.9 L110.0,201.8 M509.8,214.6 L508.4,226.5 M87.1,247.3 L88.6,229.5 M88.6,229.5 L90.0,227.9 M98.2,254.6 L87.1,247.3 M510.4,226.2 L509.5,247.5 M509.5,247.5 L489.5,247.5 M93.9,271.3 L98.2,254.6 M488.2,249.0 L488.2,265.5 M84.8,290.3 L87.5,275.1 M87.5,275.1 L93.9,271.3 M102.4,296.5 L84.8,290.3 M492.4,265.5 L488.9,286.6 M104.6,309.9 L102.4,296.5 M110.0,312.6 L104.6,309.9 M486.8,286.5 L479.4,311.2 M479.4,311.2 L475.2,311.9 M475.2,311.9 L461.9,306.0 M116.4,329.6 L110.0,312.6 M130.5,328.1 L116.4,329.6 M461.9,306.0 L451.0,327.9 M451.0,327.9 L445.3,329.3 M139.0,352.2 L134.1,330.2 M428.3,357.2 L417.1,362.8 M445.3,329.3 L442.1,352.3 M442.1,352.3 L432.9,358.0 M432.9,358.0 L428.3,357.2 M133.5,396.0 L123.5,359.5 M123.5,359.5 L139.0,351.9 M417.1,362.8 L409.0,396.0" fill="none" stroke="#283640" stroke-width="2.0" stroke-linecap="round"/><g opacity="0.9"><path d="M387.0,348.4 L412.2,347.4" fill="none" stroke="#4a82af" stroke-width="3.9" stroke-linecap="round" stroke-linejoin="round"/><path d="M235.5,262.5 L232.7,281.6" fill="none" stroke="#4a82af" stroke-width="3.0" stroke-linecap="round" stroke-linejoin="round"/><path d="M252.0,247.5 L235.5,262.5" fill="none" stroke="#4a82af" stroke-width="2.9" stroke-linecap="round" stroke-linejoin="round"/><path d="M256.5,225.0 L252.0,247.5" fill="none" stroke="#4a82af" stroke-width="2.9" stroke-linecap="round" stroke-linejoin="round"/><path d="M286.9,226.1 L256.5,225.0" fill="none" stroke="#4a82af" stroke-width="2.8" stroke-linecap="round" stroke-linejoin="round"/><path d="M283.5,198.0 L286.9,226.1" fill="none" stroke="#4a82af" stroke-width="2.2" stroke-linecap="round" stroke-linejoin="round"/><path d="M196.2,30.6 L186.4,10.3" fill="none" stroke="#4a82af" stroke-width="2.1" stroke-linecap="round" stroke-linejoin="round"/><path d="M279.0,171.0 L283.5,198.0" fill="none" stroke="#4a82af" stroke-width="2.1" stroke-linecap="round" stroke-linejoin="round"/><path d="M304.2,167.4 L279.0,171.0" fill="none" stroke="#4a82af" stroke-width="1.7" stroke-linecap="round" stroke-linejoin="round"/><path d="M306.0,213.8 L286.9,226.1" fill="none" stroke="#4a82af" stroke-width="1.6" stroke-linecap="round" stroke-linejoin="round"/><path d="M457.5,286.5 L475.5,297.0" fill="none" stroke="#4a82af" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/><path d="M301.5,144.0 L304.2,167.4" fill="none" stroke="#4a82af" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/><path d="M216.0,38.6 L196.2,30.6" fill="none" stroke="#4a82af" stroke-width="1.4" stroke-linecap="round" stroke-linejoin="round"/><path d="M187.5,54.0 L196.2,30.6" fill="none" stroke="#4a82af" stroke-width="1.4" stroke-linecap="round" stroke-linejoin="round"/><path d="M319.5,202.5 L306.0,213.8" fill="none" stroke="#4a82af" stroke-width="1.4" stroke-linecap="round" stroke-linejoin="round"/><path d="M325.5,133.5 L301.5,144.0" fill="none" stroke="#4a82af" stroke-width="1.3" stroke-linecap="round" stroke-linejoin="round"/><path d="M435.0,282.0 L457.5,286.5" fill="none" stroke="#4a82af" stroke-width="1.3" stroke-linecap="round" stroke-linejoin="round"/></g></svg>