From 8f037c123df00f587fda88e656579bcf17c8e66b Mon Sep 17 00:00:00 2001 From: Aymargeddon Team Date: Sun, 26 Aug 2012 20:51:52 +0200 Subject: [PATCH] Initial Import from the old project. --- CREDITS | 40 + DONTDO | 113 ++ TODO | 3 + agrep | 3 + doc/Makefile | 116 ++ doc/README | 11 + doc/Regeln.lyx | 2397 ++++++++++++++++++++++ doc/Techdoc.lyx | 823 ++++++++ doc/ay_ein_hex.fig | 36 + doc/design | 149 ++ doc/pdf-tip | 75 + doc/push_rules | 6 + html/aymargeddon.css | 2 + html/command.epl | 5 + html/command_frames.epl | 221 +++ html/doc/Makefile | 116 ++ html/doc/README | 11 + html/doc/Regeln.lyx | 2397 ++++++++++++++++++++++ html/doc/Techdoc.lyx | 823 ++++++++ html/doc/ay_ein_hex.fig | 36 + html/doc/design | 149 ++ html/doc/pdf-tip | 75 + html/doc/push_rules | 6 + html/field.epl | 222 +++ html/games.epl | 12 + html/index.epl | 26 + html/language.epl | 45 + html/login.epl | 75 + html/map.epl | 249 +++ html/map/Aymargeddon.ACT | Bin 0 -> 772 bytes html/map/BBB.png | Bin 0 -> 87 bytes html/map/BBE.png | Bin 0 -> 191 bytes html/map/BBF.png | Bin 0 -> 123 bytes html/map/BBN.png | Bin 0 -> 186 bytes html/map/BBO.png | Bin 0 -> 123 bytes html/map/BBP.png | Bin 0 -> 802 bytes html/map/BBP2.png | Bin 0 -> 123 bytes html/map/BBU.png | Bin 0 -> 884 bytes html/map/BBW.png | Bin 0 -> 802 bytes html/map/BEB.png | Bin 0 -> 181 bytes html/map/BEE.png | Bin 0 -> 200 bytes html/map/BEF.png | Bin 0 -> 220 bytes html/map/BEN.png | Bin 0 -> 201 bytes html/map/BEO.png | Bin 0 -> 219 bytes html/map/BEU.png | Bin 0 -> 215 bytes html/map/BEW.png | Bin 0 -> 706 bytes html/map/BFB.png | Bin 0 -> 127 bytes html/map/BFE.png | Bin 0 -> 210 bytes html/map/BFF.png | Bin 0 -> 139 bytes html/map/BFN.png | Bin 0 -> 211 bytes html/map/BFO.png | Bin 0 -> 913 bytes html/map/BFU.png | Bin 0 -> 915 bytes html/map/BFW.png | Bin 0 -> 641 bytes html/map/BNB.png | Bin 0 -> 206 bytes html/map/BNE.png | Bin 0 -> 255 bytes html/map/BNF.png | Bin 0 -> 218 bytes html/map/BNN.png | Bin 0 -> 200 bytes html/map/BNO.png | Bin 0 -> 209 bytes html/map/BNU.png | Bin 0 -> 214 bytes html/map/BNW.png | Bin 0 -> 699 bytes html/map/BOB.png | Bin 0 -> 127 bytes html/map/BOE.png | Bin 0 -> 199 bytes html/map/BOF.png | Bin 0 -> 913 bytes html/map/BON.png | Bin 0 -> 199 bytes html/map/BOO.png | Bin 0 -> 139 bytes html/map/BOU.png | Bin 0 -> 915 bytes html/map/BOW.png | Bin 0 -> 640 bytes html/map/BPB.png | Bin 0 -> 731 bytes html/map/BPB2.png | Bin 0 -> 127 bytes html/map/BPW.png | Bin 0 -> 1079 bytes html/map/BPW2.png | Bin 0 -> 645 bytes html/map/BT.gif | Bin 0 -> 412 bytes html/map/BUB.png | Bin 0 -> 886 bytes html/map/BUE.png | Bin 0 -> 205 bytes html/map/BUF.png | Bin 0 -> 915 bytes html/map/BUN.png | Bin 0 -> 229 bytes html/map/BUO.png | Bin 0 -> 915 bytes html/map/BUU.png | Bin 0 -> 917 bytes html/map/BUW.png | Bin 0 -> 657 bytes html/map/BWB.png | Bin 0 -> 731 bytes html/map/BWE.png | Bin 0 -> 719 bytes html/map/BWF.png | Bin 0 -> 719 bytes html/map/BWN.png | Bin 0 -> 721 bytes html/map/BWO.png | Bin 0 -> 717 bytes html/map/BWP.png | Bin 0 -> 1079 bytes html/map/BWP2.png | Bin 0 -> 718 bytes html/map/BWU.png | Bin 0 -> 717 bytes html/map/BWW.png | Bin 0 -> 1079 bytes html/map/CB.png | Bin 0 -> 89 bytes html/map/CECB.png | Bin 0 -> 1405 bytes html/map/CECE.png | Bin 0 -> 1903 bytes html/map/CECF.png | Bin 0 -> 2049 bytes html/map/CECN.png | Bin 0 -> 1654 bytes html/map/CECO.png | Bin 0 -> 1934 bytes html/map/CECU.png | Bin 0 -> 1616 bytes html/map/CEIE.png | Bin 0 -> 2606 bytes html/map/CEIF.png | Bin 0 -> 2441 bytes html/map/CEIN.png | Bin 0 -> 2371 bytes html/map/CEIO.png | Bin 0 -> 2452 bytes html/map/CELE.png | Bin 0 -> 269 bytes html/map/CELF.png | Bin 0 -> 273 bytes html/map/CELN.png | Bin 0 -> 278 bytes html/map/CELO.png | Bin 0 -> 276 bytes html/map/CELU.png | Bin 0 -> 143 bytes html/map/CEME.png | Bin 0 -> 1565 bytes html/map/CEMF.png | Bin 0 -> 1417 bytes html/map/CEMN.png | Bin 0 -> 1376 bytes html/map/CEMO.png | Bin 0 -> 1516 bytes html/map/CEWN.png | Bin 0 -> 1355 bytes html/map/CEWU.png | Bin 0 -> 3902 bytes html/map/CFCB.png | Bin 0 -> 2007 bytes html/map/CFCE.png | Bin 0 -> 1906 bytes html/map/CFCF.png | Bin 0 -> 2060 bytes html/map/CFCN.png | Bin 0 -> 1674 bytes html/map/CFCO.png | Bin 0 -> 1928 bytes html/map/CFCU.png | Bin 0 -> 1592 bytes html/map/CFIE.png | Bin 0 -> 2600 bytes html/map/CFIF.png | Bin 0 -> 2408 bytes html/map/CFIN.png | Bin 0 -> 2370 bytes html/map/CFIO.png | Bin 0 -> 2474 bytes html/map/CFLE.png | Bin 0 -> 276 bytes html/map/CFLF.png | Bin 0 -> 272 bytes html/map/CFLN.png | Bin 0 -> 286 bytes html/map/CFLO.png | Bin 0 -> 294 bytes html/map/CFLU.png | Bin 0 -> 143 bytes html/map/CFME.png | Bin 0 -> 24213 bytes html/map/CFMF.png | Bin 0 -> 1428 bytes html/map/CFMN.png | Bin 0 -> 1396 bytes html/map/CFMO.png | Bin 0 -> 24136 bytes html/map/CFWN.png | Bin 0 -> 1334 bytes html/map/CFWU.png | Bin 0 -> 3692 bytes html/map/CNCB.png | Bin 0 -> 1931 bytes html/map/CNCE.png | Bin 0 -> 1941 bytes html/map/CNCF.png | Bin 0 -> 2071 bytes html/map/CNCN.png | Bin 0 -> 1670 bytes html/map/CNCO.png | Bin 0 -> 1940 bytes html/map/CNCU.png | Bin 0 -> 1635 bytes html/map/CNIE.png | Bin 0 -> 2602 bytes html/map/CNIF.png | Bin 0 -> 2437 bytes html/map/CNIN.png | Bin 0 -> 2369 bytes html/map/CNIO.png | Bin 0 -> 2469 bytes html/map/CNLE.png | Bin 0 -> 278 bytes html/map/CNLF.png | Bin 0 -> 268 bytes html/map/CNLN.png | Bin 0 -> 284 bytes html/map/CNLO.png | Bin 0 -> 288 bytes html/map/CNLU.png | Bin 0 -> 360 bytes html/map/CNME.png | Bin 0 -> 1598 bytes html/map/CNMF.png | Bin 0 -> 1416 bytes html/map/CNMN.png | Bin 0 -> 1394 bytes html/map/CNMO.png | Bin 0 -> 1526 bytes html/map/CNWN.png | Bin 0 -> 1325 bytes html/map/CNWU.png | Bin 0 -> 3760 bytes html/map/COCB.png | Bin 0 -> 1919 bytes html/map/COCE.png | Bin 0 -> 1904 bytes html/map/COCF.png | Bin 0 -> 2040 bytes html/map/COCN.png | Bin 0 -> 1660 bytes html/map/COCO.png | Bin 0 -> 1913 bytes html/map/COCU.png | Bin 0 -> 1545 bytes html/map/COIE.png | Bin 0 -> 2671 bytes html/map/COIF.png | Bin 0 -> 2448 bytes html/map/COIN.png | Bin 0 -> 2404 bytes html/map/COIO.png | Bin 0 -> 2456 bytes html/map/COLE.png | Bin 0 -> 272 bytes html/map/COLF.png | Bin 0 -> 274 bytes html/map/COLN.png | Bin 0 -> 272 bytes html/map/COLO.png | Bin 0 -> 282 bytes html/map/COLU.png | Bin 0 -> 96 bytes html/map/COME.png | Bin 0 -> 1574 bytes html/map/COMF.png | Bin 0 -> 1407 bytes html/map/COMN.png | Bin 0 -> 1389 bytes html/map/COMO.png | Bin 0 -> 1503 bytes html/map/COWN.png | Bin 0 -> 1365 bytes html/map/COWU.png | Bin 0 -> 3873 bytes html/map/CPLA.png | Bin 0 -> 4768 bytes html/map/CPLA2.png | Bin 0 -> 399 bytes html/map/CPLU.png | Bin 0 -> 4484 bytes html/map/CPLU2.png | Bin 0 -> 96 bytes html/map/CUCB.png | Bin 0 -> 2128 bytes html/map/CUCE.png | Bin 0 -> 1927 bytes html/map/CUCF.png | Bin 0 -> 2073 bytes html/map/CUCN.png | Bin 0 -> 1708 bytes html/map/CUCO.png | Bin 0 -> 1933 bytes html/map/CUCU.png | Bin 0 -> 1599 bytes html/map/CUIE.png | Bin 0 -> 2626 bytes html/map/CUIF.png | Bin 0 -> 2431 bytes html/map/CUIN.png | Bin 0 -> 2376 bytes html/map/CUIO.png | Bin 0 -> 2478 bytes html/map/CULE.png | Bin 0 -> 265 bytes html/map/CULF.png | Bin 0 -> 265 bytes html/map/CULN.png | Bin 0 -> 282 bytes html/map/CULO.png | Bin 0 -> 295 bytes html/map/CULU.png | Bin 0 -> 140 bytes html/map/CUME.png | Bin 0 -> 1597 bytes html/map/CUMF.png | Bin 0 -> 1477 bytes html/map/CUMN.png | Bin 0 -> 1437 bytes html/map/CUMO.png | Bin 0 -> 1533 bytes html/map/CUWN.png | Bin 0 -> 1341 bytes html/map/CUWU.png | Bin 0 -> 2759 bytes html/map/Center.psd | Bin 0 -> 10024 bytes html/map/HB.png | Bin 0 -> 87 bytes html/map/I0.gif | Bin 0 -> 114 bytes html/map/I0.png | Bin 0 -> 362 bytes html/map/I1.gif | Bin 0 -> 114 bytes html/map/I1.png | Bin 0 -> 363 bytes html/map/I2.gif | Bin 0 -> 114 bytes html/map/I2.png | Bin 0 -> 361 bytes html/map/I3.gif | Bin 0 -> 85 bytes html/map/I3.png | Bin 0 -> 261 bytes html/map/I4.gif | Bin 0 -> 114 bytes html/map/I4.png | Bin 0 -> 384 bytes html/map/I5.gif | Bin 0 -> 114 bytes html/map/I5.png | Bin 0 -> 373 bytes html/map/I6.gif | Bin 0 -> 85 bytes html/map/I6.png | Bin 0 -> 311 bytes html/map/I7.gif | Bin 0 -> 114 bytes html/map/I7.png | Bin 0 -> 386 bytes html/map/I8.gif | Bin 0 -> 85 bytes html/map/I8.png | Bin 0 -> 301 bytes html/map/I9.gif | Bin 0 -> 85 bytes html/map/I9.png | Bin 0 -> 341 bytes html/map/IA.gif | Bin 0 -> 100 bytes html/map/IA.png | Bin 0 -> 555 bytes html/map/IE.gif | Bin 0 -> 97 bytes html/map/IE.png | Bin 0 -> 457 bytes html/map/IF.png | Bin 0 -> 390 bytes html/map/IF2.png | Bin 0 -> 438 bytes html/map/IG.gif | Bin 0 -> 99 bytes html/map/IG.png | Bin 0 -> 379 bytes html/map/II.png | Bin 0 -> 354 bytes html/map/IP.png | Bin 0 -> 401 bytes html/map/IU.gif | Bin 0 -> 64 bytes html/map/IU.png | Bin 0 -> 86 bytes html/map/IW.png | Bin 0 -> 343 bytes html/map/README | 79 + html/map/Rand2.psd | Bin 0 -> 2428 bytes html/map/SBB.png | Bin 0 -> 87 bytes html/map/SBE.png | Bin 0 -> 174 bytes html/map/SBF.png | Bin 0 -> 126 bytes html/map/SBN.png | Bin 0 -> 185 bytes html/map/SBO.png | Bin 0 -> 126 bytes html/map/SBP.png | Bin 0 -> 567 bytes html/map/SBP2.png | Bin 0 -> 126 bytes html/map/SBU.png | Bin 0 -> 885 bytes html/map/SBW.png | Bin 0 -> 567 bytes html/map/SEB.png | Bin 0 -> 205 bytes html/map/SEE.png | Bin 0 -> 198 bytes html/map/SEF.png | Bin 0 -> 203 bytes html/map/SEN.png | Bin 0 -> 213 bytes html/map/SEO.png | Bin 0 -> 202 bytes html/map/SEU.png | Bin 0 -> 20854 bytes html/map/SEW.png | Bin 0 -> 603 bytes html/map/SFB.png | Bin 0 -> 124 bytes html/map/SFE.png | Bin 0 -> 202 bytes html/map/SFF.png | Bin 0 -> 138 bytes html/map/SFN.png | Bin 0 -> 214 bytes html/map/SFO.png | Bin 0 -> 910 bytes html/map/SFU.png | Bin 0 -> 911 bytes html/map/SFW.png | Bin 0 -> 602 bytes html/map/SNB.png | Bin 0 -> 197 bytes html/map/SNE.png | Bin 0 -> 221 bytes html/map/SNF.png | Bin 0 -> 221 bytes html/map/SNN.png | Bin 0 -> 198 bytes html/map/SNO.png | Bin 0 -> 398 bytes html/map/SNU.png | Bin 0 -> 218 bytes html/map/SNW.png | Bin 0 -> 601 bytes html/map/SOB.png | Bin 0 -> 124 bytes html/map/SOE.png | Bin 0 -> 200 bytes html/map/SOF.png | Bin 0 -> 910 bytes html/map/SON.png | Bin 0 -> 201 bytes html/map/SOO.png | Bin 0 -> 138 bytes html/map/SOU.png | Bin 0 -> 911 bytes html/map/SOW.png | Bin 0 -> 601 bytes html/map/SPB.png | Bin 0 -> 648 bytes html/map/SPB2.png | Bin 0 -> 124 bytes html/map/SPW.png | Bin 0 -> 978 bytes html/map/SPW2.png | Bin 0 -> 597 bytes html/map/ST.gif | Bin 0 -> 412 bytes html/map/SUB.png | Bin 0 -> 884 bytes html/map/SUE.png | Bin 0 -> 196 bytes html/map/SUF.png | Bin 0 -> 912 bytes html/map/SUN.png | Bin 0 -> 207 bytes html/map/SUO.png | Bin 0 -> 912 bytes html/map/SUU.png | Bin 0 -> 927 bytes html/map/SUW.png | Bin 0 -> 596 bytes html/map/SWB.png | Bin 0 -> 648 bytes html/map/SWE.png | Bin 0 -> 670 bytes html/map/SWF.png | Bin 0 -> 669 bytes html/map/SWN.png | Bin 0 -> 669 bytes html/map/SWO.png | Bin 0 -> 670 bytes html/map/SWP.png | Bin 0 -> 978 bytes html/map/SWP2.png | Bin 0 -> 669 bytes html/map/SWU.png | Bin 0 -> 668 bytes html/map/SWW.png | Bin 0 -> 978 bytes html/map/Testmap.png | Bin 0 -> 9508 bytes html/mapframe.epl | 20 + html/menu.epl | 39 + html/menu_frames.epl | 10 + html/pic/Screenshot.png | Bin 0 -> 192535 bytes html/pic/map/Aymargeddon.ACT | Bin 0 -> 772 bytes html/pic/map/BBB.png | Bin 0 -> 87 bytes html/pic/map/BBE.png | Bin 0 -> 191 bytes html/pic/map/BBF.png | Bin 0 -> 123 bytes html/pic/map/BBN.png | Bin 0 -> 186 bytes html/pic/map/BBO.png | Bin 0 -> 123 bytes html/pic/map/BBP.png | Bin 0 -> 802 bytes html/pic/map/BBP2.png | Bin 0 -> 123 bytes html/pic/map/BBU.png | Bin 0 -> 884 bytes html/pic/map/BBW.png | Bin 0 -> 802 bytes html/pic/map/BEB.png | Bin 0 -> 181 bytes html/pic/map/BEE.png | Bin 0 -> 200 bytes html/pic/map/BEF.png | Bin 0 -> 220 bytes html/pic/map/BEN.png | Bin 0 -> 201 bytes html/pic/map/BEO.png | Bin 0 -> 219 bytes html/pic/map/BEU.png | Bin 0 -> 215 bytes html/pic/map/BEW.png | Bin 0 -> 706 bytes html/pic/map/BFB.png | Bin 0 -> 127 bytes html/pic/map/BFE.png | Bin 0 -> 210 bytes html/pic/map/BFF.png | Bin 0 -> 139 bytes html/pic/map/BFN.png | Bin 0 -> 211 bytes html/pic/map/BFO.png | Bin 0 -> 913 bytes html/pic/map/BFU.png | Bin 0 -> 915 bytes html/pic/map/BFW.png | Bin 0 -> 641 bytes html/pic/map/BNB.png | Bin 0 -> 206 bytes html/pic/map/BNE.png | Bin 0 -> 255 bytes html/pic/map/BNF.png | Bin 0 -> 218 bytes html/pic/map/BNN.png | Bin 0 -> 200 bytes html/pic/map/BNO.png | Bin 0 -> 209 bytes html/pic/map/BNU.png | Bin 0 -> 214 bytes html/pic/map/BNW.png | Bin 0 -> 699 bytes html/pic/map/BOB.png | Bin 0 -> 127 bytes html/pic/map/BOE.png | Bin 0 -> 199 bytes html/pic/map/BOF.png | Bin 0 -> 913 bytes html/pic/map/BON.png | Bin 0 -> 199 bytes html/pic/map/BOO.png | Bin 0 -> 139 bytes html/pic/map/BOU.png | Bin 0 -> 915 bytes html/pic/map/BOW.png | Bin 0 -> 640 bytes html/pic/map/BPB.png | Bin 0 -> 731 bytes html/pic/map/BPB2.png | Bin 0 -> 127 bytes html/pic/map/BPW.png | Bin 0 -> 1079 bytes html/pic/map/BPW2.png | Bin 0 -> 645 bytes html/pic/map/BT.gif | Bin 0 -> 412 bytes html/pic/map/BUB.png | Bin 0 -> 886 bytes html/pic/map/BUE.png | Bin 0 -> 205 bytes html/pic/map/BUF.png | Bin 0 -> 915 bytes html/pic/map/BUN.png | Bin 0 -> 229 bytes html/pic/map/BUO.png | Bin 0 -> 915 bytes html/pic/map/BUU.png | Bin 0 -> 917 bytes html/pic/map/BUW.png | Bin 0 -> 657 bytes html/pic/map/BWB.png | Bin 0 -> 731 bytes html/pic/map/BWE.png | Bin 0 -> 719 bytes html/pic/map/BWF.png | Bin 0 -> 719 bytes html/pic/map/BWN.png | Bin 0 -> 721 bytes html/pic/map/BWO.png | Bin 0 -> 717 bytes html/pic/map/BWP.png | Bin 0 -> 1079 bytes html/pic/map/BWP2.png | Bin 0 -> 718 bytes html/pic/map/BWU.png | Bin 0 -> 717 bytes html/pic/map/BWW.png | Bin 0 -> 1079 bytes html/pic/map/CB.png | Bin 0 -> 89 bytes html/pic/map/CECB.png | Bin 0 -> 1405 bytes html/pic/map/CECE.png | Bin 0 -> 1903 bytes html/pic/map/CECF.png | Bin 0 -> 2049 bytes html/pic/map/CECN.png | Bin 0 -> 1654 bytes html/pic/map/CECO.png | Bin 0 -> 1934 bytes html/pic/map/CECU.png | Bin 0 -> 1616 bytes html/pic/map/CEIE.png | Bin 0 -> 2606 bytes html/pic/map/CEIF.png | Bin 0 -> 2441 bytes html/pic/map/CEIN.png | Bin 0 -> 2371 bytes html/pic/map/CEIO.png | Bin 0 -> 2452 bytes html/pic/map/CELE.png | Bin 0 -> 269 bytes html/pic/map/CELF.png | Bin 0 -> 273 bytes html/pic/map/CELN.png | Bin 0 -> 278 bytes html/pic/map/CELO.png | Bin 0 -> 276 bytes html/pic/map/CELU.png | Bin 0 -> 143 bytes html/pic/map/CEME.png | Bin 0 -> 1565 bytes html/pic/map/CEMF.png | Bin 0 -> 1417 bytes html/pic/map/CEMN.png | Bin 0 -> 1376 bytes html/pic/map/CEMO.png | Bin 0 -> 1516 bytes html/pic/map/CEWN.png | Bin 0 -> 1355 bytes html/pic/map/CEWU.png | Bin 0 -> 3902 bytes html/pic/map/CFCB.png | Bin 0 -> 2007 bytes html/pic/map/CFCE.png | Bin 0 -> 1906 bytes html/pic/map/CFCF.png | Bin 0 -> 2060 bytes html/pic/map/CFCN.png | Bin 0 -> 1674 bytes html/pic/map/CFCO.png | Bin 0 -> 1928 bytes html/pic/map/CFCU.png | Bin 0 -> 1592 bytes html/pic/map/CFIE.png | Bin 0 -> 2600 bytes html/pic/map/CFIF.png | Bin 0 -> 2408 bytes html/pic/map/CFIN.png | Bin 0 -> 2370 bytes html/pic/map/CFIO.png | Bin 0 -> 2474 bytes html/pic/map/CFLE.png | Bin 0 -> 276 bytes html/pic/map/CFLF.png | Bin 0 -> 272 bytes html/pic/map/CFLN.png | Bin 0 -> 286 bytes html/pic/map/CFLO.png | Bin 0 -> 294 bytes html/pic/map/CFLU.png | Bin 0 -> 143 bytes html/pic/map/CFME.png | Bin 0 -> 24213 bytes html/pic/map/CFMF.png | Bin 0 -> 1428 bytes html/pic/map/CFMN.png | Bin 0 -> 1396 bytes html/pic/map/CFMO.png | Bin 0 -> 24136 bytes html/pic/map/CFWN.png | Bin 0 -> 1334 bytes html/pic/map/CFWU.png | Bin 0 -> 3692 bytes html/pic/map/CNCB.png | Bin 0 -> 1931 bytes html/pic/map/CNCE.png | Bin 0 -> 1941 bytes html/pic/map/CNCF.png | Bin 0 -> 2071 bytes html/pic/map/CNCN.png | Bin 0 -> 1670 bytes html/pic/map/CNCO.png | Bin 0 -> 1940 bytes html/pic/map/CNCU.png | Bin 0 -> 1635 bytes html/pic/map/CNIE.png | Bin 0 -> 2602 bytes html/pic/map/CNIF.png | Bin 0 -> 2437 bytes html/pic/map/CNIN.png | Bin 0 -> 2369 bytes html/pic/map/CNIO.png | Bin 0 -> 2469 bytes html/pic/map/CNLE.png | Bin 0 -> 278 bytes html/pic/map/CNLF.png | Bin 0 -> 268 bytes html/pic/map/CNLN.png | Bin 0 -> 284 bytes html/pic/map/CNLO.png | Bin 0 -> 288 bytes html/pic/map/CNLU.png | Bin 0 -> 360 bytes html/pic/map/CNME.png | Bin 0 -> 1598 bytes html/pic/map/CNMF.png | Bin 0 -> 1416 bytes html/pic/map/CNMN.png | Bin 0 -> 1394 bytes html/pic/map/CNMO.png | Bin 0 -> 1526 bytes html/pic/map/CNWN.png | Bin 0 -> 1325 bytes html/pic/map/CNWU.png | Bin 0 -> 3760 bytes html/pic/map/COCB.png | Bin 0 -> 1919 bytes html/pic/map/COCE.png | Bin 0 -> 1904 bytes html/pic/map/COCF.png | Bin 0 -> 2040 bytes html/pic/map/COCN.png | Bin 0 -> 1660 bytes html/pic/map/COCO.png | Bin 0 -> 1913 bytes html/pic/map/COCU.png | Bin 0 -> 1545 bytes html/pic/map/COIE.png | Bin 0 -> 2671 bytes html/pic/map/COIF.png | Bin 0 -> 2448 bytes html/pic/map/COIN.png | Bin 0 -> 2404 bytes html/pic/map/COIO.png | Bin 0 -> 2456 bytes html/pic/map/COLE.png | Bin 0 -> 272 bytes html/pic/map/COLF.png | Bin 0 -> 274 bytes html/pic/map/COLN.png | Bin 0 -> 272 bytes html/pic/map/COLO.png | Bin 0 -> 282 bytes html/pic/map/COLU.png | Bin 0 -> 96 bytes html/pic/map/COME.png | Bin 0 -> 1574 bytes html/pic/map/COMF.png | Bin 0 -> 1407 bytes html/pic/map/COMN.png | Bin 0 -> 1389 bytes html/pic/map/COMO.png | Bin 0 -> 1503 bytes html/pic/map/COWN.png | Bin 0 -> 1365 bytes html/pic/map/COWU.png | Bin 0 -> 3873 bytes html/pic/map/CPLA.png | Bin 0 -> 4768 bytes html/pic/map/CPLA2.png | Bin 0 -> 399 bytes html/pic/map/CPLU.png | Bin 0 -> 4484 bytes html/pic/map/CPLU2.png | Bin 0 -> 96 bytes html/pic/map/CUCB.png | Bin 0 -> 2128 bytes html/pic/map/CUCE.png | Bin 0 -> 1927 bytes html/pic/map/CUCF.png | Bin 0 -> 2073 bytes html/pic/map/CUCN.png | Bin 0 -> 1708 bytes html/pic/map/CUCO.png | Bin 0 -> 1933 bytes html/pic/map/CUCU.png | Bin 0 -> 1599 bytes html/pic/map/CUIE.png | Bin 0 -> 2626 bytes html/pic/map/CUIF.png | Bin 0 -> 2431 bytes html/pic/map/CUIN.png | Bin 0 -> 2376 bytes html/pic/map/CUIO.png | Bin 0 -> 2478 bytes html/pic/map/CULE.png | Bin 0 -> 265 bytes html/pic/map/CULF.png | Bin 0 -> 265 bytes html/pic/map/CULN.png | Bin 0 -> 282 bytes html/pic/map/CULO.png | Bin 0 -> 295 bytes html/pic/map/CULU.png | Bin 0 -> 140 bytes html/pic/map/CUME.png | Bin 0 -> 1597 bytes html/pic/map/CUMF.png | Bin 0 -> 1477 bytes html/pic/map/CUMN.png | Bin 0 -> 1437 bytes html/pic/map/CUMO.png | Bin 0 -> 1533 bytes html/pic/map/CUWN.png | Bin 0 -> 1341 bytes html/pic/map/CUWU.png | Bin 0 -> 2759 bytes html/pic/map/Center.psd | Bin 0 -> 10024 bytes html/pic/map/HB.png | Bin 0 -> 87 bytes html/pic/map/I0.gif | Bin 0 -> 114 bytes html/pic/map/I0.png | Bin 0 -> 362 bytes html/pic/map/I1.gif | Bin 0 -> 114 bytes html/pic/map/I1.png | Bin 0 -> 363 bytes html/pic/map/I2.gif | Bin 0 -> 114 bytes html/pic/map/I2.png | Bin 0 -> 361 bytes html/pic/map/I3.gif | Bin 0 -> 85 bytes html/pic/map/I3.png | Bin 0 -> 261 bytes html/pic/map/I4.gif | Bin 0 -> 114 bytes html/pic/map/I4.png | Bin 0 -> 384 bytes html/pic/map/I5.gif | Bin 0 -> 114 bytes html/pic/map/I5.png | Bin 0 -> 373 bytes html/pic/map/I6.gif | Bin 0 -> 85 bytes html/pic/map/I6.png | Bin 0 -> 311 bytes html/pic/map/I7.gif | Bin 0 -> 114 bytes html/pic/map/I7.png | Bin 0 -> 386 bytes html/pic/map/I8.gif | Bin 0 -> 85 bytes html/pic/map/I8.png | Bin 0 -> 301 bytes html/pic/map/I9.gif | Bin 0 -> 85 bytes html/pic/map/I9.png | Bin 0 -> 341 bytes html/pic/map/IA.gif | Bin 0 -> 100 bytes html/pic/map/IA.png | Bin 0 -> 555 bytes html/pic/map/IE.gif | Bin 0 -> 97 bytes html/pic/map/IE.png | Bin 0 -> 457 bytes html/pic/map/IF.png | Bin 0 -> 390 bytes html/pic/map/IF2.png | Bin 0 -> 438 bytes html/pic/map/IG.gif | Bin 0 -> 99 bytes html/pic/map/IG.png | Bin 0 -> 379 bytes html/pic/map/II.png | Bin 0 -> 354 bytes html/pic/map/IP.png | Bin 0 -> 401 bytes html/pic/map/IU.gif | Bin 0 -> 64 bytes html/pic/map/IU.png | Bin 0 -> 86 bytes html/pic/map/IW.png | Bin 0 -> 343 bytes html/pic/map/README | 79 + html/pic/map/Rand2.psd | Bin 0 -> 2428 bytes html/pic/map/SBB.png | Bin 0 -> 87 bytes html/pic/map/SBE.png | Bin 0 -> 174 bytes html/pic/map/SBF.png | Bin 0 -> 126 bytes html/pic/map/SBN.png | Bin 0 -> 185 bytes html/pic/map/SBO.png | Bin 0 -> 126 bytes html/pic/map/SBP.png | Bin 0 -> 567 bytes html/pic/map/SBP2.png | Bin 0 -> 126 bytes html/pic/map/SBU.png | Bin 0 -> 885 bytes html/pic/map/SBW.png | Bin 0 -> 567 bytes html/pic/map/SEB.png | Bin 0 -> 205 bytes html/pic/map/SEE.png | Bin 0 -> 198 bytes html/pic/map/SEF.png | Bin 0 -> 203 bytes html/pic/map/SEN.png | Bin 0 -> 213 bytes html/pic/map/SEO.png | Bin 0 -> 202 bytes html/pic/map/SEU.png | Bin 0 -> 20854 bytes html/pic/map/SEW.png | Bin 0 -> 603 bytes html/pic/map/SFB.png | Bin 0 -> 124 bytes html/pic/map/SFE.png | Bin 0 -> 202 bytes html/pic/map/SFF.png | Bin 0 -> 138 bytes html/pic/map/SFN.png | Bin 0 -> 214 bytes html/pic/map/SFO.png | Bin 0 -> 910 bytes html/pic/map/SFU.png | Bin 0 -> 911 bytes html/pic/map/SFW.png | Bin 0 -> 602 bytes html/pic/map/SNB.png | Bin 0 -> 197 bytes html/pic/map/SNE.png | Bin 0 -> 221 bytes html/pic/map/SNF.png | Bin 0 -> 221 bytes html/pic/map/SNN.png | Bin 0 -> 198 bytes html/pic/map/SNO.png | Bin 0 -> 398 bytes html/pic/map/SNU.png | Bin 0 -> 218 bytes html/pic/map/SNW.png | Bin 0 -> 601 bytes html/pic/map/SOB.png | Bin 0 -> 124 bytes html/pic/map/SOE.png | Bin 0 -> 200 bytes html/pic/map/SOF.png | Bin 0 -> 910 bytes html/pic/map/SON.png | Bin 0 -> 201 bytes html/pic/map/SOO.png | Bin 0 -> 138 bytes html/pic/map/SOU.png | Bin 0 -> 911 bytes html/pic/map/SOW.png | Bin 0 -> 601 bytes html/pic/map/SPB.png | Bin 0 -> 648 bytes html/pic/map/SPB2.png | Bin 0 -> 124 bytes html/pic/map/SPW.png | Bin 0 -> 978 bytes html/pic/map/SPW2.png | Bin 0 -> 597 bytes html/pic/map/ST.gif | Bin 0 -> 412 bytes html/pic/map/SUB.png | Bin 0 -> 884 bytes html/pic/map/SUE.png | Bin 0 -> 196 bytes html/pic/map/SUF.png | Bin 0 -> 912 bytes html/pic/map/SUN.png | Bin 0 -> 207 bytes html/pic/map/SUO.png | Bin 0 -> 912 bytes html/pic/map/SUU.png | Bin 0 -> 927 bytes html/pic/map/SUW.png | Bin 0 -> 596 bytes html/pic/map/SWB.png | Bin 0 -> 648 bytes html/pic/map/SWE.png | Bin 0 -> 670 bytes html/pic/map/SWF.png | Bin 0 -> 669 bytes html/pic/map/SWN.png | Bin 0 -> 669 bytes html/pic/map/SWO.png | Bin 0 -> 670 bytes html/pic/map/SWP.png | Bin 0 -> 978 bytes html/pic/map/SWP2.png | Bin 0 -> 669 bytes html/pic/map/SWU.png | Bin 0 -> 668 bytes html/pic/map/SWW.png | Bin 0 -> 978 bytes html/pic/map/Testmap.png | Bin 0 -> 9508 bytes html/player.epl | 182 ++ html/reference.epl | 26 + html/role_select.epl | 52 + html/ruleframe.epl | 17 + html/table_english.html | 359 ++++ html/table_german.html | 370 ++++ html/welcome_english.html | 61 + html/welcome_german.html | 66 + linecount | 26 + pic/Screenshot.png | Bin 0 -> 192535 bytes pic/map/Aymargeddon.ACT | Bin 0 -> 772 bytes pic/map/BBB.png | Bin 0 -> 87 bytes pic/map/BBE.png | Bin 0 -> 191 bytes pic/map/BBF.png | Bin 0 -> 123 bytes pic/map/BBN.png | Bin 0 -> 186 bytes pic/map/BBO.png | Bin 0 -> 123 bytes pic/map/BBP.png | Bin 0 -> 802 bytes pic/map/BBP2.png | Bin 0 -> 123 bytes pic/map/BBU.png | Bin 0 -> 884 bytes pic/map/BBW.png | Bin 0 -> 802 bytes pic/map/BEB.png | Bin 0 -> 181 bytes pic/map/BEE.png | Bin 0 -> 200 bytes pic/map/BEF.png | Bin 0 -> 220 bytes pic/map/BEN.png | Bin 0 -> 201 bytes pic/map/BEO.png | Bin 0 -> 219 bytes pic/map/BEU.png | Bin 0 -> 215 bytes pic/map/BEW.png | Bin 0 -> 706 bytes pic/map/BFB.png | Bin 0 -> 127 bytes pic/map/BFE.png | Bin 0 -> 210 bytes pic/map/BFF.png | Bin 0 -> 139 bytes pic/map/BFN.png | Bin 0 -> 211 bytes pic/map/BFO.png | Bin 0 -> 913 bytes pic/map/BFU.png | Bin 0 -> 915 bytes pic/map/BFW.png | Bin 0 -> 641 bytes pic/map/BNB.png | Bin 0 -> 206 bytes pic/map/BNE.png | Bin 0 -> 255 bytes pic/map/BNF.png | Bin 0 -> 218 bytes pic/map/BNN.png | Bin 0 -> 200 bytes pic/map/BNO.png | Bin 0 -> 209 bytes pic/map/BNU.png | Bin 0 -> 214 bytes pic/map/BNW.png | Bin 0 -> 699 bytes pic/map/BOB.png | Bin 0 -> 127 bytes pic/map/BOE.png | Bin 0 -> 199 bytes pic/map/BOF.png | Bin 0 -> 913 bytes pic/map/BON.png | Bin 0 -> 199 bytes pic/map/BOO.png | Bin 0 -> 139 bytes pic/map/BOU.png | Bin 0 -> 915 bytes pic/map/BOW.png | Bin 0 -> 640 bytes pic/map/BPB.png | Bin 0 -> 731 bytes pic/map/BPB2.png | Bin 0 -> 127 bytes pic/map/BPW.png | Bin 0 -> 1079 bytes pic/map/BPW2.png | Bin 0 -> 645 bytes pic/map/BT.gif | Bin 0 -> 412 bytes pic/map/BUB.png | Bin 0 -> 886 bytes pic/map/BUE.png | Bin 0 -> 205 bytes pic/map/BUF.png | Bin 0 -> 915 bytes pic/map/BUN.png | Bin 0 -> 229 bytes pic/map/BUO.png | Bin 0 -> 915 bytes pic/map/BUU.png | Bin 0 -> 917 bytes pic/map/BUW.png | Bin 0 -> 657 bytes pic/map/BWB.png | Bin 0 -> 731 bytes pic/map/BWE.png | Bin 0 -> 719 bytes pic/map/BWF.png | Bin 0 -> 719 bytes pic/map/BWN.png | Bin 0 -> 721 bytes pic/map/BWO.png | Bin 0 -> 717 bytes pic/map/BWP.png | Bin 0 -> 1079 bytes pic/map/BWP2.png | Bin 0 -> 718 bytes pic/map/BWU.png | Bin 0 -> 717 bytes pic/map/BWW.png | Bin 0 -> 1079 bytes pic/map/CB.png | Bin 0 -> 89 bytes pic/map/CECB.png | Bin 0 -> 1405 bytes pic/map/CECE.png | Bin 0 -> 1903 bytes pic/map/CECF.png | Bin 0 -> 2049 bytes pic/map/CECN.png | Bin 0 -> 1654 bytes pic/map/CECO.png | Bin 0 -> 1934 bytes pic/map/CECU.png | Bin 0 -> 1616 bytes pic/map/CEIE.png | Bin 0 -> 2606 bytes pic/map/CEIF.png | Bin 0 -> 2441 bytes pic/map/CEIN.png | Bin 0 -> 2371 bytes pic/map/CEIO.png | Bin 0 -> 2452 bytes pic/map/CELE.png | Bin 0 -> 269 bytes pic/map/CELF.png | Bin 0 -> 273 bytes pic/map/CELN.png | Bin 0 -> 278 bytes pic/map/CELO.png | Bin 0 -> 276 bytes pic/map/CELU.png | Bin 0 -> 143 bytes pic/map/CEME.png | Bin 0 -> 1565 bytes pic/map/CEMF.png | Bin 0 -> 1417 bytes pic/map/CEMN.png | Bin 0 -> 1376 bytes pic/map/CEMO.png | Bin 0 -> 1516 bytes pic/map/CEWN.png | Bin 0 -> 1355 bytes pic/map/CEWU.png | Bin 0 -> 3902 bytes pic/map/CFCB.png | Bin 0 -> 2007 bytes pic/map/CFCE.png | Bin 0 -> 1906 bytes pic/map/CFCF.png | Bin 0 -> 2060 bytes pic/map/CFCN.png | Bin 0 -> 1674 bytes pic/map/CFCO.png | Bin 0 -> 1928 bytes pic/map/CFCU.png | Bin 0 -> 1592 bytes pic/map/CFIE.png | Bin 0 -> 2600 bytes pic/map/CFIF.png | Bin 0 -> 2408 bytes pic/map/CFIN.png | Bin 0 -> 2370 bytes pic/map/CFIO.png | Bin 0 -> 2474 bytes pic/map/CFLE.png | Bin 0 -> 276 bytes pic/map/CFLF.png | Bin 0 -> 272 bytes pic/map/CFLN.png | Bin 0 -> 286 bytes pic/map/CFLO.png | Bin 0 -> 294 bytes pic/map/CFLU.png | Bin 0 -> 143 bytes pic/map/CFME.png | Bin 0 -> 24213 bytes pic/map/CFMF.png | Bin 0 -> 1428 bytes pic/map/CFMN.png | Bin 0 -> 1396 bytes pic/map/CFMO.png | Bin 0 -> 24136 bytes pic/map/CFWN.png | Bin 0 -> 1334 bytes pic/map/CFWU.png | Bin 0 -> 3692 bytes pic/map/CNCB.png | Bin 0 -> 1931 bytes pic/map/CNCE.png | Bin 0 -> 1941 bytes pic/map/CNCF.png | Bin 0 -> 2071 bytes pic/map/CNCN.png | Bin 0 -> 1670 bytes pic/map/CNCO.png | Bin 0 -> 1940 bytes pic/map/CNCU.png | Bin 0 -> 1635 bytes pic/map/CNIE.png | Bin 0 -> 2602 bytes pic/map/CNIF.png | Bin 0 -> 2437 bytes pic/map/CNIN.png | Bin 0 -> 2369 bytes pic/map/CNIO.png | Bin 0 -> 2469 bytes pic/map/CNLE.png | Bin 0 -> 278 bytes pic/map/CNLF.png | Bin 0 -> 268 bytes pic/map/CNLN.png | Bin 0 -> 284 bytes pic/map/CNLO.png | Bin 0 -> 288 bytes pic/map/CNLU.png | Bin 0 -> 360 bytes pic/map/CNME.png | Bin 0 -> 1598 bytes pic/map/CNMF.png | Bin 0 -> 1416 bytes pic/map/CNMN.png | Bin 0 -> 1394 bytes pic/map/CNMO.png | Bin 0 -> 1526 bytes pic/map/CNWN.png | Bin 0 -> 1325 bytes pic/map/CNWU.png | Bin 0 -> 3760 bytes pic/map/COCB.png | Bin 0 -> 1919 bytes pic/map/COCE.png | Bin 0 -> 1904 bytes pic/map/COCF.png | Bin 0 -> 2040 bytes pic/map/COCN.png | Bin 0 -> 1660 bytes pic/map/COCO.png | Bin 0 -> 1913 bytes pic/map/COCU.png | Bin 0 -> 1545 bytes pic/map/COIE.png | Bin 0 -> 2671 bytes pic/map/COIF.png | Bin 0 -> 2448 bytes pic/map/COIN.png | Bin 0 -> 2404 bytes pic/map/COIO.png | Bin 0 -> 2456 bytes pic/map/COLE.png | Bin 0 -> 272 bytes pic/map/COLF.png | Bin 0 -> 274 bytes pic/map/COLN.png | Bin 0 -> 272 bytes pic/map/COLO.png | Bin 0 -> 282 bytes pic/map/COLU.png | Bin 0 -> 96 bytes pic/map/COME.png | Bin 0 -> 1574 bytes pic/map/COMF.png | Bin 0 -> 1407 bytes pic/map/COMN.png | Bin 0 -> 1389 bytes pic/map/COMO.png | Bin 0 -> 1503 bytes pic/map/COWN.png | Bin 0 -> 1365 bytes pic/map/COWU.png | Bin 0 -> 3873 bytes pic/map/CPLA.png | Bin 0 -> 4768 bytes pic/map/CPLA2.png | Bin 0 -> 399 bytes pic/map/CPLU.png | Bin 0 -> 4484 bytes pic/map/CPLU2.png | Bin 0 -> 96 bytes pic/map/CUCB.png | Bin 0 -> 2128 bytes pic/map/CUCE.png | Bin 0 -> 1927 bytes pic/map/CUCF.png | Bin 0 -> 2073 bytes pic/map/CUCN.png | Bin 0 -> 1708 bytes pic/map/CUCO.png | Bin 0 -> 1933 bytes pic/map/CUCU.png | Bin 0 -> 1599 bytes pic/map/CUIE.png | Bin 0 -> 2626 bytes pic/map/CUIF.png | Bin 0 -> 2431 bytes pic/map/CUIN.png | Bin 0 -> 2376 bytes pic/map/CUIO.png | Bin 0 -> 2478 bytes pic/map/CULE.png | Bin 0 -> 265 bytes pic/map/CULF.png | Bin 0 -> 265 bytes pic/map/CULN.png | Bin 0 -> 282 bytes pic/map/CULO.png | Bin 0 -> 295 bytes pic/map/CULU.png | Bin 0 -> 140 bytes pic/map/CUME.png | Bin 0 -> 1597 bytes pic/map/CUMF.png | Bin 0 -> 1477 bytes pic/map/CUMN.png | Bin 0 -> 1437 bytes pic/map/CUMO.png | Bin 0 -> 1533 bytes pic/map/CUWN.png | Bin 0 -> 1341 bytes pic/map/CUWU.png | Bin 0 -> 2759 bytes pic/map/Center.psd | Bin 0 -> 10024 bytes pic/map/HB.png | Bin 0 -> 87 bytes pic/map/I0.gif | Bin 0 -> 114 bytes pic/map/I0.png | Bin 0 -> 362 bytes pic/map/I1.gif | Bin 0 -> 114 bytes pic/map/I1.png | Bin 0 -> 363 bytes pic/map/I2.gif | Bin 0 -> 114 bytes pic/map/I2.png | Bin 0 -> 361 bytes pic/map/I3.gif | Bin 0 -> 85 bytes pic/map/I3.png | Bin 0 -> 261 bytes pic/map/I4.gif | Bin 0 -> 114 bytes pic/map/I4.png | Bin 0 -> 384 bytes pic/map/I5.gif | Bin 0 -> 114 bytes pic/map/I5.png | Bin 0 -> 373 bytes pic/map/I6.gif | Bin 0 -> 85 bytes pic/map/I6.png | Bin 0 -> 311 bytes pic/map/I7.gif | Bin 0 -> 114 bytes pic/map/I7.png | Bin 0 -> 386 bytes pic/map/I8.gif | Bin 0 -> 85 bytes pic/map/I8.png | Bin 0 -> 301 bytes pic/map/I9.gif | Bin 0 -> 85 bytes pic/map/I9.png | Bin 0 -> 341 bytes pic/map/IA.gif | Bin 0 -> 100 bytes pic/map/IA.png | Bin 0 -> 555 bytes pic/map/IE.gif | Bin 0 -> 97 bytes pic/map/IE.png | Bin 0 -> 457 bytes pic/map/IF.png | Bin 0 -> 390 bytes pic/map/IF2.png | Bin 0 -> 438 bytes pic/map/IG.gif | Bin 0 -> 99 bytes pic/map/IG.png | Bin 0 -> 379 bytes pic/map/II.png | Bin 0 -> 354 bytes pic/map/IP.png | Bin 0 -> 401 bytes pic/map/IU.gif | Bin 0 -> 64 bytes pic/map/IU.png | Bin 0 -> 86 bytes pic/map/IW.png | Bin 0 -> 343 bytes pic/map/README | 79 + pic/map/Rand2.psd | Bin 0 -> 2428 bytes pic/map/SBB.png | Bin 0 -> 87 bytes pic/map/SBE.png | Bin 0 -> 174 bytes pic/map/SBF.png | Bin 0 -> 126 bytes pic/map/SBN.png | Bin 0 -> 185 bytes pic/map/SBO.png | Bin 0 -> 126 bytes pic/map/SBP.png | Bin 0 -> 567 bytes pic/map/SBP2.png | Bin 0 -> 126 bytes pic/map/SBU.png | Bin 0 -> 885 bytes pic/map/SBW.png | Bin 0 -> 567 bytes pic/map/SEB.png | Bin 0 -> 205 bytes pic/map/SEE.png | Bin 0 -> 198 bytes pic/map/SEF.png | Bin 0 -> 203 bytes pic/map/SEN.png | Bin 0 -> 213 bytes pic/map/SEO.png | Bin 0 -> 202 bytes pic/map/SEU.png | Bin 0 -> 20854 bytes pic/map/SEW.png | Bin 0 -> 603 bytes pic/map/SFB.png | Bin 0 -> 124 bytes pic/map/SFE.png | Bin 0 -> 202 bytes pic/map/SFF.png | Bin 0 -> 138 bytes pic/map/SFN.png | Bin 0 -> 214 bytes pic/map/SFO.png | Bin 0 -> 910 bytes pic/map/SFU.png | Bin 0 -> 911 bytes pic/map/SFW.png | Bin 0 -> 602 bytes pic/map/SNB.png | Bin 0 -> 197 bytes pic/map/SNE.png | Bin 0 -> 221 bytes pic/map/SNF.png | Bin 0 -> 221 bytes pic/map/SNN.png | Bin 0 -> 198 bytes pic/map/SNO.png | Bin 0 -> 398 bytes pic/map/SNU.png | Bin 0 -> 218 bytes pic/map/SNW.png | Bin 0 -> 601 bytes pic/map/SOB.png | Bin 0 -> 124 bytes pic/map/SOE.png | Bin 0 -> 200 bytes pic/map/SOF.png | Bin 0 -> 910 bytes pic/map/SON.png | Bin 0 -> 201 bytes pic/map/SOO.png | Bin 0 -> 138 bytes pic/map/SOU.png | Bin 0 -> 911 bytes pic/map/SOW.png | Bin 0 -> 601 bytes pic/map/SPB.png | Bin 0 -> 648 bytes pic/map/SPB2.png | Bin 0 -> 124 bytes pic/map/SPW.png | Bin 0 -> 978 bytes pic/map/SPW2.png | Bin 0 -> 597 bytes pic/map/ST.gif | Bin 0 -> 412 bytes pic/map/SUB.png | Bin 0 -> 884 bytes pic/map/SUE.png | Bin 0 -> 196 bytes pic/map/SUF.png | Bin 0 -> 912 bytes pic/map/SUN.png | Bin 0 -> 207 bytes pic/map/SUO.png | Bin 0 -> 912 bytes pic/map/SUU.png | Bin 0 -> 927 bytes pic/map/SUW.png | Bin 0 -> 596 bytes pic/map/SWB.png | Bin 0 -> 648 bytes pic/map/SWE.png | Bin 0 -> 670 bytes pic/map/SWF.png | Bin 0 -> 669 bytes pic/map/SWN.png | Bin 0 -> 669 bytes pic/map/SWO.png | Bin 0 -> 670 bytes pic/map/SWP.png | Bin 0 -> 978 bytes pic/map/SWP2.png | Bin 0 -> 669 bytes pic/map/SWU.png | Bin 0 -> 668 bytes pic/map/SWW.png | Bin 0 -> 978 bytes pic/map/Testmap.png | Bin 0 -> 9508 bytes push | 5 + src/AymCommand.pm | 3865 ++++++++++++++++++++++++++++++++++++ src/Aymargeddon.pm | 845 ++++++++ src/COPYING | 340 ++++ src/FROGS/Check.pm | 116 ++ src/FROGS/Command.pm | 486 +++++ src/FROGS/Config.pm | 206 ++ src/FROGS/DataBase.pm | 592 ++++++ src/FROGS/FROGS.pod | 134 ++ src/FROGS/Game.pm | 391 ++++ src/FROGS/HexTorus.pm | 352 ++++ src/FROGS/Map.pm | 66 + src/FROGS/Util.pm | 151 ++ src/FROGS/scheduler.pl | 97 + src/FROGS/speed_scheduler | 15 + src/FROGS/start_scheduler | 2 + src/check.pl | 152 ++ src/create.pl | 637 ++++++ src/debug.pl | 59 + src/test.pl | 62 + src/test2.pl | 37 + var/LOCALIZE.sql | 512 +++++ var/RAGNAROEK.sql | 223 +++ var/README | 18 + var/backup | 3 + var/delete_game | 13 + var/do_sql | 2 + var/extract_structure_and_localize | 4 + var/from_scratch | 8 + var/my.cnf | 98 + 868 files changed, 19198 insertions(+) create mode 100644 CREDITS create mode 100644 DONTDO create mode 100644 TODO create mode 100644 agrep create mode 100644 doc/Makefile create mode 100644 doc/README create mode 100644 doc/Regeln.lyx create mode 100644 doc/Techdoc.lyx create mode 100644 doc/ay_ein_hex.fig create mode 100644 doc/design create mode 100644 doc/pdf-tip create mode 100644 doc/push_rules create mode 100644 html/aymargeddon.css create mode 100644 html/command.epl create mode 100644 html/command_frames.epl create mode 100644 html/doc/Makefile create mode 100644 html/doc/README create mode 100644 html/doc/Regeln.lyx create mode 100644 html/doc/Techdoc.lyx create mode 100644 html/doc/ay_ein_hex.fig create mode 100644 html/doc/design create mode 100644 html/doc/pdf-tip create mode 100644 html/doc/push_rules create mode 100644 html/field.epl create mode 100644 html/games.epl create mode 100644 html/index.epl create mode 100644 html/language.epl create mode 100644 html/login.epl create mode 100644 html/map.epl create mode 100644 html/map/Aymargeddon.ACT create mode 100644 html/map/BBB.png create mode 100644 html/map/BBE.png create mode 100644 html/map/BBF.png create mode 100644 html/map/BBN.png create mode 100644 html/map/BBO.png create mode 100644 html/map/BBP.png create mode 100644 html/map/BBP2.png create mode 100644 html/map/BBU.png create mode 100644 html/map/BBW.png create mode 100644 html/map/BEB.png create mode 100644 html/map/BEE.png create mode 100644 html/map/BEF.png create mode 100644 html/map/BEN.png create mode 100644 html/map/BEO.png create mode 100644 html/map/BEU.png create mode 100644 html/map/BEW.png create mode 100644 html/map/BFB.png create mode 100644 html/map/BFE.png create mode 100644 html/map/BFF.png create mode 100644 html/map/BFN.png create mode 100644 html/map/BFO.png create mode 100644 html/map/BFU.png create mode 100644 html/map/BFW.png create mode 100644 html/map/BNB.png create mode 100644 html/map/BNE.png create mode 100644 html/map/BNF.png create mode 100644 html/map/BNN.png create mode 100644 html/map/BNO.png create mode 100644 html/map/BNU.png create mode 100644 html/map/BNW.png create mode 100644 html/map/BOB.png create mode 100644 html/map/BOE.png create mode 100644 html/map/BOF.png create mode 100644 html/map/BON.png create mode 100644 html/map/BOO.png create mode 100644 html/map/BOU.png create mode 100644 html/map/BOW.png create mode 100644 html/map/BPB.png create mode 100644 html/map/BPB2.png create mode 100644 html/map/BPW.png create mode 100644 html/map/BPW2.png create mode 100644 html/map/BT.gif create mode 100644 html/map/BUB.png create mode 100644 html/map/BUE.png create mode 100644 html/map/BUF.png create mode 100644 html/map/BUN.png create mode 100644 html/map/BUO.png create mode 100644 html/map/BUU.png create mode 100644 html/map/BUW.png create mode 100644 html/map/BWB.png create mode 100644 html/map/BWE.png create mode 100644 html/map/BWF.png create mode 100644 html/map/BWN.png create mode 100644 html/map/BWO.png create mode 100644 html/map/BWP.png create mode 100644 html/map/BWP2.png create mode 100644 html/map/BWU.png create mode 100644 html/map/BWW.png create mode 100644 html/map/CB.png create mode 100644 html/map/CECB.png create mode 100644 html/map/CECE.png create mode 100644 html/map/CECF.png create mode 100644 html/map/CECN.png create mode 100644 html/map/CECO.png create mode 100644 html/map/CECU.png create mode 100644 html/map/CEIE.png create mode 100644 html/map/CEIF.png create mode 100644 html/map/CEIN.png create mode 100644 html/map/CEIO.png create mode 100644 html/map/CELE.png create mode 100644 html/map/CELF.png create mode 100644 html/map/CELN.png create mode 100644 html/map/CELO.png create mode 100644 html/map/CELU.png create mode 100644 html/map/CEME.png create mode 100644 html/map/CEMF.png create mode 100644 html/map/CEMN.png create mode 100644 html/map/CEMO.png create mode 100644 html/map/CEWN.png create mode 100644 html/map/CEWU.png create mode 100644 html/map/CFCB.png create mode 100644 html/map/CFCE.png create mode 100644 html/map/CFCF.png create mode 100644 html/map/CFCN.png create mode 100644 html/map/CFCO.png create mode 100644 html/map/CFCU.png create mode 100644 html/map/CFIE.png create mode 100644 html/map/CFIF.png create mode 100644 html/map/CFIN.png create mode 100644 html/map/CFIO.png create mode 100644 html/map/CFLE.png create mode 100644 html/map/CFLF.png create mode 100644 html/map/CFLN.png create mode 100644 html/map/CFLO.png create mode 100644 html/map/CFLU.png create mode 100644 html/map/CFME.png create mode 100644 html/map/CFMF.png create mode 100644 html/map/CFMN.png create mode 100644 html/map/CFMO.png create mode 100644 html/map/CFWN.png create mode 100644 html/map/CFWU.png create mode 100644 html/map/CNCB.png create mode 100644 html/map/CNCE.png create mode 100644 html/map/CNCF.png create mode 100644 html/map/CNCN.png create mode 100644 html/map/CNCO.png create mode 100644 html/map/CNCU.png create mode 100644 html/map/CNIE.png create mode 100644 html/map/CNIF.png create mode 100644 html/map/CNIN.png create mode 100644 html/map/CNIO.png create mode 100644 html/map/CNLE.png create mode 100644 html/map/CNLF.png create mode 100644 html/map/CNLN.png create mode 100644 html/map/CNLO.png create mode 100644 html/map/CNLU.png create mode 100644 html/map/CNME.png create mode 100644 html/map/CNMF.png create mode 100644 html/map/CNMN.png create mode 100644 html/map/CNMO.png create mode 100644 html/map/CNWN.png create mode 100644 html/map/CNWU.png create mode 100644 html/map/COCB.png create mode 100644 html/map/COCE.png create mode 100644 html/map/COCF.png create mode 100644 html/map/COCN.png create mode 100644 html/map/COCO.png create mode 100644 html/map/COCU.png create mode 100644 html/map/COIE.png create mode 100644 html/map/COIF.png create mode 100644 html/map/COIN.png create mode 100644 html/map/COIO.png create mode 100644 html/map/COLE.png create mode 100644 html/map/COLF.png create mode 100644 html/map/COLN.png create mode 100644 html/map/COLO.png create mode 100644 html/map/COLU.png create mode 100644 html/map/COME.png create mode 100644 html/map/COMF.png create mode 100644 html/map/COMN.png create mode 100644 html/map/COMO.png create mode 100644 html/map/COWN.png create mode 100644 html/map/COWU.png create mode 100644 html/map/CPLA.png create mode 100644 html/map/CPLA2.png create mode 100644 html/map/CPLU.png create mode 100644 html/map/CPLU2.png create mode 100644 html/map/CUCB.png create mode 100644 html/map/CUCE.png create mode 100644 html/map/CUCF.png create mode 100644 html/map/CUCN.png create mode 100644 html/map/CUCO.png create mode 100644 html/map/CUCU.png create mode 100644 html/map/CUIE.png create mode 100644 html/map/CUIF.png create mode 100644 html/map/CUIN.png create mode 100644 html/map/CUIO.png create mode 100644 html/map/CULE.png create mode 100644 html/map/CULF.png create mode 100644 html/map/CULN.png create mode 100644 html/map/CULO.png create mode 100644 html/map/CULU.png create mode 100644 html/map/CUME.png create mode 100644 html/map/CUMF.png create mode 100644 html/map/CUMN.png create mode 100644 html/map/CUMO.png create mode 100644 html/map/CUWN.png create mode 100644 html/map/CUWU.png create mode 100644 html/map/Center.psd create mode 100644 html/map/HB.png create mode 100644 html/map/I0.gif create mode 100644 html/map/I0.png create mode 100644 html/map/I1.gif create mode 100644 html/map/I1.png create mode 100644 html/map/I2.gif create mode 100644 html/map/I2.png create mode 100644 html/map/I3.gif create mode 100644 html/map/I3.png create mode 100644 html/map/I4.gif create mode 100644 html/map/I4.png create mode 100644 html/map/I5.gif create mode 100644 html/map/I5.png create mode 100644 html/map/I6.gif create mode 100644 html/map/I6.png create mode 100644 html/map/I7.gif create mode 100644 html/map/I7.png create mode 100644 html/map/I8.gif create mode 100644 html/map/I8.png create mode 100644 html/map/I9.gif create mode 100644 html/map/I9.png create mode 100644 html/map/IA.gif create mode 100644 html/map/IA.png create mode 100644 html/map/IE.gif create mode 100644 html/map/IE.png create mode 100644 html/map/IF.png create mode 100644 html/map/IF2.png create mode 100644 html/map/IG.gif create mode 100644 html/map/IG.png create mode 100644 html/map/II.png create mode 100644 html/map/IP.png create mode 100644 html/map/IU.gif create mode 100644 html/map/IU.png create mode 100644 html/map/IW.png create mode 100644 html/map/README create mode 100644 html/map/Rand2.psd create mode 100644 html/map/SBB.png create mode 100644 html/map/SBE.png create mode 100644 html/map/SBF.png create mode 100644 html/map/SBN.png create mode 100644 html/map/SBO.png create mode 100644 html/map/SBP.png create mode 100644 html/map/SBP2.png create mode 100644 html/map/SBU.png create mode 100644 html/map/SBW.png create mode 100644 html/map/SEB.png create mode 100644 html/map/SEE.png create mode 100644 html/map/SEF.png create mode 100644 html/map/SEN.png create mode 100644 html/map/SEO.png create mode 100644 html/map/SEU.png create mode 100644 html/map/SEW.png create mode 100644 html/map/SFB.png create mode 100644 html/map/SFE.png create mode 100644 html/map/SFF.png create mode 100644 html/map/SFN.png create mode 100644 html/map/SFO.png create mode 100644 html/map/SFU.png create mode 100644 html/map/SFW.png create mode 100644 html/map/SNB.png create mode 100644 html/map/SNE.png create mode 100644 html/map/SNF.png create mode 100644 html/map/SNN.png create mode 100644 html/map/SNO.png create mode 100644 html/map/SNU.png create mode 100644 html/map/SNW.png create mode 100644 html/map/SOB.png create mode 100644 html/map/SOE.png create mode 100644 html/map/SOF.png create mode 100644 html/map/SON.png create mode 100644 html/map/SOO.png create mode 100644 html/map/SOU.png create mode 100644 html/map/SOW.png create mode 100644 html/map/SPB.png create mode 100644 html/map/SPB2.png create mode 100644 html/map/SPW.png create mode 100644 html/map/SPW2.png create mode 100644 html/map/ST.gif create mode 100644 html/map/SUB.png create mode 100644 html/map/SUE.png create mode 100644 html/map/SUF.png create mode 100644 html/map/SUN.png create mode 100644 html/map/SUO.png create mode 100644 html/map/SUU.png create mode 100644 html/map/SUW.png create mode 100644 html/map/SWB.png create mode 100644 html/map/SWE.png create mode 100644 html/map/SWF.png create mode 100644 html/map/SWN.png create mode 100644 html/map/SWO.png create mode 100644 html/map/SWP.png create mode 100644 html/map/SWP2.png create mode 100644 html/map/SWU.png create mode 100644 html/map/SWW.png create mode 100644 html/map/Testmap.png create mode 100644 html/mapframe.epl create mode 100644 html/menu.epl create mode 100644 html/menu_frames.epl create mode 100644 html/pic/Screenshot.png create mode 100644 html/pic/map/Aymargeddon.ACT create mode 100644 html/pic/map/BBB.png create mode 100644 html/pic/map/BBE.png create mode 100644 html/pic/map/BBF.png create mode 100644 html/pic/map/BBN.png create mode 100644 html/pic/map/BBO.png create mode 100644 html/pic/map/BBP.png create mode 100644 html/pic/map/BBP2.png create mode 100644 html/pic/map/BBU.png create mode 100644 html/pic/map/BBW.png create mode 100644 html/pic/map/BEB.png create mode 100644 html/pic/map/BEE.png create mode 100644 html/pic/map/BEF.png create mode 100644 html/pic/map/BEN.png create mode 100644 html/pic/map/BEO.png create mode 100644 html/pic/map/BEU.png create mode 100644 html/pic/map/BEW.png create mode 100644 html/pic/map/BFB.png create mode 100644 html/pic/map/BFE.png create mode 100644 html/pic/map/BFF.png create mode 100644 html/pic/map/BFN.png create mode 100644 html/pic/map/BFO.png create mode 100644 html/pic/map/BFU.png create mode 100644 html/pic/map/BFW.png create mode 100644 html/pic/map/BNB.png create mode 100644 html/pic/map/BNE.png create mode 100644 html/pic/map/BNF.png create mode 100644 html/pic/map/BNN.png create mode 100644 html/pic/map/BNO.png create mode 100644 html/pic/map/BNU.png create mode 100644 html/pic/map/BNW.png create mode 100644 html/pic/map/BOB.png create mode 100644 html/pic/map/BOE.png create mode 100644 html/pic/map/BOF.png create mode 100644 html/pic/map/BON.png create mode 100644 html/pic/map/BOO.png create mode 100644 html/pic/map/BOU.png create mode 100644 html/pic/map/BOW.png create mode 100644 html/pic/map/BPB.png create mode 100644 html/pic/map/BPB2.png create mode 100644 html/pic/map/BPW.png create mode 100644 html/pic/map/BPW2.png create mode 100644 html/pic/map/BT.gif create mode 100644 html/pic/map/BUB.png create mode 100644 html/pic/map/BUE.png create mode 100644 html/pic/map/BUF.png create mode 100644 html/pic/map/BUN.png create mode 100644 html/pic/map/BUO.png create mode 100644 html/pic/map/BUU.png create mode 100644 html/pic/map/BUW.png create mode 100644 html/pic/map/BWB.png create mode 100644 html/pic/map/BWE.png create mode 100644 html/pic/map/BWF.png create mode 100644 html/pic/map/BWN.png create mode 100644 html/pic/map/BWO.png create mode 100644 html/pic/map/BWP.png create mode 100644 html/pic/map/BWP2.png create mode 100644 html/pic/map/BWU.png create mode 100644 html/pic/map/BWW.png create mode 100644 html/pic/map/CB.png create mode 100644 html/pic/map/CECB.png create mode 100644 html/pic/map/CECE.png create mode 100644 html/pic/map/CECF.png create mode 100644 html/pic/map/CECN.png create mode 100644 html/pic/map/CECO.png create mode 100644 html/pic/map/CECU.png create mode 100644 html/pic/map/CEIE.png create mode 100644 html/pic/map/CEIF.png create mode 100644 html/pic/map/CEIN.png create mode 100644 html/pic/map/CEIO.png create mode 100644 html/pic/map/CELE.png create mode 100644 html/pic/map/CELF.png create mode 100644 html/pic/map/CELN.png create mode 100644 html/pic/map/CELO.png create mode 100644 html/pic/map/CELU.png create mode 100644 html/pic/map/CEME.png create mode 100644 html/pic/map/CEMF.png create mode 100644 html/pic/map/CEMN.png create mode 100644 html/pic/map/CEMO.png create mode 100644 html/pic/map/CEWN.png create mode 100644 html/pic/map/CEWU.png create mode 100644 html/pic/map/CFCB.png create mode 100644 html/pic/map/CFCE.png create mode 100644 html/pic/map/CFCF.png create mode 100644 html/pic/map/CFCN.png create mode 100644 html/pic/map/CFCO.png create mode 100644 html/pic/map/CFCU.png create mode 100644 html/pic/map/CFIE.png create mode 100644 html/pic/map/CFIF.png create mode 100644 html/pic/map/CFIN.png create mode 100644 html/pic/map/CFIO.png create mode 100644 html/pic/map/CFLE.png create mode 100644 html/pic/map/CFLF.png create mode 100644 html/pic/map/CFLN.png create mode 100644 html/pic/map/CFLO.png create mode 100644 html/pic/map/CFLU.png create mode 100644 html/pic/map/CFME.png create mode 100644 html/pic/map/CFMF.png create mode 100644 html/pic/map/CFMN.png create mode 100644 html/pic/map/CFMO.png create mode 100644 html/pic/map/CFWN.png create mode 100644 html/pic/map/CFWU.png create mode 100644 html/pic/map/CNCB.png create mode 100644 html/pic/map/CNCE.png create mode 100644 html/pic/map/CNCF.png create mode 100644 html/pic/map/CNCN.png create mode 100644 html/pic/map/CNCO.png create mode 100644 html/pic/map/CNCU.png create mode 100644 html/pic/map/CNIE.png create mode 100644 html/pic/map/CNIF.png create mode 100644 html/pic/map/CNIN.png create mode 100644 html/pic/map/CNIO.png create mode 100644 html/pic/map/CNLE.png create mode 100644 html/pic/map/CNLF.png create mode 100644 html/pic/map/CNLN.png create mode 100644 html/pic/map/CNLO.png create mode 100644 html/pic/map/CNLU.png create mode 100644 html/pic/map/CNME.png create mode 100644 html/pic/map/CNMF.png create mode 100644 html/pic/map/CNMN.png create mode 100644 html/pic/map/CNMO.png create mode 100644 html/pic/map/CNWN.png create mode 100644 html/pic/map/CNWU.png create mode 100644 html/pic/map/COCB.png create mode 100644 html/pic/map/COCE.png create mode 100644 html/pic/map/COCF.png create mode 100644 html/pic/map/COCN.png create mode 100644 html/pic/map/COCO.png create mode 100644 html/pic/map/COCU.png create mode 100644 html/pic/map/COIE.png create mode 100644 html/pic/map/COIF.png create mode 100644 html/pic/map/COIN.png create mode 100644 html/pic/map/COIO.png create mode 100644 html/pic/map/COLE.png create mode 100644 html/pic/map/COLF.png create mode 100644 html/pic/map/COLN.png create mode 100644 html/pic/map/COLO.png create mode 100644 html/pic/map/COLU.png create mode 100644 html/pic/map/COME.png create mode 100644 html/pic/map/COMF.png create mode 100644 html/pic/map/COMN.png create mode 100644 html/pic/map/COMO.png create mode 100644 html/pic/map/COWN.png create mode 100644 html/pic/map/COWU.png create mode 100644 html/pic/map/CPLA.png create mode 100644 html/pic/map/CPLA2.png create mode 100644 html/pic/map/CPLU.png create mode 100644 html/pic/map/CPLU2.png create mode 100644 html/pic/map/CUCB.png create mode 100644 html/pic/map/CUCE.png create mode 100644 html/pic/map/CUCF.png create mode 100644 html/pic/map/CUCN.png create mode 100644 html/pic/map/CUCO.png create mode 100644 html/pic/map/CUCU.png create mode 100644 html/pic/map/CUIE.png create mode 100644 html/pic/map/CUIF.png create mode 100644 html/pic/map/CUIN.png create mode 100644 html/pic/map/CUIO.png create mode 100644 html/pic/map/CULE.png create mode 100644 html/pic/map/CULF.png create mode 100644 html/pic/map/CULN.png create mode 100644 html/pic/map/CULO.png create mode 100644 html/pic/map/CULU.png create mode 100644 html/pic/map/CUME.png create mode 100644 html/pic/map/CUMF.png create mode 100644 html/pic/map/CUMN.png create mode 100644 html/pic/map/CUMO.png create mode 100644 html/pic/map/CUWN.png create mode 100644 html/pic/map/CUWU.png create mode 100644 html/pic/map/Center.psd create mode 100644 html/pic/map/HB.png create mode 100644 html/pic/map/I0.gif create mode 100644 html/pic/map/I0.png create mode 100644 html/pic/map/I1.gif create mode 100644 html/pic/map/I1.png create mode 100644 html/pic/map/I2.gif create mode 100644 html/pic/map/I2.png create mode 100644 html/pic/map/I3.gif create mode 100644 html/pic/map/I3.png create mode 100644 html/pic/map/I4.gif create mode 100644 html/pic/map/I4.png create mode 100644 html/pic/map/I5.gif create mode 100644 html/pic/map/I5.png create mode 100644 html/pic/map/I6.gif create mode 100644 html/pic/map/I6.png create mode 100644 html/pic/map/I7.gif create mode 100644 html/pic/map/I7.png create mode 100644 html/pic/map/I8.gif create mode 100644 html/pic/map/I8.png create mode 100644 html/pic/map/I9.gif create mode 100644 html/pic/map/I9.png create mode 100644 html/pic/map/IA.gif create mode 100644 html/pic/map/IA.png create mode 100644 html/pic/map/IE.gif create mode 100644 html/pic/map/IE.png create mode 100644 html/pic/map/IF.png create mode 100644 html/pic/map/IF2.png create mode 100644 html/pic/map/IG.gif create mode 100644 html/pic/map/IG.png create mode 100644 html/pic/map/II.png create mode 100644 html/pic/map/IP.png create mode 100644 html/pic/map/IU.gif create mode 100644 html/pic/map/IU.png create mode 100644 html/pic/map/IW.png create mode 100644 html/pic/map/README create mode 100644 html/pic/map/Rand2.psd create mode 100644 html/pic/map/SBB.png create mode 100644 html/pic/map/SBE.png create mode 100644 html/pic/map/SBF.png create mode 100644 html/pic/map/SBN.png create mode 100644 html/pic/map/SBO.png create mode 100644 html/pic/map/SBP.png create mode 100644 html/pic/map/SBP2.png create mode 100644 html/pic/map/SBU.png create mode 100644 html/pic/map/SBW.png create mode 100644 html/pic/map/SEB.png create mode 100644 html/pic/map/SEE.png create mode 100644 html/pic/map/SEF.png create mode 100644 html/pic/map/SEN.png create mode 100644 html/pic/map/SEO.png create mode 100644 html/pic/map/SEU.png create mode 100644 html/pic/map/SEW.png create mode 100644 html/pic/map/SFB.png create mode 100644 html/pic/map/SFE.png create mode 100644 html/pic/map/SFF.png create mode 100644 html/pic/map/SFN.png create mode 100644 html/pic/map/SFO.png create mode 100644 html/pic/map/SFU.png create mode 100644 html/pic/map/SFW.png create mode 100644 html/pic/map/SNB.png create mode 100644 html/pic/map/SNE.png create mode 100644 html/pic/map/SNF.png create mode 100644 html/pic/map/SNN.png create mode 100644 html/pic/map/SNO.png create mode 100644 html/pic/map/SNU.png create mode 100644 html/pic/map/SNW.png create mode 100644 html/pic/map/SOB.png create mode 100644 html/pic/map/SOE.png create mode 100644 html/pic/map/SOF.png create mode 100644 html/pic/map/SON.png create mode 100644 html/pic/map/SOO.png create mode 100644 html/pic/map/SOU.png create mode 100644 html/pic/map/SOW.png create mode 100644 html/pic/map/SPB.png create mode 100644 html/pic/map/SPB2.png create mode 100644 html/pic/map/SPW.png create mode 100644 html/pic/map/SPW2.png create mode 100644 html/pic/map/ST.gif create mode 100644 html/pic/map/SUB.png create mode 100644 html/pic/map/SUE.png create mode 100644 html/pic/map/SUF.png create mode 100644 html/pic/map/SUN.png create mode 100644 html/pic/map/SUO.png create mode 100644 html/pic/map/SUU.png create mode 100644 html/pic/map/SUW.png create mode 100644 html/pic/map/SWB.png create mode 100644 html/pic/map/SWE.png create mode 100644 html/pic/map/SWF.png create mode 100644 html/pic/map/SWN.png create mode 100644 html/pic/map/SWO.png create mode 100644 html/pic/map/SWP.png create mode 100644 html/pic/map/SWP2.png create mode 100644 html/pic/map/SWU.png create mode 100644 html/pic/map/SWW.png create mode 100644 html/pic/map/Testmap.png create mode 100644 html/player.epl create mode 100644 html/reference.epl create mode 100644 html/role_select.epl create mode 100644 html/ruleframe.epl create mode 100644 html/table_english.html create mode 100644 html/table_german.html create mode 100644 html/welcome_english.html create mode 100644 html/welcome_german.html create mode 100644 linecount create mode 100644 pic/Screenshot.png create mode 100644 pic/map/Aymargeddon.ACT create mode 100644 pic/map/BBB.png create mode 100644 pic/map/BBE.png create mode 100644 pic/map/BBF.png create mode 100644 pic/map/BBN.png create mode 100644 pic/map/BBO.png create mode 100644 pic/map/BBP.png create mode 100644 pic/map/BBP2.png create mode 100644 pic/map/BBU.png create mode 100644 pic/map/BBW.png create mode 100644 pic/map/BEB.png create mode 100644 pic/map/BEE.png create mode 100644 pic/map/BEF.png create mode 100644 pic/map/BEN.png create mode 100644 pic/map/BEO.png create mode 100644 pic/map/BEU.png create mode 100644 pic/map/BEW.png create mode 100644 pic/map/BFB.png create mode 100644 pic/map/BFE.png create mode 100644 pic/map/BFF.png create mode 100644 pic/map/BFN.png create mode 100644 pic/map/BFO.png create mode 100644 pic/map/BFU.png create mode 100644 pic/map/BFW.png create mode 100644 pic/map/BNB.png create mode 100644 pic/map/BNE.png create mode 100644 pic/map/BNF.png create mode 100644 pic/map/BNN.png create mode 100644 pic/map/BNO.png create mode 100644 pic/map/BNU.png create mode 100644 pic/map/BNW.png create mode 100644 pic/map/BOB.png create mode 100644 pic/map/BOE.png create mode 100644 pic/map/BOF.png create mode 100644 pic/map/BON.png create mode 100644 pic/map/BOO.png create mode 100644 pic/map/BOU.png create mode 100644 pic/map/BOW.png create mode 100644 pic/map/BPB.png create mode 100644 pic/map/BPB2.png create mode 100644 pic/map/BPW.png create mode 100644 pic/map/BPW2.png create mode 100644 pic/map/BT.gif create mode 100644 pic/map/BUB.png create mode 100644 pic/map/BUE.png create mode 100644 pic/map/BUF.png create mode 100644 pic/map/BUN.png create mode 100644 pic/map/BUO.png create mode 100644 pic/map/BUU.png create mode 100644 pic/map/BUW.png create mode 100644 pic/map/BWB.png create mode 100644 pic/map/BWE.png create mode 100644 pic/map/BWF.png create mode 100644 pic/map/BWN.png create mode 100644 pic/map/BWO.png create mode 100644 pic/map/BWP.png create mode 100644 pic/map/BWP2.png create mode 100644 pic/map/BWU.png create mode 100644 pic/map/BWW.png create mode 100644 pic/map/CB.png create mode 100644 pic/map/CECB.png create mode 100644 pic/map/CECE.png create mode 100644 pic/map/CECF.png create mode 100644 pic/map/CECN.png create mode 100644 pic/map/CECO.png create mode 100644 pic/map/CECU.png create mode 100644 pic/map/CEIE.png create mode 100644 pic/map/CEIF.png create mode 100644 pic/map/CEIN.png create mode 100644 pic/map/CEIO.png create mode 100644 pic/map/CELE.png create mode 100644 pic/map/CELF.png create mode 100644 pic/map/CELN.png create mode 100644 pic/map/CELO.png create mode 100644 pic/map/CELU.png create mode 100644 pic/map/CEME.png create mode 100644 pic/map/CEMF.png create mode 100644 pic/map/CEMN.png create mode 100644 pic/map/CEMO.png create mode 100644 pic/map/CEWN.png create mode 100644 pic/map/CEWU.png create mode 100644 pic/map/CFCB.png create mode 100644 pic/map/CFCE.png create mode 100644 pic/map/CFCF.png create mode 100644 pic/map/CFCN.png create mode 100644 pic/map/CFCO.png create mode 100644 pic/map/CFCU.png create mode 100644 pic/map/CFIE.png create mode 100644 pic/map/CFIF.png create mode 100644 pic/map/CFIN.png create mode 100644 pic/map/CFIO.png create mode 100644 pic/map/CFLE.png create mode 100644 pic/map/CFLF.png create mode 100644 pic/map/CFLN.png create mode 100644 pic/map/CFLO.png create mode 100644 pic/map/CFLU.png create mode 100644 pic/map/CFME.png create mode 100644 pic/map/CFMF.png create mode 100644 pic/map/CFMN.png create mode 100644 pic/map/CFMO.png create mode 100644 pic/map/CFWN.png create mode 100644 pic/map/CFWU.png create mode 100644 pic/map/CNCB.png create mode 100644 pic/map/CNCE.png create mode 100644 pic/map/CNCF.png create mode 100644 pic/map/CNCN.png create mode 100644 pic/map/CNCO.png create mode 100644 pic/map/CNCU.png create mode 100644 pic/map/CNIE.png create mode 100644 pic/map/CNIF.png create mode 100644 pic/map/CNIN.png create mode 100644 pic/map/CNIO.png create mode 100644 pic/map/CNLE.png create mode 100644 pic/map/CNLF.png create mode 100644 pic/map/CNLN.png create mode 100644 pic/map/CNLO.png create mode 100644 pic/map/CNLU.png create mode 100644 pic/map/CNME.png create mode 100644 pic/map/CNMF.png create mode 100644 pic/map/CNMN.png create mode 100644 pic/map/CNMO.png create mode 100644 pic/map/CNWN.png create mode 100644 pic/map/CNWU.png create mode 100644 pic/map/COCB.png create mode 100644 pic/map/COCE.png create mode 100644 pic/map/COCF.png create mode 100644 pic/map/COCN.png create mode 100644 pic/map/COCO.png create mode 100644 pic/map/COCU.png create mode 100644 pic/map/COIE.png create mode 100644 pic/map/COIF.png create mode 100644 pic/map/COIN.png create mode 100644 pic/map/COIO.png create mode 100644 pic/map/COLE.png create mode 100644 pic/map/COLF.png create mode 100644 pic/map/COLN.png create mode 100644 pic/map/COLO.png create mode 100644 pic/map/COLU.png create mode 100644 pic/map/COME.png create mode 100644 pic/map/COMF.png create mode 100644 pic/map/COMN.png create mode 100644 pic/map/COMO.png create mode 100644 pic/map/COWN.png create mode 100644 pic/map/COWU.png create mode 100644 pic/map/CPLA.png create mode 100644 pic/map/CPLA2.png create mode 100644 pic/map/CPLU.png create mode 100644 pic/map/CPLU2.png create mode 100644 pic/map/CUCB.png create mode 100644 pic/map/CUCE.png create mode 100644 pic/map/CUCF.png create mode 100644 pic/map/CUCN.png create mode 100644 pic/map/CUCO.png create mode 100644 pic/map/CUCU.png create mode 100644 pic/map/CUIE.png create mode 100644 pic/map/CUIF.png create mode 100644 pic/map/CUIN.png create mode 100644 pic/map/CUIO.png create mode 100644 pic/map/CULE.png create mode 100644 pic/map/CULF.png create mode 100644 pic/map/CULN.png create mode 100644 pic/map/CULO.png create mode 100644 pic/map/CULU.png create mode 100644 pic/map/CUME.png create mode 100644 pic/map/CUMF.png create mode 100644 pic/map/CUMN.png create mode 100644 pic/map/CUMO.png create mode 100644 pic/map/CUWN.png create mode 100644 pic/map/CUWU.png create mode 100644 pic/map/Center.psd create mode 100644 pic/map/HB.png create mode 100644 pic/map/I0.gif create mode 100644 pic/map/I0.png create mode 100644 pic/map/I1.gif create mode 100644 pic/map/I1.png create mode 100644 pic/map/I2.gif create mode 100644 pic/map/I2.png create mode 100644 pic/map/I3.gif create mode 100644 pic/map/I3.png create mode 100644 pic/map/I4.gif create mode 100644 pic/map/I4.png create mode 100644 pic/map/I5.gif create mode 100644 pic/map/I5.png create mode 100644 pic/map/I6.gif create mode 100644 pic/map/I6.png create mode 100644 pic/map/I7.gif create mode 100644 pic/map/I7.png create mode 100644 pic/map/I8.gif create mode 100644 pic/map/I8.png create mode 100644 pic/map/I9.gif create mode 100644 pic/map/I9.png create mode 100644 pic/map/IA.gif create mode 100644 pic/map/IA.png create mode 100644 pic/map/IE.gif create mode 100644 pic/map/IE.png create mode 100644 pic/map/IF.png create mode 100644 pic/map/IF2.png create mode 100644 pic/map/IG.gif create mode 100644 pic/map/IG.png create mode 100644 pic/map/II.png create mode 100644 pic/map/IP.png create mode 100644 pic/map/IU.gif create mode 100644 pic/map/IU.png create mode 100644 pic/map/IW.png create mode 100644 pic/map/README create mode 100644 pic/map/Rand2.psd create mode 100644 pic/map/SBB.png create mode 100644 pic/map/SBE.png create mode 100644 pic/map/SBF.png create mode 100644 pic/map/SBN.png create mode 100644 pic/map/SBO.png create mode 100644 pic/map/SBP.png create mode 100644 pic/map/SBP2.png create mode 100644 pic/map/SBU.png create mode 100644 pic/map/SBW.png create mode 100644 pic/map/SEB.png create mode 100644 pic/map/SEE.png create mode 100644 pic/map/SEF.png create mode 100644 pic/map/SEN.png create mode 100644 pic/map/SEO.png create mode 100644 pic/map/SEU.png create mode 100644 pic/map/SEW.png create mode 100644 pic/map/SFB.png create mode 100644 pic/map/SFE.png create mode 100644 pic/map/SFF.png create mode 100644 pic/map/SFN.png create mode 100644 pic/map/SFO.png create mode 100644 pic/map/SFU.png create mode 100644 pic/map/SFW.png create mode 100644 pic/map/SNB.png create mode 100644 pic/map/SNE.png create mode 100644 pic/map/SNF.png create mode 100644 pic/map/SNN.png create mode 100644 pic/map/SNO.png create mode 100644 pic/map/SNU.png create mode 100644 pic/map/SNW.png create mode 100644 pic/map/SOB.png create mode 100644 pic/map/SOE.png create mode 100644 pic/map/SOF.png create mode 100644 pic/map/SON.png create mode 100644 pic/map/SOO.png create mode 100644 pic/map/SOU.png create mode 100644 pic/map/SOW.png create mode 100644 pic/map/SPB.png create mode 100644 pic/map/SPB2.png create mode 100644 pic/map/SPW.png create mode 100644 pic/map/SPW2.png create mode 100644 pic/map/ST.gif create mode 100644 pic/map/SUB.png create mode 100644 pic/map/SUE.png create mode 100644 pic/map/SUF.png create mode 100644 pic/map/SUN.png create mode 100644 pic/map/SUO.png create mode 100644 pic/map/SUU.png create mode 100644 pic/map/SUW.png create mode 100644 pic/map/SWB.png create mode 100644 pic/map/SWE.png create mode 100644 pic/map/SWF.png create mode 100644 pic/map/SWN.png create mode 100644 pic/map/SWO.png create mode 100644 pic/map/SWP.png create mode 100644 pic/map/SWP2.png create mode 100644 pic/map/SWU.png create mode 100644 pic/map/SWW.png create mode 100644 pic/map/Testmap.png create mode 100644 push create mode 100644 src/AymCommand.pm create mode 100644 src/Aymargeddon.pm create mode 100644 src/COPYING create mode 100644 src/FROGS/Check.pm create mode 100644 src/FROGS/Command.pm create mode 100644 src/FROGS/Config.pm create mode 100644 src/FROGS/DataBase.pm create mode 100644 src/FROGS/FROGS.pod create mode 100644 src/FROGS/Game.pm create mode 100644 src/FROGS/HexTorus.pm create mode 100644 src/FROGS/Map.pm create mode 100644 src/FROGS/Util.pm create mode 100644 src/FROGS/scheduler.pl create mode 100644 src/FROGS/speed_scheduler create mode 100644 src/FROGS/start_scheduler create mode 100755 src/check.pl create mode 100755 src/create.pl create mode 100755 src/debug.pl create mode 100755 src/test.pl create mode 100755 src/test2.pl create mode 100644 var/LOCALIZE.sql create mode 100644 var/RAGNAROEK.sql create mode 100644 var/README create mode 100644 var/backup create mode 100644 var/delete_game create mode 100755 var/do_sql create mode 100644 var/extract_structure_and_localize create mode 100644 var/from_scratch create mode 100644 var/my.cnf diff --git a/CREDITS b/CREDITS new file mode 100644 index 0000000..384758a --- /dev/null +++ b/CREDITS @@ -0,0 +1,40 @@ +We have to give credits to the following people! + +Game Design and Main Programming + + Benni Bärmann + Dominikus Scherkl + +Additional Programming + + Jens Kurlanda + Olaf Ohlenmacher + +Graphics + + Christine Bauer + Dominikus Scherkl + +Rule Proofreading + + Frauke Distelrath + +Game Testing + + Benni Bärmann + Christine Bauer + Nicolas Diederichs + Olaf Ohlenmacher + Jens Kleinschmidt + Jens Kurlanda + Dominikus Scherkl + Nicolas Schiller + Andreas Scholz + Ralf Zessin + ... + +Aymargeddon is based on the pbem-game Ragnaroek which was based on the +board game with the same name. Both games where designed by Benni +Bärmann (of course with many help of others - some of them mentioned +here above). + diff --git a/DONTDO b/DONTDO new file mode 100644 index 0000000..6238b82 --- /dev/null +++ b/DONTDO @@ -0,0 +1,113 @@ +Hier stehen Ideen, die bei der Entwicklung von Aymargeddon aufgekommen +sind und gegen die wir uns entschiedne haben, weil sie das Spiel zu +kompliziert machen würden. + +Trotzdem sind einige davon Wert, aufgehoben zu werden, weil sie +vielleicht mal für ein zukünftiges auf Aymargeddon basierendes Spiel +brauchbar sind. + +Propheten +--------- + +Propheten sind Erdlingseinheiten, die: + + - übers Wasser gehen können + - aus einem Priester erzeugt werden, wenn sie einen Bergtempel errichten + und dabei ganz alleine sind im Feld. + => Es gibt nur maximal zwei (drei) Pro Gott pro Spiel. + - Kampfstärke -2 + - MOVE_MNT: Sie können den eigenen Berg mit den meisten Priestern + (ab 3 * FORTUNE) zu sich hin bewegen. Die Priester bleiben zurück. + Der Tempel bleibt erhalten + +Spione +------ + +Spione sind Erdlingseinheiten, die + + - Archen klauen können + - sich unsichtbar auf fremdem Territorium aufhalten können + - keine Kämpfe auslösen + - Schnelligkeit und Kampfkraft wie Krieger + - feindliche Spione mit gewisser Wahrscheinlichkeit aufdecken können + wenn sie ein Feld betreten => löst Kampf aus. + - nur ihr direktes Feld sehen, nicht die Nachbarfelder + - den Widerstand in besetzten Heimatstädten organisieren: + - die produzierten Krieger alle zu Spionen umwandeln bevor sie + kämpfen. + - von Erdlingen aus einem oder mehreren + Helden und/oder Kriegern erzeugt werden + - wenn aus Helden: sterben immer noch für einen Gott + - wenn aus Kriegern: aus mehreren, sonst zu billig + - die DIE_ORDER des Gegners überschreiben mit der eigenen + (Assasinenfertigkeit) + + - Problem: darf niemals send_message_to_field() benutzen + - Problem: Sichtrechte. Spioninfos sollten nicht an Alliierte + weitergegeben werden. + +weitere Ideen: +-------------- + +- Strassen: nur auf Stadt und Land (beschleunigen Bewegung _in_ das +Feld rein), Kosten: sehr lange Bauzeit für einen (oder mehrere) +Krieger. Anzahl Krieger, die bauen beschleunigt die Bauzeit anteilig. + +- ebenso für Burgen: gibt Verteidigungsbonus +2. + +- Artefakte: siehe altes Ragnaroek (erstnochmal da nachlesen) + +- Anführer: Geben Bonus pro Kämpfer wie Avatare aber bis max. +10. +Erdlingseinheit. Kann nur aus einem Held und nur in der Heimatstadt +ausgebildet werden. Ausbildung dauert sehr lange. Max. 1 Anführer pro +Feld wirksam. Anführer haben keine Bindung mehr zu einem Gott und +sterben immer als letztes. Geschwindigkeit ist die eines Kriegers. + +- zwei Sorten Avatare. Die einen blockieren, die anderen helfen. (Idee +von Nicki) oder unterschiedilch starke Avatare die bestimmte +Fähigkeiten erst mit ihrer Stärke kriegen oder auch wieder verlieren. +Implementierung wäre durch Ausnahme in unify_mobiles() (nur noch +Individuen) und Verwendung von COUNT für die Stärke möglich. + +- Hurrican: Zerstört Tempel (auch Bergtempel!), versenkt Archen, +verhindert Bewegung. Bewegt sich selbst zufällig. Wird wie Seuchen +durch Priester "geheilt" ansonsten wütet er ewig weiter. Archen in +Nachbarfeldern eines Hurricans bewegen sich mit 1ZE. + + +zusätzliche Ebenen +------------------ + +Man könnte zusätzlich zu den Ebenen Gott/Erdling noch weitere +einführen, das macht natürlich die Balance enorm schwierig. Eine neue +Ebene muss auf alle anderen angewiesen sein und umgekehrt. Jede Ebene +erhöht die Anzahl der Sieger. + +Beispiel: + +Ebene Volk (Erdling wird umbenannt in Herrscher) + +- hat Bauern, Handwerker und Händler + +- Völker können koexistieren im selben Feld + +- Volksreligiosität verbreitet sich direkt in Reaktion auf +Götteraktionen (positive und negative) und ähnlich wie Seuchen. +Gläubiges Volk gibt Mana, egal wo. + +- Erdlinge brauchen Korn, das Bauern produzieren und Händler +transportieren sowie Dinge, die Handwerker produzieren und Händler +transportieren. + +- Händler bewegen sich so schnell wie Krieger. Bauern gar nicht +(ausser durch Vermehrung). + +- Gewonnen hat, wer am Schluss am meisten Volk hat. + +- Volk vermehrt sich im Frieden und verringert sich bei Krieg und +Seuche. Bei Flut wandern sie in Nachbarfelder. + +- Bauern auf Ebenen produzieren Korn. Bauern in Städten können zu +Händlern werden. Händler auf Landfeldern zu Bauern. + +- ... so oder so ähnlich diff --git a/TODO b/TODO new file mode 100644 index 0000000..610f112 --- /dev/null +++ b/TODO @@ -0,0 +1,3 @@ +Diese Datei wird inzwischen im Wiki gepflegt: + +http://www.aymargeddon.de/wiki/index.php/TODO diff --git a/agrep b/agrep new file mode 100644 index 0000000..768c84a --- /dev/null +++ b/agrep @@ -0,0 +1,3 @@ +#!/bin/sh + +grep $1 src/*.pl src/*.pm src/FROGS/*.pm html/*.epl diff --git a/doc/Makefile b/doc/Makefile new file mode 100644 index 0000000..9d126e1 --- /dev/null +++ b/doc/Makefile @@ -0,0 +1,116 @@ +# Makefile for Aymargeddon documentation +# TODO: BUG: macht immer alles (liegt an +* nicht im target) + +LYX2HTML = lyx --export html +LYX2PDF = lyx --export pdf +FICK2DEATH = fig2dev + +INSTALL_SERVER = aymargeddon.de +INSTALL_DIR = /home/benni/aymargeddon_current/doc/ + +DIRS = +FILES_BIN = +FILES_LIB = +FILES_DOC = Regeln.lyx Techdoc.lyx ay_ein_hex.fig +FILES_MISC = +FILES = Makefile $(FILES_IN) $(FILES_DOC) $(FILES_MISC) +FILES_OUT = ay_ein_hex.eps Regeln.pdf \ + Regeln.html Techdoc.pdf Techdoc.html $(FILES_MISC) + + +all: $(FILES_OUT) + +#Regeln.html: Regeln.tex +# $(LATEX2HTML) $(LATEX2HTML_OPT) < Regeln.tex > Regeln.html +# +#Techdoc.html: Techdoc.tex +# $(LATEX2HTML) $(LATEX2HTML_OPT) < Techdoc.tex > Techdoc.html + +clean: + rm -f $(FILES_OUT) + rm -rf Regeln + rm -rf Techdoc + rm -rf auto + rm -f *.aux + rm -f *.log + rm -f *.ps + rm -f *.dvi + rm -f *~ + rm -f *.toc + rm -f *.png + rm -f *.ps.gz + rm -f *.tex + rm -f +* + +realclean: clean + + + +#release: clean have_to_make +# @if [ -z "$(RELDIR)" ] ; then \ +# echo "Sorry, release directory is not set!" 1>&2 ; \ +# exit 1 ; \ +# fi ;\ +# if [ ! -d $(RELDIR) ] ; then mkdir $(RELDIR) ; fi ; \ +# tar cf - $(FILES) | \ +# ( cd $(RELDIR) ; tar xf - ) +# for i in $(DIRS) ; do \ +# ( cd $$i ; \ +# $(MAKE) RELDIR=../$(RELDIR)/$$i $@ ) ; \ +# done + +install: all + +# hier muss dann das angepasste push-script hin + +# @if [ "X$(RELEASE)" = "X" ] ; then \ +# echo "Sorry, this isn't released source" 1>&2 ; \ +# exit 1 ; \ +# fi ;\ +# for i in $(INSTALLDIRS) ; do \ +# if [ ! -d $$i ] ; then mkdir -p $$i ; fi ; \ +# done ;\ +# for i in $(FILES_DOC) ; do \ +# cp $$i $(DOCDIR)/$$i ; \ +# chmod 555 $(DOCDIR)/$$i ; \ +# chown bin:bin $(DOCDIR)/$$i ; \ +# echo "Installed $(DOCDIR)/$$i" ; \ +# done +# for i in $(DIRS) ; do \ +# ( cd $$i ; ${MAKE} RELEASE=$$RELEASE PREFIX=$(PREFIX) install ) ; \ +# done + +# have_to_make: + +.SUFFIXES: +.SUFFIXES: .pdf .lyx .eps .fig .html + +.fig.eps: + $(FICK2DEATH) -L ps $(FICK2DEATH_OPT) $< +$@ + +# TeX to DVI +#.tex.dvi: +# $(LATEX) $< < /dev/null > /dev/null 2>&1 +# $(LATEX) $< < /dev/null > /dev/null 2>&1 + +# DVI to PS +#.dvi.ps: +# $(DVIPS) -o $@ $< + +# PS to PDF +#.ps.pdf: +# $(PS2PDF) $< $@ + +# LyX to TeX +#.lyx.tex: +# $(LYX2LATEX) $< > /dev/null 2>&1 && mv -f $@ +$@ + +# LyX to PDF +.lyx.pdf: + $(LYX2PDF) $< > /dev/null 2>&1 && mv -f $@ +$@ + +# LyX to HTML +.lyx.html: + $(LYX2HTML) $< > /dev/null 2>&1 && mv -f $@ +$@ + + diff --git a/doc/README b/doc/README new file mode 100644 index 0000000..486fcb0 --- /dev/null +++ b/doc/README @@ -0,0 +1,11 @@ +german below! + +There is currently no rules or other documentation in english. use the +sourcecode or ask at the mailinglist, if you want to know something. + +------------------------ + +Die Dateien in diesem Verzeichnis sind nicht auf dem neuesten Stand. +Die Regeln werden inzwischen im Wiki gepflegt: + +http://www.aymargeddon.de/wiki/index.php/Regeln diff --git a/doc/Regeln.lyx b/doc/Regeln.lyx new file mode 100644 index 0000000..d52001d --- /dev/null +++ b/doc/Regeln.lyx @@ -0,0 +1,2397 @@ +#LyX 1.3 created this file. For more info see http://www.lyx.org/ +\lyxformat 221 +\textclass article +\language german +\inputencoding latin1 +\fontscheme default +\graphics default +\paperfontsize 11 +\spacing single +\papersize a4paper +\paperpackage a4 +\use_geometry 0 +\use_amsmath 0 +\use_natbib 0 +\use_numerical_citations 0 +\paperorientation portrait +\secnumdepth 3 +\tocdepth 3 +\paragraph_separation indent +\defskip bigskip +\quotes_language polish +\quotes_times 2 +\papercolumns 1 +\papersides 1 +\paperpagestyle default + +\layout Title + +Die letzten Tage von Aymargeddon +\layout Author + +Aymargeddon Development Team +\layout Date + +17. + April 2005 +\layout Standard + + +\begin_inset ERT +status Collapsed + +\layout Standard + +\backslash +tableofcontents +\backslash +newpage +\end_inset + + +\layout Section + +Einleitung +\layout Quotation + + +\emph on + +\begin_inset Quotes pld +\end_inset + +Es ist nicht leicht, ein Gott zu sein +\begin_inset Quotes prd +\end_inset + + (Titel eines Buches der Brüder Strugatzkij) +\layout Standard + +Während in den himmlischen Sphären der entscheidende Kampf zwischen Gut + und Böse ausgefochten wird, kämpfen auf Erden Elfen gegen Zwerge, Menschen + gegen Halblinge und jeder gegen jeden. + Soweit das Fantasy-Klischee. + Doch jetzt kommen wir zum Spiel: +\layout Standard + + +\series bold +\shape smallcaps +Die letzten Tage von Aymargeddon +\series default +\shape default + wird von mindestens acht Spielern gespielt. + Höchstens ein Drittel der Spieler übernimmt die Aufgabe eines Gottes. + Die restlichen zwei Drittel spielen jeweils ein Volk auf der Erde. + Am Ende gibt es zwei Sieger: den himmlischen Sieger, der zwischen den Göttern + ermittelt wird, und den Sieger der Erdlinge, den die restlichen Spieler + zwischen sich ausmachen. +\layout Standard + + +\series bold +Himmlischer Sieger +\series default +ist der Gott, der am Ende in der +\series bold +letzten Schlacht +\series default + auf der +\series bold +Insel des Schicksals +\series default +, der +\series bold +Aymargeddon, +\series default + am meisten Kräfte auf sich vereinigen kann. + Der Ort der letzten Schlacht wird einer von mehreren +\series bold +Manapolen +\series default + sein - abgelegene Inseln, auf denen die magischen Kraftlinien zusammenlaufen. + In der letzten Schlacht kämpfen die +\series bold +Avatare +\series default + der Götter, aber auch die Geister verstorbener +\series bold +Helden +\series default + der Erdlinge. + +\layout Standard + +Der +\series bold +Sieger der Erdlinge +\series default + ist der Spieler, der am Ende die meisten +\series bold +Städte +\series default + sein eigen nennt. + +\layout Standard + +Zweite Plätze gibt es weder bei den Göttern noch bei den Erdlingen. + Es geht immer um den Kampf ums Ganze, um Alles oder Nichts. +\layout Standard + +Die Interaktion zwischen den beiden Ebenen wird durch +\series bold +Priester +\series default + und +\series bold +Götteraktionen +\series default + möglich. +\layout Standard + +Das +\series bold +Spiel endet, +\series medium + sobald alle +\series bold +heiligen Berge +\series default +und +\series bold + gesegneten Inseln mit Tempeln +\series default + bebaut +\series medium +sind +\series default +. + +\series medium +Die Tempel bauen die Erdlinge, Götter können sie nur zerstören. + +\layout Standard + +Je mehr Priester an einem Tempel +\series bold +beten +\series default +, um so mehr +\series bold +Mana +\series default + erhält der jeweilige Gott und um so mehr Aktionen kann er machen. +\layout Standard + + +\series bold +Beide Ebenen +\series medium +sind aufeinander angewiesen, da Götter ohne den guten Willen der Erdlinge + kein +\series default + Mana und somit keinerlei Macht +\series medium + haben und die Erdlinge die Unterstützung der Götter in ihren irdischen + Dingen dringend brauchen. + Durch diese enge Verzahnung der beiden Spielebenen ist man immer zu +\series bold +Verhandlungen +\series medium + gezwungen. +\layout Standard + +Der +\series bold +Glücksfaktor +\series default + wird von den Spielern selbst bestimmt. + Kämpfe werden durch einen Zufallswert mitbestimmt. + Den Maximalwert des Zufalls (3 - 12) müssen die Götter bestimmen (auch + diese Aktion kostet sie natürlich Mana). + +\layout Standard + +Am +\series bold +Schluss +\series medium + ist es vor allem nötig +\series default +, +\series medium + einen Partner zu haben, der stark genug ist +\series default +, +\series medium + um auch an einem Spielende interessiert zu sein +\series default + oder schwach genug, um sich mit einem hinteren Platz zufrieden zu geben +\series medium +. + So werden treue Verbündete, mit denen man das ganze Spiel gemeinsam bestritten + hat, oft noch einmal kurz vor Schlu +\series default +ss +\series medium + fallengelassen. +\layout Standard + +Die +\series bold +Erdlinge +\series medium +spielen +\series default +mit +\series bold +Kriegern +\series default +, Helden (von Göttern erzeugt) und Priestern. + Üblicherweise werden nur die ersten Priester von Göttern erleuchtet, danach + machen die Tempel diese Arbeit. + Sie können Tempel bauen, Städte erobern und Archen steuern. +\layout Standard + +Die +\series bold +Götter +\series medium +spielen +\series default + mit ihren Avataren, können aber auch Tempel zerstören, Archen erschaffen, + Felder überfluten, Seuchen herbeirufen, Priester und Helden erzeugen und + den Glücks +\begin_inset ERT +status Collapsed + +\layout Standard + +\backslash +- +\end_inset + +fak +\begin_inset ERT +status Collapsed + +\layout Standard + +\backslash +- +\end_inset + +tor verändern. + Doch das alles kostet sie Mana. +\layout Standard + +Die Welt ist in viele kleine sechseckige Spielfelder unterteilt. + Die Größe des Spielfeldes wird durch die angestrebte Spieleranzahl bestimmt. + +\layout Standard + +Gespielt wird über einen üblichen Web-Browser. + Es gibt keine Spielrunden, sondern jeder Befehl braucht eine gewisse Zeit, + bis er ausgeführt wird. + Die Spielgeschwindigkeit kann dabei variieren. +\layout Standard + +An dieser Stelle möchten wir einmal ganz laut und deutlich allen Testspielern + des Brettspieles und der Pbem-Version danken, ohne die auch diese Online-Versio +n nicht möglich geworden wäre! +\layout Section* + + +\family sans +\series medium +\size large +\emph on +WARNUNG: +\layout Standard + + +\family sans +\emph on +Sowohl die verschiedenen beteiligten Programme als auch diese Regeln sind + noch in einem Test-Stadium. + Wir bitten also insbesondere alle Testspieler, uns darauf hinzuweisen, + wenn es Unterschiede zwischen diesem Dokument und dem realen Verhalten + des Spiels gibt. + Außerdem bitten wir Euch, Euch in die Ragnarök-Mailingliste einzutragen + ( +\begin_inset Quotes pld +\end_inset + +subscribe ragnaroek +\begin_inset Quotes prd +\end_inset + + nach majordomo@cs.uni-frankfurt.de schicken). + Helft mit, dass Aymargeddon besser wird! Wer will, kann auch gerne selbst + programmieren helfen. + Der Quellcode steht in einem tla-Archiv auf www.aymargeddon.de zur Verfügung. +\layout Section + +Die Welt +\layout Quotation + + +\emph on + +\begin_inset Quotes pld +\end_inset + +Wenn man eine Rolle lange genug spielte, vermischten sich langsam Fiktion + und Realität... + Rache war etwas für Götter. +\begin_inset Quotes prd +\end_inset + + (aus: +\begin_inset Quotes pld +\end_inset + +Ragnarök +\begin_inset Quotes prd +\end_inset + + von D.G.Compton und John Gribbin) +\layout Standard + +Die Welt besteht aus Sechsecken und hat keinen Rand. + Man kann in jede Richtung laufen und kommt wieder zum Ausgangspunkt zurück + (Torus). + Hier ein Screenshot vom Hauptbildschirm, damit Ihr eine Vorstellung davon + bekommt, wie die Welt aussieht. +\layout Standard +\align center + +\layout Standard + +In dieser Welt kann man sich in sechs verschiedene Richtungen bewegen, die + man sich folgendermaßen vorstellen kann: +\layout Standard +\added_space_top 0.3cm \added_space_bottom 0.3cm \align center + +\layout Standard +\added_space_top 0.3cm \added_space_bottom 0.3cm \align center + +\begin_inset Graphics + filename +ay_ein_hex.eps + display monochrome + width 50text% + +\end_inset + + +\layout Standard + +Jeder Erdling beginnt bei seiner Heimatstadt. + Diese ist schwerer zu erobern und produziert mehr Krieger als normale Städte. + Jeder Gott hat zwei heilige Berge, an denen nur er angebetet werden kann. +\layout Standard + +Es dürfen immer nur Einheiten von einem Erdling in einem Feld stehen, das + somit einen eindeutigen Eigentümer hat. + Heimatstädte erinnern sich immer an ihre rechtmäßigen Herrscher. + Sie verteidigen sich auch ohne Krieger, und sie gehören einem wieder, sobald + die Besatzungsmacht abgezogen ist. +\layout Standard + +Besondere Felder sind die Manapole, zu ihnen strebt das ganze Denken der + Götter ihrem Wesen nach. + Einer der Manapole ist immer die Insel des Schicksals. + Manapole sind immer komplett von Wasserfeldern ohne gesegnete Inseln umgeben. +\layout Standard + +Außerdem gibt es noch Wasser und Inseln. + Inseln sind immer gesegnet, man kann dort also immer Tempel bauen, außer + es handelt sich um einen Manapol. + Über Wasser darf man sich als Erdling nur bewegen, wenn im Ausgangsfeld + eine Arche ist. + Avatare dürfen sich nur dann über Wasser bewegen, wenn ein Erdling gleichzeitig + die Arche steuert. + Die Archen bewegen sich mit den Erdlingen mit und haben ein unbegrenztes + Fassungsvermögen. + Die Götter sind also auf die Mithilfe der Erdlinge angewiesen, wenn sie + ihre Avatare in die letzte Schlacht, die auf der Insel des Schicksals stattfind +et, schicken wollen. +\layout Standard + +Welcher Manapol Aymargeddon ist, ändert sich im Laufe des Spiels. + Es ist immer der Manapol, der dem neuesten und schönsten Tempel am nächsten + ist. + Avatare bewegen sich leichter in Richtung Aymargeddon als von ihr weg. + Sie dürfen die Insel des Schicksals nicht verlassen, so lange sie Aymargeddon + ist. +\layout Subsection* + +Topologie +\layout Standard + +Felder haben immer zwei Koordinaten. + Das Spielfeld hat keinen Rand, wenn man sich in einer Richtung über den + vermeintlichen Rand bewegt, kommt man auf der gegenüberliegenden Seite + wieder raus. + Die folgende Karte mit den Koordinaten der Felder demonstriert das: +\layout Standard +\align center + +\layout Standard + +Eine Welt ist immer doppelt so breit wie hoch. + Nur so kann man in allen Richtungen immer geradeaus laufen und kommt doch + immer wieder am Ausgangspunkt an. +\layout Subsection* + +Produktion +\layout Standard + +Alle Städte erzeugen automatisch in gewissen Zeitabständen Krieger. + Heimatstädte erzeugen doppelt so schnell Krieger, sie tun dies manchmal + auch, wenn sie das Feld von feindlichen Einheiten besetzt wird, dann kommt + es zu Aufständen der heimatlichen Bevölkerung in regelmäßigen Abständen. + Normale Städte erzeugen umso häufiger Krieger, je kürzer der Zeitpunkt + ihres letzten Besitzerwechsels her ist. + +\layout Standard + +Tempel erzeugen in gewissen Zeitabständen Priester. + Es werden keine Priester erzeugt, wenn nicht schon rechtgläubige Priester + dort sind. +\layout Section + +Aktionen +\layout Standard + +Jede Aktion eines Spielers wird sofort in eine Datenbank geschrieben. + Die Aktionen werden jedoch erst zu einem späteren Zeitpunkt ausgeführt. + Wie lange das dauert, hängt von der Aktion ab (siehe Abschnitt Timing). + Einheiten sind wärend dieser Zeit inaktiv. +\layout Subsection* + +Aktionen für alle Spieler +\layout Subsubsection* + +Status ändern +\layout Standard + +Mit dieser Aktion kann man seine generelle Haltung anderen Spielern gegenüber + - seien sie Götter oder Erdlinge - ändern. + Man kann andere Spieler als Freund, als Feind oder neutral ansehen. + Man kann ihnen Sichtrechte gewähren oder sie verweigern. + +\layout Standard + +Das hat an einigen Stellen Auswirkungen, die dort dann näher beschrieben + sind. + Zu Spielbeginn ist man allen anderen Spielern gegenüber neutral eingestellt + und gewährt ihnen keine Sichtrechte. +\layout Subsection* + +Aktionen der Erdlinge +\layout Standard + + +\series bold +Bewegen +\layout Standard + +Dies bedeutet, dass man eine bestimmte Anzahl Krieger, Helden oder Priester + in ein Nachbarfeld bewegen will. + Dies kann zu Kampfhandlungen führen, wenn sich am Ende des Zuges noch Einheiten + anderer Erdlingsspieler auf dem Zielfeld aufhalten. + +\layout Standard + +Erdlinge können die Manapole nicht betreten. + Ihre toten Helden werden automatisch direkt nach einem Kampf zur Aymargeddon + transferiert. +\layout Standard + +Helden bewegen sich doppelt so schnell wie Krieger und kämpfen doppelt so + gut. + +\layout Standard + +Wasser- und Inselfelder können nur betreten werden, wenn im Startfeld eine + Arche steht, die einen dorthin bringen kann. + +\layout Standard + +Archen bewegen sich immer automatisch mit Erdlingen mit außer bei der Bewegung + zwischen Landfeldern. + Wenn Erdlingseinheiten oder Avatare in einem Wasserfeld zurückbleiben, + aus dem sich eine Arche entfernt, ertrinken sie jämmerlich. + Ertrinkende Helden streiten nicht in der letzten Schlacht, ebensowenig + wie ertrinkende Avatare. + Auf Inselfeldern können sie jedoch überleben. +\layout Standard + +Das Bewegen von einem Wasser- oder Inselfeld auf ein benachbartes Landfeld + ist immer möglich auch ohne Arche. + +\layout Standard + +Das Bewegen in das Feld eines Alliierten scheitert +\begin_inset Foot +collapsed true + +\layout Standard + +Böse Zungen nennen das die Olf-Bodo-Regel ;-) +\end_inset + +. + Ebenso scheitert die Bewegung, wenn im Zielfeld bereits ein Kampf stattfindet + an dem ich nicht beteiligt bin. + So wird gewährleistet, dass an einem Erdlingskampf immer nur zwei Spieler + beteiligt sein können. + Das Bewegen scheitert allerdings erst am Schluss der Bewegung. + Sie müssen sich dann wieder zurück bewegen. + +\layout Standard + +Man kann somit fast lückenlos Felder übergeben. + Daraus ergibt sich, dass man Alliierte nicht angreifen kann, so lange sie + Freunde sind. + +\layout Subsubsection* + +Tempel bauen +\layout Standard + +Diese Aktion erzeugt auf einem Feld einen Tempel einer Gottheit. + Es ist nur möglich, Tempel zu erzeugen, wenn der Spieler mindestens einen + Priester der passenden Gottheit dort hat und das Feld ein heiliger Berg + oder eine gesegnete Insel ist. + Wenn es ein heiliger Berg ist, darf nur ein Tempel des Gottes gebaut werden, + dem der Berg gewidmet ist. + Auf jedem Feld kann es immer nur einen Tempel geben. +\layout Standard + +Tempel zu bauen geht am Anfang des Spiels recht schnell, dauert aber um + so länger, je mehr Tempel schon gebaut sind. + Jeder Erdling will schließlich den schönsten Tempel der Welt haben, und + das dauert natürlich seine Zeit. + Wenn alle Tempel gebaut sind, endet das Spiel sofort. + +\layout Standard + +Der Manapol, der dem neuesten Tempel am nächsten ist, wird zur Insel des + Schicksals. + Wenn mehrere Manapole gleich weit entfernt sind, bleibt die aktuelle Aymargeddo +n bestehen. + (noch nicht implementiert) +\layout Subsubsection* + +Schlachtordnung festlegen +\layout Standard + +Erdlinge können angeben in welcher Schlachtordnung ihre Armeen in den Krieg + ziehen. + Es wird eine Reihenfolge angegeben in der die Einheiten aufgestellt werden. + Mit der Reihenfolge kann jeder Erdling angeben, welche eigenen Einheiten + in vorderster Front stehen und somit zuerst sterben sollen. + So kann man zum Beispiel zuerst Krieger sterben lassen, dann Helden und + dann erst die Priester. +\layout Standard + +Die Reihenfolge gilt immer für die ganze Welt. +\layout Standard + +Die voreingestellte Reihenfolge ist: Krieger, Helden, Priester. + +\layout Standard + +Die Reihenfolge ist allerdings nicht absolut, sondern gibt nur die Wahrscheinlic +hkeit des Todes an. +\layout Standard + +Archen befinden sich immer in der letzten Reihe der Schlachtordnung. + Jede Arche, die +\begin_inset Quotes pld +\end_inset + +stirbt +\begin_inset Quotes prd +\end_inset + + wird mit einer gewissen Wahrscheinlichkeit versenkt und mit einer gewissen + Wahrscheinlichkeit vom Gegner erobert. +\layout Subsection* + +Aktionen der Götter +\layout Quotation + + +\emph on + +\begin_inset Quotes pld +\end_inset + +Wenn Dich das nächste Mal jemand fragt, ob Du ein Gott bist, sag ja. +\begin_inset Quotes prd +\end_inset + + (aus: Ghostbusters) +\layout Standard + +Alle folgenden Aktionen kosten Mana. + Neues Mana erhält ein Gott, wenn seine Priester an den richtigen Tempeln + beten. + Alle zehn Zeiteinheiten gibt es pro Priester und Tempel einen Manapunkt + (MP). +\layout Subsubsection* + +Avatar erschaffen +\layout Standard + +Ein Avatare erscheint immer an dem eigenen Tempel an dem am meisten eigene + Priester beten. + Ein Avatar kostet 5 MP. + +\layout Subsubsection* + +Held weihen +\layout Standard + +Ein Krieger kann nur an eigenen Tempeln zum Helden geweiht werden. + Das kostet 1 MP. +\layout Description + +Priester +\series medium + +\series bold +erleuchten +\layout Standard + +Einen Priester kann man nur aus einem Krieger erzeugen, wenn der Gott das + entsprechende Feld einsehen kann (siehe Sicht-Abschnitt). + Diese Aktion kostet 5 MP. + +\layout Subsubsection* + +Avatare bewegen +\layout Standard + +Avatare dürfen sich auch auf die Insel des Schicksals begeben (allerdings + nicht mehr von ihr weg). + Das Bewegen eines Avatars geht deutlich schneller als das Bewegen der Erdlinge + (Eine Zeiteinheit). + Es kostet immer 1 MP pro Feld und Avatar. + Avatare reisen umsonst auf Schiffen mit. +\layout Standard + +Avatare dürfen sich nicht auf Wasser- oder Inselfelder bewegen, ausser mit + einer Arche (von Erdlingen gesteuert). + Von Wasserfeldern aus, dürfen sie sich auch alleine auf Landfelder oder + Manapole bewegen. +\layout Subsubsection* + +Verseuchen +\layout Standard + +Ein Gott kann die Erde mit Seuchen überziehen. + Das hat unterschiedliche Auswirkungen je nach Art der Seuche. + Seuchen verbreiten sich mit einer gewissen Wahrscheinlichkeit auf Nachbarfelder + sowie bei Bewegungen von Erdlingseinheiten. + Die Anwesenheit von Priestern erhöht die Wahrscheinlichkeit, dass die Seuche + aufhört. + Die Kosten für Seuchen hängen von der Art der Seuche ab. + Zum Verseuchen benötigt man einen anwesenden Avatar und in dem Feld darf + gerade kein Götterkampf (s.u.) stattfinden. + +\layout Standard + +Verseucht sind immer ganze Felder, keine einzelnen Einheiten. + Städte stecken sich leichter an als Landfelder, Landfelder leichter als + Berge, Berge leichter als Inseln, Inseln leichter als Wasserfelder. +\layout Standard + +Es gibt zur Zeit drei verschiedene Seuchen: +\layout Standard + + +\begin_inset Tabular + + + + + + + +\begin_inset Text + +\layout Standard + +Seuche +\end_inset + + +\begin_inset Text + +\layout Standard + +Effekt +\end_inset + + +\begin_inset Text + +\layout Standard + +Mana +\end_inset + + + + +\begin_inset Text + +\layout Standard + +Influenza +\end_inset + + +\begin_inset Text + +\layout Standard + +Städte und Tempel produzieren nicht mehr +\end_inset + + +\begin_inset Text + +\layout Standard + +10 +\end_inset + + + + +\begin_inset Text + +\layout Standard + +Pestilentia +\end_inset + + +\begin_inset Text + +\layout Standard + +50% aller Leute sterben +\end_inset + + +\begin_inset Text + +\layout Standard + +20 +\end_inset + + + + +\begin_inset Text + +\layout Standard + +Ebola +\end_inset + + +\begin_inset Text + +\layout Standard + +100% aller Leute sterben +\end_inset + + +\begin_inset Text + +\layout Standard + +40 +\end_inset + + + + +\end_inset + + +\layout Standard + +Wenn Leute sterben, so geschieht das nach den Regeln bei Erdlingskämpfen + (s.u.). +\layout Standard + +Eine Seuche hat alle 20 Zeiteinheiten erneut ihren in der Tabelle beschriebenen + Effekt. +\layout Subsubsection* + +Sintfluten +\layout Standard + +Avatare können eine Ebene oder einen Berg überfluten, die an ein Wasser- + oder Inselfeld grenzen, wenn sie vor Ort sind und in dem Feld gerade kein + Götterkampf(s.u.) stattfindet. + Eine Sintflut kostet nur 2 MP, dauert aber 40 Zeiteinheiten. + Berge werden durch Überfluten zu Inseln. + Dadurch ändert sich ihre Exklusivität, und von nun an können auch andere + Götter an ihnen angebetet werden. + Städte und Inseln kann man nicht überfluten. +\layout Standard + +Wenn zum Zeitpunkt des Flutens einer Ebene noch Einheiten im Feld sind, + benötigen sie eine Arche, um nicht unterzugehen. +\layout Subsubsection* + +Avatarstatus ändern +\layout Standard + +Jede Gruppe von Avataren eines Spielers in einem Feld hat einen Status. + Dieser kann +\series bold +\shape smallcaps +Helfe +\series default +\shape default +, +\series bold +\shape smallcaps +Block +\series default +\shape default + oder +\series bold +\shape smallcaps +Ignorieren +\series default +\shape default + sein. + Mit +\series bold +\shape smallcaps +Helfe +\series default +\shape default + hilft man befreundeten Erdlingen, wenn es zu Kämpfen kommt. + Mit +\series bold +\shape smallcaps +Block +\series default +\shape default + schlägt man sich mit verfeindeten Avataren, wenn diese ins Feld kommen. + Man kann immer nur eines von beidem gleichzeitig tun. + +\layout Standard + +Sich bewegende Avatare nehmen ihren Status mit. + Wenn zwei Gruppen von Avataren des selben Spielers zusammentreffen, wird + immer automatisch +\series bold +\shape smallcaps +Block +\series default +\shape default + vor +\series bold +\shape smallcaps +Helfe +\series default +\shape default + vor +\series bold +\shape smallcaps +Frieden +\series default +\shape default + für die neue gemeinsame Gruppe gewählt. + +\layout Subsubsection* + +Tempel zerstören +\layout Standard + +Götter können den Tempel eines anderen Gottes auf einer gesegneten Insel + zerstören. + Dort dürfen sich keine Priester eines anderen Gottes befinden, außerdem + braucht man einen eigenen Avatar in dem Feld und es darf dort kein Götterkampf + (s.u.) stattfinden. + Dieser Befehl kostet 5 MP. + Wenn nur noch ein Tempelfeld unbebaut ist, kann man keine Tempel mehr zerstören. + +\layout Standard + +Es gibt im Wesentlichen zwei Anwendungsfälle für diesen Befehl: +\layout Enumerate + +Ein Gott will eine gesegnete Insel übernehmen, damit ein +\begin_inset ERT +status Collapsed + +\layout Standard +ver +\backslash +-bün +\backslash +-de +\backslash +-ter +\end_inset + + Erdling ihm dort einen Tempel errichtet. + Dafür muss der alte Tempel zerstört werden. + +\layout Enumerate + +Ein Gott will das drohende Spielende hinauszögern, weil er für später bessere + Siegchancen sieht. + Danach sollte man Erdlinge dazu überreden, das leere Baufeld auch zu verteidige +n. + Wenn jedoch einmal der Baubefehl für den letzten Tempel gegeben ist, ist + es zu spät, das Ende der Welt noch aufzuhalten. +\layout Subsubsection* + +Glücksfaktor verändern +\layout Standard + +Mit diesem Befehl kann man angeben, ob man den globalen +\begin_inset ERT +status Collapsed + +\layout Standard +Glücks +\backslash +-fak +\backslash +-tor +\end_inset + +, der auf alle Kämpfe mit Ausnahme der letzten Schlacht angewandt wird, + erhöhen oder erniedrigen will. + Man gibt an, wie viele Manapunkte man investieren will. + Pro MP ändert sich der Glücksfaktor um einen Punkt auf einer Skala von + 3 bis 12. +\layout Standard + +Der Glücksfaktor ist immer für alle Spieler gleich hoch, es gibt also nur + einen Glücksfaktor für alle Spieler. +\layout Subsubsection* + +Arche bauen +\layout Standard + +Ein Gott kann auf einem Feld, dass er sieht, eine Arche bauen. + Steuern kann er sie nicht. + Die Arche gehört dem derzeitigen Feldeigentümer. +\layout Standard + +Eine Arche zu bauen kostet 5 MP und dauert 30 Zeiteinheiten. +\layout Section + +Beten +\layout Quotation + + +\emph on + +\begin_inset Quotes pld +\end_inset + +Wer Gott definiert, ist schon Atheist. +\begin_inset Quotes prd +\end_inset + + (Oswald Spengler) +\layout Standard + +Die Götter erhalten alle 10 Zeiteinheiten einen MP pro Tempel und pro rechtgläub +igem Priester an diesem Tempel ebenso ein MP. + Die Anzahl effektiv betender Priester pro Tempel ist allerdings auf den + aktuellen Glücksfaktor begrenzt. + An heiligen Bergen können doppelt so viele Priester effektiv beten. +\layout Section + +Infos +\layout Standard + +Folgende generelle Daten sind für alle Mitspieler jedezeit abrufbar. + Sie beziehen sich auf das ganze Spiel und nicht auf einzelne Felder. + +\layout Itemize + +Der aktuelle Glücksfaktor +\layout Itemize + +Die Anzahl nicht gebauter Tempel +\layout Itemize + +Die Stärke auf der Insel des Schicksals +\layout Itemize + +Die Anzahl der Avatare auf den Manapolen (noch nicht implementiert) +\layout Itemize + +Die Gesamtstärke jeden Erdlings (noch nicht implementiert) +\layout Itemize + +Die Anzahl der lebenden Avatare jedes Gottes (noch nicht implementiert) +\layout Itemize + +Die Anzahl der Priester jedes Gottes (noch nicht implementiert) +\layout Itemize + +Die Anzahl Städte jedes Erdlings +\layout Standard + +Dadurch kann man immer die Stärke eines anderen Spielers ungefähr einordnen + und sieht, wer auf dem Weg zum Sieg ist. +\layout Standard + +Erdlinge sehen außerdem noch die Sterbereihenfolge ihrer Einheiten. + Götter sehen ihren aktuellen Manastand. +\layout Subsection* + +Sichtrechte +\layout Standard + +Sichtrecht hat man für folgende Felder: +\layout Standard +\added_space_top 0.3cm \added_space_bottom 0.3cm \align center + +\begin_inset Tabular + + + + + + +\begin_inset Text + +\layout Standard + +Götter +\end_inset + + +\begin_inset Text + +\layout Standard + +Erdlinge +\end_inset + + + + +\begin_inset Text + +\layout Standard + +eigene Holys +\end_inset + + +\begin_inset Text + +\layout Standard + +Heimatstädte +\end_inset + + + + +\begin_inset Text + +\layout Standard + +anwesende Priester oder Avatare +\end_inset + + +\begin_inset Text + +\layout Standard + +anwesende Priester, Krieger oder Helden +\end_inset + + + + +\end_inset + + +\layout Standard + +Von Bergen aus sieht man zwei Felder weit, sonst nur eins. +\layout Standard + +Andere Spieler können einem Sichtrechte gewähren. + Dies tun sie durch den Allianzstatus +\begin_inset Quotes pld +\end_inset + +Alliiert +\begin_inset Quotes prd +\end_inset + + oder +\begin_inset Quotes pld +\end_inset + +Verrat +\begin_inset Quotes prd +\end_inset + +. + +\begin_inset Quotes pld +\end_inset + +Freund +\begin_inset Quotes prd +\end_inset + + gewährt keine Sichtrechte. +\layout Standard + +Als anwesend zählen auch nicht-aktive Einheiten (die sich zum Beispiel gerade + in der Bewegung befinden). +\layout Standard + +Wenn man Sichtrecht für ein Feld hat, kann man jederzeit die Infos zu diesem + Feld abrufen. +\layout Section + +Kampf +\layout Standard + +Götter können Erdlinge nicht direkt attackieren, sie können nur andere Erdlinge + bei diesen Angriffen unterstützen. + +\layout Standard + +Bei jedem Kampf außer der letzten Schlacht werden die Kampfstärken der beteiligt +en Einheiten addiert und zusätzlich ein Zufallswert zwischen eins und dem + Glücksfaktor dazugezählt. + +\layout Standard + +Jeder Kampf dauert eine gewisse Zeitspanne. + Alle in dieser Zeitspanne hinzustoßenden Einheiten nehmen am Kampf teil + oder werden vom Kampf ausgeschlossen. + In letzterem Fall kehren sie einfach wieder um. +\layout Subsection* + +Erdlingskampf +\layout Standard + +Ein Erdlingskampf wird ausgelöst, wenn Einheiten eines neutralen oder verfeindet +en Erdlings - im Folgenden Angreifer genannt - ein Feld betreten, dessen + Eigentümer im Folgenden Verteidiger genannt wird. + Alle Einheiten dieser beiden Parteien, die wärend der Kampfdauer zum Kampf + dazu stoßen, nehmen am Kampf teil. + Einheiten Dritter werden vom Kampf ausgeschlossen. + Eine Möglichkeit, sich aus einem einmal begonnenen Kampf herauszuhalten, + gibt es nicht. +\layout Standard + +Die Kampfstärke beider Seiten ergibt sich aus der Summe der Kampfstärken + der beteiligten Einheiten. + Beide Seiten eines Kampfes addieren einen Zufallswert, der zwischen 1 und + dem aktuellen Glücksfaktor liegt, zu ihrer Kampfstärke. + +\layout Standard + +Dem bisherigen Eigentümer reicht ein Unentschieden zum Sieg. + +\layout Standard + +Eine Partei, die einen Kampf verliert, muss ihre Überlebenden zurückziehen. + Alle Einheiten ziehen sich einzeln zurück. + +\layout Standard + +Dazu wird nach dem Zufallsprinzip eines der Nachbarfelder ausgewählt, das + dem Verlierer gehört oder neutral ist und in dem zum Zeitpunkt des Rückzuges + kein Kampf stattfindet. + Ein Rückzug ist wie eine normale Bewegung und braucht Zeit. + Archen ziehen sich immer zuerst zurück. + Archen auf Küstenfeldern können sich nur auf Wasser oder Inselfelder zurückzieh +en. + Andere Einheiten können sich nur auf Landfelder zurückziehen oder auf solche, + auf die sich bereits Archen zurückgezogen haben. +\layout Standard + +Es kann passieren, dass das Feld bei Ankunft der Flüchtenden auch schon + einem anderen Spieler gehört, dann kommt es dort direkt wieder zum Kampf. + Flüchtende Einheiten können also von Feld zu Feld gejagt und dabei aufgerieben + werden. + Ein gut geplanter Angriff auf breiter Front kann diese Regel bewusst ausnutzen. +\layout Standard + +Natürlich kann man beim Kämpfen auch zu schaden kommen: Der Verlierer verliert + die Hälfte der Kampfstärke des Gewinners (ohne Avatare und Flankierung) + an Leuten. + Der Gewinner verliert ein Viertel der Kampfstärke des Verlierers. + Der Gewinner behält mindestens eine Person (oder Arche), der Verlierer + verliert mindestens eine. + Die Schlachtordnung bestimmt wieviele Leute welcher Art anteilig sterben. +\layout Standard + +Sollte ein Spieler nach einem verlorenen Kampf keinerlei Rückzugsmöglichkeiten + mehr haben, sterben alle seine Einheiten in diesem Feld. + +\layout Standard + +Doch jetzt endlich zu den Kampfstärken: +\layout Standard +\added_space_top 0.3cm \added_space_bottom 0.3cm \align center + +\begin_inset Tabular + + + + + + +\begin_inset Text + +\layout Standard + +Einheit +\end_inset + + +\begin_inset Text + +\layout Standard + +Modifikator +\end_inset + + + + +\begin_inset Text + +\layout Standard + +Priester +\end_inset + + +\begin_inset Text + +\layout Standard + ++0 +\end_inset + + + + +\begin_inset Text + +\layout Standard + +Krieger +\end_inset + + +\begin_inset Text + +\layout Standard + ++1 +\end_inset + + + + +\begin_inset Text + +\layout Standard + +Held +\end_inset + + +\begin_inset Text + +\layout Standard + ++2 +\end_inset + + + + +\begin_inset Text + +\layout Standard + +Avatar +\end_inset + + +\begin_inset Text + +\layout Standard + +bis zu +4 +\end_inset + + + + +\begin_inset Text + +\layout Standard + +Heimatstadt +\end_inset + + +\begin_inset Text + +\layout Standard + ++2 +\end_inset + + + + +\begin_inset Text + +\layout Standard + +Arche +\end_inset + + +\begin_inset Text + +\layout Standard + ++3 +\end_inset + + + + +\begin_inset Text + +\layout Standard + +pro Flankierung +\end_inset + + +\begin_inset Text + +\layout Standard + ++1 +\end_inset + + + + +\end_inset + + +\layout Standard + +Dabei ist +0 nicht so sinnlos, wie es auf den ersten Blick aussieht: Sind + nur Prieser anwesend, können sie wenigstens auf ihr Würfelglück hoffen, + wenn sie angegriffen werden und tragen zur Avatarunterstützung bei, wenn + diese vorhanden ist. +\layout Standard + +Avatare kämpfen natürlich nur mit, wenn sie im Status +\begin_inset Quotes pld +\end_inset + +Helfe +\begin_inset Quotes prd +\end_inset + + sind, und Mannapunkte übrig haben (2 MP pro Kampf unabhängig von der Anzahl + Avatare). + Sie geben maximal 4 Punkte Bonus. + Dabei wird pro kämpfendem Erdling ein Punkt verbraucht (egal ob Krieger, + Held oder Priester). + +\layout Standard + +Den Flankierungsbonus erhält man für jedes benachbarte Feld, das folgende + Bedingungen erfüllt: +\layout Itemize + +Es muss einem selbst oder einem Spieler mit dem Status +\begin_inset Quotes pld +\end_inset + +Freund +\begin_inset Quotes prd +\end_inset + + oder +\begin_inset Quotes pld +\end_inset + +alliiert +\begin_inset Quotes prd +\end_inset + + gehören; +\layout Itemize + +der Eigentümer des Feldes muss zum Zeitpunkt des Kampfes noch aktive Einheiten + dort stehen haben; +\layout Itemize + +es darf nicht selbst umkämpft sein. + +\layout Itemize + +Es darf kein Wasserfeld sein. + Inseln flankieren aber ganz normal. +\layout Standard + +Dadurch kann man Gebiete, die aus zusammenhängenden benachbarten Feldern + bestehen, besser verteidigen. +\layout Subsection* + +Avatarkampf +\layout Quotation + + +\emph on + +\begin_inset Quotes pld +\end_inset + +Jetzt hast Du, tapferer Soldat, jetzt hast Du, streitbarer Mann, einen Ort, + wo Du ohne Gefahr kämpfen kannst, wo der Sieg Ruhm und der Tod Gewinn ist. +\begin_inset Quotes prd +\end_inset + + (Bernhard von Clairveaux, 1146 n.u.Z., zum zweiten Kreuzzug aufrufend) +\layout Standard + +Avatare haben immer einen von drei Zuständen. + Mit +\begin_inset Quotes pld +\end_inset + +Helfe +\begin_inset Quotes prd +\end_inset + + helfen sie Erdlingen, wie oben angesprochen. + Mit +\begin_inset Quotes pld +\end_inset + +Block +\begin_inset Quotes prd +\end_inset + + blockieren sie andere Avatare, um gegen sie zu kämpfen. + Ist ihr Zustand +\begin_inset Quotes pld +\end_inset + +Ignoriere +\begin_inset Quotes prd +\end_inset + +, wollen sie mit niemandem Streit. + Die Avatare eines Gottes in einem Feld können nur den gleichen Zustand + haben. + +\layout Standard + +Nur der Status +\begin_inset Quotes pld +\end_inset + +Block +\begin_inset Quotes prd +\end_inset + + kann zu Avatarkämpfen führen. + Dies geschieht, wenn +\layout Itemize + +einer der beiden den anderen als Feind betrachtet und er oder der andere + 'Blockieren' eingestellt hat, oder +\layout Itemize + +wenn zwei Götter aufeinander treffen, die einander beide 'Neutral' gegenübersteh +en aber beide 'Blockiere' eingestellt haben. +\layout Standard + +Zu Kämpfen kann es nur dann kommen, wenn Avatare in ein Feld ziehen oder + wenn der Avatarstatus auf blockieren geändert wird. + Für jeden schon anwesenden Gott wird einzeln ermittelt, ob es zu einem + Kampf mit dem Neuankömmling kommt. + Es kann dabei durchaus zu mehreren parallel verlaufenden Kämpfen kommen, + die auch im Folgenden einzeln abgewickelt werden. + Wenn ein Avatar in ein Feld kommt, in dem er schon vertreten ist, löst + das nie einen Kampf aus. +\layout Standard + +Avatarkämpfe kosten 2 MP unabhängig von der Anzahl der beteiligten Avatare. + Wenn ein Gott nicht mehr genügend MP hat, darf der Gott noch auf sein Würfelglü +ck hofen, aber seine Avatare kämpfen nicht mehr mit. +\layout Standard + +Avatarkämpfe dauern länger als die Kämpfe der Erdlinge; und da Avatare sehr + schnell sein können, kann man eventuell auch noch aus einiger Entfernung + Kräfte hinzuziehen. + Man darf Avatare nicht aus einem umkämpften Feld wegziehen, auch wenn man + an keinem der Kämpfe beteiligt ist. + +\layout Standard + +Sollte im selben Feld bereits ein Erdlingskampf stattfinden, so wird der + Avatarkampf bis nach dem Erdlingskampf verschoben. + +\layout Standard + +Jeder Avatar zählt +4, und es wird ganz normal gewürfelt. + Der Verlierer verliert die Hälfte der Avatare des Gewinners und der Gewinner + verliert ein Viertel der Avatare des Verlierers. + Bei einem unentschieden gelten beide Seiten als Verlierer. + Die Seelen sterbender Avatare fahren in eventuell anwesende Krieger des + Feldeigentümers und machen diese zu Helden. + Alle Avatare des Verlierers die danach noch im Feld sind werden an den + Ort der Avatarerschaffung zurückteleportiert. +\layout Standard + +Avatare, die in einem Götterkampf beschäftigt sind, dürfen keine Erdlinge + bei ihren Kämpfen unterstützen. +\layout Subsection* + +Die letzte Schlacht +\layout Standard + +In der letzten Schlacht wird nicht gewürfelt. + Es zählen nur die Kampfwerte: +\layout Standard +\added_space_top 0.3cm \added_space_bottom 0.3cm \align center + +\begin_inset Tabular + + + + + + +\begin_inset Text + +\layout Standard + +Einheit +\end_inset + + +\begin_inset Text + +\layout Standard + +Kampfwert +\end_inset + + + + +\begin_inset Text + +\layout Standard + +Avatar +\end_inset + + +\begin_inset Text + +\layout Standard + ++7 +\end_inset + + + + +\begin_inset Text + +\layout Standard + +Geist eines Helden +\end_inset + + +\begin_inset Text + +\layout Standard + ++1 +\end_inset + + + + +\end_inset + + +\layout Standard + +Für die Geister der Helden zählt der angebetete Gott. + Diese Helden kämpfen also immer noch für ihren Gott, auch wenn der Erdling + inzwischen längst vom Glauben abgefallen ist. +\layout Section + +Timing +\layout Standard + +Alle Aktionen dauern unterschiedlich lange. + Dabei gibt es in jedem Spiel eine einstellbare Spielgeschwindigkeit, mit + der die Werte unten multipliziert werden. + Die Zahlen in der Tabelle können also sowohl Minuten als auch Tage meinen, + je nachdem wie schnell man spielt. + Die Spielgeschwindigkeit kann sich auch während eines Spieles ändern. + Es kann zum Beispiel sinnvoll sein, das Spiel am Anfang langsamer laufen + zu lassen, bis eine angemessene Anzahl Mitspieler eingestiegen ist. + Jede Änderung der Spielgeschwindigkeit wird rechtzeitig vorher bekannt + gegeben und sollte nicht zu apprupt erfolgen. +\layout Standard + + +\begin_inset Tabular + + + + + + +\begin_inset Text + +\layout Standard + +Aktion +\end_inset + + +\begin_inset Text + +\layout Standard + +Dauer +\end_inset + + + + +\begin_inset Text + +\layout Standard + +Krieger bewegen +\end_inset + + +\begin_inset Text + +\layout Standard + +10 +\end_inset + + + + +\begin_inset Text + +\layout Standard + +Priester bewegen +\end_inset + + +\begin_inset Text + +\layout Standard + +12 +\end_inset + + + + +\begin_inset Text + +\layout Standard + +Held bewegen +\end_inset + + +\begin_inset Text + +\layout Standard + +6 +\end_inset + + + + +\begin_inset Text + +\layout Standard + +Avatar bewegen +\end_inset + + +\begin_inset Text + +\layout Standard + +1 +\end_inset + + + + +\begin_inset Text + +\layout Standard + +Erdlingskampf +\end_inset + + +\begin_inset Text + +\layout Standard + +6 +\end_inset + + + + +\begin_inset Text + +\layout Standard + +Avatarkampf +\end_inset + + +\begin_inset Text + +\layout Standard + +10 +\end_inset + + + + +\begin_inset Text + +\layout Standard + +Tempel bauen +\end_inset + + +\begin_inset Text + +\layout Standard + +3, 6 , 9, ... +\end_inset + + + + +\begin_inset Text + +\layout Standard + +Überfluten +\end_inset + + +\begin_inset Text + +\layout Standard + +20 +\end_inset + + + + +\begin_inset Text + +\layout Standard + +Bewegen mit Arche +\end_inset + + +\begin_inset Text + +\layout Standard + +5 +\end_inset + + + + +\begin_inset Text + +\layout Standard + +Krieger produzieren +\end_inset + + +\begin_inset Text + +\layout Standard + +40 + N (20) +\end_inset + + + + +\begin_inset Text + +\layout Standard + +Priester produzieren +\end_inset + + +\begin_inset Text + +\layout Standard + +40 +\end_inset + + + + +\begin_inset Text + +\layout Standard + +Glücksfaktor verändern +\end_inset + + +\begin_inset Text + +\layout Standard + +5 +\end_inset + + + + +\begin_inset Text + +\layout Standard + +Avatarstatus ändern +\end_inset + + +\begin_inset Text + +\layout Standard + +1 +\end_inset + + + + +\begin_inset Text + +\layout Standard + +Arche bauen +\end_inset + + +\begin_inset Text + +\layout Standard + +30 +\end_inset + + + + +\begin_inset Text + +\layout Standard + +Beten +\end_inset + + +\begin_inset Text + +\layout Standard + +10 +\end_inset + + + + +\begin_inset Text + +\layout Standard + +alle anderen Aktionen +\end_inset + + +\begin_inset Text + +\layout Standard + +0 +\end_inset + + + + +\end_inset + + +\layout Standard + + +\begin_inset ERT +status Collapsed + +\layout Standard + +\backslash +medskip +\end_inset + + +\layout Section + +Spielanfang +\layout Standard + +Die Götter starten mit 33 Mana. + Sie sollten daher zusehen, dass sie möglichst bald Priester erzeugen, damit + diese Tempel bauen können, die wieder Priester produzieren und damit wieder + Mana. + Dafür ist eine Kooperation mit mindestens einem Erdling nötig. +\layout Standard + +Die Erdlinge stehen am Anfang vor der Entscheidung, wo sie ihre ersten Krieger + hinschicken sollen. + Dies kann zum Beispiel auf ein Tempelfeld sein, weil man davon ausgeht, + dass der Krieger in einen Priester umgewandelt wird. + Außerdem ist es ratsam, sich früh mit seinen Nachbarn abzusprechen, wer + welchen Tempel baut. + Ansonsten kann es zu unliebsamen Überraschungen kommen, die einen gleich + die ersten Krieger verlieren lassen! +\layout Standard + +Der Glücksfaktor ist am Anfang auf seinem Minimalwert von 3. +\layout Standard + +Götter, die nachträglich einsteigen, erhalten etwas Bonusmana pro vergangener + Zeiteinheit. + Erdlinge, die neu einsteigen, profitieren davon, dass ihre Heimatstadt + schon die ganze Zeit Krieger produziert hat. +\layout Section + +Spielende (nur teilweise implementiert) +\layout Standard + +Das Spiel endet, sobald alle Tempel gebaut wurden. + Mit dem Baubefehl des letzten Tempels wird allen Spielern bekanntgegeben, + wie lange das Spiel noch dauert. + Dann gibt es kein Zurück mehr. +\layout Standard + +Es gewinnt der Erdling, der die meisten Städte sein eigen nennt. + Dabei zählen besetzte feindliche Heimatstädte und verseuchte Städte mit. + Bei gleicher Anzahl Städte entscheidet die Gesamtkampfstärke des Erdlings. + Sollte die auch gleich sein, wird gewürfelt. + +\layout Standard + +Der Gott, der in der letzten Schlacht die meisten Kräfte auf sich vereint, + gewinnt. + Dabei muss kein Mana mehr ausgegeben werden und es wird auch nicht mehr + gewürfelt. + Sollte die letzte Schlacht unentschieden ausgehen, zählen die Anzahl lebender + Avatare. + Wenn diese auch gleich sind, die Anzahl der Tempel. + Wenn dann immer noch Gleichstand herrscht, zählt das übrige Mana. + Sollte wider erwarten selbst dieses gleich sein, wird am Ende doch noch + gewürfelt. +\layout Standard + +Alle Spieler erhalten zum Abschluss eine Rangliste und den Ausgang der letzten + Schlacht. +\layout Standard + +Mit jedem Spiel kann man Punkte für die ewige Bestenliste sammeln, allerdings + nur als Sieger. + Zweite Plätze zählen nicht. +\layout Section + +FAQ +\layout Subsection* + +Was bedeutet +\shape italic +Aymargeddon +\shape default +? +\layout Standard + +Der Name des Spiels leitet sich von +\shape italic +Armageddon +\shape default + her. + Das wiederum basiert auf dem hebräischen +\shape italic +Har +\shape default +, was +\shape italic +Berg +\shape default + bedeutet, und der Ortschaft +\shape italic +Megeddon +\shape default +, bei der laut der Sage die letzte Schlacht geschlagen werden wird. + Da in unserem Spiel die letzte Schlacht auf einer Insel stattfindet, haben + wir +\shape italic +Har +\shape default + durch +\shape italic +Ay +\shape default + ersetzt, was +\shape italic +Insel +\shape default + bedeutet. + +\layout Standard + +Das +\begin_inset Quotes pld +\end_inset + +r +\begin_inset Quotes prd +\end_inset + + gehört da nicht wirklich hin, nein. + Aber wir haben das erst entdeckt, als wir die Domain schon bestellt hatten + und es klingt eh besser so, oder? Ausserdem gibt +\begin_inset Quotes pld +\end_inset + +Aymageddon +\begin_inset Quotes prd +\end_inset + + unanständige Suchergebnisse bei Google. +\layout Subsection* + +Heißt es +\shape italic +der +\shape default +, +\shape italic +die +\shape default +, oder +\shape italic +das +\shape default + Aymargeddon? +\layout Standard + +Kommt darauf an. +\layout Standard + +Wenn die Insel des Schicksals gemeint ist, heißt es +\shape italic +die +\shape default +, wenn das Spiel gemeint ist, heißt es +\shape italic +das +\shape default + und wenn der Server gemeint ist, heiß es +\shape italic +der +\shape default + Aymargeddon. +\layout Standard + +Das ist allerdings nur die Erdlingssicht. + Götter geben sich mit solch kleinlichen Geschlechterfragen nicht ab, wenn + es um Schicksalsfragen wie das Ende der Welt geht. +\layout Subsection* + +Gibt es Vorläufer zu Aymargeddon? +\layout Standard + +Das Spiel basiert auf einem - leider noch unveröffentlichten - Brettspiel + namens +\shape italic +Ragnarök +\shape default + beziehungsweise dem zugehörigen Play-by-E-Mail +\shape italic +Ragnarök als Pbem +\shape default +. + Beide Spiele hat Benni Bärmann entwickelt. + Die grundlegenden Konzepte sind erhalten geblieben. + Aber natürlich erforderte der geänderte Zugrhythmus und die höhere Spieleranzah +l einige Anpassungen. +\layout Subsection* + +Wie viel Zeit braucht Aymargeddon? +\layout Standard + +Das hängt von der Spielgeschwindigkeit ab. + +\layout Standard + +Bei niedriger Spielgeschwindigkeit braucht man sich nur gelegentlich einzuloggen +, um zu gucken, was es Neues gibt. + Dafür kann sich ein Spiel dann auch schon mal ein paar Monate hinziehen. + +\layout Standard + +Bei hoher Spielgeschwindigkeit sitzt man mehr oder weniger die ganze Zeit + vorm Rechner, dafür ist es dann aber auch nach ein paar Stunden vorbei. +\layout Standard + +Bei gleicher Spielgeschwindigkeit ist das Spiel als Gott tendenziell aufwendiger + als das als Erdling. + Als Erdling kann man fast sicher sein, nichts wichtiges zu verpassen, wenn + man sich so oft einloggt, wie ein Erdlingskampf dauert. +\layout Subsection* + +Was brauche ich, um mitspielen zu können? +\layout Standard + +Eigentlich nichts, außer einer funktionierenden E-Mail-Adresse und einem + üblichen Web-Browser. +\layout Standard + +Was man natürlich auch noch braucht, sind Spaß am Spiel, Verhandlungsgeschick, + etwas Zeit und ein bisschen Glück. +\layout Subsection* + +Wie sehen sinnvolle erste Züge als Erdling aus? +\layout Standard + +Man sollte sich auf jeden Fall möglichst bald mit den Göttern absprechen, + deren heilige Orte man sieht, beziehungsweise auf die Suche nach solchen + Orten gehen. + Danach sollte man möglichst Tempel bauen für die Götter, damit diese schnell + Mana kriegen, mit dem sie einen dann (hoffentlich) unterstützen. +\layout Standard + +Dabei ist es ratsam, auch die irdischen Nachbarn nicht zu vernachlässigen + und dafür zu sorgen, dass sie nicht in der Zwischenzeit alle strategisch + wichtigen Punkte unter sich aufteilen. +\layout Standard + +Wenn man erste Städte erobert hat, muß man sich überlegen ob man sofort + weiterzieht oder erst abwartet, bis dort ein Krieger erzeugt wird. + Im ersten Fall kommt man schneller voran und kann vieleicht weitere Städte + vor den Nachbarn erreichen, im zweiten Fall produziert man schneller neue + Krieger. +\layout Subsection* + +Wie sehen sinnvolle erste Züge als Gott aus? +\layout Standard + +Ein Gott sollte am Anfang hauptsächlich durch Verhandlungen abklären, welche + Erdlinge ihm möglichst bald Tempel auf seinen exklusiven heiligen Bergen + errichten. + +\layout Standard + +Bald kann man dann schon Avatare und möglicherweise sogar Helden erzeugen + und kriegt neues Mana. + +\layout Standard + +Es kann sinnvoll sein, die wertvollen Tempel mit Avataren zu schützen, damit + nicht kleinliche Streitereien zwischen Erdlingen den wertvollen Manastrom + verringern. +\layout Subsection* + +Können Erdlingsarmeen aneinander vorbeilaufen? +\layout Standard + +Ja. + +\layout Subsection* + +Gibt es nicht zu unausgewogene Startpositionen? +\layout Standard + +Gerade die Unausgewogenheit der Startpositionen zwingt zu Verhandlungen. + Deswegen werden die dafür relevanten Informationen (mit denen die Spieler + abschätzen können, wer führt) ja auch zur Verfügung gestellt. +\layout Subsection* + +Was passiert, wenn jemand aufhört? +\layout Standard + +Seine Einheiten bleiben einfach da stehen, wo sie sind, und rühren sich + nicht. + Krieger und Priester eines ausgestiegenen Erdlings werden aber noch weiterhin + erzeugt. + +\layout Standard + +Bei Göttern ist das lästiger als bei Erdlingen, da das Spielgleichgewicht + stärker beeinträchtigt wird. + Schön ist es natürlich in keinem Fall. + +\layout Standard + +Nichtaktive Spieler können jederzeit übernommen werden von Neueinsteigern. + +\layout Subsection* + +Was passiert, wenn ich eine Weile nicht ziehe? +\layout Standard + +Wenn das lange dauert, geht der Server davon aus, dass Du nicht mehr spielen + willst, und gibt Deine Einheiten zur Übernahme frei. + (noch nicht implementiert) +\layout Subsection* + +Soll ich einen Gott oder einen Erdling spielen? +\layout Standard + +Die Götterrolle ist die anspruchsvollere. + Man muß mehr verhandeln und hat mehr Möglichkeiten. + Das ist Vor- und Nachteil zugleich. + Ganz ohne Verhandlung wird man Aymargeddon nicht gewinnen können, aber + Leute, die nicht allzusehr auf Verhandlungen aus sind, sollten lieber eine + Erdlingsrolle übernehmen. + Man sollte auch nur einen Gott spielen, wenn man häufig online ist, da + Götteraktionen im allgemeinen weniger Zeit brauchen. +\layout Standard + +Beim Spielanfang kann man auch +\begin_inset Quotes pld +\end_inset + +egal +\begin_inset Quotes prd +\end_inset + + als gewünschte Rolle angeben. + Dann gibt einem der Server die Rolle, die dafür sorgt, dass das Zahlenverhältni +s 1:2 von Göttern zu Erdlingen annähernd erreicht wird. + Es kann auch vorkommen, dass in einem Spiel gar keine Erdlinge beziehungsweise + Götter mehr zugelassen sind, weil zu weit vom idealen Verhältnis abgewichen + wurde. +\layout Subsection* + +Gehören Städte, die ich einmal in Besitz genommen habe, mir auch noch, wenn + ich sie wieder verlasse? +\layout Standard + +Nein. + Alle Städte, die keine Heimatstädte sind, werden neutral, sobald kein aktiver + Priester, Krieger oder Held mehr in ihnen steht. + Heimatstädte gehören dem Spieler, dessen Heimat sie sind, jedoch auch, + wenn keine Einheiten dort stehen. + Heimatstädte verteidigen sich auch, ohne dass in ihnen Einheiten stehen + müssen. +\layout Subsection* + +Darf man mehrere Positionen im selben Spiel besetzen? +\layout Standard + +Nein, aber man darf in mehreren Spielen gleichzeitig mitspielen. +\layout Subsection* + +Warum sind Avatare wasserscheu? +\layout Standard + +Ist ja eigentlich schon etwas komisch, wo sie doch ansonsten so mächtig + sind. + Die Erklärung ist ganz einfach: Auf ihrer Reise zur Erde mussten sie entweder + in einem furchtbaren Gewitter auf einer Bergspitze erscheinen oder sich + von einer Insel ans nahe, rettende Ufer quälen. + Nach dieser Erfahrung hat niemand mehr Lust auf Wasser! +\layout Section* + +Copyright +\layout Standard + +(c) 2003, 2004, 2005 Aymargeddon Development Team +\layout Standard + +Permission is granted to copy, distribute and/or modify this document under + the terms of the GNU Free Documentation License, Version 1.1 or any later + version published by the Free Software Foundation; with no Invariant Sections, + with no Front-Cover Texts, and with no Back-Cover Texts. + A copy of the license is available at http://www.aymargeddon.de. +\the_end diff --git a/doc/Techdoc.lyx b/doc/Techdoc.lyx new file mode 100644 index 0000000..7614606 --- /dev/null +++ b/doc/Techdoc.lyx @@ -0,0 +1,823 @@ +#LyX 1.3 created this file. For more info see http://www.lyx.org/ +\lyxformat 221 +\textclass article +\language english +\inputencoding auto +\fontscheme default +\graphics default +\paperfontsize default +\spacing single +\papersize Default +\paperpackage a4 +\use_geometry 0 +\use_amsmath 0 +\use_natbib 0 +\use_numerical_citations 0 +\paperorientation portrait +\secnumdepth 3 +\tocdepth 3 +\paragraph_separation indent +\defskip medskip +\quotes_language english +\quotes_times 2 +\papercolumns 1 +\papersides 1 +\paperpagestyle default + +\layout Title + +Technisches zu +\begin_inset Quotes eld +\end_inset + +Die letzten Tage von Aymargeddon +\begin_inset Quotes erd +\end_inset + + +\layout Author + +Aymargeddon Development Team +\layout Date + +9.10.2003 +\layout Standard + + +\emph on +Warnung: Die Information in diesem Dokument ist zu nicht unerheblichen Teilen + veraltet. +\layout Section + +Generelles Design +\layout Standard + +Das Spiel besteht aus folgenden Komponenten: +\layout Enumerate + +Eine Relationale Datenbank +\layout Enumerate + +Ein Dämonprozess im Server +\layout Enumerate + +Serverseitige Scripten zur Benutzerinteraktion +\layout Enumerate + +Ein Weltengenerator +\layout Enumerate + +FROGS +\layout Enumerate + +Ein Programm, dass die Integrität der Datenbank überprüft +\layout Enumerate + +Eine Bibliothek für gemeinsame Funktionalität +\layout Standard + +Die Aufgaben dieser Komponenten stellen sich wie folgt dar: +\layout Section + +Datenbank +\layout Standard + +In dieser Datenbank wird der Zustand aller Spielwelten gespeichert. + Außerdem alle Spielerdaten, alle Spieleraktionen und alle Nachrichten an + Spieler. + Sie sorgt mittels ihrer Transaktionen dafür, dass auch bei konkurierendem + Zugriff die Datenintegrität immer erhalten bleibt. +\layout Standard + +Wir verwenden MySQL zur Implementierung und PhpMyAdmin zur Administrierung + der Datenbank. +\layout Standard + +Felder, die in vielen Tabellen vorkommen und immer wieder das selbe bedeuten: +\layout Description + +GAME Das ist die Id des Spiels. + Dadurch können alle Spiele in der selben Datenbank verwaltet werden. + Es kann maximal max(unsigned smallint) Spiele gleichzeitig geben. +\layout Description + +LOCATION Feldkoordinaten auf dem Hexraster-Torus. + Ein String der Form _. + Die maximale Größe der Welt ist max(unsigned smallint) für die Y-Koordinate + und max(unsingend smallint)*2 für die X-Koordinate. +\layout Description + +PLAYER,OWNER,... + Spieler-Ids. + Die Spieler-Ids bezeichnen den Spieler +\emph on +unabhängig +\emph default +von seiner Rolle. + Sie gilt spielübergreifend. + Die maximale Anzahl Spieler ist auf max(signed smallint) beschränkt. +\layout Subsection + +Bewegung und Kämpfe +\layout Standard + +Einheiten, die sich bewegen, bleiben im Feld stehen, werden aber auf nicht + available gesetzt. + Am Ende des Befehls werden sie in das neue Feld gesetzt. + Sie werden nur wieder aktiv, nachdem alle denkbaren Kämpfe ausgeführt wurden. +\layout Standard + +Kämpfe werden als Quasi-Befehl wieder in die Befehlsqueu geschrieben. + Erst nach Ablauf dieses Quasi-Befehls wird ausgewertet, welche Einheiten + auf welcher Seite am Kampf teilnehmen. +\layout Standard + +Einheiten, die sich zurückziehen, werden ganz normal bewegt. +\layout Subsection + +Tabelle MAP +\layout Standard + +Das ist die zentrale Karte. + Für jedes Feld in jedem Spiel gibt es genau einen Eintrag. +\layout Description + +HOME Eigentümer der Heimatstadt. + Das Feld ist -1, wenn es eine Heimatstadt ist, aber noch niemand spielt. +\layout Description + +OCCUPANT Besitzer des Feldes +\layout Description + +TERRAIN kann sein eins aus: WATER, CITY, MOUNTAIN, ISLE, PLAIN +\layout Description + +PLAGUE ist das Feld verseucht? Kann eine aus einer Liste von Seuchen sein +\layout Description + +ATTACKER Hier steht der leitende Erdling eines Angriffs drinnen so lange + gekämpft wird. + 0 sonst. + Man kann hier also auch ablesen, ob das Feld umkämpft ist. +\layout Description + +LAST_PRODUCE Zu dieser Zeit wurde zu letzt ein Krieger (bei Städten) bzw. + ein Priester (bei Tempeln) produziert. + Der Dämon entscheidet anhand dieser Daten, wann neue Einheiten produziert + werden. +\layout Description + +FLUXLINE Hier stehen die Richtungen, in die sich Avatare momentan kostenlos + bewegen können. + Die benachbarten Richtungen kosten 1 MP, alle anderen 2MP. + Dieses Feld wird bei einer Änderung der IdS für die gesamte Karte neu berechnet. +\layout Description + +TEMPLE Steht auf 'Y', wenn dort ein Tempel gebaut wurde, auf 'N' sonst. +\layout Subsection + +Tabelle MOBILE +\layout Standard + +In dieser Tabelle werden alle beweglichen Objekte abgespeichert. + Das sind also zunächst: Krieger, Helden, Priester, Avatare und Archen. + Dabei gibt es nur einen Eintrag für gleichartige Einheiten im selben Feld + im selben Spiel. +\layout Standard + +Manche Felder werden nur für manche Objekttypen benutzt. + Hier wird also ein bisschen Speicherplatz geopfert um die Struktur möglichst + einfach zu halten. +\layout Description + +ID Eine eindeutige ID. +\layout Description + +TYPE Ist einer aus WARRIOR, HERO, PRIEST, AVATAR, ARK +\layout Description + +OWNER Der Spieler, der die Einheit steuert +\layout Description + +ADORING Der Gott, den der Priester anbetet +\layout Description + +COUNT Anzahl +\layout Description + +AVAILABLE Wird auf 0 gesetzt, wenn die Einheit beschäftigt ist (sich also + z.B. + bewegt) +\layout Description + +STATUS Eines aus HELP, BLOCK, PEACE. + Avatarstatus. +\layout Subsection + +Tabelle COMMAND +\layout Standard + +In diese Tabelle tragen die Scripten die Aktionen der Spieler ein und der + Dämon führt diese dann aus. + Zusätzlich kommen hier auch noch die Quasi-Befehle des Dämons selber rein. + Das ist alles, wo er sich für später dran errinnern will. + Zur Zeit wird dieser Mechanismus nur für Kämpfe benötigt. +\layout Description + +TIME Die Zeit zu der das Kommando eingetragen wurde +\layout Description + +ACK Hier wird vermerkt, dass der Dämon das Kommando zur Kenntnis genommen + hat, aber noch nicht ausgeführt. + Das ist nötig weil bei vielen Kommandos schon am Anfang Nachrichten generiert + werden müssen, lange bevor sie ausgeführt werden. + Z.B. + erhalten die Eigentümer eines Feldes, in das man sich bewegt, eine Nachricht, + schon wenn man sich auf den Weg macht. +\layout Description + +DONE Hier werden abgearbeitete Befehle vermerkt +\layout Standard + +Alle drei Felder sind Timestamps und müssen immer GMT enthalten! +\layout Subsection + +Tabelle MESSAGE +\layout Standard + +In diese Tabelle trägt der Dämon Nachrichten an die Spieler ein und die + Scripten zeigen diese dann an. + Nachrichten an Alle Spieler müssen für jeden Spieler einzeln eingetragen + werden. + Wenn man es anders machen wollte, müsste man wiederum für jeden Spieler + vermerken, welche Nachrichten er nicht mehr sehen will, was fast auf das + selbe rauskommt. + +\layout Description + +TIME Der Zeitpunkt, an dem die Nachricht generiert wurde +\layout Description + +FROM Der Absender. + 0 bedeutet, dass es eine automatisch generierte Nachricht des Dämon ist. +\layout Description + +TO Der Empfänger +\layout Description + +TYPE Message, Error, Warning, ... +\layout Description + +MSG Die eigentliche Meldung. + Bzw. + ein Tag, dass erst noch lokalisiert werden muss (Siehe Tabelle LOCALIZE) +\layout Description + +ARG1...4 Die Argumente für die Lokalisierung. +\layout Subsection + +Tabelle GAME +\layout Standard + +Hier stehen allgemein Infos das Spiel betreffend. + Pro Spiel gibt es nur einen Eintrag. +\layout Description + +SIZE Die Größe des Spiels. + Höhe und halbe Breite des Spielfeldes. + Maximale Anzahl Erdlinge. +\layout Description + +FORTUNE Der Glücksfaktor +\layout Description + +LAST_TEMPLE Die LOCATION des letzten fertig gestellten Tempels. +\layout Description + +TEMPLE_SIZE Größe des nächsten Tempels. +\layout Subsection + +Tabelle PLAYER +\layout Standard + +Hier wird spielunabhängig gespeichert, was es alles über einen Spieler zu + wissen gibt. + Pro Spieler ein Eintrag. +\layout Subsection + +Tabelle ALLIANCE +\layout Standard + +Hier wird beschrieben welche Freunde und Feinde man hat. + Pro Spieler-Spieler-Relation in jedem Spiel höchstens ein Eintrag. + Status kann sein +\begin_inset Quotes eld +\end_inset + +FRIEND +\begin_inset Quotes erd +\end_inset + +, +\begin_inset Quotes eld +\end_inset + +FOE +\begin_inset Quotes erd +\end_inset + + oder +\begin_inset Quotes eld +\end_inset + +NEUTRAL +\begin_inset Quotes erd +\end_inset + +. + Wenn kein Eintrag vorhanden ist, wird neutraler Status angenommen. + +\layout Standard + +Man beachte dass Spieler A, Spieler B als Freund ansehen kann, wärend umgekehrt + Spieler B Spieler A als Feind betrachtet! +\layout Subsection + +Tabelle GOD +\layout Standard + +Hier werden Daten für die Götter gespeichert. + Pro Gott und Spiel ein Eintrag. +\layout Description + +DEATH_AVATAR Die Anzahl der für diesen Gott in diesem Spiel gestorbenen + Avatare +\layout Description + +DEATH_HERO dsgl. + für Helden +\layout Description + +ARRIVAL Hier entstehen neue Avatare. + Dieser Ort wird nach jedem Tempelbau diesen Gottes neu berechnet. +\layout Subsection + +Tabelle LOCALIZE +\layout Standard + +Mit Hilfe dieser Tabelle kann die Darstellung in verschiedenen Sprachen + erfolgen. +\layout Description + +TAG Der Eintrag mit dem man wiederkennt, um welche Message es sich handelt +\layout Description + +LANG Die Sprache des Eintrags. + Zur Zeit werden nur +\begin_inset Quotes eld +\end_inset + +DE +\begin_inset Quotes erd +\end_inset + + und +\begin_inset Quotes eld +\end_inset + +EN +\begin_inset Quotes erd +\end_inset + + unterstützt. +\layout Description + +TEXT Der Text der Nachricht in den einzelnen Sprachen. + Dabei wird mittels +\begin_inset Quotes eld +\end_inset + +%n +\begin_inset Quotes erd +\end_inset + + das n.te Argument eingefügt. + +\begin_inset Quotes eld +\end_inset + +%% +\begin_inset Quotes erd +\end_inset + + gibt ein Prozentzeichen aus. + +\layout Subsection + +Tabelle ROLE +\layout Standard + +Hier wird die Rolle eines Spielers in einem Spiel beschrieben. + Pro Mitspieler in jedem Spiel ein Eintrag. +\layout Section + +Dämon +\layout Standard + +Dieses Programm liest Spieleraktionen aus der Datenbank, berechnet die sich + daraus ergebenden Ereignisse und schreibt Nachrichten an die Spieler zurück + in die Datenbank. +\layout Standard + +Wir verwenden Perl 5.8 zur Implementierung des Servers. +\layout Section + +Scripten +\layout Standard + +Sie lesen den Zustand der Welt und die Nachrichten aus der Datenbank, halten + Session-Informationen vor und bereiten dies alles in HTML zur Darstellung + mittels eines üblichen Web-Browsers auf. + Schließlich schreiben sie die Aktionen des Benutzers in die Datenbank und + verändern den Aktivitätsstatus von beweglichen Einheiten. +\layout Standard + +Wir verwenden EmbPerl auf Apache zur Implementation. + Siehe: http://perl.apache.org/embperl/. + EmbPerl scheint genauso einfach und schnell zu sein wie PHP und hat für + uns den zusätzlichen Vorteil, dass wir gemeinsame Bibliotheken mit den + anderen Komponenten des Servers benutzen können. +\layout Subsection + +Seiten +\layout Standard + +Folgende Seitenlayouts werden benötigt. + Auf allen Seiten findet man ein Hauptmenu. + Auf Login und Home gibt es auch noch ein Aymaegeddon-Banner +\layout Description + +Login Hier gibt es neben News einen kurzen Einleitungstext sowie eine Möglichkei +t sich zu registrieren und mal in einem Fakespiel zu schnuppern. +\layout Description + +Home Liste aller Spiele, pro Spiel: Liste aller Nachrichten, aller Ereignisse, + Statistik +\layout Description + +Karte Aktuelles Feld, Beschreibung, Befehle +\layout Description + +Spieler Beschreibung des Spielers +\layout Description + +Rolle Beschreibung der Rolle +\layout Standard + +Feldnamen/-koordinaten sind überall immer zur Karte mit dem Feld als aktuellem + Feld verlinkt. + Rollennamen sind zu der entsprechenden Rollenseite verlinkt. +\layout Subsection + +Karte +\layout Standard + +Zentrale Komponente der Darstellung ist eine Karte des Hex-Torus. + Dazu werden 3 Tabellenzellen pro Feld verwendet, nämlich so: +\layout Standard +\added_space_bottom 0.3cm + +\layout Standard + +Diese Karte ist scrollbar. + Ein Feld ist immer als aktuelles Feld umrandet. +\layout Subsection + +Farbdarstellung +\layout Standard + +Wasserfelder blau, Landfelder, Archen und Inseln in Erdfarben. + Dabei gibt es 5 Farbtöne für eigene, befreundete, neutrale, feindliche + sowie unbesiedelte Felder. + Tempel und Avatare werden in 5 verschiedenen Götterfarben (eher grell) + dargestellt, wieder je eine für eigene, befreundete, feindliche sowie neutrale + Götter. + Die +\begin_inset Quotes eld +\end_inset + +eigene +\begin_inset Quotes erd +\end_inset + + Farbe kann auf andere Erdlinge/Götter verändert werden. + +\layout Subsection + +Icons +\layout Standard + +Folgende Icons werden benötigt. +\layout Standard + +Zentriert: +\layout Itemize + +IdS +\layout Itemize + +Eigentum auf Wasser (Schiff) +\layout Itemize + +Städte +\layout Itemize + +Tempel +\layout Itemize + +Heimatstädte +\layout Itemize + +Inseln +\layout Itemize + +Berge +\layout Standard + +Nicht zentriert: +\layout Itemize + +Avatare (oben bis zu vier) +\layout Itemize + +Archen (unten, nur eine) +\layout Itemize + +Kampf (unten) +\layout Itemize + +Avatarkampf (oben) +\layout Section + +Weltengenerator +\layout Standard + +Dieses Programm wird einmal zu Beginn eines neuen Spiels aufgerufen um eine + neue Welt in der Datenbank zu generieren. + Der Generator verteilt die verschiedenen Geländetypen: Wasser, Manapol, + Insel, Berg, Stadt, Heimatstadt, Land. + Er erhält die Anzahl der Erdlinge als Parameter und ermittelt alle anderen + Werte daraus. + +\layout Standard + +Die Game-ID kann automatisch als die erste Freie in der DB ermittelt werden. + Dieses Programm sollte als erstes entwickelt werden, damit man eine sinnvolle + Testumgebung für die anderen Teile des Systems hat. +\layout Standard + +Wir verwenden Perl 5.8 zur Implementation. +\layout Section + +FROGS +\layout Standard + +FROGS steht für +\series bold +F +\series default +ramework for +\series bold +R +\series default +ealtime +\series bold +O +\series default +nline +\series bold +G +\series default +ames of +\series bold +S +\series default +trategy. + Dort werden alle Funktionalitäten versammelt, die nicht nur von Aymargeddon, + sondern auch von anderen Browser-MMOGs verwendet werden können. + Das sind im einzelnen: +\layout Itemize + +Nachrichtenverwaltung +\layout Itemize + +Befehlsverwaltung +\layout Itemize + +Spielerverwaltung +\layout Itemize + +Spielverwaltung +\layout Itemize + +Rollenverwaltung +\layout Itemize + +Verschiedene Standardkarten (hier erstmal nur Hextorus) +\layout Itemize + +Bewegliche Einheiten +\layout Itemize + +Lokalisierung +\layout Itemize + +Sessionhandling +\layout Itemize + +Bestenlisten +\layout Itemize + +Datenbank +\layout Standard + +FROGS basiert dabei auf der Annahme, dass bestimmte Felder in bestimmten + Tabellen vorhanden sein müssen. + Außerdem werden die konkreten Funktionalitäten über Hooks in das Framework + eingehängt. + So wird z.B. + für jeden Befehl ein Name festgelegt mit drei Hooks: +\layout Description + +test Diese Funktion tested, ob der Befehl überhaupt ausführbar ist. +\layout Description + +ack Diese Funktion wird ausgeführt, wenn der Befehl zum ersten mal vom Dämon + zur Kenntnis genommen wird. +\layout Description + +do Diese Funktion führt schließlich den Befehl aus. + Dazu sind am Anfang noch weitere tests nötig. +\layout Standard + +Ziel für Frogs ist, dass man relativ einfach neue Browserspiele bauen kann. + Es wird auch ein Satz von Standardseiten in EmbPerl mitgeliefert mit denen + Funktionen wie Einloggen, Spielverwaltung, Bestenlisten etc. + schon vorhanden sind. +\layout Standard + +Hier noch eine Liste von FROGS-Modulen und was sie tun sollen: +\layout Description + +Map.pm Dies ist eine Basisklasse für alle denkbaren Topologien. + Jedes Modul einer abgeleiteten Klasse sollte auch eine Klasse Location + zur Verfügung stellen. + Außerdem müssen abgeleitete Klassen einige Funktionen mitbringen, damit + die in Map vorhandenen Funktionen funktionieren. +\layout Description + +HexTorus.pm Dies ist die von Aymargeddon verwendete Topologie. + Kann aber auch von anderen Spielen verwendet werden. + Abgeleitet von Map.pm. + Stellt auch die Klasse Location zur Verfügung. +\layout Description + +Checker.pm Hier werden die verallgemeinerbaren Funktionen des Checkers zur + Verfügung gestellt. +\layout Description + +Scheduler.pm Hier wird die Befehlsqueu durchgegangen und die oben definierten + Funktionen werden aufgerufen. +\layout Description + +Localize.pm Hier wird die Lokalisierung ausgeführt. +\layout Description + +DataBase.pm Hier werden Basisdatenbankfunktionalitäten zur Verfügung gestellt +\layout Description + +... + weitere Module noch unklar +\layout Standard + +Auch FROGS wird in Perl 5.8 bzw. + EmbPerl implementiert. +\layout Section + +Checker +\layout Standard + +Dieses Programm überprüft, ob die Daten in der Datenbank noch konsistent + sind. + Dabei werden die Checks zu algorithmisch ähnlichen Gruppen zusammengefasst + und durch allgemein Funktionen ausgeführt. + Bisher sind folgende Funktionen identifiziert worden: +\layout Enumerate + +Jeder Eintrag in Tabelle X muß auch in Tabelle Y existieren. + +\layout Enumerate + +N Einträge in der selben Tabelle müssen eine logische Beziehung erfüllen +\layout Standard + +Diese allgemeinen konfigurierbaren Check-Funktionen sollten auch Teil von + FROGS werden. +\layout Standard + +Der Checker überprüft im einzelnen (Zahlen beziehen sich auf obige Funktionslist +e): +\layout Itemize + +Jede Spielnummer muß in der Tabelle GAME zu finden sein (1). +\layout Itemize + +sämtliche Spieler-IDs müssen in ROLE zum selben Spiel passen (1). +\layout Itemize + +sämtliche Spieler-IDs müssen in PLAYER vorhanden sein (1). +\layout Itemize + +Location muß immer in MAP vorhanden sein. +\layout Itemize + +Location muß immer die kanonische Form haben (2). +\layout Itemize + +HOME nur gesetzt in MAP, wenn TERRAIN = CITY (desgl. + für GOD_HOME und MOUNTAIN) (2). +\layout Itemize + +Keine Zwei Erdlinge im selben Feld, außer es ist Kampf. +\layout Itemize + +Alle Einheiten in COMMANDS müssen inaktiv sein. +\layout Itemize + +Nur Priester ADORING in MOBILE (2). +\layout Itemize + +AVAIABLE immer kleiner oder gleich COUNT in MOBILE (2) +\layout Itemize + +Während eines Kampfes nur aktive Erdlinge eines Spielers im selben Feld. +\layout Itemize + +Keine blockenden Avatare von zwei feindlichen Spielern im selben Feld ohne + Kampf . +\layout Itemize + +Jedes Tag in MESSAGE sollte in LOCALIZE vorhanden sein. + Mindestens in einer Sprache. + Warnung, wenn nicht in jeder Sprache. +\layout Itemize + +Die Anzahl der Argumente in MESSAGES sollte mit den nicht doppelten %-Zeichen + in LOCALIZE übereinstimmen (für jede Sprache). + +\layout Itemize + +CREATE <= EXEC <= ACK <= DONE in COMMAND +\layout Standard + +Dieses Programm sollte möglichst früh entwickelt werden, da es vor allem + im Entwicklungsprozess benötigt wird. +\layout Standard + +Wir verwenden Perl 5.8 zur Implementation. +\layout Section + +Bibliothek +\layout Standard + +Hier werden alle Funktionalitäten versammelt, die von mindestens zwei der + Komponenten (Scripten, Generator, Dämon, Check) verwendet werden. + +\layout Standard + +Dabei bleiben in dieser Bibliothek nur Sachen, die nicht noch allgemeiner + sind und somit in den FROGS-Teil gehören. + Momentan ist noch unklar, ob da überhaupt was übrig bleibt. +\layout Standard + +Wir verwenden Perl 5.8 zur Implementation. +\layout Section + + +\lang german +Copyright +\layout Standard + + +\lang german +(c) 2003 Aymargeddon Development Team +\layout Standard + + +\lang german +Permission is granted to copy, distribute and/or modify this document under + the terms of the GNU Free Documentation License, Version 1.1 or any later + version published by the Free Software Foundation; with no Invariant Sections, + with no Front-Cover Texts, and with no Back-Cover Texts. + A copy of the license is available at http://www.aymargeddon.de. +\the_end diff --git a/doc/ay_ein_hex.fig b/doc/ay_ein_hex.fig new file mode 100644 index 0000000..ea108e2 --- /dev/null +++ b/doc/ay_ein_hex.fig @@ -0,0 +1,36 @@ +#FIG 3.2 +Landscape +Center +Metric +A4 +100.00 +Single +-2 +1200 2 +2 3 0 1 0 7 100 0 -1 0.000 0 0 0 0 0 7 + 4425 4177 5103 5348 6452 5349 7127 4177 6451 3006 5101 3009 + 4425 4177 +2 1 0 1 0 7 100 0 -1 0.000 0 0 -1 1 0 2 + 1 1 1.00 150.00 120.00 + 5847 2976 5895 2430 +2 1 0 1 0 7 100 0 -1 0.000 0 0 -1 1 0 2 + 1 1 1.00 150.00 120.00 + 4742 3668 4185 3420 +2 1 0 1 0 7 100 0 -1 0.000 0 0 -1 1 0 2 + 1 1 1.00 150.00 120.00 + 4752 4771 4050 5175 +2 1 0 1 0 7 100 0 -1 0.000 0 0 -1 1 0 2 + 1 1 1.00 150.00 120.00 + 5796 5327 5760 6075 +2 1 0 1 0 7 100 0 -1 0.000 0 0 -1 1 0 2 + 1 1 1.00 150.00 120.00 + 6777 4803 7398 5067 +2 1 0 1 0 7 100 0 -1 0.000 0 0 -1 1 0 2 + 1 1 1.00 150.00 120.00 + 6823 3599 7408 3262 +4 0 0 100 0 0 12 -0.0000 4 180 1440 3285 3195 Nordwesten (NW)\001 +4 0 0 100 0 0 12 -0.0000 4 180 1410 3105 5625 Suedwesten (SW)\001 +4 0 0 100 0 0 12 -0.0000 4 180 1260 7065 3150 Nordosten (NO)\001 +4 0 0 50 0 0 12 0.0000 4 180 930 5490 2250 Norden (N) \001 +4 0 0 50 0 0 12 0.0000 4 180 765 5355 6390 S\374den (S)\001 +4 0 0 100 0 0 12 -0.0000 4 180 1230 7155 5400 Suedosten (SO)\001 diff --git a/doc/design b/doc/design new file mode 100644 index 0000000..e8f5e51 --- /dev/null +++ b/doc/design @@ -0,0 +1,149 @@ +################# +Datenbankzugriffe +################# + +Alles, was einen SQL-Befehl beinhaltet sollte in +DataBase.pm. zusätzlich vielleicht auch noch sehr eng damit +zusammenhängende Funktionen. Alles abstraktere sollte in extramodule. + +Generelle Frage: +================ + +embperl sollte nur die aktionen überhaupt zur verfügung stellen, die +möglich sind (soweit zu diesem zeitpunkt bekannt). + +soll man darauf vertrauen, dass die embperlseite bestimmte sachen +schon abgetestet hat? oder muss man die alle nochmal auf serverseite +testen? Antwort: wohl ja, da sich zwischen eintragen in die +befehlsqueu und ausführung des befehls der spielstand verändert haben +kann. ausnahmen sind unten eingeklammert. + +Hier jetzt mal eine möglichst vollständige Liste aller +Datenbankzugriffe, als Grundlage für Designüberlegungen. + +Von Serverseite: +================ + +- lies alle aktuellen befehle +- schreibe message + +Alles, was trotz zeitverzögerung schon vorher von embperlseite +abgeklärt hätte werden können ist eingeklammert. + +einzelne befehle: +-------------------- +- passwort ändern (nicht in befehlsqueu sondern sofort?) + - authentifizieren + - schreiben in PLAYER + +- registrieren (nicht in befehlsqueu sondern sofort?) + - schreiben in PLAYER + +- abmelden (nicht in befehlsqueu sondern sofort?) + - authentifizieren + - löschen in PLAYER + +- status ändern + - test ob spieler vorhanden + - schreiben in ALLIANCE + +- anmelden in einzelnen spielen (nicht in befehlsqueu sondern sofort?) + - test ob spieler schon in spiel vorhanden + - schreiben in ROLE + +- abmelden aus spielen (nicht in befehlsqueu sondern sofort?) + - löschen aus ROLE +-------------------- +- erdlingsbewegen: + - (test ob manapol) + - test ob arche auf wasser + - test ob kampf + - test wer kämpft + - schreiben in MOBILE + - schreiben in MAP + - schreiben in COMMAND + +- tempel bauen: + - test ob tempelfeld des gottes (kann sich ändern wg. überschwemmung) + - test ob richtiger priester da + +- sterbereihenfolge: + - (testen ob reihenfolge gültig) + - schreiben in EARTHLING [ACHTUNG: neue Tabelle!] + +- gott für tote helden festlegen: + - testen ob gott gültig + - schreiben in EARTHLING +-------------------- +- bei allen gottbefehlen: testen ob manna reicht + +- avatar erschaffen: + - ort ermitteln aus MAP und MOBILE + - schreiben in MOBILE + +- held weihen + - testen ob held noch vorhanden (und aktiv?) + - schreiben in MOBILE + +- priester erleuchten + - testen ob krieger noch vorhanden (und aktiv?) + - testen ob sichtrecht + - schreiben in MOBILE + +- avatare bewegen + - ähnlich wie erdlingsbewegen nur zusätzliche tests + - avatarstatus beachten (evntl. verändern) + +- verseuchen + - noch unklar, weil seuchen noch unklar + +- sintfluten + - test ob benachbartes wasserfeld + - liest und schreibt aus MAP + +- avatarstatus ändern + - testen ob avatar da. + +- tempel zerstören + - ... + +- glücksfaktor verändern + - ... + +- arche bauen + - ... + +Von Clientseite: +================ + +- authentifizieren +- liste aller spiele +- liste aller spiele mit freien positionen (mit rolle) +- liste aller spieler +- liste aller rollen pro spiel +- infos ueber einen spieler +- infos ueber eine rolle eines spielers in einem spiel + +- karte lesen (sichtregeln beachten!) +- infos ueber ein feld lesen (auch aus MOBILE) (sichtregeln beachten!) + +- liste der möglichen befehle in einem feld ermitteln + (vielfältige tests, viele davon stehen oben bei den serverbefehlen) + +- liste aller nachrichten +- liste aller nachrichten ein feld betreffend + +Von create.pl: +============== + +- lies das erste leere spiel aus GAME +- schreibe in MAP + +Von checker.pl: +=============== + +- sehr spezielle einzelne zugriffe (Check.pm selbst definiert keine +Struktur) + + + diff --git a/doc/pdf-tip b/doc/pdf-tip new file mode 100644 index 0000000..b954654 --- /dev/null +++ b/doc/pdf-tip @@ -0,0 +1,75 @@ +From Martin.Spott@uni-duisburg.de Tue Jul 6 17:06:05 1999 +From: Martin Spott +Newsgroups: de.comp.os.unix.apps,de.comp.text.tex +Subject: Re: tex -> pdf +Date: 24 Jun 1999 18:59:57 GMT +Organization: home +Lines: 24 +Message-ID: <7ktv7d$p59$1@foehn.quickstep.cologne.de> +References: <7kskei$6hb$1@narses.hrz.tu-chemnitz.de> <3771ECC7.C1F5FDA2@starship.python.net> +NNTP-Posting-Host: foehn.quickstep.cologne.de +X-Trace: foehn.quickstep.cologne.de 930250797 25769 192.168.48.2 (24 Jun 1999 18:59:57 GMT) +X-Complaints-To: usenet@foehn.quickstep.cologne.de +NNTP-Posting-Date: 24 Jun 1999 18:59:57 GMT +X-Newsreader: TIN [UNIX 1.3 unoff BETA 970705; sun4m SunOS 5.5.1] +Path: nntp.server.uni-frankfurt.de!grapool30.rz.uni-frankfurt.de!News.Uni-Marburg.DE!news-fra1.dfn.de!news-kar1.dfn.de!akk.uni-karlsruhe.de!news.cologne.de!quickstep.cologne.de!not-for-mail +Xref: nntp.server.uni-frankfurt.de de.comp.os.unix.apps:2328 de.comp.text.tex:41798 + +In de.comp.os.unix.apps Berthold H?llmann wrote: + +> 7. latex ; dvipdf ? + +Ist das dasselbe wie das 'dvipdfm', welches ich hier rumfliegen habe ? + +Beim Weg ueber 'dvips' respektive ueber DVI im Allgemeinen ist vor allem +darauf Acht zu geben, dass ausschliesslich Type1-Fonts im TeX-Dokument +verwendet werden. Wie genau das geht, habe ich nicht mehr im Kopf, es gibt +aber wohl irgeneinen Switch im 'dvips' und die dazugehoerigen TeX-Fonts im +Type1-Format. Beruecksichtigt man das nicht, dann sieht das PDF-Dokument vor +allem auf dem Bildschirm ausgesprochen haesslich aus und der Aufbau einer +Seite im Acrobat Reader dauert ungefaehr die fuenffache Zeit vom dem, was es +mit Type1-Fonts gebraucht haette, weil dann Bitmap-Fonts in das Dokument +eingebaut werden. Die eignen sich vielleicht zu allem moeglichen, aber mit +Sicherheit nicht fuer eine skalierbare Darstellung auf verschiedenen +Ausgabemedien. + +Derleit haessliche Dokumente kursieren leider zuhauf .... + +Martin. +-- + Unix _IS_ user friendly - it's just selective about who its friends are ! +-------------------------------------------------------------------------- + + +From Martin.Spott@uni-duisburg.de Tue Jul 6 17:06:14 1999 +From: Martin Spott +Newsgroups: de.comp.os.unix.apps,de.comp.text.tex +Subject: Re: tex -> pdf +Date: 24 Jun 1999 20:04:25 GMT +Organization: home +Lines: 13 +Message-ID: <7ku309$q35$1@foehn.quickstep.cologne.de> +References: <7kskei$6hb$1@narses.hrz.tu-chemnitz.de> <3771ECC7.C1F5FDA2@starship.python.net> <7ktv7d$p59$1@foehn.quickstep.cologne.de> +NNTP-Posting-Host: foehn.quickstep.cologne.de +X-Trace: foehn.quickstep.cologne.de 930254665 26725 192.168.48.2 (24 Jun 1999 20:04:25 GMT) +X-Complaints-To: usenet@foehn.quickstep.cologne.de +NNTP-Posting-Date: 24 Jun 1999 20:04:25 GMT +X-Newsreader: TIN [UNIX 1.3 unoff BETA 970705; sun4m SunOS 5.5.1] +Path: nntp.server.uni-frankfurt.de!grapool30.rz.uni-frankfurt.de!News.Uni-Marburg.DE!news-fra1.dfn.de!fu-berlin.de!news.cologne.de!quickstep.cologne.de!not-for-mail +Xref: nntp.server.uni-frankfurt.de de.comp.os.unix.apps:2329 de.comp.text.tex:41800 + +In de.comp.os.unix.apps Martin Spott wrote: + +> darauf Acht zu geben, dass ausschliesslich Type1-Fonts im TeX-Dokument +> verwendet werden. Wie genau das geht, habe ich nicht mehr im Kopf, es gibt +> aber wohl irgeneinen Switch im 'dvips' und die dazugehoerigen TeX-Fonts im +> Type1-Format. [...] + +.... oder jedenfalls die CM-Fonts, + +Martin. +-- + Unix _IS_ user friendly - it's just selective about who its friends are ! +-------------------------------------------------------------------------- + + diff --git a/doc/push_rules b/doc/push_rules new file mode 100644 index 0000000..9ce50ca --- /dev/null +++ b/doc/push_rules @@ -0,0 +1,6 @@ +# tth -t -e2 Regeln.tex +# mv Regeln.tex ./+Regeln.tex +mv Regeln.html ./+Regeln.html +mv Regeln.pdf ./+Regeln.pdf +scp ./+Regeln.html benni@aymargeddon.de:aymargeddon/current/doc/ +scp ./+Regeln.pdf benni@aymargeddon.de:aymargeddon/current/doc/ diff --git a/html/aymargeddon.css b/html/aymargeddon.css new file mode 100644 index 0000000..8148fcc --- /dev/null +++ b/html/aymargeddon.css @@ -0,0 +1,2 @@ +table,body {line-height:13pt;font-size:11pt;} +p {margin-bottom:5pt;margin-top:5pt;} diff --git a/html/command.epl b/html/command.epl new file mode 100644 index 0000000..2eca5e5 --- /dev/null +++ b/html/command.epl @@ -0,0 +1,5 @@ + + + +[- Execute('command_frames.epl') -] + diff --git a/html/command_frames.epl b/html/command_frames.epl new file mode 100644 index 0000000..cb5b35d --- /dev/null +++ b/html/command_frames.epl @@ -0,0 +1,221 @@ +[# get command and maybe some parameters #] + +[- + use Aymargeddon; + $db = DataBase->new(); + $aym = Aymargeddon->new($udat{-game},$udat{-id},$db); + $db->set_language($udat{-lang}); +-] + +[$ if $fdat{'cmd'} $] [# show form to enter the required parameters #] + +[- +# my ($gname) = $db->read_game($udat{-game},'NAME'); +# my $cname = $aym->charname($udat{-id}); + +# $out = "$gname $cname.

\n" + $out = '

'; + + my $cmd = $udat{-cmd} = $fdat{'cmd'}; + $udat{-cmd_loc} = $fdat{'loc'} if $fdat{'loc'}; + + if($cmd eq 'SEND_MSG' and exists $fdat{'other'}){ # anybody, always + $udat{-cmd_args} = 'OTHER='.$fdat{'other'}; + my $to = $aym->charname($fdat{'other'}); + $out .= $db->loc('SEND_MESSAGE_TO',$to). + '' + }elsif($cmd eq 'CH_STATUS' and exists $fdat{'other'}){ # anybody, always + $udat{-cmd_args} = 'OTHER='.$fdat{'other'}; + $out .= $db->loc('CMD_CH_STATUS_MSG').' '.$aym->charname($fdat{'other'}).":

\n" + .''.$db->loc('STAT_ALLIED')."

\n" + .''.$db->loc('STAT_FRIEND')."

\n" + .''.$db->loc('STAT_NEUTRAL')."

\n" + .''.$db->loc('STAT_FOE')."

\n" + .''.$db->loc('STAT_BETRAY')."

\n"; + }elsif($cmd eq 'DIE_ORDER'){ # earthling, always + $out .= $db->loc('CMD_DIE_ORDER_MSG').":

\n" + .''.$db->loc('MOBILE_PRIEST_PL').', '.$db->loc('MOBILE_WARRIOR_PL').', '.$db->loc('MOBILE_HERO_PL')."

\n" + .''.$db->loc('MOBILE_PRIEST_PL').', '.$db->loc('MOBILE_HERO_PL').', '.$db->loc('MOBILE_WARRIOR_PL')."

\n" + .''.$db->loc('MOBILE_WARRIOR_PL').', '.$db->loc('MOBILE_PRIEST_PL').', '.$db->loc('MOBILE_HERO_PL')."

\n" + .''.$db->loc('MOBILE_WARRIOR_PL').', '.$db->loc('MOBILE_HERO_PL').', '.$db->loc('MOBILE_PRIEST_PL')."

\n" + .''.$db->loc('MOBILE_HERO_PL').', '.$db->loc('MOBILE_PRIEST_PL').', '.$db->loc('MOBILE_WARRIOR_PL')."

\n" + .''.$db->loc('MOBILE_HERO_PL').', '.$db->loc('MOBILE_WARRIOR_PL').', '.$db->loc('MOBILE_PRIEST_PL')."

\n" + }elsif($cmd eq 'CH_LUCK'){ # god, always + $out .= $db->loc('CMD_CH_LUCK_MSG').":

\n" + . '

'."\n"; + # TODO: inc/dec button + }elsif($cmd eq 'MOVE' and exists $fdat{'mob'} and exists $fdat{'loc'}){ # any mobile + $udat{-cmd_args} = 'MOBILE='.$fdat{'mob'}; + my ($type, $count, $adoring, $movewith) = + $aym->get_mobile_info($fdat{'mob'}, 'TYPE, COUNT, ADORING, MOVE_WITH'); + $out .= $db->loc('CMD_MOVE_MSG',$aym->mobile_extended_string($type,$count,$adoring)).":

\n" + .''; + $out .= $db->loc('CMD_COUNT').':'."max. $count" if $count > 1; + $out .= "

\n"; + + # arks cant move with other units + if($type ne 'ARK'){ + # MOVE_WITH + my $mob = $aym->mobiles_available($fdat{'loc'}); + my $mobcount = $#{@$mob}+1; + my $transporters = 0; + if ($mobcount > 1){ + foreach $i (0..$mobcount-1){ + my ($oid,$otype,$oown,$oado,$ocnt,$ostat,$omove) = @{$mob->[$i]}; + next if($oid == $fdat{'mob'} or $otype eq 'AVATAR' ); + next if $omove; + if(! $transporters){ + $out .= $db->loc('MSG_MOVE_WITH').":

\n"; + $transporters = 1; + } + if($movewith == $oid){ + $out .= ''. + $db->loc('MSG_DONT_MOVE_WITH')."

\n"; + }else{ + $out .= ''. + $aym->mobile_extended_string($otype, $ocnt, $oado)."

\n"; + } + } + } + } + #}elsif($cmd eq 'CH_ADORING' and exists $fdat{'mob'}){ # hero + # $udat{-cmd_args} = 'MOBILE='.$fdat{'mob'}; + # $out .= $db->loc('CMD_CH_ADORING_MSG').":

\n"; + # my @gods = $aym->gods(); + # for my $god (@gods){ + # $out .= ''.$aym->charname($god)."

\n"; + # } + }elsif($cmd eq 'CH_ACTION' and exists $fdat{'mob'}){ # avatar + $udat{-cmd_args} = 'MOBILE='.$fdat{'mob'}; + $out .= $db->loc('CMD_CH_ACTION_MSG').":

\n" + . ''.$db->loc('MOBILE_BLOCK')."

\n" + . ''.$db->loc('MOBILE_HELP')."

\n" + . ''.$db->loc('MOBILE_IGNORE')."

\n"; + }elsif($cmd eq 'BLESS_PRIEST' and exists $fdat{'mob'}){ # warrior + $udat{-cmd_args} = 'MOBILE='.$fdat{'mob'}; + $out .= $db->loc('CMD_BLESS_PRIEST_MSG').".

\n"; + }elsif($cmd eq 'BLESS_HERO' and exists $fdat{'mob'}){ # warrior + $udat{-cmd_args} = 'MOBILE='.$fdat{'mob'}; + $out .= $db->loc('CMD_BLESS_HERO_MSG').".

\n"; + $out .= ':

'."\n"; + }elsif($cmd eq 'BUILD_TEMPLE' and exists $fdat{'mob'}){ + # priest or prophet at mountain (of the god they adore) or isle without temple + $udat{-cmd_args} = 'MOBILE='.$fdat{'mob'}; # needed to change its type to priest if it was a prophet + $out .= $db->loc('CMD_BUILD_TEMPLE_MSG').' '.$fdat{'loc'}.".

\n"; + }elsif($cmd eq 'DESTROY'){ # avatar at mountain or isle with temple + $out .= $db->loc('CMD_DESTROY_MSG').' '.$fdat{'loc'}.".

\n"; + }elsif($cmd eq 'MOVE_MTN'){ # earthling at a mountain with more priests of one god than luck+5 + $out .= $db->loc('FIELD_MOUNTAIN')." $loc ".$db->loc('CMD_MOVE_MTN_MSG').":

\n"; + # TODO: list target locations (where prophets adoring same god are) + }elsif($cmd eq 'INCARNATE'){ # god at his arrival temple (temple with most priests adoring him) + $out .= $db->loc('CMD_INCARNATE_MSG').":

\n" + .':

'."\n"; + }elsif($cmd eq 'BUILD_ARK'){ # god at any coast field + $out .= $db->loc('CMD_BUILD_ARK_MSG').' '.$fdat{'loc'}.".

\n"; + }elsif($cmd eq 'PLAGUE'){ # god at any field + $out .= $db->loc('CMD_PLAGUE_MSG').' '.$fdat{'loc'}.":

\n"; + for my $plague (@{$::conf->{-PLAGUES}}){ + $out .= ''."$plague

\n" + } + }elsif($cmd eq 'FLOOD'){ # god at any coast field (without city) + $out .= $db->loc('CMD_FLOOD_MSG').' '.$fdat{'loc'}.".

\n"; + + }else{ + delete $udat{-cmd}; + delete $udat{-cmd_loc}; + $out = $db->loc('CMD_ERROR_MSG')."

\n"; # unknown, illegal or incomplete command + } + + if(exists $udat{-cmd}){ + $out .= '

'; + $udat{-back} = $ENV{'HTTP_REFERER'}; + } + $out .= '
' + .'

'; + + print OUT $out; +-] + +[$ elsif exists $udat{-cmd} $] [# complete the command with the given form-data #] + +[- + my ($cmd) = $udat{-cmd}; delete $udat{-cmd}; + my ($args) = $udat{-cmd_args}; delete $udat{-cmd_args} if exists $udat{-cmd_args}; + my ($loc) = $udat{-cmd_loc}; delete $udat{-cmd_loc} if exists $udat{-cmd_loc}; + my $failure = 0; + + # global + if($cmd eq 'SEND_MSG'){ + my $msg = $db->quote($fdat{'message'}); + + # uggly workaround necessary for Command::parse_args() + $msg =~ s/,/__COMMA__/g; + $msg =~ s/=/__EQUAL__/g; + + $args .= ", MESSAGE=$msg" + }elsif($cmd eq 'CH_STATUS'){ + $failure = 1 if not exists $fdat{'status'}; + $args .= ', STATUS='.$fdat{'status'}; + }elsif($cmd eq 'DIE_ORDER'){ + $failure = 1 if not exists $fdat{'dying'}; + $args = 'DYING='.$fdat{'dying'}; + }elsif($cmd eq 'CH_LUCK'){ + $failure = 1 if not exists $fdat{'bonus'}; + $args = 'BONUS='.$fdat{'bonus'}; + + # mobile + }elsif($cmd eq 'MOVE'){ + $failure = 1 if (not exists $fdat{'dir'} and not exists $fdat{'movewith'}); + my $count = (exists $fdat{'count'}) ? $fdat{'count'} : 1; + if(exists $fdat{'movewith'}){ + $cmd = 'MOVE_WITH'; + $args .= ', COUNT='.$count.', TARGET='.$fdat{'movewith'}; + }else{ + $args .= ', COUNT='.$count.', DIR='.$fdat{'dir'}; + } + #}elsif($cmd eq 'CH_ADORING'){ + #$failure = 1 if not exists $fdat{'god'}; + #$args .= ', GOD='.$fdat{'god'}; + }elsif($cmd eq 'CH_ACTION'){ + $failure = 1 if not exists $fdat{'action'}; + $args .= ', ACTION='.$fdat{'action'}; + }elsif($cmd eq 'BLESS_HERO'){ + my $count = exists $fdat{'count'} ? $fdat{'count'} : 1; + $args .= ", COUNT=$count"; + # local + }elsif($cmd eq 'MOVE_MTN'){ + $failure = 1 if not exists $fdat{'target'}; + $args = 'TARGET='.$fdat{'target'}; + }elsif($cmd eq 'INCARNATE'){ + my $count = (exists $fdat{'count'}) ? $fdat{'count'} : 1; + $args = 'COUNT='.$count; + }elsif($cmd eq 'PLAGUE'){ + $failure = 1 if not exists $fdat{'type'}; + $args = 'TYPE='.$fdat{'type'}; + }# elsif($cmd eq 'DESTROY'){ + + + my $ub = $udat{-back}; + delete $udat{-back}; + + if($failure) + { + $out = $db->loc('CMD_ERROR_MSG')."

\n"; # unknown, illegal or incomplete command + $out .= '

' + .'

'; + print OUT $out; + }else{ + $args = '' if not $args; + $aym->insert_command($cmd,$args,$loc) unless $failure; + $db->commit(); + + # redirect to field + $http_headers_out{'Location'} = $ub; + } +-] + +[$ else $] + + Hey, kein Befehl ?!?! + +[$ endif $] diff --git a/html/doc/Makefile b/html/doc/Makefile new file mode 100644 index 0000000..9d126e1 --- /dev/null +++ b/html/doc/Makefile @@ -0,0 +1,116 @@ +# Makefile for Aymargeddon documentation +# TODO: BUG: macht immer alles (liegt an +* nicht im target) + +LYX2HTML = lyx --export html +LYX2PDF = lyx --export pdf +FICK2DEATH = fig2dev + +INSTALL_SERVER = aymargeddon.de +INSTALL_DIR = /home/benni/aymargeddon_current/doc/ + +DIRS = +FILES_BIN = +FILES_LIB = +FILES_DOC = Regeln.lyx Techdoc.lyx ay_ein_hex.fig +FILES_MISC = +FILES = Makefile $(FILES_IN) $(FILES_DOC) $(FILES_MISC) +FILES_OUT = ay_ein_hex.eps Regeln.pdf \ + Regeln.html Techdoc.pdf Techdoc.html $(FILES_MISC) + + +all: $(FILES_OUT) + +#Regeln.html: Regeln.tex +# $(LATEX2HTML) $(LATEX2HTML_OPT) < Regeln.tex > Regeln.html +# +#Techdoc.html: Techdoc.tex +# $(LATEX2HTML) $(LATEX2HTML_OPT) < Techdoc.tex > Techdoc.html + +clean: + rm -f $(FILES_OUT) + rm -rf Regeln + rm -rf Techdoc + rm -rf auto + rm -f *.aux + rm -f *.log + rm -f *.ps + rm -f *.dvi + rm -f *~ + rm -f *.toc + rm -f *.png + rm -f *.ps.gz + rm -f *.tex + rm -f +* + +realclean: clean + + + +#release: clean have_to_make +# @if [ -z "$(RELDIR)" ] ; then \ +# echo "Sorry, release directory is not set!" 1>&2 ; \ +# exit 1 ; \ +# fi ;\ +# if [ ! -d $(RELDIR) ] ; then mkdir $(RELDIR) ; fi ; \ +# tar cf - $(FILES) | \ +# ( cd $(RELDIR) ; tar xf - ) +# for i in $(DIRS) ; do \ +# ( cd $$i ; \ +# $(MAKE) RELDIR=../$(RELDIR)/$$i $@ ) ; \ +# done + +install: all + +# hier muss dann das angepasste push-script hin + +# @if [ "X$(RELEASE)" = "X" ] ; then \ +# echo "Sorry, this isn't released source" 1>&2 ; \ +# exit 1 ; \ +# fi ;\ +# for i in $(INSTALLDIRS) ; do \ +# if [ ! -d $$i ] ; then mkdir -p $$i ; fi ; \ +# done ;\ +# for i in $(FILES_DOC) ; do \ +# cp $$i $(DOCDIR)/$$i ; \ +# chmod 555 $(DOCDIR)/$$i ; \ +# chown bin:bin $(DOCDIR)/$$i ; \ +# echo "Installed $(DOCDIR)/$$i" ; \ +# done +# for i in $(DIRS) ; do \ +# ( cd $$i ; ${MAKE} RELEASE=$$RELEASE PREFIX=$(PREFIX) install ) ; \ +# done + +# have_to_make: + +.SUFFIXES: +.SUFFIXES: .pdf .lyx .eps .fig .html + +.fig.eps: + $(FICK2DEATH) -L ps $(FICK2DEATH_OPT) $< +$@ + +# TeX to DVI +#.tex.dvi: +# $(LATEX) $< < /dev/null > /dev/null 2>&1 +# $(LATEX) $< < /dev/null > /dev/null 2>&1 + +# DVI to PS +#.dvi.ps: +# $(DVIPS) -o $@ $< + +# PS to PDF +#.ps.pdf: +# $(PS2PDF) $< $@ + +# LyX to TeX +#.lyx.tex: +# $(LYX2LATEX) $< > /dev/null 2>&1 && mv -f $@ +$@ + +# LyX to PDF +.lyx.pdf: + $(LYX2PDF) $< > /dev/null 2>&1 && mv -f $@ +$@ + +# LyX to HTML +.lyx.html: + $(LYX2HTML) $< > /dev/null 2>&1 && mv -f $@ +$@ + + diff --git a/html/doc/README b/html/doc/README new file mode 100644 index 0000000..486fcb0 --- /dev/null +++ b/html/doc/README @@ -0,0 +1,11 @@ +german below! + +There is currently no rules or other documentation in english. use the +sourcecode or ask at the mailinglist, if you want to know something. + +------------------------ + +Die Dateien in diesem Verzeichnis sind nicht auf dem neuesten Stand. +Die Regeln werden inzwischen im Wiki gepflegt: + +http://www.aymargeddon.de/wiki/index.php/Regeln diff --git a/html/doc/Regeln.lyx b/html/doc/Regeln.lyx new file mode 100644 index 0000000..d52001d --- /dev/null +++ b/html/doc/Regeln.lyx @@ -0,0 +1,2397 @@ +#LyX 1.3 created this file. For more info see http://www.lyx.org/ +\lyxformat 221 +\textclass article +\language german +\inputencoding latin1 +\fontscheme default +\graphics default +\paperfontsize 11 +\spacing single +\papersize a4paper +\paperpackage a4 +\use_geometry 0 +\use_amsmath 0 +\use_natbib 0 +\use_numerical_citations 0 +\paperorientation portrait +\secnumdepth 3 +\tocdepth 3 +\paragraph_separation indent +\defskip bigskip +\quotes_language polish +\quotes_times 2 +\papercolumns 1 +\papersides 1 +\paperpagestyle default + +\layout Title + +Die letzten Tage von Aymargeddon +\layout Author + +Aymargeddon Development Team +\layout Date + +17. + April 2005 +\layout Standard + + +\begin_inset ERT +status Collapsed + +\layout Standard + +\backslash +tableofcontents +\backslash +newpage +\end_inset + + +\layout Section + +Einleitung +\layout Quotation + + +\emph on + +\begin_inset Quotes pld +\end_inset + +Es ist nicht leicht, ein Gott zu sein +\begin_inset Quotes prd +\end_inset + + (Titel eines Buches der Brüder Strugatzkij) +\layout Standard + +Während in den himmlischen Sphären der entscheidende Kampf zwischen Gut + und Böse ausgefochten wird, kämpfen auf Erden Elfen gegen Zwerge, Menschen + gegen Halblinge und jeder gegen jeden. + Soweit das Fantasy-Klischee. + Doch jetzt kommen wir zum Spiel: +\layout Standard + + +\series bold +\shape smallcaps +Die letzten Tage von Aymargeddon +\series default +\shape default + wird von mindestens acht Spielern gespielt. + Höchstens ein Drittel der Spieler übernimmt die Aufgabe eines Gottes. + Die restlichen zwei Drittel spielen jeweils ein Volk auf der Erde. + Am Ende gibt es zwei Sieger: den himmlischen Sieger, der zwischen den Göttern + ermittelt wird, und den Sieger der Erdlinge, den die restlichen Spieler + zwischen sich ausmachen. +\layout Standard + + +\series bold +Himmlischer Sieger +\series default +ist der Gott, der am Ende in der +\series bold +letzten Schlacht +\series default + auf der +\series bold +Insel des Schicksals +\series default +, der +\series bold +Aymargeddon, +\series default + am meisten Kräfte auf sich vereinigen kann. + Der Ort der letzten Schlacht wird einer von mehreren +\series bold +Manapolen +\series default + sein - abgelegene Inseln, auf denen die magischen Kraftlinien zusammenlaufen. + In der letzten Schlacht kämpfen die +\series bold +Avatare +\series default + der Götter, aber auch die Geister verstorbener +\series bold +Helden +\series default + der Erdlinge. + +\layout Standard + +Der +\series bold +Sieger der Erdlinge +\series default + ist der Spieler, der am Ende die meisten +\series bold +Städte +\series default + sein eigen nennt. + +\layout Standard + +Zweite Plätze gibt es weder bei den Göttern noch bei den Erdlingen. + Es geht immer um den Kampf ums Ganze, um Alles oder Nichts. +\layout Standard + +Die Interaktion zwischen den beiden Ebenen wird durch +\series bold +Priester +\series default + und +\series bold +Götteraktionen +\series default + möglich. +\layout Standard + +Das +\series bold +Spiel endet, +\series medium + sobald alle +\series bold +heiligen Berge +\series default +und +\series bold + gesegneten Inseln mit Tempeln +\series default + bebaut +\series medium +sind +\series default +. + +\series medium +Die Tempel bauen die Erdlinge, Götter können sie nur zerstören. + +\layout Standard + +Je mehr Priester an einem Tempel +\series bold +beten +\series default +, um so mehr +\series bold +Mana +\series default + erhält der jeweilige Gott und um so mehr Aktionen kann er machen. +\layout Standard + + +\series bold +Beide Ebenen +\series medium +sind aufeinander angewiesen, da Götter ohne den guten Willen der Erdlinge + kein +\series default + Mana und somit keinerlei Macht +\series medium + haben und die Erdlinge die Unterstützung der Götter in ihren irdischen + Dingen dringend brauchen. + Durch diese enge Verzahnung der beiden Spielebenen ist man immer zu +\series bold +Verhandlungen +\series medium + gezwungen. +\layout Standard + +Der +\series bold +Glücksfaktor +\series default + wird von den Spielern selbst bestimmt. + Kämpfe werden durch einen Zufallswert mitbestimmt. + Den Maximalwert des Zufalls (3 - 12) müssen die Götter bestimmen (auch + diese Aktion kostet sie natürlich Mana). + +\layout Standard + +Am +\series bold +Schluss +\series medium + ist es vor allem nötig +\series default +, +\series medium + einen Partner zu haben, der stark genug ist +\series default +, +\series medium + um auch an einem Spielende interessiert zu sein +\series default + oder schwach genug, um sich mit einem hinteren Platz zufrieden zu geben +\series medium +. + So werden treue Verbündete, mit denen man das ganze Spiel gemeinsam bestritten + hat, oft noch einmal kurz vor Schlu +\series default +ss +\series medium + fallengelassen. +\layout Standard + +Die +\series bold +Erdlinge +\series medium +spielen +\series default +mit +\series bold +Kriegern +\series default +, Helden (von Göttern erzeugt) und Priestern. + Üblicherweise werden nur die ersten Priester von Göttern erleuchtet, danach + machen die Tempel diese Arbeit. + Sie können Tempel bauen, Städte erobern und Archen steuern. +\layout Standard + +Die +\series bold +Götter +\series medium +spielen +\series default + mit ihren Avataren, können aber auch Tempel zerstören, Archen erschaffen, + Felder überfluten, Seuchen herbeirufen, Priester und Helden erzeugen und + den Glücks +\begin_inset ERT +status Collapsed + +\layout Standard + +\backslash +- +\end_inset + +fak +\begin_inset ERT +status Collapsed + +\layout Standard + +\backslash +- +\end_inset + +tor verändern. + Doch das alles kostet sie Mana. +\layout Standard + +Die Welt ist in viele kleine sechseckige Spielfelder unterteilt. + Die Größe des Spielfeldes wird durch die angestrebte Spieleranzahl bestimmt. + +\layout Standard + +Gespielt wird über einen üblichen Web-Browser. + Es gibt keine Spielrunden, sondern jeder Befehl braucht eine gewisse Zeit, + bis er ausgeführt wird. + Die Spielgeschwindigkeit kann dabei variieren. +\layout Standard + +An dieser Stelle möchten wir einmal ganz laut und deutlich allen Testspielern + des Brettspieles und der Pbem-Version danken, ohne die auch diese Online-Versio +n nicht möglich geworden wäre! +\layout Section* + + +\family sans +\series medium +\size large +\emph on +WARNUNG: +\layout Standard + + +\family sans +\emph on +Sowohl die verschiedenen beteiligten Programme als auch diese Regeln sind + noch in einem Test-Stadium. + Wir bitten also insbesondere alle Testspieler, uns darauf hinzuweisen, + wenn es Unterschiede zwischen diesem Dokument und dem realen Verhalten + des Spiels gibt. + Außerdem bitten wir Euch, Euch in die Ragnarök-Mailingliste einzutragen + ( +\begin_inset Quotes pld +\end_inset + +subscribe ragnaroek +\begin_inset Quotes prd +\end_inset + + nach majordomo@cs.uni-frankfurt.de schicken). + Helft mit, dass Aymargeddon besser wird! Wer will, kann auch gerne selbst + programmieren helfen. + Der Quellcode steht in einem tla-Archiv auf www.aymargeddon.de zur Verfügung. +\layout Section + +Die Welt +\layout Quotation + + +\emph on + +\begin_inset Quotes pld +\end_inset + +Wenn man eine Rolle lange genug spielte, vermischten sich langsam Fiktion + und Realität... + Rache war etwas für Götter. +\begin_inset Quotes prd +\end_inset + + (aus: +\begin_inset Quotes pld +\end_inset + +Ragnarök +\begin_inset Quotes prd +\end_inset + + von D.G.Compton und John Gribbin) +\layout Standard + +Die Welt besteht aus Sechsecken und hat keinen Rand. + Man kann in jede Richtung laufen und kommt wieder zum Ausgangspunkt zurück + (Torus). + Hier ein Screenshot vom Hauptbildschirm, damit Ihr eine Vorstellung davon + bekommt, wie die Welt aussieht. +\layout Standard +\align center + +\layout Standard + +In dieser Welt kann man sich in sechs verschiedene Richtungen bewegen, die + man sich folgendermaßen vorstellen kann: +\layout Standard +\added_space_top 0.3cm \added_space_bottom 0.3cm \align center + +\layout Standard +\added_space_top 0.3cm \added_space_bottom 0.3cm \align center + +\begin_inset Graphics + filename +ay_ein_hex.eps + display monochrome + width 50text% + +\end_inset + + +\layout Standard + +Jeder Erdling beginnt bei seiner Heimatstadt. + Diese ist schwerer zu erobern und produziert mehr Krieger als normale Städte. + Jeder Gott hat zwei heilige Berge, an denen nur er angebetet werden kann. +\layout Standard + +Es dürfen immer nur Einheiten von einem Erdling in einem Feld stehen, das + somit einen eindeutigen Eigentümer hat. + Heimatstädte erinnern sich immer an ihre rechtmäßigen Herrscher. + Sie verteidigen sich auch ohne Krieger, und sie gehören einem wieder, sobald + die Besatzungsmacht abgezogen ist. +\layout Standard + +Besondere Felder sind die Manapole, zu ihnen strebt das ganze Denken der + Götter ihrem Wesen nach. + Einer der Manapole ist immer die Insel des Schicksals. + Manapole sind immer komplett von Wasserfeldern ohne gesegnete Inseln umgeben. +\layout Standard + +Außerdem gibt es noch Wasser und Inseln. + Inseln sind immer gesegnet, man kann dort also immer Tempel bauen, außer + es handelt sich um einen Manapol. + Über Wasser darf man sich als Erdling nur bewegen, wenn im Ausgangsfeld + eine Arche ist. + Avatare dürfen sich nur dann über Wasser bewegen, wenn ein Erdling gleichzeitig + die Arche steuert. + Die Archen bewegen sich mit den Erdlingen mit und haben ein unbegrenztes + Fassungsvermögen. + Die Götter sind also auf die Mithilfe der Erdlinge angewiesen, wenn sie + ihre Avatare in die letzte Schlacht, die auf der Insel des Schicksals stattfind +et, schicken wollen. +\layout Standard + +Welcher Manapol Aymargeddon ist, ändert sich im Laufe des Spiels. + Es ist immer der Manapol, der dem neuesten und schönsten Tempel am nächsten + ist. + Avatare bewegen sich leichter in Richtung Aymargeddon als von ihr weg. + Sie dürfen die Insel des Schicksals nicht verlassen, so lange sie Aymargeddon + ist. +\layout Subsection* + +Topologie +\layout Standard + +Felder haben immer zwei Koordinaten. + Das Spielfeld hat keinen Rand, wenn man sich in einer Richtung über den + vermeintlichen Rand bewegt, kommt man auf der gegenüberliegenden Seite + wieder raus. + Die folgende Karte mit den Koordinaten der Felder demonstriert das: +\layout Standard +\align center + +\layout Standard + +Eine Welt ist immer doppelt so breit wie hoch. + Nur so kann man in allen Richtungen immer geradeaus laufen und kommt doch + immer wieder am Ausgangspunkt an. +\layout Subsection* + +Produktion +\layout Standard + +Alle Städte erzeugen automatisch in gewissen Zeitabständen Krieger. + Heimatstädte erzeugen doppelt so schnell Krieger, sie tun dies manchmal + auch, wenn sie das Feld von feindlichen Einheiten besetzt wird, dann kommt + es zu Aufständen der heimatlichen Bevölkerung in regelmäßigen Abständen. + Normale Städte erzeugen umso häufiger Krieger, je kürzer der Zeitpunkt + ihres letzten Besitzerwechsels her ist. + +\layout Standard + +Tempel erzeugen in gewissen Zeitabständen Priester. + Es werden keine Priester erzeugt, wenn nicht schon rechtgläubige Priester + dort sind. +\layout Section + +Aktionen +\layout Standard + +Jede Aktion eines Spielers wird sofort in eine Datenbank geschrieben. + Die Aktionen werden jedoch erst zu einem späteren Zeitpunkt ausgeführt. + Wie lange das dauert, hängt von der Aktion ab (siehe Abschnitt Timing). + Einheiten sind wärend dieser Zeit inaktiv. +\layout Subsection* + +Aktionen für alle Spieler +\layout Subsubsection* + +Status ändern +\layout Standard + +Mit dieser Aktion kann man seine generelle Haltung anderen Spielern gegenüber + - seien sie Götter oder Erdlinge - ändern. + Man kann andere Spieler als Freund, als Feind oder neutral ansehen. + Man kann ihnen Sichtrechte gewähren oder sie verweigern. + +\layout Standard + +Das hat an einigen Stellen Auswirkungen, die dort dann näher beschrieben + sind. + Zu Spielbeginn ist man allen anderen Spielern gegenüber neutral eingestellt + und gewährt ihnen keine Sichtrechte. +\layout Subsection* + +Aktionen der Erdlinge +\layout Standard + + +\series bold +Bewegen +\layout Standard + +Dies bedeutet, dass man eine bestimmte Anzahl Krieger, Helden oder Priester + in ein Nachbarfeld bewegen will. + Dies kann zu Kampfhandlungen führen, wenn sich am Ende des Zuges noch Einheiten + anderer Erdlingsspieler auf dem Zielfeld aufhalten. + +\layout Standard + +Erdlinge können die Manapole nicht betreten. + Ihre toten Helden werden automatisch direkt nach einem Kampf zur Aymargeddon + transferiert. +\layout Standard + +Helden bewegen sich doppelt so schnell wie Krieger und kämpfen doppelt so + gut. + +\layout Standard + +Wasser- und Inselfelder können nur betreten werden, wenn im Startfeld eine + Arche steht, die einen dorthin bringen kann. + +\layout Standard + +Archen bewegen sich immer automatisch mit Erdlingen mit außer bei der Bewegung + zwischen Landfeldern. + Wenn Erdlingseinheiten oder Avatare in einem Wasserfeld zurückbleiben, + aus dem sich eine Arche entfernt, ertrinken sie jämmerlich. + Ertrinkende Helden streiten nicht in der letzten Schlacht, ebensowenig + wie ertrinkende Avatare. + Auf Inselfeldern können sie jedoch überleben. +\layout Standard + +Das Bewegen von einem Wasser- oder Inselfeld auf ein benachbartes Landfeld + ist immer möglich auch ohne Arche. + +\layout Standard + +Das Bewegen in das Feld eines Alliierten scheitert +\begin_inset Foot +collapsed true + +\layout Standard + +Böse Zungen nennen das die Olf-Bodo-Regel ;-) +\end_inset + +. + Ebenso scheitert die Bewegung, wenn im Zielfeld bereits ein Kampf stattfindet + an dem ich nicht beteiligt bin. + So wird gewährleistet, dass an einem Erdlingskampf immer nur zwei Spieler + beteiligt sein können. + Das Bewegen scheitert allerdings erst am Schluss der Bewegung. + Sie müssen sich dann wieder zurück bewegen. + +\layout Standard + +Man kann somit fast lückenlos Felder übergeben. + Daraus ergibt sich, dass man Alliierte nicht angreifen kann, so lange sie + Freunde sind. + +\layout Subsubsection* + +Tempel bauen +\layout Standard + +Diese Aktion erzeugt auf einem Feld einen Tempel einer Gottheit. + Es ist nur möglich, Tempel zu erzeugen, wenn der Spieler mindestens einen + Priester der passenden Gottheit dort hat und das Feld ein heiliger Berg + oder eine gesegnete Insel ist. + Wenn es ein heiliger Berg ist, darf nur ein Tempel des Gottes gebaut werden, + dem der Berg gewidmet ist. + Auf jedem Feld kann es immer nur einen Tempel geben. +\layout Standard + +Tempel zu bauen geht am Anfang des Spiels recht schnell, dauert aber um + so länger, je mehr Tempel schon gebaut sind. + Jeder Erdling will schließlich den schönsten Tempel der Welt haben, und + das dauert natürlich seine Zeit. + Wenn alle Tempel gebaut sind, endet das Spiel sofort. + +\layout Standard + +Der Manapol, der dem neuesten Tempel am nächsten ist, wird zur Insel des + Schicksals. + Wenn mehrere Manapole gleich weit entfernt sind, bleibt die aktuelle Aymargeddo +n bestehen. + (noch nicht implementiert) +\layout Subsubsection* + +Schlachtordnung festlegen +\layout Standard + +Erdlinge können angeben in welcher Schlachtordnung ihre Armeen in den Krieg + ziehen. + Es wird eine Reihenfolge angegeben in der die Einheiten aufgestellt werden. + Mit der Reihenfolge kann jeder Erdling angeben, welche eigenen Einheiten + in vorderster Front stehen und somit zuerst sterben sollen. + So kann man zum Beispiel zuerst Krieger sterben lassen, dann Helden und + dann erst die Priester. +\layout Standard + +Die Reihenfolge gilt immer für die ganze Welt. +\layout Standard + +Die voreingestellte Reihenfolge ist: Krieger, Helden, Priester. + +\layout Standard + +Die Reihenfolge ist allerdings nicht absolut, sondern gibt nur die Wahrscheinlic +hkeit des Todes an. +\layout Standard + +Archen befinden sich immer in der letzten Reihe der Schlachtordnung. + Jede Arche, die +\begin_inset Quotes pld +\end_inset + +stirbt +\begin_inset Quotes prd +\end_inset + + wird mit einer gewissen Wahrscheinlichkeit versenkt und mit einer gewissen + Wahrscheinlichkeit vom Gegner erobert. +\layout Subsection* + +Aktionen der Götter +\layout Quotation + + +\emph on + +\begin_inset Quotes pld +\end_inset + +Wenn Dich das nächste Mal jemand fragt, ob Du ein Gott bist, sag ja. +\begin_inset Quotes prd +\end_inset + + (aus: Ghostbusters) +\layout Standard + +Alle folgenden Aktionen kosten Mana. + Neues Mana erhält ein Gott, wenn seine Priester an den richtigen Tempeln + beten. + Alle zehn Zeiteinheiten gibt es pro Priester und Tempel einen Manapunkt + (MP). +\layout Subsubsection* + +Avatar erschaffen +\layout Standard + +Ein Avatare erscheint immer an dem eigenen Tempel an dem am meisten eigene + Priester beten. + Ein Avatar kostet 5 MP. + +\layout Subsubsection* + +Held weihen +\layout Standard + +Ein Krieger kann nur an eigenen Tempeln zum Helden geweiht werden. + Das kostet 1 MP. +\layout Description + +Priester +\series medium + +\series bold +erleuchten +\layout Standard + +Einen Priester kann man nur aus einem Krieger erzeugen, wenn der Gott das + entsprechende Feld einsehen kann (siehe Sicht-Abschnitt). + Diese Aktion kostet 5 MP. + +\layout Subsubsection* + +Avatare bewegen +\layout Standard + +Avatare dürfen sich auch auf die Insel des Schicksals begeben (allerdings + nicht mehr von ihr weg). + Das Bewegen eines Avatars geht deutlich schneller als das Bewegen der Erdlinge + (Eine Zeiteinheit). + Es kostet immer 1 MP pro Feld und Avatar. + Avatare reisen umsonst auf Schiffen mit. +\layout Standard + +Avatare dürfen sich nicht auf Wasser- oder Inselfelder bewegen, ausser mit + einer Arche (von Erdlingen gesteuert). + Von Wasserfeldern aus, dürfen sie sich auch alleine auf Landfelder oder + Manapole bewegen. +\layout Subsubsection* + +Verseuchen +\layout Standard + +Ein Gott kann die Erde mit Seuchen überziehen. + Das hat unterschiedliche Auswirkungen je nach Art der Seuche. + Seuchen verbreiten sich mit einer gewissen Wahrscheinlichkeit auf Nachbarfelder + sowie bei Bewegungen von Erdlingseinheiten. + Die Anwesenheit von Priestern erhöht die Wahrscheinlichkeit, dass die Seuche + aufhört. + Die Kosten für Seuchen hängen von der Art der Seuche ab. + Zum Verseuchen benötigt man einen anwesenden Avatar und in dem Feld darf + gerade kein Götterkampf (s.u.) stattfinden. + +\layout Standard + +Verseucht sind immer ganze Felder, keine einzelnen Einheiten. + Städte stecken sich leichter an als Landfelder, Landfelder leichter als + Berge, Berge leichter als Inseln, Inseln leichter als Wasserfelder. +\layout Standard + +Es gibt zur Zeit drei verschiedene Seuchen: +\layout Standard + + +\begin_inset Tabular + + + + + + + +\begin_inset Text + +\layout Standard + +Seuche +\end_inset + + +\begin_inset Text + +\layout Standard + +Effekt +\end_inset + + +\begin_inset Text + +\layout Standard + +Mana +\end_inset + + + + +\begin_inset Text + +\layout Standard + +Influenza +\end_inset + + +\begin_inset Text + +\layout Standard + +Städte und Tempel produzieren nicht mehr +\end_inset + + +\begin_inset Text + +\layout Standard + +10 +\end_inset + + + + +\begin_inset Text + +\layout Standard + +Pestilentia +\end_inset + + +\begin_inset Text + +\layout Standard + +50% aller Leute sterben +\end_inset + + +\begin_inset Text + +\layout Standard + +20 +\end_inset + + + + +\begin_inset Text + +\layout Standard + +Ebola +\end_inset + + +\begin_inset Text + +\layout Standard + +100% aller Leute sterben +\end_inset + + +\begin_inset Text + +\layout Standard + +40 +\end_inset + + + + +\end_inset + + +\layout Standard + +Wenn Leute sterben, so geschieht das nach den Regeln bei Erdlingskämpfen + (s.u.). +\layout Standard + +Eine Seuche hat alle 20 Zeiteinheiten erneut ihren in der Tabelle beschriebenen + Effekt. +\layout Subsubsection* + +Sintfluten +\layout Standard + +Avatare können eine Ebene oder einen Berg überfluten, die an ein Wasser- + oder Inselfeld grenzen, wenn sie vor Ort sind und in dem Feld gerade kein + Götterkampf(s.u.) stattfindet. + Eine Sintflut kostet nur 2 MP, dauert aber 40 Zeiteinheiten. + Berge werden durch Überfluten zu Inseln. + Dadurch ändert sich ihre Exklusivität, und von nun an können auch andere + Götter an ihnen angebetet werden. + Städte und Inseln kann man nicht überfluten. +\layout Standard + +Wenn zum Zeitpunkt des Flutens einer Ebene noch Einheiten im Feld sind, + benötigen sie eine Arche, um nicht unterzugehen. +\layout Subsubsection* + +Avatarstatus ändern +\layout Standard + +Jede Gruppe von Avataren eines Spielers in einem Feld hat einen Status. + Dieser kann +\series bold +\shape smallcaps +Helfe +\series default +\shape default +, +\series bold +\shape smallcaps +Block +\series default +\shape default + oder +\series bold +\shape smallcaps +Ignorieren +\series default +\shape default + sein. + Mit +\series bold +\shape smallcaps +Helfe +\series default +\shape default + hilft man befreundeten Erdlingen, wenn es zu Kämpfen kommt. + Mit +\series bold +\shape smallcaps +Block +\series default +\shape default + schlägt man sich mit verfeindeten Avataren, wenn diese ins Feld kommen. + Man kann immer nur eines von beidem gleichzeitig tun. + +\layout Standard + +Sich bewegende Avatare nehmen ihren Status mit. + Wenn zwei Gruppen von Avataren des selben Spielers zusammentreffen, wird + immer automatisch +\series bold +\shape smallcaps +Block +\series default +\shape default + vor +\series bold +\shape smallcaps +Helfe +\series default +\shape default + vor +\series bold +\shape smallcaps +Frieden +\series default +\shape default + für die neue gemeinsame Gruppe gewählt. + +\layout Subsubsection* + +Tempel zerstören +\layout Standard + +Götter können den Tempel eines anderen Gottes auf einer gesegneten Insel + zerstören. + Dort dürfen sich keine Priester eines anderen Gottes befinden, außerdem + braucht man einen eigenen Avatar in dem Feld und es darf dort kein Götterkampf + (s.u.) stattfinden. + Dieser Befehl kostet 5 MP. + Wenn nur noch ein Tempelfeld unbebaut ist, kann man keine Tempel mehr zerstören. + +\layout Standard + +Es gibt im Wesentlichen zwei Anwendungsfälle für diesen Befehl: +\layout Enumerate + +Ein Gott will eine gesegnete Insel übernehmen, damit ein +\begin_inset ERT +status Collapsed + +\layout Standard +ver +\backslash +-bün +\backslash +-de +\backslash +-ter +\end_inset + + Erdling ihm dort einen Tempel errichtet. + Dafür muss der alte Tempel zerstört werden. + +\layout Enumerate + +Ein Gott will das drohende Spielende hinauszögern, weil er für später bessere + Siegchancen sieht. + Danach sollte man Erdlinge dazu überreden, das leere Baufeld auch zu verteidige +n. + Wenn jedoch einmal der Baubefehl für den letzten Tempel gegeben ist, ist + es zu spät, das Ende der Welt noch aufzuhalten. +\layout Subsubsection* + +Glücksfaktor verändern +\layout Standard + +Mit diesem Befehl kann man angeben, ob man den globalen +\begin_inset ERT +status Collapsed + +\layout Standard +Glücks +\backslash +-fak +\backslash +-tor +\end_inset + +, der auf alle Kämpfe mit Ausnahme der letzten Schlacht angewandt wird, + erhöhen oder erniedrigen will. + Man gibt an, wie viele Manapunkte man investieren will. + Pro MP ändert sich der Glücksfaktor um einen Punkt auf einer Skala von + 3 bis 12. +\layout Standard + +Der Glücksfaktor ist immer für alle Spieler gleich hoch, es gibt also nur + einen Glücksfaktor für alle Spieler. +\layout Subsubsection* + +Arche bauen +\layout Standard + +Ein Gott kann auf einem Feld, dass er sieht, eine Arche bauen. + Steuern kann er sie nicht. + Die Arche gehört dem derzeitigen Feldeigentümer. +\layout Standard + +Eine Arche zu bauen kostet 5 MP und dauert 30 Zeiteinheiten. +\layout Section + +Beten +\layout Quotation + + +\emph on + +\begin_inset Quotes pld +\end_inset + +Wer Gott definiert, ist schon Atheist. +\begin_inset Quotes prd +\end_inset + + (Oswald Spengler) +\layout Standard + +Die Götter erhalten alle 10 Zeiteinheiten einen MP pro Tempel und pro rechtgläub +igem Priester an diesem Tempel ebenso ein MP. + Die Anzahl effektiv betender Priester pro Tempel ist allerdings auf den + aktuellen Glücksfaktor begrenzt. + An heiligen Bergen können doppelt so viele Priester effektiv beten. +\layout Section + +Infos +\layout Standard + +Folgende generelle Daten sind für alle Mitspieler jedezeit abrufbar. + Sie beziehen sich auf das ganze Spiel und nicht auf einzelne Felder. + +\layout Itemize + +Der aktuelle Glücksfaktor +\layout Itemize + +Die Anzahl nicht gebauter Tempel +\layout Itemize + +Die Stärke auf der Insel des Schicksals +\layout Itemize + +Die Anzahl der Avatare auf den Manapolen (noch nicht implementiert) +\layout Itemize + +Die Gesamtstärke jeden Erdlings (noch nicht implementiert) +\layout Itemize + +Die Anzahl der lebenden Avatare jedes Gottes (noch nicht implementiert) +\layout Itemize + +Die Anzahl der Priester jedes Gottes (noch nicht implementiert) +\layout Itemize + +Die Anzahl Städte jedes Erdlings +\layout Standard + +Dadurch kann man immer die Stärke eines anderen Spielers ungefähr einordnen + und sieht, wer auf dem Weg zum Sieg ist. +\layout Standard + +Erdlinge sehen außerdem noch die Sterbereihenfolge ihrer Einheiten. + Götter sehen ihren aktuellen Manastand. +\layout Subsection* + +Sichtrechte +\layout Standard + +Sichtrecht hat man für folgende Felder: +\layout Standard +\added_space_top 0.3cm \added_space_bottom 0.3cm \align center + +\begin_inset Tabular + + + + + + +\begin_inset Text + +\layout Standard + +Götter +\end_inset + + +\begin_inset Text + +\layout Standard + +Erdlinge +\end_inset + + + + +\begin_inset Text + +\layout Standard + +eigene Holys +\end_inset + + +\begin_inset Text + +\layout Standard + +Heimatstädte +\end_inset + + + + +\begin_inset Text + +\layout Standard + +anwesende Priester oder Avatare +\end_inset + + +\begin_inset Text + +\layout Standard + +anwesende Priester, Krieger oder Helden +\end_inset + + + + +\end_inset + + +\layout Standard + +Von Bergen aus sieht man zwei Felder weit, sonst nur eins. +\layout Standard + +Andere Spieler können einem Sichtrechte gewähren. + Dies tun sie durch den Allianzstatus +\begin_inset Quotes pld +\end_inset + +Alliiert +\begin_inset Quotes prd +\end_inset + + oder +\begin_inset Quotes pld +\end_inset + +Verrat +\begin_inset Quotes prd +\end_inset + +. + +\begin_inset Quotes pld +\end_inset + +Freund +\begin_inset Quotes prd +\end_inset + + gewährt keine Sichtrechte. +\layout Standard + +Als anwesend zählen auch nicht-aktive Einheiten (die sich zum Beispiel gerade + in der Bewegung befinden). +\layout Standard + +Wenn man Sichtrecht für ein Feld hat, kann man jederzeit die Infos zu diesem + Feld abrufen. +\layout Section + +Kampf +\layout Standard + +Götter können Erdlinge nicht direkt attackieren, sie können nur andere Erdlinge + bei diesen Angriffen unterstützen. + +\layout Standard + +Bei jedem Kampf außer der letzten Schlacht werden die Kampfstärken der beteiligt +en Einheiten addiert und zusätzlich ein Zufallswert zwischen eins und dem + Glücksfaktor dazugezählt. + +\layout Standard + +Jeder Kampf dauert eine gewisse Zeitspanne. + Alle in dieser Zeitspanne hinzustoßenden Einheiten nehmen am Kampf teil + oder werden vom Kampf ausgeschlossen. + In letzterem Fall kehren sie einfach wieder um. +\layout Subsection* + +Erdlingskampf +\layout Standard + +Ein Erdlingskampf wird ausgelöst, wenn Einheiten eines neutralen oder verfeindet +en Erdlings - im Folgenden Angreifer genannt - ein Feld betreten, dessen + Eigentümer im Folgenden Verteidiger genannt wird. + Alle Einheiten dieser beiden Parteien, die wärend der Kampfdauer zum Kampf + dazu stoßen, nehmen am Kampf teil. + Einheiten Dritter werden vom Kampf ausgeschlossen. + Eine Möglichkeit, sich aus einem einmal begonnenen Kampf herauszuhalten, + gibt es nicht. +\layout Standard + +Die Kampfstärke beider Seiten ergibt sich aus der Summe der Kampfstärken + der beteiligten Einheiten. + Beide Seiten eines Kampfes addieren einen Zufallswert, der zwischen 1 und + dem aktuellen Glücksfaktor liegt, zu ihrer Kampfstärke. + +\layout Standard + +Dem bisherigen Eigentümer reicht ein Unentschieden zum Sieg. + +\layout Standard + +Eine Partei, die einen Kampf verliert, muss ihre Überlebenden zurückziehen. + Alle Einheiten ziehen sich einzeln zurück. + +\layout Standard + +Dazu wird nach dem Zufallsprinzip eines der Nachbarfelder ausgewählt, das + dem Verlierer gehört oder neutral ist und in dem zum Zeitpunkt des Rückzuges + kein Kampf stattfindet. + Ein Rückzug ist wie eine normale Bewegung und braucht Zeit. + Archen ziehen sich immer zuerst zurück. + Archen auf Küstenfeldern können sich nur auf Wasser oder Inselfelder zurückzieh +en. + Andere Einheiten können sich nur auf Landfelder zurückziehen oder auf solche, + auf die sich bereits Archen zurückgezogen haben. +\layout Standard + +Es kann passieren, dass das Feld bei Ankunft der Flüchtenden auch schon + einem anderen Spieler gehört, dann kommt es dort direkt wieder zum Kampf. + Flüchtende Einheiten können also von Feld zu Feld gejagt und dabei aufgerieben + werden. + Ein gut geplanter Angriff auf breiter Front kann diese Regel bewusst ausnutzen. +\layout Standard + +Natürlich kann man beim Kämpfen auch zu schaden kommen: Der Verlierer verliert + die Hälfte der Kampfstärke des Gewinners (ohne Avatare und Flankierung) + an Leuten. + Der Gewinner verliert ein Viertel der Kampfstärke des Verlierers. + Der Gewinner behält mindestens eine Person (oder Arche), der Verlierer + verliert mindestens eine. + Die Schlachtordnung bestimmt wieviele Leute welcher Art anteilig sterben. +\layout Standard + +Sollte ein Spieler nach einem verlorenen Kampf keinerlei Rückzugsmöglichkeiten + mehr haben, sterben alle seine Einheiten in diesem Feld. + +\layout Standard + +Doch jetzt endlich zu den Kampfstärken: +\layout Standard +\added_space_top 0.3cm \added_space_bottom 0.3cm \align center + +\begin_inset Tabular + + + + + + +\begin_inset Text + +\layout Standard + +Einheit +\end_inset + + +\begin_inset Text + +\layout Standard + +Modifikator +\end_inset + + + + +\begin_inset Text + +\layout Standard + +Priester +\end_inset + + +\begin_inset Text + +\layout Standard + ++0 +\end_inset + + + + +\begin_inset Text + +\layout Standard + +Krieger +\end_inset + + +\begin_inset Text + +\layout Standard + ++1 +\end_inset + + + + +\begin_inset Text + +\layout Standard + +Held +\end_inset + + +\begin_inset Text + +\layout Standard + ++2 +\end_inset + + + + +\begin_inset Text + +\layout Standard + +Avatar +\end_inset + + +\begin_inset Text + +\layout Standard + +bis zu +4 +\end_inset + + + + +\begin_inset Text + +\layout Standard + +Heimatstadt +\end_inset + + +\begin_inset Text + +\layout Standard + ++2 +\end_inset + + + + +\begin_inset Text + +\layout Standard + +Arche +\end_inset + + +\begin_inset Text + +\layout Standard + ++3 +\end_inset + + + + +\begin_inset Text + +\layout Standard + +pro Flankierung +\end_inset + + +\begin_inset Text + +\layout Standard + ++1 +\end_inset + + + + +\end_inset + + +\layout Standard + +Dabei ist +0 nicht so sinnlos, wie es auf den ersten Blick aussieht: Sind + nur Prieser anwesend, können sie wenigstens auf ihr Würfelglück hoffen, + wenn sie angegriffen werden und tragen zur Avatarunterstützung bei, wenn + diese vorhanden ist. +\layout Standard + +Avatare kämpfen natürlich nur mit, wenn sie im Status +\begin_inset Quotes pld +\end_inset + +Helfe +\begin_inset Quotes prd +\end_inset + + sind, und Mannapunkte übrig haben (2 MP pro Kampf unabhängig von der Anzahl + Avatare). + Sie geben maximal 4 Punkte Bonus. + Dabei wird pro kämpfendem Erdling ein Punkt verbraucht (egal ob Krieger, + Held oder Priester). + +\layout Standard + +Den Flankierungsbonus erhält man für jedes benachbarte Feld, das folgende + Bedingungen erfüllt: +\layout Itemize + +Es muss einem selbst oder einem Spieler mit dem Status +\begin_inset Quotes pld +\end_inset + +Freund +\begin_inset Quotes prd +\end_inset + + oder +\begin_inset Quotes pld +\end_inset + +alliiert +\begin_inset Quotes prd +\end_inset + + gehören; +\layout Itemize + +der Eigentümer des Feldes muss zum Zeitpunkt des Kampfes noch aktive Einheiten + dort stehen haben; +\layout Itemize + +es darf nicht selbst umkämpft sein. + +\layout Itemize + +Es darf kein Wasserfeld sein. + Inseln flankieren aber ganz normal. +\layout Standard + +Dadurch kann man Gebiete, die aus zusammenhängenden benachbarten Feldern + bestehen, besser verteidigen. +\layout Subsection* + +Avatarkampf +\layout Quotation + + +\emph on + +\begin_inset Quotes pld +\end_inset + +Jetzt hast Du, tapferer Soldat, jetzt hast Du, streitbarer Mann, einen Ort, + wo Du ohne Gefahr kämpfen kannst, wo der Sieg Ruhm und der Tod Gewinn ist. +\begin_inset Quotes prd +\end_inset + + (Bernhard von Clairveaux, 1146 n.u.Z., zum zweiten Kreuzzug aufrufend) +\layout Standard + +Avatare haben immer einen von drei Zuständen. + Mit +\begin_inset Quotes pld +\end_inset + +Helfe +\begin_inset Quotes prd +\end_inset + + helfen sie Erdlingen, wie oben angesprochen. + Mit +\begin_inset Quotes pld +\end_inset + +Block +\begin_inset Quotes prd +\end_inset + + blockieren sie andere Avatare, um gegen sie zu kämpfen. + Ist ihr Zustand +\begin_inset Quotes pld +\end_inset + +Ignoriere +\begin_inset Quotes prd +\end_inset + +, wollen sie mit niemandem Streit. + Die Avatare eines Gottes in einem Feld können nur den gleichen Zustand + haben. + +\layout Standard + +Nur der Status +\begin_inset Quotes pld +\end_inset + +Block +\begin_inset Quotes prd +\end_inset + + kann zu Avatarkämpfen führen. + Dies geschieht, wenn +\layout Itemize + +einer der beiden den anderen als Feind betrachtet und er oder der andere + 'Blockieren' eingestellt hat, oder +\layout Itemize + +wenn zwei Götter aufeinander treffen, die einander beide 'Neutral' gegenübersteh +en aber beide 'Blockiere' eingestellt haben. +\layout Standard + +Zu Kämpfen kann es nur dann kommen, wenn Avatare in ein Feld ziehen oder + wenn der Avatarstatus auf blockieren geändert wird. + Für jeden schon anwesenden Gott wird einzeln ermittelt, ob es zu einem + Kampf mit dem Neuankömmling kommt. + Es kann dabei durchaus zu mehreren parallel verlaufenden Kämpfen kommen, + die auch im Folgenden einzeln abgewickelt werden. + Wenn ein Avatar in ein Feld kommt, in dem er schon vertreten ist, löst + das nie einen Kampf aus. +\layout Standard + +Avatarkämpfe kosten 2 MP unabhängig von der Anzahl der beteiligten Avatare. + Wenn ein Gott nicht mehr genügend MP hat, darf der Gott noch auf sein Würfelglü +ck hofen, aber seine Avatare kämpfen nicht mehr mit. +\layout Standard + +Avatarkämpfe dauern länger als die Kämpfe der Erdlinge; und da Avatare sehr + schnell sein können, kann man eventuell auch noch aus einiger Entfernung + Kräfte hinzuziehen. + Man darf Avatare nicht aus einem umkämpften Feld wegziehen, auch wenn man + an keinem der Kämpfe beteiligt ist. + +\layout Standard + +Sollte im selben Feld bereits ein Erdlingskampf stattfinden, so wird der + Avatarkampf bis nach dem Erdlingskampf verschoben. + +\layout Standard + +Jeder Avatar zählt +4, und es wird ganz normal gewürfelt. + Der Verlierer verliert die Hälfte der Avatare des Gewinners und der Gewinner + verliert ein Viertel der Avatare des Verlierers. + Bei einem unentschieden gelten beide Seiten als Verlierer. + Die Seelen sterbender Avatare fahren in eventuell anwesende Krieger des + Feldeigentümers und machen diese zu Helden. + Alle Avatare des Verlierers die danach noch im Feld sind werden an den + Ort der Avatarerschaffung zurückteleportiert. +\layout Standard + +Avatare, die in einem Götterkampf beschäftigt sind, dürfen keine Erdlinge + bei ihren Kämpfen unterstützen. +\layout Subsection* + +Die letzte Schlacht +\layout Standard + +In der letzten Schlacht wird nicht gewürfelt. + Es zählen nur die Kampfwerte: +\layout Standard +\added_space_top 0.3cm \added_space_bottom 0.3cm \align center + +\begin_inset Tabular + + + + + + +\begin_inset Text + +\layout Standard + +Einheit +\end_inset + + +\begin_inset Text + +\layout Standard + +Kampfwert +\end_inset + + + + +\begin_inset Text + +\layout Standard + +Avatar +\end_inset + + +\begin_inset Text + +\layout Standard + ++7 +\end_inset + + + + +\begin_inset Text + +\layout Standard + +Geist eines Helden +\end_inset + + +\begin_inset Text + +\layout Standard + ++1 +\end_inset + + + + +\end_inset + + +\layout Standard + +Für die Geister der Helden zählt der angebetete Gott. + Diese Helden kämpfen also immer noch für ihren Gott, auch wenn der Erdling + inzwischen längst vom Glauben abgefallen ist. +\layout Section + +Timing +\layout Standard + +Alle Aktionen dauern unterschiedlich lange. + Dabei gibt es in jedem Spiel eine einstellbare Spielgeschwindigkeit, mit + der die Werte unten multipliziert werden. + Die Zahlen in der Tabelle können also sowohl Minuten als auch Tage meinen, + je nachdem wie schnell man spielt. + Die Spielgeschwindigkeit kann sich auch während eines Spieles ändern. + Es kann zum Beispiel sinnvoll sein, das Spiel am Anfang langsamer laufen + zu lassen, bis eine angemessene Anzahl Mitspieler eingestiegen ist. + Jede Änderung der Spielgeschwindigkeit wird rechtzeitig vorher bekannt + gegeben und sollte nicht zu apprupt erfolgen. +\layout Standard + + +\begin_inset Tabular + + + + + + +\begin_inset Text + +\layout Standard + +Aktion +\end_inset + + +\begin_inset Text + +\layout Standard + +Dauer +\end_inset + + + + +\begin_inset Text + +\layout Standard + +Krieger bewegen +\end_inset + + +\begin_inset Text + +\layout Standard + +10 +\end_inset + + + + +\begin_inset Text + +\layout Standard + +Priester bewegen +\end_inset + + +\begin_inset Text + +\layout Standard + +12 +\end_inset + + + + +\begin_inset Text + +\layout Standard + +Held bewegen +\end_inset + + +\begin_inset Text + +\layout Standard + +6 +\end_inset + + + + +\begin_inset Text + +\layout Standard + +Avatar bewegen +\end_inset + + +\begin_inset Text + +\layout Standard + +1 +\end_inset + + + + +\begin_inset Text + +\layout Standard + +Erdlingskampf +\end_inset + + +\begin_inset Text + +\layout Standard + +6 +\end_inset + + + + +\begin_inset Text + +\layout Standard + +Avatarkampf +\end_inset + + +\begin_inset Text + +\layout Standard + +10 +\end_inset + + + + +\begin_inset Text + +\layout Standard + +Tempel bauen +\end_inset + + +\begin_inset Text + +\layout Standard + +3, 6 , 9, ... +\end_inset + + + + +\begin_inset Text + +\layout Standard + +Überfluten +\end_inset + + +\begin_inset Text + +\layout Standard + +20 +\end_inset + + + + +\begin_inset Text + +\layout Standard + +Bewegen mit Arche +\end_inset + + +\begin_inset Text + +\layout Standard + +5 +\end_inset + + + + +\begin_inset Text + +\layout Standard + +Krieger produzieren +\end_inset + + +\begin_inset Text + +\layout Standard + +40 + N (20) +\end_inset + + + + +\begin_inset Text + +\layout Standard + +Priester produzieren +\end_inset + + +\begin_inset Text + +\layout Standard + +40 +\end_inset + + + + +\begin_inset Text + +\layout Standard + +Glücksfaktor verändern +\end_inset + + +\begin_inset Text + +\layout Standard + +5 +\end_inset + + + + +\begin_inset Text + +\layout Standard + +Avatarstatus ändern +\end_inset + + +\begin_inset Text + +\layout Standard + +1 +\end_inset + + + + +\begin_inset Text + +\layout Standard + +Arche bauen +\end_inset + + +\begin_inset Text + +\layout Standard + +30 +\end_inset + + + + +\begin_inset Text + +\layout Standard + +Beten +\end_inset + + +\begin_inset Text + +\layout Standard + +10 +\end_inset + + + + +\begin_inset Text + +\layout Standard + +alle anderen Aktionen +\end_inset + + +\begin_inset Text + +\layout Standard + +0 +\end_inset + + + + +\end_inset + + +\layout Standard + + +\begin_inset ERT +status Collapsed + +\layout Standard + +\backslash +medskip +\end_inset + + +\layout Section + +Spielanfang +\layout Standard + +Die Götter starten mit 33 Mana. + Sie sollten daher zusehen, dass sie möglichst bald Priester erzeugen, damit + diese Tempel bauen können, die wieder Priester produzieren und damit wieder + Mana. + Dafür ist eine Kooperation mit mindestens einem Erdling nötig. +\layout Standard + +Die Erdlinge stehen am Anfang vor der Entscheidung, wo sie ihre ersten Krieger + hinschicken sollen. + Dies kann zum Beispiel auf ein Tempelfeld sein, weil man davon ausgeht, + dass der Krieger in einen Priester umgewandelt wird. + Außerdem ist es ratsam, sich früh mit seinen Nachbarn abzusprechen, wer + welchen Tempel baut. + Ansonsten kann es zu unliebsamen Überraschungen kommen, die einen gleich + die ersten Krieger verlieren lassen! +\layout Standard + +Der Glücksfaktor ist am Anfang auf seinem Minimalwert von 3. +\layout Standard + +Götter, die nachträglich einsteigen, erhalten etwas Bonusmana pro vergangener + Zeiteinheit. + Erdlinge, die neu einsteigen, profitieren davon, dass ihre Heimatstadt + schon die ganze Zeit Krieger produziert hat. +\layout Section + +Spielende (nur teilweise implementiert) +\layout Standard + +Das Spiel endet, sobald alle Tempel gebaut wurden. + Mit dem Baubefehl des letzten Tempels wird allen Spielern bekanntgegeben, + wie lange das Spiel noch dauert. + Dann gibt es kein Zurück mehr. +\layout Standard + +Es gewinnt der Erdling, der die meisten Städte sein eigen nennt. + Dabei zählen besetzte feindliche Heimatstädte und verseuchte Städte mit. + Bei gleicher Anzahl Städte entscheidet die Gesamtkampfstärke des Erdlings. + Sollte die auch gleich sein, wird gewürfelt. + +\layout Standard + +Der Gott, der in der letzten Schlacht die meisten Kräfte auf sich vereint, + gewinnt. + Dabei muss kein Mana mehr ausgegeben werden und es wird auch nicht mehr + gewürfelt. + Sollte die letzte Schlacht unentschieden ausgehen, zählen die Anzahl lebender + Avatare. + Wenn diese auch gleich sind, die Anzahl der Tempel. + Wenn dann immer noch Gleichstand herrscht, zählt das übrige Mana. + Sollte wider erwarten selbst dieses gleich sein, wird am Ende doch noch + gewürfelt. +\layout Standard + +Alle Spieler erhalten zum Abschluss eine Rangliste und den Ausgang der letzten + Schlacht. +\layout Standard + +Mit jedem Spiel kann man Punkte für die ewige Bestenliste sammeln, allerdings + nur als Sieger. + Zweite Plätze zählen nicht. +\layout Section + +FAQ +\layout Subsection* + +Was bedeutet +\shape italic +Aymargeddon +\shape default +? +\layout Standard + +Der Name des Spiels leitet sich von +\shape italic +Armageddon +\shape default + her. + Das wiederum basiert auf dem hebräischen +\shape italic +Har +\shape default +, was +\shape italic +Berg +\shape default + bedeutet, und der Ortschaft +\shape italic +Megeddon +\shape default +, bei der laut der Sage die letzte Schlacht geschlagen werden wird. + Da in unserem Spiel die letzte Schlacht auf einer Insel stattfindet, haben + wir +\shape italic +Har +\shape default + durch +\shape italic +Ay +\shape default + ersetzt, was +\shape italic +Insel +\shape default + bedeutet. + +\layout Standard + +Das +\begin_inset Quotes pld +\end_inset + +r +\begin_inset Quotes prd +\end_inset + + gehört da nicht wirklich hin, nein. + Aber wir haben das erst entdeckt, als wir die Domain schon bestellt hatten + und es klingt eh besser so, oder? Ausserdem gibt +\begin_inset Quotes pld +\end_inset + +Aymageddon +\begin_inset Quotes prd +\end_inset + + unanständige Suchergebnisse bei Google. +\layout Subsection* + +Heißt es +\shape italic +der +\shape default +, +\shape italic +die +\shape default +, oder +\shape italic +das +\shape default + Aymargeddon? +\layout Standard + +Kommt darauf an. +\layout Standard + +Wenn die Insel des Schicksals gemeint ist, heißt es +\shape italic +die +\shape default +, wenn das Spiel gemeint ist, heißt es +\shape italic +das +\shape default + und wenn der Server gemeint ist, heiß es +\shape italic +der +\shape default + Aymargeddon. +\layout Standard + +Das ist allerdings nur die Erdlingssicht. + Götter geben sich mit solch kleinlichen Geschlechterfragen nicht ab, wenn + es um Schicksalsfragen wie das Ende der Welt geht. +\layout Subsection* + +Gibt es Vorläufer zu Aymargeddon? +\layout Standard + +Das Spiel basiert auf einem - leider noch unveröffentlichten - Brettspiel + namens +\shape italic +Ragnarök +\shape default + beziehungsweise dem zugehörigen Play-by-E-Mail +\shape italic +Ragnarök als Pbem +\shape default +. + Beide Spiele hat Benni Bärmann entwickelt. + Die grundlegenden Konzepte sind erhalten geblieben. + Aber natürlich erforderte der geänderte Zugrhythmus und die höhere Spieleranzah +l einige Anpassungen. +\layout Subsection* + +Wie viel Zeit braucht Aymargeddon? +\layout Standard + +Das hängt von der Spielgeschwindigkeit ab. + +\layout Standard + +Bei niedriger Spielgeschwindigkeit braucht man sich nur gelegentlich einzuloggen +, um zu gucken, was es Neues gibt. + Dafür kann sich ein Spiel dann auch schon mal ein paar Monate hinziehen. + +\layout Standard + +Bei hoher Spielgeschwindigkeit sitzt man mehr oder weniger die ganze Zeit + vorm Rechner, dafür ist es dann aber auch nach ein paar Stunden vorbei. +\layout Standard + +Bei gleicher Spielgeschwindigkeit ist das Spiel als Gott tendenziell aufwendiger + als das als Erdling. + Als Erdling kann man fast sicher sein, nichts wichtiges zu verpassen, wenn + man sich so oft einloggt, wie ein Erdlingskampf dauert. +\layout Subsection* + +Was brauche ich, um mitspielen zu können? +\layout Standard + +Eigentlich nichts, außer einer funktionierenden E-Mail-Adresse und einem + üblichen Web-Browser. +\layout Standard + +Was man natürlich auch noch braucht, sind Spaß am Spiel, Verhandlungsgeschick, + etwas Zeit und ein bisschen Glück. +\layout Subsection* + +Wie sehen sinnvolle erste Züge als Erdling aus? +\layout Standard + +Man sollte sich auf jeden Fall möglichst bald mit den Göttern absprechen, + deren heilige Orte man sieht, beziehungsweise auf die Suche nach solchen + Orten gehen. + Danach sollte man möglichst Tempel bauen für die Götter, damit diese schnell + Mana kriegen, mit dem sie einen dann (hoffentlich) unterstützen. +\layout Standard + +Dabei ist es ratsam, auch die irdischen Nachbarn nicht zu vernachlässigen + und dafür zu sorgen, dass sie nicht in der Zwischenzeit alle strategisch + wichtigen Punkte unter sich aufteilen. +\layout Standard + +Wenn man erste Städte erobert hat, muß man sich überlegen ob man sofort + weiterzieht oder erst abwartet, bis dort ein Krieger erzeugt wird. + Im ersten Fall kommt man schneller voran und kann vieleicht weitere Städte + vor den Nachbarn erreichen, im zweiten Fall produziert man schneller neue + Krieger. +\layout Subsection* + +Wie sehen sinnvolle erste Züge als Gott aus? +\layout Standard + +Ein Gott sollte am Anfang hauptsächlich durch Verhandlungen abklären, welche + Erdlinge ihm möglichst bald Tempel auf seinen exklusiven heiligen Bergen + errichten. + +\layout Standard + +Bald kann man dann schon Avatare und möglicherweise sogar Helden erzeugen + und kriegt neues Mana. + +\layout Standard + +Es kann sinnvoll sein, die wertvollen Tempel mit Avataren zu schützen, damit + nicht kleinliche Streitereien zwischen Erdlingen den wertvollen Manastrom + verringern. +\layout Subsection* + +Können Erdlingsarmeen aneinander vorbeilaufen? +\layout Standard + +Ja. + +\layout Subsection* + +Gibt es nicht zu unausgewogene Startpositionen? +\layout Standard + +Gerade die Unausgewogenheit der Startpositionen zwingt zu Verhandlungen. + Deswegen werden die dafür relevanten Informationen (mit denen die Spieler + abschätzen können, wer führt) ja auch zur Verfügung gestellt. +\layout Subsection* + +Was passiert, wenn jemand aufhört? +\layout Standard + +Seine Einheiten bleiben einfach da stehen, wo sie sind, und rühren sich + nicht. + Krieger und Priester eines ausgestiegenen Erdlings werden aber noch weiterhin + erzeugt. + +\layout Standard + +Bei Göttern ist das lästiger als bei Erdlingen, da das Spielgleichgewicht + stärker beeinträchtigt wird. + Schön ist es natürlich in keinem Fall. + +\layout Standard + +Nichtaktive Spieler können jederzeit übernommen werden von Neueinsteigern. + +\layout Subsection* + +Was passiert, wenn ich eine Weile nicht ziehe? +\layout Standard + +Wenn das lange dauert, geht der Server davon aus, dass Du nicht mehr spielen + willst, und gibt Deine Einheiten zur Übernahme frei. + (noch nicht implementiert) +\layout Subsection* + +Soll ich einen Gott oder einen Erdling spielen? +\layout Standard + +Die Götterrolle ist die anspruchsvollere. + Man muß mehr verhandeln und hat mehr Möglichkeiten. + Das ist Vor- und Nachteil zugleich. + Ganz ohne Verhandlung wird man Aymargeddon nicht gewinnen können, aber + Leute, die nicht allzusehr auf Verhandlungen aus sind, sollten lieber eine + Erdlingsrolle übernehmen. + Man sollte auch nur einen Gott spielen, wenn man häufig online ist, da + Götteraktionen im allgemeinen weniger Zeit brauchen. +\layout Standard + +Beim Spielanfang kann man auch +\begin_inset Quotes pld +\end_inset + +egal +\begin_inset Quotes prd +\end_inset + + als gewünschte Rolle angeben. + Dann gibt einem der Server die Rolle, die dafür sorgt, dass das Zahlenverhältni +s 1:2 von Göttern zu Erdlingen annähernd erreicht wird. + Es kann auch vorkommen, dass in einem Spiel gar keine Erdlinge beziehungsweise + Götter mehr zugelassen sind, weil zu weit vom idealen Verhältnis abgewichen + wurde. +\layout Subsection* + +Gehören Städte, die ich einmal in Besitz genommen habe, mir auch noch, wenn + ich sie wieder verlasse? +\layout Standard + +Nein. + Alle Städte, die keine Heimatstädte sind, werden neutral, sobald kein aktiver + Priester, Krieger oder Held mehr in ihnen steht. + Heimatstädte gehören dem Spieler, dessen Heimat sie sind, jedoch auch, + wenn keine Einheiten dort stehen. + Heimatstädte verteidigen sich auch, ohne dass in ihnen Einheiten stehen + müssen. +\layout Subsection* + +Darf man mehrere Positionen im selben Spiel besetzen? +\layout Standard + +Nein, aber man darf in mehreren Spielen gleichzeitig mitspielen. +\layout Subsection* + +Warum sind Avatare wasserscheu? +\layout Standard + +Ist ja eigentlich schon etwas komisch, wo sie doch ansonsten so mächtig + sind. + Die Erklärung ist ganz einfach: Auf ihrer Reise zur Erde mussten sie entweder + in einem furchtbaren Gewitter auf einer Bergspitze erscheinen oder sich + von einer Insel ans nahe, rettende Ufer quälen. + Nach dieser Erfahrung hat niemand mehr Lust auf Wasser! +\layout Section* + +Copyright +\layout Standard + +(c) 2003, 2004, 2005 Aymargeddon Development Team +\layout Standard + +Permission is granted to copy, distribute and/or modify this document under + the terms of the GNU Free Documentation License, Version 1.1 or any later + version published by the Free Software Foundation; with no Invariant Sections, + with no Front-Cover Texts, and with no Back-Cover Texts. + A copy of the license is available at http://www.aymargeddon.de. +\the_end diff --git a/html/doc/Techdoc.lyx b/html/doc/Techdoc.lyx new file mode 100644 index 0000000..7614606 --- /dev/null +++ b/html/doc/Techdoc.lyx @@ -0,0 +1,823 @@ +#LyX 1.3 created this file. For more info see http://www.lyx.org/ +\lyxformat 221 +\textclass article +\language english +\inputencoding auto +\fontscheme default +\graphics default +\paperfontsize default +\spacing single +\papersize Default +\paperpackage a4 +\use_geometry 0 +\use_amsmath 0 +\use_natbib 0 +\use_numerical_citations 0 +\paperorientation portrait +\secnumdepth 3 +\tocdepth 3 +\paragraph_separation indent +\defskip medskip +\quotes_language english +\quotes_times 2 +\papercolumns 1 +\papersides 1 +\paperpagestyle default + +\layout Title + +Technisches zu +\begin_inset Quotes eld +\end_inset + +Die letzten Tage von Aymargeddon +\begin_inset Quotes erd +\end_inset + + +\layout Author + +Aymargeddon Development Team +\layout Date + +9.10.2003 +\layout Standard + + +\emph on +Warnung: Die Information in diesem Dokument ist zu nicht unerheblichen Teilen + veraltet. +\layout Section + +Generelles Design +\layout Standard + +Das Spiel besteht aus folgenden Komponenten: +\layout Enumerate + +Eine Relationale Datenbank +\layout Enumerate + +Ein Dämonprozess im Server +\layout Enumerate + +Serverseitige Scripten zur Benutzerinteraktion +\layout Enumerate + +Ein Weltengenerator +\layout Enumerate + +FROGS +\layout Enumerate + +Ein Programm, dass die Integrität der Datenbank überprüft +\layout Enumerate + +Eine Bibliothek für gemeinsame Funktionalität +\layout Standard + +Die Aufgaben dieser Komponenten stellen sich wie folgt dar: +\layout Section + +Datenbank +\layout Standard + +In dieser Datenbank wird der Zustand aller Spielwelten gespeichert. + Außerdem alle Spielerdaten, alle Spieleraktionen und alle Nachrichten an + Spieler. + Sie sorgt mittels ihrer Transaktionen dafür, dass auch bei konkurierendem + Zugriff die Datenintegrität immer erhalten bleibt. +\layout Standard + +Wir verwenden MySQL zur Implementierung und PhpMyAdmin zur Administrierung + der Datenbank. +\layout Standard + +Felder, die in vielen Tabellen vorkommen und immer wieder das selbe bedeuten: +\layout Description + +GAME Das ist die Id des Spiels. + Dadurch können alle Spiele in der selben Datenbank verwaltet werden. + Es kann maximal max(unsigned smallint) Spiele gleichzeitig geben. +\layout Description + +LOCATION Feldkoordinaten auf dem Hexraster-Torus. + Ein String der Form _. + Die maximale Größe der Welt ist max(unsigned smallint) für die Y-Koordinate + und max(unsingend smallint)*2 für die X-Koordinate. +\layout Description + +PLAYER,OWNER,... + Spieler-Ids. + Die Spieler-Ids bezeichnen den Spieler +\emph on +unabhängig +\emph default +von seiner Rolle. + Sie gilt spielübergreifend. + Die maximale Anzahl Spieler ist auf max(signed smallint) beschränkt. +\layout Subsection + +Bewegung und Kämpfe +\layout Standard + +Einheiten, die sich bewegen, bleiben im Feld stehen, werden aber auf nicht + available gesetzt. + Am Ende des Befehls werden sie in das neue Feld gesetzt. + Sie werden nur wieder aktiv, nachdem alle denkbaren Kämpfe ausgeführt wurden. +\layout Standard + +Kämpfe werden als Quasi-Befehl wieder in die Befehlsqueu geschrieben. + Erst nach Ablauf dieses Quasi-Befehls wird ausgewertet, welche Einheiten + auf welcher Seite am Kampf teilnehmen. +\layout Standard + +Einheiten, die sich zurückziehen, werden ganz normal bewegt. +\layout Subsection + +Tabelle MAP +\layout Standard + +Das ist die zentrale Karte. + Für jedes Feld in jedem Spiel gibt es genau einen Eintrag. +\layout Description + +HOME Eigentümer der Heimatstadt. + Das Feld ist -1, wenn es eine Heimatstadt ist, aber noch niemand spielt. +\layout Description + +OCCUPANT Besitzer des Feldes +\layout Description + +TERRAIN kann sein eins aus: WATER, CITY, MOUNTAIN, ISLE, PLAIN +\layout Description + +PLAGUE ist das Feld verseucht? Kann eine aus einer Liste von Seuchen sein +\layout Description + +ATTACKER Hier steht der leitende Erdling eines Angriffs drinnen so lange + gekämpft wird. + 0 sonst. + Man kann hier also auch ablesen, ob das Feld umkämpft ist. +\layout Description + +LAST_PRODUCE Zu dieser Zeit wurde zu letzt ein Krieger (bei Städten) bzw. + ein Priester (bei Tempeln) produziert. + Der Dämon entscheidet anhand dieser Daten, wann neue Einheiten produziert + werden. +\layout Description + +FLUXLINE Hier stehen die Richtungen, in die sich Avatare momentan kostenlos + bewegen können. + Die benachbarten Richtungen kosten 1 MP, alle anderen 2MP. + Dieses Feld wird bei einer Änderung der IdS für die gesamte Karte neu berechnet. +\layout Description + +TEMPLE Steht auf 'Y', wenn dort ein Tempel gebaut wurde, auf 'N' sonst. +\layout Subsection + +Tabelle MOBILE +\layout Standard + +In dieser Tabelle werden alle beweglichen Objekte abgespeichert. + Das sind also zunächst: Krieger, Helden, Priester, Avatare und Archen. + Dabei gibt es nur einen Eintrag für gleichartige Einheiten im selben Feld + im selben Spiel. +\layout Standard + +Manche Felder werden nur für manche Objekttypen benutzt. + Hier wird also ein bisschen Speicherplatz geopfert um die Struktur möglichst + einfach zu halten. +\layout Description + +ID Eine eindeutige ID. +\layout Description + +TYPE Ist einer aus WARRIOR, HERO, PRIEST, AVATAR, ARK +\layout Description + +OWNER Der Spieler, der die Einheit steuert +\layout Description + +ADORING Der Gott, den der Priester anbetet +\layout Description + +COUNT Anzahl +\layout Description + +AVAILABLE Wird auf 0 gesetzt, wenn die Einheit beschäftigt ist (sich also + z.B. + bewegt) +\layout Description + +STATUS Eines aus HELP, BLOCK, PEACE. + Avatarstatus. +\layout Subsection + +Tabelle COMMAND +\layout Standard + +In diese Tabelle tragen die Scripten die Aktionen der Spieler ein und der + Dämon führt diese dann aus. + Zusätzlich kommen hier auch noch die Quasi-Befehle des Dämons selber rein. + Das ist alles, wo er sich für später dran errinnern will. + Zur Zeit wird dieser Mechanismus nur für Kämpfe benötigt. +\layout Description + +TIME Die Zeit zu der das Kommando eingetragen wurde +\layout Description + +ACK Hier wird vermerkt, dass der Dämon das Kommando zur Kenntnis genommen + hat, aber noch nicht ausgeführt. + Das ist nötig weil bei vielen Kommandos schon am Anfang Nachrichten generiert + werden müssen, lange bevor sie ausgeführt werden. + Z.B. + erhalten die Eigentümer eines Feldes, in das man sich bewegt, eine Nachricht, + schon wenn man sich auf den Weg macht. +\layout Description + +DONE Hier werden abgearbeitete Befehle vermerkt +\layout Standard + +Alle drei Felder sind Timestamps und müssen immer GMT enthalten! +\layout Subsection + +Tabelle MESSAGE +\layout Standard + +In diese Tabelle trägt der Dämon Nachrichten an die Spieler ein und die + Scripten zeigen diese dann an. + Nachrichten an Alle Spieler müssen für jeden Spieler einzeln eingetragen + werden. + Wenn man es anders machen wollte, müsste man wiederum für jeden Spieler + vermerken, welche Nachrichten er nicht mehr sehen will, was fast auf das + selbe rauskommt. + +\layout Description + +TIME Der Zeitpunkt, an dem die Nachricht generiert wurde +\layout Description + +FROM Der Absender. + 0 bedeutet, dass es eine automatisch generierte Nachricht des Dämon ist. +\layout Description + +TO Der Empfänger +\layout Description + +TYPE Message, Error, Warning, ... +\layout Description + +MSG Die eigentliche Meldung. + Bzw. + ein Tag, dass erst noch lokalisiert werden muss (Siehe Tabelle LOCALIZE) +\layout Description + +ARG1...4 Die Argumente für die Lokalisierung. +\layout Subsection + +Tabelle GAME +\layout Standard + +Hier stehen allgemein Infos das Spiel betreffend. + Pro Spiel gibt es nur einen Eintrag. +\layout Description + +SIZE Die Größe des Spiels. + Höhe und halbe Breite des Spielfeldes. + Maximale Anzahl Erdlinge. +\layout Description + +FORTUNE Der Glücksfaktor +\layout Description + +LAST_TEMPLE Die LOCATION des letzten fertig gestellten Tempels. +\layout Description + +TEMPLE_SIZE Größe des nächsten Tempels. +\layout Subsection + +Tabelle PLAYER +\layout Standard + +Hier wird spielunabhängig gespeichert, was es alles über einen Spieler zu + wissen gibt. + Pro Spieler ein Eintrag. +\layout Subsection + +Tabelle ALLIANCE +\layout Standard + +Hier wird beschrieben welche Freunde und Feinde man hat. + Pro Spieler-Spieler-Relation in jedem Spiel höchstens ein Eintrag. + Status kann sein +\begin_inset Quotes eld +\end_inset + +FRIEND +\begin_inset Quotes erd +\end_inset + +, +\begin_inset Quotes eld +\end_inset + +FOE +\begin_inset Quotes erd +\end_inset + + oder +\begin_inset Quotes eld +\end_inset + +NEUTRAL +\begin_inset Quotes erd +\end_inset + +. + Wenn kein Eintrag vorhanden ist, wird neutraler Status angenommen. + +\layout Standard + +Man beachte dass Spieler A, Spieler B als Freund ansehen kann, wärend umgekehrt + Spieler B Spieler A als Feind betrachtet! +\layout Subsection + +Tabelle GOD +\layout Standard + +Hier werden Daten für die Götter gespeichert. + Pro Gott und Spiel ein Eintrag. +\layout Description + +DEATH_AVATAR Die Anzahl der für diesen Gott in diesem Spiel gestorbenen + Avatare +\layout Description + +DEATH_HERO dsgl. + für Helden +\layout Description + +ARRIVAL Hier entstehen neue Avatare. + Dieser Ort wird nach jedem Tempelbau diesen Gottes neu berechnet. +\layout Subsection + +Tabelle LOCALIZE +\layout Standard + +Mit Hilfe dieser Tabelle kann die Darstellung in verschiedenen Sprachen + erfolgen. +\layout Description + +TAG Der Eintrag mit dem man wiederkennt, um welche Message es sich handelt +\layout Description + +LANG Die Sprache des Eintrags. + Zur Zeit werden nur +\begin_inset Quotes eld +\end_inset + +DE +\begin_inset Quotes erd +\end_inset + + und +\begin_inset Quotes eld +\end_inset + +EN +\begin_inset Quotes erd +\end_inset + + unterstützt. +\layout Description + +TEXT Der Text der Nachricht in den einzelnen Sprachen. + Dabei wird mittels +\begin_inset Quotes eld +\end_inset + +%n +\begin_inset Quotes erd +\end_inset + + das n.te Argument eingefügt. + +\begin_inset Quotes eld +\end_inset + +%% +\begin_inset Quotes erd +\end_inset + + gibt ein Prozentzeichen aus. + +\layout Subsection + +Tabelle ROLE +\layout Standard + +Hier wird die Rolle eines Spielers in einem Spiel beschrieben. + Pro Mitspieler in jedem Spiel ein Eintrag. +\layout Section + +Dämon +\layout Standard + +Dieses Programm liest Spieleraktionen aus der Datenbank, berechnet die sich + daraus ergebenden Ereignisse und schreibt Nachrichten an die Spieler zurück + in die Datenbank. +\layout Standard + +Wir verwenden Perl 5.8 zur Implementierung des Servers. +\layout Section + +Scripten +\layout Standard + +Sie lesen den Zustand der Welt und die Nachrichten aus der Datenbank, halten + Session-Informationen vor und bereiten dies alles in HTML zur Darstellung + mittels eines üblichen Web-Browsers auf. + Schließlich schreiben sie die Aktionen des Benutzers in die Datenbank und + verändern den Aktivitätsstatus von beweglichen Einheiten. +\layout Standard + +Wir verwenden EmbPerl auf Apache zur Implementation. + Siehe: http://perl.apache.org/embperl/. + EmbPerl scheint genauso einfach und schnell zu sein wie PHP und hat für + uns den zusätzlichen Vorteil, dass wir gemeinsame Bibliotheken mit den + anderen Komponenten des Servers benutzen können. +\layout Subsection + +Seiten +\layout Standard + +Folgende Seitenlayouts werden benötigt. + Auf allen Seiten findet man ein Hauptmenu. + Auf Login und Home gibt es auch noch ein Aymaegeddon-Banner +\layout Description + +Login Hier gibt es neben News einen kurzen Einleitungstext sowie eine Möglichkei +t sich zu registrieren und mal in einem Fakespiel zu schnuppern. +\layout Description + +Home Liste aller Spiele, pro Spiel: Liste aller Nachrichten, aller Ereignisse, + Statistik +\layout Description + +Karte Aktuelles Feld, Beschreibung, Befehle +\layout Description + +Spieler Beschreibung des Spielers +\layout Description + +Rolle Beschreibung der Rolle +\layout Standard + +Feldnamen/-koordinaten sind überall immer zur Karte mit dem Feld als aktuellem + Feld verlinkt. + Rollennamen sind zu der entsprechenden Rollenseite verlinkt. +\layout Subsection + +Karte +\layout Standard + +Zentrale Komponente der Darstellung ist eine Karte des Hex-Torus. + Dazu werden 3 Tabellenzellen pro Feld verwendet, nämlich so: +\layout Standard +\added_space_bottom 0.3cm + +\layout Standard + +Diese Karte ist scrollbar. + Ein Feld ist immer als aktuelles Feld umrandet. +\layout Subsection + +Farbdarstellung +\layout Standard + +Wasserfelder blau, Landfelder, Archen und Inseln in Erdfarben. + Dabei gibt es 5 Farbtöne für eigene, befreundete, neutrale, feindliche + sowie unbesiedelte Felder. + Tempel und Avatare werden in 5 verschiedenen Götterfarben (eher grell) + dargestellt, wieder je eine für eigene, befreundete, feindliche sowie neutrale + Götter. + Die +\begin_inset Quotes eld +\end_inset + +eigene +\begin_inset Quotes erd +\end_inset + + Farbe kann auf andere Erdlinge/Götter verändert werden. + +\layout Subsection + +Icons +\layout Standard + +Folgende Icons werden benötigt. +\layout Standard + +Zentriert: +\layout Itemize + +IdS +\layout Itemize + +Eigentum auf Wasser (Schiff) +\layout Itemize + +Städte +\layout Itemize + +Tempel +\layout Itemize + +Heimatstädte +\layout Itemize + +Inseln +\layout Itemize + +Berge +\layout Standard + +Nicht zentriert: +\layout Itemize + +Avatare (oben bis zu vier) +\layout Itemize + +Archen (unten, nur eine) +\layout Itemize + +Kampf (unten) +\layout Itemize + +Avatarkampf (oben) +\layout Section + +Weltengenerator +\layout Standard + +Dieses Programm wird einmal zu Beginn eines neuen Spiels aufgerufen um eine + neue Welt in der Datenbank zu generieren. + Der Generator verteilt die verschiedenen Geländetypen: Wasser, Manapol, + Insel, Berg, Stadt, Heimatstadt, Land. + Er erhält die Anzahl der Erdlinge als Parameter und ermittelt alle anderen + Werte daraus. + +\layout Standard + +Die Game-ID kann automatisch als die erste Freie in der DB ermittelt werden. + Dieses Programm sollte als erstes entwickelt werden, damit man eine sinnvolle + Testumgebung für die anderen Teile des Systems hat. +\layout Standard + +Wir verwenden Perl 5.8 zur Implementation. +\layout Section + +FROGS +\layout Standard + +FROGS steht für +\series bold +F +\series default +ramework for +\series bold +R +\series default +ealtime +\series bold +O +\series default +nline +\series bold +G +\series default +ames of +\series bold +S +\series default +trategy. + Dort werden alle Funktionalitäten versammelt, die nicht nur von Aymargeddon, + sondern auch von anderen Browser-MMOGs verwendet werden können. + Das sind im einzelnen: +\layout Itemize + +Nachrichtenverwaltung +\layout Itemize + +Befehlsverwaltung +\layout Itemize + +Spielerverwaltung +\layout Itemize + +Spielverwaltung +\layout Itemize + +Rollenverwaltung +\layout Itemize + +Verschiedene Standardkarten (hier erstmal nur Hextorus) +\layout Itemize + +Bewegliche Einheiten +\layout Itemize + +Lokalisierung +\layout Itemize + +Sessionhandling +\layout Itemize + +Bestenlisten +\layout Itemize + +Datenbank +\layout Standard + +FROGS basiert dabei auf der Annahme, dass bestimmte Felder in bestimmten + Tabellen vorhanden sein müssen. + Außerdem werden die konkreten Funktionalitäten über Hooks in das Framework + eingehängt. + So wird z.B. + für jeden Befehl ein Name festgelegt mit drei Hooks: +\layout Description + +test Diese Funktion tested, ob der Befehl überhaupt ausführbar ist. +\layout Description + +ack Diese Funktion wird ausgeführt, wenn der Befehl zum ersten mal vom Dämon + zur Kenntnis genommen wird. +\layout Description + +do Diese Funktion führt schließlich den Befehl aus. + Dazu sind am Anfang noch weitere tests nötig. +\layout Standard + +Ziel für Frogs ist, dass man relativ einfach neue Browserspiele bauen kann. + Es wird auch ein Satz von Standardseiten in EmbPerl mitgeliefert mit denen + Funktionen wie Einloggen, Spielverwaltung, Bestenlisten etc. + schon vorhanden sind. +\layout Standard + +Hier noch eine Liste von FROGS-Modulen und was sie tun sollen: +\layout Description + +Map.pm Dies ist eine Basisklasse für alle denkbaren Topologien. + Jedes Modul einer abgeleiteten Klasse sollte auch eine Klasse Location + zur Verfügung stellen. + Außerdem müssen abgeleitete Klassen einige Funktionen mitbringen, damit + die in Map vorhandenen Funktionen funktionieren. +\layout Description + +HexTorus.pm Dies ist die von Aymargeddon verwendete Topologie. + Kann aber auch von anderen Spielen verwendet werden. + Abgeleitet von Map.pm. + Stellt auch die Klasse Location zur Verfügung. +\layout Description + +Checker.pm Hier werden die verallgemeinerbaren Funktionen des Checkers zur + Verfügung gestellt. +\layout Description + +Scheduler.pm Hier wird die Befehlsqueu durchgegangen und die oben definierten + Funktionen werden aufgerufen. +\layout Description + +Localize.pm Hier wird die Lokalisierung ausgeführt. +\layout Description + +DataBase.pm Hier werden Basisdatenbankfunktionalitäten zur Verfügung gestellt +\layout Description + +... + weitere Module noch unklar +\layout Standard + +Auch FROGS wird in Perl 5.8 bzw. + EmbPerl implementiert. +\layout Section + +Checker +\layout Standard + +Dieses Programm überprüft, ob die Daten in der Datenbank noch konsistent + sind. + Dabei werden die Checks zu algorithmisch ähnlichen Gruppen zusammengefasst + und durch allgemein Funktionen ausgeführt. + Bisher sind folgende Funktionen identifiziert worden: +\layout Enumerate + +Jeder Eintrag in Tabelle X muß auch in Tabelle Y existieren. + +\layout Enumerate + +N Einträge in der selben Tabelle müssen eine logische Beziehung erfüllen +\layout Standard + +Diese allgemeinen konfigurierbaren Check-Funktionen sollten auch Teil von + FROGS werden. +\layout Standard + +Der Checker überprüft im einzelnen (Zahlen beziehen sich auf obige Funktionslist +e): +\layout Itemize + +Jede Spielnummer muß in der Tabelle GAME zu finden sein (1). +\layout Itemize + +sämtliche Spieler-IDs müssen in ROLE zum selben Spiel passen (1). +\layout Itemize + +sämtliche Spieler-IDs müssen in PLAYER vorhanden sein (1). +\layout Itemize + +Location muß immer in MAP vorhanden sein. +\layout Itemize + +Location muß immer die kanonische Form haben (2). +\layout Itemize + +HOME nur gesetzt in MAP, wenn TERRAIN = CITY (desgl. + für GOD_HOME und MOUNTAIN) (2). +\layout Itemize + +Keine Zwei Erdlinge im selben Feld, außer es ist Kampf. +\layout Itemize + +Alle Einheiten in COMMANDS müssen inaktiv sein. +\layout Itemize + +Nur Priester ADORING in MOBILE (2). +\layout Itemize + +AVAIABLE immer kleiner oder gleich COUNT in MOBILE (2) +\layout Itemize + +Während eines Kampfes nur aktive Erdlinge eines Spielers im selben Feld. +\layout Itemize + +Keine blockenden Avatare von zwei feindlichen Spielern im selben Feld ohne + Kampf . +\layout Itemize + +Jedes Tag in MESSAGE sollte in LOCALIZE vorhanden sein. + Mindestens in einer Sprache. + Warnung, wenn nicht in jeder Sprache. +\layout Itemize + +Die Anzahl der Argumente in MESSAGES sollte mit den nicht doppelten %-Zeichen + in LOCALIZE übereinstimmen (für jede Sprache). + +\layout Itemize + +CREATE <= EXEC <= ACK <= DONE in COMMAND +\layout Standard + +Dieses Programm sollte möglichst früh entwickelt werden, da es vor allem + im Entwicklungsprozess benötigt wird. +\layout Standard + +Wir verwenden Perl 5.8 zur Implementation. +\layout Section + +Bibliothek +\layout Standard + +Hier werden alle Funktionalitäten versammelt, die von mindestens zwei der + Komponenten (Scripten, Generator, Dämon, Check) verwendet werden. + +\layout Standard + +Dabei bleiben in dieser Bibliothek nur Sachen, die nicht noch allgemeiner + sind und somit in den FROGS-Teil gehören. + Momentan ist noch unklar, ob da überhaupt was übrig bleibt. +\layout Standard + +Wir verwenden Perl 5.8 zur Implementation. +\layout Section + + +\lang german +Copyright +\layout Standard + + +\lang german +(c) 2003 Aymargeddon Development Team +\layout Standard + + +\lang german +Permission is granted to copy, distribute and/or modify this document under + the terms of the GNU Free Documentation License, Version 1.1 or any later + version published by the Free Software Foundation; with no Invariant Sections, + with no Front-Cover Texts, and with no Back-Cover Texts. + A copy of the license is available at http://www.aymargeddon.de. +\the_end diff --git a/html/doc/ay_ein_hex.fig b/html/doc/ay_ein_hex.fig new file mode 100644 index 0000000..ea108e2 --- /dev/null +++ b/html/doc/ay_ein_hex.fig @@ -0,0 +1,36 @@ +#FIG 3.2 +Landscape +Center +Metric +A4 +100.00 +Single +-2 +1200 2 +2 3 0 1 0 7 100 0 -1 0.000 0 0 0 0 0 7 + 4425 4177 5103 5348 6452 5349 7127 4177 6451 3006 5101 3009 + 4425 4177 +2 1 0 1 0 7 100 0 -1 0.000 0 0 -1 1 0 2 + 1 1 1.00 150.00 120.00 + 5847 2976 5895 2430 +2 1 0 1 0 7 100 0 -1 0.000 0 0 -1 1 0 2 + 1 1 1.00 150.00 120.00 + 4742 3668 4185 3420 +2 1 0 1 0 7 100 0 -1 0.000 0 0 -1 1 0 2 + 1 1 1.00 150.00 120.00 + 4752 4771 4050 5175 +2 1 0 1 0 7 100 0 -1 0.000 0 0 -1 1 0 2 + 1 1 1.00 150.00 120.00 + 5796 5327 5760 6075 +2 1 0 1 0 7 100 0 -1 0.000 0 0 -1 1 0 2 + 1 1 1.00 150.00 120.00 + 6777 4803 7398 5067 +2 1 0 1 0 7 100 0 -1 0.000 0 0 -1 1 0 2 + 1 1 1.00 150.00 120.00 + 6823 3599 7408 3262 +4 0 0 100 0 0 12 -0.0000 4 180 1440 3285 3195 Nordwesten (NW)\001 +4 0 0 100 0 0 12 -0.0000 4 180 1410 3105 5625 Suedwesten (SW)\001 +4 0 0 100 0 0 12 -0.0000 4 180 1260 7065 3150 Nordosten (NO)\001 +4 0 0 50 0 0 12 0.0000 4 180 930 5490 2250 Norden (N) \001 +4 0 0 50 0 0 12 0.0000 4 180 765 5355 6390 S\374den (S)\001 +4 0 0 100 0 0 12 -0.0000 4 180 1230 7155 5400 Suedosten (SO)\001 diff --git a/html/doc/design b/html/doc/design new file mode 100644 index 0000000..e8f5e51 --- /dev/null +++ b/html/doc/design @@ -0,0 +1,149 @@ +################# +Datenbankzugriffe +################# + +Alles, was einen SQL-Befehl beinhaltet sollte in +DataBase.pm. zusätzlich vielleicht auch noch sehr eng damit +zusammenhängende Funktionen. Alles abstraktere sollte in extramodule. + +Generelle Frage: +================ + +embperl sollte nur die aktionen überhaupt zur verfügung stellen, die +möglich sind (soweit zu diesem zeitpunkt bekannt). + +soll man darauf vertrauen, dass die embperlseite bestimmte sachen +schon abgetestet hat? oder muss man die alle nochmal auf serverseite +testen? Antwort: wohl ja, da sich zwischen eintragen in die +befehlsqueu und ausführung des befehls der spielstand verändert haben +kann. ausnahmen sind unten eingeklammert. + +Hier jetzt mal eine möglichst vollständige Liste aller +Datenbankzugriffe, als Grundlage für Designüberlegungen. + +Von Serverseite: +================ + +- lies alle aktuellen befehle +- schreibe message + +Alles, was trotz zeitverzögerung schon vorher von embperlseite +abgeklärt hätte werden können ist eingeklammert. + +einzelne befehle: +-------------------- +- passwort ändern (nicht in befehlsqueu sondern sofort?) + - authentifizieren + - schreiben in PLAYER + +- registrieren (nicht in befehlsqueu sondern sofort?) + - schreiben in PLAYER + +- abmelden (nicht in befehlsqueu sondern sofort?) + - authentifizieren + - löschen in PLAYER + +- status ändern + - test ob spieler vorhanden + - schreiben in ALLIANCE + +- anmelden in einzelnen spielen (nicht in befehlsqueu sondern sofort?) + - test ob spieler schon in spiel vorhanden + - schreiben in ROLE + +- abmelden aus spielen (nicht in befehlsqueu sondern sofort?) + - löschen aus ROLE +-------------------- +- erdlingsbewegen: + - (test ob manapol) + - test ob arche auf wasser + - test ob kampf + - test wer kämpft + - schreiben in MOBILE + - schreiben in MAP + - schreiben in COMMAND + +- tempel bauen: + - test ob tempelfeld des gottes (kann sich ändern wg. überschwemmung) + - test ob richtiger priester da + +- sterbereihenfolge: + - (testen ob reihenfolge gültig) + - schreiben in EARTHLING [ACHTUNG: neue Tabelle!] + +- gott für tote helden festlegen: + - testen ob gott gültig + - schreiben in EARTHLING +-------------------- +- bei allen gottbefehlen: testen ob manna reicht + +- avatar erschaffen: + - ort ermitteln aus MAP und MOBILE + - schreiben in MOBILE + +- held weihen + - testen ob held noch vorhanden (und aktiv?) + - schreiben in MOBILE + +- priester erleuchten + - testen ob krieger noch vorhanden (und aktiv?) + - testen ob sichtrecht + - schreiben in MOBILE + +- avatare bewegen + - ähnlich wie erdlingsbewegen nur zusätzliche tests + - avatarstatus beachten (evntl. verändern) + +- verseuchen + - noch unklar, weil seuchen noch unklar + +- sintfluten + - test ob benachbartes wasserfeld + - liest und schreibt aus MAP + +- avatarstatus ändern + - testen ob avatar da. + +- tempel zerstören + - ... + +- glücksfaktor verändern + - ... + +- arche bauen + - ... + +Von Clientseite: +================ + +- authentifizieren +- liste aller spiele +- liste aller spiele mit freien positionen (mit rolle) +- liste aller spieler +- liste aller rollen pro spiel +- infos ueber einen spieler +- infos ueber eine rolle eines spielers in einem spiel + +- karte lesen (sichtregeln beachten!) +- infos ueber ein feld lesen (auch aus MOBILE) (sichtregeln beachten!) + +- liste der möglichen befehle in einem feld ermitteln + (vielfältige tests, viele davon stehen oben bei den serverbefehlen) + +- liste aller nachrichten +- liste aller nachrichten ein feld betreffend + +Von create.pl: +============== + +- lies das erste leere spiel aus GAME +- schreibe in MAP + +Von checker.pl: +=============== + +- sehr spezielle einzelne zugriffe (Check.pm selbst definiert keine +Struktur) + + + diff --git a/html/doc/pdf-tip b/html/doc/pdf-tip new file mode 100644 index 0000000..b954654 --- /dev/null +++ b/html/doc/pdf-tip @@ -0,0 +1,75 @@ +From Martin.Spott@uni-duisburg.de Tue Jul 6 17:06:05 1999 +From: Martin Spott +Newsgroups: de.comp.os.unix.apps,de.comp.text.tex +Subject: Re: tex -> pdf +Date: 24 Jun 1999 18:59:57 GMT +Organization: home +Lines: 24 +Message-ID: <7ktv7d$p59$1@foehn.quickstep.cologne.de> +References: <7kskei$6hb$1@narses.hrz.tu-chemnitz.de> <3771ECC7.C1F5FDA2@starship.python.net> +NNTP-Posting-Host: foehn.quickstep.cologne.de +X-Trace: foehn.quickstep.cologne.de 930250797 25769 192.168.48.2 (24 Jun 1999 18:59:57 GMT) +X-Complaints-To: usenet@foehn.quickstep.cologne.de +NNTP-Posting-Date: 24 Jun 1999 18:59:57 GMT +X-Newsreader: TIN [UNIX 1.3 unoff BETA 970705; sun4m SunOS 5.5.1] +Path: nntp.server.uni-frankfurt.de!grapool30.rz.uni-frankfurt.de!News.Uni-Marburg.DE!news-fra1.dfn.de!news-kar1.dfn.de!akk.uni-karlsruhe.de!news.cologne.de!quickstep.cologne.de!not-for-mail +Xref: nntp.server.uni-frankfurt.de de.comp.os.unix.apps:2328 de.comp.text.tex:41798 + +In de.comp.os.unix.apps Berthold H?llmann wrote: + +> 7. latex ; dvipdf ? + +Ist das dasselbe wie das 'dvipdfm', welches ich hier rumfliegen habe ? + +Beim Weg ueber 'dvips' respektive ueber DVI im Allgemeinen ist vor allem +darauf Acht zu geben, dass ausschliesslich Type1-Fonts im TeX-Dokument +verwendet werden. Wie genau das geht, habe ich nicht mehr im Kopf, es gibt +aber wohl irgeneinen Switch im 'dvips' und die dazugehoerigen TeX-Fonts im +Type1-Format. Beruecksichtigt man das nicht, dann sieht das PDF-Dokument vor +allem auf dem Bildschirm ausgesprochen haesslich aus und der Aufbau einer +Seite im Acrobat Reader dauert ungefaehr die fuenffache Zeit vom dem, was es +mit Type1-Fonts gebraucht haette, weil dann Bitmap-Fonts in das Dokument +eingebaut werden. Die eignen sich vielleicht zu allem moeglichen, aber mit +Sicherheit nicht fuer eine skalierbare Darstellung auf verschiedenen +Ausgabemedien. + +Derleit haessliche Dokumente kursieren leider zuhauf .... + +Martin. +-- + Unix _IS_ user friendly - it's just selective about who its friends are ! +-------------------------------------------------------------------------- + + +From Martin.Spott@uni-duisburg.de Tue Jul 6 17:06:14 1999 +From: Martin Spott +Newsgroups: de.comp.os.unix.apps,de.comp.text.tex +Subject: Re: tex -> pdf +Date: 24 Jun 1999 20:04:25 GMT +Organization: home +Lines: 13 +Message-ID: <7ku309$q35$1@foehn.quickstep.cologne.de> +References: <7kskei$6hb$1@narses.hrz.tu-chemnitz.de> <3771ECC7.C1F5FDA2@starship.python.net> <7ktv7d$p59$1@foehn.quickstep.cologne.de> +NNTP-Posting-Host: foehn.quickstep.cologne.de +X-Trace: foehn.quickstep.cologne.de 930254665 26725 192.168.48.2 (24 Jun 1999 20:04:25 GMT) +X-Complaints-To: usenet@foehn.quickstep.cologne.de +NNTP-Posting-Date: 24 Jun 1999 20:04:25 GMT +X-Newsreader: TIN [UNIX 1.3 unoff BETA 970705; sun4m SunOS 5.5.1] +Path: nntp.server.uni-frankfurt.de!grapool30.rz.uni-frankfurt.de!News.Uni-Marburg.DE!news-fra1.dfn.de!fu-berlin.de!news.cologne.de!quickstep.cologne.de!not-for-mail +Xref: nntp.server.uni-frankfurt.de de.comp.os.unix.apps:2329 de.comp.text.tex:41800 + +In de.comp.os.unix.apps Martin Spott wrote: + +> darauf Acht zu geben, dass ausschliesslich Type1-Fonts im TeX-Dokument +> verwendet werden. Wie genau das geht, habe ich nicht mehr im Kopf, es gibt +> aber wohl irgeneinen Switch im 'dvips' und die dazugehoerigen TeX-Fonts im +> Type1-Format. [...] + +.... oder jedenfalls die CM-Fonts, + +Martin. +-- + Unix _IS_ user friendly - it's just selective about who its friends are ! +-------------------------------------------------------------------------- + + diff --git a/html/doc/push_rules b/html/doc/push_rules new file mode 100644 index 0000000..9ce50ca --- /dev/null +++ b/html/doc/push_rules @@ -0,0 +1,6 @@ +# tth -t -e2 Regeln.tex +# mv Regeln.tex ./+Regeln.tex +mv Regeln.html ./+Regeln.html +mv Regeln.pdf ./+Regeln.pdf +scp ./+Regeln.html benni@aymargeddon.de:aymargeddon/current/doc/ +scp ./+Regeln.pdf benni@aymargeddon.de:aymargeddon/current/doc/ diff --git a/html/field.epl b/html/field.epl new file mode 100644 index 0000000..05a1478 --- /dev/null +++ b/html/field.epl @@ -0,0 +1,222 @@ + + + + +[$ if exists $fdat{'x'} and exists $fdat{'y'} $] + [- $udat{-loc} = $fdat{'x'}.'_'.$fdat{'y'}; -] +[$ endif $] + +[$ if exists $udat{-id} and exists $udat{-game} and $udat{-loc} $] + +[- + use FROGS::HexTorus; + use Aymargeddon; + + my $game = $udat{-game}; + my $user = $udat{-id}; + my $loc = $udat{-loc}; + + my $db = DataBase->new(); + my $aym = Aymargeddon->new($game,$user,$db); + $db->set_language($udat{-lang}); + + # maybe you cant see this field (for hackers, which try to look direct + # in the field via url) + unless ($aym->sight_of_field($loc)){ + print OUT "Mogeln gildet nich!\n"; + } else { + + my ($ter,$own,$occ,$temple,$plague) = + $aym->read_field('TERRAIN,HOME,OCCUPANT,TEMPLE,PLAGUE',$loc); + + ##################### + # general field info + ##################### + + $out .= $db->loc('FIELD_'.$ter).' '.Location::pretty($loc).' '. + $db->loc('PREP_IS_SG').' '; + if ($occ) { + $out .= $db->loc('OCCUPIED').' '; + if ($occ==$user) { + # it is our own field + $out .= $db->loc( ($aym->gender($occ) eq 'PLURAL') ? + 'PPRO_DAT3_PL' : 'PPRO_DAT3_SG' ); + } else { + # the field belongs to someone else + $out .= $db->loc('ART_DAT_PL').' ' if $aym->gender($occ) eq 'PLURAL'; + $out .= $aym->charname($occ).' ('.$aym->relation_string($occ). + ', '. + $db->loc('SEND_MESSAGE').')'; + } + } else { + $out .= $db->loc('NOT_OCCUPIED'); + } + $out .= ".\n"; + + if ($own > 0) { + # some fields have some specials + if ($ter eq 'CITY') { + $out .= $db->loc('HOMECITY'); + } elsif ($temple eq 'Y') { + $out .= $db->loc('TEMPLE'); + } elsif ($ter eq 'MOUNTAIN') { + $out .= $db->loc('HOMEHOLY'); + } + if($ter ne 'ISLE' or $temple eq 'Y'){ + $out .= ' '.$db->loc('PREP_OWN_SG').' '; + if ($own==$user) { + $out .= $db->loc( ($aym->gender($own) eq 'PLURAL') ? + 'PPRO_DAT3_PL' : 'PPRO_DAT3_SG' ); + } elsif ($occ == $own) { + my $gen = $aym->gender($own); + $out .= $db->loc( ($gen eq 'PLURAL') ? 'PPRO_DAT_PL' : + (($gen eq 'MALE') ? 'PPRO_DAT_M' : 'PPRO_DAT_F') ); + } else { + $out .= $db->loc('ART_DAT_PL').' ' if $aym->gender($own) eq 'PLURAL'; + $out .= $aym->charname($own).' ('.$aym->relation_string($own). + ', '. + $db->loc('SEND_MESSAGE').')'; + } + $out .= '.'; + } + } + $out .= $db->loc('PLAGUE_IN_FIELD',lc($plague)) if $plague; + $out .= "

\n"; + + ################### + # show the mobiles + ################### + + $mob = $aym->mobiles_available($loc); + $mobcount = $#{@$mob}+1; + + if ($mobcount) { + $out .= $db->loc('ADJ_HERE').' '; + $out .= $db->loc( ($mobcount == 1 and @{$mob->[0]}[4] == 1) ? + 'PREP_IS_SG' : 'PREP_IS_PL' ); + + $out .= ($mobcount > 1) ? ":\n

" : ' '; + foreach $i (0..$mobcount-1) { + my ($oid,$otype,$oown,$oado,$ocnt,$ostat,$omove) = @{$mob->[$i]}; + # check for MOVE_WITH + next if $omove; + $out .= $aym->mobile_to_html( $loc,$own,$occ,$temple,$ter, @{$mob->[$i]}); + + my $transports = 0; + foreach $j (0..$mobcount-1) { + ($xid,$xtype,$xown,$xado,$xcnt,$xstat,$xmove) = @{$mob->[$j]}; + if ($xmove == $oid) { + if (!$transports) { + $out .= ', '.$db->loc('MSG_TRANSPORTS').":

    \n"; + $transports = 1; + } + $out .= '
  • '. + $aym->mobile_to_html( $loc,$own,$occ,$temple,$ter, @{$mob->[$j]})."
  • \n"; + } + } + if ($transports) { + $out .= '
'; + } else { + $out .= ($i < $mobcount-1) ? ',' : '.'; + $out .= "\n

"; + } + } # end foreach $mobcount + } + + ################################## + # general commands for this field: + ################################## + + if ($aym->is_earthling($user)) { + $out .= "\n

". + $db->loc('CMD_DIE_ORDER').''; + } + if ($aym->is_god($user)) { + if ($aym->is_arrival($loc)) { + $out .= "\n

". + $db->loc('CMD_INCARNATE').''; + } + if($aym->is_coast($loc)){ + $out .= "\n

". + $db->loc('CMD_BUILD_ARK').''; + if($ter ne 'CITY'){ + $out .= "\n

". + $db->loc('CMD_FLOOD').''; + } + } + $out .= "\n

". + $db->loc('CMD_PLAGUE').''; + $out .= "\n

".$db->loc('CMD_CH_LUCK').''; + } + + ############################# + # show events for this field + ############################# + + $events = $aym->field_events($loc); + #use Data::Dumper; + #print OUT Dumper $events; + $out .= "\n

".$db->loc('PLAYER_EVENTS')."

\n" if %$events; + for my $ev ( keys %$events) { + $out .= $aym->show_event($ev, 0) .'

'; + } + + ############################ + # show unavailable units + ############################ + + # mobile info: + #$mob = $aym->mobiles_available($loc,-1); + #$mobcount = $#{@$mob}+1; + + #if ($mobcount) { + # $out .= '

'; + # $out .= ' '.$db->loc('UNAVAILABLE_UNITS').":

"; + # foreach $i (0..$mobcount-1) { + # ($oid,$otype,$oown,$oado,$ocnt,$ostat) = @{$mob->[$i]}; + # $out .= $ocnt.' '; + # if ($oown == $user) { + # $out .= $db->loc('PREP_OWN_PL').' '.$aym->mobile_string($otype,2); + # if ($otype eq 'PRIEST' or $otype eq 'PROPHET') { + # $out .= $db->loc('ADJ_ADORING').' '.$aym->charname($oado); + # } elsif ($otype eq 'HERO') { + # $out .= $db->loc('ADJ_ADORING'); + # $out .= $aym->charname($oado).''; + # } elsif ($otype eq 'AVATAR') { + # $out .= $aym->mobile_string($ostat,1); + # } + # } else { + # $out .= $aym->mobile_string($otype, $ocnt); + # if ($otype ne 'ARK') { + # $out .= ' '.$db->loc('PREP_OWN_SG').' '; + # $out .= $db->loc('ART_DAT_PL').' ' if $aym->gender($oown) eq 'PLURAL'; + # $out .= $aym->charname($oown); + # } + # if ($otype eq 'PRIEST' or $otype eq 'PROPHET'or $otype eq 'HERO') { + # $out .= $db->loc('ADJ_ADORING').' '; + # if ($oado == $user) { + # $out .= $db->loc( ($aym->gender($user) eq 'PLURAL') ? + # 'PPRO_DAT3_PL' : 'PPRO_DAT3_SG'); + # } else { + # $out .= $aym->charname($oado); + # } + # } + # } + # $out .= ($i < $mobcount-1) ? ',' : '.'; + # $out .= "\n

"; + # } # end foreach $mobcount + #} + + print OUT $out; + } # unless sight + -] + +[$ else $] + + To view an Aymargeddon field, you must first login, + because we need to know which game to display and for whom. + +[$ endif $] + diff --git a/html/games.epl b/html/games.epl new file mode 100644 index 0000000..9f1b367 --- /dev/null +++ b/html/games.epl @@ -0,0 +1,12 @@ +[- use HTML::Embperl::Session; + +-] + +Hallo Spieler mit der Nummer +[+ + $udat{-id} + + +] + +hier zur Karte + \ No newline at end of file diff --git a/html/index.epl b/html/index.epl new file mode 100644 index 0000000..5626b93 --- /dev/null +++ b/html/index.epl @@ -0,0 +1,26 @@ + + + Aymargeddon + + +[- + + use FROGS::Config; + + $udat{-current} = 'index.epl'; + Execute("menu.epl"); + + $udat{-lang} = $::conf->{-DEFAULT_LANGUAGE} unless exists $udat{-lang}; + + if($udat{-lang} eq 'EN'){ + Execute("welcome_english.html"); + }elsif($udat{-lang} eq 'DE'){ + Execute("welcome_german.html"); + }else{ + Execute("welcome_english.html"); + } +-] + + + + diff --git a/html/language.epl b/html/language.epl new file mode 100644 index 0000000..9fe152c --- /dev/null +++ b/html/language.epl @@ -0,0 +1,45 @@ + + + +[- + use FROGS::DataBase; + $db = DataBase->new(); +-] + +[$ if exists $fdat{'lang'} $] + +[- + $udat{-lang} = $fdat{'lang'}; + $db->set_language($udat{-lang}); + + #set language in Database in PLAYER.LANGUAGE + my $player = $udat{-id}; + $db->update_hash('PLAYER',"PLAYER=$player",{'LANGUAGE' => $fdat{'lang'}}); + $db->commit(); + + # redirect to original page + $http_headers_out{'Location'} = $udat{-current}; + +-] + +[$ else $] + +[- + $db->set_language($udat{-lang}); + Execute("menu.epl"); +-] + +


+
+ + [+ $db->loc('LANG_WELCOME') +]:

+ + [+ $db->loc('LANG_ENGLISH') +]

+ [+ $db->loc('LANG_GERMAN') +]

+ + +

+ +[$ endif $] + + diff --git a/html/login.epl b/html/login.epl new file mode 100644 index 0000000..64990c3 --- /dev/null +++ b/html/login.epl @@ -0,0 +1,75 @@ + + + +[- + $udat{-current} = 'login.epl'; + + use FROGS::DataBase; + $db = DataBase->new(); + $db->set_language($udat{-lang}) if exists $udat{-lang}; + + if(exists $udat{-id}){ # we are logged in, so log out (deleting user-data) + delete $udat{-id}; + delete $udat{-game}; + } + + Execute("menu.epl"); + + $escmode = 0; +-] +
+ +[$ if $fdat{'mode'} eq 'register' $] [# register form #] + + [+ $db->loc('LOGIN_REG_FORM_HEAD') +]

+

+ [+ $db->loc('LOGIN_USERNAME') +]:

+ [+ $db->loc('LOGIN_REALNAME') +]:

+ [+ $db->loc('LOGIN_EMAIL') +]:

+ +

+ +[$ elsif defined $fdat{'newlogin'} $] [# validate data from register form #] + + [- $new_passwd = $db->new_account($fdat{'newlogin'}, + $fdat{'realname'}, + $fdat{'email'}, + $udat{-lang}); -] + [$ if $new_passwd $] + + [+ $db->loc('LOGIN_REG_OK_HEAD',$lang) +]

+ [+ $db->loc('LOGIN_USERNAME') +]: [+ $fdat{'newlogin'} +]

+ [+ $db->loc('LOGIN_REALNAME') +]: [+ $fdat{'realname'} +]

+ [+ $db->loc('LOGIN_EMAIL') +]: [+ $fdat{'email'} +]

+ [+ $db->loc('LOGIN_REG_OK_TAIL') +] + + [$ else $] + + [+ $db->loc('LOGIN_REG_ERROR') +]

+ + [$ endif $] + +

[+ $db->loc('LOGIN_REG_RETURN') +] + +[$ else $] [# ask for login-data or register #] + + [+ $db->loc('LOGIN_WELCOME') +]

+

+ [+ $db->loc('LOGIN_USERNAME') +]: + [+ $db->loc('LOGIN_PASSWORD') +]: +

+ [+ $db->loc('CHANGE_PASSWORD') +]: + + +

+ +

+ [+ $db->loc('LOGIN_REG_MSG') +] + [+$db->loc('LOGIN_REG_LINK')+]. + +[$ endif $] + + + diff --git a/html/map.epl b/html/map.epl new file mode 100644 index 0000000..b4ccad2 --- /dev/null +++ b/html/map.epl @@ -0,0 +1,249 @@ + + Aymargeddon Map + + +[$ if exists $udat{-id} and exists $udat{-game} $] + +[- + + # TODO: center relocation + # TODO: bug/feature setting y did not work with local variables + + use FROGS::DataBase; + use Aymargeddon; + use DBI; + my $game = $udat{-game}; + my $user = $udat{-id}; + + # look at MAP + my $db = Aymargeddon->new($game,$user); + my $dat = $db->get_map(); + + # create $map + # map[x][y][0] = background-color + # map[x][y][1] = occupant-color + # map[x][y][2] = type + # map[x][y][3] = owner-color + # map[x][y][4] = avatar-case + # map[x][y][5] = god-fight + # map[x][y][6] = earthling-fight /foreign earthling units approaching /plague + # map[x][y][7] = arc present + + $xmax = 0; $ymax = 0; + for my $row (@$dat){ + my ($loc,$ter,$own,$occ,$temple,$plague) = @$row; + + $loc =~ /^(\d+)_(\d+)$/; + ($x,$y) = ($1,$2); + $xmax = $x if $x > $xmax; + $ymax = $y if $y > $ymax; + + if(!$db->sight($loc)){ + $map[$x][$y][0] = 'B'; + $map[$x][$y][1] = 'B'; + $map[$x][$y][2] = ''; + $map[$x][$y][3] = ''; + $map[$x][$y][4] = 'X'; + next; + } + + if($ter eq 'POLE' or $ter eq 'AYMARGEDDON'){ + $map[$x][$y][1] = 'P'; + }elsif($occ==$user){ + $map[$x][$y][1] = 'O'; + }elsif($db->get_relation($occ) eq 'FRIEND' or $db->get_relation($occ) eq 'ALLIED'){ + $map[$x][$y][1] = 'F'; + }elsif($db->get_relation($occ) eq 'FOE' or $db->get_relation($occ) eq 'BETRAY'){ + $map[$x][$y][1] = 'E'; + }elsif($occ){ + $map[$x][$y][1] = 'N'; + }else{ + $map[$x][$y][1] = 'U'; + } + + $map[$x][$y][0] = ($ter eq 'WATER' or $ter eq 'ISLE') + ? 'W' : $map[$x][$y][1]; + + if($temple eq 'Y'){ + $map[$x][$y][2] = ($ter eq 'ISLE')?'I':'M'; + }elsif($ter eq 'CITY'){ + $map[$x][$y][2] = 'C'; + }elsif($ter eq 'ISLE' or $ter eq 'WATER'){ + $map[$x][$y][2] = 'W'; + }else{ + $map[$x][$y][2] = 'L'; + } + + $map[$x][$y][3] = 'U'; + + if($ter eq 'AYMARGEDDON'){ + $map[$x][$y][3] = 'A'; + }elsif($ter eq 'MOUNTAIN' or $ter eq 'ISLE' or $ter eq 'CITY'){ + if($map[$x][$y][2] eq 'W'){ + $map[$x][$y][3] = 'N'; # Isles without temple are always neutral + }elsif(!$own){ + $map[$x][$y][3] = 'B'; # Cities without owner are non-homecities + }elsif($own eq $user){ + $map[$x][$y][3] = 'O'; + }elsif($db->get_relation($own) eq 'FRIEND' or $db->get_relation($own) eq 'ALLIED'){ + $map[$x][$y][3] = 'F'; + }elsif($db->get_relation($own) eq 'FOE' or $db->get_relation($own) eq 'BETRAY'){ + $map[$x][$y][3] = 'E'; + }elsif($own){ + $map[$x][$y][3] = 'N'; + } + } + + $map[$x][$y][5] = $db->god_fight($loc) ? 'G':'U'; + $map[$x][$y][6] = $db->earthling_fight($loc) ? 'E': 'U'; + $map[$x][$y][7] = (($ter ne 'WATER' or !$occ) and $db->arc_present($loc)) ? 'A':'U'; + my $fea = $db->foreign_earthling_approaching($loc,$occ) ? 'F':'U'; + $map[$x][$y][6] = $map[$x][$y][6] eq 'E' ? 'E' : $fea; + if($map[$x][$y][6] eq 'U' and $plague){ + $map[$x][$y][6] = 'P'; + } + + $avatars = $db->avatar_present($loc); + ($own_avatar,$friend_avatar,$neutral_avatar,$enemy_avatar) = (0,0,0,0); + for my $a (@$avatars){ + $a = $a->[0]; + if($a == $user){ + $own_avatar = 1; + } + elsif($db->get_relation($a) eq 'FOE' or $db->get_relation($a) eq 'BETRAY'){ + $enemy_avatar = 1; + } + elsif($db->get_relation($a) eq 'FRIEND' or $db->get_relation($a) eq 'ALLIED'){ + $friend_avatar = 1; + } + else{ + $neutral_avatar = 1; + } + } + + if($own_avatar){ + if($enemy_avatar){ + $map[$x][$y][4] = '0'; + }elsif($neutral_avatar){ + $map[$x][$y][4] = '1'; + }elsif($friend_avatar){ + $map[$x][$y][4] = '2'; + }else{ + $map[$x][$y][4] = '3'; + } + }elsif($friend_avatar){ + if($enemy_avatar){ + $map[$x][$y][4] = '4'; + }elsif($neutral_avatar){ + $map[$x][$y][4] = '5'; + }else{ + $map[$x][$y][4] = '6'; + } + }elsif($enemy_avatar){ + if($neutral_avatar){ + $map[$x][$y][4] = '7'; + }else{ + $map[$x][$y][4] = '8'; + } + }elsif($neutral_avatar){ + $map[$x][$y][4] = '9'; + }else{ + $map[$x][$y][4] = ($map[$x][$y][5] eq 'U' and $map[$x][$y][6] eq 'U' and $map[$x][$y][7] eq 'U') + ? 'X' : 'U'; # don't use overlay icons if all are empy (to save space) + } + + } + + $xmax++;$ymax++; + + $xoff = $udat{-xoff}; + $yoff = $udat{-yoff}; + +-] + + + [$ foreach $yy (0..($ymax-1)) $] + + [$ foreach $xx (0..($xmax-1)) $] + [- $x = ($xx +$xoff) % $xmax; -] + [$ if not $xx % 2 $] + [- $y = ($yy +$yoff -($xx / 2)) % $ymax; -] + [$ if $map[$x][$y][4] eq 'X' $] + [$ if $map[$x][$y][1] eq 'B' $] + + [$ else $] + + [$ endif $] + [$ else $] + + [$ endif $] + [$ if not $yy $] + + [$ else $] + + [$ endif $] + [$ else $] + [$ if not $yy $] + + [$ if $xx==$xmax-1 $] + + [$ else $] + + [$ endif $] + [$ else $] + [$ if $xx==$xmax-1 $] + + [$ else $] + + [$ endif $] + [$ endif $] + [$ endif $] + [$ endforeach $] + + + [$ foreach $xx (0..($xmax-1)) $] + [$ if not $xx % 2 $] + [- $x = ($xx +$xoff +1)%$xmax; $y = ($yy +$yoff -($xx/2))%$ymax; -] + + [$ if $map[$x][$y][4] eq 'X' $] + [$ if $map[$x][$y][1] eq 'B' $] + + [$ else $] + + [$ endif $] + [$ else $] + + [$ endif $] + [$ if $xx==$xmax-2 $] + + [$ else $] + + [$ endif $] + [$ endif $] + [$ endforeach $] + + [$ endforeach $] + + + [$ foreach $xx (0..($xmax-1)) $] + [$ if $xx % 2 $] + [- $x = ($xx + $xoff) % $xmax; $y = ($ymax +$yoff -($xx/2))% $ymax; -] + + + + [$ endif $] + [$ endforeach $] +
+ +
+ +
+ +[$ else $] + + To view an Aymargeddon world-map, you must first login, + because we need to know which game to display and for whom. + +[$ endif $] + + diff --git a/html/map/Aymargeddon.ACT b/html/map/Aymargeddon.ACT new file mode 100644 index 0000000000000000000000000000000000000000..df137ca971c39c98cbccc433fc2c98f8070b94fb GIT binary patch literal 772 zcmZQzVEFU@=F3wiI~Jw6w=k?UWBC7G%;2)z2R89-+qN<2UMpnS^dAfuM!{$Z48IWI HW8eh}=2A`a-ZaVX m>tQz)pEb*--iy3v!?@s|Xu(9as=GkT89ZJ6T-G@yGywoj??uZ1 literal 0 HcmV?d00001 diff --git a/html/map/BBF.png b/html/map/BBF.png new file mode 100644 index 0000000000000000000000000000000000000000..d21f9b80af29be215c44c7938ed758af45ef7948 GIT binary patch literal 123 zcmeAS@N?(olHy`uVBq!ia0vp^!a%IV$P6UgcNDY(DYgKg5LY0*V^LbzDV{_i%fQpc zF{I*_>FM2^3=SLz0^G|@+zVMwYaco9$g{^tX^DXa6aP-GS`jw)gyVi9zh0Pg|I+;z S8Kep_l)=;0&t;ucLK6V$l_7or literal 0 HcmV?d00001 diff --git a/html/map/BBN.png b/html/map/BBN.png new file mode 100644 index 0000000000000000000000000000000000000000..e983887d9eb63b21a0cf41840a5c7f6b33135ebb GIT binary patch literal 186 zcmeAS@N?(olHy`uVBq!ia0vp^!a%IV!2~3YL`o+EDb50q$YKTtuGb*U*woD%1r*Hj zba4!+xV86!A>RQ79_K*q>nkL*{4O>Aj$g^moTbTPuJ-%-W~K|}bJ@kCPIl^KUSpUt zr{l&8_N$W;>Swb^C$8J%_)O@w;oQPIQTEcgRS}Jrsix0nOr6ObmRYwk?z3$7^|G6~ g&zkS1Zqv!XXKgL`Kq<^y3}`Qdr>mdKI;Vst0NqSLU;qFB literal 0 HcmV?d00001 diff --git a/html/map/BBO.png b/html/map/BBO.png new file mode 100644 index 0000000000000000000000000000000000000000..d3dba3ce7b3d31512eb5aee909b7bb53dfd1f4ae GIT binary patch literal 123 zcmeAS@N?(olHy`uVBq!ia0vp^!a%IV$P6UgcNDY(DYgKg5LY1m@|212*O?Q6ECWv$ z$B>F!rl)svGB|J?2yibqaW7;!t$pOYBhMZqr6mRyO#C~!YDL)G6OQ|d{CZ)|{Y&>> SWRNPzPzFy|KbLh*2~7Yd5F$zd literal 0 HcmV?d00001 diff --git a/html/map/BBP.png b/html/map/BBP.png new file mode 100644 index 0000000000000000000000000000000000000000..05c1aa34efdf9677203e7d5a08b11065b513c2db GIT binary patch literal 802 zcmV+-1Ks?IP) z000W>0fLJSS^xk7)Ja4^RCwB*l}(EsMHq#jw?4Z1V>*+NNeDB__^}KGoP-fv3Sw}P zAS(V2H~I&~AK=23AO>8>xNzpq^zE*XE*D*s3*I=nW7CT&=(o-}b9?p` zz#7iZu$DP+xu)(JJbB)wQuE*mpN@1Sq^Ggrd;b6M2g9aPa=q->UjJmA}D>$cJW|Iw)beg*^XloB0>gZ zPzI$@nmK6>pZ)u1vE;#f=9#LZuCW&9s2dKS@Y_#R4auAG_0lMdNaqS5P}fuyN|jEC z4N5Ux0h;$ep|0tBoI`7@rD--e)|N|NUafiWlwW@Y49CYsNeB!BAs~Xa8-QYwd9 zLxB75^4BXx*U`4rHO7z<9@u|R@`a$^JEgBzg8gm3 gt^pAs)@u;)TW(n@Z)tB>ofydPp00i_>zopr0CtuveE z000W>0fLJSS^xk7)Ja4^RCwB*l}(EsMHq#jw?4Z1V>*+NNeDB__^}KGoP-fv3Sw}P zAS(V2H~I&~AK=23AO>8>xNzpq^zE*XE*D*s3*I=nW7CT&=(o-}b9?p` zz#7iZu$DP+xu)(JJbB)wQuE*mpN@1Sq^Ggrd;b6M2g9aPa=q->UjJmA}D>$cJW|Iw)beg*^XloB0>gZ zPzI$@nmK6>pZ)u1vE;#f=9#LZuCW&9s2dKS@Y_#R4auAG_0lMdNaqS5P}fuyN|jEC z4N5Ux0h;$ep|0tBoI`7@rD--e)|N|NUafiWlwW@Y49CYsNeB!BAs~Xa8-QYwd9 zLxB75^4BXx*U`4rHO7z<0_kMr0ShgHF*cm@j>2(eRL(e^jXAUN2`qM&Z=x7^h zhNb_CT=_C3_v;Ux)z_X b_ZKm>?h%=^XGd8W&`JhRS3j3^P6d3Eoh**|P53ib}>#CX=$>c|n{&S1@?G`njxgN@xNAB#}qg literal 0 HcmV?d00001 diff --git a/html/map/BEF.png b/html/map/BEF.png new file mode 100644 index 0000000000000000000000000000000000000000..eae65fdcf457f331831a4c594526125ff5019e81 GIT binary patch literal 220 zcmeAS@N?(olHy`uVBq!ia0vp^!a%IV!2~3YL`o+EDb50q$YKTtuGb*U*woD%1r+S_ zba4!+xV884PQeBR0oDsw&)hg+q;n{2MWfJ~W~~_uIZi1kshJuuA9-4w^Y8gv!`%WG zOLM;O3{G9!a&6UA13iz|>a$#0Hs-1wGn>tD`|z4nV>M$L^{qlb=A4;lox7szZEn#G z#%KE0$8dF-{V^yrV(oKDX!VgO`2BQ;Prq literal 0 HcmV?d00001 diff --git a/html/map/BEN.png b/html/map/BEN.png new file mode 100644 index 0000000000000000000000000000000000000000..bdbd0188a73432051751a255c407d15985468a63 GIT binary patch literal 201 zcmeAS@N?(olHy`uVBq!ia0vp^!a%IV!2~3YL`o+EDb50q$YKTtuGb*U*woD%1r)6I zba4!+xV884M&1Sk9+!*$&l0$$*cK!ixFvCKOAz3aN^#mS*W#W3`;tlQ3>Mb}AFJ+} zzAcq)+21!AOm^GOec5<*S#xe;)XhCBIZr=1Yvr5z+>LwYjcd!=cn#`rN^CyUHk0*Q yLe~bZnYGMof4-C1c|rX4QIQ<|&nJJKFVdQ&MBb@0D~G)YybcN literal 0 HcmV?d00001 diff --git a/html/map/BEU.png b/html/map/BEU.png new file mode 100644 index 0000000000000000000000000000000000000000..b1cca5eff58420d162167101cf8c1e6763650fdb GIT binary patch literal 215 zcmeAS@N?(olHy`uVBq!ia0vp^!a%IV!2~3YL`o+EDb50q$YKTtuGb*U*woD%1r+S` zba4!+xV884ZqWt>9@Y!X=Wd;vY|&zUaY?y)TLO<(Rus3j15e|Ge{*M_KgsmKYTNHS z7bCQnY!#aL_2LeLi!2JszkMWc=W^W;Ow*1wnEBAe)8&)pOk4h20m9a|o^0THroTG* zTBPabLq%t8&UlI4Z^(XTo1OQfdv222nj>56ye7SG?cqLTxwfC*D=%-#uk|suKu0ln My85}Sb4q9e0HKLd@Bjb+ literal 0 HcmV?d00001 diff --git a/html/map/BEW.png b/html/map/BEW.png new file mode 100644 index 0000000000000000000000000000000000000000..a8a9111067a5c990c264f08e65a8bf2e7cdbde50 GIT binary patch literal 706 zcmV;z0zLhSP) z000W>0fLJSS^xk7bV)=(RCwB*ls!)sK@^6c`Pz?rA;Ex&Tw{npj1~|PG)ORNqQOpM zkF48A%$^WrSM9;Kx-Q*3Pvj@1V{D9rE~nU@zxQ(7&uoXN#v^ZkHWiPmHpX-Z;9 z+rWShNwh{Oq(BIOmDPc>omfO`gur{e!+WmWE`EOeZ_XO;agM4Y1VV_*ftb_x5F%oM zvZSu*+$^@foQ{=@jgjYsfO9y95D0-Z12FGAjUqKa{S>T5DYQmw(li#F zBmjA9fHOhL$P9tHj`6kQ+3Qoh)pWZEfpgR~Wl67xwXq+ETBp`|=@w;)we)(FC1u&S z$7rUPiti`)qa*~RL`sZ72&4p}LzP45e=}!RNK=eKsklWG);vR?Gh6)nbR4Szya%YN zNIra*lB%Yn83WiodMrzLz*&qxA^hl5Ubg zF{I*_>ES?L1_cfWM+x~FA;;MPN7cf%b}p*ES2n5o7AK& z_6*DHM7GpG<0`hG&$gSNw(Yy2mUiHkuX??W|F5??M*7U`I>sAg3@w4~VeoYIb6Mw< G&;$U*&`P!d literal 0 HcmV?d00001 diff --git a/html/map/BFF.png b/html/map/BFF.png new file mode 100644 index 0000000000000000000000000000000000000000..14c0aaf86516ab4224c10e3471ea5dd5702fc8c3 GIT binary patch literal 139 zcmeAS@N?(olHy`uVBq!ia0vp^!a%IV$P6UgcNDY(DYgKg5LY0*V^LbzDV{_i%fZvd zF{I*_?%{)+2NVQc9lbXSM{g9q+^L$&y|YqGU+~CT@%sl_p5$9-_x3gi+sE!Y{kC)J jv11Ekm+QT&seV%Y&p|QV`@Tmm$W#VTS3j3^P6o8cIFrDtB_m74Q8I~VG2>y+G3b@`ai8QhK7gE zC@mAaz?-t{P5acj5w{w*)>drnH8192GYa0eAyL09C+YOFB^%gT{xc`dz4G)HC@ei) L{an^LB{Ts5wOBOh literal 0 HcmV?d00001 diff --git a/html/map/BFU.png b/html/map/BFU.png new file mode 100644 index 0000000000000000000000000000000000000000..9006f952dd34e7e5d26111e19c2ed0156e291e1e GIT binary patch literal 915 zcmeAS@N?(olHy`uVBq!ia0vp^!a%IV!3-q3RtSA#U|?nl@Ck7Ra{vGTzhhC_pZ_<3 zYzjebZ7qc+jA|bZ0eXgji1OPeWT^vIyZuOpX9Btch z+)}qeoh|j)ie5v*LuZthiCy4LS@x!V>fDH1jazFgHujnq^RO8OZ`+V4Y;Cq7H96=8 Yx64iW%)|?e_JVxk>FVdQ&MBb@0En(U4*&oF literal 0 HcmV?d00001 diff --git a/html/map/BFW.png b/html/map/BFW.png new file mode 100644 index 0000000000000000000000000000000000000000..c5ebf70cd9984866370d83b3c3939c6afc9f816a GIT binary patch literal 641 zcmV-{0)G98P) z000W>0fLJSS^xk7Gf6~2RCwB*mAh^fF%*VB-)3fKb_=wR!ggs8MMy!Bk_rh4A}WN0 zAQcKUJOm{#KtaPhrHD4k?p$n-Q_Kko(I(kh%hJdm9eu~=|BtNz;P0;^Mh?xcLvwHp z9K8NHKJv+YS7w&+>c_N&Dj6EJyv5aMM0jEIr3`Q-6mLLEykb~N&&n$9+PcK#2z0Ao&?W6ZiBV- zJu%`vDUp&aw{;)j9M+;W-s3%sw~t~q^EpL9O2kNvD1}mJw*}J}vW&81GNCM)PRVof zoc%|-&x&uIBg^P}yqEkZV z8?hRY^t=~xmSHW1Iv@LB**Gck&yv7g$ed6i6P1#;tuv~I}&U!87 zRSILUR&-JdrCA)^!CKKEB@xD$n`P6`_foL5v9{^|ZSSdTRx3idzAh?eGoF9CjkN$; zOQQ^j%yR((MM0LKwRFO*q1gL?bCjjXpcF-cF*ns3Vk9#0`|I%bS>|&<>^}6GQa6^2 zk-8>EjKMjay~TWaLP}Um2qKJg6oo{Fz-lF%gHM`c=w10QXAZ%TWjbbDO`8(Vj bUYv0SC`}2KsaN#M00000NkvXXu0mjf(})~( literal 0 HcmV?d00001 diff --git a/html/map/BNB.png b/html/map/BNB.png new file mode 100644 index 0000000000000000000000000000000000000000..a3d708f94a3363d6bb8906327223a0f10b50efa0 GIT binary patch literal 206 zcmeAS@N?(olHy`uVBq!ia0vp^!a%IV!2~3YL`o+EDb50q$YKTtuGb*U*woD%1r%)X zba4!+xV88EZr%n19+nHuJPj`08Ubnx6Y|^|+vGa!mMw5>=}&$Wllk(?Io5`K*=+Zf z3{{sDGCV8gcG`FunKsy-ks4xM!cX*(_8%N363_MWFNk5x#fR(^)PUyKDx!g~8L+&t;ucLK6Uw C_D&xF literal 0 HcmV?d00001 diff --git a/html/map/BNE.png b/html/map/BNE.png new file mode 100644 index 0000000000000000000000000000000000000000..485f4cfb69aa3a570655a12731a5666af1c51a26 GIT binary patch literal 255 zcmeAS@N?(olHy`uVBq!ia0vp^!a%IV!2~3YL`o+EDb50q$YKTtuGb*U*woD%1r*%q z>EaktaVt3`A)z2-N?GW%R0TnUonA#o6If@2-}VfdSNH4v|N2zLx=U|>N)*mVsj;!O z@i`|>lYd`!zt(4y-zSC;b;)Z%IUwS&U(nj4NzecN_V2uSrs>#w1Cg|Zir?)v)}1BB zQ=K|gvRCG+8(zC~z_01rrDJ}7u3b9gXLC&`TRqJzLD5b6T8_h-xij*XrE)ynG)=E; xQKWa@+~4o*Rn5W-k~6;FJ)ZKb`2XMK44k4Vi)QR?%mX@}!PC{xWt~$(69DrdWt9K` literal 0 HcmV?d00001 diff --git a/html/map/BNF.png b/html/map/BNF.png new file mode 100644 index 0000000000000000000000000000000000000000..d57622cf0319fcd3861256818cf716a2f47116d3 GIT binary patch literal 218 zcmeAS@N?(olHy`uVBq!ia0vp^!a%IV!2~3YL`o+EDb50q$YKTtuGb*U*woD%1r+S@ zba4!+xV884Zr%n30k#M6*A2vudFsTp9-PtC(&Wj(n#j*>?O@Y){A>Nb>L+3h*EimM z-gheM;M!2n#Fz`${7o1?+%TJb+-x?_w)V)=X+B97ep;G8iiN7*ZCR+bZM$b8`;7f> zBsQPnGv?O0>T`HW$~WE>X}3O~;H}*le5T{+jAN{RpY~4JHqUZ-;X_8|?y_`yjq)2n PcQJUn`njxgN@xNAXy{XJ literal 0 HcmV?d00001 diff --git a/html/map/BNN.png b/html/map/BNN.png new file mode 100644 index 0000000000000000000000000000000000000000..f98ca9ffa4df113b42ce85546d73681cf42da880 GIT binary patch literal 200 zcmeAS@N?(olHy`uVBq!ia0vp^!a%IV!2~3YL`o+EDb50q$YKTtuGb*U*woD%1r)6E zba4!+xV87{Zr%n19+nH<%aRx%=-48MMFwhf>I>_uwmsG0WoW34O<2R1|26t{U-6=! zJejG<%ldg|^O+sqvT4`Jmefi12}f0`{ccU@JZmPo?ZBVZ>@$YZX?zjQnukJyYT4HO qe7Cd6IsT1E@P@k0mUZV=R5EgHHF5pLwelR$6%3xPelF{r5}E)x$w>16 literal 0 HcmV?d00001 diff --git a/html/map/BNO.png b/html/map/BNO.png new file mode 100644 index 0000000000000000000000000000000000000000..38effbe5efe7944fab630d426d26e0d6d63e5b2d GIT binary patch literal 209 zcmeAS@N?(olHy`uVBq!ia0vp^!a%IV!2~3YL`o+EDb50q$YKTtuGb*U*woD%1r%)d zba4!+xV87nLCyvPp4Nx^V-LBy$Q)P+LJmhx4&FJyP zWAm%|&%C~Nfu$s8=E~%5U)JcuXHp+8TOwnYAC}3LzHZAxoo(AR6M4_XUpwZrIW4W} ztU>dp6_U2hD}Tzm_BW#@Tb=hS5dFpoyL}rRF{pU2*s$upMpmP{JUHx3vIVCg! E0F`S}{r~^~ literal 0 HcmV?d00001 diff --git a/html/map/BNU.png b/html/map/BNU.png new file mode 100644 index 0000000000000000000000000000000000000000..cc823eb3bb282cea687140c3e4a6639afb6c1292 GIT binary patch literal 214 zcmeAS@N?(olHy`uVBq!ia0vp^!a%IV!2~3YL`o+EDb50q$YKTtuGb*U*woD%1r+S? zba4!+xV884Ucm+h9@YoTvn#~rO^&b#Q(K%M)Yp{E&u#6%(>USZ-RbjBGd-}{_WRDo z2<;_Xg(iNzxWnKgi$d~mAIaOfTsH*Mw4)7XJ~Z)k`D8iMmj70Ou=TAc8@Qh7uTH)e zX}bAP(OH`_USjtfvY**z=e_8jo20hp$QC=VN$*>GxDQ#b?dSgxP}nElWx5XNCI(Me KKbLh*2~7am2T*GO literal 0 HcmV?d00001 diff --git a/html/map/BNW.png b/html/map/BNW.png new file mode 100644 index 0000000000000000000000000000000000000000..076c82aabae65e8178a59d84c8c103cab422c67a GIT binary patch literal 699 zcmV;s0!00ZP) z000W>0fLJSS^xk7ZAnByRCwB*l*?)qK@^6+x^?$-5=93=CIrbvF-U@v1Y(FL5hQ}o z;WOm5yew2)B#K}b35ts>+}Ime+0XQ?s$6tAqa;pdQZ!8$bl3Nv|39Y%uroXTbbf|0 zm*lcb@oXg>OUta%+#37=~d#GG$m;6 zb;!W`5R6iTZJvihgutI=c2@s2TjD)+Orj<3OiVC2 zNgM~Cn$g#~pOE7A)*#QubKX4{3cRc_A002ovPDHLkV1lt=IZFTl literal 0 HcmV?d00001 diff --git a/html/map/BOB.png b/html/map/BOB.png new file mode 100644 index 0000000000000000000000000000000000000000..a3235a3499cdf049460998c0a88dcc5d45aa2dac GIT binary patch literal 127 zcmeAS@N?(olHy`uVBq!ia0vp^!a%IV$P6UgcNDY(DYgKg5LY1m@|212*O?Q6EE7)` z$B>F!riTN085B4i93|vygdArF990Y3+PSFuUfHDTlXoRbq_&>2pP9pBwN~q?{F@p+ Yll7W@iN4Etf%+LdUHx3vIVCg!0Or*ti2wiq literal 0 HcmV?d00001 diff --git a/html/map/BOE.png b/html/map/BOE.png new file mode 100644 index 0000000000000000000000000000000000000000..0bafbd889599f3cbb81ca103e95510198057bea5 GIT binary patch literal 199 zcmeAS@N?(olHy`uVBq!ia0vp^!a%IV!2~3YL`o+EDb50q$YKTtuGb*U*woD%1r)6G zba4!+xV884M&1Sk9+!*$(-tK191-a0OAy$$V1c6=%k9p`|GxOCS28pd&o+!ZRQ)nS zJt5{>pW1`u*FN&mxmGvCmQ6i7d)5Y@duuL-l;v%i(3zW?b%Wva^j^c$IWr;?c$aak vo^;dv!mRh_CUVzqjP*JA&1n9b`+FD^=V_WhS@mB7=m-W+S3j3^P66jmvO)ZZ9dp9m?miw+SbDnp KxvXEiu{v literal 0 HcmV?d00001 diff --git a/html/map/BON.png b/html/map/BON.png new file mode 100644 index 0000000000000000000000000000000000000000..cacedb729171f7d4c72ef2afcafd9c344578ce10 GIT binary patch literal 199 zcmeAS@N?(olHy`uVBq!ia0vp^!a%IV!2~3YL`o+EDb50q$YKTtuGb*U*woD%1r)6G zba4!+xV884M&1Sk9+!*$(-H(*BpPl?@NMLX4!EEo-1PQHVSUx|$uF!x`z*P9#9Z)b@bjS9KBKaa;Iu8_s&W&eZeDV#qS?zd6I9T-P_w7Y#+Pp^xMv< k$Br$GU9R`8rus?oKL^Ed@B1FPAX6DUUHx3vIVCg!0G_-rH~;_u literal 0 HcmV?d00001 diff --git a/html/map/BOU.png b/html/map/BOU.png new file mode 100644 index 0000000000000000000000000000000000000000..bf7909733b757262174866bf75101f73633c20ec GIT binary patch literal 915 zcmeAS@N?(olHy`uVBq!ia0vp^!a%IV!3-q3RtSA#U|?nl@Ck7Ra{vGT|MHZ{pZ_<3 z?7<9bYikFy^G4k^6hmM}yxRw$yZt;}978H@^`3L&J7B=U?6`XWqyO@&Cv}({ZQF3% zQnx{!E%n%nUPHq}XOxzSUEobw_NIO6+=yF^TWc#e_L>*-uo(q!+mI-1ZMGpbIp_v= X*i0v_+lxC2K_TMl>gTe~DWM4fp7A^$ literal 0 HcmV?d00001 diff --git a/html/map/BOW.png b/html/map/BOW.png new file mode 100644 index 0000000000000000000000000000000000000000..5a987e50b297b996c20bf094ddfbce6959a10b75 GIT binary patch literal 640 zcmV-`0)PF9P) z000W>0fLJSS^xk7GD$>1RCwB*mAh`#Koo|*x!GQOw?JF)AgpN8Ac~L%iINrx5EVi~ zkO~0}ufuyFUIe9xHhb}9W;_%=Axo6YdPgH!W9#TU=luT}D**WOYr)8+Ido}GPJxGy ze~*uRFh7);WxV`x09K<6+2kPRc1sAn_&yeEIXlBSdOx1IUUPoVa?Rq^D6EyIF}T@y zC*(QPDb0JYIhiA`hPV3!Yplf>v_dI>XQyMbO^Mj!1HqHv$%lQgmcA!O zyeB16lHvXnN`JPBD<<6OY&UG_MW!m=-rK2 z4M=+43pvZM7UwVqAGn;pu2w9UTwJi-N_&;U z7_1eYltO71Z?9pkXpoW!W6agDY3O@tSh}&d>HpW>Q`c-Zgm8IXRLo{P{kV&@09wnS z3`OR-0D+<)%g|aTVP`3h-s2o)DKaQUQDDqfw}u#rO#J*Z{QE5PIUsf)W=*LpOU6iD z6C=jp9M104`R`5`RHu_&) aamHVnMHH6OMlI+70000 z000W>0fLJSS^xk7jY&j7RCwCOmA#G}MHGdg+_!$99#jO|@YnkLqj5a>FbYtAK{d#)*m6@V|kt*K(x-jyOS z=P*-BOj8}fHD;v&PR*5s8O{--)wFV^6hbgFE5*Oi!~ib7(_0TH1@9Zb2D7f3CYFVq z<($ksf5V;Ew0l?cqPhU*$XWBO{ho1TS=w%1XkKBN`1P^QK46}evp_jBO&kt&R8CH8 z807swn5`H;=#7t%BSr(wGwX^OU1z%;!$6GT<;?2YjGX0tYjQR3Tn%6RJM`Jt>`sZX z<(xCig7?;SK)8X~guQPyHj^3SsQvzB30=o;7dm@iATxnVVV)UB=9yA%)LizABPrG6 z0_r~NN!{eLn$`JNINyp<3TA9Jc5)JKV;Vq=Y`5mUYLhn`y6#p@kkjYi*xemnhgm%o zBzHR#W6iAz(pAo$WAOV=I(tvm=X1EDn5u_ZbU5g6sAqVbX58@eBfaw}IWx~nNu}s0 zrjPV@37zhLNlGlsZSA{4PL!3We^^~cO04T~(*iz_6Tf_~dmmE@&V^%{=>Tx&b#i9A zwHS}qtUqhZ#QKzbAJX@ZSH+Wy`mf{p5BTvBZ-4UYnz0A;>>2+9{sgtvHv_HETZ;ey N002ovPDHLkV1ln-S6%=B literal 0 HcmV?d00001 diff --git a/html/map/BPB2.png b/html/map/BPB2.png new file mode 100644 index 0000000000000000000000000000000000000000..3191893265c6d4d8fb5e83b3db678112982d7d9c GIT binary patch literal 127 zcmeAS@N?(olHy`uVBq!ia0vp^!a%IV$P6UgcNDY(DYgKg5LX~w$gt_EbtVUpW#Z}L z7*cV|^l%_Ag93+xqlA2okmKxtqiSJWI~P^oE1Oh(@~%XQ)Yen>Gjn*X)@nVKe^bL} XvR>0K(RUdyP(OpGtDnm{r-UW|a(pBd literal 0 HcmV?d00001 diff --git a/html/map/BPW.png b/html/map/BPW.png new file mode 100644 index 0000000000000000000000000000000000000000..96557e9dca5631aa63980dd52b4ca532967e9fce GIT binary patch literal 1079 zcmV-71jze|P) z000W>0fLJSS^xk8=}AOERCwA=mCdVFRT##9@A}yL?0xQ4;u48smR8i@ilL^NU^UTU z!~TGR<_#P+i-yst{+1x6P!tuKC81!5PMloyp0m&1>#Miam#{yxhk&T;rKT}KFx*N=0h>zK_j1|VlrA|+xZX8>bxu2?G~ zhHKY>a_?9DG-pad1QBwUVUSm^WU*kHD1{hVtr$n9$??X{re=(?SWrrBQl^RheT}In zC5Ax&5ku4P^^aOMXQqi^kmXVq3lxdO{Xclj@hhuk8_9+f(!#O z;v7wbF*>;j##lc1915o{^YAAB-Qn~#nufNm*wVJlX41B$X|Ps+5J*XKcD#6j_vD~u zjp$S&l!7r>TVf<7DTSPIuEa>rmN!qcS}{%>-R1e;{PTyr{Ruf^t;SbiVw7QEnn+2E zky6%tT8rP-_q{!Fp6%_@bvQ>#GEFQNtX7)Qdqgb9&e68?J+qFJ7kPY}XZPjE8OBjk z5|ES_1`TtL`Mh+USZi>O*^IWO@wD?=wcPuSoGKWl;#r4xuFU7m=Vfcl;2hRsL`S-M zeItxg6d3PmTLs)0tfgrzCoU>`Ig=APbNoC{?(qD9oVY;WD@nC4kSfm@ost^@rBHEC zXDjB0Gt9MmB zg@kM@uH-DMm8@1(iI&}~v@PDNvW(HN`dbP|PxJIXPj1V}&q#@Jln^9mv$4F&TLrn! zZ!ICR-ud$TPnvhRWN*(fO@yEmR+}@1zNhQ3mKe!}v)^iP)96qsS&n?HsMfHQa84H} zB?S!O=vkgW;L)FQ;vzX?j8hKk`c2aT=zwmsdJ-GU?fc@rQ4U@|AutSTwr$JS7V|mV z+kE*wQ2zS4^gVs=4sHv~nxVGUg1~I1PAluxuit~^-AlAB+uO`$>Q41isy^VoQdOUi zzTn{v9^T-cPaQiufXclhRPTZ+$!cFIX;QDkke4ql?_W_ELQs(FomaC=6U*gm!40P_ x^Y2Zb-gR2-z*8!*!=T%9aCxSrz7bRz{{xegH($i|t1$oo002ovPDHLkV1jw~4PyWR literal 0 HcmV?d00001 diff --git a/html/map/BPW2.png b/html/map/BPW2.png new file mode 100644 index 0000000000000000000000000000000000000000..ea77bd0c3549a8d7dbc22f8e3f07f484e6ea68b5 GIT binary patch literal 645 zcmV;00($+4P) z000W>0fLJSS^xk7H%UZ6RCwB*l|OFOKop0+`Dc6W-2&|q5GP=}Ab}`CDwL8I2@n+m zAxMP~4K2r@MB)ULoPjH(h&IWt*Pa;=7>N<3Pzvp~U>ZY~QI?EGlqKUa zc}||QzoGlA_|`eHjIP6b$$wOCVrq@n7=u!zLt1#58*=K$K4reU?BZN-n{ z@>b@2&SD|6u4x*&j;>?1!g~%r-h|bpBndl*QfLi`pL|5wo0(O`Xe6_$C`O53trUJA~*`+z^ce)HW5?cbZy7q+g&Mls4k fG0MB)#TkDA3?2*lkzN?z00000NkvXXu0mjfrne_| literal 0 HcmV?d00001 diff --git a/html/map/BT.gif b/html/map/BT.gif new file mode 100644 index 0000000000000000000000000000000000000000..fad6d44917725fdf7e9a1e32b73c0d2f1b6ca671 GIT binary patch literal 412 zcmZ?wbhEHb6lPFj_{hlcpMl{&7%(s}DE?$&WME)o&;ha;K=KSs|5!Kz7rAr_sd`P( z5Lf_Z1S&Z+fJJ~(jSPxFDXs4i6| q7MQLn90)5E96AQZ3PvWF!+^fXgL^|j0p@uscmu@_MEGhjSOWl^>UMVk literal 0 HcmV?d00001 diff --git a/html/map/BUB.png b/html/map/BUB.png new file mode 100644 index 0000000000000000000000000000000000000000..80f99ddb22e529f044630384afd15ad38b20f13b GIT binary patch literal 886 zcmeAS@N?(olHy`uVBq!ia0vp^!a%IV!3-q3RtSA#U|?nl@Ck7Ra{vGT|L6ZrAcHEP zwzifk=8PIL8Ul0(0i%C6tAW-Sdb&7ml>b1$=Z{*VU~CWa-*lKpUXO@geCw2NHDYj literal 0 HcmV?d00001 diff --git a/html/map/BUE.png b/html/map/BUE.png new file mode 100644 index 0000000000000000000000000000000000000000..c0c59f4ac91c8a4658efd3321a128fbf0841e708 GIT binary patch literal 205 zcmeAS@N?(olHy`uVBq!ia0vp^!a%IV!2~3YL`o+EDb50q$YKTtuGb*U*woD%1r)6J zba4!+xV87nLEZ)hp4Nx*&kDG=7pVKac_NngP(jYeMjmdKI;Vst0IeBH AV*mgE literal 0 HcmV?d00001 diff --git a/html/map/BUF.png b/html/map/BUF.png new file mode 100644 index 0000000000000000000000000000000000000000..36770fdae46a08c9d528b7908eabb3585b96dafb GIT binary patch literal 915 zcmeAS@N?(olHy`uVBq!ia0vp^!a%IV!3-q3RtSA#U|?nl@Ck7Ra{vGT|L6bB9gEU{ zY#M>u+FBZ!JZkJ{2v8CNZ@V>pf%^SCT^vIyZuOpX3FLx~eUHxIS#y|J-VclP8% Ya?=mdKI;Vst02QG;mjD0& literal 0 HcmV?d00001 diff --git a/html/map/BUN.png b/html/map/BUN.png new file mode 100644 index 0000000000000000000000000000000000000000..8f201e18be6b1f680003f4ee1de7cefff09c2264 GIT binary patch literal 229 zcmeAS@N?(olHy`uVBq!ia0vp^!a%IV!2~3YL`o+EDb50q$YKTtuGb*U*woD%1r(g_ z>Eaktacl2oL%wDM9*2wmRSjNirZhfN;V4|=W9iu+u=2UK?29Q*8+?P_$DiNygpI+8 zL*sa_b9?5UH`NNqR_HNGzizns{qcp&$oA5GOB-!-rEUlVknu{XuVqQ3D zZQG)ms6C@SN7nd!n6dGiLq17?JAbkTeJ+1KOZ-;y|0K0FclY>wpRM)b?bp3J{m)P5 a)iLaRXRsl5pNRy}i42~uelF{r5}E+A)msz* literal 0 HcmV?d00001 diff --git a/html/map/BUO.png b/html/map/BUO.png new file mode 100644 index 0000000000000000000000000000000000000000..bd192eea3099e8000d06ce4a228598c164627d13 GIT binary patch literal 915 zcmeAS@N?(olHy`uVBq!ia0vp^!a%IV!3-q3RtSA#U|?nl@Ck7Ra{vGT|L6bBm#0jC zY*ImOZ7r!mdKI;Vst0E$F9v;Y7A literal 0 HcmV?d00001 diff --git a/html/map/BUU.png b/html/map/BUU.png new file mode 100644 index 0000000000000000000000000000000000000000..4439a992598a5996582109dea3ba679e052ad30e GIT binary patch literal 917 zcmeAS@N?(olHy`uVBq!ia0vp^!a%IV!3-q3RtSA#U|?nl@Ck7Ra{vGT|L6ZrAcIIy zTU$${%28#bAuz~8pxj#E3DAiFo-U3d6}NgX9ppV=z~OvxKhtmh=&hlbIi#76tH&Q; zn8=>K@P+S2gM+7xrcD#r%)8LhY2#+u=-V5%%kyvhkRqSd z000W>0fLJSS^xk7LrFwIRCwB*l)G*eF%*VB-^R1I0&NEs5)B13geFaZBB7v2Ns9#3 zNC>5h0*b^7@c>AX=y(7MI?5DLF1tHBw#O86!a@>~owY_YvPZ|?@%jH_1pvFdyL23y zRfp#J4zRz!-#zlycvWUm@bdEtSdB6iy_J~LDKWDBsVmlUc!+Z}p*!>JjH4rt&scla z32WtR3~toj3EndtG8nP>VR@{^TFMgdDI9*#t}YX-u@+;{3Z($HcDiJnGpQj&Vj#nl zcgtWcO+!kAK+fbW(`DTUIES@pO$da*+Upy!n(>&jBxh10C6q!bv|EB{3`Ie|Pp?P6 z&v1zMc+chy-DkzO&QTOJ4IxPWz5Y#1tP(1Q3@6l+k4kwEzaQ_KwUGRQ&rTp z_;Gk0)^O*sK&p!QocVkqkF(rc=jXSBgM*EYjZ4|)ED1Y@QfLi`pF%>}|1%$K;XTe_ zjBL?{weOs{{g7YZFJm=8(@0fYa#3Kd>=h#CJ%6E8nz|+gIbmH(@~yna5F<_I(VMGO zIX&h0n3EHxQz@@f7=yK z000W>0fLJSS^xk7jY&j7RCwCOmA#G}MHGdg+_!$99#jO|@YnkLqj5a>FbYtAK{d#)*m6@V|kt*K(x-jyOS z=P*-BOj8}fHD;v&PR*5s8O{--)wFV^6hbgFE5*Oi!~ib7(_0TH1@9Zb2D7f3CYFVq z<($ksf5V;Ew0l?cqPhU*$XWBO{ho1TS=w%1XkKBN`1P^QK46}evp_jBO&kt&R8CH8 z807swn5`H;=#7t%BSr(wGwX^OU1z%;!$6GT<;?2YjGX0tYjQR3Tn%6RJM`Jt>`sZX z<(xCig7?;SK)8X~guQPyHj^3SsQvzB30=o;7dm@iATxnVVV)UB=9yA%)LizABPrG6 z0_r~NN!{eLn$`JNINyp<3TA9Jc5)JKV;Vq=Y`5mUYLhn`y6#p@kkjYi*xemnhgm%o zBzHR#W6iAz(pAo$WAOV=I(tvm=X1EDn5u_ZbU5g6sAqVbX58@eBfaw}IWx~nNu}s0 zrjPV@37zhLNlGlsZSA{4PL!3We^^~cO04T~(*iz_6Tf_~dmmE@&V^%{=>Tx&b#i9A zwHS}qtUqhZ#QKzbAJX@ZSH+Wy`mf{p5BTvBZ-4UYnz0A;>>2+9{sgtvHv_HETZ;ey N002ovPDHLkV1ln-S6%=B literal 0 HcmV?d00001 diff --git a/html/map/BWE.png b/html/map/BWE.png new file mode 100644 index 0000000000000000000000000000000000000000..8ab27ca00cbb5d2f272ba28a85f706dae41ab306 GIT binary patch literal 719 zcmV;=0x z000W>0fLJSS^xk7fk{L`RCwB*mA#VXG!TWqmL>bzcV~Zc-h$#K$ao9hfg;<0fPf+Z z_93Vuf`EX4BA~W-3-Z0Yb7fh!q~1W9nVs1Sb7xLDaNtv)`gE%;03e@z31BVLgmVC0 zhqYSYW0d2OdB$3vJ!2f%Hp_>yR>zUu4r2gHA!l+XB}xG>25YtJM8y2_`6qzB{;7Rh z3aW@8LMal0TwaRztShRd#Ig`0>w24+l6a45J*2EF$7AzUHX2JA!lceS4hKVYtm4M|L}P4r>u%+av^1!dm(sV_M}R7$X%3eERFZ0AIYUsiNAx zD@8z!K~=Vm5D>vy!yOrERf(XAF*v6p)qCcd z7zHF}%f~t##5yi6bR4mkoMm0{o@JpFx(?@Bws)}l_m8ZRH*e%{ka?CE34s{vQQ7bH z$rE-v!ztRzq4Wg_*UwE^IqP* z74ILy{QVn@L4*XZpbD7Qj+sn4WthGE;IWtY_+ym-tQT_RyP7~8) zc!Z2Ot1Bm}{pD-s`B6-eckkrZ;yF+CZ}3Pa@E&nKa_}xB?Op%?002ovPDHLkV1mK* BR7?N> literal 0 HcmV?d00001 diff --git a/html/map/BWF.png b/html/map/BWF.png new file mode 100644 index 0000000000000000000000000000000000000000..b2542babb9647eaaab305c0adfb479659879fa7e GIT binary patch literal 719 zcmV;=0x z000W>0fLJSS^xk7fk{L`RCwB*l+BLaL=c6)>L2^sH#3>!U3ewLJ0Nx}SRjE|0NJuf zVh0inBoGUfhsjOmw%u)acd=;COftDJcjm|oFMRxUovLa90QuxI0OuG-ya%ur=d``2 zB*!DugmXN9&M>g9j`!u94g&Z)H`Vt)JSQ$Sz;xP4kHs)!&$ ztuoJYeJvrdEU1z*F_IF?@*y*42?5o1NLdz+$Ia7J3iB+0hym`fwX!VCvrLnOKnUc# z9l?9LZhO4fzWhz zmoK@z)N$0l$2n>xMv2jIPe!(?L{P;TyjKxQky5A?=Tuc|y>m7!KYuRAYeJxu%@13u zAuvs(Bp{_YKGxwN&U100!+>*?BFjPu#7M1Ji}zc$_ptiU4=jl{Z{%>0X_AzfXHsfM zWxv;F&)Dq@r=+i6Q48xzDcbUE#XG0_eKX&8Zq;r-P)ZS1yr=K!d#uG6tflKtFmDFq z6~gAZxZuSLuCC}hNr@PlXUG3Y0n}QoZA}tY+IYR+l@r*%zhj)MtJU|A>yW9WPHUzVE=eNT$C+F~SUfWFuL{vl?Q_l%=jE3HF)e>&R}AzPze z$1vzP>g8pdEprw#m%By1$@u~2ZOD?6w0mS-+en?qY~8I@Vw4!$BtGoiuz!3l?S2bE z-oBL(9>e_oD~v&eY2t7=%Xzy7+I4L?Ddk+|X8!fd?FMts@mQ6@II8!LsB??zuWxl6 z8ArntWXxGzIZ^E|UocHiVuHMT_h{$sJU)>L{0k;#c~vtK2o(ST002ovPDHLkV1j6b BPUQdq literal 0 HcmV?d00001 diff --git a/html/map/BWN.png b/html/map/BWN.png new file mode 100644 index 0000000000000000000000000000000000000000..4a92aa6c13657616f0ad031d86605332fe0cfdc3 GIT binary patch literal 721 zcmV;?0xtcDP) z000W>0fLJSS^xk7gGod|RCwB*lueH0L=c6)$RE4xn(pbDyC87@4#OP~JA_yufmi@@ z2qbnaSRjE|pgGLcOjp{Oc4h{Pba&766m)ezdEtehzl;|VDF7g!d=B6oz}tzYef|i zM5tBfS+1`o1eOI=awbMnVp%?9<}4wg+72np!tuCyno41w1rRa79ky1Mg?W}~k`M@i zoVO!*PuFda_uBU#GKYcPPQAxDL|9juXL80lx(;Ku%0)0OiCgTS-|2qOFfa`CJ>#fX zSNifLmzO$@+V?m|t;8rX8t%!+R+R{<7=!mJLMc)Twc?zrYOQz9hUJ$p6>IT+%k~~t|M`g}@#c*j4l+%W67x(- z?WpYc`s^9Io#B-9^($&&T`5Ido~?N2biZ%r`_8S}?FULJqKfzQJ$;Y07=yKR-3jK+ zV7x-uJQo+dc)`^bT_-6KBlGO|A1Q!Zi?yvuqDmXD_q%ce`}Ysbv&^%kBsojYwMvWog4O#Z>8OD zA;{ae62fDczkh=Mt1Bm}{q;+x=}AnGckdqUyq(7 z000W>0fLJSS^xk7e@R3^RCwB*mA#VXG!TWqmL>bzcV~YhUIcg#-hy|a$TlD#pa_6{ z2&%{k2nZ+wSYCu^@9tb#mMy6_kY;9Q_QKqmQw|*X)Tch(Y6}3!XI}zX%QWE}K-Xcd z*7q3Ycx0ZjmS@ixN4CxKp{&($WVgc@fKteroJomN0F1#}?K%-L|Ni|cps#;wpO%6u zB8X6mgdmrf;yvq%Dk-rn#K^kdW~L&o%iJXJXpf&d~0xWSgfx)OrSvv`m9 zq|}b!9DUy&=X4luGsltLPMyPAMA$Y7ft0Y8zQ>qWxd_Hc1p=RZ{tv(xFKeo(w(m+2 zP-9S)Z6gFku-0%#Mp{)OsA3GxsR%hs&Xj_+s;Z^jI2-)uujF`%_vGCC&{FlDc_u~y z$=UL;4hON0iwhk`tR-hzSG;FgD21-Wxt8r6tp4>QYvj!vIUHo3B}PIZ#(GrtdwueR z-Og}I`uY_mvu)(8HK$swF-l635-CvwyF2k8Yo6J* zdbt4Bm7Fn#VKDz?x$4jl#D!YhvXBzMFz9}NAG69irb)X_YKMm5bhal#?u_<5F4q0N9x<|IHj?{U~+TBuQS!7x2B;N0A*x$dEy5GE)w{OM! zhcJKp24fImo;e)Oa$a8p?fZH;$@yGnGynRsZ7^#s4^_@glREc+I$KnKe5cdIG#MTt zW6tWziE4lOnt6T{6Xe}HxwUxCQ~et}k_o&AfXaP*KjP}^00000NkvXXu0mjfWCK&Y literal 0 HcmV?d00001 diff --git a/html/map/BWP.png b/html/map/BWP.png new file mode 100644 index 0000000000000000000000000000000000000000..96557e9dca5631aa63980dd52b4ca532967e9fce GIT binary patch literal 1079 zcmV-71jze|P) z000W>0fLJSS^xk8=}AOERCwA=mCdVFRT##9@A}yL?0xQ4;u48smR8i@ilL^NU^UTU z!~TGR<_#P+i-yst{+1x6P!tuKC81!5PMloyp0m&1>#Miam#{yxhk&T;rKT}KFx*N=0h>zK_j1|VlrA|+xZX8>bxu2?G~ zhHKY>a_?9DG-pad1QBwUVUSm^WU*kHD1{hVtr$n9$??X{re=(?SWrrBQl^RheT}In zC5Ax&5ku4P^^aOMXQqi^kmXVq3lxdO{Xclj@hhuk8_9+f(!#O z;v7wbF*>;j##lc1915o{^YAAB-Qn~#nufNm*wVJlX41B$X|Ps+5J*XKcD#6j_vD~u zjp$S&l!7r>TVf<7DTSPIuEa>rmN!qcS}{%>-R1e;{PTyr{Ruf^t;SbiVw7QEnn+2E zky6%tT8rP-_q{!Fp6%_@bvQ>#GEFQNtX7)Qdqgb9&e68?J+qFJ7kPY}XZPjE8OBjk z5|ES_1`TtL`Mh+USZi>O*^IWO@wD?=wcPuSoGKWl;#r4xuFU7m=Vfcl;2hRsL`S-M zeItxg6d3PmTLs)0tfgrzCoU>`Ig=APbNoC{?(qD9oVY;WD@nC4kSfm@ost^@rBHEC zXDjB0Gt9MmB zg@kM@uH-DMm8@1(iI&}~v@PDNvW(HN`dbP|PxJIXPj1V}&q#@Jln^9mv$4F&TLrn! zZ!ICR-ud$TPnvhRWN*(fO@yEmR+}@1zNhQ3mKe!}v)^iP)96qsS&n?HsMfHQa84H} zB?S!O=vkgW;L)FQ;vzX?j8hKk`c2aT=zwmsdJ-GU?fc@rQ4U@|AutSTwr$JS7V|mV z+kE*wQ2zS4^gVs=4sHv~nxVGUg1~I1PAluxuit~^-AlAB+uO`$>Q41isy^VoQdOUi zzTn{v9^T-cPaQiufXclhRPTZ+$!cFIX;QDkke4ql?_W_ELQs(FomaC=6U*gm!40P_ x^Y2Zb-gR2-z*8!*!=T%9aCxSrz7bRz{{xegH($i|t1$oo002ovPDHLkV1jw~4PyWR literal 0 HcmV?d00001 diff --git a/html/map/BWP2.png b/html/map/BWP2.png new file mode 100644 index 0000000000000000000000000000000000000000..16609d0c48717e35bc391473692daa66c8eb2588 GIT binary patch literal 718 zcmV;<0x|uGP) z000W>0fLJSS^xk7fJsC_RCwB*l)aMOL=c6)o*(H-*SlW(U3e!_Vv3A_fGQ{gj30t3 ziiCiGDkuWV594d^9cf0InI;(RuD!mnclVS61v>hsPj`<1fPD5jfOCu^-UC>RbK2fh zlH-wS!a1HlXBb#l$A@xGhk@M=V*qNU6iOjyY6UO`=hRveF<F~If6N>Pc02VR=MZ6CWuD0y=jb|&*(w*ov?Ok^e}1R?J;T5-(D#g^UR~+S zmt0=zIBMVH9JLao#AvuDBU@D>sA3G>s|ck?Db$K{s;af#IUAOrzm(%OAyCTZhb`3* zm?lyZkWw6<>TnR}xwz0_z&T2hWg!G&q*koO`z_mhSpDY}OXBTYIUHn~BqipVl-g0* z@AcU;c00o<>6_Qo!n#t5wme($&gp*N%=evJwc8JrQbZN+>3jMfYcU3E>ADllo56UE zuz4;nc=3X(E4ofnB1Y!f@jp@kwH9kzlSGv^ULSVl1orPAm}i-1Nl9{+oXMFM*!_wB zRMW(|w&em?7D~Yw`riDP<)%YFk|M3P7|9u+?{&X_h}q;lrmgH&h|ve)@au; z3_6Z_dD&*moW;!LZc%S?e!zJfvZN&K9$D8mQs*&ScWadxCB`<14?8#PAKyy5-$Iag z?<9oBFn|9BV-R7QI2_J$-mZamU0Y5{IhVPafBSm7!JKnER;4hG>ir|?+@kvHdmTr{ z(eMNrb5>VQRQt z000W>0fLJSS^xk7e@R3^RCwB*l+AM8L=c6)o*(H-H+G!73-81`P~Nd%K@}7WAP+$m zI~FXcf?`4CVR94Sk!GZsX%-{fiF3i%KBa{gI{KzhcaH#oeDNiKbBrV216Yf5+TK%= zPX?SpX3O++%BHS(s;;CJBKM$ay=0 z_jKL%c&~l`DRUUu?bLgmLxgpec_wF^qw6qct6T)rlDNbE`JL|f3EzN{%;#Kq;Fawp2r4 znn+1NN^yLy!$F+q;zEZ3=O{&%g%F65TCo=Iw`?C^^`D#-_!S4i!oSB*PUSA4#pdV z&2w?Vt5;lI(RGp%F*47N|B(WywOHGlB&xLW`nW46uz&x+Jj*;wN|LkWOwP2x9!~t{ znkLq@Ef>JDPzuJ-_vXJWw;lSC6lt}^NX`I#ulxOD%qH&{N3~X3hx-0>wkJZiM!Sw- z&~enu%Qjo)EM_kEi+Y>$BhI^!B_(P1$hx+XI*-}9TdTwo_uw zhG)o_v$}Gk+F!4kre`rhK74qx^KKrW$prod6FPK!Ml&5Q00000NkvXXu0mjfy7gEd literal 0 HcmV?d00001 diff --git a/html/map/BWW.png b/html/map/BWW.png new file mode 100644 index 0000000000000000000000000000000000000000..96557e9dca5631aa63980dd52b4ca532967e9fce GIT binary patch literal 1079 zcmV-71jze|P) z000W>0fLJSS^xk8=}AOERCwA=mCdVFRT##9@A}yL?0xQ4;u48smR8i@ilL^NU^UTU z!~TGR<_#P+i-yst{+1x6P!tuKC81!5PMloyp0m&1>#Miam#{yxhk&T;rKT}KFx*N=0h>zK_j1|VlrA|+xZX8>bxu2?G~ zhHKY>a_?9DG-pad1QBwUVUSm^WU*kHD1{hVtr$n9$??X{re=(?SWrrBQl^RheT}In zC5Ax&5ku4P^^aOMXQqi^kmXVq3lxdO{Xclj@hhuk8_9+f(!#O z;v7wbF*>;j##lc1915o{^YAAB-Qn~#nufNm*wVJlX41B$X|Ps+5J*XKcD#6j_vD~u zjp$S&l!7r>TVf<7DTSPIuEa>rmN!qcS}{%>-R1e;{PTyr{Ruf^t;SbiVw7QEnn+2E zky6%tT8rP-_q{!Fp6%_@bvQ>#GEFQNtX7)Qdqgb9&e68?J+qFJ7kPY}XZPjE8OBjk z5|ES_1`TtL`Mh+USZi>O*^IWO@wD?=wcPuSoGKWl;#r4xuFU7m=Vfcl;2hRsL`S-M zeItxg6d3PmTLs)0tfgrzCoU>`Ig=APbNoC{?(qD9oVY;WD@nC4kSfm@ost^@rBHEC zXDjB0Gt9MmB zg@kM@uH-DMm8@1(iI&}~v@PDNvW(HN`dbP|PxJIXPj1V}&q#@Jln^9mv$4F&TLrn! zZ!ICR-ud$TPnvhRWN*(fO@yEmR+}@1zNhQ3mKe!}v)^iP)96qsS&n?HsMfHQa84H} zB?S!O=vkgW;L)FQ;vzX?j8hKk`c2aT=zwmsdJ-GU?fc@rQ4U@|AutSTwr$JS7V|mV z+kE*wQ2zS4^gVs=4sHv~nxVGUg1~I1PAluxuit~^-AlAB+uO`$>Q41isy^VoQdOUi zzTn{v9^T-cPaQiufXclhRPTZ+$!cFIX;QDkke4ql?_W_ELQs(FomaC=6U*gm!40P_ x^Y2Zb-gR2-z*8!*!=T%9aCxSrz7bRz{{xegH($i|t1$oo002ovPDHLkV1jw~4PyWR literal 0 HcmV?d00001 diff --git a/html/map/CB.png b/html/map/CB.png new file mode 100644 index 0000000000000000000000000000000000000000..41281d6e86673f91ca25ced2e047b0e397f80673 GIT binary patch literal 89 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 literal 0 HcmV?d00001 diff --git a/html/map/CECF.png b/html/map/CECF.png new file mode 100644 index 0000000000000000000000000000000000000000..af4616196a721e09aa877300e7f613c0cb6a2dd3 GIT binary patch literal 2049 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 A)&Kwi literal 0 HcmV?d00001 diff --git a/html/map/CECO.png b/html/map/CECO.png new file mode 100644 index 0000000000000000000000000000000000000000..dab9cc0ce0224cbe08d02188b92704fc5f03c949 GIT binary patch literal 1934 zcmV;92XXj`P) z000W>0fLJSS^xkCKuJVFRCwC$Sx;yiR~rB6)vbb5Y)s?02Ul4JVb3g-g5HD>2=cMU zy>v|iJq+})-Wdn>682Pj>Y?OReCZ)GIrO4iLN=ETNz;p!Kn|;?OJPSfLNuxmtGJ7r zP$_l6qdk11PfxO}KTX#xr4KW_8NK;_^L^j%`+aZ5z=@B9T3K~ICmYz+EP$7ER7~OGf0l7;S6*9w^7N$~otXk}r;1C<>Z4ty z@a=W{VQUY-FA%SZ1G`hDr~>%lpNrp@@$L2hnV0hJ-m_@&IWXG<0HvVLH2}PuL+7?g zY)tLzL|)F`*`K|$58(OyGxuX5B>>#NfhSL+&Ta842bNqUuKxV`*R#zzDiSFnCGOwA z{hUCoTDth_T$?CZ4r>ERFj&KvXKZ03d_Cu~ZTxw0pLT_w(yt19<-aLj3ERApdk=x;Tk2 ziR18M*6dWVQ>85O*nbuQID1COH6bPb^w;>}=^SEmjYJhg;~BH2E2`M3a$e<{NPf5o zAow&Q0HV*|KL>!!1(e(|zKS6fz0u&1#;B{=Cr=}SSNEdXJNuanaa5JU_vQYFUK1q3 z$DxWL`Mb1?ohs#z{G%{ZkO`H10`Tr%Kx}e97H7|h`eP8@2#J`{@jACfjIo-1?Z>x! zx=I)KBPz z_QIT?q_UCYs-JfNG$2)k8 zL!jis4nTNpE|baB>vdk7$z%Y~m142@@Zm!Wtnd4jlyYzgpyc8o00B!sZZdtjJUqYh zudQ!r?l_KVn#E$VSS*^RS+Cbk(=<(!Fbai2p-`aHd_G?)l}e@3Ksp*l9=f zltlpF-2#C3ufdl9dUya5#L~m_D|FAPa+T6R@Muvk@roVb)$_e#)$u5WmSyQxPgMUYmpxUkzI6!z-ns-~ z9}4?WFQ*x`z9jGN(dw@Jke7!{2R(FsvYtxOqtHsv^ZM)n2u3t7DUa4QSs^8Bx7)`R zrDa*H0KV_D-y}v-NP0b9ouAdI| zo(7eQ9su&JPhhoV_j&32zP{9P99|j(0l9MZ>eW*J;COIgZQEue#OHFkJaBzR&lx9! zU`owV@y(b){m}Ob1R4NDpTF-5n zh(<@Uz`0~u7n}pWjaQR7w#6)qg{GTA{)rZoNYSy!UaepCWSvaV(Q%waA~AxosZ@&f zZ-8+@5RehV({t2=RO?H0gJoG^7*cLJosP~}9bV6ZWm$R{DAZvXDy4`xN4I*t7R}oQ z&+}M!Xkr*ftyZJR8-@X3ety2$Yyzm&YQ&T<3@yvb=kowAUcC6|(WB$GmSSMvAf+UB zNhu#ZcwiWYVHn9|lGYF&fM&DVXf%?^WICO$*Xsud2ZmvUVd(ol^Nu$+quwtmIGdZB z6wF4W!9S(bY0{d-#YJ6sX}6%S%w#ezUc8v}m6rE|K@iZcB8sAO=gtkilRGx|HSRD+ z6=&3kZptXTd*#X%y^wi7a8&&%@iZB+RUfjC)t7ElPJRKA&e2(za?~-fFd2fCikN@{35< zn^voJ`SN8twJd9Mb2FRGQfcb_XKZtw;u{{7KR*Exiu)aF)7TfT$-ZuNVQRG++11;g z=XrXY8(kQaLh4UF@Cr8|MpHq~jKHIf7RlTE{QS|l-Mo2|iA`LaB(}pL)%ud#=#lm~ zTiibBO(CDpPx4__jPTO)JjZc(Z+LW#VHng;Nauc?|Ljfv$#e1#&%ggO@wYSn3#jcw U?kDzR4*&oF07*qoM6N<$g2 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 Q)c^nh07*qoM6N<$f>kr=s{jB1 literal 0 HcmV?d00001 diff --git a/html/map/CEIF.png b/html/map/CEIF.png new file mode 100644 index 0000000000000000000000000000000000000000..c15f48de034fde7a9c2620a7638e6818cc7302d0 GIT binary patch literal 2441 zcmV;433m30P)N=e$2dPM>}od+Bovg0TE-5WZC{!Y zezbj|72Q_q3Tf2}h(upfMJe6)rRi#eDlJMIQB_*;Kz~&60$SJvqpGx7ViQ>*(Jmw; zpgg1yW5;%W?D^}%xfxGpoP^LNN7m%#`1*e5JLjG|XXXG~E)4ISh0ll5QUK6(=sHvt zxg3_3psFwoG129M*9)%~k_1hIszOna&qLE-7?5T7eAu=PE*CTnih|{3EG%Go8Je~N z#po}G+YMQU+YQFx^NFu#XJHsvTrB)R(~!*~n}yGZbb6K9RaM{|9uHhDJa~XTdmzg& z45%tJ4UCD8VL;bm7#w9~&@?P9!R10C0me{Og`GQ*$%qvX8~}iO_u%&njX5CEb>#DS z`V;_aYq7W}^d%+WT<{}ERmI{W!-@04MT!E$5cD-o_(azMVAn3ON@XRINdV$%mCDK@ z<5UWMzqn>HP*tSU9E`#3h9to-kjX&PgsV$SMJ#vhScPX@nt-hut6q}87?MdC29iku zVHg~Xi|}|L%a9~+4qX>}B$K~Yu_ zTEQT>{iAw;^p8mZox@|e-qd<^8xSLX0baQz;J^PXLG-`@+`EU}yP@k)6ow<`;C71u zkT(Df^jI0JA_1H-3;_Ks48#I`mnE6&imIklW8G)1*sWJ5(B2JIMK%injg6R@!RxOx zeD{~g=i%|d<8gwSNS(uDrZO9D>}O#Bhi+bc{$v_JRc##&bVZGKyie0UYH#_?z>wf7 zNtOdIe7ca}13i)B4OT){BonVZI^NrSGI*&AKx<%sBtBa4=C?94k99>grTEq@lRRA1-d9)Hg z!Xq{&jLm|ko)2p38=gOzCcOEnNlE5`%8H20$(np(j;wk9WIA~1NCeEZV!F>&%Jg zgh412?C28C5A3(`jwdrBT0m3Jr$^gbBk@s+w79v|)&Uqi(n5z6v+b7xQYaMc=o;z! zxbqL6S@){-Y6ZS=DG{u6R9ZI(^Ro!?yq zK=6US%akyb3*vCFN}%sDLLvIlc&+Qk%GDA%-XJoNSehoBG7Ou$2BRYY-ahj)r~Xhl zSXePW>WuM?Talw}t>nA{OF*(3($AO~%Se3m#;r)a<3haS0tGS>AC1IER}Pm8*>Gbv z+!#%yqlq-(^`1FNN&wMB+Ff1K+uVfEDJ#S(NK-|>u~;4JUn$PWb~=6Nmkd@Spy2=={ZzzK;Qn{q@fqLlVou=!juflmLLbz5BS&pL_aW!lRixgW;XQuytm6 zbeztbruRN5x}}S=tgrB@>6A@hU*UDmEa#lg9h=2FgJH@`r|=>UG$0jX7b|)MTBSM= zn!9(`YRBBf12vPjIcYtXi_OK;e=@UVqfUep@z{!S!ag;VwjBL009iUbzE*&pzMB5} zt8X7{an3ZI-O%m#jqV77ZIICx(ZdglaS70+7A+On!V zI8A=$%&T@H&U@{lZoLWHJ!4V z@^E}?tpnM{mFnU6=SK<;b!LQ%3Vqwu^Qlc4=)2tb(eIs;X{Na*UBCE20|5T{XQz&x z?5CvG71b=G1AUhdg@b1CXjXom!(&uw#yj4(K19$D2csi4eeao*ox@|j%}s)&;L(%al*g*<$1;+4ObG+jy`ar(Rn%a@i_PjIGVU$vM~1aNrihuo%m=zb}*L<^x@o?p9dh`zEdOM_9vSlNS-vi4^vZM3@#Vk zZcqiI>zrCchORS7f~umd3=0baj9#_dUV*JI)V{H{Y=S{NdK{AbTrwLzTi8^2$4{2o1m&sSjSc5~`o0Dvr`qy&tiqy*cyV`@sg z`M0&!tf@9wN9IDejbtpT}Lj5-;-$zLaBnh*#*s%l8pCgfg^Zsf! znvzNQ{g|G{u3bo_M7xRlT)7<5X)G;4*TG({4l&Qjmy-Vh4j{BhrG0#J00000NkvXX Hu0mjfa0sJ| literal 0 HcmV?d00001 diff --git a/html/map/CEIN.png b/html/map/CEIN.png new file mode 100644 index 0000000000000000000000000000000000000000..3de698931e6574073e26de19d2de1326bcf350fd GIT binary patch literal 2371 zcmV-J3B2}+P)g7fQ#lw+O;#?nc>v-9 ziuzV6D^ZOUDL<-;A1t?WqdxSJT8-sOZXZ&RDg}wkYV&GAYr;w)fmp^a8yi{Jc(;{> z9AKICu77rB=cf zr{VZpdjP~o7VQ7pIr!P{0pQUi?ApaSsT8(tBRuFj!%u#PKmdZ^H0UXY=hVYfJ)H*z zJq1ee$9lP;_4SyTKz%(71I41mO{4(W@a$8R83Bx$?*Tl8x-Yf*MN!rDPqNyD?z`ol z7(hoKGz}9I01ymfVF9nc%J9Q(s49X%1cPoc3u$<&$704>^6l&*fPtGQ9;9RdwXrH1 zsJcGXm9&84BMaPC@**#I@efN0KHAUao{}BO!b?quI}Z%@UTy=>-g;~-nb=vk?Qwcp zwMrFW0hc^nT}_!PIq*Df0+5;x^QAByrYNeq?ia-ylh^#BNMF@8?o7`;rg87(Hqxdx zR@HlSfUj^(10VpfN^5*%AwIG|c!XrZI5c>FXn$SfP5^}W;QkVTJ>f%sQ6x?-quiLh z2H-(T?!DYLaPtI4`;i!cKra6L50;4*p4}|FV=0Oky6^V>a&q9E$=X;|E~C&2A`CJ& z7?u2@SQ{%9rtV9vPv0cAP+R_Vz}WMFLP(_QdwY+5PU~o9d=UVm@QdQi_+l_Bsk*)= zeCPoZ0Mc`hhq{vJ=!0P}H=Y}&?l6A(D~{COdd#t)7V>upm>k}5{M1-7L6IgV+1h*b zb1G8Iv0f}Bg8A&@$^K7!>}%Ejv;&V`ziQnDvqP ztvV;2_)(h_Vr>4W-uHAR@Rb9_zl*o>NU2^pL)m%o& zWfZ&Q@ZWBC|M|pcA5Q}K*I(~$3`thrn7pRxrk&r^To;T=PaYQRlFjkm&GFrK$<%bX zHdZw=zWC#J_j@jBZ!2p;4TY@c;Mas2+>$Y>;8S~oB-cfxsw$@+mD*u z{&0j~W5*V>+$Oy}mP|~3IqRvhqj+s#rNNk+>2_?aC9mqb!^#cc>XN6GU)-8^^EG&Q z)h~*I>0!;GA2i(lYRd@(b3Y#yd zCJaZ}OihO+#-8oQ`{QK}AD-$FJdam&rg1_taoY}`hi_Tn85*Z2_|~_bU8GH&V8^p> zWgS_SnhqOg(H-@M=EkpYOgWe}p@xG;8fk{%sh;-MW3-W=r{KnmwdCy^`%;y;HCM=L z4pnBSXV)vp4i3$K=gP^_|5k)OiN1Y*XupHmeW~@`KfdM`CP`~fdeYuXy7K7=PV^Upu7zy!^7ra;ddpmo{nT3zOsGq;&FnsZ@5~QFvQ&uwFU|f`BciXmm>< zohPp?qHK1{Aq_*one$tbp5)aNzeX-6xNiktDjooaGv_(`A0NG>go%$V;LLfX(*Uq{ zuLMPbszOx}{}9n=e5C(71m;&D@ob5;vLe7VA&RK1WUsu!FZVk7z7s!}u3YR*j$%=Q zqQK{aD4M|_Dk_l867c_Hu7}3iEWaEz42GlU5DGEBAA(>qhP5^Ob*=mQd9z@2!%mmy zs!CSDFre!U?Z0562>M8pxwHg;-@a2LATjV929hVO?n5dC#vqFD`$1QFh9OaF$TSQl z2+%ZCR$^s^gVAlf;|lEAMC}`U%ciXjv$F_=c;`e>Brs+Mg9rpnYLXZRSI6pg*!wJ& z`i~x!wL#qNn`o4G{O0EoiIlAL`z7jK0D#YjKmd#(5WucoNTsm6Y<~lIpt{>P7U$tZ zFox~hQBi@NJ2`V{35LON`nM<+q3fuqKsXGa4~ha=Mtwb>%WADz14nP`8Ev+uB?tlx z1B!w|ftq^~Z+I07yjcqHF5lD?Z`mv^qNWBm;YRf^dSHM002ovPDHLkV1nt>mS_L~ literal 0 HcmV?d00001 diff --git a/html/map/CEIO.png b/html/map/CEIO.png new file mode 100644 index 0000000000000000000000000000000000000000..f3e7bfa2ca3432d3d6c1d2ec391cd61b0be8562a GIT binary patch literal 2452 zcmV;F32XL=P)Lx{sDn+40;ZG$LRmzXjNKmP1)yNfbs_iD!U6T#yzAsB?u2LPrC(}b?0 zR6?NuU58~cL0N{^3$GWF1jB%?L(@<$!!Tf3P*ntjsHuT0!!V#}C>D{+p;&}r+=e3b zUj;4~R24242thE&{`=M~SQhg6r56kXi;GxXL@Yym_cp%I8@=LU~LRDc| z&~+FF2w^|Vf@#9C6!`rx3=|5GWz5Wg5Y*LS?OH4>uo*i#03ew}D8xASfRbsVT*mY? z06g*t@_EL0yP+t|J_@Pp$ma?6A7w7mG*}ih-!Pa@OcMY$Y+$q0)*_Puz@9wS)>av3 zvj~OQb729xj`?{7guvy3B*C(pc%Z6~Bq$0@ljTSz165s`E|U>0%VePIP?QQis0`&-q$vR*)OiYWIS>M`ml+2@ zQBW$0v)J^@tZtKR z;3W^&)zOuz2zXU(0$}JVR`~Q3jUtaH{Ha|q69eJ4_O8TZ`+Hp3-84JyCfSvXRfnf{NbCI0HEtI!PZ0g z?67_Lj>r(`?DAK0Q2dI0`CL+QL5uP^f?mjp(1pprnoD7Vj=U|!^ z3TJJqpn?8yTU4b#I;PM5BlW^l5U@VmCoqMXFYaB>P-A_BuhcVBuL$l+CKCX@{n!B~ zzoTO*sKb{N&KSqz@mMTIoyUI+Bwmq+!f)HLtiPF$$K%~SQ#2=KB~pJgUw@NrGP--F zWF;aikz#(Rm>;5eT~EDFnE;CUp|xSDA#(b;ANYmRFFC&k^qq90&z&q#KCP%9|Myb> zgKzaywJ6i$+cEZ^V&cS=#EC1zBN}DON@VXdH|V=h@AV1RE6#`-dP*x@Roxq10WYv< z^UE6k{NCRM$#^_Y6=%f-0C4GF?|t~eqkHy!1>nuMvcmk56Ovk)OeV6;Rz*%WZvWna z?+TKgJ8L?3)(CpEwgd*x&mDa>1mMWNZ>$Vy=qc5`ad+c(-=!kYPdEBLy7{RfDM`V> z^K(v(Z9U%j;L6I7*6kg-E8yj4Uv9&{Ylly3N%4~Fvr$2h6(ALLJ%GRdWvIMR;Q3nV z>g=rPH0az=ULA{6oxLrpt_o7uCIKw8iUD3X+f-L4%3mHyJ^93=PCa^~I{*xiXs`V| zv|1~BqdR!V(pa`fBl%4p-iPhc$k~5<<(%Y3-F2FMtIAj!w$md+PUhLc>wHd8gPz#c zAV{VgeV0d4p=)Hdu@vexAIqxzkIzmyneEZYU8E1Kc2)EsiV#b>oP^x5H5RgA1;?fv zeO0_|>9eyYA4^J|FUb5Nq5e2Kc%6Q$SL;~Q$O7OO3Dw=5EC}^s_;O` zwPN~6RZ0O-{4u|vTv=N-6=?d<9n8vBYUOH~V(GgZw+lR%iq03va-{&k>+ur(QqteW zz3ZjrL<6G^#}Y-TvGnsY_^x$_`;Tw7x#-@CZm+hSnOt^VW}7Xc6aZ!}o)b!eL{_+R z`Fyy{J6yEVK8=iyEePpD>ykg_7t&`rjqMdOJfbBA!t|3qo$9TyQrODMG7;0qD(`OG z&RZ!fk!W;-utH=dqPjOe+1X@oSKHdV=thD*B`2P&L|R({PW9K#HUSW`g((pQucKi#|soqm3>jmaOfA|ltZE^}zNqf!;yn)~Un6eTB;er0JEkwsW zhlg?QRH>N2pHB6*MO7P*LXxWI)~btDIP%?LpCBB5>BWM*l~sfj&pjs|Z)sDx8Y{mx zIqf01|5S0`QS4RjbS%0bBuUbPzH<(R9w?-E@_Im&%|38Q)0D9PD1V)Gf4$mu81wUz z^H%V_;sGGof0VJ`fAu~sm@Q`}vHvJ0CIFzRNkOTEav9|^wjM$#wB^jPdk9Q#U9goq zBjj=tEDN#>zn?TTu*#sf~rE6EsqC2AF^2r{QsC+MdNIiU5=V2 z!Q(H%>m@E1B*`KKg#v$F>%4wmEf~FFr_sBWpg%>i=H>vf+jrUs z_~iIq7)U*7cOS;bK?r0SE*E5(TB*?1kY$=glA!DG`;p5rFnZfAG$ig!w0*<3Y&LJk z=qS8i);TGa6cA#0JaD@$+9WYerjFg~;QK7L`ss8<8^qbZ358h4@7gs4gG*MrTng=7 z0D!8(?FJ!myHQ_{@o_9J@?U@|sLu9{&6%DCA*iW=&xeN}X3V)cm?lB@FQI8L4ETHq z1fZ%Ym5|AxxtYynx7O@|(A&C0n{93mk_6L4sf1#YHun_P@G2HrvlL)mzTsikvbl8& z;V@=rF*5___tkDRWikkbFfoA*8<5Sib`$M$l}ebON1*`Iv>T^)Np_9=TJ%3!T+Nvj SW)7kN0000cjkQ$OX>J|vdMmO;Tnd%i7z9j{hFt9 z;L^kJPu@DLb|<S|@|zgE{Dp*U%iO9JESi~@T7<&a{wsIdSF_2Z zqq(DUS7k`@rtR;AK)^_N`M;`9Zt9)E`bv|dwV&T!Dk_#Qr|>XUp5R_YYQBsdK78z!Jx{ zf|9;`u9dI7D*qZKq z3W^XQdZ~SFRZXx*Z1}0y*{@~3Rqp+Nt7P-aXWO=&`}8w?()LmhAUHAqH23=Vc1Py@ S(Ygcl6N9I#pUXO@geCxehjwQG literal 0 HcmV?d00001 diff --git a/html/map/CELO.png b/html/map/CELO.png new file mode 100644 index 0000000000000000000000000000000000000000..6d9c50437eb58a2b3f4344820f5937cea44aba59 GIT binary patch literal 276 zcmeAS@N?(olHy`uVBq!ia0vp^YC!D5!2~3ek}s?PQk(@Ik;M!QT(3cxv8kIk3MhEY z)5S5Q;?~<68wC#;@U$jQ6n4$h*v#x5aM6fk^9Fw917cIYXl7_UXzEZD*WPBit5jr^`@ae1QoF(Neub=)Vz-?bGU!HoHGx6=7CpVV!$E1F>x+*6dZ}B1SS48x> zyS*W=@2E_G0@g))cPh*gQCru3_|W2&XYSfYPrCoS-s9diu-)}~<`xNI+vE?f2?hFy N!PC{xWt~$(69C(sa9aQX literal 0 HcmV?d00001 diff --git a/html/map/CELU.png b/html/map/CELU.png new file mode 100644 index 0000000000000000000000000000000000000000..8f7bf28ebef92c8ebc541857a9c17d7eb990ec21 GIT binary patch literal 143 zcmeAS@N?(olHy`uVBq!ia0vp^YC!D5!2~3ek}s?PQk(@Ik;M!QT(3cxv8kIk3MlC4 z>EaktaqI1QM?nS!9+r(_vKoi1=M@w_ooG7Y=BkR?^L&%F>pNYPCVHp{VN&}iFx!fA WGj4CN<+%$qjKR~@&t;ucLK6T11SmcL literal 0 HcmV?d00001 diff --git a/html/map/CEME.png b/html/map/CEME.png new file mode 100644 index 0000000000000000000000000000000000000000..7148aba7c6fe259d198e8e51008b015cac5389be GIT binary patch literal 1565 zcmV+&2IBdNP)Tt>0QcJpJHHqnJ-+Wlt zJ*rMd+GXO5*za4UyA@a z7DC-TS;MeV!~HJe{D{qu))-A1`;{FuFe~@Z?-|A0Sezry;UpI4GNKs(-mCe>uu(G> z6LTy802fUI3mZ1&=@rt+P&WVzV=?iF%})cXsTH(-1Hc`Z12<;i~Jb5ly zXEbSqbP_Wt)Xfujb!vT%1*1tr9z?=trO$!;y5r5)34t`yL6?QhKYr)OeD3|5EGORY z84hy*fJj0*sZ;9#pt`;^=;Mhda?8r`5X|YelBLV1KHckRz`1RA=`2?2dq;-E&#&yj z+YdK?@2IZ``T(+!V*&AIeC?x(#2y$Y`9hEk!qL5shHHT?cgII4$%tmPCPH6n?0`2) z>JqWh(Hslsf^~HIfqt$BZ2zz_F z=;xbuG zKAyywBzeFabu?9Aq-aPLZAj}W9f@Vo#|OO8t36FudzvtiK_8Fl0038enlhp}BbrAB zg^@u4@my_RXGC)(TnqpsgMxOo-s!e}B6#L|U!pA-KVtPGZL0N@j!u)$+G+s+x7iJw zwPT5N(8srTHcrD=hfcC)%S1*rpS}Do>OZVmyYMU8Y?*kRcq$j-o}yi?PZaS0kSOBK zmWhBjDx{M_IypI%-vx_MP@iWXK>>2+#-T6}_dD6g~_ zDlGn|d!I+z z6tQD2oyyl`2gZ*#UndOEjXfCy!O>JEDKTXz^p|23BwK_^`{-iF&HT%YZk+*u?sO!Zb-)|F z5ZXf%t7e!C!1-Sqh_Lox$t8CfHSw(2-r4AJ^|p65&N?7qQ8U?@W1iD(ZQ16pt}i9c zV|!;KIdNjA`Q=Zw^jQU04|Ver`Qf%*7dvhurTNyGc5$vDIT6SY2y;E+bXzfNW|6u$BM6BdD1|DB! P00000NkvXXu0mjf(dOZ3 literal 0 HcmV?d00001 diff --git a/html/map/CEMF.png b/html/map/CEMF.png new file mode 100644 index 0000000000000000000000000000000000000000..bf6109f1566da745ff6919bd6f44d0fd941fbd11 GIT binary patch literal 1417 zcmV;41$O$0P)iWhHX8`(zwgCU)7TW~c`lXKLV zbUs)lk%`^f{a~saA9?Jb5};I^7_aWbo{27Jz?gc0a#6>Kln^=}NUmJOI9h zWdK@uvQfOP9n0ASfG{+P2Brug+N2FNCEDr_8F0A^xgDDOmsUudK8G_n9%R8HXJ2qN zPdp+S7)}H4{aXVrHvr=O@kElrV*X=%!5zDQW!F-eyF;n~!}gUIJ!vAN2AvkzL^j2U%FY^l44 zf}Of^lTDvvWF02U{_t$z_Iu=BHi=psTc6GYAiPm94XfX`unbwI56v5WHy559@oNs_ zBdlL_k#ziFZn{?E+(k)vW#)aeJf!%IpD``X#h6?@F*ZuhW34uML{rP8Pn2h zn=vgsr-kPzkTESy=>R|r&y^KVS@EdFl3FYgFFG?tLI7&9bg6$J8t_7%KJC6Fi)jy| zb#hS_wXc}z=3170MlYEf1^-+o+ACGU-QnqSd&HJdwpWtLYf`cbiP zseb^V3oB_?vum5NqhjHxSO8>WW#WskL!Zp279Ie|eDh^ODV|J>m#&U7-Us3reauCAYc zSTc^vmXL2IvW)_4_SNo_$8TQ_npYZ5GDq|bR=T=6okPQ1ES*EcPq*XT%89X2cc89E zOBrh!HWKb6;%0*!@@4bN-6xOF&^k9d$}Ni(!1L|z%|gx}=jqnViboRpSW-DP(pc!| zI73}p3iT??#R}l9;Japja3N^!*iuDr(c3XC{Vcv^sqq==(ynF&2xg(#v1P?mt>~PU zO>cE;D}OG(G|Tm>)qa~)L(QV10$0rKs&!Lo49+c-K9<*u*(CsSi64v}ih5OQuY#-j zR?~;h-pY$29|BQmlIzJN>+nb-a{@X3Fh>)5r{PA2AlQ2Q&GI)ogwr%mCaLvZ6a;GO zM3%?4vRqZ!)hxa1aNc$g4ga+D9Vc{kb-DvVdO{?T8TE}sXQm*_(SY~Sb+>5dl@$-y z?9$jt#P!kvr^>TzrqO}S*=qE|lG#4C)8P(lu0OV`SqLJ4>_;E6+ark#t)$0B1733J zqwDSyS2T6?#v}00000NkvXXu0mjf(j2Dw literal 0 HcmV?d00001 diff --git a/html/map/CEMN.png b/html/map/CEMN.png new file mode 100644 index 0000000000000000000000000000000000000000..65b5b1c02d0801ee89b5f6596cc1aca4679ff8a5 GIT binary patch literal 1376 zcmV-m1)utfP)%qcN9N2_ckhPB*B6rZsay`WJcp+B(uy1tsRBF zjuBRx!l2vB7Ffujf5V`XhitH+P?+GzLth1%*1+6qLp1Ac(uMltWrm-47n*LS70|1QTljd#kXufTr-m^P!TVpxNN&d%sWzIJ*v>yf zU?hBWd?G4DFw#*Wg857r35lm5Ax?fI=-Y%3Q-yxTW}CZ^AU z5tD|_Hp{_&k&<_|S=5^6xbt$~DYw`*+=X>n7o-Hons!tw#EY&DO7r)pyQ$dDi|kRo zkXHL&nySxUZBnkw$+?=PG+*ZaQ5!PV1-X%Ytx|y1T&<_lZ;!mG)|A)Uo;sopc-h%z z>9v_D4ts6pUsj${npeiJ4vbiFUsuLzh7E;}S2olRz2$yGt+}2`H!wO^YUP^63ILBE z{H7LCe4J)l=k0k8I4YJ{PL(X?Sf+ux)D#w>s4i9jaK78C=7S1BZDJ3KxjNa73X%9v z>zWo*&8vo&#|)zus)^<8`GO=-UeMKyEz?rP;`Ew4`ns8E9O`tMqqDlI#H8W4bfk{D#b$lDoS=lAZI*!%D?TBd z@VgyjI7oQ{GAkPg`$fu>_2hb`hFs}r#i{)xCmpI;Q}eNyG#u*y z0PcSND|vf3;YUq;tfxPSl$IS3u&4`?q$v4j9HY(&Wq4F3zi`5jlV->(kcSAoaXG$7 z$#35*!vg?D^W3UgtkjXO%A7#zP%g@l|LLOeWMb>_^3;p^aB>!2s=pO9zsEKqn~+V& iCS((`3E71F-`3yHQo*>4BTcRV0000mNYiD zbV=LX{PE$dr>E!MHrd4blEdY4@0WAW@B4lK&UXTE;KOjQx9)%;xr1j}hAcz=i@`tM zXDy=(`0yAx_Q-jOV9POotu#W*OJ9e7R9XPA5_4&_0;V=;n(_(Cp;vJog9Hr<&TmN-?}h?z??2W8ivLL0Q6%2K%%Gbf!iBL zerh-`v~uAgnORNb7Da9m06Na3f&m+A*p|@+VowH!&WEqwd!o8W{Od-lx<@3zGC$W4 zy0d1XEG)Eg0MOj*4iCv9w;27E^ZMdwQC^Fug>gEBk3A*;sO}M+E;j&xi&zD=Hhx5J z0l>9kt7Ue_qv5cO@eBX}@f}~%cm&Dm5I+C3=H2&`%6D(ju}a@*6=hi_c}cK^R!$A) zediN&`0xxZL^|>OX*BPcA~6}l+{x(n4y?oh0B#0{EwkVoNMNBTQXGN-o6{lSh0k~o z3|g5xGokQPA0uQ|zSmnvuAL-l8C_V3pJU7wi6{W@!i%T1^5$kYd7YY6wtc+Y)E=m(tdyH2&)K#f`jV@!T(ei9!I_ zOpiZh<7%am{x`+__Dj?Sze(85rpN}Ji?{x~3jm>u0aOcxhs^DBzild)reh^4YO1gt26#y185O?1`aLsKmSt2Niwlm4pReAyeypeO z0RUXMxLUj`K$ek+vUqdIAksx z6HHCr_BQjxCM{3c%{Q0sGBY{u$DBkzQ#;$uYD0{k zS-0w7^e6(!3v~eS?Kk6@^$l9CZp|c}DNn7qZD@p7te<##EwjKBucG0@>68KkFM32qxs1AJC}8+t2UDD-n$e4tLblu9#>grJ z=sIiIs}umhNAebK#(3>_*t5)P3~S(-8jIUY=t^OqBgV7N3hY&}y=oa<*fTFzj~AFy z0FY0~DW()~h9c*u`%@X(;L9;Tr+XTiom*$Z2kVmP5t;DWOJkBDQ&Ck3+Hgz9BO<5U zIs<^wXkf#qkm8=9;CUr&yGAS6aH8;CS^GG_s<(MBkO|LKhk1$S1L?Q|$2WQ$?o5gu?|s-DXE<*Y zk51>&yLqdM%y(xSA3vdAsZcDM?}G!vkZRRN2wWE_(VBw;qR32jK5y1?aH{7Mjz&63S_^1c9e0(gGO z$dEEQBnbk5W^;(Vc!br3YrJ`GQdcR8#rPQ_yB;V*;&m;5k`UD@dwVD)0rO}bnD@`Z zAE%?fePOhgN=PZV`-p#E4wx*j?>z+O=H`;f<-Z@DVqF2H>;dnA<1q6t=a-kC1+Ok# zYo{@Y&+=mO~WR zM{%#pXV0FU1?)t*Kdn|}$}h3`ywjDjukSrP@yRl*IPlx1N?T<%W2KFhGIgYoq>dzY zB^>d38nkTx=mQhyY@|G51>$k=n_Ir1ENjyx(GcDy>DxLNr6c+Y;Jy(c;T z_WY^$>C?tfnApz!W-4p>?eD3l&&`{u!Dd&=EH0;>vDK>0`a1B#yH~t>b>_SWPY6TV zTeUvZSp}*`o4whU@|ouC>`IvjPhuZH0xT}GxO{eZOPn>vcesAt#`g&Vf`Ge^C>GafaqaS4RGm3F9BlW2`)F)|`9T{6|6`K6)AH9Wdaj#f+J`v8`u^ZE9%`K7O1-QM3; zDwIl;N?4ZQ{$p}E;krnvg`m;sEZ3g4T-ql6_?PK;9zlTPU|A?d6ba^j7M4Z)v2DG- z518tEYy`Z0aSCgU|jEqpL8CYDSjz<}=#dbrd zv2o`PA3u`InUbvU+X$hvSuzTPqP`Dd$uvWnoVPtf^qrYzbBJHO18F` zoMdm0-QBKaHXFtxqsj9q7TMfnYKlt5*iEs|<@;2tG#V(C7^kVW{{U$%T*ol*ol*b* N002ovPDHLkV1j27kB9&O literal 0 HcmV?d00001 diff --git a/html/map/CEWU.png b/html/map/CEWU.png new file mode 100644 index 0000000000000000000000000000000000000000..d012b27ee9e03e157e6b7e01d6a4004cb55a228b GIT binary patch literal 3902 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 literal 0 HcmV?d00001 diff --git a/html/map/CFCE.png b/html/map/CFCE.png new file mode 100644 index 0000000000000000000000000000000000000000..391718a945b4ae8aaaf7b52a695bd3354aa913ba GIT binary patch literal 1906 zcmV-&2aWiNP) z000W>0fLJSS^xkCBuPX;RCwC$Sx;!&Rv7`Grw1=(<=pgm*bEaN>i)IRYp6e8jNVvv0sIB> zn%c3OA$b+RC*P;{p5W(;|Cp8eRX6(nWE)WS0KjXg-Ukgp%_HjMk(k}qsjO6P?kYET z0kju?ck+>yjsTSJsZS5k$^YHyLng+#`e~@_9j79((vg*p%JgoY=+njDT+KYX93{# z*C4X6($RZwMF5_?z~Y&hfhVIXBmEg?O_x-$8FE}j7HQ`sfMQuC07{?w<9Ib*`Vd={ zVZ6i_yFHf@>WcpKAcpt1q1@cfoQ=KeHPpQ)kS8JwBH?kU%5eM=AL`f)DSl)hxiNM! z;BVuHAJzD+ixHQp$fEu@_U#0Un3M53`7Xwaj;|$N-3$SA8c3wEcm{h@9Xhm)U@<7g>lbyoM^W5Z85)#p|!ZYV_gFR+p~p zGHT+pF!5PPx)SByAArkG*CLZQG{Clk-!TNa-!GL)16B^84%X!#AA_~HuFF?;08I#t2Ca`Cl}aVswq=FG+&h>)(VZpr-Jb|G zl}Z7SRg4>@QVGEN`a0Pc-C4p`sJd;UdjM9Wm%wwwCVFXD4G zrBbQfzki<`TPzmI=tsBP0K5WlyQ_26CDcC0zVi0cqqU!CZriqD7?nz;QmGh*QLonx z!!QhkFiNFTsZ^rdTrTH%p67WSR2sk9uw3B%Zj0@@w~u{r;x~S5HDFm5>8)0)hGDc? ztz%O0n#59DqMQ#w%|x#V>7z6b2e^zJp^o zK(a#Inu-I`_T;fKsU!%U5q8_Ucyn=yscg&h0B!1IKRkidDv= z5SpebS3RXVmUV1}rTCH(KX__V#5@EC5L`Fgg**Co+5#8Z94oggCX8@EzK@c!q z&?}Z@S(as*CjTOv!RL+9>Rn#4Mtju4_)EV5V6pFa=4^Slx1 zBTsDG=7r1H>}1n4lgXs(x+KqSnG%hzq=93}w61Ur_%)U$b*ziCj9%do@*@%^lA!gCNwrwX8i3u5-OeUHC1~SfdT~b1La*TSA<&6TpV47wS1QeT2rz2;q3@=B) zG)>tJm8#e4 z&!0cnG%W~%VzJ11SKcU$+*i&Gm+jix8aZ=kXNMo9QYqq^Q>RYJ#7nycSu&H!92^`> zdm_U7LDzL@SJ7^_v)Sy(H>qP22g#An<#NM}GwGn4BFg4oxpGA=WZE8#WPb`gO(tyB zN9oST408!e)@ zg@uJ-zumfZOa4Hc(zl}_%NvEyzw}wrI9=R6=}RG(%T04It4y%caU9#Wd2cu@qiGuT s6XLnQ=RbSXA9+rH@cjQj6aPEoPmVVtVgV&CPyhe`07*qoM6N<$f|S>-G5`Po literal 0 HcmV?d00001 diff --git a/html/map/CFCF.png b/html/map/CFCF.png new file mode 100644 index 0000000000000000000000000000000000000000..fa1a3120a84f96189cf2f5ee1556d996caf96889 GIT binary patch literal 2060 zcmV+n2=n)eP) z000W>0fLJSS^xkCzDYzuRCwC$Sx-zGR~rAAfLPLpEsg`1lJ9Fr&XEjuMCcn?4F@i4}iO&6_JeTU(_nQy+|{Jwwh^MmNnN8RL@b;yv);j{b+ z@_z-gZ^$`R$i5+G{OXw(L{$!ocW*v_s4QDT?L_o~M3vep&U`)a=x$cLbA0^TtruZg zUprndojvkqyL;n)Lu=^s4_^k+|Dbr)$}*SE!m32{t1H3BnP;DW*z@0F**E0;J0kUpKcteDk=M#l!%PpI1xR%n~f$*>`_e!B5L(F%uTH#lxjp(s#65N#MEFeomEsK zBKO99kORxPsa432T4K}^wV*0hYWERRL9yrbbt2jfsfnpUBI@e)5z$-yJ+Lr<@ddRM zrux0`5H-1U_N(++&Pa^M`De`U+2b@3HME9cWK`h3A*V{(C>8CAsNtfTOJ~`yUEMyP zXk{>Xlu;KK@}rih&Q+<95_gNh<5J!dYX5HKd%)kD&nxL-N3e;(c=FFb-@$i$xAJ|J zXi|3j@5r0&xpWr(13x0_IND_N#<9FNpZ~|?Lj+N)zhQA9kGUoUxIWH2t5PBq8E^dR znOr(+^u}94?RRD`a9st`Uq{cvVdcIUe3ghgf=vMK>h@iB+;bzh_JM@AA@|iE&jO<* z)c)vh*65A@=Hhfqs9jOFEGCbRqfH2z#Erk>4ukC#K|5M!+4{RJ!;Iy|0L70p2Y5mV z*LC-T+z~zyibkXSGGd4KFR<_G_H}jp78mke-M-&l`8k&7MsCS?2g^&xaiYh2t^P<>q2wQU<(_&Pox!W>J$V-Bm}Mb~v>u~-?) zvTP~O%P+4Pti^F0zOn(B6W_%5;ZZCWGfh)gXbDPMJ5bBRXJTgH*T4J|P@9{ZiAYwl z*NDYpL==fcz;9w^VB^8cd2>2y5ePf(b^zD!rZ{Se%Z>{?R_FKoGnotv`~7|*!kt7S zar^dd7#2Z5L<@-=5xFi2L9R=d*mmj;!!~twe0%*q_5{;3HBCz-5{X1Y)3i(`qiLF^ zX~2lZVzF2ZOT#dd$z(E_WTzr|zWDT%<8HCE1pUF@GH<=?;ng3Cy!l;r+;BJyy{S}6 z)3jo-sH!SpaCKc**Y!*$1J{Dz#LU3z55=DT_J`lBztB9REIhFGao5<*0yQMT%d6DNo$nM_s)A9-S$ zCV#k$%|_OBT~$@baUjndBmxarXkcG*Sy$Kx{2EI`9qZyK!z=7Uegt6@DO_1t-mkXH zI#l3lnr2;HU6qJcRh8>sS;RSx10}$deY6cZIkwe9=(_HC9(+?OmE?$(;bkxAx-Odm zruIC~bzKC`?pAMmi{_2nwr#FEm;?fWrKKfUJ`e~HQCnNv+S(csEiEk}QasPob=@!w zB07Eg^z7{HUah54*4_yr5M4run>TL;0)apv(Ad}r8Q>Ao+S=Ok@^WKiV{>zJCX-oT zUk?NVp65lQQI5OGF{@%}kU=c2}Hg2i@=}(;XQZkrNs1LB;A1$752ZRj<&; z%Ayx9UIcb3l|s4KG%XwsbLp4&0J+9iKL)DMI&;n-rGyZ?U#3ziHX1h~JOTW^$4=Ew zw~%CpVQ>%@3I%@3^FpD(1*nYl!62DUp->nc9K=%B_2J>+U@(Z(l=q)~H`fE4;UWF` z3lLDe-*Ii)_Xk%^M@?f#m qKhA&lYCrO<{owhhe z000W>0fLJSS^xkBJV``BRCwC$S-)!=R~-LJ2oCOs;3-Z)8ic@i&?)b-Iie;@Ou&oD z7ocPXw1d5HAmmgeZD{6JLe3;pzCe9-+!rJGi08wy?ufFzd)`xcCHn2y|J@(cv2*Y2Y^7M_k@{!& zQC7vS6pOEpk6#@h6VY2ud#h73L%DJ%(f+?;%~a;@Duob zb&(MtTr5;dWepObwpuOTEZ6{G><+;Gt){h;#3ce=5Crp`3OvtiwOX$0wv(iNc*w~` zCL@033H5p%NI?)NrJ^WeFG*>5OezS1z;#_n;pgJx$LQk~c<4hbSQrF>@B1m1sc1>Z z<+C_uDW2!?lNG?6co6%;PrmOvj+06(sTdu~K0kf?Gc#zlTJUlyVp8*cpNN{xCipcg z75(sV(=a&jWHKrY?MT>(qYC0mrBc7&=gFl~iHI=L>2$i?E))wVAfi1@lYtJRK%H2; z9LF(Dv(xExIvvwA`~ALYnx<(2!}opP_wib-R(ri(uh)Y)_!J>MZlzdc^$ukpy4VzE z+qMn4Q52b`IT#FdT?Y)FK@eD$)$jLVTJURDDjZ9Ux^#HhCNc_zPb|k~JG?rM!|tx@ zI+v%xV8G*0GOyAv!UhfA{Da6xIm0lX#c^jOPs#)au5b-dfqKI*lupYf7U}6hlI&?3 zo^Xy!TYiUS-z3AO;A_r&(4oYG2`$T#xsB5#i0)|`5xGR|B#}W?*xlZ^|Hx}6N&62X z64{voj&Z3v*>qjURxlF@i-_7pH2Ko<$$gYkaw9U#>-D-)YA_f~5@A^u0twj68_7s1 zC3SNdBkh^+qP}nvMe5vq6%ZB%h$2&(GV(90bnNQj25yy zD@0Cp9EYbOd4^&5^y$;yaASS2Vr|=IA@Jw@{r%KCJkIkx2mzk7(Iw>W z_6FSDvaB!+VVm>wbLp`XURuGjEU5;lIt;@g2;exQN4?7u{i&D`xvtB32c2@cd~|dK z&6mq%B3f8jI6XZjqNAfDcuE+CmSt6|RU%qmUVi=hHIz4cv>ZAWtT%SJDk-J5wze>? zX<8VDN-4mgot&I--M)GACg4Hq`Sa%o2M3eRu|p@kyLa!td-twZt3jD3Cnxf{3FSjN zCtje+nWa+c!-o%950%|+7c4!`!>Quq$B%dJ+!?zP6&pE7TDn@TPCq)2x$MPpj5W1d ztIgHnLZmL$g0&UCqH>*lpi^A6xpT<N(LwaE<*uCw7R;QQL!`rvzPsoXBK{$Aiw;Z?W!$z{r?#L7iX_C U#xqp3_y7O^07*qoM6N<$f?Yy0i2wiq literal 0 HcmV?d00001 diff --git a/html/map/CFCO.png b/html/map/CFCO.png new file mode 100644 index 0000000000000000000000000000000000000000..801b5280e3baecc89174abc9265cb8e8f34403a8 GIT binary patch literal 1928 zcmV;32Y2|1P) z000W>0fLJSS^xkCI!Q!9RCwC$SwUzUR~r8G>Q+Gt4yJLumnh31?3qF-=uHTLARjB} zr8N%hVelT-JCnd(LQf@!rH7KEDfAFc4h5rILYhm#X--xGIjlyPLPs@1G-?m4xQm)l zDRsf4J$&-hlPt+n)0$HH4#S(#oBwXQ>~b2wOFAm1aPfbOxU(Z~EIxVqQjX3{fwx`7>SFN0P7vUm zoA~RR58xMw*TlqbSIH`Xzx`+7`!c?{`I~u}Tl1eq3(tYsCIAEhg7XakZ)ecCD`G2C z`#O=Av-fsq@9hG3KKIPME~Es2`?v7qY1FwZer00mB6IcUlV8p@Pq9d(gp{~{3%k#v zr=L!z58_C?+2$!m@wFe{1R!rL>SOAU(cYU*mBf*h_HOR%sBRE+JEt>HsWc&~ID*oH zEX8&e^8!Hd!48RKyML<-Uvg1$Cqfltw0pLBinl+X{1U+PcjtL4bAtZqzLN<+5x$BcDSE4+DD9#yr=L8H2p?=kv-fsW7rU$m0lqKyS(G_J5gvsq zhQx1m5!+S9kN%NHl1xoKHr<{a=K3qwyR`P=0p%c z=7hYlD06~j>Uh)DrSJO+HTL>W?DZYmqEThq3l0XXM6s2~bzLbX@ubp-VR<_QG6(|C z^8mQ6tFGSGI{UmOD*K!tUkrkvP$&#|Ie58^3vsZ^?7udBhSR0;r}6pO`&4m(KwL=hl3p_7S^(Vd<+Y zU$gHxj%k|3VzF2(nx-BDmc^+B)4nLe-#kY5mm#}>R zIC%~K-q6yAcoWR-Xvl!?7!`*`(2uUK_FhS0Jsz3Q3jKV{M<%GI;00C08{!rmA5zFt%_Tbpif z&FAQY>Z6zYDjjs{`eZ$k;8Zx$^SnMg0Q}L5my}YUh+gJYvUa;YswgeXVj&S*`AspB zQtI6FibNhX&-2uX@#+kK85D-0k_*0K+qP}nmSw3Yx~Z9=*7e(=-m|e(bOPvE-@Zf( zcAuB|d|n^wIF1@h@eIT8+O=z?{-*d)#M-v4j4+?eQY9^BbP%4#%q>tWl97j!D$5td;mX$~(eBbAIwJbByc%=muOC{?< z#X!BLM$??KrLwFmGzTG6KXEWcidQvQU$1(yP7}O3juVT;#$;?Fkx=?Kka526(+KhO z81*2xHeJ48SymW^j7_K0(KA+u*P~!rmQDky4#O}A0w&JktzK`5RtvZ1c}jQKF$|+t ztC4xbFaXTW%{7}%0JU0;nG%MfWm(y57Qm%TmmWQOG-_)p2DW!nN@kao^1*`#hG7_n z5s$|?hIjy)&1R#~h{xl}WU^kb@9pgwh7pEgKA%^4x3%dG-B->WF5C6>b&}a=G}KSY zWRhC5u&|&DFLw+2$W$uz;>C+ePejyy(D!}rDxxSlfByW?H@RX{gY-yev)RLnGwz_9 z5moM9y?RwIWNr_Jsy_qI&X}$GkbSH^^vabh#I95-lzY=OZQEATude~R#*RM*8nSg( zHN%pUQmXZ`QmH7?)J8;g2!G_U)40Uyv@zc9p>%!?c4eX+JxK=huqq9uYVjUL!)e|<&$3u z*=%-_gIO`gOV9Hh$5DI3!($A?;Ce!x`*r@=oBYUg@`L9;|4jVjwEqJ>J~-P^_fe++ O0000 literal 0 HcmV?d00001 diff --git a/html/map/CFCU.png b/html/map/CFCU.png new file mode 100644 index 0000000000000000000000000000000000000000..00e691432d1342905195cf2b5da2d781f94992ca GIT binary patch literal 1592 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 KMNUMnLSTZz#pb^N literal 0 HcmV?d00001 diff --git a/html/map/CFIF.png b/html/map/CFIF.png new file mode 100644 index 0000000000000000000000000000000000000000..f1d37082acf3daa3900d8fa128d757dce747800c GIT binary patch literal 2408 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 oMJk2WRTu`?v+YBy8u?7)|0Hq)$ literal 0 HcmV?d00001 diff --git a/html/map/CFIO.png b/html/map/CFIO.png new file mode 100644 index 0000000000000000000000000000000000000000..c5aad4bd91ae7fb27bc58a359fd89f3df6e14031 GIT binary patch literal 2474 zcmV;b303xqP)r4`Cu5xX=q^={ICD?t4sYugcSxkJxU^+2P09e1C%~D&7WD)>-^R2eF zLO+#4Ai&<~G;|#c3knE<%LPe-Wg(r0VK7yDz08)uU>P1iH3jA=JYAAN2$D%y7LrK@ zVOa{YS$I59RY(#P1*XY-B$2en}nz?}7$J^K^o znmB?;A9NifBLLv>;Mz4bHWF<81&T#@Jn(p&U^dcByw@hmO6Y;$+W`6xGSz+SXEpzM zXWqA6Dr)HNnYMwu_Z?@lQZ2H8_wApT7I^e98@JSWBpc7r;|-xRv4LRboN3c39+g<# zEZM*%4cFDtm8uAM6=eco=y4YK^f zKP1Wa7m7!v;XAxmPoJ#s+*UI_k8&E{_v-7UI2iumn8s* z{lOMdz~kkkjaqTf{>08*SGu~VseIb7scx2rk3|J5_@wJT={kUI&t?YtgG)OJXKGuY z0t~+%{`{*owL5*uk21A8eYUe)ooE?6KVQvhSluiE=;-JgJ{I*!*T?=Vb@xmo(g)Kd zPCO?}TUh;F#0{W!r?0KOOAw`y`@E@Tg7#0Jtgjvig`}=T{TV=0%LENlMDQ0IsV%Jj z@kre-U!05meK+r`{F?`kMx*w+w6Q60&l`!-nu+u&f>;!3-5`ap7sjTD^80V zdR!}fsk%3~s;huSn_krL!MpzuMnJY?b+BEx4#Y*(>b256~3ICGo1pR8_KE^p^CG&h1FF->e@8`=~mIe>*kv3>csIE$Kp>u z@raX;-tblcqhs1@zYeTc%HHr+Ua{1c?cq>%qledFdpLCVpI4ldT(7%Iy>C?>OU-s> zY{*GGJ9w4%DJswt+Z%+DiAL|mv3TGzS*oXOjgw$A5devwdpoE^MM_v+Ou)-+N8_(ei_caP+R z_%M1gHh98tTD^K4LhxGAeWVJZfGEC*PhhU7-O?4P`_L223SnJVLWSJt71*=%9gSN) zKv`sWspx!;44w!9Ussgr^=Lu3Hc7YgtLkxwVu>QeSh~Fop0Jk5e|)peMbB3Bc-6h{ z_$}9Es@W1k0bpjL86gx%WQCN=7o$a9;RB}*C>5_);}dDYeW(?D5g($N!(| z@V(bIItSB{_MByS_U$J&5FF?a+Jk7Hr|>Y&lPVo1&}ZVkZDG~MqgbTky|v!;Y6<|F znh1J+i((PQBGPG^$-9fdH0y#?3XeX@AnWQRSQca%J|AglV9C8m-(Ar&!xM@ennv*b zSD>owp=Aax>wIV8mN@2f?lkO}Cc)z`psI?vT#zJ-5ae=vy4IO~UM(2Su+!vuu?SU# zEWnkHk%u66Kr7MuM< zqO1(!EZ+nItm1e1GW`CMlrEP-YZm~Zs&KnO2;6Se*JE-Li;MgYPyy9hzOgAYGav*t zHSl`z;Dd}fKM&I+=>82f4Tb@)7uD5JRTK(HCehr?=CVs`c1NgfEmLNjpNAyDG*KuZ zpQpt=g%!N=c~&e1Se0*dl$C65-b65nxjD?v!nwcNg{EW@fdHnauzo#KDOPTxb*@4I o3k%5QV48N}^fsFvBk!pFAK^&MLX1ON>Hq)$07*qoM6N<$f=S7*zyJUM literal 0 HcmV?d00001 diff --git a/html/map/CFLE.png b/html/map/CFLE.png new file mode 100644 index 0000000000000000000000000000000000000000..6267bdbfd4d6b2ec381e69656846e3212d236bc6 GIT binary patch literal 276 zcmeAS@N?(olHy`uVBq!ia0vp^YC!D5!2~3ek}s?PQk(@Ik;M!QT(3cxv8kIk3MhEY z)5S5Q;?~>i2YC+}@HhktSMs-gn5rq!q`i3q6LUdYL!7mX`NIIsmJnCZ0_D&e`P#}& zlg+kye7CT9KmArt-<0=CBf`pv~f-?nvU{`gVKazAZaoyx|$nLA%fRy?irR8WKf zYu}2(koY{V?AKnEb(Wj=i?`&=ij~gG{v0#ke#ge=uRW5%>dJ-mKiu+K=CoK<9Oxqk MPgg&ebxsLQ04#}U82|tP literal 0 HcmV?d00001 diff --git a/html/map/CFLF.png b/html/map/CFLF.png new file mode 100644 index 0000000000000000000000000000000000000000..5564dae484a89f6576776675b75c6dbc98729aac GIT binary patch literal 272 zcmeAS@N?(olHy`uVBq!ia0vp^YC!D5!2~3ek}s?PQk(@Ik;M!QT(3cxv8kIk3MhEU z)5S5Q;?~>i8+i{I2(&(QFX8>XBemfQ&%}cg4OYxc&e~*ZPUv}h;)GeBnbX8E7r zILCTr_1tH-ugsMBwY&ucYJwj>dN+Hu+FFsxCYGL6tFC{p5|Kgw$`?-y&ysPf~zytH=RdHFjL`==Fbm;eIy@%-#ZJ&)dywR#2g4TGnv KpUXO@geCw|L~+aj literal 0 HcmV?d00001 diff --git a/html/map/CFLN.png b/html/map/CFLN.png new file mode 100644 index 0000000000000000000000000000000000000000..028b020b4dd67ea1a1a7f41c18927a7123152b1c GIT binary patch literal 286 zcmeAS@N?(olHy`uVBq!ia0vp^YC!D5!2~3ek}s?PQk(@Ik;M!QT(3cxv8kIk3MhEN z)5S5Q;?~>i8+i{I2(&&_mSNq}F>l%}-CzTkX$#T>*%qWRL}e{ouxu&A%-}^X+cxT| z{0oo!d@@~or|`;oCx6}uQ=9#3c?$^0ocvd0Yy0lxl4D6qkM2ad#J$Sfr{fxRMvd`W zijL$p{f&Gwi?YOYUhSC0&E0OQFUGX`yHV0(@jD`4_hi}2UcT+sRb@B(=A*ke4qv@@t#<_7xk;j2CX400R5x Zs%Kq}kY3MzwGQYv22WQ%mvv4FO#r$Rb`k&p literal 0 HcmV?d00001 diff --git a/html/map/CFLO.png b/html/map/CFLO.png new file mode 100644 index 0000000000000000000000000000000000000000..b0b67deac3b3ea85dcf7c4ac2a95b96e48470c17 GIT binary patch literal 294 zcmeAS@N?(olHy`uVBq!ia0vp^YC!D5!2~3ek}s?PQk(@Ik;M!QT(3cxv8kIk3MhEP z)5S5Q;?~>i8~K_H1lS(L7j;W>s_f}moPVMG!9tn4H)UmNC570`#o5?}a=0?8TeBY3 zKh}+ZcWX1du=Sq`|yyI0pC#iT&su6zrc1n2ftSJFJ4*6UR%~knl!7wWPu-#7{NBsBSO ze8mSAhw>E{4{2VvYu@_lkEaL70uU1Rt@svaa92d>^W~X;w<=g%{(Q+mcGmN+Kbxhk j*Qw^{fK~nZS;2I}Ch2?bgEv!veq``;^>bP0l+XkK@1A_w literal 0 HcmV?d00001 diff --git a/html/map/CFLU.png b/html/map/CFLU.png new file mode 100644 index 0000000000000000000000000000000000000000..c36d74c563305c2acb006250382c16dfa5e08280 GIT binary patch literal 143 zcmeAS@N?(olHy`uVBq!ia0vp^YC!D5!2~3ek}s?PQk(@Ik;M!QT(3cxv8kIk3MlC4 z>EaktaqI1QM?nS!9+r(_8#$a=KNS={ooG7Y=BkR?^L&%F>pNYPCVHp{VN&}iFx#$j WXL6~qp8pDH7=x#)pUXO@geCwN2Ps4V literal 0 HcmV?d00001 diff --git a/html/map/CFME.png b/html/map/CFME.png new file mode 100644 index 0000000000000000000000000000000000000000..c3eeb1e30264079864f1ad7fdf357f0205713754 GIT binary patch literal 24213 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 kr^^59a6IG}Y^y-IIFg_JpD2b_JheK>Y;U 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 literal 0 HcmV?d00001 diff --git a/html/map/CFWU.png b/html/map/CFWU.png new file mode 100644 index 0000000000000000000000000000000000000000..9c1847e20a50a7bfd783f1a81f3f0673fbcfb242 GIT binary patch literal 3692 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 KMNUMnLSTZlxd#yd literal 0 HcmV?d00001 diff --git a/html/map/CNCB.png b/html/map/CNCB.png new file mode 100644 index 0000000000000000000000000000000000000000..e1a4e68d7738dab332cb04ea677355c3aa0f27a5 GIT binary patch literal 1931 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 B4le)z literal 0 HcmV?d00001 diff --git a/html/map/CNCN.png b/html/map/CNCN.png new file mode 100644 index 0000000000000000000000000000000000000000..1240c44e0dde5ba1a1daa019b9f9bdab376501fd GIT binary patch literal 1670 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 aKkeT?`acdHo6$}H0000 z000W>0fLJSS^xkB6-h)vRCwC$Sv`!?NEn^u zDlQ`%N+@^hJyGp8oP<+*E85l3Y=eVD3J(+%cC|&CC;}-}LPxH6+~Z@MAMbLku3!qw zo{YaY-}`>Y*{IcO>S{;jU}yV^Asuz)<0s_*0&@RsaQNo^l|t5Pwdr(vb&!W|-X9$u zrD^(|iaO;fold7(Yhz5O)A=6M3uu|9DetG#>HgW^2SQ5eyP@T0ZzIyeFlxnSURZ1CSwAPn!rBb#u#(+{7 zQqrrGx+to%)`~PCz@jLUsMwI}y5&)wGG0nsf>;R#dbQT&?Yc@!sz}i?RIJ585R_!t zSwSfLZ*TPPsMqUzdwcbI9ommZBPco=jc~=gw{G3~>+iGnjjdJ0 z9=>_cS}4tfU1P>#Sk7EHE`b*W0m8uIjS{V`AT!7{B&O)nHnHs+TZ8drF!&OSqtS?h za9^+2af2Dq2oAa47z4tQnb+HrsFF8~)6-K+G;IbL+!If0{qf_+g@&}<2dK}UJv%); zg)DfA)RHg=f2hkkN)Nww?b!>qSu%hM_bGEGKh~QmWNz$r%}=d7jftEQXzh zbpyc;xv~KWf&h=$4eqVH7{{??7b`P33-bV^KrN}9RGO36AAXAC*!O)Yu+!;SS+KH@ z?l26aD8e}qA_yk;!O1v|l~TvY$5@O4cX)Ebrf{(>nR;M0o;x9~(P#{ZLoRMK8cHe5 zBuUcm_dzV2fXS9*bUGcTz@^2@_kGuOlO#!!#C6@_aOk?O>$<>*<2a6EJht2IG)>bq zrBUJ7vWt+-!^WR~{Lbt%pU;gkk~GN8^W1ga*=$y=R+UnCgj$~G4TnQyO6Z5G$KZw> zGIy}E?Z|8=lK?pJeV^_QJTNw!%{UK|G3N8Rtf?>)fSHdrYPH(Y(Gl^2AfPemFVNL0 zmPwLiStgwp`XNhOE+Zi;c!4d9EWZ-l!h;EuB&k-blpcm*nx+{0*ZyN*e*FFL@xDxpG#rpEXy80ew=wef!p$uSlEG7{y)$>RMJgK0c;sESt~gTI(o^$m;Fex2@xFrFaB@mfX0+Cdr=X zRjXCDxXj&fG+ZG8^Ld`LYC5z5U*qaxA0=CLnozc~#uy|iTrp|&K@O%U0$1PnH#Rm_ zcx<&=W&X1~uGi~9h&=q-?sKrS4R`lEFUvC62HBDxE8(RTJkPV*Nv(C3WyTmdPO;Vd zQb}a%jQT7SP_x-QKR*Za&1O?6wYj-DnM{;Y=jZ3}lq}0U&uh2aN~ybd@4kNh8srsQ z%de0?WmVEzKYjWX^VhFm&$3Kw4H%5^c+9%JwY3F!sP+8$^LOvwE$d^yX+-YbyZ7P4 zhi154}qQMInurBx~*1=sbAIr zhRSNZ#qAbjh6fDR%RJ9X8XFPbgkiYi^s}aql}Gk=yUpY$KgRN&hR|9+dGe%ei7pO# z_J8o;0UkZi>vp?0Z{9>`%KB6OR9h+YX{*_6atClI);s2=Vpo2d?>>Yz0%_46vUc8V;B6+O5Fyz6`c2fD3f|l8d z^6D^6LK>{s(Tkt8Nnf{LKIW002ovPDHLkV1fo!HF^L5 literal 0 HcmV?d00001 diff --git a/html/map/CNIE.png b/html/map/CNIE.png new file mode 100644 index 0000000000000000000000000000000000000000..e2ff3f092a288985f58755404584334a4bda6b4a GIT binary patch literal 2602 zcmV+_3f1+AP)W8fZ#Mw2@6Is7(S0P$((2 z(_}Oz1}C!AOr;kC@Mlc&PH6Z0ssaE;PWw#-k_wa$YgNi z1^_Htgk+NO9S-n3laE5mGLlJxt!+$2k_1g-;wuW%iK+rXX(=0J?p#Ep0NB$=bLZx0 zPfWn)W6yXTvW!@a2O+TA!Ew+u#N$vDrfRpF+0yTyfoB|=0vkC-KF5I&M5E9&M57Es z(|9D4a5^Cf;5hI+RF(NiGzvk;4i}A@C5uKO%i#GL^Pqhwe}TrMUY z0G>xWZ5~CZPhMw@+9sSngxV%_A4F}_j6OUMS!NA7PAJ4orfCH0_ac)4fQ1VoNx7F& zG>YznwAos_3cy=uF4CWG)GVWoecfkS=NEqu0OR8*EM%Nu5P5kN4~jytX+IneaGY77 zX$&Kh4%Xg$uA!x}P|O?mBuv;@_-B5_1T8DWzyQk1psJ80o{2~eV8GKcj7XH;eKk?C zI94d;IiHx@_(+GwgUA?;#Xr9Mf^mNPx(}hY39^iV0RV71F*=F`3kX*K0+|e)PB@)b zu;2XqOWOFTWe`BgVn2YPLGS+G6#>|_L7y!{_UCx%YLSWwKH&vVd2$ zGrPdM54P5>G78k*e2yZ8hQm5upggv1+v6{+>i|%-ab90%q^Q_6Hj*L+HR-?r#HSir zkOD9%(`X3vYcTMjk(>}JZ`|MxZuIdV;sI;+mdx6gU<&XcHbp#o7?)$g) zUKDL0sM67-`CZb_H{<6r72Na-#oTPtl15K0PuJ`y1(d16z0>O6D@5&qZ}z25Zpt? zrxCcPBdD)Sik&Cq1JHQ9*H@QaGqp|G;M>qr=@<9-vFG`9n=78Kq0U+HbgPuij!S*V z_|$3jhQR6#2>_peb_xK6Z(QC*SB^0@5s$}Xv~Wl73FAQZYc_ZEo}kaV>SwyXI8C29 zI{?t%hCS~X$Dxo^N@9%E@4lKasf#+{lh4*z`71YNjoQ~4(QT|dc~3`hU41FFR2CB8 zj1$@QcAjp_zRpNbNAP%W{qf#Z&~NM9#g2FH8rrDQ-#21YN7qnAaB*Sz=7QZg_! z=mju(S@gK_8(Jz~6WdLD17{VV8cCn^xF@me?L4EK?AyB*01dN`F7=F!r20A|2aaq} z@!?CYe4sogB?E^){u}N8UG*a-59h3#W1u{CYb0%D(wO3L<&W4R07h()KzXdEBPgcg zVk$m$CA;xm_|KWf9Y6WB=L7(w;cp8`HPe4G!fA?;Sz3{wC*-G+6BLi~mz4XLl>3c6 zL&M>s68E*ia9#B?IrsbAQWg|D5>nj6FDQ0cJG(tL8h14X&LEGD>i^#*59HGs6tCR!-w-L;e^vg#^$ zA^yYag;rP4m1MQ(Y$1mRy#>XN(u#bO4ofTYFMV;{)OlTf>9Q&|k6C$aPNKHF*mvFf zs{F|!YtP_?`0a+e?IOu(%bfhLF8t5RH0k3WZK-i)TZV?i)|I2rSS7Z*SeI62XgEw% zSQjgRrB4-G^^wyAcam}{p_(|R-O;#*T>f$-=ZuXZ>H8sVTn^E#iY-~}Cvpxc?@WA7 z_X&R+%#l`5a~YV2tmhMqZoG2ASAC<_`$cQ*s@uAcRV`YszC;E;op&(OVE=b4dSDqn ztJ34uTW2oL)_nl1T)oH|Hs$YIV+mX|dP95jInH{$3Jr(p;nOtG`7UA5!##2 zRc)O2^4|5sSEd?TDn(J`boqX};~%;Pj0bz2F7{ndNO99tuJljlw1O!_aGvoG+D=jT z;VGU`KI2Kp6s&tXg75b~XH={}hy?s;V6)C#yS?C}mO4WSSK6c_VIr;*7ZlR?!^_RyK+un#RW7_!dyCT@1d#+*A1JE}@hvl}iKvD?9M z8X-ufjOkiy`gyisG{a7l=a~!y0X7>{6^cSo{R*+!KtDXMO-=$}*>_q9IDP0Y1f*i= z)rVjZgurHl-42_LO3BmGkfy4H;~>lMcp!=ljAq+S1&KQoE#DYRHkFka8iLEkDkteQ z4?;Aj6Ap()ZKHq)$ literal 0 HcmV?d00001 diff --git a/html/map/CNIF.png b/html/map/CNIF.png new file mode 100644 index 0000000000000000000000000000000000000000..af489900efe0af0acf5852cab02829f38a866bc7 GIT binary patch literal 2437 zcmV;033~R4P)b=g$nC^AX>B4*>4oh1bh9MuSAtkjvr8 z698yvz{(2OyIc@O&W|7!1uH8IM^1AS$ue}E(^pk)6HNnv?c4b%)zwHQ0r0z7s;i5% z7Z>66@_RZBML{Yhf-yLq5CrHt(rKtFH+6YA_vN;21$gG63D~SL>jeRfA(@1(Bbnq7 zx-Md61!ZNBBnSdT5t_!=NHPgY$`6-JTA3x2P!xz_!91uB=?j)A17l=75zEV93~o0k z2S5~&&00q>C>g3UuL2;ktgbI-n;15ne@NDWO^;=LbIw@*7;e?L6Rxsnz6h8OI~2l#OR z(6Kf%Av2PJR~ele2p#ob2m@&M?Ty4Is=oLA^y5dGtQg%4;Jk%vYA8}g3tmx904k$X z^po(2kRXX8(Q!fIgVgQVxiB+LZU2QYX*M+tjU!#He1$8@I!liSf?%u{!Xq~3hS{nu z{U6o)gJetto-pXAl3El!USl@7!~%I59btxG52EJ{(_8TDG7xH6Zw7$a!E2-Q<56dA z9a)tyY8o0BW~K#6G<;ms&^SLHo$Nb-j<9HUwP8;So(Ts23t#5W?3(Jq(H#m8y+7#bMh}=nAfWLZU(-3J;J@UjxBn;Wa{zX{DR_@ zB9$3<94rv<_l85i{yCYKmg`H&%|D$3K=8i7OB65^3w(1hi*N7}0s*?HUF!aPWuXim zYvU0}EYBZn1JHBvMz^k8%rz1n2eAM6FYWq+LBH`c5}&a9`0Dk@p^kPkUY;e8--pg0 zYa3$B@MR=EarJs6-g`FQdzKs-iBC}20f_gW%>!RBZp6-}fFZ{YY*QUZu3QqJ1C zflvzq-Da)@kOp0P#x(2L(0X!4bEn;hw%K5*JLG^Sa8oI*CV;aLN2iY1dN_zfBnb7)91zq&j6VG z=iiQYJ$1>x3e~{wRE@BY_>Jak2ixu4h%~Igo=m%OnTKqod_l3vGvLE`6=m?Y3naxSTkz**iKV*W@lDdbqK*Bk_p`qc@8#g^l9UV%W;)6tmg6GCE~9Y$n*O$%=*LbKmM>QI-$C zx^34hTCpihqF%U@@Q4cSpC0|MJ?oEO=@Lq<9gA6L`4oMnUi7NgX6h%q86nDNZ1 ztR<={qf@e`+r7SX_nvzpKmD`4Gxapar2Coo4*(Fa ze9?XQ=nw_9CM!l7?HjywFz7duM1rN|-63_txClEg16Gnh`DUyW{l#^zHV+IBRJ;lK&F-OTBPAn1%?b=7=ai{bv4 zLd}EG2|FF0=W>uFI2_P4s4Bz0UgmIsE>YB%mH_b6cPa#Y{n<+pBw9xGVRjab!Qp_@ z3CdtJO{CJ0u4zmVpeU%Q!16K&qoa1q5!l8;jcW(3tnq$yjTkGD&M_(yks*!k8RuV>=_aX*x#>4p(&Y! z*NeG1Y~PN>MP6>AI#)J}R0^xB&@`}D%R`Jk@|EQO(Rr_p>*S+M00000NkvXXu0mjf D)ntp# literal 0 HcmV?d00001 diff --git a/html/map/CNIN.png b/html/map/CNIN.png new file mode 100644 index 0000000000000000000000000000000000000000..ad063a85d857ae2399d0fdf1b814f1390bc2baa2 GIT binary patch literal 2369 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 II;Vst092-J>;M1& literal 0 HcmV?d00001 diff --git a/html/map/CNLN.png b/html/map/CNLN.png new file mode 100644 index 0000000000000000000000000000000000000000..fd4cc5efb028b9cdcee09e91778b9eb2b00902b1 GIT binary patch literal 284 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 AO8@`> literal 0 HcmV?d00001 diff --git a/html/map/CNMO.png b/html/map/CNMO.png new file mode 100644 index 0000000000000000000000000000000000000000..134d9d0d1a1628b403c1a476094a7e462a3b82c4 GIT binary patch literal 1526 zcmV*1d$0`F7Zpc@W%7AP%~ld7(XLHpv{OdCEooeA z>5{g&Y2w3~U%!6$w#g>emwa3<_nv(B`<>tU&N<&X0oe6n84k4XGNiEkEUS=J$bT`! zC;M!O#PHz>V(hWw62TU=P=hkc$}3+-d|X-p@E~=DK1aeXJzfNWmF9Z`gXv1(%dn(K zi&}^Zt)jBubshl1XPqc{;hoxFzFd~OguD*HzSPdZCXg&47K!3*6to6qRE@Z@H;Yt` zc*t046DY6|+uX1mCji(eX!weF0KnpLuX?U%fEhc`Do36k~z6u%xa**{~0+ zRj-UVyE|)VW>>N|i1B2<_{`>x5 z3i;{rqSPkDFA{DwS(ulFc>w4{UA>W^O}vM`_gRS5Q_(4wLd&j{o7NFN7m0I;uD_WJw)06uCJSYN%} z*ffi;S4NzUnav%I#|io~005*mS+aN($?K86_^kfD4>IcaZ?eA1-cfGbdvsAdN(dPk zOw-W3GU9XqNNs{1FQP)!X+(||A{}}0B${_jRk#S@?sW772Op#W0Io+y95c{2n8rj= zCOJgHF0V(z3!m{GKI`P}+=S9k{hW|nc{tEcugxGCBC!XlGo0fj5-I>3ed(l8-rDM? zuTzuiqdjH@AtVq8pz&Ci0;|Y=*Lk{^&V?KyB-ocipR|gKb0Ozk$ln++**U zy|<=bm{u=LPbGB}T1Dl=YxDT+t0(N`Pm+y-rmx?XY%Mj8y#NoXJg>tymw(`95<*aM zOfEPke!hI|>Y?8L`v5R}ZmE1#fGiUUb?II)1$e`5xuqi z>Fad>aJK)s@{k(^O|rH0xZCX$Ypgu&wqIX}aWe(s>FBLxqsCN^Pp(dvhb)yIk*jg+ zWmn(sOzrBh>rEOv^Wc())1wTeC>;cV@4g++udK3ief@4GQ#2B~Ii8bd71Pzd9;qV8 zg8l~ptTgi*d?3?UU(e5@^k>eR8k-Mu&z>;Ax{TuSlmmWN68)8!`jg2 zQO16}Z(L-)eh$5_B9Fyw8%>TIg=5h<)~Arrv91PgX4-9^Oloz%St{L2E?={IX)3=l zmNE)`9_8_>b(+|==wT7Ly~J?he1~exc|#e)rrmZEYnKX{Op)D79Nnj_Y>=Qm#-eld ztggtg#f>EZV1op8w-Wse` zvAh~0v2EjW>2Qfl1pvh?$#SVcu$1Ya?o8!bgD+|!!L%EhnO))B2lJ8~kU96+PGcG& zQ%PNoxbR5F7Ev%QodLjVweap!%J;b2S(a8&@pzu)BE%{xlC9-gZtxTH&_~bpz8mzRmdu26|xFhg{(qW cA^*4WH)mMtS&|Aq*Z=?k07*qoM6N<$g0NTP0ssI2 literal 0 HcmV?d00001 diff --git a/html/map/CNWN.png b/html/map/CNWN.png new file mode 100644 index 0000000000000000000000000000000000000000..56e13d308f43ab2ecc94bae111a9fdc33449fb17 GIT binary patch literal 1325 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 FV1haktEK<| literal 0 HcmV?d00001 diff --git a/html/map/COCE.png b/html/map/COCE.png new file mode 100644 index 0000000000000000000000000000000000000000..63f38c2a4b21e97d2cc754a51f509d490c656b48 GIT binary patch literal 1904 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 literal 0 HcmV?d00001 diff --git a/html/map/COIE.png b/html/map/COIE.png new file mode 100644 index 0000000000000000000000000000000000000000..af13eedb81c9121b5f2567e77a0684d097f2b8cf GIT binary patch literal 2671 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 literal 0 HcmV?d00001 diff --git a/html/map/COIF.png b/html/map/COIF.png new file mode 100644 index 0000000000000000000000000000000000000000..038a1fc3193fe2d767b2c4569f98649c7811075e GIT binary patch literal 2448 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%0D#b%)7!1cRKv4jox*Elzdnw5>hWcpu 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 My85}Sb4q9e0L`RtM*si- literal 0 HcmV?d00001 diff --git a/html/map/COLO.png b/html/map/COLO.png new file mode 100644 index 0000000000000000000000000000000000000000..b930bb72f92d46aa35fe1eaed998eea150fcd402 GIT binary patch literal 282 zcmeAS@N?(olHy`uVBq!ia0vp^YC!D5!2~3ek}s?PQk(@Ik;M!QT(3cxv8kIk3MhES z)5S5Q;?~<6hI~y90<8}x`Xpz5VY+irxq^B9^FW)%k9;B_Dr(cr#KhD#ykkmiPwjnH z|I{R&?Zi7CrJI|x^nRa7nYiEE0|-t`ys|vIbp4qn$C8vj+2pxCSvzfZk>;hNcO()_ zlhY#7ljLk%uc}0Z?7r3Q`z7!7;dh07t-Eg?zjL#~DI!|m((Fr9x9i@p(*8bunF{&h zHMiIOHVL}A(^Eka0*qbu?p3%Wl6LKI>cZQedtO#%%;;PD`R5Us}`U+KFp02MHJy85}Sb4q9e07W<&bpQYW literal 0 HcmV?d00001 diff --git a/html/map/COME.png b/html/map/COME.png new file mode 100644 index 0000000000000000000000000000000000000000..b28b174bdadc45f19722fbba9edc61e49202a615 GIT binary patch literal 1574 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 N002ovPDHLkV1mX*rbz$* literal 0 HcmV?d00001 diff --git a/html/map/COMN.png b/html/map/COMN.png new file mode 100644 index 0000000000000000000000000000000000000000..4b48a4c047a9c5a18719986190d5b561e1f9e253 GIT binary patch literal 1389 zcmV-z1(N!SP)36>1{2b9$|FgNvx-g-@3R(~WLBgA2lmd;}M# z=&^?T5@DgJ-`g7`<@G;@Yt$_O5Q-B3Ib8c@TzZzx%kpPS`_sPFdhj*8R7jzyUlCfJ zIi9%<0Fw(>Qi&Y^=(L(}k(cGEaj80(tL_j;z`rBv_~EUnL#@U>2u+tAUTi z$uY6hYRYB~v4ZBsImO);Bd2HCPOC||5d&W4rJ0W?@uVP8%km{de+t3?kX+xM8kaD(oSLV`SO(yoPfH};HB71vMMr_x?PG#rIpZJzDq zo*;$2y}{&4NoaNEzWVrk)PJ|Hr}is45i@K(-%!hOPibpEPij7RbU&Lp%w`VD_LIBI zzAvxbyCnj^cXw86Bhkxwajqa2NqM)!(qiPE{c%8QIy@Z?PY0=)h#5Mqrg$X%_Klu; z2a!a~U~aV?>=x)ZOsh?;d5*hK+IPw=c6d6lFY7|eaI9%ZrAF+!+)io!_H;WQN$+Kj z>P6a}e`%_2J>Q^QM~60-GnD3j_J!JjsV?Mt?4?QxR>x{Bo_u}qRkdd6TG>%&v;i;8 zt+sB5g^FRf!}8POQ%dvd$hE#fJFe@hSk1Jd@X6x3+M(C@SJawo@ni#|bEU0ZvsnS) z$-=K{Ar+6)OzT!>jsuR$CAL!~i#e8Qpf5Fr1t_SS6#(3Cb*tk+rJ#0T4+_~jqb*2b z@rN}{i>b}4hL^_-qZXa5!w_NDnKB{a9% z`UdUzgizGayM}R)@b(7Ni!TlcB+u&1QNwO&mswmt*ey_|ti{$UZOE05R-D>Da?+tT zYid4D#0f1X%d(>6n{f@fN0s4Gnc_oHKTeuc z;}Us@z#HeqIZA%>dKnJ@7|nC5X0uX9zAAG9sYAI~LjJ24#VZB29xqRQQGcAAg_p`i vu6;mg{)g8@Hjzza6WK&Ik^f`le{lT`M^4J}1u+{`00000NkvXXu0mjfT`QP9 literal 0 HcmV?d00001 diff --git a/html/map/COMO.png b/html/map/COMO.png new file mode 100644 index 0000000000000000000000000000000000000000..db692a6dd325bd56dda0cce68a5b574f03fa1e62 GIT binary patch literal 1503 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 X=1gH8>4dvC00000NkvXXu0mjfBLI$m literal 0 HcmV?d00001 diff --git a/html/map/COWU.png b/html/map/COWU.png new file mode 100644 index 0000000000000000000000000000000000000000..9ae99f2c26c0719e8e03eced5a1df59b81dd701b GIT binary patch literal 3873 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 literal 0 HcmV?d00001 diff --git a/html/map/CPLA.png b/html/map/CPLA.png new file mode 100644 index 0000000000000000000000000000000000000000..5f1383cc7e15aff952e5bfa36434ad6aa3e907b2 GIT binary patch literal 4768 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 UTVDFDF9QXmr>mdKI;Vst0H6q=s{jB1 literal 0 HcmV?d00001 diff --git a/html/map/CPLU.png b/html/map/CPLU.png new file mode 100644 index 0000000000000000000000000000000000000000..676d25b154c26b165a80002eb95d0731a16cc181 GIT binary patch literal 4484 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 N002ovPDHLkV1hv|s~`XX literal 0 HcmV?d00001 diff --git a/html/map/CUCF.png b/html/map/CUCF.png new file mode 100644 index 0000000000000000000000000000000000000000..3d9f9746d4d2ce75889e72f44bc118f923872f79 GIT binary patch literal 2073 zcmV+!2RP) z000W>0fLJSS^xkC%Sl8*RCwC$Sx-zGR~rAAf!|yPMhqUnc*P`0$s9Dq!V6ykn#yi+83k5|McO zBv@u_n}|C7?)4{|hf*cwz>pG=(U&BmM|bnFbeS`%2|+|{-lmy}Wt38#s7h^$;Fp>h zT+8Mam59i`ejnt(a%N%~_9G!N5)$>GDmAqG7^$GxbM_h$Z3WcS#2^uMb-Rh^_5L12 z7{GXgdW1>Y4-Zwdmd$_h$vI?^$7*2%F!OVTjn(YNY8KbqyiHKx+Nes^c%o`pRM)b3 z&TCh<+b!CN2uR2%5jC|1kmHe%sLfTW(h_$|z+)+I4S2p?`VR2-W(!KT)ZuSoFrNJT zZ+Gw>-!6SugR8PPf5%?)tY!1aANUbb$MF`UFNxE8vxR?s`4C0a=53mvD`2h(0j{gL zjT#c6$arI;y=&RL(U)uucV*DtW|>UMW^yXWT$UES`t-hUOR=Z9~}c!yiO z;_-Ma7PBl%&d1njZ^h}y6WNa^vV0{J3IWNsZ5cHZiB!<7A_cZ>Tb2bcd>oq%V2)G3 zV~(icLEE+yi9`j?IzL^N|CO4GDlE~jalrfI-PBoc{40;h&yq|@niI?YK%^L+NvnYg{pG9>8F)^>Os zU*g5@O56?xgYcWlWHe1Hl}f6r0tQFhwsl?4<#I?Z_>E5uEPr3>>GwSRdi~wL0IK?B zgZ>ni$_IGma@p(~fBE7`-1zLHGvJ!ZWN<}Qx3#`lES5?ozK$Scj86@`X(Wm0;n(X# z)YI>Iw=Y0M??rd|zJZ87ziPB}b>NxJ2TSKKPDHIBPEVfsMgKcf;EK`!6@=Gu9Jy%6 zrv~8RxtETAbL~Ea$#1k0(FJpoAr&I}-B1cq-F&b#ms%UU)`#8HmAKvi&J_2YjE5BJ zx-OosTttLYf9|E@n-7*=c%`}1?|$Kx<_qTJ1#?nvs>X0Q9En6={j~eG|8hCVp_7NI zs(2MxT9&oTPi?^yLdY*7w|OWO5<-+prTtv!x{gKyHuHuU2_fXz>@yTM$hnA~^tHCfmr#-o-K&i^-;@X|gHA z({Y^3moKMx4~_>1HW&=D6V&s}%uL1gMmcAk3|YzzOr#|+YSv4A()Gci+s!FazSfOoH!v1 zFLn#ErPu3y{P=Obn@ZFzQi5H@*4EbP)2FLGi4_|fBxl+%jJ=9e>q9p(%5;Z^hvi1b z_MoczBk`Ej*s53A$I7OcE?ok4CX<2OYnm1e23h*$H9*$b+Mj`{Y@NAh&{9GOUN1A5 z3BB)Xn_{szI5>z?UDt<(hWvg% zT2o$s4qRLh@eL2{&u@T&;`NTT>A)Xcb$x1Ln1zJ}_?4GE%d+HUu6AS83n{-fx2!x^ zj1C3aSOX6mEy!DYd;8wFC6h_{2U?x6tqvIuhi}}t!H)Lx#mgstDHw)P&xcv1220Db zOw;7O;a(e`&xiE{I``xJXRrQGp7not{`sGY|3Blu&Vhi#GSEn?00000NkvXXu0mjf D5C07T literal 0 HcmV?d00001 diff --git a/html/map/CUCN.png b/html/map/CUCN.png new file mode 100644 index 0000000000000000000000000000000000000000..b3ed30d08c9813042d7ee90072d8b82356add1ac GIT binary patch literal 1708 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 literal 0 HcmV?d00001 diff --git a/html/map/CUIF.png b/html/map/CUIF.png new file mode 100644 index 0000000000000000000000000000000000000000..23dceba3c671ce67f7b106ae3b642009de61e539 GIT binary patch literal 2431 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 E0KAxL`v3p{ literal 0 HcmV?d00001 diff --git a/html/map/CULF.png b/html/map/CULF.png new file mode 100644 index 0000000000000000000000000000000000000000..107f0e5e39e3be394d833811ee955d8eaadeda3a GIT binary patch literal 265 zcmeAS@N?(olHy`uVBq!ia0vp^YC!D5!2~3ek}s?PQk(@Ik;M!QT(3cxv8kIk3MjbS z)5S5Q;?~>ij$DTo1X>?nH)!Xm=()G@c)`ToTyl%Mos`(RqmsG*rd!VL5A?j}aryPL zz4LwaJ}++pftujxl8Za@E=3u7_U~5Nd&RV6^$8L0)y&)S)<|#T-^jBrFqh++$-3S{ zuM(xZuO2w<8prlLIPYR?h$DWn3~ZP}XsNiYU+<44$rjF6*2UngAfr BZA}0G literal 0 HcmV?d00001 diff --git a/html/map/CULN.png b/html/map/CULN.png new file mode 100644 index 0000000000000000000000000000000000000000..a5fad23da50717dfc8c21c8d148ed2c7bfcc175f GIT binary patch literal 282 zcmeAS@N?(olHy`uVBq!ia0vp^YC!D5!2~3ek}s?PQk(@Ik;M!QT(3cxv8kIk3MhES z)5S5Q;?~>ihJ1$%cvvs^e>~B(%fLYC+Py{Pr?ys!_+4149aPR1ut938SCG2XqyHCA z2j9`y+W5-S;Wn>OY| zlqGRnxQPnuyxfu0dh~Eo_t687Y@Ks{Gn>2Gu79=svBmvoi{_nwS^3XoTYhy9$L-a- z6GNZRZvmMLLYtgi`d>Xix_pNm1Xv%q8?(i-l&^FRO{n5|x1q`Ui&Dp`TlZKSkB2DCnsRd6fqz@L zIrE>)&^O+Fb1vhg&p2}_+;fr&5ZyoWu}ZJoYKBNWk3;-Z2DYs){jw)YT^3~U zHW1_SR!KXkw@Rm}a;o;`8H>wr%awhE$wkne)%RInR1<*1UM$%lj(h=G*Vs j_&Dm&F|ewW^ZVInx2K(4yh>0C=t%}oS3j3^P6EaktaqI2*gMthSJclC}-Uph*;OXk;vd$@?2>@M%EWQ8$ literal 0 HcmV?d00001 diff --git a/html/map/CUME.png b/html/map/CUME.png new file mode 100644 index 0000000000000000000000000000000000000000..03e5f860abd8f2acca12f423037d9653fa60b850 GIT binary patch literal 1597 zcmV-D2EzG?P)!t2;gG}O-pgMjOO~F8o71o7p5OQVzVAEd`!2BJgFA8J#0o=dR^G}CWCrpD2EV-5 z1VJE^#>U2%4oSeA_TG9&$=ZZr8QA<%%>rWpxTbnSvy7BdfHLf%dE`>+eVwVOE zECzmo)2F4Sg-k9w`~b`aCIA6{_NlM)0355kHX4!uu2g?aSnuo6| zO7}2r(24gYGCykb5N-0zy3@iA7MNGs=W&jZpP{fwjU$s#SWHS50DH=QFm2F{hNLtP z0Ag?)Jl1cVp*Jxe^K}6{Mnlq3n}-F~DD4Y{MT$XS*ae4M_()dtyl>yr_Lg(r$~?0! zF&-lk#kA`0n|H6C``fRm-{QK$=tR# zcNQyEy~BeN0S55Nrk^XS3cYS1g)|SZJ4)gi0Q#6D5d?w83q>*|j_4qPlqJHWHl0J6n>{%)TUc z*e4y^_gJ>?i37NK?K%Jg->}s~GKb9*POsOq9(MI~vK!UzsCM;ql4oVvF3;^7Wc|akH49(S7VFrP$b?cz&J_J>V?a0|K(Og z-N#qDI{~ncpA(WWXnf{bzl~xy+nw0y@ zTwr?Vz3jU;A1JT6&9-%92dBN)wm0`k)9&!#^Lj_gj4uU2I9YdhPP)8f7m*XJsrHgydw(vog?snX3R=@`wM~x= zlfax|YLMQLc$x*yz@=V$|K4^M@&5QV!oJT-eQGIlj_`C_-#c973u21VqA<}TOK$(p!st4%wIgdg#8dM=>xNx=j~r?z)5 zt!Vp7S&fVh1Auoex|5Ir0FibQGS|^rDXXq7i?j^@kjrc-z6s=()8px3fal%58QgkY zL!_EFmQtP+5f}iRfse;WJ(7~dNJ~l*^O-IZ67LX+=iR=UMCiKz)33-}C7m~r~ z-nxmK@i$&K=swePfh*N2MHeRF`Kh<`aKI%d8NG}hI%+rP22i zZNW2y)$uUHkhWv@!8R-ObQFJkEGfyL=!7^{EtCYuj~~=h$$8<`<3G`6Ih`p!)yuJ` zoayNWh@&ZHIla0r9prNd`5XYRX~sVP#yh{52wew&)VE(A4~bqzNin^8)0 zeALq~*6e61V-3TG!mU_T?~s*0r`OCrxc?lZGu5xjSQ^S7Z{E=hDLxD!8DJU@l_kN! zv2-l4oa$N3w6!&YB-5uJv1$eM#R>o~50B{iph9pwv4yhQB-@gbd=%XYS}`)I83R#D>lt>|sTYZF^9cPLsg zeGES@hQ~9pyV?wevnq~P({q7l>k@l!`AMGAWY}X;9pZ74aDObt8s0|mPD8CWhB0;Z z=;bf8F^w#a$8q!xGYno4S;Ns;UsYx~jdvZ2?f!wmpErJ@gmz1Nzc`F<@W)af*HCb3 z5_mo+Iu9=hBwk5yP{S^+tyoko>{F&ZN~h{IWXe}<9_IA^k&_P9tf~3fET@5C0U-VU zyX0|yEQOl*+Mwt}N{?I+u&66#Ra0_>mc4>o8y>aE&mT+Sq^bBO$V&tsjK~Q}9-Nva z@c@7^ytf(_D|O{-Fei{Yl#4aU|8!A!HDa6b^2F=N4eoTj)c;q|`aiY>*@A3Awjf)O fEyxz+|F-@HL7evE3J!H100000NkvXXu0mjfi;uw3 literal 0 HcmV?d00001 diff --git a/html/map/CUMN.png b/html/map/CUMN.png new file mode 100644 index 0000000000000000000000000000000000000000..c9fd9649b3d638ac9a5dfd939142c9bb55526709 GIT binary patch literal 1437 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 literal 0 HcmV?d00001 diff --git a/html/map/CUWU.png b/html/map/CUWU.png new file mode 100644 index 0000000000000000000000000000000000000000..56ee1cd431e9669b949a8dc7a203063cc2089aae GIT binary patch literal 2759 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 N002ovPDHLkV1nhJHFy93 literal 0 HcmV?d00001 diff --git a/html/map/Center.psd b/html/map/Center.psd new file mode 100644 index 0000000000000000000000000000000000000000..83e9e79735e92d126c23191082822f3a2be6a7ae GIT binary patch literal 10024 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 literal 0 HcmV?d00001 diff --git a/html/map/I0.gif b/html/map/I0.gif new file mode 100644 index 0000000000000000000000000000000000000000..17853e476f1a10820a12d5fdb7053fc1d6db25ff GIT binary patch literal 114 zcmZ?wbhEHb6lPFjn8?8Jfld7Xd$Irj|1&T!DE?$&WME)o&;ha;K=KSs&QtnVo|c&3 zkfMKNW{#*B$ID9gC8ZD5rLJ~0&DiCn_u|O2Hw90wf0Arjpy?rY_{midt?6f$edg@- ST7G5K*RHc!+hejA8LR=a2rZ=m literal 0 HcmV?d00001 diff --git a/html/map/I0.png b/html/map/I0.png new file mode 100644 index 0000000000000000000000000000000000000000..1029b780dcd257c59e7111666a1cf3fed12e70a3 GIT binary patch literal 362 zcmV-w0hRuVP){Zn00009a7bBm000W` z000W`0Ya=am;e9)97#k$RCwC$Q!!4&Fc2I^^pxnTh!4=@3O>LWD5*{ha(}Pj1DA;E z%Dg0nBjpEIUY!>V1zO8aY={JO9%+@tyP2IG+lCYXfH57B04Zim9sq8%(6tR3X?)Sx zjlPMkC)nEJ<^A60&&LZMp6+1Gj=mv)715G#|2ksm=T%+_-#&IA#Z)<>B_5w|v$@mZ z>TMt?B!vKcgllwh4giOK=Frasz|-MM0Ib4sa%1LjK3*bq&`z#xqR!zrovhT^dh+j) zGBw$?U*7362U|}`->~!|6)9z5M9SzSsUTc8`!1_SQRxp`2y@3m&lz%CACCB)1v(-r zFr;Mf-BzfoYI#{xg+JxJujH>p#T$S>L?J6=g{+Vjvi~Og1YgPCmeN*AR{#J207*qo IM6N<$g7PVu`v3p{ literal 0 HcmV?d00001 diff --git a/html/map/I1.gif b/html/map/I1.gif new file mode 100644 index 0000000000000000000000000000000000000000..fd607d0827b1799f79c9f98e2ea1596741966fca GIT binary patch literal 114 zcmV-&0FD1gNk%w1VG{r%0FeLy|L+#IwzmKO{{R30A^8LW00062EC2ui022Tr0006* zl#i*)2%myv55$>l6*dUzc?YC*;U^l^ih`KBLN4gU=In6f*YX*JpeaZe!{pUSDwoWr U^9hYgr_`$Tip^@bTxtOTI~e9JtN;K2 literal 0 HcmV?d00001 diff --git a/html/map/I1.png b/html/map/I1.png new file mode 100644 index 0000000000000000000000000000000000000000..daa4092127a103ac2e73464f70032515bbf108ef GIT binary patch literal 363 zcmV-x0hIoUP){Zn00009a7bBm000W` z000W`0Ya=am;e9)9Z5t%RCwC$lOa;XKoCV=r$DYia0MGws_h zC6(IGMaQ1}VFt*{$;$~))f57h_1hU}%Oeyqy!buzD-qO0t{Zn00009a7bBm000W` z000W`0Ya=am;e9)8%ab#RCwC$lR-{}Fc5~nA>M{1oWKik3s`7e>KSlpaM5=QFTe@P z()0W-px6g3zC_*eCrz5p@bP!1V@?8~Gn+RXImwRVTH*kAAx$3h zuVa9mBqs?_GkO6k;_K{`JKtP0xFh_@yXx9mTxhwl&-8Z9GGy2(CD6)5R?Yyg) zro5}NACl*`&<`cw&dK#9+W>$fPR>Dcpa22*xUVU~2e$x^TzyYOqV=gpq*izqk_azb zzgd!yG}p{U!|Nn|VSr{1@7#VaJfB+=Jz@*dDzw$K4{cFq@TPt5L oopX&dOW|8@+?B#vj_U-r9Q)*R{af$zU+2F649 zo-U3d6}R3_j^$$!6lhtUntx=bg>d?%^jEbKJlX713~;8nl+vw&}fqT8-R< z7p7aTrZzG&GxR)OsnFZ(zSG54tG-U$ z9qzT1-~a#s literal 0 HcmV?d00001 diff --git a/html/map/I4.gif b/html/map/I4.gif new file mode 100644 index 0000000000000000000000000000000000000000..a47427de85d248c3c47e5e7083668bc5bd9910e2 GIT binary patch literal 114 zcmZ?wbhEHb6lPFjn8?8Jflb`tvfTgw{}~t<6o0ZXGB7YP=m6OaAbAER=PCUwPfN^i zNYOtsGe=a6<7FlLlG2CjQdhg0X6$m(dvWC1n}R3TKS{PM(DV>H{N$>K*7P&WK6CbZ SEx)qrYuDMV?J-%54AuZ!E-b{Zn00009a7bBm000W` z000W`0Ya=am;e9)GD$>1RCwC$RI6^oFcdwu%7=%d;gEuX;r&3^;83JaSv9ux8?vz} zs}gCb&}=^tY!DDqJQW4|3+}*lEhn+HfR6b{k?nhK&VBeHv@!sIo4X5w2U;1iga?2X zI~GZg`?o9Wba?)@LDI59T2^>^d9?id>xbo8Pym<-O$GO-H5!^H#)8M)7Fro0Lqbz* zga~q3+u1gdR)(}P1i*f-tU{8$uKnTj(z}a{ zuiI-#{$Yt==vcV$ZoS+55a%8Xtqg=#CV20bg0GXDURIyuUp&tRzZ&OFFAqF5A* eVo~hB#eM*VJ;L#3AwMbr0000l6*dUzc?YC*;U^l^ih`KBLN4gU=In6f*YX*JpeaZe!{pUSDwoWr U^9hYgr_`$Tip^@bTxtOTJHJ#d$p8QV literal 0 HcmV?d00001 diff --git a/html/map/I5.png b/html/map/I5.png new file mode 100644 index 0000000000000000000000000000000000000000..596ec368536a47840ab0df245dfb00276adedcf1 GIT binary patch literal 373 zcmV-*0gC>KP){Zn00009a7bBm000W` z000W`0Ya=am;e9)CrLy>RCwC$ldn$1KoEz&ZLqw?n##kSA=njtg+(E_5ELf~vZ#g> zQFXim0^8K!)?#=K9$*m1YXthmAdQGLA_7R!1_31Nx07l!C2doyLo+#VcQW_?t8O`{E-&l& zU9>@pHf$@?Mb=}Y@09Yg9vwG7^n=bQ@5v1S$oj!4ND8D7fY*yNGMz95c&IAX z=+^faKjrn0h4U8UyiMM_snY9|?O)chz+-;g&11*lH_G@!&9E6Z!)DkF`)}AcFjld$ T#kyPc00000NkvXXu0mjfP8+1b literal 0 HcmV?d00001 diff --git a/html/map/I6.gif b/html/map/I6.gif new file mode 100644 index 0000000000000000000000000000000000000000..7d049d3b192f795a031f2e26685ca7b4f5fbe4fa GIT binary patch literal 85 zcmZ?wbhEHb6lPFjXkcJ4xGeYo|9{1wEQ|~cj0`#qKmd|qVAAR7UwNA2{x#-{t(C8r o&bh{!rSPpc?n>b-$8`c*j(zgE{;l`38 zo-U3d6}R3__T@XIAkdobVe7m54QCZ&o+5X>*rXSdSwZ64^j_&!HO^~LoyTr|Nnv4$ z$*#w$IudH~{gP}yR~)z+FqMtz(PF0vfzOVvm!0#^Z27dSdC$8vea=HV8RZfCRp0bW zGcX8EIO?#@AevD=ROCe4DwDdqERVLVvDRgsFn{IJhHpjuYO&|dw+n85XH>p;X@eO< z)tqe(f}feAxHM+fY5h_^<>VMGziROUl6*dUzc?YC*;U^l^ih`KBLN4gU=In6f*YX*JpeaZe!{pUSDwoWr U^9hYgr_`$Tip^@bTxtOTJGe_NwEzGB literal 0 HcmV?d00001 diff --git a/html/map/I7.png b/html/map/I7.png new file mode 100644 index 0000000000000000000000000000000000000000..cc1f28ccd49467984a7dadeefe6065c6172be4cf GIT binary patch literal 386 zcmV-|0e$|7P){Zn00009a7bBm000W` z000W`0Ya=am;e9)G)Y83RCwC$Q?F~pFckh0&W_Vl zj*7vK$@ud%2N5T#&x}*mVSm7z7%!x~gq5+md{C0S@AZ2>k|(q>0D$#oPVhi0Bc|{G zFk{EONb&r3Wu2bxK5dXH=};vdZeJFbe}DY2JPQf{7eZsf{q6*=zy%9#&r4`!gbWFd zvEIysTvPV84RoXx9ce`X?C09*HXCpNNGn5H83I5}*%JVgZaJYcL*OzwJ8-1DNC%PK zbKPba*;Pqr_f6STQ}*APag*~R1pvE-P$iw$K64NI-D$9fustumb_oD=n|Vps{%~{f z-Xi1v^%|0Ym?9W@7B0M3?>0Zgxz9o?1EG}(&fQe-ILYy_`W%1ac`tl3_ghH(A);6m gi(*kMiv73P7hmb-$8`c*j(zgE{;l`4N zo-U3d6}R3_u@!1o5NH)YcJJ1yle{{%ovB*f$L|F%N!M8uR3+qt73> zVP7=sw=Kt$-0)XB?`PiIAX%Q2ouv6&COC)pS^KHJ_B(U+9CCOMEZOIvxz6ug&VvYT zpI`b~F^-Q_u1>rxxtAlnCPM2y^Rpt`8yiA)D6mSDq&1|aYgOxnu%20W_6E1V-trqy wrZ}a4x&FglMlYl-H3Eco?#o^KHFbk|f_CPdq_fL+1HH=N>FVdQ&MBb@0LYksc>n+a literal 0 HcmV?d00001 diff --git a/html/map/I9.gif b/html/map/I9.gif new file mode 100644 index 0000000000000000000000000000000000000000..444874461084cd366fab3702342b2ff47b7fe220 GIT binary patch literal 85 zcmZ?wbhEHb6lPFjXkcL2wr$)0|Nj+#vM@3*Ff!;c00Bsbfk~&Qf8}Y8``4H+wpPAg oI_DZ^mcqB*xGROT9M=hKIrhot`nTTazs`OC$IruM%F1930Pt%e?f?J) literal 0 HcmV?d00001 diff --git a/html/map/I9.png b/html/map/I9.png new file mode 100644 index 0000000000000000000000000000000000000000..a11a137114337d8b9dd4aaa96495d2ed45577535 GIT binary patch literal 341 zcmV-b0jmCqP){Zn00009a7bBm000W` z000W`0Ya=am;e9)2T4RhRCwC$ls^uFFc`&OQ71#91BrvP7bqKx1Dlu78+Zf54Y&c$ zI=eY^VT0Mk*%%WC2M_Q$7_eYzo9Nh=5R%8oudjc;vVu5dg{&kfR1jw{sNV)HmNO)o zUwfO?6SvC)AuGuQ^mHHqNHQOj=@>i?I#V}bT_9Qhcz{$yTA&xQl2Q?2IO@sMt)D8L z*k4Uc_L=4`Jz=wYDvM-am#(n^hwT}_>0r5dH3{2KN{VPwu0Bu1f AW&i*H literal 0 HcmV?d00001 diff --git a/html/map/IA.png b/html/map/IA.png new file mode 100644 index 0000000000000000000000000000000000000000..1ebd815f0839094a12f9812ce4eb4cd4e99c9d7b GIT binary patch literal 555 zcmV+`0@VG9P)-#!U6P@rNIB6Zq~qx#z!vB)+ONd||y|Z`d35 zAHed@FKV?KEX#tf>i_`TwmF$h5Cj3jFhmqZ=yW>peP2XT1OOljl4)3>P)J~_)rzy( z482|tl}ZHwuv)DU1OcKbqUU)4ATn(lh5^GcuwJjZSS(O3mjM8#X+lbgMx%jZu?W|7 z;kqsW{JmXciE+2vZP>QW<#I`qJe^LoEQ`9XGndOz2tfe!Jda8#`o7OU7^Y#(W)tW0 znfJBbZYiatrfCTb0F_cyO2z9&%I0pj1b7=gEf8<@-JWd`~Ge zO_Tfmo~CKiFbqm5xm+$E6anC9GuQcC9Y`NZ0EI;B#IX4`FhY1aS%002ovPDHLkV1kPB_Fw=2 literal 0 HcmV?d00001 diff --git a/html/map/IE.gif b/html/map/IE.gif new file mode 100644 index 0000000000000000000000000000000000000000..409f32d931e8aa405e3b5dda95c8a3d61d987238 GIT binary patch literal 97 zcmZ?wbhEHb6lPFjXkY+=|Ns9h{$ycfU|?j>0r5dH3``b1{VPwu>lsT}>_27h-@NGY%X6zvRvc(9=x}0->l= literal 0 HcmV?d00001 diff --git a/html/map/IE.png b/html/map/IE.png new file mode 100644 index 0000000000000000000000000000000000000000..8aaf6ab50d829a4efd83ee1e2dd9a4dfcdffc3dd GIT binary patch literal 457 zcmV;)0XF`LP){Zn00009a7bBm000V% z000V%0lmi0*Z=?ldr3q=RCwC$lrfI#Fc5}6BRZ0XI>+D?)QBU{aU1HKfRc)io+byN zbCKS$9U#`cVxP0gVpdyFW+W@t%=ptkld+YE@F|<|L7QL`Y=TX&36`*V%Bhq}zU3mK z{tSx{V@wLv$KOHcLr@A5t?N3p)_CtxN=XVhAA+(hL#eNvpWx+k34qp`>-Cxh&Qj$7 z(eTyKi zHH*b!1l(@706ZQKx~_YLiHOSc9Ov99P!t8m7;d*4Wm)$AvMdQ9u-olkhxdP@#TX-i zR8=L%<52)PolXJ>AZ1zh`@`WNUq^-EQt_`TrKGAV+P1}ek8=*^Tt5cZT0#iy_xrc^ zbUwVq@$Q|^XP(a|UDpvp=#zf~0pH3#@oM}7G?Wk{p7v)g00000NkvXXu0mjfMrhTO literal 0 HcmV?d00001 diff --git a/html/map/IF.png b/html/map/IF.png new file mode 100644 index 0000000000000000000000000000000000000000..45b6594df28bf87472c3a3e490c4d3c07798474c GIT binary patch literal 390 zcmV;10eSw3P){Zn00009a7bBm000V% z000V%0lmi0*Z=?lI7vi7RCwC$l}(C-Fc5`bHGxLj6L^E1Mi9KF9>E**vfaBi8zBdWzra-JBM}{5zal~(!92uTd$_y* zCj=$`27CfqDvskFPM=#p#FRg9$d_Gr) zrOtLftFSCfIOoDS+xm5;vMd1rQ55Z?u?79+*-}MOgeQQAcA${i&N;Mgi~IeKEX&rg zqX?V<<2VL0hdt~2ez$0O%FA}5D1tEtX_~Hrt3-r+Xsxvnk-62TX`r=6RaG8z)+}<^%Y8z2Ka~Fbo)m0pmDg knkF#wZ20M*f8z@J0p@{Zn00009a7bBm000V% z000V%0lmi0*Z=?lXh}ptRCwC$lrgUAFc3wL0}Zm3f)+}akQJpuEQ)1NP_ckC?7^1Y zA(R*!q{y%NvEaw~|LN(K8Oe=DKAw9$V-aKIx1!(|V}{MJ88*XaSSFUaO(8_~FOM;b zZ^H&i+qOAS%1=R;@1VAAQA%ZRz1?nTt?}L?gors{@i#~akzMQc8i3VmMbk7{D~g<) zT)a#7-se60pS&UN_dC{FoO6T_IGs)-xv8?Q>n1^$%LM@E9FNBX?|rtq0{Ez^>$=fv z?shw@wRByFa}Mu4A%y9sos!u!4c1x!w%cv;?D>4=TVs%@ltL+mF$S%5@<>Ygap?7W zQ556hS;iQ}A0siwq=dDWs;W31kE26<-?QKEN6nk?#uzr6Of{L^3K3n07R%TG0ecmMzZ07*qoM6N<$g0XGOXaE2J literal 0 HcmV?d00001 diff --git a/html/map/IG.gif b/html/map/IG.gif new file mode 100644 index 0000000000000000000000000000000000000000..ffa57ac92cd7230a5d8484aec9ec5f33ba24ef36 GIT binary patch literal 99 zcmZ?wbhEHb6lPFjXkY+=|Ns9h{$ycfU|?j>0r5dH3`|x%%*%H_;F;=ec+Tr~a(Lcc yNm-8GN5^eDBg=AT?LF>tQmjkSB5ix3>1)RJBa1$E_-IW(v+OfxuU9WCgEauA5+Zv5 literal 0 HcmV?d00001 diff --git a/html/map/IG.png b/html/map/IG.png new file mode 100644 index 0000000000000000000000000000000000000000..3024b8692968656f4a8a5a66eb564e8f50c41bbc GIT binary patch literal 379 zcmV->0fhdEP){Zn00009a7bBm000V% z000V%0lmi0*Z=?lElET{RCwC$luM3-Fbsx&BbMPn+@ra6rK*T+FOeqBtDY4Rq&%vb zO0&Td3uN>8!Ecj@;9J&iIf!U8i-^!iunA&}!BL_bO7k{}NNR{uYVkhzE2S2|=C`1f z5{xm6akNMCSp(&q!OURhMNG36Tvt{5oO9*5UazH?_LE;;xBGZJ;G6?9Bj>y?jr!x- zthI2?!F!L_>$MMClf{%^7zR9_PcSoLjK{DekhK;e1mv7CmsYa}5Rn49-|sNSl&ZY< z2q7S)^jT$H*8u=-w;PNxW#}D625~sDs;iCWb1kpE-V}mc+2|HmY?1cRz Z><3j534iLEgX91J002ovPDHLkV1h)SsoMYm literal 0 HcmV?d00001 diff --git a/html/map/II.png b/html/map/II.png new file mode 100644 index 0000000000000000000000000000000000000000..02c286eda7a6036e25236131371b60175647a4ef GIT binary patch literal 354 zcmV-o0iFJdP){Zn00009a7bBm000V% z000V%0lmi0*Z=?l6iGxuRCwC$ls%4vFc3yRhcqZI=n&UJa5(PZBXABxO$`Oe2n+vh zvu0sqMCvvAth9%A=iRTZ)5kInK1@MQEVPpGva#6 zN%tZENRk9`93zS%7-OK6ddhx(O+qQPecxjoM@-Xn_)tm-DJ8Vlo1`qu!#D*8y=fXO z%K{+;gb-NQ6;etlrI6?OsX_nKFX-ap;^M-?7b5naLH>?6SpWb407*qoM6N<$f;1VE A%>V!Z literal 0 HcmV?d00001 diff --git a/html/map/IP.png b/html/map/IP.png new file mode 100644 index 0000000000000000000000000000000000000000..56572395b3fcbdb62e1c96370df851ab202800ce GIT binary patch literal 401 zcmV;C0dD?@P){Zn00009a7bBm000V% z000V%0lmi0*Z=?lLrFwIRCwC$mdmb!Fc60S8c8JK4V))bUdR_=;Ukc)OxTgQnZ_Lp zE7W+&oQ0mrT;dK>7IRR!|~>Z`llAvXSs-|(J&9O z*2X~L{t$HD2U%;8WtsP%Ha1NIW`=VPN-2o~f4@#*trdAV9~U!=)>@euokpv3&f$K)$NS7D9RQda%sl9O*!g@Ou4W%NM%my5 z_z*<|LLS5Hbuh(zQ8^SckV7XjI zJiT^vIy h<|P04|DW-&!U2ZYyot3T7FA&&4W6!kF6*2Ung9lh77hRa literal 0 HcmV?d00001 diff --git a/html/map/IW.png b/html/map/IW.png new file mode 100644 index 0000000000000000000000000000000000000000..d19a4a5d41fb4a0ba1819ccb65d252d95ed74fb6 GIT binary patch literal 343 zcmV-d0jU0oP){Zn00009a7bBm000V% z000V%0lmi0*Z=?l2}wjjRCwC$lueF>AP|HL<4!K&S-gRXmsHQ<(o?vEbc>jt%}D$K zoq5UISqTXd_-MMi1zx>+_3G7kr5@JhKWEh)#2Aw#X{|4e7)nOVCH++1~kS%L}0B=no?C2oO1wxJOwL?0swA7o4ohY zV!e#tl1Yxf@3;BknQDtbM8M3C5w&f5$mcm{N^6aIobed9&@@f5oeteFj$^Q% pncVNYye#3~pvR*I>B2FNbKvb(46p1W#eHq%Uha?X6e^F7b~ zeP_;~ zi~vDl!7V-JY1u!>pI@Ai^onqwU3!1Wq&9pR{KHj@$%0sn2Mx1=y_O%d{Fo&}e3$Jr z#%vWs1eW8=EPQ*S73t3`-$!qfXLSzdT?O-uMvT0TsPI-vo+Af8edJk)5e_yWKFo<_ zo~Xwjw&w)e0NVg>_S1%NR}4QbLh1jBv7V(95PQYG`4=Veo<{(B0mL)oSS}Gwp-!|> zbSUCKYAJvcI}j=$1UULL{SEwAuSi+}9M8cjoIw8oO?-AQe(tHHP(EDZc$0!^_=;ttvwh>&p02%v!*;j6`$XYT&C7$qoBE4R z>}eghCKeqGIbQhM>n*MGEzwF_D!unyUsg-id5*UV6@Cv3=)$cJ)qKwP7lED7UwL&EzR(p2c~3Pv2(G zdspqttb<$o+-e7fCQ}@R&89<1dISCGzUkg2!!ZiiN$Dbo z!Y+Kn^EzzGh^&cu5 z&uiZGncZMEyp{LM@SS#3?-|PuXXu%FPsRP3PCQ0?`#f7jRSoTOq*h;Sh&bA9nsOzT zBqzJAgMQODv zv%s&bM;Zgu_}gYMzsTR`82WQ&<+{Jjch7LXNIvJtUd$OaTk67&0b%7 literal 0 HcmV?d00001 diff --git a/html/map/SBO.png b/html/map/SBO.png new file mode 100644 index 0000000000000000000000000000000000000000..75cb096b86ecff86be052118a53ccf965022d87c GIT binary patch literal 126 zcmeAS@N?(olHy`uVBq!ia0vp^!a%IV$P6UgcNDY(DYgKg5LY1m@|212*O?Q6EMrd> z$B>F!wudirGAM93I4 z000W>0fLJSS^xk6=}AOERCwCels#`1F%U)1*xuc@K@mdy6w=WkijW2=bhJo-D3K6J z2?&Wl40-YH*dB_Vmk)&`@1Qu*0tmd!z(V>n?K+j}Tn5)~&mJbqXLt z5Mm^y?KEF}#-Jz?0L*~x$hlG{f+B(lA<)_u4jsIwff;>IN~DAtA#9-;I-jssFIFqY z@jmkKl=BH-wIW7Bpz8>McyDgUJ*oku+c|_a(0F) zeecFD_T+r+uvSDiq$(jW&*bbkW1fi-v&%IuSd2?5{sQZW~hJp+X91M!w7xu4XjQN+6^32!z?Uu`a j*55${kaf-$#NEkivW{;GPk`4^kheWu{an^LB{Ts5cIz!Q literal 0 HcmV?d00001 diff --git a/html/map/SBW.png b/html/map/SBW.png new file mode 100644 index 0000000000000000000000000000000000000000..65a93bdb47d5cf0206ad43e2b156243926d9cd27 GIT binary patch literal 567 zcmV-70?7S|P) z000W>0fLJSS^xk6=}AOERCwCels#`1F%U)1*xuc@K@mdy6w=WkijW2=bhJo-D3K6J z2?&Wl40-YH*dB_Vmk)&`@1Qu*0tmd!z(V>n?K+j}Tn5)~&mJbqXLt z5Mm^y?KEF}#-Jz?0L*~x$hlG{f+B(lA<)_u4jsIwff;>IN~DAtA#9-;I-jssFIFqY z@jmkKl=BH-wIW7Bpz8>McyDgUJ*oku+c|_a(0F) zeecFD_T+r+uvSDiq$(jW&*bbkW1fi-v&%IuSd2?5{sQZW#4hs(ALzkz~c(H%IandEcmHC~keLa?EMfEzc#bFRVJRyQyBEl%i<*M&+tg z*P9fJ*Q$@TPI@lO_AFIrF}VN#)9-uJ?RmbiFo<4`5MJ3c>mkr744$rjF6*2UngC0p BPfGv* literal 0 HcmV?d00001 diff --git a/html/map/SEE.png b/html/map/SEE.png new file mode 100644 index 0000000000000000000000000000000000000000..16b35a5ffbaa61ab54f3f19289842019eb4eb723 GIT binary patch literal 198 zcmeAS@N?(olHy`uVBq!ia0vp^!a%IV!2~3YL`o+EDb50q$YKTtuGb*U*woD%1r)6C zba4!+xV87nLEZxj9IOE;eA{1$@!iqAv#7bkAXBPWY#&4UCp!`de?o_4!@p-dT~^i7cF$|>@jUr*=K|Xo!|w~4e{x677P@dnq$&CNs~t-- tTkFl4Eql$Du=e{h*ceTIrJ8ew&GD#7*{6-ZtATD{@O1TaS?83{1OUi^NE847 literal 0 HcmV?d00001 diff --git a/html/map/SEF.png b/html/map/SEF.png new file mode 100644 index 0000000000000000000000000000000000000000..95e73dca7c813f7a66a03d10eb8dc0edfc26bf41 GIT binary patch literal 203 zcmeAS@N?(olHy`uVBq!ia0vp^!a%IV!2~3YL`o+EDb50q$YKTtuGb*U*woD%1r)6H zba4!+xRq@4TJ^AllEJ-iEsc$hosBUET;{b}i!Hr)+HXhemrv@OT1z$xpLM!*yE9WU z&`R;viSO#OT3bq!O4W6pIr>|-Y!u$#YO-PSg4QeBCQERy%u=5yw&?YdsXIDLbq&Q9 yy->L~H-t+uNO#E%KO>zbC;Z$dB{f-gLqkJFamK&2>j9AC(^-kE*$HJGlI2^Awy4S>kWRCw5P+RtU? zmdT|LHu?oV<8^x**`%n({P(OmhwAznb^dJICeOFE)em8;J!ADE!OSsRn9=RWN6P>J literal 0 HcmV?d00001 diff --git a/html/map/SEU.png b/html/map/SEU.png new file mode 100644 index 0000000000000000000000000000000000000000..f14a2017e7799677d5e1b0ef74be59162fca4ef6 GIT binary patch literal 20854 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 Pzn}9DZYN7mT>RzVRv`;F literal 0 HcmV?d00001 diff --git a/html/map/SEW.png b/html/map/SEW.png new file mode 100644 index 0000000000000000000000000000000000000000..e08b411aaf960d12377b0063abad0fbb302d0deb GIT binary patch literal 603 zcmV-h0;K(kP) z000W>0fLJSS^xk74M{{nRCwB*l+9`tK@f$%s_yBzV+bN{eT%qrBQBx{g6`Z3DlP@l zEL8*_$+z$=d;u|cGBf?>V(KQuT$4MuSIy8pUsauRT7Evg$HH~=;}@XpyL3MwPd@F- zymMFg0lxfBX!l}<4sm`l@cCC#B29iV@bnM;K#YDF@ct`)pDs|vt^wU4&du8;)gFID z11T{KjH6!wY!48One)!7JU#&sK?UdV-tPo__?`+WA_`FJ&V5dqJfaa1L{Oy^-9d@h z#7K;&;yq0R5W)^jZLGtbZL?a@b^Zq6@d;-mz-onasM0j3;%@Y9cZ*yBt5cOy7zR?( zYt8+cl!=j?Nr_q!F|z8l%v|Yv#&MS31{(rhw_TO<_ktK121)@g?#BphsrJHa;)$DK z0;-5utE$xcpK2exW1L9Y8gq^iXj_{w{Oi68U<6Hgj|ipEG)9ZjO4#ncqc@aFO0+F) zOReNgtxS`dR+W_e6|cPoLBurho>C~qCNzgrgi@|D#p)@Av$HuC#K<_B`!+N4mw=Bx zP&c%ch>`Vrp5&#UZ%NtVZEB@fO0lkH$Ig0|VgpObsx{z?ZycCnj^Lb9CMLGiNsPp0>4=f{DYkFRWJdJ?k|w5&{PY^9l3d{IPBEo|F*TFz3im p6T@K1m?oSvG0!vYJmdKI;Vst08iE;)&Kwi literal 0 HcmV?d00001 diff --git a/html/map/SFE.png b/html/map/SFE.png new file mode 100644 index 0000000000000000000000000000000000000000..41b699b9f708a33767acb00e7a5c4ad422ab43be GIT binary patch literal 202 zcmeAS@N?(olHy`uVBq!ia0vp^!a%IV!2~3YL`o+EDb50q$YKTtuGb*U*woD%1r)6D zba4!+xRrcoqegF|%L764?#9N(&c>JnF7sN`_olo^Rlnm@^;7t!)2^`>N@)N9 literal 0 HcmV?d00001 diff --git a/html/map/SFF.png b/html/map/SFF.png new file mode 100644 index 0000000000000000000000000000000000000000..ea71c5cf4e6d099bc0029d7135c3dd4069fd8474 GIT binary patch literal 138 zcmeAS@N?(olHy`uVBq!ia0vp^!a%IV$P6UgcNDY(DYgKg5LY0*V^LbzDV{_i%ihz) zF{I*_?qNqx1_c2Yhs8IJXqjD9bKBJP;PCbzLQl@M-fiT3XIhYQ`VU*Ytwmwt^<|xF kKNRoV@$tc>b-u#&y63|KGye#20*zwuboFyt=akR{0C$-$ga7~l literal 0 HcmV?d00001 diff --git a/html/map/SFN.png b/html/map/SFN.png new file mode 100644 index 0000000000000000000000000000000000000000..5d1f6594c4512d61ccb7a38871f7642602976244 GIT binary patch literal 214 zcmeAS@N?(olHy`uVBq!ia0vp^!a%IV!2~3YL`o+EDb50q$YKTtuGb*U*woD%1r+S? zba4!+xV87vM!^OJ9@Yy7q-0o+tBBk&WL@eUXw~{S@`i?nisFoa_kXLbNWR}-p()OA z;lQj1J0h%e>pRayKnM(+wi;<%Rc^E4g>ERK%{x{1Nl L)z4*}Q$iB}mtIn! literal 0 HcmV?d00001 diff --git a/html/map/SFO.png b/html/map/SFO.png new file mode 100644 index 0000000000000000000000000000000000000000..495ce2bbde15825b6929f408a72b01b62b018829 GIT binary patch literal 910 zcmeAS@N?(olHy`uVBq!ia0vp^!a%IV!3-q3RtSA#U|?nl@Ck7Ra$lY@*|8`M$QT8q zAu!THK<9myI?&Iao-U3d6}Ng%oD^hG;9%Ks^k4TkDbaA2Pdr@A6D%E!u4@(V6*AY_ z7kT}l&BJKXJ9_{9b}m0<9eXa;l>Zs0{MGk6?7mN_&7T?0$g9nqlx78H=4u6{1- HoD!M<{zfs* literal 0 HcmV?d00001 diff --git a/html/map/SFU.png b/html/map/SFU.png new file mode 100644 index 0000000000000000000000000000000000000000..2dd92d7f3e9c22883b26aeadff7da5ec7598654b GIT binary patch literal 911 zcmeAS@N?(olHy`uVBq!ia0vp^!a%IV!3-q3RtSA#U|?nl@Ck7Ra{vGTzhhC_pZ_<3 z?7<9bYikFy^G4k^6hnZ$YpNU2-Cmw9jv*DddQY4bWKiH>*&w@n(f?z6jy1DRv}r!X zkis|N%+^ye>yPyQy024O;Qu46HZQzp`JvrfyLLAPoASTol)w6Vhg|w8`{;L}Q=dC& T&C5!g016FHS3j3^P6 z000W>0fLJSS^xk73`s;mRCwB*l)Y}%KoEt$nO(21i6Vq}6zFIWMM#4L9TgH1M3hJf zQUXHaAt-qYUJH@y*xo-1&rK9^Nv`i!D{I%^%$##pe*HXQ;W~cx15ox|x*w3^Px~_O z-Pe79FTWGoy_lgxoL>xl{*{zSlV1!x`$InvqhAJm_?q8m3skXdKzE39^L9zKM<3BZ zN(=+z=obLn0|aB{yt67#PXRo8~AtX6cLzXf=7%J~SeTHze3G!3e_TYcNzAy>faRHYP#ft2({ zbAKjfVkBo$qE9eSNfiDoTazHhCtVCSLNcpAV!9PQh>|*F#=nvz4V%R;%1nD zDk9dZDz*Nn+DGpgCsMY?oFfF<)+P-9y6+MgK@;91LMb$j(PFd`w!81aTS_G*+LpGZ zR&u6RrpZjJN=p8k*G@nXF%7(@6iTrP&EXWGlNWWAmzdFAI@Qg(QkTB(&%tgG3vv!12cz*4em4fx_4h~1n65rUZ}XCpTawbJ)j zUrq0c$z19jU3c-!nT@=sZ7ro>;_&PXs}+6EdQFUkz`?NYERw=-O7~b{PJ0q6tmDlbB|J^gOMS@Fr=XIgzcHL!DRj%_i-y1Ff482yM5~C! z?{2TJy=H;?#{=8W{4?^OaCutttOxqbSWnF^pD^W4@}Kgk1@=F01Q$8;1sp4BW?ClR zlN)qkg__`&$@#~9bG;e$J*&=pNOQ5;&*u5yajE{$oRX_mGo}X!G(2i#Fynbt>f1ka Rdm7Mb44$rjF6*2Ung9fZQXBvP literal 0 HcmV?d00001 diff --git a/html/map/SNF.png b/html/map/SNF.png new file mode 100644 index 0000000000000000000000000000000000000000..4ae88c4241d2420ebbf84d90907d63c7ca4f80df GIT binary patch literal 221 zcmeAS@N?(olHy`uVBq!ia0vp^!a%IV!2~3YL`o+EDb50q$YKTtuGb*U*woD%1r+S} zba4!+xV86^BcFqT0PBVIdQTb7J<{NNBqGGEE-18d`i<4B6SZ!=d@f}Tk- zEq{4z+kBB7iz^ahMeAp(pU6CI==(wZGSkzu)*fE(4F6f{UYK9=MsuekyGHUZN5;$C z$ILVnLMC(EI=TJvvTaKnrmO5tU&7nkG~bu4Lgl4>qTjA8+cVx891b5H7^K(Q*R8rN S^Zzu^X$+pOelF{r5}E)^=TgZ4 literal 0 HcmV?d00001 diff --git a/html/map/SNN.png b/html/map/SNN.png new file mode 100644 index 0000000000000000000000000000000000000000..d91b5825dad04c0d5c72da7d72985929949f1a84 GIT binary patch literal 198 zcmeAS@N?(olHy`uVBq!ia0vp^!a%IV!2~3YL`o+EDb50q$YKTtuGb*U*woD%1r)6C zba4!+xV87nLEZxj9IOE;TI>a@_#TAF9@uDOk}1_IwvVCwlbwgp)|8-YrRGXWPThtZ zrpcu4OSm#8-r$IgLwzxu>s)_nyXQ6cc%FQ@bAj!P;r9j2Ke?l33thM((vXzqQq4KT=iP4N$}su;C!iY`JYD@<);T3K0RYJEMEw8& literal 0 HcmV?d00001 diff --git a/html/map/SNO.png b/html/map/SNO.png new file mode 100644 index 0000000000000000000000000000000000000000..2bc962997743071352f04e3da454179519ac361b GIT binary patch literal 398 zcmV;90df9`P) z000W>0fLJSS^xk6KuJVFRCwB*m9b94Fc3g5sTGh=1uGLDK?Xj6uVMqCstAEV{0>7^ zLW$B6D0~7#RK!xXrio*p8B&$dgxJ@c99vJ%=Q}%2=lBSSadIC5fD80E*lPm-qhc39 zJWa(U^2tsvWHF$Tx8a*aoJ2mE{Njt%m_T-eSZQ4dX{1zG{chUPaBM5)V)cRolkT*|bF7hPw$>b+r s0Dw#U#W?%zon*#I87`g4jKfCp0|Hc_!13Ed0000007*qoM6N<$f>J%EaR2}S literal 0 HcmV?d00001 diff --git a/html/map/SNU.png b/html/map/SNU.png new file mode 100644 index 0000000000000000000000000000000000000000..5d741105f2366aad877515507ef7f88265d33605 GIT binary patch literal 218 zcmeAS@N?(olHy`uVBq!ia0vp^!a%IV!2~3YL`o+EDb50q$YKTtuGb*U*woD%1r+S@ zba4!+xV86^Azy<659p)aaAAno_xay7b!Y8zda~v3 z72eHEq)2J7vbl^1{g+*k*6 O7lWs(pUXO@geCwZbxuM6 literal 0 HcmV?d00001 diff --git a/html/map/SNW.png b/html/map/SNW.png new file mode 100644 index 0000000000000000000000000000000000000000..60e0e1dd507a10c218d1181f1c724ecd1e4867f8 GIT binary patch literal 601 zcmV-f0;c_mP) z000W>0fLJSS^xk73rR#lRCwB*l+9`tK@f$%s_yBzV+bNXiY^2Q>YUSZ^5g*v*O#Ba0A=5$`vH0Od0*z8 zySfkX)d`{9iy1n^`NhB&-${uy`NhD~KlB4J`enfTulaqtKoz?NbcZ-MZ&~A!vyu0-t)&!99G-t;wW9A?uZfWmI5?P3mF!x~DgCGB|J?yzopr0E`YJq5uE@ literal 0 HcmV?d00001 diff --git a/html/map/SOE.png b/html/map/SOE.png new file mode 100644 index 0000000000000000000000000000000000000000..d0e4f08824b0e0e3e03d24641ad3bfe25c09195a GIT binary patch literal 200 zcmeAS@N?(olHy`uVBq!ia0vp^!a%IV!2~3YL`o+EDb50q$YKTtuGb*U*woD%1r)6E zba4!+xV87vLEZ)f4%UEMs(UQj3OU@(tvaGB3=BoL{tamOeg5}_Wyy0rEDrAx3{-oY zBD+IBc}it-VD+?wj*|}cpLv~5YA?G#x$*6jbpP|*p$_t!`K)I6UbyAr5G>46`RRS} v;#|QG6OU9&#d>g+&F0#0+Go-94Tk>rpJ|$X>6-Hh=n4i;S3j3^P6srNoh0I^o zZ@zNS_F?qbov|P1a=l;m;vJXYRhu2^H6iOCSIyDF!x`!P(859Iq92Va=qGfhb&23ZDgTvc@2t7I1dbg4DooPYJ=|61owibnn*Ozs! k{ZPDb$Hxbk*7*w8>z)q}%={z72{ekq)78&qol`;+0KWM!Pyhe` literal 0 HcmV?d00001 diff --git a/html/map/SOU.png b/html/map/SOU.png new file mode 100644 index 0000000000000000000000000000000000000000..535d713a82f523f35f8f0ae42a0dad599e157926 GIT binary patch literal 911 zcmeAS@N?(olHy`uVBq!ia0vp^!a%IV!3-q3RtSA#U|?nl@Ck7Ra{vGT|MHZ{pZ_<3 zY~n#}Z7uPNM^%o7z~Bsl_tz^~fiCm%ba4!+xYc{&q#%O=2g?T8=mr1d_8x0yooLg1 zh#`ejH^$xl8Q})sCLf^j^ UpP z000W>0fLJSS^xk73rR#lRCwB*l)Y}%KoEt$nO(21i6Vq3cn~5Q8blFjkf5VQ0z`>~ zASECq9uDy$l!#o%_Wn_LZlaJ&a(%a2S-bvb=A5(g>&Fob*S!Zn0cGE%`vH0SX&~A!vyu0-t)&!99G-n)wW9A?uZfWmI5?P3m z000W>0fLJSS^xk7I!Q!9RCwCelsj$|K@>&Lt6$Ibbl`1~up$y9Boh!IB3KCm0s=(j zwOH~;)6-qQM^Md}0ekFm##IHC+&Z^zJ(bAI*Lcrv$MrQi)Au?IbR8fmku#+Lq{KLq zGoTkA0Y?aGj5voe0JV}cB3P^5wsa+?fEVi~9JZH9BNeK~hCPr%A0|AFI)QT|- z!?JJpaZcB3yl25T{0Bc#T@E$+}RZ3x+B+mNf{BI{Ip-M`Wf-#aan~k=prO0l_?XCX& zz&~=VR%)%pxb!~H7$Ys@I5LjZ!hLc&3>c%{FC(H#DO#(vAhqblr~93RuoPe|U57Dv zFYSh^JS@j<2S|*Bz%XF#(oIST4*>xumzN8$?{&T2S1KuS4A~}L74Hc_+QjBeN=(ze zl^%4`uk;TmpeoZuO6nZn-|;j#*=~uElyFXJRh}xx z)fGSp7^C0bKG}$&6h!d8eRHQcokN6D`26N1r_-}DNon~_PGk1H_G|s|{&Xi`EYH!4 iSI@Fx z000W>0fLJSS^xk8gh@m}RCwA|mCddbM-YX->aO{*uThBd9+48rDvE>v5f%a6D4V=a zo(ct!Sh2c!i>#6O^LVEJDvK`LO3RBG+cl@^oKt5+UjD@}a60kn6Q!`<+u^`80g^MN zP%A*rEDNOoc6SFT<7gp>Dj@*0Mk$C8qYXoU1g){Il2WhiM@b10)|FB)BPB5-MyAR3 zdtwAIqcvK)0P_5avTb6<=|ruVQHo>cEMVj4ZJ%59^X+$P(pqXF?RE@9e~OGF>*|2x4v8w438%@10TG#J141B1Lg<(_ z4!nL1aQl){C`qj~%tV#eq*fEL5K#5bMVz6|Jn;1k%Sz5FU9N2dh>>|_7yv{tqgK{c z(q@0Z26*^ApT3?|$r&?prdC3bQn3*zMdKwK9&%JhN@o%JE3f0Hx5H zUjyMRZ&zM~d1kj$ySb6>gkAvDdZqN)Q%)PeJUiep^y!p&CIrTj7%c>;m1SW&Yq;A} z4M5dvTId!1{S60@QoK2N??;KE+RIW?Y7qyQHn5i6(q(siBN^36u z&p)vxO7%fvWE`0$XBbdbK7IrkM?$bSZyYc~I8)LZ!{BH=mV7^J?Tq)B19DP8lStK$B6^$OtO0}!801Xbs+Gt`$;gx1vV-I2k^3<>!*`1TK_{mt0e*` z`@QAF+qVFZA7N*-?)&4B5dOEQmn{Pb(Z9O)jYnQj-G1iT^=!=vD}~mSW$_7rzXiF5 zMkh99?&)$kExp)Z1=-b#&w~?yHjVciNw*b6&fevgN$0Mhczc0>t zdv&k-xt{0j?1ex|tShzpD=0=UzU;IrF?Lt{2Z#l5Ut>Jw3;+NC07*qoM6N<$g8KW- Aa{vGU literal 0 HcmV?d00001 diff --git a/html/map/SPW2.png b/html/map/SPW2.png new file mode 100644 index 0000000000000000000000000000000000000000..8be1e558468d8692592391c1130a2ae834256f71 GIT binary patch literal 597 zcmV-b0;>IqP) z000W>0fLJSS^xk72T4RhRCwB*l)Y}$Koo_)duKde6GaH|DA3U$ia-N`jur_JB?v)E zKuEN_3vY(VI=1JJ!gn_cS(5cmHL_;>-FweDBOmz1!u6A9fO6>4!+<>bd?@qIT|ET& z@&}`NhEJ-$;ox`NhDqKlB4J`enfTulRkoKoz?NbjLV1ZN%*sg8oEG4VffG@s-*v&Z*A(&}$HgeNYD}8_Y)%2d2 z%%#rJb=zmoY~(#{Ybga2ho@gzt>}B!Yhok>j*jLN=E3=6+u}VbA+ll4k)I}p!ICje jIA>yRGwnUj&93+h&CdBYJax|n00000NkvXXu0mjfsFMo- literal 0 HcmV?d00001 diff --git a/html/map/ST.gif b/html/map/ST.gif new file mode 100644 index 0000000000000000000000000000000000000000..61d6437a6811db5f6588259671bf018d56a02442 GIT binary patch literal 412 zcmZ?wbhEHb6lPFj_{hlcpMl{&7%(s}DE?$&WME)o&;ha;K=KSs|E6dJE^_Gt1I(O8 m21TfLCPpWi?My5PX9Pgp19XN0&7F}4@-q$Gfju;}7_0%~>~%!| literal 0 HcmV?d00001 diff --git a/html/map/SUB.png b/html/map/SUB.png new file mode 100644 index 0000000000000000000000000000000000000000..0ec9249e0c298a18d1402a4fc4ba46389d0d176c GIT binary patch literal 884 zcmeAS@N?(olHy`uVBq!ia0vp^!a%IV!3-q3RtSA#U|?nl@Ck7Ra{vGT|L6ZrAcJ^N zTU$%K;!%~OAuwn|pz_Xwk3h%id%8G=RNU%4v5=90f#ZNe-iQCmZ=>9f#Aqy^TXrk+ h`FtP&V*Lbj#dY6b5(yTm%yeXJ`-=56nS#_`+=$hj3w*)KBk=7v~Co rn0lnzD%OKrZ#G-ONu5>GKN$LVtTHfT**C=w=mG{$S3j3^P6EaktajW;lNnQp84weJHD-Qp={iUl*o9VNR z2%AE2L(00)XH}|sAvK%VHCG>|1JP7~* literal 0 HcmV?d00001 diff --git a/html/map/SUN.png b/html/map/SUN.png new file mode 100644 index 0000000000000000000000000000000000000000..0234cf928d0be9342bd46bafbbcdc3a77489ca34 GIT binary patch literal 207 zcmeAS@N?(olHy`uVBq!ia0vp^!a%IV!2~3YL`o+EDb50q$YKTtuGb*U*woD%1r%)b zba4!+xV87vM!^FL9IOE)yyp)U3vnOcl=M*~Q^=HyW8wer`xa!cWh@pDWU%R2w&X!- z!r6 zG3`v4|L4~omB}3YCViRbCH<)B_%a3?BiYwNR?k@f*XtIEH$O}TI)=g1)z4*}Q$iB} DUi(ZK literal 0 HcmV?d00001 diff --git a/html/map/SUO.png b/html/map/SUO.png new file mode 100644 index 0000000000000000000000000000000000000000..bf06d1c515a23eb5631232bc1ba45a9cec72ef99 GIT binary patch literal 912 zcmeAS@N?(olHy`uVBq!ia0vp^!a%IV!3-q3RtSA#U|?nl@Ck7Ra{vGT|L6bBm#0jC zYK$-mQ;ZkAk+o_9+vSa6eh zL6WnUnY>ue-~ZcVk6riMsvvtHesbCGGjDs9O%1o6c~T%8EO}(vVx~_1f47XJixTq0 hcTAj`7FMg{vd$@?2>{GFLKy%6 literal 0 HcmV?d00001 diff --git a/html/map/SUW.png b/html/map/SUW.png new file mode 100644 index 0000000000000000000000000000000000000000..2f128a8eff6ec18efcf7a070704f9d03f34bfbbf GIT binary patch literal 596 zcmV-a0;~OrP) z000W>0fLJSS^xk721!IgRCwB*ls#|MKoEwXnO(2XL=izFIWMW8`~jur_bN+blS zB0wkce-Syy_I^=#E>XyloNud@wd-eQ-uGQOKR;*TTCdlDa_G{-fV}#4DD%-{Jp}mf z7ok0f89K!I#lSZ|Nr^Q1#lVX{^aC;aWx%KJ`F*iK6}tv>$2d1{msET56%C}sFffjO z0kAznFlNqstMc*;Km-+>!+XCM@cCydq=+a$t$X)5W%7tdL=ZuhQgja`J`f`@qKfx4 z4L}HcFtxD`bGFTDMc4UzfG1~MjsU9_&Y?=vpo+WKx7`DB1*}e0N?{mCN$)iGcTy%s zawa8eMa0OecQSLO?-|EgdK+vAblq-MuHFk`WEdy~xV|4Fu%p^*uZbsahY6@6Vy&uD z>wl_!_K9&KWoyhiLZEGJ!tk&Au7MFW;XNXhLem&6Mk`^r`<{HHR8pdCXmRIE^gWvmF%kktNAn5u;QX;|@t%|r*)r$IPZPsn$(Sab iGcm6+?LE%TuJ{Ww&jkgc29rqu0000 z000W>0fLJSS^xk7I!Q!9RCwCelsj$|K@>&Lt6$Ibbl`1~up$y9Boh!IB3KCm0s=(j zwOH~;)6-qQM^Md}0ekFm##IHC+&Z^zJ(bAI*Lcrv$MrQi)Au?IbR8fmku#+Lq{KLq zGoTkA0Y?aGj5voe0JV}cB3P^5wsa+?fEVi~9JZH9BNeK~hCPr%A0|AFI)QT|- z!?JJpaZcB3yl25T{0Bc#T@E$+}RZ3x+B+mNf{BI{Ip-M`Wf-#aan~k=prO0l_?XCX& zz&~=VR%)%pxb!~H7$Ys@I5LjZ!hLc&3>c%{FC(H#DO#(vAhqblr~93RuoPe|U57Dv zFYSh^JS@j<2S|*Bz%XF#(oIST4*>xumzN8$?{&T2S1KuS4A~}L74Hc_+QjBeN=(ze zl^%4`uk;TmpeoZuO6nZn-|;j#*=~uElyFXJRh}xx z)fGSp7^C0bKG}$&6h!d8eRHQcokN6D`26N1r_-}DNon~_PGk1H_G|s|{&Xi`EYH!4 iSI@Fx z000W>0fLJSS^xk7P)S5VRCwB*l)H`;F%U&hmF@1C-U;>t_#y)S2?+@T0z?E~f`EVk z5v}+XBp#ZcZoi7aW?;0hS*|*8(B)Hg>&hZeo)Q9w13!L{Gt*?d9peZ{O5{u_04Xug z+_&zb#RQbL5BiIG~5K)|C) zt*Elw^>drYd)saaq1__Gz_Oe$&C> zBBqM>y>pT7P;>r-+19nL0M4=55CVV*W|YFRNL=mx2@vq4gc&JO3aXMb7Z=uAEkzCo ze*Lm9uem1AW@FAtjNSKjMO9jp^UOR`OZ)X-AmDAcL)Aj)5iz3_t5sSfwb<3$>t#KC z-2mqpM^p(x+Jt7@F3;frNQ?{vyB*GTZ&E_I4G4Jo_N@b_$+p|0rIHeNAzR|j2!Uac zme`z0iDhY)-U#g8vaXcEeosmOIa6yt-@&wt3u#Gc1wbixSbEA-Wf*YIRHYQ=nYD1A zJlOnw20o3tudFJ_{6LzNj{K z000W>0fLJSS^xk7Pf0{URCwB*lsS$RK@de>L}pfX*R(Mw;~3ln2?-1ggas~_U^6ff z)|>^2MO|H$TVQ0;(3-7>uQJl8$QSYBD@7hXAp{Nwe*7S3rpb0Y#u1Q|$eB_AQevLT z8L+F@fM*y?RlG+PpjL851m`S-b_KPvED~d@Z1Tj22+Kmwm=U9x;T+>=(}Z&XX4Fcp zN8tOnk3H)uW*iQbf*Cn?W=aA!4883?t^Q@&I7%tKtbGlhGyA=yga|nkBefoZfJc>D zQDwL5=QfY`w%rm!yG4e9WjSHWal&!55D<~g#sF2EL$xt&2z-2Y1Onb_#Z0`XRw>0q zOcn2Y=OW#q=KKk>t!rHYoMW>g1OO4tD1~K_xY~ykAmB*}Gg6`yR3&FFF08d$iX0C7 z`ek2VaZR4h#+;KFyYK6YsdCJ zu{o0x%hD{p5!k(DT`7hAo|FJ`rq+JGgJ~BR(vr{$fKu+T^pvT}FyNf2N-4}UYvDe5 zytlRwGej&#S(kf(fc97)myt91ejwogz7#1*t*q=C%=1Gh>`eLjlmC)%_Udn%^S|^Py5W=15_Y^d00000NkvXXu0mjf DdFm}C literal 0 HcmV?d00001 diff --git a/html/map/SWN.png b/html/map/SWN.png new file mode 100644 index 0000000000000000000000000000000000000000..6bd13135aaa4d9ebb3236470cb4dbd6ec7eb760b GIT binary patch literal 669 zcmV;O0%HA%P) z000W>0fLJSS^xk7Pf0{URCwB*l)H`;F%U&hmF@1C-U;?|_yA)52?+rK0V0AgK|nx& zi1u5McxZaM{VD>RfziHZx$3|{mrvELD~mjNN(dYd{P;o6Oq1<)j3Xc^ku#+Lq{KXv zGhkP50nad)s(6noK&|AA2+mmu?FwpTStQ0*+2n~45tfCVF(XDX!#T#$rU~Z&%&3)G zkHF`TA9>bQ%s3n<1v7H)%#;Ld7<$`(TK&tkagZM!9ec8d%H%W}e$~jX5VVcHh?(RcTGmGxJO>?bm;SfVbTaRSTg<#Eep`R%wmYVps33m-X~@ z1Ds?Y>77`1cpIc zVsj=XmZe#GBd~kRx>5@JJt+a?Os)NV2h%Ptq$Qyh0Hxev=_yl{VZb?4l~R~z*1~=A zcyDbVW{6mfvM%=m0qwCqE+c31{XoF~eJN6sT3Oe-E&ZnwFq35=CG(!ouQ*R$_IqL^ zCA^nf?WSH!fPcP3b1C&w_A%ynKoiD|EL@0&#&&~$|-YzdCrT&^cj5$p< zZSBkJ2LS;EP{+gNndgU2*qQS4C;uhk?A6~i=YQ!pvk-?eweGu#00000NkvXXu0mjf D?cpYE literal 0 HcmV?d00001 diff --git a/html/map/SWO.png b/html/map/SWO.png new file mode 100644 index 0000000000000000000000000000000000000000..4bb8506df5105a941d5aaddde3dd8ec3ea781049 GIT binary patch literal 670 zcmV;P0%84$P) z000W>0fLJSS^xk7P)S5VRCwB*l)H`;F%U&hmF@1C-U;?&_zwOF2?+uMLDVULSXQm`z!_eFQ)9PQQjiZ#(%i7oAIkVqON{Em%F;eRh2zXSf z6;*b-es1%4Z`&;)v|D5tSe6r}948z{3jqR?NhEYL!w< z#8mOVcP`Q$YR;c9+q%{jz&SP>LI4oKj8a$@iL1Rk0RoOK~-|*;=)?1rO4sH zuV42071!k1Y|J@{vHQNRs7h;co|$KAX}|sp1ibBbs9Fd;B4(6gwMuKG7Q1?Ly{xCN z8{iz{h$-!hR8rzDWJ|mmAutTm z5}PwAu`JEf8-d+h)|FD&?@0+DXKL-|JD7HHAuS2504U`SOHY}q3aTz(2?*{_@?@N)A)XKWvZRtOifSD`{DVg_te8GA0vfmRU zDdD};YBz=Z7UuWw0KeR@6+@OF7ADfQRnVa#c= zX=|TeJ_raXfI1#7&pbbL!p@YRKlv{SXRrRIIsZ$)0cgOMXQch6^Z)<=07*qoM6N<$ Eg2*K*+W-In literal 0 HcmV?d00001 diff --git a/html/map/SWP.png b/html/map/SWP.png new file mode 100644 index 0000000000000000000000000000000000000000..d06f8e5952117220a4ed6578848af0338249ad1a GIT binary patch literal 978 zcmV;@11 z000W>0fLJSS^xk8gh@m}RCwA|mCddbM-YX->aO{*uThBd9+48rDvE>v5f%a6D4V=a zo(ct!Sh2c!i>#6O^LVEJDvK`LO3RBG+cl@^oKt5+UjD@}a60kn6Q!`<+u^`80g^MN zP%A*rEDNOoc6SFT<7gp>Dj@*0Mk$C8qYXoU1g){Il2WhiM@b10)|FB)BPB5-MyAR3 zdtwAIqcvK)0P_5avTb6<=|ruVQHo>cEMVj4ZJ%59^X+$P(pqXF?RE@9e~OGF>*|2x4v8w438%@10TG#J141B1Lg<(_ z4!nL1aQl){C`qj~%tV#eq*fEL5K#5bMVz6|Jn;1k%Sz5FU9N2dh>>|_7yv{tqgK{c z(q@0Z26*^ApT3?|$r&?prdC3bQn3*zMdKwK9&%JhN@o%JE3f0Hx5H zUjyMRZ&zM~d1kj$ySb6>gkAvDdZqN)Q%)PeJUiep^y!p&CIrTj7%c>;m1SW&Yq;A} z4M5dvTId!1{S60@QoK2N??;KE+RIW?Y7qyQHn5i6(q(siBN^36u z&p)vxO7%fvWE`0$XBbdbK7IrkM?$bSZyYc~I8)LZ!{BH=mV7^J?Tq)B19DP8lStK$B6^$OtO0}!801Xbs+Gt`$;gx1vV-I2k^3<>!*`1TK_{mt0e*` z`@QAF+qVFZA7N*-?)&4B5dOEQmn{Pb(Z9O)jYnQj-G1iT^=!=vD}~mSW$_7rzXiF5 zMkh99?&)$kExp)Z1=-b#&w~?yHjVciNw*b6&fevgN$0Mhczc0>t zdv&k-xt{0j?1ex|tShzpD=0=UzU;IrF?Lt{2Z#l5Ut>Jw3;+NC07*qoM6N<$g8KW- Aa{vGU literal 0 HcmV?d00001 diff --git a/html/map/SWP2.png b/html/map/SWP2.png new file mode 100644 index 0000000000000000000000000000000000000000..4b7f93ba3229ff9a69f256e884e2fbbd0f25ed9a GIT binary patch literal 669 zcmV;O0%HA%P) z000W>0fLJSS^xk7Pf0{URCwB*ls#?~K@f$%s_vfI9dF>1aTkt&gaiQrB7$p>ARr(> zL_Uipu(h)@{Z|CtELi?q^E5#RQ~g!FdTNnpF9?CdfnUGKnQ5}!j&TGeC32<|fRvbL zat7?;J>VGzQx)$~1*nyr5y3eNpk;^zkDhfEGY$tz!Hk?cGbI5VhTis{R{t_>9Ho?A*1iVMnf+c;LWG=&ky?*Hz@tj7 zsIuGjbDPI|+inS=-6F%lvfN0q zOcn2Y=OW#q=KKw2Ti3b*ILBr~2mm6OQ3}f+2KC0HqW}2%$Z5r%Ul35lZ3H%hQ2?xASvJslO&qV@{Jz zTl@a@NkBjW)bVtA=J}};cBWii@m~^7Uj1Ej{+E6O)T4=Gjh`^W00000NkvXXu0mjf DGbk`` literal 0 HcmV?d00001 diff --git a/html/map/SWU.png b/html/map/SWU.png new file mode 100644 index 0000000000000000000000000000000000000000..185c9b8ffb24b27fd93b96cadd0c643ba8d7fa96 GIT binary patch literal 668 zcmV;N0%QG&P) z000W>0fLJSS^xk7PDw;TRCwB*l)G*eK@dexRd>(qjyK@T_#+2MNDvSpBKQ&n1O$l4 z--3jVc6O#;MbOP+%dfSsCg@zn7E{A!lNw)*}$`s8TDc z>~{U!=JDRPTS92J$S|-hH<)sqa2zcJL}aruKo#duZA=>iU*8;ofVWyP6Yr^2N-+^r z#rxj5NO!0?e}mc9wXOipvDpv;fCy%k!m>zQ?aK`y;7JKHQlb=8C1=jgthHK-91i^X zV?RG|OPvbUDZMQ?!Lg*1OqZF%ES|hdC#i!e4J$>B( z=NLy+2|?O~X525&;Q&aC3`$wVUU*C zoJomgX_npz?B24jl)`>bN&q=iYd=50w6im5NoWN?DGykBlc~xu;GC&SDa z000W>0fLJSS^xk8gh@m}RCwA|mCddbM-YX->aO{*uThBd9+48rDvE>v5f%a6D4V=a zo(ct!Sh2c!i>#6O^LVEJDvK`LO3RBG+cl@^oKt5+UjD@}a60kn6Q!`<+u^`80g^MN zP%A*rEDNOoc6SFT<7gp>Dj@*0Mk$C8qYXoU1g){Il2WhiM@b10)|FB)BPB5-MyAR3 zdtwAIqcvK)0P_5avTb6<=|ruVQHo>cEMVj4ZJ%59^X+$P(pqXF?RE@9e~OGF>*|2x4v8w438%@10TG#J141B1Lg<(_ z4!nL1aQl){C`qj~%tV#eq*fEL5K#5bMVz6|Jn;1k%Sz5FU9N2dh>>|_7yv{tqgK{c z(q@0Z26*^ApT3?|$r&?prdC3bQn3*zMdKwK9&%JhN@o%JE3f0Hx5H zUjyMRZ&zM~d1kj$ySb6>gkAvDdZqN)Q%)PeJUiep^y!p&CIrTj7%c>;m1SW&Yq;A} z4M5dvTId!1{S60@QoK2N??;KE+RIW?Y7qyQHn5i6(q(siBN^36u z&p)vxO7%fvWE`0$XBbdbK7IrkM?$bSZyYc~I8)LZ!{BH=mV7^J?Tq)B19DP8lStK$B6^$OtO0}!801Xbs+Gt`$;gx1vV-I2k^3<>!*`1TK_{mt0e*` z`@QAF+qVFZA7N*-?)&4B5dOEQmn{Pb(Z9O)jYnQj-G1iT^=!=vD}~mSW$_7rzXiF5 zMkh99?&)$kExp)Z1=-b#&w~?yHjVciNw*b6&fevgN$0Mhczc0>t zdv&k-xt{0j?1ex|tShzpD=0=UzU;IrF?Lt{2Z#l5Ut>Jw3;+NC07*qoM6N<$g8KW- Aa{vGU literal 0 HcmV?d00001 diff --git a/html/map/Testmap.png b/html/map/Testmap.png new file mode 100644 index 0000000000000000000000000000000000000000..d84b6c4e2723276f78e431cde710c011ef381050 GIT binary patch literal 9508 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 + + + Aymargeddon + + + [- $udat{-current} = 'mapframe.epl'; -] + + + + + + + + + keine frames + + + diff --git a/html/menu.epl b/html/menu.epl new file mode 100644 index 0000000..061bed1 --- /dev/null +++ b/html/menu.epl @@ -0,0 +1,39 @@ +[- + use FROGS::Game; + use Aymargeddon; + use FROGS::DataBase; + + # my ($aym,$gamename); + $db = DataBase->new(); + $db->set_language($udat{-lang}); + if($udat{-game} and $udat{-id}){ + $aym = Aymargeddon->new($udat{-game},$udat{-id},$db); + $game = $aym; + $db->set_language($udat{-lang}); + ($gamename) = $db->read_game($udat{-game},'NAME'); + } + +-] + + +
+[+ $db->loc('PAGE_START') +] | +[+ $db->loc('PAGE_RULES') +] | +[+ $db->loc('PAGE_REFERENCE') +] | +[$ if $udat{-id} $] + [+ $db->loc('PAGE_PLAYER') +] | + [$ if $udat{-game} and ($udat{-id}==-1 or $game->read_role($udat{-id},'NICKNAME')) $] + [+ $db->loc('PAGE_MAP') +] | + [$ endif $] + [+ $db->loc('PAGE_LOGOUT') +] | +[$ else $] + [+ $db->loc('PAGE_LOGIN') +] | +[$ endif $] +[+ $db->loc('PAGE_LANGUAGE') +] + +[$ if(defined $aym) $] +[# TODO: this does not work during character-generation #] + [+ $gamename +], [+ $aym->role_string($udat{-id}) +], + [+ $aym->charname($udat{-id}) +]

+[$ endif $] +

diff --git a/html/menu_frames.epl b/html/menu_frames.epl new file mode 100644 index 0000000..82748e1 --- /dev/null +++ b/html/menu_frames.epl @@ -0,0 +1,10 @@ + + + + +Aymargeddon - Menubar + + +[- Execute('menu.epl') -] + + diff --git a/html/pic/Screenshot.png b/html/pic/Screenshot.png new file mode 100644 index 0000000000000000000000000000000000000000..d16a2c59f04ffd39269785cebd4b77c95419d6d9 GIT binary patch literal 192535 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%0DD8@q&;)Ps%?78YP|z)78Gku zoS3NQq8C1Q!uiBS*&u0>A)Kz%c91kUiG<3nq(T$@UZa(f(4!TLO6)a~tu&?Ic6rDX zIrW?}Yyv-|OhQ73fKnm?0#d*((?8GMVwax#IW7>AA*U}GDD46Gfl2M273?abWJijY zo<8XB0ypDpc%N*@^t%`grx-b|FT$39Y%OE{TMxPlH#|=iFa+!2e1bo_Zo6Z&31hoL zY~J&M`wPDLXDI~i1LAC;WVQ`^QNnj)xKk2idGk!F3*-H-!<*%W*9iAaXR*8E&r;}B zh{8&|#!}0{8a_p&2Ajw4_os4~H>rMuiMw{10awi;mC#9Xo*SJEUJZI0v_dPud)~jgHrOZgzz_HcqB9kOXEc z75~%)-gKLcBsG;vJrUyBCn5-h(1_n{8iFeSbV}X#9TYBbv46 z)t&ZvAJWC)b?K0Q#7fJ8+dHb0uEB3)mekZYl!Luh5$~#e0h7iP6QsdrkQjWIWRaD` z@4RiO&3}v0)?*@aR`5oeh}_6jP!!&z zx+!@x+-qAiNt=rxe(>0z4(>QdbtBr!-)nLi<#;A?pOt+=x`~1EwrGj&_U-!ek>J1T zTM4cKGQ9J{*{0w0)BCrCd=)YG)iq^$>U-3fD2HH_;$>&Bq2ebzX^(~3%8#FNk4^$d zugE#w)AxtVgxCH?|Jc9rz3HK%)r#!!c0s%&1S;Z=h;sTY8J-CF;P}9*Ibx4- zsc1=q)s57t()&aDAJWWDcK#K+xBLZKzi1Y;_%S7 z4f0B4^X-scFR%_WS~5DJS+TO@oToe1sWMsFX{P|=KGx+0zHmLa^9gYwg%AP*DCUYJ z4M+-#a$?NXvue!1p#6oYejwm*M#)rb4|*g9`YKGkGBL6105_1vWFW#sn+NwMKj2R> zf^JE@8~28OUeqhU%HD1=1})bulo(>PQMY?EU76PVNho_E>36=?u3Tu`)0!K5u#T2K z#%`Z-x}Vama30v{*S9e0pCp5{AZGJ#OF|IZ9h@Mxqjb-uj5Apa@Y)Z!B{PC>?IWSt zz%=FT<&+$r)D7)09FSaC*!?ZTGT#z`< zF376Y-j{Vq{S^KYsvtP4ov2Lr@*Q(Qr{nZcsTYo59lY77!GZ$M|1svu7-9;gtZYrM z*j;S-;M`Md3owt)cXpO1aFjDbZO13X6jY*Tm5+T-g7DkdI>>C!%XbCmP?&jd+JXr} zNsv{L0&SA&px>4l%|M|t-K1u~eTDV6q)}7T5@w6r=yVn6f2QvprnV%5LQxdB9hR>ljv)fg;Q^7n<;w^(nJZvF58`HYFeGd}5qgd3J?dC{`x#CjH z@)Ja1{Y(cVo=Simhb~Q9dFnt1d!!!R%y_`De&w4^+$Ye&mNZu~eg;W5JhSV>lAF0} zf%Eb0`m5^pk{08fyGgXK-G9I_c63%#BYdM<7fhhYOn@^-Z-(PYxSW9~C7MZ;Tim`Y zgJAeUGrp+WSNg#Q?!qL^9+BHnMqd90R?d>!;r#y88+Eh$ryqYiyLRBF>*&E7p<;S) zH|s2c_;`85htZv8B&H5I@^j06e-EN+Tsg+*L&!Wr7~-F4My?E_uJPe2K|SlGxHnHF zxQF<`-A0d06O8RK7h`K0>=~*|^G^EuETyFyCL9Y+3YKVhQhvT;X(!sLcZ_r+ZFz?O zYVAXClFxam0PC(C{EZEO&V80wrhGCXkFrulFxz6{-SR0yAXI9>pmBkjGj(z@LHy(G z-QWI#9(J#N5R5H_ZBJehrwd?i#-amk`-*PcBJ)lZzUF^hN=n!M`yb;=N_QIO+03Y7 zF2}ajp5wsFe8qkX5NU>{v9(^bmfCsL&CZPMx3y4Kwk_IM0CvK@6`#;@!~!V}4gdly zlWIW^?UnANYYnD)0z!%O1ILdTtuzQ=fDto>RV0lhu8I$k& zY&6)s!5f-B)6Hy(Q^<9HoUid^xPSB;%JQ4C-s%anG+6-#JMj3h5ZIcTep@XM*~=&1 zt%e%U_pcfV(Aoo>hwgw|^yE&j(i(&zFTaS4!BP+hBTXR(YeH#JK~db9SL+O4sP#0< zzn=%`y{9qE$Fc=$ z&X5IkVZ5x*0P~D-(R{C(F(ai*OOlrVST((0DBWnRUZO>1d0o1nGLAL zHiY=2_cY>}1`V+OocO_5GQj%d33RL3#-k%rj4hFdi=+@Z@Unv9mEjm936?+J&i*Uc zNlNY7(8QVK8XLC~A^{qFHbWyW(wLb??~;XIeEx$JhAf`r%b!NnR{(kzO-G?BvU5R~ zs1PjuO(cBj{sm}vNXkZlskd`QJt}W7l*w&7IotFvr{mz%Pcqi+Co6_u3%lS0-r5cC z7R7}v%%q#9rqRWiA*TuBH`%5A-qZ)LSJ@*&H*XD(l%ZnxIn%yO*{vc0!8W^`prWio zDhhE?c}PzOqojF1!otidv#@Q;_hiM$DQ7Qs{*O{GzGXAA*?R;i9sQd4=6Z}l&1uf* z{oGTnR-4*Z@z8j)F?Fyw{3iJxdT4aWj>C;4zXn{2_vW_7ZF1KSO~k~?R==3zuP@Iy z_rORDI7lxa?!+`}gLpY=A7R=&EMH|5^23L6>EBsm(Ti>P zt|prUC;y?F=fBV{ep*7h3j@}9_wr!rs=4Q}rQUw*)%K9=Dm@}8o6VL#bOe~*q6sGV zR+=(&7-$=AB@xlq;=i@VJ;@mQrV_5kyStQjs6e#OqDsvC3OteHEOvdlaemtTeVzE} zm#C)aA%RO-^dwf3v#9RmmX>bsvr~mVEz-5y8UIIBt-1Ebf-YfU5FhB!m!hw`1#Brz!$>bo^Zn!mSck>KG zt;y-?vFLIi`FM+uZ6GwT^|(arjwfcR#@Cu^zs)r7HYSRs!q}jPCO7a1eBHiw;vnQ| z5iy6meExwqDX(cgN`%AYm*-wZouL=;OX49aWQYe)Zjhl&9Er7ubFgf|6)|XUv9l@h z);(rEB>la;B)64FKS**29?(QH-!Aza)5P8#_rE;BL zMq_rw)n89P$>mq+B`p`d-eFPN>PhKb-A=Al+kVw&<*QRMqtrE`%=11l(v0ii(%g-; z2X%z#_XoqH?r~2$IeJ&=6c87Soo7=P25b%)`YYv2S#3&iR zh>T+bSwyy~f(Ez{i95&ZB=1AZbh&9F|TACx|NB?{KZ!>fp-)eX?hY7}D8@xpj< zC?v8OTZN5sD3T`rS*+aa&JYqu1cSj*ke1+d;c+I9UNIZ9(ZIJUWH@wGy4~ba?|fUT z^a>U#WXBX0u$yvWmYCtn|H}n%q~AEy4*fBX4Bmik(Xf_6O4e%s67r^u3|s!Y>s!`3 z$zpww?b-5cQH(9Z4EtQ~4#V$j94w46WRJUaHJsGL;YjUg`DB6cd1KJ(0u0u)Z&4$< z8P}+xGq`;;|3Rlt{s`P11T9$tS5I7{`zk`GdenTLi^qM&JE64FK5$Wa&0)?=YKg6` z+9%pT=X^FS=^l3l3W!CR+b&R&a2D)9{p{Ib3|fW99WG=+%)0m|be2(4@br$y2n{oY zkZ#@a<9Alc1eFF~VA$x1d?DXucv$4A!5i9nc1|@cYC<`DYE$0^L;DgmJDpPLfAeR2 z92zMjh+?^w@7{NzA>IG(NscB>OWeIQj+}}uo^zNB$((Z{DY)2dJEU$S1qH(x_y(f* z$vF~CXe1j}6zVV+z(zWS2JahGH-j3D`W0mk+KSMPjl*RjQS8oKagiw2q-_j*J-cfH zD}5q8hLBg!LA!LMtanrLOK3*^iRp$$#<(C#%FmEGL5(l<9KkaKiRSxc+bk*@ZY}bc z&ZG58=DB;RT`AQEIr2zO+~M zp>JCwEHp)4{=J8v{So)KIy`;D5C`?0T_vmJSuEK*JCy(Y+K*A&r11JST{Fg*gCVEK zg6^dXg7SOrka_K`TIDla)=XvAQah(p z8lss+a|`7Ix951Hbes$cXbETqV9eK#UZM{Vt`Nwlu7I$J2m5*7y>fu`+qJp}&Mjp- z;MuK&zpKYo-`~u^;mPXQNB3cEi#mUBJ&v++dmxY{T=PK(wYywArjK%J;e<$oe%Aj? zc+h&BB25f6YlBu%pNWf0GjlwOjm1gh`IWk&MaE>2pvsoO2|xv&eM&3^C_OVTLtp&U zWK!ari8LV!wX}Q0)ly^k;jg(&>w5bxtvRui|BS)*M^Oe)2r{WM+Z}o;q0MQj#P*D5 zysxHD(9m1m8OTZMGvR(u@ZoG#$VHdj``m>iW)A?g679#SJ9e}Qe}N|5l~#wwuQ~QB zH*iA($6d7`pp6Yly#2Pq!cBm0TO=B-eg!&5g6QVwzg?(3H=G1Y+&p#ePXeH#c@$Di z&uoDo&*A8u^*KHUh}gDE`lgU>zaLsI~v@49%spFq0g^hMA=1J z_rOg;l^N#kTTB%hcIEOTnG=n6(@f*Tg$M0aVvz|;BEVlJ)?w`8duL$zu-lr0UxxXtpCY&{3SNmQ z#pj}a`b3JNGcmGAT(etAoq-=Jou|oFOtuNudljtp17R+^IQO;1RB)_1_pc5=)TZGs z*^8h^ysm8u@6NXyUA7Ls!nNx9hX(x4#Wv#PMmqr~Uip20wN+nyI71o{e<^KHc6cys zoFx;F<@K(Ag0|R$VvoLXmZHNyy86H01x=X?Zrv5a*L)XKC}E9A)W3|F*}CFiZSQJQ zOJUytX|FDOG&CPSWEUDDoL@qlUr^Rzmgdyv>|AES_qZ{Qd5u63Vna1-@>G8Ij z>~EGTa8Fp5yyGR=PlE8h4kgmW5|Vb;eJ@s0x(pXS?mUY_0O_(nk_Tg*^c*U0)R&4> zeX^|CG7xuvscnyKE;{Mbu~WkCC4NGZIp@PZ#3p3csdeupQ4FuUvyx?e<4Y@j!chbr zR{Eq#bxK#<6;rWwGUOR$=q=1^@mc^$>OaiMZ}Uanwhar4+us*LRs&w6b;VJ|rd#~w zB^M_@i05nufvB5ERf~A`v<^1Ef0)QyF1Pkex7*Gx`dvZppQZW>c;3iaGc+%r+n}_U z4FCkg#Z{6JsL9NZHhV*Jp$S^$n)|AyKy(iL(6%%8X@>wG-DS5|e>y|3eVDjNN!j5D zC0zB%Z@rT&eTdJwwX|F&+&=_BYgA+ofqwS(ZFiuTz&QB^$y&O;1LYMQ#>XSe&dQp~ zj0}7Psu8HM@LqC{>HQt5HMNn$-O$G?TraVly~+3N*S&}vcYO`6yXSwVbtj#|rr3b| z42?X-HJ)$c-(_D>$g0Ki*f0^$5lPe2m5d5!9eWoo27M=BGLjU|)5geIt#-X^4 z?DITwas9HGBtL}Rd_Deo|BS#lo7|!wZSsq3eU|YIUwCEbk&=3hsx)L5PZ6`_P3bTR z;jGz1d@axi)5}Wk-+?d((LEc8nD^?%J%@y7Zz24AiwHx7Gx9O=ejOnv@H%kggrx3| z|LhmmT OKMD0UTd|&-dTTaQ@eMu&<+keI7t|6y;C5i#$YyqzIbTPr!hrAOu7uAo z&~w~}x(hD5$fqlOpxN2i4!xF_5z>>-Du0nWPKBI+lj`2I^6^BOEQ$d)4X>7a&Y>1x zuAopS@5*~Y28lnzO8a}#GwE&%y4idSyNX{pCk3aI+mciqv88o$E1sn&YCH}vjnA1Z zj)2^0TNm(b+}o(;nUt;zmtU2hD>Wf7R4KbSE)gsO1tVATKt%b8`s5>5+{#uG>F?)B z{75^DVPLqyau#S!;gOnoAA0=XQ6t-?%C$m&`8LTHbczDG2S#gq;WUFm@d3n4x+@V= z?O=WOMlFE<{4_ECYjfj})a-42OT6XL{R~!A(}3WMbYI!Q=Qy)LaK0UhfF-Y;sivx0 zhlk5-!YnPLlvguVlP6(Fa67sZM&+GueU|4qmx{ydmR+#H7u9ns9;~~4`=0&Xd2zcY z)-J77>Zk=GPAq+U1A%8Xjc%!)moi8ZM9~hfLBDZDOy>S|rSnyX((e>Lb8AiH3EE0A0AO!_BAB-#*`bkUOG@!XZsXYyz547VZ(_``@wI3&*nlU|YP%UfY;^K__j_CQ^}}sRLvqz@ z85^d?rssHU8-@Zq3FVDOE=_~o%3{TqAd=<^ zKXh{UDn-wWJ3aUEVynTeq{hlC#ipdRo0;9qQHB#y-fqrdD=GHVj|{11ibhm$xO*0o zv}3j!kuO=#M6cz+S=Q~Yg&1!6(Vps-Xe8yr7ohbo0KUYdg{Yeg z<66SRSw(=41&RpUcSb*yQ0E3e4@u(LIX{~AWPk$e3A~&U8_a2XcD_jt#a-@<3JjQ{ z_Pc)FB252l6CIT8vs+^vHXDeLsAh@URD%oe_1{Ehdxox8UUthqSVnVWmBYulWYl6u zgwFB8KIW-Q6%mGJe$6VIDCjc()4PkXA*Tja3XD%cizl)a=~Qd?}F%54cBBc%vW4T#z8yKu_SbP;Ni8o9CKCop`So zwlz{W?6rl?jlUboL_21<`pyUf>Y~5DiVA#*{G-ASlOai6kn}q_taBcv_iZubo#~JZ z+PD}@|3csjd7I?1MFH0!or~q|%{Q}+UAkmM#HVsQs#8Qh`HRGY$KiSe((=7^5hNw& z-Ot&H2^8pCH_5DdK)MZlZPpcv3z~g>fs2bvF5tv_Ht|=-x$Pc%OX4m}Y>QJwrDhU6 zdw5r%!At;r8i&9xhkv|-V#CYx;a?gHIkBkut~SozfQRlc9@Ufo`94d$zPynjktx3rEs@ch z12&&^nB`3|O3I;Ud=5bk)xAE#KGSKR;oH#HsRIds6;Gjby;@g(yWkk_S7d8Q@I z-`{Mi!oCE++R{ww1~*Yga6}0xLq&oe z#=5l0xQ--*g?D3vnNv5Qk=KJO#U!>Sx(E0sx`5X&8myxXbST1^#&pM5vfbD1WlIw! z>$KIj_f-vUeCS^$!=#!dj=;q}<6GkkgZvhs3$v^UI7ntyX^3UOg z5^*)Uy~Efz9OW&Vop%l!v2ef+I0Oo#O`PD<4Js<$WLSawsUh(yw}FfUsb=y zh&5mp4bsMfXw)1(sFRdcRxa5f!5ZAQo;cYI7QE>;32ZA4ZaVeH5oS=b=vV29ex+vqj&U0sXSEv{`Ze) zQe=7K3RkE3B+XxU%FE`lKTh>Za&V81Hc+VcVCDL6t6lnA-$nKa&IS>&lTA|UKxQ!z zsk)mR(1G8$fDfprVuLKWGX?VouFl6OB&bwKF%>uIC9Cy>>617pWv^VmI?;jOb|N-b zD_C6s(JCPIJ(#WA1K7%&reBR&aQ?cAd!`Dx!R_+$fD`Mu^-u94h-ipWa*>}n0Kc6R zXZLzbYvOUZxO}5Sth8>>O;$=@Cvx`QQdSDW7rQ-N@zxRHekKH*Or8!+r$A-Z zyu2i#5O{M>*u!-5I^*g$2+(I93jkKmA=P@EJvV^d7%-^=8MSWioaz%I$2LFnz3J;Y zG(A-l$jRq(jy9UH3vxhOfBvA~3;DBF&(`{(rrK3UCZ8^z20dA)v|!GpXx!ZsE(`J9 z>r?Mr!9m7DZ#J2B2$v-mvAJ{5P2Clnj7Z7+pcIp>yn50D&K<%x*T~dEU&F|orfuQK z%ECY!Uku;}sS7b4{BxM5NbOtmY|8amTvI6BAtq*K`~2sVmFD0W0g|=#uKv$SgV%~b zk9IX(??#Igwr-wJ@LFK+MmE6nu~Wy>wIJ9sUYu!A;Hfr|mH5U<9PxH3@NolB85C7l zpTvJi(w8LVz0P53-g6fxhz8t$j_)3VBmrdY%h)$1?az{EIj=@fkX zT$?W~c#i$RGgFXuTHdY>D+4!_HjR%giiJt+hTE1bx0ng0hqJI?E30~tvT}R!tG^UX z6O83U-@%6iG%V!Zh?TLt=)Z9c5!SX36EdoyxoitRsH@4wiZWXXY9tQckdR3fs3$dSB=;@g6!s7qs_!bX3Bh&vhE zt1u=3+2i>R@Z$&Of8QWyXP>yZ*o5841t6hH|A3z1wX6StVaZfb37ksAyFuPna!}A>PmYqeNdc(%Q>qA+9 z2N1Wv_{OlSaI%O5ft2W?{it@+pjIO()b?`ZjmXmbn%UPn8N@JodKunG7roFfx_Nf# zh44RR5rUoO&$0B=D!PgT7vF%wd!FO09@GQ!IMwWZzUU|#Z2XWo`Su-c{cqybDJG_6 z5K3bVCFqgJ2S|@UVeV5wfutw`@_F?P!zH6NFE8kaDG-LbV|q`gNnqyY_67iLwE3Z^ zq$Caa2Efz;k3z704Ijuee3q(Pz`PAFTqUtpiNDnLVnly4b5IQb)Rp%u{aijV2IS1+^J5;dpy z`J<9}Ug$=l;DE%qgI_6xA)ox>{X*|3eInT3pY$rn5iOIT-Mp(T;gITIR)?6FT~?!y zZt2cD-O14qR;`NvbY;3%WqC4oQnSeCFt+9%qyw{jlGodV0|!0~h_{*n7j z{vA;S5#O@0`G?k_bbwOO6ay9~9YEIbz(5`jkfRyP-(TXx_9dKes99b%0t+$+alcin z1Mr8+J%qE)b2$xaG1~D1kCC%)K2zVrVv&PD)Mue7=)>Z7`#BH$HfrKGR)8*8NhxZx z?h44r6WX#8Iqd(!y@b+h_$b$*OWf8*yi#S6151y7r;{YwaThhflb$ z`EI18JNGYX3p>3F`7z-}!O3DP_+<$}1riSkNjU4<^s#1L^|!AVIhgVi92pI|^sKGV z&qoGoSrk$u245{y{ERLNM`AXdcMLJ>vyXtVDpQiJ%PWa1`LuI|*^2d^a!5=&q zEawS=Vz3;g*v&e<;~kH8`jew_hY-px6HVj6!zIHTG>Rm{WuV0}z2Z*y z($T@e!Oremq?&YPN!v|@B=vl)Eg|e;Z_56X8Y^T%uX=Ix8v_xIf5)iPbT7;88|1*Y zC9W@kwN|Bm4Voknz61E0+S%J*9W4RJkV^XbMI|%~-@5?t5`M}|>9%ZJ;tc+EyIbn> z9OPb!iUdA+Bs{}vgMTYk(t)tp3x0NYufhq~-Pb$Vk)q4noK46XO-hibp?D!C7T&|4 zsUeC3M;~kT$D6i5dQV3SyoS)e4u*P5yBe8jMcvMp4AWCE`dyv_qy^`qz+tkeK4t|D zo|hpDctvk)fylbB$wFZ;0j38_lQCVgl!B#LosVP3R>rQmAt573JtsUfTdTHs&+VL) z#JRr9iLDiQ19@sylNx@}$JzesfP@ouKkTBWiabJ*fxCOkfG$^KBqY;pSt&+a|LPqym|f zOs-I1C&VK(a3IOU59+pKIA3kJ7_?sc`Hn2c{N&FREtxnOQUw-I&6@*luzOL7Stj;{ zgRI`J@<29~yC>^IYm=e)6$QvBP>AMPEE}-|g$|DR%XeM^pQQNKQf!m0b~iSv^wggi zrP>e{+nlq4c_-`7J3CTd0w8yG)y!?n54zD7{*s1=Zg zRzS;Om4|NN@~ACKzyKS}5J-drkRsWe_dv1^Sl%U<#jIxLdM#-}2B;myfwV|<=JWVi z|KInedslaWh^0-^qiHh@i5K`68vsRNXIEKp=zj+*0pHU zvHn$Ba1S!=zRq*Cf?)qFBpIdHXBcRcgCN5&GOXWNd(+gyF4r8Jv_`Pi`4`yz{bO^e z!j0kt8u95y{5jTmC5J!QzX7Xi5w|DlGRF_n(@g#=m|$_3*|B>AH0zNv@$ZxhHs4ZF z;WS>TQe!jBc!wX>7s7c)8c>pB{x-@o*v0Od#&uM{= z1NFk_8KZl`@XSKz~-YX%)qGto6`Er1Fqt8pe9pG;R*ENNpi`h`75IPw;T?MXcODMcZUbsH|T*^9`K<6|7phG~LR2wJ* zuUn{*r=jDzVGsXSAF8%;RbD+o)*Az->wYDT0e0Y*F?U5 z0NVUuz8BaI{I+#iw8w`{Ann_tKi|gKgWSWJT28HQ4A!PhNX{G^x`HAI$8%nmoFGL6 z+cBciFi_yxR%2{V9uG_y2Nxt`u&&5)Ew_=D3O9OhOkVvCJ1g7WHgr|=!(&Lw<$f;) zvK&LntpA?TCy{xR%zbR%Fy1h~GZD}dBuVoO1Ms=#JvVH0&E|@OJ?Woyn`sVhl&9i60{_7@hd<%_}yym;krP2@eXuLz_J$%TcJ(x$nz`y=OYONqnqSe7uDI5ZwME)-OP z0V3gXE1Y%k+{9S|GT9;cga~WsN9@`uf6d*$ZiM@y9F@RX74$CXIp2%F3=Nl&;bNAi zoqU}k&rBj>Tg`vG{lC1&iHrZ`J-(KN)l81}9puZffh42{hj}^NQq_19yFV(t}1BE$hDJ6_y{Lx8y(Tn*S-%NwwAh!#8KwVApiyiy#&kT189qZ90k_x z4=ApA4b*NfyH06O@kPGTXzD|TE22&=wLDXF{|@A{2I!saot>v7s6;$puc5^DBywSA zO4{4+C9!A$%N48)$aq~zq#@hkMIKQ#yd#v%Sbj|Lu-D0+<$>F~)&LM9p% zc&Y2{4hCAhuQO=6iG*cK`4%kIf4%4j;__haH226XcqX5SU-(u>rPsb3>yIwvOnDw> zyTE_U{^z7{)=r+PCfy4q{H1rE5EXhEW)zkkjpv!4l@b)`6T@XtI4$bgq|4Sg0TZ$z z&Pv^zg_|Vs({V69g$&Atl@;~T?25j7R2XXKaefg^bs=03i;O2)Z zs!28W`y#ABu%6FU?cHLg00A~>KVv%}`L}FMD=R5Ex$*BXi_5zJ6{==6x^1Z*syhNH zbbumXv;zNq?vEco0RIugh1$(5pi&hd+B$-Dl_Z!5mL@A4SGL9InnEb>0B6o8!XXJJ z*0cZR0{oYJs3?07WjoI0n7-=6$7lDZWA6{TI4Bm~CNt>tB^86FYTvYn3~?*+FvP{R>xY=~NNnE_z%;IdHBWadt60^nFhS zC?I{c<<8>zQePCPrWL0c3#P!U1C^(bzm|dHF0U)p*1savUKdPm$;WxapRtau@>kyN zP+dM)nvO!JK{zyT9We|o?1c;O_Ey6!84-lvRbT{)G>R(iLhVOa88&{lfH;Srm-qVN zvFZiQ-P28UJM6EemH3FP_BU?nNZ^PZhqBUW>G~Copb(I~o3|SC`2oaJl~yz=E~O)RZ>HH4BuQg<)`$X$?m$MQ z7*KBkZU`66b15k)v$F<`lYs8_?4~z{2ZJqG9$yw0Enb=Ra@mtDP)jR+s1goP@i;Hl z7+Q}WK(Si+j?Q689{`@?2Lc_zQ|f9_RX7}z&6XjW%<9{Jn35`d08`Tci79ziZl_OX z#G&A+iu;wrCqtz?(mj)kbhpDOS#?AXzQy-KOD0FG)#_#dkvBGw1#Zps^uOKrv24F5 zJH)S2f~d{@&|AKM_qcx_w;HzXhzNEOoFJOB0M6!DvHy9*TSkvQ_En)g78LQv>ewyU>)ne)zdrXFq znEd)M`i;?S^xHcX+{dS=hIXKiT>`B8K~qL4~qo&C>K%{*C{+g z!ChQ9(+9`i>X49KyG+lQ@Y3Xp5|a7Fm?=};SC)N8b92OAyks9IYI)_59!c06(DOVRsEWA2yke?AyST_WvV$k2uNnAdl0 zz4a0D7r*vrX4BdSpaa3OV9!btlS;FgICB>P$^Yej9{T?e?=x-9|Ig`a>2C3>RCt9P z`1f%tKUk3&Y&nf$^re?(o9O7qJ5FL6DE2Pz9^Tu>-GsMAx6?+Mx|LWgTYF`C6(8O)}4;6Io z`!jh))Sae5#_vh%8?eug7}f!B9#_k#KG*308Rm*|Q)Z-~t}K4_uP>P^s7|F@_1b;wH4Lg-j2uu(yBi zKGe&GmW0-W4Ug8Ra;O?F)$on?PP|2jmw?ZYwWq)T^LuP++k|6Yc>g6{;>5~Ta~BaV zEPQa5vk};>ARC5!XE!02KKEu6YfCYmm8o!iqdl_V1mP9WJqZ3uQK`E#f(#%O4f^ir z&#}JuXw$wsVR4YlM|##*fYoi@+0sgwYi4SKm#P%-tV>=kaiey@j4Mm%Z5JkkODjno zLJ#K!HU-|b|L%;HCVe83`hem8M>S;uUd_TkDs~5%K{q+fV=5qSP`9r!0}+Fw7)S_a z0xeL!-;@};Rn5)IqwN|T2Dj7SimE8?T-{})r`ICFw1O`8XFjiV75zN8=^AScjJ?l0 zehK>R!h+buj%ja;{2zV9o!F1tpguLxi7E$cx0|wvX_9rucD*{3*MM&=8DE6VYTM&p zTSe>bZrU50U2_OX{B|@J=?QlL{+INZ_sdz1G@v%$dq6OT{1i*^834Xoj(}vpr{tdF zx_zIA<1mS4o8j!&5@zXksW;EmRJa&~YV@APUTNOeFWLqk0CSOoUtx5H4U%ZEUP^V& zfg1Gwr5$aW8sbh(u*j0`sEXO-;+cI zplwQ;G%Th&51|aOf=p7!baVoWv16*Ym(eY(d0)AGML;315QILxlj$30L6_$?nd5Pt zw-Zj!RVzxm)U-LBT1Z1*oc_eok5*u^YKNqhUc!rMESw) zCWDoM7p0I=9ic4M%OU_tx!NtQG^zcd!9}XPHO7m+d2Lo6mu8-l%y`N>-^&9wCCMClwO2_95{n)?XH5v)}5SVa+1hbBPS58(e1->BQc7{GS zMc*R6^i7$c35#Zzh;*3EYEI6SoWFm6aMph!n5jAvTd`(;s|{(b0#`H7&b^Zh15_zf zZ^s;JI@aRd`_3?Cs)oZNvAkR0rNr`DcBPXR^&Riu;Mm58_Rrctxl+yR;5*Omn+FVt zrG>)f)yj2dgXjlu=Ly4sW;Z~!4et6B68ZfySNvzKUa9bHZzCL)4ng>?5fdbN*`Zfi z9Q;kDFEJI_(Ao&U&lkwF_F{^i8lWmMF>jUGLfR?v=IN5W&O&#~0*m(k@WBVsSfZQp zZXoEQQ5f!yu2>e4LA}#pE^2?EpYKU&SDGoneO%gg8L2PP60iagk-DaF;>N!})lulw z{>N@PcN8$dY9B!K<9mS1=E*J=?DbeV)`JRfc4ZdG!S2%lUiD=7ZT_kpk2x48sC-IgO;~7rX3=^h4x*1 zyB#4j8nZJIE_&8Oq@mxw(x+O@iRUED-JsGCXrPfdDo&d!iHQ?P$)N+R0;BwKhi%Ip zEl5KXrfdSdYNA05*t|O@%s*#GgDNU&)53Q7GQisrMSmq;B#LRo%ac9}{exAcg}HT} zwTGj!D8%K})=U9NL)9y2A4MFh?s%c zq&31MARthwSKWEwnfL&FnSmblJ~pWM9$?iPHPz0yZX!~U?BAjK1oJ*jItxb(F3G}0E^ zpb~uhPd?ZKCH_FEkQ49%bZsnwo!ijhv)Jqd#C3H5XM&-Df%|&~81=)pTth%;>=Ft{ zx;^1#oXq#1Md%y=7wljcd|We!4-(uPNEcWX_57E{2Qm>;7k5)7fkB&(y^dO+R~YiU z4ih@cD}w02pl0-6i0?{IXKHNE=Y^}VA!FPwNe@1dyL<7px02oJSdVjOq8FV#06x_* zst_oAk{1y5c_ZZ&IT-qb=l7ao%D=vIj#Qo&uCD6;5_oA*2r%EZ#$#1d6u>p<(umxP zj{SLzAF$iK3NGF?S%0WmDT>qdXwtMOatnQttA|tlwSUG+*@mn5{%W7XjE$@7`o@0q zti(y%2?G$W%%PUcyeGR@BO!5x$Wim!XZ?VOgc&-wc=%T#97a;lZ5${wPlJPoDDKw@ zuwLY!#J)5C0sZ9Q0Xz?j3jPS>Ao89lBrxC=IWi()Geq$~KD-EWdVU;!(*Zm!2Mkew z9vje}X?*bN_=I``P~s{ZOzFgh{~`8E4b%m#k2uk2RzN1o9LcbrMku!8o<2RzFn^7f56vM zDZkT;nsu}G*8Lv*y{X12J?r*UDSzf7%OjQ#Wh0y%Udh-xjIa7tCuzqI6j z9$nagl+h-%s#}9aJEkp|rma%Fk2P}8DVk=yRxlJ1%(FC}HH_-!7qo{H(i{8kbz!If z^weKNJTL=-^YH_)+hDNSK>W@B&@w@u2Z|2?5i)4yc2a*4&FFxgwsA*A6(`TN0HVol zESzzbtm2`SG4QO9EVbVo+k`B@7j!Gu5KJfioEJ=j7u$Suk8kX|^F2=;1Li{n8V@Q| z%Ne4+SOY9_fKY~=@ggA14ffCqAX)&fCl?S9U}?DqqzYvRTR=#wK zj>*tg$;0?M@^Z95tnEq;{-XDpo~S5cd(W_6apAv*LvnKiSPW%Mdno>ZXWN}DDNLRQ z5N}c;J9uA3yI3xyoIAG5wSFrmR#~BU)GsO|QUS0;;#O5fxC9MC{*6Ln{oBmNeqGlp zB2E1}-t}V!X`tOXlMb_MWN_WGo!uX;2WZ*!=-!xMmXM@nLBp=N&5)CFp_$0YkD}Sx zHA?1l&GdG=yth4Tiua611!$Zo{r%cy&-_9NFn$(@R12bBRzQ?Qv!VRmV7Ew zyE5`hYWx|p|HgTz7A^S=lt%p#U0vMX;`NKWwP+~aU5>_HhQ?lv?tt&=iWh&t(WgAX zbb12!{`Xs4fk!3B+6xk(ENwqp5#Zmr1?PAd2bm&%VSrLz>m%g?9^>e0H>cY28+H8? zQc?T?*hE_O3*R>oIrBe`fXSl$bFFYYsB7pERz5jRKM@Y;)+Ac;R5 z1u3@fBs1Nhe(ErhKQmBg7A9w}eyfr;+^hW6o5EwtLKFh=v;126cC~nIg+;dpTH8c! zY`ncMV^f4RA;eGGd3U1cj$mNz5@%eJiOMN4zw_tQTtfUvAsvI%w`8=ywoeYJ|bAZ9cRC=9;r<4IPW zLPO1zvm0CL>W;K#jO-f5$qx4iHtU4?CPlnhUyRMq&reU2VugI_Sl(YORs_SIqJS0v zXaX-px)#4<0`DsuK*Wps2G0))LU_E4yvKKZ)W79|#iY)rUlx1$mNN*>9igjpPquo^ z_2n$KK5M|w>6Z+ABEZ|lQ#WA(baF|z-uSulTgEG1>nf-)wAKI4|H0$^X?G>(Y+q%g zHQ_}n;zz_&(dU>GaA?@pYBv4|ov%euH?4I5e=24z4jKy;Q>z6F0$W1G(T)vf^>;;{ z^D}L%DwDV;VYdoIq4}$nLQq=a%f>Bz@IoXU)q7~f`e)&0QfA8^6!O53t{pa!EI5PL z2)v)<@NKPJ-HKh#mvI)MbH%n-sr`50Cm`Nsx-&6^t4ybBCy9fkj6YsET>dvfL~fCs z2ZlC8pGiCFW6sN>KboL^ncp%)dN`r9VpPPfebK1@$DH>T)%NKAqH*VFRPRJ7ewP(g z>PwAf^2ikF1n_Xbp81D_`7odUyAAd4 zcwU}P&W^^WhIi2^Ddx4!HRRrd>3m=AcyT_n!+gI?0bNqyjXKz~NkfB&XK!a`=iqRD z_s~%Ih>sd#I!TARf%y0fyg%(}J(b5FMGiu06UH%dz}+g+IxWaJBt{CZ zNKk@&Q8%qDWuV9hWv9^DxmL~?rAQrm0pD?N9%)l07eh?HAxrER*lNrE0rwP{cLJJL zCTSYk1@Vn_i2JV@`Is)f>D}JYvdi+Y#MkO2`*g3s{v;$3ykK*bt5b}6N1uoh_FN^V6duFV*tmRxqccemN*)l=^nT?t@4j70>rv?s z=n~GEnkpw}-Ut^U*zxH_)GMEM{?;kc1Y{c_OKQ-YjXKU8gZsku=BwkN!bEeBeD!39 zX|k3}v?>ZxmG8waI+Zuj>!J|#j(ZCQ-pfEL7U}id##n70n&%iOAEO_*p|wUE2#b%GIvqxUxpKSJ))eqn{Yw7!eTw{QyPWy`UwJNo)0*@tYXy{Z{1PZiOcYg?6CK87Lf&?;ImXtFV&_L!7_k?gnq5 z1mNdFDf;d2ROndqeyKByfV2ylRBW-EDG^rnS~zREK=S*}ikgN6@QWyuJ+Sl?RM!ce zaKObvNtzR8f|gIF)Ivy?1U>`IO)G#Eo^tz?go zKI-9^9F>%&%d`GJn%+7ps`vXIze9IOcM6gsCEeYP(nvQ_(la24gmg%E4JBO?igdRi z2-4kM^SiJ2=l8vf1#1C+-81Jo=haJ74VmXS| z3^{Jp5F5QZQcVzofrGPlabK2y4`g!aP|IKsZ_uZC<+!G%#_k(F;BxU=609Zu?0tV`B3ZuSA!5_${s6W)Bl!}t@R-z8 z61--{=jzPKH46Q@IdJ${D_zuc1cad|bt7CWhXU_>El~;Tr#|K6_|N1c%MQvRf4-K{ z**5a0y`3>5+U+543#b@34)SCf7UHeX`+Lzd`+yqo`iHg3M^e4wbv0pmHkcaa?y}8P0=*V!oUO0E_}J(8!RC?zi2aoW zaGwj)VJp<&|D*a`jebOaWaCsUNsMLcx0&+r9-OIxJ8@iGT)1Fx&@l>g)!}0dE-fap zgFZHO)MFQMbygZnWirAz2U>CUfDib3o4d2{l+U5w>>|<+4e`xxX!Z}F$8z|6>k?9J zDF(j@bk(!i8xq7u5{0o3{^245Hz{B0=yqR;O_D~T z)z{-ecUi^9NJ2h0&x1}<-6VYfRDJmF5BOZyHeW@E*>t{KkwAQ!&^$T|On3X?YSoAX z__Xr|XzimCX#UiGfuOyT$I}Nj04|%|MqA@Mj?-?1+hbGvQ?CZlqx#->HF$$>+n*%m;ym4+t?j960H=j{d(OuXFY6gne!PF`uk3>Mo_tq8 zNDXF76-*tCsuPt%`)hs5w&&__{Tm#RxTgVbE?+Bt9-}Bc;a6+Hg+xlL0&yv)s9nq1B)~mwqrM0jj2NGy2^MhATX)cW!ZxU=pr^N z{!a+Otl43c_`&DDu=&uUYPr+{EhF0~1djF=j@zpPqAd#ecbE5%uFU~pFOX*9G59>q zTa+*?$r}rK*SiWICtgV1KEmepx`j;dJS6~Zzpv2b05eHa|1lJzYdJO)U28F6uERb zVl72?Uz&bQ3HW}OWf%Ox_wcnO)@qY?De_IX$#{EJ0@$2ALJ=QYL%viTeH+c1Ccz*7 z4xL7vJQQxL518opA$^sR%~ckQwZ|c=RH!vfc^l7dD3aDU50B5%i=7gOpDCn=2 zZipZrx)`khHB21fHq1!ilbPApRqyyu4x*=*S0ICWd@={loGnF{mv@d7{xkcTT!_@d z_{889g+Sc~n*)VH47B%aD0`IePt}tfBKFDt6Tt81#N}7N3bKd6Ny|S!Nkk&E=cB~@ zr2qD#7PL_qRb_{8iX0+?2ViB{GlY8x(<0NKL^RmAUW-zmpNFihEIk1a&POqCQ0h|q z#`!6*aTq$xd>nQ*4QcS94&qDYBx1B4@U!t_3A7tGxMb-D*KFebA7f_Mj^d_JGE~AZ zjI?n4@Y2eAzAJgw2sI2(_BDCgr?%?2~J*T5>UyEuJdiJDv1YR-UIod|1n);#5 z4!?l!SKeh#whD90ymP@H4R2eK5?wXo3nw}$pf=+SAz@W5GnJh8gyi)6)IR3sh|X0 z#Bo6RX?xK65Y&}~#r#*!z`GIHb2NG-U6u{!fE)pihIkLGxG+vg>>QnnzRp7oBDl zFd%a|h!AC>Ne0xi{d%pwHhr#kOawMUA!@#FNiyHI3A3%B0?=d*s%W=wl?Ol-rqd%cpskv(t8& zp2}z9f+y83;bd7}tGS9pqe_}8s!F2g`H-opL%U?&*ILUmThQ8Zvh3Yvh>y#1eGMlz>@5|8Pb^08h~6Ou<8?wd5E>IZJ{3l0a0?&)|d{6+gvL%1nIRD2~Z zI5Yox#qCP{{}?8yLulMHZNC$KOSfcr|AWjtu=aG^HEQVrFRz?0@GmG`K_AI{jbDSX zA)kky-_k8wR>(!o;cpzz;{qX4|1osZ%=~vh+rmf#^s(vGR{w=X49|-_?tJRC#g0Eh z|0=wKz8V>^^44dQ;%Quc{XN&i_A;&x4v#}^!e>S-YiA>VlF}S{&!y>6biQq`j#FF2 z_Q+R(-IJBrJvzIwT`Vz@D3-R-KS&+j0j5>o_BQ0`vjL`G^sX@ja-^;ov}xzUnN8TWiJ5SN!!q zz4X01qAueSm)v*+@aQxYWAWbn&-np^Cky}K&=v6G!chX?30F@wVofpL*E$J{|_qmzMNB-vjo4730un(UMfxPmgrPlw< zckR&ZyDDApE_T6HdHVYL0C&g5)WJOL`v$b2tRh3fE%gQZmW|An=8NL^pxja8r`Lt8 z!r;{jU!u+OeP5j9U!R@+KX|)L2Q5Je03naint2Hi8}QL6m-0(IMsuM9zT z0*f^G8P^;Rr2dB!0i;Q67*hQCu2dS>ev@QDEAv@f8t>Dh&HcrjmQ9oOXSqrnCiiD3 zM-8}0l^oRjEbCdUJ}EI5Dq$AX*aiO^`JMsfl_^a; z>l4RfymAF+SQQB9Ri~H){LBpDXQytP7#~Le?j9>&!*X}YM*FTR|a*$>>LFLHZBB`PZ@f$ z7S`Nmju#LK_oCZ5r>FOmW~5mp1d0ba;i%KE^(3eR81H^1ZI?R^Hwg-B$iH5HQz+!8 z^a7q-%JB~FKjC;c*J`9h#8N+)=a3;uFMlOPE|p2gRmBjE8UiE5i+Ew5KPc|Uj(VCO zuh)9g5UC*WZd~(6oB~sz!O`6#Pi8_AaxA81KZIyY&PZWVdx^MnY1e8z~>Do zFNRn?!?Sod4LxC_F$l1$qf$2Wl)!XG-iZEL2MR1Kc$}Rt*bNMc*y`yjF@y()(pEr} zxF6#%=#0Q+YPy=@jo^&s;UTbMRt5KNrd$^yb}=CuE$iS=y703j^R^3g5%?hW)ivKD6GsF~GUc?PzHj2#G4#kl*ew z!=&%J8(JCCdqJUNl%XePXFIeepUDLeiETGKNrG1{<BH|A6=h)ZgOjU(O)JgsPcF2_vb!^Mf0DBv2)*= znx-xk>PsAa+EWwq6I2)-Q(ww3NE?-p+!!0Jo;D=SQ{gD7Cgo&eDv&@saJje=r;)*6 zBrpVt?cNNYYZ=M9#3E@t4Lar@a6IFh)*ew-g6NOpF+sNpV5cw zQgw78t-1^S{C5(DNtF81953(Nw{PFSi%Cj$)zu}UXZb8T%$t6odEHXl&~UK}nv^d1 z2vN&?M#UyQVV)@Gl*?7w$|k-@E3<7o?3XN4OenjwD^(KR=LdRwd!IjlZgRqqZ#ZKv z$)P1$PGsESFM$8_XRb9rqp+SVHI?|srpzvz7NG?%13|KL%pP{i3;jJi|E90cZiag( zVWuSJK5B+Bw@14Hl6Q<-1CMmxI%b@&-01;_XPP;`f;C4{>avN@-2{7dPX@D|rH?&ockWW(bvB9kv^j#Nqq5wnqj4OySF>{>VuAX)u zqG1#5R+M>B9_G)V>`c}Q1Nn9ctXEE`hf+uK{u|eYjru;3YeEarQ4Y&e071(E-bH(v zt<4V$Dc5Rd7d07OEVp{)9}31)|MOS3t}xY6j@lh$+kHDom$+)B@5)S~e|Q*SQ~^zOD+qhL=^y26c?Yz81*Ohp4M-KjJe^(O>}j1%X(u$eL#EvkRL{wYCyVW5WGLSmgy~?H-PG)i zpiRT>1|4@e*xB_Ce}U__72;@dEyi=iH#axMa_+IQu?=g?zI=B7eABS_xWTky>~$!b zl|U?f!e#d%8nX5DP+lbYhl_^_UNn*{P|u%qt3kilP-fKDhdxSRjO@O;`fn-U;K2UF zZ&v-cwtp-E%l9}gA9=`+A!gC-C&gGKwv(5@HP}*r^zJ6gOh%u=- zt6=CMLUL^`s>&d3todh-Y@<~e^-lku%f>`@%!P+uT)eeR=k*i~^AlN5LX_jrvYmhD zmx@JO09%&-&LgJO+qVme&sFDY%r)Qfdu$AVukYdE;g4IF>8`%S%s&M})bvCxXEGlsrg?aZ8>cmL>Nj3FnZ zFR+-J7@`rl6TcMbG$pAGhfEH?vwPu_g^Olc@8CR+f?-q{|A305!dmqM(oH0RLBydB z;lkm<`E}EP(LgKjk4F!4pZNhV#&cMJ!FYi9D9;}y--26{N+*8;6Gm|tCKwRk#2ENc zc%~Ypq24LE$iRDyv9UNb9EluFT8^4s*r;CE@wUME*w36s7)hO|G&jdrF94exSla;? zJH)_|0cX}nv&#mj{sb8;whQcwClr`i3cF``PXvDZvg>nE3LXpC({jFS1W1=f0yW65 zc7OfiPIEfj@X4U42e+r8T=X+XpmU4oQgN6EUyI_WnzYNX*wb|)t^szphj5X+(r;&* zAKK4Pg9-K9LZ2S~&~XP_pj?a9dPu_h@nT=L9BTtz53>SGHET01C7f(08S@tAHOo37CC^|{U&4l_|r{Q;RaGV1V z!RMV+2FT0D$4)%-Ovu!qbQt(P4EU(-@nDhvj#pAf71Gz*{Fnu3rTn`bieY1H+T5YH z;7R9KX-Ho+^suwJx8muxo{H(SnvHMpdsiABl3EX2rirWct%~gkAsM5be)u5>2-(sB z(eixcDB1c#-!b^6UyQ>p3J4nt49P#FRQ4W-z=uAZz0tNY-K{OaS{`xiUsqPRtf&F# zxzzEP$WhM8Mih{BI5Z{Tb(1Rl1-YrloCCwrW&(@~H$UjVAcm!58$B`d$5 zl0`krl5M*h;PJqfAG}L05N^iXojMZ7DQA9Qp?yw531eyxtcao>M;!BS?yY;YnsBF0 z?{ac;b8~W13p$g7VDx_vn9AVO<&urPT3naj%0dOxtXNj`x#c#yt0H?nvNKjZ7@hIR zv5=jtVvm)~#~YtO_*^86muhf8%7C=4J|QzY1iAQ^uqc(Faq>{SyOvSaVqRhfM##cz zqzNS?y${T7M4x&J8ueS2f9|K)WdF#UG5#=7O4x@7O#*|Xh8Z8ced2~sDow1W^6lcY zDn%v7ET~5LxliKSY|*0^o4(KRj|Xt+#{<3wSwf@Oy|>Y1FN_|7*?g{jH%>>S_D8o` zrMD@r);1ZRp~^WU=-u67(urY6U;icYpN^ z4f_MdguSd0SU;^h13i0((#L4c(UmA48R4%EB++_hlD%HUwS#{c<;z|+L07_)Y-`JE z%Z4;o&2Emqv}A#aa~qape^z_(&WMA4t;@Q8L2tZI}bYQ!YMZgikE8Px$ezYQpRA=oVMrckQTgmZTFLRKh%BtOou@jn5AI4Hq}h za%h@7_VDIT@H^!GJmsqZwhUrhdO!Q_V)YHZm%1&YI%BVnTB#uSX{;6#Oa! zP~*o##EmXEeRLRJwHH@BcujPY}3 zfwN#pf4GOweavzdzxfE|q`sYH#Q3Sf=U)wq4Xw4XHP6H0Wt5bZVE84tyK6XkPhWD+ zPTPivGueOt;9dla@HETOt%P*i|UAW(S2$dx)hose3h&D!n!Jf)u{iJF8BZ$TD4OQ7WTBtN$O-_74|aVv4z z?mlWP{VkvU=||gsB10F^)V_hbb#B z!VX-AGYq@Tv4r1z8Jc;S?MOUt{myv0$UQ5{-5_-u`spB^WEMVcAftVVEp%D1NOm+! ztfQ2lo7XP_VOmgu(TEl$$6IhsV)S z*VsL1RxTla|2SO=e%RX~yL8Sfvdjd4PWL#-JzJvrwJB?5Kl7=eNeFBZL zI4zqf%X`bk#HHTtkAJuxyY#K}Y7CM>b86d9`t=LoO?7k2QBO>lFFU7t!G+S)q~_~1q5v+ozU-P_77GCd z2q_i2l?8f@_VhqKMSA+ckc=%0FJD3qx1XaEhmlc{o2>#GFYhx@NPOXVmm8k~lxpbR zPjvVX=^+(OA=t9cb{nu2RFiW2) zdc{chphq6jGnJXOhQ0{f(S<3-b~`Hwy_0n%m^^o)^o%g#`K+aM(!i2b5@P@W97lf@ zLdVi9EoUlVBTbq=6|Dpudb-40-WNdUMQis_TV<=ZS8+r_bRNz@6JE&8f+^8=vzIld zU)3-o!0j5C`LzVPEWAvHMFy;QR(cB%m6z1`XbI_TU4-$Dq$Opu^9fZ`2l|^a`cM{6u$c!KV{g2Ql~K-3O1uc^rZvkt_2h}0`-o3W3NsG=Zx ze{Z6zr>DTaG))pSC;%tX7-h#?+hz_?`*B_W&OC0tPZ*QA8AD4)r=V*OMAg{W#@3d> zCI%erbry)vIIAebvNTFXFgv6rL8a-}$M-U3p`Mr-Vh2N*(egS3&+E0ngz0H&J)IC% ziw&r=q^C42STy(8CQ&87(AtYnVBjkegO%&Xq2uD(pLMsQ08bv#CoTUj6{y%5blwkG z=Z~`jgoF8G#!nZ}N4b(PWG=gGiKV$y-VgeLyO=Fjivfr41-vPfz-!y1>c__cy5j|u z)fCoh()@S;TxC%#kCjJ46sjkW9Y+QA!vnyAl%`!Aj_p7lp%T(Q`MHv_sCWFxG!ei~1*V3l`q}Iwj7xH}UCgE4blnv3p!XZ+8*qZivyEW<*Ie@&=Dac-d8J zz$Nh;6s2N>?hQ-cwIKldS;)p^Sn&Av(|q83^KG@VeoSW+4uI+cRDhK84fqOmbT$Br zufwPjOTpkt4*~DMmF8VfPxr?))zwXJI3Jw7y#-*Pg^#}8g<8VVW+sQ(*WClJaqKoE zAn}Prl-*FB9iVo^bDv^Ixl`49d+=vB=j-F0Q0_bxx726*M?%8WeVTw7wY;*j7Yd`} zX#Z)^)Ta3(dbGjlT}U1@rP_-X5`Dc;Lt&&*dmA)hLX&$p(m0)H!UhY6t;8wKhnD$E z&r&|)$1d#`4w3;Ju$4?b=wUCrk`>uY$NCg3d71chtttw&lqUER645qOF~CyFe}3_6 z+|b6$zj(Tuy7uz+(aAKeOdK7LRuG#IP?2m=JN#~;eU$V;|8#)$7>;z3DLHxzmIdf} zsqlE^?X@at4N3U?@IaUh54jua_0EK}gIcDc3q%kdM8NoC zO-t<2iuPf}wIddIE7+bqCxXcx!VId6P%XgY2y_a`P2)C=QVMdEmWHT1FS)+fod>k` zWD=|#{YCnkNYjQ)INu)p0zn~-EMG8cpkV8>p7%gJL*U?rW7ZD8_G5SPc1_mq_drk7 z*jMPQpClH{iyUYHccA*clOXv>i97vG*XS4abQ**;J*H?Lc*TQ1h-M>u`6mts%s8@P ziqiLv{xTqbzul}ldI13*agV1t>XPkFKlz-VOpjDlr(+bPKN34; z;G!)gszsGDO%=Z7yLZt0cmBgU^*a}rI!orD+~p#E;iQFNxO$0uw;NAb4;oSBT$xU| zM_Qi(1x1P~DWiYzlOW}KoFfP=cl~|J^i6*}r9Xt-LG|ueI~HpWVLH1A;!Xx3hJqpS zp7sC71sIVFmjX9+zv&8o>;iXpLqJi)e?*6tuDm>pKTR&+0SRZh94yzJEmeu4E>w(r znrrSXzWO@4B_By|8GNPFo`PPI;+G6QgI0V@`p?0n=UuD>?Cs$E@6RPH4GjZ|0YW$x zBtD{l0||_u(9_fFs3%qrVQ62i7A@G zV8L7Ck9Mg0XJtk8$Wq8xwTxxFcGKYjtzGE$ftW`S0B!MRZJy1^+|qxX*EB0q8+h;V z_k&#yV#8Gbj*jA=>iJBL_iJr`^^}hsOFE`}%5w6B zw#|}16C6bTJU#V%WSSJYcYF$4-!^4l-Zu*7VxaX9Sblspw8xLjlJuRi-Slp7fW`DS@I zRjkU!UsG9WjmyDdu&dkZ0*3Jq0PC7<2f*CukE4^c8A_h5Fa#ftaTOp=>`X~UR)n;7 zLqw|o@#TnD;wgu3mK7hn1R9U!;n1Bdx^0Z8-LPUik|nN`5CIBk#h^G$)>n@Au1(}g z^*^xj{ys_cS&&!XQzWe&B2s~bP-c7un~a;2gJZvd^rvlfN`1vga8?4&?(ORr2A-0R z5#Fa?0P$9)s=ybf7FV${F!Pon*KhlEw@QeK5lW=xiYBQrr-D>)}eBcFu;^{Nea-?!yKvxCz0y&C3C- zR>gaueDVjVm24N2Za?>W^u{;w5AJVxjG{@Q-F^cwKQ6ryaCilCr?=WP#ysM z?6&5Ej7AT^{PA#&7j?cFdYd%4$xqL~paqR|EG2$;<2}w=0C9hip}#^x<^eA-SankOQSWaa;@rK-aPP1}H`?pnC>@tF>p@M`d2Im+Iy!;5dIY8WEv+*8OyMr z6F(gK@2`i`~FzsRY&XYq+1}#LiqhyQWeKx_1=TFN2sKU+6AoRsn zlN+gA##q?c&CUzFR(&yNXCA-QZ!Q9B!C6vSnG%%tY=(9_R_(SzP15Ti_Z~vL)XaQ5 z@&G2lz*FWG)R8B%Z`0cKRVEOIERC2H8N=Pfr}_HL$4YD(<~z||w31PqH6W0f&R54-jw%ubZHZrH!j@D{+IV zpH5}~U6y|DhLDh3l~hJY1|y^k1SFeUs}8Z$|8#(cU61$P;`6o=DUJ6TTb6{!GEvk@ z7-3*A+9@G*@!FR!Y@QP9P;_t~)9SF{ILdvRsj*tAAVa$9lK`c?<_UGOzz_u*puGHt0&X_Zlbi>Z>M0xLMc>c6OsC=eMS& z%k$K(@uiN`y$#v)ATT6N{Rv{kk`r^cNqjjrQAA;&mxs(s=92PSme>i$+Cz_c!29yVGg0c;fa8v|`ziw` zef^Z4fA;qFTIh5Vfxh5Osc>s+bvK?37Yi990wf-$Y87n+~go1i-mF=hfaRB zbNflsmEtFNDJf2!YV+9|NKa2JKl!n;7^Q__L_p#M`AmV(WTz`r$di3X4=^+wI+^*c z?a95AbTB#lB{jLEmi_5MgqV=&s!7mgm=ti=P-1}(2_#No>xd}GhR1$M|2m}4m8v19 zm*T*bUN*FRX2bIWTiju506RbIBd)o!tRD{J*6H^bixRvnL%MZU>L)THaeD~*_m^Ep zkR2~1g7NmqG3pm6dy?9Rn%9odwxzEQW>zzk)0KDtT;dB9MQ)7fuJ2o3M8XR{N7>Ik!;} zgY9iYeM8pkg=Z0kEu~}x15Y)bcaB5B_RT844}Gp4^@GyNyVj_spc^1y4;oRm3*ddE zfa#HYGI8PV?h1KfjE+wJlrA}qQTYD8tHhzZ3b;C6k$m^-Gbm%e0(I(t+dtI6o#*(~ zF(3$G;05Vgp_0kPepxt1`KMmSWqAOH`UT098rB(=e32)$DyFgk;74wQ#!9iUaB{!- zt;1~B?5Ch6WY&%2M;UL#kV|o%mc;3vbai5TRaGJ(JlQ2qQGicZWRM_V%UL8fu)1-U z01GqeRVBowiV~&Lz_QW)Cw<(uep$gA!rJ-lOb>Jpe}oC7x;X4{`i9CTPN;_g>{dJYv-RWC*iDmXo@+4XRlm}FyJ=Dq+8*K{9i z)Kdl74?||*3x|X9^ui`}zFfelYZ?*$UGoI<QV-pHe_83&8rlJ)phlLh2 z&VpF<{r8emCf0r-9z$!Jp-Mqnh*B%|A>?vueQ8l@Qn%nYe(Hsm@1<>Y3Z1C^l&C zoNR;|jjB*+3xYowTwEveI<2RQ`o;1ozd~J1jE(XfbZ&l_up!F?q1I$qy(w=fS#7r~ zRPj*QPPO3K+oHw6sv!&RD*2tcTs`@ZFoS^_%K?KTMrZR~ZMOx610{~a*O5t1-kP#T zecQlt9LvU?+JX%Fww`rNkZZQmgJH3>0eK6B*&3zrXLD)TMBHf{!dEXNKJ*@9 zsQfuA;}D+Ty#4k%(?)RY-H*6q*$5dL`D?`(^88>T8H}cH>+l#{Ea9nFO8n8J7y^Vcn7kL=sdweKC&iwc7RXc|9!fMd)a3nX`Blxxzb!STc)?jo zbDoow9Cu1BLP>X@{`HiIeNwI#N+hPQdyU z94wAc>50|qGjK_x`)cYJie?KJDy75TY{BJ&D^#^`Qt~IviANbnx2)tEjsGI%$^~}R zhQ@axE8?VyRtOKmyc)$u^S>2AfrRv}7YJ3Sk`=!G5?TtTu@TEV#5w-crW_70SVO2; z1CiVvVRN}^57R%P+ZpI8*<;sqFO3_WPw(T>-ivO1AQR;PU%e*+kTB|upN6^dem$ns zwQ$6AlBA69OXK^5CqBQiPHmy8K5A&NPhHU%EeyEmK$1rX(6q8R&NacDp>4Q6N#1Q_ zjVeQZXSVXs{YCq%c)-;Qe63WJo!3GXI|k)%m1I@110}SKq@Hs-L0SXp@KhN?<7l4|CW%TSOq2~d0s9~ zqTft)d1-GS&t;lI&rIMf@KuI_VqmNf207bMa|q}-Q~i&W)x93s6#9<;W|p`tOlHd7 zqZ?qO*=2-d$`m6+pP$mK%tk*Y-S=rsTo*3V9nb1wfOIq0Agk)hZO2O|>?~3ZG=Tc) ztZ)y%>CY7Y-e2nhc11WFtpHbX3~!Z8(7ioO`CoRjv3Acfcy!0g|%>J!bx>YDrz zR67ux)zvO;`{+_C#C+FrlEukfe2U#K#a=G;58N{qQPnr@T60$)KnLRttGm z5qauqYQ`rB1X1Y>@a+fP{I#$7^@-4C71dmbw-@U?#{u^j1W4`{Hy$HjUm2PQc?Snez_PNaeK1!oO&f5JD79S@d49Yc#?5z_B!O;j zC8V;H164RHE#^mxtpqZW_i>lpl<}#0MSmyt&OD-%Y*zQ5nYcin!{Tt< z_=^>>xR+!?Ts9<6nP$#EqTNV^{Xf`)*bJbNh*IWefW&OaGd>HbJPhtafNGuWz%{Vm z|HfEF|5iw7c(PxwH^t34sjoz?aezkk zM!-WI4M?*!g7`*9?JO<`JcFZ5$O_zf3sHkD-0j&WnW@*LJelc+M{A2*-V{Q490GRc zyf+X0ENT8G{}X%=D{Dq9bDLtb$=R~~y{<+D>|SN{%4Geyd>y~`q3Fr~4WCQNk~0oP z=#P)@7aeMm^USeQK(qY7V70esQh&}QLl64*Nz~Ot0|yTKCJWt3*Y97O)%m*MvxjoO z{eG3miuSYI*!k2ye4ZmCWA&1ensmbwC{a@pf^XPi6{*0OL-Pp$OCIu;p?o+^i~?Kj zXX1C12R?&Sp+9J&;h(*73JAi>?fqx|v*t-id0u6eyp%OBQ$IYSR=!t4@c@I6^GF%} zibrW~P%0J_r8$|V2C@{doO`x)OM z!fOG#oSlMI+{9=ng%Ahk39**4vVl#H@E*%Lgn-i=XnTrDR7AZG_8n-p*?4&+wO4tP z$=qSDE5B%JPDP763B!y~EFxZ}4TJo&*>?U1?X)~R4G$g&JwfuCX`_N04?V$WThfr7 zHpw*gnP3JO4cOXEbKDb!mpGJ(V!2@lc9vyBq%pDg5^Tmx`uaeb=(5=p~IcANzEn%&3o@Xrq%$$$nnjz8A| z#uBZ*8@ohVrJC-0aU*3nLLYvg)c6<>Klm!wSsiDOnVix;N&K+ktLv&B6m_vTbJ4aVX?+8!<8>4ZilP6eKg~hhv#iDhDTTs?o+T4S z-XOSHDfNRCa{uPNLXV*q)^TA4G48+{I}9g}!yK_5f?b{=ou5kh+P)oUgNLUUX9AP4 z@(N52@5!Fg7ertEl?hxS!$A)sgi1-Ngy{=2T>?eY3QVEWVFE(IeQ{1joH9xb5TH=I zexX3EBS00B9oSS$2u`|3Qwr=DECii~!e(B*N-wKJXO|}O+9c4d>&2__X@3|Th~L_A zaNvChQdC=ojb8a}D1lM24qd1$F2*c;bvItlu0mp?cNBjCMJXDRUrCOd@)3j<|6>Z` zVk6!qpLNZ1y35h>k!&5Z5D3`y)E0k!G~4;&x={QgaM`SHMJ-NSP zerMKQUD;h{Ak<@MYKm*|BUJ$q{eZ4PWuz!T_`?B6*rBG+kq3C63jX(i7@ZIN#1FLn zooUv^Bi`o05XP}143j>?vEBVzy-t*N7gEB~vOM{>*q}n~XStwMUGMnwy^XqY!-zxf z(@!JjQydc(@#Pa+wr`*Bo)0FoDx;xu;<%GSx+^{?+gkDdSeG`=Jh?>)($>r2EiZ<> zxXk_Va%(v{iyF|rtY_C}&JDQK2i!&cIpKTtYIh!83!E>`n*J2}nfv!@v5pofGsNfo zJ=ZSAF`ecw)K*pfI7{hW`Y$~*v+$>vlt+vEo1r;%mYcvtMP9to(Yh;8`_QLw$$epR zSfg`Eoz~w^J)upX{9@zzMM_zY&b1@mTNI_AclCbe%W-bEuIHU?XQSsnU2Q=_(5H9~ z0L-0@1~ue%1iVxqWJd*MInD~R;#%Td~ z?Bq)*d`X=2|4>a3>rdD9JMPfHGZ6i-1+@d+s(R@_`>O60KqbRy4D`A73<32l>-Es9 z)f@AGf}PZeBBB@iPuY9-`ViRgCMBP(nx&a^HPDT2^90;50zQ{+?|Zh-TbEq{KR>@Sajd{YpO$6bXiPcJkjgkcLHZ(T z87X0KoA9><{(1_sk&#I7!_AE%N$K;l;Z1gsYx(kJDY|{BCk#vp&}MsMV*}7KBxc=U zvfIL)V2tD+!uf7?3!9gX_CnKtnSNqr`^s_d6w50c_TPRIps}&BP~i*s830)l9|2ff zn+O0Z(|>&?{9Xo52i4O(aJQD&O!26wY~VE?{p^!{>@(D4Jx=)Cy0_39n}Z{SKm2r7 z2omR4$Bqd90ka_R5&drVRc%TOl~99@)x%?A0`>{571!b?O5ho$-t?ucM-$mE2QWXw z#jx*(;cj|Z-Ztc##aPQ02R`M5h6=C5)cj_?E%6D$uk%Z*BsGbv;*h7FHCz|^WBsk@ zaK+4!yUYEIa7dBC3Zg3~fiYYDIejHEP&9a{{&pecQ{mks`qdGI_t8ejap(WX*jolw z`9}ZVH{GRlgOq@PbT`sn(xP;Ww7@0=6p(JDq)WP6q>=9K?#{iR8_(}QbIzGLGtYjZ z;vRi*U-yb@t@Zh?#iQQ8cm{m+=)MnD=I-Dz>gw-`P_%Z!(=?M{AW^_et<)z9Ins_g?^>HhN^S?^2H%jxf$_@ws)FS9;@pEF% z(v;a(fchRzFN1;w7g#aZ(;KxYIQVSy6)^`To4JeZeOGjrGzzK15Ibk}CfrS{k)&y8pm(uzB& zd2D=G_x1dL9YYHT+|HtmAEi8OeTD_Fw8&dO7|m!V+Pnip3Xa(4i`K)6v-mK}p__@t z{ufQ_@LxpBQAg4W&W1O^G`Ty10+g=QH#Ww8($xoB-r)Ef*e?CNlNG|u!txLQ0zjct z!Nh^wT5vKD9Uc8i_7oJP5xw1r^=*TIt}T{P6*QbY)1B-{QSiT-EA%d~{j*F|VqotR ziIog(JFD}HinONzMXf>QNR0!<%3|vndv4x0K4Ld?3<6P+OUFP#aq)beqY2nW0ME#f zZMxOx9z35)$K_V_>^Fz=bvUH_@*dl1?jVV-IFLCws01Ww_-$GAO<*DC>a=S%f%qt$AK0{W5NnPX7SakwP(sbhQDX*2e47e55o=JE2 zTYc%EmZU+=f>Ym`9)r(TPjKAJR>%UC@Oj7+EVDJ6Nd3-YEA+E%2*)(h|Hg}c(awtV zVR<%4U0v%Y`$&}y+jW7I`Go;3q?4Lg#)n-pemUbXxsCshvkJc497g0*_1fuSC+_i+ z&;}COQPkePeQRu-o{>=o4Nw1n z(_qvwG5JbhLhZV0J&yAa=(-3Hgo_{36f|lKp1ByS=>PYKq1 ziYTiSuK{9irbeu41N7d$X!cZaE-JH7zA^DXq|24D$iy4;?XoqcSfB;n%3(<%BPdxA zD{C12l>vt!EUJRP8qm_O4AQbx@VCVgo=ILfX(=-lYFc*L7?1@>$WQc6T49l3{>+tm zV#c_GL1qm7%&GpoAf3ad2r6a`9u4`V=7sTLm_Sk^< zFq9xTL!|Nk1&!Azc0sE8E6@yBSgNE;j=;SYMN5tMM@?{FB(q{-VnB7^U`ZO9KOjBU z;L}ZF>6H4gWXG!uGS5>}3Gwl#>k1UyAJ_hDbSJo&lpjg??wY#;k_x_y4lmoX7SnqW z>d07?%=9CMcS~4b>QfVJ@osjtpHH_cTEK>cj?FAADuMP*XDkvwP z5DkhwE;qS5s*gSfBLB6X*4jS|Vc{)pJZuk2`jl^mmLuycrf*;__97zID0abN*9F^u z;0VZUd354Fl|Pes-YE_=xv$5ns+mLivZnz(fjf$IHArtXqB}2uVrzUVHNXHnlTB zFs$5F?esGr`rH~fwsZlaRcf>Tb+rn`64*a6l zqooCNhq$!7Mc#>3cr+_+iUGOS>e&QKb^Qu5@s8+ti&7DCZXPk&bCf=ROJp*jZR4*wYWIIdgkun6`nQz=Hja*bzXWSAHm8*6Lx zSPUkCx=V=z1nU@aJGm7$xw_O5lt@4@~pFt?B8DB5anpgIfNt}cbSAC!C zBpgs1$Wbwd4-SX?){vkK65m(P*#_WIr5Z@8Cum-g;o>3#&OZW_O&^^ZRkMTOGHWPz z8*t&%JLO@YU6?P9CFip(VLc-JTVajb=yn4_yXwk|#f-E?eappP@2w}(%0QMoHhAd= zP|tQt@wkxJbX{JtnFo}(<#E(3)r{#dpKb?r)CgP8~KHm(3hjGG&t!^ zKRB6qm#maBD#xSMmsS<(xcp_?QJaw?zm23_@kv~Rf#dU)ouL~Fm@1!t8lFU;X-7x& zw`fOcqZ(TCM{%k?YF{n00UW#XQVow=dEejkF3@EEsM1-Hb?;n{-U?1Z{s)eUh=br* z$OsdipNldc>(}ti#N){?Kkp`Wfv5zAds?Kx6EDx00(%TaE|N*&{6wc}8VXjzjm-{= zSd-AN=ASucUZ{7~7e~bth=_^xhO?%=#p`z;dl#jvtcRi5Wl?p2(3Ma<(df~_iKARF zmO>GE-P@*;|Fv(YrvxbYAee^mM}Y4uMhn^GM9UoC(Inl!`@ZF@;s*2Zq4@ym2$m*+aJ)F)=X{$P5@;B5Sg!zm(4(g7****3l69duU)nkN8F# z?ac>pU6{ku%saze?N$9sqK&s<&#3Aw|J`^UP(y0RiPKoO5k2bc!qwqcM1}H;P z{?cq>lU(j84iB8>#VMnxBMt#S#b+OWh?+K9=QI)+a6Kn0E zVYj&|^I|C~{Cp`b&0{TZ`9rlB93vpw+4OpdI53e&8ccNjC$N{=e%h7vuumuZ6zzdFF5J>`F;2!0ysiyH6qYRE=t}c zZCf`V*x?4V;^E-|ji$7)5RSvFH)={p&qD-^^5Bx6Bg1+pnn#i%Fm)15Cl{=Qh=A17 zRZN$Zmp6qtEit|^JNNf}Xh4h1Ej6PgO?550^mC)jn){`)0z_uGAKQQO#9pOd#^!fN zkVGE8>Kbsb6}r84{3CWGbho%0=!PZYob$|0$oSr|RnvK!)gkJ7diqG{6}ypdD1Ern z^sTq#c+MzF1L`@%-w)spL(+m*D;RN)Qq$UXmNU+6R@35)5hEedNLKEb$(QrdkK2{^ zRYNUo(UJK%*z3ksB!FOgBDWl$bX59UE&YftfECDf%;pTw=gCpXK69S1@(fNO+`v3I zh5R7ic@9fsgQt!V5I){{Gd?7{wt4pNu~+S+5dh9!JuDd}tpfTrx~zy0;NeVn z`k*!ICMn|>`6!KJWI|_IlT!LMJh;cAq_FC1FhWPf01_a&h?gwMPY&oD6c|=yKWj`D z|FP3`AvT&O;|D7C7j|g^Pn$Cb2VI&LK@4hv3*_ye@DXsr38=N3{ryuLu(8Cftg71I z+k4CC=dfXMu?qty$$cL7^e?A2sBl(r{JL<$Jr3T%iv+LBy5RZY>`v*7j?p$7gZ4h& z9U?+>@rp3%Z^~roE+4;TY0_nE&+sS0lMqXmhEL92dCLyW*g(Ndb!ZquDzrKr%dq0M z;f1U*LdxkJT3Y#y?~YeCLj&9!)z?cZXD~y-Ji>+J^)C@ z=*sgigzZ9T8&Sc-AxNa1%xt9Qdd{0V_)Wu##zzH2WEohs8Diiu$B2NZb}6|3(c172 zJ;Q9l5#U$six{RY*n$Y})HFK71QDj}Tg8{8@n}&WAoZ$cx|L-@%)l`&>5TffRNpy- z>;s&)74N(L558?XOu)}89lVEvC{|)z98*X}sX?7h3d0w0)&>CK_WzA=YYqR8a4UnO zrWE3*Wcfe@_ZHdjIrym3BdWQ-4_jIWNr-Uf!{cXgu~aio!q$r%=;jXI=p<wKyFU*t5uU;9jGd_VaA(E?)Otim@$ZCL#Y`t{tq~~^UZY2>h@(9yeF^e z7kUxiW)ZA2Uy=Lc_nc8X!dWaAK?QkWefeWqH~8Q|?G}IIw{SbXTkgwh54}Y@E)T2s z5EIXJc0u3rdA+<`ylBV%01+n_CrFdk{HgsJhHK%YmA~?s2@k?OPGm zDt4D)wQh5@M2=IIk8p;*rwxkG534b-xBOtN$Lo}p{EMh>09xa?9XJxui|c}i7LtrH zVaID`Zr#v8TGOC)otJOxma5ZA+L8ig+@KZzsh-;;aGptFdo7bQ`ZDW+U_*mW!yg#5 zFtea#!2p4@L20i>Gp)r?8v(%ZwQMN4zCJE?r(N)3#1Ha~t@k6;nB-sK5IEieoLt$~ z>JIt2(VD;4qj$AK8{|=vEwy!5-4x5b<|g^L!PeD>^CSFDW*YoZgt83Y_98tW(C(_N!56lKk^toDk1_GXUDW@)F zD};RgcsdMrWpE=V*}Z;zI3K2Lxj(djEi^o+G@QYmZ27h#+qt{`lg=vx%#aV0IRTDZ zSnW>>63qHyEYm&n)(u>AK-nj#w*xEbJUR;Dcl)4$8gLjMlz%7;1c57rC-s-RqUGo6 zsh1$4CtOAc-hIQg#Bme>oLtuZSwWpCdC>vjL{wH( z9y#*mE}xXit?hFeN%hSe?T*}Omg^DM=%sBXZ;i4+sI0wxy?7oi&T?^XU}sFk$c9S`rVr)tv8|GK=+S!J!}|^Z>GpW~_$kqh99y%5 zzkg$Nqu)~s1T=biEQnkVOa5Hu`F70R1IdTsoT@%slU)Ax6pj$CZ6yDNqjmn-$PKnX z!uXH6Ak-GI3#o*ux?Rm6Ff@SEOZV6OJzLmhOQ%VD6vs%ZWFHuiGrSFFPvyXJTdhf$ zOM{LuR9aGM?*-_r8)W=I0VUGn*FmZvq6O50#YVX1%P9je8Bi6u#P?g%AR@F z!3+8=UM*a@z$XSjaI2y=CAfm^(AjnE?;KJ@JXH7HKa8$P1vU(FQjlkNSH!)h51WLm zA3OKI*Fq&W;D)Oco&Yy=8b*|vgCCc&+a=2r(??`rbP>CrYB{;Px`Z{Y22I!P>w*&| zcVp+j+)d^oD_jZa1)BljSN>xVD1*i0#z&=FdQ9ZEti6MA@;y(hDB+`qjdE3V0x^SD zF3~~stpUl0`cbvlln#ILz;3te*9<{yrk);A zWG@8(Cto6EO1G$>E?N{R2~-@5&kU1o31SM;zYr-0FX!ya=S{2nu+YVrsKFkbrxj)U zm+GFtU}SF36~ln^w}>Ot_j`O7@xa~st>9yi?m@vuwD2M54)I~$*<-MOJRW<{|H$8~1rh-ErnN?~8u!^#>d!Nn>&`)a^1 z2L|Hg47_voDeXN4|#Mx~;wf0!g27;NhB27D_Vg z1_!uAE>{fG-@*Kc!Mo2EKcrSLml^MknU1*ii2Lx+ed8}}*ilJ_aKt%;h62n8Jdp#v zg~w$V-r;soAGm#2SWuIzuKj&DwdBixiy@ZvRjkPGf+gop@6rN2#I!;#jk}n@Kwn7` zBed7DP&JdYV?Ss%TwI*AVw_YaS(y0`*`%Cf#}ohOW11|oY1x;{^nIl;?w3C5&Er@A z1)d%%?GFvCV8R2X{xP4R&KC`sA$X`@`C~JBYw+kn)8*i%ct)7-{R~7H14*7*(0|wV zzg*%Q_0Ydo8^(_bG;z$2?nYi~aIS(N5C=NNy4Kfqr=5a5ZQq&hC#ytwl0GwH zK3ooELtywsY02XGN#F<;I!ZujWu!sXs^s<;u*+?{^P^ov*sd$0AN&FS#_CqGB{PG{ zJNv!mAXIyRkg)@LuXUGEe^@&|WBU?X@Jqi2{R!}fK5UDz8#Urb3l;?gz+V}BY+6*R z0K^M1WFiW8cZuiq4VlmHevm2s;0N>gZ+y$%=iqu9emG)IGgK1|3VcREWmwzUpUFg4 zO34?QD%-%q2;)7K!72&#a7$t-yn0k%09mvwnL5B@RsA}+AF>H|s)}s<`KQ&@n#SQH z&wGv6qyfLTV~2lF>D=~mC%>z*CJf7@37*Bw#=9whKhC@dL3KNeF@^$jssK>Gbeu%kV}3@^D%i{`rHGtX+l7=4RY5AXv004Ip zqz0QBIakqp<7^C4H{6;*>2C#2rkNE~J*Pg_%DfJn?+gy|P@oX)bux!7J+DYP=_gRr zVDWZZJ>10n@$#*Yim2bdyY{*Vc2*xBd}>W)nGBC>S^C$4A!Eb2uJ?|Z&p!Wa|Gi-^ z0}2GhG4CM~b)WXhKBZnynnwX)tDMd#uBLW@k)@M!;i^HaI$0cC^B>cdRM-y1B9q8|8y7YA3n~;h61*4aVnA}`)^w~Gq6Sk=G1Xs4^=H`Nn zM3v3W%_Sr{K*$W-+j#H39%BsBJT!O z`zqXLDTee|08nRNxy|P?cN^j~8~^av)lb*ND;+(9%FvA-c+`@J)DycE%cSJe{cV>p zY+Xm@?`P=7M_e6_NsO5?%R29ELu%d;@U6v34y61H{_*elB)k95`*ait{uq>O@nZE{Go4R_hC;eG@yD zFC!hk#Kmd0mE??9`&C1SD<_^IcEOQbJeGj}bP(=Hf&vhds%6s z9N(UE_9djByD(9b|GfDKIE;|5{UaYtYL~kDQUUU?vQO9}AKRY6xQ~kmNaK6bsvP=Y z7sDYikLit!r90#65SQaG{_Uguscv)|gRx98gs=+u-v zBAEOrJM|DyheUO;%JHTSg^J&U|2MP>l)%AUG07K!frq($& z7K_2b^5u%JV@O`qHYp_oId76}5c`=Qd~Y5(MdbIT>Y9vN<@CG9 zW9!jFlS}_P!TPa>nQVv}?d=5&W_f(LzRtW~eY!7t?#mF%tDKdIo0;R2f>ZMKd7KeP z+%IwS!hkvLjK6Dp@AI^$WjFBBT@M=_JPlnZ?>Y(O{`idE-PD(0=)W`?A%s8p%`0W< z&sdRjg(NK*yJfy)GSmQp7+yD6f@?N8JyVs2E-2S_kRNlp z_H~P(>hYw!uR()T1vQ5(hM#8fCEXpP$jvyY=WMV~xuZ&cvy28f+Uj?|_Zv69txjsj zD`*DZb-$jRlp#og^uMNmF>>2{Ai1aCGYs)|aKyc##Y)~?A9gI&wB}?Is$lOnsVZ%(0QI7~G$?ULe7*qxLiMlKE zupM~UHWzB~DO2q4e8rS(126x+_owwO7N>r5KTi0=LwsFd{lbqOna_sLJfjEXAC2x! zU_oJQ8d#$Kfg!%i%dk!%O2Bvx8;FEWmmv?^c<)|jP3V1RZ@F%)qY}Q@pBa)Bgw5AX z`)=$Gv8Ua3zq1&qyZ5i7!Pi(LkLT4v*C18O-KinCZGN^|zpC<^Ms4$~jT2tkLg%H1 zvyLlT6fV7&sh&bZ&bWT!yEC&l!LbqeVg0|=Z%eL#_BnS+_%8V3@M_}lM!|B-H+)~# zs-kYAJJIt0#ttcO^J5|S`-K|jd`e+>zIe-%tX1oL_u6VJ;aLLKKyWpUe@#Zmhvk$# z2Jxf5Pd%51f`zdBhb2wJTj?vv9B;b<)Z{+d=HK~|RSEVf`;Ge=oYKa-l6+cyAE8bl z)1H*nLv}w7%<+m`R4qcveb-ZsmlF9$GCaT)2)}or6xSt-<+l|AWUD1d0PxnXrVX*r zhm{Zk)Kf{Xt*r&e*$sUzCl?nNlMpZ2+fWnXKtzp#f?{);=00O1mjS^>EYkOy2kN1!Hk+BLB z0MG!9&t|#!8Ue2)?HPl0P@6BFu{EN0Pt6e3trUfw-tY;vx!BuXcNrMpvAWe=2%nu! z+19!HS_}AQHQX>xLzwX6;29AmY0N8f zr83{*OG)j8&2rOA-4&=2q8IF8`K`b1)6-^DoDBT->zicOL{nUDNQy^v6Gz*RS%wKw z0mbnjlg&shDA}3m5#+u5+N=9?s)ESr>!w@TyfQny8g{Hmj0EW)#@T6b)m}#VG2_s8 zZCHB~>IB48rzMG)ykvH|)M9&hJ}Fjw^x0K(sTjK<60E{F3?#f-Z!KkTq;+2XsX#3# zCu$V=_Ye@ad$VFbL+e-UiRFmneJC5CH7c{-FMfeFFdaFv1f@{F^HSfiflqY zKpK57&j!jKRx=)r-zjr@Wr}??{e;-=4=Um<8$sUOAF3+15wAcF$(WH7(r1k8A7LLz(dnB`(MxR#^w+mdapQ@9 z(G}e7$jnk~wp-N1d0DQ#DYRK(woaXU7gY*vh-w-nx0V$J3eQM{di8Q={YvHKlRU69 zCv-XsTy(Ah@%>y}W9@x;y*Rc#Lu|!_0wtHnY#yyNQu%!(6C&%V!)j&o4-5(ojo=0- zdKK&WqWaitPMoE6m)O5%@ART%E*4N$s#AgWexTbPUWqb)>oGPSX5grYTea7!YxzOP zGW1VbTf_cj_6M*IB*-gh>gGwCEb3)_m&)+ ztQevx`_@L zA_E0d(q11k-7|-X@Vds*{VZVlRI-BKB_(`b!Yh1V5B8vg&%l{BLIL)tJ1b8HOx_>r z0~I#};&{3bIA&G7W|#xdj3Zz9*Vgrpsw2X$1z-0`O0=H8&Urmnj=P;@k#BGiy z9hI|JmCX%Mz;g2DiT{#~cxR{7g7_+83{NGa4qMlB0bOhFiJJkn?6YgmsUM64&gD~_VGL%+g8zc534B_S= zG2>w%@3WHu2k+JQ}BH`1t z?9B3@u9TcB1N=sxOc|eDIDFK@43@PI`qUnD~t>ijyMzuyuxz1tlG_x6jM% zNwAA~#UG|n-sw$JK{c@%pSi5*@hHo%?+8-QCuQgz!ui=Q2Pt9u?d|7u4!yKLvmvMJ zGAccW@5j<$VoH(8llvqmYEt>Widaj~HMyC8d{chFBhWPgKk2ggo$x@7`$}|KdhN57 z96j;PAJCjI|J^(9h>#dqS<8p4!J>QPwC{Rp8st$JL>Ls4^$6m(ZIldtM~h@VS2&~$ zz#oV=ZhO#Qydyxk>7IBPW+96&Ud?iJgixO(VzoV-)rpXDT_)#q*Impjd~*{a1bf31 z%$lQnJD4~CIlmFG9X$3mU0%l_Ux1F?*S3KJS?qA)_cAd35L93nDG^0;AAjq-gFCn9 z#f@?|wHTnWmSP*Hsl#YS6h<2_Dax*=MTAOCo}lzMklSt`rW`ZU8T;mu15;6fn9{?C z-aKM?HaT2l^ag1VUAT>kGLjq9R8KBHI`uWtjp2GuRlj_!Msm!ykB$_BRIb(y8VO}j zw`qB8jF}vNGUJ0O*|ZC(26JU@PrIbNeXj*5n32Q1m!}x6p8sY5S|%tIL$rF&VWz^- zrP=9H55=#Bu(s>Df~%3Qj9pjX!nb zGcGfG$cV$0+&ZUCG!j1(Qx8QD+%1WSV2(W%9=5>&7CaEp6P*2aqMl<%W?$aEOJOF6 z_QhHJojfep+9j$$O72%15tR{7CdW@%o0a=!AU|8iptvghN1Z+XtA!gG;hWrkUbwt( zeVPz@*z!$R5YJOY<+YexM0Bd~P%{z&%wS@Vo0mZM6%N!JHra>(yiQ>PGOtXC7jfF_ z%y^#cIq{l)WeR-HC^$+pe#4Y??L1ZrDR4wv*E@RLPmC#7k8PJ)uSQ|s;cb_l1FC>p zBOfMkE$Xfu)XA)`@ORAolLl=xKbufwojsYcWB0aHS{0+ptM8nq%(;zr&S4Ad+>dY* zbuWIr6YZ2gU~AKzJ{+YrWc^wHZWF@#MX!c#%vw9U&}YzBOp*ow#ggXx@gy?dWU0|= zU&!pJ{JL%4!<6A?Qg3o~a$RE4ENGI%5J5@# za{BGpCwI2J-m>>w#{L~45ui!G<^pYxhVARJQ_YL<*FtbrMB0lKUtHOoe}~$cy0kg= z?eUCSnFwQBVu3F1^l!ut_$|RPg4QiVdq6Dg8}l+^QqDtJ&F%M8$VGx{8(GV0y{k2t zc=H)mNKm!yT4vm@33GX=7QUTRP z`d`otTuB=V71Wv!Lpq{^3oD6KeEqkZ3iRQrTX*}(D;8eN+Rq+5I`_4`Xgq<)^I|Q* zkBdP8<@OuSXN67WnHvyEdw8wm5>X^zA7Vl;5R+hSlN-jatl5=sm5-=M`7)EUIf&gq zl6hLECRAw}v4O}0Z=U0$UDr=%KRHG@^~9esx~BoNtni{GZ4^zdyx=G_KMlT>LV@2M z%Pr*b5aXlH;`N^0U{Mp=%KPX{eK!FA9s+K=D5bZNxov}q8QVh_KLMc8RiN`%37|^v z!c2KM{46Qo9elX>p2fQ00}xdO-yh$ebpLe)-r|f@*>c3oKg>gxFjrpf8?)!=iYz}; zIfeQ`&L)%{^{xf|{6UC2(B$SEat|Axn2&5}>g+ z*f=j|jc-?WEH;m~Sy{ON#xOJAYEgVDs5@neQuh8L&YXL+In7JY*Jk4LSOp(xaG0*) zlG$sa&Lmex^tn~EMc@~@)^f>_`itkr8)3PY)1v5|eR62X1Rd|i=@jXB?0<4eyUXRW zyoe=%-MO;m42Ot|lko10mzQWXi~eN3iz@aNqa*{&&SN zIo2j(BjmQ&KNO{h8l641O_I-xc^vjY4|f@1R(3FIBEXUtd46gUcK*2xx&6&MB3@ZG zy9f>>)F-FkLPsp3k)#q>UbKk#HWTy`HK~B6Gt71YG91F^0L8=bHkf9IJoqE}Wv^~9 zw(7ZGTgD1+pQ2zpYoBzLTKZTI>~9<5AIj{*)lIS zypp-x+JdKfz+K7 zx#l?3-R37vCbE`hoC;&lnafq399z`ZR*@!4)W# zM!#a5o-HB50IMjv4Z$(QUZ4vWyYB8 z02Ymwndgrq4D0n!Wskk3K0A0TrI0CA5?wp}`u|dsMP+~}435!}mphUAe);3@T*YIc z{r*vzNlWvO$8q?JDo10ick<&mO+rlUz$hMqfcj6FH5=vQ09TGTN5qbU$6CPv_mnb`$Kw zxU6WeWWZT~f1#x49RYo5?l>`tI^m4dTSRzV$@2W+odO$}ye+#(z1_Z)O6K*rb={^L zgf8IDYht>XS;WGfV{d-F8ub-E2WNmwif&Y-FA_$=V`6r{#icq=3A`Fp!ml^mfu>CG zmO_Vn)u}&)lfg_*%RX`|+E4|a_tiv>bjtT!4LOEF@_BBHw}b%_nAkM&I>86x;vz3H z;?`LDXp^n7P#LjXbLw^B6aw{D{(EM#&L30c=*FKvD#6y+43(Z&RRT#d55uv2a}eL- zNwbH`;>1WWx2rvZlJOoEnzSr%NI0qr4B25;p48p8bl}fw_uhnj_^7Mg7*H zZN8XCAG@xCJNKNI@YsIPFk_&^>S-LQ-Y52SAHiE0rnEmIMu)OlLrk_8QUc$xc=TL) z?XdboCx*R6`@~z2upf;}8}+`oV%2IDy_!wc`ShvbY^X#o7oSRjK^sRafSEPpE1MHw z%&zo&wfwHISjs3(!v=2SoS5|YOj1$OpqbN!)h{cePhjvE&Jq(!)Fi|X9vo>gV*Q=) zRcFU3)m2)|7~#Jsmj5lC$oT0Rf-lB(#>!@>6`ouNXp6V5PiKJjhoZb=p(8zvb`FVo z9KXBCfqj4QCCrvZ2MyW7Y5K8j6r*}?tj1{u!cF?UXMNloP1_t%e`G7eSt}l|fb(2c zK&K|0LXg}eYrE#7?T-02GPbB#>thqiRk%=9lrfSp#B?CkA8IWx!41Eb@dr67P4Hn~2KBf2E^S@Ywz==`Mg1*0mJ=7Sx?TKM87FR}CA)Qc zl2)+RwX~77R6NO9jDsLuq+esajJ_ny3PhgP+1`(?ReIHmkUHmone=V}I$EUr{^brX#db^_N!z1$b7u7sMdA(q#^J~`Rhfz4u+k%?t+d9g@Z z^r-;P3)pk*N;D3iTNpn7l>(cdTwK^AHwMKFELhzF9X^Vs$h?!JuyI#7y9n8L&A?+g zapin<=C#~Qdjn$RP?<}aH}*=22sYE~ZFqXfJ&v}(YWdmX-U(KE-X}1XnlwcbXG0l} z3ljD{)t>nBpju$Fa+@(}0<<^QL`9@4oWEhtwbB&G8F$o%$)g0h=(9%ak|5_?yhZX5 z(ODwwqO~)C*FfzALXk)~MWS?g8CeHThzX^4d2Fsx54ReAJoDLQzwgj_ zg%Uer;NO+PhG(A znvFjWVmSyefuA#sM$b&PElSr`IYBWE-;I^?Z(+;OJlM5TA#zGF{F)X2tncXDA^RfF zBBR^y26K+D;^NL9(p*2^3VVxkbGIMsn)vI}RI!>L=05l1HJoQd3g$SAoJ$(cU#MH) zLzzIr8tx0xLMRB<`_B3j?}b8=- z+X1t}V>G7y2^U3suiNXq6p6)F* zcTe{gLXKFO_VKK_(X=w?Ml0`=RRCZI;KEUIc}u~M`hMGJeFoyPT}+{V;ZhKng?pR_QvY8)2cZYQ#=!|(5dDkHgy+6yRc z(zm6mIDntHxKU{`3sH*U4Oq&SvNgsH0$W8fK`xFD}+ z+8fSqqw3+`UsioFr6!g(N(+r!Egq2yl~yPlSby2_CAIdw@w(rH=5lq-mBpk_*-&@M zklfP+S^F#V931K|!RO+vg!=~vm?52j+z!try9vQgAPDiGl-tkqraz3VQxwGDubG31$TWBDBmCKIx39HIc4Qe1m z^|!oY4$=?iO5U(@`9O(y;qe(%@fO-jRiiSrd~j#c@p*?Xg^3`KAb4@BL0&FqGaSUW zICvC!aR%cP`k8SU8vEEua}AC}gX8X_jC?#ia4XSAM@NicO+;Lna@s8udh{AN<^QSv zXMN|ZjsxOdfA078k!%#>2I$YcP!l8b%s0j#Vwfe|FTuY{zUKifUEgfL5}9xIpubR@H? z9tyhD!m^OKx3x;UP2}QCInv5^&A07$Uf`m5L@n369&4gpDw$yEwSxPubX4b;UWL|7 z`PV5qp`om=n4ZK!>~2`V=DuekqS_fOxUFdN$usQ`64?Rrc;9PaB z1K_f@&t6^yr|vE;7nhf%pk{-(iHV83JKym3DOkA&i-;YsvGGvuo{QaF9Y3CCJPN_u z+@w#pbfkq?*pX*Go$&Fnb`KL>kw5%h%Fh1ukke=8T$>?Dx^4?#Q&7Hja{xX^3MrRS z*}Wb=@@&*~H4Mh>hZ{U@Snp=mHZ|cbZiNQ^kbr2Rk4Ym9-I{thgld zX)e=!gIBXDsO5~UDd&!LK~W12O`+$}ACTn7r17RyXA)d1P|?X!mPDm{rht=BiC_J* zshCvd6O%m&U;ms8T<_)tk5pC+VzJZ|I8|Qyt#hk|^}=N-8mb_Kc z=%j9+1VaKu?s`I*vC>jOiPq950GMgV28vR}#w)uxr<|&qKj8 zL`OwM@FUHCr#aIs*gGIc25|P^>Lb%ckptAh!3%n6qk5%>*UaVZZKa0w{4cjW;l!`l za}mqOo1%q)iR1bCd22ZMcPR{xIU0p7f~6D^pfR?zv@}10{-?h65PH}ITiL-701}t0 z$=luCj@#_XI1arv>>Zza30=!O4^_iOi|tLVR}=vI;%OntwHOCmRc#hb{il$L$ZpAy zM}TG*!78H+uXUu5hFlrEvGD0&x>4W(R!K#X`N1qB+`H~OfS(Cc=DXIs?Esy}xY@oI zbH{C83|R&%9W3n&WIrNOwaawJewJRFG8Jl+enIDrri{de2R9o79hsFH_+fIn9?=?h z7-_^>B0cmiGv>!OZBzq^fmCgG-;&CH!z%+CzmF4xX{tlMjFsS?c;pP{Yv|aK&6cdF z#C6kCY1AY+*)4Sa)G!+`A{TTYpt!j?F3h%!dYKng$-?vBNgjb%4hr;?Ic@KG zWY7Ak2Z)%n5`w>cAQ5-`_hBUr>w1qP0)+#FeCr*Or=M!jA1{IyT&X^v57(NAJQDHX z-J_iB&WoX~{49emhQmU(W2ZK@QB5YK52(zm1gpG_#CDZ(1wB-5maB@)!wECb0=F~j zB=J9vnpYW|wEz3}?eiJ@#{yuV*YiZ?uc9YHhE|OJtcp8b&oVtHNwnNoErod3$|mOf z+A$jCMXmhToQCwtTHBf|uOel(u`F^B19Qb)^4LgKoPT0FVFsz`=6e{6mMKW~v7dWJ zD}0ld zYPo&4PC%u#Hl)s+Ffld}T9{g19V!wk)=ZxKte%ae0)~il?Dl)d-8@IjK1Z&{#ScQ| z*kI3Ni2#K>raK&x;{6qLb4N!Grz^eYi3 zL1ZOJ0b?ZuYxT0l-F_EUkx=Nd&f z_?*H;ML_{T&N9v&ixq6d%IZtBRs+j=V_ihxkP9Q88JrdM%Elj|N!G?ABsF%~$OK)v z{Lzt}e@`kMtj5^jaWw!*HZv*@cb`C0dkidw=DPIK>@^l7zK4AqImoc=eqXWvi|aX4 zA`H~yzFS%pLAfftd^0$EcMx|rUI*c1_!HFh+2U$;l`hH-++~(fuix-MwRpR?FwDH{ z$`!xo^wVE9-A+>(e^o@U!p`xbPPhfTjSKL;#<&N(ABGgc(#@#q(QS4gPPQR*8T1A% zbq`lVmqzhCXfoCDBUJk z$6v?19NUsG!0>s2$YXaV&_+dd#|b^&Uet57bbVH}*AHW}A<$dpeKq#A>pj@- z9<}05Q&GK`0T;9xF^^ z_M(Ie{}+q`l#eZ7YCovCj-Ad#AMXy29Q6mISzWFyKp)N9N3gT${>0$4;WQOsMeu7v zD__Ayry-7WF;Oec$(Y~Q{;nwhv0orLk4LgVw4`Kca63La&^2~KHo5Sp9v=PMm+>Ee zL^!1($wU8y%4d{KJn!cKEz=?PY7~12yQJ&q$-Q=)HUP!_BKuL|tW6p|A(y|vx(Lqd zcfajeQU|tXV=94+;hY!~W@3nrHS%CF8qNcayUwCs+V7{pnw`|A(q2&VtQ~IgLAanr zVmF6*`&Vr*-G$g$ApME%cM^;AU zjF;QTH!O|#nGZO1lYo84zqT*%CMIdf-|&|>pagEj6%E^R77i}t1mXu?7R%9b2o~uN zRxa8x=ax|L`Szu0yX&a(70;_7WdNX~quhd^yd#%jhn?pLAs}{&5AdNB+$CmY^C4Og zvM&)f-H@d{{kBsK;Uk+i`2oIPZ`@m%r=_&!#_jV?X4%E`R7UJqU%JDAjk3e6Q{(yb zVT0FawGS9DQQx+Avkm^s9jQr(3g^Qa(AyfYWx1U@UII5#559R~AD2Eoh`bt?U3O>J5e47A74bY_NOxgd1Wj1foCbz4Ci*NOp14ikB zL!y;_AL|BY(I7@#3MXntI2oZSIOoMKwixGLrZ9jKoq3HC>nK=suC59pTWI(>vGSNW zAGp6wMK)IL4ekA@x+5w`Q3Z(DEYQx|5X8&G$e%+z-$xpwxwyE5e>$&%WnQzH}A-~+zw4J}Nuj;jt?*J#B%YRu?X{YO(F91z^Jg-M9|9Bo* zF#bH_#$r)kwF&GPQ9@Q$d`|Z-qroaF$7i-^ntSf3g<(K#WarTx`RefRG@1{GXyIZyRLiIm@=~0i@8bn@x40Zy)Off=0OQwNRz)J zL3n*(jhUdhRkkbBhaSuUqmx@uB5#n zHJ7f9q@_hg{oLc#)vP(>(b6qJ-7aRYySQ#>-AVVGayt+fgP-mzP1 zJe9UG6J)SPgr5J09_>>q)RZp&wVFZgETp$iiOr<*z z1lz0Y&5&mPYdSK$k5ve!zkWB$(>+sU}l#w@&Npn@|K8z4EL`U=RzZ&H86@yD#x%eO>qC;fm$hO>OffvTs2&=)5Ro=T5R zp>;4&wQXW)S&Wy3HbZ2n`Dsa+9y(ayW=PbAM5N$mTS!;AozduP!O2u2#V2+KyyhQ^ zjY3)S-R4kjiWVzkd{AY<0u`r~IqVhL&P!d9{Xq}SpdQNW=atpf*FN&sbDU|R;*YDI zRVt^4hqg{mACwZ`2Sq#uC|!fWc7fQjlTc43uzVFN9Dmck*SMlNZ(bxkSP9kUr6Y*E zZVfzjem%{r*xVBl=90+p9Ue(a@G3^e!_zT+{n+p0KD*GMA}EY-+y%c{p>=-~@UK!H z2`H5D2VQEbuHASiKc(NL+y&)RN)A>(`6kSbAF)Wa8{l1fZC}Y>Tjp9&eaT|A1A2CG zisdooJrq>$jE>6w0Mn;rMMu#H7CTT({o7~1MucOcCsgB#KKztJMlz}(LN41>j!7I& z?#bosP%WDH%)uLOsEiwufZT^v1B8DU-Oi7?Mji;SC%~GtHt_pv0}v2wT0dO31uxX* zTib&WVQOYZTp~b0A=2%YeCD>G$dBX<-`2)vdY2qzWMl+XHCvxk;Xtz=AW?mC!{h&^ z!r*MH`5aEz=qNTHb6=*pqQyY_gqPR8&WHrPTENs^n;Ktz#Z^R2V-WjR+Tr15V^f#& zT7`zp8!Ed27_Gknt2S8xu<8w@PooDa%Cs-_4&@BMkP5j>OGcqIWjmwb;Y7l2@dO=a zCKQA)i}K#euEO;U`DuLCOD|f2SrTy~`rOdNrn6Ak2sp%&1?<4Z$X5RQm&3>99Oamy zN9AR4Sp#<>p+Or0p!5_+`?Al^9iDBHC};V;WHb!Vi_vVU)?StvOZSOT@RsE*<_ima z4{6iYOoNaH-rwv={$2KLYsUr625DCtmMObBe&FUt#lWaBY^iT_Y6Acj3ecc+ zy2m5$YkV(<>2H#)K6Rg#^x2!{2Qasg-GBQ~o40B#jA!7~f0u7HbmcU>@BZCGx}Yv1 zLr^nZZv_g(uF=%B1FTCE(pRy0e@Di!B-s)mqx!4;Ti%rsxluEq2z#qEoob|9WEe3W zdGa^GNTY>p@4+?^GNS;WAAWy60g*b*3^y(HpRy-Bdsh{A9-J}prPj9BdhM@rD*X-Pxi{Is++wOzU_;{-hT7mV^$Cy z5TWAo5=C>?(Gx}c@4PqJFbWDBk(+xTw6U=f6ckikT| zIq~7hO)~B!&L&>uKz-Ux-=;#-AU%2Fj|>>Y-MvUr&WQN%s^<*%lr)9?1)DU zRDTvku`qBFoAf)aWPQ}@K+%FAt@rk$n!kF05SKk2TXyi4{o&!^uZ=dG)BFN-Ds_9P zftt~?AFwi)T$vdeoatkR=zsf}gN`^p)shh(Lam>E22FQ4#z2bXp==!*$q1s2b?^sq zG)jQB5?tXd0}jq26b^2I7d4hzI(?{R^0scUFKZ$Pvx2A4PuO}wq##jI*k^TuL*E(3 zl@d9=p2(m;tjs17VpOJyRQa+9b@k@pQ`8-p-0E)PH&ZE+kHK{uH&~6^iZXm;^+@^-yE$$U(VsA#>A21PEc z&Pc_!t~wPM|DdraF|1aI3}6C#CM=oae9Q^?bctWTY=V>JpdZ{r^{h|I}QtN(&wgb#U}*6Rh$raMq3KdtfZe% z3agZn(E$&%Y56CrJblTFZ&*AvB#5P(YQ`EEA&W?`&L^b613%U4AV%57?hcDg7jHTS z)e`CM`7i(M@Vfe()O2xpbYuY3SDjK3pg0ao8XCCpA~_ysaYOL=lOC*UjbAznOt_&z zJCFrw+IL@QYss`#3cQn^RL;!5^z4P$$j8d4K3ND-4HG6BMD(j?_|!3|Gj3n0H#9rz z&isV3`IACxMo6|Z2>7`Xq$IHmotg?})d%Md#WPQ~ZFEksxbNewK4`2jV0VyqHEh+sUtU_*=3h!}O~&mzDD!QAR7}Kd zOAX;j6u;e(t_-Biv}Za|LZ82lHrPsHetv$HsKyPSmF(;)s-_YJQtiSY< zeFQc*3fE#)WiyH^Yjlis%I0FCOg#yxsR;;s{tzU{>Gqp;Tiw4T^j6uFm&$-u!~ywe z(u9)(;Z8#o|n};Nq zN^GWs;av%9Z2Ht>OQ{SJV344xs!&#Z3=yhVAxc*82LUacEj}-L>OB;=|DZY#ZTzFk z)(sI>zy{M2A#hz-l$)ri8i-nL?hvLH7fZNA^{`a^Ln5JcK*swNAjW66V zv=Eh9TE0uc36zcY(ZCMvS=#%>m7D@E<}QMZjzi?rzuo=jV$(H5BfX^&9pk6GT)`!r@&k+w&r7d)!U)@D%p!6=y%gWv!2{-s0;Y5Z@MOhL?Z8%j z-ipUvZ^2To6+NT5w4Gddue)EBMxMu6hmM^jIqY)<|U zItO=QY?Rx;1a4K>b_o{#9MKkKK{<{LpWNKmNfwU?4b|^Cgm`dHMy!FB!>#-Bku$hQ zj6@)OT8$+8-4f7XtP+5E#16>a9$ z$PK#9*!gqMeB|U|<$f_PhK<|E0f zB;c1|_6jn_*YoLI+r(LYn3n?Mn<^P~1>nwr zLFmvc@$MM^SHiW(fR!rFtpyWHC~JpCed4NpOTNo?7pUYx1SMQ8pl&C+6Occ$R)ONJ zy^~XeQV-UYkBW)Vlt%*Fw`Ytq)gaDlJ_AEvN^5kcIhF~OZU=M+WF=c#{e(mNbn9UO z@xgb386Mj@eIw-}NhaD-sJ}lcFkqbfEr)ir{t0w!75{M7-DwOJNBpLRM{}|=Rz$eR zXGMbcBi9lNGu&({ck?DixnSlvshMb_HYN*0Qt_<5i0{e1Qa6Zel0*blJT+yd&Onhm zh@1IO&&a-^Ra69+qL@av>j)KCRta@Y*Ig6vVh6hLY;S7PS{v;qUqDI%3o3+^xoG0n zl$)|gywrH;zJ`DPw^HdS$^x^E2?E}AXZ1kO%$+W!)OBm)7q8bX%(l<#VVd(qx#jR& zq|DcMw(kFtWH2RfB-z)K{~^h?ul}orWt7jbD|P*<#-2ZTzf=9g6f++2@JP)BV^-54 z$GVr*sa>A|=)E6s*HDoAX`)qta3YE-4hZDE2YCwS)06cz>D)$Wl=cJ@M&-H}Zi-`a zD@YiJX_7x>-eQf4vw!cQESwqHop_cJ76`Ld4pRm*u@(O|8)N`^KY(u4nQEi#94 zlF(lZHJ6Q(6rwWk{jK~K?88~Q+@o{SO$Q_7DM!T+T5kmcI!lYdj5=U2{nooj4*n7; z4e4z3GCPKYK?W!A@BA6JR-F4GSZN}u{k!uAnm%$U$u)QbCNRzp0v)%m?BH-BUh>C2xf-&Jy6Fg}w|Xjm5r*!lf;o9&qT-vSS+;0L2i zYEL2lE9^OIEI#zWl+(kf|!Jb^>WkOnHL5LmoWNw+08x z+FNg+(m*yWK3T`1dOE+h@S~p)T_W5RMGA zS|;y0_%chGklj7NDy?of%iS5(!{)`gfE$hyF%iS&I+#H`sI=^{(PiP<0I`$sfW>EO zmfO^qJ+BX*7f{1~DkojL! ztL*zj`=xK1P#>CUc6$;FX|@1x0wk?vmO~lsX0VlmgX>8qyUGME}o8;Ib0ff z1d&gR99pK6Zh$aB$vJ)uDhRZ=whSu{a`m+@AdOsUc#t<3Y*bj|Fgb^lJrlRRn`w|E4N zF+gg}5r*gojfy2w{EX^y+gCZ}PzQ~&MS_Y^W~G8lEP>)sKVbc@h)IMZJ`Kuy*TO%T zGliL}@k|xLcAoMAOW~p26-M+3>%5WAskwpjO2p z*BBmmkdgh(87TG4Ke z{&*9!Wm@rUMpVQuaut=`D9@I5?*`WRCLG!~7pW8m{?afr(U#$ZB?=$vlDSE#FZx%! zdaK)7`s$v3#uD=BY^7q*yn*&)2T?nB1*&mB9j2#%(-=p6^$XEvy4572!bC!~>pV~8 zQYBFdD;I7I{tB>nv)@qb54$CZp6bbAW&CR;rY05(fuy>cnRl|DyAqH{E?{i>FS(P1~hzOX0+jtMj(d`%yiW3P0~ zAUYBt!fWwcFccbxkpYfD-bSrID$Ul5t4=EyHY**)#{HmwIjcdHe?jQ(-wZtqpTA#y z)n#7zFR_M-o3cAJ>13KhSbFab=;AV73`oOEDx^7$0TL7IKgdaS!CAU<9}$PYT+bkV zJRiX2b%!Ud!3=ou$`!nF&f=d4%FvTYwtrS}niWdcG1TkrK+e6@7?^km>}((Od`8lj zdQnI0@kUcNK6I(=v3JL-C6HLK4oYjLm~|h83|0sp*_+@ZcJC!Rb28XKl|)pIZ~CfB z51|ANNP`Y>f+i>N82a6yb>NJwzRW2t|WL zfeCDY&ojWMoSmMo8ixbj>o;U_>jwZjZT_I&yx?m_uSC#3d-{QvJGexzn+x!hj1cUr zSL3P;y=0Y@qB#xeJTCEg#^@#H@NXP^-#-l|#R%|60IXU}iXd)a^-r8A*SyP-TB+>S zv~hDcO~&!zLf=Ei|4=1B4ZE79{JuJUlrmkC3M$2ivnnC0zLP9G$a3^QLv&j425^!M zQ=c?%qy-izL2e!=MKi(Q%|-sR_T@JkU1ia$A!|AQD=!Pqas`~hVPj34Q4}~)(>{}y z27QADZ+zS9w|ue8T-XC-Ta2rtWw!dB`F#lRJf9qwCjXwCoCpaC&D{&|^FKa5E>!Bl zy!i>N6MW+~b{f<(+CKpKL-W}M9x$s_cRh4QkRO>-F;CsuHf{AB zBxIH;6sm#bKP|w2$>#8X!+ZxAMDM%iEwJ@=B#+n1f-uLY0 zc~0I!kX6+AWR7$rdR|kLJMi4>7Ah&9R7z%xZCnVu*P;T1T(%JvpmkAA0hbP|sH`i; z_DA;9u#%?H8T?QK%wzNTZbNi7JE}KeCy>v$4R;8Yat?&p4WHFIc1;ni00m_RQjKx# zDX#T$k4uf`1zE&UHlm7C5dJSsgb$#u{+@#8-dcWEtn`19%5^mzZ^XrH=NFDxx?z$w ziEzv2g>qyaY!Ii#xGn0IO_brsatU&Ad{m5{_tj(>C-_l>$^U%$sT*n|zk3J@#-}M_ z#feiiw}8Ep;{Yn`8@>I^=EC@(jA$v3PVb8k{E*{@k;X5Ji=8m*MFPS+TW$^<#~;Up z2D2wBFY6XyDuUt_&J12wGSM4(^=q29Do?DPoJzXLfx1Y0ynNBj!8PDVe{ZFsq2c7j z=460TInej=%j*Hav%8~D@P7L6_E0^6CmId?dVm=G{9gpQF(H}I`AAMk*T)wx6vDR7 zn%B`c#cUxM^cb4n+rHO20mu3fR~{SsX{&gUIuYtG%R6BD6|c&2pjg?TJq`CF`y6>4 zfbey*7N>7L?r6R~Hm)g@%ACMI2DdR>>c0@|rq&qmIBcHcz zylp)X4qc1g8C9quQpWVJD;+V0l11t=AqqD&Mw@iIuP!`*V~Uh!k67*bmnj|dm%QRe z?`@X3oCwrs-{ln}8GKgm-70ufs#}b8fT6(ZmNEe#_q`+EnT%(|w0MHokz8|wlGj+N zqpq87TM%C>4#r(GuRh2aa9@rdf-t%nu?dJb{`?8B8Nel7TucW7>Z!n|P8WcI$|BGC zL2Q>7=r-<(N2C+@Ja@+?A~tAUI`rlch9}sxFP#(gzINWyhAjh6KlYEw{KZR;lBJPk zDjMOBl-e=hGnX(>avPu>KOHXQ2O~E!{QbR-MmJe&SGichz+7O%$4(kKOyk+c(^x5A^%Tv5ADI z-`UDa0|EC_f7JRN;C~#ozVYfOQpe`k1+_k7R^X2KdRFF|cA=7pF%6&vGc)R|SEH`8 z{vb~eF0xaRy%mu2MBBzey^zsYFMDgaUys2bRQ5JduFLjN-|!xPXlCSbfB5OC??A3p zz27^9{lpDbr09{eeo=bM;hXVC!FoN1m9h1;YU9H7#U>#(^KxP+ScIx#v0KFDl7nZ7VX$1w5Z(x zun+|p1EGLHrpnsuFwmY>y1%y(agX*Z9xHfO(foD8FA|CZagMJv}ovg3JCmL=+-JU zHy79b@!WwyJS|AM#uMK||p^^VGVQY!cj!_rxnU(NJ}cH-pA2=MT7 z4oP8db;@gWjH&;lV@i+Jofbl4vtnm>?$GYHuH^WqhgFN1=UX^ebL6>B-ZKfopFaT; ztc+nDSlk*wd|y%f`ebR6CQb@}GxS9*zJKVhH)HtHsw>IVdz#k!|FQsDR7($n_C91l z=G=&+TF?NzUkfb|SmzHwZc4G+g?Qip*L)3r014Cxg7!Q+&Dn3&ZvNU3{w`Wtg=uEc zybcKJthqCkOX$7rfyPZW_WtqloDXy(s#L-Br5_Cb{Eu0G=t`4C{;hsc6H)+TFASx8 zv>G;&Zpx-bahYy`F?^i%Oq!T~%@b=p-OQ`l8G;e5Z_?+W_Kfpxa`i>jFiceWOIb=) z2E_6?V<)-9;!;H){#@yzhSiO^_T8(9gnFW6-y}I6Z-WqFPe!eHm7m#Ab#=iI}vyTD3{1Y#}PqStPt#E9caGXOcNs(GLf4C;OYcj-`=JyB7v-d=8J>F zP7G9R)~z}{`MmEaL^9d|I?5Gdr+A5NT6`?Z^AmXDL(wMcC;GECe|UX?VuQ7HcfBPr zVTGHwoVQ|m_Z@o0-yVvOMTb`-9nf^mQ_W~4r1q@eB*lx$kG?jPCCTTtTquAn?sx%F z`Q@f4sF*R8H5oWuI*l`m3mdX-a+mBGxpEHcS=knH{S0-86EhRa4@Y*zp@hk)-pwsi zV~NoOtIA$zKBoTiQ_}&6{hr^%e~TSil(27ZT$VV8GZ3_uLd7}lM@}6|gS$POkW`Nv z_yEzZ4e0f73ePjFkv&{b^WpHl&!h=$r&{c2PL`vFayQPx1 z8o{6=r_*IXId}8HqooasUgixq2@6ixlc1!1hGFWCf9$}d{l9q=b%?ka3w;{%aDuA7 z{KyBW7_zWQguh50A0!VR$9~*-TGSzqVzpN;zSol-L04Von*hs73Q^}8$|aTF%*I#k zy4WW7rj|WzA?Mw)68QBY63trtiT}ST7z?k8ta=l+*-5@PE+?{FmguOGkIRna0eDxeSHK<`8Nfi^TaO9VOaGt z^-Lx{p22^tLp!h(%nJQzUxs_~W`3St{Hg!*nDd#wf>!@O zTuD`kaR48ke}cbw4J=@fGSKp{1WJ|Oj}!7mE1zwPaK?Jrempob{0Q&gR zfABH0?NEnpurss`Ni_z`4@pYZ`LUNXH_=weOTS3rOGHsG9MG4|_$7j|U_4N{{3|`v zAJ{2o@Q22dfPWuJ(ShI?NQYYdp1z(EOBSg4QD-Y(QT@Z4;sI%7N|;H#wT51~5k6>X@ddaf_-b1?X|wodGkKO0w^r;nPRZWx7w?q?xB~RMdAj zeP=<#2+t10Z?tw8jrg=U;xvE^2jC9N^@C=_`?olJ0ek14ENC_r=NTlo<)NaiCAUIu6E^G&deCAw{HYRj)Gi<6l~I&6g$L!Tm}bhDplltro9&l4WB=P8 zbweDJ$}-hZpeTcv$)e{jQ3yomp_aZ2-qa9d*qc9_&VxR7ag0p4ik&>a3i8OBGZx+MR5E(FH2?6gSDD55_)cv+Be_nfvoQ%jI7h-D(^J{Ham%w2$ZW<5> zCsGl_{w#dS?%7eE;$Z<>P#{~Pm4Kn~e6Uegq0!EcrPj+H0J7j5K^E6RdM{Q+V#P^7 zD8^c{8R#aBxgxe5<4+E4hAw}466&Cao3fmM4!GEE)S6cStsdg{OUl3CdUCXXzzz&( zwk`P@e|F8+ZKSmC3lSA{kdZ~IX--mC0t%283HJ^qN9uVCtY+6V_B;4a$N0ytz110c>XBt4h^pVs;%4a6tOW<~fB8N+g zPp$!3m-u%L$-A^-8{0K#@bt%)ii${l$|p7tY$dXJpg!;qHtkGJ5e56<>ot)niT`0? zK+FkwrAbE?Ld{F$?lg7S*^1XgCAtmeMymiw6p=t&&u#yCdd~35CwqD#$s>mZIeGIr z9S(_t;CBLT`J@g5ENF>&U;v0CsMJWgCW+f~H`2cI(TK}y6_xuSxxRGss(WXe+bgmN z4l$?mPui!u5w&FDh#yX8(7932u^hZHAAktr@JPWSb}6^JUh@YuF;U!>3rN}Nli2L& zkB*sgq``~z`hT8fiM@%d0w3nS1`!37Pd#hI3=;def{-@ghfU2dIRy2PrT1Ppg5Kq!^u^v=!Q9S9dzS64j+CoWACjb3Y%Z&jF8si$o0 z0_a;)7a-u*OK+bh{WH>i6~W7{CyZ-)P%VM!BhcrYLo9@EzvYS(tqT-?mr~VlDoJH+ zEh-Tb@k$d!Ek(_;MHQs&v@Erc2yIF*GTA3{AW4xhYOZ#ZThx+;W+EnUTc9dg2STcR zL1oZEVMrLEWHCbSGO2xHW}!V+9ldRQ-speOFQxM7U{~Uy!BSn;RMe20sI+Cl(=w`$ zX{P6Z(;PaO!sH};>luZt#TF?5!Z%sT2V+>k;mPAMcz(T7x$z@=9~a++2HUSU+^;yc zoB>)I*HsU{A^QI>;jwq$?7=-|C?)dn$r8TioA&h`cH zmpDHC6gK?=NQv9bu0FZ)kJw8551L{5I)y%Q?#>_JhAQ|VWYAZygVPLm&%m1!oQNoQ zgh);mI+NBS(tWA=HDuFf`8cl`?mAH(6vzJsm<&z(XJX-}L`_ zU2}xok>Qu%zp$k)58yO)o?8BoM3&|%+(dqW>7h=wVT;So2&e)BssoFFjEsx`U}&H> zobQL?sap(VBB8Y5k5H7|{XfgULY~=jayk%Le<=kH4?(blE=Ar{(^n7A63u5cPhGVi zUCdm6H(T6PKbib}ZF-NlK^KVq;uVQ?X)|5?1AH6hYm9rWzHaqfphpR`5KEUxK-{;_ zAT1L=oaF64Ez!#fGLjN~m1z_CNVSM{!2RqG8WHVPOcRHyY6iurtN{5*Elr~?&RF4I z!`>BB*#LJknw$qi0lE?l|M*dB{l{$S1sf0189fG5dmtnScK0s)sDKv}HlfSp?z_W>`mNWDyws&3bln=eoUx&8Ba zh9*;TJ__L*4x%9icM0L^$vF;~d|#90xoE+9lOswY#Lu5T$eODZ2rwdmRNnm#hQQ0Q zwn2tt4(8w z$v+lt0{YfChA>|cU>k!~gd&HHR5)Ao9s#;s3RF|}t>*|9`qwQwaAUW{j|QW=p9mwv z(ir?Wu$rSCMa>`Hlj3(cx1h9-9Ylw@O#Yc6@PCx0e&^dvFV}7MmuvGEJ#K1s9SBHqh>soIe36{>GZpX9E5~l=N&tfse75rGe{J)ys<`CDabY zI}Oz8;RN`PSf_z7fy*2OY^Gl@=fJ@u2+1T>WB%zE7>6`k_vI+ZkS4frm;ce|eN)my zk*0&;tWEM(wM5V_mt2$Yt!#dhmB_gpnZ$5o#5?}bPhEJCw%>yADK$`&i`*Z4*_8mO z)i^yb(NI>lOnM@Z2+*X*%Tt0=y^G$VD-_3z6aBQ5(+!u=OL+Dt2&bh*#c1!Gi9s+? zqbvAIPoRr~T7H5OD?=1s%Un1+q(`5*83ytI8aK{rjGsLaOv?$Gh0a!HW@mv_K+0`s zXn2+edQc_v34=y?B_$0dC0s;OlRnMoLpI;^cc4Y#E(3VR4wIOmzAI(&PUFliE)I^Y z1H+twLee4A#-)qdjkEdTaTn(U1jTB>Z)1#~<Z_RHbZ1@=FJj)8> zc6E6T(qI^47dR_yD`pR^$qe}anIL0}{%w6?>$>~~I-dW0cN+blqro}gJJnUI$CK>` zI7W7Qk|?vP_QM!sW`b-zKls0ss=(Qj@PW_%XyGFap4oCYMfvpffJwQ2SApC6E2Wy| zLeZzN?=QnsjOoxP22EsK%PT118jZLJbG3O`{5NkW_Fn^^WV^`o;<%OcOlrKBTy%mu z^8YwQFy3f$5S$YNepIvRbirbd=CX*9men&4RVKloOS2*_@%vlh-o|dAhFSP^a05x? z48R4IUY>)o0rM#rEBD=XN9bR=_N6JLf%_9WfKpc9K*6j#WA!4O3Bw_~_9IB|^GC)x zodRA|=2oRZxDOTo5WY(n%-s}BGn~AFfHeCx;C5A5u>4Y)ybJ85^qG?qDzsnTmhx** zBeb$+Yq6Mhov(q(vO|+L6`mWtbJL2p;gQG9=rZe5!*W%w7QWR_v?{Eorj-=is_GQc z?ufW}{T(UdCb(p(p!Tt+vGk8!BBxe4gyA5s$#myayJ|yvtBEYH3Ho#{aO#t5KoUHI z0rcgEU%m0eFI;OPHnuY7O>_8z$)(o;+o}Se0#iZ|Hr$N8_YQE1@5C4f!OcBhyK`se*a{kqAKbkULJ^6vZNGM z8iS;wF|KFMvg7{BpOolgHJ&v$U#^#jk?Q_h5;F*S(uL2%#5oF?3=P+hy`WGEgs|Yz zB&xIEEK&YGW`#3t%4ar!otmka7yX76SWS(SFb{va{gn)<#8zA6oSzF12sjh#ak^%Gof*D8VDI#Ae%xQXxb zix^f#W@8UTJ& zfRV!0)#C{zz_v6u!~7}xh_9I4YHBOOgyaEDPLk!BGJa{ygtq?S$8TQ)^NQW)!vkaM zbE@v{8HmN}(5gvbb--jM>Ci1q)`!Kdix`Q88*n@tA|XusJemH{6?!qc={Z%P;h#+> z1uWhU{_yI@o6?|B2Mg z=dP^qeN{X}EQ3=;3%A>9V}9iYz4VhuNQ%diPBbsLFIA7+THaD7r79qKJ;p~F|B3G2 z;W(!JQ}%B@EC&5!JQImDcZ9CufRvlXK~;TaUU0so`0p)%r$S z!G$bc27(pwiD|BT=Y{k+Ydr@~RahC8>vup?L9gM*Tjle4h8`yR0dP$@I;H9@4nk|C17p7(#D?K+O(g1`ep5Y=XBYrq}A=b zShDxUz=1o)Ln}&zxI0LbsC$QOZ#M5Y%e#M3zxmgzk|QymRRjX5a-cO5muFGUy$+h7As_4-X1H?p3E967dn+XZ4uk4BQd` zN~BAgWAjbudiCR6WCiF7P;^&MG~=01rYmffVHdtSh^L9Zv^%F@Kk z4@)xh_?8Y$0OJjtDCEwHmsOx*!Biq{u(LLxUh}%R+fNNU=o-D}=m>&jk$+jJk(FG% z4S!zXrg6e0(tnyM?1fVe3l~h(ME*g;ss|^oU>LY>DW=5R`1_^}8nkLB6kWaU~`u z2E^9DC!~i$<*$bb4|(|G^PL@s^iSKhParK=PhhU17cN{jYPkvpWZg_3^~)2Az}wC* z6*$VmKvyQwVSL@dlA)^hDC7cl@>NTw6M=@+(iOu~47>dOIMcHPJXpam0f{4YNdP$? zV)X4bLopTk-SEDv{7FaG#er%&qyn}BQnFyOeDzu8rI&tGg#XLnEiG_1Z)*hlH++Q( z{Gt^`r|)~S6vqRlSaS=UI}J>jBncPY@J+VJvNj*l!?EsYs7;if)a7%Tv{V>Ql+_D*{1=}A8C@=18h@kb|MxsgcGFl8c?LWVr79>FZV@_w8}l*!sNk z{nbP^GWss<1^@EUrq<|hD-0Yl2&nD|>}KYC?94d1o%H2b2AauNg}j%3!XRO=6Xf-! z&ErhF`lQ|KiUDt_f~$N&<6OGL=o#cPPaViLQvN{bXB&b?!Vb6|yN`84gFt>Nkl825 z`ucA<4FO|6p`rtZI*LZ>ldmW&(HGhZGW-&w_rAi8K(y2R^Jh8NSmuWs0KxC<%rWZX zD*5W`?3{nMbvsnS8OoPGEJ}rmcwJW%6zSx(*YRrdc%E-^0I?#!U@<28WxkUFJcP&V zJ`_+=fSdV)4E@)ax~&l{7F~v9(czQf!9pZj`)7xjrO0Ch)oO_8y@=stpowtQ`71Uj zKetl(@hmBQA3~fUNl~{%i3y_*7S6F1l?ji>XC89bjxLLvQijcaH9eIn_xe8UbW|)k z-THd=VTuw_G!<07M`{Cn zPt~w$?ey(<6z|?;?$YP&jc2AR(#5;qw;MY#C5w}_&;|%#B5s4NK&hs22Hha%qlwPYRYmg~>*88icay0!ir+x{d{^LtIc*a+`Jn(9TH zGh2}wCd;znxn2Ohd++KC?MOMYz}I7-35-x%ScKAjx~P#@{54KVk{y-evY=9oF^q(JJT8UO=`0y^pI3wZM;xLuz%$G&T{j~WnoZPCT2kV)DBZ<5M zZ3$Qd94cy4=9_|+ix;WLes?{@VfG_bk%mixx#XRJ>Jd!f+RL|N%-W?tG0a#QsHibeUeeIXNU8q^4broP=@)%}ann&>QY#YL@z`Fgd^IQsd+Ftp_BCBfc~x z)l}bI)(k61F$;;{h0gS=>#mO{96EXPi$5fWRN(S%dopIHSy-h=5OgCR6}47F1Pbn12d>+rqoZ$HFq-bCIjBHMAION9ylN^lFq&LFZU(=e{#&{) zx67Z04itg9Z!5qza+{Xw&id$jehUu2CyGMbU6Et?#6tmwE_{UILs(y;Uo!ztk5#sS z&?l|UfbJEF{=jxaduF;7Hg9{To=KQuMJNgzL3xm7(;?FcW*>;>3MH@_#c1*1SH&jC zjY7a8a8D;A*0EVLOOqB6G;E<9ixu}uwOA~TUO4OA;?_ng6N@~NSg#*89RN40IQYpqO%3c!Ry}=5&CI5;(aH z3=GPkmXG*Llrn(=I4}qoDYvt;(`1xD^bvgi^djH@6+f{bU@KOJ!Yvd(l8rodc9J9iFgJr6r%x#2Enrfzh@>@3xC z7e<$P%H571E|VvF3{gpft^lSL6AvY~=vqA$*PA~F^PsWcR!(A@^HE+V!OfNK2_*$; z8ydqXH4Kr}e}mC+FEVJ*=rtDJlx>iS?Mh!rD9$fuP9%PoE-TN zz-MwLqdn7RO3myz9TH@_cV;x?+MO{5B=a*UEc+V|r-HRfZv+C7u=~DESAtXv6O?0D z94A#Wm~;;2)MH1?pjCBrn%}wyR{YwGQcP?3XTn_VsTQCps0#V|DaMsYAU44z5#dbZ zvYLp%eP67UIdHlyNyXuQs7e1&Z>Y%rz5N!cYt3Ye7_>euL*DWFcto#~BM2;Icz8JA zY4!yYjz%nfEFOh4;6IcRDFR-8Q8SHvY_?$UF45%TAMgCKH2{3)Gj_~7A=SxWS=cqD zmbA1W8Y_u+ZHzPd16*}YseFz@6*&uG0Zw3l!V#HvcF)BxLo2aZs8|FF*fK``L6q7-?)1==n30ixx#n74 zvL)}LsfdzMv~@&cDK@-^7?eu?1hSv#$%^#WV9lMZxm`Tulv!=@2p(#!bLhB zj&J?C>!ND8L^*IWXLeAg3y*#MTBP3ivxdg(r&yt%z7Ll`fL$^x_c_4Gh%^vd;SxAN zg~71`R^u5r`vtK;itY*w%I@eeO26(wAQyx@Um?`is-3|S_&x?)%yhE_XvPBbBM(ni z5w_nmmt}L4f|<@=@!8Ps+pVwiJokc!n_qj0(tnnGm^@J48tB=IXJTd5iK#hr&aFVn z&fY(k)WL6U-A1fcl|?^9{`M|XOgdhp2+)K2J7pQY2T4|2ZLUKceI?d7UB=NINu_k#J89aa>S@^^;O3J4=ZW_7|78KX z5I}*8N7(`%)&1rdPcHy$mHE+icV5S2yyS9eFOg13oo#rHm5psrE)-KCg;{JtYrLc_ zD~P>{fBW3KBVFAx0Dx%>$gclVndAs^4~Lb=4whjAyW$%G)$^@~Arwm-ttUE zni1Dy62o4JAl2-Jldmwj5+=D8TA0Lf^uP#hezNDkRVMP}f~~)R3I-*Cq$%n%c-dao zW`>yhNu2fuS7YrU>7yrLL^cpR=%eSrfXt_!%SDDzGO&E&%s-2VV*gdwp&mO>q9;rF z&k2A1NKRoOS7hbTrmu!PzzZT_gJk19y}?;Z1E}0Gv0pB}3LIZ5$Xs9VCnwiOiw$F6 zh~@ALXm5S7&d9PG)eYt>&Iq^GLguYi9hd4YpOf_hHmloC%WG-?-p#)&;NPz= z8O2NXKi?eL0*h@lN|bka#VW}7-K?*6$NxzHc?b&YFH=)H;(p~oN<~P`jh7Bw@bzoF z`)NgaIXVenE_!u&Idr$sn>*J}2Z^61VQ@jW3uK@kigshzkaI5tWmuwqWl*|D`=&r( zTp>gg8C}NF5a5ig+{?1B+eb(9jtE4IcRkXVOVTimnspUBYuiaS*t3+Ekh9XyfI|Mh3z+mvii~WI<;gYUQ3G<+iju0P7Bo`9rc;1q{gD zp+vWI*i0Li;?Q7z(I?B#&&^3v#YeJr@^v*WAKknjsD$7`7-t~!30HI-)6WyHrkH?; zM*^4yf0+HJD*zHj$OSrH>oR$%aS8DAdjSxeI2jw5b8Vk}z>{j@(djvewQDjGV;=n{ zq3K-Z$XG}I%52|fJ31p*iW20JG9H*)Q9x=3+a}OC<@*|&zAQE zQgzg1uzx|0+ND|d1!%X&ve{xKjZoyKivmn71=D*V7AdX#y*&&laTGIX3|ZgBMykqMXVmJ473Y;8 zY_Rhfs2>Q{eJwthyQHk?JCXKkVMdSB{#_2;21oTSy`>~_@&TyFr18B2vg%&gUn~2E zz0(DURZPUDJ2r-V&>n_8!RUfu1`0L%kv2t(<{XkBV8t7WD)A$e*2B!$CL_suvyY`= zMd)@NZS+)n04E4BuRVo_$;SCcU!H1dOG|oJ&R97x2c>bzh5UoE;e^PHV>6&Xd;SC; z-X<(`c8!3>s4PUeF_(KcNpVH^cfJzD9GNRmrf8^-M2Btf)_7B zl!6Oiq1F7ih)R_%#M3a2G)anMRVNw)*vLWtdN)8|^n)Xi^8exMtiz&;x_^I$MvxXz zDJ4W&q@_d&0qK+$Q0eZN0YN}YKvF3I>F#ckMna@px;tj(ZhU|5z4y6)Tpk}$2jQGO z`>eIscYW4c`4HiUfl{|!L(i;_mtOZN0!82%^X~TornYUZtu;_j)zxE?MMq(NRQznq z&13o65^&ZNxEryk<{SI`*Zb8g&cjQMa0qCa#ju>()u$EbFot9qp)f{SlF;-FOap^x z;^c0*l^gK{TI{pl>bx{Uogd6FBc5hi-N&Mw`+YFrHQ4N8Z_KXEn=J5!b58zxo^#N# z<(R+vuRJilzUOT<@sGTtHrd%rZ95UDlvWLWy^jYg43UbPW9#o_kv1X-#$x8*7Y)r9 z-QJo~CT{XTR53L*_3;sNLjQ+XPwhcsy61T;xPKvN(c4Z3UoKvL^{jcK#+WDmN9dhf z_f(s52R>=OJopy&P;f*Hr9-Hq!t5JN@wVwaw$iaaO*kNCJ&E-*aK#5QuKL#})X1A>E zqx}lr;)U6c_2Apr?;p7lG{CV<%8e>(U;cn@-O9;9blw*neLv9ehv|O!QbY6Jo!CM< zr3XE|k9@s%R8?WwV=IFrQPD;g_TbN>cHC%EtPF8hVeCTw^)xIZ5b?)F;U@ z94xONgE4wKvyd%}J9?J)UC| zYH21i|G_fWY>SQXgK-W3S(u<_|CtFLLUV{`{=TG_*Cp^yR|mb^nC__aRWUkcR*Ix+ zajP&dZ?ekfu9Gk5q1h7({-`HT%RF~?ZEcOgBP~5Wo#DxpTiEN1RB9m4{nYBLbZcGc zcx+WP`PGWWmcpO--^OnARrtMd`BPR!H^gED{MOTBsB{q(InPKRMc2LDogjK!{d-yg z;p$h+>bq}K!w($0`5lGqw+%44FbWLnwN!l|#T3y*trb@2>u}z*F5=_I8|Io{RbH$; zk$HqvCM>{fVLDy?i(b4?7IOk?mnZp20`uuvIWQPW;2a48ZUVzi$69LYJ)V?Rr$e{{ z_?qLnv-Uj6J>UaPK2h<11Otb)v5eF5r{8%FbKsTy=nR@EQYZfG+g!9-7bMJwIQNS7 z*O9@Tw+EMLZeCk=yIX1*4+a9atChzv90cCCBCbf+ec^ z-^#?SZ>TD3e9_`J`L<>pOo!Om*f8Vu*zcs$*3@Js!-xJUW^BS_z=w?+xFuhdT^~m$ zr>7Nt?M+>;II~^_gSOF+tMH89<%`JQ%ZxkUtmYGkC@5fmaG?3Tew#0pzuQ)2->y2$ z!rwkX7%swg9-!09$?Ldcch`vV*=aEC3JohQ$0jSSV!AWi7gV(RySfX&VL;1ZJdmVf z14M7O&B&8yz*;tugCDf0ZkeIwuDzA1SYk`^>IhL#pWla^& z^HH=3D&-if>FaCptqRpwpN=jcURYGGzLC=9U}cY)TD~ZE@f-2yei0Gxcul{>RJRG0LLzb(=+BB;ew)Dr!FIA_&wAL_q<5`B#rp(Qa8n^w~(w-0jPToH{i&Y~@_RTx<5@qEM>cWh~&B_|SjO@%5`83uu>^EVts4`F>7I7FX_?`pVOIaSI4Q< zLr$F%$iwLHJo)oSby6T-F-o{vI-BU{e|WYg^np?K;1oR1OIGzkWQb3bT*m6((rM?3%nr?cWz&@p0s z@Z&w|=_a2i?QDy&+J>;9KY#w@YYy^J2(2m3I$cs6A#Xo^k1GSWMJ}55qVOO~_9%jh$>IiI}4;tl%zlG~wOAiH2T7 z{{u%2jkE$qE&QLLm7l5_Mr2T%z9&nDx-nl2={n!AMe;P0)-1J!eg8k3*hWo#@#Fyd z2rcJw>s2Xg9v(8UR@+Ru?#;Jek7^qqN1YGC#T{1Dp9N8@)Ja;Ga`VUm187g$lAtBM z&FdWWYa+zHW*&-0olc(|w;f3!sCHTjPOmceUyJXxiTSO#_~lWZ#|$n8dO5ztc$>^D zIO`!Rz|ZS)hbW_*e8yyy>#iheT3uZdZ<-}F4v22-O@7 zE1Z)>zzl2b?}2{@(iePW4Ce)!9Fra642inRw|)0cCF04Z0&w8QFE|+vo-J zK8Q)hDlzLOYn~h2J-AARs;nn4B=K7P11M(i<|2V<9ten^qMNS zFxghVWBza{9~BQPn5@J_-7!)p{A6fq>|t=?qI{WDh1rr-4L0Tn0%Izm zs7uJWvTbL5{33+CxFNbnBI&!&>XSL$GP95}wkSKz=0SpsN)Vtre$gt-&7CMQX+Ld7 zBQf$Z62Mr@Pl~!+_jAO_qt6asn6r`1=M-OQJ3u_NK6KwV>&7>aFOeV7?G{$1T`2|z zZEu3QGUDUf-aHfG%-MZ$5w3P(wzg^Cvi@1orwqOAYQ}3X#FQO|FFi_(^#xr%}`Nx-*;kk#6}La4rm#x)*zY#mxhy4AJy;a9>W@HH*b2 zKbA1>`3!O@s9}gO7WDu}3kxhUGgtjB+sM(oFwjBF_LYvpy)ynNiQ0liy%%x{yuNv~r_rDGVxc`DB}#9jgOrXv}K8Y#xbId+(I4_YO-cS}b0He)_hvmX&{ON+x)3&wP7pTq<`C zuQ!OmD0#KgcQblT=tKdpo8jAtU1c;;rnRqd9OXAUvvfD0?2~L z<3{v&Skc`~hh@F--1NWABbjhWFsTRflmuy9UoccnkPu~5shVFL8bvodjTMP)z!(@T zVcr{XH=Qj3h&)^S35%i`QwvYacm=XZd9a-TOtsX#-P60jQxDm%kys0?uLy0~*TIei zadd$D2X6kLum=gQ3tP*lLTQY7{?y~J@J5Smb?Un@puPDn-JM%olE--rcf%SwrA9c4 zIsXPcjE~#JeowhGRwrhGLnqW^pS3@^^w zhLo~$MBg(yqAxJ1dq+odad6(;E^?_6UXt6Px0D{x5a|>$d`WFfv#k!Ju@(^4Yv2Ar z63ySy?B6N1YxEX^CNw$XXK_

OVh2kH2^gpWo!ssI`_2QO~2M*bcaD| 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�vkJZ@M{ST8-UrQ|lDcAHDB_kUODcgM$l``^2~ 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 literal 0 HcmV?d00001 diff --git a/html/pic/map/BBF.png b/html/pic/map/BBF.png new file mode 100644 index 0000000000000000000000000000000000000000..d21f9b80af29be215c44c7938ed758af45ef7948 GIT binary patch literal 123 zcmeAS@N?(olHy`uVBq!ia0vp^!a%IV$P6UgcNDY(DYgKg5LY0*V^LbzDV{_i%fQpc zF{I*_>FM2^3=SLz0^G|@+zVMwYaco9$g{^tX^DXa6aP-GS`jw)gyVi9zh0Pg|I+;z S8Kep_l)=;0&t;ucLK6V$l_7or literal 0 HcmV?d00001 diff --git a/html/pic/map/BBN.png b/html/pic/map/BBN.png new file mode 100644 index 0000000000000000000000000000000000000000..e983887d9eb63b21a0cf41840a5c7f6b33135ebb GIT binary patch literal 186 zcmeAS@N?(olHy`uVBq!ia0vp^!a%IV!2~3YL`o+EDb50q$YKTtuGb*U*woD%1r*Hj zba4!+xV86!A>RQ79_K*q>nkL*{4O>Aj$g^moTbTPuJ-%-W~K|}bJ@kCPIl^KUSpUt zr{l&8_N$W;>Swb^C$8J%_)O@w;oQPIQTEcgRS}Jrsix0nOr6ObmRYwk?z3$7^|G6~ g&zkS1Zqv!XXKgL`Kq<^y3}`Qdr>mdKI;Vst0NqSLU;qFB literal 0 HcmV?d00001 diff --git a/html/pic/map/BBO.png b/html/pic/map/BBO.png new file mode 100644 index 0000000000000000000000000000000000000000..d3dba3ce7b3d31512eb5aee909b7bb53dfd1f4ae GIT binary patch literal 123 zcmeAS@N?(olHy`uVBq!ia0vp^!a%IV$P6UgcNDY(DYgKg5LY1m@|212*O?Q6ECWv$ z$B>F!rl)svGB|J?2yibqaW7;!t$pOYBhMZqr6mRyO#C~!YDL)G6OQ|d{CZ)|{Y&>> SWRNPzPzFy|KbLh*2~7Yd5F$zd literal 0 HcmV?d00001 diff --git a/html/pic/map/BBP.png b/html/pic/map/BBP.png new file mode 100644 index 0000000000000000000000000000000000000000..05c1aa34efdf9677203e7d5a08b11065b513c2db GIT binary patch literal 802 zcmV+-1Ks?IP) z000W>0fLJSS^xk7)Ja4^RCwB*l}(EsMHq#jw?4Z1V>*+NNeDB__^}KGoP-fv3Sw}P zAS(V2H~I&~AK=23AO>8>xNzpq^zE*XE*D*s3*I=nW7CT&=(o-}b9?p` zz#7iZu$DP+xu)(JJbB)wQuE*mpN@1Sq^Ggrd;b6M2g9aPa=q->UjJmA}D>$cJW|Iw)beg*^XloB0>gZ zPzI$@nmK6>pZ)u1vE;#f=9#LZuCW&9s2dKS@Y_#R4auAG_0lMdNaqS5P}fuyN|jEC z4N5Ux0h;$ep|0tBoI`7@rD--e)|N|NUafiWlwW@Y49CYsNeB!BAs~Xa8-QYwd9 zLxB75^4BXx*U`4rHO7z<9@u|R@`a$^JEgBzg8gm3 gt^pAs)@u;)TW(n@Z)tB>ofydPp00i_>zopr0CtuveE z000W>0fLJSS^xk7)Ja4^RCwB*l}(EsMHq#jw?4Z1V>*+NNeDB__^}KGoP-fv3Sw}P zAS(V2H~I&~AK=23AO>8>xNzpq^zE*XE*D*s3*I=nW7CT&=(o-}b9?p` zz#7iZu$DP+xu)(JJbB)wQuE*mpN@1Sq^Ggrd;b6M2g9aPa=q->UjJmA}D>$cJW|Iw)beg*^XloB0>gZ zPzI$@nmK6>pZ)u1vE;#f=9#LZuCW&9s2dKS@Y_#R4auAG_0lMdNaqS5P}fuyN|jEC z4N5Ux0h;$ep|0tBoI`7@rD--e)|N|NUafiWlwW@Y49CYsNeB!BAs~Xa8-QYwd9 zLxB75^4BXx*U`4rHO7z<0_kMr0ShgHF*cm@j>2(eRL(e^jXAUN2`qM&Z=x7^h zhNb_CT=_C3_v;Ux)z_X b_ZKm>?h%=^XGd8W&`JhRS3j3^P6d3Eoh**|P53ib}>#CX=$>c|n{&S1@?G`njxgN@xNAB#}qg literal 0 HcmV?d00001 diff --git a/html/pic/map/BEF.png b/html/pic/map/BEF.png new file mode 100644 index 0000000000000000000000000000000000000000..eae65fdcf457f331831a4c594526125ff5019e81 GIT binary patch literal 220 zcmeAS@N?(olHy`uVBq!ia0vp^!a%IV!2~3YL`o+EDb50q$YKTtuGb*U*woD%1r+S_ zba4!+xV884PQeBR0oDsw&)hg+q;n{2MWfJ~W~~_uIZi1kshJuuA9-4w^Y8gv!`%WG zOLM;O3{G9!a&6UA13iz|>a$#0Hs-1wGn>tD`|z4nV>M$L^{qlb=A4;lox7szZEn#G z#%KE0$8dF-{V^yrV(oKDX!VgO`2BQ;Prq literal 0 HcmV?d00001 diff --git a/html/pic/map/BEN.png b/html/pic/map/BEN.png new file mode 100644 index 0000000000000000000000000000000000000000..bdbd0188a73432051751a255c407d15985468a63 GIT binary patch literal 201 zcmeAS@N?(olHy`uVBq!ia0vp^!a%IV!2~3YL`o+EDb50q$YKTtuGb*U*woD%1r)6I zba4!+xV884M&1Sk9+!*$&l0$$*cK!ixFvCKOAz3aN^#mS*W#W3`;tlQ3>Mb}AFJ+} zzAcq)+21!AOm^GOec5<*S#xe;)XhCBIZr=1Yvr5z+>LwYjcd!=cn#`rN^CyUHk0*Q yLe~bZnYGMof4-C1c|rX4QIQ<|&nJJKFVdQ&MBb@0D~G)YybcN literal 0 HcmV?d00001 diff --git a/html/pic/map/BEU.png b/html/pic/map/BEU.png new file mode 100644 index 0000000000000000000000000000000000000000..b1cca5eff58420d162167101cf8c1e6763650fdb GIT binary patch literal 215 zcmeAS@N?(olHy`uVBq!ia0vp^!a%IV!2~3YL`o+EDb50q$YKTtuGb*U*woD%1r+S` zba4!+xV884ZqWt>9@Y!X=Wd;vY|&zUaY?y)TLO<(Rus3j15e|Ge{*M_KgsmKYTNHS z7bCQnY!#aL_2LeLi!2JszkMWc=W^W;Ow*1wnEBAe)8&)pOk4h20m9a|o^0THroTG* zTBPabLq%t8&UlI4Z^(XTo1OQfdv222nj>56ye7SG?cqLTxwfC*D=%-#uk|suKu0ln My85}Sb4q9e0HKLd@Bjb+ literal 0 HcmV?d00001 diff --git a/html/pic/map/BEW.png b/html/pic/map/BEW.png new file mode 100644 index 0000000000000000000000000000000000000000..a8a9111067a5c990c264f08e65a8bf2e7cdbde50 GIT binary patch literal 706 zcmV;z0zLhSP) z000W>0fLJSS^xk7bV)=(RCwB*ls!)sK@^6c`Pz?rA;Ex&Tw{npj1~|PG)ORNqQOpM zkF48A%$^WrSM9;Kx-Q*3Pvj@1V{D9rE~nU@zxQ(7&uoXN#v^ZkHWiPmHpX-Z;9 z+rWShNwh{Oq(BIOmDPc>omfO`gur{e!+WmWE`EOeZ_XO;agM4Y1VV_*ftb_x5F%oM zvZSu*+$^@foQ{=@jgjYsfO9y95D0-Z12FGAjUqKa{S>T5DYQmw(li#F zBmjA9fHOhL$P9tHj`6kQ+3Qoh)pWZEfpgR~Wl67xwXq+ETBp`|=@w;)we)(FC1u&S z$7rUPiti`)qa*~RL`sZ72&4p}LzP45e=}!RNK=eKsklWG);vR?Gh6)nbR4Szya%YN zNIra*lB%Yn83WiodMrzLz*&qxA^hl5Ubg zF{I*_>ES?L1_cfWM+x~FA;;MPN7cf%b}p*ES2n5o7AK& z_6*DHM7GpG<0`hG&$gSNw(Yy2mUiHkuX??W|F5??M*7U`I>sAg3@w4~VeoYIb6Mw< G&;$U*&`P!d literal 0 HcmV?d00001 diff --git a/html/pic/map/BFF.png b/html/pic/map/BFF.png new file mode 100644 index 0000000000000000000000000000000000000000..14c0aaf86516ab4224c10e3471ea5dd5702fc8c3 GIT binary patch literal 139 zcmeAS@N?(olHy`uVBq!ia0vp^!a%IV$P6UgcNDY(DYgKg5LY0*V^LbzDV{_i%fZvd zF{I*_?%{)+2NVQc9lbXSM{g9q+^L$&y|YqGU+~CT@%sl_p5$9-_x3gi+sE!Y{kC)J jv11Ekm+QT&seV%Y&p|QV`@Tmm$W#VTS3j3^P6o8cIFrDtB_m74Q8I~VG2>y+G3b@`ai8QhK7gE zC@mAaz?-t{P5acj5w{w*)>drnH8192GYa0eAyL09C+YOFB^%gT{xc`dz4G)HC@ei) L{an^LB{Ts5wOBOh literal 0 HcmV?d00001 diff --git a/html/pic/map/BFU.png b/html/pic/map/BFU.png new file mode 100644 index 0000000000000000000000000000000000000000..9006f952dd34e7e5d26111e19c2ed0156e291e1e GIT binary patch literal 915 zcmeAS@N?(olHy`uVBq!ia0vp^!a%IV!3-q3RtSA#U|?nl@Ck7Ra{vGTzhhC_pZ_<3 zYzjebZ7qc+jA|bZ0eXgji1OPeWT^vIyZuOpX9Btch z+)}qeoh|j)ie5v*LuZthiCy4LS@x!V>fDH1jazFgHujnq^RO8OZ`+V4Y;Cq7H96=8 Yx64iW%)|?e_JVxk>FVdQ&MBb@0En(U4*&oF literal 0 HcmV?d00001 diff --git a/html/pic/map/BFW.png b/html/pic/map/BFW.png new file mode 100644 index 0000000000000000000000000000000000000000..c5ebf70cd9984866370d83b3c3939c6afc9f816a GIT binary patch literal 641 zcmV-{0)G98P) z000W>0fLJSS^xk7Gf6~2RCwB*mAh^fF%*VB-)3fKb_=wR!ggs8MMy!Bk_rh4A}WN0 zAQcKUJOm{#KtaPhrHD4k?p$n-Q_Kko(I(kh%hJdm9eu~=|BtNz;P0;^Mh?xcLvwHp z9K8NHKJv+YS7w&+>c_N&Dj6EJyv5aMM0jEIr3`Q-6mLLEykb~N&&n$9+PcK#2z0Ao&?W6ZiBV- zJu%`vDUp&aw{;)j9M+;W-s3%sw~t~q^EpL9O2kNvD1}mJw*}J}vW&81GNCM)PRVof zoc%|-&x&uIBg^P}yqEkZV z8?hRY^t=~xmSHW1Iv@LB**Gck&yv7g$ed6i6P1#;tuv~I}&U!87 zRSILUR&-JdrCA)^!CKKEB@xD$n`P6`_foL5v9{^|ZSSdTRx3idzAh?eGoF9CjkN$; zOQQ^j%yR((MM0LKwRFO*q1gL?bCjjXpcF-cF*ns3Vk9#0`|I%bS>|&<>^}6GQa6^2 zk-8>EjKMjay~TWaLP}Um2qKJg6oo{Fz-lF%gHM`c=w10QXAZ%TWjbbDO`8(Vj bUYv0SC`}2KsaN#M00000NkvXXu0mjf(})~( literal 0 HcmV?d00001 diff --git a/html/pic/map/BNB.png b/html/pic/map/BNB.png new file mode 100644 index 0000000000000000000000000000000000000000..a3d708f94a3363d6bb8906327223a0f10b50efa0 GIT binary patch literal 206 zcmeAS@N?(olHy`uVBq!ia0vp^!a%IV!2~3YL`o+EDb50q$YKTtuGb*U*woD%1r%)X zba4!+xV88EZr%n19+nHuJPj`08Ubnx6Y|^|+vGa!mMw5>=}&$Wllk(?Io5`K*=+Zf z3{{sDGCV8gcG`FunKsy-ks4xM!cX*(_8%N363_MWFNk5x#fR(^)PUyKDx!g~8L+&t;ucLK6Uw C_D&xF literal 0 HcmV?d00001 diff --git a/html/pic/map/BNE.png b/html/pic/map/BNE.png new file mode 100644 index 0000000000000000000000000000000000000000..485f4cfb69aa3a570655a12731a5666af1c51a26 GIT binary patch literal 255 zcmeAS@N?(olHy`uVBq!ia0vp^!a%IV!2~3YL`o+EDb50q$YKTtuGb*U*woD%1r*%q z>EaktaVt3`A)z2-N?GW%R0TnUonA#o6If@2-}VfdSNH4v|N2zLx=U|>N)*mVsj;!O z@i`|>lYd`!zt(4y-zSC;b;)Z%IUwS&U(nj4NzecN_V2uSrs>#w1Cg|Zir?)v)}1BB zQ=K|gvRCG+8(zC~z_01rrDJ}7u3b9gXLC&`TRqJzLD5b6T8_h-xij*XrE)ynG)=E; xQKWa@+~4o*Rn5W-k~6;FJ)ZKb`2XMK44k4Vi)QR?%mX@}!PC{xWt~$(69DrdWt9K` literal 0 HcmV?d00001 diff --git a/html/pic/map/BNF.png b/html/pic/map/BNF.png new file mode 100644 index 0000000000000000000000000000000000000000..d57622cf0319fcd3861256818cf716a2f47116d3 GIT binary patch literal 218 zcmeAS@N?(olHy`uVBq!ia0vp^!a%IV!2~3YL`o+EDb50q$YKTtuGb*U*woD%1r+S@ zba4!+xV884Zr%n30k#M6*A2vudFsTp9-PtC(&Wj(n#j*>?O@Y){A>Nb>L+3h*EimM z-gheM;M!2n#Fz`${7o1?+%TJb+-x?_w)V)=X+B97ep;G8iiN7*ZCR+bZM$b8`;7f> zBsQPnGv?O0>T`HW$~WE>X}3O~;H}*le5T{+jAN{RpY~4JHqUZ-;X_8|?y_`yjq)2n PcQJUn`njxgN@xNAXy{XJ literal 0 HcmV?d00001 diff --git a/html/pic/map/BNN.png b/html/pic/map/BNN.png new file mode 100644 index 0000000000000000000000000000000000000000..f98ca9ffa4df113b42ce85546d73681cf42da880 GIT binary patch literal 200 zcmeAS@N?(olHy`uVBq!ia0vp^!a%IV!2~3YL`o+EDb50q$YKTtuGb*U*woD%1r)6E zba4!+xV87{Zr%n19+nH<%aRx%=-48MMFwhf>I>_uwmsG0WoW34O<2R1|26t{U-6=! zJejG<%ldg|^O+sqvT4`Jmefi12}f0`{ccU@JZmPo?ZBVZ>@$YZX?zjQnukJyYT4HO qe7Cd6IsT1E@P@k0mUZV=R5EgHHF5pLwelR$6%3xPelF{r5}E)x$w>16 literal 0 HcmV?d00001 diff --git a/html/pic/map/BNO.png b/html/pic/map/BNO.png new file mode 100644 index 0000000000000000000000000000000000000000..38effbe5efe7944fab630d426d26e0d6d63e5b2d GIT binary patch literal 209 zcmeAS@N?(olHy`uVBq!ia0vp^!a%IV!2~3YL`o+EDb50q$YKTtuGb*U*woD%1r%)d zba4!+xV87nLCyvPp4Nx^V-LBy$Q)P+LJmhx4&FJyP zWAm%|&%C~Nfu$s8=E~%5U)JcuXHp+8TOwnYAC}3LzHZAxoo(AR6M4_XUpwZrIW4W} ztU>dp6_U2hD}Tzm_BW#@Tb=hS5dFpoyL}rRF{pU2*s$upMpmP{JUHx3vIVCg! E0F`S}{r~^~ literal 0 HcmV?d00001 diff --git a/html/pic/map/BNU.png b/html/pic/map/BNU.png new file mode 100644 index 0000000000000000000000000000000000000000..cc823eb3bb282cea687140c3e4a6639afb6c1292 GIT binary patch literal 214 zcmeAS@N?(olHy`uVBq!ia0vp^!a%IV!2~3YL`o+EDb50q$YKTtuGb*U*woD%1r+S? zba4!+xV884Ucm+h9@YoTvn#~rO^&b#Q(K%M)Yp{E&u#6%(>USZ-RbjBGd-}{_WRDo z2<;_Xg(iNzxWnKgi$d~mAIaOfTsH*Mw4)7XJ~Z)k`D8iMmj70Ou=TAc8@Qh7uTH)e zX}bAP(OH`_USjtfvY**z=e_8jo20hp$QC=VN$*>GxDQ#b?dSgxP}nElWx5XNCI(Me KKbLh*2~7am2T*GO literal 0 HcmV?d00001 diff --git a/html/pic/map/BNW.png b/html/pic/map/BNW.png new file mode 100644 index 0000000000000000000000000000000000000000..076c82aabae65e8178a59d84c8c103cab422c67a GIT binary patch literal 699 zcmV;s0!00ZP) z000W>0fLJSS^xk7ZAnByRCwB*l*?)qK@^6+x^?$-5=93=CIrbvF-U@v1Y(FL5hQ}o z;WOm5yew2)B#K}b35ts>+}Ime+0XQ?s$6tAqa;pdQZ!8$bl3Nv|39Y%uroXTbbf|0 zm*lcb@oXg>OUta%+#37=~d#GG$m;6 zb;!W`5R6iTZJvihgutI=c2@s2TjD)+Orj<3OiVC2 zNgM~Cn$g#~pOE7A)*#QubKX4{3cRc_A002ovPDHLkV1lt=IZFTl literal 0 HcmV?d00001 diff --git a/html/pic/map/BOB.png b/html/pic/map/BOB.png new file mode 100644 index 0000000000000000000000000000000000000000..a3235a3499cdf049460998c0a88dcc5d45aa2dac GIT binary patch literal 127 zcmeAS@N?(olHy`uVBq!ia0vp^!a%IV$P6UgcNDY(DYgKg5LY1m@|212*O?Q6EE7)` z$B>F!riTN085B4i93|vygdArF990Y3+PSFuUfHDTlXoRbq_&>2pP9pBwN~q?{F@p+ Yll7W@iN4Etf%+LdUHx3vIVCg!0Or*ti2wiq literal 0 HcmV?d00001 diff --git a/html/pic/map/BOE.png b/html/pic/map/BOE.png new file mode 100644 index 0000000000000000000000000000000000000000..0bafbd889599f3cbb81ca103e95510198057bea5 GIT binary patch literal 199 zcmeAS@N?(olHy`uVBq!ia0vp^!a%IV!2~3YL`o+EDb50q$YKTtuGb*U*woD%1r)6G zba4!+xV884M&1Sk9+!*$(-tK191-a0OAy$$V1c6=%k9p`|GxOCS28pd&o+!ZRQ)nS zJt5{>pW1`u*FN&mxmGvCmQ6i7d)5Y@duuL-l;v%i(3zW?b%Wva^j^c$IWr;?c$aak vo^;dv!mRh_CUVzqjP*JA&1n9b`+FD^=V_WhS@mB7=m-W+S3j3^P66jmvO)ZZ9dp9m?miw+SbDnp KxvXEiu{v literal 0 HcmV?d00001 diff --git a/html/pic/map/BON.png b/html/pic/map/BON.png new file mode 100644 index 0000000000000000000000000000000000000000..cacedb729171f7d4c72ef2afcafd9c344578ce10 GIT binary patch literal 199 zcmeAS@N?(olHy`uVBq!ia0vp^!a%IV!2~3YL`o+EDb50q$YKTtuGb*U*woD%1r)6G zba4!+xV884M&1Sk9+!*$(-H(*BpPl?@NMLX4!EEo-1PQHVSUx|$uF!x`z*P9#9Z)b@bjS9KBKaa;Iu8_s&W&eZeDV#qS?zd6I9T-P_w7Y#+Pp^xMv< k$Br$GU9R`8rus?oKL^Ed@B1FPAX6DUUHx3vIVCg!0G_-rH~;_u literal 0 HcmV?d00001 diff --git a/html/pic/map/BOU.png b/html/pic/map/BOU.png new file mode 100644 index 0000000000000000000000000000000000000000..bf7909733b757262174866bf75101f73633c20ec GIT binary patch literal 915 zcmeAS@N?(olHy`uVBq!ia0vp^!a%IV!3-q3RtSA#U|?nl@Ck7Ra{vGT|MHZ{pZ_<3 z?7<9bYikFy^G4k^6hmM}yxRw$yZt;}978H@^`3L&J7B=U?6`XWqyO@&Cv}({ZQF3% zQnx{!E%n%nUPHq}XOxzSUEobw_NIO6+=yF^TWc#e_L>*-uo(q!+mI-1ZMGpbIp_v= X*i0v_+lxC2K_TMl>gTe~DWM4fp7A^$ literal 0 HcmV?d00001 diff --git a/html/pic/map/BOW.png b/html/pic/map/BOW.png new file mode 100644 index 0000000000000000000000000000000000000000..5a987e50b297b996c20bf094ddfbce6959a10b75 GIT binary patch literal 640 zcmV-`0)PF9P) z000W>0fLJSS^xk7GD$>1RCwB*mAh`#Koo|*x!GQOw?JF)AgpN8Ac~L%iINrx5EVi~ zkO~0}ufuyFUIe9xHhb}9W;_%=Axo6YdPgH!W9#TU=luT}D**WOYr)8+Ido}GPJxGy ze~*uRFh7);WxV`x09K<6+2kPRc1sAn_&yeEIXlBSdOx1IUUPoVa?Rq^D6EyIF}T@y zC*(QPDb0JYIhiA`hPV3!Yplf>v_dI>XQyMbO^Mj!1HqHv$%lQgmcA!O zyeB16lHvXnN`JPBD<<6OY&UG_MW!m=-rK2 z4M=+43pvZM7UwVqAGn;pu2w9UTwJi-N_&;U z7_1eYltO71Z?9pkXpoW!W6agDY3O@tSh}&d>HpW>Q`c-Zgm8IXRLo{P{kV&@09wnS z3`OR-0D+<)%g|aTVP`3h-s2o)DKaQUQDDqfw}u#rO#J*Z{QE5PIUsf)W=*LpOU6iD z6C=jp9M104`R`5`RHu_&) aamHVnMHH6OMlI+70000 z000W>0fLJSS^xk7jY&j7RCwCOmA#G}MHGdg+_!$99#jO|@YnkLqj5a>FbYtAK{d#)*m6@V|kt*K(x-jyOS z=P*-BOj8}fHD;v&PR*5s8O{--)wFV^6hbgFE5*Oi!~ib7(_0TH1@9Zb2D7f3CYFVq z<($ksf5V;Ew0l?cqPhU*$XWBO{ho1TS=w%1XkKBN`1P^QK46}evp_jBO&kt&R8CH8 z807swn5`H;=#7t%BSr(wGwX^OU1z%;!$6GT<;?2YjGX0tYjQR3Tn%6RJM`Jt>`sZX z<(xCig7?;SK)8X~guQPyHj^3SsQvzB30=o;7dm@iATxnVVV)UB=9yA%)LizABPrG6 z0_r~NN!{eLn$`JNINyp<3TA9Jc5)JKV;Vq=Y`5mUYLhn`y6#p@kkjYi*xemnhgm%o zBzHR#W6iAz(pAo$WAOV=I(tvm=X1EDn5u_ZbU5g6sAqVbX58@eBfaw}IWx~nNu}s0 zrjPV@37zhLNlGlsZSA{4PL!3We^^~cO04T~(*iz_6Tf_~dmmE@&V^%{=>Tx&b#i9A zwHS}qtUqhZ#QKzbAJX@ZSH+Wy`mf{p5BTvBZ-4UYnz0A;>>2+9{sgtvHv_HETZ;ey N002ovPDHLkV1ln-S6%=B literal 0 HcmV?d00001 diff --git a/html/pic/map/BPB2.png b/html/pic/map/BPB2.png new file mode 100644 index 0000000000000000000000000000000000000000..3191893265c6d4d8fb5e83b3db678112982d7d9c GIT binary patch literal 127 zcmeAS@N?(olHy`uVBq!ia0vp^!a%IV$P6UgcNDY(DYgKg5LX~w$gt_EbtVUpW#Z}L z7*cV|^l%_Ag93+xqlA2okmKxtqiSJWI~P^oE1Oh(@~%XQ)Yen>Gjn*X)@nVKe^bL} XvR>0K(RUdyP(OpGtDnm{r-UW|a(pBd literal 0 HcmV?d00001 diff --git a/html/pic/map/BPW.png b/html/pic/map/BPW.png new file mode 100644 index 0000000000000000000000000000000000000000..96557e9dca5631aa63980dd52b4ca532967e9fce GIT binary patch literal 1079 zcmV-71jze|P) z000W>0fLJSS^xk8=}AOERCwA=mCdVFRT##9@A}yL?0xQ4;u48smR8i@ilL^NU^UTU z!~TGR<_#P+i-yst{+1x6P!tuKC81!5PMloyp0m&1>#Miam#{yxhk&T;rKT}KFx*N=0h>zK_j1|VlrA|+xZX8>bxu2?G~ zhHKY>a_?9DG-pad1QBwUVUSm^WU*kHD1{hVtr$n9$??X{re=(?SWrrBQl^RheT}In zC5Ax&5ku4P^^aOMXQqi^kmXVq3lxdO{Xclj@hhuk8_9+f(!#O z;v7wbF*>;j##lc1915o{^YAAB-Qn~#nufNm*wVJlX41B$X|Ps+5J*XKcD#6j_vD~u zjp$S&l!7r>TVf<7DTSPIuEa>rmN!qcS}{%>-R1e;{PTyr{Ruf^t;SbiVw7QEnn+2E zky6%tT8rP-_q{!Fp6%_@bvQ>#GEFQNtX7)Qdqgb9&e68?J+qFJ7kPY}XZPjE8OBjk z5|ES_1`TtL`Mh+USZi>O*^IWO@wD?=wcPuSoGKWl;#r4xuFU7m=Vfcl;2hRsL`S-M zeItxg6d3PmTLs)0tfgrzCoU>`Ig=APbNoC{?(qD9oVY;WD@nC4kSfm@ost^@rBHEC zXDjB0Gt9MmB zg@kM@uH-DMm8@1(iI&}~v@PDNvW(HN`dbP|PxJIXPj1V}&q#@Jln^9mv$4F&TLrn! zZ!ICR-ud$TPnvhRWN*(fO@yEmR+}@1zNhQ3mKe!}v)^iP)96qsS&n?HsMfHQa84H} zB?S!O=vkgW;L)FQ;vzX?j8hKk`c2aT=zwmsdJ-GU?fc@rQ4U@|AutSTwr$JS7V|mV z+kE*wQ2zS4^gVs=4sHv~nxVGUg1~I1PAluxuit~^-AlAB+uO`$>Q41isy^VoQdOUi zzTn{v9^T-cPaQiufXclhRPTZ+$!cFIX;QDkke4ql?_W_ELQs(FomaC=6U*gm!40P_ x^Y2Zb-gR2-z*8!*!=T%9aCxSrz7bRz{{xegH($i|t1$oo002ovPDHLkV1jw~4PyWR literal 0 HcmV?d00001 diff --git a/html/pic/map/BPW2.png b/html/pic/map/BPW2.png new file mode 100644 index 0000000000000000000000000000000000000000..ea77bd0c3549a8d7dbc22f8e3f07f484e6ea68b5 GIT binary patch literal 645 zcmV;00($+4P) z000W>0fLJSS^xk7H%UZ6RCwB*l|OFOKop0+`Dc6W-2&|q5GP=}Ab}`CDwL8I2@n+m zAxMP~4K2r@MB)ULoPjH(h&IWt*Pa;=7>N<3Pzvp~U>ZY~QI?EGlqKUa zc}||QzoGlA_|`eHjIP6b$$wOCVrq@n7=u!zLt1#58*=K$K4reU?BZN-n{ z@>b@2&SD|6u4x*&j;>?1!g~%r-h|bpBndl*QfLi`pL|5wo0(O`Xe6_$C`O53trUJA~*`+z^ce)HW5?cbZy7q+g&Mls4k fG0MB)#TkDA3?2*lkzN?z00000NkvXXu0mjfrne_| literal 0 HcmV?d00001 diff --git a/html/pic/map/BT.gif b/html/pic/map/BT.gif new file mode 100644 index 0000000000000000000000000000000000000000..fad6d44917725fdf7e9a1e32b73c0d2f1b6ca671 GIT binary patch literal 412 zcmZ?wbhEHb6lPFj_{hlcpMl{&7%(s}DE?$&WME)o&;ha;K=KSs|5!Kz7rAr_sd`P( z5Lf_Z1S&Z+fJJ~(jSPxFDXs4i6| q7MQLn90)5E96AQZ3PvWF!+^fXgL^|j0p@uscmu@_MEGhjSOWl^>UMVk literal 0 HcmV?d00001 diff --git a/html/pic/map/BUB.png b/html/pic/map/BUB.png new file mode 100644 index 0000000000000000000000000000000000000000..80f99ddb22e529f044630384afd15ad38b20f13b GIT binary patch literal 886 zcmeAS@N?(olHy`uVBq!ia0vp^!a%IV!3-q3RtSA#U|?nl@Ck7Ra{vGT|L6ZrAcHEP zwzifk=8PIL8Ul0(0i%C6tAW-Sdb&7ml>b1$=Z{*VU~CWa-*lKpUXO@geCw2NHDYj literal 0 HcmV?d00001 diff --git a/html/pic/map/BUE.png b/html/pic/map/BUE.png new file mode 100644 index 0000000000000000000000000000000000000000..c0c59f4ac91c8a4658efd3321a128fbf0841e708 GIT binary patch literal 205 zcmeAS@N?(olHy`uVBq!ia0vp^!a%IV!2~3YL`o+EDb50q$YKTtuGb*U*woD%1r)6J zba4!+xV87nLEZ)hp4Nx*&kDG=7pVKac_NngP(jYeMjmdKI;Vst0IeBH AV*mgE literal 0 HcmV?d00001 diff --git a/html/pic/map/BUF.png b/html/pic/map/BUF.png new file mode 100644 index 0000000000000000000000000000000000000000..36770fdae46a08c9d528b7908eabb3585b96dafb GIT binary patch literal 915 zcmeAS@N?(olHy`uVBq!ia0vp^!a%IV!3-q3RtSA#U|?nl@Ck7Ra{vGT|L6bB9gEU{ zY#M>u+FBZ!JZkJ{2v8CNZ@V>pf%^SCT^vIyZuOpX3FLx~eUHxIS#y|J-VclP8% Ya?=mdKI;Vst02QG;mjD0& literal 0 HcmV?d00001 diff --git a/html/pic/map/BUN.png b/html/pic/map/BUN.png new file mode 100644 index 0000000000000000000000000000000000000000..8f201e18be6b1f680003f4ee1de7cefff09c2264 GIT binary patch literal 229 zcmeAS@N?(olHy`uVBq!ia0vp^!a%IV!2~3YL`o+EDb50q$YKTtuGb*U*woD%1r(g_ z>Eaktacl2oL%wDM9*2wmRSjNirZhfN;V4|=W9iu+u=2UK?29Q*8+?P_$DiNygpI+8 zL*sa_b9?5UH`NNqR_HNGzizns{qcp&$oA5GOB-!-rEUlVknu{XuVqQ3D zZQG)ms6C@SN7nd!n6dGiLq17?JAbkTeJ+1KOZ-;y|0K0FclY>wpRM)b?bp3J{m)P5 a)iLaRXRsl5pNRy}i42~uelF{r5}E+A)msz* literal 0 HcmV?d00001 diff --git a/html/pic/map/BUO.png b/html/pic/map/BUO.png new file mode 100644 index 0000000000000000000000000000000000000000..bd192eea3099e8000d06ce4a228598c164627d13 GIT binary patch literal 915 zcmeAS@N?(olHy`uVBq!ia0vp^!a%IV!3-q3RtSA#U|?nl@Ck7Ra{vGT|L6bBm#0jC zY*ImOZ7r!mdKI;Vst0E$F9v;Y7A literal 0 HcmV?d00001 diff --git a/html/pic/map/BUU.png b/html/pic/map/BUU.png new file mode 100644 index 0000000000000000000000000000000000000000..4439a992598a5996582109dea3ba679e052ad30e GIT binary patch literal 917 zcmeAS@N?(olHy`uVBq!ia0vp^!a%IV!3-q3RtSA#U|?nl@Ck7Ra{vGT|L6ZrAcIIy zTU$${%28#bAuz~8pxj#E3DAiFo-U3d6}NgX9ppV=z~OvxKhtmh=&hlbIi#76tH&Q; zn8=>K@P+S2gM+7xrcD#r%)8LhY2#+u=-V5%%kyvhkRqSd z000W>0fLJSS^xk7LrFwIRCwB*l)G*eF%*VB-^R1I0&NEs5)B13geFaZBB7v2Ns9#3 zNC>5h0*b^7@c>AX=y(7MI?5DLF1tHBw#O86!a@>~owY_YvPZ|?@%jH_1pvFdyL23y zRfp#J4zRz!-#zlycvWUm@bdEtSdB6iy_J~LDKWDBsVmlUc!+Z}p*!>JjH4rt&scla z32WtR3~toj3EndtG8nP>VR@{^TFMgdDI9*#t}YX-u@+;{3Z($HcDiJnGpQj&Vj#nl zcgtWcO+!kAK+fbW(`DTUIES@pO$da*+Upy!n(>&jBxh10C6q!bv|EB{3`Ie|Pp?P6 z&v1zMc+chy-DkzO&QTOJ4IxPWz5Y#1tP(1Q3@6l+k4kwEzaQ_KwUGRQ&rTp z_;Gk0)^O*sK&p!QocVkqkF(rc=jXSBgM*EYjZ4|)ED1Y@QfLi`pF%>}|1%$K;XTe_ zjBL?{weOs{{g7YZFJm=8(@0fYa#3Kd>=h#CJ%6E8nz|+gIbmH(@~yna5F<_I(VMGO zIX&h0n3EHxQz@@f7=yK z000W>0fLJSS^xk7jY&j7RCwCOmA#G}MHGdg+_!$99#jO|@YnkLqj5a>FbYtAK{d#)*m6@V|kt*K(x-jyOS z=P*-BOj8}fHD;v&PR*5s8O{--)wFV^6hbgFE5*Oi!~ib7(_0TH1@9Zb2D7f3CYFVq z<($ksf5V;Ew0l?cqPhU*$XWBO{ho1TS=w%1XkKBN`1P^QK46}evp_jBO&kt&R8CH8 z807swn5`H;=#7t%BSr(wGwX^OU1z%;!$6GT<;?2YjGX0tYjQR3Tn%6RJM`Jt>`sZX z<(xCig7?;SK)8X~guQPyHj^3SsQvzB30=o;7dm@iATxnVVV)UB=9yA%)LizABPrG6 z0_r~NN!{eLn$`JNINyp<3TA9Jc5)JKV;Vq=Y`5mUYLhn`y6#p@kkjYi*xemnhgm%o zBzHR#W6iAz(pAo$WAOV=I(tvm=X1EDn5u_ZbU5g6sAqVbX58@eBfaw}IWx~nNu}s0 zrjPV@37zhLNlGlsZSA{4PL!3We^^~cO04T~(*iz_6Tf_~dmmE@&V^%{=>Tx&b#i9A zwHS}qtUqhZ#QKzbAJX@ZSH+Wy`mf{p5BTvBZ-4UYnz0A;>>2+9{sgtvHv_HETZ;ey N002ovPDHLkV1ln-S6%=B literal 0 HcmV?d00001 diff --git a/html/pic/map/BWE.png b/html/pic/map/BWE.png new file mode 100644 index 0000000000000000000000000000000000000000..8ab27ca00cbb5d2f272ba28a85f706dae41ab306 GIT binary patch literal 719 zcmV;=0x z000W>0fLJSS^xk7fk{L`RCwB*mA#VXG!TWqmL>bzcV~Zc-h$#K$ao9hfg;<0fPf+Z z_93Vuf`EX4BA~W-3-Z0Yb7fh!q~1W9nVs1Sb7xLDaNtv)`gE%;03e@z31BVLgmVC0 zhqYSYW0d2OdB$3vJ!2f%Hp_>yR>zUu4r2gHA!l+XB}xG>25YtJM8y2_`6qzB{;7Rh z3aW@8LMal0TwaRztShRd#Ig`0>w24+l6a45J*2EF$7AzUHX2JA!lceS4hKVYtm4M|L}P4r>u%+av^1!dm(sV_M}R7$X%3eERFZ0AIYUsiNAx zD@8z!K~=Vm5D>vy!yOrERf(XAF*v6p)qCcd z7zHF}%f~t##5yi6bR4mkoMm0{o@JpFx(?@Bws)}l_m8ZRH*e%{ka?CE34s{vQQ7bH z$rE-v!ztRzq4Wg_*UwE^IqP* z74ILy{QVn@L4*XZpbD7Qj+sn4WthGE;IWtY_+ym-tQT_RyP7~8) zc!Z2Ot1Bm}{pD-s`B6-eckkrZ;yF+CZ}3Pa@E&nKa_}xB?Op%?002ovPDHLkV1mK* BR7?N> literal 0 HcmV?d00001 diff --git a/html/pic/map/BWF.png b/html/pic/map/BWF.png new file mode 100644 index 0000000000000000000000000000000000000000..b2542babb9647eaaab305c0adfb479659879fa7e GIT binary patch literal 719 zcmV;=0x z000W>0fLJSS^xk7fk{L`RCwB*l+BLaL=c6)>L2^sH#3>!U3ewLJ0Nx}SRjE|0NJuf zVh0inBoGUfhsjOmw%u)acd=;COftDJcjm|oFMRxUovLa90QuxI0OuG-ya%ur=d``2 zB*!DugmXN9&M>g9j`!u94g&Z)H`Vt)JSQ$Sz;xP4kHs)!&$ ztuoJYeJvrdEU1z*F_IF?@*y*42?5o1NLdz+$Ia7J3iB+0hym`fwX!VCvrLnOKnUc# z9l?9LZhO4fzWhz zmoK@z)N$0l$2n>xMv2jIPe!(?L{P;TyjKxQky5A?=Tuc|y>m7!KYuRAYeJxu%@13u zAuvs(Bp{_YKGxwN&U100!+>*?BFjPu#7M1Ji}zc$_ptiU4=jl{Z{%>0X_AzfXHsfM zWxv;F&)Dq@r=+i6Q48xzDcbUE#XG0_eKX&8Zq;r-P)ZS1yr=K!d#uG6tflKtFmDFq z6~gAZxZuSLuCC}hNr@PlXUG3Y0n}QoZA}tY+IYR+l@r*%zhj)MtJU|A>yW9WPHUzVE=eNT$C+F~SUfWFuL{vl?Q_l%=jE3HF)e>&R}AzPze z$1vzP>g8pdEprw#m%By1$@u~2ZOD?6w0mS-+en?qY~8I@Vw4!$BtGoiuz!3l?S2bE z-oBL(9>e_oD~v&eY2t7=%Xzy7+I4L?Ddk+|X8!fd?FMts@mQ6@II8!LsB??zuWxl6 z8ArntWXxGzIZ^E|UocHiVuHMT_h{$sJU)>L{0k;#c~vtK2o(ST002ovPDHLkV1j6b BPUQdq literal 0 HcmV?d00001 diff --git a/html/pic/map/BWN.png b/html/pic/map/BWN.png new file mode 100644 index 0000000000000000000000000000000000000000..4a92aa6c13657616f0ad031d86605332fe0cfdc3 GIT binary patch literal 721 zcmV;?0xtcDP) z000W>0fLJSS^xk7gGod|RCwB*lueH0L=c6)$RE4xn(pbDyC87@4#OP~JA_yufmi@@ z2qbnaSRjE|pgGLcOjp{Oc4h{Pba&766m)ezdEtehzl;|VDF7g!d=B6oz}tzYef|i zM5tBfS+1`o1eOI=awbMnVp%?9<}4wg+72np!tuCyno41w1rRa79ky1Mg?W}~k`M@i zoVO!*PuFda_uBU#GKYcPPQAxDL|9juXL80lx(;Ku%0)0OiCgTS-|2qOFfa`CJ>#fX zSNifLmzO$@+V?m|t;8rX8t%!+R+R{<7=!mJLMc)Twc?zrYOQz9hUJ$p6>IT+%k~~t|M`g}@#c*j4l+%W67x(- z?WpYc`s^9Io#B-9^($&&T`5Ido~?N2biZ%r`_8S}?FULJqKfzQJ$;Y07=yKR-3jK+ zV7x-uJQo+dc)`^bT_-6KBlGO|A1Q!Zi?yvuqDmXD_q%ce`}Ysbv&^%kBsojYwMvWog4O#Z>8OD zA;{ae62fDczkh=Mt1Bm}{q;+x=}AnGckdqUyq(7 z000W>0fLJSS^xk7e@R3^RCwB*mA#VXG!TWqmL>bzcV~YhUIcg#-hy|a$TlD#pa_6{ z2&%{k2nZ+wSYCu^@9tb#mMy6_kY;9Q_QKqmQw|*X)Tch(Y6}3!XI}zX%QWE}K-Xcd z*7q3Ycx0ZjmS@ixN4CxKp{&($WVgc@fKteroJomN0F1#}?K%-L|Ni|cps#;wpO%6u zB8X6mgdmrf;yvq%Dk-rn#K^kdW~L&o%iJXJXpf&d~0xWSgfx)OrSvv`m9 zq|}b!9DUy&=X4luGsltLPMyPAMA$Y7ft0Y8zQ>qWxd_Hc1p=RZ{tv(xFKeo(w(m+2 zP-9S)Z6gFku-0%#Mp{)OsA3GxsR%hs&Xj_+s;Z^jI2-)uujF`%_vGCC&{FlDc_u~y z$=UL;4hON0iwhk`tR-hzSG;FgD21-Wxt8r6tp4>QYvj!vIUHo3B}PIZ#(GrtdwueR z-Og}I`uY_mvu)(8HK$swF-l635-CvwyF2k8Yo6J* zdbt4Bm7Fn#VKDz?x$4jl#D!YhvXBzMFz9}NAG69irb)X_YKMm5bhal#?u_<5F4q0N9x<|IHj?{U~+TBuQS!7x2B;N0A*x$dEy5GE)w{OM! zhcJKp24fImo;e)Oa$a8p?fZH;$@yGnGynRsZ7^#s4^_@glREc+I$KnKe5cdIG#MTt zW6tWziE4lOnt6T{6Xe}HxwUxCQ~et}k_o&AfXaP*KjP}^00000NkvXXu0mjfWCK&Y literal 0 HcmV?d00001 diff --git a/html/pic/map/BWP.png b/html/pic/map/BWP.png new file mode 100644 index 0000000000000000000000000000000000000000..96557e9dca5631aa63980dd52b4ca532967e9fce GIT binary patch literal 1079 zcmV-71jze|P) z000W>0fLJSS^xk8=}AOERCwA=mCdVFRT##9@A}yL?0xQ4;u48smR8i@ilL^NU^UTU z!~TGR<_#P+i-yst{+1x6P!tuKC81!5PMloyp0m&1>#Miam#{yxhk&T;rKT}KFx*N=0h>zK_j1|VlrA|+xZX8>bxu2?G~ zhHKY>a_?9DG-pad1QBwUVUSm^WU*kHD1{hVtr$n9$??X{re=(?SWrrBQl^RheT}In zC5Ax&5ku4P^^aOMXQqi^kmXVq3lxdO{Xclj@hhuk8_9+f(!#O z;v7wbF*>;j##lc1915o{^YAAB-Qn~#nufNm*wVJlX41B$X|Ps+5J*XKcD#6j_vD~u zjp$S&l!7r>TVf<7DTSPIuEa>rmN!qcS}{%>-R1e;{PTyr{Ruf^t;SbiVw7QEnn+2E zky6%tT8rP-_q{!Fp6%_@bvQ>#GEFQNtX7)Qdqgb9&e68?J+qFJ7kPY}XZPjE8OBjk z5|ES_1`TtL`Mh+USZi>O*^IWO@wD?=wcPuSoGKWl;#r4xuFU7m=Vfcl;2hRsL`S-M zeItxg6d3PmTLs)0tfgrzCoU>`Ig=APbNoC{?(qD9oVY;WD@nC4kSfm@ost^@rBHEC zXDjB0Gt9MmB zg@kM@uH-DMm8@1(iI&}~v@PDNvW(HN`dbP|PxJIXPj1V}&q#@Jln^9mv$4F&TLrn! zZ!ICR-ud$TPnvhRWN*(fO@yEmR+}@1zNhQ3mKe!}v)^iP)96qsS&n?HsMfHQa84H} zB?S!O=vkgW;L)FQ;vzX?j8hKk`c2aT=zwmsdJ-GU?fc@rQ4U@|AutSTwr$JS7V|mV z+kE*wQ2zS4^gVs=4sHv~nxVGUg1~I1PAluxuit~^-AlAB+uO`$>Q41isy^VoQdOUi zzTn{v9^T-cPaQiufXclhRPTZ+$!cFIX;QDkke4ql?_W_ELQs(FomaC=6U*gm!40P_ x^Y2Zb-gR2-z*8!*!=T%9aCxSrz7bRz{{xegH($i|t1$oo002ovPDHLkV1jw~4PyWR literal 0 HcmV?d00001 diff --git a/html/pic/map/BWP2.png b/html/pic/map/BWP2.png new file mode 100644 index 0000000000000000000000000000000000000000..16609d0c48717e35bc391473692daa66c8eb2588 GIT binary patch literal 718 zcmV;<0x|uGP) z000W>0fLJSS^xk7fJsC_RCwB*l)aMOL=c6)o*(H-*SlW(U3e!_Vv3A_fGQ{gj30t3 ziiCiGDkuWV594d^9cf0InI;(RuD!mnclVS61v>hsPj`<1fPD5jfOCu^-UC>RbK2fh zlH-wS!a1HlXBb#l$A@xGhk@M=V*qNU6iOjyY6UO`=hRveF<F~If6N>Pc02VR=MZ6CWuD0y=jb|&*(w*ov?Ok^e}1R?J;T5-(D#g^UR~+S zmt0=zIBMVH9JLao#AvuDBU@D>sA3G>s|ck?Db$K{s;af#IUAOrzm(%OAyCTZhb`3* zm?lyZkWw6<>TnR}xwz0_z&T2hWg!G&q*koO`z_mhSpDY}OXBTYIUHn~BqipVl-g0* z@AcU;c00o<>6_Qo!n#t5wme($&gp*N%=evJwc8JrQbZN+>3jMfYcU3E>ADllo56UE zuz4;nc=3X(E4ofnB1Y!f@jp@kwH9kzlSGv^ULSVl1orPAm}i-1Nl9{+oXMFM*!_wB zRMW(|w&em?7D~Yw`riDP<)%YFk|M3P7|9u+?{&X_h}q;lrmgH&h|ve)@au; z3_6Z_dD&*moW;!LZc%S?e!zJfvZN&K9$D8mQs*&ScWadxCB`<14?8#PAKyy5-$Iag z?<9oBFn|9BV-R7QI2_J$-mZamU0Y5{IhVPafBSm7!JKnER;4hG>ir|?+@kvHdmTr{ z(eMNrb5>VQRQt z000W>0fLJSS^xk7e@R3^RCwB*l+AM8L=c6)o*(H-H+G!73-81`P~Nd%K@}7WAP+$m zI~FXcf?`4CVR94Sk!GZsX%-{fiF3i%KBa{gI{KzhcaH#oeDNiKbBrV216Yf5+TK%= zPX?SpX3O++%BHS(s;;CJBKM$ay=0 z_jKL%c&~l`DRUUu?bLgmLxgpec_wF^qw6qct6T)rlDNbE`JL|f3EzN{%;#Kq;Fawp2r4 znn+1NN^yLy!$F+q;zEZ3=O{&%g%F65TCo=Iw`?C^^`D#-_!S4i!oSB*PUSA4#pdV z&2w?Vt5;lI(RGp%F*47N|B(WywOHGlB&xLW`nW46uz&x+Jj*;wN|LkWOwP2x9!~t{ znkLq@Ef>JDPzuJ-_vXJWw;lSC6lt}^NX`I#ulxOD%qH&{N3~X3hx-0>wkJZiM!Sw- z&~enu%Qjo)EM_kEi+Y>$BhI^!B_(P1$hx+XI*-}9TdTwo_uw zhG)o_v$}Gk+F!4kre`rhK74qx^KKrW$prod6FPK!Ml&5Q00000NkvXXu0mjfy7gEd literal 0 HcmV?d00001 diff --git a/html/pic/map/BWW.png b/html/pic/map/BWW.png new file mode 100644 index 0000000000000000000000000000000000000000..96557e9dca5631aa63980dd52b4ca532967e9fce GIT binary patch literal 1079 zcmV-71jze|P) z000W>0fLJSS^xk8=}AOERCwA=mCdVFRT##9@A}yL?0xQ4;u48smR8i@ilL^NU^UTU z!~TGR<_#P+i-yst{+1x6P!tuKC81!5PMloyp0m&1>#Miam#{yxhk&T;rKT}KFx*N=0h>zK_j1|VlrA|+xZX8>bxu2?G~ zhHKY>a_?9DG-pad1QBwUVUSm^WU*kHD1{hVtr$n9$??X{re=(?SWrrBQl^RheT}In zC5Ax&5ku4P^^aOMXQqi^kmXVq3lxdO{Xclj@hhuk8_9+f(!#O z;v7wbF*>;j##lc1915o{^YAAB-Qn~#nufNm*wVJlX41B$X|Ps+5J*XKcD#6j_vD~u zjp$S&l!7r>TVf<7DTSPIuEa>rmN!qcS}{%>-R1e;{PTyr{Ruf^t;SbiVw7QEnn+2E zky6%tT8rP-_q{!Fp6%_@bvQ>#GEFQNtX7)Qdqgb9&e68?J+qFJ7kPY}XZPjE8OBjk z5|ES_1`TtL`Mh+USZi>O*^IWO@wD?=wcPuSoGKWl;#r4xuFU7m=Vfcl;2hRsL`S-M zeItxg6d3PmTLs)0tfgrzCoU>`Ig=APbNoC{?(qD9oVY;WD@nC4kSfm@ost^@rBHEC zXDjB0Gt9MmB zg@kM@uH-DMm8@1(iI&}~v@PDNvW(HN`dbP|PxJIXPj1V}&q#@Jln^9mv$4F&TLrn! zZ!ICR-ud$TPnvhRWN*(fO@yEmR+}@1zNhQ3mKe!}v)^iP)96qsS&n?HsMfHQa84H} zB?S!O=vkgW;L)FQ;vzX?j8hKk`c2aT=zwmsdJ-GU?fc@rQ4U@|AutSTwr$JS7V|mV z+kE*wQ2zS4^gVs=4sHv~nxVGUg1~I1PAluxuit~^-AlAB+uO`$>Q41isy^VoQdOUi zzTn{v9^T-cPaQiufXclhRPTZ+$!cFIX;QDkke4ql?_W_ELQs(FomaC=6U*gm!40P_ x^Y2Zb-gR2-z*8!*!=T%9aCxSrz7bRz{{xegH($i|t1$oo002ovPDHLkV1jw~4PyWR literal 0 HcmV?d00001 diff --git a/html/pic/map/CB.png b/html/pic/map/CB.png new file mode 100644 index 0000000000000000000000000000000000000000..41281d6e86673f91ca25ced2e047b0e397f80673 GIT binary patch literal 89 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 literal 0 HcmV?d00001 diff --git a/html/pic/map/CECF.png b/html/pic/map/CECF.png new file mode 100644 index 0000000000000000000000000000000000000000..af4616196a721e09aa877300e7f613c0cb6a2dd3 GIT binary patch literal 2049 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 A)&Kwi literal 0 HcmV?d00001 diff --git a/html/pic/map/CECO.png b/html/pic/map/CECO.png new file mode 100644 index 0000000000000000000000000000000000000000..dab9cc0ce0224cbe08d02188b92704fc5f03c949 GIT binary patch literal 1934 zcmV;92XXj`P) z000W>0fLJSS^xkCKuJVFRCwC$Sx;yiR~rB6)vbb5Y)s?02Ul4JVb3g-g5HD>2=cMU zy>v|iJq+})-Wdn>682Pj>Y?OReCZ)GIrO4iLN=ETNz;p!Kn|;?OJPSfLNuxmtGJ7r zP$_l6qdk11PfxO}KTX#xr4KW_8NK;_^L^j%`+aZ5z=@B9T3K~ICmYz+EP$7ER7~OGf0l7;S6*9w^7N$~otXk}r;1C<>Z4ty z@a=W{VQUY-FA%SZ1G`hDr~>%lpNrp@@$L2hnV0hJ-m_@&IWXG<0HvVLH2}PuL+7?g zY)tLzL|)F`*`K|$58(OyGxuX5B>>#NfhSL+&Ta842bNqUuKxV`*R#zzDiSFnCGOwA z{hUCoTDth_T$?CZ4r>ERFj&KvXKZ03d_Cu~ZTxw0pLT_w(yt19<-aLj3ERApdk=x;Tk2 ziR18M*6dWVQ>85O*nbuQID1COH6bPb^w;>}=^SEmjYJhg;~BH2E2`M3a$e<{NPf5o zAow&Q0HV*|KL>!!1(e(|zKS6fz0u&1#;B{=Cr=}SSNEdXJNuanaa5JU_vQYFUK1q3 z$DxWL`Mb1?ohs#z{G%{ZkO`H10`Tr%Kx}e97H7|h`eP8@2#J`{@jACfjIo-1?Z>x! zx=I)KBPz z_QIT?q_UCYs-JfNG$2)k8 zL!jis4nTNpE|baB>vdk7$z%Y~m142@@Zm!Wtnd4jlyYzgpyc8o00B!sZZdtjJUqYh zudQ!r?l_KVn#E$VSS*^RS+Cbk(=<(!Fbai2p-`aHd_G?)l}e@3Ksp*l9=f zltlpF-2#C3ufdl9dUya5#L~m_D|FAPa+T6R@Muvk@roVb)$_e#)$u5WmSyQxPgMUYmpxUkzI6!z-ns-~ z9}4?WFQ*x`z9jGN(dw@Jke7!{2R(FsvYtxOqtHsv^ZM)n2u3t7DUa4QSs^8Bx7)`R zrDa*H0KV_D-y}v-NP0b9ouAdI| zo(7eQ9su&JPhhoV_j&32zP{9P99|j(0l9MZ>eW*J;COIgZQEue#OHFkJaBzR&lx9! zU`owV@y(b){m}Ob1R4NDpTF-5n zh(<@Uz`0~u7n}pWjaQR7w#6)qg{GTA{)rZoNYSy!UaepCWSvaV(Q%waA~AxosZ@&f zZ-8+@5RehV({t2=RO?H0gJoG^7*cLJosP~}9bV6ZWm$R{DAZvXDy4`xN4I*t7R}oQ z&+}M!Xkr*ftyZJR8-@X3ety2$Yyzm&YQ&T<3@yvb=kowAUcC6|(WB$GmSSMvAf+UB zNhu#ZcwiWYVHn9|lGYF&fM&DVXf%?^WICO$*Xsud2ZmvUVd(ol^Nu$+quwtmIGdZB z6wF4W!9S(bY0{d-#YJ6sX}6%S%w#ezUc8v}m6rE|K@iZcB8sAO=gtkilRGx|HSRD+ z6=&3kZptXTd*#X%y^wi7a8&&%@iZB+RUfjC)t7ElPJRKA&e2(za?~-fFd2fCikN@{35< zn^voJ`SN8twJd9Mb2FRGQfcb_XKZtw;u{{7KR*Exiu)aF)7TfT$-ZuNVQRG++11;g z=XrXY8(kQaLh4UF@Cr8|MpHq~jKHIf7RlTE{QS|l-Mo2|iA`LaB(}pL)%ud#=#lm~ zTiibBO(CDpPx4__jPTO)JjZc(Z+LW#VHng;Nauc?|Ljfv$#e1#&%ggO@wYSn3#jcw U?kDzR4*&oF07*qoM6N<$g2 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 Q)c^nh07*qoM6N<$f>kr=s{jB1 literal 0 HcmV?d00001 diff --git a/html/pic/map/CEIF.png b/html/pic/map/CEIF.png new file mode 100644 index 0000000000000000000000000000000000000000..c15f48de034fde7a9c2620a7638e6818cc7302d0 GIT binary patch literal 2441 zcmV;433m30P)N=e$2dPM>}od+Bovg0TE-5WZC{!Y zezbj|72Q_q3Tf2}h(upfMJe6)rRi#eDlJMIQB_*;Kz~&60$SJvqpGx7ViQ>*(Jmw; zpgg1yW5;%W?D^}%xfxGpoP^LNN7m%#`1*e5JLjG|XXXG~E)4ISh0ll5QUK6(=sHvt zxg3_3psFwoG129M*9)%~k_1hIszOna&qLE-7?5T7eAu=PE*CTnih|{3EG%Go8Je~N z#po}G+YMQU+YQFx^NFu#XJHsvTrB)R(~!*~n}yGZbb6K9RaM{|9uHhDJa~XTdmzg& z45%tJ4UCD8VL;bm7#w9~&@?P9!R10C0me{Og`GQ*$%qvX8~}iO_u%&njX5CEb>#DS z`V;_aYq7W}^d%+WT<{}ERmI{W!-@04MT!E$5cD-o_(azMVAn3ON@XRINdV$%mCDK@ z<5UWMzqn>HP*tSU9E`#3h9to-kjX&PgsV$SMJ#vhScPX@nt-hut6q}87?MdC29iku zVHg~Xi|}|L%a9~+4qX>}B$K~Yu_ zTEQT>{iAw;^p8mZox@|e-qd<^8xSLX0baQz;J^PXLG-`@+`EU}yP@k)6ow<`;C71u zkT(Df^jI0JA_1H-3;_Ks48#I`mnE6&imIklW8G)1*sWJ5(B2JIMK%injg6R@!RxOx zeD{~g=i%|d<8gwSNS(uDrZO9D>}O#Bhi+bc{$v_JRc##&bVZGKyie0UYH#_?z>wf7 zNtOdIe7ca}13i)B4OT){BonVZI^NrSGI*&AKx<%sBtBa4=C?94k99>grTEq@lRRA1-d9)Hg z!Xq{&jLm|ko)2p38=gOzCcOEnNlE5`%8H20$(np(j;wk9WIA~1NCeEZV!F>&%Jg zgh412?C28C5A3(`jwdrBT0m3Jr$^gbBk@s+w79v|)&Uqi(n5z6v+b7xQYaMc=o;z! zxbqL6S@){-Y6ZS=DG{u6R9ZI(^Ro!?yq zK=6US%akyb3*vCFN}%sDLLvIlc&+Qk%GDA%-XJoNSehoBG7Ou$2BRYY-ahj)r~Xhl zSXePW>WuM?Talw}t>nA{OF*(3($AO~%Se3m#;r)a<3haS0tGS>AC1IER}Pm8*>Gbv z+!#%yqlq-(^`1FNN&wMB+Ff1K+uVfEDJ#S(NK-|>u~;4JUn$PWb~=6Nmkd@Spy2=={ZzzK;Qn{q@fqLlVou=!juflmLLbz5BS&pL_aW!lRixgW;XQuytm6 zbeztbruRN5x}}S=tgrB@>6A@hU*UDmEa#lg9h=2FgJH@`r|=>UG$0jX7b|)MTBSM= zn!9(`YRBBf12vPjIcYtXi_OK;e=@UVqfUep@z{!S!ag;VwjBL009iUbzE*&pzMB5} zt8X7{an3ZI-O%m#jqV77ZIICx(ZdglaS70+7A+On!V zI8A=$%&T@H&U@{lZoLWHJ!4V z@^E}?tpnM{mFnU6=SK<;b!LQ%3Vqwu^Qlc4=)2tb(eIs;X{Na*UBCE20|5T{XQz&x z?5CvG71b=G1AUhdg@b1CXjXom!(&uw#yj4(K19$D2csi4eeao*ox@|j%}s)&;L(%al*g*<$1;+4ObG+jy`ar(Rn%a@i_PjIGVU$vM~1aNrihuo%m=zb}*L<^x@o?p9dh`zEdOM_9vSlNS-vi4^vZM3@#Vk zZcqiI>zrCchORS7f~umd3=0baj9#_dUV*JI)V{H{Y=S{NdK{AbTrwLzTi8^2$4{2o1m&sSjSc5~`o0Dvr`qy&tiqy*cyV`@sg z`M0&!tf@9wN9IDejbtpT}Lj5-;-$zLaBnh*#*s%l8pCgfg^Zsf! znvzNQ{g|G{u3bo_M7xRlT)7<5X)G;4*TG({4l&Qjmy-Vh4j{BhrG0#J00000NkvXX Hu0mjfa0sJ| literal 0 HcmV?d00001 diff --git a/html/pic/map/CEIN.png b/html/pic/map/CEIN.png new file mode 100644 index 0000000000000000000000000000000000000000..3de698931e6574073e26de19d2de1326bcf350fd GIT binary patch literal 2371 zcmV-J3B2}+P)g7fQ#lw+O;#?nc>v-9 ziuzV6D^ZOUDL<-;A1t?WqdxSJT8-sOZXZ&RDg}wkYV&GAYr;w)fmp^a8yi{Jc(;{> z9AKICu77rB=cf zr{VZpdjP~o7VQ7pIr!P{0pQUi?ApaSsT8(tBRuFj!%u#PKmdZ^H0UXY=hVYfJ)H*z zJq1ee$9lP;_4SyTKz%(71I41mO{4(W@a$8R83Bx$?*Tl8x-Yf*MN!rDPqNyD?z`ol z7(hoKGz}9I01ymfVF9nc%J9Q(s49X%1cPoc3u$<&$704>^6l&*fPtGQ9;9RdwXrH1 zsJcGXm9&84BMaPC@**#I@efN0KHAUao{}BO!b?quI}Z%@UTy=>-g;~-nb=vk?Qwcp zwMrFW0hc^nT}_!PIq*Df0+5;x^QAByrYNeq?ia-ylh^#BNMF@8?o7`;rg87(Hqxdx zR@HlSfUj^(10VpfN^5*%AwIG|c!XrZI5c>FXn$SfP5^}W;QkVTJ>f%sQ6x?-quiLh z2H-(T?!DYLaPtI4`;i!cKra6L50;4*p4}|FV=0Oky6^V>a&q9E$=X;|E~C&2A`CJ& z7?u2@SQ{%9rtV9vPv0cAP+R_Vz}WMFLP(_QdwY+5PU~o9d=UVm@QdQi_+l_Bsk*)= zeCPoZ0Mc`hhq{vJ=!0P}H=Y}&?l6A(D~{COdd#t)7V>upm>k}5{M1-7L6IgV+1h*b zb1G8Iv0f}Bg8A&@$^K7!>}%Ejv;&V`ziQnDvqP ztvV;2_)(h_Vr>4W-uHAR@Rb9_zl*o>NU2^pL)m%o& zWfZ&Q@ZWBC|M|pcA5Q}K*I(~$3`thrn7pRxrk&r^To;T=PaYQRlFjkm&GFrK$<%bX zHdZw=zWC#J_j@jBZ!2p;4TY@c;Mas2+>$Y>;8S~oB-cfxsw$@+mD*u z{&0j~W5*V>+$Oy}mP|~3IqRvhqj+s#rNNk+>2_?aC9mqb!^#cc>XN6GU)-8^^EG&Q z)h~*I>0!;GA2i(lYRd@(b3Y#yd zCJaZ}OihO+#-8oQ`{QK}AD-$FJdam&rg1_taoY}`hi_Tn85*Z2_|~_bU8GH&V8^p> zWgS_SnhqOg(H-@M=EkpYOgWe}p@xG;8fk{%sh;-MW3-W=r{KnmwdCy^`%;y;HCM=L z4pnBSXV)vp4i3$K=gP^_|5k)OiN1Y*XupHmeW~@`KfdM`CP`~fdeYuXy7K7=PV^Upu7zy!^7ra;ddpmo{nT3zOsGq;&FnsZ@5~QFvQ&uwFU|f`BciXmm>< zohPp?qHK1{Aq_*one$tbp5)aNzeX-6xNiktDjooaGv_(`A0NG>go%$V;LLfX(*Uq{ zuLMPbszOx}{}9n=e5C(71m;&D@ob5;vLe7VA&RK1WUsu!FZVk7z7s!}u3YR*j$%=Q zqQK{aD4M|_Dk_l867c_Hu7}3iEWaEz42GlU5DGEBAA(>qhP5^Ob*=mQd9z@2!%mmy zs!CSDFre!U?Z0562>M8pxwHg;-@a2LATjV929hVO?n5dC#vqFD`$1QFh9OaF$TSQl z2+%ZCR$^s^gVAlf;|lEAMC}`U%ciXjv$F_=c;`e>Brs+Mg9rpnYLXZRSI6pg*!wJ& z`i~x!wL#qNn`o4G{O0EoiIlAL`z7jK0D#YjKmd#(5WucoNTsm6Y<~lIpt{>P7U$tZ zFox~hQBi@NJ2`V{35LON`nM<+q3fuqKsXGa4~ha=Mtwb>%WADz14nP`8Ev+uB?tlx z1B!w|ftq^~Z+I07yjcqHF5lD?Z`mv^qNWBm;YRf^dSHM002ovPDHLkV1nt>mS_L~ literal 0 HcmV?d00001 diff --git a/html/pic/map/CEIO.png b/html/pic/map/CEIO.png new file mode 100644 index 0000000000000000000000000000000000000000..f3e7bfa2ca3432d3d6c1d2ec391cd61b0be8562a GIT binary patch literal 2452 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 S(Ygcl6N9I#pUXO@geCxehjwQG literal 0 HcmV?d00001 diff --git a/html/pic/map/CELO.png b/html/pic/map/CELO.png new file mode 100644 index 0000000000000000000000000000000000000000..6d9c50437eb58a2b3f4344820f5937cea44aba59 GIT binary patch literal 276 zcmeAS@N?(olHy`uVBq!ia0vp^YC!D5!2~3ek}s?PQk(@Ik;M!QT(3cxv8kIk3MhEY z)5S5Q;?~<68wC#;@U$jQ6n4$h*v#x5aM6fk^9Fw917cIYXl7_UXzEZD*WPBit5jr^`@ae1QoF(Neub=)Vz-?bGU!HoHGx6=7CpVV!$E1F>x+*6dZ}B1SS48x> zyS*W=@2E_G0@g))cPh*gQCru3_|W2&XYSfYPrCoS-s9diu-)}~<`xNI+vE?f2?hFy N!PC{xWt~$(69C(sa9aQX literal 0 HcmV?d00001 diff --git a/html/pic/map/CELU.png b/html/pic/map/CELU.png new file mode 100644 index 0000000000000000000000000000000000000000..8f7bf28ebef92c8ebc541857a9c17d7eb990ec21 GIT binary patch literal 143 zcmeAS@N?(olHy`uVBq!ia0vp^YC!D5!2~3ek}s?PQk(@Ik;M!QT(3cxv8kIk3MlC4 z>EaktaqI1QM?nS!9+r(_vKoi1=M@w_ooG7Y=BkR?^L&%F>pNYPCVHp{VN&}iFx!fA WGj4CN<+%$qjKR~@&t;ucLK6T11SmcL literal 0 HcmV?d00001 diff --git a/html/pic/map/CEME.png b/html/pic/map/CEME.png new file mode 100644 index 0000000000000000000000000000000000000000..7148aba7c6fe259d198e8e51008b015cac5389be GIT binary patch literal 1565 zcmV+&2IBdNP)Tt>0QcJpJHHqnJ-+Wlt zJ*rMd+GXO5*za4UyA@a z7DC-TS;MeV!~HJe{D{qu))-A1`;{FuFe~@Z?-|A0Sezry;UpI4GNKs(-mCe>uu(G> z6LTy802fUI3mZ1&=@rt+P&WVzV=?iF%})cXsTH(-1Hc`Z12<;i~Jb5ly zXEbSqbP_Wt)Xfujb!vT%1*1tr9z?=trO$!;y5r5)34t`yL6?QhKYr)OeD3|5EGORY z84hy*fJj0*sZ;9#pt`;^=;Mhda?8r`5X|YelBLV1KHckRz`1RA=`2?2dq;-E&#&yj z+YdK?@2IZ``T(+!V*&AIeC?x(#2y$Y`9hEk!qL5shHHT?cgII4$%tmPCPH6n?0`2) z>JqWh(Hslsf^~HIfqt$BZ2zz_F z=;xbuG zKAyywBzeFabu?9Aq-aPLZAj}W9f@Vo#|OO8t36FudzvtiK_8Fl0038enlhp}BbrAB zg^@u4@my_RXGC)(TnqpsgMxOo-s!e}B6#L|U!pA-KVtPGZL0N@j!u)$+G+s+x7iJw zwPT5N(8srTHcrD=hfcC)%S1*rpS}Do>OZVmyYMU8Y?*kRcq$j-o}yi?PZaS0kSOBK zmWhBjDx{M_IypI%-vx_MP@iWXK>>2+#-T6}_dD6g~_ zDlGn|d!I+z z6tQD2oyyl`2gZ*#UndOEjXfCy!O>JEDKTXz^p|23BwK_^`{-iF&HT%YZk+*u?sO!Zb-)|F z5ZXf%t7e!C!1-Sqh_Lox$t8CfHSw(2-r4AJ^|p65&N?7qQ8U?@W1iD(ZQ16pt}i9c zV|!;KIdNjA`Q=Zw^jQU04|Ver`Qf%*7dvhurTNyGc5$vDIT6SY2y;E+bXzfNW|6u$BM6BdD1|DB! P00000NkvXXu0mjf(dOZ3 literal 0 HcmV?d00001 diff --git a/html/pic/map/CEMF.png b/html/pic/map/CEMF.png new file mode 100644 index 0000000000000000000000000000000000000000..bf6109f1566da745ff6919bd6f44d0fd941fbd11 GIT binary patch literal 1417 zcmV;41$O$0P)iWhHX8`(zwgCU)7TW~c`lXKLV zbUs)lk%`^f{a~saA9?Jb5};I^7_aWbo{27Jz?gc0a#6>Kln^=}NUmJOI9h zWdK@uvQfOP9n0ASfG{+P2Brug+N2FNCEDr_8F0A^xgDDOmsUudK8G_n9%R8HXJ2qN zPdp+S7)}H4{aXVrHvr=O@kElrV*X=%!5zDQW!F-eyF;n~!}gUIJ!vAN2AvkzL^j2U%FY^l44 zf}Of^lTDvvWF02U{_t$z_Iu=BHi=psTc6GYAiPm94XfX`unbwI56v5WHy559@oNs_ zBdlL_k#ziFZn{?E+(k)vW#)aeJf!%IpD``X#h6?@F*ZuhW34uML{rP8Pn2h zn=vgsr-kPzkTESy=>R|r&y^KVS@EdFl3FYgFFG?tLI7&9bg6$J8t_7%KJC6Fi)jy| zb#hS_wXc}z=3170MlYEf1^-+o+ACGU-QnqSd&HJdwpWtLYf`cbiP zseb^V3oB_?vum5NqhjHxSO8>WW#WskL!Zp279Ie|eDh^ODV|J>m#&U7-Us3reauCAYc zSTc^vmXL2IvW)_4_SNo_$8TQ_npYZ5GDq|bR=T=6okPQ1ES*EcPq*XT%89X2cc89E zOBrh!HWKb6;%0*!@@4bN-6xOF&^k9d$}Ni(!1L|z%|gx}=jqnViboRpSW-DP(pc!| zI73}p3iT??#R}l9;Japja3N^!*iuDr(c3XC{Vcv^sqq==(ynF&2xg(#v1P?mt>~PU zO>cE;D}OG(G|Tm>)qa~)L(QV10$0rKs&!Lo49+c-K9<*u*(CsSi64v}ih5OQuY#-j zR?~;h-pY$29|BQmlIzJN>+nb-a{@X3Fh>)5r{PA2AlQ2Q&GI)ogwr%mCaLvZ6a;GO zM3%?4vRqZ!)hxa1aNc$g4ga+D9Vc{kb-DvVdO{?T8TE}sXQm*_(SY~Sb+>5dl@$-y z?9$jt#P!kvr^>TzrqO}S*=qE|lG#4C)8P(lu0OV`SqLJ4>_;E6+ark#t)$0B1733J zqwDSyS2T6?#v}00000NkvXXu0mjf(j2Dw literal 0 HcmV?d00001 diff --git a/html/pic/map/CEMN.png b/html/pic/map/CEMN.png new file mode 100644 index 0000000000000000000000000000000000000000..65b5b1c02d0801ee89b5f6596cc1aca4679ff8a5 GIT binary patch literal 1376 zcmV-m1)utfP)%qcN9N2_ckhPB*B6rZsay`WJcp+B(uy1tsRBF zjuBRx!l2vB7Ffujf5V`XhitH+P?+GzLth1%*1+6qLp1Ac(uMltWrm-47n*LS70|1QTljd#kXufTr-m^P!TVpxNN&d%sWzIJ*v>yf zU?hBWd?G4DFw#*Wg857r35lm5Ax?fI=-Y%3Q-yxTW}CZ^AU z5tD|_Hp{_&k&<_|S=5^6xbt$~DYw`*+=X>n7o-Hons!tw#EY&DO7r)pyQ$dDi|kRo zkXHL&nySxUZBnkw$+?=PG+*ZaQ5!PV1-X%Ytx|y1T&<_lZ;!mG)|A)Uo;sopc-h%z z>9v_D4ts6pUsj${npeiJ4vbiFUsuLzh7E;}S2olRz2$yGt+}2`H!wO^YUP^63ILBE z{H7LCe4J)l=k0k8I4YJ{PL(X?Sf+ux)D#w>s4i9jaK78C=7S1BZDJ3KxjNa73X%9v z>zWo*&8vo&#|)zus)^<8`GO=-UeMKyEz?rP;`Ew4`ns8E9O`tMqqDlI#H8W4bfk{D#b$lDoS=lAZI*!%D?TBd z@VgyjI7oQ{GAkPg`$fu>_2hb`hFs}r#i{)xCmpI;Q}eNyG#u*y z0PcSND|vf3;YUq;tfxPSl$IS3u&4`?q$v4j9HY(&Wq4F3zi`5jlV->(kcSAoaXG$7 z$#35*!vg?D^W3UgtkjXO%A7#zP%g@l|LLOeWMb>_^3;p^aB>!2s=pO9zsEKqn~+V& iCS((`3E71F-`3yHQo*>4BTcRV0000mNYiD zbV=LX{PE$dr>E!MHrd4blEdY4@0WAW@B4lK&UXTE;KOjQx9)%;xr1j}hAcz=i@`tM zXDy=(`0yAx_Q-jOV9POotu#W*OJ9e7R9XPA5_4&_0;V=;n(_(Cp;vJog9Hr<&TmN-?}h?z??2W8ivLL0Q6%2K%%Gbf!iBL zerh-`v~uAgnORNb7Da9m06Na3f&m+A*p|@+VowH!&WEqwd!o8W{Od-lx<@3zGC$W4 zy0d1XEG)Eg0MOj*4iCv9w;27E^ZMdwQC^Fug>gEBk3A*;sO}M+E;j&xi&zD=Hhx5J z0l>9kt7Ue_qv5cO@eBX}@f}~%cm&Dm5I+C3=H2&`%6D(ju}a@*6=hi_c}cK^R!$A) zediN&`0xxZL^|>OX*BPcA~6}l+{x(n4y?oh0B#0{EwkVoNMNBTQXGN-o6{lSh0k~o z3|g5xGokQPA0uQ|zSmnvuAL-l8C_V3pJU7wi6{W@!i%T1^5$kYd7YY6wtc+Y)E=m(tdyH2&)K#f`jV@!T(ei9!I_ zOpiZh<7%am{x`+__Dj?Sze(85rpN}Ji?{x~3jm>u0aOcxhs^DBzild)reh^4YO1gt26#y185O?1`aLsKmSt2Niwlm4pReAyeypeO z0RUXMxLUj`K$ek+vUqdIAksx z6HHCr_BQjxCM{3c%{Q0sGBY{u$DBkzQ#;$uYD0{k zS-0w7^e6(!3v~eS?Kk6@^$l9CZp|c}DNn7qZD@p7te<##EwjKBucG0@>68KkFM32qxs1AJC}8+t2UDD-n$e4tLblu9#>grJ z=sIiIs}umhNAebK#(3>_*t5)P3~S(-8jIUY=t^OqBgV7N3hY&}y=oa<*fTFzj~AFy z0FY0~DW()~h9c*u`%@X(;L9;Tr+XTiom*$Z2kVmP5t;DWOJkBDQ&Ck3+Hgz9BO<5U zIs<^wXkf#qkm8=9;CUr&yGAS6aH8;CS^GG_s<(MBkO|LKhk1$S1L?Q|$2WQ$?o5gu?|s-DXE<*Y zk51>&yLqdM%y(xSA3vdAsZcDM?}G!vkZRRN2wWE_(VBw;qR32jK5y1?aH{7Mjz&63S_^1c9e0(gGO z$dEEQBnbk5W^;(Vc!br3YrJ`GQdcR8#rPQ_yB;V*;&m;5k`UD@dwVD)0rO}bnD@`Z zAE%?fePOhgN=PZV`-p#E4wx*j?>z+O=H`;f<-Z@DVqF2H>;dnA<1q6t=a-kC1+Ok# zYo{@Y&+=mO~WR zM{%#pXV0FU1?)t*Kdn|}$}h3`ywjDjukSrP@yRl*IPlx1N?T<%W2KFhGIgYoq>dzY zB^>d38nkTx=mQhyY@|G51>$k=n_Ir1ENjyx(GcDy>DxLNr6c+Y;Jy(c;T z_WY^$>C?tfnApz!W-4p>?eD3l&&`{u!Dd&=EH0;>vDK>0`a1B#yH~t>b>_SWPY6TV zTeUvZSp}*`o4whU@|ouC>`IvjPhuZH0xT}GxO{eZOPn>vcesAt#`g&Vf`Ge^C>GafaqaS4RGm3F9BlW2`)F)|`9T{6|6`K6)AH9Wdaj#f+J`v8`u^ZE9%`K7O1-QM3; zDwIl;N?4ZQ{$p}E;krnvg`m;sEZ3g4T-ql6_?PK;9zlTPU|A?d6ba^j7M4Z)v2DG- z518tEYy`Z0aSCgU|jEqpL8CYDSjz<}=#dbrd zv2o`PA3u`InUbvU+X$hvSuzTPqP`Dd$uvWnoVPtf^qrYzbBJHO18F` zoMdm0-QBKaHXFtxqsj9q7TMfnYKlt5*iEs|<@;2tG#V(C7^kVW{{U$%T*ol*ol*b* N002ovPDHLkV1j27kB9&O literal 0 HcmV?d00001 diff --git a/html/pic/map/CEWU.png b/html/pic/map/CEWU.png new file mode 100644 index 0000000000000000000000000000000000000000..d012b27ee9e03e157e6b7e01d6a4004cb55a228b GIT binary patch literal 3902 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 literal 0 HcmV?d00001 diff --git a/html/pic/map/CFCE.png b/html/pic/map/CFCE.png new file mode 100644 index 0000000000000000000000000000000000000000..391718a945b4ae8aaaf7b52a695bd3354aa913ba GIT binary patch literal 1906 zcmV-&2aWiNP) z000W>0fLJSS^xkCBuPX;RCwC$Sx;!&Rv7`Grw1=(<=pgm*bEaN>i)IRYp6e8jNVvv0sIB> zn%c3OA$b+RC*P;{p5W(;|Cp8eRX6(nWE)WS0KjXg-Ukgp%_HjMk(k}qsjO6P?kYET z0kju?ck+>yjsTSJsZS5k$^YHyLng+#`e~@_9j79((vg*p%JgoY=+njDT+KYX93{# z*C4X6($RZwMF5_?z~Y&hfhVIXBmEg?O_x-$8FE}j7HQ`sfMQuC07{?w<9Ib*`Vd={ zVZ6i_yFHf@>WcpKAcpt1q1@cfoQ=KeHPpQ)kS8JwBH?kU%5eM=AL`f)DSl)hxiNM! z;BVuHAJzD+ixHQp$fEu@_U#0Un3M53`7Xwaj;|$N-3$SA8c3wEcm{h@9Xhm)U@<7g>lbyoM^W5Z85)#p|!ZYV_gFR+p~p zGHT+pF!5PPx)SByAArkG*CLZQG{Clk-!TNa-!GL)16B^84%X!#AA_~HuFF?;08I#t2Ca`Cl}aVswq=FG+&h>)(VZpr-Jb|G zl}Z7SRg4>@QVGEN`a0Pc-C4p`sJd;UdjM9Wm%wwwCVFXD4G zrBbQfzki<`TPzmI=tsBP0K5WlyQ_26CDcC0zVi0cqqU!CZriqD7?nz;QmGh*QLonx z!!QhkFiNFTsZ^rdTrTH%p67WSR2sk9uw3B%Zj0@@w~u{r;x~S5HDFm5>8)0)hGDc? ztz%O0n#59DqMQ#w%|x#V>7z6b2e^zJp^o zK(a#Inu-I`_T;fKsU!%U5q8_Ucyn=yscg&h0B!1IKRkidDv= z5SpebS3RXVmUV1}rTCH(KX__V#5@EC5L`Fgg**Co+5#8Z94oggCX8@EzK@c!q z&?}Z@S(as*CjTOv!RL+9>Rn#4Mtju4_)EV5V6pFa=4^Slx1 zBTsDG=7r1H>}1n4lgXs(x+KqSnG%hzq=93}w61Ur_%)U$b*ziCj9%do@*@%^lA!gCNwrwX8i3u5-OeUHC1~SfdT~b1La*TSA<&6TpV47wS1QeT2rz2;q3@=B) zG)>tJm8#e4 z&!0cnG%W~%VzJ11SKcU$+*i&Gm+jix8aZ=kXNMo9QYqq^Q>RYJ#7nycSu&H!92^`> zdm_U7LDzL@SJ7^_v)Sy(H>qP22g#An<#NM}GwGn4BFg4oxpGA=WZE8#WPb`gO(tyB zN9oST408!e)@ zg@uJ-zumfZOa4Hc(zl}_%NvEyzw}wrI9=R6=}RG(%T04It4y%caU9#Wd2cu@qiGuT s6XLnQ=RbSXA9+rH@cjQj6aPEoPmVVtVgV&CPyhe`07*qoM6N<$f|S>-G5`Po literal 0 HcmV?d00001 diff --git a/html/pic/map/CFCF.png b/html/pic/map/CFCF.png new file mode 100644 index 0000000000000000000000000000000000000000..fa1a3120a84f96189cf2f5ee1556d996caf96889 GIT binary patch literal 2060 zcmV+n2=n)eP) z000W>0fLJSS^xkCzDYzuRCwC$Sx-zGR~rAAfLPLpEsg`1lJ9Fr&XEjuMCcn?4F@i4}iO&6_JeTU(_nQy+|{Jwwh^MmNnN8RL@b;yv);j{b+ z@_z-gZ^$`R$i5+G{OXw(L{$!ocW*v_s4QDT?L_o~M3vep&U`)a=x$cLbA0^TtruZg zUprndojvkqyL;n)Lu=^s4_^k+|Dbr)$}*SE!m32{t1H3BnP;DW*z@0F**E0;J0kUpKcteDk=M#l!%PpI1xR%n~f$*>`_e!B5L(F%uTH#lxjp(s#65N#MEFeomEsK zBKO99kORxPsa432T4K}^wV*0hYWERRL9yrbbt2jfsfnpUBI@e)5z$-yJ+Lr<@ddRM zrux0`5H-1U_N(++&Pa^M`De`U+2b@3HME9cWK`h3A*V{(C>8CAsNtfTOJ~`yUEMyP zXk{>Xlu;KK@}rih&Q+<95_gNh<5J!dYX5HKd%)kD&nxL-N3e;(c=FFb-@$i$xAJ|J zXi|3j@5r0&xpWr(13x0_IND_N#<9FNpZ~|?Lj+N)zhQA9kGUoUxIWH2t5PBq8E^dR znOr(+^u}94?RRD`a9st`Uq{cvVdcIUe3ghgf=vMK>h@iB+;bzh_JM@AA@|iE&jO<* z)c)vh*65A@=Hhfqs9jOFEGCbRqfH2z#Erk>4ukC#K|5M!+4{RJ!;Iy|0L70p2Y5mV z*LC-T+z~zyibkXSGGd4KFR<_G_H}jp78mke-M-&l`8k&7MsCS?2g^&xaiYh2t^P<>q2wQU<(_&Pox!W>J$V-Bm}Mb~v>u~-?) zvTP~O%P+4Pti^F0zOn(B6W_%5;ZZCWGfh)gXbDPMJ5bBRXJTgH*T4J|P@9{ZiAYwl z*NDYpL==fcz;9w^VB^8cd2>2y5ePf(b^zD!rZ{Se%Z>{?R_FKoGnotv`~7|*!kt7S zar^dd7#2Z5L<@-=5xFi2L9R=d*mmj;!!~twe0%*q_5{;3HBCz-5{X1Y)3i(`qiLF^ zX~2lZVzF2ZOT#dd$z(E_WTzr|zWDT%<8HCE1pUF@GH<=?;ng3Cy!l;r+;BJyy{S}6 z)3jo-sH!SpaCKc**Y!*$1J{Dz#LU3z55=DT_J`lBztB9REIhFGao5<*0yQMT%d6DNo$nM_s)A9-S$ zCV#k$%|_OBT~$@baUjndBmxarXkcG*Sy$Kx{2EI`9qZyK!z=7Uegt6@DO_1t-mkXH zI#l3lnr2;HU6qJcRh8>sS;RSx10}$deY6cZIkwe9=(_HC9(+?OmE?$(;bkxAx-Odm zruIC~bzKC`?pAMmi{_2nwr#FEm;?fWrKKfUJ`e~HQCnNv+S(csEiEk}QasPob=@!w zB07Eg^z7{HUah54*4_yr5M4run>TL;0)apv(Ad}r8Q>Ao+S=Ok@^WKiV{>zJCX-oT zUk?NVp65lQQI5OGF{@%}kU=c2}Hg2i@=}(;XQZkrNs1LB;A1$752ZRj<&; z%Ayx9UIcb3l|s4KG%XwsbLp4&0J+9iKL)DMI&;n-rGyZ?U#3ziHX1h~JOTW^$4=Ew zw~%CpVQ>%@3I%@3^FpD(1*nYl!62DUp->nc9K=%B_2J>+U@(Z(l=q)~H`fE4;UWF` z3lLDe-*Ii)_Xk%^M@?f#m qKhA&lYCrO<{owhhe z000W>0fLJSS^xkBJV``BRCwC$S-)!=R~-LJ2oCOs;3-Z)8ic@i&?)b-Iie;@Ou&oD z7ocPXw1d5HAmmgeZD{6JLe3;pzCe9-+!rJGi08wy?ufFzd)`xcCHn2y|J@(cv2*Y2Y^7M_k@{!& zQC7vS6pOEpk6#@h6VY2ud#h73L%DJ%(f+?;%~a;@Duob zb&(MtTr5;dWepObwpuOTEZ6{G><+;Gt){h;#3ce=5Crp`3OvtiwOX$0wv(iNc*w~` zCL@033H5p%NI?)NrJ^WeFG*>5OezS1z;#_n;pgJx$LQk~c<4hbSQrF>@B1m1sc1>Z z<+C_uDW2!?lNG?6co6%;PrmOvj+06(sTdu~K0kf?Gc#zlTJUlyVp8*cpNN{xCipcg z75(sV(=a&jWHKrY?MT>(qYC0mrBc7&=gFl~iHI=L>2$i?E))wVAfi1@lYtJRK%H2; z9LF(Dv(xExIvvwA`~ALYnx<(2!}opP_wib-R(ri(uh)Y)_!J>MZlzdc^$ukpy4VzE z+qMn4Q52b`IT#FdT?Y)FK@eD$)$jLVTJURDDjZ9Ux^#HhCNc_zPb|k~JG?rM!|tx@ zI+v%xV8G*0GOyAv!UhfA{Da6xIm0lX#c^jOPs#)au5b-dfqKI*lupYf7U}6hlI&?3 zo^Xy!TYiUS-z3AO;A_r&(4oYG2`$T#xsB5#i0)|`5xGR|B#}W?*xlZ^|Hx}6N&62X z64{voj&Z3v*>qjURxlF@i-_7pH2Ko<$$gYkaw9U#>-D-)YA_f~5@A^u0twj68_7s1 zC3SNdBkh^+qP}nvMe5vq6%ZB%h$2&(GV(90bnNQj25yy zD@0Cp9EYbOd4^&5^y$;yaASS2Vr|=IA@Jw@{r%KCJkIkx2mzk7(Iw>W z_6FSDvaB!+VVm>wbLp`XURuGjEU5;lIt;@g2;exQN4?7u{i&D`xvtB32c2@cd~|dK z&6mq%B3f8jI6XZjqNAfDcuE+CmSt6|RU%qmUVi=hHIz4cv>ZAWtT%SJDk-J5wze>? zX<8VDN-4mgot&I--M)GACg4Hq`Sa%o2M3eRu|p@kyLa!td-twZt3jD3Cnxf{3FSjN zCtje+nWa+c!-o%950%|+7c4!`!>Quq$B%dJ+!?zP6&pE7TDn@TPCq)2x$MPpj5W1d ztIgHnLZmL$g0&UCqH>*lpi^A6xpT<N(LwaE<*uCw7R;QQL!`rvzPsoXBK{$Aiw;Z?W!$z{r?#L7iX_C U#xqp3_y7O^07*qoM6N<$f?Yy0i2wiq literal 0 HcmV?d00001 diff --git a/html/pic/map/CFCO.png b/html/pic/map/CFCO.png new file mode 100644 index 0000000000000000000000000000000000000000..801b5280e3baecc89174abc9265cb8e8f34403a8 GIT binary patch literal 1928 zcmV;32Y2|1P) z000W>0fLJSS^xkCI!Q!9RCwC$SwUzUR~r8G>Q+Gt4yJLumnh31?3qF-=uHTLARjB} zr8N%hVelT-JCnd(LQf@!rH7KEDfAFc4h5rILYhm#X--xGIjlyPLPs@1G-?m4xQm)l zDRsf4J$&-hlPt+n)0$HH4#S(#oBwXQ>~b2wOFAm1aPfbOxU(Z~EIxVqQjX3{fwx`7>SFN0P7vUm zoA~RR58xMw*TlqbSIH`Xzx`+7`!c?{`I~u}Tl1eq3(tYsCIAEhg7XakZ)ecCD`G2C z`#O=Av-fsq@9hG3KKIPME~Es2`?v7qY1FwZer00mB6IcUlV8p@Pq9d(gp{~{3%k#v zr=L!z58_C?+2$!m@wFe{1R!rL>SOAU(cYU*mBf*h_HOR%sBRE+JEt>HsWc&~ID*oH zEX8&e^8!Hd!48RKyML<-Uvg1$Cqfltw0pLBinl+X{1U+PcjtL4bAtZqzLN<+5x$BcDSE4+DD9#yr=L8H2p?=kv-fsW7rU$m0lqKyS(G_J5gvsq zhQx1m5!+S9kN%NHl1xoKHr<{a=K3qwyR`P=0p%c z=7hYlD06~j>Uh)DrSJO+HTL>W?DZYmqEThq3l0XXM6s2~bzLbX@ubp-VR<_QG6(|C z^8mQ6tFGSGI{UmOD*K!tUkrkvP$&#|Ie58^3vsZ^?7udBhSR0;r}6pO`&4m(KwL=hl3p_7S^(Vd<+Y zU$gHxj%k|3VzF2(nx-BDmc^+B)4nLe-#kY5mm#}>R zIC%~K-q6yAcoWR-Xvl!?7!`*`(2uUK_FhS0Jsz3Q3jKV{M<%GI;00C08{!rmA5zFt%_Tbpif z&FAQY>Z6zYDjjs{`eZ$k;8Zx$^SnMg0Q}L5my}YUh+gJYvUa;YswgeXVj&S*`AspB zQtI6FibNhX&-2uX@#+kK85D-0k_*0K+qP}nmSw3Yx~Z9=*7e(=-m|e(bOPvE-@Zf( zcAuB|d|n^wIF1@h@eIT8+O=z?{-*d)#M-v4j4+?eQY9^BbP%4#%q>tWl97j!D$5td;mX$~(eBbAIwJbByc%=muOC{?< z#X!BLM$??KrLwFmGzTG6KXEWcidQvQU$1(yP7}O3juVT;#$;?Fkx=?Kka526(+KhO z81*2xHeJ48SymW^j7_K0(KA+u*P~!rmQDky4#O}A0w&JktzK`5RtvZ1c}jQKF$|+t ztC4xbFaXTW%{7}%0JU0;nG%MfWm(y57Qm%TmmWQOG-_)p2DW!nN@kao^1*`#hG7_n z5s$|?hIjy)&1R#~h{xl}WU^kb@9pgwh7pEgKA%^4x3%dG-B->WF5C6>b&}a=G}KSY zWRhC5u&|&DFLw+2$W$uz;>C+ePejyy(D!}rDxxSlfByW?H@RX{gY-yev)RLnGwz_9 z5moM9y?RwIWNr_Jsy_qI&X}$GkbSH^^vabh#I95-lzY=OZQEATude~R#*RM*8nSg( zHN%pUQmXZ`QmH7?)J8;g2!G_U)40Uyv@zc9p>%!?c4eX+JxK=huqq9uYVjUL!)e|<&$3u z*=%-_gIO`gOV9Hh$5DI3!($A?;Ce!x`*r@=oBYUg@`L9;|4jVjwEqJ>J~-P^_fe++ O0000 literal 0 HcmV?d00001 diff --git a/html/pic/map/CFCU.png b/html/pic/map/CFCU.png new file mode 100644 index 0000000000000000000000000000000000000000..00e691432d1342905195cf2b5da2d781f94992ca GIT binary patch literal 1592 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 KMNUMnLSTZz#pb^N literal 0 HcmV?d00001 diff --git a/html/pic/map/CFIF.png b/html/pic/map/CFIF.png new file mode 100644 index 0000000000000000000000000000000000000000..f1d37082acf3daa3900d8fa128d757dce747800c GIT binary patch literal 2408 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 oMJk2WRTu`?v+YBy8u?7)|0Hq)$ literal 0 HcmV?d00001 diff --git a/html/pic/map/CFIO.png b/html/pic/map/CFIO.png new file mode 100644 index 0000000000000000000000000000000000000000..c5aad4bd91ae7fb27bc58a359fd89f3df6e14031 GIT binary patch literal 2474 zcmV;b303xqP)r4`Cu5xX=q^={ICD?t4sYugcSxkJxU^+2P09e1C%~D&7WD)>-^R2eF zLO+#4Ai&<~G;|#c3knE<%LPe-Wg(r0VK7yDz08)uU>P1iH3jA=JYAAN2$D%y7LrK@ zVOa{YS$I59RY(#P1*XY-B$2en}nz?}7$J^K^o znmB?;A9NifBLLv>;Mz4bHWF<81&T#@Jn(p&U^dcByw@hmO6Y;$+W`6xGSz+SXEpzM zXWqA6Dr)HNnYMwu_Z?@lQZ2H8_wApT7I^e98@JSWBpc7r;|-xRv4LRboN3c39+g<# zEZM*%4cFDtm8uAM6=eco=y4YK^f zKP1Wa7m7!v;XAxmPoJ#s+*UI_k8&E{_v-7UI2iumn8s* z{lOMdz~kkkjaqTf{>08*SGu~VseIb7scx2rk3|J5_@wJT={kUI&t?YtgG)OJXKGuY z0t~+%{`{*owL5*uk21A8eYUe)ooE?6KVQvhSluiE=;-JgJ{I*!*T?=Vb@xmo(g)Kd zPCO?}TUh;F#0{W!r?0KOOAw`y`@E@Tg7#0Jtgjvig`}=T{TV=0%LENlMDQ0IsV%Jj z@kre-U!05meK+r`{F?`kMx*w+w6Q60&l`!-nu+u&f>;!3-5`ap7sjTD^80V zdR!}fsk%3~s;huSn_krL!MpzuMnJY?b+BEx4#Y*(>b256~3ICGo1pR8_KE^p^CG&h1FF->e@8`=~mIe>*kv3>csIE$Kp>u z@raX;-tblcqhs1@zYeTc%HHr+Ua{1c?cq>%qledFdpLCVpI4ldT(7%Iy>C?>OU-s> zY{*GGJ9w4%DJswt+Z%+DiAL|mv3TGzS*oXOjgw$A5devwdpoE^MM_v+Ou)-+N8_(ei_caP+R z_%M1gHh98tTD^K4LhxGAeWVJZfGEC*PhhU7-O?4P`_L223SnJVLWSJt71*=%9gSN) zKv`sWspx!;44w!9Ussgr^=Lu3Hc7YgtLkxwVu>QeSh~Fop0Jk5e|)peMbB3Bc-6h{ z_$}9Es@W1k0bpjL86gx%WQCN=7o$a9;RB}*C>5_);}dDYeW(?D5g($N!(| z@V(bIItSB{_MByS_U$J&5FF?a+Jk7Hr|>Y&lPVo1&}ZVkZDG~MqgbTky|v!;Y6<|F znh1J+i((PQBGPG^$-9fdH0y#?3XeX@AnWQRSQca%J|AglV9C8m-(Ar&!xM@ennv*b zSD>owp=Aax>wIV8mN@2f?lkO}Cc)z`psI?vT#zJ-5ae=vy4IO~UM(2Su+!vuu?SU# zEWnkHk%u66Kr7MuM< zqO1(!EZ+nItm1e1GW`CMlrEP-YZm~Zs&KnO2;6Se*JE-Li;MgYPyy9hzOgAYGav*t zHSl`z;Dd}fKM&I+=>82f4Tb@)7uD5JRTK(HCehr?=CVs`c1NgfEmLNjpNAyDG*KuZ zpQpt=g%!N=c~&e1Se0*dl$C65-b65nxjD?v!nwcNg{EW@fdHnauzo#KDOPTxb*@4I o3k%5QV48N}^fsFvBk!pFAK^&MLX1ON>Hq)$07*qoM6N<$f=S7*zyJUM literal 0 HcmV?d00001 diff --git a/html/pic/map/CFLE.png b/html/pic/map/CFLE.png new file mode 100644 index 0000000000000000000000000000000000000000..6267bdbfd4d6b2ec381e69656846e3212d236bc6 GIT binary patch literal 276 zcmeAS@N?(olHy`uVBq!ia0vp^YC!D5!2~3ek}s?PQk(@Ik;M!QT(3cxv8kIk3MhEY z)5S5Q;?~>i2YC+}@HhktSMs-gn5rq!q`i3q6LUdYL!7mX`NIIsmJnCZ0_D&e`P#}& zlg+kye7CT9KmArt-<0=CBf`pv~f-?nvU{`gVKazAZaoyx|$nLA%fRy?irR8WKf zYu}2(koY{V?AKnEb(Wj=i?`&=ij~gG{v0#ke#ge=uRW5%>dJ-mKiu+K=CoK<9Oxqk MPgg&ebxsLQ04#}U82|tP literal 0 HcmV?d00001 diff --git a/html/pic/map/CFLF.png b/html/pic/map/CFLF.png new file mode 100644 index 0000000000000000000000000000000000000000..5564dae484a89f6576776675b75c6dbc98729aac GIT binary patch literal 272 zcmeAS@N?(olHy`uVBq!ia0vp^YC!D5!2~3ek}s?PQk(@Ik;M!QT(3cxv8kIk3MhEU z)5S5Q;?~>i8+i{I2(&(QFX8>XBemfQ&%}cg4OYxc&e~*ZPUv}h;)GeBnbX8E7r zILCTr_1tH-ugsMBwY&ucYJwj>dN+Hu+FFsxCYGL6tFC{p5|Kgw$`?-y&ysPf~zytH=RdHFjL`==Fbm;eIy@%-#ZJ&)dywR#2g4TGnv KpUXO@geCw|L~+aj literal 0 HcmV?d00001 diff --git a/html/pic/map/CFLN.png b/html/pic/map/CFLN.png new file mode 100644 index 0000000000000000000000000000000000000000..028b020b4dd67ea1a1a7f41c18927a7123152b1c GIT binary patch literal 286 zcmeAS@N?(olHy`uVBq!ia0vp^YC!D5!2~3ek}s?PQk(@Ik;M!QT(3cxv8kIk3MhEN z)5S5Q;?~>i8+i{I2(&&_mSNq}F>l%}-CzTkX$#T>*%qWRL}e{ouxu&A%-}^X+cxT| z{0oo!d@@~or|`;oCx6}uQ=9#3c?$^0ocvd0Yy0lxl4D6qkM2ad#J$Sfr{fxRMvd`W zijL$p{f&Gwi?YOYUhSC0&E0OQFUGX`yHV0(@jD`4_hi}2UcT+sRb@B(=A*ke4qv@@t#<_7xk;j2CX400R5x Zs%Kq}kY3MzwGQYv22WQ%mvv4FO#r$Rb`k&p literal 0 HcmV?d00001 diff --git a/html/pic/map/CFLO.png b/html/pic/map/CFLO.png new file mode 100644 index 0000000000000000000000000000000000000000..b0b67deac3b3ea85dcf7c4ac2a95b96e48470c17 GIT binary patch literal 294 zcmeAS@N?(olHy`uVBq!ia0vp^YC!D5!2~3ek}s?PQk(@Ik;M!QT(3cxv8kIk3MhEP z)5S5Q;?~>i8~K_H1lS(L7j;W>s_f}moPVMG!9tn4H)UmNC570`#o5?}a=0?8TeBY3 zKh}+ZcWX1du=Sq`|yyI0pC#iT&su6zrc1n2ftSJFJ4*6UR%~knl!7wWPu-#7{NBsBSO ze8mSAhw>E{4{2VvYu@_lkEaL70uU1Rt@svaa92d>^W~X;w<=g%{(Q+mcGmN+Kbxhk j*Qw^{fK~nZS;2I}Ch2?bgEv!veq``;^>bP0l+XkK@1A_w literal 0 HcmV?d00001 diff --git a/html/pic/map/CFLU.png b/html/pic/map/CFLU.png new file mode 100644 index 0000000000000000000000000000000000000000..c36d74c563305c2acb006250382c16dfa5e08280 GIT binary patch literal 143 zcmeAS@N?(olHy`uVBq!ia0vp^YC!D5!2~3ek}s?PQk(@Ik;M!QT(3cxv8kIk3MlC4 z>EaktaqI1QM?nS!9+r(_8#$a=KNS={ooG7Y=BkR?^L&%F>pNYPCVHp{VN&}iFx#$j WXL6~qp8pDH7=x#)pUXO@geCwN2Ps4V literal 0 HcmV?d00001 diff --git a/html/pic/map/CFME.png b/html/pic/map/CFME.png new file mode 100644 index 0000000000000000000000000000000000000000..c3eeb1e30264079864f1ad7fdf357f0205713754 GIT binary patch literal 24213 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 kr^^59a6IG}Y^y-IIFg_JpD2b_JheK>Y;U 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 literal 0 HcmV?d00001 diff --git a/html/pic/map/CFWU.png b/html/pic/map/CFWU.png new file mode 100644 index 0000000000000000000000000000000000000000..9c1847e20a50a7bfd783f1a81f3f0673fbcfb242 GIT binary patch literal 3692 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 KMNUMnLSTZlxd#yd literal 0 HcmV?d00001 diff --git a/html/pic/map/CNCB.png b/html/pic/map/CNCB.png new file mode 100644 index 0000000000000000000000000000000000000000..e1a4e68d7738dab332cb04ea677355c3aa0f27a5 GIT binary patch literal 1931 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 B4le)z literal 0 HcmV?d00001 diff --git a/html/pic/map/CNCN.png b/html/pic/map/CNCN.png new file mode 100644 index 0000000000000000000000000000000000000000..1240c44e0dde5ba1a1daa019b9f9bdab376501fd GIT binary patch literal 1670 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 aKkeT?`acdHo6$}H0000 z000W>0fLJSS^xkB6-h)vRCwC$Sv`!?NEn^u zDlQ`%N+@^hJyGp8oP<+*E85l3Y=eVD3J(+%cC|&CC;}-}LPxH6+~Z@MAMbLku3!qw zo{YaY-}`>Y*{IcO>S{;jU}yV^Asuz)<0s_*0&@RsaQNo^l|t5Pwdr(vb&!W|-X9$u zrD^(|iaO;fold7(Yhz5O)A=6M3uu|9DetG#>HgW^2SQ5eyP@T0ZzIyeFlxnSURZ1CSwAPn!rBb#u#(+{7 zQqrrGx+to%)`~PCz@jLUsMwI}y5&)wGG0nsf>;R#dbQT&?Yc@!sz}i?RIJ585R_!t zSwSfLZ*TPPsMqUzdwcbI9ommZBPco=jc~=gw{G3~>+iGnjjdJ0 z9=>_cS}4tfU1P>#Sk7EHE`b*W0m8uIjS{V`AT!7{B&O)nHnHs+TZ8drF!&OSqtS?h za9^+2af2Dq2oAa47z4tQnb+HrsFF8~)6-K+G;IbL+!If0{qf_+g@&}<2dK}UJv%); zg)DfA)RHg=f2hkkN)Nww?b!>qSu%hM_bGEGKh~QmWNz$r%}=d7jftEQXzh zbpyc;xv~KWf&h=$4eqVH7{{??7b`P33-bV^KrN}9RGO36AAXAC*!O)Yu+!;SS+KH@ z?l26aD8e}qA_yk;!O1v|l~TvY$5@O4cX)Ebrf{(>nR;M0o;x9~(P#{ZLoRMK8cHe5 zBuUcm_dzV2fXS9*bUGcTz@^2@_kGuOlO#!!#C6@_aOk?O>$<>*<2a6EJht2IG)>bq zrBUJ7vWt+-!^WR~{Lbt%pU;gkk~GN8^W1ga*=$y=R+UnCgj$~G4TnQyO6Z5G$KZw> zGIy}E?Z|8=lK?pJeV^_QJTNw!%{UK|G3N8Rtf?>)fSHdrYPH(Y(Gl^2AfPemFVNL0 zmPwLiStgwp`XNhOE+Zi;c!4d9EWZ-l!h;EuB&k-blpcm*nx+{0*ZyN*e*FFL@xDxpG#rpEXy80ew=wef!p$uSlEG7{y)$>RMJgK0c;sESt~gTI(o^$m;Fex2@xFrFaB@mfX0+Cdr=X zRjXCDxXj&fG+ZG8^Ld`LYC5z5U*qaxA0=CLnozc~#uy|iTrp|&K@O%U0$1PnH#Rm_ zcx<&=W&X1~uGi~9h&=q-?sKrS4R`lEFUvC62HBDxE8(RTJkPV*Nv(C3WyTmdPO;Vd zQb}a%jQT7SP_x-QKR*Za&1O?6wYj-DnM{;Y=jZ3}lq}0U&uh2aN~ybd@4kNh8srsQ z%de0?WmVEzKYjWX^VhFm&$3Kw4H%5^c+9%JwY3F!sP+8$^LOvwE$d^yX+-YbyZ7P4 zhi154}qQMInurBx~*1=sbAIr zhRSNZ#qAbjh6fDR%RJ9X8XFPbgkiYi^s}aql}Gk=yUpY$KgRN&hR|9+dGe%ei7pO# z_J8o;0UkZi>vp?0Z{9>`%KB6OR9h+YX{*_6atClI);s2=Vpo2d?>>Yz0%_46vUc8V;B6+O5Fyz6`c2fD3f|l8d z^6D^6LK>{s(Tkt8Nnf{LKIW002ovPDHLkV1fo!HF^L5 literal 0 HcmV?d00001 diff --git a/html/pic/map/CNIE.png b/html/pic/map/CNIE.png new file mode 100644 index 0000000000000000000000000000000000000000..e2ff3f092a288985f58755404584334a4bda6b4a GIT binary patch literal 2602 zcmV+_3f1+AP)W8fZ#Mw2@6Is7(S0P$((2 z(_}Oz1}C!AOr;kC@Mlc&PH6Z0ssaE;PWw#-k_wa$YgNi z1^_Htgk+NO9S-n3laE5mGLlJxt!+$2k_1g-;wuW%iK+rXX(=0J?p#Ep0NB$=bLZx0 zPfWn)W6yXTvW!@a2O+TA!Ew+u#N$vDrfRpF+0yTyfoB|=0vkC-KF5I&M5E9&M57Es z(|9D4a5^Cf;5hI+RF(NiGzvk;4i}A@C5uKO%i#GL^Pqhwe}TrMUY z0G>xWZ5~CZPhMw@+9sSngxV%_A4F}_j6OUMS!NA7PAJ4orfCH0_ac)4fQ1VoNx7F& zG>YznwAos_3cy=uF4CWG)GVWoecfkS=NEqu0OR8*EM%Nu5P5kN4~jytX+IneaGY77 zX$&Kh4%Xg$uA!x}P|O?mBuv;@_-B5_1T8DWzyQk1psJ80o{2~eV8GKcj7XH;eKk?C zI94d;IiHx@_(+GwgUA?;#Xr9Mf^mNPx(}hY39^iV0RV71F*=F`3kX*K0+|e)PB@)b zu;2XqOWOFTWe`BgVn2YPLGS+G6#>|_L7y!{_UCx%YLSWwKH&vVd2$ zGrPdM54P5>G78k*e2yZ8hQm5upggv1+v6{+>i|%-ab90%q^Q_6Hj*L+HR-?r#HSir zkOD9%(`X3vYcTMjk(>}JZ`|MxZuIdV;sI;+mdx6gU<&XcHbp#o7?)$g) zUKDL0sM67-`CZb_H{<6r72Na-#oTPtl15K0PuJ`y1(d16z0>O6D@5&qZ}z25Zpt? zrxCcPBdD)Sik&Cq1JHQ9*H@QaGqp|G;M>qr=@<9-vFG`9n=78Kq0U+HbgPuij!S*V z_|$3jhQR6#2>_peb_xK6Z(QC*SB^0@5s$}Xv~Wl73FAQZYc_ZEo}kaV>SwyXI8C29 zI{?t%hCS~X$Dxo^N@9%E@4lKasf#+{lh4*z`71YNjoQ~4(QT|dc~3`hU41FFR2CB8 zj1$@QcAjp_zRpNbNAP%W{qf#Z&~NM9#g2FH8rrDQ-#21YN7qnAaB*Sz=7QZg_! z=mju(S@gK_8(Jz~6WdLD17{VV8cCn^xF@me?L4EK?AyB*01dN`F7=F!r20A|2aaq} z@!?CYe4sogB?E^){u}N8UG*a-59h3#W1u{CYb0%D(wO3L<&W4R07h()KzXdEBPgcg zVk$m$CA;xm_|KWf9Y6WB=L7(w;cp8`HPe4G!fA?;Sz3{wC*-G+6BLi~mz4XLl>3c6 zL&M>s68E*ia9#B?IrsbAQWg|D5>nj6FDQ0cJG(tL8h14X&LEGD>i^#*59HGs6tCR!-w-L;e^vg#^$ zA^yYag;rP4m1MQ(Y$1mRy#>XN(u#bO4ofTYFMV;{)OlTf>9Q&|k6C$aPNKHF*mvFf zs{F|!YtP_?`0a+e?IOu(%bfhLF8t5RH0k3WZK-i)TZV?i)|I2rSS7Z*SeI62XgEw% zSQjgRrB4-G^^wyAcam}{p_(|R-O;#*T>f$-=ZuXZ>H8sVTn^E#iY-~}Cvpxc?@WA7 z_X&R+%#l`5a~YV2tmhMqZoG2ASAC<_`$cQ*s@uAcRV`YszC;E;op&(OVE=b4dSDqn ztJ34uTW2oL)_nl1T)oH|Hs$YIV+mX|dP95jInH{$3Jr(p;nOtG`7UA5!##2 zRc)O2^4|5sSEd?TDn(J`boqX};~%;Pj0bz2F7{ndNO99tuJljlw1O!_aGvoG+D=jT z;VGU`KI2Kp6s&tXg75b~XH={}hy?s;V6)C#yS?C}mO4WSSK6c_VIr;*7ZlR?!^_RyK+un#RW7_!dyCT@1d#+*A1JE}@hvl}iKvD?9M z8X-ufjOkiy`gyisG{a7l=a~!y0X7>{6^cSo{R*+!KtDXMO-=$}*>_q9IDP0Y1f*i= z)rVjZgurHl-42_LO3BmGkfy4H;~>lMcp!=ljAq+S1&KQoE#DYRHkFka8iLEkDkteQ z4?;Aj6Ap()ZKHq)$ literal 0 HcmV?d00001 diff --git a/html/pic/map/CNIF.png b/html/pic/map/CNIF.png new file mode 100644 index 0000000000000000000000000000000000000000..af489900efe0af0acf5852cab02829f38a866bc7 GIT binary patch literal 2437 zcmV;033~R4P)b=g$nC^AX>B4*>4oh1bh9MuSAtkjvr8 z698yvz{(2OyIc@O&W|7!1uH8IM^1AS$ue}E(^pk)6HNnv?c4b%)zwHQ0r0z7s;i5% z7Z>66@_RZBML{Yhf-yLq5CrHt(rKtFH+6YA_vN;21$gG63D~SL>jeRfA(@1(Bbnq7 zx-Md61!ZNBBnSdT5t_!=NHPgY$`6-JTA3x2P!xz_!91uB=?j)A17l=75zEV93~o0k z2S5~&&00q>C>g3UuL2;ktgbI-n;15ne@NDWO^;=LbIw@*7;e?L6Rxsnz6h8OI~2l#OR z(6Kf%Av2PJR~ele2p#ob2m@&M?Ty4Is=oLA^y5dGtQg%4;Jk%vYA8}g3tmx904k$X z^po(2kRXX8(Q!fIgVgQVxiB+LZU2QYX*M+tjU!#He1$8@I!liSf?%u{!Xq~3hS{nu z{U6o)gJetto-pXAl3El!USl@7!~%I59btxG52EJ{(_8TDG7xH6Zw7$a!E2-Q<56dA z9a)tyY8o0BW~K#6G<;ms&^SLHo$Nb-j<9HUwP8;So(Ts23t#5W?3(Jq(H#m8y+7#bMh}=nAfWLZU(-3J;J@UjxBn;Wa{zX{DR_@ zB9$3<94rv<_l85i{yCYKmg`H&%|D$3K=8i7OB65^3w(1hi*N7}0s*?HUF!aPWuXim zYvU0}EYBZn1JHBvMz^k8%rz1n2eAM6FYWq+LBH`c5}&a9`0Dk@p^kPkUY;e8--pg0 zYa3$B@MR=EarJs6-g`FQdzKs-iBC}20f_gW%>!RBZp6-}fFZ{YY*QUZu3QqJ1C zflvzq-Da)@kOp0P#x(2L(0X!4bEn;hw%K5*JLG^Sa8oI*CV;aLN2iY1dN_zfBnb7)91zq&j6VG z=iiQYJ$1>x3e~{wRE@BY_>Jak2ixu4h%~Igo=m%OnTKqod_l3vGvLE`6=m?Y3naxSTkz**iKV*W@lDdbqK*Bk_p`qc@8#g^l9UV%W;)6tmg6GCE~9Y$n*O$%=*LbKmM>QI-$C zx^34hTCpihqF%U@@Q4cSpC0|MJ?oEO=@Lq<9gA6L`4oMnUi7NgX6h%q86nDNZ1 ztR<={qf@e`+r7SX_nvzpKmD`4Gxapar2Coo4*(Fa ze9?XQ=nw_9CM!l7?HjywFz7duM1rN|-63_txClEg16Gnh`DUyW{l#^zHV+IBRJ;lK&F-OTBPAn1%?b=7=ai{bv4 zLd}EG2|FF0=W>uFI2_P4s4Bz0UgmIsE>YB%mH_b6cPa#Y{n<+pBw9xGVRjab!Qp_@ z3CdtJO{CJ0u4zmVpeU%Q!16K&qoa1q5!l8;jcW(3tnq$yjTkGD&M_(yks*!k8RuV>=_aX*x#>4p(&Y! z*NeG1Y~PN>MP6>AI#)J}R0^xB&@`}D%R`Jk@|EQO(Rr_p>*S+M00000NkvXXu0mjf D)ntp# literal 0 HcmV?d00001 diff --git a/html/pic/map/CNIN.png b/html/pic/map/CNIN.png new file mode 100644 index 0000000000000000000000000000000000000000..ad063a85d857ae2399d0fdf1b814f1390bc2baa2 GIT binary patch literal 2369 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 II;Vst092-J>;M1& literal 0 HcmV?d00001 diff --git a/html/pic/map/CNLN.png b/html/pic/map/CNLN.png new file mode 100644 index 0000000000000000000000000000000000000000..fd4cc5efb028b9cdcee09e91778b9eb2b00902b1 GIT binary patch literal 284 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 AO8@`> literal 0 HcmV?d00001 diff --git a/html/pic/map/CNMO.png b/html/pic/map/CNMO.png new file mode 100644 index 0000000000000000000000000000000000000000..134d9d0d1a1628b403c1a476094a7e462a3b82c4 GIT binary patch literal 1526 zcmV*1d$0`F7Zpc@W%7AP%~ld7(XLHpv{OdCEooeA z>5{g&Y2w3~U%!6$w#g>emwa3<_nv(B`<>tU&N<&X0oe6n84k4XGNiEkEUS=J$bT`! zC;M!O#PHz>V(hWw62TU=P=hkc$}3+-d|X-p@E~=DK1aeXJzfNWmF9Z`gXv1(%dn(K zi&}^Zt)jBubshl1XPqc{;hoxFzFd~OguD*HzSPdZCXg&47K!3*6to6qRE@Z@H;Yt` zc*t046DY6|+uX1mCji(eX!weF0KnpLuX?U%fEhc`Do36k~z6u%xa**{~0+ zRj-UVyE|)VW>>N|i1B2<_{`>x5 z3i;{rqSPkDFA{DwS(ulFc>w4{UA>W^O}vM`_gRS5Q_(4wLd&j{o7NFN7m0I;uD_WJw)06uCJSYN%} z*ffi;S4NzUnav%I#|io~005*mS+aN($?K86_^kfD4>IcaZ?eA1-cfGbdvsAdN(dPk zOw-W3GU9XqNNs{1FQP)!X+(||A{}}0B${_jRk#S@?sW772Op#W0Io+y95c{2n8rj= zCOJgHF0V(z3!m{GKI`P}+=S9k{hW|nc{tEcugxGCBC!XlGo0fj5-I>3ed(l8-rDM? zuTzuiqdjH@AtVq8pz&Ci0;|Y=*Lk{^&V?KyB-ocipR|gKb0Ozk$ln++**U zy|<=bm{u=LPbGB}T1Dl=YxDT+t0(N`Pm+y-rmx?XY%Mj8y#NoXJg>tymw(`95<*aM zOfEPke!hI|>Y?8L`v5R}ZmE1#fGiUUb?II)1$e`5xuqi z>Fad>aJK)s@{k(^O|rH0xZCX$Ypgu&wqIX}aWe(s>FBLxqsCN^Pp(dvhb)yIk*jg+ zWmn(sOzrBh>rEOv^Wc())1wTeC>;cV@4g++udK3ief@4GQ#2B~Ii8bd71Pzd9;qV8 zg8l~ptTgi*d?3?UU(e5@^k>eR8k-Mu&z>;Ax{TuSlmmWN68)8!`jg2 zQO16}Z(L-)eh$5_B9Fyw8%>TIg=5h<)~Arrv91PgX4-9^Oloz%St{L2E?={IX)3=l zmNE)`9_8_>b(+|==wT7Ly~J?he1~exc|#e)rrmZEYnKX{Op)D79Nnj_Y>=Qm#-eld ztggtg#f>EZV1op8w-Wse` zvAh~0v2EjW>2Qfl1pvh?$#SVcu$1Ya?o8!bgD+|!!L%EhnO))B2lJ8~kU96+PGcG& zQ%PNoxbR5F7Ev%QodLjVweap!%J;b2S(a8&@pzu)BE%{xlC9-gZtxTH&_~bpz8mzRmdu26|xFhg{(qW cA^*4WH)mMtS&|Aq*Z=?k07*qoM6N<$g0NTP0ssI2 literal 0 HcmV?d00001 diff --git a/html/pic/map/CNWN.png b/html/pic/map/CNWN.png new file mode 100644 index 0000000000000000000000000000000000000000..56e13d308f43ab2ecc94bae111a9fdc33449fb17 GIT binary patch literal 1325 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 FV1haktEK<| literal 0 HcmV?d00001 diff --git a/html/pic/map/COCE.png b/html/pic/map/COCE.png new file mode 100644 index 0000000000000000000000000000000000000000..63f38c2a4b21e97d2cc754a51f509d490c656b48 GIT binary patch literal 1904 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 literal 0 HcmV?d00001 diff --git a/html/pic/map/COIE.png b/html/pic/map/COIE.png new file mode 100644 index 0000000000000000000000000000000000000000..af13eedb81c9121b5f2567e77a0684d097f2b8cf GIT binary patch literal 2671 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 literal 0 HcmV?d00001 diff --git a/html/pic/map/COIF.png b/html/pic/map/COIF.png new file mode 100644 index 0000000000000000000000000000000000000000..038a1fc3193fe2d767b2c4569f98649c7811075e GIT binary patch literal 2448 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%0D#b%)7!1cRKv4jox*Elzdnw5>hWcpu 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 My85}Sb4q9e0L`RtM*si- literal 0 HcmV?d00001 diff --git a/html/pic/map/COLO.png b/html/pic/map/COLO.png new file mode 100644 index 0000000000000000000000000000000000000000..b930bb72f92d46aa35fe1eaed998eea150fcd402 GIT binary patch literal 282 zcmeAS@N?(olHy`uVBq!ia0vp^YC!D5!2~3ek}s?PQk(@Ik;M!QT(3cxv8kIk3MhES z)5S5Q;?~<6hI~y90<8}x`Xpz5VY+irxq^B9^FW)%k9;B_Dr(cr#KhD#ykkmiPwjnH z|I{R&?Zi7CrJI|x^nRa7nYiEE0|-t`ys|vIbp4qn$C8vj+2pxCSvzfZk>;hNcO()_ zlhY#7ljLk%uc}0Z?7r3Q`z7!7;dh07t-Eg?zjL#~DI!|m((Fr9x9i@p(*8bunF{&h zHMiIOHVL}A(^Eka0*qbu?p3%Wl6LKI>cZQedtO#%%;;PD`R5Us}`U+KFp02MHJy85}Sb4q9e07W<&bpQYW literal 0 HcmV?d00001 diff --git a/html/pic/map/COME.png b/html/pic/map/COME.png new file mode 100644 index 0000000000000000000000000000000000000000..b28b174bdadc45f19722fbba9edc61e49202a615 GIT binary patch literal 1574 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 N002ovPDHLkV1mX*rbz$* literal 0 HcmV?d00001 diff --git a/html/pic/map/COMN.png b/html/pic/map/COMN.png new file mode 100644 index 0000000000000000000000000000000000000000..4b48a4c047a9c5a18719986190d5b561e1f9e253 GIT binary patch literal 1389 zcmV-z1(N!SP)36>1{2b9$|FgNvx-g-@3R(~WLBgA2lmd;}M# z=&^?T5@DgJ-`g7`<@G;@Yt$_O5Q-B3Ib8c@TzZzx%kpPS`_sPFdhj*8R7jzyUlCfJ zIi9%<0Fw(>Qi&Y^=(L(}k(cGEaj80(tL_j;z`rBv_~EUnL#@U>2u+tAUTi z$uY6hYRYB~v4ZBsImO);Bd2HCPOC||5d&W4rJ0W?@uVP8%km{de+t3?kX+xM8kaD(oSLV`SO(yoPfH};HB71vMMr_x?PG#rIpZJzDq zo*;$2y}{&4NoaNEzWVrk)PJ|Hr}is45i@K(-%!hOPibpEPij7RbU&Lp%w`VD_LIBI zzAvxbyCnj^cXw86Bhkxwajqa2NqM)!(qiPE{c%8QIy@Z?PY0=)h#5Mqrg$X%_Klu; z2a!a~U~aV?>=x)ZOsh?;d5*hK+IPw=c6d6lFY7|eaI9%ZrAF+!+)io!_H;WQN$+Kj z>P6a}e`%_2J>Q^QM~60-GnD3j_J!JjsV?Mt?4?QxR>x{Bo_u}qRkdd6TG>%&v;i;8 zt+sB5g^FRf!}8POQ%dvd$hE#fJFe@hSk1Jd@X6x3+M(C@SJawo@ni#|bEU0ZvsnS) z$-=K{Ar+6)OzT!>jsuR$CAL!~i#e8Qpf5Fr1t_SS6#(3Cb*tk+rJ#0T4+_~jqb*2b z@rN}{i>b}4hL^_-qZXa5!w_NDnKB{a9% z`UdUzgizGayM}R)@b(7Ni!TlcB+u&1QNwO&mswmt*ey_|ti{$UZOE05R-D>Da?+tT zYid4D#0f1X%d(>6n{f@fN0s4Gnc_oHKTeuc z;}Us@z#HeqIZA%>dKnJ@7|nC5X0uX9zAAG9sYAI~LjJ24#VZB29xqRQQGcAAg_p`i vu6;mg{)g8@Hjzza6WK&Ik^f`le{lT`M^4J}1u+{`00000NkvXXu0mjfT`QP9 literal 0 HcmV?d00001 diff --git a/html/pic/map/COMO.png b/html/pic/map/COMO.png new file mode 100644 index 0000000000000000000000000000000000000000..db692a6dd325bd56dda0cce68a5b574f03fa1e62 GIT binary patch literal 1503 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 X=1gH8>4dvC00000NkvXXu0mjfBLI$m literal 0 HcmV?d00001 diff --git a/html/pic/map/COWU.png b/html/pic/map/COWU.png new file mode 100644 index 0000000000000000000000000000000000000000..9ae99f2c26c0719e8e03eced5a1df59b81dd701b GIT binary patch literal 3873 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 literal 0 HcmV?d00001 diff --git a/html/pic/map/CPLA.png b/html/pic/map/CPLA.png new file mode 100644 index 0000000000000000000000000000000000000000..5f1383cc7e15aff952e5bfa36434ad6aa3e907b2 GIT binary patch literal 4768 zcmV;R5?}3!P) z000W>0fLJSS^xk52XskIMF-Ud9}NT6NhAWX z(>M-}o9gVUa`msf@3yDkdoKq2_?Ddyz|k4Jch22=?e$;Heebsj@d(O?5MY2U*a8G* zJh=$P7*QV}zyj1h&W{nU0R$2NAOxfY2{1#~?L)T>TL36d5Dh@2@WSt++eI7$fVHp| zTBE8^6wvyKZ7C5&h$099W1uyf26YW%zzokrw~Jm6Qo7P5L6$*lNC_!hVVrsQ)_GhM0NN0&lyg>vfYtyMh~WFJT#E&aY4?ibHkK>H*0z3F z3n>wX@Vs`R)@^jHg;H%Q3DK@vdBO~4g*<<-4r@_W ztvoJu-Dy5{RKfS#Omnx3zw^d9y3*Du;d$^pCT?XZBy)y+1w({`SUa-`9IcQ+OV%MOn6q83e2Ha7CrsBfBQx z6n0Xq#QCI>N+F8SG*~YC`h%}O^RwUBo@^~^p=G=t{Za8Odp?*^mYB~`RUm3h*=^f) zAEl6{@ckz>MZM1VOv?FLdF$Mp-&p$Ww!~ex`f3U)_ABbN9=BzB6OB4{4w_sOz=|uI^9x1ZJwLh{{d5RLe}xuf39d^m(#d2k;yC z8;}DO9r;%Wubxx{lM`E5%c}}@?Iq7wUpop~V?J+RJ7dn?$6qfbMWpJ>>7y41AK1y{ zg=YFH+mVJyfgx;yB9zsDqucwvjFZ4bO3!RGX<{S1Hs@VtxLN>I+cj3bQ7K62d9X?v z5{gVG$oIrY7v$Abv;9lPUQ|dER9zH|!a@UgPJESBUy6S8l|lOa_KEM~U+!M~&ixDf z`I_~DR^*l1TC4UKmq9{62r2m0-P_jCz3JM}?Dxy}PgOV06xBnUiL^NEt7Xp6Qs9C9V(`Nu-*ft{~RFwje``#c=NiuBFRoNdt|6kj| z^q=266P?^VEb`qFFC=z-4UZ(o4T_3oC?mmXz?qG92c?KqC&QxTJIBG}MO9_fEB5VB zoIDJ!9K_vHdaZ;)fJi|pVRSS<<}gT-CP29^CfjO)>C!v6kxjFwdbHCKy$~N%SX78& zYz+}d$5So41DmT0!K^ugp`m7M9M~Bk2y`W=Q9z6 zB;Rl(u$}U`9Sn!WimfV7bsk(E9WFEfcuY1cQI?XP`L#>M(F@aSV^hBL+~T$Kk1r?p zuU)VG%x?McavYCw{SXh2AZkPmQ;;dBF3~K|ln@{TFyL9p27V=^CU`RK$c?U5EX=$d zc!&LXNkTlHB&M+{wt9`4J!KAyduKgywo^X5-Sj=Xo}gLa(HQUTW4Xjuj0gxdVvj^d zvIYx#;7iS>&m8n12qZy*>r(Owc?_?kE^pY=i9VRHwD;3f`B)6Eo}8DXbFX}Ha_v;H zKWUa##}3l6OL{2bFHlvub_;jM2qmqD=n~k#YY^l}7=dN@qS72#L?NVt5P*QKP#du2 zrtzU@I553f$V@%{G>L=<(4(Z3?rQVEPDD<2Y0Irh1*Q;d4i#7P67# z8J#WJ*3@ML3!?`TO4ldww_!CvP|8wGvrLGp?pZR4h_-k$mg`d^kM7;;zOFK;{a~%z zh?l#3Giuh!Rx{KY%mR--vYy4+1ic7a;G|+=1Ok4F6N~W-{V9(ERuZ+QY3QYXEqy?u z(OhVr7PijOsG#35G?M*PJa6=V_Ktk@*RSlx+3s?7aWJg{HWqSv44bRh3p7+3DzRi#5KACL&g>(skkVxT%az{?<3kJ5-cnv+qI$) znps0w_zJbbR8u9PwO&3jy)r-bH{U!#v~!xo3;lan_72XSJMkL36>}6|qG>V3<0VgX zdy;W1;7NEAX-HcV!wOywTY@WeVroFs$7m*CWAjW3h5!^Hl*|QpJlKe>#qyfH^PAs% z{_p-|UU({B*l`qWY-`*_w#4~9J~-l!PVmkYvj&-lx5Q|MUrMnZq9n22=^7Ge(01w?~vio9W;s=0tslw=iHGJ_aw;A{4@&F4r;NQs3< z@0gvNFa7!R|M8~+z?FafK?_tsX;CsJhOgIbBoc{~O$x3{NNEz^`e3^&mC(c>_qUsZ7lQ)8qFdWutz|a9 zL%nX&sHHn4_+7E&vN! zsGycQ)|F+*7=e$#gJ3X0BotTbrw_a?g`auJil5!Yt$jNy5d?;WRb(3$h6IR}00Rv{ z0}L48$Y89&23`OoFfUOW)D=w4>#8Ul!4?2%0|F#aG*s3^A;J-@)kSlMxBlVJ)OTESLq-(`M}``P%*;08kUT7n>VDy9_=P{SJ09X0G23Jq%4DB0VW(V zjWv4$zJy{#1dm7sXlg_ONK;v1&TKp|gNzjtkQ8)mePQsGt8d=a9pSBQy!^C!YKI># z@RJ8-s`V@9^u{n@K}$wqxv*GRXg~p>AYy8WKnQ(w6L=CrvR1-c!~$ILMDyH$6c!rG z2Jk=)FRI|J?9}VQxw~>CM59gz!OMGe{uJf`t{$;c#WUM-E%Ixi0BUVLLIlJ>A2=nr z6EF!#AE^ha;CnENV*xC2lJU4!3NumCM>znJHiIRHWe0H5%Tj~Bb>NRS3RScNDMfwGB*j>LG3>vO0O!x40!CM9CV zQ|kx`vd7*gzkh}rv1|i|hCPE1)`)|va@7C*VSQY(^Sy&%*`aAJF zFr{DUJ&$e&Yfo*>eFNF}lW8d!Yry4D?Di>+Y?MI849#MJ#>XJy<0HJcphobSJ#o_W z`hz-3X=mMPpMwzs5AfBP*I*gODjmf)#M$pG>x=#QC>qC&t>*SQUQE3@>GDvC#|rsO z?4@E5N(3^IrC(WPAQLv8h%K_IeK$vu@TF~tZSHNGGg~M!F;Whzr4KpI8Ced z-LeyCor}hfKKsE;EX=i(-uraoGFxVjS#e)aQ{dd#T$vhlYoDzI~{m#zy zd$G=Eh-!qP0hqCshubS{i`Qbz2hP*zWI?p?sNCv92X^K+a zxwUrdaP;2?=e}|N&F*&n_xmsAzP~xhem*^&duu?;-4uM^5{+fQ_K$R6^0WGQ%@2C4 zhT=B$&-SKqP)lVGr>SgMoLD?9t-Lzj4s};fJG*_+V>e zeswwe_j?yj7|uERpgOIi6smDpMxozl&%1@;Kh+}^h(xt*W|wfh(PW3qR2(#4-2L$7 z(+AzA^p^GU#M~MSFUB+LcD;)rr5hL>9Hsv|-uU5o`&$p5mR5hG_jVP_@7>#Z>vk^> z`fofq10o2$A~_0i3?WLQn?VF)P~n}ze)mX+s7}Slzq9uaFS&Sx*+V^E+WpF;sd%=7 zQ$t$Bfj?}#hxX~tpMCpt>-Uxq>sv)UFXXcu z#l;=k*_2rsPciXv-{%W&*)!M6E$u4+3|gvaNq(!L5Kkcais5OkuvmNwCRrPy z*a&9x!h8E@qobxLoSsdmr+0##Ju7@sOuU=-yKnq#{jI~z8*+0l5|#x#-GbE>l5-$r z1&Jsf%{p1V9xf+i1gGzkZcrcUlJ;lOw{M*L!Q<^Q$BhVD zY~=9l3gJ4k;sE~&KRYPVP7qvpecy4C8o{xp@o^MR>hIj%gEmVXh>&G1M05T*=X}34=}4o4W>P{qwB|s$%b?YCKuY!l2$3WFc@_y>vo=E4rfBjK zfJG3X(`gBB)3ngekq?I)m1+ThSw0Dz=P58lN+bzc%f?V$v&-8!b`aaJ${PV`2^zLx z${`9cf1KO0h0vbYLhn@w-54UvU~LPP05pw4RXHTjLO=)>f{FtCF-CUiTWc7@pG29C z->!&c5PS+nyGT_P@*G;XT=(OFg2Hl%C?abi1QUUoKRI?OOVl-%%O|4&SK6+|tEx4b zrY*5{4BMTuu3KKb0JV-DxLgmlPy<$+u8jv@qtV8!QJ2 zh6n<7)#|Xgn{D;`@ckzfgpa2V$aCa*tFRlztrBEa63!==Q%UlKnftzKcX6+Spaqw1 zxEIIpyiaYh%FiHpqP#QXy3C4O2LZwmVc2fsoFRg>3jO}45<#iVyea_wPxvS2q!hDXRXdV6kzy1#&$_yRZ1~$(C0000t=tEsx~q&u6Gh@ zvey+5ym|a%!q>d}hn}4Cii-Tnto?V@sRX0DSC(2Qt0X^65?Z5U#i`yr_2j1nxv6_z zN^sUxrlg-?2rP2HoABsNfv%-QQ%lIEb)UT=IHp-SuiD%qQW&;}<5c6xQx~2!rf$A0 zStlrAZD(Y>d)kCQjj6$E(lfW)?3HQ#=Xvl<=^wl1o2tzj$-MefU2+$LukI={*sbMs zH}doLyj^aLd$!G7eJx}$ujKcH8I{qJyRQBEw{qjb!|vC&?2FfbaVuq+&5ny<7UE&6 zb+=7yD*YTeId%5$Ni$wHxOD!H4wyLCS2{h}x$v6VmGeKk9@#~m{BGm@@2uP#@!T)( UTVDFDF9QXmr>mdKI;Vst0H6q=s{jB1 literal 0 HcmV?d00001 diff --git a/html/pic/map/CPLU.png b/html/pic/map/CPLU.png new file mode 100644 index 0000000000000000000000000000000000000000..676d25b154c26b165a80002eb95d0731a16cc181 GIT binary patch literal 4484 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 N002ovPDHLkV1hv|s~`XX literal 0 HcmV?d00001 diff --git a/html/pic/map/CUCF.png b/html/pic/map/CUCF.png new file mode 100644 index 0000000000000000000000000000000000000000..3d9f9746d4d2ce75889e72f44bc118f923872f79 GIT binary patch literal 2073 zcmV+!2RP) z000W>0fLJSS^xkC%Sl8*RCwC$Sx-zGR~rAAf!|yPMhqUnc*P`0$s9Dq!V6ykn#yi+83k5|McO zBv@u_n}|C7?)4{|hf*cwz>pG=(U&BmM|bnFbeS`%2|+|{-lmy}Wt38#s7h^$;Fp>h zT+8Mam59i`ejnt(a%N%~_9G!N5)$>GDmAqG7^$GxbM_h$Z3WcS#2^uMb-Rh^_5L12 z7{GXgdW1>Y4-Zwdmd$_h$vI?^$7*2%F!OVTjn(YNY8KbqyiHKx+Nes^c%o`pRM)b3 z&TCh<+b!CN2uR2%5jC|1kmHe%sLfTW(h_$|z+)+I4S2p?`VR2-W(!KT)ZuSoFrNJT zZ+Gw>-!6SugR8PPf5%?)tY!1aANUbb$MF`UFNxE8vxR?s`4C0a=53mvD`2h(0j{gL zjT#c6$arI;y=&RL(U)uucV*DtW|>UMW^yXWT$UES`t-hUOR=Z9~}c!yiO z;_-Ma7PBl%&d1njZ^h}y6WNa^vV0{J3IWNsZ5cHZiB!<7A_cZ>Tb2bcd>oq%V2)G3 zV~(icLEE+yi9`j?IzL^N|CO4GDlE~jalrfI-PBoc{40;h&yq|@niI?YK%^L+NvnYg{pG9>8F)^>Os zU*g5@O56?xgYcWlWHe1Hl}f6r0tQFhwsl?4<#I?Z_>E5uEPr3>>GwSRdi~wL0IK?B zgZ>ni$_IGma@p(~fBE7`-1zLHGvJ!ZWN<}Qx3#`lES5?ozK$Scj86@`X(Wm0;n(X# z)YI>Iw=Y0M??rd|zJZ87ziPB}b>NxJ2TSKKPDHIBPEVfsMgKcf;EK`!6@=Gu9Jy%6 zrv~8RxtETAbL~Ea$#1k0(FJpoAr&I}-B1cq-F&b#ms%UU)`#8HmAKvi&J_2YjE5BJ zx-OosTttLYf9|E@n-7*=c%`}1?|$Kx<_qTJ1#?nvs>X0Q9En6={j~eG|8hCVp_7NI zs(2MxT9&oTPi?^yLdY*7w|OWO5<-+prTtv!x{gKyHuHuU2_fXz>@yTM$hnA~^tHCfmr#-o-K&i^-;@X|gHA z({Y^3moKMx4~_>1HW&=D6V&s}%uL1gMmcAk3|YzzOr#|+YSv4A()Gci+s!FazSfOoH!v1 zFLn#ErPu3y{P=Obn@ZFzQi5H@*4EbP)2FLGi4_|fBxl+%jJ=9e>q9p(%5;Z^hvi1b z_MoczBk`Ej*s53A$I7OcE?ok4CX<2OYnm1e23h*$H9*$b+Mj`{Y@NAh&{9GOUN1A5 z3BB)Xn_{szI5>z?UDt<(hWvg% zT2o$s4qRLh@eL2{&u@T&;`NTT>A)Xcb$x1Ln1zJ}_?4GE%d+HUu6AS83n{-fx2!x^ zj1C3aSOX6mEy!DYd;8wFC6h_{2U?x6tqvIuhi}}t!H)Lx#mgstDHw)P&xcv1220Db zOw;7O;a(e`&xiE{I``xJXRrQGp7not{`sGY|3Blu&Vhi#GSEn?00000NkvXXu0mjf D5C07T literal 0 HcmV?d00001 diff --git a/html/pic/map/CUCN.png b/html/pic/map/CUCN.png new file mode 100644 index 0000000000000000000000000000000000000000..b3ed30d08c9813042d7ee90072d8b82356add1ac GIT binary patch literal 1708 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 literal 0 HcmV?d00001 diff --git a/html/pic/map/CUIF.png b/html/pic/map/CUIF.png new file mode 100644 index 0000000000000000000000000000000000000000..23dceba3c671ce67f7b106ae3b642009de61e539 GIT binary patch literal 2431 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 E0KAxL`v3p{ literal 0 HcmV?d00001 diff --git a/html/pic/map/CULF.png b/html/pic/map/CULF.png new file mode 100644 index 0000000000000000000000000000000000000000..107f0e5e39e3be394d833811ee955d8eaadeda3a GIT binary patch literal 265 zcmeAS@N?(olHy`uVBq!ia0vp^YC!D5!2~3ek}s?PQk(@Ik;M!QT(3cxv8kIk3MjbS z)5S5Q;?~>ij$DTo1X>?nH)!Xm=()G@c)`ToTyl%Mos`(RqmsG*rd!VL5A?j}aryPL zz4LwaJ}++pftujxl8Za@E=3u7_U~5Nd&RV6^$8L0)y&)S)<|#T-^jBrFqh++$-3S{ zuM(xZuO2w<8prlLIPYR?h$DWn3~ZP}XsNiYU+<44$rjF6*2UngAfr BZA}0G literal 0 HcmV?d00001 diff --git a/html/pic/map/CULN.png b/html/pic/map/CULN.png new file mode 100644 index 0000000000000000000000000000000000000000..a5fad23da50717dfc8c21c8d148ed2c7bfcc175f GIT binary patch literal 282 zcmeAS@N?(olHy`uVBq!ia0vp^YC!D5!2~3ek}s?PQk(@Ik;M!QT(3cxv8kIk3MhES z)5S5Q;?~>ihJ1$%cvvs^e>~B(%fLYC+Py{Pr?ys!_+4149aPR1ut938SCG2XqyHCA z2j9`y+W5-S;Wn>OY| zlqGRnxQPnuyxfu0dh~Eo_t687Y@Ks{Gn>2Gu79=svBmvoi{_nwS^3XoTYhy9$L-a- z6GNZRZvmMLLYtgi`d>Xix_pNm1Xv%q8?(i-l&^FRO{n5|x1q`Ui&Dp`TlZKSkB2DCnsRd6fqz@L zIrE>)&^O+Fb1vhg&p2}_+;fr&5ZyoWu}ZJoYKBNWk3;-Z2DYs){jw)YT^3~U zHW1_SR!KXkw@Rm}a;o;`8H>wr%awhE$wkne)%RInR1<*1UM$%lj(h=G*Vs j_&Dm&F|ewW^ZVInx2K(4yh>0C=t%}oS3j3^P6EaktaqI2*gMthSJclC}-Uph*;OXk;vd$@?2>@M%EWQ8$ literal 0 HcmV?d00001 diff --git a/html/pic/map/CUME.png b/html/pic/map/CUME.png new file mode 100644 index 0000000000000000000000000000000000000000..03e5f860abd8f2acca12f423037d9653fa60b850 GIT binary patch literal 1597 zcmV-D2EzG?P)!t2;gG}O-pgMjOO~F8o71o7p5OQVzVAEd`!2BJgFA8J#0o=dR^G}CWCrpD2EV-5 z1VJE^#>U2%4oSeA_TG9&$=ZZr8QA<%%>rWpxTbnSvy7BdfHLf%dE`>+eVwVOE zECzmo)2F4Sg-k9w`~b`aCIA6{_NlM)0355kHX4!uu2g?aSnuo6| zO7}2r(24gYGCykb5N-0zy3@iA7MNGs=W&jZpP{fwjU$s#SWHS50DH=QFm2F{hNLtP z0Ag?)Jl1cVp*Jxe^K}6{Mnlq3n}-F~DD4Y{MT$XS*ae4M_()dtyl>yr_Lg(r$~?0! zF&-lk#kA`0n|H6C``fRm-{QK$=tR# zcNQyEy~BeN0S55Nrk^XS3cYS1g)|SZJ4)gi0Q#6D5d?w83q>*|j_4qPlqJHWHl0J6n>{%)TUc z*e4y^_gJ>?i37NK?K%Jg->}s~GKb9*POsOq9(MI~vK!UzsCM;ql4oVvF3;^7Wc|akH49(S7VFrP$b?cz&J_J>V?a0|K(Og z-N#qDI{~ncpA(WWXnf{bzl~xy+nw0y@ zTwr?Vz3jU;A1JT6&9-%92dBN)wm0`k)9&!#^Lj_gj4uU2I9YdhPP)8f7m*XJsrHgydw(vog?snX3R=@`wM~x= zlfax|YLMQLc$x*yz@=V$|K4^M@&5QV!oJT-eQGIlj_`C_-#c973u21VqA<}TOK$(p!st4%wIgdg#8dM=>xNx=j~r?z)5 zt!Vp7S&fVh1Auoex|5Ir0FibQGS|^rDXXq7i?j^@kjrc-z6s=()8px3fal%58QgkY zL!_EFmQtP+5f}iRfse;WJ(7~dNJ~l*^O-IZ67LX+=iR=UMCiKz)33-}C7m~r~ z-nxmK@i$&K=swePfh*N2MHeRF`Kh<`aKI%d8NG}hI%+rP22i zZNW2y)$uUHkhWv@!8R-ObQFJkEGfyL=!7^{EtCYuj~~=h$$8<`<3G`6Ih`p!)yuJ` zoayNWh@&ZHIla0r9prNd`5XYRX~sVP#yh{52wew&)VE(A4~bqzNin^8)0 zeALq~*6e61V-3TG!mU_T?~s*0r`OCrxc?lZGu5xjSQ^S7Z{E=hDLxD!8DJU@l_kN! zv2-l4oa$N3w6!&YB-5uJv1$eM#R>o~50B{iph9pwv4yhQB-@gbd=%XYS}`)I83R#D>lt>|sTYZF^9cPLsg zeGES@hQ~9pyV?wevnq~P({q7l>k@l!`AMGAWY}X;9pZ74aDObt8s0|mPD8CWhB0;Z z=;bf8F^w#a$8q!xGYno4S;Ns;UsYx~jdvZ2?f!wmpErJ@gmz1Nzc`F<@W)af*HCb3 z5_mo+Iu9=hBwk5yP{S^+tyoko>{F&ZN~h{IWXe}<9_IA^k&_P9tf~3fET@5C0U-VU zyX0|yEQOl*+Mwt}N{?I+u&66#Ra0_>mc4>o8y>aE&mT+Sq^bBO$V&tsjK~Q}9-Nva z@c@7^ytf(_D|O{-Fei{Yl#4aU|8!A!HDa6b^2F=N4eoTj)c;q|`aiY>*@A3Awjf)O fEyxz+|F-@HL7evE3J!H100000NkvXXu0mjfi;uw3 literal 0 HcmV?d00001 diff --git a/html/pic/map/CUMN.png b/html/pic/map/CUMN.png new file mode 100644 index 0000000000000000000000000000000000000000..c9fd9649b3d638ac9a5dfd939142c9bb55526709 GIT binary patch literal 1437 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 literal 0 HcmV?d00001 diff --git a/html/pic/map/CUWU.png b/html/pic/map/CUWU.png new file mode 100644 index 0000000000000000000000000000000000000000..56ee1cd431e9669b949a8dc7a203063cc2089aae GIT binary patch literal 2759 zcmV;&3OMzNP) z000W>0fLJSS^xkFc}YY;RCwCGS=n;r$PLUoc=V;U6cgdkus_HDAF)rfv#XVwS6%Q! zf*>WoyQ4$VYLZo`1dvFe9j-qRdw354q(K_sAcEuNu>8X16>vZUoPIt3f$<-JgYy93 zJwkx<5J5@$C6|!~0L!1ayurDMfBgq9FSuR-pf$9HQm}1U7L;=A9Re;FTrTh)wW1W{ zjFeC-M9_73dBJbLAq3QloUyK$Caf!J-7QyJBl;d)hrZXZM9><#4kDQ6;{oq6j=109 zz23v6bA||F#5f`ZI0x_b@lsGLoYOa-5{bCoP%D-NA;9}%<8Lo6krKKN&LITEh+%+; z-YkNY)D*sk0Ws?NxMeAr=ZNc7A)051=$5r&UB7HxE2ashAOwVlkPI613zcEpr4eeJ{+$=}kq@AV`G7|m@B zIY*?Vcb9^7#kQeVc&{Nq0JyYsSXVfwVZv}T44Gg|UqYP{L@*2oklrKbi02a_@W=`& zUzdv}mSN6~bN&)X>#Bzi0ez4A9bJdku&x@I!(i#bq>5@XZ6v~k!oWEr86z$i3;WgOK(Jm0$F;{)3U=QNeMtg=sxxZlzDM-K5a6N{n9DChQ;b3C{A7zW($7)SLM zqk)Gm1gCqXu}ONsgqBZ#+J zt>L@x@px#Rp((V9wi01NosyPMdd?_f9F>fm!?r~@r*(tzO;3=Ei8EpGUbEg_XHI9B zklQQ(L%=ZLazTuWnfGums(Xovl|9>%$Z+YdLrT~-ec0-Q#VWz%gJeFQ&j`zVq!hI- zPSb&vDH;IVhMcvW(V+8LiGh(gEhD@n4VI=-uq=A2)*{AHIgHd}+-PEeDM$ukQnU1* zUvx0pXBd>F>8V<=Z33| z)>VDWy&3m*M60GoH*}kAY0PYK@avbdya<*B@9$e{*b=;|p?KiVvdo?6R0cQCVUbBy z;Jx!+40dizBrHdnV+=h;*5!hnBi`N)F17Ta;a1HVfedM*ei0`kj2Z&~0=Vyzn5=ob z;qw!%MP*lBqo^@L;I7_7B-D%;YHF?&v?hQ!=RHueT&@99*Ui=HgRgLhwq`t1hP}VD zf=2BEYy$(zG`I*LRb1?%7m<|B_YJ_BFfX<5k+ZZ`ceR1bE#8_Cx$^Q z-?^$-9p#qP!2jDzX|vaLs1>&xoa=(iWjEF$mIB&2e158wV*W6IjeSg1n(no4=p&M| z_Yof-RtPhKW*GmHT&N1^R70Cl#-wt4RxtXyP74<060?A4|NIG&h`;~VDoQX}Rg9@k z6__Hi47TEIufE5RA4fxO=}w);VjvQ=yW=^Sj;uZuC9Id+{+s0C9;P4Yi?gP&fU<6G zS+K5AB>|DK7_(^r-}n1Lvm|%gVI3q(DIa7XVU3^ZH_F;=+s!e!Sf3vcMVPgW1)OgZ z{h2FFuhN1)|J3@rv+-e8t%xyd$T6lF3*)H1yxowJ)-O|HrnRguGiAj&iV-Iz2zO$j zbsfer90=96*T zsWa6Z*xXb2Fh*!4LxI6R49aWXqt=MmSDk;5d>KK+^W{amPqOY=qgq)$&k!CDWhE0$ zDQUSTb(ex#qk4|t5^;Kwr)O~|LroLrIXWpW==jADW~`B%nK?E$I5RB(@1wG|$xf0E zS3D0ULhxN|F}9q%Z_P&x!+|PY^Zu?igp9!lZT-C>1^n~hhid)SEl(5X`DmM$#pNu3 zgs1}naxA@QGYiv4*Q-+9-T?8QsEE^wvwFz+kk}&VIw9r8cucNXH0Uq_)A#uN{DM2v8e@nCH5ZH8A$q-Z~eN&MUzVqCfo_kFlv!ocSAHo3CW zc-FC|hWPC1YShsK)0w4!=}!mP0M`VH1*e5uN;;mkWThjCib+oLgZ_fR)ooy6JYc)> zXABk-6Q~>#I)`b}t0u8H(cqS*&3N?4Y-L6hH0xlPon$+nk1(3%9|k-gnheZTX0weP zW7GjZmHR%yiYf+fH`kif>QWNM?e%&Lu}MAFHJY%tIT*dg`^|+c!_%ZRNqBQUikEl~ z@5Ot!ERa0}t(zw@Hp?<$U?Z$E7t$l!hIvLQ-{fG#^NGvFwFd9SIars?Z)L+cbs!;Xa=`^c=I? zhVrMrLy2EnbKavA#gj~7p=5HNslu{AS^;po=@iTA7jLsD<&Q(;KhE%E95D>SY-MZ6 z-?m;~wS-x9qYLL*)dB~t+}^_5+7-%x+YPtdG2-m|eZa!YWPO%mn~8y|WTE!qG8 N002ovPDHLkV1nhJHFy93 literal 0 HcmV?d00001 diff --git a/html/pic/map/Center.psd b/html/pic/map/Center.psd new file mode 100644 index 0000000000000000000000000000000000000000..83e9e79735e92d126c23191082822f3a2be6a7ae GIT binary patch literal 10024 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 literal 0 HcmV?d00001 diff --git a/html/pic/map/I0.gif b/html/pic/map/I0.gif new file mode 100644 index 0000000000000000000000000000000000000000..17853e476f1a10820a12d5fdb7053fc1d6db25ff GIT binary patch literal 114 zcmZ?wbhEHb6lPFjn8?8Jfld7Xd$Irj|1&T!DE?$&WME)o&;ha;K=KSs&QtnVo|c&3 zkfMKNW{#*B$ID9gC8ZD5rLJ~0&DiCn_u|O2Hw90wf0Arjpy?rY_{midt?6f$edg@- ST7G5K*RHc!+hejA8LR=a2rZ=m literal 0 HcmV?d00001 diff --git a/html/pic/map/I0.png b/html/pic/map/I0.png new file mode 100644 index 0000000000000000000000000000000000000000..1029b780dcd257c59e7111666a1cf3fed12e70a3 GIT binary patch literal 362 zcmV-w0hRuVP){Zn00009a7bBm000W` z000W`0Ya=am;e9)97#k$RCwC$Q!!4&Fc2I^^pxnTh!4=@3O>LWD5*{ha(}Pj1DA;E z%Dg0nBjpEIUY!>V1zO8aY={JO9%+@tyP2IG+lCYXfH57B04Zim9sq8%(6tR3X?)Sx zjlPMkC)nEJ<^A60&&LZMp6+1Gj=mv)715G#|2ksm=T%+_-#&IA#Z)<>B_5w|v$@mZ z>TMt?B!vKcgllwh4giOK=Frasz|-MM0Ib4sa%1LjK3*bq&`z#xqR!zrovhT^dh+j) zGBw$?U*7362U|}`->~!|6)9z5M9SzSsUTc8`!1_SQRxp`2y@3m&lz%CACCB)1v(-r zFr;Mf-BzfoYI#{xg+JxJujH>p#T$S>L?J6=g{+Vjvi~Og1YgPCmeN*AR{#J207*qo IM6N<$g7PVu`v3p{ literal 0 HcmV?d00001 diff --git a/html/pic/map/I1.gif b/html/pic/map/I1.gif new file mode 100644 index 0000000000000000000000000000000000000000..fd607d0827b1799f79c9f98e2ea1596741966fca GIT binary patch literal 114 zcmV-&0FD1gNk%w1VG{r%0FeLy|L+#IwzmKO{{R30A^8LW00062EC2ui022Tr0006* zl#i*)2%myv55$>l6*dUzc?YC*;U^l^ih`KBLN4gU=In6f*YX*JpeaZe!{pUSDwoWr U^9hYgr_`$Tip^@bTxtOTI~e9JtN;K2 literal 0 HcmV?d00001 diff --git a/html/pic/map/I1.png b/html/pic/map/I1.png new file mode 100644 index 0000000000000000000000000000000000000000..daa4092127a103ac2e73464f70032515bbf108ef GIT binary patch literal 363 zcmV-x0hIoUP){Zn00009a7bBm000W` z000W`0Ya=am;e9)9Z5t%RCwC$lOa;XKoCV=r$DYia0MGws_h zC6(IGMaQ1}VFt*{$;$~))f57h_1hU}%Oeyqy!buzD-qO0t{Zn00009a7bBm000W` z000W`0Ya=am;e9)8%ab#RCwC$lR-{}Fc5~nA>M{1oWKik3s`7e>KSlpaM5=QFTe@P z()0W-px6g3zC_*eCrz5p@bP!1V@?8~Gn+RXImwRVTH*kAAx$3h zuVa9mBqs?_GkO6k;_K{`JKtP0xFh_@yXx9mTxhwl&-8Z9GGy2(CD6)5R?Yyg) zro5}NACl*`&<`cw&dK#9+W>$fPR>Dcpa22*xUVU~2e$x^TzyYOqV=gpq*izqk_azb zzgd!yG}p{U!|Nn|VSr{1@7#VaJfB+=Jz@*dDzw$K4{cFq@TPt5L oopX&dOW|8@+?B#vj_U-r9Q)*R{af$zU+2F649 zo-U3d6}R3_j^$$!6lhtUntx=bg>d?%^jEbKJlX713~;8nl+vw&}fqT8-R< z7p7aTrZzG&GxR)OsnFZ(zSG54tG-U$ z9qzT1-~a#s literal 0 HcmV?d00001 diff --git a/html/pic/map/I4.gif b/html/pic/map/I4.gif new file mode 100644 index 0000000000000000000000000000000000000000..a47427de85d248c3c47e5e7083668bc5bd9910e2 GIT binary patch literal 114 zcmZ?wbhEHb6lPFjn8?8Jflb`tvfTgw{}~t<6o0ZXGB7YP=m6OaAbAER=PCUwPfN^i zNYOtsGe=a6<7FlLlG2CjQdhg0X6$m(dvWC1n}R3TKS{PM(DV>H{N$>K*7P&WK6CbZ SEx)qrYuDMV?J-%54AuZ!E-b{Zn00009a7bBm000W` z000W`0Ya=am;e9)GD$>1RCwC$RI6^oFcdwu%7=%d;gEuX;r&3^;83JaSv9ux8?vz} zs}gCb&}=^tY!DDqJQW4|3+}*lEhn+HfR6b{k?nhK&VBeHv@!sIo4X5w2U;1iga?2X zI~GZg`?o9Wba?)@LDI59T2^>^d9?id>xbo8Pym<-O$GO-H5!^H#)8M)7Fro0Lqbz* zga~q3+u1gdR)(}P1i*f-tU{8$uKnTj(z}a{ zuiI-#{$Yt==vcV$ZoS+55a%8Xtqg=#CV20bg0GXDURIyuUp&tRzZ&OFFAqF5A* eVo~hB#eM*VJ;L#3AwMbr0000l6*dUzc?YC*;U^l^ih`KBLN4gU=In6f*YX*JpeaZe!{pUSDwoWr U^9hYgr_`$Tip^@bTxtOTJHJ#d$p8QV literal 0 HcmV?d00001 diff --git a/html/pic/map/I5.png b/html/pic/map/I5.png new file mode 100644 index 0000000000000000000000000000000000000000..596ec368536a47840ab0df245dfb00276adedcf1 GIT binary patch literal 373 zcmV-*0gC>KP){Zn00009a7bBm000W` z000W`0Ya=am;e9)CrLy>RCwC$ldn$1KoEz&ZLqw?n##kSA=njtg+(E_5ELf~vZ#g> zQFXim0^8K!)?#=K9$*m1YXthmAdQGLA_7R!1_31Nx07l!C2doyLo+#VcQW_?t8O`{E-&l& zU9>@pHf$@?Mb=}Y@09Yg9vwG7^n=bQ@5v1S$oj!4ND8D7fY*yNGMz95c&IAX z=+^faKjrn0h4U8UyiMM_snY9|?O)chz+-;g&11*lH_G@!&9E6Z!)DkF`)}AcFjld$ T#kyPc00000NkvXXu0mjfP8+1b literal 0 HcmV?d00001 diff --git a/html/pic/map/I6.gif b/html/pic/map/I6.gif new file mode 100644 index 0000000000000000000000000000000000000000..7d049d3b192f795a031f2e26685ca7b4f5fbe4fa GIT binary patch literal 85 zcmZ?wbhEHb6lPFjXkcJ4xGeYo|9{1wEQ|~cj0`#qKmd|qVAAR7UwNA2{x#-{t(C8r o&bh{!rSPpc?n>b-$8`c*j(zgE{;l`38 zo-U3d6}R3__T@XIAkdobVe7m54QCZ&o+5X>*rXSdSwZ64^j_&!HO^~LoyTr|Nnv4$ z$*#w$IudH~{gP}yR~)z+FqMtz(PF0vfzOVvm!0#^Z27dSdC$8vea=HV8RZfCRp0bW zGcX8EIO?#@AevD=ROCe4DwDdqERVLVvDRgsFn{IJhHpjuYO&|dw+n85XH>p;X@eO< z)tqe(f}feAxHM+fY5h_^<>VMGziROUl6*dUzc?YC*;U^l^ih`KBLN4gU=In6f*YX*JpeaZe!{pUSDwoWr U^9hYgr_`$Tip^@bTxtOTJGe_NwEzGB literal 0 HcmV?d00001 diff --git a/html/pic/map/I7.png b/html/pic/map/I7.png new file mode 100644 index 0000000000000000000000000000000000000000..cc1f28ccd49467984a7dadeefe6065c6172be4cf GIT binary patch literal 386 zcmV-|0e$|7P){Zn00009a7bBm000W` z000W`0Ya=am;e9)G)Y83RCwC$Q?F~pFckh0&W_Vl zj*7vK$@ud%2N5T#&x}*mVSm7z7%!x~gq5+md{C0S@AZ2>k|(q>0D$#oPVhi0Bc|{G zFk{EONb&r3Wu2bxK5dXH=};vdZeJFbe}DY2JPQf{7eZsf{q6*=zy%9#&r4`!gbWFd zvEIysTvPV84RoXx9ce`X?C09*HXCpNNGn5H83I5}*%JVgZaJYcL*OzwJ8-1DNC%PK zbKPba*;Pqr_f6STQ}*APag*~R1pvE-P$iw$K64NI-D$9fustumb_oD=n|Vps{%~{f z-Xi1v^%|0Ym?9W@7B0M3?>0Zgxz9o?1EG}(&fQe-ILYy_`W%1ac`tl3_ghH(A);6m gi(*kMiv73P7hmb-$8`c*j(zgE{;l`4N zo-U3d6}R3_u@!1o5NH)YcJJ1yle{{%ovB*f$L|F%N!M8uR3+qt73> zVP7=sw=Kt$-0)XB?`PiIAX%Q2ouv6&COC)pS^KHJ_B(U+9CCOMEZOIvxz6ug&VvYT zpI`b~F^-Q_u1>rxxtAlnCPM2y^Rpt`8yiA)D6mSDq&1|aYgOxnu%20W_6E1V-trqy wrZ}a4x&FglMlYl-H3Eco?#o^KHFbk|f_CPdq_fL+1HH=N>FVdQ&MBb@0LYksc>n+a literal 0 HcmV?d00001 diff --git a/html/pic/map/I9.gif b/html/pic/map/I9.gif new file mode 100644 index 0000000000000000000000000000000000000000..444874461084cd366fab3702342b2ff47b7fe220 GIT binary patch literal 85 zcmZ?wbhEHb6lPFjXkcL2wr$)0|Nj+#vM@3*Ff!;c00Bsbfk~&Qf8}Y8``4H+wpPAg oI_DZ^mcqB*xGROT9M=hKIrhot`nTTazs`OC$IruM%F1930Pt%e?f?J) literal 0 HcmV?d00001 diff --git a/html/pic/map/I9.png b/html/pic/map/I9.png new file mode 100644 index 0000000000000000000000000000000000000000..a11a137114337d8b9dd4aaa96495d2ed45577535 GIT binary patch literal 341 zcmV-b0jmCqP){Zn00009a7bBm000W` z000W`0Ya=am;e9)2T4RhRCwC$ls^uFFc`&OQ71#91BrvP7bqKx1Dlu78+Zf54Y&c$ zI=eY^VT0Mk*%%WC2M_Q$7_eYzo9Nh=5R%8oudjc;vVu5dg{&kfR1jw{sNV)HmNO)o zUwfO?6SvC)AuGuQ^mHHqNHQOj=@>i?I#V}bT_9Qhcz{$yTA&xQl2Q?2IO@sMt)D8L z*k4Uc_L=4`Jz=wYDvM-am#(n^hwT}_>0r5dH3{2KN{VPwu0Bu1f AW&i*H literal 0 HcmV?d00001 diff --git a/html/pic/map/IA.png b/html/pic/map/IA.png new file mode 100644 index 0000000000000000000000000000000000000000..1ebd815f0839094a12f9812ce4eb4cd4e99c9d7b GIT binary patch literal 555 zcmV+`0@VG9P)-#!U6P@rNIB6Zq~qx#z!vB)+ONd||y|Z`d35 zAHed@FKV?KEX#tf>i_`TwmF$h5Cj3jFhmqZ=yW>peP2XT1OOljl4)3>P)J~_)rzy( z482|tl}ZHwuv)DU1OcKbqUU)4ATn(lh5^GcuwJjZSS(O3mjM8#X+lbgMx%jZu?W|7 z;kqsW{JmXciE+2vZP>QW<#I`qJe^LoEQ`9XGndOz2tfe!Jda8#`o7OU7^Y#(W)tW0 znfJBbZYiatrfCTb0F_cyO2z9&%I0pj1b7=gEf8<@-JWd`~Ge zO_Tfmo~CKiFbqm5xm+$E6anC9GuQcC9Y`NZ0EI;B#IX4`FhY1aS%002ovPDHLkV1kPB_Fw=2 literal 0 HcmV?d00001 diff --git a/html/pic/map/IE.gif b/html/pic/map/IE.gif new file mode 100644 index 0000000000000000000000000000000000000000..409f32d931e8aa405e3b5dda95c8a3d61d987238 GIT binary patch literal 97 zcmZ?wbhEHb6lPFjXkY+=|Ns9h{$ycfU|?j>0r5dH3``b1{VPwu>lsT}>_27h-@NGY%X6zvRvc(9=x}0->l= literal 0 HcmV?d00001 diff --git a/html/pic/map/IE.png b/html/pic/map/IE.png new file mode 100644 index 0000000000000000000000000000000000000000..8aaf6ab50d829a4efd83ee1e2dd9a4dfcdffc3dd GIT binary patch literal 457 zcmV;)0XF`LP){Zn00009a7bBm000V% z000V%0lmi0*Z=?ldr3q=RCwC$lrfI#Fc5}6BRZ0XI>+D?)QBU{aU1HKfRc)io+byN zbCKS$9U#`cVxP0gVpdyFW+W@t%=ptkld+YE@F|<|L7QL`Y=TX&36`*V%Bhq}zU3mK z{tSx{V@wLv$KOHcLr@A5t?N3p)_CtxN=XVhAA+(hL#eNvpWx+k34qp`>-Cxh&Qj$7 z(eTyKi zHH*b!1l(@706ZQKx~_YLiHOSc9Ov99P!t8m7;d*4Wm)$AvMdQ9u-olkhxdP@#TX-i zR8=L%<52)PolXJ>AZ1zh`@`WNUq^-EQt_`TrKGAV+P1}ek8=*^Tt5cZT0#iy_xrc^ zbUwVq@$Q|^XP(a|UDpvp=#zf~0pH3#@oM}7G?Wk{p7v)g00000NkvXXu0mjfMrhTO literal 0 HcmV?d00001 diff --git a/html/pic/map/IF.png b/html/pic/map/IF.png new file mode 100644 index 0000000000000000000000000000000000000000..45b6594df28bf87472c3a3e490c4d3c07798474c GIT binary patch literal 390 zcmV;10eSw3P){Zn00009a7bBm000V% z000V%0lmi0*Z=?lI7vi7RCwC$l}(C-Fc5`bHGxLj6L^E1Mi9KF9>E**vfaBi8zBdWzra-JBM}{5zal~(!92uTd$_y* zCj=$`27CfqDvskFPM=#p#FRg9$d_Gr) zrOtLftFSCfIOoDS+xm5;vMd1rQ55Z?u?79+*-}MOgeQQAcA${i&N;Mgi~IeKEX&rg zqX?V<<2VL0hdt~2ez$0O%FA}5D1tEtX_~Hrt3-r+Xsxvnk-62TX`r=6RaG8z)+}<^%Y8z2Ka~Fbo)m0pmDg knkF#wZ20M*f8z@J0p@{Zn00009a7bBm000V% z000V%0lmi0*Z=?lXh}ptRCwC$lrgUAFc3wL0}Zm3f)+}akQJpuEQ)1NP_ckC?7^1Y zA(R*!q{y%NvEaw~|LN(K8Oe=DKAw9$V-aKIx1!(|V}{MJ88*XaSSFUaO(8_~FOM;b zZ^H&i+qOAS%1=R;@1VAAQA%ZRz1?nTt?}L?gors{@i#~akzMQc8i3VmMbk7{D~g<) zT)a#7-se60pS&UN_dC{FoO6T_IGs)-xv8?Q>n1^$%LM@E9FNBX?|rtq0{Ez^>$=fv z?shw@wRByFa}Mu4A%y9sos!u!4c1x!w%cv;?D>4=TVs%@ltL+mF$S%5@<>Ygap?7W zQ556hS;iQ}A0siwq=dDWs;W31kE26<-?QKEN6nk?#uzr6Of{L^3K3n07R%TG0ecmMzZ07*qoM6N<$g0XGOXaE2J literal 0 HcmV?d00001 diff --git a/html/pic/map/IG.gif b/html/pic/map/IG.gif new file mode 100644 index 0000000000000000000000000000000000000000..ffa57ac92cd7230a5d8484aec9ec5f33ba24ef36 GIT binary patch literal 99 zcmZ?wbhEHb6lPFjXkY+=|Ns9h{$ycfU|?j>0r5dH3`|x%%*%H_;F;=ec+Tr~a(Lcc yNm-8GN5^eDBg=AT?LF>tQmjkSB5ix3>1)RJBa1$E_-IW(v+OfxuU9WCgEauA5+Zv5 literal 0 HcmV?d00001 diff --git a/html/pic/map/IG.png b/html/pic/map/IG.png new file mode 100644 index 0000000000000000000000000000000000000000..3024b8692968656f4a8a5a66eb564e8f50c41bbc GIT binary patch literal 379 zcmV->0fhdEP){Zn00009a7bBm000V% z000V%0lmi0*Z=?lElET{RCwC$luM3-Fbsx&BbMPn+@ra6rK*T+FOeqBtDY4Rq&%vb zO0&Td3uN>8!Ecj@;9J&iIf!U8i-^!iunA&}!BL_bO7k{}NNR{uYVkhzE2S2|=C`1f z5{xm6akNMCSp(&q!OURhMNG36Tvt{5oO9*5UazH?_LE;;xBGZJ;G6?9Bj>y?jr!x- zthI2?!F!L_>$MMClf{%^7zR9_PcSoLjK{DekhK;e1mv7CmsYa}5Rn49-|sNSl&ZY< z2q7S)^jT$H*8u=-w;PNxW#}D625~sDs;iCWb1kpE-V}mc+2|HmY?1cRz Z><3j534iLEgX91J002ovPDHLkV1h)SsoMYm literal 0 HcmV?d00001 diff --git a/html/pic/map/II.png b/html/pic/map/II.png new file mode 100644 index 0000000000000000000000000000000000000000..02c286eda7a6036e25236131371b60175647a4ef GIT binary patch literal 354 zcmV-o0iFJdP){Zn00009a7bBm000V% z000V%0lmi0*Z=?l6iGxuRCwC$ls%4vFc3yRhcqZI=n&UJa5(PZBXABxO$`Oe2n+vh zvu0sqMCvvAth9%A=iRTZ)5kInK1@MQEVPpGva#6 zN%tZENRk9`93zS%7-OK6ddhx(O+qQPecxjoM@-Xn_)tm-DJ8Vlo1`qu!#D*8y=fXO z%K{+;gb-NQ6;etlrI6?OsX_nKFX-ap;^M-?7b5naLH>?6SpWb407*qoM6N<$f;1VE A%>V!Z literal 0 HcmV?d00001 diff --git a/html/pic/map/IP.png b/html/pic/map/IP.png new file mode 100644 index 0000000000000000000000000000000000000000..56572395b3fcbdb62e1c96370df851ab202800ce GIT binary patch literal 401 zcmV;C0dD?@P){Zn00009a7bBm000V% z000V%0lmi0*Z=?lLrFwIRCwC$mdmb!Fc60S8c8JK4V))bUdR_=;Ukc)OxTgQnZ_Lp zE7W+&oQ0mrT;dK>7IRR!|~>Z`llAvXSs-|(J&9O z*2X~L{t$HD2U%;8WtsP%Ha1NIW`=VPN-2o~f4@#*trdAV9~U!=)>@euokpv3&f$K)$NS7D9RQda%sl9O*!g@Ou4W%NM%my5 z_z*<|LLS5Hbuh(zQ8^SckV7XjI zJiT^vIy h<|P04|DW-&!U2ZYyot3T7FA&&4W6!kF6*2Ung9lh77hRa literal 0 HcmV?d00001 diff --git a/html/pic/map/IW.png b/html/pic/map/IW.png new file mode 100644 index 0000000000000000000000000000000000000000..d19a4a5d41fb4a0ba1819ccb65d252d95ed74fb6 GIT binary patch literal 343 zcmV-d0jU0oP){Zn00009a7bBm000V% z000V%0lmi0*Z=?l2}wjjRCwC$lueF>AP|HL<4!K&S-gRXmsHQ<(o?vEbc>jt%}D$K zoq5UISqTXd_-MMi1zx>+_3G7kr5@JhKWEh)#2Aw#X{|4e7)nOVCH++1~kS%L}0B=no?C2oO1wxJOwL?0swA7o4ohY zV!e#tl1Yxf@3;BknQDtbM8M3C5w&f5$mcm{N^6aIobed9&@@f5oeteFj$^Q% pncVNYye#3~pvR*I>B2FNbKvb(46p1W#eHq%Uha?X6e^F7b~ zeP_;~ zi~vDl!7V-JY1u!>pI@Ai^onqwU3!1Wq&9pR{KHj@$%0sn2Mx1=y_O%d{Fo&}e3$Jr z#%vWs1eW8=EPQ*S73t3`-$!qfXLSzdT?O-uMvT0TsPI-vo+Af8edJk)5e_yWKFo<_ zo~Xwjw&w)e0NVg>_S1%NR}4QbLh1jBv7V(95PQYG`4=Veo<{(B0mL)oSS}Gwp-!|> zbSUCKYAJvcI}j=$1UULL{SEwAuSi+}9M8cjoIw8oO?-AQe(tHHP(EDZc$0!^_=;ttvwh>&p02%v!*;j6`$XYT&C7$qoBE4R z>}eghCKeqGIbQhM>n*MGEzwF_D!unyUsg-id5*UV6@Cv3=)$cJ)qKwP7lED7UwL&EzR(p2c~3Pv2(G zdspqttb<$o+-e7fCQ}@R&89<1dISCGzUkg2!!ZiiN$Dbo z!Y+Kn^EzzGh^&cu5 z&uiZGncZMEyp{LM@SS#3?-|PuXXu%FPsRP3PCQ0?`#f7jRSoTOq*h;Sh&bA9nsOzT zBqzJAgMQODv zv%s&bM;Zgu_}gYMzsTR`82WQ&<+{Jjch7LXNIvJtUd$OaTk67&0b%7 literal 0 HcmV?d00001 diff --git a/html/pic/map/SBO.png b/html/pic/map/SBO.png new file mode 100644 index 0000000000000000000000000000000000000000..75cb096b86ecff86be052118a53ccf965022d87c GIT binary patch literal 126 zcmeAS@N?(olHy`uVBq!ia0vp^!a%IV$P6UgcNDY(DYgKg5LY1m@|212*O?Q6EMrd> z$B>F!wudirGAM93I4 z000W>0fLJSS^xk6=}AOERCwCels#`1F%U)1*xuc@K@mdy6w=WkijW2=bhJo-D3K6J z2?&Wl40-YH*dB_Vmk)&`@1Qu*0tmd!z(V>n?K+j}Tn5)~&mJbqXLt z5Mm^y?KEF}#-Jz?0L*~x$hlG{f+B(lA<)_u4jsIwff;>IN~DAtA#9-;I-jssFIFqY z@jmkKl=BH-wIW7Bpz8>McyDgUJ*oku+c|_a(0F) zeecFD_T+r+uvSDiq$(jW&*bbkW1fi-v&%IuSd2?5{sQZW~hJp+X91M!w7xu4XjQN+6^32!z?Uu`a j*55${kaf-$#NEkivW{;GPk`4^kheWu{an^LB{Ts5cIz!Q literal 0 HcmV?d00001 diff --git a/html/pic/map/SBW.png b/html/pic/map/SBW.png new file mode 100644 index 0000000000000000000000000000000000000000..65a93bdb47d5cf0206ad43e2b156243926d9cd27 GIT binary patch literal 567 zcmV-70?7S|P) z000W>0fLJSS^xk6=}AOERCwCels#`1F%U)1*xuc@K@mdy6w=WkijW2=bhJo-D3K6J z2?&Wl40-YH*dB_Vmk)&`@1Qu*0tmd!z(V>n?K+j}Tn5)~&mJbqXLt z5Mm^y?KEF}#-Jz?0L*~x$hlG{f+B(lA<)_u4jsIwff;>IN~DAtA#9-;I-jssFIFqY z@jmkKl=BH-wIW7Bpz8>McyDgUJ*oku+c|_a(0F) zeecFD_T+r+uvSDiq$(jW&*bbkW1fi-v&%IuSd2?5{sQZW#4hs(ALzkz~c(H%IandEcmHC~keLa?EMfEzc#bFRVJRyQyBEl%i<*M&+tg z*P9fJ*Q$@TPI@lO_AFIrF}VN#)9-uJ?RmbiFo<4`5MJ3c>mkr744$rjF6*2UngC0p BPfGv* literal 0 HcmV?d00001 diff --git a/html/pic/map/SEE.png b/html/pic/map/SEE.png new file mode 100644 index 0000000000000000000000000000000000000000..16b35a5ffbaa61ab54f3f19289842019eb4eb723 GIT binary patch literal 198 zcmeAS@N?(olHy`uVBq!ia0vp^!a%IV!2~3YL`o+EDb50q$YKTtuGb*U*woD%1r)6C zba4!+xV87nLEZxj9IOE;eA{1$@!iqAv#7bkAXBPWY#&4UCp!`de?o_4!@p-dT~^i7cF$|>@jUr*=K|Xo!|w~4e{x677P@dnq$&CNs~t-- tTkFl4Eql$Du=e{h*ceTIrJ8ew&GD#7*{6-ZtATD{@O1TaS?83{1OUi^NE847 literal 0 HcmV?d00001 diff --git a/html/pic/map/SEF.png b/html/pic/map/SEF.png new file mode 100644 index 0000000000000000000000000000000000000000..95e73dca7c813f7a66a03d10eb8dc0edfc26bf41 GIT binary patch literal 203 zcmeAS@N?(olHy`uVBq!ia0vp^!a%IV!2~3YL`o+EDb50q$YKTtuGb*U*woD%1r)6H zba4!+xRq@4TJ^AllEJ-iEsc$hosBUET;{b}i!Hr)+HXhemrv@OT1z$xpLM!*yE9WU z&`R;viSO#OT3bq!O4W6pIr>|-Y!u$#YO-PSg4QeBCQERy%u=5yw&?YdsXIDLbq&Q9 yy->L~H-t+uNO#E%KO>zbC;Z$dB{f-gLqkJFamK&2>j9AC(^-kE*$HJGlI2^Awy4S>kWRCw5P+RtU? zmdT|LHu?oV<8^x**`%n({P(OmhwAznb^dJICeOFE)em8;J!ADE!OSsRn9=RWN6P>J literal 0 HcmV?d00001 diff --git a/html/pic/map/SEU.png b/html/pic/map/SEU.png new file mode 100644 index 0000000000000000000000000000000000000000..f14a2017e7799677d5e1b0ef74be59162fca4ef6 GIT binary patch literal 20854 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 Pzn}9DZYN7mT>RzVRv`;F literal 0 HcmV?d00001 diff --git a/html/pic/map/SEW.png b/html/pic/map/SEW.png new file mode 100644 index 0000000000000000000000000000000000000000..e08b411aaf960d12377b0063abad0fbb302d0deb GIT binary patch literal 603 zcmV-h0;K(kP) z000W>0fLJSS^xk74M{{nRCwB*l+9`tK@f$%s_yBzV+bN{eT%qrBQBx{g6`Z3DlP@l zEL8*_$+z$=d;u|cGBf?>V(KQuT$4MuSIy8pUsauRT7Evg$HH~=;}@XpyL3MwPd@F- zymMFg0lxfBX!l}<4sm`l@cCC#B29iV@bnM;K#YDF@ct`)pDs|vt^wU4&du8;)gFID z11T{KjH6!wY!48One)!7JU#&sK?UdV-tPo__?`+WA_`FJ&V5dqJfaa1L{Oy^-9d@h z#7K;&;yq0R5W)^jZLGtbZL?a@b^Zq6@d;-mz-onasM0j3;%@Y9cZ*yBt5cOy7zR?( zYt8+cl!=j?Nr_q!F|z8l%v|Yv#&MS31{(rhw_TO<_ktK121)@g?#BphsrJHa;)$DK z0;-5utE$xcpK2exW1L9Y8gq^iXj_{w{Oi68U<6Hgj|ipEG)9ZjO4#ncqc@aFO0+F) zOReNgtxS`dR+W_e6|cPoLBurho>C~qCNzgrgi@|D#p)@Av$HuC#K<_B`!+N4mw=Bx zP&c%ch>`Vrp5&#UZ%NtVZEB@fO0lkH$Ig0|VgpObsx{z?ZycCnj^Lb9CMLGiNsPp0>4=f{DYkFRWJdJ?k|w5&{PY^9l3d{IPBEo|F*TFz3im p6T@K1m?oSvG0!vYJmdKI;Vst08iE;)&Kwi literal 0 HcmV?d00001 diff --git a/html/pic/map/SFE.png b/html/pic/map/SFE.png new file mode 100644 index 0000000000000000000000000000000000000000..41b699b9f708a33767acb00e7a5c4ad422ab43be GIT binary patch literal 202 zcmeAS@N?(olHy`uVBq!ia0vp^!a%IV!2~3YL`o+EDb50q$YKTtuGb*U*woD%1r)6D zba4!+xRrcoqegF|%L764?#9N(&c>JnF7sN`_olo^Rlnm@^;7t!)2^`>N@)N9 literal 0 HcmV?d00001 diff --git a/html/pic/map/SFF.png b/html/pic/map/SFF.png new file mode 100644 index 0000000000000000000000000000000000000000..ea71c5cf4e6d099bc0029d7135c3dd4069fd8474 GIT binary patch literal 138 zcmeAS@N?(olHy`uVBq!ia0vp^!a%IV$P6UgcNDY(DYgKg5LY0*V^LbzDV{_i%ihz) zF{I*_?qNqx1_c2Yhs8IJXqjD9bKBJP;PCbzLQl@M-fiT3XIhYQ`VU*Ytwmwt^<|xF kKNRoV@$tc>b-u#&y63|KGye#20*zwuboFyt=akR{0C$-$ga7~l literal 0 HcmV?d00001 diff --git a/html/pic/map/SFN.png b/html/pic/map/SFN.png new file mode 100644 index 0000000000000000000000000000000000000000..5d1f6594c4512d61ccb7a38871f7642602976244 GIT binary patch literal 214 zcmeAS@N?(olHy`uVBq!ia0vp^!a%IV!2~3YL`o+EDb50q$YKTtuGb*U*woD%1r+S? zba4!+xV87vM!^OJ9@Yy7q-0o+tBBk&WL@eUXw~{S@`i?nisFoa_kXLbNWR}-p()OA z;lQj1J0h%e>pRayKnM(+wi;<%Rc^E4g>ERK%{x{1Nl L)z4*}Q$iB}mtIn! literal 0 HcmV?d00001 diff --git a/html/pic/map/SFO.png b/html/pic/map/SFO.png new file mode 100644 index 0000000000000000000000000000000000000000..495ce2bbde15825b6929f408a72b01b62b018829 GIT binary patch literal 910 zcmeAS@N?(olHy`uVBq!ia0vp^!a%IV!3-q3RtSA#U|?nl@Ck7Ra$lY@*|8`M$QT8q zAu!THK<9myI?&Iao-U3d6}Ng%oD^hG;9%Ks^k4TkDbaA2Pdr@A6D%E!u4@(V6*AY_ z7kT}l&BJKXJ9_{9b}m0<9eXa;l>Zs0{MGk6?7mN_&7T?0$g9nqlx78H=4u6{1- HoD!M<{zfs* literal 0 HcmV?d00001 diff --git a/html/pic/map/SFU.png b/html/pic/map/SFU.png new file mode 100644 index 0000000000000000000000000000000000000000..2dd92d7f3e9c22883b26aeadff7da5ec7598654b GIT binary patch literal 911 zcmeAS@N?(olHy`uVBq!ia0vp^!a%IV!3-q3RtSA#U|?nl@Ck7Ra{vGTzhhC_pZ_<3 z?7<9bYikFy^G4k^6hnZ$YpNU2-Cmw9jv*DddQY4bWKiH>*&w@n(f?z6jy1DRv}r!X zkis|N%+^ye>yPyQy024O;Qu46HZQzp`JvrfyLLAPoASTol)w6Vhg|w8`{;L}Q=dC& T&C5!g016FHS3j3^P6 z000W>0fLJSS^xk73`s;mRCwB*l)Y}%KoEt$nO(21i6Vq}6zFIWMM#4L9TgH1M3hJf zQUXHaAt-qYUJH@y*xo-1&rK9^Nv`i!D{I%^%$##pe*HXQ;W~cx15ox|x*w3^Px~_O z-Pe79FTWGoy_lgxoL>xl{*{zSlV1!x`$InvqhAJm_?q8m3skXdKzE39^L9zKM<3BZ zN(=+z=obLn0|aB{yt67#PXRo8~AtX6cLzXf=7%J~SeTHze3G!3e_TYcNzAy>faRHYP#ft2({ zbAKjfVkBo$qE9eSNfiDoTazHhCtVCSLNcpAV!9PQh>|*F#=nvz4V%R;%1nD zDk9dZDz*Nn+DGpgCsMY?oFfF<)+P-9y6+MgK@;91LMb$j(PFd`w!81aTS_G*+LpGZ zR&u6RrpZjJN=p8k*G@nXF%7(@6iTrP&EXWGlNWWAmzdFAI@Qg(QkTB(&%tgG3vv!12cz*4em4fx_4h~1n65rUZ}XCpTawbJ)j zUrq0c$z19jU3c-!nT@=sZ7ro>;_&PXs}+6EdQFUkz`?NYERw=-O7~b{PJ0q6tmDlbB|J^gOMS@Fr=XIgzcHL!DRj%_i-y1Ff482yM5~C! z?{2TJy=H;?#{=8W{4?^OaCutttOxqbSWnF^pD^W4@}Kgk1@=F01Q$8;1sp4BW?ClR zlN)qkg__`&$@#~9bG;e$J*&=pNOQ5;&*u5yajE{$oRX_mGo}X!G(2i#Fynbt>f1ka Rdm7Mb44$rjF6*2Ung9fZQXBvP literal 0 HcmV?d00001 diff --git a/html/pic/map/SNF.png b/html/pic/map/SNF.png new file mode 100644 index 0000000000000000000000000000000000000000..4ae88c4241d2420ebbf84d90907d63c7ca4f80df GIT binary patch literal 221 zcmeAS@N?(olHy`uVBq!ia0vp^!a%IV!2~3YL`o+EDb50q$YKTtuGb*U*woD%1r+S} zba4!+xV86^BcFqT0PBVIdQTb7J<{NNBqGGEE-18d`i<4B6SZ!=d@f}Tk- zEq{4z+kBB7iz^ahMeAp(pU6CI==(wZGSkzu)*fE(4F6f{UYK9=MsuekyGHUZN5;$C z$ILVnLMC(EI=TJvvTaKnrmO5tU&7nkG~bu4Lgl4>qTjA8+cVx891b5H7^K(Q*R8rN S^Zzu^X$+pOelF{r5}E)^=TgZ4 literal 0 HcmV?d00001 diff --git a/html/pic/map/SNN.png b/html/pic/map/SNN.png new file mode 100644 index 0000000000000000000000000000000000000000..d91b5825dad04c0d5c72da7d72985929949f1a84 GIT binary patch literal 198 zcmeAS@N?(olHy`uVBq!ia0vp^!a%IV!2~3YL`o+EDb50q$YKTtuGb*U*woD%1r)6C zba4!+xV87nLEZxj9IOE;TI>a@_#TAF9@uDOk}1_IwvVCwlbwgp)|8-YrRGXWPThtZ zrpcu4OSm#8-r$IgLwzxu>s)_nyXQ6cc%FQ@bAj!P;r9j2Ke?l33thM((vXzqQq4KT=iP4N$}su;C!iY`JYD@<);T3K0RYJEMEw8& literal 0 HcmV?d00001 diff --git a/html/pic/map/SNO.png b/html/pic/map/SNO.png new file mode 100644 index 0000000000000000000000000000000000000000..2bc962997743071352f04e3da454179519ac361b GIT binary patch literal 398 zcmV;90df9`P) z000W>0fLJSS^xk6KuJVFRCwB*m9b94Fc3g5sTGh=1uGLDK?Xj6uVMqCstAEV{0>7^ zLW$B6D0~7#RK!xXrio*p8B&$dgxJ@c99vJ%=Q}%2=lBSSadIC5fD80E*lPm-qhc39 zJWa(U^2tsvWHF$Tx8a*aoJ2mE{Njt%m_T-eSZQ4dX{1zG{chUPaBM5)V)cRolkT*|bF7hPw$>b+r s0Dw#U#W?%zon*#I87`g4jKfCp0|Hc_!13Ed0000007*qoM6N<$f>J%EaR2}S literal 0 HcmV?d00001 diff --git a/html/pic/map/SNU.png b/html/pic/map/SNU.png new file mode 100644 index 0000000000000000000000000000000000000000..5d741105f2366aad877515507ef7f88265d33605 GIT binary patch literal 218 zcmeAS@N?(olHy`uVBq!ia0vp^!a%IV!2~3YL`o+EDb50q$YKTtuGb*U*woD%1r+S@ zba4!+xV86^Azy<659p)aaAAno_xay7b!Y8zda~v3 z72eHEq)2J7vbl^1{g+*k*6 O7lWs(pUXO@geCwZbxuM6 literal 0 HcmV?d00001 diff --git a/html/pic/map/SNW.png b/html/pic/map/SNW.png new file mode 100644 index 0000000000000000000000000000000000000000..60e0e1dd507a10c218d1181f1c724ecd1e4867f8 GIT binary patch literal 601 zcmV-f0;c_mP) z000W>0fLJSS^xk73rR#lRCwB*l+9`tK@f$%s_yBzV+bNXiY^2Q>YUSZ^5g*v*O#Ba0A=5$`vH0Od0*z8 zySfkX)d`{9iy1n^`NhB&-${uy`NhD~KlB4J`enfTulaqtKoz?NbcZ-MZ&~A!vyu0-t)&!99G-t;wW9A?uZfWmI5?P3mF!x~DgCGB|J?yzopr0E`YJq5uE@ literal 0 HcmV?d00001 diff --git a/html/pic/map/SOE.png b/html/pic/map/SOE.png new file mode 100644 index 0000000000000000000000000000000000000000..d0e4f08824b0e0e3e03d24641ad3bfe25c09195a GIT binary patch literal 200 zcmeAS@N?(olHy`uVBq!ia0vp^!a%IV!2~3YL`o+EDb50q$YKTtuGb*U*woD%1r)6E zba4!+xV87vLEZ)f4%UEMs(UQj3OU@(tvaGB3=BoL{tamOeg5}_Wyy0rEDrAx3{-oY zBD+IBc}it-VD+?wj*|}cpLv~5YA?G#x$*6jbpP|*p$_t!`K)I6UbyAr5G>46`RRS} v;#|QG6OU9&#d>g+&F0#0+Go-94Tk>rpJ|$X>6-Hh=n4i;S3j3^P6srNoh0I^o zZ@zNS_F?qbov|P1a=l;m;vJXYRhu2^H6iOCSIyDF!x`!P(859Iq92Va=qGfhb&23ZDgTvc@2t7I1dbg4DooPYJ=|61owibnn*Ozs! k{ZPDb$Hxbk*7*w8>z)q}%={z72{ekq)78&qol`;+0KWM!Pyhe` literal 0 HcmV?d00001 diff --git a/html/pic/map/SOU.png b/html/pic/map/SOU.png new file mode 100644 index 0000000000000000000000000000000000000000..535d713a82f523f35f8f0ae42a0dad599e157926 GIT binary patch literal 911 zcmeAS@N?(olHy`uVBq!ia0vp^!a%IV!3-q3RtSA#U|?nl@Ck7Ra{vGT|MHZ{pZ_<3 zY~n#}Z7uPNM^%o7z~Bsl_tz^~fiCm%ba4!+xYc{&q#%O=2g?T8=mr1d_8x0yooLg1 zh#`ejH^$xl8Q})sCLf^j^ UpP z000W>0fLJSS^xk73rR#lRCwB*l)Y}%KoEt$nO(21i6Vq3cn~5Q8blFjkf5VQ0z`>~ zASECq9uDy$l!#o%_Wn_LZlaJ&a(%a2S-bvb=A5(g>&Fob*S!Zn0cGE%`vH0SX&~A!vyu0-t)&!99G-n)wW9A?uZfWmI5?P3m z000W>0fLJSS^xk7I!Q!9RCwCelsj$|K@>&Lt6$Ibbl`1~up$y9Boh!IB3KCm0s=(j zwOH~;)6-qQM^Md}0ekFm##IHC+&Z^zJ(bAI*Lcrv$MrQi)Au?IbR8fmku#+Lq{KLq zGoTkA0Y?aGj5voe0JV}cB3P^5wsa+?fEVi~9JZH9BNeK~hCPr%A0|AFI)QT|- z!?JJpaZcB3yl25T{0Bc#T@E$+}RZ3x+B+mNf{BI{Ip-M`Wf-#aan~k=prO0l_?XCX& zz&~=VR%)%pxb!~H7$Ys@I5LjZ!hLc&3>c%{FC(H#DO#(vAhqblr~93RuoPe|U57Dv zFYSh^JS@j<2S|*Bz%XF#(oIST4*>xumzN8$?{&T2S1KuS4A~}L74Hc_+QjBeN=(ze zl^%4`uk;TmpeoZuO6nZn-|;j#*=~uElyFXJRh}xx z)fGSp7^C0bKG}$&6h!d8eRHQcokN6D`26N1r_-}DNon~_PGk1H_G|s|{&Xi`EYH!4 iSI@Fx z000W>0fLJSS^xk8gh@m}RCwA|mCddbM-YX->aO{*uThBd9+48rDvE>v5f%a6D4V=a zo(ct!Sh2c!i>#6O^LVEJDvK`LO3RBG+cl@^oKt5+UjD@}a60kn6Q!`<+u^`80g^MN zP%A*rEDNOoc6SFT<7gp>Dj@*0Mk$C8qYXoU1g){Il2WhiM@b10)|FB)BPB5-MyAR3 zdtwAIqcvK)0P_5avTb6<=|ruVQHo>cEMVj4ZJ%59^X+$P(pqXF?RE@9e~OGF>*|2x4v8w438%@10TG#J141B1Lg<(_ z4!nL1aQl){C`qj~%tV#eq*fEL5K#5bMVz6|Jn;1k%Sz5FU9N2dh>>|_7yv{tqgK{c z(q@0Z26*^ApT3?|$r&?prdC3bQn3*zMdKwK9&%JhN@o%JE3f0Hx5H zUjyMRZ&zM~d1kj$ySb6>gkAvDdZqN)Q%)PeJUiep^y!p&CIrTj7%c>;m1SW&Yq;A} z4M5dvTId!1{S60@QoK2N??;KE+RIW?Y7qyQHn5i6(q(siBN^36u z&p)vxO7%fvWE`0$XBbdbK7IrkM?$bSZyYc~I8)LZ!{BH=mV7^J?Tq)B19DP8lStK$B6^$OtO0}!801Xbs+Gt`$;gx1vV-I2k^3<>!*`1TK_{mt0e*` z`@QAF+qVFZA7N*-?)&4B5dOEQmn{Pb(Z9O)jYnQj-G1iT^=!=vD}~mSW$_7rzXiF5 zMkh99?&)$kExp)Z1=-b#&w~?yHjVciNw*b6&fevgN$0Mhczc0>t zdv&k-xt{0j?1ex|tShzpD=0=UzU;IrF?Lt{2Z#l5Ut>Jw3;+NC07*qoM6N<$g8KW- Aa{vGU literal 0 HcmV?d00001 diff --git a/html/pic/map/SPW2.png b/html/pic/map/SPW2.png new file mode 100644 index 0000000000000000000000000000000000000000..8be1e558468d8692592391c1130a2ae834256f71 GIT binary patch literal 597 zcmV-b0;>IqP) z000W>0fLJSS^xk72T4RhRCwB*l)Y}$Koo_)duKde6GaH|DA3U$ia-N`jur_JB?v)E zKuEN_3vY(VI=1JJ!gn_cS(5cmHL_;>-FweDBOmz1!u6A9fO6>4!+<>bd?@qIT|ET& z@&}`NhEJ-$;ox`NhDqKlB4J`enfTulRkoKoz?NbjLV1ZN%*sg8oEG4VffG@s-*v&Z*A(&}$HgeNYD}8_Y)%2d2 z%%#rJb=zmoY~(#{Ybga2ho@gzt>}B!Yhok>j*jLN=E3=6+u}VbA+ll4k)I}p!ICje jIA>yRGwnUj&93+h&CdBYJax|n00000NkvXXu0mjfsFMo- literal 0 HcmV?d00001 diff --git a/html/pic/map/ST.gif b/html/pic/map/ST.gif new file mode 100644 index 0000000000000000000000000000000000000000..61d6437a6811db5f6588259671bf018d56a02442 GIT binary patch literal 412 zcmZ?wbhEHb6lPFj_{hlcpMl{&7%(s}DE?$&WME)o&;ha;K=KSs|E6dJE^_Gt1I(O8 m21TfLCPpWi?My5PX9Pgp19XN0&7F}4@-q$Gfju;}7_0%~>~%!| literal 0 HcmV?d00001 diff --git a/html/pic/map/SUB.png b/html/pic/map/SUB.png new file mode 100644 index 0000000000000000000000000000000000000000..0ec9249e0c298a18d1402a4fc4ba46389d0d176c GIT binary patch literal 884 zcmeAS@N?(olHy`uVBq!ia0vp^!a%IV!3-q3RtSA#U|?nl@Ck7Ra{vGT|L6ZrAcJ^N zTU$%K;!%~OAuwn|pz_Xwk3h%id%8G=RNU%4v5=90f#ZNe-iQCmZ=>9f#Aqy^TXrk+ h`FtP&V*Lbj#dY6b5(yTm%yeXJ`-=56nS#_`+=$hj3w*)KBk=7v~Co rn0lnzD%OKrZ#G-ONu5>GKN$LVtTHfT**C=w=mG{$S3j3^P6EaktajW;lNnQp84weJHD-Qp={iUl*o9VNR z2%AE2L(00)XH}|sAvK%VHCG>|1JP7~* literal 0 HcmV?d00001 diff --git a/html/pic/map/SUN.png b/html/pic/map/SUN.png new file mode 100644 index 0000000000000000000000000000000000000000..0234cf928d0be9342bd46bafbbcdc3a77489ca34 GIT binary patch literal 207 zcmeAS@N?(olHy`uVBq!ia0vp^!a%IV!2~3YL`o+EDb50q$YKTtuGb*U*woD%1r%)b zba4!+xV87vM!^FL9IOE)yyp)U3vnOcl=M*~Q^=HyW8wer`xa!cWh@pDWU%R2w&X!- z!r6 zG3`v4|L4~omB}3YCViRbCH<)B_%a3?BiYwNR?k@f*XtIEH$O}TI)=g1)z4*}Q$iB} DUi(ZK literal 0 HcmV?d00001 diff --git a/html/pic/map/SUO.png b/html/pic/map/SUO.png new file mode 100644 index 0000000000000000000000000000000000000000..bf06d1c515a23eb5631232bc1ba45a9cec72ef99 GIT binary patch literal 912 zcmeAS@N?(olHy`uVBq!ia0vp^!a%IV!3-q3RtSA#U|?nl@Ck7Ra{vGT|L6bBm#0jC zYK$-mQ;ZkAk+o_9+vSa6eh zL6WnUnY>ue-~ZcVk6riMsvvtHesbCGGjDs9O%1o6c~T%8EO}(vVx~_1f47XJixTq0 hcTAj`7FMg{vd$@?2>{GFLKy%6 literal 0 HcmV?d00001 diff --git a/html/pic/map/SUW.png b/html/pic/map/SUW.png new file mode 100644 index 0000000000000000000000000000000000000000..2f128a8eff6ec18efcf7a070704f9d03f34bfbbf GIT binary patch literal 596 zcmV-a0;~OrP) z000W>0fLJSS^xk721!IgRCwB*ls#|MKoEwXnO(2XL=izFIWMW8`~jur_bN+blS zB0wkce-Syy_I^=#E>XyloNud@wd-eQ-uGQOKR;*TTCdlDa_G{-fV}#4DD%-{Jp}mf z7ok0f89K!I#lSZ|Nr^Q1#lVX{^aC;aWx%KJ`F*iK6}tv>$2d1{msET56%C}sFffjO z0kAznFlNqstMc*;Km-+>!+XCM@cCydq=+a$t$X)5W%7tdL=ZuhQgja`J`f`@qKfx4 z4L}HcFtxD`bGFTDMc4UzfG1~MjsU9_&Y?=vpo+WKx7`DB1*}e0N?{mCN$)iGcTy%s zawa8eMa0OecQSLO?-|EgdK+vAblq-MuHFk`WEdy~xV|4Fu%p^*uZbsahY6@6Vy&uD z>wl_!_K9&KWoyhiLZEGJ!tk&Au7MFW;XNXhLem&6Mk`^r`<{HHR8pdCXmRIE^gWvmF%kktNAn5u;QX;|@t%|r*)r$IPZPsn$(Sab iGcm6+?LE%TuJ{Ww&jkgc29rqu0000 z000W>0fLJSS^xk7I!Q!9RCwCelsj$|K@>&Lt6$Ibbl`1~up$y9Boh!IB3KCm0s=(j zwOH~;)6-qQM^Md}0ekFm##IHC+&Z^zJ(bAI*Lcrv$MrQi)Au?IbR8fmku#+Lq{KLq zGoTkA0Y?aGj5voe0JV}cB3P^5wsa+?fEVi~9JZH9BNeK~hCPr%A0|AFI)QT|- z!?JJpaZcB3yl25T{0Bc#T@E$+}RZ3x+B+mNf{BI{Ip-M`Wf-#aan~k=prO0l_?XCX& zz&~=VR%)%pxb!~H7$Ys@I5LjZ!hLc&3>c%{FC(H#DO#(vAhqblr~93RuoPe|U57Dv zFYSh^JS@j<2S|*Bz%XF#(oIST4*>xumzN8$?{&T2S1KuS4A~}L74Hc_+QjBeN=(ze zl^%4`uk;TmpeoZuO6nZn-|;j#*=~uElyFXJRh}xx z)fGSp7^C0bKG}$&6h!d8eRHQcokN6D`26N1r_-}DNon~_PGk1H_G|s|{&Xi`EYH!4 iSI@Fx z000W>0fLJSS^xk7P)S5VRCwB*l)H`;F%U&hmF@1C-U;>t_#y)S2?+@T0z?E~f`EVk z5v}+XBp#ZcZoi7aW?;0hS*|*8(B)Hg>&hZeo)Q9w13!L{Gt*?d9peZ{O5{u_04Xug z+_&zb#RQbL5BiIG~5K)|C) zt*Elw^>drYd)saaq1__Gz_Oe$&C> zBBqM>y>pT7P;>r-+19nL0M4=55CVV*W|YFRNL=mx2@vq4gc&JO3aXMb7Z=uAEkzCo ze*Lm9uem1AW@FAtjNSKjMO9jp^UOR`OZ)X-AmDAcL)Aj)5iz3_t5sSfwb<3$>t#KC z-2mqpM^p(x+Jt7@F3;frNQ?{vyB*GTZ&E_I4G4Jo_N@b_$+p|0rIHeNAzR|j2!Uac zme`z0iDhY)-U#g8vaXcEeosmOIa6yt-@&wt3u#Gc1wbixSbEA-Wf*YIRHYQ=nYD1A zJlOnw20o3tudFJ_{6LzNj{K z000W>0fLJSS^xk7Pf0{URCwB*lsS$RK@de>L}pfX*R(Mw;~3ln2?-1ggas~_U^6ff z)|>^2MO|H$TVQ0;(3-7>uQJl8$QSYBD@7hXAp{Nwe*7S3rpb0Y#u1Q|$eB_AQevLT z8L+F@fM*y?RlG+PpjL851m`S-b_KPvED~d@Z1Tj22+Kmwm=U9x;T+>=(}Z&XX4Fcp zN8tOnk3H)uW*iQbf*Cn?W=aA!4883?t^Q@&I7%tKtbGlhGyA=yga|nkBefoZfJc>D zQDwL5=QfY`w%rm!yG4e9WjSHWal&!55D<~g#sF2EL$xt&2z-2Y1Onb_#Z0`XRw>0q zOcn2Y=OW#q=KKk>t!rHYoMW>g1OO4tD1~K_xY~ykAmB*}Gg6`yR3&FFF08d$iX0C7 z`ek2VaZR4h#+;KFyYK6YsdCJ zu{o0x%hD{p5!k(DT`7hAo|FJ`rq+JGgJ~BR(vr{$fKu+T^pvT}FyNf2N-4}UYvDe5 zytlRwGej&#S(kf(fc97)myt91ejwogz7#1*t*q=C%=1Gh>`eLjlmC)%_Udn%^S|^Py5W=15_Y^d00000NkvXXu0mjf DdFm}C literal 0 HcmV?d00001 diff --git a/html/pic/map/SWN.png b/html/pic/map/SWN.png new file mode 100644 index 0000000000000000000000000000000000000000..6bd13135aaa4d9ebb3236470cb4dbd6ec7eb760b GIT binary patch literal 669 zcmV;O0%HA%P) z000W>0fLJSS^xk7Pf0{URCwB*l)H`;F%U&hmF@1C-U;?|_yA)52?+rK0V0AgK|nx& zi1u5McxZaM{VD>RfziHZx$3|{mrvELD~mjNN(dYd{P;o6Oq1<)j3Xc^ku#+Lq{KXv zGhkP50nad)s(6noK&|AA2+mmu?FwpTStQ0*+2n~45tfCVF(XDX!#T#$rU~Z&%&3)G zkHF`TA9>bQ%s3n<1v7H)%#;Ld7<$`(TK&tkagZM!9ec8d%H%W}e$~jX5VVcHh?(RcTGmGxJO>?bm;SfVbTaRSTg<#Eep`R%wmYVps33m-X~@ z1Ds?Y>77`1cpIc zVsj=XmZe#GBd~kRx>5@JJt+a?Os)NV2h%Ptq$Qyh0Hxev=_yl{VZb?4l~R~z*1~=A zcyDbVW{6mfvM%=m0qwCqE+c31{XoF~eJN6sT3Oe-E&ZnwFq35=CG(!ouQ*R$_IqL^ zCA^nf?WSH!fPcP3b1C&w_A%ynKoiD|EL@0&#&&~$|-YzdCrT&^cj5$p< zZSBkJ2LS;EP{+gNndgU2*qQS4C;uhk?A6~i=YQ!pvk-?eweGu#00000NkvXXu0mjf D?cpYE literal 0 HcmV?d00001 diff --git a/html/pic/map/SWO.png b/html/pic/map/SWO.png new file mode 100644 index 0000000000000000000000000000000000000000..4bb8506df5105a941d5aaddde3dd8ec3ea781049 GIT binary patch literal 670 zcmV;P0%84$P) z000W>0fLJSS^xk7P)S5VRCwB*l)H`;F%U&hmF@1C-U;?&_zwOF2?+uMLDVULSXQm`z!_eFQ)9PQQjiZ#(%i7oAIkVqON{Em%F;eRh2zXSf z6;*b-es1%4Z`&;)v|D5tSe6r}948z{3jqR?NhEYL!w< z#8mOVcP`Q$YR;c9+q%{jz&SP>LI4oKj8a$@iL1Rk0RoOK~-|*;=)?1rO4sH zuV42071!k1Y|J@{vHQNRs7h;co|$KAX}|sp1ibBbs9Fd;B4(6gwMuKG7Q1?Ly{xCN z8{iz{h$-!hR8rzDWJ|mmAutTm z5}PwAu`JEf8-d+h)|FD&?@0+DXKL-|JD7HHAuS2504U`SOHY}q3aTz(2?*{_@?@N)A)XKWvZRtOifSD`{DVg_te8GA0vfmRU zDdD};YBz=Z7UuWw0KeR@6+@OF7ADfQRnVa#c= zX=|TeJ_raXfI1#7&pbbL!p@YRKlv{SXRrRIIsZ$)0cgOMXQch6^Z)<=07*qoM6N<$ Eg2*K*+W-In literal 0 HcmV?d00001 diff --git a/html/pic/map/SWP.png b/html/pic/map/SWP.png new file mode 100644 index 0000000000000000000000000000000000000000..d06f8e5952117220a4ed6578848af0338249ad1a GIT binary patch literal 978 zcmV;@11 z000W>0fLJSS^xk8gh@m}RCwA|mCddbM-YX->aO{*uThBd9+48rDvE>v5f%a6D4V=a zo(ct!Sh2c!i>#6O^LVEJDvK`LO3RBG+cl@^oKt5+UjD@}a60kn6Q!`<+u^`80g^MN zP%A*rEDNOoc6SFT<7gp>Dj@*0Mk$C8qYXoU1g){Il2WhiM@b10)|FB)BPB5-MyAR3 zdtwAIqcvK)0P_5avTb6<=|ruVQHo>cEMVj4ZJ%59^X+$P(pqXF?RE@9e~OGF>*|2x4v8w438%@10TG#J141B1Lg<(_ z4!nL1aQl){C`qj~%tV#eq*fEL5K#5bMVz6|Jn;1k%Sz5FU9N2dh>>|_7yv{tqgK{c z(q@0Z26*^ApT3?|$r&?prdC3bQn3*zMdKwK9&%JhN@o%JE3f0Hx5H zUjyMRZ&zM~d1kj$ySb6>gkAvDdZqN)Q%)PeJUiep^y!p&CIrTj7%c>;m1SW&Yq;A} z4M5dvTId!1{S60@QoK2N??;KE+RIW?Y7qyQHn5i6(q(siBN^36u z&p)vxO7%fvWE`0$XBbdbK7IrkM?$bSZyYc~I8)LZ!{BH=mV7^J?Tq)B19DP8lStK$B6^$OtO0}!801Xbs+Gt`$;gx1vV-I2k^3<>!*`1TK_{mt0e*` z`@QAF+qVFZA7N*-?)&4B5dOEQmn{Pb(Z9O)jYnQj-G1iT^=!=vD}~mSW$_7rzXiF5 zMkh99?&)$kExp)Z1=-b#&w~?yHjVciNw*b6&fevgN$0Mhczc0>t zdv&k-xt{0j?1ex|tShzpD=0=UzU;IrF?Lt{2Z#l5Ut>Jw3;+NC07*qoM6N<$g8KW- Aa{vGU literal 0 HcmV?d00001 diff --git a/html/pic/map/SWP2.png b/html/pic/map/SWP2.png new file mode 100644 index 0000000000000000000000000000000000000000..4b7f93ba3229ff9a69f256e884e2fbbd0f25ed9a GIT binary patch literal 669 zcmV;O0%HA%P) z000W>0fLJSS^xk7Pf0{URCwB*ls#?~K@f$%s_vfI9dF>1aTkt&gaiQrB7$p>ARr(> zL_Uipu(h)@{Z|CtELi?q^E5#RQ~g!FdTNnpF9?CdfnUGKnQ5}!j&TGeC32<|fRvbL zat7?;J>VGzQx)$~1*nyr5y3eNpk;^zkDhfEGY$tz!Hk?cGbI5VhTis{R{t_>9Ho?A*1iVMnf+c;LWG=&ky?*Hz@tj7 zsIuGjbDPI|+inS=-6F%lvfN0q zOcn2Y=OW#q=KKw2Ti3b*ILBr~2mm6OQ3}f+2KC0HqW}2%$Z5r%Ul35lZ3H%hQ2?xASvJslO&qV@{Jz zTl@a@NkBjW)bVtA=J}};cBWii@m~^7Uj1Ej{+E6O)T4=Gjh`^W00000NkvXXu0mjf DGbk`` literal 0 HcmV?d00001 diff --git a/html/pic/map/SWU.png b/html/pic/map/SWU.png new file mode 100644 index 0000000000000000000000000000000000000000..185c9b8ffb24b27fd93b96cadd0c643ba8d7fa96 GIT binary patch literal 668 zcmV;N0%QG&P) z000W>0fLJSS^xk7PDw;TRCwB*l)G*eK@dexRd>(qjyK@T_#+2MNDvSpBKQ&n1O$l4 z--3jVc6O#;MbOP+%dfSsCg@zn7E{A!lNw)*}$`s8TDc z>~{U!=JDRPTS92J$S|-hH<)sqa2zcJL}aruKo#duZA=>iU*8;ofVWyP6Yr^2N-+^r z#rxj5NO!0?e}mc9wXOipvDpv;fCy%k!m>zQ?aK`y;7JKHQlb=8C1=jgthHK-91i^X zV?RG|OPvbUDZMQ?!Lg*1OqZF%ES|hdC#i!e4J$>B( z=NLy+2|?O~X525&;Q&aC3`$wVUU*C zoJomgX_npz?B24jl)`>bN&q=iYd=50w6im5NoWN?DGykBlc~xu;GC&SDa z000W>0fLJSS^xk8gh@m}RCwA|mCddbM-YX->aO{*uThBd9+48rDvE>v5f%a6D4V=a zo(ct!Sh2c!i>#6O^LVEJDvK`LO3RBG+cl@^oKt5+UjD@}a60kn6Q!`<+u^`80g^MN zP%A*rEDNOoc6SFT<7gp>Dj@*0Mk$C8qYXoU1g){Il2WhiM@b10)|FB)BPB5-MyAR3 zdtwAIqcvK)0P_5avTb6<=|ruVQHo>cEMVj4ZJ%59^X+$P(pqXF?RE@9e~OGF>*|2x4v8w438%@10TG#J141B1Lg<(_ z4!nL1aQl){C`qj~%tV#eq*fEL5K#5bMVz6|Jn;1k%Sz5FU9N2dh>>|_7yv{tqgK{c z(q@0Z26*^ApT3?|$r&?prdC3bQn3*zMdKwK9&%JhN@o%JE3f0Hx5H zUjyMRZ&zM~d1kj$ySb6>gkAvDdZqN)Q%)PeJUiep^y!p&CIrTj7%c>;m1SW&Yq;A} z4M5dvTId!1{S60@QoK2N??;KE+RIW?Y7qyQHn5i6(q(siBN^36u z&p)vxO7%fvWE`0$XBbdbK7IrkM?$bSZyYc~I8)LZ!{BH=mV7^J?Tq)B19DP8lStK$B6^$OtO0}!801Xbs+Gt`$;gx1vV-I2k^3<>!*`1TK_{mt0e*` z`@QAF+qVFZA7N*-?)&4B5dOEQmn{Pb(Z9O)jYnQj-G1iT^=!=vD}~mSW$_7rzXiF5 zMkh99?&)$kExp)Z1=-b#&w~?yHjVciNw*b6&fevgN$0Mhczc0>t zdv&k-xt{0j?1ex|tShzpD=0=UzU;IrF?Lt{2Z#l5Ut>Jw3;+NC07*qoM6N<$g8KW- Aa{vGU literal 0 HcmV?d00001 diff --git a/html/pic/map/Testmap.png b/html/pic/map/Testmap.png new file mode 100644 index 0000000000000000000000000000000000000000..d84b6c4e2723276f78e431cde710c011ef381050 GIT binary patch literal 9508 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 + +Aymargeddon +[- + $| = 1; + $udat{-current} = 'player.epl'; + + use Aymargeddon; + use Data::Dumper; + $db = DataBase->new(); + $id = 0; + if($udat{-id}){ + $id = $udat{-id}; + }else{ + $id = $db->authenticate($fdat{'login'},$fdat{'passwd'}, + $fdat{'passwd2'},$fdat{'passwd3'}); + } + if($udat{-lang}){ + $db->set_language($udat{-lang}); + #set language in Database in PLAYER.LANGUAGE + $db->update_hash('PLAYER',"PLAYER=$id",{'LANGUAGE' => $udat{-lang}}); + $db->commit(); + }else{ + # set language according to PLAYER.LANGUAGE + # read_player() returns the first DB line in ARRAY format + ($udat{-lang}) = $db->read_player($id,'LANGUAGE'); + } + + $escmode = 0; + + # TODO: klappt nich :-( + # $out = ''; + $out = ''; +-] +[+$out+] + +[$ if $id $] [# logged in - show game list, messages, etc. pp. #] + + [- + $udat{-id} = $id; + + # switch game-id + $udat{-game} = $fdat{'game'} if exists $fdat{'game'}; + $aym = Aymargeddon->new($udat{-game},$id,$db) if exists $udat{-game}; + + if(exists $fdat{'game'}){ + $udat{-loc} = $aym->startfield(); + $udat{-loc} =~ /^(\d+)\_(\d+)$/; + my ($x,$y) = ($1, $2); + my $size = $aym->get_size(); + $udat{-xoff} = $x -$size; + $udat{-yoff} = $y; + } + + + + # register for selected role in game + if($fdat{'role'} and $fdat{'charname'}){ + my $return = $aym->new_role($fdat{'role'}, + $fdat{'charname'}, + $fdat{'gender'}); + # $fdat{'description'}); + unless($return){ + print OUT "Error: cant register role.

"; + } + } + + # delete all messages if wanted. + # TODO: write timestamp in link and delete only to this time + if($fdat{delete_all_messages} == 1){ + $aym->delete_all_messages($fdat{time}); + $db->commit(); + } + + Execute("menu.epl"); + + $own_games = $db->games_of_player($id); + $open_games = $db->open_games("HOME=-1"); + + %such = (); + for my $og (@$own_games){ + $such{$og->[0]} = 1; + } + + @real_open_games = (); + for $og (@$open_games){ + push @real_open_games, $og unless exists $such{$og->[0]}; + } + + ($rn) = $db->read_player($id, 'REALNAME') unless exists $udat{-game}; + -] + + [$ if not exists $udat{-game} $] +


+ [+ $db->loc('PLAYER_WELCOME').' Aymargeddon '.$rn +]!

+ [$ endif $] + +


+ + +
+

[+ $db->loc('PLAYER_OWN_GAMES') +]

+ [$ foreach $og (@$own_games) $] + [- $og = $og->[0]; ($og_name) = $db->read_game($og,'NAME'); -] + [+$og_name+]

+ [$ endforeach $] + [$ if $#{@$own_games} < 0 $] + [+ $db->loc('PLAYER_GAMES_NONE') +]

+ [$ endif $] +


+

[+ $db->loc('PLAYER_OPENGAMES') +]:

+ [$ foreach $og (@real_open_games) $] + [- $og=$og->[0]; ($og_name) = $db->read_game($og,'NAME'); -] + [+$og_name+]

+ [$ endforeach $] + [$ if $#{@real_open_games} < 0 $] + [+ $db->loc('PLAYER_GAMES_NONE') +]

+ [$ endif $] +


+ [$ if not exists $udat{-game} $] + + [+ $db->loc('PLAYER_CHOOSE_GAME') +] + + [$ elsif exists $fdat{'cmd'} $] + [- Execute('command_frames.epl') -] + [$ elsif $such{$udat{-game}} $] +
+ + [# [- + ($gn) = $db->read_game($udat{-game},'NAME'); + my @list = $aym->charname($udat{-id}); + $cn = $list[0]; + -] + [+ $db->loc('PLAYER_WELCOME') +] [+ $gn +], [+ $cn +].

+


#] + + + [- + $messages = $aym->read_messages(); + $now = $db->now(); + -] + [+ $db->loc('PLAYER_MESSAGES_HEADING') +]

+ + [+ $db->loc('PLAYER_DELETE_MESSAGES')+]

+ [$ foreach $msg (@$messages) $] + [+ $aym->show_message($msg->[0]) +]
+ [$ endforeach $] + [$ if $#{@$messages} < 0 $] + [+ $db->loc('PLAYER_NO_MESSAGE') +] + [$ endif $] +

+[# we dont show events in a global list any more + [+ $db->loc('PLAYER_EVENTS') +]

+ [- + $events = $aym->role_events(); + -] + [$ foreach $e (@$events) $] + [+ $aym->show_event($e->{'ID'}) +]

+ [$ endforeach $] + [$ if $#{@$events} < 0 $] + [+ $db->loc('PLAYER_NO_EVENTS') +]

+ [$ endif $] +#] + [+ $db->loc('PLAYER_STATISTIC') +]

+ [+ $aym->show_statistic() +] +

[+ $db->loc('PLAYER_TO_MAP') +] +

+ [$ else $] + [- Execute('role_select.epl'); -] + [$ endif $] +
+[$ else $] [# wrong login #] + + [- Execute("menu.epl"); -] +

[+ $db->loc('LOGIN_FAILED') +]

+ [- print OUT $db->loc('ERROR_NO_LOGIN'); -] + +[$ endif $] + + + diff --git a/html/reference.epl b/html/reference.epl new file mode 100644 index 0000000..f1cb02c --- /dev/null +++ b/html/reference.epl @@ -0,0 +1,26 @@ + + + Aymargeddon + + +[- + + use FROGS::Config; + $udat{-current} = 'reference.epl'; + Execute("menu.epl"); +-] +


+[- + $udat{-lang} = $::conf->{-DEFAULT_LANGUAGE} unless exists $udat{-lang}; + + if($udat{-lang} eq 'EN'){ + Execute("table_english.html"); + }elsif($udat{-lang} eq 'DE'){ + Execute("table_german.html"); + } +-] + + + + + diff --git a/html/role_select.epl b/html/role_select.epl new file mode 100644 index 0000000..c40e793 --- /dev/null +++ b/html/role_select.epl @@ -0,0 +1,52 @@ +[$ if exists $udat{-id} and exists $udat{-game} $] + +[- + use Aymargeddon; + $db = DataBase->new(); + $aym = Aymargeddon->new($udat{-game},$udat{-id},$db); + $db->set_language($udat{-lang}); + + # open for earthlings? + $open_earthling = $aym->is_open('CITY'); + # open for gods? + $open_god = $aym->is_open('MOUNTAIN'); + + # open for observers? + ($open_observer) = $db->read_player($udat{-id},'SECURITY'); + $open_observer = 0 if $open_observer eq 'USER'; + + ($gn) = $db->read_game($udat{-game},'NAME'); + +-] + +
+ + [+ $db->loc('PLAYER_CREATE_CHAR').' '.$gn +]:

+ + [+ $db->loc('NOM_CHARNAME') +]:

+ + [+ $db->loc('NOM_ROLE') +]: + [$ if $open_earthling $] + [+ $db->loc('ROLE_EARTHLING') +] + [$ endif $] + [$ if $open_god $] + [+ $db->loc('ROLE_GOD') +] + [$ endif $] + [$ if $open_observer $] + [+ $db->loc('ROLE_OBSERVER') +] + [$ endif $] +

+ + [+ $db->loc('NOM_GENDER') +]: [+ $db->loc('GEN_MALE') +] + [+ $db->loc('GEN_FEMALE') +] + [+ $db->loc('GEN_PLURAL') +]

+[# [+ $db->loc('NOM_DESCRIPTION') +]:

#] + + +

+ +[$ else $] + + [- print OUT $db->loc('ERROR_NO_LOGIN'); -] + +[$ endif $] diff --git a/html/ruleframe.epl b/html/ruleframe.epl new file mode 100644 index 0000000..dacd896 --- /dev/null +++ b/html/ruleframe.epl @@ -0,0 +1,17 @@ + + + + Frameset for the rules + + + [- $udat{-current} = 'ruleframe.epl'; -] + + + + + + keine frames + + + diff --git a/html/table_english.html b/html/table_english.html new file mode 100644 index 0000000..1e6bdc3 --- /dev/null +++ b/html/table_english.html @@ -0,0 +1,359 @@ + + + + + Fakten_deu + + + + + + + +

+campaign
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+


+

+
+

fighting power

+
+

time units movement

+
+

warrior +

+
+

1

+
+

10

+
+

hero

+
+

2

+
+

6

+
+

priest

+
+

0

+
+

12

+
+

avatar

+
+

up to + +4

+
+

1

+
+

ark

+
+

3

+
+

5

+
+

home city

+
+

2

+
+

--

+
+

flanking

+
+

1

+
+

--

+
+

divine actions

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+


+

+
+

mana

+
+

time units

+
+

bless hero

+
+

1

+
+

0

+
+

bless priest

+
+

5

+
+

0

+
+

build ark

+
+

5

+
+

30

+
+

summon avatar

+
+

5

+
+

0

+
+

move avatar

+
+

1

+
+

1

+
+

avatar fight

+
+

2 per fight

+
+

10

+
+

avatar help in fight of earthlings

+
+

2 per +fight

+
+

--

+
+

flood

+
+

2

+
+

40

+
+

destroy temple

+
+

5

+
+

0

+
+

plague: +influentia

+
+

10

+
+

20

+
+

plague: +pestilenzia

+
+

20

+
+

20

+
+

Plague: +ebola

+
+

40

+
+

20

+
+

Change luck

+
+

1 per point

+
+

0

+
+

miscellanous timing +

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+


+

+
+

time units

+
+

build temple

+
+

3, 6, +9....

+
+

earthlings fight

+
+

6

+
+

warrior production

+
+

40 + 4 * PEACE

+
+

warrior production homecity

+
+

20

+
+

priest production

+
+

40

+
+

mana +produktion

+
+

10

+
+
+ + diff --git a/html/table_german.html b/html/table_german.html new file mode 100644 index 0000000..1710470 --- /dev/null +++ b/html/table_german.html @@ -0,0 +1,370 @@ + + + + + Fakten_deu + + + + + + + +

+Feldzüge
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+


+

+
+

Kampfstärke

+
+

Zeiteinheiten Bewegung

+
+

Krieger +

+
+

1

+
+

10

+
+

Held

+
+

2

+
+

6

+
+

Priester

+
+

0

+
+

12

+
+

Avatar

+
+

bis zu + +4

+
+

1

+
+

Arche

+
+

3

+
+

5

+
+

Heimatstadt

+
+

2

+
+

--

+
+

Flankierung

+
+

1

+
+

--

+
+

Götteraktionen

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+


+

+
+

Mana

+
+

Zeiteinheiten

+
+

Helden +weihen

+
+

1

+
+

0

+
+

Priester +erleuchten

+
+

5

+
+

0

+
+

Arche bauen

+
+

5

+
+

30

+
+

Avatar +erschaffen

+
+

5

+
+

0

+
+

Avatar +bewegen

+
+

1

+
+

1

+
+

Avatarkampf

+
+

2 pro Kampf

+
+

10

+
+

Avatar- +Hilfe im Erdlingskampf

+
+

2 pro +Kampf

+
+

--

+
+

Sintflut

+
+

2

+
+

40

+
+

Tempel +zerstören

+
+

5

+
+

0

+
+

Seuche: +Influentia

+
+

10

+
+

20

+
+

Seuche: +Pestilenzia

+
+

20

+
+

20

+
+

Seuche: +Ebola

+
+

40

+
+

20

+
+

Glücksfaktor +ändern

+
+

1 pro +Punkt

+
+

0

+
+

Sonstiges Timing +

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+


+

+
+

Zeiteinheiten

+
+

Tempelbau

+
+

3, 6, +9....

+
+

Erdlingskampf

+
+

6

+
+

Krieger +Produktion

+
+

40 + 4 * PEACE

+
+

Krieger +Produktion Heimatstadt

+
+

20

+
+

Priester +Produktion

+
+

40

+
+

Mana +Produktion

+
+

10

+
+
+ + diff --git a/html/welcome_english.html b/html/welcome_english.html new file mode 100644 index 0000000..a483609 --- /dev/null +++ b/html/welcome_english.html @@ -0,0 +1,61 @@ +
+

The last days of Aymargeddon

+ +This is the homepage of the game "The last days of Aymargeddon". The game is still under development. It will be a multi-player-browser-game and it is a successor of the +Pbem
Ragnarök . +

+The next Beta-Test will start in the beginning of june. +

+You can participate if you are willing to help in the +development with your bug reports. +In this case please subscribe to the mailinglist (see below). +

+Unfortunatly the Rules are in german only in the moment, sorry). +


+You have read-access to the sourcecode via +Gnu Arch. + +

Archiv +coordinates: +

+ archive: benni@obda.de--2003-A
+ location: http://aymargeddon.de/ARCHIVES/2003-A
+ project: aymargeddon--main--0.2
+
+ +

+ Aymargeddon is free software; +you can redistribute it and/or modify it + under the terms of the GNU General Public +License. + +Warning: MS-IE-Explorer cant display transparent +png's, therefore this program cant be used to play this game. In the +moment the best browser for playing Aymargeddon is one derived from Mozilla (Netscape, Firefox, ...). + +


If you are interested in the game you should subscribe to the mailinglist. Please send a mail to + +
+majordomo@informatik.uni-frankfurt.de
+
+ +with the following content: + +
+subscribe ragnaroek
+
+ +If you want to get rid of the mails you send + +
+unsubscribe ragnaroek
+
+ +
+ A Screenshot of the last game: + + +
+ +Bennis Homepage + diff --git a/html/welcome_german.html b/html/welcome_german.html new file mode 100644 index 0000000..c82184f --- /dev/null +++ b/html/welcome_german.html @@ -0,0 +1,66 @@ +
+

Die letzen Tage von Aymargeddon

+Dies ist die Homepage des Spiels "Die letzten Tage von Aymargeddon". +Das Spiel ist noch in der Entwicklung. Es soll ein +Browser-Multi-Player-Spiel werden und ist eine Weiterentwicklung des +Pbem Ragnarök . +

+Der nächste Beta-Test startet Anfang Juni. +

+Du kannst gerne daran teilnehmen, wenn Du Lust hast uns mit +Fehlerberichten dabei zu helfen, das Spiel zu entwickeln. In diesem +Fall solltest Du Dich auf die Mailingliste eintragen (siehe unten). +

+


+Den Quellcode kann man lesend zugreifen über +Gnu Arch. + +

Archiv +koordinaten: +

+ archive: benni@obda.de--2003-A
+ location: http://aymargeddon.de/ARCHIVES/2003-A
+ project: aymargeddon--main--0.2
+
+ +

+ Aymargeddon is free software; +you can redistribute it and/or modify it + under the terms of the GNU General Public +License. +


+ +Warnung: Der MS-Internet-Explorer kann transparente +PNGs nicht korrekt anzeigen und ist deswegen unbrauchbar. Momentan +funktioniert am Besten Mozilla und abgeleitete Browser (Netscape oder +Firefox z.B.). Generell soll Aymargeddon aber für alle Browser +spielbar sein. + +
Wer interesse an dem Spiel hat, sollte sich auf die Mailingliste +eintragen. Dazu bitte eine Mail an + +
+majordomo@informatik.uni-frankfurt.de
+
+ +mit folgendem Inhalt: + +
+subscribe ragnaroek
+
+ +Solltet ihr wieder von dieser Liste runter wollen, schickt ihr einfach +ein: + +
+unsubscribe ragnaroek
+
+ +
+Hier ein Screenshot vom letzten Test: + +
+ +Bennis Homepage + diff --git a/linecount b/linecount new file mode 100644 index 0000000..d584d73 --- /dev/null +++ b/linecount @@ -0,0 +1,26 @@ +#!/bin/sh + +echo "Lines of Code:" + +echo "Embedded Perl:" +cat html/*.epl | wc -l + +echo "FROGS:" +cat src/FROGS/*.pm src/FROGS/*.pl | wc -l + +echo "other Perl:" +cat src/*.pl src/*.pm | wc -l + +echo "SQL:" +cat var/RAGNAROEK.sql var/LOCALIZE.sql | wc -l + +echo "scripts:" +cat var/delete_game linecount var/do_sql var/extract_structure_and_localize var/backup var/from_scratch \ + agrep push doc/push_rules src/FROGS/speed_scheduler src/FROGS/start_scheduler | wc -l + +echo "------------------" +echo "total:" +cat var/delete_game html/*.epl src/FROGS/*.pm src/FROGS/*.pl src/*.pl src/*.pm \ + linecount var/do_sql var/extract_structure_and_localize var/backup var/from_scratch \ + agrep push doc/push_rules src/FROGS/speed_scheduler src/FROGS/start_scheduler \ + var/RAGNAROEK.sql var/LOCALIZE.sql | wc -l diff --git a/pic/Screenshot.png b/pic/Screenshot.png new file mode 100644 index 0000000000000000000000000000000000000000..d16a2c59f04ffd39269785cebd4b77c95419d6d9 GIT binary patch literal 192535 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%0DD8@q&;)Ps%?78YP|z)78Gku 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

OVh2kH2^gpWo!ssI`_2QO~2M*bcaD| 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�vkJZ@M{ST8-UrQ|lDcAHDB_kUODcgM$l``^2~ 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 literal 0 HcmV?d00001 diff --git a/pic/map/BBF.png b/pic/map/BBF.png new file mode 100644 index 0000000000000000000000000000000000000000..d21f9b80af29be215c44c7938ed758af45ef7948 GIT binary patch literal 123 zcmeAS@N?(olHy`uVBq!ia0vp^!a%IV$P6UgcNDY(DYgKg5LY0*V^LbzDV{_i%fQpc zF{I*_>FM2^3=SLz0^G|@+zVMwYaco9$g{^tX^DXa6aP-GS`jw)gyVi9zh0Pg|I+;z S8Kep_l)=;0&t;ucLK6V$l_7or literal 0 HcmV?d00001 diff --git a/pic/map/BBN.png b/pic/map/BBN.png new file mode 100644 index 0000000000000000000000000000000000000000..e983887d9eb63b21a0cf41840a5c7f6b33135ebb GIT binary patch literal 186 zcmeAS@N?(olHy`uVBq!ia0vp^!a%IV!2~3YL`o+EDb50q$YKTtuGb*U*woD%1r*Hj zba4!+xV86!A>RQ79_K*q>nkL*{4O>Aj$g^moTbTPuJ-%-W~K|}bJ@kCPIl^KUSpUt zr{l&8_N$W;>Swb^C$8J%_)O@w;oQPIQTEcgRS}Jrsix0nOr6ObmRYwk?z3$7^|G6~ g&zkS1Zqv!XXKgL`Kq<^y3}`Qdr>mdKI;Vst0NqSLU;qFB literal 0 HcmV?d00001 diff --git a/pic/map/BBO.png b/pic/map/BBO.png new file mode 100644 index 0000000000000000000000000000000000000000..d3dba3ce7b3d31512eb5aee909b7bb53dfd1f4ae GIT binary patch literal 123 zcmeAS@N?(olHy`uVBq!ia0vp^!a%IV$P6UgcNDY(DYgKg5LY1m@|212*O?Q6ECWv$ z$B>F!rl)svGB|J?2yibqaW7;!t$pOYBhMZqr6mRyO#C~!YDL)G6OQ|d{CZ)|{Y&>> SWRNPzPzFy|KbLh*2~7Yd5F$zd literal 0 HcmV?d00001 diff --git a/pic/map/BBP.png b/pic/map/BBP.png new file mode 100644 index 0000000000000000000000000000000000000000..05c1aa34efdf9677203e7d5a08b11065b513c2db GIT binary patch literal 802 zcmV+-1Ks?IP) z000W>0fLJSS^xk7)Ja4^RCwB*l}(EsMHq#jw?4Z1V>*+NNeDB__^}KGoP-fv3Sw}P zAS(V2H~I&~AK=23AO>8>xNzpq^zE*XE*D*s3*I=nW7CT&=(o-}b9?p` zz#7iZu$DP+xu)(JJbB)wQuE*mpN@1Sq^Ggrd;b6M2g9aPa=q->UjJmA}D>$cJW|Iw)beg*^XloB0>gZ zPzI$@nmK6>pZ)u1vE;#f=9#LZuCW&9s2dKS@Y_#R4auAG_0lMdNaqS5P}fuyN|jEC z4N5Ux0h;$ep|0tBoI`7@rD--e)|N|NUafiWlwW@Y49CYsNeB!BAs~Xa8-QYwd9 zLxB75^4BXx*U`4rHO7z<9@u|R@`a$^JEgBzg8gm3 gt^pAs)@u;)TW(n@Z)tB>ofydPp00i_>zopr0CtuveE z000W>0fLJSS^xk7)Ja4^RCwB*l}(EsMHq#jw?4Z1V>*+NNeDB__^}KGoP-fv3Sw}P zAS(V2H~I&~AK=23AO>8>xNzpq^zE*XE*D*s3*I=nW7CT&=(o-}b9?p` zz#7iZu$DP+xu)(JJbB)wQuE*mpN@1Sq^Ggrd;b6M2g9aPa=q->UjJmA}D>$cJW|Iw)beg*^XloB0>gZ zPzI$@nmK6>pZ)u1vE;#f=9#LZuCW&9s2dKS@Y_#R4auAG_0lMdNaqS5P}fuyN|jEC z4N5Ux0h;$ep|0tBoI`7@rD--e)|N|NUafiWlwW@Y49CYsNeB!BAs~Xa8-QYwd9 zLxB75^4BXx*U`4rHO7z<0_kMr0ShgHF*cm@j>2(eRL(e^jXAUN2`qM&Z=x7^h zhNb_CT=_C3_v;Ux)z_X b_ZKm>?h%=^XGd8W&`JhRS3j3^P6d3Eoh**|P53ib}>#CX=$>c|n{&S1@?G`njxgN@xNAB#}qg literal 0 HcmV?d00001 diff --git a/pic/map/BEF.png b/pic/map/BEF.png new file mode 100644 index 0000000000000000000000000000000000000000..eae65fdcf457f331831a4c594526125ff5019e81 GIT binary patch literal 220 zcmeAS@N?(olHy`uVBq!ia0vp^!a%IV!2~3YL`o+EDb50q$YKTtuGb*U*woD%1r+S_ zba4!+xV884PQeBR0oDsw&)hg+q;n{2MWfJ~W~~_uIZi1kshJuuA9-4w^Y8gv!`%WG zOLM;O3{G9!a&6UA13iz|>a$#0Hs-1wGn>tD`|z4nV>M$L^{qlb=A4;lox7szZEn#G z#%KE0$8dF-{V^yrV(oKDX!VgO`2BQ;Prq literal 0 HcmV?d00001 diff --git a/pic/map/BEN.png b/pic/map/BEN.png new file mode 100644 index 0000000000000000000000000000000000000000..bdbd0188a73432051751a255c407d15985468a63 GIT binary patch literal 201 zcmeAS@N?(olHy`uVBq!ia0vp^!a%IV!2~3YL`o+EDb50q$YKTtuGb*U*woD%1r)6I zba4!+xV884M&1Sk9+!*$&l0$$*cK!ixFvCKOAz3aN^#mS*W#W3`;tlQ3>Mb}AFJ+} zzAcq)+21!AOm^GOec5<*S#xe;)XhCBIZr=1Yvr5z+>LwYjcd!=cn#`rN^CyUHk0*Q yLe~bZnYGMof4-C1c|rX4QIQ<|&nJJKFVdQ&MBb@0D~G)YybcN literal 0 HcmV?d00001 diff --git a/pic/map/BEU.png b/pic/map/BEU.png new file mode 100644 index 0000000000000000000000000000000000000000..b1cca5eff58420d162167101cf8c1e6763650fdb GIT binary patch literal 215 zcmeAS@N?(olHy`uVBq!ia0vp^!a%IV!2~3YL`o+EDb50q$YKTtuGb*U*woD%1r+S` zba4!+xV884ZqWt>9@Y!X=Wd;vY|&zUaY?y)TLO<(Rus3j15e|Ge{*M_KgsmKYTNHS z7bCQnY!#aL_2LeLi!2JszkMWc=W^W;Ow*1wnEBAe)8&)pOk4h20m9a|o^0THroTG* zTBPabLq%t8&UlI4Z^(XTo1OQfdv222nj>56ye7SG?cqLTxwfC*D=%-#uk|suKu0ln My85}Sb4q9e0HKLd@Bjb+ literal 0 HcmV?d00001 diff --git a/pic/map/BEW.png b/pic/map/BEW.png new file mode 100644 index 0000000000000000000000000000000000000000..a8a9111067a5c990c264f08e65a8bf2e7cdbde50 GIT binary patch literal 706 zcmV;z0zLhSP) z000W>0fLJSS^xk7bV)=(RCwB*ls!)sK@^6c`Pz?rA;Ex&Tw{npj1~|PG)ORNqQOpM zkF48A%$^WrSM9;Kx-Q*3Pvj@1V{D9rE~nU@zxQ(7&uoXN#v^ZkHWiPmHpX-Z;9 z+rWShNwh{Oq(BIOmDPc>omfO`gur{e!+WmWE`EOeZ_XO;agM4Y1VV_*ftb_x5F%oM zvZSu*+$^@foQ{=@jgjYsfO9y95D0-Z12FGAjUqKa{S>T5DYQmw(li#F zBmjA9fHOhL$P9tHj`6kQ+3Qoh)pWZEfpgR~Wl67xwXq+ETBp`|=@w;)we)(FC1u&S z$7rUPiti`)qa*~RL`sZ72&4p}LzP45e=}!RNK=eKsklWG);vR?Gh6)nbR4Szya%YN zNIra*lB%Yn83WiodMrzLz*&qxA^hl5Ubg zF{I*_>ES?L1_cfWM+x~FA;;MPN7cf%b}p*ES2n5o7AK& z_6*DHM7GpG<0`hG&$gSNw(Yy2mUiHkuX??W|F5??M*7U`I>sAg3@w4~VeoYIb6Mw< G&;$U*&`P!d literal 0 HcmV?d00001 diff --git a/pic/map/BFF.png b/pic/map/BFF.png new file mode 100644 index 0000000000000000000000000000000000000000..14c0aaf86516ab4224c10e3471ea5dd5702fc8c3 GIT binary patch literal 139 zcmeAS@N?(olHy`uVBq!ia0vp^!a%IV$P6UgcNDY(DYgKg5LY0*V^LbzDV{_i%fZvd zF{I*_?%{)+2NVQc9lbXSM{g9q+^L$&y|YqGU+~CT@%sl_p5$9-_x3gi+sE!Y{kC)J jv11Ekm+QT&seV%Y&p|QV`@Tmm$W#VTS3j3^P6o8cIFrDtB_m74Q8I~VG2>y+G3b@`ai8QhK7gE zC@mAaz?-t{P5acj5w{w*)>drnH8192GYa0eAyL09C+YOFB^%gT{xc`dz4G)HC@ei) L{an^LB{Ts5wOBOh literal 0 HcmV?d00001 diff --git a/pic/map/BFU.png b/pic/map/BFU.png new file mode 100644 index 0000000000000000000000000000000000000000..9006f952dd34e7e5d26111e19c2ed0156e291e1e GIT binary patch literal 915 zcmeAS@N?(olHy`uVBq!ia0vp^!a%IV!3-q3RtSA#U|?nl@Ck7Ra{vGTzhhC_pZ_<3 zYzjebZ7qc+jA|bZ0eXgji1OPeWT^vIyZuOpX9Btch z+)}qeoh|j)ie5v*LuZthiCy4LS@x!V>fDH1jazFgHujnq^RO8OZ`+V4Y;Cq7H96=8 Yx64iW%)|?e_JVxk>FVdQ&MBb@0En(U4*&oF literal 0 HcmV?d00001 diff --git a/pic/map/BFW.png b/pic/map/BFW.png new file mode 100644 index 0000000000000000000000000000000000000000..c5ebf70cd9984866370d83b3c3939c6afc9f816a GIT binary patch literal 641 zcmV-{0)G98P) z000W>0fLJSS^xk7Gf6~2RCwB*mAh^fF%*VB-)3fKb_=wR!ggs8MMy!Bk_rh4A}WN0 zAQcKUJOm{#KtaPhrHD4k?p$n-Q_Kko(I(kh%hJdm9eu~=|BtNz;P0;^Mh?xcLvwHp z9K8NHKJv+YS7w&+>c_N&Dj6EJyv5aMM0jEIr3`Q-6mLLEykb~N&&n$9+PcK#2z0Ao&?W6ZiBV- zJu%`vDUp&aw{;)j9M+;W-s3%sw~t~q^EpL9O2kNvD1}mJw*}J}vW&81GNCM)PRVof zoc%|-&x&uIBg^P}yqEkZV z8?hRY^t=~xmSHW1Iv@LB**Gck&yv7g$ed6i6P1#;tuv~I}&U!87 zRSILUR&-JdrCA)^!CKKEB@xD$n`P6`_foL5v9{^|ZSSdTRx3idzAh?eGoF9CjkN$; zOQQ^j%yR((MM0LKwRFO*q1gL?bCjjXpcF-cF*ns3Vk9#0`|I%bS>|&<>^}6GQa6^2 zk-8>EjKMjay~TWaLP}Um2qKJg6oo{Fz-lF%gHM`c=w10QXAZ%TWjbbDO`8(Vj bUYv0SC`}2KsaN#M00000NkvXXu0mjf(})~( literal 0 HcmV?d00001 diff --git a/pic/map/BNB.png b/pic/map/BNB.png new file mode 100644 index 0000000000000000000000000000000000000000..a3d708f94a3363d6bb8906327223a0f10b50efa0 GIT binary patch literal 206 zcmeAS@N?(olHy`uVBq!ia0vp^!a%IV!2~3YL`o+EDb50q$YKTtuGb*U*woD%1r%)X zba4!+xV88EZr%n19+nHuJPj`08Ubnx6Y|^|+vGa!mMw5>=}&$Wllk(?Io5`K*=+Zf z3{{sDGCV8gcG`FunKsy-ks4xM!cX*(_8%N363_MWFNk5x#fR(^)PUyKDx!g~8L+&t;ucLK6Uw C_D&xF literal 0 HcmV?d00001 diff --git a/pic/map/BNE.png b/pic/map/BNE.png new file mode 100644 index 0000000000000000000000000000000000000000..485f4cfb69aa3a570655a12731a5666af1c51a26 GIT binary patch literal 255 zcmeAS@N?(olHy`uVBq!ia0vp^!a%IV!2~3YL`o+EDb50q$YKTtuGb*U*woD%1r*%q z>EaktaVt3`A)z2-N?GW%R0TnUonA#o6If@2-}VfdSNH4v|N2zLx=U|>N)*mVsj;!O z@i`|>lYd`!zt(4y-zSC;b;)Z%IUwS&U(nj4NzecN_V2uSrs>#w1Cg|Zir?)v)}1BB zQ=K|gvRCG+8(zC~z_01rrDJ}7u3b9gXLC&`TRqJzLD5b6T8_h-xij*XrE)ynG)=E; xQKWa@+~4o*Rn5W-k~6;FJ)ZKb`2XMK44k4Vi)QR?%mX@}!PC{xWt~$(69DrdWt9K` literal 0 HcmV?d00001 diff --git a/pic/map/BNF.png b/pic/map/BNF.png new file mode 100644 index 0000000000000000000000000000000000000000..d57622cf0319fcd3861256818cf716a2f47116d3 GIT binary patch literal 218 zcmeAS@N?(olHy`uVBq!ia0vp^!a%IV!2~3YL`o+EDb50q$YKTtuGb*U*woD%1r+S@ zba4!+xV884Zr%n30k#M6*A2vudFsTp9-PtC(&Wj(n#j*>?O@Y){A>Nb>L+3h*EimM z-gheM;M!2n#Fz`${7o1?+%TJb+-x?_w)V)=X+B97ep;G8iiN7*ZCR+bZM$b8`;7f> zBsQPnGv?O0>T`HW$~WE>X}3O~;H}*le5T{+jAN{RpY~4JHqUZ-;X_8|?y_`yjq)2n PcQJUn`njxgN@xNAXy{XJ literal 0 HcmV?d00001 diff --git a/pic/map/BNN.png b/pic/map/BNN.png new file mode 100644 index 0000000000000000000000000000000000000000..f98ca9ffa4df113b42ce85546d73681cf42da880 GIT binary patch literal 200 zcmeAS@N?(olHy`uVBq!ia0vp^!a%IV!2~3YL`o+EDb50q$YKTtuGb*U*woD%1r)6E zba4!+xV87{Zr%n19+nH<%aRx%=-48MMFwhf>I>_uwmsG0WoW34O<2R1|26t{U-6=! zJejG<%ldg|^O+sqvT4`Jmefi12}f0`{ccU@JZmPo?ZBVZ>@$YZX?zjQnukJyYT4HO qe7Cd6IsT1E@P@k0mUZV=R5EgHHF5pLwelR$6%3xPelF{r5}E)x$w>16 literal 0 HcmV?d00001 diff --git a/pic/map/BNO.png b/pic/map/BNO.png new file mode 100644 index 0000000000000000000000000000000000000000..38effbe5efe7944fab630d426d26e0d6d63e5b2d GIT binary patch literal 209 zcmeAS@N?(olHy`uVBq!ia0vp^!a%IV!2~3YL`o+EDb50q$YKTtuGb*U*woD%1r%)d zba4!+xV87nLCyvPp4Nx^V-LBy$Q)P+LJmhx4&FJyP zWAm%|&%C~Nfu$s8=E~%5U)JcuXHp+8TOwnYAC}3LzHZAxoo(AR6M4_XUpwZrIW4W} ztU>dp6_U2hD}Tzm_BW#@Tb=hS5dFpoyL}rRF{pU2*s$upMpmP{JUHx3vIVCg! E0F`S}{r~^~ literal 0 HcmV?d00001 diff --git a/pic/map/BNU.png b/pic/map/BNU.png new file mode 100644 index 0000000000000000000000000000000000000000..cc823eb3bb282cea687140c3e4a6639afb6c1292 GIT binary patch literal 214 zcmeAS@N?(olHy`uVBq!ia0vp^!a%IV!2~3YL`o+EDb50q$YKTtuGb*U*woD%1r+S? zba4!+xV884Ucm+h9@YoTvn#~rO^&b#Q(K%M)Yp{E&u#6%(>USZ-RbjBGd-}{_WRDo z2<;_Xg(iNzxWnKgi$d~mAIaOfTsH*Mw4)7XJ~Z)k`D8iMmj70Ou=TAc8@Qh7uTH)e zX}bAP(OH`_USjtfvY**z=e_8jo20hp$QC=VN$*>GxDQ#b?dSgxP}nElWx5XNCI(Me KKbLh*2~7am2T*GO literal 0 HcmV?d00001 diff --git a/pic/map/BNW.png b/pic/map/BNW.png new file mode 100644 index 0000000000000000000000000000000000000000..076c82aabae65e8178a59d84c8c103cab422c67a GIT binary patch literal 699 zcmV;s0!00ZP) z000W>0fLJSS^xk7ZAnByRCwB*l*?)qK@^6+x^?$-5=93=CIrbvF-U@v1Y(FL5hQ}o z;WOm5yew2)B#K}b35ts>+}Ime+0XQ?s$6tAqa;pdQZ!8$bl3Nv|39Y%uroXTbbf|0 zm*lcb@oXg>OUta%+#37=~d#GG$m;6 zb;!W`5R6iTZJvihgutI=c2@s2TjD)+Orj<3OiVC2 zNgM~Cn$g#~pOE7A)*#QubKX4{3cRc_A002ovPDHLkV1lt=IZFTl literal 0 HcmV?d00001 diff --git a/pic/map/BOB.png b/pic/map/BOB.png new file mode 100644 index 0000000000000000000000000000000000000000..a3235a3499cdf049460998c0a88dcc5d45aa2dac GIT binary patch literal 127 zcmeAS@N?(olHy`uVBq!ia0vp^!a%IV$P6UgcNDY(DYgKg5LY1m@|212*O?Q6EE7)` z$B>F!riTN085B4i93|vygdArF990Y3+PSFuUfHDTlXoRbq_&>2pP9pBwN~q?{F@p+ Yll7W@iN4Etf%+LdUHx3vIVCg!0Or*ti2wiq literal 0 HcmV?d00001 diff --git a/pic/map/BOE.png b/pic/map/BOE.png new file mode 100644 index 0000000000000000000000000000000000000000..0bafbd889599f3cbb81ca103e95510198057bea5 GIT binary patch literal 199 zcmeAS@N?(olHy`uVBq!ia0vp^!a%IV!2~3YL`o+EDb50q$YKTtuGb*U*woD%1r)6G zba4!+xV884M&1Sk9+!*$(-tK191-a0OAy$$V1c6=%k9p`|GxOCS28pd&o+!ZRQ)nS zJt5{>pW1`u*FN&mxmGvCmQ6i7d)5Y@duuL-l;v%i(3zW?b%Wva^j^c$IWr;?c$aak vo^;dv!mRh_CUVzqjP*JA&1n9b`+FD^=V_WhS@mB7=m-W+S3j3^P66jmvO)ZZ9dp9m?miw+SbDnp KxvXEiu{v literal 0 HcmV?d00001 diff --git a/pic/map/BON.png b/pic/map/BON.png new file mode 100644 index 0000000000000000000000000000000000000000..cacedb729171f7d4c72ef2afcafd9c344578ce10 GIT binary patch literal 199 zcmeAS@N?(olHy`uVBq!ia0vp^!a%IV!2~3YL`o+EDb50q$YKTtuGb*U*woD%1r)6G zba4!+xV884M&1Sk9+!*$(-H(*BpPl?@NMLX4!EEo-1PQHVSUx|$uF!x`z*P9#9Z)b@bjS9KBKaa;Iu8_s&W&eZeDV#qS?zd6I9T-P_w7Y#+Pp^xMv< k$Br$GU9R`8rus?oKL^Ed@B1FPAX6DUUHx3vIVCg!0G_-rH~;_u literal 0 HcmV?d00001 diff --git a/pic/map/BOU.png b/pic/map/BOU.png new file mode 100644 index 0000000000000000000000000000000000000000..bf7909733b757262174866bf75101f73633c20ec GIT binary patch literal 915 zcmeAS@N?(olHy`uVBq!ia0vp^!a%IV!3-q3RtSA#U|?nl@Ck7Ra{vGT|MHZ{pZ_<3 z?7<9bYikFy^G4k^6hmM}yxRw$yZt;}978H@^`3L&J7B=U?6`XWqyO@&Cv}({ZQF3% zQnx{!E%n%nUPHq}XOxzSUEobw_NIO6+=yF^TWc#e_L>*-uo(q!+mI-1ZMGpbIp_v= X*i0v_+lxC2K_TMl>gTe~DWM4fp7A^$ literal 0 HcmV?d00001 diff --git a/pic/map/BOW.png b/pic/map/BOW.png new file mode 100644 index 0000000000000000000000000000000000000000..5a987e50b297b996c20bf094ddfbce6959a10b75 GIT binary patch literal 640 zcmV-`0)PF9P) z000W>0fLJSS^xk7GD$>1RCwB*mAh`#Koo|*x!GQOw?JF)AgpN8Ac~L%iINrx5EVi~ zkO~0}ufuyFUIe9xHhb}9W;_%=Axo6YdPgH!W9#TU=luT}D**WOYr)8+Ido}GPJxGy ze~*uRFh7);WxV`x09K<6+2kPRc1sAn_&yeEIXlBSdOx1IUUPoVa?Rq^D6EyIF}T@y zC*(QPDb0JYIhiA`hPV3!Yplf>v_dI>XQyMbO^Mj!1HqHv$%lQgmcA!O zyeB16lHvXnN`JPBD<<6OY&UG_MW!m=-rK2 z4M=+43pvZM7UwVqAGn;pu2w9UTwJi-N_&;U z7_1eYltO71Z?9pkXpoW!W6agDY3O@tSh}&d>HpW>Q`c-Zgm8IXRLo{P{kV&@09wnS z3`OR-0D+<)%g|aTVP`3h-s2o)DKaQUQDDqfw}u#rO#J*Z{QE5PIUsf)W=*LpOU6iD z6C=jp9M104`R`5`RHu_&) aamHVnMHH6OMlI+70000 z000W>0fLJSS^xk7jY&j7RCwCOmA#G}MHGdg+_!$99#jO|@YnkLqj5a>FbYtAK{d#)*m6@V|kt*K(x-jyOS z=P*-BOj8}fHD;v&PR*5s8O{--)wFV^6hbgFE5*Oi!~ib7(_0TH1@9Zb2D7f3CYFVq z<($ksf5V;Ew0l?cqPhU*$XWBO{ho1TS=w%1XkKBN`1P^QK46}evp_jBO&kt&R8CH8 z807swn5`H;=#7t%BSr(wGwX^OU1z%;!$6GT<;?2YjGX0tYjQR3Tn%6RJM`Jt>`sZX z<(xCig7?;SK)8X~guQPyHj^3SsQvzB30=o;7dm@iATxnVVV)UB=9yA%)LizABPrG6 z0_r~NN!{eLn$`JNINyp<3TA9Jc5)JKV;Vq=Y`5mUYLhn`y6#p@kkjYi*xemnhgm%o zBzHR#W6iAz(pAo$WAOV=I(tvm=X1EDn5u_ZbU5g6sAqVbX58@eBfaw}IWx~nNu}s0 zrjPV@37zhLNlGlsZSA{4PL!3We^^~cO04T~(*iz_6Tf_~dmmE@&V^%{=>Tx&b#i9A zwHS}qtUqhZ#QKzbAJX@ZSH+Wy`mf{p5BTvBZ-4UYnz0A;>>2+9{sgtvHv_HETZ;ey N002ovPDHLkV1ln-S6%=B literal 0 HcmV?d00001 diff --git a/pic/map/BPB2.png b/pic/map/BPB2.png new file mode 100644 index 0000000000000000000000000000000000000000..3191893265c6d4d8fb5e83b3db678112982d7d9c GIT binary patch literal 127 zcmeAS@N?(olHy`uVBq!ia0vp^!a%IV$P6UgcNDY(DYgKg5LX~w$gt_EbtVUpW#Z}L z7*cV|^l%_Ag93+xqlA2okmKxtqiSJWI~P^oE1Oh(@~%XQ)Yen>Gjn*X)@nVKe^bL} XvR>0K(RUdyP(OpGtDnm{r-UW|a(pBd literal 0 HcmV?d00001 diff --git a/pic/map/BPW.png b/pic/map/BPW.png new file mode 100644 index 0000000000000000000000000000000000000000..96557e9dca5631aa63980dd52b4ca532967e9fce GIT binary patch literal 1079 zcmV-71jze|P) z000W>0fLJSS^xk8=}AOERCwA=mCdVFRT##9@A}yL?0xQ4;u48smR8i@ilL^NU^UTU z!~TGR<_#P+i-yst{+1x6P!tuKC81!5PMloyp0m&1>#Miam#{yxhk&T;rKT}KFx*N=0h>zK_j1|VlrA|+xZX8>bxu2?G~ zhHKY>a_?9DG-pad1QBwUVUSm^WU*kHD1{hVtr$n9$??X{re=(?SWrrBQl^RheT}In zC5Ax&5ku4P^^aOMXQqi^kmXVq3lxdO{Xclj@hhuk8_9+f(!#O z;v7wbF*>;j##lc1915o{^YAAB-Qn~#nufNm*wVJlX41B$X|Ps+5J*XKcD#6j_vD~u zjp$S&l!7r>TVf<7DTSPIuEa>rmN!qcS}{%>-R1e;{PTyr{Ruf^t;SbiVw7QEnn+2E zky6%tT8rP-_q{!Fp6%_@bvQ>#GEFQNtX7)Qdqgb9&e68?J+qFJ7kPY}XZPjE8OBjk z5|ES_1`TtL`Mh+USZi>O*^IWO@wD?=wcPuSoGKWl;#r4xuFU7m=Vfcl;2hRsL`S-M zeItxg6d3PmTLs)0tfgrzCoU>`Ig=APbNoC{?(qD9oVY;WD@nC4kSfm@ost^@rBHEC zXDjB0Gt9MmB zg@kM@uH-DMm8@1(iI&}~v@PDNvW(HN`dbP|PxJIXPj1V}&q#@Jln^9mv$4F&TLrn! zZ!ICR-ud$TPnvhRWN*(fO@yEmR+}@1zNhQ3mKe!}v)^iP)96qsS&n?HsMfHQa84H} zB?S!O=vkgW;L)FQ;vzX?j8hKk`c2aT=zwmsdJ-GU?fc@rQ4U@|AutSTwr$JS7V|mV z+kE*wQ2zS4^gVs=4sHv~nxVGUg1~I1PAluxuit~^-AlAB+uO`$>Q41isy^VoQdOUi zzTn{v9^T-cPaQiufXclhRPTZ+$!cFIX;QDkke4ql?_W_ELQs(FomaC=6U*gm!40P_ x^Y2Zb-gR2-z*8!*!=T%9aCxSrz7bRz{{xegH($i|t1$oo002ovPDHLkV1jw~4PyWR literal 0 HcmV?d00001 diff --git a/pic/map/BPW2.png b/pic/map/BPW2.png new file mode 100644 index 0000000000000000000000000000000000000000..ea77bd0c3549a8d7dbc22f8e3f07f484e6ea68b5 GIT binary patch literal 645 zcmV;00($+4P) z000W>0fLJSS^xk7H%UZ6RCwB*l|OFOKop0+`Dc6W-2&|q5GP=}Ab}`CDwL8I2@n+m zAxMP~4K2r@MB)ULoPjH(h&IWt*Pa;=7>N<3Pzvp~U>ZY~QI?EGlqKUa zc}||QzoGlA_|`eHjIP6b$$wOCVrq@n7=u!zLt1#58*=K$K4reU?BZN-n{ z@>b@2&SD|6u4x*&j;>?1!g~%r-h|bpBndl*QfLi`pL|5wo0(O`Xe6_$C`O53trUJA~*`+z^ce)HW5?cbZy7q+g&Mls4k fG0MB)#TkDA3?2*lkzN?z00000NkvXXu0mjfrne_| literal 0 HcmV?d00001 diff --git a/pic/map/BT.gif b/pic/map/BT.gif new file mode 100644 index 0000000000000000000000000000000000000000..fad6d44917725fdf7e9a1e32b73c0d2f1b6ca671 GIT binary patch literal 412 zcmZ?wbhEHb6lPFj_{hlcpMl{&7%(s}DE?$&WME)o&;ha;K=KSs|5!Kz7rAr_sd`P( z5Lf_Z1S&Z+fJJ~(jSPxFDXs4i6| q7MQLn90)5E96AQZ3PvWF!+^fXgL^|j0p@uscmu@_MEGhjSOWl^>UMVk literal 0 HcmV?d00001 diff --git a/pic/map/BUB.png b/pic/map/BUB.png new file mode 100644 index 0000000000000000000000000000000000000000..80f99ddb22e529f044630384afd15ad38b20f13b GIT binary patch literal 886 zcmeAS@N?(olHy`uVBq!ia0vp^!a%IV!3-q3RtSA#U|?nl@Ck7Ra{vGT|L6ZrAcHEP zwzifk=8PIL8Ul0(0i%C6tAW-Sdb&7ml>b1$=Z{*VU~CWa-*lKpUXO@geCw2NHDYj literal 0 HcmV?d00001 diff --git a/pic/map/BUE.png b/pic/map/BUE.png new file mode 100644 index 0000000000000000000000000000000000000000..c0c59f4ac91c8a4658efd3321a128fbf0841e708 GIT binary patch literal 205 zcmeAS@N?(olHy`uVBq!ia0vp^!a%IV!2~3YL`o+EDb50q$YKTtuGb*U*woD%1r)6J zba4!+xV87nLEZ)hp4Nx*&kDG=7pVKac_NngP(jYeMjmdKI;Vst0IeBH AV*mgE literal 0 HcmV?d00001 diff --git a/pic/map/BUF.png b/pic/map/BUF.png new file mode 100644 index 0000000000000000000000000000000000000000..36770fdae46a08c9d528b7908eabb3585b96dafb GIT binary patch literal 915 zcmeAS@N?(olHy`uVBq!ia0vp^!a%IV!3-q3RtSA#U|?nl@Ck7Ra{vGT|L6bB9gEU{ zY#M>u+FBZ!JZkJ{2v8CNZ@V>pf%^SCT^vIyZuOpX3FLx~eUHxIS#y|J-VclP8% Ya?=mdKI;Vst02QG;mjD0& literal 0 HcmV?d00001 diff --git a/pic/map/BUN.png b/pic/map/BUN.png new file mode 100644 index 0000000000000000000000000000000000000000..8f201e18be6b1f680003f4ee1de7cefff09c2264 GIT binary patch literal 229 zcmeAS@N?(olHy`uVBq!ia0vp^!a%IV!2~3YL`o+EDb50q$YKTtuGb*U*woD%1r(g_ z>Eaktacl2oL%wDM9*2wmRSjNirZhfN;V4|=W9iu+u=2UK?29Q*8+?P_$DiNygpI+8 zL*sa_b9?5UH`NNqR_HNGzizns{qcp&$oA5GOB-!-rEUlVknu{XuVqQ3D zZQG)ms6C@SN7nd!n6dGiLq17?JAbkTeJ+1KOZ-;y|0K0FclY>wpRM)b?bp3J{m)P5 a)iLaRXRsl5pNRy}i42~uelF{r5}E+A)msz* literal 0 HcmV?d00001 diff --git a/pic/map/BUO.png b/pic/map/BUO.png new file mode 100644 index 0000000000000000000000000000000000000000..bd192eea3099e8000d06ce4a228598c164627d13 GIT binary patch literal 915 zcmeAS@N?(olHy`uVBq!ia0vp^!a%IV!3-q3RtSA#U|?nl@Ck7Ra{vGT|L6bBm#0jC zY*ImOZ7r!mdKI;Vst0E$F9v;Y7A literal 0 HcmV?d00001 diff --git a/pic/map/BUU.png b/pic/map/BUU.png new file mode 100644 index 0000000000000000000000000000000000000000..4439a992598a5996582109dea3ba679e052ad30e GIT binary patch literal 917 zcmeAS@N?(olHy`uVBq!ia0vp^!a%IV!3-q3RtSA#U|?nl@Ck7Ra{vGT|L6ZrAcIIy zTU$${%28#bAuz~8pxj#E3DAiFo-U3d6}NgX9ppV=z~OvxKhtmh=&hlbIi#76tH&Q; zn8=>K@P+S2gM+7xrcD#r%)8LhY2#+u=-V5%%kyvhkRqSd z000W>0fLJSS^xk7LrFwIRCwB*l)G*eF%*VB-^R1I0&NEs5)B13geFaZBB7v2Ns9#3 zNC>5h0*b^7@c>AX=y(7MI?5DLF1tHBw#O86!a@>~owY_YvPZ|?@%jH_1pvFdyL23y zRfp#J4zRz!-#zlycvWUm@bdEtSdB6iy_J~LDKWDBsVmlUc!+Z}p*!>JjH4rt&scla z32WtR3~toj3EndtG8nP>VR@{^TFMgdDI9*#t}YX-u@+;{3Z($HcDiJnGpQj&Vj#nl zcgtWcO+!kAK+fbW(`DTUIES@pO$da*+Upy!n(>&jBxh10C6q!bv|EB{3`Ie|Pp?P6 z&v1zMc+chy-DkzO&QTOJ4IxPWz5Y#1tP(1Q3@6l+k4kwEzaQ_KwUGRQ&rTp z_;Gk0)^O*sK&p!QocVkqkF(rc=jXSBgM*EYjZ4|)ED1Y@QfLi`pF%>}|1%$K;XTe_ zjBL?{weOs{{g7YZFJm=8(@0fYa#3Kd>=h#CJ%6E8nz|+gIbmH(@~yna5F<_I(VMGO zIX&h0n3EHxQz@@f7=yK z000W>0fLJSS^xk7jY&j7RCwCOmA#G}MHGdg+_!$99#jO|@YnkLqj5a>FbYtAK{d#)*m6@V|kt*K(x-jyOS z=P*-BOj8}fHD;v&PR*5s8O{--)wFV^6hbgFE5*Oi!~ib7(_0TH1@9Zb2D7f3CYFVq z<($ksf5V;Ew0l?cqPhU*$XWBO{ho1TS=w%1XkKBN`1P^QK46}evp_jBO&kt&R8CH8 z807swn5`H;=#7t%BSr(wGwX^OU1z%;!$6GT<;?2YjGX0tYjQR3Tn%6RJM`Jt>`sZX z<(xCig7?;SK)8X~guQPyHj^3SsQvzB30=o;7dm@iATxnVVV)UB=9yA%)LizABPrG6 z0_r~NN!{eLn$`JNINyp<3TA9Jc5)JKV;Vq=Y`5mUYLhn`y6#p@kkjYi*xemnhgm%o zBzHR#W6iAz(pAo$WAOV=I(tvm=X1EDn5u_ZbU5g6sAqVbX58@eBfaw}IWx~nNu}s0 zrjPV@37zhLNlGlsZSA{4PL!3We^^~cO04T~(*iz_6Tf_~dmmE@&V^%{=>Tx&b#i9A zwHS}qtUqhZ#QKzbAJX@ZSH+Wy`mf{p5BTvBZ-4UYnz0A;>>2+9{sgtvHv_HETZ;ey N002ovPDHLkV1ln-S6%=B literal 0 HcmV?d00001 diff --git a/pic/map/BWE.png b/pic/map/BWE.png new file mode 100644 index 0000000000000000000000000000000000000000..8ab27ca00cbb5d2f272ba28a85f706dae41ab306 GIT binary patch literal 719 zcmV;=0x z000W>0fLJSS^xk7fk{L`RCwB*mA#VXG!TWqmL>bzcV~Zc-h$#K$ao9hfg;<0fPf+Z z_93Vuf`EX4BA~W-3-Z0Yb7fh!q~1W9nVs1Sb7xLDaNtv)`gE%;03e@z31BVLgmVC0 zhqYSYW0d2OdB$3vJ!2f%Hp_>yR>zUu4r2gHA!l+XB}xG>25YtJM8y2_`6qzB{;7Rh z3aW@8LMal0TwaRztShRd#Ig`0>w24+l6a45J*2EF$7AzUHX2JA!lceS4hKVYtm4M|L}P4r>u%+av^1!dm(sV_M}R7$X%3eERFZ0AIYUsiNAx zD@8z!K~=Vm5D>vy!yOrERf(XAF*v6p)qCcd z7zHF}%f~t##5yi6bR4mkoMm0{o@JpFx(?@Bws)}l_m8ZRH*e%{ka?CE34s{vQQ7bH z$rE-v!ztRzq4Wg_*UwE^IqP* z74ILy{QVn@L4*XZpbD7Qj+sn4WthGE;IWtY_+ym-tQT_RyP7~8) zc!Z2Ot1Bm}{pD-s`B6-eckkrZ;yF+CZ}3Pa@E&nKa_}xB?Op%?002ovPDHLkV1mK* BR7?N> literal 0 HcmV?d00001 diff --git a/pic/map/BWF.png b/pic/map/BWF.png new file mode 100644 index 0000000000000000000000000000000000000000..b2542babb9647eaaab305c0adfb479659879fa7e GIT binary patch literal 719 zcmV;=0x z000W>0fLJSS^xk7fk{L`RCwB*l+BLaL=c6)>L2^sH#3>!U3ewLJ0Nx}SRjE|0NJuf zVh0inBoGUfhsjOmw%u)acd=;COftDJcjm|oFMRxUovLa90QuxI0OuG-ya%ur=d``2 zB*!DugmXN9&M>g9j`!u94g&Z)H`Vt)JSQ$Sz;xP4kHs)!&$ ztuoJYeJvrdEU1z*F_IF?@*y*42?5o1NLdz+$Ia7J3iB+0hym`fwX!VCvrLnOKnUc# z9l?9LZhO4fzWhz zmoK@z)N$0l$2n>xMv2jIPe!(?L{P;TyjKxQky5A?=Tuc|y>m7!KYuRAYeJxu%@13u zAuvs(Bp{_YKGxwN&U100!+>*?BFjPu#7M1Ji}zc$_ptiU4=jl{Z{%>0X_AzfXHsfM zWxv;F&)Dq@r=+i6Q48xzDcbUE#XG0_eKX&8Zq;r-P)ZS1yr=K!d#uG6tflKtFmDFq z6~gAZxZuSLuCC}hNr@PlXUG3Y0n}QoZA}tY+IYR+l@r*%zhj)MtJU|A>yW9WPHUzVE=eNT$C+F~SUfWFuL{vl?Q_l%=jE3HF)e>&R}AzPze z$1vzP>g8pdEprw#m%By1$@u~2ZOD?6w0mS-+en?qY~8I@Vw4!$BtGoiuz!3l?S2bE z-oBL(9>e_oD~v&eY2t7=%Xzy7+I4L?Ddk+|X8!fd?FMts@mQ6@II8!LsB??zuWxl6 z8ArntWXxGzIZ^E|UocHiVuHMT_h{$sJU)>L{0k;#c~vtK2o(ST002ovPDHLkV1j6b BPUQdq literal 0 HcmV?d00001 diff --git a/pic/map/BWN.png b/pic/map/BWN.png new file mode 100644 index 0000000000000000000000000000000000000000..4a92aa6c13657616f0ad031d86605332fe0cfdc3 GIT binary patch literal 721 zcmV;?0xtcDP) z000W>0fLJSS^xk7gGod|RCwB*lueH0L=c6)$RE4xn(pbDyC87@4#OP~JA_yufmi@@ z2qbnaSRjE|pgGLcOjp{Oc4h{Pba&766m)ezdEtehzl;|VDF7g!d=B6oz}tzYef|i zM5tBfS+1`o1eOI=awbMnVp%?9<}4wg+72np!tuCyno41w1rRa79ky1Mg?W}~k`M@i zoVO!*PuFda_uBU#GKYcPPQAxDL|9juXL80lx(;Ku%0)0OiCgTS-|2qOFfa`CJ>#fX zSNifLmzO$@+V?m|t;8rX8t%!+R+R{<7=!mJLMc)Twc?zrYOQz9hUJ$p6>IT+%k~~t|M`g}@#c*j4l+%W67x(- z?WpYc`s^9Io#B-9^($&&T`5Ido~?N2biZ%r`_8S}?FULJqKfzQJ$;Y07=yKR-3jK+ zV7x-uJQo+dc)`^bT_-6KBlGO|A1Q!Zi?yvuqDmXD_q%ce`}Ysbv&^%kBsojYwMvWog4O#Z>8OD zA;{ae62fDczkh=Mt1Bm}{q;+x=}AnGckdqUyq(7 z000W>0fLJSS^xk7e@R3^RCwB*mA#VXG!TWqmL>bzcV~YhUIcg#-hy|a$TlD#pa_6{ z2&%{k2nZ+wSYCu^@9tb#mMy6_kY;9Q_QKqmQw|*X)Tch(Y6}3!XI}zX%QWE}K-Xcd z*7q3Ycx0ZjmS@ixN4CxKp{&($WVgc@fKteroJomN0F1#}?K%-L|Ni|cps#;wpO%6u zB8X6mgdmrf;yvq%Dk-rn#K^kdW~L&o%iJXJXpf&d~0xWSgfx)OrSvv`m9 zq|}b!9DUy&=X4luGsltLPMyPAMA$Y7ft0Y8zQ>qWxd_Hc1p=RZ{tv(xFKeo(w(m+2 zP-9S)Z6gFku-0%#Mp{)OsA3GxsR%hs&Xj_+s;Z^jI2-)uujF`%_vGCC&{FlDc_u~y z$=UL;4hON0iwhk`tR-hzSG;FgD21-Wxt8r6tp4>QYvj!vIUHo3B}PIZ#(GrtdwueR z-Og}I`uY_mvu)(8HK$swF-l635-CvwyF2k8Yo6J* zdbt4Bm7Fn#VKDz?x$4jl#D!YhvXBzMFz9}NAG69irb)X_YKMm5bhal#?u_<5F4q0N9x<|IHj?{U~+TBuQS!7x2B;N0A*x$dEy5GE)w{OM! zhcJKp24fImo;e)Oa$a8p?fZH;$@yGnGynRsZ7^#s4^_@glREc+I$KnKe5cdIG#MTt zW6tWziE4lOnt6T{6Xe}HxwUxCQ~et}k_o&AfXaP*KjP}^00000NkvXXu0mjfWCK&Y literal 0 HcmV?d00001 diff --git a/pic/map/BWP.png b/pic/map/BWP.png new file mode 100644 index 0000000000000000000000000000000000000000..96557e9dca5631aa63980dd52b4ca532967e9fce GIT binary patch literal 1079 zcmV-71jze|P) z000W>0fLJSS^xk8=}AOERCwA=mCdVFRT##9@A}yL?0xQ4;u48smR8i@ilL^NU^UTU z!~TGR<_#P+i-yst{+1x6P!tuKC81!5PMloyp0m&1>#Miam#{yxhk&T;rKT}KFx*N=0h>zK_j1|VlrA|+xZX8>bxu2?G~ zhHKY>a_?9DG-pad1QBwUVUSm^WU*kHD1{hVtr$n9$??X{re=(?SWrrBQl^RheT}In zC5Ax&5ku4P^^aOMXQqi^kmXVq3lxdO{Xclj@hhuk8_9+f(!#O z;v7wbF*>;j##lc1915o{^YAAB-Qn~#nufNm*wVJlX41B$X|Ps+5J*XKcD#6j_vD~u zjp$S&l!7r>TVf<7DTSPIuEa>rmN!qcS}{%>-R1e;{PTyr{Ruf^t;SbiVw7QEnn+2E zky6%tT8rP-_q{!Fp6%_@bvQ>#GEFQNtX7)Qdqgb9&e68?J+qFJ7kPY}XZPjE8OBjk z5|ES_1`TtL`Mh+USZi>O*^IWO@wD?=wcPuSoGKWl;#r4xuFU7m=Vfcl;2hRsL`S-M zeItxg6d3PmTLs)0tfgrzCoU>`Ig=APbNoC{?(qD9oVY;WD@nC4kSfm@ost^@rBHEC zXDjB0Gt9MmB zg@kM@uH-DMm8@1(iI&}~v@PDNvW(HN`dbP|PxJIXPj1V}&q#@Jln^9mv$4F&TLrn! zZ!ICR-ud$TPnvhRWN*(fO@yEmR+}@1zNhQ3mKe!}v)^iP)96qsS&n?HsMfHQa84H} zB?S!O=vkgW;L)FQ;vzX?j8hKk`c2aT=zwmsdJ-GU?fc@rQ4U@|AutSTwr$JS7V|mV z+kE*wQ2zS4^gVs=4sHv~nxVGUg1~I1PAluxuit~^-AlAB+uO`$>Q41isy^VoQdOUi zzTn{v9^T-cPaQiufXclhRPTZ+$!cFIX;QDkke4ql?_W_ELQs(FomaC=6U*gm!40P_ x^Y2Zb-gR2-z*8!*!=T%9aCxSrz7bRz{{xegH($i|t1$oo002ovPDHLkV1jw~4PyWR literal 0 HcmV?d00001 diff --git a/pic/map/BWP2.png b/pic/map/BWP2.png new file mode 100644 index 0000000000000000000000000000000000000000..16609d0c48717e35bc391473692daa66c8eb2588 GIT binary patch literal 718 zcmV;<0x|uGP) z000W>0fLJSS^xk7fJsC_RCwB*l)aMOL=c6)o*(H-*SlW(U3e!_Vv3A_fGQ{gj30t3 ziiCiGDkuWV594d^9cf0InI;(RuD!mnclVS61v>hsPj`<1fPD5jfOCu^-UC>RbK2fh zlH-wS!a1HlXBb#l$A@xGhk@M=V*qNU6iOjyY6UO`=hRveF<F~If6N>Pc02VR=MZ6CWuD0y=jb|&*(w*ov?Ok^e}1R?J;T5-(D#g^UR~+S zmt0=zIBMVH9JLao#AvuDBU@D>sA3G>s|ck?Db$K{s;af#IUAOrzm(%OAyCTZhb`3* zm?lyZkWw6<>TnR}xwz0_z&T2hWg!G&q*koO`z_mhSpDY}OXBTYIUHn~BqipVl-g0* z@AcU;c00o<>6_Qo!n#t5wme($&gp*N%=evJwc8JrQbZN+>3jMfYcU3E>ADllo56UE zuz4;nc=3X(E4ofnB1Y!f@jp@kwH9kzlSGv^ULSVl1orPAm}i-1Nl9{+oXMFM*!_wB zRMW(|w&em?7D~Yw`riDP<)%YFk|M3P7|9u+?{&X_h}q;lrmgH&h|ve)@au; z3_6Z_dD&*moW;!LZc%S?e!zJfvZN&K9$D8mQs*&ScWadxCB`<14?8#PAKyy5-$Iag z?<9oBFn|9BV-R7QI2_J$-mZamU0Y5{IhVPafBSm7!JKnER;4hG>ir|?+@kvHdmTr{ z(eMNrb5>VQRQt z000W>0fLJSS^xk7e@R3^RCwB*l+AM8L=c6)o*(H-H+G!73-81`P~Nd%K@}7WAP+$m zI~FXcf?`4CVR94Sk!GZsX%-{fiF3i%KBa{gI{KzhcaH#oeDNiKbBrV216Yf5+TK%= zPX?SpX3O++%BHS(s;;CJBKM$ay=0 z_jKL%c&~l`DRUUu?bLgmLxgpec_wF^qw6qct6T)rlDNbE`JL|f3EzN{%;#Kq;Fawp2r4 znn+1NN^yLy!$F+q;zEZ3=O{&%g%F65TCo=Iw`?C^^`D#-_!S4i!oSB*PUSA4#pdV z&2w?Vt5;lI(RGp%F*47N|B(WywOHGlB&xLW`nW46uz&x+Jj*;wN|LkWOwP2x9!~t{ znkLq@Ef>JDPzuJ-_vXJWw;lSC6lt}^NX`I#ulxOD%qH&{N3~X3hx-0>wkJZiM!Sw- z&~enu%Qjo)EM_kEi+Y>$BhI^!B_(P1$hx+XI*-}9TdTwo_uw zhG)o_v$}Gk+F!4kre`rhK74qx^KKrW$prod6FPK!Ml&5Q00000NkvXXu0mjfy7gEd literal 0 HcmV?d00001 diff --git a/pic/map/BWW.png b/pic/map/BWW.png new file mode 100644 index 0000000000000000000000000000000000000000..96557e9dca5631aa63980dd52b4ca532967e9fce GIT binary patch literal 1079 zcmV-71jze|P) z000W>0fLJSS^xk8=}AOERCwA=mCdVFRT##9@A}yL?0xQ4;u48smR8i@ilL^NU^UTU z!~TGR<_#P+i-yst{+1x6P!tuKC81!5PMloyp0m&1>#Miam#{yxhk&T;rKT}KFx*N=0h>zK_j1|VlrA|+xZX8>bxu2?G~ zhHKY>a_?9DG-pad1QBwUVUSm^WU*kHD1{hVtr$n9$??X{re=(?SWrrBQl^RheT}In zC5Ax&5ku4P^^aOMXQqi^kmXVq3lxdO{Xclj@hhuk8_9+f(!#O z;v7wbF*>;j##lc1915o{^YAAB-Qn~#nufNm*wVJlX41B$X|Ps+5J*XKcD#6j_vD~u zjp$S&l!7r>TVf<7DTSPIuEa>rmN!qcS}{%>-R1e;{PTyr{Ruf^t;SbiVw7QEnn+2E zky6%tT8rP-_q{!Fp6%_@bvQ>#GEFQNtX7)Qdqgb9&e68?J+qFJ7kPY}XZPjE8OBjk z5|ES_1`TtL`Mh+USZi>O*^IWO@wD?=wcPuSoGKWl;#r4xuFU7m=Vfcl;2hRsL`S-M zeItxg6d3PmTLs)0tfgrzCoU>`Ig=APbNoC{?(qD9oVY;WD@nC4kSfm@ost^@rBHEC zXDjB0Gt9MmB zg@kM@uH-DMm8@1(iI&}~v@PDNvW(HN`dbP|PxJIXPj1V}&q#@Jln^9mv$4F&TLrn! zZ!ICR-ud$TPnvhRWN*(fO@yEmR+}@1zNhQ3mKe!}v)^iP)96qsS&n?HsMfHQa84H} zB?S!O=vkgW;L)FQ;vzX?j8hKk`c2aT=zwmsdJ-GU?fc@rQ4U@|AutSTwr$JS7V|mV z+kE*wQ2zS4^gVs=4sHv~nxVGUg1~I1PAluxuit~^-AlAB+uO`$>Q41isy^VoQdOUi zzTn{v9^T-cPaQiufXclhRPTZ+$!cFIX;QDkke4ql?_W_ELQs(FomaC=6U*gm!40P_ x^Y2Zb-gR2-z*8!*!=T%9aCxSrz7bRz{{xegH($i|t1$oo002ovPDHLkV1jw~4PyWR literal 0 HcmV?d00001 diff --git a/pic/map/CB.png b/pic/map/CB.png new file mode 100644 index 0000000000000000000000000000000000000000..41281d6e86673f91ca25ced2e047b0e397f80673 GIT binary patch literal 89 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 literal 0 HcmV?d00001 diff --git a/pic/map/CECF.png b/pic/map/CECF.png new file mode 100644 index 0000000000000000000000000000000000000000..af4616196a721e09aa877300e7f613c0cb6a2dd3 GIT binary patch literal 2049 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 A)&Kwi literal 0 HcmV?d00001 diff --git a/pic/map/CECO.png b/pic/map/CECO.png new file mode 100644 index 0000000000000000000000000000000000000000..dab9cc0ce0224cbe08d02188b92704fc5f03c949 GIT binary patch literal 1934 zcmV;92XXj`P) z000W>0fLJSS^xkCKuJVFRCwC$Sx;yiR~rB6)vbb5Y)s?02Ul4JVb3g-g5HD>2=cMU zy>v|iJq+})-Wdn>682Pj>Y?OReCZ)GIrO4iLN=ETNz;p!Kn|;?OJPSfLNuxmtGJ7r zP$_l6qdk11PfxO}KTX#xr4KW_8NK;_^L^j%`+aZ5z=@B9T3K~ICmYz+EP$7ER7~OGf0l7;S6*9w^7N$~otXk}r;1C<>Z4ty z@a=W{VQUY-FA%SZ1G`hDr~>%lpNrp@@$L2hnV0hJ-m_@&IWXG<0HvVLH2}PuL+7?g zY)tLzL|)F`*`K|$58(OyGxuX5B>>#NfhSL+&Ta842bNqUuKxV`*R#zzDiSFnCGOwA z{hUCoTDth_T$?CZ4r>ERFj&KvXKZ03d_Cu~ZTxw0pLT_w(yt19<-aLj3ERApdk=x;Tk2 ziR18M*6dWVQ>85O*nbuQID1COH6bPb^w;>}=^SEmjYJhg;~BH2E2`M3a$e<{NPf5o zAow&Q0HV*|KL>!!1(e(|zKS6fz0u&1#;B{=Cr=}SSNEdXJNuanaa5JU_vQYFUK1q3 z$DxWL`Mb1?ohs#z{G%{ZkO`H10`Tr%Kx}e97H7|h`eP8@2#J`{@jACfjIo-1?Z>x! zx=I)KBPz z_QIT?q_UCYs-JfNG$2)k8 zL!jis4nTNpE|baB>vdk7$z%Y~m142@@Zm!Wtnd4jlyYzgpyc8o00B!sZZdtjJUqYh zudQ!r?l_KVn#E$VSS*^RS+Cbk(=<(!Fbai2p-`aHd_G?)l}e@3Ksp*l9=f zltlpF-2#C3ufdl9dUya5#L~m_D|FAPa+T6R@Muvk@roVb)$_e#)$u5WmSyQxPgMUYmpxUkzI6!z-ns-~ z9}4?WFQ*x`z9jGN(dw@Jke7!{2R(FsvYtxOqtHsv^ZM)n2u3t7DUa4QSs^8Bx7)`R zrDa*H0KV_D-y}v-NP0b9ouAdI| zo(7eQ9su&JPhhoV_j&32zP{9P99|j(0l9MZ>eW*J;COIgZQEue#OHFkJaBzR&lx9! zU`owV@y(b){m}Ob1R4NDpTF-5n zh(<@Uz`0~u7n}pWjaQR7w#6)qg{GTA{)rZoNYSy!UaepCWSvaV(Q%waA~AxosZ@&f zZ-8+@5RehV({t2=RO?H0gJoG^7*cLJosP~}9bV6ZWm$R{DAZvXDy4`xN4I*t7R}oQ z&+}M!Xkr*ftyZJR8-@X3ety2$Yyzm&YQ&T<3@yvb=kowAUcC6|(WB$GmSSMvAf+UB zNhu#ZcwiWYVHn9|lGYF&fM&DVXf%?^WICO$*Xsud2ZmvUVd(ol^Nu$+quwtmIGdZB z6wF4W!9S(bY0{d-#YJ6sX}6%S%w#ezUc8v}m6rE|K@iZcB8sAO=gtkilRGx|HSRD+ z6=&3kZptXTd*#X%y^wi7a8&&%@iZB+RUfjC)t7ElPJRKA&e2(za?~-fFd2fCikN@{35< zn^voJ`SN8twJd9Mb2FRGQfcb_XKZtw;u{{7KR*Exiu)aF)7TfT$-ZuNVQRG++11;g z=XrXY8(kQaLh4UF@Cr8|MpHq~jKHIf7RlTE{QS|l-Mo2|iA`LaB(}pL)%ud#=#lm~ zTiibBO(CDpPx4__jPTO)JjZc(Z+LW#VHng;Nauc?|Ljfv$#e1#&%ggO@wYSn3#jcw U?kDzR4*&oF07*qoM6N<$g2 z000W>0fLJSS^xkB0!c(cRCwC$S-(%?NE9A?kU3pc zR13LzuxrgZ@yJ(R9hbm!T^C`X@kSE0tspb-cZis*OY6jb`TVK#*WZ_ymslMP1|$gc zN~MAcRzM>-r1zClARL)_zAXur^M-MHda8*gn*j!M!jn=yJUmP^q#h*UX1P=}tX}YdU!AHr3n+HCnt?(F4k_5!s-J!;?F|lp{4{~_} z;JPk>QL@$YVh{wHmRe>oCguU+R#S!Md>_~!z6yfCaU3qN*=%ZA@CC7egb3gFaSr4n zri~y7gb+tZN4&swI-N94X-@POvZ)7VqjM+3Rjbv0zfUh$t5qQcR>Cms^?D%I_kD5# z1Ulx;W|LCj)Z*nhj%k`<7=~eJnr6S>H%-$tO<)8;5Cj1pZQG8bD2gI7D)}>Y5xjZ$ zmsn(<@p!D1;wFULBuPxu9F0cBVo?ZzN2q04R=?jzrX-6XP5=fu#9X*pHh8wD=>G1H7@UjuvZnvSURxHCXjN_O)E%ZZ{ z*5ZUi7VrZ~G`#$BYz+@448yQkERuB3^P(uy5;_sv>2#j2C*)Z=G4Yc-aO(IVJiO_7 zUcFw=+u;%E+VDINiF7m?O%q{R76OU5)tWTTQU-6F@HM?LxA4M);y9*sfuGdt^?JQ- zSr#v`x|W)B{y5{1g;3!HWD8%mT{4Ie{;K0RyedJJy}iBYi zBV%NH5vZ$K<>=^$MB}ybcr2y#eV)cPO;OC$oHj^ivWEX?rOVzEg1PxH8T zyA2`y@THfuNgm7LxfLwS(%MNWWgN#!DL78H)q5_{)H-{fM|lU6 zTCH|-a|7mUwVDv3TrLlXLm|Y?%?&&yj$_NRY}*z>tgo+MTwH*>Y-_1^1yq%!lm`a~ zSYKRRjN@2J2^fsKyF04eOG`_Dhg!$S$Jf`_)B4yK$Doakjr;riR;vXv@9ysSB?ZWb zbV|HHR0YXF7HY`n?s7R3xT{8TTK zBq7qM5uu6ac{5Hw^KV2b$ZXrDoEo49dVb{masW0!0s8~-qB)eWnEt-3WrNU_FHH|WM~3j|2f3Ny7` z?9hRk&di(X%=_9u?(Ln|_l8MMl9kR%ue zR27;ALfFSJpzAOU5k4O@4Y?c~4qU$uLQr0g%1WfuY{j)}0bpnd!64)C0VQ2Wp@3`G z0O0Pskz3d#2M+RisiP2!YcHL4aW(orb0{Q+vJ4m!Z%sJoC~N*vv8W1p$O0k$_nuhR2}n|LxkSRMSt0>dg(%LFgU+G+Sz$^*2sNGvSq35Sc$jhk zL=pMCbrnwU{+OZPBh9~W*7vU4x&&1fTc^JD5bYj zB7u(&)8XKjWgpZ(dF03u`tPUBOtShD<81QJ{tN(nddbq%UK^F2XI3)}DNF+>m*ugBBxTzuRtU;T-f&~gB(ilHF@aJw-+jwMS7*8LiV z0^Dx6-FC3Xli$+8+nvJzs+WfVj0^{!|5GJ^y}M6NM6&=YtG#qURJ?k2BiFnB#5mKH zT9GBZhCRg%{_)|#Ez8Ubb$6VhNYT+4#|zh{cJ93Q@#Y=?4VxDY^u{ZzJQHI%Vlop4 z1|UD!&XN>>WKy)?nUT0!=7HoL*|~E)Rmc!Acs!1oHA44zV_&n>v!|htNmK28;k}0d z$W8mG??eDRwNm~1y06lIqoXmd934bQV@fs*;L*mvhwkxCM6-qn0I^68B9`4(G_RaX z4;}|ZOhmJL8v2UBKiMk)z$bsUe&5JB~V*FB;0t5Kv{r_xktr_TzQ%_T(y1ww$X zk6)B2UdO?|DcSJIZ~(ygMcL;mYwN6gR_?aE8w9)h)Ja_GNnd8~5x+T1{%~+T0Gei( z-S3+i%MJ9#4;|gEjJojHa(_)YB=}SYf`Z78iv+o=( zu}&PfurKY*=xB`Suy0lX_di%=w?|1A%%$aYMz?S*Z%6Yx-XI554i=*2YXKE2d-w6v_+IlgHt8F zU`Y{zZ}QEqk7)Ra6wj=m`J`h>*8M$^HwL$u4J#3%0Iv^i*e?h-`$=189gP}(l$~{2za3=8qmZKc&U`z_e1j`- zC%H{Dt3EUR3sIJ3OTFdxk{}4U!xRkOQAq2}>kd&edB-7jUBHg6Vv+H7TlJA=kxB{H z(&lZ(13<8&i?QE3XfA^Oz<4{l5RC#rRh5W*9)$u51vKnIFj#-$@DB(~>k()$oh4*h zfMLMlfX_!3FJ|TImIFVCof)2`$)PAB@_9%S91g?nhS!T^k^=uf>Xwi=nPkOLT_^a;?4mJYO(cVW-9OLV;=pU5BO-H2#V>9H1XjG^VBiu88{2fcvX2D6X0 Q)c^nh07*qoM6N<$f>kr=s{jB1 literal 0 HcmV?d00001 diff --git a/pic/map/CEIF.png b/pic/map/CEIF.png new file mode 100644 index 0000000000000000000000000000000000000000..c15f48de034fde7a9c2620a7638e6818cc7302d0 GIT binary patch literal 2441 zcmV;433m30P)N=e$2dPM>}od+Bovg0TE-5WZC{!Y zezbj|72Q_q3Tf2}h(upfMJe6)rRi#eDlJMIQB_*;Kz~&60$SJvqpGx7ViQ>*(Jmw; zpgg1yW5;%W?D^}%xfxGpoP^LNN7m%#`1*e5JLjG|XXXG~E)4ISh0ll5QUK6(=sHvt zxg3_3psFwoG129M*9)%~k_1hIszOna&qLE-7?5T7eAu=PE*CTnih|{3EG%Go8Je~N z#po}G+YMQU+YQFx^NFu#XJHsvTrB)R(~!*~n}yGZbb6K9RaM{|9uHhDJa~XTdmzg& z45%tJ4UCD8VL;bm7#w9~&@?P9!R10C0me{Og`GQ*$%qvX8~}iO_u%&njX5CEb>#DS z`V;_aYq7W}^d%+WT<{}ERmI{W!-@04MT!E$5cD-o_(azMVAn3ON@XRINdV$%mCDK@ z<5UWMzqn>HP*tSU9E`#3h9to-kjX&PgsV$SMJ#vhScPX@nt-hut6q}87?MdC29iku zVHg~Xi|}|L%a9~+4qX>}B$K~Yu_ zTEQT>{iAw;^p8mZox@|e-qd<^8xSLX0baQz;J^PXLG-`@+`EU}yP@k)6ow<`;C71u zkT(Df^jI0JA_1H-3;_Ks48#I`mnE6&imIklW8G)1*sWJ5(B2JIMK%injg6R@!RxOx zeD{~g=i%|d<8gwSNS(uDrZO9D>}O#Bhi+bc{$v_JRc##&bVZGKyie0UYH#_?z>wf7 zNtOdIe7ca}13i)B4OT){BonVZI^NrSGI*&AKx<%sBtBa4=C?94k99>grTEq@lRRA1-d9)Hg z!Xq{&jLm|ko)2p38=gOzCcOEnNlE5`%8H20$(np(j;wk9WIA~1NCeEZV!F>&%Jg zgh412?C28C5A3(`jwdrBT0m3Jr$^gbBk@s+w79v|)&Uqi(n5z6v+b7xQYaMc=o;z! zxbqL6S@){-Y6ZS=DG{u6R9ZI(^Ro!?yq zK=6US%akyb3*vCFN}%sDLLvIlc&+Qk%GDA%-XJoNSehoBG7Ou$2BRYY-ahj)r~Xhl zSXePW>WuM?Talw}t>nA{OF*(3($AO~%Se3m#;r)a<3haS0tGS>AC1IER}Pm8*>Gbv z+!#%yqlq-(^`1FNN&wMB+Ff1K+uVfEDJ#S(NK-|>u~;4JUn$PWb~=6Nmkd@Spy2=={ZzzK;Qn{q@fqLlVou=!juflmLLbz5BS&pL_aW!lRixgW;XQuytm6 zbeztbruRN5x}}S=tgrB@>6A@hU*UDmEa#lg9h=2FgJH@`r|=>UG$0jX7b|)MTBSM= zn!9(`YRBBf12vPjIcYtXi_OK;e=@UVqfUep@z{!S!ag;VwjBL009iUbzE*&pzMB5} zt8X7{an3ZI-O%m#jqV77ZIICx(ZdglaS70+7A+On!V zI8A=$%&T@H&U@{lZoLWHJ!4V z@^E}?tpnM{mFnU6=SK<;b!LQ%3Vqwu^Qlc4=)2tb(eIs;X{Na*UBCE20|5T{XQz&x z?5CvG71b=G1AUhdg@b1CXjXom!(&uw#yj4(K19$D2csi4eeao*ox@|j%}s)&;L(%al*g*<$1;+4ObG+jy`ar(Rn%a@i_PjIGVU$vM~1aNrihuo%m=zb}*L<^x@o?p9dh`zEdOM_9vSlNS-vi4^vZM3@#Vk zZcqiI>zrCchORS7f~umd3=0baj9#_dUV*JI)V{H{Y=S{NdK{AbTrwLzTi8^2$4{2o1m&sSjSc5~`o0Dvr`qy&tiqy*cyV`@sg z`M0&!tf@9wN9IDejbtpT}Lj5-;-$zLaBnh*#*s%l8pCgfg^Zsf! znvzNQ{g|G{u3bo_M7xRlT)7<5X)G;4*TG({4l&Qjmy-Vh4j{BhrG0#J00000NkvXX Hu0mjfa0sJ| literal 0 HcmV?d00001 diff --git a/pic/map/CEIN.png b/pic/map/CEIN.png new file mode 100644 index 0000000000000000000000000000000000000000..3de698931e6574073e26de19d2de1326bcf350fd GIT binary patch literal 2371 zcmV-J3B2}+P)g7fQ#lw+O;#?nc>v-9 ziuzV6D^ZOUDL<-;A1t?WqdxSJT8-sOZXZ&RDg}wkYV&GAYr;w)fmp^a8yi{Jc(;{> z9AKICu77rB=cf zr{VZpdjP~o7VQ7pIr!P{0pQUi?ApaSsT8(tBRuFj!%u#PKmdZ^H0UXY=hVYfJ)H*z zJq1ee$9lP;_4SyTKz%(71I41mO{4(W@a$8R83Bx$?*Tl8x-Yf*MN!rDPqNyD?z`ol z7(hoKGz}9I01ymfVF9nc%J9Q(s49X%1cPoc3u$<&$704>^6l&*fPtGQ9;9RdwXrH1 zsJcGXm9&84BMaPC@**#I@efN0KHAUao{}BO!b?quI}Z%@UTy=>-g;~-nb=vk?Qwcp zwMrFW0hc^nT}_!PIq*Df0+5;x^QAByrYNeq?ia-ylh^#BNMF@8?o7`;rg87(Hqxdx zR@HlSfUj^(10VpfN^5*%AwIG|c!XrZI5c>FXn$SfP5^}W;QkVTJ>f%sQ6x?-quiLh z2H-(T?!DYLaPtI4`;i!cKra6L50;4*p4}|FV=0Oky6^V>a&q9E$=X;|E~C&2A`CJ& z7?u2@SQ{%9rtV9vPv0cAP+R_Vz}WMFLP(_QdwY+5PU~o9d=UVm@QdQi_+l_Bsk*)= zeCPoZ0Mc`hhq{vJ=!0P}H=Y}&?l6A(D~{COdd#t)7V>upm>k}5{M1-7L6IgV+1h*b zb1G8Iv0f}Bg8A&@$^K7!>}%Ejv;&V`ziQnDvqP ztvV;2_)(h_Vr>4W-uHAR@Rb9_zl*o>NU2^pL)m%o& zWfZ&Q@ZWBC|M|pcA5Q}K*I(~$3`thrn7pRxrk&r^To;T=PaYQRlFjkm&GFrK$<%bX zHdZw=zWC#J_j@jBZ!2p;4TY@c;Mas2+>$Y>;8S~oB-cfxsw$@+mD*u z{&0j~W5*V>+$Oy}mP|~3IqRvhqj+s#rNNk+>2_?aC9mqb!^#cc>XN6GU)-8^^EG&Q z)h~*I>0!;GA2i(lYRd@(b3Y#yd zCJaZ}OihO+#-8oQ`{QK}AD-$FJdam&rg1_taoY}`hi_Tn85*Z2_|~_bU8GH&V8^p> zWgS_SnhqOg(H-@M=EkpYOgWe}p@xG;8fk{%sh;-MW3-W=r{KnmwdCy^`%;y;HCM=L z4pnBSXV)vp4i3$K=gP^_|5k)OiN1Y*XupHmeW~@`KfdM`CP`~fdeYuXy7K7=PV^Upu7zy!^7ra;ddpmo{nT3zOsGq;&FnsZ@5~QFvQ&uwFU|f`BciXmm>< zohPp?qHK1{Aq_*one$tbp5)aNzeX-6xNiktDjooaGv_(`A0NG>go%$V;LLfX(*Uq{ zuLMPbszOx}{}9n=e5C(71m;&D@ob5;vLe7VA&RK1WUsu!FZVk7z7s!}u3YR*j$%=Q zqQK{aD4M|_Dk_l867c_Hu7}3iEWaEz42GlU5DGEBAA(>qhP5^Ob*=mQd9z@2!%mmy zs!CSDFre!U?Z0562>M8pxwHg;-@a2LATjV929hVO?n5dC#vqFD`$1QFh9OaF$TSQl z2+%ZCR$^s^gVAlf;|lEAMC}`U%ciXjv$F_=c;`e>Brs+Mg9rpnYLXZRSI6pg*!wJ& z`i~x!wL#qNn`o4G{O0EoiIlAL`z7jK0D#YjKmd#(5WucoNTsm6Y<~lIpt{>P7U$tZ zFox~hQBi@NJ2`V{35LON`nM<+q3fuqKsXGa4~ha=Mtwb>%WADz14nP`8Ev+uB?tlx z1B!w|ftq^~Z+I07yjcqHF5lD?Z`mv^qNWBm;YRf^dSHM002ovPDHLkV1nt>mS_L~ literal 0 HcmV?d00001 diff --git a/pic/map/CEIO.png b/pic/map/CEIO.png new file mode 100644 index 0000000000000000000000000000000000000000..f3e7bfa2ca3432d3d6c1d2ec391cd61b0be8562a GIT binary patch literal 2452 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 S(Ygcl6N9I#pUXO@geCxehjwQG literal 0 HcmV?d00001 diff --git a/pic/map/CELO.png b/pic/map/CELO.png new file mode 100644 index 0000000000000000000000000000000000000000..6d9c50437eb58a2b3f4344820f5937cea44aba59 GIT binary patch literal 276 zcmeAS@N?(olHy`uVBq!ia0vp^YC!D5!2~3ek}s?PQk(@Ik;M!QT(3cxv8kIk3MhEY z)5S5Q;?~<68wC#;@U$jQ6n4$h*v#x5aM6fk^9Fw917cIYXl7_UXzEZD*WPBit5jr^`@ae1QoF(Neub=)Vz-?bGU!HoHGx6=7CpVV!$E1F>x+*6dZ}B1SS48x> zyS*W=@2E_G0@g))cPh*gQCru3_|W2&XYSfYPrCoS-s9diu-)}~<`xNI+vE?f2?hFy N!PC{xWt~$(69C(sa9aQX literal 0 HcmV?d00001 diff --git a/pic/map/CELU.png b/pic/map/CELU.png new file mode 100644 index 0000000000000000000000000000000000000000..8f7bf28ebef92c8ebc541857a9c17d7eb990ec21 GIT binary patch literal 143 zcmeAS@N?(olHy`uVBq!ia0vp^YC!D5!2~3ek}s?PQk(@Ik;M!QT(3cxv8kIk3MlC4 z>EaktaqI1QM?nS!9+r(_vKoi1=M@w_ooG7Y=BkR?^L&%F>pNYPCVHp{VN&}iFx!fA WGj4CN<+%$qjKR~@&t;ucLK6T11SmcL literal 0 HcmV?d00001 diff --git a/pic/map/CEME.png b/pic/map/CEME.png new file mode 100644 index 0000000000000000000000000000000000000000..7148aba7c6fe259d198e8e51008b015cac5389be GIT binary patch literal 1565 zcmV+&2IBdNP)Tt>0QcJpJHHqnJ-+Wlt zJ*rMd+GXO5*za4UyA@a z7DC-TS;MeV!~HJe{D{qu))-A1`;{FuFe~@Z?-|A0Sezry;UpI4GNKs(-mCe>uu(G> z6LTy802fUI3mZ1&=@rt+P&WVzV=?iF%})cXsTH(-1Hc`Z12<;i~Jb5ly zXEbSqbP_Wt)Xfujb!vT%1*1tr9z?=trO$!;y5r5)34t`yL6?QhKYr)OeD3|5EGORY z84hy*fJj0*sZ;9#pt`;^=;Mhda?8r`5X|YelBLV1KHckRz`1RA=`2?2dq;-E&#&yj z+YdK?@2IZ``T(+!V*&AIeC?x(#2y$Y`9hEk!qL5shHHT?cgII4$%tmPCPH6n?0`2) z>JqWh(Hslsf^~HIfqt$BZ2zz_F z=;xbuG zKAyywBzeFabu?9Aq-aPLZAj}W9f@Vo#|OO8t36FudzvtiK_8Fl0038enlhp}BbrAB zg^@u4@my_RXGC)(TnqpsgMxOo-s!e}B6#L|U!pA-KVtPGZL0N@j!u)$+G+s+x7iJw zwPT5N(8srTHcrD=hfcC)%S1*rpS}Do>OZVmyYMU8Y?*kRcq$j-o}yi?PZaS0kSOBK zmWhBjDx{M_IypI%-vx_MP@iWXK>>2+#-T6}_dD6g~_ zDlGn|d!I+z z6tQD2oyyl`2gZ*#UndOEjXfCy!O>JEDKTXz^p|23BwK_^`{-iF&HT%YZk+*u?sO!Zb-)|F z5ZXf%t7e!C!1-Sqh_Lox$t8CfHSw(2-r4AJ^|p65&N?7qQ8U?@W1iD(ZQ16pt}i9c zV|!;KIdNjA`Q=Zw^jQU04|Ver`Qf%*7dvhurTNyGc5$vDIT6SY2y;E+bXzfNW|6u$BM6BdD1|DB! P00000NkvXXu0mjf(dOZ3 literal 0 HcmV?d00001 diff --git a/pic/map/CEMF.png b/pic/map/CEMF.png new file mode 100644 index 0000000000000000000000000000000000000000..bf6109f1566da745ff6919bd6f44d0fd941fbd11 GIT binary patch literal 1417 zcmV;41$O$0P)iWhHX8`(zwgCU)7TW~c`lXKLV zbUs)lk%`^f{a~saA9?Jb5};I^7_aWbo{27Jz?gc0a#6>Kln^=}NUmJOI9h zWdK@uvQfOP9n0ASfG{+P2Brug+N2FNCEDr_8F0A^xgDDOmsUudK8G_n9%R8HXJ2qN zPdp+S7)}H4{aXVrHvr=O@kElrV*X=%!5zDQW!F-eyF;n~!}gUIJ!vAN2AvkzL^j2U%FY^l44 zf}Of^lTDvvWF02U{_t$z_Iu=BHi=psTc6GYAiPm94XfX`unbwI56v5WHy559@oNs_ zBdlL_k#ziFZn{?E+(k)vW#)aeJf!%IpD``X#h6?@F*ZuhW34uML{rP8Pn2h zn=vgsr-kPzkTESy=>R|r&y^KVS@EdFl3FYgFFG?tLI7&9bg6$J8t_7%KJC6Fi)jy| zb#hS_wXc}z=3170MlYEf1^-+o+ACGU-QnqSd&HJdwpWtLYf`cbiP zseb^V3oB_?vum5NqhjHxSO8>WW#WskL!Zp279Ie|eDh^ODV|J>m#&U7-Us3reauCAYc zSTc^vmXL2IvW)_4_SNo_$8TQ_npYZ5GDq|bR=T=6okPQ1ES*EcPq*XT%89X2cc89E zOBrh!HWKb6;%0*!@@4bN-6xOF&^k9d$}Ni(!1L|z%|gx}=jqnViboRpSW-DP(pc!| zI73}p3iT??#R}l9;Japja3N^!*iuDr(c3XC{Vcv^sqq==(ynF&2xg(#v1P?mt>~PU zO>cE;D}OG(G|Tm>)qa~)L(QV10$0rKs&!Lo49+c-K9<*u*(CsSi64v}ih5OQuY#-j zR?~;h-pY$29|BQmlIzJN>+nb-a{@X3Fh>)5r{PA2AlQ2Q&GI)ogwr%mCaLvZ6a;GO zM3%?4vRqZ!)hxa1aNc$g4ga+D9Vc{kb-DvVdO{?T8TE}sXQm*_(SY~Sb+>5dl@$-y z?9$jt#P!kvr^>TzrqO}S*=qE|lG#4C)8P(lu0OV`SqLJ4>_;E6+ark#t)$0B1733J zqwDSyS2T6?#v}00000NkvXXu0mjf(j2Dw literal 0 HcmV?d00001 diff --git a/pic/map/CEMN.png b/pic/map/CEMN.png new file mode 100644 index 0000000000000000000000000000000000000000..65b5b1c02d0801ee89b5f6596cc1aca4679ff8a5 GIT binary patch literal 1376 zcmV-m1)utfP)%qcN9N2_ckhPB*B6rZsay`WJcp+B(uy1tsRBF zjuBRx!l2vB7Ffujf5V`XhitH+P?+GzLth1%*1+6qLp1Ac(uMltWrm-47n*LS70|1QTljd#kXufTr-m^P!TVpxNN&d%sWzIJ*v>yf zU?hBWd?G4DFw#*Wg857r35lm5Ax?fI=-Y%3Q-yxTW}CZ^AU z5tD|_Hp{_&k&<_|S=5^6xbt$~DYw`*+=X>n7o-Hons!tw#EY&DO7r)pyQ$dDi|kRo zkXHL&nySxUZBnkw$+?=PG+*ZaQ5!PV1-X%Ytx|y1T&<_lZ;!mG)|A)Uo;sopc-h%z z>9v_D4ts6pUsj${npeiJ4vbiFUsuLzh7E;}S2olRz2$yGt+}2`H!wO^YUP^63ILBE z{H7LCe4J)l=k0k8I4YJ{PL(X?Sf+ux)D#w>s4i9jaK78C=7S1BZDJ3KxjNa73X%9v z>zWo*&8vo&#|)zus)^<8`GO=-UeMKyEz?rP;`Ew4`ns8E9O`tMqqDlI#H8W4bfk{D#b$lDoS=lAZI*!%D?TBd z@VgyjI7oQ{GAkPg`$fu>_2hb`hFs}r#i{)xCmpI;Q}eNyG#u*y z0PcSND|vf3;YUq;tfxPSl$IS3u&4`?q$v4j9HY(&Wq4F3zi`5jlV->(kcSAoaXG$7 z$#35*!vg?D^W3UgtkjXO%A7#zP%g@l|LLOeWMb>_^3;p^aB>!2s=pO9zsEKqn~+V& iCS((`3E71F-`3yHQo*>4BTcRV0000mNYiD zbV=LX{PE$dr>E!MHrd4blEdY4@0WAW@B4lK&UXTE;KOjQx9)%;xr1j}hAcz=i@`tM zXDy=(`0yAx_Q-jOV9POotu#W*OJ9e7R9XPA5_4&_0;V=;n(_(Cp;vJog9Hr<&TmN-?}h?z??2W8ivLL0Q6%2K%%Gbf!iBL zerh-`v~uAgnORNb7Da9m06Na3f&m+A*p|@+VowH!&WEqwd!o8W{Od-lx<@3zGC$W4 zy0d1XEG)Eg0MOj*4iCv9w;27E^ZMdwQC^Fug>gEBk3A*;sO}M+E;j&xi&zD=Hhx5J z0l>9kt7Ue_qv5cO@eBX}@f}~%cm&Dm5I+C3=H2&`%6D(ju}a@*6=hi_c}cK^R!$A) zediN&`0xxZL^|>OX*BPcA~6}l+{x(n4y?oh0B#0{EwkVoNMNBTQXGN-o6{lSh0k~o z3|g5xGokQPA0uQ|zSmnvuAL-l8C_V3pJU7wi6{W@!i%T1^5$kYd7YY6wtc+Y)E=m(tdyH2&)K#f`jV@!T(ei9!I_ zOpiZh<7%am{x`+__Dj?Sze(85rpN}Ji?{x~3jm>u0aOcxhs^DBzild)reh^4YO1gt26#y185O?1`aLsKmSt2Niwlm4pReAyeypeO z0RUXMxLUj`K$ek+vUqdIAksx z6HHCr_BQjxCM{3c%{Q0sGBY{u$DBkzQ#;$uYD0{k zS-0w7^e6(!3v~eS?Kk6@^$l9CZp|c}DNn7qZD@p7te<##EwjKBucG0@>68KkFM32qxs1AJC}8+t2UDD-n$e4tLblu9#>grJ z=sIiIs}umhNAebK#(3>_*t5)P3~S(-8jIUY=t^OqBgV7N3hY&}y=oa<*fTFzj~AFy z0FY0~DW()~h9c*u`%@X(;L9;Tr+XTiom*$Z2kVmP5t;DWOJkBDQ&Ck3+Hgz9BO<5U zIs<^wXkf#qkm8=9;CUr&yGAS6aH8;CS^GG_s<(MBkO|LKhk1$S1L?Q|$2WQ$?o5gu?|s-DXE<*Y zk51>&yLqdM%y(xSA3vdAsZcDM?}G!vkZRRN2wWE_(VBw;qR32jK5y1?aH{7Mjz&63S_^1c9e0(gGO z$dEEQBnbk5W^;(Vc!br3YrJ`GQdcR8#rPQ_yB;V*;&m;5k`UD@dwVD)0rO}bnD@`Z zAE%?fePOhgN=PZV`-p#E4wx*j?>z+O=H`;f<-Z@DVqF2H>;dnA<1q6t=a-kC1+Ok# zYo{@Y&+=mO~WR zM{%#pXV0FU1?)t*Kdn|}$}h3`ywjDjukSrP@yRl*IPlx1N?T<%W2KFhGIgYoq>dzY zB^>d38nkTx=mQhyY@|G51>$k=n_Ir1ENjyx(GcDy>DxLNr6c+Y;Jy(c;T z_WY^$>C?tfnApz!W-4p>?eD3l&&`{u!Dd&=EH0;>vDK>0`a1B#yH~t>b>_SWPY6TV zTeUvZSp}*`o4whU@|ouC>`IvjPhuZH0xT}GxO{eZOPn>vcesAt#`g&Vf`Ge^C>GafaqaS4RGm3F9BlW2`)F)|`9T{6|6`K6)AH9Wdaj#f+J`v8`u^ZE9%`K7O1-QM3; zDwIl;N?4ZQ{$p}E;krnvg`m;sEZ3g4T-ql6_?PK;9zlTPU|A?d6ba^j7M4Z)v2DG- z518tEYy`Z0aSCgU|jEqpL8CYDSjz<}=#dbrd zv2o`PA3u`InUbvU+X$hvSuzTPqP`Dd$uvWnoVPtf^qrYzbBJHO18F` zoMdm0-QBKaHXFtxqsj9q7TMfnYKlt5*iEs|<@;2tG#V(C7^kVW{{U$%T*ol*ol*b* N002ovPDHLkV1j27kB9&O literal 0 HcmV?d00001 diff --git a/pic/map/CEWU.png b/pic/map/CEWU.png new file mode 100644 index 0000000000000000000000000000000000000000..d012b27ee9e03e157e6b7e01d6a4004cb55a228b GIT binary patch literal 3902 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 literal 0 HcmV?d00001 diff --git a/pic/map/CFCE.png b/pic/map/CFCE.png new file mode 100644 index 0000000000000000000000000000000000000000..391718a945b4ae8aaaf7b52a695bd3354aa913ba GIT binary patch literal 1906 zcmV-&2aWiNP) z000W>0fLJSS^xkCBuPX;RCwC$Sx;!&Rv7`Grw1=(<=pgm*bEaN>i)IRYp6e8jNVvv0sIB> zn%c3OA$b+RC*P;{p5W(;|Cp8eRX6(nWE)WS0KjXg-Ukgp%_HjMk(k}qsjO6P?kYET z0kju?ck+>yjsTSJsZS5k$^YHyLng+#`e~@_9j79((vg*p%JgoY=+njDT+KYX93{# z*C4X6($RZwMF5_?z~Y&hfhVIXBmEg?O_x-$8FE}j7HQ`sfMQuC07{?w<9Ib*`Vd={ zVZ6i_yFHf@>WcpKAcpt1q1@cfoQ=KeHPpQ)kS8JwBH?kU%5eM=AL`f)DSl)hxiNM! z;BVuHAJzD+ixHQp$fEu@_U#0Un3M53`7Xwaj;|$N-3$SA8c3wEcm{h@9Xhm)U@<7g>lbyoM^W5Z85)#p|!ZYV_gFR+p~p zGHT+pF!5PPx)SByAArkG*CLZQG{Clk-!TNa-!GL)16B^84%X!#AA_~HuFF?;08I#t2Ca`Cl}aVswq=FG+&h>)(VZpr-Jb|G zl}Z7SRg4>@QVGEN`a0Pc-C4p`sJd;UdjM9Wm%wwwCVFXD4G zrBbQfzki<`TPzmI=tsBP0K5WlyQ_26CDcC0zVi0cqqU!CZriqD7?nz;QmGh*QLonx z!!QhkFiNFTsZ^rdTrTH%p67WSR2sk9uw3B%Zj0@@w~u{r;x~S5HDFm5>8)0)hGDc? ztz%O0n#59DqMQ#w%|x#V>7z6b2e^zJp^o zK(a#Inu-I`_T;fKsU!%U5q8_Ucyn=yscg&h0B!1IKRkidDv= z5SpebS3RXVmUV1}rTCH(KX__V#5@EC5L`Fgg**Co+5#8Z94oggCX8@EzK@c!q z&?}Z@S(as*CjTOv!RL+9>Rn#4Mtju4_)EV5V6pFa=4^Slx1 zBTsDG=7r1H>}1n4lgXs(x+KqSnG%hzq=93}w61Ur_%)U$b*ziCj9%do@*@%^lA!gCNwrwX8i3u5-OeUHC1~SfdT~b1La*TSA<&6TpV47wS1QeT2rz2;q3@=B) zG)>tJm8#e4 z&!0cnG%W~%VzJ11SKcU$+*i&Gm+jix8aZ=kXNMo9QYqq^Q>RYJ#7nycSu&H!92^`> zdm_U7LDzL@SJ7^_v)Sy(H>qP22g#An<#NM}GwGn4BFg4oxpGA=WZE8#WPb`gO(tyB zN9oST408!e)@ zg@uJ-zumfZOa4Hc(zl}_%NvEyzw}wrI9=R6=}RG(%T04It4y%caU9#Wd2cu@qiGuT s6XLnQ=RbSXA9+rH@cjQj6aPEoPmVVtVgV&CPyhe`07*qoM6N<$f|S>-G5`Po literal 0 HcmV?d00001 diff --git a/pic/map/CFCF.png b/pic/map/CFCF.png new file mode 100644 index 0000000000000000000000000000000000000000..fa1a3120a84f96189cf2f5ee1556d996caf96889 GIT binary patch literal 2060 zcmV+n2=n)eP) z000W>0fLJSS^xkCzDYzuRCwC$Sx-zGR~rAAfLPLpEsg`1lJ9Fr&XEjuMCcn?4F@i4}iO&6_JeTU(_nQy+|{Jwwh^MmNnN8RL@b;yv);j{b+ z@_z-gZ^$`R$i5+G{OXw(L{$!ocW*v_s4QDT?L_o~M3vep&U`)a=x$cLbA0^TtruZg zUprndojvkqyL;n)Lu=^s4_^k+|Dbr)$}*SE!m32{t1H3BnP;DW*z@0F**E0;J0kUpKcteDk=M#l!%PpI1xR%n~f$*>`_e!B5L(F%uTH#lxjp(s#65N#MEFeomEsK zBKO99kORxPsa432T4K}^wV*0hYWERRL9yrbbt2jfsfnpUBI@e)5z$-yJ+Lr<@ddRM zrux0`5H-1U_N(++&Pa^M`De`U+2b@3HME9cWK`h3A*V{(C>8CAsNtfTOJ~`yUEMyP zXk{>Xlu;KK@}rih&Q+<95_gNh<5J!dYX5HKd%)kD&nxL-N3e;(c=FFb-@$i$xAJ|J zXi|3j@5r0&xpWr(13x0_IND_N#<9FNpZ~|?Lj+N)zhQA9kGUoUxIWH2t5PBq8E^dR znOr(+^u}94?RRD`a9st`Uq{cvVdcIUe3ghgf=vMK>h@iB+;bzh_JM@AA@|iE&jO<* z)c)vh*65A@=Hhfqs9jOFEGCbRqfH2z#Erk>4ukC#K|5M!+4{RJ!;Iy|0L70p2Y5mV z*LC-T+z~zyibkXSGGd4KFR<_G_H}jp78mke-M-&l`8k&7MsCS?2g^&xaiYh2t^P<>q2wQU<(_&Pox!W>J$V-Bm}Mb~v>u~-?) zvTP~O%P+4Pti^F0zOn(B6W_%5;ZZCWGfh)gXbDPMJ5bBRXJTgH*T4J|P@9{ZiAYwl z*NDYpL==fcz;9w^VB^8cd2>2y5ePf(b^zD!rZ{Se%Z>{?R_FKoGnotv`~7|*!kt7S zar^dd7#2Z5L<@-=5xFi2L9R=d*mmj;!!~twe0%*q_5{;3HBCz-5{X1Y)3i(`qiLF^ zX~2lZVzF2ZOT#dd$z(E_WTzr|zWDT%<8HCE1pUF@GH<=?;ng3Cy!l;r+;BJyy{S}6 z)3jo-sH!SpaCKc**Y!*$1J{Dz#LU3z55=DT_J`lBztB9REIhFGao5<*0yQMT%d6DNo$nM_s)A9-S$ zCV#k$%|_OBT~$@baUjndBmxarXkcG*Sy$Kx{2EI`9qZyK!z=7Uegt6@DO_1t-mkXH zI#l3lnr2;HU6qJcRh8>sS;RSx10}$deY6cZIkwe9=(_HC9(+?OmE?$(;bkxAx-Odm zruIC~bzKC`?pAMmi{_2nwr#FEm;?fWrKKfUJ`e~HQCnNv+S(csEiEk}QasPob=@!w zB07Eg^z7{HUah54*4_yr5M4run>TL;0)apv(Ad}r8Q>Ao+S=Ok@^WKiV{>zJCX-oT zUk?NVp65lQQI5OGF{@%}kU=c2}Hg2i@=}(;XQZkrNs1LB;A1$752ZRj<&; z%Ayx9UIcb3l|s4KG%XwsbLp4&0J+9iKL)DMI&;n-rGyZ?U#3ziHX1h~JOTW^$4=Ew zw~%CpVQ>%@3I%@3^FpD(1*nYl!62DUp->nc9K=%B_2J>+U@(Z(l=q)~H`fE4;UWF` z3lLDe-*Ii)_Xk%^M@?f#m qKhA&lYCrO<{owhhe z000W>0fLJSS^xkBJV``BRCwC$S-)!=R~-LJ2oCOs;3-Z)8ic@i&?)b-Iie;@Ou&oD z7ocPXw1d5HAmmgeZD{6JLe3;pzCe9-+!rJGi08wy?ufFzd)`xcCHn2y|J@(cv2*Y2Y^7M_k@{!& zQC7vS6pOEpk6#@h6VY2ud#h73L%DJ%(f+?;%~a;@Duob zb&(MtTr5;dWepObwpuOTEZ6{G><+;Gt){h;#3ce=5Crp`3OvtiwOX$0wv(iNc*w~` zCL@033H5p%NI?)NrJ^WeFG*>5OezS1z;#_n;pgJx$LQk~c<4hbSQrF>@B1m1sc1>Z z<+C_uDW2!?lNG?6co6%;PrmOvj+06(sTdu~K0kf?Gc#zlTJUlyVp8*cpNN{xCipcg z75(sV(=a&jWHKrY?MT>(qYC0mrBc7&=gFl~iHI=L>2$i?E))wVAfi1@lYtJRK%H2; z9LF(Dv(xExIvvwA`~ALYnx<(2!}opP_wib-R(ri(uh)Y)_!J>MZlzdc^$ukpy4VzE z+qMn4Q52b`IT#FdT?Y)FK@eD$)$jLVTJURDDjZ9Ux^#HhCNc_zPb|k~JG?rM!|tx@ zI+v%xV8G*0GOyAv!UhfA{Da6xIm0lX#c^jOPs#)au5b-dfqKI*lupYf7U}6hlI&?3 zo^Xy!TYiUS-z3AO;A_r&(4oYG2`$T#xsB5#i0)|`5xGR|B#}W?*xlZ^|Hx}6N&62X z64{voj&Z3v*>qjURxlF@i-_7pH2Ko<$$gYkaw9U#>-D-)YA_f~5@A^u0twj68_7s1 zC3SNdBkh^+qP}nvMe5vq6%ZB%h$2&(GV(90bnNQj25yy zD@0Cp9EYbOd4^&5^y$;yaASS2Vr|=IA@Jw@{r%KCJkIkx2mzk7(Iw>W z_6FSDvaB!+VVm>wbLp`XURuGjEU5;lIt;@g2;exQN4?7u{i&D`xvtB32c2@cd~|dK z&6mq%B3f8jI6XZjqNAfDcuE+CmSt6|RU%qmUVi=hHIz4cv>ZAWtT%SJDk-J5wze>? zX<8VDN-4mgot&I--M)GACg4Hq`Sa%o2M3eRu|p@kyLa!td-twZt3jD3Cnxf{3FSjN zCtje+nWa+c!-o%950%|+7c4!`!>Quq$B%dJ+!?zP6&pE7TDn@TPCq)2x$MPpj5W1d ztIgHnLZmL$g0&UCqH>*lpi^A6xpT<N(LwaE<*uCw7R;QQL!`rvzPsoXBK{$Aiw;Z?W!$z{r?#L7iX_C U#xqp3_y7O^07*qoM6N<$f?Yy0i2wiq literal 0 HcmV?d00001 diff --git a/pic/map/CFCO.png b/pic/map/CFCO.png new file mode 100644 index 0000000000000000000000000000000000000000..801b5280e3baecc89174abc9265cb8e8f34403a8 GIT binary patch literal 1928 zcmV;32Y2|1P) z000W>0fLJSS^xkCI!Q!9RCwC$SwUzUR~r8G>Q+Gt4yJLumnh31?3qF-=uHTLARjB} zr8N%hVelT-JCnd(LQf@!rH7KEDfAFc4h5rILYhm#X--xGIjlyPLPs@1G-?m4xQm)l zDRsf4J$&-hlPt+n)0$HH4#S(#oBwXQ>~b2wOFAm1aPfbOxU(Z~EIxVqQjX3{fwx`7>SFN0P7vUm zoA~RR58xMw*TlqbSIH`Xzx`+7`!c?{`I~u}Tl1eq3(tYsCIAEhg7XakZ)ecCD`G2C z`#O=Av-fsq@9hG3KKIPME~Es2`?v7qY1FwZer00mB6IcUlV8p@Pq9d(gp{~{3%k#v zr=L!z58_C?+2$!m@wFe{1R!rL>SOAU(cYU*mBf*h_HOR%sBRE+JEt>HsWc&~ID*oH zEX8&e^8!Hd!48RKyML<-Uvg1$Cqfltw0pLBinl+X{1U+PcjtL4bAtZqzLN<+5x$BcDSE4+DD9#yr=L8H2p?=kv-fsW7rU$m0lqKyS(G_J5gvsq zhQx1m5!+S9kN%NHl1xoKHr<{a=K3qwyR`P=0p%c z=7hYlD06~j>Uh)DrSJO+HTL>W?DZYmqEThq3l0XXM6s2~bzLbX@ubp-VR<_QG6(|C z^8mQ6tFGSGI{UmOD*K!tUkrkvP$&#|Ie58^3vsZ^?7udBhSR0;r}6pO`&4m(KwL=hl3p_7S^(Vd<+Y zU$gHxj%k|3VzF2(nx-BDmc^+B)4nLe-#kY5mm#}>R zIC%~K-q6yAcoWR-Xvl!?7!`*`(2uUK_FhS0Jsz3Q3jKV{M<%GI;00C08{!rmA5zFt%_Tbpif z&FAQY>Z6zYDjjs{`eZ$k;8Zx$^SnMg0Q}L5my}YUh+gJYvUa;YswgeXVj&S*`AspB zQtI6FibNhX&-2uX@#+kK85D-0k_*0K+qP}nmSw3Yx~Z9=*7e(=-m|e(bOPvE-@Zf( zcAuB|d|n^wIF1@h@eIT8+O=z?{-*d)#M-v4j4+?eQY9^BbP%4#%q>tWl97j!D$5td;mX$~(eBbAIwJbByc%=muOC{?< z#X!BLM$??KrLwFmGzTG6KXEWcidQvQU$1(yP7}O3juVT;#$;?Fkx=?Kka526(+KhO z81*2xHeJ48SymW^j7_K0(KA+u*P~!rmQDky4#O}A0w&JktzK`5RtvZ1c}jQKF$|+t ztC4xbFaXTW%{7}%0JU0;nG%MfWm(y57Qm%TmmWQOG-_)p2DW!nN@kao^1*`#hG7_n z5s$|?hIjy)&1R#~h{xl}WU^kb@9pgwh7pEgKA%^4x3%dG-B->WF5C6>b&}a=G}KSY zWRhC5u&|&DFLw+2$W$uz;>C+ePejyy(D!}rDxxSlfByW?H@RX{gY-yev)RLnGwz_9 z5moM9y?RwIWNr_Jsy_qI&X}$GkbSH^^vabh#I95-lzY=OZQEATude~R#*RM*8nSg( zHN%pUQmXZ`QmH7?)J8;g2!G_U)40Uyv@zc9p>%!?c4eX+JxK=huqq9uYVjUL!)e|<&$3u z*=%-_gIO`gOV9Hh$5DI3!($A?;Ce!x`*r@=oBYUg@`L9;|4jVjwEqJ>J~-P^_fe++ O0000 literal 0 HcmV?d00001 diff --git a/pic/map/CFCU.png b/pic/map/CFCU.png new file mode 100644 index 0000000000000000000000000000000000000000..00e691432d1342905195cf2b5da2d781f94992ca GIT binary patch literal 1592 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 KMNUMnLSTZz#pb^N literal 0 HcmV?d00001 diff --git a/pic/map/CFIF.png b/pic/map/CFIF.png new file mode 100644 index 0000000000000000000000000000000000000000..f1d37082acf3daa3900d8fa128d757dce747800c GIT binary patch literal 2408 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 oMJk2WRTu`?v+YBy8u?7)|0Hq)$ literal 0 HcmV?d00001 diff --git a/pic/map/CFIO.png b/pic/map/CFIO.png new file mode 100644 index 0000000000000000000000000000000000000000..c5aad4bd91ae7fb27bc58a359fd89f3df6e14031 GIT binary patch literal 2474 zcmV;b303xqP)r4`Cu5xX=q^={ICD?t4sYugcSxkJxU^+2P09e1C%~D&7WD)>-^R2eF zLO+#4Ai&<~G;|#c3knE<%LPe-Wg(r0VK7yDz08)uU>P1iH3jA=JYAAN2$D%y7LrK@ zVOa{YS$I59RY(#P1*XY-B$2en}nz?}7$J^K^o znmB?;A9NifBLLv>;Mz4bHWF<81&T#@Jn(p&U^dcByw@hmO6Y;$+W`6xGSz+SXEpzM zXWqA6Dr)HNnYMwu_Z?@lQZ2H8_wApT7I^e98@JSWBpc7r;|-xRv4LRboN3c39+g<# zEZM*%4cFDtm8uAM6=eco=y4YK^f zKP1Wa7m7!v;XAxmPoJ#s+*UI_k8&E{_v-7UI2iumn8s* z{lOMdz~kkkjaqTf{>08*SGu~VseIb7scx2rk3|J5_@wJT={kUI&t?YtgG)OJXKGuY z0t~+%{`{*owL5*uk21A8eYUe)ooE?6KVQvhSluiE=;-JgJ{I*!*T?=Vb@xmo(g)Kd zPCO?}TUh;F#0{W!r?0KOOAw`y`@E@Tg7#0Jtgjvig`}=T{TV=0%LENlMDQ0IsV%Jj z@kre-U!05meK+r`{F?`kMx*w+w6Q60&l`!-nu+u&f>;!3-5`ap7sjTD^80V zdR!}fsk%3~s;huSn_krL!MpzuMnJY?b+BEx4#Y*(>b256~3ICGo1pR8_KE^p^CG&h1FF->e@8`=~mIe>*kv3>csIE$Kp>u z@raX;-tblcqhs1@zYeTc%HHr+Ua{1c?cq>%qledFdpLCVpI4ldT(7%Iy>C?>OU-s> zY{*GGJ9w4%DJswt+Z%+DiAL|mv3TGzS*oXOjgw$A5devwdpoE^MM_v+Ou)-+N8_(ei_caP+R z_%M1gHh98tTD^K4LhxGAeWVJZfGEC*PhhU7-O?4P`_L223SnJVLWSJt71*=%9gSN) zKv`sWspx!;44w!9Ussgr^=Lu3Hc7YgtLkxwVu>QeSh~Fop0Jk5e|)peMbB3Bc-6h{ z_$}9Es@W1k0bpjL86gx%WQCN=7o$a9;RB}*C>5_);}dDYeW(?D5g($N!(| z@V(bIItSB{_MByS_U$J&5FF?a+Jk7Hr|>Y&lPVo1&}ZVkZDG~MqgbTky|v!;Y6<|F znh1J+i((PQBGPG^$-9fdH0y#?3XeX@AnWQRSQca%J|AglV9C8m-(Ar&!xM@ennv*b zSD>owp=Aax>wIV8mN@2f?lkO}Cc)z`psI?vT#zJ-5ae=vy4IO~UM(2Su+!vuu?SU# zEWnkHk%u66Kr7MuM< zqO1(!EZ+nItm1e1GW`CMlrEP-YZm~Zs&KnO2;6Se*JE-Li;MgYPyy9hzOgAYGav*t zHSl`z;Dd}fKM&I+=>82f4Tb@)7uD5JRTK(HCehr?=CVs`c1NgfEmLNjpNAyDG*KuZ zpQpt=g%!N=c~&e1Se0*dl$C65-b65nxjD?v!nwcNg{EW@fdHnauzo#KDOPTxb*@4I o3k%5QV48N}^fsFvBk!pFAK^&MLX1ON>Hq)$07*qoM6N<$f=S7*zyJUM literal 0 HcmV?d00001 diff --git a/pic/map/CFLE.png b/pic/map/CFLE.png new file mode 100644 index 0000000000000000000000000000000000000000..6267bdbfd4d6b2ec381e69656846e3212d236bc6 GIT binary patch literal 276 zcmeAS@N?(olHy`uVBq!ia0vp^YC!D5!2~3ek}s?PQk(@Ik;M!QT(3cxv8kIk3MhEY z)5S5Q;?~>i2YC+}@HhktSMs-gn5rq!q`i3q6LUdYL!7mX`NIIsmJnCZ0_D&e`P#}& zlg+kye7CT9KmArt-<0=CBf`pv~f-?nvU{`gVKazAZaoyx|$nLA%fRy?irR8WKf zYu}2(koY{V?AKnEb(Wj=i?`&=ij~gG{v0#ke#ge=uRW5%>dJ-mKiu+K=CoK<9Oxqk MPgg&ebxsLQ04#}U82|tP literal 0 HcmV?d00001 diff --git a/pic/map/CFLF.png b/pic/map/CFLF.png new file mode 100644 index 0000000000000000000000000000000000000000..5564dae484a89f6576776675b75c6dbc98729aac GIT binary patch literal 272 zcmeAS@N?(olHy`uVBq!ia0vp^YC!D5!2~3ek}s?PQk(@Ik;M!QT(3cxv8kIk3MhEU z)5S5Q;?~>i8+i{I2(&(QFX8>XBemfQ&%}cg4OYxc&e~*ZPUv}h;)GeBnbX8E7r zILCTr_1tH-ugsMBwY&ucYJwj>dN+Hu+FFsxCYGL6tFC{p5|Kgw$`?-y&ysPf~zytH=RdHFjL`==Fbm;eIy@%-#ZJ&)dywR#2g4TGnv KpUXO@geCw|L~+aj literal 0 HcmV?d00001 diff --git a/pic/map/CFLN.png b/pic/map/CFLN.png new file mode 100644 index 0000000000000000000000000000000000000000..028b020b4dd67ea1a1a7f41c18927a7123152b1c GIT binary patch literal 286 zcmeAS@N?(olHy`uVBq!ia0vp^YC!D5!2~3ek}s?PQk(@Ik;M!QT(3cxv8kIk3MhEN z)5S5Q;?~>i8+i{I2(&&_mSNq}F>l%}-CzTkX$#T>*%qWRL}e{ouxu&A%-}^X+cxT| z{0oo!d@@~or|`;oCx6}uQ=9#3c?$^0ocvd0Yy0lxl4D6qkM2ad#J$Sfr{fxRMvd`W zijL$p{f&Gwi?YOYUhSC0&E0OQFUGX`yHV0(@jD`4_hi}2UcT+sRb@B(=A*ke4qv@@t#<_7xk;j2CX400R5x Zs%Kq}kY3MzwGQYv22WQ%mvv4FO#r$Rb`k&p literal 0 HcmV?d00001 diff --git a/pic/map/CFLO.png b/pic/map/CFLO.png new file mode 100644 index 0000000000000000000000000000000000000000..b0b67deac3b3ea85dcf7c4ac2a95b96e48470c17 GIT binary patch literal 294 zcmeAS@N?(olHy`uVBq!ia0vp^YC!D5!2~3ek}s?PQk(@Ik;M!QT(3cxv8kIk3MhEP z)5S5Q;?~>i8~K_H1lS(L7j;W>s_f}moPVMG!9tn4H)UmNC570`#o5?}a=0?8TeBY3 zKh}+ZcWX1du=Sq`|yyI0pC#iT&su6zrc1n2ftSJFJ4*6UR%~knl!7wWPu-#7{NBsBSO ze8mSAhw>E{4{2VvYu@_lkEaL70uU1Rt@svaa92d>^W~X;w<=g%{(Q+mcGmN+Kbxhk j*Qw^{fK~nZS;2I}Ch2?bgEv!veq``;^>bP0l+XkK@1A_w literal 0 HcmV?d00001 diff --git a/pic/map/CFLU.png b/pic/map/CFLU.png new file mode 100644 index 0000000000000000000000000000000000000000..c36d74c563305c2acb006250382c16dfa5e08280 GIT binary patch literal 143 zcmeAS@N?(olHy`uVBq!ia0vp^YC!D5!2~3ek}s?PQk(@Ik;M!QT(3cxv8kIk3MlC4 z>EaktaqI1QM?nS!9+r(_8#$a=KNS={ooG7Y=BkR?^L&%F>pNYPCVHp{VN&}iFx#$j WXL6~qp8pDH7=x#)pUXO@geCwN2Ps4V literal 0 HcmV?d00001 diff --git a/pic/map/CFME.png b/pic/map/CFME.png new file mode 100644 index 0000000000000000000000000000000000000000..c3eeb1e30264079864f1ad7fdf357f0205713754 GIT binary patch literal 24213 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 kr^^59a6IG}Y^y-IIFg_JpD2b_JheK>Y;U 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 literal 0 HcmV?d00001 diff --git a/pic/map/CFWU.png b/pic/map/CFWU.png new file mode 100644 index 0000000000000000000000000000000000000000..9c1847e20a50a7bfd783f1a81f3f0673fbcfb242 GIT binary patch literal 3692 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 KMNUMnLSTZlxd#yd literal 0 HcmV?d00001 diff --git a/pic/map/CNCB.png b/pic/map/CNCB.png new file mode 100644 index 0000000000000000000000000000000000000000..e1a4e68d7738dab332cb04ea677355c3aa0f27a5 GIT binary patch literal 1931 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 B4le)z literal 0 HcmV?d00001 diff --git a/pic/map/CNCN.png b/pic/map/CNCN.png new file mode 100644 index 0000000000000000000000000000000000000000..1240c44e0dde5ba1a1daa019b9f9bdab376501fd GIT binary patch literal 1670 zcmV;126_33P) z000W>0fLJSS^xkBI7vi7RCwC$Sx;yaSs4F11O_q(w#~t2DTSp1Pe9L)k_h2 z^ETimWb~-)UhGL&r66psX3lf-77$rDz5VUnxo3NOUrE%+uTtiB<>26JP>uX5eYUrU`I6R2lKi)jQ0ZE!#4AmrFD7~d zTfP_$Ukrz9rP2q}{9u}2tX?B0Ma(79FE;9YNSF=$F!@SUV=l#3wJKKtyjChPZKIkm4ky>oaPceuk}0AB%(hHGrKAyg$EZ+k&{T- zq=C1jb%utG6yAnuG7O}1AWCfMwCAep5LWZ&EI2pGmF06L0-hFp0<~BCV}L zA&cea%Ccoyo$-040wq^@nzd31{LX8=B#1(YWm)rW$*B0twjBNie&3HX;hZ%a9R-*30up67M6?!14`$)zK-$B(?B*=zzS z3`3<<9LMY>DGg6a1z{L^o(C!Xxpdqfjw(V}W z+wFF3+a3%Cwr$(C4U8ZNf*`VMwLQX&aXrd$Er4FWjj2&uFLKYJd~%=XvFJKGQU+EhYbdZ zKOE+{>rIb8~4D)8QsgxRxMzcgXj)On~HuFX@Qc6kP90iFQ56|;> zM|O6G>k?5EMVv11O08C_)oPC8@QM^wm?~X9PGygQP>~7%Gr4E7kQuBHxz%-D-iqWI zMbYisxBJHj>w^_rtJPQt{Q1qBH>vf4v>6*irgFw^Hk&D{v|23|jctdAhf1k-yUkj? zaNz+-=RHY?e2oMN%)`#$z_S%#zG6B4i<$1$gMgKfaC@otD?S?pza zg-yu+!e%5Xd}1-x2N_sm5%_dncVS^6!()rZBIm!9$N9bwA;6P1I)dC>S%$kijuS-@ zY;$;cC_PrfODi~zBh>&^M^O}pAslD2)jKND+^Tz?$9V^nN~N;1vjfdnDitDHTwL7W z-zTD-ogH{e6h)5X)a!L3T3uaz`SK-{H`!Vq>k96_ddpQwDYdn=g>}<3qbO2J0S04t zcbDt-*|TQ>4_c2NJ=)&hp4G=5>+mjLzWnjy$3~+8W$y0o%B}*+hjdQ7K$SboN_4fGjV|hW7*UA$^ZmukM3*WJzS$5*`iJQXu`g)#U&}Opi^?JQt z@9ER0T&^ckE0qcqKt${7>p2yhPI%d09%hXEzYrGwEkWOYW=q-f^nV!s8 z000W>0fLJSS^xkCMoC0LRCwC$SwUzU*%|)y*1HN)a4;Lky+kR4uxAQOL2p7F2=c|S zhP`Z!13e7%P*>x?UP4dnJ(L{QIr`E=W^(97x1?zz;T+R531I@E|%_Vi(c?-q2AohKv84#ob+bbN2a*H*$1h47{x}R%U~b zcY^?5-onqOx6J)2oPMX0eC-y z);$qh9^2QEyqvthH+g>#z^kd3xle?Y0PyfOp1+7%_r#A(EL~)-{&4#9$@&=N7O=$5SP7ETx^BySu6z1nth*3{)zO zh$@bu^e{`YRmQXc5PZB#V%Z+vZo?OHDC9;$6+^UpvVMlQKb-y?z^f0Zc`KI${nLT@ za1>z@gYeo}vsK1cnNd`2?_~tw!Z{(Agp~NzN9~7aGhlKJM-_efY-i1(sA8+E;wqO! z{5LZI{7)kSFn#{=M*v7&Mj>~MucA+i-mWQ1+o%ia=Px3{2M?mj`+KR&ZB~N--xRwn z$|XS&9)v3T#BXI5TV=+N{*gwKOjP;=;Qil$*_8W4TsSAH&p^B(5;39UweE>F#zOj? z@80X^Dj)7em=>%Gx_CCzcFX@XN?nfB zoNF)I(`N*Os*DU0-ma~)&VCypTNhyOM7zEj6mxDad>r8eb-K7Rw zWilz3L=ZqO33+o?E(wyUUsq zFK_!m20`GuE`VGvr>^dURrYyHRQ5SPz8C~SKA-RLvIn)dF87~7S@C^eT@?ZB5R8rU z<4^f~-fFrXVukkH!>8Nenv|B2bOw(*On~6k%FuVpqU|CkRT5YG8>yp*4 z@$LB)e03L|gzW>s>FfBzrj|a$YesVbesOD#=~nx!?Q5x2YHLj*!A_&mXf~VbIZ0+? z6ajp77XUuI2~PsR?>9A#1F-)L2bbpf&Z%OVVPN~^Z}Ije&{w7gT_L?;80tyONuMf~ zzt5yqfHJwa05Fw0v5a2^StT9^WnypHKHk36DOMeiA+#(@uX?8X_nGvmV)^_E0GwZe zun&ZNpcmD|#^U_?;~kDZtUh{qpwdC7u1nSv2~LG0UDxfh1Hd1=cu6VsiRficC2KaD zgNo9!EEW>6mERO2DW%R$r%2>sb6r=B7_QC$m_cC}D!Je*wr$(CZCRFjqMMrNYhAzX z>pdGwMJIrsb?r;EV0U@xd7eJhaU3<2;u(hF_3PIQ-A(bKh_!878DTybi^ZPj6MD>4 zFmx$b*tuM;Cn}qpo60nYwOTDHrRRBy)l4P>pin6ENguuAIF6dQj;%}_b$@@~FpMw^J1~yxcA5BU7o=>({SGJrPm+LErbetB9iL;>C-7-{gu- z4bmf>&1R1(&ai`SMpU_b?b;&ZA5PSLvAe2 z|GEAzWoVEswS4kRA)C#Paxg1~ccyx?m7+g=Nb3e{Md!rwDj(+g`)1Qg| aKkeT?`acdHo6$}H0000 z000W>0fLJSS^xkB6-h)vRCwC$Sv`!?NEn^u zDlQ`%N+@^hJyGp8oP<+*E85l3Y=eVD3J(+%cC|&CC;}-}LPxH6+~Z@MAMbLku3!qw zo{YaY-}`>Y*{IcO>S{;jU}yV^Asuz)<0s_*0&@RsaQNo^l|t5Pwdr(vb&!W|-X9$u zrD^(|iaO;fold7(Yhz5O)A=6M3uu|9DetG#>HgW^2SQ5eyP@T0ZzIyeFlxnSURZ1CSwAPn!rBb#u#(+{7 zQqrrGx+to%)`~PCz@jLUsMwI}y5&)wGG0nsf>;R#dbQT&?Yc@!sz}i?RIJ585R_!t zSwSfLZ*TPPsMqUzdwcbI9ommZBPco=jc~=gw{G3~>+iGnjjdJ0 z9=>_cS}4tfU1P>#Sk7EHE`b*W0m8uIjS{V`AT!7{B&O)nHnHs+TZ8drF!&OSqtS?h za9^+2af2Dq2oAa47z4tQnb+HrsFF8~)6-K+G;IbL+!If0{qf_+g@&}<2dK}UJv%); zg)DfA)RHg=f2hkkN)Nww?b!>qSu%hM_bGEGKh~QmWNz$r%}=d7jftEQXzh zbpyc;xv~KWf&h=$4eqVH7{{??7b`P33-bV^KrN}9RGO36AAXAC*!O)Yu+!;SS+KH@ z?l26aD8e}qA_yk;!O1v|l~TvY$5@O4cX)Ebrf{(>nR;M0o;x9~(P#{ZLoRMK8cHe5 zBuUcm_dzV2fXS9*bUGcTz@^2@_kGuOlO#!!#C6@_aOk?O>$<>*<2a6EJht2IG)>bq zrBUJ7vWt+-!^WR~{Lbt%pU;gkk~GN8^W1ga*=$y=R+UnCgj$~G4TnQyO6Z5G$KZw> zGIy}E?Z|8=lK?pJeV^_QJTNw!%{UK|G3N8Rtf?>)fSHdrYPH(Y(Gl^2AfPemFVNL0 zmPwLiStgwp`XNhOE+Zi;c!4d9EWZ-l!h;EuB&k-blpcm*nx+{0*ZyN*e*FFL@xDxpG#rpEXy80ew=wef!p$uSlEG7{y)$>RMJgK0c;sESt~gTI(o^$m;Fex2@xFrFaB@mfX0+Cdr=X zRjXCDxXj&fG+ZG8^Ld`LYC5z5U*qaxA0=CLnozc~#uy|iTrp|&K@O%U0$1PnH#Rm_ zcx<&=W&X1~uGi~9h&=q-?sKrS4R`lEFUvC62HBDxE8(RTJkPV*Nv(C3WyTmdPO;Vd zQb}a%jQT7SP_x-QKR*Za&1O?6wYj-DnM{;Y=jZ3}lq}0U&uh2aN~ybd@4kNh8srsQ z%de0?WmVEzKYjWX^VhFm&$3Kw4H%5^c+9%JwY3F!sP+8$^LOvwE$d^yX+-YbyZ7P4 zhi154}qQMInurBx~*1=sbAIr zhRSNZ#qAbjh6fDR%RJ9X8XFPbgkiYi^s}aql}Gk=yUpY$KgRN&hR|9+dGe%ei7pO# z_J8o;0UkZi>vp?0Z{9>`%KB6OR9h+YX{*_6atClI);s2=Vpo2d?>>Yz0%_46vUc8V;B6+O5Fyz6`c2fD3f|l8d z^6D^6LK>{s(Tkt8Nnf{LKIW002ovPDHLkV1fo!HF^L5 literal 0 HcmV?d00001 diff --git a/pic/map/CNIE.png b/pic/map/CNIE.png new file mode 100644 index 0000000000000000000000000000000000000000..e2ff3f092a288985f58755404584334a4bda6b4a GIT binary patch literal 2602 zcmV+_3f1+AP)W8fZ#Mw2@6Is7(S0P$((2 z(_}Oz1}C!AOr;kC@Mlc&PH6Z0ssaE;PWw#-k_wa$YgNi z1^_Htgk+NO9S-n3laE5mGLlJxt!+$2k_1g-;wuW%iK+rXX(=0J?p#Ep0NB$=bLZx0 zPfWn)W6yXTvW!@a2O+TA!Ew+u#N$vDrfRpF+0yTyfoB|=0vkC-KF5I&M5E9&M57Es z(|9D4a5^Cf;5hI+RF(NiGzvk;4i}A@C5uKO%i#GL^Pqhwe}TrMUY z0G>xWZ5~CZPhMw@+9sSngxV%_A4F}_j6OUMS!NA7PAJ4orfCH0_ac)4fQ1VoNx7F& zG>YznwAos_3cy=uF4CWG)GVWoecfkS=NEqu0OR8*EM%Nu5P5kN4~jytX+IneaGY77 zX$&Kh4%Xg$uA!x}P|O?mBuv;@_-B5_1T8DWzyQk1psJ80o{2~eV8GKcj7XH;eKk?C zI94d;IiHx@_(+GwgUA?;#Xr9Mf^mNPx(}hY39^iV0RV71F*=F`3kX*K0+|e)PB@)b zu;2XqOWOFTWe`BgVn2YPLGS+G6#>|_L7y!{_UCx%YLSWwKH&vVd2$ zGrPdM54P5>G78k*e2yZ8hQm5upggv1+v6{+>i|%-ab90%q^Q_6Hj*L+HR-?r#HSir zkOD9%(`X3vYcTMjk(>}JZ`|MxZuIdV;sI;+mdx6gU<&XcHbp#o7?)$g) zUKDL0sM67-`CZb_H{<6r72Na-#oTPtl15K0PuJ`y1(d16z0>O6D@5&qZ}z25Zpt? zrxCcPBdD)Sik&Cq1JHQ9*H@QaGqp|G;M>qr=@<9-vFG`9n=78Kq0U+HbgPuij!S*V z_|$3jhQR6#2>_peb_xK6Z(QC*SB^0@5s$}Xv~Wl73FAQZYc_ZEo}kaV>SwyXI8C29 zI{?t%hCS~X$Dxo^N@9%E@4lKasf#+{lh4*z`71YNjoQ~4(QT|dc~3`hU41FFR2CB8 zj1$@QcAjp_zRpNbNAP%W{qf#Z&~NM9#g2FH8rrDQ-#21YN7qnAaB*Sz=7QZg_! z=mju(S@gK_8(Jz~6WdLD17{VV8cCn^xF@me?L4EK?AyB*01dN`F7=F!r20A|2aaq} z@!?CYe4sogB?E^){u}N8UG*a-59h3#W1u{CYb0%D(wO3L<&W4R07h()KzXdEBPgcg zVk$m$CA;xm_|KWf9Y6WB=L7(w;cp8`HPe4G!fA?;Sz3{wC*-G+6BLi~mz4XLl>3c6 zL&M>s68E*ia9#B?IrsbAQWg|D5>nj6FDQ0cJG(tL8h14X&LEGD>i^#*59HGs6tCR!-w-L;e^vg#^$ zA^yYag;rP4m1MQ(Y$1mRy#>XN(u#bO4ofTYFMV;{)OlTf>9Q&|k6C$aPNKHF*mvFf zs{F|!YtP_?`0a+e?IOu(%bfhLF8t5RH0k3WZK-i)TZV?i)|I2rSS7Z*SeI62XgEw% zSQjgRrB4-G^^wyAcam}{p_(|R-O;#*T>f$-=ZuXZ>H8sVTn^E#iY-~}Cvpxc?@WA7 z_X&R+%#l`5a~YV2tmhMqZoG2ASAC<_`$cQ*s@uAcRV`YszC;E;op&(OVE=b4dSDqn ztJ34uTW2oL)_nl1T)oH|Hs$YIV+mX|dP95jInH{$3Jr(p;nOtG`7UA5!##2 zRc)O2^4|5sSEd?TDn(J`boqX};~%;Pj0bz2F7{ndNO99tuJljlw1O!_aGvoG+D=jT z;VGU`KI2Kp6s&tXg75b~XH={}hy?s;V6)C#yS?C}mO4WSSK6c_VIr;*7ZlR?!^_RyK+un#RW7_!dyCT@1d#+*A1JE}@hvl}iKvD?9M z8X-ufjOkiy`gyisG{a7l=a~!y0X7>{6^cSo{R*+!KtDXMO-=$}*>_q9IDP0Y1f*i= z)rVjZgurHl-42_LO3BmGkfy4H;~>lMcp!=ljAq+S1&KQoE#DYRHkFka8iLEkDkteQ z4?;Aj6Ap()ZKHq)$ literal 0 HcmV?d00001 diff --git a/pic/map/CNIF.png b/pic/map/CNIF.png new file mode 100644 index 0000000000000000000000000000000000000000..af489900efe0af0acf5852cab02829f38a866bc7 GIT binary patch literal 2437 zcmV;033~R4P)b=g$nC^AX>B4*>4oh1bh9MuSAtkjvr8 z698yvz{(2OyIc@O&W|7!1uH8IM^1AS$ue}E(^pk)6HNnv?c4b%)zwHQ0r0z7s;i5% z7Z>66@_RZBML{Yhf-yLq5CrHt(rKtFH+6YA_vN;21$gG63D~SL>jeRfA(@1(Bbnq7 zx-Md61!ZNBBnSdT5t_!=NHPgY$`6-JTA3x2P!xz_!91uB=?j)A17l=75zEV93~o0k z2S5~&&00q>C>g3UuL2;ktgbI-n;15ne@NDWO^;=LbIw@*7;e?L6Rxsnz6h8OI~2l#OR z(6Kf%Av2PJR~ele2p#ob2m@&M?Ty4Is=oLA^y5dGtQg%4;Jk%vYA8}g3tmx904k$X z^po(2kRXX8(Q!fIgVgQVxiB+LZU2QYX*M+tjU!#He1$8@I!liSf?%u{!Xq~3hS{nu z{U6o)gJetto-pXAl3El!USl@7!~%I59btxG52EJ{(_8TDG7xH6Zw7$a!E2-Q<56dA z9a)tyY8o0BW~K#6G<;ms&^SLHo$Nb-j<9HUwP8;So(Ts23t#5W?3(Jq(H#m8y+7#bMh}=nAfWLZU(-3J;J@UjxBn;Wa{zX{DR_@ zB9$3<94rv<_l85i{yCYKmg`H&%|D$3K=8i7OB65^3w(1hi*N7}0s*?HUF!aPWuXim zYvU0}EYBZn1JHBvMz^k8%rz1n2eAM6FYWq+LBH`c5}&a9`0Dk@p^kPkUY;e8--pg0 zYa3$B@MR=EarJs6-g`FQdzKs-iBC}20f_gW%>!RBZp6-}fFZ{YY*QUZu3QqJ1C zflvzq-Da)@kOp0P#x(2L(0X!4bEn;hw%K5*JLG^Sa8oI*CV;aLN2iY1dN_zfBnb7)91zq&j6VG z=iiQYJ$1>x3e~{wRE@BY_>Jak2ixu4h%~Igo=m%OnTKqod_l3vGvLE`6=m?Y3naxSTkz**iKV*W@lDdbqK*Bk_p`qc@8#g^l9UV%W;)6tmg6GCE~9Y$n*O$%=*LbKmM>QI-$C zx^34hTCpihqF%U@@Q4cSpC0|MJ?oEO=@Lq<9gA6L`4oMnUi7NgX6h%q86nDNZ1 ztR<={qf@e`+r7SX_nvzpKmD`4Gxapar2Coo4*(Fa ze9?XQ=nw_9CM!l7?HjywFz7duM1rN|-63_txClEg16Gnh`DUyW{l#^zHV+IBRJ;lK&F-OTBPAn1%?b=7=ai{bv4 zLd}EG2|FF0=W>uFI2_P4s4Bz0UgmIsE>YB%mH_b6cPa#Y{n<+pBw9xGVRjab!Qp_@ z3CdtJO{CJ0u4zmVpeU%Q!16K&qoa1q5!l8;jcW(3tnq$yjTkGD&M_(yks*!k8RuV>=_aX*x#>4p(&Y! z*NeG1Y~PN>MP6>AI#)J}R0^xB&@`}D%R`Jk@|EQO(Rr_p>*S+M00000NkvXXu0mjf D)ntp# literal 0 HcmV?d00001 diff --git a/pic/map/CNIN.png b/pic/map/CNIN.png new file mode 100644 index 0000000000000000000000000000000000000000..ad063a85d857ae2399d0fdf1b814f1390bc2baa2 GIT binary patch literal 2369 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 II;Vst092-J>;M1& literal 0 HcmV?d00001 diff --git a/pic/map/CNLN.png b/pic/map/CNLN.png new file mode 100644 index 0000000000000000000000000000000000000000..fd4cc5efb028b9cdcee09e91778b9eb2b00902b1 GIT binary patch literal 284 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 AO8@`> literal 0 HcmV?d00001 diff --git a/pic/map/CNMO.png b/pic/map/CNMO.png new file mode 100644 index 0000000000000000000000000000000000000000..134d9d0d1a1628b403c1a476094a7e462a3b82c4 GIT binary patch literal 1526 zcmV*1d$0`F7Zpc@W%7AP%~ld7(XLHpv{OdCEooeA z>5{g&Y2w3~U%!6$w#g>emwa3<_nv(B`<>tU&N<&X0oe6n84k4XGNiEkEUS=J$bT`! zC;M!O#PHz>V(hWw62TU=P=hkc$}3+-d|X-p@E~=DK1aeXJzfNWmF9Z`gXv1(%dn(K zi&}^Zt)jBubshl1XPqc{;hoxFzFd~OguD*HzSPdZCXg&47K!3*6to6qRE@Z@H;Yt` zc*t046DY6|+uX1mCji(eX!weF0KnpLuX?U%fEhc`Do36k~z6u%xa**{~0+ zRj-UVyE|)VW>>N|i1B2<_{`>x5 z3i;{rqSPkDFA{DwS(ulFc>w4{UA>W^O}vM`_gRS5Q_(4wLd&j{o7NFN7m0I;uD_WJw)06uCJSYN%} z*ffi;S4NzUnav%I#|io~005*mS+aN($?K86_^kfD4>IcaZ?eA1-cfGbdvsAdN(dPk zOw-W3GU9XqNNs{1FQP)!X+(||A{}}0B${_jRk#S@?sW772Op#W0Io+y95c{2n8rj= zCOJgHF0V(z3!m{GKI`P}+=S9k{hW|nc{tEcugxGCBC!XlGo0fj5-I>3ed(l8-rDM? zuTzuiqdjH@AtVq8pz&Ci0;|Y=*Lk{^&V?KyB-ocipR|gKb0Ozk$ln++**U zy|<=bm{u=LPbGB}T1Dl=YxDT+t0(N`Pm+y-rmx?XY%Mj8y#NoXJg>tymw(`95<*aM zOfEPke!hI|>Y?8L`v5R}ZmE1#fGiUUb?II)1$e`5xuqi z>Fad>aJK)s@{k(^O|rH0xZCX$Ypgu&wqIX}aWe(s>FBLxqsCN^Pp(dvhb)yIk*jg+ zWmn(sOzrBh>rEOv^Wc())1wTeC>;cV@4g++udK3ief@4GQ#2B~Ii8bd71Pzd9;qV8 zg8l~ptTgi*d?3?UU(e5@^k>eR8k-Mu&z>;Ax{TuSlmmWN68)8!`jg2 zQO16}Z(L-)eh$5_B9Fyw8%>TIg=5h<)~Arrv91PgX4-9^Oloz%St{L2E?={IX)3=l zmNE)`9_8_>b(+|==wT7Ly~J?he1~exc|#e)rrmZEYnKX{Op)D79Nnj_Y>=Qm#-eld ztggtg#f>EZV1op8w-Wse` zvAh~0v2EjW>2Qfl1pvh?$#SVcu$1Ya?o8!bgD+|!!L%EhnO))B2lJ8~kU96+PGcG& zQ%PNoxbR5F7Ev%QodLjVweap!%J;b2S(a8&@pzu)BE%{xlC9-gZtxTH&_~bpz8mzRmdu26|xFhg{(qW cA^*4WH)mMtS&|Aq*Z=?k07*qoM6N<$g0NTP0ssI2 literal 0 HcmV?d00001 diff --git a/pic/map/CNWN.png b/pic/map/CNWN.png new file mode 100644 index 0000000000000000000000000000000000000000..56e13d308f43ab2ecc94bae111a9fdc33449fb17 GIT binary patch literal 1325 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 FV1haktEK<| literal 0 HcmV?d00001 diff --git a/pic/map/COCE.png b/pic/map/COCE.png new file mode 100644 index 0000000000000000000000000000000000000000..63f38c2a4b21e97d2cc754a51f509d490c656b48 GIT binary patch literal 1904 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 literal 0 HcmV?d00001 diff --git a/pic/map/COIE.png b/pic/map/COIE.png new file mode 100644 index 0000000000000000000000000000000000000000..af13eedb81c9121b5f2567e77a0684d097f2b8cf GIT binary patch literal 2671 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 literal 0 HcmV?d00001 diff --git a/pic/map/COIF.png b/pic/map/COIF.png new file mode 100644 index 0000000000000000000000000000000000000000..038a1fc3193fe2d767b2c4569f98649c7811075e GIT binary patch literal 2448 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%0D#b%)7!1cRKv4jox*Elzdnw5>hWcpu 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 My85}Sb4q9e0L`RtM*si- literal 0 HcmV?d00001 diff --git a/pic/map/COLO.png b/pic/map/COLO.png new file mode 100644 index 0000000000000000000000000000000000000000..b930bb72f92d46aa35fe1eaed998eea150fcd402 GIT binary patch literal 282 zcmeAS@N?(olHy`uVBq!ia0vp^YC!D5!2~3ek}s?PQk(@Ik;M!QT(3cxv8kIk3MhES z)5S5Q;?~<6hI~y90<8}x`Xpz5VY+irxq^B9^FW)%k9;B_Dr(cr#KhD#ykkmiPwjnH z|I{R&?Zi7CrJI|x^nRa7nYiEE0|-t`ys|vIbp4qn$C8vj+2pxCSvzfZk>;hNcO()_ zlhY#7ljLk%uc}0Z?7r3Q`z7!7;dh07t-Eg?zjL#~DI!|m((Fr9x9i@p(*8bunF{&h zHMiIOHVL}A(^Eka0*qbu?p3%Wl6LKI>cZQedtO#%%;;PD`R5Us}`U+KFp02MHJy85}Sb4q9e07W<&bpQYW literal 0 HcmV?d00001 diff --git a/pic/map/COME.png b/pic/map/COME.png new file mode 100644 index 0000000000000000000000000000000000000000..b28b174bdadc45f19722fbba9edc61e49202a615 GIT binary patch literal 1574 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 N002ovPDHLkV1mX*rbz$* literal 0 HcmV?d00001 diff --git a/pic/map/COMN.png b/pic/map/COMN.png new file mode 100644 index 0000000000000000000000000000000000000000..4b48a4c047a9c5a18719986190d5b561e1f9e253 GIT binary patch literal 1389 zcmV-z1(N!SP)36>1{2b9$|FgNvx-g-@3R(~WLBgA2lmd;}M# z=&^?T5@DgJ-`g7`<@G;@Yt$_O5Q-B3Ib8c@TzZzx%kpPS`_sPFdhj*8R7jzyUlCfJ zIi9%<0Fw(>Qi&Y^=(L(}k(cGEaj80(tL_j;z`rBv_~EUnL#@U>2u+tAUTi z$uY6hYRYB~v4ZBsImO);Bd2HCPOC||5d&W4rJ0W?@uVP8%km{de+t3?kX+xM8kaD(oSLV`SO(yoPfH};HB71vMMr_x?PG#rIpZJzDq zo*;$2y}{&4NoaNEzWVrk)PJ|Hr}is45i@K(-%!hOPibpEPij7RbU&Lp%w`VD_LIBI zzAvxbyCnj^cXw86Bhkxwajqa2NqM)!(qiPE{c%8QIy@Z?PY0=)h#5Mqrg$X%_Klu; z2a!a~U~aV?>=x)ZOsh?;d5*hK+IPw=c6d6lFY7|eaI9%ZrAF+!+)io!_H;WQN$+Kj z>P6a}e`%_2J>Q^QM~60-GnD3j_J!JjsV?Mt?4?QxR>x{Bo_u}qRkdd6TG>%&v;i;8 zt+sB5g^FRf!}8POQ%dvd$hE#fJFe@hSk1Jd@X6x3+M(C@SJawo@ni#|bEU0ZvsnS) z$-=K{Ar+6)OzT!>jsuR$CAL!~i#e8Qpf5Fr1t_SS6#(3Cb*tk+rJ#0T4+_~jqb*2b z@rN}{i>b}4hL^_-qZXa5!w_NDnKB{a9% z`UdUzgizGayM}R)@b(7Ni!TlcB+u&1QNwO&mswmt*ey_|ti{$UZOE05R-D>Da?+tT zYid4D#0f1X%d(>6n{f@fN0s4Gnc_oHKTeuc z;}Us@z#HeqIZA%>dKnJ@7|nC5X0uX9zAAG9sYAI~LjJ24#VZB29xqRQQGcAAg_p`i vu6;mg{)g8@Hjzza6WK&Ik^f`le{lT`M^4J}1u+{`00000NkvXXu0mjfT`QP9 literal 0 HcmV?d00001 diff --git a/pic/map/COMO.png b/pic/map/COMO.png new file mode 100644 index 0000000000000000000000000000000000000000..db692a6dd325bd56dda0cce68a5b574f03fa1e62 GIT binary patch literal 1503 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 X=1gH8>4dvC00000NkvXXu0mjfBLI$m literal 0 HcmV?d00001 diff --git a/pic/map/COWU.png b/pic/map/COWU.png new file mode 100644 index 0000000000000000000000000000000000000000..9ae99f2c26c0719e8e03eced5a1df59b81dd701b GIT binary patch literal 3873 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 literal 0 HcmV?d00001 diff --git a/pic/map/CPLA.png b/pic/map/CPLA.png new file mode 100644 index 0000000000000000000000000000000000000000..5f1383cc7e15aff952e5bfa36434ad6aa3e907b2 GIT binary patch literal 4768 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 UTVDFDF9QXmr>mdKI;Vst0H6q=s{jB1 literal 0 HcmV?d00001 diff --git a/pic/map/CPLU.png b/pic/map/CPLU.png new file mode 100644 index 0000000000000000000000000000000000000000..676d25b154c26b165a80002eb95d0731a16cc181 GIT binary patch literal 4484 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 N002ovPDHLkV1hv|s~`XX literal 0 HcmV?d00001 diff --git a/pic/map/CUCF.png b/pic/map/CUCF.png new file mode 100644 index 0000000000000000000000000000000000000000..3d9f9746d4d2ce75889e72f44bc118f923872f79 GIT binary patch literal 2073 zcmV+!2RP) z000W>0fLJSS^xkC%Sl8*RCwC$Sx-zGR~rAAf!|yPMhqUnc*P`0$s9Dq!V6ykn#yi+83k5|McO zBv@u_n}|C7?)4{|hf*cwz>pG=(U&BmM|bnFbeS`%2|+|{-lmy}Wt38#s7h^$;Fp>h zT+8Mam59i`ejnt(a%N%~_9G!N5)$>GDmAqG7^$GxbM_h$Z3WcS#2^uMb-Rh^_5L12 z7{GXgdW1>Y4-Zwdmd$_h$vI?^$7*2%F!OVTjn(YNY8KbqyiHKx+Nes^c%o`pRM)b3 z&TCh<+b!CN2uR2%5jC|1kmHe%sLfTW(h_$|z+)+I4S2p?`VR2-W(!KT)ZuSoFrNJT zZ+Gw>-!6SugR8PPf5%?)tY!1aANUbb$MF`UFNxE8vxR?s`4C0a=53mvD`2h(0j{gL zjT#c6$arI;y=&RL(U)uucV*DtW|>UMW^yXWT$UES`t-hUOR=Z9~}c!yiO z;_-Ma7PBl%&d1njZ^h}y6WNa^vV0{J3IWNsZ5cHZiB!<7A_cZ>Tb2bcd>oq%V2)G3 zV~(icLEE+yi9`j?IzL^N|CO4GDlE~jalrfI-PBoc{40;h&yq|@niI?YK%^L+NvnYg{pG9>8F)^>Os zU*g5@O56?xgYcWlWHe1Hl}f6r0tQFhwsl?4<#I?Z_>E5uEPr3>>GwSRdi~wL0IK?B zgZ>ni$_IGma@p(~fBE7`-1zLHGvJ!ZWN<}Qx3#`lES5?ozK$Scj86@`X(Wm0;n(X# z)YI>Iw=Y0M??rd|zJZ87ziPB}b>NxJ2TSKKPDHIBPEVfsMgKcf;EK`!6@=Gu9Jy%6 zrv~8RxtETAbL~Ea$#1k0(FJpoAr&I}-B1cq-F&b#ms%UU)`#8HmAKvi&J_2YjE5BJ zx-OosTttLYf9|E@n-7*=c%`}1?|$Kx<_qTJ1#?nvs>X0Q9En6={j~eG|8hCVp_7NI zs(2MxT9&oTPi?^yLdY*7w|OWO5<-+prTtv!x{gKyHuHuU2_fXz>@yTM$hnA~^tHCfmr#-o-K&i^-;@X|gHA z({Y^3moKMx4~_>1HW&=D6V&s}%uL1gMmcAk3|YzzOr#|+YSv4A()Gci+s!FazSfOoH!v1 zFLn#ErPu3y{P=Obn@ZFzQi5H@*4EbP)2FLGi4_|fBxl+%jJ=9e>q9p(%5;Z^hvi1b z_MoczBk`Ej*s53A$I7OcE?ok4CX<2OYnm1e23h*$H9*$b+Mj`{Y@NAh&{9GOUN1A5 z3BB)Xn_{szI5>z?UDt<(hWvg% zT2o$s4qRLh@eL2{&u@T&;`NTT>A)Xcb$x1Ln1zJ}_?4GE%d+HUu6AS83n{-fx2!x^ zj1C3aSOX6mEy!DYd;8wFC6h_{2U?x6tqvIuhi}}t!H)Lx#mgstDHw)P&xcv1220Db zOw;7O;a(e`&xiE{I``xJXRrQGp7not{`sGY|3Blu&Vhi#GSEn?00000NkvXXu0mjf D5C07T literal 0 HcmV?d00001 diff --git a/pic/map/CUCN.png b/pic/map/CUCN.png new file mode 100644 index 0000000000000000000000000000000000000000..b3ed30d08c9813042d7ee90072d8b82356add1ac GIT binary patch literal 1708 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 literal 0 HcmV?d00001 diff --git a/pic/map/CUIF.png b/pic/map/CUIF.png new file mode 100644 index 0000000000000000000000000000000000000000..23dceba3c671ce67f7b106ae3b642009de61e539 GIT binary patch literal 2431 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 E0KAxL`v3p{ literal 0 HcmV?d00001 diff --git a/pic/map/CULF.png b/pic/map/CULF.png new file mode 100644 index 0000000000000000000000000000000000000000..107f0e5e39e3be394d833811ee955d8eaadeda3a GIT binary patch literal 265 zcmeAS@N?(olHy`uVBq!ia0vp^YC!D5!2~3ek}s?PQk(@Ik;M!QT(3cxv8kIk3MjbS z)5S5Q;?~>ij$DTo1X>?nH)!Xm=()G@c)`ToTyl%Mos`(RqmsG*rd!VL5A?j}aryPL zz4LwaJ}++pftujxl8Za@E=3u7_U~5Nd&RV6^$8L0)y&)S)<|#T-^jBrFqh++$-3S{ zuM(xZuO2w<8prlLIPYR?h$DWn3~ZP}XsNiYU+<44$rjF6*2UngAfr BZA}0G literal 0 HcmV?d00001 diff --git a/pic/map/CULN.png b/pic/map/CULN.png new file mode 100644 index 0000000000000000000000000000000000000000..a5fad23da50717dfc8c21c8d148ed2c7bfcc175f GIT binary patch literal 282 zcmeAS@N?(olHy`uVBq!ia0vp^YC!D5!2~3ek}s?PQk(@Ik;M!QT(3cxv8kIk3MhES z)5S5Q;?~>ihJ1$%cvvs^e>~B(%fLYC+Py{Pr?ys!_+4149aPR1ut938SCG2XqyHCA z2j9`y+W5-S;Wn>OY| zlqGRnxQPnuyxfu0dh~Eo_t687Y@Ks{Gn>2Gu79=svBmvoi{_nwS^3XoTYhy9$L-a- z6GNZRZvmMLLYtgi`d>Xix_pNm1Xv%q8?(i-l&^FRO{n5|x1q`Ui&Dp`TlZKSkB2DCnsRd6fqz@L zIrE>)&^O+Fb1vhg&p2}_+;fr&5ZyoWu}ZJoYKBNWk3;-Z2DYs){jw)YT^3~U zHW1_SR!KXkw@Rm}a;o;`8H>wr%awhE$wkne)%RInR1<*1UM$%lj(h=G*Vs j_&Dm&F|ewW^ZVInx2K(4yh>0C=t%}oS3j3^P6EaktaqI2*gMthSJclC}-Uph*;OXk;vd$@?2>@M%EWQ8$ literal 0 HcmV?d00001 diff --git a/pic/map/CUME.png b/pic/map/CUME.png new file mode 100644 index 0000000000000000000000000000000000000000..03e5f860abd8f2acca12f423037d9653fa60b850 GIT binary patch literal 1597 zcmV-D2EzG?P)!t2;gG}O-pgMjOO~F8o71o7p5OQVzVAEd`!2BJgFA8J#0o=dR^G}CWCrpD2EV-5 z1VJE^#>U2%4oSeA_TG9&$=ZZr8QA<%%>rWpxTbnSvy7BdfHLf%dE`>+eVwVOE zECzmo)2F4Sg-k9w`~b`aCIA6{_NlM)0355kHX4!uu2g?aSnuo6| zO7}2r(24gYGCykb5N-0zy3@iA7MNGs=W&jZpP{fwjU$s#SWHS50DH=QFm2F{hNLtP z0Ag?)Jl1cVp*Jxe^K}6{Mnlq3n}-F~DD4Y{MT$XS*ae4M_()dtyl>yr_Lg(r$~?0! zF&-lk#kA`0n|H6C``fRm-{QK$=tR# zcNQyEy~BeN0S55Nrk^XS3cYS1g)|SZJ4)gi0Q#6D5d?w83q>*|j_4qPlqJHWHl0J6n>{%)TUc z*e4y^_gJ>?i37NK?K%Jg->}s~GKb9*POsOq9(MI~vK!UzsCM;ql4oVvF3;^7Wc|akH49(S7VFrP$b?cz&J_J>V?a0|K(Og z-N#qDI{~ncpA(WWXnf{bzl~xy+nw0y@ zTwr?Vz3jU;A1JT6&9-%92dBN)wm0`k)9&!#^Lj_gj4uU2I9YdhPP)8f7m*XJsrHgydw(vog?snX3R=@`wM~x= zlfax|YLMQLc$x*yz@=V$|K4^M@&5QV!oJT-eQGIlj_`C_-#c973u21VqA<}TOK$(p!st4%wIgdg#8dM=>xNx=j~r?z)5 zt!Vp7S&fVh1Auoex|5Ir0FibQGS|^rDXXq7i?j^@kjrc-z6s=()8px3fal%58QgkY zL!_EFmQtP+5f}iRfse;WJ(7~dNJ~l*^O-IZ67LX+=iR=UMCiKz)33-}C7m~r~ z-nxmK@i$&K=swePfh*N2MHeRF`Kh<`aKI%d8NG}hI%+rP22i zZNW2y)$uUHkhWv@!8R-ObQFJkEGfyL=!7^{EtCYuj~~=h$$8<`<3G`6Ih`p!)yuJ` zoayNWh@&ZHIla0r9prNd`5XYRX~sVP#yh{52wew&)VE(A4~bqzNin^8)0 zeALq~*6e61V-3TG!mU_T?~s*0r`OCrxc?lZGu5xjSQ^S7Z{E=hDLxD!8DJU@l_kN! zv2-l4oa$N3w6!&YB-5uJv1$eM#R>o~50B{iph9pwv4yhQB-@gbd=%XYS}`)I83R#D>lt>|sTYZF^9cPLsg zeGES@hQ~9pyV?wevnq~P({q7l>k@l!`AMGAWY}X;9pZ74aDObt8s0|mPD8CWhB0;Z z=;bf8F^w#a$8q!xGYno4S;Ns;UsYx~jdvZ2?f!wmpErJ@gmz1Nzc`F<@W)af*HCb3 z5_mo+Iu9=hBwk5yP{S^+tyoko>{F&ZN~h{IWXe}<9_IA^k&_P9tf~3fET@5C0U-VU zyX0|yEQOl*+Mwt}N{?I+u&66#Ra0_>mc4>o8y>aE&mT+Sq^bBO$V&tsjK~Q}9-Nva z@c@7^ytf(_D|O{-Fei{Yl#4aU|8!A!HDa6b^2F=N4eoTj)c;q|`aiY>*@A3Awjf)O fEyxz+|F-@HL7evE3J!H100000NkvXXu0mjfi;uw3 literal 0 HcmV?d00001 diff --git a/pic/map/CUMN.png b/pic/map/CUMN.png new file mode 100644 index 0000000000000000000000000000000000000000..c9fd9649b3d638ac9a5dfd939142c9bb55526709 GIT binary patch literal 1437 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 literal 0 HcmV?d00001 diff --git a/pic/map/CUWU.png b/pic/map/CUWU.png new file mode 100644 index 0000000000000000000000000000000000000000..56ee1cd431e9669b949a8dc7a203063cc2089aae GIT binary patch literal 2759 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 N002ovPDHLkV1nhJHFy93 literal 0 HcmV?d00001 diff --git a/pic/map/Center.psd b/pic/map/Center.psd new file mode 100644 index 0000000000000000000000000000000000000000..83e9e79735e92d126c23191082822f3a2be6a7ae GIT binary patch literal 10024 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 literal 0 HcmV?d00001 diff --git a/pic/map/I0.gif b/pic/map/I0.gif new file mode 100644 index 0000000000000000000000000000000000000000..17853e476f1a10820a12d5fdb7053fc1d6db25ff GIT binary patch literal 114 zcmZ?wbhEHb6lPFjn8?8Jfld7Xd$Irj|1&T!DE?$&WME)o&;ha;K=KSs&QtnVo|c&3 zkfMKNW{#*B$ID9gC8ZD5rLJ~0&DiCn_u|O2Hw90wf0Arjpy?rY_{midt?6f$edg@- ST7G5K*RHc!+hejA8LR=a2rZ=m literal 0 HcmV?d00001 diff --git a/pic/map/I0.png b/pic/map/I0.png new file mode 100644 index 0000000000000000000000000000000000000000..1029b780dcd257c59e7111666a1cf3fed12e70a3 GIT binary patch literal 362 zcmV-w0hRuVP){Zn00009a7bBm000W` z000W`0Ya=am;e9)97#k$RCwC$Q!!4&Fc2I^^pxnTh!4=@3O>LWD5*{ha(}Pj1DA;E z%Dg0nBjpEIUY!>V1zO8aY={JO9%+@tyP2IG+lCYXfH57B04Zim9sq8%(6tR3X?)Sx zjlPMkC)nEJ<^A60&&LZMp6+1Gj=mv)715G#|2ksm=T%+_-#&IA#Z)<>B_5w|v$@mZ z>TMt?B!vKcgllwh4giOK=Frasz|-MM0Ib4sa%1LjK3*bq&`z#xqR!zrovhT^dh+j) zGBw$?U*7362U|}`->~!|6)9z5M9SzSsUTc8`!1_SQRxp`2y@3m&lz%CACCB)1v(-r zFr;Mf-BzfoYI#{xg+JxJujH>p#T$S>L?J6=g{+Vjvi~Og1YgPCmeN*AR{#J207*qo IM6N<$g7PVu`v3p{ literal 0 HcmV?d00001 diff --git a/pic/map/I1.gif b/pic/map/I1.gif new file mode 100644 index 0000000000000000000000000000000000000000..fd607d0827b1799f79c9f98e2ea1596741966fca GIT binary patch literal 114 zcmV-&0FD1gNk%w1VG{r%0FeLy|L+#IwzmKO{{R30A^8LW00062EC2ui022Tr0006* zl#i*)2%myv55$>l6*dUzc?YC*;U^l^ih`KBLN4gU=In6f*YX*JpeaZe!{pUSDwoWr U^9hYgr_`$Tip^@bTxtOTI~e9JtN;K2 literal 0 HcmV?d00001 diff --git a/pic/map/I1.png b/pic/map/I1.png new file mode 100644 index 0000000000000000000000000000000000000000..daa4092127a103ac2e73464f70032515bbf108ef GIT binary patch literal 363 zcmV-x0hIoUP){Zn00009a7bBm000W` z000W`0Ya=am;e9)9Z5t%RCwC$lOa;XKoCV=r$DYia0MGws_h zC6(IGMaQ1}VFt*{$;$~))f57h_1hU}%Oeyqy!buzD-qO0t{Zn00009a7bBm000W` z000W`0Ya=am;e9)8%ab#RCwC$lR-{}Fc5~nA>M{1oWKik3s`7e>KSlpaM5=QFTe@P z()0W-px6g3zC_*eCrz5p@bP!1V@?8~Gn+RXImwRVTH*kAAx$3h zuVa9mBqs?_GkO6k;_K{`JKtP0xFh_@yXx9mTxhwl&-8Z9GGy2(CD6)5R?Yyg) zro5}NACl*`&<`cw&dK#9+W>$fPR>Dcpa22*xUVU~2e$x^TzyYOqV=gpq*izqk_azb zzgd!yG}p{U!|Nn|VSr{1@7#VaJfB+=Jz@*dDzw$K4{cFq@TPt5L oopX&dOW|8@+?B#vj_U-r9Q)*R{af$zU+2F649 zo-U3d6}R3_j^$$!6lhtUntx=bg>d?%^jEbKJlX713~;8nl+vw&}fqT8-R< z7p7aTrZzG&GxR)OsnFZ(zSG54tG-U$ z9qzT1-~a#s literal 0 HcmV?d00001 diff --git a/pic/map/I4.gif b/pic/map/I4.gif new file mode 100644 index 0000000000000000000000000000000000000000..a47427de85d248c3c47e5e7083668bc5bd9910e2 GIT binary patch literal 114 zcmZ?wbhEHb6lPFjn8?8Jflb`tvfTgw{}~t<6o0ZXGB7YP=m6OaAbAER=PCUwPfN^i zNYOtsGe=a6<7FlLlG2CjQdhg0X6$m(dvWC1n}R3TKS{PM(DV>H{N$>K*7P&WK6CbZ SEx)qrYuDMV?J-%54AuZ!E-b{Zn00009a7bBm000W` z000W`0Ya=am;e9)GD$>1RCwC$RI6^oFcdwu%7=%d;gEuX;r&3^;83JaSv9ux8?vz} zs}gCb&}=^tY!DDqJQW4|3+}*lEhn+HfR6b{k?nhK&VBeHv@!sIo4X5w2U;1iga?2X zI~GZg`?o9Wba?)@LDI59T2^>^d9?id>xbo8Pym<-O$GO-H5!^H#)8M)7Fro0Lqbz* zga~q3+u1gdR)(}P1i*f-tU{8$uKnTj(z}a{ zuiI-#{$Yt==vcV$ZoS+55a%8Xtqg=#CV20bg0GXDURIyuUp&tRzZ&OFFAqF5A* eVo~hB#eM*VJ;L#3AwMbr0000l6*dUzc?YC*;U^l^ih`KBLN4gU=In6f*YX*JpeaZe!{pUSDwoWr U^9hYgr_`$Tip^@bTxtOTJHJ#d$p8QV literal 0 HcmV?d00001 diff --git a/pic/map/I5.png b/pic/map/I5.png new file mode 100644 index 0000000000000000000000000000000000000000..596ec368536a47840ab0df245dfb00276adedcf1 GIT binary patch literal 373 zcmV-*0gC>KP){Zn00009a7bBm000W` z000W`0Ya=am;e9)CrLy>RCwC$ldn$1KoEz&ZLqw?n##kSA=njtg+(E_5ELf~vZ#g> zQFXim0^8K!)?#=K9$*m1YXthmAdQGLA_7R!1_31Nx07l!C2doyLo+#VcQW_?t8O`{E-&l& zU9>@pHf$@?Mb=}Y@09Yg9vwG7^n=bQ@5v1S$oj!4ND8D7fY*yNGMz95c&IAX z=+^faKjrn0h4U8UyiMM_snY9|?O)chz+-;g&11*lH_G@!&9E6Z!)DkF`)}AcFjld$ T#kyPc00000NkvXXu0mjfP8+1b literal 0 HcmV?d00001 diff --git a/pic/map/I6.gif b/pic/map/I6.gif new file mode 100644 index 0000000000000000000000000000000000000000..7d049d3b192f795a031f2e26685ca7b4f5fbe4fa GIT binary patch literal 85 zcmZ?wbhEHb6lPFjXkcJ4xGeYo|9{1wEQ|~cj0`#qKmd|qVAAR7UwNA2{x#-{t(C8r o&bh{!rSPpc?n>b-$8`c*j(zgE{;l`38 zo-U3d6}R3__T@XIAkdobVe7m54QCZ&o+5X>*rXSdSwZ64^j_&!HO^~LoyTr|Nnv4$ z$*#w$IudH~{gP}yR~)z+FqMtz(PF0vfzOVvm!0#^Z27dSdC$8vea=HV8RZfCRp0bW zGcX8EIO?#@AevD=ROCe4DwDdqERVLVvDRgsFn{IJhHpjuYO&|dw+n85XH>p;X@eO< z)tqe(f}feAxHM+fY5h_^<>VMGziROUl6*dUzc?YC*;U^l^ih`KBLN4gU=In6f*YX*JpeaZe!{pUSDwoWr U^9hYgr_`$Tip^@bTxtOTJGe_NwEzGB literal 0 HcmV?d00001 diff --git a/pic/map/I7.png b/pic/map/I7.png new file mode 100644 index 0000000000000000000000000000000000000000..cc1f28ccd49467984a7dadeefe6065c6172be4cf GIT binary patch literal 386 zcmV-|0e$|7P){Zn00009a7bBm000W` z000W`0Ya=am;e9)G)Y83RCwC$Q?F~pFckh0&W_Vl zj*7vK$@ud%2N5T#&x}*mVSm7z7%!x~gq5+md{C0S@AZ2>k|(q>0D$#oPVhi0Bc|{G zFk{EONb&r3Wu2bxK5dXH=};vdZeJFbe}DY2JPQf{7eZsf{q6*=zy%9#&r4`!gbWFd zvEIysTvPV84RoXx9ce`X?C09*HXCpNNGn5H83I5}*%JVgZaJYcL*OzwJ8-1DNC%PK zbKPba*;Pqr_f6STQ}*APag*~R1pvE-P$iw$K64NI-D$9fustumb_oD=n|Vps{%~{f z-Xi1v^%|0Ym?9W@7B0M3?>0Zgxz9o?1EG}(&fQe-ILYy_`W%1ac`tl3_ghH(A);6m gi(*kMiv73P7hmb-$8`c*j(zgE{;l`4N zo-U3d6}R3_u@!1o5NH)YcJJ1yle{{%ovB*f$L|F%N!M8uR3+qt73> zVP7=sw=Kt$-0)XB?`PiIAX%Q2ouv6&COC)pS^KHJ_B(U+9CCOMEZOIvxz6ug&VvYT zpI`b~F^-Q_u1>rxxtAlnCPM2y^Rpt`8yiA)D6mSDq&1|aYgOxnu%20W_6E1V-trqy wrZ}a4x&FglMlYl-H3Eco?#o^KHFbk|f_CPdq_fL+1HH=N>FVdQ&MBb@0LYksc>n+a literal 0 HcmV?d00001 diff --git a/pic/map/I9.gif b/pic/map/I9.gif new file mode 100644 index 0000000000000000000000000000000000000000..444874461084cd366fab3702342b2ff47b7fe220 GIT binary patch literal 85 zcmZ?wbhEHb6lPFjXkcL2wr$)0|Nj+#vM@3*Ff!;c00Bsbfk~&Qf8}Y8``4H+wpPAg oI_DZ^mcqB*xGROT9M=hKIrhot`nTTazs`OC$IruM%F1930Pt%e?f?J) literal 0 HcmV?d00001 diff --git a/pic/map/I9.png b/pic/map/I9.png new file mode 100644 index 0000000000000000000000000000000000000000..a11a137114337d8b9dd4aaa96495d2ed45577535 GIT binary patch literal 341 zcmV-b0jmCqP){Zn00009a7bBm000W` z000W`0Ya=am;e9)2T4RhRCwC$ls^uFFc`&OQ71#91BrvP7bqKx1Dlu78+Zf54Y&c$ zI=eY^VT0Mk*%%WC2M_Q$7_eYzo9Nh=5R%8oudjc;vVu5dg{&kfR1jw{sNV)HmNO)o zUwfO?6SvC)AuGuQ^mHHqNHQOj=@>i?I#V}bT_9Qhcz{$yTA&xQl2Q?2IO@sMt)D8L z*k4Uc_L=4`Jz=wYDvM-am#(n^hwT}_>0r5dH3{2KN{VPwu0Bu1f AW&i*H literal 0 HcmV?d00001 diff --git a/pic/map/IA.png b/pic/map/IA.png new file mode 100644 index 0000000000000000000000000000000000000000..1ebd815f0839094a12f9812ce4eb4cd4e99c9d7b GIT binary patch literal 555 zcmV+`0@VG9P)-#!U6P@rNIB6Zq~qx#z!vB)+ONd||y|Z`d35 zAHed@FKV?KEX#tf>i_`TwmF$h5Cj3jFhmqZ=yW>peP2XT1OOljl4)3>P)J~_)rzy( z482|tl}ZHwuv)DU1OcKbqUU)4ATn(lh5^GcuwJjZSS(O3mjM8#X+lbgMx%jZu?W|7 z;kqsW{JmXciE+2vZP>QW<#I`qJe^LoEQ`9XGndOz2tfe!Jda8#`o7OU7^Y#(W)tW0 znfJBbZYiatrfCTb0F_cyO2z9&%I0pj1b7=gEf8<@-JWd`~Ge zO_Tfmo~CKiFbqm5xm+$E6anC9GuQcC9Y`NZ0EI;B#IX4`FhY1aS%002ovPDHLkV1kPB_Fw=2 literal 0 HcmV?d00001 diff --git a/pic/map/IE.gif b/pic/map/IE.gif new file mode 100644 index 0000000000000000000000000000000000000000..409f32d931e8aa405e3b5dda95c8a3d61d987238 GIT binary patch literal 97 zcmZ?wbhEHb6lPFjXkY+=|Ns9h{$ycfU|?j>0r5dH3``b1{VPwu>lsT}>_27h-@NGY%X6zvRvc(9=x}0->l= literal 0 HcmV?d00001 diff --git a/pic/map/IE.png b/pic/map/IE.png new file mode 100644 index 0000000000000000000000000000000000000000..8aaf6ab50d829a4efd83ee1e2dd9a4dfcdffc3dd GIT binary patch literal 457 zcmV;)0XF`LP){Zn00009a7bBm000V% z000V%0lmi0*Z=?ldr3q=RCwC$lrfI#Fc5}6BRZ0XI>+D?)QBU{aU1HKfRc)io+byN zbCKS$9U#`cVxP0gVpdyFW+W@t%=ptkld+YE@F|<|L7QL`Y=TX&36`*V%Bhq}zU3mK z{tSx{V@wLv$KOHcLr@A5t?N3p)_CtxN=XVhAA+(hL#eNvpWx+k34qp`>-Cxh&Qj$7 z(eTyKi zHH*b!1l(@706ZQKx~_YLiHOSc9Ov99P!t8m7;d*4Wm)$AvMdQ9u-olkhxdP@#TX-i zR8=L%<52)PolXJ>AZ1zh`@`WNUq^-EQt_`TrKGAV+P1}ek8=*^Tt5cZT0#iy_xrc^ zbUwVq@$Q|^XP(a|UDpvp=#zf~0pH3#@oM}7G?Wk{p7v)g00000NkvXXu0mjfMrhTO literal 0 HcmV?d00001 diff --git a/pic/map/IF.png b/pic/map/IF.png new file mode 100644 index 0000000000000000000000000000000000000000..45b6594df28bf87472c3a3e490c4d3c07798474c GIT binary patch literal 390 zcmV;10eSw3P){Zn00009a7bBm000V% z000V%0lmi0*Z=?lI7vi7RCwC$l}(C-Fc5`bHGxLj6L^E1Mi9KF9>E**vfaBi8zBdWzra-JBM}{5zal~(!92uTd$_y* zCj=$`27CfqDvskFPM=#p#FRg9$d_Gr) zrOtLftFSCfIOoDS+xm5;vMd1rQ55Z?u?79+*-}MOgeQQAcA${i&N;Mgi~IeKEX&rg zqX?V<<2VL0hdt~2ez$0O%FA}5D1tEtX_~Hrt3-r+Xsxvnk-62TX`r=6RaG8z)+}<^%Y8z2Ka~Fbo)m0pmDg knkF#wZ20M*f8z@J0p@{Zn00009a7bBm000V% z000V%0lmi0*Z=?lXh}ptRCwC$lrgUAFc3wL0}Zm3f)+}akQJpuEQ)1NP_ckC?7^1Y zA(R*!q{y%NvEaw~|LN(K8Oe=DKAw9$V-aKIx1!(|V}{MJ88*XaSSFUaO(8_~FOM;b zZ^H&i+qOAS%1=R;@1VAAQA%ZRz1?nTt?}L?gors{@i#~akzMQc8i3VmMbk7{D~g<) zT)a#7-se60pS&UN_dC{FoO6T_IGs)-xv8?Q>n1^$%LM@E9FNBX?|rtq0{Ez^>$=fv z?shw@wRByFa}Mu4A%y9sos!u!4c1x!w%cv;?D>4=TVs%@ltL+mF$S%5@<>Ygap?7W zQ556hS;iQ}A0siwq=dDWs;W31kE26<-?QKEN6nk?#uzr6Of{L^3K3n07R%TG0ecmMzZ07*qoM6N<$g0XGOXaE2J literal 0 HcmV?d00001 diff --git a/pic/map/IG.gif b/pic/map/IG.gif new file mode 100644 index 0000000000000000000000000000000000000000..ffa57ac92cd7230a5d8484aec9ec5f33ba24ef36 GIT binary patch literal 99 zcmZ?wbhEHb6lPFjXkY+=|Ns9h{$ycfU|?j>0r5dH3`|x%%*%H_;F;=ec+Tr~a(Lcc yNm-8GN5^eDBg=AT?LF>tQmjkSB5ix3>1)RJBa1$E_-IW(v+OfxuU9WCgEauA5+Zv5 literal 0 HcmV?d00001 diff --git a/pic/map/IG.png b/pic/map/IG.png new file mode 100644 index 0000000000000000000000000000000000000000..3024b8692968656f4a8a5a66eb564e8f50c41bbc GIT binary patch literal 379 zcmV->0fhdEP){Zn00009a7bBm000V% z000V%0lmi0*Z=?lElET{RCwC$luM3-Fbsx&BbMPn+@ra6rK*T+FOeqBtDY4Rq&%vb zO0&Td3uN>8!Ecj@;9J&iIf!U8i-^!iunA&}!BL_bO7k{}NNR{uYVkhzE2S2|=C`1f z5{xm6akNMCSp(&q!OURhMNG36Tvt{5oO9*5UazH?_LE;;xBGZJ;G6?9Bj>y?jr!x- zthI2?!F!L_>$MMClf{%^7zR9_PcSoLjK{DekhK;e1mv7CmsYa}5Rn49-|sNSl&ZY< z2q7S)^jT$H*8u=-w;PNxW#}D625~sDs;iCWb1kpE-V}mc+2|HmY?1cRz Z><3j534iLEgX91J002ovPDHLkV1h)SsoMYm literal 0 HcmV?d00001 diff --git a/pic/map/II.png b/pic/map/II.png new file mode 100644 index 0000000000000000000000000000000000000000..02c286eda7a6036e25236131371b60175647a4ef GIT binary patch literal 354 zcmV-o0iFJdP){Zn00009a7bBm000V% z000V%0lmi0*Z=?l6iGxuRCwC$ls%4vFc3yRhcqZI=n&UJa5(PZBXABxO$`Oe2n+vh zvu0sqMCvvAth9%A=iRTZ)5kInK1@MQEVPpGva#6 zN%tZENRk9`93zS%7-OK6ddhx(O+qQPecxjoM@-Xn_)tm-DJ8Vlo1`qu!#D*8y=fXO z%K{+;gb-NQ6;etlrI6?OsX_nKFX-ap;^M-?7b5naLH>?6SpWb407*qoM6N<$f;1VE A%>V!Z literal 0 HcmV?d00001 diff --git a/pic/map/IP.png b/pic/map/IP.png new file mode 100644 index 0000000000000000000000000000000000000000..56572395b3fcbdb62e1c96370df851ab202800ce GIT binary patch literal 401 zcmV;C0dD?@P){Zn00009a7bBm000V% z000V%0lmi0*Z=?lLrFwIRCwC$mdmb!Fc60S8c8JK4V))bUdR_=;Ukc)OxTgQnZ_Lp zE7W+&oQ0mrT;dK>7IRR!|~>Z`llAvXSs-|(J&9O z*2X~L{t$HD2U%;8WtsP%Ha1NIW`=VPN-2o~f4@#*trdAV9~U!=)>@euokpv3&f$K)$NS7D9RQda%sl9O*!g@Ou4W%NM%my5 z_z*<|LLS5Hbuh(zQ8^SckV7XjI zJiT^vIy h<|P04|DW-&!U2ZYyot3T7FA&&4W6!kF6*2Ung9lh77hRa literal 0 HcmV?d00001 diff --git a/pic/map/IW.png b/pic/map/IW.png new file mode 100644 index 0000000000000000000000000000000000000000..d19a4a5d41fb4a0ba1819ccb65d252d95ed74fb6 GIT binary patch literal 343 zcmV-d0jU0oP){Zn00009a7bBm000V% z000V%0lmi0*Z=?l2}wjjRCwC$lueF>AP|HL<4!K&S-gRXmsHQ<(o?vEbc>jt%}D$K zoq5UISqTXd_-MMi1zx>+_3G7kr5@JhKWEh)#2Aw#X{|4e7)nOVCH++1~kS%L}0B=no?C2oO1wxJOwL?0swA7o4ohY zV!e#tl1Yxf@3;BknQDtbM8M3C5w&f5$mcm{N^6aIobed9&@@f5oeteFj$^Q% pncVNYye#3~pvR*I>B2FNbKvb(46p1W#eHq%Uha?X6e^F7b~ zeP_;~ zi~vDl!7V-JY1u!>pI@Ai^onqwU3!1Wq&9pR{KHj@$%0sn2Mx1=y_O%d{Fo&}e3$Jr z#%vWs1eW8=EPQ*S73t3`-$!qfXLSzdT?O-uMvT0TsPI-vo+Af8edJk)5e_yWKFo<_ zo~Xwjw&w)e0NVg>_S1%NR}4QbLh1jBv7V(95PQYG`4=Veo<{(B0mL)oSS}Gwp-!|> zbSUCKYAJvcI}j=$1UULL{SEwAuSi+}9M8cjoIw8oO?-AQe(tHHP(EDZc$0!^_=;ttvwh>&p02%v!*;j6`$XYT&C7$qoBE4R z>}eghCKeqGIbQhM>n*MGEzwF_D!unyUsg-id5*UV6@Cv3=)$cJ)qKwP7lED7UwL&EzR(p2c~3Pv2(G zdspqttb<$o+-e7fCQ}@R&89<1dISCGzUkg2!!ZiiN$Dbo z!Y+Kn^EzzGh^&cu5 z&uiZGncZMEyp{LM@SS#3?-|PuXXu%FPsRP3PCQ0?`#f7jRSoTOq*h;Sh&bA9nsOzT zBqzJAgMQODv zv%s&bM;Zgu_}gYMzsTR`82WQ&<+{Jjch7LXNIvJtUd$OaTk67&0b%7 literal 0 HcmV?d00001 diff --git a/pic/map/SBO.png b/pic/map/SBO.png new file mode 100644 index 0000000000000000000000000000000000000000..75cb096b86ecff86be052118a53ccf965022d87c GIT binary patch literal 126 zcmeAS@N?(olHy`uVBq!ia0vp^!a%IV$P6UgcNDY(DYgKg5LY1m@|212*O?Q6EMrd> z$B>F!wudirGAM93I4 z000W>0fLJSS^xk6=}AOERCwCels#`1F%U)1*xuc@K@mdy6w=WkijW2=bhJo-D3K6J z2?&Wl40-YH*dB_Vmk)&`@1Qu*0tmd!z(V>n?K+j}Tn5)~&mJbqXLt z5Mm^y?KEF}#-Jz?0L*~x$hlG{f+B(lA<)_u4jsIwff;>IN~DAtA#9-;I-jssFIFqY z@jmkKl=BH-wIW7Bpz8>McyDgUJ*oku+c|_a(0F) zeecFD_T+r+uvSDiq$(jW&*bbkW1fi-v&%IuSd2?5{sQZW~hJp+X91M!w7xu4XjQN+6^32!z?Uu`a j*55${kaf-$#NEkivW{;GPk`4^kheWu{an^LB{Ts5cIz!Q literal 0 HcmV?d00001 diff --git a/pic/map/SBW.png b/pic/map/SBW.png new file mode 100644 index 0000000000000000000000000000000000000000..65a93bdb47d5cf0206ad43e2b156243926d9cd27 GIT binary patch literal 567 zcmV-70?7S|P) z000W>0fLJSS^xk6=}AOERCwCels#`1F%U)1*xuc@K@mdy6w=WkijW2=bhJo-D3K6J z2?&Wl40-YH*dB_Vmk)&`@1Qu*0tmd!z(V>n?K+j}Tn5)~&mJbqXLt z5Mm^y?KEF}#-Jz?0L*~x$hlG{f+B(lA<)_u4jsIwff;>IN~DAtA#9-;I-jssFIFqY z@jmkKl=BH-wIW7Bpz8>McyDgUJ*oku+c|_a(0F) zeecFD_T+r+uvSDiq$(jW&*bbkW1fi-v&%IuSd2?5{sQZW#4hs(ALzkz~c(H%IandEcmHC~keLa?EMfEzc#bFRVJRyQyBEl%i<*M&+tg z*P9fJ*Q$@TPI@lO_AFIrF}VN#)9-uJ?RmbiFo<4`5MJ3c>mkr744$rjF6*2UngC0p BPfGv* literal 0 HcmV?d00001 diff --git a/pic/map/SEE.png b/pic/map/SEE.png new file mode 100644 index 0000000000000000000000000000000000000000..16b35a5ffbaa61ab54f3f19289842019eb4eb723 GIT binary patch literal 198 zcmeAS@N?(olHy`uVBq!ia0vp^!a%IV!2~3YL`o+EDb50q$YKTtuGb*U*woD%1r)6C zba4!+xV87nLEZxj9IOE;eA{1$@!iqAv#7bkAXBPWY#&4UCp!`de?o_4!@p-dT~^i7cF$|>@jUr*=K|Xo!|w~4e{x677P@dnq$&CNs~t-- tTkFl4Eql$Du=e{h*ceTIrJ8ew&GD#7*{6-ZtATD{@O1TaS?83{1OUi^NE847 literal 0 HcmV?d00001 diff --git a/pic/map/SEF.png b/pic/map/SEF.png new file mode 100644 index 0000000000000000000000000000000000000000..95e73dca7c813f7a66a03d10eb8dc0edfc26bf41 GIT binary patch literal 203 zcmeAS@N?(olHy`uVBq!ia0vp^!a%IV!2~3YL`o+EDb50q$YKTtuGb*U*woD%1r)6H zba4!+xRq@4TJ^AllEJ-iEsc$hosBUET;{b}i!Hr)+HXhemrv@OT1z$xpLM!*yE9WU z&`R;viSO#OT3bq!O4W6pIr>|-Y!u$#YO-PSg4QeBCQERy%u=5yw&?YdsXIDLbq&Q9 yy->L~H-t+uNO#E%KO>zbC;Z$dB{f-gLqkJFamK&2>j9AC(^-kE*$HJGlI2^Awy4S>kWRCw5P+RtU? zmdT|LHu?oV<8^x**`%n({P(OmhwAznb^dJICeOFE)em8;J!ADE!OSsRn9=RWN6P>J literal 0 HcmV?d00001 diff --git a/pic/map/SEU.png b/pic/map/SEU.png new file mode 100644 index 0000000000000000000000000000000000000000..f14a2017e7799677d5e1b0ef74be59162fca4ef6 GIT binary patch literal 20854 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 Pzn}9DZYN7mT>RzVRv`;F literal 0 HcmV?d00001 diff --git a/pic/map/SEW.png b/pic/map/SEW.png new file mode 100644 index 0000000000000000000000000000000000000000..e08b411aaf960d12377b0063abad0fbb302d0deb GIT binary patch literal 603 zcmV-h0;K(kP) z000W>0fLJSS^xk74M{{nRCwB*l+9`tK@f$%s_yBzV+bN{eT%qrBQBx{g6`Z3DlP@l zEL8*_$+z$=d;u|cGBf?>V(KQuT$4MuSIy8pUsauRT7Evg$HH~=;}@XpyL3MwPd@F- zymMFg0lxfBX!l}<4sm`l@cCC#B29iV@bnM;K#YDF@ct`)pDs|vt^wU4&du8;)gFID z11T{KjH6!wY!48One)!7JU#&sK?UdV-tPo__?`+WA_`FJ&V5dqJfaa1L{Oy^-9d@h z#7K;&;yq0R5W)^jZLGtbZL?a@b^Zq6@d;-mz-onasM0j3;%@Y9cZ*yBt5cOy7zR?( zYt8+cl!=j?Nr_q!F|z8l%v|Yv#&MS31{(rhw_TO<_ktK121)@g?#BphsrJHa;)$DK z0;-5utE$xcpK2exW1L9Y8gq^iXj_{w{Oi68U<6Hgj|ipEG)9ZjO4#ncqc@aFO0+F) zOReNgtxS`dR+W_e6|cPoLBurho>C~qCNzgrgi@|D#p)@Av$HuC#K<_B`!+N4mw=Bx zP&c%ch>`Vrp5&#UZ%NtVZEB@fO0lkH$Ig0|VgpObsx{z?ZycCnj^Lb9CMLGiNsPp0>4=f{DYkFRWJdJ?k|w5&{PY^9l3d{IPBEo|F*TFz3im p6T@K1m?oSvG0!vYJmdKI;Vst08iE;)&Kwi literal 0 HcmV?d00001 diff --git a/pic/map/SFE.png b/pic/map/SFE.png new file mode 100644 index 0000000000000000000000000000000000000000..41b699b9f708a33767acb00e7a5c4ad422ab43be GIT binary patch literal 202 zcmeAS@N?(olHy`uVBq!ia0vp^!a%IV!2~3YL`o+EDb50q$YKTtuGb*U*woD%1r)6D zba4!+xRrcoqegF|%L764?#9N(&c>JnF7sN`_olo^Rlnm@^;7t!)2^`>N@)N9 literal 0 HcmV?d00001 diff --git a/pic/map/SFF.png b/pic/map/SFF.png new file mode 100644 index 0000000000000000000000000000000000000000..ea71c5cf4e6d099bc0029d7135c3dd4069fd8474 GIT binary patch literal 138 zcmeAS@N?(olHy`uVBq!ia0vp^!a%IV$P6UgcNDY(DYgKg5LY0*V^LbzDV{_i%ihz) zF{I*_?qNqx1_c2Yhs8IJXqjD9bKBJP;PCbzLQl@M-fiT3XIhYQ`VU*Ytwmwt^<|xF kKNRoV@$tc>b-u#&y63|KGye#20*zwuboFyt=akR{0C$-$ga7~l literal 0 HcmV?d00001 diff --git a/pic/map/SFN.png b/pic/map/SFN.png new file mode 100644 index 0000000000000000000000000000000000000000..5d1f6594c4512d61ccb7a38871f7642602976244 GIT binary patch literal 214 zcmeAS@N?(olHy`uVBq!ia0vp^!a%IV!2~3YL`o+EDb50q$YKTtuGb*U*woD%1r+S? zba4!+xV87vM!^OJ9@Yy7q-0o+tBBk&WL@eUXw~{S@`i?nisFoa_kXLbNWR}-p()OA z;lQj1J0h%e>pRayKnM(+wi;<%Rc^E4g>ERK%{x{1Nl L)z4*}Q$iB}mtIn! literal 0 HcmV?d00001 diff --git a/pic/map/SFO.png b/pic/map/SFO.png new file mode 100644 index 0000000000000000000000000000000000000000..495ce2bbde15825b6929f408a72b01b62b018829 GIT binary patch literal 910 zcmeAS@N?(olHy`uVBq!ia0vp^!a%IV!3-q3RtSA#U|?nl@Ck7Ra$lY@*|8`M$QT8q zAu!THK<9myI?&Iao-U3d6}Ng%oD^hG;9%Ks^k4TkDbaA2Pdr@A6D%E!u4@(V6*AY_ z7kT}l&BJKXJ9_{9b}m0<9eXa;l>Zs0{MGk6?7mN_&7T?0$g9nqlx78H=4u6{1- HoD!M<{zfs* literal 0 HcmV?d00001 diff --git a/pic/map/SFU.png b/pic/map/SFU.png new file mode 100644 index 0000000000000000000000000000000000000000..2dd92d7f3e9c22883b26aeadff7da5ec7598654b GIT binary patch literal 911 zcmeAS@N?(olHy`uVBq!ia0vp^!a%IV!3-q3RtSA#U|?nl@Ck7Ra{vGTzhhC_pZ_<3 z?7<9bYikFy^G4k^6hnZ$YpNU2-Cmw9jv*DddQY4bWKiH>*&w@n(f?z6jy1DRv}r!X zkis|N%+^ye>yPyQy024O;Qu46HZQzp`JvrfyLLAPoASTol)w6Vhg|w8`{;L}Q=dC& T&C5!g016FHS3j3^P6 z000W>0fLJSS^xk73`s;mRCwB*l)Y}%KoEt$nO(21i6Vq}6zFIWMM#4L9TgH1M3hJf zQUXHaAt-qYUJH@y*xo-1&rK9^Nv`i!D{I%^%$##pe*HXQ;W~cx15ox|x*w3^Px~_O z-Pe79FTWGoy_lgxoL>xl{*{zSlV1!x`$InvqhAJm_?q8m3skXdKzE39^L9zKM<3BZ zN(=+z=obLn0|aB{yt67#PXRo8~AtX6cLzXf=7%J~SeTHze3G!3e_TYcNzAy>faRHYP#ft2({ zbAKjfVkBo$qE9eSNfiDoTazHhCtVCSLNcpAV!9PQh>|*F#=nvz4V%R;%1nD zDk9dZDz*Nn+DGpgCsMY?oFfF<)+P-9y6+MgK@;91LMb$j(PFd`w!81aTS_G*+LpGZ zR&u6RrpZjJN=p8k*G@nXF%7(@6iTrP&EXWGlNWWAmzdFAI@Qg(QkTB(&%tgG3vv!12cz*4em4fx_4h~1n65rUZ}XCpTawbJ)j zUrq0c$z19jU3c-!nT@=sZ7ro>;_&PXs}+6EdQFUkz`?NYERw=-O7~b{PJ0q6tmDlbB|J^gOMS@Fr=XIgzcHL!DRj%_i-y1Ff482yM5~C! z?{2TJy=H;?#{=8W{4?^OaCutttOxqbSWnF^pD^W4@}Kgk1@=F01Q$8;1sp4BW?ClR zlN)qkg__`&$@#~9bG;e$J*&=pNOQ5;&*u5yajE{$oRX_mGo}X!G(2i#Fynbt>f1ka Rdm7Mb44$rjF6*2Ung9fZQXBvP literal 0 HcmV?d00001 diff --git a/pic/map/SNF.png b/pic/map/SNF.png new file mode 100644 index 0000000000000000000000000000000000000000..4ae88c4241d2420ebbf84d90907d63c7ca4f80df GIT binary patch literal 221 zcmeAS@N?(olHy`uVBq!ia0vp^!a%IV!2~3YL`o+EDb50q$YKTtuGb*U*woD%1r+S} zba4!+xV86^BcFqT0PBVIdQTb7J<{NNBqGGEE-18d`i<4B6SZ!=d@f}Tk- zEq{4z+kBB7iz^ahMeAp(pU6CI==(wZGSkzu)*fE(4F6f{UYK9=MsuekyGHUZN5;$C z$ILVnLMC(EI=TJvvTaKnrmO5tU&7nkG~bu4Lgl4>qTjA8+cVx891b5H7^K(Q*R8rN S^Zzu^X$+pOelF{r5}E)^=TgZ4 literal 0 HcmV?d00001 diff --git a/pic/map/SNN.png b/pic/map/SNN.png new file mode 100644 index 0000000000000000000000000000000000000000..d91b5825dad04c0d5c72da7d72985929949f1a84 GIT binary patch literal 198 zcmeAS@N?(olHy`uVBq!ia0vp^!a%IV!2~3YL`o+EDb50q$YKTtuGb*U*woD%1r)6C zba4!+xV87nLEZxj9IOE;TI>a@_#TAF9@uDOk}1_IwvVCwlbwgp)|8-YrRGXWPThtZ zrpcu4OSm#8-r$IgLwzxu>s)_nyXQ6cc%FQ@bAj!P;r9j2Ke?l33thM((vXzqQq4KT=iP4N$}su;C!iY`JYD@<);T3K0RYJEMEw8& literal 0 HcmV?d00001 diff --git a/pic/map/SNO.png b/pic/map/SNO.png new file mode 100644 index 0000000000000000000000000000000000000000..2bc962997743071352f04e3da454179519ac361b GIT binary patch literal 398 zcmV;90df9`P) z000W>0fLJSS^xk6KuJVFRCwB*m9b94Fc3g5sTGh=1uGLDK?Xj6uVMqCstAEV{0>7^ zLW$B6D0~7#RK!xXrio*p8B&$dgxJ@c99vJ%=Q}%2=lBSSadIC5fD80E*lPm-qhc39 zJWa(U^2tsvWHF$Tx8a*aoJ2mE{Njt%m_T-eSZQ4dX{1zG{chUPaBM5)V)cRolkT*|bF7hPw$>b+r s0Dw#U#W?%zon*#I87`g4jKfCp0|Hc_!13Ed0000007*qoM6N<$f>J%EaR2}S literal 0 HcmV?d00001 diff --git a/pic/map/SNU.png b/pic/map/SNU.png new file mode 100644 index 0000000000000000000000000000000000000000..5d741105f2366aad877515507ef7f88265d33605 GIT binary patch literal 218 zcmeAS@N?(olHy`uVBq!ia0vp^!a%IV!2~3YL`o+EDb50q$YKTtuGb*U*woD%1r+S@ zba4!+xV86^Azy<659p)aaAAno_xay7b!Y8zda~v3 z72eHEq)2J7vbl^1{g+*k*6 O7lWs(pUXO@geCwZbxuM6 literal 0 HcmV?d00001 diff --git a/pic/map/SNW.png b/pic/map/SNW.png new file mode 100644 index 0000000000000000000000000000000000000000..60e0e1dd507a10c218d1181f1c724ecd1e4867f8 GIT binary patch literal 601 zcmV-f0;c_mP) z000W>0fLJSS^xk73rR#lRCwB*l+9`tK@f$%s_yBzV+bNXiY^2Q>YUSZ^5g*v*O#Ba0A=5$`vH0Od0*z8 zySfkX)d`{9iy1n^`NhB&-${uy`NhD~KlB4J`enfTulaqtKoz?NbcZ-MZ&~A!vyu0-t)&!99G-t;wW9A?uZfWmI5?P3mF!x~DgCGB|J?yzopr0E`YJq5uE@ literal 0 HcmV?d00001 diff --git a/pic/map/SOE.png b/pic/map/SOE.png new file mode 100644 index 0000000000000000000000000000000000000000..d0e4f08824b0e0e3e03d24641ad3bfe25c09195a GIT binary patch literal 200 zcmeAS@N?(olHy`uVBq!ia0vp^!a%IV!2~3YL`o+EDb50q$YKTtuGb*U*woD%1r)6E zba4!+xV87vLEZ)f4%UEMs(UQj3OU@(tvaGB3=BoL{tamOeg5}_Wyy0rEDrAx3{-oY zBD+IBc}it-VD+?wj*|}cpLv~5YA?G#x$*6jbpP|*p$_t!`K)I6UbyAr5G>46`RRS} v;#|QG6OU9&#d>g+&F0#0+Go-94Tk>rpJ|$X>6-Hh=n4i;S3j3^P6srNoh0I^o zZ@zNS_F?qbov|P1a=l;m;vJXYRhu2^H6iOCSIyDF!x`!P(859Iq92Va=qGfhb&23ZDgTvc@2t7I1dbg4DooPYJ=|61owibnn*Ozs! k{ZPDb$Hxbk*7*w8>z)q}%={z72{ekq)78&qol`;+0KWM!Pyhe` literal 0 HcmV?d00001 diff --git a/pic/map/SOU.png b/pic/map/SOU.png new file mode 100644 index 0000000000000000000000000000000000000000..535d713a82f523f35f8f0ae42a0dad599e157926 GIT binary patch literal 911 zcmeAS@N?(olHy`uVBq!ia0vp^!a%IV!3-q3RtSA#U|?nl@Ck7Ra{vGT|MHZ{pZ_<3 zY~n#}Z7uPNM^%o7z~Bsl_tz^~fiCm%ba4!+xYc{&q#%O=2g?T8=mr1d_8x0yooLg1 zh#`ejH^$xl8Q})sCLf^j^ UpP z000W>0fLJSS^xk73rR#lRCwB*l)Y}%KoEt$nO(21i6Vq3cn~5Q8blFjkf5VQ0z`>~ zASECq9uDy$l!#o%_Wn_LZlaJ&a(%a2S-bvb=A5(g>&Fob*S!Zn0cGE%`vH0SX&~A!vyu0-t)&!99G-n)wW9A?uZfWmI5?P3m z000W>0fLJSS^xk7I!Q!9RCwCelsj$|K@>&Lt6$Ibbl`1~up$y9Boh!IB3KCm0s=(j zwOH~;)6-qQM^Md}0ekFm##IHC+&Z^zJ(bAI*Lcrv$MrQi)Au?IbR8fmku#+Lq{KLq zGoTkA0Y?aGj5voe0JV}cB3P^5wsa+?fEVi~9JZH9BNeK~hCPr%A0|AFI)QT|- z!?JJpaZcB3yl25T{0Bc#T@E$+}RZ3x+B+mNf{BI{Ip-M`Wf-#aan~k=prO0l_?XCX& zz&~=VR%)%pxb!~H7$Ys@I5LjZ!hLc&3>c%{FC(H#DO#(vAhqblr~93RuoPe|U57Dv zFYSh^JS@j<2S|*Bz%XF#(oIST4*>xumzN8$?{&T2S1KuS4A~}L74Hc_+QjBeN=(ze zl^%4`uk;TmpeoZuO6nZn-|;j#*=~uElyFXJRh}xx z)fGSp7^C0bKG}$&6h!d8eRHQcokN6D`26N1r_-}DNon~_PGk1H_G|s|{&Xi`EYH!4 iSI@Fx z000W>0fLJSS^xk8gh@m}RCwA|mCddbM-YX->aO{*uThBd9+48rDvE>v5f%a6D4V=a zo(ct!Sh2c!i>#6O^LVEJDvK`LO3RBG+cl@^oKt5+UjD@}a60kn6Q!`<+u^`80g^MN zP%A*rEDNOoc6SFT<7gp>Dj@*0Mk$C8qYXoU1g){Il2WhiM@b10)|FB)BPB5-MyAR3 zdtwAIqcvK)0P_5avTb6<=|ruVQHo>cEMVj4ZJ%59^X+$P(pqXF?RE@9e~OGF>*|2x4v8w438%@10TG#J141B1Lg<(_ z4!nL1aQl){C`qj~%tV#eq*fEL5K#5bMVz6|Jn;1k%Sz5FU9N2dh>>|_7yv{tqgK{c z(q@0Z26*^ApT3?|$r&?prdC3bQn3*zMdKwK9&%JhN@o%JE3f0Hx5H zUjyMRZ&zM~d1kj$ySb6>gkAvDdZqN)Q%)PeJUiep^y!p&CIrTj7%c>;m1SW&Yq;A} z4M5dvTId!1{S60@QoK2N??;KE+RIW?Y7qyQHn5i6(q(siBN^36u z&p)vxO7%fvWE`0$XBbdbK7IrkM?$bSZyYc~I8)LZ!{BH=mV7^J?Tq)B19DP8lStK$B6^$OtO0}!801Xbs+Gt`$;gx1vV-I2k^3<>!*`1TK_{mt0e*` z`@QAF+qVFZA7N*-?)&4B5dOEQmn{Pb(Z9O)jYnQj-G1iT^=!=vD}~mSW$_7rzXiF5 zMkh99?&)$kExp)Z1=-b#&w~?yHjVciNw*b6&fevgN$0Mhczc0>t zdv&k-xt{0j?1ex|tShzpD=0=UzU;IrF?Lt{2Z#l5Ut>Jw3;+NC07*qoM6N<$g8KW- Aa{vGU literal 0 HcmV?d00001 diff --git a/pic/map/SPW2.png b/pic/map/SPW2.png new file mode 100644 index 0000000000000000000000000000000000000000..8be1e558468d8692592391c1130a2ae834256f71 GIT binary patch literal 597 zcmV-b0;>IqP) z000W>0fLJSS^xk72T4RhRCwB*l)Y}$Koo_)duKde6GaH|DA3U$ia-N`jur_JB?v)E zKuEN_3vY(VI=1JJ!gn_cS(5cmHL_;>-FweDBOmz1!u6A9fO6>4!+<>bd?@qIT|ET& z@&}`NhEJ-$;ox`NhDqKlB4J`enfTulRkoKoz?NbjLV1ZN%*sg8oEG4VffG@s-*v&Z*A(&}$HgeNYD}8_Y)%2d2 z%%#rJb=zmoY~(#{Ybga2ho@gzt>}B!Yhok>j*jLN=E3=6+u}VbA+ll4k)I}p!ICje jIA>yRGwnUj&93+h&CdBYJax|n00000NkvXXu0mjfsFMo- literal 0 HcmV?d00001 diff --git a/pic/map/ST.gif b/pic/map/ST.gif new file mode 100644 index 0000000000000000000000000000000000000000..61d6437a6811db5f6588259671bf018d56a02442 GIT binary patch literal 412 zcmZ?wbhEHb6lPFj_{hlcpMl{&7%(s}DE?$&WME)o&;ha;K=KSs|E6dJE^_Gt1I(O8 m21TfLCPpWi?My5PX9Pgp19XN0&7F}4@-q$Gfju;}7_0%~>~%!| literal 0 HcmV?d00001 diff --git a/pic/map/SUB.png b/pic/map/SUB.png new file mode 100644 index 0000000000000000000000000000000000000000..0ec9249e0c298a18d1402a4fc4ba46389d0d176c GIT binary patch literal 884 zcmeAS@N?(olHy`uVBq!ia0vp^!a%IV!3-q3RtSA#U|?nl@Ck7Ra{vGT|L6ZrAcJ^N zTU$%K;!%~OAuwn|pz_Xwk3h%id%8G=RNU%4v5=90f#ZNe-iQCmZ=>9f#Aqy^TXrk+ h`FtP&V*Lbj#dY6b5(yTm%yeXJ`-=56nS#_`+=$hj3w*)KBk=7v~Co rn0lnzD%OKrZ#G-ONu5>GKN$LVtTHfT**C=w=mG{$S3j3^P6EaktajW;lNnQp84weJHD-Qp={iUl*o9VNR z2%AE2L(00)XH}|sAvK%VHCG>|1JP7~* literal 0 HcmV?d00001 diff --git a/pic/map/SUN.png b/pic/map/SUN.png new file mode 100644 index 0000000000000000000000000000000000000000..0234cf928d0be9342bd46bafbbcdc3a77489ca34 GIT binary patch literal 207 zcmeAS@N?(olHy`uVBq!ia0vp^!a%IV!2~3YL`o+EDb50q$YKTtuGb*U*woD%1r%)b zba4!+xV87vM!^FL9IOE)yyp)U3vnOcl=M*~Q^=HyW8wer`xa!cWh@pDWU%R2w&X!- z!r6 zG3`v4|L4~omB}3YCViRbCH<)B_%a3?BiYwNR?k@f*XtIEH$O}TI)=g1)z4*}Q$iB} DUi(ZK literal 0 HcmV?d00001 diff --git a/pic/map/SUO.png b/pic/map/SUO.png new file mode 100644 index 0000000000000000000000000000000000000000..bf06d1c515a23eb5631232bc1ba45a9cec72ef99 GIT binary patch literal 912 zcmeAS@N?(olHy`uVBq!ia0vp^!a%IV!3-q3RtSA#U|?nl@Ck7Ra{vGT|L6bBm#0jC zYK$-mQ;ZkAk+o_9+vSa6eh zL6WnUnY>ue-~ZcVk6riMsvvtHesbCGGjDs9O%1o6c~T%8EO}(vVx~_1f47XJixTq0 hcTAj`7FMg{vd$@?2>{GFLKy%6 literal 0 HcmV?d00001 diff --git a/pic/map/SUW.png b/pic/map/SUW.png new file mode 100644 index 0000000000000000000000000000000000000000..2f128a8eff6ec18efcf7a070704f9d03f34bfbbf GIT binary patch literal 596 zcmV-a0;~OrP) z000W>0fLJSS^xk721!IgRCwB*ls#|MKoEwXnO(2XL=izFIWMW8`~jur_bN+blS zB0wkce-Syy_I^=#E>XyloNud@wd-eQ-uGQOKR;*TTCdlDa_G{-fV}#4DD%-{Jp}mf z7ok0f89K!I#lSZ|Nr^Q1#lVX{^aC;aWx%KJ`F*iK6}tv>$2d1{msET56%C}sFffjO z0kAznFlNqstMc*;Km-+>!+XCM@cCydq=+a$t$X)5W%7tdL=ZuhQgja`J`f`@qKfx4 z4L}HcFtxD`bGFTDMc4UzfG1~MjsU9_&Y?=vpo+WKx7`DB1*}e0N?{mCN$)iGcTy%s zawa8eMa0OecQSLO?-|EgdK+vAblq-MuHFk`WEdy~xV|4Fu%p^*uZbsahY6@6Vy&uD z>wl_!_K9&KWoyhiLZEGJ!tk&Au7MFW;XNXhLem&6Mk`^r`<{HHR8pdCXmRIE^gWvmF%kktNAn5u;QX;|@t%|r*)r$IPZPsn$(Sab iGcm6+?LE%TuJ{Ww&jkgc29rqu0000 z000W>0fLJSS^xk7I!Q!9RCwCelsj$|K@>&Lt6$Ibbl`1~up$y9Boh!IB3KCm0s=(j zwOH~;)6-qQM^Md}0ekFm##IHC+&Z^zJ(bAI*Lcrv$MrQi)Au?IbR8fmku#+Lq{KLq zGoTkA0Y?aGj5voe0JV}cB3P^5wsa+?fEVi~9JZH9BNeK~hCPr%A0|AFI)QT|- z!?JJpaZcB3yl25T{0Bc#T@E$+}RZ3x+B+mNf{BI{Ip-M`Wf-#aan~k=prO0l_?XCX& zz&~=VR%)%pxb!~H7$Ys@I5LjZ!hLc&3>c%{FC(H#DO#(vAhqblr~93RuoPe|U57Dv zFYSh^JS@j<2S|*Bz%XF#(oIST4*>xumzN8$?{&T2S1KuS4A~}L74Hc_+QjBeN=(ze zl^%4`uk;TmpeoZuO6nZn-|;j#*=~uElyFXJRh}xx z)fGSp7^C0bKG}$&6h!d8eRHQcokN6D`26N1r_-}DNon~_PGk1H_G|s|{&Xi`EYH!4 iSI@Fx z000W>0fLJSS^xk7P)S5VRCwB*l)H`;F%U&hmF@1C-U;>t_#y)S2?+@T0z?E~f`EVk z5v}+XBp#ZcZoi7aW?;0hS*|*8(B)Hg>&hZeo)Q9w13!L{Gt*?d9peZ{O5{u_04Xug z+_&zb#RQbL5BiIG~5K)|C) zt*Elw^>drYd)saaq1__Gz_Oe$&C> zBBqM>y>pT7P;>r-+19nL0M4=55CVV*W|YFRNL=mx2@vq4gc&JO3aXMb7Z=uAEkzCo ze*Lm9uem1AW@FAtjNSKjMO9jp^UOR`OZ)X-AmDAcL)Aj)5iz3_t5sSfwb<3$>t#KC z-2mqpM^p(x+Jt7@F3;frNQ?{vyB*GTZ&E_I4G4Jo_N@b_$+p|0rIHeNAzR|j2!Uac zme`z0iDhY)-U#g8vaXcEeosmOIa6yt-@&wt3u#Gc1wbixSbEA-Wf*YIRHYQ=nYD1A zJlOnw20o3tudFJ_{6LzNj{K z000W>0fLJSS^xk7Pf0{URCwB*lsS$RK@de>L}pfX*R(Mw;~3ln2?-1ggas~_U^6ff z)|>^2MO|H$TVQ0;(3-7>uQJl8$QSYBD@7hXAp{Nwe*7S3rpb0Y#u1Q|$eB_AQevLT z8L+F@fM*y?RlG+PpjL851m`S-b_KPvED~d@Z1Tj22+Kmwm=U9x;T+>=(}Z&XX4Fcp zN8tOnk3H)uW*iQbf*Cn?W=aA!4883?t^Q@&I7%tKtbGlhGyA=yga|nkBefoZfJc>D zQDwL5=QfY`w%rm!yG4e9WjSHWal&!55D<~g#sF2EL$xt&2z-2Y1Onb_#Z0`XRw>0q zOcn2Y=OW#q=KKk>t!rHYoMW>g1OO4tD1~K_xY~ykAmB*}Gg6`yR3&FFF08d$iX0C7 z`ek2VaZR4h#+;KFyYK6YsdCJ zu{o0x%hD{p5!k(DT`7hAo|FJ`rq+JGgJ~BR(vr{$fKu+T^pvT}FyNf2N-4}UYvDe5 zytlRwGej&#S(kf(fc97)myt91ejwogz7#1*t*q=C%=1Gh>`eLjlmC)%_Udn%^S|^Py5W=15_Y^d00000NkvXXu0mjf DdFm}C literal 0 HcmV?d00001 diff --git a/pic/map/SWN.png b/pic/map/SWN.png new file mode 100644 index 0000000000000000000000000000000000000000..6bd13135aaa4d9ebb3236470cb4dbd6ec7eb760b GIT binary patch literal 669 zcmV;O0%HA%P) z000W>0fLJSS^xk7Pf0{URCwB*l)H`;F%U&hmF@1C-U;?|_yA)52?+rK0V0AgK|nx& zi1u5McxZaM{VD>RfziHZx$3|{mrvELD~mjNN(dYd{P;o6Oq1<)j3Xc^ku#+Lq{KXv zGhkP50nad)s(6noK&|AA2+mmu?FwpTStQ0*+2n~45tfCVF(XDX!#T#$rU~Z&%&3)G zkHF`TA9>bQ%s3n<1v7H)%#;Ld7<$`(TK&tkagZM!9ec8d%H%W}e$~jX5VVcHh?(RcTGmGxJO>?bm;SfVbTaRSTg<#Eep`R%wmYVps33m-X~@ z1Ds?Y>77`1cpIc zVsj=XmZe#GBd~kRx>5@JJt+a?Os)NV2h%Ptq$Qyh0Hxev=_yl{VZb?4l~R~z*1~=A zcyDbVW{6mfvM%=m0qwCqE+c31{XoF~eJN6sT3Oe-E&ZnwFq35=CG(!ouQ*R$_IqL^ zCA^nf?WSH!fPcP3b1C&w_A%ynKoiD|EL@0&#&&~$|-YzdCrT&^cj5$p< zZSBkJ2LS;EP{+gNndgU2*qQS4C;uhk?A6~i=YQ!pvk-?eweGu#00000NkvXXu0mjf D?cpYE literal 0 HcmV?d00001 diff --git a/pic/map/SWO.png b/pic/map/SWO.png new file mode 100644 index 0000000000000000000000000000000000000000..4bb8506df5105a941d5aaddde3dd8ec3ea781049 GIT binary patch literal 670 zcmV;P0%84$P) z000W>0fLJSS^xk7P)S5VRCwB*l)H`;F%U&hmF@1C-U;?&_zwOF2?+uMLDVULSXQm`z!_eFQ)9PQQjiZ#(%i7oAIkVqON{Em%F;eRh2zXSf z6;*b-es1%4Z`&;)v|D5tSe6r}948z{3jqR?NhEYL!w< z#8mOVcP`Q$YR;c9+q%{jz&SP>LI4oKj8a$@iL1Rk0RoOK~-|*;=)?1rO4sH zuV42071!k1Y|J@{vHQNRs7h;co|$KAX}|sp1ibBbs9Fd;B4(6gwMuKG7Q1?Ly{xCN z8{iz{h$-!hR8rzDWJ|mmAutTm z5}PwAu`JEf8-d+h)|FD&?@0+DXKL-|JD7HHAuS2504U`SOHY}q3aTz(2?*{_@?@N)A)XKWvZRtOifSD`{DVg_te8GA0vfmRU zDdD};YBz=Z7UuWw0KeR@6+@OF7ADfQRnVa#c= zX=|TeJ_raXfI1#7&pbbL!p@YRKlv{SXRrRIIsZ$)0cgOMXQch6^Z)<=07*qoM6N<$ Eg2*K*+W-In literal 0 HcmV?d00001 diff --git a/pic/map/SWP.png b/pic/map/SWP.png new file mode 100644 index 0000000000000000000000000000000000000000..d06f8e5952117220a4ed6578848af0338249ad1a GIT binary patch literal 978 zcmV;@11 z000W>0fLJSS^xk8gh@m}RCwA|mCddbM-YX->aO{*uThBd9+48rDvE>v5f%a6D4V=a zo(ct!Sh2c!i>#6O^LVEJDvK`LO3RBG+cl@^oKt5+UjD@}a60kn6Q!`<+u^`80g^MN zP%A*rEDNOoc6SFT<7gp>Dj@*0Mk$C8qYXoU1g){Il2WhiM@b10)|FB)BPB5-MyAR3 zdtwAIqcvK)0P_5avTb6<=|ruVQHo>cEMVj4ZJ%59^X+$P(pqXF?RE@9e~OGF>*|2x4v8w438%@10TG#J141B1Lg<(_ z4!nL1aQl){C`qj~%tV#eq*fEL5K#5bMVz6|Jn;1k%Sz5FU9N2dh>>|_7yv{tqgK{c z(q@0Z26*^ApT3?|$r&?prdC3bQn3*zMdKwK9&%JhN@o%JE3f0Hx5H zUjyMRZ&zM~d1kj$ySb6>gkAvDdZqN)Q%)PeJUiep^y!p&CIrTj7%c>;m1SW&Yq;A} z4M5dvTId!1{S60@QoK2N??;KE+RIW?Y7qyQHn5i6(q(siBN^36u z&p)vxO7%fvWE`0$XBbdbK7IrkM?$bSZyYc~I8)LZ!{BH=mV7^J?Tq)B19DP8lStK$B6^$OtO0}!801Xbs+Gt`$;gx1vV-I2k^3<>!*`1TK_{mt0e*` z`@QAF+qVFZA7N*-?)&4B5dOEQmn{Pb(Z9O)jYnQj-G1iT^=!=vD}~mSW$_7rzXiF5 zMkh99?&)$kExp)Z1=-b#&w~?yHjVciNw*b6&fevgN$0Mhczc0>t zdv&k-xt{0j?1ex|tShzpD=0=UzU;IrF?Lt{2Z#l5Ut>Jw3;+NC07*qoM6N<$g8KW- Aa{vGU literal 0 HcmV?d00001 diff --git a/pic/map/SWP2.png b/pic/map/SWP2.png new file mode 100644 index 0000000000000000000000000000000000000000..4b7f93ba3229ff9a69f256e884e2fbbd0f25ed9a GIT binary patch literal 669 zcmV;O0%HA%P) z000W>0fLJSS^xk7Pf0{URCwB*ls#?~K@f$%s_vfI9dF>1aTkt&gaiQrB7$p>ARr(> zL_Uipu(h)@{Z|CtELi?q^E5#RQ~g!FdTNnpF9?CdfnUGKnQ5}!j&TGeC32<|fRvbL zat7?;J>VGzQx)$~1*nyr5y3eNpk;^zkDhfEGY$tz!Hk?cGbI5VhTis{R{t_>9Ho?A*1iVMnf+c;LWG=&ky?*Hz@tj7 zsIuGjbDPI|+inS=-6F%lvfN0q zOcn2Y=OW#q=KKw2Ti3b*ILBr~2mm6OQ3}f+2KC0HqW}2%$Z5r%Ul35lZ3H%hQ2?xASvJslO&qV@{Jz zTl@a@NkBjW)bVtA=J}};cBWii@m~^7Uj1Ej{+E6O)T4=Gjh`^W00000NkvXXu0mjf DGbk`` literal 0 HcmV?d00001 diff --git a/pic/map/SWU.png b/pic/map/SWU.png new file mode 100644 index 0000000000000000000000000000000000000000..185c9b8ffb24b27fd93b96cadd0c643ba8d7fa96 GIT binary patch literal 668 zcmV;N0%QG&P) z000W>0fLJSS^xk7PDw;TRCwB*l)G*eK@dexRd>(qjyK@T_#+2MNDvSpBKQ&n1O$l4 z--3jVc6O#;MbOP+%dfSsCg@zn7E{A!lNw)*}$`s8TDc z>~{U!=JDRPTS92J$S|-hH<)sqa2zcJL}aruKo#duZA=>iU*8;ofVWyP6Yr^2N-+^r z#rxj5NO!0?e}mc9wXOipvDpv;fCy%k!m>zQ?aK`y;7JKHQlb=8C1=jgthHK-91i^X zV?RG|OPvbUDZMQ?!Lg*1OqZF%ES|hdC#i!e4J$>B( z=NLy+2|?O~X525&;Q&aC3`$wVUU*C zoJomgX_npz?B24jl)`>bN&q=iYd=50w6im5NoWN?DGykBlc~xu;GC&SDa z000W>0fLJSS^xk8gh@m}RCwA|mCddbM-YX->aO{*uThBd9+48rDvE>v5f%a6D4V=a zo(ct!Sh2c!i>#6O^LVEJDvK`LO3RBG+cl@^oKt5+UjD@}a60kn6Q!`<+u^`80g^MN zP%A*rEDNOoc6SFT<7gp>Dj@*0Mk$C8qYXoU1g){Il2WhiM@b10)|FB)BPB5-MyAR3 zdtwAIqcvK)0P_5avTb6<=|ruVQHo>cEMVj4ZJ%59^X+$P(pqXF?RE@9e~OGF>*|2x4v8w438%@10TG#J141B1Lg<(_ z4!nL1aQl){C`qj~%tV#eq*fEL5K#5bMVz6|Jn;1k%Sz5FU9N2dh>>|_7yv{tqgK{c z(q@0Z26*^ApT3?|$r&?prdC3bQn3*zMdKwK9&%JhN@o%JE3f0Hx5H zUjyMRZ&zM~d1kj$ySb6>gkAvDdZqN)Q%)PeJUiep^y!p&CIrTj7%c>;m1SW&Yq;A} z4M5dvTId!1{S60@QoK2N??;KE+RIW?Y7qyQHn5i6(q(siBN^36u z&p)vxO7%fvWE`0$XBbdbK7IrkM?$bSZyYc~I8)LZ!{BH=mV7^J?Tq)B19DP8lStK$B6^$OtO0}!801Xbs+Gt`$;gx1vV-I2k^3<>!*`1TK_{mt0e*` z`@QAF+qVFZA7N*-?)&4B5dOEQmn{Pb(Z9O)jYnQj-G1iT^=!=vD}~mSW$_7rzXiF5 zMkh99?&)$kExp)Z1=-b#&w~?yHjVciNw*b6&fevgN$0Mhczc0>t zdv&k-xt{0j?1ex|tShzpD=0=UzU;IrF?Lt{2Z#l5Ut>Jw3;+NC07*qoM6N<$g8KW- Aa{vGU literal 0 HcmV?d00001 diff --git a/pic/map/Testmap.png b/pic/map/Testmap.png new file mode 100644 index 0000000000000000000000000000000000000000..d84b6c4e2723276f78e431cde710c011ef381050 GIT binary patch literal 9508 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'MFROM' => 0, + 'MSG_TAG' => 'END_OF_GAME'}); + + Util::log("*****************************\n" . + "*** End of the Game! ***\n" . + "*****************************",0); + + $self->{-db}->update_hash('GAME', + "GAME=$self->{-game}", + {'RUNNING' => 'N'}); + +} + +# just a wrapper +sub avatar_available{ + my ($self,$loc,$god) = @_; + $god = $self->{-player} unless defined $god; + return $self->{-context}->avatar_available($loc,$god,$self->{-class}); +} + +# just another wrapper +sub get_neighbours{ + my ($self,$loc) = @_; + $loc = $self->{-dbhash}->{'LOCATION'} unless defined $loc; + + my $map = HexTorus->new($self->{-context}->get_size()); + my $location = Location->from_string($loc); + my @neighbours = $map->neighbours($location); + return map {$_ = $_->to_string();} @neighbours; +} + +# FIGHT_EARTHLING and Pestilenz +sub casualties{ + my ($self,$victim,$death_count,$no_conquer) = @_; + $self->{-looser} = $victim unless defined $self->{-looser}; + my $other; + unless(defined $no_conquer){ + $other = ($victim != $self->{-winner}) ? $self->{-winner} : $self->{-looser}; + } + + Util::log("death_count for $victim: $death_count",1); + + $self->{-dead}->{$victim} = {'A' => 0, + 'H' => 0, + 'P' => 0, + 'K' => 0, + 'C' => 0}; # conquered arks + + return unless $death_count; + + my $dying = $::conf->{-DEFAULT_DYING}; + unless($self->{-looser} < 0){ + my $earthling = $self->{-db}->single_hash_select('EARTHLING', + "PLAYER=$self->{-looser} AND ". + "GAME=$self->{-game}"); + $dying = $earthling->{'DYING'}; + } + $dying .= 'A'; + my $big_dying = {'P' => 'PRIEST', + 'K' => 'WARRIOR', + 'H' => 'HERO', + 'A' => 'ARK'}; + + # print Dumper $dying; + + # rearrange mobiles in a hash + # TODO PERFORMANCE,DESIGN: we should have read $self->{-mobiles} + # as a hash from database earlier, should be better in all cases. + my %victims_mobiles = (); + for my $mob (@{$self->{-mobiles}}){ + my ($id,$type,$own,$count,$stat) = @$mob; + next unless $own == $victim; + $victims_mobiles{$id} = $mob; + } + + # print Dumper \%victims_mobiles; + + my ($row, $carry, $share, $conquered_arks) = (0,0,0,0); + my $to_kill = $death_count; + my @small_dying = split //,$dying; + while(int($to_kill) > 0 and %victims_mobiles){ + my $small_dying = $small_dying[$row]; + # for my $small_dying (split //,$dying){ + $carry += $death_count * $::conf->{-DEATH_SHARE_ROW}->[$row]; + $share = int($carry); + $carry -= $share; + $share = $to_kill if($share > $to_kill); + + Util::log("type: $small_dying, share: $share, carry: $carry, to_kill: $to_kill",2); + + while( my ($key,$value) = each %victims_mobiles){ + my ($id,$type,$own,$count,$stat) = @$value; + # next unless $own == $victim; + next unless $type eq $big_dying->{$small_dying}; + Util::log("id: $id, count: $count, share: $share, ". + "carry: $carry, to_kill: $to_kill",2); + + my $dead_men = Util::min($count,$share); + $self->{-dead}->{$victim}->{$small_dying} += $dead_men; + if($small_dying eq 'H'){ + # dead heros fights for gods in last battle + my ($god) = $self->{-context}->get_mobile_info($id,'ADORING'); + Util::log("adored god: $god",1); + my ($actual) = $self->{-db}->single_select("SELECT DEATH_HERO FROM GOD WHERE ". + "GAME=$self->{-game} AND ". + "PLAYER=$god"); + Util::log("HERO dying: adds $dead_men heros ". + "to last-battle-strength of $god",1); + $self->{-db}->update_hash('GOD', + "GAME=$self->{-game} AND PLAYER=$god", + {'DEATH_HERO' => $actual + $dead_men}); + }elsif($small_dying eq 'A' and $victim == $self->{-looser} + and not defined $no_conquer){ + # special case ark (can change owner) + my $random_value = rand($dead_men); + Util::log("random value of $dead_men: $random_value",1); + $conquered_arks = int($random_value+0.5); + # $dead_men -= $conquered_arks; + Util::log("ark in battle: $conquered_arks change owner to $other, ". + "$dead_men arks sinking or conquered.",1); + $self->{-dead}->{$victim}->{'C'} += $conquered_arks; + } + + if($count > $dead_men){ + my $new_count = $count - $dead_men; + $self->{-db}->update_hash('MOBILE', + "ID=$id", + {'COUNT' => $new_count}); + $victims_mobiles{$id}->[3] = $new_count; + Util::log("Mobile $id ($small_dying) looses $dead_men people ". + "and have now $new_count.",1); + $to_kill -= $dead_men; + last; + }else{ + $share -= $count; + $to_kill -= $count; + $self->{-db}->delete_from('MOBILE',"ID=$id"); + $self->{-db}->update_hash('MOBILE', + "MOVE_WITH=$id", + {'MOVE_WITH' => 0}); + Util::log("Mobile $id ($small_dying) with $dead_men people is deleted",1); + delete $victims_mobiles{$id}; + } + } + + $carry += $share; + $row = ($row + 1)%4; + } + + unless(defined $no_conquer){ + my $total_conquered_arks = $self->{-dead}->{$victim}->{'C'}; + if($total_conquered_arks){ + # now conquered arks are (re-)created + my $mob = {'ID' => $self->{-db}->find_first_free('MOBILE','ID'), + 'GAME' => $self->{-game}, + 'LOCATION' => $self->{-location}, + 'TYPE' => 'ARK', + 'OWNER' => $self->{-winner}, + 'COUNT' => $self->{-dead}->{$victim}->{'C'}, + 'AVAILABLE' => 'Y', + 'COMMAND_ID' => $self->{-id}, + }; + $self->{-mob} = $mob; + my %mobcopy = (%$mob); + $self->{-db}->insert_hash('MOBILE',\%mobcopy); + $self->unify_mobiles($mob,$self->{-location},$self->{-winner}); + Util::log("$total_conquered_arks conquered arks for $self->{-winner}.",1); + $self->{-dead}->{$victim}->{'A'} -= $total_conquered_arks; + } + } + + $self->change_priest_on_temple($self->{-location}); +} + +sub move_with{ + my ($self,$id,$target,$count) = @_; + + # read mobile + my $mobile = $self->{-db}->single_hash_select('MOBILE',"ID=$id"); + + # split mobile + $self->conditional_split_mobile($mobile,$count, + {'MOVE_WITH' => $target},1); + Util::log("$count mobiles from id $id now moves with mobile $target",1); + + # reread mobile, because split destroys it + $mobile = $self->{-db}->single_hash_select('MOBILE',"ID=$id"); + + # all mobiles which already move with this now move with the target + if($target != 0){ + my $mob = $self->{-context}->mobiles_available($mobile->{'LOCATION'}); + my $mobcount = $#{@$mob}+1; + for my $i (0..$mobcount-1){ + my ($oid,$otype,$oown,$oado,$ocnt,$ostat,$omove) = @{$mob->[$i]}; + next if($omove != $id); + $self->{-db}->update_hash('MOBILE',"ID=$oid", + {'MOVE_WITH' => $target}); + Util::log("therefor all mobiles from id $oid now moves with mobile $target",1); + } + } + + # unify + $self->unify_mobiles($mobile,$mobile->{'LOCATION'}); +} + +# this function is called, if an earthling leave an field and let it possible empty +sub empty_field{ + my ($self,$loc,$player) = @_; + $player = $self->{-player} unless defined $player; + my $db = $self->{-db}; + my $aym = $self->{-context}; + my $oim = $aym->own_in_mobile($loc,$player,1); + + my ($home,$ter,$occ,$temple) = + $aym->read_field('HOME,TERRAIN,OCCUPANT,TEMPLE',$loc); + $home=0 if $ter eq 'MOUNTAIN'; + + unless(@$oim){ + my $keep_owner = 0; + $keep_owner = 1 if $home==$occ and $ter eq 'CITY' and $::conf->{-HOMECITY_KEEP_OWNER}; + $keep_owner = 1 if exists $::conf->{-KEEP_OWNER}->{$ter}; + $keep_owner = 1 if $::conf->{-TEMPLE_KEEP_OWNER} and $temple eq 'Y'; + + if($keep_owner){ + Util::log("leaving occupant $occ in field $loc",1); + }else{ + Util::log("reset old occupant $home in field $loc.",1); + # delete all PRODUCE and PRAY-Commands if any + $self->{-db}->delete_from('COMMAND', + "(COMMAND=PRODUCE OR COMMAND=PRAY) AND ". + "LOCATION=$loc AND GAME=$self->{-game}"); + # delete all PRODUCE-EVENTS + $self->{-db}->delete_from('EVENT', + "(TAG=EVENT_PRODUCE_WARRIOR OR TAG=EVENT_PRODUCE_PRIEST)". + " AND LOCATION=$loc AND GAME=$self->{-game}"); + $db->update_hash('MAP', + "LOCATION=$loc AND GAME=$self->{-game}", + {'OCCUPANT' => $home}); + } + } + $self->change_priest_on_temple($loc); +} + +# this check, if there is still a priest on a temple +# and if there is a new priest on temple +sub change_priest_on_temple{ + my ($self,$loc) = @_; + my $aym = $self->{-context}; + + my ($home,$temple,$occ) = $aym->read_field('HOME,TEMPLE,OCCUPANT',$loc); + return unless $temple eq 'Y'; + + my $produce = $self->{-db}->count('COMMAND', + "LOCATION=$loc AND GAME=$self->{-game} AND ". + "COMMAND=PRODUCE"); + + my $priests = $self->{-db}->count('MOBILE', + "LOCATION=$loc AND GAME=$self->{-game} AND ". + "TYPE=PRIEST AND ADORING=$home AND ". + "AVAILABLE=Y"); + + Util::log("priests: $priests, produce: $produce",1); + + if($priests and not $produce){ + $aym->insert_command('PRODUCE', "ROLE=$occ", $loc); + } + + if(not $priests and $produce){ + Util::log("delete produce-command and event",1); + # delete all PRODUCE -Commands if any + $self->{-db}->delete_from('COMMAND', + "COMMAND=PRODUCE AND ". + "LOCATION=$loc AND GAME=$self->{-game}"); + # delete all PRODUCE-EVENTS + $self->{-db}->delete_from('EVENT', + "(TAG=EVENT_PRODUCE_PRIEST)". + " AND LOCATION=$loc AND GAME=$self->{-game}"); + } +} + +# do we fight? do we conquer? do we join? +# TODO: turn_around if no ark and terrain==water +# TODO: could happen if location is flooded during movement. +sub enter_field{ + my ($self,$loc,$ignore_friend) = @_; + $ignore_friend = 0 unless defined $ignore_friend; + + Util::log("enter_field($loc,$ignore_friend)",2); + + # print "LOC: $loc\n"; + my ($occ,$att,$temple,$home,$terrain) = + $self->{-context}->read_field('OCCUPANT,ATTACKER,TEMPLE,HOME,TERRAIN',$loc); + $self->{-occupant} = $occ; + + my $relation = $self->{-context}->get_relation($occ); + + $relation = 'FOE' if $ignore_friend; + + # if there is allready an ongoing fight + if($att){ + # do nothing if we are allready involved + if($self->{-player} == $occ or $self->{-player} == $att){ + + Util::log("join the ongoing fight in $loc",1); + delete $self->{-multimove}; + return; + }else{ + # turn around otherwise + Util::log("in $loc: There is allready a fight between $occ and $att ". + "... turn around.",1); + $self->turn_around($loc); + delete $self->{-multimove}; + return; + } + } + + if($relation eq 'FRIEND' or $relation eq 'ALLIED'){ + # a friend has allready occupied this place, just turn around. + Util::log("in $loc: $occ is a friend of $self->{-player} ... turn around.",1); + $self->turn_around($loc); + delete $self->{-multimove}; + return; + } + + if($self->is_new_earthling_fight($loc,$relation,$terrain)){ + Util::log("new fight between earthlings in $loc:". + " attacker $self->{-player}, defender $occ",1); + + # we are the attacker + $self->do_earthling_fight($loc); + delete $self->{-multimove}; + return; + } + + if($occ == $self->{-player}){ + # was already our field + Util::log("$loc is allready field of $occ.",2); + $self->unify_mobiles($self->{-mob},$loc) unless defined $self->{-multimove}; + }else{ + # we are the new occupant + $self->conquer($loc,$self->{-player}); + } + + $self->change_priest_on_temple($loc); +} + +# peoples without arks drown +sub drowning{ + my ($self,$loc) = @_; + + # dont drown on islands or land + my ($terrain) = $self->{-context}->read_field('TERRAIN',$loc); + return unless $terrain eq 'WATER'; + + # is there still an active ark? + my $arks = $self->{-context}->read_mobile('TYPE','ARK',$loc,1); + # print Dumper $arks; + my @aa = @$arks; + return if $#aa >= 0; + + # get active mobiles + my $mobs = $self->{-context}->read_mobile('ID,TYPE,COUNT,OWNER','',$loc,1); + + my ($id,$type,$count,$owner); + for my $mob (@$mobs){ + ($id,$type,$count,$owner) = @$mob; + + next if $type eq 'ARK' or $type eq 'PROPHET'; + + # drown mobile + $self->{-db}->delete_from('MOBILE',"ID=$id"); + Util::log("No ark: $count $type from $owner drowned in $loc.",1); + + $self->{-context} + ->send_message_to($owner, + {'MFROM' => 0, + 'MSG_TAG' => 'MSG_MOBILE_DRAWN', + 'ARG1' => $count, + 'ARG2' => $self->{-context}->mobile_string($type,$count), + 'ARG3' => $self->{-context}->charname($owner), + 'ARG4' => $loc}); + } + $self->empty_field($loc,$owner) if $owner; +} + +sub conquer{ + my ($self,$loc,$player) = @_; + + Util::log("$player conquers $loc.",1); + $self->{-db}->update_hash('MAP',"LOCATION=$loc AND GAME=$self->{-game}", + {'OCCUPANT' => $player}); + + # conquer existing arks + $self->{-db}->update_hash('MOBILE',"LOCATION=$loc AND GAME=$self->{-game} AND TYPE=ARK", + {'OWNER' => $player}); + + # insert new PRODUCE-command and delete existent one and PRODUCE-events + my ($terrain,$temple,$home) = $self->{-context}->read_field('TERRAIN,TEMPLE,HOME',$loc); + + if ((not $home and $terrain eq 'CITY')){ + $self->{-db}->delete_from('COMMAND', "COMMAND=PRODUCE AND LOCATION=$loc". + " AND GAME=$self->{-game}"); + $self->{-db}->delete_from('EVENT',"TAG=EVENT_PRODUCE_WARRIOR AND LOCATION=$loc ". + "AND GAME=$self->{-game}"); + $self->{-context}->insert_command('PRODUCE', "ROLE=$player", $loc); + } + + #if ($temple eq 'Y'){ + # PRAY at temples + # $self->{-db}->delete_from('COMMAND', "COMMAND=PRAY AND LOCATION=$loc". + #" AND GAME=$self->{-game}"); + # + # } +} + +sub enter_field_avatar{ + my ($self,$loc,$mob) = @_; + + Util::log("enter_field_avatar() in $loc",1); + # print Dumper $mob; + + # if we are in Aymargeddon, do nothing special + my ($terrain) = $self->{-context}->read_field('TERRAIN',$loc); + if($terrain eq 'AYMARGEDDON'){ + Util::log("enter_field_avatar(AYMARGEDDON): do nothing",1); + delete $self->{-multimove}; + return; + } + + # mob can be ID or hash + $mob = $self->{-db}->read_single_mobile($mob) unless ref($mob); + # print Dumper $mob; + # get all avatars allready here from me and other owners + my $avatars = $self->{-context}->read_mobile_condition('ID,OWNER,STATUS', + "LOCATION=$loc ". + "AND TYPE=AVATAR ". + "AND AVAILABLE=Y"); + # print Dumper $avatars; + + # restructure data + my $own_avatars_here = 0; + my $own_avatar_status = 'IGNORE'; + my %other_avatar_owner = (); + my %other_avatar_status = (); + for my $a (@$avatars){ + my ($id,$own,$stat) = @$a; + next if($id == $mob->{'ID'}); + # print "own: $own\n"; + if($own == $mob->{'OWNER'}){ + $own_avatars_here = $id; + $own_avatar_status = $stat; + }elsif(!defined $other_avatar_owner{$own}){ + $other_avatar_owner{$own} = 1; + $other_avatar_status{$own} = $stat; + Util::log("found other avatar-owner $own in $loc",1); + }else{ + Util::log("other avatar-owner $own allready found in $loc",1); + } + } + + # if we are there allready with other avatars: + if($own_avatars_here){ + # set STATUS of newcomer to the STATUS in the field + if ($own_avatar_status ne $mob->{'STATUS'}){ + $self->{-db}->update_hash('MOBILE', + "ID=$mob->{'ID'}", + {'STATUS' => $own_avatar_status}); + } + Util::log("enter_field_avatar():Avatars (ID:$mob->{'ID'}) ". + "have to join other avatars with status $own_avatar_status in $loc.",1); + $self->unify_mobiles($mob); + }else{ + # for each other avatar-owner + for my $other (keys %other_avatar_owner){ + my $oas = $other_avatar_status{$other}; + # read alliance to each other owner (and vice versa) + my $allianceA = $self->{-context} + ->simplyfied_single_relation($other,$mob->{'OWNER'}); + my $allianceB = $self->{-context} + ->simplyfied_single_relation($mob->{'OWNER'},$other); + # insert FIGHT-command, if necessary + if($self->is_avatar_fight($allianceA,$allianceB,$mob->{'STATUS'},$oas)){ + $self->{-context}->insert_command('FIGHT_GOD', + "A=$other, B=$mob->{'OWNER'}", + $loc); + Util::log("enter_field_avatar():Avatars from $mob->{'OWNER'} ". + "have to fight with $other in $loc.",1); + delete $self->{-multimove}; + } + } + } +} + +sub is_avatar_fight{ + my ($self,$allA,$allB,$statA,$statB) = @_; + + Util::log("is_avatar_fight(): ". + "allA: $allA, allB: $allB, statA: $statA, statB: $statB",1); + + return 0 unless $statA eq 'BLOCK' or $statB eq 'BLOCK'; + my $status = 'NEUTRAL'; + if(($allA eq 'FOE') or ($allB eq 'FOE')){ + $status = 'FOE'; + }elsif(($allA eq 'FRIEND') or ($allB eq 'FRIEND')){ + $status = 'FRIEND'; + } + + return 1 if ($status eq 'FOE'); + return 1 if ($status eq 'NEUTRAL') and $statA eq 'BLOCK' and $statB eq 'BLOCK'; + return 0; +} + +# unify identical mobiles +# $mob still exists after function. all other of same +# TYPE, MOVE_WITH, ADORING will be deleted. +sub unify_mobiles{ + my ($self,$mob,$location,$owner) = @_; + + # mob can be ID or hash + $mob = $self->{-db}->read_single_mobile($mob) unless ref($mob); + + $location = $mob->{'LOCATION'} unless defined $location; + $owner = $self->{-player} unless defined $owner; + + Util::log("unify_mobiles() in $location for mobile $mob->{'ID'} of $owner",1); + + return if $self->{-db}->count('COMMAND', + "MOBILE=$mob->{'ID'} AND ID != $self->{-dbhash}->{'ID'}"); + + my $type = $mob->{'TYPE'}; + + my $mobs = $self->{-context}->read_mobile('ID,COUNT,ADORING,OWNER,MOVE_WITH', + $type, + # $mob->{'LOCATION'}, + $location, + 1 + ); + + my $count = $mob->{'COUNT'}; + for my $m (@$mobs){ + my ($oid,$ocount,$oado,$oown,$omove) = @$m; + + next if $oown ne $owner; # and $type ne 'ARK'; + next if $oid eq $mob->{'ID'}; + if(Util::is_in($type,'PRIEST','PROPHET','HERO')){ + next if $oado ne $mob->{'ADORING'}; + } + + next if(defined $mob->{'MOVE_WITH'} and $mob->{'MOVE_WITH'} ne $omove); + + next if $self->{-db}->count('COMMAND',"MOBILE=$oid"); + + $count += $ocount; + + $self->{-db}->delete_from('MOBILE',"ID=$oid"); + + # set new MOVE_WITH, if deleted unit has some companions + $self->{-db}->update_hash('MOBILE', + "MOVE_WITH=$oid", + {'MOVE_WITH' => $mob->{'ID'}}); + + } + $self->{-db}->update_hash('MOBILE', + "ID=$mob->{'ID'}", + {'COUNT' => $count}) if $count != $mob->{'COUNT'}; + + # rekursion for every companion of $mob + my $companions = $self->{-context}->read_mobile_condition('ID,OWNER', + "LOCATION=$location ". + "AND MOVE_WITH=$mob->{'ID'}"); + for my $m (@$companions){ + my ($mid,$mown) = @$m; + # does it still exist? + my $comp = $self->{-db}->read_single_mobile($mid); + next unless defined $comp; + $self->unify_mobiles($comp,$location,$mown); + } +} + +# the move-command will be set up again in the oposite direction +sub turn_around{ + my ($self,$loc) = @_; + + # first we have to check, if we are here because of an MOVE-COMMAND + # or out of some other reason + if($self->{-dbhash}->{'COMMAND'} eq 'MOVE'){ + my $mob = $self->{-mob}; + my $dir = $self->{-args}->{'DIR'}; + my $rev = {'S' => 'N', + 'N' => 'S', + 'SW' => 'NE', + 'NE' => 'SW', + 'SE' => 'NW', + 'NW' => 'SE',}; + $dir = $rev->{uc($dir)}; + Util::log("we ($mob->{'ID'} in $loc) are friends ". + "and come from $dir. we turn around...",1); + $self->{-context}->insert_command('MOVE', + "DIR=$dir, MOBILE=$mob->{'ID'}, ". + "COUNT=$mob->{'COUNT'}, AUTO=1",$loc); + }else{ + # + } +} + +# do we start a fight here? +sub is_new_earthling_fight{ + my ($self,$location,$relation,$terrain) = @_; + my $mob = $self->{-mob}; + my $attacker = $self->{-player}; + my $occupant = $self->{-occupant}; + + # no fight on some neutral territories + return 0 unless $occupant or exists $::conf->{-FIGHTS_WITHOUT_OWNER}->{$terrain}; + + # no new fight, if allready one started + return 0 if $self->{-context}->earthling_fight($location); + + return 0 if $attacker == $occupant or + $relation eq 'FRIEND' or + $relation eq 'ALLIED'; + + my $qloc = $self->{-db}->quote($location); + $self->{-db}->update_hash('MAP',"GAME=$self->{-game} AND LOCATION=$qloc", + {'ATTACKER' => $attacker}); + +} + +# start a fight! +sub do_earthling_fight{ + my ($self,$loc) = @_; + + # write the fight command + + $self->{-context}->insert_command('FIGHT_EARTHLING', + "ATTACKER=$self->{-player}, ". + "DEFENDER=$self->{-occupant}", + $loc); +} + +# enough mana available? +sub test_mana{ + my ($self,$action,$factor,$god) = @_; + $factor = 1 unless defined $factor; + $god = $self->{-player} unless defined $god; + + my $mana = $self->{-context}->get_mana($god); + my $mana_needed = $::conf->{-MANA}->{"-$action"} * $factor; + + Util::log("$god needs $mana_needed mana from his $mana mana to do $action",1); + + # dirty workaround: we fake our identity. + my $player = $self->{-player}; + $self->{-player} = $god; + unless($self->test(sub{ $mana >= $mana_needed }, + 'MSG_NOT_ENOUGH_MANA', + $action, + $self->{-location} ? $self->{-location} : 'GLOBAL')){ + $self->{-player} = $player; + return 0; + } + $self->{-player} = $player; + + $self->{-mana} = $mana - $mana_needed; + $self->{-mana_paid} = $mana_needed; + return 1; +} + +sub use_mana{ + my ($self,$god) = @_; + $god = $self->{-player} unless defined $god; + $self->{-db}->update_hash('GOD',"PLAYER=$god AND GAME=$self->{-game}", + {'MANA' => $self->{-mana}}); + Util::log("$god pays $self->{-mana_paid} mana ". + "and has still $self->{-mana} left.",1); + #TODO?: Message +} + +# this returns the used mana and did not test before +sub instant_use_mana{ + my ($self,$mana,$god) = @_; + $god = $self->{-player} unless defined $god; + + my $mana_available = $self->{-context}->get_mana($god); + + if ($mana_available < $mana) + { + # not enough mana + $mana = $mana_available; + } + my $newmana = $mana_available - $mana; + + $self->{-db}->update_hash( + 'GOD', + "PLAYER=$god AND GAME=$self->{-game}", + {'MANA' => $newmana} + ); + Util::log("$god pays $mana mana ". + "and has still $newmana left.",1); + return $mana; +} + +# +# End of AymCommand +# +#################################################### + +########################################################## +# +# Use this template to generate new commands +# + +package AymCommandTemplate; +@AymCommandTemplate::ISA = qw(AymCommand); + +# ... arguments in $self->{-args} +# ... player in $self->{-player} +# ... game in $self->{-game} +# ... context object in $self->{-context} +# ... database object in $self->{-db} +# ... basic duration from Config in $self->{-duration} +# ... command from database in $self->{-dbhash} + +# this is called to see if the command is executable. +# it should be called from first_phase() and from second_phase(). +# it is not called from the scheduler +sub is_valid { + my $self = shift; + my @required_arguments = (); + return 0 unless $self->Command::is_valid(@required_arguments); + + # ... here your code + + return 1; +} + +# this is called from Scheduler, when he see the command the +# first time, some commands execute here immidiatly. +# AymCommand +sub first_phase{ + my $self = shift; + + return 0 unless $self->is_valid(); + + # ... here your code + + return 1; +} + +# this is called from scheduler when the command will be executed. +# AymCommand +sub second_phase{ + my $self = shift; + + return 0 unless $self->is_valid(); + + # ... here your code + + return 1; +} + +# +# End of template +# +#################################################### + +# +# CH_STATUS: Change the player alliance status +# + +package CH_STATUS; +@CH_STATUS::ISA = qw(AymCommand); + +sub is_valid{ + my ($self) = @_; + + my @required_arguments = ('OTHER','STATUS'); + return 0 unless $self->Command::is_valid(@required_arguments); + + # exist OTHER still in game? + if($self->{-args}->{'OTHER'} != -1){ + my $role = $self->{-context}->read_role($self->{-args}->{'OTHER'},'PLAYER'); + return 0 unless $self->test(sub{$role}, + 'MSG_NO_SUCH_ROLE'); + } + + # is STATUS valid? + my $status = $self->{-args}->{'STATUS'}; + return 0 unless $self->test(sub{Util::is_in($status, + 'FRIEND', + 'FOE', + 'NEUTRAL', + 'BETRAY', + 'ALLIED')}, + 'MSG_STATUS_INVALID', + $status); + return 1; +} + +# CH_STATUS +sub first_phase{ + my $self = shift; + return 0 unless $self->is_valid(); + + my $tag = 'MSG_CH_STATUS'; + my $other = $self->{-args}->{'OTHER'}; + my $status = $self->{-args}->{'STATUS'}; + # ($status,$tag) = $self->{-db}->quote_all($status,$tag); + $self->{-db}->insert_or_update_hash( + 'ALLIANCE', + "PLAYER=$self->{-player} ". + "AND OTHER=$other ". + "AND GAME=$self->{-game}", + {'GAME' => $self->{-game}, + 'PLAYER' => $self->{-player}, + 'OTHER' => $other, + 'STATUS' => $status} + ); + + #$self->{-context}->send_message_to_me({'MFROM' => 0, + # 'MSG_TAG' => $tag, + # 'ARG1' => $self->{-context}->charname($other), + # 'ARG2' => $status, + # }); + + $self->setDuration(0); + return 0; +}; + +sub second_phase{ + my $self = shift; + Util::log("Warning: We should not reach phase 2 with command CH_STATUS",0); + return 0; +}; + +# +# END of CH_STATUS +# +################################################################ + +################################################################ +# +# MOVE: Move mobiles +# + +package MOVE; +use Data::Dumper; +# use FROGS::HexTorus; +@MOVE::ISA = qw(AymCommand); + +sub is_valid { + my $self = shift; + + my $db = $self->{-db}; + my $args = $self->{-args}; + my $aym = $self->{-context}; + my $phase = $self->{-phase}; + + my @required_arguments = ('MOBILE','COUNT','DIR'); + return 0 unless $self->Command::is_valid(@required_arguments); + + my $mob_id = $args->{'MOBILE'}; + my $count = $args->{'COUNT'}; + + return 0 unless $count =~ /^\s*\d+\s*$/; + + return 0 unless $self->validate_mobile($self->{-args}->{'MOBILE'}); + my $mob = $self->{-mob}; + + my ($owner,$loc_string,$type) = ($mob->{'OWNER'}, + $mob->{'LOCATION'}, + $mob->{'TYPE'}, + ); + # print "LOCATION: $loc_string\n"; + $self->{-loc_string} = $loc_string; + + # enough mobiles avaiable? + if ($phase == 1) { + return 0 unless $self->test(sub {$count <= $mob->{'COUNT'} and + $mob->{'AVAILABLE'} eq 'Y'}, + 'MSG_NOT_ENOUGH_MOBILES', + 'MOVE', + $count, + $loc_string); + } + # get target field + + my ($size) = $db->read_game($self->{-game},'SIZE'); + $self->{-size} = $size; + my $map = HexTorus->new($size); + $self->{-map} = $map; + + my $loc = Location->from_string($loc_string); + $self->{-loc} = $loc; + + # MULTIMOVE: extract first direction and rest of string + my $direction = $args->{'DIR'}; + $direction =~ s/^\s*(\S*)\s*$/$1/; # removing leading/trailing whitespace + $direction =~ /^(\S*)\s+(.*)$/; # split up first direction + my ($first_direction,$other_directions) = ($1,$2); + if($other_directions){ + $self->{-multimove} = $other_directions; + $direction = $first_direction; + Util::log("MULTIMOVE: now $first_direction, later $other_directions",1); + } + + my $target = $map->get_neighbour($loc,$direction); + + # target correct? + return 0 unless $self->test(sub{$target}, + 'MSG_MOVE_NO_TARGET', + $loc_string, + $args->{'DIR'}); + $self->{-target} = $target; + my $target_string = $target->to_string(); + + # get terrain of loc and target + my ($terrain,$attacker,$god_attacker,$plague) = + $aym->read_field('TERRAIN,ATTACKER,GOD_ATTACKER,PLAGUE',$loc_string); + $plague = '' unless defined $plague; + my ($target_terrain,$target_occupant) = + $aym->read_field('TERRAIN,OCCUPANT',$target_string); + $self->{-target_occupant} = $target_occupant; + + # you can only MOVE_WITH on water, except you are an ARK + return 0 unless $self->test(sub{Util::is_in($target_terrain, + 'PLAIN', + 'CITY', + 'MOUNTAIN', + 'AYMARGEDDON', + 'POLE') or $type eq 'ARK'}, + 'MSG_CANT_SWIM', + 'CMD_MOVE', + $loc_string, + "MOBILE_$type\_PL"); + # $self->{-context}->mobile_string($type,2)); + + + + # role specific tests + my $role = $self->{-role}; + + # return 0 unless $self->validate_role('GOD','EARTHLING'); + #if ($mob->{'TYPE'} eq 'ARK') { + # Util::log("Impossible Situation: ARK has got a MOVE-Command",1); + if ($role eq 'GOD') { + # gods can only move avatars + return 0 unless $self->test(sub{$type eq 'AVATAR'}, + 'MSG_GOD_CANT_MOVE_TYPE', + $self->{-context}->mobile_string($type,2)); + + # dont move if $loc is Aymargeddon + return 0 unless $self->test(sub{$terrain ne 'AYMARGEDDON'}, + 'MSG_CANT_LEAVE_AYMARGEDDON', + $loc_string); + + + # dont move, if ongoing FIGHT_GOD + if($phase == 1){ + return 0 unless $self->test(sub{not $god_attacker}, + 'MSG_CANT_MOVE_ATTACKED', + $mob->{'LOCATION'}, + $self->{-context}->mobile_string($type,2)); + } + + # if targetfield water/isle, than dont move directly (only MOVE_WITH) + #if ($phase == 1 and (Util::is_in($target_terrain,'WATER','ISLE') # or + # Util::is_in($terrain,'WATER','ISLE')) + # )) { + + # TODO: Errormessage + + # return 0; + + #} + + # avatars can go on land, if ark available + #if ($phase==1 and Util::is_in($terrain,'ISLE','WATER') and + # not Util::is_in($target_terrain,'ISLE','WATER')) { + # my $arks = $self->{-context}->read_mobile('ID','ARK',$loc_string,1); + # my $ark_count = $#{@$arks}+1; + # return 0 unless $self->test(sub{$ark_count}, + # 'MSG_CANT_SWIM', + # 'MOVE', + # $loc_string, + # $self->{-context}->mobile_string($type,2)); + #} + } elsif ($role eq 'EARTHLING' or $owner == -1) { + # read companions + $self->{-companions} = $self->{-context}-> + read_mobile_condition('TYPE,COUNT,OWNER,ID', + "MOVE_WITH=$self->{-args}->{'MOBILE'}"); + + # do not move if field is attacked or tuberculosis + if ($phase == 1) { + return 0 unless $self->test(sub{not $attacker}, + 'MSG_CANT_MOVE_ATTACKED', + $mob->{'LOCATION'}, + $self->{-context}->mobile_string($type,2)); + return 0 unless $self->test(sub{ $plague !~ /TUBERCULOSIS/ + or exists $self->{-args}->{'AUTO'}}, + 'MSG_CANT_MOVE_PLAGUE', + $mob->{'LOCATION'}, + $self->{-context}->mobile_string($type,2), + 'Tuberculosis'); + } + # eartlings can only move this types + return 0 unless $self->test(sub{Util::is_in($type, + 'WARRIOR', + 'PRIEST', + 'HERO', + 'PROPHET', + 'ARK')}, + 'MSG_EARTHLING_CANT_MOVE_TYPE', + $self->{-context}->mobile_string($type,2)); + + # dont move if target field is Pole + return 0 unless $self->test(sub{$target_terrain ne 'AYMARGEDDON' and + $target_terrain ne 'POLE'}, + 'MSG_CANT_MOVE_TO_POLE', + 'MOVE', $target_string); + + # dont move ark from land to land + if($type eq 'ARK'){ + return 0 unless $self->test(sub{Util::is_in($terrain,'WATER','ISLE') or + Util::is_in($target_terrain,'WATER','ISLE')}, + 'MSG_CANT_MOVE_ARK', + 'MOVE', $target_string); + $self->{-active_ark} = $self->{-args}->{'MOBILE'}; + } + + # automatic ark-moving + # if ($type ne 'ARK' and $phase == 1 and + # (Util::is_in($target_terrain,'WATER','ISLE'))){ + # # or Util::is_in($terrain,'WATER','ISLE'))) { + # my $arks = $aym->read_mobile('ID,COUNT','ARK',$loc_string,1); + # # print Dumper $arks; + # my ($ark,$active); + # if (defined $arks->[0]) { + # ($ark,$active) = (@{$arks->[0]}); + # } else { + # ($ark,$active) = (0,0); + # } + # return 0 unless $self->test(sub {$active or $type eq 'PROPHET'}, + # 'MSG_CANT_SWIM', + # 'MOVE', + # $loc_string, + # $self->{-context}->mobile_string($type,2)); + # $self->{-active_ark} = $ark; + # Util::log("We take ark $ark with us.",1); + # } + + } else { + Util::log("impossible situation. I could not be $role",0); + return 0; + } + + # dont move without mana + if ($phase == 1) { + if ($role eq 'GOD') { + unless($self->test_mana('MOVE_AVATAR',$count)){ + $db->update_hash('MOBILE', + "ID=$mob_id", + { + 'AVAILABLE' => 'Y'}); + return 0; + } + } else { + # for all avatar-companions: pay or stay (if not on ark)! + if ($type ne 'ARK'){ + my $deleted = 0; + for my $comp (@{$self->{-companions}}) { + my ($ctype,$ccount,$cown,$cid) = @$comp; + next unless $ctype eq 'AVATAR'; + unless($self->test_mana('MOVE_AVATAR',$ccount,$cown) and not $god_attacker){ + $db->update_hash('MOBILE', + "ID=$cid", + {'AVAILABLE' => 'Y', + 'MOVE_WITH' => 0}); + $self->unify_mobiles($cid,0,$cown); + $deleted = 1; + } + } + # re-read companions + $self->{-companions} = $self->{-context}-> + read_mobile_condition('TYPE,COUNT,OWNER,ID', + "MOVE_WITH=$self->{-args}->{'MOBILE'}") + if $deleted; + + } + } + } + + return 1; +} + +# MOVE +sub first_phase{ + my ($self) = @_; + + return 0 unless $self->is_valid(); + + my $db = $self->{-db}; + my $type = $self->{-mob}->{'TYPE'}; + my $mob = $self->{-mob}; + my $aym = $self->{-context}; + + # split it, if neccessary + # the moving unit get the old ID! + + my $count = $self->{-args}->{'COUNT'}; + #print "conditional split with $count count and mob=\n"; + #print Dumper $mob; + #print Dumper $self; + return 0 unless + $self->conditional_split_mobile($mob,$count, + {'COMMAND_ID' => $self->{-dbhash}->{'ID'}, + 'MOVE_WITH' => 0},0); + + # if ark needed, move it together with us + #if($type ne 'ARK' and $self->{-active_ark}){ + + # $self->move_with($self->{-active_ark},$self->{-args}->{'MOBILE'},1); + + # set owner of ark + # $self->{-db}->update_hash('MOBILE', + # "ID=$self->{-active_ark}", + # {'OWNER' => $self->{-player}}); + #} + + # collect mobiles with MOVE_WITH in same location + my $companions = $self->{-companions}; + + # calculate duration + my $d = $::conf->{-DURATION}; + my $dur = $d->{"-MOVE_$type"}; + + # if moved with ark use -MOVE_ARK else use slowest + if($self->{-active_ark}){ + $dur = $d->{'-MOVE_ARK'}; + }else{ + for my $m (@$companions){ + my ($mtype) = @$m; + $dur = $d->{"-MOVE_$mtype"} if $d->{"-MOVE_$mtype"} > $dur; + } + } + $self->setDuration($dur); + + # set all companions inactive + $self->{-db}->update_hash('MOBILE', + "LOCATION=$mob->{'LOCATION'} ". + "AND MOVE_WITH=$self->{-args}->{'MOBILE'}", + {'AVAILABLE' => 'N'}); + + # remove OCCUPANT in MAP, if we are an earthling + # and there are no more own active (if it was our field) + # mobiles left and if it is no homecity + if($aym->is_earthling()){ + $self->empty_field($mob->{'LOCATION'}); + # avatar-companions: pay now + if($type ne 'ARK'){ + for my $comp (@$companions){ + my ($ctype,$ccount,$cown,$cid) = @$comp; + next unless $ctype eq 'AVATAR'; + $self->use_mana($cown); + } + } + }elsif($aym->is_god()){ + $self->use_mana(); + } + + # events + if($type eq 'ARK' or $self->{-active_ark}){ + $self->event($self->{-target}->to_string(), + 'EVENT_ARK_APPROACHING', + $mob->{'LOCATION'}, + $mob->{'COUNT'}); + }else{ #elsif($type ne 'ARK'){ + my $player = $self->{-player}; + my $count = $self->{-args}->{'COUNT'}; + my $typetag = $count > 1 ? "MOBILE_$type".'_PL' : "MOBILE_$type"; + $self->event($self->{-target}->to_string(), + 'EVENT_MOBILE_APPROACHING', + $mob->{'LOCATION'}, + $count, + # $self->{-context}->mobile_string($type,$count)); + $typetag); + + # TODO Bug: if avatar moves with hero, the wrong player is in the event-message. + + for my $m2 (@$companions){ + my ($mtype,$c,$mo) = @$m2; + $self->{-player} = $mo; + $typetag = $c > 1 ? "MOBILE_$mtype".'_PL' : "MOBILE_$mtype"; + $self->event($self->{-target}->to_string(), + 'EVENT_MOBILE_APPROACHING', + $mob->{'LOCATION'}, + $c, + # $self->{-context}->mobile_string($mtype,$c)) + $typetag); + } + $self->{-player} = $player; + } + + return $dur; +} + +# MOVE +sub second_phase{ + my ($self) = @_; + + return 0 unless $self->is_valid(); + + my $db = $self->{-db}; + my $mob = $self->{-mob}; + my $count = $self->{-args}->{'COUNT'}; + my $target_location = $self->{-target}->to_string(); + my $old_location = $mob->{'LOCATION'}; + + # move mobile and all moving with it. + $db->update_hash('MOBILE',"ID=$mob->{'ID'} OR MOVE_WITH=$mob->{'ID'}", + {'LOCATION' => $target_location, + 'AVAILABLE' => 'Y', + }); + + # TODO: distribute plagues + + # Bug? + # $self->{-db}->update_hash('MOBILE', + # "TYPE=ARK AND MOVE_WITH=$mob->{'ID'}", + # {'MOVE_WITH' => 0}); + + # should we do a godfight? + my $companions = $self->{-companions}; + if($mob->{'TYPE'} eq 'AVATAR'){ + $self->enter_field_avatar($target_location,$mob); + }else{ + for my $m (@$companions){ + my ($mtype,$mc,$mo,$mid) = @$m; + next unless $mtype eq 'AVATAR'; + $self->enter_field_avatar($target_location,$mid); + } + } + + $self->enter_field($target_location) if $self->{-role} eq 'EARTHLING'; + # $self->enter_field_avatar($target_location,$mob) if $self->{-role} eq 'GOD'; + $self->drowning($old_location); + + # MULTIMOVE + if(defined $self->{-multimove}){ + $self->{-context}->insert_command('MOVE', + "ROLE=$self->{-player}, ". + "DIR=$self->{-multimove}, ". + "MOBILE=$mob->{'ID'}, ". + "COUNT=$mob->{'COUNT'}", + $mob->{'LOCATION'}); + }else{ + $self->unify_mobiles($mob,$target_location); + } + +# TODO: maybe we should give a message only to the player of the unit +# ... but its difficult, because of MOVE_WITH + +# $self->{-context} +# ->send_message_to_field +# ($target_location, +# {'MFROM' => 0, +# 'MSG_TAG' => 'MSG_MOBILE_ARRIVES', +# 'ARG1' => $count, +# 'ARG2' => $self->{-context}->mobile_string($self->{-mob}->{'TYPE'}, +# $self->{-mob}->{'COUNT'}), +# 'ARG3' => $self->{-context}->charname($self->{-player}), +# 'ARG4' => $target_location}); + +# for my $m (@$companions){ +# my ($mtype,$mc,$mo,$mid) = @$m; +# $self->{-context} +# ->send_message_to_field +# ($target_location, +# {'MFROM' => 0, +# 'MSG_TAG' => 'MSG_MOBILE_ARRIVES', +# 'ARG1' => $mc, +# 'ARG2' => $self->{-context}->mobile_string($mtype,$mc), +# 'ARG3' => $self->{-context}->charname($mo), +# 'ARG4' => $target_location}); +# } + + + return 1; +} + +# +# End of MOVE +# +#################################################### + +########################################################## +# +# BLESS_PRIEST +# + +package BLESS_PRIEST; +@BLESS_PRIEST::ISA = qw(AymCommand); + +# this is called to see if the command is executable. +# it should be called from first_phase() and from second_phase(). +# it is not called from the scheduler +sub is_valid { + my $self = shift; + + my @required_arguments = ('MOBILE'); + return 0 unless $self->Command::is_valid(@required_arguments); + + return 0 unless $self->validate_mobile($self->{-args}->{'MOBILE'}); + + return 0 unless $self->validate_role('GOD'); + + my $mobtype = $self->{-mob}->{'TYPE'}; + my $mobloc = $self->{-mob}->{'LOCATION'}; + + # don't bless unassigned units + return 0 unless $self->test(sub{$self->{-mob}->{'OWNER'} > 0}, + 'MSG_CANT_BLESS_UNASSIGNED', + $mobloc); + + # only bless warriors + return 0 unless $self->test(sub{$self->{-mob}->{'TYPE'} eq 'WARRIOR'}, + 'MSG_WRONG_TYPE', + $self->{-context}->mobile_string($mobtype,1), + $mobloc); + + return 0 unless $self->test_mana('BLESS_PRIEST'); + + return 1; +} + +# this is called from Scheduler, if he see the command the +# first time, some commands execute here immidiatly. +# BLESS_PRIEST +sub first_phase{ + my $self = shift; + + return 0 unless $self->is_valid(); + + my $id = $self->{-mob}->{'ID'}; + my $newid = $self->conditional_split_mobile($self->{-mob}, + 1, + {'ADORING' => $self->{-player}, + 'TYPE' => 'PRIEST', + 'COMMAND_ID' => $self->{-dbhash}->{'ID'}}, + 'beforeafter'); + + # companions move with the remaining warriors, not with the new priest + $self->{-db}->update_hash('MOBILE', + "MOVE_WITH = $id", + {'MOVE_WITH' => $newid}) if $id != $newid; + + # reread mobile, because split destroys it + $self->{-mob} = $self->{-db}->single_hash_select('MOBILE',"ID=$id"); + $self->unify_mobiles($self->{-mob}, + $self->{-mob}->{'LOCATION'}, + $self->{-mob}->{'OWNER'}); + + $self->change_priest_on_temple($self->{-mob}->{'LOCATION'}); + +# $self->{-context} +# ->send_message_to_field +# ($self->{-mob}->{'LOCATION'}, +# {'MFROM' => 0, +# 'MSG_TAG' => 'MSG_BLESS_PRIEST', +# 'ARG1' => $self->{-context}->charname($self->{-player}), +# 'ARG2' => $self->{-context}->charname($self->{-mob}->{'OWNER'}), +# 'ARG3' => $self->{-mob}->{'LOCATION'}}); + + + $self->use_mana(); + $self->setDuration(0); + + return 0; +} + +# this is called from scheduler when the command will be executed +sub second_phase{ + my $self = shift; + Util::log("BLESS_PRIEST should not have a second phase!",0); + return 0; +} + +# +# End of BLESS_PRIEST +# +#################################################### + +########################################################## +# +# BUILD_TEMPLE +# + +package BUILD_TEMPLE; +use Data::Dumper; +@BUILD_TEMPLE::ISA = qw(AymCommand); + +# this is called to see if the command is executable. +# it should be called from first_phase() and from second_phase(). +# it is not called from the scheduler +sub is_valid { + my $self = shift; + + my @required_arguments = ('MOBILE'); + return 0 unless $self->Command::is_valid(@required_arguments); + + return 0 unless $self->validate_mobile($self->{-args}->{'MOBILE'}); + + my $mobtype = $self->{-mob}->{'TYPE'}; + my $mobloc = $self->{-mob}->{'LOCATION'}; + my $god = $self->{-mob}->{'ADORING'}; + + # only priests can build temples + return 0 unless $self->test(sub{$self->{-mob}->{'TYPE'} eq 'PRIEST'}, + 'MSG_WRONG_TYPE', + $self->{-context}->mobile_string($mobtype,1), + $mobloc); + + # is this a valid building place? + # my($loc,$terrain,$temple) = $self->{-context}->read_map('TERRAIN,TEMPLE'); + my ($terrain,$temple) = + $self->{-context}->read_field('TERRAIN,TEMPLE',$mobloc); + return 0 unless $self->test(sub{$temple ne 'Y' + and Util::is_in($terrain,'MOUNTAIN','ISLE')}, + 'MSG_CANT_BUILD_HERE', + $mobloc); + + # is the priest adoring a fitting god? + #return 0 unless $self->test(sub{($terrain eq 'MOUNTAIN' and + # $self->{-mob}->{'ADORING'} eq $god) or + # $terrain eq 'ISLE'}, + # 'MSG_ADORING_WRONG_GOD', + # $mobloc, + # $self->{-mob}->{'ADORING'}, + # $self->{-context}->charname($god)); + + # is there allready a BUILD_TEMPLE Command + if($self->{-phase} == 1){ + return 0 unless $self->test(sub{! $self->{-context}->search_event('BUILD_TEMPLE', + $mobloc)}, + 'MSG_CANT_BUILD_HERE', + $mobloc); + } + + # dont build more than MAX_MOUNTAIN temples on mountains + if($terrain eq 'MOUNTAIN'){ + my $ret = $self->test(sub{$self->{-db}->count('MAP', + "GAME=$self->{-game} AND ". + "TEMPLE=Y AND ". + "HOME=$god AND ". + "OCCUPANT=$self->{-player} AND ". + "TERRAIN=MOUNTAIN") + < $::conf->{-MAX_MOUNTAINS}}, + 'MSG_CANT_BUILD_HERE', + $mobloc); + if(not $ret and $self->{-phase} == 2){ + # we have to set priest active, if we tryed to build in first phase + $self->{-db}->update_hash('MOBILE', + "ID=$self->{-mob}->{'ID'}", + {'AVAILABLE' => 'Y'}); + } + return 0 unless $ret; + } + + return 1; +} + +# this is called from Scheduler, if he sees the command the +# first time, some commands execute here immidiatly. +# BUILD_TEMPLE +sub first_phase{ + my $self = shift; + + return 0 unless $self->is_valid(); + + $self->conditional_split_mobile($self->{-mob}, + 1, + {'COMMAND_ID' => $self->{-dbhash}->{'ID'}, + 'MOVE_WITH' => 0}, + 0); + + # delete all MOVE_WITH the priest + # BUG?: uninitialized value in this line??? maybe split is wrong in a way? + $self->{-db}->update_hash('MOBILE', + "MOVE_WITH = $self->{-mob}->{'ID'}", + {'MOVE_WITH' => 0}); + + $self->empty_field($self->{-mob}->{'LOCATION'}); + + my ($size) = $self->{-db}->read_game($self->{-game},'TEMPLE_SIZE'); + + # set new temple size + $size++; + $self->{-db}->update_hash('GAME', + "GAME=$self->{-game}", + {'TEMPLE_SIZE' => $size}); + Util::log("New temple size: $size",1); + + # calculate duration + $self->setDuration($size * $::conf->{-DURATION}->{-BUILD_TEMPLE}); + + $self->event($self->{-mob}->{'LOCATION'}, + 'EVENT_BUILD_TEMPLE', + $self->{-context}->charname($self->{-mob}->{'ADORING'}), + $size); + + return $self->{-duration}; +} + +# this is called from scheduler when the command will be executed. +# BUILD_TEMPLE +sub second_phase{ + my $self = shift; + + return 0 unless $self->is_valid(); + + my $loc = $self->{-mob}->{'LOCATION'}; + $self->{-db}->update_hash('MAP', + "GAME=$self->{-game} AND LOCATION=$loc", + {'TEMPLE' => 'Y', + 'HOME' => $self->{-mob}->{'ADORING'}}); + + $self->{-db}->update_hash('MOBILE', + "ID=$self->{-mob}->{'ID'}", + {'AVAILABLE' => 'Y'}); + + # insert new PRODUCE-command + $self->{-context}->insert_command('PRODUCE', "ROLE=$self->{-player}", + $self->{-mob}->{'LOCATION'}); + + # insert new PRAY-command + $self->{-context}->insert_command('PRAY','',$loc); + + # this deletes and reinsert commands, if we conquer with building + $self->enter_field($loc,1); + + #change aymargeddon to nearest pole + my $poles = $self->{-db}->select_array('MAP', + 'LOCATION,TERRAIN', + "GAME=$self->{-game} AND ". + "(TERRAIN=POLE OR TERRAIN=AYMARGEDDON)"); + my $min_distance = $::conf->{-MANY}; + my $Loc = Location->from_string($loc); + my ($new_aym,$old_aym) = ('',''); + for my $pol (@$poles){ + my ($loc2,$ter) = @$pol; + $old_aym = $loc2 if $ter eq 'AYMARGEDDON'; + my $map = HexTorus->new($self->{-context}->get_size()); + my $Loc2 = Location->from_string($loc2); + my $dist = $map->distance($Loc,$Loc2); + Util::log("distance from $loc to $loc2: $dist",1); + $new_aym = $loc2 if $dist < $min_distance and $ter eq 'POLE'; + } + if($new_aym){ + Util::log("change aymargeddon from $old_aym to $new_aym",1); + $self->{-db}->update_hash('MAP', + "GAME=$self->{-game} AND LOCATION=$new_aym", + {'TERRAIN' => 'AYMARGEDDON'}); + $self->{-db}->update_hash('MAP', + "GAME=$self->{-game} AND LOCATION=$old_aym", + {'TERRAIN' => 'POLE'}); + $self->{-context} + ->send_message_to_all + ({'MFROM' => 0, + 'MSG_TAG' => 'MSG_CHANGE_AYMARGEDDON', + 'ARG1' => $self->{-context}->charname($self->{-player})}); + #'ARG2' => $old_aym, + #'ARG3' => $new_aym}); + } + + # is this the end of the game? + my $unbuild = $self->{-context}->unbuild(); + + $self->end_of_the_game() unless $unbuild; + + return 0; +} + +# +# End of BUILD_TEMPLE +# +#################################################### + +########################################################## +# +# PRODUCE +# + +package PRODUCE; +use Data::Dumper; +@PRODUCE::ISA = qw(AymCommand); + +sub is_valid { + my $self = shift; + + my @required_arguments = ('ROLE'); + # TODO: Open question: is this redundant information? allready + # in PLAYER of COMMAND? + return 0 unless $self->Command::is_valid(@required_arguments); + + return 1; +} + +# PRODUCE +sub first_phase{ + my $self = shift; + + return 0 unless $self->is_valid(); + + my ($ter,$home,$occ,$temple) = + $self->{-context}->read_field('TERRAIN,HOME,OCCUPANT,TEMPLE', + $self->{-dbhash}->{'LOCATION'}); + + my ($type, $duration); + $type = $temple eq 'Y' ? 'PRIEST' : 'WARRIOR'; + + my $d = $::conf->{-DURATION}; + my $peace = $self->{-args}->{'PEACE'}; + $peace = 0 unless defined $peace; + if($type eq 'PRIEST'){ + Util::log("Produce a priest at ",-1); + if ($ter eq 'MOUNTAIN'){ + Util::log("mountain.",1); + $duration = $d->{-PRODUCE_PRIEST_HOME}; + }else{ + Util::log("isle.",1); + $duration = $d->{-PRODUCE_PRIEST}; + } + $self->setDuration($duration); + $self->event($self->{-location}, + 'EVENT_PRODUCE_PRIEST'); + }else{ + Util::log("Produce a warrior at ",-1); + if ($occ == $home){ + Util::log("homecity.",1); + $duration = $d->{-PRODUCE_WARRIOR_HOME}; + }else{ + Util::log("normal city.",1); + $duration = $d->{-PRODUCE_WARRIOR} + $d->{-PRODUCE_WARRIOR_CHANGE} * $peace; + } + $self->setDuration($duration); + $self->event($self->{-location}, + 'EVENT_PRODUCE_WARRIOR'); + } + + return $duration; +} + +# this is called from scheduler when the command will be executed. +# PRODUCE +sub second_phase{ + my $self = shift; + + return 0 unless $self->is_valid(); + + my $loc = $self->{-dbhash}->{'LOCATION'}; + my ($temple,$home,$occ,$plague) = + $self->{-context}->read_field('TEMPLE,HOME,OCCUPANT,PLAGUE',$loc); + my $type = $temple eq 'Y' ? 'PRIEST' : 'WARRIOR'; + + # fields with influenza do not produce + if(not defined $plague or not $plague =~ 'INFLUENZA'){ + + # dont produce priests at temples, if no other priests are there + if ($type eq 'PRIEST'){ + my $mobiles = $self->{-context} + ->read_mobile_condition('ID', + "TYPE=PRIEST AND AVAILABLE=Y AND ADORING=$home",$loc); + if(!@$mobiles){ + Util::log("No priests, no new priests!",1); + $self->do_it_again(); + return 0; + } + } + + my $mob = {'ID' => $self->{-db}->find_first_free('MOBILE','ID'), + 'TYPE' => $type, + 'LOCATION' => $loc, + 'COUNT' => 1, + 'AVAILABLE' => 'Y', + 'OWNER' => $self->{-args}->{'ROLE'}, + 'GAME' => $self->{-game}, + 'MOVE_WITH' => 0, + }; + + # print Dumper $mob; + + $mob->{'ADORING'} = $home if $type eq 'PRIEST'; + + my %mobcopy = (%$mob); + $self->{-mob} = \%mobcopy; + $self->{-db}->insert_hash('MOBILE', + $mob); + + $self->enter_field($loc,1); + } # endif no influenza + else{ + Util::log("No production in $loc due to INFLUENZA!",1); + } + + # re-insert command + my $new_peace = $self->{-args}->{'PEACE'}; + $new_peace = 0 unless defined $new_peace; + $new_peace++; + $self->do_it_again({'PEACE' => $new_peace}); + + return 1; +} + +# +# End of PRODUCE +# +#################################################### + +########################################################## +# +# PRAY +# + +package PRAY; +use Data::Dumper; +@PRAY::ISA = qw(AymCommand); + +sub is_valid { + my $self = shift; + + my @required_arguments = (); + return 0 unless $self->Command::is_valid(@required_arguments); + + $self->{-loc} = $self->{-dbhash}->{'LOCATION'}; + my ($temple,$home) = $self->{-context}->read_field('TEMPLE,HOME', + $self->{-loc}); + # TODO: use test() instead + return 0 unless $temple eq 'Y'; + + $self->{-god} = $home; + + return 1; +} + +# PRAY +sub first_phase{ + my $self = shift; + + return 0 unless $self->is_valid(); + + return $self->{-duration}; +} + +# PRAY +sub second_phase{ + my $self = shift; + + return 0 unless $self->is_valid(); + + # count number of active orthodox priests + my $priests = 0; + my $oim = $self->{-context}->own_in_mobile($self->{-loc}, + $self->{-god}, + 'available'); + + for my $om (@$oim){ + my ($id) = @$om; + my $mob = $self->{-db}->read_single_mobile($id); + $priests += $mob->{'COUNT'} if($mob->{'TYPE'} eq 'PRIEST'); + } + + # reduce effective priests if necessary + my $fortune = $self->{-context}->read_fortune(); + my $oldpriests = $priests; + + my ($terrain) = $self->{-context}->read_field('TERRAIN',$self->{-loc}); + if($terrain eq 'MOUNTAIN'){ + if($priests > $::conf->{-FORTUNE_FAKTOR_MOUNTAIN} * $fortune){ + $priests = $::conf->{-FORTUNE_FAKTOR_MOUNTAIN} * $fortune; + } + }elsif($terrain eq 'ISLE'){ + if($priests > $::conf->{-FORTUNE_FAKTOR_ISLAND} * $fortune){ + $priests = $::conf->{-FORTUNE_FAKTOR_ISLAND} * $fortune; + } + }else{ + Util::log("ERROR: PRAY in terrain $terrain",0); + } + + Util::log("reduce praying priests from $oldpriests to". + " $priests in $self->{-loc} ($terrain, fortune: $fortune)",1) + if $oldpriests > $priests; + + # add priests + 1 mana to $self->{-god} + my $mana = $self->{-context}->get_mana($self->{-god}); + my $newmana = $mana + $priests + $::conf->{-MANA_FOR_TEMPLE}; + + $self->{-db}->update_hash('GOD', + "PLAYER=$self->{-god} AND GAME=$self->{-game}", + {'MANA' => $newmana}); + Util::log("$priests priests pray for $self->{-god} ". + "in $self->{-loc} and he got ". ($newmana - $mana) ." mana",1); + + # TODO: Message? + + # re-insert command + $self->do_it_again(); + + return 1; +} + +# +# End of PRAY +# +#################################################### + +########################################################## +# +# BUILD_ARK +# + +package BUILD_ARK; +use Data::Dumper; +@BUILD_ARK::ISA = qw(AymCommand); + +# this is called to see if the command is executable. +# it should be called from first_phase() and from second_phase(). +# it is not called from the scheduler +sub is_valid { + my $self = shift; + + # my @required_arguments = (''); + return 0 unless $self->Command::is_valid(); + + return 0 unless $self->validate_role('GOD'); + + return 1; +} + +# this is called from Scheduler, if he sees the command the +# first time, some commands execute here immidiatly. +# BUILD_ARK +sub first_phase{ + my $self = shift; + + return 0 unless $self->is_valid(); + return 0 unless $self->test_mana('BUILD_ARK'); + + # calculate duration + $self->setDuration($::conf->{-DURATION}->{-BUILD_ARK}); + + $self->event($self->{-location}, + 'EVENT_BUILD_ARK'); + + $self->use_mana(); + + return $self->{-duration}; +} + +# this is called from scheduler when the command will be executed. +# BUILD_ARK +sub second_phase{ + my $self = shift; + + return 0 unless $self->is_valid(); + + # owner should be occupant + my ($occ) = $self->{-context}->read_field('OCCUPANT',$self->{-location}); + $occ = -1 unless $occ; + + my $mob = {'ID' => $self->{-db}->find_first_free('MOBILE','ID'), + 'TYPE' => 'ARK', + 'LOCATION' => $self->{-location}, + 'COUNT' => 1, + 'AVAILABLE' => 'Y', + 'OWNER' => $occ, + 'GAME' => $self->{-game}, + }; + my %mobcopy = (%$mob); + $self->{-db}->insert_hash('MOBILE',$mob); + + # merge multiple ARKs in one mobile, if same owner + $self->unify_mobiles(\%mobcopy,$self->{-location},$occ); + + # $self->{-db}->commit(); + +# $self->{-context} +# ->send_message_to_field +# ($self->{-location}, +# {'MFROM' => 0, +# 'MSG_TAG' => 'MSG_BUILD_ARK', +# 'ARG1' => $self->{-context}->charname($self->{-player}), +# 'ARG2' => $self->{-location}}); + + return 0; +} + +# +# End of BUILD_ARK +# +#################################################### + +#################################################### +# +# INCARNATE: Create an Avatar +# + +package INCARNATE; +@INCARNATE::ISA = qw(AymCommand); + +sub is_valid{ + my ($self) = @_; + + my @required_arguments = ('COUNT'); + return 0 unless $self->Command::is_valid(@required_arguments); + + # you need a temple to create an avatar + $self->{-arrival} = $self->{-context}->incarnation_place(); + return 0 unless $self->test(sub{$self->{-arrival};}, + 'MSG_ERROR_NO_ARRIVAL'); + + # TODO: maybe with variing cost (distance to Aymargeddon) + return 0 unless $self->test_mana('INCARNATE', $self->{-args}->{'COUNT'}); + + return 1; +} + +# INCARNATE +sub first_phase{ + my $self = shift; + return 0 unless $self->is_valid(); + + # create mobile (or join) + my $mob = {'ID' => $self->{-db}->find_first_free('MOBILE','ID'), + 'GAME' => $self->{-game}, + 'LOCATION' => $self->{-location}, + 'TYPE' => 'AVATAR', + 'OWNER' => $self->{-player}, + 'COUNT' => $self->{-args}->{'COUNT'}, + 'AVAILABLE' => 'Y', + 'STATUS' => 'IGNORE', + 'COMMAND_ID' => $self->{-id}, + }; + $self->{-mob} = $mob; + my %mobcopy = (%$mob); + $self->{-db}->insert_hash('MOBILE',\%mobcopy); + + $self->enter_field_avatar($self->{-location},$mob); + $self->unify_mobiles($mob,$self->{-location}); + + $self->use_mana(); + + # TODO: count count +# $self->{-context} +# ->send_message_to_field +# ($self->{-location}, +# {'MFROM' => 0, +# 'MSG_TAG' => 'MSG_INCARNATE', +# 'ARG1' => $self->{-context}->charname($self->{-player}), +# 'ARG2' => $self->{-location}}); + + $self->setDuration(0); + return 1; +}; + +sub second_phase{ + my $self = shift; + Util::log("Warning: We should not reach phase 2 with command INCARNATE",0); + return 0; +}; + +# +# END of INCARNATE +# +################################################################ + +########################################################## +# +# FIGHT_EARTHLING +# + +package FIGHT_EARTHLING; +use Data::Dumper; +use Date::Parse qw(str2time); +use Date::Calc qw(Time_to_Date); +@FIGHT_EARTHLING::ISA = qw(AymCommand); + +# this is called to see if the command is executable. +# it should be called from first_phase() and from second_phase(). +# it is not called from the scheduler +sub is_valid { + my $self = shift; + + my @required_arguments = ('ATTACKER','DEFENDER'); + return 0 unless $self->Command::is_valid(@required_arguments); + + return 0 unless $self->validate_role('EARTHLING'); + return 0 unless $self->validate_this_role($self->{-args}->{'ATTACKER'},'EARTHLING'); + my $def = $self->{-args}->{'DEFENDER'}; + if($def > 0){ + return 0 unless $self->validate_this_role($self->{-args}->{'DEFENDER'},'EARTHLING'); + } + + return 1; +} + +# this is called from Scheduler, if he sees the command the +# first time, some commands execute here immidiatly. +# FIGHT_EARTHLING +sub first_phase{ + my $self = shift; + + return 0 unless $self->is_valid(); + + # calculate duration + $self->setDuration($::conf->{-DURATION}->{-FIGHT_EARTHLING}); + + $self->event($self->{-location}, + 'FIGHT_EARTHLING'); + + return $self->{-duration}; +} + +# this is called from scheduler when the command will be executed. +# FIGHT_EARTHLING +sub second_phase{ + my $self = shift; + + return 0 unless $self->is_valid(); + + # read map info + my ($terrain,$home,$occupant) = $self->{-context}-> + read_field('TERRAIN,HOME,OCCUPANT',$self->{-location}); + + my $attacker = $self->{-args}->{'ATTACKER'}; + my $defender = $self->{-args}->{'DEFENDER'}; + + # get all mobiles + my $mobiles = $self->{-context}->read_mobile('ID,TYPE,OWNER,COUNT,STATUS', + 0, $self->{-location}, 1); + $self->{-mobiles} = $mobiles; + # print Dumper $mobiles; + + #my $efoa = {"$attacker" => 0}; # earthling friends of attacker + #my $efod = {"$defender" => 0}; # earthling friends of defender + #$self->{-efoa} = $efoa; + #$self->{-efod} = $efod; + + my ($gfoa, $gfod); # god friends ... + + # calculate strength of both sides + my ($attack_strength, $defend_strength,$attack_avatar,$defend_avatar) = (0,0,0,0); + my ($people_attacker, $people_defender) = (0,0); + for my $mob (@$mobiles){ + my ($id,$type,$own,$count,$stat) = @$mob; + + # next if $own <= 0; + if(exists($gfod->{$own})){ + # could be reached with differen MOVE_WITH + $defend_avatar += $count * $self->strength('AVATAR'); + $gfod->{$own} += $count; + Util::log("(1)mobile $id: $count $type from $own fights for $defender in $self->{-location}",1); + }elsif(exists($gfoa->{$own})){ + # could be reached with differen MOVE_WITH + $attack_avatar += $count * $self->strength('AVATAR'); + $gfoa->{$own} += $count; + Util::log("(2)mobile $id: $count $type from $own fights for $attacker in $self->{-location}",1); + }else{ + # TODO Performance (in the case of earthling this is not necessary) + my ($att_rel,$def_rel,$foa,$fod) = (0,0,0,0); + + # Avatars dont fight sometimes (no mana or no help or no friend) + if($type eq 'AVATAR'){ + # if(not $godfight){ + $att_rel = $self->{-context}->read_single_relation($own,$attacker); + $def_rel = $self->{-context}->read_single_relation($own,$defender); + + $foa = 1 if Util::is_in($att_rel,'FRIEND','ALLIED'); + $fod = 1 if Util::is_in($def_rel,'FRIEND','ALLIED'); + + # defender has support if in doubt + $foa = 0 if $foa and $fod; + $fod = 1 if not $foa and not $fod; + + $gfoa->{$own} += $count if $foa; + $gfod->{$own} += $count if $fod; + + # if you dont have enough mana for all your avatars no one fights! + if($stat eq 'HELP' and $self->test_mana('FIGHT_AVATAR',1,$own)){ + $self->use_mana($own); + }else{ + ($foa, $fod) = (0,0); + $gfod->{$own} = 0; + $gfoa->{$own} = 0; + } + # } + }else{ + # earthlings are simpel: no friends in field + $foa = 1 if $own == $attacker; + $fod = 1 if $own == $defender; + } + + if($foa){ + Util::log("(3)mobile $id: $count $type from $own fights for ". + "$attacker in $self->{-location}",1); + if($type eq 'AVATAR'){ + # count maximum avatarpower + $attack_avatar += $count * $self->strength('AVATAR'); + }else{ + # count earthling_strength + $attack_strength += $count * $self->strength($type); + $people_attacker += $count; + } + }elsif($fod){ # same for defender + Util::log("(4)mobile $id: $count $type from $own fights for ". + "$defender in $self->{-location}",1); + if($type eq 'AVATAR'){ + $defend_avatar += $count * $self->strength('AVATAR'); + }else{ + $defend_strength += $count * $self->strength($type); + $people_defender += $count; + } + }else{ + Util::log("(5)mobile $id: $own dont fight with $count $type ". + "in $self->{-location}",1); + } + } + } + + # terrain-bonus + if($terrain eq 'CITY'){ + # bonus for home city + if($home == $attacker){ + Util::log("homecity fights for $attacker",1); + $attack_strength += $::conf->{-FIGHT}->{-HOME}; + }elsif($home == $defender and $home){ + Util::log("homecity fights for $defender",1); + $defend_strength += $::conf->{-FIGHT}->{-HOME}; + } + }elsif($terrain eq 'ISLE'){ + # bonus for isle + if($occupant == $attacker){ + Util::log("isle fights for $attacker",1); + $attack_strength += $::conf->{-FIGHT}->{-ISLE}; + }elsif($occupant == $defender){ + Util::log("isle fights for $defender",1); + $defend_strength += $::conf->{-FIGHT}->{-ISLE}; + }else{ + Util::log("impossible situation: isle fights for no one!",0); + } + } + + Util::log("earthling strength attacker($attacker): ". + "$attack_strength, defender($defender): $defend_strength" + ,1); + + my $pure_attack_strength = $attack_strength; + my $pure_defend_strength = $defend_strength; + + #my $attacker_death_count = $attack_strength; + #my $defender_death_count = $defend_strength; + + my $attacker_death_count = $people_attacker; + my $defender_death_count = $people_defender; + + Util::log("$people_attacker people fight for attacker $attacker",1); + Util::log("$people_defender people fight for defender $defender",1); + + my $attacker_godpower = Util::min($people_attacker,$attack_avatar); + my $defender_godpower = Util::min($people_defender,$defend_avatar); + + Util::log("Gods supports attacker($attacker) with $attacker_godpower",1); + Util::log("Gods supports defender($defender) with $defender_godpower",1); + + $attack_strength += $attacker_godpower; + $defend_strength += $defender_godpower; + + # FLANKING + # if landbattle: look, for all neighbour fields, + # add flanking power of allies + my ($flanking_attack,$flanking_defend) = (0,0); + # if(not $self->{-see_battle} and not $self->{-island_battle}){ + my @neighbours = $self->get_neighbours($self->{-location}); + # COMMENT IN FOR NEW RULE my ($att_neighbours,$def_neighbours) = (0,0); + # print "neighbours: @neighbours\n"; + for my $n (@neighbours){ + # my $n_string = $n->to_string(); + my ($ter,$occ,$att) = $self->{-context}-> + read_field('TERRAIN,OCCUPANT,ATTACKER',$n); + next if $ter eq 'WATER'; # dont flank from see + next if $att > 0; # dont flank from war + my $attacker_relation = $self->{-context}->read_single_relation($occ,$attacker); + my $defender_relation = $self->{-context}->read_single_relation($occ,$defender); + Util::log("flanking ($n): $attacker_relation, $defender_relation, ". + "$ter, $occ, $att",1); + if($occ != $defender and + ($occ == $attacker or (Util::is_in($attacker_relation,'FRIEND','ALLIED') and not + Util::is_in($defender_relation,'FRIEND','ALLIED')))){ + # COMMENT IN FOR NEW RULE $att_neighbours++; + # COMMENT IN FOR NEW RULE $flanking_attack += $::conf->{-FIGHT}->{-FLANKING} * $att_neighbours; + $flanking_attack += $::conf->{-FIGHT}->{-FLANKING}; + Util::log("$n flanks for attacker($attacker)",1); + }elsif($occ and ($occ != $attacker and + ($occ == $defender or + (not Util::is_in($attacker_relation,'FRIEND','ALLIED') + and Util::is_in($defender_relation,'FRIEND','ALLIED'))))){ + # COMMENT IN FOR NEW RULE $def_neighbours++; + # COMMENT IN FOR NEW RULE $flanking_defend += $::conf->{-FIGHT}->{-FLANKING} * $def_neighbours; + $flanking_defend += $::conf->{-FIGHT}->{-FLANKING}; + Util::log("$n flanks for defender($defender)",1); + } + } + Util::log("sum of flanking: $flanking_attack for attacker($attacker) and ". + "$flanking_defend for defender($defender) and ",1); + $attack_strength += $flanking_attack; + $defend_strength += $flanking_defend; + #} + + Util::log("sum strength without fortune: $attack_strength for attacker($attacker) ". + "and $defend_strength for defender($defender)",1); + + # add random value (1 to GAME.FORTUNE) + my $fortune = $self->{-context}->read_fortune(); + my $asf = int(rand($fortune))+1; + my $dsf = int(rand($fortune))+1; + $attack_strength += $asf; + $defend_strength += $dsf; + Util::log("strength with fortune attacker($attacker): ". + "$attack_strength, defender($defender): $defend_strength",1); + + # my @loosers; + + if($attack_strength > $defend_strength){ + $self->{-winner} = $attacker; + $self->{-looser} = $defender; + $self->{-winner_death_count} = Util::min($people_attacker - 1, + int(0.5 + $defender_death_count / + $::conf->{-WINNER_DEATH_COUNT_FRACTION})); + $self->{-looser_death_count} = Util::max(1,int(0.5 + $attacker_death_count / + $::conf->{-LOOSER_DEATH_COUNT_FRACTION})); + Util::log("Attackers($attacker) won!",1); + $self->conquer($self->{-location},$attacker); + }else{ + $self->{-winner} = $defender; + $self->{-looser} = $attacker; + $self->{-winner_death_count} = Util::min($people_defender - 1, + int(0.5 + $attacker_death_count / + $::conf->{-WINNER_DEATH_COUNT_FRACTION})); + $self->{-looser_death_count} = Util::max(1,int(0.5 + $defender_death_count / + $::conf->{-LOOSER_DEATH_COUNT_FRACTION})); + # $self->{-looser} = $efoa; + # $self->{-master_looser} = $attacker; + Util::log("Defenders($defender) won!",1); + } + + # loosers and helpers run away or die + $self->run_or_die(); + + # erase MAP.ATTACKER + $self->{-db}->update_hash('MAP', + "LOCATION=$self->{-location} AND GAME=$self->{-game}", + {'ATTACKER' => 0}); + + # reread mobiles + # $self->{-mobiles} = $self->{-context}->read_mobile('ID', + # 0, $self->{-location}, 1); + + # unify the mobiles, which are still here + for my $mob_arr (@$mobiles){ + my ($id,$type,$owner,$count,$status) = @$mob_arr; + next if exists $self->{-run_or_die}->{$id}; + my $mob = $self->{-db}->read_single_mobile($id); + $self->unify_mobiles($mob,$self->{-location},$owner) if $mob; + } + + # sometimes the last ark is gone in battle + if($terrain eq 'WATER'){ + $self->drowning($self->{-location}); + } + + # send battle-report + my $name_of_attacker = $self->{-context}->charname($attacker); + my $name_of_defender = $self->{-context}->charname($defender); + my $name_of_winner = $self->{-context}->charname($self->{-winner}); + + my $text = <BATTLE_REPORT $self->{-location}
+ + + + + + + + + + + + + + + + + + + +
$name_of_attacker$name_of_defender
PEOPLE$people_attacker$people_defender
FIGHTING_STRENGTH$pure_attack_strength$pure_defend_strength
FLANKING$flanking_attack$flanking_defend
GODS_HELP$attacker_godpower$defender_godpower
LUCK$asf$dsf
SUM_OF_STRENGTH$attack_strength$defend_strength
DEAD_WARRIORS$self->{-dead}->{$attacker}->{'K'}$self->{-dead}->{$defender}->{'K'}
DEAD_HEROS$self->{-dead}->{$attacker}->{'H'}$self->{-dead}->{$defender}->{'H'}
DEAD_PRIESTS$self->{-dead}->{$attacker}->{'P'}$self->{-dead}->{$defender}->{'P'}
SUNKEN_ARKS$self->{-dead}->{$attacker}->{'A'}$self->{-dead}->{$defender}->{'A'}
CONQUERED_ARKS$self->{-dead}->{$defender}->{'C'}$self->{-dead}->{$attacker}->{'C'}
+ WINNER_IS $name_of_winner. +END_OF_TEXT + + # TODO: we should make shure, that attacker and defender are receivers. + # could happen, if all dying and no other unit in the neighbourhood + my @gods = (keys %$gfoa, keys %$gfod); + $self->{-context} + ->send_message_to_field + ($self->{-location},{'MFROM' => 0, + 'MSG_TEXT' => $text} + # 'ARG1' => $self->{-context}->charname($attacker), + # 'ARG2' => $self->{-context}->charname($defender), + # 'ARG3' => $self->{-context}->charname($self->{-winner}), + # 'ARG4' => $self->{-location}} + ); + #,$attacker,$defender,@gods); + + return 0; +} + +# FIGHT_EARTHLING +sub run_or_die{ + my($self) = @_; + + # some people have to die + $self->casualties($self->{-winner},$self->{-winner_death_count}); + $self->casualties($self->{-looser},$self->{-looser_death_count}); + + # print Dumper $self->{-dead}; + + # reread mobiles + $self->{-mobiles} = $self->{-context}->read_mobile('ID,TYPE,OWNER,COUNT,STATUS', + 0, $self->{-location}, 1); + + # the survivors run + # TODO: no retreat if no survivors + $self->retreat(); + +} + +sub find_retreat_field{ + my ($self,$retreat_fields) = @_; + + my @retreat_fields = @$retreat_fields; + + # chose one retreat-field + return $retreat_fields[rand($#retreat_fields +1)]; +} + +sub retreat_unit{ + my ($self,$unit,$count,$retreat,$type) = @_; + + my $looser = $self->{-looser}; + + # calculate direction + my $dir = $self->{-context}->is_in_direction_from($retreat, + $self->{-location}); + + # retreat via MOVE_WITH if retreat with ark + if($type ne 'ARK' and exists $self->{-retreat_arks}->{$retreat}){ + my $ark = $self->{-retreat_arks}->{$retreat}; + $self->{-db}->update_hash('MOBILE', + "ID=$unit", + {'MOVE_WITH' => $ark, + 'AVAILABLE' => 'N'}); + Util::log("retreat via $ark (MOVE_WITH)",1); + }else{ + # TODO?: insert event + $self->{-context}->insert_command('MOVE', + "DIR=$dir, MOBILE=$unit, ". + "COUNT=$count, AUTO=1", + $self->{-location}, + $looser); + Util::log("retreat via MOVE_COMMAND",1); + } + Util::log("$looser retreats from $self->{-location} to $retreat ". + "in direction $dir with $count people(or ark). Mobile-ID: $unit",1); + $self->{-run_or_die}->{$unit} = 1; + + $self->{-context} + ->send_message_to_list + ({'MFROM' => 0, + 'MSG_TAG' => 'MSG_FIGHT_RETREAT', + 'ARG1' => $self->{-context}->charname($looser), + 'ARG2' => 'PEOPLE_OR_ARK', + 'ARG3' => $self->{-location}, + 'ARG4' => $count},$looser,$self->{-winner}); + + return $retreat; +} + +sub retreat{ + my ($self) = @_; + + my $looser = $self->{-looser}; + Util::log("checking retreats for looser $looser ...",1); + + # remove MOVE_WITH if any + $self->{-db}->update_hash('MOBILE', + "OWNER=$looser AND LOCATION=$self->{-location} AND ". + "AVAILABLE=Y", + {'MOVE_WITH' => 0}); + + # search for retreat-possibilities + my ($local_terrain) = $self->{-context}->read_field('TERRAIN',$self->{-location}); + my @possible_retreat = $self->{-context}->own_neighbours($self->{-location},$looser); + my @retreat_fields = (); + my @retreat_water_fields = (); + if ($local_terrain eq 'WATER' or $local_terrain eq 'ISLE'){ + @retreat_water_fields = @possible_retreat; + Util::log("retreat from water: @possible_retreat",1); + }else{ + Util::log("check retreat for ...",-1); + for my $field (@possible_retreat){ + Util::log("\n$field ",-1); + my ($terrain) = $self->{-context}->read_field('TERRAIN',$field); + if ($terrain eq 'WATER' or $terrain eq 'ISLE'){ + Util::log("... accepted water retreat to $terrain!",1); + push @retreat_water_fields, $field; + }else{ + Util::log("... accepted land retreat to $terrain!",1); + push @retreat_fields, $field; + } + } + } + # $self->{-retreat_fields} = \@retreat_fields; + # $self->{-retreat_water_fields} = \@retreat_fields; + + # retreat own arks + + my $have_ark = 0; + my %arks = (); + if($#retreat_water_fields >= 0){ + $self->{-retreat_arks} = {}; # TODO Performance: use only hashes, no arrays + for my $m (@{$self->{-mobiles}}){ + my ($id,$type,$own,$count,$stat) = @$m; + next unless $type eq 'ARK' and ($own == $self->{-looser}); + + my $retreat_field = $self->find_retreat_field(\@retreat_water_fields); + Util::log("found ark $id from $own for retreat to $retreat_field",1); + + $self->{-retreat_arks}->{$retreat_field} = $id; + $arks{$id} = $retreat_field; + + if (not Util::is_in($retreat_field,@retreat_fields)){ + push @retreat_fields, $retreat_field; + Util::log("... accepted retreat through ark $id to $retreat_field!",1); + } + } + }else{ + # all arks change owner to winner + $self->{-db}->update_hash('MOBILE', + "GAME=$self->{-game} AND ". + "LOCATION=$self->{-location} AND ". + "TYPE=ARK", + {'OWNER' => $self->{-winner}}); + Util::log("All arks in $self->{-location} change owner to $self->{-winner}",1); + } + + + # for every unit of this looser + for my $mob (@{$self->{-mobiles}}){ + my ($id,$type,$own,$count,$stat) = @$mob; + next unless $own == $looser; + next if $type eq 'ARK'; + + # if there is a way out + if($#retreat_fields >= 0){ + my $field = $self->find_retreat_field(\@retreat_fields); + Util::log("checking retreat for mobile $id ". + "(own: $own, type: $type, count: $count, field: $field)",1); + $self->retreat_unit($id,$count,$field,$type); + }else{ + # die! + $self->{-db}->delete_from('MOBILE',"ID=$id"); + $self->{-run_or_die}->{$id} = 1; + + $self->{-context} + ->send_message_to_field + ($self->{-location}, + {'MFROM' => 0, + 'MSG_TAG' => 'MSG_FIGHT_RETREAT_DIE', + 'ARG1' => $self->{-context}->charname($looser), + 'ARG2' => $type, + 'ARG3' => $self->{-location}, + 'ARG4' => $count});#,$looser,$self->{-winner}); + Util::log("$looser looses $count $type in $self->{-location}". + " because there is no place to retreat.",1); + } + } + # MOVE COMMANDS for arks came last because others move with them + for my $mob (@{$self->{-mobiles}}){ + my ($id,$type,$own,$count,$stat) = @$mob; + next unless $own == $looser; + next unless $type eq 'ARK'; + Util::log("checking retreat for mobile $id ". + "(own: $own, type: $type, count: $count, ". + "via ark $id to field: $arks{$id})",1); + + $self->retreat_unit($id,$count,$arks{$id},$type); + } +} + +sub strength{ + my($self,$type) = @_; + + # return $::conf->{-SEE_FIGHT}->{"-$type"} if $self->{-naval_battle}; + # return $::conf->{-ISLAND_FIGHT}->{"-$type"} if $self->{-island_battle}; + return $::conf->{-FIGHT}->{"-$type"}; +} + +# +# End of FIGHT_EARTHLING +# +#################################################### + +########################################################## +# +# BLESS_HERO +# + +package BLESS_HERO; +@BLESS_HERO::ISA = qw(AymCommand); +use Data::Dumper; + +# this is called to see if the command is executable. +# it should be called from first_phase() and from second_phase(). +# it is not called from the scheduler +sub is_valid { + my $self = shift; + + my @required_arguments = ('MOBILE','COUNT'); + return 0 unless $self->Command::is_valid(@required_arguments); + + return 0 unless $self->validate_mobile($self->{-args}->{'MOBILE'}); + + return 0 unless $self->validate_role('GOD'); + + my $mobtype = $self->{-mob}->{'TYPE'}; + my $mobloc = $self->{-mob}->{'LOCATION'}; + my $mobcount = $self->{-mob}->{'COUNT'}; + + return 0 unless $self->test(sub{$self->{-mob}->{'TYPE'} eq 'WARRIOR'}, + 'MSG_WRONG_TYPE', + $self->{-context}->mobile_string($mobtype,1), + $mobloc); + + $self->{-count} = $self->{-args}->{'COUNT'} > $mobcount ? + $mobcount : $self->{-args}->{'COUNT'}; + + return 0 unless $self->test_mana('BLESS_HERO',$self->{-count}); + + return 1; +} + +# this is called from Scheduler, if he see the command the +# first time, some commands execute here immidiatly. +# BLESS_HERO +sub first_phase{ + my $self = shift; + + return 0 unless $self->is_valid(); + + + my $id = $self->{-mob}->{'ID'}; + $self->conditional_split_mobile($self->{-mob}, + $self->{-count}, + {'ADORING' => $self->{-player}, + 'TYPE' => 'HERO', + 'COMMAND_ID' => $self->{-dbhash}->{'ID'}}, + 'beforeafter'); + + # reread mobile, because split destroys it + $self->{-mob} = $self->{-db}->single_hash_select('MOBILE',"ID=$id"); + $self->unify_mobiles($self->{-mob}, + $self->{-mob}->{'LOCATION'}, + $self->{-mob}->{'OWNER'}); + +# $self->{-context} +# ->send_message_to_field +# ($self->{-mob}->{'LOCATION'}, +# {'MFROM' => 0, +# 'MSG_TAG' => 'MSG_BLESS_HERO', +# 'ARG1' => $self->{-context}->charname($self->{-player}), +# 'ARG2' => $self->{-context}->charname($self->{-mob}->{'OWNER'}), +# 'ARG3' => $self->{-mob}->{'LOCATION'}}); + + $self->use_mana(); + $self->setDuration(0); + + return 0; +} + +# this is called from scheduler when the command will be executed +sub second_phase{ + my $self = shift; + Util::log("BLESS_HERO should not have a second phase!",0); + return 0; +} + +# +# End of BLESS_HERO +# +#################################################### + +########################################################## +# +# CH_ACTION +# + +package CH_ACTION; +@CH_ACTION::ISA = qw(AymCommand); +use Data::Dumper; + +# this is called to see if the command is executable. +# it should be called from first_phase() and from second_phase(). +# it is not called from the scheduler +sub is_valid { + my $self = shift; + + my @required_arguments = ('ACTION','MOBILE'); + return 0 unless $self->Command::is_valid(@required_arguments); + + return 0 unless $self->validate_mobile($self->{-args}->{'MOBILE'}); + + return 0 unless $self->validate_role('GOD'); + + my $mobtype = $self->{-mob}->{'TYPE'}; + my $mobloc = $self->{-mob}->{'LOCATION'}; + + return 0 unless $self->test(sub{$mobtype eq 'AVATAR'}, + 'MSG_WRONG_TYPE', + $self->{-context}->mobile_string($mobtype,1), + $mobloc); + + return 1; +} + +# this is called from Scheduler, if he see the command the +# first time, some commands execute here immidiatly. +# CH_ACTION +sub first_phase{ + my $self = shift; + + return 0 unless $self->is_valid(); + + my $mob = $self->{-mob}; + my $loc = $mob->{'LOCATION'}; + my $own = $self->{-player}; + my $action = $self->{-args}->{'ACTION'}; + + # all avatars in the field get the new status + $self->{-db}->update_hash('MOBILE', + "LOCATION=$loc AND TYPE=AVATAR AND OWNER=$own ". + "AND GAME=$self->{-game} AND AVAILABLE=Y", + {'STATUS' => $action}); + + $mob->{'STATUS'} = $action; + $self->enter_field_avatar($loc,$mob) if $action eq 'BLOCK'; + +# $self->{-context} +# ->send_message_to_field +# ($self->{-mob}->{'LOCATION'}, +# {'MFROM' => 0, +# 'MSG_TAG' => 'MSG_CH_ACTION', +# 'ARG1' => $self->{-args}->{'ACTION'}, +# 'ARG2' => $self->{-mob}->{'LOCATION'}}); + + $self->setDuration(0); + return 0; +} + +# this is called from scheduler when the command will be executed +sub second_phase{ + my $self = shift; + Util::log("CH_ACTION should not have a second phase!",0); + return 0; +} + +# +# End of CH_ACTION +# +#################################################### + +#################################################### +# +# DIE_ORDER: Change the order of mobiletypes which dies in battle +# + +package DIE_ORDER; +@DIE_ORDER::ISA = qw(AymCommand); + +sub is_valid{ + my ($self) = @_; + + my @required_arguments = ('DYING'); + return 0 unless $self->Command::is_valid(@required_arguments); + + return 0 unless $self->validate_role('EARTHLING'); + + # TODO: use test with message + return 0 unless Util::is_in($self->{-args}->{'DYING'}, + 'PKH','PHK','KPH','KHP','HKP','HPK'); + + return 1; +} + +# DIE_ORDER +sub first_phase{ + my $self = shift; + return 0 unless $self->is_valid(); + + my $dying = $self->{-args}->{'DYING'}; + + $self->{-db}->update_hash('EARTHLING', + "GAME=$self->{-game} AND ". + "PLAYER=$self->{-player}", + {'DYING' => $dying}); + + $self->{-context}->send_message_to_me({'MFROM' => 0, + 'MSG_TAG' => 'MSG_DIE_ORDER', + 'ARG1' => $dying + }); + Util::log("New die order for player $self->{-player}: $dying",1); + + $self->setDuration(0); + return 1; +}; + +sub second_phase{ + my $self = shift; + Util::log("Warning: We should not reach phase 2 with command DIE_ORDER",0); + return 0; +}; + +# +# END of DIE_ORDER +# +################################################################ + + +########################################################## +# +# CH_LUCK +# + +package CH_LUCK; +@CH_LUCK::ISA = qw(AymCommand); +use Data::Dumper; + +# this is called to see if the command is executable. +# it should be called from first_phase() and from second_phase(). +# it is not called from the scheduler +sub is_valid { + my $self = shift; + + my @required_arguments = ('BONUS'); + return 0 unless $self->Command::is_valid(@required_arguments); + + return 0 unless $self->validate_role('GOD'); + + return 1 if $self->{-phase} == 2; + + return 0 unless $self->test_mana('CH_LUCK', + abs($self->{-args}->{'BONUS'} * $::conf->{-MANA}->{-CH_LUCK})); + + return 1; +} + +# this is called from Scheduler, if he see the command the +# first time, some commands execute here immidiatly. +# CH_LUCK +sub first_phase{ + my $self = shift; + + return 0 unless $self->is_valid(); + + $self->use_mana(); + + return $self->setDuration($::conf->{-DURATION}->{-CH_LUCK}); +} + +# this is called from scheduler when the command will be executed +sub second_phase{ + my $self = shift; + return 0 unless $self->is_valid(); + my $oldfortune = $self->{-context}->read_fortune(); + + my $change = $self->{-args}->{'BONUS'}; + + my $newfortune = $oldfortune + $change; + if($newfortune > $::conf->{-MAX_LUCK}){ + $newfortune = $::conf->{-MAX_LUCK}; + }elsif($newfortune < $::conf->{-MIN_LUCK}){ + $newfortune = $::conf->{-MIN_LUCK}; + } + + $self->{-db}->update_hash('GAME', + "GAME=$self->{-game}", + {'FORTUNE' => $newfortune}); + + $self->{-context} + ->send_message_to_all + ({'MFROM' => 0, + 'MSG_TAG' => 'MSG_CHANGE_FORTUNE', + 'ARG1' => $self->{-context}->charname($self->{-player}), + 'ARG2' => $oldfortune, + 'ARG3' => $newfortune}); + + + return 0; +} + +# +# End of CH_LUCK +# +#################################################### + +########################################################## +# +# FLOOD +# + +package FLOOD; +@FLOOD::ISA = qw(AymCommand); +use Data::Dumper; + +# this is called to see if the command is executable. +# it should be called from first_phase() and from second_phase(). +# it is not called from the scheduler +sub is_valid { + my $self = shift; + my $db = $self->{-db}; + my $context = $self->{-context}; + my $loc = $self->{-location}; + + my @required_arguments = (); + return 0 unless $self->Command::is_valid(@required_arguments); + + return 0 unless $self->validate_role('GOD'); + + # only PLAIN and MOUNTAIN can be flooded + my ($terrain) = $context->read_field('TERRAIN', $loc); + return 0 unless $self->test(sub{Util::is_in($terrain,'PLAIN','MOUNTAIN');}, + 'MSG_CANT_FLOOD_TERRAIN', + $loc, + $terrain); + $self->{-terrain} = $terrain; + + return 1; +} + +# this is called from Scheduler, if he see the command the +# first time, some commands execute here immidiatly. +# FLOOD +sub first_phase{ + my $self = shift; + + return 0 unless $self->is_valid(); + + my $loc = $self->{-location}; + + # need own avatar to flood + return 0 unless $self->avatar_available($loc); + return 0 unless $self->test_mana('FLOOD'); + $self->use_mana(); + + $self->setDuration($::conf->{-DURATION}->{-FLOOD}); + + $self->event($self->{-location}, + 'EVENT_FLOOD', + $self->{-player}); + + return $self->{-duration}; +} + +# this is called from scheduler when the command will be executed. +# FLOOD +sub second_phase{ + my $self = shift; + my $loc = $self->{-location}; + my $db = $self->{-db}; + + return 0 unless $self->is_valid(); + + # mountain -> isle, plain -> water + my $new = $self->{-terrain} eq 'MOUNTAIN' ? 'ISLE' : 'WATER'; + $db->update_hash('MAP',"LOCATION=$loc AND GAME=$self->{-game}", + {'TERRAIN' => $new}); + + # drowning of mobiles if necessary + $self->drowning($loc); + + # Message + $self->{-context} + ->send_message_to_field + ($loc,{'MFROM' => 0, + 'MSG_TAG' => 'MSG_FLOOD', + 'ARG1' => $self->{-context}->charname($self->{-player}), + 'ARG2' => $loc, + 'ARG3' => $self->{-terrain}, + 'ARG4' => $new,}); + + return 0; +} + +# +# End of FLOOD +# +#################################################### + +########################################################## +# +# DESTROY +# + +package DESTROY; +@DESTROY::ISA = qw(AymCommand); +use Data::Dumper; + +# this is called to see if the command is executable. +# it should be called from first_phase() and from second_phase(). +# it is not called from the scheduler +sub is_valid { + my $self = shift; + my $db = $self->{-db}; + my $context = $self->{-context}; + my $loc = $self->{-location}; + + my @required_arguments = (); + return 0 unless $self->Command::is_valid(@required_arguments); + + return 0 unless $self->validate_role('GOD'); + + return 0 unless $self->test_mana('DESTROY'); + + # we cant destroy if there is only one temple unbuild + # TODO: wrong. should be cant destroy, if last temple is under construction + my $unbuild = $db->count('MAP', + "(TERRAIN=ISLE OR TERRAIN=MOUNTAIN) ". + "AND TEMPLE=N AND GAME=$self->{-game}"); + return 0 unless $self->test(sub{$unbuild > $::conf->{-MAX_UNBUILD_DESTROY}}, + 'MSG_CANT_RESCUE_WORLD', + $unbuild, + $loc); + + # need own avatar to destroy + return 0 unless $self->avatar_available($loc); + + # there sould be no foreign priests + my $foreign_priests = $db->count('MOBILE', + "GAME=$self->{-game} AND ". + "LOCATION=$loc AND TYPE=PRIEST AND ". + "ADORING!=$self->{-player} AND ". + "AVAILABLE=Y"); + return 0 unless $self->test(sub{$foreign_priests == 0}, + 'MSG_CANT_DESTROY_DEFENDED', + $loc); + + my ($terrain,$temple,$home) = $context->read_field('TERRAIN,TEMPLE,HOME', + $loc); + + # only if temple exists + return 0 unless $self->test(sub{$temple eq 'Y'}, + 'MSG_NO_TEMPLE_TO_DESTROY', + $loc); + + # only destroy foreign temples + return 0 unless $self->test(sub{$home != $self->{-player}}, + 'MSG_CANT_DESTROY_OWN', + $loc); + $self->{-oldgod} = $home; + + # only on islands + return 0 unless $self->test(sub{$terrain eq 'ISLE'}, + 'MSG_CANT_DESTROY_MOUNTAINS', + $loc); + + return 1; +} + +# this is called from Scheduler, if he see the command the +# first time, some commands execute here immidiatly. +# DESTROY +sub first_phase{ + my $self = shift; + my $loc = $self->{-location}; + + return 0 unless $self->is_valid(); + + $self->use_mana(); + + $self->{-db}->update_hash('MAP', + "LOCATION=$loc AND GAME=$self->{-game}", + {'TEMPLE' => 'N', + 'HOME' => 0}); + + # delete PRAY- and PRODUCE-commands and PRODUCE-PRIEST event + $self->{-db}->delete_from('COMMAND', + "(COMMAND=PRODUCE OR COMMAND=PRAY) ". + "AND LOCATION=$loc AND GAME=$self->{-game}"); + $self->{-db}->delete_from('EVENT', + "TAG=EVENT_PRODUCE_PRIEST ". + "AND LOCATION=$loc AND GAME=$self->{-game}"); + + $self->{-context} + ->send_message_to_field + ($loc, + {'MFROM' => 0, + 'MSG_TAG' => 'MSG_TEMPLE_DESTROYD', + 'ARG1' => $loc, + 'ARG2' => $self->{-context}->charname($self->{-oldgod}), + 'ARG3' => $self->{-context}->charname($self->{-player}) + }); + + Util::log("Temple of $self->{-oldgod} destroyed in $self->{-location}",1); + + $self->setDuration(0); + + return 0; +} + +# this is called from scheduler when the command will be executed +sub second_phase{ + my $self = shift; + Util::log("DESTROY should not have a second phase!",0); + return 0; +} + +# +# End of DESTROY +# +#################################################### + +########################################################## +# +# MOVE_WITH +# + +package MOVE_WITH; +@MOVE_WITH::ISA = qw(AymCommand); +use Data::Dumper; + +# this is called to see if the command is executable. +# it should be called from first_phase() and from second_phase(). +# it is not called from the scheduler +sub is_valid { + my $self = shift; + + my @required_arguments = ('MOBILE','COUNT','TARGET'); + return 0 unless $self->Command::is_valid(@required_arguments); + + my $args = $self->{-args}; + my $count = $args->{'COUNT'}; + + # TODO: more messages + # read mobile + return 0 unless $self->validate_mobile($args->{'MOBILE'}); + my $mob = $self->{-mob}; + + # arks cant move with other units + return 0 if $self->{-mob}->{'TYPE'} eq 'ARK'; + + return 0 unless $self->test(sub {$count <= $mob->{'COUNT'} and + $mob->{'AVAILABLE'} eq 'Y'}, + 'MSG_NOT_ENOUGH_MOBILES', + 'MOVE', + $count, + $mob->{'LOCATION'}); + + return 1; +} + +# this is called from Scheduler, if he see the command the +# first time, some commands execute here immidiatly. +# MOVE_WITH +sub first_phase{ + my $self = shift; + + return 0 unless $self->is_valid(); + + my $args = $self->{-args}; + + $self->move_with($args->{'MOBILE'},$args->{'TARGET'},$args->{'COUNT'}); + + return 0; +} + +# this is called from scheduler when the command will be executed +sub second_phase{ + my $self = shift; + Util::log("MOVE_WITH should not have a second phase!",0); + return 0; +} + +# +# End of MOVE_WITH +# +#################################################### + +########################################################## +# +# SEND_MSG +# + +# TODO: should be in FROGS/Command.pm + +package SEND_MSG; +@SEND_MSG::ISA = qw(AymCommand); +use Data::Dumper; + +# this is called to see if the command is executable. +# it should be called from first_phase() and from second_phase(). +# it is not called from the scheduler +sub is_valid { + my $self = shift; + + my @required_arguments = ('OTHER','MESSAGE'); + return 0 unless $self->Command::is_valid(@required_arguments); + + return 1; +} + +# this is called from Scheduler, if he see the command the +# first time, some commands execute here immidiatly. +# MOVE_WITH +sub first_phase{ + my $self = shift; + + return 0 unless $self->is_valid(); + + my $args = $self->{-args}; + + Util::log("send message from $self->{-player} to $args->{'OTHER'}.",1); + + my $msg = $args->{'MESSAGE'}; + + # uggly workaround necessary for Command::parse_args() + $msg =~ s/__COMMA__/,/g; + $msg =~ s/__EQUAL__/=/g; + # newline should be in html + $msg =~ s/\\r\\n/
/g; + + $self->{-context}->send_message_to($args->{'OTHER'}, + {'MFROM' => $self->{-player}, + 'MSG_TEXT' => $msg}); + + return 0; +} + +# this is called from scheduler when the command will be executed +sub second_phase{ + my $self = shift; + Util::log("SEND_MSG should not have a second phase!",0); + return 0; +} + +# +# End of SEND_MSG +# +#################################################### + +########################################################## +# +# FIGHT_GOD +# + +package FIGHT_GOD; +use Data::Dumper; +@FIGHT_GOD::ISA = qw(AymCommand); + +# this is called to see if the command is executable. +# it should be called from first_phase() and from second_phase(). +# it is not called from the scheduler +sub is_valid { + my $self = shift; + + my @required_arguments = ('A','B'); + return 0 unless $self->Command::is_valid(@required_arguments); + + my $A = $self->{-args}->{'A'}; + my $B = $self->{-args}->{'B'}; + my $loc = $self->{-dbhash}->{'LOCATION'}; + + # dont accept a new FIGHT_GOD if there is allready a fight between the same gods + my $fights = $self->{-db}->select_array('COMMAND','ARGUMENTS', + "GAME=$self->{-game} AND ". + "COMMAND=FIGHT_GOD AND ". + "ID != $self->{-dbhash}->{'ID'} AND ". + "LOCATION=$loc"); + for my $f (@$fights){ + my $args = $self->parse_args($f->[0]); + + if( $args->{'A'} == $A and $args->{'B'} == $B){ + Util::log("there is allready such a fight between $A and $B in $loc.",1); + return 0; + } + } + + # could not work, command can be inserted from earthling. + # return 0 unless $self->validate_role('GOD'); + + # return 0 unless $self->validate_this_role($self->{-args}->{'A'},'GOD'); + # return 0 unless $self->validate_this_role($self->{-args}->{'B'},'GOD'); + + return 1; +} + +# this is called from Scheduler, if he sees the command the +# first time, some commands execute here immidiatly. +# FIGHT_GOD +sub first_phase{ + my $self = shift; + + return 0 unless $self->is_valid(); + + # calculate duration + $self->setDuration($::conf->{-DURATION}->{-FIGHT_GOD}); + + # set GOD_ATTACKER in MAP to COMMAND.ID + $self->{-db}->update_hash('MAP', + "LOCATION=$self->{-location} AND ". + "GAME=$self->{-game}", + {'GOD_ATTACKER' => $self->{-dbhash}->{'ID'}}); + + $self->event($self->{-location}, + 'EVENT_FIGHT_GOD', + $self->{-context}->charname($self->{-args}->{'A'}), + $self->{-context}->charname($self->{-args}->{'B'}), + ); + + return $self->{-duration}; +} + +# this is called from scheduler when the command will be executed. +# FIGHT_GOD +sub second_phase{ + my $self = shift; + + return 0 unless $self->is_valid(); + + # read info from map + my ($earthlingfight,$earthling); + ($earthlingfight, $self->{-god_attacker}, $earthling) = + $self->{-context}->read_field( + 'ATTACKER,GOD_ATTACKER,OCCUPANT', $self->{-location} + ); + + # suspend FIGHT until end of FIGHT_GOD if any + # REWRITE: suspend of avatar fight have to be encapsulated + if($earthlingfight){ + ## REWRITE: SQL: sort events up to time, limit output to ONE + # read all earthling-events for this field. + my @events = @{$self->{-db}->select_array('EVENT','ID,TIME', + "GAME=$self->{-game} AND ". + "LOCATION=$self->{-location} AND ". + "TAG=FIGHT_EARTHLING")}; + # which one is the latest? + my ($late_time, $late_id) = (0,0); + for my $ev (@events){ + my ($id, $time) = @$ev; + my $ev_time = &::str2time($time,'GMT'); + Util::log("found FIGHT_EARTHLING with time $time",1); + ($late_time, $late_id) = ($ev_time, $id) if $ev_time > $late_time; + } + + # insert new godfight with one second more. + # TODO: use here the new AFTER-System instead + my ($year,$month,$day, $hour,$min,$sec) = &::Time_to_Date($late_time + 1); + $late_time = sprintf ("%04u-%02u-%02u %02u:%02u:%02u", + $year,$month,$day, $hour,$min,$sec); + Util::log("found earthling fight! suspend godfight until $late_time",1); + $self->{-context}->insert_command('FIGHT_GOD', + "A=$self->{-args}->{'A'}, ". + "B=$self->{-args}->{'B'}", + $self->{-location}, + $self->{-player}, + $late_time); + $self->{-db}->update_hash('EVENT', + "COMMAND_ID=$self->{-dbhash}->{'ID'}", + {'TIME' => $late_time}); + $self->stop_fight(); + return 0; + } + + # get all mobiles here + my $mobiles = $self->{-context}->read_mobile_condition( + 'ID,OWNER,COUNT,TYPE', + "LOCATION=$self->{-location} "."AND AVAILABLE=Y" + ); + $self->{-mobiles} = $mobiles; + + my $A = $self->{-args}->{'A'}; + my $B = $self->{-args}->{'B'}; + my ($avatars_A, $avatars_B) = (0,0); + + # for every avatar-unit in the field + # REWRITE: this block tries to count the opposing avatars: simplify! + for my $a (@$mobiles){ + my ($id,$own,$count,$type) = @$a; + next unless $type eq 'AVATAR'; + + Util::log("found $count avatar(s) from $own with id $id",1); + + # determine side of owner + my $side = $self->which_side($own); + + # calculate strength_of_side + if($side eq 'A'){ + $avatars_A += $count; + }elsif($side eq 'B'){ + $avatars_B += $count; + } + } + + my $mana = $::conf->{-MANA}->{-FIGHT_AVATAR}; + my $mana_A = $self->instant_use_mana($mana,$A); + my $mana_B = $self->instant_use_mana($mana,$B); + my $strength_A = $avatars_A * $::conf->{-FIGHT}->{-AVATAR}; + my $strength_B = $avatars_B * $::conf->{-FIGHT}->{-AVATAR}; + + # TODO?: message in this case + unless($mana_A >= $mana){ + Util::log("$A has not enough mana left to fight",1); + $strength_A = 0; + }; + unless($mana_B >= $mana){ + Util::log("$B has not enough mana left to fight",1); + $strength_B = 0; + }; + + # swl: Strength_Without_Luck strenght_X: Strenght_with_luck + my ($swlA,$swlB) = ($strength_A,$strength_B); + + # add random value (1 to GAME.FORTUNE) + my $fortune = $self->{-context}->read_fortune(); + Util::log("avatarfight in $self->{-location}: strength without fortune player $A: ". + "$strength_A, player $B: $strength_B",1); + $strength_A += int(rand($fortune))+1; + $strength_B += int(rand($fortune))+1; + Util::log("strength with fortune player $A: ". + "$strength_A, player $B: $strength_B",1); + + # how much avatars should die? + my ($dead_A,$dead_B) = (0,0); + my ($winner,$looser) = (0,0); + + if( ($strength_A > $strength_B && $mana_A) or + $mana_A && !$mana_B ) + { + Util::log("$A wins!",1); + $winner = $A; $looser = $B; + ($dead_A, $dead_B) = _calc_dead_avatars($avatars_A, $avatars_B); + } + elsif( ($strength_B > $strength_A && $mana_B) or + $mana_B && !$mana_A ) + { + Util::log("$B wins!",1); + $winner = $B; $looser = $A; + ($dead_B, $dead_A) = _calc_dead_avatars($avatars_B, $avatars_A); + } + else + { + Util::log("Both sides looses!",1); + ($dead_A, $dead_B) = _calc_dead_avatars($avatars_A, $avatars_B, 'drawn'); + } + + my ($new_heros_A, $new_heros_B) = (0,0); + $new_heros_A = $self->die($A, $dead_A, $earthling) if $dead_A; + + # re-read mobiles + $self->{-mobiles} = $self->{-context}-> + read_mobile_condition('ID,OWNER,COUNT,TYPE', + "LOCATION=$self->{-location} ". + "AND AVAILABLE=Y"); + + $new_heros_B = $self->die($B,$dead_B,$earthling) if $dead_B; + + # surviving loosers go home + if($looser){ + $self->teleport($looser); + }else{ + # both sides are looser! + $self->teleport($A); + $self->teleport($B); + } + + $self->stop_fight(); + + my $earthling_name = $self->{-context}->charname($earthling); + my $name_of_A = $self->{-context}->charname($A); + my $name_of_B = $self->{-context}->charname($B); + my $asf = $strength_A - $swlA; + my $dsf = $strength_B - $swlB; + $winner = $winner ? $self->{-context}->charname($winner) : 'NOBODY'; + + my $text = <BATTLE_REPORT $self->{-location}
+ + + + + + + + + + +
$name_of_A$name_of_B
MOBILE_AVATAR_PL$avatars_A$avatars_B
FIGHTING_STRENGTH$swlA$swlB
LUCK$asf$dsf
SUM_OF_STRENGTH$strength_A$strength_B
DEAD_AVATARS$dead_A$dead_B
NEW_HEROS $earthling_name$new_heros_A$new_heros_B
+ WINNER_IS $winner. +END_OF_TEXT + + $self->{-context}->send_message_to_field( + $self->{-location}, + {'MFROM' => 0, 'MSG_TEXT' => $text} + ); +} + +# _calc_dead_avatars +# Calculates number of dead avatars on winner's and looser's side. +# +# Parameters: +# - # winner avatars +# - # looser avatars +# - drawn [OPTIONAL, boolean] +# +# Returns: +# - # dead winner avatars +# - # dead looser avatars +# +sub _calc_dead_avatars +{ + my ($winner, $looser, $drawn) = @_; + my ($dead_winner, $dead_looser) = (0,0); + + # the winner counts as looser if the fight is drawn! + if (defined $drawn && $drawn) + { + $dead_winner = Util::max( + 1, + int(0.5 + $looser / $::conf->{-LOOSER_AVATARS_DYING_FRACTION}) + ); + } + else + { + $dead_winner = Util::min( + $winner - 1, + int(0.5 + $looser / $::conf->{-WINNER_AVATARS_DYING_FRACTION}) + ); + } + + $dead_looser = Util::max( + 1, + int(0.5 + $winner / $::conf->{-LOOSER_AVATARS_DYING_FRACTION}) + ); + + # ensure that there not dying more avatars than existing + $dead_looser = $dead_looser > $looser ? $looser : $dead_looser; + $dead_winner = $dead_winner > $winner ? $winner : $dead_winner; + + return ($dead_winner, $dead_looser); +} + + + +# set MAP.GOD_ATTACKER to 0, if there is our own command-ID +sub stop_fight{ + my($self) = @_; + + my $own_command = $self->{-dbhash}->{'ID'}; + if($own_command == $self->{-god_attacker}){ + $self->{-db}->update_hash('MAP', + "LOCATION=$self->{-location} AND ". + "GAME=$self->{-game}", + {'GOD_ATTACKER' => 0}); + } +} + + +# teleports all of $god from $loc to location of avatar-creation +sub teleport{ + my($self,$god) = @_; + my $loc = $self->{-location}; + + # teleport surviving avatars of looser to home + my $home = $self->{-context}->incarnation_place($god); + Util::log("We teleport all Avatars of $god from $loc to $home.",1); + + $self->{-db}->update_hash('MOBILE', + "TYPE=AVATAR AND OWNER=$god AND AVAILABLE=Y AND ". + "LOCATION=$self->{-location}", + {'LOCATION' => $home}); + + # get all avatar there + my $avatars = $self->{-context}->read_mobile_condition('ID', + "LOCATION=$home ". + "AND OWNER=$god ". + "AND TYPE=AVATAR ". + "AND AVAILABLE=Y"); + # dont call this more than one time! + #for my $avat (@$avatars){ + my ($id) = $avatars->[0]->[0]; + $self->enter_field_avatar($home,$id); + #} +} + + +# kills $to_kill avatars of owner in location and create heros for earthling, +# if possible +sub die{ + my ($self,$owner,$to_kill,$earthling) = @_; + Util::log("$to_kill avatars from $owner dying.",1); + + my $loc = $self->{-location}; + my $mobiles = $self->{-mobiles}; + + my $to_hero = $to_kill; + my $real_to_hero = 0; + for my $a (@$mobiles){ + my ($id,$own,$count,$type) = @$a; + if($own eq $owner and $to_kill){ + if($count <= $to_kill){ + $self->{-db}->delete_from('MOBILE', "ID=$id"); + $to_kill -= $count; + # last unless $to_kill > 0; + }else{ + $self->{-db}->update_hash('MOBILE', "ID=$id", {'COUNT' => ($count - $to_kill)}); + $to_kill = 0; + # last; + } + # add the strength of the death avatar to gods last battle + #my ($actual) = $self->{-db}->single_select("SELECT DEATH_AVATAR FROM GOD WHERE ". + #"GAME=$self->{-game} AND ". + # # "PLAYER=$owner"); + # Util::log("AVATAR dying: adds strength to last-battle-strength of $owner",1); + # $self->{-db}->update_hash('GOD', + # "GAME=$self->{-game} AND PLAYER=$owner", + # {'DEATH_AVATAR' => $actual + 1}); + + # $self->{-context} + # ->send_message_to + # ($loc,$owner, + # {'MFROM' => 0, + # 'MSG_TAG' => 'MSG_AVATAR_DEAD', + # 'ARG1' => $loc, + # 'ARG2' => $self->{-context}->charname($owner)}); + # Util::log("One avatar of $owner died in $loc.",1); + # last; + }elsif($own eq $earthling and $type eq 'WARRIOR' and $to_hero){ + if($count <= $to_hero){ + $self->{-db}->delete_from('MOBILE', "ID=$id"); + $to_hero -= $count; + $real_to_hero += $count; + # last unless $to_hero > 0; + }else{ + $self->{-db}->update_hash('MOBILE', "ID=$id", {'COUNT' => $count-$to_hero}); + $real_to_hero += $to_hero; + $to_hero = 0; + # last; + } + } + last if $to_kill <= 0 and $to_hero <= 0; + } + + if($real_to_hero){ + my $id = $self->{-db}->find_first_free('MOBILE','ID'); + my $mob = {'ID' => $id, + 'GAME' => $self->{-game}, + 'LOCATION' => $self->{-location}, + 'TYPE' => 'HERO', + 'OWNER' => $earthling, + 'COUNT' => $real_to_hero, + 'ADORING' => $owner, + 'AVAILABLE' => 'Y', + 'COMMAND_ID' => $self->{-dbhash}->{'ID'}, + }; + # $self->{-mob} = $mob; + my %mobcopy = (%$mob); + $self->{-db}->insert_hash('MOBILE',\%mobcopy); + $self->unify_mobiles($id,$self->{-location},$earthling); + Util::log("$real_to_hero warriors from $earthling blessed to hero",1); + } + return $real_to_hero; +} + +# this function decides on which side other gods fight +# TODO: do we really need this complicated stuff +sub which_side{ + my($self,$own) = @_; + + my $A = $self->{-args}->{'A'}; + my $B = $self->{-args}->{'B'}; + + my $side = '0'; + $side = 'A' if $own == $A; + $side = 'B' if $own == $B; + + if ($side eq '0') { + my $allA = $self->{-context}->simplyfied_single_relation($own,$A); + my $allB = $self->{-context}->simplyfied_single_relation($own,$B); + if ($allA eq $allB) { + $side = '0'; + } elsif ($allA eq 'FRIEND') { + $side = 'A'; + } elsif ($allB eq 'FRIEND') { + $side = 'B'; + } elsif ($allA eq 'FOE') { + $side = 'B'; + } elsif ($allB eq 'FOE') { + $side = 'A'; + } + } + return $side; +} + +# +# End of FIGHT_GOD +# +#################################################### + +########################################################## +# +# PLAGUE +# + +package PLAGUE; +@PLAGUE::ISA = qw(AymCommand); +use Data::Dumper; + +# this is called to see if the command is executable. +# it should be called from first_phase() and from second_phase(). +# it is not called from the scheduler +sub is_valid { + my $self = shift; + + my @required_arguments = ('TYPE'); + return 0 unless $self->Command::is_valid(@required_arguments); + + # test role god + return 0 unless $self->validate_role('GOD'); + + # test known plagues + unless(Util::is_in($self->{-args}->{'TYPE'},@{$::conf->{-PLAGUES}})){ + Util::log("wrong type of plague: $self->{-args}->{'TYPE'}",0); + return 0; + } + + return 1; +} + +# this is called from Scheduler, if he see the command the +# first time, some commands execute here immidiatly. +# PLAGUE +sub first_phase{ + my $self = shift; + + return 0 unless $self->is_valid(); + + my $args = $self->{-args}; + my $loc = $self->{-dbhash}->{'LOCATION'}; + my $type = $args->{'TYPE'}; + my $spread = $args->{'SPREAD'}; + my $context = $self->{-context}; + + my ($plague,$terrain) = $context->read_field('PLAGUE,TERRAIN', $loc); + $plague = '' unless defined $plague; + + Util::log("old plague: $plague",1); + + # if plagu not allready here + unless($plague =~ /$type/){ + + if(not $spread){ + # need own avatar to plague + return 0 unless $self->avatar_available($loc); + + if($self->test_mana($type,1)){ + $self->use_mana(); + }else{ + return 0; + } + } + Util::log("new plague in $loc: $type",1); + + # set plague in MAP + my $new_plague = $plague ? "$plague,$type" : $type; + $self->{-db}->update_hash('MAP', + "GAME=$self->{-game} AND ". + "LOCATION=$loc", + {'PLAGUE' => $new_plague}); + }else{ + Util::log("plague $type is allready in $loc.",1); + # stop if there is another plague command in location of same type. + # TODO: simplify this with a LIKE-clause, + # but: we have to rewrite quote_condition() first :-( + my $commands = $self->{-db}->select_array('COMMAND', + 'ARGUMENTS,ID', + "COMMAND=PLAGUE AND ". + "GAME=$self->{-game} AND ". + "LOCATION=$loc AND ". + "ID != $self->{-dbhash}->{'ID'}"); + for my $c (@$commands){ + my ($args,$id) = @$c; + # next if $id == $self->{-dbhash}->{'ID'}; + if($args =~ /$type/){ + Util::log("There is allready another PLAGUE-command of $type in $loc",1); + return 0; + } + } + } + + $self->setDuration($::conf->{-DURATION}->{-PLAGUE}); + return $self->{-duration}; +} + +# this is called from scheduler when the command will be executed +# PLAGUE +sub second_phase{ + my $self = shift; + my $loc = $self->{-dbhash}->{'LOCATION'}; + my $type = $self->{-args}->{'TYPE'}; + my $context = $self->{-context}; + + # heal plague with priests + my $priests = $context->count_mobile('PRIEST',$loc); + my $heal_prob = $priests ? 1 - 1/$priests * $::conf->{-HEAL_PLAGUE} : 0; + Util::log("Heal probability: $heal_prob",1); + if($heal_prob > rand(1)){ + Util::log("heal plague of type $type in $loc",1); + my ($plague) = $context->read_field('PLAGUE,TERRAIN', $loc); + if(defined $plague){ + $plague =~ s/$type//; + $self->{-db}->update_hash('MAP', + "GAME=$self->{-game} AND LOCATION=$loc", + {'PLAGUE' => $plague}); + } + }else{ + # spread plague to neighbour-fields + my @neighbours = $self->get_neighbours(); + for my $field (@neighbours){ + my ($terrain,$owner) = $context->read_field('TERRAIN,OCCUPANT',$field); + # $self->{-occ} = $owner; + if(rand(1) < $::conf->{-SPREAD_PLAGUE}->{$terrain}){ + Util::log("spread $type from $loc to $field",1); + $context->insert_command('PLAGUE',"TYPE=$type, SPREAD=1",$field); + } + } + + $self->effect(); + $self->do_it_again({'SPREAD' => 1}); + } + + return 0; +} + +# PLAGUE +sub effect{ + my $self = shift; + my $context = $self->{-context}; + + my $type = $self->{-args}->{'TYPE'}; + Util::log("Do effect of type $type.",1); + + my $loc = $self->{-dbhash}->{'LOCATION'}; + + # effect of INFLUENZA is done in PRODUCE + if($type eq 'PESTILENTIA'){ + my ($vic) = $context->read_field('OCCUPANT',$loc);; + + # count people of owner in field + my $people = $context->count_people($loc,$vic); + $people = 0 unless defined $people; + Util::log("$people people from $vic counted in $loc.",1); + my $victims = int($people * $::conf->{-PESTILENTIA_DEATH_SHARE}); + Util::log("$victims from them have to die.",1); + return unless $victims; + + $self->{-mobiles} = $context->read_mobile('ID,TYPE,OWNER,COUNT,STATUS', + 0, $self->{-location}, 1); + + $self->casualties($vic,$victims,1); + + # send message + my $name_of_victim = $context->charname($vic); + my $text = <CASUALTIES_OF_PESTILENTIA $self->{-location} $name_of_victim
+ + + + + +
DEAD_WARRIORS$self->{-dead}->{$vic}->{'K'}
DEAD_HEROS$self->{-dead}->{$vic}->{'H'}
DEAD_PRIESTS$self->{-dead}->{$vic}->{'P'}
SUNKEN_ARKS$self->{-dead}->{$vic}->{'A'}
+END_OF_TEXT + + $context->send_message_to_field + ($self->{-location},{'MFROM' => 0, + 'MSG_TEXT' => $text} + # 'ARG1' => $self->{-context}->charname($attacker), + # 'ARG2' => $self->{-context}->charname($defender), + # 'ARG3' => $self->{-context}->charname($self->{-winner}), + # 'ARG4' => $self->{-location}} + ); + #,$attacker,$defender,@gods); + }else{ + Util::log("no effect",1); + } +} + +# +# End of PLAGUE +# +#################################################### +# vim: set ts=4 diff --git a/src/Aymargeddon.pm b/src/Aymargeddon.pm new file mode 100644 index 0000000..7a85977 --- /dev/null +++ b/src/Aymargeddon.pm @@ -0,0 +1,845 @@ +########################################################################## +# +# Copyright (c) 2003 Aymargeddon Development Team +# +# This file is part of "Last days of Aymargeddon" +# +# Aymargeddon is free software; you can redistribute it and/or modify it +# under the terms of the GNU General Public License as published by the Free +# Software Foundation; either version 2 of the License, or (at your option) +# any later version. +# +# Aymargeddon is distributed in the hope that it will be useful, but WITHOUT +# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for +# more details. +# You should have received a copy of the GNU General Public License along +# with this program; if not, write to the Free Software Foundation, Inc., 675 +# Mass Ave, Cambridge, MA 02139, USA. +# +########################################################################### +# + +# generell Aymargeddon-specific functions +# + + +# TODO: move color calculation from map.epl in this module + + +use strict; +use FROGS::Game; +use FROGS::HexTorus; + +package Aymargeddon; +use Data::Dumper; +@Aymargeddon::ISA = qw(Game); + +sub new{ + my ($class,$game,$user,$db,$lang) = @_; + + my $self = Game->new($game,$user,$db); + + bless($self,$class); +} + +sub get_map{ + my $self = shift; + + unless (exists $self->{-map}){ + $self->{-map} = $self->read_map("TERRAIN,HOME,OCCUPANT,TEMPLE,PLAGUE,HOME"); + } + return $self->{-map}; +} + +sub get_size{ + my $self = shift; + + unless ($self->{-size}){ + my @size = $self->{-db}->read_game($self->{-game},'SIZE'); + $self->{-size} = $size[0] ? $size[0] : die "could not find size"; + } + return $self->{-size}; +} + +sub get_relation{ + my ($self, $other) = @_; + + unless ($self->{-rel}){ + # print "bindrin\n"; + # $self->{-rel} = $self->read_player_relations($self->{-game}, $self->{-user}); + $self->{-rel} = $self->read_player_relations($self->{-user}); + } + # print Dumper $self->{-rel}; + my $stat = $self->{-rel}->{$other}->{'STATUS'}; + return $stat ? $stat : 'NEUTRAL'; +} + +# FRIEND, ALLIED => FRIEND ; FOE, BETRAY => FOE +sub simplyfied_single_relation{ + my ($self,$me,$you) = @_; + my $rel = $self->read_single_relation($me,$you); + + return 'FRIEND' if Util::is_in($rel,'FRIEND','ALLIED'); + return 'FOE' if Util::is_in($rel,'FOE','BETRAY'); + return 'NEUTRAL'; +} + + +sub god_fight{ + my ($self,$loc_str) = @_; + my @ret = $self->read_field('GOD_ATTACKER',$loc_str); + return $ret[0] ? 1 : 0; +} + +sub earthling_fight{ + my ($self,$loc_str) = @_; + my @ret = $self->read_field('ATTACKER',$loc_str); + return $ret[0] ? 1 : 0; +} + +sub arc_present{ + my ($self,$loc_str) = @_; + my $arks_ref = $self->read_mobile('ID','ARK',$loc_str,1); + my @arks = @$arks_ref; + return $#arks+1; +} + +sub avatar_present{ + my ($self,$loc_str) = @_; + return $self->read_mobile('OWNER','AVATAR',$loc_str,1); +} + +sub mobiles_available{ + my ($self,$loc_str,$avail) = @_; + $avail = 1 unless defined $avail; + my $fields = 'ID, TYPE, OWNER, ADORING, COUNT, STATUS, MOVE_WITH'; + return $self->read_mobile($fields,'',$loc_str, $avail); +} + + +# +# sight stuff +# +# TODO: maybe the generell sight-stuff could go to Game.pm + +# ATTENTION: this function generates the whole sight-matrix, if necessary. +# it could be very time-consuming +sub player_see_field{ + my ($self,$loc) = @_; + + my @players = $self->get_all_roles(); + + my @ret = (); + for my $player (@players){ + # ($player) = @$player; + my $players_aym = new Aymargeddon($self->{-game},$player, + $self->{-db},$self->{-lang}); + if ($players_aym->sight_of_field($loc)){ + push @ret, $player; + # print "$player sees $loc.\n"; + } + } + return @ret; +} + +# this two functions reads sight directly from database +sub sight_of_field{ + my ($self,$loc) = @_; + + return 1 if $self->role($self->{-user}) eq 'OBSERVER'; # admin sees all + + my $player = $self->{-user}; + my $map = HexTorus->new($self->get_size()); + return 1 if $self->sight_of_field_of_player($loc,$player,$map); + + # read all players, which give us informations + my $rel = $self->reverse_player_relations(); + for my $friend (keys %$rel){ + my $status = $rel->{$friend}->{'STATUS'}; + if($status eq 'ALLIED' or $status eq 'BETRAY'){ + if($self->is_earthling($friend) or $::conf->{-GODS_SHOW_EARTHLINGS}){ + return 1 if $self->sight_of_field_of_player($loc,$friend,$map); + } + } + } + return 0; +} + +sub sight_of_field_of_player{ + my ($self,$loc,$player,$map) = @_; + + my ($ter,$own,$occ,$temple) = $self->read_field('TERRAIN,HOME,OCCUPANT,TEMPLE',$loc); + + return 1 if($own == $player or $occ == $player); + return 1 if @{$self->own_in_mobile($loc,$player)}; + + my $location = Location->from_string($loc); + my $dist = 2; + my @neighbours = $map->distant_neighbours($location,$dist); + # Util::log("neighbours: ",-2); + for my $l (@neighbours){ + my $d = $map->distance($location,$l); + my $locstring = $l->to_string(); + # Util::log(" $locstring ($d),",-2); + + my ($neighbour_ter,$neighbour_home) = $self->read_field('TERRAIN,HOME',$locstring); + next if ($d > 1 && $neighbour_ter ne 'MOUNTAIN'); + return 1 if $neighbour_home == $player; + return 1 if $neighbour_ter eq 'MOUNTAIN' and + $neighbour_home <= 0 and $self->is_god($player); + return 1 if @{$self->own_in_mobile($locstring,$player)}; + } + # Util::log("",2); + return 0; +} + +# this function generates the whole sight if called +sub sight{ + my ($self,$loc_str) = @_; + + return 1 if $self->role($self->{-user}) eq 'OBSERVER'; # admin sees all + + $self->generate_sight() unless $self->{-sight_map}; + + return 1 if $self->{-sight_map}->{$loc_str}; +} + +# overloads the function from Game-Class +sub seen_locations{ + my $self = shift; + + # TODO-PERFORMANCE: make map a self-constructing member of class (like size) + my $map = HexTorus->new($self->get_size()); + + my @ret = (); + for my $loc ($map->get_all()){ + my $ls = $loc->to_string(); + push @ret, $ls if $self->sight($ls); + } + return @ret; +} + +sub generate_sight{ + my ($self) = @_; + + delete $self->{-sight_map}; + + my $rel = $self->reverse_player_relations(); + + $self->sight_of_player($self->{-user}); + for my $player (keys %$rel){ + my $status = $rel->{$player}->{'STATUS'}; + if($status eq 'ALLIED' or $status eq 'BETRAY'){ + if($self->is_earthling($player) or $::conf->{-GODS_SHOW_EARTHLINGS}){ + $self->sight_of_player($player); + } + } + } + + # print Dumper $self->{-sight_map}; +} + +sub sight_of_player{ + my ($self,$player) = @_; + + my $map = HexTorus->new($self->get_size()); + + my $selfmap = $self->get_map(); + + for my $row (@$selfmap){ + my ($loc,$ter,$own,$occ,$temple,$plague,$home) = @$row; + + if($own == $player or $occ == $player + or @{$self->own_in_mobile($loc,$player)} + or ($self->is_god($player) and $ter eq 'MOUNTAIN' and $home <= 0)){ + $self->{-sight_map}->{$loc} = 1; + my $location = Location->from_string($loc); + my $dist = 1; + $dist = 2 if $ter eq 'MOUNTAIN'; + my @neighbours = $map->distant_neighbours($location,$dist); + for my $l (@neighbours){ + $self->{-sight_map}->{$l->to_string()} = 1; + } + } + } +} + +sub is_coast{ + my ($self,$loc_str) = @_; + my ($ter) = $self->read_field('TERRAIN',$loc_str); + return 0 if($ter ne 'PLAIN' and $ter ne 'CITY' and $ter ne 'MOUNTAIN'); + + my $map = HexTorus->new($self->get_size()); + my @neighbours = $map->neighbours(Location->from_string($loc_str)); + for my $loc (@neighbours){ + ($ter) = $self->read_field('TERRAIN',$loc->to_string()); + return 1 if($ter eq 'ISLE' or $ter eq 'WATER'); + } + return 0; +} + +sub is_arrival{ + my ($self, $loc_str) = @_; + + return 1 if $loc_str eq $self->incarnation_place(); + + return 0; +} + +sub is_god{ + my ($self,$player) = @_; + $player = $self->{-user} unless defined $player; + return ($self->role($player) eq 'GOD'); +} + +sub is_earthling{ + my ($self,$player) = @_; + $player = $self->{-user} unless defined $player; + return ($self->role($player) eq 'EARTHLING'); +} + +sub gods{ + my ($self) = @_; + return $self->get_all_roles('GOD'); +} + +sub earthlings{ + my ($self) = @_; + return $self->get_all_roles('EARTHLING'); +} + +sub get_mana{ + my ($self,$player) = @_; + $player = $self->{-user} unless defined $player; + return 0 if $player < 1; + + my $stmt = "SELECT MANA from GOD where GAME=$self->{-game} AND PLAYER=$player"; + my ($mana) = $self->{-db}->single_select($stmt); + return $mana ? $mana : 0; +} + +sub gender{ + my ($self,$player) = @_; + return 0 if $player < 1; + my @gen = $self->read_role($player, 'GENDER'); + return $gen[0]; +} + + +sub field_string{ + my ($self, $type) = @_; + return $self->{-db}->loc('FIELD_'.$type); +} + +sub relation_string{ + my ($self, $other) = @_; + my $rel = $self->get_relation($other); + # print Dumper $rel; + $rel = 'NEUTRAL' if not $rel; + return $self->{-db}->loc('STAT_'.$rel); +} + +sub mobile_string{ + my ($self, $type, $num) = @_; + my $tag = 'MOBILE_'.$type; + $tag .= '_PL' if $num != 1; + return $self->{-db}->loc($tag); +} + +sub mobile_extended_string{ + # count + localised type + adored god if any + my ($self, $type, $num, $adoring) = @_; + my $out = $num.' '.$self->mobile_string($type, $num); + if($type eq 'PRIEST' or $type eq 'PROPHET' or $type eq 'HERO'){ + $out .= ' '.$self->{-db}->loc('ADJ_ADORING').' '.$self->charname($adoring); + } + return $out; +} + +sub role_string{ + my ($self, $player) = @_; + my $role = $self->role($player); + $role = 'UNDEFINED' unless defined $role; + my $tag = "ROLE_$role"; + return $self->{-db}->loc($tag); +} + + +sub new_role{ + my($self,$role,$name,$gender,$desc) = @_; + $desc = 'none' unless defined $desc; + my $db = $self->{-db}; + +# my ($qname, $qgender, $qdesc, $qrole) +# = $db->quote_all($name, $gender, $desc, $role); + + my $cond = 'GAME='.$self->{-game}." AND NICKNAME=$name"; + return 0 if @{$db->select_array('ROLE','GAME',$cond)}; # error: dublicate name + + my @homes; # all possible homes for this role + if($role ne 'OBSERVER'){ + @homes = $self->open_homes($role); + return 0 if $#homes<0; # error: no home free + } + + # dont allow names only in uppercase + return 0 if $name =~ /^\s*[A-Z_]{3,}\s*$/; + + # write in ROLE + $db->insert_hash('ROLE',{'GAME' => $self->{-game}, + 'PLAYER' => $self->{-user}, + 'NICKNAME' => $name, + 'ROLE' => $role, + 'GENDER' => $gender, + 'DESCRIPTION' => $desc} + ); + if($role eq 'OBSERVER'){ + $db->commit(); + return 1; + } + + # choose home: + my $home = $homes[rand($#homes + 1)]->[0]; + + if($role eq 'GOD'){ + # read actual default manapool from GAME + my ($mana,$ts) = $db->read_game($self->{-game},'START_MANA,TEMPLE_SIZE'); + $mana += $ts * 2; + + # write GAME, PLAYER, MANA in GOD + $db->insert_hash('GOD',{'GAME' => $self->{-game}, + 'PLAYER' => $self->{-user}, + 'MANA' => $mana}); + + # choose second and third home + # my $home2 = $home; + # my $home3 = $home; + # if($#homes > 0){ + # while($home2 eq $home or $home3 eq $home or $home2 eq $home3){ + # $home2 = $homes[rand($#homes + 1)]->[0]; + # $home3 = $homes[rand($#homes + 1)]->[0]; + # } + # } + + # # change OWNER in MAP where LOCATION=$home or LOCATION=$home2 + # # ($home,$home2) = $db->quote_all($home,$home2); + # $db->update_hash('MAP', + # "GAME=$self->{-game} AND". + # " (LOCATION=$home OR LOCATION=$home2 OR LOCATION=$home3)", + # {'HOME' => $self->{-user}}); + + }else{ # eartling + # write GAME, PLAYER in EARTHLING + $db->insert_hash('EARTHLING',{'GAME' => $self->{-game}, + 'PLAYER' => $self->{-user}}); + + # change OCCUPANT, OWNER in MAP where LOCATION=$home + # ($home) = $db->quote_all($home); + $db->update_hash('MAP', + "GAME=$self->{-game} AND LOCATION=$home", + {'HOME' => $self->{-user}, + 'OCCUPANT' => $self->{-user}}); + + # change PLAYER of WARRIORS OR PRIESTs in MOBILE where LOCATION=$home + $db->update_hash('MOBILE', + "GAME=$self->{-game} AND LOCATION=$home AND OWNER=-1", + {'OWNER' => $self->{-user}}); + + # give additional start-warriors + my $warriors = $db->select_array('MOBILE', + 'ID,COUNT', + "GAME=$self->{-game} AND LOCATION=$home ". + "AND OWNER=$self->{-user} AND TYPE=WARRIOR"); + my @w = @$warriors; + if($#w > -1){ + $db->update_hash('MOBILE', + "ID=$w[0]->[0]", + {'COUNT' => "COUNT + $::conf->{-START_WARRIORS}"}, + 'noquote'); + }else{ + $db->insert_hash('MOBILE', + {'ID' => $db->find_first_free('MOBILE','ID'), + 'GAME' => $self->{-game}, + 'LOCATION' => $home, + 'TYPE' => 'WARRIOR', + 'COUNT' => $::conf->{-START_WARRIORS}, + 'OWNER' => $self->{-user}, + 'AVAILABLE' => 'Y'}); + } + + # modify PRODUCE Command + $db->update_hash('COMMAND', + "GAME=$self->{-game} AND COMMAND=PRODUCE ". + "AND LOCATION=$home", + # TODO: open question: is this redundant information? + {'PLAYER' => $self->{-user}, + 'ARGUMENTS' => "ROLE=$self->{-user}"}); + + } + + # TODO: write MESSAGE to all members of this game: new player with role! + + + $db->commit(); + return 1; +} + +sub startfield{ + my ($self) = @_; + + my $cond = "GAME=$self->{-game} AND "; + if($self->role($self->{-user}) eq 'OBSERVER'){ + $cond .= 'TERRAIN='.$self->{-db}->quote('AYMARGEDDON'); + }else{ + $cond .= "HOME=$self->{-user}"; + } + # TODO: what happens if both mountains are flooded? + return $self->{-db}->select_array('MAP','LOCATION',$cond)->[0]->[0]; +} + + +sub open_homes{ + my ($self,$role) = @_; + my $terrain = ($role eq 'GOD') ? 'MOUNTAIN' : 'CITY'; + # ($terrain) = $self->{-db}->quote_all($terrain); + my $cond = 'GAME='.$self->{-game}." AND HOME=-1 AND TERRAIN=$terrain"; + return @{$self->{-db}->select_array('MAP','LOCATION',$cond)}; +} + +sub is_open{ + my ($self,$terrain) = @_; + + my $cond = "GAME=$self->{-game} AND HOME=-1"; + if($terrain){ + $terrain = $self->{-db}->quote($terrain); + $cond .= "AND TERRAIN=$terrain"; + } + my $unused = $self->{-db}->select_array('MAP','LOCATION','',$cond); + my @arr = @$unused; + + return $#arr+1; +} + +# TODO performance: we can do this whole function in one sophisticated SQL-statement. +sub incarnation_place{ + my ($self,$player) = @_; + $player = $self->{-user} unless defined $player; + + my $temples = $self->{-db}->select_array('MAP','LOCATION', + "TEMPLE='Y' AND HOME=$player"); + + my $place; + my $max_priests = 0; + for my $temple (@$temples){ + my $loc = $temple->[0]; + Util::log("check for $loc...",1); + # my ($qloc,$type,$yes) = $self->{-db}->quote_all($loc,'PRIEST','Y'); + my $priests = $self->{-db}->single_hash_select('MOBILE', + "ADORING=$player AND ". + "LOCATION=$loc AND ". + "TYPE=PRIEST AND ". + "AVAILABLE=Y AND ". + "GAME=$self->{-game}"); + + if(defined $priests and $priests->{'COUNT'} > $max_priests){ + $place = $loc; + $max_priests = $priests->{'COUNT'}; + } + } + return $place; +} + +sub read_fortune{ + my $self = shift; + + my ($fortune) = $self->{-db}->read_game($self->{-game}, + 'FORTUNE'); + return $fortune; +} + +# returns also empty neighbours, but no attacked neighbours +sub own_neighbours{ + my ($self,$loc,$player) = @_; + $player = $self->{player} unless defined $player; + + # print "own_neighbours($loc,$player)\n"; + my $map = HexTorus->new($self->get_size()); + my $location = Location->from_string($loc); + my @neighbours = $map->neighbours($location); + my @own_neighbours; + for my $n (@neighbours){ + my $n_string = $n->to_string(); + my ($occ,$att,$terrain) = $self->read_field('OCCUPANT,ATTACKER,TERRAIN',$n_string); + Util::log("$n_string occupied by $occ, attacked by $att",2); + next if $att; + next if $::conf->{-FIGHTS_WITHOUT_OWNER}->{$terrain} and not $occ; + push @own_neighbours, $n_string if $occ == $player or $occ <= 0; + } + # print Dumper \@own_neighbours; + Util::log("own_neighbours($loc,$player): @own_neighbours",2); + return @own_neighbours; +} + +sub is_in_direction_from{ + my($self,$to,$from) = @_; + + my $map = HexTorus->new($self->get_size()); + my $to_location = Location->from_string($to); + my $from_location = Location->from_string($from); + + return $map->get_direction($from_location,$to_location); +} + +sub show_statistic{ + my($self) = @_; + my $db = $self->{-db}; + + my @earthlings = $self->get_all_roles('EARTHLING'); + my @gods = $self->get_all_roles('GOD'); + + # show for god: own mana, + my $out = ''; + if($self->is_god()){ + # own mana + $out .= $db->loc('OWN_MANA',$self->get_mana()); + } + + # show for all: #priests of god (?), #citys of earthling, #temples to build, + # speed of game, fortune, last battle, fighting strength of earthlings + # #temples of god + + # strength of every god in last battle + $out .= $db->loc('LAST_BATTLE_HEADING') . '

'; + for my $god (@gods){ + # my $god = $god->[0]; + + my $strength=$self->strength_in_last_battle($god); + $out .= $db->loc('LAST_BATTLE_LINE',$self->charname($god),$strength) . '
'; + + # TODO?: count priests + } + + # count citys + $out .= '

' . $db->loc('CITY_HEADING'). '

'; + for my $player (@earthlings){ + # $player = $player->[0]; + my $citys = $db->count('MAP', + "GAME=$self->{-game} AND OCCUPANT=$player AND TERRAIN=CITY"); + $out .= $db->loc('STATISTIC_EARTHLING_CITY', + $self->charname($player), + $citys).'
'; + } + $out .= '

'; + + # count temples to build for the end of the world + $out .= $db->loc('STATISTIC_UNBUILD', $self->unbuild()). " " . + $db->loc('STATISTIC_NEW_TEMPLES', $self->under_construction())."

\n"; + + my $game = $db->single_hash_select('GAME', + "GAME=$self->{-game}"); + my $fortune = $game->{'FORTUNE'}; + $out .= $db->loc('STATISTIC_FORTUNE',$fortune); + + my $speed = $game->{'SPEED'}; + $out .= $db->loc('STATISTIC_SPEED',"$speed sec"); + + return $out; +} + +# returns number of places for temples +sub building_places{ + my $self = shift; + return $self->{-db}->count('MAP', + "(TERRAIN=ISLE OR TERRAIN=MOUNTAIN) ". + "AND GAME=$self->{-game}"); +} + +# returns number of unbuild temples +sub unbuild{ + my $self = shift; + return $self->{-db}->count('MAP', + "(TERRAIN=ISLE OR TERRAIN=MOUNTAIN) ". + "AND TEMPLE=N AND GAME=$self->{-game}"); +} + +# returns number of temples or arks which are currently under construction +sub under_construction{ + my ($self,$type) = @_; + $type = 'TEMPLE' unless defined $type; + return $self->{-db}->count('EVENT', + "TAG=EVENT_BUILD_$type"); + +} + +sub strength_in_last_battle{ + my($self,$god) = @_; + $god = $self->{-player} unless defined $god; + my $db = $self->{-db}; + + my $god_hash = + $db->single_hash_select('GOD', + "GAME=$self->{-game} AND PLAYER=$god"); + + my $aymargeddon = + $db->single_hash_select('MAP', + "GAME=$self->{-game} AND". + " TERRAIN=AYMARGEDDON")->{'LOCATION'}; + my $avatars = $self->count_mobile('AVATAR',$aymargeddon,$god); + + my $strength = $::conf->{-LAST_BATTLE}->{-AVATAR} * $avatars + + $::conf->{-LAST_BATTLE}->{-DEATH_AVATAR} * $god_hash->{'DEATH_AVATAR'} + + $::conf->{-LAST_BATTLE}->{-DEATH_HERO} * $god_hash->{'DEATH_HERO'}; + + return $strength; + +} + +sub mobile_to_html{ + my ($self, $loc,$own,$occ,$temple,$ter, + $oid,$otype,$oown,$oado,$ocnt,$ostat,$omove) = @_; +# field infos: +# loc: location of the field +# own: the owner of the field (for cities and temples) (HOME) +# occ: the occupant of the field +# temple: wether there is a temple or not +# ter: terrain of field +# mobile infos: +# oid: id of the mobile +# otype: type of the mobile +# oown: owner of the mobile +# oado: which god the mobile adores +# ocnt: mobile count +# ostat: status of the mobile (BLOCK, IGNORE or HELP) +# omove: the id of the mobile to move with (unused here) + + my $user = $self->{-user}; + my $db = $self->{-db}; + my $aym = $self; + + my $out = $ocnt.' '; + if($oown == $user){ + $out .= $db->loc('PREP_OWN_PL').' '.$aym->mobile_string($otype,2); + if($otype eq 'PRIEST' or $otype eq 'PROPHET'){ + $out .= $db->loc('ADJ_ADORING').' '.$aym->charname($oado); + if($own != $oado){ + $out .= ' ('. + $aym->relation_string($oado). + ', '. + $db->loc('SEND_MESSAGE').')'; + } + if(($ter eq 'ISLE' or $ter eq 'MOUNTAIN') and $temple eq 'N'){ + $out .=' ('; + $out .= $db->loc('CMD_BUILD_TEMPLE').')'; + } + }elsif($otype eq 'HERO'){ + $out .= $db->loc('ADJ_ADORING');#.' '; + $out .= ' ' . $aym->charname($oado); #.''; + if($own != $oado){ + $out .= ' ('. + $aym->relation_string($oado). + ', '. + $db->loc('SEND_MESSAGE').')'; + } + }elsif($otype eq 'AVATAR'){ + $out .= ' ('. + $aym->mobile_string($ostat,1).')'; + if($temple eq 'Y'){ + $out .= " (". + $db->loc('CMD_DESTROY').')'; + } + } + $out .= ' ('. + $db->loc('CMD_MOVE').')'; + + }else{ + $out .= $aym->mobile_string($otype, $ocnt); + + $out .= ' '.$db->loc('PREP_OWN_SG').' '; + $out .= $db->loc('ART_DAT_PL').' ' if $aym->gender($oown) eq 'PLURAL'; + $out .= $aym->charname($oown); + if($own != $oown and $occ != $oown){ + $out .= ' ('. + $aym->relation_string($oown).','. + ''. + $db->loc('SEND_MESSAGE').')'; + } + + if($otype eq 'PRIEST' or $otype eq 'PROPHET'or $otype eq 'HERO'){ + $out .= $db->loc('ADJ_ADORING').' '; + if($oado == $user){ + $out .= $db->loc( ($aym->gender($user) eq 'PLURAL') ? + 'PPRO_DAT3_PL' : 'PPRO_DAT3_SG'); + }else{ + $out .= $aym->charname($oado); + if($own != $oown and $occ != $oown){ + $out .= ' ('. + $aym->relation_string($oado). + ', '. + $db->loc('SEND_MESSAGE').')'; + } + } + }elsif($otype eq 'WARRIOR' and $aym->is_god($user)){ + $out .= ' ('. + $db->loc('CMD_BLESS_PRIEST').')'; + if($own==$user and $temple eq 'Y'){ + $out .= ' ('. + $db->loc('CMD_BLESS_HERO').')'; + } + } + } + return $out; +} + +# this overloads the same function in Game.pm +# we dont look on arks, that is special for Aymargeddon +#sub own_in_mobile{ +# my($self,$loc,$player,$active) = @_; +# my $cond = "GAME=$self->{-game} AND LOCATION=$loc". +# " AND TYPE!=ARK AND (OWNER=$player OR ADORING=$player)"; +# if(defined $active){ +# # my $y = $self->{-db}->quote('Y'); +# $cond .= " AND AVAILABLE='Y'"; +# } +# return $self->{-db}->select_array('MOBILE','ID',$cond); +#} + + +# returns true if foreign eartlings approach to field +sub foreign_earthling_approaching{ + my ($self,$loc,$earthling) = @_; + + # TODO BUG: if $earthling < 1 => different names in different languages... + my $name = $self->charname($earthling); + my $ret = $self->{-db}->count('EVENT', + "LOCATION=$loc AND ". + "(TAG=EVENT_MOBILE_APPROACHING OR ". + "TAG=EVENT_ARK_APPROACHING) AND ". + "ARG1 != $name AND ". + "ARG4 != MOBILE_AVATAR AND ". + "ARG4 != MOBILE_AVATAR_PL"); + + return $ret; +} + +# returns true if own avatar is there and if no god-fight is running +sub avatar_available{ + my ($self,$loc,$god,$command) = @_; + + my $avatars = $self->own_in_mobile($loc,$god,1); + my @avatars = @$avatars; + + my ($godfight) = $self->read_field('GOD_ATTACKER',$loc); + + unless($#avatars >= 0 and not $godfight){ + $self->send_message_to($god, + {'MSG_TAG' => "MSG_$command\_NEED_AVATAR", + 'ARG1' => $loc}) if defined $command; + return 0; + } + + return 1; +} + +1; diff --git a/src/COPYING b/src/COPYING new file mode 100644 index 0000000..eeb586b --- /dev/null +++ b/src/COPYING @@ -0,0 +1,340 @@ + GNU GENERAL PUBLIC LICENSE + Version 2, June 1991 + + Copyright (C) 1989, 1991 Free Software Foundation, Inc. + 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + Everyone is permitted to copy and distribute verbatim copies + of this license document, but changing it is not allowed. + + Preamble + + The licenses for most software are designed to take away your +freedom to share and change it. By contrast, the GNU General Public +License is intended to guarantee your freedom to share and change free +software--to make sure the software is free for all its users. This +General Public License applies to most of the Free Software +Foundation's software and to any other program whose authors commit to +using it. (Some other Free Software Foundation software is covered by +the GNU Library General Public License instead.) You can apply it to +your programs, too. + + When we speak of free software, we are referring to freedom, not +price. Our General Public Licenses are designed to make sure that you +have the freedom to distribute copies of free software (and charge for +this service if you wish), that you receive source code or can get it +if you want it, that you can change the software or use pieces of it +in new free programs; and that you know you can do these things. + + To protect your rights, we need to make restrictions that forbid +anyone to deny you these rights or to ask you to surrender the rights. +These restrictions translate to certain responsibilities for you if you +distribute copies of the software, or if you modify it. + + For example, if you distribute copies of such a program, whether +gratis or for a fee, you must give the recipients all the rights that +you have. You must make sure that they, too, receive or can get the +source code. And you must show them these terms so they know their +rights. + + We protect your rights with two steps: (1) copyright the software, and +(2) offer you this license which gives you legal permission to copy, +distribute and/or modify the software. + + Also, for each author's protection and ours, we want to make certain +that everyone understands that there is no warranty for this free +software. If the software is modified by someone else and passed on, we +want its recipients to know that what they have is not the original, so +that any problems introduced by others will not reflect on the original +authors' reputations. + + Finally, any free program is threatened constantly by software +patents. We wish to avoid the danger that redistributors of a free +program will individually obtain patent licenses, in effect making the +program proprietary. To prevent this, we have made it clear that any +patent must be licensed for everyone's free use or not licensed at all. + + The precise terms and conditions for copying, distribution and +modification follow. + + GNU GENERAL PUBLIC LICENSE + TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION + + 0. This License applies to any program or other work which contains +a notice placed by the copyright holder saying it may be distributed +under the terms of this General Public License. The "Program", below, +refers to any such program or work, and a "work based on the Program" +means either the Program or any derivative work under copyright law: +that is to say, a work containing the Program or a portion of it, +either verbatim or with modifications and/or translated into another +language. (Hereinafter, translation is included without limitation in +the term "modification".) Each licensee is addressed as "you". + +Activities other than copying, distribution and modification are not +covered by this License; they are outside its scope. The act of +running the Program is not restricted, and the output from the Program +is covered only if its contents constitute a work based on the +Program (independent of having been made by running the Program). +Whether that is true depends on what the Program does. + + 1. You may copy and distribute verbatim copies of the Program's +source code as you receive it, in any medium, provided that you +conspicuously and appropriately publish on each copy an appropriate +copyright notice and disclaimer of warranty; keep intact all the +notices that refer to this License and to the absence of any warranty; +and give any other recipients of the Program a copy of this License +along with the Program. + +You may charge a fee for the physical act of transferring a copy, and +you may at your option offer warranty protection in exchange for a fee. + + 2. You may modify your copy or copies of the Program or any portion +of it, thus forming a work based on the Program, and copy and +distribute such modifications or work under the terms of Section 1 +above, provided that you also meet all of these conditions: + + a) You must cause the modified files to carry prominent notices + stating that you changed the files and the date of any change. + + b) You must cause any work that you distribute or publish, that in + whole or in part contains or is derived from the Program or any + part thereof, to be licensed as a whole at no charge to all third + parties under the terms of this License. + + c) If the modified program normally reads commands interactively + when run, you must cause it, when started running for such + interactive use in the most ordinary way, to print or display an + announcement including an appropriate copyright notice and a + notice that there is no warranty (or else, saying that you provide + a warranty) and that users may redistribute the program under + these conditions, and telling the user how to view a copy of this + License. (Exception: if the Program itself is interactive but + does not normally print such an announcement, your work based on + the Program is not required to print an announcement.) + +These requirements apply to the modified work as a whole. If +identifiable sections of that work are not derived from the Program, +and can be reasonably considered independent and separate works in +themselves, then this License, and its terms, do not apply to those +sections when you distribute them as separate works. But when you +distribute the same sections as part of a whole which is a work based +on the Program, the distribution of the whole must be on the terms of +this License, whose permissions for other licensees extend to the +entire whole, and thus to each and every part regardless of who wrote it. + +Thus, it is not the intent of this section to claim rights or contest +your rights to work written entirely by you; rather, the intent is to +exercise the right to control the distribution of derivative or +collective works based on the Program. + +In addition, mere aggregation of another work not based on the Program +with the Program (or with a work based on the Program) on a volume of +a storage or distribution medium does not bring the other work under +the scope of this License. + + 3. You may copy and distribute the Program (or a work based on it, +under Section 2) in object code or executable form under the terms of +Sections 1 and 2 above provided that you also do one of the following: + + a) Accompany it with the complete corresponding machine-readable + source code, which must be distributed under the terms of Sections + 1 and 2 above on a medium customarily used for software interchange; or, + + b) Accompany it with a written offer, valid for at least three + years, to give any third party, for a charge no more than your + cost of physically performing source distribution, a complete + machine-readable copy of the corresponding source code, to be + distributed under the terms of Sections 1 and 2 above on a medium + customarily used for software interchange; or, + + c) Accompany it with the information you received as to the offer + to distribute corresponding source code. (This alternative is + allowed only for noncommercial distribution and only if you + received the program in object code or executable form with such + an offer, in accord with Subsection b above.) + +The source code for a work means the preferred form of the work for +making modifications to it. For an executable work, complete source +code means all the source code for all modules it contains, plus any +associated interface definition files, plus the scripts used to +control compilation and installation of the executable. However, as a +special exception, the source code distributed need not include +anything that is normally distributed (in either source or binary +form) with the major components (compiler, kernel, and so on) of the +operating system on which the executable runs, unless that component +itself accompanies the executable. + +If distribution of executable or object code is made by offering +access to copy from a designated place, then offering equivalent +access to copy the source code from the same place counts as +distribution of the source code, even though third parties are not +compelled to copy the source along with the object code. + + 4. You may not copy, modify, sublicense, or distribute the Program +except as expressly provided under this License. Any attempt +otherwise to copy, modify, sublicense or distribute the Program is +void, and will automatically terminate your rights under this License. +However, parties who have received copies, or rights, from you under +this License will not have their licenses terminated so long as such +parties remain in full compliance. + + 5. You are not required to accept this License, since you have not +signed it. However, nothing else grants you permission to modify or +distribute the Program or its derivative works. These actions are +prohibited by law if you do not accept this License. Therefore, by +modifying or distributing the Program (or any work based on the +Program), you indicate your acceptance of this License to do so, and +all its terms and conditions for copying, distributing or modifying +the Program or works based on it. + + 6. Each time you redistribute the Program (or any work based on the +Program), the recipient automatically receives a license from the +original licensor to copy, distribute or modify the Program subject to +these terms and conditions. You may not impose any further +restrictions on the recipients' exercise of the rights granted herein. +You are not responsible for enforcing compliance by third parties to +this License. + + 7. If, as a consequence of a court judgment or allegation of patent +infringement or for any other reason (not limited to patent issues), +conditions are imposed on you (whether by court order, agreement or +otherwise) that contradict the conditions of this License, they do not +excuse you from the conditions of this License. If you cannot +distribute so as to satisfy simultaneously your obligations under this +License and any other pertinent obligations, then as a consequence you +may not distribute the Program at all. For example, if a patent +license would not permit royalty-free redistribution of the Program by +all those who receive copies directly or indirectly through you, then +the only way you could satisfy both it and this License would be to +refrain entirely from distribution of the Program. + +If any portion of this section is held invalid or unenforceable under +any particular circumstance, the balance of the section is intended to +apply and the section as a whole is intended to apply in other +circumstances. + +It is not the purpose of this section to induce you to infringe any +patents or other property right claims or to contest validity of any +such claims; this section has the sole purpose of protecting the +integrity of the free software distribution system, which is +implemented by public license practices. Many people have made +generous contributions to the wide range of software distributed +through that system in reliance on consistent application of that +system; it is up to the author/donor to decide if he or she is willing +to distribute software through any other system and a licensee cannot +impose that choice. + +This section is intended to make thoroughly clear what is believed to +be a consequence of the rest of this License. + + 8. If the distribution and/or use of the Program is restricted in +certain countries either by patents or by copyrighted interfaces, the +original copyright holder who places the Program under this License +may add an explicit geographical distribution limitation excluding +those countries, so that distribution is permitted only in or among +countries not thus excluded. In such case, this License incorporates +the limitation as if written in the body of this License. + + 9. The Free Software Foundation may publish revised and/or new versions +of the General Public License from time to time. Such new versions will +be similar in spirit to the present version, but may differ in detail to +address new problems or concerns. + +Each version is given a distinguishing version number. If the Program +specifies a version number of this License which applies to it and "any +later version", you have the option of following the terms and conditions +either of that version or of any later version published by the Free +Software Foundation. If the Program does not specify a version number of +this License, you may choose any version ever published by the Free Software +Foundation. + + 10. If you wish to incorporate parts of the Program into other free +programs whose distribution conditions are different, write to the author +to ask for permission. For software which is copyrighted by the Free +Software Foundation, write to the Free Software Foundation; we sometimes +make exceptions for this. Our decision will be guided by the two goals +of preserving the free status of all derivatives of our free software and +of promoting the sharing and reuse of software generally. + + NO WARRANTY + + 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY +FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN +OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES +PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED +OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF +MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS +TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE +PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, +REPAIR OR CORRECTION. + + 12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING +WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR +REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, +INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING +OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED +TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY +YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER +PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE +POSSIBILITY OF SUCH DAMAGES. + + END OF TERMS AND CONDITIONS + + How to Apply These Terms to Your New Programs + + If you develop a new program, and you want it to be of the greatest +possible use to the public, the best way to achieve this is to make it +free software which everyone can redistribute and change under these terms. + + To do so, attach the following notices to the program. It is safest +to attach them to the start of each source file to most effectively +convey the exclusion of warranty; and each file should have at least +the "copyright" line and a pointer to where the full notice is found. + + + Copyright (C) 19yy + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 2 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + + +Also add information on how to contact you by electronic and paper mail. + +If the program is interactive, make it output a short notice like this +when it starts in an interactive mode: + + Gnomovision version 69, Copyright (C) 19yy name of author + Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'. + This is free software, and you are welcome to redistribute it + under certain conditions; type `show c' for details. + +The hypothetical commands `show w' and `show c' should show the appropriate +parts of the General Public License. Of course, the commands you use may +be called something other than `show w' and `show c'; they could even be +mouse-clicks or menu items--whatever suits your program. + +You should also get your employer (if you work as a programmer) or your +school, if any, to sign a "copyright disclaimer" for the program, if +necessary. Here is a sample; alter the names: + + Yoyodyne, Inc., hereby disclaims all copyright interest in the program + `Gnomovision' (which makes passes at compilers) written by James Hacker. + + , 1 April 1989 + Ty Coon, President of Vice + +This General Public License does not permit incorporating your program into +proprietary programs. If your program is a subroutine library, you may +consider it more useful to permit linking proprietary applications with the +library. If this is what you want to do, use the GNU Library General +Public License instead of this License. diff --git a/src/FROGS/Check.pm b/src/FROGS/Check.pm new file mode 100644 index 0000000..033bcfe --- /dev/null +++ b/src/FROGS/Check.pm @@ -0,0 +1,116 @@ +########################################################################## +# +# Copyright (c) 2003 Aymargeddon Development Team +# +# This file is part of +# "FROGS" = Framework for Realtime Online Games of Strategy +# +# FROGS is free software; you can redistribute it and/or modify it +# under the terms of the GNU General Public License as published by the Free +# Software Foundation; either version 2 of the License, or (at your option) +# any later version. +# +# FROGS is distributed in the hope that it will be useful, but WITHOUT +# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for +# more details. +# You should have received a copy of the GNU General Public License along +# with this program; if not, write to the Free Software Foundation, Inc., 675 +# Mass Ave, Cambridge, MA 02139, USA. +# +########################################################################### +# + +use strict; +use FROGS::DataBase; + +# +# Here some generell functionality to check the integrity of +# the underlying database is checked. + +package Check; +use Data::Dumper; + +sub new{ + my $class = shift; + my $self = {}; + $self->{-db} = DataBase->new(@_); + bless ($self,$class); +} + +# do a check, there can be different TYPE of checks: +# A_IN_B, LOGIC, UNIVERSAL +# +# - A in B checks if corresponding fields in different tables exists +# +# - LOGIC checks with a function for some fields in a table +# +# - UNIVERSAL checks with an arbitrary function +# +# - TODO: LOCATION should check with a function for every location + +sub check_all{ + my $self = shift; + my $checks = shift; + + my $db = $self->{-db}; + + while(my ($k,$v) = each %$checks){ + print "check $k... "; + my $type = $v->[0]; + if($type eq 'A_IN_B'){ + my $table_A = $v->[1]->[0]; + my $field_A = $v->[1]->[1]; + my $table_B = $v->[1]->[2]; + my $field_B = $v->[1]->[3]; + + # TODO BUG: dont use single_select! + my @data = $db->single_select("select distinct $field_A from $table_A"); + my @datb = $db->single_select("select distinct $field_B from $table_B"); + + print Dumper \@datb; + my %schnitt; + for my $d (@datb){ + print "hab $d\n"; + $schnitt{$d} = 1; + } + my $failed = 0; + for my $d (@data){ + if(not exists($schnitt{$d})){ + print "FAILED with $field_A = $d!\n"; + $failed = 1; + last; + } + } + next if $failed; + print "OK.\n"; + }elsif($type eq 'LOGIC'){ + my $table = $v->[1]->[0]; + my $fields = $v->[1]->[1]; + my $function = $v->[1]->[2]; + local $" = ', '; + my $command = "select @$fields from $table"; + # TODO: single_select correct? we need the whole table and + # TODO: there is no condition??? + my @dat = $db->single_select($command); + # print Dumper $dat; + + my $failed = 0; + for my $d (@dat){ + my $ret = &$function($d); + $failed = 1 unless $ret; + } + $failed ? print "FAILED!\n" : print "OK.\n"; + }elsif($type eq 'UNIVERSAL'){ + my $function = $v->[1]; + my $ret = &$function($db); + $ret ? print "FAILED: $ret\n" : print "OK.\n"; + }else{ + print "FAILED (Type of check - $type - not avaiable)\n"; + } + } +} + +1; + + diff --git a/src/FROGS/Command.pm b/src/FROGS/Command.pm new file mode 100644 index 0000000..c10a6c8 --- /dev/null +++ b/src/FROGS/Command.pm @@ -0,0 +1,486 @@ +########################################################################## +# +# Copyright (c) 2003 Aymargeddon Development Team +# +# This file is part of +# "FROGS" = Framework for Realtime Online Games of Strategy +# +# FROGS is free software; you can redistribute it and/or modify it +# under the terms of the GNU General Public License as published by the Free +# Software Foundation; either version 2 of the License, or (at your option) +# any later version. +# +# FROGS is distributed in the hope that it will be useful, but WITHOUT +# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for +# more details. +# You should have received a copy of the GNU General Public License along +# with this program; if not, write to the Free Software Foundation, Inc., 675 +# Mass Ave, Cambridge, MA 02139, USA. +# +########################################################################### +# + +# +# basic command object used by the scheduler +use strict; +use Date::Parse qw(str2time); +use Date::Calc qw(Time_to_Date); +use FROGS::DataBase; +use FROGS::Config qw ($conf); +require "$::conf->{-GAME_NAME}.pm"; + +package Command; +use Data::Dumper; + +sub new { + my ($type, $dbhash, $dbobj) = @_; + + Util::log("$type->new()",2); + + my $self = {-dbhash => $dbhash, + -db => $dbobj, + -player => $dbhash->{'PLAYER'}, + -game => $dbhash->{'GAME'}, + -id => $dbhash->{'ID'}, + -location => $dbhash->{'LOCATION'}, + -class => $type, + }; + bless( $self, $type ); + + # create an GAME_NAME context object + $self->{-context} = $::conf->{-GAME_NAME}->new($dbhash->{'GAME'}, + $dbhash->{'PLAYER'}, + $dbobj); + + $self->{-speed} = $self->{-context}->get_speed(); + + # end of the game? + if($self->{-speed} < 0){ + Util::log("Game over, no commands anymore!",1); + $self->done(); + return 0; + } + + # set language according to PLAYER.LANGUAGE + my ($lang) = $dbobj->read_player($self->{-player},'LANGUAGE'); + $dbobj->set_language($lang); + + $self->{-args} = $self->parse_args( $self->{-dbhash}->{'ARGUMENTS'} ); + + if (defined $self->{-dbhash}->{'ACK'} and + $self->{-dbhash}->{'ACK'} ne '0000-00-00 00:00:00'){ + $self->{-phase} = 2; + }else{ + $self->{-phase} = 1; + $self->{-duration} = $::conf->{-DURATION}->{"-$type"} || 0; + } + + if(not $::conf->{-MESSAGE_IN_LOG} and $type eq 'SEND_MSG'){ + Util::log('',1); + }else{ + my $logstring = "\nCommand $type (ID: $self->{-dbhash}->{'ID'}): ". + "Phase $self->{-phase}, ". + "Player $self->{-dbhash}->{'PLAYER'}, ". + "Game $self->{-dbhash}->{'GAME'}, ". + "Arguments $self->{-dbhash}->{'ARGUMENTS'}"; + $logstring .= ", Location $self->{-dbhash}->{'LOCATION'}, " + if defined $self->{-dbhash}->{'LOCATION'}; + Util::log($logstring,1); + } + + return $self; +} + +sub is_valid { + my ($self, @required_args) = @_; + + # all arguments avaiable? + # TODO PERFORMANCE: maybe this check only in phase1? + return 0 unless $self->required_args($self->{-args}, @required_args); + + # does the player still exists? + if($self->{-player} == -1){ + $self->{-role} = $self->{-context}->charname(-1); + }else{ + my ($id,$role) = $self->{-context}->read_role($self->{-player},'PLAYER,ROLE'); + if($id != $self->{-player}){ + Util::log("COMMAND->is_valid: Player $self->{-player} does not exist!\n",0); + return 0; + } + # set role for later use + # print "ROLE(is_valid): $role\n"; + $self->{-role} = $role; + } + return 1; +} + +sub isSecond { + my $self = shift; + return 2 == $self->{-phase}; +} + +sub isFirst { + my $self = shift; + return 1 == $self->{-phase}; +} + +sub execute { + my $self = shift; + my $db=$self->{-db}; + + #if($self->{-speed} < 0){ + # Util::log('*',-1); + # $self->done(); + # return; + #} + # determine phase of command and do it. + if ($self->isFirst() ) { + $db->update_hash("COMMAND","ID = $self->{-dbhash}->{'ID'}",{ 'ACK' => $db->now() }); + my $ret = $self->first_phase(); + + if ($self->getDuration() > 0 and $ret > 0) { + my $exec = $self->getPhase2exec(); + if($self->{-end_of_game}){ + $self->done(); + }else{ + $db->update_hash("COMMAND", + "ID = $self->{-dbhash}->{'ID'}", + { 'EXEC' => $exec }); + } + }elsif ($self->getDuration() == 0 or $ret == 0){ + $self->done(); + } else { + # in this case the command has set its EXEC by itself. we do nothing + $self->done() if $self->{-end_of_game}; + } + } elsif ($self->isSecond() ) { + $self->second_phase(); + $self->done(); + } else { + Util::log("command->execute ($self->{-class}) : Unknown or undefined Command phase",0); + die; + } +} + +sub done { +# a command will use this func to declare it's terminated +# it is called by Scheduler after secondPhase anyway, so a +# command has to use it only explicitley in a member if it wants to +# terminate NOW! (but still have to exit action for itself) + my $self = shift; + my $db=$self->{-db}; + + my $id = $self->{-id}; + + $db->update_hash("COMMAND","ID = $id",{ 'DONE' => $db->now() }); + if ($::conf->{-DEBUG} == 0 or $::conf->{-DELETE_OLD_COMMANDS}) { + $db->delete_from("COMMAND","ID=$id"); + Util::log(ref($self)."-Command $id deleted.",1); + # TODO: dont delete PRODUCE-Command if game not runnning, but waiting + } + # TODO?: send messages +} + +sub setDuration { +# sets the duration of the command in units. Sheduler will schedule +# the Phase 2 then for gametime+units*pace(game). +# this function will have to be called explicitely during phase 1 by the +# implementation of the command +# If it is not called at least once (or set to 0), Scheduler will assume the command has +# no second phase and will call done() after completion of firstPhase(). + my $self = shift; + $self->{-duration} = shift; +} + +sub getDuration { +# get command duration in units + my $self = shift; + return $self->{-duration}; +} + +sub getDurationInSec{ +# get command duration in secs according to the *current* gamespeed + my $self = shift; + + my $ret = $self->getDuration() * $self->{-speed}; + + Util::log("Duration in sec: $ret",1) unless defined $self->{-duration_logged}; + $self->{-duration_logged} = 1; + + $self->{-end_of_game} = 1 unless $ret >= 0; + return $ret; +} + +sub getPhase2exec { + # only valid during phase 1 returns start of phase 2 in game + # time, GMT (YYYY-MM-DD HH:MM:SS). If Duration wasn't set, or + # phase is wrong it returns undef. + my $self = shift; + if ($self->getDuration() == 0 || $self->isSecond() ) { + return undef; + } + my $firstExecTimeUnix = &::str2time($self->{-dbhash}->{'EXEC'},'GMT'); +# my $firstExecTimeUnix = &::str2time($self->{-dbhash}->{'EXEC'}); + $firstExecTimeUnix += $self->getDurationInSec(); + my ($year,$month,$day, $hour,$min,$sec) = &::Time_to_Date($firstExecTimeUnix); + return sprintf ("%04u-%02u-%02u %02u:%02u:%02u",$year,$month,$day, $hour,$min,$sec); +} + + +############################################# +# +# Tools to be used by concrete commands +# + +# TODO: Bug mit messages +sub parse_args { + my ( $self, $arg_string ) = @_; + + my @key_value_pairs = split /,/, $arg_string; # TODO: wrong for messages + + # remove leading/trailing whitespace + @key_value_pairs = map { $_ =~ s/^\s*(\S*)\s*$/$1/; $_ } @key_value_pairs; + + my %hash; + for my $kv (@key_value_pairs) { + my ( $k, $v ) = split /=/, $kv; # TODO: wrong for messages + + # remove leading/trailing whitespace again + ( $k, $v ) = map { $_ =~ s/^\s*(\S*)\s*$/$1/; $_ } ( $k, $v ); + + $hash{$k} = $v; + } + # use Data::Dumper; print Dumper \%hash; + return \%hash; +} + +sub required_args { + my ( $self, $args, @ra ) = @_; + + for my $a (@ra) { + unless ( exists $args->{$a} ) { + Util::log("We need argument $a",1); + return 0; + } + } + return 1; +} + + + +# general testfunction. +# sends error message and return false +# unless &$cond() gives true + +sub test{ + my ($self, $cond, $tag, @args) = @_; + + unless(&$cond()){ + # (@args) = $self->{-db}->quote_all(@args); + + my $sendhash = {'MFROM' => 0, + 'MSG_TAG' => $tag}; + # TODO: localize command-strings! + $sendhash->{'ARG1'} = $self->{-class}; + for my $a (1..($#args+1)){ + $sendhash->{"ARG$a"} = $args[$a-1]; + } + + $self->{-context}->send_message_to($self->{-player},$sendhash); + + Util::log("Test failed: $tag, args @args",1); + + return 0; + } + return 1; +} + +#sub test{ +# my ($self, @all) = @_; +# +# if($self->test_without_done(@all)){ +# return 1; +# }else{ +# # delete me from database +# $self->done(); +# return 0; +# } +#} + +# set a mobilehash if available, sends errormessage otherwise +sub validate_mobile{ + my ($self,$mob_id) = @_; + + my $mob = $self->{-db}->read_single_mobile($mob_id); + + # mobile correct? + if($self->{-phase} == 1){ + return 0 unless $self->test(sub {defined $mob}, + 'MSG_NO_SUCH_MOBILE', + $mob_id); + } + $self->{-mob} = $mob; + return 1; +} + +# errormessage unless one of valid roles +sub validate_role{ + my ($self, @valid_roles) = @_; + + return 1 if $self->{-player} < 0; + + Util::log("validate_role($self->{-role})",2); + + unless(Util::is_in($self->{-role},@valid_roles)){ + return 0 unless $self->test(sub {0}, + 'MSG_ROLE_CANT_DO', + $self->{-role}, + ref($self)); + } + return 1; +} + +sub validate_this_role{ + my($self,$player,@valid_roles) = @_; + + # fake identity + my $role = $self->{-role}; + my ($id,$r) = $self->{-context}->read_role($player,'PLAYER,ROLE'); + $self->{-role} = $r; + my $ret = $self->validate_role(@valid_roles); + $self->{-role} = $role; + return 0 unless $ret; + return 1; +} + +# takes a mobile_hash, a count and a diff_hash. creates another mobile +# with count members in the database with the different fields given +# in diff_hash. if $available, than the new mob is available + +# returns +# ID of newmob (newmob is in some sense really the old mob, because +# diff is apllied to old mob) , returns the new ID (of the old mob). + +sub split_mobile{ + my ($self, $mob, $count, $diff, $available) = @_; + my $db = $self->{-db}; + Util::log(ref($self).": split mobile $mob->{'ID'}",1); + + # create new mobile + my %newmob = %$mob; + my $newmob = \%newmob; + $newmob->{'ID'} = $self->{-db}->find_first_free('MOBILE','ID'); + my $newid = $newmob->{'ID'}; + + %$mob = (%$mob,%$diff); + # print Dumper $mob; exit; + # %$newmob = (%$oldmob, %$newmob); + + # calculate new count and available + $mob->{'COUNT'} = $count; + $mob->{'AVAILABLE'} = $available ? 'Y' : 'N'; + + my $id = $mob->{'ID'}; + delete $mob->{'ID'}; + # print Dumper $mob; + $self->{-db}->update_hash('MOBILE',"ID=$id",$mob); + Util::log("mobile $id updated",1); + + # reduce count of old one + $newmob->{'COUNT'} -= $count; + + # print Dumper $newmob; + $self->{-db}->insert_hash('MOBILE',$newmob); + Util::log("new mobile $newid",1); + + return $newid; +} + +# this function splits a mobile if it necessary, update else. +# usage of parameters: see split_mobile +# returns the new ID of the old mob (see split_mobile) +sub conditional_split_mobile{ + my ($self, $mob, $count, $diff, $available) = @_; + + # print "count: $count\n"; + # print Dumper $mob; + + my $db = $self->{-db}; + + # split it, if neccessary + if($count < $mob->{'COUNT'}){ + + return $self->split_mobile($mob,$count,$diff,$available); + + }elsif($count == $mob->{'COUNT'}){ + $diff->{'AVAILABLE'} = $available ? 'Y' : 'N'; + $db->update_hash('MOBILE', + "ID=$mob->{'ID'}", + $diff); + return $mob->{'ID'}; + }else{ + Util::log("SPLIT MOBILE: Error! impossible case. not enough mobiles. ". + "we need $count and have only $mob->{'COUNT'}",0); + return 0; + } +} + +sub event{ + my ($self, $loc, $tag, @args) = @_; + + # read execution time + my $exec_time = $self->getPhase2exec(); + + unless($exec_time){ + my $cmd = $self->{-db}->single_hash_select('COMMAND', + "ID=$self->{-dbhash}->{'ID'}"); + $exec_time = $cmd->{'EXEC'}; + } + + my $event = {'TAG' => $tag, + 'LOCATION' => $loc, + 'GAME' => $self->{-game}, + 'TIME' => $exec_time, + 'COMMAND_ID' => $self->{-dbhash}->{'ID'}, + }; + $event->{'ARG1'} = $self->{-context}->charname($self->{-player}); + for my $a (0..$#args){ + $event->{'ARG'.($a+2)} = $args[$a]; + } + $self->{-db}->write_event($event); +} + +# this function re-inserts the same command in the queue again +sub do_it_again{ + my ($self,$arguments) = @_; + + my $now = $self->{-db}->now(); + # we need a new ID + delete $self->{-dbhash}->{'ID'}; + # reset timestamps + $self->{-dbhash}->{'SUBMIT'} = $now; + $self->{-dbhash}->{'EXEC'} = $now; + $self->{-dbhash}->{'ACK'} = 'NULL'; # TODO: wrong way to insert NULL? + $self->{-dbhash}->{'DONE'} = 'NULL'; + if (defined $arguments){ + # these arguments are allready there in the database + my $hash = $self->parse_args($self->{-dbhash}->{'ARGUMENTS'}); + # we put some additional ones into hash + for my $k (keys %$arguments){ + $hash->{$k} = $arguments->{$k}; + } + # rearrange hash into string + my $new_string = ''; + my ($key,$value); + while (($key,$value) = each %$hash){ + $new_string .= "$key=$value, "; + } + $new_string =~ s/, $//; + $self->{-dbhash}->{'ARGUMENTS'} = $new_string; + } + # write new command to database + $self->{-db}->insert_hash('COMMAND', $self->{-dbhash}); +} + +1; diff --git a/src/FROGS/Config.pm b/src/FROGS/Config.pm new file mode 100644 index 0000000..860a64f --- /dev/null +++ b/src/FROGS/Config.pm @@ -0,0 +1,206 @@ +########################################################################## +# +# Copyright (c) 2003 Aymargeddon Development Team +# +# This file is part of "Last days of Aymargeddon" +# +# Aymargeddon is free software; you can redistribute it and/or modify it +# under the terms of the GNU General Public License as published by the Free +# Software Foundation; either version 2 of the License, or (at your option) +# any later version. +# +# Aymargeddon is distributed in the hope that it will be useful, but WITHOUT +# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for +# more details. +# You should have received a copy of the GNU General Public License along +# with this program; if not, write to the Free Software Foundation, Inc., 675 +# Mass Ave, Cambridge, MA 02139, USA. +# +########################################################################### +# + +# TODO: seperate FROGS-config from Aymargeddon-config in different files + +# change this file to configure your game + +use strict; +package Config; +require Exporter; +@::ISA = qw(Exporter); +@::EXPORT_OK = qw($conf); + +$::conf = { + # FROGS stuff + -DB_SOURCE => 'mysql:RAGNAROEK', + -DB_USER => 'aymargeddon', + -DB_SECRETS => '/home/benni/aymargeddon/current/+secrets', + -COMMANDS => 'AymCommand.pm', + -GAME_NAME => 'Aymargeddon', + -DEFAULT_LANGUAGE => 'EN', + -LOG_TIME_IN_LOOP => 1000, # loops until next time output in log + -DEBUG => 1, + -EPL_DEBUG => 0, + -MESSAGE_IN_LOG => 0, + -FULL_DEBUG_FILE => '/home/benni/aymargeddon/current/src/FROGS/+out', + -SCHEDULER_SLEEP => 2, + -DELETE_OLD_EVENTS => 1, # dont touch this, it will not work! + -DELETE_OLD_COMMANDS => 1, # dont touch this, it will not work! + -SEND_MESSAGE_TO_FIELD => 1, # set to 0 to stop slow messages + -MAX_ARGS => 4, # maximum arguments for localisation tags + # (hardcoded in database-structure) + -MANY => 99999, + + # Aymargeddon stuff... you maybe dont need this for other games + + -START_MANA => 33, + -START_FORTUNE => 3, + -START_WARRIORS => 2, + -MAX_MOUNTAINS => 1, # mountains per god/earthling-combination + -MIN_DISTANCE_HOME => 3, # minimal distance between homecitys + -NEIGHBOUR_CITIES => 2, # number of citys in the neighbourhood of a home + -MIN_DISTANCE_MOUNTAIN => 2, + -WANTED_DISTANCE_MOUNTAIN => 3, + -MIN_DISTANCE_MOUNTAIN_FROM_WATER => 2, + -MIN_LUCK => 3, + -MAX_LUCK => 12, + -MANA_FOR_TEMPLE => 1, + -FORTUNE_FAKTOR_ISLAND => 1, + -FORTUNE_FAKTOR_MOUNTAIN => 2, + -MAX_UNBUILD_DESTROY => 1, + # -ARK_RETREAT_POSSIBILITY => 0.5, (in the moment hardcoded) + -WINNER_DEATH_COUNT_FRACTION => 5, + -LOOSER_DEATH_COUNT_FRACTION => 3, + -WINNER_AVATARS_DYING_FRACTION => 4, + -LOOSER_AVATARS_DYING_FRACTION => 2, + -DEATH_SHARE_ROW => [0.4, 0.3, 0.2, 0.1], # should sum to 1 + -DEFAULT_DYING => 'KHP', + + -PLAGUES => ['INFLUENZA','PESTILENTIA','TUBERCULOSIS'], + -PESTILENTIA_DEATH_SHARE => 0.5, + -SPREAD_PLAGUE => {'CITY' => 0.1, + 'PLAIN' => 0.05, + 'MOUNTAIN' => 0.03, + 'ISLE' => 0.02, + 'WATER' => 0}, + -HEAL_PLAGUE => 0.4, + + # can gods give earthlings right to see? + -GODS_SHOW_EARTHLINGS => 0, + + # which fields keep there owner without units? + -HOMECITY_KEEP_OWNER => 1, + -TEMPLE_KEEP_OWNER => 1, + -KEEP_OWNER => {'CITY' => 1}, + + # which fields fight without owner? + -FIGHTS_WITHOUT_OWNER => {'CITY' => 1}, + + # which fields fights without units? + #-HOMECITY_FIGHTS => 1, + #-FIGHTS_WITHOUT_UNIT => {'CITY' => 1}, + + -DURATION => { + + -MOVE_AVATAR => 1, + -MOVE_HERO => 8, + -MOVE_WARRIOR => 10, + -MOVE_PRIEST => 6, + # -MOVE_PROPHET => 6, # 12 + -MOVE_ARK => 5, + -FIGHT_EARTHLING => 6, + -FIGHT_GOD => 10, #10 + -BUILD_TEMPLE => 3, # 50 + -FLOOD => 40, # 40 + -CH_ADORING => 20, + -CH_LUCK => 5, + -PRODUCE_WARRIOR => 40, # 40 + -PRODUCE_WARRIOR_HOME => 20, # 20 + -PRODUCE_WARRIOR_CHANGE => 0, + -PRODUCE_PRIEST => 40, # 40 + -PRODUCE_PRIEST_HOME => 40, # 40 + -BUILD_ARK => 30, #30 + -PLAGUE => 20, + -PRAY => 10, # 10 + }, + + -FIGHT => { + -PRIEST => 0, + -WARRIOR => 1, + -HERO => 2, + -PROPHET => 0, + -AVATAR => 4, # maximum + -HOME => 2, + -ISLE => 2, + -ARK => 1, + -FLANKING => 1, + }, + #-SEE_FIGHT => { + # -PRIEST => 0, + # -WARRIOR => 0, + # -HERO => 1, + # -PROPHET => 0, + #-AVATAR => 0, + #-HOME => 0, + #-ARK => 3, + #-FLANKING => 0, + #}, + # -ISLAND_FIGHT => { + # -PRIEST => 0, + # -WARRIOR => 1, + # -HERO => 2, + # -PROPHET => 0, + #-AVATAR => 4, # maximum + #-HOME => 2, + #-ARK => 3, + #-FLANKING => 0, + #}, + + -LAST_BATTLE => { + -DEATH_HERO => 1, + -DEATH_AVATAR => 0, + -AVATAR => 7, + }, + -MANA => { + -MOVE_AVATAR => 1, + -FIGHT_AVATAR => 2, + -DESTROY => 7, + -FLOOD => 4, + -CH_LUCK => 1, + -BUILD_ARK => 7, + -BLESS_PRIEST => 7, + -BLESS_HERO => 2, + -INCARNATE => 5, + # plagues: + -INFLUENZA => 10, + -PESTILENTIA => 20, + -TUBERCULOSIS => 40, + }, + + -COLOR => { + -EMPTY => '#fcffd9', + -NEUTRAL => '#b8a266', + }, + }; + +# read password from secrets-file. password should not be included in source! + +my $conf = $::conf->{-DB_SECRETS}; + +# substitute "~" (UNIX only!) from Perl Cookbook 7.3 not really useful +# here, because HOME is different in webserver and in user context +$conf =~ s{ ^ ~ ( [^/]* ) }{ $1 ? (getpwnam($1))[7] : ($ENV{HOME}||$ENV{LOGDIR}|| + (getpwuid($<))[7])}ex; + +open(CONFIG,$conf) or die "could not open config file $conf: $!\n"; + +while(){ + chop $_; + next if /^\s*$/; + next if /^\s*\#.*$/; + $::conf->{-DB_PASSWD} = $_; +} +close CONFIG or die "could not close config file $conf: $!\n"; + +1; + diff --git a/src/FROGS/DataBase.pm b/src/FROGS/DataBase.pm new file mode 100644 index 0000000..b37458b --- /dev/null +++ b/src/FROGS/DataBase.pm @@ -0,0 +1,592 @@ +########################################################################## +# +# Copyright (c) 2003 Aymargeddon Development Team +# +# This file is part of +# "FROGS" = Framework for Realtime Online Games of Strategy +# +# FROGS is free software; you can redistribute it and/or modify it +# under the terms of the GNU General Public License as published by the Free +# Software Foundation; either version 2 of the License, or (at your option) +# any later version. +# +# FROGS is distributed in the hope that it will be useful, but WITHOUT +# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for +# more details. +# You should have received a copy of the GNU General Public License along +# with this program; if not, write to the Free Software Foundation, Inc., 675 +# Mass Ave, Cambridge, MA 02139, USA. +# +########################################################################### +# + +# +# Generell database methods are gathered here. +use strict; +use DBI; +use POSIX qw(floor); +use FROGS::Config qw($conf); +use FROGS::Util; +use Date::Parse qw(str2time); +use Date::Calc qw(Time_to_Date Delta_DHMS); + +package DataBase; + +# the constructor connects to the DB +sub new{ + my ($class,$dbh) = @_; + my $self = {}; + if (defined $dbh){ + $self->{-dbh} = $dbh; + }else{ + $self->{-dbh} = DBI->connect("dbi:$::conf->{-DB_SOURCE}", + $::conf->{-DB_USER}, + $::conf->{-DB_PASSWD}, + {'RaiseError' => 1, 'AutoCommit' => 0} + ); + } + #TODO: should specify iso date and time format explicitly for the session!! + + $self->{-lang} = $self->{-dbh}->quote($::conf->{-DEFAULT_LANGUAGE}); + + bless ($self,$class); +} + +sub commit{ + my $self = shift; + unless(defined $self->{-nowrite}){ + $self->{-dbh}->commit(); + Util::log('committed.',2); + } +} + +sub nowrite{ + my $self = shift; + Util::log("DataBase: nowrite activated!",1); + $self->{-nowrite} = 1; +} + +# automaticly called destructor +sub DESTROY{ + my $self = shift; + $self->{-dbh}->disconnect(); +} + +# wrapper for database functions: + +sub quote{ + my ($self, $text) = @_; + return $self->{-dbh}->quote($text); +} + +sub quote_all{ + my ($self, @plain) = @_; + my @quoted; + for my $s (@plain){ + push @quoted, $self->{-dbh}->quote($s); + } + return @quoted; +} + +# this does not support any possible SQL-conditions +# just a small subset +# TODO: this function is really ugly :-( +# TODO: just use an escape-character in calls to mark, which fields should be +# TODO: quoted +sub quote_condition{ + my ($self, $cond) = @_; + + Util::log("condition: $cond",2); + + my @bracket = ('(',')'); + my @bool = ('AND', 'OR'); + my @ops = ('=', '!='); + my @noops = ('<'); # forbidden substrings of pairs. ugly workaround for "time < now()" + + # split string at boolean operators + my $splitstring = ''; + for my $bool (@bool){ + $splitstring .= '\b'.$bool.'\b|'; + } + $splitstring =~ s/(.*)\|/$1/; + + #Util::log("splitstring: $splitstring\n",2); + + my @pairs = split /\s$splitstring\s/, $cond; + + Util::log("pairs: @pairs",2); + + my $opstring = ''; + for my $o (@ops){ + $opstring .= "$o|"; + } + $opstring =~ s/(.*)\|/$1/; + + my $noopstring = ''; + for my $no (@noops){ + $noopstring .= "$no|"; + } + $noopstring =~ s/(.*)\|/$1/; + + # quote right hand of operator if necessary + for my $pair (@pairs){ + next if $pair =~ /$noopstring/; + my ($left,$right) = split /$opstring/, $pair; + #Util::log("1 left: $left, right: $right",2); + $right =~ s/^\(*-?([\w\s].*)$/$1/; # remove leading brackets + #Util::log("2 left: $left, right: $right",2); + $right =~ s/-?(.*[\w\s])\)*$/$1/; # remove trailing brackets + #Util::log("3 left: $left, right: $right",2); + $right =~ s/^\s*-?(\S.*)/$1/; # remove leading whitespace + #Util::log("4 left: $left, right: $right",2); + $right =~ s/(.*\S)\s*$/$1/; # remove trailing whitespace + #Util::log("5 left: $left, right: $right",2); + + next if $right =~ /^\d+$/; + # this could be misfunctional in some SQL-Dialect. We assume single-quotes + my $qright = ($right =~ /^\'.*\'/) ? $right : $self->quote($right); + + # Util::log("qright: $qright",2); + next if $cond =~ /$qright/; + $cond =~ s/($opstring\s*)$right/$1$qright/; + } + Util::log("new condition: $cond",2); + return $cond; +} + +# assumes that a single row is returned from database +# returns a list of selected columns +sub single_select{ + my ($self,$stmt) = @_; + + Util::log("single_select: $stmt",2); + my $dat = $self->{-dbh}->selectall_arrayref($stmt); + return () if not defined $dat or not defined $dat->[0]; + return @{$dat->[0]}; +} + +sub single_hash_select{ + my ($self,$table,$cond) = @_; + + $cond = $self->quote_condition($cond); + my $stmt = "SELECT * FROM $table where $cond"; + Util::log("single_hash_select: $stmt",2); + return $self->{-dbh}->selectrow_hashref($stmt); +} + +sub select_hash{ + my ($self, $table, $key, $fields, $cond) = @_; + + my $stmt = $fields ? "SELECT $key, $fields FROM $table" + : "SELECT $key FROM $table"; + $stmt .= " WHERE $cond" if $cond; + return $self->{-dbh}->selectall_hashref($stmt, $key); +} + +sub select_array{ + my ($self, $table, $fields, $cond, $order) = @_; + my $stmt = "SELECT $fields FROM $table"; + if( $cond){ + $cond = $self->quote_condition($cond); + $stmt .= " WHERE $cond"; + if(defined $order){ + $stmt .= " ORDER BY $order"; + } + } + + Util::log("select_array: $stmt",2); + return $self->{-dbh}->selectall_arrayref($stmt); +} + +# returns number of fields with given condition +sub count{ + my ($self, $table, $cond) = @_; + my $array = $self->select_array($table,'*',$cond); + my @a = @$array; + my $count = $#a + 1; + Util::log("counted $cond in $table: $count",1); + return $count; +} + +# insert a row in one table of the database +# +# parameterlist: +# table: the database-table we work on +# hash: give here a hash with the new values +# noquote: if hash, than dont quote all keys which are in this hash, +# if no hash but defined, than we dont quote all the new values +# (useful for things simmilar to COUNT = COUNT + 1) +sub insert_hash{ + my ($self, $table, $hash,$noquote) = @_; + my $noquote_type = ref($noquote); + my $noquote_global = 1 if defined $noquote and not $noquote_type eq 'HASH'; + my $noquote_hash = 1 if $noquote_type eq 'HASH'; + + my $insert = "INSERT INTO $table ("; + for my $key (keys %$hash){ + # $key = $self->{-dbh}->quote_identifier($key); + $insert .= "$key,"; + } + chop($insert); + $insert .=") VALUES ("; + while( my ($k,$val) = each %$hash){ + $val = $self->quote($val) if not $noquote_global or + ($noquote_hash and exists $noquote->{$k}); + $insert .= "$val,"; + } + chop($insert); + $insert .= ')'; + + Util::log("INSERT: $insert",2); + my $h = $self->{-dbh}->prepare($insert); + $h->execute(); + $h->finish(); +} + +# parameter: see insert_hash() and update_hash() +sub insert_or_update_hash{ + my ($self, $table, $cond, $hash, $noquote) = @_; + $cond = $self->quote_condition($cond); + my @row = $self->single_select("SELECT * FROM $table WHERE $cond"); + use Data::Dumper; + if($#row >= 0){ + $self->update_hash($table,$cond,$hash,$noquote); + }else{ + $self->insert_hash($table,$hash,$noquote); + } +} + +# update a set of rows in one table of the database +# +# parameterlist: +# table: the database-table we work on +# cond: only rows are effected, which evaluates this condition as true +# hash: give here a hash with the new values +# noquote: if hash, than dont quote all keys which are in this hash, +# if no hash but defined, than we dont quote all the new values +# (useful for things simmilar to COUNT = COUNT + 1) +sub update_hash{ + my ($self, $table, $cond, $hash, $noquote) = @_; + my $noquote_type = ref($noquote); + my $noquote_global = 1 if defined $noquote and not $noquote_type eq 'HASH'; + my $noquote_hash = 1 if $noquote_type eq 'HASH'; + + my $stmt = "UPDATE $table SET "; + while( my ($k,$v) = each %$hash){ + $v = $self->quote($v) if not $noquote_global or + ($noquote_hash and exists $noquote->{$k}); + $stmt .= "$k=$v,"; + } + chop($stmt); + + $stmt .= " WHERE ". $self->quote_condition($cond); + + Util::log("update_hash: $stmt",2); + my $h = $self->{-dbh}->prepare($stmt); + $h->execute(); + $h->finish(); +} + +sub delete_from{ + my ($self,$table,$cond) = @_; + + die "do you really want to delete a complete table?" unless $cond; + + my $sql = "DELETE FROM $table"; + if($cond){ + $cond = $self->quote_condition($cond); + $sql .= " WHERE $cond"; + } + Util::log($sql,2); + my $dbh = $self->{-dbh}; + my $h = $dbh->prepare($sql); + $h->execute(); + $h->finish(); +} + +sub find_first_free{ + my ($self,$table,$field) = @_; + + my $t = $self->select_array($table, $field); + my @ids = sort {$a <=> $b} (map {$_->[0]} @$t); + + my $id = 1; + for my $try (@ids){ + next if $try < 0; # unfortunately some tabels contain the id -1 and id 0 is free :-( + last if $id < $try; + $id = $try + 1; + } + return $id; +} + +sub read_game{ + my ($self,$game,$field) = @_; + my $stmt = "SELECT $field from GAME where GAME=$game"; + return $self->single_select($stmt); +} + +# localisation + +sub set_language{ + my ($self, $lang) = @_; + $self->{-lang} = $self->{-dbh}->quote($lang) if $lang; +} + +# returns the localisation of a tag. +# if the result contains tags again, localize these too. +sub loc{ + my ($self, $tag, @args) = @_; + + Util::log("args: @args",2); + + $tag = $self->{-dbh}->quote($tag); + my $stmt = 'SELECT TEXT FROM LOCALIZE WHERE LANGUAGE='.$self->{-lang}." AND TAG=$tag"; + my ($text) = $self->single_select($stmt); + + # replace %x with arg[x] + while($text =~ /\%(\d+)/){ + my $nr = $1; + Util::log("found $nr in $text",2); + $text =~ s/(\%$nr)/$args[$nr-1]/g; + } + + return $text =~ /^\s*$/ ? "Error: Tag $tag not defined for language $self->{-lang}." + : $self->localize_string($text); +} + +# calls loc() for all uppercase-only-words and returns new string +# TODO: allow arguments in brackets after uppercase-words with length >= 3 +sub localize_string{ + my ($self,$string) = @_; + + $string =~ s/(\b[^\Wa-z0-9]{3,}\b)/$self->loc($1)/ge; + return $string; +} + +# game management: + +sub new_account{ + my ($self,$login,$name,$email,$lang) = @_; + + my ($qlogin,$qname,$qemail) = $self->quote_all($login,$name,$email); + + my $cond = "LOGIN=$qlogin OR REALNAME=$qname OR EMAIL=$qemail"; + my $habschon = $self->select_array('PLAYER','PLAYER',$cond); + my @habschon = @$habschon; + return 0 if @habschon; + + # generate new password + my $pwd = ''; + my $allowed = '2345679ACDEFGHIJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz'; + for my $i (0..7){ + $pwd .= substr($allowed, POSIX::floor(rand(72)), 1); + } + my $qpwd = $self->{-dbh}->quote($pwd); + + # search first free player ID + my $player = $self->find_first_free('PLAYER','PLAYER'); + + # write new player + $self->insert_hash('PLAYER', {PLAYER => $player, + REALNAME => $name, + LOGIN => $login, + EMAIL => $email, + PASSWORD => $pwd, + LANGUAGE => $lang, + }); + $self->commit(); + + my $mail = "From: registration\@aymargeddon.de\nTo: $name <$email>\n" + . "Subject: ".$self->loc('REGISTER_MAIL_SUBJECT')."\n\n" + . $self->loc('REGISTER_MAIL_TEXT', $name, $login, $pwd)."\n"; + + # print $mail; + + open(SENDMAIL, "|mail $email") or Util::log("Can't fork for sendmail: $!",0); + print SENDMAIL $mail; + close(SENDMAIL) or Util::log("sendmail didn't close nicely",0); + + return $pwd; +} + +sub authenticate{ + my ($self, $user, $pwd, $pwd2, $pwd3 ) = @_; + + my $admin = $self->quote('admin'); + # you can log into any account with adminpassword + my ($adminpwd) = $self->single_select("SELECT PASSWORD FROM PLAYER ". + "WHERE LOGIN=$admin"); + ($user,$pwd,$adminpwd) = $self->quote_all($user,$pwd,$adminpwd); + + + Util::log("Adminpassword: $adminpwd, password: $pwd",2); + + my ($player, $sec); + if($adminpwd eq $pwd){ + my $stmt = "SELECT PLAYER,SECURITY FROM PLAYER WHERE ". + "LOGIN=$user"; + ($player, $sec) = $self->single_select($stmt); + }else{ + my $stmt = "SELECT PLAYER,SECURITY FROM PLAYER WHERE ". + "LOGIN=$user AND PASSWORD=$pwd"; + ($player, $sec) = $self->single_select($stmt); + } + + if($player){ + if($pwd2 and $pwd3 and $pwd2 eq $pwd3){ + # change password! + $self->update_hash('PLAYER', + "LOGIN=$user", + {'PASSWORD' => $pwd2}); + Util::log("password changed!",0); # todo: localize and aufhübschen + } + # TODO: write last_login + return $player; + } + return 0; +} + +sub write_event{ + my ($self, $content) = @_; + + $self->insert_hash('EVENT', $content); +} + +sub read_event{ + my ($self, $id) = @_; + + my $e = $self->single_hash_select('EVENT',"ID=$id"); + my @args; + for my $a (1..($::conf->{-MAX_ARGS})){ + Util::log("search for ARG$a...",2); + push @args, $e->{"ARG$a"}; + } + + Util::log("args in read_event: @args",2); + + my ($loc,$to); + $to = $e->{'LOCATION'} || 'Game'; + + return ($to,$e->{'TIME'},$self->loc($e->{'TAG'},@args)); +} + +sub delete_event{ + my ($self, $id) = @_; + $self->delete_from('EVENT',"ID=$id"); +} + +sub send_message{ + my ($self, $msg_hash) = @_; + + $msg_hash->{'TIME'} = $self->now(); + $self->insert_hash('MESSAGE',$msg_hash); +} + +sub read_message{ + my ($self, $id) = @_; + + my $stmt = "SELECT TIME, MFROM, MSG_TAG, MSG_TEXT, ARG1, ARG2, ARG3, ARG4 ". + "FROM MESSAGE WHERE ID=$id"; + my ($time, $from, $tag, $text, @args) = $self->single_select($stmt); + + # localize it + if($tag){ + # print "tag!"; + $text = $self->loc($tag, @args); + return ($time, $from, $text, @args); + }elsif($text){ + # print "text!"; + $text = $self->localize_string($text) unless $from; + return ($time, $from, $text); + }else{ + return (0, 'unknown message type error in DataBase'); + } +} + +sub delete_message{ + my ($self, $id) = @_; + + $self->delete_from('MESSAGE',"ID=$id"); +} + +sub read_player{ + my ($self,$player,$field) = @_; + my $stmt = "SELECT $field from PLAYER where PLAYER=$player"; + return $self->single_select($stmt); +} + +# returns all games for id -1 (admin) +sub games_of_player{ + my ($self,$player) = @_; + + if($player > 0){ + return $self->select_array('ROLE','GAME',"PLAYER=$player"); + }else{ + return $self->select_array('GAME','GAME'); + } +} + +sub open_games{ + my ($self,$cond) = @_; + my $games = $self->select_array('GAME','GAME'); + # return $games; + + my @log; + for my $game (@$games){ + my $c = "GAME=$game"; + $c .= "AND $cond" if $cond; + + my $unused = $self->select_array('MAP','LOCATION','',$c); + + push @log, $game if $#{@$unused} + 1; + } + return \@log; +} + +sub read_single_mobile{ + my($self,$id) = @_; + + return $self->single_hash_select('MOBILE',"ID=$id"); +} + +sub now{ + my $self = shift; + my ($ret) = $self->single_select("SELECT NOW()"); + return $ret; +} + +# generates a relative time string from an absolute time +sub relative{ + my ($self, $absolute) = @_; + + my $now = $self->now(); + # print "now: $now\nabsolute: $absolute\n"; + + my $now_unix = Date::Parse::str2time($now,'GMT'); + my $absolute_unix = Date::Parse::str2time($absolute,'GMT'); + # print "now_unix: $now_unix\nabsolute_unix: $absolute_unix\n"; + my $diff = $absolute_unix - $now_unix; + + if($diff > 0){ + + my ($days,$hours,$minutes,$seconds) = + Date::Calc::Delta_DHMS(1970,1,1,0,0,0,Date::Calc::Time_to_Date($diff)); + + if($days){ + return $self->loc('TIME_WITH_DAYS',$days,$hours,$minutes,$seconds); + }elsif($hours){ + return $self->loc('TIME_WITH_HOURS',$hours,$minutes,$seconds); + }elsif($minutes){ + return $self->loc('TIME_WITH_MINUTES',$minutes,$seconds); + }else{ + return $self->loc('TIME_WITH_SECONDS',$seconds); + } + }else{ # $diff <= 0 + return ''; + } +} + +1; + + diff --git a/src/FROGS/FROGS.pod b/src/FROGS/FROGS.pod new file mode 100644 index 0000000..a837bcb --- /dev/null +++ b/src/FROGS/FROGS.pod @@ -0,0 +1,134 @@ +=head1 NAME B + + +Bramework for Bealtime Bnline Bames of Btrategy + +=head1 DESCRIPTION + + +This is a Framework for programming Massive Multiplayer Browsergames +(MMBG). + +The generell idea is to have a SQL-Database, which is accessed over +DBI, some scripts to do the work at the server and some +EmbPerl-Scripts to do the user interaction. The wide area of games is +to different to give the scripts itself, so instead we choose to +provide some modules which includes the generell function of a MMBG +and you will program some scripts to do the game-specific +part. Normally you need: + +=over 4 + +=item create.pl + +A script, which generates a world in the database. + +=item scheduler.pl + +A script which do the commands and deliver the messages. It should run +as a daemon. + +=item check.pl + +A script, which checks the logical integrity of the database of your +game. + +=item *.epl + +A bunch of Templates for the user-interaction. For instance a +login.epl to manage the user-authentification and a map.epl to draw a +graphical map. + +=back + +As a start you can look at the scripts provided by the Aymargeddon +project (www.aymargeddon.de), which is based upon FROGS. You should +maybe use the *.epl-templates from it, because they do much generell +work and some of them will maybe included in later versions of FROGS. + +FROGS consists of the following parts: + +=over 4 + +=item B + +An generell baseclass for maps. Includes a generell baseclass for +locations. + +=item B + +A special Map derived from FROGS::Map. It is a Torus consisting of +Hex-Fields. + +=item B + +This provides generell checking ability for the underlying database. + +=item B + +Here the structur of the Database is defined. You should normally not +use direct DBI-access to the Database. Use this module instead +whenever possible. + +=item B + +You have to change this to configure your Game. See the comments in +the file. + +=back + +Look in the perldoc of the parts if you want to know more. + +=head1 DATABASE + +You also need to provide a FROGS-conform database. Your game database +can have more tables and fields than this, but the following +tables/fields are a must have: + +=over 4 + +=item MAP + +Fields: LOCATION, GAME + +=item COMMANDS + +Fields: COMMAND, GAME, PLAYER + +=item MESSAGES + +Fields: GAME, MESSAGE, PLAYER, FROM + +=item LOCALIZE + +=item ROLE + +=item PLAYER + +=back + +Look at the database definition in Aymargeddon to get a clue. For +later versions we will provide a database definition of this minimal +database to simplify things. + +=head1 VERSION + +This is Version 0.1 of the FROGS. + +=head1 LICENSE + +FROGS is Free Software (GPL). + +=head1 AUTHOR + +FROGS was written by the Aymargeddon development team. Most work done by: + + Benni Baermann (benni AT obda DOT de) + + Dominikus Scherkl + + Jens Kurlanda + +Contact us at ragnaroek AT informatik DOT uni-frankfurt DOT de. + +=cut diff --git a/src/FROGS/Game.pm b/src/FROGS/Game.pm new file mode 100644 index 0000000..e07e61d --- /dev/null +++ b/src/FROGS/Game.pm @@ -0,0 +1,391 @@ +#!/usr/bin/perl -w +########################################################################## +# +# Copyright (c) 2003 Aymargeddon Development Team +# +# This file is part of +# "FROGS" = Framework for Realtime Online Games of Strategy +# +# FROGS is free software; you can redistribute it and/or modify it +# under the terms of the GNU General Public License as published by the Free +# Software Foundation; either version 2 of the License, or (at your option) +# any later version. +# +# FROGS is distributed in the hope that it will be useful, but WITHOUT +# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for +# more details. +# You should have received a copy of the GNU General Public License along +# with this program; if not, write to the Free Software Foundation, Inc., 675 +# Mass Ave, Cambridge, MA 02139, USA. +# +########################################################################### +# + +# generell Game-specific functions +# + +use strict; +use FROGS::DataBase; +use FROGS::Util; + +package Game; +use Data::Dumper; + +sub new{ + my ($class,$game,$user,$db) = @_; + + my $self = {}; + + # create database-object, if not given with call + if (defined $db) { + $self->{-db} = $db; + } else { + $self->{-db} = DataBase->new(); + } + # $db->set_language($lang); + + $self->{-game} = $game; + $self->{-user} = $user; + + bless($self,$class); +} + +sub insert_command{ + my ($self,$cmd,$args,$loc,$player,$exec) = @_; + $player = $self->{-user} unless defined $player; + my $db = $self->{-db}; + + my ($now) = $db->single_select("SELECT NOW()"); + + # insert MOBILE Argument in the database-field if any + my $mobile = 0; + if($args =~ /MOBILE\s*=\s*(\d+)/){ + $mobile = $1; + } + + my $hash = {'GAME' => $self->{-game}, + 'SUBMIT' => $now, + 'PLAYER' => $player, + 'COMMAND' => $cmd, + 'ARGUMENTS' => $args, + 'MOBILE' => $mobile, + }; + if(defined $exec){ + # insert a phase-2 command + $hash->{'EXEC'} = $exec; + $hash->{'ACK'} = $now; + }else{ + $hash->{'EXEC'} = $now; + } + $hash->{'LOCATION'} = $loc if defined $loc; + $db->insert_hash('COMMAND',$hash); + Util::log("command inserted: $cmd, $args, $loc, $player",1); +} + +sub read_map{ + my ($self, $fields) = @_; + # $fields should NOT be empty + return $self->{-db}->select_array('MAP',"LOCATION,$fields","GAME=$self->{-game}"); +} + +# +# Message handling +# + +sub read_messages{ + my ($self, $fields) = @_; + $fields = ','.$fields if $fields; + $fields = 'ID'.$fields; + my $cond = "GAME=$self->{-game} AND (MTO=0 OR MTO=$self->{-user})"; + return $self->{-db}->select_array('MESSAGE', $fields, $cond, 'TIME desc'); +} + +# sends a raw text, if $hash is not a hash. if it is one, it generates +# a tag with arguments usable by DataBase::long_loc() +sub send_message_to{ + my($self,$user,$hash) = @_; + + $hash->{'MTO'} = $user; + $hash->{'GAME'} = $self->{-game}; + + $self->{-db}->send_message($hash); + +} + +sub send_message_to_me{ + my ($self,$hash) = @_; + + $self->send_message_to($self->{-user},$hash); +} + +sub send_message_to_list{ + my ($self,$msg_hash,@list) = @_; + + Util::log("send_message_to_list(@list)",2); + + for my $user (@list) { + my %copy = (%$msg_hash); + $self->send_message_to($user,\%copy); + } +} + +sub send_message_to_all{ + my ($self,$hash) = @_; + + my @roles = $self->get_all_roles(); + $self->send_message_to_list($hash,@roles); +} + +sub show_message{ + my ($self,$id) = @_; + + my ($time, $from, $text, @args) = $self->{-db}->read_message($id); + + my $other = $from; + # lookup sender + $from = $from == 0 ? "Server" : $self->charname($from); + + my $return = "$from $time: $text"; + $return .= ' reply' unless $other == 0; + return $return; +} + +sub delete_all_messages{ + my ($self,$time) = @_; + # $::conf->{-EPL_DEBUG} = 2; + # print "time: $time

"; + $self->{-db}->delete_from('MESSAGE',"GAME=$self->{-game} AND MTO=$self->{-user}". + " AND TIME < '$time'"); + # $::conf->{-EPL_DEBUG} = 0; +} + +# send message to all players, who see this field +sub send_message_to_field{ + my($self,$loc,$hash) = @_; + + return unless $::conf->{-SEND_MESSAGE_TO_FIELD}; + + my @players = $self->player_see_field($loc); + $self->send_message_to_list($hash,@players); +} + +# +# events +# + +# returns a ref to a list of Event-IDs for a role +# it includes all game-events and all events on locations seen by the role +# TODO: accept additional parameter N to return the N newest events +sub role_events{ + my $self = shift; + + my $db = $self->{-db}; + my @loc = $self->seen_locations(); + + my $k = $db->select_hash('EVENT','LOCATION','ID',"GAME=$self->{-game}"); + + my @ret = (); + for my $l (@loc) { + push @ret, $k->{$l} if (defined $k->{$l}); + + } + # print "@ret"; + return \@ret; +} +# returns a ref to a list of Event-IDs for a field +# it includes all events on locations +sub field_events{ + my ($self, $loc) = @_; + my $db = $self->{-db}; + my $qloc = $db->quote($loc); + return $db->select_hash('EVENT','ID',0,"GAME=$self->{-game} AND LOCATION=$qloc"); +} + +sub show_event{ + my ($self, $id, $show_field) = @_; + + $show_field = 1 unless defined $show_field and $show_field == 0; + + my ($from, $time, $text, @args) = $self->{-db}->read_event($id); + + # lookup sender + if ($from != 'Game') { + $from = ''."$from"; + } + + + $time = $self->{-db}->relative($time); + $from = "" unless $show_field; + return "$from $time: $text"; +} + +sub search_event{ + my ($self,$tag,$location) = @_; + + $tag = 'EVENT_' . $tag; + ($tag,$location) = $self->{-db}->quote_all($tag,$location); + return $self->{-db}->single_hash_select('EVENT',"TAG=$tag and LOCATION=$location"); +} + +# +# +# + +# Should be overloaded by derived class +sub seen_locations{ + my ($self) = @_; + return (); +} + +sub read_field{ + my ($self,$field,$loc) = @_; + $loc = $self->{-db}->quote($loc); + my $stmt = "SELECT $field from MAP where GAME=$self->{-game} AND LOCATION=$loc"; + return $self->{-db}->single_select($stmt); +} + +sub read_player_relations{ + my ($self, $user) = @_; + $user = $self->{-user} unless defined $user; + + # print "user: $user\n"; + my $r = $self->{-db}->select_hash('ALLIANCE', 'OTHER', 'STATUS', + "GAME=$self->{-game} AND PLAYER=$user"); + # print Dumper $r; + return $r; +} + +sub read_single_relation{ + my ($self,$me,$you) = @_; + my $hash = $self->{-db}->single_hash_select('ALLIANCE', + "GAME=$self->{-game} AND ". + "PLAYER=$me AND ". + "OTHER=$you"); + my $ret = $hash->{'STATUS'}; + return $ret ? $ret : 'NEUTRAL'; +} + + +sub reverse_player_relations{ + my ($self) = @_; + return $self->{-db}->select_hash('ALLIANCE', 'PLAYER', 'STATUS', + "GAME=$self->{-game} AND OTHER=$self->{-user}"); +} + +sub read_mobile { + my ($self,$fields,$type,$loc,$only_available) = @_; + $only_available = 0 unless defined $only_available; + # print "read_mobile($fields,$type,$loc,$only_available)\n"; + my $cond = "GAME=$self->{-game} AND LOCATION=$loc"; + if ($only_available > 0) { + $cond .= " AND AVAILABLE=Y"; + } elsif ($only_available < 0) { + $cond .= " AND AVAILABLE=N"; + } + $cond .= " AND TYPE=$type" if $type; + return $self->{-db}->select_array('MOBILE', $fields, $cond); +} + +sub read_mobile_condition{ + my ($self,$fields,$cond,$loc) = @_; + $cond = "GAME=$self->{-game} AND $cond"; + $cond .= " AND LOCATION=$loc" if defined $loc; + $self->{-db}->select_array('MOBILE',$fields,$cond); +} + +# counts available mobiles of TYPE and OWNER (or all owners) in LOCATION +# TODO: we can do this in SQL with "select sum(COUNT) from MOBILE where ..." +sub count_mobile{ + my ($self,$type,$loc,$owner) = @_; + + my $mobs = $self->read_mobile('COUNT,OWNER',$type,$loc,1); + my $count = 0; + for my $mob (@$mobs) { + my $nr = $mob->[0]; + if (defined $owner) { + $count += $nr if $mob->[1] == $owner; + } else { + $count += $nr; + } + } + return $count; +} + +# count all people in $loc from $player +sub count_people{ + my($self,$loc,$player) = @_; + $player = $self->{-user} unless defined $player; + + my $cond = $self->{-db}->quote_condition("GAME=$self->{-game} ". + "AND OWNER=$player ". + "AND AVAILABLE=Y ". + "AND LOCATION=$loc"); + my $stmt = "select sum(COUNT) from MOBILE where $cond"; + my ($ret) = $self->{-db}->single_select($stmt); + return $ret; +} + # stupid, GAME not necessary: ID is unique between different games +sub get_mobile_info { + my ($self, $mob_id, $fields) = @_; + my $stmt = "SELECT $fields from MOBILE where GAME=$self->{-game} AND ID=$mob_id"; + return $self->{-db}->single_select($stmt); +} + +# WARNING: in Aymargeddon, this is overloaded in Aymargeddon.pm +sub own_in_mobile{ + my($self,$loc,$player,$active) = @_; + # $loc = $self->{-db}->quote($loc); + my $cond = "GAME=$self->{-game} AND LOCATION=$loc". + " AND (OWNER=$player OR ADORING=$player)"; + if (defined $active) { + # my $y = $self->{-db}->quote('Y'); + $cond .= " AND AVAILABLE=Y"; + } + return $self->{-db}->select_array('MOBILE','ID',$cond); +} + +sub read_role{ + my ($self,$player,$field) = @_; + my $stmt = "SELECT $field from ROLE where GAME=$self->{-game} AND PLAYER=$player"; + return $self->{-db}->single_select($stmt); +} + +sub get_all_roles{ + my ($self,$role) = @_; + + my $cond = "GAME=$self->{-game}"; + if (defined $role) { + # $role = $self->{-db}->quote($role); + $cond .= " AND ROLE=$role"; + } + my @roles = @{$self->{-db}->select_array('ROLE','PLAYER',$cond)}; + for my $i (0..$#roles) { + $roles[$i] = $roles[$i]->[0]; + } + return @roles; +} + +sub get_speed { + my $self = shift; + my ($ret,$run) = $self->{-db}->single_select("select SPEED, RUNNING from GAME". + " where GAME = $self->{-game} "); + return $run eq 'Y' ? $ret : - $ret; +} + +sub charname{ + my ($self,$player,$do) = @_; + return $self->{-db}->loc('UNASSIGNED') if $player < 1; + my @list = $self->read_role($player, 'NICKNAME'); + return $list[0]; +} + +sub role{ + my ($self,$player) = @_; + return 'OBSERVER' if $player < 1; + my @role = $self->read_role($player, 'ROLE'); + return $role[0]; +} + +1; diff --git a/src/FROGS/HexTorus.pm b/src/FROGS/HexTorus.pm new file mode 100644 index 0000000..6876166 --- /dev/null +++ b/src/FROGS/HexTorus.pm @@ -0,0 +1,352 @@ +########################################################################## +# +# Copyright (c) 2003 Aymargeddon Development Team +# +# This file is part of +# "FROGS" = Framework for Realtime Online Games of Strategy +# +# FROGS is free software; you can redistribute it and/or modify it +# under the terms of the GNU General Public License as published by the Free +# Software Foundation; either version 2 of the License, or (at your option) +# any later version. +# +# FROGS is distributed in the hope that it will be useful, but WITHOUT +# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for +# more details. +# You should have received a copy of the GNU General Public License along +# with this program; if not, write to the Free Software Foundation, Inc., 675 +# Mass Ave, Cambridge, MA 02139, USA. +# +########################################################################### +# + +use strict; +use POSIX qw(ceil floor); + +use FROGS::Config; +use FROGS::Map; + +# We define two classes, which gives an implementation of Maps as a +# HexTorus. + +# TODO: selects to DataBase.pm + +# +# Location. This is a class with two coordinates. +# +package Location; + +sub new{ + my ($class,$x,$y) = @_; + + my $self = { -x => $x, -y => $y }; + bless($self, $class); +} + +sub get{ + my $self = shift; + + return ($self->{-x},$self->{-y}); +} + +sub equal{ + my ($self, $loc) = @_; + my ($x,$y) = $loc->get(); + return ($x == $self->{-x} and $y == $self->{-y}); +} + +sub to_string{ + my $self = shift; + return $self->{-x} . '_' . $self->{-y}; +} + +sub from_string{ + my ($class, $string) = @_; + + # print "CLASS: $class, STRING: $string\n"; + + $string =~ /^(\d+)_(\d+)$/; + my ($x, $y) = ($1,$2); + # print "x: $x, y: $y\n"; + my $self = { -x => $1, + -y => $2,}; + + bless($self, $class); +} + +sub pretty{ + my $loc = shift; + $loc =~ s/^(\d+)_(\d+)$/\($1, $2\)/; + return $loc; +} + +sub is_wellformed{ + my $string = shift; + return 1 if $string =~ /^(\d+)\_(\d+)$/; + return 0; +} + +# +# Map. Hextorus. +# +package HexTorus; +@HexTorus::ISA = qw(Map); + +sub new{ + my $class = shift; + my ($n) = @_; + + my $self = { + -size => $n + }; + + bless($self, $class); +} + + +# returns a list of neighbours of field x,y in +# an hex-torus with size 2n * n +# this function is more effective than the generalised +# distant_neighbours from Map.pm +# TODO BUG: dont return doubbles in turn-around +sub neighbours{ + my $self = shift; + my ($loc) = @_; + + my $n = $self->{-size}; + my ($x,$y) = $loc->get(); + + return (new Location($x,($y-1)%$n), + new Location($x,($y+1)%$n), + new Location(($x-1)%($n*2),$y), + new Location(($x+1)%($n*2),$y), + new Location(($x+1)%($n*2),($y-1)%$n), + new Location(($x-1)%($n*2),($y+1)%$n)); +} + +# returns the neighbour in the given direction. +# direction can be one of qw(NW N NE S SW SE) +sub get_neighbour{ + my ($self, $loc, $dir) = @_; + my ($x,$y) = $loc->get(); + + $dir = uc($dir); + my ($xx,$yy) = ($x,$y); + my $n = $self->{-size}; + if($dir eq 'N'){ + $yy = ($yy - 1) % $n; + }elsif($dir eq 'S'){ + $yy = ($yy + 1) % $n; + }elsif($dir eq 'SW'){ + $xx = ($xx - 1) % ($n * 2); + $yy = ($yy + 1) % $n; + }elsif($dir eq 'SE'){ + $xx = ($xx + 1) % ($n * 2); + }elsif($dir eq 'NW'){ + $xx = ($xx - 1) % ($n * 2); + }elsif($dir eq 'NE'){ + $xx = ($xx + 1) % ($n * 2); + $yy = ($yy - 1) % $n; + }else{ + Util::log("HexTorus::get_neighbour(): unknown direction: $dir\n",0); + return 0; + } + return Location->new($xx,$yy); +} + +# returns the direction from $from to $to (assumes they are neighbours) +sub get_direction{ + my($self,$from,$to) = @_; + + # print "get_direction(".$from->to_string().", ".$to->to_string().")\n"; + + for my $dir (qw(NW N NE S SW SE)){ + my $neighbour = $self->get_neighbour($from,$dir); + # print "test $dir from ".$from->to_string().": ".$neighbour->to_string()."\n"; + return $dir if $to->equal($neighbour); + } + return 0; +} + +# returns the distance between two fields in +# an hex-torus with size 2n * n +sub distance{ + my $self = shift; + my ($loc1,$loc2) = @_; + + my $n = $self->{-size}; + my ($xx,$yy) = $loc1->get(); + my ($x,$y) = $loc2->get(); + + if($xx > $n * 2 or $x > $n * 2 or $yy > $n or $y > $n){ + print "range error in distance ($n,$xx,$x,$yy,$y) !\n"; + return 0; + } + + return 0 if($xx == $x and $yy == $y); + + my $xd = abs($x-$xx); + $xd = 2 * $n - $xd if $xd > $n; + my $sd = abs($x-$xx+$y -$yy) % $n; + $sd = $n - $sd if 2* $sd > $n; + my $yd = abs($y-$yy); + $yd = $n - $yd if 2 * $yd > $n; + + if($xd+$yd+$sd == $n){ + + if(2*$xd == $n) # this occures only for even n + { + # there must be some easier way to distinguish + # fields in se/nw direction from those in sw/ne + # but this works. + my $xp = abs($x-$xx+1); + $xp = 2 * $n - $xp if $xp > $n; + my $sp = abs($x -$xx +$y -$yy +1) % $n; + $sp = $n - $sp if 2* $sp > $n; + return $xd if $xp+$sp != $xd+$sd; + } + $yd = $sd if $sd > $yd; + return $n-$yd; + } + return $xd if 2 * $xd > $n; + return ($xd+$yd+$sd)/2; +} + +# returns a random location +sub random{ + my $self = shift; + my $n = $self->{-size}; + + my $x = POSIX::floor(rand($n*2)); + my $y = POSIX::floor(rand($n)); + + my $loc = new Location($x,$y); + return $loc; +} + +# iterator for all locations +sub next{ + my $self = shift; + my $loc = shift; + my $n = $self->{-size}; + + my ($x, $y) = $loc->get(); + if(++$x > $n * 2) + { + $x = 0; + $y = 0 if(++$y > $n); + } + return new Location($x, $y); +} + +# returns all locations for which $code evals to true +sub grep{ + my $self = shift; + my $code = shift; + + my $n = $self->{-size}; + + my @result; + for my $x (0..($n*2-1)){ + for my $y (0..($n-1)){ + my $loc = new Location($x,$y); + # print $loc->to_string() . "\n"; + if(&$code($loc)){ + push @result, $loc; + } + } + } + return @result; +} + + +sub fill_array{ + my $self = shift; + my @mapping = @_; + + my @array; + for my $terrain (@mapping){ + for my $xy (@{$terrain->[0]}){ + my ($x,$y) = $xy->get(); + $array[$x][$y] = $terrain->[1], + } + } + return \@array; +} + +# TODO: use FROGS::DataBase.pm +sub write_db{ + my ($self, $dbh, $game_id, $game_name, $game_speed, $default, @mapping) = @_; + $default = $dbh->quote($default); + $game_name = $dbh->quote($game_name); + + my $n = $self->{-size}; + + # create game + my $insert_game = "INSERT INTO GAME (GAME,NAME,SIZE,SPEED,FORTUNE,START_MANA) VALUES". + " ($game_id,$game_name,$n,$game_speed,". + "$::conf->{-START_FORTUNE},$::conf->{-START_MANA})"; + print $insert_game ."\n"; + my $h = $dbh->prepare($insert_game); + $h->execute(); + $h->finish(); + + my @db_map = @{$self->fill_array(@mapping)}; + + # fill map + for my $y (0..($n - 1)){ + for my $x ( 0 .. ($n*2-1)){ + my $insert_map; + my $loc = new Location($x,$y); + my $loc_string = $dbh->quote($loc->to_string()); + if(defined $db_map[$x][$y]){ + + $insert_map = "INSERT INTO MAP (GAME,LOCATION,TERRAIN)". + "VALUES ($game_id,$loc_string,". + $dbh->quote($db_map[$x][$y]).")"; + }else{ + + $insert_map = "INSERT INTO MAP (GAME,LOCATION,TERRAIN)". + "VALUES ($game_id,$loc_string,$default)"; + } + # print "$insert_map\n"; + + $dbh->do($insert_map); + } + } +} + +sub write_string{ + my $self = shift; + my $default = shift; + my $default_string = shift; + my @mapping = @_; + + my @ascii_map = @{$self->fill_array(@mapping)}; + + my $n = $self->{-size}; + my $out = "\n"; + for my $y (0..($n - 1)){ + for my $x ( 0 .. ($n*2-1)){ + if(defined $ascii_map[$x][$y]){ + $out .= $ascii_map[$x][$y] ; + }else{ + $out .= $default; + } + $out .= " "; + } + $out .= "\n" . (' ' x ($y +1)); + } + $out .= "\n"; + + $out .= "Legend:\n"; + $out .= "$default_string: \t$default\n"; + for my $terrain (@mapping){ + $out .= $terrain->[2] . ": \t" . + $terrain->[1] . "\n"; + } + return $out; +} + +return 1; diff --git a/src/FROGS/Map.pm b/src/FROGS/Map.pm new file mode 100644 index 0000000..3d72201 --- /dev/null +++ b/src/FROGS/Map.pm @@ -0,0 +1,66 @@ +########################################################################## +# +# Copyright (c) 2003 Aymargeddon Development Team +# +# This file is part of +# "FROGS" = Framework for Realtime Online Games of Strategy +# +# FROGS is free software; you can redistribute it and/or modify it +# under the terms of the GNU General Public License as published by the Free +# Software Foundation; either version 2 of the License, or (at your option) +# any later version. +# +# FROGS is distributed in the hope that it will be useful, but WITHOUT +# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for +# more details. +# You should have received a copy of the GNU General Public License along +# with this program; if not, write to the Free Software Foundation, Inc., 675 +# Mass Ave, Cambridge, MA 02139, USA. +# +########################################################################### +# + +# +# This file holds a baseclass for the topology of the game. +# All methods here are independent of a concrete topology. +# but they require, that such dependent functions exists, +# so this base class did not work if there is no derived class. +# +# Derived classes have to implement the following functions +# +# grep() - return a list of all locations with true evaluation of sub +# neighbours() - returns a list of all neigbours of location +# distance() - returns the distance between two locations +# +# have a look at HexTorus.pm to see an example + + +package Map; + +use strict; + +# returns all locations +sub get_all{ + my $self = shift; + + return $self->grep(sub{1;}); +} + +# returns all locations with distance <= dist arround loc +sub distant_neighbours{ + my ($self,$loc,$dist) = @_; + + # for performance reason + # TODO: do this only, if neighbours() is avaiable in the derived class + return $self->neighbours($loc) if $dist == 1; + + return $self->grep(sub{ + my $loc2 = shift; + return $self->distance($loc,$loc2) <= $dist;}); + +} + +1; + + diff --git a/src/FROGS/Util.pm b/src/FROGS/Util.pm new file mode 100644 index 0000000..581e080 --- /dev/null +++ b/src/FROGS/Util.pm @@ -0,0 +1,151 @@ +########################################################################## +# +# Copyright (c) 2003 Aymargeddon Development Team +# +# This file is part of +# "FROGS" = Framework for Realtime Online Games of Strategy +# +# FROGS is free software; you can redistribute it and/or modify it +# under the terms of the GNU General Public License as published by the Free +# Software Foundation; either version 2 of the License, or (at your option) +# any later version. +# +# FROGS is distributed in the hope that it will be useful, but WITHOUT +# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for +# more details. +# You should have received a copy of the GNU General Public License along +# with this program; if not, write to the Free Software Foundation, Inc., 675 +# Mass Ave, Cambridge, MA 02139, USA. +# +########################################################################### +# + +# +# Here we gather some utility-functions +# + +use strict; +use FROGS::DataBase; +use FROGS::Config qw ($conf); + +package Util; +use Data::Dumper; + +# parse the command-line (or any other string-array) +# and overwrites $::conf with the new values +# example: ./scheduler.pl -DURATION-PRAY=1000 -MANA-BLESS_PRIEST=10 +sub overwrite_config{ + my @arr = @_; + for my $arg (@arr){ + my ($left,$right) = split /=/,$arg; + my @parts = split /-/, $left; + + # TODO: generalization + if($parts[2]){ + $::conf->{"-$parts[1]"}->{"-$parts[2]"} = $right; + }else{ + $::conf->{"-$parts[1]"} = $right; + } + } +} + +# returns 1 if $scalar is in @list +sub is_in{ + my ($scalar, @list) = @_; + + for my $le (@list) { + return 1 if $le eq $scalar; + } + return 0; +} + +# returns all elements of @$A which are _not_ in @$B +# in an array reference +sub without{ + my ($A, $B) = @_; + + my %h = (); + for my $b (@$B){ + $h{$b} = 1; + } + + my @A_without_B = (); + for my $a (@$A){ + push @A_without_B, $a unless exists $h{$a}; + } + return \@A_without_B; +} + +sub log{ + my ($string,$level) = @_; + + my $abslevel = $level; + my $do = 0; + + # TODO: dirty hack, use caller() instead + if($0 eq '-e'){ + $string .= "

"; + $do = 1 if $::conf->{-EPL_DEBUG} >= $abslevel; + }else{ + $do = 1 if $::conf->{-DEBUG} >= $abslevel; + + if($::conf->{-FULL_DEBUG_FILE}){ + # FULL_LOG in file + if($level >= 0){ + print FULL_LOG "$string\n"; + }else{ + print FULL_LOG "$string"; + } + } + } + # negativ values for level prints no newline + if($do){ + if($level >= 0){ + print "$string\n"; + }else{ + print "$string"; + } + } +} + +sub open_log{ + my $file = $::conf->{-FULL_DEBUG_FILE}; + open(FULL_LOG,">$file") or die "can't open $file: $!"; +} + +sub close_log{ + close FULL_LOG; +} + +sub min{ + my @list = @_; + + my $min = 99999999; + for my $elem (@list){ + $min = $elem if $elem < $min; + } + return $min; +} + +sub max{ + my @list = @_; + + my $max = -99999999; + for my $elem (@list){ + $max = $elem if $elem > $max; + } + return $max; +} + +# returns a shuffled list +sub shuffle { + my $array_ref = shift; + + my @shuffled = sort { int(rand(3)) - 1 } @$array_ref; + + return \@shuffled; +} + +1; + diff --git a/src/FROGS/scheduler.pl b/src/FROGS/scheduler.pl new file mode 100644 index 0000000..ea91ff2 --- /dev/null +++ b/src/FROGS/scheduler.pl @@ -0,0 +1,97 @@ +#!/usr/bin/perl -w +######################################################################### +# +# Copyright (c) 2003 Aymargeddon Development Team +# +# This file is part of +# "FROGS" = Framework for Realtime Online Games of Strategy +# +# FROGS is free software; you can redistribute it and/or modify it +# under the terms of the GNU General Public License as published by the Free +# Software Foundation; either version 2 of the License, or (at your option) +# any later version. +# +# FROGS is distributed in the hope that it will be useful, but WITHOUT +# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for +# more details. +# You should have received a copy of the GNU General Public License along +# with this program; if not, write to the Free Software Foundation, Inc., 675 +# Mass Ave, Cambridge, MA 02139, USA. +# +########################################################################### +# +# scheduler daemon +# +# usage: +# ./scheduler.pl [conf-parameter]=[value] ... +# example: +# ./scheduler.pl -DURATION-PRAY=1000 -DURATION-PRODUCE=1000 + +use strict; +use lib qw(..); +use FROGS::DataBase; +use FROGS::Command; +use FROGS::Config qw ($conf); +use Data::Dumper; + +$|=1; + +Util::open_log(); + +# read command line +Util::overwrite_config(@ARGV); + +my $KEYCOL="SUBMIT"; + +my $db= new DataBase; +# $db->nowrite(); +require $::conf->{-COMMANDS}; +my $now = $db->now(); +Util::log("\n$now Scheduler started...",0); +loop(); +exit; + +sub loop { + # read next using our db connection (complicated due to poor SQL + # implemention of MYSQL :-/ + my $nulldate = $db->quote('0000-00-00 00:00:00'); # TODO: ugly and unportable :-( + my $nullcond = "(DONE IS NULL OR DONE=$nulldate)"; + my $count = 0; + while (1) { + $count++; + $db->commit(); # ??? WHY IS THIS NECESSARY TO SEE COMMANDS FROM CLIENTS ??? + my ($minexec) = $db ->single_select("SELECT min( exec ) FROM COMMAND ". + "WHERE $nullcond and EXEC <= NOW()"); + $minexec = $db ->quote($minexec); + my ($id) = $db ->single_select("SELECT min(id) FROM COMMAND ". + "WHERE $nullcond and EXEC = $minexec"); + $id= $db ->quote($id); + my $command_entry = $db ->single_hash_select("COMMAND", + "EXEC = $minexec and ID = $id "); + + # delete outdated events + $db->delete_from('EVENT','TIME < NOW()') if $::conf->{-DELETE_OLD_EVENTS}; + + if (! defined $command_entry ) { + # sleep if no command in db + sleep ($::conf->{-SCHEDULER_SLEEP}); + Util::log('.',-1); + + if($count % $::conf->{-LOG_TIME_IN_LOOP} == 0){ + my $now = $db->now(); + Util::log("\n###\n### $now: counted $count loops\n###\n",1); + } + next; + } + + # create command object + my $command = $command_entry->{"COMMAND"}->new($command_entry,$db); + # execute command + if($command){ + $command->execute(); + $db->commit; + } + } +}; + diff --git a/src/FROGS/speed_scheduler b/src/FROGS/speed_scheduler new file mode 100644 index 0000000..af5c12d --- /dev/null +++ b/src/FROGS/speed_scheduler @@ -0,0 +1,15 @@ + ./scheduler.pl -DURATION-PRAY=1000 -DURATION-PRODUCE_PRIEST=1000 \ + -DURATION-PRODUCE_WARRIOR_HOME=1000 \ +-DURATION-PRODUCE_PRIEST_HOME=1000 \ +-DURATION-MOVE_WARRIOR=1 \ +-DURATION-MOVE_PRIEST=1 \ +-DURATION-MOVE_HERO=1 \ +-DURATION-MOVE_ARK=1 \ +-DURATION-FIGHT_EARTHLING=1 \ +-DURATION-FIGHT_GOD=1000 \ +-DURATION-PLAGUE=1000 \ +-DURATION-PRODUCE_WARRIOR=1000 \ +-DURATION-FLOOD=1 \ +-DURATION-BUILD_TEMPLE=1 \ +-DURATION-BUILD_ARK=1 # -SEND_MESSAGE_TO_FIELD=0 + diff --git a/src/FROGS/start_scheduler b/src/FROGS/start_scheduler new file mode 100644 index 0000000..63ff512 --- /dev/null +++ b/src/FROGS/start_scheduler @@ -0,0 +1,2 @@ +killall scheduler.pl +nohup /home/benni/aymargeddon/current/src/FROGS/scheduler.pl >> /home/benni/aymargeddon/current/src/FROGS/++out 2>&1 & diff --git a/src/check.pl b/src/check.pl new file mode 100755 index 0000000..6959d52 --- /dev/null +++ b/src/check.pl @@ -0,0 +1,152 @@ +#!/usr/bin/perl -w +########################################################################## +# +# Copyright (c) 2003 Aymargeddon Development Team +# +# This file is part of "Last days of Aymargeddon" +# +# Aymargeddon is free software; you can redistribute it and/or modify it +# under the terms of the GNU General Public License as published by the Free +# Software Foundation; either version 2 of the License, or (at your option) +# any later version. +# +# Aymargeddon is distributed in the hope that it will be useful, but WITHOUT +# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for +# more details. +# You should have received a copy of the GNU General Public License along +# with this program; if not, write to the Free Software Foundation, Inc., 675 +# Mass Ave, Cambridge, MA 02139, USA. +# +########################################################################### +# + +# +# +# checks the integrity of the database. +# +# usage: ./check.pl [-l] [list of checks] +# no args: do all checks +# -l: lists all avaiable checks +# -h: help +# list of checks: do only this checks + +use strict; +$|=1; +use DBI; +use Data::Dumper; +use POSIX qw(floor ceil); +use Term::ReadLine; + +use FROGS::HexTorus; +use FROGS::Check; +use FROGS::Config; + +$::conf->{-FULL_DEBUG_FILE} = 0; +# Util::open_log(); + +# +# Aymargeddon-specific behaviour +# + +# TODO: should also check, if the location is valid in this map +my $location_wellformed_check = sub { + my $loc = shift; + my $wf = Location::is_wellformed($loc); + print "$loc is in bad form! " unless $wf; + return $wf; +}; + +my $fight_and_occupant = sub { + my $db = shift; + my $dbh = $db->{-dbh}; + + my $stmt = 'SELECT GAME,LOCATION,OCCUPANT,ATTACKER,TERRAIN,HOME FROM MAP WHERE 1'; + my $map = $dbh->selectall_arrayref($stmt); + + # for every field in MAP + for my $field (@$map){ + my ($game,$loc,$occ,$att,$terrain,$home) = @$field; + Util::log("testing field $loc, game $game: occupant $occ, attacker: $att",1); + + # read all earthling mobiles in field + my $cond = "LOCATION='$loc' AND GAME=$game AND AVAILABLE='Y'". + " AND (TYPE='WARRIOR' OR TYPE='PRIEST' OR TYPE='HERO' OR TYPE='PROPHET')"; + # my $qcond = $db->quote_condition($cond); + $stmt = "SELECT OWNER FROM MOBILE WHERE $cond"; + my $mobiles = $dbh->selectall_arrayref($stmt); + + # search for earthlings + my @earthlings = (); + my $earthlings = {}; + for my $mob (@$mobiles){ + my ($own) = @$mob; + next if exists $earthlings->{$own}; + $earthlings->{$own} = 1; + push @earthlings, $own; + } + # print Dumper \@earthlings; + + if($occ){ + return "game $game: no earthlings in field $loc with occupant $occ.\n" + if ($#earthlings == -1 and not ($terrain eq 'CITY' and $home)); + }else{ + return "game $game: earthlings in field $loc without occupant.\n" + if $#earthlings > -1; + } + + if($att){ + return "game $game: only one earthling in field $loc from $occ, ". + "attacked from $att\n" if $#earthlings == 0; + }else{ + return "game $game: more than one earthling in peaceful field $loc." + if $#earthlings > 0; + next if $#earthlings < 0; + return "game $game: occupant $occ is not the only earthling $earthlings[0]". + " in field $loc" + if $occ != $earthlings[0]; + } + } + return 0; +}; + + +# list of checks +# every check consists of ID,behaviour +# behaviour is one of A_IN_B, LOGIK or UNIVERSAL + +my $check = { + -GAME_EXISTS_FOR_MAP => + ['A_IN_B', ['MAP','GAME','GAME','GAME']], + -GAME_EXISTS_FOR_ALLIANCE => + ['A_IN_B', ['ALLIANCE','GAME','GAME','GAME']], + -GAME_EXISTS_FOR_COMMAND => + ['A_IN_B', ['COMMAND','GAME','GAME','GAME']], + -GAME_EXISTS_FOR_GOD => + ['A_IN_B', ['GOD','GAME','GAME','GAME']], + -GAME_EXISTS_FOR_GOD => + ['A_IN_B', ['GOD','GAME','GAME','GAME']], + -GAME_EXISTS_FOR_MESSAGE => + ['A_IN_B', ['MESSAGE','GAME','GAME','GAME']], + -GAME_EXISTS_FOR_ROLE => + ['A_IN_B', ['ROLE','GAME','GAME','GAME']], + -GAME_EXISTS_FOR_MOBILE => + ['A_IN_B', ['MOBILE','GAME','GAME','GAME']], + + -LOCATION_WELLFORMED_IN_MAP => + ['LOGIC',['MAP',['LOCATION'],$location_wellformed_check]], + -LOCATION_WELLFORMED_IN_MOBILE => + ['LOGIC',['MOBILE',['LOCATION'],$location_wellformed_check]], + # TODO?: implement write last_temple + # -LAST_TEMPLE_WELLFORMED_IN_GAME => + # ['LOGIC',['GAME',['LAST_TEMPLE'],$location_wellformed_check]], + + -FIGHT_AND_OCCUPANT => + ['UNIVERSAL', $fight_and_occupant], + + }; + +my $checker = Check->new(); +$checker->check_all($check); + + diff --git a/src/create.pl b/src/create.pl new file mode 100755 index 0000000..69794a7 --- /dev/null +++ b/src/create.pl @@ -0,0 +1,637 @@ +#!/usr/bin/perl -w +########################################################################## +# +# Copyright (c) 2003 Aymargeddon Development Team +# +# This file is part of "Last days of Aymargeddon" +# +# Aymargeddon is free software; you can redistribute it and/or modify it +# under the terms of the GNU General Public License as published by the Free +# Software Foundation; either version 2 of the License, or (at your option) +# any later version. +# +# Aymargeddon is distributed in the hope that it will be useful, but WITHOUT +# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for +# more details. +# You should have received a copy of the GNU General Public License along +# with this program; if not, write to the Free Software Foundation, Inc., 675 +# Mass Ave, Cambridge, MA 02139, USA. +# +########################################################################### +# + +# +# +# creates the world to destroy +# +# usage: ./create.pl [number of eartlings] +# +# + +# TODO: use FROGS/DataBase.pm instead of DBI.pm + +use strict; + +$| = 1; + +use DBI; +use Data::Dumper; +use POSIX qw(floor ceil); +use Term::ReadLine; + my $t = Term::ReadLine->new('test'); + +use FROGS::HexTorus; +use FROGS::Config qw($conf); +use FROGS::DataBase; +use FROGS::Game; + +Util::open_log(); + +my $earthlings = $ARGV[0] || 10; # number of earthlings + +my $dont_ask = defined $ARGV[1] ? 1 : 0; + +my $db_source = $::conf->{-DB_SOURCE}; +my $db_user = $::conf->{-DB_USER}; +my $db_passwd = $::conf->{-DB_PASSWD}; + +my $ascii = {-pole => '@', + -city => '+', + -home => '#', + -water => '~', + -island => '°', + -mountain => '^', + -plain => '\''}; + +# set to 0 to not change size of world during generation +# set to positive value to set the number of itterations need to pumpup +my $pump_up_world = 10; + +# TODO: maybe to small? +my $n = ceil(sqrt($earthlings * 7)); # size of world + +my $pole_count = floor(sqrt($n)); +my $min_pole_distance = ceil($n/2); +my $water_count = floor($n*$n/2); +#TODO: number of islands should depend on players, not on size +my $island_count = floor($water_count/3); +my $min_home_distance = $::conf->{-MIN_DISTANCE_HOME}; +my $min_mountain_distance = $::conf->{-MIN_DISTANCE_MOUNTAIN}; +my $wanted_mountain_distance = $::conf->{-WANTED_DISTANCE_MOUNTAIN}; +my $min_water_distance = $::conf->{-MIN_DISTANCE_MOUNTAIN_FROM_WATER}; +my $city_count = $earthlings * 4; +my $mountain_count = floor($earthlings); + +my $nn = 0; +my $map; +while (1) { + if ($pump_up_world and $nn > $pump_up_world) { + $n++; + print "*** World to small! Make it bigger! New size $n.***\n"; + $nn = 0; + } + my $not_enough_room = 0; + $map = new HexTorus($n); + $pole_count = floor(sqrt($n)); + $min_pole_distance = ceil($n/2); + $water_count = floor($n*$n/2); + $island_count = floor($water_count/3); + + # TODO: uggly structure + my $print = 0; + print "generate poles ...\n"; + my @pole = distribute($pole_count,$min_pole_distance, + $min_pole_distance,$min_pole_distance); + $not_enough_room = 1 unless $pole[0]; + my (@water,@islands,@home,@mountains,@not_cities,@cities); + unless ($not_enough_room){ + print "generate water ...\n"; + @water = flood($water_count,@pole); + } + unless ($not_enough_room){ + print "generate islands ...\n"; + @islands = vulcano($island_count, \@water, \@pole); + } + unless ($not_enough_room){ + print "generate mountains ...\n"; + @mountains = distribute($mountain_count,$min_water_distance, + $min_mountain_distance,$wanted_mountain_distance,[],@water); + $not_enough_room = 1 unless $mountains[0]; + } + # print print_list(@mountains); + unless ($not_enough_room){ + print "generate homecitys ...\n"; + + for my $i (1..50){ + @home = homeland(@mountains,@pole,@water,@islands); + # $print = 1 unless $#home<$#mountains; + last unless $#home<$#mountains; + print " RETRY...\n"; + my $mref = Util::shuffle(\@mountains); + @mountains = @$mref; + } + print "\n"; + $not_enough_room = 1 if $#home<$#mountains; + } + + unless ($not_enough_room){ + print "generate citys ...\n"; + @not_cities = (@water,@pole,@mountains,@islands,@home); + @cities = build($city_count,\@home,\@not_cities); + $not_enough_room = 1 unless $cities[0]; + } + + + if (not $not_enough_room or $print) { + #print "Pole: " . print_list(@pole); + #print "Water: " . print_list(@water); + #print "Islands: " . print_list(@islands); + #print "Mountains: " . print_list(@mountains); + #print "Cities: " . print_list(@cities); + #print "Homes: " . print_list(@home); + + print "Earthlings: $earthlings\n". + "Gods: " . ($earthlings/2) . "\n". + "Size of world: $n\n". + "Number of poles: $pole_count\n". + "Minimum pole distance: $min_pole_distance\n". + "Water: $water_count\n". + "Islands: $island_count\n". + "Citys: $city_count\n". + "Plain: " . ( ($n * $n * 2) - ($water_count + $pole_count + + $earthlings + $city_count)) . "\n"; + + print $map->write_string($ascii->{-plain},"Plain", + [\@pole,$ascii->{-pole},"Pole"], + [\@water,$ascii->{-water},"Water"], + [\@islands,$ascii->{-island},"Islands"], + [\@home,$ascii->{-home},"Home"], + [\@mountains,$ascii->{-mountain},"Mountains"], + [\@cities,$ascii->{-city},"Cities"]); + die if $print; + } else { + $nn++; + print "\nNot enough room! Try again ...\n"; + next; + } + + my $r = $dont_ask ? 'y' : + $t->readline('Wrote this world to database? (n/q/[name_of_game])'); + + if ($r =~ /^q$/i) { + exit; + } elsif ($r =~ /^n$/i) { + next; + } else { + my $speed = $dont_ask ? 3600 : + $t->readline('Speed of game in seconds per game step: '); + + my $dbh = DBI->connect("dbi:$db_source",$db_user,$db_passwd, + { + 'RaiseError' => 1,'AutoCommit' => 0}); + + # TODO: use DataBase::find_first_free("GAME","GAME") + + my $table = $dbh->selectall_arrayref("select GAME from GAME"); + my @game_ids = sort {$a <=> $b} (map {$_->[0]} @$table); + + my $game = 1; + for my $try (@game_ids) { + last if $game < $try; + $game = $try + 1; + } + + print "Erste Freie Game ID: $game\n"; + my $db = DataBase->new($dbh); + my $aymgame = Game->new($game,-1,$db); + + $map->write_db($dbh,$game,$r,$speed,'PLAIN', + [\@pole,"POLE"], + [\@water,"WATER"], + [\@islands,"ISLE"], + [\@home,"CITY"], + [\@mountains,"MOUNTAIN"], + [\@cities,"CITY"]); + + # mark home cities and holy mountains + for my $home (@home, @mountains) { + my $lo = $dbh->quote($home->to_string()); + my $cmd = "UPDATE MAP SET HOME=-1 where GAME=$game AND LOCATION=$lo"; + $dbh->do($cmd); + } + + # set home cities occupied + # insert PRODUCE Commands for Homecitys + for my $home (@home) { + my $l = $dbh->quote($home->to_string()); + my $c = "UPDATE MAP SET OCCUPANT=-1 where GAME=$game AND LOCATION=$l"; + $dbh->do($c); + + $aymgame->insert_command('PRODUCE','ROLE=-1',$home->to_string()); + } + + # make one of the poles startup aymargeddon + my $aym = $pole[rand($#pole + 1)]; + my $ter = $dbh->quote('AYMARGEDDON'); + my $loc = $dbh->quote($aym->to_string()); + my $comd = "UPDATE MAP SET TERRAIN=$ter where GAME = $game AND LOCATION=$loc"; + $dbh->do($comd); + + # check some values + $::conf->{-DEBUG} = 0; + print "Check in the database:\n"; + my $m_count = $db->count('MAP', "GAME=$game AND TERRAIN=MOUNTAIN"); + my $h_count = $db->count('MAP', "GAME=$game AND TERRAIN=CITY AND HOME=-1"); + my $o_count = $db->count('MAP', "GAME=$game AND OCCUPANT=-1"); + print "Mountains: " . $m_count; + print "\nCitys: " . $db->count('MAP', + "GAME=$game AND TERRAIN=CITY"); + print "\nHomes: " . $h_count; + print "\nIslands: " . $db->count('MAP', + "GAME=$game AND TERRAIN=ISLE"); + print "\nPoles: " . $db->count('MAP', + "GAME=$game AND TERRAIN=POLE"); + print "\nAymargeddon: " . $db->count('MAP', + "GAME=$game AND TERRAIN=AYMARGEDDON"); + print "\nWater: " . $db->count('MAP', + "GAME=$game AND TERRAIN=WATER"); + print "\nPlain: " . $db->count('MAP', + "GAME=$game AND TERRAIN=PLAIN"); + print "\nOccupied: " . $o_count; + print "\n"; + + if($o_count != $h_count or $h_count != $m_count or $m_count != $o_count){ + print "homes: ". print_list(@home) . "\nmountains: ". + print_list(@mountains) . "\ncities: " . print_list(@cities) . "\n"; + my $boesewichter = $db->select_array('MAP', + 'LOCATION', + "GAME=$game AND HOME=-1 AND ". + "OCCUPANT=0 AND TERRAIN=CITY"); + print "boesewichter: "; print map $_->[0] . ", ", @$boesewichter;print "\n"; + } + + $dbh->commit(); + $dbh->disconnect(); + + + exit; + } +} + +# distributes homecitys near mountains +sub homeland{ + my @mountains = @_; + + my %mountains = (); + for my $m (@mountains){ + $mountains{$m->to_string()} = 1; + } + + my %homes = (); + for my $m (@mountains){ + my @neighbours = $map->neighbours($m); + + my $home; + while($#neighbours >= 0){ + my $rand = rand($#neighbours + 1); + $home = $neighbours[$rand]; + my @home_neighbours = $map->neighbours($home); + my ($m_count,$h_count) = (0,0); + for my $hn (@home_neighbours){ + $h_count++ if exists $homes{$hn->to_string()}; + $m_count++ if exists $mountains{$hn->to_string()}; + } + if($h_count == 0 and $m_count == 1){ + my $valid = 1; + for my $h (keys %homes){ + my $d = $map->distance(Location->from_string($h),$home); + if($d < $::conf->{-MIN_DISTANCE_HOME}){ + $valid = 0; + } + } + if($valid){ + $homes{$home->to_string()} = 1; + print "#"; + last; + } + } + splice @neighbours,$rand,1; + } + last unless $#neighbours >= 0; + } + my @ret = (); + for my $h (keys %homes){ + push @ret, Location->from_string($h); + } + return @ret; +} + +sub build{ + my ($count,$homes,$exclude) = @_; + + my %ex; + if ($exclude) { + for my $f (@$exclude) { + $ex{$f->to_string()} = 1; + } + } + + # build two cities in neihgbourhood of each home + my %cities = (); + for my $home (@$homes){ + # print "build citys for " . $home->to_string() . ": "; + my @neighbours = $map->neighbours($home); + + # exclude non buildable terrain + my $i = 0; + for my $n (@neighbours){ + my $nstr = $n->to_string(); + if($ex{$nstr}){ + splice @neighbours,$i,1; + } + $i++; + } + + # build citys + my $cities = $::conf->{-NEIGHBOUR_CITIES}; + while($cities){ + my $r = rand($#neighbours+1); + my $rstr = $neighbours[$r]->to_string(); + # print " build city in $rstr\n"; + $cities{$rstr} = 1; + $ex{$rstr} = 1; + splice @neighbours,$r,1; + $cities--; + } + + # exclude all remaining neighbours + for my $n (@neighbours){ + $ex{$n->to_string()} = 1; + } + } + + # distribute the remaining cities to fields, which are not neighbours of a home + while($count){ + my $random = $map->random()->to_string(); + unless(exists $ex{$random}){ + $ex{$random} = 1; + $cities{$random} = 1; + $count--; + } + } + + # TODO: clustering check, no more than n in 2distance + + return map Location->from_string($_), keys %cities; +} + +# DEPRECATED, this function is no longer in use! +# returns all fields, which are plain and have +# - 4 or more neighbours ISLAND or WATER +# - no city as neighbour +# - more than 2 citys as neighbour +# - more than 7 citys with distance 2 +sub bad_home{ + my($water,$islands,$pole,$cities,$mountains) = @_; + + print "look for bad home locations ...\n"; + + # my @m = @$mountains; print "mountains: $#m\n"; + + # reorganize data into hashes + my %ex; + for my $f (@$water,@$islands,@$pole){ + $ex{$f->to_string()} = 1; + } + my %cit; + for my $c (@$cities){ + $cit{$c->to_string()} = 1; + } + my %mount; + for my $m (@$mountains){ + $mount{$m->to_string()} = 1; + } + + # for all fields + my %ret; + for my $x (0..($n*2-1)){ + for my $y (0..($n-1)){ + my $lstring = "$x\_$y"; + next if exists $ex{$lstring}; + next if exists $cit{$lstring}; + print "."; + my $loc = new Location($x,$y); + + # look in the neighboorhood + my @neighbours = $map->neighbours($loc); + my ($city,$water,$mount) = (0,0,0); + for my $n (@neighbours){ + $city++ if exists $cit{$n->to_string()}; + $water++ if exists $ex{$n->to_string()}; + # $mount++ if exists $mount{$n->to_string()}; + } + # $ret{$lstring} = 'no mountain in neighbourhood' if $mount == 0; + $ret{$lstring} = 'no city in neighbourhood' if $city == 0; + $ret{$lstring} = 'more than 3 cities in neighbourhood' if $city > 3; + $ret{$lstring} = 'to much water in neighbourhood' if $water > 3; + next if $ret{$lstring}; + + # look in distance 2 + my @dist_neigh = $map->distant_neighbours($loc,2); + $city = 0; $mount = 0; + for my $n (@dist_neigh){ + $city++ if exists $cit{$n->to_string()}; + $mount++ if exists $mount{$n->to_string()}; + } + # print "m: $mount, c: $city\n"; + $ret{$lstring} = 'more than 7 cities in distance 2' if $city > 7; + $ret{$lstring} = 'less than 2 cities in distance 2' if $city < 2; + $ret{$lstring} = 'no mountain in distance 2' unless $mount; + } + } + print "\n"; + my @ret; + my %stat; + for my $r (keys %ret){ + $stat{$ret{$r}}++; + push @ret, Location->from_string($r); + } + print Dumper \%stat; + return @ret; +} + +sub vulcano{ + my ($count, $w,$p) = @_; + my @w = @$w; + my @p = @$p; + + my @islands; + + while ($count) { + my $water_field = floor(rand($#w) + 1); + my $wf = $w[$water_field]; + + my $to_close = 0; + for my $p (@p) { + $to_close = 1 if($map->distance($p,$wf) < 2); + } + next if $to_close; + + splice @w,$water_field,1; + push @islands, $wf; + $count--; + } + return @islands; +} + +sub flood{ + my ($count, @w) = @_; + # print "flood($count,@w)\n"; + + # flood neighbours + my @new_w; + for my $pole (@w) { + push @new_w, $map->neighbours($pole); + } + $count -= $#new_w + 1; + return @new_w unless $count > 0; + + my %w; + for my $w (@w,@new_w) { + $w{$w->to_string()} = 1; + } + @w = @new_w; + + while ($count) { + # print "$count "; + # get a random water field + my $water_field = floor(rand($#w) + 1); + my $wf = $w[$water_field]; + # get neigbours without water + my @nb = $map->neighbours($wf); + my @nb_new; + for my $nb (@nb) { + unless (exists $w{$nb->to_string()}) { + push @nb_new, $nb; + } + } + @nb = @nb_new; + + if ($#nb > 0) { + # get a random neigbour + my $rn = floor(rand($#nb) + 1); + my $rnr = $nb[$rn]; + push @w,$rnr; + $w{$rnr->to_string()} = 1; + $count --; + } + } + return @w; +} + +# distributes $count locations at the map in minimal distance from +# fields not at exclude +# TODO: should be in Map.pm. +# TODO: should incorporate build() and vulcano() +# TODO: make shure there is really no field left. +sub distribute{ + my ($count,$dist,$min_selfdist,$wanted_selfdist,$exclude,@fields) = @_; + my $fields_distance = 2; + my $selfdist = $wanted_selfdist; + + # print "minself: $min_selfdist, wantedself: $wanted_selfdist\n"; + + # print "fields: @fields\n"; + + #print "Exclude: " . print_list(@$exclude); + + my @return_fields; + + my %ex; + if ($exclude) { + for my $f (@$exclude) { + $ex{$f->to_string()} = 1; + } + } + + my $loop = $earthlings * 10; + my $maxloop = $loop; + my $short_allowed = 0; + while ($loop and $count) { + # while($count){ + my $r = $map->random(); + my $valid = 1; + # if ($valid) { + for my $xy (@fields) { + my $d = $map->distance($r,$xy); + my ($x,$y) = $xy->get(); + + if ($d < $dist) { + $valid = 0; + last; + } + } + my $short_count = 0; + for my $xy (@return_fields) { + my $d = $map->distance($r,$xy); + my ($x,$y) = $xy->get(); + + if ($d < $selfdist) { + if($d >= $selfdist - 1 and $short_count < 1 and $short_allowed){ + $short_count++; + print $short_count; + }else{ + $valid = 0; + last; + } + } + } + for my $x (@$exclude){ + if($r->to_string() eq $x->to_string()){ + $valid = 0; + last; + } + } + # } + + if ($valid) { + # push @fields, $r; + push @return_fields, $r; + $count--; + print "+"; + } else { + $loop--; + # print "-"; + if($loop <= 0 and ($selfdist > $min_selfdist)){ + $loop = $maxloop; + # $selfdist--; + # print $selfdist; + $short_allowed = 1; + print "S"; + } + + next; + } + # print "c: $count, l: $loop\n"; + # } + } + + print "\n"; + unless($loop){ + print "need still room for $count locations\n"; + return 0; + } + return @return_fields; +} + +sub print_list{ + my @f = @_; + my $string; + for my $l (@f){ + $string .= $l->to_string() . ', '; + } + $string .= "\n"; + return $string; +} + diff --git a/src/debug.pl b/src/debug.pl new file mode 100755 index 0000000..636b73f --- /dev/null +++ b/src/debug.pl @@ -0,0 +1,59 @@ +#!/usr/local/bin/perl -w +########################################################################## +# +# Copyright (c) 2003 Aymargeddon Development Team +# +# This file is part of "Last days of Aymargeddon" +# +# Aymargeddon is free software; you can redistribute it and/or modify it +# under the terms of the GNU General Public License as published by the Free +# Software Foundation; either version 2 of the License, or (at your option) +# any later version. +# +# Aymargeddon is distributed in the hope that it will be useful, but WITHOUT +# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for +# more details. +# You should have received a copy of the GNU General Public License along +# with this program; if not, write to the Free Software Foundation, Inc., 675 +# Mass Ave, Cambridge, MA 02139, USA. +# +########################################################################### +# + +# +# +# creates the world to destroy +# +# usage: ./create.pl [number of eartlings] +# +# + +# TODO: use FROGS/DataBase.pm instead of DBI.pm + +use strict; + +use DBI; +use Data::Dumper; +use POSIX qw(floor ceil); +use Term::ReadLine; + +use FROGS::HexTorus; + +my $n = 16; +my $map = new HexTorus($n); +my $out = "\n"; +for my $y (0..($n - 1)){ + for my $x ( 0 .. ($n*2-1)){ + + my $d = + $map->distance(Location->new(5,0), + Location->new($x,$y)); + $d = "0$d" if $d < 10; + $out .= "$d "; + } + $out .= "\n" . (' ' x ($y +1)); +} +$out .= "\n"; + +print $out; diff --git a/src/test.pl b/src/test.pl new file mode 100755 index 0000000..e8c605f --- /dev/null +++ b/src/test.pl @@ -0,0 +1,62 @@ +use FROGS::DataBase; +# use Aymargeddon; +# use DBI; +use strict; +use Data::Dumper; +use Date::Calc qw(Time_to_Date); + +use FROGS::Command; + +use FROGS::Config qw($conf); + +$| = 1; + +my $d = DataBase->new(); +# $d->nowrite(); + +my $dbhash = +# {'LOCATION' => '2_0', +# 'COMMAND' => 'BUILD_TEMPLE', +# 'ARGUMENTS' => 'MOBILE=1', +# 'PLAYER' => 1, +# 'GAME' => 1, +# 'ID' => 1007 +# }; + {'LOCATION' => '11_3', + 'COMMAND' => 'PRODUCE', + 'ARGUMENTS' => 'ROLE=-1', + 'PLAYER' => -1, + 'GAME' => 4, + 'ID' => 1007, + }; + + +# print Dumper $dbhash; + +require "AymCommand.pm"; + +my $c = $dbhash->{'COMMAND'}->new($dbhash,$d); + +# print "is valid\n" if $c->is_valid(); +$c->{-phase} = 1; +my $fp = $c->first_phase(); + +if ($fp){ + print "first phase correct. duration: $c->{-duration}\n"; + $c->{-phase} = 2; + print "second phase correct\n" if $c->second_phase(); +}else{ + print "no second phase\n"; +} + +$d->commit(); + +# $d->{-dbh}->disconnect(); + +# print Dumper $c; + + + + + + diff --git a/src/test2.pl b/src/test2.pl new file mode 100755 index 0000000..9197c44 --- /dev/null +++ b/src/test2.pl @@ -0,0 +1,37 @@ +use strict; +use FROGS::DataBase; +use Data::Dumper; +use Aymargeddon; + +$| = 1; + +use FROGS::Config qw($conf); + +$::conf->{-DEBUG} = 2; + +# $::conf->{-DEBUG} = 2; + +my $db = new DataBase(); + +$db->update_hash('MOBILE', + "LOCATION=0_1", + {'COUNT' => 'COUNT + 1'},'noquote'); + +$db->commit(); + +# print $db->relative("2004-05-13 03:40:37") ."\n"; + +#my $aym = new Aymargeddon(1,3,$db,'DE'); + +#print $aym->show_statistic(); + +# print $aym->read_single_relation(1,2). "\n"; + +#print "place is: $place.\n"; + +# print Dumper $::conf; +# exit; + +#my $d = DataBase->new(); +#$d->nowrite(); + diff --git a/var/LOCALIZE.sql b/var/LOCALIZE.sql new file mode 100644 index 0000000..5ea1bce --- /dev/null +++ b/var/LOCALIZE.sql @@ -0,0 +1,512 @@ +-- MySQL dump 9.09 +-- +-- Host: localhost Database: RAGNAROEK +-- ------------------------------------------------------ +-- Server version 4.0.16-log + +-- +-- Table structure for table `LOCALIZE` +-- + +DROP TABLE IF EXISTS LOCALIZE; +CREATE TABLE LOCALIZE ( + TAG varchar(25) NOT NULL default '', + LANGUAGE enum('DE','EN') NOT NULL default 'DE', + TEXT text NOT NULL, + PRIMARY KEY (TAG,LANGUAGE) +) TYPE=InnoDB; + +-- +-- Dumping data for table `LOCALIZE` +-- + +INSERT INTO LOCALIZE (TAG, LANGUAGE, TEXT) VALUES ('ADJ_ADORING','DE',', Anbeter von'); +INSERT INTO LOCALIZE (TAG, LANGUAGE, TEXT) VALUES ('ADJ_ADORING','EN',' adoring'); +INSERT INTO LOCALIZE (TAG, LANGUAGE, TEXT) VALUES ('ADJ_HERE','DE','Hier'); +INSERT INTO LOCALIZE (TAG, LANGUAGE, TEXT) VALUES ('ADJ_HERE','EN','Here'); +INSERT INTO LOCALIZE (TAG, LANGUAGE, TEXT) VALUES ('ART_DAT_PL','DE','den'); +INSERT INTO LOCALIZE (TAG, LANGUAGE, TEXT) VALUES ('ART_DAT_PL','EN','the'); +INSERT INTO LOCALIZE (TAG, LANGUAGE, TEXT) VALUES ('BATTLE_REPORT','DE','Kampfbericht für'); +INSERT INTO LOCALIZE (TAG, LANGUAGE, TEXT) VALUES ('BATTLE_REPORT','EN','Battle report for'); +INSERT INTO LOCALIZE (TAG, LANGUAGE, TEXT) VALUES ('BUILD_ARK','DE','Arche bauen'); +INSERT INTO LOCALIZE (TAG, LANGUAGE, TEXT) VALUES ('BUILD_ARK','EN','build ark'); +INSERT INTO LOCALIZE (TAG, LANGUAGE, TEXT) VALUES ('CASUALTIES_OF_PESTILENTIA','DE','Opfer der Pestilentia'); +INSERT INTO LOCALIZE (TAG, LANGUAGE, TEXT) VALUES ('CASUALTIES_OF_PESTILENTIA','EN','Casualties of pestilentia'); +INSERT INTO LOCALIZE (TAG, LANGUAGE, TEXT) VALUES ('CHANGE_PASSWORD','DE','Wenn Du Dein Passwort ändern willst, gib das neue Passwort bitte hier zweimal ein.'); +INSERT INTO LOCALIZE (TAG, LANGUAGE, TEXT) VALUES ('CHANGE_PASSWORD','EN','If you want to change your password, please insert it here two times.'); +INSERT INTO LOCALIZE (TAG, LANGUAGE, TEXT) VALUES ('CH_LUCK','DE','Glücksfaktor ändern'); +INSERT INTO LOCALIZE (TAG, LANGUAGE, TEXT) VALUES ('CH_LUCK','EN','change fortune'); +INSERT INTO LOCALIZE (TAG, LANGUAGE, TEXT) VALUES ('CH_STATUS','DE','Status ändern'); +INSERT INTO LOCALIZE (TAG, LANGUAGE, TEXT) VALUES ('CH_STATUS','EN','change status'); +INSERT INTO LOCALIZE (TAG, LANGUAGE, TEXT) VALUES ('CITY_HEADING','DE','Rangfolge der Erdlinge:'); +INSERT INTO LOCALIZE (TAG, LANGUAGE, TEXT) VALUES ('CITY_HEADING','EN','Ranking of earthlings:'); +INSERT INTO LOCALIZE (TAG, LANGUAGE, TEXT) VALUES ('CMD_BLESS_HERO','DE','Held weihen'); +INSERT INTO LOCALIZE (TAG, LANGUAGE, TEXT) VALUES ('CMD_BLESS_HERO','EN','bless hero'); +INSERT INTO LOCALIZE (TAG, LANGUAGE, TEXT) VALUES ('CMD_BLESS_HERO_MSG','DE','Anzahl neue Helden'); +INSERT INTO LOCALIZE (TAG, LANGUAGE, TEXT) VALUES ('CMD_BLESS_HERO_MSG','EN','Number of new heros'); +INSERT INTO LOCALIZE (TAG, LANGUAGE, TEXT) VALUES ('CMD_BLESS_PRIEST','DE','Priester weihen'); +INSERT INTO LOCALIZE (TAG, LANGUAGE, TEXT) VALUES ('CMD_BLESS_PRIEST','EN','bless priest'); +INSERT INTO LOCALIZE (TAG, LANGUAGE, TEXT) VALUES ('CMD_BLESS_PRIEST_MSG','DE','Weihe einen neuen Priester'); +INSERT INTO LOCALIZE (TAG, LANGUAGE, TEXT) VALUES ('CMD_BLESS_PRIEST_MSG','EN','Bless a new priest'); +INSERT INTO LOCALIZE (TAG, LANGUAGE, TEXT) VALUES ('CMD_BUILD_ARK','DE','Arche bauen'); +INSERT INTO LOCALIZE (TAG, LANGUAGE, TEXT) VALUES ('CMD_BUILD_ARK','EN','build ark'); +INSERT INTO LOCALIZE (TAG, LANGUAGE, TEXT) VALUES ('CMD_BUILD_ARK_MSG','DE','Baue Arche in'); +INSERT INTO LOCALIZE (TAG, LANGUAGE, TEXT) VALUES ('CMD_BUILD_ARK_MSG','EN','Build ark in'); +INSERT INTO LOCALIZE (TAG, LANGUAGE, TEXT) VALUES ('CMD_BUILD_TEMPLE','DE','Tempel bauen'); +INSERT INTO LOCALIZE (TAG, LANGUAGE, TEXT) VALUES ('CMD_BUILD_TEMPLE','EN','build temple'); +INSERT INTO LOCALIZE (TAG, LANGUAGE, TEXT) VALUES ('CMD_BUILD_TEMPLE_MSG','DE','Baue einen Tempel in'); +INSERT INTO LOCALIZE (TAG, LANGUAGE, TEXT) VALUES ('CMD_BUILD_TEMPLE_MSG','EN','build temple in'); +INSERT INTO LOCALIZE (TAG, LANGUAGE, TEXT) VALUES ('CMD_CH_ACTION_MSG','DE','Wähle neue Avatar-Aktion'); +INSERT INTO LOCALIZE (TAG, LANGUAGE, TEXT) VALUES ('CMD_CH_ACTION_MSG','EN','Choose new avatar action'); +INSERT INTO LOCALIZE (TAG, LANGUAGE, TEXT) VALUES ('CMD_CH_ADORING_MSG','DE','Deine Helden beten jetzt zu'); +INSERT INTO LOCALIZE (TAG, LANGUAGE, TEXT) VALUES ('CMD_CH_ADORING_MSG','EN','Your heros now adoring'); +INSERT INTO LOCALIZE (TAG, LANGUAGE, TEXT) VALUES ('CMD_CH_LUCK','DE','Glücksfaktor ändern'); +INSERT INTO LOCALIZE (TAG, LANGUAGE, TEXT) VALUES ('CMD_CH_LUCK','EN','change luck'); +INSERT INTO LOCALIZE (TAG, LANGUAGE, TEXT) VALUES ('CMD_CH_LUCK_MSG','DE','Verändere den Glücksfaktor um'); +INSERT INTO LOCALIZE (TAG, LANGUAGE, TEXT) VALUES ('CMD_CH_LUCK_MSG','EN','Change luck-factor about'); +INSERT INTO LOCALIZE (TAG, LANGUAGE, TEXT) VALUES ('CMD_CH_STATUS_MSG','DE','Setze deine neue Beziehung zu'); +INSERT INTO LOCALIZE (TAG, LANGUAGE, TEXT) VALUES ('CMD_CH_STATUS_MSG','EN','Set your new relation to'); +INSERT INTO LOCALIZE (TAG, LANGUAGE, TEXT) VALUES ('CMD_COUNT','DE','Anzahl'); +INSERT INTO LOCALIZE (TAG, LANGUAGE, TEXT) VALUES ('CMD_COUNT','EN','Number'); +INSERT INTO LOCALIZE (TAG, LANGUAGE, TEXT) VALUES ('CMD_DESTROY','DE','Tempel zerstören'); +INSERT INTO LOCALIZE (TAG, LANGUAGE, TEXT) VALUES ('CMD_DESTROY','EN','destroy temple'); +INSERT INTO LOCALIZE (TAG, LANGUAGE, TEXT) VALUES ('CMD_DESTROY_MSG','DE','Zerstöre den Tempel in'); +INSERT INTO LOCALIZE (TAG, LANGUAGE, TEXT) VALUES ('CMD_DESTROY_MSG','EN','Destroy the temple at'); +INSERT INTO LOCALIZE (TAG, LANGUAGE, TEXT) VALUES ('CMD_DIE_ORDER','DE','Sterbereihenfolge ändern'); +INSERT INTO LOCALIZE (TAG, LANGUAGE, TEXT) VALUES ('CMD_DIE_ORDER','EN','change die-order'); +INSERT INTO LOCALIZE (TAG, LANGUAGE, TEXT) VALUES ('CMD_DIE_ORDER_MSG','DE','Wähle die neue Sterbe-Reihenfolge deiner Einheiten'); +INSERT INTO LOCALIZE (TAG, LANGUAGE, TEXT) VALUES ('CMD_DIE_ORDER_MSG','EN','Choose the new die-order of your units'); +INSERT INTO LOCALIZE (TAG, LANGUAGE, TEXT) VALUES ('CMD_ERROR_MSG','DE','unvollständiger Befehl'); +INSERT INTO LOCALIZE (TAG, LANGUAGE, TEXT) VALUES ('CMD_ERROR_MSG','EN','incomplete command'); +INSERT INTO LOCALIZE (TAG, LANGUAGE, TEXT) VALUES ('CMD_FLOOD','DE','überfluten'); +INSERT INTO LOCALIZE (TAG, LANGUAGE, TEXT) VALUES ('CMD_FLOOD','EN','flood'); +INSERT INTO LOCALIZE (TAG, LANGUAGE, TEXT) VALUES ('CMD_FLOOD_MSG','DE','Überflute'); +INSERT INTO LOCALIZE (TAG, LANGUAGE, TEXT) VALUES ('CMD_FLOOD_MSG','EN','flood'); +INSERT INTO LOCALIZE (TAG, LANGUAGE, TEXT) VALUES ('CMD_INCARNATE','DE','Avatare erschaffen'); +INSERT INTO LOCALIZE (TAG, LANGUAGE, TEXT) VALUES ('CMD_INCARNATE','EN','create avatars'); +INSERT INTO LOCALIZE (TAG, LANGUAGE, TEXT) VALUES ('CMD_INCARNATE_MSG','DE','Anzahl der neuen Avatare'); +INSERT INTO LOCALIZE (TAG, LANGUAGE, TEXT) VALUES ('CMD_INCARNATE_MSG','EN','Number of new avatars'); +INSERT INTO LOCALIZE (TAG, LANGUAGE, TEXT) VALUES ('CMD_MOVE','DE','bewegen'); +INSERT INTO LOCALIZE (TAG, LANGUAGE, TEXT) VALUES ('CMD_MOVE','EN','move'); +INSERT INTO LOCALIZE (TAG, LANGUAGE, TEXT) VALUES ('CMD_MOVE_MSG','DE','bewege %1 in Richtung
Mögliche Richtungen:
\r\n\r\n\r\n\r\n\r\n
N
NWNE
SWSE
S
\r\n'); +INSERT INTO LOCALIZE (TAG, LANGUAGE, TEXT) VALUES ('CMD_MOVE_MSG','EN','move %1 in direction
Possible directions:
\r\n\r\n\r\n\r\n\r\n
N
NWNE
SWSE
S
\r\n'); +INSERT INTO LOCALIZE (TAG, LANGUAGE, TEXT) VALUES ('CMD_MOVE_MTN','DE','Berg versetzten'); +INSERT INTO LOCALIZE (TAG, LANGUAGE, TEXT) VALUES ('CMD_MOVE_MTN','EN','move mountain'); +INSERT INTO LOCALIZE (TAG, LANGUAGE, TEXT) VALUES ('CMD_MOVE_MTN_MSG','DE','soll versetzt werden nach'); +INSERT INTO LOCALIZE (TAG, LANGUAGE, TEXT) VALUES ('CMD_MOVE_MTN_MSG','EN','should be moved to'); +INSERT INTO LOCALIZE (TAG, LANGUAGE, TEXT) VALUES ('CMD_PLAGUE','DE','verseuchen'); +INSERT INTO LOCALIZE (TAG, LANGUAGE, TEXT) VALUES ('CMD_PLAGUE','EN','init plague'); +INSERT INTO LOCALIZE (TAG, LANGUAGE, TEXT) VALUES ('CMD_PLAGUE_MSG','DE','Wähle Seuche für'); +INSERT INTO LOCALIZE (TAG, LANGUAGE, TEXT) VALUES ('CMD_PLAGUE_MSG','EN','Choose plague for'); +INSERT INTO LOCALIZE (TAG, LANGUAGE, TEXT) VALUES ('CONQUERED_ARKS','DE','Eroberte Archen'); +INSERT INTO LOCALIZE (TAG, LANGUAGE, TEXT) VALUES ('CONQUERED_ARKS','EN','Conquered arks'); +INSERT INTO LOCALIZE (TAG, LANGUAGE, TEXT) VALUES ('DEAD_AVATARS','DE','Tote Avatare'); +INSERT INTO LOCALIZE (TAG, LANGUAGE, TEXT) VALUES ('DEAD_AVATARS','EN','dead avatars'); +INSERT INTO LOCALIZE (TAG, LANGUAGE, TEXT) VALUES ('DEAD_HEROS','DE','Gefallene Helden'); +INSERT INTO LOCALIZE (TAG, LANGUAGE, TEXT) VALUES ('DEAD_HEROS','EN','Dead heros'); +INSERT INTO LOCALIZE (TAG, LANGUAGE, TEXT) VALUES ('DEAD_PRIESTS','DE','Gefallene Priester'); +INSERT INTO LOCALIZE (TAG, LANGUAGE, TEXT) VALUES ('DEAD_PRIESTS','EN','Dead priests'); +INSERT INTO LOCALIZE (TAG, LANGUAGE, TEXT) VALUES ('DEAD_WARRIORS','DE','Gefallene Krieger'); +INSERT INTO LOCALIZE (TAG, LANGUAGE, TEXT) VALUES ('DEAD_WARRIORS','EN','Dead warriors'); +INSERT INTO LOCALIZE (TAG, LANGUAGE, TEXT) VALUES ('END_OF_GAME','DE','Das Spiel ist aus! Die Gewinner entnehmt ihr bitte der Statistik.'); +INSERT INTO LOCALIZE (TAG, LANGUAGE, TEXT) VALUES ('END_OF_GAME','EN','The game is over! For winners look in the statistic section.'); +INSERT INTO LOCALIZE (TAG, LANGUAGE, TEXT) VALUES ('ERROR_NO_LOGIN','DE','Um diese Aymargeddon-Seite anzusehen, müssen Sie sich erst einloggen, da der Inhalt für jeden Spieler verschieden ist.'); +INSERT INTO LOCALIZE (TAG, LANGUAGE, TEXT) VALUES ('ERROR_NO_LOGIN','EN','To view this aymargeddon page you first need to login, because it\'s content is different for each player.'); +INSERT INTO LOCALIZE (TAG, LANGUAGE, TEXT) VALUES ('EVENT_ARK_APPROACHING','DE','Von %1 kommt eine Arche.'); +INSERT INTO LOCALIZE (TAG, LANGUAGE, TEXT) VALUES ('EVENT_ARK_APPROACHING','EN','An ark comes from %1.'); +INSERT INTO LOCALIZE (TAG, LANGUAGE, TEXT) VALUES ('EVENT_BUILD_ARK','DE','Spieler %1 baut eine Arche.'); +INSERT INTO LOCALIZE (TAG, LANGUAGE, TEXT) VALUES ('EVENT_BUILD_ARK','EN','Player %1 builds an ark.'); +INSERT INTO LOCALIZE (TAG, LANGUAGE, TEXT) VALUES ('EVENT_BUILD_TEMPLE','DE','Ein Tempel für den Gott %2 der Größe %3 wird fertig.'); +INSERT INTO LOCALIZE (TAG, LANGUAGE, TEXT) VALUES ('EVENT_BUILD_TEMPLE','EN','A temple for god %2 with size %3 will be finished.'); +INSERT INTO LOCALIZE (TAG, LANGUAGE, TEXT) VALUES ('EVENT_FIGHT_GOD','DE','Hier findet ein Avatarkampf zwischen %2 und %3 statt.'); +INSERT INTO LOCALIZE (TAG, LANGUAGE, TEXT) VALUES ('EVENT_FIGHT_GOD','EN','Here is an avatar fight between %2 and %3.'); +INSERT INTO LOCALIZE (TAG, LANGUAGE, TEXT) VALUES ('EVENT_FLOOD','DE','Der Gott %1 hat die Sintflut herbeigerufen! '); +INSERT INTO LOCALIZE (TAG, LANGUAGE, TEXT) VALUES ('EVENT_FLOOD','EN','The god %1 will flood this aerea!'); +INSERT INTO LOCALIZE (TAG, LANGUAGE, TEXT) VALUES ('EVENT_MOBILE_APPROACHING','DE','Aus %2 kommen %3 %4 von Spieler %1 hier an.'); +INSERT INTO LOCALIZE (TAG, LANGUAGE, TEXT) VALUES ('EVENT_MOBILE_APPROACHING','EN','From field %2 will come %3 %4 from player %1.'); +INSERT INTO LOCALIZE (TAG, LANGUAGE, TEXT) VALUES ('EVENT_PRODUCE_PRIEST','DE','Ein Priester beendet seine Ausbildung.'); +INSERT INTO LOCALIZE (TAG, LANGUAGE, TEXT) VALUES ('EVENT_PRODUCE_PRIEST','EN','A priest finish his training.'); +INSERT INTO LOCALIZE (TAG, LANGUAGE, TEXT) VALUES ('EVENT_PRODUCE_WARRIOR','DE','Ein Krieger beendet seine Ausbildung.'); +INSERT INTO LOCALIZE (TAG, LANGUAGE, TEXT) VALUES ('EVENT_PRODUCE_WARRIOR','EN','A warrior finish his training.'); +INSERT INTO LOCALIZE (TAG, LANGUAGE, TEXT) VALUES ('FIELD_AYMARGEDDON','DE','Aymargeddon'); +INSERT INTO LOCALIZE (TAG, LANGUAGE, TEXT) VALUES ('FIELD_AYMARGEDDON','EN','Aymargeddon'); +INSERT INTO LOCALIZE (TAG, LANGUAGE, TEXT) VALUES ('FIELD_CITY','DE','Die Stadt'); +INSERT INTO LOCALIZE (TAG, LANGUAGE, TEXT) VALUES ('FIELD_CITY','EN','The city'); +INSERT INTO LOCALIZE (TAG, LANGUAGE, TEXT) VALUES ('FIELD_ISLE','DE','Die Insel'); +INSERT INTO LOCALIZE (TAG, LANGUAGE, TEXT) VALUES ('FIELD_ISLE','EN','The island'); +INSERT INTO LOCALIZE (TAG, LANGUAGE, TEXT) VALUES ('FIELD_MOUNTAIN','DE','Der Berg'); +INSERT INTO LOCALIZE (TAG, LANGUAGE, TEXT) VALUES ('FIELD_MOUNTAIN','EN','The mountain'); +INSERT INTO LOCALIZE (TAG, LANGUAGE, TEXT) VALUES ('FIELD_PLAIN','DE','Die Ebene'); +INSERT INTO LOCALIZE (TAG, LANGUAGE, TEXT) VALUES ('FIELD_PLAIN','EN','The plain'); +INSERT INTO LOCALIZE (TAG, LANGUAGE, TEXT) VALUES ('FIELD_POLE','DE','Der Manapol'); +INSERT INTO LOCALIZE (TAG, LANGUAGE, TEXT) VALUES ('FIELD_POLE','EN','The mana pole'); +INSERT INTO LOCALIZE (TAG, LANGUAGE, TEXT) VALUES ('FIELD_WATER','DE','Das Wasserfeld'); +INSERT INTO LOCALIZE (TAG, LANGUAGE, TEXT) VALUES ('FIELD_WATER','EN','The water field'); +INSERT INTO LOCALIZE (TAG, LANGUAGE, TEXT) VALUES ('FIGHTING_STRENGTH','DE','Kampfstärke'); +INSERT INTO LOCALIZE (TAG, LANGUAGE, TEXT) VALUES ('FIGHTING_STRENGTH','EN','Fighting strength'); +INSERT INTO LOCALIZE (TAG, LANGUAGE, TEXT) VALUES ('FIGHT_AVATAR','DE','Avatarkampf'); +INSERT INTO LOCALIZE (TAG, LANGUAGE, TEXT) VALUES ('FIGHT_AVATAR','EN','avatar fight'); +INSERT INTO LOCALIZE (TAG, LANGUAGE, TEXT) VALUES ('FIGHT_EARTHLING','DE','%1 versucht dieses Feld zu erobern.'); +INSERT INTO LOCALIZE (TAG, LANGUAGE, TEXT) VALUES ('FIGHT_EARTHLING','EN','%1 trys to conquer this field.'); +INSERT INTO LOCALIZE (TAG, LANGUAGE, TEXT) VALUES ('FLANKING','DE','Flankierungsbonus'); +INSERT INTO LOCALIZE (TAG, LANGUAGE, TEXT) VALUES ('FLANKING','EN','Flanking'); +INSERT INTO LOCALIZE (TAG, LANGUAGE, TEXT) VALUES ('FORM_BACK_BUTTON','DE','zurück'); +INSERT INTO LOCALIZE (TAG, LANGUAGE, TEXT) VALUES ('FORM_BACK_BUTTON','EN','back'); +INSERT INTO LOCALIZE (TAG, LANGUAGE, TEXT) VALUES ('FORM_OK_BUTTON','DE','senden'); +INSERT INTO LOCALIZE (TAG, LANGUAGE, TEXT) VALUES ('FORM_OK_BUTTON','EN','submit'); +INSERT INTO LOCALIZE (TAG, LANGUAGE, TEXT) VALUES ('GEN_FEMALE','DE','Frau'); +INSERT INTO LOCALIZE (TAG, LANGUAGE, TEXT) VALUES ('GEN_FEMALE','EN','Woman'); +INSERT INTO LOCALIZE (TAG, LANGUAGE, TEXT) VALUES ('GEN_MALE','DE','Mann'); +INSERT INTO LOCALIZE (TAG, LANGUAGE, TEXT) VALUES ('GEN_MALE','EN','Man'); +INSERT INTO LOCALIZE (TAG, LANGUAGE, TEXT) VALUES ('GEN_PLURAL','DE','Gruppe'); +INSERT INTO LOCALIZE (TAG, LANGUAGE, TEXT) VALUES ('GEN_PLURAL','EN','Group'); +INSERT INTO LOCALIZE (TAG, LANGUAGE, TEXT) VALUES ('GLOBAL','DE','allen Feldern'); +INSERT INTO LOCALIZE (TAG, LANGUAGE, TEXT) VALUES ('GLOBAL','EN','all places'); +INSERT INTO LOCALIZE (TAG, LANGUAGE, TEXT) VALUES ('GOD','DE','Gott'); +INSERT INTO LOCALIZE (TAG, LANGUAGE, TEXT) VALUES ('GOD','EN','god'); +INSERT INTO LOCALIZE (TAG, LANGUAGE, TEXT) VALUES ('GODS_HELP','DE','Göttlicher Unterstützung'); +INSERT INTO LOCALIZE (TAG, LANGUAGE, TEXT) VALUES ('GODS_HELP','EN','Help of gods'); +INSERT INTO LOCALIZE (TAG, LANGUAGE, TEXT) VALUES ('HERO','DE','Held'); +INSERT INTO LOCALIZE (TAG, LANGUAGE, TEXT) VALUES ('HERO','EN','Hero'); +INSERT INTO LOCALIZE (TAG, LANGUAGE, TEXT) VALUES ('HKP','DE','Helden - Krieger - Priester'); +INSERT INTO LOCALIZE (TAG, LANGUAGE, TEXT) VALUES ('HKP','EN','Heros - Warriors - Priests'); +INSERT INTO LOCALIZE (TAG, LANGUAGE, TEXT) VALUES ('HOMECITY','DE','Es ist die Heimatstadt'); +INSERT INTO LOCALIZE (TAG, LANGUAGE, TEXT) VALUES ('HOMECITY','EN','It\'s the home town'); +INSERT INTO LOCALIZE (TAG, LANGUAGE, TEXT) VALUES ('HOMEHOLY','DE','Es ist ein heiliger Berg'); +INSERT INTO LOCALIZE (TAG, LANGUAGE, TEXT) VALUES ('HOMEHOLY','EN','It\'s a holy mountain'); +INSERT INTO LOCALIZE (TAG, LANGUAGE, TEXT) VALUES ('HPK','DE','Helden - Priester - Krieger'); +INSERT INTO LOCALIZE (TAG, LANGUAGE, TEXT) VALUES ('HPK','EN','Heros - Priests - Warriors'); +INSERT INTO LOCALIZE (TAG, LANGUAGE, TEXT) VALUES ('INCARNATE','DE','Avatar erschaffen'); +INSERT INTO LOCALIZE (TAG, LANGUAGE, TEXT) VALUES ('INCARNATE','EN','create avatar'); +INSERT INTO LOCALIZE (TAG, LANGUAGE, TEXT) VALUES ('ISLE','DE','Insel'); +INSERT INTO LOCALIZE (TAG, LANGUAGE, TEXT) VALUES ('ISLE','EN','Isle'); +INSERT INTO LOCALIZE (TAG, LANGUAGE, TEXT) VALUES ('KHP','DE','Krierger - Helden - Priester'); +INSERT INTO LOCALIZE (TAG, LANGUAGE, TEXT) VALUES ('KHP','EN','Warrior - Heros - Priests'); +INSERT INTO LOCALIZE (TAG, LANGUAGE, TEXT) VALUES ('KPH','DE','Krieger - Priester - Helden'); +INSERT INTO LOCALIZE (TAG, LANGUAGE, TEXT) VALUES ('KPH','EN','Warrior - Priests - Heros'); +INSERT INTO LOCALIZE (TAG, LANGUAGE, TEXT) VALUES ('LANG_ENGLISH','DE','Englisch'); +INSERT INTO LOCALIZE (TAG, LANGUAGE, TEXT) VALUES ('LANG_ENGLISH','EN','English'); +INSERT INTO LOCALIZE (TAG, LANGUAGE, TEXT) VALUES ('LANG_GERMAN','DE','Deutsch'); +INSERT INTO LOCALIZE (TAG, LANGUAGE, TEXT) VALUES ('LANG_GERMAN','EN','German'); +INSERT INTO LOCALIZE (TAG, LANGUAGE, TEXT) VALUES ('LANG_WELCOME','DE','Wählen Sie ihre bevorzugte Sprache'); +INSERT INTO LOCALIZE (TAG, LANGUAGE, TEXT) VALUES ('LANG_WELCOME','EN','Choose your favorite language'); +INSERT INTO LOCALIZE (TAG, LANGUAGE, TEXT) VALUES ('LAST_BATTLE_HEADING','DE','Derzeitige Kampfstärken der Götter in der letzten Schlacht:'); +INSERT INTO LOCALIZE (TAG, LANGUAGE, TEXT) VALUES ('LAST_BATTLE_HEADING','EN','Actual fighting power of gods for the last battle:'); +INSERT INTO LOCALIZE (TAG, LANGUAGE, TEXT) VALUES ('LAST_BATTLE_LINE','DE','%1 kämpft mit Stärke %2.'); +INSERT INTO LOCALIZE (TAG, LANGUAGE, TEXT) VALUES ('LAST_BATTLE_LINE','EN','%1 fights with strength %2.'); +INSERT INTO LOCALIZE (TAG, LANGUAGE, TEXT) VALUES ('LOGIN_EMAIL','DE','e-Mail Adresse'); +INSERT INTO LOCALIZE (TAG, LANGUAGE, TEXT) VALUES ('LOGIN_EMAIL','EN','email'); +INSERT INTO LOCALIZE (TAG, LANGUAGE, TEXT) VALUES ('LOGIN_FAILED','DE','Login fehlgeschlagen. Falsches Passwort oder unbekannter Benutzername.'); +INSERT INTO LOCALIZE (TAG, LANGUAGE, TEXT) VALUES ('LOGIN_FAILED','EN','Login failed. Wrong password or unknown username.'); +INSERT INTO LOCALIZE (TAG, LANGUAGE, TEXT) VALUES ('LOGIN_PASSWORD','DE','Passwort'); +INSERT INTO LOCALIZE (TAG, LANGUAGE, TEXT) VALUES ('LOGIN_PASSWORD','EN','password'); +INSERT INTO LOCALIZE (TAG, LANGUAGE, TEXT) VALUES ('LOGIN_REALNAME','DE','richtiger Name'); +INSERT INTO LOCALIZE (TAG, LANGUAGE, TEXT) VALUES ('LOGIN_REALNAME','EN','real name'); +INSERT INTO LOCALIZE (TAG, LANGUAGE, TEXT) VALUES ('LOGIN_REG_ERROR','DE','Die Anmeldung ist fehlgeschlagen. Vielleicht ist der Benutzername schon vergeben. Nicht vergessen: Jeder Benutzer darf nur einen Account bei uns haben!!'); +INSERT INTO LOCALIZE (TAG, LANGUAGE, TEXT) VALUES ('LOGIN_REG_ERROR','EN','We couldn\'t register you. Maybe the login name is already in use. Always remember: any user is only allowed one account on this server!!'); +INSERT INTO LOCALIZE (TAG, LANGUAGE, TEXT) VALUES ('LOGIN_REG_FORM_HEAD','DE','Suchen sie sich einen Benutzernamen aus:'); +INSERT INTO LOCALIZE (TAG, LANGUAGE, TEXT) VALUES ('LOGIN_REG_FORM_HEAD','EN','Choose your login name:'); +INSERT INTO LOCALIZE (TAG, LANGUAGE, TEXT) VALUES ('LOGIN_REG_LINK','DE','anmelden'); +INSERT INTO LOCALIZE (TAG, LANGUAGE, TEXT) VALUES ('LOGIN_REG_LINK','EN','register'); +INSERT INTO LOCALIZE (TAG, LANGUAGE, TEXT) VALUES ('LOGIN_REG_MSG','DE','Wenn Du noch keinen Aymargeddon-Account hast, solltest Du dich'); +INSERT INTO LOCALIZE (TAG, LANGUAGE, TEXT) VALUES ('LOGIN_REG_MSG','EN','If you don\'t have an aymargeddon account, you should'); +INSERT INTO LOCALIZE (TAG, LANGUAGE, TEXT) VALUES ('LOGIN_REG_OK_HEAD','DE','Die Anmeldung hat geklappt.'); +INSERT INTO LOCALIZE (TAG, LANGUAGE, TEXT) VALUES ('LOGIN_REG_OK_HEAD','EN','You are now registered.'); +INSERT INTO LOCALIZE (TAG, LANGUAGE, TEXT) VALUES ('LOGIN_REG_OK_TAIL','DE','Das Passwort für den Account wird an die angegebene Adresse geschickt.'); +INSERT INTO LOCALIZE (TAG, LANGUAGE, TEXT) VALUES ('LOGIN_REG_OK_TAIL','EN','The password for your account will be sent to your email adress.'); +INSERT INTO LOCALIZE (TAG, LANGUAGE, TEXT) VALUES ('LOGIN_REG_RETURN','DE','zurück zum Eingang'); +INSERT INTO LOCALIZE (TAG, LANGUAGE, TEXT) VALUES ('LOGIN_REG_RETURN','EN','back to the login'); +INSERT INTO LOCALIZE (TAG, LANGUAGE, TEXT) VALUES ('LOGIN_USERNAME','DE','Benutzername'); +INSERT INTO LOCALIZE (TAG, LANGUAGE, TEXT) VALUES ('LOGIN_USERNAME','EN','Username'); +INSERT INTO LOCALIZE (TAG, LANGUAGE, TEXT) VALUES ('LOGIN_WELCOME','DE','Der Eingang zu Aymargeddon!'); +INSERT INTO LOCALIZE (TAG, LANGUAGE, TEXT) VALUES ('LOGIN_WELCOME','EN','The Entrance to Aymargeddon!'); +INSERT INTO LOCALIZE (TAG, LANGUAGE, TEXT) VALUES ('LUCK','DE','Gewürfelt'); +INSERT INTO LOCALIZE (TAG, LANGUAGE, TEXT) VALUES ('LUCK','EN','Dice roll'); +INSERT INTO LOCALIZE (TAG, LANGUAGE, TEXT) VALUES ('MOBILE_ARK','DE','Arche'); +INSERT INTO LOCALIZE (TAG, LANGUAGE, TEXT) VALUES ('MOBILE_ARK','EN','ark'); +INSERT INTO LOCALIZE (TAG, LANGUAGE, TEXT) VALUES ('MOBILE_ARK_PL','DE','Archen'); +INSERT INTO LOCALIZE (TAG, LANGUAGE, TEXT) VALUES ('MOBILE_ARK_PL','EN','arks'); +INSERT INTO LOCALIZE (TAG, LANGUAGE, TEXT) VALUES ('MOBILE_AVATAR','DE','Avatar'); +INSERT INTO LOCALIZE (TAG, LANGUAGE, TEXT) VALUES ('MOBILE_AVATAR','EN','avatar'); +INSERT INTO LOCALIZE (TAG, LANGUAGE, TEXT) VALUES ('MOBILE_AVATAR_PL','DE','Avatare'); +INSERT INTO LOCALIZE (TAG, LANGUAGE, TEXT) VALUES ('MOBILE_AVATAR_PL','EN','avatars'); +INSERT INTO LOCALIZE (TAG, LANGUAGE, TEXT) VALUES ('MOBILE_BLOCK','DE','blockieren'); +INSERT INTO LOCALIZE (TAG, LANGUAGE, TEXT) VALUES ('MOBILE_BLOCK','EN','block'); +INSERT INTO LOCALIZE (TAG, LANGUAGE, TEXT) VALUES ('MOBILE_HELP','DE','helfen'); +INSERT INTO LOCALIZE (TAG, LANGUAGE, TEXT) VALUES ('MOBILE_HELP','EN','help'); +INSERT INTO LOCALIZE (TAG, LANGUAGE, TEXT) VALUES ('MOBILE_HERO','DE','Held'); +INSERT INTO LOCALIZE (TAG, LANGUAGE, TEXT) VALUES ('MOBILE_HERO','EN','hero'); +INSERT INTO LOCALIZE (TAG, LANGUAGE, TEXT) VALUES ('MOBILE_HERO_PL','DE','Helden'); +INSERT INTO LOCALIZE (TAG, LANGUAGE, TEXT) VALUES ('MOBILE_HERO_PL','EN','heros'); +INSERT INTO LOCALIZE (TAG, LANGUAGE, TEXT) VALUES ('MOBILE_IGNORE','DE','ignorieren'); +INSERT INTO LOCALIZE (TAG, LANGUAGE, TEXT) VALUES ('MOBILE_IGNORE','EN','ignore'); +INSERT INTO LOCALIZE (TAG, LANGUAGE, TEXT) VALUES ('MOBILE_PRIEST','DE','Priester'); +INSERT INTO LOCALIZE (TAG, LANGUAGE, TEXT) VALUES ('MOBILE_PRIEST','EN','priest'); +INSERT INTO LOCALIZE (TAG, LANGUAGE, TEXT) VALUES ('MOBILE_PRIEST_PL','DE','Priester'); +INSERT INTO LOCALIZE (TAG, LANGUAGE, TEXT) VALUES ('MOBILE_PRIEST_PL','EN','priests'); +INSERT INTO LOCALIZE (TAG, LANGUAGE, TEXT) VALUES ('MOBILE_PROPHET','DE','Prophet'); +INSERT INTO LOCALIZE (TAG, LANGUAGE, TEXT) VALUES ('MOBILE_PROPHET','EN','prophet'); +INSERT INTO LOCALIZE (TAG, LANGUAGE, TEXT) VALUES ('MOBILE_PROPHET_PL','DE','Propheten'); +INSERT INTO LOCALIZE (TAG, LANGUAGE, TEXT) VALUES ('MOBILE_PROPHET_PL','EN','prophets'); +INSERT INTO LOCALIZE (TAG, LANGUAGE, TEXT) VALUES ('MOBILE_WARRIOR','DE','Krieger'); +INSERT INTO LOCALIZE (TAG, LANGUAGE, TEXT) VALUES ('MOBILE_WARRIOR','EN','warrior'); +INSERT INTO LOCALIZE (TAG, LANGUAGE, TEXT) VALUES ('MOBILE_WARRIOR_PL','DE','Krieger'); +INSERT INTO LOCALIZE (TAG, LANGUAGE, TEXT) VALUES ('MOBILE_WARRIOR_PL','EN','warriors'); +INSERT INTO LOCALIZE (TAG, LANGUAGE, TEXT) VALUES ('MOUNTAIN','DE','Berg'); +INSERT INTO LOCALIZE (TAG, LANGUAGE, TEXT) VALUES ('MOUNTAIN','EN','mountain'); +INSERT INTO LOCALIZE (TAG, LANGUAGE, TEXT) VALUES ('MOVE','DE','bewegen'); +INSERT INTO LOCALIZE (TAG, LANGUAGE, TEXT) VALUES ('MOVE','EN','move'); +INSERT INTO LOCALIZE (TAG, LANGUAGE, TEXT) VALUES ('MSG_AVATAR_DEAD','DE','In %1 starb ein Avatar von %2 im Kampf. Er kämpft jetzt in der letzten Schlacht für seinen Gott.'); +INSERT INTO LOCALIZE (TAG, LANGUAGE, TEXT) VALUES ('MSG_AVATAR_DEAD','EN','In %1 died an avatar of %2. He fights now in the last battle for his god.'); +INSERT INTO LOCALIZE (TAG, LANGUAGE, TEXT) VALUES ('MSG_BLESS_HERO','DE','Der Gott %1 hat in %3 einen Krieger gesegnet, so daß dieser fortan heroische Kräfte entfalten kann.'); +INSERT INTO LOCALIZE (TAG, LANGUAGE, TEXT) VALUES ('MSG_BLESS_HERO','EN','The god %1 has blessed a warrior from %2 in %3. He is from now on called \'HERO\'!'); +INSERT INTO LOCALIZE (TAG, LANGUAGE, TEXT) VALUES ('MSG_BLESS_PRIEST','DE','%1 hat einen Krieger von %2 in %3 zum Priester geweiht.'); +INSERT INTO LOCALIZE (TAG, LANGUAGE, TEXT) VALUES ('MSG_BLESS_PRIEST','EN','%1 blessed a warrior from %2 in %3. It is now a priest.'); +INSERT INTO LOCALIZE (TAG, LANGUAGE, TEXT) VALUES ('MSG_BUILD_ARK','DE','%1 hat in %2 eine Arche gebaut.'); +INSERT INTO LOCALIZE (TAG, LANGUAGE, TEXT) VALUES ('MSG_BUILD_ARK','EN','%1 has build an ark in %2.'); +INSERT INTO LOCALIZE (TAG, LANGUAGE, TEXT) VALUES ('MSG_BUILD_TEMPLE','DE','%1 hat in %3 einen Tempel zu Ehren von %2 errichtet. Es ist der größte Tempel weit und breit!'); +INSERT INTO LOCALIZE (TAG, LANGUAGE, TEXT) VALUES ('MSG_BUILD_TEMPLE','EN','%1 has build a temple to pray to %3 in %2. It is the largest temple in the world!'); +INSERT INTO LOCALIZE (TAG, LANGUAGE, TEXT) VALUES ('MSG_CANT_ATTACK_ALLIE','DE','Fehler bei Verarbeitung von Befehl %1: Du kannst Deinen Verbündeten %2 nicht angreifen in Feld %3.'); +INSERT INTO LOCALIZE (TAG, LANGUAGE, TEXT) VALUES ('MSG_CANT_ATTACK_ALLIE','EN','Error during process of command %1: You cant yttack your allie %2 in field %3.'); +INSERT INTO LOCALIZE (TAG, LANGUAGE, TEXT) VALUES ('MSG_CANT_BUILD_HERE','DE','Fehler bei Verarbeitung von Befehl %1: Das kann man auf Feld %2 nicht bauen.'); +INSERT INTO LOCALIZE (TAG, LANGUAGE, TEXT) VALUES ('MSG_CANT_BUILD_HERE','EN','Error during process of command %1: You cant build this in field %2.'); +INSERT INTO LOCALIZE (TAG, LANGUAGE, TEXT) VALUES ('MSG_CANT_DESTROY_DEFENDED','DE','Du kannst den Tempel in %1 nicht zerstören, weil er von Priestern eines anderen Gottes beschützt wird.'); +INSERT INTO LOCALIZE (TAG, LANGUAGE, TEXT) VALUES ('MSG_CANT_DESTROY_DEFENDED','EN','You cant destroy the temple in %1. The temple is defended by unorthodox priests.'); +INSERT INTO LOCALIZE (TAG, LANGUAGE, TEXT) VALUES ('MSG_CANT_DESTROY_MOUNTAIN','DE','Du kannst den Tempel auf dem Berg %1 nicht zerstören.'); +INSERT INTO LOCALIZE (TAG, LANGUAGE, TEXT) VALUES ('MSG_CANT_DESTROY_MOUNTAIN','EN','You cant destroy the temple on mountain %1.'); +INSERT INTO LOCALIZE (TAG, LANGUAGE, TEXT) VALUES ('MSG_CANT_DESTROY_OWN','DE','Du kannst den Tempel in %1 nicht zerstören da er Dir selbst gehört.'); +INSERT INTO LOCALIZE (TAG, LANGUAGE, TEXT) VALUES ('MSG_CANT_DESTROY_OWN','EN','You cant destroy your very own temple in %1.'); +INSERT INTO LOCALIZE (TAG, LANGUAGE, TEXT) VALUES ('MSG_CANT_FLOOD_TERRAIN','DE','Du kannst %1 nicht überfluten: Falsches Terrain %2.'); +INSERT INTO LOCALIZE (TAG, LANGUAGE, TEXT) VALUES ('MSG_CANT_FLOOD_TERRAIN','EN','You cant flood %1: Wrong terrain %2.'); +INSERT INTO LOCALIZE (TAG, LANGUAGE, TEXT) VALUES ('MSG_CANT_LEAVE_AYMARGEDDO','DE','Fehler bei Verarbeitung von Befehl %1: Du kannst die Aymargeddon in Feld %2 nicht verlassen!'); +INSERT INTO LOCALIZE (TAG, LANGUAGE, TEXT) VALUES ('MSG_CANT_LEAVE_AYMARGEDDO','EN','Error during process of command %1: You cant leave Aymargeddon in field %2.'); +INSERT INTO LOCALIZE (TAG, LANGUAGE, TEXT) VALUES ('MSG_CANT_MOVE_ARK','DE','Du kannst keine Arche nach %1 bewegen'); +INSERT INTO LOCALIZE (TAG, LANGUAGE, TEXT) VALUES ('MSG_CANT_MOVE_ARK','EN','You cant move an ark to %1'); +INSERT INTO LOCALIZE (TAG, LANGUAGE, TEXT) VALUES ('MSG_CANT_MOVE_ATTACKED','DE','Du kannst keine %2 aus %1 bewegen, so lange dort gekämpft wird.'); +INSERT INTO LOCALIZE (TAG, LANGUAGE, TEXT) VALUES ('MSG_CANT_MOVE_ATTACKED','EN','You cant move %2 from %1 during fight.'); +INSERT INTO LOCALIZE (TAG, LANGUAGE, TEXT) VALUES ('MSG_CANT_MOVE_PLAGUE','DE','%2 können sich in %1 nicht bewegen, weil sie von der %3 betroffen sind.'); +INSERT INTO LOCALIZE (TAG, LANGUAGE, TEXT) VALUES ('MSG_CANT_MOVE_PLAGUE','EN','%2 cant move in %1 because of %3.'); +INSERT INTO LOCALIZE (TAG, LANGUAGE, TEXT) VALUES ('MSG_CANT_MOVE_TO_POLE','DE','Fehler bei Verarbeitung von Befehl %1: Du kannst Dich nicht auf den Pol %2 bewegen.'); +INSERT INTO LOCALIZE (TAG, LANGUAGE, TEXT) VALUES ('MSG_CANT_MOVE_TO_POLE','EN','Error during process of command %1: You cant move to pole %2.'); +INSERT INTO LOCALIZE (TAG, LANGUAGE, TEXT) VALUES ('MSG_CANT_RESCUE_WORLD','DE','Du kannst den Tempel in %2 nicht mehr zerstören, weil nur noch %1 Tempelbauplätze unbesetzt sind. Das Ende der Welt ist unaufhaltsam!'); +INSERT INTO LOCALIZE (TAG, LANGUAGE, TEXT) VALUES ('MSG_CANT_RESCUE_WORLD','EN','You cant destroy the temple in %2. There are only %1 unbuild temples left. The end of the world is irresistible.'); +INSERT INTO LOCALIZE (TAG, LANGUAGE, TEXT) VALUES ('MSG_CANT_SWIM','DE','Fehler bei Verarbeitung von Befehl %1: %3 können nicht schwimmen in %2.'); +INSERT INTO LOCALIZE (TAG, LANGUAGE, TEXT) VALUES ('MSG_CANT_SWIM','EN','Error during process of command %1: %3 cant swim in %2.'); +INSERT INTO LOCALIZE (TAG, LANGUAGE, TEXT) VALUES ('MSG_CHANGE_AYMARGEDDON','DE','%1 hat die Aymargeddon von %2 nach %3 verschoben'); +INSERT INTO LOCALIZE (TAG, LANGUAGE, TEXT) VALUES ('MSG_CHANGE_AYMARGEDDON','EN','%1 has moved Aymargeddon from %2 to %3'); +INSERT INTO LOCALIZE (TAG, LANGUAGE, TEXT) VALUES ('MSG_CHANGE_FORTUNE','DE','%1 hat den Glücksfaktor von %2 auf %3 geändert.'); +INSERT INTO LOCALIZE (TAG, LANGUAGE, TEXT) VALUES ('MSG_CHANGE_FORTUNE','EN','%1 changed the fortune from %2 to %3.'); +INSERT INTO LOCALIZE (TAG, LANGUAGE, TEXT) VALUES ('MSG_CH_ACTION','DE','Die Avatare in %2 haben jetzt den Status %1.'); +INSERT INTO LOCALIZE (TAG, LANGUAGE, TEXT) VALUES ('MSG_CH_ACTION','EN','The avatars in %2 now have the status %1.'); +INSERT INTO LOCALIZE (TAG, LANGUAGE, TEXT) VALUES ('MSG_CH_STATUS','DE','Dein neuer Status gegenüber %1 ist jetzt %2.'); +INSERT INTO LOCALIZE (TAG, LANGUAGE, TEXT) VALUES ('MSG_CH_STATUS','EN','Your new status regarding %1 is now %2.'); +INSERT INTO LOCALIZE (TAG, LANGUAGE, TEXT) VALUES ('MSG_DESTROY_NEED_AVATAR','DE','Du brauchst einen Avatar um den Tempel in %1 zerstören zu können.'); +INSERT INTO LOCALIZE (TAG, LANGUAGE, TEXT) VALUES ('MSG_DESTROY_NEED_AVATAR','EN','You need an avatar to destroy the temple in %1.'); +INSERT INTO LOCALIZE (TAG, LANGUAGE, TEXT) VALUES ('MSG_DIE_ORDER','DE','Du hast Deine Sterbereihenfolge geändert. Sie lautet jetzt: %1.'); +INSERT INTO LOCALIZE (TAG, LANGUAGE, TEXT) VALUES ('MSG_DIE_ORDER','EN','You changed your die order to %1.'); +INSERT INTO LOCALIZE (TAG, LANGUAGE, TEXT) VALUES ('MSG_DONT_MOVE_WITH','DE','Nicht mehr mitbewegen.'); +INSERT INTO LOCALIZE (TAG, LANGUAGE, TEXT) VALUES ('MSG_DONT_MOVE_WITH','EN','Don\'t move with any mobile.'); +INSERT INTO LOCALIZE (TAG, LANGUAGE, TEXT) VALUES ('MSG_EARTHLING_CANT_MOVE_T','DE','Fehler bei Verarbeitung von Befehl %1: Du als Erdling kannst keine %2 bewegen.'); +INSERT INTO LOCALIZE (TAG, LANGUAGE, TEXT) VALUES ('MSG_EARTHLING_CANT_MOVE_T','EN','Error during process of command %1: Earthlings cant move %2.'); +INSERT INTO LOCALIZE (TAG, LANGUAGE, TEXT) VALUES ('MSG_FIGHT_DIE','DE','Ein %2 von %1 in %3 stirbt.'); +INSERT INTO LOCALIZE (TAG, LANGUAGE, TEXT) VALUES ('MSG_FIGHT_DIE','EN','A %2 from %1 in %3 dies.'); +INSERT INTO LOCALIZE (TAG, LANGUAGE, TEXT) VALUES ('MSG_FIGHT_END','DE','Die Horden von %1 griffen %2 in %4 an. %3 gewann.'); +INSERT INTO LOCALIZE (TAG, LANGUAGE, TEXT) VALUES ('MSG_FIGHT_END','EN','The army of %1 attacked %2 in %4. %3 won the battle.'); +INSERT INTO LOCALIZE (TAG, LANGUAGE, TEXT) VALUES ('MSG_FIGHT_RETREAT','DE','%4 %2 von %1 ziehen sich aus %3 zurück.'); +INSERT INTO LOCALIZE (TAG, LANGUAGE, TEXT) VALUES ('MSG_FIGHT_RETREAT','EN','%4 %2 from %1 retreats from %3.'); +INSERT INTO LOCALIZE (TAG, LANGUAGE, TEXT) VALUES ('MSG_FIGHT_RETREAT_DIE','DE','%4 %2 von %1 sterben in %3 weil sie keine Rückzugsmöglichkeit haben.'); +INSERT INTO LOCALIZE (TAG, LANGUAGE, TEXT) VALUES ('MSG_FIGHT_RETREAT_DIE','EN','%4 %2 from %1 die in %3: No way to retreat.'); +INSERT INTO LOCALIZE (TAG, LANGUAGE, TEXT) VALUES ('MSG_FLOOD','DE','%1 hat das Feld %2 überflutet. Aus %3 wurde %4.'); +INSERT INTO LOCALIZE (TAG, LANGUAGE, TEXT) VALUES ('MSG_FLOOD','EN','%1 has flooded %2. The old terrain %3 is now %4.'); +INSERT INTO LOCALIZE (TAG, LANGUAGE, TEXT) VALUES ('MSG_FLOOD_NEED_AVATAR','DE','Zum Überfluten von %1 braucht man einen Avatar.'); +INSERT INTO LOCALIZE (TAG, LANGUAGE, TEXT) VALUES ('MSG_FLOOD_NEED_AVATAR','EN','You need an avatar in %1 to flood this field.'); +INSERT INTO LOCALIZE (TAG, LANGUAGE, TEXT) VALUES ('MSG_GOD_CANT_MOVE_TYPE','DE','Fehler bei Verarbeitung von Befehl %1: Als Gott kannst Du keine %2 bewegen.'); +INSERT INTO LOCALIZE (TAG, LANGUAGE, TEXT) VALUES ('MSG_GOD_CANT_MOVE_TYPE','EN','Error during process of command %1: Gods cant move type %2.'); +INSERT INTO LOCALIZE (TAG, LANGUAGE, TEXT) VALUES ('MSG_INCARNATE','DE','%1 inkarnierte einen Avatar in %2.'); +INSERT INTO LOCALIZE (TAG, LANGUAGE, TEXT) VALUES ('MSG_INCARNATE','EN','%1 incarnates an avatar in %2.'); +INSERT INTO LOCALIZE (TAG, LANGUAGE, TEXT) VALUES ('MSG_MOBILE_ARRIVES','DE','%1 %2 von %3 sind in %4 angekommen.'); +INSERT INTO LOCALIZE (TAG, LANGUAGE, TEXT) VALUES ('MSG_MOBILE_ARRIVES','EN','%1 %2 from %3 arrived in %4.'); +INSERT INTO LOCALIZE (TAG, LANGUAGE, TEXT) VALUES ('MSG_MOBILE_DRAWN','DE','%1 %2 von %3 sind in %4 jämmerlich ersoffen.'); +INSERT INTO LOCALIZE (TAG, LANGUAGE, TEXT) VALUES ('MSG_MOBILE_DRAWN','EN','%1 %2 from %3 drawn in %4.'); +INSERT INTO LOCALIZE (TAG, LANGUAGE, TEXT) VALUES ('MSG_MOVE_NO_TARGET','DE','Fehler bei Verarbeitung von Befehl %1: Von Feld %2 gibt es kein Feld in Richtung %3.'); +INSERT INTO LOCALIZE (TAG, LANGUAGE, TEXT) VALUES ('MSG_MOVE_NO_TARGET','EN','Error during process of command %1: There is no field in direction %3 from field %2.'); +INSERT INTO LOCALIZE (TAG, LANGUAGE, TEXT) VALUES ('MSG_MOVE_WITH','DE','Bewegt sich mit'); +INSERT INTO LOCALIZE (TAG, LANGUAGE, TEXT) VALUES ('MSG_MOVE_WITH','EN','Moves with'); +INSERT INTO LOCALIZE (TAG, LANGUAGE, TEXT) VALUES ('MSG_NOT_ENOUGH_MANA','DE','Dir fehlt Mana um den Befehl \"%1\" in %2 auszuführen.'); +INSERT INTO LOCALIZE (TAG, LANGUAGE, TEXT) VALUES ('MSG_NOT_ENOUGH_MANA','EN','You lack mana to execute the command \"%1\" in %2.'); +INSERT INTO LOCALIZE (TAG, LANGUAGE, TEXT) VALUES ('MSG_NOT_ENOUGH_MOBILES','DE','Fehler bei Verarbeitung von Befehl %1: %2 sind zu wenige in Feld %3.'); +INSERT INTO LOCALIZE (TAG, LANGUAGE, TEXT) VALUES ('MSG_NOT_ENOUGH_MOBILES','EN','Error during process of command %1: %2 is not enough in field %3.'); +INSERT INTO LOCALIZE (TAG, LANGUAGE, TEXT) VALUES ('MSG_NO_SUCH_MOBILE','DE','Fehler: Eine Einheit mit der ID %1 konnte nicht gefunden werden.'); +INSERT INTO LOCALIZE (TAG, LANGUAGE, TEXT) VALUES ('MSG_NO_SUCH_MOBILE','EN','Error: Cant find mobile with ID %1.'); +INSERT INTO LOCALIZE (TAG, LANGUAGE, TEXT) VALUES ('MSG_NO_SUCH_ROLE','DE','Fehler bei Verarbeitung des Befehls %1: Du kannst Deinen Status gegenüber jemandem, den es nicht gibt, wohl kaum ändern.'); +INSERT INTO LOCALIZE (TAG, LANGUAGE, TEXT) VALUES ('MSG_NO_SUCH_ROLE','EN','Error during process of command %1: You cant change your status to unknown players.'); +INSERT INTO LOCALIZE (TAG, LANGUAGE, TEXT) VALUES ('MSG_NO_TEMPLE_TO_DESTROY','DE','Du kannst in %1 keinen Tempel zerstören: Es ist keiner da.'); +INSERT INTO LOCALIZE (TAG, LANGUAGE, TEXT) VALUES ('MSG_NO_TEMPLE_TO_DESTROY','EN','You cant destroy an non existent temple in %1.'); +INSERT INTO LOCALIZE (TAG, LANGUAGE, TEXT) VALUES ('MSG_STATUS_INVALID','DE','Fehler bei Verarbeitung von Befehl %1: Unbekannter Status \"%2\"'); +INSERT INTO LOCALIZE (TAG, LANGUAGE, TEXT) VALUES ('MSG_STATUS_INVALID','EN','Error during process of command %1: Unknown status \"%2\"'); +INSERT INTO LOCALIZE (TAG, LANGUAGE, TEXT) VALUES ('MSG_TEMPLE_DESTROYD','DE','%3 hat in %1 einen Tempel, der %2 geweiht war, zerstört.'); +INSERT INTO LOCALIZE (TAG, LANGUAGE, TEXT) VALUES ('MSG_TEMPLE_DESTROYD','EN','%3 destroyd the temple of god %2 in %1.'); +INSERT INTO LOCALIZE (TAG, LANGUAGE, TEXT) VALUES ('MSG_TRANSPORTS','DE','reist zusammen mit'); +INSERT INTO LOCALIZE (TAG, LANGUAGE, TEXT) VALUES ('MSG_TRANSPORTS','EN','travels with'); +INSERT INTO LOCALIZE (TAG, LANGUAGE, TEXT) VALUES ('MSG_WRONG_TYPE','DE','Fehler bei Verarbeitung von Befehl %1: Falscher Typ %2 in Feld %3.'); +INSERT INTO LOCALIZE (TAG, LANGUAGE, TEXT) VALUES ('MSG_WRONG_TYPE','EN','Error during process of command %1: Wrong Type %2 in field %3.'); +INSERT INTO LOCALIZE (TAG, LANGUAGE, TEXT) VALUES ('NEW_HEROS','DE','Neue Helden'); +INSERT INTO LOCALIZE (TAG, LANGUAGE, TEXT) VALUES ('NEW_HEROS','EN','new heros'); +INSERT INTO LOCALIZE (TAG, LANGUAGE, TEXT) VALUES ('NOBODY','DE','niemand'); +INSERT INTO LOCALIZE (TAG, LANGUAGE, TEXT) VALUES ('NOBODY','EN','nobody'); +INSERT INTO LOCALIZE (TAG, LANGUAGE, TEXT) VALUES ('NOM_CHARNAME','DE','Charaktername'); +INSERT INTO LOCALIZE (TAG, LANGUAGE, TEXT) VALUES ('NOM_CHARNAME','EN','Character name'); +INSERT INTO LOCALIZE (TAG, LANGUAGE, TEXT) VALUES ('NOM_DESCRIPTION','DE','Beschreibung'); +INSERT INTO LOCALIZE (TAG, LANGUAGE, TEXT) VALUES ('NOM_DESCRIPTION','EN','Description'); +INSERT INTO LOCALIZE (TAG, LANGUAGE, TEXT) VALUES ('NOM_GENDER','DE','Geschlecht'); +INSERT INTO LOCALIZE (TAG, LANGUAGE, TEXT) VALUES ('NOM_GENDER','EN','Gender'); +INSERT INTO LOCALIZE (TAG, LANGUAGE, TEXT) VALUES ('NOM_ROLE','DE','Rolle'); +INSERT INTO LOCALIZE (TAG, LANGUAGE, TEXT) VALUES ('NOM_ROLE','EN','Role'); +INSERT INTO LOCALIZE (TAG, LANGUAGE, TEXT) VALUES ('NOT_OCCUPIED','DE','unbesetzt'); +INSERT INTO LOCALIZE (TAG, LANGUAGE, TEXT) VALUES ('NOT_OCCUPIED','EN','not occupied'); +INSERT INTO LOCALIZE (TAG, LANGUAGE, TEXT) VALUES ('OCCUPIED','DE','besetzt von'); +INSERT INTO LOCALIZE (TAG, LANGUAGE, TEXT) VALUES ('OCCUPIED','EN','occupied by'); +INSERT INTO LOCALIZE (TAG, LANGUAGE, TEXT) VALUES ('OWN_MANA','DE','Du hast %1 Mana zur Verfügung.

'); +INSERT INTO LOCALIZE (TAG, LANGUAGE, TEXT) VALUES ('OWN_MANA','EN','You have %1 mana.

'); +INSERT INTO LOCALIZE (TAG, LANGUAGE, TEXT) VALUES ('PAGE_LANGUAGE','DE','Sprache'); +INSERT INTO LOCALIZE (TAG, LANGUAGE, TEXT) VALUES ('PAGE_LANGUAGE','EN','Language'); +INSERT INTO LOCALIZE (TAG, LANGUAGE, TEXT) VALUES ('PAGE_LOGIN','DE','Einloggen'); +INSERT INTO LOCALIZE (TAG, LANGUAGE, TEXT) VALUES ('PAGE_LOGIN','EN','Login'); +INSERT INTO LOCALIZE (TAG, LANGUAGE, TEXT) VALUES ('PAGE_LOGOUT','DE','Ausloggen'); +INSERT INTO LOCALIZE (TAG, LANGUAGE, TEXT) VALUES ('PAGE_LOGOUT','EN','Logout'); +INSERT INTO LOCALIZE (TAG, LANGUAGE, TEXT) VALUES ('PAGE_MAP','DE','Karte'); +INSERT INTO LOCALIZE (TAG, LANGUAGE, TEXT) VALUES ('PAGE_MAP','EN','Map'); +INSERT INTO LOCALIZE (TAG, LANGUAGE, TEXT) VALUES ('PAGE_PLAYER','DE','Spieler'); +INSERT INTO LOCALIZE (TAG, LANGUAGE, TEXT) VALUES ('PAGE_PLAYER','EN','Player'); +INSERT INTO LOCALIZE (TAG, LANGUAGE, TEXT) VALUES ('PAGE_REFERENCE','DE','Kurzreferenz'); +INSERT INTO LOCALIZE (TAG, LANGUAGE, TEXT) VALUES ('PAGE_REFERENCE','EN','short reference'); +INSERT INTO LOCALIZE (TAG, LANGUAGE, TEXT) VALUES ('PAGE_RULES','DE','Regeln'); +INSERT INTO LOCALIZE (TAG, LANGUAGE, TEXT) VALUES ('PAGE_RULES','EN','Rules'); +INSERT INTO LOCALIZE (TAG, LANGUAGE, TEXT) VALUES ('PAGE_START','DE','Start'); +INSERT INTO LOCALIZE (TAG, LANGUAGE, TEXT) VALUES ('PAGE_START','EN','Start'); +INSERT INTO LOCALIZE (TAG, LANGUAGE, TEXT) VALUES ('PEOPLE','DE','Leute'); +INSERT INTO LOCALIZE (TAG, LANGUAGE, TEXT) VALUES ('PEOPLE','EN','People'); +INSERT INTO LOCALIZE (TAG, LANGUAGE, TEXT) VALUES ('PEOPLE_OR_ARK','DE','Leute (oder Archen)'); +INSERT INTO LOCALIZE (TAG, LANGUAGE, TEXT) VALUES ('PEOPLE_OR_ARK','EN','people (or arks)'); +INSERT INTO LOCALIZE (TAG, LANGUAGE, TEXT) VALUES ('PHK','DE','Priester - Helden - Krieger'); +INSERT INTO LOCALIZE (TAG, LANGUAGE, TEXT) VALUES ('PHK','EN','Priests - Heros - Warriors'); +INSERT INTO LOCALIZE (TAG, LANGUAGE, TEXT) VALUES ('PKH','DE','Priester - Krieger - Helden'); +INSERT INTO LOCALIZE (TAG, LANGUAGE, TEXT) VALUES ('PKH','EN','Priests - Warriors - Heros'); +INSERT INTO LOCALIZE (TAG, LANGUAGE, TEXT) VALUES ('PLAGUE_IN_FIELD','DE','Hier grassiert die %1.'); +INSERT INTO LOCALIZE (TAG, LANGUAGE, TEXT) VALUES ('PLAGUE_IN_FIELD','EN','Here rampant %1.'); +INSERT INTO LOCALIZE (TAG, LANGUAGE, TEXT) VALUES ('PLAIN','DE','Ebene'); +INSERT INTO LOCALIZE (TAG, LANGUAGE, TEXT) VALUES ('PLAIN','EN','plain'); +INSERT INTO LOCALIZE (TAG, LANGUAGE, TEXT) VALUES ('PLAYER_CHOOSE_GAME','DE','Du musst erst ein Spiel wählen, bevor es mehr zu sehen gibt.'); +INSERT INTO LOCALIZE (TAG, LANGUAGE, TEXT) VALUES ('PLAYER_CHOOSE_GAME','EN','You must choose a game if you want to see more.'); +INSERT INTO LOCALIZE (TAG, LANGUAGE, TEXT) VALUES ('PLAYER_CREATE_CHAR','DE','Erschaffe deinen Charakter für'); +INSERT INTO LOCALIZE (TAG, LANGUAGE, TEXT) VALUES ('PLAYER_CREATE_CHAR','EN','Create your character for'); +INSERT INTO LOCALIZE (TAG, LANGUAGE, TEXT) VALUES ('PLAYER_DELETE_MESSAGES','DE','Alle nachrichten löschen.'); +INSERT INTO LOCALIZE (TAG, LANGUAGE, TEXT) VALUES ('PLAYER_DELETE_MESSAGES','EN','Delete all messages.'); +INSERT INTO LOCALIZE (TAG, LANGUAGE, TEXT) VALUES ('PLAYER_EVENTS','DE','Ereignisse'); +INSERT INTO LOCALIZE (TAG, LANGUAGE, TEXT) VALUES ('PLAYER_EVENTS','EN','Events'); +INSERT INTO LOCALIZE (TAG, LANGUAGE, TEXT) VALUES ('PLAYER_GAMES_NONE','DE','keine'); +INSERT INTO LOCALIZE (TAG, LANGUAGE, TEXT) VALUES ('PLAYER_GAMES_NONE','EN','none'); +INSERT INTO LOCALIZE (TAG, LANGUAGE, TEXT) VALUES ('PLAYER_MESSAGES','DE','Folgende Nachrichten sind für dich eingetroffen:'); +INSERT INTO LOCALIZE (TAG, LANGUAGE, TEXT) VALUES ('PLAYER_MESSAGES','EN','You got the following new messages:'); +INSERT INTO LOCALIZE (TAG, LANGUAGE, TEXT) VALUES ('PLAYER_MESSAGES_HEADING','DE','Nachrichten'); +INSERT INTO LOCALIZE (TAG, LANGUAGE, TEXT) VALUES ('PLAYER_MESSAGES_HEADING','EN','Messages'); +INSERT INTO LOCALIZE (TAG, LANGUAGE, TEXT) VALUES ('PLAYER_NO_EVENTS','DE','Keine bekannten Ereignisse für Dich.'); +INSERT INTO LOCALIZE (TAG, LANGUAGE, TEXT) VALUES ('PLAYER_NO_EVENTS','EN','No known events'); +INSERT INTO LOCALIZE (TAG, LANGUAGE, TEXT) VALUES ('PLAYER_NO_MESSAGE','DE','Es gibt keine neuen Nachrichten für dich.'); +INSERT INTO LOCALIZE (TAG, LANGUAGE, TEXT) VALUES ('PLAYER_NO_MESSAGE','EN','There are no new messages for you.'); +INSERT INTO LOCALIZE (TAG, LANGUAGE, TEXT) VALUES ('PLAYER_OPENGAMES','DE','offene Spiele'); +INSERT INTO LOCALIZE (TAG, LANGUAGE, TEXT) VALUES ('PLAYER_OPENGAMES','EN','open games'); +INSERT INTO LOCALIZE (TAG, LANGUAGE, TEXT) VALUES ('PLAYER_OWN_GAMES','DE','eigene Spiele'); +INSERT INTO LOCALIZE (TAG, LANGUAGE, TEXT) VALUES ('PLAYER_OWN_GAMES','EN','own games'); +INSERT INTO LOCALIZE (TAG, LANGUAGE, TEXT) VALUES ('PLAYER_STATISTIC','DE','Statistik'); +INSERT INTO LOCALIZE (TAG, LANGUAGE, TEXT) VALUES ('PLAYER_STATISTIC','EN','Statistics'); +INSERT INTO LOCALIZE (TAG, LANGUAGE, TEXT) VALUES ('PLAYER_TO_MAP','DE','Zur Karte'); +INSERT INTO LOCALIZE (TAG, LANGUAGE, TEXT) VALUES ('PLAYER_TO_MAP','EN','To the map'); +INSERT INTO LOCALIZE (TAG, LANGUAGE, TEXT) VALUES ('PLAYER_WELCOME','DE','Willkommen bei'); +INSERT INTO LOCALIZE (TAG, LANGUAGE, TEXT) VALUES ('PLAYER_WELCOME','EN','Welcome to'); +INSERT INTO LOCALIZE (TAG, LANGUAGE, TEXT) VALUES ('PPRO_DAT3_PL','DE','euch'); +INSERT INTO LOCALIZE (TAG, LANGUAGE, TEXT) VALUES ('PPRO_DAT3_PL','EN','you'); +INSERT INTO LOCALIZE (TAG, LANGUAGE, TEXT) VALUES ('PPRO_DAT3_SG','DE','dir'); +INSERT INTO LOCALIZE (TAG, LANGUAGE, TEXT) VALUES ('PPRO_DAT3_SG','EN','you'); +INSERT INTO LOCALIZE (TAG, LANGUAGE, TEXT) VALUES ('PPRO_DAT_F','DE','ihr'); +INSERT INTO LOCALIZE (TAG, LANGUAGE, TEXT) VALUES ('PPRO_DAT_F','EN','her'); +INSERT INTO LOCALIZE (TAG, LANGUAGE, TEXT) VALUES ('PPRO_DAT_M','DE','ihm'); +INSERT INTO LOCALIZE (TAG, LANGUAGE, TEXT) VALUES ('PPRO_DAT_M','EN','him'); +INSERT INTO LOCALIZE (TAG, LANGUAGE, TEXT) VALUES ('PPRO_DAT_PL','DE','ihnen'); +INSERT INTO LOCALIZE (TAG, LANGUAGE, TEXT) VALUES ('PPRO_DAT_PL','EN','them'); +INSERT INTO LOCALIZE (TAG, LANGUAGE, TEXT) VALUES ('PPRO_GEN_F','DE','ihr'); +INSERT INTO LOCALIZE (TAG, LANGUAGE, TEXT) VALUES ('PPRO_GEN_F','EN','her'); +INSERT INTO LOCALIZE (TAG, LANGUAGE, TEXT) VALUES ('PPRO_GEN_M','DE','sein'); +INSERT INTO LOCALIZE (TAG, LANGUAGE, TEXT) VALUES ('PPRO_GEN_M','EN','his'); +INSERT INTO LOCALIZE (TAG, LANGUAGE, TEXT) VALUES ('PPRO_GEN_PL','DE','ihr'); +INSERT INTO LOCALIZE (TAG, LANGUAGE, TEXT) VALUES ('PPRO_GEN_PL','EN','their'); +INSERT INTO LOCALIZE (TAG, LANGUAGE, TEXT) VALUES ('PREP_IS_PL','DE','sind'); +INSERT INTO LOCALIZE (TAG, LANGUAGE, TEXT) VALUES ('PREP_IS_PL','EN','are'); +INSERT INTO LOCALIZE (TAG, LANGUAGE, TEXT) VALUES ('PREP_IS_SG','DE','ist'); +INSERT INTO LOCALIZE (TAG, LANGUAGE, TEXT) VALUES ('PREP_IS_SG','EN','is'); +INSERT INTO LOCALIZE (TAG, LANGUAGE, TEXT) VALUES ('PREP_OWN_PL','DE','deiner'); +INSERT INTO LOCALIZE (TAG, LANGUAGE, TEXT) VALUES ('PREP_OWN_PL','EN','of your'); +INSERT INTO LOCALIZE (TAG, LANGUAGE, TEXT) VALUES ('PREP_OWN_SG','DE','von'); +INSERT INTO LOCALIZE (TAG, LANGUAGE, TEXT) VALUES ('PREP_OWN_SG','EN','of'); +INSERT INTO LOCALIZE (TAG, LANGUAGE, TEXT) VALUES ('PRIEST','DE','Priester'); +INSERT INTO LOCALIZE (TAG, LANGUAGE, TEXT) VALUES ('PRIEST','EN','Priest'); +INSERT INTO LOCALIZE (TAG, LANGUAGE, TEXT) VALUES ('REGISTER_MAIL_SUBJECT','DE','Willkommen bei Aymargeddon!'); +INSERT INTO LOCALIZE (TAG, LANGUAGE, TEXT) VALUES ('REGISTER_MAIL_SUBJECT','EN','Welcome to Aymargeddon!'); +INSERT INTO LOCALIZE (TAG, LANGUAGE, TEXT) VALUES ('REGISTER_MAIL_TEXT','DE','Hallo %1,\r\n\r\nHerzlich willkommen bei Aymargeddon. Dein Login lautet %2 und Dein Paswort lautet %3.\r\n\r\nBitte trage Dich auch auf die Mailingliste ein. Das geht so: Schicke eine Mail an \r\n\r\nmajordomo@informatik.uni-frankfurt.de\r\n\r\nmit folgendem Inhalt:\r\n\r\nsubscribe ragnaroek\r\n\r\nSolltet ihr wieder von dieser Liste runter wollen, schickt ihr einfach ein:\r\n\r\nunsubscribe ragnaroek\r\n\r\nViel Spaß wünscht das Aymargeddon Development Team'); +INSERT INTO LOCALIZE (TAG, LANGUAGE, TEXT) VALUES ('REGISTER_MAIL_TEXT','EN','Hello %1,\r\n\r\nWelcome to Aymargeddon. Your login is %2 and your password is %3.\r\n\r\nYou should also subscribe to the mailing list:\r\n\r\nPlease send a mail to\r\n\r\nmajordomo@informatik.uni-frankfurt.de\r\n\r\nwith the following content:\r\n\r\nsubscribe ragnaroek\r\n\r\nIf you want to get rid of the mails you send\r\n\r\nunsubscribe ragnaroek\r\n\r\n\r\nHave fun!\r\n\r\nThe Aymargeddon Development Team'); +INSERT INTO LOCALIZE (TAG, LANGUAGE, TEXT) VALUES ('ROLE_EARTHLING','DE','Erdling'); +INSERT INTO LOCALIZE (TAG, LANGUAGE, TEXT) VALUES ('ROLE_EARTHLING','EN','earthling'); +INSERT INTO LOCALIZE (TAG, LANGUAGE, TEXT) VALUES ('ROLE_GOD','DE','Gott'); +INSERT INTO LOCALIZE (TAG, LANGUAGE, TEXT) VALUES ('ROLE_GOD','EN','god'); +INSERT INTO LOCALIZE (TAG, LANGUAGE, TEXT) VALUES ('ROLE_OBSERVER','DE','Beobachter'); +INSERT INTO LOCALIZE (TAG, LANGUAGE, TEXT) VALUES ('ROLE_OBSERVER','EN','observer'); +INSERT INTO LOCALIZE (TAG, LANGUAGE, TEXT) VALUES ('ROLE_UNDEFINED','DE','noch keine Rolle'); +INSERT INTO LOCALIZE (TAG, LANGUAGE, TEXT) VALUES ('ROLE_UNDEFINED','EN','no role'); +INSERT INTO LOCALIZE (TAG, LANGUAGE, TEXT) VALUES ('SEND_MESSAGE','DE','kontaktieren'); +INSERT INTO LOCALIZE (TAG, LANGUAGE, TEXT) VALUES ('SEND_MESSAGE','EN','contact'); +INSERT INTO LOCALIZE (TAG, LANGUAGE, TEXT) VALUES ('SEND_MESSAGE_TO','DE','Nachricht an %1:'); +INSERT INTO LOCALIZE (TAG, LANGUAGE, TEXT) VALUES ('SEND_MESSAGE_TO','EN','Message to %1:'); +INSERT INTO LOCALIZE (TAG, LANGUAGE, TEXT) VALUES ('STATISTIC_EARTHLING_CITY','DE','%1 hat %2 Städte.'); +INSERT INTO LOCALIZE (TAG, LANGUAGE, TEXT) VALUES ('STATISTIC_EARTHLING_CITY','EN','%1 has %2 citys.'); +INSERT INTO LOCALIZE (TAG, LANGUAGE, TEXT) VALUES ('STATISTIC_FORTUNE','DE','Der Glücksfaktor ist %1.

'); +INSERT INTO LOCALIZE (TAG, LANGUAGE, TEXT) VALUES ('STATISTIC_FORTUNE','EN','Fortune is %1.

'); +INSERT INTO LOCALIZE (TAG, LANGUAGE, TEXT) VALUES ('STATISTIC_NEW_TEMPLES','DE','Es sind zur Zeit %1 Tempel in Bau'); +INSERT INTO LOCALIZE (TAG, LANGUAGE, TEXT) VALUES ('STATISTIC_NEW_TEMPLES','EN','%1 temples will be build.'); +INSERT INTO LOCALIZE (TAG, LANGUAGE, TEXT) VALUES ('STATISTIC_SPEED','DE','Spielgeschwindigkeit: Eine Zeiteinheit dauert %1.

'); +INSERT INTO LOCALIZE (TAG, LANGUAGE, TEXT) VALUES ('STATISTIC_SPEED','EN','Game speed: One time intervall is %1.

'); +INSERT INTO LOCALIZE (TAG, LANGUAGE, TEXT) VALUES ('STATISTIC_UNBUILD','DE','%1 Tempel sind noch nicht gebaut.'); +INSERT INTO LOCALIZE (TAG, LANGUAGE, TEXT) VALUES ('STATISTIC_UNBUILD','EN','%1 temples are unbuild.'); +INSERT INTO LOCALIZE (TAG, LANGUAGE, TEXT) VALUES ('STAT_ALLIED','DE','Alliiert'); +INSERT INTO LOCALIZE (TAG, LANGUAGE, TEXT) VALUES ('STAT_ALLIED','EN','allied'); +INSERT INTO LOCALIZE (TAG, LANGUAGE, TEXT) VALUES ('STAT_BETRAY','DE','Verrat'); +INSERT INTO LOCALIZE (TAG, LANGUAGE, TEXT) VALUES ('STAT_BETRAY','EN','betray'); +INSERT INTO LOCALIZE (TAG, LANGUAGE, TEXT) VALUES ('STAT_FOE','DE','Feind'); +INSERT INTO LOCALIZE (TAG, LANGUAGE, TEXT) VALUES ('STAT_FOE','EN','enemy'); +INSERT INTO LOCALIZE (TAG, LANGUAGE, TEXT) VALUES ('STAT_FRIEND','DE','Freund'); +INSERT INTO LOCALIZE (TAG, LANGUAGE, TEXT) VALUES ('STAT_FRIEND','EN','friend'); +INSERT INTO LOCALIZE (TAG, LANGUAGE, TEXT) VALUES ('STAT_NEUTRAL','DE','Neutral'); +INSERT INTO LOCALIZE (TAG, LANGUAGE, TEXT) VALUES ('STAT_NEUTRAL','EN','neutral'); +INSERT INTO LOCALIZE (TAG, LANGUAGE, TEXT) VALUES ('SUM_OF_STRENGTH','DE','Gesamtstärke'); +INSERT INTO LOCALIZE (TAG, LANGUAGE, TEXT) VALUES ('SUM_OF_STRENGTH','EN','Total strength'); +INSERT INTO LOCALIZE (TAG, LANGUAGE, TEXT) VALUES ('SUNKEN_ARKS','DE','Gesunkene Archen'); +INSERT INTO LOCALIZE (TAG, LANGUAGE, TEXT) VALUES ('SUNKEN_ARKS','EN','Sunken arks'); +INSERT INTO LOCALIZE (TAG, LANGUAGE, TEXT) VALUES ('TEMPLE','DE','Hier steht ein Tempel'); +INSERT INTO LOCALIZE (TAG, LANGUAGE, TEXT) VALUES ('TEMPLE','EN','Here is a temple'); +INSERT INTO LOCALIZE (TAG, LANGUAGE, TEXT) VALUES ('TEST_TAG','DE','ich %1, dass %2! Prozent: %% hier nochmal: %2 %1'); +INSERT INTO LOCALIZE (TAG, LANGUAGE, TEXT) VALUES ('TIME_WITH_DAYS','DE','In %1 Tagen, %2 Stunden, %3 Minuten und %4 Sekunden'); +INSERT INTO LOCALIZE (TAG, LANGUAGE, TEXT) VALUES ('TIME_WITH_DAYS','EN','In %1 days, %2 hours, %3 minutes and %4 seconds'); +INSERT INTO LOCALIZE (TAG, LANGUAGE, TEXT) VALUES ('TIME_WITH_HOURS','DE','In %1 Stunden, %2 Minuten und %3 Sekunden'); +INSERT INTO LOCALIZE (TAG, LANGUAGE, TEXT) VALUES ('TIME_WITH_HOURS','EN','In %1 hours, %2 minutes and %3 seconds'); +INSERT INTO LOCALIZE (TAG, LANGUAGE, TEXT) VALUES ('TIME_WITH_MINUTES','DE','In %1 Minuten und %2 Sekunden'); +INSERT INTO LOCALIZE (TAG, LANGUAGE, TEXT) VALUES ('TIME_WITH_MINUTES','EN','In %1 minutes and %2 seconds'); +INSERT INTO LOCALIZE (TAG, LANGUAGE, TEXT) VALUES ('TIME_WITH_SECONDS','DE','In %1 Sekunden'); +INSERT INTO LOCALIZE (TAG, LANGUAGE, TEXT) VALUES ('TIME_WITH_SECONDS','EN','In %1 seconds'); +INSERT INTO LOCALIZE (TAG, LANGUAGE, TEXT) VALUES ('UNASSIGNED','DE','nicht vergebene Position'); +INSERT INTO LOCALIZE (TAG, LANGUAGE, TEXT) VALUES ('UNASSIGNED','EN','unassigned position'); +INSERT INTO LOCALIZE (TAG, LANGUAGE, TEXT) VALUES ('UNAVAILABLE_UNITS','DE','beschäftigte Einheiten'); +INSERT INTO LOCALIZE (TAG, LANGUAGE, TEXT) VALUES ('UNAVAILABLE_UNITS','EN','unavailable units'); +INSERT INTO LOCALIZE (TAG, LANGUAGE, TEXT) VALUES ('WATER','DE','Wasser'); +INSERT INTO LOCALIZE (TAG, LANGUAGE, TEXT) VALUES ('WATER','EN','water'); +INSERT INTO LOCALIZE (TAG, LANGUAGE, TEXT) VALUES ('WINNER_IS','DE','Sieger ist'); +INSERT INTO LOCALIZE (TAG, LANGUAGE, TEXT) VALUES ('WINNER_IS','EN','Winner is'); + diff --git a/var/RAGNAROEK.sql b/var/RAGNAROEK.sql new file mode 100644 index 0000000..386332a --- /dev/null +++ b/var/RAGNAROEK.sql @@ -0,0 +1,223 @@ +-- MySQL dump 9.09 +-- +-- Host: localhost Database: RAGNAROEK +-- ------------------------------------------------------ +-- Server version 4.0.16-log + +-- +-- Table structure for table `ALLIANCE` +-- + +DROP TABLE IF EXISTS ALLIANCE; +CREATE TABLE ALLIANCE ( + GAME smallint(5) unsigned NOT NULL default '0', + PLAYER smallint(5) NOT NULL default '0', + OTHER smallint(5) NOT NULL default '0', + STATUS enum('NEUTRAL','ALLIED','FRIEND','FOE','BETRAY') NOT NULL default 'NEUTRAL', + PRIMARY KEY (GAME,PLAYER,OTHER) +) TYPE=InnoDB COMMENT='friend or foe?'; + +-- +-- Table structure for table `COMMAND` +-- + +DROP TABLE IF EXISTS COMMAND; +CREATE TABLE COMMAND ( + ID mediumint(9) NOT NULL auto_increment, + GAME smallint(5) unsigned NOT NULL default '0', + EXEC datetime NOT NULL default '0000-00-00 00:00:00', + SUBMIT datetime NOT NULL default '0000-00-00 00:00:00', + PLAYER smallint(5) NOT NULL default '0', + COMMAND enum('SEND_MSG','MOVE_WITH','PRAY','PRODUCE','FIGHT_EARTHLING','FIGHT_GOD','CH_STATUS','MOVE','BUILD_TEMPLE','CH_ADORING','CH_ACTION','BLESS_PRIEST','BLESS_HERO','DIE_ORDER','MOVE_MTN','INCARNATE','BUILD_ARK','PLAGUE','FLOOD','DESTROY','CH_LUCK') NOT NULL default 'CH_STATUS', + LOCATION varchar(7) default NULL, + MOBILE mediumint(8) unsigned NOT NULL default '0', + ARGUMENTS text NOT NULL, + ACK datetime default NULL, + DONE datetime default NULL, + PRIMARY KEY (ID), + KEY EXEC (EXEC) +) TYPE=InnoDB COMMENT='here the commands of players are stored'; + +-- +-- Table structure for table `EARTHLING` +-- + +DROP TABLE IF EXISTS EARTHLING; +CREATE TABLE EARTHLING ( + GAME smallint(6) NOT NULL default '0', + PLAYER smallint(6) NOT NULL default '0', + DYING enum('PKH','PHK','HPK','HKP','KPH','KHP') NOT NULL default 'KHP', + HERO smallint(6) NOT NULL default '0', + PRIMARY KEY (GAME,PLAYER) +) TYPE=InnoDB COMMENT='info special for each earthling'; + +-- +-- Table structure for table `EVENT` +-- + +DROP TABLE IF EXISTS EVENT; +CREATE TABLE EVENT ( + ID mediumint(9) unsigned NOT NULL auto_increment, + GAME smallint(6) NOT NULL default '0', + LOCATION char(5) NOT NULL default '', + TAG char(30) NOT NULL default '', + ARG1 char(25) NOT NULL default '', + ARG2 char(25) NOT NULL default '', + ARG3 char(25) NOT NULL default '', + ARG4 char(25) NOT NULL default '', + COMMAND_ID mediumint(9) NOT NULL default '0', + TIME datetime NOT NULL default '0000-00-00 00:00:00', + PRIMARY KEY (ID) +) TYPE=InnoDB; + +-- +-- Table structure for table `GAME` +-- + +DROP TABLE IF EXISTS GAME; +CREATE TABLE GAME ( + GAME smallint(5) unsigned NOT NULL default '0', + NAME varchar(20) NOT NULL default '', + SIZE smallint(5) unsigned NOT NULL default '0', + SPEED int(11) NOT NULL default '1800', + FORTUNE tinyint(3) unsigned NOT NULL default '0', + LAST_TEMPLE varchar(7) NOT NULL default '', + TEMPLE_SIZE smallint(3) unsigned NOT NULL default '1', + START_MANA smallint(5) unsigned NOT NULL default '20', + RUNNING enum('Y','N') NOT NULL default 'Y', + PRIMARY KEY (GAME) +) TYPE=InnoDB COMMENT='here some generell global information is stored'; + +-- +-- Table structure for table `GOD` +-- + +DROP TABLE IF EXISTS GOD; +CREATE TABLE GOD ( + GAME smallint(5) unsigned NOT NULL default '0', + PLAYER smallint(5) NOT NULL default '0', + MANA smallint(5) unsigned NOT NULL default '0', + DEATH_HERO smallint(5) unsigned NOT NULL default '0', + DEATH_AVATAR smallint(5) unsigned NOT NULL default '0', + ARRIVAL char(7) NOT NULL default '', + PRIMARY KEY (GAME,PLAYER) +) TYPE=InnoDB COMMENT='here some god-related stuff is stored'; + +-- +-- Table structure for table `LOCALIZE` +-- + +DROP TABLE IF EXISTS LOCALIZE; +CREATE TABLE LOCALIZE ( + TAG varchar(25) NOT NULL default '', + LANGUAGE enum('DE','EN') NOT NULL default 'DE', + TEXT text NOT NULL, + PRIMARY KEY (TAG,LANGUAGE) +) TYPE=InnoDB; + +-- +-- Table structure for table `MAP` +-- + +DROP TABLE IF EXISTS MAP; +CREATE TABLE MAP ( + GAME smallint(6) unsigned NOT NULL default '0', + LOCATION varchar(7) NOT NULL default '', + HOME smallint(6) NOT NULL default '0', + OCCUPANT smallint(6) NOT NULL default '0', + TERRAIN enum('PLAIN','WATER','CITY','MOUNTAIN','ISLE','POLE','AYMARGEDDON') NOT NULL default 'PLAIN', + TEMPLE enum('Y','N') NOT NULL default 'N', + PLAGUE set('PESTILENTIA','INFLUENZA','TUBERCULOSIS') default NULL, + LAST_PRODUCE timestamp(14) NOT NULL, + ATTACKER smallint(5) unsigned default '0', + GOD_ATTACKER smallint(5) unsigned default '0', + NAME varchar(20) NOT NULL default '', + FLUXLINE set('N','S','SW','NW','SE','NE') NOT NULL default '', + PRIMARY KEY (GAME,LOCATION) +) TYPE=InnoDB COMMENT='This is the main map of the world'; + +-- +-- Table structure for table `MESSAGE` +-- + +DROP TABLE IF EXISTS MESSAGE; +CREATE TABLE MESSAGE ( + ID mediumint(8) unsigned NOT NULL auto_increment, + GAME smallint(5) unsigned NOT NULL default '0', + TIME datetime NOT NULL default '0000-00-00 00:00:00', + MFROM smallint(5) NOT NULL default '0', + MTO smallint(5) NOT NULL default '0', + LOCATION varchar(7) NOT NULL default '', + TYPE enum('MESSAGE','ERROR','WARNING') NOT NULL default 'MESSAGE', + MSG_TEXT text NOT NULL, + MSG_TAG varchar(25) NOT NULL default '', + ARG1 varchar(25) NOT NULL default '', + ARG2 varchar(25) NOT NULL default '', + ARG3 varchar(25) NOT NULL default '', + ARG4 varchar(25) NOT NULL default '', + PRIMARY KEY (ID), + KEY TIME (TIME) +) TYPE=InnoDB COMMENT='here messages to the players are stored'; + +-- +-- Table structure for table `MOBILE` +-- + +DROP TABLE IF EXISTS MOBILE; +CREATE TABLE MOBILE ( + ID mediumint(8) unsigned NOT NULL default '0', + GAME smallint(5) unsigned NOT NULL default '0', + LOCATION char(7) NOT NULL default '', + TYPE enum('WARRIOR','HERO','PRIEST','PROPHET','AVATAR','ARK') NOT NULL default 'WARRIOR', + OWNER smallint(5) NOT NULL default '0', + ADORING smallint(5) unsigned NOT NULL default '0', + COUNT smallint(5) unsigned NOT NULL default '0', + AVAILABLE enum('Y','N') NOT NULL default 'Y', + STATUS enum('BLOCK','HELP','IGNORE') NOT NULL default 'BLOCK', + COMMAND_ID mediumint(9) NOT NULL default '0', + MOVE_WITH mediumint(6) unsigned default '0', + PRIMARY KEY (ID) +) TYPE=InnoDB COMMENT='Here all mobile objects are stored'; + +-- +-- Table structure for table `PLAYER` +-- + +DROP TABLE IF EXISTS PLAYER; +CREATE TABLE PLAYER ( + PLAYER smallint(5) NOT NULL default '0', + REALNAME varchar(30) NOT NULL default '', + EMAIL varchar(40) NOT NULL default '', + SECURITY enum('USER','FRIEND','TRUSTED') NOT NULL default 'USER', + DESCRIPTION text NOT NULL, + PICTURE blob NOT NULL, + EARTHLING_SCORE smallint(6) NOT NULL default '0', + GOD_SCORE smallint(6) NOT NULL default '0', + BLOCKED enum('N','Y') NOT NULL default 'N', + LANGUAGE char(2) NOT NULL default '', + LOGIN varchar(20) NOT NULL default '', + PASSWORD varchar(20) NOT NULL default '', + GAMES_PLAYED_EARTHLING smallint(5) unsigned NOT NULL default '0', + GAMES_PLAYED_GOD smallint(5) unsigned NOT NULL default '0', + PRIMARY KEY (PLAYER), + UNIQUE KEY PLAYER (PLAYER), + UNIQUE KEY LOGIN (LOGIN), + UNIQUE KEY EMAIL (EMAIL) +) TYPE=InnoDB COMMENT='information for players, which are not related to a game'; + +-- +-- Table structure for table `ROLE` +-- + +DROP TABLE IF EXISTS ROLE; +CREATE TABLE ROLE ( + GAME smallint(5) unsigned NOT NULL default '0', + PLAYER smallint(5) NOT NULL default '0', + NICKNAME varchar(20) default NULL, + ROLE enum('OBSERVER','EARTHLING','GOD') NOT NULL default 'EARTHLING', + GENDER enum('MALE','FEMALE','PLURAL') NOT NULL default 'PLURAL', + DESCRIPTION text, + PICTURE blob, + PRIMARY KEY (GAME,PLAYER) +) TYPE=InnoDB COMMENT='which player plays which role?'; + diff --git a/var/README b/var/README new file mode 100644 index 0000000..9cb8dac --- /dev/null +++ b/var/README @@ -0,0 +1,18 @@ +In RAGNAROEK.sql, is the export from the testing-database, +generated with the script extract_structure_and_localize + +In LOCALIZE.sql the same but only for table LOCALIZE. + +The script backup generates a backup in ./+RAGNAROEK_BACKUP.sql + +The script from_scratch generates a complete empty database but with +the old PLAYER and LOCALIZE tables. + +The script do_sql executes his first command with mysql + +in my.cnf is my configuration file for mysql to work with +InnoDB tabletype. make shure InnoDB tabletype works for you. mysql +sets default tabletype to MyISAM if it does not work without +complaining! But FROGS and Aymargeddon wont work without the +transaction-capability from InnoDB + diff --git a/var/backup b/var/backup new file mode 100644 index 0000000..10f00c0 --- /dev/null +++ b/var/backup @@ -0,0 +1,3 @@ +mysqldump -u aymargeddon -p`cat ../+secrets` -c --add-drop-table \ + RAGNAROEK > ./+RAGNAROEK_BACKUP.sql + diff --git a/var/delete_game b/var/delete_game new file mode 100644 index 0000000..264cd0c --- /dev/null +++ b/var/delete_game @@ -0,0 +1,13 @@ +# usage: delete_game | ./do_sql + +echo "delete from GAME where GAME = $1;" +echo "delete from MOBILE where GAME = $1;" +echo "delete from COMMAND where GAME = $1;" +echo "delete from MAP where GAME = $1;" +echo "delete from ROLE where GAME = $1;" +echo "delete from MESSAGE where GAME = $1;" +echo "delete from EVENT where GAME = $1;" +echo "delete from ALLIANCE where GAME = $1;" +echo "delete from GOD where GAME = $1;" +echo "delete from EARTHLING where GAME = $1;" + diff --git a/var/do_sql b/var/do_sql new file mode 100755 index 0000000..505d49a --- /dev/null +++ b/var/do_sql @@ -0,0 +1,2 @@ +mysql -u aymargeddon -p`cat ../+secrets` RAGNAROEK + diff --git a/var/extract_structure_and_localize b/var/extract_structure_and_localize new file mode 100644 index 0000000..6c0da63 --- /dev/null +++ b/var/extract_structure_and_localize @@ -0,0 +1,4 @@ +mysqldump -u aymargeddon -p`cat ../+secrets` -d --add-drop-table \ + RAGNAROEK > RAGNAROEK.sql +mysqldump -u aymargeddon -p`cat ../+secrets` -c --add-drop-table RAGNAROEK LOCALIZE \ + > LOCALIZE.sql diff --git a/var/from_scratch b/var/from_scratch new file mode 100644 index 0000000..ed14424 --- /dev/null +++ b/var/from_scratch @@ -0,0 +1,8 @@ +mysqldump -u aymargeddon -p`cat ../+secrets` -c --add-drop-table RAGNAROEK LOCALIZE \ + > LOCALIZE.sql +mysqldump -u aymargeddon -p`cat ../+secrets` -c --add-drop-table RAGNAROEK PLAYER \ + > ./+PLAYER.sql + +./do_sql < RAGNAROEK.sql +./do_sql < LOCALIZE.sql +./do_sql < ./+PLAYER.sql diff --git a/var/my.cnf b/var/my.cnf new file mode 100644 index 0000000..47d7b26 --- /dev/null +++ b/var/my.cnf @@ -0,0 +1,98 @@ +# You can copy this to one of: +# /etc/mysql/my.cnf to set global options, +# mysql-data-dir/my.cnf to set server-specific options (in this +# installation this directory is /var/lib/mysql) or +# ~/.my.cnf to set user-specific options. +# +# One can use all long options that the program supports. +# Run the program with --help to get a list of available options + +# This will be passed to all mysql clients +[client] +#password = my_password +port = 3306 +socket = /var/run/mysqld/mysqld.sock + +# Here is entries for some specific programs +# The following values assume you have at least 32M ram + +[safe_mysqld] +err-log = /var/log/mysql/mysql.err + +[mysqld] +user = mysql +pid-file = /var/run/mysqld/mysqld.pid +socket = /var/run/mysqld/mysqld.sock +port = 3306 +# +# You can also put it into /var/log/mysql/mysql.log but I leave it in /var/log +# for backward compatibility. Both location gets rotated by the cronjob. +#log = /var/log/mysql/mysql.log +log = /var/log/mysql.log +basedir = /usr +datadir = /var/lib/mysql +tmpdir = /tmp +language = /usr/share/mysql/english +skip-locking +# +# The skip-networkin option will no longer be set via debconf menu. +# You have to manually change it if you want networking i.e. the server +# listening on port 3306. The default is "disable" - for security reasons. +skip-networking +set-variable = key_buffer=16M +set-variable = max_allowed_packet=1M +set-variable = thread_stack=128K +# +# Here you can see queries with especially long duration +#log-slow-queries = /var/log/mysql/mysql-slow.log +# +# The following can be used as easy to replay backup logs or for replication +#server-id = 1 +#log-bin = /var/log/mysql/mysql-bin.log +#binlog-do-db = include_database_name +#binlog-ignore-db = include_database_name +# + +# +# AB HIER WICHTIGES INNO ZEUGS +# + + +# Read the manual if you want to enable InnoDB! +# skip-innodb +skip-bdb + +# You can write your other MySQL server options here +# ... +# Datafile(s) must be able to +# hold your data and indexes. +# Make sure you have enough +# free disk space. +innodb_data_file_path = ibdata1:10M:autoextend +# Set buffer pool size to +# 50 - 80 % of your computer's +# memory +set-variable = innodb_buffer_pool_size=70M +set-variable = innodb_additional_mem_pool_size=10M +# Set the log file size to about +# 25 % of the buffer pool size +set-variable = innodb_log_file_size=20M +set-variable = innodb_log_buffer_size=8M +# Set ..flush_log_at_trx_commit +# to 0 if you can afford losing +# some last transactions +innodb_flush_log_at_trx_commit=1 + +# +# BIS HIER WICHTIGES INNO-ZEUGS +# + +[mysqldump] +quick +set-variable = max_allowed_packet=1M + +[mysql] +#no-auto-rehash # faster start of mysql but no tab completition + +[isamchk] +set-variable = key_buffer=16M -- 2.1.4