// ****************************************************************************
// *                                                                          *
// * COPYRIGHT:                                                               *
// * (C) Copyright Taligent, Inc.,  1997                                      *
// * (C) Copyright International Business Machines Corporation,  1997-99      *
// * Licensed Material - Program-Property of IBM - All Rights Reserved.       *
// * US Government Users Restricted Rights - Use, duplication, or disclosure  *
// * restricted by GSA ADP Schedule Contract with IBM Corp.                   *
// *                                                                          *
// ****************************************************************************

bg {
    CollationElements { "& 9 < \u0482 & Z < \u0430 , \u0410< \u0431 , \u0411< \u0432"
        " , \u0412< \u0433 , \u0413; \u0491 , \u0490; \u0495 , \u0494; \u0453 , \u0403; "
        "\u0493 , \u0492< \u0434 , \u0414< \u0452 , \u0402< \u0435 , \u0415; \u04BD , \u04BC"
        "; \u0451 , \u0401; \u04BF , \u04BE< \u0454 , \u0404< \u0436 , \u0416; \u0497 , "
        "\u0496; \u04C2 , \u04C1< \u0437 , \u0417; \u0499 , \u0498< \u0455 , \u0405< \u0438"
        " , \u0418< \u0456 , \u0406; \u04C0 < \u0457 , \u0407< \u0439 , \u0419< \u0458 ,"
        " \u0408< \u043A , \u041A; \u049F , \u049E; \u04C4 , \u04C3; \u049D , \u049C; \u04A1"
        " , \u04A0; \u045C , \u040C; \u049B , \u049A< \u043B , \u041B< \u0459 , \u0409< "
        "\u043C , \u041C< \u043D , \u041D; \u0463 ; \u04A3 , \u04A2; \u04A5 , \u04A4; \u04BB"
        " , \u04BA; \u04C8 , \u04C7< \u045A , \u040A< \u043E , \u041E; \u04A9 , \u04A8< "
        "\u043F , \u041F; \u04A7 , \u04A6< \u0440 , \u0420< \u0441 , \u0421; \u04AB , \u04AA"
        "< \u0442 , \u0422; \u04AD , \u04AC< \u045B , \u040B< \u0443 , \u0423; \u04AF , "
        "\u04AE< \u045E , \u040E< \u04B1 , \u04B0< \u0444 , \u0424< \u0445 , \u0425; \u04B3"
        " , \u04B2< \u0446 , \u0426; \u04B5 , \u04B4< \u0447 , \u0427; \u04B7 ; \u04B6; "
        "\u04B9 , \u04B8; \u04CC , \u04CB< \u045F , \u040F< \u0448 , \u0428< \u0449 , \u0429"
        "< \u044A , \u042A< \u044B , \u042B< \u044C , \u042C< \u044D , \u042D< \u044E , "
        "\u042E< \u044F , \u042F< \u0461 , \u0460< \u0462 < \u0465 , \u0464< \u0467 , \u0466"
        "< \u0469 , \u0468< \u046B , \u046A< \u046D , \u046C< \u046F , \u046E< \u0471 , "
        "\u0470< \u0473 , \u0472< \u0475 , \u0474; \u0477 , \u0476< \u0479 , \u0478< \u047B"
        " , \u047A< \u047D , \u047C< \u047F , \u047E< \u0481 , \u0480" }
    Countries { 
        BG { "\u0411\u044A\u043B\u0433\u0430\u0440\u0438\u044F" }
    }
    DateTimePatterns { 
            "HH:mm:ss z",
            "HH:mm:ss z",
            "H:mm:ss",
            "H:mm",
            "EEEE, yyyy, MMMM d",
            "EEEE, yyyy, MMMM d",
            "yyyy-M-d",
            "yy-M-d",
            "{1} {0}",
    }
    DayAbbreviations { 
            "\u041D\u0434",
            "\u041F\u043D",
            "\u0412\u0442",
            "\u0421\u0440",
            "\u0427\u0442",
            "\u041F\u0442",
            "\u0421\u0431",
    }
    DayNames { 
            "\u041D\u0435\u0434\u0435\u043B\u044F",
            "\u041F\u043E\u043D\u0435\u0434\u0435\u043B\u043D\u0438\u043A",
            "\u0412\u0442\u043E\u0440\u043D\u0438\u043A",
            "\u0421\u0440\u044F\u0434\u0430",
            "\u0427\u0435\u0442\u0432\u044A\u0432\u0442\u044A\u043A",
            "\u041F\u0435\u0442\u044A\u043A",
            "\u0421\u044A\u0431\u043E\u0442\u0430",
    }
    Eras { 
            "\u043F\u0440.\u043D.\u0435.",
            "\u043D.\u0435.",
    }
    Languages { 
        bg { "\u0431\u044A\u043B\u0433\u0430\u0440\u0441\u043A\u0438" }
    }
    LocaleID { "0402" }
    LocaleString { "bg" }
    MonthAbbreviations { 
            "I",
            "II",
            "III",
            "IV",
            "V",
            "VI",
            "VII",
            "VIII",
            "IX",
            "X",
            "XI",
            "XII",
            "",
    }
    MonthNames { 
            "\u042F\u043D\u0443\u0430\u0440\u0438",
            "\u0424\u0435\u0432\u0440\u0443\u0430\u0440\u0438",
            "\u041C\u0430\u0440\u0442",
            "\u0410\u043F\u0440\u0438\u043B",
            "\u041C\u0430\u0439",
            "\u042E\u043D\u0438",
            "\u042E\u043B\u0438",
            "\u0410\u0432\u0433\u0443\u0441\u0442",
            "\u0421\u0435\u043F\u0442\u0435\u043C\u0432\u0440\u0438",
            "\u041E\u043A\u0442\u043E\u043C\u0432\u0440\u0438",
            "\u041D\u043E\u0435\u043C\u0432\u0440\u0438",
            "\u0414\u0435\u043A\u0435\u043C\u0432\u0440\u0438",
            "",
    }
    NumberElements { 
            ",",
            "\u00A0",
            ";",
            "%",
            "0",
            "#",
            "-",
            "E",
            "\u2030",
            "\u221E",
            "\uFFFD",
    }
    ShortLanguage { "bul" }
    localPatternChars { "GanjkHmsSEDFwWxhKz" }
    zoneStrings { 
        {
                "Africa/Casablanca",
                "GMT",
                "GMT",
                "GMT",
                "GMT",
        }
    }
}
