[8229] | 1 | #!/usr/bin/env perl
|
---|
| 2 |
|
---|
| 3 | # ========================================================================
|
---|
| 4 | # createRnx3Aliases.pl
|
---|
| 5 | # ========================================================================
|
---|
| 6 | #
|
---|
| 7 | # Purpose : Helps to create Rnx3 alias mountpoints for a existing
|
---|
| 8 | # BKG NtripCaster installation. See help for details.
|
---|
| 9 | #
|
---|
| 10 | # Revision: $Id:$
|
---|
| 11 | # ========================================================================
|
---|
| 12 |
|
---|
| 13 | # Uses
|
---|
| 14 | use strict;
|
---|
| 15 | use warnings;
|
---|
| 16 |
|
---|
| 17 | # Arguments
|
---|
| 18 | my ($confDir) = @ARGV;
|
---|
| 19 | if ( !defined $confDir || $confDir =~ /-h|--help/ ) {
|
---|
| 20 | print <<EOI_HLP;
|
---|
| 21 |
|
---|
| 22 | createRnx3Aliases.pl - Helps to create Rnx3 alias mountpoints for a existing
|
---|
| 23 | BKG NtripCaster installation.
|
---|
| 24 |
|
---|
| 25 | See White Paper URL???
|
---|
| 26 | For NtripCaster admins.
|
---|
| 27 | The output contains the alias records for the ntripcaster.conf file.
|
---|
| 28 | Creates a new sourcetable file with alias records included.
|
---|
| 29 |
|
---|
| 30 | USAGE:
|
---|
| 31 | $0 <ntripcaster-conf-dir>
|
---|
| 32 |
|
---|
| 33 | EXAMPLES:
|
---|
| 34 | $0 /home/rt/eurefcaster/conf
|
---|
| 35 |
|
---|
| 36 | Authors:
|
---|
| 37 | Erwin Wiesensarter <Erwin.Wiesensarter\@bkg.bund.de>
|
---|
| 38 |
|
---|
| 39 | EOI_HLP
|
---|
| 40 | exit;
|
---|
| 41 | }
|
---|
| 42 |
|
---|
| 43 | my $ntripcaster_conf = $confDir . '/ntripcaster.conf';
|
---|
| 44 | my $sourcetable_dat = $confDir . '/sourcetable.dat';
|
---|
| 45 |
|
---|
| 46 | my @igsLongNames = <DATA>;
|
---|
| 47 | chomp $_ for (@igsLongNames);
|
---|
| 48 |
|
---|
| 49 | my @existing_mpts;
|
---|
| 50 | my %st_streams = parseSourcetable($sourcetable_dat);
|
---|
| 51 |
|
---|
| 52 | # Create alias names for each stream
|
---|
| 53 | # ----------------------------------
|
---|
| 54 | my @alias;
|
---|
| 55 | my $rnx3Name = "";
|
---|
| 56 | while ( my ( $fourCharId, $rows ) = each %st_streams ) {
|
---|
| 57 |
|
---|
| 58 | # RAW streams
|
---|
| 59 | my @raw = grep ( $_->[3] =~ /RAW/i, @$rows );
|
---|
| 60 | if (@raw) {
|
---|
| 61 | if ( scalar @raw > 1 ) {
|
---|
| 62 | warn "WARN: more than one RAW stream for $fourCharId\n";
|
---|
| 63 | }
|
---|
| 64 | my $i = 0;
|
---|
| 65 | foreach (@raw) {
|
---|
| 66 | if ( $i == 0 ) {
|
---|
| 67 | $rnx3Name = $fourCharId . "00" . $_->[8] . 9;
|
---|
| 68 | if ( grep { $rnx3Name eq $_ } @existing_mpts ) {
|
---|
| 69 | print "$rnx3Name already exists - skip";
|
---|
| 70 | next;
|
---|
| 71 | }
|
---|
| 72 | printf "%-5s %-8s %-6s %-9s\n", $_->[1], $_->[3], $_->[4], $rnx3Name;
|
---|
| 73 | push ( @alias, [ $_->[1], $rnx3Name ] );
|
---|
| 74 | }
|
---|
| 75 | else {
|
---|
| 76 | printf "%-5s %-8s %-6s %-9s\n", $_->[1], $_->[3], $_->[4], "skipped";
|
---|
| 77 | }
|
---|
| 78 |
|
---|
| 79 | $i++;
|
---|
| 80 | }
|
---|
| 81 | }
|
---|
| 82 |
|
---|
| 83 | # RTCM streams
|
---|
| 84 | my @rtcm = map { $_->[0] }
|
---|
| 85 | sort { $b->[2] <=> $a->[2] }
|
---|
| 86 | map { [ $_, split ( /\s+/, $_->[3], 2 ) ] }
|
---|
| 87 | grep { $_->[3] =~ /RTCM/i } @$rows;
|
---|
| 88 |
|
---|
| 89 | my $i = 0;
|
---|
| 90 | foreach (@rtcm) {
|
---|
| 91 | $rnx3Name = $fourCharId . "00" . $_->[8] . $i++;
|
---|
| 92 | if ( grep { $rnx3Name eq $_ } @existing_mpts ) {
|
---|
| 93 | print "$rnx3Name already exists - skip";
|
---|
| 94 | next;
|
---|
| 95 | }
|
---|
| 96 | printf "%-5s %-15s %-9s\n", $_->[1], $_->[3], $rnx3Name;
|
---|
| 97 | push ( @alias, [ $_->[1], $rnx3Name ] );
|
---|
| 98 | }
|
---|
| 99 |
|
---|
| 100 | print "\n";
|
---|
| 101 | }
|
---|
| 102 |
|
---|
| 103 | print "===================== Alias ===================== (insert in $ntripcaster_conf)\n";
|
---|
| 104 | foreach ( sort { ( $a->[1] ) cmp ( $b->[1] ) } @alias ) {
|
---|
| 105 | print "alias /$_->[1] /$_->[0]\n";
|
---|
| 106 | }
|
---|
| 107 | print "\n";
|
---|
| 108 |
|
---|
| 109 | writeNewSourcetable($sourcetable_dat);
|
---|
| 110 |
|
---|
| 111 | ###############################################################################
|
---|
| 112 | sub parseSourcetable {
|
---|
| 113 | my ($sourcetableFil) = @_;
|
---|
| 114 |
|
---|
| 115 | my %st;
|
---|
| 116 | open ( my $ST, '<', $sourcetableFil ) || die "Could not open file '$sourcetableFil': $!\n";
|
---|
| 117 | while (<$ST>) {
|
---|
| 118 | chomp;
|
---|
| 119 | next if ( $_ =~ /^#/ );
|
---|
| 120 | $_ =~ /^(CAS|NET|STR);.+/ || die "Weird sourcetable line: [$_]";
|
---|
| 121 | if ( $_ =~ /^STR;/ ) {
|
---|
| 122 | my @fields = split ';', $_;
|
---|
| 123 | push ( @existing_mpts, $fields[1] );
|
---|
| 124 | scalar @fields >= 18 || die "Not enough fields in line: [$_]\nsee http://software.rtcm-ntrip.org/wiki/STR";
|
---|
| 125 | if ( $fields[1] =~ /^CLK|EPH$/i ) {
|
---|
| 126 | print "INFO: skip $fields[1]\n";
|
---|
| 127 | next;
|
---|
| 128 | }
|
---|
| 129 |
|
---|
| 130 | # Consider only mountpoint names with length 5
|
---|
| 131 | if ( length ( $fields[1] ) == 5 ) {
|
---|
| 132 | my $fourCharId = substr ( $fields[1], 0, 4 );
|
---|
| 133 |
|
---|
| 134 | # Compare country code with official IGS station list (IGS Network.csv 21.12.2017 from
|
---|
| 135 | # http://www.igs.org/network)
|
---|
| 136 | my @igs_found = grep ( $fourCharId eq substr ( $_, 0, 4 ), @igsLongNames );
|
---|
| 137 | if (@igs_found) {
|
---|
| 138 | my $rnx3Name = $fourCharId . "00" . $fields[8];
|
---|
| 139 | $rnx3Name eq $igs_found[0]
|
---|
| 140 | || warn
|
---|
| 141 | "ERROR: wrong country code \"$fields[8]\" for sourcetable stream $fields[1] (IGS: $igs_found[0])\n"
|
---|
| 142 | ; # die
|
---|
| 143 | }
|
---|
| 144 | push ( @{ $st{$fourCharId} }, \@fields );
|
---|
| 145 | }
|
---|
| 146 | }
|
---|
| 147 | }
|
---|
| 148 | close ($ST);
|
---|
| 149 | return %st;
|
---|
| 150 | }
|
---|
| 151 |
|
---|
| 152 | sub writeNewSourcetable {
|
---|
| 153 | my ($sourcetable_orig) = @_;
|
---|
| 154 |
|
---|
| 155 | my $sourcetable_new = $sourcetable_orig . '.new';
|
---|
| 156 |
|
---|
| 157 | open ( my $ORIG, '<', $sourcetable_orig ) || die "Could not open file '$sourcetable_orig': $!\n";
|
---|
| 158 | open ( my $NEW, '>', $sourcetable_new ) || die "Could not open file '$sourcetable_new': $!\n";
|
---|
| 159 | while (<$ORIG>) {
|
---|
| 160 | print $NEW $_;
|
---|
| 161 | my @fields = split ( ';', $_ );
|
---|
| 162 | if ( @fields && $fields[0] eq "STR" ) {
|
---|
| 163 | my @found = grep ( $_->[0] eq $fields[1], @alias ); # search for mountpoint
|
---|
| 164 | if (@found) {
|
---|
| 165 | $fields[1] = $found[0]->[1];
|
---|
| 166 | $fields[18] = $found[0]->[0];
|
---|
| 167 | my $alias_rc = join ( ';', @fields );
|
---|
| 168 | print $NEW "$alias_rc\n";
|
---|
| 169 | }
|
---|
| 170 | }
|
---|
| 171 | }
|
---|
| 172 | close ($ORIG) || die "Could not close file $sourcetable_orig: $!";
|
---|
| 173 | close ($NEW) || die "Could not close file $sourcetable_new: $!";
|
---|
| 174 |
|
---|
| 175 | print "INFO: New sourcetable $sourcetable_new created\n";
|
---|
| 176 | }
|
---|
| 177 |
|
---|
| 178 | __DATA__
|
---|
| 179 | ABMF00GLP
|
---|
| 180 | ABPO00MDG
|
---|
| 181 | ADIS00ETH
|
---|
| 182 | AGGO00ARG
|
---|
| 183 | AIRA00JPN
|
---|
| 184 | AJAC00FRA
|
---|
| 185 | ALBH00CAN
|
---|
| 186 | ALGO00CAN
|
---|
| 187 | ALIC00AUS
|
---|
| 188 | ALRT00CAN
|
---|
| 189 | AMC200USA
|
---|
| 190 | ANKR00TUR
|
---|
| 191 | ANMG00MYS
|
---|
| 192 | ANTC00CHL
|
---|
| 193 | AREG00PER
|
---|
| 194 | AREQ00PER
|
---|
| 195 | ARTU00RUS
|
---|
| 196 | ARUC00ARM
|
---|
| 197 | ASCG00SHN
|
---|
| 198 | ASPA00USA
|
---|
| 199 | AUCK00NZL
|
---|
| 200 | AZU100USA
|
---|
| 201 | BADG00RUS
|
---|
| 202 | BAIE00CAN
|
---|
| 203 | BAKE00CAN
|
---|
| 204 | BAKO00IDN
|
---|
| 205 | BAMF00CAN
|
---|
| 206 | BARH00USA
|
---|
| 207 | BHR300BHR
|
---|
| 208 | BHR400BHR
|
---|
| 209 | BIK000KGZ
|
---|
| 210 | BILL00USA
|
---|
| 211 | BJCO00BEN
|
---|
| 212 | BJFS00CHN
|
---|
| 213 | BJNM00CHN
|
---|
| 214 | BLYT00USA
|
---|
| 215 | BNOA00IDN
|
---|
| 216 | BOGI00POL
|
---|
| 217 | BOGT00COL
|
---|
| 218 | BOR100POL
|
---|
| 219 | BRAZ00BRA
|
---|
| 220 | BREW00USA
|
---|
| 221 | BRFT00BRA
|
---|
| 222 | BRMU00GBR
|
---|
| 223 | BRST00FRA
|
---|
| 224 | BRUN00BRN
|
---|
| 225 | BRUX00BEL
|
---|
| 226 | BSHM00ISR
|
---|
| 227 | BTNG00IDN
|
---|
| 228 | BUCU00ROU
|
---|
| 229 | BZRG00ITA
|
---|
| 230 | CAGS00CAN
|
---|
| 231 | CAS100ATA
|
---|
| 232 | CCJ200JPN
|
---|
| 233 | CEBR00ESP
|
---|
| 234 | CEDU00AUS
|
---|
| 235 | CGGN00NGA
|
---|
| 236 | CHAN00CHN
|
---|
| 237 | CHIL00USA
|
---|
| 238 | CHOF00JPN
|
---|
| 239 | CHPG00BRA
|
---|
| 240 | CHPI00BRA
|
---|
| 241 | CHTI00NZL
|
---|
| 242 | CHUM00KAZ
|
---|
| 243 | CHUR00CAN
|
---|
| 244 | CHWK00CAN
|
---|
| 245 | CIT100USA
|
---|
| 246 | CKIS00COK
|
---|
| 247 | CKSV00TWN
|
---|
| 248 | CLAR00USA
|
---|
| 249 | CMP900USA
|
---|
| 250 | CMUM00THA
|
---|
| 251 | CNMR00USA
|
---|
| 252 | COCO00AUS
|
---|
| 253 | CORD00ARG
|
---|
| 254 | COSO00USA
|
---|
| 255 | COTE00ATA
|
---|
| 256 | COYQ00CHL
|
---|
| 257 | CPNM00THA
|
---|
| 258 | CPVG00CPV
|
---|
| 259 | CRAO00UKR
|
---|
| 260 | CRFP00USA
|
---|
| 261 | CRO100VIR
|
---|
| 262 | CUSV00THA
|
---|
| 263 | CUT000AUS
|
---|
| 264 | CUUT00THA
|
---|
| 265 | CZTG00ATF
|
---|
| 266 | DAE200KOR
|
---|
| 267 | DAEJ00KOR
|
---|
| 268 | DAKR00SEN
|
---|
| 269 | DARW00AUS
|
---|
| 270 | DAV100ATA
|
---|
| 271 | DEAR00ZAF
|
---|
| 272 | DGAR00GBR
|
---|
| 273 | DHLG00USA
|
---|
| 274 | DJIG00DJI
|
---|
| 275 | DLF100NLD
|
---|
| 276 | DLTV00VNM
|
---|
| 277 | DRAG00ISR
|
---|
| 278 | DRAO00CAN
|
---|
| 279 | DUBO00CAN
|
---|
| 280 | DUM100ATA
|
---|
| 281 | DUND00NZL
|
---|
| 282 | DYNG00GRC
|
---|
| 283 | EBRE00ESP
|
---|
| 284 | EIL300USA
|
---|
| 285 | EIL400USA
|
---|
| 286 | EPRT00USA
|
---|
| 287 | ESCU00CAN
|
---|
| 288 | EUSM00MYS
|
---|
| 289 | FAA100PYF
|
---|
| 290 | FAIR00USA
|
---|
| 291 | FALE00WSM
|
---|
| 292 | FALK00FLK
|
---|
| 293 | FFMJ00DEU
|
---|
| 294 | FLIN00CAN
|
---|
| 295 | FLRS00PRT
|
---|
| 296 | FRDN00CAN
|
---|
| 297 | FTNA00WLF
|
---|
| 298 | FUNC00PRT
|
---|
| 299 | GAMB00PYF
|
---|
| 300 | GAMG00KOR
|
---|
| 301 | GANP00SVK
|
---|
| 302 | GCGO00USA
|
---|
| 303 | GENO00ITA
|
---|
| 304 | GLPS00ECU
|
---|
| 305 | GLSV00UKR
|
---|
| 306 | GMSD00JPN
|
---|
| 307 | GODE00USA
|
---|
| 308 | GODN00USA
|
---|
| 309 | GODS00USA
|
---|
| 310 | GODZ00USA
|
---|
| 311 | GOL200USA
|
---|
| 312 | GOLD00USA
|
---|
| 313 | GOP600CZE
|
---|
| 314 | GOP700CZE
|
---|
| 315 | GOPE00CZE
|
---|
| 316 | GOUG00SHN
|
---|
| 317 | GRAC00FRA
|
---|
| 318 | GRAS00FRA
|
---|
| 319 | GRAZ00AUT
|
---|
| 320 | GUAM00GUM
|
---|
| 321 | GUAO00CHN
|
---|
| 322 | GUAT00GTM
|
---|
| 323 | GUUG00GUM
|
---|
| 324 | HALY00SAU
|
---|
| 325 | HAMD00IRN
|
---|
| 326 | HARB00ZAF
|
---|
| 327 | HARV00USA
|
---|
| 328 | HERS00GBR
|
---|
| 329 | HERT00GBR
|
---|
| 330 | HKSL00HKG
|
---|
| 331 | HKWS00HKG
|
---|
| 332 | HLFX00CAN
|
---|
| 333 | HNLC00USA
|
---|
| 334 | HNPT00USA
|
---|
| 335 | HNUS00ZAF
|
---|
| 336 | HOB200AUS
|
---|
| 337 | HOFN00ISL
|
---|
| 338 | HOLB00CAN
|
---|
| 339 | HOLM00CAN
|
---|
| 340 | HOLP00USA
|
---|
| 341 | HRAG00ZAF
|
---|
| 342 | HRAO00ZAF
|
---|
| 343 | HUEG00DEU
|
---|
| 344 | HYDE00IND
|
---|
| 345 | IENG00ITA
|
---|
| 346 | IISC00IND
|
---|
| 347 | INEG00MEX
|
---|
| 348 | INVK00CAN
|
---|
| 349 | IQAL00CAN
|
---|
| 350 | IQQE00CHL
|
---|
| 351 | IRKJ00RUS
|
---|
| 352 | IRKM00RUS
|
---|
| 353 | IRKT00RUS
|
---|
| 354 | ISBA00IRQ
|
---|
| 355 | ISPA00CHL
|
---|
| 356 | ISTA00TUR
|
---|
| 357 | IZMI00TUR
|
---|
| 358 | JCTW00ZAF
|
---|
| 359 | JFNG00CHN
|
---|
| 360 | JNAV00VNM
|
---|
| 361 | JOG200IDN
|
---|
| 362 | JOZ200POL
|
---|
| 363 | JOZE00POL
|
---|
| 364 | JPLM00USA
|
---|
| 365 | JPRE00ZAF
|
---|
| 366 | KARR00AUS
|
---|
| 367 | KAT100AUS
|
---|
| 368 | KELY00GRL
|
---|
| 369 | KERG00ATF
|
---|
| 370 | KGNI00JPN
|
---|
| 371 | KHAR00UKR
|
---|
| 372 | KIR000SWE
|
---|
| 373 | KIR800SWE
|
---|
| 374 | KIRI00KIR
|
---|
| 375 | KIRU00SWE
|
---|
| 376 | KIT300UZB
|
---|
| 377 | KITG00UZB
|
---|
| 378 | KMNM00TWN
|
---|
| 379 | KOKB00USA
|
---|
| 380 | KOKV00USA
|
---|
| 381 | KOS100NLD
|
---|
| 382 | KOUC00NCL
|
---|
| 383 | KOUG00GUF
|
---|
| 384 | KOUR00GUF
|
---|
| 385 | KRGG00ATF
|
---|
| 386 | KRS100TUR
|
---|
| 387 | KSMV00JPN
|
---|
| 388 | KUNM00CHN
|
---|
| 389 | KUUJ00CAN
|
---|
| 390 | KZN200RUS
|
---|
| 391 | LAE100PNG
|
---|
| 392 | LAMA00POL
|
---|
| 393 | LAUT00FJI
|
---|
| 394 | LBCH00USA
|
---|
| 395 | LCK300IND
|
---|
| 396 | LCK400IND
|
---|
| 397 | LEIJ00DEU
|
---|
| 398 | LHAZ00CHN
|
---|
| 399 | LLAG00ESP
|
---|
| 400 | LMMF00MTQ
|
---|
| 401 | LPAL00ESP
|
---|
| 402 | LPGS00ARG
|
---|
| 403 | LROC00FRA
|
---|
| 404 | M0SE00ITA
|
---|
| 405 | MAC100AUS
|
---|
| 406 | MAD200ESP
|
---|
| 407 | MADR00ESP
|
---|
| 408 | MAG000RUS
|
---|
| 409 | MAJU00MHL
|
---|
| 410 | MAL200KEN
|
---|
| 411 | MANA00NIC
|
---|
| 412 | MAR600SWE
|
---|
| 413 | MAR700SWE
|
---|
| 414 | MARS00FRA
|
---|
| 415 | MAS100ESP
|
---|
| 416 | MAT100ITA
|
---|
| 417 | MATE00ITA
|
---|
| 418 | MATG00ITA
|
---|
| 419 | MAUI00USA
|
---|
| 420 | MAW100ATA
|
---|
| 421 | MAYG00MYT
|
---|
| 422 | MBAR00UGA
|
---|
| 423 | MCHL00AUS
|
---|
| 424 | MCIL00JPN
|
---|
| 425 | MCM400ATA
|
---|
| 426 | MDO100USA
|
---|
| 427 | MDVJ00RUS
|
---|
| 428 | MEDI00ITA
|
---|
| 429 | MELI00ESP
|
---|
| 430 | MERS00TUR
|
---|
| 431 | MET300FIN
|
---|
| 432 | METG00FIN
|
---|
| 433 | METS00FIN
|
---|
| 434 | MFKG00ZAF
|
---|
| 435 | MGUE00ARG
|
---|
| 436 | MIKL00UKR
|
---|
| 437 | MIZU00JPN
|
---|
| 438 | MKEA00USA
|
---|
| 439 | MOBJ00RUS
|
---|
| 440 | MOBK00RUS
|
---|
| 441 | MOBN00RUS
|
---|
| 442 | MOBS00AUS
|
---|
| 443 | MOIU00KEN
|
---|
| 444 | MONP00USA
|
---|
| 445 | MORP00GBR
|
---|
| 446 | MQZG00NZL
|
---|
| 447 | MRL100NZL
|
---|
| 448 | MRL200NZL
|
---|
| 449 | MRO100AUS
|
---|
| 450 | MTKA00JPN
|
---|
| 451 | MTV100URY
|
---|
| 452 | MTV200URY
|
---|
| 453 | NAIN00CAN
|
---|
| 454 | NAMA00SAU
|
---|
| 455 | NANO00CAN
|
---|
| 456 | NAUR00NRU
|
---|
| 457 | NCKU00TWN
|
---|
| 458 | NICO00CYP
|
---|
| 459 | NIST00USA
|
---|
| 460 | NIUM00NIU
|
---|
| 461 | NKLG00GAB
|
---|
| 462 | NLIB00USA
|
---|
| 463 | NNOR00AUS
|
---|
| 464 | NOT100ITA
|
---|
| 465 | NOVM00RUS
|
---|
| 466 | NRC100CAN
|
---|
| 467 | NRIL00RUS
|
---|
| 468 | NRL100USA
|
---|
| 469 | NRMD00NCL
|
---|
| 470 | NTUS00SGP
|
---|
| 471 | NURK00RWA
|
---|
| 472 | NVSK00RUS
|
---|
| 473 | NYA100NOR
|
---|
| 474 | NYA200NOR
|
---|
| 475 | NYAL00NOR
|
---|
| 476 | OAK100GBR
|
---|
| 477 | OAK200GBR
|
---|
| 478 | OBE400DEU
|
---|
| 479 | OHI200ATA
|
---|
| 480 | OHI300ATA
|
---|
| 481 | ONS100SWE
|
---|
| 482 | ONSA00SWE
|
---|
| 483 | OPMT00FRA
|
---|
| 484 | ORID00MKD
|
---|
| 485 | OSN300KOR
|
---|
| 486 | OSN400KOR
|
---|
| 487 | OUS200NZL
|
---|
| 488 | OWMG00NZL
|
---|
| 489 | PADO00ITA
|
---|
| 490 | PALM00ATA
|
---|
| 491 | PARC00CHL
|
---|
| 492 | PARK00AUS
|
---|
| 493 | PBRI00IND
|
---|
| 494 | PDEL00PRT
|
---|
| 495 | PEN200HUN
|
---|
| 496 | PENC00HUN
|
---|
| 497 | PERT00AUS
|
---|
| 498 | PETS00RUS
|
---|
| 499 | PGEN00PHL
|
---|
| 500 | PICL00CAN
|
---|
| 501 | PIE100USA
|
---|
| 502 | PIMO00PHL
|
---|
| 503 | PIN100USA
|
---|
| 504 | PNGM00PNG
|
---|
| 505 | POHN00FSM
|
---|
| 506 | POL200KGZ
|
---|
| 507 | POLV00UKR
|
---|
| 508 | POTS00DEU
|
---|
| 509 | POVE00BRA
|
---|
| 510 | PPPC00PHL
|
---|
| 511 | PRDS00CAN
|
---|
| 512 | PRE300ZAF
|
---|
| 513 | PRE400ZAF
|
---|
| 514 | PTAG00PHL
|
---|
| 515 | PTBB00DEU
|
---|
| 516 | PTGG00PHL
|
---|
| 517 | PTVL00VUT
|
---|
| 518 | QAQ100GRL
|
---|
| 519 | QIKI00CAN
|
---|
| 520 | QUI300ECU
|
---|
| 521 | QUI400ECU
|
---|
| 522 | QUIN00USA
|
---|
| 523 | RABT00MAR
|
---|
| 524 | RAEG00PRT
|
---|
| 525 | RAMO00ISR
|
---|
| 526 | RBAY00ZAF
|
---|
| 527 | RCMN00KEN
|
---|
| 528 | RDSD00DOM
|
---|
| 529 | RECF00BRA
|
---|
| 530 | REDU00BEL
|
---|
| 531 | RESO00CAN
|
---|
| 532 | REUN00REU
|
---|
| 533 | REYK00ISL
|
---|
| 534 | RGDG00ARG
|
---|
| 535 | RIGA00LVA
|
---|
| 536 | RIO200ARG
|
---|
| 537 | RIOP00ECU
|
---|
| 538 | ROAP00ESP
|
---|
| 539 | ROCK00USA
|
---|
| 540 | ROTH00ATA
|
---|
| 541 | SALU00BRA
|
---|
| 542 | SAMO00WSM
|
---|
| 543 | SANT00CHL
|
---|
| 544 | SASK00CAN
|
---|
| 545 | SASS00DEU
|
---|
| 546 | SAVO00BRA
|
---|
| 547 | SBOK00ZAF
|
---|
| 548 | SCH200CAN
|
---|
| 549 | SCIP00USA
|
---|
| 550 | SCOR00GRL
|
---|
| 551 | SCRZ00BOL
|
---|
| 552 | SCTB00ATA
|
---|
| 553 | SCUB00CUB
|
---|
| 554 | SEJN00KOR
|
---|
| 555 | SEY200SYC
|
---|
| 556 | SEYG00SYC
|
---|
| 557 | SFDM00USA
|
---|
| 558 | SFER00ESP
|
---|
| 559 | SGOC00LKA
|
---|
| 560 | SHAO00CHN
|
---|
| 561 | SHE200CAN
|
---|
| 562 | SIMO00ZAF
|
---|
| 563 | SIN100SGP
|
---|
| 564 | SMST00JPN
|
---|
| 565 | SNI100USA
|
---|
| 566 | SOD300FIN
|
---|
| 567 | SOFI00BGR
|
---|
| 568 | SOLA00SAU
|
---|
| 569 | SOLO00SLB
|
---|
| 570 | SPK100USA
|
---|
| 571 | SPT000SWE
|
---|
| 572 | SPTU00BRA
|
---|
| 573 | SSIA00SLV
|
---|
| 574 | STFU00USA
|
---|
| 575 | STHL00GBR
|
---|
| 576 | STJ300CAN
|
---|
| 577 | STJO00CAN
|
---|
| 578 | STK200JPN
|
---|
| 579 | STR100AUS
|
---|
| 580 | STR200AUS
|
---|
| 581 | SULP00UKR
|
---|
| 582 | SUTH00ZAF
|
---|
| 583 | SUTM00ZAF
|
---|
| 584 | SUWN00KOR
|
---|
| 585 | SVTL00RUS
|
---|
| 586 | SYDN00AUS
|
---|
| 587 | SYOG00ATA
|
---|
| 588 | TABL00USA
|
---|
| 589 | TANA00ETH
|
---|
| 590 | TASH00UZB
|
---|
| 591 | TCMS00TWN
|
---|
| 592 | TDOU00ZAF
|
---|
| 593 | TEHN00IRN
|
---|
| 594 | THTG00PYF
|
---|
| 595 | THTI00PYF
|
---|
| 596 | THU200GRL
|
---|
| 597 | THU300GRL
|
---|
| 598 | TID100AUS
|
---|
| 599 | TIDB00AUS
|
---|
| 600 | TIT200DEU
|
---|
| 601 | TIXI00RUS
|
---|
| 602 | TLSE00FRA
|
---|
| 603 | TLSG00FRA
|
---|
| 604 | TNML00TWN
|
---|
| 605 | TONG00TON
|
---|
| 606 | TORP00USA
|
---|
| 607 | TOW200AUS
|
---|
| 608 | TRAK00USA
|
---|
| 609 | TRO100NOR
|
---|
| 610 | TSK200JPN
|
---|
| 611 | TSKB00JPN
|
---|
| 612 | TUBI00TUR
|
---|
| 613 | TUVA00TUV
|
---|
| 614 | TWTF00TWN
|
---|
| 615 | UCAL00CAN
|
---|
| 616 | UCLP00USA
|
---|
| 617 | UCLU00CAN
|
---|
| 618 | UFPR00BRA
|
---|
| 619 | ULAB00MNG
|
---|
| 620 | ULDI00ZAF
|
---|
| 621 | UNB300CAN
|
---|
| 622 | UNBD00CAN
|
---|
| 623 | UNBJ00CAN
|
---|
| 624 | UNBN00CAN
|
---|
| 625 | UNSA00ARG
|
---|
| 626 | UNX200AUS
|
---|
| 627 | UNX300AUS
|
---|
| 628 | URUM00CHN
|
---|
| 629 | USN700USA
|
---|
| 630 | USN800USA
|
---|
| 631 | USN900USA
|
---|
| 632 | USNO00USA
|
---|
| 633 | USUD00JPN
|
---|
| 634 | UZHL00UKR
|
---|
| 635 | VACS00MUS
|
---|
| 636 | VALD00CAN
|
---|
| 637 | VESL00ATA
|
---|
| 638 | VILL00ESP
|
---|
| 639 | VIS000SWE
|
---|
| 640 | VNDP00USA
|
---|
| 641 | VOIM00MDG
|
---|
| 642 | WAB200CHE
|
---|
| 643 | WARK00NZL
|
---|
| 644 | WARN00DEU
|
---|
| 645 | WDC500USA
|
---|
| 646 | WDC600USA
|
---|
| 647 | WES200USA
|
---|
| 648 | WGTN00NZL
|
---|
| 649 | WHC100USA
|
---|
| 650 | WHIT00CAN
|
---|
| 651 | WIDC00USA
|
---|
| 652 | WILL00CAN
|
---|
| 653 | WIND00NAM
|
---|
| 654 | WLSN00USA
|
---|
| 655 | WROC00POL
|
---|
| 656 | WSRT00NLD
|
---|
| 657 | WTZ300DEU
|
---|
| 658 | WTZA00DEU
|
---|
| 659 | WTZR00DEU
|
---|
| 660 | WTZS00DEU
|
---|
| 661 | WTZZ00DEU
|
---|
| 662 | WUH200CHN
|
---|
| 663 | WUHN00CHN
|
---|
| 664 | XIAN00CHN
|
---|
| 665 | XMIS00AUS
|
---|
| 666 | YAKT00RUS
|
---|
| 667 | YAR200AUS
|
---|
| 668 | YAR300AUS
|
---|
| 669 | YARR00AUS
|
---|
| 670 | YEBE00ESP
|
---|
| 671 | YEL200CAN
|
---|
| 672 | YELL00CAN
|
---|
| 673 | YIBL00OMN
|
---|
| 674 | YKRO00CIV
|
---|
| 675 | YONS00KOR
|
---|
| 676 | YSSK00RUS
|
---|
| 677 | ZAMB00ZMB
|
---|
| 678 | ZECK00RUS
|
---|
| 679 | ZIM200CHE
|
---|
| 680 | ZIM300CHE
|
---|
| 681 | ZIMJ00CHE
|
---|
| 682 | ZIMM00CHE
|
---|
| 683 | ZWE200RUS
|
---|
| 684 |
|
---|