-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathCity.h
425 lines (365 loc) · 58.4 KB
/
City.h
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
/* City 09/06/2011
$$$$$$$$$$$$$$$$$$$$$$$
$ City.h - header $
$$$$$$$$$$$$$$$$$$$$$$$
by W.B. Yates
Copyright (c) W.B. Yates. All rights reserved.
History: Identifies a city (not an airport) using a large part of the IATA airport code list.
This class can represent 1935 distinct cities - most major cities of the world including capital cities and US state capitals.
This is enough to describe every city associated with a Market Identification Code (MIC).
Each IATA code corresponds to the city served by that airport.
https://www.iata.org/en/publications/directories/code-search/
https://en.wikipedia.org/wiki/IATA_airport_code
Latitude and longitude of cities (not airports) is provided for geograpical positioning and the calculation of distances between cities.
Geodetic distances (in metres) between points specified by latitude/longitude are calculated using the Vincenty method.
This class supports the 5 digit UN/LOCODE for most cities. For the 8 cities without a UN/LOCODE we have
used XXXXX or [country2code][mycity3code]. The city 'No City' has been assigned the code XXXXX.
Note the symbol [country2code]XXX is a valid location code and the symbol XXXXX is not an official UN/LOCODE
https://unece.org/trade/uncefact/unlocode
https://en.wikipedia.org/wiki/UN/LOCODE
City names have been harmonised with UN/LOCODE names and now have hyphens and apostrophes i.e "Val-d'Or"
but not diacritic signs (accents). Some names have been anglicised i.e. "Muenchen" -> "Munich".
For cities that do not have a suitable IATA code we use an invented city3code terminated by a '0' (see table below).
select city, city3code, country2code, locode from city where city3code like '%0' order by city;
+-------------------+-----------+--------------+--------+
| city | city3code | country2code | locode |
+-------------------+-----------+--------------+--------+
| Adamstown | PN0 | PN | PCN |
| GIFT City | GC0 | IN | XXX |
| Horsens | HS0 | DK | HOR |
| King Edward Point | GS0 | GS | XXX |
| Nabulus | PS0 | PS | NAB |
| Pasig City | PC0 | PH | PSG |
| Regensburg | RB0 | DE | REG |
| Vaduz | LI0 | LI | VDZ |
+-------------------+-----------+--------------+--------+
Some old '%0' 3 codes have been replaced with the location component of the relevant UN/LOCODE (as long
as it doesn't clash with an existing IATA code). These are:
+-------------------+--------------+------+--------+
| city | country2code | old | new |
+-------------------+--------------+------+--------+
| Abenra | DK | AB0 | AAB |
| Aylesbury | GB | AY0 | AYL |
| Esch-sur-Alzette | LU | EA0 | EZT |
| Ebene | MU | EB0 | EBN |
| Ecatepec | MX | EP0 | EPC |
| Espoo | FI | ES0 | ES2 |
| Foster City | US | FC0 | FCI |
| Gandhinagar | IN | GH0 | GDH |
| Grindsted | DK | GR0 | GRN |
| Greenwich | US | GW0 | GRH |
| Lucerne | CH | LU0 | LZN |
| Leuven | BE | LV0 | LEU |
| Makati City | PH | MC0 | MKC |
| Mill Valley | US | MV0 | VYV |
| Oldenburg | DE | OB0 | OLO |
| Randers | DK | RA0 | RAN |
| 's-Hertogenbosch | NL | SH0 | HTB |
| Silkeborg | DK | SI0 | SLB |
| Shimonoseki | JP | SK0 | SHS |
| San Marino City | SM | SM0 | SAI |
| Stamford | US | ST0 | XLX |
| Schwerin | DE | SW0 | SWR |
| Port-aux-Francais | TF | TF0 | PFR |
| Nukunonu | TK | TK0 | NKU |
| Vatican City | VA | VA0 | VAT |
| Vienna | US | VN0 | VIV |
| Varazdin | HR | VZ0 | VZN |
| Winter Park | US | WP0 | WPK |
+-------------------+--------------+------+--------+
Example
City x;
x.setCity( "USNYC" );
std::cout << x << std::endl;
std::cout << x.name() << std::endl;
std::cout << x.to3Code() << std::endl;
std::cout << x.to5Code() << std::endl;
std::cout << short(x) << std::endl;
std::cout << x.capital() << std::endl;
std::cout << "latitude = " << x.lat() << std::endl;
std::cout << "longitude = " << x.lon() << std::endl;
City y;
y.setCity( "LON" );
std::cout << y << std::endl;
std::cout << y.name() << std::endl;
std::cout << y.to3Code() << std::endl;
std::cout << y.to5Code() << std::endl;
std::cout << short(y) << std::endl;
std::cout << y.capital() << std::endl;
std::cout << "latitude = " << y.lat() << std::endl;
std::cout << "longitude = " << y.lon() << std::endl;
for (int i = 0; i < City::NUMCITY; ++i)
{
std::cout << City::index(i) << " " << City::index(i).name() << std::endl;
}
std::cout << "The distance between " << x.name() << " and " << y.name() << " is " << City::dist(x,y) / 1000.0 << " km" << std::endl;
exit(1);
*/
#ifndef __CITY_H__
#define __CITY_H__
#include <string>
#include <iostream>
#undef NAN // There is a CityCode 'NAN'
class City
{
public:
// The value of the enum elements are my arbitrary numeric code for each city.
// Note XXX, XXXXX, NOCITY, MAXCITY, NUMCITY and any city codes that terminates in a '0' are not IATA or UN codes.
enum CityCode : short { NOCITY = 0,
AAB = 1005, DKAAB = 1005, AAC = 1000, EGAAC = 1000, AAE = 1001, DZAAE = 1001, AAL = 1056, DKAAL = 1056, AAN = 1002, AEAAN = 1002, AAR = 1003, DKAAR = 1003, AAT = 1004, CNAAT = 1004, ABD = 1006, IRABD = 1006, ABE = 1007, USAWN = 1007, ABI = 1008, USABI = 1008,
ABJ = 1009, CIABJ = 1009, ABM = 1010, AUABM = 1010, ABQ = 1011, USABQ = 1011, ABR = 1012, USABR = 1012, ABS = 1013, EGABS = 1013, ABV = 1014, NGABV = 1014, ABX = 1015, AUABX = 1015, ABY = 1016, USALB = 1016, ABZ = 1017, GBABD = 1017, ACA = 1018, MXACA = 1018,
ACC = 1019, GHACC = 1019, ACE = 1020, ESACE = 1020, ACH = 1021, CHATR = 1021, ACI = 1022, GGACI = 1022, ACK = 1023, USACK = 1023, ACT = 1024, USACT = 1024, ACV = 1025, USEKA = 1025, ACY = 1026, USAIY = 1026, ADA = 1027, TRADA = 1027, ADD = 1028, ETADD = 1028,
ADE = 1029, YEADE = 1029, ADF = 1030, TRADI = 1030, ADL = 1031, AUADL = 1031, ADQ = 1032, USADQ = 1032, ADY = 1033, ZAADY = 1033, ADZ = 1034, COSAC = 1034, AEH = 1035, TDAEH = 1035, AER = 1036, RUAER = 1036, AES = 1037, NOAES = 1037, AGA = 1038, MAAGA = 1038,
AGB = 1039, DEAGB = 1039, AGP = 1040, ESAGP = 1040, AGS = 1041, USAGS = 1041, AGU = 1042, MXAGU = 1042, AGZ = 1043, ZAAGZ = 1043, AHB = 1044, SAKMX = 1044, AHN = 1045, USAHN = 1045, AHO = 1046, ITAHO = 1046, AHU = 1047, MAAHU = 1047, AJA = 1048, FRAJA = 1048,
AJF = 1049, SAAJF = 1049, AJN = 1050, KMAJN = 1050, AJU = 1051, BRAJU = 1051, AJY = 1052, NEAJY = 1052, AKL = 1053, NZAKL = 1053, AKN = 1054, USAKN = 1054, AKT = 1055, CYAKT = 1055, ALA = 1057, KZALA = 1057, ALB = 1058, USABY = 1058, ALC = 1059, ESALC = 1059,
ALF = 1060, NOALF = 1060, ALG = 1061, DZALG = 1061, ALH = 1062, AUALH = 1062, ALJ = 1063, ZAALJ = 1063, ALO = 1064, USALO = 1064, ALP = 1065, SYALP = 1065, ALV = 1066, ADALV = 1066, ALW = 1067, USALW = 1067, ALY = 1068, EGALY = 1068, AMA = 1069, USAMA = 1069,
AMD = 1070, INAMD = 1070, AMM = 1071, JOAMM = 1071, AMS = 1072, NLAMS = 1072, ANB = 1073, USANB = 1073, ANC = 1074, USANC = 1074, ANK = 1075, TRANK = 1075, ANP = 1076, USANP = 1076, ANR = 1077, BEANR = 1077, ANU = 1078, AGSJO = 1078, AOI = 1079, ITAOI = 1079,
AOJ = 1080, JPAOJ = 1080, AOK = 1081, GRAOK = 1081, AOO = 1082, USAOO = 1082, APF = 1083, USAPF = 1083, APW = 1084, WSAPW = 1084, AQJ = 1085, JOAQJ = 1085, ARB = 1086, USARB = 1086, ARH = 1087, RUARH = 1087, ARK = 1088, TZARK = 1088, ASB = 1089, TMAGT = 1089,
ASE = 1090, USASE = 1090, ASI = 1091, SHSHN = 1091, ASJ = 1092, JPASJ = 1092, ASK = 1093, CIASK = 1093, ASM = 1094, ERASM = 1094, ASP = 1095, AUASP = 1095, ASR = 1096, TRASR = 1096, ASU = 1097, PYASU = 1097, ASW = 1098, EGASW = 1098, ATH = 1099, GRATH = 1099,
ATL = 1100, USATL = 1100, ATO = 1101, USATO = 1101, ATQ = 1102, INATQ = 1102, ATW = 1103, USATW = 1103, ATY = 1104, USATY = 1104, ATZ = 1105, EGATZ = 1105, AUA = 1106, AWORJ = 1106, AUE = 1107, EGAUE = 1107, AUG = 1108, USAUG = 1108, AUH = 1109, AEAUH = 1109,
AUR = 1110, FRAUR = 1110, AUS = 1111, USAUS = 1111, AVL = 1112, USAEV = 1112, AVP = 1113, USWBE = 1113, AXA = 1114, AIVAL = 1114, AXS = 1115, USLTS = 1115, AXT = 1116, JPAXT = 1116, AYL = 1117, GBAYL = 1117, AYQ = 1118, AUAYQ = 1118, AYR = 1119, AUAYR = 1119,
AYT = 1120, TRAYT = 1120, AYU = 1121, PGAYU = 1121, AYW = 1122, IDAYW = 1122, AZB = 1123, PGAZB = 1123, AZO = 1124, USAZO = 1124, AZS = 1125, DOAZS = 1125, BAH = 1126, BHAMH = 1126, BAK = 1127, AZBAK = 1127, BAQ = 1128, COBAQ = 1128, BBI = 1129, INBBI = 1129,
BBR = 1130, GPBBR = 1130, BBT = 1131, CFBBT = 1131, BBU = 1249, ROBUH = 1249, BBY = 1132, CFBBY = 1132, BCN = 1133, ESBCN = 1133, BCO = 1134, ETBCO = 1134, BCT = 1135, USBCT = 1135, BCV = 1136, BZBMP = 1136, BDA = 1137, BMBDA = 1137, BDB = 1138, AUBDB = 1138,
BDL = 1139, USHFD = 1139, BDO = 1140, IDBDO = 1140, BDQ = 1141, INBRC = 1141, BDR = 1142, USBDR = 1142, BDS = 1143, ITBDS = 1143, BDU = 1144, NOBDU = 1144, BEB = 1145, GBBBC = 1145, BEG = 1146, RSBEG = 1146, BEH = 1147, USBEH = 1147, BEL = 1148, BRBEL = 1148,
BEN = 1149, LYBEN = 1149, BER = 1150, DEBER = 1150, BES = 1151, FRBES = 1151, BET = 1152, USBET = 1152, BEW = 1153, MZBEW = 1153, BEY = 1154, LBBEY = 1154, BFD = 1155, USBFD = 1155, BFL = 1156, USBFL = 1156, BFN = 1157, ZABFN = 1157, BFO = 1158, ZWBFO = 1158,
BFS = 1159, GBBEL = 1159, BGA = 1160, COBGA = 1160, BGF = 1161, CFBGF = 1161, BGI = 1162, BBBGI = 1162, BGM = 1163, USJOY = 1163, BGO = 1164, NOBGO = 1164, BGR = 1165, USBGR = 1165, BGU = 1166, CFBGU = 1166, BGW = 1167, IQBGW = 1167, BGY = 1168, ITBGO = 1168,
BHC = 1169, USIFP = 1169, BHE = 1170, NZBHE = 1170, BHM = 1171, USBHM = 1171, BHO = 1172, INBHO = 1172, BHQ = 1173, AUBHQ = 1173, BHV = 1174, PKBHV = 1174, BHX = 1175, GBBHM = 1175, BIA = 1176, FRBIA = 1176, BIL = 1177, USBIL = 1177, BIO = 1178, ESBIO = 1178,
BIQ = 1179, FRBIQ = 1179, BIS = 1180, USBIS = 1180, BIV = 1181, CFBIV = 1181, BJI = 1182, USBJI = 1182, BJL = 1183, GMBJL = 1183, BJM = 1184, BIBJM = 1184, BJS = 1185, CNBJS = 1185, BJV = 1186, TRBXN = 1186, BJX = 1187, MXLEN = 1187, BJZ = 1188, ESBJZ = 1188,
BKI = 1189, MYBKI = 1189, BKK = 1190, THBKK = 1190, BKO = 1191, MLBKO = 1191, BKW = 1192, USBKW = 1192, BKX = 1193, USBKX = 1193, BLA = 1194, VEBLA = 1194, BLF = 1195, USAFL = 1195, BLI = 1196, USBLI = 1196, BLK = 1197, GBBLK = 1197, BLL = 1198, DKBLL = 1198,
BLQ = 1199, ITBLQ = 1199, BLR = 1200, INBLR = 1200, BLT = 1201, AUBLT = 1201, BLZ = 1202, MWBLZ = 1202, BME = 1203, AUBME = 1203, BMG = 1204, USBMG = 1204, BMI = 1205, USB2L = 1205, BMP = 1206, AUBMP = 1206, BNA = 1207, USBNA = 1207, BNE = 1208, AUBNE = 1208,
BNJ = 1209, DEBON = 1209, BNK = 1210, AUBNK = 1210, BNN = 1211, NOBNN = 1211, BNP = 1212, PKBNP = 1212, BNX = 1213, BABNX = 1213, BOB = 1214, PFBOB = 1214, BOD = 1215, FRBOD = 1215, BOG = 1216, COBOG = 1216, BOH = 1217, GBBOH = 1217, BOI = 1218, USBOI = 1218,
BOJ = 1219, BGBOJ = 1219, BOM = 1220, INBOM = 1220, BON = 1221, BQKRA = 1221, BOO = 1222, NOBOO = 1222, BOS = 1223, USBOS = 1223, BOY = 1224, BFBOY = 1224, BPT = 1225, USBPT = 1225, BQK = 1226, USSSI = 1226, BQN = 1227, PRBQN = 1227, BRC = 1228, ARBRC = 1228,
BRD = 1229, USBRD = 1229, BRE = 1230, DEBRE = 1230, BRI = 1231, ITBRI = 1231, BRL = 1232, USBRL = 1232, BRN = 1233, CHBRN = 1233, BRR = 1234, GBBRR = 1234, BRS = 1235, GBBRS = 1235, BRU = 1236, BEBRU = 1236, BSB = 1237, BRBSB = 1237, BSL = 1238, CHBSL = 1238,
BSR = 1239, IQBSR = 1239, BTM = 1240, USBTM = 1240, BTR = 1241, USBTR = 1241, BTS = 1242, SKBTS = 1242, BTU = 1243, MYBTU = 1243, BTV = 1244, USBTV = 1244, BUD = 1245, HUBUD = 1245, BUE = 1246, ARBUE = 1246, BUF = 1247, USBUF = 1247, BUG = 1248, AOBUG = 1248,
BUQ = 1250, ZWBUQ = 1250, BUR = 1251, USBUR = 1251, BVB = 1252, BRBVB = 1252, BWI = 1253, USBAL = 1253, BWN = 1254, BNBWN = 1254, BWT = 1255, AUBWT = 1255, BXS = 1256, USBXS = 1256, BYK = 1257, CIBYK = 1257, BYU = 1258, DEBYU = 1258, BZE = 1259, BZBZE = 1259,
BZL = 1260, BDBZL = 1260, BZN = 1261, USBZN = 1261, BZV = 1262, CGBZV = 1262, CAB = 1263, AOCAB = 1263, CAE = 1264, USCAE = 1264, CAG = 1265, ITCAG = 1265, CAI = 1266, EGCAI = 1266, CAK = 1267, USAKH = 1267, CAL = 1268, GBCBT = 1268, CAN = 1269, CNGGZ = 1269,
CAS = 1270, MACAS = 1270, CAY = 1271, GFCAY = 1271, CBB = 1272, BOCBB = 1272, CBG = 1273, GBCMG = 1273, CBR = 1274, AUCBR = 1274, CBU = 1275, DECOT = 1275, CCJ = 1276, INCCJ = 1276, CCK = 1277, CCCCK = 1277, CCR = 1278, USCCR = 1278, CCS = 1279, VECCS = 1279,
CCU = 1280, INCCU = 1280, CCZ = 1281, BSCCZ = 1281, CDC = 1282, USCDC = 1282, CDV = 1283, USCDV = 1283, CEB = 1284, PHCEB = 1284, CEC = 1285, USCEC = 1285, CED = 1286, AUCED = 1286, CEN = 1287, MXCEN = 1287, CEQ = 1288, FRCEQ = 1288, CES = 1289, AUCES = 1289,
CFE = 1290, FRCFE = 1290, CFG = 1291, CUCFG = 1291, CFN = 1292, IECFN = 1292, CFS = 1293, AUCFS = 1293, CFU = 1294, GRCFU = 1294, CGA = 1295, USCGA = 1295, CGB = 1296, BRCBA = 1296, CGN = 1297, DECGN = 1297, CGO = 1298, CNZGZ = 1298, CGP = 1299, BDCGP = 1299,
CGQ = 1300, CNCGC = 1300, CGR = 1301, BRCGR = 1301, CGU = 1302, VECGU = 1302, CHA = 1303, USCHA = 1303, CHC = 1304, NZCHC = 1304, CHG = 1305, CNCYN = 1305, CHI = 1306, USCHI = 1306, CHO = 1307, USCHO = 1307, CHQ = 1308, GRCHQ = 1308, CHS = 1309, USCHS = 1309,
CIC = 1310, USCIC = 1310, CID = 1311, USCID = 1311, CIP = 1312, ZMCIP = 1312, CIW = 1313, VCCAN = 1313, CJB = 1314, INCJB = 1314, CJC = 1315, CLCJC = 1315, CJL = 1316, PKCJL = 1316, CJS = 1317, MXCJS = 1317, CKB = 1318, USCKB = 1318, CKG = 1319, CNCQI = 1319,
CKY = 1320, GNCKY = 1320, CLD = 1321, USCLD = 1321, CLE = 1322, USCLE = 1322, CLJ = 1323, ROCLJ = 1323, CLL = 1324, USCLL = 1324, CLM = 1325, USCLM = 1325, CLO = 1326, COCLO = 1326, CLQ = 1327, MXCOL = 1327, CLT = 1328, USCLT = 1328, CLY = 1329, FRCLY = 1329,
CMB = 1330, LKCMB = 1330, CME = 1331, MXCME = 1331, CMF = 1332, FRCMF = 1332, CMH = 1333, USCMH = 1333, CMI = 1334, USCMI = 1334, CMQ = 1335, AUCMQ = 1335, CMX = 1336, USCMX = 1336, CND = 1337, ROCND = 1337, CNF = 1338, BRBHZ = 1338, CNQ = 1339, ARCNQ = 1339,
CNS = 1340, AUCNS = 1340, CNX = 1341, THCNX = 1341, COD = 1342, USCOD = 1342, COK = 1343, INCOK = 1343, CON = 1344, USCON = 1344, COO = 1345, BJCOO = 1345, COR = 1346, ARCOR = 1346, COS = 1347, USCOS = 1347, CPD = 1348, AUCPD = 1348, CPH = 1349, DKCPH = 1349,
CPR = 1350, USCPR = 1350, CPT = 1351, ZACPT = 1351, CRF = 1352, CFCRF = 1352, CRG = 1762, USJAX = 1762, CRP = 1353, USCRP = 1353, CRW = 1354, USCRW = 1354, CSG = 1355, USCSG = 1355, CSI = 1356, AUCSI = 1356, CSN = 1357, USCSN = 1357, CST = 1358, FJCST = 1358,
CTA = 1359, ITCTA = 1359, CTG = 1360, COCTG = 1360, CTN = 1361, AUCTN = 1361, CTU = 1362, CNCDU = 1362, CUL = 1363, MXCUL = 1363, CUN = 1364, MXCUN = 1364, CUR = 1365, CWWIL = 1365, CUU = 1366, MXCUU = 1366, CVG = 1367, USCVG = 1367, CVM = 1368, MXCVM = 1368,
CVQ = 1369, AUCVQ = 1369, CVT = 1370, GBCVT = 1370, CWA = 1371, USAUW = 1371, CWB = 1372, BRCWB = 1372, CWL = 1373, GBCDF = 1373, CXI = 1374, KICXI = 1374, CXT = 1375, AUCXT = 1375, CYS = 1376, USCYS = 1376, CYU = 1377, PHCYU = 1377, CZA = 1378, MXCZA = 1378,
CZL = 1379, DZCZL = 1379, CZM = 1380, MXCZM = 1380, DAB = 1381, USDAB = 1381, DAC = 1382, BDDAC = 1382, DAL = 1383, USDAL = 1383, DAM = 1384, SYDAM = 1384, DAN = 1385, USDAN = 1385, DAR = 1386, TZDAR = 1386, DAY = 1387, USDAY = 1387, DBO = 1388, AUDBO = 1388,
DBQ = 1389, USDBQ = 1389, DBV = 1390, HRDBV = 1390, DBY = 1391, AUDBY = 1391, DCA = 1392, USWAS = 1392, DCF = 1393, DMRSU = 1393, DDI = 1394, AUDDI = 1394, DEC = 1395, USDEC = 1395, DEL = 1396, INICD = 1396, DEN = 1397, USDEN = 1397, DET = 1431, USDET = 1431,
DHA = 1398, SADHA = 1398, DHN = 1399, USDHN = 1399, DIL = 1400, TLDIL = 1400, DJB = 1401, IDDJB = 1401, DJE = 1402, TNDJE = 1402, DJJ = 1403, IDDJJ = 1403, DJO = 1404, CIDJO = 1404, DKI = 1405, AUDKI = 1405, DKR = 1406, SNDKR = 1406, DLA = 1407, CMDLA = 1407,
DLC = 1408, CNDAL = 1408, DLG = 1409, USDLG = 1409, DLH = 1410, USDLH = 1410, DLM = 1411, TRDLM = 1411, DLY = 1412, VUDLY = 1412, DMM = 1413, SADMM = 1413, DND = 1414, GBDUN = 1414, DNK = 1415, UADNK = 1415, DNR = 1416, FRDNR = 1416, DNZ = 1417, TRDNZ = 1417,
DOD = 1418, TZDOD = 1418, DOH = 1419, QADOH = 1419, DOM = 1420, DMDOM = 1420, DOV = 1421, USXEZ = 1421, DPO = 1422, AUDPO = 1422, DPS = 1423, IDDPS = 1423, DRB = 1424, AUDRB = 1424, DRO = 1425, USDRO = 1425, DRS = 1426, DEDRS = 1426, DRW = 1427, AUDRW = 1427,
DSK = 1428, PKDSK = 1428, DSM = 1429, USDSM = 1429, DTM = 1430, DEDTM = 1430, DUB = 1432, IEDUB = 1432, DUD = 1433, NZDUD = 1433, DUJ = 1434, USDUJ = 1434, DUR = 1435, ZADUR = 1435, DUS = 1436, DEDUS = 1436, DUT = 1437, USDUT = 1437, DVL = 1438, USDVL = 1438,
DXB = 1439, AEDXB = 1439, DYA = 1440, AUDYA = 1440, DYU = 1441, TJDYU = 1441, DZA = 1442, YTMAM = 1442, EAS = 1444, ESEAS = 1444, EAT = 1445, USEAT = 1445, EAU = 1446, USEAU = 1446, EBA = 1448, ITEBA = 1448, EBB = 1449, UGEBB = 1449, EBJ = 1450, DKEBJ = 1450,
EBN = 1447, MUEBN = 1447, EBU = 1451, FREBU = 1451, EDI = 1452, GBEDI = 1452, EGC = 1453, FREGC = 1453, EGE = 1454, USVAC = 1454, EGS = 1455, ISEGS = 1455, EIN = 1456, NLEIN = 1456, EIS = 1457, VGEIS = 1457, EKI = 1458, USEKI = 1458, EKO = 1459, USEKO = 1459,
ELH = 1460, BSELH = 1460, ELL = 1461, ZAELL = 1461, ELM = 1462, USELM = 1462, ELP = 1463, USELP = 1463, ELS = 1464, ZAELS = 1464, ELY = 1465, USELY = 1465, EMA = 1466, GBNTG = 1466, EMD = 1467, AUEMD = 1467, EMY = 1468, EGEMY = 1468, ENA = 1469, USENA = 1469,
ENC = 1470, FRENC = 1470, ENF = 1471, FIENF = 1471, EPC = 1472, MXEPC = 1472, EPR = 1473, AUEPR = 1473, ERC = 1474, TRERC = 1474, ERF = 1475, DEERF = 1475, ERI = 1476, USERI = 1476, ERZ = 1477, TRERZ = 1477, ES2 = 1478, FIES2 = 1478, ESC = 1479, USESC = 1479,
ESF = 1480, USESF = 1480, ESH = 1481, GBBSH = 1481, ESR = 1482, CLESR = 1482, ETH = 1483, ILETH = 1483, EUG = 1484, USEUG = 1484, EUN = 1485, EHEUN = 1485, EVE = 1486, NOEVE = 1486, EVN = 1487, AMEVN = 1487, EVV = 1488, USEVV = 1488, EWN = 1489, USEWN = 1489,
EWR = 1490, USJEC = 1490, EXT = 1491, GBEXE = 1491, EYW = 1492, USEYW = 1492, EZT = 1443, LUEZT = 1443, FAE = 1493, FOTOR = 1493, FAI = 1494, USFAI = 1494, FAO = 1495, PTFAO = 1495, FAR = 1496, USFAR = 1496, FAT = 1497, USFAT = 1497, FAY = 1498, USFBG = 1498,
FBM = 1499, CDFBM = 1499, FCA = 1501, USFCA = 1501, FCI = 1500, USFCI = 1500, FDF = 1502, MQFDF = 1502, FDH = 1503, DEFDH = 1503, FEZ = 1504, MAFEZ = 1504, FFT = 1505, USFFT = 1505, FHU = 1506, USFHU = 1506, FIE = 1507, GBFIE = 1507, FIH = 1508, CDFIH = 1508,
FJR = 1509, AEFJR = 1509, FKB = 1510, DEKAE = 1510, FKI = 1511, CDFKI = 1511, FKL = 1512, USFKL = 1512, FKS = 1513, JPFKF = 1513, FLG = 1514, USFLG = 1514, FLL = 1515, USFLL = 1515, FLN = 1516, BRFLN = 1516, FLO = 1517, USFLO = 1517, FLR = 1518, ITFLR = 1518,
FMN = 1519, USFMN = 1519, FMO = 1520, DEOSN = 1520, FMY = 1521, USFMY = 1521, FNA = 1522, SLFNA = 1522, FNC = 1523, PTFNC = 1523, FNI = 1524, FRFNI = 1524, FNJ = 1525, KPFNJ = 1525, FNT = 1526, USFNT = 1526, FOD = 1527, USFOD = 1527, FOE = 1528, USTOP = 1528,
FOR = 1529, BRFOR = 1529, FOU = 1530, GBFOA = 1530, FPO = 1531, BSFPO = 1531, FRA = 1532, DEFRA = 1532, FRI = 1533, USFRI = 1533, FRJ = 1534, FRFRJ = 1534, FRO = 1535, NOFRO = 1535, FRU = 1536, KGFRU = 1536, FRW = 1537, BWFRW = 1537, FSC = 1538, FRFSC = 1538,
FSD = 1539, USFSD = 1539, FSM = 1540, USFSM = 1540, FSP = 1541, PMFSP = 1541, FUE = 1542, ESFUE = 1542, FUK = 1543, JPFUK = 1543, FUN = 1544, TVFUN = 1544, FUT = 1545, WFFUT = 1545, FWA = 1546, USFWA = 1546, FYV = 1547, USFYV = 1547, GAD = 1548, USGAD = 1548,
GAJ = 1549, JPGAJ = 1549, GAU = 1550, INGAW = 1550, GBE = 1551, BWGBE = 1551, GC0 = 1552, INXXX = 1552, GCC = 1553, USGCC = 1553, GCI = 1554, GGSPT = 1554, GCM = 1555, KYGCM = 1555, GCN = 1556, USGCN = 1556, GDH = 1569, INGDH = 1569, GDL = 1557, MXGDL = 1557,
GDN = 1558, PLGDN = 1558, GDT = 1559, TCGDT = 1559, GDV = 1560, USGDV = 1560, GEG = 1561, USGEG = 1561, GEO = 1562, GYGEO = 1562, GET = 1563, AUGET = 1563, GEX = 1564, AUGEX = 1564, GFF = 1565, AUGFF = 1565, GFK = 1566, USGFK = 1566, GGG = 1567, USZLV = 1567,
GGW = 1568, USGSG = 1568, GHB = 1570, BSGHB = 1570, GIB = 1571, GIGIB = 1571, GIL = 1572, PKGIL = 1572, GJL = 1573, DZGJL = 1573, GJT = 1574, USGJT = 1574, GKL = 1575, AUGKL = 1575, GLA = 1576, GBGLW = 1576, GLH = 1577, USGLH = 1577, GLT = 1578, AUGLT = 1578,
GNB = 1579, FRGNB = 1579, GND = 1580, GDGND = 1580, GNE = 1581, BEGNE = 1581, GNV = 1582, USGNV = 1582, GOA = 1583, ITGOA = 1583, GOH = 1584, GLGOH = 1584, GOI = 1585, INGOI = 1585, GOJ = 1586, RUGOJ = 1586, GON = 1587, USZGO = 1587, GOO = 1588, AUGOO = 1588,
GOT = 1589, SEGOT = 1589, GOU = 1590, CMGOU = 1590, GOV = 1591, AUGOV = 1591, GOZ = 1592, BGGOZ = 1592, GPA = 1593, GRARX = 1593, GPT = 1594, USGPT = 1594, GPZ = 1595, USGPZ = 1595, GRB = 1597, USGRB = 1597, GRH = 1616, USGRH = 1616, GRJ = 1598, ZAGRJ = 1598,
GRN = 1596, DKGRN = 1596, GRO = 1599, ESGRO = 1599, GRQ = 1600, NLGRQ = 1600, GRR = 1601, USGRR = 1601, GRX = 1602, ESJAE = 1602, GRZ = 1603, ATGRZ = 1603, GS0 = 1604, GSXXX = 1604, GSI = 1605, SBGSI = 1605, GSO = 1606, USGBO = 1606, GSP = 1607, USGV9 = 1607,
GTE = 1608, AUGTE = 1608, GTF = 1609, USGTF = 1609, GTI = 1610, DEQGT = 1610, GTN = 1611, NZMON = 1611, GUA = 1612, GTGUA = 1612, GUC = 1613, USGUC = 1613, GUM = 1614, GUHGT = 1614, GVA = 1615, CHGVA = 1615, GWD = 1617, PKGWD = 1617, GWE = 1618, ZWGWE = 1618,
GWT = 1619, DEGWT = 1619, GWY = 1620, IEGWY = 1620, GYE = 1621, ECGYE = 1621, GYN = 1622, BRGYN = 1622, GYP = 1623, AUGYP = 1623, GZA = 1624, PSGZA = 1624, GZT = 1625, TRGZT = 1625, HAC = 1626, JPHAC = 1626, HAG = 1643, NLHAG = 1643, HAH = 1627, KMYVA = 1627,
HAJ = 1628, DEHAJ = 1628, HAM = 1629, DEHAM = 1629, HAN = 1630, VNHAN = 1630, HAP = 1631, AUWSI = 1631, HAR = 1632, USHAR = 1632, HAU = 1633, NOHAU = 1633, HAV = 1634, CUHAV = 1634, HBA = 1635, AUHBA = 1635, HDD = 1636, PKHDD = 1636, HDN = 1637, USSBS = 1637,
HDY = 1638, THHDY = 1638, HEL = 1639, FIHEL = 1639, HER = 1640, GRHER = 1640, HFA = 1641, ILHFA = 1641, HFT = 1642, NOHFT = 1642, HGH = 1644, CNHAZ = 1644, HGO = 1645, CIHGO = 1645, HHH = 1646, USHHH = 1646, HIB = 1647, USIBB = 1647, HII = 1648, USHII = 1648,
HIJ = 1649, JPHIJ = 1649, HIR = 1650, SBHIR = 1650, HIS = 1651, AUHIS = 1651, HKD = 1652, JPHKD = 1652, HKG = 1653, HKHKG = 1653, HKT = 1654, THHKT = 1654, HKY = 1655, USHKY = 1655, HLA = 1656, ZAHLA = 1656, HLH = 1657, CNHLH = 1657, HLN = 1658, USHLN = 1658,
HLT = 1659, AUHLT = 1659, HLZ = 1660, NZHLZ = 1660, HMO = 1662, MXHMO = 1662, HNA = 1663, JPMRW = 1663, HNH = 1664, USHNH = 1664, HNK = 1665, AUHNK = 1665, HNL = 1666, USHNL = 1666, HNS = 1667, USHNS = 1667, HOG = 1668, CUHOG = 1668, HOM = 1669, USHOM = 1669,
HON = 1670, USHON = 1670, HOQ = 1671, DEHOQ = 1671, HOR = 1672, PTHOR = 1672, HOU = 1673, USHOU = 1673, HPN = 1674, USWTS = 1674, HRB = 1675, CNHRN = 1675, HRE = 1676, ZWHRE = 1676, HRG = 1677, EGHRG = 1677, HRK = 1678, UAHRK = 1678, HRL = 1679, USHRL = 1679,
HS0 = 1680, DKHOR = 1680, HSV = 1681, USHSV = 1681, HTA = 1682, RUHTA = 1682, HTB = 2519, NLHTB = 2519, HTI = 1683, AUHTI = 1683, HTS = 1684, USHNU = 1684, HUF = 1685, USHUF = 1685, HUH = 1686, PFHUH = 1686, HUI = 1687, VNHUI = 1687, HUX = 1688, MXHTO = 1688,
HUY = 1689, GBHUY = 1689, HVB = 1690, AUHVB = 1690, HVN = 1691, USHVN = 1691, HVR = 1692, USHVR = 1692, HWN = 1693, ZWHWN = 1693, HYA = 1694, USHYA = 1694, HYD = 1695, INHYD = 1695, HYG = 1696, USHYG = 1696, IAG = 1697, USIAG = 1697, IBZ = 1698, ESIBZ = 1698,
ICN = 1699, KRINC = 1699, ICT = 1700, USICT = 1700, IDA = 1701, USIDA = 1701, IDR = 1702, INIDR = 1702, IEV = 1703, UAIEV = 1703, IFL = 1704, AUIFL = 1704, IGH = 1705, AUIGH = 1705, IGR = 1706, ARIGR = 1706, IJX = 1707, USIJX = 1707, IKT = 1708, RUIKT = 1708,
ILE = 1709, USILE = 1709, ILG = 1710, USILG = 1710, ILI = 1711, USILI = 1711, ILM = 1712, USILM = 1712, ILP = 1713, NCILP = 1713, ILY = 1714, GBISY = 1714, ILZ = 1715, SKILZ = 1715, IND = 1716, USIND = 1716, INI = 1717, RSINI = 1717, INL = 1718, USINL = 1718,
INN = 1719, ATINN = 1719, INU = 1720, NRYRN = 1720, INV = 1721, GBINV = 1721, IOM = 1722, IMDGS = 1722, IOU = 1723, NCIOU = 1723, IPC = 1724, CLIPC = 1724, IPL = 1725, USIDO = 1725, IPT = 1726, USIPT = 1726, IQT = 1727, PEIQT = 1727, IRG = 1728, AUIRG = 1728,
IRO = 1729, CFIRO = 1729, ISA = 1730, AUISA = 1730, ISB = 1731, PKISB = 1731, ISG = 1732, JPISG = 1732, ISL = 1733, USISN = 1733, ISO = 1734, USK5T = 1734, ISP = 1735, USXHO = 1735, IST = 1736, TRIST = 1736, ITH = 1737, USITH = 1737, ITO = 1738, USITO = 1738,
IUE = 1739, NUALO = 1739, IVC = 1740, NZIVC = 1740, IVL = 1741, FIIVL = 1741, IXB = 1742, INIXB = 1742, IXC = 1743, INIXC = 1743, IXG = 1744, INIXG = 1744, IXJ = 1745, INIXJ = 1745, IXR = 1746, INIXR = 1746, IXW = 1747, INIXW = 1747, IYK = 1748, USIYK = 1748,
IZM = 1749, TRADB = 1749, JAA = 1750, AFJAA = 1750, JAC = 1751, USJAC = 1751, JAD = 1752, AUJAD = 1752, JAF = 1753, LKJAF = 1753, JAG = 1754, PKJAG = 1754, JAI = 1755, INJAI = 1755, JAK = 1756, HTJAK = 1756, JAL = 1757, MXJAL = 1757, JAM = 1758, BGJAM = 1758,
JAN = 1759, USJAN = 1759, JAQ = 1760, PGJAQ = 1760, JAU = 1761, PEJAU = 1761, JBR = 1763, USJBR = 1763, JCB = 1764, BRJCB = 1764, JCK = 1765, AUJCK = 1765, JCM = 1766, BRJCA = 1766, JDF = 1767, BRJDF = 1767, JDH = 1768, INJDH = 1768, JDZ = 1769, CNJDZ = 1769,
JED = 1770, SAJED = 1770, JEE = 1771, HTJEE = 1771, JEF = 1772, USJEF = 1772, JER = 1773, JESTH = 1773, JGA = 1774, INJGA = 1774, JGB = 1775, INJGB = 1775, JGN = 1776, CNJGN = 1776, JGS = 1777, CNJIN = 1777, JHB = 1778, MYJHB = 1778, JHE = 1779, SEHEL = 1779,
JHG = 1780, CNJOG = 1780, JHM = 1781, USJHM = 1781, JHQ = 1782, AUJHQ = 1782, JHW = 1783, USJHW = 1783, JIB = 1784, DJJIB = 1784, JIJ = 1785, ETJIJ = 1785, JIL = 1786, CNJIL = 1786, JIM = 1787, ETJIM = 1787, JIN = 1788, UGJIN = 1788, JIP = 1789, ECJIP = 1789,
JIR = 1790, NPJIR = 1790, JIU = 1791, CNJIU = 1791, JIW = 1792, PKJIW = 1792, JJI = 1793, PEJJI = 1793, JJN = 1794, CNJJI = 1794, JKG = 1795, SEJKG = 1795, JKH = 1796, GRJKH = 1796, JKR = 1797, NPJKR = 1797, JKT = 1798, IDJKT = 1798, JKV = 1799, USJKV = 1799,
JLN = 1800, USJLN = 1800, JLR = 1801, INJUC = 1801, JLS = 1802, BRJLS = 1802, JMB = 1803, AOJMB = 1803, JMK = 1804, GRJMK = 1804, JMO = 1805, NPJMO = 1805, JMS = 1806, USJMS = 1806, JMU = 1807, CNJMU = 1807, JNA = 1808, BRJNA = 1808, JNB = 1809, ZAJNB = 1809,
JNG = 1810, CNJNG = 1810, JNI = 1811, ARJNI = 1811, JNU = 1812, USJNU = 1812, JNX = 1813, GRJNX = 1813, JNZ = 1814, CNJZI = 1814, JOE = 1815, FIJOE = 1815, JOI = 1816, BRJOI = 1816, JOL = 1817, PHJOL = 1817, JON = 1818, UMJON = 1818, JOS = 1819, NGJOS = 1819,
JPA = 1820, BRJPA = 1820, JQE = 1821, PAJQE = 1821, JRH = 1822, INJRH = 1822, JRO = 1823, TZJRO = 1823, JRS = 1828, ILXXX = 1828, JSA = 1825, INJSA = 1825, JSI = 1826, GRJSI = 1826, JSM = 1827, ARJSM = 1827, JST = 1829, USJST = 1829, JTI = 1830, BRJTI = 1830,
JTR = 1831, GRJTR = 1831, JUB = 1832, SSJUB = 1832, JUI = 1833, DEJUI = 1833, JUJ = 1834, ARJUJ = 1834, JUL = 1835, PEJUL = 1835, JUM = 1836, NPJUM = 1836, JUN = 1837, AUJUN = 1837, JUT = 1838, HNJUT = 1838, JUV = 1839, GLJUV = 1839, JVL = 1840, USJVL = 1840,
JWA = 1841, BWJWA = 1841, JXN = 1842, USJXN = 1842, JYV = 1843, FIJYV = 1843, KAJ = 1844, FIKAJ = 1844, KAN = 1845, NGKAN = 1845, KAO = 1846, FIKAO = 1846, KBL = 1847, AFKBL = 1847, KBY = 1848, AUKBY = 1848, KCC = 1849, USKCC = 1849, KCE = 1850, AUKCE = 1850,
KCH = 1851, MYKCH = 1851, KCM = 1852, TRKCM = 1852, KCZ = 1853, JPKCZ = 1853, KDD = 1854, PKKDD = 1854, KDU = 1855, PKKDU = 1855, KEL = 1856, DEKEL = 1856, KEM = 1857, FIKEM = 1857, KGC = 1858, AUKGC = 1858, KGD = 1859, RUKGD = 1859, KGI = 1860, AUKGI = 1860,
KGL = 1861, RWKGL = 1861, KGS = 1862, GRKGS = 1862, KHH = 1863, TWKHH = 1863, KHI = 1864, PKKHI = 1864, KHJ = 1865, FIKHJ = 1865, KHV = 1866, RUKHV = 1866, KID = 1867, SEKID = 1867, KIJ = 1868, JPKIJ = 1868, KIK = 1869, IQKIK = 1869, KIM = 1870, ZAKIM = 1870,
KIN = 1871, JMKIN = 1871, KIR = 1872, IEKIR = 1872, KIV = 1873, MDKIV = 1873, KIW = 1874, ZMKIW = 1874, KKN = 1875, NOKKN = 1875, KLA = 1876, UGKLA = 1876, KLR = 1877, SEKLR = 1877, KLU = 1878, ATKLU = 1878, KLW = 1879, USKLW = 1879, KLX = 1880, GRKLX = 1880,
KLZ = 1881, ZAKLZ = 1881, KMI = 1882, JPKMI = 1882, KMJ = 1883, JPKMJ = 1883, KMP = 1884, NAKMP = 1884, KMQ = 1885, JPKMQ = 1885, KNS = 1886, AUKNS = 1886, KNU = 1887, INKNU = 1887, KNX = 1888, AUKNX = 1888, KOA = 1889, USKHH = 1889, KOI = 1890, GBKWL = 1890,
KOJ = 1891, JPKOJ = 1891, KOK = 1892, FIKOK = 1892, KRB = 1893, AUKRB = 1893, KRK = 1894, PLKRK = 1894, KRN = 1895, SEKRN = 1895, KRP = 1896, DKKRP = 1896, KRS = 1897, NOKRS = 1897, KRT = 1898, SDKRT = 1898, KSD = 1899, SEKSD = 1899, KSL = 1900, SDKSL = 1900,
KSU = 1901, NOKSU = 1901, KTA = 1902, AUKTA = 1902, KTB = 1903, USKTB = 1903, KTM = 1904, NPKTM = 1904, KTN = 1905, USKTN = 1905, KTR = 1906, AUKTR = 1906, KTT = 1907, FIKTT = 1907, KUA = 1908, MYKUA = 1908, KUF = 1909, RUKUF = 1909, KUH = 1910, JPKUH = 1910,
KUL = 1911, MYKUL = 1911, KUO = 1912, FIKUO = 1912, KVA = 1913, GRKVA = 1913, KWI = 1914, KWKWI = 1914, KWL = 1915, CNGUI = 1915, KWM = 1916, AUKWM = 1916, KYA = 1917, TRKYA = 1917, KYS = 1918, TRKSY = 1918, KZN = 1919, RUKZN = 1919, LAD = 1920, AOLAD = 1920,
LAE = 1921, PGLAE = 1921, LAF = 1922, USLAF = 1922, LAI = 1923, FRLAI = 1923, LAN = 1924, USLAN = 1924, LAP = 1925, MXLAP = 1925, LAR = 1926, USLAR = 1926, LAS = 1927, USLAS = 1927, LAW = 1928, USLAW = 1928, LAX = 1929, USLAX = 1929, LBA = 1930, GBLBA = 1930,
LBB = 1931, USLBB = 1931, LBE = 1932, USLBE = 1932, LBI = 1933, FRBBI = 1933, LBQ = 1934, GALBQ = 1934, LBU = 1935, MYLBU = 1935, LBV = 1936, GALBV = 1936, LCA = 1937, CYLCA = 1937, LCG = 1938, ESLCG = 1938, LCH = 1939, USLCH = 1939, LDC = 1940, AULDC = 1940,
LDE = 1941, FRLDE = 1941, LDK = 1942, SELDK = 1942, LDY = 1943, GBLDY = 1943, LEA = 1944, AULEA = 1944, LEB = 1945, USLN7 = 1945, LED = 1946, RULED = 1946, LEI = 1947, ESLEI = 1947, LEJ = 1948, DELEJ = 1948, LEK = 1949, GNLEK = 1949, LEQ = 1950, GBLEQ = 1950,
LER = 1951, AULER = 1951, LEU = 2008, BELEU = 2008, LEX = 1952, USLEX = 1952, LEY = 1953, NLLEY = 1953, LFT = 1954, USLFT = 1954, LFW = 1955, TGLFW = 1955, LGB = 1956, USLGB = 1956, LGG = 1957, BELGG = 1957, LGK = 1958, MYLGK = 1958, LHE = 1959, PKLHE = 1959,
LI0 = 1960, LIVDZ = 1960, LIF = 1961, NCLIF = 1961, LIG = 1962, FRLIG = 1962, LIH = 1963, USLIU = 1963, LIJ = 1964, USLIJ = 1964, LIL = 1965, FRLLE = 1965, LIM = 1966, PELIM = 1966, LIQ = 1967, CDLIQ = 1967, LIS = 1968, PTLIS = 1968, LIT = 1969, USLIT = 1969,
LJU = 1970, SILJU = 1970, LKL = 1971, NOLKL = 1971, LKO = 1972, INLKO = 1972, LLA = 1973, SELLA = 1973, LLW = 1974, MWLLW = 1974, LMM = 1975, MXLMM = 1975, LMP = 1976, ITLMP = 1976, LMT = 1977, USLMT = 1977, LNK = 1978, USLNK = 1978, LNO = 1979, AULNO = 1979,
LNS = 1980, USLNS = 1980, LNY = 1981, USLNY = 1981, LNZ = 1982, ATLNZ = 1982, LON = 1983, GBLON = 1983, LOS = 1984, NGLOS = 1984, LPA = 1985, ESLPG = 1985, LPB = 1986, BOLPB = 1986, LPL = 1987, GBLIV = 1987, LPP = 1988, FILPP = 1988, LRD = 1989, USLRD = 1989,
LRE = 1990, AULRE = 1990, LRF = 1991, USLRF = 1991, LRH = 1992, FRLRH = 1992, LRM = 1993, DOCDC = 1993, LRT = 1994, FRLRT = 1994, LSE = 1995, USLSE = 1995, LSI = 1996, GBLSI = 1996, LST = 1997, AULST = 1997, LSY = 1998, AULSY = 1998, LSZ = 1999, HRVLN = 1999,
LTO = 2000, MXLRO = 2000, LUD = 2002, NALUD = 2002, LUG = 2003, CHLUG = 2003, LUJ = 2004, ZALUJ = 2004, LUM = 2005, CNLUM = 2005, LUN = 2006, ZMLUN = 2006, LUX = 2007, LULUX = 2007, LVO = 2009, AULVO = 2009, LWB = 2010, USLWB = 2010, LWK = 2011, GBLER = 2011,
LWO = 2012, UALWO = 2012, LWS = 2013, USLWS = 2013, LWT = 2014, USLWT = 2014, LXR = 2015, EGLXR = 2015, LYH = 2016, USLYH = 2016, LYO = 2017, USLYO = 2017, LYP = 2018, PKLYP = 2018, LYR = 2019, SJLYR = 2019, LYS = 2020, FRLIO = 2020, LYX = 2021, GBLYX = 2021,
LZC = 2022, MXLZC = 2022, LZN = 2001, CHLZN = 2001, LZR = 2023, AULZR = 2023, MAA = 2024, INMAA = 2024, MAD = 2025, ESMAD = 2025, MAF = 2026, USMAF = 2026, MAH = 2027, ESMAH = 2027, MAJ = 2028, MHMAJ = 2028, MAN = 2029, GBMNC = 2029, MAO = 2030, BRMAO = 2030,
MAR = 2031, VEMAR = 2031, MAU = 2032, PFMAU = 2032, MAZ = 2033, PRMAZ = 2033, MBA = 2034, KEMBA = 2034, MBH = 2035, AUMBH = 2035, MBJ = 2036, JMMBJ = 2036, MBM = 2037, ZAMBM = 2037, MBS = 2038, USSGM = 2038, MBX = 2039, SIMBX = 2039, MCE = 2041, USMCE = 2041,
MCI = 2042, USMKC = 2042, MCL = 2043, USMCL = 2043, MCM = 2044, MCMON = 2044, MCN = 2045, USMCN = 2045, MCO = 2267, USORL = 2267, MCP = 2046, BRMCA = 2046, MCT = 2047, OMMCT = 2047, MCW = 2048, USMCW = 2048, MCY = 2049, AUMCY = 2049, MCZ = 2050, BRMCZ = 2050,
MDC = 2051, IDMDC = 2051, MDE = 2052, COMDE = 2052, MDL = 2053, MMMDL = 2053, MDQ = 2054, ARMDQ = 2054, MDY = 2055, UMMDY = 2055, MDZ = 2056, ARMDZ = 2056, MED = 2057, SAMED = 2057, MEE = 2058, NCMEE = 2058, MEI = 2059, USMEI = 2059, MEL = 2060, AUMEL = 2060,
MEM = 2061, USMEM = 2061, MES = 2062, IDMES = 2062, MEX = 2063, MXMEX = 2063, MEZ = 2064, ZAMEZ = 2064, MFE = 2065, USTXC = 2065, MFF = 2066, GAMFF = 2066, MFG = 2067, PKMFG = 2067, MFM = 2068, MOMFM = 2068, MFN = 2069, NZMFN = 2069, MFO = 2070, PGMFO = 2070,
MFQ = 2071, NEMFQ = 2071, MFR = 2072, USMFR = 2072, MFU = 2073, ZMMFU = 2073, MGA = 2074, NIMGA = 2074, MGB = 2075, AUMGB = 2075, MGF = 2076, BRMGF = 2076, MGH = 2077, ZAMGH = 2077, MGM = 2078, USMGM = 2078, MGQ = 2079, SOMGQ = 2079, MGW = 2080, USMGW = 2080,
MHE = 2081, USMHE = 2081, MHH = 2082, BSMHH = 2082, MHQ = 2083, AXMHQ = 2083, MHT = 2084, USMHT = 2084, MIA = 2085, USMIA = 2085, MID = 2086, MXMID = 2086, MIK = 2087, FIMIK = 2087, MIL = 2088, ITMIL = 2088, MIM = 2089, AUMIM = 2089, MIR = 2090, TNMIR = 2090,
MJC = 2091, CIMJC = 2091, MJD = 2092, PKMJD = 2092, MJL = 2093, GAMJL = 2093, MJN = 2094, MGMJN = 2094, MJQ = 2095, USMJQ = 2095, MJT = 2096, GRMJT = 2096, MJV = 2097, ESMJV = 2097, MKC = 2040, PHMKC = 2040, MKE = 2098, USMKE = 2098, MKG = 2099, USMKG = 2099,
MKK = 2100, USKUA = 2100, MKL = 2101, USMKL = 2101, MKR = 2102, AUMKR = 2102, MKY = 2103, AUMKY = 2103, MLA = 2104, MTMLA = 2104, MLB = 2105, USMLB = 2105, MLE = 2106, MVMLE = 2106, MLH = 2107, FRMLH = 2107, MLI = 2108, USMLI = 2108, MLM = 2109, MXMLM = 2109,
MLS = 2110, USMLS = 2110, MLU = 2111, USMLU = 2111, MLW = 2112, LRMLW = 2112, MLX = 2113, TRMLX = 2113, MMA = 2119, SEMMA = 2119, MME = 2114, GBMME = 2114, MMG = 2115, AUMMG = 2115, MMJ = 2116, JPMMJ = 2116, MMK = 2117, RUMMK = 2117, MMM = 2118, AUMMM = 2118,
MMY = 2120, JPMMY = 2120, MNI = 2121, MSBRD = 2121, MNL = 2122, PHMNL = 2122, MOB = 2123, USMOB = 2123, MOD = 2124, USMOD = 2124, MOT = 2125, USMOT = 2125, MOV = 2126, AUMOV = 2126, MOW = 2127, RUMOW = 2127, MOZ = 2128, PFMOZ = 2128, MPA = 2129, NAKAT = 2129,
MPD = 2130, PKMPD = 2130, MPL = 2131, FRMPL = 2131, MPM = 2132, MZMPM = 2132, MQL = 2133, AUMQL = 2133, MQM = 2134, TRMDN = 2134, MQQ = 2135, TDMQQ = 2135, MQT = 2136, USMQT = 2136, MRB = 2137, USMRB = 2137, MRS = 2138, FRMRS = 2138, MRU = 2139, MUPLU = 2139,
MRV = 2140, RUMRV = 2140, MRY = 2141, USMY3 = 2141, MRZ = 2142, AUMRZ = 2142, MSE = 2143, GBKNM = 2143, MSL = 2144, USUSH = 2144, MSN = 2145, USMSN = 2145, MSO = 2146, USMSO = 2146, MSP = 2147, USMES = 2147, MSQ = 2148, BYMSQ = 2148, MSR = 2149, TRMSR = 2149,
MST = 2150, NLMST = 2150, MSU = 2151, LSMSU = 2151, MSY = 2152, USMSY = 2152, MTH = 2153, USMTH = 2153, MTJ = 2154, USMTJ = 2154, MTL = 2155, AUMTL = 2155, MTM = 2156, USMTM = 2156, MTO = 2157, USMTO = 2157, MTS = 2158, SZMTS = 2158, MTT = 2159, MXMTT = 2159,
MTY = 2160, MXMTY = 2160, MUB = 2161, BWMUB = 2161, MUC = 2162, DEMUC = 2162, MUE = 2163, USMUE = 2163, MUH = 2164, EGMUH = 2164, MUX = 2165, PKMUX = 2165, MVB = 2167, GAMVE = 2167, MVD = 2168, UYMVD = 2168, MVR = 2169, CMMVR = 2169, MVY = 2170, USMVY = 2170,
MVZ = 2171, ZWMVZ = 2171, MWD = 2172, PKMWD = 2172, MWH = 2173, USMWH = 2173, MXL = 2174, MXMXL = 2174, MYA = 2175, AUMYA = 2175, MYD = 2176, KEMYD = 2176, MYJ = 2177, JPMYJ = 2177, MYQ = 2178, INMYQ = 2178, MYR = 2179, USMYR = 2179, MYY = 2180, MYMYY = 2180,
MZF = 2181, ZAMZF = 2181, MZG = 2182, TWMZG = 2182, MZM = 2183, FRMZM = 2183, MZT = 2184, MXMZT = 2184, MZY = 2185, ZAMZY = 2185, NAA = 2186, AUNAA = 2186, NAG = 2187, INNAG = 2187, NAJ = 2188, AZNAJ = 2188, NAN = 2189, FJNAN = 2189, NAP = 2190, ITNAP = 2190,
NAS = 2191, BSNAS = 2191, NAT = 2192, BRNAT = 2192, NBO = 2193, KENBO = 2193, NCE = 2194, FRNCE = 2194, NCL = 2195, GBNCS = 2195, NCS = 2196, ZANCS = 2196, NCY = 2197, FRNCY = 2197, NDB = 2198, MRNDB = 2198, NDJ = 2199, TDNDJ = 2199, NDU = 2200, NANDU = 2200,
NEV = 2201, KNNEV = 2201, NGE = 2202, CMNGE = 2202, NGO = 2203, JPNGO = 2203, NGS = 2204, JPNGS = 2204, NIC = 2205, CYNIC = 2205, NIM = 2206, NENIM = 2206, NKC = 2207, MRNKC = 2207, NKU = 2659, TKNKU = 2659, NKW = 2208, IODGA = 2208, NLA = 2209, ZMNLA = 2209,
NLD = 2210, MXNLD = 2210, NLK = 2211, NFNLK = 2211, NLP = 2212, ZANLP = 2212, NLV = 2213, UANLV = 2213, NNG = 2214, CNNIN = 2214, NOC = 2215, IENOC = 2215, NOP = 2216, PHNOP = 2216, NOU = 2217, NCNOU = 2217, NQY = 2218, GBNQY = 2218, NRA = 2219, AUNRA = 2219,
NRK = 2220, SENRK = 2220, NSA = 2221, AUNSA = 2221, NSN = 2222, NZNSN = 2222, NSO = 2223, AUNSO = 2223, NST = 2224, THNKT = 2224, NTE = 2225, FRNTE = 2225, NTL = 2226, AUNTL = 2226, NTY = 2227, ZAPIB = 2227, NUE = 2228, DENUE = 2228, NWI = 2229, GBNRW = 2229,
NYC = 2230, USNYC = 2230, OAG = 2231, AUOAG = 2231, OAJ = 2232, USOAJ = 2232, OAK = 2233, USOAK = 2233, OAX = 2234, MXOAX = 2234, ODA = 2236, CFODA = 2236, ODB = 2237, ESODB = 2237, ODE = 2238, DKODE = 2238, ODS = 2239, UAODS = 2239, OGG = 2240, USOGG = 2240,
OHD = 2241, MKOHD = 2241, OHT = 2242, PKOHT = 2242, OIT = 2243, JPOIT = 2243, OKA = 2244, JPOKA = 2244, OKC = 2245, USOKC = 2245, OKD = 2246, JPSPK = 2246, OKJ = 2247, JPOKJ = 2247, OKU = 2248, NAOKU = 2248, OLB = 2249, ITOLB = 2249, OLF = 2250, USOLF = 2250,
OLM = 2251, USOLM = 2251, OLO = 2235, DEOLO = 2235, OLP = 2252, AUOLP = 2252, OMA = 2253, USOMA = 2253, OMD = 2254, NAOMD = 2254, OME = 2255, USOME = 2255, OMH = 2256, IRUIM = 2256, OMO = 2257, BAOMO = 2257, OND = 2258, NAOND = 2258, ONT = 2259, USONT = 2259,
OOL = 2260, AUGOC = 2260, OOM = 2261, AUCOM = 2261, OPO = 2262, PTOPO = 2262, ORB = 2263, SEORB = 2263, ORF = 2264, USORF = 2264, ORH = 2265, USORH = 2265, ORK = 2266, IEORK = 2266, ORN = 2268, DZORN = 2268, ORS = 2269, AUORS = 2269, OSA = 2270, JPOSA = 2270,
OSH = 2271, USOSH = 2271, OSI = 2272, HROSI = 2272, OSL = 2273, NOOSL = 2273, OSM = 2274, IQOSM = 2274, OTH = 2275, USOTH = 2275, OTZ = 2276, USOTZ = 2276, OUA = 2277, BFOUA = 2277, OUD = 2278, MAOUD = 2278, OUH = 2279, ZAOUH = 2279, OUK = 2280, GBOUK = 2280,
OUL = 2281, FIOUL = 2281, OUZ = 2282, MROUZ = 2282, OVB = 2283, RUOVB = 2283, OVD = 2284, ESOVO = 2284, OWB = 2285, USOWB = 2285, OXB = 2286, GWOXB = 2286, OXR = 2287, USOXN = 2287, OZZ = 2288, MAOZZ = 2288, PAC = 2289, PAPAC = 2289, PAD = 2290, DEPAD = 2290,
PAH = 2291, USPAH = 2291, PAP = 2292, HTPAP = 2292, PAR = 2293, FRPAR = 2293, PAT = 2294, INPAT = 2294, PBC = 2295, MXPBC = 2295, PBH = 2296, BTTHI = 2296, PBI = 2297, USPBI = 2297, PBM = 2298, SRPBM = 2298, PBO = 2299, AUPBO = 2299, PBZ = 2300, ZAPBZ = 2300,
PC0 = 2301, PHPSG = 2301, PCT = 2302, USPCT = 2302, PDL = 2303, PTPDL = 2303, PDT = 2304, USPDT = 2304, PDX = 2305, USPDX = 2305, PEG = 2306, ITPEG = 2306, PEI = 2307, COPEI = 2307, PEN = 2308, MYPEN = 2308, PER = 2309, AUPER = 2309, PEW = 2310, PKPEW = 2310,
PFN = 2311, USPFN = 2311, PFO = 2312, CYPFO = 2312, PFR = 2644, TFPFR = 2644, PGA = 2313, USPGA = 2313, PGF = 2314, FRPGF = 2314, PGV = 2315, USPGV = 2315, PHC = 2316, NGPHC = 2316, PHE = 2317, AUPHE = 2317, PHF = 2318, USNNS = 2318, PHL = 2319, USPHL = 2319,
PHW = 2320, ZAPHW = 2320, PHX = 2321, USPHX = 2321, PIA = 2322, USPIA = 2322, PIB = 2323, USLUL = 2323, PIH = 2324, USPIH = 2324, PIR = 2325, USPIR = 2325, PIS = 2326, FRPIS = 2326, PIT = 2327, USPIT = 2327, PJG = 2328, PKPJG = 2328, PKB = 2329, USPKB = 2329,
PKW = 2330, BWPKW = 2330, PLB = 2331, USPLB = 2331, PLN = 2332, USPXN = 2332, PLO = 2333, AUPLO = 2333, PLZ = 2334, ZAPLZ = 2334, PMD = 2335, USQPL = 2335, PMI = 2336, ESPMI = 2336, PMO = 2337, ITPMO = 2337, PMR = 2338, NZPMR = 2338, PMV = 2339, VEMGT = 2339,
PMW = 2340, BRPMW = 2340, PN0 = 2341, PNPCN = 2341, PNH = 2342, KHPNH = 2342, PNI = 2343, FMPNI = 2343, PNL = 2344, ITPNL = 2344, PNQ = 2345, INPNQ = 2345, PNR = 2346, CGPNR = 2346, PNS = 2347, USPNS = 2347, POA = 2348, BRPOA = 2348, POG = 2349, GAPOG = 2349,
POM = 2350, PGPOM = 2350, POP = 2351, DOPOP = 2351, POR = 2352, FIPOR = 2352, POS = 2353, TTPOS = 2353, POU = 2354, USPOU = 2354, POZ = 2355, PLPOZ = 2355, PPG = 2356, ASPPG = 2356, PPP = 2357, AUPPP = 2357, PPT = 2358, PFPPT = 2358, PQI = 2359, USPQI = 2359,
PQQ = 2360, AUPQQ = 2360, PRG = 2361, CZPRG = 2361, PRN = 2362, XXPRN = 2362, PRY = 2363, ZAPRY = 2363, PS0 = 2364, PSNAB = 2364, PSA = 2365, ITPSA = 2365, PSC = 2366, USPSC = 2366, PSD = 2367, EGPSD = 2367, PSE = 2368, PRPSE = 2368, PSG = 2369, USPSG = 2369,
PSI = 2370, PKPSI = 2370, PSP = 2371, USPSP = 2371, PSR = 2372, ITPSR = 2372, PSY = 2373, FKPSY = 2373, PTG = 2374, ZAPOL = 2374, PTJ = 2375, AUPTJ = 2375, PUB = 2376, USPUB = 2376, PUF = 2377, FRPUF = 2377, PUG = 2378, AUPUG = 2378, PUJ = 2379, DOPCN = 2379,
PUQ = 2380, CLPUQ = 2380, PUS = 2381, KRPUS = 2381, PUW = 2382, USPUW = 2382, PUY = 2383, HRPUY = 2383, PVD = 2384, USPVD = 2384, PVH = 2385, BRPVH = 2385, PVK = 2386, GRPVK = 2386, PVR = 2387, MXPVR = 2387, PWM = 2388, USPWM = 2388, PXM = 2389, MXPXM = 2389,
PXO = 2390, PTPXO = 2390, PYB = 2391, INPYB = 2391, PYX = 2392, THPYX = 2392, PZB = 2393, ZAPZB = 2393, PZH = 2394, PKPZH = 2394, PZO = 2395, VEPZO = 2395, QCB = 2396, JPCHB = 2396, QGF = 2397, BRMON = 2397, QIC = 2398, ITBIE = 2398, QLI = 2399, CYLMS = 2399,
QML = 2400, PKMPR = 2400, QMN = 2401, SZQMN = 2401, QNB = 2402, INQNB = 2402, QND = 2403, RSNVS = 2403, QPA = 2404, ITPDA = 2404, QSA = 2405, ESSBP = 2405, RAI = 2407, CVRAI = 2407, RAJ = 2408, INRAJ = 2408, RAK = 2409, MARAK = 2409, RAN = 2406, DKRAN = 2406,
RAP = 2410, USRAP = 2410, RAR = 2411, CKRAR = 2411, RAZ = 2412, PKRAZ = 2412, RB0 = 2413, DEREG = 2413, RBA = 2414, MARBA = 2414, RBR = 2415, BRRBR = 2415, RCB = 2416, ZARCB = 2416, RDD = 2417, USRDD = 2417, RDG = 2418, USRDG = 2418, RDM = 2419, USRMD = 2419,
RDU = 2420, USRAG = 2420, RDZ = 2421, FRRDZ = 2421, REC = 2422, BRREC = 2422, REG = 2423, ITREG = 2423, REK = 2424, ISREY = 2424, REU = 2425, ESRUS = 2425, RFD = 2426, USRFD = 2426, RFP = 2427, PFRFP = 2427, RGI = 2428, PFRGI = 2428, RGN = 2429, MMRGN = 2429,
RHI = 2430, USRHI = 2430, RHO = 2431, GRRHO = 2431, RIC = 2432, USRIC = 2432, RIO = 2433, BRRIO = 2433, RIX = 2434, LVRIX = 2434, RIZ = 2435, CNRZH = 2435, RJK = 2436, HRRJK = 2436, RKD = 2437, USRKD = 2437, RKS = 2438, USRKS = 2438, RKT = 2439, AERKT = 2439,
RLT = 2440, NERLT = 2440, RMF = 2441, EGRMF = 2441, RMI = 2442, ITRMI = 2442, RNB = 2443, SERNB = 2443, RNE = 2444, FRRNE = 2444, RNN = 2445, DKRNN = 2445, RNO = 2446, USRNO = 2446, RNS = 2447, FRRNS = 2447, ROA = 2448, USROA = 2448, ROC = 2449, USROC = 2449,
ROK = 2450, AUROK = 2450, ROM = 2451, ITROM = 2451, ROR = 2452, PWROR = 2452, ROS = 2453, ARROS = 2453, ROT = 2454, NZROT = 2454, ROU = 2455, BGRDU = 2455, ROV = 2456, RUROV = 2456, RRG = 2457, MURRG = 2457, RSA = 2458, ARRSA = 2458, RSD = 2459, BSRSD = 2459,
RST = 2460, USRST = 2460, RTB = 2461, HNRTB = 2461, RTM = 2462, NLRTM = 2462, RUH = 2463, SARUH = 2463, RUN = 2464, RERUN = 2464, RVN = 2465, FIRVN = 2465, RWI = 2466, USRWI = 2466, RWP = 2467, PKRWP = 2467, RYK = 2468, PKRYK = 2468, SAF = 2469, USSAF = 2469,
SAH = 2470, YESAH = 2470, SAI = 2557, SMSAI = 2557, SAL = 2471, SVSAL = 2471, SAN = 2472, USSAN = 2472, SAO = 2473, BRSAO = 2473, SAP = 2474, HNSAP = 2474, SAT = 2475, USSAT = 2475, SAV = 2476, USSAV = 2476, SBA = 2478, USSBA = 2478, SBH = 2479, BLSBH = 2479,
SBK = 2480, FRSBK = 2480, SBN = 2481, USSBN = 2481, SBP = 2482, USCSL = 2482, SBU = 2483, ZASBU = 2483, SBW = 2484, MYSBW = 2484, SBY = 2485, USSBY = 2485, SBZ = 2486, ROSBZ = 2486, SCC = 2487, USSCC = 2487, SCE = 2488, USSCE = 2488, SCF = 2489, USSTZ = 2489,
SCK = 2490, USSCK = 2490, SCN = 2491, DESCN = 2491, SCQ = 2492, ESSCQ = 2492, SCU = 2493, CUSCU = 2493, SDF = 2494, USLUI = 2494, SDH = 2495, HNSDH = 2495, SDJ = 2496, JPSDJ = 2496, SDL = 2497, SESDL = 2497, SDQ = 2498, DOSDQ = 2498, SDR = 2499, ESSDR = 2499,
SDS = 2500, JPSOS = 2500, SDT = 2501, PKSDT = 2501, SDY = 2502, USSDY = 2502, SEA = 2503, USSEA = 2503, SEB = 2504, LYSEB = 2504, SEL = 2505, KRSEL = 2505, SEN = 2506, GBSND = 2506, SEW = 2507, EGSEW = 2507, SEZ = 2508, SCVIC = 2508, SFA = 2509, TNSFA = 2509,
SFG = 2510, MFMAR = 2510, SFJ = 2511, GLSFJ = 2511, SFN = 2512, ARSFN = 2512, SFO = 2513, USSFO = 2513, SGD = 2514, DKSGD = 2514, SGF = 2515, USSGF = 2515, SGN = 2516, VNSGN = 2516, SGU = 2517, USSGU = 2517, SGY = 2518, USSGY = 2518, SHA = 2520, CNSGH = 2520,
SHD = 2521, USSZH = 2521, SHE = 2522, CNSHY = 2522, SHJ = 2523, AESHJ = 2523, SHR = 2524, USSHR = 2524, SHS = 2540, JPSHS = 2540, SHV = 2525, USSHV = 2525, SID = 2527, CVSID = 2527, SIN = 2528, SGSIN = 2528, SIP = 2529, UASIP = 2529, SIS = 2530, ZASIS = 2530,
SIT = 2531, USSIT = 2531, SIX = 2532, AUSIX = 2532, SJC = 2533, USSJC = 2533, SJD = 2534, MXLCB = 2534, SJJ = 2535, BASJJ = 2535, SJO = 2536, CRSJO = 2536, SJT = 2537, USSJT = 2537, SJU = 2538, PRSJU = 2538, SJY = 2539, FISJY = 2539, SKB = 2541, KNSKB = 2541,
SKD = 2542, UZSKD = 2542, SKG = 2543, GRSKG = 2543, SKP = 2544, MKSKP = 2544, SKS = 2545, DKSKR = 2545, SKV = 2546, EGSKV = 2546, SKX = 2547, RUSKX = 2547, SKZ = 2548, PKSKZ = 2548, SLA = 2549, ARSLA = 2549, SLB = 2526, DKSLB = 2526, SLC = 2550, USSLC = 2550,
SLE = 2551, USSLE = 2551, SLL = 2552, OMSLL = 2552, SLP = 2553, MXSLP = 2553, SLS = 2554, BGSLS = 2554, SLU = 2555, LCCAS = 2555, SLZ = 2556, BRSLZ = 2556, SMA = 2558, PTSMA = 2558, SMF = 2559, USSAC = 2559, SMI = 2560, GRSMI = 2560, SMX = 2561, USSMX = 2561,
SNA = 2562, USSNA = 2562, SNC = 2563, ECSNC = 2563, SNN = 2564, IELMK = 2564, SNS = 2565, USSNS = 2565, SOF = 2566, BGSOF = 2566, SOG = 2567, NOSOG = 2567, SOI = 2568, AUSOI = 2568, SON = 2569, VUSAN = 2569, SOT = 2570, FISOT = 2570, SOU = 2571, GBSOU = 2571,
SPC = 2572, ESSPC = 2572, SPI = 2573, USSPI = 2573, SPN = 2574, MPSPN = 2574, SPS = 2575, USSPS = 2575, SPU = 2576, HRSPU = 2576, SPY = 2577, CISPY = 2577, SRA = 2578, BRSRA = 2578, SRB = 2579, BOSRB = 2579, SRL = 2580, MXSRL = 2580, SRQ = 2581, USZOR = 2581,
SRZ = 2582, BOSCS = 2582, SSA = 2583, BRSSA = 2583, SSG = 2584, GQSSG = 2584, SSH = 2585, EGSSH = 2585, SSL = 2586, COSSL = 2586, STI = 2588, CLSCL = 2588, STL = 2589, USSTL = 2589, STO = 2590, SESTO = 2590, STP = 2591, USSTP = 2591, STR = 2592, DESTR = 2592,
STS = 2593, USSTS = 2593, STT = 2594, VISTT = 2594, STV = 2595, INSTV = 2595, STX = 2596, VISTX = 2596, SUB = 2597, IDSUB = 2597, SUF = 2598, ITSUF = 2598, SUL = 2599, PKSUL = 2599, SUM = 2600, GUAGA = 2600, SUN = 2601, US5SV = 2601, SUV = 2602, FJSUV = 2602,
SUX = 2603, USSUX = 2603, SVD = 2604, VCKTN = 2604, SVG = 2605, NOSVG = 2605, SVL = 2606, FISVL = 2606, SVQ = 2607, ESSVQ = 2607, SVX = 2608, RUYEK = 2608, SWF = 2610, USSWF = 2610, SWP = 2611, NASWP = 2611, SWR = 2609, DESWR = 2609, SWS = 2612, GBSWA = 2612,
SXB = 2613, FRSXB = 2613, SXL = 2614, IESLI = 2614, SXM = 2615, SXPHI = 2615, SXR = 2616, INSXR = 2616, SYD = 2617, AUSYD = 2617, SYR = 2618, USSYR = 2618, SYY = 2619, GBSTO = 2619, SZD = 2620, GBSHE = 2620, SZF = 2621, TRSSX = 2621, SZG = 2622, ATSZG = 2622,
SZK = 2623, ZASZK = 2623, SZX = 2624, CNSNZ = 2624, SZZ = 2625, PLSZZ = 2625, TAB = 2626, TTSCR = 2626, TAK = 2627, JPTAK = 2627, TAM = 2628, MXTAM = 2628, TAO = 2629, CNQIN = 2629, TAS = 2630, UZTAS = 2630, TAY = 2631, TWTPE = 2631, TBS = 2632, GETBS = 2632,
TBU = 2633, TOTBU = 2633, TCA = 2634, AUTCA = 2634, TCB = 2635, BSTCB = 2635, TCI = 2646, ESTCI = 2646, TCL = 2636, USTCL = 2636, TCU = 2637, ZATCU = 2637, TED = 2638, DKTED = 2638, TEM = 2639, AUTEM = 2639, TEQ = 2640, TRTEK = 2640, TER = 2641, PTTER = 2641,
TEU = 2642, NZTEU = 2642, TEX = 2643, USQTR = 2643, TGD = 2647, METGD = 2647, TGU = 2648, HNTGU = 2648, TGV = 2649, BGTGV = 2649, TGZ = 2650, MXTGZ = 2650, THE = 2651, BRTHE = 2651, THR = 2652, IRTHR = 2652, TIA = 2653, ALTIA = 2653, TIF = 2654, SATIF = 2654,
TIJ = 2655, MXTIJ = 2655, TIP = 2656, LYTIP = 2656, TIS = 2657, AUTIS = 2657, TIV = 2658, METIV = 2658, TKA = 2660, USTKA = 2660, TKS = 2661, JPTKS = 2661, TKU = 2662, FITKU = 2662, TLH = 2663, USTLH = 2663, TLL = 2664, EETLL = 2664, TLS = 2665, FRTLS = 2665,
TLV = 2666, ILTLV = 2666, TMP = 2667, FITMP = 2667, TMS = 2668, STTMS = 2668, TMW = 2669, AUTMW = 2669, TMZ = 2670, UZTER = 2670, TNA = 2671, CNJNA = 2671, TNG = 2672, MATNG = 2672, TNR = 2673, MGTNR = 2673, TOD = 2674, MYTOD = 2674, TOL = 2675, USTOL = 2675,
TOS = 2676, NOTOS = 2676, TOU = 2677, NCTOU = 2677, TOV = 2678, VGTOV = 2678, TOY = 2679, JPTOY = 2679, TPA = 2680, USTPA = 2680, TPR = 2681, AUTPR = 2681, TPS = 2682, ITTPS = 2682, TRD = 2683, NOTRD = 2683, TRI = 2684, USOUI = 2684, TRN = 2685, ITTRN = 2685,
TRO = 2686, AUTRO = 2686, TRS = 2687, ITTRS = 2687, TRV = 2688, INTRV = 2688, TRW = 2689, KITRW = 2689, TRZ = 2690, INTRI = 2690, TSB = 2691, NATSB = 2691, TSE = 2692, KZAST = 2692, TSF = 2693, ITTRV = 2693, TSN = 2694, CNTNJ = 2694, TSV = 2695, AUTSV = 2695,
TTN = 2696, USTTN = 2696, TUC = 2697, ARTUC = 2697, TUK = 2698, PKTUK = 2698, TUL = 2699, USTUL = 2699, TUN = 2700, TNTUN = 2700, TUP = 2701, USTUP = 2701, TUS = 2702, USTUZ = 2702, TUU = 2703, SATUU = 2703, TVC = 2704, USTVC = 2704, TVF = 2705, USTVF = 2705,
TVL = 2706, USTVL = 2706, TWB = 2707, AUTWB = 2707, TWF = 2708, USTWF = 2708, TWU = 2709, MYTWU = 2709, TXK = 2710, USTXK = 2710, TYN = 2711, CNTYU = 2711, TYO = 2712, JPTYO = 2712, TYR = 2713, USTYR = 2713, TYS = 2714, USTYS = 2714, TZX = 2715, TRTZX = 2715,
UAH = 2716, PFUAH = 2716, UAK = 2717, GLUAK = 2717, UAP = 2718, PFUAP = 2718, UBA = 2719, BRUBB = 2719, UBJ = 2720, JPUBJ = 2720, UBP = 2721, THUBP = 2721, UCA = 2722, USUCA = 2722, UCT = 2723, RUUCT = 2723, UDE = 2724, NLUDE = 2724, UDI = 2725, BRUDI = 2725,
UDJ = 2726, UAUZH = 2726, UDR = 2727, INUDR = 2727, UEE = 2728, AUUEE = 2728, UET = 2729, PKUET = 2729, UFA = 2730, RUUFA = 2730, UGC = 2731, UZUGC = 2731, UGO = 2732, AOUGO = 2732, UHE = 2733, CZUHE = 2733, UII = 2734, HNUII = 2734, UIN = 2735, USUIN = 2735,
UIO = 2736, ECUIO = 2736, UIP = 2737, FRUIP = 2737, UIT = 2738, MHUIT = 2738, UKB = 2739, JPUKB = 2739, UKI = 2740, USUKI = 2740, UKY = 2741, JPUKY = 2741, ULB = 2742, VUULB = 2742, ULD = 2743, ZAULD = 2743, ULN = 2744, MNULN = 2744, ULU = 2745, UGULU = 2745,
UMD = 2746, GLUMD = 2746, UME = 2747, SEUME = 2747, UMR = 2748, AUUMR = 2748, UNI = 2749, VCUNI = 2749, UNK = 2750, USUNK = 2750, UNT = 2751, GBUNT = 2751, UPG = 2752, IDUPG = 2752, UPL = 2753, CRUPA = 2753, UPN = 2754, MX2NB = 2754, UPP = 2755, USUPP = 2755,
URB = 2756, BRXXX = 2756, URC = 2757, CNURM = 2757, URG = 2758, BRURG = 2758, URM = 2759, VEURM = 2759, URZ = 2760, AFURZ = 2760, USH = 2761, ARUSH = 2761, USN = 2762, KRUSN = 2762, UTC = 2763, NLUTC = 2763, UTH = 2764, THUTH = 2764, UTN = 2765, ZAUTN = 2765,
UTP = 2766, THUTP = 2766, UTT = 2767, ZAUTT = 2767, UUD = 2768, RUUUD = 2768, UVE = 2769, GAOYE = 2769, UVF = 2770, LCVIF = 2770, UVL = 2771, EGUVL = 2771, VAA = 2773, FIVAA = 2773, VAN = 2774, TRVAN = 2774, VAP = 2775, CLVAP = 2775, VAR = 2776, BGVAR = 2776,
VAS = 2777, TRVAS = 2777, VAT = 2772, VAVAT = 2772, VBS = 2778, ITBRC = 2778, VBY = 2779, SEVBY = 2779, VCE = 2780, ITVCE = 2780, VDE = 2781, ESVDH = 2781, VDZ = 2782, USVDZ = 2782, VEL = 2783, USVEL = 2783, VER = 2784, MXVER = 2784, VFA = 2785, ZWVFA = 2785,
VGO = 2786, ESVGO = 2786, VID = 2787, BGVID = 2787, VIE = 2788, ATVIE = 2788, VIJ = 2789, VGVIJ = 2789, VIS = 2790, USVIS = 2790, VIT = 2791, ESVIT = 2791, VIV = 2799, USVIV = 2799, VIX = 2792, BRVIX = 2792, VLC = 2793, ESVLC = 2793, VLD = 2794, USVLD = 2794,
VLI = 2795, VUVLI = 2795, VLL = 2796, ESVLL = 2796, VLN = 2797, VEVLN = 2797, VLU = 2798, RUVLU = 2798, VNO = 2800, LTVIL = 2800, VNS = 2801, INVNS = 2801, VOG = 2802, RUVOG = 2802, VPS = 2803, USFWB = 2803, VRA = 2804, CUVRA = 2804, VRB = 2805, USVRB = 2805,
VRK = 2806, FIVRK = 2806, VRN = 2807, ITVRN = 2807, VSA = 2808, MXVSA = 2808, VST = 2809, SEVST = 2809, VTE = 2810, LAVTE = 2810, VVO = 2811, RUVVO = 2811, VXO = 2812, SEVXO = 2812, VYD = 2813, ZAVYD = 2813, VYV = 2166, USVYV = 2166, VZN = 2814, HRVZN = 2814,
WAW = 2815, PLWAW = 2815, WDH = 2816, NAWDH = 2816, WEI = 2817, AUWEI = 2817, WEL = 2818, ZAWEL = 2818, WGA = 2819, AUWGA = 2819, WHK = 2820, NZWHK = 2820, WHM = 2821, AUWAM = 2821, WIC = 2822, GBWCK = 2822, WIE = 2823, DEWIB = 2823, WLB = 2824, USWLB = 2824,
WLG = 2825, NZWLG = 2825, WLS = 2826, WFMAU = 2826, WMB = 2827, AUWMB = 2827, WNS = 2828, PKWNS = 2828, WOL = 2829, AUWOL = 2829, WPK = 2830, USWPK = 2830, WRE = 2831, NZWRE = 2831, WRG = 2832, USWRG = 2832, WRL = 2833, USWRL = 2833, WRO = 2834, PLWRO = 2834,
WUH = 2835, CNNHN = 2835, WUN = 2836, AUWUN = 2836, WUX = 2837, CNWXS = 2837, WVB = 2838, ZAWVB = 2838, WYA = 2839, AUWYA = 2839, WYN = 2840, AUWYN = 2840, WYS = 2841, USWYS = 2841, XCH = 2842, CXFFC = 2842, XIY = 2843, CNXYA = 2843, XLB = 2844, CAXXX = 2844,
XLX = 2587, USXLX = 2587, XMH = 2845, PFXMH = 2845, XMN = 2846, CNXAM = 2846, XPK = 2847, CAXPK = 2847, XRY = 2848, ESJRZ = 2848, XSI = 2849, CAXSI = 2849, XXX = 2850, XXXXX = 2850, YAK = 2851, USYAK = 2851, YAO = 2852, CMYAO = 2852, YAT = 2853, CAYAT = 2853,
YBE = 2854, CAYBE = 2854, YCB = 2855, CAYCB = 2855, YDF = 2856, CAYDF = 2856, YEA = 2906, CAEDM = 2906, YEV = 2857, CAYEV = 2857, YFA = 2858, CAFAL = 2858, YFB = 2859, CAIQL = 2859, YFC = 2860, CAFRE = 2860, YFO = 2861, CAYFO = 2861, YGL = 2862, CAYGL = 2862,
YGW = 2863, CAYGW = 2863, YGX = 2864, CAYGX = 2864, YHR = 2866, CAYHR = 2866, YHZ = 2867, CAHAL = 2867, YIF = 2868, CASAU = 2868, YIH = 2869, CNYIC = 2869, YKA = 2870, CAKML = 2870, YKM = 2871, USYKM = 2871, YKS = 2872, RUYKS = 2872, YLR = 2873, CALRA = 2873,
YLW = 2874, CAKWL = 2874, YMM = 2875, CAYMM = 2875, YMQ = 2876, CAMTR = 2876, YNB = 2877, SAYNB = 2877, YOK = 2878, JPYOK = 2878, YOP = 2879, CARBL = 2879, YOW = 2880, CAOTT = 2880, YPN = 2881, CAPME = 2881, YPR = 2882, CAPRR = 2882, YQB = 2883, CAQUE = 2883,
YQD = 2884, CAYQD = 2884, YQG = 2885, CAWND = 2885, YQM = 2886, CAMNT = 2886, YQR = 2887, CAREG = 2887, YQT = 2888, CATHU = 2888, YQX = 2889, CAGAN = 2889, YRB = 2890, CAREB = 2890, YSJ = 2891, CASJB = 2891, YSM = 2892, CAFSM = 2892, YSR = 2893, CANVK = 2893,
YTH = 2894, CAYTH = 2894, YTO = 2895, CATOR = 2895, YUD = 2896, CAYUD = 2896, YUM = 2897, USYUM = 2897, YUX = 2898, CAHAB = 2898, YVB = 2899, CAYVB = 2899, YVO = 2900, CAYVO = 2900, YVP = 2901, CAFCM = 2901, YVQ = 2902, CAYVQ = 2902, YVR = 2903, CAVAN = 2903,
YWG = 2904, CAWNP = 2904, YWK = 2905, CAYWK = 2905, YXE = 2907, CASAK = 2907, YXJ = 2908, CAFSJ = 2908, YXN = 2909, CAYXN = 2909, YXS = 2910, CAPRG = 2910, YXT = 2911, CAYXT = 2911, YXU = 2912, CALOD = 2912, YXY = 2913, CAYXY = 2913, YYC = 2914, CACAL = 2914,
YYD = 2915, CAYYD = 2915, YYJ = 2916, CAVIC = 2916, YYQ = 2917, CACHV = 2917, YYR = 2918, CAGOO = 2918, YYT = 2919, CASJF = 2919, YYZ = 2920, CAMIS = 2920, YZF = 2921, CAYZF = 2921, YZP = 2922, CASSP = 2922, ZAD = 2923, HRZAD = 2923, ZAG = 2924, HRZAG = 2924,
ZAZ = 2925, ESZAZ = 2925, ZBO = 2926, AUZBO = 2926, ZCL = 2927, MXZCL = 2927, ZIH = 2928, MXZIH = 2928, ZKE = 2929, CAZKE = 2929, ZLO = 2930, MXZLO = 2930, ZND = 2931, NEZND = 2931, ZNE = 2932, AUNWM = 2932, ZQN = 2933, NZZQN = 2933, ZRH = 2934, CHZRH = 2934,
ZSA = 2935, BSZSA = 2935, ZSS = 2936, CIZSS = 2936, ZTH = 2937, GRZTH = 2937, ZTM = 2938, CAZTM = 2938, ZYL = 2939, BDZYL = 2939,
MAXCITY = 2940, NUMCITY = 1936 };
City( void ): m_city(NOCITY) {}
~City( void ) { m_city = NOCITY; }
// non-explicit constructors intentional here
City( CityCode i ): m_city(i) {} // e.g. i = City::LON
City( const std::string &s ): m_city(NOCITY) { setCity(s); }
City( const char *s ): m_city(NOCITY) { if (s) setCity(s); }
// My numeric code for this city e.g. City::LON = 1983
operator short( void ) const { return m_city; }
// The 3 letter IATA code for this city e.g. "LON"
std::string
to3Code( void ) const { return m_codes3[m_fromISO[m_city]]; }
// The 5 letter UN/LOCODE code for this city i.e "GBLON"
std::string
to5Code( void ) const { return m_codes5Print[m_fromISO[m_city]]; }
std::string
name( void ) const { return m_fullNames[m_fromISO[m_city]]; } // i.e "London"
bool
setCity( const std::string &s ); // e.g. s = "LON" or s = "GBLON"
bool
set3City( const std::string &s ); // e.g. s = "LON"
bool
set5City( const std::string &s ); // e.g. s = "GBLON"
void
setCity( CityCode s ) { m_city = s; } // e.g. s = City::LON or City::GBLON
bool
capital( void ) const { return m_capital[m_fromISO[m_city]]; }
// latitude
float
lat( void ) const { return m_position[m_fromISO[m_city]][0]; }
// longitude
float
lon( void ) const { return m_position[m_fromISO[m_city]][1]; }
// distance (in metres) calculated using Vincenty inverse solution
static float
dist( const City &c1, const City &c2 ) { return City::dist(c1.lat(), c1.lon(), c2.lat(), c2.lon()); };
static float
dist( float lat1, float lon1, float lat2, float lon2 );
static City
index( int i ) { return CityCode(m_toISO3[i]); }
static int
index( const City &c ) { return m_fromISO[c]; }
bool
valid( void ) const { return m_city != NOCITY; }
private:
short m_city;
static const short m_search3[28];
static const short m_search5[28];
static const short m_fromISO[MAXCITY];
static const short m_toISO3[NUMCITY];
static const short m_toISO5[NUMCITY];
static const float m_position[NUMCITY][2];
static const unsigned char m_capital[NUMCITY];
static const char * const m_codes3[NUMCITY];
static const char * const m_codes5[NUMCITY];
static const char * const m_codes5Print[NUMCITY];
static const char * const m_fullNames[NUMCITY];
};
std::ostream&
operator<<( std::ostream &ostr, const City &c );
std::istream&
operator>>( std::istream &istr, City &c );
#endif