EQEmulator Forums

EQEmulator Forums (https://www.eqemulator.org/forums/index.php)
-   Development::Server Code Submissions (https://www.eqemulator.org/forums/forumdisplay.php?f=669)
-   -   ZoneNumbers (https://www.eqemulator.org/forums/showthread.php?t=26058)

Rocker8956 08-30-2008 02:16 PM

ZoneNumbers
 
I am not sure if where all this is used in the code but the common\zoneNumbers.h is outdated. IDs 337-435 were missing, arttest changed to 996, 998 was added, and others probably changed too. I used Merth's SQL command out of the comments to retrieve these.

common\zoneNumbers.h

Code:

#include "../common/types.h"

inline const char* StaticGetZoneName(int32 zoneID) {
        // @merth: I did the following query to retrieve these (following by a simple find/replace)
        // select concat('case ', zoneidnumber), concat(short_name, '";') from zone order by zoneidnumber;
        switch (zoneID) {
                case 1        qeynos";
                case 2        qeynos2";
                case 3        qrg";
                case 4        qeytoqrg";
                case 5        highpass";
                case 6        highkeep";
                case 8        freportn";
                case 9        freportw";
                case 10        freporte";
                case 11        runnyeye";
                case 12        qey2hh1";
                case 13        northkarana";
                case 14        southkarana";
                case 15        eastkarana";
                case 16        beholder";
                case 17        blackburrow";
                case 18        paw";
                case 19        rivervale";
                case 20        kithicor";
                case 21        commons";
                case 22        ecommons";
                case 23        erudnint";
                case 24        erudnext";
                case 25        nektulos";
                case 26        cshome";
                case 27        lavastorm";
                case 28        nektropos";
                case 29        halas";
                case 30        everfrost";
                case 31        soldunga";
                case 32        soldungb";
                case 33        misty";
                case 34        nro";
                case 35        sro";
                case 36        befallen";
                case 37        oasis";
                case 38        tox";
                case 39        hole";
                case 40        neriaka";
                case 41        neriakb";
                case 42        neriakc";
                case 43        neriakd";
                case 44        najena";
                case 45        qcat";
                case 46        innothule";
                case 47        feerrott";
                case 48        cazicthule";
                case 49        oggok";
                case 50        rathemtn";
                case 51        lakerathe";
                case 52        grobb";
                case 53        aviak";
                case 54        gfaydark";
                case 55        akanon";
                case 56        steamfont";
                case 57        lfaydark";
                case 58        crushbone";
                case 59        mistmoore";
                case 60        kaladima";
                case 61        felwithea";
                case 62        felwitheb";
                case 63        unrest";
                case 64        kedge";
                case 65        guktop";
                case 66        gukbottom";
                case 67        kaladimb";
                case 68        butcher";
                case 69        oot";
                case 70        cauldron";
                case 71        airplane";
                case 72        fearplane";
                case 73        permafrost";
                case 74        kerraridge";
                case 75        paineel";
                case 76        hateplane";
                case 77        arena";
                case 78        fieldofbone";
                case 79        warslikswood";
                case 80        soltemple";
                case 81        droga";
                case 82        cabwest";
                case 83        swampofnohope";
                case 84        firiona";
                case 85        lakeofillomen";
                case 86        dreadlands";
                case 87        burningwood";
                case 88        kaesora";
                case 89        sebilis";
                case 90        citymist";
                case 91        skyfire";
                case 92        frontiermtns";
                case 93        overthere";
                case 94        emeraldjungle";
                case 95        trakanon";
                case 96        timorous";
                case 97        kurn";
                case 98        erudsxing";
                case 100 stonebrunt";
                case 101 warrens";
                case 102 karnor";
                case 103 chardok";
                case 104 dalnir";
                case 105 charasis";
                case 106 cabeast";
                case 107 nurga";
                case 108 veeshan";
                case 109 veksar";
                case 110 iceclad";
                case 111 frozenshadow";
                case 112 velketor";
                case 113 kael";
                case 114 skyshrine";
                case 115 thurgadina";
                case 116 eastwastes";
                case 117 cobaltscar";
                case 118 greatdivide";
                case 119 wakening";
                case 120 westwastes";
                case 121 crystal";
                case 123 necropolis";
                case 124 templeveeshan";
                case 125 sirens";
                case 126 mischiefplane";
                case 127 growthplane";
                case 128 sleeper";
                case 129 thurgadinb";
                case 130 erudsxing2";
                case 150 shadowhaven";
                case 151 bazaar";
                case 152 nexus";
                case 153 echo";
                case 154 acrylia";
                case 155 sharvahl";
                case 156 paludal";
                case 157 fungusgrove";
                case 158 vexthal";
                case 159 sseru";
                case 160 katta";
                case 161 netherbian";
                case 162 ssratemple";
                case 163 griegsend";
                case 164 thedeep";
                case 165 shadeweaver";
                case 166 hollowshade";
                case 167 grimling";
                case 168 mseru";
                case 169 letalis";
                case 170 twilight";
                case 171 thegrey";
                case 172 tenebrous";
                case 173 maiden";
                case 174 dawnshroud";
                case 175 scarlet";
                case 176 umbral";
                case 179 akheva";
                case 180 arena2";
                case 181 jaggedpine";
                case 182 nedaria";
                case 183 tutorial";
                case 184 load";
                case 185 load2";
                case 186 hateplaneb";
                case 187 shadowrest";
                case 188 tutoriala";
                case 189 tutorialb";
                case 190 clz";
                case 200 codecay";
                case 201 pojustice";
                case 202 poknowledge";
                case 203 potranquility";
                case 204 ponightmare";
                case 205 podisease";
                case 206 poinnovation";
                case 207 potorment";
                case 208 povalor";
                case 209 bothunder";
                case 210 postorms";
                case 211 hohonora";
                case 212 solrotower";
                case 213 powar";
                case 214 potactics";
                case 215 poair";
                case 216 powater";
                case 217 pofire";
                case 218 poeartha";
                case 219 potimea";
                case 220 hohonorb";
                case 221 nightmareb";
                case 222 poearthb";
                case 223 potimeb";
                case 224 gunthak";
                case 225 dulak";
                case 226 torgiran";
                case 227 nadox";
                case 228 hatesfury";
                case 229 guka";
                case 230 ruja";
                case 231 taka";
                case 232 mira";
                case 233 mmca";
                case 234 gukb";
                case 235 rujb";
                case 236 takb";
                case 237 mirb";
                case 238 mmcb";
                case 239 gukc";
                case 240 rujc";
                case 241 takc";
                case 242 mirc";
                case 243 mmcc";
                case 244 gukd";
                case 245 rujd";
                case 246 takd";
                case 247 mird";
                case 248 mmcd";
                case 249 guke";
                case 250 ruje";
                case 251 take";
                case 252 mire";
                case 253 mmce";
                case 254 gukf";
                case 255 rujf";
                case 256 takf";
                case 257 mirf";
                case 258 mmcf";
                case 259 gukg";
                case 260 rujg";
                case 261 takg";
                case 262 mirg";
                case 263 mmcg";
                case 264 gukh";
                case 265 rujh";
                case 266 takh";
                case 267 mirh";
                case 268 mmch";
                case 269 ruji";
                case 270 taki";
                case 271 miri";
                case 272 mmci";
                case 273 rujj";
                case 274 takj";
                case 275 mirj";
                case 276 mmcj";
                case 277 chardokb";
                case 278 soldungc";
                case 279 abysmal";
                case 280 natimbi";
                case 281 qinimi";
                case 282 riwwi";
                case 283 barindu";
                case 284 ferubi";
                case 285 snpool";
                case 286 snlair";
                case 287 snplant";
                case 288 sncrematory";
                case 289 tipt";
                case 290 vxed";
                case 291 yxtta";
                case 292 uqua";
                case 293 kodtaz";
                case 294 ikkinz";
                case 295 qvic";
                case 296 inktuta";
                case 297 txevu";
                case 298 tacvi";
                case 299 qvicb";
                case 300 wallofslaughter";
                case 301 bloodfields";
                case 302 draniksscar";
                case 303 causeway";
                case 304 chambersa";
                case 305 chambersb";
                case 306 chambersc";
                case 307 chambersd";
                case 308 chamberse";
                case 309 chambersf";
                case 316 provinggrounds";
                case 317 anguish";
                case 318 dranikhollowsa";
                case 319 dranikhollowsb";
                case 320 dranikhollowsc";
                case 321 dranikhollowsd";
                case 322 dranikhollowse";
                case 323 dranikhollowsf";
                case 324 dranikhollowsg";
                case 325 dranikhollowsh";
                case 326 dranikhollowsi";
                case 327 dranikhollowsj";
                case 328 dranikcatacombsa";
                case 329 dranikcatacombsb";
                case 330 dranikcatacombsc";
                case 331 draniksewersa";
                case 332 draniksewersb";
                case 333 draniksewersc";
                case 334 riftseekers";
                case 335 harbingers";
                case 336 dranik";
                case 337 broodlands";
                case 338 stillmoona";
                case 339 stillmoonb";
                case 340 thundercrest";
                case 341 delvea";
                case 342 delveb";
                case 343 thenest";
                case 344 guildlobby";
                case 345 guildhall";
                case 346 barter";
                case 347 illsalin";
                case 348 illsalina";
                case 349 illsalinb";
                case 350 illsalinc";
                case 351 dreadspire";
                case 354 drachnidhive";
                case 355 drachnidhivea";
                case 356 drachnidhiveb";
                case 357 drachnidhivec";
                case 358 westkorlach";
                case 359 westkorlacha";
                case 360 westkorlachb";
                case 361 westkorlachc";
                case 362 eastkorlach";
                case 363 eastkorlacha";
                case 364 shadowspine";
                case 365 corathus";
                case 366 corathusa";
                case 367 corathusb";
                case 368 nektulosa";
                case 369 arcstone";
                case 370 relic";
                case 371 skylance";
                case 372 devastion";
                case 373 devastationa";
                case 374 rage";
                case 375 ragea";
                case 376 takishruins";
                case 377 takishruinsa";
                case 378 elddar";
                case 379 elddara";
                case 380 theater";
                case 381 theatera";
                case 382 freeporteast";
                case 383 freeportwest";
                case 384 freeportsewers";
                case 385 freeportacademy";
                case 386 freeporttemple";
                case 387 freeportmilitia";
                case 388 freeportarena";
                case 389 freeportcityhall";
                case 390 freeporttheater";
                case 391 freeporthall";
                case 392 northro";
                case 393 southro";
                case 394 crescent";
                case 395 moors";
                case 396 stonehive";
                case 397 mesa";
                case 398 roost";
                case 399 steppes";
                case 400 icefall";
                case 401 valdeholm";
                case 402 frostcrypt";
                case 403 sunderock";
                case 404 vergalid";
                case 405 direwind";
                case 406 ashengate";
                case 407 highpasshold";
                case 408 commonlands";
                case 409 oceanoftears";
                case 410 kithforest";
                case 411 befallenb";
                case 412 highpasskeep";
                case 413 innothuleb";
                case 414 toxxulia";
                case 415 mistythicket";
                case 416 kattacastrum";
                case 417 thalassius";
                case 418 atiiki";
                case 419 zhisza";
                case 420 silyssar";
                case 421 solteris";
                case 422 barren";
                case 423 buriedsea";
                case 424 jardelshook";
                case 425 monkeyrock";
                case 426 suncrest";
                case 427 deadbone";
                case 428 blacksail";
                case 429 maidensgrave";
                case 430 redfeather";
                case 431 shipmvp";
                case 432 shipmvu";
                case 433 shippvu";
                case 434 shipuvu";
                case 435 shipmvm";
                case 996 arttest";
                case 998 fhalls";
                case 999 apprentice";
        }
        return "UNKNWN";
}


Rocker8956 08-31-2008 03:19 AM

Well, I really messed up the code I posted above. I left out the : and ;
Tends not to compile with those left out.
Here is the correct code.

common\zoneNumbers.h

Code:

#include "../common/types.h"

inline const char* StaticGetZoneName(int32 zoneID) {
        // @merth: I did the following query to retrieve these (following by a simple find/replace)
        // 31Aug2008 Rocker8956: Changed SQL command to be a little more copy/paste friendly
        // select concat('                case ', zoneidnumber, ': '), concat('"', short_name, '";') from zone order by zoneidnumber;
        switch (zoneID) {
                case 1:        "qeynos";
                case 2:        "qeynos2";
                case 3:        "qrg";
                case 4:        "qeytoqrg";
                case 5:        "highpass";
                case 6:        "highkeep";
                case 8:        "freportn";
                case 9:        "freportw";
                case 10:        "freporte";
                case 11:        "runnyeye";
                case 12:        "qey2hh1";
                case 13:        "northkarana";
                case 14:        "southkarana";
                case 15:        "eastkarana";
                case 16:        "beholder";
                case 17:        "blackburrow";
                case 18:        "paw";
                case 19:        "rivervale";
                case 20:        "kithicor";
                case 21:        "commons";
                case 22:        "ecommons";
                case 23:        "erudnint";
                case 24:        "erudnext";
                case 25:        "nektulos";
                case 26:        "cshome";
                case 27:        "lavastorm";
                case 28:        "nektropos";
                case 29:        "halas";
                case 30:        "everfrost";
                case 31:        "soldunga";
                case 32:        "soldungb";
                case 33:        "misty";
                case 34:        "nro";
                case 35:        "sro";
                case 36:        "befallen";
                case 37:        "oasis";
                case 38:        "tox";
                case 39:        "hole";
                case 40:        "neriaka";
                case 41:        "neriakb";
                case 42:        "neriakc";
                case 43:        "neriakd";
                case 44:        "najena";
                case 45:        "qcat";
                case 46:        "innothule";
                case 47:        "feerrott";
                case 48:        "cazicthule";
                case 49:        "oggok";
                case 50:        "rathemtn";
                case 51:        "lakerathe";
                case 52:        "grobb";
                case 53:        "aviak";
                case 54:        "gfaydark";
                case 55:        "akanon";
                case 56:        "steamfont";
                case 57:        "lfaydark";
                case 58:        "crushbone";
                case 59:        "mistmoore";
                case 60:        "kaladima";
                case 61:        "felwithea";
                case 62:        "felwitheb";
                case 63:        "unrest";
                case 64:        "kedge";
                case 65:        "guktop";
                case 66:        "gukbottom";
                case 67:        "kaladimb";
                case 68:        "butcher";
                case 69:        "oot";
                case 70:        "cauldron";
                case 71:        "airplane";
                case 72:        "fearplane";
                case 73:        "permafrost";
                case 74:        "kerraridge";
                case 75:        "paineel";
                case 76:        "hateplane";
                case 77:        "arena";
                case 78:        "fieldofbone";
                case 79:        "warslikswood";
                case 80:        "soltemple";
                case 81:        "droga";
                case 82:        "cabwest";
                case 83:        "swampofnohope";
                case 84:        "firiona";
                case 85:        "lakeofillomen";
                case 86:        "dreadlands";
                case 87:        "burningwood";
                case 88:        "kaesora";
                case 89:        "sebilis";
                case 90:        "citymist";
                case 91:        "skyfire";
                case 92:        "frontiermtns";
                case 93:        "overthere";
                case 94:        "emeraldjungle";
                case 95:        "trakanon";
                case 96:        "timorous";
                case 97:        "kurn";
                case 98:        "erudsxing";
                case 100:        "stonebrunt";
                case 101:        "warrens";
                case 102:        "karnor";
                case 103:        "chardok";
                case 104:        "dalnir";
                case 105:        "charasis";
                case 106:        "cabeast";
                case 107:        "nurga";
                case 108:        "veeshan";
                case 109:        "veksar";
                case 110:        "iceclad";
                case 111:        "frozenshadow";
                case 112:        "velketor";
                case 113:        "kael";
                case 114:        "skyshrine";
                case 115:        "thurgadina";
                case 116:        "eastwastes";
                case 117:        "cobaltscar";
                case 118:        "greatdivide";
                case 119:        "wakening";
                case 120:        "westwastes";
                case 121:        "crystal";
                case 123:        "necropolis";
                case 124:        "templeveeshan";
                case 125:        "sirens";
                case 126:        "mischiefplane";
                case 127:        "growthplane";
                case 128:        "sleeper";
                case 129:        "thurgadinb";
                case 130:        "erudsxing2";
                case 150:        "shadowhaven";
                case 151:        "bazaar";
                case 152:        "nexus";
                case 153:        "echo";
                case 154:        "acrylia";
                case 155:        "sharvahl";
                case 156:        "paludal";
                case 157:        "fungusgrove";
                case 158:        "vexthal";
                case 159:        "sseru";
                case 160:        "katta";
                case 161:        "netherbian";
                case 162:        "ssratemple";
                case 163:        "griegsend";
                case 164:        "thedeep";
                case 165:        "shadeweaver";
                case 166:        "hollowshade";
                case 167:        "grimling";
                case 168:        "mseru";
                case 169:        "letalis";
                case 170:        "twilight";
                case 171:        "thegrey";
                case 172:        "tenebrous";
                case 173:        "maiden";
                case 174:        "dawnshroud";
                case 175:        "scarlet";
                case 176:        "umbral";
                case 179:        "akheva";
                case 180:        "arena2";
                case 181:        "jaggedpine";
                case 182:        "nedaria";
                case 183:        "tutorial";
                case 184:        "load";
                case 185:        "load2";
                case 186:        "hateplaneb";
                case 187:        "shadowrest";
                case 188:        "tutoriala";
                case 189:        "tutorialb";
                case 190:        "clz";
                case 200:        "codecay";
                case 201:        "pojustice";
                case 202:        "poknowledge";
                case 203:        "potranquility";
                case 204:        "ponightmare";
                case 205:        "podisease";
                case 206:        "poinnovation";
                case 207:        "potorment";
                case 208:        "povalor";
                case 209:        "bothunder";
                case 210:        "postorms";
                case 211:        "hohonora";
                case 212:        "solrotower";
                case 213:        "powar";
                case 214:        "potactics";
                case 215:        "poair";
                case 216:        "powater";
                case 217:        "pofire";
                case 218:        "poeartha";
                case 219:        "potimea";
                case 220:        "hohonorb";
                case 221:        "nightmareb";
                case 222:        "poearthb";
                case 223:        "potimeb";
                case 224:        "gunthak";
                case 225:        "dulak";
                case 226:        "torgiran";
                case 227:        "nadox";
                case 228:        "hatesfury";
                case 229:        "guka";
                case 230:        "ruja";
                case 231:        "taka";
                case 232:        "mira";
                case 233:        "mmca";
                case 234:        "gukb";
                case 235:        "rujb";
                case 236:        "takb";
                case 237:        "mirb";
                case 238:        "mmcb";
                case 239:        "gukc";
                case 240:        "rujc";
                case 241:        "takc";
                case 242:        "mirc";
                case 243:        "mmcc";
                case 244:        "gukd";
                case 245:        "rujd";
                case 246:        "takd";
                case 247:        "mird";
                case 248:        "mmcd";
                case 249:        "guke";
                case 250:        "ruje";
                case 251:        "take";
                case 252:        "mire";
                case 253:        "mmce";
                case 254:        "gukf";
                case 255:        "rujf";
                case 256:        "takf";
                case 257:        "mirf";
                case 258:        "mmcf";
                case 259:        "gukg";
                case 260:        "rujg";
                case 261:        "takg";
                case 262:        "mirg";
                case 263:        "mmcg";
                case 264:        "gukh";
                case 265:        "rujh";
                case 266:        "takh";
                case 267:        "mirh";
                case 268:        "mmch";
                case 269:        "ruji";
                case 270:        "taki";
                case 271:        "miri";
                case 272:        "mmci";
                case 273:        "rujj";
                case 274:        "takj";
                case 275:        "mirj";
                case 276:        "mmcj";
                case 277:        "chardokb";
                case 278:        "soldungc";
                case 279:        "abysmal";
                case 280:        "natimbi";
                case 281:        "qinimi";
                case 282:        "riwwi";
                case 283:        "barindu";
                case 284:        "ferubi";
                case 285:        "snpool";
                case 286:        "snlair";
                case 287:        "snplant";
                case 288:        "sncrematory";
                case 289:        "tipt";
                case 290:        "vxed";
                case 291:        "yxtta";
                case 292:        "uqua";
                case 293:        "kodtaz";
                case 294:        "ikkinz";
                case 295:        "qvic";
                case 296:        "inktuta";
                case 297:        "txevu";
                case 298:        "tacvi";
                case 299:        "qvicb";
                case 300:        "wallofslaughter";
                case 301:        "bloodfields";
                case 302:        "draniksscar";
                case 303:        "causeway";
                case 304:        "chambersa";
                case 305:        "chambersb";
                case 306:        "chambersc";
                case 307:        "chambersd";
                case 308:        "chamberse";
                case 309:        "chambersf";
                case 316:        "provinggrounds";
                case 317:        "anguish";
                case 318:        "dranikhollowsa";
                case 319:        "dranikhollowsb";
                case 320:        "dranikhollowsc";
                case 321:        "dranikhollowsd";
                case 322:        "dranikhollowse";
                case 323:        "dranikhollowsf";
                case 324:        "dranikhollowsg";
                case 325:        "dranikhollowsh";
                case 326:        "dranikhollowsi";
                case 327:        "dranikhollowsj";
                case 328:        "dranikcatacombsa";
                case 329:        "dranikcatacombsb";
                case 330:        "dranikcatacombsc";
                case 331:        "draniksewersa";
                case 332:        "draniksewersb";
                case 333:        "draniksewersc";
                case 334:        "riftseekers";
                case 335:        "harbingers";
                case 336:        "dranik";
                case 337:        "broodlands";
                case 338:        "stillmoona";
                case 339:        "stillmoonb";
                case 340:        "thundercrest";
                case 341:        "delvea";
                case 342:        "delveb";
                case 343:        "thenest";
                case 344:        "guildlobby";
                case 345:        "guildhall";
                case 346:        "barter";
                case 347:        "illsalin";
                case 348:        "illsalina";
                case 349:        "illsalinb";
                case 350:        "illsalinc";
                case 351:        "dreadspire";
                case 354:        "drachnidhive";
                case 355:        "drachnidhivea";
                case 356:        "drachnidhiveb";
                case 357:        "drachnidhivec";
                case 358:        "westkorlach";
                case 359:        "westkorlacha";
                case 360:        "westkorlachb";
                case 361:        "westkorlachc";
                case 362:        "eastkorlach";
                case 363:        "eastkorlacha";
                case 364:        "shadowspine";
                case 365:        "corathus";
                case 366:        "corathusa";
                case 367:        "corathusb";
                case 368:        "nektulosa";
                case 369:        "arcstone";
                case 370:        "relic";
                case 371:        "skylance";
                case 372:        "devastion";
                case 373:        "devastationa";
                case 374:        "rage";
                case 375:        "ragea";
                case 376:        "takishruins";
                case 377:        "takishruinsa";
                case 378:        "elddar";
                case 379:        "elddara";
                case 380:        "theater";
                case 381:        "theatera";
                case 382:        "freeporteast";
                case 383:        "freeportwest";
                case 384:        "freeportsewers";
                case 385:        "freeportacademy";
                case 386:        "freeporttemple";
                case 387:        "freeportmilitia";
                case 388:        "freeportarena";
                case 389:        "freeportcityhall";
                case 390:        "freeporttheater";
                case 391:        "freeporthall";
                case 392:        "northro";
                case 393:        "southro";
                case 394:        "crescent";
                case 395:        "moors";
                case 396:        "stonehive";
                case 397:        "mesa";
                case 398:        "roost";
                case 399:        "steppes";
                case 400:        "icefall";
                case 401:        "valdeholm";
                case 402:        "frostcrypt";
                case 403:        "sunderock";
                case 404:        "vergalid";
                case 405:        "direwind";
                case 406:        "ashengate";
                case 407:        "highpasshold";
                case 408:        "commonlands";
                case 409:        "oceanoftears";
                case 410:        "kithforest";
                case 411:        "befallenb";
                case 412:        "highpasskeep";
                case 413:        "innothuleb";
                case 414:        "toxxulia";
                case 415:        "mistythicket";
                case 416:        "kattacastrum";
                case 417:        "thalassius";
                case 418:        "atiiki";
                case 419:        "zhisza";
                case 420:        "silyssar";
                case 421:        "solteris";
                case 422:        "barren";
                case 423:        "buriedsea";
                case 424:        "jardelshook";
                case 425:        "monkeyrock";
                case 426:        "suncrest";
                case 427:        "deadbone";
                case 428:        "blacksail";
                case 429:        "maidensgrave";
                case 430:        "redfeather";
                case 431:        "shipmvp";
                case 432:        "shipmvu";
                case 433:        "shippvu";
                case 434:        "shipuvu";
                case 435:        "shipmvm";
                case 996:        "arttest";
                case 998:        "fhalls";
                case 999:        "apprentice";
        }
        return "UNKNWN";
}



All times are GMT -4. The time now is 08:38 PM.

Powered by vBulletin®, Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.