﻿// ***************************************************************************
// *
// * Copyright (C) 2014 International Business Machines
// * Corporation and others. All Rights Reserved.
// * Tool: org.unicode.cldr.icu.NewLdml2IcuConverter
// * Source File: <path>/common/main/uz_Cyrl.xml
// *
// ***************************************************************************
/**
 * ICU <specials> source: <path>/common/main/uz_Cyrl.xml
 */
uz_Cyrl{
    %%Parent{"root"}
    Version{"2.1.7.39"}
    units{
        acceleration{
            g-force{
                one{"{0} G"}
                other{"{0} G"}
            }
        }
        angle{
            arc-minute{
                one{"{0}′"}
                other{"{0}′"}
            }
            arc-second{
                one{"{0}″"}
                other{"{0}″"}
            }
            degree{
                one{"{0}°"}
                other{"{0}°"}
            }
        }
        area{
            acre{
                one{"{0} ac"}
                other{"{0} ac"}
            }
            hectare{
                one{"{0} ha"}
                other{"{0} ha"}
            }
            square-foot{
                one{"{0} ft²"}
                other{"{0} ft²"}
            }
            square-kilometer{
                one{"{0} km²"}
                other{"{0} km²"}
            }
            square-meter{
                one{"{0} m²"}
                other{"{0} m²"}
            }
            square-mile{
                one{"{0} mi²"}
                other{"{0} mi²"}
            }
        }
        compound{
            per{"{0}/{1}"}
        }
        duration{
            day{
                one{"{0} кун"}
                other{"{0} кун"}
            }
            hour{
                one{"{0} соат"}
                other{"{0} соат"}
            }
            millisecond{
                one{"{0} миллисония"}
                other{"{0} миллисония"}
            }
            minute{
                one{"{0} дақиқа"}
                other{"{0} дақиқа"}
            }
            month{
                one{"{0} ой"}
                other{"{0} ой"}
            }
            second{
                one{"{0} сония"}
                other{"{0} сония"}
            }
            week{
                one{"{0} ҳафта"}
                other{"{0} ҳафта"}
            }
            year{
                one{"{0} йил"}
                other{"{0} йил"}
            }
        }
        length{
            centimeter{
                one{"{0} см"}
                other{"{0} см"}
            }
            foot{
                one{"{0} фут"}
                other{"{0} фут"}
            }
            inch{
                one{"{0} дюйм"}
                other{"{0} дюйм"}
            }
            kilometer{
                one{"{0} км"}
                other{"{0} км"}
            }
            light-year{
                one{"{0} ё.й."}
                other{"{0} ё.й."}
            }
            meter{
                one{"{0} м"}
                other{"{0} м"}
            }
            mile{
                one{"{0} миля"}
                other{"{0} миля"}
            }
            millimeter{
                one{"{0} мм"}
                other{"{0} мм"}
            }
            picometer{
                one{"{0} пм"}
                other{"{0} пм"}
            }
            yard{
                one{"{0} ярд"}
                other{"{0} ярд"}
            }
        }
        mass{
            gram{
                one{"{0} г"}
                other{"{0} г"}
            }
            kilogram{
                one{"{0} кг"}
                other{"{0} кг"}
            }
            ounce{
                one{"{0} унция"}
                other{"{0} унция"}
            }
            pound{
                one{"{0} фунт"}
                other{"{0} фунт"}
            }
        }
        power{
            horsepower{
                one{"{0} hp"}
                other{"{0} hp"}
            }
            kilowatt{
                one{"{0} kW"}
                other{"{0} kW"}
            }
            watt{
                one{"{0} W"}
                other{"{0} W"}
            }
        }
        pressure{
            hectopascal{
                one{"{0} hPa"}
                other{"{0} hPa"}
            }
            inch-hg{
                one{"{0} inHg"}
                other{"{0} inHg"}
            }
            millibar{
                one{"{0} mbar"}
                other{"{0} mbar"}
            }
        }
        speed{
            kilometer-per-hour{
                one{"{0} km/h"}
                other{"{0} km/h"}
            }
            meter-per-second{
                one{"{0} m/s"}
                other{"{0} m/s"}
            }
            mile-per-hour{
                one{"{0} mi/h"}
                other{"{0} mi/h"}
            }
        }
        temperature{
            celsius{
                one{"{0}°C"}
                other{"{0}°C"}
            }
            fahrenheit{
                one{"{0}°F"}
                other{"{0}°F"}
            }
        }
        volume{
            cubic-kilometer{
                one{"{0} km³"}
                other{"{0} km³"}
            }
            cubic-mile{
                one{"{0} mi³"}
                other{"{0} mi³"}
            }
            liter{
                one{"{0} l"}
                other{"{0} l"}
            }
        }
    }
    unitsNarrow{
        acceleration{
            g-force{
                one{"{0} G"}
                other{"{0} G"}
            }
        }
        angle{
            arc-minute{
                one{"{0}′"}
                other{"{0}′"}
            }
            arc-second{
                one{"{0}″"}
                other{"{0}″"}
            }
            degree{
                one{"{0}°"}
                other{"{0}°"}
            }
        }
        area{
            acre{
                one{"{0} ac"}
                other{"{0} ac"}
            }
            hectare{
                one{"{0} ha"}
                other{"{0} ha"}
            }
            square-foot{
                one{"{0} ft²"}
                other{"{0} ft²"}
            }
            square-kilometer{
                one{"{0} km²"}
                other{"{0} km²"}
            }
            square-meter{
                one{"{0} m²"}
                other{"{0} m²"}
            }
            square-mile{
                one{"{0} mi²"}
                other{"{0} mi²"}
            }
        }
        compound{
            per{"{0}/{1}"}
        }
        duration{
            day{
                one{"{0} к"}
                other{"{0} к"}
            }
            hour{
                one{"{0} с"}
                other{"{0} с"}
            }
            millisecond{
                one{"{0} мс"}
                other{"{0} мс"}
            }
            minute{
                one{"{0} дақ"}
                other{"{0} дақ"}
            }
            month{
                one{"{0} ой"}
                other{"{0} ой"}
            }
            second{
                one{"{0} сон"}
                other{"{0} сон"}
            }
            week{
                one{"{0} ҳафт"}
                other{"{0} ҳафт"}
            }
            year{
                one{"{0} й"}
                other{"{0} й"}
            }
        }
        length{
            centimeter{
                one{"{0} см"}
                other{"{0} см"}
            }
            foot{
                one{"{0} фут"}
                other{"{0} фут"}
            }
            inch{
                one{"{0} дюйм"}
                other{"{0} дюйм"}
            }
            kilometer{
                one{"{0} км"}
                other{"{0} км"}
            }
            light-year{
                one{"{0} ё.й."}
                other{"{0} ё.й."}
            }
            meter{
                one{"{0} м"}
                other{"{0} м"}
            }
            mile{
                one{"{0} миля"}
                other{"{0} миля"}
            }
            millimeter{
                one{"{0} мм"}
                other{"{0} мм"}
            }
            picometer{
                one{"{0} пм"}
                other{"{0} пм"}
            }
            yard{
                one{"{0} ярд"}
                other{"{0} ярд"}
            }
        }
        mass{
            gram{
                one{"{0} г"}
                other{"{0} г"}
            }
            kilogram{
                one{"{0} кг"}
                other{"{0} кг"}
            }
            ounce{
                one{"{0} унция"}
                other{"{0} унция"}
            }
            pound{
                one{"{0} фунт"}
                other{"{0} фунт"}
            }
        }
        power{
            horsepower{
                one{"{0} hp"}
                other{"{0} hp"}
            }
            kilowatt{
                one{"{0} kW"}
                other{"{0} kW"}
            }
            watt{
                one{"{0} W"}
                other{"{0} W"}
            }
        }
        pressure{
            hectopascal{
                one{"{0} hPa"}
                other{"{0} hPa"}
            }
            inch-hg{
                one{"{0} inHg"}
                other{"{0} inHg"}
            }
            millibar{
                one{"{0} mbar"}
                other{"{0} mbar"}
            }
        }
        speed{
            kilometer-per-hour{
                one{"{0} km/h"}
                other{"{0} km/h"}
            }
            meter-per-second{
                one{"{0} m/s"}
                other{"{0} m/s"}
            }
            mile-per-hour{
                one{"{0} mi/h"}
                other{"{0} mi/h"}
            }
        }
        temperature{
            celsius{
                one{"{0}°"}
                other{"{0}°"}
            }
            fahrenheit{
                one{"{0}°F"}
                other{"{0}°F"}
            }
        }
        volume{
            cubic-kilometer{
                one{"{0} km³"}
                other{"{0} km³"}
            }
            cubic-mile{
                one{"{0} mi³"}
                other{"{0} mi³"}
            }
            liter{
                one{"{0} l"}
                other{"{0} l"}
            }
        }
    }
    unitsShort{
        acceleration{
            g-force{
                one{"{0} G"}
                other{"{0} G"}
            }
        }
        angle{
            arc-minute{
                one{"{0}′"}
                other{"{0}′"}
            }
            arc-second{
                one{"{0}″"}
                other{"{0}″"}
            }
            degree{
                one{"{0}°"}
                other{"{0}°"}
            }
        }
        area{
            acre{
                one{"{0} ac"}
                other{"{0} ac"}
            }
            hectare{
                one{"{0} ha"}
                other{"{0} ha"}
            }
            square-foot{
                one{"{0} ft²"}
                other{"{0} ft²"}
            }
            square-kilometer{
                one{"{0} km²"}
                other{"{0} km²"}
            }
            square-meter{
                one{"{0} m²"}
                other{"{0} m²"}
            }
            square-mile{
                one{"{0} mi²"}
                other{"{0} mi²"}
            }
        }
        compound{
            per{"{0}/{1}"}
        }
        duration{
            day{
                one{"{0} кун"}
                other{"{0} кун"}
            }
            hour{
                one{"{0} соат"}
                other{"{0} соат"}
            }
            millisecond{
                one{"{0} мс"}
                other{"{0} мс"}
            }
            minute{
                one{"{0} дақ"}
                other{"{0} дақ"}
            }
            month{
                one{"{0} ой"}
                other{"{0} ой"}
            }
            second{
                one{"{0} сония"}
                other{"{0} сония"}
            }
            week{
                one{"{0} ҳафт"}
                other{"{0} ҳафт"}
            }
            year{
                one{"{0} й"}
                other{"{0} й"}
            }
        }
        length{
            centimeter{
                one{"{0} см"}
                other{"{0} см"}
            }
            foot{
                one{"{0} фут"}
                other{"{0} фут"}
            }
            inch{
                one{"{0} дюйм"}
                other{"{0} дюйм"}
            }
            kilometer{
                one{"{0} км"}
                other{"{0} км"}
            }
            light-year{
                one{"{0} ё.й."}
                other{"{0} ё.й."}
            }
            meter{
                one{"{0} м"}
                other{"{0} м"}
            }
            mile{
                one{"{0} миля"}
                other{"{0} миля"}
            }
            millimeter{
                one{"{0} мм"}
                other{"{0} мм"}
            }
            picometer{
                one{"{0} пм"}
                other{"{0} пм"}
            }
            yard{
                one{"{0} ярд"}
                other{"{0} ярд"}
            }
        }
        mass{
            gram{
                one{"{0} г"}
                other{"{0} г"}
            }
            kilogram{
                one{"{0} кг"}
                other{"{0} кг"}
            }
            ounce{
                one{"{0} унция"}
                other{"{0} унция"}
            }
            pound{
                one{"{0} фунт"}
                other{"{0} фунт"}
            }
        }
        power{
            horsepower{
                one{"{0} hp"}
                other{"{0} hp"}
            }
            kilowatt{
                one{"{0} kW"}
                other{"{0} kW"}
            }
            watt{
                one{"{0} W"}
                other{"{0} W"}
            }
        }
        pressure{
            hectopascal{
                one{"{0} hPa"}
                other{"{0} hPa"}
            }
            inch-hg{
                one{"{0} inHg"}
                other{"{0} inHg"}
            }
            millibar{
                one{"{0} mbar"}
                other{"{0} mbar"}
            }
        }
        speed{
            kilometer-per-hour{
                one{"{0} km/h"}
                other{"{0} km/h"}
            }
            meter-per-second{
                one{"{0} m/s"}
                other{"{0} m/s"}
            }
            mile-per-hour{
                one{"{0} mi/h"}
                other{"{0} mi/h"}
            }
        }
        temperature{
            celsius{
                one{"{0}°C"}
                other{"{0}°C"}
            }
            fahrenheit{
                one{"{0}°F"}
                other{"{0}°F"}
            }
        }
        volume{
            cubic-kilometer{
                one{"{0} km³"}
                other{"{0} km³"}
            }
            cubic-mile{
                one{"{0} mi³"}
                other{"{0} mi³"}
            }
            liter{
                one{"{0} l"}
                other{"{0} l"}
            }
        }
    }
}
