﻿// ***************************************************************************
// *
// * Copyright (C) 2013 International Business Machines
// * Corporation and others. All Rights Reserved.
// * Tool: org.unicode.cldr.icu.NewLdml2IcuConverter
// * Source File: <path>/common/main/kea.xml
// *
// ***************************************************************************
/**
 *  ICU <specials> source: <path>/xml/main/kea.xml
 */
kea{
    Countries{
        001{"Mundu"}
        002{"Afrika"}
        003{"Merka di Norti"}
        005{"Merka di Sul"}
        009{"Oseania"}
        011{"Afrika Osidental"}
        013{"Merka Sentral"}
        014{"Afrika Oriental"}
        015{"Norti di Afrika"}
        017{"Afrika Sentral"}
        018{"Sul di Afrika"}
        019{"Merkas"}
        021{"Norti di Merka"}
        029{"Karaibas"}
        030{"Azia Oriental"}
        034{"Sul di Azia"}
        035{"Sudesti Aziatiku"}
        039{"Europa di Sul"}
        053{"Australazia"}
        054{"Melanezia"}
        057{"Rejiãu di Mikronezia"}
        061{"Polinezia"}
        142{"Azia"}
        143{"Azia Sentral"}
        145{"Azia Osidental"}
        150{"Europa"}
        151{"Europa Oriental"}
        154{"Europa di Norti"}
        155{"Europa Osidental"}
        419{"Merka Latinu"}
        AC{"Ilha di Asensãu"}
        AD{"Andora"}
        AE{"Emiradus Arabi Unidu"}
        AF{"Afeganistãu"}
        AG{"Antigua i Barbuda"}
        AI{"Angila"}
        AL{"Albania"}
        AM{"Armenia"}
        AN{"Antilhas Olandeza"}
        AO{"Angola"}
        AQ{"Antartika"}
        AR{"Arjentina"}
        AS{"Samoa Merkanu"}
        AT{"Austria"}
        AU{"Australia"}
        AW{"Aruba"}
        AX{"Ilhas Åland"}
        AZ{"Azerbaijãu"}
        BA{"Bosnia-Erzegovina"}
        BB{"Barbadus"}
        BD{"Bangladexi"}
        BE{"Béljika"}
        BF{"Burkina Fasu"}
        BG{"Bulgaria"}
        BH{"Barain"}
        BI{"Burundi"}
        BJ{"Benin"}
        BL{"Sãu Bartolomeu"}
        BM{"Bermudas"}
        BN{"Brunei"}
        BO{"Bolivia"}
        BQ{"Karaibas olandes"}
        BR{"Brazil"}
        BS{"Baamas"}
        BT{"Butãu"}
        BV{"Ilha Buve"}
        BW{"Botsuana"}
        BY{"Belarus"}
        BZ{"Belizi"}
        CA{"Kanadá"}
        CC{"Ilhas Kokus"}
        CD{"Kongu - Kinxasa"}
        CF{"Republika Sentru-Afrikanu"}
        CG{"Kongu - Brazavili"}
        CH{"Suisa"}
        CI{"Kosta di Marfin"}
        CK{"Ilhas Kuk"}
        CL{"Xili"}
        CM{"Kamarõis"}
        CN{"Xina"}
        CO{"Kulombia"}
        CP{"Ilha Kliperton"}
        CR{"Kosta Rika"}
        CU{"Kuba"}
        CV{"Kabu Verdi"}
        CW{"Kurasau"}
        CX{"Ilha di Natal"}
        CY{"Xipri"}
        CZ{"Republika Txeka"}
        DE{"Alimanha"}
        DG{"Diegu Garsia"}
        DJ{"Djibuti"}
        DK{"Dinamarka"}
        DM{"Dominika"}
        DO{"Repúblika Dominikana"}
        DZ{"Arjelia"}
        EA{"Seuta i Melila"}
        EC{"Ekuador"}
        EE{"Stonia"}
        EG{"Ejitu"}
        EH{"Sara Osidental"}
        ER{"Iritreia"}
        ES{"Spanha"}
        ET{"Itiopia"}
        EU{"Uniãu Europeia"}
        FI{"Finlandia"}
        FJ{"Fidji"}
        FK{"Ilhas Malvinas"}
        FM{"Mikronezia"}
        FO{"Ilhas Faroe"}
        FR{"Fransa"}
        GA{"Gabãu"}
        GB{"Reinu Unidu"}
        GD{"Granada"}
        GE{"Jiorjia"}
        GF{"Giana Franseza"}
        GG{"Gernzi"}
        GH{"Gana"}
        GI{"Jibraltar"}
        GL{"Gronelandia"}
        GM{"Gambia"}
        GN{"Gine"}
        GP{"Guadalupi"}
        GQ{"Gine Ekuatorial"}
        GR{"Gresia"}
        GS{"Jeórjia di Sul i Ilhas di Sanduixi di Sul"}
        GT{"Guatimala"}
        GU{"Guam"}
        GW{"Gine-Bisau"}
        GY{"Giana"}
        HK{"Ong Kong"}
        HM{"Ilha Heard i Ilhas McDonald"}
        HN{"Onduras"}
        HR{"Kroasia"}
        HT{"Aiti"}
        HU{"Ungria"}
        IC{"Kanárias"}
        ID{"Indonezia"}
        IE{"Irlanda"}
        IL{"Israel"}
        IM{"Ilha di Man"}
        IN{"India"}
        IO{"Ilhas Britanika di Indiku"}
        IQ{"Iraki"}
        IR{"Iron"}
        IS{"Islandia"}
        IT{"Italia"}
        JE{"Jersi"}
        JM{"Jamaika"}
        JO{"Jordania"}
        JP{"Japãu"}
        KE{"Kenia"}
        KG{"Kirgiston"}
        KH{"Kambodja"}
        KI{"Kiribati"}
        KM{"Kamoris"}
        KN{"Sãu Kristovãu i Nevis"}
        KP{"Koreia di Norti"}
        KR{"Koreia di Sul"}
        KW{"Kueiti"}
        KY{"Ilhas Kaimãu"}
        KZ{"Kazakistãu"}
        LA{"Laus"}
        LB{"Libanu"}
        LC{"Santa Lúsia"}
        LI{"Lixenstain"}
        LK{"Sri Lanka"}
        LR{"Liberia"}
        LS{"Lezotu"}
        LT{"Lituania"}
        LU{"Luxemburgu"}
        LV{"Letonia"}
        LY{"Libia"}
        MA{"Marokus"}
        MC{"Monaku"}
        MD{"Moldavia"}
        ME{"Montenegru"}
        MF{"Sãu Martinhu di Fransa"}
        MG{"Madagaskar"}
        MH{"Ilhas Marxal"}
        MK{"Masidonia"}
        ML{"Mali"}
        MM{"Mianmar"}
        MN{"Mongolia"}
        MO{"Makau"}
        MP{"Ilhas Marianas di Norti"}
        MQ{"Martinika"}
        MR{"Mauritania"}
        MS{"Monserat"}
        MT{"Malta"}
        MU{"Ilhas Maurisia"}
        MV{"Maldivas"}
        MW{"Malaui"}
        MX{"Mexiku"}
        MY{"Malazia"}
        MZ{"Musambiki"}
        NA{"Namibia"}
        NC{"Nova Kalidonia"}
        NE{"Nijer"}
        NF{"Ilhas Norfolk"}
        NG{"Nijeria"}
        NI{"Nikaragua"}
        NL{"Olanda"}
        NO{"Noruega"}
        NP{"Nepal"}
        NR{"Nauru"}
        NU{"Niue"}
        NZ{"Nova Zilandia"}
        OM{"Oman"}
        PA{"Panama"}
        PE{"Peru"}
        PF{"Polinezia Franseza"}
        PG{"Papua-Nova Gine"}
        PH{"Filipinas"}
        PK{"Pakistãu"}
        PL{"Pulonia"}
        PM{"San Piere i Mikelon"}
        PN{"Pirkairn"}
        PR{"Portu Riku"}
        PS{"Palistina"}
        PT{"Purtugal"}
        PW{"Palau"}
        PY{"Paraguai"}
        QA{"Katar"}
        QO{"Oseania Insular"}
        RE{"Runion"}
        RO{"Romenia"}
        RS{"Servia"}
        RU{"Rúsia"}
        RW{"Ruanda"}
        SA{"Arabia Saudita"}
        SB{"Ilhas Salumon"}
        SC{"Seixelis"}
        SD{"Sudãu"}
        SE{"Suesia"}
        SG{"Singapura"}
        SH{"Santa Ilena"}
        SI{"Slovenia"}
        SJ{"Svalbard i Jan Maien"}
        SK{"Slovakia"}
        SL{"Sera Lioa"}
        SM{"San Marinu"}
        SN{"Senegal"}
        SO{"Sumalia"}
        SR{"Surinami"}
        SS{"Sudãu di Sul"}
        ST{"Sãu Tume i Prinsipi"}
        SV{"El Salvador"}
        SX{"Sãu Martinhu di Olanda"}
        SY{"Siria"}
        SZ{"Suazilándia"}
        TA{"Tristan da Kunha"}
        TC{"Ilhas Turkas i Kaikus"}
        TD{"Txadi"}
        TF{"Terras Franses di Sul"}
        TG{"Togu"}
        TH{"Tailandia"}
        TJ{"Tadjikistãu"}
        TK{"Tokelau"}
        TL{"Timor Lesti"}
        TM{"Turkumenistãu"}
        TN{"Tunizia"}
        TO{"Tonga"}
        TR{"Turkia"}
        TT{"Trinidad i Tobagu"}
        TV{"Tuvalu"}
        TW{"Taiuan"}
        TZ{"Tanzania"}
        UA{"Ukrania"}
        UG{"Uganda"}
        UM{"Ilhas Minoris Distantis de Stadus Unidus"}
        US{"Stadus Unidos di Merka"}
        UY{"Uruguai"}
        UZ{"Uzbekistãu"}
        VA{"Vatikanu"}
        VC{"Sãu Bisenti i Granadinas"}
        VE{"Vinizuea"}
        VG{"Ilhas Virjens Britanikas"}
        VI{"Ilhas Virjens Merkanu"}
        VN{"Vietnam"}
        VU{"Vanuatu"}
        WF{"Ualis i Futuna"}
        WS{"Samoa"}
        YE{"Iemen"}
        YT{"Maiote"}
        ZA{"Afrika di Sul"}
        ZM{"Zambia"}
        ZW{"Zimbabui"}
        ZZ{"Rejiãu Diskonxedu"}
    }
    Version{"2.0.82.45"}
}
