FalloutRisk/index.html

16596 lines
1.9 MiB

<!doctype html>
<html>
<head>
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no">
<meta charset="utf-8">
<link href="https://fonts.googleapis.com/css2?family=VT323&display=swap" rel="stylesheet">
<link rel="icon" type="image/x-icon" href="favicon.ico">
<title>Wasteland Conquest (Fallout Risk)</title>
<style>
@font-face {
font-family: 'Overseer';
src: url(data:font/ttf;base64,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) format('truetype');
font-weight: normal;
font-style: normal;
}
/* --- Dynamic Theme Variables --- */
:root {
--pip-color: #18ff62;
--pip-glow: 0 0 10px rgba(24, 255, 98, 0.4);
--pip-bg-tint: brightness(1.3) contrast(1.2) sepia(0.8) hue-rotate(70deg) saturate(250%);
--pip-dark: #020802;
--pip-panel: rgba(2, 8, 2, 0.95);
--pip-panel-solid: #051a05;
--vignette-shadow: rgba(2, 25, 2, 0.85);
--grit-opacity: 0.15;
--vip-color: #00ffff;
/* Default Cyan */
}
body.theme-fnv {
--pip-color: #ffb642;
--pip-glow: 0 0 10px rgba(255, 182, 66, 0.4);
--pip-bg-tint: brightness(1.3) contrast(1.2) sepia(0.8) hue-rotate(5deg) saturate(250%);
--pip-dark: #1a0f00;
--pip-panel: rgba(26, 15, 0, 0.95);
--pip-panel-solid: #261700;
--vignette-shadow: rgba(40, 20, 0, 0.85);
--grit-opacity: 0.22;
--vip-color: #ff7700;
/* FNV Orange/Red for VIP */
}
/* --- Fallout 4 Theme (Quantum Blue) --- */
body.theme-fo4 {
--pip-color: #22ccff;
--pip-glow: 0 0 10px rgba(34, 204, 255, 0.5);
--pip-bg-tint: brightness(1.2) contrast(1.1) sepia(0.4) hue-rotate(180deg) saturate(200%);
--pip-dark: #00111a;
--pip-panel: rgba(0, 17, 26, 0.95);
--pip-panel-solid: #001a26;
--vignette-shadow: rgba(0, 10, 20, 0.85);
--grit-opacity: 0.15;
--vip-color: #ffffff;
/* Institute White for VIP stars */
}
body {
background-color: #000;
color: var(--pip-color);
font-family: 'VT323', monospace;
font-size: 18px;
/* Increased from 14px to 18px */
margin: 0;
padding: 10px;
height: 100vh;
box-sizing: border-box;
display: flex;
flex-direction: column;
overflow: hidden;
text-transform: uppercase; /* <-- THIS IS THE NEW LINE */
}
body::after {
content: " ";
display: block;
position: absolute;
top: 0;
left: 0;
bottom: 0;
right: 0;
background: linear-gradient(rgba(18, 16, 16, 0) 50%, rgba(0, 0, 0, 0.25) 50%),
linear-gradient(90deg, rgba(255, 0, 0, 0.06), rgba(0, 255, 0, 0.02), rgba(0, 0, 255, 0.06));
z-index: 20000;
background-size: 100% 3px, 3px 100%;
pointer-events: none;
}
cursor: auto;
}
/* Protect UI icons from being hijacked by the game board's Map CSS */
.ui-svg-icon path, .ui-svg-icon polyline {
stroke: currentColor !important;
fill: none !important;
}
/* Brute-force the SVG lines to turn dark when the button is hovered */
button#btn-save-game:hover svg path,
button#btn-save-game:hover svg polyline,
button#btn-load-game:hover svg path,
button#btn-load-game:hover svg polyline {
stroke: #1a1a1a !important;
}
/* Standard pointer for interactive elements */
button,
select,
input,
.risk-card,
.btn-diplomacy,
#secret-dev-key {
cursor: pointer !important;
}
/* Territories will have their cursor set by JavaScript */
svg path,
svg .area {
/* No cursor property here - it will be added dynamically */
}
/* GOAL 1: Leaderboard Pulsing Animation */
@keyframes activeTurnPulse {
0% { box-shadow: 0 0 5px var(--pip-color), inset 0 0 2px var(--pip-color); border-color: var(--pip-color); transform: scale(1); }
100% { box-shadow: 0 0 25px var(--pip-color), inset 0 0 12px var(--pip-color); border-color: #ffffff; transform: scale(1.03); filter: brightness(1.2); }
}
/* Apply pulse to the highlighted card */
.highlight {
animation: activeTurnPulse 0.5s infinite alternate !important;
z-index: 10;
position: relative;
}
/* Kill the pulse instantly if Turbo is active */
.turbo-active .highlight {
animation: none !important;
box-shadow: 0 0 5px var(--pip-color) !important;
border-color: var(--pip-color) !important;
}
/* GOAL 2: Make the "_" and "█" Cursors Actually Blink */
@keyframes blinkCursorAnim {
0%, 49% { opacity: 1; }
50%, 100% { opacity: 0; }
}
.blinking-cursor, .terminal-cursor {
animation: blinkCursorAnim 1s infinite !important;
font-weight: bold;
}
/* GOAL 3: Force ALL Commander Text to Match the UI Theme */
#cmdr-ui-container,
#cmdr-ui-container span,
#cmdr-ui-container div,
#cmdr-hp-text,
#cmdr-ap-text {
color: var(--pip-color) !important;
border-color: var(--pip-color) !important;
text-shadow: 0 0 5px var(--pip-color) !important;
}
/* Keep the HP/AP fill bars solid (don't make them transparent text) */
#cmdr-hp-fill, #cmdr-ap-fill {
text-shadow: none !important;
color: #1a1a1a !important; /* Dark text inside the bar so it's readable */
}
/* --- High-Visibility Button Flash --- */
@keyframes quickFlash {
0% { background-color: transparent; }
50% { background-color: var(--pip-color); color: #000; }
100% { background-color: transparent; }
}
.btn-flash {
animation: quickFlash 0.3s ease-in-out 2;
}
/* --- Modals --- */
.overlay {
position: fixed;
top: 0;
left: 0;
width: 100vw;
height: 100vh;
/* Darkened the center so background is less distracting */
background: radial-gradient(circle at center, rgba(0, 0, 0, 0.8) 20%, var(--vignette-shadow) 100%);
backdrop-filter: blur(4px); /* Increased blur slightly for better focus */
z-index: 9000;
}
.start-modal,
.cards-modal,
.win-content,
#confirm-restart-modal .content {
position: absolute !important;
top: 50% !important;
left: 50% !important;
transform: translate(-50%, -50%) !important;
background: var(--pip-panel-solid) !important;
color: var(--pip-color) !important;
padding: 25px 35px !important;
border-radius: 4px !important;
box-shadow: var(--pip-glow) !important;
text-align: center;
border: 2px solid var(--pip-color) !important;
width: 650px;
max-width: 90vw;
}
.help-modal-content {
width: 850px !important;
max-width: 95vw !important;
text-align: left !important;
}
.manual-footer {
font-size: 14px;
margin-top: 30px;
opacity: 0.7;
font-family: 'VT323', monospace;
text-transform: uppercase;
text-align: center;
line-height: 1.2;
}
.form-group {
margin-bottom: 15px;
text-align: left;
}
.form-group label {
display: block;
font-size: 16px;
margin-bottom: 5px;
}
input[type="text"],
select {
width: 100%;
padding: 8px 10px;
font-family: 'VT323', monospace;
font-size: 18px;
background-color: var(--pip-dark);
color: var(--pip-color);
border: 1px solid var(--pip-color);
box-sizing: border-box;
text-transform: uppercase;
}
input:focus,
select:focus {
outline: none;
box-shadow: var(--pip-glow);
}
button {
width: 100%;
padding: 12px;
margin-top: 15px;
font-size: 20px;
font-family: 'VT323', monospace;
background-color: var(--pip-dark);
color: var(--pip-color);
border: 2px solid var(--pip-color);
box-shadow: inset 0 0 5px var(--pip-color), 0 0 5px var(--pip-color);
cursor: pointer;
text-transform: uppercase;
transition: all 0.2s ease;
}
button:hover {
background-color: var(--pip-color);
color: var(--pip-dark);
box-shadow: inset 0 0 10px var(--pip-dark), 0 0 15px var(--pip-color);
}
#restart:hover {
background-color: #b74545;
/* Rusted Red */
color: #ffffff;
border-color: #ff8080;
box-shadow: inset 0 0 10px #000, 0 0 20px #ff0000;
}
/* --- NEW: FIX FOR INLINE-COLORED MODAL BUTTON HOVERS --- */
#envoy-accept:hover, #betrayal-cancel:hover {
background-color: #18ff62 !important;
color: #000 !important;
box-shadow: inset 0 0 10px #000, 0 0 15px #18ff62 !important;
}
#envoy-reject:hover, #tactical-ambush-btn:hover, #maneuver-cancel:hover, #dip-cancel:hover {
background-color: #ffcc00 !important;
color: #000 !important;
box-shadow: inset 0 0 10px #000, 0 0 15px #ffcc00 !important;
}
#betrayal-confirm:hover, #confirm-nuke-btn:hover {
background-color: #ff3333 !important;
color: #fff !important;
box-shadow: inset 0 0 10px #000, 0 0 15px #ff3333 !important;
}
#tactical-cancel-btn:hover {
background-color: #555 !important;
color: #fff !important;
box-shadow: inset 0 0 10px #000, 0 0 15px #555 !important;
}
/* -------------------------------------------------------- */
button:disabled {
opacity: 0.5;
cursor: not-allowed !important;
}
@keyframes stashPulse {
0% {
box-shadow: inset 0 0 5px var(--pip-color), 0 0 5px var(--pip-color);
border-color: var(--pip-color);
filter: brightness(1);
}
100% {
box-shadow: inset 0 0 15px var(--pip-color), 0 0 25px var(--pip-color);
border-color: #ffffff;
filter: brightness(1.3);
}
}
.ready-to-trade {
animation: stashPulse 1s infinite alternate !important;
font-weight: bold;
}
.nuke-ready {
background: #ff0000 !important;
color: #fff !important;
border-color: #ff0000 !important;
animation: stashPulse 0.5s infinite alternate !important;
text-shadow: 0 0 5px #fff;
}
/* --- ADD THIS NEW CSS --- */
@keyframes nukeTargetPulse {
0%, 100% { opacity: 1; }
50% { opacity: 0.2; }
}
.nuke-target-anim {
animation: nukeTargetPulse 0.5s infinite;
}
/* ------------------------ */
/* Syncs all range sliders to the active Pip-Boy theme */
input[type=range] {
accent-color: var(--pip-color);
background: transparent;
}
input[type=range]::-webkit-slider-runnable-track {
background: rgba(0, 255, 0, 0.1);
border: 1px solid var(--pip-color);
border-radius: 2px;
}
input[type=range]::-webkit-slider-thumb {
background: var(--pip-color);
}
/* --- Side Panels --- */
.player-panel {
background: var(--pip-panel);
padding: 15px;
border-right: 3px solid var(--pip-color);
box-shadow: 2px 0 15px rgba(0, 0, 0, 0.5);
display: flex;
flex-direction: column;
justify-content: space-between;
height: 100vh;
width: 260px;
box-sizing: border-box;
position: absolute;
left: 0;
top: 0;
z-index: 100;
overflow-y: auto;
}
.player-panel>div {
border-bottom: 1px solid var(--pip-color);
padding-bottom: 12px;
margin-bottom: 12px;
}
.player-panel>div:last-child {
border-bottom: none;
margin-bottom: 0;
padding-bottom: 0;
}
.player-panel h1 {
font-family: 'Overseer', 'VT323', monospace;
font-weight: normal;
margin-top: 0;
margin-bottom: 10px;
font-size: 38px;
text-shadow: var(--pip-glow);
text-align: center;
display: flex;
align-items: baseline;
justify-content: center;
}
.start-modal h1,
.start-modal h2 {
font-family: 'Overseer', 'VT323', monospace;
font-size: 50px; /* <-- Change this number to make it bigger or smaller! */
font-weight: normal;
text-transform: uppercase;
text-shadow: var(--pip-glow);
margin-bottom: 20px; /* Adds a little breathing room below the big text */
}
.start-modal h3,
.start-modal h4,
.start-modal h5,
.start-modal h6,
.start-modal p {
font-size: 20px !important; /* The !important forces it to ignore other rules */
font-family: 'VT323', monospace;
font-weight: normal;
margin-top: -10px;
margin-bottom: 20px;
color: var(--pip-color);
}
.title-version {
font-size: 15px;
margin-left: 5px;
opacity: 0.7;
}
.player-name {
font-size: 22px;
text-align: center;
}
.player-country {
font-size: 15px;
text-align: center;
opacity: 0.8;
margin-bottom: 10px;
}
.metric-box {
background: var(--pip-panel-solid);
border: 1px solid var(--pip-color);
padding: 8px;
margin-bottom: 10px;
text-align: center;
box-shadow: var(--pip-glow);
}
.reserve-title {
font-size: 16px;
margin: 0 0 5px 0;
}
.reserve {
font-size: 32px !important;
font-weight: bold;
line-height: 1;
text-shadow: var(--pip-glow);
}
.turn-info-message {
white-space: normal !important;
word-wrap: break-word;
display: block;
width: 90%;
/* Changed from max-width to a hard width */
margin: 5px auto;
height: 85px !important;
/* Increased height slightly to accommodate the larger font */
min-height: 85px !important;
/* Forces the box to NEVER shrink */
max-height: 85px !important;
/* Forces the box to NEVER grow */
overflow: hidden !important;
font-size: 18px !important;
/* Forces the font to ALWAYS be exactly this size */
line-height: 1.2 !important;
/* Keeps the lines tightly spaced */
}
/* The new cursor animation */
.terminal-cursor {
display: inline-block;
animation: hard-blink 1s step-end infinite;
color: var(--pip-color);
}
@keyframes hard-blink {
0%,
100% {
opacity: 1.0;
text-shadow: 0 0 5px var(--pip-color);
}
50% {
opacity: 0;
text-shadow: none;
}
}
.cards-panel div {
font-size: 16px;
margin-bottom: 8px;
}
.cards-panel span#card-count {
font-size: 24px;
margin-left: 8px;
}
.turbo-container {
border: 1px solid var(--pip-color);
padding: 5px;
margin-top: 10px;
text-align: center;
display: flex;
align-items: center;
justify-content: center;
background: var(--pip-dark);
box-shadow: inset 0 0 5px rgba(24, 255, 98, 0.2);
}
.turbo-container input {
width: 18px;
height: 18px;
margin-right: 8px;
cursor: pointer;
accent-color: var(--pip-color);
}
.turbo-container label {
font-size: 16px;
cursor: pointer;
}
/* --- REPLACEMENT LEADERBOARD CSS --- */
/* Main container for all player info boxes */
.info {
background: var(--pip-panel);
padding: 8px;
border-left: 3px solid var(--pip-color);
box-shadow: -2px 0 15px rgba(0, 0, 0, 0.5);
width: 260px;
box-sizing: border-box;
display: flex;
flex-direction: column;
gap: 4px;
/* Reduced gap to save vertical space */
height: 100vh;
position: absolute;
right: 0;
top: 0;
z-index: 100;
overflow-y: auto;
}
/* Style for each individual player's box */
.info-box {
background: var(--pip-panel-solid);
border: 1px solid var(--pip-color);
padding: 6px 8px;
text-align: center;
/* Changed to center alignment */
box-shadow: var(--pip-glow);
position: relative;
color: var(--pip-color);
display: flex;
flex-direction: column;
gap: 2px;
/* Tighter space between lines */
}
/* Style all text lines for uniform appearance */
.leader,
.faction,
.reputation,
.stats {
font-size: 16px;
font-weight: normal;
color: var(--pip-color);
text-shadow: var(--pip-glow);
line-height: 1.2;
}
/* Make ONLY the player's name bold */
.leader {
font-weight: bold !important;
font-size: 18px !important;
}
/* The stats line (Supply | Caps | Codes) */
.stats {
margin-top: 8px;
/* Double space down from reputation */
}
/* The progress bar (no change from original) */
.bar {
display: none !important;
}
/* Diplomacy Button */
.btn-diplomacy {
background: var(--pip-dark);
color: var(--pip-color);
border: 1px solid var(--pip-color);
cursor: pointer;
padding: 6px;
font-size: 14px;
font-family: 'VT323';
margin-top: 12px;
/* Double space down from stats */
text-transform: uppercase;
width: 100%;
box-sizing: border-box;
transition: 0.2s;
}
.btn-diplomacy:hover {
background: var(--pip-color);
color: var(--pip-dark);
}
.btn-diplomacy:disabled {
opacity: 0.8;
pointer-events: none;
border-color: transparent;
}
/* --- END OF REPLACEMENT CSS --- */
.toast {
visibility: hidden;
min-width: 250px;
background-color: var(--pip-panel-solid);
color: var(--pip-color);
text-align: center;
border: 1px solid var(--pip-color);
padding: 16px;
position: fixed;
z-index: 30000;
left: 50%;
bottom: 30px;
transform: translateX(-50%);
font-size: 20px;
box-shadow: var(--pip-glow);
opacity: 0;
transition: visibility 0.4s, opacity 0.4s linear;
}
.toast.show {
visibility: visible;
opacity: 1;
}
#vats-tooltip {
position: fixed;
background: var(--pip-panel-solid);
border: 2px solid var(--pip-color);
color: var(--pip-color);
padding: 10px;
font-family: 'VT323', monospace;
text-transform: uppercase;
box-shadow: var(--pip-glow);
pointer-events: none;
z-index: 10000;
display: none;
font-size: 18px;
line-height: 1.2;
}
/* --- Map Settings --- */
.map {
position: absolute;
left: 260px;
right: 260px;
top: 0;
bottom: 150px;
display: flex;
justify-content: center;
align-items: center;
overflow: hidden;
background: linear-gradient(rgba(0,0,0,0.3), rgba(0,0,0,0.3)), var(--pip-panel-solid);
}
.map::before {
content: "";
position: absolute;
top: 0;
left: 0;
right: 0;
bottom: 0;
z-index: 10;
pointer-events: none;
background-image: radial-gradient(circle at center, transparent 40%, var(--vignette-shadow) 120%), url('data:image/svg+xml;utf8,%3Csvg viewBox="0 0 200 200" xmlns="http://www.w3.org/2000/svg"%3E%3Cfilter id="noiseFilter"%3E%3CfeTurbulence type="fractalNoise" baseFrequency="0.8" numOctaves="3" stitchTiles="stitch"/%3E%3C/filter%3E%3Crect width="100%25" height="100%25" filter="url(%23noiseFilter)" opacity="1"/%3E%3C/svg%3E');
opacity: var(--grit-opacity);
mix-blend-mode: hard-light;
}
svg path,
svg .area {
cursor: pointer;
}
svg path {
stroke: var(--pip-color) !important;
stroke-width: 1px !important;
transition: stroke 0.3s;
}
svg path:hover {
filter: brightness(1.3);
}
.allied-territory {
stroke: #0088ff !important;
stroke-width: 2px !important;
stroke-dasharray: 4 4 !important;
filter: drop-shadow(0 0 5px #0088ff);
}
svg text {
fill: var(--pip-color) !important;
stroke: #000000 !important;
stroke-width: 2px !important;
paint-order: stroke fill !important;
font-size: 20px !important;
/* Reduced to 16px to fit nicely inside territories */
text-shadow: 0 0 10px rgba(0, 0, 0, 1) !important;
pointer-events: none !important;
}
svg path.connection,
svg line,
svg polyline {
stroke: var(--pip-color) !important;
stroke-width: 3px !important;
stroke-dasharray: 6 6 !important;
opacity: 0.6 !important;
}
.vats-flash {
fill: var(--pip-color) !important;
filter: drop-shadow(0 0 20px var(--pip-color));
transition: all 0.05s;
}
.radstorm-flash {
fill: #ffcc00 !important;
filter: drop-shadow(0 0 20px #ffcc00);
transition: all 0.05s;
}
.flash {
stroke: #ffffff !important;
stroke-width: 4px !important;
animation: targetPulse 1.2s infinite alternate !important;
paint-order: stroke fill !important;
}
/* Scorched Earth Map FX */
.crater {
fill: #111 !important;
stroke: #ff0000 !important;
stroke-width: 3px !important;
filter: drop-shadow(0 0 10px #ff0000);
pointer-events: none;
}
@keyframes glowSeaPulse {
0% {
stroke: #ff5500;
filter: drop-shadow(0 0 5px #ff5500);
}
100% {
stroke: #ff0000;
filter: drop-shadow(0 0 15px #ff0000);
}
}
.glowing-sea {
animation: glowSeaPulse 1.5s infinite alternate !important;
stroke-width: 2px !important;
}
@keyframes targetPulse {
0% {
filter: brightness(1.2) drop-shadow(0 0 5px var(--pip-color));
}
100% {
filter: brightness(2.0) drop-shadow(0 0 20px var(--pip-color));
}
}
.combat-log-container {
position: absolute;
left: 260px;
right: 260px;
bottom: 0;
height: 150px;
background: var(--pip-panel) !important;
border-top: 3px solid var(--pip-color);
box-sizing: border-box;
display: flex;
flex-direction: column;
z-index: 50;
box-shadow: 0 -5px 15px rgba(0, 0, 0, 0.5);
}
.combat-log-header {
background: var(--pip-color);
color: var(--pip-dark);
padding: 5px 15px;
font-weight: bold;
font-size: 18px;
text-transform: uppercase;
}
.combat-log-messages {
flex-grow: 1;
overflow-y: auto;
padding: 10px 15px;
font-size: 16px;
display: flex;
flex-direction: column;
gap: 4px;
}
.log-entry {
opacity: 0.9;
font-size: 18px;
/* Force the log text to be larger and more readable */
margin-bottom: 2px;
/* Adds a tiny bit of breathing room between lines */
}
/* Force ALL log entries to be the same larger size */
.log-entry {
opacity: 0.9; /* Restored to original for slight 'log' feel */
font-size: 18px !important; /* Match the directive's explicit size */
margin-bottom: 2px;
text-shadow: none !important; /* This removes the glow */
font-weight: normal !important; /* This removes the unwanted boldness */
}
/* Important messages just get bold and glow, no size difference */
.log-entry.important {
font-weight: bold;
text-shadow: var(--pip-glow);
}
.log-entry.nuke {
color: #ff3333;
text-shadow: 0 0 5px #ff0000;
font-weight: bold;
}
.log-entry.nuke {
color: #ff3333;
text-shadow: 0 0 5px #ff0000;
font-weight: bold;
}
.risk-card {
border: 1px solid var(--pip-color);
padding: 10px;
margin-bottom: 8px;
cursor: pointer;
background: var(--pip-dark);
color: var(--pip-color);
text-transform: uppercase;
transition: all 0.1s ease;
}
.risk-card:hover {
box-shadow: var(--pip-glow);
filter: brightness(1.3);
}
.risk-card.selected {
background: var(--pip-color);
color: var(--pip-dark);
box-shadow: var(--pip-glow);
font-weight: bold;
}
.map-brackets {
position: absolute;
left: 260px;
right: 260px;
top: 0;
bottom: 150px;
pointer-events: none;
z-index: 40;
border-radius: 16px;
box-shadow: inset 0 0 100px 40px rgba(0, 0, 0, 0.95);
}
.map-brackets::before,
.map-brackets::after {
display: none;
}
.hp-bar {
width: 100%;
height: 15px;
border: 1px solid var(--pip-color);
margin-top: 5px;
position: relative;
}
.hp-fill {
background: var(--pip-color);
width: 85%;
height: 100%;
box-shadow: var(--pip-glow);
}
.pip-nav {
display: flex;
justify-content: space-between;
font-size: 18px;
border-top: 2px solid var(--pip-color);
padding-top: 10px;
margin-top: 10px;
}
.pip-nav span {
opacity: 0.5;
cursor: not-allowed;
pointer-events: none;
transition: opacity 0.2s ease;
}
/* This only handles making the text clickable, NOT bright */
.pip-nav span.interactive {
cursor: pointer;
pointer-events: auto;
}
/* Optional: Gives a slight glow when hovering over a clickable tab so players know it works */
.pip-nav span.interactive:hover {
opacity: 0.8;
}
/* This handles making the active screen bright */
.pip-nav span.active {
opacity: 1;
font-weight: bold;
text-shadow: var(--pip-glow);
}
.info>div.defeated {
filter: grayscale(100%);
border: 1px dashed var(--pip-color) !important;
transition: all 0.5s ease;
}
.info>div.defeated .country,
.info>div.defeated .leader {
opacity: 0.4;
}
.info>div.defeated .income {
color: var(--pip-color);
opacity: 1;
font-weight: bold;
text-shadow: none;
font-size: 16px;
}
.info>div.defeated .bar,
.info>div.defeated .btn-diplomacy {
display: none;
}
.download-link {
text-decoration: none;
transition: text-decoration 0.2s ease;
}
.download-link:hover {
text-decoration: underline;
filter: brightness(1.2);
}
.radio-on,
.map-active {
color: var(--pip-color) !important;
font-weight: bold !important;
text-shadow: none !important;
opacity: 1 !important;
}
/* Custom Scrollbar for Patch Notes */
.ticker-window {
height: 250px;
overflow-y: auto;
position: relative;
background: rgba(0, 0, 0, 0.5);
border: 1px inset var(--pip-color);
margin-top: 15px;
padding: 10px;
text-align: left;
box-shadow: inset 0 0 15px rgba(0, 0, 0, 0.8);
}
.ticker-window::-webkit-scrollbar {
width: 8px;
}
.ticker-window::-webkit-scrollbar-track {
background: var(--pip-dark);
border-left: 1px solid var(--pip-color);
}
.ticker-window::-webkit-scrollbar-thumb {
background: var(--pip-color);
}
.ticker-text {
width: 95%;
position: relative;
}
.patch-version {
font-weight: bold;
text-shadow: 0 0 5px var(--pip-color);
margin-top: 20px;
border-bottom: 1px dashed var(--pip-color);
display: inline-block;
}
.patch-note {
margin-bottom: 8px;
font-size: 15px;
padding-left: 10px;
border-left: 2px solid var(--pip-color);
}
.cmdr-stats {
font-size: 14px;
margin-top: 5px;
color: var(--vip-color);
text-shadow: 0 0 5px var(--vip-color);
display: flex;
justify-content: space-between;
}
.btn-stimpak {
background: none;
border: 1px solid var(--vip-color);
color: var(--vip-color);
cursor: pointer;
font-family: 'VT323';
font-size: 12px;
padding: 2px 5px;
}
.btn-stimpak:hover {
background: var(--vip-color);
color: var(--pip-dark);
}
.btn-stimpak:disabled {
opacity: 0.3;
pointer-events: none;
border-color: transparent;
}
/* --- MOBILE MODAL FIXES (BOOT, REBOOT, HELP, PATCH NOTES) --- */
@media screen and (max-width: 950px) {
/* ISOLATED MOBILE HEIGHT FIX */
body, .overlay {
height: 100dvh !important;
}
.start-modal,
#confirm-restart-modal .content,
.cards-modal,
.win-content,
.help-modal-content,
#updates-modal .content {
max-height: 90dvh !important;
/* Shrunk from 95 to 90 for more bottom clearance */
height: auto;
overflow-y: auto !important;
width: 95vw !important;
padding: 10px 15px !important;
box-sizing: border-box !important;
}
.start-modal h1.title {
font-size: 22px;
margin-top: 0;
margin-bottom: 5px;
}
.form-group {
margin-bottom: 6px !important;
}
.form-group label {
font-size: 13px;
margin-bottom: 2px;
}
input[type="text"],
select {
padding: 4px 8px;
font-size: 14px;
}
/* Aggressively shrink the grid & buttons */
.form-group[style*="grid-template-columns"] {
gap: 6px 5px !important;
margin-bottom: 10px !important;
}
.form-group[style*="grid-template-columns"] span {
font-size: 11px !important;
}
#submit-name {
padding: 6px;
font-size: 16px;
margin-top: 5px !important;
margin-bottom: 0 !important;
}
/* Specific Help Modal Mobile Tweaks */
.help-modal-content p,
.help-modal-content div {
font-size: 11px !important;
margin-bottom: 6px !important;
line-height: 1.1 !important;
}
.help-modal-content h2 {
font-size: 16px !important;
margin-bottom: 5px !important;
}
}
/* --- ROTATION WARNING --- */
#portrait-warning {
display: none;
position: fixed;
top: 0;
left: 0;
width: 100vw;
height: 100dvh;
background: var(--pip-dark);
color: var(--pip-color);
z-index: 100000;
align-items: center;
justify-content: center;
text-align: center;
font-size: 20px;
border: 8px solid var(--pip-color);
box-sizing: border-box;
flex-direction: column;
text-shadow: var(--pip-glow);
padding: 20px;
}
@media screen and (max-width: 950px) and (orientation: portrait) {
#portrait-warning {
display: flex;
}
.container {
display: none;
}
}
/* --- MOBILE LANDSCAPE OVERRIDES --- */
@media screen and (max-width: 950px) and (orientation: landscape) {
/* Fix the mobile address bar bug and fix flex-scrolling */
.player-panel,
.info {
height: 100dvh;
justify-content: flex-start;
}
.player-panel {
width: 140px;
padding: 5px;
}
.info {
width: 140px;
padding: 5px;
gap: 2px;
}
.map {
left: 140px;
right: 140px;
bottom: 0;
}
/* --- NEW: Hide brackets completely on mobile --- */
.map-brackets {
display: none !important;
}
/* Force bottom buttons to stay scrollable but anchored to bottom */
.player-panel>div:last-child {
margin-top: auto;
padding-bottom: 5px;
}
.info>button#help-btn {
margin-top: auto;
}
/* Ultra-Tight UI for Left Panel */
.player-panel h1 {
font-size: 16px;
margin-bottom: 5px;
}
.title-version {
display: none;
}
.player-name {
font-size: 14px;
}
.player-country {
font-size: 10px;
margin-bottom: 5px;
}
.reserve {
font-size: 20px;
}
button {
font-size: 10px;
padding: 4px;
margin-top: 4px;
}
/* HIDE DIRECTIVES COMPLETELY ON MOBILE */
.turn-info,
.turn-info-message {
display: none !important;
}
/* PULL REINFORCEMENTS UP TO FILL THE GAP */
.metric-box[style*="margin-top: 20px;"] {
margin-top: 0 !important;
}
/* HIDE NON-ESSENTIALS TO SAVE VERTICAL SPACE */
.player-panel>div:first-child>div:nth-of-type(3) {
display: none !important;
}
#vats-tooltip {
display: none !important;
}
.metric-box {
padding: 2px;
margin-bottom: 4px;
}
.cards-panel span#card-count {
font-size: 14px;
}
.pip-nav {
font-size: 10px;
margin-top: 5px;
padding-top: 5px;
}
/* HIDE TURBO CONTAINER COMPLETELY ON MOBILE */
.turbo-container {
display: none !important;
}
.pip-nav span {
cursor: pointer;
}
/* Make all tabs clickable */
/* New Rules for Inventory */
.special-item {
border: 1px solid var(--pip-color);
background: rgba(0, 0, 0, 0.2);
padding: 5px 8px;
opacity: 0.4;
}
.special-item.found {
opacity: 1;
background: var(--pip-panel-solid);
box-shadow: var(--pip-glow);
}
.special-title {
font-weight: bold;
font-size: 16px;
}
.special-desc {
font-size: 12px;
opacity: 0.8;
}
.bobble-activate-btn {
width: auto !important;
font-size: 12px !important;
padding: 2px 6px !important;
margin-top: 5px !important;
}
.cooldown-timer {
font-size: 12px;
color: #ffcc00;
margin-top: 5px;
font-weight: bold;
}
@keyframes pulse {
0% {
text-shadow: 0 0 5px var(--pip-color);
}
50% {
text-shadow: 0 0 20px #fff, 0 0 25px #fff;
}
100% {
text-shadow: 0 0 5px var(--pip-color);
}
}
.inv-pulse {
animation: pulse 1.5s infinite;
color: #fff !important;
}
/* Tighten Nuke/Commander Elements */
#cmdr-ui-container {
margin-top: 4px !important;
padding: 2px !important;
}
.cmdr-stats {
font-size: 9px;
margin-top: 2px;
}
#btn-use-stimpak {
font-size: 9px;
padding: 2px;
}
#nuke-ui-container {
margin-top: 4px !important;
}
#btn-launch-nuke {
padding: 2px !important;
font-size: 10px !important;
margin-top: 2px !important;
}
/* ADJUSTED LEADERBOARD FOR SMALLER SCREENS */
.info>div:not(.restart) {
padding: 4px;
}
.info .leader {
font-size: 16px;
margin-bottom: 2px;
}
/* Increased from 12px to 16px */
.info .country {
font-size: 12px;
margin-bottom: 2px;
}
/* Increased from 9px to 12px */
.info .income {
font-size: 16px;
font-weight: bold;
}
/* Increased from 12px to 16px */
.info>div>div:nth-child(3) {
font-size: 12px;
}
/* "Reinforcements:" text */
.caps-display {
font-size: 12px !important;
margin-top: 2px !important;
}
/* "Bottle Caps:" text */
.caps-display span {
font-size: 16px !important;
font-weight: bold;
}
/* The actual number of caps */
.btn-diplomacy {
font-size: 11px;
padding: 2px;
margin-top: 4px;
}
.bar {
margin-top: 4px;
height: 3px;
}
/* The Ghost Log */
.combat-log-container {
left: 145px;
right: 145px;
bottom: 5px;
height: auto;
max-height: 80px;
background: transparent;
border: none;
box-shadow: none;
pointer-events: none;
transition: opacity 0.5s ease;
opacity: 0;
z-index: 9000;
}
.combat-log-container.active-log {
opacity: 1;
}
.combat-log-header {
display: none;
}
.combat-log-messages {
padding: 0;
overflow: hidden;
justify-content: flex-end;
}
.log-entry {
text-shadow: 0 0 4px #000, 0 0 8px #000, 0 0 12px #000, 0 0 16px var(--pip-dark);
font-weight: bold;
font-size: 16px;
/* Increased from 11px to 16px */
}
}
/* Admin/Dev Menu Unified Buttons */
#dev-modal button:hover {
background-color: var(--pip-color);
color: var(--pip-dark, #1a1a1a);
}
/* Specific override for the perk button to respect its unique color */
/* Make the dev perk button match the standard theme */
#dev-modal #dev-perk {
color: var(--pip-color) !important;
border-color: var(--pip-color) !important;
}
.pip-nav span {
cursor: pointer;
}
.special-item {
border: 1px solid var(--pip-color);
background: rgba(0, 0, 0, 0.2);
padding: 5px 8px;
opacity: 0.4;
}
.special-item.found {
opacity: 1;
background: var(--pip-panel-solid);
box-shadow: var(--pip-glow);
}
.special-title {
font-weight: bold;
font-size: 16px;
}
.special-desc {
font-size: 12px;
opacity: 0.8;
}
.bobble-activate-btn {
width: auto !important;
font-size: 12px !important;
padding: 2px 6px !important;
margin-top: 5px !important;
}
.cooldown-timer {
font-size: 12px;
color: #ffcc00;
margin-top: 5px;
font-weight: bold;
}
@keyframes pulse {
0% {
text-shadow: 0 0 5px var(--pip-color);
}
50% {
text-shadow: 0 0 20px #fff, 0 0 25px #fff;
}
100% {
text-shadow: 0 0 5px var(--pip-color);
}
}
.inv-pulse {
animation: pulse 1.5s infinite;
color: #fff !important;
text-shadow: 0 0 8px #fff;
}
/* --- Developer Menu & General Button Fixes --- */
button:active {
transform: translateY(2px);
box-shadow: inset 0 0 15px rgba(0, 0, 0, 0.7);
}
#dev-modal button {
color: var(--pip-color) !important;
}
#dev-modal button:hover {
background: rgba(255, 255, 255, 0.15);
color: #ffffff !important;
text-shadow: 0 0 5px #000000;
box-shadow: 0 0 15px var(--pip-color);
}
#dev-modal button:active {
transform: translateY(2px);
background: rgba(0, 0, 0, 0.5);
box-shadow: inset 0 0 15px rgba(0, 0, 0, 0.7);
}
#dev-modal #dev-perk {
color: var(--vip-color) !important;
}
/* Dynamic Bobblehead Grid Buttons */
.bobblehead-btn {
display: flex;
flex-direction: column;
align-items: center;
justify-content: center;
/* Centers content vertically */
text-align: center;
padding: 8px;
background: rgba(0, 0, 0, 0.4);
border: 1px solid var(--pip-color);
color: var(--pip-color);
font-family: 'VT323', monospace;
cursor: pointer;
transition: all 0.2s ease;
width: 100%;
min-height: 85px;
/* Shorter height for business card look */
}
.bobblehead-btn:hover:not(:disabled) {
background: var(--pip-color);
color: #fff !important;
text-shadow: 0 0 5px #000;
box-shadow: 0 0 10px var(--pip-color);
}
.bobblehead-btn:disabled {
opacity: 0.3;
cursor: not-allowed;
background: transparent;
border: 1px dashed var(--pip-color);
}
.bobblehead-btn.cooldown {
opacity: 0.7;
border: 1px solid #ffcc00;
background: rgba(255, 204, 0, 0.1);
}
/* Corrected INV Pulse Animation */
@keyframes invPulseFade {
0% {
opacity: 0.4;
}
50% {
opacity: 1;
}
100% {
opacity: 0.4;
}
}
.inv-pulse {
animation: invPulseFade 1.5s infinite;
color: var(--pip-color) !important;
text-shadow: none !important;
/* Ensure no glow */
font-weight: bold !important;
/* ADDED: Makes it match the brightness of MAP */
}
/* --- Aggressive Terminal Alerts (Diegetic Notifications) --- */
#toast-container {
position: fixed;
top: 20%;
/* Upper middle of the screen */
left: 50%;
transform: translateX(-50%);
display: flex;
flex-direction: column;
gap: 20px;
/* More breathing room between alerts */
z-index: 10005;
pointer-events: none;
width: 60%;
max-width: 600px;
}
.dynamic-toast {
position: relative;
background: var(--pip-color);
/* Solid theme color background */
color: #000 !important;
/* Harsh black text cutting through the glow */
text-align: center;
border: 3px solid #fff;
/* Sharp white border to make it pop */
padding: 15px 20px;
font-size: 28px;
font-weight: 900;
font-family: 'VT323', monospace;
box-shadow: 0 0 30px var(--pip-color), inset 0 0 10px #000;
/* Massive outer glow */
text-shadow: none !important;
/* No text glow, we want it to look stamped out */
text-transform: uppercase;
letter-spacing: 2px;
opacity: 0;
transform: scale(0.9) translateY(-20px);
/* Starts small and high */
transition: opacity 0.2s cubic-bezier(0.4, 0, 0.2, 1), transform 0.3s cubic-bezier(0.175, 0.885, 0.32, 1.275);
overflow: hidden;
}
/* Softened scanlines over the alert box */
.dynamic-toast::after {
content: "";
position: absolute;
top: 0;
left: 0;
right: 0;
bottom: 0;
/* Reduced the black line opacity from 0.4 to 0.15 for readability */
background: linear-gradient(rgba(18, 16, 16, 0) 50%, rgba(0, 0, 0, 0.15) 50%), linear-gradient(90deg, rgba(255, 0, 0, 0.04), rgba(0, 255, 0, 0.01), rgba(0, 0, 255, 0.04));
background-size: 100% 4px, 3px 100%;
pointer-events: none;
z-index: 2;
}
/* Aggressive snap-into-place animation */
.dynamic-toast.show {
opacity: 1;
transform: scale(1) translateY(0);
}
/* Specific override for Nuke Codes to make them terrifying */
.dynamic-toast.nuke-alert {
background: #ff0000 !important;
border-color: #ffcc00 !important;
box-shadow: 0 0 50px #ff0000, inset 0 0 15px #000 !important;
animation: nukeFlash 0.1s infinite alternate;
}
@keyframes nukeFlash {
0% {
opacity: 0.8;
}
100% {
opacity: 1;
box-shadow: 0 0 80px #ff0000, inset 0 0 20px #000 !important;
}
}
/* --- FOG OF WAR STYLES --- */
.fog-shroud {
/* The fill is now our self-contained, opaque static pattern! */
fill: url(#gritty-grey-static) !important;
/* Your approved grey border color */
stroke: #797a79 !important;
stroke-width: 1px !important;
transition: fill 0.5s ease;
}
/* This colors the dots inside the pattern with your theme's --pip-color */
.static-dot {
fill: var(--pip-color, #00ff00);
opacity: 0.35;
/* You can adjust this to make the static more/less intense */
}
.static-overlay {
fill: url(#themeable-static-pattern) !important;
pointer-events: none;
/* Prevents it from interfering with clicks */
}
/* --- LEADERBOARD INTEL STYLES (FINAL) --- */
/* 1. This styles the actual numbers. It makes them bold and gives them the UI theme color. */
.stat-value {
color: var(--pip-color);
font-weight: bold;
font-size: 16px;
text-shadow: var(--pip-glow);
}
/* --- NEW: Rigid Grid for Stats to Prevent Shifting --- */
.stats-grid {
display: grid;
grid-template-columns: auto 30px auto 30px auto 30px;
/* Label, Value, Label, Value... */
gap: 0 4px;
/* A small gap between columns */
align-items: center;
justify-content: center;
margin-top: 8px;
/* Double space */
}
.stats-grid>span {
white-space: nowrap;
/* Prevent labels from wrapping */
}
.stat-value {
text-align: left;
/* Align numbers to the left within their fixed cell */
font-weight: bold;
}
/* --- FACTION ICON VARIABLES --- */
:root {
/* Fallout 3 Theme */
--icon-enclave: url('');
--icon-supermutants: url('');
--icon-talon: url('');
--icon-reilly: url('');
--icon-outcasts: url('');
/* New Vegas Theme */
--icon-legion: url('');
--icon-mrhouse: url('');
--icon-khans: url('');
--icon-boomers: url('');
--icon-fiends: url('');
/* Fallout 4 Theme */
--icon-institute: url('');
--icon-bos: url('');
--icon-railroad: url('');
--icon-gunners: url('');
--icon-raiders: url('');
}
/* --- THE MAGIC MASK CLASS --- */
.faction-icon {
display: inline-block;
width: 18px;
height: 18px;
vertical-align: middle;
margin-right: 4px;
background-color: currentColor;
-webkit-mask-size: contain;
-webkit-mask-repeat: no-repeat;
-webkit-mask-position: center;
mask-size: contain;
mask-repeat: no-repeat;
mask-position: center;
}
.faction-icon.enclave { -webkit-mask-image: var(--icon-enclave); mask-image: var(--icon-enclave); }
.faction-icon.supermutants { -webkit-mask-image: var(--icon-supermutants); mask-image: var(--icon-supermutants); }
.faction-icon.talon { -webkit-mask-image: var(--icon-talon); mask-image: var(--icon-talon); }
.faction-icon.reilly { -webkit-mask-image: var(--icon-reilly); mask-image: var(--icon-reilly); }
.faction-icon.outcasts { -webkit-mask-image: var(--icon-outcasts); mask-image: var(--icon-outcasts); }
.faction-icon.legion { -webkit-mask-image: var(--icon-legion); mask-image: var(--icon-legion); }
.faction-icon.mrhouse { -webkit-mask-image: var(--icon-mrhouse); mask-image: var(--icon-mrhouse); }
.faction-icon.khans { -webkit-mask-image: var(--icon-khans); mask-image: var(--icon-khans); }
.faction-icon.boomers { -webkit-mask-image: var(--icon-boomers); mask-image: var(--icon-boomers); }
.faction-icon.fiends { -webkit-mask-image: var(--icon-fiends); mask-image: var(--icon-fiends); }
.faction-icon.institute { -webkit-mask-image: var(--icon-institute); mask-image: var(--icon-institute); }
.faction-icon.bos { -webkit-mask-image: var(--icon-bos); mask-image: var(--icon-bos); }
.faction-icon.railroad { -webkit-mask-image: var(--icon-railroad); mask-image: var(--icon-railroad); }
.faction-icon.gunners { -webkit-mask-image: var(--icon-gunners); mask-image: var(--icon-gunners); }
.faction-icon.raiders { -webkit-mask-image: var(--icon-raiders); mask-image: var(--icon-raiders); }
.faction-icon.default { background-color: transparent; }
.faction-icon.default { background-color: transparent; }
/* --- NEW: PURE CSS PAW PRINT FOR UI --- */
.paw-icon {
-webkit-mask-image: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M8.5,4c-1.4,0-2.5,1.5-2.5,3.4S7.1,10.8,8.5,10.8s2.5-1.5,2.5-3.4S9.9,4,8.5,4z M15.5,4c-1.4,0-2.5,1.5-2.5,3.4s1.1,3.4,2.5,3.4s2.5-1.5,2.5-3.4S16.9,4,15.5,4z M3.5,9.6C2.1,9.6,1,11.2,1,13s1.1,3.4,2.5,3.4s2.5-1.5,2.5-3.4S4.9,9.6,3.5,9.6z M20.5,9.6c-1.4,0-2.5,1.5-2.5,3.4s1.1,3.4,2.5,3.4s2.5-1.5,2.5-3.4S21.9,9.6,20.5,9.6z M12,12.3c-3.1,0-5.6,2.2-5.6,5.3c0,2.6,2.5,4.4,5.6,4.4s5.6-1.8,5.6-4.4C17.6,14.5,15.1,12.3,12,12.3z"/></svg>');
mask-image: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M8.5,4c-1.4,0-2.5,1.5-2.5,3.4S7.1,10.8,8.5,10.8s2.5-1.5,2.5-3.4S9.9,4,8.5,4z M15.5,4c-1.4,0-2.5,1.5-2.5,3.4s1.1,3.4,2.5,3.4s2.5-1.5,2.5-3.4S16.9,4,15.5,4z M3.5,9.6C2.1,9.6,1,11.2,1,13s1.1,3.4,2.5,3.4s2.5-1.5,2.5-3.4S4.9,9.6,3.5,9.6z M20.5,9.6c-1.4,0-2.5,1.5-2.5,3.4s1.1,3.4,2.5,3.4s2.5-1.5,2.5-3.4S21.9,9.6,20.5,9.6z M12,12.3c-3.1,0-5.6,2.2-5.6,5.3c0,2.6,2.5,4.4,5.6,4.4s5.6-1.8,5.6-4.4C17.6,14.5,15.1,12.3,12,12.3z"/></svg>');
background-color: var(--pip-color);
width: 20px;
height: 20px;
display: inline-block;
vertical-align: middle;
margin-left: 5px;
-webkit-mask-size: contain;
-webkit-mask-repeat: no-repeat;
-webkit-mask-position: center;
filter: drop-shadow(0 0 3px var(--pip-color));
}
/* --- ROBCO OS TERMINAL STYLES --- */
.help-nav-item, .help-back-btn {
cursor: pointer;
padding: 2px 8px;
margin-bottom: 4px;
color: var(--pip-color);
display: inline-block;
width: fit-content;
transition: none; /* Instant snap color change */
}
.help-nav-item:hover, .help-back-btn:hover {
background-color: var(--pip-color);
color: var(--pip-dark, #000) !important;
text-shadow: none !important;
font-weight: bold;
}
/* --- UPDATED LEVELING SYSTEM UI --- */
#leveling-ui-container {
margin-top: 10px;
padding-top: 10px;
border-top: 1px solid rgba(0, 255, 0, 0.2);
}
.perk-choice-btn {
background: rgba(0, 255, 0, 0.1) !important;
border: 1px solid #00ff00 !important;
padding: 15px !important;
margin: 10px 0 !important;
text-align: left !important;
transition: all 0.2s !important;
}
.perk-choice-btn:hover {
background: rgba(0, 255, 0, 0.3) !important;
box-shadow: 0 0 15px rgba(0, 255, 0, 0.5) !important;
transform: scale(1.02);
}
</style>
</head>
<body>
<!-- ON-SCREEN ERROR CONSOLE -->
<div id="error-console"
style="display: none; position: fixed; bottom: 0; left: 0; width: 100%; max-height: 25%; background: rgba(200, 0, 0, 0.9); color: #fff; z-index: 99999; font-family: 'VT323', monospace; font-size: 16px; border-top: 2px solid #ff8080; overflow-y: auto;">
<div style="padding: 10px; font-weight: bold; background: #c80000; text-align: center;">JAVASCRIPT SYSTEM
FAILURE</div>
<div id="error-log" style="padding: 10px;"></div>
</div>
<!-- THE TOAST NOTIFICATION POPUP -->
<div id="toast-container"></div>
<!-- MOVED WARNING OUTSIDE THE CONTAINER -->
<div id="portrait-warning">
<div style="margin-bottom: 20px; font-size: 40px; color: #ff3333;">[ SYSTEM ALERT ]</div>
<div>TERMINAL ORIENTATION UNSTABLE.<br><br>PLEASE ROTATE DEVICE TO<br>LANDSCAPE MODE TO INITIATE.</div>
</div>
<div class="container">
<div id="start-modal" class="overlay">
<div class="start-modal">
<!-- UPDATED: Title and Subtitle -->
<h1 class="title" style="margin-bottom: 0;">Wasteland Conquest</h1>
<p style="margin-top: 0; margin-bottom: 20px; font-size: 14px; opacity: 0.7;">A RobCo Industries
Strategic Simulation</p>
<!-- ROW 1: Commander, Color, Faction -->
<div class="form-group" style="display: grid; grid-template-columns: 1fr 110px 1.5fr; gap: 20px; margin-bottom: 25px;">
<div>
<label for="chosen-leader" style="font-size: 18px;">Commander</label>
<input type="text" id="chosen-leader" value="Courier Six" autocomplete="off" style="height: 38px; width: 100%;">
</div>
<div>
<label for="chosen-color" style="font-size: 18px;">Color</label>
<select id="chosen-color" style="height: 38px; box-sizing: border-box; padding: 4px 8px; font-size: 18px; font-family: inherit; background: rgba(0,0,0,0.8); color: var(--pip-color); border: 1px solid var(--pip-color); width: 100%; cursor: pointer;">
<option value="#3a8dcb" style="color: #3a8dcb;">BLUE</option>
<option value="#b74545" style="color: #b74545;">RED</option>
<option value="#d19a4f" style="color: #d19a4f;">ORANGE</option>
<option value="#8e6aa5" style="color: #8e6aa5;">PURPLE</option>
<option value="#5a8b5c" style="color: #5a8b5c;">GREEN</option>
<option value="#bdb862" style="color: #bdb862;">YELLOW</option>
</select>
</div>
<div style="position: relative;">
<label for="chosen-country-input" style="font-size: 18px;">Faction</label>
<input type="text" id="chosen-country-input" value="New California Republic" autocomplete="off" style="height: 38px; width: 100%;">
<div id="custom-faction-options" style="display: none; position: absolute; top: 100%; left: 0; right: 0; background: var(--pip-panel-solid); border: 1px solid var(--pip-color); z-index: 1001; max-height: 180px; overflow-y: auto;"></div>
</div>
</div>
<!-- ROW 2: Theme, Difficulty -->
<div class="form-group" style="display: grid; grid-template-columns: 1fr 1fr; gap: 20px; margin-bottom: 25px;">
<div>
<label for="chosen-theme" style="font-size: 18px;">Theme (Holotape)</label>
<select id="chosen-theme" style="height: 38px;">
<option value="fo3" selected>Fallout 3 (Capital Wasteland)</option>
<option value="fnv">Fallout: New Vegas (Mojave)</option>
<option value="fo4">Fallout 4 (The Commonwealth)</option>
</select>
</div>
<div>
<label for="chosen-difficulty" style="font-size: 18px;">Difficulty</label>
<select id="chosen-difficulty" style="height: 38px;">
<option value="Easy">Easy (Favorable Combat Odds)</option>
<option value="Normal" selected>Normal (Standard 50/50)</option>
<option value="Hard">Hard (Odds Stacked Against You)</option>
</select>
</div>
</div>
<!-- ROW 3: Initial Placement, Fixed Reinforcements -->
<div class="form-group" style="display: grid; grid-template-columns: 1fr 1fr; gap: 20px; margin-bottom: 15px;">
<div>
<label for="opt-placement" style="font-size: 18px;">Initial Placement</label>
<select id="opt-placement" style="height: 38px;">
<option value="auto" selected>Auto (Random Territories & Troops)</option>
<option value="semi">Semi-Auto (Random Territories, Manual Troops)</option>
<option value="manual">Manual (Classic Pick 1-by-1)</option>
</select>
</div>
<div>
<label for="opt-flat-trade" style="font-size: 18px;" title="Changes how card trade-ins scale.">Reinforcements (Cards)</label>
<select id="opt-flat-trade" style="height: 38px;">
<option value="false" selected>Standard (Escalating Scaling)</option>
<option value="true">Fixed (Flat 3 Troops Per Trade)</option>
</select>
</div>
</div>
<!-- NEW: Game Mode Preset System -->
<div class="form-group" style="margin-top: 20px;">
<label for="game-mode-preset">Game Mode</label>
<select id="game-mode-preset">
<option value="classic">Classic Conquest</option>
<option value="survival">Wasteland Survival</option>
<option value="heroes">Heroes of the Wasteland</option>
<option value="apocalypse">Apocalypse Now</option>
<option value="alliance">Alliance Warfare</option>
<option value="covert">Covert Warfare</option>
<option value="nuclear">Nuclear Option</option>
<option value="custom">Custom Ruleset</option>
</select>
</div>
<!-- NEW: Preset Description Box -->
<div id="preset-description"
style="background: rgba(0,0,0,0.4); border: 1px inset var(--pip-color); padding: 10px; margin-top: 10px; min-height: 120px; text-align: left; font-size: 18px; line-height: 1.4; white-space: normal;">
<!-- Description will be injected here by JavaScript -->
</div>
<!-- NEW: Container for Custom Checkboxes (hidden by default) -->
<div id="custom-rules-container" style="display: none;">
<div class="form-group"
style="display: grid; grid-template-columns: 1fr 1fr; gap: 15px 10px; margin-top: 20px; text-align: left;">
<label title="Enables unique abilities and starting relationships for each faction."
style="cursor: help; display: flex; align-items: center;">
<input type="checkbox" id="opt-perks" class="custom-opt" checked> <span
style="margin-left: 8px;">Faction Perks</span>
</label>
<label title="Each faction is led by a killable commander."
style="cursor: help; display: flex; align-items: center;">
<input type="checkbox" id="opt-commander" class="custom-opt"> <span
style="margin-left: 8px;">Commanders</span>
</label>
<label title="Hides territories not adjacent to your own."
style="cursor: help; display: flex; align-items: center;">
<input type="checkbox" id="opt-fog-of-war" class="custom-opt" checked> <span
style="margin-left: 8px;">Fog of War</span>
</label>
<label title="Watch the skies! Random radioactive storms."
style="cursor: help; display: flex; align-items: center;">
<input type="checkbox" id="opt-radstorms" class="custom-opt"> <span
style="margin-left: 8px;">Radstorms</span>
</label>
<label title="Unclaimed territories are filled with Feral Ghouls."
style="cursor: help; display: flex; align-items: center;">
<input type="checkbox" id="opt-horrors" class="custom-opt"> <span
style="margin-left: 8px;">Wild Ghouls</span>
</label>
<label title="Enables random story events and creature attacks."
style="cursor: help; display: flex; align-items: center;">
<input type="checkbox" id="opt-encounters" class="custom-opt" checked> <span
style="margin-left: 8px;">Dynamic Encounters</span>
</label>
<label title="Unleash permanent radiation with nuclear weapons."
style="cursor: help; display: flex; align-items: center;">
<input type="checkbox" id="opt-nukes" class="custom-opt"> <span
style="margin-left: 8px;">Scorched Earth</span>
</label>
</div>
</div>
<!-- --- START & LOAD BUTTON CONTAINER --- -->
<div style="display: block; width: 100%; margin-top: 20px; height: 50px;">
<button id="submit-name" style="width: calc(75% - 5px); float: left; margin-top: 0; height: 100%;">Initiate Simulation</button>
<button id="btn-load-game" style="width: calc(25% - 5px); float: right; margin-top: 0; height: 100%; padding: 0; display: flex; justify-content: center; align-items: center;" title="Load from Holotape (.json)">
<svg width="22" height="22" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">
<path d="M19 21H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h11l5 5v11a2 2 0 0 1-2 2z"></path>
<polyline points="17 21 17 13 7 13 7 21"></polyline>
<polyline points="7 3 7 8 15 8"></polyline>
</svg>
</button>
</div>
<div style="clear: both;"></div>
<input type="file" id="file-load-game" accept=".json" style="display: none;">
</div>
</div>
<div id="central-toast-popup" class="toast">
<!-- Content will be injected by JavaScript -->
</div>
<!-- REDESIGNED NEGOTIATION MODAL -->
<div id="diplomacy-modal" class="overlay" style="display: none; z-index: 10005;">
<div class="start-modal content" style="width: 90%; max-width: 800px; padding: 20px;">
<h2
style="color: var(--pip-color); margin-top: 0; border-bottom: 2px solid var(--pip-color); text-shadow: 0 0 5px var(--pip-color); font-size: 28px;">
DIPLOMATIC NEGOTIATION</h2>
<div
style="display: flex; justify-content: space-between; align-items: center; margin-bottom: 15px;">
<div id="dip-target-name" style="font-size: 24px; font-weight: bold;"></div>
<div id="dip-rep-display"
style="font-size: 20px; font-weight: bold; padding: 5px 10px; border: 1px solid currentColor;">
REP: NEUTRAL</div>
</div>
<p id="dip-tax-warning" style="font-size: 16px; margin: 5px 0; color: #ffcc00;"></p>
<!-- The Trade Grid -->
<div style="display: grid; grid-template-columns: 1fr 1fr; gap: 20px; margin-top: 15px;">
<!-- LEFT SIDE: BRIBES -->
<div
style="background: rgba(0,0,0,0.4); border: 1px solid var(--pip-color); padding: 15px; position: relative;">
<div
style="position: absolute; top: -12px; left: 10px; background: #000; padding: 0 5px; font-weight: bold; font-size: 18px;">
OFFER (Bribe for Reputation)</div>
<div style="margin-top: 15px;">
<label style="display: flex; justify-content: space-between; font-size: 18px;"><span>Bottle
Caps (<span id="dip-my-caps-max">0</span>)</span> <span
id="dip-offer-caps-val">0</span></label>
<input type="range" id="dip-offer-caps" min="0" max="0" value="0"
style="width: 100%; cursor: pointer;">
</div>
<div style="margin-top: 15px;">
<label style="display: flex; justify-content: space-between; font-size: 18px;"><span>Troops
(<span id="dip-my-troops-max">0</span>)</span> <span
id="dip-offer-troops-val">0</span></label>
<input type="range" id="dip-offer-troops" min="0" max="0" value="0"
style="width: 100%; cursor: pointer;">
</div>
<div style="margin-top: 15px;" id="dip-offer-bobbles-container">
<!-- JS populates checkboxes for owned bobbleheads here -->
</div>
</div>
<!-- RIGHT SIDE: TRUCES AND DEMANDS -->
<div
style="background: rgba(0,0,0,0.4); border: 1px solid var(--pip-color); padding: 15px; position: relative;">
<div
style="position: absolute; top: -12px; left: 10px; background: #000; padding: 0 5px; font-weight: bold; font-size: 18px;">
YOUR REQUESTS (Choose One)</div>
<!-- FIX: Replaced Truce Checkbox with Dynamic Truce Slider -->
<div style="margin-top: 15px;">
<label style="display: flex; justify-content: space-between; font-size: 18px;">
<span>Ceasefire (<span id="dip-req-truce-val">0</span> Turns)</span>
<span id="dip-truce-cost" style="color: #ffcc00;">Cost: 0 Caps</span>
</label>
<input type="range" id="dip-req-truce" min="0" max="5" value="0"
style="width: 100%; cursor: pointer;">
</div>
<div style="margin-top: 15px;">
<label style="display: flex; justify-content: space-between; font-size: 18px;"><span>Demand
Tribute (<span id="dip-their-caps-max">0</span>)</span> <span
id="dip-req-caps-val">0</span></label>
<input type="range" id="dip-req-caps" min="0" max="0" value="0"
style="width: 100%; cursor: pointer;">
</div>
<div style="margin-top: 15px;" id="dip-req-bobbles-container">
<!-- JS populates checkboxes for AI owned bobbleheads here -->
</div>
</div>
</div>
<!-- Analysis Text -->
<div id="dip-analysis"
style="margin-top: 20px; text-align: center; font-size: 18px; font-weight: bold; min-height: 25px;">
Analyzing proposal...</div>
<div style="display: flex; gap: 10px; margin-top: 20px;">
<button id="dip-send"
style="margin-top: 0; border-color: var(--pip-color); color: var(--pip-color); font-size: 20px; padding: 10px;">SUBMIT
PROPOSAL</button>
<button id="dip-cancel"
style="margin-top: 0; border-color: #ffcc00; color: #ffcc00; font-size: 20px; padding: 10px;">CANCEL</button>
</div>
</div>
</div>
<!-- Generic Encounter Modal -->
<div id="encounter-modal" class="overlay" style="display: none; z-index: 10006;">
<div class="start-modal content" style="width: 600px;">
<h2 id="encounter-title" style="margin-top: 0;"></h2>
<p id="encounter-message" style="font-size: 20px; line-height: 1.3;"></p>
<div id="encounter-choices"
style="margin-top: 25px; display: flex; flex-direction: column; gap: 10px;">
<!-- Choice buttons will be generated by JavaScript here -->
</div>
</div>
</div>
<div id="envoy-modal" class="overlay" style="display: none; z-index: 10005;">
<div class="start-modal content" style="max-width: 400px; padding: 20px;">
<h2
style="color: #ffcc00; margin-top: 0; border-bottom: 2px solid #ffcc00; text-shadow: 0 0 5px #ffcc00;">
[ INCOMING ENVOY ]</h2>
<p id="envoy-message" style="font-size: 18px; margin: 20px 0; line-height: 1.4;"></p>
<div style="display: flex; gap: 10px; margin-top: 20px;">
<button id="envoy-accept"
style="margin-top: 0; border-color: #18ff62; color: #18ff62; text-shadow: 0 0 5px #18ff62; box-shadow: inset 0 0 5px #18ff62;">ACCEPT</button>
<button id="envoy-reject"
style="margin-top: 0; border-color: #ffcc00; color: #ffcc00; text-shadow: 0 0 5px #ffcc00; box-shadow: inset 0 0 5px #ffcc00;">REJECT</button>
</div>
</div>
</div>
<!-- Recruitment Modal -->
<div id="recruitment-modal" class="overlay" style="display: none; z-index: 10007;">
<div class="start-modal content" style="width: 500px;">
<h2 style="margin-top: 0;">RECRUITMENT DRIVE</h2>
<p>Your current Treasury: <span id="recruitment-caps"
style="color: var(--pip-color); font-weight: bold;">0</span> Caps</p>
<p>Purchase troops to add to your reserves. Cost: 5 Caps per troop.</p>
<div style="margin: 20px 0;">
<label for="recruitment-slider" style="display: block; margin-bottom: 10px;">Troops to Recruit:
<span id="recruitment-val">0</span></label>
<input type="range" id="recruitment-slider" min="0" max="0" value="0" style="width: 100%;">
</div>
<p>Total Cost: <span id="recruitment-cost"
style="color: var(--pip-color); font-weight: bold;">0</span> Caps</p>
<div style="display: grid; grid-template-columns: 1fr 1fr; gap: 10px;">
<button id="recruitment-skip">Cancel</button>
<button id="recruitment-confirm">Recruit Units</button>
</div>
</div>
</div>
<!-- Chem Frenzy Confirmation Modal -->
<div id="frenzy-modal" class="overlay" style="display: none;">
<div class="win-content">
<h2 style="color: #ff5555;">CHEM FRENZY</h2>
<p>Sacrifice 1 troop to gain a +10% win chance for the attack on <span id="frenzy-target-name"
style="font-weight: bold;"></span>?</p>
<div style="display: flex; gap: 15px; margin-top: 20px;">
<button id="frenzy-yes" style="flex: 1;">Yes (Attack)</button>
<button id="frenzy-no" style="flex: 1; background: #555;">No (Attack Normally)</button>
</div>
</div>
</div>
<div id="betrayal-modal" class="overlay" style="display: none; z-index: 10005;">
<div class="start-modal content" style="max-width: 400px; padding: 20px;">
<h2
style="color: #ff3333; margin-top: 0; border-bottom: 2px solid #ff3333; text-shadow: 0 0 5px #ff3333;">
[ CEASEFIRE VIOLATION ]</h2>
<p id="betrayal-message" style="font-size: 18px; margin: 20px 0; line-height: 1.4;"></p>
<div style="display: flex; gap: 10px; margin-top: 20px;">
<button id="betrayal-confirm"
style="margin-top: 0; border-color: #ff3333; color: #ff3333; text-shadow: 0 0 5px #ff3333; box-shadow: inset 0 0 5px #ff3333;">PROCEED</button>
<button id="betrayal-cancel"
style="margin-top: 0; border-color: #18ff62; color: #18ff62; text-shadow: 0 0 5px #18ff62; box-shadow: inset 0 0 5px #18ff62;">ABORT</button>
</div>
</div>
</div>
<div id="move-modal" class="overlay" style="display: none; z-index: 10005;">
<div class="start-modal content" style="max-width: 400px; padding: 20px;">
<h2
style="color: var(--pip-color); margin-top: 0; border-bottom: 2px solid var(--pip-color); text-shadow: 0 0 5px var(--pip-color);">
TERRITORY SECURED</h2>
<p id="move-message" style="font-size: 18px; margin: 15px 0;">Assign garrison force:</p>
<div class="form-group">
<input type="range" id="move-slider" min="1" max="1" value="1"
style="width:100%; cursor: pointer;">
<div style="text-align: center; font-size: 32px; margin-top: 10px; text-shadow: var(--pip-glow);"
id="move-val">1</div>
</div>
<button id="move-confirm" style="margin-top: 10px;">DEPLOY GARRISON</button>
</div>
</div>
<div id="maneuver-modal" class="overlay" style="display: none; z-index: 10005;">
<div class="start-modal content" style="max-width: 400px; padding: 20px;">
<h2
style="color: var(--pip-color); margin-top: 0; border-bottom: 2px solid var(--pip-color); text-shadow: 0 0 5px var(--pip-color);">
TACTICAL MANEUVER</h2>
<p id="maneuver-message" style="font-size: 18px; margin: 15px 0;">Relocate troops to target
territory:</p>
<div class="form-group">
<input type="range" id="maneuver-slider" min="1" max="1" value="1"
style="width:100%; cursor: pointer;">
<div style="text-align: center; font-size: 32px; margin-top: 10px; text-shadow: var(--pip-glow);"
id="maneuver-val">1</div>
</div>
<div style="display: flex; gap: 10px; margin-top: 10px;">
<button id="maneuver-confirm"
style="margin-top: 0; border-color: var(--pip-color); color: var(--pip-color); text-shadow: 0 0 5px var(--pip-color); box-shadow: inset 0 0 5px var(--pip-color);">RELOCATE</button>
<button id="maneuver-cancel"
style="margin-top: 0; border-color: #ffcc00; color: #ffcc00; text-shadow: 0 0 5px #ffcc00; box-shadow: inset 0 0 5px #ffcc00;">CANCEL</button>
</div>
</div>
</div>
<div id="confirm-restart-modal" class="overlay" style="display: none; z-index: 10000;">
<div class="start-modal content">
<h2>REBOOT TERMINAL?</h2>
<p style="margin-bottom: 20px; font-size: 16px;">All strategic progress will be corrupted.</p>
<button id="confirm-yes">Execute Reboot</button>
<button id="confirm-no">Cancel Operation</button>
</div>
</div>
<div id="cards-modal" class="overlay" style="display: none;">
<div class="cards-modal">
<h2>Caps Stash</h2>
<div id="card-list" style="max-height: 200px; overflow-y: auto; margin-bottom: 10px;"></div>
<button id="trade-btn" disabled>Spend Caps for Troops</button>
<button id="close-cards-btn">Close Inventory</button>
</div>
</div>
<!-- INVENTORY MODAL -->
<div id="inventory-modal" class="overlay" style="display: none; z-index: 10001;">
<div class="start-modal content" style="width: 90%; max-width: 950px; padding: 30px;">
<h2
style="font-size: 28px; text-align: center; margin: 0 0 20px 0; text-shadow: var(--pip-glow); border-bottom: 2px solid var(--pip-color); padding-bottom: 10px;">
INVENTORY</h2>
<div id="inventory-content" style="display: flex; flex-direction: column; width: 100%;">
<!-- Single, unified grid for everything -->
<div id="inventory-grid"
style="display: grid; grid-template-columns: repeat(4, 1fr); gap: 15px;">
<!-- JS will dynamically populate this grid -->
</div>
</div>
<!-- NEW: Relics Section -->
<div id="relics-header" style="border-top: 1px dashed var(--pip-color); margin-top: 20px; padding-top: 15px; display: none;">
<h3 style="margin: 0; font-size: 18px; letter-spacing: 2px;">WASTELAND RELICS</h3>
<p style="font-size: 12px; opacity: 0.7; margin-top: 5px;">RARE PRE-WAR ARTIFACTS RECOVERED FROM THE WASTES</p>
</div>
<div id="relics-grid" style="display: grid; grid-template-columns: repeat(4, 1fr); gap: 15px; margin-top: 10px;"></div>
<button id="close-inv-btn"
style="margin-top: 30px; width: 300px; margin-left: auto; margin-right: auto; display: block; font-size: 20px; padding: 10px;">Close
Inventory</button>
</div>
</div>
<div class="player-panel">
<div>
<h1>WASTELAND CONQUEST</h1>
<div class="player-name"></div>
<div class="player-country"></div>
<div style="font-size: 14px; text-align: left; margin-top: 10px;">
MILITARY STRENGTH
<div class="hp-bar">
<div id="hp-fill" class="hp-fill" style="width: 100%; transition: all 0.5s;"></div>
</div>
ACTION POINTS (AP)
<div class="hp-bar">
<div id="ap-fill" class="hp-fill" style="width: 100%; transition: all 0.5s;"></div>
</div>
<!-- INTEGRATED LEVEL GAUGE -->
<span id="level-label" style="display:none;">LEVEL <span id="player-level">1</span></span>
<div id="xp-bar-container" class="hp-bar" style="display:none;">
<div id="xp-fill" class="hp-fill" style="width: 0%; transition: all 0.5s;"></div>
</div>
</div>
<div id="cmdr-ui-container"
style="display:none; margin-top: 15px; border: 1px solid var(--vip-color); padding: 5px; background: rgba(0,0,0,0.3);">
<div
style="color: var(--vip-color); text-align: center; text-shadow: 0 0 5px var(--vip-color);">
COMMANDER STATUS</div>
<div class="cmdr-stats">
<span id="cmdr-hp-text">HP: 100/100</span>
<span id="cmdr-ap-text">AP: 2/2</span>
</div>
<div class="hp-bar" style="border-color: var(--vip-color); height: 10px; margin-top: 2px;">
<div id="cmdr-hp-fill" class="hp-fill"
style="background: var(--vip-color); width: 100%; box-shadow: 0 0 5px var(--vip-color);">
</div>
</div>
<button id="btn-cmdr-convert" class="btn-stimpak" style="width: 100%; margin-top: 8px; font-size: 16px; display: none;">CONVERT TERRITORY</button>
</div>
<div id="nuke-ui-container" style="display:none; margin-top: 10px; text-align: center;">
<div style="font-size: 14px; color: #ff3333;">SILO CONTROL: <span
id="nuke-silo-status">NO</span></div>
<button id="btn-launch-nuke" disabled
style="margin-top: 5px; padding: 8px; font-size: 16px;">NUKES: 0/4 CODES</button>
</div>
</div>
<div>
<div class="turn-info"></div>
<div class="turn-info-message"></div>
<div class="metric-box" style="margin-top: 20px;">
<p class="reserve-title">AVAILABLE REINFORCEMENTS</p>
<div class="reserve" id="reserve">2</div>
</div>
</div>
<div>
<div class="metric-box cards-panel">
<div>Bottle Caps <span id="card-count">0</span></div>
<button id="view-cards-btn" style="margin-top: 5px; padding: 8px; font-size: 16px;">Open
Stash</button>
</div>
<div class="turbo-container">
<input type="checkbox" id="turbo-toggle">
<label for="turbo-toggle">TURBO MODE (FAST AI)</label>
</div>
</div>
<div style="margin-top: auto;">
<button id="end">End Cycle</button>
<!-- Wrapper for the Perk Button to enable tooltips even when disabled -->
<div id="perk-button-wrapper" style="margin-top: 4px;">
<button id="btn-perk-action" style="background: #4b5320; border-color: #a3b96e;"></button>
</div>
<div class="pip-nav">
<span id="nav-stat">STAT</span>
<span id="nav-inv" class="interactive">INV</span>
<span id="nav-data">DATA</span>
<span id="nav-map" class="nav-text interactive map-active">MAP</span>
<span id="radio-toggle" class="nav-text interactive">RADIO</span>
</div>
<div style="text-align: center; font-size: 10px; opacity: 0.5; margin-top: 5px; font-family: 'VT323', monospace;">ROBCO INDUSTRIES (TM)</div>
</div>
</div>
<div class="map-brackets"></div>
<div class="map" id="map-container">
<svg viewBox="0 0 750 520" preserveAspectRatio="xMidYMid meet" style="width: 100%; height: 100%;">
<defs>
<!-- This filter generates the gritty static texture -->
<filter id="static-texture-generator">
<feTurbulence type="fractalNoise" baseFrequency="0.7" numOctaves="1" />
<feColorMatrix type="matrix" values="0 0 0 0 0
0 0 0 0 0
0 0 0 0 0
0 0 0 0.45 0" />
<!-- The 0.15 in the last row controls the static's intensity -->
</filter>
<!-- This pattern combines the grey background and the static into a single "paint" -->
<pattern id="gritty-grey-static" patternUnits="userSpaceOnUse" width="200" height="200">
<!-- Layer 1: The solid, opaque grey background -->
<rect width="200" height="200" fill="#bdbdbd" />
<!-- Layer 2: The static texture, applied over the whole pattern -->
<rect width="200" height="200" filter="url(#static-texture-generator)" />
</pattern>
</defs>
<defs id="defs5">
<linearGradient id="linearGradient11165">
<stop id="stop11167" offset="0" style="stop-color:#000000;stop-opacity:0;" />
<stop style="stop-color:#000000;stop-opacity:1;" offset="0.5" id="stop11173" />
<stop style="stop-color:#000000;stop-opacity:0;" offset="1" id="stop11171" />
</linearGradient>
<marker inkscape:stockid="CurvyCross" orient="auto" refY="0" refX="0" id="CurvyCross"
style="overflow:visible">
<g id="g3984" transform="scale(0.6,0.6)">
<path id="path3986"
d="M 4.625493,-5.0456926 C 1.865493,-5.0456926 -0.37450702,-2.8056926 -0.37450702,-0.04569258 C -0.37450702,2.7143074 1.865493,4.9543074 4.625493,4.9543074"
style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1pt;marker-start:none;marker-end:none" />
<path id="path3988"
d="M -5.4129913,-5.0456926 C -2.6529913,-5.0456926 -0.41299131,-2.8056926 -0.41299131,-0.04569258 C -0.41299131,2.7143074 -2.6529913,4.9543074 -5.4129913,4.9543074"
style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1pt;marker-start:none;marker-end:none" />
</g>
</marker>
<marker inkscape:stockid="DiamondMend" orient="auto" refY="0" refX="0" id="DiamondMend"
style="overflow:visible">
<path id="path3894"
d="M 0,-7.0710768 L -7.0710894,0 L 0,7.0710589 L 7.0710462,0 L 0,-7.0710768 z"
style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt;marker-start:none"
transform="matrix(0.4,0,0,0.4,-2.6,0)" />
</marker>
<marker inkscape:stockid="EmptyTriangleOutL" orient="auto" refY="0" refX="0"
id="EmptyTriangleOutL" style="overflow:visible">
<path id="path3954" d="M 5.77,0 L -2.88,5 L -2.88,-5 L 5.77,0 z"
style="fill:#ffffff;fill-rule:evenodd;stroke:#000000;stroke-width:1pt;marker-start:none"
transform="matrix(0.8,0,0,0.8,-4.8,0)" />
</marker>
<marker inkscape:stockid="Club" orient="auto" refY="0" refX="0" id="Club"
style="overflow:visible">
<path id="path4023"
d="M -1.5971367,-7.0977635 C -3.4863874,-7.0977635 -5.0235187,-5.5606321 -5.0235187,-3.6713813 C -5.0235187,-3.0147015 -4.7851656,-2.4444556 -4.4641095,-1.9232271 C -4.5028609,-1.8911157 -4.5437814,-1.8647646 -4.5806531,-1.8299921 C -5.2030765,-2.6849849 -6.1700514,-3.275133 -7.307773,-3.275133 C -9.1970245,-3.2751331 -10.734155,-1.7380016 -10.734155,0.15124914 C -10.734155,2.0404999 -9.1970245,3.5776313 -7.307773,3.5776313 C -6.3143268,3.5776313 -5.439154,3.1355702 -4.8137404,2.4588126 C -4.9384274,2.8137041 -5.0235187,3.1803 -5.0235187,3.5776313 C -5.0235187,5.4668819 -3.4863874,7.0040135 -1.5971367,7.0040135 C 0.29211394,7.0040135 1.8292454,5.4668819 1.8292454,3.5776313 C 1.8292454,2.7842354 1.5136868,2.0838028 1.0600576,1.503155 C 2.4152718,1.7663868 3.7718375,2.2973711 4.7661444,3.8340272 C 4.0279463,3.0958289 3.5540908,1.7534117 3.5540908,-0.058529361 L 2.9247554,-0.10514681 L 3.5074733,-0.12845553 C 3.5074733,-1.9403966 3.9580199,-3.2828138 4.6962183,-4.0210121 C 3.7371277,-2.5387813 2.4390549,-1.9946496 1.1299838,-1.7134486 C 1.5341802,-2.2753578 1.8292454,-2.9268556 1.8292454,-3.6713813 C 1.8292454,-5.5606319 0.29211394,-7.0977635 -1.5971367,-7.0977635 z"
style="fill-rule:evenodd;stroke:#000000;stroke-width:0.74587913pt;marker-start:none"
transform="scale(0.6,0.6)" />
</marker>
<marker inkscape:stockid="Torso" orient="auto" refY="0" refX="0" id="Torso"
style="overflow:visible">
<g id="g4006" transform="scale(0.7,0.7)">
<path id="path4008"
d="M -4.7792281,-3.239542 C -2.4288541,-2.8736027 0.52103922,-1.3019943 0.25792722,0.38794346 C -0.0051877922,2.0778819 -2.2126741,2.6176539 -4.5630471,2.2517169 C -6.9134221,1.8857769 -8.521035,0.75201414 -8.257922,-0.93792336 C -7.994809,-2.6278615 -7.1296041,-3.6054813 -4.7792281,-3.239542 z"
style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#000000;stroke-width:1.25;marker-start:none;marker-mid:none;marker-end:none" />
<path id="path4010"
d="M 4.4598789,0.088665736 C -2.5564571,-4.378332 5.2248769,-3.9061806 -0.84829578,-8.7197331"
style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#000000;stroke-width:1pt;marker-end:none" />
<path id="path4012"
d="M 4.9298719,0.057520736 C -1.3872731,1.7494689 1.8027579,5.4782079 -4.9448731,7.5462725"
style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#000000;stroke-width:1pt;marker-start:none;marker-end:none" />
<rect id="rect4014" transform="matrix(0.527536,-0.849533,0.887668,0.460484,0,0)"
y="-1.7408575" x="-10.391706" height="2.7608147" width="2.6366582"
style="fill-rule:evenodd;stroke-width:1pt;marker-end:none" />
<rect id="rect4016" transform="matrix(0.671205,-0.741272,0.790802,0.612072,0,0)"
y="-7.9629307" x="4.9587269" height="2.8614161" width="2.7327356"
style="fill-rule:evenodd;stroke-width:1pt;marker-end:none" />
<path id="path4018" transform="matrix(0,-1.109517,1.109517,0,25.96648,19.71619)"
d="M 16.779951,-28.685045 A 0.60731727,0.60731727 0 1 1 15.565317,-28.685045 A 0.60731727,0.60731727 0 1 1 16.779951,-28.685045 z"
sodipodi:ry="0.60731727" sodipodi:rx="0.60731727" sodipodi:cy="-28.685045"
sodipodi:cx="16.172634"
style="fill:#ff0000;fill-opacity:0.75;fill-rule:evenodd;stroke:#000000;stroke-width:1pt;marker-start:none;marker-end:none"
sodipodi:type="arc" />
<path id="path4020" transform="matrix(0,-1.109517,1.109517,0,26.8245,16.99126)"
d="M 16.779951,-28.685045 A 0.60731727,0.60731727 0 1 1 15.565317,-28.685045 A 0.60731727,0.60731727 0 1 1 16.779951,-28.685045 z"
sodipodi:ry="0.60731727" sodipodi:rx="0.60731727" sodipodi:cy="-28.685045"
sodipodi:cx="16.172634"
style="fill:#ff0000;fill-opacity:0.75;fill-rule:evenodd;stroke:#000000;stroke-width:1pt;marker-start:none;marker-end:none"
sodipodi:type="arc" />
</g>
</marker>
<marker inkscape:stockid="RazorWire" id="RazorWire" refX="0" refY="0" orient="auto">
style="overflow:visible"&gt;
<path id="path4026" transform="scale(0.8,0.8)"
style="fill:#838080;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.1pt"
d="M 0.022727273,-0.74009011 L 0.022727273,0.69740989 L -7.7585227,3.0099099 L 10.678977,3.0099099 L 3.4914773,0.69740989 L 3.4914773,-0.74009011 L 10.741477,-2.8963401 L -7.7272727,-2.8963401 L 0.022727273,-0.74009011 z" />
</marker>
<marker style="overflow:visible" inkscape:stockid="InfiniteLineStart" id="InfiniteLineStart"
refX="0" refY="0" orient="auto">
<g id="g4038" transform="translate(-13,0)">
<circle id="circle4040" r="0.80000001" cy="0" cx="3" sodipodi:cx="3" sodipodi:cy="0"
sodipodi:rx="0.80000001" sodipodi:ry="0.80000001" />
<circle id="circle4042" r="0.80000001" cy="0" cx="6.5" sodipodi:cx="6.5" sodipodi:cy="0"
sodipodi:rx="0.80000001" sodipodi:ry="0.80000001" />
<circle id="circle4044" r="0.80000001" cy="0" cx="10" sodipodi:cx="10" sodipodi:cy="0"
sodipodi:rx="0.80000001" sodipodi:ry="0.80000001" />
</g>
</marker>
<marker inkscape:stockid="Scissors" orient="auto" refY="0" refX="0" id="Scissors"
style="overflow:visible">
<path id="schere" style="marker-start:none"
d="M 9.0898857,-3.6061018 C 8.1198849,-4.7769976 6.3697607,-4.7358294 5.0623558,-4.2327734 L -3.1500488,-1.1548705 C -5.5383421,-2.461584 -7.8983361,-2.0874077 -7.8983361,-2.7236578 C -7.8983361,-3.2209742 -7.4416699,-3.11198 -7.5100293,-4.4068519 C -7.5756648,-5.6501286 -8.8736064,-6.5699315 -10.100428,-6.4884954 C -11.327699,-6.49585 -12.599867,-5.5553341 -12.610769,-4.2584343 C -12.702194,-2.9520479 -11.60356,-1.7387447 -10.304005,-1.6532027 C -8.7816644,-1.4265411 -6.085747,-2.3487593 -4.82106,-0.082342643 C -5.7633447,1.6559151 -7.4350844,1.6607341 -8.9465707,1.5737277 C -10.201445,1.5014928 -11.708664,1.8611256 -12.307219,3.0945882 C -12.885586,4.2766744 -12.318421,5.9591904 -10.99047,6.3210002 C -9.6502788,6.8128279 -7.8098011,6.1912892 -7.4910978,4.650276 C -7.2454393,3.462453 -8.0864637,2.9043186 -7.7636052,2.4731223 C -7.5199917,2.1477623 -5.9728246,2.3362771 -3.2164999,1.0982979 L 5.6763468,4.2330688 C 6.8000164,4.5467672 8.1730685,4.5362646 9.1684433,3.4313614 L -0.05164093,-0.053722219 L 9.0898857,-3.6061018 z M -9.2179159,-5.5066058 C -7.9233569,-4.783806 -8.0290767,-2.8230356 -9.3743431,-2.4433169 C -10.590861,-2.0196559 -12.14537,-3.2022863 -11.757521,-4.5207817 C -11.530373,-5.6026336 -10.104134,-6.0014137 -9.2179159,-5.5066058 z M -9.1616516,2.5107591 C -7.8108215,3.0096239 -8.0402087,5.2951947 -9.4138723,5.6023681 C -10.324932,5.9187072 -11.627422,5.4635705 -11.719569,4.3902287 C -11.897178,3.0851737 -10.363484,1.9060805 -9.1616516,2.5107591 z" />
</marker>
<marker inkscape:stockid="Arrow1Mend" orient="auto" refY="0" refX="0" id="Arrow1Mend"
style="overflow:visible">
<path id="path3802" d="M 0,0 L 5,-5 L -12.5,0 L 5,5 L 0,0 z"
style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt;marker-start:none"
transform="matrix(-0.4,0,0,-0.4,-4,0)" />
</marker>
<marker inkscape:stockid="DotL" orient="auto" refY="0" refX="0" id="DotL"
style="overflow:visible">
<path id="path3855"
d="M -2.5,-1 C -2.5,1.76 -4.74,4 -7.5,4 C -10.26,4 -12.5,1.76 -12.5,-1 C -12.5,-3.76 -10.26,-6 -7.5,-6 C -4.74,-6 -2.5,-3.76 -2.5,-1 z"
style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt;marker-start:none;marker-end:none"
transform="matrix(0.8,0,0,0.8,5.92,0.8)" />
</marker>
<marker inkscape:stockid="Arrow1Lstart" orient="auto" refY="0" refX="0" id="Arrow1Lstart"
style="overflow:visible">
<path id="path3793" d="M 0,0 L 5,-5 L -12.5,0 L 5,5 L 0,0 z"
style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt;marker-start:none"
transform="matrix(0.8,0,0,0.8,10,0)" />
</marker>
<linearGradient id="linearGradient10542">
<stop style="stop-color:#810000;stop-opacity:1;" offset="0" id="stop10544" />
<stop style="stop-color:#810000;stop-opacity:0;" offset="1" id="stop10546" />
</linearGradient>
<linearGradient id="linearGradient10534">
<stop id="stop10536" offset="0" style="stop-color:#000000;stop-opacity:1;" />
<stop id="stop10538" offset="1" style="stop-color:#000000;stop-opacity:0;" />
</linearGradient>
<linearGradient id="linearGradient10318">
<stop style="stop-color:#810000;stop-opacity:1" offset="0" id="stop10320" />
<stop style="stop-color:#000000;stop-opacity:0;" offset="1" id="stop10322" />
</linearGradient>
<inkscape:perspective sodipodi:type="inkscape:persp3d" inkscape:vp_x="0 : 526.18109 : 1"
inkscape:vp_y="0 : 1000 : 0" inkscape:vp_z="744.09448 : 526.18109 : 1"
inkscape:persp3d-origin="372.04724 : 350.78739 : 1" id="perspective9" />
</defs>
<g inkscape:groupmode="layer" id="layer3" inkscape:label="flightpaths" style="display:inline"
sodipodi:insensitive="true" transform="translate(-167.99651,-118.55507)">
<path sodipodi:type="arc" id="path2900"
style="fill:#000000;stroke:none;stroke-width:1;stroke-miterlimit:4;stroke-dasharray:4, 1;stroke-dashoffset:0;"
sodipodi:cx="485.25" sodipodi:cy="253" sodipodi:rx="1.5" sodipodi:ry="1.5"
d="M 486.75,253 A 1.5,1.5 0 1 1 483.75,253 A 1.5,1.5 0 1 1 486.75,253 z" />
<path
style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:4, 1;stroke-dashoffset:0;stroke-opacity:1;"
d="M 485.5,253 L 498.5,234" id="path2902" />
<path sodipodi:type="arc" id="path2904"
style="fill:#000000;stroke:none;stroke-width:1;stroke-miterlimit:4;stroke-dasharray:4, 1;stroke-dashoffset:0;"
sodipodi:cx="498.5" sodipodi:cy="234" sodipodi:rx="1.5" sodipodi:ry="1.5"
d="M 500,234 A 1.5,1.5 0 1 1 497,234 A 1.5,1.5 0 1 1 500,234 z" />
<path
style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:4, 1;stroke-dashoffset:0;stroke-opacity:1;"
d="M 498.5,234 L 521.75,247.5" id="path2906" />
<path sodipodi:type="arc" id="path2908"
style="fill:#000000;stroke:none;stroke-width:1;stroke-miterlimit:4;stroke-dasharray:4, 1;stroke-dashoffset:0;"
sodipodi:cx="521.75" sodipodi:cy="247.5" sodipodi:rx="1.5" sodipodi:ry="1.5"
d="M 523.25,247.5 A 1.5,1.5 0 1 1 520.25,247.5 A 1.5,1.5 0 1 1 523.25,247.5 z" />
<path
style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1.20000005;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:4.8, 1.2;stroke-dashoffset:0;stroke-opacity:1;"
d="M 521.75,247.5 L 521.5,281.75" id="path2910" />
<path sodipodi:type="arc" id="path2912"
style="fill:#000000;stroke:none;stroke-width:1;stroke-miterlimit:4;stroke-dasharray:4, 1;stroke-dashoffset:0;"
sodipodi:cx="521.5" sodipodi:cy="281.75" sodipodi:rx="1.5" sodipodi:ry="1.5"
d="M 523,281.75 A 1.5,1.5 0 1 1 520,281.75 A 1.5,1.5 0 1 1 523,281.75 z" />
<path
style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:4, 1;stroke-dashoffset:0;stroke-opacity:1;"
d="M 521.5,281.75 L 485.25,253" id="path2914" />
<path
style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:4, 1;stroke-dashoffset:0;stroke-opacity:1;"
d="M 485.5,253 L 521.75,247.75" id="path2918" />
<path sodipodi:type="arc" id="path4638"
style="fill:#000000;stroke:none;stroke-width:1;stroke-miterlimit:4;stroke-dasharray:4, 1;stroke-dashoffset:0;"
sodipodi:cx="490.25" sodipodi:cy="315.125" sodipodi:rx="1.5" sodipodi:ry="1.5"
d="M 491.75,315.125 A 1.5,1.5 0 1 1 488.75,315.125 A 1.5,1.5 0 1 1 491.75,315.125 z" />
<path
style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:4, 1;stroke-dashoffset:0;stroke-opacity:1;"
d="M 490.25,315.125 L 482.75,302.625" id="path4640" />
<path sodipodi:type="arc" id="path4642"
style="fill:#000000;stroke:none;stroke-width:1;stroke-miterlimit:4;stroke-dasharray:4, 1;stroke-dashoffset:0;"
sodipodi:cx="482.875" sodipodi:cy="302.625" sodipodi:rx="1.5" sodipodi:ry="1.5"
d="M 484.375,302.625 A 1.5,1.5 0 1 1 481.375,302.625 A 1.5,1.5 0 1 1 484.375,302.625 z" />
<path sodipodi:type="arc" id="path4644"
style="fill:#000000;stroke:none;stroke-width:1;stroke-miterlimit:4;stroke-dasharray:4, 1;stroke-dashoffset:0;"
sodipodi:cx="562.85699" sodipodi:cy="371.31311" sodipodi:rx="1.5" sodipodi:ry="1.5"
d="M 564.35699,371.31311 A 1.5,1.5 0 1 1 561.35699,371.31311 A 1.5,1.5 0 1 1 564.35699,371.31311 z" />
<path
style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:4, 1;stroke-dashoffset:0;stroke-opacity:1;"
d="M 562.857,371.3131 L 564.27121,389.52109" id="path4646" />
<path sodipodi:type="arc" id="path4648"
style="fill:#000000;stroke:none;stroke-width:1;stroke-miterlimit:4;stroke-dasharray:4, 1;stroke-dashoffset:0;"
sodipodi:cx="564.448" sodipodi:cy="389.52109" sodipodi:rx="1.5" sodipodi:ry="1.5"
d="M 565.948,389.52109 A 1.5,1.5 0 1 1 562.948,389.52109 A 1.5,1.5 0 1 1 565.948,389.52109 z" />
<path sodipodi:type="arc" id="path4650"
style="fill:#000000;stroke:none;stroke-width:1;stroke-miterlimit:4;stroke-dasharray:4, 1;stroke-dashoffset:0;"
sodipodi:cx="627.55725" sodipodi:cy="431.94751" sodipodi:rx="1.5" sodipodi:ry="1.5"
d="M 629.05725,431.94751 A 1.5,1.5 0 1 1 626.05725,431.94751 A 1.5,1.5 0 1 1 629.05725,431.94751 z" />
<path
style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:4, 1;stroke-dashoffset:0;stroke-opacity:1;"
d="M 627.55727,431.59395 L 619.42554,444.14509" id="path4652" />
<path sodipodi:type="arc" id="path4654"
style="fill:#000000;stroke:none;stroke-width:1;stroke-miterlimit:4;stroke-dasharray:4, 1;stroke-dashoffset:0;"
sodipodi:cx="619.42554" sodipodi:cy="444.14508" sodipodi:rx="1.5" sodipodi:ry="1.5"
d="M 620.92554,444.14508 A 1.5,1.5 0 1 1 617.92554,444.14508 A 1.5,1.5 0 1 1 620.92554,444.14508 z" />
<path sodipodi:type="arc" id="path4656"
style="fill:#000000;stroke:none;stroke-width:1;stroke-miterlimit:4;stroke-dasharray:4, 1;stroke-dashoffset:0;"
sodipodi:cx="792.31317" sodipodi:cy="431.77072" sodipodi:rx="1.5" sodipodi:ry="1.5"
d="M 793.81317,431.77072 A 1.5,1.5 0 1 1 790.81317,431.77072 A 1.5,1.5 0 1 1 793.81317,431.77072 z" />
<path
style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:4, 1;stroke-dashoffset:0;stroke-opacity:1;"
d="M 792.48993,431.77073 L 799.91455,456.69624" id="path4658" />
<path sodipodi:type="arc" id="path4660"
style="fill:#000000;stroke:none;stroke-width:1;stroke-miterlimit:4;stroke-dasharray:4, 1;stroke-dashoffset:0;"
sodipodi:cx="799.91455" sodipodi:cy="456.69623" sodipodi:rx="1.5" sodipodi:ry="1.5"
d="M 801.41455,456.69623 A 1.5,1.5 0 1 1 798.41455,456.69623 A 1.5,1.5 0 1 1 801.41455,456.69623 z" />
<path
style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:4, 1;stroke-dashoffset:0;stroke-opacity:1;"
d="M 799.91455,457.04979 L 818.65288,461.11566 L 818.65288,461.11566 L 818.65288,461.11566"
id="path4662" />
<path sodipodi:type="arc" id="path4664"
style="fill:#000000;stroke:none;stroke-width:1;stroke-miterlimit:4;stroke-dasharray:4, 1;stroke-dashoffset:0;"
sodipodi:cx="475.5293" sodipodi:cy="430.53329" sodipodi:rx="1.5" sodipodi:ry="1.5"
d="M 477.0293,430.53329 A 1.5,1.5 0 1 1 474.0293,430.53329 A 1.5,1.5 0 1 1 477.0293,430.53329 z" />
<path
style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:4, 1;stroke-dashoffset:0;stroke-opacity:1;"
d="M 475.52931,430.53329 L 449.71991,437.95791" id="path4666" />
<path sodipodi:type="arc" id="path4668"
style="fill:#000000;stroke:none;stroke-width:1;stroke-miterlimit:4;stroke-dasharray:4, 1;stroke-dashoffset:0;"
sodipodi:cx="449.71991" sodipodi:cy="437.95792" sodipodi:rx="1.5" sodipodi:ry="1.5"
d="M 451.21991,437.95792 A 1.5,1.5 0 1 1 448.21991,437.95792 A 1.5,1.5 0 1 1 451.21991,437.95792 z" />
<path sodipodi:type="arc" id="path4670"
style="fill:#000000;stroke:none;stroke-width:1;stroke-miterlimit:4;stroke-dasharray:4, 1;stroke-dashoffset:0;"
sodipodi:cx="400.25" sodipodi:cy="179.75" sodipodi:rx="1.5" sodipodi:ry="1.5"
d="M 401.75,179.75 A 1.5,1.5 0 1 1 398.75,179.75 A 1.5,1.5 0 1 1 401.75,179.75 z" />
<path
style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:4, 1;stroke-dashoffset:0;stroke-opacity:1;"
d="M 400.25,179.75 L 384.75,217.25" id="path4672" />
<path sodipodi:type="arc" id="path4674"
style="fill:#000000;stroke:none;stroke-width:1;stroke-miterlimit:4;stroke-dasharray:4, 1;stroke-dashoffset:0;"
sodipodi:cx="384.75" sodipodi:cy="217.25" sodipodi:rx="1.5" sodipodi:ry="1.5"
d="M 386.25,217.25 A 1.5,1.5 0 1 1 383.25,217.25 A 1.5,1.5 0 1 1 386.25,217.25 z" />
<path
style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:4, 1;stroke-dashoffset:0;stroke-opacity:1;"
d="M 400.25,179.5 L 332.25,229.75" id="path4676" />
<path sodipodi:type="arc" id="path4678"
style="fill:#000000;stroke:none;stroke-width:1;stroke-miterlimit:4;stroke-dasharray:4, 1;stroke-dashoffset:0;"
sodipodi:cx="332.25" sodipodi:cy="229.75" sodipodi:rx="1.5" sodipodi:ry="1.5"
d="M 333.75,229.75 A 1.5,1.5 0 1 1 330.75,229.75 A 1.5,1.5 0 1 1 333.75,229.75 z" />
<path
style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:4, 1;stroke-dashoffset:0;stroke-opacity:1;"
d="M 400.25,179.5 L 363.5,187.75 L 363.5,187.75 L 363.5,187.75" id="path4680" />
<path sodipodi:type="arc" id="path4682"
style="fill:#000000;stroke:none;stroke-width:1;stroke-miterlimit:4;stroke-dasharray:4, 1;stroke-dashoffset:0;"
sodipodi:cx="363.5" sodipodi:cy="187.75" sodipodi:rx="1.5" sodipodi:ry="1.5"
d="M 365,187.75 A 1.5,1.5 0 1 1 362,187.75 A 1.5,1.5 0 1 1 365,187.75 z" />
<path sodipodi:type="arc" id="path4684"
style="fill:#000000;stroke:none;stroke-width:1;stroke-miterlimit:4;stroke-dasharray:4, 1;stroke-dashoffset:0;"
sodipodi:cx="472" sodipodi:cy="214.5" sodipodi:rx="1.5" sodipodi:ry="1.5"
d="M 473.5,214.5 A 1.5,1.5 0 1 1 470.5,214.5 A 1.5,1.5 0 1 1 473.5,214.5 z" />
<path
style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:4, 1;stroke-dashoffset:0;stroke-opacity:1;"
d="M 472,214.5 L 451.5,196.75" id="path4686" />
<path sodipodi:type="arc" id="path4688"
style="fill:#000000;stroke:none;stroke-width:1;stroke-miterlimit:4;stroke-dasharray:4, 1;stroke-dashoffset:0;"
sodipodi:cx="451.5" sodipodi:cy="197" sodipodi:rx="1.5" sodipodi:ry="1.5"
d="M 453,197 A 1.5,1.5 0 1 1 450,197 A 1.5,1.5 0 1 1 453,197 z" />
<path sodipodi:type="arc" id="path4690"
style="fill:#000000;stroke:none;stroke-width:1;stroke-miterlimit:4;stroke-dasharray:4, 1;stroke-dashoffset:0;"
sodipodi:cx="823.42584" sodipodi:cy="275.85367" sodipodi:rx="1.5" sodipodi:ry="1.5"
d="M 824.92584,275.85367 A 1.5,1.5 0 1 1 821.92584,275.85367 A 1.5,1.5 0 1 1 824.92584,275.85367 z" />
<path
style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:4, 1;stroke-dashoffset:0;stroke-opacity:1;"
d="M 823.42585,275.85368 L 846.05326,294.59201" id="path4692" />
<path sodipodi:type="arc" id="path4694"
style="fill:#000000;stroke:none;stroke-width:1;stroke-miterlimit:4;stroke-dasharray:4, 1;stroke-dashoffset:0;"
sodipodi:cx="846.05328" sodipodi:cy="294.59201" sodipodi:rx="1.5" sodipodi:ry="1.5"
d="M 847.55328,294.59201 A 1.5,1.5 0 1 1 844.55328,294.59201 A 1.5,1.5 0 1 1 847.55328,294.59201 z" />
<path
style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:4, 1;stroke-dashoffset:0;stroke-opacity:1;"
d="M 846.05326,294.59201 L 813.87991,299.89531" id="path4696" />
<path sodipodi:type="arc" id="path4698"
style="fill:#000000;stroke:none;stroke-width:1;stroke-miterlimit:4;stroke-dasharray:4, 1;stroke-dashoffset:0;"
sodipodi:cx="813.87988" sodipodi:cy="299.89532" sodipodi:rx="1.5" sodipodi:ry="1.5"
d="M 815.37988,299.89532 A 1.5,1.5 0 1 1 812.37988,299.89532 A 1.5,1.5 0 1 1 815.37988,299.89532 z" />
<path sodipodi:type="arc" id="path4700"
style="fill:#000000;stroke:none;stroke-width:1;stroke-miterlimit:4;stroke-dasharray:4, 1;stroke-dashoffset:0;"
sodipodi:cx="823.07227" sodipodi:cy="462.88342" sodipodi:rx="1.5" sodipodi:ry="1.5"
d="M 824.57227,462.88342 A 1.5,1.5 0 1 1 821.57227,462.88342 A 1.5,1.5 0 1 1 824.57227,462.88342 z" />
<path
style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:4, 1;stroke-dashoffset:0;stroke-opacity:1;"
d="M 823.07229,462.88342 L 822.36519,510.61313 L 822.36519,510.61313 L 822.36519,510.61313 L 822.36519,510.61313"
id="path4702" />
<path sodipodi:type="arc" id="path4704"
style="fill:#000000;stroke:none;stroke-width:1;stroke-miterlimit:4;stroke-dasharray:4, 1;stroke-dashoffset:0;"
sodipodi:cx="822.36517" sodipodi:cy="510.61313" sodipodi:rx="1.5" sodipodi:ry="1.5"
d="M 823.86517,510.61313 A 1.5,1.5 0 1 1 820.86517,510.61313 A 1.5,1.5 0 1 1 823.86517,510.61313 z" />
<path
style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:4, 1;stroke-dashoffset:0;stroke-opacity:1;"
d="M 822.36519,510.61313 L 811.05148,502.12785" id="path4706" />
<path sodipodi:type="arc" id="path4708"
style="fill:#000000;stroke:none;stroke-width:1;stroke-miterlimit:4;stroke-dasharray:4, 1;stroke-dashoffset:0;"
sodipodi:cx="811" sodipodi:cy="502.25" sodipodi:rx="1.5" sodipodi:ry="1.5"
d="M 812.5,502.25 A 1.5,1.5 0 1 1 809.5,502.25 A 1.5,1.5 0 1 1 812.5,502.25 z" />
<path sodipodi:type="arc" id="path4710"
style="fill:#000000;stroke:none;stroke-width:1;stroke-miterlimit:4;stroke-dasharray:4, 1;stroke-dashoffset:0;"
sodipodi:cx="836.75" sodipodi:cy="498.625" sodipodi:rx="1.5" sodipodi:ry="1.5"
d="M 838.25,498.625 A 1.5,1.5 0 1 1 835.25,498.625 A 1.5,1.5 0 1 1 838.25,498.625 z" />
<path
style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:4, 1;stroke-dashoffset:0;stroke-opacity:1;"
d="M 836.75,498.625 L 823,462.875 L 823,462.875" id="path4712" />
<path sodipodi:type="arc" id="path4714"
style="fill:#000000;stroke:none;stroke-width:1;stroke-miterlimit:4;stroke-dasharray:4, 1;stroke-dashoffset:0;"
sodipodi:cx="624.02173" sodipodi:cy="498.94586" sodipodi:rx="1.5" sodipodi:ry="1.5"
d="M 625.52173,498.94586 A 1.5,1.5 0 1 1 622.52173,498.94586 A 1.5,1.5 0 1 1 625.52173,498.94586 z" />
<path
style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:4, 1;stroke-dashoffset:0;stroke-opacity:1;"
d="M 624,499 L 632.25,544.75" id="path4716" />
<path sodipodi:type="arc" id="path4718"
style="fill:#000000;stroke:none;stroke-width:1;stroke-miterlimit:4;stroke-dasharray:4, 1;stroke-dashoffset:0;"
sodipodi:cx="632.25" sodipodi:cy="544.75" sodipodi:rx="1.5" sodipodi:ry="1.5"
d="M 633.75,544.75 A 1.5,1.5 0 1 1 630.75,544.75 A 1.5,1.5 0 1 1 633.75,544.75 z" />
<path
style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:4, 1;stroke-dashoffset:0;stroke-opacity:1;"
d="M 632.25,544.75 L 610,560.25" id="path4720" />
<path sodipodi:type="arc" id="path4722"
style="fill:#000000;stroke:none;stroke-width:1;stroke-miterlimit:4;stroke-dasharray:4, 1;stroke-dashoffset:0;"
sodipodi:cx="610" sodipodi:cy="560.25" sodipodi:rx="1.5" sodipodi:ry="1.5"
d="M 611.5,560.25 A 1.5,1.5 0 1 1 608.5,560.25 A 1.5,1.5 0 1 1 611.5,560.25 z" />
<path
style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:4, 1;stroke-dashoffset:0;stroke-opacity:1;"
d="M 196.22213,216.27993 L 177.83736,216.27993" id="path4724" sodipodi:nodetypes="cc" />
<path
style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:4, 1;stroke-dashoffset:0;stroke-opacity:1;)"
d="M 846.40682,218.93158 L 890.24744,219.28514" id="path4726" sodipodi:nodetypes="cc" />
</g>
<g inkscape:groupmode="layer" id="layer2" inkscape:label="path" style="opacity:1;display:inline"
transform="translate(-167.99651,-118.55507)" sodipodi:insensitive="true">
<path
style="fill:#7b147d;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="M 869.74134,495.58711 C 869.74134,495.58711 871.33233,495.41034 871.50911,497.88521 C 871.68589,500.36008 872.39299,502.4814 872.39299,503.54206 C 872.39299,504.60272 873.1001,508.49181 873.1001,508.49181 C 873.1001,508.49181 874.33754,509.90602 875.04464,509.37569 C 875.75175,508.84536 876.81241,508.66859 876.81241,507.43115 C 876.81241,506.19371 877.16596,504.7795 877.51952,505.48661 C 877.87307,506.19371 878.93373,506.72404 878.93373,507.7847 C 878.93373,508.84536 878.75695,509.90602 878.93373,510.96668 C 879.11051,512.02734 880.17117,513.08801 880.17117,513.08801 C 880.17117,513.08801 880.52472,515.20933 880.52472,515.91643 C 880.52472,516.62354 880.87827,517.15387 880.52472,518.92164 C 880.17117,520.6894 880.17117,520.86618 880.34794,522.45717 C 880.52472,524.04816 880.7015,524.75527 881.4086,524.93204 C 882.11571,525.10882 882.11571,525.10882 882.82282,525.10882 C 883.52992,525.10882 883.7067,524.40171 884.23703,525.2856 C 884.76736,526.16948 884.94414,526.69981 886.18157,526.87659 C 887.41901,527.05336 888.47967,526.87659 888.47967,526.87659 C 888.47967,526.87659 889.01,527.76047 889.01,528.82113 C 889.01,529.88179 888.83323,530.23534 889.18678,531.64956 C 889.54033,533.06377 889.54033,533.24055 890.42422,533.41733 C 891.3081,533.5941 891.83843,533.77088 891.83843,533.77088 C 891.83843,533.77088 892.01521,534.65476 892.01521,536.06898 C 892.01521,537.48319 892.36876,538.36707 892.36876,538.36707 L 893.78297,539.42773 C 893.78297,539.42773 894.13653,540.31162 894.84363,541.1955 C 895.55074,542.07938 896.25785,542.25616 896.25785,542.25616 C 896.25785,542.25616 896.78818,543.31682 896.96495,544.2007 C 897.14173,545.08459 896.6114,544.55426 897.67206,545.79169 C 898.73272,547.02913 898.9095,547.38268 898.9095,548.44334 C 898.9095,549.504 899.79338,550.21111 899.43983,551.62532 C 899.08627,553.03954 899.26305,553.56987 899.08627,555.33764 C 898.9095,557.1054 899.26305,554.98408 898.9095,557.98929 C 898.55594,560.99449 898.73272,561.87837 898.55594,562.93903 C 898.37917,563.99969 898.02561,563.11581 897.84884,565.06035 C 897.67206,567.0049 897.49528,568.59589 897.49528,568.59589 C 897.49528,568.59589 896.25785,570.36365 895.37396,570.36365 C 894.49008,570.36365 892.89909,569.65655 892.89909,570.54043 C 892.89909,571.42431 892.01521,572.13142 893.25264,572.48497 C 894.49008,572.83853 894.84363,571.77787 894.84363,573.0153 C 894.84363,574.25274 894.49008,574.6063 893.42942,575.49018 C 892.36876,576.37406 892.36876,576.19729 891.13132,576.90439 C 889.89389,577.6115 890.60099,576.55084 889.71711,578.84894 C 888.83323,581.14703 889.01,581.14703 888.3029,582.03092 C 887.59579,582.9148 887.41901,582.9148 887.06546,583.97546 C 886.7119,585.03612 886.7119,585.38967 886.7119,586.62711 C 886.7119,587.86455 886.35835,588.39488 886.35835,588.39488 C 886.35835,588.39488 884.94414,589.80909 884.94414,591.04653 C 884.94414,592.28396 885.82802,592.81429 885.12091,593.69818 C 884.41381,594.58206 885.12091,594.58206 883.52992,594.75884 C 881.93893,594.93562 881.23183,594.93562 881.23183,594.93562 L 878.75695,595.46595 C 878.75695,595.46595 878.4034,594.40528 877.51952,594.93562 C 876.63563,595.46595 876.98919,595.28917 876.28208,596.17305 C 875.57497,597.05694 875.3982,597.05694 874.51431,597.58727 C 873.63043,598.1176 874.51431,598.29437 873.98398,599.17826 C 873.45365,600.06214 873.27688,600.94602 872.21622,600.41569 C 871.15556,599.88536 870.802,600.06214 870.44845,599.00148 C 870.0949,597.94082 870.62523,597.76404 868.85746,597.23371 C 867.08969,596.70338 866.91291,596.70338 866.91291,596.70338 C 866.91291,596.70338 866.38258,597.05694 866.02903,597.94082 C 865.67548,598.8247 866.20581,599.17826 864.96837,599.70859 C 863.73093,600.23892 863.73093,600.76925 862.4935,599.88536 C 861.25606,599.00148 861.60961,598.64793 860.90251,598.29437 C 860.1954,597.94082 860.37218,598.29437 859.66507,597.58727 C 858.95796,596.88016 857.01342,594.22851 856.83664,593.16785 C 856.65987,592.10719 856.12954,592.10719 856.65987,590.69297 C 857.1902,589.27876 857.1902,588.2181 856.30631,587.68777 C 855.42243,587.15744 855.24565,587.33422 855.24565,586.27356 C 855.24565,585.2129 855.95276,583.09158 855.06888,582.9148 C 854.18499,582.73802 854.18499,582.03092 853.47789,583.09158 C 852.77078,584.15224 851.00301,586.80389 850.82624,585.38967 C 850.64946,583.97546 850.11913,584.15224 851.17979,582.9148 C 852.24045,581.67736 852.24045,581.50059 853.12433,580.6167 C 854.00822,579.73282 854.71532,579.37927 855.06888,578.14183 C 855.42243,576.90439 856.65987,574.78307 855.42243,574.6063 C 854.18499,574.42952 853.47789,572.83853 853.12433,575.13663 C 852.77078,577.43472 853.83144,577.96505 852.24045,578.49538 C 850.64946,579.02571 850.82624,577.96505 849.76558,579.55604 C 848.70492,581.14703 847.46748,582.9148 847.46748,582.9148 C 847.46748,582.9148 846.76037,582.9148 845.34616,580.43993 C 843.93194,577.96505 843.75517,577.78828 843.75517,576.37406 C 843.75517,574.95985 844.2855,574.78307 843.40161,574.25274 C 842.51773,573.72241 841.81062,572.48497 840.57319,572.3082 C 839.33575,572.13142 839.51253,571.95464 837.56798,571.95464 C 835.62344,571.95464 836.50732,571.95464 834.56278,571.95464 C 832.61824,571.95464 832.61824,571.42431 831.55758,572.48497 C 830.49692,573.54563 830.67369,573.89919 829.25948,574.07597 C 827.84527,574.25274 827.49171,573.89919 826.7846,574.6063 C 826.0775,575.3134 824.30973,575.66696 823.60262,575.66696 C 822.89552,575.66696 821.30453,576.02051 820.7742,577.25795 C 820.24387,578.49538 820.24387,578.67216 820.24387,579.37927 C 820.24387,580.08637 821.30453,581.32381 820.42064,581.67736 C 819.53676,582.03092 818.4761,582.20769 817.76899,582.20769 C 817.06189,582.20769 816.00123,582.20769 815.64767,581.50059 C 815.29412,580.79348 816.178,580.6167 814.58701,580.6167 C 812.99602,580.6167 812.99602,580.6167 812.99602,580.6167 C 812.99602,580.6167 812.46569,580.08637 810.52115,580.79348 C 808.57661,581.50059 808.39983,582.03092 807.16239,582.73802 C 805.92495,583.44513 806.63206,582.56125 805.5714,583.62191 C 804.51074,584.68257 803.98041,585.2129 803.2733,585.56645 C 802.5662,585.92 802.91975,585.74323 801.68231,586.27356 C 800.44488,586.80389 801.15198,586.98066 799.56099,587.86455 C 797.97,588.74843 797.97,588.74843 796.37901,588.92521 C 794.78802,589.10198 794.9648,590.16264 793.37381,589.27876 C 791.78282,588.39488 792.48993,588.39488 791.42927,587.51099 C 790.36861,586.62711 789.30795,586.09678 788.42406,585.38967 C 787.54018,584.68257 787.00985,585.03612 787.54018,583.62191 C 788.07051,582.20769 787.89373,582.20769 788.60084,581.32381 C 789.30795,580.43993 790.01505,581.32381 790.19183,579.20249 C 790.36861,577.08117 790.01505,577.43472 790.36861,576.37406 C 790.72216,575.3134 791.60604,575.66696 791.25249,573.89919 C 790.89894,572.13142 790.89894,571.60109 790.19183,571.07076 C 789.48472,570.54043 788.24729,569.65655 788.24729,569.65655 C 788.24729,569.65655 787.18663,570.36365 787.00985,568.06556 C 786.83307,565.76746 786.83307,566.29779 786.83307,564.53002 C 786.83307,562.76226 787.3634,562.58548 786.47952,560.64094 C 785.59563,558.69639 785.0653,559.04995 784.53497,557.81251 C 784.00464,556.57507 783.82787,556.04474 783.65109,554.80731 C 783.47431,553.56987 782.94398,553.74665 783.47431,552.68598 C 784.00464,551.62532 784.53497,551.44855 784.53497,551.44855 C 784.53497,551.44855 784.53497,551.44855 784.53497,550.21111 C 784.53497,548.97367 783.65109,548.44334 785.24208,548.44334 C 786.83307,548.44334 787.3634,549.15045 787.00985,548.44334 C 786.6563,547.73624 787.00985,545.61492 787.00985,545.61492 C 787.00985,545.61492 785.94919,546.4988 785.41886,545.08459 C 784.88853,543.67037 784.3582,543.31682 784.88853,542.07938 C 785.41886,540.84195 785.77241,540.84195 785.94919,539.42773 C 786.12597,538.01352 784.3582,537.65997 786.30274,536.42253 C 788.24729,535.18509 787.3634,535.18509 789.30795,535.00832 C 791.25249,534.83154 790.54538,535.53865 791.78282,534.30121 C 793.02026,533.06377 793.55059,532.71022 794.61125,531.82633 C 795.67191,530.94245 795.31835,529.88179 796.90934,529.70501 C 798.50033,529.52824 797.2629,529.35146 799.38422,529.52824 C 801.50554,529.70501 802.03587,530.23534 803.09653,529.17468 C 804.15719,528.11402 805.92495,526.34626 806.98562,525.63915 C 808.04628,524.93204 808.22305,525.81593 809.10694,524.04816 C 809.99082,522.28039 808.93016,522.28039 810.34437,521.04296 C 811.75859,519.80552 811.93536,520.86618 812.99602,519.45197 C 814.05668,518.03775 813.1728,517.33065 814.76379,517.33065 C 816.35478,517.33065 816.35478,518.92164 816.88511,517.15387 C 817.41544,515.3861 815.64767,515.3861 817.59222,514.679 C 819.53676,513.97189 821.12775,515.03255 821.4813,513.79511 C 821.83486,512.55767 822.36519,510.78991 822.36519,510.78991 C 822.36519,510.78991 824.48651,509.55247 825.19361,509.19892 C 825.90072,508.84536 826.60783,506.37049 827.49171,506.90082 C 828.3756,507.43115 829.96659,508.49181 829.96659,508.49181 L 832.08791,509.72925 C 832.08791,509.72925 832.26468,510.25958 832.79501,508.13826 C 833.32534,506.01694 832.97179,504.95628 833.6789,503.36529 C 834.386,501.7743 834.73956,501.95107 836.15377,501.24397 C 837.56798,500.53686 837.92154,500.18331 838.27509,499.4762 C 838.62864,498.76909 839.6893,498.59232 840.74996,498.76909 C 841.81062,498.94587 842.34095,499.4762 843.22484,498.23876 C 844.10872,497.00133 843.93194,496.64777 844.81583,497.00133 C 845.69971,497.35488 845.16938,497.35488 846.40682,497.70843 C 847.64426,498.06199 848.88169,498.59232 851.35657,498.06199 C 853.83144,497.53166 854.00822,496.29422 854.18499,497.70843 C 854.36177,499.12265 854.36177,499.29942 855.24565,499.29942 C 856.12954,499.29942 856.12954,499.4762 855.59921,500.53686 C 855.06888,501.59752 855.42243,500.89041 854.00822,502.83496 C 852.594,504.7795 851.8869,504.95628 851.71012,506.37049 C 851.53334,507.7847 851.8869,508.66859 851.8869,508.66859 C 851.8869,508.66859 851.17979,510.61313 852.41723,510.61313 C 853.65466,510.61313 853.83144,510.0828 855.42243,509.90602 C 857.01342,509.72925 858.42763,509.55247 858.60441,511.14346 C 858.78119,512.73445 859.84185,515.73966 860.90251,515.91643 C 861.96317,516.09321 861.96317,516.44676 863.73093,516.09321 C 865.4987,515.73966 866.20581,516.62354 866.38258,515.03255 C 866.55936,513.44156 866.55936,513.08801 866.55936,511.85057 C 866.55936,510.61313 864.79159,512.55767 867.08969,509.02214 C 869.38779,505.48661 869.91812,507.7847 869.38779,503.89562 C 868.85746,500.00653 867.7968,500.36008 868.68068,497.88521 C 869.56457,495.41034 869.21101,495.41034 869.74134,495.58711 z"
id="path2406" />
<path
style="fill:#b5b81d;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="M 212.13203,178.98005 C 212.13203,178.98005 214.96046,175.79807 216.72823,176.15162 C 218.496,176.50518 220.61732,176.15162 222.38508,174.73741 C 224.15285,173.3232 226.98128,174.0303 226.98128,174.0303 L 229.1026,175.79807 C 229.1026,175.79807 231.93102,178.6265 233.69879,177.56584 C 235.46656,176.50518 235.46656,179.3336 238.64854,179.68716 C 241.83052,180.04071 243.24473,180.74782 246.42671,181.80848 C 249.60869,182.86914 252.43712,180.04071 255.6191,181.45492 C 258.80108,182.86914 263.75083,185.34401 265.16504,184.28335 C 266.57926,183.22269 266.2257,181.80848 269.40768,182.16203 C 272.58966,182.51558 275.06454,181.45492 275.06454,181.45492 C 275.06454,181.45492 274.71098,179.3336 276.83231,179.68716 C 278.95363,180.04071 281.4285,178.98005 281.4285,178.98005 L 284.61048,178.27294 L 287.08535,178.27294 L 287.43891,180.74782 C 287.43891,180.74782 292.0351,180.04071 294.50997,182.16203 C 296.98485,184.28335 301.58104,188.17244 302.6417,186.05112 C 303.70236,183.9298 301.22749,189.94021 305.82368,190.29376 C 310.41988,190.64731 309.35922,187.11178 311.48054,187.81889 C 313.60186,188.52599 315.36962,189.2331 317.49095,188.17244 C 319.61227,187.11178 322.08714,183.9298 324.20846,185.69757 C 326.32978,187.46533 334.46151,188.52599 334.10795,187.11178 C 333.7544,185.69757 334.10795,181.80848 334.10795,181.80848 L 336.93638,181.80848 L 337.28993,185.69757 C 337.28993,185.69757 341.53258,186.05112 342.23968,183.9298 C 342.94679,181.80848 340.82547,181.10137 340.82547,181.10137 C 340.82547,181.10137 339.0577,178.6265 341.17902,174.38386 C 343.30034,170.14122 344.71456,170.14122 344.71456,166.95924 C 344.71456,163.77725 348.9572,166.95924 348.9572,166.95924 L 349.6643,164.13081 C 349.6643,164.13081 353.19984,163.07015 353.19984,164.48436 C 353.19984,165.89858 351.78562,165.54502 351.43207,168.0199 C 351.07852,170.49477 348.25009,169.08056 348.25009,169.08056 C 348.25009,169.08056 344.00745,175.79807 345.42166,176.50518 C 346.83588,177.21228 347.54298,180.39426 347.18943,182.51558 C 346.83588,184.63691 347.89654,181.45492 348.60364,183.57624 C 349.31075,185.69757 353.19984,183.57624 353.55339,184.99046 C 353.90694,186.40467 350.01786,187.81889 353.90694,188.52599 C 357.79603,189.2331 357.44248,188.17244 358.85669,187.11178 C 360.27091,186.05112 360.62446,182.86914 362.03867,184.99046 C 363.45289,187.11178 362.03867,188.17244 362.03867,188.17244 L 364.15999,188.87955 C 364.15999,188.87955 362.74578,189.94021 363.45289,191.35442 C 364.15999,192.76863 366.28131,191.35442 363.45289,194.18285 C 360.62446,197.01127 357.79603,195.95061 357.79603,195.95061 C 357.79603,195.95061 356.38182,199.48615 354.9676,199.8397 C 353.55339,200.19325 354.2605,202.31457 352.13918,202.31457 C 350.01786,202.31457 349.31075,200.90036 349.31075,200.90036 L 347.18943,199.13259 L 346.48232,201.25391 C 346.48232,201.25391 349.6643,204.43589 348.25009,205.49656 C 346.83588,206.55722 343.6539,206.91077 343.6539,206.91077 C 343.6539,206.91077 333.7544,217.16382 333.04729,219.63869 C 332.34019,222.11356 331.98663,228.83108 331.98663,228.83108 L 333.7544,230.24529 C 333.7544,230.24529 335.16861,232.72017 336.93638,234.48793 C 338.70415,236.2557 339.76481,239.79123 342.59324,239.08413 C 345.42166,238.37702 346.48232,241.559 346.48232,241.559 L 348.60364,240.14479 C 348.60364,240.14479 350.72496,238.90735 351.07852,239.61446 C 351.43207,240.32156 353.55339,241.02867 353.55339,241.02867 C 353.55339,241.02867 355.67471,239.79123 357.61926,239.61446 C 359.5638,239.43768 357.97281,241.20545 357.97281,241.20545 L 353.90694,243.14999 C 353.90694,243.14999 354.79083,245.80164 355.85149,245.44809 C 356.91215,245.09453 357.44248,249.51395 356.20504,250.39784 C 354.9676,251.28172 356.55859,253.04949 356.55859,253.04949 L 357.2657,255.52436 L 359.21025,256.93857 L 359.74058,259.23667 C 359.74058,259.23667 360.44768,255.52436 361.68512,254.64048 C 362.92256,253.75659 363.62966,248.98362 363.09933,247.92296 C 362.569,246.8623 361.68512,246.50875 362.39223,244.91776 C 363.09933,243.32677 362.74578,240.67512 364.51355,241.20545 C 366.28131,241.73578 368.04908,241.559 368.40263,240.32156 C 368.75619,239.08413 368.22586,239.08413 368.40263,238.02347 C 368.57941,236.96281 369.46329,236.60925 370.1704,236.43248 C 370.87751,236.2557 371.40784,236.78603 370.87751,234.31116 C 370.34718,231.83628 370.87751,232.89694 370.1704,231.12918 C 369.46329,229.36141 369.99362,230.42207 369.28652,228.83108 C 368.57941,227.24009 368.04908,224.76521 369.81685,224.58844 C 371.58461,224.41166 369.64007,222.29034 370.87751,221.76001 C 372.11494,221.22968 374.41304,221.93679 373.88271,219.81547 C 373.35238,217.69415 370.70073,213.45151 372.4685,213.27473 C 374.23626,213.09795 376.75,214 376.75,214 L 383,214.375 C 383,214.375 382.375,216.75 384.25,217 C 386.125,217.25 386.375,218.375 387,218.75 C 387.625,219.125 388.625,220 388.375,220.5 C 388.125,221 388.125,221.5 388.25,222.375 C 388.375,223.25 389,224.5 388.5,224.75 C 388,225 387.5,225.75 387.625,226.75 C 387.75,227.75 388.125,229.25 388.125,229.25 C 388.125,229.25 389.125,230.625 390.375,230 C 391.625,229.375 391.25,228.875 392.875,228.125 C 394.5,227.375 394.5,229 395.5,227.375 C 396.5,225.75 396.375,225.5 396.625,224.875 C 396.875,224.25 398.125,222.625 399.125,223.125 C 400.125,223.625 398.80823,228.12397 399.86889,229.71496 C 400.92955,231.30595 402.375,229.125 402.5,229.875 C 402.625,230.625 402.75,231.5 402.875,232.125 C 403,232.75 402.125,233.25 402.875,234.25 C 403.625,235.25 403.75,235.5 403.625,236.25 C 403.5,237 404,237.625 404,237.625 C 404,237.625 405.375,236.375 406,237.875 C 406.625,239.375 406.125,240.25 407.25,240.25 C 408.375,240.25 409.625,242 409.625,242 L 410.125,244.625 L 413,242.625 L 415.75,243.5 C 415.75,243.5 411.9375,245.25 412.6875,247.0625 C 413.4375,248.875 417.3125,244.9375 417.25,247.375 C 417.1875,249.8125 416.75,252.3125 415.8125,252.4375 C 414.875,252.5625 413.375,253.375 413.25,253.9375 C 413.125,254.5 411.375,255.625 410.25,255.875 C 409.125,256.125 410.875,257.125 408.5,257.5 C 406.125,257.875 405.375,257.75 404.875,257.75 C 404.375,257.75 404.375,258.25 403.75,259.375 C 403.125,260.5 403.625,260.875 403,261.375 C 402.375,261.875 405.25,261.375 401.375,262.25 C 397.5,263.125 396.875,263.375 396.875,263.375 C 396.875,263.375 396.625,263.75 395.375,263.75 C 394.125,263.75 393.625,263.125 393.625,263.125 C 393.625,263.125 393.375,262.5 391.625,262.5 C 389.875,262.5 388.25,264.125 388.25,264.125 C 388.25,264.125 387.75,264.75 386.75,264.875 C 385.75,265 384.375,266.25 384.375,266.25 C 384.375,266.25 383,266.625 383.375,268.125 C 383.75,269.625 385.125,271 386,270 C 386.875,269 388.25,265 390.125,265.375 C 392,265.75 394.5,266.5 394,269.25 C 393.5,272 393.375,271.5 393.75,272.875 C 394.125,274.25 395,275 394.875,276.25 C 394.75,277.5 393.625,277.125 395,278.25 C 396.375,279.375 397.875,281.125 398.375,279.5 C 398.875,277.875 399.5,276.75 400.125,277 C 400.75,277.25 402.5,276.5 401.25,279 C 400,281.5 400.25,281.625 399.125,282.375 C 398,283.125 398.125,281.125 396.125,284.125 C 394.125,287.125 395.125,287.75 393,288.625 C 390.875,289.5 390.5,292.25 389.75,291.125 C 389,290 388,290 388.875,288.375 C 389.75,286.75 390.375,287 390.125,285.5 C 389.875,284 390.875,283.875 389.625,283.75 C 388.375,283.625 389,283.625 387.5,284.125 C 386,284.625 386.125,283 384.875,285 C 383.625,287 383.25,286.875 382.375,287.375 C 381.5,287.875 381.875,288.5 381.25,289.25 C 380.625,290 380.375,290.375 379.875,291 C 379.375,291.625 379.25,291.625 379.25,293 C 379.25,294.375 380.375,296.625 380.375,296.625 C 380.375,296.625 379.75,298.375 379,298.75 C 378.25,299.125 378.125,297.875 374.875,301.625 C 371.625,305.375 372,305.75 370,306.625 C 368,307.5 368.25,307.625 368.125,308.125 C 368,308.625 366.625,309.25 367.375,310.375 C 368.125,311.5 367.375,311.75 368.5,312.25 C 369.625,312.75 370.75,311.75 370.625,313.375 C 370.5,315 369.25,316.625 367.25,317.875 C 365.25,319.125 362.625,323 360,323.625 C 357.375,324.25 356.25,325.125 356.375,326.375 C 356.5,327.625 356.375,329.125 355,329.125 C 353.625,329.125 354.5,329.75 354.5,332.75 C 354.5,335.75 354.75,336.625 355.375,337.75 C 356,338.875 356.25,338.875 356.25,340.625 C 356.25,342.375 356.25,343.625 356.125,344.125 C 356,344.625 357.125,344.5 355.25,345.625 C 353.375,346.75 351.75,347.375 351,345.5 C 350.25,343.625 348.75,344.125 348.625,342.625 C 348.5,341.125 349.125,337.5 349.125,337.5 C 349.125,337.5 347.25,337 347,336 C 346.75,335 346,332.625 345.5,332.25 C 345,331.875 344,331 343,331.5 C 342,332 340.25,333 339.625,332.875 C 339,332.75 340.5,333 337,332 C 333.5,331 331.875,330.5 330.375,330.375 C 328.875,330.25 325.375,330.25 324.75,330.375 C 324.125,330.5 318.125,331.875 317.375,331.875 C 316.625,331.875 311.375,333.125 310,334.25 C 308.625,335.375 308.75,337.25 307.25,337.875 C 305.75,338.5 305.25,338.75 305.25,338.75 C 305.25,338.75 303.75,340.5 303.625,341.5 C 303.5,342.5 302.25,344.25 301.625,344.625 C 301,345 300.875,344.875 301.25,346 C 300.7489,348.79276 300.36384,351.46949 301.5,352.625 L 301.625,354.875 L 303.125,357.5 C 303.125,357.5 305.375,360.75 308.25,359.875 C 311.125,359 309.75,359.625 312.125,358.5 C 314.5,357.375 313.75,359.75 315,357.25 C 316.25,354.75 315.375,354.5 316.75,354 C 318.125,353.5 317.375,353 319.125,353.5 C 320.875,354 319.25,354.125 321.5,354.25 C 323.75,354.375 324,351.875 323.75,354.75 C 323.5,357.625 323.25,357.75 323,358.5 C 322.75,359.25 323.375,358.375 322.5,360 C 321.625,361.625 321.125,361.75 320.5,362.125 C 319.875,362.5 319.5,362.75 319.5,363.875 C 319.5,365 319.75,365.875 318.625,366.375 C 317.5,366.875 316.375,366.25 316.625,367.625 C 316.875,369 316.5,369.375 317.5,370 C 318.5,370.625 319.25,370.75 319.875,371.875 C 320.5,373 320.75,374.375 320.5,374.875 C 320.25,375.375 320.375,377 319.625,377.375 C 318.875,377.75 317.875,377.5 317.875,379.125 C 317.875,380.75 318.625,382 317.875,382.375 C 317.125,382.75 315.875,381.875 315.625,382.75 C 315.375,383.625 315.25,384.375 315.125,385.125 C 315,385.875 314.375,386 314.375,386.5 C 314.375,387 314.375,386.75 314.375,388.125 C 314.375,389.5 313.5,390.375 314.75,390.625 C 316,390.875 316.625,391.25 317.25,390.875 C 317.875,390.5 318.625,390.375 319.125,390 C 319.625,389.625 320.375,388.625 321.125,388.625 C 321.875,388.625 323.375,389 323.375,389 C 323.375,389 324.125,390.875 324,391.5 C 323.875,392.125 324.375,392 324.25,393.5 C 324.125,395 324.125,396.125 323.875,396.625 C 323.625,397.125 323.25,397.625 323,398.125 C 322.75,398.625 323,398.625 322.75,399.375 C 322.5,400.125 322.875,401.25 322.25,400.75 C 321.625,400.25 322,400.25 321.625,399.75 C 321.25,399.25 321,398.625 320.25,397.375 C 319.5,396.125 319.625,396.875 318.125,396.125 C 316.625,395.375 316.75,394.5 315.75,395 C 314.75,395.5 315.125,396.375 314,395.625 C 312.875,394.875 312.5,394.875 311.875,393.875 C 311.25,392.875 311.375,393 311,392.25 C 310.625,391.5 309.625,392 309.625,390.625 C 309.625,389.25 310,389 309.625,388.25 C 309.25,387.5 308.875,387.125 308.625,386.5 C 308.375,385.875 308.25,386.375 308.25,385.125 C 308.25,383.875 308.25,383 308.25,382.5 C 308.25,382 307.75,380 307.75,380 L 307.125,378.75 C 307.125,378.75 307,378.625 306.5,377.875 C 306,377.125 306,377.5 305.625,376.25 C 305.25,375 304.375,373.5 304.125,372.5 C 303.875,371.5 302.5,370.25 298.375,368.75 C 294.25,367.25 294.5,366.875 291,366.125 C 287.5,365.375 286.25,364.75 286.25,363.25 C 286.25,361.75 286.25,361.25 285.375,360.75 C 284.5,360.25 283.625,360.125 284,359.25 C 284.375,358.375 285,358.25 285.625,357.125 C 286.25,356 286.375,355.75 286.375,354.875 C 286.375,354 286.75,353.875 285.375,353.25 C 284,352.625 281.25,350.25 281.25,350.25 C 281.25,350.25 282.875,349.875 279.375,350.375 C 275.875,350.875 275.625,352.875 274.625,351.625 C 273.625,350.375 275.375,346 274.125,345.375 C 272.875,344.75 273,345.625 272.25,344 C 271.5,342.375 272.125,341 271.75,339.625 C 271.375,338.25 271.75,340.375 270.75,335.75 C 269.75,331.125 271.625,332.375 269.375,329.75 C 267.125,327.125 264.375,327.375 264.125,325.25 C 263.875,323.125 264.5,321.25 264,319.125 C 263.5,317 263.25,317.5 263.25,315.625 C 263.25,313.75 260.375,310.125 259,308.125 C 257.625,306.125 257.625,300.75 257.875,299.375 C 258.125,298 257.625,293 258.5,290.875 C 259.375,288.75 259.375,285.75 260,282.875 C 260.625,280 259.875,280.625 261.375,277 C 262.875,273.375 262.75,275.75 263,272.625 C 263.25,269.5 264.25,271.375 264.375,268.75 C 264.5,266.125 265,264.875 264.125,263.625 C 263.25,262.375 262,263.25 261.75,260.875 C 261.5,258.5 262.75,257.375 261.375,254.75 C 260,252.125 260,253.25 259.75,251.25 C 259.5,249.25 258.375,249.125 257.75,248.25 C 257.125,247.375 257.375,248.125 256.875,245.875 C 256.375,243.625 255.125,243.5 254.5,242.25 C 253.875,241 254,242.375 253.625,240.25 C 253.25,238.125 252.5,238.375 251.875,237.75 C 251.25,237.125 250.375,237 250.75,235.875 C 251.125,234.75 251.375,234.75 251,233.625 C 250.625,232.5 249,231.875 248.5,230.75 C 248,229.625 248,230.5 248,228.75 C 248,227 248.5,226.75 247,226.25 C 245.5,225.75 244.5,227 243.75,225.375 C 243,223.75 243.125,224.625 241.625,224.375 C 240.125,224.125 239.5,224.25 239,223.25 C 238.5,222.25 238.25,221.375 237.25,221.375 C 236.25,221.375 235,221 234.75,220.375 C 234.5,219.75 233.125,218 232.25,218 C 231.375,218 231.625,218.625 230.25,219.25 C 228.875,219.875 232.75,220.5 229.75,221.25 C 226.75,222 225.375,222.25 224.75,221.75 C 224.125,221.25 221.875,222.875 222.25,221 C 222.625,219.125 222.75,219.375 223.375,218.875 C 224,218.375 225.75,218.25 225,217.75 C 224.25,217.25 224.625,216.375 222,217 C 219.375,217.625 218.625,217.875 217.75,218.5 C 216.875,219.125 216.875,220.375 216.5,221.125 C 216.125,221.875 217.625,221.625 214.75,222.875 C 211.875,224.125 213.375,222.25 210.375,224.875 C 207.375,227.5 208.375,227.75 206.125,228.125 C 203.875,228.5 205.25,228.125 203.5,230 C 201.75,231.875 202,232.75 200.25,232.75 C 198.5,232.75 199.125,235.875 197.5,233.75 C 195.875,231.625 194.75,232.5 196,231.5 C 197.25,230.5 197.5,230.75 198.5,230.5 C 199.5,230.25 199,230.875 200.125,229.25 C 201.25,227.625 201,227 202.75,226.875 C 204.5,226.75 204.25,228.375 205,226 C 205.75,223.625 205,223.75 206.375,222.5 C 207.75,221.25 209.25,220 207.5,219.875 C 205.75,219.75 205.625,219.375 204,220.125 C 202.375,220.875 202.25,221.25 200.75,221 C 199.25,220.75 198.875,220.625 198.875,220 C 198.875,219.375 198.25,217.375 198.25,217.375 C 198.25,217.375 199.5,216.75 197.375,216.25 C 195.25,215.75 195.125,217.375 195.25,215.75 C 195.375,214.125 196.375,214.375 195.5,213.625 C 194.625,212.875 194.375,212.375 193.25,212.875 C 192.125,213.375 190.875,214.625 191.625,212.75 C 192.375,210.875 193.875,210.125 194.375,209.375 C 194.875,208.625 195.625,206.5 195.875,205.375 C 196.125,204.25 194.875,204.875 196.375,203.75 C 197.875,202.625 197.25,202.375 199.125,202.5 C 201,202.625 200.5,202.5 201.75,203.125 C 203,203.75 203.375,204.125 204.125,203.75 C 204.875,203.375 205.625,202.5 206.125,201.875 C 206.625,201.25 207.25,200.875 207.375,200.125 C 207.5,199.375 208.125,198.625 206.75,199.125 C 205.375,199.625 205.875,199.625 204,200 C 202.125,200.375 202.375,201.75 201.625,200.125 C 200.875,198.5 200.75,197.75 200.75,197.75 C 200.75,197.75 200,197.75 200.125,196 C 200.25,194.25 199,191.375 202.375,190.5 C 205.75,189.625 207.875,190.375 208,190.875 C 208.125,191.375 207,191.875 208.5,192 C 210,192.125 210.125,192.5 211,191.25 C 211.875,190 212.875,190.125 211.875,189.625 C 210.875,189.125 210,189.25 209.5,188.25 C 209,187.25 209.5,187 209,185.625 C 208.5,184.25 208.5,184 207.75,183 C 207,182 205,180.5 207.5,179.875 C 210,179.25 212.625,178.625 212.13203,178.98005 z"
id="path2388"
sodipodi:nodetypes="cssccsssssscsccccssssssscccscssccsscsssssssccsscsscccscsccssccscsccssccccssssssssssssssccsssssscsssssssssscssccccsssssssssscscscscssssssssssssssssssssssscsssssssssssssssssscsssssssssscssccccssssssssssssssssssssssssssscssssssssssssssssssccssssssssssscsssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssscsssssssssssssssscssssssssssc" />
<path
style="opacity:1;fill:#2293ac;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
d="M 519.90026,234.84149 C 519.36993,233.78083 519.90026,233.9576 519.01638,233.07372 C 518.13249,232.18984 517.42539,231.83628 517.95572,230.42207 C 518.48605,229.00786 517.60216,228.12397 519.01638,227.77042 C 520.43059,227.41687 520.25381,229.36141 520.60737,226.88653 C 520.96092,224.41166 519.90026,225.11877 521.31448,223.52778 C 522.72869,221.93679 522.90547,221.58323 522.90547,221.58323 C 522.90547,221.58323 523.78935,221.58323 524.1429,222.82067 C 524.49646,224.05811 524.49646,225.11877 525.20356,224.23488 C 525.91067,223.351 526.08745,222.29034 526.61778,221.58323 C 527.14811,220.87613 528.03199,219.99224 528.03199,219.99224 C 528.03199,219.99224 526.441,217.34059 528.38554,217.51737 C 530.33009,217.69415 530.33009,218.0477 530.86042,217.34059 C 531.39075,216.63349 531.21397,216.63349 532.45141,216.27993 C 533.68884,215.92638 533.86562,216.10316 534.0424,215.0425 C 534.21917,213.98184 534.7495,213.98184 535.45661,213.27473 C 536.16372,212.56762 536.16372,212.21407 536.34049,210.79986 C 536.51727,209.38564 536.16372,209.56242 537.75471,207.4411 C 539.3457,205.31978 539.3457,205.49655 539.87603,204.08234 C 540.40636,202.66813 540.40636,202.8449 540.93669,201.96102 C 541.46702,201.07714 542.17413,201.43069 542.70446,200.72358 C 543.23479,200.01648 543.41156,199.13259 543.41156,199.13259 L 544.29545,197.5416 C 544.29545,197.5416 542.52768,196.8345 544.11867,196.12739 C 545.70966,195.42028 545.88644,195.24351 547.12387,194.88995 C 548.36131,194.5364 549.24519,194.5364 549.24519,194.5364 C 549.24519,194.5364 550.39424,196.21578 550.57102,194.97834 C 550.7478,193.7409 550.04069,193.56413 551.10135,192.76863 C 552.16201,191.97314 552.78073,192.06153 553.13428,192.32669 C 553.48783,192.59186 553.31106,192.85702 554.10655,192.68024 C 554.90205,192.50347 555.78593,193.56413 556.0511,192.32669 C 556.31626,191.08925 554.90205,190.11698 556.58143,189.40988 C 558.2608,188.70277 559.14469,189.32149 559.67502,188.79116 C 560.20535,188.26083 559.40985,187.99566 560.47051,187.46533 C 561.53117,186.935 561.88473,187.20017 562.94539,186.84661 C 564.00605,186.49306 564.09444,185.34401 564.62477,185.25562 C 565.1551,185.16723 565.8622,185.25562 566.39253,185.78595 C 566.92286,186.31628 565.42026,186.75822 567.54158,186.40467 C 569.6629,186.05112 572.49133,184.72529 573.28682,185.34401 C 574.08232,185.96273 573.37521,187.02339 574.43587,187.02339 C 575.49653,187.02339 576.55719,186.58145 577.08752,186.935 C 577.61785,187.28855 577.52946,187.55372 578.32496,187.90727 C 579.12045,188.26083 579.20884,188.17244 580.44628,188.26083 C 581.68372,188.34922 580.71145,187.90727 581.41855,188.17244 C 582.12566,188.4376 582.39082,188.96793 583.3631,189.32149 C 584.33537,189.67504 584.60053,189.40988 585.74958,189.49826 C 586.89863,189.58665 586.27991,190.02859 587.60574,190.38215 C 588.93156,190.7357 589.01995,190.47054 590.69933,190.47054 C 592.37871,190.47054 594.41164,190.38215 595.38391,190.64731 C 596.35618,190.91248 596.17941,191.5312 597.50523,191.44281 C 598.83106,191.35442 598.65428,189.85182 602.01304,192.06153 C 605.37179,194.27123 605.28341,194.71318 606.0789,195.42028 C 606.8744,196.12739 607.22795,196.56933 607.31634,197.71838 C 607.40473,198.86743 607.75828,199.04421 607.22795,199.66292 C 606.69762,200.28164 605.19502,201.07714 604.04597,201.3423 C 602.89692,201.60747 600.7756,202.04941 599.89172,202.04941 C 599.00783,202.04941 597.94717,202.04941 595.73746,202.04941 C 593.52776,202.04941 590.69933,201.69586 589.3735,201.51908 C 588.04768,201.3423 586.45669,201.96102 586.3683,202.40296 C 586.27991,202.8449 585.92636,203.28685 586.27991,203.6404 C 586.63346,203.99395 587.51735,204.87784 588.31284,205.23139 C 589.10834,205.58494 589.63867,206.11527 589.90383,206.46883 C 590.169,206.82238 591.40644,206.73399 591.84838,206.73399 C 592.29032,206.73399 592.99743,207.35271 593.1742,207.79465 C 593.35098,208.23659 593.08581,208.67854 593.35098,209.03209 C 593.61614,209.38564 594.14647,209.03209 594.14647,210.53469 C 594.14647,212.03729 594.14647,211.9489 594.14647,212.65601 C 594.14647,213.36312 593.79292,213.89345 594.85358,213.80506 C 595.91424,213.71667 595.64908,213.62828 596.70974,213.62828 C 597.7704,213.62828 597.41684,215.0425 598.83106,213.53989 C 600.24527,212.03729 600.42205,211.9489 600.24527,211.59535 C 600.06849,211.2418 599.89172,210.53469 599.273,209.56242 C 598.65428,208.59015 597.59362,207.88304 598.56589,207.52949 C 599.53816,207.17593 598.83106,206.20366 600.15688,207.08754 C 601.48271,207.97143 601.04077,208.59015 602.18981,208.59015 C 603.33886,208.59015 603.42725,209.47403 605.01824,207.97143 C 606.60923,206.46883 606.43245,205.9385 607.40473,205.85011 C 608.377,205.76172 608.81894,205.9385 609.79121,205.40817 C 610.76348,204.87784 611.3822,203.46362 612.35447,203.55201 C 613.32675,203.6404 614.12224,204.52428 614.29902,203.72879 C 614.47579,202.93329 614.82935,202.57974 613.94546,201.96102 C 613.06158,201.3423 612.61964,201.60747 612.35447,200.81197 C 612.08931,200.01648 612.26609,199.92809 612.26609,199.22098 C 612.26609,198.51388 612.97319,197.27644 612.35447,196.56933 C 611.73576,195.86222 611.55898,195.95061 611.29381,195.15512 C 611.02865,194.35962 610.23315,193.65252 611.11704,193.56413 C 612.00092,193.47574 611.91253,193.29896 613.14997,193.47574 C 614.38741,193.65252 615.80162,192.14991 616.50873,192.85702 C 617.21583,193.56413 617.21583,193.91768 617.83455,194.80156 C 618.45327,195.68545 618.89521,196.21578 619.51393,196.48094 C 620.13265,196.74611 620.75137,195.95061 620.13265,197.36483 C 619.51393,198.77904 619.51393,198.16032 619.51393,199.22098 C 619.51393,200.28164 619.16038,201.07714 620.83976,200.19325 C 622.51913,199.30937 621.81203,199.75131 622.69591,198.51388 C 623.57979,197.27644 626.05467,196.56933 626.67339,196.21578 C 627.2921,195.86222 629.67859,193.56413 629.67859,193.56413 C 629.67859,193.56413 630.29731,192.06153 631.62313,192.32669 C 632.94896,192.59186 632.77218,193.21057 634.62834,191.44281 C 636.48449,189.67504 636.48449,189.32149 637.81032,190.20537 C 639.13614,191.08925 639.04775,191.35442 640.10841,191.35442 C 641.16908,191.35442 642.40651,190.64731 643.37878,191.00087 C 644.35106,191.35442 644.26267,192.85702 645.58849,192.2383 C 646.91432,191.61958 647.00271,192.85702 648.06337,191.26603 C 649.12403,189.67504 649.47758,189.40988 649.83113,188.70277 C 650.18469,187.99566 651.06857,186.84661 652.3944,187.11178 C 653.72022,187.37694 653.98539,187.64211 655.04605,187.81888 C 656.10671,187.99566 657.07898,188.08405 658.05125,188.08405 C 659.02352,188.08405 660.34935,187.28855 661.05645,188.17244 C 661.76356,189.05632 662.02873,189.58665 662.73583,190.02859 C 663.44294,190.47054 664.15005,197.18805 664.15005,197.18805 C 664.15005,197.18805 664.32682,200.54681 663.79649,201.25391 C 663.26616,201.96102 663.26616,205.143 663.26616,205.143 L 662.02872,207.26432 L 660.08418,212.03729 C 660.08418,212.03729 658.84674,215.92638 659.02352,216.81026 C 659.2003,217.69415 660.08418,219.63869 660.08418,219.63869 C 660.08418,219.63869 659.02352,221.22968 659.55385,222.11356 C 660.08418,222.99745 660.79129,225.29554 660.79129,226.53298 C 660.79129,227.77042 660.79129,230.42207 660.79129,231.30595 C 660.79129,232.18984 660.79129,235.37182 660.79129,235.37182 C 660.79129,235.37182 662.55905,235.72537 662.55905,236.60925 C 662.55905,237.49314 662.55905,238.90735 661.85195,240.14479 C 661.14484,241.38222 660.26096,241.91255 660.08418,243.50354 C 659.9074,245.09453 660.08418,246.50875 660.08418,246.50875 L 661.49839,247.21585 L 664.68038,249.33718 C 664.68038,249.33718 666.27137,249.33718 666.44814,250.57461 C 666.62492,251.81205 667.33203,252.34238 666.62492,253.75659 C 665.91781,255.17081 664.15005,256.05469 664.32682,256.93857 C 664.5036,257.82246 664.85715,258.17601 665.03393,259.41345 C 665.21071,260.65088 665.74104,260.82766 665.74104,262.59543 C 665.74104,264.36319 666.8017,265.42385 665.74104,265.95418 C 664.68038,266.48451 664.5036,266.83807 663.61972,267.19162 C 662.73583,267.54517 659.55385,267.54517 659.37707,268.78261 C 659.2003,270.02005 659.02352,270.3736 658.31641,271.78782 C 657.60931,273.20203 657.43253,273.55558 656.54865,273.73236 C 655.66476,273.90914 655.31121,273.73236 654.42733,273.55558 C 653.54344,273.37881 651.95245,272.6717 651.95245,272.6717 L 650.53824,272.49492 L 649.3008,271.25749 C 649.3008,271.25749 648.5937,271.78782 647.88659,272.14137 C 647.17948,272.49492 645.58849,273.90914 645.58849,273.90914 C 645.58849,273.90914 643.11362,274.61624 642.40651,274.61624 C 641.6994,274.61624 641.6994,274.43947 640.9923,274.61624 C 640.28519,274.79302 639.04775,274.61624 638.51742,275.32335 C 637.98709,276.03046 639.22453,276.73756 636.57288,276.91434 C 633.92123,277.09112 633.92123,277.09112 633.21412,277.09112 C 632.50702,277.09112 631.26958,280.80343 631.26958,280.80343 C 631.26958,280.80343 632.68379,282.04086 631.62313,282.39442 C 630.56247,282.74797 629.85537,283.80863 629.32504,284.51574 C 628.79471,285.22284 628.44115,285.75317 628.61793,286.63706 C 628.79471,287.52094 628.61793,288.05127 628.97148,289.11193 C 629.32504,290.17259 630.20892,292.29391 630.20892,292.29391 C 630.20892,292.29391 630.91603,292.64747 630.73925,293.70813 C 630.56247,294.76879 630.03214,295.29912 630.56247,296.183 C 631.0928,297.06688 632.15346,297.42044 632.15346,297.42044 L 633.21412,298.83465 C 633.21412,298.83465 634.62834,298.4811 634.62834,299.71853 C 634.62834,300.95597 634.80511,301.4863 634.98189,302.90051 C 635.15867,304.31473 634.62834,305.72894 634.62834,305.72894 C 634.62834,305.72894 634.27478,306.43605 633.21412,306.7896 C 632.15346,307.14315 631.79991,306.96638 631.44636,307.67348 C 631.0928,308.38059 631.26958,308.55737 631.0928,309.44125 C 630.91603,310.32514 629.14826,313.15356 629.14826,313.15356 L 630.3857,312.0929 C 630.3857,312.0929 631.0928,313.15356 630.91603,314.21422 C 630.73925,315.27488 630.3857,315.45166 630.56247,316.15877 C 630.73925,316.86587 631.44636,317.21943 631.44636,317.21943 L 632.50702,317.57298 C 632.50702,317.57298 633.75,319 633.5,320.5 C 633.25,322 633.875,322.25 634,322.875 C 634.125,323.5 633.75,323.125 634.5,324.625 C 635.25,326.125 635.75,326.125 636.875,326.5 C 638,326.875 638.5,326.875 638.5,326.875 C 638.5,326.875 639.5,328.125 638.75,328.625 C 638,329.125 637.375,328.625 637.25,329.625 C 637.125,330.625 637.125,330.75 637.125,332.25 C 637.125,333.75 637.375,334.625 637.125,335.125 C 636.875,335.625 636.75,335.875 636.75,336.625 C 636.75,337.375 637.625,338 637.625,338 C 637.625,338 638.25,339 638.25,339.625 C 638.25,340.25 638,340.5 637.5,341 C 637,341.5 636.25,341.375 636.25,341.375 C 636.25,341.375 635.375,341.375 635.25,342.25 C 635.125,343.125 637,343.125 634.875,343.5 C 634.875,343.5 633.625,343.625 633,343.75 C 632.375,343.875 631.75,343.5 631.125,344 C 630.5,344.5 630.5,344.875 629.625,345 C 628.75,345.125 628.875,345 627.875,345.125 C 626.875,345.25 626.125,346.125 626.125,346.125 C 626.125,346.125 626.375,346.625 624.75,346.5 C 623.125,346.375 622.5,346.75 622.5,346.75 C 622.5,346.75 622.5,348.25 621.125,347.25 C 619.75,346.25 619.125,346.25 619.125,345.75 C 619.125,345.25 619.75,344.75 620.25,344.25 C 620.75,343.75 621.25,343.5 621.625,343 C 622,342.5 622.25,341.75 622.25,341.75 C 622.25,341.75 621.875,344.375 621.5,341.5 C 621.125,338.625 621.5,338.625 620.75,338.5 C 620,338.375 620.125,338.625 619.25,337.875 C 618.375,337.125 617.875,336.5 617.375,336.125 C 616.875,335.75 617.25,335.25 616.125,335.25 C 615,335.25 615.625,334.5 614.75,333.625 C 613.875,332.75 613.125,332.25 613.125,332.25 L 613.75,330.75 C 613.75,330.75 613.625,330.5 612.5,330.625 C 611.375,330.75 611.125,330.75 610.625,331 C 610.125,331.25 610.25,332.75 609.625,331.625 C 609,330.5 609.25,330.25 608.625,329.625 C 608,329 606.875,328.375 606.875,327.625 C 606.875,326.875 607.625,326.125 607,325.875 C 606.375,325.625 605.875,326.25 605.625,325.25 C 605.375,324.25 605,323.5 605,323.5 L 604.125,323 L 604.625,321.75 C 604.625,321.75 605.25,321 605.375,320.125 C 605.5,319.25 604.375,319.25 606,319 C 607.625,318.75 607.75,319.25 608.625,318.375 C 609.5,317.5 610.125,316.875 610.125,316.875 C 610.125,316.875 610.75,316.125 610.375,315.625 C 610,315.125 609.75,314.875 609.125,315.25 C 608.5,315.625 608.125,316.125 608.125,316.125 C 608.125,316.125 607.875,316.375 606.5,316.375 C 605.125,316.375 605.625,316.125 604.375,316.375 C 603.125,316.625 602.625,316.75 602,317 C 601.375,317.25 600.875,317.25 600.125,317.5 C 599.375,317.75 599.5,317.625 598.625,318.25 C 597.75,318.875 596.875,319.875 596.875,319.875 C 596.875,319.875 596.375,320.125 597,320.875 C 597.625,321.625 598.375,322.375 599,322.375 C 599.625,322.375 600.125,321.75 600.375,322.25 C 600.625,322.75 601.125,323.125 600.75,324 C 600.375,324.875 600.625,324.875 600,325.375 C 599.375,325.875 599,326.125 598.5,326.375 C 598,326.625 597.75,326.625 597.25,327.5 C 596.75,328.375 597.5,330.25 596,329.5 C 594.5,328.75 595.125,328.875 594.125,328.25 C 593.125,327.625 592.75,327.75 592.375,326.875 C 592,326 592,325.875 591.875,325 C 591.75,324.125 591.5,323.5 591.25,322.5 C 591,321.5 591.125,321 590.375,320.75 C 589.625,320.5 589.125,320 588.375,320 C 587.625,320 588.25,319.625 586.625,320 C 585,320.375 584.5,320.125 584.125,320.625 C 583.75,321.125 583.5,323.5 583.5,323.5 C 583.5,323.5 583.75,323.875 583,324.625 C 582.25,325.375 581.25,325.5 581.25,325.5 L 580.25,326.25 C 580.25,326.25 579.125,327 579.625,327.75 C 580.125,328.5 580.75,329.125 580.5,329.625 C 580.25,330.125 580.375,330.125 579.75,330.625 C 579.125,331.125 578.75,331 578.75,332.125 C 578.75,333.25 579.625,333.5 579,334.5 C 578.375,335.5 578.625,335.375 578.125,336.125 C 577.625,336.875 577.375,337.5 577.125,338.25 C 576.875,339 577.625,339.125 576.75,339.875 C 575.875,340.625 575.625,340.25 575.375,341.125 C 575.125,342 575.5,342 575,342.625 C 574.5,343.25 574.5,343.625 574,344 C 573.5,344.375 573.5,344.25 572.875,345 C 572.25,345.75 572.75,346.125 572.25,346.75 C 571.75,347.375 571.375,346.875 571.125,347.75 C 570.875,348.625 571.125,348.25 571.25,349.125 C 571.375,350 572,350 571.25,351 C 570.5,352 570.125,352.625 569.625,353 C 569.125,353.375 569.125,352.875 568.75,354 C 568.375,355.125 569,355.5 568.25,355.75 C 567.5,356 567.125,356 566.375,356.125 C 565.625,356.25 565.25,356 564.75,356.125 C 564.25,356.25 564,356.125 563.625,356.75 C 563.25,357.375 562.875,357.25 563.375,358 C 563.875,358.75 563.75,358.75 564.25,359.25 C 564.75,359.75 565.125,360.125 565.625,360.625 C 566.125,361.125 566.5,361.375 566.625,362 C 566.75,362.625 566.75,363.125 566.75,363.125 C 566.75,363.125 567.375,365 566.875,365.25 C 566.375,365.5 565.875,365.5 565.75,366.25 C 565.625,367 565.5,366.75 565.75,367.625 C 566,368.5 565.75,368.5 566.25,369 C 566.75,369.5 566.875,369.5 567.625,370.25 C 568.375,371 569.25,371.125 568.75,371.75 C 568.25,372.375 567.625,372.5 566.875,372.25 C 566.125,372 565.75,372.625 565.25,371.5 C 564.75,370.375 564.5,370.125 564.5,370.125 C 564.5,370.125 563.75,370.25 563.75,370.875 C 563.75,371.5 565.625,371.625 563.25,371.625 C 560.875,371.625 561.125,372.375 560.5,371.625 C 559.875,370.875 560.375,370.625 559.5,370.375 C 558.625,370.125 558.5,370.875 558.125,370.125 C 557.75,369.375 557.625,369.375 557.625,368.25 C 557.625,367.125 558.25,367.125 557.875,365.625 C 557.5,364.125 557.25,364.5 557,363.625 C 556.75,362.75 557,362.75 557,361.625 C 557,360.5 556.625,360 556.625,360 C 556.625,360 556.25,359.75 556,358.5 C 555.75,357.25 555.875,357.125 555.625,356 C 555.375,354.875 555.5,354.5 554.875,354.5 C 554.25,354.5 554.625,355 553.625,354.25 C 552.625,353.5 553.125,353.25 552.25,352.875 C 551.375,352.5 551.25,353.25 551,352 C 550.75,350.75 550.75,351.375 550.75,349.875 C 550.75,348.375 550.75,347.875 550.75,347.25 C 550.75,346.625 551.25,346.625 550.5,345.625 C 549.75,344.625 549.875,344.375 549,344.25 C 548.125,344.125 548.375,345.125 547.625,343.875 C 546.875,342.625 546.75,341.875 545.75,341.625 C 544.75,341.375 544.875,342 544.375,341.375 C 543.875,340.75 544.125,340.625 543.5,340 C 542.875,339.375 543.625,339.125 542,339.125 C 540.375,339.125 540.375,338.25 539.5,338.625 C 538.625,339 538.375,339.625 538.375,340.25 C 538.375,340.875 538.375,340.875 538.5,341.75 C 538.625,342.625 538.375,343.125 539,343.25 C 539.625,343.375 539.625,342.75 539.75,343.875 C 539.875,345 539.625,346.125 541.125,345.5 C 542.625,344.875 543.5,344 543.625,344.75 C 543.75,345.5 543.5,345.625 543.75,346.625 C 544,347.625 543.75,348.5 544.625,349.125 C 545.5,349.75 545.875,349.75 546.25,350.25 C 546.625,350.75 546.5,350.625 547,350.875 C 547.5,351.125 547.5,352.25 548.125,353.125 C 548.75,354 549.5,353.25 549.125,354.375 C 548.75,355.5 548.75,356 548.25,356.375 C 547.75,356.75 546.625,357.125 545.875,356.5 C 545.125,355.875 544.5,355.375 544.5,355.375 C 544.5,355.375 545.125,354.125 543.625,354.5 C 542.125,354.875 542.125,355 541.5,355 C 540.875,355 540.5,354 540.75,355.375 C 541,356.75 542,357.25 542,357.25 C 542,357.25 543.125,357.25 543,358.5 C 542.875,359.75 543.375,359.375 542.75,360.625 C 542.125,361.875 542.25,361.625 541.75,362.75 C 541.25,363.875 541.75,363.875 541.125,364.75 C 540.5,365.625 540.25,366.125 539.375,366.5 C 538.5,366.875 538.5,366.125 538.125,367.5 C 537.75,368.875 537.875,368.875 537.25,369.125 C 536.625,369.375 535.25,369.375 534.75,369.75 C 534.25,370.125 535.125,370.625 533.75,370.25 C 532.375,369.875 532.75,369.875 532.125,369.75 C 531.5,369.625 531.25,369.625 530.75,369 C 530.25,368.375 530.625,367.25 530.125,367.625 C 529.625,368 529.25,369.375 528.75,368 C 528.25,366.625 528.375,366.5 527.875,366.25 C 527.375,366 527.125,367.5 527,365.875 C 526.875,364.25 526.625,364.25 527.375,363.5 C 528.125,362.75 528.375,362.5 529,362.5 C 529.625,362.5 529.75,362.625 530.5,362.75 C 531.25,362.875 531.125,363.5 531.75,363.625 C 532.375,363.75 534.25,362.625 534.5,363.375 C 534.75,364.125 534.25,366.375 534.875,364.375 C 535.5,362.375 535.125,362 536,361.25 C 536.875,360.5 537.75,359.75 538.125,359.25 C 538.5,358.75 538.875,358 538,357.125 C 537.125,356.25 536.875,357.125 536.875,355.5 C 536.875,353.875 537.125,353.5 536.625,352.625 C 536.125,351.75 536.625,352 535.625,351.5 C 534.625,351 534.625,350.75 534.125,350.125 C 533.625,349.5 532.75,349 531.875,348.75 C 531,348.5 531.625,349.125 530.75,347.75 C 529.875,346.375 529.625,346 528.875,346.125 C 528.125,346.25 528.5,347.25 527.75,346.375 C 527,345.5 527.25,345.375 526.75,345 C 526.25,344.625 526,345 525.375,344.5 C 524.75,344 524.75,344 524.625,343 C 524.5,342 524.75,341.625 524.125,341.125 C 523.5,340.625 522.25,340.25 522.25,340.25 C 522.25,340.25 522.5,340 520.875,340.25 C 519.25,340.5 519.125,340.5 518.625,340.875 C 518.125,341.25 518.5,341.25 518,341.875 C 517.5,342.5 517.625,342.625 516.75,342.875 C 515.875,343.125 516.625,343.625 515.75,343.5 C 514.875,343.375 515,343.75 514.5,343.25 C 514,342.75 514.375,342.125 513.5,342.125 C 512.625,342.125 512.25,342.25 512.625,341.5 C 513,340.75 513.5,340.75 512.5,340.75 C 511.5,340.75 511.625,341 510.375,340.75 C 509.125,340.5 508.625,340.625 508.125,340.625 L 506.75,343.125 C 506.75,343.125 506.875,343.625 506.75,344.25 C 506.625,344.875 506.125,345.375 506.125,345.375 C 506.125,345.375 505.75,345.75 505.75,346.5 C 505.75,347.25 506,347.375 505.25,348.125 C 504.5,348.875 504.5,349.125 504,349.375 C 503.5,349.625 503.5,349.5 503.125,350 C 502.75,350.5 502.5,350.5 502.25,351.125 C 502,351.75 502,351.75 502.375,352.375 C 502.75,353 503,353.75 503,353.75 C 503,353.75 503.375,353.875 503.125,355 C 502.875,356.125 502.75,356.875 502.75,356.875 C 502.75,356.875 502.75,357.375 502.875,358.375 C 503,359.375 503.875,360.5 503.875,360.5 L 504.5,361.375 C 504.5,361.375 504.875,362.875 505,363.625 C 505.125,364.375 506.25,364.125 505.125,365.125 C 504,366.125 502.375,366.75 501.25,368.625 C 500.125,370.5 500.5,372 499.625,373 C 498.75,374 499.5,374.125 498.375,374.125 C 497.25,374.125 496.25,372.875 495.625,374.125 C 495,375.375 494.625,376.5 493.75,376.625 C 492.875,376.75 492.75,375.25 492.75,377 C 492.75,378.75 492.375,379.875 492.375,379.875 C 492.375,379.875 492.125,380.75 491.25,380.625 C 490.375,380.5 490.25,380.375 489.5,380.25 C 488.75,380.125 488.75,380.625 488.125,379.875 C 487.5,379.125 487.375,378.75 487.125,378.125 C 486.875,377.5 486.875,377.25 485.875,377.125 C 484.875,377 484.875,377.375 484.375,376.5 C 483.875,375.625 483.625,375.375 482.875,375.5 C 482.125,375.625 482.125,376.125 481.125,375.125 C 480.125,374.125 480.125,373.375 479.625,373.5 C 479.125,373.625 478.5,374.5 478.5,374.5 C 478.5,374.5 478.625,375 477.125,374.875 C 475.625,374.75 475.375,374.5 474.25,374.5 C 473.125,374.5 473,375.25 472,374.75 C 471,374.25 470.875,374.125 470.875,373.5 C 470.875,372.875 471,372 470.5,371.5 C 470,371 470.625,370.375 469.875,370 C 469.125,369.625 469.5,369.75 468.625,369.75 C 467.75,369.75 467.75,369.875 466.875,369.375 C 466,368.875 465.625,369.625 466,368.25 C 466.375,366.875 466.125,367 466.75,366 C 467.375,365 467.375,365 467.75,363.875 C 468.125,362.75 468.25,362.5 468.875,360.875 C 469.5,359.25 469.75,359.75 469.75,358.5 C 469.75,357.25 469.25,357.25 470,356.375 C 470.75,355.5 470.875,355.5 470.75,354.5 C 470.625,353.5 471,353.75 470.5,353 C 470,352.25 468.75,351.125 468.25,350.625 C 467.75,350.125 467.875,350.75 467.625,349.25 C 467.375,347.75 466.875,348 466.625,347.125 C 466.375,346.25 466.375,346.25 466.375,345.125 C 466.375,344 465.5,344.375 465.5,343.75 C 465.5,343.125 465.125,342.625 466,342.125 C 466.875,341.625 467,342 468.125,341 C 469.25,340 469.25,340.25 469.5,339.375 C 469.75,338.5 470.625,338 470.625,338 C 470.625,338 470.5,338.125 471.25,338.875 C 472,339.625 472.125,339.625 472.25,340.125 C 472.375,340.625 471.875,340.75 473.375,341.125 C 474.875,341.5 474.5,341.625 476,341.625 C 477.5,341.625 477.875,341.75 478.5,341.5 C 479.125,341.25 479.75,340.875 479.75,340.875 C 479.75,340.875 480.25,340.5 481.125,340.5 C 482,340.5 482.125,340.375 482.875,340.625 C 483.625,340.875 483,341 483.75,340.875 C 484.5,340.75 484.625,341 485.25,340.625 C 485.875,340.25 486.25,340.875 486.625,339.75 C 487,338.625 486.625,338.25 487.625,337.5 C 488.625,336.75 489,336.5 490,336.5 C 491,336.5 489.375,334.875 488.75,334.75 C 488.125,334.625 487.75,335.25 487.75,334.625 C 487.75,334 487.625,333.875 488,332.875 C 488.375,331.875 489.125,331.25 489.125,331.25 C 489.125,331.25 489,330.75 488.875,329.875 C 488.75,329 490.5,328.5 489.375,327.75 C 488.25,327 487.75,326.625 487,326.625 C 486.25,326.625 486.375,327.875 485.75,326.375 C 485.125,324.875 485.625,324.625 485,323.875 C 484.375,323.125 484.125,323.375 483.5,322.5 C 482.875,321.625 483.75,321.75 482.375,320.75 C 481,319.75 480.125,319.5 479.5,319.5 C 478.875,319.5 478.625,320.375 478.75,319.125 C 478.875,317.875 478.875,317.5 479.75,316.75 C 480.625,316 482.875,315.375 483.75,315.25 C 484.625,315.125 483.25,314.75 485.125,315.125 C 487,315.5 486.375,315.5 487.25,315.625 C 488.125,315.75 489.75,316.25 489.75,316.25 C 489.75,316.25 490,314.375 490.5,313.75 C 491,313.125 491.125,313.125 491.5,312.125 C 491.875,311.125 492,311 493.25,310.625 C 494.5,310.25 495.375,311.25 495.375,311.25 C 495.375,311.25 493.75,312.875 495,312.25 C 496.25,311.625 494.625,309.625 497.375,310 C 500.125,310.375 501.125,312 501.5,310.125 C 501.875,308.25 501.5,308.25 502.125,307.25 C 502.75,306.25 502.75,306.25 503.875,305.625 C 505,305 504.75,303.125 506.125,302.875 C 507.5,302.625 507,302.875 508.25,302.625 C 509.5,302.375 509.375,302.625 510.125,301.75 C 510.875,300.875 511.5,298.625 512.125,298.375 C 512.75,298.125 513.125,298.75 513.5,296.75 C 513.875,294.75 513.25,295.125 513.875,294.625 C 514.5,294.125 515.25,294.75 515.625,293.375 C 516,292 515.875,291.75 515.875,291.125 C 515.875,290.5 514.125,290.5 516.5,290 C 518.875,289.5 519,290.25 519.5,289.25 C 520,288.25 520,288.5 520.25,287.5 C 520.5,286.5 521,286.75 521.625,285.75 C 522.25,284.75 521.875,284.75 522.25,283.875 C 522.625,283 522.625,279.75 523.25,279.5 C 523.875,279.25 523.875,280 524.25,279 C 524.625,278 524.25,277.75 525,276.75 C 525.75,275.75 525.875,275.875 526.625,275.375 C 527.375,274.875 527.5,275 527.75,274.375 C 528,273.75 526.875,273.875 528.625,272.625 C 530.375,271.375 530.25,271.875 530.5,271.25 C 530.75,270.625 531,270.25 531.125,269.625 C 531.25,269 531.125,269 531.25,268.125 C 531.375,267.25 531.25,267.875 531.375,266.375 C 531.5,264.875 531.75,263.875 531.875,263.25 C 532,262.625 532.125,262.25 531.5,262.375 C 530.875,262.5 530.75,263.5 530.625,262.375 C 530.5,261.25 530.25,260.875 530,260.25 C 529.75,259.625 529.375,258.5 529.375,258.5 C 529.375,258.5 528.875,258 529.375,257.25 C 529.875,256.5 530.5,255.375 530.5,255.375 C 530.5,255.375 530.875,255 531.5,254.875 C 532.125,254.75 532.25,255 532.75,254.375 C 533.25,253.75 532.25,253.625 533.5,253.5 C 534.75,253.375 535,253.375 535,253.375 L 534.25,254.5 L 534.125,255.5 C 534.125,255.5 535.5,256.25 535.75,257.75 C 536,259.25 536.25,259.375 536.125,260.125 C 536,260.875 535.875,263.875 535.875,263.875 C 535.875,263.875 535.875,264.875 536.625,265.5 C 537.375,266.125 537.875,266.375 538.625,266.5 C 539.375,266.625 540.75,266.75 541.375,266.5 C 542,266.25 542.625,266.125 543.25,266.5 C 543.875,266.875 544.625,266.5 545.125,266.25 C 545.625,266 546.25,265.75 546.875,265.625 C 547.5,265.5 548,265.5 549.25,265.5 C 550.5,265.5 550.875,265.75 551.375,265.25 C 551.875,264.75 551.75,265.125 552.375,264.625 C 553,264.125 554.25,263.5 554.875,263.5 C 555.5,263.5 555.5,263.375 556.25,263.25 C 557,263.125 558,262.625 559,263 C 560,263.375 560.375,263.5 561.25,263.625 C 562.125,263.75 562.5,264 563,263.625 C 563.5,263.25 564,262.875 564,262.125 C 564,261.375 564.125,260.875 563.625,260.375 C 563.625,260.375 563.125,259.875 562.75,258.625 C 562.375,257.375 561.375,256.875 562.125,256 C 562.875,255.125 563.25,255.25 563.5,254.125 C 563.75,253 563,252.375 563.875,251.625 C 564.75,250.875 564.875,250.75 565.125,249.625 C 565.375,248.5 565.375,247.875 566.375,248.25 C 567.375,248.625 567.25,247.5 567.875,249.25 C 568.5,251 567.5,251.75 569.125,251.875 C 570.75,252 571.875,252.75 571.875,251.75 C 571.875,250.75 571.125,250 571.375,248.875 C 571.625,247.75 569.5,246 569.5,246 C 569.5,246 568.875,246.625 568.5,245.875 C 568.125,245.125 567.875,245.375 567.75,244.125 C 567.625,242.875 566.875,243.625 566.875,242.5 C 566.875,241.375 566.375,240.375 567.125,239.875 C 567.875,239.375 568.5,239.25 569.625,239.5 C 570.75,239.75 572.875,239.125 573.875,239 C 574.875,238.875 574.5,239.125 575.75,239.25 C 577,239.375 577.75,239.375 578.625,239.125 C 579.5,238.875 581.125,238.125 580.625,237.75 C 580.125,237.375 579.75,237.125 579.125,237 C 578.5,236.875 577.625,236.5 577.25,235.75 C 576.875,235 576,234.125 575.375,234.375 C 574.75,234.625 575,234.75 573.75,234.75 C 572.5,234.75 571.875,233 570.875,233.625 C 569.875,234.25 570.625,234.625 569.375,234.875 C 568.125,235.125 566.75,235.25 565.5,235.25 C 564.25,235.25 564.5,235 563.125,235.25 C 561.75,235.5 560.75,236.25 560.25,235 C 559.75,233.75 559.625,234.125 559.625,232.875 C 559.625,231.625 560.375,230.75 560.625,229.625 C 560.875,228.5 560.125,227.375 561,226.25 C 561.875,225.125 562.5,224.875 562.875,224.25 C 563.25,223.625 563.625,222.875 563.75,222 C 563.875,221.125 563.875,221.375 563.875,220.5 C 563.875,219.625 563.5,218.875 563,218.5 C 562.5,218.125 562.625,218.125 561.5,218 C 560.375,217.875 560.75,217.125 559.625,218.375 C 558.5,219.625 557.5,219.75 557.375,220.75 C 557.25,221.75 557.875,222.125 557.25,223.375 C 556.625,224.625 556.5,224.5 556.25,225 C 556,225.5 556.5,226.25 556,226.75 C 555.5,227.25 555.125,227.25 554.25,227.75 C 553.375,228.25 552.75,227.875 552.625,229.375 C 552.5,230.875 552.25,230.5 552.625,231.5 C 553,232.5 553.25,232.625 553.5,233.375 C 553.75,234.125 554.25,234.5 554.25,236 C 554.25,237.5 554.625,238 554.625,238 C 554.625,238 555.125,239.75 555,240.625 C 554.875,241.5 554.5,243 554.125,243.875 C 553.75,244.75 553.375,245.25 552.75,245.875 C 552.125,246.5 552.375,246.625 551.625,247.375 C 550.875,248.125 550,248.375 549.375,248.75 C 548.75,249.125 548.625,250.375 548.625,250.375 L 548.625,252.75 C 548.625,252.75 549.25,254.375 548.125,254.875 C 547,255.375 546.75,255.5 546,256.625 C 545.25,257.75 546,258.625 545.125,259.375 C 544.25,260.125 544.5,260.25 543,260.125 C 541.5,260 541.25,260 540.75,259.375 C 540.25,258.75 539.625,257.625 538.875,257.5 C 538.125,257.375 538.25,257.625 537.75,257.375 C 537.25,257.125 537.625,256.625 536.875,256.625 C 536.125,256.625 535.75,257.125 535.75,256.625 C 535.75,256.125 535.75,256.375 535.75,255.25 C 535.75,254.125 535.75,250.625 535.75,250.625 L 533.875,247.75 L 534.5,246.125 L 533.75,244.875 L 532.875,244.375 C 532.875,244.375 531.5,244.875 531.375,245.375 C 531.25,245.875 531.25,246.25 531,246.75 C 530.75,247.25 529.625,248.75 528.75,248.875 C 527.875,249 526.75,249.125 526.75,249.125 C 526.75,249.125 526.375,250.125 525.625,249.75 C 524.875,249.375 525.125,249.5 524.25,248.5 C 523.375,247.5 523.125,246.375 523.125,245.875 C 523.125,245.375 523.375,245.25 522.75,244.75 C 522.125,244.25 522.125,244.25 521.5,243.625 C 520.875,243 520,242.5 520.125,241.375 C 520.25,240.25 520.5,239.125 520.75,238 C 521,236.875 520.375,235.75 520.375,235.75 L 519.90026,234.84149 z"
id="path2432"
sodipodi:nodetypes="cssssscssscssssssssssccsscssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssscssssssssssssscscccscssscssscccssssssssssscccscssssscsssscssccsscsssccssccsssscssssscsscss" />
<path
style="fill:#b5b81d;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="M 429.125,209.875 C 429.125,209.875 429.75,213.75 428.875,215.375 C 428,217 427.875,216.125 427.375,218.5 C 426.875,220.875 427.25,221.75 426.375,223.125 C 425.5,224.5 425.75,222.25 425.375,225.875 C 425,229.5 425.25,230.375 424.375,230.75 C 423.5,231.125 424.625,232.5 423.125,232.5 C 421.625,232.5 421.125,233.5 420.75,232.125 C 420.375,230.75 421,230.125 419.5,230 C 418,229.875 417.125,231.625 416.875,229.875 C 416.625,228.125 417.25,227.5 416,227 C 414.75,226.5 417.25,230.625 413.125,225.75 C 409,220.875 409.75,217.5 409.75,217.5 C 409.75,217.5 408.5,216.125 408.5,215.25 C 408.5,214.375 409.375,211.625 408.25,210.125 C 407.125,208.625 406,205.625 407.375,204.75 C 408.75,203.875 410.125,204.125 410.5,202.125 C 410.875,200.125 410.75,200.375 411,199.375 C 411.25,198.375 411.75,198 410.75,197.875 C 409.75,197.75 410.75,198.25 408.875,197.75 C 407,197.25 407.25,196.5 406.75,196.375 C 406.25,196.25 407.125,197.125 405.5,196.5 C 403.875,195.875 402.625,195.375 404.375,194.75 C 406.125,194.125 407.25,193.875 408,194.125 C 408.75,194.375 409.125,195.75 408.875,193.875 C 408.625,192 404.5,191 404.5,189.75 C 404.5,188.5 404.5,188.75 404.5,187.5 C 404.5,186.25 404.25,185.625 403.25,184.625 C 402.25,183.625 402.5,183.625 402.25,182 C 402,180.375 402,180.5 401.125,179.5 C 400.25,178.5 400.125,179.875 399.5,178.125 C 398.875,176.375 398.875,176 397.625,176 C 396.375,176 396.5,176.75 395.5,175.375 C 394.5,174 394.75,173.75 393.125,173.875 C 391.5,174 390.25,174.75 390,175.25 C 389.75,175.75 390.375,176.25 388.75,176.375 C 387.125,176.5 386.75,176.5 385.875,176.5 C 385,176.5 384.125,176.875 384.125,176.375 C 384.125,176.375 383.125,174.875 381.5,175.25 C 379.875,175.625 379.5,176.75 379,175.5 C 378.5,174.25 377.5,174.375 377.375,173.75 C 377.25,173.125 375.75,173.875 377.25,172.25 C 378.75,170.625 377.75,170.25 379.625,170.375 C 381.5,170.5 381.125,170.625 382.125,170.125 C 383.125,169.625 384.5,169.5 383.125,169.375 C 383.125,169.375 383.625,168.625 382.25,168.375 C 380.875,168.125 379.375,168.875 379.375,167.875 C 379.375,166.875 378.125,165.75 379.875,165.75 C 381.625,165.75 382.625,166.25 383.5,165.375 C 384.375,164.5 384.375,164.75 385.625,164.875 C 386.875,165 388.125,165.625 388.5,164.625 C 388.875,163.625 390.875,163.5 389.25,163 C 387.625,162.5 386.75,162.625 387.125,161.875 C 387.5,161.125 388.5,161 388.125,160.125 C 387.75,159.25 386,158.5 388.5,158.375 C 391,158.25 392.25,159.375 392.625,158 C 393,156.625 391.625,155.5 393.875,155.5 C 396.125,155.5 398.5,154.375 398.625,153.625 C 398.75,152.875 398.125,152 400.25,152.5 C 402.375,153 402,154.125 403.125,152.75 C 404.25,151.375 403,151 405.25,151.5 C 407.5,152 407.75,152.25 408.625,151.625 C 409.5,151 407.875,150.75 410,151 C 412.125,151.25 411.75,152 412.125,150.125 C 412.5,148.25 410.75,148.5 412.875,148 C 415,147.5 415.125,148 416.125,146.625 C 417.125,145.25 416.25,145.625 418.125,145.25 C 420,144.875 420.25,145.25 419.375,143.875 C 418.5,142.5 416.875,141.75 419.375,141.5 C 421.875,141.25 423.25,141 423.5,140.25 C 423.5,140.25 423.375,141.25 424.875,140.875 C 426.375,140.5 426.125,140 427,138.875 C 427.875,137.75 427.625,137.5 428.5,138.125 C 429.375,138.75 428.375,139.25 430.625,138.125 C 432.875,137 431.125,137 433.375,137.375 C 435.625,137.75 435.5,137.5 438.125,137.625 C 440.75,137.75 439.375,138.125 440.875,138.5 C 442.375,138.875 442,138.75 443.875,138.75 C 445.75,138.75 445.375,138.375 446.5,139.125 C 447.625,139.875 447.125,140 449.375,140 C 451.625,140 452.25,139.375 452.625,140.75 C 453,142.125 452,142.25 454.75,142.625 C 457.5,143 458.375,142.5 456.875,143.625 C 455.375,144.75 452.25,144.875 453.125,145.625 C 454,146.375 453.875,146.125 451.5,146.625 C 449.125,147.125 445.625,147.625 448.5,148 C 451.375,148.375 453.375,147.125 454.125,148.375 C 454.875,149.625 453.125,149.75 456.375,149.375 C 459.625,149 458.25,148.25 460.875,148.75 C 463.5,149.25 463,150 463.875,148.375 C 464.75,146.75 462.375,145.875 465.25,146.5 C 468.125,147.125 467.5,147.125 469.25,146.125 C 471,145.125 471.25,143.125 472,145.5 C 472.75,147.875 472.625,148.375 471,149.125 C 469.375,149.875 469.5,148.75 469,150.5 C 468.5,152.25 468.625,152.75 467.375,153.75 C 466.125,154.75 465.5,153.875 465.75,155.625 C 466,157.375 466,157.125 465.625,158.875 C 465.25,160.625 464.375,161.125 465.5,162.125 C 466.625,163.125 466.625,162.125 467.375,163.625 C 468.125,165.125 468.5,165.125 467.75,166.875 C 467,168.625 466.875,167.75 466.625,169.875 C 466.375,172 466.125,173.25 467,172.625 C 467.875,172 468,170.25 468.125,172 C 468.25,173.75 468.75,174.875 467.25,175.5 C 465.75,176.125 465.875,175.25 465.625,176.5 C 465.375,177.75 466.25,178.125 465.125,179.125 C 464,180.125 465,181.125 463.75,180 C 462.5,178.875 461.75,177.125 460.75,178.25 C 459.75,179.375 458.375,178.375 459.5,179.75 C 460.625,181.125 461.375,180.75 461.625,181.25 C 461.875,181.75 461.75,182.25 462.125,183 C 462.5,183.75 462.25,184.125 463.25,184 C 464.25,183.875 464.625,184.375 464.375,185.25 C 464.125,186.125 464,186.625 464.75,187.5 C 465.5,188.375 465.75,188.375 465.125,188.75 C 464.5,189.125 464.375,189.25 463.5,189.75 C 462.625,190.25 462.75,191 462.25,191.125 C 461.75,191.25 460.75,191.875 460.625,190.625 C 460.5,189.375 460.375,187.75 459.625,187.125 C 458.875,186.5 457.75,184.875 457.5,186.375 C 457.25,187.875 457.5,188.375 457.125,189.125 C 456.75,189.875 455.25,188.875 456.75,190.125 C 458.25,191.375 458.875,191.75 458.875,191.75 C 458.875,191.75 460.25,192.5 459.625,193.125 C 459,193.75 459.75,194 457.875,194.25 C 456,194.5 456.875,192.625 455.125,194.625 C 453.375,196.625 452.125,197.125 452.125,197.125 L 451.25,196.125 C 451.25,196.125 450.5,194 450.25,195.375 C 450,196.75 450.25,196.625 449.25,198.75 C 448.25,200.875 448.75,201.375 447.625,201.5 C 446.5,201.625 445.625,200.75 445,201.625 C 444.375,202.5 445.25,202.25 444.125,203.125 C 443,204 442.625,204.125 441.875,204.125 C 441.125,204.125 442.25,202 440.75,204.25 C 439.25,206.5 440.125,206.75 438.875,207 C 437.625,207.25 437.375,207.25 436.25,207.25 C 435.125,207.25 434.5,207.375 433.375,207.375 C 432.25,207.375 431.375,207.5 430.625,207.875 C 429.875,208.25 429.125,209.125 429.125,209.125 L 429.125,209.875 z"
id="path2410" sodipodi:nodetypes="cssssssssssscsssssssssssssssssssssssscsssssss" />
<path
style="opacity:1;fill:#47c1dc;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
d="M 570.5625,189.875 C 560.85613,189.30433 556.02159,199.51352 547.07068,200.29452 C 541.2152,211.12727 534.67187,222.04625 524.62586,228.87172 C 521.70975,232.18715 524.95348,241.25556 527.45658,244.02283 C 535.67558,233.28656 539.1562,250.13176 541.87109,254.43264 C 545.99073,251.0156 545.72713,244.62374 550.90618,241.42177 C 548.84052,234.18225 547.4357,226.7666 553.38648,221.02779 C 554.19939,208.99806 571.89478,214.02704 567.43337,224.44721 C 562.40406,229.89783 565.32455,232.97031 571.58994,229.8745 C 580.98957,227.4276 590.82254,243.30598 576.8248,243.38678 C 567.85555,241.00414 581.85065,253.93851 572.53195,256.04905 C 566.86014,254.59764 565.99262,256.75931 567.90625,261.65625 C 566.65037,271.84828 553.42204,264.82733 547.20707,270.24717 C 539.91614,270.46216 533.96794,268.67581 530.8483,276.67012 C 525.28874,283.81852 522.96197,292.66766 516.6875,299.53125 C 512.46585,305.54778 505.51193,308.53658 502.23654,314.80683 C 494.59955,312.24467 493.17527,324.01708 486.4375,319.4375 C 494.05936,324.57295 497.79699,337.76518 488.60709,343.18362 C 483.40901,346.50064 474.83671,345.05495 470.19308,345.21563 C 477.54508,351.69411 472.61879,360.13097 472.48314,367.4118 C 475.9185,373.04721 482.38754,367.40384 486.86654,373.37611 C 496.30792,373.05718 503.20999,362.3563 498.37298,353.4619 C 500.39102,345.51111 504.67735,332.55061 515.48434,337.40743 C 523.43601,331.08586 531.75624,345.66676 534.6774,344.44934 C 531.17902,336.00031 543.3549,330.80337 548.00345,338.31391 C 555.65047,340.81203 554.34285,354.25526 560.54404,354.05676 C 568.64861,351.71929 567.80817,342.22496 573.52541,336.91957 C 575.6274,328.49892 577.09016,317.51849 587.23742,315.66471 C 594.58121,320.89617 599.06069,310.62896 607.12096,311.74876 C 616.7774,308.6748 614.10875,321.85982 610.08506,323.53696 C 612.01243,328.58919 618.62067,327.11287 620.14007,333.54293 C 627.7047,333.32377 624.739,346.55427 632.22971,338.97604 C 635.05365,332.36286 631.31977,320.49746 625,318.59375 C 620.86506,310.34429 636.46471,303.26792 626.62294,296.52545 C 623.3368,288.77263 624.80725,278.74312 631.875,273.5625 C 638.24585,271.84502 645.45811,268.12463 650.90861,267.85461 C 656.43579,272.74252 655.76228,262.14062 661.8125,263.34375 C 658.8953,257.56044 664.24672,251.44016 657.04318,248.58477 C 655.92082,239.8928 658.30251,230.46741 655.6217,221.07058 C 652.55842,211.70303 662.06738,204.09675 659.95022,194.83312 C 655.22099,185.4821 648.67999,199.85076 641.56947,195.59457 C 630.63524,193.60765 623.29009,205.30583 613.65052,208.15795 C 604.89346,208.77525 601.40802,222.7849 591.91979,216.78738 C 591.36996,209.50348 577.74293,206.83212 584.3251,198.92208 C 588.37639,194.84973 601.52958,200.9026 601.65015,196.6642 C 593.63025,193.01227 584.23629,195.26303 576.15229,191.34701 C 574.30183,190.80997 572.44537,190.28774 570.5625,189.875 z M 539.28125,349.53125 C 539.36099,350.18029 539.53653,349.22828 539.28125,349.53125 z M 560.90625,362.0625 C 560.96933,368.18915 564.97973,362.26368 560.90625,362.0625 z"
id="path11103" />
<text xml:space="preserve"
style="font-size:40px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Sans;-inkscape-font-specification:Sans"
x="739.63367" y="268.78262" id="text2468">
<tspan sodipodi:role="line" id="tspan2470" x="739.63367" y="268.78262" />
</text>
<path id="path20"
style="opacity:1;fill:#48c74c;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
d="M 662.95179,190.04383 C 663.6589,190.48578 664.36601,197.20329 664.36601,197.20329 C 664.36601,197.20329 664.54278,200.56205 664.01245,201.26915 C 663.48212,201.97626 663.48212,205.15824 663.48212,205.15824 L 662.24468,207.27956 L 660.30014,212.05253 C 660.30014,212.05253 659.0627,215.94162 659.23948,216.8255 C 659.41626,217.70939 660.30014,219.65393 660.30014,219.65393 C 660.30014,219.65393 659.23948,221.24492 659.76981,222.1288 C 660.30014,223.01269 661.00725,225.31078 661.00725,226.54822 C 661.00725,227.78566 661.00725,230.43731 661.00725,231.32119 C 661.00725,232.20508 661.00725,235.38706 661.00725,235.38706 C 661.00725,235.38706 662.77501,235.74061 662.77501,236.62449 C 662.77501,237.50838 662.77501,238.92259 662.06791,240.16003 C 661.3608,241.39746 660.47692,241.92779 660.30014,243.51878 C 660.12336,245.10977 660.30014,246.52399 660.30014,246.52399 L 661.71435,247.23109 L 664.89634,249.35242 C 664.89634,249.35242 666.48733,249.35242 666.6641,250.58985 C 666.84088,251.82729 667.54799,252.35762 666.84088,253.77183 C 666.13377,255.18605 664.36601,256.06993 664.54278,256.95381 C 664.71956,257.8377 665.07311,258.19125 665.24989,259.42869 C 665.42667,260.66612 665.957,260.8429 665.957,262.61067 C 665.957,264.37843 667.01766,265.43909 665.957,265.96942 C 664.89634,266.49975 664.71956,266.85331 663.83568,267.20686 C 662.95179,267.56041 659.76981,267.56041 659.59303,268.79785 C 659.41626,270.03529 659.23948,270.38884 658.53237,271.80306 C 657.82527,273.21727 657.64849,273.57082 656.76461,273.7476 C 655.88072,273.92438 655.52717,273.7476 654.64329,273.57082 C 653.7594,273.39405 652.16841,272.68694 652.16841,272.68694 L 650.7542,272.51016 L 649.51676,271.27273 C 649.51676,271.27273 648.80966,271.80306 648.10255,272.15661 C 647.39544,272.51016 645.80445,273.92438 645.80445,273.92438 C 645.80445,273.92438 643.32958,274.63148 642.62247,274.63148 C 641.91536,274.63148 641.91536,274.45471 641.20826,274.63148 C 640.50115,274.80826 639.26371,274.63148 638.73338,275.33859 C 638.20305,276.0457 639.44049,276.7528 636.78884,276.92958 C 634.13719,277.10636 634.13719,277.10636 633.43008,277.10636 C 632.72298,277.10636 631.48554,280.81867 631.48554,280.81867 C 631.48554,280.81867 632.89975,282.0561 631.83909,282.40966 C 630.77843,282.76321 630.07133,283.82387 629.541,284.53098 C 629.01067,285.23808 628.65711,285.76841 628.83389,286.6523 C 629.01067,287.53618 628.83389,288.06651 629.18744,289.12717 C 629.541,290.18783 630.42488,292.30915 630.42488,292.30915 C 630.42488,292.30915 631.13199,292.66271 630.95521,293.72337 C 630.77843,294.78403 630.2481,295.31436 630.77843,296.19824 C 631.30876,297.08212 632.36942,297.43568 632.36942,297.43568 L 633.43008,298.84989 C 633.43008,298.84989 634.8443,298.49634 634.8443,299.73377 C 634.8443,300.97121 635.02107,301.50154 635.19785,302.91575 C 635.19785,302.91575 636.21933,304.31473 636.92643,303.7844 C 637.63354,303.25407 638.87098,302.37018 638.87098,301.30952 C 638.87098,300.24886 638.6942,299.89531 639.57808,299.71853 C 640.46197,299.54176 640.9923,299.54176 641.87618,299.1882 C 642.76006,298.83465 642.40651,298.83465 643.46717,298.83465 C 644.52783,298.83465 644.35105,298.30432 644.88138,299.36498 C 645.41171,300.42564 644.70461,299.71853 645.05816,301.30952 C 645.41171,302.90051 645.58849,302.72374 645.76527,303.7844 C 645.94204,304.84506 645.76527,304.49151 645.41171,305.90572 C 645.05816,307.31993 645.05816,307.49671 644.17428,307.85026 C 643.29039,308.20382 641.52263,309.0877 641.34585,310.50191 C 641.16907,311.91613 641.34585,310.14836 641.52263,312.44646 C 641.6994,314.74455 641.6994,315.45166 642.40651,315.80521 C 643.11362,316.15877 643.29039,315.98199 643.29039,317.04265 C 643.29039,318.10331 642.76006,318.45686 643.9975,318.63364 C 645.23494,318.81042 646.11882,318.45686 646.11882,318.45686 C 646.11882,318.45686 648.41692,318.81042 647.88659,320.22463 C 647.35626,321.63884 646.2956,320.75496 647.0027,322.34595 C 647.70981,323.93694 647.88659,322.6995 648.06336,324.46727 C 648.24014,326.23504 647.53303,326.76537 648.41692,326.76537 C 649.3008,326.76537 650.89179,327.47248 650.89179,327.47248 L 651.06857,329.77057 L 651.42212,331.18479 C 651.42212,331.18479 649.12402,330.3009 649.47758,331.89189 C 649.83113,333.48288 650.18469,333.48288 650.18469,333.48288 C 650.18469,333.48288 652.48278,333.30611 652.48278,334.8971 C 652.48278,336.48809 652.12923,337.01842 652.30601,337.9023 C 652.48278,338.78618 653.28981,338.77081 653.11303,340.00824 C 652.93625,341.24568 652.83634,341.96816 652.65956,343.02882 C 652.48278,344.08948 653.18989,344.61981 651.77568,344.97337 C 650.36146,345.32692 649.3008,346.38758 649.3008,346.38758 C 649.3008,346.38758 650.89179,347.97857 647.53303,347.27147 C 644.17428,346.56436 644.70461,346.03403 643.29039,345.68048 C 641.87618,345.32692 642.05296,346.03403 640.9923,345.32692 C 639.93164,344.61981 639.57808,344.97337 639.22453,343.91271 C 638.87098,342.85205 636.25,341.375 636.25,341.375 C 636.25,341.375 635.375,341.375 635.25,342.25 C 635.125,343.125 637,343.125 634.875,343.5 C 634.875,343.5 633.625,343.625 633,343.75 C 632.375,343.875 631.75,343.5 631.125,344 C 630.5,344.5 630.5,344.875 629.625,345 C 628.75,345.125 628.875,345 627.875,345.125 C 626.875,345.25 626.125,346.125 626.125,346.125 C 626.125,346.125 626.375,346.625 624.75,346.5 C 623.125,346.375 622.5,346.75 622.5,346.75 C 622.5,346.75 622.5,348.25 621.125,347.25 C 619.75,346.25 619.125,346.25 619.125,345.75 C 619.125,345.25 619.75,344.75 620.25,344.25 C 620.25,344.25 619.77909,342.76366 617.92294,343.11721 C 616.06678,343.47077 614.91773,343.38238 614.47579,344.0011 C 614.03385,344.61981 613.59191,345.85725 612.8848,345.94564 C 612.1777,346.03403 610.14476,346.2108 609.61443,345.59209 C 609.0841,344.97337 608.125,343 605.625,342.25 C 603.125,341.5 601,340.875 600.125,341.5 C 599.25,342.125 600,342.875 598.25,342.375 C 596.5,341.875 594.75,341.125 594.25,341.375 C 593.75,341.625 592.125,341.375 592.125,342 C 592.125,342.625 592.875,343.625 591.875,343.75 C 590.875,343.875 589.625,344.375 589,344.625 C 588.375,344.875 588.75,345.125 586.5,345.125 C 584.25,345.125 582,345.5 581.125,344.75 C 580.25,344 579.875,343.125 579.5,342.625 C 579.125,342.125 578.125,341.625 578.125,341.625 L 576.875,341.625 C 576.875,341.625 575.5,342 575,342.625 C 574.5,343.25 574.5,343.625 574,344 C 573.5,344.375 573.5,344.25 572.875,345 C 572.25,345.75 572.75,346.125 572.25,346.75 C 571.75,347.375 571.375,346.875 571.125,347.75 C 570.875,348.625 571.125,348.25 571.25,349.125 C 571.375,350 572,350 571.25,351 C 571.25,351 572.3125,353.1875 572.75,354.25 C 573.1875,355.3125 574.625,355.875 573.5,356.25 C 572.375,356.625 571,356.6875 571.25,357.6875 C 571.5,358.6875 573.875,361.0625 574.5625,362.25 C 575.25,363.4375 574.75,366.125 575.875,367.125 C 577,368.125 578.75,369 579.375,369 C 580,369 581.875,367.625 582.125,368.875 C 582.375,370.125 581.875,372.5 582.625,372.625 C 583.375,372.75 585.125,373.625 585.5,373 C 585.875,372.375 584.24698,370.60599 585.48441,370.07566 C 586.72185,369.54533 585.48441,367.07046 588.13607,368.30789 C 590.78772,369.54533 590.78772,370.42921 592.37871,370.60599 C 593.9697,370.78277 595.03036,370.25244 596.09102,370.42921 C 597.15168,370.60599 598.38911,371.66665 598.74267,370.42921 C 599.09622,369.19178 599.9801,368.48467 600.86399,368.48467 C 601.74787,368.48467 603.69241,367.95434 604.04597,369.015 C 604.39952,370.07566 603.51564,371.3131 603.69241,372.37376 C 603.86919,373.43442 604.92985,373.78797 604.5763,379.79838 C 604.22274,385.80878 605.63696,388.81399 604.75307,389.34432 C 603.86919,389.87465 602.63175,391.46564 602.98531,392.34952 C 603.33886,393.23341 604.75307,396.23861 604.92985,398.35993 C 605.10663,400.48125 605.81373,401.01158 605.99051,402.07224 C 606.16729,403.1329 604.75307,403.30968 606.16729,405.07744 C 607.5815,406.84521 610.58671,407.90587 610.40993,409.14331 C 610.23315,410.38075 612.35447,410.91108 613.23836,412.14851 C 614.12224,413.38595 615.53645,416.92148 615.89001,418.51247 C 616.24356,420.10346 617.481,417.80537 618.1881,420.45702 C 618.89521,423.10867 621.01653,422.75511 621.54686,424.69966 C 622.07719,426.6442 624,428.5 625,429 C 626,429.5 629.25,430.25 629,432 C 628.75,433.75 631.75,435.5 631.75,436.75 C 631.75,438 631.5,440.5 631.5,440.5 C 631.5,440.5 631,441 632,442 C 633,443 633.75,443.75 634,445.25 C 634.25,446.75 635.25,446.5 635.25,446.5 C 635.25,446.5 645,445.5 648.25,444.5 C 651.5,443.5 655.5,441.75 655.5,440.75 C 655.5,439.75 655.5,440 657,439.5 C 658.5,439 659.5,437 659.5,437 L 661,435.75 C 661,435.75 661.25,433.75 662.5,434 C 663.75,434.25 665.25,435 665.25,434 C 665.25,433 664.5,434.25 667.5,429.25 C 670.5,424.25 671,422.5 670.75,421.5 C 670.5,420.5 670.5,420.5 671.5,419.75 C 672.5,419 673,416.5 673,416.5 L 672.5,414.25 L 673.5,412 C 673.5,412 674.93342,408.08265 673.69599,407.55232 C 672.45855,407.02199 672.63533,406.66843 672.63533,405.25422 C 672.63533,403.84001 671.04434,402.95612 671.04434,402.95612 C 671.04434,402.95612 671.04434,403.48645 669.63012,402.95612 C 668.21591,402.42579 666.44814,400.8348 666.44814,400.8348 C 666.44814,400.8348 664.85715,401.54191 664.68037,400.48125 C 664.5036,399.42059 665.03393,397.8296 664.15004,398.35993 C 663.26616,398.89026 662.2055,398.71348 661.67517,399.42059 C 661.14484,400.1277 662.38228,401.18836 659.2003,401.18836 C 656.01832,401.18836 655.31121,402.24902 654.6041,401.01158 C 653.897,399.77414 653.897,399.77414 653.54344,398.35993 C 653.18989,396.94572 654.25055,397.65282 652.65956,396.59216 C 651.06857,395.5315 650.71502,395.5315 650.71502,394.64762 C 650.71502,393.76374 650.18469,393.23341 650.18469,393.23341 C 650.18469,393.23341 648.94725,393.94051 648.41692,392.5263 C 647.88659,391.11209 649.12402,390.2282 647.70981,388.99077 C 646.2956,387.75333 646.2956,387.57655 645.76527,386.51589 C 645.23494,385.45523 644.70461,384.74812 644.70461,384.74812 C 644.70461,384.74812 643.46717,384.04102 643.9975,383.33391 C 644.52783,382.6268 644.17428,382.45003 645.76527,382.27325 C 647.35626,382.09647 647.70981,381.74292 648.41692,381.21259 C 649.12402,380.68226 648.77047,380.32871 650.00791,380.15193 C 651.24535,379.97515 651.42212,378.91449 651.95245,380.32871 C 652.48278,381.74292 652.30601,382.27325 652.30601,384.21779 C 652.30601,386.16234 652.12923,387.57655 652.65956,388.63721 C 653.18989,389.69787 653.54344,390.2282 653.72022,390.93531 C 653.897,391.64242 654.07377,392.17275 654.07377,392.17275 C 654.07377,392.17275 654.25055,392.34952 655.13443,392.34952 C 656.01832,392.34952 656.19509,391.64242 656.54865,392.5263 C 656.9022,393.41018 656.54865,393.05663 657.07898,393.76374 C 657.60931,394.47084 657.43253,394.8244 658.31641,394.47084 C 659.2003,394.11729 659.37707,393.23341 660.26096,393.58696 C 661.14484,393.94051 661.85195,394.11729 661.85195,394.11729 C 661.85195,394.11729 663.08938,394.29407 663.08938,393.23341 C 663.08938,392.17275 662.91261,391.64242 663.44294,390.93531 C 663.97327,390.2282 664.32682,388.46044 665.38748,390.75853 C 666.44814,393.05663 665.91781,393.41018 666.44814,394.29407 C 666.97847,395.17795 667.33202,395.88506 668.39268,395.5315 C 669.45334,395.17795 669.98367,395.17795 670.69078,394.47084 C 671.39789,393.76374 672.105,393.41018 672.105,393.41018 C 672.105,393.41018 671.92822,391.64242 672.98888,391.28886 C 674.04954,390.93531 675.28698,389.87465 675.28698,389.87465 L 676.52441,388.46044 L 677.58507,387.04622 C 677.58507,387.04622 679.52962,387.04622 680.23672,387.04622 C 680.94383,387.04622 681.65094,386.16234 682.35804,385.98556 C 683.06515,385.80878 685.36325,385.10168 685.7168,386.33911 C 686.07035,387.57655 685.89358,389.5211 686.24713,390.2282 C 686.60068,390.93531 688.89878,391.81919 688.89878,391.81919 C 688.89878,391.81919 689.60589,391.81919 690.31299,391.81919 C 691.0201,391.81919 691.37366,390.93531 691.55043,392.17275 C 691.72721,393.41018 691.37366,393.94051 691.72721,394.64762 C 692.08076,395.35473 694.37886,395.35473 694.37886,395.35473 C 694.37886,395.35473 696.67696,395.35473 695.6163,396.41539 C 694.55564,397.47605 693.84853,397.65282 693.49498,398.35993 C 693.14142,399.06704 692.43432,399.24381 693.3182,399.59737 C 694.20208,399.95092 694.02531,399.06704 694.73241,400.30447 C 695.43952,401.54191 695.26274,401.18836 695.79307,401.89546 C 696.3234,402.60257 695.43952,402.77935 697.03051,402.95612 C 698.6215,403.1329 699.15183,402.95612 699.15183,402.95612 L 699.85894,401.18836 C 699.85894,401.18836 700.74282,399.95092 701.44993,401.36513 C 702.15703,402.77935 701.45881,402.74902 701.28203,404.51678 C 701.10526,406.28455 700.92848,408.03087 700.92848,409.26831 C 700.92848,410.50575 700.17848,411.21285 700.35526,412.45029 C 700.53203,413.68773 700.78203,414.46806 700.78203,415.88227 C 700.78203,417.29648 702.15703,416.74471 702.15703,417.98214 C 702.15703,419.21958 701.98026,419.57313 702.68736,420.28024 C 703.39447,420.98735 704.16224,422.52656 704.16224,423.23367 C 704.16224,423.94077 704.8479,424.2211 704.8479,425.45854 C 704.8479,426.69598 704.79612,427.82986 705.50323,428.18342 C 706.21033,428.53697 707.36566,428.73519 707.36566,430.14941 C 707.36566,431.56362 708.52099,433.08139 708.52099,433.08139 C 708.52099,433.08139 709.08165,434.36172 709.08165,435.06882 C 709.08165,435.77593 710.28876,436.19014 710.28876,436.89725 C 710.28876,437.60436 711.70298,436.89725 712.58686,441.67022 C 713.47074,446.44319 714.00107,443.43799 715.41529,447.50385 C 716.8295,451.56972 717.53661,452.63038 718.42049,452.63038 C 719.30437,452.63038 720.36503,452.27682 720.54181,451.39294 C 720.71859,450.50906 720.54181,450.50906 721.42569,450.1555 C 722.30958,449.80195 722.1328,449.97873 722.30958,448.91807 C 722.48635,447.8574 721.60247,447.68063 721.95602,446.97352 C 722.30958,446.26641 721.42569,444.8522 722.83991,444.8522 C 724.25412,444.8522 725.31478,443.61476 725.31478,443.61476 C 725.31478,443.61476 724.78445,442.90766 724.78445,442.02377 C 724.78445,441.13989 724.07734,443.79154 724.78445,439.90245 C 725.49156,436.01337 725.84511,435.30626 725.66833,433.00816 C 725.49156,430.71007 724.60767,431.77073 725.66833,428.76552 C 726.72899,425.76032 727.25932,427.17453 727.25932,424.87643 C 727.25932,422.57834 728.31998,420.10346 728.49676,418.68925 C 728.67354,417.27504 729.20387,418.3357 729.20387,416.74471 C 729.20387,415.15372 728.31998,414.26983 729.38064,413.20917 C 730.4413,412.14851 731.85552,411.79496 731.85552,410.55752 C 731.85552,409.32009 731.85552,408.78976 731.85552,407.90587 C 731.85552,407.02199 732.20907,405.25422 732.20907,405.25422 C 732.20907,405.25422 734.50717,405.07744 733.97684,404.01678 C 733.44651,402.95612 733.62329,401.71869 733.97684,400.8348 C 734.33039,399.95092 735.375,396.25 736.875,397.25 C 738.375,398.25 738.875,398.25 738.875,398.25 C 738.875,398.25 740.25,396.875 740.125,396.25 C 740,395.625 740.625,394.5 740.625,394.5 C 740.625,394.5 740.875,392.75 741.375,392.625 C 741.875,392.5 744.25,392.375 744.25,392.375 L 745.125,394.5 C 745.125,394.5 746,397.25 747.25,397.5 C 748.5,397.75 748.5,399.5 748.75,401.25 C 749,403 755.5,409.75 755.75,411.25 C 756,412.75 759.25,411.75 759.25,411.75 C 759.25,411.75 760.5,414.75 761.25,413.75 C 762,412.75 766.5,415.5 766.5,415.5 C 766.5,415.5 766.75,415.25 767,417.25 C 767.25,419.25 768.75,419.5 768.5,421 C 768.25,422.5 767.75,424 768.25,425.75 C 768.75,427.5 768.75,428 769.5,429 C 770.25,430 770,431.75 770.25,433 C 770.5,434.25 769.25,435.25 770.25,436 C 771.25,436.75 771.25,437 773.75,440.25 C 776.25,443.5 775.25,443.75 776.75,444 C 778.25,444.25 780,444 780,444 C 780,444 781,444 781,442.75 C 781,441.5 780.5,440.75 780.5,440.75 C 780.5,440.75 780.75,443.75 779,439 C 777.25,434.25 777.25,433.5 777.25,431.5 C 777.25,429.5 777.75,430 776.5,428.75 C 775.25,427.5 773.5,428 774.75,426.75 C 776,425.5 776.5,425.5 776.75,424.5 C 777,423.5 776.75,423.25 778,423.5 C 779.25,423.75 779.5,424 779.5,424 L 781.75,425.75 C 781.75,425.75 781.75,426.75 782.75,426.75 C 783.75,426.75 785,427.5 785,427.5 L 784.75,429.75 C 784.75,429.75 785.5,430.25 786,431.25 C 786.5,432.25 787.75,435.75 787.75,435.75 C 787.75,435.75 789,437.5 789.25,436.5 C 789.5,435.5 792.75,433 792.75,432 C 792.75,431 796,427.5 796.25,425.75 C 796.5,424 797.5,420.75 797,418 C 796.5,415.25 796.75,414.25 795.5,412.25 C 794.25,410.25 794,410.25 793.25,406.75 C 792.5,403.25 790.75,402 789.5,402.5 C 788.25,403 787.5,403.25 787.5,403.25 C 787.5,403.25 788.25,401.5 787.75,399.25 C 787.25,397 787.75,396.75 785.5,397 C 783.25,397.25 782.25,396.75 782,395.75 C 781.75,394.75 781.5,385.125 785.125,385.625 C 788.75,386.125 786.5,387.625 788.375,388 C 790.25,388.375 791,391.125 792,390.5 C 793,389.875 793.5,388.625 794.125,388.125 C 794.75,387.625 796,387 795.625,386.125 C 795.25,385.25 793.875,386.25 795.125,385 C 796.375,383.75 797.875,383.375 798.25,382.625 C 798.625,381.875 799.5,381.125 800,381.25 C 800.5,381.375 801.375,382.375 801.625,381.125 C 801.875,379.875 801.875,378.75 801.875,378.75 C 801.875,378.75 801.875,378.125 803.25,376.875 C 804.625,375.625 804.125,376.375 804.75,374.75 C 805.375,373.125 804.875,373.875 805.875,372.875 C 806.875,371.875 807.5,371.625 807.375,370.5 C 807.25,369.375 806.75,369.5 807.875,369.25 C 809,369 810.625,369 810.625,367.375 C 810.625,365.75 810.25,364.75 810.875,363.75 C 811.5,362.75 811.625,363 811.875,361.375 C 812.125,359.75 812.5,359.375 812.5,357.25 C 812.5,355.125 811.625,355.25 812.375,353.625 C 813.125,352 813.375,348.75 812.25,348.625 C 811.125,348.5 809.625,349.25 810.625,346.875 C 811.625,344.5 812.375,343.625 811.5,342.125 C 810.625,340.625 809.75,340.875 810,339.5 C 810.25,338.125 810.75,336.5 809.375,336.125 C 808,335.75 805.5,335.625 806.75,334.875 C 808,334.125 808.375,334.375 808,333.625 C 807.625,332.875 807.625,332.625 807.125,332.625 C 806.625,332.625 805.875,333.625 805.625,332.125 C 805.375,330.625 805.875,330.5 804.875,330.25 C 803.875,330 803.75,330.75 803.75,329.375 C 803.75,328 804.125,327.5 803.625,327.25 C 803.125,327 802.875,327.125 802.875,326.25 C 802.875,325.375 802,325.75 802,325.125 C 802,324.5 801.125,324.5 802.125,324 C 803.125,323.5 803,324.5 804.375,323 C 805.75,321.5 804.875,322.75 806.25,320.75 C 807.625,318.75 809.875,318.5 807.375,318.25 C 804.875,318 805.25,318.75 804.375,317.875 C 803.5,317 804.25,316.75 802.75,316.875 C 801.25,317 801.25,317.25 800.875,316.75 C 800.5,316.25 801.625,315.875 799.75,315.875 C 797.875,315.875 798.5,316.625 797,315.75 C 795.5,314.875 795.375,315.25 795.5,314.25 C 795.625,313.25 795.625,312.375 796.625,312.125 C 797.625,311.875 797.375,312.125 798,311.625 C 798.625,311.125 799,311 799,310.25 C 799,309.5 800.375,309.125 800.75,308.125 C 801.125,307.125 801.125,305.625 801.875,305.625 C 802.625,305.625 802.625,305.5 803.25,307.25 C 803.875,309 802.375,309.75 804.125,309.875 C 805.875,310 806.875,310.125 807.625,310 C 808.375,309.875 807.875,310.125 808.75,311.125 C 809.625,312.125 809.5,312.625 810.375,313.25 C 811.25,313.875 811.375,315 811.375,315 C 811.375,315 811.375,315.625 812.5,315.375 C 813.625,315.125 815.375,315.125 815.375,315.125 C 815.375,315.125 814.875,314.5 815.5,316.625 C 816.125,318.75 816.5,318.25 816.5,320.125 C 816.5,322 815.625,323 816.5,323.625 C 817.375,324.25 818.375,324.5 818.375,324.5 C 818.375,324.5 821,322 821.25,320.875 C 821.5,319.75 822.25,319.375 822.125,318.5 C 822,317.625 821.75,318.25 822.25,317.125 C 822.75,316 822.75,314 822.75,314 C 822.75,314 822.25,313.875 821.75,313.625 C 821.25,313.375 821,313.5 820.75,312.125 C 820.5,310.75 821,310.75 820.125,310.375 C 819.25,310 818.875,309.375 818.625,308.625 C 818.375,307.875 818.5,307.375 817.875,307.25 C 817.25,307.125 817.375,307 816,306 C 814.625,305 814.875,305.5 813.875,304.875 C 812.875,304.25 812.625,303.875 812.625,303 C 812.625,302.125 812.375,301.875 813,301.25 C 813.625,300.625 814,302 814.125,299.75 C 814.25,297.5 813.5,297.375 814.625,295.125 C 815.75,292.875 815.5,292 816.375,291.25 C 817.25,290.5 817.375,290.25 818.375,289.5 C 819.375,288.75 819.125,289.625 820,287.75 C 820.875,285.875 820.625,285.25 821.25,284.625 C 821.875,284 823.25,281.75 823.125,280.125 C 823,278.5 822.5,278.625 822.875,277.125 C 823.25,275.625 823.375,275.625 823.625,273.625 C 823.875,271.625 823.375,271.875 824,269.5 C 824.625,267.125 824.75,266.625 824.375,265.75 C 824,264.875 823.75,263.875 823.75,262.375 C 823.75,260.875 823.875,259.625 823.75,259.125 C 823.625,258.625 823.5,258.125 823.125,256.75 C 822.75,255.375 821.75,254.375 821.75,254.375 C 821.75,254.375 821.5,255.375 821,253.75 C 820.5,252.125 820.625,252.625 820.375,251.625 C 820.125,250.625 819.375,252.125 819.75,248.75 C 820.125,245.375 820,244.25 820,244.25 C 820,244.25 819.875,240.875 817.625,240.875 C 815.375,240.875 814.625,241.5 814.375,239.625 C 814.125,237.75 813.125,237.375 811.625,237.125 C 810.125,236.875 809.875,237.125 809.125,236.75 C 808.375,236.375 808.75,236.125 807.5,236.125 C 806.25,236.125 807,236.625 805.25,236.125 C 803.5,235.625 803.5,236.875 803.25,235.625 C 803,234.375 803.125,233.5 804.875,230.75 C 806.625,228 806.5,227.375 806.75,226 C 807,224.625 805.5,225.25 807.75,223.25 C 810,221.25 809.375,220.625 812,220.625 C 814.625,220.625 815,220.625 816.875,219.75 C 818.75,218.875 817.25,217.875 819.5,218.875 C 821.75,219.875 821.5,220.875 822.75,219.75 C 824,218.625 824.375,217.875 825,217.875 C 825.625,217.875 828,219.25 828,219.25 C 828,219.25 829,219.75 829.875,219.5 C 830.75,219.25 831.5,221.125 832.375,219.375 C 833.25,217.625 832.875,217.125 832,216.625 C 831.125,216.125 830.125,218.375 830.625,215.375 C 831.125,212.375 831.625,211.25 831.25,210.25 C 830.875,209.25 828.25,205.75 831.375,207.875 C 834.5,210 833.75,210.375 834.875,211 C 836,211.625 835.5,211.625 835.875,214 C 836.25,216.375 840,215.875 839.5,218.875 C 839,221.875 839,222.75 838.75,224 C 838.5,225.25 837.125,224.375 837.5,229.5 C 837.875,234.625 838.25,243.75 842.75,247.75 C 847.25,251.75 848.375,252.25 849,250.5 C 849.625,248.75 850.25,248 849.875,246 C 849.5,244 848.5,243.25 849.25,241.875 C 850,240.5 850.625,239.625 850.75,238.5 C 850.875,237.375 851.125,236.5 851,235.25 C 850.875,234 851,232.5 850.75,231.5 C 850.5,230.5 850.25,228.875 850.125,227.875 C 850,226.875 849,225.125 848.625,224.25 C 848.25,223.375 847.125,221.625 846.875,220.375 C 846.625,219.125 846.125,218.625 847.375,216.875 C 848.625,215.125 846.25,214.125 849.125,214.5 C 852,214.875 851.875,215.25 853.375,215 C 854.875,214.75 856.375,215.625 856.875,213.875 C 857.375,212.125 857,212.375 857.875,211.125 C 858.75,209.875 859.125,210.125 860.125,208.625 C 861.125,207.125 859.625,206.625 862.125,204.625 C 864.625,202.625 866.125,201.875 866.75,201.125 C 867.375,200.375 868.625,200 867.625,199 C 866.625,198 866.5,197.125 865.125,196.25 C 863.75,195.375 863,194.75 862.375,194.625 C 861.75,194.5 860.875,194.25 861.5,193.75 C 862.125,193.25 863.125,192.375 864.125,192.375 C 865.125,192.375 865.125,193.375 866.625,192.625 C 868.125,191.875 868.75,191.375 869.75,192.125 C 870.75,192.875 870.125,192.25 870.875,193.75 C 871.625,195.25 870.125,194.75 872.125,195.875 C 874.125,197 876,197.25 876.625,197.25 C 877.25,197.25 876.875,198 878.375,197.125 C 879.875,196.25 879.625,196.625 880.625,195.25 C 881.625,193.875 882.25,193.625 881.875,191.875 C 881.5,190.125 880.875,189 880.875,188.5 L 879.75,186.625 C 879.75,186.625 879.75,185.75 878,185.75 C 876.25,185.75 875.25,185.875 875.25,185.25 C 875.25,184.625 875.75,183.5 874.625,183.5 C 873.5,183.5 872.875,182.5 872.125,183.375 C 871.375,184.25 870.875,185.25 870,184.75 C 869.125,184.25 868.125,183 868.125,183 C 868.125,183 868.375,181.75 868,181.25 C 867.625,180.75 866.5,179.625 866.5,179.625 L 864.875,178.875 C 864.875,178.875 861.5,175.5 860.25,175.375 C 859,175.25 857.875,175.5 857.5,174.5 C 857.125,173.5 859.25,173.5 856.125,173 C 853,172.5 852.875,173 851.875,171.625 C 850.875,170.25 852.25,169.875 849.75,169.75 C 847.25,169.625 846.125,170 844,169.125 C 841.875,168.25 841.875,167.375 840.875,168.375 C 839.875,169.375 840.375,169.5 839,170.625 C 837.625,171.75 838.375,172.75 836.25,172.75 C 834.125,172.75 834.5,173 833.25,172.5 C 832,172 832.25,171.625 830.75,171.5 C 829.25,171.375 829.625,171.5 828.125,171.625 C 826.625,171.75 827.875,172.625 825.5,171.5 C 823.125,170.375 823.125,170.125 821.375,169.25 C 819.625,168.375 819.125,168.125 818.25,168.125 C 817.375,168.125 813.75,167.75 812.75,168.625 C 811.75,169.5 810.625,171.5 810.125,170.375 C 809.625,169.25 810.875,169.125 809,168.125 C 807.125,167.125 806.375,167.375 805.25,167 C 804.125,166.625 804.375,166.375 804.875,165 C 805.375,163.625 807,163.5 804.75,163 C 802.5,162.5 802.625,161.625 801,161.625 C 799.375,161.625 799.75,161.625 798.875,162 C 798,162.375 797.875,162.375 797.5,162.875 C 797.125,163.375 797.875,164 797,163.75 C 796.125,163.5 796.625,163.875 795.75,162.875 C 794.875,161.875 795.125,161.5 794,161.625 C 792.875,161.75 793.75,161.5 792.125,161.875 C 790.5,162.25 790,162.25 788.875,162.375 C 787.75,162.5 785.875,164 785.875,164 C 785.875,164 786,164.25 784.625,164.375 C 783.25,164.5 784.125,163.75 782.25,165.125 C 780.375,166.5 781.25,166.625 779.75,166.5 C 778.25,166.375 779,165.5 777.375,166.25 C 775.75,167 775.625,166.625 775.625,167.625 C 775.625,168.625 774.625,169.25 774.625,169.25 C 774.625,169.25 774.625,168.875 774.25,167.625 C 773.875,166.375 773.375,166.875 773.5,165.625 C 773.625,164.375 768.25,163.625 767.5,161.875 C 766.75,160.125 766.875,160.375 766.625,158.75 C 766.375,157.125 763.375,156.375 762.875,156.5 C 762.375,156.625 761,158.125 760.375,158.875 C 759.75,159.625 759.5,160.25 758.5,161 C 757.5,161.75 757.375,162.25 756.375,162.625 C 755.375,163 755.5,163.625 754.625,163 C 753.75,162.375 752.25,161.375 751.375,160.625 C 750.5,159.875 748.875,159.625 748.25,159.625 C 747.625,159.625 744.75,160.25 743.625,160.875 C 742.5,161.5 741.25,161.375 741.25,161.375 C 741.25,161.375 740.625,160.75 739.625,161 C 738.625,161.25 736.75,160.5 735.375,162 C 734,163.5 732.375,164.875 731.75,165.25 C 731.125,165.625 728.75,166.875 728.125,167.25 C 727.5,167.625 726.25,168.5 726.25,168.5 C 726.25,168.5 725.5,168.625 725.75,167.75 C 726,166.875 725.75,165.75 726.625,165.375 C 727.5,165 728,165.5 728.875,164.5 C 729.75,163.5 729.75,163.25 730.875,162.5 C 732,161.75 732.75,162.5 732.75,161.5 C 732.75,160.5 732.25,160.875 732.75,159.75 C 733.25,158.625 734,157.75 734.875,157 C 735.75,156.25 737,154.75 737,154 C 737,153.25 734.25,152.375 733.75,150 C 733.25,147.625 730.125,152.125 729,151.375 C 727.875,150.625 726,149.25 725.875,148.5 C 725.75,147.75 726.125,146 725,145.875 C 723.875,145.75 723.125,145 722.375,146.125 C 721.625,147.25 722.125,147 720.5,148.25 C 718.875,149.5 717.5,150.625 717.25,150.125 C 717,149.625 716.75,148.25 716.75,147.625 C 716.75,147 714.25,148.25 713.75,148.5 C 713.25,148.75 711.625,149.875 711.125,150.125 C 710.625,150.375 709.25,150.375 707.75,150.5 C 706.25,150.625 706.25,149.75 702.875,151.75 C 699.5,153.75 697.375,155.25 697,155.75 C 696.625,156.25 695,156.75 695,156.75 C 695,156.75 692.875,155.625 692.75,157.25 C 692.625,158.875 691.75,161 691.75,161 C 691.75,161 689.125,161 688.5,161 C 687.875,161 686.5,162.375 686.5,162.375 L 684.5,164.875 C 684.5,164.875 683.625,165.375 684.375,166.375 C 685.125,167.375 689,168.5 689,168.5 L 692,169.125 C 692,169.125 694,168.25 694,169.25 C 694,170.25 693,171.625 692.5,171.625 C 692,171.625 689.75,171.375 689.75,171.375 C 689.75,171.375 688.625,169.375 687.875,169.625 C 687.125,169.875 685.875,170.125 685.875,170.125 L 684.375,168.875 L 683.625,168.5 C 683.625,168.5 683.375,165.125 682.5,167.625 C 681.625,170.125 682,170.875 682,170.875 C 682,170.875 682.75,172.25 683.25,172.75 C 683.75,173.25 684.5,173.625 684.75,174.125 C 685,174.625 685.125,176 685.125,176.625 C 685.125,177.25 684.625,178 684.625,178.5 C 684.625,179 686.625,180 686.625,180 C 686.625,180 687,180.75 685.5,180.625 C 684,180.5 685,182.5 683,180.25 C 681,178 680.875,177.75 680.875,177.75 L 678.625,177 L 677.5,176.625 L 675.75,176 L 674.75,177 C 674.75,177 674.25,177.5 674.75,178.25 C 675.25,179 675.625,178 675.75,179.5 C 675.875,181 675.75,181.625 675.625,182.125 C 675.5,182.625 675,182.75 675.5,183.75 C 676,184.75 677,185.125 677,185.125 C 677,185.125 677.5,186.5 677.5,187.25 C 677.5,188 676.75,189 678.625,189.375 C 680.5,189.75 680.125,189.875 681.25,189.75 C 682.375,189.625 681.875,189.375 683.5,189.375 C 685.125,189.375 684.875,188.75 685.5,189.5 C 686.125,190.25 686.625,190 686.5,191.5 C 686.375,193 687.25,192.875 686.125,193.625 C 685,194.375 684.5,195.375 683.875,193.625 C 683.25,191.875 683.875,190.375 682.875,190.75 C 681.875,191.125 682.125,190.875 681.375,191.5 C 680.625,192.125 679.625,193.125 679.625,193.125 C 679.625,193.125 677.75,193.5 677.25,192.5 C 676.75,191.5 676,190.875 676,190.875 C 676,190.875 675.625,192.875 674.75,191 C 673.875,189.125 674.125,189.875 673.75,188.625 C 673.375,187.375 672.875,186.75 672.875,186.75 C 672.875,186.75 672.125,187.875 672.125,186.5 C 672.125,185.125 673.125,184.75 672.125,184.25 C 671.125,183.75 671.625,184.375 671,183.5 C 670.375,182.625 670.125,181.125 670.125,181.125 C 670.125,181.125 667.625,180.375 668.625,179.25 C 669.625,178.125 669.5,178.5 670.125,177.375 C 670.75,176.25 671.375,175.625 671.5,174.875 C 671.625,174.125 671.625,173 670.5,172.75 C 669.375,172.5 669.375,174 668.625,172.5 C 667.875,171 668.125,170.875 667.625,170.875 C 667.125,170.875 666.5,171 665.875,170.875 C 665.25,170.75 664.625,169.75 664.625,169.75 L 661.75,168.75 L 660.875,171.25 C 660.875,171.25 660.875,171.375 661,172.375 C 661.125,173.375 661.375,174.125 660.875,174.375 C 660.375,174.625 660.125,175 660.375,175.875 C 660.625,176.75 662.75,178.875 662.125,178.875 C 661.5,178.875 660,180.375 660,180.375 L 659.75,183.75 L 662.25,184.375 L 662.625,186.875 L 663.625,187.75 L 662.95179,190.04383 z"
sodipodi:nodetypes="cssssscccsssssssssssssscsscscsssscscsssscssssscscccsssscssssssssssssssscsccsscsssscssssscscccssssssssssscccssscssscscccsccssssssssssssssssssssssssssssssscsscsssccssssscccsscscsssssssscssscsssssssscssssscsssssscscccsssscssscssssssccssssssssssscsssssssssscsssssssssscssscscsccssscscsssssssscscssssssccsccscssssssscsssssssssssscsssssssssssssssssssssssssssssssssssssssssssscscssscssscssssssssssssssssssssssscssscssssssssssssssscssssssssssssssssssssssssssssssssssssssssssscssssscsccssssssssssssssssssssssssssssscssssscsssssssssssscsssscssssssssssssssssssssscscsccsccsscscccscsssscsscccccsssscsssssssssscscsscssscssssssscccsssscccccc" />
<path
style="fill:#785c05;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="M 595.375,395.125 C 594.75,395.125 589,393.875 588.5,393.625 C 588,393.375 586.625,392.625 585.375,392.625 C 584.125,392.625 582,391.875 581.25,391.625 C 580.5,391.375 579,390.875 577.625,391.375 C 576.25,391.875 576.25,388 570.25,388.375 C 564.25,388.75 562.75,388.875 561.875,389.25 C 561,389.625 558.75,390.875 557.375,390.875 C 556,390.875 555.875,390.5 553.75,389.75 C 551.625,389 551.25,388.75 550.25,387.75 C 549.25,386.75 549.5,386 547.875,385.75 C 546.25,385.5 545.5,386.375 544.625,385.375 C 543.75,384.375 543.625,384 543.25,383.25 C 542.875,382.5 542.625,381.125 541.375,381 C 540.125,380.875 540.25,382.125 539.875,380.25 C 539.5,378.375 539.125,376.875 538.625,376.5 C 538.125,376.125 537.25,375.75 536.125,374.625 C 535,373.5 534.875,372.375 534.875,372.375 L 532.75,371 C 532.75,371 527.25,371.25 526.625,371.25 C 526,371.25 524.875,371.375 524.125,371.875 C 523.375,372.375 523.75,372.625 522.375,373.25 C 521,373.875 518.75,375 518.125,375.25 C 517.5,375.5 514.625,375.625 514.625,375.625 C 514.625,375.625 514.625,376.625 513.5,377.375 C 512.375,378.125 510.875,379 509.625,378.875 C 508.375,378.75 508.23106,378.30628 507.25,378.5 C 505.40217,378.86488 504.19141,380.08233 503.5,380 C 502.86709,379.92463 501.75,380.375 500.625,380.75 C 499.5,381.125 500.75,381.25 498.375,381.25 C 496,381.25 494.75,381.25 494,381.125 C 493.25,381 492.625,381.375 492,381.5 C 491.375,381.625 490.5,381.75 490.73211,381.9197 C 489.31789,381.9197 488.61079,382.98036 488.61079,382.98036 L 488.96434,387.57655 L 485.78236,391.11209 C 485.78236,391.11209 485.07525,393.94051 484.36814,396.06183 C 483.66104,398.18315 482.60038,400.30447 482.60038,400.30447 L 481.18616,404.19356 C 481.18616,404.19356 479.625,405 479.75,405.625 C 479.875,406.25 480.125,407.5 479.625,407.875 C 479.125,408.25 478.5,407.875 477.875,409.125 C 477.25,410.375 476.75,411.5 476.75,412 C 476.75,412.5 477.375,413 476.5,414 C 475.625,415 474.75,415.125 474.5,417.25 C 474.25,419.375 473.25,421.25 474.25,422.5 C 475.25,423.75 475.875,424.75 475.875,426.125 C 475.875,427.5 475.5,427.375 475.625,429.375 C 475.75,431.375 476,431.25 476,432.625 C 476,434 475.875,435.875 475.625,437.5 C 475.375,439.125 474.875,439.625 474.5,441.5 C 474.125,443.375 471.875,444.125 473.625,445.75 C 475.375,447.375 475.125,448.875 475.625,450.25 C 476.125,451.625 480.625,451.25 480.625,454.125 C 480.625,457 484,457.375 484.25,458.875 C 484.5,460.375 483.625,462.5 486.625,463.75 C 489.625,465 489.375,466.875 490,467.375 C 490.625,467.875 493.375,468.25 494,469 C 494.625,469.75 495.5,471 496.125,471.625 C 496.75,472.25 497.375,473.25 499.5,473.125 C 501.625,473 501.875,473.125 505.25,472.75 C 508.625,472.375 511,472.25 511.875,472.125 C 512.75,472 514.625,472.625 516,472 C 517.375,471.375 517.125,470.25 518.875,469.875 C 520.625,469.5 521.25,469.875 522.375,469.625 C 523.5,469.375 527.875,469.375 528.5,469.875 C 529.125,470.375 529.875,469.875 530.625,471.5 C 531.375,473.125 529.125,475.625 533.875,475.375 C 538.625,475.125 541.375,474.375 542,475.5 C 542.625,476.625 540.5,478.25 540.875,479.75 C 541.25,481.25 541.75,481.625 541.25,482.375 C 540.75,483.125 539.625,483.5 540,484.625 C 540.375,485.75 541.375,486.25 540.875,486.75 C 540.375,487.25 539.75,488.75 539.125,489.625 C 538.5,490.5 535.875,491.75 536.875,492.875 C 537.875,494 544.5,499.25 545.875,502.375 C 547.25,505.5 553,510.25 551.25,513 C 549.5,515.75 547.25,517.125 547.75,518.5 C 548.25,519.875 550.125,522.25 550.25,523 C 550.375,523.75 550.625,524.5 550.5,525.5 C 550.375,526.5 551.5,526.125 550.75,527.25 C 550,528.375 549.5,528.875 549.25,529.375 C 549,529.875 548.25,530.875 548.25,532 C 548.25,533.125 547.625,533.75 547.25,534.5 C 546.875,535.25 546.75,535.25 546.625,536.125 C 546.5,537 546.625,536.625 546.5,538.125 C 546.375,539.625 546,539.875 545.75,540.875 C 545.5,541.875 545.625,543.125 545.625,543.125 C 545.625,543.125 546.875,545.875 547,546.5 C 547.125,547.125 547.375,548.125 547.25,549.125 C 547.125,550.125 546.625,550.125 547.75,551.5 C 548.875,552.875 549.5,553.375 549.625,554.125 C 549.75,554.875 550.125,555.125 550.125,555.125 C 550.125,555.125 553.375,558.25 553.375,558.875 C 553.375,559.5 554.125,560 554,560.875 C 553.875,561.75 553.75,561.625 553.75,562.75 C 553.75,563.875 553.875,564.375 554,565.25 C 554.125,566.125 555.625,568.75 555.875,569.375 C 556.125,570 556.875,570.375 556.875,571.375 C 556.875,572.375 556.875,572.5 556.875,573.75 C 556.875,575 556.25,574.875 556.75,576.375 C 557.25,577.875 557.875,578.375 558.125,578.875 C 558.375,579.375 559.625,578.75 559.625,579.875 C 559.625,581 559.375,581.5 559.625,582.875 C 559.875,584.25 560.875,585.125 561.25,585.875 C 561.625,586.625 561.625,586.75 561.625,588.125 C 561.625,589.5 561.75,589.5 561.75,590.75 C 561.75,592 561.75,592.5 561.75,593.5 C 561.75,594.5 562.5,596.5 562.5,597.125 C 562.5,597.75 561.375,598.125 562.25,599.25 C 563.125,600.375 563.25,600.5 564.125,600.625 C 565,600.75 566.125,600.375 566.625,601.25 C 567.125,602.125 567.625,602.375 567.625,602.375 C 567.625,602.375 568.125,601.375 568.75,601 C 569.375,600.625 570.125,600.125 571.125,600.125 C 572.125,600.125 572.75,600.125 573.625,599.75 C 574.5,599.375 572.875,598.875 577.75,598.875 C 582.625,598.875 582.5,598.5 584.25,597.25 C 586,596 583.875,595.5 587.375,594.75 C 590.875,594 591.375,594.125 592.125,593.5 C 592.875,592.875 593,592.5 593.75,592.5 C 594.5,592.5 595.75,593.5 595.375,592.25 C 595,591 593.375,591.75 594.875,589.875 C 596.375,588 598,586.25 598,586.25 C 598,586.25 597,586.375 596.75,585.375 C 596.5,584.375 598.875,581.625 599.625,581.125 C 600.375,580.625 601.75,581.5 602,579.875 C 602.25,578.25 602.25,577.625 601.875,577.125 C 601.5,576.625 600.25,576.75 601.625,575.5 C 603,574.25 603.75,571.75 603.75,571 C 603.75,570.25 603.375,568.25 604.5,567.75 C 605.625,567.25 606,567.375 606.375,566.375 C 606.75,565.375 609.125,562 609.5,561.125 C 609.875,560.25 608.375,559.375 609.125,554.75 C 609.875,550.125 611.25,548.875 611.75,548.75 C 612.25,548.625 612.875,547.375 614,547 C 615.125,546.625 614.625,547.875 615.75,546.125 C 616.875,544.375 616.25,545 617,543.875 C 617.75,542.75 617.5,542.75 618.625,541.625 C 619.75,540.5 619.875,539.75 620.375,539.25 C 620.875,538.75 621.625,538.75 621.875,538.125 C 622.125,537.5 622.875,535.25 622.75,534.25 C 622.625,533.25 622.375,532.625 622.5,531.875 C 622.625,531.125 623.125,530.625 623,529.625 C 622.875,528.625 623,528.5 622.75,527.5 C 622.5,526.5 622.375,525.75 622.375,525.75 C 622.375,525.75 621,522.125 621.5,521.125 C 622,520.125 619.125,521 619.125,521 C 619.125,521 620,516.5 618.625,515.75 C 617.25,515 617.25,514.625 617.25,514.625 C 617.25,514.625 617.5,512.625 617.5,511.75 C 617.5,510.875 616.625,508.375 617,507.875 C 617.375,507.375 617.75,505.75 617.75,505 C 617.75,504.25 617.5,503.25 618.875,502.25 C 620.25,501.25 620.875,501.75 621.875,500.5 C 622.875,499.25 623.375,498.875 623.875,498.625 C 624.375,498.375 625.375,497.375 625.625,496.875 C 625.875,496.375 628.25,491.75 632.125,488 C 636,484.25 642.25,479.25 644.5,474.25 C 646.75,469.25 652,458.875 650.5,456.25 C 649,453.625 645.75,456 643.25,456.625 C 640.75,457.25 637.25,456.875 636.75,457.25 C 636.25,457.625 636.375,457.875 635.25,458.5 C 634.125,459.125 631.125,459.375 631.125,459.375 C 631.125,459.375 627.75,459.5 627.125,458.5 C 626.5,457.5 625.75,457.375 626.375,455.25 C 627,453.125 627.625,453.375 627,452.375 C 626.375,451.375 626.25,451.875 625.25,450.375 C 624.25,448.875 621.875,448.375 621.875,446.875 C 621.875,445.375 621.75,445 621.125,445 C 620.5,445 620.25,445.25 619.75,444.25 C 619.25,443.25 619.125,442.625 618.625,441.25 C 618.125,439.875 619,440.625 618,439 C 617,437.375 616,437.875 616,435.875 C 616,433.875 616.75,434 615.75,433.125 C 614.75,432.25 614.625,433 614.125,431.5 C 613.625,430 613.25,427.75 613.25,427.125 C 613.25,426.5 613,427 612.75,426.25 C 612.5,425.5 610.5,424 610.5,424 C 610.5,424 609.625,424.125 609.25,423 C 608.875,421.875 609,423 608.75,420.75 C 608.5,418.5 607.625,418 606.75,416.5 C 605.875,415 609.75,418 605.375,412 C 601,406 598.5,402.625 598.625,402.125 C 598.625,402.125 597.5,398.875 598.625,399.625 C 599.75,400.375 600.5,401.75 601.25,402.25 C 602,402.75 602.625,403 603.125,402.875 C 603.625,402.75 603.75,400.875 603.75,400.125 C 603.75,399.375 604.75,396.75 604.75,396.75 L 602.5,392.375 L 600.5,393.625 C 600.5,393.625 600.25,394.5 599.75,394.5 C 599.25,394.5 598.25,394 598.25,394 L 597,393.625 L 595.375,395.125 z"
id="path2419"
sodipodi:nodetypes="cssssssssssssssssccsssscssssssssccccsccsssssssssssssssssssssssssssssssssssssssssssssssscsssscssssssssssssssssssscsssssssssscssssssssssssssssssssscscscssssssssssssscsssssssssssssscsssss" />
<path
style="fill:#785c05;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="M 659.75,534 C 660,535 660.75,534.75 660.75,537 C 660.75,539.25 661.25,542.5 659.75,540.5 C 658.25,538.5 658.25,537.75 658.25,539 C 658.25,540.25 658.5,542.5 658.5,542.5 C 658.5,542.5 659.73063,544.2007 658.13964,544.2007 C 656.54865,544.2007 656.37187,544.02393 656.37187,544.73103 C 656.37187,545.43814 656.54865,546.85235 656.54865,546.85235 L 655.48799,547.91301 L 654.95766,550.21111 C 654.95766,550.21111 656.72542,550.38789 655.66476,552.15565 C 654.6041,553.92342 654.25055,554.45375 654.25055,554.45375 C 654.25055,554.45375 654.42733,552.86276 654.07377,556.3983 C 653.72022,559.93383 653.72022,560.46416 653.72022,560.46416 C 653.72022,560.46416 654.78088,560.11061 653.36667,561.87837 C 651.95245,563.64614 651.42212,564.17647 651.06857,565.06035 C 650.71502,565.94424 651.42212,566.82812 650.36146,567.712 C 649.3008,568.59589 648.77047,569.30299 648.77047,569.30299 L 647.70981,570.36365 C 647.70981,570.36365 647.35626,571.77787 647.35626,572.48497 C 647.35626,573.19208 646.82593,573.72241 646.82593,573.72241 C 646.82593,573.72241 646.2956,574.25274 646.2956,574.95985 C 646.2956,575.66696 646.47238,576.02051 645.58849,576.72762 C 644.70461,577.43472 645.05816,577.6115 643.9975,578.49538 C 642.93684,579.37927 642.58329,578.14183 642.58329,580.08637 C 642.58329,582.03092 642.05296,582.9148 641.16907,582.9148 C 640.28519,582.9148 631.79991,583.09158 630.3857,582.9148 C 628.97148,582.73802 631.26958,575.66696 629.32504,574.42952 C 627.38049,573.19208 626.14306,568.94944 627.38049,568.06556 C 628.61793,567.18167 627.91082,568.06556 628.79471,567.18167 C 629.67859,566.29779 629.67859,566.29779 630.20892,565.23713 C 630.73925,564.17647 631.62313,564.17647 631.62313,564.17647 C 631.62313,564.17647 630.56247,561.87837 631.26958,561.87837 C 631.97669,561.87837 631.62313,559.22672 631.62313,559.22672 C 631.62313,559.22672 631.97669,557.98929 632.50702,557.1054 C 633.03735,556.22152 631.97669,555.33764 633.3909,555.16086 C 634.80511,554.98408 635.51222,555.33764 635.51222,554.45375 C 635.51222,553.56987 634.62834,553.39309 633.92123,553.21631 C 633.21412,553.03954 632.86057,553.21631 632.86057,551.97888 C 632.86057,550.74144 632.33024,551.27177 631.97669,550.03433 C 631.62313,548.7969 630.56247,549.504 631.79991,547.91301 C 633.03735,546.32202 633.03735,547.38268 633.3909,545.79169 C 633.74445,544.2007 632.33024,543.14004 634.09801,543.14004 C 635.86577,543.14004 636.3961,543.67037 638.16387,542.96327 C 639.93164,542.25616 637.98709,542.07938 640.81552,542.25616 C 643.64395,542.43294 643.82073,543.31682 644.88139,542.25616 C 645.94205,541.1955 646.47238,541.54905 646.64915,540.31162 C 646.82593,539.07418 646.64915,538.72063 647.88659,538.1903 C 649.12403,537.65997 649.12403,538.1903 650.00791,537.48319 C 650.89179,536.77608 651.5989,535.8922 651.42212,534.83154 C 651.24535,533.77088 650.36146,533.24055 651.95245,533.24055 C 653.54344,533.24055 653.36667,533.77088 654.07377,532.88699 C 654.78088,532.00311 654.6041,532.00311 654.95766,530.41212 C 655.31121,528.82113 654.95766,528.46758 655.84154,527.93725 C 656.72542,527.40692 658.31641,525.63915 658.31641,525.63915 C 658.31641,525.63915 658.84674,524.04816 659.55385,526.52303 C 660.26096,528.99791 659.55385,528.64435 660.43773,529.35146 C 661.32162,530.05857 661.49839,529.52824 661.49839,530.41212 C 661.49839,531.296 661.14484,533.06377 661.14484,533.06377 L 659.75,534 z"
id="path2394" />
<path
style="fill:#9c240f;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="M 450.5,439.75 C 450.25,441 451,442.5 449.5,444 C 448,445.5 448,448 446.25,448 C 444.5,448 442.25,449 442.25,449 L 442.25,450.75 C 442.25,450.75 443.25,453 441.75,454 C 440.25,455 439.25,455.5 439,456.5 C 438.75,457.5 439.125,459.5 439.125,459.5 L 438.875,461.25 C 438.875,461.25 439.875,463.25 439.125,464.25 C 438.375,465.25 438.375,465.375 438.375,467 C 438.375,468.625 439.125,471.25 438.375,472 C 437.625,472.75 438.125,474 437.25,474.375 C 436.375,474.75 435.25,475 434.875,475.75 C 434.5,476.5 435.125,477.375 434.5,478.25 C 433.875,479.125 434,479.875 433.375,480.125 C 432.75,480.375 432.5,480 432.25,481.125 C 432,482.25 432.625,483.125 431.625,483.625 C 430.625,484.125 429.375,485.25 429,485.75 C 428.625,486.25 425.75,487.25 425.25,487.375 C 424.75,487.5 413.75,488.375 412.25,491.5 C 410.75,494.625 410.75,497.375 410.125,498 C 409.5,498.625 409.25,497.75 409.375,499.125 C 409.5,500.5 409.625,501 409.625,502.375 C 409.625,503.75 410.125,502.875 410,504.125 C 409.875,505.375 410,506.875 408.625,507.375 C 407.25,507.875 405.75,508 405.625,509.25 C 405.5,510.5 405.625,510.875 405.375,511.625 C 405.125,512.375 404.875,512.5 404.375,513 C 403.875,513.5 403.5,514.125 403.25,514.875 C 403,515.625 403.375,515.625 402.75,516.5 C 402.125,517.375 402.125,517.25 401.875,518 C 401.625,518.75 402.375,518.875 401,519.25 C 399.625,519.625 396.375,521.125 397,522 C 397.625,522.875 398.5,523.125 397,523.5 C 395.5,523.875 395.75,523.75 394.25,524 C 392.75,524.25 393,524.125 391.375,524.5 C 389.75,524.875 389.5,525.375 388.5,525.5 C 387.5,525.625 387,525.375 386.375,525.375 C 385.75,525.375 385.25,525.375 385.25,526 C 385.25,526.625 385.125,526.75 385.75,527.25 C 386.375,527.75 388.125,528.25 388.25,528.75 C 388.375,529.25 388.375,529.625 388.375,530.5 C 388.375,531.375 388.5,531.5 389,531.625 C 389.5,531.75 389.625,531.875 389.75,532.375 C 389.875,532.875 388.5,534.625 387.75,535.125 C 387,535.625 386.375,536.25 384.625,536.375 C 382.875,536.5 383.25,536.25 382.125,536.875 C 381,537.5 381,537.625 379.75,537.625 C 378.5,537.625 378.125,537.625 376.875,537.875 C 375.625,538.125 374.75,538.375 374.75,538.375 C 374.75,538.375 375.25,539.125 375.375,539.875 C 375.5,540.625 376.125,540.75 375.625,541.875 C 375.125,543 374.25,543.5 373.875,544 C 373.5,544.5 373.5,544.25 373.5,545.25 L 370.875,545.625 C 370.875,545.625 370,544.875 369.75,546 C 369.5,547.125 370.75,548.125 370.75,548.125 C 370.75,548.125 369,550.75 369.25,551.375 C 369.5,552 370.125,553 369.875,553.5 C 369.625,554 369.75,554.25 369.125,554.75 C 368.5,555.25 369,555.75 368.625,556.25 C 368.25,556.75 367.875,557.5 367,557.875 C 366.125,558.25 365.875,558.875 365.875,558.875 L 365.25,560 C 365.25,560 364.75,560.625 365.375,561.375 C 366,562.125 366.625,561.625 366.25,563 C 365.875,564.375 366,564.75 366,564.75 C 366,564.75 367.25,563.375 367.125,567.125 C 367,570.875 366.375,571.75 366.375,571.75 C 366.375,571.75 365.75,571.625 366,572.75 C 366.25,573.875 366.75,574.875 366.125,575.5 C 365.5,576.125 365.625,575.125 364.625,577.125 C 363.625,579.125 364.625,581.875 365.25,582.5 C 365.875,583.125 366.375,583.25 366.25,584.5 C 366.125,585.75 365.5,585.875 366,586.75 C 366.5,587.625 368.125,588.25 368.375,589.125 C 368.625,590 368.125,590.625 368.625,591.25 C 369.125,591.875 369.75,592.375 369.75,592.375 C 369.75,592.375 369.5,593.375 369.5,594.5 C 369.5,595.625 369,595.5 369,596.5 C 369,597.5 369,598.75 369.5,597.5 C 370,596.25 369.875,596.25 370.375,595.75 C 370.875,595.25 372.5,595.25 373,595.25 C 373.5,595.25 374,594.5 374.875,594.875 C 375.75,595.25 375.875,594.875 376.375,596.125 C 376.875,597.375 376.625,597.625 377.625,597.875 C 378.625,598.125 379.5,598 380.5,598 C 381.5,598 381.75,597.25 382,598.375 C 382.25,599.5 383.75,599.875 382.25,600.375 C 380.75,600.875 380.5,600.375 379,600.875 C 377.5,601.375 377.5,601.375 377,601.5 C 376.5,601.625 376.5,602 375.625,602.375 C 374.75,602.75 375.25,603.125 373.625,602.75 C 372,602.375 372.625,602.875 371.5,602.125 C 370.375,601.375 369.875,601 369.875,600.5 C 369.875,600 369.125,599.5 369.125,599.5 L 366.25,597 C 366.25,597 366,597 364.875,597 C 363.75,597 363.625,597 362.875,597 C 362.125,597 361.625,596.375 361.625,596.375 L 359.875,596.4375 C 359.875,596.4375 359.4375,596 359.6875,595.4375 C 359.9375,594.875 359.9375,594.875 359.625,594.8125 C 359.3125,594.75 358.4375,594.6875 357.875,594.5 C 357.3125,594.3125 357.875,593.5 357.75,593.25 C 357.625,593 356.4375,593 355.8125,592.9375 C 355.1875,592.875 354.3125,592.5625 353.8125,591.9375 C 353.3125,591.3125 353.4375,591.125 352.375,590.25 C 351.3125,589.375 351.625,589.25 350.6875,588.9375 C 349.75,588.625 349.4375,588.6875 349.25,587.9375 C 349.0625,587.1875 348.3125,587.0625 348,586.3125 C 347.6875,585.5625 348,585.0625 347.125,584.5 C 346.25,583.9375 346.0625,584.375 345.9375,583.1875 C 345.8125,582 346.125,581.4375 345.8125,580.8125 C 345.5,580.1875 345.6875,580.6875 345.1875,579.9375 C 344.6875,579.1875 344.4375,579.0625 344.25,578.1875 C 344.0625,577.3125 344.0625,576.875 343.75,576.3125 C 343.4375,575.75 342.875,575.5 342.8125,574.875 C 342.75,574.25 342.75,574 342.75,573.4375 C 342.75,572.875 342.9375,572.4375 342.625,571.1875 C 342.3125,569.9375 342.5,569.625 341.875,568.875 C 341.25,568.125 341.1875,568.625 340.6875,567 C 340.1875,565.375 339.625,565.125 339.9375,564.3125 C 340.25,563.5 340.4375,563.375 340.5,562.75 C 340.5625,562.125 340.9375,562.25 341,561.375 C 341.0625,560.5 341.0625,560.75 341.0625,559.5625 C 341.0625,558.375 340.3125,559.875 341.1875,556.625 C 342.0625,553.375 342.0625,553.5 342.125,552.75 C 342.1875,552 343.375,551.875 342.9375,550.5625 C 342.5,549.25 342.25,549.25 342.375,548.375 C 342.5,547.5 343,547.125 342.875,546.6875 C 342.75,546.25 342.9375,546.4375 342.75,545.9375 C 342.5625,545.4375 343.25,545.6875 342.4375,545.0625 C 341.625,544.4375 341.375,544.5625 341.25,543.625 C 341.125,542.6875 341.125,541.9375 341.1875,538.25 C 341.25,534.5625 341,534.3125 341.625,533.25 C 342.25,532.1875 342.5625,532.0625 342.5625,531.1875 C 342.5625,530.3125 343.0625,529.1875 342.6875,528.125 C 342.3125,527.0625 342,526.9375 342.375,526.3125 C 342.75,525.6875 343.0625,525.6875 343.0625,524.9375 C 343.0625,524.1875 343.0625,525.25 343.125,523.625 C 343.1875,522 342.6875,523.1875 343.3125,521.0625 C 343.9375,518.9375 344.1875,516.8125 344.25,515.75 C 344.3125,514.6875 344.375,514.375 344.0625,513.75 C 343.75,513.125 343.3125,510.125 343.3125,509.125 C 343.3125,508.125 343.5,508.375 343.75,507.375 C 344,506.375 344.0625,506.1875 344,505.875 C 343.9375,505.5625 344,505.25 344.1875,504.4375 C 344.375,503.625 344,501.9375 344.6875,500.1875 C 345.375,498.4375 345.5625,499.125 345.375,497.875 C 345.1875,496.625 343.75,494.625 344.1875,493.25 C 344.625,491.875 345.0625,492.125 345,490.3125 C 344.9375,488.5 344.75,486.0625 345.1875,485.0625 C 345.625,484.0625 345.875,480.625 345.6875,479.8125 C 345.5,479 346.25,474.625 344,473.875 C 341.75,473.125 341.75,473.375 341.125,472.75 C 340.5,472.125 339.25,469.375 338.5,469.125 C 337.75,468.875 336.625,468.625 335.75,468 C 334.875,467.375 333.625,466.25 333.625,466.25 C 333.625,466.25 332.75,466.125 331.875,465.625 C 331,465.125 329.625,464.125 329.125,463.375 C 328.625,462.625 328.375,463.375 327.875,462.375 C 327.375,461.375 325.875,459.125 326,458.125 C 326.125,457.125 327.125,455.25 325.75,454.75 C 324.375,454.25 323,452.125 322.375,451.625 C 321.75,451.125 319.75,449 319.25,448 C 318.75,447 317.875,447.75 317.375,445.75 C 316.875,443.75 317.125,442.125 317.125,442.125 C 317.125,442.125 315.125,439.875 314.625,439.375 C 314.125,438.875 313.25,436.25 313.25,436.25 C 313.25,436.25 313,432.25 313.375,431 C 313.75,429.75 314.75,430.875 314,428.75 C 313.25,426.625 312.25,427.125 312.875,425.125 C 313.5,423.125 314.125,422.375 314.875,420.5 C 315.625,418.625 315.5,416.125 317.375,414.875 C 319.25,413.625 318.875,411.125 318.875,410.375 C 318.875,409.625 318.875,408.25 318.875,407.25 C 318.875,406.25 318.75,405.5 319.875,404.25 C 321,403 321.625,401.875 321.625,401.875 L 322.875,400.75 L 322.875,398.75 L 323.625,396.5 C 323.625,396.5 324.125,395.375 324.25,394.875 C 324.375,394.375 324,392.375 324,392.375 L 324.25,390.75 L 327.375,389.875 C 327.375,389.875 327.75,390.25 328.75,389.875 C 329.75,389.5 330.75,388.625 330.75,388.625 L 333,387.375 C 333,387.375 334.5,386.375 335,385.875 C 335.5,385.375 337.25,384.75 337.25,384.75 C 337.25,384.75 338.125,384.5 338.75,384.5 C 339.375,384.5 341.5,383.875 341.5,383.875 C 341.5,383.875 341.625,383.25 342.375,382.75 C 343.125,382.25 343.625,381.625 344.25,381.5 C 344.875,381.375 348.25,380.875 348.25,380.875 C 348.25,380.875 349.5,381.75 349.625,383 C 349.75,384.25 349.25,385 350.25,384.875 C 351.25,384.75 352.25,384.5 352.75,384.25 C 353.25,384 353,382.875 354.25,383.75 C 355.5,384.625 355.625,384.875 356.125,384.875 C 356.625,384.875 358,384.5 358,384.5 L 363.5,386.375 C 363.5,386.375 364.75,386.125 365.375,386 C 366,385.875 369.125,385.625 369.125,385.625 C 369.125,385.625 370.5,386 371,386.5 C 371.5,387 374.625,388.875 375.625,390.375 C 376.625,391.875 378.125,392.375 378.375,393 C 378.625,393.625 379.625,394.25 380.125,394.25 C 380.625,394.25 380.625,395.25 381.25,395.375 C 381.875,395.5 383.25,395.5 383.25,395.5 C 383.25,395.5 383.375,396 383.875,396.625 C 384.375,397.25 385.5,396 385.75,397.375 C 386,398.75 385.625,399.5 386.375,399.5 C 387.125,399.5 387.875,399 387.875,399 L 389.125,398.5 C 389.125,398.5 389.125,397.5 390.125,398.5 C 391.125,399.5 391.875,399.25 392.75,399.5 C 393.625,399.75 392.375,400.375 394.5,400.875 C 396.625,401.375 398.625,401.625 399.125,401.625 C 399.625,401.625 399.625,399.625 401.375,401.25 C 403.125,402.875 404.375,403.625 404.375,403.625 C 404.375,403.625 404.625,403.375 405.375,406 C 406.125,408.625 406.25,409.375 406.75,410.25 C 407.25,411.125 409.875,412.5 408,414.75 C 406.125,417 403.75,416.625 405,417.125 C 406.25,417.625 407.75,419.125 408.625,419.125 C 409.5,419.125 411.375,418.75 412,418.75 C 412.625,418.75 414.375,419.125 415.125,419.25 C 415.875,419.375 416.75,419.125 417.5,419.25 C 418.25,419.375 419.125,419.75 419.875,420.125 C 420.625,420.5 421.5,420.25 422.25,420.625 C 423,421 423,421.125 423.5,422 C 424,422.875 425,423.25 426.125,423.25 C 427.25,423.25 427.625,423 428.375,423.5 C 429.125,424 430.125,423.5 430.75,423.5 C 431.375,423.5 431.875,422.875 432.75,423.875 C 433.625,424.875 433.75,424.75 435.625,425 C 437.5,425.25 440.875,427.625 441.75,427.875 C 442.625,428.125 443.125,429.75 444,430 C 444.875,430.25 446.25,430 447.25,431 C 448.25,432 449.25,432.75 449.5,434.5 C 449.75,436.25 449.5,436.75 449.875,437.875 C 450.25,439 450.75,440.25 450.5,439.75 z"
id="path2398"
sodipodi:nodetypes="cssccssccssssssssssssssssssssssssssssssssssssssssscsssccsc" />
<path
style="fill:#950d98;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="M 778.125,511.375 C 779,512.75 778.5,513 780.5,513 C 782.5,513 783.75,512.625 784.875,512.875 C 786,513.125 785.5,513.5 786.75,513.375 C 788,513.25 789.125,512.5 790.125,512.375 C 791.125,512.25 792.375,512.125 793.125,512.375 C 793.875,512.625 795,513.5 796.375,513.625 C 797.75,513.75 800.875,513.75 801.375,513.875 C 801.875,514 803.5,515.25 804.25,514.375 C 805,513.5 805.25,513.75 805.5,512.375 C 805.75,511 805.75,510.25 804.875,510 C 804,509.75 804.625,509.25 802.5,509.125 C 800.375,509 799.75,508.75 799.125,508.5 C 798.5,508.25 797.5,507.25 796.75,507 C 796,506.75 793.875,505.875 792.5,505.875 C 791.125,505.875 788.375,505.625 787,505.625 C 785.625,505.625 785.375,505 783.875,506.125 C 782.375,507.25 781.125,507.75 780.25,508.375 C 779.375,509 779.625,508.5 779.25,509.75 C 778.875,511 778.5,511.625 778.125,511.375 z"
id="path2408" />
<path
style="fill:#8a168c;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="M 801.5,503.25 C 802,501.5 801.625,501.75 801.75,500.25 C 801.875,498.75 802.25,499.125 802.875,498.125 C 803.5,497.125 803.125,495.5 804.25,497.375 C 805.375,499.25 805,500 806.375,501.125 C 807.75,502.25 808,503.5 809.125,502.375 C 810.25,501.25 812.375,500.125 811.125,498.75 C 809.875,497.375 809.125,498.75 809,495.5 C 808.875,492.25 808.75,491.125 807.875,491.25 C 807,491.375 806.25,492.625 806.125,490.875 C 806,489.125 805.5,487 806.875,486.875 C 808.25,486.75 809.625,487.625 810.5,486 C 811.375,484.375 812.375,483.875 810.75,483.625 C 809.125,483.375 807.875,483.125 807,483.25 C 806.125,483.375 805.5,483.375 805.625,482.625 C 805.75,481.875 804.75,481.125 806.5,481.125 C 808.25,481.125 807.875,481.5 809.5,481.375 C 811.125,481.25 812.75,480.375 813.25,479.875 C 813.75,479.375 814.375,477.125 815.125,476.625 C 815.875,476.125 816.375,475.75 816.25,475.125 C 816.125,474.5 815.875,474 815.125,473.75 C 814.375,473.5 813.125,473.25 812.75,473.75 C 812.375,474.25 811.5,475.625 810.625,476 C 809.75,476.375 805.5,476.125 804.5,476.625 C 803.5,477.125 802.625,477.75 802,478.125 C 801.375,478.5 800,479.125 800.25,480.625 C 800.5,482.125 800.5,483.375 800.5,484 C 800.5,484.625 799.25,486.375 799,487 C 798.75,487.625 799.125,489.5 798.75,490.375 C 798.375,491.25 798.125,490.75 798.125,492 C 798.125,493.25 797.875,493.5 798.25,494.375 C 798.625,495.25 799.25,495.25 798.875,496.5 C 798.5,497.75 797.875,497 798.375,498.375 C 798.875,499.75 799.5,499.25 799.625,500.5 C 799.75,501.75 799.375,502.25 799.625,503.25 C 799.875,504.25 801.625,503.375 801.5,503.25 z"
id="path2411" />
<path
style="fill:#7b147d;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="M 767.38764,479.85399 L 768.09474,478.08622 C 768.09474,478.08622 768.27152,480.03076 768.4483,481.09142 C 768.62507,482.15208 768.09474,483.5663 768.62507,484.2734 C 769.1554,484.98051 768.80185,485.33406 768.62507,486.39472 C 768.4483,487.45538 769.33218,489.22315 769.33218,489.22315 L 770.625,490.75 L 772,491 C 772,491 772.625,491.875 772.875,492.5 C 773.125,493.125 774,493.5 774,493.5 C 774,493.5 774,494.875 774,495.75 C 774,496.625 773,497.125 774.125,497.375 C 775.25,497.625 776.625,497.625 777.375,497.625 C 778.125,497.625 777.875,498 778.375,499 C 778.875,500 779.375,500.125 779.5,501.5 C 779.625,502.875 779.625,503.875 779.125,504.5 C 778.625,505.125 779,505.625 778.375,506.375 C 777.75,507.125 776.75,507.25 776,507.375 C 775.25,507.5 775,507.5 774.75,508.375 C 774.5,509.25 776.375,510.125 774,510 C 771.625,509.875 771.75,510.5 771.25,509.25 C 770.75,508 772.125,507.5 770.375,506.875 C 768.625,506.25 770.125,508.75 767.5,505.25 C 764.875,501.75 764,504.125 763.625,501 C 763.25,497.875 762.125,497.125 760.625,494.75 C 759.125,492.375 758.5,490.75 757.25,490.375 C 756,490 755.5,491.5 754.875,489.875 C 754.25,488.25 754.25,489.125 754.25,487.25 C 754.25,485.375 754.125,485.5 753.25,483.75 C 752.375,482 752.25,482.125 751.75,480.25 C 751.25,478.375 751.5,479.25 749.25,476.375 C 747,473.5 746.75,473.25 744.75,471.75 C 742.75,470.25 742.25,470 742.375,468 C 742.5,466 741.125,464 742.375,463.625 C 743.625,463.25 743.875,462.875 745.125,463.625 C 746.375,464.375 746.5,465.25 747.5,465.5 C 748.5,465.75 749.125,465.625 749.875,465.625 C 750.625,465.625 750.375,464.625 751.625,466.125 C 752.875,467.625 753.125,467.625 753.75,469 C 754.375,470.375 754.375,470.875 755,471.625 C 755.625,472.375 756.125,472.375 756.75,472 C 757.375,471.625 758,470.5 758.375,471.25 C 758.75,472 758.75,472.375 759,472.875 C 759.25,473.375 760,471.75 760,473.875 C 760,476 759.25,477 760.375,476.25 C 761.5,475.5 762.625,474.75 762.625,474.75 C 762.625,474.75 762.5,474.375 763,475.625 C 763.5,476.875 763.625,478 764.75,478.5 C 765.875,479 766.25,479 766.25,479 L 767.38764,479.85399 z"
id="path2417" />
<path
style="fill:#7b147d;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="M 791,496.875 C 791,496.875 790.75,495.625 792.875,493.5 C 795,491.375 795.625,491.25 795.625,489.125 C 795.625,487 795.5,487.125 794.5,486.125 C 793.5,485.125 792.125,484.5 793.375,483 C 794.625,481.5 794.5,481.125 796.125,480.75 C 797.75,480.375 799.375,478 799.5,477.125 C 799.625,476.25 799.75,475.75 799.375,474.625 C 799,473.5 798,471.5 797.875,470.125 C 797.75,468.75 797.625,467.75 797.75,466.75 C 797.875,465.75 798.75,465.75 799.875,464.375 C 801,463 801.25,463.625 801.25,461.625 C 801.25,459.625 801.125,457.125 800.5,456.625 C 799.875,456.125 799.625,456.375 798.25,455.875 C 796.875,455.375 796.25,454.125 794.375,453 C 792.5,451.875 791.25,451.75 790.875,452.375 C 790.5,453 791.25,450.875 790.5,454 C 789.75,457.125 789.875,457.875 789,458.5 C 788.125,459.125 786.75,459.5 786.375,460.75 C 786,462 787.375,462.875 785.375,465 C 783.375,467.125 779.75,471.125 777.125,471.625 C 774.5,472.125 772.625,472.75 772.625,473.625 C 772.625,474.5 773.75,475.625 773.5,476.625 C 773.25,477.625 771.5,478.625 771.75,479.125 C 772,479.625 772.625,479.125 773.125,480.25 C 773.625,481.375 773.625,484.875 773.625,484.875 L 776,487.5 C 776,487.5 774.25,490.125 775.125,490.875 C 776,491.625 776.375,491.75 777.375,492.875 C 778.375,494 779.625,495.25 781.125,495.375 C 782.625,495.5 783.5,496.25 784.625,496.75 C 785.75,497.25 786.125,496.75 787.5,496.625 C 788.875,496.5 791.375,497 791,496.875 z"
id="path2420" />
<path
style="fill:#48c74c;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="M 829.43626,335.25065 C 829.43626,334.01321 829.96659,330.83123 829.25948,330.65446 C 828.55237,330.47768 828.55237,329.94735 827.31494,330.12413 C 826.0775,330.3009 824.66328,329.5938 824.66328,329.5938 C 824.66328,329.5938 824.30973,328.35636 826.43105,327.11892 C 828.55237,325.88148 829.78981,325.17438 829.78981,325.17438 L 828.72915,324.46727 C 828.72915,324.46727 826.43105,324.29049 827.49171,323.58339 C 828.55237,322.87628 828.72915,321.9924 829.61303,320.93174 C 830.49692,319.87108 832.61824,314.391 833.85567,312.26968 C 835.09311,310.14836 837.92154,310.85547 837.92154,310.85547 L 839.86608,305.90572 C 839.86608,305.90572 838.27509,302.19341 840.92674,300.95597 C 843.57839,299.71853 843.75517,301.13275 844.46227,298.12754 C 845.16938,295.12234 847.2907,295.65267 847.64426,294.59201 C 847.99781,293.53135 848.35136,293.53135 847.82103,291.76358 C 847.2907,289.99582 845.87649,288.40483 845.87649,288.40483 C 845.87649,288.40483 845.16938,285.75317 845.16938,284.33896 C 845.16938,282.92475 844.81583,280.62665 846.05326,280.09632 C 847.2907,279.56599 844.9926,276.73756 844.9926,276.73756 C 844.9926,276.73756 845.69971,275.6769 844.81583,274.9698 C 843.93194,274.26269 843.40161,273.37881 843.40161,272.49492 C 843.40161,271.61104 843.57839,269.31294 843.57839,269.31294 C 843.57839,269.31294 844.46227,267.89873 845.16938,267.72195 C 845.87649,267.54517 846.58359,267.89873 846.58359,266.13096 C 846.58359,264.36319 845.69971,261.71154 845.69971,261.71154 C 845.69971,261.71154 841.9874,256.23147 841.28029,255.87791 C 840.57319,255.52436 840.57319,255.17081 841.10352,254.11015 C 841.63385,253.04949 845.16938,258.35279 847.64426,258.70634 C 850.11913,259.05989 852.41723,258.70634 852.41723,258.70634 L 854.71532,257.64568 L 859.31152,257.82246 C 859.31152,257.82246 861.25606,257.99923 861.60961,259.94378 C 861.96317,261.88832 864.43804,261.18121 863.2006,262.94898 C 861.96317,264.71675 862.13994,265.60063 860.90251,265.42385 C 859.66507,265.24708 859.84185,264.36319 858.95796,264.53997 C 858.07408,264.71675 857.36697,264.53997 857.36697,266.48451 C 857.36697,268.42906 858.78119,268.60584 857.54375,270.19683 C 856.30631,271.78782 856.83664,272.49492 855.06888,272.49492 C 853.30111,272.49492 851.71012,272.31815 849.94235,272.6717 C 848.17459,273.02525 847.2907,271.78782 847.2907,273.37881 C 847.2907,274.9698 847.2907,275.32335 848.17459,275.50013 C 849.05847,275.6769 849.76558,275.50013 849.41202,276.56079 C 849.05847,277.62145 847.99781,278.32855 848.70492,278.68211 C 849.41202,279.03566 850.29591,278.15178 850.29591,279.03566 L 853.30111,279.21244 L 853.83144,280.9802 C 853.83144,280.9802 854.18499,280.9802 855.24565,281.15698 C 856.30631,281.33376 857.01342,280.44987 857.36697,281.68731 C 857.72053,282.92475 858.25086,283.45508 858.25086,283.45508 C 858.25086,283.45508 858.78119,283.45508 858.95796,284.69251 C 859.13474,285.92995 859.31152,286.2835 859.31152,287.16739 C 859.31152,288.05127 858.42763,290.8797 858.42763,290.8797 C 858.42763,290.8797 857.72053,291.58681 857.8973,293.00102 C 858.07408,294.41523 858.78119,293.00102 858.95796,294.76879 C 859.13474,296.53655 859.13474,297.06688 859.13474,298.30432 C 859.13474,299.54176 858.95796,299.36498 860.01862,300.24886 C 861.07928,301.13275 861.43284,302.01663 861.43284,302.01663 C 861.43284,302.01663 862.31672,302.54696 862.31672,303.7844 C 862.31672,305.02183 862.31672,306.08249 862.31672,306.08249 C 862.31672,306.08249 861.78639,306.25927 861.07928,306.25927 C 860.37218,306.25927 859.48829,306.08249 859.48829,306.08249 C 859.48829,306.08249 859.31152,306.61282 858.95796,307.85026 C 858.60441,309.0877 857.01342,309.79481 857.01342,309.79481 C 857.01342,309.79481 857.01342,311.56257 856.30631,311.73935 C 855.59921,311.91613 855.06888,311.91613 854.36177,312.0929 C 853.65466,312.26968 853.12433,312.0929 852.77078,312.97679 C 852.41723,313.86067 852.77078,314.03745 851.8869,314.21422 C 851.00301,314.391 850.11913,312.80001 849.94235,315.09811 C 849.76558,317.3962 851.17979,318.28009 849.41202,318.81042 C 847.64426,319.34075 846.58359,319.6943 846.58359,319.6943 C 846.58359,319.6943 846.93715,321.10851 845.69971,320.75496 C 844.46227,320.40141 843.04806,319.16397 843.04806,318.28009 C 843.04806,317.3962 842.87128,316.86587 842.87128,316.86587 L 840.39641,318.45686 C 840.39641,318.45686 840.74996,319.34075 838.9822,319.34075 C 837.21443,319.34075 836.50732,317.3962 836.86088,319.34075 C 837.21443,321.28529 837.92154,322.6995 838.09831,323.40661 C 838.27509,324.11372 839.33575,323.58339 839.15897,324.64405 C 838.9822,325.70471 839.33575,325.70471 838.62864,326.41181 C 837.92154,327.11892 836.50732,327.2957 835.80022,327.2957 C 835.09311,327.2957 834.91633,327.11892 833.50212,327.2957 C 832.08791,327.47247 831.375,334.125 831.375,334.125 L 830.125,335.25 L 829.43626,335.25065 z"
id="path2424" sodipodi:nodetypes="csscsccsssccsssscsscsscsscssscccsssssssssssss" />
<path
style="fill:#7b147d;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="M 832.75,455.5 C 832.75,455.5 833.25,452.75 834.25,452 C 835.25,451.25 834.5,451 834.5,449.75 C 834.5,448.5 833.5,447.25 834.75,447 C 836,446.75 836.25,447 838,446.75 C 839.75,446.5 841.5,445.5 841.5,445.5 L 843,447 C 843,447 843.75,447.75 846,447.75 C 848.25,447.75 849,448.75 850,450.5 C 851,452.25 850.5,453 853.25,454.75 C 856,456.5 858.75,457.25 860.25,457.75 C 861.75,458.25 863,459 862.75,460.5 C 862.5,462 864.25,462.75 862.25,463.25 C 862.25,463.25 867.97358,465.71185 868.68068,467.30284 C 869.38779,468.89383 870.62523,469.60094 869.21101,470.48482 C 867.7968,471.3687 866.20581,470.6616 866.38258,471.72226 C 866.55936,472.78292 867.62002,473.49003 867.97358,474.72746 C 868.32713,475.9649 869.56457,476.67201 869.56457,478.08622 C 869.56457,479.50043 869.21101,480.38432 870.62523,481.2682 C 872.03944,482.15208 872.21622,482.15208 872.21622,483.21274 C 872.21622,484.2734 872.21622,485.68762 872.21622,485.68762 C 872.21622,485.68762 871.15556,486.74828 869.38779,486.74828 C 867.62002,486.74828 866.73614,485.33406 866.02903,485.33406 C 865.32192,485.33406 863.55416,484.98051 863.55416,484.98051 C 863.55416,484.98051 862.31672,480.03076 858.78119,479.14688 C 855.24565,478.263 855.24565,477.73267 855.24565,478.43977 C 855.24565,479.14688 856.48309,480.73787 855.06888,481.2682 C 853.65466,481.79853 852.94756,481.79853 852.06367,481.79853 C 851.17979,481.79853 855.06888,483.38952 850.64946,483.21274 C 846.23004,483.03597 845.87649,481.44498 843.93194,482.68241 C 841.9874,483.91985 836.15377,478.9701 836.15377,478.9701 C 836.15377,478.9701 833.50212,479.14688 833.50212,477.73267 C 833.50212,476.31845 832.79501,476.14168 833.6789,474.90424 C 834.56278,473.6668 834.56278,473.49003 834.56278,472.07581 C 834.56278,470.6616 834.91633,470.30804 834.91633,468.89383 C 834.91633,467.47962 835.80022,466.94929 834.56278,466.41896 C 833.32534,465.88863 832.26468,465.53507 832.08791,464.29764 C 831.91113,463.0602 831.91113,462.88342 831.02725,462.88342 C 830.14336,462.88342 831.02725,463.0602 829.61303,463.0602 C 828.19882,463.0602 827.13816,464.12086 825.90072,462.52987 C 824.66328,460.93888 824.48651,460.93888 822.18841,460.93888 C 819.89031,460.93888 814.94057,464.29764 818.82965,460.93888 C 822.71874,457.58012 823.42585,457.40335 823.42585,457.40335 C 823.42585,457.40335 819.35998,457.40335 819.18321,455.98913 C 819.00643,454.57492 818.65288,452.27682 817.76899,451.92327 C 816.88511,451.56972 815.82445,451.03938 816.178,449.80195 C 816.53156,448.56451 817.23866,444.14509 820.7742,444.32187 C 824.30973,444.49865 825.01684,445.91286 826.0775,446.44319 C 827.13816,446.97352 829.0827,445.02898 829.43626,446.79674 C 829.78981,448.56451 829.43626,451.56972 829.43626,451.56972 C 829.43626,451.56972 830.67369,452.4536 831.02725,454.22137 L 832.75,455.5 z"
id="path2426" sodipodi:nodetypes="cssssccssssssssssssscsscsssssscssssssssssscssssssccc" />
<path
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;letter-spacing:normal;word-spacing:normal;text-anchor:start;fill:#2293ac;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10.43299961;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;display:inline"
d="M 474,212.5 C 474,212.5 476,214.375 476.50001,213.375 C 477.00001,212.37501 475.87501,211.125 477.37501,212.25 C 478.875,213.375 478.75,213 479.25001,213.625 C 479.75001,214.25 482.75,212.125 481.625,214.125 C 480.5,216.12501 479.75001,216.875 480.5,216.75001 C 481.25001,216.625 480.375,216 481.37501,217.25001 C 482.37501,218.5 482.25001,219.5 483.62501,218.37501 L 484.875,214.50001 C 484.875,214.50001 488.37501,214.625 488.125,215.875 C 487.87501,217.125 487,217 488.87501,216 C 490.75,215 489.75,213.25 491.00001,214.375 C 492.25001,215.5 492.87501,216.625 493.37501,215.5 C 493.87501,214.375 492.25001,213.125 493.75001,213.375 C 495.25,213.625 495.37501,215 496.25,213.375 C 497.12501,211.75001 496.12501,210.875 497.5,211.125 C 498.87501,211.375 498.25001,211.75001 499.25001,210.875 C 500.25,210 500.00001,209.125 501.00001,210 C 502.00001,210.875 502.00001,211.25001 502.00001,211.25001 C 502.00001,211.25001 504,211.5 504.5,211.75001 C 505,212 504.25001,210.75 504.75001,212.75 C 505.25001,214.75 505.37501,215.375 506.00001,215.125 C 506.625,214.875 507.00001,214.00001 507.00001,215.62501 C 507.00001,217.25001 505.87501,217.75 507.375,217.5 C 508.875,217.25001 509.25001,217.125 509.375,218.25 C 509.5,219.375 510.12501,220.25 510.12501,220.25 C 510.12501,220.25 510.25001,221.12501 510.12501,221.62501 C 510,222.125 509.75001,222.375 510,223 C 510.25001,223.625 510.5,224.625 510,224.87501 C 509.5,225.125 508.75001,225.625 507.875,225.75 C 507.00001,225.875 506.50001,226.5 506.25,227.12501 C 506.00001,227.75 507.00001,227.375 505.87501,228.75001 C 504.75001,230.125 505.125,230.37501 504.37501,230.625 C 503.62501,230.87501 502.75001,231.375 502.75001,231.375 L 499.37501,231.875 L 498.625,230.5 C 498.625,230.5 498.12501,229.375 497.62501,229.87501 C 497.12501,230.37501 497.75001,231.375 497.25001,231.50001 C 496.75001,231.625 495.50001,229.375 495.50001,230.37501 C 495.50001,231.375 496.12501,233.12501 496.12501,233.12501 C 496.12501,233.12501 496.25,234.625 495.62501,234.875 C 495.00001,235.125 495.00001,235.87501 493.37501,236 C 491.75001,236.125 491.62501,236.875 490.75,237 C 489.875,237.125 489.62501,238.875 488.00001,237.625 C 486.375,236.37501 481.87501,234.375 481,234.625 C 480.12501,234.875 479.75001,235.25001 478.00001,234.75001 C 476.25001,234.25 475.5,235.375 475.125,234.625 C 474.75001,233.875 474.62501,235 475,233.25 C 475.37501,231.50001 477.00001,230.625 477.00001,230.625 C 477.00001,230.625 477.62501,230.25 477.50001,229.625 C 477.37501,229 477.50001,228.75001 476.75,228.625 C 476,228.5 476.25001,228.125 475.87501,227.12501 C 475.5,226.125 475.125,226.25 474.12501,226.5 C 473.12501,226.75 472.875,227.875 471.75,226.625 C 470.625,225.375 470.125,225.625 470.625,224.87501 C 471.125,224.125 471.00001,223.875 472.25,223.625 C 473.50001,223.375 473.62501,224.625 474.12501,223.125 C 474.62501,221.62501 475.125,221 475.125,221 C 475.125,221 474.62501,220.75 473.75001,220.875 C 472.875,221 473.12501,222 472.12501,220.00001 C 471.125,218 470,218 470,218 C 470,218 469.75001,218 470.37501,217 C 471.00001,216 471.625,216 472.25,215 C 472.875,214.00001 471.75,213.125 472.62501,212.25 C 473.50001,211.375 473.75001,212 473.75001,212 L 474,212.5 z"
id="path2412" sodipodi:nodetypes="csssssss" />
<path
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;letter-spacing:normal;word-spacing:normal;text-anchor:start;fill:#2293ac;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10.43299961;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;display:inline"
d="M 466.5137,294.23847 C 466.5137,294.23847 466.16016,294.76879 464.74594,294.76879 C 463.33172,294.76879 463.15494,294.59201 462.27106,295.12235 C 461.38718,295.65267 460.32653,295.82945 459.44264,296.00623 C 458.55876,296.183 457.49809,297.24366 457.49809,297.24366 C 457.49809,297.24366 457.49809,297.95077 456.26066,298.30432 C 455.02321,298.65787 455.2,298.48111 453.96255,298.48111 C 452.72513,298.48111 453.07867,297.42044 452.9019,296.71333 C 452.9019,296.71333 448.75,297.125 450,296.375 C 451.25001,295.625 452.25001,296.125 451.37501,295.5 C 450.5,294.87501 449.12501,294.75 450.62501,294.5 C 452.125,294.25 452.5,294.5 452.5,294 C 452.5,293.5 451.5,294.625 452.5,293 C 453.50001,291.375 453.75,291.375 454.37501,290.875 C 455.00001,290.375 454.62501,288.87501 455.50001,289.125 C 456.375,289.37501 457.37501,289.625 457.37501,289.625 L 457.87501,288.625 C 457.87501,288.625 454.75,288.5 454.50001,288 C 454.50001,288 452.87501,286.875 452.37501,286.875 C 451.87501,286.875 450.75001,287 451.12501,286.5 C 451.5,286 452.25001,284.50001 452.25001,284.50001 C 452.25001,284.50001 450.62501,283.25 451.25001,282.75 C 451.87501,282.25001 452,282.375 452,281.5 C 452,280.62501 450.875,280.5 452.125,279.25 C 453.37501,278 453.625,278.25 454.50001,277.5 C 455.375,276.75 455.375,276.625 456,277.25 C 456.62501,277.87501 456.62501,278.875 457.75001,277.5 C 458.87501,276.125 459.00001,275.375 459.00001,275.375 C 459.00001,275.375 458.50001,275.5 460.375,274.5 C 462.25001,273.50001 460.75,272.625 463.5,273.00001 C 466.25,273.375 465.75,273.50001 466.375,273.375 C 467.00001,273.25 467.375,271.625 467.75001,273.00001 C 468.12501,274.375 467.25,274.62501 469,275.125 C 470.75,275.625 471.50001,275.375 471.00001,276.25001 C 470.50001,277.125 470.37501,277 470.87501,277.75 C 471.37501,278.50001 471.75,278.875 471.75,279.5 C 471.75,280.12501 471.37501,280.62501 470.50001,281 C 469.625,281.375 469.75001,280.875 468.62501,282 C 467.50001,283.125 466.875,282.87501 466.875,282.87501 C 466.875,282.87501 466.62501,282.25001 465.87501,282.75 C 465.125,283.25 465.50001,284 464.37501,283.25 C 463.25001,282.5 461.875,282.5 461.875,282.5 C 461.875,282.5 461.375,282.5 461.50001,283.25 C 461.62501,284 462.25001,286.5 462.25001,286.5 C 462.25001,286.5 463.37501,288.5 463,289.37501 C 462.62501,290.25 460.75,290.75 462.375,290.875 C 464,291.00001 463.87501,290.625 463.87501,291.75 C 463.87501,292.875 463.87501,293.5 464.87501,293.375 C 465.87501,293.25001 466.62501,294.375 466.5137,294.23847 z"
id="path2418" sodipodi:nodetypes="cssscsss" />
<g style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;letter-spacing:normal;word-spacing:normal;text-anchor:start;fill:#2293ac;fill-opacity:1;stroke:#000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10.43299961;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;display:inline"
id="g2391" transform="translate(4.5e-6,1e-6)">
<path id="path2416"
style="fill:#2293ac;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="M 478.71129,283.2783 C 478.18096,282.65958 478.44613,282.74797 478.26935,282.12925 C 478.09257,281.51053 478.35774,281.42215 478.35774,280.80343 C 478.35774,280.18471 478.44613,279.91954 478.71129,279.12405 C 478.97646,278.32855 477.29708,277.62145 477.29708,277.00273 C 477.29708,276.38401 476.23642,275.58851 476.05964,275.23496 C 475.88286,274.88141 475.35253,274.43947 474.73382,274.52785 C 474.1151,274.61624 474.1151,274.9698 473.40799,275.32335 C 472.70088,275.6769 472.70088,275.14657 472.17055,274.70463 C 471.64022,274.26269 471.72861,273.73236 471.72861,272.76009 C 471.72861,271.78782 471.817,272.22976 472.17055,271.78782 C 472.52411,271.34587 472.6125,271.43426 473.14283,270.81554 C 473.67316,270.19683 473.40799,270.3736 473.40799,269.75488 C 473.40799,269.13616 473.40799,268.60583 473.14283,267.89873 C 472.87766,267.19162 472.17055,267.72195 471.90539,267.01484 C 471.64022,266.30774 471.55184,266.48451 471.10989,266.21935 C 470.66795,265.95418 470.49118,266.13096 469.5189,266.04257 C 468.54663,265.95418 469.25374,265.42385 469.16535,265.0703 C 469.07696,264.71675 469.07696,264.53997 468.90019,263.5677 C 468.72341,262.59543 468.28147,263.30253 467.75114,263.39092 C 467.22081,263.47931 467.04403,263.47931 466.86725,262.59543 C 466.69048,261.71154 466.86725,262.0651 466.77886,261.62316 C 466.69048,261.18121 466.60209,261.18121 465.98337,260.20894 C 465.36465,259.23667 466.07176,259.767 466.77886,259.23667 C 467.48597,258.70634 467.39758,258.44117 468.0163,257.99923 C 468.63502,257.55729 468.0163,257.38051 467.83952,256.67341 C 467.66275,255.9663 467.30919,255.78952 467.30919,255.78952 C 467.30919,255.78952 466.69048,255.9663 465.62982,255.9663 C 464.56916,255.9663 464.65754,255.78952 464.12721,255.08242 C 463.59688,254.37531 464.2156,254.37531 465.0111,253.75659 C 465.80659,253.13787 465.54143,252.78432 466.33692,251.90044 C 467.13242,251.01655 467.57436,251.10494 468.54663,250.92817 C 469.5189,250.75139 469.07696,250.22106 469.5189,249.1604 C 469.96085,248.09974 470.13762,247.92296 470.40279,247.30424 C 470.66795,246.68552 471.19828,245.89003 471.37506,244.74098 C 471.55184,243.59193 473,245.5 476,244.5 C 479,243.5 479,244.5 479,244.5 C 479,244.5 480.5,247 478,248 C 475.5,249 477,253 477,253 L 477.73902,253.04949 C 477.73902,253.04949 478.6229,252.34238 479.33001,252.25399 C 480.03712,252.1656 479.94873,252.60754 480.83261,252.60754 C 481.7165,252.60754 481.53972,252.07721 482.60038,251.37011 C 483.66104,250.663 483.39587,252.1656 483.39587,252.78432 C 483.39587,253.40304 484.81009,255.17081 484.81009,255.17081 L 484.45653,255.78952 C 484.45653,255.78952 483.83782,256.14308 483.83782,257.11535 C 483.83782,258.08762 483.57265,257.82246 483.39587,258.2644 C 483.2191,258.70634 482.86554,258.70634 482.4236,258.9715 C 481.98166,259.23667 482.51199,259.41345 482.68877,260.29733 C 482.86554,261.18121 482.60038,260.73927 482.15844,260.82766 C 481.7165,260.91605 481.27455,260.91605 480.921,261.53477 C 480.56745,262.15349 480.83261,262.24187 480.30228,262.94898 C 479.77195,263.65609 479.86034,263.39092 478.71129,263.74448 C 477.56224,264.09803 478.09257,264.09803 478.35774,265.42385 C 478.6229,266.74968 479.50679,264.98191 481.09778,264.80514 C 482.68877,264.62836 482.33521,264.80514 483.39587,264.80514 C 484.45653,264.80514 484.01459,264.89352 484.7217,265.42385 C 485.42881,265.95418 484.89848,266.21935 485.25203,266.83807 C 485.60558,267.45679 485.95914,267.10323 486.40108,267.72195 C 486.84302,268.34067 486.40108,268.95939 486.40108,269.84327 C 486.40108,270.72716 486.40108,270.63877 486.40108,270.63877 C 486.40108,270.63877 487.46174,273.82075 488.87595,274.61624 C 490.29017,275.41174 489.75984,275.41174 490.37855,275.94207 C 490.99727,276.4724 492.14632,279.38921 492.49987,279.83116 C 492.85343,280.2731 492.85343,280.62665 493.0302,282.21764 C 493.20698,283.80863 493.0302,283.45508 492.85343,284.0738 C 492.67665,284.69251 492.58826,284.60413 492.3231,285.5764 C 492.05793,286.54867 492.3231,286.72545 492.3231,287.079 C 492.3231,287.43255 492.85343,287.69772 494.62119,286.81383 C 496.38896,285.92995 495.68185,286.19512 496.8309,285.84156 C 497.97995,285.48801 497.71479,285.39962 498.77545,285.66479 C 499.83611,285.92995 499.65933,286.10673 500.6316,287.079 C 501.60387,288.05127 500.98516,288.22805 501.25032,288.93515 C 501.51549,289.64226 501.16193,289.55387 500.89677,290.26098 C 500.6316,290.96809 500.6316,290.8797 500.18966,291.76358 C 499.74772,292.64747 500.01288,292.47069 499.65933,293.00102 C 499.30578,293.53135 499.04061,293.26618 497.97995,293.53135 C 496.91929,293.79651 497.09607,294.41523 496.56574,294.94556 C 496.03541,295.47589 496.21218,295.65267 496.1238,296.09461 C 496.03541,296.53655 496.56574,297.33205 496.56574,297.33205 C 496.56574,297.33205 497.36123,297.6856 497.80317,298.12754 C 498.24512,298.56948 498.06834,298.92304 497.53801,299.80692 C 497.00768,300.69081 496.8309,300.24886 495.77024,300.69081 C 494.70958,301.13275 494.35603,300.69081 493.29537,300.60242 C 492.23471,300.51403 492.3231,300.95597 490.8205,301.4863 C 489.31789,302.01663 489.40628,301.57469 488.25723,301.4863 C 487.10818,301.39791 487.19657,301.39791 486.04752,301.4863 C 484.89848,301.57469 484.98686,301.92824 483.66104,302.72374 C 482.33521,303.51923 482.86554,302.72374 482.4236,302.37018 C 481.98166,302.01663 481.7165,301.92824 481.09778,301.30952 C 480.47906,300.69081 480.47906,300.95597 479.94873,301.13275 C 479.4184,301.30952 478.26935,303.34246 477.47385,303.69601 C 476.67836,304.04956 476.58997,303.87279 475.44092,303.87279 C 474.29187,303.87279 474.64543,303.87279 474.1151,303.96117 C 473.58477,304.04956 473.23121,304.93345 472.52411,305.72894 C 471.817,306.52444 471.99378,305.99411 470.66795,306.17088 C 469.34213,306.34766 469.43052,306.08249 469.25374,305.72894 C 469.07696,305.37539 469.43052,305.37539 469.87246,304.75667 C 470.3144,304.13795 471.10989,302.9889 471.64022,302.10502 C 472.17055,301.22114 472.43572,301.66308 473.76154,300.86758 C 475.08737,300.07209 474.02671,300.51403 474.64543,299.1882 C 475.26415,297.86238 475.35253,297.86238 476.67836,297.42044 C 476.67836,297.42044 477.25,296.25 476.125,295.625 C 475,295 474.5,295.25 473.375,294.75 C 472.25,294.25 471.375,294.5 471.625,293.8125 C 472.75,292.5 473,291.875 473.375,291.25 C 473.75,290.625 473.5,290 474,290 C 474.5,290 474.75,290.25 475.375,289.875 C 476,289.5 476.125,289.25 476.125,288.5 C 476.125,287.75 476,287.5 476.25,286.75 C 476.5,286 477.25,285.375 476.625,284.875 C 476,284.375 476.5,284.5 475.75,284.25 C 475,284 474.5,283.5 474.5,283.5 L 474.75,282.5 L 474.9375,280.75 C 474.9375,280.75 475.125,280.875 476.375,281.375 C 477.625,281.875 478.375,283.5 478.375,283.5 C 478.64075,283.97231 479.0265,283.95957 478.71129,283.2783 z"
sodipodi:nodetypes="cssssssssssssssssssssssssscssssssssscsccssssccssssssssssssssscsssssssssssssssssscssssssssssssssssssssscsscssssssscccscc" />
</g>
<path
sodipodi:nodetypes="csscssssccsssssssscsscsccscscscsssssscssssscsssscsssscsscccsssscssscsscsccccscsc"
id="path12093"
d="M 500.40625,213.09375 C 500.36047,213.13312 500.34028,213.17085 500.28125,213.21875 C 500.15537,213.32088 499.98654,213.46243 499.625,213.625 C 499.37019,213.73958 498.99824,213.75808 498.65625,213.78125 C 498.5651,214.04062 498.54775,214.26848 498.40625,214.53125 C 498.1081,215.08496 497.86439,215.64569 496.96875,216.1875 C 496.58178,216.42159 496.06902,216.46209 495.59375,216.46875 C 495.58861,216.48061 495.59904,216.48811 495.59375,216.5 C 495.33117,217.09081 493.09993,218.63563 491.85187,218.93122 L 487.70527,218.41789 C 487.55789,218.85993 485.51897,219.9575 485.15625,220.25 C 484.68971,220.63171 484.27003,221.01494 483.375,221.21875 C 482.47997,221.42256 481.12903,220.94153 480.625,220.4375 C 479.82903,219.64152 479.85725,219.40759 479.71875,219.125 C 479.7172,219.12183 479.68907,219.12815 479.6875,219.125 C 479.04238,218.96131 477.98974,218.03433 477.8125,217.1875 C 477.63526,216.34067 477.83592,215.92988 477.9375,215.65625 C 477.94394,215.63892 477.96239,215.64151 477.96875,215.625 C 477.87092,215.5604 477.78092,215.48821 477.6875,215.40625 C 477.50866,215.54335 477.41833,215.75727 477.21875,215.84375 C 476.59252,216.11512 475.99797,216.12188 475.5625,216.0625 C 475.04362,215.99174 474.81231,215.80984 474.5,215.65625 C 474.42149,215.87198 474.44466,216.06979 474.3125,216.28125 C 473.96012,216.84505 473.61449,217.10749 473.28125,217.40625 C 473.53687,217.71294 473.8018,218.07409 474.03125,218.46875 C 474.46464,218.45978 474.93321,218.43664 475.25,218.5 C 475.72917,218.59583 476.21875,218.8125 476.21875,218.8125 C 476.88321,219.14011 477.36232,219.75247 477.52045,220.47623 C 477.67858,221.19999 477.49853,221.95637 477.03125,222.53125 C 477.03125,222.53125 476.84771,222.67564 476.4375,223.90625 C 476.40213,224.01237 476.25131,224.14506 476.21875,224.25 C 476.68033,224.45888 477.19235,224.69748 477.46875,225.03125 C 477.84267,225.48278 478.00982,225.89075 478.15625,226.28125 C 478.22475,226.46392 478.16918,226.40265 478.21875,226.5625 C 478.25512,226.58025 478.27488,226.57379 478.3125,226.59375 C 478.77528,226.83931 479.28899,227.35923 479.53125,227.84375 C 480.01578,228.81279 479.85534,229.05794 479.875,229.15625 C 480.26221,231.0923 479.07825,232.05966 478.59375,232.40625 C 478.61615,232.41232 478.6338,232.39984 478.65625,232.40625 C 480.00882,232.7927 479.02718,232.65742 480.34375,232.28125 C 481.13021,232.05655 481.49861,232.15923 481.875,232.21875 C 482.25139,232.27827 482.58232,232.36171 482.9375,232.46875 C 483.64787,232.68283 484.40487,233.00348 485.1875,233.34375 C 486.53761,233.93075 487.77714,234.62386 488.875,235.375 C 489.21651,235.08528 489.61051,234.70743 490.40625,234.59375 C 490.18514,234.62534 489.95589,234.76386 490.46875,234.4375 C 490.98161,234.11114 492.00859,233.65319 493.1875,233.5625 C 493.62883,233.52855 493.3446,233.59825 493.3125,233.625 C 493.30459,233.63159 493.61292,233.43169 493.65625,233.375 C 493.58699,233.16368 493.56153,233.11527 493.46875,232.78125 C 493.28761,232.12915 493.06251,231.38207 493.0625,230.375 C 493.0625,229.99645 492.88101,229.34896 493.84375,228.40625 C 494.32512,227.9349 495.1803,227.65749 495.75,227.6875 C 496.09769,227.70581 496.23803,227.79489 496.4375,227.875 C 497.1098,227.48714 498.0063,227.23314 498.6875,227.4375 C 499.54618,227.6951 499.90099,228.10844 500.15625,228.40625 C 500.53324,228.84608 500.57964,229.04607 500.65625,229.21875 L 502.03125,229.03125 C 502.25144,228.90656 502.60635,228.76202 503.15625,228.53125 C 503.33219,228.21122 503.4851,227.84806 504,227.21875 C 504.10184,227.09428 504.04394,227.18562 504.0625,227.15625 C 504.07207,226.81048 503.90676,226.45186 504,226.21875 C 504.45782,225.07423 505.66031,223.61103 507.53125,223.34375 C 507.55127,223.34089 507.66008,223.25846 507.6875,223.25 C 507.58781,222.70754 507.46946,222.12195 507.5625,221.71875 C 507.69546,221.14255 507.75695,221.00345 507.75,221.03125 C 507.73703,221.08311 507.75503,220.98337 507.75,221 C 507.60488,220.74408 507.56191,220.4171 507.40625,220 C 507.11465,220.09065 506.77816,220.16154 505.875,219.84375 C 505.24211,219.62106 504.31159,218.61731 504.1875,217.84375 C 504.1196,217.42047 504.2075,217.33159 504.25,217.125 C 503.60572,216.69862 503.29385,216.14965 503.125,215.78125 C 502.80686,215.08711 502.66945,214.50131 502.5,213.78125 C 502.09859,213.71863 501.6875,213.65625 501.6875,213.65625 C 501.21457,213.59819 500.76908,213.4026 500.40625,213.09375 z M 483.21875,216.9375 C 483.18638,217.12993 483.06636,217.3408 482.96875,217.5625 C 482.97003,217.56316 483,217.59375 483,217.59375 C 482.99998,217.59379 483.21876,217.03119 483.21875,217.03125 C 483.21875,217.03127 483.21173,216.97944 483.21875,216.9375 z"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;letter-spacing:normal;word-spacing:normal;text-anchor:start;fill:#47c1dc;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10.43299961;stroke-dashoffset:0;stroke-opacity:1;display:inline;" />
<g style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;letter-spacing:normal;word-spacing:normal;text-anchor:start;fill:#47c1dc;fill-opacity:1;stroke:none;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10.43299961;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;display:inline;"
id="g12081" transform="translate(4.5e-6,1e-6)">
<path id="path12083"
d="M 476.5625,246.40625 C 474.36869,246.99883 472.21288,246.13915 471.78125,249.03125 C 471.46273,251.59762 469.7235,252.75371 467.625,253.46875 C 469.72997,254.54161 471.56465,258.66447 468.5,260.375 C 469.7372,261.07346 470.89832,262.7881 471.375,264.15625 C 474.70457,265.1583 477.1047,269.86833 474.1875,272.59375 C 477.73211,272.28435 479.42403,276.36458 480.8125,278.90625 C 479.26297,281.60552 482.40033,285.18919 478.6875,286.28125 C 477.83041,288.50758 478.19371,291.69335 475.09375,292.25 C 474.12362,293.9887 479.58864,293.61653 478.8125,296.625 C 478.94708,299.17066 475.90593,299.22209 475.84375,301.8125 C 477.63331,301.73036 479.68459,296.8668 482.3125,299.71875 C 483.82757,301.37816 486.19109,298.33727 488.4375,299.5 C 490.72392,300.19163 492.71329,297.69256 495.09375,298.8125 C 492.43554,295.6374 495.74271,292.04603 498.375,290.90625 C 500.64891,288.53877 497.55434,286.27491 495.4375,288.625 C 491.62551,291.4999 488.63228,286.45497 491,283.25 C 491.37872,279.27305 488.04603,276.6259 485.71875,274 C 483.78776,271.76716 485.32221,266.88083 481.8125,266.75 C 479.43475,268.4 476.16314,268.00168 476,264.53125 C 475.87492,261.74941 479.39037,262.14649 479.9375,259.625 C 479.91926,258.1736 483.47609,256.10901 481.75,254.5 C 479.15426,253.82912 475.50589,256.79052 474.84375,252.84375 C 474.10588,250.60322 474.7627,247.45153 476.5625,246.40625 z"
style="fill:#47c1dc;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
</g>
<path id="path12104"
d="M 467.46875,272.625 C 470.64458,275.18652 464.74525,276.08157 462.90625,274.9375 C 460.20509,276.24276 459.12422,281.50751 455.46875,279.71875 C 453.26249,279.21691 453.45286,283.36284 454.78125,283.90625 C 452.02566,288.49797 463.29999,284.74207 460.14654,288.55068 C 459.51565,292.3374 457.03042,290.69712 455.1875,292.78125 C 458.40296,287.12352 463.57011,279.08339 467.46875,272.625 z M 466.125,275.5 C 465.596,275.27662 465.97971,273.50658 466.125,275.5 z M 467.84375,276.8125 C 468.59127,274.45996 468.74284,274.18278 467.84375,276.8125 z M 470.09375,275.5 C 471.72571,274.60314 471.23947,278.29933 469.09375,277.21875 C 467.69826,277.48455 469.44431,273.88729 470.09375,275.5 z M 470.15625,278.96875 C 472.33852,278.39046 471.50431,281.1645 470.53125,279.78125 C 471.05214,280.97394 469.75704,279.14987 470.21875,281.09375 C 469.89568,278.59695 469.05428,281.62125 469.90625,279.0625 C 470.61202,278.62006 472.28951,277.57088 470.15625,278.96875 z M 469.28125,281.4375 C 467.53781,279.39543 467.66145,279.27842 469.28125,281.4375 z M 467.4375,280.78125 C 469.91597,281.96339 466.23553,283.81213 467,282.03125 C 465.92459,281.51616 466.83535,280.46035 467.4375,280.78125 z M 466.125,282.625 C 465.11722,281.82915 465.05717,284.61952 464.84375,283.1875 C 462.3184,283.12393 464.62715,280.15383 465.625,281.6875 C 464.69795,278.96542 466.38532,282.11984 466.125,282.625 z M 460,285.65625 C 462.3197,284.97815 462.82396,284.97508 460,285.65625 z M 460.8125,288.09375 C 462.27253,287.06126 463.39635,286.98811 460.8125,288.09375 z M 461.5625,288.125 C 463.20983,288.36834 462.6464,291.01047 462.53125,289.96875 C 460.28447,289.58539 461.56561,287.98945 460.875,288.25 C 461.80055,287.97247 464.27119,287.05975 461.5625,288.125 z M 461.84375,290.5 C 459.63524,288.5918 460.26248,287.81467 461.84375,290.5 z M 460.90625,292.53125 C 460.93081,291.22809 462.75338,289.80383 460.90625,292.53125 z M 463.75,291 C 463.24355,291.7934 463.80344,293.44641 465.375,292.6875 C 468.74618,295.74907 461.40745,296.46541 462.15625,292.96875 C 461.86735,292.60828 460.9547,289.89952 463.75,291 z M 454.75,293.25 L 454.6875,293.3125 L 454.75,293.25 z M 461.9375,295.3125 C 460.88007,293.48163 460.91891,294.62393 461.53406,294.41251 L 461.9375,295.3125 z M 454.53125,293.5625 C 454.5565,295.1835 453.37079,298.14654 450.90625,298.09375 C 448.87971,296.52179 449.70166,293.41056 452.99682,293.96232 L 453.96451,293.71017 L 454.53125,293.5625 z M 450.125,294.875 C 450.24814,294.66471 449.72302,294.74218 450.125,294.875 z M 461.21875,295.59375 C 460.31067,293.1679 460.5307,292.75598 461.21875,295.59375 z M 460.125,295.875 C 459.23251,293.07073 459.78698,293.35631 460.125,295.875 z M 459.28125,296.0625 C 458.22662,293.58463 458.48083,293.50204 459.28125,296.0625 z M 456.21875,296.53125 C 458.27005,298.2175 456.02316,297.96821 455.53125,297 C 455.31377,296.46748 455.97273,295.95942 456.21875,296.53125 z M 453.90625,296.46875 C 456.6256,295.74424 454.81545,300.22569 455,297.5 C 452.89636,298.55183 453.46284,298.22553 453.375,297.78125 C 454.21563,297.78816 453.23052,296.32568 453.90625,296.46875 z"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;letter-spacing:normal;word-spacing:normal;text-anchor:start;fill:none;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10.43299961;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;display:inline" />
<path id="path12110"
d="M 463.0625,275.59375 C 462.67493,276.02499 462.19776,276.49036 461.59375,276.8125 C 461.15948,277.04411 461.33084,276.95191 461.15625,277.0625 C 460.88456,277.63057 460.4616,278.32472 459.78125,279.15625 C 459.40134,279.62058 459.06915,280.03278 458.3125,280.4375 C 457.55585,280.84222 455.9001,280.78132 455.15625,280.25 C 455.13341,280.23369 455.14668,280.23476 455.125,280.21875 C 455.026,280.27453 454.80214,280.43895 454.75,280.46875 C 454.67751,280.51017 454.53286,280.64406 454.46875,280.6875 C 454.53232,280.96957 454.625,281.14518 454.625,281.5 C 454.625,281.85637 454.5529,282.38962 454.375,282.9375 C 454.82981,283.55739 454.98974,284.34562 454.8125,285.09375 C 454.8618,285.12272 454.92105,285.15888 454.96875,285.1875 C 455.46236,285.48367 455.78615,285.72008 455.875,285.78125 C 456.02997,285.81454 456.29037,285.87124 456.59375,285.90625 C 457.28201,285.98566 457.96875,286 457.96875,286 C 458.56964,286.02597 459.14335,286.25766 459.59375,286.65625 C 459.4699,286.17894 459.08111,284.73657 458.90625,283.6875 C 458.75051,282.75315 459.07846,281.33006 459.9375,280.59375 C 460.79654,279.85744 461.875,279.875 461.875,279.875 C 461.875,279.875 463.10781,280.00845 464.5,280.53125 C 465.10397,280.16017 465.95702,280.084 466.78125,280.15625 C 467.32074,279.61676 467.90554,279.24957 468.53125,278.96875 C 468.43774,278.8282 468.37243,278.69649 468.25,278.4375 C 468.16793,278.26389 468.18334,277.88654 468.125,277.59375 C 467.64001,277.45423 467.21178,277.31424 466.65625,276.9375 C 466.36628,276.74086 466.24674,276.31068 466,275.9375 C 465.67391,275.9351 465.34792,275.97127 465.1875,275.9375 C 464.85432,275.86736 464.47151,275.7731 463.15625,275.59375 C 463.06954,275.58193 463.13451,275.60079 463.0625,275.59375 z M 459.375,291.34375 C 458.72323,292.08793 457.70821,292.4021 456.75,292.15625 C 456.75,292.15625 456.60575,292.12801 456.59375,292.125 C 456.39865,292.4008 456.3621,292.64783 456,292.9375 C 455.38493,293.42955 455.32868,293.62357 455.125,293.9375 C 455.12534,293.953 455.125,293.98534 455.125,294 C 455.125,294.22642 455.08387,294.6159 454.9375,295.03125 C 454.93756,295.04167 454.93756,295.05208 454.9375,295.0625 C 455.11001,295.27913 455.24713,295.52172 455.34375,295.78125 C 455.42612,295.64811 455.52025,295.52261 455.625,295.40625 C 455.625,295.40625 456.01059,295.0294 456.53125,294.625 C 457.05191,294.2206 457.69122,293.68675 458.9375,293.4375 C 459.65054,293.29489 460.02726,293.16261 460.40625,293.03125 C 460.11168,292.85829 459.81796,292.59243 459.5,292.0625 C 459.37427,291.85295 459.43708,291.59745 459.375,291.34375 z"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;letter-spacing:normal;word-spacing:normal;text-anchor:start;fill:#47c1dc;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10.43299961;stroke-dashoffset:0;stroke-opacity:1;display:inline;" />
<path
style="opacity:1;fill:#89db8c;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;display:inline;"
d="M 722.6875,151.8125 C 714.16889,153.58455 694.74977,155.91264 694.8125,164.9375 C 703.36313,170.15649 692.40709,176.4989 688.9606,176.6848 C 697.55887,186.42266 675.47509,183.50493 681.34986,185.08607 C 698.98431,184.9807 686.35495,206.47272 674.22457,195.71524 C 668.89221,192.80205 664.78618,175.59904 667.76881,191.14462 C 669.10956,206.30389 661.24995,218.13489 665.15198,232.42044 C 668.45712,240.00859 661.52552,245.11791 670.8746,250.11871 C 669.33268,259.01254 672.4144,269.53742 662.03101,273.80312 C 654.58475,280.79219 634.0101,273.91111 633.56264,288.964 C 633.38485,301.97114 653.08447,288.88196 649.61834,304.94656 C 648.13346,310.95943 642.9056,314.04394 651.14746,317.46493 C 653.78321,327.03468 664.49769,346.2607 648.31938,351.65352 C 635.8471,344.24987 623.13807,352.47453 610.90711,350.18925 C 600.58639,338.52839 589.14963,354.55559 577.75075,347.03142 C 574.34903,351.26723 576.65321,369.42957 587.72279,364.08881 C 595.96457,368.4639 611.54342,359.33975 608.43026,376.11325 C 606.83164,391.39426 609.31308,404.41893 619.75,416.09375 C 626.14404,425.02146 636.16902,430.81764 637.46875,442.3125 C 652.52925,442.02313 664.7513,429.52776 668.63789,416.65769 C 675.857,398.31158 649.96618,411.98517 647.81798,397.34432 C 638.77253,390.21636 637.58614,374.42295 652.84372,376.01703 C 658.62547,379.48978 654.25899,395.21228 664.0625,385.78125 C 669.7393,390.99993 672.72913,385.9659 676.9527,383.05808 C 688.13105,378.83154 694.63159,389.57601 700.21875,396.71875 C 711.36013,401.46112 700.20912,419.93243 710.96875,428.21875 C 713.19739,435.99566 721.15153,451.66302 721.42108,434.39696 C 722.35779,421.77051 727.14315,409.79561 730.47534,398.18909 C 735.9974,386.2247 750.90383,385.89264 752.90625,400.46875 C 757.32509,410.49784 773.85308,408.54353 772.125,423.53125 C 778.06647,410.69703 788.53422,430.79665 791.10503,427.27879 C 796.64583,417.71212 789.90089,406.4337 782.25947,406.06401 C 786.3215,399.17367 772.00961,395.63377 779.09549,386.20183 C 784.55889,378.23557 796.08728,386.94404 800.09375,374.03125 C 809.21644,364.65909 809.34644,351.70756 805.80487,340.25391 C 796.14356,333.67069 803.10739,319.8868 792.82156,317.77508 C 788.6209,308.25873 803.52034,296.27268 809.40301,305.95376 C 806.06991,292.44998 821.97257,283.53648 819.98857,269.64714 C 819.42896,258.82041 817.86125,244.44554 807.9375,240.65625 C 790.12416,240.29256 803.9449,213.59854 816.45975,215.16646 C 825.16659,215.7371 828.11178,213.37924 826.97545,204.51039 C 837.68117,197.18712 840.87729,224.76537 846.87079,210.54307 C 853.99741,214.37568 861.56804,201.26736 860.65222,198.17146 C 848.40287,190.16402 874.11335,189.50027 863.84375,182.875 C 854.68882,176.0582 844.36278,170.9214 834.11677,176.65746 C 824.27373,175.27357 816.2024,171.54154 807.23887,173.23981 C 799.14106,161.98126 783.77627,166.74519 773.19742,175.01587 C 769.45543,169.53664 764.36614,157.75288 756.44016,166.77735 C 745.35158,160.61982 735.72143,168.02999 725.3125,172.25 C 711.96982,165.32259 740.94707,155.93592 724.24383,152.87129 L 722.6875,151.8125 z M 665.09375,174.84375 C 664.51924,177.51407 667.65085,175.79391 665.09375,174.84375 z M 872.375,188.46875 C 877.08907,199.7671 881.2307,188.47538 872.375,188.46875 z M 843.25,222.28125 C 838.37529,229.41018 845.22476,255.07258 847.0573,235.49995 C 847.33992,230.80731 845.3203,226.36373 843.25,222.28125 z M 811.71875,308.28125 C 815.17648,314.09411 816.22557,308.99754 811.71875,308.28125 z"
id="path11181" />
<path sodipodi:type="inkscape:offset" inkscape:radius="-1.4320608"
inkscape:original="M 858.625 259.5 C 858.2149 259.38443 857.66852 259.43882 856.90625 259.75 C 855.55085 259.47309 854.42111 259.87597 853.25 260.53125 C 851.25906 261.65848 846.00195 259.18255 848.125 262.8125 C 849.07947 265.53921 848.84435 269.33335 845.5625 269.96875 C 844.36799 273.98882 847.03221 269.30062 849.59375 270.6875 C 851.95827 270.21533 857.07684 271.47216 855.5 267.5625 C 854.11286 263.86989 858.51899 261.58549 861.03125 262.65625 C 859.88462 261.70702 859.85531 259.84672 858.625 259.5 z M 848.1875 280.65625 L 848.03125 280.9375 C 845.49168 283.95914 848.36697 288.23326 849.75 291.25 C 851.13619 294.29286 848.62825 296.63752 846.53125 298.15625 C 846.56489 301.33572 843.71711 302.15834 841.46875 303.0625 C 842.14476 306.5329 840.72122 309.54058 839.25 312.84375 C 836.53422 312.09911 834.63845 313.32619 834.15625 316.15625 C 833.717 318.64751 830.80545 321.61852 830.90625 323.53125 C 831.64384 325.23809 836.2192 325.78857 836.5 324.90625 C 835.41633 322.21123 832.93081 315.7791 837.625 316.625 C 840.35411 318.80667 844.46802 310.17923 844.84375 316.53125 C 844.4839 319.58523 849.33843 317.26562 847.9375 314.9375 C 847.8406 311.70949 851.28119 312.16768 852.875 310.34375 C 855.40735 310.42465 855.13828 308.31635 857.03125 307.3125 C 856.86693 304.56222 861.02754 302.95562 860.25 303.625 C 857.96304 301.45937 856.23438 298.85603 857 295.34375 C 853.5627 291.85702 860.16766 286.15548 855.4375 283.1875 C 852.0825 283.36821 851.51632 280.22231 848.1875 280.65625 z M 831.1875 326.6875 C 831.1752 326.61826 831.06632 326.67004 830.78125 326.90625 C 827.37399 326.94992 829.48852 329.59398 830.4375 328.4375 C 830.35188 328.14925 831.22441 326.89522 831.1875 326.6875 z "
style="opacity:1;fill:#85df8e;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;display:inline;"
id="path11211"
d="M 858.25,260.875 C 858.27244,260.88132 858.03214,260.81975 857.4375,261.0625 C 857.18154,261.17206 856.89919,261.20464 856.625,261.15625 C 855.6894,260.96511 854.9844,261.19547 853.9375,261.78125 C 853.00904,262.30693 852.11458,262.30027 851.28125,262.28125 C 850.55695,262.26472 849.92757,262.21223 849.40625,262.1875 C 849.43013,262.23831 849.451,262.29049 849.46875,262.34375 C 850.02653,263.93721 850.25885,265.78416 849.8125,267.53125 C 849.67093,268.08539 849.29344,268.55991 848.96875,269.0625 C 849.19726,269.08709 849.42522,269.17854 849.65625,269.25 C 851.17128,269.02387 852.82381,269.16224 853.78125,269 C 854.29994,268.91211 854.4267,268.76677 854.375,268.84375 C 854.3233,268.92073 854.49114,268.8466 854.1875,268.09375 C 854.17692,268.08349 854.16651,268.07308 854.15625,268.0625 C 853.25296,265.65792 854.3391,263.33546 855.96875,262.15625 C 856.69077,261.6338 857.52308,261.31447 858.375,261.125 C 858.34204,261.0781 858.23934,260.872 858.25,260.875 z M 849,282.125 C 848.32667,283.10761 848.31906,284.18874 848.78125,285.65625 C 849.28531,287.25671 850.32108,289.03903 851.0625,290.65625 C 851.9482,292.60046 851.54593,294.59406 850.65625,296.03125 C 849.86435,297.31049 848.76887,298.23446 847.75,299 C 847.50022,300.57087 846.73054,301.8696 845.6875,302.625 C 844.76025,303.29654 843.83334,303.62214 842.9375,303.96875 C 843.21818,307.4431 841.87605,310.48833 840.5625,313.4375 C 840.26853,314.07733 839.55307,314.40857 838.875,314.21875 C 837.79252,313.92195 837.12507,314.07051 836.65625,314.375 C 836.38413,314.55174 836.14054,314.86011 835.9375,315.28125 C 836.54331,315.13703 837.19777,315.09671 837.875,315.21875 C 838.11399,315.2556 838.33975,315.35235 838.53125,315.5 C 838.62407,315.5742 838.58221,315.56541 838.65625,315.5625 C 838.73029,315.55959 838.91568,315.51621 839.1875,315.375 C 839.73115,315.09258 840.49225,314.45814 841.25,313.875 C 841.62888,313.58343 842.01123,313.29621 842.46875,313.0625 C 842.92627,312.82879 843.522,312.59423 844.28125,312.78125 C 845.0405,312.96827 845.61966,313.62523 845.875,314.25 C 846.12329,314.85751 846.22782,315.52943 846.28125,316.375 C 846.47138,316.2457 846.65761,316.05788 846.71875,315.9375 C 846.79523,315.7869 846.82643,315.86644 846.71875,315.6875 C 846.58317,315.47165 846.50766,315.22353 846.5,314.96875 C 846.46818,313.90871 846.77775,312.95399 847.3125,312.25 C 847.84725,311.54601 848.5094,311.14762 849.125,310.84375 C 850.35619,310.23601 851.35941,309.889 851.78125,309.40625 C 852.06183,309.07869 852.47509,308.89502 852.90625,308.90625 C 853.77723,308.93407 853.68066,308.87987 854.0625,308.375 C 854.35959,307.98219 854.88421,307.24538 855.6875,306.59375 C 855.90897,305.00231 856.95845,303.86392 857.90625,303.15625 C 856.2483,301.15599 855.12992,298.65671 855.5625,295.65625 C 854.82896,294.59687 854.46787,293.40864 854.53125,292.3125 C 854.60806,290.98404 855.00506,289.7763 855.3125,288.6875 C 855.61994,287.5987 855.8454,286.64767 855.78125,286 C 855.72027,285.38434 855.55095,284.9796 854.78125,284.46875 C 853.09099,284.32137 851.80152,283.60486 850.96875,283 C 850.22515,282.4599 849.71115,282.17975 849,282.125 z M 833.6875,320.5625 C 833.6457,320.63196 833.60337,320.71263 833.5625,320.78125 C 832.88944,321.9114 832.58881,322.78927 832.5,323.15625 C 832.57941,323.22398 832.55531,323.22794 832.71875,323.3125 C 833.08772,323.50339 833.63211,323.68201 834.15625,323.78125 C 834.31855,323.81198 834.40729,323.79555 834.5625,323.8125 C 834.19345,322.81869 833.90528,321.74582 833.6875,320.5625 z M 830.03125,327.3125 C 830.01574,327.30771 829.98887,327.34531 829.96875,327.34375 C 830.02809,327.46515 830.03647,327.56675 830.15625,327.6875 C 830.18166,327.71312 830.22236,327.69556 830.25,327.71875 C 830.24815,327.6673 830.29478,327.5944 830.28125,327.5625 C 830.20785,327.38944 830.19337,327.36253 830.03125,327.3125 z" />
<path
style="opacity:1;fill:#9d7902;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;display:inline;"
d="M 653.96875,539.21875 C 651.71167,540.80108 649.91938,542.31078 648.46875,544.65625 C 645.34722,547.92189 640.18393,545.64482 636.9375,547.53125 C 636.51308,549.03301 635.42596,549.64871 637.5,550.59375 C 640.9639,552.53603 639.58844,558.05148 636.03125,559.0625 C 633.96331,563.18693 637.38843,566.82034 639.4375,570.125 C 636.80919,568.79906 632.25024,566.2811 631.40625,570.59375 C 633.44409,572.92217 635.02864,576.41444 634.09375,579.21875 C 637.12318,579.70194 638.8371,578.54705 640.21875,576.1875 C 644.3183,573.94814 643.07889,567.9004 647.03125,565.21875 C 647.94917,561.44683 651.0957,558.49537 650.40625,554.40625 C 651.2457,550.08965 651.25783,544.99612 653.90625,541.375 C 655.10031,540.8491 654.18447,539.79553 653.96875,539.21875 z"
id="path11259" />
<path
style="opacity:1;fill:#9c7805;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;display:inline;"
d="M 531.15625,374.875 C 520.89341,376.55203 512.40961,383.87418 501.84544,384.66768 C 488.38178,383.28649 488.69445,400.61351 482.963,409.56387 C 474.86471,417.73756 481.61883,427.44099 479.66004,437.43181 C 473.62756,447.95549 487.66104,451.16812 488.71646,460.59889 C 495.96941,468.77545 505.4629,471.45729 516.13945,467.04378 C 523.59551,462.7873 532.02635,466.842 537.25751,470.97243 C 549.934,468.82546 545.73244,485.29827 542.57236,491.41594 C 546.04065,498.63121 557.4376,505.33785 554.77242,514.758 C 549.8723,520.31412 558.67029,528.30309 551.57518,534.40442 C 546.62169,543.79595 553.51912,552.24828 557.98699,559.86441 C 558.5117,570.53169 564.55368,578.76549 565.76296,589.35227 C 562.68781,601.37142 575.87191,594.53096 581.69906,593.69005 C 587.30297,589.96514 593.58279,589.05662 594.43266,580.74997 C 599.37309,574.81541 599.5207,565.86165 605.31367,559.89804 C 602.57648,551.31329 609.67881,545.13046 614.87304,539.89312 C 622.87511,533.91217 616.65932,525.90475 614.95236,519.98951 C 612.82877,513.45362 610.62704,501.72033 618.8125,497.65625 C 625.17634,491.84334 628.87552,483.62794 636.26889,478.78153 C 640.00437,474.25054 647.48699,463.13401 644.4531,460.24203 C 634.97453,464.47941 620.75231,465.11829 621.28009,452.13273 C 614.70604,446.16651 612.66992,436.90563 609.26833,428.98562 C 603.14295,423.13428 603.63775,412.74997 596.73737,407.03742 C 594.85118,400.21054 592.54856,397.25531 584.93857,396.74929 C 576.38383,395.81445 569.2878,389.53726 560.68333,394.00361 C 550.17225,395.81138 538.60555,387.71641 534.73828,378.27693 C 533.04565,377.47347 532.48679,375.98052 531.15625,374.875 z"
id="path11245" />
<path
style="opacity:1;fill:#a31aa6;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;display:inline;"
d="M 845.375,501.9375 C 840.98755,502.59177 835.91145,504.13919 836.53186,509.72801 C 835.9391,514.23595 830.61562,514.34376 827.46875,512.4375 C 825.07006,516.33001 821.47403,518.34101 818.44298,521.21051 C 813.21789,522.04696 812.69256,527.5668 808.4798,529.79784 C 805.36709,532.68399 802.10079,534.35252 797.78766,533.90706 C 796.4897,538.34991 786.77833,537.91642 791.29141,543.01088 C 791.63918,547.06518 790.67836,551.77989 787.64656,553.89936 C 789.56351,558.09377 791.48451,562.62034 791.5952,566.79285 C 796.35092,570.50735 795.43424,575.94386 793.90536,580.89269 C 790.13957,585.54339 797.80653,586.08851 800.0114,582.75329 C 804.49043,579.36187 809.61553,575.33371 815.64838,576.61248 C 817.70353,575.22709 820.54269,571.01801 824.63638,571.21624 C 829.53429,569.36834 834.24059,566.09581 839.77922,568.22033 C 843.76191,568.43185 847.98623,571.55456 847.8125,575.84375 C 850.30812,573.67654 851.0169,567.92154 856.03852,570.35884 C 861.11651,572.10669 859.98045,577.67202 858.6971,581.27535 C 861.18143,585.27867 859.18856,591.70337 862.75151,594.61987 C 866.17227,589.98238 871.66585,596.52742 874.45443,592.11077 C 877.80332,590.08455 882.01449,592.30073 882.13255,587.17688 C 883.36994,583.39319 884.57736,579.72569 886.55731,576.22453 C 889.67572,573.37445 887.56274,567.69093 892.6423,566.01843 C 895.49966,561.67605 896.0491,553.51359 894.46105,547.86649 C 891.44058,543.49885 888.51054,539.01426 885.97789,534.66312 C 886.26504,528.97573 879.6396,529.83223 877.22117,526.0232 C 874.4587,522.17145 878.58573,516.74898 875.21875,513.34375 C 872.9237,514.64933 869.28331,509.49845 870.5014,514.83214 C 870.24277,519.81224 864.21923,521.43412 860.24667,519.90538 C 856.23462,518.5088 855.77926,513.06905 851.12176,514.39742 C 845.27561,512.71679 848.56794,503.83609 848.23942,502.2049 C 847.27919,502.16156 846.34239,501.87297 845.375,501.9375 z"
id="path11465" />
<path
style="opacity:1;fill:#a914ac;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;display:inline;"
d="M 748.59375,469.5 C 749.25202,470.89104 750.92174,471.19007 749.32567,469.6032 L 749.09969,469.49835 L 748.59375,469.5 L 748.59375,469.5 z M 753.90625,475.875 C 755.6261,479.30227 757.99306,482.63607 758.1875,486.59375 C 763.64057,489.07159 765.5723,495.23166 767.9375,500.25 C 769.77044,501.78795 773.84404,505.72703 775.55295,502.57463 C 774.61974,500.0194 769.1773,501.90178 770.01808,497.68819 C 770.36356,494.58697 767.50697,493.34671 765.91073,491.33173 C 764.26446,488.57274 765.01705,485.18271 763.9375,482.25 C 761.75457,481.11421 759.58157,479.93726 757.2266,479.70178 C 755.76005,478.69126 756.36051,475.38729 753.90625,475.875 z"
id="path11471" />
<path
style="opacity:1;fill:#a914ac;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;display:inline;"
d="M 793.84375,457.84375 C 792.09318,460.93717 789.87161,463.75994 788.77669,467.11423 C 785.99625,471.04505 782.05182,474.34619 777.34375,475.625 C 776.42891,479.16777 777.0928,483.22866 779.625,485.96875 C 779.63237,488.80939 780.35551,491.77163 783.59949,492.31899 C 786.65005,493.81331 791.02324,492.04288 791.5,488.5 C 788.48225,486.99704 788.39348,482.89349 790.22691,480.43345 C 791.21957,477.45929 797.0513,477.3218 795.02508,473.5309 C 792.82055,470.31675 792.77158,465.77526 795.6714,462.95074 C 797.45562,461.38429 797.9933,459.29903 795.21641,458.62608 C 794.75435,458.37347 794.28836,458.12672 793.84375,457.84375 z"
id="path11473" />
<path
style="opacity:1;fill:#ad12ae;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;display:inline;"
d="M 820.90625,448.3125 C 819.85349,450.22382 823.35548,451.7942 823.09298,453.41816 C 824.70173,453.93997 826.88046,453.46604 825.63475,451.44607 C 825.01927,449.57786 822.56724,448.90245 820.90625,448.3125 z M 840.40625,450.3125 C 838.19842,450.2724 838.2217,452.95765 837.62863,454.47586 C 836.77926,456.04417 835.73402,457.57986 835.94894,459.4952 C 835.98187,461.60601 836.95874,463.66227 838.53125,465.0625 C 839.97077,468.54202 838.29982,472.19799 837.96875,475.71875 C 840.26176,477.20562 842.82807,479.37142 845.75694,478.50119 C 847.7617,477.98481 850.80756,478.88558 851.78125,476.34375 C 853.44237,473.94536 856.7948,473.81778 859.26394,474.89374 C 861.7221,475.89916 864.05694,477.45797 865.59375,479.65625 C 865.14809,476.47291 861.98135,474.05598 862.51807,470.6785 C 863.24603,469.3913 863.71707,467.72277 861.82979,467.23446 C 859.76239,466.41782 857.54416,465.97159 855.66002,464.73372 C 854.25239,463.8037 852.05082,462.97875 851.8791,461.09741 C 852.66532,459.81204 855.45253,460.65972 855.84816,460.56017 C 851.38941,459.13665 847.81805,455.65714 845.53125,451.65625 C 843.75682,451.58515 841.95192,451.21978 840.40625,450.3125 z M 829.71875,458.125 C 828.63961,458.73652 828.5179,459.588 829.89618,458.97437 C 831.32339,458.77309 830.59415,458.67603 829.71875,458.125 z"
id="path11475" />
<path
style="opacity:1;fill:#a715a9;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;display:inline;"
d="M 812.125,477.4375 C 809.17511,479.12754 804.85982,477.19556 802.63736,480.28194 C 803.16553,483.85395 800.68729,487.1946 800.71875,490.8125 C 799.0119,492.47495 801.67307,496.79602 800.88183,497.19247 C 801.86847,493.62636 806.20811,494.16847 806.57707,497.79124 C 806.57317,499.26464 809.93259,501.03234 807.85767,498.90454 C 806.70039,496.70348 807.52438,493.18049 804.51561,492.59118 C 803.16845,490.19181 804.31318,486.74842 804.90928,484.94714 C 801.37844,482.71993 805.02445,477.24065 808.49965,479.36123 C 809.72619,479.4235 812.25199,479.09246 812.125,477.4375 z"
id="path11583" />
<path
style="opacity:1;fill:#bb10bf;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;display:inline;"
d="M 785.375,507.53125 C 784.33671,508.64901 780.22473,509.84359 781.61905,510.88287 C 784.9453,510.98851 788.22019,511.31581 791.38705,510.22886 C 794.85529,510.30779 798.02734,512.79681 801.5625,511.875 C 803.16948,513.53218 804.47527,510.89201 802.0291,511.19304 C 797.64611,510.95096 794.18754,506.80098 789.625,507.75 C 788.2078,507.68749 786.79329,507.56992 785.375,507.53125 z"
id="path11869" />
<path
style="opacity:1;fill:#dadd23;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;display:inline;"
d="M 432.90625,141.0625 C 429.93217,142.58075 425.88732,144.39418 423.5625,145.15625 C 422.81539,149.38644 417.14096,148.80512 415.53125,152.0625 C 413.80594,157.15396 407.18149,153.84959 404.1875,156.6875 C 400.20774,156.7823 396.46539,158.53473 394.14307,161.80294 C 392.87192,162.81216 393.81634,166.29271 391.31625,167.10154 C 393.13277,164.67788 389.27242,170.30639 387.1875,168.84375 C 388.46313,171.09237 383.38368,174.30402 387.82121,172.14591 C 391.37165,168.62183 396.22143,170.53718 399.5625,172.5625 C 402.63475,174.8744 405.4683,178.19574 406.03125,182.25 C 408.48754,185.17647 407.62507,189.04487 411.47123,190.79937 C 412.03105,194.30035 415.91038,196.25414 414.74686,200.1535 C 414.92732,203.22667 411.95306,205.95894 411.21875,207.875 C 413.32247,211.82994 412.11693,216.13206 413.93212,220.17113 C 414.93055,223.71774 419.28009,223.65315 420.85254,226.55259 C 422.29512,226.235 421.62036,221.78268 423.35527,220.30968 C 423.15907,216.09766 426.72324,213.88859 425.40625,209.875 C 425.09526,205.47766 430.22771,203.28589 433.98521,203.63672 C 437.99076,204.89442 438.06264,198.91263 441.96875,199.46875 C 444.30769,197.56488 447.10851,197.38855 446.91466,193.6045 C 447.88983,190.97961 451.19372,191.06195 453.03125,191.53125 C 451.70172,188.37133 454.06005,183.76624 456.625,182.125 C 452.96473,178.54243 458.03404,174.06892 461.84375,174.1875 C 463.96749,173.17359 461.79351,167.72482 464.1875,165.53125 C 459.23145,163.73006 462.59336,158.6741 461.94578,155.20379 C 463.91009,150.83932 457.50604,153.11363 455.03125,153.28125 C 452.13609,152.47899 449.90574,151.35754 446.65625,151.4375 C 442.5738,150.68118 442.98993,144.28139 447,143.78125 C 446.1787,142.07312 440.59119,142.98751 437.9375,141.34375 C 436.25804,141.26784 434.56795,141.39523 432.90625,141.0625 z M 467.3125,145.3125 L 467.5,146.125 L 467.3125,145.3125 z M 461.09375,178.8125 L 460.8125,179.625 L 461.09375,178.8125 L 461.09375,178.8125 z M 424.78125,220.09375 C 424.59158,220.03118 424.05889,220.48566 424.78125,220.09375 z M 417.28125,224.78125 L 417.53125,225.0625 L 417.28125,224.78125 L 417.28125,224.78125 z"
id="path12115" />
<path
style="opacity:1;fill:#d9dd23;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;display:inline;"
d="M 224.65625,178 C 219.10957,180.20435 206.92588,182.26147 216.23442,189.32213 C 215.1275,195.24668 208.8165,195.71277 210.83735,202.3133 C 209.05701,210.20006 192.71048,204.32597 200.74977,213.76301 C 202.96541,218.22627 210.28643,213.30451 212.34375,219.4375 C 217.33733,209.40319 228.82077,214.04418 236.28026,215.84155 C 241.84484,221.29533 252.03577,221.40201 253.60294,230.62569 C 256.44192,238.97242 262.85047,246.43399 265.60218,255.16941 C 269.2802,263.89072 268.72738,272.64894 264.38172,281.42991 C 262.00004,292.04153 259.04587,304.05858 266.65926,313.28986 C 266.24025,324.04477 276.56228,328.97051 275.74882,340.0649 C 277.11881,349.70336 286.68654,345.24809 293.6875,346.125 C 287.96101,348.13206 287.66246,350.08942 290.52645,354.44083 C 285.5213,364.73047 299.04529,362.37242 304.08794,367.09049 C 310.47312,368.99354 311.03642,388.74755 315.34237,375.0275 C 314.09794,372.51442 310.50464,365.06206 315.32416,362.09167 C 305.87736,368.29725 293.75797,358.27232 297.8125,347.875 C 296.60116,339.63346 305.57662,331.63118 312.9536,328.72776 C 322.19581,325.72784 331.64873,326.24522 340.90637,328.0344 C 347.41514,323.97885 350.99964,337.75203 351.38872,326.81717 C 352.88533,318.8012 368.73602,319.05075 363.36177,309.16081 C 367.79522,301.10666 376.86621,296.59543 377.94909,286.54837 C 381.33836,280.11144 397.20662,279.08349 388.22082,272.98785 C 378.34682,278.50926 376.45697,260.44289 387.0279,259.95068 C 392.83606,257.29603 399.95355,261.62207 403.03995,254.33349 C 408.72345,253.87513 412.78654,250.48795 406.5625,246.8125 C 404.95468,241.15455 401.02528,246.4078 400.3827,239.04119 C 399.67498,232.08455 394.48948,230.3399 389.18133,234.13443 C 380.67399,233.38569 386.36786,214.37634 377.68159,219.60286 C 377.07264,225.21282 370.20895,227.73253 375.02613,233.98176 C 375.89216,242.59956 364.34082,243.92659 367.05504,251.98123 C 364.43986,255.66802 362.26337,273.44946 357.00392,263.47449 C 352.45177,257.68094 353.69503,249.19124 349.29976,244.37835 C 340.92788,248.6478 332.2619,236.34749 328.2911,228.53539 C 326.33252,217.68474 335.16368,208.96544 342.875,202.8125 C 341.03458,196.39478 347.32013,189.81944 351.5625,197.65625 C 359.1018,192.45134 348.07768,190.99816 345.59375,186.96875 C 338.20703,192.20347 328.60779,191.50454 321.2691,190.62388 C 312.01497,194.68142 301.7011,195.83163 294.33516,187.09965 C 287.18429,182.73936 281.06119,182.31287 273.16734,185.96735 C 263.45951,190.53723 254.61912,184.26702 244.43983,185.46406 C 237.72113,183.28546 230.37494,181.73075 224.65625,178 z M 359.40625,191.78125 C 357.07074,192.03145 360.35603,192.41064 359.40625,191.78125 z M 204.15625,194.03125 C 202.59729,196.72726 208.08595,194.9029 204.15625,194.03125 z"
id="path12117" />
<path
style="opacity:1;fill:#ea4224;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;display:inline;"
d="M 345.65625,385.375 C 339.84762,390.48206 327.67131,390.24133 327.12238,399.60265 C 322.30181,407.37127 322.55175,415.82976 317.79033,423.65928 C 317.44912,430.41967 316.68463,437.37348 321.5691,443.39641 C 324.43354,449.34158 331.3969,453.55037 331.82377,460.53571 C 337.99971,464.44957 344.2124,468.13459 348.80991,473.62118 C 351.23597,482.46438 347.58096,491.96482 348.875,500.6875 C 346.14177,507.92361 349.17314,515.67919 347.17452,523.034 C 348.27724,530.25481 341.70852,538.99658 347.46875,544.90625 C 347.24271,553.29363 341.908,562.25761 346.55334,570.17338 C 347.26498,579.54706 352.92548,588.0329 361.86029,591.35785 C 368.50162,596.32413 360.31864,585.71011 360.95913,582.81228 C 360.31487,574.77149 363.3634,566.52776 361.50135,558.27314 C 367.86033,553.61499 363.76937,542.03064 371.02515,539.86202 C 361.99227,532.20359 384.00746,535.41172 384.15824,531.36961 C 376.1938,524.95254 386.11812,519.82321 392.5625,520.3125 C 399.97157,517.02607 400.50642,508.45213 405.59457,503.59307 C 404.77801,495.81412 408.53028,484.84036 417.95055,484.54531 C 428.04124,485.17495 432.47888,474.63253 434.47301,467.19145 C 434.55877,459.00687 436.01708,450.75433 440.8494,445.18187 C 450.94758,443.7176 445.15479,431.8182 438.11759,430.50921 C 429.89059,427.8694 421.87632,425.14382 413.72697,423.07355 C 405.83451,425.15129 396.82801,417.46399 403.10017,411.51291 C 401.75179,401.04219 388.13256,406.56346 382.28563,401.07406 C 376.17739,398.18016 372.55843,389.43767 365.20685,389.77027 C 359.57435,387.86741 348.64146,391.29173 345.65625,385.375 z M 393.59375,519.6875 C 393.59375,519.6875 393.59375,519.6875 393.59375,519.6875 z"
id="path12123" />
<rect
style="opacity:1;fill:none;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1.20000005;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4.32165003;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.58527132;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
id="rect13036" width="749.81909" height="519.06781" x="167.06265" y="117.46175"
transform="translate(0.9338531,1.0933228)" rx="2.3198097" ry="0" />
</g>
<g inkscape:groupmode="layer" id="layer4" inkscape:label="countries" style="display:inline"
transform="translate(-167.99651,-118.55507)">
<g>
<path class="area oceania" id="eastern_australia"
style="opacity:1;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1.20000005;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4.32165003;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.58527132;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
d="M 832.08791,509.72925 C 832.08791,509.72925 832.26468,510.25958 832.79501,508.13826 C 833.32534,506.01694 832.97179,504.95628 833.6789,503.36529 C 834.386,501.7743 834.73956,501.95107 836.15377,501.24397 C 837.56798,500.53686 837.92154,500.18331 838.27509,499.4762 C 838.62864,498.76909 839.6893,498.59232 840.74996,498.76909 C 841.81062,498.94587 842.34095,499.4762 843.22484,498.23876 C 844.10872,497.00133 843.93194,496.64777 844.81583,497.00133 C 845.69971,497.35488 845.16938,497.35488 846.40682,497.70843 C 847.64426,498.06199 848.88169,498.59232 851.35657,498.06199 C 853.83144,497.53166 854.00822,496.29422 854.18499,497.70843 C 854.36177,499.12265 854.36177,499.29942 855.24565,499.29942 C 856.12954,499.29942 856.12954,499.4762 855.59921,500.53686 C 855.06888,501.59752 855.42243,500.89041 854.00822,502.83496 C 852.594,504.7795 851.8869,504.95628 851.71012,506.37049 C 851.53334,507.7847 851.8869,508.66859 851.8869,508.66859 C 851.8869,508.66859 851.17979,510.61313 852.41723,510.61313 C 853.65466,510.61313 853.83144,510.0828 855.42243,509.90602 C 857.01342,509.72925 858.42763,509.55247 858.60441,511.14346 C 858.78119,512.73445 859.84185,515.73966 860.90251,515.91643 C 861.96317,516.09321 861.96317,516.44676 863.73093,516.09321 C 865.4987,515.73966 866.20581,516.62354 866.38258,515.03255 C 866.55936,513.44156 866.55936,513.08801 866.55936,511.85057 C 866.55936,510.61313 864.79159,512.55767 867.08969,509.02214 C 869.38779,505.48661 869.91812,507.7847 869.38779,503.89562 C 868.85746,500.00653 867.7968,500.36008 868.68068,497.88521 C 869.56457,495.41034 869.21101,495.41034 869.74134,495.58711 C 869.74134,495.58711 871.33233,495.41034 871.50911,497.88521 C 871.68589,500.36008 872.39299,502.4814 872.39299,503.54206 C 872.39299,504.60272 873.1001,508.49181 873.1001,508.49181 C 873.1001,508.49181 874.33754,509.90602 875.04464,509.37569 C 875.75175,508.84536 876.81241,508.66859 876.81241,507.43115 C 876.81241,506.19371 877.16596,504.7795 877.51952,505.48661 C 877.87307,506.19371 878.93373,506.72404 878.93373,507.7847 C 878.93373,508.84536 878.75695,509.90602 878.93373,510.96668 C 879.11051,512.02734 880.17117,513.08801 880.17117,513.08801 C 880.17117,513.08801 880.52472,515.20933 880.52472,515.91643 C 880.52472,516.62354 880.87827,517.15387 880.52472,518.92164 C 880.17117,520.6894 880.17117,520.86618 880.34794,522.45717 C 880.52472,524.04816 880.7015,524.75527 881.4086,524.93204 C 882.11571,525.10882 882.11571,525.10882 882.82282,525.10882 C 883.52992,525.10882 883.7067,524.40171 884.23703,525.2856 C 884.76736,526.16948 884.94414,526.69981 886.18157,526.87659 C 887.41901,527.05336 888.47967,526.87659 888.47967,526.87659 C 888.47967,526.87659 889.01,527.76047 889.01,528.82113 C 889.01,529.88179 888.83323,530.23534 889.18678,531.64956 C 889.54033,533.06377 889.54033,533.24055 890.42422,533.41733 C 891.3081,533.5941 891.83843,533.77088 891.83843,533.77088 C 891.83843,533.77088 892.01521,534.65476 892.01521,536.06898 C 892.01521,537.48319 892.36876,538.36707 892.36876,538.36707 L 893.78297,539.42773 C 893.78297,539.42773 894.13653,540.31162 894.84363,541.1955 C 895.55074,542.07938 896.25785,542.25616 896.25785,542.25616 C 896.25785,542.25616 896.78818,543.31682 896.96495,544.2007 C 897.14173,545.08459 896.6114,544.55426 897.67206,545.79169 C 898.73272,547.02913 898.9095,547.38268 898.9095,548.44334 C 898.9095,549.504 899.79338,550.21111 899.43983,551.62532 C 899.08627,553.03954 899.26305,553.56987 899.08627,555.33764 C 898.9095,557.1054 899.26305,554.98408 898.9095,557.98929 C 898.55594,560.99449 898.73272,561.87837 898.55594,562.93903 C 898.37917,563.99969 898.02561,563.11581 897.84884,565.06035 C 897.67206,567.0049 897.49528,568.59589 897.49528,568.59589 C 897.49528,568.59589 896.25785,570.36365 895.37396,570.36365 C 894.49008,570.36365 892.89909,569.65655 892.89909,570.54043 C 892.89909,571.42431 892.01521,572.13142 893.25264,572.48497 C 894.49008,572.83853 894.84363,571.77787 894.84363,573.0153 C 894.84363,574.25274 894.49008,574.6063 893.42942,575.49018 C 892.36876,576.37406 892.36876,576.19729 891.13132,576.90439 C 889.89389,577.6115 890.60099,576.55084 889.71711,578.84894 C 888.83323,581.14703 889.01,581.14703 888.3029,582.03092 C 887.59579,582.9148 887.41901,582.9148 887.06546,583.97546 C 886.7119,585.03612 886.7119,585.38967 886.7119,586.62711 C 886.7119,587.86455 886.35835,588.39488 886.35835,588.39488 C 886.35835,588.39488 884.94414,589.80909 884.94414,591.04653 C 884.94414,592.28396 885.82802,592.81429 885.12091,593.69818 C 884.41381,594.58206 885.12091,594.58206 883.52992,594.75884 C 881.93893,594.93562 881.23183,594.93562 881.23183,594.93562 L 878.75695,595.46595 C 878.75695,595.46595 878.4034,594.40528 877.51952,594.93562 C 876.63563,595.46595 876.98919,595.28917 876.28208,596.17305 C 875.57497,597.05694 875.3982,597.05694 874.51431,597.58727 C 873.63043,598.1176 874.51431,598.29437 873.98398,599.17826 C 873.45365,600.06214 873.27688,600.94602 872.21622,600.41569 C 871.15556,599.88536 870.802,600.06214 870.44845,599.00148 C 870.0949,597.94082 870.62523,597.76404 868.85746,597.23371 C 867.08969,596.70338 866.91291,596.70338 866.91291,596.70338 C 866.91291,596.70338 866.38258,597.05694 866.02903,597.94082 C 865.67548,598.8247 866.20581,599.17826 864.96837,599.70859 C 863.73093,600.23892 863.73093,600.76925 862.4935,599.88536 L 862.72892,599.61589 C 862.72892,599.61589 862.72892,593.95904 862.9057,592.54482 C 863.08248,591.13061 862.55215,591.30739 861.84504,590.24673 C 861.13793,589.18607 862.72892,547.9971 862.55215,547.11321 C 862.37537,546.22933 832.67689,547.46677 832.67689,547.46677 L 832.08791,509.72925 z"
sodipodi:nodetypes="csssssssssssssscsssssssssscsscssssscssssssscssscsccscsssssssscsssssssssscsssccssssssscssc" />
<text class="unit" x="870" y="550"></text>
</g>
<g>
<path class="area oceania" id="indonesia"
style="opacity:1;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1.20000005;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4.32165003;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.58527132;display:inline;"
d="M 778.125,511.375 C 779,512.75 778.5,513 780.5,513 C 782.5,513 783.75,512.625 784.875,512.875 C 786,513.125 785.5,513.5 786.75,513.375 C 788,513.25 789.125,512.5 790.125,512.375 C 791.125,512.25 792.375,512.125 793.125,512.375 C 793.875,512.625 795,513.5 796.375,513.625 C 797.75,513.75 800.875,513.75 801.375,513.875 C 801.875,514 803.5,515.25 804.25,514.375 C 805,513.5 805.25,513.75 805.5,512.375 C 805.75,511 805.75,510.25 804.875,510 C 804,509.75 804.625,509.25 802.5,509.125 C 800.375,509 799.75,508.75 799.125,508.5 C 798.5,508.25 797.5,507.25 796.75,507 C 796,506.75 793.875,505.875 792.5,505.875 C 791.125,505.875 788.375,505.625 787,505.625 C 785.625,505.625 785.375,505 783.875,506.125 C 782.375,507.25 781.125,507.75 780.25,508.375 C 779.375,509 779.625,508.5 779.25,509.75 C 778.875,511 778.5,511.625 778.125,511.375 z M 801.5,503.25 C 802,501.5 801.625,501.75 801.75,500.25 C 801.875,498.75 802.25,499.125 802.875,498.125 C 803.5,497.125 803.125,495.5 804.25,497.375 C 805.375,499.25 805,500 806.375,501.125 C 807.75,502.25 808,503.5 809.125,502.375 C 810.25,501.25 812.375,500.125 811.125,498.75 C 809.875,497.375 809.125,498.75 809,495.5 C 808.875,492.25 808.75,491.125 807.875,491.25 C 807,491.375 806.25,492.625 806.125,490.875 C 806,489.125 805.5,487 806.875,486.875 C 808.25,486.75 809.625,487.625 810.5,486 C 811.375,484.375 812.375,483.875 810.75,483.625 C 809.125,483.375 807.875,483.125 807,483.25 C 806.125,483.375 805.5,483.375 805.625,482.625 C 805.75,481.875 804.75,481.125 806.5,481.125 C 808.25,481.125 807.875,481.5 809.5,481.375 C 811.125,481.25 812.75,480.375 813.25,479.875 C 813.75,479.375 814.375,477.125 815.125,476.625 C 815.875,476.125 816.375,475.75 816.25,475.125 C 816.125,474.5 815.875,474 815.125,473.75 C 814.375,473.5 813.125,473.25 812.75,473.75 C 812.375,474.25 811.5,475.625 810.625,476 C 809.75,476.375 805.5,476.125 804.5,476.625 C 803.5,477.125 802.625,477.75 802,478.125 C 801.375,478.5 800,479.125 800.25,480.625 C 800.5,482.125 800.5,483.375 800.5,484 C 800.5,484.625 799.25,486.375 799,487 C 798.75,487.625 799.125,489.5 798.75,490.375 C 798.375,491.25 798.125,490.75 798.125,492 C 798.125,493.25 797.875,493.5 798.25,494.375 C 798.625,495.25 799.25,495.25 798.875,496.5 C 798.5,497.75 797.875,497 798.375,498.375 C 798.875,499.75 799.5,499.25 799.625,500.5 C 799.75,501.75 799.375,502.25 799.625,503.25 C 799.875,504.25 801.625,503.375 801.5,503.25 z M 791,496.875 C 791,496.875 790.75,495.625 792.875,493.5 C 795,491.375 795.625,491.25 795.625,489.125 C 795.625,487 795.5,487.125 794.5,486.125 C 793.5,485.125 792.125,484.5 793.375,483 C 794.625,481.5 794.5,481.125 796.125,480.75 C 797.75,480.375 799.375,478 799.5,477.125 C 799.625,476.25 799.75,475.75 799.375,474.625 C 799,473.5 798,471.5 797.875,470.125 C 797.75,468.75 797.625,467.75 797.75,466.75 C 797.875,465.75 798.75,465.75 799.875,464.375 C 801,463 801.25,463.625 801.25,461.625 C 801.25,459.625 801.125,457.125 800.5,456.625 C 799.875,456.125 799.625,456.375 798.25,455.875 C 796.875,455.375 796.25,454.125 794.375,453 C 792.5,451.875 791.25,451.75 790.875,452.375 C 790.5,453 791.25,450.875 790.5,454 C 789.75,457.125 789.875,457.875 789,458.5 C 788.125,459.125 786.75,459.5 786.375,460.75 C 786,462 787.375,462.875 785.375,465 C 783.375,467.125 779.75,471.125 777.125,471.625 C 774.5,472.125 772.625,472.75 772.625,473.625 C 772.625,474.5 773.75,475.625 773.5,476.625 C 773.25,477.625 771.5,478.625 771.75,479.125 C 772,479.625 772.625,479.125 773.125,480.25 C 773.625,481.375 773.625,484.875 773.625,484.875 L 776,487.5 C 776,487.5 774.25,490.125 775.125,490.875 C 776,491.625 776.375,491.75 777.375,492.875 C 778.375,494 779.625,495.25 781.125,495.375 C 782.625,495.5 783.5,496.25 784.625,496.75 C 785.75,497.25 786.125,496.75 787.5,496.625 C 788.875,496.5 791.375,497 791,496.875 z M 767.38764,479.85399 L 768.09474,478.08622 C 768.09474,478.08622 768.27152,480.03076 768.4483,481.09142 C 768.62507,482.15208 768.09474,483.5663 768.62507,484.2734 C 769.1554,484.98051 768.80185,485.33406 768.62507,486.39472 C 768.4483,487.45538 769.33218,489.22315 769.33218,489.22315 L 770.625,490.75 L 772,491 C 772,491 772.625,491.875 772.875,492.5 C 773.125,493.125 774,493.5 774,493.5 C 774,493.5 774,494.875 774,495.75 C 774,496.625 773,497.125 774.125,497.375 C 775.25,497.625 776.625,497.625 777.375,497.625 C 778.125,497.625 777.875,498 778.375,499 C 778.875,500 779.375,500.125 779.5,501.5 C 779.625,502.875 779.625,503.875 779.125,504.5 C 778.625,505.125 779,505.625 778.375,506.375 C 777.75,507.125 776.75,507.25 776,507.375 C 775.25,507.5 775,507.5 774.75,508.375 C 774.5,509.25 776.375,510.125 774,510 C 771.625,509.875 771.75,510.5 771.25,509.25 C 770.75,508 772.125,507.5 770.375,506.875 C 768.625,506.25 770.125,508.75 767.5,505.25 C 764.875,501.75 764,504.125 763.625,501 C 763.25,497.875 762.125,497.125 760.625,494.75 C 759.125,492.375 758.5,490.75 757.25,490.375 C 756,490 755.5,491.5 754.875,489.875 C 754.25,488.25 754.25,489.125 754.25,487.25 C 754.25,485.375 754.125,485.5 753.25,483.75 C 752.375,482 752.25,482.125 751.75,480.25 C 751.25,478.375 751.5,479.25 749.25,476.375 C 747,473.5 746.75,473.25 744.75,471.75 C 742.75,470.25 742.25,470 742.375,468 C 742.5,466 741.125,464 742.375,463.625 C 743.625,463.25 743.875,462.875 745.125,463.625 C 746.375,464.375 746.5,465.25 747.5,465.5 C 748.5,465.75 749.125,465.625 749.875,465.625 C 750.625,465.625 750.375,464.625 751.625,466.125 C 752.875,467.625 753.125,467.625 753.75,469 C 754.375,470.375 754.375,470.875 755,471.625 C 755.625,472.375 756.125,472.375 756.75,472 C 757.375,471.625 758,470.5 758.375,471.25 C 758.75,472 758.75,472.375 759,472.875 C 759.25,473.375 760,471.75 760,473.875 C 760,476 759.25,477 760.375,476.25 C 761.5,475.5 762.625,474.75 762.625,474.75 C 762.625,474.75 762.5,474.375 763,475.625 C 763.5,476.875 763.625,478 764.75,478.5 C 765.875,479 766.25,479 766.25,479 L 767.38764,479.85399 z" />
<text class="unit" x="780" y="490"></text>
</g>
<g>
<path class="area oceania" id="new_guinea"
style="opacity:1;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1.20000005;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4.32165003;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.58527132;display:inline;"
d="M 832.75,455.5 C 832.75,455.5 833.25,452.75 834.25,452 C 835.25,451.25 834.5,451 834.5,449.75 C 834.5,448.5 833.5,447.25 834.75,447 C 836,446.75 836.25,447 838,446.75 C 839.75,446.5 841.5,445.5 841.5,445.5 L 843,447 C 843,447 843.75,447.75 846,447.75 C 848.25,447.75 849,448.75 850,450.5 C 851,452.25 850.5,453 853.25,454.75 C 856,456.5 858.75,457.25 860.25,457.75 C 861.75,458.25 863,459 862.75,460.5 C 862.5,462 864.25,462.75 862.25,463.25 C 862.25,463.25 867.97358,465.71185 868.68068,467.30284 C 869.38779,468.89383 870.62523,469.60094 869.21101,470.48482 C 867.7968,471.3687 866.20581,470.6616 866.38258,471.72226 C 866.55936,472.78292 867.62002,473.49003 867.97358,474.72746 C 868.32713,475.9649 869.56457,476.67201 869.56457,478.08622 C 869.56457,479.50043 869.21101,480.38432 870.62523,481.2682 C 872.03944,482.15208 872.21622,482.15208 872.21622,483.21274 C 872.21622,484.2734 872.21622,485.68762 872.21622,485.68762 C 872.21622,485.68762 871.15556,486.74828 869.38779,486.74828 C 867.62002,486.74828 866.73614,485.33406 866.02903,485.33406 C 865.32192,485.33406 863.55416,484.98051 863.55416,484.98051 C 863.55416,484.98051 862.31672,480.03076 858.78119,479.14688 C 855.24565,478.263 855.24565,477.73267 855.24565,478.43977 C 855.24565,479.14688 856.48309,480.73787 855.06888,481.2682 C 853.65466,481.79853 852.94756,481.79853 852.06367,481.79853 C 851.17979,481.79853 855.06888,483.38952 850.64946,483.21274 C 846.23004,483.03597 845.87649,481.44498 843.93194,482.68241 C 841.9874,483.91985 836.15377,478.9701 836.15377,478.9701 C 836.15377,478.9701 833.50212,479.14688 833.50212,477.73267 C 833.50212,476.31845 832.79501,476.14168 833.6789,474.90424 C 834.56278,473.6668 834.56278,473.49003 834.56278,472.07581 C 834.56278,470.6616 834.91633,470.30804 834.91633,468.89383 C 834.91633,467.47962 835.80022,466.94929 834.56278,466.41896 C 833.32534,465.88863 832.26468,465.53507 832.08791,464.29764 C 831.91113,463.0602 831.91113,462.88342 831.02725,462.88342 C 830.14336,462.88342 831.02725,463.0602 829.61303,463.0602 C 828.19882,463.0602 827.13816,464.12086 825.90072,462.52987 C 824.66328,460.93888 824.48651,460.93888 822.18841,460.93888 C 819.89031,460.93888 814.94057,464.29764 818.82965,460.93888 C 822.71874,457.58012 823.42585,457.40335 823.42585,457.40335 C 823.42585,457.40335 819.35998,457.40335 819.18321,455.98913 C 819.00643,454.57492 818.65288,452.27682 817.76899,451.92327 C 816.88511,451.56972 815.82445,451.03938 816.178,449.80195 C 816.53156,448.56451 817.23866,444.14509 820.7742,444.32187 C 824.30973,444.49865 825.01684,445.91286 826.0775,446.44319 C 827.13816,446.97352 829.0827,445.02898 829.43626,446.79674 C 829.78981,448.56451 829.43626,451.56972 829.43626,451.56972 C 829.43626,451.56972 830.67369,452.4536 831.02725,454.22137 L 832.75,455.5 z"
sodipodi:nodetypes="cssssccssssssssssssscsscsssssscssssssssssscssssssccc" />
<text class="unit" x="840" y="475"></text>
</g>
<g>
<path class="area north-america" id="alaska"
style="opacity:1;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1.20000005;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4.32165003;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.58527132;display:inline;"
d="M 254.5,242.25 C 253.875,241 254,242.375 253.625,240.25 C 253.25,238.125 252.5,238.375 251.875,237.75 C 251.25,237.125 250.375,237 250.75,235.875 C 251.125,234.75 251.375,234.75 251,233.625 C 250.625,232.5 249,231.875 248.5,230.75 C 248,229.625 248,230.5 248,228.75 C 248,227 248.5,226.75 247,226.25 C 245.5,225.75 244.5,227 243.75,225.375 C 243,223.75 243.125,224.625 241.625,224.375 C 240.125,224.125 239.5,224.25 239,223.25 C 238.5,222.25 238.25,221.375 237.25,221.375 C 236.25,221.375 235,221 234.75,220.375 C 234.5,219.75 233.125,218 232.25,218 C 231.375,218 231.625,218.625 230.25,219.25 C 228.875,219.875 232.75,220.5 229.75,221.25 C 226.75,222 225.375,222.25 224.75,221.75 C 224.125,221.25 221.875,222.875 222.25,221 C 222.625,219.125 222.75,219.375 223.375,218.875 C 224,218.375 225.75,218.25 225,217.75 C 224.25,217.25 224.625,216.375 222,217 C 219.375,217.625 218.625,217.875 217.75,218.5 C 216.875,219.125 216.875,220.375 216.5,221.125 C 216.125,221.875 217.625,221.625 214.75,222.875 C 211.875,224.125 213.375,222.25 210.375,224.875 C 207.375,227.5 208.375,227.75 206.125,228.125 C 203.875,228.5 205.25,228.125 203.5,230 C 201.75,231.875 202,232.75 200.25,232.75 C 198.5,232.75 199.125,235.875 197.5,233.75 C 195.875,231.625 194.75,232.5 196,231.5 C 197.25,230.5 197.5,230.75 198.5,230.5 C 199.5,230.25 199,230.875 200.125,229.25 C 201.25,227.625 201,227 202.75,226.875 C 204.5,226.75 204.25,228.375 205,226 C 205.75,223.625 205,223.75 206.375,222.5 C 207.75,221.25 209.25,220 207.5,219.875 C 205.75,219.75 205.625,219.375 204,220.125 C 202.375,220.875 202.25,221.25 200.75,221 C 199.25,220.75 198.875,220.625 198.875,220 C 198.875,219.375 198.25,217.375 198.25,217.375 C 198.25,217.375 199.5,216.75 197.375,216.25 C 195.25,215.75 195.125,217.375 195.25,215.75 C 195.375,214.125 196.375,214.375 195.5,213.625 C 194.625,212.875 194.375,212.375 193.25,212.875 C 192.125,213.375 190.875,214.625 191.625,212.75 C 192.375,210.875 193.875,210.125 194.375,209.375 C 194.875,208.625 195.625,206.5 195.875,205.375 C 196.125,204.25 194.875,204.875 196.375,203.75 C 197.875,202.625 197.25,202.375 199.125,202.5 C 201,202.625 200.5,202.5 201.75,203.125 C 203,203.75 203.375,204.125 204.125,203.75 C 204.875,203.375 205.625,202.5 206.125,201.875 C 206.625,201.25 207.25,200.875 207.375,200.125 C 207.5,199.375 208.125,198.625 206.75,199.125 C 205.375,199.625 205.875,199.625 204,200 C 202.125,200.375 202.375,201.75 201.625,200.125 C 200.875,198.5 200.75,197.75 200.75,197.75 C 200.75,197.75 200,197.75 200.125,196 C 200.25,194.25 199,191.375 202.375,190.5 C 205.75,189.625 207.875,190.375 208,190.875 C 208.125,191.375 207,191.875 208.5,192 C 210,192.125 210.125,192.5 211,191.25 C 211.875,190 212.875,190.125 211.875,189.625 C 210.875,189.125 210,189.25 209.5,188.25 C 209,187.25 209.5,187 209,185.625 C 208.5,184.25 208.5,184 207.75,183 C 207,182 205,180.5 207.5,179.875 C 210,179.25 212.625,178.625 212.13203,178.98005 C 212.13203,178.98005 214.96046,175.79807 216.72823,176.15162 C 218.496,176.50518 220.61732,176.15162 222.38508,174.73741 C 224.15285,173.3232 226.98128,174.0303 226.98128,174.0303 L 229.1026,175.79807 C 229.1026,175.79807 231.93102,178.6265 233.69879,177.56584 C 235.46656,176.50518 235.46656,179.3336 238.64854,179.68716 C 241.83052,180.04071 243.24473,180.74782 246.42671,181.80848 C 246.42671,181.80848 247.3106,181.45492 247.13382,182.69236 C 246.95704,183.9298 245.18928,213.27473 245.71961,213.62828 L 245.87151,213.87288 L 253.37151,214.74788 C 253.37151,214.74788 253.49651,214.87288 253.99651,216.37288 C 254.49651,217.87288 254.87151,218.87288 255.99651,220.87288 C 257.12151,222.87288 256.12151,228.87288 256.12151,228.87288 L 258.12151,231.62288 C 258.12151,231.62288 259.74651,232.37288 260.37151,232.49788 C 260.99651,232.62288 260.74651,235.74788 260.62151,236.99788 C 260.49651,238.24788 258.99651,237.62288 258.12151,237.87288 C 257.24651,238.12288 256.99651,240.24788 256.87151,241.49788 C 256.74651,242.74788 254.5,242.25 254.5,242.25 z"
sodipodi:nodetypes="csssssssssssssssssssssssssssssssssssssscsssssssssssssssscsssssssssscssccsscssccssccssssc" />
<text class="unit" x="217" y="205"></text>
</g>
<g>
<path class="area north-america" id="ontario"
style="opacity:1;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1.20000005;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4.32165003;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.58527132;display:inline;"
d="M 333.04729,219.63869 C 332.34019,222.11356 331.98663,228.83108 331.98663,228.83108 L 333.7544,230.24529 C 333.7544,230.24529 335.16861,232.72017 336.93638,234.48793 C 338.70415,236.2557 339.76481,239.79123 342.59324,239.08413 C 345.42166,238.37702 346.48232,241.559 346.48232,241.559 L 348.60364,240.14479 C 348.60364,240.14479 350.72496,238.90735 351.07852,239.61446 C 351.43207,240.32156 353.55339,241.02867 353.55339,241.02867 C 353.55339,241.02867 355.67471,239.79123 357.61926,239.61446 C 359.5638,239.43768 357.97281,241.20545 357.97281,241.20545 L 353.90694,243.14999 C 353.90694,243.14999 354.79083,245.80164 355.85149,245.44809 C 356.91215,245.09453 357.44248,249.51395 356.20504,250.39784 C 354.9676,251.28172 356.55859,253.04949 356.55859,253.04949 L 357.2657,255.52436 L 359.21025,256.93857 L 359.74058,259.23667 L 359.5638,259.23667 C 358.85669,261.18121 358.50314,278.15178 358.50314,278.15178 C 358.50314,278.15178 359.5638,276.73756 360.27091,276.56079 C 360.97801,276.38401 362.03867,277.975 362.74578,278.15178 C 363.45289,278.32855 363.09933,276.73756 363.80644,276.03046 C 364.51355,275.32335 364.69032,276.03046 365.39743,276.56079 C 366.10454,277.09112 365.92776,276.56079 366.98842,276.38401 C 368.04908,276.20723 368.04908,279.21244 368.04908,280.09632 C 368.04908,280.9802 366.28131,281.51053 366.28131,281.51053 C 366.28131,281.51053 363.80644,282.39442 362.74578,282.21764 C 361.68512,282.04086 360.44768,283.63185 359.74058,284.51574 C 359.03347,285.39962 357.61926,284.86929 356.73537,285.22284 C 355.85149,285.5764 356.38182,286.46028 356.55859,287.69772 C 356.73537,288.93516 352.66951,292.11714 351.78562,291.23325 C 350.90174,290.34937 349.48753,288.93516 347.89654,288.05127 C 346.30555,287.16739 348.25009,285.39962 348.9572,284.16218 C 349.6643,282.92475 349.13397,280.09632 348.07331,277.26789 C 347.01265,274.43947 346.83588,273.37881 346.30555,272.6717 C 345.77522,271.96459 344.53778,270.02005 344.00745,267.72195 C 343.47712,265.42385 341.17902,269.31294 338.70415,268.60584 C 336.22927,267.89873 332.87052,269.6665 332.87052,269.6665 C 332.87052,269.6665 333.22407,264.71675 332.51696,264.36319 C 331.80986,264.00964 312.71797,264.71675 312.71797,264.71675 C 312.71797,264.71675 312.71797,264.18642 312.71797,261.88832 C 312.71797,259.59022 316.60706,216.45671 316.60706,216.45671 L 334.99184,216.98704 L 333.04729,219.63869 z"
sodipodi:nodetypes="cccssccscsccsscccc" />
<text class="unit" x="325" y="255"></text>
</g>
<g>
<path class="area north-america" id="northwest_territory"
style="opacity:1;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1.20000005;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4.32165003;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.58527132;display:inline;"
d="M 334.83614,217.06934 C 335.54326,214.59447 343.6539,206.91077 343.6539,206.91077 C 343.6539,206.91077 346.83588,206.55722 348.25009,205.49656 C 349.6643,204.43589 346.48232,201.25391 346.48232,201.25391 L 347.18943,199.13259 L 349.31075,200.90036 C 349.31075,200.90036 350.01786,202.31457 352.13918,202.31457 C 354.2605,202.31457 353.55339,200.19325 354.9676,199.8397 C 356.38182,199.48615 357.79603,195.95061 357.79603,195.95061 C 357.79603,195.95061 360.62446,197.01127 363.45289,194.18285 C 366.28131,191.35442 364.15999,192.76863 363.45289,191.35442 C 362.74578,189.94021 364.15999,188.87955 364.15999,188.87955 L 362.03867,188.17244 C 362.03867,188.17244 363.45289,187.11178 362.03867,184.99046 C 360.62446,182.86914 360.27091,186.05112 358.85669,187.11178 C 357.44248,188.17244 357.79603,189.2331 353.90694,188.52599 C 350.01786,187.81889 353.90694,186.40467 353.55339,184.99046 C 353.19984,183.57624 349.31075,185.69757 348.60364,183.57624 C 347.89654,181.45492 346.83588,184.63691 347.18943,182.51558 C 347.54298,180.39426 346.83588,177.21228 345.42166,176.50518 C 344.00745,175.79807 348.25009,169.08056 348.25009,169.08056 C 348.25009,169.08056 351.07852,170.49477 351.43207,168.0199 C 351.78562,165.54502 353.19984,165.89858 353.19984,164.48436 C 353.19984,163.07015 349.6643,164.13081 349.6643,164.13081 L 348.9572,166.95924 C 348.9572,166.95924 344.71456,163.77725 344.71456,166.95924 C 344.71456,170.14122 343.30034,170.14122 341.17902,174.38386 C 339.0577,178.6265 340.82547,181.10137 340.82547,181.10137 C 340.82547,181.10137 342.94679,181.80848 342.23968,183.9298 C 341.53258,186.05112 337.28993,185.69757 337.28993,185.69757 L 336.93638,181.80848 L 334.10795,181.80848 C 334.10795,181.80848 333.7544,185.69757 334.10795,187.11178 C 334.46151,188.52599 326.32978,187.46533 324.20846,185.69757 C 322.08714,183.9298 319.61227,187.11178 317.49095,188.17244 C 315.36962,189.2331 313.60186,188.52599 311.48054,187.81889 C 309.35922,187.11178 310.41988,190.64731 305.82368,190.29376 C 301.22749,189.94021 303.70236,183.9298 302.6417,186.05112 C 301.58104,188.17244 296.98485,184.28335 294.50997,182.16203 C 292.0351,180.04071 287.43891,180.74782 287.43891,180.74782 L 287.08535,178.27294 L 284.61048,178.27294 L 281.4285,178.98005 C 281.4285,178.98005 278.95363,180.04071 276.83231,179.68716 C 274.71098,179.3336 275.06454,181.45492 275.06454,181.45492 C 275.06454,181.45492 272.58966,182.51558 269.40768,182.16203 C 266.2257,181.80848 266.57926,183.22269 265.16504,184.28335 C 263.75083,185.34401 258.80108,182.86914 255.6191,181.45492 C 252.43712,180.04071 250.35869,182.99414 247.17671,181.93348 C 247.17671,181.93348 245.5,213.25 245.75,214 C 246,214.75 328.375,217 332.5,216.875 C 336.625,216.75 334.83614,217.06934 334.83614,217.06934 z"
sodipodi:nodetypes="cssscsccccssssssscccscssccsscsssssssccsscsscccsccssc" />
<text class="unit" x="285" y="205"></text>
</g>
<g>
<path class="area south-america" id="venezuela"
style="opacity:1;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1.20000005;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4.32165003;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.58527132;display:inline;"
d="M 317.375,414.875 C 319.25,413.625 318.875,411.125 318.875,410.375 C 318.875,409.625 318.875,408.25 318.875,407.25 C 318.875,406.25 318.75,405.5 319.875,404.25 C 321,403 321.625,401.875 321.625,401.875 L 322.875,400.75 L 322.875,398.75 L 323.625,396.5 C 323.625,396.5 324.125,395.375 324.25,394.875 C 324.375,394.375 324,392.375 324,392.375 L 324.25,390.75 L 327.375,389.875 C 327.375,389.875 327.75,390.25 328.75,389.875 C 329.75,389.5 330.75,388.625 330.75,388.625 L 333,387.375 C 333,387.375 334.5,386.375 335,385.875 C 335.5,385.375 337.25,384.75 337.25,384.75 C 337.25,384.75 338.125,384.5 338.75,384.5 C 339.375,384.5 341.5,383.875 341.5,383.875 C 341.5,383.875 341.625,383.25 342.375,382.75 C 343.125,382.25 343.625,381.625 344.25,381.5 C 344.875,381.375 348.25,380.875 348.25,380.875 C 348.25,380.875 349.5,381.75 349.625,383 C 349.75,384.25 349.25,385 350.25,384.875 C 351.25,384.75 352.25,384.5 352.75,384.25 C 353.25,384 353,382.875 354.25,383.75 C 355.5,384.625 355.625,384.875 356.125,384.875 C 356.625,384.875 358,384.5 358,384.5 L 363.5,386.375 C 363.5,386.375 364.75,386.125 365.375,386 C 366,385.875 369.125,385.625 369.125,385.625 C 369.125,385.625 370.5,386 371,386.5 C 371.5,387 374.625,388.875 375.625,390.375 C 376.625,391.875 378.125,392.375 378.375,393 C 378.625,393.625 379.625,394.25 380.125,394.25 C 380.625,394.25 380.625,395.25 381.25,395.375 C 381.875,395.5 383.25,395.5 383.25,395.5 C 383.25,395.5 383.375,396 383.875,396.625 C 384.375,397.25 385.5,396 385.75,397.375 C 386,398.75 385.625,399.5 386.375,399.5 C 387.125,399.5 387.875,399 387.875,399 L 389.125,398.5 C 389.125,398.5 389.125,397.5 390.125,398.5 C 391.125,399.5 391.875,399.25 392.75,399.5 C 393.625,399.75 392.375,400.375 394.5,400.875 C 396.625,401.375 398.625,401.625 399.125,401.625 C 399.625,401.625 399.625,399.625 401.375,401.25 C 403.125,402.875 404.375,403.625 404.375,403.625 C 404.375,403.625 400.04566,407.19876 399.51533,408.25942 C 398.985,409.32008 398.63145,411.61818 397.39401,411.79496 C 396.15657,411.97174 388.73195,412.32529 388.73195,412.32529 C 388.73195,412.32529 389.08551,414.44661 388.02485,414.44661 C 386.96419,414.44661 376.53436,414.09306 376.53436,414.09306 L 375.12015,409.85041 C 375.12015,409.85041 373.88271,410.7343 373.70593,408.96653 C 373.52916,407.19876 373.52916,404.37034 373.52916,404.37034 C 373.52916,404.37034 370.87751,405.78455 369.28652,406.31488 C 367.69553,406.84521 366.28131,409.49686 364.8671,408.96653 C 363.45289,408.4362 362.74578,406.66843 362.39223,408.08265 C 362.03867,409.49686 362.569,413.7395 361.50834,414.09306 C 360.44768,414.44661 360.09413,413.82789 359.21025,414.88855 C 358.32636,415.94921 355.93988,416.21438 355.23277,415.59566 C 354.52566,414.97694 353.99533,414.26983 353.19984,414.00467 C 352.40434,413.7395 351.9624,413.29756 351.07852,413.20917 C 350.19463,413.12078 350.01786,412.67884 349.31075,413.47434 C 348.60364,414.26983 347.10104,415.59566 346.83588,416.30276 C 346.57071,417.00987 345.1565,419.57313 345.51005,420.5454 C 345.8636,421.51768 347.27782,421.25251 347.27782,423.02028 C 347.27782,424.78805 346.74749,425.67193 345.77522,425.93709 C 344.80294,426.20226 339.94159,427.79325 339.94159,427.79325 C 339.94159,427.79325 339.14609,425.67193 338.61576,425.1416 C 338.08543,424.61127 337.11316,424.3461 336.40605,424.16933 C 335.69894,423.99255 334.5499,422.75511 333.66601,422.8435 C 332.78213,422.93189 330.48403,422.93189 329.86531,422.22478 C 329.2466,421.51768 328.18594,420.72218 326.59495,420.63379 C 325.00395,420.5454 324.29685,421.69445 323.23619,420.01507 C 322.17553,418.3357 320.23098,416.0376 319.70065,415.94921 C 319.17032,415.86082 316.69545,415.59566 317.375,414.875 z"
sodipodi:nodetypes="csssccccscccsccscscsscsssssccscssssscsssccsssssc" />
<text class="unit" x="335" y="405"></text>
</g>
<g>
<path class="area africa" id="madagascar"
style="opacity:1;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1.20000005;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4.32165003;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.58527132;display:inline;"
d="M 659.75,534 C 660,535 660.75,534.75 660.75,537 C 660.75,539.25 661.25,542.5 659.75,540.5 C 658.25,538.5 658.25,537.75 658.25,539 C 658.25,540.25 658.5,542.5 658.5,542.5 C 658.5,542.5 659.73063,544.2007 658.13964,544.2007 C 656.54865,544.2007 656.37187,544.02393 656.37187,544.73103 C 656.37187,545.43814 656.54865,546.85235 656.54865,546.85235 L 655.48799,547.91301 L 654.95766,550.21111 C 654.95766,550.21111 656.72542,550.38789 655.66476,552.15565 C 654.6041,553.92342 654.25055,554.45375 654.25055,554.45375 C 654.25055,554.45375 654.42733,552.86276 654.07377,556.3983 C 653.72022,559.93383 653.72022,560.46416 653.72022,560.46416 C 653.72022,560.46416 654.78088,560.11061 653.36667,561.87837 C 651.95245,563.64614 651.42212,564.17647 651.06857,565.06035 C 650.71502,565.94424 651.42212,566.82812 650.36146,567.712 C 649.3008,568.59589 648.77047,569.30299 648.77047,569.30299 L 647.70981,570.36365 C 647.70981,570.36365 647.35626,571.77787 647.35626,572.48497 C 647.35626,573.19208 646.82593,573.72241 646.82593,573.72241 C 646.82593,573.72241 646.2956,574.25274 646.2956,574.95985 C 646.2956,575.66696 646.47238,576.02051 645.58849,576.72762 C 644.70461,577.43472 645.05816,577.6115 643.9975,578.49538 C 642.93684,579.37927 642.58329,578.14183 642.58329,580.08637 C 642.58329,582.03092 642.05296,582.9148 641.16907,582.9148 C 640.28519,582.9148 631.79991,583.09158 630.3857,582.9148 C 628.97148,582.73802 631.26958,575.66696 629.32504,574.42952 C 627.38049,573.19208 626.14306,568.94944 627.38049,568.06556 C 628.61793,567.18167 627.91082,568.06556 628.79471,567.18167 C 629.67859,566.29779 629.67859,566.29779 630.20892,565.23713 C 630.73925,564.17647 631.62313,564.17647 631.62313,564.17647 C 631.62313,564.17647 630.56247,561.87837 631.26958,561.87837 C 631.97669,561.87837 631.62313,559.22672 631.62313,559.22672 C 631.62313,559.22672 631.97669,557.98929 632.50702,557.1054 C 633.03735,556.22152 631.97669,555.33764 633.3909,555.16086 C 634.80511,554.98408 635.51222,555.33764 635.51222,554.45375 C 635.51222,553.56987 634.62834,553.39309 633.92123,553.21631 C 633.21412,553.03954 632.86057,553.21631 632.86057,551.97888 C 632.86057,550.74144 632.33024,551.27177 631.97669,550.03433 C 631.62313,548.7969 630.56247,549.504 631.79991,547.91301 C 633.03735,546.32202 633.03735,547.38268 633.3909,545.79169 C 633.74445,544.2007 632.33024,543.14004 634.09801,543.14004 C 635.86577,543.14004 636.3961,543.67037 638.16387,542.96327 C 639.93164,542.25616 637.98709,542.07938 640.81552,542.25616 C 643.64395,542.43294 643.82073,543.31682 644.88139,542.25616 C 645.94205,541.1955 646.47238,541.54905 646.64915,540.31162 C 646.82593,539.07418 646.64915,538.72063 647.88659,538.1903 C 649.12403,537.65997 649.12403,538.1903 650.00791,537.48319 C 650.89179,536.77608 651.5989,535.8922 651.42212,534.83154 C 651.24535,533.77088 650.36146,533.24055 651.95245,533.24055 C 653.54344,533.24055 653.36667,533.77088 654.07377,532.88699 C 654.78088,532.00311 654.6041,532.00311 654.95766,530.41212 C 655.31121,528.82113 654.95766,528.46758 655.84154,527.93725 C 656.72542,527.40692 658.31641,525.63915 658.31641,525.63915 C 658.31641,525.63915 658.84674,524.04816 659.55385,526.52303 C 660.26096,528.99791 659.55385,528.64435 660.43773,529.35146 C 661.32162,530.05857 661.49839,529.52824 661.49839,530.41212 C 661.49839,531.296 661.14484,533.06377 661.14484,533.06377 L 659.75,534 z" />
<text class="unit" x="639" y="565"></text>
</g>
<g>
<path class="area africa" id="north_africa"
style="opacity:1;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1.20000005;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4.32165003;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.58527132;display:inline;"
d="M 544.625,385.375 C 543.75,384.375 543.625,384 543.25,383.25 C 542.875,382.5 542.625,381.125 541.375,381 C 540.125,380.875 540.25,382.125 539.875,380.25 C 539.5,378.375 539.125,376.875 538.625,376.5 C 538.125,376.125 537.25,375.75 536.125,374.625 C 535,373.5 534.875,372.375 534.875,372.375 L 532.75,371 C 532.75,371 527.25,371.25 526.625,371.25 C 526,371.25 524.875,371.375 524.125,371.875 C 523.375,372.375 523.75,372.625 522.375,373.25 C 521,373.875 518.75,375 518.125,375.25 C 517.5,375.5 514.625,375.625 514.625,375.625 C 514.625,375.625 514.625,376.625 513.5,377.375 C 512.375,378.125 510.875,379 509.625,378.875 C 508.375,378.75 508.23106,378.30628 507.25,378.5 C 505.40217,378.86488 504.19141,380.08233 503.5,380 C 502.86709,379.92463 501.75,380.375 500.625,380.75 C 499.5,381.125 500.75,381.25 498.375,381.25 C 496,381.25 494.75,381.25 494,381.125 C 493.25,381 492.625,381.375 492,381.5 C 491.375,381.625 490.5,381.75 490.73211,381.9197 C 489.31789,381.9197 488.61079,382.98036 488.61079,382.98036 L 488.96434,387.57655 L 485.78236,391.11209 C 485.78236,391.11209 485.07525,393.94051 484.36814,396.06183 C 483.66104,398.18315 482.60038,400.30447 482.60038,400.30447 L 481.18616,404.19356 C 481.18616,404.19356 479.625,405 479.75,405.625 C 479.875,406.25 480.125,407.5 479.625,407.875 C 479.125,408.25 478.5,407.875 477.875,409.125 C 477.25,410.375 476.75,411.5 476.75,412 C 476.75,412.5 477.375,413 476.5,414 C 475.625,415 474.75,415.125 474.5,417.25 C 474.25,419.375 473.25,421.25 474.25,422.5 C 475.25,423.75 475.875,424.75 475.875,426.125 C 475.875,427.5 475.5,427.375 475.625,429.375 C 475.75,431.375 476,431.25 476,432.625 C 476,434 475.875,435.875 475.625,437.5 C 475.375,439.125 474.875,439.625 474.5,441.5 C 474.125,443.375 471.875,444.125 473.625,445.75 C 475.375,447.375 475.125,448.875 475.625,450.25 C 476.125,451.625 480.625,451.25 480.625,454.125 C 480.625,457 484,457.375 484.25,458.875 C 484.5,460.375 483.625,462.5 486.625,463.75 C 489.625,465 489.375,466.875 490,467.375 C 490.625,467.875 493.375,468.25 494,469 C 494.625,469.75 495.5,471 496.125,471.625 C 496.75,472.25 497.375,473.25 499.5,473.125 C 501.625,473 501.875,473.125 505.25,472.75 C 508.625,472.375 511,472.25 511.875,472.125 C 512.75,472 514.625,472.625 516,472 C 517.375,471.375 517.125,470.25 518.875,469.875 C 520.625,469.5 521.25,469.875 522.375,469.625 C 523.5,469.375 527.875,469.375 528.5,469.875 C 529.125,470.375 529.875,469.875 530.625,471.5 C 531.375,473.125 529.125,475.625 533.875,475.375 C 538.625,475.125 541.375,474.375 542,475.5 C 542.625,476.625 540.5,478.25 540.875,479.75 C 541.25,481.25 541.75,481.625 541.25,482.375 L 541.82057,482.68241 C 542.3509,483.74307 542.3509,484.2734 543.05801,484.62696 C 543.76512,484.98051 545.70966,483.38952 545.70966,483.38952 C 545.70966,483.38952 547.30065,483.38952 548.89164,483.74307 C 550.48263,484.09663 550.65941,483.38952 552.2504,483.03597 C 553.84139,482.68241 554.19494,484.2734 554.19494,484.2734 C 554.19494,484.2734 555.43238,485.15729 556.84659,484.2734 C 558.2608,483.38952 557.90725,483.03597 557.37692,481.62175 C 556.84659,480.20754 557.73047,479.85399 558.08403,475.9649 C 558.43758,472.07581 556.84659,474.02036 556.84659,474.02036 C 556.84659,474.02036 556.31626,472.78292 556.49304,470.30804 C 556.66981,467.83317 557.37692,469.60094 557.90725,468.54028 C 558.43758,467.47962 559.14469,467.47962 560.02857,466.77251 C 560.91245,466.0654 562.14989,466.0654 563.03378,465.53507 C 563.91766,465.00474 564.44799,463.94408 565.8622,463.41375 C 567.27642,462.88342 568.69063,462.17632 570.98873,461.11566 C 573.28682,460.055 572.75649,458.99434 572.75649,458.11045 C 572.75649,457.22657 575.05459,454.7517 575.05459,454.7517 C 575.05459,454.7517 574.52426,452.63038 573.64038,451.39294 C 572.75649,450.1555 573.28682,448.74129 573.28682,447.8574 C 573.28682,446.97352 573.64038,446.44319 574.17071,445.73608 C 574.70104,445.02898 574.34748,444.67542 574.34748,444.67542 L 575.23137,442.90766 C 575.23137,442.90766 575.7617,441.49344 575.7617,440.25601 C 575.7617,439.01857 575.05459,439.5489 574.34748,439.37212 C 573.64038,439.19535 574.17071,439.01857 575.23137,438.48824 C 576.29203,437.95791 575.93847,436.72047 576.11525,435.65981 C 576.29203,434.59915 575.7617,430.17973 575.58492,429.29585 C 575.40814,428.41197 571.69583,429.47263 570.81195,429.11907 C 569.92807,428.76552 569.39774,428.05841 569.39774,428.05841 C 569.39774,428.05841 568.69063,425.93709 568.51385,424.87643 C 568.33708,423.81577 565.8622,425.05321 564.97832,424.87643 C 564.09444,424.69966 564.80154,423.46222 564.44799,422.22478 C 564.09444,420.98735 562.68022,421.51768 561.79634,421.51768 C 560.91245,421.51768 559.49824,420.81057 558.2608,419.92669 C 557.02337,419.0428 556.66981,420.28024 555.2556,420.45702 C 553.84139,420.63379 553.84139,420.28024 553.31106,419.39636 C 552.78073,418.51247 551.01296,419.92669 549.42197,419.74991 C 547.83098,419.57313 548.18453,418.86603 547.30065,417.45181 C 546.41677,416.0376 545.53288,417.09826 543.58834,416.56793 C 541.6438,416.0376 542.3509,415.86082 542.17413,414.44661 C 541.99735,413.0324 540.75991,413.20917 540.75991,413.20917 C 540.75991,413.20917 540.58313,411.61818 540.40636,410.38074 C 540.22958,409.14331 540.58313,407.19876 540.58313,406.49166 C 540.58313,405.78455 540.22958,403.1329 538.99214,402.60257 C 537.75471,402.07224 538.63859,400.8348 538.63859,400.8348 C 538.63859,400.8348 538.10826,399.06704 538.28504,398.18315 C 538.46181,397.29927 539.69925,396.23861 540.58313,396.23861 C 541.46702,396.23861 541.99735,395.17795 541.99735,395.17795 C 541.99735,395.17795 540.58313,393.05663 539.87603,391.81919 C 539.16892,390.58176 541.11347,390.75853 541.11347,390.75853 L 541.99735,389.69787 C 541.99735,389.69787 542.3509,389.16754 543.94189,388.28366 C 545.53288,387.39977 544.625,385.375 544.625,385.375 z"
sodipodi:nodetypes="csssssccsssscssssssssccccsccsssssssssssssssssssssssssssssssc" />
<text class="unit" x="500" y="430"></text>
</g>
<g>
<path class="area north-america" id="greenland"
style="opacity:1;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1.20000005;stroke-linecap:butt;stroke-linejoin:miter;marker-start:none;marker-mid:none;stroke-miterlimit:4.32165003;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.58527132;display:inline;"
d="M 429.125,209.875 C 429.125,209.875 429.75,213.75 428.875,215.375 C 428,217 427.875,216.125 427.375,218.5 C 426.875,220.875 427.25,221.75 426.375,223.125 C 425.5,224.5 425.75,222.25 425.375,225.875 C 425,229.5 425.25,230.375 424.375,230.75 C 423.5,231.125 424.625,232.5 423.125,232.5 C 421.625,232.5 421.125,233.5 420.75,232.125 C 420.375,230.75 421,230.125 419.5,230 C 418,229.875 417.125,231.625 416.875,229.875 C 416.625,228.125 417.25,227.5 416,227 C 414.75,226.5 417.25,230.625 413.125,225.75 C 409,220.875 409.75,217.5 409.75,217.5 C 409.75,217.5 408.5,216.125 408.5,215.25 C 408.5,214.375 409.375,211.625 408.25,210.125 C 407.125,208.625 406,205.625 407.375,204.75 C 408.75,203.875 410.125,204.125 410.5,202.125 C 410.875,200.125 410.75,200.375 411,199.375 C 411.25,198.375 411.75,198 410.75,197.875 C 409.75,197.75 410.75,198.25 408.875,197.75 C 407,197.25 407.25,196.5 406.75,196.375 C 406.25,196.25 407.125,197.125 405.5,196.5 C 403.875,195.875 402.625,195.375 404.375,194.75 C 406.125,194.125 407.25,193.875 408,194.125 C 408.75,194.375 409.125,195.75 408.875,193.875 C 408.625,192 404.5,191 404.5,189.75 C 404.5,188.5 404.5,188.75 404.5,187.5 C 404.5,186.25 404.25,185.625 403.25,184.625 C 402.25,183.625 402.5,183.625 402.25,182 C 402,180.375 402,180.5 401.125,179.5 C 400.25,178.5 400.125,179.875 399.5,178.125 C 398.875,176.375 398.875,176 397.625,176 C 396.375,176 396.5,176.75 395.5,175.375 C 394.5,174 394.75,173.75 393.125,173.875 C 391.5,174 390.25,174.75 390,175.25 C 389.75,175.75 390.375,176.25 388.75,176.375 C 387.125,176.5 386.75,176.5 385.875,176.5 C 385,176.5 384.125,176.875 384.125,176.375 C 384.125,176.375 383.125,174.875 381.5,175.25 C 379.875,175.625 379.5,176.75 379,175.5 C 378.5,174.25 377.5,174.375 377.375,173.75 C 377.25,173.125 375.75,173.875 377.25,172.25 C 378.75,170.625 377.75,170.25 379.625,170.375 C 381.5,170.5 381.125,170.625 382.125,170.125 C 383.125,169.625 384.5,169.5 383.125,169.375 C 383.125,169.375 383.625,168.625 382.25,168.375 C 380.875,168.125 379.375,168.875 379.375,167.875 C 379.375,166.875 378.125,165.75 379.875,165.75 C 381.625,165.75 382.625,166.25 383.5,165.375 C 384.375,164.5 384.375,164.75 385.625,164.875 C 386.875,165 388.125,165.625 388.5,164.625 C 388.875,163.625 390.875,163.5 389.25,163 C 387.625,162.5 386.75,162.625 387.125,161.875 C 387.5,161.125 388.5,161 388.125,160.125 C 387.75,159.25 386,158.5 388.5,158.375 C 391,158.25 392.25,159.375 392.625,158 C 393,156.625 391.625,155.5 393.875,155.5 C 396.125,155.5 398.5,154.375 398.625,153.625 C 398.75,152.875 398.125,152 400.25,152.5 C 402.375,153 402,154.125 403.125,152.75 C 404.25,151.375 403,151 405.25,151.5 C 407.5,152 407.75,152.25 408.625,151.625 C 409.5,151 407.875,150.75 410,151 C 412.125,151.25 411.75,152 412.125,150.125 C 412.5,148.25 410.75,148.5 412.875,148 C 415,147.5 415.125,148 416.125,146.625 C 417.125,145.25 416.25,145.625 418.125,145.25 C 420,144.875 420.25,145.25 419.375,143.875 C 418.5,142.5 416.875,141.75 419.375,141.5 C 421.875,141.25 423.25,141 423.5,140.25 C 423.5,140.25 423.375,141.25 424.875,140.875 C 426.375,140.5 426.125,140 427,138.875 C 427.875,137.75 427.625,137.5 428.5,138.125 C 429.375,138.75 428.375,139.25 430.625,138.125 C 432.875,137 431.125,137 433.375,137.375 C 435.625,137.75 435.5,137.5 438.125,137.625 C 440.75,137.75 439.375,138.125 440.875,138.5 C 442.375,138.875 442,138.75 443.875,138.75 C 445.75,138.75 445.375,138.375 446.5,139.125 C 447.625,139.875 447.125,140 449.375,140 C 451.625,140 452.25,139.375 452.625,140.75 C 453,142.125 452,142.25 454.75,142.625 C 457.5,143 458.375,142.5 456.875,143.625 C 455.375,144.75 452.25,144.875 453.125,145.625 C 454,146.375 453.875,146.125 451.5,146.625 C 449.125,147.125 445.625,147.625 448.5,148 C 451.375,148.375 453.375,147.125 454.125,148.375 C 454.875,149.625 453.125,149.75 456.375,149.375 C 459.625,149 458.25,148.25 460.875,148.75 C 463.5,149.25 463,150 463.875,148.375 C 464.75,146.75 462.375,145.875 465.25,146.5 C 468.125,147.125 467.5,147.125 469.25,146.125 C 471,145.125 471.25,143.125 472,145.5 C 472.75,147.875 472.625,148.375 471,149.125 C 469.375,149.875 469.5,148.75 469,150.5 C 468.5,152.25 468.625,152.75 467.375,153.75 C 466.125,154.75 465.5,153.875 465.75,155.625 C 466,157.375 466,157.125 465.625,158.875 C 465.25,160.625 464.375,161.125 465.5,162.125 C 466.625,163.125 466.625,162.125 467.375,163.625 C 468.125,165.125 468.5,165.125 467.75,166.875 C 467,168.625 466.875,167.75 466.625,169.875 C 466.375,172 466.125,173.25 467,172.625 C 467.875,172 468,170.25 468.125,172 C 468.25,173.75 468.75,174.875 467.25,175.5 C 465.75,176.125 465.875,175.25 465.625,176.5 C 465.375,177.75 466.25,178.125 465.125,179.125 C 464,180.125 465,181.125 463.75,180 C 462.5,178.875 461.75,177.125 460.75,178.25 C 459.75,179.375 458.375,178.375 459.5,179.75 C 460.625,181.125 461.375,180.75 461.625,181.25 C 461.875,181.75 461.75,182.25 462.125,183 C 462.5,183.75 462.25,184.125 463.25,184 C 464.25,183.875 464.625,184.375 464.375,185.25 C 464.125,186.125 464,186.625 464.75,187.5 C 465.5,188.375 465.75,188.375 465.125,188.75 C 464.5,189.125 464.375,189.25 463.5,189.75 C 462.625,190.25 462.75,191 462.25,191.125 C 461.75,191.25 460.75,191.875 460.625,190.625 C 460.5,189.375 460.375,187.75 459.625,187.125 C 458.875,186.5 457.75,184.875 457.5,186.375 C 457.25,187.875 457.5,188.375 457.125,189.125 C 456.75,189.875 455.25,188.875 456.75,190.125 C 458.25,191.375 458.875,191.75 458.875,191.75 C 458.875,191.75 460.25,192.5 459.625,193.125 C 459,193.75 459.75,194 457.875,194.25 C 456,194.5 456.875,192.625 455.125,194.625 C 453.375,196.625 452.125,197.125 452.125,197.125 L 451.25,196.125 C 451.25,196.125 450.5,194 450.25,195.375 C 450,196.75 450.25,196.625 449.25,198.75 C 448.25,200.875 448.75,201.375 447.625,201.5 C 446.5,201.625 445.625,200.75 445,201.625 C 444.375,202.5 445.25,202.25 444.125,203.125 C 443,204 442.625,204.125 441.875,204.125 C 441.125,204.125 442.25,202 440.75,204.25 C 439.25,206.5 440.125,206.75 438.875,207 C 437.625,207.25 437.375,207.25 436.25,207.25 C 435.125,207.25 434.5,207.375 433.375,207.375 C 432.25,207.375 431.375,207.5 430.625,207.875 C 429.875,208.25 429.125,209.125 429.125,209.125 L 429.125,209.875 z"
sodipodi:nodetypes="cssssssssssscsssssssssssssssssssssssscsssssss" />
<text class="unit" x="420" y="185"></text>
</g>
<g>
<path class="area europe" id="iceland"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;letter-spacing:normal;word-spacing:normal;text-anchor:start;opacity:1;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1.20000005;stroke-linecap:butt;stroke-linejoin:miter;marker-start:none;marker-mid:none;stroke-miterlimit:4.32165003;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.58527132;display:inline;"
d="M 474,212.5 C 474,212.5 476,214.375 476.50001,213.375 C 477.00001,212.37501 475.87501,211.125 477.37501,212.25 C 478.875,213.375 478.75,213 479.25001,213.625 C 479.75001,214.25 482.75,212.125 481.625,214.125 C 480.5,216.12501 479.75001,216.875 480.5,216.75001 C 481.25001,216.625 480.375,216 481.37501,217.25001 C 482.37501,218.5 482.25001,219.5 483.62501,218.37501 L 484.875,214.50001 C 484.875,214.50001 488.37501,214.625 488.125,215.875 C 487.87501,217.125 487,217 488.87501,216 C 490.75,215 489.75,213.25 491.00001,214.375 C 492.25001,215.5 492.87501,216.625 493.37501,215.5 C 493.87501,214.375 492.25001,213.125 493.75001,213.375 C 495.25,213.625 495.37501,215 496.25,213.375 C 497.12501,211.75001 496.12501,210.875 497.5,211.125 C 498.87501,211.375 498.25001,211.75001 499.25001,210.875 C 500.25,210 500.00001,209.125 501.00001,210 C 502.00001,210.875 502.00001,211.25001 502.00001,211.25001 C 502.00001,211.25001 504,211.5 504.5,211.75001 C 505,212 504.25001,210.75 504.75001,212.75 C 505.25001,214.75 505.37501,215.375 506.00001,215.125 C 506.625,214.875 507.00001,214.00001 507.00001,215.62501 C 507.00001,217.25001 505.87501,217.75 507.375,217.5 C 508.875,217.25001 509.25001,217.125 509.375,218.25 C 509.5,219.375 510.12501,220.25 510.12501,220.25 C 510.12501,220.25 510.25001,221.12501 510.12501,221.62501 C 510,222.125 509.75001,222.375 510,223 C 510.25001,223.625 510.5,224.625 510,224.87501 C 509.5,225.125 508.75001,225.625 507.875,225.75 C 507.00001,225.875 506.50001,226.5 506.25,227.12501 C 506.00001,227.75 507.00001,227.375 505.87501,228.75001 C 504.75001,230.125 505.125,230.37501 504.37501,230.625 C 503.62501,230.87501 502.75001,231.375 502.75001,231.375 L 499.37501,231.875 L 498.625,230.5 C 498.625,230.5 498.12501,229.375 497.62501,229.87501 C 497.12501,230.37501 497.75001,231.375 497.25001,231.50001 C 496.75001,231.625 495.50001,229.375 495.50001,230.37501 C 495.50001,231.375 496.12501,233.12501 496.12501,233.12501 C 496.12501,233.12501 496.25,234.625 495.62501,234.875 C 495.00001,235.125 495.00001,235.87501 493.37501,236 C 491.75001,236.125 491.62501,236.875 490.75,237 C 489.875,237.125 489.62501,238.875 488.00001,237.625 C 486.375,236.37501 481.87501,234.375 481,234.625 C 480.12501,234.875 479.75001,235.25001 478.00001,234.75001 C 476.25001,234.25 475.5,235.375 475.125,234.625 C 474.75001,233.875 474.62501,235 475,233.25 C 475.37501,231.50001 477.00001,230.625 477.00001,230.625 C 477.00001,230.625 477.62501,230.25 477.50001,229.625 C 477.37501,229 477.50001,228.75001 476.75,228.625 C 476,228.5 476.25001,228.125 475.87501,227.12501 C 475.5,226.125 475.125,226.25 474.12501,226.5 C 473.12501,226.75 472.875,227.875 471.75,226.625 C 470.625,225.375 470.125,225.625 470.625,224.87501 C 471.125,224.125 471.00001,223.875 472.25,223.625 C 473.50001,223.375 473.62501,224.625 474.12501,223.125 C 474.62501,221.62501 475.125,221 475.125,221 C 475.125,221 474.62501,220.75 473.75001,220.875 C 472.875,221 473.12501,222 472.12501,220.00001 C 471.125,218 470,218 470,218 C 470,218 469.75001,218 470.37501,217 C 471.00001,216 471.625,216 472.25,215 C 472.875,214.00001 471.75,213.125 472.62501,212.25 C 473.50001,211.375 473.75001,212 473.75001,212 L 474,212.5 z"
sodipodi:nodetypes="csssssss" />
<text class="unit" x="480" y="232"></text>
</g>
<g>
<path class="area europe" id="uk"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;letter-spacing:normal;word-spacing:normal;text-anchor:start;opacity:1;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1.20000005;stroke-linecap:butt;stroke-linejoin:miter;marker-start:none;marker-mid:none;stroke-miterlimit:4.32165003;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.58527132;display:inline;"
d="M 466.5137,294.23847 C 466.5137,294.23847 466.16016,294.76879 464.74594,294.76879 C 463.33172,294.76879 463.15494,294.59201 462.27106,295.12235 C 461.38718,295.65267 460.32653,295.82945 459.44264,296.00623 C 458.55876,296.183 457.49809,297.24366 457.49809,297.24366 C 457.49809,297.24366 457.49809,297.95077 456.26066,298.30432 C 455.02321,298.65787 455.2,298.48111 453.96255,298.48111 C 452.72513,298.48111 453.07867,297.42044 452.9019,296.71333 C 452.9019,296.71333 448.75,297.125 450,296.375 C 451.25001,295.625 452.25001,296.125 451.37501,295.5 C 450.5,294.87501 449.12501,294.75 450.62501,294.5 C 452.125,294.25 452.5,294.5 452.5,294 C 452.5,293.5 451.5,294.625 452.5,293 C 453.50001,291.375 453.75,291.375 454.37501,290.875 C 455.00001,290.375 454.62501,288.87501 455.50001,289.125 C 456.375,289.37501 457.37501,289.625 457.37501,289.625 L 457.87501,288.625 C 457.87501,288.625 454.75,288.5 454.50001,288 C 454.50001,288 452.87501,286.875 452.37501,286.875 C 451.87501,286.875 450.75001,287 451.12501,286.5 C 451.5,286 452.25001,284.50001 452.25001,284.50001 C 452.25001,284.50001 450.62501,283.25 451.25001,282.75 C 451.87501,282.25001 452,282.375 452,281.5 C 452,280.62501 450.875,280.5 452.125,279.25 C 453.37501,278 453.625,278.25 454.50001,277.5 C 455.375,276.75 455.375,276.625 456,277.25 C 456.62501,277.87501 456.62501,278.875 457.75001,277.5 C 458.87501,276.125 459.00001,275.375 459.00001,275.375 C 459.00001,275.375 458.50001,275.5 460.375,274.5 C 462.25001,273.50001 460.75,272.625 463.5,273.00001 C 466.25,273.375 465.75,273.50001 466.375,273.375 C 467.00001,273.25 467.375,271.625 467.75001,273.00001 C 468.12501,274.375 467.25,274.62501 469,275.125 C 470.75,275.625 471.50001,275.375 471.00001,276.25001 C 470.50001,277.125 470.37501,277 470.87501,277.75 C 471.37501,278.50001 471.75,278.875 471.75,279.5 C 471.75,280.12501 471.37501,280.62501 470.50001,281 C 469.625,281.375 469.75001,280.875 468.62501,282 C 467.50001,283.125 466.875,282.87501 466.875,282.87501 C 466.875,282.87501 466.62501,282.25001 465.87501,282.75 C 465.125,283.25 465.50001,284 464.37501,283.25 C 463.25001,282.5 461.875,282.5 461.875,282.5 C 461.875,282.5 461.375,282.5 461.50001,283.25 C 461.62501,284 462.25001,286.5 462.25001,286.5 C 462.25001,286.5 463.37501,288.5 463,289.37501 C 462.62501,290.25 460.75,290.75 462.375,290.875 C 464,291.00001 463.87501,290.625 463.87501,291.75 C 463.87501,292.875 463.87501,293.5 464.87501,293.375 C 465.87501,293.25001 466.62501,294.375 466.5137,294.23847 z M 478.71129,283.2783 C 478.18096,282.65958 478.44613,282.74797 478.26935,282.12925 C 478.09257,281.51053 478.35774,281.42215 478.35774,280.80343 C 478.35774,280.18471 478.44613,279.91954 478.71129,279.12405 C 478.97646,278.32855 477.29708,277.62145 477.29708,277.00273 C 477.29708,276.38401 476.23642,275.58851 476.05964,275.23496 C 475.88286,274.88141 475.35253,274.43947 474.73382,274.52785 C 474.1151,274.61624 474.1151,274.9698 473.40799,275.32335 C 472.70088,275.6769 472.70088,275.14657 472.17055,274.70463 C 471.64022,274.26269 471.72861,273.73236 471.72861,272.76009 C 471.72861,271.78782 471.817,272.22976 472.17055,271.78782 C 472.52411,271.34587 472.6125,271.43426 473.14283,270.81554 C 473.67316,270.19683 473.40799,270.3736 473.40799,269.75488 C 473.40799,269.13616 473.40799,268.60583 473.14283,267.89873 C 472.87766,267.19162 472.17055,267.72195 471.90539,267.01484 C 471.64022,266.30774 471.55184,266.48451 471.10989,266.21935 C 470.66795,265.95418 470.49118,266.13096 469.5189,266.04257 C 468.54663,265.95418 469.25374,265.42385 469.16535,265.0703 C 469.07696,264.71675 469.07696,264.53997 468.90019,263.5677 C 468.72341,262.59543 468.28147,263.30253 467.75114,263.39092 C 467.22081,263.47931 467.04403,263.47931 466.86725,262.59543 C 466.69048,261.71154 466.86725,262.0651 466.77886,261.62316 C 466.69048,261.18121 466.60209,261.18121 465.98337,260.20894 C 465.36465,259.23667 466.07176,259.767 466.77886,259.23667 C 467.48597,258.70634 467.39758,258.44117 468.0163,257.99923 C 468.63502,257.55729 468.0163,257.38051 467.83952,256.67341 C 467.66275,255.9663 467.30919,255.78952 467.30919,255.78952 C 467.30919,255.78952 466.69048,255.9663 465.62982,255.9663 C 464.56916,255.9663 464.65754,255.78952 464.12721,255.08242 C 463.59688,254.37531 464.2156,254.37531 465.0111,253.75659 C 465.80659,253.13787 465.54143,252.78432 466.33692,251.90044 C 467.13242,251.01655 467.57436,251.10494 468.54663,250.92817 C 469.5189,250.75139 469.07696,250.22106 469.5189,249.1604 C 469.96085,248.09974 470.13762,247.92296 470.40279,247.30424 C 470.66795,246.68552 471.19828,245.89003 471.37506,244.74098 C 471.55184,243.59193 473,245.5 476,244.5 C 479,243.5 479,244.5 479,244.5 C 479,244.5 480.5,247 478,248 C 475.5,249 477,253 477,253 L 477.73902,253.04949 C 477.73902,253.04949 478.6229,252.34238 479.33001,252.25399 C 480.03712,252.1656 479.94873,252.60754 480.83261,252.60754 C 481.7165,252.60754 481.53972,252.07721 482.60038,251.37011 C 483.66104,250.663 483.39587,252.1656 483.39587,252.78432 C 483.39587,253.40304 484.81009,255.17081 484.81009,255.17081 L 484.45653,255.78952 C 484.45653,255.78952 483.83782,256.14308 483.83782,257.11535 C 483.83782,258.08762 483.57265,257.82246 483.39587,258.2644 C 483.2191,258.70634 482.86554,258.70634 482.4236,258.9715 C 481.98166,259.23667 482.51199,259.41345 482.68877,260.29733 C 482.86554,261.18121 482.60038,260.73927 482.15844,260.82766 C 481.7165,260.91605 481.27455,260.91605 480.921,261.53477 C 480.56745,262.15349 480.83261,262.24187 480.30228,262.94898 C 479.77195,263.65609 479.86034,263.39092 478.71129,263.74448 C 477.56224,264.09803 478.09257,264.09803 478.35774,265.42385 C 478.6229,266.74968 479.50679,264.98191 481.09778,264.80514 C 482.68877,264.62836 482.33521,264.80514 483.39587,264.80514 C 484.45653,264.80514 484.01459,264.89352 484.7217,265.42385 C 485.42881,265.95418 484.89848,266.21935 485.25203,266.83807 C 485.60558,267.45679 485.95914,267.10323 486.40108,267.72195 C 486.84302,268.34067 486.40108,268.95939 486.40108,269.84327 C 486.40108,270.72716 486.40108,270.63877 486.40108,270.63877 C 486.40108,270.63877 487.46174,273.82075 488.87595,274.61624 C 490.29017,275.41174 489.75984,275.41174 490.37855,275.94207 C 490.99727,276.4724 492.14632,279.38921 492.49987,279.83116 C 492.85343,280.2731 492.85343,280.62665 493.0302,282.21764 C 493.20698,283.80863 493.0302,283.45508 492.85343,284.0738 C 492.67665,284.69251 492.58826,284.60413 492.3231,285.5764 C 492.05793,286.54867 492.3231,286.72545 492.3231,287.079 C 492.3231,287.43255 492.85343,287.69772 494.62119,286.81383 C 496.38896,285.92995 495.68185,286.19512 496.8309,285.84156 C 497.97995,285.48801 497.71479,285.39962 498.77545,285.66479 C 499.83611,285.92995 499.65933,286.10673 500.6316,287.079 C 501.60387,288.05127 500.98516,288.22805 501.25032,288.93515 C 501.51549,289.64226 501.16193,289.55387 500.89677,290.26098 C 500.6316,290.96809 500.6316,290.8797 500.18966,291.76358 C 499.74772,292.64747 500.01288,292.47069 499.65933,293.00102 C 499.30578,293.53135 499.04061,293.26618 497.97995,293.53135 C 496.91929,293.79651 497.09607,294.41523 496.56574,294.94556 C 496.03541,295.47589 496.21218,295.65267 496.1238,296.09461 C 496.03541,296.53655 496.56574,297.33205 496.56574,297.33205 C 496.56574,297.33205 497.36123,297.6856 497.80317,298.12754 C 498.24512,298.56948 498.06834,298.92304 497.53801,299.80692 C 497.00768,300.69081 496.8309,300.24886 495.77024,300.69081 C 494.70958,301.13275 494.35603,300.69081 493.29537,300.60242 C 492.23471,300.51403 492.3231,300.95597 490.8205,301.4863 C 489.31789,302.01663 489.40628,301.57469 488.25723,301.4863 C 487.10818,301.39791 487.19657,301.39791 486.04752,301.4863 C 484.89848,301.57469 484.98686,301.92824 483.66104,302.72374 C 482.33521,303.51923 482.86554,302.72374 482.4236,302.37018 C 481.98166,302.01663 481.7165,301.92824 481.09778,301.30952 C 480.47906,300.69081 480.47906,300.95597 479.94873,301.13275 C 479.4184,301.30952 478.26935,303.34246 477.47385,303.69601 C 476.67836,304.04956 476.58997,303.87279 475.44092,303.87279 C 474.29187,303.87279 474.64543,303.87279 474.1151,303.96117 C 473.58477,304.04956 473.23121,304.93345 472.52411,305.72894 C 471.817,306.52444 471.99378,305.99411 470.66795,306.17088 C 469.34213,306.34766 469.43052,306.08249 469.25374,305.72894 C 469.07696,305.37539 469.43052,305.37539 469.87246,304.75667 C 470.3144,304.13795 471.10989,302.9889 471.64022,302.10502 C 472.17055,301.22114 472.43572,301.66308 473.76154,300.86758 C 475.08737,300.07209 474.02671,300.51403 474.64543,299.1882 C 475.26415,297.86238 475.35253,297.86238 476.67836,297.42044 C 476.67836,297.42044 477.25,296.25 476.125,295.625 C 475,295 474.5,295.25 473.375,294.75 C 472.25,294.25 471.375,294.5 471.625,293.8125 C 472.75,292.5 473,291.875 473.375,291.25 C 473.75,290.625 473.5,290 474,290 C 474.5,290 474.75,290.25 475.375,289.875 C 476,289.5 476.125,289.25 476.125,288.5 C 476.125,287.75 476,287.5 476.25,286.75 C 476.5,286 477.25,285.375 476.625,284.875 C 476,284.375 476.5,284.5 475.75,284.25 C 475,284 474.5,283.5 474.5,283.5 L 474.75,282.5 L 474.9375,280.75 C 474.9375,280.75 475.125,280.875 476.375,281.375 C 477.625,281.875 478.375,283.5 478.375,283.5 C 478.64075,283.97231 479.0265,283.95957 478.71129,283.2783 z" />
<text class="unit" x="477" y="290"></text>
</g>
<g>
<path class="area europe" id="scandinavia"
style="opacity:1;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1.20000005;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4.32165003;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.58527132;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
d="M 579.125,237 C 578.5,236.875 577.625,236.5 577.25,235.75 C 576.875,235 576,234.125 575.375,234.375 C 574.75,234.625 575,234.75 573.75,234.75 C 572.5,234.75 571.875,233 570.875,233.625 C 569.875,234.25 570.625,234.625 569.375,234.875 C 568.125,235.125 566.75,235.25 565.5,235.25 C 564.25,235.25 564.5,235 563.125,235.25 C 561.75,235.5 560.75,236.25 560.25,235 C 559.75,233.75 559.625,234.125 559.625,232.875 C 559.625,231.625 560.375,230.75 560.625,229.625 C 560.875,228.5 560.125,227.375 561,226.25 C 561.875,225.125 562.5,224.875 562.875,224.25 C 563.25,223.625 563.625,222.875 563.75,222 C 563.875,221.125 563.875,221.375 563.875,220.5 C 563.875,219.625 563.5,218.875 563,218.5 C 562.5,218.125 562.625,218.125 561.5,218 C 560.375,217.875 560.75,217.125 559.625,218.375 C 558.5,219.625 557.5,219.75 557.375,220.75 C 557.25,221.75 557.875,222.125 557.25,223.375 C 556.625,224.625 556.5,224.5 556.25,225 C 556,225.5 556.5,226.25 556,226.75 C 555.5,227.25 555.125,227.25 554.25,227.75 C 553.375,228.25 552.75,227.875 552.625,229.375 C 552.5,230.875 552.25,230.5 552.625,231.5 C 553,232.5 553.25,232.625 553.5,233.375 C 553.75,234.125 554.25,234.5 554.25,236 C 554.25,237.5 554.625,238 554.625,238 C 554.625,238 555.125,239.75 555,240.625 C 554.875,241.5 554.5,243 554.125,243.875 C 553.75,244.75 553.375,245.25 552.75,245.875 C 552.125,246.5 552.375,246.625 551.625,247.375 C 550.875,248.125 550,248.375 549.375,248.75 C 548.75,249.125 548.625,250.375 548.625,250.375 L 548.625,252.75 C 548.625,252.75 549.25,254.375 548.125,254.875 C 547,255.375 546.75,255.5 546,256.625 C 545.25,257.75 546,258.625 545.125,259.375 C 544.25,260.125 544.5,260.25 543,260.125 C 541.5,260 541.25,260 540.75,259.375 C 540.25,258.75 539.625,257.625 538.875,257.5 C 538.125,257.375 538.25,257.625 537.75,257.375 C 537.25,257.125 537.625,256.625 536.875,256.625 C 536.125,256.625 535.75,257.125 535.75,256.625 C 535.75,256.125 535.75,256.375 535.75,255.25 C 535.75,254.125 535.75,250.625 535.75,250.625 L 533.875,247.75 L 534.5,246.125 L 533.75,244.875 L 532.875,244.375 C 532.875,244.375 531.5,244.875 531.375,245.375 C 531.25,245.875 531.25,246.25 531,246.75 C 530.75,247.25 529.625,248.75 528.75,248.875 C 527.875,249 526.75,249.125 526.75,249.125 C 526.75,249.125 526.375,250.125 525.625,249.75 C 524.875,249.375 525.125,249.5 524.25,248.5 C 523.375,247.5 523.125,246.375 523.125,245.875 C 523.125,245.375 523.375,245.25 522.75,244.75 C 522.125,244.25 522.125,244.25 521.5,243.625 C 520.875,243 520,242.5 520.125,241.375 C 520.25,240.25 520.5,239.125 520.75,238 C 521,236.875 520.375,235.75 520.375,235.75 L 519.90026,234.84149 C 519.36993,233.78083 519.90026,233.9576 519.01638,233.07372 C 518.13249,232.18984 517.42539,231.83628 517.95572,230.42207 C 518.48605,229.00786 517.60216,228.12397 519.01638,227.77042 C 520.43059,227.41687 520.25381,229.36141 520.60737,226.88653 C 520.96092,224.41166 519.90026,225.11877 521.31448,223.52778 C 522.72869,221.93679 522.90547,221.58323 522.90547,221.58323 C 522.90547,221.58323 523.78935,221.58323 524.1429,222.82067 C 524.49646,224.05811 524.49646,225.11877 525.20356,224.23488 C 525.91067,223.351 526.08745,222.29034 526.61778,221.58323 C 527.14811,220.87613 528.03199,219.99224 528.03199,219.99224 C 528.03199,219.99224 526.441,217.34059 528.38554,217.51737 C 530.33009,217.69415 530.33009,218.0477 530.86042,217.34059 C 531.39075,216.63349 531.21397,216.63349 532.45141,216.27993 C 533.68884,215.92638 533.86562,216.10316 534.0424,215.0425 C 534.21917,213.98184 534.7495,213.98184 535.45661,213.27473 C 536.16372,212.56762 536.16372,212.21407 536.34049,210.79986 C 536.51727,209.38564 536.16372,209.56242 537.75471,207.4411 C 539.3457,205.31978 539.3457,205.49655 539.87603,204.08234 C 540.40636,202.66813 540.40636,202.8449 540.93669,201.96102 C 541.46702,201.07714 542.17413,201.43069 542.70446,200.72358 C 543.23479,200.01648 543.41156,199.13259 543.41156,199.13259 L 544.29545,197.5416 C 544.29545,197.5416 542.52768,196.8345 544.11867,196.12739 C 545.70966,195.42028 545.88644,195.24351 547.12387,194.88995 C 548.36131,194.5364 549.24519,194.5364 549.24519,194.5364 C 549.24519,194.5364 550.39424,196.21578 550.57102,194.97834 C 550.7478,193.7409 550.04069,193.56413 551.10135,192.76863 C 552.16201,191.97314 552.78073,192.06153 553.13428,192.32669 C 553.48783,192.59186 553.31106,192.85702 554.10655,192.68024 C 554.90205,192.50347 555.78593,193.56413 556.0511,192.32669 C 556.31626,191.08925 554.90205,190.11698 556.58143,189.40988 C 558.2608,188.70277 559.14469,189.32149 559.67502,188.79116 C 560.20535,188.26083 559.40985,187.99566 560.47051,187.46533 C 561.53117,186.935 561.88473,187.20017 562.94539,186.84661 C 564.00605,186.49306 564.09444,185.34401 564.62477,185.25562 C 565.1551,185.16723 565.8622,185.25562 566.39253,185.78595 C 566.92286,186.31628 565.42026,186.75822 567.54158,186.40467 C 569.6629,186.05112 572.49133,184.72529 573.28682,185.34401 C 574.08232,185.96273 573.37521,187.02339 574.43587,187.02339 C 575.49653,187.02339 576.55719,186.58145 577.08752,186.935 C 577.61785,187.28855 577.52946,187.55372 578.32496,187.90727 C 578.32496,187.90727 579.25,191.875 578.625,192.375 C 578,192.875 579.375,196 578.625,196.5 C 577.875,197 577.5,202.75 577.5,205.375 C 577.5,208 578.875,212.125 578.5,214.25 C 578.125,216.375 579.125,219.375 579.125,219.375 C 579.125,219.375 579.75,220 579.75,221.625 C 579.75,223.25 580.625,224.125 580.625,224.125 C 580.625,224.125 581.0625,224.25 581.125,224.8125 C 581.1875,225.375 581.1875,226.25 580.9375,226.5 C 580.6875,226.75 580.125,227.1875 580.125,228.125 C 580.125,229.0625 580.375,229.4375 580.0625,229.875 C 579.75,230.3125 579.5,230.4375 579.375,231.5 C 579.25,232.5625 579.0625,234 579.3125,234.5625 C 579.5625,235.125 580,237.25 579.125,237 z"
sodipodi:nodetypes="csssssssssssssssssssssssssscsssssccsssssssssscccccssscsssssssccssssscssscssssssssssccsscsssssssssssssssc" />
<text class="unit" x="544" y="220"></text>
</g>
<g>
<path class="area asia" id="japan"
style="opacity:1;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1.20000005;stroke-linecap:butt;stroke-linejoin:miter;marker-start:none;marker-mid:none;stroke-miterlimit:4.32165003;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.58527132;display:inline;"
d="M 829.43626,335.25065 C 829.43626,334.01321 829.96659,330.83123 829.25948,330.65446 C 828.55237,330.47768 828.55237,329.94735 827.31494,330.12413 C 826.0775,330.3009 824.66328,329.5938 824.66328,329.5938 C 824.66328,329.5938 824.30973,328.35636 826.43105,327.11892 C 828.55237,325.88148 829.78981,325.17438 829.78981,325.17438 L 828.72915,324.46727 C 828.72915,324.46727 826.43105,324.29049 827.49171,323.58339 C 828.55237,322.87628 828.72915,321.9924 829.61303,320.93174 C 830.49692,319.87108 832.61824,314.391 833.85567,312.26968 C 835.09311,310.14836 837.92154,310.85547 837.92154,310.85547 L 839.86608,305.90572 C 839.86608,305.90572 838.27509,302.19341 840.92674,300.95597 C 843.57839,299.71853 843.75517,301.13275 844.46227,298.12754 C 845.16938,295.12234 847.2907,295.65267 847.64426,294.59201 C 847.99781,293.53135 848.35136,293.53135 847.82103,291.76358 C 847.2907,289.99582 845.87649,288.40483 845.87649,288.40483 C 845.87649,288.40483 845.16938,285.75317 845.16938,284.33896 C 845.16938,282.92475 844.81583,280.62665 846.05326,280.09632 C 847.2907,279.56599 844.9926,276.73756 844.9926,276.73756 C 844.9926,276.73756 845.69971,275.6769 844.81583,274.9698 C 843.93194,274.26269 843.40161,273.37881 843.40161,272.49492 C 843.40161,271.61104 843.57839,269.31294 843.57839,269.31294 C 843.57839,269.31294 844.46227,267.89873 845.16938,267.72195 C 845.87649,267.54517 846.58359,267.89873 846.58359,266.13096 C 846.58359,264.36319 845.69971,261.71154 845.69971,261.71154 C 845.69971,261.71154 841.9874,256.23147 841.28029,255.87791 C 840.57319,255.52436 840.57319,255.17081 841.10352,254.11015 C 841.63385,253.04949 845.16938,258.35279 847.64426,258.70634 C 850.11913,259.05989 852.41723,258.70634 852.41723,258.70634 L 854.71532,257.64568 L 859.31152,257.82246 C 859.31152,257.82246 861.25606,257.99923 861.60961,259.94378 C 861.96317,261.88832 864.43804,261.18121 863.2006,262.94898 C 861.96317,264.71675 862.13994,265.60063 860.90251,265.42385 C 859.66507,265.24708 859.84185,264.36319 858.95796,264.53997 C 858.07408,264.71675 857.36697,264.53997 857.36697,266.48451 C 857.36697,268.42906 858.78119,268.60584 857.54375,270.19683 C 856.30631,271.78782 856.83664,272.49492 855.06888,272.49492 C 853.30111,272.49492 851.71012,272.31815 849.94235,272.6717 C 848.17459,273.02525 847.2907,271.78782 847.2907,273.37881 C 847.2907,274.9698 847.2907,275.32335 848.17459,275.50013 C 849.05847,275.6769 849.76558,275.50013 849.41202,276.56079 C 849.05847,277.62145 847.99781,278.32855 848.70492,278.68211 C 849.41202,279.03566 850.29591,278.15178 850.29591,279.03566 L 853.30111,279.21244 L 853.83144,280.9802 C 853.83144,280.9802 854.18499,280.9802 855.24565,281.15698 C 856.30631,281.33376 857.01342,280.44987 857.36697,281.68731 C 857.72053,282.92475 858.25086,283.45508 858.25086,283.45508 C 858.25086,283.45508 858.78119,283.45508 858.95796,284.69251 C 859.13474,285.92995 859.31152,286.2835 859.31152,287.16739 C 859.31152,288.05127 858.42763,290.8797 858.42763,290.8797 C 858.42763,290.8797 857.72053,291.58681 857.8973,293.00102 C 858.07408,294.41523 858.78119,293.00102 858.95796,294.76879 C 859.13474,296.53655 859.13474,297.06688 859.13474,298.30432 C 859.13474,299.54176 858.95796,299.36498 860.01862,300.24886 C 861.07928,301.13275 861.43284,302.01663 861.43284,302.01663 C 861.43284,302.01663 862.31672,302.54696 862.31672,303.7844 C 862.31672,305.02183 862.31672,306.08249 862.31672,306.08249 C 862.31672,306.08249 861.78639,306.25927 861.07928,306.25927 C 860.37218,306.25927 859.48829,306.08249 859.48829,306.08249 C 859.48829,306.08249 859.31152,306.61282 858.95796,307.85026 C 858.60441,309.0877 857.01342,309.79481 857.01342,309.79481 C 857.01342,309.79481 857.01342,311.56257 856.30631,311.73935 C 855.59921,311.91613 855.06888,311.91613 854.36177,312.0929 C 853.65466,312.26968 853.12433,312.0929 852.77078,312.97679 C 852.41723,313.86067 852.77078,314.03745 851.8869,314.21422 C 851.00301,314.391 850.11913,312.80001 849.94235,315.09811 C 849.76558,317.3962 851.17979,318.28009 849.41202,318.81042 C 847.64426,319.34075 846.58359,319.6943 846.58359,319.6943 C 846.58359,319.6943 846.93715,321.10851 845.69971,320.75496 C 844.46227,320.40141 843.04806,319.16397 843.04806,318.28009 C 843.04806,317.3962 842.87128,316.86587 842.87128,316.86587 L 840.39641,318.45686 C 840.39641,318.45686 840.74996,319.34075 838.9822,319.34075 C 837.21443,319.34075 836.50732,317.3962 836.86088,319.34075 C 837.21443,321.28529 837.92154,322.6995 838.09831,323.40661 C 838.27509,324.11372 839.33575,323.58339 839.15897,324.64405 C 838.9822,325.70471 839.33575,325.70471 838.62864,326.41181 C 837.92154,327.11892 836.50732,327.2957 835.80022,327.2957 C 835.09311,327.2957 834.91633,327.11892 833.50212,327.2957 C 832.08791,327.47247 831.375,334.125 831.375,334.125 L 830.125,335.25 L 829.43626,335.25065 z"
sodipodi:nodetypes="csscsccsssccsssscsscsscsscssscccsssssssssssss" />
<text class="unit" x="842" y="314"></text>
</g>
<g>
<path class="area asia" id="yakutsk"
style="opacity:1;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1.20000005;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4.32165003;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.58527132;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
d="M 810.125,170.375 C 809.625,169.25 810.875,169.125 809,168.125 C 807.125,167.125 806.375,167.375 805.25,167 C 804.125,166.625 804.375,166.375 804.875,165 C 805.375,163.625 807,163.5 804.75,163 C 802.5,162.5 802.625,161.625 801,161.625 C 799.375,161.625 799.75,161.625 798.875,162 C 798,162.375 797.875,162.375 797.5,162.875 C 797.125,163.375 797.875,164 797,163.75 C 796.125,163.5 796.625,163.875 795.75,162.875 C 794.875,161.875 795.125,161.5 794,161.625 C 792.875,161.75 793.75,161.5 792.125,161.875 C 790.5,162.25 790,162.25 788.875,162.375 C 787.75,162.5 785.875,164 785.875,164 C 785.875,164 786,164.25 784.625,164.375 C 783.25,164.5 784.125,163.75 782.25,165.125 C 780.375,166.5 781.25,166.625 779.75,166.5 C 778.25,166.375 779,165.5 777.375,166.25 C 775.75,167 775.625,166.625 775.625,167.625 C 775.625,168.625 774.625,169.25 774.625,169.25 C 774.625,169.25 774.625,168.875 774.25,167.625 C 773.875,166.375 773.375,166.875 773.5,165.625 C 773.625,164.375 768.25,163.625 767.5,161.875 C 766.75,160.125 766.875,160.375 766.625,158.75 C 766.375,157.125 763.375,156.375 762.875,156.5 C 762.375,156.625 761,158.125 760.375,158.875 C 759.75,159.625 759.5,160.25 758.5,161 C 757.63654,161.8506 756.83066,162.3739 756.0625,162.9375 L 756.375,165.5 C 756.375,166 756.25,167.5 757.375,168.625 C 758.5,169.75 758.875,169.25 759.375,169.75 C 759.875,170.25 759.25,173.5 759.125,174.25 C 759,175 758.5,175 758,175.875 C 757.5,176.75 757.875,177.25 757.5,178.75 C 757.125,180.25 756.625,179.625 756.25,181.125 C 755.875,182.625 756.25,182.5 756.75,183.5 C 757.25,184.5 757.25,185.375 757.25,186.875 C 757.25,188.375 757,187.5 756.375,187.625 C 755.75,187.75 755.125,188.25 753.875,188.375 C 752.625,188.5 751.25,189 750.625,188.25 C 750,187.5 749.375,187.375 747.125,187.625 C 744.875,187.875 746.5,188.625 746.25,189.625 C 746,190.625 745.25,190.5 743.75,190.75 C 742.25,191 742.75,191.125 742.625,192.75 C 742.5,194.375 744.375,195.375 745.375,195.75 C 746.375,196.125 746.625,196.375 747,197 C 747.375,197.625 748.5,197.375 750,198.75 C 751.5,200.125 750.25,200.375 749.25,201.375 C 748.25,202.375 749.875,205.875 750.625,206.375 C 751.375,206.875 751.75,207.625 752.125,210.625 C 752.5,213.625 753.625,213.875 753.625,213.875 C 753.625,213.875 754.5,214.375 754.625,217.5 C 754.75,220.625 755.5,223.25 755.5,223.25 C 755.5,223.25 760.375,221.75 761.625,221 C 762.875,220.25 762.75,220.125 763.125,218.375 C 763.5,216.625 763.625,213.75 765,213.5 C 766.375,213.25 766.125,215.25 766.125,215.25 C 766.25,216 767.625,215.75 769.125,216 C 770.183,216.17633 769.74851,215.2333 769.53218,214.31133 C 769.4418,213.92616 769.3895,213.54467 769.5,213.25 C 769.875,212.25 781.79494,213.36312 781.79494,213.36312 C 782.23688,212.30246 783.03237,211.59535 784.3582,210.35791 C 785.68402,209.12048 784.62336,206.91077 784.71175,206.46883 C 784.80014,206.02689 786.47952,204.61267 787.27501,201.60747 C 788.07051,198.60226 789.04278,200.81197 789.04278,200.81197 C 789.04278,200.81197 791.07571,199.04421 791.78282,197.80677 C 792.48993,196.56933 796.37901,196.74611 796.82095,196.92289 C 797.2629,197.09966 796.99773,198.86743 797.61645,200.10487 C 798.23517,201.3423 797.88161,200.6352 798.94228,200.54681 C 800.00294,200.45842 800.71004,200.10487 801.68231,200.10487 C 802.65459,200.10487 802.21264,201.51908 802.65459,201.69586 C 803.09653,201.87263 804.68752,201.69586 805.12946,201.60747 C 805.5714,201.51908 806.54367,200.81197 807.16239,200.28164 C 807.78111,199.75131 807.33917,197.98355 807.42756,197.18805 C 807.51594,196.39256 808.39983,196.12739 808.66499,195.50867 C 808.93016,194.88995 808.66499,193.21057 808.5766,192.41508 C 808.48822,191.61958 807.8695,190.64731 807.25078,190.47054 C 806.63206,190.29376 804.15719,190.11698 803.18492,190.02859 C 802.21264,189.94021 802.21264,185.25562 802.65459,182.25042 C 803.09653,179.24522 802.83136,179.95232 803.2733,179.42199 C 803.71525,178.89166 805.21785,178.6265 805.74818,178.6265 C 806.27851,178.6265 806.98561,177.47745 807.074,176.59357 C 807.16239,175.70968 807.8695,175.88646 808.22305,175.00258 C 808.5766,174.11869 809.72565,174.56063 810.96309,174.38386 C 812.20053,174.20708 811.40503,172.88125 811.40503,171.46704 L 810.125,170.375 z"
sodipodi:nodetypes="csssssssssssscssssscsssssscccssssssssssssssssssssscscssscssscssscsssssssssssssssssssc" />
<text class="unit" x="770" y="195"></text>
</g>
<g>
<path class="area asia" id="kamchatka"
style="opacity:1;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1.20000005;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4.32165003;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.58527132;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
d="M 818.375,289.5 C 819.375,288.75 819.125,289.625 820,287.75 C 820.875,285.875 820.625,285.25 821.25,284.625 C 821.875,284 823.25,281.75 823.125,280.125 C 823,278.5 822.5,278.625 822.875,277.125 C 823.25,275.625 823.375,275.625 823.625,273.625 C 823.875,271.625 823.375,271.875 824,269.5 C 824.625,267.125 824.75,266.625 824.375,265.75 C 824,264.875 823.75,263.875 823.75,262.375 C 823.75,260.875 823.875,259.625 823.75,259.125 C 823.625,258.625 823.5,258.125 823.125,256.75 C 822.75,255.375 821.75,254.375 821.75,254.375 C 821.75,254.375 821.5,255.375 821,253.75 C 820.5,252.125 820.625,252.625 820.375,251.625 C 820.125,250.625 819.375,252.125 819.75,248.75 C 820.125,245.375 820,244.25 820,244.25 C 820,244.25 819.875,240.875 817.625,240.875 C 815.375,240.875 814.625,241.5 814.375,239.625 C 814.125,237.75 813.125,237.375 811.625,237.125 C 810.125,236.875 809.875,237.125 809.125,236.75 C 808.375,236.375 808.75,236.125 807.5,236.125 C 806.25,236.125 807,236.625 805.25,236.125 C 803.5,235.625 803.5,236.875 803.25,235.625 C 803,234.375 803.125,233.5 804.875,230.75 C 806.625,228 806.5,227.375 806.75,226 C 807,224.625 805.5,225.25 807.75,223.25 C 810,221.25 809.375,220.625 812,220.625 C 814.625,220.625 815,220.625 816.875,219.75 C 818.75,218.875 817.25,217.875 819.5,218.875 C 821.75,219.875 821.5,220.875 822.75,219.75 C 824,218.625 824.375,217.875 825,217.875 C 825.625,217.875 828,219.25 828,219.25 C 828,219.25 829,219.75 829.875,219.5 C 830.75,219.25 831.5,221.125 832.375,219.375 C 833.25,217.625 832.875,217.125 832,216.625 C 831.125,216.125 830.125,218.375 830.625,215.375 C 831.125,212.375 831.625,211.25 831.25,210.25 C 830.875,209.25 828.25,205.75 831.375,207.875 C 834.5,210 833.75,210.375 834.875,211 C 836,211.625 835.5,211.625 835.875,214 C 836.25,216.375 840,215.875 839.5,218.875 C 839,221.875 839,222.75 838.75,224 C 838.5,225.25 837.125,224.375 837.5,229.5 C 837.875,234.625 838.25,243.75 842.75,247.75 C 847.25,251.75 848.375,252.25 849,250.5 C 849.625,248.75 850.25,248 849.875,246 C 849.5,244 848.5,243.25 849.25,241.875 C 850,240.5 850.625,239.625 850.75,238.5 C 850.875,237.375 851.125,236.5 851,235.25 C 850.875,234 851,232.5 850.75,231.5 C 850.5,230.5 850.25,228.875 850.125,227.875 C 850,226.875 849,225.125 848.625,224.25 C 848.25,223.375 847.125,221.625 846.875,220.375 C 846.625,219.125 846.125,218.625 847.375,216.875 C 848.625,215.125 846.25,214.125 849.125,214.5 C 852,214.875 851.875,215.25 853.375,215 C 854.875,214.75 856.375,215.625 856.875,213.875 C 857.375,212.125 857,212.375 857.875,211.125 C 858.75,209.875 859.125,210.125 860.125,208.625 C 861.125,207.125 859.625,206.625 862.125,204.625 C 864.625,202.625 866.125,201.875 866.75,201.125 C 867.375,200.375 868.625,200 867.625,199 C 866.625,198 866.5,197.125 865.125,196.25 C 863.75,195.375 863,194.75 862.375,194.625 C 861.75,194.5 860.875,194.25 861.5,193.75 C 862.125,193.25 863.125,192.375 864.125,192.375 C 865.125,192.375 865.125,193.375 866.625,192.625 C 868.125,191.875 868.75,191.375 869.75,192.125 C 870.75,192.875 870.125,192.25 870.875,193.75 C 871.625,195.25 870.125,194.75 872.125,195.875 C 874.125,197 876,197.25 876.625,197.25 C 877.25,197.25 876.875,198 878.375,197.125 C 879.875,196.25 879.625,196.625 880.625,195.25 C 881.625,193.875 882.25,193.625 881.875,191.875 C 881.5,190.125 880.875,189 880.875,188.5 L 879.75,186.625 C 879.75,186.625 879.75,185.75 878,185.75 C 876.25,185.75 875.25,185.875 875.25,185.25 C 875.25,184.625 875.75,183.5 874.625,183.5 C 873.5,183.5 872.875,182.5 872.125,183.375 C 871.375,184.25 870.875,185.25 870,184.75 C 869.125,184.25 868.125,183 868.125,183 C 868.125,183 868.375,181.75 868,181.25 C 867.625,180.75 866.5,179.625 866.5,179.625 L 864.875,178.875 C 864.875,178.875 861.5,175.5 860.25,175.375 C 859,175.25 857.875,175.5 857.5,174.5 C 857.125,173.5 859.25,173.5 856.125,173 C 853,172.5 852.875,173 851.875,171.625 C 850.875,170.25 852.25,169.875 849.75,169.75 C 847.25,169.625 846.125,170 844,169.125 C 841.875,168.25 841.875,167.375 840.875,168.375 C 839.875,169.375 840.375,169.5 839,170.625 C 837.625,171.75 838.375,172.75 836.25,172.75 C 834.125,172.75 834.5,173 833.25,172.5 C 832,172 832.25,171.625 830.75,171.5 C 829.25,171.375 829.625,171.5 828.125,171.625 C 826.625,171.75 827.875,172.625 825.5,171.5 C 823.125,170.375 823.125,170.125 821.375,169.25 C 819.625,168.375 819.125,168.125 818.25,168.125 C 817.375,168.125 813.75,167.75 812.75,168.625 C 812.75,168.625 811.40503,170.05283 811.40503,171.46704 C 811.40503,172.88125 812.20053,174.20708 810.96309,174.38386 C 810.3812,174.46699 809.81886,174.4133 809.34959,174.42499 C 808.82091,174.43817 808.41035,174.53433 808.22305,175.00258 C 807.8695,175.88646 807.16239,175.70968 807.074,176.59357 C 806.98561,177.47745 806.27851,178.6265 805.74818,178.6265 C 805.21785,178.6265 803.71525,178.89166 803.2733,179.42199 C 802.83136,179.95232 803.09653,179.24522 802.65459,182.25042 C 802.21264,185.25562 802.21264,189.94021 803.18492,190.02859 C 804.15719,190.11698 806.63206,190.29376 807.25078,190.47054 C 807.8695,190.64731 808.48822,191.61958 808.5766,192.41508 C 808.66499,193.21057 808.93016,194.88995 808.66499,195.50867 C 808.39983,196.12739 807.51594,196.39256 807.42756,197.18805 C 807.33917,197.98355 807.78111,199.75131 807.16239,200.28164 C 806.54367,200.81197 805.5714,201.51908 805.12946,201.60747 C 804.68752,201.69586 803.09653,201.87263 802.65459,201.69586 C 802.21264,201.51908 802.65459,200.10487 801.68231,200.10487 C 800.71004,200.10487 800.00294,200.45842 798.94228,200.54681 C 797.88161,200.6352 798.23517,201.3423 797.61645,200.10487 C 796.99773,198.86743 797.2629,197.09966 796.82095,196.92289 C 796.37901,196.74611 792.48993,196.56933 791.78282,197.80677 C 791.07571,199.04421 789.04278,200.81197 789.04278,200.81197 C 789.04278,200.81197 788.07051,198.60226 787.27501,201.60747 C 786.47952,204.61267 784.80014,206.02689 784.71175,206.46883 C 784.62336,206.91077 785.68402,209.12048 784.3582,210.35791 C 783.03237,211.59535 782.23688,212.30246 781.79494,213.36312 C 781.35299,214.42378 781.44138,215.83799 781.70655,216.27993 C 781.97171,216.72188 783.12076,219.19675 782.76721,221.22968 C 782.41365,223.26261 781.88332,229.36141 782.14849,230.51046 C 782.41365,231.65951 782.50204,234.48793 783.29754,235.28343 C 784.09303,236.07892 784.44659,236.69764 784.80014,237.40475 C 785.15369,238.11186 788.77762,239.2609 789.39633,240.76351 C 790.01505,242.26611 789.6615,242.61966 790.72216,243.23838 C 791.78282,243.8571 792.75509,245.18292 792.84348,246.42036 C 792.93187,247.6578 792.93187,249.51395 793.81575,249.24879 C 794.69963,248.98362 795.67191,247.74619 796.02546,247.39263 C 796.37901,247.03908 797.70484,246.59714 798.85389,247.03908 C 800.00294,247.48102 800.2681,247.48102 801.41715,247.30424 C 802.5662,247.12747 803.62686,247.48102 803.62686,247.48102 C 803.62686,247.48102 804.51074,248.80685 804.59913,249.51395 C 804.68752,250.22106 804.15719,250.75139 805.74818,250.663 C 807.33917,250.57461 807.69272,250.48622 807.8695,252.25399 C 808.04627,254.02176 809.01855,254.99403 809.01855,254.99403 C 809.01855,254.99403 809.28371,256.85019 809.19532,257.29213 C 809.10694,257.73407 808.48822,258.79473 808.75338,259.94378 C 809.01855,261.09283 809.63727,262.24187 809.10694,263.03737 C 808.5766,263.83286 807.69272,265.60063 807.69272,266.30774 C 807.69272,267.01485 807.51594,268.871 807.69272,269.48972 C 807.8695,270.10844 807.16239,269.6665 807.42756,271.61104 C 807.69272,273.55558 807.8695,273.90914 807.8695,274.61624 C 807.8695,275.32335 803.98041,275.14657 805.74818,277.26789 C 807.51594,279.38921 807.8695,281.95248 809.81404,281.86409 C 811.75859,281.7757 812.64247,284.60413 812.90763,285.5764 C 813.1728,286.54867 813.96829,287.25578 815.20573,287.34417 C 816.44317,287.43255 816.61994,289.28871 817.59222,289.46549 C 818.56449,289.64226 818.56449,289.55387 818.375,289.5 z"
sodipodi:nodetypes="csssssssssscssscssssssssssssssscssssssssssssssssssssssssssssssssssssssssssscssssscsccssssssssssssssscssssssssssssssssssssscsssssssssssssssscssscssssssssssssc" />
<text class="unit" x="820" y="200"></text>
</g>
<g>
<path class="area asia" id="siberia"
style="opacity:1;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1.20000005;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4.32165003;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.58527132;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
d="M 683.875,193.625 C 684.5,195.375 685,194.375 686.125,193.625 C 687.25,192.875 686.375,193 686.5,191.5 C 686.625,190 686.125,190.25 685.5,189.5 C 684.875,188.75 685.125,189.375 683.5,189.375 C 681.875,189.375 682.375,189.625 681.25,189.75 C 680.125,189.875 680.5,189.75 678.625,189.375 C 676.75,189 677.5,188 677.5,187.25 C 677.5,186.5 677,185.125 677,185.125 C 677,185.125 676,184.75 675.5,183.75 C 675,182.75 675.5,182.625 675.625,182.125 C 675.75,181.625 675.875,181 675.75,179.5 C 675.625,178 675.25,179 674.75,178.25 C 674.25,177.5 674.75,177 674.75,177 L 675.75,176 L 677.5,176.625 L 678.625,177 L 680.875,177.75 C 680.875,177.75 681,178 683,180.25 C 685,182.5 684,180.5 685.5,180.625 C 687,180.75 686.625,180 686.625,180 C 686.625,180 684.625,179 684.625,178.5 C 684.625,178 685.125,177.25 685.125,176.625 C 685.125,176 685,174.625 684.75,174.125 C 684.5,173.625 683.75,173.25 683.25,172.75 C 682.75,172.25 682,170.875 682,170.875 C 682,170.875 681.625,170.125 682.5,167.625 C 683.375,165.125 683.625,168.5 683.625,168.5 L 684.375,168.875 L 685.875,170.125 C 685.875,170.125 687.125,169.875 687.875,169.625 C 688.625,169.375 689.75,171.375 689.75,171.375 C 689.75,171.375 692,171.625 692.5,171.625 C 693,171.625 694,170.25 694,169.25 C 694,168.25 692,169.125 692,169.125 L 689,168.5 C 689,168.5 685.125,167.375 684.375,166.375 C 683.625,165.375 684.5,164.875 684.5,164.875 L 686.5,162.375 C 686.5,162.375 687.875,161 688.5,161 C 689.125,161 691.75,161 691.75,161 C 691.75,161 692.625,158.875 692.75,157.25 C 692.875,155.625 695,156.75 695,156.75 C 695,156.75 696.625,156.25 697,155.75 C 697.375,155.25 699.5,153.75 702.875,151.75 C 706.25,149.75 706.25,150.625 707.75,150.5 C 709.25,150.375 710.625,150.375 711.125,150.125 C 711.625,149.875 713.25,148.75 713.75,148.5 C 714.25,148.25 716.75,147 716.75,147.625 C 716.75,148.25 717,149.625 717.25,150.125 C 717.5,150.625 718.875,149.5 720.5,148.25 C 722.125,147 721.625,147.25 722.375,146.125 C 723.125,145 723.875,145.75 725,145.875 C 726.125,146 725.75,147.75 725.875,148.5 C 726,149.25 727.875,150.625 729,151.375 C 730.125,152.125 733.25,147.625 733.75,150 C 734.25,152.375 737,153.25 737,154 C 737,154.75 735.75,156.25 734.875,157 C 734,157.75 733.25,158.625 732.75,159.75 C 732.25,160.875 732.75,160.5 732.75,161.5 C 732.75,162.5 732,161.75 730.875,162.5 C 729.75,163.25 729.75,163.5 728.875,164.5 C 728,165.5 727.5,165 726.625,165.375 C 725.75,165.75 726,166.875 725.75,167.75 C 725.5,168.625 726.25,168.5 726.25,168.5 C 726.25,168.5 727.5,167.625 728.125,167.25 C 728.75,166.875 731.125,165.625 731.75,165.25 C 732.375,164.875 734,163.5 735.375,162 C 736.75,160.5 738.625,161.25 739.625,161 C 740.625,160.75 741.25,161.375 741.25,161.375 C 741.25,161.375 742.5,161.5 743.625,160.875 C 744.75,160.25 747.625,159.625 748.25,159.625 C 748.875,159.625 750.5,159.875 751.375,160.625 C 752.25,161.375 753.75,162.375 754.625,163 L 756.0625,162.9375 L 756.375,165.5 C 756.375,166 756.25,167.5 757.375,168.625 C 758.5,169.75 758.875,169.25 759.375,169.75 C 759.875,170.25 759.25,173.5 759.125,174.25 C 759,175 758.5,175 758,175.875 C 757.5,176.75 757.875,177.25 757.5,178.75 C 757.125,180.25 756.625,179.625 756.25,181.125 C 755.875,182.625 756.25,182.5 756.75,183.5 C 757.25,184.5 757.25,185.375 757.25,186.875 C 757.25,188.375 757,187.5 756.375,187.625 C 755.75,187.75 755.125,188.25 753.875,188.375 C 752.625,188.5 751.25,189 750.625,188.25 C 750,187.5 749.375,187.375 747.125,187.625 C 744.875,187.875 746.5,188.625 746.25,189.625 C 746,190.625 745.25,190.5 743.75,190.75 C 742.25,191 742.75,191.125 742.625,192.75 C 742.5,194.375 744.375,195.375 745.375,195.75 C 746.375,196.125 746.625,196.375 747,197 C 747.375,197.625 748.5,197.375 750,198.75 C 751.5,200.125 750.25,200.375 749.25,201.375 C 748.25,202.375 749.875,205.875 750.625,206.375 C 751.375,206.875 751.75,207.625 752.125,210.625 C 752.5,213.625 753.625,213.875 753.625,213.875 C 753.625,213.875 754.5,214.375 754.625,217.5 C 754.75,220.625 755.5,223.25 755.5,223.25 C 755.5,223.25 751.37782,230.90628 752.60757,234.2881 C 753.83732,237.66991 755.37451,243.81867 753.52988,245.97073 C 751.68525,248.1228 750.76294,248.1228 750.14806,246.89305 C 749.53319,245.66329 750.4555,245.35586 748.30344,245.04842 C 746.15137,244.74098 746.45881,245.66329 744.92162,245.97073 C 743.38443,246.27817 742.76956,247.81536 741.53981,246.58561 C 740.31006,245.35586 741.53981,245.04842 739.69518,245.66329 C 737.85055,246.27817 738.77287,248.43023 736.46709,248.89139 C 734.1613,249.35255 734.46874,248.58395 733.54643,250.12114 C 732.62411,251.65833 732.16296,252.11949 731.85552,252.88808 C 731.54808,253.65668 730.93321,253.50296 731.54808,254.88643 C 732.16296,256.2699 733.70015,254.27155 733.54643,257.03849 C 733.39271,259.80543 733.08527,261.49634 733.08527,261.49634 C 733.08527,261.49634 732.00924,260.72774 732.00924,262.57237 C 732.00924,264.417 732.77783,264.26328 732.47039,265.80047 C 732.16296,267.33765 731.39436,266.41534 731.85552,268.25997 C 732.31668,270.10459 733.54643,270.10459 733.54643,270.10459 C 733.54643,270.10459 733.85386,268.25997 734.46874,269.79716 C 735.08362,271.33434 734.31502,272.25666 735.39105,272.71781 C 736.46709,273.17897 735.39105,273.02525 737.08196,273.64013 C 737.08196,273.64013 737.7737,273.64013 738.08113,274.56244 C 738.38857,275.48475 739.23403,276.94508 738.38857,278.09797 C 737.54312,279.25087 736.85138,281.40293 737.7737,283.47814 C 738.69601,285.55334 740.31006,285.78392 740.15634,287.01367 C 740.00262,288.24342 739.77204,287.93598 739.61832,289.62689 C 739.4646,291.3178 739.77204,292.39383 739.38774,293.08556 C 739.00345,293.7773 738.77287,294.93019 738.23485,295.16077 C 737.69684,295.39135 736.85138,294.85333 736.31337,294.54589 C 735.77535,294.23846 736.15965,292.54755 735.23733,293.23928 C 734.31502,293.93102 734.1613,294.85333 733.39271,294.39217 C 732.62411,293.93102 732.70097,293.16242 732.00924,293.0087 C 731.3175,292.85499 729.93403,293.31614 730.62577,292.00953 C 731.3175,290.70292 732.16296,290.47234 732.23982,289.62689 C 732.31668,288.78144 732.70097,288.01284 732.23982,287.09053 C 731.77866,286.16822 731.47122,285.16904 730.70263,285.01532 C 729.93403,284.8616 729.93403,284.40045 729.01172,283.55499 C 728.08941,282.70954 728.01255,281.63351 727.32081,281.86409 C 726.62908,282.09467 725.47619,283.93929 723.86214,283.63185 C 722.24809,283.32442 721.63322,284.01615 721.0952,282.94012 C 720.55718,281.86409 720.3266,281.47979 719.71173,281.32607 C 719.09685,281.17235 718.78942,281.09549 718.94314,280.40376 C 719.09685,279.71202 719.17371,280.01946 719.17371,278.78971 C 719.17371,277.55996 719.25057,274.86988 718.32826,273.56327 C 717.40595,272.25666 717.40595,272.1798 717.40595,271.71864 C 717.40595,271.25749 717.8671,271.02691 717.09851,270.71947 C 716.32991,270.41203 715.17702,268.33683 714.94644,267.56823 C 714.71587,266.79964 713.56297,266.79964 713.17868,266.79964 C 712.79438,266.79964 711.87207,264.26328 711.87207,264.26328 C 711.87207,264.26328 707.95224,264.34014 708.0291,263.41782 C 708.10596,262.49551 708.56711,261.5732 708.64397,261.1889 C 708.72083,260.8046 709.33571,258.42196 708.72083,257.57651 C 708.10596,256.73105 707.02992,255.96246 706.41505,255.8856 C 705.80017,255.80874 704.72414,255.5013 704.10926,256.42361 C 703.49439,257.34593 702.95637,257.9608 702.64894,257.80708 C 702.3415,257.65337 701.88034,257.73023 701.72662,256.88477 C 701.5729,256.03932 701.18861,253.88725 702.3415,252.27321 C 703.49439,250.65916 703.11009,252.81122 703.80183,252.04263 C 704.49356,251.27403 704.87786,249.8137 704.87786,249.04511 C 704.87786,248.27651 704.4167,247.50792 705.41587,246.50875 C 706.41505,245.50958 707.18364,245.81701 707.6448,244.8947 C 708.10596,243.97239 708.87455,243.81867 708.33653,242.97321 C 707.79852,242.12776 706.95306,241.35917 706.8762,240.28313 C 706.79934,239.2071 707.18364,239.28396 706.49191,238.59223 C 705.80017,237.90049 705.26216,237.59305 705.1853,236.82446 C 705.10844,236.05587 706.56877,236.3633 705.10844,235.51785 C 703.64811,234.6724 703.18695,235.28727 703.41753,233.9038 C 703.64811,232.52033 703.41753,231.36744 703.87869,230.59885 C 704.33984,229.83025 703.57125,227.37075 703.26381,226.98645 C 702.95637,226.60215 702.18778,225.98728 701.80348,225.44926 C 701.41918,224.91125 701.49604,223.60464 701.18861,223.37406 C 700.88117,223.14348 699.72828,222.22117 699.42084,221.76001 C 699.1134,221.29885 699.1134,221.06828 698.80596,220.29968 C 698.49853,219.53109 697.26878,218.99307 696.96134,218.60877 C 696.6539,218.22448 694.27126,217.6096 694.11754,217.2253 C 693.96382,216.84101 693.88696,215.91869 694.04068,215.1501 C 694.1944,214.3815 694.42498,213.22861 694.1944,212.3063 C 693.96382,211.38399 693.88696,210.46167 693.8101,209.15506 C 693.73324,207.84845 693.19523,207.23358 692.19605,207.23358 C 691.19688,207.23358 690.73572,207.69473 690.65886,207.23358 C 690.582,206.77242 690.04399,205.15837 690.04399,204.77408 C 690.04399,204.38978 688.66052,200.77739 688.35308,200.54681 C 688.04564,200.31623 688.04564,200.23937 687.20019,199.47077 C 686.35474,198.70218 685.73986,198.08731 685.12498,198.01045 C 684.51011,197.93359 684.12581,197.24185 684.04895,196.47326 C 683.97209,195.70466 683.74151,193.78318 683.875,193.625 z"
sodipodi:nodetypes="cscssssssssssssssssssssscccssscsssscssssssssssssssssssssscscsccsccsscscccscsssscsscccccsssscssssssscsssssssssssscssscsss" />
<text class="unit" x="710" y="210"></text>
</g>
<g>
<path class="area asia" id="ural"
style="opacity:1;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1.20000005;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4.32165003;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.58527132;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
d="M 665.79395,265.91507 C 666.85461,265.38474 665.957,264.37843 665.957,262.61067 C 665.957,260.8429 665.42667,260.66612 665.24989,259.42869 C 665.07311,258.19125 664.71956,257.8377 664.54278,256.95381 C 664.36601,256.06993 666.13377,255.18605 666.84088,253.77183 C 667.54799,252.35762 666.84088,251.82729 666.6641,250.58985 C 666.48733,249.35242 664.89634,249.35242 664.89634,249.35242 L 661.71435,247.23109 L 660.30014,246.52399 C 660.30014,246.52399 660.12336,245.10977 660.30014,243.51878 C 660.47692,241.92779 661.3608,241.39746 662.06791,240.16003 C 662.77501,238.92259 662.77501,237.50838 662.77501,236.62449 C 662.77501,235.74061 661.00725,235.38706 661.00725,235.38706 C 661.00725,235.38706 661.00725,232.20508 661.00725,231.32119 C 661.00725,230.43731 661.00725,227.78566 661.00725,226.54822 C 661.00725,225.31078 660.30014,223.01269 659.76981,222.1288 C 659.23948,221.24492 660.30014,219.65393 660.30014,219.65393 C 660.30014,219.65393 659.41626,217.70939 659.23948,216.8255 C 659.0627,215.94162 660.30014,212.05253 660.30014,212.05253 L 662.24468,207.27956 L 663.48212,205.15824 C 663.48212,205.15824 663.48212,201.97626 664.01245,201.26915 C 664.54278,200.56205 664.36601,197.20329 664.36601,197.20329 C 664.36601,197.20329 663.6589,190.48578 662.95179,190.04383 L 663.625,187.75 L 662.625,186.875 L 662.25,184.375 L 659.75,183.75 L 660,180.375 C 660,180.375 661.5,178.875 662.125,178.875 C 662.75,178.875 660.625,176.75 660.375,175.875 C 660.125,175 660.375,174.625 660.875,174.375 C 661.375,174.125 661.125,173.375 661,172.375 C 660.875,171.375 660.875,171.25 660.875,171.25 L 661.75,168.75 L 664.625,169.75 C 664.625,169.75 665.25,170.75 665.875,170.875 C 666.5,171 667.125,170.875 667.625,170.875 C 668.125,170.875 667.875,171 668.625,172.5 C 669.375,174 669.375,172.5 670.5,172.75 C 671.625,173 671.625,174.125 671.5,174.875 C 671.375,175.625 670.75,176.25 670.125,177.375 C 669.5,178.5 669.625,178.125 668.625,179.25 C 667.625,180.375 670.125,181.125 670.125,181.125 C 670.125,181.125 670.375,182.625 671,183.5 C 671.625,184.375 671.125,183.75 672.125,184.25 C 673.125,184.75 672.125,185.125 672.125,186.5 C 672.125,187.875 672.875,186.75 672.875,186.75 C 672.875,186.75 673.375,187.375 673.75,188.625 C 674.125,189.875 673.875,189.125 674.75,191 C 675.625,192.875 676,190.875 676,190.875 C 676,190.875 676.75,191.5 677.25,192.5 C 677.75,193.5 679.625,193.125 679.625,193.125 C 679.625,193.125 680.625,192.125 681.375,191.5 C 682.125,190.875 681.875,191.125 682.875,190.75 C 683.875,190.375 682.92391,190.89674 683.54891,192.64674 C 684.17391,194.39674 683.97209,195.70467 684.04895,196.47326 C 684.12581,197.24185 684.51011,197.93359 685.12498,198.01045 C 685.73986,198.08731 686.35474,198.70218 687.20019,199.47077 C 688.04564,200.23937 688.04564,200.31623 688.35308,200.54681 C 688.66052,200.77739 690.04399,204.38978 690.04399,204.77408 C 690.04399,205.15837 690.582,206.77242 690.65886,207.23358 C 690.73572,207.69473 691.19688,207.23358 692.19605,207.23358 C 693.19523,207.23358 693.73324,207.84845 693.8101,209.15506 C 693.88696,210.46167 693.96382,211.38399 694.1944,212.3063 C 694.42498,213.22861 694.1944,214.3815 694.04068,215.1501 C 693.88696,215.91869 693.96382,216.84101 694.11754,217.2253 C 694.27126,217.6096 696.6539,218.22448 696.96134,218.60877 C 697.26878,218.99307 698.49853,219.53109 698.80596,220.29968 C 699.1134,221.06828 699.1134,221.29885 699.42084,221.76001 C 699.72828,222.22117 700.88117,223.14348 701.18861,223.37406 C 701.49604,223.60464 701.41918,224.91125 701.80348,225.44926 C 702.18778,225.98728 702.95637,226.60215 703.26381,226.98645 C 703.57125,227.37075 704.33984,229.83025 703.87869,230.59885 C 703.41753,231.36744 703.64811,232.52033 703.41753,233.9038 C 703.18695,235.28727 703.64811,234.6724 705.10844,235.51785 C 706.56877,236.3633 705.10844,236.05587 705.1853,236.82446 C 705.26216,237.59305 705.80017,237.90049 706.49191,238.59223 C 707.18364,239.28396 706.79934,239.2071 706.8762,240.28313 C 706.95306,241.35917 707.79852,242.12776 708.33653,242.97321 C 708.87455,243.81867 708.10596,243.97239 707.6448,244.8947 C 707.18364,245.81701 706.41505,245.50958 705.41587,246.50875 C 704.4167,247.50792 704.87786,248.27651 704.87786,249.04511 C 704.87786,249.8137 704.49356,251.27403 703.80183,252.04263 C 703.11009,252.81122 703.49439,250.65916 702.3415,252.27321 C 701.18861,253.88725 701.5729,256.03932 701.72662,256.88477 C 701.88034,257.73023 702.3415,257.65337 702.64894,257.80708 C 702.95637,257.9608 703.49439,257.34593 704.10926,256.42361 C 704.72414,255.5013 705.80017,255.80874 706.41505,255.8856 C 707.02992,255.96246 708.10596,256.73105 708.72083,257.57651 C 709.33571,258.42196 708.72083,260.8046 708.64397,261.1889 C 708.56711,261.5732 708.10596,262.49551 708.0291,263.41782 C 707.95224,264.34014 711.87207,264.26328 711.87207,264.26328 C 711.87207,264.26328 712.79438,266.79964 713.17868,266.79964 C 713.56297,266.79964 714.71587,266.79964 714.94644,267.56823 C 715.17702,268.33683 716.32991,270.41203 717.09851,270.71947 C 717.8671,271.02691 717.40595,271.25749 717.40595,271.71864 C 717.40595,272.1798 717.40595,272.25666 718.32826,273.56327 C 719.25057,274.86988 719.17371,277.55996 719.17371,278.78971 C 719.17371,280.01946 719.09685,279.71202 718.94314,280.40376 L 716.41304,280.60869 C 716.41304,280.60869 717.06522,284.84783 716.41304,285.17391 C 715.76087,285.5 712.6087,285.93478 712.6087,285.93478 C 712.6087,285.93478 712.5,289.19565 712.39131,289.73913 C 712.28261,290.28261 710.76087,291.26087 710.43478,291.80435 C 710.1087,292.34783 709.78261,292.34783 710.1087,293 C 710.43478,293.65217 710.65218,294.52174 710.54348,294.95652 C 710.43478,295.3913 711.08696,296.26087 709.89131,296.47826 C 708.69565,296.69565 708.15218,297.13043 707.5,296.58696 C 706.84783,296.04348 706.63044,294.84783 705.76087,294.41304 C 704.89131,293.97826 704.56522,293.97826 704.45652,293.10869 C 704.34783,292.23913 704.02174,290.93478 704.02174,290.93478 C 704.02174,290.93478 702.93478,289.30435 702.39131,289.30435 C 701.84783,289.30435 699.67391,289.84783 699.23913,289.52174 C 698.80435,289.19565 696.73913,289.41304 695.97826,288.76087 C 695.21739,288.10869 695.1087,287.56522 694.13044,288 C 693.15218,288.43478 691.41304,288.54348 691.41304,288.54348 L 689.78261,287.45652 C 689.78261,287.45652 688.91304,287.13043 688.04348,286.58696 C 687.17391,286.04348 687.06522,284.73913 686.73913,284.19565 C 686.41304,283.65217 685.76087,282.78261 685.32609,282.45652 C 684.89131,282.13043 684.45652,281.47826 683.91304,280.93478 C 683.36957,280.3913 682.71739,280.06522 681.95652,279.84783 C 681.19565,279.63043 680.54348,279.52174 680.32609,278.86956 C 680.1087,278.21739 680.32609,277.67391 679.89131,277.56522 C 679.45652,277.45652 678.36957,277.02174 678.36957,277.02174 C 678.36957,277.02174 678.26087,275.5 677.71739,275.17391 C 677.17391,274.84783 676.08696,273.97826 675.43478,273.65217 C 674.78261,273.32609 674.02174,273.21739 673.80435,272.34783 C 673.58696,271.47826 673.26087,271.15217 673.26087,271.15217 C 673.26087,271.15217 671.95652,270.28261 671.73913,269.73913 C 671.52174,269.19565 670.86957,268.10869 670.86957,268.10869 L 669.45652,266.58696 L 667.82609,266.04348 L 665.79395,265.91507 z"
sodipodi:nodetypes="cssssscccssscssscscccscccccccsssscccssssssscssscsscscssccssssssssssssssssssssssssssssssssssscssssssccscsssssssscssssccssssssscssscscccc" />
<text class="unit" x="675" y="250"></text>
</g>
<g>
<path class="area asia" id="afghanistan"
style="opacity:1;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1.20000005;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4.32165003;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.58527132;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
d="M 707.6087,296.80435 L 707.5,296.58696 C 706.84783,296.04348 706.63044,294.84783 705.76087,294.41304 C 704.89131,293.97826 704.56522,293.97826 704.45652,293.10869 C 704.34783,292.23913 704.02174,290.93478 704.02174,290.93478 C 704.02174,290.93478 702.93478,289.30435 702.39131,289.30435 C 701.84783,289.30435 699.67391,289.84783 699.23913,289.52174 C 698.80435,289.19565 696.73913,289.41304 695.97826,288.76087 C 695.21739,288.10869 695.1087,287.56522 694.13044,288 C 693.15218,288.43478 691.41304,288.54348 691.41304,288.54348 L 689.78261,287.45652 C 689.78261,287.45652 688.91304,287.13043 688.04348,286.58696 C 687.17391,286.04348 687.06522,284.73913 686.73913,284.19565 C 686.41304,283.65217 685.76087,282.78261 685.32609,282.45652 C 684.89131,282.13043 684.45652,281.47826 683.91304,280.93478 C 683.36957,280.3913 682.71739,280.06522 681.95652,279.84783 C 681.19565,279.63043 680.54348,279.52174 680.32609,278.86956 C 680.1087,278.21739 680.32609,277.67391 679.89131,277.56522 C 679.45652,277.45652 678.36957,277.02174 678.36957,277.02174 C 678.36957,277.02174 678.26087,275.5 677.71739,275.17391 C 677.17391,274.84783 676.08696,273.97826 675.43478,273.65217 C 674.78261,273.32609 674.02174,273.21739 673.80435,272.34783 C 673.58696,271.47826 673.26087,271.15217 673.26087,271.15217 C 673.26087,271.15217 671.95652,270.28261 671.73913,269.73913 C 671.52174,269.19565 670.86957,268.10869 670.86957,268.10869 L 669.45652,266.58696 L 667.82609,266.04348 L 665.79395,265.91507 L 665.24661,266.39195 C 664.18595,266.92228 664.71956,266.85331 663.83568,267.20686 C 662.95179,267.56041 659.76981,267.56041 659.59303,268.79785 C 659.41626,270.03529 659.23948,270.38884 658.53237,271.80306 C 657.82527,273.21727 657.64849,273.57082 656.76461,273.7476 C 655.88072,273.92438 655.52717,273.7476 654.64329,273.57082 C 653.7594,273.39405 652.16841,272.68694 652.16841,272.68694 L 650.7542,272.51016 L 649.51676,271.27273 C 649.51676,271.27273 648.80966,271.80306 648.10255,272.15661 C 647.39544,272.51016 645.80445,273.92438 645.80445,273.92438 C 645.80445,273.92438 643.32958,274.63148 642.62247,274.63148 C 641.91536,274.63148 641.91536,274.45471 641.20826,274.63148 C 640.50115,274.80826 639.26371,274.63148 638.73338,275.33859 C 638.20305,276.0457 639.44049,276.7528 636.78884,276.92958 C 634.13719,277.10636 634.13719,277.10636 633.43008,277.10636 C 632.72298,277.10636 631.48554,280.81867 631.48554,280.81867 C 631.48554,280.81867 632.89975,282.0561 631.83909,282.40966 C 630.77843,282.76321 630.07133,283.82387 629.541,284.53098 C 629.01067,285.23808 628.65711,285.76841 628.83389,286.6523 C 629.01067,287.53618 628.83389,288.06651 629.18744,289.12717 C 629.541,290.18783 630.42488,292.30915 630.42488,292.30915 C 630.42488,292.30915 631.13199,292.66271 630.95521,293.72337 C 630.77843,294.78403 630.2481,295.31436 630.77843,296.19824 C 631.30876,297.08212 632.36942,297.43568 632.36942,297.43568 L 633.43008,298.84989 C 633.43008,298.84989 634.8443,298.49634 634.8443,299.73377 C 634.8443,300.97121 635.02107,301.50154 635.19785,302.91575 C 635.19785,302.91575 636.21933,304.31473 636.92643,303.7844 C 637.63354,303.25407 638.87098,302.37018 638.87098,301.30952 C 638.87098,300.24886 638.6942,299.89531 639.57808,299.71853 C 640.46197,299.54176 640.9923,299.54176 641.87618,299.1882 C 642.76006,298.83465 642.40651,298.83465 643.46717,298.83465 C 644.52783,298.83465 644.35105,298.30432 644.88138,299.36498 C 645.41171,300.42564 644.70461,299.71853 645.05816,301.30952 C 645.41171,302.90051 645.58849,302.72374 645.76527,303.7844 C 645.94204,304.84506 645.76527,304.49151 645.41171,305.90572 C 645.05816,307.31993 645.05816,307.49671 644.17428,307.85026 C 643.29039,308.20382 641.52263,309.0877 641.34585,310.50191 C 641.16907,311.91613 641.34585,310.14836 641.52263,312.44646 C 641.6994,314.74455 641.6994,315.45166 642.40651,315.80521 C 643.11362,316.15877 643.29039,315.98199 643.29039,317.04265 C 643.29039,318.10331 642.76006,318.45686 643.9975,318.63364 C 645.23494,318.81042 646.11882,318.45686 646.11882,318.45686 C 646.11882,318.45686 648.41692,318.81042 647.88659,320.22463 C 647.35626,321.63884 646.2956,320.75496 647.0027,322.34595 C 647.70981,323.93694 647.88659,322.6995 648.06336,324.46727 C 648.24014,326.23504 647.53303,326.76537 648.41692,326.76537 C 649.3008,326.76537 650.89179,327.47248 650.89179,327.47248 L 651.06857,329.77057 L 651.42212,331.18479 C 651.42212,331.18479 649.12402,330.3009 649.47758,331.89189 C 649.83113,333.48288 650.18469,333.48288 650.18469,333.48288 C 650.18469,333.48288 652.48278,333.30611 652.48278,334.8971 C 652.48278,336.48809 652.12923,337.01842 652.30601,337.9023 C 652.48278,338.78618 653.36667,338.07908 653.18989,339.31651 C 653.18989,339.31651 653.04348,341.26087 653.96739,341.80435 C 654.89131,342.34783 655.81522,342.40217 656.25,342.23913 C 656.68478,342.07609 657.5,340.66304 658.36957,340.71739 C 659.23913,340.77174 659.78261,340.33696 660.38044,340.88043 C 660.97826,341.42391 661.57609,341.31522 662.11957,341.42391 C 662.66304,341.53261 663.04348,341.69565 663.80435,342.45652 C 664.56522,343.21739 664.89131,343.70652 665.05435,343.97826 C 665.21739,344.25 665.21739,345.01087 665.59783,345.55435 C 665.97826,346.09783 666.84783,346.26087 667.11957,346.31522 C 667.39131,346.36956 669.02174,346.15217 669.51087,346.53261 C 670,346.91304 671.19565,348.54348 671.30435,348.97826 C 671.41304,349.41304 672.6087,349.84783 672.6087,349.84783 C 672.6087,349.84783 675.32609,349.52174 675.76087,348.32609 C 676.19565,347.13043 678.47826,345.60869 678.47826,344.84783 C 678.47826,344.08696 678.47826,342.8913 679.02174,342.78261 C 679.56522,342.67391 681.84783,341.91304 682.6087,342.02174 C 683.36957,342.13043 684.89131,342.45652 685.32609,341.47826 C 685.76087,340.5 685.65217,337.67391 687.17391,337.56522 C 688.69565,337.45652 689.56522,336.58696 690.54348,337.56522 C 691.52174,338.54348 694.23913,340.06522 694.23913,340.06522 C 694.23913,340.06522 697.93478,340.60869 699.13044,339.30435 C 700.32609,338 701.41304,336.36956 701.41304,335.5 C 701.41304,334.63043 701.73913,334.30435 701.73913,333.32609 C 701.73913,332.34783 700.86957,329.63043 700.86957,329.63043 C 700.86957,329.63043 700.1087,328.43478 699.45652,328.21739 C 698.80435,328 697.82609,326.91304 697.82609,326.91304 C 697.82609,326.91304 697.06522,324.84783 697.06522,323.97826 C 697.06522,323.10869 697.5,319.52174 698.04348,319.41304 C 698.58696,319.30435 700.1087,318.32609 700.97826,318.32609 C 701.84783,318.32609 703.26087,318.43478 703.69565,318.10869 C 704.13044,317.78261 704.89131,313.65217 705.32609,312.56522 C 705.76087,311.47826 705.97826,310.60869 706.73913,310.71739 C 707.5,310.82609 708.91304,310.71739 708.80435,308.86956 C 708.69565,307.02174 708.47826,303.43478 707.71739,302.23913 C 706.95652,301.04348 706.41304,300.82609 706.84783,299.73913 C 707.28261,298.65217 707.82609,298.32609 707.82609,298.32609 L 707.6087,296.80435 z"
sodipodi:nodetypes="ccsscssssccssssssscssscscccccssssscccscssssscsssscssccscssssssssssssssscsssscccscsscssssssssssscssssssscssscscssssssssscc" />
<text class="unit" x="660" y="310"></text>
</g>
<g>
<path class="area asia" id="middle_east"
style="opacity:1;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1.20000005;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4.32165003;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.58527132;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
d="M 652.65956,343.02882 C 652.48278,344.08948 653.18989,344.61981 651.77568,344.97337 C 650.36146,345.32692 649.3008,346.38758 649.3008,346.38758 C 649.3008,346.38758 650.89179,347.97857 647.53303,347.27147 C 644.17428,346.56436 644.70461,346.03403 643.29039,345.68048 C 641.87618,345.32692 642.05296,346.03403 640.9923,345.32692 C 639.93164,344.61981 639.57808,344.97337 639.22453,343.91271 C 638.87098,342.85205 636.25,341.375 636.25,341.375 C 636.25,341.375 635.375,341.375 635.25,342.25 C 635.125,343.125 637,343.125 634.875,343.5 C 634.875,343.5 633.625,343.625 633,343.75 C 632.375,343.875 631.75,343.5 631.125,344 C 630.5,344.5 630.5,344.875 629.625,345 C 628.75,345.125 628.875,345 627.875,345.125 C 626.875,345.25 626.125,346.125 626.125,346.125 C 626.125,346.125 626.375,346.625 624.75,346.5 C 623.125,346.375 622.5,346.75 622.5,346.75 C 622.5,346.75 622.5,348.25 621.125,347.25 C 619.75,346.25 619.125,346.25 619.125,345.75 C 619.125,345.25 619.75,344.75 620.25,344.25 C 620.25,344.25 619.77909,342.76366 617.92294,343.11721 C 616.06678,343.47077 614.91773,343.38238 614.47579,344.0011 C 614.03385,344.61981 613.59191,345.85725 612.8848,345.94564 C 612.1777,346.03403 610.14476,346.2108 609.61443,345.59209 C 609.0841,344.97337 608.125,343 605.625,342.25 C 603.125,341.5 601,340.875 600.125,341.5 C 599.25,342.125 600,342.875 598.25,342.375 C 596.5,341.875 594.75,341.125 594.25,341.375 C 593.75,341.625 592.125,341.375 592.125,342 C 592.125,342.625 592.875,343.625 591.875,343.75 C 590.875,343.875 589.625,344.375 589,344.625 C 588.375,344.875 588.75,345.125 586.5,345.125 C 584.25,345.125 582,345.5 581.125,344.75 C 580.25,344 579.875,343.125 579.5,342.625 C 579.125,342.125 578.125,341.625 578.125,341.625 L 576.875,341.625 C 576.875,341.625 575.5,342 575,342.625 C 574.5,343.25 574.5,343.625 574,344 C 573.5,344.375 573.5,344.25 572.875,345 C 572.25,345.75 572.75,346.125 572.25,346.75 C 571.75,347.375 571.375,346.875 571.125,347.75 C 570.875,348.625 571.125,348.25 571.25,349.125 C 571.375,350 572,350 571.25,351 C 571.25,351 572.3125,353.1875 572.75,354.25 C 573.1875,355.3125 574.625,355.875 573.5,356.25 C 572.375,356.625 571,356.6875 571.25,357.6875 C 571.5,358.6875 573.875,361.0625 574.5625,362.25 C 575.25,363.4375 574.75,366.125 575.875,367.125 C 577,368.125 578.75,369 579.375,369 C 580,369 581.875,367.625 582.125,368.875 C 582.375,370.125 581.875,372.5 582.625,372.625 C 583.375,372.75 585.125,373.625 585.5,373 C 585.875,372.375 584.24698,370.60599 585.48441,370.07566 C 586.72185,369.54533 585.48441,367.07046 588.13607,368.30789 C 590.78772,369.54533 590.78772,370.42921 592.37871,370.60599 C 593.9697,370.78277 595.03036,370.25244 596.09102,370.42921 C 597.15168,370.60599 598.38911,371.66665 598.74267,370.42921 C 599.09622,369.19178 599.9801,368.48467 600.86399,368.48467 C 601.74787,368.48467 603.69241,367.95434 604.04597,369.015 C 604.39952,370.07566 603.51564,371.3131 603.69241,372.37376 C 603.86919,373.43442 604.92985,373.78797 604.5763,379.79838 C 604.22274,385.80878 605.63696,388.81399 604.75307,389.34432 C 603.86919,389.87465 602.63175,391.46564 602.98531,392.34952 C 603.33886,393.23341 604.75307,396.23861 604.92985,398.35993 C 605.10663,400.48125 605.81373,401.01158 605.99051,402.07224 C 606.16729,403.1329 604.75307,403.30968 606.16729,405.07744 C 607.5815,406.84521 610.58671,407.90587 610.40993,409.14331 C 610.23315,410.38075 612.35447,410.91108 613.23836,412.14851 C 614.12224,413.38595 615.53645,416.92148 615.89001,418.51247 C 616.24356,420.10346 617.481,417.80537 618.1881,420.45702 C 618.89521,423.10867 621.01653,422.75511 621.54686,424.69966 C 622.07719,426.6442 624,428.5 625,429 C 626,429.5 629.25,430.25 629,432 C 628.75,433.75 631.75,435.5 631.75,436.75 C 631.75,438 631.5,440.5 631.5,440.5 C 631.5,440.5 631,441 632,442 C 633,443 633.75,443.75 634,445.25 C 634.25,446.75 635.25,446.5 635.25,446.5 C 635.25,446.5 645,445.5 648.25,444.5 C 651.5,443.5 655.5,441.75 655.5,440.75 C 655.5,439.75 655.5,440 657,439.5 C 658.5,439 659.5,437 659.5,437 L 661,435.75 C 661,435.75 661.25,433.75 662.5,434 C 663.75,434.25 665.25,435 665.25,434 C 665.25,433 664.5,434.25 667.5,429.25 C 670.5,424.25 671,422.5 670.75,421.5 C 670.5,420.5 670.5,420.5 671.5,419.75 C 672.5,419 673,416.5 673,416.5 L 672.5,414.25 L 673.5,412 C 673.5,412 674.93342,408.08265 673.69599,407.55232 C 672.45855,407.02199 672.63533,406.66843 672.63533,405.25422 C 672.63533,403.84001 671.04434,402.95612 671.04434,402.95612 C 671.04434,402.95612 671.04434,403.48645 669.63012,402.95612 C 668.21591,402.42579 666.44814,400.8348 666.44814,400.8348 C 666.44814,400.8348 664.85715,401.54191 664.68037,400.48125 C 664.5036,399.42059 665.03393,397.8296 664.15004,398.35993 C 663.26616,398.89026 662.2055,398.71348 661.67517,399.42059 C 661.14484,400.1277 662.38228,401.18836 659.2003,401.18836 C 656.01832,401.18836 655.31121,402.24902 654.6041,401.01158 C 653.897,399.77414 653.897,399.77414 653.54344,398.35993 C 653.18989,396.94572 654.25055,397.65282 652.65956,396.59216 C 651.06857,395.5315 650.71502,395.5315 650.71502,394.64762 C 650.71502,393.76374 650.18469,393.23341 650.18469,393.23341 C 650.18469,393.23341 648.94725,393.94051 648.41692,392.5263 C 647.88659,391.11209 649.12402,390.2282 647.70981,388.99077 C 646.2956,387.75333 646.2956,387.57655 645.76527,386.51589 C 645.23494,385.45523 644.70461,384.74812 644.70461,384.74812 C 644.70461,384.74812 643.46717,384.04102 643.9975,383.33391 C 644.52783,382.6268 644.17428,382.45003 645.76527,382.27325 C 647.35626,382.09647 647.70981,381.74292 648.41692,381.21259 C 649.12402,380.68226 648.77047,380.32871 650.00791,380.15193 C 651.24535,379.97515 651.42212,378.91449 651.95245,380.32871 C 652.48278,381.74292 652.30601,382.27325 652.30601,384.21779 C 652.30601,386.16234 652.12923,387.57655 652.65956,388.63721 C 653.18989,389.69787 653.54344,390.2282 653.72022,390.93531 C 653.897,391.64242 654.07377,392.17275 654.07377,392.17275 C 654.07377,392.17275 654.25055,392.34952 655.13443,392.34952 C 656.01832,392.34952 656.19509,391.64242 656.54865,392.5263 C 656.9022,393.41018 656.54865,393.05663 657.07898,393.76374 C 657.60931,394.47084 657.43253,394.8244 658.31641,394.47084 C 659.2003,394.11729 659.37707,393.23341 660.26096,393.58696 C 661.14484,393.94051 661.85195,394.11729 661.85195,394.11729 C 661.85195,394.11729 663.08938,394.29407 663.08938,393.23341 C 663.08938,392.17275 662.91261,391.64242 663.44294,390.93531 C 663.97327,390.2282 664.32682,388.46044 665.38748,390.75853 C 666.44814,393.05663 665.91781,393.41018 666.44814,394.29407 C 666.97847,395.17795 667.33202,395.88506 668.39268,395.5315 C 669.45334,395.17795 669.98367,395.17795 670.69078,394.47084 C 671.39789,393.76374 672.105,393.41018 672.105,393.41018 C 672.105,393.41018 671.92822,391.64242 672.98888,391.28886 C 674.04954,390.93531 675.28698,389.87465 675.28698,389.87465 L 676.52441,388.46044 L 677.58507,387.04622 C 677.58507,387.04622 679.52962,387.04622 680.23672,387.04622 C 680.23672,387.04622 679.12995,382.93424 678.97623,381.39705 C 678.82251,379.85987 676.97788,379.70615 677.59276,378.4764 C 678.20763,377.24664 678.82251,375.70946 677.9002,374.78714 C 676.97788,373.86483 675.44069,372.94252 675.44069,371.71277 C 675.44069,370.48301 675.90185,370.48301 675.13326,369.25326 C 674.36466,368.02351 673.90351,366.64004 673.90351,365.87145 C 673.90351,365.10285 673.93835,364.31087 673.44235,363.10451 C 672.79722,361.53544 671.07031,363.07807 671.444,360.33757 C 672.33828,353.77916 672.30758,352.0955 672.28946,352.11361 C 672.27134,352.13172 672.6087,349.84783 672.6087,349.84783 C 672.6087,349.84783 671.41304,349.41304 671.30435,348.97826 C 671.19565,348.54348 670,346.91304 669.51087,346.53261 C 669.02174,346.15217 667.39131,346.36956 667.11957,346.31522 C 666.84783,346.26087 665.97826,346.09783 665.59783,345.55435 C 665.21739,345.01087 665.21739,344.25 665.05435,343.97826 C 664.89131,343.70652 664.56522,343.21739 663.80435,342.45652 C 663.04348,341.69565 662.66304,341.53261 662.11957,341.42391 C 661.57609,341.31522 660.97826,341.42391 660.38044,340.88043 C 659.78261,340.33696 659.23913,340.77174 658.36957,340.71739 C 657.5,340.66304 656.68478,342.07609 656.25,342.23913 C 655.81522,342.40217 654.89131,342.34783 653.96739,341.80435 C 653.58696,341.69565 652.93478,341.6413 652.93478,341.6413 L 652.65956,343.02882 z"
sodipodi:nodetypes="cscsssscscsssscscsscssssssssssssssccsssssscssssssssssssssssssssssssssssssscsscsssccssssscccsscscsssssssscssscsssssssscssssscsssssscsccccssssssssccssssssssssc" />
<text class="unit" x="615" y="375"></text>
</g>
<g>
<path class="area asia" id="india"
style="opacity:1;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1.20000005;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4.32165003;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.58527132;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
d="M 701.41304,335.5 C 701.41304,336.36956 700.32609,338 699.13044,339.30435 C 697.93478,340.60869 694.23913,340.06522 694.23913,340.06522 C 694.23913,340.06522 691.52174,338.54348 690.54348,337.56522 C 689.56522,336.58696 688.69565,337.45652 687.17391,337.56522 C 685.65217,337.67391 685.76087,340.5 685.32609,341.47826 C 684.89131,342.45652 683.36957,342.13043 682.6087,342.02174 C 681.84783,341.91304 679.56522,342.67391 679.02174,342.78261 C 678.47826,342.8913 678.47826,344.08696 678.47826,344.84783 C 678.47826,345.60869 676.19565,347.13043 675.76087,348.32609 C 675.32609,349.52174 672.55435,350.01087 672.66305,349.84783 C 672.77174,349.68479 672.27134,352.13172 672.28946,352.11361 C 672.30758,352.0955 672.33828,353.77916 671.444,360.33757 C 671.07031,363.07807 672.79722,361.53544 673.44235,363.10451 C 673.93835,364.31087 673.90351,365.10285 673.90351,365.87145 C 673.90351,366.64004 674.36466,368.02351 675.13326,369.25326 C 675.90185,370.48301 675.44069,370.48301 675.44069,371.71277 C 675.44069,372.94252 676.97788,373.86483 677.9002,374.78714 C 678.82251,375.70946 678.20763,377.24664 677.59276,378.4764 C 676.97788,379.70615 678.82251,379.85987 678.97623,381.39705 C 679.12995,382.93424 680.12802,386.88318 680.20955,387.01905 C 680.99818,387.15492 681.65094,386.16234 682.35804,385.98556 C 683.06515,385.80878 685.36325,385.10168 685.7168,386.33911 C 686.07035,387.57655 685.89358,389.5211 686.24713,390.2282 C 686.60068,390.93531 688.89878,391.81919 688.89878,391.81919 C 688.89878,391.81919 689.60589,391.81919 690.31299,391.81919 C 691.0201,391.81919 691.37366,390.93531 691.55043,392.17275 C 691.72721,393.41018 691.37366,393.94051 691.72721,394.64762 C 692.08076,395.35473 694.37886,395.35473 694.37886,395.35473 C 694.37886,395.35473 696.67696,395.35473 695.6163,396.41539 C 694.55564,397.47605 693.84853,397.65282 693.49498,398.35993 C 693.14142,399.06704 692.43432,399.24381 693.3182,399.59737 C 694.20208,399.95092 694.02531,399.06704 694.73241,400.30447 C 695.43952,401.54191 695.26274,401.18836 695.79307,401.89546 C 696.3234,402.60257 695.43952,402.77935 697.03051,402.95612 C 698.6215,403.1329 699.15183,402.95612 699.15183,402.95612 L 699.85894,401.18836 C 699.85894,401.18836 700.74282,399.95092 701.44993,401.36513 C 702.15703,402.77935 701.45881,402.74902 701.28203,404.51678 C 701.10526,406.28455 700.92848,408.03087 700.92848,409.26831 C 700.92848,410.50575 700.17848,411.21285 700.35526,412.45029 C 700.53203,413.68773 700.78203,414.46806 700.78203,415.88227 C 700.78203,417.29648 702.15703,416.74471 702.15703,417.98214 C 702.15703,419.21958 701.98026,419.57313 702.68736,420.28024 C 703.39447,420.98735 704.16224,422.52656 704.16224,423.23367 C 704.16224,423.94077 704.8479,424.2211 704.8479,425.45854 C 704.8479,426.69598 704.79612,427.82986 705.50323,428.18342 C 706.21033,428.53697 707.36566,428.73519 707.36566,430.14941 C 707.36566,431.56362 708.52099,433.08139 708.52099,433.08139 C 708.52099,433.08139 709.08165,434.36172 709.08165,435.06882 C 709.08165,435.77593 710.28876,436.19014 710.28876,436.89725 C 710.28876,437.60436 711.70298,436.89725 712.58686,441.67022 C 713.47074,446.44319 714.00107,443.43799 715.41529,447.50385 C 716.8295,451.56972 717.53661,452.63038 718.42049,452.63038 C 719.30437,452.63038 720.36503,452.27682 720.54181,451.39294 C 720.71859,450.50906 720.54181,450.50906 721.42569,450.1555 C 722.30958,449.80195 722.1328,449.97873 722.30958,448.91807 C 722.48635,447.8574 721.60247,447.68063 721.95602,446.97352 C 722.30958,446.26641 721.42569,444.8522 722.83991,444.8522 C 724.25412,444.8522 725.31478,443.61476 725.31478,443.61476 C 725.31478,443.61476 724.78445,442.90766 724.78445,442.02377 C 724.78445,441.13989 724.07734,443.79154 724.78445,439.90245 C 725.49156,436.01337 725.84511,435.30626 725.66833,433.00816 C 725.49156,430.71007 724.60767,431.77073 725.66833,428.76552 C 726.72899,425.76032 727.25932,427.17453 727.25932,424.87643 C 727.25932,422.57834 728.31998,420.10346 728.49676,418.68925 C 728.67354,417.27504 729.20387,418.3357 729.20387,416.74471 C 729.20387,415.15372 728.31998,414.26983 729.38064,413.20917 C 730.4413,412.14851 731.85552,411.79496 731.85552,410.55752 C 731.85552,409.32009 731.85552,408.78976 731.85552,407.90587 C 731.85552,407.02199 732.20907,405.25422 732.20907,405.25422 C 732.20907,405.25422 734.50717,405.07744 733.97684,404.01678 C 733.44651,402.95612 733.62329,401.71869 733.97684,400.8348 C 734.33039,399.95092 735.375,396.25 736.875,397.25 C 738.375,398.25 738.875,398.25 738.875,398.25 C 738.875,398.25 740.25,396.875 740.125,396.25 C 740,395.625 740.625,394.5 740.625,394.5 C 740.625,394.5 740.875,392.75 741.375,392.625 C 741.875,392.5 744.25,392.375 744.25,392.375 C 744.25,392.375 743.84559,388.54498 744.7679,388.46812 C 745.69022,388.39126 746.15137,388.54498 746.38195,387.54581 C 746.61253,386.54664 747.38112,385.54746 747.91914,385.31688 C 748.45716,385.08631 748.61087,382.70366 748.61087,382.70366 L 750.37864,382.08879 C 750.37864,382.08879 750.8398,378.16896 751.53153,377.47722 C 752.22327,376.78549 753.22244,374.94086 753.22244,374.94086 C 753.22244,374.94086 750.68608,367.94665 750.30178,367.56236 C 749.91748,367.17806 740.54063,367.02434 740.46377,367.33178 C 740.38691,367.63922 739.31088,369.09954 738.84973,369.09954 C 738.38857,369.09954 737.15882,367.79293 737.15882,367.79293 C 737.15882,367.79293 737.54312,364.18054 737.23568,363.79624 C 736.92824,363.41195 734.31502,362.41277 734.00758,362.56649 C 733.70014,362.72021 733.08527,364.71856 732.62411,364.71856 C 732.16296,364.71856 728.93486,362.95079 728.62742,361.72104 C 728.31998,360.49129 729.2423,360.49129 727.85883,360.41443 C 726.47536,360.33757 727.55139,361.7979 725.47618,361.33674 C 723.40098,360.87559 723.1704,360.56815 722.86296,360.26071 C 722.55553,359.95327 721.63321,358.80038 720.55718,358.80038 C 719.48115,358.80038 717.32909,357.64749 717.17537,357.26319 C 717.02165,356.87889 716.63735,356.41774 716.32991,356.03344 C 716.02247,355.64914 716.02247,354.34253 715.56132,353.95824 C 715.10016,353.57394 713.48611,354.88055 713.10182,354.95741 C 712.71752,355.03427 711.41091,354.49625 711.64149,353.72766 C 711.87207,352.95906 712.25636,351.95989 712.71752,351.72931 C 713.17868,351.49873 714.10099,350.73014 714.17785,350.19212 C 714.25471,349.65411 714.56215,349.42353 714.71586,348.19378 C 714.86958,346.96403 714.17785,344.12023 714.02413,343.19792 C 713.87041,342.2756 713.87041,339.4318 713.87041,339.4318 C 713.87041,339.4318 713.94727,338.35577 713.94727,338.04833 C 713.94727,337.7409 714.17785,337.04916 714.17785,337.04916 C 714.17785,337.04916 712.79438,337.43346 712.48694,337.51032 C 712.1795,337.58718 709.10513,337.58718 708.79769,337.58718 C 708.49025,337.58718 706.79934,336.66486 706.72248,336.35743 C 706.64562,336.04999 706.49191,334.28222 706.33819,333.97478 C 706.18447,333.66735 706.10761,332.59131 705.80017,332.89875 L 704.4167,334.8971 L 704.49356,335.05082 C 702.57207,336.04999 701.49604,335.66569 701.41304,335.5 z"
sodipodi:nodetypes="cscscssscsssssssssscsssssssssscsssssssssssccsssssscssscssscssssssssscssssssscsssssccscssscssssssssssssssssscscsssss" />
<text class="unit" x="700" y="385"></text>
</g>
<g>
<path class="area asia" id="siam"
style="opacity:1;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1.20000005;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4.32165003;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.58527132;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
d="M 788.375,388 C 786.5,387.625 788.75,386.125 785.125,385.625 C 781.5,385.125 781.75,394.75 782,395.75 C 782.25,396.75 783.25,397.25 785.5,397 C 787.75,396.75 787.25,397 787.75,399.25 C 788.25,401.5 787.5,403.25 787.5,403.25 C 787.5,403.25 788.25,403 789.5,402.5 C 790.75,402 792.5,403.25 793.25,406.75 C 794,410.25 794.25,410.25 795.5,412.25 C 796.75,414.25 796.5,415.25 797,418 C 797.5,420.75 796.5,424 796.25,425.75 C 796,427.5 792.75,431 792.75,432 C 792.75,433 789.5,435.5 789.25,436.5 C 789,437.5 787.75,435.75 787.75,435.75 C 787.75,435.75 786.5,432.25 786,431.25 C 785.5,430.25 784.75,429.75 784.75,429.75 L 785,427.5 C 785,427.5 783.75,426.75 782.75,426.75 C 781.75,426.75 781.75,425.75 781.75,425.75 L 779.5,424 C 779.5,424 779.25,423.75 778,423.5 C 776.75,423.25 777,423.5 776.75,424.5 C 776.5,425.5 776,425.5 774.75,426.75 C 773.5,428 775.25,427.5 776.5,428.75 C 777.75,430 777.25,429.5 777.25,431.5 C 777.25,433.5 777.25,434.25 779,439 C 780.75,443.75 780.5,440.75 780.5,440.75 C 780.5,440.75 781,441.5 781,442.75 C 781,444 780,444 780,444 C 780,444 778.25,444.25 776.75,444 C 775.25,443.75 776.25,443.5 773.75,440.25 C 771.25,437 771.25,436.75 770.25,436 C 769.25,435.25 770.5,434.25 770.25,433 C 770,431.75 770.25,430 769.5,429 C 768.75,428 768.75,427.5 768.25,425.75 C 767.75,424 768.25,422.5 768.5,421 C 768.75,419.5 767.25,419.25 767,417.25 C 766.75,415.25 766.5,415.5 766.5,415.5 C 766.5,415.5 762,412.75 761.25,413.75 C 760.5,414.75 759.25,411.75 759.25,411.75 C 759.25,411.75 756,412.75 755.75,411.25 C 755.5,409.75 749,403 748.75,401.25 C 748.5,399.5 748.5,397.75 747.25,397.5 C 746,397.25 745.125,394.5 745.125,394.5 L 744.25,392.375 C 743.97689,389.00231 744.46372,388.75909 744.7679,388.46812 C 745.69022,388.39126 746.15137,388.54498 746.38195,387.54581 C 746.61253,386.54664 747.38112,385.54746 747.91914,385.31688 C 748.45716,385.08631 748.61087,382.70366 748.61087,382.70366 L 750.37864,382.08879 C 750.37864,382.08879 750.8398,378.16896 751.53153,377.47722 C 752.22327,376.78549 753.22244,374.94086 753.22244,374.94086 C 753.91418,374.01855 754.29847,374.55656 754.29847,374.55656 L 755.52822,373.63425 C 755.52822,373.63425 756.21996,372.48136 756.5274,371.94334 C 756.83483,371.40533 756.98855,371.32847 757.52657,371.48219 C 758.06458,371.63591 758.37202,372.55822 759.14062,372.94252 C 759.90921,373.32681 760.29351,373.48053 760.67781,373.78797 C 761.0621,374.09541 761.21582,375.55574 761.52326,376.47805 C 761.8307,377.40036 762.06127,377.16978 762.98359,377.7078 C 763.9059,378.24582 763.36789,378.39954 763.29103,378.70697 C 763.21417,379.01441 764.6745,381.01276 765.44309,380.9359 C 766.21168,380.85904 767.67201,382.93424 768.21003,383.54912 C 768.74805,384.16399 770.51581,384.39457 771.51499,384.24085 C 772.51416,384.08713 772.20672,382.78052 772.20672,382.31937 C 772.20672,381.85821 772.89845,380.39788 773.28275,380.32102 C 773.66705,380.24416 775.58854,380.32102 776.43399,380.1673 C 777.27944,380.01358 776.89515,379.47557 776.89515,379.47557 C 776.89515,379.47557 777.97118,378.55325 778.04804,378.0921 C 778.1249,377.63094 778.81663,377.09293 779.12407,376.86235 C 779.43151,376.63177 780.2001,376.78549 780.5844,376.86235 C 780.9687,376.93921 781.58357,378.0921 781.58357,378.0921 C 781.58357,378.0921 783.0439,378.24582 783.4282,378.24582 C 783.81249,378.24582 784.11993,379.01441 784.11993,379.78301 C 784.11993,380.5516 784.11993,380.70532 784.11993,381.24333 C 784.11993,381.78135 784.96539,381.85821 784.96539,381.85821 C 784.96539,381.85821 785.5034,381.93507 785.65712,382.39623 C 785.81084,382.85738 785.81084,383.0111 786.272,383.0111 C 786.73315,383.0111 786.73315,383.85656 786.73315,383.85656 C 786.73315,383.85656 788.27034,385.24003 787.65547,385.54746 C 787.04059,385.8549 788.375,388 788.375,388 z"
sodipodi:nodetypes="csssscssssssscsccsccsssssscscsssssssscscssscccssccsc" />
<text class="unit" x="760" y="410"></text>
</g>
<g>
<path class="area asia" id="china"
style="opacity:1;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1.20000005;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4.32165003;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.58527132;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
d="M 802.125,324 C 801.125,324.5 802,324.5 802,325.125 C 802,325.75 802.875,325.375 802.875,326.25 C 802.875,327.125 803.125,327 803.625,327.25 C 804.125,327.5 803.75,328 803.75,329.375 C 803.75,330.75 803.875,330 804.875,330.25 C 805.875,330.5 805.375,330.625 805.625,332.125 C 805.875,333.625 806.625,332.625 807.125,332.625 C 807.625,332.625 807.625,332.875 808,333.625 C 808.375,334.375 808,334.125 806.75,334.875 C 805.5,335.625 808,335.75 809.375,336.125 C 810.75,336.5 810.25,338.125 810,339.5 C 809.75,340.875 810.625,340.625 811.5,342.125 C 812.375,343.625 811.625,344.5 810.625,346.875 C 809.625,349.25 811.125,348.5 812.25,348.625 C 813.375,348.75 813.125,352 812.375,353.625 C 811.625,355.25 812.5,355.125 812.5,357.25 C 812.5,359.375 812.125,359.75 811.875,361.375 C 811.625,363 811.5,362.75 810.875,363.75 C 810.25,364.75 810.625,365.75 810.625,367.375 C 810.625,369 809,369 807.875,369.25 C 806.75,369.5 807.25,369.375 807.375,370.5 C 807.5,371.625 806.875,371.875 805.875,372.875 C 804.875,373.875 805.375,373.125 804.75,374.75 C 804.125,376.375 804.625,375.625 803.25,376.875 C 801.875,378.125 801.875,378.75 801.875,378.75 C 801.875,378.75 801.875,379.875 801.625,381.125 C 801.375,382.375 800.5,381.375 800,381.25 C 799.5,381.125 798.625,381.875 798.25,382.625 C 797.875,383.375 796.375,383.75 795.125,385 C 793.875,386.25 795.25,385.25 795.625,386.125 C 796,387 794.75,387.625 794.125,388.125 C 793.5,388.625 793,389.875 792,390.5 C 791,391.125 790.20581,388.41919 788.59597,387.9779 C 788.86114,387.91161 787.04059,385.8549 787.65547,385.54746 C 788.27034,385.24003 786.73315,383.85656 786.73315,383.85656 C 786.73315,383.85656 786.73315,383.0111 786.272,383.0111 C 785.81084,383.0111 785.81084,382.85738 785.65712,382.39623 C 785.5034,381.93507 784.96539,381.85821 784.96539,381.85821 C 784.96539,381.85821 784.11993,381.78135 784.11993,381.24333 C 784.11993,380.70532 784.11993,380.5516 784.11993,379.78301 C 784.11993,379.01441 783.81249,378.24582 783.4282,378.24582 C 783.0439,378.24582 781.58357,378.0921 781.58357,378.0921 C 781.58357,378.0921 780.9687,376.93921 780.5844,376.86235 C 780.2001,376.78549 779.43151,376.63177 779.12407,376.86235 C 778.81663,377.09293 778.1249,377.63094 778.04804,378.0921 C 777.97118,378.55325 776.89515,379.47557 776.89515,379.47557 C 776.89515,379.47557 777.27944,380.01358 776.43399,380.1673 C 775.58854,380.32102 773.66705,380.24416 773.28275,380.32102 C 772.89845,380.39788 772.20672,381.85821 772.20672,382.31937 C 772.20672,382.78052 772.51416,384.08713 771.51499,384.24085 C 770.51581,384.39457 768.74805,384.16399 768.21003,383.54912 C 767.67201,382.93424 766.21168,380.85904 765.44309,380.9359 C 764.6745,381.01276 763.21417,379.01441 763.29103,378.70697 C 763.36789,378.39954 763.9059,378.24582 762.98359,377.7078 C 762.06127,377.16978 761.8307,377.40036 761.52326,376.47805 C 761.21582,375.55574 761.0621,374.09541 760.67781,373.78797 C 760.29351,373.48053 759.90921,373.32681 759.14062,372.94252 C 758.37202,372.55822 758.06458,371.63591 757.52657,371.48219 C 756.98855,371.32847 756.83483,371.40533 756.5274,371.94334 C 756.21996,372.48136 755.52822,373.63425 755.52822,373.63425 L 754.29847,374.55656 C 754.29847,374.55656 753.91418,374.01855 753.22244,374.94086 C 753.22244,374.94086 750.68608,367.94665 750.30178,367.56236 C 749.91748,367.17806 740.54063,367.02434 740.46377,367.33178 C 740.38691,367.63922 739.31088,369.09954 738.84973,369.09954 C 738.38857,369.09954 737.15882,367.79293 737.15882,367.79293 C 737.15882,367.79293 737.54312,364.18054 737.23568,363.79624 C 736.92824,363.41195 734.31502,362.41277 734.00758,362.56649 C 733.70014,362.72021 733.08527,364.71856 732.62411,364.71856 C 732.16296,364.71856 728.93486,362.95079 728.62742,361.72104 C 728.31998,360.49129 729.2423,360.49129 727.85883,360.41443 C 726.47536,360.33757 727.55139,361.7979 725.47618,361.33674 C 723.40098,360.87559 723.1704,360.56815 722.86296,360.26071 C 722.55553,359.95327 721.63321,358.80038 720.55718,358.80038 C 719.48115,358.80038 717.32909,357.64749 717.17537,357.26319 C 717.02165,356.87889 716.63735,356.41774 716.32991,356.03344 C 716.02247,355.64914 716.02247,354.34253 715.56132,353.95824 C 715.10016,353.57394 713.48611,354.88055 713.10182,354.95741 C 712.71752,355.03427 711.41091,354.49625 711.64149,353.72766 C 711.87207,352.95906 712.25636,351.95989 712.71752,351.72931 C 713.17868,351.49873 714.10099,350.73014 714.17785,350.19212 C 714.25471,349.65411 714.56215,349.42353 714.71586,348.19378 C 714.86958,346.96403 714.17785,344.12023 714.02413,343.19792 C 713.87041,342.2756 713.87041,339.4318 713.87041,339.4318 C 713.87041,339.4318 713.94727,338.35577 713.94727,338.04833 C 713.94727,337.7409 714.17785,337.04916 714.17785,337.04916 C 714.17785,337.04916 712.79438,337.43346 712.48694,337.51032 C 712.1795,337.58718 709.10513,337.58718 708.79769,337.58718 C 708.49025,337.58718 706.79934,336.66486 706.72248,336.35743 C 706.64562,336.04999 706.49191,334.28222 706.33819,333.97478 C 706.18447,333.66735 706.10761,332.59131 705.80017,332.89875 L 704.4167,334.8971 L 704.49356,335.05082 C 702.57207,336.04999 701.49604,335.66569 701.41304,335.5 C 701.41304,334.63043 701.73913,334.30435 701.73913,333.32609 C 701.73913,332.34783 700.86957,329.63043 700.86957,329.63043 C 700.86957,329.63043 700.1087,328.43478 699.45652,328.21739 C 698.80435,328 697.82609,326.91304 697.82609,326.91304 C 697.82609,326.91304 697.06522,324.84783 697.06522,323.97826 C 697.06522,323.10869 697.5,319.52174 698.04348,319.41304 C 698.58696,319.30435 700.1087,318.32609 700.97826,318.32609 C 701.84783,318.32609 703.26087,318.43478 703.69565,318.10869 C 704.13044,317.78261 704.89131,313.65217 705.32609,312.56522 C 705.76087,311.47826 705.97826,310.60869 706.73913,310.71739 C 707.5,310.82609 708.91304,310.71739 708.80435,308.86956 C 708.69565,307.02174 708.47826,303.43478 707.71739,302.23913 C 706.95652,301.04348 706.41304,300.82609 706.84783,299.73913 C 707.28261,298.65217 707.82609,298.32609 707.82609,298.32609 C 707.7377,298.14931 707.6087,296.80435 707.55435,296.69565 C 708.15218,297.13043 708.69565,296.69565 709.89131,296.47826 C 711.08696,296.26087 710.43478,295.3913 710.54348,294.95652 C 710.65218,294.52174 710.43478,293.65217 710.1087,293 C 709.78261,292.34783 710.1087,292.34783 710.43478,291.80435 C 710.76087,291.26087 712.28261,290.28261 712.39131,289.73913 C 712.5,289.19565 712.6087,285.93478 712.6087,285.93478 C 712.6087,285.93478 715.76087,285.5 716.41304,285.17391 C 717.06522,284.84783 716.41304,280.60869 716.41304,280.60869 L 718.94314,280.40376 C 718.78942,281.09549 719.09685,281.17235 719.71173,281.32607 C 720.3266,281.47979 720.55718,281.86409 721.0952,282.94012 C 721.63322,284.01615 722.24809,283.32442 723.86214,283.63185 C 725.47619,283.93929 726.62908,282.09467 727.32081,281.86409 C 728.01255,281.63351 728.08941,282.70954 729.01172,283.55499 C 729.93403,284.40045 729.93403,284.8616 730.70263,285.01532 C 731.47122,285.16904 731.77866,286.16822 732.23982,287.09053 C 732.70097,288.01284 732.31668,288.78144 732.23982,289.62689 C 732.16296,290.47234 731.3175,290.70292 730.62577,292.00953 C 729.93403,293.31614 731.3175,292.85499 732.00924,293.0087 C 732.70097,293.16242 732.62411,293.93102 733.39271,294.39217 C 734.1613,294.85333 734.31502,293.93102 735.23733,293.23928 C 736.15965,292.54755 735.77535,294.23846 736.31337,294.54589 C 736.85138,294.85333 737.69684,295.39135 738.23485,295.16077 C 738.23485,295.16077 739.36853,297.06688 739.98725,297.24366 C 740.60597,297.42044 741.1363,303.69601 741.1363,303.69601 C 741.1363,303.69601 742.10857,303.07729 742.37373,303.87279 C 742.6389,304.66828 742.99245,305.99411 742.99245,305.99411 C 742.99245,305.99411 744.31828,306.7896 744.31828,307.23154 C 744.31828,307.67348 744.22989,308.73414 744.58344,308.91092 C 744.937,309.0877 746.35121,309.70642 746.35121,309.70642 L 746.70476,311.03224 C 746.70476,311.03224 746.88154,312.18129 747.41187,312.26968 C 747.9422,312.35807 748.20736,312.18129 748.91447,312.53484 C 749.62158,312.8884 749.79835,312.97679 750.41707,312.97679 C 751.03579,312.97679 751.30096,312.8884 751.30096,313.41873 C 751.30096,313.94906 751.21257,314.83294 751.56612,314.92133 C 751.91967,315.00972 752.80356,315.09811 752.80356,315.09811 C 752.80356,315.09811 753.06872,315.62844 753.42228,315.98199 C 753.77583,316.33554 754.83649,316.42393 755.01327,316.77748 C 755.19004,317.13104 755.27843,317.74976 755.36682,318.10331 C 755.45521,318.45686 755.10166,319.25236 756.42748,319.34075 C 757.75331,319.42913 765.44309,318.28009 765.44309,318.28009 L 765.97342,319.16397 C 765.97342,319.16397 766.50375,319.6943 767.12247,319.87108 C 767.74119,320.04785 768.89024,319.60591 769.86251,320.04785 C 770.83478,320.4898 771.63028,320.75496 772.07222,320.75496 C 772.51416,320.75496 773.39804,320.75496 773.39804,320.75496 C 773.39804,320.75496 773.66321,321.9924 774.10515,322.08079 C 774.54709,322.16917 776.31486,321.46207 776.31486,321.46207 C 776.31486,321.46207 776.66841,320.93174 777.19874,321.02013 C 777.72907,321.10851 777.81746,319.87108 778.78973,319.78269 C 779.762,319.6943 780.29233,319.6943 780.64589,319.6943 C 780.99944,319.6943 783.12076,318.63364 783.20915,319.51752 C 783.29754,320.40141 783.38593,320.93174 783.82787,321.46207 C 784.26981,321.9924 785.50725,322.34595 785.94919,322.34595 C 786.39113,322.34595 787.3634,321.72723 787.98212,321.37368 C 788.60084,321.02013 788.866,320.66657 789.6615,320.84335 C 790.45699,321.02013 791.25249,321.55046 791.60604,321.72723 C 791.9596,321.90401 792.13637,321.90401 793.19703,322.25756 C 794.25769,322.61112 795.67191,322.52273 795.67191,322.52273 C 795.67191,322.52273 798.23517,322.78789 799.20744,323.05306 C 800.88682,324.29049 801.59393,324.20211 802.125,324 z"
sodipodi:nodetypes="csssssssssssssccscsssssccssssssssscscsccccsssscscssssssssssssssssscssscccssssssssssssscssscssscsscscssssssscssssssssssssssssssssssssc" />
<text class="unit" x="745" y="345"></text>
</g>
<g>
<path class="area asia" id="mongolia"
style="opacity:1;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1.20000005;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4.32165003;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.58527132;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
d="M 737.08196,273.64013 C 737.08196,273.64013 737.7737,273.64013 738.08113,274.56244 C 738.38857,275.48475 739.23403,276.94508 738.38857,278.09797 C 737.54312,279.25087 736.85138,281.40293 737.7737,283.47814 C 738.69601,285.55334 740.31006,285.78392 740.15634,287.01367 C 740.00262,288.24342 739.77204,287.93598 739.61832,289.62689 C 739.4646,291.3178 739.77204,292.39383 739.38137,293.10528 C 739.1875,294.0625 738.23485,295.16077 738.23485,295.16077 C 738.23485,295.16077 739.36853,297.06688 739.98725,297.24366 C 740.60597,297.42044 741.1363,303.69601 741.1363,303.69601 C 741.1363,303.69601 742.10857,303.07729 742.37373,303.87279 C 742.6389,304.66828 742.99245,305.99411 742.99245,305.99411 C 742.99245,305.99411 744.31828,306.7896 744.31828,307.23154 C 744.31828,307.67348 744.22989,308.73414 744.58344,308.91092 C 744.937,309.0877 746.35121,309.70642 746.35121,309.70642 L 746.70476,311.03224 C 746.70476,311.03224 746.88154,312.18129 747.41187,312.26968 C 747.9422,312.35807 748.20736,312.18129 748.91447,312.53484 C 749.62158,312.8884 749.79835,312.97679 750.41707,312.97679 C 751.03579,312.97679 751.30096,312.8884 751.30096,313.41873 C 751.30096,313.94906 751.21257,314.83294 751.56612,314.92133 C 751.91967,315.00972 752.80356,315.09811 752.80356,315.09811 C 752.80356,315.09811 753.06872,315.62844 753.42228,315.98199 C 753.77583,316.33554 754.83649,316.42393 755.01327,316.77748 C 755.19004,317.13104 755.27843,317.74976 755.36682,318.10331 C 755.45521,318.45686 755.10166,319.25236 756.42748,319.34075 C 757.75331,319.42913 765.44309,318.28009 765.44309,318.28009 L 765.97342,319.16397 C 765.97342,319.16397 766.50375,319.6943 767.12247,319.87108 C 767.74119,320.04785 768.89024,319.60591 769.86251,320.04785 C 770.83478,320.4898 771.63028,320.75496 772.07222,320.75496 C 772.51416,320.75496 773.39804,320.75496 773.39804,320.75496 C 773.39804,320.75496 773.66321,321.9924 774.10515,322.08079 C 774.54709,322.16917 776.31486,321.46207 776.31486,321.46207 C 776.31486,321.46207 776.66841,320.93174 777.19874,321.02013 C 777.72907,321.10851 777.81746,319.87108 778.78973,319.78269 C 779.762,319.6943 780.29233,319.6943 780.64589,319.6943 C 780.99944,319.6943 783.12076,318.63364 783.20915,319.51752 C 783.29754,320.40141 783.38593,320.93174 783.82787,321.46207 C 784.26981,321.9924 785.50725,322.34595 785.94919,322.34595 C 786.39113,322.34595 787.3634,321.72723 787.98212,321.37368 C 788.60084,321.02013 788.866,320.66657 789.6615,320.84335 C 790.45699,321.02013 791.25249,321.55046 791.60604,321.72723 C 791.9596,321.90401 792.13637,321.90401 793.19703,322.25756 C 794.25769,322.61112 795.67191,322.52273 795.67191,322.52273 C 795.67191,322.52273 798.23517,322.78789 799.13497,323.12028 C 799.5625,323.375 801.4375,324.0625 802.125,324 C 803.125,323.5 803,324.5 804.375,323 C 805.75,321.5 804.875,322.75 806.25,320.75 C 807.625,318.75 809.875,318.5 807.375,318.25 C 804.875,318 805.25,318.75 804.375,317.875 C 803.5,317 804.25,316.75 802.75,316.875 C 801.25,317 801.25,317.25 800.875,316.75 C 800.5,316.25 801.625,315.875 799.75,315.875 C 797.875,315.875 798.5,316.625 797,315.75 C 795.5,314.875 795.375,315.25 795.5,314.25 C 795.625,313.25 795.625,312.375 796.625,312.125 C 797.625,311.875 797.375,312.125 798,311.625 C 798.625,311.125 799,311 799,310.25 C 799,309.5 800.375,309.125 800.75,308.125 C 801.125,307.125 801.125,305.625 801.875,305.625 C 802.625,305.625 802.625,305.5 803.25,307.25 C 803.875,309 802.375,309.75 804.125,309.875 C 805.875,310 806.875,310.125 807.625,310 C 808.375,309.875 807.875,310.125 808.75,311.125 C 809.625,312.125 809.5,312.625 810.375,313.25 C 811.25,313.875 811.375,315 811.375,315 C 811.375,315 811.375,315.625 812.5,315.375 C 813.625,315.125 815.375,315.125 815.375,315.125 C 815.375,315.125 814.875,314.5 815.5,316.625 C 816.125,318.75 816.5,318.25 816.5,320.125 C 816.5,322 815.625,323 816.5,323.625 C 817.375,324.25 818.375,324.5 818.375,324.5 C 818.375,324.5 821,322 821.25,320.875 C 821.5,319.75 822.25,319.375 822.125,318.5 C 822,317.625 821.75,318.25 822.25,317.125 C 822.75,316 822.75,314 822.75,314 C 822.75,314 822.25,313.875 821.75,313.625 C 821.25,313.375 821,313.5 820.75,312.125 C 820.5,310.75 821,310.75 820.125,310.375 C 819.25,310 818.875,309.375 818.625,308.625 C 818.375,307.875 818.5,307.375 817.875,307.25 C 817.25,307.125 817.375,307 816,306 C 814.625,305 814.875,305.5 813.875,304.875 C 812.875,304.25 812.625,303.875 812.625,303 C 812.625,302.125 812.375,301.875 813,301.25 C 813.625,300.625 814,302 814.125,299.75 C 814.25,297.5 813.5,297.375 814.625,295.125 C 815.75,292.875 815.5,292 816.375,291.25 C 816.9375,290.8125 816.8125,291.25 818.46875,289.5 C 818.56449,289.55387 818.56449,289.64226 817.59222,289.46549 C 816.61994,289.28871 816.44317,287.43255 815.20573,287.34417 C 813.96829,287.25578 813.1728,286.54867 812.90763,285.5764 C 812.64247,284.60413 811.75859,281.7757 809.81404,281.86409 C 807.8695,281.95248 807.51594,279.38921 805.74818,277.26789 C 803.98041,275.14657 807.8695,275.32335 807.8695,274.61624 C 807.8695,273.90914 807.60433,274.52785 807.33917,272.58331 C 807.33917,272.58331 806.4375,273.5 805.3125,273.1875 C 804.1875,272.875 803.4375,272.5 803.3125,271.625 C 803.1875,270.75 802.0625,270.3125 802.0625,270.3125 C 802.0625,270.3125 800.5,270.25 800.4375,269.75 C 800.375,269.25 800.125,268.875 799.9375,267.3125 C 799.75,265.75 799.875,265.375 799.25,265.375 C 798.625,265.375 797.875,265.5 797.625,265.25 C 797.375,265 797.0625,264.8125 797,264 C 796.9375,263.1875 796.875,262.375 796.5,262.25 C 796.125,262.125 795.5,261.8125 795.125,261.8125 C 794.75,261.8125 793.5,262.0625 793.375,261.5625 C 793.25,261.0625 793.125,260.375 793.25,259.875 C 793.375,259.375 793.5625,259.0625 793.5625,258.625 C 793.5625,258.1875 793.3125,257.1875 793.3125,257.1875 C 793.3125,257.1875 792.875,257.1875 792.4375,256.8125 C 792,256.4375 792,255.875 791.375,255.75 C 790.75,255.625 790.375,255.4375 789.8125,256.0625 C 789.25,256.6875 788.875,257.25 788.5625,257.375 C 788.25,257.5 786.375,257.6875 785.75,257.6875 C 785.125,257.6875 784.1875,257.3125 784.1875,257.3125 L 783.75,256.8125 C 783.75,256.8125 782.875,256.5 782.875,256.875 C 782.875,257.25 783.1875,257.625 782.875,258.125 C 782.5625,258.625 782.75,258.625 782.0625,259.1875 C 781.375,259.75 780.9375,259.875 780.875,260.3125 C 780.8125,260.75 780.8125,260.9375 781.1875,261.375 C 781.5625,261.8125 781.75,261.6875 781.9375,262.25 C 782.125,262.8125 782.1875,262.9375 782.1875,263.5625 C 782.1875,264.1875 782.25,265.0625 781.8125,265.4375 C 781.375,265.8125 781.25,265.75 780.9375,266.5625 C 780.625,267.375 780.375,267.5 780.1875,267.875 C 780,268.25 779.75,268.4375 780.125,269.1875 C 780.5,269.9375 780.875,270.4375 781.125,270.75 C 781.375,271.0625 781.6875,271.5625 781.4375,272.375 C 781.1875,273.1875 781.125,273.625 780.625,274.125 C 780.125,274.625 779.6875,275.6875 779.3125,276.125 C 778.9375,276.5625 779.0625,277.0625 778.4375,276.75 C 777.8125,276.4375 777.375,275.875 777.3125,275.625 C 777.25,275.375 777.1875,275.125 777,274.375 C 776.8125,273.625 776.5625,272.6875 776.4375,272.4375 C 776.3125,272.1875 774.72387,271.34587 774.32612,272.14137 C 773.92837,272.93686 774.06096,273.68816 773.44224,273.95333 C 772.82352,274.21849 772.69094,274.21849 772.42577,274.61624 C 772.16061,275.01399 771.40931,276.11884 770.83478,275.98626 C 770.26026,275.85368 770.12767,275.7211 769.1996,275.58851 C 768.27152,275.45593 767.52022,275.14657 767.12247,275.7211 C 766.72472,276.29562 765.70826,277.13531 765.00115,276.87015 C 764.29404,276.60498 763.36597,276.07465 763.145,275.85368 C 762.92402,275.63271 761.55401,275.01399 760.8469,275.10238 C 760.13979,275.19077 760.13979,275.36754 758.76977,275.27915 C 757.39975,275.19077 756.07393,274.66044 755.19004,274.66044 C 754.30616,274.66044 752.00806,273.51139 751.30096,273.64397 C 750.59385,273.77655 750.72643,273.77655 749.97513,274.08591 C 749.22383,274.39527 748.6935,273.90914 748.38414,274.43947 C 748.07478,274.9698 748.07478,275.7211 747.1467,275.58851 C 746.21863,275.45593 745.73249,275.45593 745.37894,275.10238 C 745.02538,274.74882 744.76022,274.21849 744.76022,274.21849 C 744.76022,274.21849 744.18569,273.99752 743.83214,274.08591 C 743.47859,274.1743 742.55051,274.08591 742.55051,274.08591 C 742.55051,274.08591 741.75502,273.29042 741.57824,273.24622 C 741.40146,273.20203 740.65016,272.76009 740.3408,272.80428 C 740.03144,272.84848 738.70562,273.06945 738.70562,273.06945 C 738.70562,273.06945 736.76107,273.20203 737.08196,273.64013 z"
sodipodi:nodetypes="csssssssscscsssccsssscsssssccsscscsccsssssccssssssssssscscssscssscsssssssssssccsssssscccscssssssc" />
<text class="unit" x="765" y="304"></text>
</g>
<g>
<path class="area asia" id="irkutsk"
style="opacity:1;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1.20000005;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4.32165003;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.58527132;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
d="M 807.42756,271.61104 C 807.69273,273.55558 807.33917,272.58331 807.33917,272.58331 C 807.33917,272.58331 806.4375,273.5 805.3125,273.1875 C 804.1875,272.875 803.4375,272.5 803.3125,271.625 C 803.1875,270.75 802.0625,270.3125 802.0625,270.3125 C 802.0625,270.3125 800.5,270.25 800.4375,269.75 C 800.375,269.25 800.125,268.875 799.9375,267.3125 C 799.75,265.75 799.875,265.375 799.25,265.375 C 798.625,265.375 797.875,265.5 797.625,265.25 C 797.375,265 797.0625,264.8125 797,264 C 796.9375,263.1875 796.875,262.375 796.5,262.25 C 796.125,262.125 795.5,261.8125 795.125,261.8125 C 794.75,261.8125 793.5,262.0625 793.375,261.5625 C 793.25,261.0625 793.125,260.375 793.25,259.875 C 793.375,259.375 793.5625,259.0625 793.5625,258.625 C 793.5625,258.1875 793.3125,257.1875 793.3125,257.1875 C 793.3125,257.1875 792.875,257.1875 792.4375,256.8125 C 792,256.4375 792,255.875 791.375,255.75 C 790.75,255.625 790.375,255.4375 789.8125,256.0625 C 789.25,256.6875 788.875,257.25 788.5625,257.375 C 788.25,257.5 786.375,257.6875 785.75,257.6875 C 785.125,257.6875 784.1875,257.3125 784.1875,257.3125 L 783.75,256.8125 C 783.75,256.8125 782.875,256.5 782.875,256.875 C 782.875,257.25 783.1875,257.625 782.875,258.125 C 782.5625,258.625 782.75,258.625 782.0625,259.1875 C 781.375,259.75 780.9375,259.875 780.875,260.3125 C 780.8125,260.75 780.8125,260.9375 781.1875,261.375 C 781.5625,261.8125 781.75,261.6875 781.9375,262.25 C 782.125,262.8125 782.1875,262.9375 782.1875,263.5625 C 782.1875,264.1875 782.25,265.0625 781.8125,265.4375 C 781.375,265.8125 781.25,265.75 780.9375,266.5625 C 780.625,267.375 780.375,267.5 780.1875,267.875 C 780,268.25 779.75,268.4375 780.125,269.1875 C 780.5,269.9375 780.875,270.4375 781.125,270.75 C 781.375,271.0625 781.6875,271.5625 781.4375,272.375 C 781.1875,273.1875 781.125,273.625 780.625,274.125 C 780.125,274.625 779.6875,275.6875 779.3125,276.125 C 778.9375,276.5625 779.0625,277.0625 778.4375,276.75 C 777.8125,276.4375 777.375,275.875 777.3125,275.625 C 777.25,275.375 777.1875,275.125 777,274.375 C 776.8125,273.625 776.5625,272.6875 776.4375,272.4375 C 776.3125,272.1875 774.72387,271.34587 774.32612,272.14137 C 773.92837,272.93686 774.06096,273.68816 773.44224,273.95333 C 772.82352,274.21849 772.69094,274.21849 772.42577,274.61624 C 772.16061,275.01399 771.40931,276.11884 770.83478,275.98626 C 770.26026,275.85368 770.12767,275.7211 769.1996,275.58851 C 768.27152,275.45593 767.52022,275.14657 767.12247,275.7211 C 766.72472,276.29562 765.70826,277.13531 765.00115,276.87015 C 764.29404,276.60498 763.36597,276.07465 763.145,275.85368 C 762.92402,275.63271 761.55401,275.01399 760.8469,275.10238 C 760.13979,275.19077 760.13979,275.36754 758.76977,275.27915 C 757.39975,275.19077 756.07393,274.66044 755.19004,274.66044 C 754.30616,274.66044 752.00806,273.51139 751.30096,273.64397 C 750.59385,273.77655 750.72643,273.77655 749.97513,274.08591 C 749.22383,274.39527 748.6935,273.90914 748.38414,274.43947 C 748.07478,274.9698 748.07478,275.7211 747.1467,275.58851 C 746.21863,275.45593 745.73249,275.45593 745.37894,275.10238 C 745.02538,274.74882 744.76022,274.21849 744.76022,274.21849 C 744.76022,274.21849 744.18569,273.99752 743.83214,274.08591 C 743.47859,274.1743 742.55051,274.08591 742.55051,274.08591 C 742.55051,274.08591 741.75502,273.29042 741.57824,273.24622 C 741.40146,273.20203 740.65016,272.76009 740.3408,272.80428 C 740.03144,272.84848 738.70562,273.06945 738.70562,273.06945 C 738.70562,273.06945 736.76107,273.20203 737.08196,273.64013 C 735.39105,273.02525 736.46709,273.17897 735.39105,272.71781 C 734.31502,272.25666 735.08362,271.33434 734.46874,269.79716 C 733.85386,268.25997 733.54643,270.10459 733.54643,270.10459 C 733.54643,270.10459 732.31668,270.10459 731.85552,268.25997 C 731.39436,266.41534 732.16296,267.33765 732.47039,265.80047 C 732.77783,264.26328 732.00924,264.417 732.00924,262.57237 C 732.00924,260.72774 733.08527,261.49634 733.08527,261.49634 C 733.08527,261.49634 733.39271,259.80543 733.54643,257.03849 C 733.70015,254.27155 732.16296,256.2699 731.54808,254.88643 C 730.93321,253.50296 731.54808,253.65668 731.85552,252.88808 C 732.16296,252.11949 732.62411,251.65833 733.54643,250.12114 C 734.46874,248.58395 734.1613,249.35255 736.46709,248.89139 C 738.77287,248.43023 737.85055,246.27817 739.69518,245.66329 C 741.53981,245.04842 740.31006,245.35586 741.53981,246.58561 C 742.76956,247.81536 743.38443,246.27817 744.92162,245.97073 C 746.45881,245.66329 746.15137,244.74098 748.30344,245.04842 C 750.4555,245.35586 749.53319,245.66329 750.14806,246.89305 C 750.76294,248.1228 751.68525,248.1228 753.52988,245.97073 C 755.37451,243.81867 753.83732,237.66991 752.60757,234.2881 C 751.37782,230.90628 755.5,223.25 755.5,223.25 C 755.5,223.25 760.375,221.75 761.625,221 C 762.875,220.25 762.75,220.125 763.125,218.375 C 763.5,216.625 763.625,213.75 765,213.5 C 766.375,213.25 766.125,215.25 766.125,215.25 C 766.25,216 767.625,215.75 769.125,216 C 770.183,216.17633 769.74851,215.2333 769.53218,214.31133 C 769.4418,213.92616 769.3895,213.54467 769.5,213.25 C 769.875,212.25 781.79494,213.36312 781.79494,213.36312 C 781.35299,214.42378 781.44138,215.83799 781.70655,216.27993 C 781.97171,216.72188 783.12076,219.19675 782.76721,221.22968 C 782.41365,223.26261 781.88332,229.36141 782.14849,230.51046 C 782.41365,231.65951 782.50204,234.48793 783.29754,235.28343 C 784.09303,236.07892 784.44659,236.69764 784.80014,237.40475 C 785.15369,238.11186 788.77762,239.2609 789.39633,240.76351 C 790.01505,242.26611 789.6615,242.61966 790.72216,243.23838 C 791.78282,243.8571 792.75509,245.18292 792.84348,246.42036 C 792.93187,247.6578 792.93187,249.51395 793.81575,249.24879 C 794.69963,248.98362 795.67191,247.74619 796.02546,247.39263 C 796.37901,247.03908 797.70484,246.59714 798.85389,247.03908 C 800.00294,247.48102 800.2681,247.48102 801.41715,247.30424 C 802.5662,247.12747 803.62686,247.48102 803.62686,247.48102 C 803.62686,247.48102 804.51074,248.80685 804.59913,249.51395 C 804.68752,250.22106 804.15719,250.75139 805.74818,250.663 C 807.33917,250.57461 807.69272,250.48622 807.8695,252.25399 C 808.04627,254.02176 809.01855,254.99403 809.01855,254.99403 C 809.01855,254.99403 809.28371,256.85019 809.19532,257.29213 C 809.10694,257.73407 808.48822,258.79473 808.75338,259.94378 C 809.01855,261.09283 809.63727,262.24187 809.10694,263.03737 C 808.5766,263.83286 807.69272,265.60063 807.69272,266.30774 C 807.69272,267.01485 807.51594,268.871 807.69272,269.48972 C 807.8695,270.10844 807.16239,269.6665 807.42756,271.61104 z"
sodipodi:nodetypes="ccsscsssssssssscsssssccssssssssssssssssssssssssssssssssssscscssccsscssscsssssssssssscssscssscsssssssssssscssscsssssc" />
<text class="unit" x="758" y="260"></text>
</g>
<g>
<path class="area europe" id="ukraine"
style="opacity:1;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1.20000005;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4.32165003;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.58527132;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
d="M 580.44628,188.26083 C 579.20884,188.17244 578.32496,187.90727 578.32496,187.90727 C 578.32496,187.90727 579.25,191.875 578.625,192.375 C 578,192.875 579.375,196 578.625,196.5 C 577.875,197 577.5,202.75 577.5,205.375 C 577.5,208 578.875,212.125 578.5,214.25 C 578.125,216.375 579.125,219.375 579.125,219.375 C 579.125,219.375 579.75,220 579.75,221.625 C 579.75,223.25 580.625,224.125 580.625,224.125 C 580.625,224.125 581.0625,224.25 581.125,224.8125 C 581.1875,225.375 581.1875,226.25 580.9375,226.5 C 580.6875,226.75 580.125,227.1875 580.125,228.125 C 580.125,229.0625 580.375,229.4375 580.0625,229.875 C 579.75,230.3125 579.5,230.4375 579.375,231.5 C 579.25,232.5625 579.0625,234 579.3125,234.5625 C 579.5625,235.125 580,237.25 579.125,237 C 578.25,236.75 580.125,237.375 580.625,237.75 C 581.125,238.125 579.5,238.875 578.625,239.125 C 577.75,239.375 577,239.375 575.75,239.25 C 574.5,239.125 574.875,238.875 573.875,239 C 572.875,239.125 570.75,239.75 569.625,239.5 C 568.5,239.25 567.875,239.375 567.125,239.875 C 566.375,240.375 566.875,241.375 566.875,242.5 C 566.875,243.625 567.625,242.875 567.75,244.125 C 567.875,245.375 568.125,245.125 568.5,245.875 C 568.875,246.625 569.5,246 569.5,246 C 569.5,246 571.625,247.75 571.375,248.875 C 571.125,250 571.875,250.75 571.875,251.75 C 571.875,252.75 570.75,252 569.125,251.875 C 567.5,251.75 568.5,251 567.875,249.25 C 567.25,247.5 567.375,248.625 566.375,248.25 C 565.375,247.875 565.375,248.5 565.125,249.625 C 564.875,250.75 564.75,250.875 563.875,251.625 C 563,252.375 563.75,253 563.5,254.125 C 563.25,255.25 562.875,255.125 562.125,256 C 561.375,256.875 562.375,257.375 562.75,258.625 C 563.125,259.875 563.625,260.375 563.625,260.375 C 564.125,260.875 564,261.375 564,262.125 C 564,262.875 563.5,263.25 563,263.625 L 564.25,263.75 C 564.25,263.75 565.3125,264.6875 565.375,265 C 565.4375,265.3125 566.5625,266.25 566.5625,266.25 C 566.5625,266.25 569.0625,267.625 569.9375,267.625 C 570.8125,267.625 571.8125,267.0625 572.3125,267 C 572.8125,266.9375 572.25,267.875 572.25,268.1875 C 572.25,268.5 572.9375,271.4375 573.25,272.0625 C 573.5625,272.6875 573.625,280.125 573.6875,281.5 C 573.75,282.875 575.0625,284.25 575.4375,284.5625 C 575.8125,284.875 576.0625,285.625 576.0625,285.9375 C 576.0625,286.25 575.25,287.3125 575.1875,287.75 C 575.125,288.1875 575.3125,288.9375 575.25,289.5 C 575.1875,290.0625 574.75,290.3125 574.25,290.75 C 573.75,291.1875 573.875,292.1875 573.5625,292.8125 C 573.25,293.4375 572.75,293.4375 572.125,293.6875 C 571.5,293.9375 569.8125,297.3125 569.625,297.6875 C 569.4375,298.0625 567.6875,298.6875 567.125,298.6875 C 566.5625,298.6875 565.0625,299.125 564.875,299.625 C 564.6875,300.125 564.6875,301.125 564.6875,301.125 L 567,303.3125 C 567.25,303.25 567.5,302.5 567.75,302.125 C 568,301.75 568.9375,301.6875 568.9375,301.6875 C 568.9375,301.6875 570.5625,301.625 571.25,302.0625 C 571.9375,302.5 571.5,302.8125 571.5625,304.125 C 571.625,305.4375 571.625,305.1875 571.8125,305.8125 C 572,306.4375 572.3125,306.1875 573.4375,306.5 C 574.5625,306.8125 574.1875,306.6875 575.0625,306.8125 C 575.9375,306.9375 575.75,307.5625 576.1875,308.5 C 576.625,309.4375 576.6875,310.125 577.125,310.9375 C 577.5625,311.75 577.5625,312.25 577.5625,312.5 C 577.5625,312.75 577.25,314 577.1875,314.6875 C 577.125,315.375 576.8125,315.5 576.6875,315.8125 C 576.5625,316.125 576.625,317 576.625,317.3125 C 576.625,317.625 577.0625,318.0625 577.4375,318.5 C 577.8125,318.9375 577.8125,319.3125 577.8125,320 C 577.8125,320.6875 577.25,321.75 577.25,322.375 C 577.25,323 578.1875,323.4375 578.0625,324 C 577.9375,324.5625 580.25,326.25 580.25,326.25 L 581.25,325.5 C 581.25,325.5 582.25,325.375 583,324.625 C 583.75,323.875 583.5,323.5 583.5,323.5 C 583.5,323.5 583.75,321.125 584.125,320.625 C 584.5,320.125 585,320.375 586.625,320 C 588.25,319.625 587.625,320 588.375,320 C 589.125,320 589.625,320.5 590.375,320.75 C 591.125,321 591,321.5 591.25,322.5 C 591.5,323.5 591.75,324.125 591.875,325 C 592,325.875 592,326 592.375,326.875 C 592.75,327.75 593.125,327.625 594.125,328.25 C 595.125,328.875 594.5,328.75 596,329.5 C 597.5,330.25 596.75,328.375 597.25,327.5 C 597.75,326.625 598,326.625 598.5,326.375 C 599,326.125 599.375,325.875 600,325.375 C 600.625,324.875 600.375,324.875 600.75,324 C 601.125,323.125 600.625,322.75 600.375,322.25 C 600.125,321.75 599.625,322.375 599,322.375 C 598.375,322.375 597.625,321.625 597,320.875 C 596.375,320.125 596.875,319.875 596.875,319.875 C 596.875,319.875 597.75,318.875 598.625,318.25 C 599.5,317.625 599.375,317.75 600.125,317.5 C 600.875,317.25 601.375,317.25 602,317 C 602.625,316.75 603.125,316.625 604.375,316.375 C 605.625,316.125 605.125,316.375 606.5,316.375 C 607.875,316.375 608.125,316.125 608.125,316.125 C 608.125,316.125 608.5,315.625 609.125,315.25 C 609.75,314.875 610,315.125 610.375,315.625 C 610.75,316.125 610.125,316.875 610.125,316.875 C 610.125,316.875 609.5,317.5 608.625,318.375 C 607.75,319.25 607.625,318.75 606,319 C 604.375,319.25 605.5,319.25 605.375,320.125 C 605.25,321 604.625,321.75 604.625,321.75 L 604.125,323 L 605,323.5 C 605,323.5 605.375,324.25 605.625,325.25 C 605.875,326.25 606.375,325.625 607,325.875 C 607.625,326.125 606.875,326.875 606.875,327.625 C 606.875,328.375 608,329 608.625,329.625 C 609.25,330.25 609,330.5 609.625,331.625 C 610.25,332.75 610.125,331.25 610.625,331 C 611.125,330.75 611.375,330.75 612.5,330.625 C 613.625,330.5 613.75,330.75 613.75,330.75 L 613.125,332.25 C 613.125,332.25 613.875,332.75 614.75,333.625 C 615.625,334.5 615,335.25 616.125,335.25 C 617.25,335.25 616.875,335.75 617.375,336.125 C 617.875,336.5 618.375,337.125 619.25,337.875 C 620.125,338.625 620,338.375 620.75,338.5 C 621.5,338.625 621.125,338.625 621.5,341.5 C 621.875,344.375 622.25,341.75 622.25,341.75 C 622.25,341.75 622,342.5 621.625,343 C 621.25,343.5 620.75,343.75 620.25,344.25 C 619.75,344.75 619.125,345.25 619.125,345.75 C 619.125,346.25 619.75,346.25 621.125,347.25 C 622.5,348.25 622.5,346.75 622.5,346.75 C 622.5,346.75 623.125,346.375 624.75,346.5 C 626.375,346.625 626.125,346.125 626.125,346.125 C 626.125,346.125 626.875,345.25 627.875,345.125 C 628.875,345 628.75,345.125 629.625,345 C 630.5,344.875 630.5,344.5 631.125,344 C 631.75,343.5 632.375,343.875 633,343.75 C 633.625,343.625 634.875,343.5 634.875,343.5 C 637,343.125 635.125,343.125 635.25,342.25 C 635.375,341.375 636.25,341.375 636.25,341.375 C 636.25,341.375 637,341.5 637.5,341 C 638,340.5 638.25,340.25 638.25,339.625 C 638.25,339 637.625,338 637.625,338 C 637.625,338 636.75,337.375 636.75,336.625 C 636.75,335.875 636.875,335.625 637.125,335.125 C 637.375,334.625 637.125,333.75 637.125,332.25 C 637.125,330.75 637.125,330.625 637.25,329.625 C 637.375,328.625 638,329.125 638.75,328.625 C 639.5,328.125 638.5,326.875 638.5,326.875 C 638.5,326.875 638,326.875 636.875,326.5 C 635.75,326.125 635.25,326.125 634.5,324.625 C 633.75,323.125 634.125,323.5 634,322.875 C 633.875,322.25 633.25,322 633.5,320.5 C 633.75,319 632.50702,317.57298 632.50702,317.57298 L 631.44636,317.21943 C 631.44636,317.21943 630.73925,316.86587 630.56247,316.15877 C 630.3857,315.45166 630.73925,315.27488 630.91603,314.21422 C 631.0928,313.15356 630.3857,312.0929 630.3857,312.0929 L 629.14826,313.15356 C 629.14826,313.15356 630.91603,310.32514 631.0928,309.44125 C 631.26958,308.55737 631.0928,308.38059 631.44636,307.67348 C 631.79991,306.96638 632.15346,307.14315 633.21412,306.7896 C 634.27478,306.43605 634.62834,305.72894 634.62834,305.72894 C 634.62834,305.72894 635.15867,304.31473 634.98189,302.90051 C 634.80511,301.4863 634.62834,300.95597 634.62834,299.71853 C 634.62834,298.4811 633.21412,298.83465 633.21412,298.83465 L 632.15346,297.42044 C 632.15346,297.42044 631.0928,297.06688 630.56247,296.183 C 630.03214,295.29912 630.56247,294.76879 630.73925,293.70813 C 630.91603,292.64747 630.20892,292.29391 630.20892,292.29391 C 630.20892,292.29391 629.32504,290.17259 628.97148,289.11193 C 628.61793,288.05127 628.79471,287.52094 628.61793,286.63706 C 628.44115,285.75317 628.79471,285.22284 629.32504,284.51574 C 629.85537,283.80863 630.56247,282.74797 631.62313,282.39442 C 632.68379,282.04086 631.26958,280.80343 631.26958,280.80343 C 631.26958,280.80343 632.50702,277.09112 633.21412,277.09112 C 633.92123,277.09112 633.92123,277.09112 636.57288,276.91434 C 639.22453,276.73756 637.98709,276.03046 638.51742,275.32335 C 639.04775,274.61624 640.28519,274.79302 640.9923,274.61624 C 641.6994,274.43947 641.6994,274.61624 642.40651,274.61624 C 643.11362,274.61624 645.58849,273.90914 645.58849,273.90914 C 645.58849,273.90914 647.17948,272.49492 647.88659,272.14137 C 648.5937,271.78782 649.3008,271.25749 649.3008,271.25749 L 650.53824,272.49492 L 651.95245,272.6717 C 651.95245,272.6717 653.54344,273.37881 654.42733,273.55558 C 655.31121,273.73236 655.66476,273.90914 656.54865,273.73236 C 657.43253,273.55558 657.60931,273.20203 658.31641,271.78782 C 659.02352,270.3736 659.2003,270.02005 659.37707,268.78261 C 659.55385,267.54517 662.73583,267.54517 663.61972,267.19162 C 664.5036,266.83807 664.68038,266.48451 665.74104,265.95418 C 666.8017,265.42385 665.74104,264.36319 665.74104,262.59543 C 665.74104,260.82766 665.21071,260.65088 665.03393,259.41345 C 664.85715,258.17601 664.5036,257.82246 664.32682,256.93857 C 664.15005,256.05469 665.91781,255.17081 666.62492,253.75659 C 667.33203,252.34238 666.62492,251.81205 666.44814,250.57461 C 666.27137,249.33718 664.68038,249.33718 664.68038,249.33718 L 661.49839,247.21585 L 660.08418,246.50875 C 660.08418,246.50875 659.9074,245.09453 660.08418,243.50354 C 660.26096,241.91255 661.14484,241.38222 661.85195,240.14479 C 662.55905,238.90735 662.55905,237.49314 662.55905,236.60925 C 662.55905,235.72537 660.79129,235.37182 660.79129,235.37182 C 660.79129,235.37182 660.79129,232.18984 660.79129,231.30595 C 660.79129,230.42207 660.79129,227.77042 660.79129,226.53298 C 660.79129,225.29554 660.08418,222.99745 659.55385,222.11356 C 659.02352,221.22968 660.08418,219.63869 660.08418,219.63869 C 660.08418,219.63869 659.2003,217.69415 659.02352,216.81026 C 658.84674,215.92638 660.08418,212.03729 660.08418,212.03729 L 662.02872,207.26432 L 663.26616,205.143 C 663.26616,205.143 663.26616,201.96102 663.79649,201.25391 C 664.32682,200.54681 664.15005,197.18805 664.15005,197.18805 C 664.15005,197.18805 663.44294,190.47054 662.73583,190.02859 C 662.02873,189.58665 661.76356,189.05632 661.05645,188.17244 C 660.34935,187.28855 659.02352,188.08405 658.05125,188.08405 C 657.07898,188.08405 656.10671,187.99566 655.04605,187.81888 C 653.98539,187.64211 653.72022,187.37694 652.3944,187.11178 C 651.06857,186.84661 650.18469,187.99566 649.83113,188.70277 C 649.47758,189.40988 649.12403,189.67504 648.06337,191.26603 C 647.00271,192.85702 646.91432,191.61958 645.58849,192.2383 C 644.26267,192.85702 644.35106,191.35442 643.37878,191.00087 C 642.40651,190.64731 641.16908,191.35442 640.10841,191.35442 C 639.04775,191.35442 639.13614,191.08925 637.81032,190.20537 C 636.48449,189.32149 636.48449,189.67504 634.62834,191.44281 C 632.77218,193.21057 632.94896,192.59186 631.62313,192.32669 C 630.29731,192.06153 629.67859,193.56413 629.67859,193.56413 C 629.67859,193.56413 627.2921,195.86222 626.67339,196.21578 C 626.05467,196.56933 623.57979,197.27644 622.69591,198.51388 C 621.81203,199.75131 622.51913,199.30937 620.83976,200.19325 C 619.16038,201.07714 619.51393,200.28164 619.51393,199.22098 C 619.51393,198.16032 619.51393,198.77904 620.13265,197.36483 C 620.75137,195.95061 620.13265,196.74611 619.51393,196.48094 C 618.89521,196.21578 618.45327,195.68545 617.83455,194.80156 C 617.21583,193.91768 617.21583,193.56413 616.50873,192.85702 C 615.80162,192.14991 614.38741,193.65252 613.14997,193.47574 C 611.91253,193.29896 612.00092,193.47574 611.11704,193.56413 C 610.23315,193.65252 611.02865,194.35962 611.29381,195.15512 C 611.55898,195.95061 611.73576,195.86222 612.35447,196.56933 C 612.97319,197.27644 612.26609,198.51388 612.26609,199.22098 C 612.26609,199.92809 612.08931,200.01648 612.35447,200.81197 C 612.61964,201.60747 613.06158,201.3423 613.94546,201.96102 C 614.82935,202.57974 614.47579,202.93329 614.29902,203.72879 C 614.12224,204.52428 613.32675,203.6404 612.35447,203.55201 C 611.3822,203.46362 610.76348,204.87784 609.79121,205.40817 C 608.81894,205.9385 608.377,205.76172 607.40473,205.85011 C 606.43245,205.9385 606.60923,206.46883 605.01824,207.97143 C 603.42725,209.47403 603.33886,208.59015 602.18981,208.59015 C 601.04077,208.59015 601.48271,207.97143 600.15688,207.08754 C 598.83106,206.20366 599.53816,207.17593 598.56589,207.52949 C 597.59362,207.88304 598.65428,208.59015 599.273,209.56242 C 599.89172,210.53469 600.06849,211.2418 600.24527,211.59535 C 600.42205,211.9489 600.24527,212.03729 598.83106,213.53989 C 597.41684,215.0425 597.7704,213.62828 596.70974,213.62828 C 595.64908,213.62828 595.91424,213.71667 594.85358,213.80506 C 593.79292,213.89345 594.14647,213.36312 594.14647,212.65601 C 594.14647,211.9489 594.14647,212.03729 594.14647,210.53469 C 594.14647,209.03209 593.61614,209.38564 593.35098,209.03209 C 593.08581,208.67854 593.35098,208.23659 593.1742,207.79465 C 592.99743,207.35271 592.29032,206.73399 591.84838,206.73399 C 591.40644,206.73399 590.169,206.82238 589.90383,206.46883 C 589.63867,206.11527 589.10834,205.58494 588.31284,205.23139 C 587.51735,204.87784 586.63346,203.99395 586.27991,203.6404 C 585.92636,203.28685 586.27991,202.8449 586.3683,202.40296 C 586.45669,201.96102 588.04768,201.3423 589.3735,201.51908 C 590.69933,201.69586 593.52776,202.04941 595.73746,202.04941 C 597.94717,202.04941 599.00783,202.04941 599.89172,202.04941 C 600.7756,202.04941 602.89692,201.60747 604.04597,201.3423 C 605.19502,201.07714 606.69762,200.28164 607.22795,199.66292 C 607.75828,199.04421 607.40473,198.86743 607.31634,197.71838 C 607.22795,196.56933 606.8744,196.12739 606.0789,195.42028 C 605.28341,194.71318 605.37179,194.27123 602.01304,192.06153 C 598.65428,189.85182 598.83106,191.35442 597.50523,191.44281 C 596.17941,191.5312 596.35618,190.91248 595.38391,190.64731 C 594.41164,190.38215 592.37871,190.47054 590.69933,190.47054 C 589.01995,190.47054 588.93156,190.7357 587.60574,190.38215 C 586.27991,190.02859 586.89863,189.58665 585.74958,189.49826 C 584.60053,189.40988 584.33537,189.67504 583.3631,189.32149 C 582.39082,188.96793 582.12566,188.4376 581.41855,188.17244 C 580.71145,187.90727 581.68372,188.34922 580.44628,188.26083 z"
sodipodi:nodetypes="ccsssscscssssssccsssssssscsssssssssscsccscsssssssssssssssccscsssssssssssssssccscsssssssssssssssscssssscsscssscccsssssssccsssssscsssscscsssscscsscssssscssssccssccssscssccsscsssscssssscscccssssssssssscccssscssscscccscssssssssssssscssssssssssssssssssssssssssssssssssssssssssssssssssssc" />
<text class="unit" x="600" y="260"></text>
</g>
<g>
<path class="area europe" id="southern_europe"
style="opacity:1;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1.20000005;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4.32165003;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.58527132;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
d="M 567,303.3125 C 567.25,303.25 567.5,302.5 567.75,302.125 C 568,301.75 568.9375,301.6875 568.9375,301.6875 C 568.9375,301.6875 570.5625,301.625 571.25,302.0625 C 571.9375,302.5 571.5,302.8125 571.5625,304.125 C 571.625,305.4375 571.625,305.1875 571.8125,305.8125 C 572,306.4375 572.3125,306.1875 573.4375,306.5 C 574.5625,306.8125 574.1875,306.6875 575.0625,306.8125 C 575.9375,306.9375 575.75,307.5625 576.1875,308.5 C 576.625,309.4375 576.6875,310.125 577.125,310.9375 C 577.5625,311.75 577.5625,312.25 577.5625,312.5 C 577.5625,312.75 577.25,314 577.1875,314.6875 C 577.125,315.375 576.8125,315.5 576.6875,315.8125 C 576.5625,316.125 576.625,317 576.625,317.3125 C 576.625,317.625 577.0625,318.0625 577.4375,318.5 C 577.8125,318.9375 577.8125,319.3125 577.8125,320 C 577.8125,320.6875 577.25,321.75 577.25,322.375 C 577.25,323 578.1875,323.4375 578.0625,324 C 577.9375,324.5625 580.25,326.25 580.25,326.25 C 580.25,326.25 579.125,327 579.625,327.75 C 580.125,328.5 580.75,329.125 580.5,329.625 C 580.25,330.125 580.375,330.125 579.75,330.625 C 579.125,331.125 578.75,331 578.75,332.125 C 578.75,333.25 579.625,333.5 579,334.5 C 578.375,335.5 578.625,335.375 578.125,336.125 C 577.625,336.875 577.375,337.5 577.125,338.25 C 576.875,339 577.625,339.125 576.75,339.875 C 575.875,340.625 575.625,340.25 575.375,341.125 C 575.125,342 575.5,342 575,342.625 C 574.5,343.25 574.5,343.625 574,344 C 573.5,344.375 573.5,344.25 572.875,345 C 572.25,345.75 572.75,346.125 572.25,346.75 C 571.75,347.375 571.375,346.875 571.125,347.75 C 570.875,348.625 571.125,348.25 571.25,349.125 C 571.375,350 572,350 571.25,351 C 570.5,352 570.125,352.625 569.625,353 C 569.125,353.375 569.125,352.875 568.75,354 C 568.375,355.125 569,355.5 568.25,355.75 C 567.5,356 567.125,356 566.375,356.125 C 565.625,356.25 565.25,356 564.75,356.125 C 564.25,356.25 564,356.125 563.625,356.75 C 563.25,357.375 562.875,357.25 563.375,358 C 563.875,358.75 563.75,358.75 564.25,359.25 C 564.75,359.75 565.125,360.125 565.625,360.625 C 566.125,361.125 566.5,361.375 566.625,362 C 566.75,362.625 566.75,363.125 566.75,363.125 C 566.75,363.125 567.375,365 566.875,365.25 C 566.375,365.5 565.875,365.5 565.75,366.25 C 565.625,367 565.5,366.75 565.75,367.625 C 566,368.5 565.75,368.5 566.25,369 C 566.75,369.5 566.875,369.5 567.625,370.25 C 568.375,371 569.25,371.125 568.75,371.75 C 568.25,372.375 567.625,372.5 566.875,372.25 C 566.125,372 565.75,372.625 565.25,371.5 C 564.75,370.375 564.5,370.125 564.5,370.125 C 564.5,370.125 563.75,370.25 563.75,370.875 C 563.75,371.5 565.625,371.625 563.25,371.625 C 560.875,371.625 561.125,372.375 560.5,371.625 C 559.875,370.875 560.375,370.625 559.5,370.375 C 558.625,370.125 558.5,370.875 558.125,370.125 C 557.75,369.375 557.625,369.375 557.625,368.25 C 557.625,367.125 558.25,367.125 557.875,365.625 C 557.5,364.125 557.25,364.5 557,363.625 C 556.75,362.75 557,362.75 557,361.625 C 557,360.5 556.625,360 556.625,360 C 556.625,360 556.25,359.75 556,358.5 C 555.75,357.25 555.875,357.125 555.625,356 C 555.375,354.875 555.5,354.5 554.875,354.5 C 554.25,354.5 554.625,355 553.625,354.25 C 552.625,353.5 553.125,353.25 552.25,352.875 C 551.375,352.5 551.25,353.25 551,352 C 550.75,350.75 550.75,351.375 550.75,349.875 C 550.75,348.375 550.75,347.875 550.75,347.25 C 550.75,346.625 551.25,346.625 550.5,345.625 C 549.75,344.625 549.875,344.375 549,344.25 C 548.125,344.125 548.375,345.125 547.625,343.875 C 546.875,342.625 546.75,341.875 545.75,341.625 C 544.75,341.375 544.875,342 544.375,341.375 C 543.875,340.75 544.125,340.625 543.5,340 C 542.875,339.375 543.625,339.125 542,339.125 C 540.375,339.125 540.375,338.25 539.5,338.625 C 538.625,339 538.375,339.625 538.375,340.25 C 538.375,340.875 538.375,340.875 538.5,341.75 C 538.625,342.625 538.375,343.125 539,343.25 C 539.625,343.375 539.625,342.75 539.75,343.875 C 539.875,345 539.625,346.125 541.125,345.5 C 542.625,344.875 543.5,344 543.625,344.75 C 543.75,345.5 543.5,345.625 543.75,346.625 C 544,347.625 543.75,348.5 544.625,349.125 C 545.5,349.75 545.875,349.75 546.25,350.25 C 546.625,350.75 546.5,350.625 547,350.875 C 547.5,351.125 547.5,352.25 548.125,353.125 C 548.75,354 549.5,353.25 549.125,354.375 C 548.75,355.5 548.75,356 548.25,356.375 C 547.75,356.75 546.625,357.125 545.875,356.5 C 545.125,355.875 544.5,355.375 544.5,355.375 C 544.5,355.375 545.125,354.125 543.625,354.5 C 542.125,354.875 542.125,355 541.5,355 C 540.875,355 540.5,354 540.75,355.375 C 541,356.75 542,357.25 542,357.25 C 542,357.25 543.125,357.25 543,358.5 C 542.875,359.75 543.375,359.375 542.75,360.625 C 542.125,361.875 542.25,361.625 541.75,362.75 C 541.25,363.875 541.75,363.875 541.125,364.75 C 540.5,365.625 540.25,366.125 539.375,366.5 C 538.5,366.875 538.5,366.125 538.125,367.5 C 537.75,368.875 537.875,368.875 537.25,369.125 C 536.625,369.375 535.25,369.375 534.75,369.75 C 534.25,370.125 535.125,370.625 533.75,370.25 C 532.375,369.875 532.75,369.875 532.125,369.75 C 531.5,369.625 531.25,369.625 530.75,369 C 530.25,368.375 530.625,367.25 530.125,367.625 C 529.625,368 529.25,369.375 528.75,368 C 528.25,366.625 528.375,366.5 527.875,366.25 C 527.375,366 527.125,367.5 527,365.875 C 526.875,364.25 526.625,364.25 527.375,363.5 C 528.125,362.75 528.375,362.5 529,362.5 C 529.625,362.5 529.75,362.625 530.5,362.75 C 531.25,362.875 531.125,363.5 531.75,363.625 C 532.375,363.75 534.25,362.625 534.5,363.375 C 534.75,364.125 534.25,366.375 534.875,364.375 C 535.5,362.375 535.125,362 536,361.25 C 536.875,360.5 537.75,359.75 538.125,359.25 C 538.5,358.75 538.875,358 538,357.125 C 537.125,356.25 536.875,357.125 536.875,355.5 C 536.875,353.875 537.125,353.5 536.625,352.625 C 536.125,351.75 536.625,352 535.625,351.5 C 534.625,351 534.625,350.75 534.125,350.125 C 533.625,349.5 532.75,349 531.875,348.75 C 531,348.5 531.625,349.125 530.75,347.75 C 529.875,346.375 529.625,346 528.875,346.125 C 528.125,346.25 528.5,347.25 527.75,346.375 C 527,345.5 527.25,345.375 526.75,345 C 526.25,344.625 526,345 525.375,344.5 C 524.75,344 524.75,344 524.625,343 C 524.5,342 524.75,341.625 524.125,341.125 C 523.5,340.625 522.25,340.25 522.25,340.25 C 522.25,340.25 522.5,340 520.875,340.25 C 519.25,340.5 519.125,340.5 518.625,340.875 C 518.625,340.875 521.04931,340.02362 519.45832,338.60941 C 517.86733,337.19519 517.16022,335.42743 517.86733,335.25065 C 518.57444,335.07387 519.45832,334.36677 519.6351,333.65966 C 519.81187,332.95255 520.07704,331.53834 519.72349,331.0964 C 519.36993,330.65446 517.51378,329.41702 517.51378,329.41702 C 517.51378,329.41702 516.45312,328.53313 516.62989,328.17958 C 516.80667,327.82603 517.69055,326.85376 517.69055,326.85376 C 517.69055,326.85376 518.75121,327.03053 518.75121,325.52793 C 518.75121,324.02533 518.75121,323.22983 518.39766,322.34595 C 518.04411,321.46207 517.95572,320.75496 518.57444,320.13624 C 519.19316,319.51752 519.90026,318.54525 520.07704,318.1917 C 520.25382,317.83814 520.25382,317.21943 521.40286,317.3962 C 522.55191,317.57298 522.81708,317.30781 523.61257,316.95426 C 524.40807,316.60071 525.20356,315.62844 525.20356,315.62844 C 525.20356,315.62844 526.52939,315.45166 526.52939,315.8936 C 526.52939,316.33554 527.41327,318.8988 528.29715,318.54525 C 529.18104,318.1917 530.86042,317.74976 531.65591,317.30781 C 532.45141,316.86587 532.36302,316.42393 533.42368,316.51232 C 534.48434,316.60071 534.66112,316.77748 535.81016,316.42393 C 536.95921,316.07038 537.57793,315.98199 538.10826,315.27488 C 538.63859,314.56778 540.49475,312.97679 540.49475,312.0929 C 540.49475,311.20902 540.49475,310.05997 540.49475,310.05997 C 540.49475,310.05997 544.29545,309.52964 545.17933,309.44125 C 546.06321,309.35286 546.9471,309.35286 547.47743,308.99931 C 548.00776,308.64576 548.00776,307.93865 548.4497,307.85026 C 548.89164,307.76187 550.30585,308.02704 550.30585,308.02704 C 550.30585,308.02704 550.30585,308.2922 550.7478,308.38059 C 551.18974,308.46898 552.07362,309.44125 551.89684,310.23675 C 551.72007,311.03224 551.18974,311.91613 551.01296,312.26968 C 550.83618,312.62323 550.39424,313.77228 550.48263,314.12583 C 550.57102,314.47939 551.54329,315.8936 551.54329,315.8936 L 551.54329,319.78269 L 560.73568,319.78269 C 560.73568,319.78269 561.44279,318.28009 561.3544,317.57298 C 561.26601,316.86587 560.47051,315.80521 560.47051,315.45166 C 560.47051,315.09811 560.64729,312.26968 560.64729,312.26968 C 560.64729,312.26968 561.17762,309.35286 562.50345,308.46898 C 563.82927,307.5851 564.62477,307.23154 564.71315,306.7896 C 564.80154,306.34766 564.97832,305.46378 565.42026,305.287 C 565.8622,305.11022 566.56931,304.40312 566.56931,304.40312 C 566.56931,304.40312 566.30414,304.40312 567,303.3125 z"
sodipodi:nodetypes="cscssssssssssssssscsssssssssssssssssssssssssscsssssssscssssssssscsssssssssssssssssssssssssssssscssscsssssssssssssssssssssssssssssssssssscsc" />
<text class="unit" x="540" y="340"></text>
</g>
<g>
<path class="area europe" id="western_europe"
style="opacity:1;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1.20000005;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4.32165003;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.58527132;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
d="M 521.40286,317.3962 C 520.25382,317.21943 520.25382,317.83814 520.07704,318.1917 C 519.90026,318.54525 519.19316,319.51752 518.57444,320.13624 C 517.95572,320.75496 518.04411,321.46207 518.39766,322.34595 C 518.75121,323.22983 518.75121,324.02533 518.75121,325.52793 C 518.75121,327.03053 517.69055,326.85376 517.69055,326.85376 C 517.69055,326.85376 516.80667,327.82603 516.62989,328.17958 C 516.45312,328.53313 517.51378,329.41702 517.51378,329.41702 C 517.51378,329.41702 519.36993,330.65446 519.72349,331.0964 C 520.07704,331.53834 519.81187,332.95255 519.6351,333.65966 C 519.45832,334.36677 518.57444,335.07387 517.86733,335.25065 C 517.16022,335.42743 517.86733,337.19519 519.45832,338.60941 C 521.04931,340.02362 520.03921,340.34467 520.03921,340.34467 C 520.03921,340.34467 519.125,340.5 518.625,340.875 C 518.125,341.25 518.5,341.25 518,341.875 C 517.5,342.5 517.625,342.625 516.75,342.875 C 515.875,343.125 516.625,343.625 515.75,343.5 C 514.875,343.375 515,343.75 514.5,343.25 C 514,342.75 514.375,342.125 513.5,342.125 C 512.625,342.125 512.25,342.25 512.625,341.5 C 513,340.75 513.5,340.75 512.5,340.75 C 511.5,340.75 511.625,341 510.375,340.75 C 509.125,340.5 508.625,340.625 508.125,340.625 L 506.75,343.125 C 506.75,343.125 506.875,343.625 506.75,344.25 C 506.625,344.875 506.125,345.375 506.125,345.375 C 506.125,345.375 505.75,345.75 505.75,346.5 C 505.75,347.25 506,347.375 505.25,348.125 C 504.5,348.875 504.5,349.125 504,349.375 C 503.5,349.625 503.5,349.5 503.125,350 C 502.75,350.5 502.5,350.5 502.25,351.125 C 502,351.75 502,351.75 502.375,352.375 C 502.75,353 503,353.75 503,353.75 C 503,353.75 503.375,353.875 503.125,355 C 502.875,356.125 502.75,356.875 502.75,356.875 C 502.75,356.875 502.75,357.375 502.875,358.375 C 503,359.375 503.875,360.5 503.875,360.5 L 504.5,361.375 C 504.5,361.375 504.875,362.875 505,363.625 C 505.125,364.375 506.25,364.125 505.125,365.125 C 504,366.125 502.375,366.75 501.25,368.625 C 500.125,370.5 500.5,372 499.625,373 C 498.75,374 499.5,374.125 498.375,374.125 C 497.25,374.125 496.25,372.875 495.625,374.125 C 495,375.375 494.625,376.5 493.75,376.625 C 492.875,376.75 492.75,375.25 492.75,377 C 492.75,378.75 492.375,379.875 492.375,379.875 C 492.375,379.875 492.125,380.75 491.25,380.625 C 490.375,380.5 490.25,380.375 489.5,380.25 C 488.75,380.125 488.75,380.625 488.125,379.875 C 487.5,379.125 487.375,378.75 487.125,378.125 C 486.875,377.5 486.875,377.25 485.875,377.125 C 484.875,377 484.875,377.375 484.375,376.5 C 483.875,375.625 483.625,375.375 482.875,375.5 C 482.125,375.625 482.125,376.125 481.125,375.125 C 480.125,374.125 480.125,373.375 479.625,373.5 C 479.125,373.625 478.5,374.5 478.5,374.5 C 478.5,374.5 478.625,375 477.125,374.875 C 475.625,374.75 475.375,374.5 474.25,374.5 C 473.125,374.5 473,375.25 472,374.75 C 471,374.25 470.875,374.125 470.875,373.5 C 470.875,372.875 471,372 470.5,371.5 C 470,371 470.625,370.375 469.875,370 C 469.125,369.625 469.5,369.75 468.625,369.75 C 467.75,369.75 467.75,369.875 466.875,369.375 C 466,368.875 465.625,369.625 466,368.25 C 466.375,366.875 466.125,367 466.75,366 C 467.375,365 467.375,365 467.75,363.875 C 468.125,362.75 468.25,362.5 468.875,360.875 C 469.5,359.25 469.75,359.75 469.75,358.5 C 469.75,357.25 469.25,357.25 470,356.375 C 470.75,355.5 470.875,355.5 470.75,354.5 C 470.625,353.5 471,353.75 470.5,353 C 470,352.25 468.75,351.125 468.25,350.625 C 467.75,350.125 467.875,350.75 467.625,349.25 C 467.375,347.75 466.875,348 466.625,347.125 C 466.375,346.25 466.375,346.25 466.375,345.125 C 466.375,344 465.5,344.375 465.5,343.75 C 465.5,343.125 465.125,342.625 466,342.125 C 466.875,341.625 467,342 468.125,341 C 469.25,340 469.25,340.25 469.5,339.375 C 469.75,338.5 470.625,338 470.625,338 C 470.625,338 470.5,338.125 471.25,338.875 C 472,339.625 472.125,339.625 472.25,340.125 C 472.375,340.625 471.875,340.75 473.375,341.125 C 474.875,341.5 474.5,341.625 476,341.625 C 477.5,341.625 477.875,341.75 478.5,341.5 C 479.125,341.25 479.75,340.875 479.75,340.875 C 479.75,340.875 480.25,340.5 481.125,340.5 C 482,340.5 482.125,340.375 482.875,340.625 C 483.625,340.875 483,341 483.75,340.875 C 484.5,340.75 484.625,341 485.25,340.625 C 485.875,340.25 486.25,340.875 486.625,339.75 C 487,338.625 486.625,338.25 487.625,337.5 C 488.625,336.75 489,336.5 490,336.5 C 491,336.5 489.375,334.875 488.75,334.75 C 488.125,334.625 487.75,335.25 487.75,334.625 C 487.75,334 487.625,333.875 488,332.875 C 488.375,331.875 489.125,331.25 489.125,331.25 C 489.125,331.25 489,330.75 488.875,329.875 C 488.75,329 490.5,328.5 489.375,327.75 C 488.25,327 487.75,326.625 487,326.625 C 486.25,326.625 486.375,327.875 485.75,326.375 C 485.125,324.875 485.625,324.625 485,323.875 C 484.375,323.125 484.125,323.375 483.5,322.5 C 482.875,321.625 483.75,321.75 482.375,320.75 C 481,319.75 480.125,319.5 479.5,319.5 C 478.875,319.5 478.625,320.375 478.75,319.125 C 478.875,317.875 478.875,317.5 479.75,316.75 C 480.625,316 482.875,315.375 483.75,315.25 C 484.625,315.125 483.25,314.75 485.125,315.125 C 487,315.5 486.375,315.5 487.25,315.625 C 488.125,315.75 489.75,316.25 489.75,316.25 C 489.75,316.25 490,314.375 490.5,313.75 C 491,313.125 491.125,313.125 491.5,312.125 C 491.875,311.125 492,311 493.25,310.625 C 494.5,310.25 495.375,311.25 495.375,311.25 C 495.375,311.25 493.75,312.875 495,312.25 C 496.25,311.625 494.625,309.625 497.375,310 C 500.125,310.375 501.125,312 501.5,310.125 C 501.875,308.25 501.5,308.25 502.125,307.25 C 502.75,306.25 502.75,306.25 503.875,305.625 C 505,305 504.75,303.125 506.125,302.875 C 507.5,302.625 507,302.875 508.25,302.625 C 509.5,302.375 509.375,302.625 510.125,301.75 C 510.125,301.75 511.3125,302.0625 511.25,302.5 C 511.1875,302.9375 512.25,305.6875 512.25,305.6875 C 512.25,305.6875 513.5625,306.5 514.4375,307.75 C 515.3125,309 515.75,310.125 516.1875,310.25 C 516.625,310.375 516.875,310.375 517,311.1875 C 517.125,312 517.1875,312.125 517.5625,312.625 C 517.9375,313.125 518.5,313.0625 518.625,313.8125 C 518.75,314.5625 518.9375,315.375 519.25,315.75 C 519.5625,316.125 520.5,316.8125 520.5,316.8125 C 520.5,316.8125 521.3125,317.5625 521.40286,317.3962 z"
sodipodi:nodetypes="csssscscssssccssssssssccscsssssscscsccsssssssscssssssssscsssssssssssssssssssssssscssssscsssssssssscssssssssssssscssscsssssssc" />
<text class="unit" x="494" y="336"></text>
</g>
<g>
<path class="area europe" id="northern_europe"
style="opacity:1;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1.20000005;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4.32165003;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.58527132;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
d="M 563,263.625 L 564.25,263.75 C 565.09679,264.54371 565.70175,265.4675 566.5625,266.25 C 566.5625,266.25 569.0625,267.625 569.9375,267.625 C 570.8125,267.625 571.8125,267.0625 572.3125,267 C 572.8125,266.9375 572.25,267.875 572.25,268.1875 C 572.25,268.5 572.9375,271.4375 573.25,272.0625 C 573.5625,272.6875 573.625,280.125 573.6875,281.5 C 573.75,282.875 575.0625,284.25 575.4375,284.5625 C 575.8125,284.875 576.0625,285.625 576.0625,285.9375 C 576.0625,286.25 575.25,287.3125 575.1875,287.75 C 575.125,288.1875 575.3125,288.9375 575.25,289.5 C 575.1875,290.0625 574.75,290.3125 574.25,290.75 C 573.75,291.1875 573.875,292.1875 573.5625,292.8125 C 573.25,293.4375 572.75,293.4375 572.125,293.6875 C 570.43993,295.9867 570.02741,298.02502 567.125,298.6875 C 566.5625,298.6875 565.0625,299.125 564.875,299.625 C 564.6875,300.125 564.6875,301.125 564.6875,301.125 L 567,303.3125 C 566.30414,304.40312 566.56931,304.40312 566.56931,304.40312 C 566.56931,304.40312 565.8622,305.11022 565.42026,305.287 C 564.97832,305.46378 564.80154,306.34766 564.71315,306.7896 C 564.62477,307.23154 563.82927,307.5851 562.50345,308.46898 C 561.17762,309.35286 560.64729,312.26968 560.64729,312.26968 C 560.64729,312.26968 560.47051,315.09811 560.47051,315.45166 C 560.47051,315.80521 561.26601,316.86587 561.3544,317.57298 C 561.44279,318.28009 560.73568,319.78269 560.73568,319.78269 L 551.54329,319.78269 L 551.54329,315.8936 C 551.54329,315.8936 550.57102,314.47939 550.48263,314.12583 C 550.39424,313.77228 550.83618,312.62323 551.01296,312.26968 C 551.18974,311.91613 551.72007,311.03224 551.89684,310.23675 C 552.07362,309.44125 551.18974,308.46898 550.7478,308.38059 C 550.30585,308.2922 550.30585,308.02704 550.30585,308.02704 C 550.30585,308.02704 548.89164,307.76187 548.4497,307.85026 C 548.00776,307.93865 548.00776,308.64576 547.47743,308.99931 C 546.9471,309.35286 546.06321,309.35286 545.17933,309.44125 C 544.29545,309.52964 540.49475,310.05997 540.49475,310.05997 C 540.49475,310.05997 540.49475,311.20902 540.49475,312.0929 C 540.49475,312.97679 538.63859,314.56778 538.10826,315.27488 C 537.57793,315.98199 536.95921,316.07038 535.81016,316.42393 C 534.66112,316.77748 534.48434,316.60071 533.42368,316.51232 C 532.36302,316.42393 532.45141,316.86587 531.65591,317.30781 C 530.86042,317.74976 529.18104,318.1917 528.29715,318.54525 C 527.41327,318.8988 526.52939,316.33554 526.52939,315.8936 C 526.52939,315.45166 525.20356,315.62844 525.20356,315.62844 C 525.20356,315.62844 524.40807,316.60071 523.61257,316.95426 C 522.81708,317.30781 522.55191,317.57298 521.40286,317.3962 C 520.25381,317.21942 520.5,316.8125 520.5,316.8125 C 520.5,316.8125 519.5625,316.125 519.25,315.75 C 518.9375,315.375 518.75,314.5625 518.625,313.8125 C 518.5,313.0625 517.9375,313.125 517.5625,312.625 C 517.1875,312.125 517.125,312 517,311.1875 C 516.875,310.375 516.625,310.375 516.1875,310.25 C 515.75,310.125 515.3125,309 514.4375,307.75 C 513.5625,306.5 512.25,305.6875 512.25,305.6875 C 512.25,305.6875 511.1875,302.9375 511.25,302.5 C 511.3125,302.0625 510.125,301.75 510.125,301.75 C 510.875,300.875 511.5,298.625 512.125,298.375 C 512.75,298.125 513.125,298.75 513.5,296.75 C 513.875,294.75 513.25,295.125 513.875,294.625 C 514.5,294.125 515.25,294.75 515.625,293.375 C 516,292 515.875,291.75 515.875,291.125 C 515.875,290.5 514.125,290.5 516.5,290 C 518.875,289.5 519,290.25 519.5,289.25 C 520,288.25 520,288.5 520.25,287.5 C 520.5,286.5 521,286.75 521.625,285.75 C 522.25,284.75 521.875,284.75 522.25,283.875 C 522.625,283 522.625,279.75 523.25,279.5 C 523.875,279.25 523.875,280 524.25,279 C 524.625,278 524.25,277.75 525,276.75 C 525.75,275.75 525.875,275.875 526.625,275.375 C 527.375,274.875 527.5,275 527.75,274.375 C 528,273.75 526.875,273.875 528.625,272.625 C 530.375,271.375 530.25,271.875 530.5,271.25 C 530.75,270.625 531,270.25 531.125,269.625 C 531.25,269 531.125,269 531.25,268.125 C 531.375,267.25 531.25,267.875 531.375,266.375 C 531.5,264.875 531.75,263.875 531.875,263.25 C 532,262.625 532.125,262.25 531.5,262.375 C 530.875,262.5 530.75,263.5 530.625,262.375 C 530.5,261.25 530.25,260.875 530,260.25 C 529.75,259.625 529.375,258.5 529.375,258.5 C 529.375,258.5 528.875,258 529.375,257.25 C 529.875,256.5 530.5,255.375 530.5,255.375 C 530.5,255.375 530.875,255 531.5,254.875 C 532.125,254.75 532.25,255 532.75,254.375 C 533.25,253.75 532.25,253.625 533.5,253.5 C 534.75,253.375 535,253.375 535,253.375 L 534.25,254.5 L 534.125,255.5 C 534.125,255.5 535.5,256.25 535.75,257.75 C 536,259.25 536.25,259.375 536.125,260.125 C 536,260.875 535.875,263.875 535.875,263.875 C 535.875,263.875 535.875,264.875 536.625,265.5 C 537.375,266.125 537.875,266.375 538.625,266.5 C 539.375,266.625 540.75,266.75 541.375,266.5 C 542,266.25 542.625,266.125 543.25,266.5 C 543.875,266.875 544.625,266.5 545.125,266.25 C 545.625,266 546.25,265.75 546.875,265.625 C 547.5,265.5 548,265.5 549.25,265.5 C 550.5,265.5 550.875,265.75 551.375,265.25 C 551.875,264.75 551.75,265.125 552.375,264.625 C 553,264.125 554.25,263.5 554.875,263.5 C 555.5,263.5 555.5,263.375 556.25,263.25 C 557,263.125 558,262.625 559,263 C 560,263.375 560.375,263.5 561.25,263.625 C 562.125,263.75 562.5,264 563,263.625 z"
sodipodi:nodetypes="cccsssssssssssccscccssscsscccsssscssscssssssscsccsssssscscsssssssssssssssssssssssscscssscccsscsssssssssssssc" />
<text class="unit" x="533" y="295"></text>
</g>
<g>
<path class="area africa" id="egypt"
style="opacity:1;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1.20000005;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4.32165003;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.58527132;display:inline;"
d="M 575.58492,429.29585 C 575.40814,428.41197 571.69583,429.47263 570.81195,429.11907 C 569.92807,428.76552 569.39774,428.05841 569.39774,428.05841 C 569.39774,428.05841 568.69063,425.93709 568.51385,424.87643 C 568.33708,423.81577 565.8622,425.05321 564.97832,424.87643 C 564.09444,424.69966 564.80154,423.46222 564.44799,422.22478 C 564.09444,420.98735 562.68022,421.51768 561.79634,421.51768 C 560.91245,421.51768 559.49824,420.81057 558.2608,419.92669 C 557.02337,419.0428 556.66981,420.28024 555.2556,420.45702 C 553.84139,420.63379 553.84139,420.28024 553.31106,419.39636 C 552.78073,418.51247 551.01296,419.92669 549.42197,419.74991 C 547.83098,419.57313 548.18453,418.86603 547.30065,417.45181 C 546.41677,416.0376 545.53288,417.09826 543.58834,416.56793 C 541.6438,416.0376 542.3509,415.86082 542.17413,414.44661 C 541.99735,413.0324 540.75991,413.20917 540.75991,413.20917 C 540.75991,413.20917 540.58313,411.61818 540.40636,410.38074 C 540.22958,409.14331 540.58313,407.19876 540.58313,406.49166 C 540.58313,405.78455 540.22958,403.1329 538.99214,402.60257 C 537.75471,402.07224 538.63859,400.8348 538.63859,400.8348 C 538.63859,400.8348 538.10826,399.06704 538.28504,398.18315 C 538.46181,397.29927 539.69925,396.23861 540.58313,396.23861 C 541.46702,396.23861 541.99735,395.17795 541.99735,395.17795 C 541.99735,395.17795 540.58313,393.05663 539.87603,391.81919 C 539.16892,390.58176 541.11347,390.75853 541.11347,390.75853 L 541.99735,389.69787 C 541.99735,389.69787 542.3509,389.16754 543.94189,388.28366 C 545.53288,387.39977 544.625,385.375 544.625,385.375 C 544.625,385.375 546.25,385.5 547.875,385.75 C 549.5,386 549.25,386.75 550.25,387.75 C 551.25,388.75 551.625,389 553.75,389.75 C 555.875,390.5 556,390.875 557.375,390.875 C 558.75,390.875 561,389.625 561.875,389.25 C 562.75,388.875 564.25,388.75 570.25,388.375 C 576.25,388 576.25,391.875 577.625,391.375 C 579,390.875 580.5,391.375 581.25,391.625 C 582,391.875 584.125,392.625 585.375,392.625 C 586.625,392.625 588,393.375 588.5,393.625 C 589,393.875 594.75,395.125 595.375,395.125 L 597,393.625 L 598.25,394 C 598.25,394 599.25,394.5 599.75,394.5 C 600.25,394.5 600.5,393.625 600.5,393.625 L 602.5,392.375 L 604.75,396.75 C 604.75,396.75 603.75,399.375 603.75,400.125 C 603.75,400.875 603.625,402.75 603.125,402.875 C 602.625,403 602,402.75 601.25,402.25 C 600.5,401.75 599.75,400.375 598.625,399.625 C 597.5,398.875 598.625,402.125 598.625,402.125 C 598.5,402.625 601,406 605.375,412 C 609.75,418 605.875,415 606.75,416.5 C 607.625,418 608.5,418.5 608.75,420.75 C 609,423 608.875,421.875 609.25,423 L 609,422.75 C 609.125,424.375 581.75,422.75 580.125,423.25 C 578.5,423.75 578.875,428.5 578.25,428.25 C 577.625,428 575.58492,429.29585 575.58492,429.29585 z"
sodipodi:nodetypes="cscssssssssssscssscsscsccsccssssssssscccscccsssscsssc" />
<text class="unit" x="564" y="413"></text>
</g>
<g>
<path class="area africa" id="east_africa"
style="opacity:1;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1.20000005;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4.32165003;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.58527132;display:inline;"
d="M 575.05459,454.7517 C 575.05459,454.7517 574.52426,452.63038 573.64038,451.39294 C 572.75649,450.1555 573.28682,448.74129 573.28682,447.8574 C 573.28682,446.97352 573.64038,446.44319 574.17071,445.73608 C 574.70104,445.02898 574.34748,444.67542 574.34748,444.67542 L 575.23137,442.90766 C 575.23137,442.90766 575.7617,441.49344 575.7617,440.25601 C 575.7617,439.01857 575.05459,439.5489 574.34748,439.37212 C 573.64038,439.19535 574.17071,439.01857 575.23137,438.48824 C 576.29203,437.95791 575.93847,436.72047 576.11525,435.65981 C 576.29203,434.59915 575.7617,430.17973 575.58492,429.29585 C 575.58492,429.29585 577.625,428 578.25,428.25 C 578.875,428.5 578.5,423.75 580.125,423.25 C 581.75,422.75 609.125,424.375 609,422.75 L 609.25,423 C 609.625,424.125 610.5,424 610.5,424 C 610.5,424 612.5,425.5 612.75,426.25 C 613,427 613.25,426.5 613.25,427.125 C 613.25,427.75 613.625,430 614.125,431.5 C 614.625,433 614.75,432.25 615.75,433.125 C 616.75,434 616,433.875 616,435.875 C 616,437.875 617,437.375 618,439 C 619,440.625 618.125,439.875 618.625,441.25 C 619.125,442.625 619.25,443.25 619.75,444.25 C 620.25,445.25 620.5,445 621.125,445 C 621.75,445 621.875,445.375 621.875,446.875 C 621.875,448.375 624.25,448.875 625.25,450.375 C 626.25,451.875 626.375,451.375 627,452.375 C 627.625,453.375 627,453.125 626.375,455.25 C 625.75,457.375 626.5,457.5 627.125,458.5 C 627.75,459.5 631.125,459.375 631.125,459.375 C 631.125,459.375 634.125,459.125 635.25,458.5 C 636.375,457.875 636.25,457.625 636.75,457.25 C 637.25,456.875 640.75,457.25 643.25,456.625 C 645.75,456 649,453.625 650.5,456.25 C 652,458.875 646.75,469.25 644.5,474.25 C 642.25,479.25 636,484.25 632.125,488 C 628.25,491.75 625.875,496.375 625.625,496.875 C 625.375,497.375 624.375,498.375 623.875,498.625 C 623.375,498.875 622.875,499.25 621.875,500.5 C 620.875,501.75 620.25,501.25 618.875,502.25 C 617.5,503.25 617.75,504.25 617.75,505 C 617.75,505.75 617.375,507.375 617,507.875 C 616.625,508.375 617.5,510.875 617.5,511.75 C 617.5,512.625 617.25,514.625 617.25,514.625 C 617.25,514.625 617.25,515 618.625,515.75 C 620,516.5 619.125,521 619.125,521 L 619.375,521.5 C 619.375,521.5 617.75,523.125 616.625,523.125 C 615.5,523.125 614,524.5 614,524.5 C 614,524.5 613.375,524.625 612.125,525 C 610.875,525.375 609.875,525.25 608.75,526.75 C 607.625,528.25 608.25,528.125 609.125,531 C 610,533.875 608.75,532.125 608.375,533.125 C 608,534.125 608.375,536.25 608.375,537.5 C 608.375,538.75 607.5,539.25 606.875,539.75 C 606.25,540.25 604.25,538.25 603.5,537 C 602.75,535.75 603.5,533.75 604,532.25 C 604.5,530.75 602.875,528.625 602.5,527.375 C 602.125,526.125 602.25,526 602.875,524.875 C 603.5,523.75 603,524 602.625,522.25 C 602.25,520.5 601.25,520.625 600.875,519.875 C 600.5,519.125 599.375,517.625 598.375,517.625 C 597.375,517.625 597.875,516 597.625,515.125 C 597.375,514.25 595.625,514.625 595,514.875 C 594.375,515.125 594.25,514.25 593.875,511.5 C 593.5,508.75 592.75,501.75 592.875,500.625 C 593,499.5 595.75,501.625 596.25,500.875 C 596.75,500.125 596.875,494.5 596.625,493 C 596.375,491.5 598.75,492.125 600.25,492 C 601.75,491.875 602,490 602.625,488.75 C 603.25,487.5 603.875,487.625 604.5,487.375 C 605.125,487.125 605,485.875 605.75,484.875 C 606.5,483.875 607.5,482.125 607.5,480.75 C 607.5,479.375 605.625,478 603.375,477.875 C 601.125,477.75 601.625,478.875 598.5,478.125 C 595.375,477.375 594.75,477.5 593.75,477.25 C 592.75,477 592.875,475.375 591.75,475 C 590.625,474.625 589.25,477.125 589.25,477.125 C 589.25,477.125 588,476.75 586.75,473.75 C 585.5,470.75 583.75,469.875 583.25,469.75 C 582.75,469.625 582.625,466.125 582.625,465.5 C 582.625,464.875 580.375,464.125 579.875,463.375 C 579.375,462.625 579,461.5 578.125,461.25 C 577.25,461 576.625,461 576.25,458.875 C 575.875,456.75 575.05459,454.7517 575.05459,454.7517 z"
sodipodi:nodetypes="csssccsssscsscccsssssssssssssscssssssssssssscsc" />
<text class="unit" x="610" y="480"></text>
</g>
<g>
<path class="area africa" id="congo"
style="opacity:1;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1.20000005;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4.32165003;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.58527132;display:inline;"
d="M 595,514.875 C 594.375,515.125 594.25,514.25 593.875,511.5 C 593.5,508.75 592.75,501.75 592.875,500.625 C 593,499.5 595.75,501.625 596.25,500.875 C 596.75,500.125 596.875,494.5 596.625,493 C 596.375,491.5 598.75,492.125 600.25,492 C 601.75,491.875 602,490 602.625,488.75 C 603.25,487.5 603.875,487.625 604.5,487.375 C 605.125,487.125 605,485.875 605.75,484.875 C 606.5,483.875 607.5,482.125 607.5,480.75 C 607.5,479.375 605.625,478 603.375,477.875 C 601.125,477.75 601.625,478.875 598.5,478.125 C 595.375,477.375 594.75,477.5 593.75,477.25 C 592.75,477 592.875,475.375 591.75,475 C 590.625,474.625 589.25,477.125 589.25,477.125 C 589.25,477.125 588,476.75 586.75,473.75 C 585.5,470.75 583.75,469.875 583.25,469.75 C 582.75,469.625 582.625,466.125 582.625,465.5 C 582.625,464.875 580.375,464.125 579.875,463.375 C 579.375,462.625 579,461.5 578.125,461.25 C 577.25,461 576.625,461 576.25,458.875 C 576.25,458.875 575.75,455.25 575.08979,454.87585 C 575.05459,454.7517 572.75649,457.22657 572.75649,458.11045 C 572.75649,458.99434 573.28682,460.055 570.98873,461.11566 C 568.69063,462.17632 567.27642,462.88342 565.8622,463.41375 C 564.44799,463.94408 563.91766,465.00474 563.03378,465.53507 C 562.14989,466.0654 560.91245,466.0654 560.02857,466.77251 C 559.14469,467.47962 558.43758,467.47962 557.90725,468.54028 C 557.37692,469.60094 556.66981,467.83317 556.49304,470.30804 C 556.31626,472.78292 556.84659,474.02036 556.84659,474.02036 C 556.84659,474.02036 558.43758,472.07581 558.08403,475.9649 C 557.73047,479.85399 556.84659,480.20754 557.37692,481.62175 C 557.90725,483.03597 558.2608,483.38952 556.84659,484.2734 C 555.43238,485.15729 554.19494,484.2734 554.19494,484.2734 C 554.19494,484.2734 553.84139,482.68241 552.2504,483.03597 C 550.65941,483.38952 550.48263,484.09663 548.89164,483.74307 C 547.30065,483.38952 545.70966,483.38952 545.70966,483.38952 C 545.70966,483.38952 543.76512,484.98051 543.05801,484.62696 C 542.3509,484.2734 542.3509,483.74307 541.82057,482.68241 L 541.1875,482.5 C 540.125,482.125 540,484.625 540,484.625 C 540.375,485.75 541.375,486.25 540.875,486.75 C 540.375,487.25 539.75,488.75 539.125,489.625 C 538.5,490.5 535.875,491.75 536.875,492.875 C 537.875,494 544.5,499.25 545.875,502.375 C 545.875,502.375 546.5,503.25 547.125,504.125 C 547.75,505 550,503.125 550.75,503.75 C 551.5,504.375 553.5,505.75 554.25,506.125 C 555,506.5 559.125,505.875 560.125,506.625 C 561.125,507.375 561.875,507 561.875,507 C 561.875,507 561.25,511.25 561.875,511.875 C 562.5,512.5 564,513.25 564.875,512 C 565.75,510.75 572.25,510 572.625,511 C 573,512 572,514 573.25,515 C 574.5,516 575.375,516.75 575.25,517.75 C 575.125,518.75 573.875,519.75 574.375,521.125 C 574.875,522.5 576.25,523 577.75,522.875 C 579.25,522.75 579.125,523.875 580.375,524.125 C 581.625,524.375 586.5,524.375 587,524.75 C 587.5,525.125 588.75,526 589.125,526.625 C 589.5,527.25 590.875,529.5 591.75,528.625 C 592.625,527.75 593.625,523.125 592.25,522.625 C 590.875,522.125 590,522.125 590,520.625 C 590,519.125 590.75,516.5 591.25,516.5 C 591.75,516.5 592.375,515.875 592.375,515.875 C 592.375,515.875 596.25,515.875 595,514.875 z"
sodipodi:nodetypes="ccccscsscssscsssssssccsccssssscsssssssssssssc" />
<text class="unit" x="565" y="500"></text>
</g>
<g>
<path class="area africa" id="south_africa"
style="opacity:1;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1.20000005;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4.32165003;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.58527132;display:inline;"
d="M 547.125,504.125 C 547.75,505 550,503.125 550.75,503.75 C 551.5,504.375 553.5,505.75 554.25,506.125 C 555,506.5 559.125,505.875 560.125,506.625 C 561.125,507.375 561.875,507 561.875,507 C 561.875,507 561.25,511.25 561.875,511.875 C 562.5,512.5 564,513.25 564.875,512 C 565.75,510.75 572.25,510 572.625,511 C 573,512 572,514 573.25,515 C 574.5,516 575.375,516.75 575.25,517.75 C 575.125,518.75 573.875,519.75 574.375,521.125 C 574.875,522.5 576.25,523 577.75,522.875 C 579.25,522.75 579.125,523.875 580.375,524.125 C 581.625,524.375 586.5,524.375 587,524.75 C 587.5,525.125 588.75,526 589.125,526.625 C 589.5,527.25 590.875,529.5 591.75,528.625 C 592.625,527.75 593.625,523.125 592.25,522.625 C 590.875,522.125 590,522.125 590,520.625 C 590,519.125 590.75,516.5 591.25,516.5 C 591.75,516.5 592.375,515.875 592.375,515.875 C 592.375,515.875 596.25,515.875 595,514.875 C 595.625,514.625 597.375,514.25 597.625,515.125 C 597.875,516 597.375,517.625 598.375,517.625 C 599.375,517.625 600.5,519.125 600.875,519.875 C 601.25,520.625 602.25,520.5 602.625,522.25 C 603,524 603.5,523.75 602.875,524.875 C 602.25,526 602.125,526.125 602.5,527.375 C 602.875,528.625 604.5,530.75 604,532.25 C 603.5,533.75 602.75,535.75 603.5,537 C 604.25,538.25 606.25,540.25 606.875,539.75 C 607.5,539.25 608.375,538.75 608.375,537.5 C 608.375,536.25 608,534.125 608.375,533.125 C 608.75,532.125 610,533.875 609.125,531 C 608.25,528.125 607.625,528.25 608.75,526.75 C 609.875,525.25 610.875,525.375 612.125,525 C 613.375,524.625 614,524.5 614,524.5 C 614,524.5 615.5,523.125 616.625,523.125 C 617.75,523.125 619.375,521.5 619.375,521.5 C 619.375,521.5 619.125,521 619.125,521 C 619.125,521 622,520.125 621.5,521.125 C 621,522.125 622.375,525.75 622.375,525.75 C 622.375,525.75 622.5,526.5 622.75,527.5 C 623,528.5 622.875,528.625 623,529.625 C 623.125,530.625 622.625,531.125 622.5,531.875 C 622.375,532.625 622.625,533.25 622.75,534.25 C 622.875,535.25 622.125,537.5 621.875,538.125 C 621.625,538.75 620.875,538.75 620.375,539.25 C 619.875,539.75 619.75,540.5 618.625,541.625 C 617.5,542.75 617.75,542.75 617,543.875 C 616.25,545 616.875,544.375 615.75,546.125 C 614.625,547.875 615.125,546.625 614,547 C 612.875,547.375 612.25,548.625 611.75,548.75 C 611.25,548.875 609.875,550.125 609.125,554.75 C 608.375,559.375 609.875,560.25 609.5,561.125 C 609.125,562 606.75,565.375 606.375,566.375 C 606,567.375 605.625,567.25 604.5,567.75 C 603.375,568.25 603.75,570.25 603.75,571 C 603.75,571.75 603,574.25 601.625,575.5 C 600.25,576.75 601.5,576.625 601.875,577.125 C 602.25,577.625 602.25,578.25 602,579.875 C 601.75,581.5 600.375,580.625 599.625,581.125 C 598.875,581.625 596.5,584.375 596.75,585.375 C 597,586.375 598,586.25 598,586.25 C 598,586.25 596.375,588 594.875,589.875 C 593.375,591.75 595,591 595.375,592.25 C 595.75,593.5 594.5,592.5 593.75,592.5 C 593,592.5 592.875,592.875 592.125,593.5 C 591.375,594.125 590.875,594 587.375,594.75 C 583.875,595.5 586,596 584.25,597.25 C 582.5,598.5 582.625,598.875 577.75,598.875 C 572.875,598.875 574.5,599.375 573.625,599.75 C 572.75,600.125 572.125,600.125 571.125,600.125 C 570.125,600.125 569.375,600.625 568.75,601 C 568.125,601.375 567.625,602.375 567.625,602.375 C 567.625,602.375 567.125,602.125 566.625,601.25 C 566.125,600.375 565,600.75 564.125,600.625 C 563.25,600.5 563.125,600.375 562.25,599.25 C 561.375,598.125 562.5,597.75 562.5,597.125 C 562.5,596.5 561.75,594.5 561.75,593.5 C 561.75,592.5 561.75,592 561.75,590.75 C 561.75,589.5 561.625,589.5 561.625,588.125 C 561.625,586.75 561.625,586.625 561.25,585.875 C 560.875,585.125 559.875,584.25 559.625,582.875 C 559.375,581.5 559.625,581 559.625,579.875 C 559.625,578.75 558.375,579.375 558.125,578.875 C 557.875,578.375 557.25,577.875 556.75,576.375 C 556.25,574.875 556.875,575 556.875,573.75 C 556.875,572.5 556.875,572.375 556.875,571.375 C 556.875,570.375 556.125,570 555.875,569.375 C 555.625,568.75 554.125,566.125 554,565.25 C 553.875,564.375 553.75,563.875 553.75,562.75 C 553.75,561.625 553.875,561.75 554,560.875 C 554.125,560 553.375,559.5 553.375,558.875 C 553.375,558.25 550.125,555.125 550.125,555.125 C 550.125,555.125 549.75,554.875 549.625,554.125 C 549.5,553.375 548.875,552.875 547.75,551.5 C 546.625,550.125 547.125,550.125 547.25,549.125 C 547.375,548.125 547.125,547.125 547,546.5 C 546.875,545.875 545.625,543.125 545.625,543.125 C 545.625,543.125 545.5,541.875 545.75,540.875 C 546,539.875 546.375,539.625 546.5,538.125 C 546.625,536.625 546.5,537 546.625,536.125 C 546.75,535.25 546.875,535.25 547.25,534.5 C 547.625,533.75 548.25,533.125 548.25,532 C 548.25,530.875 549,529.875 549.25,529.375 C 549.5,528.875 550,528.375 550.75,527.25 C 551.5,526.125 550.375,526.5 550.5,525.5 C 550.625,524.5 550.375,523.75 550.25,523 C 550.125,522.25 548.25,519.875 547.75,518.5 C 547.25,517.125 549.5,515.75 551.25,513 L 551.3125,513 C 553.3125,510.0625 547.125,505.3125 547.125,504.125 z"
sodipodi:nodetypes="cssscssssssssssssssccsssssssssssssscsccscssssssssssssssssssssscsssssssssscssssssssssssssssssscsssscssssssssssc" />
<text class="unit" x="570" y="560"></text>
</g>
<g>
<path class="area south-america" id="brazil"
style="opacity:1;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1.20000005;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4.32165003;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.58527132;display:inline;"
d="M 404.375,403.625 C 404.375,403.625 400.04566,407.19876 399.51533,408.25942 C 398.985,409.32008 398.63145,411.61818 397.39401,411.79496 C 396.15657,411.97174 388.73195,412.32529 388.73195,412.32529 C 388.73195,412.32529 389.08551,414.44661 388.02485,414.44661 C 386.96419,414.44661 376.53436,414.09306 376.53436,414.09306 L 375.12015,409.85041 C 375.12015,409.85041 373.88271,410.7343 373.70593,408.96653 C 373.52916,407.19876 373.52916,404.37034 373.52916,404.37034 C 373.52916,404.37034 370.87751,405.78455 369.28652,406.31488 C 367.69553,406.84521 366.28131,409.49686 364.8671,408.96653 C 363.45289,408.4362 362.74578,406.66843 362.39223,408.08265 C 362.03867,409.49686 362.569,413.7395 361.50834,414.09306 C 360.44768,414.44661 360.09413,413.82789 359.21025,414.88855 C 358.32636,415.94921 355.93988,416.21438 355.23277,415.59566 C 354.52566,414.97694 353.99533,414.26983 353.19984,414.00467 C 352.40434,413.7395 351.9624,413.29756 351.07852,413.20917 C 350.19463,413.12078 350.01786,412.67884 349.31075,413.47434 C 348.60364,414.26983 347.10104,415.59566 346.83588,416.30276 C 346.57071,417.00987 345.1565,419.57313 345.51005,420.5454 C 345.8636,421.51768 347.27782,421.25251 347.27782,423.02028 C 347.27782,424.78805 346.74749,425.67193 345.77522,425.93709 C 344.80294,426.20226 339.94159,427.79325 339.94159,427.79325 C 339.94159,427.79325 335.875,427.75 335.75,428.375 C 335.625,429 335.875,432.875 334.875,433.625 C 333.875,434.375 331.125,434 331,435 C 330.875,436 328.875,436.625 329.625,438 C 330.375,439.375 331.75,440.625 332.75,440.625 C 333.75,440.625 335,440.75 335.125,441.75 C 335.25,442.75 338.75,442.875 340.125,443.625 C 341.5,444.375 345,442.5 344.75,444.625 C 344.5,446.75 340.875,447.125 340.625,448.5 C 340.375,449.875 340.25,452.875 343,452.75 C 345.75,452.625 348.25,450.75 350.125,450.375 C 352,450 353.875,450 354.375,449.5 C 354.875,449 355.25,447.75 356.25,447.625 C 357.25,447.5 359.625,448.625 360.375,449.875 C 361.125,451.125 361.25,452.25 362.75,452.375 C 364.25,452.5 363.75,453.375 364.875,453.875 C 366,454.375 367,453.875 368,454.5 C 369,455.125 369,457.25 370.625,457.25 C 372.25,457.25 374.5,456.125 375.125,457.375 C 375.75,458.625 376.375,460.375 377.125,461.125 C 377.875,461.875 377.375,462.875 377.625,463.625 C 377.875,464.375 379.375,464.5 380.5,465.375 C 381.625,466.25 381.75,466.75 382.125,468.5 C 382.5,470.25 383.375,470.25 384.125,471.75 C 384.875,473.25 386.125,476.5 385.875,477.625 C 385.625,478.75 384.875,480.125 386.375,481 C 387.875,481.875 388.5,482.375 389.375,483.75 C 390.25,485.125 390.875,484.625 391.5,485.125 C 392.125,485.625 392.5,487.5 392.875,490.125 C 393.25,492.75 396.125,493.75 396.25,495.5 C 396.375,497.25 396.5,498.5 395.875,498.625 C 395.25,498.75 394,499.875 393.875,501.625 C 393.75,503.375 390.5,504.25 390.5,504.25 C 390.5,504.25 388.375,505.75 388.625,506.75 C 388.875,507.75 393.625,507 393.625,507.625 C 393.625,508.25 392.875,512.75 393.375,512.875 C 393.875,513 397.125,511.875 397.625,512.5 C 398.125,513.125 397,517 397.25,517.375 C 397.5,517.75 400.375,519.875 401.0625,519.3125 C 402.375,518.875 401.625,518.75 401.875,518 C 402.125,517.25 402.125,517.375 402.75,516.5 C 403.375,515.625 403,515.625 403.25,514.875 C 403.5,514.125 403.875,513.5 404.375,513 C 404.875,512.5 405.125,512.375 405.375,511.625 C 405.625,510.875 405.5,510.5 405.625,509.25 C 405.75,508 407.25,507.875 408.625,507.375 C 410,506.875 409.875,505.375 410,504.125 C 410.125,502.875 409.625,503.75 409.625,502.375 C 409.625,501 409.5,500.5 409.375,499.125 C 409.25,497.75 409.5,498.625 410.125,498 C 410.75,497.375 410.75,494.625 412.25,491.5 C 413.75,488.375 424.75,487.5 425.25,487.375 C 425.75,487.25 428.625,486.25 429,485.75 C 429.375,485.25 430.625,484.125 431.625,483.625 C 432.625,483.125 432,482.25 432.25,481.125 C 432.5,480 432.75,480.375 433.375,480.125 C 434,479.875 433.875,479.125 434.5,478.25 C 435.125,477.375 434.5,476.5 434.875,475.75 C 435.25,475 436.375,474.75 437.25,474.375 C 438.125,474 437.625,472.75 438.375,472 C 439.125,471.25 438.375,468.625 438.375,467 C 438.375,465.375 438.375,465.25 439.125,464.25 C 439.875,463.25 438.875,461.25 438.875,461.25 L 439.125,459.5 C 439.125,459.5 438.75,457.5 439,456.5 C 439.25,455.5 440.25,455 441.75,454 C 443.25,453 442.25,450.75 442.25,450.75 L 442.25,449 C 442.25,449 444.5,448 446.25,448 C 448,448 448,445.5 449.5,444 C 451,442.5 450.25,441 450.5,439.75 C 450.75,440.25 450.25,439 449.875,437.875 C 449.5,436.75 449.75,436.25 449.5,434.5 C 449.25,432.75 448.25,432 447.25,431 C 446.25,430 444.875,430.25 444,430 C 443.125,429.75 442.625,428.125 441.75,427.875 C 440.875,427.625 437.5,425.25 435.625,425 C 433.75,424.75 433.625,424.875 432.75,423.875 C 431.875,422.875 431.375,423.5 430.75,423.5 C 430.125,423.5 429.125,424 428.375,423.5 C 427.625,423 427.25,423.25 426.125,423.25 C 425,423.25 424,422.875 423.5,422 C 423,421.125 423,421 422.25,420.625 C 421.5,420.25 420.625,420.5 419.875,420.125 C 419.125,419.75 418.25,419.375 417.5,419.25 C 416.75,419.125 415.875,419.375 415.125,419.25 C 414.375,419.125 412.625,418.75 412,418.75 C 411.375,418.75 409.5,419.125 408.625,419.125 C 407.75,419.125 406.25,417.625 405,417.125 C 403.75,416.625 406.125,417 408,414.75 C 409.875,412.5 407.25,411.125 406.75,410.25 C 406.25,409.375 406.125,408.625 405.375,406 C 404.625,403.375 404.375,403.625 404.375,403.625 z"
sodipodi:nodetypes="csscsccscssssssssssssscsssssssssssssssssssssssssssssssscssssscsssssssssssssssssssssssccssccsscsssssssssssssssssssssc" />
<text class="unit" x="390" y="450"></text>
</g>
<g>
<path class="area south-america" id="argentina"
style="opacity:1;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1.20000005;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4.32165003;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.58527132;display:inline;"
d="M 396.25,495.5 C 396.375,497.25 396.5,498.5 395.875,498.625 C 395.25,498.75 394,499.875 393.875,501.625 C 393.75,503.375 390.5,504.25 390.5,504.25 C 390.5,504.25 388.375,505.75 388.625,506.75 C 388.875,507.75 393.625,507 393.625,507.625 C 393.625,508.25 392.875,512.75 393.375,512.875 C 393.875,513 397.125,511.875 397.625,512.5 C 398.125,513.125 397,517 397.25,517.375 C 397.5,517.75 400.375,519.875 401.03125,519.28125 C 399.625,519.625 396.375,521.125 397,522 C 397.625,522.875 398.5,523.125 397,523.5 C 395.5,523.875 395.75,523.75 394.25,524 C 392.75,524.25 393,524.125 391.375,524.5 C 389.75,524.875 389.5,525.375 388.5,525.5 C 387.5,525.625 387,525.375 386.375,525.375 C 385.75,525.375 385.25,525.375 385.25,526 C 385.25,526.625 385.125,526.75 385.75,527.25 C 386.375,527.75 388.125,528.25 388.25,528.75 C 388.375,529.25 388.375,529.625 388.375,530.5 C 388.375,531.375 388.5,531.5 389,531.625 C 389.5,531.75 389.625,531.875 389.75,532.375 C 389.875,532.875 388.5,534.625 387.75,535.125 C 387,535.625 386.375,536.25 384.625,536.375 C 382.875,536.5 383.25,536.25 382.125,536.875 C 381,537.5 381,537.625 379.75,537.625 C 378.5,537.625 378.125,537.625 376.875,537.875 C 375.625,538.125 374.75,538.375 374.75,538.375 C 374.75,538.375 375.25,539.125 375.375,539.875 C 375.5,540.625 376.125,540.75 375.625,541.875 C 375.125,543 374.25,543.5 373.875,544 C 373.5,544.5 373.5,544.25 373.5,545.25 L 370.875,545.625 C 370.875,545.625 370,544.875 369.75,546 C 369.5,547.125 370.75,548.125 370.75,548.125 C 370.75,548.125 369,550.75 369.25,551.375 C 369.5,552 370.125,553 369.875,553.5 C 369.625,554 369.75,554.25 369.125,554.75 C 368.5,555.25 369,555.75 368.625,556.25 C 368.25,556.75 367.875,557.5 367,557.875 C 366.125,558.25 365.875,558.875 365.875,558.875 L 365.25,560 C 365.25,560 364.75,560.625 365.375,561.375 C 366,562.125 366.625,561.625 366.25,563 C 365.875,564.375 366,564.75 366,564.75 C 366,564.75 367.25,563.375 367.125,567.125 C 367,570.875 366.375,571.75 366.375,571.75 C 366.375,571.75 365.75,571.625 366,572.75 C 366.25,573.875 366.75,574.875 366.125,575.5 C 365.5,576.125 365.625,575.125 364.625,577.125 C 363.625,579.125 364.625,581.875 365.25,582.5 C 365.875,583.125 366.375,583.25 366.25,584.5 C 366.125,585.75 365.5,585.875 366,586.75 C 366.5,587.625 368.125,588.25 368.375,589.125 C 368.625,590 368.125,590.625 368.625,591.25 C 369.125,591.875 369.75,592.375 369.75,592.375 C 369.75,592.375 369.5,593.375 369.5,594.5 C 369.5,595.625 369,595.5 369,596.5 C 369,597.5 369,598.75 369.5,597.5 C 370,596.25 369.875,596.25 370.375,595.75 C 370.875,595.25 372.5,595.25 373,595.25 C 373.5,595.25 374,594.5 374.875,594.875 C 375.75,595.25 375.875,594.875 376.375,596.125 C 376.875,597.375 376.625,597.625 377.625,597.875 C 378.625,598.125 379.5,598 380.5,598 C 381.5,598 381.75,597.25 382,598.375 C 382.25,599.5 383.75,599.875 382.25,600.375 C 380.75,600.875 380.5,600.375 379,600.875 C 377.5,601.375 377.5,601.375 377,601.5 C 376.5,601.625 376.5,602 375.625,602.375 C 374.75,602.75 375.25,603.125 373.625,602.75 C 372,602.375 372.625,602.875 371.5,602.125 C 370.375,601.375 369.875,601 369.875,600.5 C 369.875,600 369.125,599.5 369.125,599.5 L 366.25,597 C 366.25,597 366,597 364.875,597 C 363.75,597 363.625,597 362.875,597 C 362.125,597 361.625,596.375 361.625,596.375 L 359.875,596.4375 C 359.875,596.4375 359.4375,596 359.6875,595.4375 C 359.9375,594.875 359.9375,594.875 359.625,594.8125 C 359.3125,594.75 358.4375,594.6875 357.875,594.5 C 357.3125,594.3125 357.875,593.5 357.75,593.25 C 357.625,593 356.4375,593 355.8125,592.9375 C 355.1875,592.875 354.3125,592.5625 353.8125,591.9375 C 353.3125,591.3125 353.4375,591.125 352.375,590.25 C 351.3125,589.375 351.625,589.25 350.6875,588.9375 C 349.75,588.625 349.4375,588.6875 349.25,587.9375 C 349.0625,587.1875 348.3125,587.0625 348,586.3125 C 347.6875,585.5625 348,585.0625 347.125,584.5 C 346.25,583.9375 346.0625,584.375 345.9375,583.1875 C 345.8125,582 346.125,581.4375 345.8125,580.8125 C 345.5,580.1875 345.6875,580.6875 345.1875,579.9375 C 344.6875,579.1875 344.4375,579.0625 344.25,578.1875 C 344.0625,577.3125 344.0625,576.875 343.75,576.3125 C 343.4375,575.75 342.875,575.5 342.8125,574.875 C 342.75,574.25 342.75,574 342.75,573.4375 C 342.75,572.875 342.9375,572.4375 342.625,571.1875 C 342.3125,569.9375 342.5,569.625 341.875,568.875 C 341.25,568.125 341.1875,568.625 340.6875,567 C 340.1875,565.375 339.625,565.125 339.9375,564.3125 C 340.25,563.5 340.4375,563.375 340.5,562.75 C 340.5625,562.125 340.9375,562.25 341,561.375 C 341.0625,560.5 341.0625,560.75 341.0625,559.5625 C 341.0625,558.375 340.3125,559.875 341.1875,556.625 C 342.0625,553.375 342.0625,553.5 342.125,552.75 C 342.1875,552 343.375,551.875 342.9375,550.5625 C 342.5,549.25 342.25,549.25 342.375,548.375 C 342.5,547.5 343,547.125 342.875,546.6875 C 342.75,546.25 342.9375,546.4375 342.75,545.9375 C 342.5625,545.4375 343.25,545.6875 342.4375,545.0625 C 341.625,544.4375 341.375,544.5625 341.25,543.625 C 341.125,542.6875 341.125,541.9375 341.1875,538.25 C 341.25,534.5625 341,534.3125 341.625,533.25 C 342.25,532.1875 342.5625,532.0625 342.5625,531.1875 C 342.5625,530.3125 343.0625,529.1875 342.6875,528.125 C 342.3125,527.0625 342,526.9375 342.375,526.3125 C 342.75,525.6875 343.0625,525.6875 343.0625,524.9375 C 343.0625,524.1875 343.0625,525.25 343.125,523.625 C 343.1875,522 342.6875,523.1875 343.3125,521.0625 C 343.9375,518.9375 344.1875,516.8125 344.25,515.75 C 344.3125,514.6875 344.375,514.375 344.0625,513.75 C 343.75,513.125 343.3125,510.125 343.3125,509.125 C 343.3125,508.125 343.5,508.375 343.75,507.375 C 344,506.375 344.0625,506.1875 344,505.875 C 343.9375,505.5625 344,505.25 344.1875,504.4375 C 344.375,503.625 344,501.9375 344.6875,500.1875 C 345.375,498.4375 345.5625,499.125 345.375,497.875 C 345.1875,496.625 343.75,494.625 344.1875,493.25 C 344.625,491.875 345.0625,492.125 345,490.3125 C 344.9375,488.5 344.75,486.0625 345.1875,485.0625 C 345.625,484.0625 345.875,480.625 345.6875,479.8125 L 345.875,479.75 C 346.25,476.875 344.75,474.375 344.75,474.375 C 344.75,474.375 346.25,472.75 347.125,472.5 C 348,472.25 348.125,474.125 347.875,475.125 C 347.625,476.125 348,477.125 349.125,478.25 C 350.25,479.375 351.5,480.625 352,481.5 C 352.5,482.375 353.75,483.125 354,484.125 C 354.25,485.125 354.625,486.125 355.875,487.125 C 357.125,488.125 357.875,487 358.125,486.25 C 358.375,485.5 358,483.75 358.25,482 C 358.5,480.25 360.75,482.25 360.75,482.25 C 360.75,482.25 361.625,484.125 362,484.75 C 362.375,485.375 364,485.125 364.75,484.375 C 365.5,483.625 366,483.75 366.5,483.75 C 367,483.75 368,484.75 369.75,484.5 C 371.5,484.25 371.625,484.125 373.125,485.5 C 374.625,486.875 373.375,487.625 374.75,488.5 C 376.125,489.375 376.125,488.5 377,488.875 C 377.875,489.25 377.375,490.375 378.75,491.25 C 380.125,492.125 383.75,491.375 385,491.875 C 386.25,492.375 385,493.5 385,494.375 C 385,495.25 385,497.625 384.375,497.875 C 383.75,498.125 382.875,499.875 383,501.25 C 383.125,502.625 386.375,501.25 387.75,500.625 C 389.125,500 389.75,500.125 391.125,498.875 C 392.5,497.625 396.25,495.5 396.25,495.5 z"
sodipodi:nodetypes="csscssssscssssssssssssssssscsssccscsssssccsscscsssssssscsssssssssssssssssccssccssssssssssssssssssssssssssssssssssssssssssssssssssssc" />
<text class="unit" x="350" y="530"></text>
</g>
<g>
<path class="area north-america" id="eastern_us"
style="opacity:1;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1.20000005;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4.32165003;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.58527132;display:inline;"
d="M 326.24139,264.27481 L 332.51696,264.36319 C 333.22407,264.71675 332.87052,269.6665 332.87052,269.6665 C 332.87052,269.6665 336.22927,267.89873 338.70415,268.60584 C 341.17902,269.31294 343.47712,265.42385 344.00745,267.72195 C 344.53778,270.02005 345.77522,271.96459 346.30555,272.6717 C 346.83588,273.37881 347.01265,274.43947 348.07331,277.26789 C 349.13397,280.09632 349.6643,282.92475 348.9572,284.16218 C 348.25009,285.39962 346.30555,287.16739 347.89654,288.05127 C 349.48753,288.93516 350.90174,290.34937 351.78562,291.23325 C 352.66951,292.11714 356.73537,288.93516 356.55859,287.69772 C 356.38182,286.46028 355.85149,285.5764 356.73537,285.22284 C 357.61926,284.86929 359.03347,285.39962 359.74058,284.51574 C 360.44768,283.63185 361.68512,282.04086 362.74578,282.21764 C 363.80644,282.39442 366.28131,281.51053 366.28131,281.51053 C 366.28131,281.51053 368.04908,280.9802 368.04908,280.09632 C 368.04908,280.09632 378.30213,279.83116 379.89312,278.85888 C 381.48411,277.88661 381.66089,278.06339 381.66089,278.06339 C 381.66089,278.06339 380.95378,274.1743 381.30733,273.90914 C 381.66089,273.64397 382.45638,273.37881 383.16349,272.6717 C 383.87059,271.96459 384.94642,271.9191 385.91869,272.09587 C 386.89096,272.27265 390.41133,274.35108 389.96939,276.29562 C 389.52745,278.24016 388.02485,281.86409 389.61584,281.95248 C 391.20683,282.04086 392.44426,281.86409 392.70943,282.92475 C 392.97459,283.98541 393.23976,284.7809 393.77009,284.95768 C 394.30042,285.13446 396.15657,284.42735 396.125,284.125 C 396.09343,283.82265 395.375,285.1875 394.6875,286.4375 C 394,287.6875 393,288.625 393,288.625 C 390.875,289.5 390.5,292.25 389.75,291.125 C 389,290 388,290 388.875,288.375 C 389.75,286.75 390.375,287 390.125,285.5 C 389.875,284 390.875,283.875 389.625,283.75 C 388.375,283.625 389,283.625 387.5,284.125 C 386,284.625 386.125,283 384.875,285 C 383.625,287 383.25,286.875 382.375,287.375 C 381.5,287.875 381.875,288.5 381.25,289.25 C 380.625,290 380.375,290.375 379.875,291 C 379.375,291.625 379.25,291.625 379.25,293 C 379.25,294.375 380.375,296.625 380.375,296.625 C 380.375,296.625 379.75,298.375 379,298.75 C 378.25,299.125 378.125,297.875 374.875,301.625 C 371.625,305.375 372,305.75 370,306.625 C 368,307.5 368.25,307.625 368.125,308.125 C 368,308.625 366.625,309.25 367.375,310.375 C 368.125,311.5 367.375,311.75 368.5,312.25 C 369.625,312.75 370.75,311.75 370.625,313.375 C 370.5,315 369.25,316.625 367.25,317.875 C 365.25,319.125 362.625,323 360,323.625 C 357.375,324.25 356.25,325.125 356.375,326.375 C 356.5,327.625 356.375,329.125 355,329.125 C 353.625,329.125 354.5,329.75 354.5,332.75 C 354.5,335.75 354.75,336.625 355.375,337.75 C 356,338.875 356.25,338.875 356.25,340.625 C 356.25,342.375 356.25,343.625 356.125,344.125 C 356,344.625 357.125,344.5 355.25,345.625 C 353.375,346.75 351.75,347.375 351,345.5 C 350.25,343.625 348.75,344.125 348.625,342.625 C 348.5,341.125 349.125,337.5 349.125,337.5 C 349.125,337.5 347.25,337 347,336 C 346.75,335 346,332.625 345.5,332.25 C 345,331.875 344,331 343,331.5 C 342,332 340.25,333 339.625,332.875 C 339,332.75 340.5,333 337,332 C 333.5,331 331.875,330.5 330.375,330.375 C 328.875,330.25 325.375,330.25 324.75,330.375 C 324.125,330.5 318.125,331.875 317.375,331.875 C 316.625,331.875 311.375,333.125 310,334.25 C 308.625,335.375 308.75,337.25 307.25,337.875 C 305.75,338.5 305.25,338.75 305.25,338.75 C 305.25,338.75 303.75,340.5 303.625,341.5 C 303.5,342.5 302.25,344.25 301.625,344.625 C 301,345 300.875,344.875 301.25,346 C 301.25,346 299.25,344.75 299.25,343.875 C 299.25,343 300.75,341.875 301.125,340.25 C 301.5,338.625 302.25,337.125 302.25,336.25 C 302.25,335.375 302.125,332.75 302.125,332.75 C 302.125,332.75 300.875,328.125 301.25,327.375 C 301.625,326.625 299.875,326.375 299.875,326.375 C 299.875,326.375 299.25,324.5 299.75,323.875 C 300.25,323.25 302.125,323.25 302.625,323 C 303.125,322.75 304.875,322.25 304.875,322.25 C 304.875,322.25 305.875,316.75 305.875,316.125 C 305.875,315.5 306.625,312.125 306.625,311.5 C 306.625,310.875 310,309.625 310.5,309.375 C 311,309.125 312.75,310.5 312.875,309.125 C 313,307.75 312.875,304.625 313,303.75 C 313.125,302.875 313.5,302.25 314,302 C 314.5,301.75 325.375,301.875 325.875,301.375 C 326.375,300.875 325.375,264.75 326.24139,264.27481 z"
sodipodi:nodetypes="ccsssssssssssccccssssssscccsssssssssscsssssssssssssssssscsssssssssscsscc" />
<text class="unit" x="335" y="310"></text>
</g>
<g>
<path class="area north-america" id="western_us"
style="opacity:1;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1.20000005;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4.32165003;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.58527132;display:inline;"
d="M 326.24139,264.27481 C 325.375,264.75 326.375,300.875 325.875,301.375 C 325.375,301.875 314.5,301.75 314,302 C 313.5,302.25 313.125,302.875 313,303.75 C 312.875,304.625 313,307.75 312.875,309.125 C 312.75,310.5 311,309.125 310.5,309.375 C 310,309.625 306.625,310.875 306.625,311.5 C 306.625,312.125 305.875,315.5 305.875,316.125 C 305.875,316.75 304.875,322.25 304.875,322.25 C 304.875,322.25 303.125,322.75 302.625,323 C 302.125,323.25 300.25,323.25 299.75,323.875 C 299.25,324.5 299.875,326.375 299.875,326.375 C 299.875,326.375 301.625,326.625 301.25,327.375 C 300.875,328.125 302.125,332.75 302,332.5 C 301.875,332.25 298.625,332.5 297.625,332.625 C 296.625,332.75 295.375,331.75 295,331.25 C 294.625,330.75 294.25,330.125 293.125,330.125 C 292,330.125 289.75,327.375 289.125,326.875 C 288.5,326.375 280.75,326.875 279.75,326.875 C 278.75,326.875 277.375,324.5 277.375,324.5 L 273.5,322.375 C 273.5,322.375 266.875,322.375 265.75,322.5 C 264.625,322.625 264,319.125 264,319.125 C 263.5,317 263.25,317.5 263.25,315.625 C 263.25,313.75 260.375,310.125 259,308.125 C 257.625,306.125 257.625,300.75 257.875,299.375 C 258.125,298 257.625,293 258.5,290.875 C 259.375,288.75 259.375,285.75 260,282.875 C 260.625,280 259.875,280.625 261.375,277 C 262.875,273.375 262.75,275.75 263,272.625 C 263.25,269.5 264.25,271.375 264.375,268.75 C 264.5,266.125 265,264.875 264.125,263.625 C 264.125,263.625 263.875,264.375 264.875,264.625 C 265.875,264.875 322.375,265.25 326.24139,264.27481 z"
sodipodi:nodetypes="cssssssscsscscsssssccscssssssssc" />
<text class="unit" x="275" y="300"></text>
</g>
<g>
<path class="area north-america" id="quebec"
style="opacity:1;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1.20000005;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4.32165003;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.58527132;display:inline;"
d="M 359.74058,259.23667 C 359.74058,259.23667 360.44768,255.52436 361.68512,254.64048 C 362.92256,253.75659 363.62966,248.98362 363.09933,247.92296 C 362.569,246.8623 361.68512,246.50875 362.39223,244.91776 C 363.09933,243.32677 362.74578,240.67512 364.51355,241.20545 C 366.28131,241.73578 368.04908,241.559 368.40263,240.32156 C 368.75619,239.08413 368.22586,239.08413 368.40263,238.02347 C 368.57941,236.96281 369.46329,236.60925 370.1704,236.43248 C 370.87751,236.2557 371.40784,236.78603 370.87751,234.31116 C 370.34718,231.83628 370.87751,232.89694 370.1704,231.12918 C 369.46329,229.36141 369.99362,230.42207 369.28652,228.83108 C 368.57941,227.24009 368.04908,224.76521 369.81685,224.58844 C 371.58461,224.41166 369.64007,222.29034 370.87751,221.76001 C 372.11494,221.22968 374.41304,221.93679 373.88271,219.81547 C 373.35238,217.69415 370.70073,213.45151 372.4685,213.27473 C 374.23626,213.09795 376.75,214 376.75,214 L 383,214.375 C 383,214.375 382.375,216.75 384.25,217 C 386.125,217.25 386.375,218.375 387,218.75 C 387.625,219.125 388.625,220 388.375,220.5 C 388.125,221 388.125,221.5 388.25,222.375 C 388.375,223.25 389,224.5 388.5,224.75 C 388,225 387.5,225.75 387.625,226.75 C 387.75,227.75 388.125,229.25 388.125,229.25 C 388.125,229.25 389.125,230.625 390.375,230 C 391.625,229.375 391.25,228.875 392.875,228.125 C 394.5,227.375 394.5,229 395.5,227.375 C 396.5,225.75 396.375,225.5 396.625,224.875 C 396.875,224.25 398.125,222.625 399.125,223.125 C 400.125,223.625 398.80823,228.12397 399.86889,229.71496 C 400.92955,231.30595 402.375,229.125 402.5,229.875 C 402.625,230.625 402.75,231.5 402.875,232.125 C 403,232.75 402.125,233.25 402.875,234.25 C 403.625,235.25 403.75,235.5 403.625,236.25 C 403.5,237 404,237.625 404,237.625 C 404,237.625 405.375,236.375 406,237.875 C 406.625,239.375 406.125,240.25 407.25,240.25 C 408.375,240.25 409.625,242 409.625,242 L 410.125,244.625 L 413,242.625 L 415.75,243.5 C 415.75,243.5 411.9375,245.25 412.6875,247.0625 C 413.4375,248.875 417.3125,244.9375 417.25,247.375 C 417.1875,249.8125 416.75,252.3125 415.8125,252.4375 C 414.875,252.5625 413.375,253.375 413.25,253.9375 C 413.125,254.5 411.375,255.625 410.25,255.875 C 409.125,256.125 410.875,257.125 408.5,257.5 C 406.125,257.875 405.375,257.75 404.875,257.75 C 404.375,257.75 404.375,258.25 403.75,259.375 C 403.125,260.5 403.625,260.875 403,261.375 C 402.375,261.875 405.25,261.375 401.375,262.25 C 397.5,263.125 396.875,263.375 396.875,263.375 C 396.875,263.375 396.625,263.75 395.375,263.75 C 394.125,263.75 393.625,263.125 393.625,263.125 C 393.625,263.125 393.375,262.5 391.625,262.5 C 389.875,262.5 388.25,264.125 388.25,264.125 C 388.25,264.125 387.75,264.75 386.75,264.875 C 385.75,265 384.375,266.25 384.375,266.25 C 384.375,266.25 383,266.625 383.375,268.125 C 383.75,269.625 385.125,271 386,270 C 386.875,269 388.25,265 390.125,265.375 C 392,265.75 394.5,266.5 394,269.25 C 393.5,272 393.375,271.5 393.75,272.875 C 394.125,274.25 395,275 394.875,276.25 C 394.75,277.5 393.625,277.125 395,278.25 C 396.375,279.375 397.875,281.125 398.375,279.5 C 398.875,277.875 399.5,276.75 400.125,277 C 400.75,277.25 402.5,276.5 401.25,279 C 400,281.5 400.25,281.625 399.125,282.375 C 398,283.125 398.125,281.125 396.125,284.125 C 396.15657,284.42735 394.30042,285.13446 393.77009,284.95768 C 393.23976,284.7809 392.97459,283.98541 392.70943,282.92475 C 392.44426,281.86409 391.20683,282.04086 389.61584,281.95248 C 388.02485,281.86409 389.52745,278.24016 389.96939,276.29562 C 390.41133,274.35108 386.89096,272.27265 385.91869,272.09587 C 384.94642,271.9191 383.87059,271.96459 383.16349,272.6717 C 382.45638,273.37881 381.66089,273.64397 381.30733,273.90914 C 380.95378,274.1743 381.66089,278.06339 381.66089,278.06339 C 381.66089,278.06339 381.48411,277.88661 379.89312,278.85888 C 378.30213,279.83116 368.04908,280.09632 368.04908,280.09632 C 368.04908,279.21244 368.04908,276.20723 366.98842,276.38401 C 365.92776,276.56079 366.10454,277.09112 365.39743,276.56079 C 364.69032,276.03046 364.51355,275.32335 363.80644,276.03046 C 363.09933,276.73756 363.45289,278.32855 362.74578,278.15178 C 362.03867,277.975 360.97801,276.38401 360.27091,276.56079 C 359.5638,276.73756 358.50314,278.15178 358.50314,278.15178 C 358.50314,278.15178 358.85669,261.18121 359.5638,259.23667 L 359.74058,259.23667 z"
sodipodi:nodetypes="cssssssssssssssccsssssscsssssssssscssccccsssssssssscscscscssssssssssscssssssscscsssssccc" />
<text class="unit" x="375" y="260"></text>
</g>
<g>
<path class="area north-america" id="central_america"
style="opacity:1;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1.20000005;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4.32165003;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.58527132;display:inline;"
d="M 264,319.125 C 264,319.125 264.625,322.625 265.75,322.5 C 266.875,322.375 273.5,322.375 273.5,322.375 L 277.375,324.5 C 277.375,324.5 278.75,326.875 279.75,326.875 C 280.75,326.875 288.5,326.375 289.125,326.875 C 289.75,327.375 292,330.125 293.125,330.125 C 294.25,330.125 294.625,330.75 295,331.25 C 295.375,331.75 296.625,332.75 297.625,332.625 C 298.625,332.5 301.875,332.25 302.0625,332.625 C 302.125,332.75 302.25,335.375 302.25,336.25 C 302.25,337.125 301.5,338.625 301.125,340.25 C 300.75,341.875 299.25,343 299.25,343.875 C 299.25,344.75 301.25,346 301.25,346 C 300.7489,348.79276 300.36384,351.46949 301.5,352.625 L 301.625,354.875 L 303.125,357.5 C 303.125,357.5 305.375,360.75 308.25,359.875 C 311.125,359 309.75,359.625 312.125,358.5 C 314.5,357.375 313.75,359.75 315,357.25 C 316.25,354.75 315.375,354.5 316.75,354 C 318.125,353.5 317.375,353 319.125,353.5 C 320.875,354 319.25,354.125 321.5,354.25 C 323.75,354.375 324,351.875 323.75,354.75 C 323.5,357.625 323.25,357.75 323,358.5 C 322.75,359.25 323.375,358.375 322.5,360 C 321.625,361.625 321.125,361.75 320.5,362.125 C 319.875,362.5 319.5,362.75 319.5,363.875 C 319.5,365 319.75,365.875 318.625,366.375 C 317.5,366.875 316.375,366.25 316.625,367.625 C 316.875,369 316.5,369.375 317.5,370 C 318.5,370.625 319.25,370.75 319.875,371.875 C 320.5,373 320.75,374.375 320.5,374.875 C 320.25,375.375 320.375,377 319.625,377.375 C 318.875,377.75 317.875,377.5 317.875,379.125 C 317.875,380.75 318.625,382 317.875,382.375 C 317.125,382.75 315.875,381.875 315.625,382.75 C 315.375,383.625 315.25,384.375 315.125,385.125 C 315,385.875 314.375,386 314.375,386.5 C 314.375,387 314.375,386.75 314.375,388.125 C 314.375,389.5 313.5,390.375 314.75,390.625 C 316,390.875 316.625,391.25 317.25,390.875 C 317.875,390.5 318.625,390.375 319.125,390 C 319.625,389.625 320.375,388.625 321.125,388.625 C 321.875,388.625 323.375,389 323.375,389 C 323.375,389 324.125,390.875 324,391.5 C 323.875,392.125 324.375,392 324.25,393.5 C 324.125,395 324.125,396.125 323.875,396.625 C 323.625,397.125 323.25,397.625 323,398.125 C 322.75,398.625 323,398.625 322.75,399.375 C 322.5,400.125 322.875,401.25 322.25,400.75 C 321.625,400.25 322,400.25 321.625,399.75 C 321.25,399.25 321,398.625 320.25,397.375 C 319.5,396.125 319.625,396.875 318.125,396.125 C 316.625,395.375 316.75,394.5 315.75,395 C 314.75,395.5 315.125,396.375 314,395.625 C 312.875,394.875 312.5,394.875 311.875,393.875 C 311.25,392.875 311.375,393 311,392.25 C 310.625,391.5 309.625,392 309.625,390.625 C 309.625,389.25 310,389 309.625,388.25 C 309.25,387.5 308.875,387.125 308.625,386.5 C 308.375,385.875 308.25,386.375 308.25,385.125 C 308.25,383.875 308.25,383 308.25,382.5 C 308.25,382 307.75,380 307.75,380 L 307.125,378.75 C 307.125,378.75 307,378.625 306.5,377.875 C 306,377.125 306,377.5 305.625,376.25 C 305.25,375 304.375,373.5 304.125,372.5 C 303.875,371.5 302.5,370.25 298.375,368.75 C 294.25,367.25 294.5,366.875 291,366.125 C 287.5,365.375 286.25,364.75 286.25,363.25 C 286.25,361.75 286.25,361.25 285.375,360.75 C 284.5,360.25 283.625,360.125 284,359.25 C 284.375,358.375 285,358.25 285.625,357.125 C 286.25,356 286.375,355.75 286.375,354.875 C 286.375,354 286.75,353.875 285.375,353.25 C 284,352.625 281.25,350.25 281.25,350.25 C 281.25,350.25 282.875,349.875 279.375,350.375 C 275.875,350.875 275.625,352.875 274.625,351.625 C 273.625,350.375 275.375,346 274.125,345.375 C 272.875,344.75 273,345.625 272.25,344 C 271.5,342.375 272.125,341 271.75,339.625 C 271.375,338.25 271.75,340.375 270.75,335.75 C 269.75,331.125 271.625,332.375 269.375,329.75 C 267.125,327.125 264.375,327.375 264.125,325.25 C 264.125,325.25 264.1875,319.625 264,319.125 z"
sodipodi:nodetypes="csccssssscsssccccssssssssssssssssssssssssssscssssssssssssssssssccssssssssssscsssssssc" />
<text class="unit" x="285" y="365"></text>
</g>
<g>
<path class="area south-america" id="peru"
style="opacity:1;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1.20000005;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4.32165003;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.58527132;display:inline;"
d="M 347.125,472.5 C 348,472.25 348.125,474.125 347.875,475.125 C 347.625,476.125 348,477.125 349.125,478.25 C 350.25,479.375 351.5,480.625 352,481.5 C 352.5,482.375 353.75,483.125 354,484.125 C 354.25,485.125 354.625,486.125 355.875,487.125 C 357.125,488.125 357.875,487 358.125,486.25 C 358.375,485.5 358,483.75 358.25,482 C 358.5,480.25 360.75,482.25 360.75,482.25 C 360.75,482.25 361.625,484.125 362,484.75 C 362.375,485.375 364,485.125 364.75,484.375 C 365.5,483.625 366,483.75 366.5,483.75 C 367,483.75 368,484.75 369.75,484.5 C 371.5,484.25 371.625,484.125 373.125,485.5 C 374.625,486.875 373.375,487.625 374.75,488.5 C 376.125,489.375 376.125,488.5 377,488.875 C 377.875,489.25 377.375,490.375 378.75,491.25 C 380.125,492.125 383.75,491.375 385,491.875 C 386.25,492.375 385,493.5 385,494.375 C 385,495.25 385,497.625 384.375,497.875 C 383.75,498.125 382.875,499.875 383,501.25 C 383.125,502.625 386.375,501.25 387.75,500.625 C 389.125,500 389.75,500.125 391.125,498.875 C 392.5,497.625 396.25,495.5 396.25,495.5 C 396.125,493.75 393.25,492.75 392.875,490.125 C 392.5,487.5 392.125,485.625 391.5,485.125 C 390.875,484.625 390.25,485.125 389.375,483.75 C 388.5,482.375 387.875,481.875 386.375,481 C 384.875,480.125 385.625,478.75 385.875,477.625 C 386.125,476.5 384.875,473.25 384.125,471.75 C 383.375,470.25 382.5,470.25 382.125,468.5 C 381.75,466.75 381.625,466.25 380.5,465.375 C 379.375,464.5 377.875,464.375 377.625,463.625 C 377.375,462.875 377.875,461.875 377.125,461.125 C 376.375,460.375 375.75,458.625 375.125,457.375 C 374.5,456.125 372.25,457.25 370.625,457.25 C 369,457.25 369,455.125 368,454.5 C 367,453.875 366,454.375 364.875,453.875 C 363.75,453.375 364.25,452.5 362.75,452.375 C 361.25,452.25 361.125,451.125 360.375,449.875 C 359.625,448.625 357.25,447.5 356.25,447.625 C 355.25,447.75 354.875,449 354.375,449.5 C 353.875,450 352,450 350.125,450.375 C 348.25,450.75 345.75,452.625 343,452.75 C 340.25,452.875 340.375,449.875 340.625,448.5 C 340.875,447.125 344.5,446.75 344.75,444.625 C 345,442.5 341.5,444.375 340.125,443.625 C 338.75,442.875 335.25,442.75 335.125,441.75 C 335,440.75 333.75,440.625 332.75,440.625 C 331.75,440.625 330.375,439.375 329.625,438 C 328.875,436.625 330.875,436 331,435 C 331.125,434 333.875,434.375 334.875,433.625 C 335.875,432.875 335.625,429 335.75,428.375 C 335.875,427.75 339.94159,427.79325 339.94159,427.79325 C 339.94159,427.79325 339.14609,425.67193 338.61576,425.1416 C 338.08543,424.61127 337.11316,424.3461 336.40605,424.16933 C 335.69894,423.99255 334.5499,422.75511 333.66601,422.8435 C 332.78213,422.93189 330.48403,422.93189 329.86531,422.22478 C 329.2466,421.51768 328.18594,420.72218 326.59495,420.63379 C 325.00395,420.5454 324.29685,421.69445 323.23619,420.01507 C 322.17553,418.3357 320.23098,416.0376 319.70065,415.94921 C 319.17032,415.86082 316.69545,415.59566 317.375,414.875 C 315.5,416.125 315.625,418.625 314.875,420.5 C 314.125,422.375 313.5,423.125 312.875,425.125 C 312.25,427.125 313.25,426.625 314,428.75 C 314.75,430.875 313.75,429.75 313.375,431 C 313,432.25 313.25,436.25 313.25,436.25 C 313.25,436.25 314.125,438.875 314.625,439.375 C 315.125,439.875 317.125,442.125 317.125,442.125 C 317.125,442.125 316.875,443.75 317.375,445.75 C 317.875,447.75 318.75,447 319.25,448 C 319.75,449 321.75,451.125 322.375,451.625 C 323,452.125 324.375,454.25 325.75,454.75 C 327.125,455.25 326.125,457.125 326,458.125 C 325.875,459.125 327.375,461.375 327.875,462.375 C 328.375,463.375 328.625,462.625 329.125,463.375 C 329.625,464.125 331,465.125 331.875,465.625 C 332.75,466.125 333.625,466.25 333.625,466.25 C 333.625,466.25 334.875,467.375 335.75,468 C 336.625,468.625 337.75,468.875 338.5,469.125 C 339.25,469.375 340.5,472.125 341.125,472.75 C 341.125,472.75 343.875,473.875 344.5,474 C 345.125,474.125 346.25,472.625 347.125,472.5 z"
sodipodi:nodetypes="cssssssscsssssssssssssscssssssssssssssssssssssssssssscssssssscsssscscsssssssscsss" />
<text class="unit" x="340" y="470"></text>
</g>
<g>
<path class="area oceania" id="western_australia"
style="opacity:1;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1.20000005;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4.32165003;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.58527132;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
d="M 862.4935,599.88536 L 862.72892,599.61589 C 862.72892,599.61589 862.72892,593.95904 862.9057,592.54482 C 863.08248,591.13061 862.55215,591.30739 861.84504,590.24673 C 861.13793,589.18607 862.72892,547.9971 862.55215,547.11321 C 862.37537,546.22933 832.67689,547.46677 832.67689,547.46677 L 832.08791,509.72925 L 829.96659,508.49181 C 829.96659,508.49181 828.3756,507.43115 827.49171,506.90082 C 826.60783,506.37049 825.90072,508.84536 825.19361,509.19892 C 824.48651,509.55247 822.36519,510.78991 822.36519,510.78991 C 822.36519,510.78991 821.83486,512.55767 821.4813,513.79511 C 821.12775,515.03255 819.53676,513.97189 817.59222,514.679 C 815.64767,515.3861 817.41544,515.3861 816.88511,517.15387 C 816.35478,518.92164 816.35478,517.33065 814.76379,517.33065 C 813.1728,517.33065 814.05668,518.03775 812.99602,519.45197 C 811.93536,520.86618 811.75859,519.80552 810.34437,521.04296 C 808.93016,522.28039 809.99082,522.28039 809.10694,524.04816 C 808.22305,525.81593 808.04628,524.93204 806.98562,525.63915 C 805.92495,526.34626 804.15719,528.11402 803.09653,529.17468 C 802.03587,530.23534 801.50554,529.70501 799.38422,529.52824 C 797.2629,529.35146 798.50033,529.52824 796.90934,529.70501 C 795.31835,529.88179 795.67191,530.94245 794.61125,531.82633 C 793.55059,532.71022 793.02026,533.06377 791.78282,534.30121 C 790.54538,535.53865 791.25249,534.83154 789.30795,535.00832 C 787.3634,535.18509 788.24729,535.18509 786.30274,536.42253 C 784.3582,537.65997 786.12597,538.01352 785.94919,539.42773 C 785.77241,540.84195 785.41886,540.84195 784.88853,542.07938 C 784.3582,543.31682 784.88853,543.67037 785.41886,545.08459 C 785.94919,546.4988 787.00985,545.61492 787.00985,545.61492 C 787.00985,545.61492 786.6563,547.73624 787.00985,548.44334 C 787.3634,549.15045 786.83307,548.44334 785.24208,548.44334 C 783.65109,548.44334 784.53497,548.97367 784.53497,550.21111 C 784.53497,551.44855 784.53497,551.44855 784.53497,551.44855 C 784.53497,551.44855 784.00464,551.62532 783.47431,552.68598 C 782.94398,553.74665 783.47431,553.56987 783.65109,554.80731 C 783.82787,556.04474 784.00464,556.57507 784.53497,557.81251 C 785.0653,559.04995 785.59563,558.69639 786.47952,560.64094 C 787.3634,562.58548 786.83307,562.76226 786.83307,564.53002 C 786.83307,566.29779 786.83307,565.76746 787.00985,568.06556 C 787.18663,570.36365 788.24729,569.65655 788.24729,569.65655 C 788.24729,569.65655 789.48472,570.54043 790.19183,571.07076 C 790.89894,571.60109 790.89894,572.13142 791.25249,573.89919 C 791.60604,575.66696 790.72216,575.3134 790.36861,576.37406 C 790.01505,577.43472 790.36861,577.08117 790.19183,579.20249 C 790.01505,581.32381 789.30795,580.43993 788.60084,581.32381 C 787.89373,582.20769 788.07051,582.20769 787.54018,583.62191 C 787.00985,585.03612 787.54018,584.68257 788.42406,585.38967 C 789.30795,586.09678 790.36861,586.62711 791.42927,587.51099 C 793.87008,590.1838 796.49259,589.50055 799.56099,587.86455 C 801.15198,586.98066 800.44488,586.80389 801.68231,586.27356 C 802.91975,585.74323 802.5662,585.92 803.2733,585.56645 C 803.98041,585.2129 804.51074,584.68257 805.5714,583.62191 C 806.63206,582.56125 805.92495,583.44513 807.16239,582.73802 C 808.39983,582.03092 808.57661,581.50059 810.52115,580.79348 C 812.46569,580.08637 812.99602,580.6167 812.99602,580.6167 C 812.99602,580.6167 812.99602,580.6167 814.58701,580.6167 C 816.178,580.6167 815.29412,580.79348 815.64767,581.50059 C 816.00123,582.20769 817.06189,582.20769 817.76899,582.20769 C 818.4761,582.20769 819.53676,582.03092 820.42064,581.67736 C 821.30453,581.32381 820.24387,580.08637 820.24387,579.37927 C 820.24387,578.67216 820.24387,578.49538 820.7742,577.25795 C 821.30453,576.02051 822.89552,575.66696 823.60262,575.66696 C 824.30973,575.66696 826.0775,575.3134 826.7846,574.6063 C 827.49171,573.89919 827.84527,574.25274 829.25948,574.07597 C 830.67369,573.89919 830.49692,573.54563 831.55758,572.48497 C 832.61824,571.42431 832.61824,571.95464 834.56278,571.95464 C 836.50732,571.95464 835.62344,571.95464 837.56798,571.95464 C 839.51253,571.95464 839.33575,572.13142 840.57319,572.3082 C 841.81062,572.48497 842.51773,573.72241 843.40161,574.25274 C 844.2855,574.78307 843.75517,574.95985 843.75517,576.37406 C 843.75517,577.78828 843.93194,577.96505 845.34616,580.43993 C 846.76037,582.9148 847.46748,582.9148 847.46748,582.9148 C 847.46748,582.9148 848.70492,581.14703 849.76558,579.55604 C 850.82624,577.96505 850.64946,579.02571 852.24045,578.49538 C 853.83144,577.96505 852.77078,577.43472 853.12433,575.13663 C 853.47789,572.83853 854.18499,574.42952 855.42243,574.6063 C 856.65987,574.78307 855.42243,576.90439 855.06888,578.14183 C 854.71532,579.37927 854.00822,579.73282 853.12433,580.6167 C 852.24045,581.50059 852.24045,581.67736 851.17979,582.9148 C 850.11913,584.15224 850.64946,583.97546 850.82624,585.38967 C 851.00301,586.80389 852.77078,584.15224 853.47789,583.09158 C 854.18499,582.03092 854.18499,582.73802 855.06888,582.9148 C 855.95276,583.09158 855.24565,585.2129 855.24565,586.27356 C 855.24565,587.33422 855.42243,587.15744 856.30631,587.68777 C 857.1902,588.2181 857.1902,589.27876 856.65987,590.69297 C 856.12954,592.10719 856.65987,592.10719 856.83664,593.16785 C 857.01342,594.22851 858.95796,596.88016 859.66507,597.58727 C 860.37218,598.29437 860.1954,597.94082 860.90251,598.29437 C 861.60961,598.64793 861.25606,599.00148 862.4935,599.88536 z"
sodipodi:nodetypes="ccssscccsscsssssssssssssssssscssscsssssscsssssssccssssscsssssssssssssssscssssssssssssssssc" />
<text class="unit" x="800" y="555"></text>
</g>
<g>
<path class="area north-america" id="alberta"
style="opacity:1;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1.20000005;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4.32165003;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.58527132;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
d="M 253.37151,214.74788 C 253.37151,214.74788 253.49651,214.87288 253.99651,216.37288 C 254.49651,217.87288 254.87151,218.87288 255.99651,220.87288 C 257.12151,222.87288 256.12151,228.87288 256.12151,228.87288 L 258.12151,231.62288 C 258.12151,231.62288 259.74651,232.37288 260.37151,232.49788 C 260.99651,232.62288 260.74651,235.74788 260.62151,236.99788 C 260.49651,238.24788 258.99651,237.62288 258.12151,237.87288 C 257.24651,238.12288 256.99651,240.24788 256.87151,241.49788 C 256.74651,242.74788 254.5,242.25 254.5,242.25 C 255.125,243.5 256.375,243.625 256.875,245.875 C 257.375,248.125 257.125,247.375 257.75,248.25 C 258.375,249.125 259.5,249.25 259.75,251.25 C 260,253.25 260,252.125 261.375,254.75 C 262.75,257.375 261.5,258.5 261.75,260.875 C 262,263.25 263.25,262.375 264.125,263.625 L 264.49651,264.99788 L 312.49651,264.87288 L 316.49651,216.49788 C 316.49651,216.49788 253.62151,214.74788 253.37151,214.74788 z"
sodipodi:nodetypes="cssccsssscsssssc" />
<text class="unit" x="275" y="250"></text>
</g>
</g>
<style xmlns="" type="text/css" id="undefined" />
</svg>
</div>
<div class="combat-log-container">
<div class="combat-log-header">Vault-Tec Action Log</div>
<div class="combat-log-messages" id="combat-log"></div>
</div>
<div id="win-modal" class="overlay" style="display: none;">
<div class="win-content content">
<p class="win-message"></p>
<p>HAS DOMINATED THE WASTELAND!</p>
<button id="play-again">Start New Simulation</button>
</div>
</div>
<div id="help-modal" class="overlay" style="display: none; z-index: 10010;">
<div class="start-modal content help-modal-content" style="display: flex; flex-direction: column; height: 85vh; padding: 20px 30px; background: var(--pip-dark) !important; position: relative;">
<div id="help-os-header" style="text-align: center; margin-bottom: 55px;">
<p style="font-size: 22px; margin: 0; line-height: 1.2;">
ROBCO INDUSTRIES UNIFIED OPERATING SYSTEM<br>
COPYRIGHT 2075-2077 ROBCO INDUSTRIES<br>
- SURVIVAL GUIDE -
</p>
</div>
<div id="help-os-screen" style="flex-grow: 1; overflow-y: auto; font-size: 22px; line-height: 1.2; text-align: left; z-index: 2;">
</div>
<img id="help-root-art" src="data:image/png;base64,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" style="display: none; position: absolute; bottom: 20px; right: 30px; height: 35vh; opacity: 0.20; pointer-events: none; z-index: 1; mix-blend-mode: screen;">
<div id="help-version-stamp" style="position: absolute; bottom: 20px; right: 60px; opacity: 0.5; font-size: 18px; z-index: 10; display: none;">v2.4 [051326]</div>
<button id="close-help-btn" style="display: none;"></button>
</div>
</div>
<div id="nuke-modal" class="overlay" style="display: none; z-index: 10005;">
<div class="start-modal content" style="border-color: #ff3333; text-align: center; max-width: 400px;">
<h2 style="color: #ff3333; border-bottom: 2px solid #ff3333; padding-bottom: 10px;">DEFCON 1:
CONFIRM LAUNCH</h2>
<p id="nuke-target-text" style="font-size: 16px; margin: 20px 0; color: #fff;"></p>
<div style="display: flex; gap: 10px; margin-top: 20px;">
<button id="confirm-nuke-btn"
style="border-color: #ff3333; color: #ff3333; flex: 1;">INITIATE</button>
<button id="cancel-nuke-btn" style="flex: 1;">ABORT</button>
</div>
</div>
</div>
<!-- NEW CHEM FRENZY MODAL -->
<div id="chem-frenzy-modal" class="overlay" style="display: none; z-index: 10005;">
<div class="start-modal content" style="max-width: 450px; text-align: center;">
<h2 style="color: #ffcc00;">CHEM FRENZY</h2>
<p id="frenzy-message" style="margin: 20px 0;">Sacrifice a portion of your attacking force for a massive combat bonus. The higher the risk, the greater the reward.</p>
<div style="margin: 20px 0;">
<label style="font-size: 16px; color: var(--pip-color);">Troops to Sacrifice: <span id="frenzy-troops-val" style="font-weight: bold;">0</span></label>
<input type="range" id="frenzy-slider" min="0" max="1" value="0" style="width: 100%; cursor: pointer; margin-top: 5px;">
<div style="font-size: 14px; color: var(--pip-color); opacity: 0.8;">
Resulting Win Bonus: +<span id="frenzy-bonus-val">0</span>%
</div>
</div>
<div style="display: flex; gap: 10px; margin-top: 20px;">
<button id="frenzy-confirm-btn" style="flex: 1;">USE FRENZY</button>
<button id="frenzy-cancel-btn" style="flex: 1;">CANCEL</button>
</div>
</div>
</div>
<div id="tactical-modal" class="overlay" style="display: none; z-index: 10005;">
<div class="start-modal content" style="max-width: 400px; text-align: center; border-color: #ff3333;">
<h2 style="color: #ff3333; border-bottom: 2px solid #ff3333; letter-spacing: 2px;">TACTICAL DECISION
REQUIRED</h2>
<p id="tactical-message" style="margin: 20px 0; font-size: 16px; color: var(--pip-color);"></p>
<div style="display: flex; flex-direction: column; gap: 15px; margin-top: 20px;">
<button id="tactical-assault-btn"
style="border-color: var(--pip-color); color: var(--pip-color); font-weight: bold;">
ASSAULT GARRISON (Standard Combat)
</button>
<button id="tactical-ambush-btn"
style="border-color: #ffcc00; color: #ffcc00; font-weight: bold;">
AMBUSH COMMANDER (Suppressive Fire)
</button>
<button id="tactical-cancel-btn" style="border-color: #555; color: #aaa; margin-top: 10px;">
ABORT ORDER
</button>
</div>
</div>
</div>
<!-- MULTI-COMMANDER DUEL MODAL -->
<div id="multi-cmdr-modal" class="overlay" style="display: none; z-index: 10006;">
<div class="start-modal content" style="max-width: 400px; padding: 20px; border-color: #ffcc00;">
<h2 style="color: #ffcc00; margin-top: 0; border-bottom: 2px solid #ffcc00;">MULTIPLE Commanders DETECTED</h2>
<p style="font-size: 18px; margin: 15px 0;">Select which Commander to engage:</p>
<div id="multi-cmdr-choices" style="display: flex; flex-direction: column; gap: 10px;">
<!-- JS will populate buttons here -->
</div>
<button id="multi-cmdr-cancel" style="margin-top: 20px; border-color: #555; color: #aaa;">Cancel Duel</button>
</div>
</div>
<!-- INVENTORY MODAL -->
<div id="inventory-modal" class="overlay" style="display: none; z-index: 10001;">
<div class="start-modal content" style="max-width: 450px;">
<h2 style="font-size: 24px; text-align: center; margin: 0 0 10px 0; text-shadow: var(--pip-glow);">
INVENTORY</h2>
<div id="inventory-content" style="display: flex; flex-direction: column; gap: 8px; width: 100%;">
<div id="inv-stimpak-item" class="special-item found" style="text-align: center;">
<div class="special-title">STIMPAKS</div>
<div id="inv-stimpak-count" style="font-size: 24px; font-weight: bold; margin-top: 5px;">0
</div>
</div>
<div
style="width: 100%; text-align: center; color: var(--pip-color); margin: 5px 0; border-top: 1px dashed var(--pip-color); padding-top: 10px;">
BOBBLEHEADS</div>
<div class="special-item" id="bobblehead-s">
<div class="special-title">STRENGTH BOBBLEHEAD</div>
<div class="special-desc">Grants an attack modifier for 1 turn.</div>
<button class="bobble-activate-btn">[ NOT FOUND ]</button>
<div class="cooldown-timer" style="display: none;"></div>
</div>
<div class="special-item" id="bobblehead-p">
<div class="special-title">PERCEPTION BOBBLEHEAD</div>
<div class="special-desc">Reveals all territories for 1 turn.</div>
<button class="bobble-activate-btn">[ NOT FOUND ]</button>
<div class="cooldown-timer" style="display: none;"></div>
</div>
<div class="special-item" id="bobblehead-e">
<div class="special-title">ENDURANCE BOBBLEHEAD</div>
<div class="special-desc">Reduces defender losses for 1 turn.</div>
<button class="bobble-activate-btn">[ NOT FOUND ]</button>
<div class="cooldown-timer" style="display: none;"></div>
</div>
<div class="special-item" id="bobblehead-c">
<div class="special-title">CHARISMA BOBBLEHEAD</div>
<div class="special-desc">Improves Bottle Cap trades this turn.</div>
<button class="bobble-activate-btn">[ NOT FOUND ]</button>
<div class="cooldown-timer" style="display: none;"></div>
</div>
<div class="special-item" id="bobblehead-i">
<div class="special-title">INTELLIGENCE BOBBLEHEAD</div>
<div class="special-desc">Reveals all enemy leaderboard data.</div>
<button class="bobble-activate-btn">[ NOT FOUND ]</button>
<div class="cooldown-timer" style="display: none;"></div>
</div>
<div class="special-item" id="bobblehead-a">
<div class="special-title">AGILITY BOBBLEHEAD</div>
<div class="special-desc">Grants one extra army maneuver.</div>
<button class="bobble-activate-btn">[ NOT FOUND ]</button>
<div class="cooldown-timer" style="display: none;"></div>
</div>
<div class="special-item" id="bobblehead-l">
<div class="special-title">LUCK BOBBLEHEAD</div>
<div class="special-desc">Doubles chance to find loot this turn.</div>
<button class="bobble-activate-btn">[ NOT FOUND ]</button>
<div class="cooldown-timer" style="display: none;"></div>
</div>
</div>
<button id="close-inv-btn" style="margin-top: 20px;">Close Inventory</button>
</div>
</div>
<div class="info">
<div class="info-box">
<div class="leader"></div>
<div class="country"></div>
<div class="income-label">Supply: <span class="income" id="p1-income"></span></div>
<div class="caps-display"></div>
<div class="bar"></div>
</div>
<div class="info-box">
<div class="leader"></div>
<div class="country"></div>
<div class="income-label">Supply: <span class="income" id="p2-income"></span></div>
<div class="caps-display"></div>
<div class="bar"></div>
</div>
<div class="info-box">
<div class="leader"></div>
<div class="country"></div>
<div class="income-label">Supply: <span class="income" id="p3-income"></span></div>
<div class="caps-display"></div>
<div class="bar"></div>
</div>
<div class="info-box">
<div class="leader"></div>
<div class="country"></div>
<div class="income-label">Supply: <span class="income" id="p4-income"></span></div>
<div class="caps-display"></div>
<div class="bar"></div>
</div>
<div class="info-box">
<div class="leader"></div>
<div class="country"></div>
<div class="income-label">Supply: <span class="income" id="p5-income"></span></div>
<div class="caps-display"></div>
<div class="bar"></div>
</div>
<div class="info-box">
<div class="leader"></div>
<div class="country"></div>
<div class="income-label">Supply: <span class="income" id="p6-income"></span></div>
<div class="caps-display"></div>
<div class="bar"></div>
</div>
<div class="info-box">
<div class="leader"></div>
<div class="country"></div>
<div class="income-label">Supply: <span class="income" id="p7-income"></span></div>
<div class="caps-display"></div>
<div class="bar"></div>
</div>
<button id="help-btn" class="restart" style="margin-top: auto; order: 998;">Survival Guide</button>
<!-- --- NEW: FLEX CONTAINER WITH 'ORDER: 999' SO IT NEVER HIDES! --- -->
<div id="reboot-save-wrapper" style="display: flex; gap: 10px; margin-top: 10px; align-items: stretch; order: 999; width: 100%;">
<button id="restart" class="restart" style="flex: 3; margin: 0;">Reboot Game</button>
<button id="btn-save-game" style="width: calc(25% - 5px); float: left; margin-top: 0; height: 100%; padding: 0; display: flex; justify-content: center; align-items: center;" title="Save to Holotape (.json)">
<svg width="22" height="22" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">
<path d="M19 21H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h11l5 5v11a2 2 0 0 1-2 2z"></path>
<polyline points="17 21 17 13 7 13 7 21"></polyline>
<polyline points="7 3 7 8 15 8"></polyline>
</svg>
</button>
</div>
</div> <!-- This is the final closing div of the panel -->
<!-- NEW: ALLIANCE SIGNAL TYPE MODAL -->
<div id="signal-type-modal" class="overlay" style="display: none; z-index: 10006;">
<div class="start-modal content" style="max-width: 450px; text-align: center;">
<h2 style="margin-top: 0; border-bottom: 2px solid #39ff14; padding-bottom: 10px; color: #39ff14;">TRANSMIT SIGNAL TO ALLY</h2>
<p style="font-size: 18px; margin: 20px 0; line-height: 1.4;">Select the type of signal to send.</p>
<div style="display: flex; flex-direction: column; gap: 10px;">
<button id="signal-type-attack">Request Coordinated Attack</button>
<button id="signal-type-defend">Request Reinforcements</button>
<button id="signal-type-intent">Signal My Attack Intent</button>
<button id="signal-type-cancel" style="margin-top: 15px; border-color: #ffcc00; color: #ffcc00;">Cancel Transmission</button>
</div>
</div>
</div>
<!-- ALLY RESPONSE MODAL -->
<!-- ALLY RESPONSE MODAL -->
<div id="ally-response-modal" class="overlay" style="display: none; z-index: 10006;">
<div class="start-modal content" style="max-width: 450px; text-align: center;">
<h2 id="ally-response-title" style="margin-top: 0; border-bottom: 2px solid; padding-bottom: 10px;">INCOMING TRANSMISSION</h2>
<p id="ally-response-message" style="font-size: 18px; margin: 20px 0; line-height: 1.4;"></p>
<button id="ally-response-ok" style="width: 200px; margin: 15px auto 0 auto;">Acknowledge</button>
</div>
</div>
<script>
// --- GLOBAL ERROR HANDLER ---
window.onerror = function (message, source, lineno, colno, error) {
var consoleDiv = document.getElementById('error-console');
var errorLog = document.getElementById('error-log');
if (consoleDiv) {
consoleDiv.style.display = 'block';
}
if (errorLog) {
var newError = document.createElement('div');
newError.style.borderBottom = "1px dashed #ff8080";
newError.style.padding = "5px 0";
newError.innerHTML = `> <strong>ERROR:</strong> ${message}<br>> <strong>LINE:</strong> ${lineno}`;
errorLog.prepend(newError); // Add new errors to the top
}
return true; // Prevents the browser's default error handling
};
const FACTIONS = {
// --- Fallout 3 Factions ---
"Brotherhood of Steel": {
leader: "Elder Lyons",
color: "#8e6aa5",
perk: {
id: "power_armor_infantry",
name: "Power Armor Infantry",
description: "Grants a permanent +5% bonus to your win chance in all combat, both when attacking and defending."
},
affinity: { "The Enclave": -30, "Vault 87 Mutants": -15, "Wasteland Raiders": -10, "BOS Outcasts": -15 }
},
"The Enclave": {
leader: "President Eden",
color: "#b74545",
perk: {
id: "vertibird_assault",
name: "Vertibird Assault",
description: "During the Maneuver phase, you can move troops between any two territories you own, regardless of whether they are connected."
},
affinity: { "Brotherhood of Steel": -30, "BOS Outcasts": -30 }
},
"Vault 87 Mutants": {
leader: "Overlord",
color: "#d19a4f",
perk: {
id: "fev_infection",
name: "F.E.V. Infection",
description: "When you conquer a territory, 25% of the defeated enemy army (rounded down) is immediately converted into your own troops."
},
affinity: { "Brotherhood of Steel": -15, "The Enclave": -15 }
},
"Wasteland Raiders": {
leader: "Flak",
color: "#8e6aa5",
perk: {
id: "chem_frenzy",
name: "Chem Frenzy",
description: "Sacrifice up to 50% of your attacking army for a massive combat bonus with diminishing returns. (3 Turn Cooldown)"
},
affinity: { "Brotherhood of Steel": -10, "New California Republic": -10, "The Minutemen": -10, "Reilly's Rangers": -10 }
},
"BOS Outcasts": {
leader: "Protector Casdin",
color: "#5a8b5c",
perk: {
id: "tech_hoarders",
name: "Technology Overdrive",
description: "Spend Caps equal to your total army size (Max 30) to grant all your attacking armies +10% win chance for 3 rounds. (3 Turn Cooldown)"
},
affinity: { "Brotherhood of Steel": -15, "The Enclave": -30 }
},
"Reilly's Rangers": {
leader: "Reilly",
color: "#bdb862",
perk: {
id: "ranger_network",
name: "Ranger Network",
description: "Territories in a continuous block gain a cumulative +5% defensive bonus for each connected friendly territory, up to a maximum of +20%."
},
affinity: { "Wasteland Raiders": -10 }
},
// --- Fallout: New Vegas Factions ---
"New California Republic": {
leader: "General Oliver",
color: "#c9a46a",
perk: {
id: "logistical_superiority",
name: "Logistical Superiority",
description: "Your vast supply lines increase the standard troop reinforcement bonus of any fully controlled Continent by 50% (rounded up)."
},
affinity: { "Caesar's Legion": -30, "Great Khans": -15, "Mojave Brotherhood": -5 }
},
"Caesar's Legion": {
leader: "Caesar",
color: "#b74545",
perk: {
id: "scourge_of_the_east",
name: "Scourge of the East",
description: "You are exempt from the rule requiring you to leave at least one troop behind after conquering a territory."
},
affinity: { "New California Republic": -30 }
},
"New Vegas Securitrons": {
leader: "Mr. House",
color: "#c2b236",
perk: {
id: "the_house_always_wins",
name: "Predictive Simulation",
// --- FIX: Changed text to "3 Turn" and "all lost troops" (since it now restores defenders too)
description: "If an attack completely fails, instantly abort the battle and restore all lost troops to both sides. (3 Turn Cooldown)"
},
affinity: { "New California Republic": -10, "Caesar's Legion": -20 }
},
"Mojave Brotherhood": {
leader: "Elder McNamara",
color: "#556b2f",
perk: {
id: "elders_edict",
name: "Elder's Edict",
// --- FIX: Updated description to accurately reflect 3-turn mechanics
description: "Lock down one of your territories for up to 3 turns. It cannot attack, maneuver, or be attacked. You may lift it early. (3 Turn Cooldown starts when lifted)"
},
affinity: { "New California Republic": -5 }
},
"Great Khans": {
leader: "Papa Khan",
color: "#6b4a3a",
perk: {
id: "guerrilla_tactics",
name: "Guerrilla Tactics",
description: "During Maneuver, your troops can pass through exactly one enemy territory, inflicting 15% casualties on that territory's garrison as they pass."
},
affinity: { "New California Republic": -15 }
},
"The Fiends": {
leader: "Motor-Runner",
color: "#a0522d",
perk: {
id: "psycho_rush",
name: "Chem-Fueled Raids",
description: "When you conquer a territory, there is a 30% chance to mug the defeated player! You may steal Caps, Stimpaks, or even Bobbleheads. If their pockets are empty, you enslave 1-2 survivors into your army."
},
affinity: { "New California Republic": -10, "Caesar's Legion": -10 }
},
// --- Fallout 4 Factions ---
"The Minutemen": {
leader: "Preston Garvey",
color: "#b2976b",
perk: {
id: "minutemen_contracts",
name: "Mercenary Contracts",
cooldown: 3,
description: "Spend 20 Caps during your turn to instantly deploy 3 elite troops to your reserves, PLUS 1 extra troop for every 2 territories you own. (3 Turn Cooldown)"
},
affinity: { "The Minutemen": -10 }
},
"The Institute": {
leader: "Father",
color: "#e0e0e0",
perk: {
id: "synth_replacements",
name: "Synth Replacements",
description: "Whenever you lose troops in any battle (attacking or defending), there is a 15% chance per casualty that the Synth is recovered and instantly sent to your reserves."
},
affinity: { "Brotherhood of Steel": -20, "The Railroad": -20 }
},
"The Railroad": {
leader: "Desdemona",
color: "#888888",
perk: {
id: "rapid_relocation",
name: "Rapid Relocation",
description: "Receive 5 maneuver points at the start of the Maneuver phase, allowing for up to five separate troop movements."
},
affinity: { "The Institute": -20, "Brotherhood of Steel": -10, "The Minutemen": 15 }
},
"The Gunners": {
leader: "Captain Wes",
color: "#5a8b5c",
perk: {
id: "gunner_contracts",
name: "Mercenary Contracts",
cooldown: 1,
description: "Spend 20 Caps during your turn to instantly deploy 6-12 elite troops to your reserves, PLUS 1 extra troop for every 2 territories you own. (1 Turn Cooldown)"
},
affinity: { "The Minutemen": -10 }
},
"Nuka-World Raiders": {
leader: "Colter",
color: "#b74545",
perk: {
id: "tribute_chest",
name: "Tribute Chest",
description: "At the start of your turn, you gain +10 Bottle Caps for every continent you fully control."
},
affinity: {}
},
"Maxson's Brotherhood": {
leader: "Elder Maxson",
color: "#e0e0e0",
perk: {
id: "prydwen_deployment",
name: "Prydwen Deployment",
description: "The Prydwen automatically dispatches 3 airborne troops per turn to contested borders."
},
affinity: { "The Institute": -30, "The Railroad": -20 }
}
};
// This is the data for any custom faction a player creates.
const CUSTOM_FACTION = {
leader: "Mysterious Stranger", // Placeholder
color: "#cccccc", // Default color
perk: {
id: "mysterious_stranger",
name: "Mysterious Stranger",
description: "Triggers on a losing battle roll after a 1-4 round cooldown. Negates opponent's highest die. If your roll had no successes, you automatically re-roll your dice."
},
affinity: {} // Starts neutral with everyone
};
// --- DYNAMIC CURSOR FUNCTION ---
function updateDynamicCursor(hexColor) {
const encodedColor = hexColor.replace('#', '%23');
const cursorStyle = `
svg path, svg .area {
cursor: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" width="32" height="32"><text x="0" y="24" font-size="32" fill="${encodedColor}" stroke="black" stroke-width="1.5" paint-order="stroke fill">⯐</text></svg>') 16 16, auto !important;
}
`;
let styleEl = document.getElementById('dynamic-cursor-style');
if (!styleEl) {
styleEl = document.createElement('style');
styleEl.id = 'dynamic-cursor-style';
document.head.appendChild(styleEl);
}
styleEl.innerHTML = cursorStyle;
}
document.addEventListener('DOMContentLoaded', () => {
// --- NEW: Hook up the Save Game button ---
const saveBtn = document.getElementById('btn-save-game');
if (saveBtn) {
saveBtn.addEventListener('click', () => {
// Only allow saving if the game has actually started and it is the player's turn!
if (Gamestate.turn > 0 && !Gamestate.aiTurn && !Gamestate.gameOver) {
Gamestate.saveGame();
} else {
if (Gamestate.showToast) Gamestate.showToast("Cannot save during AI turn or game over.", "red");
}
});
}
// --- NEW: Hook up the Load Game (Holotape) button & Hidden Input ---
const loadBtn = document.getElementById('btn-load-game');
const fileInput = document.getElementById('file-load-game');
if (loadBtn && fileInput) {
// 1. When the visible button is clicked, trigger the hidden file input
loadBtn.addEventListener('click', (e) => {
e.preventDefault();
fileInput.click();
});
// 2. When a file is selected by the player, read it!
fileInput.addEventListener('change', (event) => {
const file = event.target.files[0];
if (!file) return; // User cancelled
const reader = new FileReader();
reader.onload = function(e) {
// Extract the text content from the file
const savedDataString = e.target.result;
// Send it to the game to be rebuilt!
Gamestate.loadGame(savedDataString);
// Clear the input so you can load the same file again later if needed
fileInput.value = '';
};
// Read the file as raw text
reader.readAsText(file);
});
}
// --- END OF NEW LOGIC ---
const factionInput = document.getElementById('chosen-country-input');
const tooltip = document.getElementById('vats-tooltip'); // WE ARE USING YOUR EXISTING TOOLTIP ELEMENT
if (!factionInput || !tooltip) {
console.error("Tooltip or Faction Input not found!");
return;
}
// This function will show and position the tooltip
const showPerkTooltip = (e) => {
// --- NEW: Check if perks are enabled ---
const perksCheckbox = document.getElementById('opt-perks');
if (perksCheckbox && !perksCheckbox.checked) {
tooltip.style.display = 'none'; // Don't show if disabled
return;
}
// --- END OF NEW LOGIC ---
const factionName = factionInput.value;
let factionData;
// Determine which faction data to show (canon or custom)
if (FACTIONS && FACTIONS[factionName]) {
factionData = FACTIONS[factionName];
} else if (CUSTOM_FACTION) {
factionData = CUSTOM_FACTION;
}
// If we have valid data, build and show the tooltip
if (factionData && factionData.perk) {
tooltip.innerHTML = `<strong style="color: #ffb84d;">${factionData.perk.name}:</strong> ${factionData.perk.description}`;
tooltip.style.display = 'block';
tooltip.style.left = (e.pageX + 15) + 'px';
tooltip.style.top = (e.pageY + 15) + 'px';
}
};
// This function will hide the tooltip
const hidePerkTooltip = () => {
tooltip.style.display = 'none';
};
// This function will move the tooltip with the mouse
const movePerkTooltip = (e) => {
if (tooltip.style.display === 'block') {
tooltip.style.left = (e.pageX + 15) + 'px';
tooltip.style.top = (e.pageY + 15) + 'px';
}
};
// --- Assign events to the faction input box ---
// When the mouse enters the input box...
factionInput.addEventListener('mouseenter', showPerkTooltip);
// When the mouse leaves the input box...
factionInput.addEventListener('mouseleave', hidePerkTooltip);
// As the mouse moves over the input box...
factionInput.addEventListener('mousemove', movePerkTooltip);
// When the text inside changes (e.g. user types or selects from dropdown)...
factionInput.addEventListener('input', showPerkTooltip);
});
if (!document.getElementById('radstorm-styles')) {
let style = document.createElement('style');
style.id = 'radstorm-styles';
style.innerHTML = `
@keyframes radstormWarn { 0% { fill: #ffcc00; filter: drop-shadow(0 0 5px #ffcc00); } 100% { fill: #ff8800; filter: drop-shadow(0 0 15px #ff8800); } }
@keyframes radstormAct { 0% { fill: #39ff14; filter: drop-shadow(0 0 10px #39ff14); } 100% { fill: #00ff00; filter: drop-shadow(0 0 25px #00ff00); } }
.radstorm-warning { animation: radstormWarn 1s infinite alternate !important; opacity: 0.85; }
.radstorm-active { animation: radstormAct 0.4s infinite alternate !important; opacity: 0.95; }
`;
document.head.appendChild(style);
}
function sanitizeInput(str) {
let temp = document.createElement('div');
temp.textContent = str;
return temp.innerHTML;
}
const continents = [
{ areas: ["indonesia", "new_guinea", "eastern_australia", "western_australia"], name: "The Southern Wastes", bonus: 2 },
{ areas: ["brazil", "peru", "venezuela", "argentina"], name: "Amazonian Wastes", bonus: 2 },
{ areas: ["egypt", "north_africa", "east_africa", "congo", "south_africa", "madagascar"], name: "Saharan Wastes", bonus: 3 },
{ areas: ["iceland", "uk", "scandinavia", "northern_europe", "western_europe", "ukraine", "southern_europe"], name: "European Commonwealth", bonus: 5 },
{ areas: ["central_america", "eastern_us", "western_us", "quebec", "ontario", "alberta", "northwest_territory", "alaska", "greenland"], name: "Capital Wasteland", bonus: 5 },
{ areas: ["middle_east", "afghanistan", "ural", "siberia", "irkutsk", "yakutsk", "kamchatka", "mongolia", "japan", "china", "siam", "india"], name: "The Great Wastes", bonus: 7 }
];
const countries = [
{ name: "indonesia", continent: "The Southern Wastes", owner: "none", color: "#1a1a1a", army: 0, neighbours: ["siam", "western_australia", "new_guinea"] },
{ name: "new_guinea", continent: "The Southern Wastes", owner: "none", color: "#1a1a1a", army: 0, neighbours: ["indonesia", "eastern_australia", "western_australia"] },
{ name: "eastern_australia", continent: "The Southern Wastes", owner: "none", color: "#1a1a1a", army: 0, neighbours: ["western_australia", "new_guinea"] },
{ name: "western_australia", continent: "The Southern Wastes", owner: "none", color: "#1a1a1a", army: 0, neighbours: ["eastern_australia", "new_guinea", "indonesia"] },
{ name: "ural", continent: "The Great Wastes", owner: "none", color: "#1a1a1a", army: 0, neighbours: ["ukraine", "siberia", "afghanistan", "china"] },
{ name: "siberia", continent: "The Great Wastes", owner: "none", color: "#1a1a1a", army: 0, neighbours: ["ural", "mongolia", "yakutsk", "irkutsk", "china"] },
{ name: "afghanistan", continent: "The Great Wastes", owner: "none", color: "#1a1a1a", army: 0, neighbours: ["ukraine", "ural", "middle_east", "china", "india"] },
{ name: "irkutsk", continent: "The Great Wastes", owner: "none", color: "#1a1a1a", army: 0, neighbours: ["yakutsk", "siberia", "kamchatka", "mongolia"] },
{ name: "yakutsk", continent: "The Great Wastes", owner: "none", color: "#1a1a1a", army: 0, neighbours: ["irkutsk", "siberia", "kamchatka"] },
{ name: "kamchatka", continent: "The Great Wastes", owner: "none", color: "#1a1a1a", army: 0, neighbours: ["alaska", "yakutsk", "japan", "irkutsk", "mongolia"] },
{ name: "middle_east", continent: "The Great Wastes", owner: "none", color: "#1a1a1a", army: 0, neighbours: ["ukraine", "afghanistan", "india", "egypt", "east_africa", "southern_europe"] },
{ name: "india", continent: "The Great Wastes", owner: "none", color: "#1a1a1a", army: 0, neighbours: ["middle_east", "siam", "afghanistan", "china"] },
{ name: "siam", continent: "The Great Wastes", owner: "none", color: "#1a1a1a", army: 0, neighbours: ["indonesia", "india", "china"] },
{ name: "china", continent: "The Great Wastes", owner: "none", color: "#1a1a1a", army: 0, neighbours: ["ural", "siberia", "afghanistan", "mongolia", "siam", "india"] },
{ name: "mongolia", continent: "The Great Wastes", owner: "none", color: "#1a1a1a", army: 0, neighbours: ["irkutsk", "siberia", "kamchatka", "china", "japan"] },
{ name: "japan", continent: "The Great Wastes", owner: "none", color: "#1a1a1a", army: 0, neighbours: ["kamchatka", "mongolia"] },
{ name: "egypt", continent: "Saharan Wastes", owner: "none", color: "#1a1a1a", army: 0, neighbours: ["middle_east", "southern_europe", "north_africa", "east_africa"] },
{ name: "north_africa", continent: "Saharan Wastes", owner: "none", color: "#1a1a1a", army: 0, neighbours: ["egypt", "southern_europe", "western_europe", "east_africa", "congo", "brazil"] },
{ name: "east_africa", continent: "Saharan Wastes", owner: "none", color: "#1a1a1a", army: 0, neighbours: ["middle_east", "egypt", "north_africa", "congo", "madagascar", "south_africa"] },
{ name: "congo", continent: "Saharan Wastes", owner: "none", color: "#1a1a1a", army: 0, neighbours: ["south_africa", "north_africa", "east_africa"] },
{ name: "south_africa", continent: "Saharan Wastes", owner: "none", color: "#1a1a1a", army: 0, neighbours: ["congo", "madagascar", "east_africa"] },
{ name: "madagascar", continent: "Saharan Wastes", owner: "none", color: "#1a1a1a", army: 0, neighbours: ["south_africa", "east_africa"] },
{ name: "brazil", continent: "Amazonian Wastes", owner: "none", color: "#1a1a1a", army: 0, neighbours: ["peru", "argentina", "north_africa", "venezuela"] },
{ name: "peru", continent: "Amazonian Wastes", owner: "none", color: "#1a1a1a", army: 0, neighbours: ["brazil", "argentina", "venezuela"] },
{ name: "argentina", continent: "Amazonian Wastes", owner: "none", color: "#1a1a1a", army: 0, neighbours: ["brazil", "peru"] },
{ name: "venezuela", continent: "Amazonian Wastes", owner: "none", color: "#1a1a1a", army: 0, neighbours: ["brazil", "peru", "central_america"] },
{ name: "iceland", continent: "European Commonwealth", owner: "none", color: "#1a1a1a", army: 0, neighbours: ["greenland", "uk", "scandinavia"] },
{ name: "scandinavia", continent: "European Commonwealth", owner: "none", color: "#1a1a1a", army: 0, neighbours: ["iceland", "uk", "ukraine", "northern_europe"] },
{ name: "northern_europe", continent: "European Commonwealth", owner: "none", color: "#1a1a1a", army: 0, neighbours: ["ukraine", "uk", "scandinavia", "southern_europe", "western_europe"] },
{ name: "western_europe", continent: "European Commonwealth", owner: "none", color: "#1a1a1a", army: 0, neighbours: ["north_africa", "uk", "northern_europe", "southern_europe"] },
{ name: "southern_europe", continent: "European Commonwealth", owner: "none", color: "#1a1a1a", army: 0, neighbours: ["north_africa", "egypt", "northern_europe", "western_europe", "middle_east", "ukraine"] },
{ name: "uk", continent: "European Commonwealth", owner: "none", color: "#1a1a1a", army: 0, neighbours: ["western_europe", "iceland", "northern_europe", "scandinavia"] },
{ name: "ukraine", continent: "European Commonwealth", owner: "none", color: "#1a1a1a", army: 0, neighbours: ["scandinavia", "ural", "northern_europe", "southern_europe", "afghanistan", "middle_east"] },
{ name: "greenland", continent: "Capital Wasteland", owner: "none", color: "#1a1a1a", army: 0, neighbours: ["iceland", "quebec", "ontario", "northwest_territory"] },
{ name: "central_america", continent: "Capital Wasteland", owner: "none", color: "#1a1a1a", army: 0, neighbours: ["venezuela", "eastern_us", "western_us"] },
{ name: "eastern_us", continent: "Capital Wasteland", owner: "none", color: "#1a1a1a", army: 0, neighbours: ["central_america", "western_us", "ontario", "quebec"] },
{ name: "western_us", continent: "Capital Wasteland", owner: "none", color: "#1a1a1a", army: 0, neighbours: ["central_america", "eastern_us", "ontario", "alberta"] },
{ name: "quebec", continent: "Capital Wasteland", owner: "none", color: "#1a1a1a", army: 0, neighbours: ["eastern_us", "ontario", "greenland"] },
{ name: "ontario", continent: "Capital Wasteland", owner: "none", color: "#1a1a1a", army: 0, neighbours: ["eastern_us", "western_us", "quebec", "alberta", "northwest_territory", "greenland"] },
{ name: "alberta", continent: "Capital Wasteland", owner: "none", color: "#1a1a1a", army: 0, neighbours: ["western_us", "ontario", "northwest_territory", "alaska"] },
{ name: "northwest_territory", continent: "Capital Wasteland", owner: "none", color: "#1a1a1a", army: 0, neighbours: ["alberta", "ontario", "greenland", "alaska"] },
{ name: "alaska", continent: "Capital Wasteland", owner: "none", color: "#1a1a1a", army: 0, neighbours: ["alberta", "northwest_territory", "kamchatka"] }
];
function formatTerritoryName(str) {
return str.split('_').map(word => word.charAt(0).toUpperCase() + word.slice(1)).join(' ');
}
const wastelandEncounters = [
"Spotted a Vertibird flying low over the wastes.",
"Radio picked up a strange distress signal. Probably a raider trap.",
"Caravan guards chased off a pack of wild Mongrels.",
"Another settlement needs our help. Marking it on the global map.",
"Traded a handful of mutfruit for some polished 5.56 rounds.",
"Super Mutants spotted dragging captives into a metro tunnel.",
"Avoided a Radscorpion nest near the old irradiated crater.",
"Brahmin stampede delayed supply lines by three hours.",
"A wandering Eyebot is blasting patriotic music nearby.",
"Dust storm rolling in. Visibility dropping to near zero.",
"Picked up a HAM radio broadcast from KQ4JZM... Static approaching.",
"Scavenged an abandoned pickup truck. The tonneau cover was surprisingly intact.",
"Found an old pre-war safe containing detailed, multi-tiered bug-out lists.",
"Spotted survivors establishing a security perimeter around a ruined church.",
"A traveling merchant caravan was spotted on the horizon.",
"Distant gunfire echoes across the irradiated valleys.",
"A malfunctioning Eyebot floats by, blaring corrupted propaganda.",
"Scavengers report an abandoned Vault entrance was discovered nearby.",
"A pack of vicious mutated hounds was seen migrating east.",
"Vertibirds were heard passing high up through the cloud cover.",
"A local HAM radio operator picked up a strange numbers station broadcast.",
"Reports of a Super Mutant behemoth roaming the southern borders.",
"Wasteland weather spotters warn of a glowing green cloud bank moving in.",
"A group of heavily armed mercs passed through, looking for bounties.",
"Someone triggered a frag mine out in the ruins. The crows are scattering.",
"A mysterious stranger was seen watching the battle from a distance.",
"Hacked a terminal and found a manuscript for 'SurvivalSOS Fundamentals of Survival' by Joseph Howard.",
"A Brotherhood of Steel patrol was seen securing a pre-war tech cache.",
"Traders whisper about a synth replacing a local settlement leader.",
"A rogue Protectron is wandering the wastes demanding subway tokens.",
"Someone set off an ancient car alarm in the ruins, drawing a feral horde.",
"A crashed alien ship was reportedly sighted in the northern mountains.",
"A wandering scavenger is trying to sell fake 'charge cards' to the locals.",
"The regional water purifier is acting up; emergency rationing is in effect.",
"A caravan guard swears they saw the Mothman out in the dead woods.",
"A raider gang strung up fresh warning signs around the highway overpass.",
"A faint, looping distress signal just appeared on the emergency radio frequency.",
"Scouts report a massive dust storm kicking up out in the glowing sea.",
"A lone wanderer in a blue jumpsuit was seen walking quietly down the highway.",
"Wastelanders are trading rumors about a vault dweller desperately searching for a water chip.",
"A caravan from the Hub just passed through, complaining about relentless Khan raids.",
"An ancient, restored Highwayman car was heard roaring down the cracked interstate.",
"Scavengers claim they saw heavy power armor troops with an 'E' insignia stepping out of a Vertibird.",
"Talon Company mercenaries are sweeping the local ruins for a high-value bounty target.",
"A lone DJ's voice cuts through the static, reminding everyone to fight the good fight.",
"A squad of elite NCR Rangers was seen setting up a forward observation post on the ridge.",
"A heavily armed Securitron rolled past, displaying a grinning cowboy face on its monitor.",
"A blue artillery flare lit up the night sky, signaling a local Minutemen distress call.",
"Paranoia is spreading through a nearby settlement that the local bartender is an Institute synth.",
"A massive, irradiated bat-like Scorchbeast was spotted screeching over the treeline.",
"A traveling Responder is attempting to hand out boiled water and disease cures to the locals.",
"Radio picked up a faint transmission: 'Almost heaven, West Virginia. Blue Ridge Mountains, Shenandoah River. Life is old there...' before fading to static.",
"Met a caravan guard who used to be a wasteland adventurer like you, until he took a bullet to the knee.",
"You ran into a hyper guy with a purple gun and an Australian accent talking about 'horde bases'. Whatever that is...",
"A passing caravan handed me a sealed holotape. The label reads: 'To the sandbox. Keep your head down and come home soon. We're praying for you.'",
"Scouts report a Ghoul in a duster dragging a chained Vault Dweller across the desert.",
"A cheerful Vault Dweller was spotted repeatedly saying 'Okey dokey!' to a very confused trader.",
"A lone wanderer was seen dragging a severed head in a cooler. Just another Tuesday.",
"A Mr. Handy at a ruined Super Duper Mart politely offered to harvest a scout's organs for caps.",
"Rumors say an Enclave scientist smuggled a cold fusion core inside his own neck. Sounds ridiculous.",
"A stray dog is wandering the wastes carrying a severed finger in its mouth.",
"Intercepted an encrypted Vault-Tec memo regarding a 'Bud's Buds' executive management program.",
"Radio static briefly cleared to a quack doctor selling a miraculous healing elixir that regrows feet."
];
const combatFlavors = [
"while they were complaining about the radioactive heat.",
"after distracting their guards with a loaded Brahmin.",
"by unleashing a swarm of Cazadores on their flank.",
"while they were trying to hack a Novice terminal.",
"after hitting them with a Fat Man. Overkill, but effective.",
"catching them mid-game of Caravan and flipping the table.",
"storming the base while the commander was literally in the shower.",
"distracting the guards with a holotape of 'Butcher Pete'.",
"finding the leader trying to repair a toaster and hitting them with it.",
"by slipping a live frag grenade into their mess hall.",
"after hacking their turrets to fire on their own troops.",
"while their commander was distracted by a busted radio.",
"by charging through the ruins with rusted machetes.",
"after bribing their sentries with a few bottles of purified water.",
"while a stray Deathclaw softened up their frontline defenses.",
"by sneaking through the irradiated subway tunnels beneath them.",
"after spiking their water supply with glowing mushrooms.",
"by waiting patiently for their laser rifles to overheat.",
"while they were busy fending off a pack of rabid mole rats.",
"after a well-placed mini-nuke completely cleared the perimeter.",
"by dressing up as traveling merchants to bypass the main gate.",
"walking in the front door because the guards were asleep on Mentats.",
"after exploiting a fatal flaw in the welding below their T-60 chest plates.",
"by dressing up as traveling merchants to bypass the main gate.",
"walking in the front door because the guards were asleep on Mentats."
];
// --- NEW: DOGMEAT SPECIFIC FLAVORS ---
const dogmeatCombatFlavors = [
"while Dogmeat ruthlessly pinned their sniper to the ground.",
"after Dogmeat sniffed out their hidden flanking maneuver.",
"with Dogmeat tearing a piece of armor right off their captain.",
"while Dogmeat was busy chasing a terrified guard in circles.",
"after Dogmeat brought you an unpinned grenade he found... thankfully throwing it at them first.",
"while Dogmeat proudly sat on the defeated commander's chest.",
"with Dogmeat leading the charge, barking furiously.",
"after Dogmeat discovered a tunnel leading straight into their flank."
];
const dogmeatEncounters = [
"Dogmeat is happily chewing on a strangely pristine Radroach leg.",
"Dogmeat started barking at a patch of empty dirt. Must be a mole rat deep underground.",
"Dogmeat dropped a slightly irradiated stick at your feet, waiting for you to throw it.",
"Dogmeat playfully chased a Bloatfly until it exploded.",
"Dogmeat fell asleep on top of a supply crate. Nobody has the heart to move him.",
"Dogmeat let out a low growl at the wind. Good boy.",
"Dogmeat found an old pre-war teddy bear and hasn't dropped it for hours.",
"Dogmeat is furiously digging a hole to bury a super mutant bone."
];
const injuredDogmeatCombatFlavors = [
"while Dogmeat's whimpering nearly gave away your position.",
"even as Dogmeat's barking attracted a nearby pack of mole rats.",
"while your medics were busy trying to keep Dogmeat from bleeding out.",
"despite Dogmeat collapsing from exhaustion mid-battle."
];
const injuredDogmeatEncounters = [
"Dogmeat lets out a painful whimper. His leg wound needs better treatment.",
"You have to stop the convoy to allow Dogmeat to rest. He's slowing you down.",
"Dogmeat is shivering, despite the heat. The infection might be getting worse.",
"You apply a crude bandage to Dogmeat's side. It's a temporary fix at best."
];
const encounterData = {
creatures: [
{ name: "Centaur", threat: 10.0, isHumanoid: true },
{ name: "Deathclaw", threat: 15.0, isHumanoid: false },
{ name: "Enclave Deathclaw", threat: 20.0, isHumanoid: false },
{ name: "Feral Ghoul", threat: 1.2, isHumanoid: true },
{ name: "Feral Ghoul Reaver", threat: 12.0, isHumanoid: true },
{ name: "Feral Ghoul Roamer", threat: 6.0, isHumanoid: true },
{ name: "Fire Ant Soldier", threat: 3.5, isHumanoid: false },
{ name: "Fire Ant Warrior", threat: 4.5, isHumanoid: false },
{ name: "Giant Ant", threat: 1.5, isHumanoid: false },
{ name: "Giant Radscorpion", threat: 7.0, isHumanoid: false },
{ name: "Giant Soldier Ant", threat: 3.0, isHumanoid: false },
{ name: "Giant Worker Ant", threat: 2.0, isHumanoid: false },
{ name: "Guard Dog", threat: 4.0, isHumanoid: false },
{ name: "Mirelurk", threat: 5.0, isHumanoid: false },
{ name: "Mirelurk Hunter", threat: 8.0, isHumanoid: false },
{ name: "Mole Rat", threat: 0.3, isHumanoid: false },
{ name: "Radroach", threat: 0.5, isHumanoid: false },
{ name: "Radscorpion", threat: 2.5, isHumanoid: false },
{ name: "Savage Dog", threat: 0.1, isHumanoid: false },
{ name: "Scavenger's Dog", threat: 1.8, isHumanoid: false },
{ name: "Super Mutant", threat: 25.0, isHumanoid: true },
{ name: "Super Mutant Behemoth", threat: 50.0, isHumanoid: true },
{ name: "Super Mutant Master", threat: 30.0, isHumanoid: true },
{ name: "Super Mutant Overlord", threat: 40.0, isHumanoid: true },
{ name: "Vicious Dog", threat: 9.0, isHumanoid: false },
{ name: "Yao Guai", threat: 1.0, isHumanoid: false },
{ name: "Bloatfly", threat: 0.4, isHumanoid: false }
],
genericLocations: ["a crashed Vertibird", "a ruined highway overpass", "an abandoned Red Rocket station", "a Pre-War police station", "a collapsed metro tunnel", "a flooded sewer system", "a ruined church", "an abandoned drive-in theater", "a Broadcasting Tower", "an Abandoned Shack"],
subLocations: ["the manager's office", "the pharmacy counter", "the main server room", "the evidence locker", "the cockpit", "the projection booth", "the sacristy", "the underground pump station", "a hidden Refrigerator", "a locked Safe"],
people: ["a Wasteland Doctor", "a scared Settler", "a shifty-eyed Mercenary", "a Ghoul scavenger", "a Brotherhood of Steel scribe", "a Fugitive Slave", "a Wounded Sheriff", "a Merchant", "Talon Company Mercs", "a Drunken Drifter", "a Lost Farmer", "a Mister Handy"],
containers: ["a weapons locker", "a footlocker", "a first aid box", "a locked safe", "a steamer trunk", "a doctor's bag", "an ammo box"],
namedLocations: [
{ name: "Super Duper Mart", subLocations: ["the pharmacy counter", "the manager's office", "a locked safe"] },
{ name: "Slave Camp", people: ["Fugitive Slave", "shifty-eyed Mercenary"] },
{ name: "Gas Station", subLocations: ["abandoned Red Rocket station", "a hidden Refrigerator"] },
{ name: "Diner", people: ["a Mister Handy", "a Drunken Drifter"] },
{ name: "C.I.T. Ruins", people: ["an escaped Synth"], subLocations: ["the main server room"] },
{ name: "Water Treatment Plant", subLocations: ["the underground pump station", "a locked safe"] },
{ name: "Hubris Comics Store", people: ["a Ghoul scavenger"] },
{ name: "Gwinnett Brewery", people: ["a Mister Handy", "a Drunken Drifter"] },
{ name: "Robot Factory", people: ["an escaped Synth"], subLocations: ["the main server room"] }
],
vaults: [
{ territory: "eastern_us", name: "Vault 101" }, { territory: "western_us", name: "Vault 13" },
{ territory: "alberta", name: "Vault 15" }, { territory: "ontario", name: "Vault 112" },
{ territory: "china", name: "Vault 118" }, { territory: "quebec", name: "Vault 81" },
{ territory: "quebec", name: "Vault 111" }, { territory: "quebec", name: "Vault 114" },
{ territory: "quebec", name: "Vault 95" }, { territory: "central_america", name: "Vault 3" },
{ territory: "central_america", name: "Vault 21" }, { territory: "central_america", name: "Vault 34" },
{ territory: "ural", name: "Vault 77" }
]
};
// This new constant replaces both basePlayers and themeFactions.
// It contains all faction data, including perks and affinities, in one place.
const cardTypes = ["Nuka-Cola Cap", "Sunset Sarsaparilla Cap", "Quantum Cap"];
let deck = [];
let tradeCount = 0;
function generateDeck() {
deck = [];
countries.forEach((country, index) => { deck.push({ country: country.name, type: cardTypes[index % 3] }); });
for (let i = 0; i < 8; i++) { deck.push({ country: "Wild", type: "Wild" }); }
shuffle(deck);
}
function getTradeBonus() {
if (Gamestate.flatTrade) { return 3; }
tradeCount++;
if (tradeCount <= 5) return 2 + (tradeCount * 2);
return 15 + ((tradeCount - 6) * 5);
}
function shuffle(array) {
var currentIndex = array.length, temporaryValue, randomIndex;
while (0 !== currentIndex) {
randomIndex = Math.floor(Math.random() * currentIndex);
currentIndex -= 1;
temporaryValue = array[currentIndex];
array[currentIndex] = array[randomIndex];
array[randomIndex] = temporaryValue;
}
return array;
}
const infoName = Array.from(document.getElementsByClassName('country'));
const infoLeader = Array.from(document.getElementsByClassName('leader'));
const infoIncome = Array.from(document.getElementsByClassName('income'));
const areas = Array.from(document.getElementsByClassName('area'));
const bar = Array.from(document.getElementsByClassName('bar'));
const map = document.querySelector('.area').closest('svg');
const vatsTooltip = document.createElement('div');
vatsTooltip.id = 'vats-tooltip';
document.body.appendChild(vatsTooltip);
map.addEventListener('mousemove', (e) => {
let targetId = e.target.id;
if (!Gamestate.countries) return;
let targetCountry = Gamestate.countries.find(c => c.name === targetId);
if (!targetCountry) {
vatsTooltip.style.display = "none";
return;
}
let tooltipHTML = "";
const isShrouded = e.target.classList.contains('fog-shroud');
if (isShrouded) {
tooltipHTML = "TERRITORY: UNKNOWN";
} else {
let isBattleHover = (Gamestate.stage === "Battle" || Gamestate.stage === "Commander Phase") &&
Gamestate.prevCountry && Gamestate.prevCountry.neighbours.includes(targetCountry.name) &&
targetCountry.owner !== Gamestate.player.name && Gamestate.prevCountry.army > 1 &&
!targetCountry.isCrater && !Gamestate.aiTurn;
if (isBattleHover) {
// --- V.A.T.S. Calculation Logic ---
let baseChance = 0.50;
if (Gamestate.difficulty === "Easy") baseChance = 0.60;
else if (Gamestate.difficulty === "Hard") baseChance = 0.40;
else if (Gamestate.difficulty === "Normal") {
// --- NEW: Dynamic Rubber-Band Scaling ---
let totalPlayable = Gamestate.countries.filter(c => !c.isCrater).length;
let playerOwnedCount = Gamestate.countries.filter(c => c.owner === Gamestate.player.name).length;
if (totalPlayable > 0 && (playerOwnedCount / totalPlayable) > 0.35) {
baseChance -= 0.05;
}
}
let owner = Gamestate.players.find(p => p.name === targetCountry.owner);
if (owner && owner.isNeutral) baseChance -= 0.15;
// --- THIS IS THE NEWLY ADDED PERK LOGIC FOR THE TOOLTIP ---
let rangerBonus = 0;
let overdriveWarning = "";
let fogEnabled = document.getElementById('opt-fog-of-war') && document.getElementById('opt-fog-of-war').checked;
let intelActive = (!fogEnabled && Gamestate.bobbleheads && Gamestate.bobbleheads.find(b => b.key === 'i' && b.active && b.owner === Gamestate.player.name));
// --- NEW: V.A.T.S. Calculation for Bobbleheads ---
let bobbleheadWarning = "";
if (Gamestate.bobbleheads) {
let sBobble = Gamestate.bobbleheads.find(b => b.key === 's');
if (sBobble && sBobble.active && sBobble.owner === Gamestate.player.name) {
baseChance += 0.10;
bobbleheadWarning += `<br><span style="color:#ffcc00; font-weight:bold;">STR BOBBLEHEAD: +10% OFFENSE</span>`;
}
let eBobble = Gamestate.bobbleheads.find(b => b.key === 'e');
if (eBobble && eBobble.active && eBobble.owner === targetCountry.owner) {
baseChance -= 0.10;
bobbleheadWarning += `<br><span style="color:#ffcc00; font-weight:bold;">END BOBBLEHEAD: +10% DEFENSE</span>`;
}
if (!fogEnabled) {
let pBobble = Gamestate.bobbleheads.find(b => b.key === 'p');
if (pBobble && pBobble.active && pBobble.owner === Gamestate.player.name) {
baseChance += 0.15;
bobbleheadWarning += `<br><span style="color:#ffcc00; font-weight:bold;">PER BOBBLEHEAD: +15% OFFENSE</span>`;
}
}
}
// --- END BOBBLEHEAD CALCULATION ---
// --- NEW: DOGMEAT OFFENSE BUFF (HEALTHY ONLY) ---
if (Gamestate.player.dogmeatStatus === 'healthy' && Gamestate.player.name !== targetCountry.owner) {
baseChance += 0.10;
bobbleheadWarning += `<br><span style="color:var(--pip-color); font-weight:bold;">COMPANION: DOGMEAT (+10% OFFENSE)</span>`;
}
if (Gamestate.perksEnabled) {
if (Gamestate.player.perk && Gamestate.player.perk.id === 'power_armor_infantry') {
baseChance += 0.05;
}
if (owner && owner.perk && owner.perk.id === 'power_armor_infantry') {
baseChance -= 0.05;
}
// --- V.A.T.S. Calculation for Ranger Network ---
if (owner && owner.perk && owner.perk.id === 'ranger_network') {
const blockSize = Gamestate.getConnectedBlockSize(owner, targetCountry.name);
rangerBonus = Math.min(0.20, (blockSize * 0.05));
if (intelActive) rangerBonus = rangerBonus / 2; // ---> CHANGED
if (rangerBonus > 0) {
baseChance -= rangerBonus;
}
}
// --- NEW: V.A.T.S. Calculation for Technology Overdrive ---
if (Gamestate.player.techOverdriveActive > 0) {
baseChance += 0.10;
overdriveWarning = `<br><span style="color:#ffcc00; font-weight:bold;">TECHNOLOGY OVERDRIVE: +10% OFFENSE</span>`;
}
}
if (Gamestate.nukesEnabled && targetCountry.isSilo) {
let buff = Math.min(0.80, targetCountry.siloTurns * 0.20);
if (Gamestate.activeNuke && Gamestate.activeNuke.launcher === targetCountry.owner) buff = 0;
if (targetCountry.owner === "Wasteland Horrors") buff = 0;
if (intelActive) buff = buff / 2; // ---> CHANGED
baseChance = baseChance * (1 - buff);
}
if (Gamestate.commandersEnabled && owner && owner.commander && owner.commander.loc === targetCountry.name) {
baseChance = baseChance * 0.80;
}
if (baseChance < 0.11) baseChance = 0.11;
if (Gamestate.devWinOverride !== undefined && Gamestate.devWinOverride >= 0) {
baseChance = Gamestate.devWinOverride;
}
let a = Gamestate.prevCountry.army - 1;
let d = targetCountry.army;
let winProb = 0;
if (baseChance === 0.5) {
winProb = a / (a + d);
} else {
let q = 1 - baseChance;
let ratio = q / baseChance;
winProb = (1 - Math.pow(ratio, a)) / (1 - Math.pow(ratio, a + d));
}
let chancePercent = Math.round(winProb * 100);
if (chancePercent > 95) chancePercent = 95;
if (chancePercent < 1) chancePercent = 1;
if (Gamestate.nukesEnabled && targetCountry.isSilo && targetCountry.siloTurns >= 4 && (!Gamestate.activeNuke || Gamestate.activeNuke.launcher !== targetCountry.owner)) {
if (chancePercent > 20) chancePercent = 20;
}
let diplomacyWarning = "";
let currentTruce = Gamestate.getTruce ? Gamestate.getTruce(Gamestate.player.name, targetCountry.owner) : null;
if (Gamestate.isAllianceMode && Gamestate.areAllies(Gamestate.player.name, targetCountry.owner)) {
diplomacyWarning = `<br><span style="color:#39ff14; font-weight:bold;">PERMANENT ALLY.<br>FRIENDLY FIRE DISABLED.</span>`;
} else if (currentTruce) {
if (currentTruce.locked) {
diplomacyWarning = `<br><span style="color:#ffcc00; font-weight:bold;">FORCED TRUCE ACTIVE.<br>ATTACKING STRICTLY PROHIBITED.</span>`;
} else {
diplomacyWarning = `<br><span style="color:#ff3333; font-weight:bold;">WARNING: CEASEFIRE ACTIVE.<br>ATTACKING INCURS BETRAYAL TAX.</span>`;
}
}
let cmdrWarning = "";
if (Gamestate.commandersEnabled && owner && owner.commander && owner.commander.loc === targetCountry.name) {
cmdrWarning = `<br><span style="color:var(--vip-color); font-weight:bold;">COMMANDER PRESENT. +20% DEFENSE.</span>`;
}
let hazardWarning = "";
// --- NEW: NUKE COUNTDOWN WARNING ---
let targetedNuke = Gamestate.activeNukes ? Gamestate.activeNukes.find(n => n.target === targetCountry.name) : null;
if (targetedNuke) {
hazardWarning += `<br><span style="color:#ff3333; font-weight:bold;" class="nuke-target-anim">NUCLEAR STRIKE IN T-${targetedNuke.turns} TURNS</span>`;
}
if (targetCountry.radDecay > 0) {
hazardWarning = `<br><span style="color:#39ff14; font-weight:bold;">TERRITORY IS IRRADIATED</span>`;
} else if (e.target.classList.contains('radstorm-active')) {
hazardWarning = `<br><span style="color:#ff3333; font-weight:bold;">DANGER: ACTIVE RADSTORM</span>`;
} else if (e.target.classList.contains('radstorm-warning')) {
hazardWarning = `<br><span style="color:#ffcc00; font-weight:bold;">WARNING: RADSTORM INBOUND</span>`;
}
let rangerWarning = "";
if (rangerBonus > 0) {
rangerWarning = `<br><span style="color:#88ff88; font-weight:bold;">RANGER NETWORK: +${Math.round(rangerBonus * 100)}% DEFENSE</span>`;
}
// --- NEW: RELIC WARNINGS ---
let relicWarning = "";
if (targetCountry.hasMine) {
relicWarning += `<br><span style="color:#ff3333; font-weight:bold;">WARNING: BOTTLECAP MINE DETECTED</span>`;
}
if (targetCountry.isFrozen > 0) {
relicWarning += `<br><span style="color:#22ccff; font-weight:bold;">STATUS: CRYOGENICALLY FROZEN (${targetCountry.isFrozen} T)</span>`;
}
if (targetCountry.isBlockaded > 0) {
relicWarning += `<br><span style="color:#888888; font-weight:bold;">STATUS: BLOCKADED (${targetCountry.isBlockaded} T)</span>`;
}
// --- NEW: V.A.T.S. UI forces 100% against empty territories ---
if (targetCountry.army === 0 && chancePercent !== "N/A") {
chancePercent = "100.0";
}
tooltipHTML = `<div style="border-bottom: 1px solid var(--pip-color); margin-bottom: 5px;">V.A.T.S. TARGETING</div>
TARGET: ${formatTerritoryName(targetCountry.name)}<br>
DEFENDERS: ${targetCountry.army}<br>
WIN CHANCE: ${chancePercent}${chancePercent !== "N/A" ? '%' : ''}${diplomacyWarning}${cmdrWarning}${rangerWarning}${overdriveWarning}${hazardWarning}${bobbleheadWarning}${relicWarning}`;
}
else {
let infoLines = [];
let owner = Gamestate.players.find(p => p.name === targetCountry.owner);
if (targetCountry.isLockedDown) {
infoLines.push(`<span style="color:#ffcc00; font-weight:bold;">TERRITORY LOCKED DOWN</span>`);
}
// --- NEW: NUKE COUNTDOWN WARNING ---
let targetedNukeInfo = Gamestate.activeNukes ? Gamestate.activeNukes.find(n => n.target === targetCountry.name) : null;
if (targetedNukeInfo) {
infoLines.push(`<span style="color:#ff3333; font-weight:bold;" class="nuke-target-anim">NUCLEAR STRIKE IN T-${targetedNukeInfo.turns} TURNS</span>`);
}
// NEW: Searching status
if (targetCountry.isExploring) {
infoLines.push(`<span style="color:#22ccff; font-weight:bold;" class="blinking-cursor">SEARCHING... (${targetCountry.exploreTurnsLeft} TURNS LEFT)</span>`);
}
// --- NEW: DOGMEAT QUEST VATS WARNING ---
if (Gamestate.dogmeatQuest && Gamestate.dogmeatQuest.target === targetCountry.name) {
if (Gamestate.dogmeatQuest.active) {
infoLines.push(`<span style="color:var(--pip-color); font-weight:bold; text-shadow: 0 0 5px var(--pip-color);">[ QUEST: RESCUE DOGMEAT (${Gamestate.dogmeatQuest.timer} TURNS LEFT) ]</span>`);
} else if (Gamestate.dogmeatQuest.siege > 0) {
infoLines.push(`<span style="color:#ffcc00; font-weight:bold; text-shadow: 0 0 5px #ffcc00;">[ SIEGE IN PROGRESS: ${Gamestate.dogmeatQuest.siege} DAYS LEFT ]</span>`);
}
}
// --- NEW: RELIC STATUS (NON-COMBAT) ---
if (targetCountry.hasMine) {
infoLines.push(`<span style="color:#ff3333; font-weight:bold;">[ BOTTLECAP MINE PLANTED ]</span>`);
}
if (targetCountry.isFrozen > 0) {
infoLines.push(`<span style="color:#22ccff; font-weight:bold;">[ FROZEN: ${targetCountry.isFrozen} TURNS ]</span>`);
}
if (targetCountry.isBlockaded > 0) {
infoLines.push(`<span style="color:#888888; font-weight:bold;">[ BLOCKADED: ${targetCountry.isBlockaded} TURNS ]</span>`);
}
infoLines.push(`TERRITORY: ${formatTerritoryName(targetCountry.name)}`);
if (targetCountry.isCrater) {
infoLines.push(`<span style="color:#ff3333">IRRADIATED CRATER (IMPASSABLE)</span>`);
} else {
// --- NEW: Add (ALLY) tag to the Owner line ---
let ownerNameDisplay = owner ? (owner.name === "Wasteland Horrors" ? "FERAL GHOULS" : owner.name) : "UNKNOWN";
// If the territory is owned by your ally (and not you), tag it!
if (owner && owner.name !== Gamestate.player.name && Gamestate.areAllies(Gamestate.player.name, owner.name)) {
ownerNameDisplay += ` <span style="color:#39ff14; font-weight:bold;">(ALLY)</span>`;
}
infoLines.push(`OWNER: ${ownerNameDisplay}`);
// --- END OF NEW LOGIC ---
infoLines.push(`GARRISON: ${targetCountry.army}`);
if (targetCountry.radDecay && targetCountry.radDecay > 0) {
let attrPercent = 10;
if (targetCountry.radDecay >= 8) attrPercent = 80;
else if (targetCountry.radDecay >= 5) attrPercent = 50;
else if (targetCountry.radDecay >= 3) attrPercent = 30;
infoLines.push(`<span style="color:#39ff14; font-weight:bold; text-shadow: 0 0 5px #39ff14;">☢ GLOWING SEA: -${attrPercent}% GARRISON NEXT TURN</span>`);
}
if (Gamestate.nukesEnabled && targetCountry.isSilo) {
let defBuff = targetCountry.siloTurns > 0 ? Math.min(80, targetCountry.siloTurns * 20) : 0;
if (targetCountry.owner === "Wasteland Horrors") defBuff = 0;
infoLines.push(`<span style="color:#ffcc00">COMMAND SILO (+${defBuff}% DEFENSE)</span>`);
}
if (Gamestate.commandersEnabled) {
Gamestate.players.forEach(p => {
if (p.alive && !p.isNeutral && p.commander && p.commander.loc === targetCountry.name) {
let isStranded = p.name !== targetCountry.owner ? " (STRANDED)" : "";
let isConverting = "";
if (p.commander.isConverting) {
let turnsLeft = 0;
let reqTurns = (Gamestate.levelingEnabled && p.activeBuffs && p.activeBuffs.infiltrator) ? 2 : 3;
if (targetCountry.army > 0) {
turnsLeft = Math.ceil(targetCountry.army / 10) + reqTurns;
} else {
turnsLeft = reqTurns - (p.commander.siegeTurns || 0);
}
isConverting = ` <span style='color:#ffcc00;'>[CONVERTING: ${turnsLeft} T]</span>`;
}
infoLines.push(`<span style="color:${p.color}; text-shadow: 0 0 5px ${p.color}; font-weight:bold;">★ ${p.name} COMMANDER${isStranded}${isConverting} (${p.commander.hp} HP)</span>`);
}
});
}
}
tooltipHTML = infoLines.join('<br>');
}
}
// --- NEW: UNIVERSAL ACTION VALIDATOR FOR V.A.T.S. ---
let actionBlockedMsg = "";
if (Gamestate.targetingMode === 'relic' && Gamestate.pendingRelic) {
let rId = Gamestate.pendingRelic.id;
if (rId === 'fatman' || rId === 'cryolator') {
if (targetCountry.owner === Gamestate.player.name) actionBlockedMsg = "CANNOT TARGET OWN TERRITORY";
else if (Gamestate.getDistanceToEmpire(targetCountry.name) > 3) actionBlockedMsg = "OUT OF RANGE (MAX 3)";
} else if (rId === 'capmine' && targetCountry.owner !== Gamestate.player.name) {
actionBlockedMsg = "MUST TARGET FRIENDLY TERRITORY";
} else if (rId === 'shroudcard' && targetCountry.owner === Gamestate.player.name) {
actionBlockedMsg = "CANNOT TARGET OWN TERRITORY";
} else if (rId === 'geck') {
let isStormed = Gamestate.radstorm && Gamestate.radstorm.state !== 'none' && Gamestate.radstorm.areas.includes(targetCountry.name);
if (targetCountry.radDecay <= 0 && !isStormed) {
actionBlockedMsg = "MUST TARGET IRRADIATED OR STORM ZONE";
}
}
} else if (Gamestate.stage === "Nuke Targeting") {
if (targetCountry.owner === Gamestate.player.name) actionBlockedMsg = "CANNOT TARGET OWN TERRITORY";
} else if (Gamestate.stage === "Fortify") {
if (targetCountry.owner === Gamestate.player.name) {
if (targetCountry.isFrozen > 0) actionBlockedMsg = "TERRITORY IS FROZEN SOLID";
else if (targetCountry.isBlockaded > 0) actionBlockedMsg = "TERRITORY IS BLOCKADED";
}
} else if (Gamestate.stage === "Battle" && Gamestate.prevCountry && targetCountry.owner !== Gamestate.player.name) {
if (targetCountry.isLockedDown) actionBlockedMsg = "TARGET IS LOCKED DOWN";
else if (Gamestate.isAllianceMode && Gamestate.areAllies(Gamestate.player.name, targetCountry.owner)) actionBlockedMsg = "PERMANENT ALLY (FRIENDLY FIRE OFF)";
else {
let truce = Gamestate.getTruce ? Gamestate.getTruce(Gamestate.player.name, targetCountry.owner) : null;
if (truce && truce.locked) actionBlockedMsg = "FORCED TRUCE ACTIVE";
}
} else if (Gamestate.stage === "Maneuver" && Gamestate.prevCountry && targetCountry.owner === Gamestate.player.name) {
if (targetCountry.isLockedDown) actionBlockedMsg = "DESTINATION IS LOCKED DOWN";
} else if (Gamestate.stage === "Frenzy Targeting" && !Gamestate.prevCountry) {
if (targetCountry.owner === Gamestate.player.name && (targetCountry.army <= 1 || targetCountry.isExploring || targetCountry.isLockedDown)) {
actionBlockedMsg = "INVALID LAUNCH POINT";
}
}
if (actionBlockedMsg && !isShrouded) {
tooltipHTML = `<div style="background:#ff3333; color:#fff; font-weight:bold; padding:4px 8px; margin-bottom:8px; text-align:center; border: 1px solid #fff; font-size: 16px; letter-spacing: 1px;">[ BLOCKED: ${actionBlockedMsg} ]</div>` + tooltipHTML;
}
// --- END VALIDATOR ---
vatsTooltip.innerHTML = tooltipHTML;
vatsTooltip.style.left = (e.clientX + 20) + "px";
vatsTooltip.style.top = (e.clientY + 20) + "px";
vatsTooltip.style.display = "block";
});
map.addEventListener('mouseleave', () => { vatsTooltip.style.display = "none"; });
const modal = document.querySelector('#start-modal');
const reserveDisplay = document.querySelector('#reserve');
const chosenLeader = document.querySelector('#chosen-leader');
const chosenCountry = document.querySelector('#chosen-country');
const chosenColor = document.querySelector('#chosen-color');
const submitName = document.querySelector('#submit-name');
const winModal = document.querySelector('#win-modal');
const winMessage = document.querySelector('.win-message');
const playAgain = document.querySelector('#play-again');
const playerName = document.querySelector('.player-name');
const playerCountry = document.querySelector('.player-country');
const restart = document.querySelector('#restart');
const playerPanel = document.querySelector('.player-panel');
const infoPanel = document.querySelector('.info');
const turnInfo = document.querySelector('.turn-info');
const turnInfoMessage = document.querySelector('.turn-info-message');
const end = document.querySelector('#end');
const combatLog = document.getElementById('combat-log');
const turboToggle = document.getElementById('turbo-toggle');
const helpBtn = document.querySelector('#help-btn');
const helpModal = document.querySelector('#help-modal');
const closeHelpBtn = document.querySelector('#close-help-btn');
// --- NEW: GAME MODE PRESET LOGIC (FINAL FORMATTING) ---
const presetSelector = document.getElementById('game-mode-preset');
const descriptionBox = document.getElementById('preset-description');
const customRulesBox = document.getElementById('custom-rules-container');
const checkboxes = {
perks: document.getElementById('opt-perks'),
commander: document.getElementById('opt-commander'),
fog: document.getElementById('opt-fog-of-war'),
radstorms: document.getElementById('opt-radstorms'),
horrors: document.getElementById('opt-horrors'),
encounters: document.getElementById('opt-encounters'),
nukes: document.getElementById('opt-nukes'),
flatTrade: document.getElementById('opt-flat-trade')
};
const presetData = {
'classic': {
narrative: `"The old world is dead. The new world is a battleground. This is a pure contest of strategy and will. Amass your forces, conquer the continents, and eliminate all rivals. In this simulation, only tactical superiority matters. No heroes, no cataclysms—just war. War never changes."`,
mechanics: { economy: false, perks: false, commander: false, fog: false, radstorms: false, horrors: false, encounters: false, nukes: false }
},
'survival': {
narrative: `"Forget conquering the world; your only goal is to survive it. The air itself is poison, radioactive storms blot out the sun, and packs of ghouls infest the ruins. The map is a dark, unknown space. Every cap counts. Every step could be your last. Welcome to the real wasteland."`,
mechanics: { economy: true, perks: false, commander: false, fog: true, radstorms: true, horrors: true, encounters: true, nukes: false }
},
'heroes': {
narrative: `"History is not made by armies, but by individuals. In this simulation, the fate of the wasteland rests on the shoulders of its Commanders. Leverage your faction's unique doctrines and your leader's abilities to outmaneuver your foes. This is a war of personalities, where a single heroic action can turn the tide."`,
mechanics: { economy: true, perks: true, commander: true, fog: false, radstorms: false, horrors: false, encounters: true, nukes: false }
},
'apocalypse': {
narrative: `"The end of the world wasn't the end. The real apocalypse is now. The sky rains radiation, the dead walk the earth, and the forgotten keys to nuclear fire are back in play. There are no safe havens. There is no hope. There is only the roar of the storm, the shriek of the ghouls, and the terrifying whistle of the falling bomb."`,
mechanics: { economy: true, perks: false, commander: false, fog: false, radstorms: true, horrors: true, encounters: true, nukes: true }
},
'alliance': {
narrative: `"No faction can stand alone against the darkness. In this scenario, you are bound by oath to a brother-in-arms. You will be automatically allied with a lore-friendly faction, and you will share their fate. If they fall, you fall. Coordinate your attacks, defend your ally's borders, and crush the other coalitions to achieve a shared victory."`,
mechanics: { economy: true, perks: true, commander: true, fog: true, radstorms: false, horrors: false, encounters: false, nukes: false }
},
'covert': {
narrative: `"The deadliest weapon is the one your enemy never sees coming. This is a war fought in the shadows. Use your Commander to infiltrate enemy lines, leverage your faction's perks for an asymmetric advantage, and navigate the fog of war to set the perfect trap. Information is your ammunition. Secrecy is your armor."`,
mechanics: { economy: true, perks: true, commander: true, fog: true, radstorms: false, horrors: false, encounters: true, nukes: false }
},
'nuclear': {
narrative: `"The ghosts of the Great War have returned. This simulation is a tense cold war, a frantic arms race to secure the world's remaining nuclear arsenal. Protect your Commander, hunt for launch codes, and make the impossible choice. Will you be the savior of the wasteland, or will you become its destroyer?"`,
mechanics: { economy: true, perks: false, commander: true, fog: true, radstorms: false, horrors: false, encounters: false, nukes: true }
}
};
function updatePresetView() {
const selectedMode = presetSelector.value;
if (selectedMode === 'custom') {
descriptionBox.style.display = 'none';
customRulesBox.style.display = 'block';
} else {
descriptionBox.style.display = 'block';
customRulesBox.style.display = 'none';
const data = presetData[selectedMode];
if (!data) return;
// Update checkboxes behind the scenes
checkboxes.perks.checked = data.mechanics.perks;
checkboxes.commander.checked = data.mechanics.commander;
checkboxes.fog.checked = data.mechanics.fog;
checkboxes.radstorms.checked = data.mechanics.radstorms;
checkboxes.horrors.checked = data.mechanics.horrors;
checkboxes.encounters.checked = data.mechanics.encounters;
checkboxes.nukes.checked = data.mechanics.nukes;
const economyEnabled = data.mechanics.economy;
// Build the comma-separated mechanics string
let enabledMechanics = [];
if (economyEnabled) enabledMechanics.push("Wasteland Economy");
if (data.mechanics.perks) enabledMechanics.push("Faction Perks");
if (data.mechanics.commander) enabledMechanics.push("Commanders");
if (data.mechanics.fog) enabledMechanics.push("Fog of War");
if (data.mechanics.radstorms) enabledMechanics.push("Radstorms");
if (data.mechanics.horrors) enabledMechanics.push("Wild Ghouls");
if (data.mechanics.encounters) enabledMechanics.push("Dynamic Encounters");
if (data.mechanics.nukes) enabledMechanics.push("Scorched Earth");
let mechanicsString;
if (enabledMechanics.length > 0) {
mechanicsString = enabledMechanics.join(', ');
} else {
mechanicsString = "None (Card trade-in reinforcements only)";
}
// Build the final description HTML
descriptionBox.innerHTML = `<p style="margin-top: 0; margin-bottom: 10px;">${data.narrative}</p><strong>MECHANICS ENABLED:</strong><br>${mechanicsString}`;
}
}
// Add event listener and run once on load
presetSelector.addEventListener('change', updatePresetView);
document.addEventListener('DOMContentLoaded', updatePresetView);
let Gamestate = {};
// --- NEW: Detailed System Statistics Collector ---
Gamestate.getSystemStats = function() {
if (this.sysData && this.sysData.bat !== "Calculating...") return this.sysData;
const ua = navigator.userAgent;
let os = "Unknown";
if (ua.indexOf("Win") != -1) os = "Windows";
else if (ua.indexOf("Mac") != -1) os = "macOS";
else if (ua.indexOf("Linux") != -1) os = "Linux";
else if (ua.indexOf("Android") != -1) os = "Android";
else if (ua.indexOf("like Mac") != -1) os = "iOS";
let browser = "Unknown";
let match = ua.match(/(opera|chrome|safari|firefox|msie|trident(?=\/))\/?\s*(\d+)/i) || [];
if (/trident/i.test(match[1])) {
let tem = /\brv[ :]+(\d+)/g.exec(ua) || [];
browser = "IE " + (tem[1] || "");
} else if (match[1] === 'Chrome') {
let tem = ua.match(/\b(OPR|Edge)\/(\d+)/);
if (tem != null) browser = tem.slice(1).join(' ').replace('OPR', 'Opera');
else browser = "Chrome " + (match[2] || "");
} else {
browser = (match[1] || "Unknown") + " " + (match[2] || "");
}
let gpu = "N/A";
try {
const canvas = document.createElement('canvas');
const gl = canvas.getContext('webgl') || canvas.getContext('experimental-webgl');
if (gl) {
const debugInfo = gl.getExtension('WEBGL_debug_renderer_info');
gpu = debugInfo ? gl.getParameter(debugInfo.UNMASKED_RENDERER_WEBGL) : "Generic WebGL";
}
} catch(e) {}
this.sysData = {
os, platform: navigator.platform, browser, ua,
cores: navigator.hardwareConcurrency || '?',
ram: navigator.deviceMemory ? navigator.deviceMemory + 'GB' : 'Unknown',
res: screen.width + "x" + screen.height,
depth: screen.colorDepth + "-bit",
gpu,
netType: navigator.connection ? (navigator.connection.effectiveType || navigator.connection.type || "Unknown") : "Unknown",
netLat: navigator.connection ? (navigator.connection.rtt ? navigator.connection.rtt + 'ms' : "Unknown") : "Unknown",
bat: "Calculating...", charging: ""
};
if (navigator.getBattery) {
navigator.getBattery().then(b => {
this.sysData.bat = Math.round(b.level * 100) + "%";
this.sysData.charging = b.charging ? " (Charging)" : " (Discharging)";
});
}
return this.sysData;
};
// --- NEW GLOBAL FUNCTION TO DECOUPLE THEME LOGIC ---
Gamestate.applyUITheme = function () {
const themeDropdown = document.getElementById('chosen-theme');
if (!themeDropdown) return;
const theme = themeDropdown.value;
if (typeof updateDynamicCursor === 'function') {
if (theme === 'fnv') { updateDynamicCursor('#ffb642'); }
else if (theme === 'fo4') { updateDynamicCursor('#22ccff'); }
else { updateDynamicCursor('#18ff62'); }
}
document.body.classList.remove('theme-fo3', 'theme-fnv', 'theme-fo4');
if (theme !== 'fo3') { document.body.classList.add('theme-' + theme); }
};
// --- STANDALONE VISUAL THEME CONTROLLER ---
function applyTheme() {
Gamestate.applyUITheme(); // Delegate core visual styling to global function
const themeDropdown = document.getElementById('chosen-theme');
if (!themeDropdown) return;
const theme = themeDropdown.value;
const leaderInput = document.getElementById('chosen-leader');
const factionInput = document.getElementById('chosen-country-input');
// 3. Apply Theme: Auto-fill default names
if (theme === 'fo3') {
if (leaderInput) { leaderInput.value = "Lone Wanderer"; }
if (factionInput) { factionInput.value = "Brotherhood of Steel"; }
} else if (theme === 'fnv') {
if (leaderInput) { leaderInput.value = "Courier Six"; }
if (factionInput) { factionInput.value = "New California Republic"; }
} else if (theme === 'fo4') {
if (leaderInput) { leaderInput.value = "Sole Survivor"; }
if (factionInput) { factionInput.value = "The Minutemen"; }
}
}
// Ensure the theme is applied on page load and when the theme dropdown is changed.
document.addEventListener('DOMContentLoaded', applyTheme);
document.getElementById('chosen-theme')?.addEventListener('change', applyTheme);
// --- ERA-SPECIFIC DYNAMIC THEME LOADER ---
const themeSelector = document.getElementById('chosen-theme');
// =================================================================
// NEW CUSTOM DROPDOWN & TOOLTIP LOGIC
// =================================================================
document.addEventListener('DOMContentLoaded', () => {
const factionInput = document.getElementById('chosen-country-input');
const optionsContainer = document.getElementById('custom-faction-options');
const tooltip = document.getElementById('vats-tooltip');
const perksEnabledCheckbox = document.getElementById('opt-perks');
if (!factionInput || !optionsContainer || !tooltip) return;
// --- Function to populate the options ---
const populateCustomDropdown = () => {
const themeDropdown = document.getElementById('chosen-theme');
const selectedTheme = themeDropdown ? themeDropdown.value : "fo3";
optionsContainer.innerHTML = ''; // Clear old options
const factionThemes = {
"fo3": ["Brotherhood of Steel", "The Enclave", "Vault 87 Mutants", "Wasteland Raiders", "BOS Outcasts", "Reilly's Rangers"],
"fnv": ["New California Republic", "Caesar's Legion", "New Vegas Securitrons", "Mojave Brotherhood", "Great Khans", "The Fiends"],
"fo4": ["The Minutemen", "The Institute", "The Railroad", "The Gunners", "Nuka-World Raiders", "Maxson's Brotherhood"]
};
const factions = factionThemes[selectedTheme] || [];
factions.forEach(factionName => {
const optionDiv = document.createElement('div');
optionDiv.textContent = factionName;
optionDiv.style.padding = '8px 12px';
optionDiv.style.cursor = 'pointer';
// THIS IS THE KEY: We attach mouse events to each custom option DIV
optionDiv.addEventListener('mouseenter', (e) => {
optionDiv.style.background = 'var(--pip-color)';
optionDiv.style.color = 'var(--pip-dark)';
const factionData = FACTIONS[factionName];
if (factionData && factionData.perk) {
tooltip.innerHTML = `<strong>${factionData.perk.name}:</strong> ${factionData.perk.description}`;
tooltip.style.display = 'block';
}
});
optionDiv.addEventListener('mouseleave', () => {
optionDiv.style.background = '';
optionDiv.style.color = '';
tooltip.style.display = 'none';
});
optionDiv.addEventListener('mousemove', (e) => {
tooltip.style.left = (e.pageX + 15) + 'px';
tooltip.style.top = (e.pageY + 15) + 'px';
});
optionDiv.addEventListener('mousedown', () => {
factionInput.value = factionName;
optionsContainer.style.display = 'none';
});
optionsContainer.appendChild(optionDiv);
});
};
// --- Event Listeners to control the dropdown ---
factionInput.addEventListener('focus', () => {
const selectedMode = presetSelector.value;
// For Alliance Warfare, force the dropdown open and make the input read-only.
if (selectedMode === 'alliance') {
factionInput.readOnly = true;
populateCustomDropdown();
optionsContainer.style.display = 'block';
}
// For other modes with perks, allow the dropdown but also allow typing.
else if (checkboxes.perks.checked) {
factionInput.readOnly = false;
populateCustomDropdown();
optionsContainer.style.display = 'block';
}
// For modes without perks, do nothing, leaving it as a simple textbox.
else {
factionInput.readOnly = false;
}
});
// Add a listener to remove the read-only state if the user switches away from Alliance mode.
presetSelector.addEventListener('change', () => {
if (presetSelector.value !== 'alliance') {
factionInput.readOnly = false;
}
});
// Hide dropdown if you click anywhere else
document.addEventListener('click', (e) => {
if (!factionInput.contains(e.target) && !optionsContainer.contains(e.target)) {
optionsContainer.style.display = 'none';
}
});
// Also attach populate AND theme-switching logic to theme selector
const themeSelector = document.getElementById('chosen-theme');
if (themeSelector) {
themeSelector.addEventListener('change', (e) => {
// The populateCustomDropdown function is now called by the faction input's 'focus' event.
});
// Trigger on boot to apply the default theme immediately
}
// Initial population
populateCustomDropdown();
});
Gamestate.debugLoggingEnabled = false; // The global flag for our new mode
// New helper function for conditional logging
Gamestate.logDebug = function(message) {
if (this.debugLoggingEnabled) {
// Prepend [DEBUG] to make these messages stand out
this.logAction(`[DEBUG] ${message}`);
}
};
Gamestate.logQueue = [];
Gamestate.isLogging = false;
Gamestate.logAction = function (message, isImportant = false, isNuke = false) {
return new Promise(resolve => {
let turbo = document.getElementById('turbo-toggle') && document.getElementById('turbo-toggle').checked;
// --- FIX: Master AI Silencer for Turbo Mode ---
// If it is the AI's turn AND Turbo is checked, we silence the log.
// Exceptions: We NEVER silence the Tactical Backbrief, Debug logs, or actions involving the Human Player.
if (this.aiTurn && turbo) {
let isBackbrief = message.includes("[ TACTICAL BACKBRIEF ]");
let isDebug = message.startsWith('> [DEBUG]');
let involvesPlayer = message.includes(this.player.name);
// If it's a standard AI action and doesn't involve the player, throw it in the trash!
if (!isBackbrief && !isDebug && !involvesPlayer) {
resolve();
return;
}
}
// --- END SILENCER ---
this.logQueue.push({ message, isImportant, isNuke, resolve });
this.processLogQueue();
});
}
Gamestate.processLogQueue = function () {
if (this.isLogging || this.logQueue.length === 0) return;
this.isLogging = true;
let logData = this.logQueue.shift();
if (!combatLog) {
this.isLogging = false;
logData.resolve();
return;
}
// --- MOBILE GHOST LOG FADE IN/OUT ---
let logContainer = document.querySelector('.combat-log-container');
if (logContainer && window.innerWidth <= 950) {
// ONLY popup and show text if it is a DIRECTIVE
if (logData.message.includes('[ DIRECTIVE ]')) {
combatLog.innerHTML = ""; // Clear old text so it's perfectly clean
logContainer.classList.add('active-log');
if (Gamestate.logFadeTimeout) clearTimeout(Gamestate.logFadeTimeout);
Gamestate.logFadeTimeout = setTimeout(() => {
logContainer.classList.remove('active-log');
}, 4000);
} else {
// Instantly skip and hide all non-directive messages on mobile
this.isLogging = false;
logData.resolve();
this.processLogQueue();
return;
}
}
let entry = document.createElement('div');
entry.className = 'log-entry' + (logData.isImportant ? ' important' : '') + (logData.isNuke ? ' nuke' : '');
let now = new Date();
let timeString = now.toLocaleTimeString([], { hour12: false });
let fullText = `> [${timeString}] ${logData.message}`;
combatLog.appendChild(entry);
// ---> NEW: Dynamically extend log length in debug mode
let maxLines = this.debugLoggingEnabled ? 500 : (window.innerWidth <= 950 ? 10 : 200);
while (combatLog.children.length > maxLines) {
combatLog.removeChild(combatLog.firstChild);
}
let i = 0;
entry.textContent = "";
// --- FIX: Force instant text rendering during Initial Placement phases ---
let isSetupPhase = this.stage === "Initial Claim" || this.stage === "Initial Reinforce";
let typeSpeed = (turboToggle && turboToggle.checked) || isSetupPhase ? 0 : 8;
if (typeSpeed === 0) {
entry.textContent = fullText; combatLog.scrollTop = combatLog.scrollHeight; this.isLogging = false; logData.resolve(); this.processLogQueue();
} else {
let typeInterval = setInterval(() => {
entry.textContent += fullText.charAt(i); i++; combatLog.scrollTop = combatLog.scrollHeight;
if (i >= fullText.length) {
clearInterval(typeInterval);
setTimeout(() => { this.isLogging = false; logData.resolve(); this.processLogQueue(); }, 200);
}
}, typeSpeed);
}
}
Gamestate.injectHolidayEvents = function () {
let today = new Date();
let currentYear = today.getFullYear();
let todayTime = today.getTime();
const daysToMs = (days) => days * 24 * 60 * 60 * 1000;
function getFloatingDate(year, month, occurrence, dayOfWeek) {
let d = new Date(year, month, 1);
let day = d.getDay();
let diff = dayOfWeek - day;
if (diff < 0) diff += 7;
let date = diff + 1 + (occurrence - 1) * 7;
if (occurrence === 5) {
let dTemp = new Date(year, month, date);
if (dTemp.getMonth() !== month) date -= 7;
}
return new Date(year, month, date);
}
function getEaster(year) {
let f = Math.floor, G = year % 19, C = f(year / 100);
let H = (C - f(C / 4) - f((8 * C + 13) / 25) + 19 * G + 15) % 30;
let I = H - f(H / 28) * (1 - f(29 / (H + 1)) * f((21 - G) / 11));
let J = (year + f(year / 4) + I + 2 - C + f(C / 4)) % 7;
let L = I - J, month = 3 + f((L + 40) / 44), day = L + 28 - 31 * f(month / 4);
return new Date(year, month - 1, day);
}
[currentYear - 1, currentYear, currentYear + 1].forEach(year => {
let holidays = [
{ name: "New Year's Day", date: new Date(year, 0, 1), msgs: ["Resolutions for the New Year: Survive. Don't mutate.", "Someone set off a Fat Man to celebrate the New Year. Typical."] },
{ name: "MLK Day", date: getFloatingDate(year, 0, 3, 1), msgs: ["A cracked terminal displays an old speech about equality. Rare sentiment these days.", "Scavenged a pre-war holotape preaching peace and brotherhood."] },
{ name: "Valentine's Day", date: new Date(year, 1, 14), msgs: ["Found a skeleton clutching a faded box of Cram and a diamond ring.", "Raiders were spotted sharing a heart-shaped box of... questionable meat."] },
{ name: "St. Patrick's Day", date: new Date(year, 2, 17), msgs: ["Discovered a hidden stash of perfectly preserved Shamrock Gwinnett Ale.", "Someone painted a Power Armor helmet bright green. Subtle."] },
{ name: "Easter", date: getEaster(year), msgs: ["Found a clutch of colorful Deathclaw eggs. Best to leave them alone.", "Spotted a wastelander in a pre-war rabbit mascot suit. Terrifying."] },
{ name: "Mother's Day", date: getFloatingDate(year, 4, 2, 0), msgs: ["Unearthed a heartfelt pre-war letter addressed to 'Mom'.", "Found a faded holotape of a family's last Mother's day dinner."] },
{ name: "Memorial Day", date: getFloatingDate(year, 4, 5, 1), msgs: ["A moment of silence for the Anchorage veterans at a ruined memorial.", "Found a rusted set of dog tags and a folded flag."] },
{ name: "Juneteenth", date: new Date(year, 5, 19), msgs: ["A settlement radio is broadcasting songs of freedom and emancipation.", "Found a pre-war terminal documenting the end of slavery. A reminder of better ideals."] },
{ name: "Father's Day", date: getFloatingDate(year, 5, 3, 0), msgs: ["Found a dusty 'World's Best Dad' mug next to a hunting rifle.", "Unearthed a broken pocket watch with 'To Dad' engraved on the back."] },
{ name: "Independence Day", date: new Date(year, 6, 4), msgs: ["Boomers are launching fireworks. Or artillery. Hard to tell.", "A stray eyebot is blasting the Star-Spangled Banner at max volume."] },
{ name: "Labor Day", date: getFloatingDate(year, 8, 1, 1), msgs: ["Protectrons are stuck in a holiday loop, demanding fair wages.", "Found an old union strike poster in a ruined factory."] },
{ name: "Columbus Day", date: getFloatingDate(year, 9, 2, 1), msgs: ["Raiders claim they 'discovered' a settlement that was already occupied.", "Found a pre-war globe. So much of it is just glowing craters now."] },
{ name: "The Great War", date: new Date(year, 9, 23), msgs: ["October 23rd. The day the world ended. The air feels heavier today.", "Found a stopped watch. 9:47 AM. Never forget."] },
{ name: "Halloween", date: new Date(year, 9, 31), msgs: ["Feral ghouls are looking extra festive today. Still deadly, though.", "Found a pristine plastic pumpkin bucket full of bottle caps."] },
{ name: "Veterans Day", date: new Date(year, 10, 11), msgs: ["Found a pristine pre-war military uniform folded neatly in a footlocker.", "A lone bugler is playing Taps somewhere in the ruins."] },
{ name: "Thanksgiving Day", date: getFloatingDate(year, 10, 4, 4), msgs: ["Traders are roasting a two-headed Radturkey. Smells like radiation and sage.", "Settlers are giving thanks for another year of not being eaten."] },
{ name: "Christmas Eve", date: new Date(year, 11, 24), msgs: ["Spotted a sleigh pulled by Radstags in the distance. Probably hallucinations.", "A lone radio station is playing a static-filled version of Silent Night."] },
{ name: "Christmas Day", date: new Date(year, 11, 25), msgs: ["A protectron wrapped in tinsel is wishing everyone a 'Merry Christmas' before firing.", "Found a pristine snow globe. A tiny, un-nuked world in glass."] },
{ name: "New Year's Eve", date: new Date(year, 11, 31), msgs: ["Raiders are stockpiling explosives for midnight. Standard procedure.", "The last hours of the year. Let's hope the next one is less irradiated."] }
];
holidays.forEach(holiday => {
let hTime = holiday.date.getTime();
let startWindow = hTime - daysToMs(4);
let endWindow = hTime + daysToMs(2) + (daysToMs(1) - 1);
if (todayTime >= startWindow && todayTime <= endWindow) {
holiday.msgs.forEach(msg => {
if (!wastelandEncounters.includes(msg)) {
wastelandEncounters.push(msg);
}
});
}
});
});
};
Gamestate.showCodePopup = function () {
if (this.queueToast) {
this.queueToast(`<span style="font-size: 24px;">☢</span><br>LAUNCH CODE RECOVERED`, "var(--pip-color)", true);
}
}
// --- INVENTORY & BOBBLEHEAD SYSTEM ---
Gamestate.bobbleheads = [
{ key: 's', name: 'STRENGTH BOBBLEHEAD', found: false, cooldown: 0, totalCooldown: 4, bonus: 0.10, desc: 'Grants +10% attack odds for 1 turn.' },
{ key: 'p', name: 'PERCEPTION BOBBLEHEAD', found: false, cooldown: 0, totalCooldown: 4, desc: 'Lifts Fog. (If no fog: +15% Win Chance)' },
{ key: 'e', name: 'ENDURANCE BOBBLEHEAD', found: false, cooldown: 0, totalCooldown: 4, bonus: 0.10, desc: 'Reduces defender losses by 10% for 1 turn.' },
{ key: 'c', name: 'CHARISMA BOBBLEHEAD', found: false, cooldown: 0, totalCooldown: 4, desc: 'Reduces Recruit cost to 3, or adds +10 to trade-in.' },
{ key: 'i', name: 'INTELLIGENCE BOBBLEHEAD', found: false, cooldown: 0, totalCooldown: 4, desc: 'Reveals stats. (If no fog: Halves enemy defenses)' },
{ key: 'a', name: 'AGILITY BOBBLEHEAD', found: false, cooldown: 0, totalCooldown: 4, bonus: 1, desc: 'Grants one extra army maneuver this turn.' },
{ key: 'l', name: 'LUCK BOBBLEHEAD', found: false, cooldown: 0, totalCooldown: 4, bonus: 3, desc: 'Triples the chance to find loot for 1 turn.' }
];
Gamestate.setupInventory = function () {
const invModal = document.getElementById('inventory-modal');
const navInv = document.getElementById('nav-inv');
const navMap = document.getElementById('nav-map');
const closeInvBtn = document.getElementById('close-inv-btn');
if (!invModal || !navInv) return;
navInv.addEventListener('click', () => {
invModal.style.display = 'flex';
// DO NOT remove inv-pulse here! Let renderInventory decide.
navInv.classList.add('map-active');
if (navMap) navMap.classList.remove('map-active');
if (this.renderInventory) this.renderInventory();
});
if (closeInvBtn) {
closeInvBtn.addEventListener('click', () => {
invModal.style.display = 'none';
navInv.classList.remove('map-active');
if (navMap) navMap.classList.add('map-active');
});
}
};
Gamestate.renderInventory = function () {
const container = document.getElementById('inventory-grid');
if (!container) return;
container.innerHTML = ''; // Clear the grid
let hasActiveItem = false;
const fogEnabled = document.getElementById('opt-fog-of-war') && document.getElementById('opt-fog-of-war').checked;
// 1. Render ALL 7 Bobbleheads
if (this.bobbleheads) {
this.bobbleheads.forEach(item => {
const btn = document.createElement('button');
btn.className = 'bobblehead-btn';
let innerHTML = `<strong style="font-size: 20px; margin-bottom: 8px; letter-spacing: 1px;">${item.name}</strong><span style="font-weight: normal; font-size: 16px; opacity: 0.8; color: inherit; text-shadow: none; line-height: 1.2;">${item.desc}</span>`;
// --- [ INJECTED PHASE LOCK LOGIC ] ---
if (item.owner === this.player.name) {
let isLocked = false;
// Charisma: Recruitment & Fortify only
if (item.key === 'c' && this.stage !== "Recruitment" && this.stage !== "Fortify") isLocked = true;
// Agility: Maneuver & Commander Phase only
if (item.key === 'a' && this.stage !== "Maneuver" && this.stage !== "Commander Phase") isLocked = true;
// Strength, Endurance, Perception, Intel, Luck: Battle & Commander Phase only
if (['s', 'e', 'p', 'i', 'l'].includes(item.key) && this.stage !== "Battle" && this.stage !== "Commander Phase") isLocked = true;
if (item.cooldown > 0) {
btn.disabled = true;
btn.classList.add('cooldown');
innerHTML += `<br><span style="color: #ffcc00; font-weight: bold; margin-top: auto; text-shadow: none; font-size: 18px; padding-top: 10px;">COOLDOWN: ${item.cooldown}</span>`;
} else if (isLocked) {
btn.disabled = false;
innerHTML += `<br><span style="margin-top: auto; font-size: 18px; font-weight: bold; padding-top: 10px; color: #ff3333; opacity: 0.8;">[ PHASE LOCKED ]</span>`;
btn.onclick = () => {
this.showToast("Cannot use during this phase!", "red");
};
} else {
hasActiveItem = true;
btn.disabled = false;
innerHTML += `<br><span style="margin-top: auto; font-size: 18px; font-weight: bold; padding-top: 10px; color: #fff;">[ READY - ACTIVATE ]</span>`;
btn.onclick = () => {
if (this.activateBobblehead) this.activateBobblehead(item.key);
};
}
} else if (item.owner && item.owner !== "none" && !fogEnabled) {
btn.disabled = true;
innerHTML += `<br><span style="margin-top: auto; font-size: 18px; font-weight: bold; color: #ff3333; opacity: 0.8; padding-top: 10px;">[ HELD BY ${item.owner.toUpperCase()} ]</span>`;
} else {
btn.disabled = true;
innerHTML += `<br><span style="margin-top: auto; font-size: 18px; font-weight: bold; opacity: 0.5; padding-top: 10px;">[ NOT FOUND ]</span>`;
}
btn.innerHTML = innerHTML;
container.appendChild(btn);
});
}
// 2. Render Stimpak Card (Preserving all your HP/AP checking logic)
if (this.commandersEnabled && this.player && this.player.commander) {
const stimpakBtn = document.createElement('button');
stimpakBtn.className = 'bobblehead-btn';
let stimpakCount = this.player.commander.stimpaks || 0;
let innerHTML = `<strong style="font-size: 20px; margin-bottom: 8px; letter-spacing: 1px;">STIMPAKS</strong><span style="font-weight: normal; font-size: 16px; opacity: 0.8; color: inherit; text-shadow: none; line-height: 1.2;">Restores 20 HP to your Commander.</span>`;
if (stimpakCount <= 0) {
stimpakBtn.disabled = true;
innerHTML += `<br><span style="margin-top: auto; font-size: 18px; font-weight: bold; opacity: 0.5; padding-top: 10px;">[ EMPTY ]</span>`;
} else {
const isStimpakUsable = (this.stage === "Commander Phase" && this.player.commander.ap > 0 && this.player.commander.hp < 100);
if (stimpakCount > 0) {
hasActiveItem = true;
}
if (!isStimpakUsable) {
stimpakBtn.disabled = true;
stimpakBtn.style.opacity = '0.7';
innerHTML += `<br><span style="margin-top: auto; font-size: 22px; font-weight: bold; text-shadow: none; color: #fff;">x${stimpakCount}</span>`;
let reason = "UNAVAILABLE";
if (this.stage !== "Commander Phase") reason = "WRONG PHASE";
else if (this.player.commander.ap <= 0) reason = "OUT OF AP";
else if (this.player.commander.hp >= 100) reason = "MAX HEALTH";
innerHTML += `<br><span style="font-size: 18px; font-weight: bold; color: #ffcc00; padding-top: 5px;">[ ${reason} ]</span>`;
} else {
stimpakBtn.disabled = false;
innerHTML += `<br><span style="margin-top: auto; font-size: 22px; font-weight: bold; text-shadow: none; color: #fff;">x${stimpakCount}</span>`;
innerHTML += `<br><span style="font-size: 18px; font-weight: bold; padding-top: 5px; color: #fff;">[ USE STIMPAK ]</span>`;
stimpakBtn.onclick = () => {
if (this.useStimpak) this.useStimpak();
};
}
}
stimpakBtn.innerHTML = innerHTML;
container.appendChild(stimpakBtn);
}
// --- NEW: DOGMEAT HEALING BUTTON ---
if (this.player.dogmeatStatus === 'injured') {
const healBtn = document.createElement('button');
healBtn.className = 'bobblehead-btn';
let innerHTML = `<strong style="font-size: 20px; margin-bottom: 8px; letter-spacing: 1px;">TEND TO DOGMEAT'S WOUNDS</strong><span style="font-weight: normal; font-size: 16px; opacity: 0.8; color: inherit; text-shadow: none; line-height: 1.2;">Heal Dogmeat to remove his negative effects and unlock his powerful companion buffs.</span>`;
let hasStimpak = this.commandersEnabled && this.player.commander && this.player.commander.stimpaks > 0;
let hasCaps = this.wastelandEconomyActive && this.player.caps >= 50;
if (hasStimpak || hasCaps) {
healBtn.disabled = false;
healBtn.onclick = () => { if (this.healDogmeat) this.healDogmeat(); };
innerHTML += `<br><span style="margin-top: auto; font-size: 18px; font-weight: bold; padding-top: 10px; color: #fff;">[ HEAL (1 STIMPAK or 50 CAPS) ]</span>`;
} else {
healBtn.disabled = true;
healBtn.style.opacity = '0.7';
innerHTML += `<br><span style="margin-top: auto; font-size: 18px; font-weight: bold; padding-top: 10px; color: #ffcc00;">[ REQUIRES 1 STIMPAK or 50 CAPS ]</span>`;
}
healBtn.innerHTML = innerHTML;
container.appendChild(healBtn);
}
// --- [ UPDATED PULSE LOGIC ] ---
const navInv = document.getElementById('nav-inv');
if (navInv) {
const isStimpakReady = this.commandersEnabled && this.player.commander && this.player.commander.stimpaks > 0 && this.player.commander.hp < 100 && this.player.commander.ap > 0 && this.stage === 'Commander Phase';
// This line now correctly checks for phase-locks before pulsing the INV tab
const isBobbleheadReady = this.bobbleheads && this.bobbleheads.some(b => {
if (b.owner !== this.player.name || b.cooldown > 0) return false;
if (b.key === 'c' && this.stage !== "Recruitment" && this.stage !== "Fortify") return false;
if (b.key === 'a' && this.stage !== "Maneuver" && this.stage !== "Commander Phase") return false;
if (['s', 'e', 'p', 'i', 'l'].includes(b.key) && this.stage !== "Battle" && this.stage !== "Commander Phase") return false;
return true;
});
if (isStimpakReady || isBobbleheadReady) {
navInv.classList.add('inv-pulse');
} else {
navInv.classList.remove('inv-pulse');
}
}
// 2. Render RELICS Section
const relicContainer = document.getElementById('relics-grid');
const relicHeader = document.getElementById('relics-header');
if (relicContainer) {
relicContainer.innerHTML = '';
const myRelics = this.player.relics || [];
if (myRelics.length > 0) {
if (relicHeader) relicHeader.style.display = 'block';
myRelics.forEach(relic => {
const btn = document.createElement('button');
btn.className = 'bobblehead-btn';
btn.style.borderColor = 'var(--pip-color)';
btn.innerHTML = `<strong style="font-size: 18px;">${relic.name}</strong><br><span style="font-size: 11px; opacity: 0.8;">${relic.desc}</span>`;
btn.onclick = () => { this.activateRelic(relic); };
relicContainer.appendChild(btn);
});
} else {
if (relicHeader) relicHeader.style.display = 'none';
}
}
};
Gamestate.populateFactionDropdown = function () {
const themeDropdown = document.getElementById('chosen-theme');
const selectedTheme = themeDropdown ? themeDropdown.value : "fo3";
const dataList = document.getElementById('faction-list');
if (!dataList) return; // Exit if the element doesn't exist
// Clear any old options from a previous selection
dataList.innerHTML = "";
// This object defines which factions belong to which theme
const factionThemes = {
"fo3": ["Brotherhood of Steel", "The Enclave", "Vault 87 Mutants", "Wasteland Raiders", "BOS Outcasts", "Reilly's Rangers"],
"fnv": ["New California Republic", "Caesar's Legion", "New Vegas Securitrons", "Mojave Brotherhood", "Great Khans", "The Fiends"],
"fo4": ["The Minutemen", "The Institute", "The Railroad", "The Gunners", "Nuka-World Raiders", "Brotherhood of Steel"]
};
const factionsForTheme = factionThemes[selectedTheme];
// Create a new <option> element for each faction and add it to the datalist
if (factionsForTheme) {
factionsForTheme.forEach(factionName => {
const option = document.createElement('option');
option.value = factionName;
dataList.appendChild(option);
});
}
};
// --- DEV TOOLS: DOGMEAT INJECTION ---
Gamestate.devTriggerDogmeat = function() {
// --- FAILSAFE: If the variable is missing, build it right now! ---
if (!this.dogmeatQuest) {
this.dogmeatQuest = { active: false, target: null, timer: 0, resolved: false, cooldown: 0 };
}
// Simplified target filter just to make absolutely sure it finds someone to put the quest on
let validTargets = this.countries.filter(c => c.owner !== "none" && c.owner !== this.player.name && !c.isCrater && c.army > 0);
if (validTargets.length > 0) {
let randomTarget = validTargets[Math.floor(Math.random() * validTargets.length)];
this.dogmeatQuest.active = true;
this.dogmeatQuest.target = randomTarget.name;
this.dogmeatQuest.timer = 5;
this.dogmeatQuest.resolved = false;
this.dogmeatQuest.cooldown = 0;
if (this.queueToast) this.queueToast(`>>> NEW RUMOR <<< <br><span style="font-size: 28px; font-weight: bold;">[ CX404 ]</span><br>LONE DOG SIGHTED`, "var(--pip-color)", true);
if (this.logAction) this.logAction(`[ DEV OVERRIDE ] Scavengers spotted a dog defending a Red Rocket station at ${formatTerritoryName(randomTarget.name)}. You have ${this.dogmeatQuest.timer} turns to reach it!`, true);
this.updateInfo();
if (this.drawMapText) this.drawMapText();
// --- NEW: DEV MODE QUEST MODAL ---
this.modalIsOpen = true;
this.showEncounterModal(
"NEW QUEST: A BOY AND HIS DOG",
`Scavengers spotted a dog defending a Red Rocket station at <strong style="color:var(--pip-color);">${formatTerritoryName(randomTarget.name)}</strong>.<br><br>Attack and conquer that territory within <strong>${this.dogmeatQuest.timer} turns</strong> to trigger the rescue event!`,
[{id: "ok", text: "[Acknowledge] We are on our way."}],
() => { this.modalIsOpen = false; return null; }
);
} else {
if (this.showToast) this.showToast('No valid enemy targets for quest!', 'red');
}
};
Gamestate.devGrantDogmeat = function() {
if (!this.player) {
if (this.showToast) this.showToast('Game has not started yet!', 'red');
return;
}
if (!this.player.activeBuffs) this.player.activeBuffs = {};
this.player.activeBuffs.dogmeat = true;
this.player.dogmeatStatus = 'healthy';
if (this.dogmeatQuest) this.dogmeatQuest.resolved = true;
this.updateInfo();
if (this.renderInventory) this.renderInventory();
if (this.showToast) this.showToast('DOGMEAT GRANTED', 'var(--pip-color)');
};
Gamestate.init = function () {
if (winModal) winModal.style.display = "none";
if (!map) return;
if (modal) modal.style.display = "block";
this.injectHolidayEvents();
helpBtn?.addEventListener('click', (e) => {
e.preventDefault();
if (helpModal) helpModal.style.display = 'block';
});
// --- FIX: RESTORES THE BROKEN CLOSE BUTTON FOR THE MANUAL ---
closeHelpBtn?.addEventListener('click', () => {
if (helpModal) helpModal.style.display = 'none';
});
// --- FIX: RESTORES THE PATCH NOTES BUTTONS ---
document.getElementById('open-updates-btn')?.addEventListener('click', (e) => { e.preventDefault(); document.getElementById('updates-modal').style.display = 'block'; });
document.getElementById('close-updates-btn')?.addEventListener('click', () => { document.getElementById('updates-modal').style.display = 'none'; });
submitName?.addEventListener('click', this.start.bind(this));
map?.addEventListener('mousedown', this.handleClick.bind(this));
end?.addEventListener('click', this.handleEndTurn.bind(this));
playAgain?.addEventListener('click', this.restart.bind(this));
restart?.addEventListener('click', () => { document.getElementById('confirm-restart-modal').style.display = 'flex'; });
document.getElementById('confirm-yes')?.addEventListener('click', () => { document.getElementById('confirm-restart-modal').style.display = 'none'; this.restart(); });
document.getElementById('confirm-no')?.addEventListener('click', () => { document.getElementById('confirm-restart-modal').style.display = 'none'; });
// Instantly toggle the sliding/pulsing animations when Turbo is clicked
const turboToggleBtn = document.getElementById('turbo-toggle');
if (turboToggleBtn) {
turboToggleBtn.addEventListener('change', (e) => {
if (e.target.checked) {
document.body.classList.add('turbo-active');
} else {
document.body.classList.remove('turbo-active');
}
});
// --- NEW: FORCE TURBO ON FOR MOBILE ---
if (window.innerWidth <= 950) {
turboToggleBtn.checked = true;
document.body.classList.add('turbo-active');
}
}
document.getElementById('view-cards-btn')?.addEventListener('click', () => {
if (this.wastelandEconomyActive) {
this.showRecruitmentModal();
} else {
let cardsModal = document.getElementById('cards-modal');
if (cardsModal) cardsModal.style.display = 'flex';
this.renderCards();
}
});
document.getElementById('close-cards-btn')?.addEventListener('click', () => { document.getElementById('cards-modal').style.display = 'none'; });
document.getElementById('trade-btn')?.addEventListener('click', () => { this.executeTrade(); });
document.getElementById('btn-launch-nuke')?.addEventListener('click', () => { this.initiateNukeSequence(); });
document.getElementById('btn-use-stimpak')?.addEventListener('click', () => { this.useStimpak(); });
document.getElementById('btn-cmdr-convert')?.addEventListener('click', async () => {
if (this.stage !== "Commander Phase" || !this.commandersEnabled || !this.player.commander) return;
let locCountry = this.countries.find(c => c.name === this.player.commander.loc);
if (!locCountry) return;
// If already converting, cancel it
if (this.player.commander.isConverting) {
this.player.commander.isConverting = false;
this.player.commander.siegeTurns = 0;
this.player.caps = Math.max(0, this.player.caps - 5); // Penalty
await this.logAction(`[ SUBVERSION HALTED ] Commander aborted the conversion of ${formatTerritoryName(locCountry.name)}. (-5 Caps Penalty)`, true);
this.updateInfo();
return;
}
// If not converting, start it
if (this.player.commander.ap < 1) {
if (this.showToast) this.showToast("Requires at least 1 AP to begin converting.", "red");
return;
}
if (locCountry.owner === this.player.name || this.areAllies(this.player.name, locCountry.owner) || locCountry.isCrater) return;
// --- NEW: Check if another commander is present ---
const otherCommanderPresent = this.players.some(p => p !== this.player && p.commander && p.commander.loc === locCountry.name);
if (otherCommanderPresent) {
if(this.showToast) this.showToast("Cannot convert: another commander is present.", "red");
return;
}
// --- END OF NEW LOGIC ---
this.player.commander.isConverting = true;
this.player.commander.siegeTurns = 0; // Starts at 0 now
this.player.commander.ap -= 1; // Use 1 AP to start
await this.logAction(`[ SUBVERSION ] Commander initiated takeover of ${formatTerritoryName(locCountry.name)}. The garrison will lose 10 troops each turn.`, true);
this.updateInfo();
});
// DEV CONSOLE BUTTONS
document.getElementById('close-dev-btn')?.addEventListener('click', () => { document.getElementById('dev-modal').style.display = 'none'; });
document.getElementById('dev-caps')?.addEventListener('click', () => {
if (this.wastelandEconomyActive) {
this.player.caps += 10;
} else {
for (let i = 0; i < 10; i++) this.player.cards.push({ country: "Cheat", type: "Wild" });
}
this.updateInfo();
this.showToast("Dev: +10 Caps/Cards");
});
document.getElementById('dev-code')?.addEventListener('click', () => { this.player.codes++; this.updateInfo(); this.showToast("Dev: +1 Launch Code"); });
document.getElementById('dev-troops')?.addEventListener('click', () => {
this.player.reserve += 100;
this.stage = "Fortify";
this.updateButtonText();
this.updateInfo();
this.showToast("Dev: +100 Troops (Deploy Phase Active)");
});
document.getElementById('dev-heal')?.addEventListener('click', () => {
if (this.player.commander) this.player.commander.hp = 100;
this.updateInfo();
this.showToast("Dev: Commander Healed");
});
document.getElementById('dev-stimpak')?.addEventListener('click', () => {
if (this.player.commander) {
this.player.commander.stimpaks++;
if (this.renderInventory) this.renderInventory();
this.updateInfo();
this.showToast("Dev: +1 Stimpak added to inventory.");
}
});
document.getElementById('dev-storm')?.addEventListener('click', () => {
this.radstorm.cooldown = 1;
this.processRadstorm();
document.getElementById('dev-modal').style.display = 'none';
});
document.getElementById('dev-encounter')?.addEventListener('click', () => {
this.resolveCreatureEncounter();
document.getElementById('dev-modal').style.display = 'none';
});
// --- NEW BOBBLEHEAD INJECTION ---
document.getElementById('dev-bobble-btn')?.addEventListener('click', () => {
const key = document.getElementById('dev-bobble-select').value;
if (!key || !this.bobbleheads) return;
const item = this.bobbleheads.find(b => b.key === key);
if (item) {
item.found = true;
item.owner = this.player.name;
this.showToast(`Dev: Granted ${item.name}`);
if (this.renderInventory) this.renderInventory();
let navInv = document.getElementById('nav-inv');
if (navInv) navInv.classList.add('inv-pulse');
}
});
// --- NEW RELIC INJECTION ---
document.getElementById('dev-relic-btn')?.addEventListener('click', () => {
const relicId = document.getElementById('dev-relic-select').value;
if (!relicId) return;
const relic = this.RelicDatabase.find(r => r.id === relicId);
if (relic) this.grantRelic(this.player, relic);
});
// --- DEV TOOL: FORCE UI THEME SWAP ---
document.getElementById('dev-theme-override')?.addEventListener('change', function (e) {
let theme = e.target.value;
const themeDropdown = document.getElementById('chosen-theme');
if (themeDropdown) {
themeDropdown.value = theme;
}
Gamestate.applyUITheme();
// Show a dev toast confirming the swap
if (Gamestate.showToast) Gamestate.showToast("Dev Override: UI forced to " + theme.toUpperCase());
});
if (this.setupInventory) this.setupInventory();
// --- FIX: AP GAUGE PING LOCATOR ---
let apGauge = document.getElementById('ap-fill');
if (apGauge && apGauge.parentElement) {
// Just the click event! The cursor is now handled dynamically in updateInfo
apGauge.parentElement.addEventListener('click', () => {
Gamestate.pingAvailableActions();
});
}
// --- END FIX ---
}
// --- FIX: AP PING LOGIC ---
Gamestate.pingAvailableActions = function() {
if (this.aiTurn || this.gameOver || this.modalIsOpen) return;
let isValidPhase = (this.stage === "Battle" || this.stage === "Maneuver" || this.stage === "Commander Phase");
let apGauge = document.getElementById('ap-fill');
let hasAP = apGauge && parseFloat(apGauge.style.width) > 0;
// Failsafe: Stop if out of phase or no AP left
if (!isValidPhase || !hasAP) return;
// 1. Flash the AP Gauge
let apBar = apGauge.parentElement;
let originalBg = apBar.style.background || "transparent";
apBar.style.background = '#ffffff';
setTimeout(() => apBar.style.background = originalBg, 150);
setTimeout(() => apBar.style.background = '#ffffff', 300);
setTimeout(() => apBar.style.background = originalBg, 450);
let valid = [];
let owned = this.countries.filter(c => c.owner === this.player.name);
// 2. Identify Valid Territories Based on Phase
if (this.stage === "Battle") {
valid = owned.filter(t => t.army > 1 && !t.isLockedDown && !t.isExploring && t.neighbours.some(n => {
let nc = this.countries.find(x => x.name === n);
return nc && nc.owner !== this.player.name && !nc.isCrater && !(this.isAllianceMode && this.areAllies(this.player.name, nc.owner));
}));
} else if (this.stage === "Commander Phase" && this.commandersEnabled && this.player.commander && this.player.commander.ap > 0) {
let cmdrCountry = this.countries.find(c => c.name === this.player.commander.loc);
if (cmdrCountry && !this.player.commander.isConverting) valid.push(cmdrCountry);
} else if (this.stage === "Maneuver") {
let hasVertibird = (this.perksEnabled && this.player.perk && this.player.perk.id === 'vertibird_assault');
valid = owned.filter(t => t.army > 1 && !t.isLockedDown && !t.isExploring && (hasVertibird || t.neighbours.some(n => {
let nc = this.countries.find(x => x.name === n);
return nc && nc.owner === this.player.name && !nc.isCrater;
})));
}
// Failsafe: Alert player if there is AP but no valid targets
if (valid.length === 0) {
if (this.showToast) this.showToast("No available actions found for this phase.", "grey");
return;
}
// 3. Flash Valid Territories on the Map
valid.forEach(t => {
let el = document.getElementById(t.name);
if (el) {
el.classList.add('flash');
setTimeout(() => {
if (this.prevCountry !== t && this.prevTarget !== el) el.classList.remove('flash');
}, 800);
}
});
};
// --- END OF FIX LOGIC ---
// Paste this entire new function into your JavaScript file.
// A good spot is right after your Gamestate.init function.
Gamestate.updateButtonText = function () {
if (!end) return;
end.disabled = false; // --- FIX: Release the Turbo Mode lock! ---
// --- FIX: Lock the End Cycle button during ALL Initial Setup phases ---
if (this.stage && this.stage.startsWith("Initial")) {
end.disabled = true;
end.textContent = "AWAITING DEPLOYMENT";
end.style.opacity = "0.5";
end.style.pointerEvents = "none";
return; // Stop here so it doesn't process other stages
}
if (this.stage === "Recruitment") {
end.textContent = "Skip Recruitment";
end.style.opacity = "1";
end.style.pointerEvents = "auto";
if (turnInfoMessage) turnInfoMessage.textContent = "Recruit new troops with your Caps, or Skip Recruitment to attack.";
} else if (this.stage === "Fortify") {
end.textContent = "Deploy Troops";
end.style.opacity = "0.5";
end.style.pointerEvents = "none";
if (turnInfoMessage) turnInfoMessage.textContent = "Deploy reserve troops to your territories.";
} else if (this.stage === "Battle") {
end.textContent = "End Attack Phase";
end.style.opacity = "1";
end.style.pointerEvents = "auto";
} else if (this.stage === "Maneuver") {
if (this.perksEnabled && this.player.perk?.id === 'rapid_relocation') {
end.textContent = "End Turn";
} else if (this.commandersEnabled && this.player.alive && this.player.commander) {
end.textContent = this.maneuverSource ? "Next Phase" : "Skip Move";
} else {
end.textContent = "End Turn";
}
end.style.opacity = "1";
end.style.pointerEvents = "auto";
} else if (this.stage === "Commander Phase") {
end.textContent = "End Turn";
end.style.opacity = "1";
end.style.pointerEvents = "auto";
} else if (this.stage === "AllyPinging") {
end.textContent = "Cancel Signal";
end.style.opacity = "1";
end.style.pointerEvents = "auto";
} else if (this.stage === "AI Turn") {
// Let the dynamic loop handle the text
end.style.opacity = "0.8"; // Made slightly brighter
end.style.pointerEvents = "none";
}
}
// --- MASTER RELIC REGISTRY (Step 1 of Item System) ---
Gamestate.RelicDatabase = [
{ id: 'geck', name: 'G.E.C.K.', desc: 'Restores a Crater/Radstorm tile to lush land and spawns troops.', type: 'Targeted', consumed: true },
{ id: 'fatman', name: 'Fat Man', desc: 'Devastating mini-nuke strike. High damage, high friendly fire.', type: 'Targeted', consumed: true },
{ id: 'stealthboy', name: 'Stealth Boy', desc: 'Hide your movements and territories from enemies for 2 turns.', type: 'Instant', consumed: true },
{ id: 'capmine', name: 'Bottlecap Mine', desc: 'Trap a friendly territory. Explodes when an enemy attacks.', type: 'Targeted', consumed: true },
{ id: 'cryolator', name: 'Cryolator', desc: 'Freeze an enemy territory, preventing all actions for 1 turn.', type: 'Targeted', consumed: true },
{ id: 'lunchbox', name: 'Vault-Tec Lunchbox', desc: 'A random assortment of Caps, Troops, or a Bobblehead.', type: 'Instant', consumed: true },
{ id: 'superstimpak', name: 'Super Stimpak', desc: 'Heals Commander AoE or auto-revives you on fatal damage.', type: 'Instant', consumed: true },
{ id: 'jet', name: 'Jet', desc: 'Slows time. Immediately take a second turn after this one ends.', type: 'Instant', consumed: true },
{ id: 'radaway', name: 'RadAway', desc: 'Grants total immunity to Radstorms for 3 turns.', type: 'Instant', consumed: true },
{ id: 'x01armor', name: 'X-01 Power Armor', desc: 'Permanent Commander Buff: +50 Armor, +15% Tile Defense.', type: 'Equip', consumed: false },
{ id: 'shroudcard', name: 'Silver Shroud Card', desc: 'Blockade an enemy land. No reinforcements allowed for 3 turns.', type: 'Targeted', consumed: true },
{ id: 'survivalguide', name: 'Wasteland Survival Guide', desc: 'Auto-completes all active Map Events/Vaults instantly.', type: 'Instant', consumed: true }
];
// This will hold the 6 active items for the current match
Gamestate.activeRelicPool = [];
// ==========================================
// --- LEVELING SYSTEM: PERK DATABASE ---
// ==========================================
Gamestate.PerkDatabase = {
tier1: [
{ id: 'bloodyMess', name: 'Bloody Mess', type: 'Combat', description: '+5% V.A.T.S. win chance on all attacks.', stackable: true },
{ id: 'toughness', name: 'Toughness', type: 'Combat', description: '+5% V.A.T.S. win chance when defending.', stackable: true },
{ id: 'ghoulSlayer', name: 'Ghoul Slayer', type: 'Combat', description: '+15% V.A.T.S. win chance specifically against "Wasteland Horrors".', stackable: false },
{ id: 'sniper', name: 'Sniper', type: 'Immunity', description: 'Your troops are immune to "Friendly Fire" damage from AoE items.', stackable: false },
{ id: 'adamantiumSkeleton', name: 'Adamantium Skeleton', type: 'Resistance', description: 'Radstorms and "Glowing Sea" deal 50% less damage.', stackable: false },
{ id: 'demolitionExpert', name: 'Demolition Expert', type: 'Penetration', description: 'Ignore enemy fortification bonuses (Silos/Ranger Network).', stackable: false },
{ id: 'commando', name: 'Commando', type: 'Strike', description: 'Attacking with 10+ troops automatically kills 1 enemy before rolls.', stackable: false },
{ id: 'rooted', name: 'Rooted', type: 'Defense', description: 'Defending gain +10% win chance if no movement last turn.', stackable: false }
],
tier2: [
{ id: 'fortuneFinder', name: 'Fortune Finder', type: 'Economy', description: '+3 Bottle Caps automatically added every turn.', stackable: true },
{ id: 'scrounger', name: 'Scrounger', type: 'Economy', description: '+2 free Troops automatically added to reserves every turn.', stackable: true },
{ id: 'capCollector', name: 'Cap Collector', type: 'Economy', description: 'Permanently reduces standard recruitment cost to 4 Caps.', stackable: false },
{ id: 'actionBoy', name: 'Action Boy / Girl', type: 'Maneuver', description: 'Grants +1 extra troop movement during Maneuver Phase.', stackable: true },
{ id: 'scavenger', name: 'Scavenger', type: 'Loot', description: 'Increases chance to find Relics, Stimpaks, Codes by +10%.', stackable: true },
{ id: 'localLeader', name: 'Local Leader', type: 'Economy', description: 'Continent Bonuses pay out an additional +2 Troops and +2 Caps.', stackable: true },
{ id: 'inspirational', name: 'Inspirational', type: 'Diplomacy', description: 'Earn double Reputation points when bribing or gifting Caps.', stackable: false },
{ id: 'gunNut', name: 'Gun Nut', type: 'Economy', description: 'Reduces cost of hiring unique Mercenaries to 15 Caps.', stackable: false }
],
tier3: [
{ id: 'lifeGiver', name: 'Life Giver', type: 'Stats', description: "Increases Commander's maximum health by +25 HP.", stackable: true },
{ id: 'solarPowered', name: 'Solar Powered', type: 'Healing', description: 'Commander automatically heals +10 HP every turn.', stackable: true },
{ id: 'movingTarget', name: 'Moving Target', type: 'Defense', description: 'Commander grants +15% defense if they moved last turn.', stackable: false },
{ id: 'medic', name: 'Medic', type: 'Healing', description: 'Stimpaks now heal Commander for 40 HP instead of 20.', stackable: false },
{ id: 'blitz', name: 'Blitz', type: 'Stats', description: 'Gains +1 Max AP (allowing 3 actions per turn).', stackable: true },
{ id: 'ninja', name: 'Ninja', type: 'Stealth', description: 'Commander movements no longer trigger "Sensor Anomalies".', stackable: false },
{ id: 'refractor', name: 'Refractor', type: 'Resistance', description: 'Commander takes 50% less damage from assassination items.', stackable: false },
{ id: 'infiltrator', name: 'Infiltrator', type: 'Subversion', description: 'Converting an enemy territory takes 1 less turn.', stackable: false }
],
tier4: [
{ id: 'mercenaryReinforcements', name: 'Mercenary Reinforcements', type: 'Instant', description: 'Instantly gain 30 Troops to your reserve pool.', stackable: false },
{ id: 'buriedTreasure', name: 'Buried Treasure', type: 'Instant', description: 'Instantly gain 40 Bottle Caps.', stackable: false },
{ id: 'preWarRelic', name: 'Pre-War Relic', type: 'Instant', description: 'Instantly spawns 1 Seeded Relic into your inventory.', stackable: false },
{ id: 'encryptedData', name: 'Encrypted Data', type: 'Instant', description: 'Instantly gain +1 Nuclear Launch Code.', stackable: false },
{ id: 'wastelandMedic', name: 'Wasteland Medic', type: 'Instant', description: 'Instantly restore Commander to Max HP and gain 1 Stimpak.', stackable: false },
{ id: 'mysteriousBroadcast', name: 'Mysterious Broadcast', type: 'Instant', description: 'Lifts Fog of War across the map for 3 turns.', stackable: false },
{ id: 'massEvacuation', name: 'Mass Evacuation', type: 'Instant', description: 'Teleport up to 20 troops from a territory to Reserve Pool.', stackable: false },
{ id: 'orbitalStrike', name: 'Orbital Strike', type: 'Instant', description: 'Target any enemy territory and wipe out 50% of garrison.', stackable: false }
]
};
// --- CORE XP ENGINE ---
Gamestate.addXP = function (player, amount) {
if (!this.levelingEnabled || !player || player.isNeutral) return;
player.xp += amount;
// Carryover math: 100 XP threshold
while (player.xp >= 100) {
player.xp -= 100;
player.level++;
this.triggerLevelUp(player);
}
if (player.isPlayer) this.updateXPBar();
};
Gamestate.grantRelic = function (player, relic) {
if (!player.relics) player.relics = [];
let newRelic = {...relic};
player.relics.push(newRelic);
relic.found = true; // Mark as "Found" globally
// --- FIX: Auto-Equip X-01 Power Armor ---
if (newRelic.id === 'x01armor') {
this.equipRelic(newRelic, player);
} else {
if (player.isPlayer) {
this.showToast(`RELIC RECOVERED: ${relic.name}`, "var(--pip-color)");
if (this.renderInventory) this.renderInventory();
} else {
let flavors = [
`[ INTEL ] Reports indicate ${player.name} has secured a Pre-War artifact.`,
`[ INTEL ] Scavengers working for ${player.name} unearthed a rare Wasteland Relic.`,
`[ INTEL ] Encrypted chatter suggests ${player.name} added a powerful artifact to their arsenal.`,
`[ INTEL ] Recon patrols spotted ${player.name}'s forces transporting a sealed Vault-Tec crate.`
];
this.logAction(flavors[Math.floor(Math.random() * flavors.length)]);
}
}
};
Gamestate.activateRelic = function (relic) {
// Close the inventory modal first
document.getElementById('inventory-modal').style.display = 'none';
if (relic.type === 'Instant') {
this.applyRelicEffect(relic);
} else if (relic.type === 'Equip') {
this.equipRelic(relic);
} else if (relic.type === 'Targeted') {
this.enterRelicTargeting(relic);
}
};
Gamestate.enterRelicTargeting = function (relic) {
this.pendingRelic = relic;
this.targetingMode = 'relic';
this.showToast(`TARGETING: Select territory for ${relic.name}`, "var(--pip-color)");
// Change cursor to crosshair
document.body.style.cursor = 'crosshair';
this.updateInfo();
};
// --- NEW: DISTANCE CALCULATOR FOR RELICS ---
Gamestate.getDistanceToEmpire = function(targetName, user = this.player) {
if (user.areas.includes(targetName)) return 0;
let queue = [...user.areas];
let visited = new Set(queue);
let distance = 0;
while (queue.length > 0) {
let nextQueue = [];
distance++;
for (let node of queue) {
let country = this.countries.find(c => c.name === node);
if (!country) continue;
for (let neighbor of country.neighbours) {
if (neighbor === targetName) return distance;
if (!visited.has(neighbor)) {
visited.add(neighbor);
nextQueue.push(neighbor);
}
}
}
queue = nextQueue;
}
return 999; // Unreachable
};
// --- FIX: Pass 'user' so AI gets its own rewards! ---
Gamestate.applyRelicEffect = async function (relic, target = null, user = this.player) {
let success = false;
switch (relic.id) {
case 'jet':
user.extraTurn = true;
if (user.isPlayer) await this.logAction("[ CHEMICALS ] Jet consumed. Reflexes heightened. Extra turn granted.", true);
else await this.logAction(`[ INTEL ] ${user.name} consumed Jet! They are moving with impossible speed!`, true);
success = true;
break;
case 'stealthboy':
user.stealthActive = 2; // Duration in turns
if (user.isPlayer) await this.logAction("[ STEALTH ] Stealth Boy activated. You are invisible to enemy radar for 2 turns.", true);
else await this.logAction(`[ INTEL ] ${user.name} activated a Stealth Boy. We've lost them on radar!`, true);
success = true;
break;
case 'lunchbox':
let troops = 10; let caps = 20;
user.reserve += troops;
if (this.wastelandEconomyActive) user.caps += caps;
if (user.isPlayer) await this.logAction(`[ LUNCHBOX ] You found ${troops} troops and ${caps} Caps! Wowie!`, true);
else await this.logAction(`[ INTEL ] ${user.name} opened a Vault-Tec Lunchbox!`, true);
success = true;
break;
case 'fatman':
if (target.owner === user.name) {
if (user.isPlayer) this.showToast("Cannot target own territory!", "red");
return;
}
if (this.getDistanceToEmpire(target.name) > 3) {
this.showToast("Target out of range! Must be within 3 territories.", "red");
return;
}
// --- NEW: VISUAL FLASH ---
let fatmanEl = document.getElementById(target.name);
if (fatmanEl) {
fatmanEl.classList.add('flash');
setTimeout(() => fatmanEl.classList.remove('flash'), 1200);
}
const losses = Math.floor(target.army * 0.6);
target.army -= losses;
const targetPlayer = this.players.find(p => p.name === target.owner);
if (targetPlayer) targetPlayer.army -= losses;
await this.logAction(`[ NUCLEAR ] Fat Man detonated at ${formatTerritoryName(target.name)}. ${losses} enemy troops vaporized.`, true);
success = true;
break;
case 'geck':
let isStormed = this.radstorm && this.radstorm.state !== 'none' && this.radstorm.areas.includes(target.name);
if (target.radDecay > 0 || isStormed) {
// --- NEW: VISUAL FLASH ---
let geckEl = document.getElementById(target.name);
if (geckEl) {
geckEl.classList.add('radstorm-active');
setTimeout(() => geckEl.classList.remove('radstorm-active'), 1200);
}
target.isCrater = false;
target.radDecay = 0; // Cleanse radiation!
// Cleanse Radstorm
if (isStormed) {
this.radstorm.areas = this.radstorm.areas.filter(a => a !== target.name);
if (geckEl) geckEl.classList.remove('radstorm-warning', 'radstorm-active');
}
target.army += 15; this.player.army += 15;
target.owner = this.player.name;
target.color = this.player.color;
await this.logAction(`[ TERRAFORM ] G.E.C.K. deployed. ${formatTerritoryName(target.name)} has been restored to lush wasteland.`, true);
success = true;
} else {
this.showToast("Target must be a Crater or Radstorm!", "red");
return;
}
break;
case 'cryolator':
if (target.owner === this.player.name) {
this.showToast("Cannot target own territory!", "red"); return;
}
if (this.getDistanceToEmpire(target.name) > 3) {
this.showToast("Target out of range! Must be within 3 territories.", "red");
return;
}
target.isFrozen = 1; // FIX: Freeze for exactly 1 turn as intended
await this.logAction(`[ CRYOGENIC ] ${formatTerritoryName(target.name)} has been frozen solid. All actions blocked.`, true);
success = true;
break;
case 'superstimpak':
if (this.commandersEnabled && this.player.commander) {
// Calculate max HP including Life Giver and X-01 Armor
let maxHP = 100 + (this.levelingEnabled && this.player.activeBuffs && this.player.activeBuffs.lifeGiver ? this.player.activeBuffs.lifeGiver * 25 : 0);
if (this.player.relics && this.player.relics.some(r => r.id === 'x01armor' && r.isEquipped)) maxHP += 50;
this.player.commander.hp = maxHP;
await this.logAction(`[ MEDICAL ] Super Stimpak administered! Commander fully healed to ${maxHP} HP.`, true);
success = true;
} else {
this.showToast("You must have an active Commander to use this.", "red");
}
break;
case 'capmine':
if (target.owner !== this.player.name) {
this.showToast("Can only mine friendly territory!", "red"); return;
}
target.hasMine = true;
await this.logAction(`[ DEFENSE ] Bottlecap Mine planted at ${formatTerritoryName(target.name)}.`, true);
success = true;
break;
case 'radaway':
this.player.radImmunity = 3;
await this.logAction("[ MEDICAL ] RadAway consumed. You are immune to Radstorms for 3 turns.", true);
success = true;
break;
case 'shroudcard':
if (target.owner === this.player.name) {
this.showToast("Cannot target own territory!", "red"); return;
}
target.isBlockaded = 3;
await this.logAction(`[ BLOCKADE ] Silver Shroud Card left at ${formatTerritoryName(target.name)}. Territory is blockaded.`, true);
success = true;
break;
case 'survivalguide':
// Search map for any active Vaults/Radio Signals and resolve them instantly
const encounters = this.countries.filter(c => c.isExploring || c.encounterType);
if (encounters.length > 0) {
for (let c of encounters) await this.resolveExplorationOutcome(c);
await this.logAction("[ KNOWLEDGE ] Survival Guide used. All wasteland expeditions completed successfully.", true);
success = true;
} else {
this.showToast("No active expeditions to complete!", "red"); return;
}
break;
}
if (success && relic.consumed) {
this.player.relics = this.player.relics.filter(r => r.id !== relic.id);
relic.found = false; // Put it back in the pool for others to find
this.renderInventory();
}
this.updateInfo();
};
Gamestate.equipRelic = function (relic, targetPlayer = this.player) {
if (!targetPlayer.activeBuffs) targetPlayer.activeBuffs = {};
if (relic.id === 'x01armor') {
targetPlayer.activeBuffs.x01armor = true;
relic.isEquipped = true;
if (targetPlayer.isPlayer) {
this.showToast("X-01 POWER ARMOR EQUIPPED", "var(--pip-color)");
this.logAction("[ EQUIPMENT ] Commander has donned X-01 Power Armor. Armor and Defense boosted.", true);
if (this.renderInventory) this.renderInventory();
} else {
this.logAction(`[ INTEL ] ${targetPlayer.name} has equipped the X-01 Power Armor!`);
}
}
};
Gamestate.aiRelicCheck = async function (aiPlayer) {
if (!aiPlayer.relics || aiPlayer.relics.length === 0) return;
for (let i = aiPlayer.relics.length - 1; i >= 0; i--) {
let relic = aiPlayer.relics[i];
let used = false;
// --- FIX: Pass aiPlayer as the 3rd parameter to all applyRelicEffect calls! ---
// 1. INSTANT ITEMS
if (relic.id === 'jet' || relic.id === 'lunchbox' || relic.id === 'x01armor' || relic.id === 'stealthboy') {
await this.applyRelicEffect(relic, null, aiPlayer);
used = true;
}
// 2. HEALING ITEMS
else if (relic.id === 'superstimpak') {
if (this.commandersEnabled && aiPlayer.commander && aiPlayer.commander.hp <= 50) {
await this.applyRelicEffect(relic, null, aiPlayer);
used = true;
}
}
// 3. HAZARD PROTECTION
else if (relic.id === 'radaway') {
if (this.hazardsEnabled && this.radstorm && this.radstorm.state !== 'none') {
await this.applyRelicEffect(relic, null, aiPlayer);
used = true;
}
}
// 4. EXPEDITION COMPLETION
else if (relic.id === 'survivalguide') {
let exploring = this.countries.some(c => c.owner === aiPlayer.name && c.isExploring);
if (exploring) {
await this.applyRelicEffect(relic, null, aiPlayer);
used = true;
}
}
// 5. OFFENSIVE TARGETING (Nukes, Freezes, Blockades)
else if (relic.id === 'fatman' || relic.id === 'cryolator' || relic.id === 'shroudcard') {
let target = this.getStrongestEnemyBorder(aiPlayer);
if (target && this.getDistanceToEmpire(target.name, aiPlayer) <= 3) {
await this.applyRelicEffect(relic, target, aiPlayer);
used = true;
}
}
// 6. DEFENSIVE TARGETING (Bottlecap Mines)
else if (relic.id === 'capmine') {
let borders = this.countries.filter(c => c.owner === aiPlayer.name && !c.hasMine && c.neighbours.some(n => {
let nc = this.countries.find(x => x.name === n);
return nc && nc.owner !== aiPlayer.name && !this.areAllies(aiPlayer.name, nc.owner);
}));
if (borders.length > 0) {
borders.sort((a, b) => a.army - b.army); // Protect the weakest border
await this.applyRelicEffect(relic, borders[0], aiPlayer);
used = true;
}
}
// 7. TERRAFORMING (G.E.C.K.)
else if (relic.id === 'geck') {
// --- FIX: AI now correctly identifies the central Radstorm array ---
let options = this.countries.filter(c => (c.owner === aiPlayer.name || c.neighbours.some(n => {
let nc = this.countries.find(x => x.name === n);
return nc && nc.owner === aiPlayer.name;
})) && (c.radDecay > 0 || (this.radstorm && this.radstorm.state !== 'none' && this.radstorm.areas.includes(c.name))));
if (options.length > 0) {
await this.applyRelicEffect(relic, options[0], aiPlayer);
used = true;
}
}
if (used) aiPlayer.relics.splice(i, 1);
}
};
Gamestate.getStrongestEnemyBorder = function (aiPlayer) {
let bestTarget = null;
let maxTroops = -1;
aiPlayer.areas.forEach(areaName => {
const country = this.countries.find(c => c.name === areaName);
country.neighbours.forEach(neighborName => {
const neighbor = this.countries.find(c => c.name === neighborName);
// If it's an enemy and has a lot of troops
if (neighbor.owner !== aiPlayer.name && !this.areAllies(aiPlayer.name, neighbor.owner)) {
if (neighbor.army > maxTroops) {
maxTroops = neighbor.army;
bestTarget = neighbor;
}
}
});
});
return bestTarget;
};
Gamestate.aiLevelUp = function (player) {
if (!this.levelingEnabled || !player || player.isPlayer) return;
// Determine tier pool based on AI level
let pool = [];
if (player.level >= 13) pool = [...this.PerkDatabase.tier1, ...this.PerkDatabase.tier2, ...this.PerkDatabase.tier3, ...this.PerkDatabase.tier4];
else if (player.level >= 9) pool = [...this.PerkDatabase.tier1, ...this.PerkDatabase.tier2, ...this.PerkDatabase.tier3];
else if (player.level >= 5) pool = [...this.PerkDatabase.tier1, ...this.PerkDatabase.tier2];
else pool = [...this.PerkDatabase.tier1];
// AI picks 1 random perk from the available tiers
const perk = pool[Math.floor(Math.random() * pool.length)];
// Apply the perk to the AI's buffs
if (perk.type === 'Instant') {
this.applyInstantPerk(player, perk);
} else {
if (!player.activeBuffs[perk.id]) player.activeBuffs[perk.id] = 0;
player.activeBuffs[perk.id]++;
}
// Report the event in the Vault-Tec Action Log
let flavors = [
`[ INTEL ] Reports indicate ${player.name} has reached Level ${player.level} and acquired the '${perk.name}' perk.`,
`[ INTEL ] ${player.name}'s forces are growing more elite. They achieved Level ${player.level} ('${perk.name}').`,
`[ INTEL ] Field combat experience has pushed ${player.name} to Level ${player.level}. New doctrine: '${perk.name}'.`,
`[ INTEL ] Vault-Tec profiling confirms ${player.name} is now Level ${player.level}, utilizing '${perk.name}' tactics.`
];
this.logAction(flavors[Math.floor(Math.random() * flavors.length)]);
};
Gamestate.updateXPBar = function() {
const bar = document.getElementById('xp-bar-container');
const label = document.getElementById('level-label');
if (!bar || !label) return;
if (this.levelingEnabled || this.wastelandEconomyActive) {
bar.style.display = 'block';
label.style.display = 'block';
const p = this.player;
if (!p) return;
const xpFill = document.getElementById('xp-fill');
const lvlText = document.getElementById('player-level');
if (xpFill) xpFill.style.width = `${p.xp}%`;
if (lvlText) lvlText.textContent = p.level;
} else {
bar.style.display = 'none';
label.style.display = 'none';
}
};
Gamestate.applyInstantPerk = async function (player, perk) {
if (!player.isPlayer) {
// AI Instant Perk Logic (Simpler version)
if (perk.id === 'buriedTreasure') player.caps += 40;
if (perk.id === 'mercenaryReinforcements') player.reserve += 30;
return;
}
switch (perk.id) {
case 'mercenaryReinforcements':
player.reserve += 30;
this.showToast("REINFORCEMENTS ARRIVED: +30 Troops!", "var(--pip-color)");
break;
case 'buriedTreasure':
player.caps += 40;
this.showToast("TREASURE FOUND: +40 Caps!", "var(--pip-color)");
break;
case 'encryptedData':
player.codes = (player.codes || 0) + 1;
this.showToast("DATA DECRYPTED: +1 Launch Code!", "var(--pip-color)");
break;
case 'wastelandMedic':
const maxHP = 100 + (player.activeBuffs.lifeGiver || 0) * 25;
player.commander.hp = maxHP;
player.commander.stimpaks = (player.commander.stimpaks || 0) + 1;
this.showToast("COMMANDER RESTORED!", "var(--pip-color)");
break;
case 'mysteriousBroadcast':
this.showToast("SIGNAL DETECTED: Fog of War lifted!", "var(--pip-color)");
this.fogOfWarActive = false;
setTimeout(() => { this.fogOfWarActive = document.getElementById('opt-fog-of-war').checked; this.updateInfo(); }, 30000); // 30 seconds of clarity
break;
case 'orbitalStrike':
this.showToast("SATELLITE ONLINE: Select an enemy to strike!", "red");
this.stage = "Frenzy Targeting"; // Re-using targeting logic
this.activeNuke = { type: 'Orbital', launcher: player.name };
break;
}
this.updateInfo();
};
Gamestate.triggerLevelUp = function (player) {
if (!this.levelingEnabled) return;
if (player.isPlayer) {
this.showLevelUpModal(player);
} else {
this.aiLevelUp(player);
}
};
Gamestate.showLevelUpModal = async function (player) {
this.modalIsOpen = true;
// 1. Gather all eligible perks based on player level
let allPerks = [];
if (player.level >= 13) allPerks = [...this.PerkDatabase.tier1, ...this.PerkDatabase.tier2, ...this.PerkDatabase.tier3, ...this.PerkDatabase.tier4];
else if (player.level >= 9) allPerks = [...this.PerkDatabase.tier1, ...this.PerkDatabase.tier2, ...this.PerkDatabase.tier3];
else if (player.level >= 5) allPerks = [...this.PerkDatabase.tier1, ...this.PerkDatabase.tier2];
else allPerks = [...this.PerkDatabase.tier1];
// --- [ NEW: SMART FILTERING ] ---
// Filter out perks that are useless in the current game mode
const hasHorrors = this.players.some(p => p.isNeutral && p.alive);
const fogOfWar = document.getElementById('opt-fog-of-war') && document.getElementById('opt-fog-of-war').checked;
allPerks = allPerks.filter(perk => {
// Filter out Ghoul Slayer if there are no Horrors on the map
if (perk.id === 'ghoulSlayer' && !hasHorrors) return false;
// Filter out hazard protection if Radstorms are off
if (perk.id === 'adamantiumSkeleton' && !this.hazardsEnabled) return false;
// Filter out Scavenger if Encounters are off
if (perk.id === 'scavenger' && !this.encountersEnabled) return false;
// Filter out Commander-only perks if Commanders are disabled
const commanderPerks = ['lifeGiver', 'solarPowered', 'movingTarget', 'medic', 'refractor', 'infiltrator', 'ninja'];
if (commanderPerks.includes(perk.id) && !this.commandersEnabled) return false;
// Filter out Ninja if Fog of War is off (since it hides movement)
if (perk.id === 'ninja' && !fogOfWar) return false;
// --- NEW: FILTER OWNED NON-STACKABLE PERKS ---
if (!perk.stackable && player.activeBuffs && player.activeBuffs[perk.id] > 0) return false;
return true;
});
// --- [ END FILTERING ] ---
// 2. Randomize and pick 3 unique options
let choices = allPerks.sort(() => 0.5 - Math.random()).slice(0, 3);
const title = `LEVEL UP: ${player.level}`;
let message = `You have reached a new level of wasteland expertise! Select a permanent perk to enhance your faction's capabilities.`;
let modalChoices = choices.map(perk => {
// --- NEW: SHOW RANK FOR OWNED STACKABLE PERKS ---
let currentStacks = (player.activeBuffs && player.activeBuffs[perk.id]) ? player.activeBuffs[perk.id] : 0;
let stackText = currentStacks > 0 ? ` <span style="color:#ffcc00;">(Rank ${currentStacks + 1})</span>` : "";
return {
id: perk.id,
text: `<div style="text-align:left;"><strong style="color:inherit;">[ ${perk.name.toUpperCase()} ]${stackText}</strong><br><span style="font-size:13px; opacity:0.8; color:inherit;">${perk.description}</span></div>`
};
});
// 3. Display the modal and wait for user selection
await this.showEncounterModal(title, message, modalChoices, (perkId) => {
const selected = choices.find(c => c.id === perkId);
// Apply perk (Instant vs Permanent)
if (selected.type === 'Instant') {
this.applyInstantPerk(player, selected);
} else {
if (!player.activeBuffs[selected.id]) player.activeBuffs[selected.id] = 0;
player.activeBuffs[selected.id]++;
}
this.logAction(`[ LEVEL UP ] You acquired the '${selected.name}' perk!`, true);
return null;
});
this.modalIsOpen = false;
this.updateInfo();
};
Gamestate.applyInstantPerk = function(player, perk) {
if (!player) return;
switch(perk.id) {
case 'mercenaryReinforcements':
player.reserve += 30;
player.army += 30;
if (player.isPlayer && this.showToast) this.showToast("REINFORCEMENTS ARRIVED: +30 Troops!", "var(--pip-color)");
break;
case 'buriedTreasure':
player.caps += 40;
if (player.isPlayer && this.showToast) this.showToast("TREASURE FOUND: +40 Caps!", "var(--pip-color)");
break;
case 'encryptedData':
player.codes = (player.codes || 0) + 1;
if (player.isPlayer && this.showToast) this.showToast("DATA DECRYPTED: +1 Launch Code!", "var(--pip-color)");
break;
case 'wastelandMedic':
if (this.commandersEnabled && player.commander) {
let maxHP = 100 + (this.levelingEnabled && player.activeBuffs && player.activeBuffs.lifeGiver ? player.activeBuffs.lifeGiver * 25 : 0);
if (player.relics && player.relics.some(r => r.id === 'x01armor' && r.isEquipped)) maxHP += 50;
player.commander.hp = maxHP;
player.commander.stimpaks = Math.min(3, (player.commander.stimpaks || 0) + 1);
if (player.isPlayer && this.showToast) this.showToast("COMMANDER RESTORED!", "var(--pip-color)");
}
break;
case 'preWarRelic':
if (this.bobbleheads) {
let unfound = this.bobbleheads.filter(b => !b.found);
if (unfound.length > 0) {
let found = unfound[Math.floor(Math.random() * unfound.length)];
found.found = true; found.owner = player.name;
}
}
break;
case 'mysteriousBroadcast':
if (player.isPlayer) {
this.showToast("SIGNAL DETECTED: Fog of War lifted!", "var(--pip-color)");
this.devFogLifted = true; // Temporary global reveal
setTimeout(() => { this.devFogLifted = false; this.updateInfo(); }, 30000); // Ends after 30 seconds
}
this.logAction("[ BROADCAST ] Satellite link established. Map revealed temporarily.", true);
break;
case 'massEvacuation':
player.reserve += 20;
player.army += 20;
this.logAction(`[ EVACUATION ] 20 troops were extracted to ${player.name}'s reserve pool.`, true);
break;
case 'orbitalStrike':
let targets = this.countries.filter(c => c.owner !== player.name && c.army > 1 && !c.isCrater);
targets.sort((a, b) => b.army - a.army);
if (targets.length > 0) {
let victim = targets[0];
let losses = Math.floor(victim.army * 0.5);
victim.army -= losses;
let vOwner = this.players.find(p => p.name === victim.owner);
if (vOwner) vOwner.army -= losses;
this.logAction(`[ ORBITAL STRIKE ] High-yield kinetic impact detected in ${formatTerritoryName(victim.name)}! -${losses} casualties.`, true);
}
break;
}
this.updateInfo();
if (this.drawMapText) this.drawMapText();
};
Gamestate.start = async function () {
// --- NEW: REQUEST FULL SCREEN ON START (MOBILE ONLY) ---
if (window.innerWidth <= 950) {
let elem = document.documentElement;
if (elem.requestFullscreen) { elem.requestFullscreen().catch(e => console.log(e)); }
else if (elem.webkitRequestFullscreen) { elem.webkitRequestFullscreen().catch(e => console.log(e)); }
}
// --- APPLY VISUAL THEME AT GAME START ---
Gamestate.applyUITheme();
// --- NEW: SET INITIAL RADIO TRACK BASED ON THEME ---
const themeDropdown = document.getElementById('chosen-theme');
const selectedTheme = themeDropdown ? themeDropdown.value : "fo3";
if (selectedTheme === 'fnv') {
currentTrackIndex = 4; // Fallout New Vegas Theme
} else if (selectedTheme === 'fo4') {
currentTrackIndex = 8; // Fallout 4 Theme
} else {
currentTrackIndex = 0; // Fallout 3 Theme
}
// --- Read Game Options from UI First ---
this.perksEnabled = document.getElementById('opt-perks')?.checked;
this.nukesEnabled = document.getElementById('opt-nukes')?.checked;
this.commandersEnabled = document.getElementById('opt-commander')?.checked;
this.hazardsEnabled = document.getElementById('opt-radstorms')?.checked;
this.encountersEnabled = document.getElementById('opt-encounters')?.checked;
// If any major gameplay modifier is active, enable Wasteland Economy.
this.wastelandEconomyActive = this.perksEnabled || this.nukesEnabled || this.commandersEnabled ||
this.hazardsEnabled || this.encountersEnabled;
// --- NEW: LEVELING SYSTEM GATE ---
// The Leveling System runs if anything other than classic mode is enabled.
this.levelingEnabled = this.wastelandEconomyActive;
// --- NEW: CLASSIC MODE UI & LOOT OVERRIDES ---
// Save a master copy of the bobbleheads so they aren't permanently deleted upon reboot
if (!this.masterBobbleheads) {
this.masterBobbleheads = this.bobbleheads;
}
// Nullify the bobbleheads array if we are in classic mode so they stop dropping as loot
this.bobbleheads = this.wastelandEconomyActive ? this.masterBobbleheads : null;
if (combatLog) combatLog.innerHTML = "";
this.logQueue = [];
this.isLogging = false;
// --- Core Game State Initialization ---
this.diplomacy = {
truces: [],
betrayalTax: {},
grudges: {},
spiteTarget: null,
spiteTurns: 0,
reputation: {}
};
if (this.bobbleheads) {
this.bobbleheads.forEach(b => {
b.found = false;
b.owner = "none"; // NEW: Resets ownership to nobody!
b.cooldown = 0;
b.active = false;
});
}
let navInv = document.getElementById('nav-inv');
if (navInv) {
navInv.classList.remove('inv-pulse');
if (!this.wastelandEconomyActive) {
// Classic Mode: Disable the tab and let default CSS match DATA
navInv.classList.remove('interactive');
navInv.style.opacity = ""; // Clears the 0.3 so it perfectly matches DATA
navInv.style.pointerEvents = "none";
navInv.title = "Inventory is unavailable in Classic Mode";
} else {
// Custom Mode: Enable the inventory tab
navInv.classList.add('interactive');
navInv.style.opacity = "";
navInv.style.pointerEvents = "";
navInv.title = "Open Inventory";
}
}
if (end) end.style.pointerEvents = "auto";
if (map) map.style.pointerEvents = "auto";
if (modal) modal.style.display = "none";
if (playerPanel) playerPanel.style.display = "flex";
if (infoPanel) infoPanel.style.display = "flex";
// --- Read Game Options from UI ---
this.perksEnabled = document.getElementById('opt-perks')?.checked;
this.nukesEnabled = document.getElementById('opt-nukes')?.checked;
this.commandersEnabled = document.getElementById('opt-commander')?.checked;
// --- FIX: Read the new Dropdown value instead of a checkbox ---
this.flatTrade = document.getElementById('opt-flat-trade')?.value === 'true';
this.hazardsEnabled = document.getElementById('opt-radstorms')?.checked;
// --- THIS IS THE NEW LINE FOR ENCOUNTERS ---
this.encountersEnabled = document.getElementById('opt-encounters')?.checked;
// --- NEW: Read Initial Placement Mode ---
this.placementMode = document.getElementById('opt-placement')?.value || 'auto';
this.radstorm = {
state: 'none',
timer: 0,
cooldown: Math.floor(Math.random() * 11) + 5,
areas: []
};
// Initialize map
this.countries = JSON.parse(JSON.stringify(countries));
this.countries.forEach(c => {
let el = document.getElementById(c.name);
if (el) {
el.classList.remove('radstorm-warning', 'radstorm-active', 'allied-territory', 'crater', 'glowing-sea');
c.isCrater = false;
c.radDecay = 0;
c.isSilo = false;
c.siloTurns = 0;
}
});
// --- PLAYER SETUP LOGIC (with Perks checkbox) ---
this.players = [];
if (this.perksEnabled) {
// --- ADVANCED SETUP: Faction Perks Enabled ---
const themeDropdown = document.getElementById('chosen-theme');
const selectedTheme = themeDropdown ? themeDropdown.value : "fo3";
const factionThemes = {
"fo3": ["Brotherhood of Steel", "The Enclave", "Vault 87 Mutants", "Wasteland Raiders", "BOS Outcasts", "Reilly's Rangers"],
"fnv": ["New California Republic", "Caesar's Legion", "New Vegas Securitrons", "Mojave Brotherhood", "Great Khans", "The Fiends"],
"fo4": ["The Minutemen", "The Institute", "The Railroad", "The Gunners", "Nuka-World Raiders", "Maxson's Brotherhood"]
};
const selectedFactionNames = [...factionThemes[selectedTheme]];
const playerCountryInput = document.getElementById('chosen-country-input');
const playerCountryChoice = sanitizeInput(playerCountryInput.value) || selectedFactionNames[0];
const playerLeaderChoice = sanitizeInput(chosenLeader.value) || "Player";
const playerColorChoice = chosenColor.value || "#3a8dcb";
const isCustomFaction = !FACTIONS[playerCountryChoice];
const playerFactionData = isCustomFaction ? CUSTOM_FACTION : FACTIONS[playerCountryChoice];
this.players.push({
name: playerLeaderChoice,
country: playerCountryChoice,
color: playerColorChoice,
perk: playerFactionData.perk,
army: 0,
reserve: 20,
areas: [],
bonus: 2,
alive: true,
cards: [],
conqueredThisTurn: false,
isNeutral: false,
isPlayer: true,
caps: 20,
codes: 0, // ADD THIS LINE
nukeCodeCooldown: 0, // ADD THIS LINE
dogmeatStatus: null // "healthy", "injured", or null
});
const playerFactionIndex = selectedFactionNames.indexOf(playerCountryChoice);
if (playerFactionIndex > -1) {
selectedFactionNames.splice(playerFactionIndex, 1);
} else {
selectedFactionNames.pop();
}
selectedFactionNames.forEach(factionName => {
let factionData = FACTIONS[factionName];
let aiColor = (factionData.color === playerColorChoice) ? "#CCCCCC" : factionData.color;
this.players.push({
name: factionData.leader,
country: factionName,
color: aiColor,
perk: factionData.perk,
army: 0,
reserve: 20,
areas: [],
bonus: 2,
alive: true,
cards: [],
conqueredThisTurn: false,
isNeutral: false,
caps: 20
});
});
} else {
// --- CLASSIC SETUP: Faction Perks Disabled (Corrected) ---
const themeDropdown = document.getElementById('chosen-theme');
const selectedTheme = themeDropdown ? themeDropdown.value : "fo3";
const playerLeaderInput = document.getElementById('chosen-leader');
const playerCountryInput = document.getElementById('chosen-country-input');
const playerColorInput = document.getElementById('chosen-color');
const playerLeaderChoice = sanitizeInput(playerLeaderInput.value) || "Player 1";
const playerCountryChoice = sanitizeInput(playerCountryInput.value) || "Wastelanders";
const playerColorChoice = playerColorInput.value || "#0088CC";
this.players.push({
name: playerLeaderChoice,
country: playerCountryChoice,
color: playerColorChoice,
perk: {
id: "none"
},
army: 0,
reserve: 20,
areas: [],
bonus: 2,
alive: true,
cards: [],
conqueredThisTurn: false,
isNeutral: false,
isPlayer: true,
caps: 20,
codes: 0, // ADD THIS LINE
nukeCodeCooldown: 0, // ADD THIS LINE
dogmeatStatus: null // "healthy", "injured", or null
});
const factionThemes = {
"fo3": ["Brotherhood of Steel", "The Enclave", "Vault 87 Mutants", "Wasteland Raiders", "BOS Outcasts", "Reilly's Rangers"],
"fnv": ["New California Republic", "Caesar's Legion", "New Vegas Securitrons", "Mojave Brotherhood", "Great Khans", "The Fiends"],
"fo4": ["The Minutemen", "The Institute", "The Railroad", "The Gunners", "Nuka-World Raiders", "Maxson's Brotherhood"]
};
const selectedFactionNames = [...factionThemes[selectedTheme]];
const playerFactionIndex = selectedFactionNames.indexOf(playerCountryChoice);
if (playerFactionIndex > -1) {
selectedFactionNames.splice(playerFactionIndex, 1);
} else {
selectedFactionNames.pop();
}
selectedFactionNames.forEach(factionName => {
let factionData = FACTIONS[factionName];
let aiColor = (factionData.color === playerColorChoice) ? "#CCCCCC" : factionData.color;
this.players.push({
name: factionData.leader,
country: factionName,
color: aiColor,
perk: {
id: "none"
},
army: 0,
reserve: 20,
areas: [],
bonus: 2,
alive: true,
cards: [],
conqueredThisTurn: false,
isNeutral: false,
caps: 20
});
});
}
// Finalize player UI text
if (playerName) playerName.textContent = this.players.find(p => p.isPlayer).name;
if (playerCountry) playerCountry.textContent = this.players.find(p => p.isPlayer).country;
// Add neutral Horrors faction if needed
if (document.getElementById('opt-horrors')?.checked || this.nukesEnabled) {
this.players.push({
"name": "Wasteland Horrors",
"country": "Feral Ghouls & Deathclaws",
"color": "#333333",
perk: {
id: "none"
},
army: 0,
reserve: 0,
areas: [],
"bonus": 0,
"alive": true,
"cards": [],
"conqueredThisTurn": false,
"isNeutral": true,
caps: 20
});
}
// --- REPUTATION SETUP ---
this.players.forEach(p1 => {
// --- NEW: LEVELING SYSTEM DATA ---
p1.xp = 0;
p1.level = 1;
p1.activeBuffs = {};
// ---------------------------------
this.diplomacy.betrayalTax[p1.name] = 0;
this.diplomacy.grudges[p1.name] = [];
this.diplomacy.reputation[p1.name] = {};
this.players.forEach(p2 => {
this.diplomacy.reputation[p1.name][p2.name] = 0;
});
});
if (this.perksEnabled) {
setInitialReputations();
}
// --- NEW: ALLIANCE WARFARE TEAM SETUP ---
// Read the dropdown directly from your HTML!
const presetDropdown = document.getElementById('game-mode-preset');
this.isAllianceMode = (presetDropdown && presetDropdown.value === 'alliance');
let activeFactions = this.players.filter(p => !p.isNeutral);
if (this.isAllianceMode) {
// LORE-FRIENDLY PAIRINGS
const loreTeams = [
["Brotherhood of Steel", "Reilly's Rangers"],
["The Enclave", "BOS Outcasts"],
["Vault 87 Mutants", "Wasteland Raiders"],
["New California Republic", "New Vegas Securitrons"],
["Caesar's Legion", "Great Khans"],
["Mojave Brotherhood", "The Fiends"],
["The Minutemen", "The Railroad"],
["The Institute", "Brotherhood of Steel"], // FO4 High-Tech Juggernauts
["The Gunners", "Nuka-World Raiders"]
];
let teamCounter = 1;
// 1. Assign teams based on lore pairs
activeFactions.forEach(p1 => {
if (p1.team) return; // Skip if already assigned a team
// Find if p1 belongs to a lore pair
let pair = loreTeams.find(t => t.includes(p1.country));
if (pair) {
let allyName = pair[0] === p1.country ? pair[1] : pair[0];
let p2 = activeFactions.find(p => p.country === allyName);
// If both factions are in the game, pair them up!
if (p2 && !p2.team) {
p1.team = teamCounter;
p2.team = teamCounter;
teamCounter++;
}
}
});
// 2. Fallback: Pair up any leftovers (e.g. Custom Factions)
let unassigned = activeFactions.filter(p => !p.team);
for (let i = 0; i < unassigned.length; i += 2) {
unassigned[i].team = teamCounter;
if (unassigned[i+1]) unassigned[i+1].team = teamCounter;
teamCounter++;
}
} else {
// Free-For-All: Everyone gets a unique team ID
activeFactions.forEach((p, index) => p.team = index + 10);
}
// Neutral factions aren't on a team (Safe Assignment)
this.players.forEach(p => {
if (p.isNeutral) p.team = 99;
});
// --- END ALLIANCE SETUP ---
// --- Initialize Core Game Variables ---
this.aiTurn = false;
this.gameOver = false;
this.turn = 1;
this.globalCodes = 25; // FIX ISSUE #4: Initialize the pool of 25 global nuke codes
// --- NEW: DOGMEAT QUEST STATE ---
this.dogmeatQuest = { active: false, target: null, timer: 0, resolved: false };
// --- NEW: SCRUB LEFTOVER LOCKDOWNS FROM PREVIOUS GAME ---
this.countries.forEach(c => {
c.isLockedDown = false;
let mapEl = document.getElementById(c.name);
if (mapEl) mapEl.classList.remove('lockdown-territory');
});
// --- END OF CLEANUP ---
// --- NEW: INITIAL STAGE LOGIC ---
this.setupPlayerIndex = 0; // Tracks whose turn it is during initial setup
if (this.placementMode === 'manual') {
this.stage = "Initial Claim";
} else if (this.placementMode === 'semi') {
this.stage = "Initial Reinforce";
} else {
if (this.wastelandEconomyActive) {
this.stage = "Recruitment";
} else {
this.stage = "Fortify";
}
}
this.player = this.players.find(p => p.isPlayer);
// --- FULL MAP & UI POPULATION LOGIC (from your working code) ---
if (!this.wastelandEconomyActive) {
generateDeck();
tradeCount = 0;
this.players.forEach(p => { p.cards = []; });
}
this.players.forEach(p => { p.conqueredThisTurn = false; });
let cardCount = document.getElementById('card-count');
if (cardCount) cardCount.textContent = "0";
if (this.prevTarget) this.prevTarget.classList.remove('flash');
for (let j = 0; j < this.players.length; j++) {
if (infoName[j]) infoName[j].innerHTML = this.players[j].country;
if (infoLeader[j]) infoLeader[j].innerHTML = this.players[j].name;
if (infoName[j]) infoName[j].parentElement.classList.remove('defeated');
if (bar[j]) bar[j].style.background = this.players[j].color;
}
this.updateButtonText();
// if (turnInfoMessage) turnInfoMessage.textContent = "Click on your own areas to place reinforcements";
let horrors = this.players.find(p => p.isNeutral);
let siloAreas = [];
if (this.nukesEnabled && horrors) {
continents.forEach(cont => {
let randArea = cont.areas[Math.floor(Math.random() * cont.areas.length)];
let c = this.countries.find(x => x.name === randArea);
c.isSilo = true;
c.owner = "Wasteland Horrors";
c.color = "#333333";
c.army = 15;
siloAreas.push(c.name);
horrors.areas.push(c.name);
horrors.army += 15;
});
document.getElementById('nuke-ui-container').style.display = "block";
} else {
document.getElementById('nuke-ui-container').style.display = "none";
}
this.players.forEach(p => {
if (p !== horrors) {
p.army = 0;
p.areas = [];
p.reserve = 20;
}
});
let validAreasForPlayers = areas.filter(a => !siloAreas.includes(a.id));
let shuffledAreas = shuffle([...validAreasForPlayers]);
if (document.getElementById('opt-horrors')?.checked && horrors) {
let ghoulStartCount = 4;
for (let g = 0; g < ghoulStartCount; g++) {
let area = shuffledAreas.pop();
let country = this.countries.find(c => c.name === area.id);
if (country) {
country.owner = horrors.name;
country.color = horrors.color;
country.army = Math.floor(Math.random() * 3) + 3;
horrors.areas.push(country.name);
horrors.army += country.army;
}
}
}
let activePlayers = this.players.filter(p => !p.isNeutral);
// If Auto or Semi, randomly claim the territories
if (this.placementMode === 'auto' || this.placementMode === 'semi') {
shuffledAreas.forEach((area, i) => {
let player = activePlayers[i % activePlayers.length];
let country = this.countries.find(c => c.name === area.id);
if (country) {
country.owner = player.name;
country.color = player.color;
country.army = 1;
player.areas.push(country.name);
player.army++;
player.reserve--;
}
});
}
if (this.placementMode === 'auto') {
// If purely Auto, randomly deploy all remaining reserves
this.players.forEach(player => {
while (player.reserve > 0 && !player.isNeutral && player.areas.length > 0) {
let randomArea = player.areas[Math.floor(Math.random() * player.areas.length)];
let country = this.countries.find(c => c.name === randomArea);
if (country) {
country.army++;
player.army++;
player.reserve--;
}
}
});
} else if (this.placementMode === 'semi') {
// --- FIX: Recalculate Day 1 Reserves for Semi-Auto ---
// The player needs their starting bonus calculated now so they can place it!
this.players.forEach(player => {
if (!player.isNeutral) {
// If economy is off, use the unitBonus function. Otherwise, give a base starting pool.
if (!this.wastelandEconomyActive && typeof this.unitBonus === 'function') {
// Add the standard Day 1 territory bonus to whatever reserve is leftover
player.reserve += this.unitBonus(player, activePlayers.indexOf(player));
} else {
// In Economy mode, starting reserves are fixed, so just ensure they have a solid pool
player.reserve = Math.max(5, player.reserve);
}
}
});
}
if (this.commandersEnabled) {
this.players.forEach(p => {
if (p.alive && !p.isNeutral) {
let startLoc = null;
// Only auto-place the Commander if we are in Auto placement mode
if (this.placementMode === 'auto' && p.areas.length > 0) {
startLoc = p.areas[Math.floor(Math.random() * p.areas.length)];
}
p.commander = {
hp: 100,
ap: 2,
loc: startLoc,
stimpaks: 0,
siegeTurns: 0,
wasAttacked: false
};
}
});
document.getElementById('cmdr-ui-container').style.display = "block";
} else {
document.getElementById('cmdr-ui-container').style.display = "none";
}
this.countries.forEach(country => {
let areaOnMap = document.getElementById(country.name);
if (areaOnMap) areaOnMap.style.fill = country.color;
});
// --- FIX: Only grant Day 1 bonus here if in Auto mode! ---
if (!this.wastelandEconomyActive && this.placementMode === 'auto') {
this.player.reserve = this.unitBonus(this.player, 0);
this.player.army += this.player.reserve;
}
this.drawMapText();
this.updateInfo();
this.startIntelAnimation();
// --- CRITICAL: WAKE UP THE XP BAR ---
this.updateXPBar();
// Seed the Match Relics (Pick 6 of 12)
const shuffled = [...this.RelicDatabase].sort(() => 0.5 - Math.random());
this.activeRelicPool = shuffled.slice(0, 6);
console.log("Match Seeded with Relics:", this.activeRelicPool.map(r => r.name));
await this.logAction("> ROBCO INDUSTRIES (TM) Termlink Protocol active.", true);
// --- NEW: IN-LOG MISSION BRIEFING ---
await this.logAction("==================================================", true);
if (this.placementMode === 'manual') {
await this.logAction("[ TACTICAL PAUSE ] Awaiting manual territory acquisition...", true);
await this.logAction("--- DEPLOYMENT: CLAIM TERRITORIES ---", true);
if (this.processInitialPlacement) this.processInitialPlacement();
return;
} else if (this.placementMode === 'semi') {
await this.logAction("[ TACTICAL PAUSE ] Awaiting manual garrison fortification...", true);
await this.logAction("--- DEPLOYMENT: FORTIFY GARRISONS ---", true);
if (this.processInitialPlacement) this.processInitialPlacement();
return;
}
await this.printMissionBriefing();
};
Gamestate.printMissionBriefing = async function() {
// 1. DATE & FACTION
const date = new Date();
const months = ["JAN", "FEB", "MAR", "APR", "MAY", "JUN", "JUL", "AUG", "SEP", "OCT", "NOV", "DEC"];
await this.logAction(`[ DATE ] ${months[date.getMonth()]} ${date.getDate()}, 2287`, true);
await this.logAction(`[ FACTION ] ${this.player.country.toUpperCase()}`, true);
// 2. MISSION TYPE & PRESET INTRO
const activePresetValue = document.getElementById('game-mode-preset') ? document.getElementById('game-mode-preset').value : 'custom';
if (activePresetValue === 'custom') {
await this.logAction(`[ DIRECTIVE ] NON-STANDARD DEPLOYMENT`, true);
await this.logAction(`Command has authorized a localized sweep. Standard protocols are suspended. Review modified operational parameters below.`, true);
} else if (activePresetValue === 'survival') {
await this.logAction(`[ DIRECTIVE ] WASTELAND SURVIVAL`, true);
await this.logAction(`All expansion objectives are suspended. Survival is now your only directive. The environment is fully hostile.`, true);
} else if (activePresetValue === 'alliance') {
await this.logAction(`[ DIRECTIVE ] COALITION WARFARE`, true);
await this.logAction(`Work in tandem with your allied partners to secure the region. Friendly fire is strictly disabled.`, true);
} else {
await this.logAction(`[ DIRECTIVE ] TOTAL REGIONAL SWEEP`, true);
await this.logAction(`Command has authorized a full-scale regional sweep. Eradicate all rival presence and secure dominance. Leave nothing but ash.`, true);
}
// 3. MECHANIC EXCERPTS
if (this.wastelandEconomyActive || this.commandersEnabled || this.encountersEnabled || this.nukesEnabled || this.hazardsEnabled || (document.getElementById('opt-fog-of-war') && document.getElementById('opt-fog-of-war').checked)) {
await this.logAction(`[ OPERATIONAL PARAMETERS ]`, true);
}
if (this.wastelandEconomyActive) {
const econ = [
"Economy is critical: all units are acquired through caps. Manage resources accordingly.",
"Standard supply chains are severed. Reinforcements must be bought with scavenged Bottle Caps.",
"Treasury reserves dictate reinforcement capability. Secure territory to fund mercenary contracts.",
"Bottle Caps are the lifeblood of this operation. Tax your territories to maintain a standing army.",
"Economic dominance is required. Capital is your only means of securing fresh troops."
];
await this.logAction(`- ${econ[Math.floor(Math.random() * econ.length)]}`, true);
}
if (this.commandersEnabled) {
const cmdr = [
"Victory will not be determined by force size, but by leadership. Your Commander is mission-critical—loss of this asset results in immediate failure.",
"Your Commander is deployed on the field. Regicide protocols are active: if they fall, your faction scatters.",
"Protect your Overseer at all costs. Decapitation strikes by rival factions will result in total operational collapse.",
"A high-value asset leads your forces directly. Utilize their abilities, but ensure their survival to avoid sudden defeat.",
"Command hierarchy is fragile. The death of your Commander will trigger an immediate and irreversible surrender."
];
await this.logAction(`- ${cmdr[Math.floor(Math.random() * cmdr.length)]}`, true);
}
const fogEnabled = document.getElementById('opt-fog-of-war') && document.getElementById('opt-fog-of-war').checked;
if (fogEnabled) {
const fog = [
"Intel is compromised. Fog of war is in effect—no visibility on enemy positions or movement.",
"Satellite networks are down. You are operating in the dark. Expect ambushes from unseen territories.",
"Recon data is unavailable. Visibility is strictly limited to immediate borders and allied sightlines.",
"Sensors are offline. Move carefully into the fog; rival troop numbers are heavily classified.",
"Global monitoring has failed. Unexplored regions remain hidden until your forces breach their borders."
];
await this.logAction(`- ${fog[Math.floor(Math.random() * fog.length)]}`, true);
}
if (this.encountersEnabled) {
const enc = [
"Expect dynamic encounters in the field—opportunities and threats are unpredictable. Move with caution.",
"Radio chatter indicates unpredictable anomalies in the region. Every decision carries risk.",
"The wasteland is alive and hostile. Keep your eyes open for unexpected events and roaming creatures.",
"Unforeseen threats and opportunities litter the battlefield. Standard tactical doctrines may not apply.",
"Wasteland hazards and local distress signals will complicate standard operations. Investigate at your own peril."
];
await this.logAction(`- ${enc[Math.floor(Math.random() * enc.length)]}`, true);
}
if (this.nukesEnabled) {
const nuke = [
"Nuclear silos are online. Procurement of 4 launch codes is required for payload delivery.",
"DEFCON 1 authorized. Secure encrypted launch codes to unleash atomic devastation on rival strongholds.",
"Atomic assets remain active in the theater. Prevent enemy acquisition of launch sequences at all costs.",
"Strategic nuclear strikes are permitted. Find the codes, secure a silo, and authorize the launch.",
"The nuclear option is on the table. Gather intel fragments to authorize a localized atomic strike."
];
await this.logAction(`- ${nuke[Math.floor(Math.random() * nuke.length)]}`, true);
}
if (this.hazardsEnabled) {
const haz = [
"Meteorological sensors detect severe ionizing radiation storms forming in the theater. Avoid the Glowing Sea.",
"Radstorms are active. Unsecured troops caught in the weather anomalies will suffer heavy casualties.",
"Severe weather anomalies detected. Prepare for significant environmental attrition and sudden ghoul migrations.",
"Radiation levels are spiking globally. Do not get caught in the storms, or your garrisons will melt away.",
"The environment is aggressively radioactive. Track storm movements to prevent unnecessary troop loss."
];
await this.logAction(`- ${haz[Math.floor(Math.random() * haz.length)]}`, true);
}
// 4. FACTION PERK INSTRUCTIONS
if (this.perksEnabled && this.player.perk && this.player.perk.id !== 'none') {
await this.logAction(`[ TACTICAL DOCTRINE: ${this.player.perk.name.toUpperCase()} ]`, true);
const perkGuides = {
'chem_frenzy': "Sacrifice garrisoned troops to gain a massive combat advantage. Click 'Use Chem Frenzy' during Battle Phase.",
'mercenary_contracts': "Your wealth buys loyalty. Spend 20 Caps to instantly deploy elite reserve troops.",
'tech_hoarders': "Advanced energy weapons provide an edge. Spend Caps to grant armies +10% win chance.",
'elders_edict': "Seal off borders entirely. Click 'Enact Lockdown' to prevent attacks in or out for 3 turns.",
'the_house_always_wins': "Simulate outcomes. Click 'Undo Last Battle' immediately after a failed attack to restore troops.",
'logistical_superiority': "Massive supply lines yield +50% bonus reinforcements automatically from controlled continents.",
'tribute_chest': "The strong take from the weak. Automatically collect +5 bonus Caps every turn for each continent.",
'vertibird_assault': "Air superiority achieved. You may move troops to ANY friendly territory, ignoring adjacency.",
'guerrilla_tactics': "Move swiftly. You may route troops through an enemy territory, inflicting 15% casualties.",
'rapid_relocation': "Use the hidden rail network. You receive 5 Maneuver points per turn.",
'prydwen_deployment': "The Prydwen automatically dispatches 3 airborne troops per turn to contested borders.",
'power_armor_infantry': "Clad in heavy armor. All forces automatically receive a flat +5% win chance in every battle.",
'ranger_network': "Defending territories automatically gain up to a +20% defense bonus based on connected network.",
'mysterious_stranger': "A guardian angel watches over you. When outnumbered and losing, the Stranger may appear.",
'another_settlement': "The militia stands ready. If attacked by a larger force, local reinforcements may spawn.",
'fev_infection': "Grow your army through conquest. 25% of all defeated enemy troops are mutated into your ranks.",
'psycho_rush': "Raid for supplies. 30% chance to steal the enemy's Caps, Stimpaks, or enslave survivors.",
'synth_replacements': "Nothing is truly lost. The Institute automatically recovers 10% of destroyed troops.",
'scourge_of_the_east': "Leave no one behind. When conquering, you may move 100% of your attacking force."
};
const guideText = perkGuides[this.player.perk.id] || "Leverage your unique faction capabilities to secure asymmetrical warfare advantages.";
await this.logAction(`> ${guideText}`, true);
}
await this.logAction("==================================================", true);
await this.logAction("--- DAY 1 BEGINS ---", true);
};
Gamestate.toggleLockdown = async function (countryName) {
const clickedCountry = this.countries.find(c => c.name === countryName);
if (!clickedCountry || clickedCountry.owner !== this.player.name) return;
if (this.player.lockdownCooldown > 0) {
if (this.showToast) this.showToast(`Edict is on cooldown for ${this.player.lockdownCooldown} more turn(s).`, "red");
return;
}
const isAlreadyLocked = clickedCountry.isLockedDown;
// First, clear any existing lockdown from all other territories.
this.countries.forEach(c => {
if (c.name !== countryName) {
c.isLockedDown = false;
let el = document.getElementById(c.name);
if (el) el.classList.remove('lockdown-territory');
}
});
// Now, toggle the state of the clicked country.
clickedCountry.isLockedDown = !isAlreadyLocked;
let clickedEl = document.getElementById(clickedCountry.name);
if (clickedCountry.isLockedDown) {
// If we are ADDING the lockdown
if (clickedEl) clickedEl.classList.add('lockdown-territory');
clickedCountry.lockdownTimer = 3; // FIX: Ensure timer starts at 3
await this.logAction(`LOCKDOWN ENACTED: ${formatTerritoryName(clickedCountry.name)} is now under Elder's Edict for 3 turns.`);
} else {
// If we are REMOVING the lockdown
if (clickedEl) clickedEl.classList.remove('lockdown-territory');
clickedCountry.lockdownTimer = 0;
// FIX: Start the cooldown exactly at 3 turns when lifted manually!
this.player.lockdownCooldown = 3;
await this.logAction(`LOCKDOWN LIFTED: The edict has been lifted from ${formatTerritoryName(clickedCountry.name)}. Cooldown started.`);
}
this.updateInfo();
};
Gamestate.isTerritoryVisible = function(territoryName) {
const fogEnabled = document.getElementById('opt-fog-of-war') && document.getElementById('opt-fog-of-war').checked && !Gamestate.devFogLifted;
if (!fogEnabled) return true;
const pBobbleActive = this.bobbleheads && this.bobbleheads.find(b => b.key === 'p' && b.active && b.owner === this.player.name);
if (pBobbleActive || !this.player.alive) return true;
let visible = new Set();
this.player.areas.forEach(a => {
visible.add(a);
let c = this.countries.find(x => x.name === a);
if (c) c.neighbours.forEach(n => visible.add(n));
});
const alliesWithVision = this.isAllianceMode
? this.players.filter(p => p.alive && !p.isNeutral && p.team === this.player.team && !p.isPlayer)
: this.players.filter(p => p.alive && !p.isNeutral && this.diplomacy.reputation[p.name]?.[this.player.name] >= 35);
alliesWithVision.forEach(ally => {
ally.areas.forEach(a => visible.add(a));
ally.areas.forEach(areaName => {
const c = this.countries.find(x => x.name === areaName);
if (c) c.neighbours.forEach(n => visible.add(n));
});
if (this.commandersEnabled && ally.commander && ally.commander.hp > 0) {
visible.add(ally.commander.loc);
const c = this.countries.find(x => x.name === ally.commander.loc);
if (c) c.neighbours.forEach(n => visible.add(n));
}
});
return visible.has(territoryName);
};
Gamestate.logFog = function(territoryName, exactMsg, isImportant = false, type = "battle") {
let turbo = document.getElementById('turbo-toggle') && document.getElementById('turbo-toggle').checked;
// --- FIX: Absolute suppression of explicit combat spam during AI Turbo turns ---
if (this.aiTurn && turbo && (exactMsg.includes("VICTORY:") || exactMsg.includes("REPULSED:") || exactMsg.includes("[OCCUPIED]"))) {
return; // Completely skip logging this battle (even against the player)
}
// If it involves the human player, they always know about it
if (exactMsg.includes(this.player.name)) {
return this.logAction(exactMsg, isImportant);
}
if (this.isTerritoryVisible(territoryName)) {
this.logAction(exactMsg, isImportant);
} else {
// Only 15% chance to show a vague message to prevent log spam (even in Turbo!)
if (Math.random() < 0.15) {
const battleMsgs = [
"[ SENSOR ANOMALY ] Distant explosions echo through the fog...",
"[ RADIO STATIC ] Intercepted panicked chatter from an unknown sector.",
"[ SENSOR ANOMALY ] Tremors detected. Heavy ordnance deployed somewhere in the wastes.",
"[ FOG OF WAR ] A faint flash of plasma fire illuminates the distant clouds.",
"[ RADIO STATIC ] '...taking heavy casualties! Sector is...' Signal lost.",
"[ FOG OF WAR ] Gunfire echoes across the wasteland, source unconfirmed.",
"[ RADIO STATIC ] '...requesting immediate reinforcements, they are breaching the...' *static*",
"[ FOG OF WAR ] The sky briefly flickers with the glow of distant laser fire.",
"[ SENSOR ANOMALY ] Seismic sensors detect continuous artillery bombardment in the dark zone.",
"[ RADIO STATIC ] A garbled distress beacon briefly cuts through the interference.",
"[ FOG OF WAR ] Thick black smoke rises from an unseen settlement beyond the ridge.",
"[ SENSOR ANOMALY ] Spikes in localized radiation suggest heavy combat in a shrouded sector.",
"[ RADIO STATIC ] '...fall back! Fall back! They have...' *signal lost*",
"[ FOG OF WAR ] The unmistakable sound of a Vertibird gunship engaging targets echoes from the unseen front.",
"[ SENSOR ANOMALY ] Thermal imaging picks up a massive, violent heat bloom in the wastes.",
"[ FOG OF WAR ] A faint, rhythmic thudding of heavy weapons fire rolls across the irradiated plains."
];
const moveMsgs = [
"[ SENSOR ANOMALY ] Unidentified radar contacts shifting in the deep fog.",
"[ FOG OF WAR ] Dust clouds spotted on the horizon. Movement detected.",
"[ RADIO STATIC ] Faint engine noises heard in the distance.",
"[ SENSOR ANOMALY ] Unknown troop movements obscured by heavy weather.",
"[ FOG OF WAR ] Shadows shifting just beyond our visual range.",
"[ SENSOR ANOMALY ] A large mass of unidentified contacts just vanished from radar.",
"[ RADIO STATIC ] Scrambled coordinates intercepted, suggesting a major redeployment.",
"[ FOG OF WAR ] Scouts report deep, heavy tracks leading into the irradiated zone.",
"[ SENSOR ANOMALY ] Ghost signals pinging on the very edge of our detection grid.",
"[ FOG OF WAR ] A flock of mutated crows scatters in the distance, disturbed by something large.",
"[ RADIO STATIC ] Faint mechanical grinding heard over the wind. Someone is marching.",
"[ SENSOR ANOMALY ] Low-frequency vibrations indicate a heavily armored column is on the move.",
"[ FOG OF WAR ] Silhouettes briefly visible against the glow of the distant ruins.",
"[ RADIO STATIC ] Unencrypted broadcast detected: '...coordinates reached, awaiting orders.'",
"[ SENSOR ANOMALY ] Sudden shift in local wildlife migrations implies a massive force is pushing through the fog."
];
const msgs = type === "battle" ? battleMsgs : moveMsgs;
this.logAction(msgs[Math.floor(Math.random() * msgs.length)]);
}
}
};
Gamestate.drawMapText = function () {
// --- NEW: CLEAR OLD PAW PRINTS BEFORE REDRAWING ---
document.querySelectorAll('.dogmeat-paw-path').forEach(el => el.remove());
this.countries.forEach(country => {
let areaOnMap = document.getElementById(country.name);
let textNode = country.textNode || (areaOnMap ? areaOnMap.nextElementSibling : null);
if (areaOnMap && textNode) {
if (country.isCrater) {
textNode.innerHTML = "";
return;
}
// --- FOG OF WAR CHECK ---
const isShrouded = areaOnMap.classList.contains('fog-shroud');
let finalHtml;
if (!isShrouded) {
// --- VISIBLE TERRITORY ---
let text = `${country.army}`;
let iconHtml = "";
// --- NEW: SEARCHING (EXPLORING) ICON ---
if (country.isExploring) {
iconHtml += `<tspan fill="var(--pip-color)" font-size="20px" filter="drop-shadow(0 0 3px #000)" class="blinking-cursor">⌕</tspan> `;
}
// --- NEW: DOGMEAT QUEST ICON (SVG PATH LOCALIZED) ---
if (this.dogmeatQuest && (this.dogmeatQuest.active || this.dogmeatQuest.siege > 0) && this.dogmeatQuest.target === country.name) {
// Grab the text node's bounding box so we align perfectly with the troop numbers
let bbox = textNode.getBBox();
let paw = document.createElementNS("http://www.w3.org/2000/svg", "path");
paw.setAttribute("d", "M8.5,4c-1.4,0-2.5,1.5-2.5,3.4S7.1,10.8,8.5,10.8s2.5-1.5,2.5-3.4S9.9,4,8.5,4z M15.5,4c-1.4,0-2.5,1.5-2.5,3.4s1.1,3.4,2.5,3.4s2.5-1.5,2.5-3.4S16.9,4,15.5,4z M3.5,9.6C2.1,9.6,1,11.2,1,13s1.1,3.4,2.5,3.4s2.5-1.5,2.5-3.4S4.9,9.6,3.5,9.6z M20.5,9.6c-1.4,0-2.5,1.5-2.5,3.4s1.1,3.4,2.5,3.4s2.5-1.5,2.5-3.4S21.9,9.6,20.5,9.6z M12,12.3c-3.1,0-5.6,2.2-5.6,5.3c0,2.6,2.5,4.4,5.6,4.4s5.6-1.8,5.6-4.4C17.6,14.5,15.1,12.3,12,12.3z");
paw.setAttribute("fill", "var(--pip-color)");
// --- NEW: DARK OUTLINE ---
paw.setAttribute("stroke", "#000000");
paw.setAttribute("stroke-width", "2.5");
paw.style.paintOrder = "stroke fill"; // Puts the outline behind the color
paw.setAttribute("class", "dogmeat-paw-path");
// Scale down to 60% and center directly over the troop text
let scale = 0.6;
let pWidth = 24 * scale;
let offsetX = bbox.x + (bbox.width / 2) - (pWidth / 2);
let offsetY = bbox.y - 18;
paw.setAttribute("transform", `translate(${offsetX}, ${offsetY}) scale(${scale})`);
// Use a different, more aggressive pulse during the siege!
if (this.dogmeatQuest.siege > 0) {
paw.style.animation = "targetPulse 1.2s infinite alternate";
} else {
paw.classList.add("flash");
}
// Attach to the exact same SVG group as the text so it inherits all map scaling/positioning!
textNode.parentNode.appendChild(paw);
}
// --- THIS IS THE NEW LOGIC FOR THE LOCKDOWN ICON ---
if (country.isLockedDown) {
iconHtml += `<tspan fill="#ffcc00" font-size="20px" filter="drop-shadow(0 0 3px #000)">🔒</tspan> `;
}
// --- NEW: RELIC ICONS ---
if (country.hasMine) {
iconHtml += `<tspan fill="var(--pip-color)" font-size="20px" filter="drop-shadow(0 0 3px #000)">✺</tspan> `;
}
if (country.isFrozen > 0) {
iconHtml += `<tspan fill="var(--pip-color)" font-size="20px" filter="drop-shadow(0 0 3px #000)">❅</tspan> `;
}
if (country.isBlockaded > 0) {
iconHtml += `<tspan fill="var(--pip-color)" font-size="20px" filter="drop-shadow(0 0 3px #000)">⊘</tspan> `;
}
if (this.nukesEnabled && country.isSilo) {
let isLaunchSite = (this.activeNukes && this.activeNukes.some(n => n.launchSilo === country.name));
let siloColor = isLaunchSite ? "#ff3333" : "#ffcc00";
let pulse = isLaunchSite ? `filter="drop-shadow(0 0 8px #ff3333)"` : ``;
iconHtml += `<tspan fill="${siloColor}" font-size="22px" ${pulse}>☢</tspan> `;
}
// --- FIX: Add Nuke Target Icon ---
if (this.activeNukes && this.activeNukes.some(n => n.target === country.name)) {
// Using the Crosshair symbol with a CSS pulse animation
iconHtml += `<tspan fill="#ff3333" font-size="24px" filter="drop-shadow(0 0 8px #ff0000)" class="nuke-target-anim">⌖</tspan> `;
}
if (this.commandersEnabled) {
this.players.forEach(p => {
if (p.alive && !p.isNeutral && p.commander && p.commander.loc === country.name) {
const isAllyInAlliance = this.isAllianceMode && p.team === this.player.team;
// Draw the star if it's the player, a permanent ally, OR the area isn't shrouded
if (p.isPlayer || isAllyInAlliance || !isShrouded) {
iconHtml += `<tspan fill="${p.color}" font-size="20px" filter="drop-shadow(0 0 3px #000)">★</tspan> `;
}
}
});
}
if (iconHtml !== "") {
text += `<tspan dy="-15">${iconHtml}</tspan>`;
}
finalHtml = text;
} else {
// --- SHROUDED TERRITORY ---
let text = '?'; // SILO MEMORY: If we know a silo is here, show the icon.
if (this.nukesEnabled && country.isSilo && country.knownSilo) {
text += ` <tspan fill="#ffcc00" font-size="22px">☢</tspan>`;
}
finalHtml = text;
}
// Update the map text.
textNode.innerHTML = finalHtml;
}
});
}
Gamestate.areAllies = function (name1, name2) {
if (name1 === name2) return false; // FIX ISSUE #1: You cannot be an ally of yourself
// --- NEW: Alliance Warfare Mode ---
// If Alliance mode is active, check their permanent team IDs.
if (this.isAllianceMode) {
let p1 = this.players.find(p => p.name === name1);
let p2 = this.players.find(p => p.name === name2);
if (p1 && p2 && p1.team === p2.team) {
return true; // They are permanently on the same team!
}
return false; // Everyone else is a permanent enemy.
}
// --- CLASSIC MODE: Temporary Truces ---
// If playing standard Free-For-All, use the normal truce array.
for (let truce of this.diplomacy.truces) {
if ((truce.f1 === name1 && truce.f2 === name2) || (truce.f1 === name2 && truce.f2 === name1)) {
return true;
}
}
return false;
};
Gamestate.getTruce = function (f1, f2) { return this.diplomacy.truces.find(t => (t.f1 === f1 && t.f2 === f2) || (t.f1 === f2 && t.f2 === f1)); }
Gamestate.openDiplomacy = function (targetName) {
let target = this.players.find(p => p.name === targetName);
if (!target || !target.alive || target.isNeutral) return;
if (this.areAllies(this.player.name, targetName)) { this.showToast(`You already have a Ceasefire with ${targetName}.`); return; }
if (this.diplomacy.grudges[targetName] && this.diplomacy.grudges[targetName].includes(this.player.name)) { this.showToast(`REJECTED: ${targetName} refuses to speak with a backstabber.`, "red"); return; }
// --- NEW: 1-Ally Limit Checks ---
if (!this.isAllianceMode) {
let myAllies = this.diplomacy.truces.filter(t => t.f1 === this.player.name || t.f2 === this.player.name);
if (myAllies.length >= 1) { this.showToast("You can only have one active ally at a time.", "red"); return; }
let theirAllies = this.diplomacy.truces.filter(t => t.f1 === targetName || t.f2 === targetName);
if (theirAllies.length >= 1) { this.showToast(`${targetName} is already allied with another faction.`, "red"); return; }
}
// 1. Setup the UI text
document.getElementById('dip-target-name').textContent = `Target: ${targetName}`;
// 2. Fetch and display Reputation & Tax
let repScore = this.diplomacy.reputation[target.name][this.player.name] || 0;
let repLabel = "NEUTRAL"; let repColor = "var(--pip-color)";
if (repScore >= 35) { repLabel = "IDOLIZED"; repColor = "#00ff00"; }
else if (repScore >= 10) { repLabel = "LIKED"; repColor = "#88ff88"; }
else if (repScore <= -35) { repLabel = "HATED"; repColor = "#ff0000"; }
else if (repScore <= -10) { repLabel = "VILIFIED"; repColor = "#ff8888"; }
let repDisplay = document.getElementById('dip-rep-display');
repDisplay.textContent = `REP: ${repLabel}`;
repDisplay.style.color = repColor;
let tax = this.diplomacy.betrayalTax[this.player.name] || 0;
let warningEl = document.getElementById('dip-tax-warning');
warningEl.innerHTML = tax > 0 ? `WASTELAND PARIAH: +${tax} penalty applies to all negotiations.` : "";
// --- PRE-CALCULATE BASE TRUCE COST PER TURN ---
let baseCostPerTurn = 0;
let currencyName = this.wastelandEconomyActive ? "Caps" : "Cards";
let myMaxCurrency = this.wastelandEconomyActive ? this.player.caps : this.player.cards.length;
let theirMaxCurrency = this.wastelandEconomyActive ? target.caps : target.cards.length;
if (this.wastelandEconomyActive) {
baseCostPerTurn = 5 + (tax * 5); // Base cost 5 Caps + Betrayal Tax
// Army Size Modifiers
if (target.army > (this.player.army * 2)) {
baseCostPerTurn += 5;
} else if (target.army > this.player.army) {
baseCostPerTurn += 2;
} else if (target.army < this.player.army) {
baseCostPerTurn -= 2;
}
// Reputation Modifiers
if (repScore <= -35) {
baseCostPerTurn += 5; // Hated
} else if (repScore <= -10) {
baseCostPerTurn += 2; // Hostile
} else if (repScore >= 35) {
baseCostPerTurn -= 3; // Idolized
} else if (repScore >= 10) {
baseCostPerTurn -= 1; // Liked
}
// Failsafe: Truce always costs at least 1 Cap
baseCostPerTurn = Math.max(1, baseCostPerTurn);
} else {
baseCostPerTurn = 0.33 + (tax * 0.33); // Classic Cards
if (target.army > this.player.army) baseCostPerTurn = 0.66 + (tax * 0.33);
if (target.army > (this.player.army * 2)) baseCostPerTurn = 1.0 + (tax * 0.33);
if (repScore >= 35) baseCostPerTurn = Math.max(0, baseCostPerTurn - 0.66);
else if (repScore >= 10) baseCostPerTurn = Math.max(0, baseCostPerTurn - 0.33);
}
// 3. Setup the Offer Sliders (Bribes)
const offerCapsSlider = document.getElementById('dip-offer-caps');
const offerCapsVal = document.getElementById('dip-offer-caps-val');
// --- FIX: The value span was being replaced. Let's make sure it stays. ---
offerCapsSlider.previousElementSibling.querySelector('#dip-my-caps-max').textContent = myMaxCurrency;
offerCapsSlider.max = myMaxCurrency;
offerCapsSlider.value = 0;
offerCapsVal.textContent = "0";
const offerTroopsSlider = document.getElementById('dip-offer-troops');
const offerTroopsVal = document.getElementById('dip-offer-troops-val');
// --- FIX: Same fix as above for the troops slider. ---
offerTroopsSlider.previousElementSibling.querySelector('#dip-my-troops-max').textContent = this.player.reserve;
offerTroopsSlider.max = this.player.reserve;
offerTroopsSlider.value = 0;
offerTroopsVal.textContent = "0";
// 4. Setup the Request Sliders (Demands)
const reqTruceSlider = document.getElementById('dip-req-truce');
const reqTruceVal = document.getElementById('dip-req-truce-val');
const truceCostDisplay = document.getElementById('dip-truce-cost');
// --- DYNAMIC TRUCE SLIDER LOGIC ---
let maxAffordableTurns = 0;
if (baseCostPerTurn === 0) {
maxAffordableTurns = 10; // Free truce!
} else {
maxAffordableTurns = Math.floor(myMaxCurrency / baseCostPerTurn);
}
if (maxAffordableTurns < 1) {
// Lock the slider
reqTruceSlider.max = 0;
reqTruceSlider.value = 0;
reqTruceSlider.disabled = true;
truceCostDisplay.textContent = `Requires at least ${Math.ceil(baseCostPerTurn)} ${currencyName} for a 1-day Truce.`;
truceCostDisplay.style.color = "var(--pip-color)";
truceCostDisplay.style.opacity = "0.7"; // Faded to indicate it's locked
} else {
// Unlock the slider
reqTruceSlider.max = maxAffordableTurns;
reqTruceSlider.value = 0;
reqTruceSlider.disabled = false;
truceCostDisplay.textContent = `Cost: 0 ${currencyName} (${Math.ceil(baseCostPerTurn)}/Day)`;
truceCostDisplay.style.color = "var(--pip-color)";
truceCostDisplay.style.opacity = "1";
}
reqTruceVal.textContent = "0";
const reqCapsSlider = document.getElementById('dip-req-caps');
const reqCapsVal = document.getElementById('dip-req-caps-val');
// --- FIX: The value span was being replaced here too. ---
reqCapsSlider.previousElementSibling.querySelector('#dip-their-caps-max').textContent = theirMaxCurrency;
reqCapsSlider.max = theirMaxCurrency;
reqCapsSlider.value = 0;
reqCapsVal.textContent = "0";
// 5. Update values on drag
offerCapsSlider.oninput = function () { offerCapsVal.textContent = this.value; validateProposal(); };
offerTroopsSlider.oninput = function () { offerTroopsVal.textContent = this.value; validateProposal(); };
reqCapsSlider.oninput = function () {
reqCapsVal.textContent = this.value;
// MUTUAL EXCLUSIVITY: If demanding caps, force Truce slider to 0
if (parseInt(this.value) > 0) {
reqTruceSlider.value = 0;
reqTruceVal.textContent = "0";
if (maxAffordableTurns >= 1) {
truceCostDisplay.textContent = `Cost: 0 ${currencyName}`;
}
}
validateProposal();
};
const handleTruceSliderInput = function() {
reqTruceVal.textContent = this.value;
// MUTUAL EXCLUSIVITY: If requesting a truce, force Demand Caps slider to 0
if (parseInt(this.value) > 0) {
reqCapsSlider.value = 0;
reqCapsVal.textContent = "0";
}
let truceTurnsRequested = parseInt(this.value);
let totalTruceCost = Math.ceil(baseCostPerTurn * truceTurnsRequested);
if (maxAffordableTurns >= 1) {
// NEW: Keep the per-day rate visible while sliding
truceCostDisplay.textContent = `Cost: ${totalTruceCost} ${currencyName} (${Math.ceil(baseCostPerTurn)}/Day)`;
}
validateProposal();
};
reqTruceSlider.oninput = handleTruceSliderInput;
// 6. The Validation Logic
let validateProposal = () => {
let capsOffered = parseInt(offerCapsSlider.value);
let troopsOffered = parseInt(offerTroopsSlider.value);
let capsRequested = parseInt(reqCapsSlider.value);
let truceTurnsRequested = parseInt(reqTruceSlider.value);
let analysisEl = document.getElementById('dip-analysis');
let sendBtn = document.getElementById('dip-send');
let isTerrified = (this.player.army >= target.army * 2);
if (repScore <= -35 && (capsRequested > 0 || truceTurnsRequested > 0) && !isTerrified) {
analysisEl.innerHTML = `<span style="color: #ff3333;">Refusal guaranteed. Target is hostile and unyielding.</span>`;
sendBtn.disabled = true;
return;
}
let offerValue = 0;
let requestValue = capsRequested; // Removed the Truce cost from here!
let softPower = 0;
let totalTruceCost = Math.ceil(baseCostPerTurn * truceTurnsRequested);
let totalCurrencyCost = capsOffered + totalTruceCost; // Track combined Cap spending
// Failsafe: Prevent spending more than you have if combining Gifts + Truces
if (totalCurrencyCost > myMaxCurrency) {
analysisEl.innerHTML = `<span style="color: #ff3333;">Insufficient funds. Combined cost exceeds your bank.</span>`;
sendBtn.disabled = true;
return;
}
if (this.wastelandEconomyActive) {
offerValue = capsOffered + (troopsOffered * 5);
if (this.player.army > target.army) softPower += Math.floor((this.player.army - target.army) * 1.5);
if (repScore >= 35) softPower += 10;
} else {
offerValue = capsOffered + (troopsOffered * 0.5);
if (this.player.army > target.army) softPower += (this.player.army - target.army) * 0.15;
if (repScore >= 35) softPower += 1.0;
}
let effectiveOffer = offerValue + softPower;
// Auto-Pay Ceasefire Check
if (truceTurnsRequested > 0) {
if (offerValue > 0) {
analysisEl.innerHTML = `<span style="color: var(--pip-color);">Purchasing Ceasefire + Generous Gift. Target will accept.</span>`;
} else {
analysisEl.innerHTML = `<span style="color: var(--pip-color);">Purchasing a ${truceTurnsRequested}-Turn Ceasefire for ${totalTruceCost} ${currencyName}.</span>`;
}
sendBtn.disabled = false;
return;
}
// Is it a gift?
if (offerValue > 0 && requestValue === 0) {
analysisEl.innerHTML = `<span style="color: var(--pip-color);">Generous Gift. Significant Reputation increase expected.</span>`;
sendBtn.disabled = false;
return;
}
// Is the trade fair or forced?
if (effectiveOffer >= requestValue && requestValue > 0) {
if (offerValue < requestValue && softPower > 0) {
analysisEl.innerHTML = `<span style="color: var(--pip-color);">Target will yield to your demands out of fear or respect.</span>`;
} else {
analysisEl.innerHTML = `<span style="color: var(--pip-color);">Terms acceptable. Target likely to agree.</span>`;
}
sendBtn.disabled = false;
} else if (requestValue > 0) {
// Faded opacity used here for rejections to differentiate without breaking the theme color
analysisEl.innerHTML = `<span style="color: var(--pip-color); opacity: 0.8;">Target refuses. You must offer a fair trade, or possess a much larger army to force compliance.</span>`;
sendBtn.disabled = true;
} else {
analysisEl.innerHTML = `Awaiting terms...`;
sendBtn.disabled = true;
}
};
validateProposal();
let modal = document.getElementById('diplomacy-modal');
modal.style.display = 'flex';
document.getElementById('dip-send').onclick = () => {
let proposal = {
capsOffered: parseInt(offerCapsSlider.value),
troopsOffered: parseInt(offerTroopsSlider.value),
capsRequested: parseInt(reqCapsSlider.value),
truceRequested: parseInt(reqTruceSlider.value)
};
this.sendEnvoy(target, proposal, tax);
modal.style.display = 'none';
};
document.getElementById('dip-cancel').onclick = () => { modal.style.display = 'none'; };
};
Gamestate.sendEnvoy = function (target, proposal, tax) {
let repScore = this.diplomacy.reputation[target.name][this.player.name] || 0;
// Calculate Trade Value based on Economy Type
let offerValue = 0;
let requestValue = proposal.capsRequested;
let baseCostPerTurn = 0;
let softPower = 0; // NEW: Intimidation / Reputation leverage
if (this.wastelandEconomyActive) {
// CAPS ECONOMY
offerValue = proposal.capsOffered + (proposal.troopsOffered * 5);
if (this.player.army > target.army) {
softPower += Math.floor((this.player.army - target.army) * 1.5);
}
if (repScore >= 35) softPower += 10;
// Synced Math from openDiplomacy UI!
baseCostPerTurn = 5 + (tax * 5);
if (target.army > (this.player.army * 2)) baseCostPerTurn += 5;
else if (target.army > this.player.army) baseCostPerTurn += 2;
else if (target.army < this.player.army) baseCostPerTurn -= 2;
if (repScore <= -35) baseCostPerTurn += 5;
else if (repScore <= -10) baseCostPerTurn += 2;
else if (repScore >= 35) baseCostPerTurn -= 3;
else if (repScore >= 10) baseCostPerTurn -= 1;
baseCostPerTurn = Math.max(1, baseCostPerTurn);
} else {
// CLASSIC CARD ECONOMY
offerValue = proposal.capsOffered + (proposal.troopsOffered * 0.5);
if (this.player.army > target.army) {
softPower += (this.player.army - target.army) * 0.15;
}
if (repScore >= 35) softPower += 1.0;
baseCostPerTurn = 0.33 + (tax * 0.33);
if (target.army > this.player.army) baseCostPerTurn = 0.66 + (tax * 0.33);
if (target.army > (this.player.army * 2)) baseCostPerTurn = 1.0 + (tax * 0.33);
if (repScore >= 35) baseCostPerTurn = Math.max(0, baseCostPerTurn - 0.66);
else if (repScore >= 10) baseCostPerTurn = Math.max(0, baseCostPerTurn - 0.33);
}
let totalTruceCost = 0;
if (proposal.truceRequested > 0) {
totalTruceCost = Math.ceil(baseCostPerTurn * proposal.truceRequested);
// We no longer add this to requestValue, as it is auto-paid!
}
let effectiveOffer = offerValue + softPower;
// AI Acceptance Logic (Truce purchases are automatically accepted)
if (proposal.truceRequested > 0 || effectiveOffer >= requestValue || (offerValue > 0 && requestValue === 0)) {
// 1 & 2. Transfer Currency
if (this.wastelandEconomyActive) {
// Transfer Caps (Including auto-paid Truce cost)
this.player.caps -= (proposal.capsOffered + totalTruceCost);
target.caps += (proposal.capsOffered + totalTruceCost);
target.caps -= proposal.capsRequested;
this.player.caps += proposal.capsRequested;
} else {
// Transfer Cards (Including auto-paid Truce cost)
for (let i = 0; i < (proposal.capsOffered + totalTruceCost); i++) {
if (this.player.cards.length > 0) target.cards.push(this.player.cards.pop());
}
for (let i = 0; i < proposal.capsRequested; i++) {
if (target.cards.length > 0) this.player.cards.push(target.cards.pop());
}
}
// 3. Transfer Troops (Player to AI Reserve)
if (proposal.troopsOffered > 0) {
this.player.reserve = Math.max(0, this.player.reserve - proposal.troopsOffered);
target.reserve += proposal.troopsOffered;
target.army += proposal.troopsOffered;
// PREVENT DEPLOYMENT SOFTLOCK
if (this.stage === "Fortify" && this.player.reserve === 0) {
this.stage = "Battle";
let endBtn = document.getElementById('end');
if (endBtn) {
endBtn.style.opacity = "1";
endBtn.style.pointerEvents = "auto";
}
if (turnInfo) turnInfo.textContent = "Combat Phase";
if (turnInfoMessage) turnInfoMessage.textContent = "Select staging territory, then target an enemy.";
this.updateButtonText();
}
}
// 4. Enact Truce
if (proposal.truceRequested > 0) {
this.diplomacy.truces.push({ f1: this.player.name, f2: target.name, turns: proposal.truceRequested });
}
// --- CALCULATE REPUTATION CHANGES ---
let repChange = 0;
let actionText = "";
let currencyName = this.wastelandEconomyActive ? "Caps" : "Cards";
// Was it a Truce Purchase?
if (proposal.truceRequested > 0) {
repChange = 1;
actionText = `[ DIPLOMACY ] You purchased a ${proposal.truceRequested}-Turn Ceasefire with ${target.name} for ${totalTruceCost} ${currencyName}.`;
}
// Was it a pure gift?
if (requestValue === 0 && offerValue > 0) {
repChange = Math.floor(offerValue * 3);
actionText = `[ DIPLOMACY ] You sent a generous gift of ${proposal.capsOffered} ${currencyName} and ${proposal.troopsOffered} Troops to ${target.name}.`;
}
// Was it an exceptionally generous trade?
else if (offerValue > requestValue * 2) {
repChange = Math.floor((offerValue - requestValue) * 2);
actionText = `[ DIPLOMACY ] You concluded a highly favorable trade with ${target.name}.`;
}
// Was it Extortion? (NEW)
else if (requestValue > 0 && offerValue < requestValue) {
repChange = -5; // Extorting damages your reputation with them
actionText = `[ DIPLOMACY ] You strong-armed ${target.name} into yielding to your demands. A 3-Turn Truce was enforced.`;
this.diplomacy.truces.push({ f1: this.player.name, f2: target.name, turns: 3, locked: true }); // FIX: Locked Truce
}
// Was it a standard, fair trade?
else {
repChange = 1;
actionText = `[ DIPLOMACY ] Trade agreement reached with ${target.name}.`;
}
// Apply Reputation
if (repChange > 0) {
// --- NEW: Inspirational Perk ---
if (this.levelingEnabled && this.player.activeBuffs && this.player.activeBuffs.inspirational) {
repChange *= 2;
}
this.diplomacy.reputation[target.name][this.player.name] = Math.min(50, repScore + repChange);
actionText += ` (Reputation increased by +${repChange}).`;
}
if (this.queueToast) this.queueToast(`>>> ENVOY RETURNED <<< <br><br>TERMS ACCEPTED BY ${target.name.toUpperCase()}`, "var(--pip-color)", false);
this.logAction(actionText, true);
} else {
// AI Rejects
if (this.queueToast) this.queueToast(`>>> ENVOY RETURNED <<< <br><br>TERMS REJECTED BY ${target.name.toUpperCase()}`, "#ff3333", false);
this.logAction(`[ DIPLOMACY ] Envoy rejected! ${target.name} refuses your terms.`, true);
}
this.updateInfo();
};
// FIX ISSUE #6: Add isExtortion parameter
Gamestate.showEnvoyModal = function (factionName, caps, turns, color, isRequestingTroops = false, troopsRequested = 0, isExtortion = false) {
return new Promise((resolve) => {
let modal = document.getElementById('envoy-modal');
let msgEl = document.getElementById('envoy-message');
let headerEl = modal.querySelector('h2');
let acceptBtn = document.getElementById('envoy-accept');
let rejectBtn = document.getElementById('envoy-reject');
if (isExtortion) {
headerEl.textContent = "[ EXTORTION DEMAND ]";
headerEl.style.color = "#ff3333";
headerEl.style.borderColor = "#ff3333";
headerEl.style.textShadow = "0 0 5px #ff3333";
acceptBtn.textContent = `YIELD (-${caps} CAPS)`;
rejectBtn.textContent = "REFUSE";
msgEl.innerHTML = `>>> EXTORTION DEMAND <<< <br><br><span style="color: ${color}; font-weight: bold;">${factionName}</span> has amassed a terrifying army on your border. They demand a tribute of <span style="font-weight: bold; color: #ff3333;">${caps} Caps</span> in exchange for a ${turns}-Round Ceasefire.<br><br>Do you yield and pay the tribute?`;
} else if (isRequestingTroops) {
headerEl.textContent = "[ URGENT TRANSMISSION ]";
headerEl.style.color = "#ffcc00";
headerEl.style.borderColor = "#ffcc00";
headerEl.style.textShadow = "0 0 5px #ffcc00";
acceptBtn.textContent = `TRANSFER (-${troopsRequested} TROOPS)`;
rejectBtn.textContent = "DENY REQUEST";
msgEl.innerHTML = `>>> URGENT TRANSMISSION <<< <br><br><span style="color: ${color}; font-weight: bold;">${factionName}</span> is suffering heavy casualties and requests emergency reinforcements.<br><br>Transfer <span style="font-weight: bold; color: var(--pip-color);">${troopsRequested} Troops</span> from your reserves?`;
} else {
headerEl.textContent = "[ INCOMING ENVOY ]";
headerEl.style.color = "var(--pip-color)";
headerEl.style.borderColor = "var(--pip-color)";
headerEl.style.textShadow = "0 0 5px var(--pip-color)";
acceptBtn.textContent = `ACCEPT (+${caps} CAPS)`;
rejectBtn.textContent = "REJECT";
msgEl.innerHTML = `<span style="color: ${color}; font-weight: bold;">${factionName}</span> offers ${caps} Bottle Cap for a ${turns}-Round Ceasefire.<br><br>Do you accept the terms?`;
}
modal.style.display = 'flex';
this.modalIsOpen = true;
let newAccept = acceptBtn.cloneNode(true);
let newReject = rejectBtn.cloneNode(true);
acceptBtn.parentNode.replaceChild(newAccept, acceptBtn);
rejectBtn.parentNode.replaceChild(newReject, rejectBtn);
newAccept.onclick = () => { modal.style.display = 'none'; this.modalIsOpen = false; resolve(true); };
newReject.onclick = () => { modal.style.display = 'none'; this.modalIsOpen = false; resolve(false); };
});
}
Gamestate.showAsylumModal = function(aiName) {
return new Promise(resolve => {
let modal = document.getElementById('asylum-modal');
if (!modal) {
modal = document.createElement('div');
modal.id = 'asylum-modal';
modal.className = 'overlay';
modal.style.zIndex = '10008';
modal.innerHTML = `
<div class="start-modal content" style="max-width: 450px; text-align: center;">
<h2 style="color: #ffcc00; margin-top: 0; border-bottom: 2px solid #ffcc00;">ASYLUM REQUEST</h2>
<p id="asylum-msg" style="margin: 15px 0; font-size: 18px; line-height: 1.3;"></p>
<select id="asylum-select" style="width:100%; padding:8px; margin-bottom: 15px; font-family:'VT323'; font-size:18px; background:var(--pip-dark); color:var(--pip-color); border:1px solid var(--pip-color);"></select>
<div style="display: flex; gap: 10px;">
<button id="asylum-confirm" style="flex: 1; border-color: #39ff14; color: #39ff14;">Grant Asylum</button>
<button id="asylum-deny" style="flex: 1; border-color: #ff3333; color: #ff3333;">Deny</button>
</div>
</div>
`;
document.body.appendChild(modal);
}
document.getElementById('asylum-msg').innerHTML = `>>> URGENT TRANSMISSION <<<<br><br>${aiName}: "Our forces are scattered! We cannot establish a foothold. Requesting emergency asylum. Cede a territory to us, or we are finished!"`;
let select = document.getElementById('asylum-select');
select.innerHTML = '';
this.player.areas.forEach(a => {
let opt = document.createElement('option');
opt.value = a;
opt.textContent = formatTerritoryName(a);
select.appendChild(opt);
});
modal.style.display = 'flex';
this.modalIsOpen = true; // <--- ADD THIS LINE
document.getElementById('asylum-confirm').onclick = () => {
modal.style.display = 'none';
this.modalIsOpen = false; // <--- ADD THIS LINE
let c = this.countries.find(x => x.name === select.value);
resolve(c);
};
document.getElementById('asylum-deny').onclick = () => {
modal.style.display = 'none';
this.modalIsOpen = false; // <--- ADD THIS LINE
resolve(null);
};
});
}
// --- NEW: CHEM FRENZY MODAL (V2) ---
Gamestate.showChemFrenzyModal = function (attackingArmy) {
return new Promise(resolve => {
const modal = document.getElementById('chem-frenzy-modal');
const slider = document.getElementById('frenzy-slider');
const troopsVal = document.getElementById('frenzy-troops-val');
const bonusVal = document.getElementById('frenzy-bonus-val');
const confirmBtn = document.getElementById('frenzy-confirm-btn');
const cancelBtn = document.getElementById('frenzy-cancel-btn');
if (!modal || !slider || !troopsVal || !bonusVal || !confirmBtn || !cancelBtn) {
resolve({ useFrenzy: false, bonus: 0, sacrifice: 0 }); // Failsafe
return;
}
const availableAttackers = attackingArmy - 1;
const maxSacrifice = Math.floor(availableAttackers * 0.50); // NEW: 50% sacrifice cap
slider.min = 0;
slider.max = maxSacrifice;
slider.value = 0;
const updateModalUI = () => {
const troopsToSacrifice = parseInt(slider.value);
// --- NEW: DIMINISHING RETURNS CALCULATION ---
// A logarithmic curve provides the diminishing returns you described.
// The "20" is a tuning number; a higher number means faster diminishing returns.
let bonusPercentage = 0;
if (troopsToSacrifice > 0) {
bonusPercentage = Math.round(5 * Math.log(troopsToSacrifice) + 5);
}
// This formula gives ~5% for 1 troop, ~12% for 5, and ~20% for 20. We can tune this if you like.
// --- END OF NEW CALCULATION ---
troopsVal.textContent = troopsToSacrifice;
bonusVal.textContent = bonusPercentage;
confirmBtn.disabled = troopsToSacrifice === 0;
confirmBtn.style.opacity = troopsToSacrifice === 0 ? "0.5" : "1";
confirmBtn.style.pointerEvents = troopsToSacrifice === 0 ? "none" : "auto";
};
slider.oninput = updateModalUI;
updateModalUI();
modal.style.display = 'flex';
const newConfirmBtn = confirmBtn.cloneNode(true);
const newCancelBtn = cancelBtn.cloneNode(true);
confirmBtn.parentNode.replaceChild(newConfirmBtn, confirmBtn);
cancelBtn.parentNode.replaceChild(newCancelBtn, cancelBtn);
slider.oninput = () => {
const troopsToSacrifice = parseInt(slider.value);
let bonusPercentage = 0;
if (troopsToSacrifice > 0) {
bonusPercentage = Math.round(5 * Math.log(troopsToSacrifice) + 5);
}
troopsVal.textContent = troopsToSacrifice;
bonusVal.textContent = bonusPercentage;
newConfirmBtn.disabled = troopsToSacrifice === 0;
newConfirmBtn.style.opacity = troopsToSacrifice === 0 ? "0.5" : "1";
newConfirmBtn.style.pointerEvents = troopsToSacrifice === 0 ? "none" : "auto";
};
newConfirmBtn.onclick = () => {
const troopsToSacrifice = parseInt(slider.value);
let bonusPercentage = 0;
if (troopsToSacrifice > 0) {
bonusPercentage = Math.round(5 * Math.log(troopsToSacrifice) + 5);
}
modal.style.display = 'none';
resolve({
useFrenzy: troopsToSacrifice > 0,
bonus: bonusPercentage / 100, // Convert to decimal
sacrifice: troopsToSacrifice
});
};
newCancelBtn.onclick = () => {
modal.style.display = 'none';
resolve({ useFrenzy: false, bonus: 0, sacrifice: 0 });
};
});
};
Gamestate.showBetrayalModal = function (targetName) {
return new Promise((resolve) => {
let modal = document.getElementById('betrayal-modal');
document.getElementById('betrayal-message').innerHTML = `WARNING: Attacking <span style="font-weight:bold; color: #ff3333;">${targetName}</span> will break your ceasefire!<br><br>You will incur a permanent Betrayal Tax and trigger a Spite Alliance.`;
modal.style.display = 'flex';
let confirmBtn = document.getElementById('betrayal-confirm');
let cancelBtn = document.getElementById('betrayal-cancel');
let newConfirm = confirmBtn.cloneNode(true);
let newCancel = cancelBtn.cloneNode(true);
confirmBtn.parentNode.replaceChild(newConfirm, confirmBtn);
cancelBtn.parentNode.replaceChild(newCancel, cancelBtn);
newConfirm.onclick = () => { modal.style.display = 'none'; resolve(true); };
newCancel.onclick = () => { modal.style.display = 'none'; resolve(false); };
});
}
// --- NEW: ALLIANCE SIGNAL TYPE MODAL ---
Gamestate.showSignalTypeModal = function() {
const modal = document.getElementById('signal-type-modal');
if (!modal) return;
// --- FIX: Inject Emergency Asylum Button if Player is exiled ---
let container = modal.querySelector('div[style*="flex-direction: column"]');
let asylumBtn = document.getElementById('signal-type-asylum');
if (!asylumBtn) {
asylumBtn = document.createElement('button');
asylumBtn.id = 'signal-type-asylum';
asylumBtn.textContent = 'Request Emergency Asylum';
asylumBtn.style.borderColor = '#ffcc00';
asylumBtn.style.color = '#ffcc00';
asylumBtn.style.marginBottom = '10px';
container.insertBefore(asylumBtn, document.getElementById('signal-type-cancel'));
asylumBtn.onclick = () => {
modal.style.display = 'none';
let ally = this.players.find(p => p.team === this.player.team && !p.isPlayer && p.alive);
if (!ally || ally.areas.length <= 1) {
this.showAllyResponse(`[ TRANSMISSION FAILED ]`, `Your ally does not have sufficient territory to grant asylum.`, '#ff3333');
return;
}
let safeTerritories = ally.areas.filter(a => {
let c = this.countries.find(x => x.name === a);
return c && !c.neighbours.some(n => {
let nc = this.countries.find(x => x.name === n);
return nc && nc.owner !== ally.name && !this.areAllies(ally.name, nc.owner) && !nc.isCrater;
});
});
if (safeTerritories.length === 0) safeTerritories = ally.areas;
let chosenName = safeTerritories.sort((a,b) => {
let ca = this.countries.find(x => x.name === a);
let cb = this.countries.find(x => x.name === b);
return ca.army - cb.army;
})[0];
let chosenCountry = this.countries.find(c => c.name === chosenName);
if (chosenCountry) {
let idx = ally.areas.indexOf(chosenCountry.name);
if (idx > -1) ally.areas.splice(idx, 1);
ally.army -= chosenCountry.army;
chosenCountry.owner = this.player.name;
chosenCountry.color = this.player.color;
this.player.areas.push(chosenCountry.name);
this.player.army += chosenCountry.army;
this.player.commander.loc = chosenCountry.name;
this.player.commander.isConverting = false;
this.showAllyResponse(`[ ${ally.name.toUpperCase()} ]`, `Hang on! We are evacuating ${formatTerritoryName(chosenCountry.name)} and transferring control to your forces. Get your Commander there now!`, '#39ff14');
if(this.logAction) this.logAction(`[ ASYLUM GRANTED ] ${ally.name} ceded ${formatTerritoryName(chosenCountry.name)} to you.`, true);
this.updateInfo();
this.drawMapText();
}
};
}
// Toggle button visibility based on whether player is exiled
if (this.player.areas.length === 0) {
asylumBtn.style.display = 'block';
document.getElementById('signal-type-attack').style.display = 'none';
document.getElementById('signal-type-defend').style.display = 'none';
document.getElementById('signal-type-intent').style.display = 'none';
} else {
asylumBtn.style.display = 'none';
document.getElementById('signal-type-attack').style.display = 'block';
document.getElementById('signal-type-defend').style.display = 'block';
document.getElementById('signal-type-intent').style.display = 'block';
}
// --- END ASYLUM INJECTION ---
const setStageAndClose = (stage, message) => {
this.stage = stage;
if (turnInfoMessage) turnInfoMessage.textContent = message;
this.updateButtonText();
modal.style.display = 'none';
};
document.getElementById('signal-type-attack').onclick = () => setStageAndClose('Pinging_Attack', 'Select an enemy territory for your ally to attack.');
document.getElementById('signal-type-defend').onclick = () => setStageAndClose('Pinging_Defend', 'Select a friendly territory to request reinforcements.');
document.getElementById('signal-type-intent').onclick = () => setStageAndClose('Pinging_Intent', 'Select an enemy territory to signal your attack intent.');
document.getElementById('signal-type-cancel').onclick = () => { modal.style.display = 'none'; };
modal.style.display = 'flex';
}
// --- NEW: ALLY RESPONSE MODAL ---
Gamestate.showAllyResponse = function(title, message, color) {
const modal = document.getElementById('ally-response-modal');
const titleEl = document.getElementById('ally-response-title');
const msgEl = document.getElementById('ally-response-message');
const okBtn = document.getElementById('ally-response-ok');
titleEl.textContent = title;
titleEl.style.color = color;
titleEl.style.borderColor = color;
msgEl.innerHTML = message;
// Clone and replace button to remove old event listeners
let newOkBtn = okBtn.cloneNode(true);
okBtn.parentNode.replaceChild(newOkBtn, okBtn);
newOkBtn.onclick = () => { modal.style.display = 'none'; };
modal.style.display = 'flex';
}
Gamestate.showManeuverModal = function (min, max, targetName) {
return new Promise((resolve) => {
let modal = document.getElementById('maneuver-modal');
document.getElementById('maneuver-message').textContent = `How many troops to move to ${targetName}?`;
let slider = document.getElementById('maneuver-slider');
slider.min = min;
slider.max = max;
slider.value = max; // Default to maximum available
document.getElementById('maneuver-val').textContent = max;
slider.oninput = function () { document.getElementById('maneuver-val').textContent = this.value; };
modal.style.display = 'flex';
let confirmBtn = document.getElementById('maneuver-confirm');
let cancelBtn = document.getElementById('maneuver-cancel');
let newConfirm = confirmBtn.cloneNode(true);
let newCancel = cancelBtn.cloneNode(true);
confirmBtn.parentNode.replaceChild(newConfirm, confirmBtn);
cancelBtn.parentNode.replaceChild(newCancel, cancelBtn);
newConfirm.onclick = () => {
modal.style.display = 'none';
resolve(parseInt(slider.value));
};
newCancel.onclick = () => {
modal.style.display = 'none';
resolve(null); // Returns null if they cancel
};
});
}
Gamestate.showMoveModal = function (min, max, targetName) {
return new Promise((resolve) => {
let modal = document.getElementById('move-modal');
document.getElementById('move-message').textContent = `Victory! Assign garrison for ${targetName}.`;
let slider = document.getElementById('move-slider');
slider.min = min;
slider.max = max;
slider.value = max; // Default to moving maximum troops
document.getElementById('move-val').textContent = max;
slider.oninput = function () { document.getElementById('move-val').textContent = this.value; };
modal.style.display = 'flex';
let confirmBtn = document.getElementById('move-confirm');
let newConfirm = confirmBtn.cloneNode(true);
confirmBtn.parentNode.replaceChild(newConfirm, confirmBtn);
newConfirm.onclick = () => {
modal.style.display = 'none';
resolve(parseInt(slider.value));
};
});
}
Gamestate.showTacticalModal = function (cmdrName, territoryName, isPurge = false) {
return new Promise((resolve) => {
let modal = document.getElementById('tactical-modal');
let msgEl = document.getElementById('tactical-message');
let btn1 = document.getElementById('tactical-assault-btn');
let btn2 = document.getElementById('tactical-ambush-btn');
// Dynamically change the text based on where the Commander is!
if (isPurge) {
msgEl.innerHTML = `Enemy Commander <span style="color: #ff3333; font-weight: bold;">${cmdrName}</span> is trespassing inside your borders at <span style="color: var(--pip-color); font-weight: bold;">${territoryName}</span>!`;
btn1.textContent = "SELECT TERRITORY (Stand By)";
btn2.textContent = "INTERNAL PURGE (Execute Trespasser)";
} else {
msgEl.innerHTML = `Enemy Commander <span style="color: #ff3333; font-weight: bold;">${cmdrName}</span> is cornered in <span style="color: var(--pip-color); font-weight: bold;">${territoryName}</span>. Select your target.`;
btn1.textContent = "ASSAULT GARRISON (Standard Combat)";
btn2.textContent = "AMBUSH COMMANDER (Suppressive Fire)";
}
modal.style.display = 'flex';
let cancelBtn = document.getElementById('tactical-cancel-btn');
let newBtn1 = btn1.cloneNode(true);
let newBtn2 = btn2.cloneNode(true);
let newCancel = cancelBtn.cloneNode(true);
btn1.parentNode.replaceChild(newBtn1, btn1);
btn2.parentNode.replaceChild(newBtn2, btn2);
cancelBtn.parentNode.replaceChild(newCancel, cancelBtn);
newBtn1.onclick = () => { modal.style.display = 'none'; resolve("assault"); };
newBtn2.onclick = () => { modal.style.display = 'none'; resolve("ambush"); };
newCancel.onclick = () => { modal.style.display = 'none'; resolve("cancel"); };
});
}
Gamestate.breakTruce = function (attackerName, defenderName) {
for (let i = this.diplomacy.truces.length - 1; i >= 0; i--) {
let t = this.diplomacy.truces[i];
if ((t.f1 === attackerName && t.f2 === defenderName) || (t.f1 === defenderName && t.f2 === attackerName)) this.diplomacy.truces.splice(i, 1);
}
if (!this.diplomacy.grudges[defenderName]) this.diplomacy.grudges[defenderName] = [];
this.diplomacy.grudges[defenderName].push(attackerName);
if (this.diplomacy.betrayalTax[attackerName] === undefined) this.diplomacy.betrayalTax[attackerName] = 0;
this.diplomacy.betrayalTax[attackerName] += 1;
this.diplomacy.spiteTarget = attackerName; this.diplomacy.spiteTurns = 3;
this.logAction(`[ BETRAYAL ] ${attackerName} has backstabbed their ally ${defenderName}! Wasteland Karma plummets...`, true);
this.logAction(`[ SPITE ALLIANCE ] Global bounty issued against ${attackerName} for 3 rounds!`, true);
this.updateInfo();
}
// --- CENTRAL NOTIFICATION QUEUE ---
Gamestate.toastQueue = [];
Gamestate.isToastActive = false;
Gamestate.queueToast = function (htmlContent, bgColor = "var(--pip-color)", priority = false) {
const toastData = { html: htmlContent, color: bgColor };
if (priority) {
this.toastQueue.unshift(toastData); // Priority items jump to the front
} else {
this.toastQueue.push(toastData); // Standard items go to the back
}
this.processToastQueue();
};
Gamestate.processToastQueue = function () {
// 1. If a toast is currently animating on screen, do nothing and wait.
if (this.isToastActive) return;
// 2. If the queue is empty, do nothing.
if (this.toastQueue.length === 0) return;
// 3. CRITICAL PAUSE CHECK: If ANY modal is open, wait 500ms and try again.
// This stops alerts from drawing over Envoy, Tactical, or Betrayal screens.
if (this.modalIsOpen) {
setTimeout(() => { this.processToastQueue(); }, 500);
return;
}
// 4. Screen is clear. Lock the queue and grab the next message.
this.isToastActive = true;
const nextToast = this.toastQueue.shift();
const container = document.getElementById("toast-container");
if (!container) {
this.isToastActive = false;
return;
}
// 5. Build the HTML Element
const toastEl = document.createElement("div");
toastEl.className = "dynamic-toast";
toastEl.innerHTML = nextToast.html + '<span class="blinking-cursor">_</span>';
// Apply styling based on priority/type
if (nextToast.color === "red" || nextToast.color === "#ff3333") {
toastEl.classList.add("nuke-alert");
} else {
toastEl.style.backgroundColor = nextToast.color;
toastEl.style.color = "var(--pip-dark)";
toastEl.style.textShadow = "none";
}
container.appendChild(toastEl);
// 6. Animate In
setTimeout(() => {
toastEl.classList.add("show");
}, 50);
// 7. Animate Out and Unlock Queue
setTimeout(() => {
toastEl.classList.remove("show");
// Wait for CSS fade-out to finish before deleting
setTimeout(() => {
if (toastEl.parentNode) toastEl.parentNode.removeChild(toastEl);
// Unlock the queue and immediately check for the next message
this.isToastActive = false;
this.processToastQueue();
}, 400);
}, 2700); // Alert stays on screen for 2.7 seconds
};
Gamestate.showToast = function (message, bgColor = "var(--pip-color)") {
// Determine text color based on background for contrast
let textColor = "var(--pip-dark)";
if (bgColor === "red" || bgColor === "#ff3333" || bgColor === "#222") {
textColor = "#ffffff";
}
let toast = document.getElementById("toast");
if (toast) {
toast.textContent = message;
toast.style.backgroundColor = bgColor;
toast.style.color = textColor;
toast.style.textShadow = "none"; // Ensure no glow on solid backgrounds
toast.className = "toast show";
if (this.toastTimeout) clearTimeout(this.toastTimeout);
this.toastTimeout = setTimeout(function () { toast.className = toast.className.replace("show", ""); }, 3500);
}
}
Gamestate.handleClick = function (e) {
if (this.aiTurn || this.modalIsOpen) return;
// --- NEW: Spontaneous Map Encounter Trigger (3% chance per click) ---
// Only allowed if encounters are enabled, we are NOT mid-attack, we aren't targeting a nuke, AND we are past Turn 3
if (this.encountersEnabled && this.turn > 3 && Math.random() < 0.03) {
if (this.stage !== "Battle" || !this.prevCountry) {
if (this.stage !== "Nuke Targeting" && this.stage !== "Frenzy Targeting") {
this.resolveCreatureEncounter();
return; // Stop the click action so the modal takes priority
}
}
}
// --- RELIC TARGETING HANDLER ---
if (this.targetingMode === 'relic' && this.pendingRelic) {
const countryId = e.target.id;
const country = this.countries.find(c => c.name === countryId);
if (country) {
this.applyRelicEffect(this.pendingRelic, country);
this.targetingMode = null;
this.pendingRelic = null;
document.body.style.cursor = 'default';
return; // Block other map actions while targeting
}
}
// --- NEW: INITIAL PLACEMENT HANDLERS ---
if (this.stage === "Initial Claim") {
let country = this.countries.find(c => c.name === e.target.id);
if (!country || country.isCrater || country.isSilo || country.owner !== "none") {
if (this.showToast) this.showToast("Select an unowned territory.", "grey");
return;
}
country.owner = this.player.name;
country.color = this.player.color;
country.army = 1;
this.player.areas.push(country.name);
this.player.army++;
this.player.reserve--;
let el = document.getElementById(country.name);
if (el) el.style.fill = this.player.color;
this.logAction(`[ CLAIM ] You claimed ${formatTerritoryName(country.name)}.`);
this.setupPlayerIndex++; // Pass the turn to the next player
if (this.processInitialPlacement) this.processInitialPlacement();
return;
} else if (this.stage === "Initial Reinforce") {
let country = this.countries.find(c => c.name === e.target.id);
if (!country || country.isCrater || country.owner !== this.player.name) {
if (this.showToast) this.showToast("Select your own territory to reinforce.", "grey");
return;
}
if (this.player.reserve <= 0) return;
// Place 1 troop per click during setup
country.army++;
this.player.army++;
this.player.reserve--;
// --- FIX: Use drawMapText to respect fog ---
if (this.drawMapText) this.drawMapText();
// Do not await the log here so it doesn't block the UI
this.logAction(`[ DEPLOYMENT ] You deployed 1 troop to ${formatTerritoryName(country.name)}.`);
this.setupPlayerIndex++; // Pass the turn to the next player
if (this.processInitialPlacement) this.processInitialPlacement();
return;
} else if (this.stage === "Initial Commander") {
let country = this.countries.find(c => c.name === e.target.id);
if (!country || country.isCrater || country.owner !== this.player.name) {
if (this.showToast) this.showToast("Select your own territory to deploy your Commander.", "grey");
return;
}
this.player.commander.loc = country.name;
if (this.drawMapText) this.drawMapText();
this.logAction(`[ DEPLOYMENT ] You deployed your Commander to ${formatTerritoryName(country.name)}.`);
if (this.processInitialPlacement) this.processInitialPlacement();
return;
}
// --- STANDARD GAME HANDLERS ---
if (this.stage === "Fortify") {
this.addArmy(e);
} else if (this.stage === "Battle" || this.stage === "Frenzy Targeting") {
this.attack(e);
} else if (this.stage === "Maneuver" || this.stage === "Commander Phase") {
this.maneuver(e);
} else if (this.stage === "Nuke Targeting") {
this.targetNuke(e);
} else if (this.stage.startsWith('Pinging_')) {
const country = this.countries.find(c => c.name === e.target.id);
if (!country) return;
const ally = this.players.find(p => p.team === this.player.team && !p.isPlayer);
if (!ally) return;
const action = this.stage.split('_')[1];
if (action === 'Attack') {
if (country.owner === this.player.name || this.areAllies(this.player.name, country.owner)) {
if(this.showToast) this.showToast("Invalid Target. Select an enemy territory.", "red");
return;
}
this.logDebug(`Player sent 'Attack' ping to ${ally.name} for target ${formatTerritoryName(country.name)}.`);
let strength = 0;
ally.areas.forEach(a => {
const sourceCountry = this.countries.find(c => c.name === a);
if (sourceCountry && sourceCountry.neighbours.includes(country.name) && sourceCountry.army > 1) strength += sourceCountry.army;
});
if (strength > country.army * 1.5) {
ally.attackTarget = country.name;
this.showAllyResponse(`[ ${ally.name.toUpperCase()} ]`, `We will support your assault on <strong>${formatTerritoryName(country.name)}</strong>. Moving forces now.`, '#39ff14');
} else {
this.showAllyResponse(`[ ${ally.name.toUpperCase()} ]`, `Negative. Our forces are too weak or distant to effectively support an attack on <strong>${formatTerritoryName(country.name)}</strong>.`, '#ffcc00');
}
}
else if (action === 'Defend') {
if (country.owner !== this.player.name) {
if(this.showToast) this.showToast("Invalid Target. Select a friendly territory.", "red");
return;
}
this.logDebug(`Player sent 'Defend' ping to ${ally.name} for target ${formatTerritoryName(country.name)}.`);
const troopsToGive = 5;
if (ally.reserve >= troopsToGive) {
ally.reserve -= troopsToGive; this.player.reserve += troopsToGive;
this.showAllyResponse(`[ ${ally.name.toUpperCase()} ]`, `Acknowledged. We are dispatching <strong>${troopsToGive} troops</strong> to your reserve pool immediately.`, '#39ff14');
if(this.updateInfo) this.updateInfo();
} else {
this.showAllyResponse(`[ ${ally.name.toUpperCase()} ]`, `Negative. We have insufficient troops in reserve to provide support.`, '#ffcc00');
}
}
else if (action === 'Intent') {
if (country.owner === this.player.name || this.areAllies(this.player.name, country.owner)) {
if(this.showToast) this.showToast("Invalid Target. Select an enemy territory.", "red");
return;
}
ally.allyAttackTarget = country.name;
this.showAllyResponse(`[ TRANSMISSION SENT ]`, `Your intent to attack <strong>${formatTerritoryName(country.name)}</strong> has been signaled to your ally.`, '#39ff14');
}
this.stage = 'Battle'; this.updateButtonText();
}
}
Gamestate.win = function (player) {
if (winMessage) {
winMessage.textContent = player.name;
winMessage.style.color = player.color;
// Ensure the sub-message says they dominated
let subMsg = winMessage.nextElementSibling;
if (subMsg && subMsg.tagName === 'P') {
subMsg.textContent = "HAS DOMINATED THE WASTELAND!";
}
}
if (winModal) winModal.style.display = "block";
}
Gamestate.restart = function () {
window.location.reload();
}
// --- INTEL ANIMATION LOGIC ---
Gamestate.intelAnimationTimer = null; // This will hold the animation timer
Gamestate.startIntelAnimation = function () {
// Clear any existing animation timer to prevent it from speeding up on game restarts.
if (this.intelAnimationTimer) {
clearInterval(this.intelAnimationTimer);
}
const spinnerChars = ['\\', '|', '/', '—'];
let frame = 0;
const searchDuration = 8; // How many frames the spinner animation will run
const pauseDuration = 20; // How many frames the '?' will be displayed before looping
this.intelAnimationTimer = setInterval(() => {
// Find all the elements we need to animate
const incomeSpinners = document.querySelectorAll('.intel-spinner-income');
const mainSpinners = document.querySelectorAll('.intel-spinner-main');
if (incomeSpinners.length === 0 && mainSpinners.length === 0) return; // Exit if nothing to animate
const currentCycleFrame = frame % (searchDuration + pauseDuration);
if (currentCycleFrame < searchDuration) {
// "Searching" Phase: Show the spinner characters
const char = spinnerChars[currentCycleFrame % spinnerChars.length];
incomeSpinners.forEach(el => { el.textContent = char; });
mainSpinners.forEach(el => { el.textContent = char; });
} else {
// "Display" Phase: Show the question marks
incomeSpinners.forEach(el => { el.textContent = '??'; });
mainSpinners.forEach(el => { el.textContent = '??'; });
}
frame++;
}, 150); // Animation speed in milliseconds (lower is faster)
};
Gamestate.updateInfo = function () {
if (turnInfo) turnInfo.textContent = this.stage;
let totalArmy = 0; this.players.forEach(player => { totalArmy += player.army });
// --- FINAL & DEFINITIVE PLAYER INFO LOGIC (REVISED) ---
// FIX: Ensure only the player's own Intelligence bobblehead lifts the fog
const iBobbleActive = this.bobbleheads && this.bobbleheads.find(b => b.key === 'i' && b.active && b.owner === this.player.name);
this.players.forEach((player, i) => {
let infoBox = infoName[i] ? infoName[i].parentElement : null;
if (!infoBox) return;
// --- Get UI Elements (instead of creating them) ---
let leaderEl = infoBox.querySelector('.leader');
let countryEl = infoBox.querySelector('.country');
let incomeContainer = infoBox.querySelector('.income-label');
let capsEl = infoBox.querySelector('.caps-display');
let barEl = infoBox.querySelector('.bar');
if (player.alive) {
infoBox.classList.remove('defeated');
// --- FIX: Force the player's card to highlight on their turn ---
if (player.isPlayer) {
if (!this.aiTurn) infoBox.classList.add('highlight');
else infoBox.classList.remove('highlight');
}
const fogEnabled = document.getElementById('opt-fog-of-war') && document.getElementById('opt-fog-of-war').checked && !Gamestate.devFogLifted;
const hasIntel = !fogEnabled || player.name === this.player.name || iBobbleActive || (this.isAllianceMode && player.team === this.player.team) || (this.diplomacy.reputation[player.name] && this.diplomacy.reputation[player.name][this.player.name] >= 10);
// --- Player Name (Bold) ---
if (leaderEl) {
let levelSuffix = (this.levelingEnabled && player.level) ? ` <span style="font-size: 0.85em; opacity: 0.7; font-weight:normal;">(Lvl ${player.level})</span>` : "";
let dogmeatSuffix = "";
if (player.dogmeatStatus === 'healthy') {
dogmeatSuffix = ` <span class="paw-icon" title="Companion Active"></span>`;
} else if (player.dogmeatStatus === 'injured') {
dogmeatSuffix = ` <span class="paw-icon" style="opacity: 0.5; filter: grayscale(100%);" title="Companion Injured"></span>`;
}
leaderEl.innerHTML = player.name + dogmeatSuffix + levelSuffix;
}
// --- Faction Name & Reputation ---
if (countryEl) {
let countryHtml = player.country;
// NEW: Add Text Label in Alliance Mode
if (this.isAllianceMode && !player.isNeutral) {
// Find who this player is allied with
let ally = this.players.find(p => p.team === player.team && p.name !== player.name && !p.isNeutral);
if (ally) {
// Append it on a new line, slightly smaller and faded
countryHtml += `<br><span style="font-size: 0.85em; opacity: 0.8;">(Allied with ${ally.name})</span>`;
}
}
// Standard Reputation Display (Hidden in Alliance Mode)
else if (!player.isNeutral && player.name !== this.player.name) {
let rep = this.diplomacy.reputation[player.name]?.[this.player.name] || 0;
let repText = "NEUTRAL";
if (rep >= 35) { repText = "IDOLIZED"; }
else if (rep >= 10) { repText = "LIKED"; }
else if (rep <= -35) { repText = "HATED"; }
else if (rep <= -10) { repText = "HOSTILE"; }
// ---> CHANGED: AI Truce visibility logic
let aiTruces = this.diplomacy.truces.filter(t => t.f1 === player.name || t.f2 === player.name);
let allyNames = aiTruces.map(t => t.f1 === player.name ? t.f2 : t.f1).join(", ");
if (allyNames.length > 0) {
countryHtml += `<br><span style="font-size: 0.85em; opacity: 0.8; color: #0088ff;">[ALLIED: ${allyNames}]</span>`;
} else {
countryHtml += ` (${repText})`;
}
}
countryEl.innerHTML = countryHtml;
// --- NEW: HIDE AI FACTION NAME ON MOBILE ---
if (window.innerWidth <= 950 && !player.isPlayer) {
countryEl.style.display = "none";
} else {
countryEl.style.display = "block";
}
}
// Hide the old income-label
if (incomeContainer) incomeContainer.style.display = "none";
// --- Stats Area (Single, Well-Spaced Line) ---
if (player.isNeutral) {
if (incomeContainer) incomeContainer.style.display = "none";
if (capsEl) capsEl.style.display = "none";
} else {
// Your existing spinner definitions, which are correct.
const spinnerIncome = `<span class="intel-spinner-income">??</span>`;
const spinnerMain = `<span class="intel-spinner-main">??</span>`;
const spinnerCodes = `<span class="spinner-codes">??</span>`;
// --- THIS IS THE FIX ---
// We wrap the real value OR the spinner span inside our new 'stat-slot' span.
let supplyVal = hasIntel
? `<span class="stat-slot">${player.bonus}</span>`
: `<span class="stat-slot">${spinnerIncome}</span>`;
let capsVal = hasIntel
? `<span class="stat-slot">${player.cards.length}</span>`
: `<span class="stat-slot">${spinnerMain}</span>`;
// Build the complete string with proper spacing
let combinedStats = `Supply: ${supplyVal} | Caps: ${capsVal}`;
if (this.nukesEnabled) {
let nukesVal = hasIntel
? `<span class="stat-slot">${player.codes || 0}</span>`
: `<span class="stat-slot">${spinnerCodes}</span>`;
combinedStats += ` | Codes: ${nukesVal}`;
}
// --- THIS IS THE NEW ECONOMY/CLASSIC DISPLAY LOGIC ---
if (this.wastelandEconomyActive) {
let capsDisplay = hasIntel ? `<span class="stat-slot">${player.caps}</span>` : `<span class="intel-spinner-main">??</span>`;
let econString = `Caps: ${capsDisplay}`;
if (this.nukesEnabled) {
let nukesVal = hasIntel ? `<span class="stat-slot">${player.codes || 0}</span>` : `<span class="spinner-codes">??</span>`;
econString += ` | Codes: ${nukesVal}`;
}
if (incomeContainer) {
incomeContainer.innerHTML = econString;
incomeContainer.style.display = "block";
}
if (capsEl) capsEl.style.display = "none";
} else {
// Original logic for classic mode
if (incomeContainer) {
incomeContainer.innerHTML = combinedStats;
incomeContainer.style.display = "block";
}
if (capsEl) {
capsEl.style.display = "none";
}
}
}
// --- Bar and Diplomacy Button ---
if (barEl) {
barEl.style.width = (player.army / Math.max(totalArmy, 1)) * 100 + '%';
barEl.style.marginTop = '12px'; // Double space
}
// --- NEW: PLAYER COLOR IDENTIFIER & ALLIANCE STATUS ---
let colorBar = infoBox.querySelector('.player-color-bar');
if (!colorBar) {
colorBar = document.createElement('button'); // --- FIX: Create as a button to perfectly match AI dimensions
// Give it the exact same CSS class as the standard buttons!
colorBar.className = 'btn-diplomacy player-color-bar';
infoBox.appendChild(colorBar);
}
if (player.name === this.player.name) {
colorBar.style.display = "block";
colorBar.style.backgroundColor = player.color;
colorBar.style.color = "#000";
colorBar.style.border = "1px solid var(--pip-color)";
colorBar.style.pointerEvents = "none"; // Make it non-clickable
// Keep text to one line safely
colorBar.style.whiteSpace = "nowrap";
colorBar.style.overflow = "hidden";
colorBar.style.textOverflow = "ellipsis";
let statusText = "NO ALLIANCES";
if (this.isAllianceMode) {
let ally = this.players.find(p => p.team === this.player.team && p.name !== this.player.name && !p.isNeutral);
if (ally && ally.alive) {
statusText = `ALLIED: ${ally.name}`;
} else {
statusText = `ALLIANCE SEVERED`;
}
} else {
let myTruce = this.diplomacy.truces.find(t => t.f1 === this.player.name || t.f2 === this.player.name);
if (myTruce) {
let allyName = myTruce.f1 === this.player.name ? myTruce.f2 : myTruce.f1;
statusText = `TRUCE: ${allyName} (${myTruce.turns}T)`;
}
}
colorBar.textContent = statusText;
} else {
colorBar.style.display = "none";
}
// --- FINAL BUTTON LOGIC FOR DIPLOMACY & ALLIANCE ---
// FIX: Exclude the player-color-bar so we don't accidentally hide it!
let dipBtn = infoBox.querySelector('button.btn-diplomacy:not(.player-color-bar)');
// First, a universal rule: no buttons for the player, dead/neutral factions.
if ((player.name === this.player.name) || player.isNeutral || player.areas.length === 0) {
if (dipBtn) dipBtn.style.display = "none";
}
// If we are in Alliance Mode...
else if (this.isAllianceMode) {
// And this player is our ally...
if (player.team === this.player.team) {
if (!dipBtn) {
dipBtn = document.createElement('button');
dipBtn.className = 'btn-diplomacy';
infoBox.appendChild(dipBtn);
}
dipBtn.style.display = "block";
dipBtn.textContent = `Signal Ally`;
dipBtn.disabled = this.aiTurn;
dipBtn.style.backgroundColor = "";
dipBtn.style.color = "#39ff14";
dipBtn.style.borderColor = "#39ff14";
dipBtn.onclick = () => {
this.showSignalTypeModal();
};
}
// Otherwise (they are an enemy in Alliance Mode), show no button.
else {
if (dipBtn) dipBtn.style.display = "none";
}
}
// If we are in a standard (non-Alliance) mode...
else {
if (!dipBtn) {
dipBtn = document.createElement('button');
dipBtn.className = 'btn-diplomacy';
infoBox.appendChild(dipBtn);
}
dipBtn.style.display = "block";
let myTruces = this.diplomacy.truces.filter(t => t.f1 === this.player.name || t.f2 === this.player.name).length;
let theirTruces = this.diplomacy.truces.filter(t => t.f1 === player.name || t.f2 === player.name).length;
// Show truce status if they are a temporary ally
if (this.areAllies(this.player.name, player.name)) {
let t = this.getTruce(this.player.name, player.name);
let turnsLeft = t ? t.turns : "?";
dipBtn.textContent = `ALLIED: ${turnsLeft} TURNS`;
dipBtn.disabled = true;
dipBtn.style.backgroundColor = player.color;
dipBtn.style.color = "#000";
}
// If player already has an active truce with someone else
else if (myTruces >= 1) {
dipBtn.textContent = "MAX ALLIANCES REACHED";
dipBtn.disabled = true;
dipBtn.style.backgroundColor = player.color;
dipBtn.style.color = "#000";
}
// If target AI already has an active truce with someone else
else if (theirTruces >= 1) {
dipBtn.textContent = "TARGET ALREADY ALLIED";
dipBtn.disabled = true;
dipBtn.style.backgroundColor = player.color;
dipBtn.style.color = "#000";
}
// Otherwise, show the standard diplomacy button
else {
dipBtn.textContent = "Initiate Trade/Truce";
dipBtn.disabled = false;
dipBtn.style.backgroundColor = player.color;
dipBtn.style.color = "#000";
dipBtn.onclick = () => {
this.openDiplomacy(player.name);
};
}
}
} else {
// --- Dead Player Logic ---
infoBox.classList.add('defeated');
if (leaderEl) leaderEl.innerHTML = `<del>${player.name}</del>`;
if (countryEl) countryEl.innerHTML = `<del>${player.country}</del>`;
if (incomeContainer) incomeContainer.innerHTML = 'OFFLINE';
if (capsEl) capsEl.style.display = "none";
if (barEl) barEl.style.width = "0px";
let existingBtn = infoBox.querySelector('.btn-diplomacy');
if (existingBtn) existingBtn.style.display = "none";
}
// FIX: Order by turn (their index in the array) instead of army size
infoBox.style.order = i;
});
// NEW: Check Turbo status and apply a global class to control the sliding animations
let turbo = document.getElementById('turbo-toggle') && document.getElementById('turbo-toggle').checked;
if (turbo) {
document.body.classList.add('turbo-active');
} else {
document.body.classList.remove('turbo-active');
}
// --- The rest of the original function remains the same... ---
if (this.players.length === 6 && infoName[6] && infoName[6].parentElement) infoName[6].parentElement.style.display = "none";
let helpBtnEl = document.getElementById('help-btn'); if (helpBtnEl) helpBtnEl.style.order = "998";
let restartBtn = document.getElementById('restart'); if (restartBtn) restartBtn.style.order = "999";
let cardCount = document.getElementById('card-count');
if (cardCount) {
if (this.wastelandEconomyActive) {
cardCount.textContent = this.player.caps; // Show currency
} else {
cardCount.textContent = this.player.cards.length; // Show card count
}
}
if (reserveDisplay) reserveDisplay.innerHTML = this.player.reserve;
let viewCardsBtn = document.getElementById('view-cards-btn');
if (viewCardsBtn) {
if (this.wastelandEconomyActive) {
viewCardsBtn.textContent = "RECRUITMENT";
const troopCost = 5;
const canAfford = this.player.caps >= troopCost;
// --- FIX: Allow recruitment during BOTH Recruitment and Fortify phases! ---
const isEnabled = ((this.stage === 'Recruitment' || this.stage === 'Fortify') && canAfford && !this.aiTurn);
viewCardsBtn.disabled = !isEnabled;
viewCardsBtn.style.opacity = isEnabled ? "1" : "0.5";
viewCardsBtn.style.pointerEvents = isEnabled ? "auto" : "none";
viewCardsBtn.classList.remove('ready-to-trade');
viewCardsBtn.onclick = () => {
if ((this.stage === 'Recruitment' || this.stage === 'Fortify') && !this.aiTurn) {
this.showRecruitmentModal();
}
};
} else {
// --- FIX: Dynamic Button Text for Stash ---
let isValidPhase = (this.stage === "Fortify" || this.stage === "Recruitment");
let hasSet = this.getBestTrade(this.player.cards);
let canTrade = hasSet && !this.aiTurn && isValidPhase;
if (canTrade) {
viewCardsBtn.textContent = "OPEN STASH";
viewCardsBtn.disabled = false;
viewCardsBtn.style.opacity = "1";
viewCardsBtn.style.pointerEvents = "auto";
viewCardsBtn.classList.add('ready-to-trade');
} else {
if (hasSet) {
viewCardsBtn.textContent = "WRONG PHASE";
} else {
viewCardsBtn.textContent = this.player.cards.length > 0 ? "NO ELIGIBLE SETS" : "STASH EMPTY";
}
viewCardsBtn.disabled = true;
viewCardsBtn.style.opacity = "0.5";
viewCardsBtn.style.pointerEvents = "none";
viewCardsBtn.classList.remove('ready-to-trade');
}
// We also need to make sure the onclick is securely locked.
viewCardsBtn.onclick = () => {
if (this.aiTurn || !isValidPhase) return;
let cardsModal = document.getElementById('cards-modal');
if (cardsModal) cardsModal.style.display = 'flex';
this.renderCards();
};
}
}
let hpFill = document.getElementById('hp-fill'); let apFill = document.getElementById('ap-fill');
if (hpFill && apFill && totalArmy > 0 && this.player.alive) {
let hpPercentage = Math.min(100, (this.player.areas.length / 24) * 100); hpFill.style.width = hpPercentage + "%";
if (this.player.areas.length <= 5) { hpFill.style.background = "#ff0000"; hpFill.style.boxShadow = "0 0 10px rgba(255, 0, 0, 0.8)"; }
else { hpFill.style.background = "var(--pip-color)"; hpFill.style.boxShadow = "var(--pip-glow)"; }
let apPercentage = 0;
if (this.stage === "Fortify") {
let maxReserve = Math.max(this.player.reserve + this.playerTroopsPlaced, 1); apPercentage = (this.player.reserve / maxReserve) * 100;
} else if (this.stage === "Battle") {
let currentStrikeForce = 0; let validAttacks = 0; let ownedTerritories = this.countries.filter(c => c.owner === this.player.name);
ownedTerritories.forEach(t => {
if (t.army > 1 && !t.isExploring) {
let hasEnemyNeighbor = t.neighbours.some(n => { let nc = this.countries.find(x => x.name === n); return nc && nc.owner !== this.player.name && !nc.isCrater; });
if (hasEnemyNeighbor) { currentStrikeForce += (t.army - 1); validAttacks++; }
}
});
if (validAttacks === 0) apPercentage = 0;
else {
if (this.lastStage !== "Battle") this.initialStrikeForce = currentStrikeForce;
if (currentStrikeForce > (this.initialStrikeForce || 1)) this.initialStrikeForce = currentStrikeForce;
apPercentage = Math.min(100, (currentStrikeForce / Math.max(this.initialStrikeForce, 1)) * 100);
}
} else if (this.stage === "Maneuver") {
let canManeuver = false; let ownedTerritories = this.countries.filter(c => c.owner === this.player.name);
for (let t of ownedTerritories) { if (t.army > 1 && !t.isExploring && t.neighbours.some(n => { let nc = this.countries.find(x => x.name === n); return nc && nc.owner === this.player.name; })) { canManeuver = true; break; } }
apPercentage = canManeuver ? (this.maneuverSource ? 0 : 100) : 0;
} else if (this.stage === "Commander Phase" && this.commandersEnabled && this.player.commander) {
apPercentage = (this.player.commander.ap / 2) * 100;
} else apPercentage = 0;
apFill.style.width = apPercentage + "%";
if (apPercentage <= 0) { apFill.style.opacity = "0"; apFill.style.visibility = "hidden"; } else { apFill.style.opacity = "1"; apFill.style.visibility = "visible"; }
if (hpPercentage <= 0) { hpFill.style.opacity = "0"; hpFill.style.visibility = "hidden"; } else { hpFill.style.opacity = "1"; hpFill.style.visibility = "visible"; }
// --- FIX: DYNAMIC AP CURSOR ---
let isValidPhase = (this.stage === "Battle" || this.stage === "Maneuver" || this.stage === "Commander Phase");
if (apPercentage > 0 && isValidPhase) {
apFill.parentElement.style.cursor = "pointer";
apFill.parentElement.title = "Ping Available Actions";
} else {
apFill.parentElement.style.cursor = "not-allowed";
apFill.parentElement.title = "No actions available";
}
// --- END FIX ---
} else if (!this.player.alive && hpFill && apFill) {
hpFill.style.width = "0%"; hpFill.style.opacity = "0"; hpFill.style.visibility = "hidden";
apFill.style.width = "0%"; apFill.style.opacity = "0"; apFill.style.visibility = "hidden";
}
// --- FIX: Lift fog during initial setup so players can see where to place troops ---
let isSetupPhase = this.stage === "Initial Claim" || this.stage === "Initial Reinforce";
// --- FIX: Fog of War applies during setup phases as requested ---
const fogEnabled = document.getElementById('opt-fog-of-war') && document.getElementById('opt-fog-of-war').checked && !Gamestate.devFogLifted;
const pBobbleActive = this.bobbleheads && this.bobbleheads.find(b => b.key === 'p' && b.active && b.owner === this.player.name);
const visibleTerritories = new Set();
if (fogEnabled && !pBobbleActive && this.player.alive) {
// --- NEW: Manual Mode Vision Exception ---
// During Manual Claiming, all empty grey lands are globally visible so players can draft them
if (this.stage === "Initial Claim") {
this.countries.forEach(c => {
if (c.owner === "none") visibleTerritories.add(c.name);
});
}
this.player.areas.forEach(a => visibleTerritories.add(a));
this.player.areas.forEach(areaName => {
const c = this.countries.find(x => x.name === areaName);
if (c) c.neighbours.forEach(n => visibleTerritories.add(n));
});
// --- CORRECTED: Add vision for permanent Alliance Mode teammates ---
const alliesWithVision = this.isAllianceMode
? this.players.filter(p => p.alive && !p.isNeutral && p.team === this.player.team && !p.isPlayer)
: this.players.filter(p => p.alive && !p.isNeutral && this.diplomacy.reputation[p.name]?.[this.player.name] >= 35);
// --- NEW: Add Commander Vision Bubble ---
if (this.commandersEnabled && this.player.commander) {
const cmdrLoc = this.player.commander.loc;
const cmdrCountry = this.countries.find(c => c.name === cmdrLoc);
if(cmdrCountry) {
visibleTerritories.add(cmdrLoc); // Add the commander's own tile
cmdrCountry.neighbours.forEach(n => visibleTerritories.add(n)); // Add all neighbors
}
}
// Loop through all vision-sharing allies and add their borders to your map
alliesWithVision.forEach(ally => {
ally.areas.forEach(a => visibleTerritories.add(a));
ally.areas.forEach(areaName => {
const c = this.countries.find(x => x.name === areaName);
if (c) c.neighbours.forEach(n => visibleTerritories.add(n));
});
// --- FIX: Add Ally Commander Vision for Exiled Factions ---
if (this.commandersEnabled && ally.commander && ally.commander.hp > 0) {
const cmdrLoc = ally.commander.loc;
visibleTerritories.add(cmdrLoc); // Reveal the tile they are standing on
const cmdrCountry = this.countries.find(x => x.name === cmdrLoc);
if (cmdrCountry) cmdrCountry.neighbours.forEach(n => visibleTerritories.add(n)); // Reveal adjacent tiles
}
});
// --- END OF VISION LOGIC ---
}
this.countries.forEach(country => {
let areaOnMap = document.getElementById(country.name);
if (areaOnMap) {
const isVisible = !fogEnabled || pBobbleActive || visibleTerritories.has(country.name) || !this.player.alive;
if (isVisible) {
areaOnMap.classList.remove('fog-shroud');
// --- FIX: Restore faction color when visible ---
areaOnMap.style.fill = country.color;
if (this.nukesEnabled && country.isSilo) { country.knownSilo = true; }
if (country.radDecay > 0) areaOnMap.classList.add('glowing-sea'); else areaOnMap.classList.remove('glowing-sea');
if (this.areAllies(this.player.name, country.owner)) areaOnMap.classList.add('allied-territory'); else areaOnMap.classList.remove('allied-territory');
if (country.isLockedDown) areaOnMap.classList.add('lockdown-territory');
} else {
areaOnMap.classList.add('fog-shroud');
// --- FIX: Strip faction color completely when shrouded ---
areaOnMap.style.fill = 'transparent';
areaOnMap.classList.remove('glowing-sea');
areaOnMap.classList.remove('allied-territory');
}
if (country.isCrater) {
areaOnMap.classList.add('crater');
areaOnMap.classList.remove('fog-shroud');
} else {
areaOnMap.classList.remove('crater');
}
}
});
if (this.radstorm && this.radstorm.areas) {
this.radstorm.areas.forEach(areaName => {
let el = document.getElementById(areaName);
if (el && !this.countries.find(c => c.name === areaName).isCrater) {
if (this.radstorm.state === 'warning') el.classList.add('radstorm-warning');
if (this.radstorm.state === 'active') el.classList.add('radstorm-active');
}
});
}
if (this.nukesEnabled) {
let hasSilo = this.countries.some(c => c.isSilo && c.owner === this.player.name);
document.getElementById('nuke-silo-status').textContent = hasSilo ? "SECURED" : "NO";
document.getElementById('nuke-silo-status').style.color = hasSilo ? "#18ff62" : "#ff3333";
let nukeBtn = document.getElementById('btn-launch-nuke');
nukeBtn.textContent = `NUKES: ${this.player.codes}/4 CODES`;
let myActiveNuke = this.activeNukes ? this.activeNukes.find(n => n.launcher === this.player.name) : null;
if (this.player.codes >= 4 && hasSilo && !myActiveNuke) {
nukeBtn.disabled = false; nukeBtn.classList.add('nuke-ready'); nukeBtn.textContent = "INITIATE LAUNCH";
} else if (myActiveNuke) {
nukeBtn.disabled = true; nukeBtn.classList.remove('nuke-ready'); nukeBtn.textContent = `LAUNCH IN T-${myActiveNuke.turns}`;
} else {
nukeBtn.disabled = true; nukeBtn.classList.remove('nuke-ready');
}
}
if (this.commandersEnabled && this.player.commander) {
let maxHP = 100 + (this.levelingEnabled && this.player.activeBuffs && this.player.activeBuffs.lifeGiver ? this.player.activeBuffs.lifeGiver * 25 : 0);
if (this.player.relics && this.player.relics.some(r => r.id === 'x01armor' && r.isEquipped)) maxHP += 50;
document.getElementById('cmdr-hp-text').textContent = `HP: ${this.player.commander.hp}/${maxHP}`;
document.getElementById('cmdr-ap-text').textContent = `AP: ${this.player.commander.ap}/2`;
let hpFill = document.getElementById('cmdr-hp-fill');
if (hpFill) {
hpFill.style.width = `${(this.player.commander.hp / maxHP) * 100}%`;
// --- NEW: Add a pulse animation for critical health ---
if (!document.getElementById('cmdr-hp-pulse-style')) {
let style = document.createElement('style');
style.id = 'cmdr-hp-pulse-style';
style.innerHTML = `@keyframes cmdr-pulse { 0% { opacity: 1; box-shadow: 0 0 10px #ff3333; } 100% { opacity: 0.7; box-shadow: 0 0 20px #ff0000; } }`;
document.head.appendChild(style);
}
// Dynamic HP Color (Red if <= 30, otherwise theme color)
if (this.player.commander.hp <= 30) {
hpFill.style.backgroundColor = "#ff3333";
hpFill.style.boxShadow = "0 0 10px #ff3333";
hpFill.style.animation = "cmdr-pulse 1s infinite alternate"; // Apply pulse
} else {
hpFill.style.animation = "none"; // Remove pulse
hpFill.style.backgroundColor = "var(--pip-color)";
hpFill.style.boxShadow = "0 0 10px var(--pip-color)";
}
}
let btnConvert = document.getElementById('btn-cmdr-convert');
if (btnConvert) {
let locCountry = this.countries.find(c => c.name === this.player.commander.loc);
let isHostileTerritory = locCountry && locCountry.owner !== this.player.name && !this.areAllies(this.player.name, locCountry.owner) && !locCountry.isCrater;
// Show the button if in the right phase and either converting OR in a valid spot to start
if (this.stage === "Commander Phase" && (this.player.commander.isConverting || isHostileTerritory)) {
btnConvert.style.display = "block";
if (this.player.commander.isConverting) {
let turnsLeft = 0;
let reqTurns = (this.levelingEnabled && this.player.activeBuffs && this.player.activeBuffs.infiltrator) ? 2 : 3;
if (locCountry.army > 0) {
turnsLeft = Math.ceil(locCountry.army / 10) + reqTurns; // Attrition turns + final turns
} else {
turnsLeft = reqTurns - (this.player.commander.siegeTurns || 0);
}
btnConvert.textContent = `CANCEL CONVERSION (${turnsLeft} T)`;
btnConvert.disabled = false;
} else {
btnConvert.textContent = "CONVERT TERRITORY";
btnConvert.disabled = (this.player.commander.ap < 1);
}
} else {
btnConvert.style.display = "none";
}
}
}
this.drawMapText(); this.lastStage = this.stage;
// --- ACTIONABLE PERK BUTTON LOGIC (v6 - Chem Frenzy Integration) ---
const perkButtonWrapper = document.getElementById('perk-button-wrapper');
const perkButton = document.getElementById('btn-perk-action');
const tooltip = document.getElementById('vats-tooltip');
if (perkButtonWrapper && perkButton && tooltip) {
let showButton = false;
let tooltipText = "";
let isButtonDisabled = false;
let isBuffActive = false; // --- NEW: Tracks if an active buff is running so the button keeps glowing
if (this.perksEnabled && this.player && this.player.perk && !this.aiTurn) {
// --- PERK 1: Wasteland Raiders ---
if (this.player.perk.id === 'chem_frenzy') {
showButton = true;
if (this.stage !== 'Battle') {
isButtonDisabled = true;
perkButton.textContent = "Use Chem Frenzy";
tooltipText = "Can only be used during the Battle Phase.";
} else if (this.player.chemFrenzyCooldown > 0) {
isButtonDisabled = true;
perkButton.textContent = "Frenzy on Cooldown (" + this.player.chemFrenzyCooldown + ")";
tooltipText = "You must wait " + this.player.chemFrenzyCooldown + " more turn(s) before using Chem Frenzy again.";
} else {
isButtonDisabled = false;
perkButton.textContent = "Use Chem Frenzy";
tooltipText = "Activate to select an attacking territory and sacrifice troops for a massive, one-time combat bonus. (3-turn cooldown)";
}
perkButton.onclick = () => {
if (!isButtonDisabled) {
this.stage = 'Frenzy Targeting';
if (turnInfoMessage) turnInfoMessage.textContent = "Select a friendly territory to launch your frenzied attack FROM.";
this.updateInfo();
}
};
}
// --- PERK 2: The Gunners / Minutemen ---
else if (this.player.perk.id === 'mercenary_contracts' || this.player.perk.id === 'minutemen_contracts' || this.player.perk.id === 'gunner_contracts') {
showButton = true;
const perkCooldown = this.player.perk.cooldown || 3;
tooltipText = this.player.perk.description + ` (${perkCooldown} Turn Cooldown)`;
let mercCost = (this.levelingEnabled && this.player.activeBuffs && this.player.activeBuffs.gunNut) ? 15 : 20;
if (this.player.mercenaryCooldown > 0) {
isButtonDisabled = true;
perkButton.innerHTML = "Contract on Cooldown<br><span style='font-size:14px;'>(" + this.player.mercenaryCooldown + " Turns Left)</span>";
} else if (this.player.caps < mercCost) {
isButtonDisabled = true;
perkButton.innerHTML = "Mercenary Contract<br><span style='font-size:14px;'>(" + mercCost + " Caps)</span>";
} else {
isButtonDisabled = false;
perkButton.innerHTML = "Mercenary Contract<br><span style='font-size:14px;'>(" + mercCost + " Caps)</span>";
}
perkButton.onclick = () => {
if (!isButtonDisabled) this.useMercenaryContract();
};
}
// --- PERK 3: BOS Outcasts ---
else if (this.player.perk.id === 'tech_hoarders') {
showButton = true;
const overdriveCost = Math.min(this.player.army, 30); // ---> CHANGED: Max 30
if (this.player.techOverdriveActive > 0) {
isButtonDisabled = true;
isBuffActive = true; // --- NEW: Let the game know the buff is running so it glows!
perkButton.innerHTML = "BUFF ACTIVE<br><span style='font-size:14px;'>(" + this.player.techOverdriveActive + " Turns Left)</span>";
tooltipText = "Your armies have a global +10% attack bonus for " + this.player.techOverdriveActive + " more turn(s).";
} else if (this.player.techOverdriveCooldown > 0) {
isButtonDisabled = true;
perkButton.innerHTML = "RECHARGING<br><span style='font-size:14px;'>(" + this.player.techOverdriveCooldown + " Turns Left)</span>";
tooltipText = "The advanced systems need " + this.player.techOverdriveCooldown + " more turn(s) to recharge.";
} else if (this.player.caps < overdriveCost) {
isButtonDisabled = true;
perkButton.innerHTML = "Technology Overdrive<br><span style='font-size:14px;'>(" + overdriveCost + " Caps)</span>";
tooltipText = "Insufficient Caps. Requires " + overdriveCost + ".";
} else {
isButtonDisabled = false;
perkButton.innerHTML = "Technology Overdrive<br><span style='font-size:14px;'>(" + overdriveCost + " Caps)</span>";
tooltipText = "Spend " + overdriveCost + " Caps to grant all your attacking armies +10% win chance for 3 turns. (3 Turn Cooldown)";
}
perkButton.onclick = () => {
if (!isButtonDisabled) {
this.player.caps -= overdriveCost;
this.player.techOverdriveActive = 3;
this.logAction("⚙️ TECHNOLOGY OVERDRIVE ENGAGED! All attacking forces receive +10% win chance for 3 rounds.", true);
this.updateInfo();
}
};
}
// --- PERK 4: Mojave Brotherhood ---
else if (this.player.perk.id === 'elders_edict') {
showButton = true;
const lockedCountry = this.countries.find(c => c.isLockedDown);
const isAnyTerritoryLocked = !!lockedCountry;
// 1. Safely determine the button text (Fixes Bug 1 & 2)
if (isAnyTerritoryLocked) {
perkButton.innerHTML = "Lift Lockdown<br><small>(" + (lockedCountry.lockdownTimer || 3) + " Turns Left)</small>";
} else if (this.player.lockdownCooldown > 0) {
perkButton.innerHTML = "Edict on Cooldown<br><small>(" + this.player.lockdownCooldown + " Turns Left)</small>";
} else {
perkButton.textContent = "Enact Lockdown";
}
// 2. Safely determine if disabled & set Tooltip (Fixes Bug 2)
if (isAnyTerritoryLocked) {
isButtonDisabled = false;
tooltipText = "Click to manually lift the lockdown early and begin the 3-turn cooldown.";
} else if (this.player.lockdownCooldown > 0) {
isButtonDisabled = true;
tooltipText = "Edict requires " + this.player.lockdownCooldown + " more turn(s) to recharge.";
} else if (this.stage === "Recruitment") {
isButtonDisabled = true;
tooltipText = "Cannot enact Elder's Edict during the Recruitment phase.";
} else if (this.stage === "Fortify" && this.player.reserve > 0) {
isButtonDisabled = true;
tooltipText = "Deploy all reserve troops to enable the Elder's Edict.";
} else {
isButtonDisabled = false;
tooltipText = "Select one of your territories and then click this button to apply the Elder's Edict.";
}
perkButton.onclick = () => {
if (!isButtonDisabled) {
if (isAnyTerritoryLocked) {
this.toggleLockdown(lockedCountry.name);
this.updateInfo();
} else if (this.prevCountry && this.prevCountry.owner === this.player.name) {
this.toggleLockdown(this.prevCountry.name);
this.updateInfo();
} else {
if (this.showToast) this.showToast("Select one of your territories first to use the Edict.", "grey");
}
}
};
}
// --- PERK 5: New Vegas Securitrons ---
else if (this.player.perk.id === 'the_house_always_wins') {
showButton = true;
const hasValidUndo = this.player.lastFailedAttack && this.player.lastFailedAttack.turnNumber === this.turn && this.player.lastFailedAttack.losses > 0;
if (this.player.predictiveCooldown > 0) {
isButtonDisabled = true;
perkButton.textContent = "Simulation Cooldown (" + this.player.predictiveCooldown + ")";
tooltipText = "Predictive algorithms require " + this.player.predictiveCooldown + " more turn(s) to process new data.";
} else if (!hasValidUndo) {
isButtonDisabled = true;
perkButton.textContent = "Undo Last Battle";
tooltipText = "Can only be used immediately after an attack completely fails.";
} else {
isButtonDisabled = false;
perkButton.textContent = "Undo Last Battle (Restore " + this.player.lastFailedAttack.losses + ")";
tooltipText = "Click to declare the last failed battle a 'Simulation' and instantly restore the " + this.player.lastFailedAttack.losses + " troops you lost.";
}
perkButton.onclick = async () => {
if (!isButtonDisabled && hasValidUndo) {
let source = this.countries.find(c => c.name === this.player.lastFailedAttack.sourceTerritory);
let target = this.countries.find(c => c.name === this.player.lastFailedAttack.targetTerritory); // --- NEW: Find the target territory
if (source && target) {
// 2. Restore the troops to BOTH sides
source.army += this.player.lastFailedAttack.losses;
target.army += this.player.lastFailedAttack.defenderLosses; // --- NEW: Restore the defender
// 3. Update the map visually for both
let sourceMapEl = document.getEleme
if (sourceMapEl && sourceMapEl.nextElementSibling) sourceMapEl.nextElementSibling.textContent = source.army;
let targetMapEl = document.getElementById(target.name);
if (targetMapEl && targetMapEl.nextElementSibling) targetMapEl.nextElementSibling.textContent = target.army;
// 4. Set Cooldown & Clear the stored attack
this.player.predictiveCooldown = 3;
const restoredAmount = this.player.lastFailedAttack.losses;
const restoredDefenders = this.player.lastFailedAttack.defenderLosses;
this.player.lastFailedAttack = null;
await this.logAction(`[ PREDICTIVE SIMULATION ] Attack declared a simulation! ${restoredAmount} Securitrons and ${restoredDefenders} defenders restored.`, true);
this.updateInfo();
}
}
};
}
}
// --- Final visibility and state decision ---
perkButtonWrapper.style.display = showButton ? 'block' : 'none';
perkButton.disabled = isButtonDisabled;
// --- THIS IS THE FIX ---
if (!document.getElementById('perk-custom-styles')) {
let style = document.createElement('style');
style.id = 'perk-custom-styles';
style.innerHTML = `
/* STATE 1: READY */
@keyframes borderOnlyPulse {
0% { border-color: var(--pip-color); box-shadow: inset 0 0 5px var(--pip-color), 0 0 5px var(--pip-color); }
100% { border-color: #ffffff; box-shadow: inset 0 0 5px var(--pip-color), 0 0 15px var(--pip-color); }
}
.perk-ready-state {
animation: borderOnlyPulse 1s infinite alternate !important;
filter: none !important;
background-color: var(--pip-dark) !important;
}
/* FIX: Tell the button how to correctly handle a mouse hover! */
.perk-ready-state:hover {
background-color: var(--pip-color) !important;
color: var(--pip-dark) !important;
}
/* STATE 2: RUNNING */
@keyframes textOnlyPulse {
0% { color: rgba(128, 128, 128, 0.5); text-shadow: none; border-color: rgba(128, 128, 128, 0.3); }
100% { color: var(--pip-color); text-shadow: 0 0 8px var(--pip-color); border-color: rgba(128, 128, 128, 0.3); }
}
.perk-running-state {
animation: textOnlyPulse 1.5s infinite alternate !important;
background-color: var(--pip-dark) !important;
box-shadow: inset 0 0 5px rgba(0,0,0,0.5) !important;
}
/* STATE 3: DISABLED */
.perk-disabled-state {
background-color: var(--pip-dark) !important;
opacity: 0.5 !important;
box-shadow: inset 0 0 5px var(--pip-color), 0 0 5px var(--pip-color) !important;
}
`;
document.head.appendChild(style);
}
// 2. Wipe out any rogue inline JavaScript styles!
perkButton.style.animation = "";
perkButton.style.backgroundColor = "";
perkButton.style.opacity = "";
perkButton.style.boxShadow = "";
perkButton.classList.remove('ready-to-trade', 'perk-ready-state', 'perk-running-state', 'perk-disabled-state');
// 3. Apply the states purely via CSS classes
if (!isButtonDisabled) {
perkButton.classList.add('perk-ready-state'); // State 1
} else if (typeof isBuffActive !== 'undefined' && isBuffActive) {
perkButton.classList.add('perk-running-state'); // State 2
} else {
perkButton.classList.add('perk-disabled-state'); // State 3
}
// --- END OF FIX ---
// --- Event Listeners for the Custom Tooltip ---
perkButtonWrapper.onmouseenter = (e) => {
if (tooltipText && perkButtonWrapper.style.display === 'block') {
tooltip.innerHTML = tooltipText;
tooltip.style.display = 'block';
tooltip.style.left = (e.pageX + 15) + 'px';
tooltip.style.top = (e.pageY + 15) + 'px';
}
};
perkButtonWrapper.onmousemove = (e) => {
tooltip.style.left = (e.pageX + 15) + 'px';
tooltip.style.top = (e.pageY + 15) + 'px';
};
perkButtonWrapper.onmouseleave = () => {
tooltip.style.display = 'none';
};
}
}
if (!document.getElementById('ui-polish-styles')) {
let style = document.createElement('style');
style.id = 'ui-polish-styles';
style.innerHTML = `
/* Leaderboard Pulsing Animation */
@keyframes activeTurnPulse {
0% { box-shadow: 0 0 5px var(--pip-color), inset 0 0 2px var(--pip-color); border-color: var(--pip-color); }
100% { box-shadow: 0 0 15px var(--pip-color), inset 0 0 8px var(--pip-color); border-color: #ffffff; }
}
/* When highlighted (and turbo is OFF), pulse the card */
body:not(.turbo-active) .player-panel > div.highlight {
animation: activeTurnPulse 1.2s infinite alternate !important;
z-index: 10;
}
/* Force Commander UI to match theme (including all text inside it) */
#cmdr-ui-container, #cmdr-ui-container span, #cmdr-ui-container div {
border-color: var(--pip-color) !important;
color: var(--pip-color) !important;
text-shadow: 0 0 5px var(--pip-color) !important;
}
/* Ensure the health bar background itself doesn't turn transparent */
#cmdr-hp-fill {
text-shadow: none !important;
}
`;
document.head.appendChild(style);
}
// --- Scrambled Text Intel Animation (All 2 Characters) ---
Gamestate.startIntelAnimation = function () {
if (this.intelAnimationTimer) {
clearInterval(this.intelAnimationTimer);
}
const scrambleChars = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789!?#%&@??????';
function getScrambledString(length) {
let result = '';
for (let i = 0; i < length; i++) {
result += scrambleChars[Math.floor(Math.random() * scrambleChars.length)];
}
return result;
}
this.intelAnimationTimer = setInterval(() => {
// Find all the original spinner elements
const supplySpinners = document.querySelectorAll('.intel-spinner-income');
const capsSpinners = document.querySelectorAll('.intel-spinner-main');
const codesSpinners = document.querySelectorAll('.spinner-codes'); // This is the class for the codes spinner
// --- THIS IS THE FIX ---
// Apply a 2-character scramble to ALL of them.
supplySpinners.forEach(el => { el.textContent = getScrambledString(2); });
capsSpinners.forEach(el => { el.textContent = getScrambledString(2); });
codesSpinners.forEach(el => { el.textContent = getScrambledString(2); });
}, 100); // Animation speed in milliseconds
};
Gamestate.renderCards = function () {
const list = document.getElementById('card-list'); if (!list) return; list.innerHTML = ''; this.selectedCards = [];
this.player.cards.forEach((card, index) => {
let cardEl = document.createElement('div'); cardEl.textContent = `${formatTerritoryName(card.country)} (${card.type})`; cardEl.className = 'risk-card';
cardEl.onclick = () => this.toggleCardSelection(cardEl, index); list.appendChild(cardEl);
});
let tradeBtn = document.getElementById('trade-btn'); if (tradeBtn) { tradeBtn.disabled = true; tradeBtn.textContent = "SELECT 3 ELIGIBLE CAPS"; tradeBtn.classList.remove('ready-to-trade'); }
}
Gamestate.toggleCardSelection = function (element, index) {
if (this.selectedCards.includes(index)) { this.selectedCards = this.selectedCards.filter(i => i !== index); element.classList.remove('selected'); }
else if (this.selectedCards.length < 3) { this.selectedCards.push(index); element.classList.add('selected'); }
let tradeBtn = document.getElementById('trade-btn');
if (tradeBtn) {
let isValid = this.isValidTrade(); tradeBtn.disabled = !isValid; tradeBtn.textContent = isValid ? "SPEND CAPS FOR TROOPS" : "SELECT 3 ELIGIBLE CAPS";
if (isValid) tradeBtn.classList.add('ready-to-trade'); else tradeBtn.classList.remove('ready-to-trade');
}
}
Gamestate.isValidTrade = function () {
if (this.selectedCards.length !== 3) return false;
let types = this.selectedCards.map(i => this.player.cards[i].type);
let wilds = types.filter(t => t === "Wild").length;
let regularTypes = types.filter(t => t !== "Wild");
let uniqueTypes = new Set(regularTypes).size;
return (uniqueTypes === 1 || uniqueTypes === 3 || wilds > 0);
}
Gamestate.getBestTrade = function (cards) {
if (cards.length < 3) return null;
for (let i = 0; i < cards.length - 2; i++) {
for (let j = i + 1; j < cards.length - 1; j++) {
for (let k = j + 1; k < cards.length; k++) {
let selected = [cards[i], cards[j], cards[k]]; let types = selected.map(c => c.type); let wilds = types.filter(t => t === "Wild").length;
let regularTypes = types.filter(t => t !== "Wild"); let uniqueTypes = new Set(regularTypes).size;
if (uniqueTypes === 1 || uniqueTypes === 3 || wilds > 0) return [i, j, k];
}
}
}
return null;
}
Gamestate.executeTrade = async function () {
if (this.aiTurn) return;
if (this.isValidTrade()) {
let bonus = getTradeBonus();
// --- BOBBLEHEAD MODIFIER (CHARISMA) ---
let cBobble = this.bobbleheads && this.bobbleheads.find(b => b.key === 'c');
if (cBobble && cBobble.active && cBobble.owner === this.player.name) {
bonus += 10;
await this.logAction("Charisma Bobblehead active! Persuaded the merchants to grant +10 additional troops.");
}
// --- PERK LOGIC: BOS Outcasts ('tech_hoarders') ---
if (this.perksEnabled && this.player.perk && this.player.perk.id === 'tech_hoarders') {
bonus += 2;
await this.logAction("⚙️ Tech Hoarders perk yielded +2 additional troops from the trade.");
}
this.selectedCards.sort((a, b) => b - a).forEach(index => { deck.unshift(this.player.cards[index]); this.player.cards.splice(index, 1); });
this.player.reserve += bonus; this.player.army += bonus;
if (this.stage === "Battle" || this.stage === "Maneuver" || this.stage === "Commander Phase" || this.stage === "AI Turn") {
this.stage = "Fortify"; if (turnInfo) turnInfo.textContent = "Combat Phase"; if (turnInfoMessage) turnInfoMessage.textContent = "Bonus Received! Place your new troops."; this.updateButtonText();
}
if (reserveDisplay) reserveDisplay.innerHTML = this.player.reserve; this.updateInfo();
await this.logAction(`SUPPLY DROP: ${this.player.name} spent Caps for +${bonus} troops!`, true);
this.renderCards();
let tradeBtn = document.getElementById('trade-btn'); if (tradeBtn) { tradeBtn.disabled = true; tradeBtn.classList.remove('ready-to-trade'); }
let cardsModal = document.getElementById('cards-modal'); if (cardsModal) cardsModal.style.display = 'none';
}
}
Gamestate.processRadstorm = async function () {
if (!this.hazardsEnabled) return;
if (!this.radstorm) { this.radstorm = { state: 'none', timer: 0, cooldown: Math.floor(Math.random() * 11) + 5, areas: [] }; }
this.countries.forEach(c => { let el = document.getElementById(c.name); if (el && !c.isCrater) { el.classList.remove('radstorm-warning'); el.classList.remove('radstorm-active'); } });
if (this.radstorm.state === 'none') {
this.radstorm.cooldown--;
if (this.radstorm.cooldown <= 0) {
this.radstorm.state = 'warning'; this.radstorm.timer = 2;
let validStarts = this.countries.filter(c => !c.isCrater);
if (validStarts.length === 0) return;
let startCountry = validStarts[Math.floor(Math.random() * validStarts.length)];
this.radstorm.areas = [startCountry.name];
let targetCount = Math.floor(Math.random() * 4) + 1;
while (this.radstorm.areas.length < targetCount) {
let potential = [];
this.radstorm.areas.forEach(a => {
let c = this.countries.find(x => x.name === a);
c.neighbours.forEach(n => {
let nc = this.countries.find(x => x.name === n);
if (nc && !nc.isCrater && !this.radstorm.areas.includes(n) && !potential.includes(n)) potential.push(n);
});
});
if (potential.length === 0) break;
this.radstorm.areas.push(potential[Math.floor(Math.random() * potential.length)]);
}
await this.logAction(`[ S.O.S ] WARNING: Severe Radstorm forming over ${this.radstorm.areas.length} territories! Evacuate immediately.`, true);
}
} else if (this.radstorm.state === 'warning') {
this.radstorm.timer--;
if (this.radstorm.timer <= 0) {
this.radstorm.state = 'active'; this.radstorm.timer = Math.floor(Math.random() * 4) + 2;
await this.logAction(`[ HAZARD ] The Radstorm has touched down! It will rage for ${this.radstorm.timer} days.`, true);
} else await this.logAction(`[ S.O.S ] Radstorm arriving in ${this.radstorm.timer} day(s)...`, true);
}
if (this.radstorm.state === 'active') {
let totalKilled = 0;
this.radstorm.areas.forEach(areaName => {
let c = this.countries.find(x => x.name === areaName);
if (c && c.army > 1 && !c.isCrater) {
let dmgPercent = (Math.random() * 0.15) + 0.10;
let owner = this.players.find(p => p.name === c.owner);
// RadAway Immunity & Adamantium Skeleton resistance
if (owner && owner.radImmunity > 0) {
dmgPercent = 0;
} else if (owner && this.levelingEnabled && owner.activeBuffs && owner.activeBuffs.adamantiumSkeleton) {
dmgPercent /= 2;
}
let dmg = Math.floor(c.army * dmgPercent);
if (dmg < 1) dmg = 1; if (c.army - dmg < 1) dmg = c.army - 1;
c.army -= dmg; totalKilled += dmg;
if (owner) owner.army -= dmg;
let areaOnMap = document.getElementById(c.name); if (areaOnMap && areaOnMap.nextElementSibling) areaOnMap.nextElementSibling.textContent = c.army;
}
});
if (totalKilled > 0) await this.logAction(`[ HAZARD ] Radstorm killed ${totalKilled} troops in the irradiated zone.`, true);
else await this.logAction(`[ HAZARD ] Radstorm rages, but garrisons are already at minimum capacity.`);
this.radstorm.timer--;
if (this.radstorm.timer <= 0) {
this.radstorm.state = 'none'; this.radstorm.cooldown = Math.floor(Math.random() * 11) + 5;
await this.logAction(`[ CLEAR ] The Radstorm has dissipated. Skies are clear for now.`, true);
}
}
this.radstorm.areas.forEach(areaName => {
let el = document.getElementById(areaName);
if (el && !this.countries.find(c => c.name === areaName).isCrater) {
if (this.radstorm.state === 'warning') el.classList.add('radstorm-warning');
if (this.radstorm.state === 'active') el.classList.add('radstorm-active');
}
});
}
// --- NEW: INITIAL PLACEMENT ENGINE ---
Gamestate.processInitialPlacement = async function() {
let activePlayers = this.players.filter(p => !p.isNeutral);
// Keep wrapping the index around the table
if (this.setupPlayerIndex >= activePlayers.length) {
this.setupPlayerIndex = 0;
}
let currentPlayer = activePlayers[this.setupPlayerIndex];
// Are we in the Claiming phase?
if (this.stage === "Initial Claim") {
let unowned = this.countries.filter(c => c.owner === "none" && !c.isCrater && !c.isSilo);
if (unowned.length === 0) {
// The map is full! Switch to Reinforcement phase
this.stage = "Initial Reinforce";
await this.logAction("--- DEPLOYMENT: FORTIFY GARRISONS ---", true);
this.processInitialPlacement();
return;
}
if (currentPlayer.isPlayer) {
// Human Turn: Unlock map and wait for click
this.aiTurn = false;
if (map) map.style.pointerEvents = "auto";
let msg = "Select an empty grey territory to claim it.";
if (turnInfoMessage && turnInfoMessage.textContent !== msg) {
turnInfoMessage.textContent = msg;
this.updateInfo();
}
return;
} else {
// AI Turn: Claim a random territory
this.aiTurn = true;
if (map) map.style.pointerEvents = "none";
let randomCountry = unowned[Math.floor(Math.random() * unowned.length)];
randomCountry.owner = currentPlayer.name;
randomCountry.color = currentPlayer.color;
randomCountry.army = 1;
currentPlayer.areas.push(randomCountry.name);
currentPlayer.army++;
currentPlayer.reserve--;
let el = document.getElementById(randomCountry.name);
let isVis = this.isTerritoryVisible(randomCountry.name);
// --- FIX: Prevent color flashing before Fog kicks in ---
if (el) {
if (isVis) {
el.style.fill = currentPlayer.color;
} else {
// Instantly apply fog state to prevent the microsecond color flash
el.style.fill = 'transparent';
el.classList.add('fog-shroud');
}
}
// Ensure map text redraws to keep the '?' if shrouded
if (this.drawMapText) this.drawMapText();
// --- FIX: Dynamic AI Setup Speed & Flash ---
let turbo = document.getElementById('turbo-toggle') && document.getElementById('turbo-toggle').checked;
if (!turbo && el && isVis) {
el.classList.add('flash');
setTimeout(() => el.classList.remove('flash'), 150);
}
let delay = turbo ? 10 : 150;
await new Promise(resolve => setTimeout(resolve, delay));
// Only log it if the player can see it!
if (isVis) {
await this.logAction(`[ CLAIM ] ${currentPlayer.name} claimed ${formatTerritoryName(randomCountry.name)}.`);
}
this.setupPlayerIndex++;
this.processInitialPlacement();
return;
}
}
// Are we in the Reinforce phase?
else if (this.stage === "Initial Reinforce") {
// Check if EVERYONE is completely out of troops
let totalReserves = 0;
activePlayers.forEach(p => totalReserves += p.reserve);
if (totalReserves <= 0) {
// If Commanders are enabled, switch to Commander placement!
if (this.commandersEnabled) {
this.stage = "Initial Commander";
this.processInitialPlacement();
return;
}
// Otherwise, Setup is completely finished! Start Day 1!
this.aiTurn = false;
if (map) map.style.pointerEvents = "auto";
// Grant Day 1 Income/Troops
let income = 0;
if (this.wastelandEconomyActive) {
this.stage = "Recruitment";
income = (this.player.areas.length * 2) + this.continentBonus(this.player);
this.player.caps += income;
} else {
this.stage = "Fortify";
this.player.reserve += this.unitBonus(this.player, 0);
}
this.updateButtonText();
this.updateInfo();
if (this.printMissionBriefing) await this.printMissionBriefing();
if (this.wastelandEconomyActive) {
await this.logAction(`TAXES COLLECTED: Gained ${income} Caps from territories and continent bonuses.`, true);
}
return;
}
// If this specific player is out of troops, skip them
if (currentPlayer.reserve <= 0) {
this.setupPlayerIndex++;
this.processInitialPlacement();
return;
}
if (currentPlayer.isPlayer) {
// Human Turn: Wait for click
this.aiTurn = false;
if (map) map.style.pointerEvents = "auto";
// FIX: Safely update text so typewriter effect doesn't glitch
let msg = `Deploy reserve troops. (${currentPlayer.reserve} remaining)`;
if (turnInfoMessage && turnInfoMessage.textContent !== msg) {
turnInfoMessage.textContent = msg;
this.updateInfo();
}
return;
} else {
// AI Turn: Drop 1 troop randomly on their own land
this.aiTurn = true;
if (map) map.style.pointerEvents = "none";
if (currentPlayer.areas.length > 0) {
let randomAreaName = currentPlayer.areas[Math.floor(Math.random() * currentPlayer.areas.length)];
let country = this.countries.find(c => c.name === randomAreaName);
if (country) {
country.army++;
currentPlayer.army++;
currentPlayer.reserve--;
let el = document.getElementById(country.name);
// --- FIX: Use drawMapText so we don't accidentally reveal troops under fog ---
if (this.drawMapText) this.drawMapText();
let isVis = this.isTerritoryVisible(country.name);
// --- FIX: Dynamic AI Setup Speed & Flash ---
let turbo = document.getElementById('turbo-toggle') && document.getElementById('turbo-toggle').checked;
if (!turbo && el && isVis) {
el.classList.add('flash');
setTimeout(() => el.classList.remove('flash'), 150);
}
let delay = turbo ? 10 : 150;
await new Promise(resolve => setTimeout(resolve, delay));
// Only log it if the player can see it!
if (isVis) {
await this.logAction(`[ DEPLOYMENT ] ${currentPlayer.name} deployed 1 troop to ${formatTerritoryName(country.name)}.`);
}
}
}
this.setupPlayerIndex++;
this.setupPlayerIndex++;
this.processInitialPlacement();
return;
}
}
// --- NEW: Commander Placement Phase ---
else if (this.stage === "Initial Commander") {
let cmdrPlayers = activePlayers.filter(p => p.commander && !p.commander.loc);
// If everyone has placed their commander, Start Day 1!
if (cmdrPlayers.length === 0) {
this.aiTurn = false;
if (map) map.style.pointerEvents = "auto";
let income = 0;
if (this.wastelandEconomyActive) {
this.stage = "Recruitment";
income = (this.player.areas.length * 2) + this.continentBonus(this.player);
this.player.caps += income;
} else {
this.stage = "Fortify";
this.player.reserve += this.unitBonus(this.player, 0);
}
this.updateButtonText();
this.updateInfo();
if (this.printMissionBriefing) await this.printMissionBriefing();
if (this.wastelandEconomyActive) {
await this.logAction(`TAXES COLLECTED: Gained ${income} Caps from territories and continent bonuses.`, true);
}
return;
}
// Grab the next player who needs to place their commander
let curr = cmdrPlayers[0];
if (curr.isPlayer) {
this.aiTurn = false;
if (map) map.style.pointerEvents = "auto";
let msg = "Select a territory to deploy your Commander.";
if (turnInfoMessage && turnInfoMessage.textContent !== msg) {
turnInfoMessage.textContent = msg;
this.updateInfo();
}
return;
} else {
// AI Turn: Randomly drop commander on one of their owned territories
this.aiTurn = true;
if (map) map.style.pointerEvents = "none";
if (curr.areas.length > 0) {
curr.commander.loc = curr.areas[Math.floor(Math.random() * curr.areas.length)];
if (this.drawMapText) this.drawMapText();
} else {
curr.commander.loc = "none";
}
let turbo = document.getElementById('turbo-toggle') && document.getElementById('turbo-toggle').checked;
let delay = turbo ? 10 : 150;
await new Promise(resolve => setTimeout(resolve, delay));
if (this.isTerritoryVisible(curr.commander.loc)) {
await this.logAction(`[ DEPLOYMENT ] ${curr.name} deployed their Commander to ${formatTerritoryName(curr.commander.loc)}.`);
}
this.processInitialPlacement();
return;
}
}
};
Gamestate.checkAutoPhaseAdvance = function() {
if (this.aiTurn || this.modalIsOpen) return;
let shouldAdvance = false;
let reason = "OUT OF AP";
if (this.stage === "Commander Phase" && this.commandersEnabled && this.player.commander) {
if (this.player.commander.ap <= 0) shouldAdvance = true;
} else if (this.stage === "Maneuver") {
if (this.player.maneuverPoints <= 0) {
shouldAdvance = true;
reason = "OUT OF MANEUVERS";
}
}
if (shouldAdvance) {
const endBtn = document.getElementById('end');
if (endBtn) {
endBtn.classList.add('btn-flash');
endBtn.textContent = `${reason} - ADVANCING...`;
endBtn.style.pointerEvents = "none";
endBtn.style.opacity = "0.7";
setTimeout(() => {
endBtn.classList.remove('btn-flash');
endBtn.style.pointerEvents = "auto";
endBtn.style.opacity = "1";
this.handleEndTurn();
}, 1200);
}
}
};
Gamestate.handleEndTurn = async function () {
if (this.aiTurn) { // --- FIX: Removed the global reserve lock!
return;
}
// --- FORTIFY / RECRUITMENT -> BATTLE BRIDGE ---
if (this.stage === "Fortify" || this.stage === "Recruitment") {
// Modal confirmation for unspent Caps
// Unified Recruitment Confirmation
if (this.stage === "Recruitment" && !this.aiTurn) {
const hasCharisma = this.bobbleheads && this.bobbleheads.find(b => b.key === 'c' && b.active && b.owner === this.player.name);
const troopCost = hasCharisma ? 3 : (this.player.activeBuffs.capCollector ? 4 : 5);
if (this.player.caps >= troopCost) {
const confirmed = await new Promise(resolve => {
this.showEncounterModal(
"RECRUITMENT NOTICE",
`You still have enough Caps to recruit ${Math.floor(this.player.caps / troopCost)} more troops. Are you sure you want to proceed to combat without reinforcements?`,
[
{ id: 'skip', text: "[ YES ] PROCEED TO COMBAT" },
{ id: 'cancel', text: "[ NO ] REMAIN IN RECRUITMENT" }
],
(choice) => resolve(choice === 'skip')
);
});
// If they chose NO, exit the end-turn sequence
if (!confirmed) return;
}
}
// FIX: Now checks for airborne troops as well!
if (this.player.reserve > 0 || (this.player.airborneTroops && this.player.airborneTroops > 0)) {
if (this.showToast) this.showToast("You must deploy all your reserve troops before ending the phase.", "red");
// Also force the stage into Fortify so they can actually place them
this.stage = "Fortify";
this.updateButtonText();
this.updateInfo();
return;
}
// Go straight to Battle
this.stage = "Battle";
let endBtn = document.getElementById('end');
if (endBtn) {
endBtn.style.opacity = "1";
endBtn.style.pointerEvents = "auto";
}
if (turnInfo) turnInfo.textContent = "Combat Phase";
if (turnInfoMessage) turnInfoMessage.textContent = "Select staging territory, then target an enemy.";
this.updateButtonText();
this.updateInfo();
return;
}
// --- BATTLE -> COMMANDER PHASE BRIDGE ---
if (this.stage === "Battle") {
if (this.commandersEnabled && this.player.alive && this.player.commander) {
if (this.prevTarget) this.prevTarget.classList.remove('flash');
this.prevCountry = null;
this.prevTarget = null;
this.stage = "Commander Phase";
if (!this.player.commander.isConverting) {
this.player.commander.ap = 2 + (this.player.activeBuffs.blitz || 0);
}
this.player.commander.hasFought = false;
this.aiTurn = false;
this.updateButtonText();
if (turnInfo) turnInfo.textContent = "Commander Phase";
// --- NEW: Smarter dynamic message ---
if (this.player.commander.isConverting) {
if (turnInfoMessage) turnInfoMessage.textContent = `Your Commander is converting enemy territory and cannot take other actions.`;
} else {
let actions = ["Move your Commander", "convert territory"];
if(this.player.commander.stimpaks > 0 && this.player.commander.hp < 100) {
actions.push("use a Stimpak");
}
if (turnInfoMessage) turnInfoMessage.textContent = actions.join(', ') + ". (Costs AP)";
}
this.updateInfo();
return;
} else {
// If no commander, bypass to the Maneuver check below
this.stage = "Commander Phase";
}
}
// --- COMMANDER PHASE -> MANEUVER BRIDGE ---
if (this.stage === "Commander Phase") {
let canManeuver = false;
let owned = this.countries.filter(c => c.owner === this.player.name);
for (let t of owned) {
if (t.army > 1 && !t.isLockedDown) {
// 1. Standard Check: Adjacent friendly territory
let standardMove = t.neighbours.some(n => {
let nc = this.countries.find(x => x.name === n);
return nc && nc.owner === this.player.name && !nc.isCrater;
});
// 2. The Enclave Check: Vertibird Assault bypasses adjacency
let enclaveMove = false;
if (this.perksEnabled && this.player.perk && this.player.perk.id === 'vertibird_assault') {
if (owned.length > 1) enclaveMove = true;
}
// 3. Great Khans Check: Guerrilla Tactics jump over enemy
let khansMove = false;
if (this.perksEnabled && this.player.perk && this.player.perk.id === 'guerrilla_tactics') {
let enemyNeighbors = t.neighbours.filter(n => {
let nc = this.countries.find(x => x.name === n);
return nc && nc.owner !== this.player.name && !nc.isCrater;
});
for (let en of enemyNeighbors) {
let enemyCountry = this.countries.find(c => c.name === en);
if (enemyCountry && enemyCountry.neighbours.some(enn => {
let dest = this.countries.find(x => x.name === enn);
return dest && dest.owner === this.player.name && dest.name !== t.name;
})) {
khansMove = true;
break;
}
}
}
// If ANY of these move types are legal, the player is allowed to enter the Maneuver phase!
if (standardMove || enclaveMove || khansMove) {
canManeuver = true;
break;
}
}
}
if (this.prevTarget) this.prevTarget.classList.remove('flash');
this.prevCountry = null;
this.prevTarget = null;
if (canManeuver) {
this.stage = "Maneuver";
this.maneuverSource = null;
this.maneuverDest = null;
// --- THIS IS THE NEW PERK LOGIC ---
// Check for Agility Bobblehead
let aBobble = this.bobbleheads && this.bobbleheads.find(b => b.key === 'a');
let hasAgility = (aBobble && aBobble.active && aBobble.owner === this.player.name);
// --- NEW: DOGMEAT ENCUMBRANCE PENALTY ---
let dogmeatPenalty = (this.player.dogmeatStatus === 'injured') ? 1 : 0;
if (dogmeatPenalty > 0) {
if(this.logAction) this.logAction(`[ COMPANION ] Dogmeat's injuries are slowing you down. (-1 Maneuver Point)`, true);
}
// --- NEW: Add Action Boy/Girl Stacks ---
let actionBoyBonus = (this.levelingEnabled && this.player.activeBuffs && this.player.activeBuffs.actionBoy) ? this.player.activeBuffs.actionBoy : 0;
// Grant maneuver points to The Railroad player
if (this.perksEnabled && this.player.perk && this.player.perk.id === 'rapid_relocation') {
let basePoints = (hasAgility ? 6 : 5) + actionBoyBonus;
this.player.maneuverPoints = Math.max(0, basePoints - dogmeatPenalty);
if (turnInfoMessage) turnInfoMessage.textContent = `Move troops. You have ${this.player.maneuverPoints} moves remaining.`;
} else {
let basePoints = (hasAgility ? 2 : 1) + actionBoyBonus;
this.player.maneuverPoints = Math.max(0, basePoints - dogmeatPenalty);
if (turnInfoMessage) {
turnInfoMessage.textContent = hasAgility
? "Agility Active: Move troops twice this turn."
: "Move troops between adjacent territories. [SHIFT] moves all.";
}
}
this.updateButtonText();
if (turnInfo) turnInfo.textContent = "Maneuver Phase";
this.updateInfo();
return;
} else {
// No maneuvers possible — fall through to AI Turn
this.stage = "Maneuver"; // Set to Maneuver so the fall-through is clean
}
}
// --- FIX: JET EXTRA TURN ---
if (this.player.extraTurn) {
this.player.extraTurn = false;
// --- FIX: Hand the player their new turn income! ---
if (this.wastelandEconomyActive) {
this.stage = "Recruitment";
let income = (this.player.areas.length * 2) + this.continentBonus(this.player);
this.player.caps += income;
await this.logAction(`[ CHEMICALS ] Jet rushing through your veins. You take another turn instantly! (+${income} Caps)`, true);
} else {
this.stage = "Fortify";
let bonus = this.unitBonus(this.player, 0);
this.player.reserve += bonus;
await this.logAction(`[ CHEMICALS ] Jet rushing through your veins. You take another turn instantly! (+${bonus} Troops)`, true);
}
this.updateButtonText();
this.updateInfo();
return; // Bypass AI Turn completely
}
// FIX: Lock the AI Turn and Map IMMEDIATELY before any 'await' delays to prevent multi-click cloning!
this.aiTurn = true;
if (map) map.style.pointerEvents = "none"; if (this.player.conqueredThisTurn) {
this.isDistributingLoot = true; // Set the flag to prevent INV flashing
let foundRareLoot = false;
// FIX: Make sure the luck item actually belongs to the player
const luckItem = this.bobbleheads && this.bobbleheads.find(i => i.key === 'l' && i.active && i.owner === this.player.name);
let luckModifier = luckItem ? 0.15 : 0;
// --- NEW: Add Scavenger Perk Bonus ---
if (this.levelingEnabled && this.player.activeBuffs && this.player.activeBuffs.scavenger) {
luckModifier += (0.10 * this.player.activeBuffs.scavenger);
}
// 1. Roll for Bobblehead (5% base + 15% Luck = 20% max)
if (this.bobbleheads && Math.random() < (0.05 + luckModifier)) {
let unfoundItems = this.bobbleheads.filter(item => !item.found);
if (unfoundItems.length > 0) {
let foundItem = unfoundItems[Math.floor(Math.random() * unfoundItems.length)];
foundItem.found = true;
foundItem.owner = this.player.name; // FIX ISSUE #3: Actually assign the item to the player!
let navInv = document.getElementById('nav-inv');
if (navInv) navInv.classList.add('inv-pulse');
this.justFoundLoot = true;
if (this.queueToast) {
this.queueToast(`>>> SYSTEM OVERRIDE <<< <br><span style="font-size: 32px;">★</span><br>ASSET ACQUIRED: ${foundItem.name.toUpperCase()}`, "var(--pip-color)", true);
}
await this.logAction(`[ EPIC LOOT ] You discovered a '${foundItem.name}' in the ruins!`, true);
} else {
if (this.commandersEnabled && this.player.commander && this.player.commander.stimpaks < 3) {
this.player.commander.stimpaks++;
let navInv = document.getElementById('nav-inv');
if (navInv) navInv.classList.add('inv-pulse');
this.justFoundLoot = true;
if (this.queueToast) {
this.queueToast(`>>> MEDICAL ALERT <<< <br><span style="font-size: 32px;">+</span><br>STIMPAK INVENTORY UPDATED`, "var(--pip-color)", true);
}
await this.logAction("[ MEDICAL ] Found a rare Stimpak hidden in the rubble!", true);
}
}
}
// 2. Roll for Stimpak (25% base + 15% Luck = 40% max)
if (this.commandersEnabled && this.player.commander && this.player.commander.stimpaks < 3 && Math.random() < (0.25 + luckModifier)) {
this.player.commander.stimpaks++;
let navInv = document.getElementById('nav-inv');
if (navInv) navInv.classList.add('inv-pulse');
this.justFoundLoot = true;
if (this.queueToast) {
this.queueToast(`>>> MEDICAL ALERT <<< <br><span style="font-size: 32px;">+</span><br>STIMPAK INVENTORY UPDATED`, "var(--pip-color)", true);
}
await this.logAction("[ MEDICAL ] Scavenged a rare Stimpak from the battlefield!", true);
}
// 3. Roll for Nuke Codes (Escalating Chance)
if (this.player.nukeChance === undefined) this.player.nukeChance = 0.15; // Initialize
const nukeCodeChance = (this.player.nukeCodeCooldown > 0) ? 0.05 : this.player.nukeChance;
if (this.nukesEnabled && this.player.codes < 4 && this.globalCodes > 0 && Math.random() < (nukeCodeChance + luckModifier)) {
foundRareLoot = true;
this.player.codes++;
this.globalCodes--;
this.player.nukeCodeCooldown = 3;
this.player.nukeChance = 0.15; // Reset to 15% after finding one!
if (this.queueToast) {
this.queueToast(`>>> ENCRYPTED DATA ACQUIRED <<< <br><span style="font-size: 32px;">☢</span><br>LAUNCH CODE FRAGMENT RECOVERED`, "var(--pip-color)", true);
}
await this.logAction("[ INTEL ] Recovered a heavily encrypted Launch Code Fragment!", true);
} else if (this.nukesEnabled && this.player.nukeCodeCooldown <= 0) {
// Increase by 5%, capped at 45%
this.player.nukeChance = Math.min(0.45, this.player.nukeChance + 0.05);
}
// 4. Default: Always get a Bottle Cap if nothing rare is found
if (!foundRareLoot) {
if (this.wastelandEconomyActive) {
this.player.caps += 5;
await this.logAction(">>> CONQUEST REWARD: Recovered 5 Bottle Caps from secured territories.", true);
} else {
let newCap = deck.length > 0 ? deck.pop() : {
country: "Wasteland Salvage",
type: "Wild"
};
this.player.cards.push(newCap);
if (this.getBestTrade(this.player.cards)) {
await this.logAction("STASH FULL: Enough Caps collected to hire more troops.");
let stashBtn = document.getElementById('view-cards-btn');
if (stashBtn) stashBtn.classList.add('ready-to-trade');
} else {
await this.logAction("SCAVENGED: Found a Bottle Cap after securing enemy territory.");
}
}
this.justFoundLoot = false;
}
this.isDistributingLoot = false; // Unset the flag
this.updateInfo();
}
this.player.conqueredThisTurn = false;
this.updateButtonText();
// --- FIX: UNIVERSAL TECHNOLOGY OVERDRIVE COUNTDOWN ---
if (this.perksEnabled) {
this.players.forEach(p => {
// Safely check if the entity has a perk object first to prevent crashes
if (p.alive && p.perk && p.perk.id === 'tech_hoarders') {
if (p.techOverdriveActive > 0) {
p.techOverdriveActive--;
if (p.techOverdriveActive === 0) {
p.techOverdriveCooldown = 3;
// Only print the expiration log if it's the human player
if (p.isPlayer && this.logAction) {
this.logAction("Technology Overdrive has worn off. Systems require 3 turns to recharge.");
}
}
}
}
});
}
// --- END OF FIX ---
this.aiMove();
};
Gamestate.checkAutoPhaseAdvance = function() {
if (this.aiTurn || this.modalIsOpen) return;
let shouldAdvance = false;
let reason = "OUT OF AP";
if (this.stage === "Commander Phase" && this.commandersEnabled && this.player.commander) {
if (this.player.commander.ap <= 0) shouldAdvance = true;
} else if (this.stage === "Maneuver") {
if (this.player.maneuverPoints <= 0) {
shouldAdvance = true;
reason = "OUT OF MANEUVERS";
}
}
if (shouldAdvance) {
const endBtn = document.getElementById('end');
if (endBtn) {
endBtn.textContent = `${reason} - ADVANCING...`;
endBtn.style.pointerEvents = "none"; // Stop double-clicking
endBtn.style.opacity = "0.7";
setTimeout(() => {
endBtn.style.pointerEvents = "auto";
endBtn.style.opacity = "1";
this.handleEndTurn();
}, 1200);
}
}
};
Gamestate.unitBonus = function (player, i) {
if (!player.alive || player.isNeutral) return 0;
player.bonus = 0;
// Standard reinforcement bonus
player.bonus += Math.floor(player.areas.length / 3);
player.bonus += this.continentBonus(player);
// --- PERK LOGIC: New California Republic ('logistical_superiority') ---
if (this.perksEnabled && player.perk && player.perk.id === 'logistical_superiority') {
let extraContinentBonus = 0;
continents.forEach(continent => {
let ownsContinent = continent.areas.every(area => player.areas.includes(area) && !this.countries.find(c => c.name === area).isCrater);
if (ownsContinent) {
// NCR gets an extra 50% troops from the continent's base value, rounded up.
extraContinentBonus += Math.ceil(continent.bonus * 0.5);
}
});
player.bonus += extraContinentBonus;
}
// Minimum reinforcement rule
if (player.bonus < 3) { player.bonus = 3; }
if (infoIncome[i]) infoIncome[i].innerHTML = player.bonus;
return player.bonus;
}
Gamestate.continentBonus = function (player) {
if (player.isNeutral) return 0;
let bonus = 0; continents.forEach(continent => {
let ownsContinent = continent.areas.every(area => player.areas.includes(area) && !this.countries.find(c => c.name === area).isCrater);
if (ownsContinent) { bonus += continent.bonus; }
})
return bonus;
}
Gamestate.findShortestPath = function (startNodeName, endNodeName) {
let queue = [
[startNodeName]
];
let visited = new Set([startNodeName]);
while (queue.length > 0) {
let path = queue.shift();
let nodeName = path[path.length - 1];
if (nodeName === endNodeName) {
return path;
}
let country = this.countries.find(c => c.name === nodeName);
if (country) {
for (let neighborName of country.neighbours) {
if (!visited.has(neighborName)) {
visited.add(neighborName);
let newPath = [...path, neighborName];
queue.push(newPath);
}
}
}
}
return null; // No path found
};
// Helper function to check if a territory is on a continent border
Gamestate.isContinentBorder = function (countryName) {
const country = this.countries.find(c => c.name === countryName);
if (!country) return false;
const ownContinent = country.continent;
return country.neighbours.some(neighbourName => {
const neighbour = this.countries.find(n => n.name === neighbourName);
return neighbour && neighbour.continent !== ownContinent;
});
};
Gamestate.addArmy = async function (e) {
let actionFired = false;
const clickedCountry = this.countries.find(c => c.name === e.target.id);
if (!clickedCountry || clickedCountry.owner !== this.player.name) return;
// --- NEW: CRYOLATOR & SHROUD CARD BLOCKS ---
if (clickedCountry.isFrozen > 0) {
if (this.showToast) this.showToast("Cannot deploy: Territory is frozen solid!", "red");
return;
}
if (clickedCountry.isBlockaded > 0) {
if (this.showToast) this.showToast("Cannot deploy: Territory is currently blockaded!", "red");
return;
}
// --- PERK LOGIC: Brotherhood of Steel ('prydwen_deployment') ---
if (this.perksEnabled && this.player.perk?.id === 'prydwen_deployment' && this.player.airborneTroops > 0) {
// Check if the clicked territory is a valid border
if (this.isContinentBorder(clickedCountry.name)) {
const troopsToDeploy = e.shiftKey ? this.player.airborneTroops : 1;
this.player.airborneTroops -= troopsToDeploy;
clickedCountry.army += troopsToDeploy;
await this.logAction(`🚁 Deployed ${troopsToDeploy} airborne troop(s) to the contested border at ${formatTerritoryName(clickedCountry.name)}.`);
actionFired = true;
} else {
if (this.showToast) this.showToast("Airborne troops can only be deployed to territories on a continent border.", "red");
return; // Stop if the deployment is invalid
}
}
// --- Standard Deployment Logic ---
else if (this.player.reserve > 0) {
const troopsToDeploy = e.shiftKey ? this.player.reserve : 1;
this.playerTroopsPlaced += troopsToDeploy;
clickedCountry.army += troopsToDeploy;
this.player.reserve -= troopsToDeploy;
actionFired = true;
}
if (actionFired) {
if (reserveDisplay) reserveDisplay.innerHTML = this.player.reserve;
if (e.target.nextElementSibling) e.target.nextElementSibling.textContent = clickedCountry.army;
this.updateInfo();
// Check if all troops (both reserve and airborne) are deployed
const allTroopsDeployed = this.player.reserve === 0 && (this.player.airborneTroops === 0 || !this.player.airborneTroops);
if (allTroopsDeployed) {
await this.logAction(`${this.player.name} deployed all available reinforcements.`);
this.playerTroopsPlaced = 0;
this.stage = "Battle";
let endBtn = document.getElementById('end');
if (endBtn) {
endBtn.style.opacity = "1";
endBtn.style.pointerEvents = "auto";
}
if (turnInfo) turnInfo.textContent = "Combat Phase";
if (turnInfoMessage) turnInfoMessage.textContent = "Select staging territory, then target an enemy.";
this.updateButtonText();
this.updateInfo();
}
}
};
Gamestate.vatsTargeting = async function (attackerEl, defenderEl) {
let turbo = turboToggle && turboToggle.checked; if (turbo) return;
await this.logAction(`[ V.A.T.S. TARGETING SEQUENCE ENGAGED ]`);
for (let i = 0; i < 3; i++) {
if (attackerEl) attackerEl.classList.add('vats-flash'); if (defenderEl) defenderEl.classList.add('vats-flash');
await new Promise(r => setTimeout(r, 80));
if (attackerEl) attackerEl.classList.remove('vats-flash'); if (defenderEl) defenderEl.classList.remove('vats-flash');
await new Promise(r => setTimeout(r, 60));
}
}
Gamestate.attack = async function (e) {
// --- PERK: Check for Mojave Brotherhood Lockdown ---
if (this.stage !== 'Frenzy Targeting' && this.perksEnabled && this.prevCountry && this.prevCountry.isLockedDown) {
if (this.showToast) this.showToast("Cannot attack: Territory is under Elder's Edict lockdown.", "red");
this.prevCountry = null; this.prevTarget = null;
return;
}
// --- NEW: CRYOLATOR FREEZE CHECK ---
if (this.prevCountry && this.prevCountry.isFrozen > 0) {
if (this.showToast) this.showToast(`Cannot attack: ${formatTerritoryName(this.prevCountry.name)} is frozen solid!`, "red");
this.prevCountry = null; this.prevTarget = null;
return;
}
if (this.prevTarget) this.prevTarget.classList.remove('flash');
let country = this.countries.find(c => c.name === e.target.id);
if (!country || country.isCrater) return;
// --- NEW: CHEM FRENZY ATTACK WORKFLOW ---
if (this.stage === 'Frenzy Targeting') {
// STAGE 1: SELECTING THE ATTACKING TERRITORY
if (!this.prevCountry) {
if (country.owner === this.player.name && country.army > 1) {
// NEW: Block attacking if exploring
if (country.isExploring) {
if (Gamestate.showToast) Gamestate.showToast("Cannot attack: Troops are currently exploring.", "red");
return;
}
this.prevCountry = country; // Source selected
e.target.classList.add('flash');
this.prevTarget = e.target;
if (turnInfoMessage) turnInfoMessage.textContent = "Now, select an adjacent enemy territory to ATTACK.";
} else {
if (this.showToast) this.showToast("Must select a friendly territory with more than 1 troop.", "red");
}
return; // Wait for player to select a target
}
// STAGE 2: SELECTING THE TARGET TERRITORY
else {
if (this.prevCountry.name !== country.name && country.owner !== this.player.name && this.prevCountry.neighbours.includes(country.name)) {
// Target is valid, now show the sacrifice modal
const frenzyResult = await this.showChemFrenzyModal(this.prevCountry.army);
// --- THIS IS THE FIX ---
// First, check if the player cancelled from the modal.
// The modal now sends back useFrenzy: false on cancel.
if (!frenzyResult.useFrenzy) {
// Player cancelled. Reset everything and do not attack.
this.stage = 'Battle';
this.prevCountry = null;
if (this.prevTarget) this.prevTarget.classList.remove('flash');
this.prevTarget = null;
this.updateInfo();
if(this.showToast) this.showToast("Frenzied attack cancelled.", "grey");
return; // Exit the function entirely
}
// --- END OF FIX ---
// If we are here, the player clicked "USE FRENZY".
// The button is disabled if sacrifice is 0, so we don't need to re-check that.
this.prevCountry.army -= frenzyResult.sacrifice;
this.player.army -= frenzyResult.sacrifice;
this.player.chemFrenzyBonus = frenzyResult.bonus;
this.player.chemFrenzyCooldown = 3;
await this.logAction(`CHEM FRENZY! Sacrificed ${frenzyResult.sacrifice} troops for a +${frenzyResult.bonus * 100}% combat bonus.`);
// --- NEW, MORE ROBUST FIX ---
// Explicitly get the map elements for the attacker and defender
let attackerMapElement = document.getElementById(this.prevCountry.name);
let defenderMapElement = document.getElementById(country.name);
// Call vatsTargeting with these guaranteed elements
await this.vatsTargeting(attackerMapElement, defenderMapElement);
// --- END OF NEW FIX ---
await this.battle(this.prevCountry, country, this.player, 0);
// Whether they used frenzy or cancelled, reset the stage and selection
this.stage = 'Battle';
this.prevCountry = null;
this.prevTarget = null;
e.target.classList.remove('flash');
this.updateInfo();
} else {
if (this.showToast) this.showToast("Invalid target. Select an adjacent enemy territory.", "red");
// Deselect if the target is invalid
this.prevCountry = null;
if (this.prevTarget) this.prevTarget.classList.remove('flash');
this.prevTarget = null;
// Reset instructions
if (turnInfoMessage) turnInfoMessage.textContent = "Select a friendly territory to launch your frenzied attack FROM.";
}
return;
}
}
// --- END OF CHEM FRENZY WORKFLOW ---
// --- STANDARD ATTACK WORKFLOW ---
if (this.stage === 'Battle') {
// WHEN YOU CLICK YOUR FIRST TERRITORY (Selecting the attacker)
if (!this.prevCountry) {
if (country.owner === this.player.name) {
// NEW: Block attacking if exploring
if (country.isExploring) {
if (Gamestate.showToast) Gamestate.showToast("Cannot attack: Troops are currently exploring.", "red");
return;
}
// --- INTERNAL PURGE LOGIC ---
let trespasser = this.players.find(p => p !== this.player && p.alive && !p.isNeutral && p.commander && p.commander.hp > 0 && p.commander.loc === country.name);
if (this.commandersEnabled && trespasser) {
if (country.army <= 1) {
if (this.showToast) this.showToast("Garrison too weak! Need at least 2 troops to execute a Purge.", "red");
} else if (trespasser.commander.hasBeenAmbushed) {
if (this.showToast) this.showToast("Target has already evaded a tactical strike this turn!", "red");
} else {
let choice = await this.showTacticalModal(trespasser.name, formatTerritoryName(country.name), true);
if (choice === "ambush") {
trespasser.commander.wasAttacked = true;
trespasser.commander.hasBeenAmbushed = true;
if (map) map.style.pointerEvents = "none";
let atkForce = country.army;
let dmgToVip = Math.floor(atkForce * (Math.random() * 0.5 + 0.5));
// --- NEW: Refractor Perk ---
if (this.levelingEnabled && trespasser.activeBuffs && trespasser.activeBuffs.refractor) {
dmgToVip = Math.floor(dmgToVip / 2);
}
if (dmgToVip < 1) dmgToVip = 1;
let retaliation = Math.floor(Math.random() * 4) + 2;
trespasser.commander.hp -= dmgToVip;
country.army -= retaliation;
if (country.army < 1) country.army = 1;
let mapEl = document.getElementById(country.name);
if (mapEl && mapEl.nextElementSibling) mapEl.nextElementSibling.textContent = country.army;
await this.logAction(`[ INTERNAL PURGE ] Garrison hunted down ${trespasser.name}'s Commander! Dealt ${dmgToVip} DMG. Lost ${retaliation} troops to return fire.`, true);
if (trespasser.commander.hp <= 0) await this.killCommander(trespasser, this.player);
this.prevCountry = null; this.prevTarget = null;
if (e.target) e.target.classList.remove('flash');
this.updateInfo();
if (map) map.style.pointerEvents = "auto";
return;
}
}
}
e.target.classList.add('flash'); this.prevTarget = e.target; this.prevCountry = country;
}
return;
}
// WHEN YOU CLICK THE SECOND TERRITORY (The Target)
if (this.prevCountry.name !== country.name && country.owner !== this.player.name && this.prevCountry.owner === this.player.name) {
// --- FIX: Prevent attacking Permanent Allies (Alliance Mode) ---
if (this.isAllianceMode && this.areAllies(this.player.name, country.owner)) {
if (this.showToast) this.showToast(`Cannot attack ${formatTerritoryName(country.name)}: Friendly Fire disabled.`, "red");
this.prevCountry = null;
if (this.prevTarget) this.prevTarget.classList.remove('flash');
this.prevTarget = null;
return;
}
// --- NEW: Prevent attacking INTO a locked territory ---
if (country.isLockedDown) {
if (this.showToast) this.showToast(`Cannot attack: ${formatTerritoryName(country.name)} is under Elder's Edict lockdown.`, "red");
this.prevCountry = null;
if (this.prevTarget) this.prevTarget.classList.remove('flash');
this.prevTarget = null;
return;
}
// --- END OF NEW LOGIC ---
if (this.prevCountry.neighbours.includes(country.name) && this.prevCountry.army > 1) {
// --- TACTICAL DECISION (AMBUSH OR ASSAULT) ---
let strandedCmdr = this.players.find(p => p !== this.player && p.alive && !p.isNeutral && p.commander && p.commander.hp > 0 && p.commander.loc === country.name && p.name !== country.owner);
let attackChoice = "assault";
if (this.commandersEnabled && strandedCmdr) {
let isCmdrOnOwnLand = (country.owner === strandedCmdr.name);
let isCmdrOnAllyLand = this.areAllies(strandedCmdr.name, country.owner);
if (isCmdrOnOwnLand || isCmdrOnAllyLand) {
attackChoice = "assault";
} else if (strandedCmdr.commander.hasBeenAmbushed) {
attackChoice = "assault";
} else {
attackChoice = await this.showTacticalModal(strandedCmdr.name, formatTerritoryName(country.name));
if (attackChoice === "cancel") { this.prevCountry = null; this.prevTarget = null; return; }
}
}
// BRANCH 1: THE ASSASSINATION (Suppressive Fire)
if (attackChoice === "ambush") {
// ... (Your existing ambush logic remains unchanged here) ...
// NOTE: The old Chem Frenzy call was here, it is now removed.
}
// BRANCH 2: THE INVASION (Standard Combat)
let currentTruce = this.getTruce(this.player.name, country.owner);
if (currentTruce && currentTruce.locked) {
if (this.showToast) this.showToast(`Cannot attack: You are bound by a forced Extortion Truce.`, "red");
this.prevTarget = null; this.prevCountry = null; return;
}
else if (this.areAllies(this.player.name, country.owner)) {
let confirmBetrayal = await this.showBetrayalModal(country.owner);
if (!confirmBetrayal) { this.prevTarget = null; this.prevCountry = null; return; }
else { this.breakTruce(this.player.name, country.owner); }
}
// The old Chem Frenzy logic is now removed from here.
let attackerMap = document.getElementById(this.prevCountry.name); let defenderMap = document.getElementById(country.name);
if (map) map.style.pointerEvents = "none";
// Meat Grinder pre-strike
if (this.nukesEnabled && country.isSilo && country.siloTurns > 0) {
let defBuff = Math.min(0.80, country.siloTurns * 0.20);
if (this.activeNuke && this.activeNuke.launcher === country.owner) defBuff = 0;
if (country.owner === "Wasteland Horrors") defBuff = 0;
if (defBuff > 0) {
let meatGrinder = Math.floor((this.prevCountry.army - 1) * (defBuff / 2));
if (meatGrinder > 0) {
this.prevCountry.army -= meatGrinder; this.player.army -= meatGrinder;
if (attackerMap && attackerMap.nextElementSibling) attackerMap.nextElementSibling.textContent = this.prevCountry.army;
await this.logAction(`[ MEAT GRINDER ] Automated Silo turrets vaporized ${meatGrinder} attackers before combat began!`, true);
}
}
}
if (this.prevCountry.army > 1) {
await this.vatsTargeting(attackerMap, defenderMap); await this.battle(this.prevCountry, country, this.player, 0);
} else { await this.logAction(`ASSAULT FAILED: Attacking force decimated by automated defenses.`); }
if (map) map.style.pointerEvents = "auto";
} else if (this.prevCountry.army === 1) {
this.updateInfo(); await this.logAction("Cannot attack: A minimum garrison of 1 troop must remain in the territory.", true);
}
}
this.prevCountry = null; this.prevTarget = null;
}
}
Gamestate.maneuver = async function (e) {
if (this.prevTarget) {
this.prevTarget.classList.remove('flash');
}
let country = this.countries.find(c => c.name === e.target.id);
if (!country || country.isCrater) return;
// --- Commander Phase Logic ---
if (this.stage === "Commander Phase") {
if (!this.player.commander || this.player.commander.ap <= 0) return;
let cmdrLoc = this.countries.find(c => c.name === this.player.commander.loc);
if (!cmdrLoc) return;
// FIX #1: Prevent wasting AP by clicking the same territory if no enemy is there.
let enemyOnSameTile = this.players.some(p => p !== this.player && p.commander && p.commander.loc === cmdrLoc.name);
if (cmdrLoc.name === country.name && !enemyOnSameTile) {
return;
}
// Check if target is a neighbor OR the current tile (for dueling trespassers)
if (cmdrLoc.neighbours.includes(country.name) || cmdrLoc.name === country.name) {
// FIX #4.2: Find ALL enemy commanders on the target tile
let enemyCommanders = this.players.filter(p => p !== this.player && p.alive && !p.isNeutral && p.commander && p.commander.loc === country.name);
let validTargets = enemyCommanders.filter(p => !this.areAllies(this.player.name, p.name));
// --- FIX #3: Prevent spending AP on a non-duel same-tile click ---
if (cmdrLoc.name === country.name && validTargets.length === 0) {
return; // Do nothing if clicking the same tile without an enemy
}
// --- END FIX ---
if (validTargets.length > 0) { // Initiate DUEL workflow
let duelTarget = null;
if (validTargets.length === 1) {
duelTarget = validTargets[0];
} else {
// Call the new multi-target modal
duelTarget = await new Promise(resolve => {
let modal = document.getElementById('multi-cmdr-modal');
let choicesContainer = document.getElementById('multi-cmdr-choices');
choicesContainer.innerHTML = '';
validTargets.forEach(target => {
let btn = document.createElement('button');
btn.textContent = `${target.name} (${target.commander.hp} HP)`;
btn.style.borderColor = target.color;
btn.style.color = target.color;
btn.onclick = () => { modal.style.display = 'none'; resolve(target); };
choicesContainer.appendChild(btn);
});
let cancelBtn = document.getElementById('multi-cmdr-cancel');
let newCancel = cancelBtn.cloneNode(true);
cancelBtn.parentNode.replaceChild(newCancel, cancelBtn);
newCancel.onclick = () => { modal.style.display = 'none'; resolve(null); };
modal.style.display = 'flex';
});
}
if (!duelTarget) return; // Player cancelled from modal
// If moving to a new tile to fight, update location first
if (this.player.commander.loc !== duelTarget.commander.loc) {
this.player.commander.loc = duelTarget.commander.loc;
}
// --- DUEL LOGIC ---
this.player.commander.ap -= 1;
await this.logAction(`[ REGICIDE DUEL ] Commander initiated direct combat with ${duelTarget.name}'s Commander!`, true);
let rawDmgToEnemy = Math.floor(Math.random() * 16) + 10;
let rawDmgToSelf = Math.floor(Math.random() * 11) + 10;
if (cmdrLoc.owner === this.player.name) rawDmgToSelf = Math.floor(Math.random() * 11) + 5;
let cappedDmgToEnemy = Math.min(25, rawDmgToEnemy);
let cappedDmgToSelf = Math.min(25, rawDmgToSelf);
if (duelTarget.commander.isConverting) cappedDmgToSelf = 0;
if (this.player.commander.isConverting) cappedDmgToEnemy = 0;
duelTarget.commander.hp -= cappedDmgToEnemy;
this.player.commander.hp -= cappedDmgToSelf;
this.player.commander.hasFought = true;
duelTarget.commander.wasAttacked = true;
this.player.commander.wasAttacked = true;
await this.logAction(`DUEL: Dealt ${cappedDmgToEnemy} DMG. Received ${cappedDmgToSelf} DMG in return.`);
if (duelTarget.commander.hp <= 0) await this.killCommander(duelTarget, this.player);
if (this.player.commander.hp <= 0) await this.killCommander(this.player, duelTarget);
} else { // No valid duel targets, so it's a standard MOVE action
this.player.commander.loc = country.name;
this.player.commander.ap -= 1;
this.player.commander.siegeTurns = 0;
// --- NEW: Ninja Perk ---
if (this.levelingEnabled && this.player.activeBuffs && this.player.activeBuffs.ninja) {
await this.logAction(`COMMANDER MOVEMENT: Commander relocated to ${formatTerritoryName(country.name)}. (Hidden from sensors)`);
} else {
await this.logAction(`COMMANDER MOVEMENT: Commander relocated to ${formatTerritoryName(country.name)}.`);
}
this.checkAutoPhaseAdvance();
}
this.updateInfo();
}
return;
}
// --- NEW UNIFIED MANEUVER LOGIC ---
// 1. SELECTING A SOURCE TERRITORY
if (!this.prevCountry) {
if (country.owner !== this.player.name) return; // Can't start from a non-player territory
if (country.isLockedDown) {
if (this.showToast) this.showToast("Maneuver blocked: Territory is under Elder's Edict lockdown.", "red");
return;
}
// NEW: Block maneuvering if exploring
if (country.isExploring) {
if (Gamestate.showToast) Gamestate.showToast("Maneuver blocked: Troops are currently exploring.", "red");
return;
}
if (country.army <= 1) {
if (this.showToast) this.showToast("Maneuver blocked: Must have more than 1 troop to move.", "red");
return;
}
// --- FIX: ALLIANCE AIRLIFT (LANDLOCKED CHECK) ---
let hasVertibirdPerk = (this.perksEnabled && this.player.perk && this.player.perk.id === 'vertibird_assault');
// FIX: Bypass the Cap tax check if the player already owns a Vertibird perk!
if (this.isAllianceMode && this.wastelandEconomyActive && !hasVertibirdPerk) {
let queue = [country.name];
let visited = new Set([country.name]);
let hasEnemyContact = false;
// Scan all connected friendly territories
while (queue.length > 0) {
let currName = queue.shift();
let currCountry = this.countries.find(c => c.name === currName);
if (currCountry) {
for (let n of currCountry.neighbours) {
let nc = this.countries.find(x => x.name === n);
if (nc && !nc.isCrater) {
// Does it touch an enemy?
if (nc.owner !== this.player.name && !this.areAllies(this.player.name, nc.owner)) {
hasEnemyContact = true;
break;
} else if (nc.owner === this.player.name && !visited.has(n)) {
visited.add(n);
queue.push(n);
}
}
}
}
if (hasEnemyContact) break;
}
// If completely boxed in, trigger the airlift offer
if (!hasEnemyContact) {
let choice = await this.showEncounterModal(
"LANDLOCKED",
"This territory has no path to the front line. Do you want to charter a Vertibird to airlift these troops? (Cost: 5 Caps per space jumped)",
[{id: "yes", text: "Yes (Charter Vertibird)"}, {id: "no", text: "No (Cancel)"}]
);
if (choice === "no") return;
this.isAirlifting = true;
} else {
this.isAirlifting = false;
}
} else {
this.isAirlifting = false;
}
// --- END AIRLIFT CHECK ---
// If all checks pass, select this as the source
this.prevCountry = country;
let targetEl = document.getElementById(country.name);
if (targetEl) {
targetEl.classList.add('flash');
this.prevTarget = targetEl;
}
return; // Wait for player to select a destination
}
// 2. A SOURCE IS ALREADY SELECTED, NOW SELECTING A DESTINATION
if (this.prevCountry.name === country.name) {
// Player clicked the same territory again, de-select it
this.prevCountry = null;
if (this.prevTarget) this.prevTarget.classList.remove('flash');
this.prevTarget = null;
this.isAirlifting = false; // Reset airlift flag
return;
}
// --- NEW: Prevent maneuvering INTO a locked-down territory ---
if (country.isLockedDown) {
if (this.showToast) this.showToast("Maneuver blocked: Destination territory is under Elder's Edict lockdown.", "red");
this.prevCountry = null;
if (this.prevTarget) this.prevTarget.classList.remove('flash');
this.prevTarget = null;
return;
}
// --- END OF NEW LOGIC ---
// --- FIX: AIRLIFT DESTINATION HANDLING ---
if (this.isAirlifting && (country.owner === this.player.name || this.areAllies(this.player.name, country.owner))) {
// Calculate path distance through allied space
let queue = [[this.prevCountry.name]];
let visited = new Set([this.prevCountry.name]);
let pathCost = -1;
while (queue.length > 0) {
let path = queue.shift();
let current = path[path.length - 1];
if (current === country.name) {
pathCost = (path.length - 1) * 5;
break;
}
let c = this.countries.find(x => x.name === current);
if (c) {
c.neighbours.forEach(n => {
let nc = this.countries.find(x => x.name === n);
if (!visited.has(n) && nc && !nc.isCrater && (nc.owner === this.player.name || this.areAllies(this.player.name, nc.owner))) {
visited.add(n);
queue.push([...path, n]);
}
});
}
}
if (pathCost === -1) {
if (this.showToast) this.showToast("No valid allied airspace connecting these territories.", "red");
this.prevCountry = null; if (this.prevTarget) this.prevTarget.classList.remove('flash'); this.prevTarget = null; this.isAirlifting = false;
return;
}
if (this.player.caps < pathCost) {
if (this.showToast) this.showToast(`Airlift requires ${pathCost} Caps. You only have ${this.player.caps}.`, "red");
this.prevCountry = null; if (this.prevTarget) this.prevTarget.classList.remove('flash'); this.prevTarget = null; this.isAirlifting = false;
return;
}
let maxMove = this.prevCountry.army - 1;
let promptText = `${formatTerritoryName(country.name)} (Airlift Cost: ${pathCost} Caps)`;
let moveAmount = e.shiftKey ? maxMove : (await this.showManeuverModal(1, maxMove, promptText));
if (moveAmount !== null) {
this.player.caps -= pathCost;
country.army += moveAmount;
this.prevCountry.army -= moveAmount;
await this.logAction(`[ AIRLIFT ] Paid ${pathCost} Caps to transport ${moveAmount} troops to ${formatTerritoryName(country.name)}.`, true);
// If gifting troops directly to ally
if (country.owner !== this.player.name) {
let ally = this.players.find(p => p.name === country.owner);
if (ally) ally.army += moveAmount;
this.player.army -= moveAmount;
}
this.player.maneuverPoints = 0;
this.isAirlifting = false;
this.handleEndTurn();
} else {
// User cancelled from the slider modal
this.prevCountry = null; if (this.prevTarget) this.prevTarget.classList.remove('flash'); this.prevTarget = null; this.isAirlifting = false;
}
return; // Prevent standard maneuver logic from running
}
// --- END AIRLIFT DESTINATION HANDLING ---
// RAILROAD PERK LOGIC: "Rapid Relocation"
if (this.perksEnabled && this.player.perk && this.player.perk.id === 'rapid_relocation') {
if (country.owner !== this.player.name) {
if (this.showToast) this.showToast("Invalid Destination: Must target a friendly territory.", "red");
return;
}
let path = this.findShortestPath(this.prevCountry.name, country.name);
if (path) {
let cost = path.length - 1;
if (this.player.maneuverPoints >= cost) {
let maxMove = this.prevCountry.army - 1;
let moveAmount = e.shiftKey ? maxMove : (await this.showManeuverModal(1, maxMove, formatTerritoryName(country.name)));
if (moveAmount !== null) {
country.army += moveAmount;
this.prevCountry.army -= moveAmount;
this.player.maneuverPoints -= cost;
await this.logAction(`Relocated ${moveAmount} troops to ${formatTerritoryName(country.name)}. (${cost} moves used).`);
if (this.player.maneuverPoints <= 0) {
this.handleEndTurn();
} else {
if (turnInfoMessage) turnInfoMessage.textContent = `Move troops. You have ${this.player.maneuverPoints} moves remaining.`;
this.updateInfo();
}
}
} else {
if (this.showToast) this.showToast(`Path requires ${cost} moves, but you only have ${this.player.maneuverPoints}.`, "red");
}
}
// Reset selection after every attempt for The Railroad
this.prevCountry = null;
if (this.prevTarget) this.prevTarget.classList.remove('flash');
this.prevTarget = null;
return;
}
// STANDARD, GREAT KHANS, & ENCLAVE PLAYER LOGIC (Non-Railroad)
if (country.owner === this.player.name) {
let isDirectNeighbor = this.prevCountry.neighbours.includes(country.name);
// --- FIX ISSUE #2: Alliance Vertibird Airlift (Pathing through Allies) ---
let airliftCost = 0;
let isAlliedPath = false;
if (!isDirectNeighbor && this.isAllianceMode && this.wastelandEconomyActive) {
let queue = [[this.prevCountry.name]];
let visited = new Set([this.prevCountry.name]);
while (queue.length > 0) {
let path = queue.shift();
let current = path[path.length - 1];
if (current === country.name) {
isAlliedPath = true;
airliftCost = (path.length - 1) * 5;
break;
}
let c = this.countries.find(x => x.name === current);
if (c) {
c.neighbours.forEach(n => {
let nc = this.countries.find(x => x.name === n);
if (!visited.has(n) && nc && !nc.isCrater && (nc.owner === this.player.name || this.areAllies(this.player.name, nc.owner))) {
visited.add(n);
queue.push([...path, n]);
}
});
}
}
}
// --- END AIRLIFT FIX ---
// --- NEW: The Enclave "Vertibird Assault" ---
if (this.perksEnabled && this.player.perk && this.player.perk.id === 'vertibird_assault') {
isDirectNeighbor = true; // Vertibirds bypass the adjacency rule!
}
// --- END ENCLAVE LOGIC ---
let validEnemyPath = null;
// --- NEW: Great Khans "Guerrilla Tactics" Routing ---
if (!isDirectNeighbor && this.perksEnabled && this.player.perk && this.player.perk.id === 'guerrilla_tactics') {
// Find a common neighbor that is an enemy
let commonNeighbors = this.prevCountry.neighbours.filter(n => country.neighbours.includes(n));
for (let n of commonNeighbors) {
let midCountry = this.countries.find(c => c.name === n);
if (midCountry && midCountry.owner !== this.player.name && !midCountry.isCrater) {
validEnemyPath = midCountry;
break; // We just need one valid path through an enemy
}
}
}
// --- END NEW ROUTING ---
if ((isDirectNeighbor || validEnemyPath || isAlliedPath) && this.prevCountry.army > 1) {
if (isAlliedPath && this.player.caps < airliftCost) {
if (this.showToast) this.showToast(`Airlift requires ${airliftCost} Caps. You only have ${this.player.caps}.`, "red");
this.prevCountry = null;
if (this.prevTarget) this.prevTarget.classList.remove('flash');
this.prevTarget = null;
return;
}
let maxMove = this.prevCountry.army - 1;
let promptText = isAlliedPath ? `${formatTerritoryName(country.name)} (Airlift Cost: ${airliftCost} Caps)` : formatTerritoryName(country.name);
let moveAmount = e.shiftKey ? maxMove : (await this.showManeuverModal(1, maxMove, promptText));
if (moveAmount !== null) {
if (isAlliedPath) {
this.player.caps -= airliftCost;
await this.logAction(`[ AIRLIFT ] Paid ${airliftCost} Caps to transport troops through allied airspace.`, true);
}
country.army += moveAmount;
this.prevCountry.army -= moveAmount;
// --- NEW: Apply Guerrilla Tactics Damage ---
if (validEnemyPath) {
// Inflict 15% casualties on the territory passed through (minimum 1)
let casualties = Math.max(1, Math.floor(validEnemyPath.army * 0.15));
validEnemyPath.army -= casualties;
if (validEnemyPath.army < 1) validEnemyPath.army = 1; // Can't capture territory this way
let pathMapEl = document.getElementById(validEnemyPath.name);
if (pathMapEl && pathMapEl.nextElementSibling) pathMapEl.nextElementSibling.textContent = validEnemyPath.army;
await this.logAction(`GUERRILLA TACTICS: Khans raided through ${formatTerritoryName(validEnemyPath.name)}, inflicting ${casualties} casualties!`);
}
// --- END PERK LOGIC ---
// FIX: Agility Bobblehead integration
this.player.maneuverPoints -= 1;
this.updateInfo();
this.checkAutoPhaseAdvance();
if (this.player.maneuverPoints <= 0) {
this.handleEndTurn();
} else {
// If they have points left (Agility Bobblehead), reset selection and let them click again!
this.prevCountry = null;
if (this.prevTarget) this.prevTarget.classList.remove('flash');
this.prevTarget = null;
if (turnInfoMessage) turnInfoMessage.textContent = `Move troops. You have ${this.player.maneuverPoints} moves remaining.`;
this.updateInfo();
}
} else {
// If they cancel the modal, reset selection
this.prevCountry = null;
if (this.prevTarget) this.prevTarget.classList.remove('flash');
this.prevTarget = null;
}
} else {
// Selected a friendly territory that is not adjacent (and no valid guerrilla path)
if (!isDirectNeighbor && !validEnemyPath && !isAlliedPath && this.showToast) {
this.showToast("Invalid Maneuver. Must select an adjacent friendly territory.", "red");
}
this.prevCountry = null;
if (this.prevTarget) this.prevTarget.classList.remove('flash');
this.prevTarget = null;
}
} else {
// Invalid move for standard players, so reset selection
this.prevCountry = null;
if (this.prevTarget) this.prevTarget.classList.remove('flash');
this.prevTarget = null;
}
};
Gamestate.useStimpak = async function () {
if (this.stage !== "Commander Phase" || !this.commandersEnabled || !this.player.commander) return;
// Smart Max HP check (Includes Life Giver + X-01 Armor)
let maxHP = 100 + (this.levelingEnabled && this.player.activeBuffs && this.player.activeBuffs.lifeGiver ? this.player.activeBuffs.lifeGiver * 25 : 0);
if (this.player.relics && this.player.relics.some(r => r.id === 'x01armor' && r.isEquipped)) maxHP += 50;
const healAmount = (this.levelingEnabled && this.player.activeBuffs && this.player.activeBuffs.medic) ? 40 : 20;
if (this.player.commander.ap <= 0 || this.player.commander.stimpaks <= 0 || this.player.commander.hp >= maxHP) return;
this.player.commander.stimpaks -= 1;
this.player.commander.ap -= 1;
this.player.commander.hp = Math.min(maxHP, this.player.commander.hp + healAmount);
await this.logAction(`[ MEDICAL ] Commander used a Stimpak. Recovered ${healAmount} HP.`, true);
if (this.renderInventory) this.renderInventory();
this.updateInfo();
this.checkAutoPhaseAdvance();
}
// --- NEW: HEAL DOGMEAT FROM INVENTORY ---
Gamestate.healDogmeat = async function() {
if (this.player.dogmeatStatus !== 'injured') return;
let hasStimpak = this.commandersEnabled && this.player.commander && this.player.commander.stimpaks > 0;
let hasCaps = this.wastelandEconomyActive && this.player.caps >= 50;
if (hasStimpak) {
this.player.commander.stimpaks--;
this.player.dogmeatStatus = 'healthy';
this.logAction(`[ COMPANION ] You used a Stimpak to treat Dogmeat's wounds. He's ready for action!`, true);
} else if (hasCaps) {
this.player.caps -= 50;
this.player.dogmeatStatus = 'healthy';
this.logAction(`[ COMPANION ] You spent 50 Caps on medical supplies for Dogmeat. He's ready for action!`, true);
}
// Close the inventory and re-render everything
let invModal = document.getElementById('inventory-modal');
if (invModal) invModal.style.display = 'none';
if (this.queueToast) this.queueToast(`>>> COMPANION HEALED <<< <br><span class="paw-icon" style="font-size: 32px;"></span><br>DOGMEAT IS READY FOR ACTION`, "var(--pip-color)", true);
this.updateInfo();
if (this.renderInventory) this.renderInventory();
};
Gamestate.activateBobblehead = async function (itemKey) {
if (!this.bobbleheads) return;
const item = this.bobbleheads.find(i => i.key === itemKey);
if (!item || !item.found || item.cooldown > 0) return;
// --- FIX: SMART ACTIVATION LOCKOUT ---
if (item.key === 'c' && this.stage !== "Recruitment" && this.stage !== "Fortify") {
if (this.showToast) this.showToast(`Cannot activate: Must be in Recruitment or Fortify phase.`, "red");
return;
}
if (item.key === 'a' && this.stage !== "Maneuver" && this.stage !== "Commander Phase") {
if (this.showToast) this.showToast(`Cannot activate: Must be in Maneuver or Commander phase.`, "red");
return;
}
if (['s', 'e', 'p', 'i', 'l'].includes(item.key) && this.stage !== "Battle" && this.stage !== "Commander Phase") {
if (this.showToast) this.showToast(`Cannot activate: Must be in Battle or Commander phase.`, "red");
return;
}
// --- END LOCKOUT ---
item.cooldown = item.totalCooldown; // Put on cooldown
// --- THIS IS THE NEW LOGIC ---
// Set the bobblehead to 'active' so the rest of the code knows it's on.
item.active = true;
let logMessage = `${item.name} activated! ${item.desc}`;
// Special handling for Agility Bobblehead
if (item.key === 'a') {
this.hasManeuvered = false; // Grant an extra maneuver
// FIX: Dynamically add the point if used mid-phase
if (this.player.maneuverPoints === undefined) this.player.maneuverPoints = 0;
this.player.maneuverPoints += 1;
if (this.stage === "Maneuver" && turnInfoMessage) {
turnInfoMessage.textContent = `Move troops. You have ${this.player.maneuverPoints} moves remaining.`;
}
}
// --- TRIGGER THE UI REFRESH ---
// If the Perception or Intelligence Bobblehead was used, we need to immediately
// redraw the map and leaderboard to show the newly revealed information.
if (item.key === 'p' || item.key === 'i') {
this.updateInfo(); // This will re-run the visibility and intel checks
}
// Log the action and update the inventory UI
if (this.logAction) await this.logAction(logMessage, true);
if (this.renderInventory) this.renderInventory();
// It's good practice to call updateInfo one last time for other potential changes
this.isProcessing = false;
this.updateInfo();
};
Gamestate.initiateNukeSequence = function () {
if (!this.nukesEnabled || this.player.codes < 4 || (this.activeNukes && this.activeNukes.some(n => n.launcher === this.player.name))) return;
let silos = this.countries.filter(c => c.isSilo && c.owner === this.player.name);
if (silos.length === 0) { this.showToast("You must control a Silo to launch.", "red"); return; }
if (this.stage === "Nuke Targeting") {
this.stage = this.lastStage || "Fortify";
this.updateButtonText();
this.updateInfo();
this.showToast("Launch sequence aborted.", "var(--pip-color)");
return;
}
this.lastStage = this.stage;
this.stage = "Nuke Targeting";
if (turnInfo) turnInfo.textContent = "DEFCON 1: TARGETING";
if (turnInfoMessage) turnInfoMessage.textContent = "Select an enemy territory on the map. Click the LAUNCH button again to cancel.";
this.showToast("Awaiting target coordinates...", "red");
}
Gamestate.targetNuke = function (e) {
let country = this.countries.find(c => c.name === e.target.id);
if (!country) return;
if (country.isCrater) { this.showToast("Target is already a crater.", "red"); return; }
if (country.owner === this.player.name) { this.showToast("You cannot target your own territory!", "red"); return; }
// Logic: Find the player's strongest Silo to act as the Launch Site
let silos = this.countries.filter(c => c.isSilo && c.owner === this.player.name);
silos.sort((a, b) => b.siloTurns - a.siloTurns);
let launchSite = silos[0];
// Trigger Terminal Modal instead of browser popup
let nukeModal = document.getElementById('nuke-modal');
document.getElementById('nuke-target-text').innerHTML = `TARGET: <span style="color:var(--pip-color)">${formatTerritoryName(country.name)}</span><br>ORIGIN: <span style="color:#ffcc00">${formatTerritoryName(launchSite.name)}</span>`;
nukeModal.style.display = "flex";
document.getElementById('confirm-nuke-btn').onclick = () => {
nukeModal.style.display = "none";
this.executeNukeLaunch(this.player, country.name, launchSite.name);
};
document.getElementById('cancel-nuke-btn').onclick = () => {
nukeModal.style.display = "none";
this.stage = this.lastStage || "Fortify";
this.updateButtonText(); this.updateInfo();
this.showToast("Launch sequence aborted.", "var(--pip-color)");
};
}
Gamestate.executeNukeLaunch = function (launcherData, targetName, launchSiloName) {
launcherData.codes -= 4;
this.globalCodes += 4;
if (!this.activeNukes) this.activeNukes = [];
this.activeNukes.push({ launcher: launcherData.name, target: targetName, turns: 3, launchSilo: launchSiloName });
// Strip defenses from ALL silos the launcher owns
let silos = this.countries.filter(c => c.isSilo && c.owner === launcherData.name);
silos.forEach(s => s.siloTurns = 0);
// Trigger the massive red alert
if (this.queueToast) {
this.queueToast(`>>> NUCLEAR LAUNCH DETECTED <<< <br><span style="font-size: 32px;">☢</span><br>ORIGIN: ${formatTerritoryName(launchSiloName).toUpperCase()}<br>TARGET: ${formatTerritoryName(targetName).toUpperCase()}`, "#ff0000", true);
}
this.logAction(`[ DEFCON 1 ] ${launcherData.name} HAS INITIATED A NUCLEAR LAUNCH AGAINST ${formatTerritoryName(targetName)}!`, true, true);
this.logAction(`>>> Payload originating from ${formatTerritoryName(launchSiloName)}. Impact in T-3 Rounds.`, true, true);
// --- FIX: Prevent the AI from breaking the turn sequence ---
if (!this.aiTurn) {
this.stage = this.lastStage || "Fortify";
this.updateButtonText();
this.updateInfo();
}
}
Gamestate.resolveNuke = async function () {
// Failsafe migration for old save files
if (this.activeNuke && (!this.activeNukes || this.activeNukes.length === 0)) {
this.activeNukes = [this.activeNuke];
this.activeNuke = null;
}
if (!this.activeNukes || this.activeNukes.length === 0) return;
// Loop backwards so we can remove nukes as they detonate/abort
for (let i = this.activeNukes.length - 1; i >= 0; i--) {
let currentNuke = this.activeNukes[i];
let launcher = this.players.find(p => p.name === currentNuke.launcher);
if (!launcher || !launcher.alive || !this.countries.some(c => c.isSilo && c.owner === launcher.name)) {
await this.logAction(`[ LAUNCH ABORTED ] ${currentNuke.launcher} lost Silo control. Sequence terminated.`, true);
this.activeNukes.splice(i, 1);
continue;
}
currentNuke.turns -= 1;
if (currentNuke.turns > 0) {
await this.logAction(`[ NUCLEAR ALERT ] T-${currentNuke.turns} rounds until impact at ${formatTerritoryName(currentNuke.target)}.`, true, true);
continue; // Wait until next turn
}
let groundZero = this.countries.find(c => c.name === currentNuke.target);
await this.logAction(`[ DETONATION ] NUCLEAR IMPACT AT ${formatTerritoryName(groundZero.name)}!`, true, true);
// --- NEW: GROUND ZERO IS NOW HEAVILY IRRADIATED INSTEAD OF DEAD ---
groundZero.isCrater = false;
groundZero.isSilo = false;
groundZero.radDecay = 10; // 10 Turns of severe radiation!
let victim = this.players.find(p => p.name === groundZero.owner);
if (victim) {
victim.army -= groundZero.army; let idx = victim.areas.indexOf(groundZero.name); if (idx > -1) victim.areas.splice(idx, 1);
}
groundZero.army = 0; groundZero.owner = "none"; groundZero.color = "#111";
if (this.commandersEnabled) {
for (let p of this.players) {
if (p.alive && !p.isNeutral && p.commander && p.commander.loc === groundZero.name) {
await this.logAction(`[ REGICIDE ] ${p.name}'s Commander was vaporized at Ground Zero!`, true, true);
p.commander.hp = 0; await this.killCommander(p);
}
}
}
for (let neighborName of groundZero.neighbours) {
let n = this.countries.find(c => c.name === neighborName);
if (n && !n.isCrater) {
// Sniper Immunity Check (Immune to friendly fire from own Nuke)
let isImmune = (n.owner === launcher.name && this.levelingEnabled && launcher.activeBuffs && launcher.activeBuffs.sniper);
if (!isImmune) {
let dmg = Math.ceil(n.army * 0.50); n.army -= dmg;
let nOwner = this.players.find(p => p.name === n.owner); if (nOwner) nOwner.army -= dmg;
}
n.radDecay = 5; // Increased neighbor radiation slightly
}
}
await this.logAction(`[ SCORCHED EARTH ] Adjacent territories caught in blast radius. 50% casualties. Glowing Sea expanding.`, true);
// --- REPUTATION PENALTY: NUCLEAR ATROCITY ---
let victimName = groundZero.owner;
if (victimName !== "none" && victimName !== "Wasteland Horrors") {
this.players.forEach(p => {
if (p.name !== launcher.name && p.name !== "Wasteland Horrors" && p.alive) {
let currentRep = this.diplomacy.reputation[p.name][launcher.name];
if (p.name === victimName) {
// 1. The Target: Instantly Hated (-50)
this.diplomacy.reputation[p.name][launcher.name] = -50;
} else if (this.diplomacy.reputation[p.name][victimName] >= 10) {
// 2. Target's Allies (Liked/Idolized): Severe Drop (-20)
this.diplomacy.reputation[p.name][launcher.name] = Math.max(-50, currentRep - 20);
} else if (this.diplomacy.reputation[p.name][victimName] <= -10) {
// 3. Target's Enemies (Hostile/Hated): No Change
} else {
// 4. Neutral Factions: Moderate Drop (-10)
this.diplomacy.reputation[p.name][launcher.name] = Math.max(-50, currentRep - 10);
}
}
});
}
// Remove the detonated nuke from the array
this.activeNukes.splice(i, 1);
}
this.updateInfo();
}
Gamestate.killCommander = async function (player, killer = null) { // Added killer parameter
// --- AUTO-REVIVE CHECK ---
const stimIdx = player.relics ? player.relics.findIndex(r => r.id === 'superstimpak') : -1;
if (stimIdx > -1) {
player.relics.splice(stimIdx, 1);
player.commander.hp = 50;
await this.logAction(`[ EMERGENCY ] ${player.name}'s Commander used a Super Stimpak to avoid death!`, true);
if (player.isPlayer && this.renderInventory) this.renderInventory();
return; // Stop the death logic
}
if (!player.alive) return;
await this.logAction(`[ FACTION ELIMINATED ] ${player.name}'s Commander has been killed! Their forces scatter...`, true, true);
player.alive = false;
// --- NEW: ITEM LOOTING LOGIC ---
if (killer) {
if (this.commandersEnabled && player.commander && player.commander.stimpaks > 0) {
if (killer.commander) {
let lootedStimpaks = player.commander.stimpaks;
killer.commander.stimpaks = Math.min(3, killer.commander.stimpaks + lootedStimpaks);
if (this.logAction) await this.logAction(`[ LOOT ] ${killer.name} looted ${lootedStimpaks} Stimpak(s) from the fallen Commander!`, true);
}
player.commander.stimpaks = 0;
}
if (this.bobbleheads) {
this.bobbleheads.forEach(b => {
if (b.owner === player.name) {
b.owner = killer.name;
b.cooldown = 0; // FIX ISSUE #5: Reset cooldown for the new owner
b.active = false; // FIX ISSUE #5: Deactivate the item for the new owner
if (this.logAction) this.logAction(`[ LOOT ] ${killer.name} claimed the ${b.name} from the fallen faction!`, true);
}
});
}
}
// --- END OF NEW LOGIC ---
player.areas.forEach(areaName => {
let c = this.countries.find(x => x.name === areaName);
if (c) {
let horrors = this.players.find(p => p.name === "Wasteland Horrors");
let horrorsEnabled = document.getElementById('opt-horrors') && document.getElementById('opt-horrors').checked;
if (horrors && horrorsEnabled) {
c.owner = "Wasteland Horrors"; c.color = "#333333";
horrors.areas.push(areaName); horrors.army += c.army;
} else {
c.owner = "none"; c.color = "#444444"; // Becomes Neutral!
}
}
});
player.areas = []; player.army = 0;
let index = this.players.indexOf(player); if (infoName[index]) infoName[index].parentElement.classList.add('defeated');
// FIX: Update the Game Over modal to explain the assassination
if (player === this.player) {
this.gameOver = true;
if (winMessage) {
winMessage.textContent = "YOU DIED.";
winMessage.style.color = "#ff0000";
let subMsg = winMessage.nextElementSibling;
if (subMsg && subMsg.tagName === 'P') { subMsg.textContent = "YOUR COMMANDER WAS ASSASSINATED!";
}
}
if (winModal) winModal.style.display = "block";
}
}
Gamestate.processRadDecay = async function () {
// --- NEW: DECREMENT RADAWAY IMMUNITY ---
this.players.forEach(p => {
if (p.radImmunity && p.radImmunity > 0) p.radImmunity--;
});
let decayActive = false;
for (let c of this.countries) {
if (c.radDecay && c.radDecay > 0) {
decayActive = true;
if (c.radDecay === 1) {
c.radDecay = 0;
let horrors = this.players.find(p => p.name === "Wasteland Horrors");
if (horrors) {
let oldOwner = this.players.find(p => p.name === c.owner);
if (oldOwner) {
oldOwner.army -= c.army; let idx = oldOwner.areas.indexOf(c.name); if (idx > -1) oldOwner.areas.splice(idx, 1);
}
c.owner = "Wasteland Horrors"; c.color = "#333333"; c.army = Math.floor(Math.random() * 6) + 10;
horrors.areas.push(c.name); horrors.army += c.army;
await this.logAction(`[ INFESTATION ] Radiation cleared at ${formatTerritoryName(c.name)}. A massive Feral Ghoul horde has moved in!`, true);
}
} else {
// --- NEW: DYNAMIC RADIATION SCALING & IMMUNITIES ---
let basePercent = 0.10;
if (c.radDecay >= 8) basePercent = 0.80; // Ground Zero (80% losses)
else if (c.radDecay >= 5) basePercent = 0.50; // Heavy Rads (50% losses)
else if (c.radDecay >= 3) basePercent = 0.30; // Medium Rads (30% losses)
let attrPercent = basePercent;
let owner = this.players.find(p => p.name === c.owner);
if (owner) {
if (owner.radImmunity && owner.radImmunity > 0) {
attrPercent = 0; // Immune from RadAway
} else if (owner.activeBuffs && owner.activeBuffs.adamantiumSkeleton) {
attrPercent = attrPercent / 2; // 50% resistance
}
}
if (c.army > 1 && attrPercent > 0) {
let dmg = Math.ceil(c.army * attrPercent);
c.army -= dmg;
if (owner) owner.army -= dmg;
}
c.radDecay--;
}
}
}
if (decayActive) this.updateInfo();
}
Gamestate.aiMove = async function () {
if (this.gameOver) return;
if (this.prevTarget) this.prevTarget.classList.remove('flash');
let hasAiMadeADeal = false;
this.stage = "AI Turn";
this.updateButtonText();
if (turnInfoMessage) turnInfoMessage.textContent = "";
let backbriefData = []; // --- NEW: Track stats for the Backbrief ---
for (let i = 1; i <= this.players.length; i++) {
if (i === this.players.length) {
// --- FIX: Player & Alliance Death Conditions ---
let isDead = false;
if (this.commandersEnabled) {
if (!this.player.commander || this.player.commander.hp <= 0) isDead = true;
else if (this.isAllianceMode) {
let ally = this.players.find(p => p.team === this.player.team && !p.isPlayer);
if (ally && (!ally.commander || ally.commander.hp <= 0)) isDead = true;
}
} else {
if (this.player.areas.length === 0) isDead = true;
else if (this.isAllianceMode) {
let ally = this.players.find(p => p.team === this.player.team && !p.isPlayer);
if (ally && ally.areas.length === 0) isDead = true;
}
}
if (isDead) {
this.player.alive = false;
this.checkWinCondition(); // This triggers the defeat modal instantly
return;
}
// --- END FIX ---
// --- NEW: DOGMEAT QUEST LOGIC ---
if (this.dogmeatQuest && this.dogmeatQuest.cooldown > 0) {
this.dogmeatQuest.cooldown--;
} else
if (this.dogmeatQuest && this.dogmeatQuest.active) {
this.dogmeatQuest.timer--;
if (this.dogmeatQuest.timer <= 0) {
this.dogmeatQuest.active = false;
this.dogmeatQuest.cooldown = 4; // Wait 4 turns before spawning again
// --- NEW: FAILURE MODAL ---
this.modalIsOpen = true;
await this.showEncounterModal(
"Signal Lost",
`The distress signal from the Red Rocket has faded. The dog has wandered off, and the trail has gone cold.`,
[{id: "ok", text: "[Acknowledge] A missed opportunity."}],
() => { this.modalIsOpen = false; return null; }
);
if (this.logAction) this.logAction(`[ QUEST FAILED ] The trail to the lone dog went cold.`, true);
} else if (this.dogmeatQuest.timer === 2) {
if (this.logAction) this.logAction(`[ QUEST UPDATE ] The Red Rocket distress signal is getting weak... (2 Turns Left)`, true);
}
} else if (this.dogmeatQuest && !this.dogmeatQuest.resolved && this.encountersEnabled && this.turn > 3 && (this.wastelandEconomyActive || this.commandersEnabled)) {
// 5% chance per turn to spawn the rumor
if (Math.random() < 0.05) {
let validTargets = this.countries.filter(c => c.owner !== "none" && c.owner !== this.player.name && !c.isCrater && c.army > 0 && !this.areAllies(this.player.name, c.owner));
if (validTargets.length > 0) {
let randomTarget = validTargets[Math.floor(Math.random() * validTargets.length)];
this.dogmeatQuest.active = true;
this.dogmeatQuest.target = randomTarget.name;
this.dogmeatQuest.timer = Math.floor(Math.random() * 3) + 4; // 4 to 6 turns
const rumors = [
`Scavengers spotted a dog defending a Red Rocket station at ${formatTerritoryName(randomTarget.name)}.`,
`Picked up a weak distress broadcast... a dog is barking furiously at ${formatTerritoryName(randomTarget.name)}.`,
`Caravan guards report a lone dog holding off raiders near ${formatTerritoryName(randomTarget.name)}.`,
`A traveling merchant claims to have seen a loyal dog waiting at ${formatTerritoryName(randomTarget.name)}.`
];
const rText = rumors[Math.floor(Math.random() * rumors.length)];
if (this.queueToast) this.queueToast(`>>> NEW RUMOR <<< <br><span style="font-size: 28px; font-weight: bold;">[ CX404 ]</span><br>LONE DOG SIGHTED`, "var(--pip-color)", true);
if (this.logAction) this.logAction(`[ QUEST ] ${rText} You have ${this.dogmeatQuest.timer} turns to reach it!`, true);
// --- NEW: IN-GAME QUEST MODAL ---
this.modalIsOpen = true;
await this.showEncounterModal(
"NEW QUEST: A BOY AND HIS DOG",
`${rText}<br><br>Attack and conquer <strong style="color:var(--pip-color);">${formatTerritoryName(randomTarget.name)}</strong> within <strong>${this.dogmeatQuest.timer} turns</strong> to trigger a rescue operation!`,
[{id: "ok", text: "[Acknowledge] We are on our way."}],
() => { this.modalIsOpen = false; return null; }
);
}
}
}
// --- NEW: DOGMEAT SIEGE UPKEEP ---
if (this.dogmeatQuest && this.dogmeatQuest.siege > 0) {
let targetCountry = this.countries.find(c => c.name === this.dogmeatQuest.target);
// Ensure the player still owns the territory!
if (targetCountry && targetCountry.owner === this.player.name) {
this.dogmeatQuest.siege--;
if (this.dogmeatQuest.siege > 0) {
await this.resolveDogmeatSiege('defend', targetCountry);
} else {
this.dogmeatQuest.resolved = true;
await this.resolveDogmeatSiege('finish', targetCountry);
}
} else {
// Player lost the territory to an AI before finishing the siege!
this.dogmeatQuest.siege = 0;
this.dogmeatQuest.resolved = false;
this.dogmeatQuest.cooldown = 4;
const failureMsgs = [
"You lost control of the Red Rocket! The scavengers took advantage of the chaos and escaped with the dog.",
"The enemy forces overran your siege perimeter! In the confusion, the dog slipped away into the wasteland.",
"Your forces were pushed out of the territory! A passing caravan managed to rescue the dog before you could return."
];
const randomFailMsg = failureMsgs[Math.floor(Math.random() * failureMsgs.length)];
this.modalIsOpen = true;
await this.showEncounterModal(
"Siege Broken",
randomFailMsg,
[{id: "ok", text: "[Acknowledge] We failed him."}],
() => { this.modalIsOpen = false; return null; }
);
if (this.logAction) this.logAction(`[ QUEST FAILED ] ${randomFailMsg}`, true);
}
}
// --- NEW: Process Exploration Countdowns FIRST ---
for (let c of this.countries) {
if (c.owner === this.player.name && c.isExploring) {
c.exploreTurnsLeft--;
if (c.exploreTurnsLeft <= 0) {
await this.resolveExplorationOutcome(c);
}
}
// --- NEW: RELIC TIMERS ---
if (c.isFrozen > 0) {
c.isFrozen--;
if (c.isFrozen <= 0) {
c.isFrozen = 0;
if (this.logAction) this.logAction(`[ THAW ] ${formatTerritoryName(c.name)} has thawed and resumed normal operations.`);
}
}
if (c.isBlockaded > 0) {
c.isBlockaded--;
if (c.isBlockaded <= 0) {
c.isBlockaded = 0;
if (this.logAction) this.logAction(`[ BLOCKADE LIFTED ] Supplies can now reach ${formatTerritoryName(c.name)}.`);
}
}
}
if (this.bobbleheads) {
this.bobbleheads.forEach(b => {
if (b.cooldown > 0) {
b.cooldown--;
}
});
}
for (let p of this.players) {
if (this.commandersEnabled && p.alive && p.commander && p.commander.hp > 0) {
let locCountry = this.countries.find(c => c.name === p.commander.loc);
// --- FIX: AI stops converting if the territory is no longer hostile ---
if (!locCountry || locCountry.owner === p.name || this.areAllies(p.name, locCountry.owner) || locCountry.isCrater) {
p.commander.isConverting = false;
p.commander.siegeTurns = 0;
}
// --- END FIX ---
else if (p.commander.isConverting) { // territory is confirmed hostile
const otherCommanders = this.players.some(op => op !== p && op.commander && op.commander.loc === locCountry.name);
// Conversion is paused if another commander is present
if (otherCommanders) {
if (p.isPlayer && this.showToast) this.showToast(`Conversion paused at ${formatTerritoryName(locCountry.name)}: Enemy commander present!`, "#ffcc00");
} else {
// If garrison has troops, perform attrition
if (locCountry.army > 0) {
locCountry.army -= 10;
if (locCountry.army < 0) locCountry.army = 0; // Floor at 0
p.commander.siegeTurns = 0; // Reset the final siege timer
}
// If garrison is at 0, begin or continue the final 3-turn siege
if (locCountry.army === 0) {
p.commander.siegeTurns = (p.commander.siegeTurns || 0) + 1;
}
// If the final siege is complete, capture the territory
let requiredTurns = (this.levelingEnabled && p.activeBuffs && p.activeBuffs.infiltrator) ? 2 : 3;
if (p.commander.siegeTurns >= requiredTurns) {
let oldOwner = this.players.find(x => x.name === locCountry.owner);
if (oldOwner) {
let idx = oldOwner.areas.indexOf(locCountry.name);
if (idx > -1) oldOwner.areas.splice(idx, 1);
oldOwner.army -= locCountry.army; // Army is already 0 here, but good practice
}
locCountry.owner = p.name;
locCountry.color = p.color;
p.areas.push(locCountry.name);
// Spawn 3 troops or 5% of total, whichever is higher
let spawnAmt = Math.max(3, Math.floor(p.army * 0.05));
locCountry.army = spawnAmt;
p.army += spawnAmt;
p.commander.isConverting = false;
p.commander.siegeTurns = 0;
if (Gamestate.logFog) Gamestate.logFog(locCountry.name, `\[ SUBVERSION \] ${p.name}'s Commander successfully converted ${formatTerritoryName(locCountry.name)}! (+${spawnAmt} Troops)`, true, "battle");
else if (Gamestate.logAction) Gamestate.logAction(`\[ SUBVERSION \] ${p.name}'s Commander successfully converted ${formatTerritoryName(locCountry.name)}! (+${spawnAmt} Troops)`, true);
}
}
p.commander.ap = 0; // AP is always locked during conversion attempt
}
else {
p.commander.isConverting = false;
p.commander.siegeTurns = 0;
}
p.commander.wasAttacked = false;
}
}
if (this.perksEnabled) {
for (let p of this.players) {
if (p && p.perk) {
// --- Chem Frenzy Cooldown ---
if (p.perk.id === 'chem_frenzy' && p.chemFrenzyCooldown > 0) {
p.chemFrenzyCooldown--;
}
// --- Technology Overdrive Cooldown ---
if (p.perk.id === 'tech_hoarders') {
if (p.techOverdriveCooldown > 0) {
p.techOverdriveCooldown--;
}
}
// --- Mercenary Cooldown ---
if ((p.perk.id === 'mercenary_contracts' || p.perk.id === 'minutemen_contracts' || p.perk.id === 'gunner_contracts') && p.mercenaryCooldown > 0) {
p.mercenaryCooldown--;
if (p.mercenaryCooldown === 0 && p.isPlayer) {
await this.logAction("Mercenary contacts have refreshed and are ready for hire.", true);
}
}
// --- Mr. House Predictive Cooldown ---
if (p.perk.id === 'the_house_always_wins' && p.predictiveCooldown > 0) {
p.predictiveCooldown--;
if (p.predictiveCooldown === 0 && p.isPlayer) {
await this.logAction("Predictive Simulation systems are fully recharged and ready.", true);
}
}
// --- Nuke Code Cooldown ---
if (p.nukeCodeCooldown > 0) {
p.nukeCodeCooldown--;
}
// --- End of Turn Resets/Triggers ---
if (p.perk.id === 'chem_frenzy') {
p.canUseChemFrenzy = true;
} else if (p.perk.id === 'prydwen_deployment') {
p.airborneTroops = 3;
let prefix = p.isPlayer ? "The" : `[ INTEL ] ${p.name}'s`;
await this.logAction(`${prefix} Prydwen has dispatched 3 airborne troops to contested borders.`, p.isPlayer);
}
if (p.perk.id === 'mysterious_stranger' && p.strangerCooldown > 0) {
p.strangerCooldown--;
}
if (p.perk.id === 'elders_edict' && p.lockdownCooldown > 0) {
p.lockdownCooldown--;
}
p.usedChemFrenzy = false;
p.usedMemoryDen = false;
}
}
const lockedCountry = this.countries.find(c => c.isLockedDown);
if (lockedCountry) {
if (lockedCountry.lockdownTimer === undefined) {
lockedCountry.lockdownTimer = 3;
} else {
lockedCountry.lockdownTimer--;
}
if (lockedCountry.lockdownTimer <= 0) {
lockedCountry.isLockedDown = false;
let owner = this.players.find(p => p.name === lockedCountry.owner);
if (owner) {
owner.lockdownCooldown = 3;
}
await this.logAction(`LOCKDOWN EXPIRED: The Elder's Edict has expired for ${formatTerritoryName(lockedCountry.name)}.`);
let el = document.getElementById(lockedCountry.name);
if (el) el.classList.remove('lockdown-territory');
}
}
}
// --- FIX: BOBBLEHEAD EXPIRATION AT END OF AI TURN ---
if (this.bobbleheads) {
this.bobbleheads.forEach(b => {
if (b.active) {
b.active = false;
// Only log it if the human player owned it so it doesn't spam
if (this.logAction && b.owner === this.player.name) {
this.logAction(`The effect of the ${b.name} has worn off.`);
}
}
});
}
// --- END FIX ---
// --- FIX: STEALTH BOY DURATION DECREMENT ---
if (this.player.stealthActive && this.player.stealthActive > 0) {
this.player.stealthActive--;
if (this.player.stealthActive === 0 && this.logAction) {
this.logAction(`[ STEALTH ] Stealth Boy battery depleted. You are visible again.`, true);
}
}
// --- NEW: TACTICAL BACKBRIEF GENERATOR ---
let isTurbo = document.getElementById('turbo-toggle') && document.getElementById('turbo-toggle').checked;
if (isTurbo && typeof backbriefData !== 'undefined' && backbriefData.length > 0) {
let bbText = `[ TACTICAL BACKBRIEF ] `;
let visibleAIs = backbriefData.filter(d => d.visible);
let ghostAIs = backbriefData.filter(d => !d.visible);
if (visibleAIs.length > 0) {
let repLines = [
`Scouts report shifting frontlines.`,
`Reconnaissance telemetry processed.`,
`Tactical map updated with latest enemy movements.`,
`Satellite imagery confirms major border shifts.`,
`Intercepted radio chatter paints a grim picture of the battlefield.`,
`Morning briefings indicate heavy nighttime maneuvers.`,
`Patrols have returned with updated sector assessments.`,
`Automated sensors have compiled the overnight battle data.`
];
bbText += repLines[Math.floor(Math.random() * repLines.length)] + " ";
// Process EVERY visible AI individually
visibleAIs.forEach(ai => {
if (ai.net > 0) {
let winVerbs = [
"spearheaded a ruthless offensive, seizing",
"pushed the frontlines, capturing",
"went on the warpath, securing",
"overwhelmed local defenders, claiming",
"executed a calculated blitz, occupying",
"broke through enemy fortifications, annexing",
"dominated the battlefield, sweeping across",
"launched a massive incursion, taking control of"
];
bbText += `${ai.name} ${winVerbs[Math.floor(Math.random() * winVerbs.length)]} ${ai.net} sector(s). `;
} else if (ai.net < 0) {
let loseVerbs = [
"suffered heavy casualties, losing",
"was severely beaten back, surrendering",
"failed to hold the line, dropping",
"crumbled under concentrated fire, abandoning",
"was forced into a desperate retreat, forfeiting",
"bled heavily on the defensive, yielding",
"lost significant ground, giving up"
];
bbText += `${ai.name} ${loseVerbs[Math.floor(Math.random() * loseVerbs.length)]} ${Math.abs(ai.net)} region(s). `;
} else {
let neutralFlavors = [
"heavily fortified their current borders.",
"held their ground without gaining or losing territory.",
"entrenched their forces, waiting for an opening.",
"engaged in skirmishes but ended in a stalemate.",
"maintained their defensive perimeter."
];
bbText += `${ai.name} ${neutralFlavors[Math.floor(Math.random() * neutralFlavors.length)]} `;
}
});
let diplos = visibleAIs.filter(d => d.truces > 0);
if (diplos.length > 0) {
let diploNames = diplos.map(d => d.name).join(" and ");
let diploFlavors = [
`Diplomatic channels indicate ${diploNames} brokered ceasefires. `,
`Envoys for ${diploNames} successfully negotiated temporary truces. `,
`Radio intercepts confirm ${diploNames} signed non-aggression pacts. `,
`Wasteland rumors suggest ${diploNames} paid heavily for peace. `
];
bbText += diploFlavors[Math.floor(Math.random() * diploFlavors.length)];
}
} else {
let blindFlavors = [
"Radar is completely blind. All enemy movements occurred deep within the Fog of War. We have no visual on rival operations. ",
"Complete sensor blackout. Whatever happened out there is hidden by the fog. ",
"No visual contact with any faction. The wasteland is terrifyingly quiet. ",
"Satellite uplink failed. We are entirely blind to current enemy deployments. "
];
bbText += blindFlavors[Math.floor(Math.random() * blindFlavors.length)];
}
if (ghostAIs.length > 0) {
let ghostNames = ghostAIs.map(g => g.name).join(", ");
let fogLines = [
`We have lost visual contact with ${ghostNames}. Their operations are shrouded in fog.`,
`Warning: ${ghostNames} operating undetected in the dark zones. Keep your guard up.`,
`Sensor anomalies suggest ${ghostNames} are maneuvering beyond our sightlines.`,
`Telemetry for ${ghostNames} is offline. Assume they are mobilizing in the shadows.`,
`Deep recon has lost the trail of ${ghostNames}. They could be anywhere.`,
`No confirmed sightings of ${ghostNames} this cycle. Stay vigilant.`,
`Radio static obscures the movements of ${ghostNames}. The dark zones remain quiet.`,
`Unverified reports hint that ${ghostNames} are amassing forces just outside our sensor range.`
];
bbText += ` - ${fogLines[Math.floor(Math.random() * fogLines.length)]}`;
}
await this.logAction(bbText, false);
}
// --- END BACKBRIEF ---
this.turn += 1;
this.aiTurn = false;
await this.logAction(`--- DAY ${this.turn} BEGINS ---`, true);
// --- NEW: SUNDAY-ONLY ALTERNATING VERSE EASTER EGG ---
const today = new Date();
// 0 = Sunday. It will only run on real-world Sundays.
if (today.getDay() === 0) {
// Triggers on turns: 7, 21, 28, 42, 49, 63, 70...
if (this.turn > 0 && (this.turn % 21 === 0 || this.turn % 21 === 7)) {
const sundayVerses = [
"Booted up a rusted RobCo terminal. The final text log left by the previous user simply states: 'For God so loved the world that he gave his one and only Son, that whoever believes in him shall not perish but have eternal life. - John 3:16'",
"A scavenger unearthed a surprisingly intact Pre-War Bible from the rubble. A highlighted passage reads: 'For I know the plans I have for you,' declares the LORD, 'plans to prosper you and not to harm you, plans to give you hope and a future. - Jeremiah 29:11'",
"The static clears on the local HAM radio frequency, and a faint, solitary voice recites an old scripture: 'Love is patient, love is kind. It does not envy, it does not boast, it is not proud. - 1 Corinthians 13:4'",
"Found a scorched piece of paper clutched in the hands of a skeleton. The faded ink reads: 'I can do all this through him who gives me strength. - Philippians 4:13'",
"A traveling preacher passed through the territory today, sharing a message from the old world: 'And we know that in all things God works for the good of those who love him, who have been called according to his purpose. - Romans 8:28'",
"Booted up a rusted RobCo terminal. The final text log left by the previous user simply states: 'Trust in the Lord with all your heart and lean not on your own understanding; in all your ways acknowledge him, and he will make your paths straight. - Proverbs 3:5-6'",
"The static clears on the local HAM radio frequency, and a faint, solitary voice recites an old scripture: 'God is our refuge and strength, an ever-present help in trouble. - Psalm 46:1'",
"A scavenger unearthed a surprisingly intact Pre-War Bible from the rubble. A highlighted passage reads: 'For the Spirit God gave us does not make us timid, but gives us power, love and self-discipline. - 2 Timothy 1:7'",
"Found a scorched piece of paper clutched in the hands of a skeleton. The faded ink reads: 'Have I not commanded you? Be strong and courageous. Do not be afraid; do not be discouraged, for the LORD your God will be with you wherever you go. - Joshua 1:9'",
"A traveling preacher passed through the territory today, sharing a message from the old world: 'Come to me, all you who are weary and burdened, and I will give you rest. - Matthew 11:28'",
"Booted up a rusted RobCo terminal. The final text log left by the previous user simply states: 'Give thanks to the LORD, for he is good; his love endures forever. - Psalm 107:1'",
"The static clears on the local HAM radio frequency, and a faint, solitary voice recites an old scripture: 'Therefore confess your sins to each other and pray for each other so that you may be healed. The prayer of a righteous person is powerful and effective. - James 5:16'",
"A scavenger unearthed a surprisingly intact Pre-War Bible from the rubble. A highlighted passage reads: 'For to us a child is born, to us a son is given, and the government will be on his shoulders. And he will be called Wonderful Counselor, Mighty God, Everlasting Father, Prince of Peace. - Isaiah 9:6'",
"Found a scorched piece of paper clutched in the hands of a skeleton. The faded ink reads: 'Jesus answered, “I am the way and the truth and the life. No one comes to the father except through me.” - John 14:6'",
"A traveling preacher passed through the territory today, sharing a message from the old world: 'For it is by grace you have been saved, through faith—and this not from yourselves, it is the gift of God—not by works, so that no one can boast. - Ephesians 2:8-9'",
"Booted up a rusted RobCo terminal. The final text log left by the previous user simply states: 'Therefore, if anyone is in Christ he is a new creation; the old has gone, the new has come! - 2 Corinthians 5:17'",
"A scavenger unearthed a surprisingly intact Pre-War Bible from the rubble. A highlighted passage reads: 'So we fix our eyes not on what is seen, but on what is unseen. For what is seen is temporary, but what is unseen is eternal. - 2 Corinthians 4:18'",
"The static clears on the local HAM radio frequency, and a faint, solitary voice recites an old scripture: 'No servant can serve two masters. Either he will hate the one and love the other, or he will be devoted to the one and despise the other. You cannot serve both God and Money. - Luke 16:13'",
"Found a scorched piece of paper clutched in the hands of a skeleton. The faded ink reads: 'Dear friends, let us love one another, for love comes from God. Everyone who loves has been born of God and knows God. Whoever does not love does not know God, because God is love. - 1 John 4:7-8'",
"A traveling preacher passed through the territory today, sharing a message from the old world: 'In the same way, let your light shine before men, that they may see your good deeds and praise your Father in heaven. - Matthew 5:16'"
];
const randomVerse = sundayVerses[Math.floor(Math.random() * sundayVerses.length)];
await this.logAction(`[ SUNDAY BROADCAST ] ${randomVerse}`, true);
}
}
// --- END EASTER EGG ---
if (this.diplomacy.spiteTurns > 0) {
this.diplomacy.spiteTurns--;
if (this.diplomacy.spiteTurns <= 0) {
this.diplomacy.spiteTarget = null;
await this.logAction("\[ DIPLOMACY \] The Spite Alliance has dissolved. Borders return to normal.", true);
}
}
for (let t = this.diplomacy.truces.length - 1; t >= 0; t--) {
this.diplomacy.truces[t].turns--;
if (this.diplomacy.truces[t].turns <= 0) {
let truce = this.diplomacy.truces[t];
await this.logAction(`\[ DIPLOMACY \] Ceasefire expired between ${truce.f1} and ${truce.f2}. Borders are hot.`, true);
this.diplomacy.truces.splice(t, 1);
}
}
await this.processRadstorm();
if (this.nukesEnabled) {
await this.resolveNuke();
await this.processRadDecay();
this.countries.forEach(c => {
if (c.isSilo && c.owner !== "none") c.siloTurns++;
});
}
if (this.commandersEnabled && this.player.alive && this.player.commander) {
let loc = this.countries.find(c => c.name === this.player.commander.loc);
if (loc && loc.owner === this.player.name) {
let regen = loc.isSilo ? 4 : 2;
this.player.commander.hp = Math.min(100, this.player.commander.hp + regen);
}
}
if (this.wastelandEconomyActive) {
// --- FINAL ECONOMY & RECRUITMENT LOGIC ---
let baseIncome = this.player.areas.length * 2;
let continentIncome = 0;
let continentsOwned = 0;
let ncrBonusTroops = 0; // Track NCR free troops
continents.forEach(continent => {
let ownsContinent = continent.areas.every(area => this.player.areas.includes(area) && !this.countries.find(c => c.name === area).isCrater);
if (ownsContinent) {
continentIncome += 5;
continentsOwned++;
// Calculate NCR troops immediately if they own the continent
if (this.perksEnabled && this.player.perk && this.player.perk.id === 'logistical_superiority') {
ncrBonusTroops += Math.ceil(continent.bonus * 0.5);
}
// Calculate Local Leader (+2 Troops, +2 Caps)
if (this.levelingEnabled && this.player.activeBuffs && this.player.activeBuffs.localLeader) {
continentIncome += (2 * this.player.activeBuffs.localLeader);
ncrBonusTroops += (2 * this.player.activeBuffs.localLeader);
}
}
});
let totalIncome = baseIncome + continentIncome;
let nukaBonus = 0;
// Calculate Nuka-World Caps
if (this.perksEnabled && this.player.perk && this.player.perk.id === 'tribute_chest') {
nukaBonus = continentsOwned * 10; // ---> CHANGED: Buffed to +10 Caps!
totalIncome += nukaBonus;
}
// Apply Caps
this.player.caps += totalIncome;
// --- NEW: LEVELING SYSTEM TURN-START BONUSES ---
if (this.levelingEnabled) {
// Fortune Finder (+3 Caps)
if (this.player.activeBuffs.fortuneFinder) {
const ffBonus = this.player.activeBuffs.fortuneFinder * 3;
this.player.caps += ffBonus;
await this.logAction(`[ FORTUNE FINDER ] Scavenged +${ffBonus} Caps!`, true);
}
// Scrounger (+2 Troops)
if (this.player.activeBuffs.scrounger) {
const scBonus = this.player.activeBuffs.scrounger * 2;
this.player.reserve += scBonus;
await this.logAction(`[ SCROUNGER ] Found +${scBonus} extra reinforcements!`, true);
}
// Solar Powered (+10 HP)
if (this.player.activeBuffs.solarPowered && this.player.commander) {
const heal = this.player.activeBuffs.solarPowered * 10;
this.player.commander.hp = Math.min(this.player.commander.maxHp || 100, this.player.commander.hp + heal);
await this.logAction(`[ SOLAR POWERED ] Photosynthesis healed you for +${heal} HP.`, true);
}
}
// --- NEW: EXPLICIT BEFORE/AFTER LOGGING ---
if (totalIncome > 0) {
if (nukaBonus > 0) {
await this.logAction(`TAXES COLLECTED: Base income was ${baseIncome + continentIncome} Caps. Tribute Chest perk added +${nukaBonus} Caps. Total: ${totalIncome} Caps.`, true);
} else {
await this.logAction(`TAXES COLLECTED: Gained ${totalIncome} Caps from territories and continent bonuses.`, true);
}
}
// Apply and log NCR Troops
if (ncrBonusTroops > 0) {
this.player.reserve += ncrBonusTroops;
await this.logAction(`LOGISTICAL SUPERIORITY: NCR drafted +${ncrBonusTroops} reinforcements from controlled continents!`, true);
}
// 2. Set the Correct Stage for the Player's Turn
if (this.player.reserve > 0) {
this.stage = "Fortify"; // Must deploy troops (NCR will trigger this if they got free troops!)
} else {
this.stage = "Recruitment"; // Can recruit or skip
}
// --- END OF FINAL LOGIC ---
} else {
//...
this.stage = "Fortify";
let bonus = this.unitBonus(this.player, 0);
this.player.reserve += bonus;
}
this.updateButtonText();
// --- FIX: Only give Tribute CARDS if the Wasteland Economy (Caps) is turned OFF ---
if (!this.wastelandEconomyActive && this.perksEnabled && this.player.perk && this.player.perk.id === 'tribute_chest') {
let continentsOwned = 0;
continents.forEach(continent => {
if (continent.areas.every(area => this.player.areas.includes(area) && !this.countries.find(c => c.name === area).isCrater)) {
continentsOwned++;
}
});
if (continentsOwned > 0) {
for (let k = 0; k < continentsOwned; k++) {
this.player.cards.push({
country: "Vassal Tribute",
type: "Wild"
});
}
await this.logAction(`Nuka-Raiders demand tribute! Gained +${continentsOwned} Bottle Cap card(s) from controlled continents.`);
}
}
if (map) map.style.pointerEvents = "auto";
if (infoName[i - 1]) infoName[i - 1].parentElement.classList.remove('highlight');
if (infoName[0]) infoName[0].parentElement.classList.add('highlight');
if (reserveDisplay) reserveDisplay.innerHTML = this.player.reserve;
// --- CORRECTED PLACEMENT FOR ENCOUNTER TRIGGER ---
await this.triggerEncounterCheck('start_of_turn');
this.updateInfo();
return;
}
if (infoName[i - 1]) infoName[i - 1].parentElement.classList.remove('highlight');
if (this.players[i] && this.players[i].alive) {
if (this.players[i].isNeutral) {
if (this.players[i].name === "Wasteland Horrors") {
let ownedAreas = this.countries.filter(c => c.owner === this.players[i].name);
if (ownedAreas.length > 0) {
let totalSpawned = 0;
ownedAreas.forEach(c => {
if (this.difficulty === "Hard") {
let spawn = Math.floor(Math.random() * 5) + 2;
c.army += spawn;
this.players[i].army += spawn;
totalSpawned += spawn;
} else if (this.difficulty === "Normal" && Math.random() < 0.30) {
let spawn = Math.floor(Math.random() * 3) + 1;
c.army += spawn;
this.players[i].army += spawn;
totalSpawned += spawn;
}
});
if (totalSpawned > 0 && Gamestate.logAction) {
Gamestate.logAction(`\[ WARNING \] The Wasteland Horrors are multiplying... (+${totalSpawned} hostiles detected).`, true);
}
}
}
this.updateInfo();
continue;
}
if (infoName[i]) infoName[i].parentElement.classList.add('highlight');
let turbo = turboToggle && turboToggle.checked;
// --- NEW: Dynamic Button Override & Tracking ---
let startAreasCount = this.players[i].areas.length;
let startTrucesCount = this.diplomacy.truces.length;
if (!this.players[i].isNeutral) {
let endBtn = document.getElementById('end');
if (endBtn) {
endBtn.disabled = true;
endBtn.style.opacity = "0.8";
let normalPhrases = [
"IS CALCULATING TACTICS...", "IS DEPLOYING REINFORCEMENTS...",
"IS REVIEWING SENSOR DATA...", "IS FORTIFYING THEIR PERIMETER...",
"IS ESTABLISHING SUPPLY LINES...", "IS RECALIBRATING TARGETING SENSORS...",
"IS DISPATCHING RECON PATROLS...", "IS SCAVENGING FOR AMMUNITION...",
"IS DISTRIBUTING RATIONS...", "IS CONDUCTING FIELD REPAIRS...",
"IS MONITORING HAM RADIO FREQUENCIES...", "IS CLEARING A RADROACH INFESTATION..."
];
let funnyPhrases = [
"IS ARGUING WITH A MR. HANDY...", "IS DOWNING A NUKA-COLA QUANTUM...",
"IS WAITING FOR RADAWAY TO KICK IN...", "IS TRYING TO HACK A NOVICE TERMINAL...",
"IS KICKING A BROKEN JUKEBOX...", "IS HOARDING CANS OF CRAM...",
"IS RUNNING FROM A MUTATED RADSTAG...", "IS READING AN OVERDUE LIBRARY BOOK..."
];
let d = new Date();
let month = d.getMonth() + 1; // 1-12
let day = d.getDate();
let holidayFlavors = [];
if (month === 4 && day === 1) holidayFlavors = ["WAS CAUGHT IN AN APRIL FOOLS TRAP...", "IS RIGGING A FAKE BOTTLECAP MINE..."];
else if (month === 2 && day === 14) holidayFlavors = ["IS WRITING A LOVE POEM FOR A DEATHCLAW...", "IS SHARING A HEART-SHAPED BOX OF MUTFRUIT..."];
else if (month === 3 && day === 17) holidayFlavors = ["IS SEARCHING FOR SHAMROCK GWINNETT ALE...", "IS PAINTING THEIR POWER ARMOR GREEN..."];
else if (month === 10 && day === 31) holidayFlavors = ["IS CARVING A GLOWING RAD-PUMPKIN...", "IS WEARING A FRIGHTENING PRE-WAR MASK..."];
else if (month === 11 && day === 11) holidayFlavors = ["IS SALUTING A RUINED PRE-WAR FLAG...", "IS HONORING THE FALLEN OF ANCHORAGE..."];
else if (month === 11 && day >= 22 && day <= 28) holidayFlavors = ["IS ROASTING A TWO-HEADED TURKEY...", "IS GIVING THANKS FOR NOT BEING EATEN..."];
else if (month === 12 && (day === 24 || day === 25)) holidayFlavors = ["IS DECORATING A SENTRY BOT WITH TINSEL...", "IS LEAVING MILK AND CRAM FOR SANTA..."];
else if ((month === 12 && day === 31) || (month === 1 && day === 1)) holidayFlavors = ["IS WRITING NEW YEAR'S RESOLUTIONS...", "IS DROPPING A HOLIDAY FAT MAN..."];
else if (month === 8 && day === 23) holidayFlavors = ["IS CELEBRATING A VERY SPECIAL BIRTHDAY...", "IS LIGHTING CANDLES ON A SWEET ROLL...", "IS WEARING A PRE-WAR PARTY HAT..."];
let chance = Math.random();
let phrase = "";
// 5% chance for a holiday phrase (if it is actually that holiday)
if (chance < 0.05 && holidayFlavors.length > 0) {
phrase = holidayFlavors[Math.floor(Math.random() * holidayFlavors.length)];
}
// 10% chance for a funny phrase (rolls between 0.05 and 0.15)
else if (chance < 0.15) {
phrase = funnyPhrases[Math.floor(Math.random() * funnyPhrases.length)];
}
// 85% chance for a normal phrase
else {
phrase = normalPhrases[Math.floor(Math.random() * normalPhrases.length)];
}
endBtn.textContent = `STANDBY: ${this.players[i].name.toUpperCase()} ${phrase}`;
}
}
if (turbo && !this.players[i].isNeutral) {
// Artificial "Thinking" Pause (0.8 to 1.2s)
await new Promise(resolve => setTimeout(resolve, 800 + Math.random() * 400));
}
// --- END OVERRIDE ---
// --- FIX: Suppress SYSTEM flavor logs during AI Turbo turns ---
if (!turbo && Math.random() < 0.20) {
let randomEvent;
// Check for Dogmeat events first
if (this.player.dogmeatStatus && Math.random() < 0.30) { // Increased to 30% to see them more
if (this.player.dogmeatStatus === 'healthy') {
randomEvent = dogmeatEncounters[Math.floor(Math.random() * dogmeatEncounters.length)];
} else if (this.player.dogmeatStatus === 'injured') {
randomEvent = injuredDogmeatEncounters[Math.floor(Math.random() * injuredDogmeatEncounters.length)];
}
}
// If no Dogmeat event, pick a standard one
if (!randomEvent) {
randomEvent = wastelandEncounters[Math.floor(Math.random() * wastelandEncounters.length)];
}
await this.logAction(`SYSTEM: ${randomEvent}`);
}
let aiPlayer = this.players[i];
// --- NEW: AI PASSIVE LEVELING PERKS (Turn-Start) ---
if (this.levelingEnabled && aiPlayer.activeBuffs) {
if (aiPlayer.activeBuffs.fortuneFinder) {
aiPlayer.caps += (aiPlayer.activeBuffs.fortuneFinder * 3);
}
if (aiPlayer.activeBuffs.scrounger) {
let scBonus = aiPlayer.activeBuffs.scrounger * 2;
aiPlayer.reserve += scBonus;
aiPlayer.army += scBonus;
}
if (aiPlayer.activeBuffs.solarPowered && this.commandersEnabled && aiPlayer.commander) {
let maxHP = 100 + (aiPlayer.activeBuffs.lifeGiver ? aiPlayer.activeBuffs.lifeGiver * 25 : 0);
if (aiPlayer.relics && aiPlayer.relics.some(r => r.id === 'x01armor' && r.isEquipped)) maxHP += 50;
aiPlayer.commander.hp = Math.min(maxHP, aiPlayer.commander.hp + (aiPlayer.activeBuffs.solarPowered * 10));
}
}
// --- FIX: EXILED ASYLUM REQUESTS ---
if (this.isAllianceMode && aiPlayer.areas.length === 0 && aiPlayer.commander && aiPlayer.commander.hp < 50 && !aiPlayer.hasRequestedAsylum) {
aiPlayer.hasRequestedAsylum = true; // Prevent spamming every turn
let ally = this.players.find(p => p.team === aiPlayer.team && p.name !== aiPlayer.name && p.alive && p.areas.length > 1);
if (ally) {
if (ally.isPlayer) {
let cededTerritory = await this.showAsylumModal(aiPlayer.name);
if (cededTerritory) {
let idx = ally.areas.indexOf(cededTerritory.name);
if (idx > -1) ally.areas.splice(idx, 1);
ally.army -= cededTerritory.army;
cededTerritory.owner = aiPlayer.name;
cededTerritory.color = aiPlayer.color;
aiPlayer.areas.push(cededTerritory.name);
aiPlayer.army += cededTerritory.army;
aiPlayer.commander.loc = cededTerritory.name;
aiPlayer.commander.isConverting = false;
await this.logAction(`[ ASYLUM GRANTED ] You ceded ${formatTerritoryName(cededTerritory.name)} to ${aiPlayer.name}.`, true);
} else {
await this.logAction(`[ ASYLUM DENIED ] You denied ${aiPlayer.name}'s request for asylum. They are on their own.`, true);
}
} else {
// AI asks AI for Asylum
let safeTerritories = ally.areas.filter(a => {
let c = this.countries.find(x => x.name === a);
return c && !c.neighbours.some(n => {
let nc = this.countries.find(x => x.name === n);
return nc && nc.owner !== ally.name && !this.areAllies(ally.name, nc.owner) && !nc.isCrater;
});
});
if (safeTerritories.length === 0) safeTerritories = ally.areas;
let chosenName = safeTerritories.sort((a,b) => {
let ca = this.countries.find(x => x.name === a);
let cb = this.countries.find(x => x.name === b);
return ca.army - cb.army; // Give up the weakest tile
})[0];
let chosenCountry = this.countries.find(c => c.name === chosenName);
if (chosenCountry) {
let idx = ally.areas.indexOf(chosenCountry.name);
if (idx > -1) ally.areas.splice(idx, 1);
ally.army -= chosenCountry.army;
chosenCountry.owner = aiPlayer.name;
chosenCountry.color = aiPlayer.color;
aiPlayer.areas.push(chosenCountry.name);
aiPlayer.army += chosenCountry.army;
aiPlayer.commander.loc = chosenCountry.name;
aiPlayer.commander.isConverting = false;
await this.logAction(`[ ASYLUM GRANTED ] ${ally.name} ceded ${formatTerritoryName(chosenCountry.name)} to ${aiPlayer.name} to save their Commander!`, true);
}
}
this.updateInfo();
this.drawMapText();
}
}
// --- END ASYLUM REQUESTS ---
// --- FIX: EXILED ASYLUM REQUESTS ---
if (this.isAllianceMode && aiPlayer.areas.length === 0 && aiPlayer.commander && aiPlayer.commander.hp <= 40 && !aiPlayer.hasRequestedAsylum) {
aiPlayer.hasRequestedAsylum = true; // Prevent spamming every turn
let ally = this.players.find(p => p.team === aiPlayer.team && p.name !== aiPlayer.name && p.alive && p.areas.length > 1);
if (ally) {
if (ally.isPlayer) {
let cededTerritory = await this.showAsylumModal(aiPlayer.name);
if (cededTerritory) {
let idx = ally.areas.indexOf(cededTerritory.name);
if (idx > -1) ally.areas.splice(idx, 1);
ally.army -= cededTerritory.army;
cededTerritory.owner = aiPlayer.name;
cededTerritory.color = aiPlayer.color;
aiPlayer.areas.push(cededTerritory.name);
aiPlayer.army += cededTerritory.army;
aiPlayer.commander.loc = cededTerritory.name;
aiPlayer.commander.isConverting = false;
await this.logAction(`[ ASYLUM GRANTED ] You ceded ${formatTerritoryName(cededTerritory.name)} to ${aiPlayer.name}.`, true);
} else {
await this.logAction(`[ ASYLUM DENIED ] You denied ${aiPlayer.name}'s request for asylum. They are on their own.`, true);
}
} else {
// AI asks AI for Asylum
let safeTerritories = ally.areas.filter(a => {
let c = this.countries.find(x => x.name === a);
return c && !c.neighbours.some(n => {
let nc = this.countries.find(x => x.name === n);
return nc && nc.owner !== ally.name && !this.areAllies(ally.name, nc.owner) && !nc.isCrater;
});
});
if (safeTerritories.length === 0) safeTerritories = ally.areas;
let chosenName = safeTerritories.sort((a,b) => {
let ca = this.countries.find(x => x.name === a);
let cb = this.countries.find(x => x.name === b);
return ca.army - cb.army; // Give up the weakest tile
})[0];
let chosenCountry = this.countries.find(c => c.name === chosenName);
if (chosenCountry) {
let idx = ally.areas.indexOf(chosenCountry.name);
if (idx > -1) ally.areas.splice(idx, 1);
ally.army -= chosenCountry.army;
chosenCountry.owner = aiPlayer.name;
chosenCountry.color = aiPlayer.color;
aiPlayer.areas.push(chosenCountry.name);
aiPlayer.army += chosenCountry.army;
aiPlayer.commander.loc = chosenCountry.name;
aiPlayer.commander.isConverting = false;
await this.logAction(`[ ASYLUM GRANTED ] ${ally.name} ceded ${formatTerritoryName(chosenCountry.name)} to ${aiPlayer.name} to save their Commander!`, true);
}
}
this.updateInfo();
this.drawMapText();
}
}
// --- END ASYLUM REQUESTS ---
// --- NEW: ALLIANCE MODE PROACTIVE COMMUNICATION ---
if (this.isAllianceMode && aiPlayer.team === this.player.team) {
let pingRoll = Math.random();
// 1. Desperation Check: If ally is almost dead (3 or fewer territories)
if (aiPlayer.areas.length <= 3 && pingRoll < 0.40) {
if (!turbo) await this.logAction(`[ ALLY TRANSMISSION ] ${aiPlayer.name}: "We are taking heavy losses! Requesting immediate support or diversionary attacks!"`, true);
}
// 2. Offensive Intent Check: If ally has a massive army ready
else if (pingRoll < 0.20) {
let strongTiles = aiPlayer.areas.filter(a => {
let c = this.countries.find(x => x.name === a);
return c && c.army >= 8;
});
if (strongTiles.length > 0) {
let source = strongTiles[Math.floor(Math.random() * strongTiles.length)];
if (!turbo) await this.logAction(`[ ALLY TRANSMISSION ] ${aiPlayer.name}: "Massing forces at ${formatTerritoryName(source)}. Preparing for major operations."`, true);
}
}
}
// --- END ALLIANCE MODE PROACTIVE COMMUNICATION ---
// --- NEW: ALLY INTENT PROCESSING & CLEANUP ---
if (this.isAllianceMode && aiPlayer.team === this.player.team && aiPlayer.allyAttackTarget) {
let intentTarget = this.countries.find(c => c.name === aiPlayer.allyAttackTarget);
// 1. Did you (or the ally) successfully conquer it?
if (intentTarget && (intentTarget.owner === this.player.name || intentTarget.owner === aiPlayer.name)) {
if (!turbo) await this.logAction(`[ ALLY TRANSMISSION ] ${aiPlayer.name}: "Target ${formatTerritoryName(intentTarget.name)} secured. Awaiting new signals."`, true);
aiPlayer.allyAttackTarget = null; // Clear the flag! The job is done.
}
// 2. Still hostile? Actively support it.
else if (Math.random() < 0.40) { // 40% chance to verbally acknowledge support so it doesn't spam every single turn
if (!turbo) await this.logAction(`[ ALLY TRANSMISSION ] ${aiPlayer.name}: "We see your push towards ${formatTerritoryName(intentTarget.name)}. We are diverting forces to assist!"`, true);
}
}
// --- END ALLY INTENT PROCESSING ---
// --- NEW: AI PERK USAGE LOGIC ---
if (this.perksEnabled && aiPlayer.perk) {
// Mercenary / Gunner Contract Logic
if ((aiPlayer.perk.id === 'mercenary_contracts' || aiPlayer.perk.id === 'minutemen_contracts' || aiPlayer.perk.id === 'gunner_contracts') && (aiPlayer.mercenaryCooldown || 0) <= 0 && aiPlayer.caps >= 40) {
let reward = (Math.floor(Math.random() * 7) + 6) + Math.floor(aiPlayer.areas.length / 2);
aiPlayer.caps -= 20;
aiPlayer.reserve += reward;
aiPlayer.army += reward;
aiPlayer.mercenaryCooldown = (aiPlayer.perk.cooldown || 3) + 1;
this.logDebug(`${aiPlayer.name} used Mercenary Contract. Paid 20 caps for ${reward} troops.`);
if(!turbo) await this.logAction(`[ INTEL ] ${aiPlayer.name} has hired mercenaries, bolstering their reserves.`);
}
// Tech Hoarders / Outcast Logic
else if (aiPlayer.perk.id === 'tech_hoarders' && (aiPlayer.techOverdriveActive || 0) <= 0 && (aiPlayer.techOverdriveCooldown || 0) <= 0) {
const overdriveCost = Math.min(aiPlayer.army, 30);
if (aiPlayer.caps >= overdriveCost) {
aiPlayer.caps -= overdriveCost;
aiPlayer.techOverdriveActive = 3;
this.logDebug(`${aiPlayer.name} activated Technology Overdrive for ${overdriveCost} caps.`);
if(!turbo) await this.logAction(`[ INTEL ] ${aiPlayer.name}'s forces are surging with energy. Expect a major offensive.`);
}
}
// --- NEW: Mojave Brotherhood Elder's Edict Logic ---
else if (aiPlayer.perk.id === 'elders_edict' && (aiPlayer.lockdownCooldown || 0) <= 0) {
let lockedCountry = this.countries.find(c => c.isLockedDown);
if (!lockedCountry) {
let bestScore = -1; let bestTile = null;
// Find the territory with the highest enemy threat on its borders
aiPlayer.areas.forEach(a => {
let c = this.countries.find(x => x.name === a);
if (c && c.army > 0) {
let threat = 0;
c.neighbours.forEach(n => {
let nc = this.countries.find(x => x.name === n);
if (nc && nc.owner !== aiPlayer.name && !this.areAllies(aiPlayer.name, nc.owner) && !nc.isCrater) threat += nc.army;
});
if (threat > c.army && threat > bestScore) { bestScore = threat; bestTile = c; }
}
});
if (bestTile) {
bestTile.isLockedDown = true;
bestTile.lockdownTimer = 3;
let el = document.getElementById(bestTile.name);
if (el) el.classList.add('lockdown-territory');
if (!turbo) await this.logAction(`[ INTEL ] Mojave Brotherhood enacted Elder's Edict, locking down ${formatTerritoryName(bestTile.name)} for 3 turns!`);
}
}
}
}
// --- END AI PERK USAGE ---
// --- NEW: ALLIANCE MODE PROACTIVE COMMUNICATION ---
if (this.isAllianceMode && aiPlayer.team === this.player.team) {
let pingRoll = Math.random();
// 1. Desperation Check
if (aiPlayer.areas.length <= 3 && pingRoll < 0.4) {
if (!turbo) await this.logAction(`[ ALLY TRANSMISSION ] ${aiPlayer.name}: "We are taking heavy losses! Requesting immediate support or diversionary attacks!"`, true);
}
// 2. Offensive Intent Check
else if (pingRoll < 0.2) {
let strongTiles = aiPlayer.areas.filter(a => {
let c = this.countries.find(x => x.name === a);
return c && c.army >= 8;
});
if (strongTiles.length > 0) {
let source = strongTiles[Math.floor(Math.random() * strongTiles.length)];
if (!turbo) await this.logAction(`[ ALLY TRANSMISSION ] ${aiPlayer.name}: "Massing forces at ${formatTerritoryName(source)}. Preparing for major operations."`, true);
}
}
}
// --- END ALLIANCE MODE PROACTIVE COMMUNICATION ---
if (this.commandersEnabled && aiPlayer.commander && aiPlayer.commander.hp < 60 && aiPlayer.commander.stimpaks > 0) {
aiPlayer.commander.stimpaks--;
aiPlayer.commander.hp = Math.min(100, aiPlayer.commander.hp + 20);
await this.logAction(`\[ MEDICAL \] ${aiPlayer.name}'s Commander injected a Stimpak in the field.`);
}
if (this.bobbleheads) {
let strengthBobble = this.bobbleheads.find(b => b.key === 's');
// --- FIXED: AI must actually OWN the Strength Bobblehead to use it! ---
if (strengthBobble && strengthBobble.owner === aiPlayer.name && strengthBobble.cooldown === 0) {
let weakestNeighbor = this.getWeakestNeighbor(aiPlayer);
if (weakestNeighbor && aiPlayer.army > weakestNeighbor.army) {
strengthBobble.cooldown = strengthBobble.totalCooldown;
strengthBobble.active = true;
if (!turbo) await this.logAction(`[ INTEL ] ${aiPlayer.name} is preparing a major offensive, activating their STRENGTH BOBBLEHEAD.`);
}
}
let intelBobble = this.bobbleheads.find(b => b.key === 'i');
// --- FIXED: AI must actually OWN the Intelligence Bobblehead to use it! ---
if (intelBobble && intelBobble.owner === aiPlayer.name && intelBobble.cooldown === 0) {
let repWithPlayer = this.diplomacy.reputation[aiPlayer.name]?.[this.player.name] || 0;
if (repWithPlayer < 10) {
intelBobble.cooldown = intelBobble.totalCooldown;
intelBobble.active = true; // <--- NEW: Actually turn the item on for the AI
if (!turbo) await this.logAction(`[ INTEL ] ${aiPlayer.name} is gathering intelligence on global power levels.`);
}
}
// --- NEW: AI activates Charisma Bobblehead ---
let charismaBobble = this.bobbleheads.find(b => b.key === 'c');
if (charismaBobble && charismaBobble.owner === aiPlayer.name && charismaBobble.cooldown === 0) {
charismaBobble.cooldown = charismaBobble.totalCooldown;
charismaBobble.active = true;
if (!turbo) await this.logAction(`[ INTEL ] ${aiPlayer.name} activated the CHARISMA BOBBLEHEAD to negotiate better supply rates.`);
}
// --- NEW: AI activates Luck Bobblehead ---
let luckBobble = this.bobbleheads.find(b => b.key === 'l');
if (luckBobble && luckBobble.owner === aiPlayer.name && luckBobble.cooldown === 0) {
luckBobble.cooldown = luckBobble.totalCooldown;
luckBobble.active = true;
if (!turbo) await this.logAction(`[ INTEL ] ${aiPlayer.name} activated the LUCK BOBBLEHEAD to scavenge the wastes.`);
}
}
if (this.nukesEnabled && this.players[i].codes >= 4 && !(this.activeNukes && this.activeNukes.some(n => n.launcher === this.players[i].name))) {
let silos = this.countries.filter(c => c.isSilo && c.owner === this.players[i].name);
if (silos.length > 0) {
let target = this.countries.slice().sort((a, b) => b.army - a.army).find(c => c.owner !== this.players[i].name && !c.isCrater);
if (target) {
let launchSite = silos.sort((a, b) => b.siloTurns - a.siloTurns)[0];
this.executeNukeLaunch(this.players[i], target.name, launchSite.name);
}
}
}
if (this.wastelandEconomyActive) {
// AI Wasteland Economy Logic
let income = this.players[i].areas.length * 2;
let continentIncome = 0;
let continentsOwned = 0;
let ncrBonusTroops = 0;
continents.forEach(continent => {
let ownsContinent = continent.areas.every(area => this.players[i].areas.includes(area) && !this.countries.find(c => c.name === area).isCrater);
if (ownsContinent) {
continentIncome += 5;
continentsOwned++;
// --- AI PERK: NCR Logistical Superiority ---
if (this.perksEnabled && this.players[i].perk?.id === 'logistical_superiority') {
ncrBonusTroops += Math.ceil(continent.bonus * 0.5);
}
// --- AI PERK: Local Leader ---
if (this.levelingEnabled && this.players[i].activeBuffs && this.players[i].activeBuffs.localLeader) {
continentIncome += (2 * this.players[i].activeBuffs.localLeader);
ncrBonusTroops += (2 * this.players[i].activeBuffs.localLeader);
}
}
});
income += continentIncome;
// --- AI PERK: Nuka-World Tribute Chest ---
let nukaBonus = 0;
if (this.perksEnabled && this.players[i].perk?.id === 'tribute_chest') {
nukaBonus = continentsOwned * 10;
income += nukaBonus;
}
this.players[i].caps += income;
// --- NEW: Dynamic Normal Difficulty Scaling (Economy) ---
let totalPlayable = this.countries.filter(c => !c.isCrater).length;
let playerOwnedCount = this.countries.filter(c => c.owner === this.player.name).length;
if (this.difficulty === "Normal" && totalPlayable > 0 && (playerOwnedCount / totalPlayable) > 0.35) {
this.players[i].caps += 5;
this.players[i].reserve += 1;
this.players[i].army += 1;
}
if (!turbo) {
if (nukaBonus > 0) await this.logAction(`${this.players[i].name} collected ${income} Caps (including Tribute Chest bonuses).`);
else await this.logAction(`${this.players[i].name} collected ${income} Caps in taxes.`);
}
if (ncrBonusTroops > 0) {
this.players[i].reserve += ncrBonusTroops;
this.players[i].army += ncrBonusTroops;
if (!turbo) await this.logAction(`LOGISTICAL SUPERIORITY: NCR drafted +${ncrBonusTroops} reinforcements!`);
}
// AI decides how many troops to buy (they will spend between 50% and 100% of their caps)
let hasCharisma = this.bobbleheads && this.bobbleheads.find(b => b.key === 'c' && b.active && b.owner === this.players[i].name);
const troopCost = hasCharisma ? 3 : (this.players[i].activeBuffs.capCollector ? 4 : 5);
const spendingPercentage = (Math.random() * 0.5) + 0.5;
const affordableTroops = Math.floor(this.players[i].caps / troopCost);
const troopsToBuy = Math.floor(affordableTroops * spendingPercentage);
const totalCost = troopsToBuy * troopCost;
if (troopsToBuy > 0) {
this.players[i].caps -= totalCost;
this.players[i].reserve += troopsToBuy;
this.players[i].army += troopsToBuy;
if (!turbo) await this.logAction(`${this.players[i].name} recruited ${troopsToBuy} new troops.`);
}
} else {
// Original AI card trade-in and reinforcement logic
this.players[i].reserve = this.unitBonus(this.players[i], i);
// --- NEW: Dynamic Normal Difficulty Scaling (Classic) ---
let totalPlayable = this.countries.filter(c => !c.isCrater).length;
let playerOwnedCount = this.countries.filter(c => c.owner === this.player.name).length;
if (this.difficulty === "Normal" && totalPlayable > 0 && (playerOwnedCount / totalPlayable) > 0.35) {
this.players[i].reserve += 2;
}
let troopsToPlace = this.players[i].reserve;
// --- AI PERK: Nuka-World Tribute Chest (Classic Mode) ---
if (this.perksEnabled && this.players[i].perk?.id === 'tribute_chest') {
let continentsOwned = 0;
continents.forEach(continent => {
if (continent.areas.every(area => this.players[i].areas.includes(area) && !this.countries.find(c => c.name === area).isCrater)) {
continentsOwned++;
}
});
for (let k = 0; k < continentsOwned; k++) {
this.players[i].cards.push({ country: "Vassal Tribute", type: "Wild" });
}
if (continentsOwned > 0 && !turbo) await this.logAction(`[ INTEL ] Nuka-Raiders collected +${continentsOwned} Bottle Cap card(s) from vassal tribute.`);
}
let tradeIndices = this.getBestTrade(this.players[i].cards);
if (tradeIndices) {
let bonus = getTradeBonus();
// --- NEW: Apply Charisma bonus for AI card trade-ins ---
let cBobble = this.bobbleheads && this.bobbleheads.find(b => b.key === 'c' && b.active && b.owner === this.players[i].name);
if (cBobble) bonus += 10;
tradeIndices.sort((a, b) => b - a).forEach(index => {
deck.unshift(this.players[i].cards[index]);
this.players[i].cards.splice(index, 1);
});
this.players[i].reserve += bonus;
troopsToPlace += bonus;
}
this.players[i].army += this.players[i].reserve;
if (troopsToPlace > 0 && !turbo) await this.logAction(`${this.players[i].name} deployed ${troopsToPlace} troops to their sectors.`);
}
// --- NEW ADVANCED DIPLOMACY LOGIC ---
if (!this.isAllianceMode && !this.gameOver && this.turn > 2) {
// 1. Identify all non-allied factions bordering the AI
let borderThreats = new Set();
aiPlayer.areas.forEach(a => {
let c = this.countries.find(x => x.name === a);
if(c) {
c.neighbours.forEach(n => {
let nc = this.countries.find(x => x.name === n);
// A threat is a neighbor who is not me, not neutral, and not an ally
if (nc && nc.owner !== aiPlayer.name && nc.owner !== "none" && nc.owner !== "Wasteland Horrors" && !this.areAllies(aiPlayer.name, nc.owner)) {
borderThreats.add(nc.owner);
}
});
}
});
const threats = Array.from(borderThreats);
this.logDebug(`${aiPlayer.name} has unsecured borders with: ${threats.length > 0 ? threats.join(', ') : 'None'}.`);
// FIX: TRUCE CAP
let activeTruces = this.diplomacy.truces.filter(t => t.f1 === aiPlayer.name || t.f2 === aiPlayer.name).length;
// 2. If there's a threat, consider diplomacy
if(threats.length > 0 && activeTruces < 1) {
const isDesperate = aiPlayer.areas.length <= 3;
let diplomacyChance = isDesperate ? 0.80 : 0.35;
let roll = Math.random();
this.logDebug(`${aiPlayer.name} is considering diplomacy. Desperate: ${isDesperate}. Rolled ${roll.toFixed(2)} vs. chance ${diplomacyChance}.`);
if (roll < diplomacyChance) {
// 3. Choose a random threatening neighbor to negotiate with
let targetName = threats[Math.floor(Math.random() * threats.length)];
let targetPlayer = this.players.find(p => p.name === targetName);
let targetActiveTruces = this.diplomacy.truces.filter(t => t.f1 === targetName || t.f2 === targetName).length;
if (targetPlayer && targetActiveTruces < 1) {
this.logDebug(`${aiPlayer.name} chose to approach ${targetName}.`);
// --- FIX: Dynamic Cost based on Economy Mode ---
const isEcon = this.wastelandEconomyActive;
const cost = isEcon ? 10 : 1; // 10 Caps or 1 Card
const currencyLabel = isEcon ? "CAPS" : "CARD";
let aiHasFunds = isEcon ? (aiPlayer.caps >= cost) : (aiPlayer.cards.length >= cost);
let targetHasFunds = isEcon ? (targetPlayer.caps >= cost) : (targetPlayer.cards.length >= cost);
// FIX ISSUE #6: AI Extortion Logic
if (aiPlayer.army >= targetPlayer.army * 2 && targetHasFunds) {
this.logDebug(`${aiPlayer.name} is overwhelmingly stronger than ${targetName} and will attempt extortion.`);
if (targetPlayer.isPlayer) {
let accepted = await this.showEnvoyModal(aiPlayer.name, cost, 3, aiPlayer.color, false, 0, true);
if (accepted) {
if (isEcon) { targetPlayer.caps -= cost; aiPlayer.caps += cost; }
else { aiPlayer.cards.push(targetPlayer.cards.pop()); }
// FIX: Set turns to 4 secretly to account for immediate tick-down
this.diplomacy.truces.push({ f1: aiPlayer.name, f2: targetPlayer.name, turns: 4, locked: true });
this.updateInfo();
if (this.queueToast) this.queueToast(`EXTORTION PAID: -${cost} ${currencyLabel}`, "#ff3333");
if (!turbo) await this.logAction(`[ DIPLOMACY ] You yielded to ${aiPlayer.name}'s extortion demand.`, true);
} else {
if (!turbo) await this.logAction(`[ DIPLOMACY ] You rejected ${aiPlayer.name}'s extortion attempt. Prepare for war.`, true);
}
} else {
// AI Extorts AI
if (isEcon) { targetPlayer.caps -= cost; aiPlayer.caps += cost; }
else { aiPlayer.cards.push(targetPlayer.cards.pop()); }
this.diplomacy.truces.push({ f1: aiPlayer.name, f2: targetName, turns: 4, locked: true });
if (!turbo) await this.logAction(`[ DIPLOMACY ] ${targetName} was extorted into a Ceasefire by ${aiPlayer.name}.`);
}
}
// Standard Truce Offer
else if (aiHasFunds) {
this.logDebug(`${aiPlayer.name} can afford the truce cost.`);
if (isEcon) aiPlayer.caps -= cost; else { aiPlayer.cards.pop(); }
if (targetPlayer.isPlayer) {
let accepted = await this.showEnvoyModal(aiPlayer.name, cost, 3, aiPlayer.color);
if (accepted) {
if (isEcon) { this.player.caps += cost; } else { this.player.cards.push({ country: "Envoy Gift", type: "Wild" }); }
// FIX: Set turns to 4 secretly to account for immediate tick-down
this.diplomacy.truces.push({ f1: aiPlayer.name, f2: this.player.name, turns: 4 });
this.updateInfo();
if (this.queueToast) this.queueToast(`CEASEFIRE AGREED! +${cost} ${currencyLabel}`, "var(--pip-color)");
if (!turbo) await this.logAction(`[ DIPLOMACY ] You accepted a Ceasefire with ${aiPlayer.name}.`, true);
} else {
if (isEcon) aiPlayer.caps += cost; else aiPlayer.cards.push({ country: "Refund", type: "Wild" }); // Refund
if (!turbo) await this.logAction(`[ DIPLOMACY ] You rejected ${aiPlayer.name}'s Ceasefire offer.`, true);
}
} else {
// Restored AI-to-AI Negotiation
let rep = this.diplomacy.reputation[targetName][aiPlayer.name] || 0;
if (rep >= -10) {
if (isEcon) targetPlayer.caps += cost; else targetPlayer.cards.push({ country: "Envoy Gift", type: "Wild" });
this.diplomacy.truces.push({ f1: aiPlayer.name, f2: targetName, turns: 4 });
if (!turbo) await this.logAction(`[ DIPLOMACY ] ${aiPlayer.name} and ${targetName} have formed a Ceasefire agreement.`);
} else {
if (isEcon) aiPlayer.caps += cost; else aiPlayer.cards.push({ country: "Refund", type: "Wild" }); // Refund
this.logDebug(`${targetName} rejected ${aiPlayer.name}'s offer due to low reputation.`);
}
}
} else {
this.logDebug(`${aiPlayer.name} cannot afford a truce. Aborting diplomacy.`);
}
}
} else {
this.logDebug(`${aiPlayer.name} failed diplomacy roll.`);
}
}
}
// --- END AI ENVOY ---
let areaToFortify = ["", -1];
this.players[i].areas.forEach(area => {
let country = this.countries.find(c => c.name === area);
// --- FIX: AI respects Cryolator and Shroud Card ---
if (this.players[i].reserve > 0 && !(country.isFrozen > 0) && !(country.isBlockaded > 0)) {
let ratio = 0;
// NEW: Massive priority boost if the territory actually borders a valid enemy!
let hasEnemyNeighbor = country.neighbours.some(n => {
let nc = this.countries.find(x => x.name === n);
return nc && nc.owner !== this.players[i].name && !this.areAllies(this.players[i].name, nc.owner) && !nc.isCrater;
});
if (hasEnemyNeighbor) ratio += 10.0;
// --- FIX: Desperation Fortify (Nuke Incoming) ---
if (this.activeNukes && this.activeNukes.length > 0) {
let incomingNuke = this.activeNukes.find(n => n.launcher !== this.players[i].name);
if (incomingNuke && country.neighbours.includes(incomingNuke.launchSilo)) {
ratio += 5000.0; // Drop all reinforcements near the silo to assault it!
}
}
if (this.nukesEnabled && country.isSilo) {
ratio += 5.0;
}
// --- FIX: Smart Continent Fortification ---
let continent = continents.find(x => x.name === country.continent);
let aiOwnedCount = 0;
continent.areas.forEach(x => {
if (this.players[i].areas.includes(x)) aiOwnedCount++;
});
// 1. Consolidate: If we own >50%, heavily fortify to push for the rest
if (aiOwnedCount >= continent.areas.length / 2 && aiOwnedCount < continent.areas.length) {
ratio += 20.0;
} else if (aiOwnedCount === continent.areas.length) {
ratio += 5.0; // Protect fully owned continent borders
} else {
ratio += (aiOwnedCount / continent.areas.length);
}
// 2. Disrupt: Fortify borders touching a continent monopolized by an enemy
country.neighbours.forEach(n => {
let nc = this.countries.find(x => x.name === n);
if (nc && nc.owner !== this.players[i].name && !nc.isCrater) {
let neighborCont = continents.find(x => x.name === nc.continent);
let enemyOwned = 0;
neighborCont.areas.forEach(nx => {
let nxc = this.countries.find(x => x.name === nx);
if (nxc && nxc.owner === nc.owner) enemyOwned++;
});
if (enemyOwned === neighborCont.areas.length) {
ratio += 15.0; // Big boost to prep an attack against the monopoly
}
}
});
// Add a tiny random factor so they don't always stack the exact same territory if tied
ratio += Math.random() * 0.5;
if (ratio > areaToFortify[1]) {
areaToFortify = [country, ratio]
}
}
});
if (areaToFortify[0]) {
areaToFortify[0].army += this.players[i].reserve;
this.players[i].reserve = 0;
}
// --- FIX: AI Prydwen Deployment Logic ---
if (this.perksEnabled && this.players[i].perk && this.players[i].perk.id === 'prydwen_deployment' && this.players[i].airborneTroops > 0) {
let borderTiles = [];
this.players[i].areas.forEach(area => {
let country = this.countries.find(c => c.name === area);
if (country && !(country.isFrozen > 0) && !(country.isBlockaded > 0) && this.isContinentBorder(country.name)) {
borderTiles.push(country);
}
});
if (borderTiles.length > 0) {
// Find the weakest continent border
borderTiles.sort((a, b) => a.army - b.army);
let targetBorder = borderTiles[0];
targetBorder.army += this.players[i].airborneTroops;
this.players[i].army += this.players[i].airborneTroops;
this.players[i].airborneTroops = 0;
if (!turbo) await this.logAction(`[ INTEL ] The Prydwen reinforced ${formatTerritoryName(targetBorder.name)} with 3 airborne troops.`);
}
}
// --- END FIX ---
let currentAreas = [...this.players[i].areas];
for (let area of currentAreas) {
let country = this.countries.find(c => c.name === area);
// --- FIX: The Blitz Loop (Multi-Attack) ---
// The AI will keep attacking as long as it has overwhelming force (e.g. 5+ troops)
while (country && country.army > 4 && country.owner === this.players[i].name && (!this.nukesEnabled || !country.isSilo || Math.random() < 0.2)) {
// Before we attack, remember how many territories the AI owns
let previousAreaCount = this.players[i].areas.length;
await this.aiAttack(country, i, turbo);
if (this.gameOver) return;
// Did the AI successfully conquer a territory during that attack?
if (this.players[i].areas.length > previousAreaCount) {
// If so, the AI's army just moved into the NEW territory.
// We need to update our 'country' variable to be the new front line!
// (The newest territory is always at the end of the array)
let newFrontLineName = this.players[i].areas[this.players[i].areas.length - 1];
country = this.countries.find(c => c.name === newFrontLineName);
// If for some reason the new front line doesn't have troops, break the blitz
if (!country || country.army <= 4) break;
} else {
// The attack failed, or was aborted by the suicide prevention. Break the blitz.
break;
}
}
}
this.aiManeuver(i);
if (this.players[i].conqueredThisTurn) {
if (this.wastelandEconomyActive) {
// --- NEW: AI receives raw Caps ---
const conquestReward = 5;
this.players[i].caps += conquestReward;
// We can add a log message here for clarity, but it might spam the log. Let's omit it for now unless you want it.
} else {
// --- CLASSIC MODE: AI receives a card ---
let newCap = deck.length > 0 ? deck.pop() : {
country: "Wasteland Salvage",
type: "Wild"
};
this.players[i].cards.push(newCap);
}
this.players[i].conqueredThisTurn = false;
// FIX: AI Escalating Nuke Chance & Fog Logging
if (this.players[i].codes === undefined) this.players[i].codes = 0; // FIX: Initialize AI codes so math doesn't fail!
if (this.nukesEnabled && this.players[i].codes < 4 && this.globalCodes > 0) {
if (this.players[i].nukeChance === undefined) this.players[i].nukeChance = 0.15;
if (Math.random() < this.players[i].nukeChance) {
this.players[i].codes++;
this.globalCodes--;
this.players[i].nukeChance = 0.15; // Reset
let refTile = this.players[i].areas[0];
let flavors = [
`[ INTEL ] Radio intercepts indicate ${this.players[i].name} has secured a Nuclear Launch Code!`,
`[ INTEL ] A decrypted databank confirms ${this.players[i].name} extracted a Nuke Code Fragment.`,
`[ INTEL ] Panic in the wastes: ${this.players[i].name} is one step closer to nuclear launch capability.`,
`[ INTEL ] Black-box telemetry shows ${this.players[i].name} downloading silo launch protocols.`
];
if (this.logFog) await this.logFog(refTile, flavors[Math.floor(Math.random() * flavors.length)], true, "battle");
} else {
this.players[i].nukeChance = Math.min(0.45, this.players[i].nukeChance + 0.05); // Escalate
}
}
if (this.commandersEnabled && this.players[i].commander && this.players[i].commander.stimpaks < 1 && Math.random() < 0.15) {
this.players[i].commander.stimpaks++;
}
}
if (this.commandersEnabled && this.players[i].commander) {
let loc = this.countries.find(c => c.name === this.players[i].commander.loc);
if (loc && loc.owner === this.players[i].name) {
let regen = loc.isSilo ? 4 : 2;
this.players[i].commander.hp = Math.min(100, this.players[i].commander.hp + regen);
}
this.players[i].commander.ap = 2;
}
this.updateInfo();
await this.aiRelicCheck(this.players[i]);
// --- NEW: Turbo Mode Summary Log (Silenced for Backbrief) ---
if (turbo && !this.players[i].isNeutral) {
let netAreas = this.players[i].areas.length - startAreasCount;
let newTruces = this.diplomacy.truces.length - startTrucesCount;
// Check visibility for Fog of War
let isVisible = false;
this.players[i].areas.forEach(a => { if (this.isTerritoryVisible(a)) isVisible = true; });
backbriefData.push({
name: this.players[i].name,
net: netAreas,
truces: newTruces,
visible: isVisible
});
// Artificial pause only. No individual logs!
await new Promise(resolve => setTimeout(resolve, 500));
}
// --- END SUMMARY ---
}
}
}
Gamestate.aiAttack = async function (country, i, turbo) {
this.logDebug(`AI ${this.players[i].name} is considering an attack FROM ${formatTerritoryName(country.name)} (${country.army} troops).`);
// --- NEW: Prevent AI from attacking FROM a locked or frozen territory ---
if (country.isLockedDown || country.isFrozen > 0) return;
// --- CORRECTED AI TARGETING LOGIC ---
// The AI can only see and target territories directly adjacent to the attacking country.
let possibleTargets = [];
country.neighbours.forEach(neighbourName => {
let opponent = this.countries.find(c => c.name === neighbourName);
// --- FIX: The AI will consider attacking if the neighbor is an enemy, not a crater, AND NOT LOCKED DOWN.
if (opponent && opponent.owner !== this.players[i].name && !opponent.isCrater && !opponent.isLockedDown) {
// --- DEV GOD MODE: AI completely ignores Player territories ---
if (this.godMode && opponent.owner === this.player.name) {
return; // Skip adding the player to valid targets
}
possibleTargets.push(opponent);
}
});
// --- CORRECTED ALLY FILTERING LOGIC ---
// This will now correctly prevent the AI from attacking allies.
possibleTargets = possibleTargets.filter(poss => {
// If they are not allies, they are a valid target.
if (!this.areAllies(this.players[i].name, poss.owner)) {
return true;
}
// --- NEW: NO BETRAYALS IN ALLIANCE WARFARE ---
if (this.isAllianceMode) {
return false; // Permanently safe!
}
// --- Backstab Logic (Classic Mode Only) ---
let currentTruce = this.getTruce(this.players[i].name, poss.owner);
if (currentTruce && currentTruce.locked) return false; // FIX: Cannot betray an extortion truce!
// If they ARE allies, only certain factions have a chance to betray.
let isChaotic = ["Raiders", "Super Mutants", "Great Khans", "The Fiends"].includes(this.players[i].country);
let backstabChance = 0.02; // A very low base chance
if (isChaotic) {
backstabChance = 0.10; // Chaotic factions are more likely to betray
}
// If the random roll succeeds, they will betray their ally and attack.
if (Math.random() < backstabChance) {
this.breakTruce(this.players[i].name, poss.owner); // Announce the betrayal
return true; // The ally is now a valid target.
}
// Otherwise, they are an ally and not a valid target.
return false;
});
// --- AI DESPERATION CHECK ---
// GLOBAL THREAT: If ANY nuke is in the air, the entire wasteland unites against the launcher!
// ... code that filters possibleTargets ...
// --- FAILSAFE CHECK ---
// If, after filtering for allies, there are no valid targets left, the AI cannot attack from this territory.
if (possibleTargets.length === 0) {
return; // Exit the function.
}
// --- AI DESPERATION CHECK ---
let isDesperate = false;
let incomingNuke = null;
if (this.activeNukes) {
incomingNuke = this.activeNukes.find(n => n.launcher !== this.players[i].name);
if (incomingNuke) isDesperate = true;
}
let target = [possibleTargets[0], -999]; // This line is now safe.
possibleTargets.forEach(poss => {
let debugMsgs = [`Owner: ${poss.owner}`]; // Start logging
let continent = continents.find(x => x.name === poss.continent);
let aiOwnedCount = 0;
let enemyOwnedCount = 0;
continent.areas.forEach(x => {
if (this.players[i].areas.includes(x)) aiOwnedCount++;
else if (this.countries.find(c => c.name === x).owner === poss.owner) enemyOwnedCount++;
});
let ratio = aiOwnedCount / continent.areas.length;
debugMsgs.push(`Base score (continent): ${ratio.toFixed(2)}`); // Log base score
// --- FIX: Smart Combat (No Suicides, Consolidate, Disrupt) ---
// 1. Suicide Prevention (Unless desperate for a nuke)
if (!isDesperate && country.army <= poss.army + 1) {
ratio -= 1000.0;
debugMsgs.push('Suicide Prevention: -1000.0');
} else if (country.army > poss.army * 2) {
ratio += 15.0; // Go after weak targets!
debugMsgs.push('Overwhelming Force: +15.0');
}
// 2. Continent Consolidation
if (aiOwnedCount >= continent.areas.length / 2) {
ratio += 40.0;
debugMsgs.push('Continent Consolidation: +40.0');
}
// 3. Continent Disruption
if (enemyOwnedCount === continent.areas.length) {
ratio += 50.0;
debugMsgs.push('Continent Disruption: +50.0');
}
// --- NEW: REPUTATION MODIFIERS ---
let currentRep = 0;
if (poss.owner !== "none" && poss.owner !== "Wasteland Horrors") {
currentRep = this.diplomacy.reputation[this.players[i].name][poss.owner] || 0;
}
// Log reputation effects
if (currentRep >= 75) { ratio -= 2.0; debugMsgs.push('Rep penalty (Idolized): -2.0'); }
else if (currentRep >= 25) { ratio -= 0.5; debugMsgs.push('Rep penalty (Liked): -0.5'); }
else if (currentRep <= -75) { ratio += 3.0; debugMsgs.push('Rep bonus (Hated): +3.0'); }
else if (currentRep <= -25) { ratio += 1.0; debugMsgs.push('Rep bonus (Hostile): +1.0'); }
// Log desperation effects
if (poss.owner === this.diplomacy.spiteTarget) { ratio += 100; debugMsgs.push('Spite Bonus: +100'); }
if (isDesperate && incomingNuke && poss.owner === incomingNuke.launcher) { ratio += 500; debugMsgs.push('Desperation Bonus (Nuke Launcher): +500'); }
if (isDesperate && incomingNuke && incomingNuke.launchSilo === poss.name) { ratio += 5000; debugMsgs.push('Desperation Bonus (Nuke Silo): +5000'); }
// --- FIX: AI Silo Prioritization ---
if (this.nukesEnabled && poss.isSilo) {
if (this.players[i].codes >= 4) {
ratio += 10.0;
debugMsgs.push('Armed & Ready (Silo Priority): +10.0');
} else {
ratio += 2.0;
debugMsgs.push('Strategic Silo: +2.0');
}
}
// --- END SILO PRIORITIZATION ---
// --- NEW: Alliance Mode Bonuses ---
if (this.isAllianceMode) {
// Player requested this specific target
if (this.players[i].attackTarget && poss.name === this.players[i].attackTarget) {
ratio += 2000; debugMsgs.push('Coordinated Attack Bonus: +2000');
}
// Player signaled intent, AI will consider helping
if (this.players[i].allyAttackTarget && poss.name === this.players[i].allyAttackTarget) {
ratio += 500; debugMsgs.push('Ally Intent Bonus: +500');
}
}
// Log the final score for this potential target
// --- NEW: ALLIANCE MODE TARGETING BONUSES ---
if (this.isAllianceMode && this.players[i].team === this.player.team) {
// 1. If you explicitly requested an attack here
if (this.players[i].attackTarget === poss.name) {
ratio += 2000; debugMsgs.push('Ally Attack Request: +2000');
}
// 2. If you signaled your intent to attack here
if (this.players[i].allyAttackTarget === poss.name) {
ratio += 500; debugMsgs.push('Supporting Player Intent: +500');
}
}
// --- END ALLIANCE BONUSES ---
this.logDebug(`> Scoring ${formatTerritoryName(poss.name)}: Final score = ${ratio.toFixed(2)}. (${debugMsgs.join(', ')})`);
if (ratio >= target[1]) { target = [poss, ratio] }
});
// FIX: Abort the attack entirely if the best option is suicidal
if (!target[0] || target[1] < -500) {
this.logDebug(`AI ${this.players[i].name} aborted attack. All targets are too strong (Suicide Prevention).`);
return;
}
this.logDebug(`AI ${this.players[i].name} has chosen to attack ${formatTerritoryName(target[0].name)} with a score of ${target[1].toFixed(2)}.`);
// --- NEW: CLEAR ALLIANCE TARGET FLAG ---
// If the AI just fulfilled your request to attack this specific target, clear the flag
if (this.isAllianceMode && this.players[i].attackTarget === target[0].name) {
this.players[i].attackTarget = null;
}
// --- END CLEAR FLAG ---
// --- NEW: Clear Alliance target flag once an attack is initiated ---
if (this.isAllianceMode && this.players[i].attackTarget === target[0].name) {
this.players[i].attackTarget = null;
}
// --- END ALLIANCE MODE FLAG CLEAR ---
// --- FINAL TRUCE ENFORCEMENT ---
// This is an explicit final check. If the chosen target is an ally, abort the attack.
if (this.areAllies(this.players[i].name, target[0].owner)) {
// We log this for debugging, but it won't be visible to the player.
console.log(`AI ${this.players[i].name} aborted attack on ally ${target[0].owner}.`);
return; // Exit the function, preventing the attack.
}
// --- THIS IS THE CODE THAT GOT DELETED ---
if (this.areAllies(this.players[i].name, target[0].owner)) { this.breakTruce(this.players[i].name, target[0].owner); }
let attackerMap = document.getElementById(country.name); let defenderMap = document.getElementById(target[0].name);
// --- NEW: AI Chem Frenzy Logic ---
if (this.perksEnabled && this.players[i].perk?.id === 'chem_frenzy' && (this.players[i].chemFrenzyCooldown || 0) <= 0 && country.army >= 4) {
let sacrifice = Math.floor(country.army * 0.25); // AI sacrifices 25% of attackers
if (sacrifice > 0) {
let bonusPercentage = Math.round(5 * Math.log(sacrifice) + 5);
country.army -= sacrifice;
this.players[i].army -= sacrifice;
this.players[i].chemFrenzyBonus = bonusPercentage / 100;
this.players[i].chemFrenzyCooldown = 4; // 3 turns + 1 for current
if (attackerMap && attackerMap.nextElementSibling) attackerMap.nextElementSibling.textContent = country.army;
if (!turbo) await this.logAction(`[ INTEL ] ${this.players[i].name} initiated a CHEM FRENZY! Sacrificed ${sacrifice} troops for +${bonusPercentage}% attack bonus!`);
}
}
// --- END AI CHEM FRENZY ---
await this.vatsTargeting(attackerMap, defenderMap); await this.battle(country, target[0], this.players[i], i);
}
// --- PASTE THE NEW FUNCTION HERE ---
Gamestate.getWeakestNeighbor = function (player) {
let weakest = null;
let minArmy = Infinity;
player.areas.forEach(areaName => {
let country = this.countries.find(c => c.name === areaName);
if (country) {
country.neighbours.forEach(nName => {
let neighbor = this.countries.find(n => n.name === nName);
if (neighbor && neighbor.owner !== player.name && !neighbor.isCrater && neighbor.army < minArmy) {
minArmy = neighbor.army;
weakest = neighbor;
}
});
}
});
return weakest;
}
Gamestate.useMercenaryContract = async function () {
const perkId = this.player.perk?.id;
if (!this.perksEnabled || !perkId || (perkId !== 'minutemen_contracts' && perkId !== 'gunner_contracts' && perkId !== 'mercenary_contracts') || this.aiTurn) return;
let mercCost = (this.levelingEnabled && this.player.activeBuffs && this.player.activeBuffs.gunNut) ? 15 : 20;
if (this.player.caps < mercCost) {
if (this.showToast) this.showToast(`Not enough Caps! Contract requires ${mercCost}.`, "red");
return;
}
// Pay the cost
this.player.caps -= mercCost;
// ---> CHANGED: 6 to 12 troops + 1 for every 2 territories owned
const reward = (Math.floor(Math.random() * 7) + 6) + Math.floor(this.player.areas.length / 2);
// Set cooldown based on faction data (defaults to 4 if not found)
const baseCooldown = this.player.perk.cooldown || (perkId === 'gunner_contracts' ? 1 : 3);
this.player.mercenaryCooldown = baseCooldown + 1; // +1 to account for the current turn
// Troops are always added to the general reserve pool, forcing a deployment phase.
this.player.reserve += reward;
this.player.army += reward;
this.stage = "Fortify"; // Force the game into deployment phase
this.updateButtonText();
const factionName = perkId === 'minutemen_contracts' ? "Minutemen" : "Gunners";
await this.logAction(`Mercenary contract fulfilled! Paid 20 Caps. +${reward} elite ${factionName} have been added to your reserves.`);
this.updateInfo();
};
Gamestate.aiManeuver = function (i) {
let player = this.players[i];
let owned = this.countries.filter(c => c.owner === player.name);
if (this.commandersEnabled && player.commander && player.commander.hp > 0) {
let maxLoops = 5;
while (player.commander.ap > 0 && maxLoops > 0) {
maxLoops--;
let cmdrLoc = this.countries.find(c => c.name === player.commander.loc);
if (!cmdrLoc) break;
let movedOrAction = false;
let neighbors = cmdrLoc.neighbours.map(n => this.countries.find(x => x.name === n)).filter(c => c !== undefined);
let friendlyNeighbors = neighbors.filter(c => c.owner === player.name);
// 1. RETREAT
if (player.commander.hp < 40 && friendlyNeighbors.length > 0) {
friendlyNeighbors.sort((a, b) => b.army - a.army);
if (friendlyNeighbors[0].army > cmdrLoc.army || (this.nukesEnabled && friendlyNeighbors[0].isSilo)) {
player.commander.loc = friendlyNeighbors[0].name;
player.commander.ap -= 1; movedOrAction = true;
player.commander.siegeTurns = 0; // Reset subversion timer
// --- NEW: Ninja Perk ---
let isNinja = this.levelingEnabled && player.activeBuffs && player.activeBuffs.ninja;
if (!isNinja) {
if (Gamestate.logFog) Gamestate.logFog(friendlyNeighbors[0].name, `Commander MOVEMENT: ${player.name}'s Commander retreats to ${formatTerritoryName(friendlyNeighbors[0].name)}.`, false, "move");
else if (Gamestate.logAction) Gamestate.logAction(`Commander MOVEMENT: ${player.name}'s Commander retreats to ${formatTerritoryName(friendlyNeighbors[0].name)}.`);
}
}
}
// 2. ATTACK OR PURGE
if (!movedOrAction && !player.commander.hasFought && player.commander.hp >= 30) {
// NEW: First, check if an enemy Commander is on the EXACT SAME territory (a trespasser)
let trespasser = this.players.find(p => p !== player && p.alive && !p.isNeutral && p.commander && p.commander.hp > 0 && p.commander.loc === cmdrLoc.name);
let target = null;
if (trespasser) {
target = trespasser; // Prioritize the trespasser!
} else {
// If no trespasser, check neighbors
let enemyCmdrs = [];
neighbors.forEach(n => {
let eCmdr = this.players.find(p => p !== player && p.alive && !p.isNeutral && p.commander && p.commander.hp > 0 && p.commander.loc === n.name);
if (eCmdr) enemyCmdrs.push(eCmdr);
});
if (enemyCmdrs.length > 0) {
enemyCmdrs.sort((a, b) => a.commander.hp - b.commander.hp);
target = enemyCmdrs[0];
}
}
// If we found a target (either on our tile or next door), FIGHT!
if (target && (player.commander.hp >= target.commander.hp || player.commander.hp > 60 || trespasser)) {
// If the target is a neighbor, move to them to fight
if (!trespasser) {
player.commander.loc = target.commander.loc;
player.commander.siegeTurns = 0;
}
player.commander.ap -= 1; movedOrAction = true;
let rawDmgToTarget = Math.floor(Math.random() * 16) + 10;
let rawDmgToSelf = Math.floor(Math.random() * 11) + 10;
// Home field advantage calculation
let currentLoc = this.countries.find(c => c.name === player.commander.loc);
if (currentLoc && currentLoc.owner === player.name) { rawDmgToSelf = Math.floor(Math.random() * 11) + 5; }
if (currentLoc && currentLoc.owner === target.name) { rawDmgToTarget = Math.floor(Math.random() * 11) + 5; }
let cappedDmgToTarget = Math.min(25, rawDmgToTarget);
let cappedDmgToSelf = Math.min(25, rawDmgToSelf);
if (target.commander.isConverting) cappedDmgToSelf = 0;
if (player.commander.isConverting) cappedDmgToTarget = 0;
target.commander.hp -= cappedDmgToTarget;
player.commander.hp -= cappedDmgToSelf;
player.commander.hasFought = true;
target.commander.wasAttacked = true;
player.commander.wasAttacked = true;
if (Gamestate.logFog) Gamestate.logFog(currentLoc.name, `[ REGICIDE DUEL ] ${player.name} engaged ${target.name}'s Commander at ${formatTerritoryName(currentLoc.name)}! (Dealt ${cappedDmgToTarget} DMG, Took ${cappedDmgToSelf} DMG)`, true, "battle");
else if (Gamestate.logAction) Gamestate.logAction(`[ REGICIDE DUEL ] ${player.name} engaged ${target.name}'s Commander at ${formatTerritoryName(currentLoc.name)}! (Dealt ${cappedDmgToTarget} DMG, Took ${cappedDmgToSelf} DMG)`, true);
if (target.commander.hp <= 0) this.killCommander(target);
if (player.commander.hp <= 0) this.killCommander(player);
}
}
// 3. P.A.C.E. (Prioritize And Consolidate Elite)
if (!movedOrAction) {
let bestMove = { loc: null, score: -100 };
neighbors.forEach(n => {
let score = 0;
// Heavily prioritize moving to a friendly tile
if (n.owner === player.name) {
score += 50;
score += n.army; // Prefer tiles with more troops
if(this.nukesEnabled && n.isSilo) score += 100; // Strongly prefer silos
} else if (n.owner !== 'none' && !this.areAllies(player.name, n.owner) && !n.isCrater) {
// --- FIX: Aggressive Conversion Logic ---
// If Commander is healthy and the enemy tile is weak (or empty), step in to convert!
if (player.commander.hp > 70 && n.army === 0) {
score += 60; // Highly prioritize grabbing empty land!
} else if (player.commander.hp > 85 && n.army <= 15) {
score += 30; // Willing to siege moderately weak lands
} else {
score -= 25; // Avoid heavily fortified enemy territory
}
} else {
score -= 25; // Avoid craters or allied/neutral lands
}
if(score > bestMove.score) {
bestMove = { loc: n.name, score: score };
}
});
if(bestMove.loc && bestMove.loc !== cmdrLoc.name) {
this.logDebug(`${player.name}'s Commander is moving to best tile ${formatTerritoryName(bestMove.loc)} (Score: ${bestMove.score})`);
player.commander.loc = bestMove.loc;
player.commander.ap -= 1;
movedOrAction = true;
player.commander.siegeTurns = 0;
}
}
if (!movedOrAction || player.commander.hp <= 0) break;
}
// If AI Commander ended their moves on an enemy territory, start converting
let finalLoc = this.countries.find(c => c.name === player.commander.loc);
if (finalLoc && finalLoc.owner !== player.name && !finalLoc.isCrater && !this.areAllies(player.name, finalLoc.owner)) {
const alreadyBeingConverted = this.players.some(p => p.commander && p.commander.isConverting && p.commander.loc === finalLoc.name);
if (!player.commander.isConverting && !alreadyBeingConverted) {
player.commander.isConverting = true;
player.commander.siegeTurns = 0;
}
}
}
// --- NEW: AI TROOP MANEUVERS & PERK PARITY ---
let maneuverPoints = (this.perksEnabled && player.perk && player.perk.id === 'rapid_relocation') ? 5 : 1;
// Allow Agility Bobblehead to add +1
let aBobble = this.bobbleheads && this.bobbleheads.find(b => b.key === 'a' && b.active && b.owner === player.name);
if (aBobble) maneuverPoints += 1;
while (maneuverPoints > 0) {
let borders = [];
let safeInteriors = [];
// Categorize territories
owned.forEach(t => {
if (t.isLockedDown || t.isExploring || t.isFrozen > 0) return;
let hasEnemyNeighbor = t.neighbours.some(n => {
let nc = this.countries.find(x => x.name === n);
return nc && nc.owner !== player.name && !this.areAllies(player.name, nc.owner) && !nc.isCrater;
});
if (hasEnemyNeighbor) borders.push(t);
else if (t.army > 1) safeInteriors.push(t);
});
let moved = false;
// 1. Great Khans (Guerrilla Tactics)
if (this.perksEnabled && player.perk && player.perk.id === 'guerrilla_tactics') {
let source = owned.find(t => t.army > 2 && !t.isLockedDown && !t.isExploring);
if (source) {
let enemyTargets = source.neighbours.map(n => this.countries.find(x => x.name === n)).filter(c => c && c.owner !== player.name && !this.areAllies(player.name, c.owner) && !c.isCrater);
for (let enemy of enemyTargets) {
let destination = enemy.neighbours.map(n => this.countries.find(x => x.name === n)).find(c => c && c.owner === player.name && c.name !== source.name);
if (destination) {
let moveAmt = source.army - 1;
destination.army += moveAmt;
source.army -= moveAmt;
let dmg = Math.max(1, Math.floor(enemy.army * 0.15));
enemy.army = Math.max(1, enemy.army - dmg);
if (this.logDebug) this.logDebug(`[AI MANEUVER] ${player.name} used Guerrilla Tactics through ${enemy.name}.`);
moved = true;
break;
}
}
}
}
// 2. The Enclave (Vertibird Assault)
if (!moved && this.perksEnabled && player.perk && player.perk.id === 'vertibird_assault') {
let source = safeInteriors.slice().sort((a, b) => b.army - a.army)[0];
if (!source) source = owned.slice().sort((a, b) => b.army - a.army)[0]; // Fallback
let dest = borders.slice().sort((a, b) => a.army - b.army)[0];
if (source && dest && source.name !== dest.name && source.army > 1) {
let moveAmt = source.army - 1;
dest.army += moveAmt;
source.army -= moveAmt;
if (this.logDebug) this.logDebug(`[AI MANEUVER] ${player.name} used Vertibird Assault from ${source.name} to ${dest.name}.`);
moved = true;
}
}
// 3. Standard / Railroad Maneuver
if (!moved) {
safeInteriors.sort((a, b) => b.army - a.army);
borders.sort((a, b) => a.army - b.army);
for (let interior of safeInteriors) {
let validDest = borders.find(b => interior.neighbours.includes(b.name));
if (validDest) {
let moveAmt = interior.army - 1;
validDest.army += moveAmt;
interior.army -= moveAmt;
if (this.logDebug) this.logDebug(`[AI MANEUVER] ${player.name} standard maneuvered from ${interior.name} to ${validDest.name}.`);
moved = true;
break;
}
}
}
if (!moved) break; // No valid moves found
maneuverPoints--;
}
}
// --- NEW HELPER FUNCTION for Ranger Network Perk ---
Gamestate.getConnectedBlockSize = function (player, startCountryName) {
if (!player.areas.includes(startCountryName)) {
return 0;
}
let visited = new Set();
let queue = [startCountryName];
visited.add(startCountryName);
let head = 0;
while (head < queue.length) {
const currentCountryName = queue[head++];
const currentCountry = this.countries.find(c => c.name === currentCountryName);
if (currentCountry) {
currentCountry.neighbours.forEach(neighbourName => {
// Check if the neighbor belongs to the same player and hasn't been visited yet
if (player.areas.includes(neighbourName) && !visited.has(neighbourName)) {
visited.add(neighbourName);
queue.push(neighbourName);
}
});
}
}
return visited.size;
};
// --- END OF NEW HELPER FUNCTION ---
Gamestate.battle = async function (country, opponent, player, i) {
let defender = document.getElementById(`${opponent.name}`);
let attacker = document.getElementById(`${country.name}`);
// Find the opponent
let opp;
this.players.forEach(p => {
if (p.name === opponent.owner) {
opp = p;
}
});
// --- EMPTY TERRITORY FAIL-SAFE ---
if (!opp) {
opp = {
name: "none",
isNeutral: true,
alive: false,
army: 0,
cards: [],
areas: []
};
}
const originalOwner = opponent.owner;
let attackerWinChance = 0.5;
if (this.difficulty === "Easy") {
if (player === this.player) attackerWinChance = 0.60;
else if (opp === this.player) attackerWinChance = 0.40;
} else if (this.difficulty === "Hard") {
if (player === this.player) attackerWinChance = 0.40;
else if (opp === this.player) attackerWinChance = 0.60;
} else if (this.difficulty === "Normal") {
// --- NEW: Dynamic Rubber-Band Scaling ---
let totalPlayable = this.countries.filter(c => !c.isCrater).length;
let playerOwnedCount = this.countries.filter(c => c.owner === this.player.name).length;
if (totalPlayable > 0 && (playerOwnedCount / totalPlayable) > 0.35) {
if (player === this.player) attackerWinChance -= 0.05; // Player is dominating
else if (opp === this.player) attackerWinChance += 0.05;
}
}
if (opp.isNeutral) attackerWinChance -= 0.15;
// --- BOBBLEHEAD COMBAT MODIFIERS (STRENGTH & ENDURANCE) ---
let fogEnabled = document.getElementById('opt-fog-of-war') && document.getElementById('opt-fog-of-war').checked;
let intelActive = false;
if (this.bobbleheads) {
let sBobble = this.bobbleheads.find(b => b.key === 's');
if (sBobble && sBobble.active && sBobble.owner === player.name) attackerWinChance += 0.10;
let eBobble = this.bobbleheads.find(b => b.key === 'e');
if (eBobble && eBobble.active && eBobble.owner === opp.name) attackerWinChance -= 0.10;
// ---> CHANGED: Perception/Intel Buffs if Fog is OFF
if (!fogEnabled) {
let pBobble = this.bobbleheads.find(b => b.key === 'p');
if (pBobble && pBobble.active && pBobble.owner === player.name) attackerWinChance += 0.15;
let iBobble = this.bobbleheads.find(b => b.key === 'i');
if (iBobble && iBobble.active && iBobble.owner === player.name) intelActive = true;
}
}
// --- NEW: DOGMEAT OFFENSE BUFF (HEALTHY ONLY) ---
if (player.dogmeatStatus === 'healthy' && player.name !== opp.name) {
attackerWinChance += 0.10;
}
// FIX: Declare this variable outside the block so the Silo logic can see it!
let ignoreDefenses = (this.levelingEnabled && player.activeBuffs && player.activeBuffs.demolitionExpert);
if (this.perksEnabled) {
// Power Armor Infantry bonus (Attacker)
if (player.perk && player.perk.id === 'power_armor_infantry') {
attackerWinChance += 0.05;
}
// Power Armor Infantry bonus (Defender)
if (opp.perk && opp.perk.id === 'power_armor_infantry') {
attackerWinChance -= 0.05;
}
// --- NEW: Ranger Network Defensive Bonus ---
// Only apply if the territory has defenders and the attacker is not an ally
if (!ignoreDefenses && opp && opp.perk && opp.perk.id === 'ranger_network' && opponent.army > 0 && !this.areAllies(player.name, opp.name)) {
// Calculate the size of the connected block the defending territory is in
const blockSize = this.getConnectedBlockSize(opp, opponent.name);
// Calculate bonus: 5% per territory in the block, up to 20%
let bonus = Math.min(0.20, (blockSize * 0.05));
if (intelActive) bonus = bonus / 2; // ---> CHANGED: Intel halves Ranger defense
if (bonus > 0) {
attackerWinChance -= bonus; // Decrease attacker's chance by the defensive bonus
this.logAction(`Ranger Network provided a +${Math.round(bonus * 100)}% defensive bonus.`);
}
}
// --- END OF NEW LOGIC ---
}
if (!ignoreDefenses && this.nukesEnabled && opponent.isSilo) {
let buff = Math.min(0.80, opponent.siloTurns * 0.20);
if (this.activeNuke && this.activeNuke.launcher === opponent.owner) buff = 0;
if (opponent.owner === "Wasteland Horrors") buff = 0;
if (intelActive) buff = buff / 2; // ---> CHANGED: Intel halves Silo defense
attackerWinChance = attackerWinChance * (1 - buff);
}
if (this.commandersEnabled && opp.commander && opp.commander.loc === opponent.name) {
attackerWinChance = attackerWinChance * 0.80;
// --- NEW: X-01 Power Armor Defense Bonus ---
if (opp.relics && opp.relics.some(r => r.id === 'x01armor' && r.isEquipped)) {
attackerWinChance -= 0.15;
}
}
if (attackerWinChance < 0.11) attackerWinChance = 0.11;
// --- NEW: 100% win chance against empty territories ---
if (opponent.army === 0) attackerWinChance = 1.0;
if (Gamestate.devWinOverride !== undefined && Gamestate.devWinOverride >= 0) {
if (player === this.player) attackerWinChance = Gamestate.devWinOverride;
if (opp === this.player) attackerWinChance = 1.0 - (Gamestate.devWinOverride);
}
// --- NEW: Calculate Overall Battle Probability for the Debug Log ---
let a_troops = country.army - 1;
let d_troops = opponent.army;
let overallWinProb = 0;
// We use the exact same calculation here that the hover tooltip uses to ensure parity
if (a_troops <= 0) {
overallWinProb = 0;
} else if (d_troops === 0) {
overallWinProb = 1;
} else if (attackerWinChance === 0.5) {
// Standard perfectly fair 50/50 dice odds (with Defender's Advantage)
overallWinProb = a_troops / (a_troops + d_troops);
} else {
let q = 1 - attackerWinChance;
let ratio = q / attackerWinChance;
overallWinProb = (1 - Math.pow(ratio, a_troops)) / (1 - Math.pow(ratio, a_troops + d_troops));
}
// Add the absolute floor/ceiling to match the tooltip
if (overallWinProb > 0.95) overallWinProb = 0.95;
if (overallWinProb < 0.01) overallWinProb = 0.01;
this.logDebug(`Battle: ${player.name} (${country.army}) vs ${opponent.owner} (${opponent.army}) in ${formatTerritoryName(opponent.name)}. Overall win prob: ${(overallWinProb * 100).toFixed(1)}% (Per-Roll: ${(attackerWinChance * 100).toFixed(1)}%)`);
let isVictory = false;
let flavor = "";
if (this.perksEnabled) {
// --- NEW: Apply variable Chem Frenzy bonus ---
if (player.chemFrenzyBonus && player.chemFrenzyBonus > 0) {
attackerWinChance += player.chemFrenzyBonus; // Apply the variable bonus
player.chemFrenzyBonus = 0; // Reset the bonus after use
// The log message is now handled in the 'attack' function, so we don't need it here.
}
// --- END OF NEW LOGIC ---
// --- NEW: Apply Technology Overdrive bonus ---
if (player.techOverdriveActive && player.techOverdriveActive > 0) {
attackerWinChance += 0.10; // Add the 10% bonus
}
// --- END OF NEW LOGIC ---
if (this.perksEnabled && player.perk?.id === 'mysterious_stranger') {
const wouldLose = (country.army <= opponent.army) && (Math.random() > attackerWinChance);
if ((player.strangerCooldown || 0) === 0 && wouldLose) {
if (this.queueToast) {
this.queueToast(`>>> UNKNOWN VARIABLE DETECTED <<< <br><span style="font-size: 32px;">?</span><br>THE MYSTERIOUS STRANGER APPEARS`, "var(--pip-color)", true);
}
await this.logAction("A familiar tune plays... The Mysterious Stranger steps from the shadows!", true);
attackerWinChance += 0.25; // FIX: This now only applies WHEN the Stranger appears.
player.strangerCooldown = Math.floor(Math.random() * 4) + 1;
}
}
// --- FIX: Mysterious Stranger on Defense ---
if (this.perksEnabled && opp.perk?.id === 'mysterious_stranger') {
const wouldLose = (opponent.army <= country.army) && (Math.random() < attackerWinChance);
if ((opp.strangerCooldown || 0) === 0 && wouldLose) {
if (this.queueToast) {
this.queueToast(`>>> UNKNOWN VARIABLE DETECTED <<< <br><span style="font-size: 32px;">?</span><br>THE MYSTERIOUS STRANGER APPEARS`, "var(--pip-color)", true);
}
await this.logAction("A familiar tune plays... The Mysterious Stranger steps from the shadows to defend!", true);
attackerWinChance -= 0.25; // Decrease attacker's chance
if (attackerWinChance < 0.11) attackerWinChance = 0.11; // Hard minimum
opp.strangerCooldown = Math.floor(Math.random() * 4) + 1;
}
}
// --- NEW: The Minutemen (Flare Gun Rescue) ---
if (opp.perk?.id === 'minutemen_contracts') {
// "Deemed to lose" check: Is the attacker bringing more troops than the defender has?
if (country.army > opponent.army) {
// RNG Check: 40% chance help arrives in time
if (Math.random() < 0.40) {
// Spawn 2 to 4 free troops out of thin air
const spawnedTroops = Math.floor(Math.random() * 3) + 2;
opponent.army += spawnedTroops;
// Temporary +15% defense boost (lowers attacker's win chance)
attackerWinChance -= 0.15;
if (attackerWinChance < 0.11) attackerWinChance = 0.11; // Hard minimum failsafe
// Instantly update the map visual so the player sees the reinforcements
if (defender && defender.nextElementSibling) defender.nextElementSibling.textContent = opponent.army;
await this.logAction(`"Another settlement needs our help!" Flare fired! ${spawnedTroops} Minutemen Militia arrived just in time, granting a +15% defense bonus!`, true);
}
}
}
// --- END MINUTEMEN LOGIC ---
}
const originalDefenderArmy = opponent.army;
const originalAttackerArmy = country.army;
// --- NEW: BOTTLECAP MINE DETONATION & DOGMEAT IMMUNITY ---
if (opponent.hasMine) {
opponent.hasMine = false; // Remove the mine so it doesn't trigger again
if (player.dogmeatStatus === 'healthy') {
await this.logAction(`[ BOMB DEFUSED ] Dogmeat sniffed out the Bottlecap Mine at ${formatTerritoryName(opponent.name)} before it could detonate!`, true);
} else {
let dmg = Math.min(country.army - 1, Math.floor(Math.random() * 8) + 4); // Deals 4 to 11 damage
if (dmg > 0) {
country.army -= dmg;
player.army -= dmg;
if (attacker && attacker.nextElementSibling) attacker.nextElementSibling.textContent = country.army;
if (this.queueToast) this.queueToast("BOMB DETONATED!", "red");
await this.logAction(`[ TRAP TRIGGERED ] Bottlecap Mine detonated at ${formatTerritoryName(opponent.name)}! Attacker lost ${dmg} troops.`, true);
}
}
}
// --- [ FIXED & RELOCATED LEVELING PERKS COMBAT MODIFIERS ] ---
if (this.levelingEnabled) {
if (player.activeBuffs) {
// 1. Bloody Mess: +5% per stack on all attacks
if (player.activeBuffs.bloodyMess) attackerWinChance += (player.activeBuffs.bloodyMess * 0.05);
// 3. Ghoul Slayer: Massive +15% against Wasteland Horrors
if (player.activeBuffs.ghoulSlayer && opp.name === "Wasteland Horrors") attackerWinChance += 0.15;
// 4. Commando: Pre-emptive strike
if (player.activeBuffs.commando && originalAttackerArmy >= 10 && opponent.army > 0) {
opponent.army -= 1;
this.logAction(`[ COMMANDO ] Pre-emptive strike eliminated 1 defender before the roll.`);
if (defender && defender.nextElementSibling) defender.nextElementSibling.textContent = opponent.army;
}
}
if (opp.activeBuffs) {
// 2. Toughness: +5% per stack on all defense
if (opp.activeBuffs.toughness) attackerWinChance -= (opp.activeBuffs.toughness * 0.05);
// 5. Rooted: +10% defense if territory hasn't moved troops recently
if (opp.activeBuffs.rooted && !opponent.wasManeuveredThisTurn) {
attackerWinChance -= 0.10;
}
}
}
// --- END FIXED LEVELING PERKS ---
while (opponent.army > 0 && country.army > 1) {
let attackerRoll = Math.random();
let attackerWins = (attackerRoll < attackerWinChance);
if (attackerWins) {
opponent.army -= 1;
} else {
country.army -= 1;
}
}
if (country.army <= 1 && opponent.army > 0) {
// --- NEW: XP FOR DEFENSE ---
// NEW BALANCED VALUE: 4 XP for a successful defense
if (opp && !opp.isNeutral) this.addXP(opp, 4);
const attackerLosses = originalAttackerArmy - country.army;
const defenderLosses = originalDefenderArmy - opponent.army; // --- NEW: Track defender losses
// --- NEW: Record Failure for Mr. House ---
if (this.perksEnabled && player.perk && player.perk.id === 'the_house_always_wins') {
// We store the data of the failed attack so the button can undo it later
player.lastFailedAttack = {
sourceTerritory: country.name,
targetTerritory: opponent.name, // --- NEW: Track target territory
losses: attackerLosses,
defenderLosses: defenderLosses, // --- NEW: Track defender losses
turnNumber: this.turn
};
// AI Logic: Mr. House AI will instantly auto-undo if he loses 3 or more troops and it's off cooldown
if (!player.isPlayer && (player.predictiveCooldown || 0) === 0 && attackerLosses >= 3) {
country.army += attackerLosses;
opponent.army += defenderLosses; // --- NEW: Restore defenders for AI
player.predictiveCooldown = 3;
await this.logAction(`[ PREDICTIVE SIMULATION ] ${player.name} foresaw unacceptable losses. The attack was aborted! ${attackerLosses} attackers and ${defenderLosses} defenders restored.`, true);
if (attacker && attacker.nextElementSibling) attacker.nextElementSibling.textContent = country.army;
if (defender && defender.nextElementSibling) defender.nextElementSibling.textContent = opponent.army;
this.updateInfo();
return; // Bypass normal defeat logic
}
}
// --- END OF NEW LOGIC ---
if (attacker && attacker.nextElementSibling) attacker.nextElementSibling.textContent = country.army;
if (defender && defender.nextElementSibling) defender.nextElementSibling.textContent = opponent.army;
this.updateInfo();
if (this.logFog) await this.logFog(opponent.name, `REPULSED: ${player.name} assaulted ${originalOwner} in ${formatTerritoryName(opponent.name)} but failed.`, false, "battle");
else await this.logAction(`REPULSED: ${player.name} assaulted ${originalOwner} in ${formatTerritoryName(opponent.name)} but failed.`);
if (this.perksEnabled) {
if (opp && opp.perk?.id === 'fev_infection') {
const converted = Math.floor(attackerLosses * 0.25);
if (converted > 0) {
opponent.army += converted;
if (defender && defender.nextElementSibling) defender.nextElementSibling.textContent = opponent.army;
await this.logAction(`MUTATION!: F.E.V. converted ${converted} defeated attackers into Super Mutants!`);
}
}
// --- NEW: Universal Synth Recovery (Failed Attack) ---
if (player.perk?.id === 'synth_replacements' && attackerLosses > 0) {
let synths = 0;
for (let k = 0; k < attackerLosses; k++) { if (Math.random() < 0.15) synths++; }
if (synths > 0) {
player.reserve += synths;
await this.logAction(`MEMORY REPLACEMENT: The Institute recovered ${synths} destroyed attacking Synths to reserves!`);
}
}
if (opp.perk?.id === 'synth_replacements' && defenderLosses > 0) {
let synths = 0;
// FIX: Corrected typo from 0.10 to 0.15
for (let k = 0; k < defenderLosses; k++) { if (Math.random() < 0.15) synths++; }
if (synths > 0) {
opp.reserve += synths;
await this.logAction(`MEMORY REPLACEMENT: The Institute recovered ${synths} destroyed defending Synths to reserves!`);
}
}
// --- END SYNTH LOGIC ---
}
return;
}
if (opponent.army <= 0) {
isVictory = true;
player.conqueredThisTurn = true;
// NEW BALANCED VALUES: 8 XP for land, 12 XP for Horror nests
let xpReward = (originalOwner === "Wasteland Horrors") ? 12 : 8;
this.addXP(player, xpReward);
// --- NEW: EXPEDITION WIPED OUT CHECK ---
if (opponent.isExploring) {
// Only show the modal if the HUMAN player's expedition was destroyed
if (originalOwner === this.player.name) {
const title = "Signal Lost";
const msg = `>>> CONNECTION SEVERED <<<<br><br>The expedition force searching the ${opponent.explorePOI || 'area'} at ${formatTerritoryName(opponent.name)} has been completely wiped out by an attack from ${player.name}.<br><br>All hands and recovered assets are lost.`;
const choices = [{ id: "acknowledge", text: "[Acknowledge] A tragic loss." }];
this.modalIsOpen = true;
await this.showEncounterModal(title, msg, choices, () => {
this.logAction(`[ TRAGEDY ] The expedition at ${formatTerritoryName(opponent.name)} was slaughtered by ${player.name}.`, true);
return null; // Skip outcome delay screen
});
this.modalIsOpen = false;
}
// Clear the exploring flags so the new owner doesn't inherit them
opponent.isExploring = false;
opponent.exploreTurnsLeft = 0;
opponent.exploreType = null;
opponent.explorePOI = null;
}
if (Math.random() < 0.15) { // 15% chance to see a flavor text
let flavorArray = combatFlavors; // Default to the standard list
if (player.isPlayer && player.dogmeatStatus && Math.random() < 0.40) { // 40% chance for a dog-related flavor
if (player.dogmeatStatus === 'healthy' && typeof dogmeatCombatFlavors !== 'undefined') {
flavorArray = dogmeatCombatFlavors;
} else if (player.dogmeatStatus === 'injured' && typeof injuredDogmeatCombatFlavors !== 'undefined') {
flavorArray = injuredDogmeatCombatFlavors;
}
}
flavor = " " + flavorArray[Math.floor(Math.random() * flavorArray.length)];
} else {
flavor = "!";
}
this.players.forEach(p => {
if (p.name === opponent.owner) {
let index = p.areas.indexOf(opponent.name);
if (index > -1) {
p.areas.splice(index, 1);
}
}
});
opponent.owner = player.name;
opponent.color = player.color;
opponent.siloTurns = 0;
player.areas.push(opponent.name);
// --- NEW: Calculate Max Movement BEFORE the modal ---
let maxMove = country.army - 1;
let minMove = 1;
if (this.perksEnabled && player.perk && player.perk.id === 'scourge_of_the_east') {
maxMove = country.army; // Caesar's Legion can move 100% of their troops!
}
let movedTroops = minMove;
if (player === this.player && maxMove > minMove) {
// The modal will now correctly reflect the higher maximum
movedTroops = await this.showMoveModal(minMove, maxMove, formatTerritoryName(opponent.name));
} else if (player !== this.player) {
movedTroops = maxMove; // AI always moves the maximum allowed
}
opponent.army = movedTroops;
country.army -= movedTroops;
if (defender) defender.style.fill = opponent.color;
// --- NEW ENCOUNTER TRIGGER IS NOW HERE (After troops have arrived!) ---
if (player.isPlayer) {
if (this.dogmeatQuest && this.dogmeatQuest.active && this.dogmeatQuest.target === opponent.name) {
this.dogmeatQuest.active = false;
this.dogmeatQuest.siege = 3; // Start the 3-day siege timer!
await this.resolveDogmeatSiege('start', opponent);
} else {
await this.triggerEncounterCheck('post_conquest', opponent.name);
}
}
if (this.perksEnabled && player.perk) {
if (player.perk.id === 'fev_infection') {
// (Bonus Fix: Made the victory FEV math match the repulse FEV math!)
const converted = Math.max(1, Math.floor(originalDefenderArmy * 0.25));
opponent.army += converted;
// Force visual update
if (defender && defender.nextElementSibling) defender.nextElementSibling.textContent = opponent.army;
await this.logAction(`MUTATION!: F.E.V. converted ${converted} defeated defenders into Super Mutants!`);
}
// --- NEW: The Fiends (Chem-Fueled Raids) ---
else if (player.perk.id === 'psycho_rush') {
// 30% chance to trigger a raid on conquest
if (Math.random() < 0.30) {
let gotLoot = false;
let lootRoll = Math.random();
// 60% chance to try stealing Caps / Cards
if (lootRoll < 0.60) {
if (this.wastelandEconomyActive && opp.caps > 0) {
let stolenCaps = Math.min(opp.caps, Math.floor(Math.random() * 4) + 2); // 2 to 5 caps
opp.caps -= stolenCaps;
player.caps += stolenCaps;
gotLoot = true;
await this.logAction(`[ RAID ] The Fiends ransacked the survivors and stole ${stolenCaps} Caps!`, true);
} else if (!this.wastelandEconomyActive && opp.cards && opp.cards.length > 0) {
let stolenCard = opp.cards.pop();
player.cards.push(stolenCard);
gotLoot = true;
await this.logAction(`[ RAID ] The Fiends ransacked the survivors and stole a Bottle Cap card!`, true);
}
}
// 40% chance to try stealing a Stimpak
else {
if (this.commandersEnabled && opp.commander && opp.commander.stimpaks > 0 && player.commander) {
opp.commander.stimpaks--;
player.commander.stimpaks = Math.min(3, player.commander.stimpaks + 1);
gotLoot = true;
await this.logAction(`[ RAID ] The Fiends mugged the enemy medics and stole a Stimpak!`, true);
}
}
// FAILSAFE: If the enemy was broke or didn't have the item, take slaves!
if (!gotLoot) {
let enslaved = Math.floor(Math.random() * 2) + 1; // 1 or 2 troops
opponent.army += enslaved;
if (defender && defender.nextElementSibling) defender.nextElementSibling.textContent = opponent.army;
await this.logAction(`[ ENSLAVED ] Finding no loot, The Fiends forced ${enslaved} captives to join their army!`, true);
}
}
}
// --- END FIENDS LOGIC ---
}
if (this.activeNukes) {
// Check if the specific origin silo was just captured
let abortedNukeIndex = this.activeNukes.findIndex(n => n.launcher === originalOwner && n.launchSilo === opponent.name);
if (abortedNukeIndex > -1) {
await this.logAction(`[ CRITICAL ] ${originalOwner} lost control of the launch silo at ${formatTerritoryName(opponent.name)}! Launch sequence aborted.`, true);
this.modalIsOpen = true;
await this.showEncounterModal(
"Launch Aborted",
`>>> SCORCHED EARTH PROTOCOL TERMINATED <<<<br><br>The origin Nuclear Silo at <span style="color: #ffcc00; font-weight: bold;">${formatTerritoryName(opponent.name)}</span> was captured from <span style="color: #ff3333; font-weight: bold;">${originalOwner}</span>.<br><br>The active launch sequence has been aborted.`,
[{ id: "acknowledge", text: "[Acknowledge] Stand down from high alert." }]
);
this.modalIsOpen = false;
this.activeNukes.splice(abortedNukeIndex, 1);
}
}
// ==========================================
// 1. HUMAN PLAYER LOOTING (You naturally find items)
// ==========================================
if (player.isPlayer) {
// FIX: Must be active AND owned by the human player
let luckItem = this.bobbleheads && this.bobbleheads.find(i => i.key === 'l' && i.active && i.owner === this.player.name);
let luckModifier = luckItem ? 0.15 : 0;
if (this.levelingEnabled && player.activeBuffs && player.activeBuffs.scavenger) {
luckModifier += (0.10 * player.activeBuffs.scavenger);
}
// ---> CHANGED: Dynamic Battle Cap Rewards (Multiplied by Luck)
if (this.wastelandEconomyActive) {
let ratio = originalDefenderArmy / originalAttackerArmy;
let baseCaps = Math.floor(Math.random() * 3) + 1; // 1-3 caps
if (ratio > 1.5) baseCaps += Math.floor(Math.random() * 5) + 5; // Underdog: +5-9
else if (ratio > 0.8) baseCaps += Math.floor(Math.random() * 3) + 2; // Even match: +2-4
if (luckItem) baseCaps = Math.floor(baseCaps * 2); // Luck doubles payout
this.player.caps += baseCaps;
await this.logAction(`[ BATTLE SALVAGE ] Recovered ${baseCaps} Caps from the fallen.`, false);
}
let roll = Math.random();
if (this.bobbleheads && roll < (0.05 + luckModifier)) {
let unfoundItems = this.bobbleheads.filter(item => !item.found);
if (unfoundItems.length > 0) {
let foundItem = unfoundItems[Math.floor(Math.random() * unfoundItems.length)];
foundItem.found = true;
foundItem.owner = this.player.name; // <--- YOU claim ownership!
if (this.logAction) await this.logAction(`[ OVERSEER ] You have discovered a '${foundItem.name}'. It has been added to your inventory.`, true);
let navInv = document.getElementById('nav-inv');
if (navInv) navInv.classList.add('inv-pulse');
if (Gamestate.renderInventory) Gamestate.renderInventory();
}
} else if (this.commandersEnabled && player.commander && player.commander.stimpaks < 3 && roll < (0.40 + luckModifier)) {
player.commander.stimpaks++;
if (this.logAction) await this.logAction(`[ OVERSEER ] Your forces salvaged a Stimpak from the battlefield.`, true);
let navInv = document.getElementById('nav-inv');
if (navInv) navInv.classList.add('inv-pulse');
if (Gamestate.renderInventory) Gamestate.renderInventory();
}
}
// ==========================================
// 2. AI FACTION LOOTING (The Enemy finds items)
// ==========================================
else if (!player.isPlayer) {
// FIX: Must be active AND owned by the AI attacker
let luckItem = this.bobbleheads && this.bobbleheads.find(i => i.key === 'l' && i.active && i.owner === player.name);
let luckModifier = luckItem ? 0.15 : 0;
if (this.levelingEnabled && player.activeBuffs && player.activeBuffs.scavenger) {
luckModifier += (0.10 * player.activeBuffs.scavenger);
}
let roll = Math.random();
if (this.bobbleheads && roll < (0.05 + luckModifier)) {
let unfoundItems = this.bobbleheads.filter(item => !item.found);
if (unfoundItems.length > 0) {
let foundItem = unfoundItems[Math.floor(Math.random() * unfoundItems.length)];
foundItem.found = true;
foundItem.owner = player.name; // <--- THE AI claims ownership!
if (this.logAction) await this.logAction(`\\[ INTEL \\] Radio intercepts indicate ${player.name} has located a '${foundItem.name}'.`);
}
} else if (this.commandersEnabled && player.commander && player.commander.stimpaks < 3 && roll < (0.40 + luckModifier)) {
player.commander.stimpaks++;
if (this.logAction) await this.logAction(`\\[ INTEL \\] Scouts report ${player.name}'s Commander salvaged a Stimpak from the battlefield.`);
}
}
if (opp.areas && opp.areas.length === 0 && (!this.commandersEnabled || !opp.commander || opp.commander.hp <= 0)) {
if (opp.name !== "none") {
opp.alive = false;
// --- NEW: XP FOR ELIMINATION ---
this.addXP(player, 40);
// ---> CHANGED: Transfer Stimpaks and Bobbleheads to the Conqueror
if (this.commandersEnabled && opp.commander && opp.commander.stimpaks > 0) {
if (player.commander) player.commander.stimpaks += opp.commander.stimpaks;
opp.commander.stimpaks = 0;
if (Gamestate.logAction) Gamestate.logAction(`[ LOOT ] ${player.name} looted ${opp.name}'s medical supplies!`, true);
}
if (this.bobbleheads) {
this.bobbleheads.forEach(b => {
if (b.owner === opp.name) {
b.owner = player.name;
b.cooldown = 0; // FIX ISSUE #5: Reset cooldown for the new owner
b.active = false; // FIX ISSUE #5: Deactivate the item for the new owner
if (Gamestate.logAction) Gamestate.logAction(`[ LOOT ] ${player.name} claimed the ${b.name} from the fallen faction!`, true);
}
});
}
let index = this.players.indexOf(opp);
if (infoName[index]) infoName[index].parentElement.classList.add('defeated');
if (opp.cards.length > 0) {
player.cards.push(...opp.cards);
if (Gamestate.logAction) Gamestate.logAction(`[ LOOT ] ${player.name} looted the dead. (+${opp.cards.length} Caps)`, true);
opp.cards = [];
}
if (this.nukesEnabled && opp.codes > 0) {
player.codes += opp.codes;
opp.codes = 0;
if (Gamestate.logAction) Gamestate.logAction(`[ INTEL ] Recovered Launch Codes from the defeated faction!`, true);
}
}
} else if (opp.areas && opp.areas.length === 0 && this.commandersEnabled && opp.commander && opp.commander.hp > 0) {
await this.logAction(`[ EXILED ] ${opp.name} lost their final territory, but their Commander is still alive behind enemy lines!`, true);
}
}
player.army = 0;
opp.army = 0;
this.countries.forEach(c => {
player.areas.forEach(area => {
if (area === c.name) {
player.army += c.army
}
})
if (opp.areas) {
opp.areas.forEach(area => {
if (area === c.name) {
opp.army += c.army
}
})
}
});
this.updateInfo();
// --- NEW: Universal Synth Recovery (Successful Attack) ---
if (this.perksEnabled && isVictory) {
// --- FIX: Account for the troops that moved into the conquered territory! ---
const attackerLosses = originalAttackerArmy - (country.army + opponent.army);
const defenderLosses = originalDefenderArmy;
if (player.perk?.id === 'synth_replacements' && attackerLosses > 0) {
let synths = 0;
// FIX: Corrected typo from 0.10 to 0.15
for (let k = 0; k < attackerLosses; k++) { if (Math.random() < 0.15) synths++; }
if (synths > 0) {
player.reserve += synths;
await this.logAction(`MEMORY REPLACEMENT: The Institute recovered ${synths} destroyed attacking Synths to reserves!`);
}
}
if (opp.perk?.id === 'synth_replacements' && defenderLosses > 0) {
let synths = 0;
// FIX: Corrected typo from 0.10 to 0.15
for (let k = 0; k < defenderLosses; k++) { if (Math.random() < 0.15) synths++; }
if (synths > 0) {
opp.reserve += synths;
await this.logAction(`MEMORY REPLACEMENT: The Institute recovered ${synths} destroyed defending Synths to reserves!`);
}
}
}
// --- END SYNTH LOGIC ---
if (isVictory) {
// --- NEW: Better logging for occupying empty land ---
if (originalDefenderArmy > 0) {
if (this.logFog) await this.logFog(opponent.name, `VICTORY: ${player.name} wiped out ${originalOwner} in ${formatTerritoryName(opponent.name)}${flavor}`, true, "battle");
else await this.logAction(`VICTORY: ${player.name} wiped out ${originalOwner} in ${formatTerritoryName(opponent.name)}${flavor}`, true);
} else {
if (this.logFog) await this.logFog(opponent.name, `[OCCUPIED] ${player.name} secured the undefended territory of ${formatTerritoryName(opponent.name)}.`, true, "battle");
else await this.logAction(`[OCCUPIED] ${player.name} secured the undefended territory of ${formatTerritoryName(opponent.name)}.`, true);
}
if (originalOwner !== "none" && originalOwner !== "Wasteland Horrors") {
if (this.diplomacy.reputation[originalOwner] && this.diplomacy.reputation[originalOwner][player.name] !== undefined) {
this.diplomacy.reputation[originalOwner][player.name] = Math.max(-50, this.diplomacy.reputation[originalOwner][player.name] - 5);
}
}
}
if (this.player.alive) {
continents.forEach(continent => {
let ownsContinent = continent.areas.every(area => player.areas.includes(area) && !this.countries.find(x => x.name === area).isCrater);
if (ownsContinent) {
let matchedCountry = continent.areas.some(a => {
return a === opponent.name;
});
if (matchedCountry) {
let bonusText = `+${continent.bonus} TROOPS`;
if (this.perksEnabled && player.perk) {
if (player.perk.id === 'logistical_superiority') {
let extraTroops = Math.ceil(continent.bonus * 0.5);
bonusText = `+${continent.bonus + extraTroops} TROOPS`;
} else if (player.perk.id === 'tribute_chest') {
if (this.wastelandEconomyActive) {
bonusText += ` & +5 CAPS`;
} else {
bonusText += ` & +1 CARD`;
}
}
}
// --- FIX: Respect Turbo Mode and Fog of War for AI Captures ---
let turbo = document.getElementById('turbo-toggle') && document.getElementById('turbo-toggle').checked;
let isVis = this.isTerritoryVisible ? this.isTerritoryVisible(opponent.name) : true;
let shouldShowAlert = false;
if (player.isPlayer) {
shouldShowAlert = true; // Always show for human player
} else if (!turbo && isVis) {
shouldShowAlert = true; // Show for AI only if visible and not fast-forwarding
}
if (shouldShowAlert && this.queueToast) {
this.queueToast(`>>> STRATEGIC ASSET SECURED <<< <br><br>${player.name.toUpperCase()} NOW CONTROLS ${continent.name.toUpperCase()}<br>(${bonusText})`, player.color, false);
}
}
}
})
}
this.checkWinCondition();
}
// --- NEW: FETCH FACTION ICON ---
Gamestate.getFactionIconHTML = function(factionName) {
let iconClass = "default";
const name = factionName.toLowerCase();
// FO3
if (name.includes("enclave") || name.includes("eden")) iconClass = "enclave";
else if (name.includes("super mutant") || name.includes("overlord")) iconClass = "supermutants";
else if (name.includes("talon")) iconClass = "talon";
else if (name.includes("reilly")) iconClass = "reilly";
else if (name.includes("outcasts") || name.includes("casdin")) iconClass = "outcasts";
// FNV
else if (name.includes("legion") || name.includes("caesar")) iconClass = "legion";
else if (name.includes("house")) iconClass = "mrhouse";
else if (name.includes("khans") || name.includes("kahns")) iconClass = "khans";
else if (name.includes("boomers")) iconClass = "boomers";
else if (name.includes("fiends")) iconClass = "fiends";
// FO4
else if (name.includes("institute") || name.includes("father")) iconClass = "institute";
else if (name.includes("brotherhood") || name.includes("lyons") || name.includes("maxson")) iconClass = "bos";
else if (name.includes("railroad") || name.includes("desdemona")) iconClass = "railroad";
else if (name.includes("gunners")) iconClass = "gunners";
else if (name.includes("raider") || name.includes("gangs")) iconClass = "raiders";
if (iconClass === "default") return `★ `; // Fallback to the star for the Human Player or missing factions
return `<span class="faction-icon ${iconClass}"></span>`;
};
Gamestate.checkWinCondition = function () {
if (this.gameOver) return;
let winModal = document.querySelector('#win-modal');
let winMessage = document.querySelector('.win-message');
if (!winModal || !winMessage) return;
// --- CHECK 1: PLAYER DEFEAT ---
let playerDead = false;
let isAllyDeath = false;
if (this.commandersEnabled) {
if (!this.player.commander || this.player.commander.hp <= 0) {
playerDead = true;
} else if (this.isAllianceMode) {
let ally = this.players.find(p => p.team === this.player.team && !p.isPlayer);
if (ally && (!ally.commander || ally.commander.hp <= 0)) {
playerDead = true;
isAllyDeath = true;
}
}
} else {
if (this.player.areas.length === 0) {
playerDead = true;
} else if (this.isAllianceMode) {
let ally = this.players.find(p => p.team === this.player.team && !p.isPlayer);
if (ally && ally.areas.length === 0) {
playerDead = true;
isAllyDeath = true;
}
}
}
if (playerDead) {
this.gameOver = true;
this.player.alive = false;
let defeatFlavors = [
"Your faction is nothing but a footnote in the wasteland's bloody history.",
"Your forces have been scattered, your settlements burned. The wastes claim another victim.",
"War never changes. And this time, you were on the losing side."
];
let cmdrFlavor = isAllyDeath ? "Your Ally's Commander has fallen. The alliance is shattered, and your forces scatter in the ensuing chaos." : "Your Commander has fallen. Without leadership, your forces scattered into the irradiated winds.";
let standardFlavor = isAllyDeath ? "Your ally was wiped out. Standing alone, your remaining forces are quickly overrun." : defeatFlavors[Math.floor(Math.random() * defeatFlavors.length)];
winMessage.textContent = "YOU DIED.";
winMessage.style.color = "#ff3333";
let subMsg = winMessage.nextElementSibling;
if (subMsg && subMsg.tagName === 'P') {
subMsg.textContent = this.commandersEnabled ? cmdrFlavor : standardFlavor;
}
winModal.style.display = "block";
return;
}
let totalPlayableLand = this.countries.filter(c => !c.isCrater).length;
let playerLand = this.countries.filter(c => c.owner === this.player.name).length;
let ownsAllLand = (playerLand >= totalPlayableLand);
let allRivalsDead = true;
if (this.commandersEnabled) {
let livingRivalCmdrs = this.players.filter(p => p !== this.player && !p.isNeutral && p.alive && p.commander && p.commander.hp > 0);
if (livingRivalCmdrs.length > 0) allRivalsDead = false;
} else {
let livingRivals = this.players.filter(p => p !== this.player && !p.isNeutral && p.alive);
if (livingRivals.length > 0) allRivalsDead = false;
}
// --- CHECK 2: TOTAL DOMINATION ---
if (ownsAllLand && allRivalsDead) {
this.gameOver = true;
let domFlavors = [
"You have conquered the wastes. All who opposed you are dust in the wind.",
"From the ashes of the old world, your empire rises absolute.",
"No rivals remain. The wasteland belongs to you alone."
];
winMessage.textContent = "TOTAL DOMINATION!";
winMessage.style.color = "var(--pip-color)";
let subMsg = winMessage.nextElementSibling;
if (subMsg && subMsg.tagName === 'P') {
subMsg.textContent = domFlavors[Math.floor(Math.random() * domFlavors.length)];
}
winModal.style.display = "block";
return;
}
// --- CHECK 3: SHARED ALLIED VICTORY ---
let livingFactions = this.players.filter(p => p.alive && !p.isNeutral && p.name !== this.player.name);
if (livingFactions.length > 0) {
let allLivingAreAllies = false;
if (this.isAllianceMode) {
// NEW: In Alliance mode, check if everyone alive shares your Team ID
allLivingAreAllies = livingFactions.every(p => p.team === this.player.team);
} else {
// Classic Mode: Require Idolized diplomacy reputation
allLivingAreAllies = livingFactions.every(p => this.diplomacy.reputation[p.name] && this.diplomacy.reputation[p.name][this.player.name] >= 35);
}
if (allLivingAreAllies) {
this.gameOver = true;
let allyFlavors = [
"Through diplomacy and shared blood, you and your allies have united the wastes.",
"A coalition of power now rules the wasteland. Together, you brought order from chaos.",
"The wars are over. Your alliance stands victorious over the irradiated ashes."
];
winMessage.textContent = "ALLIED VICTORY!";
winMessage.style.color = "#39ff14"; // Distinct green/alliance color
let subMsg = winMessage.nextElementSibling;
if (subMsg && subMsg.tagName === 'P') {
subMsg.textContent = allyFlavors[Math.floor(Math.random() * allyFlavors.length)];
}
winModal.style.display = "block";
}
}
};
Gamestate.showEncounterModal = function (title, message, choices, onChoice = null) {
return new Promise((resolve) => {
const modal = document.getElementById('encounter-modal');
const titleEl = document.getElementById('encounter-title');
const messageEl = document.getElementById('encounter-message');
const choicesContainer = document.getElementById('encounter-choices');
titleEl.textContent = title;
messageEl.innerHTML = message;
choicesContainer.innerHTML = '';
choices.forEach(choice => {
const button = document.createElement('button');
button.innerHTML = choice.text;
button.onclick = async () => {
// If an onChoice function is provided, execute it and get the result message
if (onChoice) {
const resultMessage = await onChoice(choice.id);
// NEW: If the event returned text, show the 2.5s delay screen.
// If it returned null, close the modal instantly!
if (resultMessage) {
titleEl.textContent = "Outcome";
messageEl.innerHTML = resultMessage; // Display the result
choicesContainer.innerHTML = ''; // Clear the buttons
// Wait 2.5 seconds before closing the modal
setTimeout(() => {
modal.style.display = 'none';
resolve(choice.id);
}, 2500);
} else {
modal.style.display = 'none';
resolve(choice.id);
}
} else {
// Original behavior if no onChoice is provided
modal.style.display = 'none';
resolve(choice.id);
}
};
choicesContainer.appendChild(button);
});
modal.style.display = 'flex';
});
};
Gamestate.showRecruitmentModal = function () {
return new Promise((resolve) => {
const modal = document.getElementById('recruitment-modal');
const capsDisplay = document.getElementById('recruitment-caps');
const slider = document.getElementById('recruitment-slider');
const valDisplay = document.getElementById('recruitment-val');
const costDisplay = document.getElementById('recruitment-cost');
const confirmBtn = document.getElementById('recruitment-confirm');
// --- BOBBLEHEAD MODIFIER (CHARISMA) ---
let hasCharisma = this.bobbleheads && this.bobbleheads.find(b => b.key === 'c' && b.active && b.owner === this.player.name);
const troopCost = hasCharisma ? 3 : (this.player.activeBuffs.capCollector ? 4 : 5);
const maxTroops = Math.floor(this.player.caps / troopCost);
// Update UI text to reflect discount
let costDesc = document.getElementById('recruitment-cost-desc');
if (!costDesc) {
// If it doesn't exist, we replace the P tag by searching for it
let pTags = modal.querySelectorAll('p');
pTags.forEach(p => { if (p.textContent.includes("Purchase troops")) costDesc = p; });
}
if (costDesc) {
let displayCost = troopCost;
let reason = hasCharisma ? "Charisma Active" : (this.player.activeBuffs.capCollector ? "Cap Collector Active" : "");
costDesc.innerHTML = reason
? `Purchase troops to add to your reserves. Cost: <span style="color:#ffcc00;font-weight:bold;">${displayCost} Caps (${reason})</span>`
: `Purchase troops to add to your reserves. Cost: 5 Caps per troop.`;
}
capsDisplay.textContent = this.player.caps;
slider.max = maxTroops;
slider.value = 0;
valDisplay.textContent = 0;
costDisplay.textContent = 0;
slider.oninput = function () {
valDisplay.textContent = this.value;
costDisplay.textContent = this.value * troopCost;
};
const newConfirmBtn = confirmBtn.cloneNode(true);
const cancelBtn = document.getElementById('recruitment-skip'); // Or 'recruitment-cancel' if you renamed it
const newCancelBtn = cancelBtn.cloneNode(true);
confirmBtn.parentNode.replaceChild(newConfirmBtn, confirmBtn);
cancelBtn.parentNode.replaceChild(newCancelBtn, cancelBtn);
newConfirmBtn.onclick = () => {
const troopsToBuy = parseInt(slider.value);
const totalCost = troopsToBuy * troopCost;
if (this.player.caps >= totalCost && troopsToBuy > 0) { // Check that troops were actually bought
this.player.caps -= totalCost;
this.player.reserve += troopsToBuy;
this.player.army += troopsToBuy;
this.logAction(`RECRUITMENT: Purchased +${troopsToBuy} troops for ${totalCost} Caps.`, true);
// --- THIS IS THE FIX ---
// After buying troops, the stage MUST become Fortify.
this.stage = "Fortify";
// Now, force the entire UI to re-evaluate the new state.
this.updateInfo();
this.updateButtonText();
// --- END OF FIX ---
} else {
// If they just closed the modal without buying, just update info.
if (Gamestate.updateInfo) Gamestate.updateInfo();
}
modal.style.display = 'none';
resolve();
};
newCancelBtn.onclick = () => {
modal.style.display = 'none';
if (Gamestate.updateInfo) Gamestate.updateInfo();
resolve();
};
modal.style.display = 'flex';
});
};
Gamestate.resolveCreatureEncounter = async function () {
if (this.player.areas.length === 0 || this.modalIsOpen) return;
// Find valid territories with at least 2 troops and not exploring
const validAreas = this.player.areas.filter(a => {
let c = this.countries.find(x => x.name === a);
return c && c.army > 1 && !c.isExploring;
});
if (validAreas.length === 0) return;
const randomAreaName = validAreas[Math.floor(Math.random() * validAreas.length)];
const territory = this.countries.find(c => c.name === randomAreaName);
const creature = encounterData.creatures[Math.floor(Math.random() * encounterData.creatures.length)];
const title = "Creature Sighting";
const army = territory.army;
const threat = creature.threat;
const tName = formatTerritoryName(territory.name);
const cName = `${creature.name}`;
// Calculate Risk Assessment
let riskText, riskColor;
if (army >= threat * 1.5) {
riskText = "LOW RISK";
riskColor = "var(--pip-color)"; // UI Theme Color
} else if (army >= threat) {
riskText = "MODERATE RISK";
riskColor = "#ffcc00"; // Yellow
} else {
riskText = "HIGH RISK";
riskColor = "#ff3333"; // Red
}
// Flavor text variations
const flavors = [
`Your scouts report a wild ${cName} near your garrison of ${army} troops at <strong>${tName}</strong>.`,
`A terrifying ${cName} has been spotted stalking the perimeter of <strong>${tName}</strong>, where ${army} of your troops are stationed.`,
`Frantic radio chatter from <strong>${tName}</strong> indicates a ${cName} is encroaching on your encampment of ${army}.`,
`A dust cloud approaches <strong>${tName}</strong>. Your ${army} defenders brace themselves as a ${cName} emerges from the wastes.`,
`Sentries at <strong>${tName}</strong> have sounded the alarm! A ${cName} is prowling dangerously close to your ${army} soldiers.`,
`The local wildlife is getting restless. A ${cName} is currently menacing your ${army} troops garrisoned at <strong>${tName}</strong>.`,
`A lone ${cName} has wandered into the patrol zone of your ${army} troops stationed in <strong>${tName}</strong>.`,
`Your detachment of ${army} at <strong>${tName}</strong> is requesting orders regarding a hostile ${cName} spotted nearby.`,
`Movement detected in the ruins of <strong>${tName}</strong>. It's a ${cName}, and it's heading straight for your ${army} troops.`,
`The mutated fauna of <strong>${tName}</strong> is acting up again. A ${cName} is threatening your garrison of ${army}.`
];
const randomFlavor = flavors[Math.floor(Math.random() * flavors.length)];
const message = `${randomFlavor}<br><br><span style="color: ${riskColor}; font-weight: bold;">[ TACTICAL ASSESSMENT: ${riskText} ]</span>`;
const choices = [
{ id: "attack", text: "[Attack] Engage and eliminate the threat." },
{ id: "avoid", text: "[Avoid] Attempt to hide and let it pass." }
];
this.modalIsOpen = true;
const onChoiceCallback = (decision) => {
let forcedFightText = "";
let isFighting = true;
if (decision === 'avoid') {
// --- NEW: DOGMEAT STEALTH PENALTY ---
let hideChance = (this.player.activeBuffs && this.player.activeBuffs.dogmeat) ? 0.0 : 0.80; // 0% chance if Dogmeat barks!
if (Math.random() < hideChance) {
isFighting = false;
this.logAction(`[ SURVIVAL ] Garrison at ${tName} successfully stayed hidden from a roaming ${creature.name}.`);
return `Your garrison remained hidden until the ${creature.name} moved on.`;
} else {
forcedFightText = `Your troops tried to hide, but the ${creature.name} picked up their scent and ambushed them!<br><br>`;
this.logAction(`[ AMBUSH ] A ${creature.name} sniffed out your hiding troops at ${tName} and forced an engagement!`, true);
}
}
if (isFighting) {
const army = territory.army;
const threat = creature.threat;
// Player wins ties (army >= threat)
if (army >= threat) {
// --- NEW: XP FOR CREATURE KILL ---
this.addXP(this.player, 15);
let lootText = "";
let logText = "";
let roll = Math.random();
// --- NEW: RELIC DISCOVERY CHANCE (Creature Dens) ---
if (Math.random() < 0.10) { // 10% fixed chance for creatures
const available = this.activeRelicPool.filter(r => !r.found);
if (available.length > 0) {
const relic = available[Math.floor(Math.random() * available.length)];
this.grantRelic(this.player, relic);
}
}
// Hostage Reward for Humanoids
if (creature.isHumanoid && roll < 0.40) {
let hostages = Math.floor(Math.random() * 3) + 1;
territory.army += hostages;
this.player.army += hostages;
lootText = `They rescued <strong style="color:#39ff14">${hostages} wastelanders</strong> being held captive, who have joined your ranks!`;
logText = `[ VICTORY ] The ${creature.name} was slain at ${tName}. Rescued ${hostages} wastelanders who joined the garrison!`;
}
// Stimpak Reward
else if (this.commandersEnabled && this.player.commander && this.player.commander.stimpaks < 3 && roll > 0.75) {
this.player.commander.stimpaks++;
let navInv = document.getElementById('nav-inv');
if (navInv) navInv.classList.add('inv-pulse');
lootText = `They salvaged a rare <strong style="color:var(--pip-color)">Stimpak</strong> from the creature's den!`;
logText = `[ VICTORY ] The ${creature.name} was slain at ${tName}. Salvaged a rare Stimpak from its den!`;
}
// Caps Reward
else {
let capsFound = Math.floor(Math.random() * 6) + 5;
if (this.wastelandEconomyActive) this.player.caps += capsFound;
lootText = `They recovered <strong style="color:#ffcc00">${capsFound} Caps</strong> from the remains.`;
logText = `[ VICTORY ] The ${creature.name} was slain at ${tName}. Recovered ${capsFound} Caps from the area.`;
}
// Log the exact victory outcome
this.logAction(logText, true);
return `${forcedFightText}A decisive victory! The ${creature.name} was eliminated with no casualties.<br><br>${lootText}`;
} else {
// Defeat/Casualties
let minRemaining = Math.max(1, Math.floor(army * 0.10)); // 10% or 1 unit minimum
let maxCasualties = army - minRemaining;
let casualties = Math.min(Math.ceil(threat), maxCasualties);
if (casualties > 0) {
territory.army -= casualties;
this.player.army -= casualties;
// Log the exact losses
this.logAction(`[ CASUALTIES ] The ${creature.name} overwhelmed defenders at ${tName}! Lost ${casualties} troops before driving it off.`, true);
return `${forcedFightText}The ${creature.name} overwhelmed your forces! You suffered <strong style="color:#ff3333">${casualties} casualties</strong> before driving it away.`;
} else {
// Log battered survival
this.logAction(`[ SURVIVAL ] Defenders at ${tName} were battered by a ${creature.name} but suffered no permanent casualties.`);
return `${forcedFightText}The ${creature.name} battered your forces, but they managed to survive without permanent casualties.`;
}
}
}
}; // <-- This closes the callback properly!
// These lines properly close the Creature Encounter function!
await this.showEncounterModal(title, message, choices, onChoiceCallback);
this.modalIsOpen = false;
this.updateInfo();
this.drawMapText();
};
Gamestate.resolveRadioEncounter = async function () {
if (this.player.areas.length === 0 || this.modalIsOpen) return;
// Find a valid territory: not already exploring, army > 1
const validTerritories = this.player.areas.map(a => this.countries.find(c => c.name === a)).filter(c => c && c.army > 1 && !c.isExploring);
if (validTerritories.length === 0) return;
const territory = validTerritories[Math.floor(Math.random() * validTerritories.length)];
// Pick an encounter type
const types = ["location", "person", "container"];
const type = types[Math.floor(Math.random() * types.length)];
let poiName = "";
let actionVerb = "";
if (type === "location") {
poiName = encounterData.genericLocations[Math.floor(Math.random() * encounterData.genericLocations.length)];
actionVerb = "explore the area";
} else if (type === "person") {
poiName = encounterData.people[Math.floor(Math.random() * encounterData.people.length)];
actionVerb = "approach and investigate";
} else {
poiName = encounterData.containers[Math.floor(Math.random() * encounterData.containers.length)];
actionVerb = "attempt to secure and open it";
}
const title = "Radio Transmission";
const message = `>>> INCOMING TRANSMISSION <<<<br><br>Garrison forces at ${formatTerritoryName(territory.name)} report they have discovered ${poiName}.<br><br>Do you want to send a detachment to ${actionVerb}? This will lock the territory down for 2 turns while they search.`;
const choices = [
{ id: "explore", text: "[Investigate] Send the detachment." },
{ id: "ignore", text: "[Ignore] Hold the line. Do not engage." }
];
this.modalIsOpen = true;
const onChoiceCallback = (decision) => {
if (decision === 'explore') {
// Lock the troops into the exploring state
territory.isExploring = true;
territory.exploreTurnsLeft = 2;
territory.exploreType = type;
territory.explorePOI = poiName;
this.logAction(`[ EXPEDITION ] Troops at ${formatTerritoryName(territory.name)} have begun investigating ${poiName}. They will report back in 2 turns.`, true);
return null; // Skip the outcome screen
} else {
this.logAction(`[ EXPEDITION ] You ordered the garrison at ${formatTerritoryName(territory.name)} to hold their position and ignore the ${poiName}.`);
return null; // Skip the outcome screen
}
};
await this.showEncounterModal(title, message, choices, onChoiceCallback);
this.modalIsOpen = false;
this.updateInfo();
this.drawMapText();
};
Gamestate.resolveExplorationOutcome = async function (territory) {
// --- NEW: XP FOR ENCOUNTER ---
this.addXP(this.player, 20);
if (this.modalIsOpen) return;
this.modalIsOpen = true;
territory.isExploring = false; // Remove the searching status
const title = "Expedition Returned";
let message = `Your detachment has returned from exploring the ${territory.explorePOI} at ${formatTerritoryName(territory.name)}.<br><br>`;
let logMsg = "";
const roll = Math.random();
// --- NEW: RELIC DISCOVERY CHANCE (Expeditions) ---
let relicChance = 0.20 + (this.player.activeBuffs.scavenger ? 0.10 : 0);
if (Math.random() < relicChance) {
const available = this.activeRelicPool.filter(r => !r.found);
if (available.length > 0) {
const relic = available[Math.floor(Math.random() * available.length)];
this.grantRelic(this.player, relic);
}
}
// --- NEW: DOGMEAT LOOT & SURVIVAL BUFFS ---
let hasDogmeat = (this.player.dogmeatStatus === 'healthy');
let lootThreshold = hasDogmeat ? 0.45 : 0.30; // 45% chance for Caps
let stimThreshold = hasDogmeat ? 0.70 : 0.50; // 25% chance for Stimpak
let ambushThreshold = hasDogmeat ? 0.85 : 0.75; // 15% chance for Trap
// 30% Chance for High Value Loot (Caps or Units)
if (roll < lootThreshold) {
let capsFound = Math.floor(Math.random() * 15) + 10;
if (hasDogmeat) capsFound += Math.floor(Math.random() * 10) + 5; // Bonus Caps
if (this.wastelandEconomyActive) this.player.caps += capsFound;
message += `They hit the jackpot! Your troops recovered <strong style="color:#ffcc00">${capsFound} Caps</strong> from a pre-war stash.`;
logMsg = `[ EXPEDITION ] Success at ${formatTerritoryName(territory.name)}. Found ${capsFound} Caps!`;
}
// 20% Chance for Stimpak
else if (roll < 0.50 && this.commandersEnabled && this.player.commander && this.player.commander.stimpaks < 3) {
this.player.commander.stimpaks++;
let navInv = document.getElementById('nav-inv');
if (navInv) navInv.classList.add('inv-pulse');
message += `They discovered a sealed medical kit containing a rare <strong style="color:var(--pip-color)">Stimpak</strong>!`;
logMsg = `[ EXPEDITION ] Success at ${formatTerritoryName(territory.name)}. Recovered a Stimpak!`;
}
// 25% Chance for an Ambush / Trap (Loss of units)
else if (roll < ambushThreshold) {
let casualties = Math.floor(territory.army * 0.20) + 1; // 20% casualties
// --- NEW: DOGMEAT SAVES THE DAY ---
if (hasDogmeat && Math.random() < 0.50) {
message += `Dogmeat started growling at a tripwire just in time. The detachment avoided the ambush entirely!`;
logMsg = `[ EXPEDITION ] Dogmeat sniffed out a deadly trap at ${formatTerritoryName(territory.name)}. Zero casualties.`;
casualties = 0;
}
if (territory.army - casualties < 1) casualties = territory.army - 1; // Never wipe out
if (territory.army - casualties < 1) casualties = territory.army - 1; // Never wipe out
if (casualties > 0) {
territory.army -= casualties;
this.player.army -= casualties;
message += `It was a trap! The detachment was ambushed, suffering <strong style="color:#ff3333">${casualties} casualties</strong> before retreating.`;
logMsg = `[ EXPEDITION ] Disaster at ${formatTerritoryName(territory.name)}. Lost ${casualties} troops to a trap.`;
} else {
message += `They triggered an ancient security system but narrowly escaped without casualties.`;
logMsg = `[ EXPEDITION ] Troops at ${formatTerritoryName(territory.name)} triggered a trap but escaped unharmed.`;
}
}
// 25% Chance for Nothing
else {
message += `The area had already been stripped clean by scavengers. They returned empty-handed.`;
logMsg = `[ EXPEDITION ] The search at ${formatTerritoryName(territory.name)} turned up nothing.`;
}
const choices = [{ id: "acknowledge", text: "[Acknowledge] Resume normal patrols." }];
const onChoiceCallback = () => {
this.logAction(logMsg, true);
return null; // Skip the outcome screen
};
await this.showEncounterModal(title, message, choices, onChoiceCallback);
this.modalIsOpen = false;
this.updateInfo();
this.drawMapText();
};
// --- NEW: DOGMEAT QUEST EVENT ---
Gamestate.resolveDogmeatQuest = async function (territory) {
this.modalIsOpen = true;
let title = "Red Rocket Station";
let msg = `Your troops secure the area and locate the abandoned Red Rocket. A wounded dog is cornered by a pack of Vicious Dogs!<br><br><span style="color:#ff3333; font-weight:bold;">[ TACTICAL ASSESSMENT: HOSTILE INTERVENTION REQUIRED ]</span>`;
// Force the player to fight the mini-battle
await new Promise(resolve => {
this.showEncounterModal(title, msg, [{id: 'fight', text: "[Engage] Save the dog!"}], (id) => resolve(id));
});
// Calculate casualties (3 to 7)
let casualties = Math.floor(Math.random() * 5) + 3;
// Failsafe: Don't wipe the garrison entirely to prevent ownership bugs
if (casualties >= territory.army) casualties = Math.max(0, territory.army - 1);
if (casualties > 0) {
territory.army -= casualties;
this.player.army -= casualties;
}
let postFightMsg = `You fought off the pack, but suffered <span style="color:#ff3333; font-weight:bold;">${casualties} casualties</span>.<br><br>The dog is safe, but bleeding out. You can save him, but it will require medical supplies.`;
let hasStimpak = this.commandersEnabled && this.player.commander && this.player.commander.stimpaks > 0;
let hasCaps = this.wastelandEconomyActive && this.player.caps >= 15;
let adoptChoices = [];
if (hasStimpak) adoptChoices.push({id: 'stimpak', text: "[Adopt] Use 1 Stimpak to heal him."});
if (hasCaps) adoptChoices.push({id: 'caps', text: "[Adopt] Spend 15 Caps on medical supplies."});
adoptChoices.push({id: 'leave', text: "[Walk Away] We can't spare the resources."});
if (!hasStimpak && !hasCaps) {
postFightMsg += `<br><br><span style="color:#ff3333; font-weight:bold;">You lack the Stimpaks or Caps to save him...</span>`;
}
let adoptChoice = await new Promise(resolve => {
this.showEncounterModal("A Boy and His Dog", postFightMsg, adoptChoices, (id) => resolve(id));
});
if (!this.player.activeBuffs) this.player.activeBuffs = {};
if (adoptChoice === 'stimpak') {
this.player.commander.stimpaks--;
this.player.activeBuffs.dogmeat = true;
this.player.dogmeatStatus = 'healthy';
this.logAction(`[ COMPANION ] You used a Stimpak to save CX404. Dogmeat has joined your faction!`, true);
if (this.queueToast) this.queueToast(`>>> COMPANION ACQUIRED <<< <br><span style="font-size: 32px;">🐾</span><br>DOGMEAT HAS JOINED YOU`, "var(--pip-color)", true);
} else if (adoptChoice === 'caps') {
this.player.caps -= 15;
this.player.activeBuffs.dogmeat = true;
this.player.dogmeatStatus = 'healthy';
this.logAction(`[ COMPANION ] You spent 15 Caps to save CX404. Dogmeat has joined your faction!`, true);
if (this.queueToast) this.queueToast(`>>> COMPANION ACQUIRED <<< <br><span style="font-size: 32px;">🐾</span><br>DOGMEAT HAS JOINED YOU`, "var(--pip-color)", true);
}
else {
this.dogmeatQuest.resolved = false; // Allow the quest to spawn again
this.dogmeatQuest.cooldown = 4; // Put it on a 4-turn cooldown
this.logAction(`[ TRAGEDY ] You were forced to leave the wounded dog behind. Hopefully someone else finds him...`, true);
}
this.modalIsOpen = false;
this.updateInfo();
if (this.renderInventory) this.renderInventory();
this.drawMapText();
};
// --- NEW: 3-DAY DOGMEAT SIEGE EVENT ---
Gamestate.resolveDogmeatSiege = async function(phase, territory) {
this.modalIsOpen = true;
if (phase === 'start') {
let msg = `Your troops secured the territory, but a heavily armed gang has barricaded themselves inside the Red Rocket with the dog.<br><br>You must hold this territory and lay siege for <span style="color:#ffcc00; font-weight:bold;">3 DAYS</span> to breach the heavy doors!`;
await new Promise(resolve => this.showEncounterModal("RED ROCKET SIEGE: DAY 1", msg, [{id:'ok', text:"[Hold the Line] We're not leaving."}], () => resolve(null)));
this.logAction(`[ SIEGE ] Red Rocket surrounded at ${formatTerritoryName(territory.name)}. 3 Days remaining.`, true);
}
else if (phase === 'defend') {
let casualties = Math.floor(Math.random() * 3) + 1;
if (territory.army - casualties < 1) casualties = territory.army - 1;
territory.army -= casualties;
this.player.army -= casualties;
let daysLeft = this.dogmeatQuest.siege;
let msg = `The scavengers inside the Red Rocket launched a desperate counter-attack! You suffered <span style="color:#ff3333; font-weight:bold;">${casualties} casualties</span> repelling them.<br><br><span style="color:#ffcc00; font-weight:bold;">${daysLeft} DAYS</span> until the doors give way.`;
await new Promise(resolve => this.showEncounterModal(`RED ROCKET SIEGE: DAY ${4 - daysLeft}`, msg, [{id:'ok', text:"[Return Fire] Keep the pressure on!"}], () => resolve(null)));
this.logAction(`[ SIEGE ] Counter-attack at Red Rocket repelled. Lost ${casualties} troops. ${daysLeft} Days remaining.`, true);
}
else if (phase === 'finish') {
let msg = `You've breached the doors and wiped out the scavengers! The dog is safe, but he's gravely injured.<br><br>You can take him with you, but he'll slow your army down and attract trouble until his wounds are properly treated.`;
let hasStimpak = this.commandersEnabled && this.player.commander && this.player.commander.stimpaks > 0;
let hasCaps = this.wastelandEconomyActive && this.player.caps >= 50;
let adoptChoices = [];
if (hasStimpak) adoptChoices.push({id: 'heal_stimpak', text: "[Heal Him Now] Use 1 Stimpak."});
if (hasCaps) adoptChoices.push({id: 'heal_caps', text: "[Heal Him Now] Spend 50 Caps."});
adoptChoices.push({id: 'injured', text: "[Take Him With You (Injured)]", color: "#ffcc00"});
adoptChoices.push({id: 'leave', text: "[Walk Away] He's better off on his own."});
let adoptChoice = await new Promise(resolve => this.showEncounterModal("A Boy and His Dog", msg, adoptChoices, (id) => resolve(id)));
if (!this.player.activeBuffs) this.player.activeBuffs = {};
if (adoptChoice === 'heal_stimpak') {
this.player.commander.stimpaks--;
this.player.activeBuffs.dogmeat = true;
this.player.dogmeatStatus = 'healthy';
this.logAction(`[ COMPANION ] You used a Stimpak to save CX404. He's ready for action!`, true);
if (this.queueToast) this.queueToast(`>>> COMPANION ACQUIRED <<< <br><span class="paw-icon" style="font-size: 32px;"></span><br>DOGMEAT HAS JOINED YOU`, "var(--pip-color)", true);
} else if (adoptChoice === 'heal_caps') {
this.player.caps -= 50;
this.player.activeBuffs.dogmeat = true;
this.player.dogmeatStatus = 'healthy';
this.logAction(`[ COMPANION ] You spent 50 Caps to save CX404. He's ready for action!`, true);
if (this.queueToast) this.queueToast(`>>> COMPANION ACQUIRED <<< <br><span class="paw-icon" style="font-size: 32px;"></span><br>DOGMEAT HAS JOINED YOU`, "var(--pip-color)", true);
} else if (adoptChoice === 'injured') {
this.player.activeBuffs.dogmeat = true;
this.player.dogmeatStatus = 'injured';
this.logAction(`[ COMPANION ] You rescued Dogmeat, but he's injured. He will slow you down until treated.`, true);
if (this.queueToast) this.queueToast(`>>> COMPANION ACQUIRED <<< <br><span class="paw-icon" style="font-size: 32px; filter: brightness(0.7);"></span><br>DOGMEAT IS INJURED`, "#ffcc00", true);
} else { // Player chose to leave
this.dogmeatQuest.resolved = false; // Allow quest to spawn again
this.dogmeatQuest.cooldown = 4;
this.logAction(`[ TRAGEDY ] You were forced to leave the wounded dog behind.`, true);
}
}
this.modalIsOpen = false;
this.updateInfo();
if (this.renderInventory) this.renderInventory();
this.drawMapText();
};
Gamestate.resolveBattleEncounter = async function (territoryName) {
// Force unlock the modal state (in case the Move Troops slider confused it)
this.modalIsOpen = false;
const territory = this.countries.find(c => c.name === territoryName);
if (!territory || territory.army < 1) return; // FIX: Even 1 troop can discover a vault after a battle
// First, check if this territory has a designated Vault
let poiName = "";
let type = "";
let actionVerb = "investigate the ruins";
let isVault = false;
const possibleVaults = encounterData.vaults.filter(v => v.territory === territoryName);
if (possibleVaults.length > 0) {
// Pick a vault if there are multiple in this territory
poiName = possibleVaults[Math.floor(Math.random() * possibleVaults.length)].name;
type = "vault";
actionVerb = "breach the vault door";
isVault = true;
} else {
// If no vault, pick a generic location or container
const types = ["location", "container"];
type = types[Math.floor(Math.random() * types.length)];
if (type === "location") {
poiName = encounterData.genericLocations[Math.floor(Math.random() * encounterData.genericLocations.length)];
actionVerb = "secure the area";
} else {
poiName = encounterData.containers[Math.floor(Math.random() * encounterData.containers.length)];
actionVerb = "attempt to crack it open";
}
}
const title = isVault ? "Vault Discovered" : "Post-Battle Discovery";
const message = `>>> SECTOR SECURED <<<<br><br>While clearing out the last of the enemy resistance at ${formatTerritoryName(territory.name)}, your troops uncovered ${poiName}.<br><br>Do you want to order the garrison to ${actionVerb}? This will lock the territory down for 2 turns while they search.`;
const choices = [
{ id: "explore", text: "[Investigate] Send the detachment." },
{ id: "ignore", text: "[Ignore] Focus on fortifications." }
];
this.modalIsOpen = true;
const onChoiceCallback = (decision) => {
if (decision === 'explore') {
territory.isExploring = true;
territory.exploreTurnsLeft = 2;
territory.exploreType = type;
territory.explorePOI = poiName;
this.logAction(`[ EXPEDITION ] Conquerors at ${formatTerritoryName(territory.name)} are breaching ${poiName}. Reports expected in 2 turns.`, true);
return null; // Skip the outcome screen
} else {
this.logAction(`[ TACTICAL ] The garrison at ${formatTerritoryName(territory.name)} ignored ${poiName} to focus on defense.`);
return null; // Skip the outcome screen
}
};
await this.showEncounterModal(title, message, choices, onChoiceCallback);
this.modalIsOpen = false;
this.updateInfo();
this.drawMapText();
};
Gamestate.triggerEncounterCheck = async function (triggerType, territoryName = null) {
// If encounters are disabled in the game settings, do nothing.
if (!this.encountersEnabled) return;
// --- NEW: GRACE PERIOD ---
// No encounters for the first 3 turns to allow the player to establish a foothold
if (this.turn <= 3) return;
// 1. EXPLORATION LOCKOUT: Cannot trigger new events if already exploring
let isCurrentlyExploring = this.countries.some(c => c.owner === this.player.name && c.isExploring);
if (isCurrentlyExploring) return;
// Initialize trackers if they don't exist
if (this.turnsSinceLastEncounter === undefined) this.turnsSinceLastEncounter = 0;
if (this.encounterCooldown === undefined) this.encounterCooldown = 0;
let chance = 0;
if (triggerType === 'start_of_turn') {
// Update timers at the start of the turn
if (this.encounterCooldown > 0) this.encounterCooldown--;
this.turnsSinceLastEncounter++;
// 2. THE 3-TURN COOLDOWN: 0% chance while resting
if (this.encounterCooldown > 0) {
chance = 0;
}
// 3. THE 9-TURN PITY TIMER: 100% chance if starved
else if (this.turnsSinceLastEncounter >= 9) {
chance = 1.0;
}
// STANDARD RATE
else {
chance = 0.15; // 15% chance per turn
// --- NEW: INJURED DOGMEAT ATTRACTS CREATURES ---
if (this.player.dogmeatStatus === 'injured') {
chance *= 2; // Double the encounter chance!
}
}
} else if (triggerType === 'post_conquest') {
// If on cooldown, no post-battle discoveries allowed
if (this.encounterCooldown > 0) {
chance = 0;
} else {
chance = 0.25; // 25% chance per conquest
}
}
// Roll the dice
if (Math.random() < chance) {
if (triggerType === 'start_of_turn') {
// Reset timers!
this.turnsSinceLastEncounter = 0;
this.encounterCooldown = 3; // Enforce 3-turn break
await this.resolveRadioEncounter();
} else if (triggerType === 'post_conquest' && territoryName) {
// Reset timers!
this.turnsSinceLastEncounter = 0;
this.encounterCooldown = 3; // Enforce 3-turn break
await this.resolveBattleEncounter(territoryName);
}
}
};
/**
* Sets the initial reputation values between all players based on their faction affinities.
* This function should be called once at the start of a new game.
*
* I am assuming:
* - You have a global 'players' array where each player object has a 'country' property (e.g., players[0].country = "The Enclave").
* - You have a global 'reputation' matrix (e.g., reputation[playerIndex1][playerIndex2]).
*/
function setInitialReputations() {
console.log("Setting initial faction reputations...");
// The ONLY change is on the next line: "players.length" becomes "Gamestate.players.length"
for (let i = 0; i < Gamestate.players.length; i++) {
for (let j = 0; j < Gamestate.players.length; j++) {
if (i === j) {
// Also needs to be changed here:
Gamestate.diplomacy.reputation[Gamestate.players[i].name][Gamestate.players[j].name] = 0;
continue;
}
const faction1_name = Gamestate.players[i].country;
const faction2_name = Gamestate.players[j].country;
if (FACTIONS[faction1_name] && FACTIONS[faction1_name].affinity && FACTIONS[faction1_name].affinity[faction2_name]) {
const affinityValue = FACTIONS[faction1_name].affinity[faction2_name];
// And here:
Gamestate.diplomacy.reputation[Gamestate.players[i].name][Gamestate.players[j].name] = affinityValue;
console.log(`Affinity found: ${faction1_name} -> ${faction2_name} = ${affinityValue}`);
} else {
// And finally, here:
Gamestate.diplomacy.reputation[Gamestate.players[i].name][Gamestate.players[j].name] = 0;
}
}
}
console.log("Initial reputations set.", Gamestate.diplomacy.reputation);
}
const wastelandRadio = [
{ file: "Fallout3.mp3", title: "Fallout 3 Theme - Inon Zur" }, { file: "IDontWantToSeeTomorrow.mp3", title: "Nat King Cole - I Don't Want to See Tomorrow" },
{ file: "LetsGoSunning.mp3", title: "Jack Shaindlin - Lets Go Sunning" }, { file: "TheendoftheWorld.mp3", title: "Skeeter Davis - The End of the World" },
{ file: "FalloutNewVegas.mp3", title: "Fallout New Vegas Theme - Inon Zur" }, { file: "BigIron.mp3", title: "Marty Robbins - Big Iron" },
{ file: "ItsAllOverButTheCrying.mp3", title: "The Ink Spots - Its All Over but the Crying" }, { file: "AtomBombBaby.mp3", title: "Carlos & The Bandidos - Atom Bomb Baby" },
{ file: "Fallout4.mp3", title: "Fallout 4 Theme - Inon Zur" }, { file: "IDontWanttoSettheWorldonFire.mp3", title: "The Ink Spots - I Dont Want to Set the World on Fire" },
{ file: "TheWanderer.mp3", title: "Dion DiMucci - The Wanderer" }, { file: "TakeMeHomeCountryRoads.mp3", title: "John Denver - Take Me Home Country Roads" }
];
let currentTrackIndex = 0; let isRadioActive = false; let pipboyAudio = new Audio(); let broadcastDelay;
const radioBtn = document.getElementById('radio-toggle');
radioBtn.addEventListener('click', () => {
if (isRadioActive) {
isRadioActive = false; pipboyAudio.pause(); pipboyAudio.currentTime = 0;
clearTimeout(broadcastDelay); radioBtn.classList.remove('radio-on');
if (Gamestate && Gamestate.logAction) Gamestate.logAction("RADIO: Signal lost. Tuning out...");
} else {
isRadioActive = true; radioBtn.classList.add('radio-on');
if (pipboyAudio.src) currentTrackIndex = (currentTrackIndex + 1) % wastelandRadio.length; playWastelandTrack();
}
});
function playWastelandTrack() {
if (!isRadioActive) return;
let currentTrack = wastelandRadio[currentTrackIndex];
pipboyAudio.src = currentTrack.file;
pipboyAudio.play();
if (Gamestate && Gamestate.logAction) {
Gamestate.logAction(`RADIO: Picked up a broadcast... Now playing "${currentTrack.title}".`);
// --- SINGING LOG EVENT ---
if (currentTrack.file.includes("TakeMeHomeCountryRoads")) {
setTimeout(() => Gamestate.logAction("'Wait, I know this one...'"), 4000);
setTimeout(() => Gamestate.logAction("You start singing: '♫ Almost heaven, West Virginia.'"), 7000);
setTimeout(() => Gamestate.logAction("'♫ Blue Ridge Mountains, Shenandoah River.'"), 12700);
setTimeout(() => Gamestate.logAction("'♫ Life is old there, older than the trees...Great song.'"), 18800);
}
}
}
pipboyAudio.addEventListener('ended', () => {
if (!isRadioActive) return; currentTrackIndex = (currentTrackIndex + 1) % wastelandRadio.length;
if (Gamestate && Gamestate.logAction) Gamestate.logAction("RADIO: Broadcast ended. Scanning frequencies for the next signal...");
broadcastDelay = setTimeout(() => { playWastelandTrack(); }, 6500);
});
// --- UI TEXT OVERRIDE (TYPEWRITER EDITION) ---
// Safe initialization to prevent the "already declared" crash
if (!Gamestate.originalUpdateInfo) {
Gamestate.originalUpdateInfo = Gamestate.updateInfo;
}
Gamestate.typewriterInterval = null;
// ==========================================
// --- SAVE GAME SYSTEM ---
// ==========================================
Gamestate.saveGame = async function () {
try {
const saveData = {
turn: this.turn,
stage: this.stage,
difficulty: this.difficulty,
uiTheme: document.getElementById('chosen-theme')?.value || 'fo3', // ADDED: UI Theme
// Game Modes & Rules
wastelandEconomyActive: this.wastelandEconomyActive,
perksEnabled: this.perksEnabled,
nukesEnabled: this.nukesEnabled,
commandersEnabled: this.commandersEnabled,
encountersEnabled: this.encountersEnabled,
flatTrade: this.flatTrade,
isAllianceMode: this.isAllianceMode,
placementMode: this.placementMode,
setupPlayerIndex: this.setupPlayerIndex,
// Global Trackers
globalCodes: this.globalCodes,
activeNukes: this.activeNukes,
radstorm: this.radstorm,
diplomacy: this.diplomacy,
dogmeatQuest: this.dogmeatQuest,
activeRelicPool: this.activeRelicPool,
// The Main Entities
players: this.players,
countries: this.countries,
bobbleheads: this.bobbleheads
};
const jsonString = JSON.stringify(saveData);
const blob = new Blob([jsonString], { type: "application/json" });
const url = URL.createObjectURL(blob);
const a = document.createElement('a');
a.href = url;
a.download = `WastelandConquest_Day${this.turn}_Save.json`;
document.body.appendChild(a);
a.click();
document.body.removeChild(a);
URL.revokeObjectURL(url);
if (this.queueToast) {
this.queueToast(`>>> SYSTEM BACKUP COMPLETE <<< <br><br>Game progress saved to local memory.`, "var(--pip-color)", true);
}
if (this.logAction) this.logAction("[ BACKUP ] SYSTEM: Game state successfully backed up to local memory.", true);
} catch (error) {
console.error("Failed to save game:", error);
if (this.showToast) this.showToast("CRITICAL ERROR: Failed to write to local memory.", "red");
}
};
// ==========================================
// --- LOAD GAME SYSTEM ---
// ==========================================
// --- FIX: Tell the function to accept the 'jsonString' we pass from the file button ---
Gamestate.loadGame = async function (jsonString) {
try {
// Request fullscreen on mobile
if (window.innerWidth <= 950) {
document.documentElement.requestFullscreen().catch(e => console.log(e));
}
if (!jsonString) {
if (this.showToast) this.showToast("Error: No save data found in file.", "red");
return false;
}
const loadedData = JSON.parse(jsonString);
// --- NEW: Restore UI Theme FIRST ---
if (loadedData.uiTheme) {
const themeDropdown = document.getElementById('chosen-theme');
if (themeDropdown) {
themeDropdown.value = loadedData.uiTheme;
}
if (this.applyUITheme) {
this.applyUITheme();
}
}
// Restore all game state variables
this.turn = loadedData.turn;
this.stage = loadedData.stage;
this.difficulty = loadedData.difficulty;
this.wastelandEconomyActive = loadedData.wastelandEconomyActive;
this.perksEnabled = loadedData.perksEnabled;
this.nukesEnabled = loadedData.nukesEnabled;
this.commandersEnabled = loadedData.commandersEnabled;
this.encountersEnabled = loadedData.encountersEnabled;
// --- FIX: Restore the new global modes and setup progress ---
this.flatTrade = loadedData.flatTrade || false;
this.isAllianceMode = loadedData.isAllianceMode || false;
this.placementMode = loadedData.placementMode || 'auto';
this.setupPlayerIndex = loadedData.setupPlayerIndex || 0;
this.globalCodes = loadedData.globalCodes;
this.activeNukes = loadedData.activeNukes || (loadedData.activeNuke ? [loadedData.activeNuke] : []);
this.radstorm = loadedData.radstorm;
this.diplomacy = loadedData.diplomacy;
this.dogmeatQuest = loadedData.dogmeatQuest;
this.activeRelicPool = loadedData.activeRelicPool;
this.players = loadedData.players;
this.countries = loadedData.countries;
this.bobbleheads = loadedData.bobbleheads;
// Re-establish player reference
this.player = this.players.find(p => p.isPlayer);
// Hide start modal and redraw UI
document.getElementById('start-modal').style.display = 'none';
this.countries.forEach(country => {
let areaOnMap = document.getElementById(country.name);
if (areaOnMap) {
areaOnMap.style.fill = country.color;
areaOnMap.classList.toggle('crater', !!country.isCrater);
}
});
this.drawMapText();
this.updateButtonText();
this.updateInfo();
this.updateXPBar();
if (this.renderInventory) this.renderInventory();
// Handle recruitment modal on load
if (this.wastelandEconomyActive && this.stage === 'Recruitment' && this.player.reserve === 0) {
const troopCost = 5;
if (this.player.caps >= troopCost) this.showRecruitmentModal();
}
if (this.logAction) this.logAction(`[ RESTORE ] SYSTEM: Successfully restored Save File (Day ${this.turn}).`, true);
if (this.queueToast) this.queueToast(`>>> SYSTEM RESTORE COMPLETE <<< <br><br>Welcome back, ${this.player.name}.`, "var(--pip-color)", true);
return true;
} catch (error) {
console.error("Failed to load game:", error);
if (this.showToast) this.showToast("CRITICAL ERROR: Save file corrupted or incompatible.", "red");
return false;
}
};
Gamestate.updateInfo = function () {
Gamestate.originalUpdateInfo.call(this);
// Run the normal game logic first
if (turnInfo && turnInfoMessage && !this.aiTurn) {
let rawText = turnInfoMessage.textContent;
// 1. Is this a BRAND NEW message?
if (rawText.indexOf("█") === -1) {
let phaseName = this.stage.toUpperCase().replace(" PHASE", "");
let fullText = `${phaseName} PHASE: ${rawText}`;
// --- NEW: INJECT INTO GHOST LOG ON MOBILE ---
if (window.innerWidth <= 950) {
this.logAction(`[ DIRECTIVE ] ${fullText}`, true);
}
// --- END NEW LOGIC ---
// Stop any old typing immediately
if (this.typewriterInterval) {
clearInterval(this.typewriterInterval);
}
turnInfo.textContent = "CURRENT DIRECTIVE:";
turnInfoMessage.innerHTML = "";
let i = 0;
let typingSpeed = 25;
// Start the typewriter engine
this.typewriterInterval = setInterval(() => {
if (i < fullText.length) {
turnInfoMessage.innerHTML = fullText.substring(0, i + 1) + '<span class="terminal-cursor">█</span>';
i++;
} else {
clearInterval(this.typewriterInterval);
}
}, typingSpeed);
}
}
// --- FINAL, DEFINITIVE INV PULSE LOGIC ---
const navInv = document.getElementById('nav-inv');
if (navInv) {
let shouldFlash = false;
// Condition 1: A Stimpak is IMMEDIATELY usable right now.
const isStimpakReady = this.commandersEnabled && this.player.commander &&
this.player.commander.stimpaks > 0 &&
this.player.commander.hp < 100 &&
this.player.commander.ap > 0 &&
this.stage === 'Commander Phase';
// Condition 2: A Bobblehead is IMMEDIATELY usable right now.
const isBobbleheadReady = this.bobbleheads && this.bobbleheads.some(b => {
if (b.owner !== this.player.name || b.cooldown > 0) return false;
if (b.key === 'c' && this.stage !== "Recruitment" && this.stage !== "Fortify") return false;
if (b.key === 'a' && this.stage !== "Maneuver" && this.stage !== "Commander Phase") return false;
if (['s', 'e', 'p', 'i', 'l'].includes(b.key) && this.stage !== "Battle" && this.stage !== "Commander Phase") return false;
return true;
});
if (isStimpakReady || isBobbleheadReady) {
shouldFlash = true;
}
// Apply or remove the pulse class based on the strict conditions.
if (shouldFlash && !this.isDistributingLoot) {
navInv.classList.add('inv-pulse');
} else {
navInv.classList.remove('inv-pulse');
}
}
// --- END OF FIX ---
}
// --- BULLETPROOF SVG OVERLAP FIX (V2) ---
Gamestate.fixMapTextOrder = function () {
let svg = document.querySelector('.area').closest('svg');
// Create a master layer that sits on top of absolutely everything
let topLayer = document.createElementNS("http://www.w3.org/2000/svg", "g");
topLayer.id = "master-text-layer";
svg.appendChild(topLayer);
countries.forEach(c => {
let path = document.getElementById(c.name);
if (path && path.nextElementSibling && path.nextElementSibling.tagName === 'text') {
c.textNode = path.nextElementSibling;
// Move the text into the master top layer!
topLayer.appendChild(c.textNode);
}
});
}
// ==========================================
// --- ROBCO OS HELP TERMINAL LOGIC ---
// ==========================================
let helpTypingInterval = null;
// The content for all the manual pages
const helpPages = {
"page-root": () => {
let adminLink = "";
if (Gamestate.player && Gamestate.player.name.toUpperCase() === "OVERSEER") {
adminLink = `<span class="help-nav-item" data-page="page-override" style="color: var(--pip-color);">&gt; TERMINAL OVERRIDE (Access hidden developer tools to manipulate the simulation)</span><br>`;
}
return `Welcome to the Wasteland Conquest Interface<br><br>#System Status: ONLINE<br>---------------------------------------<br><br>` +
`<span class="help-nav-item" data-page="page-status">&gt; CURRENT MISSION DATA (Check active game settings, faction, and diplomacy)</span><br>` +
`<span class="help-nav-item" data-page="page-play">&gt; HOW TO PLAY (Learn basics of claiming land, resources, and combat)</span><br>` +
`<span class="help-nav-item" data-page="page-items">&gt; ITEM DATABASE (Stimpaks, Bobbleheads, Relics)</span><br>` +
`<span class="help-nav-item" data-page="page-vats">&gt; V.A.T.S. TARGETING (Understand how difficulty changes combat odds)</span><br>` +
`<span class="help-nav-item" data-page="page-factions">&gt; FACTIONS & PERKS (Discover unique abilities and advantages per faction)</span><br>` +
`<span class="help-nav-item" data-page="page-leveling">&gt; LEVELING & PROGRESSION (Earn XP and unlock powerful perks)</span><br>` +
`<span class="help-nav-item" data-page="page-diplomacy">&gt; MAKING FRIENDS (DIPLOMACY) (How to form temporary truces or backstab rivals)</span><br>` +
`<span class="help-nav-item" data-page="page-hazards">&gt; STORMS & GHOULS (Learn to survive hazards and fend off neutral hordes)</span><br>` +
`<span class="help-nav-item" data-page="page-encounters">&gt; WASTELAND ENCOUNTERS (Learn about random events, ambushes, and hidden loot)</span><br>` +
`<span class="help-nav-item" data-page="page-presets">&gt; GAME PRESETS (Read about match types from Conquest to Survival Mode)</span><br>` +
`<span class="help-nav-item" data-page="page-tactics">&gt; ADVANCED RULES (Learn complex features like Commanders, Fog, and Nukes)</span><br>` +
`<span class="help-nav-item" data-page="page-legend">&gt; MAP LEGEND (A visual guide explaining map colors, borders, and icons)</span><br>` +
`<span class="help-nav-item" data-page="page-history">&gt; HOLOTAPE ARCHIVE (A look at the hit Fallout games that inspired this sim)</span><br>` +
`<span class="help-nav-item" data-page="page-data">&gt; SAVE & LOAD (Protect progress by learning to backup and restore data)</span><br>` +
`<span class="help-nav-item" data-page="page-about">&gt; SYSTEM CREDITS (See the latest system updates and developer information)</span><br><br>` +
adminLink +
`<span class="help-nav-item" id="logoff-guide-btn">&gt; LOG OFF THE GUIDE</span>`;
},
"page-status": () => {
// --- DYNAMIC PRESET MATCHER ---
let getMatchedPreset = () => {
let p = Gamestate.perksEnabled;
let c = Gamestate.commandersEnabled;
let f = document.getElementById('opt-fog-of-war') && document.getElementById('opt-fog-of-war').checked;
let r = Gamestate.radstormsEnabled || (document.getElementById('opt-radstorms') && document.getElementById('opt-radstorms').checked);
let g = document.getElementById('opt-horrors') && document.getElementById('opt-horrors').checked;
let e = Gamestate.encountersEnabled || (document.getElementById('opt-encounters') && document.getElementById('opt-encounters').checked);
let n = Gamestate.nukesEnabled;
let econ = Gamestate.wastelandEconomyActive;
if (!econ && !p && !c && !f && !r && !g && !e && !n) return "CLASSIC CONQUEST";
if (econ && !p && !c && f && r && g && e && !n) return "WASTELAND SURVIVAL";
if (econ && p && c && !f && !r && !g && e && !n) return "HEROES OF THE WASTELAND";
if (econ && !p && !c && !f && r && g && e && n) return "APOCALYPSE NOW";
if (econ && p && c && f && !r && !g && !e && !n) return "ALLIANCE WARFARE";
if (econ && p && c && f && !r && !g && e && !n) return "COVERT WARFARE";
if (econ && !p && c && f && !r && !g && !e && n) return "NUCLEAR OPTION";
return "CUSTOM";
};
const p = Gamestate.player;
if (!p) return "NO ACTIVE SESSION DATA FOUND.";
const pName = p.name ? p.name.toUpperCase() : "UNKNOWN";
const pFaction = p.country ? p.country.toUpperCase() : "UNKNOWN";
const pPreset = getMatchedPreset();
// --- PORTRAIT SELECTION LOGIC ---
const img1 = "data:image/png;base64,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"; // Healthy (HP 71+ / Strength 51%+)
const img2 = "data:image/png;base64,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"; // Hurt (HP 41-70 / Strength 21-50%)
const img3 = "data:image/png;base64,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"; // Injured (HP 40- / Strength 20%-)
let activeImg = img1;
if (Gamestate.commandersEnabled && p.commander) {
const hp = p.commander.hp;
if (hp <= 30) activeImg = img3;
else if (hp <= 70) activeImg = img2;
else activeImg = img1;
} else {
// CLASSIC MODE: 21% and 65% thresholds
const strength = (p.areas.length / 24) * 100;
if (strength <= 21) activeImg = img3;
else if (strength <= 65) activeImg = img2;
else activeImg = img1;
}
if (!Gamestate.turn || Gamestate.turn <= 1) activeImg = img1; // --- HTML CONSTRUCTION ---
// Start with the Header Text
let html = `&gt; CURRENT MISSION DATA<br><br>`;
// Create the Two-Column Layout (Image Left, Profile Right)
html += `<div style="display: flex; align-items: flex-start; gap: 20px; margin-bottom: 20px;">`;
// Left Column: The Portrait
html += `
<div style="
width: 185px;
height: 207px;
border: 2px solid var(--pip-color);
background-color: var(--pip-color);
-webkit-mask-image: url(${activeImg});
mask-image: url(${activeImg});
-webkit-mask-size: contain;
mask-size: contain;
-webkit-mask-repeat: no-repeat;
mask-repeat: no-repeat;
-webkit-mask-position: center;
mask-position: center;
flex-shrink: 0;
"></div>`;
// Right Column: Operator Profile
html += `<div style="flex: 1;">`;
html += `-- OPERATOR PROFILE --<br>`;
html += `NAME: ${pName}<br>`;
let displayHealth = 100;
if (Gamestate.turn > 1) {
let rawHealth = (Gamestate.commandersEnabled && p.commander) ? p.commander.hp : Math.round((p.areas.length / 24) * 100);
displayHealth = Math.min(100, rawHealth);
}
html += `HEALTH: ${displayHealth}%<br>`;
html += `FACTION: ${pFaction}<br>`;
if (Gamestate.levelingEnabled) {
const totalXp = ((p.level - 1) * 100) + Math.floor(p.xp || 0);
html += `LEVEL: ${p.level}<br>`;
html += `EXPERIENCE: ${totalXp} XP<br>`;
}
if (Gamestate.perksEnabled && p.perk && p.perk.id !== "none") {
html += `FACTION PERK: ${p.perk.name}<br>`;
}
// Add Active Progression Perks if they exist
if (Gamestate.levelingEnabled && p.activeBuffs) {
let perksList = [];
const allPerks = [...Gamestate.PerkDatabase.tier1, ...Gamestate.PerkDatabase.tier2, ...Gamestate.PerkDatabase.tier3, ...Gamestate.PerkDatabase.tier4];
for (let id in p.activeBuffs) {
if (p.activeBuffs[id] > 0) {
let pDef = allPerks.find(item => item.id === id);
if (pDef) {
let count = p.activeBuffs[id];
perksList.push(`${pDef.name.toUpperCase()}${count > 1 ? " x" + count : ""}`);
}
}
}
if (perksList.length > 0) {
html += `<br>-- ACTIVE PERKS (PROGRESSION) --<br>${perksList.join("<br>")}<br>`;
}
}
html += `</div></div>`; // Close Right Column and Flex Header Container
html += `-- ACTIVE SIMULATION PARAMETERS --<br>`;
let diff = Gamestate.difficulty || "NORMAL";
html += `DIFFICULTY: ${diff.toUpperCase()}<br>`;
let fogOn = document.getElementById('opt-fog-of-war') && document.getElementById('opt-fog-of-war').checked;
let stormsOn = Gamestate.radstormsEnabled || (document.getElementById('opt-radstorms') && document.getElementById('opt-radstorms').checked);
let encountersOn = Gamestate.encountersEnabled || (document.getElementById('opt-encounters') && document.getElementById('opt-encounters').checked);
if (Gamestate.commandersEnabled) html += `COMMANDERS: DEPLOYED<br>`;
if (Gamestate.nukesEnabled) html += `SCORCHED EARTH PROTOCOL: ENABLED<br>`;
if (fogOn) html += `FOG OF WAR: ACTIVE<br>`;
if (stormsOn) html += `RADSTORMS: ACTIVE<br>`;
if (encountersOn) html += `WASTELAND ENCOUNTERS: ACTIVE<br>`;
// --- FIX: DYNAMIC MECHANICS READOUT & UNIFIED RULES ---
let activeMechs = [];
if (Gamestate.wastelandEconomyActive) activeMechs.push("Wasteland Economy");
if (Gamestate.perksEnabled) activeMechs.push("Faction Perks");
if (Gamestate.commandersEnabled) activeMechs.push("Commanders");
if (fogOn) activeMechs.push("Fog of War");
if (stormsOn) activeMechs.push("Radstorms");
if (document.getElementById('opt-horrors') && document.getElementById('opt-horrors').checked) activeMechs.push("Wild Ghouls");
if (encountersOn) activeMechs.push("Dynamic Encounters");
if (Gamestate.nukesEnabled) activeMechs.push("Scorched Earth");
if (document.getElementById('opt-flat-trade') && document.getElementById('opt-flat-trade').checked) activeMechs.push("Fixed Reinforcements");
let mechsStr = activeMechs.length > 0 ? activeMechs.join(", ") : "None (Classic Rules)";
if (pPreset === "CUSTOM") {
html += `<br>ACTIVE MECHANICS: ${mechsStr}<br><br>`;
} else {
html += `<br>ACTIVE PRESET: ${pPreset}<br>ACTIVE MECHANICS: ${mechsStr}<br><br>`;
}
// Explain the scenario rules and win conditions seamlessly
let modeRules = "";
if (pPreset.includes("CLASSIC")) {
modeRules = "Standard regional domination. This is a pure numbers game where weather hazards and neutral hostiles are set to normal baseline levels. Focus on claiming entire continents to boost your troop income every turn, build strong borders, trade your cards for reinforcements, and wipe out every other faction.<br><br><b>WIN CONDITION:</b> Eliminate all rival factions and control 100% of the map.<br><b>LOSS CONDITION:</b> Lose your last remaining territory.";
} else if (pPreset.includes("SURVIVAL")) {
modeRules = "Extreme environmental hazards. Radstorms occur frequently and cause massive troop attrition. Feral Ghouls hold more territory and defend it aggressively. Radstorms will constantly drain your troops, so don't leave massive armies sitting in one spot. Avoid Wild Ghouls early on, and focus on securing a safe corner before expanding.<br><br><b>WIN CONDITION:</b> Control the entire map while outlasting both rivals and environmental hazards.<br><b>LOSS CONDITION:</b> Lose all your territories to rivals, ghoul infestations, or radiation damage.";
} else if (pPreset.includes("HEROES")) {
modeRules = "The fate of the wasteland rests on Commanders. Use your faction's unique doctrines and your leader's abilities to outmaneuver your foes. Protect your Commander at all costs! If they die, you instantly lose the game. Use them to deal massive damage or capture land, but always keep them healed with Stimpaks and guarded by loyal troops.<br><br><b>WIN CONDITION:</b> Be the last faction with a living Commander (★) on the board.<br><b>LOSS CONDITION:</b> Your Commander is killed in combat or assassinated.";
} else if (pPreset.includes("APOCALYPSE")) {
modeRules = "The sky rains radiation, the dead walk the earth, and Scorched Earth protocols are active. Secure a Nuclear Silo (☢) early and hold it to build up its defense buff. Collect 4 launch codes from defeated enemies or random encounters, and nuke your strongest rivals before they nuke you.<br><br><b>WIN CONDITION:</b> Achieve total map domination by eliminating all other factions.<br><b>LOSS CONDITION:</b> Total elimination of your army or being wiped out by a rival's nuclear strike.";
} else if (pPreset.includes("ALLIANCE")) {
modeRules = "You are permanently allied with a lore-friendly faction. You share their fate and must work together to conquer the map. You have a permanent partner in this war. You cannot attack them, and friendly fire is disabled. Watch their borders, coordinate your attacks, and share the wasteland. You both win if you are the last two standing.<br><br><b>WIN CONDITION:</b> You and your permanent ally survive to be the last two factions remaining on the map.<br><b>LOSS CONDITION:</b> Either you OR your ally's Commander (★) is killed. If they fall, you fall!";
} else if (pPreset.includes("COVERT")) {
modeRules = "A war fought in the shadows. The Fog of War hides enemy numbers, requiring careful reconnaissance and tactical maneuvering. Information is your best weapon. Use your Commander to peek past the fog, or activate the Perception Bobblehead if you find it. Don't overextend your borders, or you might walk right into a massive hidden army.<br><br><b>WIN CONDITION:</b> Eliminate all rival Commanders (★) through stealth, recon, and superior intelligence.<br><b>LOSS CONDITION:</b> Your Commander is killed. (Losing all territory merely makes you Exiled!)";
} else if (pPreset.includes("NUCLEAR")) {
modeRules = "A frantic arms race to secure the world's remaining nuclear arsenal while navigating the Fog of War. This mode is a race. Keep your Commander alive while searching the fog for Nuclear Silos. The first player to secure a silo and 4 launch codes can wipe out rival Commanders from across the map without ever seeing them.<br><br><b>WIN CONDITION:</b> Assassinate every rival Commander (★) by nuclear strike or conventional combat.<br><b>LOSS CONDITION:</b> Your Commander is vaporized or killed in combat. (Losing all territory merely makes you Exiled!)";
} else {
modeRules = "The Overseer has manually overridden the simulation parameters. Standard rule sets do not apply.<br><br><b>WIN CONDITION:</b> Varies based on active settings (Total Conquest or Assassination).<br><b>LOSS CONDITION:</b> Varies based on active settings (Total Elimination or Commander Death).";
}
html += `SCENARIO RULES:<br><span style="color: var(--pip-color); font-weight: normal;">${modeRules}</span>`;
return html;
},
"page-play": () => {
// --- USE THE DYNAMIC PRESET MATCHER HERE TOO ---
let getMatchedPreset = () => {
let p = Gamestate.perksEnabled;
let c = Gamestate.commandersEnabled;
let f = document.getElementById('opt-fog-of-war') && document.getElementById('opt-fog-of-war').checked;
let r = Gamestate.radstormsEnabled || (document.getElementById('opt-radstorms') && document.getElementById('opt-radstorms').checked);
let g = document.getElementById('opt-horrors') && document.getElementById('opt-horrors').checked;
let e = Gamestate.encountersEnabled || (document.getElementById('opt-encounters') && document.getElementById('opt-encounters').checked);
let n = Gamestate.nukesEnabled;
let econ = Gamestate.wastelandEconomyActive;
if (!econ && !p && !c && !f && !r && !g && !e && !n) return "CLASSIC CONQUEST";
if (econ && !p && !c && f && r && g && e && !n) return "WASTELAND SURVIVAL";
if (econ && p && c && !f && !r && !g && e && !n) return "HEROES OF THE WASTELAND";
if (econ && !p && !c && !f && r && g && e && n) return "APOCALYPSE NOW";
if (econ && p && c && f && !r && !g && !e && !n) return "ALLIANCE WARFARE";
if (econ && p && c && f && !r && !g && e && !n) return "COVERT WARFARE";
if (econ && !p && c && f && !r && !g && !e && n) return "NUCLEAR OPTION";
return "CUSTOM";
};
const preset = getMatchedPreset();
const cmdrsOn = Gamestate.commandersEnabled;
const nukesOn = Gamestate.nukesEnabled;
const stormsOn = Gamestate.radstormsEnabled || Gamestate.weatherEnabled;
const econOn = Gamestate.wastelandEconomyActive;
const fogOn = document.getElementById('opt-fog-of-war') && document.getElementById('opt-fog-of-war').checked;
let n = 1;
let h = `&gt; HOW TO PLAY: ${preset} MODE<br><br>Your goal is to eliminate all rival factions and control the map. Turn phases in order:<br><br>`;
h += `<b>0. INITIAL DEPLOYMENT (Setup)</b><br>Depending on your Boot Menu settings, you may begin with a manual drafting phase to claim territories and place your starting troops before the war officially begins.<br><br>`;
h += `<b>${n++}. RECRUITMENT PHASE</b><br>`;
if (econOn) {
h += `Spend Caps to hire troops via [RECRUITMENT]. Cost: 5 Caps per troop.<br>* Cap income scales with territories and continents you control.<br>* Deploy ALL reserves to your territories before advancing.<br><br>`;
} else {
h += `You receive free troops based on territories and continents held.<br>* Control an entire continent for a large bonus payout.<br>* Trade sets of 3 Caps cards via [OPEN STASH] for bonus troops.<br><br>`;
}
h += `<b>${n++}. BATTLE PHASE</b><br>`;
h += `Click a friendly territory (2+ troops), then click an adjacent enemy territory to attack.<br>* Hover an enemy territory to see your V.A.T.S. win odds BEFORE committing.<br>* Conquering land rewards a card (or Caps if Wasteland Economy is on).`;
if (stormsOn) h += `<br>* HAZARD: Green radstorm glow zones drain troops each turn. Attack away from them!`;
if (fogOn) h += `<br>* FOG: Out-of-range territories show as [?]. Expand borders to reveal them.`;
h += `<br><br>`;
if (cmdrsOn) {
h += `<b>${n++}. COMMANDER PHASE</b><br>`;
h += `Your &#9733; Commander has 2 Action Points (AP). Each AP lets you:<br>* <b>Move</b> &mdash; Click an adjacent territory to reposition your Commander.<br>* <b>Duel</b> &mdash; Click an adjacent territory holding an enemy &#9733; to initiate combat.<br>* <b>Convert</b> &mdash; Click the 'CONVERT TERRITORY' button to begin a 3-turn siege to steal enemy land.<br>* TIP: Keep your Commander healed! Open your <b>INV</b> tab at the bottom of the screen to use Stimpaks and Bobbleheads.<br><br>`;
}
h += `<b>${n++}. MANEUVER PHASE</b><br>`;
h += `Reposition troops between two connected friendly territories once per turn.<br>* Cannot move from or into a Lockdown [&#128274;] territory.<br>${stormsOn ? '* PRIORITY: Move troops OUT of green radstorm glow zones before ending your turn!<br>' : ''}<br>`;
if (nukesOn) {
h += `<b>${n++}. SCORCHED EARTH PROTOCOL</b><br>`;
h += `Hold a &#9762; Nuclear Silo and collect all 4 Launch Codes to unlock [INITIATE LAUNCH].<br>* Find codes through Encounters and post-conquest loot rolls.<br>* A nuclear strike takes 3 turns to land. It vaporizes ALL units at ground zero, and inflicts 50% casualties to all adjacent territories.<br>* DEFENSE: You can abort an enemy's launch by capturing their origin Silo before impact!<br><br>`;
}
// --- NEW: AP PING PRO TIP ---
h += `<b>PRO TIP: ACTION PING</b><br>`;
h += `Lost track of where you can attack or move? Click the <b>ACTION POINTS (AP)</b> gauge on your left dashboard at any time to ping all valid territories on the map for your current phase.<br><br>`;
h += `<span class="help-nav-item" data-page="page-vats" style="color: var(--pip-color);">&gt; NEXT: V.A.T.S. TARGETING</span><br>`;
h += `<span class="help-nav-item" data-page="page-tactics" style="color: var(--pip-color);">&gt; ADVANCED RULES (Commanders / Fog / Nukes)</span>`;
return h;
},
"page-play-2": () => { return helpPages["page-play"](); },
"page-vats": "> V.A.T.S. TARGETING<br><br>The Vault-Tec Assisted Targeting System processes your combat probabilities.<br><br>When engaging hostiles, 'Simulation Difficulty' dictates the base success rate of your initial strike:<br>* EASY: 60% Hit Chance (Tactical Advantage)<br>* NORMAL: 50% Hit Chance (Standard Parity)<br>* HARD: 40% Hit Chance (Lethal Resistance)<br><br>Hover over an enemy territory during the Battle Phase to view the real-time V.A.T.S. attack vs. defend odds breakdown.",
"page-vats": `> V.A.T.S. TARGETING<br><br>The Vault-Tec Assisted Targeting System processes your combat probabilities in real-time.<br><br><b>HOW TO USE:</b><br>During the <b>Battle Phase</b>, click on one of your territories with 2+ troops, then hover your mouse over an adjacent enemy territory. The V.A.T.S. display will appear, showing your projected win chance.<br><br><b>TACTICAL BREAKDOWN:</b><br>V.A.T.S. does more than show the odds. It provides a detailed breakdown of every factor affecting the battle, including:<br> * Simulation Difficulty (Easy/Normal/Hard)<br> * Active Faction Perks (yours and theirs)<br> * Commander presence (+20% defense)<br> * Nuclear Silo fortifications<br> * Environmental hazards (Radstorms)<br> * Active Bobblehead and Relic effects<br><br><b>PRO TIP:</b> Always check the V.A.T.S. breakdown before committing to an attack. A 95% chance can drop to 20% if the enemy is in a fortified Silo with a Commander present.`,
"page-factions": "> FACTIONS & PERKS (Directory)<br><br>Every faction has a unique tactical advantage. (Note: Only active if 'Faction Perks' are enabled in the boot menu).<br><br><b>CUSTOM FACTION</b> [Mysterious Stranger]<br><i>\"When you are losing a battle, the Stranger may appear to grant a sudden +25% combat bonus.\"</i><br><span style='color: #aaa;'>- EXPLANATION: Your custom player faction has a guardian angel. Sometimes, when you are projected to lose a fight, the Stranger bails you out and grants a massive hit chance boost.</span><br><br>Select a databank below to review specific regional factions:<br><br><span class=\"help-nav-item\" data-page=\"page-factions-fo3\" style=\"color: var(--pip-color);\">&gt; FALLOUT 3 (Capital Wasteland)</span><br><span class=\"help-nav-item\" data-page=\"page-factions-fnv\" style=\"color: var(--pip-color);\">&gt; FALLOUT: NEW VEGAS (Mojave)</span><br><span class=\"help-nav-item\" data-page=\"page-factions-fo4\" style=\"color: var(--pip-color);\">&gt; FALLOUT 4 (The Commonwealth)</span><br><br><span class=\"help-nav-item\" data-page=\"page-root\" style=\"color: var(--pip-color);\">&lt; BACK TO MAIN MENU</span>",
"page-factions-fo3": "> FACTIONS & PERKS: FALLOUT 3<br><br><b>BROTHERHOOD OF STEEL</b> [Power Armor Infantry]<br><i>\"Grants a permanent +5% bonus to your win chance in all combat, both when attacking and defending.\"</i><br><span style='color: #aaa;'>- EXPLANATION: Your troops are walking tanks. You get a flat boost to your V.A.T.S. hit chance in every single fight.</span><br><br><b>THE ENCLAVE</b> [Vertibird Assault]<br><i>\"During the Maneuver phase, you can move troops between any two territories you own, regardless of whether they are connected.\"</i><br><span style='color: #aaa;'>- EXPLANATION: You don't need a connected land path to fortify your borders. You can fly troops straight across the map.</span><br><br><b>VAULT 87 MUTANTS</b> [F.E.V. Infection]<br><i>\"When you conquer a territory, 25% of the defeated enemy army (rounded down) is immediately converted into your own troops.\"</i><br><span style='color: #aaa;'>- EXPLANATION: Every time you wipe out an enemy garrison, some of those defeated troops instantly join your army for free!</span><br><br><b>WASTELAND RAIDERS</b> [Chem Frenzy]<br><i>\"Sacrifice up to 50% of your attacking army for a massive combat bonus with diminishing returns. (3 Turn Cooldown)\"</i><br><span style='color: #aaa;'>- EXPLANATION: You can choose to kill your own troops right before a battle to get a huge temporary boost to your hit chance.</span><br><br><b>BOS OUTCASTS</b> [Technology Overdrive]<br><i>\"Spend Caps equal to your total army size (Max 30) to grant all your attacking armies +10% win chance for 3 rounds. (3 Turn Cooldown)\"</i><br><span style='color: #aaa;'>- EXPLANATION: If you have enough Caps, you can buy a massive 3-turn attack boost for your entire faction.</span><br><br><b>REILLY'S RANGERS</b> [Ranger Network]<br><i>\"Territories in a continuous block gain a cumulative +5% defensive bonus for each connected friendly territory, up to a maximum of +20%.\"</i><br><span style='color: #aaa;'>- EXPLANATION: Keep your territories connected! The bigger your single \"blob\" of land, the harder it is for enemies to defeat you.</span><br><br><span class=\"help-nav-item\" data-page=\"page-factions\" style=\"color: var(--pip-color);\">&lt; BACK TO FACTIONS DIRECTORY</span>",
"page-factions-fnv": "> FACTIONS & PERKS: NEW VEGAS<br><br><b>NEW CALIFORNIA REPUBLIC</b> [Logistical Superiority]<br><i>\"Your vast supply lines increase the standard troop reinforcement bonus of any fully controlled Continent by 50% (rounded up).\"</i><br><span style='color: #aaa;'>- EXPLANATION: If you own a whole continent, you get way more free troops at the start of your turn than anyone else would.</span><br><br><b>CAESAR'S LEGION</b> [Scourge of the East]<br><i>\"You are exempt from the rule requiring you to leave at least one troop behind after conquering a territory.\"</i><br><span style='color: #aaa;'>- EXPLANATION: When you attack and win, you can move 100% of your surviving troops forward, leaving your old territory totally empty.</span><br><br><b>NEW VEGAS SECURITRONS</b> [Predictive Simulation]<br><i>\"If an attack completely fails, instantly abort the battle and restore all lost troops to both sides. (3 Turn Cooldown)\"</i><br><span style='color: #aaa;'>- EXPLANATION: A literal \"Undo\" button. If an attack goes horribly wrong, use this perk to pretend it was just a simulation and get your dead troops back.</span><br><br><b>MOJAVE BROTHERHOOD</b> [Elder's Edict]<br><i>\"Lock down one of your territories for up to 3 turns. It cannot attack, maneuver, or be attacked. You may lift it early.\"</i><br><span style='color: #aaa;'>- EXPLANATION: Turn a territory invincible. Great for protecting your Commander or stalling an enemy, but the troops inside can't do anything either.</span><br><br><b>GREAT KHANS</b> [Guerrilla Tactics]<br><i>\"During Maneuver, your troops can pass through exactly one enemy territory, inflicting 15% casualties on that territory's garrison as they pass.\"</i><br><span style='color: #aaa;'>- EXPLANATION: You can move troops through an enemy line to connect your separated armies, dealing damage to the enemy as you run past them.</span><br><br><b>THE FIENDS</b> [Chem-Fueled Raids]<br><i>\"When you conquer a territory, there is a 30% chance to mug the defeated player! You may steal Caps, Stimpaks, or even Bobbleheads. If their pockets are empty, you enslave 1-2 survivors.\"</i><br><span style='color: #aaa;'>- EXPLANATION: Taking land gives you a chance to randomly steal items straight out of the losing player's inventory!</span><br><br><span class=\"help-nav-item\" data-page=\"page-factions\" style=\"color: var(--pip-color);\">&lt; BACK TO FACTIONS DIRECTORY</span>",
"page-factions-fo4": "> FACTIONS & PERKS: FALLOUT 4<br><br><b>THE MINUTEMEN</b> [Mercenary Contracts]<br><i>\"Spend 20 Caps during your turn to instantly deploy 6-12 elite troops to your reserves, PLUS 1 extra troop for every 2 territories you own. (3 Turn Cooldown)\"</i><br><span style='color: #aaa;'>- EXPLANATION: A powerful panic button. Spend Caps to instantly spawn a bunch of troops, scaling with how big your empire is.</span><br><br><b>THE INSTITUTE</b> [Synth Replacements]<br><i>\"Whenever you lose troops in any battle (attacking or defending), there is a 15% chance per casualty that the Synth is recovered and instantly sent to your reserves.\"</i><br><span style='color: #aaa;'>- EXPLANATION: A permanent passive buff. Whenever your troops die anywhere on the map, some of them instantly respawn back in your reserve pool.</span><br><br><b>THE RAILROAD</b> [Rapid Relocation]<br><i>\"Receive 5 maneuver points at the start of the Maneuver phase, allowing for up to five separate troop movements.\"</i><br><span style='color: #aaa;'>- EXPLANATION: Normally you can only move troops once per turn. The Railroad can move troops up to 5 times, letting you perfectly balance your borders.</span><br><br><b>THE GUNNERS</b> [Mercenary Contracts]<br><i>\"Spend 20 Caps during your turn to instantly deploy 6-12 elite troops to your reserves, PLUS 1 extra troop for every 2 territories you own. (1 Turn Cooldown)\"</i><br><span style='color: #aaa;'>- EXPLANATION: Very similar to the Minutemen, but with a drastically lower cooldown, letting you buy emergency troops almost every single turn.</span><br><br><b>NUKA-WORLD RAIDERS</b> [Tribute Chest]<br><i>\"At the start of your turn, you gain +10 Bottle Caps for every continent you fully control.\"</i><br><span style='color: #aaa;'>- EXPLANATION: Hold entire continents to get incredibly rich, allowing you to buy more troops from the shop than anyone else.</span><br><br><b>MAXSON'S BROTHERHOOD</b> [Prydwen Deployment]<br><i>\"The Prydwen automatically dispatches 3 airborne troops per turn to contested borders.\"</i><br><span style='color: #aaa;'>- EXPLANATION: An aggressive variant of the Brotherhood. You receive 3 free elite troops every turn, automatically dropped onto your most vulnerable frontlines.</span><br><br><span class=\"help-nav-item\" data-page=\"page-factions\" style=\"color: var(--pip-color);\">&lt; BACK TO FACTIONS DIRECTORY</span>",
"page-leveling": () => {
return `> LEVELING & PROGRESSION<br><br>` +
`The simulation now tracks your tactical performance via XP. Earn 100 XP to Level Up and receive a permanent ability.<br><br>` +
`-- XP Payouts --<br>` +
`- Conquering Land: +8 XP<br>` +
`- Clearing Horrors: +12 XP<br>` +
`- Defending Land: +4 XP<br>` +
`- Map Encounters: +15 XP<br>` +
`- Eliminating Rivals: +40 XP<br><br>` +
`-- Perk Database --<br>` +
`<span class="help-nav-item" data-page="page-tier1">&gt; TIER 1: COMBAT & SURVIVAL (LVL 1+)</span><br>` +
`<span class="help-nav-item" data-page="page-tier2">&gt; TIER 2: ECONOMY & EMPIRE (LVL 5+)</span><br>` +
`<span class="help-nav-item" data-page="page-tier3">&gt; TIER 3: COMMANDER TACTICS (LVL 9+)</span><br>` +
`<span class="help-nav-item" data-page="page-tier4">&gt; TIER 4: INSTANT ACTIONS (LVL 13+)</span><br><br>` +
`<span class="help-nav-item" data-page="page-root">&lt; BACK TO MAIN MENU</span>`;
},
"page-tier1": () => {
return `> PERKS: TIER 1 (COMBAT & SURVIVAL)<br><br>` +
`- Bloody Mess: Your attacks are 5% more likely to succeed.<br>` +
`- Toughness: Defending your land is 5% more likely to succeed.<br>` +
`- Ghoul Slayer: Grants a massive combat advantage against Ghouls.<br>` +
`- Sniper: Your troops won't die from your own explosives/AoE items.<br>` +
`- Adamantium Skeleton: Radstorms deal 50% less damage to your troops.<br>` +
`- Demolition Expert: Your attacks ignore enemy Silo/Ranger defenses.<br>` +
`- Commando: Large armies (10+) automatically kill 1 enemy for free.<br>` +
`- Rooted: +10% defense bonus if your troops didn't move recently.<br><br>` +
`<span class="help-nav-item" data-page="page-leveling">&lt; BACK TO LEVELING GUIDE</span>`;
},
"page-tier2": () => {
return `> PERKS: TIER 2 (ECONOMY & EMPIRE)<br><br>` +
`- Fortune Finder: Earn 3 extra Caps at the start of every turn.<br>` +
`- Scrounger: Get 2 extra free Troops in your reserves every turn.<br>` +
`- Cap Collector: Recruiting troops is cheaper (4 Caps instead of 5).<br>` +
`- Action Boy: Move your troops 1 extra time during the Maneuver Phase.<br>` +
`- Scavenger: Find Bobbleheads and Launch Codes more often.<br>` +
`- Local Leader: Double the rewards for holding an entire Continent.<br>` +
`- Inspirational: Double reputation earned from bribes and gifts.<br>` +
`- Gun Nut: Hiring special Mercenaries is 5 Caps cheaper.<br><br>` +
`<span class="help-nav-item" data-page="page-leveling">&lt; BACK TO LEVELING GUIDE</span>`;
},
"page-tier3": () => {
return `> PERKS: TIER 3 (COMMANDER TACTICS)<br><br>` +
`- Life Giver: Increases your Commander's maximum health by +25 HP.<br>` +
`- Solar Powered: Your Commander heals +10 HP automatically every turn.<br>` +
`- Moving Target: +15% Commander defense if they moved last turn.<br>` +
`- Medic: Stimpaks now heal your Commander twice as much (40 HP).<br>` +
`- Blitz: Your Commander can take 3 actions per turn instead of 2.<br>` +
`- Ninja: Move through Fog of War without being spotted.<br>` +
`- Refractor: Take half damage from direct "Assassination" items.<br>` +
`- Infiltrator: Take 1 less turn to "siege" or convert an enemy land.<br><br>` +
`<span class="help-nav-item" data-page="page-leveling">&lt; BACK TO LEVELING GUIDE</span>`;
},
"page-tier4": () => {
return `> PERKS: TIER 4 (INSTANT ACTIONS)<br><br>` +
`- Merc Reinforcements: Instantly gain 30 troops in your reserves.<br>` +
`- Buried Treasure: Instantly gain 40 Bottle Caps.<br>` +
`- Pre-War Relic: Instantly receive a random Bobblehead item.<br>` +
`- Encrypted Data: Instantly gain one Nuclear Launch Code.<br>` +
`- Wasteland Medic: Full Commander heal + gain one extra Stimpak.<br>` +
`- Mysterious Broadcast: Reveals the entire map and removes Fog.<br>` +
`- Mass Evacuation: Save troops by teleporting them back to reserves.<br>` +
`- Orbital Strike: Vaporize 50% of an enemy's troops instantly.<br><br>` +
`<span class="help-nav-item" data-page="page-leveling">&lt; BACK TO LEVELING GUIDE</span>`;
},
"page-diplomacy": "> DIPLOMACY & REPUTATION (Part 1/3)<br><br>In the wasteland, bullets aren't your only weapon. Click the 'Initiate Trade/Truce' button on an opponent's leaderboard card to open negotiations.<br><br><b>THE REPUTATION SCALE</b><br>Your success depends entirely on your Reputation with that specific faction:<br>* IDOLIZED / LIKED: Factions will gladly accept fair trades and truces.<br>* NEUTRAL: The default state. They will accept deals that directly benefit them.<br>* VILIFIED / HATED: They will outright refuse to negotiate with you, unless you terrify them with an overwhelming army.<br><br><span class=\"help-nav-item\" data-page=\"page-diplomacy-2\" style=\"color: var(--pip-color);\">&gt; NEXT PAGE (Negotiations & Bribes)</span>",
"page-diplomacy-2": "> DIPLOMACY & REPUTATION (Part 2/3)<br><br><b>NEGOTIATING DEALS</b><br>When sending an Envoy, you can offer Caps or Troops in exchange for Caps or a Ceasefire. The computer will analyze your offer in real-time and tell you if they will accept it.<br><br><b>BUYING REPUTATION (GIFTS)</b><br>If your Reputation is in the gutter, you can buy forgiveness. Send an Envoy offering Caps or Troops, but ask for NOTHING in return. <br><br>Every 1 Cap of value you gift them increases your Reputation by +3. This is the best way to make a hostile faction willing to talk to you again.<br><br><span class=\"help-nav-item\" data-page=\"page-diplomacy-3\" style=\"color: var(--pip-color);\">&gt; NEXT PAGE (Truces & Betrayal)</span><br><span class=\"help-nav-item\" data-page=\"page-diplomacy\" style=\"color: var(--pip-color);\">&gt; PREVIOUS PAGE</span>",
"page-diplomacy-3": "> DIPLOMACY & REPUTATION (Part 3/3)<br><br><b>INTIMIDATION & EXTORTION</b><br>If your total army is at least double the size of the target's army, they become Terrified. A terrified faction will accept your demands even if they absolutely hate you.<br><br>If you demand Caps from a terrified faction without offering a fair trade, it becomes an <b>Extortion Truce</b>. These 3-turn truces are \"Locked\" and cannot be backstabbed or broken early by either side.<br><br><b>TRUCES & BETRAYAL</b><br>You may only have <b>1 active Truce at a time.</b> While active, friendly fire is disabled.<br><br>Unless it is a locked Extortion Truce, you <i>can</i> break a Ceasefire early by force-attacking an ally, but the penalties are severe:<br>* GRUDGES: The betrayed faction will permanently refuse to negotiate with you.<br>* BETRAYAL TAX: Future truces with anyone will cost more Caps.<br>* SPITE BOUNTY: A 3-turn global bounty is issued, causing all AI factions to aggressively target you!<br><br><span class=\"help-nav-item\" data-page=\"page-diplomacy-2\" style=\"color: var(--pip-color);\">&gt; PREVIOUS PAGE</span>",
"page-hazards": "> STORMS & GHOULS (Part 1/2)<br><br>The wasteland is actively trying to kill you. If hazards are enabled, you aren't just fighting other factions.<br><br><b>FERAL GHOULS (Neutral Hostiles)</b><br>Ghouls are rogue enemies that occupy unclaimed territories.<br><br><b>GROWING THREAT:</b> Ghouls do not expand their borders, but they do multiply. If left ignored, a ghoul garrison will steadily increase in troop strength over time, making them incredibly difficult to wipe out late in the game.<br><br><b>STRATEGY:</b> You must defeat the ghoul garrison to claim their land. Clear them out early before their numbers become unmanageable, but don't bleed your entire army dry doing it!<br><br><span class=\"help-nav-item\" data-page=\"page-hazards-2\" style=\"color: var(--pip-color);\">&gt; NEXT PAGE (Radstorms)</span>",
"page-hazards-2": "> STORMS & GHOULS (Part 2/2)<br><br><b>RADSTORMS (Weather Hazards)</b><br>Periodically, deadly radioactive storms will sweep across the map, usually lasting for several turns.<br><br><b>WARNINGS & DURATION:</b> Keep an eye on your action log! The system will warn you of an incoming storm, track how many turns it will last, and report the region it is hitting.<br><br><b>IMPACT ZONE:</b> A storm doesn't just hit one spot. It strikes a central territory and bleeds into the surrounding connected areas. You will see these active hazard zones glowing green on your map.<br><br><b>RADIATION SICKNESS:</b> Any troops left standing in a green radiated zone at the start of the next turn will suffer massive casualties. The radiation will melt your army away.<br><br><b>STRATEGY:</b> Evacuate! Use your Fortify phase to move your troops out of the green zones to a safe territory before you end your turn.<br><br><span class=\"help-nav-item\" data-page=\"page-hazards\" style=\"color: var(--pip-color);\">&gt; PREVIOUS PAGE</span>",
"page-encounters": `> WASTELAND ENCOUNTERS (Part 1/3)<br><br>If 'Wasteland Encounters' are enabled, the simulation generates unpredictable events to test your adaptability.<br><br><b>1. CREATURE AMBUSHES</b><br>While holding territory, your garrisons may be ambushed by mutated wildlife. The system will provide a Tactical Assessment based on your garrison's size versus the creature's <b>Threat Level</b>.<br><br><b>THE CHOICE:</b><br>You must choose to [Attack] or [Avoid]. Avoiding the encounter has a high chance of success, but if you fail, the creature will ambush you.<br><br>* <b>COMPANION NOTE:</b> Dogmeat is loyal, but not stealthy. His barking makes it impossible to hide from creatures, forcing an engagement.<br><br><b>THE OUTCOME:</b><br>If your garrison's army size is greater than or equal to the creature's Threat Level, you will win the fight with no casualties and may scavenge Caps, Stimpaks, or even find rare Relics.<br><br><span class="help-nav-item" data-page="page-encounters-2" style="color: var(--pip-color);">&gt; NEXT PAGE (Radio Transmissions)</span>`,
"page-encounters-2": "> WASTELAND ENCOUNTERS (Part 2/3)<br><br><b>2. RADIO TRANSMISSIONS:</b><br>While holding territory, your garrisons may pick up strange radio signals pointing to a person, container, or location of interest.<br><br><b>THE CHOICE:</b> You must choose whether to [Investigate] the signal or [Ignore] it.<br><br><b>THE RISK (LOCKDOWN):</b> Investigating puts the territory into \"Lockdown\" for 2 turns. It cannot attack, move troops, or defend itself efficiently while \"SEARCHING...\".<br><br><b>THE REWARD:</b> If you brave the wastes, your troops might recruit wandering survivors, uncover hidden caches of Caps, or find rare items. But beware—some signals are just Raider traps!<br><br><span class=\"help-nav-item\" data-page=\"page-encounters-3\" style=\"color: var(--pip-color);\">&gt; NEXT PAGE (Post-Battle & Loot)</span><br><span class=\"help-nav-item\" data-page=\"page-encounters\" style=\"color: var(--pip-color);\">&gt; PREVIOUS PAGE</span>",
"page-encounters-3": `> WASTELAND ENCOUNTERS (Part 3/3)<br><br><b>3. POST-BATTLE DISCOVERIES</b><br>After conquering a territory, your troops may discover a sealed Vault or other Point of Interest. Investigating them locks the territory down for 2 turns but can yield high-value loot.<br><br><b>SPECIAL EVENT: A BOY AND HIS DOG</b><br>A rare distress signal may be intercepted, revealing the location of a lone dog defending a Red Rocket station. This will mark a territory on your map with a <b>Paw Icon (<span class="paw-icon" style="width:16px; height:16px; margin:0 2px; vertical-align:text-bottom;"></span>)</b>.<br><br><b>THE MISSION:</b><br>You have a limited number of turns to attack and conquer the marked territory. If you succeed, you will trigger a multi-day siege to rescue the dog, CX404.<br><br><b>THE REWARD:</b><br>If you rescue and heal him, Dogmeat will join your faction as a permanent companion, granting powerful buffs to combat, loot-finding, and mine-defusing.<br><br><span class="help-nav-item" data-page="page-encounters-2" style="color: var(--pip-color);">&gt; PREVIOUS PAGE</span>`,
"page-presets": "> GAME PRESETS (Database Index)<br><br>The Overseer can load different simulation presets from the boot menu. Select a databank below to review its specific operational parameters:<br><br><span class=\"help-nav-item\" data-page=\"page-preset-classic\" style=\"color: var(--pip-color);\">&gt; [01] CLASSIC CONQUEST</span><br><span class=\"help-nav-item\" data-page=\"page-preset-survival\" style=\"color: var(--pip-color);\">&gt; [02] WASTELAND SURVIVAL</span><br><span class=\"help-nav-item\" data-page=\"page-preset-heroes\" style=\"color: var(--pip-color);\">&gt; [03] HEROES OF THE WASTELAND</span><br><span class=\"help-nav-item\" data-page=\"page-preset-apocalypse\" style=\"color: var(--pip-color);\">&gt; [04] APOCALYPSE NOW</span><br><span class=\"help-nav-item\" data-page=\"page-preset-alliance\" style=\"color: var(--pip-color);\">&gt; [05] ALLIANCE WARFARE</span><br><span class=\"help-nav-item\" data-page=\"page-preset-covert\" style=\"color: var(--pip-color);\">&gt; [06] COVERT WARFARE</span><br><span class=\"help-nav-item\" data-page=\"page-preset-nuclear\" style=\"color: var(--pip-color);\">&gt; [07] NUCLEAR OPTION</span><br><span class=\"help-nav-item\" data-page=\"page-preset-custom\" style=\"color: var(--pip-color);\">&gt; [08] CUSTOM RULESET</span>",
"page-preset-classic": "> PRESET: CLASSIC CONQUEST<br><br><b>OVERVIEW:</b> Pure strategy &mdash; no special mechanics. The original Wasteland Conquest experience. Win by outmaneuvering rivals and claiming the entire map.<br><br><b>ACTIVE MECHANICS:</b> Standard Rules, Random Events, Card Trade-Ins.<br><br><b>TURN PHASES (3 total):</b><br><br>1. <b>RECRUITMENT PHASE</b><br>You receive free troops based on territories and continents held. Larger empires earn more. Trade in sets of 3 Caps cards via [OPEN STASH] for bonus troops. Deploy all reserves before advancing.<br><br>2. <b>BATTLE PHASE</b><br>Click a friendly territory (2+ troops) then an adjacent enemy to attack. Check V.A.T.S. hover odds first. Conquering a territory earns you a card as a conquest reward.<br><br>3. <b>MANEUVER PHASE</b><br>Move troops between two connected friendly territories once. Reinforce your most vulnerable borders.<br><br><b>WIN CONDITION:</b> Eliminate all rival factions and control 100% of the map.<br><b>LOSS CONDITION:</b> Lose your last remaining territory.<br><br><span class=\"help-nav-item\" data-page=\"page-presets\" style=\"color: var(--pip-color);\">&gt; BACK TO PRESETS INDEX</span>",
"page-preset-survival": "> PRESET: WASTELAND SURVIVAL<br><br>MECHANICS: Wasteland Economy, Fog of War, Radstorms, Wild Ghouls, Dynamic Encounters.<br><br>INSTRUCTIONS:<br>1. RECRUITMENT PHASE: Click the REINFORCEMENTS button and use the slider to hire additional units using Bottle Caps earned from your lands. Tactically place your newly acquired units within your own territories.<br><br>2. ATTACK PHASE: The map is covered by Fog of War. You must be adjacent to a territory to see it. Attack the neutral gray territories occupied by Wild Ghouls to clear the fog and expand your borders. Random Encounters may occur after any successful battle, presenting choices that grant resources or trigger ambushes.<br><br>3. MANEUVER PHASE: Periodic Radstorms will turn territories into a GREEN GLOW zone. If your troops remain in a glowing zone when your turn ends, they will suffer massive radiation casualties. You must use this phase to move troops into safe, non-glowing zones.<br><br>WIN CONDITION: Control the entire map while outlasting both rivals and environmental hazards.<br>LOSS CONDITION: Lose all your territories to rivals, ghoul infestations, or radiation damage.<br><br><span class=\"help-nav-item\" data-page=\"page-presets\" style=\"color: var(--pip-color);\">&gt; BACK TO PRESETS INDEX</span>",
"page-preset-heroes": "> PRESET: HEROES OF THE WASTELAND<br><br><b>OVERVIEW:</b> War is personal. Each faction is led by a Commander (&#9733;) whose survival is the true win condition. Your military might means nothing if your leader falls in battle.<br><br><b>ACTIVE MECHANICS:</b> Wasteland Economy (Caps), Faction Perks, Commanders, Dynamic Encounters.<br><br><b>TURN PHASES (4 total):</b><br><br>1. <b>RECRUITMENT PHASE</b><br>Spend Caps to hire troops. Place them around your &#9733; Commander to create a protective perimeter. Never leave your Commander exposed on the front line.<br><br>2. <b>BATTLE PHASE</b><br>Attack enemies to expand your empire. To assassinate a rival, attack the territory holding their &#9733;, but be warned: Commanders provide a massive 20% defensive bonus to their stationed territory.<br><br>3. <b>COMMANDER PHASE</b><br>Your &#9733; Commander has 2 AP. Move them into a strong defensive position or reposition for a flanking assault. You may initiate a direct duel against an adjacent enemy &#9733; here. Commanders heal over time on friendly territory &mdash; or instantly via Stimpaks found in Encounters.<br><br>4. <b>MANEUVER PHASE</b><br>Ensure your &#9733; sits behind a wall of soldiers before the turn ends. A lone Commander on the front line is one bad dice roll from elimination.<br><br><b>WIN CONDITION:</b> Be the last faction with a living Commander (&#9733;) on the board.<br><b>LOSS CONDITION:</b> Your Commander is killed in combat.<br><br><span class=\"help-nav-item\" data-page=\"page-presets\" style=\"color: var(--pip-color);\">&gt; BACK TO PRESETS INDEX</span>",
"page-preset-apocalypse": "> PRESET: APOCALYPSE NOW<br><br>MECHANICS: Wasteland Economy, Radstorms, Wild Ghouls, Dynamic Encounters, Scorched Earth.<br><br>INSTRUCTIONS:<br>1. RECRUITMENT PHASE: Hire reinforcements using Caps and deploy them to secure key locations, specifically territories marked with a Nuclear Silo (☢) icon.<br><br>2. ATTACK PHASE: Attack ruins and Points of Interest to trigger Encounters. These events give you a chance to find the 4 necessary Nuclear Launch Codes. <br><br>3. SCORCHED EARTH PROTOCOL: Once you possess all 4 codes and actively control a territory with a ☢ icon, you can launch a nuclear strike to instantly obliterate all units in any chosen territory on the map.<br><br>4. MANEUVER PHASE: Reallocate surviving troops out of any territories displaying the Radstorm GREEN GLOW to avoid end-of-turn casualties.<br><br>WIN CONDITION: Achieve total map domination by eliminating all other factions.<br>LOSS CONDITION: Total elimination of your army or being targeted by a rival's nuclear strike.<br><br><span class=\"help-nav-item\" data-page=\"page-presets\" style=\"color: var(--pip-color);\">&gt; BACK TO PRESETS INDEX</span>",
"page-preset-alliance": "> PRESET: ALLIANCE WARFARE<br><br><b>OVERVIEW:</b> You are permanently allied with a lore-appropriate faction. You share their Fog of War vision and cannot attack them. Work together to be the last two factions standing &mdash; victory is shared, or not at all.<br><br><b>ACTIVE MECHANICS:</b> Wasteland Economy (Caps), Faction Perks, Commanders, Fog of War.<br><br><b>TURN PHASES (4 total):</b><br><br>1. <b>RECRUITMENT PHASE</b><br>Spend Caps to hire troops. You share Fog of War vision with your ally &mdash; use that shared intel to reinforce borders facing your mutual enemies.<br><br>2. <b>BATTLE PHASE</b><br>Attack only enemy factions &mdash; friendly fire is completely disabled. Use the 'Signal Ally' button on your partner's leaderboard card to request coordinated strikes, ask for reinforcements, or signal your attack intent.<br><br>3. <b>COMMANDER PHASE</b><br>Move your &#9733; Commander to coordinate your attack vector with your ally. Keep them healed &mdash; if your ally's Commander dies, the alliance shatters and you both instantly lose the game.<br><br>4. <b>MANEUVER PHASE</b><br>Shore up shared front lines. If your troops are completely landlocked by friendly territory with no path to an enemy, maneuvering them will trigger a Vertibird Airlift, allowing you to fly them across allied airspace to the front line for 5 Caps per space.<br><br><b>EMERGENCY ASYLUM:</b> If you lose all your territories but your Commander survives, you become Exiled. Use the 'Signal Ally' menu to request Emergency Asylum and take over one of their safe territories!<br><br><b>WIN CONDITION:</b> You and your ally are the last two factions remaining on the map.<br><b>LOSS CONDITION:</b> Either you or your ally are eliminated by losing your Commander (&#9733;).<br><br><span class=\"help-nav-item\" data-page=\"page-presets\" style=\"color: var(--pip-color);\">&gt; BACK TO PRESETS INDEX</span>",
"page-preset-covert": "> PRESET: COVERT WARFARE<br><br><b>OVERVIEW:</b> The fog of war shrouds everything. Enemy troop counts and Commander positions are invisible beyond your immediate borders. Intelligence is your most valuable weapon.<br><br><b>ACTIVE MECHANICS:</b> Wasteland Economy (Caps), Faction Perks, Commanders, Maximum Fog of War, Dynamic Encounters.<br><br><b>TURN PHASES (4 total):</b><br><br>1. <b>RECRUITMENT PHASE</b><br>Spend Caps on troops. The fog means you are always guessing what lies beyond your borders. Err toward defense &mdash; you cannot see incoming threats until they are already adjacent.<br><br>2. <b>BATTLE PHASE</b><br>Expand cautiously. Attack Points of Interest (?) to trigger Encounters &mdash; finding the Perception Bobblehead temporarily lifts the entire Fog of War for a few turns, exposing the whole map.<br><br>3. <b>COMMANDER PHASE</b><br>Your &#9733; Commander is your best scout. They can enter enemy territory without triggering a battle, revealing fog-shrouded regions. But their revealed position makes them a target &mdash; never leave them in exposed territory. Duel enemy Commanders only when confident of the advantage.<br><br>4. <b>MANEUVER PHASE</b><br>Reposition troops to obscure your &#9733; Commander location. A moving target is far harder to assassinate than a stationary one.<br><br><b>WIN CONDITION:</b> Eliminate all rival factions and their Commanders (&#9733;) through stealth and superior intelligence.<br><b>LOSS CONDITION:</b> Your Commander is killed, or you lose all territory.<br><br><span class=\"help-nav-item\" data-page=\"page-presets\" style=\"color: var(--pip-color);\">&gt; BACK TO PRESETS INDEX</span>",
"page-preset-nuclear": "> PRESET: NUCLEAR OPTION<br><br><b>OVERVIEW:</b> A frantic arms race under maximum fog. Every faction races to control Nuclear Silos (&#9762;) and gather 4 Launch Codes before being nuked into oblivion. Speed and stealth win here.<br><br><b>ACTIVE MECHANICS:</b> Wasteland Economy (Caps), Commanders, Maximum Fog of War, Scorched Earth Protocol.<br><br><b>TURN PHASES (4 total):</b><br><br>1. <b>RECRUITMENT PHASE</b><br>Spend Caps on troops. Guard your &#9733; Commander and any &#9762; Silo you hold. You cannot see incoming threats until they are at your border &mdash; always assume someone is aiming at you.<br><br>2. <b>BATTLE PHASE</b><br>Expand rapidly toward &#9762; Silos &mdash; they may be hidden in the fog. Trigger Encounters in ruined territories to collect Launch Codes. You need all 4 codes AND control of a Silo to fire. Once armed, the [INITIATE LAUNCH] button activates &mdash; target any territory on the map. A nuclear strike instantly vaporizes ALL units there, including enemy &#9733; Commanders. No army can block it.<br><br>3. <b>COMMANDER PHASE</b><br>Your &#9733; Commander is your primary survival asset. Move them away from front lines and use AP to scout fog-shrouded regions for hidden Silos. A Commander left exposed on the front line is an easy target for assassination or a nuclear strike.<br><br>4. <b>MANEUVER PHASE</b><br>Keep your &#9733; moving. A predictable, stationary Commander is one missile strike from a game-ending loss. Never park your leader in the same territory two turns in a row.<br><br><b>WIN CONDITION:</b> Assassinate every rival Commander (&#9733;) by nuclear strike or conventional combat.<br><b>LOSS CONDITION:</b> Your Commander is killed, or your faction is eliminated.<br><br><span class=\"help-nav-item\" data-page=\"page-presets\" style=\"color: var(--pip-color);\">&gt; BACK TO PRESETS INDEX</span>",
"page-preset-custom": "> PRESET: CUSTOM RULESET<br><br>MECHANICS: User-defined settings for Economy, Hazards, and Units.<br><br>INSTRUCTIONS:<br>1. RECRUITMENT PHASE: Check the 'Current Mission Data' page in the terminal. If the Wasteland Economy is enabled, you must use the REINFORCEMENTS slider to buy units with Caps. If disabled, you receive free units.<br><br>2. COMMANDER PROTOCOL: If active, you must protect your ★ icon and assassinate rival ★ icons.<br><br>3. ATTACK PHASE: Play according to the specific hazards enabled. If Scorched Earth is active, prioritize capturing ☢ icons. Use your Action Points strategically.<br><br>4. MANEUVER PHASE: Move your units to react to the board state. If Radstorms are active, prioritize moving out of GREEN GLOW zones.<br><br>WIN CONDITION: Varies based on active settings (Total Conquest or Assassination).<br>LOSS CONDITION: Varies based on active settings (Total Elimination or Commander Death).<br><br><span class=\"help-nav-item\" data-page=\"page-presets\" style=\"color: var(--pip-color);\">&gt; BACK TO PRESETS INDEX</span>",
"page-tactics": "> ADVANCED TACTICS (Database Index)<br><br>Select a subsystem below to review its advanced operational parameters:<br><br><span class=\"help-nav-item\" data-page=\"page-tactics-fog\" style=\"color: var(--pip-color);\">&gt; [01] FOG OF WAR</span><br><span class=\"help-nav-item\" data-page=\"page-tactics-commander\" style=\"color: var(--pip-color);\">&gt; [02] COMMANDER PROTOCOL</span><br><span class=\"help-nav-item\" data-page=\"page-tactics-nukes\" style=\"color: var(--pip-color);\">&gt; [03] SCORCHED EARTH (NUKES)</span>",
"page-tactics-fog": "> ADVANCED TACTICS: FOG OF WAR<br><br>When Fog of War is active, your satellite uplink is degraded. Territories outside of your immediate visual range are shrouded, and enemy troop counts are hidden.<br><br>SIGHTLINES: You can only see the status of territories that are directly adjacent to a territory you own. If an enemy is two spaces away, their strength and ownership are unknown.<br><br>ACTION LOG: The Vault-Tec Action Log is also affected by the fog. Battles, troop movements, and events occurring in hidden sectors will not be detailed. Instead, you will only see vague reports of 'Sensor Anomalies' or 'Radio Static'.<br><br>SCOUTING: To reveal the map, you must physically attack and conquer neutral or enemy lands to push your borders forward.<br><br>PERCEPTION: If you find a Perception Bobblehead during a Wasteland Encounter, you can use it to temporarily lift the Fog of War and reveal the entire map for a few turns.<br><br><span class=\"help-nav-item\" data-page=\"page-tactics\" style=\"color: var(--pip-color);\">&gt; BACK TO ADVANCED TACTICS</span>",
"page-tactics-commander": `> ADVANCED TACTICS: COMMANDER PROTOCOL<br><br>If Commanders are active, each faction is led by acommander marked by a ★ icon, which completely changes the win conditions.<br><br><b>KEY RULES:</b><br> * <b>Win/Loss:</b> If your Commander is killed, you are eliminated. Be the last Commander standing to win.<br> * <b>Mobility & AP:</b> Commanders have 2 Action Points (AP) per turn to Move, Duel other Commanders, or start a multi-turn 'Conversion' of enemy territory.<br> * <b>Defense:</b> A stationed Commander provides a +20% defensive bonus to their territory's garrison.<br> * <b>Healing:</b> Commanders slowly heal on friendly land. For instant healing, use Stimpaks.<br><br>For more information on Stimpaks and other items, see the <b>ITEM DATABASE</b> from the main menu.<br><br><span class="help-nav-item" data-page="page-tactics" style="color: var(--pip-color);">&gt; BACK TO ADVANCED TACTICS</span>`,
"page-tactics-nukes": `> ADVANCED TACTICS: SCORCHED EARTH<br><br>When Scorched Earth is active, the nuclear arsenal of the old world is back on the table.<br><br><b>THE SILO & CODES:</b> To launch a nuke, you must control a <b>Nuclear Silo (☢)</b> and possess all <b>4 Launch Codes</b>, which can be found via conquest or Encounters.<br><br><b>THE IMPACT:</b> A strike takes 3 turns to land. The initial impact is devastating and cannot be defended against:<br> * <b>Ground Zero:</b> 100% of all units (including Commanders) are instantly vaporized.<br> * <b>Blast Radius:</b> All adjacent territories suffer 50% casualties.<br><br><b>THE GLOWING SEA (ATTRITION):</b> The territory is not permanently destroyed. Instead, it becomes a 'Glowing Sea' with severe radiation that lasts for 10 turns. Any army moving into this zone will suffer <b>80% attrition damage</b> at the start of the next turn. This damage rate slowly decreases as the radiation cools.<br><br><b>PERK RESISTANCE:</b> Perks like <b>Adamantium Skeleton</b> and items like <b>RadAway</b> will reduce or negate damage from the radiation attrition over time, but they offer NO protection from the initial blast damage.<br><br><b>DISRUPTION:</b> You can abort an enemy's launch by capturing their specific origin Silo before the 3-turn timer expires.<br><br><span class="help-nav-item" data-page="page-tactics" style="color: var(--pip-color);">&gt; BACK TO ADVANCED TACTICS</span>`,
"page-legend": `> MAP LEGEND<br><br>The tactical map utilizes standard RobCo cartography visuals to denote high-value targets, hazards, and unknown variables.<br><br><b><span class="paw-icon" style="width:18px; height:18px; margin-right:5px; vertical-align:text-bottom;"></span> (PAW PRINT):</b> Dogmeat Quest. Location of the "A Boy and His Dog" special encounter.<br><br><b>★ (STAR):</b> Commander. Represents a faction leader. Highly lethal in combat. Target for assassination.<br><br><b>☢ (SILO):</b> Nuclear Silo. Capture and hold this territory to enable Scorched Earth launch protocols.<br><br><b>⌖ (CROSSHAIR):</b> Nuke Target. Indicates a territory currently targeted for an active nuclear strike.<br><br><b>? (QUESTION MARK):</b> Fog of War. Denotes an area shrouded from your sensors. Its exact troop count and ownership are completely unknown.<br><br><b>GREEN GLOW:</b> Active Radstorm. An environmental hazard zone. Any troops remaining in this zone at the end of the turn will suffer massive casualties.`,
"page-history": "> HOLOTAPE ARCHIVES<br><br>Select a holotape to load archival data on previous Wasteland simulations:<br><br><span class=\"help-nav-item\" data-page=\"page-hist-f1\" style=\"color: var(--pip-color);\">&gt; FALLOUT (1997)</span><br><span class=\"help-nav-item\" data-page=\"page-hist-f2\" style=\"color: var(--pip-color);\">&gt; FALLOUT 2 (1998)</span><br><span class=\"help-nav-item\" data-page=\"page-hist-ft\" style=\"color: var(--pip-color);\">&gt; FALLOUT TACTICS: BROTHERHOOD OF STEEL (2001)</span><br><span class=\"help-nav-item\" data-page=\"page-hist-f3\" style=\"color: var(--pip-color);\">&gt; FALLOUT 3 (2008)</span><br><span class=\"help-nav-item\" data-page=\"page-hist-fnv\" style=\"color: var(--pip-color);\">&gt; FALLOUT: NEW VEGAS (2010)</span><br><span class=\"help-nav-item\" data-page=\"page-hist-fshelter\" style=\"color: var(--pip-color);\">&gt; FALLOUT SHELTER (2015)</span><br><span class=\"help-nav-item\" data-page=\"page-hist-f4\" style=\"color: var(--pip-color);\">&gt; FALLOUT 4 (2015)</span><br><span class=\"help-nav-item\" data-page=\"page-hist-f76\" style=\"color: var(--pip-color);\">&gt; FALLOUT 76 (2018)</span><br><br><span class=\"help-nav-item\" data-page=\"page-index\" style=\"color: var(--pip-color);\">&gt; BACK TO MAIN DIRECTORY</span>",
"page-hist-f1": "> ARCHIVE: FALLOUT<br><br><div style=\"display: flex; gap: 15px; margin-bottom: 15px;\"><div style=\"flex: 0 0 100px;\"><img src=\"data:image/png;base64,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\" width=\"100\" height=\"140\" style=\"border: 2px solid var(--pip-color); object-fit: cover;\"></div><div><b>DEVELOPER:</b> Interplay Productions<br><b>PUBLISHER:</b> Interplay Productions<br><b>RELEASE:</b> October 10, 1997<br><b>SYSTEM:</b> MS-DOS, Windows, Mac OS<br><b>CPU:</b> Pentium 90 MHz<br><b>RAM:</b> 16 MB</div></div><b>DESCRIPTION:</b><br>The foundational title that established the retro-futuristic, post-nuclear universe. Operating on the S.P.E.C.I.A.L. role-playing system, the game follows the Vault Dweller, who is expelled from Vault 13 into the irradiated wastes of Southern California with a strict time limit to find a replacement Water Chip. The journey escalates from basic survival to a desperate war against 'The Master'—a grotesque mutant seeking to enforce forced evolutionary unity across the wasteland by transforming humans into Super Mutants.<br><br><span class=\"help-nav-item\" data-page=\"page-history\" style=\"color: var(--pip-color);\">&gt; BACK TO ARCHIVES</span>",
"page-hist-f2": "> ARCHIVE: FALLOUT 2<br><br><div style=\"display: flex; gap: 15px; margin-bottom: 15px;\"><div style=\"flex: 0 0 100px;\"><img src=\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAF0AAACBCAYAAACijbaXAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAGHaVRYdFhNTDpjb20uYWRvYmUueG1wAAAAAAA8P3hwYWNrZXQgYmVnaW49J++7vycgaWQ9J1c1TTBNcENlaGlIenJlU3pOVGN6a2M5ZCc/Pg0KPHg6eG1wbWV0YSB4bWxuczp4PSJhZG9iZTpuczptZXRhLyI+PHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj48cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0idXVpZDpmYWY1YmRkNS1iYTNkLTExZGEtYWQzMS1kMzNkNzUxODJmMWIiIHhtbG5zOnRpZmY9Imh0dHA6Ly9ucy5hZG9iZS5jb20vdGlmZi8xLjAvIj48dGlmZjpPcmllbnRhdGlvbj4xPC90aWZmOk9yaWVudGF0aW9uPjwvcmRmOkRlc2NyaXB0aW9uPjwvcmRmOlJERj48L3g6eG1wbWV0YT4NCjw/eHBhY2tldCBlbmQ9J3cnPz4slJgLAAB1jElEQVR4XoT9d5xkWVbfi363OS58pM/KqizbXdXVvnt6LGOAmWHgIhj8BQFi8AxICOki6V7pSi305HhyH8QTAoG4EgIxmMHMDMN42zNtpqdtdXf5qsys9BkZPo7be98/dlQ38LnvvfP5RGZEnIgT+6y99trL/dYSbTfghRc33M2uxB8WayAMNSIKAYWSYCwoACkAh/QfRUqB1CBRWAy2dIDA4tBSYFGU1iAlWAtYhwEcBkrrL4IFA6GSSCFBBSBBIqYjctOxGSQKEEzynLIsAdBaorQmTXP/DQF+FKABhSUzYKZXwfjflEoijEUrSaAkWmukkkgpsYAOI8I4xN4mjZSABAXWQDkdv7UGSoctLaUtybMCDeDAGChcji1grmK56/V3CdEwt/jBv/EL7s+fGhMF0n8SgdQSIaQfurFYHAIHQuKcRVqLQIAQCE8brHPgLALnryIVTkjc9HPgP2uFA+fAgDMWMChrEc4h/K+8ek0nBU5opHA4LDiHdAprSoywgEIoQCmsdQgkCIG7PRZnEabEGX9RJ/14hLDTH3AoPPPoUGGd9p/DobQCrbFaYoUEif+vJFaAsxZhLFiLMM5PprFY4+mDcVgLzpVkmeEN97T5nT/9T0KMdy+6//X7/ymvrAcEocQJkFOaOGPAWbDGE9gzKoLpgKf/hGd+/1I4/0IAaKyUCOUnzxNS4KRFIJEOrHU4Y5FYsLcnziAdgMOJ6eT5n/Kv3XSMUoBQOOHw/KEQQmCnMyasfZUw0vkJE4CV2l8Ai3PTMQFCCpyTODu9j+kkWQlOTSdMKZDgnEM6hzAOKQTWWYQDZfG0mr521o/cWMHxecMf/c4/QtYqNREFGmdvE9hijAFjEHZKcMd0PRlEmSOMQViDcAZ5m+unz5XzREJKkAKhJEJLnBbTgYOV/r+R4LSAQIFWECiElgitcIEGHSClAmERYirK8BR3WuLE7RnwhPNixeGcBWH9OefFglMKIwVGOMD4yXbTVSEBJRBS+RWuQEjPNxKHEg4pBUpCgEUbQ1AatLVITxyk8JNmtcMqixOeQVDgFKAlqbEM8xJJmaIw4Bym9EvC87LBOYuwDuEsOIuzBjGVy874G/KL3mFh+uy2gPIjF1J4EaElVgtsIEBJPwFKYJXABRKr/XtCK4TWnlBS+OUsvBy/LXwETEWR8wzpPOc5689J7HSl+IngNpdqiVMaJ5W/plAIqT2xpfaUxiG19N9RnuPldA5x/t6lccjSIgqLKB2itMjSnxOvUtv/c0IgECgpGAxHbG11kLmUrnSALV9djtLd/oaXi9ZanPU36q82fUwPBwghEMKLJy9AHWJ6z24qbpxSOK29/FXTpaolNpCYQGK0xCoBUiK1AuVXi0NOye13FmHddLylFxG3CeIMzlpwYEvrJ0EKPzYJSipQGqsULvCTgBJ+8xbgdy4wAqxWoKYrFoGyxstW66aM6SdClQZZGjAlqrTI0iG9DP5Lh2M6pwpkOkjJxikIicQhhMXZApMbTAkmt9gCTOkoC4spLGXpV4XfuEBK6a8oPWcLofwqcG66oflftErhpCe4UQIbKKzWWCkwWmH19H05lctSIKRXHZwDabx8dtPNCuumWzZ+g3GeaWxhwRic9dzvrAMnXlvu2q8uowVGSKwQmNvyWyvsq0zx2oThnCew8TMsrVdNRFkiigJhpues3+j8yvDc6RnRIhGEWiJ1GKLCGOEEzpZQGlxhWD4mWD0rWTmfcPRcwNFzEav3Njl2T5Xj52PO3F+n2ZYY54mEmmoaeM5wwg/Yazd+5oX0NyCkRE6X9WsP+SpnecK/psngLHLKxXbKyfL2MnZezkvnRY10DonfA8BrRJ6LwTrh9xE1HZ8SWAVGCYT0k2ylfy4cfjKUoJzel3QCaacEd/5hrQFjEWXpV9mrou+1w9NeYK2jNBZZj6SoaPBsbbGlo9YY02htIctXmJkbE8irNCvrrJyf4+j9x1h9YJVjDyzSWhIYv79irN+prXMY51Ulg6AUAuO83mutw1gx5XaFFV7eWyewRmCdxAqFRfjv4m/cCUnpnN/8Sk/4V+/b+Nde0ZI4z1b+d4zXs8qpvmUdOORUSgjyEnJryYQkRZKVYKzCWL+XGPXa6nQIzO1rGLw94kA56fdx4/yeVxpc6Vedp/h0N3ICiUAqkHvj1HXTAiklQgicdcQ1QZHl3Lh8g/2N6xzudthdu0V/+xaD/T0O1m+wceE5RodXCYMSrQRKSrRWBIEmDBRBKAm0ItAaFQYoHRCoAK0kCokWyn9HSEIhiZQkVAItQWuF1gqpFVIJVKCQgUZNr6+VQgcKpaVXfKRAa+UXirAoJQk0BIFEBQFaCwItCEJFoBXh9PxsCxbnQuaalnZLsLoE964OqFat182BSWkZFY6JlWROkzlNbiWlE+R5RpblpJmh8Bzi1VLnVVFrHWXhMMafKq0hzwyif+tl99d/4B9zaV0TYDCFozZbcOKBOqIoCSoJ+7fWmOzvsLw4SxxoJAZMgRSCSlLBlAXDcY7WEWGgkVKTlpaidOgo8RaoNSRxjJCC4XAESOIkQYcxFkE+GiLcBItXE5UoCaSiFCFpbojDkDCp4coJk1HPczkCghphpU0QJiAsk8kEgDAIkEqT5zlZloJUfmMVEqU0pHtEbgfVPoXrr5Max8KZ+7n10pOk8SqWBrPNKhU1YKkxoR2NcOmIMi/pjQp6WcitvYzdvSFaRYwKRWc/wjLrDSoslbqm0pDkecmwJ6mGQ37rN/43RHfjgvu+H/gnXL0VoV2BLSFKCs59zTL1+WV2r7/AcPM6d6+EDMdjRqnCyQAZRSgdU69WkM5RWK8/K6ExtiAKE4rCMBqN0IEmjiKssWjtDZjCgFAaIRTOWpwpGI+6JJUmaVagZImSgnFuMCIkDCO01l5DKQucs4RRDCoiiBpEcZV03Gdnf5tapUqzPeP3g9IQhgGTdMBoNMSakkBJTNanOrNAtHweMTlkMhkxs3oXu9vbtOohZ+t7vPWUZbEyIEyHjPcc+13J3mBEWg5JVMrYDrjWcWwP6uxmEVujKtdvOpypMXekTWMpxJUjtAjo7Cq6u7v85q/9PCLvXHXf89f/MReuCrQoccYSyJK73jKPCEt2Lz7LuaUqt7Z2GasZ3vmeb2H1zF3Mzc8w22rhCMjMhCIfUVhDHM+w0IpoJnWcCNnZ26dRrWJFyGickiQBaVGSl5ZQa4QrmAyHdHqHCKFIKgnNWgutFcPxkO2dDsNhwezMDAJDbgxSRhhTYK1lcX6OPC3o9nrcWrvMaNTnnnvu5u57zlKpRmSTCcPxmI31iywvzjKedOl3NxjsbPL0lTF5+xxKBzhT0Ovsc9eZKt9475CTbMNkAKMGn3tM8aELN1hz+1zb2aczKTlan+X7z4TcOX+D59YOeXErZnLsPWSqQm9ng9mlo5CPEFsv0R1aRtFJzDjjl3/x5xCdWxfd9//gP+bqhkYJC6XDlTl3vWmOMr9J0FtjtlWnsfoI737PN7DfM/T7Q979de9gY32Dj3zso3T6u365y4D3vvdb+Oavfedf2Lv/8jFKC373gx/i0sULZFnJW9/2dcSh4PlnvsJgbIijhJ/8sR9gZrbJMPXqYZEXaA27+2PCMMQA2aRAYJmfTbh+/RalKTFGcPL4CosLDWyZ8uJLr7C5u89jT3yJxdkGP/1jP8zGrUuMBh3216/yySevUrTOIMOEdNDl7Q8u8k3vmCFmCzrXKDqKX/nNGv/hT/8QcewK86EhTSUZIetoouAEv/6IIhLXePZan2u9Btf1fZC0EEVOO5TMZescdie83G0SKM2v/9I/RocKAuG812/q2HAohgd98myfY1VFrwj4hje/hQcfegMf/OCH+PQnPs2H//iDvPLSK6yv3SQrxgCcOfsAP/+zfw94TUcXt/0gAkCwubXDk196jN/+r79KmNS4554HKfMJ1y/f4NbmHj/6Yz/C3EwDZwyJNDjpqASKorAcmY+nK6CkNlMljjRZlnPnyUV0EFA6gZSCQDk+/+Wn+U+/8ms89/RTIBS/+mu/ShQ20KqGYsT2/oiRqBEJwbh3wLve8ADf8vUPg70G+Rq9/oS/928jPv3lLVbuizg6fxdztdPs7jzL2vomDQHPBVt85GCFnzs/y1a3pD865NraF7mWLVBrz5E1anRslbKMMQgoAC2QYwNj660ygfcQIhXd3UMoRtTqLQ4Oc+ZbIU89+wKf+szneOXiZZ756gv0+kNUEILQAJy96x6OHVl6latfJfhf+Hv18k3Wrl8jK3JO3nGOuaUjXL95k89+5lPs7u7SmptHCuGNISnBQVFYhpMSpKIwgkY1RCuvjiVJQr1RIwgD2vWYWiUABDdubrB+8ya7OwcsLB7hnvN3AzC/cJQ4CjjY3ycwGZP+Aa87e4K/9rXvAJow3mHn2cf4O//Hs1STNT7wS2N+6x/czz/9rof5mtP3cvfd38vSQpOIklMy5+Z4Qlxpc+JIg9WFCmdnLe1yk2svX+DaxVcYpEPy0OJkSFloimyMtHmOK8qpNuBpoyRMhgGt2gyD1LC0uECrMcMLz13mYPeAbrfDI296M7/0X/4r//ZXfo1/9Uu/yr/89/+Fv/G+H0R7+k/dAgLrHJO8oCwtZWnZ3j5gc2OD0hgeevj1LMzPc/PaZa5fvwjOMdtq4LxxT146CiMJAkUSKUzpjZ4oDAjDEKkUAFop4lDjHCihKIuCq5eu0DnYRynJ617/ZmZnmwDEcUKWFTz5xJfYvfI0J+uG977z6xFSYgaXcTc+zVeeusG9d3b5d+874KHmTVbz65yqrvPulescDWapNhcxWMzEoA4mCAnVWoWluRonF0PuXNDMRJat9Vts3LhOf3eHbCIIophAaeQkzynKzHsS8dYaUmBFnUq1TW+cc/RIm6yEq5de4bHHPs32zgaVZp3v+NZ38pM/+F38/Z/5Yf7B3/5Rvutb3kUwNdtvH0pKwihAKUF/OGJ9Y4ODg12ioMKdd56ne7DPlYsXEDLg+Ok7WDm6jAC6w5JRVqACGE6GbG2s0azFNCrRdAX9FecGUwsY2N4fULiAtZtXGWcTHnn4oVc/ZUtDrVbn6OIi+aDDW17/eprNJq7okb3yRwyuv8Rb7wr56XcljHc69Hf69Dojugd9tNtmIdyiKHKEMGQWloIAazKMhUolYnE+YbYqmG8o4khzsLvP/v4hUtXRUqJ1gF5u15ipJWx1hNdfcRgpqCQlUTCirFQ4f9cdpCZhZ2cXKRQPPPwG3vq17/COsb9y76PScmVzg8PDHt3NLsIpHrj3DCeOL7C9e8jNm5c57OyyfOQUJ4/fwfqNG2zfusXi0jEeeeObaDRjLt/Y5ktfepbd/TWKKKcoLW+490HO3XWWw96AJy9fJa5FTAYjWtUKoQsZj0uW55rcunULI6tM0pTSWM6fu4u9Toc/+tCf8Y3veidFOUFHAd/2He/licef4o5zfkLyzS/RX38K4VIqOmOSZTjjsMJSCnBCkaUDctNhfmYVTZeaWuaNdcjLMXnhrfFaEjDX0iRBQa0a0jkYkaYZbSRFWTDOJmipY1Dhqy5agaC0knolR4uM++6+j/P33M+VW7t0OrtUqw2KEk6eOo76CwS3xvD4cxd57Mknee6Jx3nhmedACKRKeNvbvo5fePTnuLW1zfrmGlonPPjGN7FwbJHHn/g0w8GApKY4fcdRnn3hIp/41Bf58mc/wZOPP8Z9r3sdR5YWuPCVC5w+dQqM4NN//ik+8/E/wUnNP/mFX2C4U/D4E1/gxWef41u//TtIEkWZ5Tz40JsZDbv8x1/+d7z//T+FVopev89wNKA6s8h7v+fbac00sNkm4/VPkpd76KAgzwtUmXtPpQhw0qGkpD9SPP7ic8StU1Rm38Hmcy/zwLsEE+tFpzEWAcw1Q5LYEIUOFWiKLKXMhrRaMY1WHdkb9BlNxj4058TUJ2yoR0OsgTOnTxKGFS5depnNW5sMh30qlYhQJTzz0hW++spVHn/xIp/9ygU+9KGP8K//0d/jqS9+kfP3PMDrHn4dnb0bfPYzH+GJp19ib2efrfWbaK1ZPX6CvJhw7colhqMRMwsLxJUqf/KhD/PffvXfMzjc5T3f+K18zdu/Hi0C2kmFp554ht4gp7+9yVNf+AKRDVlozDPJxnzqY3/MSy8/w8FBj/W1W0yGPSbDlIdf9xb+2v/yXt7zzncBlsmwC8agtaZe7SPty+SHH2fUeRFXjiAbYdIUU5YYU2DKDIoxZBM6hxnX9ydc2/4iX358h/ujjNlWxjgzWGs84wpHNRa0EgiUJAw01pa4ss9onNI5GCCrEUTaR3IFEuckoTbUa4ZJZqi3muQEXL58ib3dLaRUdPY2+aVf/Of87z//9/k3//wX+b9+47e5ubHDZz76Rxwc7PHI29/Kv/4Pv8g3ftM3cfdd9zFKRxwWI8bFhM7+LhY4trrKaDCis7+NsSXHT54mLwVf/Mxn6R12WFhaYmFplk9/5EN88A8+wBe/+AUGvTG3Njd5+snHSJIq3/CebyWsVnjq6c9w9crLvOlN7+Ds+Xupt+a5fv0q129c4k1f8w7e/5M/werRI0yyCUI6giBCmBKZ7+LMZYrOc+S9DnYywYxSbJZhiwJXlliTYcsMm6dc72ioCfKyzWwh+fbXG4Z5RlkarC2xU4dfFAhaFYFSPmhvnSErukRa0KhESBnW0EGMcAaBobSOasXSiDNOnVhlZXmW7Z0+m1vbDIZ9dKC4euUyf/yHv8sXPvtJPvxHf8j+TodyXJBU25y79/W84Q1vI1Ihjz32Oa5ceZmTd5yhtTDDxuYagQ5pz85TbTa4euUlrl55BaUDHnzoEcbDIdsbN3BIqq0ZiiJnc/MWYRiRTQrOnLuLtVvXuH71Kgvzy5w4vUoxKdnZ6LBy7BxhmHDsxCIXL32Vp596gtN3nuftb3s9Z04d8e4HJ4miBKlCQqUIih1c/zLFzk3K3ohyklEWOWXuCS6sIdCgQ0M50VybVKg0I/a7Z/mmc/scWx4zmhTY0vhImjXIqQ89DkBJh1I+1mDtCOcslhA57vUZD0d+Q3TgnKRZyQjciJXlBQa9EYeHIzr7B4RhRBhGvOVt7+E7vvvH+ZZv/wHe9u5v4l3v+Truu/cO3vczf4+/+w//FbMLR/n4xz/F41/+IpevXuSuO88yE7V4/smvsLFxk2arTVKpsbGxxqA/YHnlJHfdcx83r11h7cZN7nnoYY6uHuMPPvABisJSq9S59+HXUa3VuXHpKuPxBALN/OoSO5s77O3tkE7G3PPAQ/QnYy698iJxpc43/7Xv4sTqMgBKScIoIggrSOGNN9O5iVl7BnOwTZ5mlFmJtVAaS+EsTlhEALVmwHqvzvOdknbjjdx9eo533XuL3shgigJTFAhXEkjIcoeWliiEQIlpxooPEI1GPQ57PfTcbEt8d7vhru+UWCWQ0tGuZwgdsrR6HJ1UuXrtArs7mxhT0p5d5F/8y3/BvXefJc9TijKn2+/yiS9/iU9/6KO8+NWn6Bx0sNbQ6/VoNNq87pE3sn3rFtub68RJlWPHj9NuNbh44QWK3HDy5B3UqnWefeYpXv/mt/J//KNf4Olnn+F9P/u3UJHmwtPP8vAjb6Df7XL10isURcnRO48zu9DmsWc/z/UrF0gzw/HTx+n3DxEmoNWao1KrkETBlOgKnCGMEsZDH92ywwHG7mHzCXnu0zUQAh06rLEYKdB2QsVW+PATmi9dvc475t/Eu1qfp1E17PY1BkcYGOoy5g+ecEhleMtdkkBLwsBOY6YGJwQzrRbHjswjX75+y61tHqDldFAiR8sRKm4x14jZ2rjE1SuXOOz1KMuClWMnOHvHMaQwKGCu3eCLT3yF3/uN/4s/+6M/oHPQ4+3f8M288WveTpxUefNb38YbXv8IgSqpVGocO3qaBx94Hf3RPus3bzBOhywsLdAf9LEovvnbvpNu9xAhNN/1rd/O2x95Awc7e8y05khHI65duURSrfHmt7+NMFBcePEZNjfXWDl5kuUTR1m/fIm1m1cYT8acPHl8qlt5I0QHGq1ilFQIXcUQIcwQGfpgyziD8QjyTJBnkjQVlKljo9vky4M+ulpjKb3CG5e2yJ2gFhfMhMC4yv94LuCXnu4grEBLyzj3gRZjDTrQRHGDcebY7w2RdxyfZ2WxSWkMrhRUwhxbDphptqnGIetra1y7eoU0zRBCce/dd6O1otPpsb+/x6e/+DjPfvUF1q9d5cTpc/zLX/5P/Kt//+84c/Ye4qhCuz3DZDLh5o1rPP/s03S6e8wtznHhhefoHR5y+sy93H3fQ/T7HV5+/iv8/v/4Lf7u+9/PY5/5OJtrN/nX//Sf8crzz1OJQ8aTAfNzSzRbs5w5cZrD7SGbNzdIkgZnzp6jVqlx4blnWVu7ig4Vp0+tvqbSWkeW5QQ6pCgLsqJk6GZIxxtYOURoyI1jlFvGI8hSwSS3UET87udGHFS63HPffbw9XaM5cugi4TBt8vGLMf/hiTEf6vawq0doJhGlcWx1HUXh01nCQBEFdUxRUqYT5M2DlJ2+T8NwxtFolARhwOryLFk6pDMQjCYlUaRptWZ54IG7SYd9drdu0uv12dre5PIrz3H9+lV6wyH33XcPF196gaeffIzz99zD0WOr7HZ2+MLnP8tgMGL5+ApxLWT7+jqDbo8sG1GtV9m4eYODnW2uXHqJwqS87pGH+Z3f/m0++9lPcmz1CNIVXL10iTzPOX7mNEvzR8nHE2bbLcZpysrSCoe7O1x8+QKVpM0b3/xWTqx6P5A13vlmSktRWpyV5FmfIj5Hmkko+2hpyAtIC8EotwxzR24FNw8i/suHNthen9B1uzyxPeZXnqnyHx4PePRLKf/vl7p8IR0Qrt5Ds/6NzFQtt7oFm10oDOS5RSmFsxH1SsLCbBPZlCVVV+CswGGIgxG1epO5dp2ShMzG7B8ckMQJi8tzNJIRnZ2r5OmY0mYM+yMOdnaYmzvCe979v3B0boGLL19j0D3k1q11ZubmGQwHvPDsc6TZmGOrRwi0ZPvWBnmec+TYCvV6zNNPPclkPCbLU9757nezfmONj/zJH5GlKXedO0eZpqwcWSKdDKmEIXUV8PLzz3L56iVOnzrFqdWjvPz8M1hjWT1xkocffJhWvcJ4PGKSjpESglBjjaXZWkFJyVDdyUTeDdkeSWWC0o6ydKQFTLKSEM1Hn7YcxIIj7Yjx2nP8/nCL/763zxcODvjS9pD9rmR0GGJeGPJt9SeYXxzzhUuWSSlIM0dZWqQMESRkZcEwLZGt2Rka9QbGOIKgpNEOiaKEUFn6w4LBqKBeb4CFO+++k5Uzp0ll1YfdDjfZ3dmi2+kglcBZw8c++gk+9Wd/ynPPfZWbN65RjQI2r1yj3Zxhpj3LYrsJecH62k1GkyGtmRZJGHC4t0+Wptxzzz0szs3z4T/+A/JsQqvV4o1vfD37e/t88uMfYXd/h3vvvZ/ReMDH/vxPePzLj3Hu3L0sLi2xt7/L8spRhDS88spX+H/9q3/OU09+mWqlgpTSp4PgiCstnKiSFwWj1ncwLqskyYhWswRnyQufypEPI57uB5x9uEl9RrMZx1xor3IpuoNdM8tDScL7z2n+2Rs0j77xEt9y7jk+90rKhVsCawXdfj5NBVBoAkxRYMsJ8qA/pD+Z4JygVnWEkePY8hzzi/PsbF9h/cbLOAelcxxZXubY8kncYB/rIiZpyfrVCwxGI7Z3NvnYR/+U//TL/54LLzyDc44HH3mQd7z9XlaPLnDkyFHm5uY5unKEjWvX2NraAuDsiVPce/YuFo+sMr94hPseeITPf+6TTMYjhqMB7373u/nGb3wP23ub/OmH/4R+r0+vf8iHPvwRyhK0DOgOdqi2Ioqy4Nlnv8ra2nX+4Pf+Jx/9yEeIooit7V2yPCcINAjHztYNBoMhJh+TJneRz38Phc2otTPqDZ+UWRGWa8UCL5xvc6Ve4Yuuxp57iNelZ/k7Tcm/v3fCL7xtwnvvGXNuaQKy5OMXLF+86JCBZP8wZThK0VrhbElWDEkqFRozDWS9EpNEEQgfOC0G29x59jQ6DLhw4RW2tnaxNiOMNO1aQDk8IKFPEluyrM/xM3fwxre+jWZrhsPePqVynDh7nhOnT3HnnUe5ePllfvf3f5/Hn/g8tXqMdYJPfvYTZEWGCgLuue8eHn7obr7+ne/gjvN38dIrL7Czs0N7ps0Pve+H+Tf/5t9yfPU4Z04d58yZUwSh4vlnn6Q0Y9qLs5y7927O3X2Su8+eplYJUcpw/p7znDp9mtXV44iy4I//4INcv7rmY7NplzI7YG5hkVp7mdGoR6/+bZTNdyNFj8ZsQaNpiFTEU5v3snWpjX2+z9dtOP5VuMa/PPslvufsRY42h4wmBftdw/qO5bMvlnzpElihGY0MuwcTtJYEQYhxBaXrkWYZh50honPrZfd93/cPuboZcffqJktzGT/2w3+D7uEeFy5fIU8nmGJCa36VSrPFydNnmYtjrGpxY2eXnd09nr9wiSuXL3HH6aOcv/s+4lqNRgIz7TaTXLG736UsU5JqwsL8Ca5eu04UxeR5xiOPvJGTp0/y9DPPcPXiRZqNCsP+IXecvZf7H3iYShyTZymH/SGPfelT7O7sUq8mNNrzDNKcyajDeDLmHV/zbkbDMesb16m15hkPU4TNWVmcR0nH/MIS7bk5untXycY9KrVZDva67Gzfoj1zjEilcPMXUb1PgU2YDJb5r5+6h3R0ja89M+BIW+LCMWMHuZEIB4Ox4fp2znO3DNcPNSKQjMaGm9tjHJY4SQiDkEa7hQ7maQez/NZ/+0cI27/pvvN7/3cuXC25/8wW5443+aEf+WH2Nm+Q9dfYO+xT2ISVIysMSoiqsyyEJWMbMyq8y7O7u06zkhDEEZVYsbKygAo1QldQukoUVQirNdABxpTkaQFCEScJ+/t7dPpdhsMhR5ZmoMgYDQY0Z46QZiXOlDgcOmxSSSzWjMkLv2QP9vfY2tmntCVRVEdKyeLSIoPRkMl4wmgwRCmIQ0UYxdSbCcVkSBxqlArY2tjksNNl+egqlibzczMEu7+H2P09ElWwuRVRDALGqaAzKcmNwxpIC8f+0PDSWsbLO45hESKlY5wVbO6lIASVegUtFXcsVlk+ssSFbYhszAd+698g8r3L7ru//x9xYc3x0Ol1Hjge8s5vei/K9ehNHKp6gqhW4zOffRxhS8qipD8sOHakznCQEkUBo8ww26oglSAKLDc3+1RrNaJQIfC54ZOsIAoCSiTOQbUakBcOYx1RpHEW1rd7LC82UMIyGORUE4VDY62h2Qq5tXWIVop2Q5Mbx3gwptWMfU45oIQjy33Kd5qmNOsxWzt9stKweqxFr5dRrURY45Ba45ylXo3Z3dtnbuk0b37z13Pp8ibPPvkhlvkMZxeHFCPB3q5j+wD2+o7BxDLJBDcOSvbUMU4+8BY2r6/z/FceI03HhIEmjhMsjiSp8Po7F0mCgK+s59TjGh/8rf+A+smf/NFHf/cPP053GFGWE1pJn91rz3L9+g3S6nnS7YtsbDzLr/7O53ngTMz/+N0/4qXrHd7zNXOMhnu4osPh4SFROERqwZWLT/PLv/kZ7js7h80HmKxLOjxkNOpQZl22Nre4dWuDYXebfDJid/M6M3XHVx7/PP/5v32Gr33jIuVoizztoV2Pre0dDvY7DA5u8Iv/8U+568wCdx6VXL2+xcUr2yy1Df1hgTBDhqMCV2bgUgb9CbV4wj/7N79PENa47+wsWzsDpBlw2J1QDQs6h0PycY9f+a8f49677+NIcsCnn3yRjz15wEe+orm032J3UqUzhr2hY6cPgyzmYOy4uDlm5sx9vPUdb6bI4WDUojlzjPbCHVRbpzGlIa4qaC5ydX2ALRoEUYN3f9PXINM0pZhkBBr2h/N89uU2f/4sfPJ5wWh/F2n2+bPPXuHes8c5caTFzqHjHW86Q6gVJ04co95osbi8RFKpUWTwqS/c4MTqUY63DcLkLM03mJmpMz/XZlTW0UrRajaI4joLrYTVlWVmG4rnLnV46P4z3H1qhjhuc//548zNzqFQrCzWefaFdVrNWd70wDJZIcknJV/zyFkmaYBEs7nZoRJXWJnTVELH+XMrXLzZR0czfPM772MwdJw6NkO7Ncu5OxY5upTQqCZcvrJOUl/ikTNtnn/sYxzu7bC+BUHtTp56yfK7nyv5k6t385nN8zzdOckzB3UuDFYY1V7HoBdy6cufoLP+EnHSIG6uopJ5ZNhkdulB4uhOBt0AHR0lqa1SZo5sMEJW45iwEmGVJQgk42Kem/272Jyco9cb0skNN3dK3vrG07x05SZRpcHyQp3f/MPnGY0mdLoTgqCkKCzjSZ+Xru7yxkfOg26SlorNrS22Dybk2ZAksjQaFapJSKA0xpU052YY5YpXruzxlrc8CGGD1Cl6gxH7fcGpMyeYm6/x5a9e52veeJ5Pf/5lnr2Yc+7cMSpRyW5nxK3dQzqDBCEFhWoxKusEgeDxLz9Ps9VmcaHugR5BCKrC7OJJ9kc1Ko02L1zc400P38f+jReYXVlgUDSxVqMpSRSEUlEWM0zKI2R2lWvXt+l1M+YXzpPmbS5dHyNdCnaCMSnWZgiTgS3RuoUwMyjdRGiJDiUqkqgf+7EffvT3/viTpCZGOoeWkrLcY2f7eY6fXOGOc/cwGWZUq7McDuHI4gw6SChyiw6q3NzqIlXMrc0+WSaYa9c5sbrM4dBgrODgcMJgYsgLgZAVmq06QaCxLqCggnGSrZ0u7UbMidWjbG736R6O2DsckeWSOA4YjnOqsebE0UUGowlzc22iKGBjZ4hzEmNKKpWQvDR0e2MOOod0exP6gwEnVucwVrG1c0h/ZOkPJ2xsHbC1uU9WlsSx5Fu/+e3EFcVzG5arWyNcNmGcwtFFTZJUydMAiSEIIkwx5mDnFZL6AkFQQemI1RNzjIYZk8wjEcU0jVoIixJe7xdCUOZ93vPuNyOe/sIn3Q+//1FyfQSNoDe8QadziTLNCIIKb3rdeU4cqTPOCqSSVJMEqTQ6XCArDFoJrDU+9UIo4ijwWodzKCEQSgEFToY48NqI8Mg1aUowBUJpKnFEOh5ihZhajwIpnIctCkk1jiiLHCG1z+bKU5QQHpbo02MoHQgMSjhKI6kkIWFUME5HRJU2w+EYLcGUKUIH2GlKh9YxhZpn6yAHXbL+0i22dmLuujNmb7/HwWGAUoAOKMoBh9tPUa2vEDfuQDjDPedq9Ppdbq5LlPauZCd8ijTlFD6ERotDfvM//33ExoWn3Q/85P/J9rhJNtpkZ/tZn2ftPGLMq3cC4zzyQSvNwkLC/ModDNPj2Cn2xwmHm8L+sCBK41FogUe/uWkqNtbjcLAGWboplMXDGz14YIrdm2JnhJmi4qyHGWL4yzgoN03oVxIjp/k2zufKCwkrS3tYO+bI+a8hrjZJ+wdsXnmaxuwy42Gfaq3KoNtnZm6WYWeD9vJxttYs+3uO1VVBt1swGGikEqD8vRxZErRakpcvpZRZwPETEUk04crlHCEr/n6VhzS42/eIQrkuv/Gf/w/kzZ1D9vsjdFDQO7iCzXKsMZiyAOeoVGPiOKQSRsRRgJKObjfDjdZYnulQSSRxBJUQ6tpS145a5KhUJUlNklSgmkjqsaAW4R8h1CJJNYRa6Py5iqCSCKqRoBE76pGlEUI9FlRjQSWBagy12FKLLEnoSEJBJZJUIqiGglosqCaSSkWQ1ARxLCjKBipYYuf6Fp21bXp7E5ypkE8m6GCBwbCCNZp0DMYtsbdpSFOBdRm7u7fAGNQU3SGFRxx2DksqcczinMIZw2iYEeqAUHvEgBIWhfXIPOlQahq68+yEXJifRZX7bF1/gjwdeFRDXmJKQ5HlpGkKAqRSSKFwEorCcPV6l87uJeJg5DcpaVHSopzxD+2Q2uvOUvqlJl0JokAIg8KghEFKixAGKQ1SlEhlQHh5KESJVBapHEoZlPQ3JIUgDDRhoAkCgZYKJR1aGv/QjkA7gsAxnMQcdGMOdnOuXdph/eoBadFkfmURR5Wd9TGzR09y5Nz9dPoJu3uGwoBWBik9Mi5QDi0cylkCackmJft7KUuzCXGUkw4Nxjh0aBFiOl5h/T1Ki5AWqQxSCxABsj8es3+wS6+zRWnKKSLDRzxKU6J1zOLqOXSS4MEjAucsk7Tg+rVtuvtXCQLrURDKIGSJFCXKFWhXoF2JIkeJAiktekocJT2BpZoSXBqUskhtUNp6Yk/f18rvGUEgCGON1CWjdI+DwTX2e5cZZRs4MUAri1J+spQ0SFkSBCVhZAljiGMII0ugJLNuROQOQecM924w2LiAdCPiwBK4nEQL6rWG35u0QUuLFiVKFQQK9vfHCB0wNxfiTE6W5WBS/5npuD09jL+XwGFsQZGmyMVWgxPHVmi2WigpUcqb57V6hWqlwsmz97Jw/E7ai8c8wBWBkgqlJMYKttfXONy9jFYZSoopFMYhhSNwjgBL4CwagxaOQDoC4Qmstcfs+glzqEAShBIV4ImsBaECKR3WFRib0umtc3PrWbb2X+Swf53+cIPdw0tsH1xgOF5DuJwwkCgFWgn/G9Ivc6nd1Gdecve5hzixukqZD9nfPWDUzwiEI9AChGF2rsXM7MwUru5QgUVpD7WJtMXmhu1bQ2qNmDgp2d/bZ9gfEgiLFBYpLUo5tBYo5Z9HsUQHCnk4HOOEYqY9w/zCPM1mgzgKSeKQ+cU5gtAQFLvMLy5RbS0gVYjUmqRWY3ZujlarwaR/iyLdItSGMHCEwXRJKouWhkAaQmEIRUkgSrQ0RMoSKkegvBjQAdMVY9HKEEUCHQj6ky6b2ze5tXmFjc2LDIabWDehKAqkUCRJQrVSJc9yDg7WGA5vIGQ+nTwvZrS2aO0ItSMMwNmUiWxz5NhxAgruvf91VGo1v8oCz5WVakRZlB4DFYAKBDrw9xRIB2WJKjpoevSGPTbWtwh1RBgKAmn8/WtHEFiC6TiENAgs6h/+3b/56Oc+8zmGWUmSVKg3q+TpBISmWq3jipx8vM/qkYQ0r+JUnTD2qQxCR8S1BpaI4TgFN6IapgRaoZQi0NYvS8V0xj1XayW8jNTOc3TIFBjmK1pEocKUOZtb6+zvbWLyMdYU09wcmJ9voAR0D4cURY7WAYtLM2gd4ExGkkBUqaJCv2KUcn7fEb4yB64EFbGyukqvc8js3Bzd7j7GWZQSRBpqjdinpjiLDjyGV0sPVy/zgnvPr/C//V3B297wVY4d/zp+6IcU73jDOs8818SWkjAQfoXo6W+HElOM+Lq3vx31A9/71x/9nQ98gCCu0J5rsbu3jTGCs+fvY3FpiWY98QGFzi7pZMJonFJkE7DWA7RKgSkdzhmcLXDlkEa1pFaRCKGJkoAolJ7TlEArR6gsYQRJoogiiVB+1xeyxJQpB3v7bGzeYjQceURc6Gt9WFOS5wXD4YTlI3MEoaLfG5NUKpy94xgP3n+S3b0+o+GYRrNGpRZ59J12hMpNl7sjjjWHnR26h4eEoeLmzauUpUGFgjjRVKox1pXkkxFxRaMlfkVqCKTDmYL77pvhve8tWV1+iTOrKbOVLYp+wQsXZsmtJIj8Cg4DiQ4FSQRJUPKed30D6m//7M88+p9/7dfZ7x5SmIwytxw9cZajq8dZnG/jTMoLL77C5SvbdDuH5GkfpSPCeJoZJsGYDIljfrbCsSNViqLE2QmNuqAwBusMQSCIYkk8FRtSOEbjCbu7PTZuHbC9tcf+fpdet4cphlRjR6QcvW6ffneIcwY7rcpRFCWjUcbq6oLXGoKIVrPB0eUWB4dDDvtjavWA5mzNE0v51RYEoAOLDiGMIZ30sKRUaxpjcwaDEQLp9498SK0REISCYCqWtK8RQZxodm71INvi9Il1nnn6Fpdeifj4J85xmAlU6AhC0CEEEYSBIEkkRTrmDa/7GtTP/MRPPPqnH/5T1nd26Ox2WFg8xrnz97OyNM/C7BxffOxLXL50hUAHREmVemuBSn0WpSMcBlvkmNLn+02GIwItOXfnAoHWHBz2adUd6XjI5csbXL16i739Dhsbe6yv77Ox1aXfLylK4VXUPMc50GFMtRqzeqTG6eMthHRsbfcwZeltJiHI8wIhBctH2qQTg3UwGE4oSkOeFUSJZHmpRhiCDh1hJAkCT4AggChSJIkinBKm3gip1TRhaKhVBY1GQBh4jcmLP0EUCcIQwhCU1Jw6nvHQ60+wsFzFAF94ahknHFEs0AlEsSCKHHHiqFQEtix5y5veiQzjmFqrSaVaASHodPc5deIob3vrO7i5scXGxjZhmFBtzVJrLxNUGggpcVhMmWPyCS7PyCYTOp0+X3n2Jh/95CWEEJw+OcvBYUq9FnD/+XlsmXH18k1uXrvJ1sYGvb0thr1NyskhwpVe3hrDoD9mY6PHsxf2uXFryIP3HuXdX3cXcRKS5yXGGLSW7O12cRZmZ+tkWUmaFeAg0CEKQaVqqLeg3pTUm5Zmy9JqOdotR7NhadQNrYal3nBUa5a5OcmR5YD5GUWjDvW6o1l3NFvQbEGj6ag1HY2mpdkqqTYMOnkvtZk3U2+VzMwV/lzT0mo6mm1otR0zbcfCHNSqBXlWIoeDIaN+j3SUIaWku79H//CAS9dvcX2nR9SYoz6zQFRpoaMYKTXWOcoix2QpxpQIIYjjkHq9QrUSsbnd5Q8/8jzXbhxw/o557+e2gocfOI4OPCZICLCuJJ0M6B5s0utsko2HviqQABkodBQzyRTX1/ocP9rkne84R5JEOAcCQRQG7O70qVYT1NR4i6KYLDdIJajVodVytJqG5pQYjZaj2RY02oJm2xOyVbc065Zm1dCoWOo1Q6tu/OS0DK2modVyNFqO1oyfhHoLdCTJhr9CMfkkkFCtQ7UJ1QbU64J6wzEza1lYsCwslrRbFiVB/fzf+dlHP/vFj3Lz5o7P3ytLjKohm8fY607o7G4ihSQIY4SU3kVgCmyeUpYZVjjiKKJeT2i3q8zO1plpVUgnJS+/ssMkLXnw/hUmk5I0L1iYq7O7P6AoDEr5kiIC7+cxZYExJVppdKiRUqLkFGKu4fSJOZyDze0hOvTiwVrHzMwszjm0VIzTjCwvmV+Iuf/BhGpiiCNLkjiSBJIE4sRSqUCSOOIYKglUYkcSOeLY+fOxI0kEceKIE0FSsV5MJBDFljB0LCxMWF2+AXbM2q1Zbm3XWVzImZm1HDs24NzpLs26N8paTUG3m3F09etR7/vrP/To5x77IOu3epSFQUrJwupd6NoSm2tXSfv7aB2iVeRFiskxJsMWObYsEIAONYEWJJFmphlzZKHO0lKDMNS8fGWPtbVD7j43T60WkuaOWi3moDPEGodSCq21zy8EyiInzybkeY4pLNkk5bA34uBwQiVWnDo5w82NLk5KwsBXJoKARqMOwjIYDEknlgceDLnvgQitDXHiSGJHJbZUEkc1cVMiliQV4ycgtsSxI4kt1diSVByVxBEnfnKSiiGpGpLIkSSWJJEcXU5Zmt2kOwp54eJRpJa84y17PHL/HkeXtpmZHaJ0iFSSWt3S7eSsLL0L9bd+4scevfDSh7h2s8doWCIwxI05H3Devu4hLDoEZyiLFGNyXyhsmgkrA40OfHTcGQ+iCQPJ/HzCqeMtZltVNja7PPPCJrMzdU4ebyKFpNcv6PXGBIF+FXNqvdzw+TnT2mE60IRhQDrJubnRI6mEHF2pMxoV1CoJvcGYMKpQq1VIJxO63RFaF3zv99VYXIQwMFRiQxIbksRQqUwfsSGpWCqJIU4MlaigkhhP4LikkpTTz1sqlelnY/86ClMW5xd54L73UkkiinyNg17LazmRJS1CbDEBV2BkjAwkzYZlZyul1X4P6uf/1s89urv/Ma6tH7C9lfn0s7iGkCFl6v0LzpaYfALCEcUJ1VqDpFojShLCIEALiUKQFzmjccFwUlAUhiTRrBypcXylzXhieOqZNXq9lBNHm8zN1un1x6RpSRgGKCmQUqO1JggCwiAgTjRxJaLdqrCy3KTRCLm53qVWjXjg3iVMWXJra0CtVkcpxfbmDhvr+3zHd7f5lm+tIMhJ4tITPC6pVAoqiSVODHFUTCfCE/M2geOkoJKUVGJLUjF+NSQlcVJSqRjiuCSuGKJgQBLtERQH4PbJXBUdWHIjGU4iqlVHq5mBMoRa0mgYdm6VNBrfgvjSZ590Tz/zE3zhSxv83u93CDQsHL+HSmMRW2YYa3C2JG7M0GjNkGiBsxkCgylysvGIIp9QpGPKPCXPU/K8wGGo1yKOrTQ4eaxJEgdcuX7A409vMJnkHD/apt4IuXqt440RY8ny4tUyKUJ4+EgQKWrVmOX5GkeWKzgLL768z6mTbWqVgD/96Ms0mk3GoyHdbp+HHlrg1359jlrNUGS+SI8HAfp06an33/vocfgqLL6koMCjBa3x0R4JvlKd8NUzQExLakksllbSpVJuQ1DnIF8mzTVCOAKdEgcZ9eoyqDNMsqdIKiWf+6SiPfvrqL/+fT/06GTwh1RrOZ/+zASpNa25oz5FAdBRwvzqOVbO3M3y0gKzrTr1SkKzWaPZaFKtVYnCkDCOCHWAUhIpPKxjNM7Z3Rtx2EsJA8Gp1TYnjjYxBq6tddg/GFIUBWmaY6ylLEqMKSmKkrI0FIUlzwrSrCDNLGGoOX6szanjbV65tE+SBGS5YWNjl/F4zMxsnV/55SZ3nS0whSUILFFQEAXl1AdiCYKSKDTEoUe/BaEhDAxhWBIFhiB0hKEhDEqCsCQMS/9aG6LQEkaGaPqeUgKlHCpwoCSBtsRhQbs2phH5CJagimOPKCrYXA+oVb8L9f0/8KOP9g7+kOOnUv7gDz0Co7WwitAaHSYsrZ7ixIlV5moRjVjSqiXMtmrUKhXqdf+Ig4hKVCGuxKhAE4T61WI4CEd/MGZre8hgVNJsBJy9Y5blpQbpxDIc5YzHE0xZUk6rFhljMMaDp4zxxC8KS15IwjDk7JkFFhYaXLnRYX4u4caNA6wN+Cf/sM53fadkOPT+90AalCq9O1nY6XseEa6nbmZ1Ow4gvfNNTx1u3p1spq5o7wbQyvvrfS0ai1IlUahQMkJKiVald9apECVDcBmmuIQTIXGkuX4dwvi9qB/5wR9/tHvwx9x3b87v/n5KlldYPnEncW2GRrvN6vIii82ERhTSblSpV71Xr15LaDQSkrhCHFUIK6FHAysfXEiShCgKCQKFUoKiLNk/nLB3MMEBrUZCHIdEccholOOcIAj8ZAWB9g6zICCKQqIoIAgCEAFBGHPy5AJnTq+wdmuI0oqbayO+9h2Kf/nPKvgCdh7ro4QvzSeFQE6J7d936GlURwuBYhrZkd49cbvGopYKKbzaqpRDTa1hKQWhNMThAlHlGzBm3WOO9PTzpKjgJFHlZ5FcwzEiiBTrNySV+NtQP/W+n3502P9T3vDGjP/5+2P2DhMWV09Rbc4yN9fgzPEVWnFMGAqqYUgzqRInIXEtplap+kxYKYmiiCTSKBxREnoxg6+BG4YBYRSilWIyztnZG9Ef+DTiRr2CVDAal5w4voRSknq9ysxMg9nZBs1Gg2azQbVWJ4piarUaSa2JkDH9IZRFQrOZ8c//cc6JYwHZxMdi5fShhPSFzISX3gqBEl5eC18kFimnhJ4aXZLbBSqm54WvmCqm8HCFIFASTE4+GmDNJkpLlPTF1TxavgS7jbObWOs1uhtrAXHyXajv+4EffvTald/nrrscf/bnJdc3JHOLS8zOLXJ8eZ7jR2ZRFDibY02JK43Xy0NNHCUkSdVzgDNEsUYpQRJHxGGIkBodeIInUUAQBj4EJiRpbhiMMwItqSUB3UFOu1Wl1axQrSbMzjaZn23RbDeo1mrUG3UazTZRXKVaaeDQZJlA6xbv+box3/HdXdKRxBjnSx3iK0yIaeU6T2Qf/BbSIYS3C3z8e7rdiimBhSfvq+fFdNMVPtishEdX2LTL9toVRBRSqcSvVqRzQgEZ2JvkWYpFkcSKq1dBhN+KuH7hOffjP/39DMoJo3FIr1+ikgXufvgtnD+1QkJGPhmzt7/DzsEBe9tbJEnC0sIiR44c4eSZO2g0GkyGI9I8x8icdDSkmGSMswlZlnPYOSDPxhR5Qa/fpT8YYQpDUeQYV1IJJfsHI9qzLRbmm0glCHRIGPnNWQchUoakmUCqgBPH5ykKw2G3jy1DHrrvGg+/7gmOLcTMzjjG49sAAOnZd6q3+PQEfBlZJ6flDKfq0quH5+rX9B1ATOtRO191A3ypKwEUBchp3U6EL0VrDIBAMaYohgjVpl7XfPqzAdXmf0dcvfCM+7p3fjM3t/aZnW+zsDzPaCK593Xv4J47TzDqbrF29TJPfeUpDscZ6WAALgUUrZk2J06d5I4zZzl94hTzC8vE1RqTtI/NMpwzlNYwHA447Hbo9w8p85zRcEya55RFwWQyopj6yGfnF2g2a4SBpFqtUq1WqCQxSVLDWsFgWNBqVZmfrXHp8nU2Njc4f+5enn/+KzzxxGM8fN88/+ffD3nTmyzjifIpGlNr63aFjNuFf14jtX/tJ8kT6zX10stwNzXabpfuBeGD6i4DGWBcOM1tycnHE8IkQqgKZTFkNOxRb85Rb4R8/BOCqPGbqB/7kR9+9AMf+AC9YZ9sMkYriSkNMgi449QJTJ7y1FNPcP36ZSracHq5yvJMRBBIBoMhG+sbvHThZa7fuMpkMkGHoa8/7gQ4iRKSJE5oNltUqnXCMKEsM7LSoERAoAOkkjgpabfmqSVVKkmVer1JqzXDTHuGWq2OkCFKa2Ix5OKLX+Haxef56vOXaM/O89RTz3Kw3+X6uuDS1Sb33BWxvJKRlb5ujBHgnK/pbqe6uq/R6Au9Gue8QJoStZxWyHbTUuu+aLLATMvCentcUmYDrDOgE4SAvZ0emxsZrVmF1Al5XtIbZsRJQhQFXLsuCONvR/2tn/rxRz/wBx+k0+1TrVWQQtLtHpJOxkRhQKNV45VXXubw4IBHzs7yzocjHr4r4sFzDe4/WeHYbITEsba5zysXX+H6jRt0dncpyhyhFShBHMTU6w2OHT3FkZWTBGFE96AzLdsNZWkYDsbEcczs3CzNmVkatQaNepWlxUWkjjjo9Nnf3+Tl575M3LnEuZmUPJijM8i4fOkiSkl04Ng/MDg1x8OvSwnDkYdqugLjDMYZT2hXULoS4yxOeICbdQXWGUqXY13pHXBY7PRzxpVYazDWYvwZijTF5CUiVL4o0DhFOEvcDFEqwpZjr3aGCUnsuHqlJIi/E/W33/+Tj/727/wOB70+9VqNKAo57B4ipeLKxQtcvXyRfq+LKQ333FHjyBFLGEvCSDBTV6zOCe5eDTm7UiHUgusb+1y7fpON9Q36/T7GOMIoIdQxjVabpaUjHD95kvnFRRDQ7fQo0oJJOmF+aZmV1ZMszC0wszBDvRrikNy6tc/16y/z3HPPMMM2//zv3cldKzFX92Z47NlLjMdjpFRYa8nyFGvr3HtfwOz8NlmeU5qc0mQUJqMoPSqwNCnGliRBDBSMsz5FmXktRpSkRY+ivP3dFGMzLNZDWcoU5zLyTkHRMVAzZLbAZQU2L7GBQCiDNYW/ppbUqytcuT6HCN+G+tGf+IlH//v/+G2GwxHWWkYjXzhAK41Sms7BLlnqAUtLMwmzNajEFmUNkfTdAoS1zNcF549G3LWSIKXixlaX9Y11dra3KfIcHUYEYYQWEY16ncWVoyzML9EbDNjfP8C5gjvP3slsa5bF2TkWFmYI44gbV29y+cKTdLde4t6lMT/zrjoP3ml58aWU//jRPTa3d9A6eFX2OmsoSs3d59scP9YnyyAvBEUOWSEockFRCPJCUJqSOJoWv5lkIHLiSBGoBsZUydIhpZHkJRTGUI18raz+KKcoHMZYZABGFeRFSaMaE1VixnlOWk4oC0uRGURgqNXv4uqVBXTwIOrnfvJHHv2fv/M7dEcT3LRcqRAS5wxRUvVqorMY61hoRqxUJI2KoRJAoiztRHkDQyoCIZirax48E3PfqRpZIbi01uHmzTUmwwFaaxq1OtYI0nTCaDBg1O2R5gMGkxHHjp1gcXGBxeUFhDBcfuU6n/7knxF1X+JHv2eWn/q2FntXeuxdGvHBLw/5s2cPfFlY5fN1qtUK7UaVNDWsrja465xjkkrSLAEHgc7Is5DxuEqWxhSFRkcTsrRAiIBa5RiFGSDkQ1Qr78PxODBhOKwwGUckibdei9KByMgKS14q1DSbwVjJJHOMx4Ys9wiSydjghCJJbnH12ibV2t9AxtqXl7bWAT5jVghBWfogcBTFUy4S9CcliXaICYTT7NpIwEpb0a5p2s2ERrNCrRLz0Kk6/+C7Vvh733Wc2brgwkvP87nPf5JrN64ymIzI8wJTluTWIqxiaWGZMKlSq7XAWq7fWOcDf/BB1i5d4P3fU+fbfnwZN+xxazvlmR3JE+vGq3vOJw+VRUmWF8zMtnjLI8d5+RXLK5fbDIcR2cSi9YiiyBlOHIe9mM5hhW63yrBvSLMcY0pQP4Qt30iv+2U63f8P6XhEnjv6/ZhOt8JgXFKYlCSuUKu8gSQ6Q547xmNHOilZv5GzfavEGIctHJOR8Ssty+n2JgxHOdYZ5Lj0MDylvG57+yGEoygLwrjiG3IIw9p+Rj9z1AIBqSCcGhuNRHK0rVia0RxdbHBkaY56o0a7Ved933Ccv/s9d6C14sa1q3z5y59nMOgxPz/P6bPneeC+h5ChYGnxKGdOHCcOLHs7O3zu05/l5QvPcHox4K13GPjKRa4/12c/lRymluudHKSkWvOqpdKSLM2xOGZnmsQq5nOPtej2qtSrHdJxyUEnoXNQpdsNGU0U44mg34eyBMTX09l7hr29p0izVdL0CP1+Qf/QYssJWk4o84LRuGQ8fiN5/u+Q+icwtkWvq+j2BLkJaC6WRBWDJUOHd1Jv/w109DDDCWQTh0ai3v/jP/roR//8Q/QGI8/df+Fw1hGGkddcS+/pM0Lx8MmQRPleHmGgiDUcmfNZudVqhVZ7lvnZBq2aplEJEFLz4cf3mGQFRZEzNzOPsSVbO1vsbq9z8+rLjNMxs42YGzeu8uSTT/PYY4+RZSkzjSpnKwq7V/LshmBYWq7uOj7zyhghHJU45sTqEc6fO00lCakmljQryDLBzgEMs9b0HqDMFYN+gnOOVrNLEo0RuqTINdbezyTtMxxdwpp7KOxZ+v2XmIy1T2QVjnQckGWO0jYpilmGg4scdi6R54Ky1IwHMZOhYjjQFKUiTL4B5PtJ0xRrv8LaTc38wvehfupHfvjRT3zsw3RHKaNROvUbTInurM/2wueNO2fZ6jliLXnwuEZJibCCeiSZn7PEoSOIYxqLizTuup/ayTuptyRf+coGH3q8S73VZjzsc3C4z8svv8AzX32Cp77yGFIUXL18hW5/m82tG1x85TI7u3tIqehlgpd3Qw4ngjg0tJKA331yzFbH505O0oz9Tpc4Tnjo/rsRWG7cOmCSlaSTCVu7iqvrC2x3FkjziEpSsLDQxzlIM98qIstCBr3rCPEWrIs47HyV0fglrA0Q6i3g7mUwvMV4GJNmAWW5R/fwCQ4PLjLJAKEpnabf0ezvxIwmMU5CWZbk2Q6TyVfJ8g7rayHLR78T9TM/9eOPfvqzf8Z+d8hwOCEMQ5TylZ8BrJs2T7ptneG4tFXikDywGuA3dEkkHZGwPj/k2DL69HehW98JMzP8p1/6HxzaFZSy7O/tMhgMyLIU4QoQjjhSHOx3yPKSSZoxHGakaT7d2B27I8GNDrSTgAvrKR9/cUAYasIoolGrYE3OYbfP/mGf5eUVxqMJW9v7ZEVOPplweDBie1exfdCi02+glE/1KE1AUWryQpNlAf2eYTjoMslSpG6j+BaK0pDme/S7XdJMY52iMJrJ2JDlhtIosiJEKEFvXzDsCQgcSUMxGXUZdF6k5ABrQ26thZw+8e2on/7RH3v0k1/4c3Y7PcajglqtRhzHrwWLp6qYncZFpfIW3YvrOTsDy/mVkHZFkmU+qh/rgqgVEhx/E7DKp//gg/zZZ18kaixy4cUXiZMaYVxBaK9X51lGpzMgnRQMxyll4VvmBGFAlpWUZUESKlQQMprAl66mTPICKRx5XrC8NM+73vEwrRr0xxOyzFKvxOzsHTLoj7DGlwm3xZBslHLQk2zvVClzSa3q00fyVDMcSHqHe0wmOVkaYYSiKDMm6UUOtm7RPwgorELGktIKylKBWMGSMBpk9DuKfAJxAwgU6VAyGgUMhiHjke800zmAUye+BfUT7/vhRz/x+KfYPRiSjTJmZ1tEUYSQ8tVYpdIagcBYbwYLbwV7iPaGpRLCXE0RoagEjkZQMu5t8d9/47f55d/4c4pogQuvXEQGFaI49oGKsqTIPUdnaU5hjH+v8Mn4rXaNpaUmeW4YjFJWWiH9UcbeuCTQXruy1pJmOa9/w5v4urc/gpnsc+XGPlGlDkKSpinOWqIkpJIERAEoUzAZFxx0Ag+HlJYstQx6EqGrCCUYDQTjsWWS7jPoQ55FGCSTMZgC8kKS5dLL/lIxGewy6oEKJSLRFBl09xzjsaAsHFnqncTDvub82W9HXHzmafc3/+nP8vRTF7GjguWVeZ/96hx5MSVIYSiKknSSkaYTjDGvip+y9A6j+08k3HM0ZLmp0VLw1Wtjnt3SLB87wbXrV7Aqptacx2Rjn8aRZ5RliikNpihxAsIopEgzgjBiYb7FW954DAE8+dV1drY79Aa5N/e1RIchj7z9HZR5yjOPPcG73/21HJtXfOzTj5PZCs1Gg4P9fQ4PD6jUEtrNCnEofW69liit0IGmPSOYmx3TnjE0G3Ok6SHWGbSSjHolpoCkATqUDA+dh8BoidKCOPJOtXGvxBWG2nwEkaIcl2TDEgdEYUhcDajWctauOb73e34T9fM/81OP/v4HP8j165tUoohqLSFJIuq1OlEUgfAFhMMoQElFmmaUpV+WXs57x9D2YcHzaylfujThixdHXN01xLUae3s7DPoDhLPU2ws023MkcUSgFQI5LT5fMr+wSBBG1Bp10skE6xwz7QrvePMplPJteW6rtaPRhGqjxTd/3/ezsjLLwc1neenla1y8ukNvOKJ70KFarZFUqljrGA29mJHKNxTBejCCFI4sgyxPKIxjPOow7BUUOeSpZdQ1lJnBTCzjgWGUWrLUkY4t2dCRj0smQ0OWgow06diQjgxlJhgNLenEIggJkgSlMg53HA+/4dtRP/WTP/no7/ze77G31+X46hHuPHeKKAwpp0i6MAwIAl8WdjwaMxyOfDxQay/nhW9CorTvqSikxxhpLRiNhuR5jlKKUGtarSat2UWP4nAFwjlqlYS5uVla7ZZXP6OYmZk2tVrCYJzSrEesHG1y5eoBd51dYmGhRrUa0zkYsHb1Co32LG9460Psbqxx+co66SSjNIY0ndBoNAiDkEnqY7BhpFGBIgz8XiXxuTau1BS2QlFKogiy1HK4l5KmABaVhJROMBkU5Ln1PZ9yiwg0JlAUmSErBP1ewbBnsUKQphZrJU5YTJmSp4LDvZKHH/5W1E//2I88+uGP/AlhqJmZabO0tEAURrhpO8sgCHDWsbd7wOGhV83iJKEoilc3WSl9QQTwzfOklK9OSKA1tVqdufkFkjhCWIuQAaWxHFmY5/y5czSadYS0hLFfTc1mg9m5eWqNWTqdPieO1tjbnbCxecj5O5eo1iPOnJzBZDl7Wx2imaOcffBBirzg9J1n2Nq4RZZmgKNWb6C0YjgaMx6lSKl8DyNjKd3tDDOBkCGoJipcxJmU8XCIMZKi9C7h0sBkaEkzH7jIC4uVgqKEwWHJYaekMFBYGI0cee5hjWUJk0FJXkBeKt7y5u9E/fiP/NCjX/rCJ2nNtrwP3DqsLdGB9i7X0YSdnT263T7t9gxaKQaDIXEcTmW6J/5fUO9fnYgoiqjWaszPLzEzM+erQ5QpUgjuPHMni4tNrt+4ziuvvMTa2i32dvfpdA/Z3t4hzUbMLcyjVYPZVoX5uQqf/9IVTp9sIxFYY3ndgyvMzbVYv7LD3l6XN33D13L23Cleeu4lRoOhr04XhlSqVYyxlGVGEkfUKhFxEvieq0jK0vja7DqkcDAeHGBMQVgLGI8Mo6EFJZjkkE48MDfNJMO+ZdA1ZIXEoDBWUhqPp01zyDO8CxiBtTDsW9761veifup9P/joJz//GNuHE8o8Y2l5gUk6YTRKOdjvs762SZbmVGtVxmMf8ZmbnUcqzWTsnWQgXuVsIQRxFNFqtWi2WszNLdFut6hUa0RBgNSaO8+coz0T84lP/BmXLl1DS8VMo8rxIzMcX6whhWV9fY/xeMDswiILM7MszlVY2xpQFvDIA8f46gu3aDUj7r1rCedq2NTw8vPPsL62zsb1dYo8BxxZNqFarRKGEXlRMOiPmKQFaVaS5z6sEYaSMJRIDMYoSiKyfDJNelWMCzH1oYCKQkQYY2zJeIwvrG8FpoQsc+Ql6EiQlvjCadZ3DytKwWgI7/r6b0f9/M/9zUd3Dg/Y3j/gmaeewQLD4ZjtzQN6PV9bVylJt9sjqdS448x54iRm0O8zGg18G018BpQONNVajbm5RZaWjjI3v8hMc4akUiUMfBLqwuIRVk8f5WN/9iccHvQ5cXKVhfkZjs7Pcupoi2OLFeaafoL293vEjYR2u82xxTa39nqUpeaR+06T5QWvXN7h7nMrjHPB1s42t25c46nHn6csfLMsKSVFUeCco96oe1dAWVCpRMzM1KhUQ6QQTNKC4TCnyAuSUBNWGhip6R8OyDLfLSzPLMYy7TwTk5cpRQHG+tafKpwS2UGeOSYTR1FCOSX2ZAKCiG/95u9GpnnJjauX2NvaIMtzLl+8ys72HlIJqtWEIi8YjTNWj5/m5KkzVKqVaTKQx5yGYUit1qDdnmVxYZkTJ85w4uQdrBw9yuzcEvVmk2ajPc1/rHL6xBmuX3mZ9bVb3HnnedrtWaIoBglFluFUxMzKEgsriyzMNel2Dlnb3OPqzR0alRoOjYxbvOmR+wniJoOhR7Pt7GwwGI59/HLatgFAa81oOGQ8GhGFMXFcYTRK2dvr0e2OwDnm2lWOHWlRr0T0uwO6+z1MWUUETYqpB7MoYJw6ev0R/V6H4cBiHEgtMMYxGE4nRQQ4kXgYjfFhPv9dS3+QkRUZUmvBY59/ipdfuuLLY2hNHEcUpWEwGNNszXPm7HkWlleoVhrT7rSOWq3G8vIKq8eOc+zYCVaPn+TUqTMcWVplYW6BeqNJtVIjjioESYzF0u12WL91hacef4JWc45Wu0UliYnjAEeJNSXNuSWOnbmThcVZ6tUQm+Xs7HdZ2zlEKI0KAqyQzC7OM9ducXDQZ9A7YDLK6RxOpn0yXo3j45yjLA2HnUOcgCiKsdYxmeSkacn23oBL1/a5fG2P4Sin1YyoBSXDTp+8TKjUZ0FISgNF4ej3DYOhIc+90TMea8Zjy3hoGY8M45FhMrRMJo7hyNI5yBmPC4rSUeS+yrTo37zo3v4N38AzF2/6/nAOZmZmaLZmOHrsOItzS0yKCc44pJBYHL1ehyLLp0mVjkq1TqWSEIUJQisqUUIQRCAcpS2QUpGNUm5sXGMw7nD98jXuPH0X8wtz5PkAZzLqtSaLc01WT59hdqnFzUsXePwLT9Id5zTnVzh3aoVOd8R4YnjP19/HsaNzfPijX+KZp59lflazdZDx/Atr0zzr25lYXoti6kOan1+gVmvQ73UBw9Gjc1QT5UVMVtAfpIyHme95pwOsrtFcaOJMh521XcbDzHcDEAKplI+aTbtQWntb/PhsAusExhgcIIXE4WhEIX/8hx9E1iqaehLBtG9zWZZUa3XuPHcXq8dPU601aDSaNJot4iRGa0mlUqPWaBPHkce7S0cUVwjj2Fuz02bfWgUEUiOEoNlqc98991EWOWEQsbi8SBAEBDoiTuokjUV0bZk0txRpQb09T6XRIlQlRZFhCDDWTfNgIkajkp2dfV54ZYPnXj7EGEGjUZ3uMUzb9rw2AQLhkXvGUKnWcEg2bu2zvt7hoDMk1JoTR9ucOjlPbhw317YYdA8wpSOorlBpzTCZFIxHBaNRTn+Q0h+k9Hojet0xg0HGcJjS70/oTZ+PJzmTSc5knDMaZqRpAUjkQX9MfyoLb7cN7nQ6aBWgBKhAoaQmUCFRXEGiUEKSFUNKmzHbbqK1wAlfHyBQEiEVVjicAq1DpHXEcUxeZGyubdCemafdnqPVnqNaayKVxllLlo19GG80RuuYxswstVoM5HT7Kc5IojBikk7odHbY2DygXm+gdExvUHLn2SOcPLnoW19ORcttoiulyPOcQb+P0h5ak2UFeWHZOxxz8eouz1/YpNMb02xWqFRiokjg8hFFWlJpLtJemsO6aX9q6xu+umnlFN9o1ks2Z6dtPG+3C7XGNy+XkihSyEBLpC/Hg3U+XSydjDjY32eSjinSHAxkeUq/36Xb67B/sMXmxhqXL19hfX2NQGqU0ERBTBxFhFqhVIgQEqk1MgxBCnb3t7FCsrKyCvj2M7Vai0rS8OlrUlNO89SttYRJheWVJaLAMRiOsE6BAq1ybt1a49r1DeYW2qyeXMDags5BzvETS+jAezBvJxk556b+Isdw2McUBUEQEYUxx5Znuf/8CqdPLhLFEesbB2ys7SNlQJ6WTAYDalFOvR4yszBPUvVBkGk2u7fCp/vH7efyLzzEdCIAlBKEgUTa0neyRfglKYSgKEp6vUPSSUZ/2KfT2WN/f4v9/U02N9fY3e9QFB5Lub6xxa3NdbJixDAdkxlDEGhfHtBayiIlCEOSWszm7iat9jzt1gw68OnFcaVKa36VMGqghEYKTagj319UBlSqTZr1CtZZpFAEgQSrGGUB7ZlFrMlp1Ot8y7e9i7PnVtjeHmJKg5K38UhTggifQ1mWJaPRiCAMUTpgmOZYJ2k0KizMt2g3GxxdXeHeB+9nbmGRybjg1o19djf2yDJDrdVEKjltw/D//7htuyDAlJZ8YpFG6le9Vj7LyW8KeVEwmYw5ONzlsL/H7t4Wu3v7EFQ4snqWY6fOcezUOe68+2H29g852N2iFkMgCvqDDoUpCYIIa0rqSYVsMmZ3b496tUYcBQgnkTJCSoVUkkqt8WqKdBhF02xbME6SJCHpZERpoVJNMBaipM13fO/3830/+D6K3PLcc1d569c+zNmz89hpf+nbN3xbzLipyBmPBtiyJAwCBsOCtVt9Njb79IcpcSXmxIkZFhcr1OoNZmZmwQlG/THj0QShNUHwmkr6Vw/7/5AdCf7HpVSgFTJLc9KshCnBmQ5skmYURY4tMtLJhLSwzCyssnLsDLVmg1qrTau9wPzSCsdP383NtS26h13mF1toJRgNJ+RFAUJTb7VY27hOOs6oVxuUpiQvRhT5GFvmKBxaGLRLiaSlyMaUeYY1ljz3iIYsm5CbgmTa12JrY5snvvDn3Lh2C+s0ZZnRnF1lefUkQkxT4G4HX6aajEeIQFGWFGUOU+6fTDKGgwmDQUqaluxudrHZCClK+v0xRX47Y9mX1FJa+VS7v0JX/oq4+cvvC0pjKUvjG3vLaScvb1n6r/R6XdAhzlkO9vepN2eZX1wmCDVSKOqVGnGSYN3tui2Cm+ubDEa+pVioNCYvqMRVHI4b61eRCJJqldI5jPXlXK0rybM+ppz4prBIKAqyoiA3FpygliSk6YgyTwmlopokhHHE1ctX6BzeYGYuwRrDlUs3uH5lF6bay6vEnrZ2k9N6NuBlvLWWIAhIopgkiUiSGGcdm7s9rlzZJYkkSjv6vT5FUcC0gYmzzneO/0tk9cf/N6LfLqQmATnTrtNo+GSc24dSin63w3icU623CCte73YIlAoIp3gkIQSlMZTWIlWAEpZ0OMZKjYpCgkBTbzfodnbY2tyhVmt4SIxTCDROaJwMUSpAhTVU1ELqiFIEpKnxiawqoN5sUGQ5h91DDrsHfrPPBHffe55z589w5uxJvuf7v539nV0+9fHPeeJKX/5EKfUqsW9PgJuqxrfPR3FEvVlj9dgCMzN1hIDt3UNu3NxDKU21XvFdfwUI44kuhZx2YPcT+v/rcALP0MoXeJM+wfIvfADvIbSmZO3GFSr1eerVOlGceG1EapKK38GFFIQ6oNVeIIhj5hbncSIiiRK0cMSViEq1ys1N7+eeb88hhcMWEwQennIbHyFtjrD5FGNUkmYZeZbjrCOJQ6TUjNIJUawZjAvGE0uj3mI8zqjXazz55a/ye7/zJ5Rl6ZuJ/xWC337OdKl7bzpIJYniiGolZn6uwerqHEeW2sSRpnvYZ9AfkyQJ7ZkmgdYebYhvPi6Unl7N6yq3EXjTH3n18D7YabTHWOTV69vc2u68KlbEVLZLrbi1cZWDw0NmZxfJJyMsHpdz+zIgiIKQLJ1Qr4TMLSwR6MiHw5QiDDxK48qVV6jX2sy054mTmv+uUug4olKpESd1QJJOBuTFhEq1Rr3RIqkkvt9os0GtGjI70+LIygqTSUYcadbWbnHpleuMhhM++iefZDzymb8qCH3eZBD6hw7Q2mNUpZRYZ31RiduwGCnRUuFKi5tu1tVqBSkFpihwpfQQR+EQxqKEJNABWoWeEsLTxHmWfvVwtxfBFC4pxLSFfaMZU018TPS1T/uJcsbw4jOPo+M61pSUWYpUijz3tRrVNHhxuL/N8sI8sa4itSTQEVqHXL92hU988s/Y297lyPIq1UaLsrS+QKazOOvFVRTFRGFIoCCp1AnjKnFcpdVq0Wg1aNRrxEk4regpqSYB9XrMoD9ASUGeloAkCCKCIJgS2Ue8tPbJTgiNVN46dtMb1Eqjdejh8LlhZ3/E7l6fzuGILDcklYQ4CSmNYdhLKUe+/TLOIZ1Ei8DLhv+nHdWBcFNEh/P7Jfi6knI2jqlHEUxRY7d1Spz30O3vbnLhua8gFAz7Xb8hSAFCgZR0OrsoW7C4eBQnPRxWC41DUtiUnYMd4rDCfHuGJIlpz8zSnl0iSSpY6038vJigowSVtBEyosgL0rzEWEUcJYRxhUqSIJWjsN4OwBnqjYR77jvH88++xGjkxYDW4TR9xAOvvGiRrxZ/4DaIy/kVL4XGWsFolHHQHbC31+dgv0eaZiRxwGy7QSWJMKUjG+dkuZlytJ+wv5SdBVMiv0b428qJm27uUktkXI/RcTh1FL12gdubjlKK69deYW9rE1OkZGmGUJ7DjXXs3LrJ/EIbnSRIp5DW7weBVtx1/l6qQUCoBKboU0x6JNNoUq3RJNRQ5GMcUNgS6xRZYUjTjCw32NISRhWErhBGvr/0eFIwHOUoBf3BgI/8ySf57Ke+QBj6FfOX8nWm2oFSfgJeW81TK7UofJ86C5KAIiuZjDPyvKTIS6zxOZ1BoAmDCGN9VSXjHEJKtAq9PfGX6O7V0NdoKbxt6ryxphXen25KH4hw1g/Tvdol0w9SCsn1a1foH+4z6B9i8S7WLB1T5hPaM3MY42veKuGRa7Oz8whh6Xa7NJptsiJnPOzS724z7O/iipR6rUml1kSHFY9ccJLcWAwaYYXHkSYRxgjGqWM8yegPx3QHQ7JsyMbaFhdeeJkszxFKoJVGTPtdg/d/lEXh708IlA6mG6pfyt6cB6RABgFSV7wbtzBkWU63N2Bnr89g6F3GQiqctVhjsc6hdYiSHpr+lw9PaCE8BMi/FjihyBHIdq0q6pV4Okz/5Vd329ubqxAURc61q5fY37rB4d4uzsKg36XZqhPHFYRxyCDEKofVEAUR16+8jEQxN7tMszlHtd4iCLx6WhoDIqBSrTMzM0Or2fbYUymQUlGU+FKEkeKw02Nz+5A8yxgMh2RpxtbWNkVREkUxSkuK3EPdmbpUjfE1v8rSw95vl6KSShMGMUoFvnuisxRFTlka4rhKtd4mCAOKMmc0GtPpHNLpdEjzkkBXEEJP7QuBDCOfKWH/qoh57RDKk1IHAUWhODgcIw349upT37DzrsbXHDZTM1orzXg0Yv3mVXa2rvHys1/m5uUXWFpYQCntZZUFjCSWIYXN6Y4HLK+eIoljqtU21doctUaLRnOOemOOIIxQ0rczmJmbJ0kqSBlQGEtelh4QHGv29gcMhuOpT2jIzs4+N25sTH3l3qVoypI0myC1H7k1Xhf3PUK9WyPPcqy1qDAgjL3tYa0hzzNG4z5lnlGvzzIze5Q4qmKtpSxzJpMR48kIqROCMJmypSOQCUolnj99B8zXPF1qqp97RDBR0qRebVCVDvnl5666F69s+NLaUoLxLkk7tdjE1LITQqC1pnfYZTQ4pN1qcOedZ1leOUaBAhni4wWKMAjZ3lvn6NmH+Lr/9f0E1ZhAGXQg0Vohna+S4YSHoIxHY6xxVCs1hJDkWYGzjmolpDQFMp7l6LFVDjpdNja3uHL1Bju7HUpb+jHilYDxZIixJVoFrzbrs9MkVGcdhfGp2ljnOT6uEUZ171HMcgbDLnme02geYW7uFEEYTxF4ljzrgxME0dQV7UCJkFBXYcqsnsh/WZw7C0FYodZYpt46go4CZCMW1MKpw8tN81amejxTTofX0iqkFGzcuE4YVzl3//0YqXGl3zyscAShQGjJwcEOzbljzK2cYfH0vQx7XaJAESYxYZygsAgMYRASxzGVWpU4iRH4jufOlkShIyssYWOJxbkFMIZGq8nifIvTx+qsrrRfrekFAmcs42Hf14icjt/h/dnWWZz1obssS8mzFJwgjGpUKrOEUZ3ClBx2thkN+9TqK8zNn0PrCs4ZiiKjKFPiuEkYVKY6foSOmp7ot3/R3dZaAOfLF9bri8zO3EGrdRookXeszHJ0tull4KvVhbzBALzK7befK6Uo8pxnnvoS+3tDJmlJGIb4NqcSqUKyPCMvBTPLJ7FOcOaBt5EsneSgO6BSWyCqtEmqdbTyGFKltd8MpaLVahMliUckizHdsaE2ewJjSkaDPra0vOHhZd7/gw/xhvtXWJhtgvbhMCk8likvM+IwQgqf+OpZbxpkEFDaktFwwLDXo8wygqhOs7lMNWmT5zm7ezfp9fdoNFaZX7ibQCc4W5BmfXQQE8VtpJQIGRDHMyihXwNm394KnUMJSa02T2v2DLPzD1Cteo1NXl07YH2/53f0vwB/uW2t/cXDOa8ReP19iwvPPE2zvoQKY5+GoDTWWcbDDsnMEu25o4yHh2xvrnHXW95N6hzbGzcIggAVaKIo8NhMU1LkOWXh6zJmeYFQ3h4IZu+m0pxnMOhijSMJIpqNmDe96S7e+55zrB6t+RxHeHXjn4xHGDutkD3NyXFTt4V/T5JmGd3+AYeHe0xGfQQRtdox6vUjGFtycHCN4WiXZmuVuYW70UFMnh5iypw4mUGpAKkCKpXbCbf+t1+zBgSVyizt9hmW5u8niaps726w1S2QzWZCrRL9JXFym+i3Iy9M9fa/+Bzgxee/zNbmBlFcxyHIi5IXX3qerzz9ZQaDEXs3L/Drv/DT/Iu/+V187sMf4Nzr3s7Ll57lcO+mXxdSepULnxya5zmHhz2KLKMSG8LKEq3luyiLERvrNwFFlqV8/gtX+NCfr6HCJg/cfZRWo4KbMrKUvkfGeDx4VczcZpbbq1apAK1DrCnpdnfZ3b3JYXcTY0tqjWO02qeQMuTw4Crj8R7tmdPML9yDEIrJ+IAwqhNEVax0JLU5tE68nTMV0c46ov+7sDONkeM67vivj+npmZ5775O7S3JJiqQkiqRoKZaoxActyxIsxbbgA/6SxAgQQE6cGAiC2DAcfwmQ2AhgJYCAwIhhxIbs2I4DOY7oS4oOihRJLcX7WO5y793Zuad7+s6H1707YgLkAQPs9vS87q6uV69e1b/+L2lQ7JliYOA+Uuk+avVZJG+dnoyC3F8q0FfMIYXbodB44hQv4u7aeXAdh2TKIF0c5PzZ12mbbSRZEd6IIlFrt7A7HX77s+9x8dwp7I7F1fOnyZUGaDoub184h2ubaIpMWhdZItsUEOxUSqe3aNBTSPPzf/8pp375E9YWb7C0ME/fQB96UmF4aIy2k2OjZZApjDLY10PoR7nISFFc192G/ElC22MKRC9wUWSZhJZCUlRarSrra7Nsbs7juC0yxhA9vXvRkjnq9QVMs0KxuJO+gXvwfIcw8EnqBcIwIJUsoOnFLZsehiFKIkmxOEn/wP1ksmM0m0s0m4uoCugJDbncaNGwbEHjIAlN7xb+exO8wqtJ5UsM7zlCaWiCWrPOjesXUPUUaSPD/r0HSSkKzUaT0V37GRgeY2L6Hj766S8QyhKNzQ1Ov/kmZ98+TRgEZLJZhoeH0HQNQtD1BL09BuVymV+efJW5q+eYnTmD7zlMT+9kamyQZFKnWBoimRommeoVYCWEF7NtHgM83xMJ5DCKpatRWU8Y4tg2tmOBLKOlsoSBRL2yTKU8S8eukE4V6enbh54u0WwtYXVqFIq7yBXG8X0HTcsRSiFyIklSLwqjEobIikK+OE7/0GFy+V2Y1iZtcxWJUACXPA9ZV2W0hIKqCscyFnCsMXEINAwDfM+nMDDO0NR9aMkUspIgoae4cPYUtXIFSQIPm3qzxrV33uLQI4/z1X98kT/4869z5LHHcTsW5aUlzGaLl0/+gtnbN1C1NG4oU+rtw0in8aKMzfXZNXbuP8zDj3yQa++eJ5vL0lsqsWPHFL2DI+SKPRhGDtcLWF0rR0qx7WlJkhQRdzpbI0AIXyGhCg4aiRDHamFZLSQZEpqO7VjUqgs0W+sosk5PYZpMZhDLruI4JvncOEk9jyJpsSOOnioK/hhZJZMdYWjwMKXiPjzbpGOuEPod6vVFVtdn6TgB8marTbNlkYhIz+KbjzVGQpR+h2FI7/he+qbuJZnvJ1ST4DsYRoowDHjn7Os4nk/OyFMqFrE7DRZnL3Dyx9/ln77xF7z4/NfxOo2tLHq73eYHP/gud25dQldkPKuJpgVkjCSuPsCxZ77El7/5PbK9Pdy8cZHh0WHy+RzjO3YxPDpJOpOj1bY4e/4iSytrSF3JBEkSQbswFKXk8TE/mrSDMESWFVK6QTqdISErOLYlKFN8B991MM0KVqcKSOSMUTLpITzHxvdckok8mpZHSxTEHku64G5Pp3sZHDxMX+9BQt/H7KzTcZvUKvOY7SrF0jC5rIGcTxukEiqWZYk5t8tj2R6qIcXBKXrH7yE7tActXUBym+SNFKMjYzxw9EFajXVmb12n0mgS+jJpQ+e1//w+P/3uP7G8MMe7b7+BWd8gDEXpjKIobGxs8Pzzf8drv3kJ27JIqBqr65vUvTyZ0jDpVJILb72C1Wmzf/8BHn3kMQJgfa3CzZvz/NfJ3/Dqa6cjft5tLRdSlkVKTYoTGPGziedxPQ/btfGDEFXT0I0cSc0gDFxsu45t1bCtWrQjQZKU3kM63YeWLJHt3UPP3t+ld/o4kpJCz4+STo8xNHCU4aHDSHIaO3SQU0ma9TJqosTE1AmS+jiVagtp/dal8EOPP8HM9TmUrlJGIu0IfB9ZURnZ8yC50WlURSGoL5PLpkgnVXKZFKVCltkbV1grNxmd2kW9PM9GeYWRiQnmrs7SsRw+/6d/Da7L33/lz/ADAbyRoglP1VQO7LuPhJZgbm6WZ//4Lzlw7AM4jWX+4WvPIUkuR488TKNWZ2VlhXqtTqPRoFqr4vuCqjb2qITQpSivIKMqInERIkIFvu8KAJQiwrJiQR9Gq1oB+5DlJERrjlR6kHxugkJhDDldQCv2UZwYYveQwXBW4fSFZdqELF28Qr53FLlt49odJg6Mc+3qdTqNGkOjE1TLNdobr/OdF55DVlUVSVG2hme3TQ9DkfOWFZnAt/AbK8jNO4wM9TM2PMzoYB8jAyX6SwUO7r+HQhrSWobfef8J8pkclfImn33uy3zz305y/MlnqFbWcT1v66UCJLQEnufxzsxZzpw5xcbGOu3NZQKzzOUzr7K2vMjU1G5OvXGal156iXPnznFr9hYb5Y0tgd9ty4lcx4SqosQfRRC8SbIiYB+yjCIJHKMwp4LhutnaoG1V8AMHCQnPM/FDn0RmhLFdu3n0kZ18/qM7eHBnitnlJuP37uBjH9rHU5/6CIfevw8na7DnwSl23z/Gocce4jNf/BxD+6dI6SWy+SnaVoDsdDoEri20o+sBYrsuSTJh4KOENoWMTn9vLwM9eYb68gz0FujvKbJz5wSPHH+Up578MG57FVXJMrFjN2uLd+gEDgM79uBZHbxOe0vYYQSPCP0QVRZUr2KkQau+gdtc48zrv0FRFMx2h+XlRRRFQU0IukBVVcUWanFsKDKNwnQJ9JiqaiRUNcogCYyNkkigG1mMTIFMtkDGKJJNF0mle8jkBshmh0jpRRRZpOK0ZIFsYQcHDgxwcEqj0bRolNv86Bc38DSVI/sKGBmZnbsMDh8o8OnPHeIznz3MM0/s5rk/OsTwiEFtuY6CIHKGELntBDiBJAJRd4FziGLpnucRujaDvUVG+ksU0iqFrM7kxChHjx3j0ANH2LlrN/cdfoh904Mszt9kbGIaI5Xk3TdfZeXWRaTAxmy1tvuNXvBWzCJqYQjl1SXefv3XXL10gfHJSVbXN7bw8Fur5qgQYUtJZBGQUxRFEHGqKrIkCa5338P1OrhOB99x8Gyxr4fjWHScNh3HxHU7hEBCM9BTJQxjkHRmGC1RoLeUxzNr/OynMzRMj2bHY8eBcZ756C78wOfAZIlcUqZTbzHdnySjSdTWmqwu1PnJDy9SX62haIrYt88Ti8KIg1CAcaSuuAtbZeohjWoFyW2RzyTp7y9y+IEHeOqpp5mc2olpmayvrSApMkePHcNqLCKTYs/eg1w89QZnfvUf2JV16hXh2sUC77bF3f+/+dp/8/1/+Q6lnjyjI6MsLyy8BzQECIiFJGy3iMGLPhVFQVUTyLIABIl9NCLKQBBhaFkRSQkpNjci9abIGpKiit3L1ASqqpNIKKwtLXD6jasoaYP77x3EQubjj+9kfDDD9Gie5cU6c3fqyIrKzKU1zpxd4vTbd1heqvH7H5nk4ccPEOYzSKpI9Mim4+B6LpIEUgRViIdpLARFUahWq9yZv01vT5HDR44xvWcf7bbJ6soKtmWR0nUUJGbnV5l59x2uXZlh3z33kcuo/PbnP2N17ha2aW4JmCiAFgsznkMIoWPbqJrK9J693Lh+E7PdRumqrohbiNh8MAwhjPpRI1ZqVY04IbUkup7CMLIU8j3094/T37+DgcFdDA5PMzxygJGRgwwPHWRo8CB9PXsplnaRzY2TNgbQ9R50LYuezDO2f4J7poqYzQ7nL5VZ2jC5dr3CmZlVUkYS0w5YWGxx5d1VcnoCV5K4strhzmIT2XKFoiQklL/60he/9sMf/ohyvSU8aOFViYeKzIwsy/i+j+M47N41TX9/L6bZwrFtZEXhzvwdXn75JC+88M+8+OKPWV3doFIpM73nIEYGLs/M0LElbt+6Trks2C26+w+3/OkQNaHQP9DHA0ceoFZpcPniJVEmf5dXtd2iAFNU27oFtYiUR5ZEbtT3RFZJlhUBkHJdOp0GZrtGs7FBo75CvbGK2S5jdxo4nRaeZ0EInqtRGBzm9544SCmlcPPaOqavUnNg/naZ+dky87crNOoWnpJAzRtMTRY4f6XChVeus3LpNqok43Q2eOzRSaT1GzPhR578OJfn10TEvctz2YrORZro+z7Hjx/nk594mnwhz52FRV555VXOnT1PuSxMBxFCzPd97tl/L3sPTtNpXuHtM3Osr1uRGehOfEsoqkI2Z5AvFujv6yeVNFhaXOHK1cv4ERIrfkHdJiYWfvydEo1UNaEiSQphAL7vCuYjwaSDoiaETy8rAp8Y+IK1LspCyZJK1hgilepDThgYqTEefPSDHH7/AdqtNo2Wh9GXo1ytc/nUBapLVSZHhtj5wCQdLU2nbqITcGBfHy1f4p1zd5i9MIvd3sTv3OL5b/0hkleZD49/4ARvXrgZweWiJXRUNuIHIqkrI3KPmqYxOTlBvVZneXVVzHzxrgFdc4HYbFDlAx98nGPvG+X29Ve4cqVKpebjRzxhSV2nmC+RLZTQtTSu47OxUebWzetUqxVkVRQgxC1WgPgTK0d8nGhUKoqMrCS2yuB934+eQ/jtcfI6DAOCQGxYK+I24pnT6QHSqT6M4k4e+vCn2LV7mJmzNyj19xOGNrOXrrN25xZKGJLvm+T4ifvpGSxSL5v4nk+t2WHDDOh4En6zg1+pUyvPYTZmeOHbX0RavHI+PPHEk1yeW9paSHRrULfGy1ENT1xiIjRHUKl2P3T8OxE1NPjEs8+yZ0+OauU2lZqN62oQprCtgHa7Q6VSY2lhgY3yGpYl7L5wr6KrdHlUscCJ5oQtgUXKEt+/rAgohlj6+6ICXEmImLqUEAIPfcJAaHkQWVZNy5IrTDE2+hADk0ewvDWWr87QP3wIVdPYXLyG77cIcCGUGRg8QH56N0gBnulg2wHN1QWsxipJWadYGEEzMtiOTW39Lb75t88iLV6bCZ/8+DNcurWI74uhfLfgxdDcfuAgWlGGYXyz0bnR8VggclTHmUgkOXr0IYbH+rAsi9pmg0qlysbGOo1GDcexI/EKYXdrcXwf8fXj40SeSxiGSKEQevd9i2y/+Nv3fcIwQJEVkCVUOSkwiaEvgmFBILZcTvcxPPQgI6MPE+Jx+/av6LTqTO35EAklRbUyh+db+L5Ly1wl8G0mJ4+TSg2ztnYdTU1RLAximZusbVxGUmQ01aC3bx/54jjV9bf5xldOIC1dOR8+/alnuTq/jm2LmLYaYf6IhLet2aLFwggJxdbFxGUe2xNv7JUQFcx2uf7vaUq0GhY2dfvFdgs91vJ4FBHP9bIkeFmjFmu6GJXKljfmOE6k/TKqLIrLXM/FC0TFhqalyWQHGRs7Ti43ycLCW8zP/pJCcYLpvU/j2CbVyixIAX7gYLbXaVRnUbQku/d+jEx6lNuzvyap5SkWJ9HTRZYWT+P5bQLfJSBkeOR9pBSLv/nqCWRUQaajp9NoSVGS4kd8Lt1a1j2pxsclJORQIFGlu4Z+t5npBnCqqoqmaWiagL/FXsZWn3cJvPseuo9JiL2mxcXEC+h+QZIk+NOFXwlylEjTEhqKqpDSU+SyPfSWxhgfP8bu6Y/heQ6n3vwWly58j8Gh+9m7/5PUGvOsrp0jCCw8z6LZvEOlco1WaxXPswl9sVGi2VmnaS7QNpdx/TaabmBaZZBCHLvKjRsvsbp6jmRCQw69AEmR0fUk2Uxui4cx1o67zU2swf+XQLrb9mJm2+ePf7N1riQmMyJkWdzifu8Wfhil3UIhxe3rB4g+3mP35chdjDsFVU6g6wbpdI5coY+e3nHGd7yPYmEHszd/xek3v029Nst993+WHVPHWV56g/LGuwhkikOzNU+1chPL2hTExmEg9u0LXVynRauxSMcu024uoafyeJ6F1amS0FJ4Xov1jSvYgYdsewEd08b3fBKJBEYmi6YJhgvbFoni7iYePCotCSNe5jAUC5Q4R7j1gSDYrnqIf9f9CYKAIBRIWLoWTN0vMT4v/jsMQgFt6z621V88oUqAhOdFPAGKTDqTJZ0riuKxwhCDg9O02mXOnftX5mZfI230cfTYn1DomWJ29mVq9Tm0RAYIabWWqVRuY3fq4g1G5tVxTZFQ9z0ss4JpVmi31/EDHz1VomNt4rk2WjKLltCFsyI2i1AEA6cEaV2nUCgIgklFIQh94f9GqS5F3o7RiL2JhJ8tKwIvI0cunqJs++PxaImBnXLso0exbkVVUCPqVhFeVSKuX1EEpsgCpCT8cPFbNYoWbvnmqoiZq1GpvZiXxLYLejKJkTYo5Apk0xl6SoOkUzkW5s5y9cpJTLPK0MhBjh77AqqqcuvWSTpWk3SqHymUaTRXqFVuY3eaQjeCWMkEAsz3XAIEGLbd3sR22pjtNQyjHz8MMa2aqBpMZnBtC8ltVsMLly9jOlGMO5qkXNeNGCQiZ0qKJ8ptkyLOjY9F6fj4i/ec9f+3+Kyu3rr++9/fvLff934XB8LCaPjFxbqaliKVzJBO5ymXl2i2K2KXDAmGho+gaRlWVs7juA5qIkcioeO7JrZTxfe2Paz4mrKiYWRGSOtFNis38NwmiqKTSBaRFZmElqHdWCAMA2TZwEirHDo4xf8Afhygw6sVPUoAAAAASUVORK5CYII=\" width=\"100\" height=\"140\" style=\"border: 2px solid var(--pip-color); object-fit: cover;\"></div><div><b>DEVELOPER:</b> Black Isle Studios<br><b>PUBLISHER:</b> Interplay Productions<br><b>RELEASE:</b> October 29, 1998<br><b>SYSTEM:</b> Windows, Mac OS<br><b>CPU:</b> Pentium 90 MHz<br><b>RAM:</b> 16 MB</div></div><b>DESCRIPTION:</b><br>Set 80 years after the events of the first game, this massive sequel shifts focus to the Chosen One, a tribal descendant of the original Vault Dweller. Tasked with saving the dying village of Arroyo, the player must locate a pre-war terraforming device known as the G.E.C.K. The narrative heavily expands the lore of the West Coast, introducing the New California Republic (NCR), crime syndicates in New Reno, the drivable Highwayman car, and the ultimate antagonist: The Enclave, a technologically superior remnant of the U.S. deep state led by President Dick Richardson and his cyborg enforcer, Frank Horrigan.<br><br><span class=\"help-nav-item\" data-page=\"page-history\" style=\"color: var(--pip-color);\">&gt; BACK TO ARCHIVES</span>",
"page-hist-ft": "> ARCHIVE: FALLOUT TACTICS: BROTHERHOOD OF STEEL<br><br><div style=\"display: flex; gap: 15px; margin-bottom: 15px;\"><div style=\"flex: 0 0 100px;\"><img src=\"data:image/png;base64,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\" width=\"100\" height=\"140\" style=\"border: 2px solid var(--pip-color); object-fit: cover;\"></div><div><b>DEVELOPER:</b> Micro Forté<br><b>PUBLISHER:</b> 14 Degrees East<br><b>RELEASE:</b> March 15, 2001<br><b>SYSTEM:</b> Windows<br><b>CPU:</b> Pentium 400 MHz<br><b>RAM:</b> 64 MB</div></div><b>DESCRIPTION:</b><br>A radical departure from the traditional RPG formula, this title focuses exclusively on squad-based military engagements. Players command a detachment of the Midwestern Brotherhood of Steel, recruiting humans, ghouls, and deathclaws to expand their dominion from Chicago across the Great Plains. The game introduced a Continuous Turn-Based (CTB) combat system and drivable armored vehicles. The campaign culminates in a massive conflict inside Vault 0 against the 'Calculator', an insane pre-war supercomputer commanding an army of pacification robots.<br><br><span class=\"help-nav-item\" data-page=\"page-history\" style=\"color: var(--pip-color);\">&gt; BACK TO ARCHIVES</span>",
"page-hist-f3": "> ARCHIVE: FALLOUT 3<br><br><div style=\"display: flex; gap: 15px; margin-bottom: 15px;\"><div style=\"flex: 0 0 100px;\"><img src=\"data:image/png;base64,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\" width=\"100\" height=\"140\" style=\"border: 2px solid var(--pip-color); object-fit: cover;\"></div><div><b>DEVELOPER:</b> Bethesda Game Studios<br><b>PUBLISHER:</b> Bethesda Softworks<br><b>RELEASE:</b> October 28, 2008<br><b>SYSTEM:</b> Windows, PS3, Xbox 360<br><b>CPU:</b> 2.4 GHz Intel Pentium 4<br><b>RAM:</b> 1 GB</div></div><b>DESCRIPTION:</b><br>A monumental revival that transitioned the series from a 2D isometric perspective into a fully 3D open world. Set in the Capital Wasteland (the ruins of Washington D.C.), the player assumes the role of the Lone Wanderer, searching for their missing father. The game introduced the Vault-Tec Assisted Targeting System (V.A.T.S.), seamlessly blending real-time first-person shooting with cinematic, stat-based combat. The main narrative forces the player into a massive ideological war between the East Coast Brotherhood of Steel and the Enclave over Project Purity, a facility designed to provide clean water to the entire region.<br><br><span class=\"help-nav-item\" data-page=\"page-history\" style=\"color: var(--pip-color);\">&gt; BACK TO ARCHIVES</span>",
"page-hist-fnv": "> ARCHIVE: NEW VEGAS<br><br><div style=\"display: flex; gap: 15px; margin-bottom: 15px;\"><div style=\"flex: 0 0 100px;\"><img src=\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAF0AAACCCAYAAAAkGcQ5AAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAGHaVRYdFhNTDpjb20uYWRvYmUueG1wAAAAAAA8P3hwYWNrZXQgYmVnaW49J++7vycgaWQ9J1c1TTBNcENlaGlIenJlU3pOVGN6a2M5ZCc/Pg0KPHg6eG1wbWV0YSB4bWxuczp4PSJhZG9iZTpuczptZXRhLyI+PHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj48cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0idXVpZDpmYWY1YmRkNS1iYTNkLTExZGEtYWQzMS1kMzNkNzUxODJmMWIiIHhtbG5zOnRpZmY9Imh0dHA6Ly9ucy5hZG9iZS5jb20vdGlmZi8xLjAvIj48dGlmZjpPcmllbnRhdGlvbj4xPC90aWZmOk9yaWVudGF0aW9uPjwvcmRmOkRlc2NyaXB0aW9uPjwvcmRmOlJERj48L3g6eG1wbWV0YT4NCjw/eHBhY2tldCBlbmQ9J3cnPz4slJgLAABtTElEQVR4Xuy9d7QkyVXn/4lIW75ePW/be9/j1aMZmUHSyPvRCJBAQghWsMCysJhdEMsCi1sWsyAEwiOEkZdGXiMzGqMxPT3tfb/u51298pUu4vdHZL0eaXfP+Z3z2/39RZ7zTr2qzIyMvHHjxr3fa0L89mt38qt/+k/89dee1nkvR9TtAg5KaJJOE8vzUVpjxRGFfAbpCpJIo5Mujp1FWQLpOSgspICu0niOxJUZlI4QKDQeEYp6vUkUthCWTdQMCIIIScJLX3IvYaxIVIwlbRLAAqrVKqvNAAClNZHSKK3RQCGbJZvNAOB6Nr7rYy5UKBWj4gilYkhAxQnSkqhEoQBpSWzXRkqbWCUoBQqNStInWwIpIY6gEQWEnYAkjtFKmWcArm0xWMqDABCgNb2zKjGftucgpUWj06XVbKG14ugttyIOldf0K9/+Y3z0sw9j2zZaaQA0oFUCUqK1RmiNkBIhIFEalSiEFGit0Qh0epNGIwRIIUGbtoQw55M4QWkFQqAThdIbd5IkyjxHCrQ279LthnTCCIRGa0GiFElKdN/zcB0bAEtKbMtGYJ6vlUJrtUEknSjTh5QwUgikLRFCopRpz7yHNgREIIRAaU0Yx8RxQpLEG4QVgGvZZHzX0Dx9LjrtQdqMlBZCCMI4Jggj0IqPffRjiFMf+UP9zl/6XZ6+cC29/f/lYdpPR/p/cTz/nKHrd177v7qv12bvkBIhzIXpx8ZtSml0OqjpaN88etz3Hd+/64vW/5uOfechhGGaXj96h9Zm9pn3/N+0kz7j5v2Cz37qM4gjQy19z6t+gN//q39OR/9/34F/Pf6/HoLPfPLTyI/83Uc5/txZEOK7x+lfj//ThwYQyNG+HEXfMjP0X7n8//JhxI20pYe2zILUW9T+9fi/dKQ8LUPHQ0oHAK3/ldP//zjk0nKL9WY3XWW/+/S/Hv9Hj1SQyJHBPAOl/PN/+9fj//Ihv/rMaa7OLxnD57vP/uvxf/zQgHz54T1sHx9CJ6pnQAJwU4EUgEw/zZ9Aftdvvf97d3zn943/N9p//r03VSnzzF7bz/tNi++Yhua673z2d/5mvn/3b73nGMvx5veN63rnv6Ntvut9b/bd/M7N9jZ617vuO/smUrVcXlteYX6t/l16ukQ/v3Pf8eDeg/RN4moQWiK0eZihT89K/M6O/s//f+d3kd4qkM8j2ne3Z/q28TJpOwIJ+iY0sXFO9waudw+geiiFuGnu/k/9MfcYZMT0r0cXc4dOf0854jv6Z3oge/3q3QvIXM4n59vpg80FvQZvmuAixSVuspsQpmG0RggNwmAqGy+lufkCOoWCeu+WtmVUVIEQ5plaG/yiRwNDvPQQ1sYg98z/Hml7LZo2DakBtDLPMP3DYD46fY4AaaX2iX4+pNA70vfdYEaNQCGFRgqj6WklUkbr0Sl9j/Tdei2q76KdnBruE77vgtapcdR7jee9jhYI3eOA9AUQIMzApK9m/rQmUZpEGWAsiTVJpEjCeOOvx2GmG6ZLQoiUMGYgzDkzixINSZJOPDDAV2T+lFYbROnRTW6sT89rJ+23EAIpDNiVjoM5pXvPvjmQpKhm7zedioqNbxsXPo9uPYZImbJ3z8Z5AfLb56b1eqNrnv48pE2QEgGBEBohVYoemnNmfExjQghkig4WMj5bB0tsHS6ze6yPQ5sGOLh5gLv3DfOa2ye4bd8oxYyP7DEfIp3rvbZNszJ9hmsJBn2HqT6fnOugE03R99k/nmf/aIlC1ken10tpRIXQ6XfLPKFH+F6/hbVBLaQ0M01u/KUzWxumkVhkMj6WtDbWFoOkGsLr50knnX43byZBmN/McPXuEcjRvgJZN7VIU7QsvSVlrVSEpGNspuJNht+Y4tpM58GCx62b8nzP0WFeemiYN714Ez/9nlv52ffdw8/+1P3c/6KdDFoSsSGiTY8NNNobBBASEq3ZP1rgnfdMct/RMSxLoBLNq+6e4lf//cv58e87Qn/eJo4NQ/QG37ysOcwEMh1OTyG0QPYIpVMh2PsBAUpR8H2O7hzlJXv7Ge/LkmiQoseUpn2dMqD5deOJ6cN7tHweApqKY7kUSNpx+qI3+Q6VykLTqGlYKU2sNLFSREoRpVM/VpooUWgt2LO5wr337eTOYzu592WHufWewxy6++VsPngf7tB+GtUYvxMRakWiNHGiSBQbbYapsyJMNBnb5t7bJzl8yxjSt2i0Igo5m3vv2MzWwy/BGdhMvR1Aen2YaEKlCJUm0opIaSKliNN+hkoTJoowTgiT3jtoQq0JlSbR5h0tBDuG+7h1d4V7jowwkPGIozhdUM3ApVREk6TENKy6wegaBJb58rwB1oDMhR084vRKQ/ZUP0kvSgWeBlsIyo7FuO8x5bsM2JI+W1KxJRVLUvQkB7YVmdoyzvRck8efuca3nrzMlz//OI889CW+9pkvM39ukdiSDGc8tvkOO7IuO7Lext+ujMdu32NQ2wwVXQ7espXy1FZqXYjjiM0jZSYntqPxuXa9CgGMZT2mch5Tvs2YazPhO0y5LuOWYMqx2ep5bPE8tngu43mXoT6fsYLPZMZj0nEYdxzGfRdPSJI4YcDz2DJWZseOYVzpsbreBqU2tLmbUt9QSwiJlYpGM/ONvL/p8rg5qwUCMSGWuef1P6A//ImHsB3b8Hq6mJmZYWRRrDTH8hk2FTOsaY2nNMtBQCtROFrgKEGUc3jPu29jcucO/vsfPsRzz8wwHwe4Arx0kjuOy6aBPLeWMxSaIQ4SD0FGanygjaAVKo6vteFAmf/4H99NIiv819/+Uz73jdO85eW383M//lZ0po9f+80/4uKTl7mvv0jOSxCJxlaQSTT1ZkA1l0ErqMSaghRYFrQGMqwVMohOjFprE9Y7oMErZQmHi3zs+DX2ui5H7tvKPS/ZyRNfv8z/+PhJGmGIZcmNFWKD8NoQ2CgUgDYesOcJ+pvnwODp/+3P/kmfuXgVYRn9WmNcY707ejdoYDlOcGLF1xaqfGJxnUfXO5xoBDzV6vBorQHFDIPjm1kLfMJ2TCHrIl0XmfEJMx6R55JYkoV6h3++uMSfz6zx90tr/OPyOh+ZWeFfltf5p/U6f1dv8LWgzf69Wxic3E+j1WFxcQWA22/fw8DWo7TbIfVanToJ3+oGfGahwcdn13lkrc235lZZ27EZ6yX38Gi1zdO1Nk/UO3x9pck3zy7z1W9f44unZ/j4zDIfXlnnbxbX+NPLC9yYr/KqcgHH0oyMZ7CE4tz1NRqdLpYlU3pskCalqFnjlNap8iNTDdno8ykVe3MC0MjX3b6DrUNldJKeEmaFN2LF3GSkFZxvd0HD/X1FfEtiC7DEzcY2T44yuf0g9RZEzTZtpXEcC1uaa20pCJVioRUxPDHMu37wXn72F17J+37+zdz7fXdTHcxyPYqoJglezuLA0UNki0MsLC4zu9RgsJzl4OEjZAd2sFLrsLrWQErJjXqTMO+y45YpctsKdPft4J4f/VEu3FhmuVVnxYWLEq7kXKoVn07RZz5J6CIYGupj7/4pRsf7+daNNa6EMbuP7WDX/iNYsoxQmlw+m9oQPbW0R/lUIJvX31hQhewJ6N61PXY2X+XVlmI9iI3OjUYrjVLpFOmJ854DWQi+1mxzx2CJPZ6H0xsgpfEcl727JsmVCqzMr9CsNlnrBmilSRKFUhDFijiBl9+1jZ9+xy284NAoU2Nl7rx1H29644t48A1HKRYLtMOE8eEKU1t2EMcWN67PsVJrs23zGBNbdtNprnL5ynnmVhs0o4RbjmziF3/2bfzCz7yTF951mPve9CZOPHeaZ595gnbG50aS0M7Z3P/ynbzzew9wcO8ItSAh60h+6Pvu549/7+d488tuJwhDRg5v4oH3PsDA0BTZwRHuvmsnQ1kHlWikEGil0Vpt+EV7tsFNEZKKm9QiTQmUkt/QVLJ0A1fHG2aqNgJqYzntzSIpJY5tca3V5Wyzw4v78/jptSpRDJVy7No5SbezzsXT55mtdWjHEWGnCwosyyKMYoYHSrzx/v3kKzb/42+f5Cd/6eN88WvPUShs5uChWyiXs6gkZsfWSYZHR1lfneHSleskCg4e3Eu5MkG7tcbFi5dYqnaZmuzjP/3iT/Oil7+dlabiRtDPpYuXsFrneMsr9iNsh3pXMTlY4J5je9i1e4JqI0THMcNjJW6743ZKpUHWq41U80lYXlpDEzM7t8IjJ6ZZrLWQMl0IU1tgg4MFaN2DPsz/AnOdFhpQCNGjpbleFgdHaG/ouWY0JBhTN1U5jcgxRgdS8JnFKn2+w2jGJ04UaMWOzcNs2r6PWJS5/zWv5Gff/2P81q/8BL//az/Gz/7oKzk4NYiD4MjBTezbP87JC4scPzPL9FyN6esrlAe34eUmCSMT57J33y7ylT5WVq5z4cocAAcPHSDRmuryHGcv3MCzLd76hnsZ2bKPJ59+mieOz3DmwnXsZIUX3LmffQcPIXQCQnHH4RHGtuyh2u3nysw6CJiaGKR/aJC19Q7nphdI0Dzz3FXmbixg2w6feehpPv7l03SV3jD+jEXbEy9GYxHChKiAQEijbusezpOqiWZQzHepHJtSzsgspW9aTakIu3mk5x0pWQljvrHa4LZSbuOaXVsm8H0XqTW3HXsJD3z/D/LA29/Bq173RipDg9RbTbAlKo557JkbPPHMInEcY1mCnTu3kckXmJ2fY3WtBUBlYAIvO8zyyjozCysM9ufZsWMbjuOwsDjPhavzbB4vceutR5i5Mc3JM1f5xGe/RS6TYduWKTZtPUyjHdPqhEwOZjhy9ADl4f3MrgjmltbJOBYHDuyn3DfEtbk1zl5bQAA7xwfYuWMr6+sBZ68sAGBtGE5GphtMh+fJ9p4lqjbIa0RyKl56syIV6rJZXSeIk41R27guvVT2REhPNUJgWZKvVxsUNGz1PKQt2L55giRqkwRVhGqTRC2k7qLiJpevzDK/1kUBDz96lp/79U/y8GOX6ARdcr7D7n37iZXm3PlzLK+1mBipcPDgfhLlcP36Aksrdfbs2MSmLVvQKuHc2XMsrzbZv3uM9dV5nnj8JJ/8zNdI4oBSDsrZgE6nzrnzFwiCmCP7t7Jr/60It8y5y3PEUcRwf5Zb7riTbHmES9M3WKvWKTkuh/ZvYXTzLtYbAc2VGhJjGfcszh7XbogTIws26LUxED0pkV5n8AIjXuzxwQEcSxh9MzXtkWYa8byAHo3hdgBLQJhovrZa417Xw85aFPKKZnWGz33taU6f/QuCRKOFRFqwsLBOM0pIoohKf5FNE4O4jkU36LJtyziTW3ZQq61w5sxFAHZsnWTrti2062ucOn2RJIEDB/ZS6hulvr7Ac8+dQQjJzEyVR59c4OSFG5x69ll+5H3vJWpUuXi9xfz601y73kCiOXx4LyMT+1lYbXLmzHkA9m0bZ+u2PSTa4uqli+g4ZtNghb37duPlS5y/dp3BbsTBsUE+vlQ13C4EQqdcndJCChM4aEybDba9yfEIMwMM24MG+8rCKs1utLFAqHQaPG9SQM9e6t2nwbYkJ4OI1U7AgV1jTG3ejMj18e0nzvPE8Wt008t7N9m25MHX38Nb3/JapqaGcaSmtl4jXx4kl81w6dwJrl4z0/lF99xKoa+f6SvnuXptFilg//6dOF6WxdnLnL04jeM47D98O3OrTc6dPsvk2DDffvQxPM8nlyvwkpfezuLaY1TKHrt278UrDDP/3De4fGUaS8DefTuoDI0xfeUMJ547BQj6B/MMTIxRXVrhxDOneabW4AdHyhyN8jyz1sSxDVWEMOKjx82QoorfMQ9uLq4gUs3FaDhyqOCSsw0lN2wiBNoAfxuUl8KsymAWU5Hq7nNJzNT2cXbsuZVqS5BthAy5DsJ1cH0Px/MAzYvv3MfP/rsf4+itd3Fjeoa//LuP8YG/+DjT1+bxXZsb164wu1Ijn/U4ePAgtptl5sZVZhbX6K8U2LlrL0kUMjc3y/TsKv19RTZvGWOkP8ur7n8Rb37Lm8iX+/nGY09S6cvxlS98itNnzrF1cpitO/eSaM3Fy5dYXqtRzrvs3LkDP1/mmcef4sKFG/jCojJQpNhXYmHmCmdPXyIEHl6q8cJyDt+yUMqozaKnxaT0ENzk/I3FUG94SQw9MRiMFCAbUhAkG+NlVmeMeNHieeD+xudNrtdak3cddmwZY3HuWU4+8VWyjS5KWqkqJIiiiIFyjh/54R+gb3CCb37tq/yH//jf+L0/+QSf/cK3sLUiCQPOX7hIvRGyeWKQyalNdFs1rl46zezCOnt3bmFq0w6iqM3Z8+eprgcc2FFhz+Y8L3vRbraNx3SDBq1Ol9e86lWMVQS1tRkA9uyYotI/TDfocvrsFVScMDpUZPuuvdQWl3jia4/Q6oQMlnzGR8vosMXqygq1jgmevdDssJwk3NaX2Qhyfb7Dw0iUm0TZOPMdWggp4c290paWgUM1kBilHowaZMD+dDR7WDeYplOjqa+Qob+So9lts3BlkSSIqGuD1GmtQSm+5947uOWue1hZneUf//FjXJw2Jv1L7z7Czn2HqLXaXJk2auGunePYVsTS3GnOnDtPHGkO7d9Jqa9MozrHiWdPI4FXvfxu7r7v7ew+8irGtx5hdqFKOV/gtt0Vtk9lyPeVEcDBg7vI5Puorixy7twFADZPjjC+eQfXr17hxJnzaA0DZY9iv49NxJlzV1itNbEsC4Hm66tNNpc8MpYx97UG1Vv/Uu1Epl4tYbQNIw3kTS+Y6MEEgMy5GWzLMReKm43olLbP+9iwuhTpE5Wiv5zDz2g6oSKcX0cKaKW6fhIl2JbgRffcSa7Yx/XrS1y4MI3SkPEc3vD6+ylUhqmtrXBjdgmAA7t3kPFzrK8sc+naIiBoLCxQW55jeXWZc5dmGRnKs3XHXhLhc/HieU6cmsPSkntuHefQvkG2HjjGtdkm/SWP7du3gHSYmZ3h/OVppIDNUyPk83lWq/PMNpoIION43HLn3WQr49xYXCMMEywpcYRgttFhxbO5bccQKuo5c1LJq3ie3pcybOr21Bjr3ljzpMYSyKDVotPpGPdVj6vTvx7eINP/e4uHAXY0QlsMFCx8r8bVK9doVmssSo1Ku6GShIFynrGxYVrrS8xcO8vM4jqgecmdu9i1YxPtdp3Z+WmuzaxQLmQ5fPAgrldgrbrO9ZkqfWWfI0cnEERcv3qV2fl1xkb6GKzkCNrLnDhxgno74sj+fu64bTtHj72B02dnuXTlBtu3DDM0MkEctrlw7iJLiyv4jsWWTeN0WlVOnz1DtdbCE4LtOzexZdchbKfA+mozZTJjibu25MRsnf3bx+krZUkS1UO7v+sQkIoQjZkOPToa4qdetompESoD5Q0C98RGj5l7o7gxINqMpNYCzxFUyg6On2FpoUpYD7jajUCko4tmZKiCiFY5/finqWRa/ODbX8xPvus+Ng3nmb46Tac+y7PPPE211mVqop9iMUMYdrl4+QJzizUmKj67thaQIuTCufO0u7FJKAhqnDn+VWJybB7LsGtLha17XsLC4hwf/8SnSeKEbZPDOLZHc3WRbquFJQUHdo6ya9duVpdnePzbTxPHiqIn2bN/F16uQiZb5vseeBl7tw8TBCFaKzzLZnW9zeJyi+85sgUVp37dm2Q2QFcPTxRG1GwsuiIVz6mkkL/115/h6efOY1v/72PThdGZKOY8Kn0FVpebXLu8SCdSlJCMOW6aCiLpdELWF5eZP3sWMT/Nux94IUNDJR49fpW+Shm04uS5ayitObh7C3knYe7Co5w9e40k1gSBxcNfOcXxRz7B6VOnyeQ8ZleafPxTD9HuKob6HPZM2ezafxed5hx/9mcf5PipK/SVczi2wHU1SoXcdnQP7/3+F/GmV9/F5q0TrC6cZ2Z6GqSF5TgMDPRTyOSwpaKQqdFfdMhns1iWjRDgORanzl5nnw9Tg3miNJXG8HtPQtwUM71ferPhJnSgsY7t3f3+0+cvsN7upM5gc1Km8KT8jmwIgZQyRdkEvucitOTS9Drnr6xxpdHhzlyGLRmPk50AW0qqzQ7tdpdM0qRdW+bzT1zhj/7uEZrdiEajxmNPnuTJZy/SagdU+koEUcxjTzzO8bPzNNoBjuMzP1fj3OUZzl1bxXUc1mpNHK+fbXuO8PUvfgzX0cwsrPHHH/oIn/nSkwyU89iWQFg223ZsYXGpyqc+8zCPPnmWmdl15ueucfy54zzx7DxaCrSEdrdDvdHg2Wef4dOf/TqnL61QLhYMtytNxrLoRAnDkWL3YIGnFuuI1Ig05OlxtZnhhmZGeghzIRLB29/2IOJzf/vH+pd++w955swlbMtgLj0C9z6/U0XqBfNoBBKlQWmFbUmCWLHVs3nbUJG/Wa6zniiCOCFKFIWsC0Cj1cV1XWKlUFEEQD7ng05ots13z/dwHYnrSeJIE0QKKSSu1JSKPq1OxL69e1itrnHt6nUjX1WE73pMjuWZHMxRa8Wcv1al2gqQtkUYxoCF1gKVmOfYrkMx7wFQq3UQWqEEWJaN6zoGZxUCqUF1Q2wJ212Xd+4d5o+n1ziz1MBxLSNIUxrJlD4Cs9KavKqbWsynP/kprJ1bN73/yeOnWG+2NoS+4eb/eZkgPS9SX59pvAfsmHCG1SBiS8Zjb8blcjfEtiS+5RDEZmAGCz5RkjBQzlEuZIkTjWNb7N06zvYtYzi2QKAo5H36iwU63S7lnEsUxQyUcli2RRAnzMzNo8M2Q+UCpaxPMeeT9y32Tgwy3J9BWhF5L8PQ4DB9pTxZV+A6Np2gy+hAnqMHtmFJTasTGNGaWuRF16av6JIAQkqiOCHohgz1FyjmfNbbAZs1HBot8PXllsk8fJ5gMUf6vSfLN2Q/PPjgg8gX3bGPkYE+ktRx0RP4PU7vEd+ss71pkzadXmd8h6kEsyRfqTW5teRzW8bFEhpLaMIo5L4XHuEPfuPnyWj4wbe9gTe/6sW0O12GBvv5rd/8z7znPe9m66YJ1qpN7n3BnfzIu9/JHUeP8p9/8d+zY+sW/ssv/Sx9fWXiOCLrOeTzGbSK+Lmf+wnueunLiKws3/ujP81y26fb6PDAW9/E7//Bf+O1r34F3UgTdbvcc2gbv/FLP86P/PA7+M1f+Qk2Tw4TRBGJMNz8w299BT/+3nfQbHQJoggnjLjv4Fbe+85X8u53vpwk7/L5hRrbhMWxsQo6NriKkIYRN8RNDyp4npYjjeRBrq91aHU7G4BOj8A9+d2T6T1aP39AesfGQCFwpWA2SHi61eVYfwEbiUot2307d7D36CHuvHU/+3dtp9FOsfOtm+kfKPOFL3yR8xev4tgCy3boGxjgVS+/m2KpxINveTVK2CwvzJNzHVxLEseKdjfE8otMbNrG9z74RmaW1zh35gJRKNi17xCzc/N8/JOfp95sMz5U5n3/5p184ZGT/O4f/BVf/OI3cIUkSiBoh9y+dZy77r6VXdt3UyoU6XRDLOCBt70GWRjlT//hYerdmCtS8JWZde4fzJL1bRKtNzAt0fMpa1JZvkHW9AKNbAXhho/IkiZYRwiVLggm/1IIDFDfk+fPEz06jRXRqRdcGHiCjy3WsYDtvkuSKLKuQ8Fu8tcf+DPe+IZXMz48wPmzZwHYs3MLl6/OoLXGl2bBWVlaZevmYdaqVa5dPMdttx7i7z/8D6goxlaCvNaMWZpdebj+7a+yq6LZuW2SD37gQ3TaAZaTB+kwPTtHPudjRxF3Hd1Htm+Uz332q9y6Z5TXvuJO+ooFOp2QESl573u/n5MXZ0k6LcZHBiHRxELyxx9+iNGBIq950W20ml2w4NO1Fhdmq9yT8VAbMEqKtfei1VJlXqd4u3FugKx2Q9Zb3TScLOVaaSSQGaGbq3HvPBvcjXFjmV/MQwFXCJZCxTdXm9xe8AiVYrS/wKBn880vP4pf6cMVkunLc0jg4M4trK3Nc+PSFdrNDhpot5pkXYvPf/kxFIqHv/Z1nn36BJ7tINFUuzFLLbN4Pv31r/D5v/tLnviXv2CzXaXsOpTK/ZTKPmdOPMP16TmKGYfrN5aoDPTz737yneSyGc6cus5TZ6dxE8WDr7ibLUcPMTw5xZ4D+xgtlwC4bfc4r3zxYZ57/Ktk3JBsPoPWgraAh+odpqTFoGMT04PEezQyBBbCBJmamEhz3nr7q+57/7OnTrFUrWNJY7relO0SmUZ5QWqNpr+zIe9vrgM3B0OgBcxECbeXsyxEiutBzPTsKsenl3nq5Bm+8dhTnJldQgvJXLXKSiukU62xvlwl0RYr9SZPPv5tnj55kSvT1wmnr+Iq6GjoJoq1IGa5k7DQ1dQiiysrHWYW1hnP2mwpSnQS8/TlRdrdgNrsIiUUs7PLfOv4SYrD/Vy5scwH/+ELhK02ruNBqchf/vNn+cePfJrzF85zY36RZjP1Yo0MMrfW4O8++yTStekkijBKaCsNWrDbtbkYRSYKIGV6kcIEPTXeaDOCtz/4IOKv/uh39B9+4M84femKSavuRe+mhFdiw+GRqj8QJcpAlNLIL2Ohmoc9X/QEieKWose95RyPr7VoRxFexjUp3woyWR+ZaFqtNjGaiazPVM4nQnOjFXBqvUE3m+Uttx5hc26YswtznJi9zHynTaAhjhJcW+LZNg4w5EsO9luUHE3egcuLbebmEnaU8wz5ggCYr7dZ6SgSKSllbHzPZjW2WOl0caRmqlQgqXf4RicgkIKDmQxjvsV1rSCKUk3F+IsDrfC05FbH4u8bbRYShUvqJOoRXKcYuAaN4FOf/ASy7AqyUpooLWH8gVYanavRSA12iqL1fivnMljSRituduK79XnAtSQnWhFP1TuMeTZjGZeSBaO5DBOFLAO2RcWWTBQybOrLk/Fc1sKYhlJoWxDZLm+79zbecs/L2bL3JWydOMBovg8pLVSicCyBLSWOVhRtuGPcZ/dkDhtNOSN48EWjvO2OfmKlWQ0VzQRymRyb+gpsKWUpuw4OFmUJWwoem9M+VB0bZVt4tmQ6CJhH0Jfz6PcdSo6kYEHOUpSlwJeaR7oh9URj6xRd3NA6QG/4V01QLEIifv+3fkV/8E/+goX5eSxLEqHRyhDYGLoCkYL3sRB4tsPR3YN4GcnnvnUVz7VSeWUaVwq0Vjd9q0CoegkDqTV78/KUBdIfep8CiGJGR8r80bu/n6GRQxSmxjnz+LN86osf5Uvnn6Ocy5JoTa0bcEvFYyRvEauEMoqC0OzflmHfgRG6zSbv//wKXz7fAtfuwYIpF25MT5ACiZUWjNC40tAgUibQdQPLFSnbilSGYLps9wyjdLYb8SINJtvjeCH49Cc/iXTDiLxr4QiNLcAV4AiF1GApaRqTpkFLKwQx12ZWeeltI+zZMUQ3iFPcfaNdM9K9hRbwpcQXAk8Y7cS3BBlpvntC4FsWviXxLIkrTR9AcceuCYYHhujbMsLYlhz9owMM9Y2wqVwiZ0ukihnM2MRoVruKdqSY6HcZG/FxHAiTgKmpHL/0A4cZruQQSYJrC1wpcaXAtSSulHi2hSsEjtR4lsBPkwqUAFtKXEsYC9myTP+kUY0dgemzMKHXPaePJA3SSuPuhUiZLB1k2ZAuiYK84+DbFp6UOKlWYlnaBH9KQ3xXCohjRBhx9lKTrZvGjH4qjHFgpWqSUTuNGilS2d/DJDZUTmEs3x7GszFYmBIj0na4Y88kpUqJ0mAOQUxxoMSOTZu5c6qfshXS50lsIbjWSpgLQVs2QWza0WiE60ClyJ13beEd37MX3UvnSFVbKSWWdbMPvb5tCEmlQKWZHtIkE0gpEdbz9G+NWSS10VJ6M3xjMvcYME0+0IBsri3i6ogsgiwSH/MiEo2VhgBbQmNJjSUN58YK5q4tsWUoS39fARWrjbQsmY46qZyXQpgAprRWjBmE3lv9z4cQJrEqn/XZPJYjjDvECizHIe872GENp1tlwDEc1o4ThIaKZ2qr1LoxYSsgait0FKMsj3p1iTffU2SknCEMje/SRGBBohWJNrVrnq+F3ZR2KZuqm2LISBZznRYmq0CInvJxU+z0Zry5sDcKIC2nQBibLAUXyNkS35JYUiNNvR+EAEeSLrSSTqi4sdRmZWmNw/smCKLITKVUTzUPTA2ElIPS90g54WYne4NDahf0BqSYz1ApV2jVbXQoIbZZmb/B6dlpHlvs8tRaxOnVLvOtiMVWyLPzLZ6c73K9qSmVHPoHbJZXu1QvzjD37CUmrWXu2JozsjnVxFA9H8J3+z1NzOLzfoCeh0Cb4kAb65jW6CSNbUzjg3piRD/v/x79BSB3bR5lpK9kRiIt4+QL46aSsicqBK6QuMLIXbRmodHl7IUldkwUGKzkkYnCRmNhZoUtBFYq64Uw+mtPzMg05MxwvxE7pmM3X9S2BZlMkbxrkQRN/ukzn+Zn/scf8OePPsZzy22u1wPqQUIQa7oJrIcx882AT1/t8KU5GB72KOY17SAgakdEa22OTvgIy6CCKf+moiEVEynH9OwUY1X2ODq9wUjGNKsu7bq+GXLXi2HuiZnePTcvBvnoybMsLFfJCRuJINTGIe0Jk+5HCtgkqU6OVniOZKCQ5eJsjbnFOrfun0JFCheJJySOAqkVltA4AhyMyJGyR1yzyBrp2bN80473iK8THK1Yrt7g37z//fzEL/9XXJHjrl17ePX2EX543zh3jGQZ9SzylsQWkqwlQWo+eqrGBx7vMDpRYtvuERxL0W202T7mkXEliJuYkpTfiTHdXGcMUZUyoXICQ+ieeixTMWMGywyeuSaFcjdonL5U6rjWaKx3vO3N758/d5akVsMTAkdoAq03dHWFNnIrSaeKFCRAIWuzFiquL9Z5waFNzM+tk8SRqaeVai0CbVy0QuMAUgtMNqhMOSftKAJEqmZJSRglTI32sals8Ysf+hRPnbvEv3/9y7n/xfeztlan1JjjrorLDktxa9bilqzNXVmb11Q8ppVgOYw5fq3Nk9c1mVyOXKdFv6ewchk+f67DeivEsczCJni+PO8xxHewZ8q95rwhY2qlP292gMFd6InO77JbzGGcGHK11SSMw1QGKwoI+pFkJBSkpCRtXGEZHVQbtk+0ot0JmSj5VNcbLCyucev+SWSkKEpB3rbIWAJXCOx0PfCEwMWoa7bQWDpJsXgjYgRmOnu2TTmbYcTL8of/8jiXFtf4ty+9ne9/9THW2jWaUcjHrizxgXOLXF4PKWqL/XmHXVmbi7FmLVIM5Fx++MVjnL/R5Ef/4AQ/98U25+M8W8c8xiruBkClUSQIkwCmFHEv2ReNlCkTCFO5zmhjKe30zXWqd/RmSu+cVqmIMFlzZv1I1wmpwi5RouhqaCHoIigj6NOSAlARgny6iAhpkq5tBGEQo2OF43p8+9QcU5MVhstFfA0FIcljYUsjViwEtiVwLLBR5ncEUpspoVN1S2lNoiLGSiUS5XBuZo1Xbh7nF9/1Ri5V68xdn2NL2SURiidrEX843+LnbtT5+Ss1fmmmxQcX2iy0I24ddPixe/O87wUljg643Dnl896PLPPIDc2uCbOYxlpgS0G/Z7GtYLO7z2WkYBMlJvnYSuOBLMsQXDxvke8R2KyTN30MPfHUOzZ+7ykL6aSQY6UyGc8DJFYK8kYkFJRiRCvKQpFD4AnwhSAjICMsLC2xkoQtA3nmVpos1Nvs3TtGEMYIjNHg9RJipREpnjB2gE1PfGmjHRkxa54dJzTbTc7MzVL0HH7xvQ/Qt3cvj584TaM6zdOXLlH0HDblHfp9m46AyzHMJsbY2VFwuHvcZWW2TRBE1CLBO18zxIFNWX7of1yh3YHtlSx3VFzu7ve4peSyPW+xtWjz6n0Zvu9YhXLRIwjTSOZekH661hiapoudYUUg5e7076aISsVVitqmEgl5o1ol6nbIptG4ngYhJIk0JrzQRlf3pUVeWuSEJCclOcvCjjUVqfF8l28+dZldO0YZyWeQysAHGSlxUuBNpSkglpBY2nzq1P8otEYqEIlmIF/gnttvZWJwmEAISkf2cnG1xqnz53CdADvs0EoS1oKYjAXbsjZFWzLgSSYzFkoL1pRLR/iUhypY+SxfeGyJ//SaUe4ZL9CcrjOZkXQixXQr5nQt5HQ14VszIX/5WINT8xH37KlQ8C16+jzCyH8pzEzvca1JFNYb73ZzBtxMIdLcVC/N+gXSVTE520GgSbSgCzSBKoI1LOooYrSBAwBXWFgCbCO8UN2ELX0Zrs/XOD+/zv5dmyh1Y4rC4Op5KTEuabMWxEqlocbgaHAARxtRIxPNfbfczpaJTcwsLdPqBHzyk5/nrz7yCa7eWCIIu7iOIGNbFDyLgiWxLY+84yCFZqmj2TGa4dCI5rELHaxY8fZ7JiAZ5smnGjSDLo8sNHlkpcOZVsxiENNJErKW4M6yw0sqDtFCm9ZqQM63kWgkGts2YlKk+VgyTVqz0k+ZcvWGPfJ8I0tjFJB0PQSQGceiHcfEwkIAoRC0tKIFtISgoSF4nrIfC02sMcAYEEaaii3JZV2++tQlClNDeDmPslIMAXktGJAWWWk0ljiF0SxpdHqpNFIrhFDYjmRhYZHHnzrOWquJdBz++iNf5HOf+BKD5QKqnVB2JVgWoRKsR5pmktCOQuqR4I79B3nLrWPMrkvIFimhKTa6nLy4yPs/d5WHZ1q0MJBFpBWWkIx6NnszkmEr4f4RybtvcXn68irVamAgEWnynqUwFrkvLTwkLibVxVjgPc3mOz1rG4vrd+hCICvFEhnfAx0ZN12q0qEVkUrS3BkjHmJMWrfSmlhrlAAlFDJIGMv5zC/WuFxrMbRrE40gpqA1k0IzKWBASByMmPKlgRpsCY7Vg5LNNJ2vrtHpdnBtE5qc2JLv2Vfk2I5BoijhQjUi0pIkUdSjmMVWm0Y3otlsMFTIsm/3Fg7vH2eoGPLVcyv8zlev8M9nF9BCsCnrMplxGHEkOxzYlpFM5H2OTOa5a1eZPYcHmc+VyfTnsW2LZqtDt9VBJAke4CKw0IgUqdRpvDnC6PPfrdFscH7vh3QArPte+sL3nz9xkqjWAiGxSGV5epGSCgtjfKjn1cEVGCtNIrCVxgKcUp5WJ2Dv1nFq0/PGUSENjhNqTSgMOuelFu9G59BYQmALi2anSb3TIgYiBYiE+++YIOpITs51OLvWoNUNsKRhj3YQUSjkuPvoIV5zSz/t9Tn+7gvn+ZcnlrhWS7AdSZ9n0tfzFnQixVTB522Hp3jpjj42D9psmswyNuEzvKnA0SP9vON1m7nvFXcyvvUAjUbC4swCOorxHAvSogw3Y7huShDAQNf/i0Oks+DBB9+G9eI7Dr7//HPnSFodZC/eJU3KFSllHWGZ0gIbK3LakjbE0hocIWglCUEcYWdcBjyPuaV1ItuhKyRtYfBpB4GDEWUpYnPT8BCm00EUk3EdDm2aoN6NuLDQodYIubTeYHG9jmVJwjghAbZv3sQb7zrMwZygfuoZHn/yBks1RSXjMpixiDWsh4qFMOFGkDBYcHjwyAiFrGCxus56tUVWKrptxY0bDUSjwVhfyIH9GV76kh289q0PsvvAMa5fX2D6xiy2pcnYjkEpMYBXorVRv3TPoX/TkOodUph00bc9+CCy0teH72awtMDS4AqNp8HVgqzWRl3UZvEwGLEGNG6qrwc6IRYaoRIGXY+7jtzKa19+jB/5pbcytLWflSBiHUUXRSI0Xa1pkxh32/Pshzgt26SERFgWnShCxSFF32Ox2UVkoN3tYkuJJSxiJAcnR3nn5gJ3Vk+xY+E4hXYXx3IJbYsLnZinahEX2glrCbRTBtzX5+DqDpdnVphfD3AyHonrEwiXViuhuhKzvthl8fwF1p/7F/qCb/H977qbj33mj/mpn/632LZHq9XBkoYetjAGnyMMKqu1WUR7nxtHiraiNdJD48kELSBKUzZsFA4JHhpXaJA61VdvJoOZUU6dGwKSWDHuO/zgA2/kdW96FRObJ9i5bwSdlgABTaQSApHQ1Yq2Toi1IlEGtUuUIXySJsIKDWdmFmi2mwRBzJ6JIUZLPgpoBQF7Rgd4z5TFbfENhkSX6a7DR5cVH1/u8th6wFw3oWtQCyxhcJN+X5K3JZeWQpTl0l/2zHvEijAIqHdhua6Zv9GlORcR1j2aN55m/fHfZTD8NL/6W+/jL//h79m5cxvNRgcpjSvTF8b6ljJVIwF68Ywbmg3pDBDIRMQkWpMIRSg0bSGIhCARRm7JHhemU8THIpMaUUJDHoustnClwIoV69e+wYf/+VP8xq/8Ndt3D7Hj4GZEqHCw8HHwsZApMW4abz3PkzG1dSJIUqxnKJvl8KYtjAzto+hnETrB93xePOai61Uemo35tVMdfvVMg2+uhtQU2JaFb0sDTafxOApN3raIYkE3gZGSg7YsvnSlRWLbjI7mubyecHFVcfFqyKVnG6xebBDOrWGJCp1kis78l3j5q2/nrz/6EY7ddgjR6eJYqXWtjCPD6PRGQzIO6p5ef9M5IruBJEk9LbaQSCQJklBIWlhEgE2CRYKnoSAUBQ15oRmWkjGgTyRkNfRX+shXfD7/yCk++JknSNbXuOcFk5QdiZtoHGm86BYGm7e1xNoI87iZqZ1oTc61uHvXBAf27KUedvnApx/i0mKVvGsx1VfkxmrEb5xu8QdX2zy8ElBLFL5tHBtKKbqJohubwjtKp76AxDjLRyouzW7MudmAgbzHfCvki2dbhGGEihOWa4oz0zFfeLzDjStNVk6dpLnSJqrO0zjzO+zco/jtD/w6m6cmoBughPEl2EJga4EjIWtLslLgW+BLcFN/hBBgHbxl7/uvnTqP1+6ghKkPIM3kIAZiIUgQ+FpQEkbmB2gcNJ4W+EKRERKFYH69ijeY475X388/fuKbjNpNfuB7b2N6XnHj4gyWZ5Fok0AmMPIpTpd9O100tDJ2wNbhIo1uwOOXr3NtcYn1Rovb9uxm60CZKI55bGaV5TBGC3CkwBaSIEmIo5icLRjJOhyZKLGvkmXEkZQdyUjOZaLPpZyTVDuKWjOm7Eq+drVFvdnlthGffMYxIknCQE7gO4K5y8t0Fs4SLl7H1deRfsDYntsQToYvf+5beI6FSiMnpNCUhGSTbTOU+k8TAUUpmXJd3vTWt2K94iUvfP/8mUt4jRYSsLXGRWGlMtvkVAiS1JgRaQZxLsXIuyJdEDWEGuZXV3ngwfs4MxfyjUdO87oX7eDQy+7n6596BJHE+PJmfUIjWIzDw0xHM+OkZfTfs8sN2mEIWnD75kHe+6LDHNqyicvzi5ydX8K1LSwhiGNFEsVsrhR4xb4p3nhkF6/YN8XdO0fZkpeMFWx8NFMVm0pOkk1LIqpYs9ZNUEJyeDjDSJ9HuWDj2gLHcdA6odkSSC2x200aS+uErS45dxG3f5Rth17It77xLNevTON4NraAvCVxpYUvJCVhjKsI4/SvWA5vePNbkEXPoSihT2r6REKfUBQl+EKR1QlZFA7amP2YFSGHICsgJ6CINDi5lIg4ZmpojMWFBX7pJ95O7Gb5/Q99g7FRweGX3InoxGR0qvloC1daZCwL3xKmupGwKFgOOaDZCkmUGdHJSp6337UDgU2jG9LsmrozAGEY41mSB19wgN9/9xt43+tfzj133Mq2LVuRwqITxrSiCNdSlLI2A8UsBddirhVTzDlkMzbtKOFGI6YbRcysN3lyrot2PZqhTbOtUGGElA6OV6C1aCNvLCCvfZ1y+RLv+TevRDsZkthoeI6UeBKaOmFJK7pARlrYWtLRilCA9da3vPb97TPnya+t4FuSgpRYGH9pXoCLccM5GDAsKxQ5C3xh1CArBcq6YcDO/Qfo2zrJ0omn2TqY5cKNVR59+hpvustDl4p88+HzKNdJQxsEnoZQa4TSlCIoxpDR4Fk2/Y4kY2laCH74vj1s7S8wV0uoNRucnFlkvt4miRX9+Qz/4XUv5lW37EqTDQCpUe0Wq4vzzK6uc22piW1blHwbSyfUW11Giy5jRUHechit+OwacCn7Nt+YiXhkus3h/gy+SFivdYgSCzfWJAEsriUcPxmxODNDxpnn6Atv55njq5w9e5Wc75KINHZDm4BRWwikNp8u8Kq3vgVrYsfW93dPnWZLGGNJA90WpKRsGaLnpFkQFBofRUZaZISBeh0pkdLEsmSUZmJykDNLK3z5sbP0WW1e/La38KmHTzCZzNFdr/PoqXVExgGtyEYhhbTMSLnoc2Rzkbt25bltu899R7O8+qDP0aLNprF+Dm0fBFmgGUrazRpLzTbXltcZyHr8x9e9mDt3baXe7KB0jEpCotoyUatOq1Gnut7g7ErIWqgR0iLrSVZbEYu1mIcuN5mpxwy5NqVsDum49EnB3sEM/XmPXKFMtjjE1cU635rp8DdnGnzsYoOPXery2ZMBj31rlZNnzvCC2yZ47sQCKkjISOO4yUhJUZgZrDDrlSMlr33LA1hvf+Bl73cvTzO23sCRNr4UjFouFWnjCEHGEmYVTlHDfkswKh1K0iaDIJ9CvXnbRvpdFqVFtTDG4HiFn/j372Ni82Zm1hTZyibslSX2DCgibTNe6uPIni3cfniCF94xxsSYpG9A0j9cpBvEzK12WQ4V26eGcZ0sQWKT4NCs1bi21mB6tcabb9vL/Uf30k0SctkspVIZEcc0lmdpNmusNdrUOyHCsWlHgpIvWWkm3KgmXFyPeWK2SbOr2DVYpK+vSNjp4jk2O8fHKRQqdESRj52e4aMXFjheDVmNNB0t0EIRRJLpVc0TJ2Zp1NqM5H2qKyaDzxWSnLDwEHS0oqkVUbqSvfotb0W2ugorVpSFTVFIKtKihKCsJWOWy4TtsE267JAe2xyPbZbHmLAZEpIxaTNpuWwSLtssh4X5Lt+8uoKX83EzZZZnrvDgq2/nUHGY8198HHewBA4cGs+ye+82jr7kLib3bGFuaZXT55e5Otdleq7NQk1zcl7x2XNdTi2EaCGJtUQnCUkS0Wh3KWR87jm0B+n5+K6PIy0sJaguXGdmfp6FhUUW12vUugklH6byguVayEotIgEiHdGfs/n+o6NsHvDx7Bwn1gXrmQGGRrZycU3xu195kofOXqGpNJYt8RzJkaLLT27O86cvyfJjL8/g+D7Hz68RN7rkLYuMsLCFpKs1TQ0xAkcY33CMsYGsO1587P3y9AU2tbpoIfC1AeqxSGW8wcT7kAxaFhkh8ZBk0t/LUlK2BANIVpXgS/UmAxmbMFE89Y1HGc/WKFxZoPOFJ3hoqckssN/WnH92mtnLVwg7Icv1DrVGm0I+QzcSICT5jMdKLaLVCsja0GhHtJoBlYE+nry2QEYKXn3LXhzLQcUxju/Rba+QhOvMrqxxcr5NxhMUPQu0IlCajpLkXdhSsdg3mOVl2wcYLjq0E49jL3oV+3bvZSRX4GOPP8sHv/UU12tNLNfGFoI41fVf1+fwbw5lOLZX8fq39vNMq8L5M+vGgRIZ9FGhUdLYI54QZFMHSIDmVW95K3KgmCWXcUnSIJoYA9m6qQbjKIVWEAkQWhl3nQVZgZHtaHIomr5Fa8jnFfsmKOiIr37raf7s09/me3/h7/mzx06weaSffXmb6UZMrAW7Mzb+UpX5x89QXI+w/QJL1Zg4cWl1TcXmSsFluRUwvbDOqel5Fmtr5DxJrDW5nE8UdGg3qviZHIVKP14WyhWfocECkFALJOPDJTYN51gPNWeqXTpCk7EthnMeY31FGonHwJaDjE1sobpS5Tc/9ln+9NGnWA1iHMfkkBoA0ISQn+gonlyJWU80dOq8/kV9jOR8VtohKzqhqmIaWhEoRUdr2kBdKTpaITH+Yjm3XqPZCXDTQCPS7cqiSKNUGjwKJGhiyziSlTJblEmtsIWmLgX/Iwj5RCNibr3N07MrBFrieh6XbtT429PT/F4Y8M12jNYCPwvDlk2fl8GyLNo3VtiUzeLnfCrlHCP9/TQ6EWvdiCuNkBPzTUquRzljk9RvIHRE0fdw0CSJNtu/xR2idoNEKYZLWQ5OFCn6kkY7YLURsd6NEUmE79g0As1cNWBhpcaxo0d52Yvv48MPfY4f/5M/52sXp7FcD9e2ILWSe1hTApxoJ/zzpZBTz0jq10JefKTEjs39LDS6dAV0MMZjoBSBhppOqBJvhLUIAXK0r4+K71G0IS8FWQmeNFpPS2naCiJt3HVKmXA0R2oyHuR8g0iuWy5hIctkxuXGah1LazzbxBb6ro0QNqe7AZEjGHQs4lWFTowhMea69CeS0nKHTYMD5HyHUilPLutTD2IW2hE3mgHnltZZW68SxwrXy2IpjS0dsl6RqNumub5IpxPQqjWYm1tDJYKSD+vNgGsrHXJScMtQHk+BhSYjYkqlEoHbxy//+V/x83/zYebaXWzXTS1yA9dqAA2uZdFnC/ok5G1odS2uPy7wTy3TP+gRhoaLLSQ6rfXbJSE28B0KiNJoNlldbxJEIb6jGcophrKKPkdSsAVeOrcEwhSYSTk760DG1eQ8TamgOO9ohGUxs9aghYO0fTpBTJwoulFCnMBIIc+OnMuYL4kiE47cJyw2SZspz6Ow1MRrRlhuFrSiknNIFHQDxXIroqFg+4jPwNQhnGwfri3J5YtkcmXiMCbqNomjmDgM0ULRl3MZ6cuTcwVl15jnoPCFptFNcAoFum6B//JPD/FXX/oqyrLwfAcpBHGisIXASysZxVoTJVByJK8Z9Hj9Fo+tWyWBtlFnpnntjhrFgo9IFK403jGTCmMc7o4ZNzqxJlAauWu8n75Snq5JIsZ3JbbUWFrjAp5UFFxF2YeiC4UMFAqaXFbj+wrH1SwlETPNJudWGvzMT/wU73nVy6hYCRXf4kDJ4j8/sIs7bt+MDmP6PEFWCfqFTSGtlmRZgoJW5Ne7SMdDSou59Q7nVwPQirxrs3OwyLWWw9fOzTM3P4vvu2QyBRzHJQ6arC8ssba4RhhaFHIF4+XRgpG+HFsGC+wfzrNnpEgh4yAcj0fmO7z/c0/y1VPn8P0Mrm2noc6GGwMN7UihlMa1BFkLcpZASVhuKqp1TTWC1YzL/a8sce/BAm4sKSIpCElBGi1GYlRIJ9XZJSDveNkbaYchAghCQbsjiNMCyraErAPCUmihsawUrJIaN6vBBZEIdnmSpUaXOFYsXXiW5vo8Jd/laMXj3x4q8K4XFOi0miyEMTfWY6aURcbR5FyTG2RLcEnIK5AyS70R8o1Layy2QtCa27eOcnj3Vi6saL767EkylsaWHtl8P45v0WnUqNUDpJWl2xFkM3mKxT7yXobRoRG2TI2zaWqUlcjl24ttPnFpmc+enWep2cVzXZLElONWKdgWa0VBwq5ChpeMlzk2lOdIn889Qx5DJQuVsTizknBpQXHueEwS5Dl273b6YigjGEEwKSQFIbDRSK2x0jRRIQQy7oR4aHw3LeSoTR30NoJEglKCbiKpJpJaIujGEpUI4hhUJCERnKx2WawHIAWf/PJXmF2YoyVsZpsxbUvw7WfnePiZWTpacrdwyCrFaqIIeqs5ZvuFjOczMDhMIn0urrZBJZTyGcq+R6gzDAyOsGNijE3DQ3jZIn5lgGa9ShB2yBVKdOOEVqeNjiCT7Uc4BY7fqPFXj1/ntx6+yB8/eZWvX19nuRNhWSbCq1cwKNEQJZqRjM/rdozzA/smedOOISYLFjlLUPFtVhKHMw3NlY6inmgG8xY7N4PTmWHLWMiAIylojY9G6ISSgJI0GJOHRQYLD5CxMuEPjpVif6kDI1aaIIZOBFEMltaIRKASSJSEGFRsUKdjjqToWGDb3Kh1eXZ2nURaLAQxTy8mfPFsl+Vqlyksjng2Xa3oxhDEECgjbyOVoHM5yuUic+stlloBaMH2/gL1TofPPvZtvvTkU+ybnGCw3EelWMKOEzrry0hpo5KY2toKa+s1Hjl7g9966Al++QvP8mtfPsXHTt7g/GINrRWua+NYxmmSvrARcdIEz1YyFsc2TZD1HG40myy3IjKOYDBrM+RbWBq+MhPy8StdwlbEtqOSzFaP3fuzTG0uEndjYm0qkma1pgzk0eSFYFiYkEUpbUmUCOLEhAz0qjaUpCAvwbM0JRcGHRjyE/rzCa6r0EqgExPHcl9J8sqSZ1JAgKV6myBOaMSKby+EPHSmjgCuhBF/0OpQcwWDjokcUz3twBGQz1Gr1zhzY4Y41uQzLtuHSni2phuGxHHMWDmPbVnkXIvq0gxBNyCXK6O0zdWa5sPn1/iTE7N8bXqFSytNIi3xPQfPsRBpcn6P4L2QuURpio7FC8ZK3DvZRzfogEwYKmXZVsmzuZjFRnN2rcmlesRSmHC6HfPRhYBnn+0Q6z6Gdu5l06SPHSfYaApCUJaCokgYQDGkE/qlwhMgwzBGE1LMxRTzCZV8zFA+YqI/YqQ/YnggZnAoor8vpr8/oVAwRLekxrY0MqPw84q3DkPRkmCZyhHtboQQkvm2Zq4RYVuCdRRPdCI+HgSMVhSj+YSCE5NBUcjb2KM+K2tVziysAZqtA0WynoeNYK0dsXWgQn+hBMLGF5q1ueust2o8duUG/+3h43zg+FVOLbfoJBrHtXFdG1Pns+coM9C0SCOENZpYKwayDnsqWUqOYrxSIpPN4lguA4UKec+l0eqy1g5Z60I1hJJr4Xs2n5mL+OAnNdOfXyS8ehwvjul3JGVbk5WCvBQMWpJhS+IJTVsLOoAcLgwwtbVMZTcM324xcIdk4Dab0p0u5Rd4lA555LZLMlMaZxCcksTJg1uWZMYsMptt4jGLVxz2ed/BLFGIcUakWRVBEuNaMJ5zKboWjhY81oi5WojZNBkxMhEzOh5R2iWg6NNqdViqdxGWRb8nqdbrLDS7NMKEF+zZQSaTJefYFK2YS/MzfOjR0/yXhx7nyevzgKaUdenzHfy0xkGCCeXrxRPqNP4E0gSANOtvqujy4iOH2LHnNgaHJ9g6uYuJkc1YEtbCmEhoNhdsDlQ87hrL8o4dRX7r7go/cH+O0haL7uoCYbuDa0kGpWTSsimn0Hcr0SxoiwUs2ghkFGjkqEfme8bJ3H+A7OtuI/uqXeSODZO7Y4DMsWGyxybwDvRhjbnYYy7ulIu3w8XdncHdX8A5XMI50sfPvmcr9+wrEwUBKklDsoGCa5GzBUkC6IS1VsSX2gmFTYLCVk35gMTZ45JITbVWpxEo+rMeno5Zada5UWshBUwN9JMkERlCnr56jV/94uM8cnWB8Uqe1+zbxCu3DXPnSJbbRrMcHMixu5yh33PwLGuD0U0CrTDyXJu9qhWaHRMTHDp8jOHxHQxWhslmMuSzOSaGJhgq58jYNlJA3oM8CeMZwdSASyEPbsGDgZ2EiUMFybC0yUtNLBLqWtPUmhAIRUKsNdaPvfs971+88gX23jkFg/uR+Qoik0OIBCEicC1kuYCwLYRMsPocZEViDTo4Qx7WUAZrsIAeHiK/dZyhyjbmZgImCh6tICREoTSsB3FaMlyjYk3H9njDaybo39UHFYeak6XaHeOZc1f5xtUFNvdlsSwIFVS7CTnHYXPeZXVlkbVWm4+euIhtubzptoO87bb97BnKE7RqJElsVFBpUfYNxjKYcwmUpp0u/KKXyJVuq9CXzeFoCGvLVDIZ1qqzLC5eo1qvIoSLawlKvkW1G7HUTrjRTjhRjTk9HTJzJSK7GqODDt4aWDcSXEeSaJMja6UD7AABkpe/5a3IOI5RTgHcCmiJcIoIr4zIj0NxFJnvQ/hFrL4MzmgWe8THGfZwhgrYg/3Ivj5EsYywbHQ7YEufwzuODFH0oZ0k6ETRjRPaiTJpkkg8T3JipsHPP2zBLW/EPngPK40Sa4s1ri+voLVRJbuRIkg0rTBmLJ/FkookCSj7Lq7r8uCdt/PW229FScG/nLhIPdZUMh4ugowjKGUtBjMCqU1CmE4zJHoyXqflVmbqbZ66PkMYRSwsTDN9/Rw6SSgWBinkymQch06zQacbstKOaXRjxqXilVssXnmHzdAhn/XFNniCwAUfmBQuO6TPActjiyXJC7PRCoDExoSCBU10Zw7VWURHrTRYvYQojoOVR3hFrFIfslhCDowgByeh2A9eHtvJm7wd2eGREyf546+e5pGrS3QiBdJCSoucbZH17PQ6AVLzD1+8yLdPLSP9QU5cjYnjFl0D8NCOIxzLohMrMpbFpj6Han2dUzPzXFpeo5DxWGvWaHc6JHGIqxXFXJ6BokspIym6Ak9KVtsRp1Y6rHcjI0+kWVg3AA4hSJKErnDwXItTF86wUg8Y37yPYiaDowIKvkUu5zJRtLhl0OHeYYdXTLrcsdXh1tsz7Htpga0vHaWbl1yTMU2V4Euoi5gWiq2Wxybbol9osoBUSFTcgvYsorOACFagswjtRYi7aGUq7Qs3A5VxxPhRxPg96P7D6MpeZHEHwsuhHQekRX/Z4an5Oo1IMdqXZ6KUo2SbzOQo0cRJQqLBcRzCoM3HHvoW1eocl+sxbsahG5n4t2akWA8SWkFCJeey2mnz2fPXeXaxieXnKGczXJyfQwkoZnxetm+CybwkTmLKGZvBPgetNTcaCdUwMWJcpylbwhRwNogIWJakHiZ84fQlrqysMD65B9vyieM2sW7QDTsUfI+hfJG+nIfvu1xuKR4+0+Xs4wH1J1cY39bP7e8+xmJG8FQn5FtJwLk45GwccDyOWEqMQyMGrB99z3vfv3zhy+zdbJEkVpoZHIGKQNvpghMi7RzaLyGyk8TWAIl0cPITSH8QnURobabN5GCGR06ucWBkC/dsHyfptplrdWkEZkcsgcCRRl3TGk5dWWe8z2HAzpC1Sjx7fZGLS3VsxxTTUQqW2xGtEHYNVbhv9xhTRZfp1SZzjRZHxgeJgwZx0kGomFq7QydKuFyLWGorlBDEsca1bZCQKBNpbOIMjbyVUpBoxXy9y7aRUfaNDLCyOA0qZL1Zo95qEnQDlLRxvAwjfXk2DeUYHc1RGe/Dz9sUh+r0Hb2V8zcKfPHRc8xakhUlWNNwLtZcS4yT/eVvfSsmdUvYIBzQoJPQ7C0qsgjbR2SKUNiMzk4gMuM4pWHCyKLZDHC8GJ3U0V4RKzuGzk5SnNjKz73rhVTbLU5duspco00zMhU7PcemlHXxbAutwXYsao2AX/2r0wiRJ5stEKWZbyLlwATFRCnLCzdVODySp9Zq87Xz06hE0Q1j1upL6LhNxvOpVIqU8z5X1iO+dLnBbD1kb5/PzkqGTSWPrG1tRNP2oFuh0+L8Kt1mDcmZ61dN8NTKIkkcsn3rLg4cuo1d23cwOTKKsD2qrQTl+pwO8vzFwyF/95EWM2cXuP+Be+iWc0yHAReShIuxYiGJWVcxa4nB1U0ymG2Dk0HaGWRuAJEfAc8DJwQ/i8yPIAtTOJUt3FiN+YXf+xT/9lc/zdnLLZzSFmSmgvaMnFYRvPyl2xmb8vjipVkurLZIVELWsRjKekSJohGGab6OwPFs5lYaPHx6nnbQodYJQBpR1I0VWkgGXc1ao8nTN5b54oV5rlbbjBR9IpUws7qMZytU3MWSktGhIntH8rxpVz8v3lZmpOQynneIg4gkTnAsgWMLip6k6JpILoTBf5SGxWYb13FNXI+T4dDBY+w/cBeZQj9XF5Z55uxZTl+8xlfOLfG5s4rliwHbOx0G52s8/Y+PEq5dZ/OeTTQ6IZ04ppYkNJSmpmEtiWlrhXQl+Nk+yG9GV7ZBeTuiMIIsFCFbwvYK2BkLK6/43Fee5RVv+VX+5MMP8c9feoyXvv3X+OO//Aq2P4BTGMWyXKLWOraq83PveQHlUpEoiii6Nq6UzNU7NMMY13IMZKAFhrEFZ2cXuTS7RK0TgxBEKqGTKCxLstiJObfe4dRqCwQcGetnwHeQwuJGrWXgCxXQaK4SBCHlvMv2AY9tFQ9FQidK6EYaS0p8KcjZkoJj41oyLatyM41lbr3JcN8AA5URDh19Ecou8Bef+AS/+nf/zEe+fZZzSy2ercV8daXDQtBly1g/E+MD7N3m8JK7FUn9JBkdYFkWriXxhCARgq6CNpIEgfR9F9exQQqEawMCJQRkJpH9x1gLxrlwZY0wavCNx57mzNUb7BzIMVHJM7+8ysOPPM164HH8osupWQ+7sgXFEEdfeD/f98BrUEmMkNJoJVKbgpbS6Mlhoim5NsWMy9W1JutdheP0IH/jqw2V2fyqEyd4loVnSS6u1pmtN6hkPFYaEVEYgbCZq0dcWAmIY7Pb41ozZLnapdqNidJEh6xl4UtBOw5pJ2naYhrhbwlBK4xxigMUimWSJMvnvvYIX37uNLOhYk7B6UBxOYBOrOgkCYmwiROXdgiJJTlyyOfeYwP4vr+xZaelFI4wEcRKg3SlxLeAJIJYoK0S2htH+1PI7CjVrsulKx0WZiUTY+Pc/8Jb2DI+yFAxw0tu38+RI7tZbWk6ykYXdyAG7yUeeSlUDvBj//aHGB0bY2W9AemuX6TJAQCbiz5jWR+NoNENmF5rYafx00qZWMNuGNOOjW81UQnzzYCzK3VOLdfIZy2qnYh2BFGsOTfb5OJsjSSKEYlgpRGw3A5pRBGhSkx4oNTUo5ggSVMNb8KNgCbUirX1VWYW1nn2wgyJn2NgbBPZjE/G8+hqQaPdRUURieViFcpEKiGKYOXkGmvPXuetbxrkFfdM0Qw1zThBSeMfdXrJzD//737y/cvzZ5jaPIK2h9DZLQi7AtJBqYRKJceO/QfJD+/m8K3H6EYhz5y+QDsIuP/+e/nJf/dvGJqcYmpqguGhERLloP0ccaIZHh1gfW2dq8+cYKCYZaUT0Awiyq7D0cEcGs359bbZHkIrkkQTJRGrna7JWJM9v6wpwtYIFBnXZqpcpJTNMZDzmK91ODpVwbMEORGxZ6xIGAta7ZBAaxqhohkpogQytkXes1Lo2mRo9zAZS5okY0cKZGudG60W19pV6knCQq3BQq1BvRPQDmImh4cR0tQ+OzKaI9NZg1qLpKux/YiRfQPs2NnHY09WmVnuIG1T7MIS8NYHHkSevjrN+bkWZPrQqoqIl6B+HOrPQucMxCtgV8DK4pcrlIplLly6xvW5ZfL5PIVSGdVqkXQD4jBAW5hdtJIQwpAffsfrOXJwB1EUESWKsmVxpD/DQiviueUGiTZZyBqoB106idrY6kBiqk1oDWjB4dEKbzm4iTcf3MKLNg8yVvQQlmCl3cW2LcqlEvl8kUzGw7YEfkoYU8NG46Zx4wXbAgSJNr7fXnKWFoJNBR/h2CxEEcutFhfnZjkzd4PlZpsgSrCkoNFu0e6EZF2HytA4pcFBcgVJWNeoJEN7ucGBg5LXvnTKxOArbZwkmJgY2Q0igmYTOstQfQ49/2moPwfNi3Dj0yTX/xbVuoBQCpIuhw/uZLi/QinjcfTAdug2UWGATkJQsblOmXSZKAiY3D7Bi17zMi6vNnCEoOBKji93uFg3201aUuJbNp5l0Q4i4iTNv5RmD9Q4MTuY7+jLM5oRVKtVFleWmF1coFFv0J/1ubLaJpstUCr2YWkbX0h81zWpKWnQVNYytbhaYcxKOyJSZhNDMPlBcayI4wTHstC2R5JILKXoxjHb+7cxWe7HdS1c22a91qDb7ZArlsmVN2FniuSHXRzfpjEfmYQv1+LWo330Z20ECk9q3LTqh7zt4E4Oj1dQZy6TzHRQawm6HSI6a+h2C1oL6OVPoeoX0e0mEyMlpjaNkS/l2Tw5bNK0ZITWHTChSpiMYYnSGt1p830P3MeBfTuIw4jFbsJSJzRpLNKkG2ZtU/EuVAprQ5c2xlOiNDnXRsiYq7U259banF2uU48SbAFDBZ+ZahuVSDKuj217eJ6P49h4joVtSWwpyLgOtpTESmNbEgP9G5+lWbZNus9yO2CtHSNUwsXlVfYM3cb3HrmfyVwWrWISpSkVclTyGaSGxuJ1tIywh0fJTfkkQUhSr6K6VUbGsmyq5MgCGQFZmboni7kMmaxNEnSJVyKSWY2aqaJWV9Ex6Eijl59GNE5CEpKRHcqVIuVSgbxrGzGiYiMfBCBtkyuvEiQWUWIxuHkLP/KuNxOrBFtrKq5k2LPp823asWKtGxCh6UaJKcojTeyI1mqj4E0jSGglGsu2jIZjOVRbkak4Z9ssNSKW612uL9dYbXWJtMLzHHzHbFqeaE07VmDZFDwLP90BWvXKRqXEr4UJ3TDk0tIKL9x2D/sHh3n88ldoxG2ybsa0leZD6SgiMzSG0zdKdTnEzkr69pSMvaJhcGqQ0eEcVmJiGW1hKtzJ8xemuVpdxzm6F2ffbqiUSDoB0XKTZKlFslCFVohO1tHdOUjatNoBYRQjiFBxE+ImhDVUsIboLiGas4hgHRG3EEqhu4K3P/Bajt1+mKJOKFgCz8/geVmUNJkcGSnZUvTJS3qpaGkaIMZISjQlS+Ch2NqXZ9dgCYSgP5dj20AfZ2fnsIkpZo0CsN5qsdYJiJTCtsxMipQRIVFiqi6ZWjOGXyKl2etb3Jn3uFFrkLNdthQDutYiXqmEkGbwNFBrt1lrBcxW12g0uohQ0po2O9UM3TmBOzVIsLSAo2+QL3p4lsCTIq3dCNL1BJlcPxR3IzffgX3LPTh3vQR7361YOw7hHLwfueMByOyCuIkQik43ptttI+ki4hitFJAgVIiKG+ikg45b6HANwnWi5hLliuTHfuh+FqOElSgGR7B5qI9iNsPWks8tA3k6YcTlagvXSfM+0spKSisKrqmJ2IwUs9U66/UGruuCVkxVPCxbUs7nyDgeYRQTJYIwjIkiTUka3Xy1E9GKFEksiLUBnxQmGmvStXnLkM+rhyRxkrC5kmGhscR6JCgMTDA0MI5GEMYxE8ODDFUKdIIui9cvsDy3yEpV0L7RxllfxR05TKi3IReuMDEsyAmHrJTkhcTRIBUOXasMXr+pdaE9RGYMOXwIMfkCGL4NVdwH3gh4OWIV0Q1jLBEjgzlEXEMkbVTYREdNRBwZbF0H0LqKaJ5GtM6hVm/whlcc5VX33U6rHVLtdmm1m7xoyOeOAY8gSoi0QukEle7/aZJdTdHQjlLMtGKakWKpHXN5vUktjHHRWErh4jCzWsfN2KYKkUqI023pY62xpUXRc9EIuklMpCBWCl8KtvgOLy063DPucOtRi91DHkv1Bolb5PDeI9xxyxEy+TzdMEQiqDdbNNsBtrS4vLjEXz12lt97uskvfKLBE99u4odt/PIAXt5nuF+ZOB0lyWqLDCDXFhfprK+DbeqNaywcz8HJ5QwntW9A4xw0LqCrp7DXnyEr2zi2xIkWSernoHUN0TwP1RNQO4le+bb5v3EJtfYsYv04SesantPh5997D319BTKxYI/TpZx0abRjNhUsDvT75GwTJeBIUzRZYLw7a11j4Jiiyop+P2vqggmFsH36cllm1moEQRtbQhQl1NuRWdSlJlGKsifJOuC5FrYQFKXkUM7l1RWXXXkL7cP2zYqdw5LtIzs4tG0fkVKceeIsLFUZ8m2yjqTZ7tCOYsI44dGrc3zl+jJP1AK+sqR412/P8le//jncpeNk+ywqBcmQEAxqzbhUVARYv/ELP/7+sH6DTZMDyKiBnXe5fGmebz7yDFFjllF3GlW/gmouY0VVdNjkI1+4ylq1wzte2o+vllC1aeguoTvz6MYMtOchqoLqQmyCkCBBdetMTbl0mhHnT8wy1405uRbhW4I+V1B0bGphQoxFpJRBHIWR8a5lsu+kJRnL+YznM7QTzcToECOVCq7r0O60aLVaVLJZ2kFMGMQ4vV3iNdiWICtMHGXBFoy6FpOu5NaKw0jWIeNLvnwxJoiLbJrcxfGr0xw7eC8Hh/fTXp2m0ZymFSs6ChzHFOG5vlajFUbYtsSxBfWu4vIVGIhCprIBa8uQPZXQrzV9tuS+N78V+cy1NY5fmgVX0Erg+PFLvO8//S1v/vG/5ZXv+Thf+tINHCuA9hKiNce1yzNMz7e4OtflmbNVZNZH+w46V0KURxGVccTAZkSpgigUEMVByA2C5ZjyC7bF/u0jTHdimoliS9llU9kjiTWdKKbkWFjCVLkzWnS6oEqJSMuXxImiHgZoYeG5Hq4Q1IOEljIvnWgYKmaZGswx2pfDswV5W1C0LPocyagt2OIL9uZh3NNESpBxBSVf058XBKHiw499nUZzgdvuOEJmsIAlI+pRwlpgDCRLQLXTJdEKyxIolRArhXRhPkj4zY+G/M5fQqfj8KIxizf2u7yp4JG/72VC7p6ocGBTP/VqlR/8qT/hxQ/8Gl994izCtpmpBrzrv8/wqYdjvIqDyAgW6xEysZjsKzK/0IKkhefGeLKBq+u4VoAr2riqidOtQm0RvT6DXp9B1G9A5yzDhSVGsx63DGR59bYC24eyDPe5+DaM+4LxrHVz78+0HmQUa6YKPltKPmtBQJBuUdZtdZAGEqelJX35LAv1BhlPpvtmRPg25ByBb2syrsS1BZY2xT2H8g45RxIHivkbimNDHk2rxeWlNe658xhXpi8xd+kc64HmYqNrNrYVEqUEtmWRIIhCTRQqk+6faKpRh/OtLn/5WJ2nTrQo+DCMYpM0jCRtu0ixFLI8/wxf+uq3qdXqRFIQuRLyFjOrdX7wd0/xT1+vo8oeQf8k04FirtNlJWjTaqzz5Ldn+dO/Psdv/9Fz/OYfPMXf/tUzfO4TZ/mnfzhFe2YeWbsG6xex21c5+fWLfOrjF7ljwuV0NeChS3Wema6z2k0YKbvkPZvJnCTn2ibOMNUeQdMIIpaaJr80ShSea+O7PkoolNTkXA/LdbFsh/m1BhnfJYgVrW5CxpVkLIGnNRlX0LUkq9h0pUUjSphrKaodWFtRLFbb7JicwquM8KG/+CPCapXl9jpSaDzbGH0qjeIY9W3uHXPZnFXEQUic1i/r6pj5TsDZ6x0sCyJH0tKG6HY3Vhw/fobpxVmaYcRmL8Nh7aIijQ5DhLAIapJP/dYM3jMd5tcXeeFyC4Xm6lfr/NKJLh96ap5aO94gji0kno7ZMl7gRS+YoOR1wdLgw6PnO3zt0TXedGeBR+fbPFdNePmk2SC8HYLraBzLIdeS6HT/XiEg0QYWyFjCJMNKh1gpsvkM0vFotKskzQaLgaSQzVNvRLitCMuS5FyLMIGOMtWUhBB0kgQXwWxT4yMZkYqhrI3qCO4oO4yXNvPsc09TlgLLlhQtQV82z3waY5l1JDnHYlcG/tv3bqF070v4D3/wKP/0hSeR0kMIiHWC4wnKYz5qQFNsKbgMsli0+fOPX+K/fvAk0oF7LZ8PxVk+GFh8MD/Enw1u5q/dIr9eFez452vc9/A8H+ob5s+1y6tPtyie7FDpzxojwJcIFzblbB4YGeTQRAm3zyfyC8w0CuD30T+UJxTw2PmOkc2J5kagGOvzEQIytgnIb0WmWrSgV/8QMrZkNGNRdAUZ1yLr+mRdi0a3TdgO2Lt3F3e/5tU0MhUyhQrLjS5rrQ5BYvDvII7JOMZRmgdKtqaQlQzkJVuHPbbtsMj1Jby67PLCfge/Ns/tu29jdPs++kZ20whN4TSlTeyjb0lm6h1qQ9vY/Mr38Sd/8MscO7SJKAiNnqtAuDbWlIXwMEE8gCxkfPK5DLZj9nALlCLSIXrrFMWP/w25D/13QimBDv0Pfi8TT3+FyolvkPntX+EW3+eFeYcDO4YYzPskWuEJi6lNFSZfOMjEtiGcoQmWkzF+5vfnWEk2sXX7LlaDmKcWAxwhyNmCZ5e7PD3bIQ4S6m3NTDOi1gk2qoGijLne50ryGUnZs9FC4ro2Gd9nYmo37/rhH+LHf/XnueNlL6adCGI/S+wViBKbZmDcfhnHItAm9r7PNRnMWTSbi5KxYUmuLMiOCIaHJfbaRZq1Kl+//DR/+Pk/5p9OfJFmEOBIC8eStOKYaidCJ4okEKi2R2ViP6+5Y4tBcoRx8g94EVlbE7diIy4BOTu/yPLSKlnbxkYSd5u4r34F/V/5FNmX3os9PoEKuogduyh94HeRk5NEnYDCv/8JvLe/FdVtE3c76CjEQjCU9Ugsi1O1Nl0rS27gAM9dFXzz2Vn+5bMrXLkUUMzYDGctBj0HW2uSJGG6HvDsWsJCR9COFJ1YIVN1DykIlWLXWJb7j46yb7zAluEiQRIzuucWXvbm7+Xo99yDV87TXFuHKKEWQJSvkM2XCFSCSDR+WkmurcCyNZuKDmXbQiiz643tCrKjNoXDHv7YAKWBMWZXr3Px2glanSp2mvwl0ASJxrEsiq7PlRPnCKvTaCWJUm6Ou4qjU1l+5I4iUaKRFYm93RRLlNsmh8XUaIUgMakejuUSz92g89BDJMrIda1inN3bcYslWn/9N6z/xM8gAefIIbRIKIuY3a7NNselguT6zBonL7W4cGGBv/3rb/Mrv/tlFmsNfunXPs5/+a+fxRUG+VuPYhJh9Oe1SHG5GXK1GVMP05DtDc8OCCHJZi2CTovFekjiZcD3CEUWz8/gezaqG3H89EWeuXiJMzeu8YUT53hyvkpoeawFCYk2pUCEkIRKEieaclaSyZnYKksILFexwhhXmWKmDWuhoBZJ2oGBmRMM8mlqiCkK2SxXnlvgG7/3m6xde4otoz57+n2OjWX40+8psSujabcV0hIbW0lb59/+dv2nH/prgk4bbNglMrx4eprk/DS5970btbRM60MfRkvIvvl16MB4691jdxL95d/x1GPf5pMmUJ1WbPyA7Sim2uwStgM++YVnmF9eR7o2tmXUwDTWik6iiZQpfONbmk1Zh44WdIRFvZtGDGijwVhSsGfQYaUdsxg7dIOERLu84PAdiFDzjcee4Fd+5wN84G/+hevLy8xXa7TbXepJwmRfGanNwuZ7Fp4UOBr6PBgpWGR8ie9pHKEIuha/87UuXzmzzLEDt3Nw6wHqK/PMNaomUEga7SVWmm6kiRNNvycp1aaR0UUOjyje5XV4cNJhqBFSvRzCbEL3RoQzF/PrC61fkZVigUI2Q5BAM4ZIJUg8RKGM7BXAdRzis2doff0Rcq+6n75f/gXiuTnCL3+VJBZcW+twrtFiLolY1wkV16R8zHYTOkKydSDLRN4ELmlh0D5Hypv1tRQ4jqRSsbAcSafnMCbdZ0KaTIm5toWdz3Joa5atI0V8x+UrjzzMT//6r/B9P/Vz/PNDX6LaaJD1fYbKZW7ZuZX9Y6O0lGJ0eJBAuqy2Y6wkIVAJXZTRZrQmTEBFgk+ebPP4lRY/85a38wMPPsB9L34Rr7zzbnbnPYZti4wlGcg6DGQd+nyLjtB8bi3h7y8lVK9eprU0R3VdEdcTwlWFrEJjQaFXQFTTWdteuKxf9spX89TpSwSO5IHE43c6AvvwYYae/grBM8+xePt9WLcdZfAL/0J04iTx+YsU3v39xP/pN/iH3/iv/GQ+wRfGBdaMY1P4RhkudiyLwbxEKEU30JR9k4UcJ2a3FseWxBrasSLnWNiWRS1KaIXJxnSMFUz0e7xifwlXS/L5HJdXNCevNzlz/ToA2WyGsb4yWc+hlMuwfWQUx7bwPIvT16ZBJRS0pt6oMWAlZB3BalewOy+4d7NNX1kykNN86nyXi8kmdu69lXbYoNts0m03mL9xg5lqk0vrbXxLUPIs9vY7TA0WyGzZzN9/fZrbR7q85Zjk1/6xiWjE7Mg6dCLFbJhwu2PiON/7d/+InF+tU621TAUjbeokfvehdYy3ZydeuUTw1a/Q+NM/Q1g23m1HSJB0Y0VbmcpzrpQEyrRjSQFSsdSKaXRNhGzPyVyPErpaU4sU65GJfFrpxmiZ7puUElxrTZIoSp6gv+Sy0IKHnlvlU89c4erSAqP9Ze7atZ2XHdrPQDHPpsEKLzqwl6O7d7BtfJRiPoNWmotLqxxfWKMeC5ZjQRSBjhTVTkK3q7BiSETCvQe3MrlpE9dunGVh/hq1xgqJbrF1vMDd24u8cneZgYLL1WqHZxe7XF7tMqTX+chvvpO73/5uPvF4k6U45NvrAX+/0OBjtS5PdCL+sNbhD9ZbTCcKmXNtshnXlBzxHPK2lYacgZAWWBYgSarrKMD/nvvI/egPmazi6rpJiE1jSXwbshaMejY5x/g5B2yL7VmHrGVkYSuIaQcKpQym3U20SaFUmIh9aeIXjcsvLaknBQXf4cR0wMefWeTZK8tMlYu8dPcW7tm1hZ0jFY5sHUdIgVIWw31DxhEehswtVbm8sMxKvc31tQaz9Q71SBNpwZ6SYEfBQiNxXVCB4EIdvnDmOg+dvMLfP3ycj335af7my8/xh18/z2fOzLPWCig5UMw5nK12+ZfTS/z6R0/y9SdO8467XCLlMbMYgEzwXBtbJcg4ImNJ/FSkSjeTxXVsYqVpJpowtbw1JqhSKwWOT+ebj9H8xrfI3n2Mvh96F93FJZof/hgAAUYNa0SaRqypJYooTQdvxJqlSJlaX0gCBLEUJJaF7u11iimnJwVEkSJJ0l2/ABA4NlxaavP5Z5cYLzm8/vZxXrZvgEMTfVTKRa7UmzRbAbdu3UWz3aFabzC7UuVTTzzNRx97mhvVBlGssaWgGkY0E82lrmYhhnLGiLQYiW17fOobJ+jftotf/p3/zk8OjfFHXp5fcHO4iWSGIie6RYr7j3HspffzwmN34jgWa+R4/4e+yE/9zJ9huUWEZbF/7x5e99rXMjQ0xPbt2xkZG92YvaI9e16/6jWv5VunrhJa8Dad4S+SLCqfQ956AN1oEh4/A0EXa2QI9547EFmf8PhpsifO8M+u5PudhqnwkCKxsTIENK4wA1j1dgdQGF15wzWZihCE2U0gZzvUuma7CBM7bjSiIEi4dU8/7/2eSTzpcGE25vpCi7Jj84WrNV64dzdHd+3lTz72cRxbsNRoM7tWRWtTGTRNiEBpTc53GMt5DFuC+0dstpccRvqgrQW/++01GpuPcs89tzH+5//Irm6XrtI8fO8LiPbuJWPZSKBer1MsFaiurpoZhsmvJenSbLXo6+sjm8szOzvL9h07+OQnP8Hp06f4/EOfQ1Cf4RWvfLX+yhOnSFybY7HNDwaQEBPTRQI2RWISFB1sTAmNBEGePI9b8EEvAWEyg9EaIdI94ND0Cl2CIaxWScrBMv3TaeFXgW1Lso5Ns5sW/E5zgmJtnNU/87oxdozk+MLxFp97bpnDFcnt/Rme6ORQfo7JgX4++9hTrLfbaKWxLLNFhJtuZJOodC+9RDFezPCCgSw77YTtJZuWCx+9HvDEYgdbJwxXXH6wZXFL4tKMI06+8ntY27aNtfk5CoUCnU7A8vIie/fuwpYOa6urIDX5fAEhBGura5T6+pBSUiqV+fjHPs7x40/zhc99HrFw+bR+7evfwImL1xAIXN9nautWQyMpSeKYWr3G8NAwQkpa7TadTpexsVEKxQKnnn2O1cV5LMsyGQ5CpIQ0nNrLZAPjglPphoJsxIj3Do0tJQXPpdoONhBGjSaINZsGPX70ZQM8cqrFZ55e55YtFd603SNuBFy1R3mmFnLh0iUile68btsIwHeMcyRMEoJE0U40UaxJgGOjOV5SFji+z1nl8OxCm1rXVCiyHMlw7DASwHPVRab9DFObN7E8N8foyDC33XUHi6s18qUSnWYLrRX9lTLDw0M8+eQzHDl6FKUSgiBgZXWNM6fPcOrkSR566DOI2Yun9evf8AZOXJpGKEW2UOBlL385tuOg/p+qzqY5jqOM479+m52ZfbPWK8tWnLj8QiSBixhwilSFC5UDlaJIcubMgS/CF4CvAYWBcOJCUVycgG1hW0hxpMRO9LqrlbTadUa7090cnlnFTFXXztTsVM8880x3T8//JQS89wxPhly/fp2kljAYDNjc3GRxcZF2q81/Vld58K9PqdWS/wt6rMbX0oxFsbepYhyCr26ITP5ba4lRgPu5MwzGRXWjZkEPrFxJudZ1/OOzkqUrTd5f1IyHZ0zKKebiG/xt+5T1rS/Eel4pMmerugOJUTSdowyeYek5m0rgM2f55VKbVrvNxtE3GGM4PPXsnQyZKkWj2eXMew6LUybHQ3yMvHXtEm8tLWDzNruDyFRZHq+vE40jcwmXF7ocHh3R7c4DkCSO/YMDer0e/V6PP967h9p+9jh+8MFHrG5+hTNG6CnBn78YxRhpt1sURUGWZSS1hMP+Id4LJkXNYMaV2ZK01bPgz17hv3XvkjZa9ocww7WIcE+WCJNtWEyh6gtCCAQil3LHaTGl1Zzj7Wst6uNj4gS0iayelDzpj0Rs2WiMEQmpGOXcjBI0gdaacemZlJIYIcJ7Sws0jaHRnMcYw8b2Nv3jMdvjM25/b4VmWqcx36EsPXXr+ck7t2k0M9bv3yf4SNq6QK/fZxRznn3+nMLWme80CB6ssZQVS2Vt7Sl7e7v8+S8fo7Y3HsdffPgRj7e+xlhxHwylOBPO9NTLUuDOwXtijFhnxXGwIkzNmpYQI7pKZ8FLUSk/iOCOPAHnwxJCEDTYbHHWkFjDuJied7QSHNmoJwl3br5Oq90i9HboGPjvYMQne6doFclqrup8pcOkMrcyRhSaBDWrzz9AmAg/v3OL5evL5GnK/v4Bf334hO3BAK8UnbkuynsKhOG3POf41c9WUEQu1gvSxQVaLfhk7ZiDR9u8833Fb/9e8M+Nl3RajjzPeTl+SZqmHB8fURRj/vD7e+gYSrEKm8HLYjzPFqWUgNuTBGsMzgmV0GgjF/OKtSUVA9mYStK6+oislMYamYY12mCtxVrJOuccWguxVmmNNjKOhdmciygxK6WYTAM1o1hseKIylMrw5WjKw4MxRkO9JrSamrPUEhHIyayhZivLTkRRuoxiLqJCZKGZcWd5hTeX3mSrv8e9fz/AhG+4cbEBIVAUEw6Hpzx/8RX9/X3uP9vh4z99SnvjEe/d7fLTd5u8/YMG3Ru3sF/ucKfs8Zv3T7jVOeHF8x3WNz7j651dNre+YHg6kqdbUGuWRqOOMhIcqy3GGCm6+jUaay1J4kiSBOcs1hmsnRVdgSslmOfHG4O1kn0heNByE5US4KgE3pDUHImT4ozDOSmJc6RVfWkt4cc3O2RmSpI1iWnO+tGYaAytPGWukZBZi4mKpDpXbYROabSQHdAKH+DMa0ZTMPWcrZ0dHjxd4/7a56xcucDluZyFeo1uI2P0ckTqLM1mnUYjR6cpTweeYUjYT6/yfFTneNLBTR03bl9lf9hi+dJlfvfr13j3u21ev5Bzs5vxnasZFy84vFeU5RR1dHgYn6w+pKgIVrPsmi2qSjqFaILPRiKvtBLnbXg1KPn22PO9sz+/alsgK2IiKOtOa6YCpRWMYQVFmwYwVnP3tQbDSYSkw+lRr6Kvy1AzMQE8+Eqyyc+uI1ZMi+qJkfqlvjx3OKCeJmgfubnQ4dGLXdo1RwAGwwK0GIJrDQFNCrzRdqj5FuXZGdfqTiV5St5oYsojJmWKL4cc907iQd9jEzC5YmcU2e1H7v7oh/wPVGndGvjHvAsAAAAASUVORK5CYII=\" width=\"100\" height=\"140\" style=\"border: 2px solid var(--pip-color); object-fit: cover;\"></div><div><b>DEVELOPER:</b> Obsidian Entertainment<br><b>PUBLISHER:</b> Bethesda Softworks<br><b>RELEASE:</b> October 19, 2010<br><b>SYSTEM:</b> Windows, PS3, Xbox 360<br><b>CPU:</b> Dual Core 2.0 GHz<br><b>RAM:</b> 2 GB</div></div><b>DESCRIPTION:</b><br>A highly acclaimed spin-off developed by many of the original Black Isle creators. Returning the setting to the West Coast, players take control of the Courier, who is ambushed, shot in the head, and left for dead in a shallow grave over a mysterious delivery. Driven by revenge, the Courier navigates the Mojave Wasteland and the miraculously preserved New Vegas strip. The game features deeply complex branching narratives, a strict faction reputation system, and a looming, multi-sided war for control of the Hoover Dam between the bureaucratic NCR, the brutal Caesar's Legion, and the enigmatic Mr. House.<br><br><span class=\"help-nav-item\" data-page=\"page-history\" style=\"color: var(--pip-color);\">&gt; BACK TO ARCHIVES</span>",
"page-hist-fshelter": "> ARCHIVE: FALLOUT SHELTER<br><br><div style=\"display: flex; gap: 15px; margin-bottom: 15px;\"><div style=\"flex: 0 0 100px;\"><img src=\"data:image/png;base64,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\" width=\"100\" height=\"140\" style=\"border: 2px solid var(--pip-color); object-fit: cover;\"></div><div><b>DEVELOPER:</b> Bethesda / Behaviour<br><b>PUBLISHER:</b> Bethesda Softworks<br><b>RELEASE:</b> June 14, 2015<br><b>SYSTEM:</b> iOS, Android, Windows<br><b>CPU:</b> Mobile / Core 2 Quad<br><b>RAM:</b> 2 GB</div></div><b>DESCRIPTION:</b><br>A highly successful free-to-play simulation game that puts the player directly into the command chair of an Overseer. The objective is to build, expand, and manage a state-of-the-art underground Vault. Players must assign Dwellers to specific rooms based on their S.P.E.C.I.A.L. stats to generate power, water, and food. As the population grows, the Overseer can dispatch heavily armed Dwellers into the wasteland to scavenge for loot, while defending the Vault door from fires, radroach infestations, raider attacks, and terrifying Deathclaw incursions.<br><br><span class=\"help-nav-item\" data-page=\"page-history\" style=\"color: var(--pip-color);\">&gt; BACK TO ARCHIVES</span>",
"page-hist-f4": "> ARCHIVE: FALLOUT 4<br><br><div style=\"display: flex; gap: 15px; margin-bottom: 15px;\"><div style=\"flex: 0 0 100px;\"><img src=\"data:image/png;base64,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\" width=\"100\" height=\"140\" style=\"border: 2px solid var(--pip-color); object-fit: cover;\"></div><div><b>DEVELOPER:</b> Bethesda Game Studios<br><b>PUBLISHER:</b> Bethesda Softworks<br><b>RELEASE:</b> November 10, 2015<br><b>SYSTEM:</b> Windows, PS4, Xbox One<br><b>CPU:</b> Intel Core i5-2300<br><b>RAM:</b> 8 GB</div></div><b>DESCRIPTION:</b><br>Set in the Commonwealth (the ruins of Boston and surrounding Massachusetts), the player assumes the role of the Sole Survivor, who awakens from two centuries of cryogenic stasis in Vault 111 only to witness the murder of their spouse and the kidnapping of their infant son. The game introduced a fully voiced protagonist, a completely overhauled Power Armor system that acts like a customizable vehicle, and a massive settlement-building mechanic. The central conflict revolves around 'The Institute,' a secretive technological faction creating highly advanced synthetic humans, drawing the ire of the Brotherhood of Steel and the underground Railroad.<br><br><span class=\"help-nav-item\" data-page=\"page-history\" style=\"color: var(--pip-color);\">&gt; BACK TO ARCHIVES</span>",
"page-hist-f76": "> ARCHIVE: FALLOUT 76<br><br><div style=\"display: flex; gap: 15px; margin-bottom: 15px;\"><div style=\"flex: 0 0 100px;\"><img src=\"data:image/png;base64,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\" width=\"100\" height=\"140\" style=\"border: 2px solid var(--pip-color); object-fit: cover;\"></div><div><b>DEVELOPER:</b> Bethesda Game Studios<br><b>PUBLISHER:</b> Bethesda Softworks<br><b>RELEASE:</b> November 14, 2018<br><b>SYSTEM:</b> Windows, PS4, Xbox One<br><b>CPU:</b> Intel Core i5-6600k<br><b>RAM:</b> 8 GB</div></div><b>DESCRIPTION:</b><br>The franchise's first foray into online multiplayer survival. Serving as a narrative prequel, the game takes place in the untamed wilderness of Appalachia (West Virginia) merely 25 years after the bombs fell. Players emerge from Vault 76 on 'Reclamation Day' tasked with rebuilding America. They must cooperate (or compete) to survive a terrifying plague of hive-mind 'Scorched' mutants and gigantic, bat-like Scorchbeasts. The game allows players to build portable C.A.M.P. bases and fight through automated silos to drop actual nuclear weapons on the map, triggering endgame boss events.<br><br><span class=\"help-nav-item\" data-page=\"page-history\" style=\"color: var(--pip-color);\">&gt; BACK TO ARCHIVES</span>",
"page-data": "> MISSION DATA: SAVE & LOAD PROTOCOLS<br><br>The simulation allows the Overseer to suspend current progress and resume operations at a later date by exporting data as a JSON file.<br><br>SAVING A SIMULATION: During your active turn, locate the Save button (marked with the <svg width=\"22\" height=\"22\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" style=\"vertical-align: text-bottom;\"><path d=\"M19 21H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h11l5 5v11a2 2 0 0 1-2 2z\"></path><polyline points=\"17 21 17 13 7 13 7 21\"></polyline><polyline points=\"7 3 7 8 15 8\"></polyline></svg> icon) positioned next to the REBOOT GAME button. Clicking this will compile your complete session state—including map control, troop deployments, Bottle Cap reserves, Commander health levels, and active rulesets—and prompt you to download it as a JSON file to your local hardware.<br><br>LOADING A SIMULATION: You can only resume a suspended simulation during the initial RobCo boot sequence before a match begins. Select the LOAD GAME option from the boot menu and upload your previously saved JSON file to fully restore your session parameters.<br><br>DATA RETENTION WARNING: The terminal exports save data strictly as localized JSON files. There is no external cloud backup or browser auto-save. You are responsible for securing these files on your local operating system. If you delete or misplace your JSON file, your archived simulation cannot be recovered.",
"page-items": `> ITEM DATABASE<br><br>The wasteland is full of valuable pre-war technology and chems. This section details the items you can find and use to gain a tactical advantage.<br><br><span class="help-nav-item" data-page="page-stimpaks" style="color: var(--pip-color);">&gt; STIMPAKS</span><br><span class="help-nav-item" data-page="page-bobbleheads" style="color: var(--pip-color);">&gt; BOBBLEHEADS</span><br><span class="help-nav-item" data-page="page-relics" style="color: var(--pip-color);">&gt; WASTELAND RELICS</span><br><br><span class="help-nav-item" data-page="page-root">&lt; BACK TO MAIN DIRECTORY</span>`,
"page-stimpaks": `> ITEMS: STIMPAKS<br><br>A miraculous pre-war healing agent. Stimpaks are essential for keeping your Commander alive in the field.<br><br><b>FUNCTION:</b><br>Instantly restores 20 HP to your Commander. If you have the 'Medic' perk, this is increased to 40 HP.<br><br><b>USAGE:</b><br>Stimpaks can only be used during the <b>Commander Phase</b>. Activating one costs 1 Action Point (AP). You can use a Stimpak by clicking the button in the Commander UI or from the main Inventory screen.<br><br><b>ACQUISITION:</b><br>Stimpaks are found randomly by completing Wasteland Encounters or by looting the supplies of a defeated rival Commander.<br><br><span class="help-nav-item" data-page="page-items">&lt; BACK TO ITEM DATABASE</span>`,
"page-bobbleheads": `> ITEMS: BOBBLEHEADS<br><br>Rare, pre-war Vault-Tec collectibles that provide powerful, temporary buffs. Once found, they are permanently added to your inventory.<br><br><b>USAGE & PHASE LOCKING:</b><br>Bobbleheads can only be activated during specific phases of your turn to prevent wasting their effects. An active Bobblehead lasts for one full turn and then goes on cooldown.<br><br> * <b>(S)trength:</b> +10% attack odds. (Battle/Commander Phase only)<br> * <b>(P)erception:</b> Lifts Fog of War. (Battle/Commander Phase only)<br> * <b>(E)ndurance:</b> +10% defense odds. (Battle/Commander Phase only)<br> * <b>(C)harisma:</b> Improves troop trade-in value or reduces recruitment cost. (Recruitment/Fortify Phase only)<br> * <b>(I)ntelligence:</b> Reveals enemy stats & halves Silo defense. (Battle/Commander Phase only)<br> * <b>(A)gility:</b> Grants an extra maneuver action. (Maneuver/Commander Phase only)<br> * <b>(L)uck:</b> Triples the chance to find loot. (Battle/Commander Phase only)<br><br><span class="help-nav-item" data-page="page-items">&lt; BACK TO ITEM DATABASE</span>`,
"page-relics": `> ITEMS: WASTELAND RELICS<br><br>Extremely rare and powerful single-use artifacts. Six are randomly seeded into the loot pool each match.<br><br> * <b>G.E.C.K.:</b> Restores a Crater or Radstorm tile to lush land and spawns troops.<br> * <b>Fat Man:</b> Devastating mini-nuke strike. <span style="color:#ffcc00;">Range is limited to 3 territories from your border.</span><br> * <b>Stealth Boy:</b> Hide your territories from enemy intel for 2 turns.<br> * <b>Bottlecap Mine:</b> Trap a friendly territory. Detonates on an incoming enemy.<br> * <b>Cryolator:</b> Freeze an enemy territory, preventing all actions for 1 turn. <span style="color:#ffcc00;">Range is limited to 3 territories from your border.</span><br> * <b>Vault-Tec Lunchbox:</b> A random assortment of Caps and Troops.<br> * <b>Super Stimpak:</b> Auto-revives your Commander upon taking fatal damage.<br> * <b>Jet:</b> Instantly take a second, consecutive turn.<br> * <b>RadAway:</b> Grants total immunity to Radstorms and nuke fallout for 3 turns.<br> * <b>Silver Shroud Card:</b> Blockade an enemy land, preventing reinforcements for 3 turns.<br> * <b>Wasteland Survival Guide:</b> Instantly and successfully complete all active map expeditions.<br><br><span class="help-nav-item" data-page="page-items">&lt; BACK TO ITEM DATABASE</span>`,
"page-about": "> SYSTEM CREDITS & LEGAL<br><br><b>SYSTEM VERSION:</b> 2.4<br><span class=\"help-nav-item\" data-page=\"page-patch-notes\" style=\"color: var(--pip-color);\">&gt; View Update History (Patch Notes)</span><br><a href=\"https://github.com/threememories/FalloutRisk\" target=\"_blank\" style=\"color: var(--pip-color);\">Check for Latest Updates</a><br><br><b>ORIGINAL ENGINE ARCHITECTURE:</b><br>This simulation was heavily modified from the original Risk framework created by Vinayak Vedantam (<a href=\"https://github.com/vvedanta\" target=\"_blank\" style=\"color: var(--pip-color);\">https://github.com/vvedanta</a>).<br><br><b>PORTABLE DEPLOYMENT:</b><br>Players can download the self-contained game as a .html file. To download: Save this webpage (Ctrl+S) as a single HTML file. (The playable music is not included).<br><br><b>SUPPORT THE DEVELOPER:</b><br>Support my work by buying my book, <i>SurvivalSOS: Fundamentals of Survival</i> <a href=\"https://www.amazon.com/SurvivalSOS-Fundamentals-Survival-Joseph-Howard/dp/B09TZ4WXZC\" target=\"_blank\" style=\"color: var(--pip-color);\">Available on Amazon</a><br><br><b>FEEDBACK:</b><br><a href=\"https://github.com/threememories/FalloutRisk/issues\" style=\"color: var(--pip-color)\">Submit Bug Report / Suggestion</a><br><br><b>DISCLAIMER:</b><br>This is an independent, fan-made project and is not affiliated with or endorsed by Bethesda Softworks, ZeniMax Media, or Microsoft. All Fallout-related intellectual property belongs to its respective owners. No copyright or trademark infringement is intended.",
"page-patch-notes": "> UPDATE HISTORY (PATCH NOTES)<br><br>" +
"<b>v2.4 [THE COMPANION & COGNITION UPDATE]</b><br>" +
"- New Companion System (Dogmeat): Added a rare, multi-stage quest to find and rescue Dogmeat. Players can choose to take him in an 'Injured' state (which incurs debuffs) or heal him with resources to unlock powerful combat, loot-finding, and mine-defusing buffs.<br>" +
"- Scorched Earth Overhaul: Ground Zero is no longer permanently destroyed. Nuked territories now suffer severe, 10-turn radiation attrition (80% initial losses) that slowly cools off. The launch engine now supports simultaneous nuclear strikes from multiple factions.<br>" +
"- V.A.T.S. Action Validator: V.A.T.S. now displays high-visibility warning banners explaining exactly why a tactical action is blocked (e.g., 'OUT OF RANGE', 'TERRITORY FROZEN SOLID'). It also tracks active nuclear impact countdowns.<br>" +
"- Advanced Relic Targeting: Fat Man and Cryolator strikes are now strictly limited to a range of 3 territories from your borders. Added theme-colored map icons for planted Mines, Frozen zones, Blockades, and active Expeditions.<br>" +
"- Progression Polish: The Level-Up system has been refined to prevent offering duplicate non-stackable perks, and now clearly labels upgrades for stackable abilities (e.g., Rank 2, Rank 3).<br>" +
"- Deployment Protocols: Introduced Classic Manual and Semi-Auto initial placement phases to the boot menu for deep strategic starts.<br>" +
"- Advanced AI Brain: Artificial Intelligence rewritten to prevent suicidal attacks, aggressively consolidate continents, perform continuous 'Blitz' sweeps, and utilize cooldown-based perks multiple times.<br>" +
"- Relic & Hazard Parity: Wasteland Relics now function as intended. Jet grants an extra turn, Stealth Boys hide your territories from AI radar, the G.E.C.K. clears Radstorms, and RadAway properly blocks weather attrition.<br>" +
"- Tactical Backbriefs: Turbo Mode now generates a dynamic, immersive intelligence summary at the end of the AI cycle instead of clogging the action log with AI-vs-AI combat spam.<br>" +
"- Wasteland Fixes: Added Maxson's Brotherhood (FO4), synchronized Dogmeat's status effects, resolved the 'Missing Caps' truce bug, and ensured AI respects Cryolator freezes and Silver Shroud blockades.<br>" +
"- Medical & Phase Locks: RadAway now explicitly grants immunity to Nuke Fallout in addition to weather Radstorms, complete with UI and action log feedback. Bobblehead activations are now strictly phase-locked to prevent accidental wasted uses.<br>" +
"- Wasteland Encounters: Increased the discovery rate of radio transmissions and post-battle expeditions. Cleaned up legacy SVG map text artifacts.<br><br>" +
"<b>v2.3 [LEVELING & MOBILE UPDATE]</b><br>" +
"- Leveling System: Implemented a new player progression system featuring uncapped XP for continuous character growth.<br>" +
"- Enhanced Phone Mode: Completely overhauled the mobile interface with adaptive UI scaling and a dedicated mission log for small screens.<br>" +
"- Expanded Misc Items: Integrated Bobbleheads and Relics into the core simulation with active perks and inventory tracking.<br>" +
"- New Health Portrait: Added a Vault-Boy biometric monitor to the terminal that visually updates based on the commander's health.<br>" +
"- System Stability: Resolved several critical logic bugs including AI turn lockups, SVG map layering, and UI script crashes.<br>" +
"- Simulation Parity: Balanced specialized mechanics like Nukes and Radstorms to ensure consistency across all game modes.<br><br>" +
"<b>v2.2 [SYSTEM HOTFIXES & UI POLISH]</b><br>" +
"- Fixed a critical open stash bug in Classic mode.<br>" +
"- Added a ping function to the AP bar to locate valid territories.<br>" +
"- Added a no-action cursor to indicate when actions are unavailable.<br>" +
"- Fixed modal button text colors blending into the background on hover.<br>" +
"- Fixed several logic bugs regarding Faction Perks and Bobbleheads for both Player and AI.<br><br>" +
"<b>v2.1 [ALLIANCE, DIPLOMACY & COMBAT EVOLUTION]</b><br>" +
"- Alliance Warfare Expansion: Added the 'Signal Ally' menu to request coordinated strikes, reinforcements, or Emergency Asylum. Landlocked troops can now be airlifted across allied territory via Vertibird.<br>" +
"- Advanced Diplomacy & Extortion: Factions are now strictly limited to 1 active truce. Demanding Caps without a fair trade creates a 'Locked' Extortion Truce that cannot be backstabbed. The AI will now proactively offer truces and extort weaker neighbors.<br>" +
"- Commander Conversions & Combat: Commanders can now spend AP to convert enemy territories (a 3-turn siege). Turn phase order has been updated to prioritize Battles before Commander movement. Defeated factions now drop their Stimpaks and Bobbleheads to the victor.<br>" +
"- Scorched Earth Disruption: Active nuclear launches can now be aborted by capturing the specific origin silo before impact. Added a flashing crosshair to targeted territories and full-screen warning modals for aborts. Nuke codes now have escalating drop rates.<br>" +
"- The 'logFog' Engine: The Vault-Tec Action Log is now fully integrated with Fog of War. Battles and troop movements in hidden sectors will display as scrambled 'Sensor Anomalies'.<br>" +
"- V.A.T.S. & UI Polish: VATS now accurately warns of environmental hazards, locked truces, and Commander defense buffs. The 'INV' tab logic has been overhauled to only pulse when items are immediately usable. The Survival Guide now natively hosts patch notes.<br>" +
"- Faction Balance Pass: Minutemen/Gunners now spawn 6-12 troops. BOS Outcasts' Overdrive cost is capped at 30 Caps. Nuka-World Raiders tribute increased to +10 Caps.<br>" +
"- Major Bug Fixes: Fixed soft-locks with converting Commanders, resolved Agility Bobblehead maneuver limits, corrected multi-commander duel targeting, and ensured Bobblehead cooldowns reset when stolen.<br><br>" +
"<b>v2.0 [WASTELAND CONQUEST UPDATE]</b><br>" +
"This was a major overhaul of the game's mechanics and interface.<br>" +
"- Bottle Cap Economy: Territories now produce Bottle Caps each turn. You can use these to buy troops from the recruitment terminal instead of relying only on card trades.<br>" +
"- Game Mode Presets: Added several new ways to play, like Survival, Apocalypse, and Alliance Warfare. Each mode toggles different rules automatically.<br>" +
"- Random Encounters: Territories can now trigger events like finding loot caches, radio transmissions, or creature attacks.<br>" +
"- Faction Perks: Every faction now has a unique gameplay bonus (e.g., the Institute's synth respawns or the Enclave's vertibird moves).<br>" +
"- Improved Commanders: Commanders now have HP and AP stats. You can use Stimpaks to heal them. If they die in battle, your game is over.<br>" +
"- Nukes: Players can now capture Nuclear Silos and find launch codes to destroy enemy territories.<br>" +
"- Visibility: Added Fog of War and a Perception system. You'll need items like the Perception Bobblehead to see through the fog.<br>" +
"- Save/Load System: You can now save your game as a JSON file and load it back up later.<br>" +
"- Map Icons: Replaced the old text symbols with custom SVG icons for each faction.<br>" +
"- Terminal Overhaul: The help system was rewritten as a multi-page terminal with detailed info on all mechanics.<br>" +
"- Mobile Layout: Added better support for mobile browsers with a landscape-specific UI.<br>" +
"- Turbo Mode: Added a toggle to speed up AI turns.<br><br>" +
"<b>Legacy v1.9 [MOBILE PORT & HOTFIXES]</b><br>" +
"- Commander Combat Adjustments: Assassinations are much harder. Troop damage to Commanders is reduced, ambushes are limited to once per turn, and entrenched Commanders require taking the territory first.<br>" +
"- Advanced AI Tactics: AI commanders now retreat at 50% HP, avoid crowded territories, hold defensive chokepoints, and navigate home intelligently if stranded.<br>" +
"- Turbo Mode Auto-Skip: The game now automatically advances the phase when your AP depletes.<br>" +
"- Smart UI & Map Upgrades: The map perfectly renders multiple VIP stars and adds V.A.T.S. hover warnings for entrenched targets.<br>" +
"- New Holotape Loaded: Added Fallout 4 (The Commonwealth) to the theme selector.<br><br>" +
"<b>Legacy v1.8 [MOBILE PORT & HOTFIXES]</b><br>" +
"- Hardware Port: RobCo OS now natively supports handheld (mobile) terminals. Device must be rotated to Landscape mode to initialize.<br>" +
"- Threat Patch: Resolved a logic error preventing the Wild Ghouls subsystem from properly infesting unclaimed sectors at boot.<br>" +
"- The Status and Directive terminal readouts have been completely overhauled.<br>" +
"- Commanders now receive heavy home-turf damage resistance and can flip enemy territories after a ten-phase siege.<br>" +
"- When a faction's Commander is killed, their entire empire completely collapses into unowned, neutral wasteland.<br>" +
"- Wasteland diplomacy dynamically scales Ceasefire negotiations, trading exact Bottle Cap amounts for equal rounds of peace.<br>" +
"- The interface and map graphics have been optimized to provide a more stable, readable, and streamlined visual experience during gameplay.<br>" +
"- Shout-out to Alex for helping me debug.<br><br>" +
"<b>Legacy v1.7 [SCORCHED EARTH & COMMANDERS]</b><br>" +
"- Scorched Earth: Optional Nuke Protocol. Secure Launch Codes and hold highly-defensible Command Silos to unleash permanent radiation.<br>" +
"- Commander Protocol: Each faction is led by a Commander (100 HP). If they die, you lose. Manage AP, Stimpaks, and map movement to survive.<br>" +
"- Wasteland Diplomacy: Implemented the ability to offer Caps to rivals for a 3-Round Ceasefire.<br>" +
"- Wasteland Karma: Breaking a truce now incurs a permanent \"Betrayal Tax\" and triggers retaliatory AI Spite Alliances.<br><br>" +
"<b>Legacy v1.6 [SECURITY & UI PROTOCOLS]</b><br>" +
"- Anti-Hacking Patch: Implemented advanced input sanitization to block malicious code injection at the boot terminal.<br>" +
"- OS Version History: Initialized scrolling telemetry window to track simulation patch notes.<br><br>" +
"<b>Legacy v1.5 [SYSTEMS UPGRADE]</b><br>" +
"- V.A.T.S. Upgrade: Hover targeting now utilizes Gambler's Ruin algorithms to calculate total victory probability (capped at 95%).<br>" +
"- Customization: Faction color override matrix added to Boot Sequence.<br>" +
"- Cap Economy: Reserve pool expanded to 50, featuring dynamic \"Wasteland Salvage\" forging.<br>" +
"- UI Refinement: Overhauled the Survival Guide into a compact, tactical layout.<br><br>" +
"<b>Legacy v1.4 [COMBAT & LOOT PROTOCOLS]</b><br>" +
"- Tactical Routing: Commanders may now dictate exact troop garrison sizes post-victory.<br>" +
"- Wasteland Justice: Eradicating a rival faction now instantly transfers their entire Cap stash to your inventory.<br>" +
"- Neutral Threat: Feral Ghouls now dynamically multiply based on active simulation difficulty.<br>" +
"- Logistics: \"Fixed Reinforcements\" (Always 3) trade rule added to boot options.<br><br>" +
"<b>Legacy v1.3 [ENVIRONMENTAL HAZARDS]</b><br>" +
"- Meteorology: Radstorms added to the simulation.<br>" +
"- Fauna: Wild Ghouls (Neutral Threat) optional hazard integrated into the map.<br>" +
"- Comms: Pip-Boy Wasteland Radio frequency scanner initialized.<br><br>" +
"<b>Legacy v1.2 [HOLOTAPE INTERFACE]</b><br>" +
"- Telemetry: Vault-Tec Action Log implemented for real-time combat and event tracking.<br>" +
"- Immersion: Randomized wasteland encounter logs integrated into the turn cycle.<br>" +
"- System Clock: Holiday protocol initialized to trigger date-specific wasteland encounters.<br>" +
"- UI: Dynamic HP (Territorial Health) and AP (Action Point) tracking gauges added to the Commander's dashboard.<br>" +
"- Performance: Turbo Mode toggle added to bypass V.A.T.S. rendering for accelerated AI processing.<br><br>" +
"<b>Legacy v1.1 [PIP-BOY SCREEN AND UI]</b><br>" +
"- Themes: Capital Wasteland and Mojave holographic overlays loaded.<br><br>" +
"<b>Legacy v1.0 [ROBCO OS INITIALIZED]</b><br>" +
"- Baseline Strategic Simulation established. Faction telemetry and global map data synchronized.<br><br>" +
"<span class=\"help-nav-item\" data-page=\"page-about\" style=\"color: var(--pip-color);\">&gt; BACK TO SYSTEM CREDITS</span>",
"page-override": () => {
const p = Gamestate.player || {};
const pName = p.name || "PLAYER";
// Live flags - re-evaluated every time the page opens
const isClassic = !Gamestate.wastelandEconomyActive;
const cmdrOn = !!Gamestate.commandersEnabled;
const nukeOn = !!Gamestate.nukesEnabled;
const stormOn = !!(Gamestate.radstormsEnabled || Gamestate.weatherEnabled);
const fogOn = !!(document.getElementById('opt-fog-of-war') && document.getElementById('opt-fog-of-war').checked);
const encOn = !!Gamestate.encountersEnabled;
const hasDiplomacy = !!(Gamestate.diplomacy && Gamestate.diplomacy.reputation);
// Current toggle states (read from Gamestate each open so they survive re-render)
const godActive = !!Gamestate.invincible;
const ignActive = !!Gamestate.godMode;
const fogLiftActive = !!Gamestate.devFogLifted;
const hasStorm = !!(Gamestate.activeRadstorm || Gamestate.activeStorm || (Gamestate.radstormTurns > 0));
// Refresh helper (reopens this page, picks up new toggle state)
const R = "typeOutHelpText('page-override');";
// --- Style constants ---
const SEC = "width:100%;box-sizing:border-box;margin-bottom:20px;padding:0;";
const LBL = "display:block;font-weight:bold;margin-bottom:8px;font-size:16px;color:var(--pip-color);text-transform:uppercase;border-bottom:1px solid var(--pip-color);padding-bottom:3px;";
const GRID = "display:grid;grid-template-columns:1fr 1fr;gap:8px;width:100%;box-sizing:border-box;";
const GRID3 = "display:grid;grid-template-columns:1fr 1fr 1fr;gap:8px;width:100%;box-sizing:border-box;";
const B = "width:100%;box-sizing:border-box;background:transparent;border:1px solid var(--pip-color);color:var(--pip-color);font-family:'VT323';font-size:15px;padding:10px 4px;cursor:pointer;text-align:center;";
const BON = "width:100%;box-sizing:border-box;background:var(--pip-color);border:1px solid var(--pip-color);color:#000;font-family:'VT323';font-size:15px;padding:10px 4px;cursor:pointer;text-align:center;font-weight:bold;";
const BOFF = "width:100%;box-sizing:border-box;background:transparent;border:1px solid #444;color:#444;font-family:'VT323';font-size:15px;padding:10px 4px;cursor:not-allowed;text-align:center;opacity:0.35;";
// Helper: returns button HTML
// mode: 'on'=active toggle, 'off'=disabled, ''=normal
function b(label, onclick, mode='') {
if (mode === 'off') return `<button style="${BOFF}" disabled>${label}</button>`;
if (mode === 'on') return `<button style="${BON}" onclick="${onclick}">${label} &#9646;</button>`;
return `<button style="${B}" onclick="${onclick}">${label}</button>`;
}
// --- Combined Injection Section (With Ownership Checking) ---
let bhHTML = "";
if (!isClassic) {
bhHTML = `<div style="${SEC}"><span style="${LBL}">ARTIFACT INJECTION</span>
<!-- Bobblehead Row -->
<div style="display:flex; align-items:center; gap:8px; margin-bottom:10px; width:100%;">
<select id="help-bh-inject" style="width:calc(50% - 4px); box-sizing:border-box; background:transparent; color:var(--pip-color); border:1px solid var(--pip-color); font-family:'VT323'; font-size:15px; padding:10px 4px; cursor:pointer; height:39px; text-transform:uppercase; margin:0;">
<option value="" style="background:#000;">-- SELECT BOBBLEHEAD --</option>
${Gamestate.bobbleheads.map(b => {
const owned = b.owner === pName;
return `<option value="${b.key}" ${owned ? 'disabled' : ''} style="background:#000; ${owned ? 'color:#666;' : ''}">
${b.name.toUpperCase()} ${owned ? '(OWNED)' : ''}
</option>`;
}).join('')}
</select>
<button style="${B} width:80px; height:39px; flex-shrink:0; margin:0;"
onclick="let k=document.getElementById('help-bh-inject').value; if(k){let bx=Gamestate.bobbleheads.find(x=>x.key===k); bx.owner='${pName}'; bx.found=true; Gamestate.updateInfo(); Gamestate.showToast(bx.name+' ACQUIRED','var(--pip-color)'); ${R}}">GIVE</button>
</div>
<!-- Relic Row -->
<div style="display:flex; align-items:center; gap:8px; width:100%;">
<select id="help-relic-inject" style="width:calc(50% - 4px); box-sizing:border-box; background:transparent; color:var(--pip-color); border:1px solid var(--pip-color); font-family:'VT323'; font-size:15px; padding:10px 4px; cursor:pointer; height:39px; text-transform:uppercase; margin:0;">
<option value="" style="background:#000;">-- SELECT RELIC --</option>
${Gamestate.RelicDatabase.map(r => {
const owned = Gamestate.player.relics && Gamestate.player.relics.some(pr => pr.id === r.id);
return `<option value="${r.id}" ${owned ? 'disabled' : ''} style="background:#000; ${owned ? 'color:#666;' : ''}">
${r.name.toUpperCase()} ${owned ? '(OWNED)' : ''}
</option>`;
}).join('')}
</select>
<button style="${B} width:80px; height:39px; flex-shrink:0; margin:0;"
onclick="let id=document.getElementById('help-relic-inject').value; if(id){let r=Gamestate.RelicDatabase.find(x=>x.id===id); Gamestate.grantRelic(Gamestate.player, r); ${R}}">GIVE</button>
</div>
<!-- Dogmeat Row -->
<span style="${LBL}; margin-top: 15px;">COMPANION TESTING</span>
<div style="display:flex; align-items:center; gap:8px; width:100%;">
<button style="${B}" onclick="if(Gamestate.devTriggerDogmeat) Gamestate.devTriggerDogmeat(); ${R}">TRIGGER QUEST ALERT</button>
<button style="${B}" onclick="if(Gamestate.devGrantDogmeat) Gamestate.devGrantDogmeat(); ${R}">GIVE DOGMEAT INSTANTLY</button>
</div>
</div>`;
}
return `<div style="width:100%;box-sizing:border-box;padding:10px;overflow-x:hidden;">
&gt; TERMINAL OVERRIDE: CORE LOGIC ACCESS<br>
<span style="font-size:13px;color:#888;">Toggles lit in green are ACTIVE. Dimmed buttons require a disabled mechanic.</span><br><br>
<div style="${SEC}">
<span style="${LBL}">LOGGING & DEBUG</span>
<div style="font-size:16px; color:var(--pip-color); display:flex; align-items:center;">
<input type="checkbox" id="opt-debug-log-help" onchange="Gamestate.debugLoggingEnabled = this.checked;" ${Gamestate.debugLoggingEnabled ? 'checked' : ''} style="margin-right:8px; accent-color:var(--pip-color); width:18px; height:18px; cursor:pointer;">
<label for="opt-debug-log-help" style="cursor:pointer;">DETAILED AI LOGGING</label>
</div>
</div>
<span style="${LBL}">RESOURCE INJECTION</span>
<div style="${GRID}">
${isClassic
? b('+1 WILD CARD', "if(!Gamestate.player.cards)Gamestate.player.cards=[];Gamestate.player.cards.push({country:'INJECTION',type:'Wild'});Gamestate.updateInfo();Gamestate.showToast('+1 WILD CARD','var(--pip-color)');"+R)
: b('+25 CAPS', "Gamestate.player.caps+=25;Gamestate.updateInfo();Gamestate.showToast('+25 CAPS','var(--pip-color)');"+R)}
${b('+50 TROOPS', "Gamestate.player.reserve+=50;Gamestate.player.army+=50;Gamestate.stage='Fortify';Gamestate.updateButtonText();Gamestate.updateInfo();Gamestate.showToast('+50 TROOPS','var(--pip-color)');"+R)}
${b('+1 STIMPAK', "if(Gamestate.player.commander){Gamestate.player.commander.stimpaks++;Gamestate.updateInfo();Gamestate.showToast('+1 STIMPAK','var(--pip-color)');"+R+"}else{Gamestate.showToast('No Commander','#ff4444');}", cmdrOn ? '' : 'off')}
${b('+1 LAUNCH CODE', "Gamestate.player.codes=Math.min(4,(Gamestate.player.codes||0)+1);Gamestate.updateInfo();Gamestate.showToast('+1 CODE','var(--pip-color)');"+R, nukeOn ? '' : 'off')}
</div>
</div>
<div style="${SEC}">
<span style="${LBL}">COMMANDER CONTROLS</span>
<div style="${GRID}">
${b('HEAL Commander (100%)', "Gamestate.player.commander.hp=100;Gamestate.updateInfo();Gamestate.showToast('Commander HEALED','var(--pip-color)');"+R, cmdrOn ? '' : 'off')}
${b('RESET AP (2)', "Gamestate.player.commander.ap=2;Gamestate.player.commander.hasFought=false;Gamestate.updateInfo();Gamestate.showToast('AP RESET','var(--pip-color)');"+R, cmdrOn ? '' : 'off')}
</div>
</div>
<div style="${SEC}">
<span style="${LBL}">SIMULATION OVERRIDES</span>
<div style="${GRID}">
${b(godActive ? 'GOD MODE' : 'GOD MODE', "Gamestate.invincible=!Gamestate.invincible;"+R, godActive ? 'on' : '')}
${b(ignActive ? 'SKIP AI TURNS': 'SKIP AI TURNS', "Gamestate.godMode=!Gamestate.godMode;"+R, ignActive ? 'on' : '')}
${b(fogLiftActive? 'FOG LIFT' : 'FOG LIFT', "Gamestate.devFogLifted=!Gamestate.devFogLifted;Gamestate.fogLifted=Gamestate.devFogLifted?9999:0;if(Gamestate.drawMap)Gamestate.drawMap();Gamestate.updateInfo();"+R, fogOn ? (fogLiftActive ? 'on' : '') : 'off')}
${b('FORCE ENCOUNTER', "if(Gamestate.resolveCreatureEncounter)Gamestate.resolveCreatureEncounter();else Gamestate.showToast('No Encounter Fn','#ff4444');"+R, encOn ? '' : 'off')}
${b(hasStorm ? 'CLEAR STORM' : 'TRIGGER STORM', hasStorm ? "Gamestate.activeRadstorm=null;Gamestate.activeStorm=null;Gamestate.radstormTurns=0;Gamestate.updateInfo();"+R : "if(Gamestate.triggerRadstorm)Gamestate.triggerRadstorm();Gamestate.showToast('STORM TRIGGERED','#ff6600');"+R, stormOn ? '' : 'off')}
${b('SKIP THIS AI TURN', "if(Gamestate.aiTurn){Gamestate.aiTurn=false;let m=document.getElementById('map');if(m)m.style.pointerEvents='auto';Gamestate.updateInfo();Gamestate.showToast('AI TURN SKIPPED','var(--pip-color)');"+R+"}else{Gamestate.showToast('Not AI turn','#ff4444');}")}
</div>
<div style="${GRID};margin-top:8px;">
${b('+5 REP ALL', "if(Gamestate.diplomacy && Gamestate.diplomacy.reputation){let rep=Gamestate.diplomacy.reputation; let pn=Gamestate.player.name; Object.keys(rep).forEach(other=>{if(rep[other] && rep[other][pn]!==undefined){rep[other][pn]=Math.min(100, rep[other][pn]+5);}}); Gamestate.showToast('+5 Reputation with all factions','var(--pip-color)');" + R + "}else{Gamestate.showToast('No rep data','#ff4444');}", Gamestate.diplomacy && Gamestate.diplomacy.reputation ? '' : 'off')}
${b('ELIMINATE ALL AI', "if(confirm('WARNING: Eliminate all AI factions?')){Gamestate.players.forEach(function(pl){if(pl!==Gamestate.player&&pl.alive&&!pl.isNeutral){pl.alive=false;pl.areas.forEach(function(a){let c=Gamestate.countries.find(x=>x.name===a);if(c){c.owner=Gamestate.player.name;c.army=1;}});pl.areas=[];}}); Gamestate.updateInfo(); Gamestate.showToast('ALL AI ELIMINATED','#ff4444');" + R + "}")}
</div>
</div>
${bhHTML}
<div style="${SEC}">
<span style="${LBL}">SYSTEM PREFERENCES</span>
<div style="margin-bottom:12px;font-size:16px;">VATS WIN%: <input type="range" min="-1" max="100" value="${Gamestate.devWinOverride != null ? Gamestate.devWinOverride : -1}" style="width:120px;vertical-align:middle;accent-color:var(--pip-color);" oninput="Gamestate.devWinOverride=parseInt(this.value);document.getElementById('wd').textContent=this.value==-1?'AUTO':this.value+'%';"> <span id="wd">${(Gamestate.devWinOverride != null && Gamestate.devWinOverride !== -1) ? Gamestate.devWinOverride+'%' : 'AUTO'}</span></div>
<div style="font-size:16px;">THEME: <select style="background:#000;color:var(--pip-color);border:1px solid var(--pip-color);font-family:'VT323';font-size:16px;padding:5px;" onchange="document.getElementById('chosen-theme').value=this.value;if(Gamestate.applyUITheme)Gamestate.applyUITheme();">
<option value="fo3">FALLOUT 3 (GREEN)</option><option value="fnv">NEW VEGAS (AMBER)</option><option value="fo4">FALLOUT 4 (BLUE)</option>
</select></div>
</div>
<div style="font-size:13px; line-height:1.5; color:var(--pip-color); border-top:1px solid var(--pip-color); padding-top:10px; margin-top:8px; font-family:'VT323', monospace; opacity:0.9;">
<b>[ ROBCO INDUSTRIES UNIFIED OPERATING SYSTEM - SYSTEM DIAGNOSTICS DASHBOARD ]</b><br>
${(() => {
const s = Gamestate.getSystemStats();
return `
<div style="display:grid; grid-template-columns: 1fr 1.5fr; gap: 0 20px;">
<div><b>OS:</b> ${s.os}</div><div><b>PLATFORM:</b> ${s.platform}</div>
<div><b>BROWSER:</b> ${s.browser}</div><div><b>DPI:</b> ${window.devicePixelRatio}x</div>
<div style="grid-column: span 2; word-break: break-all; font-size:11px; opacity:0.7;"><b>UA:</b> ${s.ua}</div>
<div><b>CPU CORES:</b> ${s.cores}</div><div><b>APPROX. RAM:</b> ${s.ram}</div>
<div><b>RESOLUTION:</b> ${s.res}</div><div><b>COLOR DEPTH:</b> ${s.depth}</div>
<div style="grid-column: span 2;"><b>GPU:</b> ${s.gpu}</div>
<div><b>NET TYPE:</b> ${s.netType}</div><div><b>LATENCY (RTT):</b> ${s.netLat}</div>
<div><b>BATTERY:</b> ${s.bat}${s.charging}</div><div><b>TIME:</b> ${new Date().toLocaleTimeString()}</div>
</div>
<div style="margin-top:5px; border-top: 1px dashed var(--pip-color); padding-top:5px;">
<b>SIMULATION:</b> STAGE: ${Gamestate.stage||'IDLE'} | TURN: ${Gamestate.turn||'0'} | PRESET: ${Gamestate.presetName||'CUSTOM'}
</div>`;
})()}
</div>`;
},
};
let currentFullContent = ""; // Stores text for the "Instant Skip"
function typeOutHelpText(pageId) {
window.typeOutHelpText = typeOutHelpText; // Ensure global access for onclicks
let screen = document.getElementById("help-os-screen");
if (!screen) return;
let content = typeof helpPages[pageId] === 'function' ? helpPages[pageId]() : helpPages[pageId];
if (helpTypingInterval) clearInterval(helpTypingInterval);
// --- UPDATED: Always show the background art on every page ---
let rootArt = document.getElementById("help-root-art");
if (rootArt) {
rootArt.style.display = "block";
}
let versionStamp = document.getElementById("help-version-stamp");
if (versionStamp) {
versionStamp.style.display = (pageId === "page-root") ? "block" : "none";
}
// -------------------------------------------------------------
if (pageId !== "page-root") {
content += '<br><br>---------------------------------------<br><span id="help-os-back" class="help-back-btn">&gt; ROOT</span>';
}
currentFullContent = content;
screen.innerHTML = "";
let i = 0;
let currentHTML = "";
helpTypingInterval = setInterval(() => {
if (i < content.length) {
while (i < content.length && (content.charAt(i) === '<' || content.charAt(i) === '&')) {
if (content.charAt(i) === '<') {
let tagEnd = content.indexOf('>', i);
if (tagEnd !== -1) { currentHTML += content.substring(i, tagEnd + 1); i = tagEnd + 1; }
else { break; }
} else if (content.charAt(i) === '&') {
let entEnd = content.indexOf(';', i);
if (entEnd !== -1 && (entEnd - i) < 10) { currentHTML += content.substring(i, entEnd + 1); i = entEnd + 1; }
else { break; }
}
}
if (i < content.length) {
currentHTML += content.charAt(i);
i++;
screen.innerHTML = currentHTML + '<span style="opacity:0.8;">█</span>';
} else { finishTypingInstantly(); }
} else { finishTypingInstantly(); }
}, 10);
}
function finishTypingInstantly() {
if (helpTypingInterval) {
clearInterval(helpTypingInterval);
helpTypingInterval = null;
}
let screen = document.getElementById("help-os-screen");
let finalHTML = currentFullContent.trimEnd();
if (finalHTML.endsWith('</span>')) {
screen.innerHTML = finalHTML.slice(0, -7) + '<span class="terminal-cursor">_</span></span>';
} else {
screen.innerHTML = finalHTML + '<span class="terminal-cursor">_</span>';
}
}
document.getElementById('help-os-screen').addEventListener('click', function(e) {
if (helpTypingInterval) {
e.stopPropagation();
finishTypingInstantly();
}
});
// Click listener for the terminal
document.addEventListener('click', function(e) {
if (e.target && e.target.classList.contains('help-nav-item')) {
// New Log Off Logic
if (e.target.id === "logoff-guide-btn") {
document.getElementById('help-modal').style.display = 'none';
if (helpTypingInterval) clearInterval(helpTypingInterval);
return;
}
let pageId = e.target.getAttribute('data-page');
if(pageId) typeOutHelpText(pageId);
}
// Back Button Logic
if (e.target && e.target.id === 'help-os-back') {
typeOutHelpText("page-root");
}
});
// Cleanly re-bind the original help button to type out the root menu
let originalHelpBtn = document.getElementById('help-btn');
if (originalHelpBtn) {
// Remove old listeners by cloning the button (prevents old logic from firing)
let newHelpBtn = originalHelpBtn.cloneNode(true);
originalHelpBtn.parentNode.replaceChild(newHelpBtn, originalHelpBtn);
newHelpBtn.addEventListener('click', () => {
document.getElementById('help-modal').style.display = 'flex';
typeOutHelpText("page-root");
});
}
// --- NEW: AUTO-RESUME FULL SCREEN ON MOBILE TAP ---
document.body.addEventListener('click', () => {
// Check if it's a mobile screen in landscape
if (window.innerWidth <= 950 && window.innerWidth > window.innerHeight) {
let startModal = document.getElementById('start-modal');
// Only trigger if the game has actually started (modal is hidden)
if (startModal && startModal.style.display === 'none') {
// Check if we accidentally dropped out of full screen
if (!document.fullscreenElement && !document.webkitFullscreenElement) {
let elem = document.documentElement;
if (elem.requestFullscreen) { elem.requestFullscreen().catch(e => {}); }
else if (elem.webkitRequestFullscreen) { elem.webkitRequestFullscreen().catch(e => {}); }
}
}
}
});
// Then boot the game!
Gamestate.init();
</script>
</body>
</html>