﻿// ***************************************************************************
// *
// * Copyright (C) 2015 International Business Machines
// * Corporation and others. All Rights Reserved.
// * Tool: org.unicode.cldr.icu.NewLdml2IcuConverter
// * Source File: <path>/common/rbnf/sl.xml
// *
// ***************************************************************************
sl{
    RBNFRules{
        SpelloutRules{
            "%spellout-numbering-year:",
            "x.x: =#,###0.#=;",
            "0: =%spellout-numbering=;",
            "%spellout-numbering:",
            "0: =%spellout-cardinal-masculine=;",
            "%spellout-cardinal-masculine:",
            "-x: minus >>;",
            "x.x: << vejica >>;",
            "0: ni\u010D;",
            "1: ena;",
            "2: dva;",
            "3: tri;",
            "4: \u0161tiri;",
            "5: pet;",
            "6: \u0161est;",
            "7: sedem;",
            "8: osem;",
            "9: devet;",
            "10: deset;",
            "11: enajst;",
            "12: dvanajst;",
            "13: trinajst;",
            "14: \u0161trinajst;",
            "15: petnajst;",
            "16: \u0161estnajst;",
            "17: sedemnajst;",
            "18: asemnajst;",
            "19: devetnajst;",
            "20: dvaset[ >>];",
            "30: <<deset[ >>];",
            "100: sto[ >>];",
            "200: dvjesto[ >>];",
            "300: tristo[ >>];",
            "400: \u0161tiristo[ >>];",
            "500: petsto[ >>];",
            "600: \u0161esto[ >>];",
            "700: sedemsto[ >>];",
            "800: osemsto[ >>];",
            "900: devetsto[ >>];",
            "1000: tisu\u0107u[ >>];",
            "2000: <%spellout-cardinal-feminine< tisu\u0107e[ >>];",
            "5000: <%spellout-cardinal-feminine< tisu\u0107u[ >>];",
            "1000000: <%spellout-cardinal-masculine< milijun[ >>];",
            "2000000: <%spellout-cardinal-masculine< milijuny[ >>];",
            "5000000: <%spellout-cardinal-masculine< milijun[ >>];",
            "1000000000: <%spellout-cardinal-masculine< miliarda[ >>];",
            "2000000000: <%spellout-cardinal-masculine< miliardy[ >>];",
            "5000000000: <%spellout-cardinal-masculine< miliarda[ >>];",
            "1000000000000: <%spellout-cardinal-masculine< bilijun[ >>];",
            "2000000000000: <%spellout-cardinal-masculine< bilijuny[ >>];",
            "5000000000000: <%spellout-cardinal-masculine< bilijun[ >>];",
            "1000000000000000: <%spellout-cardinal-masculine< biliarda[ >>];",
            "2000000000000000: <%spellout-cardinal-masculine< biliardy[ >>];",
            "5000000000000000: <%spellout-cardinal-masculine< biliarda[ >>];",
            "1000000000000000000: =#,##0=;",
            "%spellout-cardinal-neuter:",
            "-x: minus >>;",
            "x.x: << vejica >>;",
            "0: ni\u010D;",
            "1: ena;",
            "2: dve;",
            "3: =%spellout-cardinal-masculine=;",
            "20: dvaset[ >>];",
            "30: <<deset[ >>];",
            "100: sto[ >>];",
            "200: dvjesto[ >>];",
            "300: tristo[ >>];",
            "400: \u0161tiristo[ >>];",
            "500: petsto[ >>];",
            "600: \u0161esto[ >>];",
            "700: sedemsto[ >>];",
            "800: osemsto[ >>];",
            "900: devetsto[ >>];",
            "1000: tisu\u0107u[ >>];",
            "2000: <%spellout-cardinal-feminine< tisu\u0107e[ >>];",
            "5000: <%spellout-cardinal-feminine< tisu\u0107u[ >>];",
            "1000000: <%spellout-cardinal-masculine< milijun[ >>];",
            "2000000: <%spellout-cardinal-masculine< milijuny[ >>];",
            "5000000: <%spellout-cardinal-masculine< milijun[ >>];",
            "1000000000: <%spellout-cardinal-masculine< miliarda[ >>];",
            "2000000000: <%spellout-cardinal-masculine< miliardy[ >>];",
            "5000000000: <%spellout-cardinal-masculine< miliarda[ >>];",
            "1000000000000: <%spellout-cardinal-masculine< bilijun[ >>];",
            "2000000000000: <%spellout-cardinal-masculine< bilijuny[ >>];",
            "5000000000000: <%spellout-cardinal-masculine< bilijun[ >>];",
            "1000000000000000: <%spellout-cardinal-masculine< biliarda[ >>];",
            "2000000000000000: <%spellout-cardinal-masculine< biliardy[ >>];",
            "5000000000000000: <%spellout-cardinal-masculine< biliarda[ >>];",
            "1000000000000000000: =#,##0=;",
            "%spellout-cardinal-feminine:",
            "-x: minus >>;",
            "x.x: << vejica >>;",
            "0: ni\u010D;",
            "1: ena;",
            "2: dvije;",
            "3: =%spellout-cardinal-masculine=;",
            "20: dvaset[ >>];",
            "30: <<deset[ >>];",
            "100: sto[ >>];",
            "200: dvjesto[ >>];",
            "300: tristo[ >>];",
            "400: \u0161tiristo[ >>];",
            "500: petsto[ >>];",
            "600: \u0161esto[ >>];",
            "700: sedemsto[ >>];",
            "800: osemsto[ >>];",
            "900: devetsto[ >>];",
            "1000: tisu\u0107u[ >>];",
            "2000: <%spellout-cardinal-feminine< tisu\u0107e[ >>];",
            "5000: <%spellout-cardinal-feminine< tisu\u0107u[ >>];",
            "1000000: <%spellout-cardinal-masculine< milijun[ >>];",
            "2000000: <%spellout-cardinal-masculine< milijuny[ >>];",
            "5000000: <%spellout-cardinal-masculine< milijun[ >>];",
            "1000000000: <%spellout-cardinal-masculine< miliarda[ >>];",
            "2000000000: <%spellout-cardinal-masculine< miliardy[ >>];",
            "5000000000: <%spellout-cardinal-masculine< miliarda[ >>];",
            "1000000000000: <%spellout-cardinal-masculine< bilijun[ >>];",
            "2000000000000: <%spellout-cardinal-masculine< bilijuny[ >>];",
            "5000000000000: <%spellout-cardinal-masculine< bilijun[ >>];",
            "1000000000000000: <%spellout-cardinal-masculine< biliarda[ >>];",
            "2000000000000000: <%spellout-cardinal-masculine< biliardy[ >>];",
            "5000000000000000: <%spellout-cardinal-masculine< biliarda[ >>];",
            "1000000000000000000: =#,##0=;",
        }
    }
    Version{"2.0.82.42"}
}
