Package pygeoip :: Module const
[hide private]
[frames] | no frames]

Source Code for Module pygeoip.const

  1  """
 
  2  Constants needed for parsing binary GeoIP databases. It is part of the pygeoip
 
  3  package.
 
  4  
 
  5  @author: Jennifer Ennis <zaylea at gmail dot com>
 
  6  
 
  7  @license:
 
  8  Copyright(C) 2004 MaxMind LLC
 
  9  
 
 10  This program is free software: you can redistribute it and/or modify
 
 11  it under the terms of the GNU Lesser General Public License as published by
 
 12  the Free Software Foundation, either version 3 of the License, or
 
 13  (at your option) any later version.
 
 14  
 
 15  This program is distributed in the hope that it will be useful,
 
 16  but WITHOUT ANY WARRANTY; without even the implied warranty of
 
 17  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 
 18  GNU General Public License for more details.
 
 19  
 
 20  You should have received a copy of the GNU Lesser General Public License
 
 21  along with this program.  If not, see <http://www.gnu.org/licenses/lgpl.txt>.
 
 22  """ 
 23  
 
 24  GEOIP_STANDARD = 0 
 25  GEOIP_MEMORY_CACHE = 1 
 26  
 
 27  DMA_MAP = {
 
 28      500 : 'Portland-Auburn, ME',
 
 29      501 : 'New York, NY',
 
 30      502 : 'Binghamton, NY',
 
 31      503 : 'Macon, GA',
 
 32      504 : 'Philadelphia, PA',
 
 33      505 : 'Detroit, MI',
 
 34      506 : 'Boston, MA',
 
 35      507 : 'Savannah, GA',
 
 36      508 : 'Pittsburgh, PA',
 
 37      509 : 'Ft Wayne, IN',
 
 38      510 : 'Cleveland, OH',
 
 39      511 : 'Washington, DC',
 
 40      512 : 'Baltimore, MD',
 
 41      513 : 'Flint, MI',
 
 42      514 : 'Buffalo, NY',
 
 43      515 : 'Cincinnati, OH',
 
 44      516 : 'Erie, PA',
 
 45      517 : 'Charlotte, NC',
 
 46      518 : 'Greensboro, NC',
 
 47      519 : 'Charleston, SC',
 
 48      520 : 'Augusta, GA',
 
 49      521 : 'Providence, RI',
 
 50      522 : 'Columbus, GA',
 
 51      523 : 'Burlington, VT',
 
 52      524 : 'Atlanta, GA',
 
 53      525 : 'Albany, GA',
 
 54      526 : 'Utica-Rome, NY',
 
 55      527 : 'Indianapolis, IN',
 
 56      528 : 'Miami, FL',
 
 57      529 : 'Louisville, KY',
 
 58      530 : 'Tallahassee, FL',
 
 59      531 : 'Tri-Cities, TN',
 
 60      532 : 'Albany-Schenectady-Troy, NY',
 
 61      533 : 'Hartford, CT',
 
 62      534 : 'Orlando, FL',
 
 63      535 : 'Columbus, OH',
 
 64      536 : 'Youngstown-Warren, OH',
 
 65      537 : 'Bangor, ME',
 
 66      538 : 'Rochester, NY',
 
 67      539 : 'Tampa, FL',
 
 68      540 : 'Traverse City-Cadillac, MI',
 
 69      541 : 'Lexington, KY',
 
 70      542 : 'Dayton, OH',
 
 71      543 : 'Springfield-Holyoke, MA',
 
 72      544 : 'Norfolk-Portsmouth, VA',
 
 73      545 : 'Greenville-New Bern-Washington, NC',
 
 74      546 : 'Columbia, SC',
 
 75      547 : 'Toledo, OH',
 
 76      548 : 'West Palm Beach, FL',
 
 77      549 : 'Watertown, NY',
 
 78      550 : 'Wilmington, NC',
 
 79      551 : 'Lansing, MI',
 
 80      552 : 'Presque Isle, ME',
 
 81      553 : 'Marquette, MI',
 
 82      554 : 'Wheeling, WV',
 
 83      555 : 'Syracuse, NY',
 
 84      556 : 'Richmond-Petersburg, VA',
 
 85      557 : 'Knoxville, TN',
 
 86      558 : 'Lima, OH',
 
 87      559 : 'Bluefield-Beckley-Oak Hill, WV',
 
 88      560 : 'Raleigh-Durham, NC',
 
 89      561 : 'Jacksonville, FL',
 
 90      563 : 'Grand Rapids, MI',
 
 91      564 : 'Charleston-Huntington, WV',
 
 92      565 : 'Elmira, NY',
 
 93      566 : 'Harrisburg-Lancaster-Lebanon-York, PA',
 
 94      567 : 'Greenville-Spartenburg, SC',
 
 95      569 : 'Harrisonburg, VA',
 
 96      570 : 'Florence-Myrtle Beach, SC',
 
 97      571 : 'Ft Myers, FL',
 
 98      573 : 'Roanoke-Lynchburg, VA',
 
 99      574 : 'Johnstown-Altoona, PA',
 
100      575 : 'Chattanooga, TN',
 
101      576 : 'Salisbury, MD',
 
102      577 : 'Wilkes Barre-Scranton, PA',
 
103      581 : 'Terre Haute, IN',
 
104      582 : 'Lafayette, IN',
 
105      583 : 'Alpena, MI',
 
106      584 : 'Charlottesville, VA',
 
107      588 : 'South Bend, IN',
 
108      592 : 'Gainesville, FL',
 
109      596 : 'Zanesville, OH',
 
110      597 : 'Parkersburg, WV',
 
111      598 : 'Clarksburg-Weston, WV',
 
112      600 : 'Corpus Christi, TX',
 
113      602 : 'Chicago, IL',
 
114      603 : 'Joplin-Pittsburg, MO',
 
115      604 : 'Columbia-Jefferson City, MO',
 
116      605 : 'Topeka, KS',
 
117      606 : 'Dothan, AL',
 
118      609 : 'St Louis, MO',
 
119      610 : 'Rockford, IL',
 
120      611 : 'Rochester-Mason City-Austin, MN',
 
121      612 : 'Shreveport, LA',
 
122      613 : 'Minneapolis-St Paul, MN',
 
123      616 : 'Kansas City, MO',
 
124      617 : 'Milwaukee, WI',
 
125      618 : 'Houston, TX',
 
126      619 : 'Springfield, MO',
 
127      620 : 'Tuscaloosa, AL',
 
128      622 : 'New Orleans, LA',
 
129      623 : 'Dallas-Fort Worth, TX',
 
130      624 : 'Sioux City, IA',
 
131      625 : 'Waco-Temple-Bryan, TX',
 
132      626 : 'Victoria, TX',
 
133      627 : 'Wichita Falls, TX',
 
134      628 : 'Monroe, LA',
 
135      630 : 'Birmingham, AL',
 
136      631 : 'Ottumwa-Kirksville, IA',
 
137      632 : 'Paducah, KY',
 
138      633 : 'Odessa-Midland, TX',
 
139      634 : 'Amarillo, TX',
 
140      635 : 'Austin, TX',
 
141      636 : 'Harlingen, TX',
 
142      637 : 'Cedar Rapids-Waterloo, IA',
 
143      638 : 'St Joseph, MO',
 
144      639 : 'Jackson, TN',
 
145      640 : 'Memphis, TN',
 
146      641 : 'San Antonio, TX',
 
147      642 : 'Lafayette, LA',
 
148      643 : 'Lake Charles, LA',
 
149      644 : 'Alexandria, LA',
 
150      646 : 'Anniston, AL',
 
151      647 : 'Greenwood-Greenville, MS',
 
152      648 : 'Champaign-Springfield-Decatur, IL',
 
153      649 : 'Evansville, IN',
 
154      650 : 'Oklahoma City, OK',
 
155      651 : 'Lubbock, TX',
 
156      652 : 'Omaha, NE',
 
157      656 : 'Panama City, FL',
 
158      657 : 'Sherman, TX',
 
159      658 : 'Green Bay-Appleton, WI',
 
160      659 : 'Nashville, TN',
 
161      661 : 'San Angelo, TX',
 
162      662 : 'Abilene-Sweetwater, TX',
 
163      669 : 'Madison, WI',
 
164      670 : 'Ft Smith-Fay-Springfield, AR',
 
165      671 : 'Tulsa, OK',
 
166      673 : 'Columbus-Tupelo-West Point, MS',
 
167      675 : 'Peoria-Bloomington, IL',
 
168      676 : 'Duluth, MN',
 
169      678 : 'Wichita, KS',
 
170      679 : 'Des Moines, IA',
 
171      682 : 'Davenport-Rock Island-Moline, IL',
 
172      686 : 'Mobile, AL',
 
173      687 : 'Minot-Bismarck-Dickinson, ND',
 
174      691 : 'Huntsville, AL',
 
175      692 : 'Beaumont-Port Author, TX',
 
176      693 : 'Little Rock-Pine Bluff, AR',
 
177      698 : 'Montgomery, AL',
 
178      702 : 'La Crosse-Eau Claire, WI',
 
179      705 : 'Wausau-Rhinelander, WI',
 
180      709 : 'Tyler-Longview, TX',
 
181      710 : 'Hattiesburg-Laurel, MS',
 
182      711 : 'Meridian, MS',
 
183      716 : 'Baton Rouge, LA',
 
184      717 : 'Quincy, IL',
 
185      718 : 'Jackson, MS',
 
186      722 : 'Lincoln-Hastings, NE',
 
187      724 : 'Fargo-Valley City, ND',
 
188      725 : 'Sioux Falls, SD',
 
189      734 : 'Jonesboro, AR',
 
190      736 : 'Bowling Green, KY',
 
191      737 : 'Mankato, MN',
 
192      740 : 'North Platte, NE',
 
193      743 : 'Anchorage, AK',
 
194      744 : 'Honolulu, HI',
 
195      745 : 'Fairbanks, AK',
 
196      746 : 'Biloxi-Gulfport, MS',
 
197      747 : 'Juneau, AK',
 
198      749 : 'Laredo, TX',
 
199      751 : 'Denver, CO',
 
200      752 : 'Colorado Springs, CO',
 
201      753 : 'Phoenix, AZ',
 
202      754 : 'Butte-Bozeman, MT',
 
203      755 : 'Great Falls, MT',
 
204      756 : 'Billings, MT',
 
205      757 : 'Boise, ID',
 
206      758 : 'Idaho Falls-Pocatello, ID',
 
207      759 : 'Cheyenne, WY',
 
208      760 : 'Twin Falls, ID',
 
209      762 : 'Missoula, MT',
 
210      764 : 'Rapid City, SD',
 
211      765 : 'El Paso, TX',
 
212      766 : 'Helena, MT',
 
213      767 : 'Casper-Riverton, WY',
 
214      770 : 'Salt Lake City, UT',
 
215      771 : 'Yuma, AZ',
 
216      773 : 'Grand Junction, CO',
 
217      789 : 'Tucson, AZ',
 
218      790 : 'Albuquerque, NM',
 
219      798 : 'Glendive, MT',
 
220      800 : 'Bakersfield, CA',
 
221      801 : 'Eugene, OR',
 
222      802 : 'Eureka, CA',
 
223      803 : 'Los Angeles, CA',
 
224      804 : 'Palm Springs, CA',
 
225      807 : 'San Francisco, CA',
 
226      810 : 'Yakima-Pasco, WA',
 
227      811 : 'Reno, NV',
 
228      813 : 'Medford-Klamath Falls, OR',
 
229      819 : 'Seattle-Tacoma, WA',
 
230      820 : 'Portland, OR',
 
231      821 : 'Bend, OR',
 
232      825 : 'San Diego, CA',
 
233      828 : 'Monterey-Salinas, CA',
 
234      839 : 'Las Vegas, NV',
 
235      855 : 'Santa Barbara, CA',
 
236      862 : 'Sacramento, CA',
 
237      866 : 'Fresno, CA',
 
238      868 : 'Chico-Redding, CA',
 
239      881 : 'Spokane, WA'
 
240      } 
241  
 
242  COUNTRY_CODES = (
 
243      '', 'AP', 'EU', 'AD', 'AE', 'AF', 'AG', 'AI', 'AL', 'AM', 'AN', 'AO', 'AQ',
 
244      'AR', 'AS', 'AT', 'AU', 'AW', 'AZ', 'BA', 'BB', 'BD', 'BE', 'BF', 'BG', 'BH',
 
245      'BI', 'BJ', 'BM', 'BN', 'BO', 'BR', 'BS', 'BT', 'BV', 'BW', 'BY', 'BZ', 'CA',
 
246      'CC', 'CD', 'CF', 'CG', 'CH', 'CI', 'CK', 'CL', 'CM', 'CN', 'CO', 'CR', 'CU',
 
247      'CV', 'CX', 'CY', 'CZ', 'DE', 'DJ', 'DK', 'DM', 'DO', 'DZ', 'EC', 'EE', 'EG',
 
248      'EH', 'ER', 'ES', 'ET', 'FI', 'FJ', 'FK', 'FM', 'FO', 'FR', 'FX', 'GA', 'GB',
 
249      'GD', 'GE', 'GF', 'GH', 'GI', 'GL', 'GM', 'GN', 'GP', 'GQ', 'GR', 'GS', 'GT',
 
250      'GU', 'GW', 'GY', 'HK', 'HM', 'HN', 'HR', 'HT', 'HU', 'ID', 'IE', 'IL', 'IN',
 
251      'IO', 'IQ', 'IR', 'IS', 'IT', 'JM', 'JO', 'JP', 'KE', 'KG', 'KH', 'KI', 'KM',
 
252      'KN', 'KP', 'KR', 'KW', 'KY', 'KZ', 'LA', 'LB', 'LC', 'LI', 'LK', 'LR', 'LS',
 
253      'LT', 'LU', 'LV', 'LY', 'MA', 'MC', 'MD', 'MG', 'MH', 'MK', 'ML', 'MM', 'MN',
 
254      'MO', 'MP', 'MQ', 'MR', 'MS', 'MT', 'MU', 'MV', 'MW', 'MX', 'MY', 'MZ', 'NA',
 
255      'NC', 'NE', 'NF', 'NG', 'NI', 'NL', 'NO', 'NP', 'NR', 'NU', 'NZ', 'OM', 'PA',
 
256      'PE', 'PF', 'PG', 'PH', 'PK', 'PL', 'PM', 'PN', 'PR', 'PS', 'PT', 'PW', 'PY',
 
257      'QA', 'RE', 'RO', 'RU', 'RW', 'SA', 'SB', 'SC', 'SD', 'SE', 'SG', 'SH', 'SI',
 
258      'SJ', 'SK', 'SL', 'SM', 'SN', 'SO', 'SR', 'ST', 'SV', 'SY', 'SZ', 'TC', 'TD',
 
259      'TF', 'TG', 'TH', 'TJ', 'TK', 'TM', 'TN', 'TO', 'TL', 'TR', 'TT', 'TV', 'TW',
 
260      'TZ', 'UA', 'UG', 'UM', 'US', 'UY', 'UZ', 'VA', 'VC', 'VE', 'VG', 'VI', 'VN',
 
261      'VU', 'WF', 'WS', 'YE', 'YT', 'RS', 'ZA', 'ZM', 'ME', 'ZW', 'A1', 'A2', 'O1',
 
262      'AX', 'GG', 'IM', 'JE', 'BL', 'MF'
 
263      ) 
264  
 
265  COUNTRY_CODES3 = (
 
266      '','AP','EU','AND','ARE','AFG','ATG','AIA','ALB','ARM','ANT','AGO','AQ','ARG',
 
267      'ASM','AUT','AUS','ABW','AZE','BIH','BRB','BGD','BEL','BFA','BGR','BHR','BDI',
 
268      'BEN','BMU','BRN','BOL','BRA','BHS','BTN','BV','BWA','BLR','BLZ','CAN','CC',
 
269      'COD','CAF','COG','CHE','CIV','COK','CHL','CMR','CHN','COL','CRI','CUB','CPV',
 
270      'CX','CYP','CZE','DEU','DJI','DNK','DMA','DOM','DZA','ECU','EST','EGY','ESH',
 
271      'ERI','ESP','ETH','FIN','FJI','FLK','FSM','FRO','FRA','FX','GAB','GBR','GRD',
 
272      'GEO','GUF','GHA','GIB','GRL','GMB','GIN','GLP','GNQ','GRC','GS','GTM','GUM',
 
273      'GNB','GUY','HKG','HM','HND','HRV','HTI','HUN','IDN','IRL','ISR','IND','IO',
 
274      'IRQ','IRN','ISL','ITA','JAM','JOR','JPN','KEN','KGZ','KHM','KIR','COM','KNA',
 
275      'PRK','KOR','KWT','CYM','KAZ','LAO','LBN','LCA','LIE','LKA','LBR','LSO','LTU',
 
276      'LUX','LVA','LBY','MAR','MCO','MDA','MDG','MHL','MKD','MLI','MMR','MNG','MAC',
 
277      'MNP','MTQ','MRT','MSR','MLT','MUS','MDV','MWI','MEX','MYS','MOZ','NAM','NCL',
 
278      'NER','NFK','NGA','NIC','NLD','NOR','NPL','NRU','NIU','NZL','OMN','PAN','PER',
 
279      'PYF','PNG','PHL','PAK','POL','SPM','PCN','PRI','PSE','PRT','PLW','PRY','QAT',
 
280      'REU','ROU','RUS','RWA','SAU','SLB','SYC','SDN','SWE','SGP','SHN','SVN','SJM',
 
281      'SVK','SLE','SMR','SEN','SOM','SUR','STP','SLV','SYR','SWZ','TCA','TCD','TF',
 
282      'TGO','THA','TJK','TKL','TLS','TKM','TUN','TON','TUR','TTO','TUV','TWN','TZA',
 
283      'UKR','UGA','UM','USA','URY','UZB','VAT','VCT','VEN','VGB','VIR','VNM','VUT',
 
284      'WLF','WSM','YEM','YT','SRB','ZAF','ZMB','MNE','ZWE','A1','A2','O1',
 
285      'ALA','GGY','IMN','JEY','BLM','MAF'
 
286      ) 
287  
 
288  COUNTRY_NAMES = (
 
289      "", "Asia/Pacific Region", "Europe", "Andorra", "United Arab Emirates",
 
290      "Afghanistan", "Antigua and Barbuda", "Anguilla", "Albania", "Armenia",
 
291      "Netherlands Antilles", "Angola", "Antarctica", "Argentina", "American Samoa",
 
292      "Austria", "Australia", "Aruba", "Azerbaijan", "Bosnia and Herzegovina",
 
293      "Barbados", "Bangladesh", "Belgium", "Burkina Faso", "Bulgaria", "Bahrain",
 
294      "Burundi", "Benin", "Bermuda", "Brunei Darussalam", "Bolivia", "Brazil",
 
295      "Bahamas", "Bhutan", "Bouvet Island", "Botswana", "Belarus", "Belize",
 
296      "Canada", "Cocos (Keeling) Islands", "Congo, The Democratic Republic of the",
 
297      "Central African Republic", "Congo", "Switzerland", "Cote D'Ivoire", "Cook Islands",
 
298      "Chile", "Cameroon", "China", "Colombia", "Costa Rica", "Cuba", "Cape Verde",
 
299      "Christmas Island", "Cyprus", "Czech Republic", "Germany", "Djibouti",
 
300      "Denmark", "Dominica", "Dominican Republic", "Algeria", "Ecuador", "Estonia",
 
301      "Egypt", "Western Sahara", "Eritrea", "Spain", "Ethiopia", "Finland", "Fiji",
 
302      "Falkland Islands (Malvinas)", "Micronesia, Federated States of", "Faroe Islands",
 
303      "France", "France, Metropolitan", "Gabon", "United Kingdom",
 
304      "Grenada", "Georgia", "French Guiana", "Ghana", "Gibraltar", "Greenland",
 
305      "Gambia", "Guinea", "Guadeloupe", "Equatorial Guinea", "Greece",
 
306      "South Georgia and the South Sandwich Islands",
 
307      "Guatemala", "Guam", "Guinea-Bissau",
 
308      "Guyana", "Hong Kong", "Heard Island and McDonald Islands", "Honduras",
 
309      "Croatia", "Haiti", "Hungary", "Indonesia", "Ireland", "Israel", "India",
 
310      "British Indian Ocean Territory", "Iraq", "Iran, Islamic Republic of",
 
311      "Iceland", "Italy", "Jamaica", "Jordan", "Japan", "Kenya", "Kyrgyzstan",
 
312      "Cambodia", "Kiribati", "Comoros", "Saint Kitts and Nevis",
 
313      "Korea, Democratic People's Republic of",
 
314      "Korea, Republic of", "Kuwait", "Cayman Islands",
 
315      "Kazakstan", "Lao People's Democratic Republic", "Lebanon", "Saint Lucia",
 
316      "Liechtenstein", "Sri Lanka", "Liberia", "Lesotho", "Lithuania", "Luxembourg",
 
317      "Latvia", "Libyan Arab Jamahiriya", "Morocco", "Monaco", "Moldova, Republic of",
 
318      "Madagascar", "Marshall Islands", "Macedonia",
 
319      "Mali", "Myanmar", "Mongolia", "Macau", "Northern Mariana Islands",
 
320      "Martinique", "Mauritania", "Montserrat", "Malta", "Mauritius", "Maldives",
 
321      "Malawi", "Mexico", "Malaysia", "Mozambique", "Namibia", "New Caledonia",
 
322      "Niger", "Norfolk Island", "Nigeria", "Nicaragua", "Netherlands", "Norway",
 
323      "Nepal", "Nauru", "Niue", "New Zealand", "Oman", "Panama", "Peru", "French Polynesia",
 
324      "Papua New Guinea", "Philippines", "Pakistan", "Poland", "Saint Pierre and Miquelon",
 
325      "Pitcairn Islands", "Puerto Rico", "Palestinian Territory",
 
326      "Portugal", "Palau", "Paraguay", "Qatar", "Reunion", "Romania",
 
327      "Russian Federation", "Rwanda", "Saudi Arabia", "Solomon Islands",
 
328      "Seychelles", "Sudan", "Sweden", "Singapore", "Saint Helena", "Slovenia",
 
329      "Svalbard and Jan Mayen", "Slovakia", "Sierra Leone", "San Marino", "Senegal",
 
330      "Somalia", "Suriname", "Sao Tome and Principe", "El Salvador", "Syrian Arab Republic",
 
331      "Swaziland", "Turks and Caicos Islands", "Chad", "French Southern Territories",
 
332      "Togo", "Thailand", "Tajikistan", "Tokelau", "Turkmenistan",
 
333      "Tunisia", "Tonga", "Timor-Leste", "Turkey", "Trinidad and Tobago", "Tuvalu",
 
334      "Taiwan", "Tanzania, United Republic of", "Ukraine",
 
335      "Uganda", "United States Minor Outlying Islands", "United States", "Uruguay",
 
336      "Uzbekistan", "Holy See (Vatican City State)", "Saint Vincent and the Grenadines",
 
337      "Venezuela", "Virgin Islands, British", "Virgin Islands, U.S.",
 
338      "Vietnam", "Vanuatu", "Wallis and Futuna", "Samoa", "Yemen", "Mayotte",
 
339      "Serbia", "South Africa", "Zambia", "Montenegro", "Zimbabwe",
 
340      "Anonymous Proxy","Satellite Provider","Other",
 
341      "Aland Islands","Guernsey","Isle of Man","Jersey","Saint Barthelemy","Saint Martin"
 
342      ) 
343  
 
344  # storage / caching flags
 
345  STANDARD = 0 
346  MEMORY_CACHE = 1 
347  MMAP_CACHE = 8 
348  
 
349  # Database structure constants
 
350  COUNTRY_BEGIN = 16776960 
351  STATE_BEGIN_REV0 = 16700000 
352  STATE_BEGIN_REV1 = 16000000 
353  
 
354  STRUCTURE_INFO_MAX_SIZE = 20 
355  DATABASE_INFO_MAX_SIZE = 100 
356  
 
357  # Database editions
 
358  COUNTRY_EDITION = 1 
359  REGION_EDITION_REV0 = 7 
360  REGION_EDITION_REV1 = 3 
361  CITY_EDITION_REV0 = 6 
362  CITY_EDITION_REV1 = 2 
363  ORG_EDITION = 5 
364  ISP_EDITION = 4 
365  PROXY_EDITION = 8 
366  ASNUM_EDITION = 9 
367  NETSPEED_EDITION = 11 
368  COUNTRY_EDITION_V6 = 12 
369  
 
370  SEGMENT_RECORD_LENGTH = 3 
371  STANDARD_RECORD_LENGTH = 3 
372  ORG_RECORD_LENGTH = 4 
373  MAX_RECORD_LENGTH = 4 
374  MAX_ORG_RECORD_LENGTH = 300 
375  FULL_RECORD_LENGTH = 50 
376  
 
377  US_OFFSET = 1 
378  CANADA_OFFSET = 677 
379  WORLD_OFFSET = 1353 
380  FIPS_RANGE = 360 
381