/*
 * Copyright 2012 Google Inc.
 * 
 * Licensed under the Apache License, Version 2.0 (the "License"); you may not
 * use this file except in compliance with the License. You may obtain a copy of
 * the License at
 * 
 * http://www.apache.org/licenses/LICENSE-2.0
 * 
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
 * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
 * License for the specific language governing permissions and limitations under
 * the License.
 */
package com.google.gwt.i18n.client.impl.cldr;

import com.google.gwt.core.client.JavaScriptObject;

// DO NOT EDIT - GENERATED FROM CLDR DATA

/**
 * Localized names for the "kln" locale.
 */
public class LocalizedNamesImpl_kln extends LocalizedNamesImpl {

  @Override
  public String[] loadSortedRegionCodes() {
    return new String[] {
        "AC",
        "AQ",
        "AX",
        "BL",
        "BQ",
        "BV",
        "CC",
        "CP",
        "CW",
        "CX",
        "DG",
        "EA",
        "EH",
        "AF",
        "CF",
        "ZA",
        "AL",
        "DZ",
        "AS",
        "US",
        "AD",
        "AO",
        "AI",
        "AG",
        "AN",
        "AR",
        "AM",
        "AW",
        "AU",
        "AT",
        "AZ",
        "BS",
        "BH",
        "BD",
        "BB",
        "BY",
        "BE",
        "BZ",
        "BJ",
        "BM",
        "BT",
        "BO",
        "BA",
        "BW",
        "BR",
        "BN",
        "BG",
        "BF",
        "BI",
        "KH",
        "CM",
        "CA",
        "TD",
        "CL",
        "CN",
        "CO",
        "KM",
        "CG",
        "CD",
        "CR",
        "CI",
        "HR",
        "CU",
        "CY",
        "CZ",
        "DK",
        "DJ",
        "DM",
        "DO",
        "EC",
        "SV",
        "GQ",
        "ER",
        "EE",
        "ET",
        "FJ",
        "FI",
        "FR",
        "GA",
        "GM",
        "GE",
        "DE",
        "GH",
        "GI",
        "GR",
        "GL",
        "GD",
        "GP",
        "GU",
        "GT",
        "GF",
        "GN",
        "GW",
        "GY",
        "HT",
        "SH",
        "NL",
        "HN",
        "HU",
        "IS",
        "IN",
        "ID",
        "IR",
        "IQ",
        "IE",
        "IL",
        "IT",
        "JM",
        "JP",
        "JO",
        "KZ",
        "KE",
        "AE",
        "GB",
        "KI",
        "KP",
        "KR",
        "KW",
        "KG",
        "LA",
        "LV",
        "LB",
        "LS",
        "LR",
        "LY",
        "LI",
        "LT",
        "LC",
        "LU",
        "MK",
        "MG",
        "MW",
        "MY",
        "MV",
        "ML",
        "MT",
        "MQ",
        "MR",
        "MU",
        "YT",
        "MX",
        "FM",
        "EG",
        "MD",
        "MC",
        "MN",
        "MS",
        "MA",
        "MZ",
        "MM",
        "NA",
        "NR",
        "NP",
        "NC",
        "NZ",
        "NI",
        "NE",
        "NG",
        "NU",
        "NO",
        "OM",
        "PK",
        "PW",
        "PS",
        "PA",
        "PG",
        "PY",
        "PE",
        "PM",
        "PH",
        "PN",
        "PL",
        "PF",
        "PT",
        "PR",
        "QA",
        "RE",
        "RO",
        "RU",
        "RW",
        "KN",
        "WS",
        "SM",
        "ST",
        "SA",
        "SN",
        "SC",
        "SL",
        "SG",
        "SK",
        "SI",
        "SO",
        "ES",
        "LK",
        "SD",
        "SR",
        "SZ",
        "SE",
        "CH",
        "SY",
        "TW",
        "TJ",
        "TZ",
        "TH",
        "TL",
        "TG",
        "TK",
        "TO",
        "TT",
        "TN",
        "TR",
        "TM",
        "TV",
        "UG",
        "UA",
        "UY",
        "UZ",
        "VU",
        "VA",
        "VE",
        "VN",
        "VC",
        "WF",
        "YE",
        "ZM",
        "ZW",
        "EU",
        "FO",
        "GG",
        "GS",
        "HK",
        "HM",
        "IC",
        "MP",
        "MH",
        "NF",
        "SB",
        "TC",
        "VG",
        "CV",
        "KY",
        "CK",
        "FK",
        "VI",
        "IM",
        "JE",
        "IO",
        "ME",
        "MF",
        "MO",
        "QO",
        "RS",
        "SJ",
        "SS",
        "SX",
        "TA",
        "TF",
        "UM",
        "XK",
    };
  }

  @Override
  protected void loadNameMapJava() {
    super.loadNameMapJava();
    namesMap.put("AD", "Emetab Andorra");
    namesMap.put("AE", "Emetab kibagenge nebo arabuk");
    namesMap.put("AF", "Emetab Afghanistan");
    namesMap.put("AG", "Emetab Antigua ak Barbuda");
    namesMap.put("AI", "Emetab Anguilla");
    namesMap.put("AL", "Emetab Albania");
    namesMap.put("AM", "Emetab Armenia");
    namesMap.put("AN", "Emetab Antile nebo Holand");
    namesMap.put("AO", "Emetab Angola");
    namesMap.put("AR", "Emetab Argentina");
    namesMap.put("AS", "Emetab American Samoa");
    namesMap.put("AT", "Emetab Austria");
    namesMap.put("AU", "Emetab Australia");
    namesMap.put("AW", "Emetab Aruba");
    namesMap.put("AZ", "Emetab Azerbaijan");
    namesMap.put("BA", "Emetab Bosnia ak Herzegovina");
    namesMap.put("BB", "Emetab Barbados");
    namesMap.put("BD", "Emetab Bangladesh");
    namesMap.put("BE", "Emetab Belgium");
    namesMap.put("BF", "Emetab Burkina Faso");
    namesMap.put("BG", "Emetab Bulgaria");
    namesMap.put("BH", "Emetab Bahrain");
    namesMap.put("BI", "Emetab Burundi");
    namesMap.put("BJ", "Emetab Benin");
    namesMap.put("BM", "Emetab Bermuda");
    namesMap.put("BN", "Emetab Brunei");
    namesMap.put("BO", "Emetab Bolivia");
    namesMap.put("BR", "Emetab Brazil");
    namesMap.put("BS", "Emetab Bahamas");
    namesMap.put("BT", "Emetab Bhutan");
    namesMap.put("BW", "Emetab Botswana");
    namesMap.put("BY", "Emetab Belarus");
    namesMap.put("BZ", "Emetab Belize");
    namesMap.put("CA", "Emetab Canada");
    namesMap.put("CD", "Emetab Congo - Kinshasa");
    namesMap.put("CF", "Emetab Afrika nebo Kwen");
    namesMap.put("CG", "Emetab Congo - Brazzaville");
    namesMap.put("CH", "Emetab Switzerland");
    namesMap.put("CI", "Emetab Côte d'Ivoire");
    namesMap.put("CK", "Ikwembeyotab Cook");
    namesMap.put("CL", "Emetab Chile");
    namesMap.put("CM", "Emetab Cameroon");
    namesMap.put("CN", "Emetab China");
    namesMap.put("CO", "Emetab Colombia");
    namesMap.put("CR", "Emetab Costa Rica");
    namesMap.put("CU", "Emetab Cuba");
    namesMap.put("CV", "Ikwembeyotab Cape Verde");
    namesMap.put("CY", "Emetab Cyprus");
    namesMap.put("CZ", "Emetab Czech Republic");
    namesMap.put("DE", "Emetab Geruman");
    namesMap.put("DJ", "Emetab Djibouti");
    namesMap.put("DK", "Emetab Denmark");
    namesMap.put("DM", "Emetab Dominica");
    namesMap.put("DO", "Emetab Dominican Republic");
    namesMap.put("DZ", "Emetab Algeria");
    namesMap.put("EC", "Emetab Ecuador");
    namesMap.put("EE", "Emetab Estonia");
    namesMap.put("EG", "Emetab Misiri");
    namesMap.put("ER", "Emetab Eritrea");
    namesMap.put("ES", "Emetab Spain");
    namesMap.put("ET", "Emetab Ethiopia");
    namesMap.put("FI", "Emetab Finland");
    namesMap.put("FJ", "Emetab Fiji");
    namesMap.put("FK", "Ikwembeyotab Falkland");
    namesMap.put("FM", "Emetab Micronesia");
    namesMap.put("FR", "Emetab France");
    namesMap.put("GA", "Emetab Gabon");
    namesMap.put("GB", "Emetab Kibagenge nebo Uingereza");
    namesMap.put("GD", "Emetab Grenada");
    namesMap.put("GE", "Emetab Georgia");
    namesMap.put("GF", "Emetab Guiana nebo Ufaransa");
    namesMap.put("GH", "Emetab Ghana");
    namesMap.put("GI", "Emetab Gibraltar");
    namesMap.put("GL", "Emetab Greenland");
    namesMap.put("GM", "Emetab Gambia");
    namesMap.put("GN", "Emetab Guinea");
    namesMap.put("GP", "Emetab Guadeloupe");
    namesMap.put("GQ", "Emetab Equatorial Guinea");
    namesMap.put("GR", "Emetab Greece");
    namesMap.put("GT", "Emetab Guatemala");
    namesMap.put("GU", "Emetab Guam");
    namesMap.put("GW", "Emetab Guinea-Bissau");
    namesMap.put("GY", "Emetab Guyana");
    namesMap.put("HN", "Emetab Honduras");
    namesMap.put("HR", "Emetab Croatia");
    namesMap.put("HT", "Emetab Haiti");
    namesMap.put("HU", "Emetab Hungary");
    namesMap.put("ID", "Emetab Indonesia");
    namesMap.put("IE", "Emetab Ireland");
    namesMap.put("IL", "Emetab Israel");
    namesMap.put("IN", "Emetab India");
    namesMap.put("IO", "Kebebertab araraitab indian Ocean nebo Uingeresa");
    namesMap.put("IQ", "Emetab Iraq");
    namesMap.put("IR", "Emetab Iran");
    namesMap.put("IS", "Emetab Iceland");
    namesMap.put("IT", "Emetab Italy");
    namesMap.put("JM", "Emetab Jamaica");
    namesMap.put("JO", "Emetab Jordan");
    namesMap.put("JP", "Emetab Japan");
    namesMap.put("KE", "Emetab Kenya");
    namesMap.put("KG", "Emetab Kyrgyzstan");
    namesMap.put("KH", "Emetab Cambodia");
    namesMap.put("KI", "Emetab Kiribati");
    namesMap.put("KM", "Emetab Comoros");
    namesMap.put("KN", "Emetab Saint Kitts ak Nevis");
    namesMap.put("KP", "Emetab Korea nebo murot katam");
    namesMap.put("KR", "Emetab korea nebo murot tai");
    namesMap.put("KW", "Emetab Kuwait");
    namesMap.put("KY", "Ikwembeyotab Cayman");
    namesMap.put("KZ", "Emetab Kazakhstan");
    namesMap.put("LA", "Emetab Laos");
    namesMap.put("LB", "Emetab Lebanon");
    namesMap.put("LC", "Emetab Lucia Ne");
    namesMap.put("LI", "Emetab Liechtenstein");
    namesMap.put("LK", "Emetab Sri Lanka");
    namesMap.put("LR", "Emetab Liberia");
    namesMap.put("LS", "Emetab Lesotho");
    namesMap.put("LT", "Emetab Lithuania");
    namesMap.put("LU", "Emetab Luxembourg");
    namesMap.put("LV", "Emetab Latvia");
    namesMap.put("LY", "Emetab Libya");
    namesMap.put("MA", "Emetab Morocco");
    namesMap.put("MC", "Emetab Monaco");
    namesMap.put("MD", "Emetab Moldova");
    namesMap.put("MG", "Emetab Madagascar");
    namesMap.put("MH", "Ikwembeiyotab Marshall");
    namesMap.put("MK", "Emetab Macedonia");
    namesMap.put("ML", "Emetab Mali");
    namesMap.put("MM", "Emetab Myanmar");
    namesMap.put("MN", "Emetab Mongolia");
    namesMap.put("MP", "Ikwembeiyotab Mariana nebo murot katam");
    namesMap.put("MQ", "Emetab Martinique");
    namesMap.put("MR", "Emetab Mauritania");
    namesMap.put("MS", "Emetab Montserrat");
    namesMap.put("MT", "Emetab Malta");
    namesMap.put("MU", "Emetab Mauritius");
    namesMap.put("MV", "Emetab Maldives");
    namesMap.put("MW", "Emetab Malawi");
    namesMap.put("MX", "Emetab Mexico");
    namesMap.put("MY", "Emetab Malaysia");
    namesMap.put("MZ", "Emetab Mozambique");
    namesMap.put("NA", "Emetab Namibia");
    namesMap.put("NC", "Emetab New Caledonia");
    namesMap.put("NE", "Emetab niger");
    namesMap.put("NF", "Ikwembeiyotab Norfork");
    namesMap.put("NG", "Emetab Nigeria");
    namesMap.put("NI", "Emetab Nicaragua");
    namesMap.put("NL", "Emetab Holand");
    namesMap.put("NO", "Emetab Norway");
    namesMap.put("NP", "Emetab Nepal");
    namesMap.put("NR", "Emetab Nauru");
    namesMap.put("NU", "Emetab Niue");
    namesMap.put("NZ", "Emetab New Zealand");
    namesMap.put("OM", "Emetab Oman");
    namesMap.put("PA", "Emetab Panama");
    namesMap.put("PE", "Emetab Peru");
    namesMap.put("PF", "Emetab Polynesia nebo ufaransa");
    namesMap.put("PG", "Emetab Papua New Guinea");
    namesMap.put("PH", "Emetab Philippines");
    namesMap.put("PK", "Emetab Pakistan");
    namesMap.put("PL", "Emetab Poland");
    namesMap.put("PM", "Emetab Peter Ne titil ak Miquelon");
    namesMap.put("PN", "Emetab Pitcairn");
    namesMap.put("PR", "Emetab Puerto Rico");
    namesMap.put("PS", "Emetab Palestine");
    namesMap.put("PT", "Emetab Portugal");
    namesMap.put("PW", "Emetab Palau");
    namesMap.put("PY", "Emetab Paraguay");
    namesMap.put("QA", "Emetab Qatar");
    namesMap.put("RE", "Emetab Réunion");
    namesMap.put("RO", "Emetab Romania");
    namesMap.put("RU", "Emetab Russia");
    namesMap.put("RW", "Emetab Rwanda");
    namesMap.put("SA", "Emetab Saudi Arabia");
    namesMap.put("SB", "Ikwembeiyotab Solomon");
    namesMap.put("SC", "Emetab Seychelles");
    namesMap.put("SD", "Emetab Sudan");
    namesMap.put("SE", "Emetab Sweden");
    namesMap.put("SG", "Emetab Singapore");
    namesMap.put("SH", "Emetab Helena Ne tilil");
    namesMap.put("SI", "Emetab Slovenia");
    namesMap.put("SK", "Emetab Slovakia");
    namesMap.put("SL", "Emetab Sierra Leone");
    namesMap.put("SM", "Emetab San Marino");
    namesMap.put("SN", "Emetab Senegal");
    namesMap.put("SO", "Emetab Somalia");
    namesMap.put("SR", "Emetab Suriname");
    namesMap.put("ST", "Emetab São Tomé and Príncipe");
    namesMap.put("SV", "Emetab El Salvador");
    namesMap.put("SY", "Emetab Syria");
    namesMap.put("SZ", "Emetab Swaziland");
    namesMap.put("TC", "Ikwembeiyotab Turks ak Caicos");
    namesMap.put("TD", "Emetab Chad");
    namesMap.put("TG", "Emetab Togo");
    namesMap.put("TH", "Emetab Thailand");
    namesMap.put("TJ", "Emetab Tajikistan");
    namesMap.put("TK", "Emetab Tokelau");
    namesMap.put("TL", "Emetab Timor nebo Murot tai");
    namesMap.put("TM", "Emetab Turkmenistan");
    namesMap.put("TN", "Emetab Tunisia");
    namesMap.put("TO", "Emetab Tonga");
    namesMap.put("TR", "Emetab Turkey");
    namesMap.put("TT", "Emetab Trinidad ak Tobago");
    namesMap.put("TV", "Emetab Tuvalu");
    namesMap.put("TW", "Emetab Taiwan");
    namesMap.put("TZ", "Emetab Tanzania");
    namesMap.put("UA", "Emetab Ukrainie");
    namesMap.put("UG", "Emetab Uganda");
    namesMap.put("US", "Emetab amerika");
    namesMap.put("UY", "Emetab Uruguay");
    namesMap.put("UZ", "Emetab Uzibekistani");
    namesMap.put("VA", "Emetab Vatican");
    namesMap.put("VC", "Emetab Vincent netilil ak Grenadines");
    namesMap.put("VE", "Emetab Venezuela");
    namesMap.put("VG", "Ikwembeyotab British Virgin");
    namesMap.put("VI", "Ikwemweiyotab Amerika");
    namesMap.put("VN", "Emetab Vietnam");
    namesMap.put("VU", "Emetab Vanuatu");
    namesMap.put("WF", "Emetab Walis ak Futuna");
    namesMap.put("WS", "Emetab Samoa");
    namesMap.put("YE", "Emetab Yemen");
    namesMap.put("YT", "Emetab Mayotte");
    namesMap.put("ZA", "Emetab Afrika nebo Murot tai");
    namesMap.put("ZM", "Emetab Zambia");
    namesMap.put("ZW", "Emetab Zimbabwe");
  }

  @Override
  protected JavaScriptObject loadNameMapNative() {
    return overrideMap(super.loadNameMapNative(), loadMyNameMap());
  }

  private native JavaScriptObject loadMyNameMap() /*-{
    return {
        "AD": "Emetab Andorra",
        "AE": "Emetab kibagenge nebo arabuk",
        "AF": "Emetab Afghanistan",
        "AG": "Emetab Antigua ak Barbuda",
        "AI": "Emetab Anguilla",
        "AL": "Emetab Albania",
        "AM": "Emetab Armenia",
        "AN": "Emetab Antile nebo Holand",
        "AO": "Emetab Angola",
        "AR": "Emetab Argentina",
        "AS": "Emetab American Samoa",
        "AT": "Emetab Austria",
        "AU": "Emetab Australia",
        "AW": "Emetab Aruba",
        "AZ": "Emetab Azerbaijan",
        "BA": "Emetab Bosnia ak Herzegovina",
        "BB": "Emetab Barbados",
        "BD": "Emetab Bangladesh",
        "BE": "Emetab Belgium",
        "BF": "Emetab Burkina Faso",
        "BG": "Emetab Bulgaria",
        "BH": "Emetab Bahrain",
        "BI": "Emetab Burundi",
        "BJ": "Emetab Benin",
        "BM": "Emetab Bermuda",
        "BN": "Emetab Brunei",
        "BO": "Emetab Bolivia",
        "BR": "Emetab Brazil",
        "BS": "Emetab Bahamas",
        "BT": "Emetab Bhutan",
        "BW": "Emetab Botswana",
        "BY": "Emetab Belarus",
        "BZ": "Emetab Belize",
        "CA": "Emetab Canada",
        "CD": "Emetab Congo - Kinshasa",
        "CF": "Emetab Afrika nebo Kwen",
        "CG": "Emetab Congo - Brazzaville",
        "CH": "Emetab Switzerland",
        "CI": "Emetab Côte d'Ivoire",
        "CK": "Ikwembeyotab Cook",
        "CL": "Emetab Chile",
        "CM": "Emetab Cameroon",
        "CN": "Emetab China",
        "CO": "Emetab Colombia",
        "CR": "Emetab Costa Rica",
        "CU": "Emetab Cuba",
        "CV": "Ikwembeyotab Cape Verde",
        "CY": "Emetab Cyprus",
        "CZ": "Emetab Czech Republic",
        "DE": "Emetab Geruman",
        "DJ": "Emetab Djibouti",
        "DK": "Emetab Denmark",
        "DM": "Emetab Dominica",
        "DO": "Emetab Dominican Republic",
        "DZ": "Emetab Algeria",
        "EC": "Emetab Ecuador",
        "EE": "Emetab Estonia",
        "EG": "Emetab Misiri",
        "ER": "Emetab Eritrea",
        "ES": "Emetab Spain",
        "ET": "Emetab Ethiopia",
        "FI": "Emetab Finland",
        "FJ": "Emetab Fiji",
        "FK": "Ikwembeyotab Falkland",
        "FM": "Emetab Micronesia",
        "FR": "Emetab France",
        "GA": "Emetab Gabon",
        "GB": "Emetab Kibagenge nebo Uingereza",
        "GD": "Emetab Grenada",
        "GE": "Emetab Georgia",
        "GF": "Emetab Guiana nebo Ufaransa",
        "GH": "Emetab Ghana",
        "GI": "Emetab Gibraltar",
        "GL": "Emetab Greenland",
        "GM": "Emetab Gambia",
        "GN": "Emetab Guinea",
        "GP": "Emetab Guadeloupe",
        "GQ": "Emetab Equatorial Guinea",
        "GR": "Emetab Greece",
        "GT": "Emetab Guatemala",
        "GU": "Emetab Guam",
        "GW": "Emetab Guinea-Bissau",
        "GY": "Emetab Guyana",
        "HN": "Emetab Honduras",
        "HR": "Emetab Croatia",
        "HT": "Emetab Haiti",
        "HU": "Emetab Hungary",
        "ID": "Emetab Indonesia",
        "IE": "Emetab Ireland",
        "IL": "Emetab Israel",
        "IN": "Emetab India",
        "IO": "Kebebertab araraitab indian Ocean nebo Uingeresa",
        "IQ": "Emetab Iraq",
        "IR": "Emetab Iran",
        "IS": "Emetab Iceland",
        "IT": "Emetab Italy",
        "JM": "Emetab Jamaica",
        "JO": "Emetab Jordan",
        "JP": "Emetab Japan",
        "KE": "Emetab Kenya",
        "KG": "Emetab Kyrgyzstan",
        "KH": "Emetab Cambodia",
        "KI": "Emetab Kiribati",
        "KM": "Emetab Comoros",
        "KN": "Emetab Saint Kitts ak Nevis",
        "KP": "Emetab Korea nebo murot katam",
        "KR": "Emetab korea nebo murot tai",
        "KW": "Emetab Kuwait",
        "KY": "Ikwembeyotab Cayman",
        "KZ": "Emetab Kazakhstan",
        "LA": "Emetab Laos",
        "LB": "Emetab Lebanon",
        "LC": "Emetab Lucia Ne",
        "LI": "Emetab Liechtenstein",
        "LK": "Emetab Sri Lanka",
        "LR": "Emetab Liberia",
        "LS": "Emetab Lesotho",
        "LT": "Emetab Lithuania",
        "LU": "Emetab Luxembourg",
        "LV": "Emetab Latvia",
        "LY": "Emetab Libya",
        "MA": "Emetab Morocco",
        "MC": "Emetab Monaco",
        "MD": "Emetab Moldova",
        "MG": "Emetab Madagascar",
        "MH": "Ikwembeiyotab Marshall",
        "MK": "Emetab Macedonia",
        "ML": "Emetab Mali",
        "MM": "Emetab Myanmar",
        "MN": "Emetab Mongolia",
        "MP": "Ikwembeiyotab Mariana nebo murot katam",
        "MQ": "Emetab Martinique",
        "MR": "Emetab Mauritania",
        "MS": "Emetab Montserrat",
        "MT": "Emetab Malta",
        "MU": "Emetab Mauritius",
        "MV": "Emetab Maldives",
        "MW": "Emetab Malawi",
        "MX": "Emetab Mexico",
        "MY": "Emetab Malaysia",
        "MZ": "Emetab Mozambique",
        "NA": "Emetab Namibia",
        "NC": "Emetab New Caledonia",
        "NE": "Emetab niger",
        "NF": "Ikwembeiyotab Norfork",
        "NG": "Emetab Nigeria",
        "NI": "Emetab Nicaragua",
        "NL": "Emetab Holand",
        "NO": "Emetab Norway",
        "NP": "Emetab Nepal",
        "NR": "Emetab Nauru",
        "NU": "Emetab Niue",
        "NZ": "Emetab New Zealand",
        "OM": "Emetab Oman",
        "PA": "Emetab Panama",
        "PE": "Emetab Peru",
        "PF": "Emetab Polynesia nebo ufaransa",
        "PG": "Emetab Papua New Guinea",
        "PH": "Emetab Philippines",
        "PK": "Emetab Pakistan",
        "PL": "Emetab Poland",
        "PM": "Emetab Peter Ne titil ak Miquelon",
        "PN": "Emetab Pitcairn",
        "PR": "Emetab Puerto Rico",
        "PS": "Emetab Palestine",
        "PT": "Emetab Portugal",
        "PW": "Emetab Palau",
        "PY": "Emetab Paraguay",
        "QA": "Emetab Qatar",
        "RE": "Emetab Réunion",
        "RO": "Emetab Romania",
        "RU": "Emetab Russia",
        "RW": "Emetab Rwanda",
        "SA": "Emetab Saudi Arabia",
        "SB": "Ikwembeiyotab Solomon",
        "SC": "Emetab Seychelles",
        "SD": "Emetab Sudan",
        "SE": "Emetab Sweden",
        "SG": "Emetab Singapore",
        "SH": "Emetab Helena Ne tilil",
        "SI": "Emetab Slovenia",
        "SK": "Emetab Slovakia",
        "SL": "Emetab Sierra Leone",
        "SM": "Emetab San Marino",
        "SN": "Emetab Senegal",
        "SO": "Emetab Somalia",
        "SR": "Emetab Suriname",
        "ST": "Emetab São Tomé and Príncipe",
        "SV": "Emetab El Salvador",
        "SY": "Emetab Syria",
        "SZ": "Emetab Swaziland",
        "TC": "Ikwembeiyotab Turks ak Caicos",
        "TD": "Emetab Chad",
        "TG": "Emetab Togo",
        "TH": "Emetab Thailand",
        "TJ": "Emetab Tajikistan",
        "TK": "Emetab Tokelau",
        "TL": "Emetab Timor nebo Murot tai",
        "TM": "Emetab Turkmenistan",
        "TN": "Emetab Tunisia",
        "TO": "Emetab Tonga",
        "TR": "Emetab Turkey",
        "TT": "Emetab Trinidad ak Tobago",
        "TV": "Emetab Tuvalu",
        "TW": "Emetab Taiwan",
        "TZ": "Emetab Tanzania",
        "UA": "Emetab Ukrainie",
        "UG": "Emetab Uganda",
        "US": "Emetab amerika",
        "UY": "Emetab Uruguay",
        "UZ": "Emetab Uzibekistani",
        "VA": "Emetab Vatican",
        "VC": "Emetab Vincent netilil ak Grenadines",
        "VE": "Emetab Venezuela",
        "VG": "Ikwembeyotab British Virgin",
        "VI": "Ikwemweiyotab Amerika",
        "VN": "Emetab Vietnam",
        "VU": "Emetab Vanuatu",
        "WF": "Emetab Walis ak Futuna",
        "WS": "Emetab Samoa",
        "YE": "Emetab Yemen",
        "YT": "Emetab Mayotte",
        "ZA": "Emetab Afrika nebo Murot tai",
        "ZM": "Emetab Zambia",
        "ZW": "Emetab Zimbabwe"
    };
  }-*/;
}
