# Copyright 2014 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.

#
# The key is an ISO4217 currency code, and the value is of the form:
#   display name|symbol|decimal digits|not-used-flag|rounding
# If a symbol is not supplied, the currency code will be used
# If # of decimal digits is omitted, 2 is used
# If a currency is not generally used, not-used-flag=1
# If a currency should be rounded to a multiple of of the least significant
#   digit, rounding will be present
# Trailing empty fields can be omitted

# DO NOT EDIT - GENERATED FROM CLDR DATA:
#  cldrVersion=25
#  date=$Date: 2014-03-01 06:57:43 +0100 (Sat, 01 Mar 2014) $
#  number=$Revision: 9852 $
#  type=ky
AED = Бириккен Араб Эмираттары дирхамы
AFN = Афганстан афганиси||0
ALL = Албания леги||0
AMD = Армения драмы||0
ANG = Нидерланд Антил гулдени
AOA = Ангола кванзасы
ARS = Аргентина песосу
AUD = Австралия доллары|$
AWG = Аруба флорини
AZN = Азербайжан манаты
BAM = Босния-Герцеговина оодарылма маркы
BBD = Барбадос доллары
BDT = Бангладеш такасы|৳
BGN = Болгария леви
BHD = Бахрейн динары||3
BIF = Бурунди франкы||0
BMD = Бермуд доллары|$
BND = Бруней доллары
BOB = Боливия боливианосу
BRL = Бразилия реалы|R$
BSD = Багама доллары|$
BTN = Бутан нгултруму
BWP = Ботсвана пуласы
BYR = Беларусь рублу||0
BZD = Белиз доллары|$
CAD = Канада доллары
CDF = Конго франкы
CHF = Швейцария франкы
CLP = Чили песосу|$|0
CNY = Кытай юаны|¥
COP = Колумбия песосу||0
CRC = Коста Рика колону||0
CUC = Куба оодарылма песосу
CUP = Куба песосу|$
CVE = Капе Верде эскудосу
CZK = Чехия корунасы
DJF = Жибути франкы||0
DKK = Дания крону
DOP = Доминика песосу|$
DZD = Алжир динары
EGP = Мисир фунту
ERN = Эритреа накфасы
ETB = Эфиопия бирри
EUR = Евро|€
FJD = Фижи доллары
FKP = Фолкленд аралдарынын фунту
GBP = Британия фунт стерлинги
GEL = Грузия лариси
GHS = Гана седиси
GIP = Гибралтар фунту|£
GMD = Гамбия даласиси
GNF = Гине франкы||0
GTQ = Гватемала кетсалы
GYD = Гуйана доллары||0
HKD = Гоӊ Коӊ доллары|$
HNL = Гондурас лемпирасы
HRK = Хорватия кунасы
HTG = Гаити гурду
HUF = Венгрия форинти||0
IDR = Индонезия рупийасы||0
ILS = Израил жаӊы шегели|₪
INR = Индия руписи
IQD = Ирак динары||0
IRR = Иран риалы||0
ISK = Исландия крону||0
JMD = Жамайка доллары
JOD = Йордания динары||3
JPY = Жапан йени|¥|0
KES = Кения шиллинги
KGS = Кыргызстан сому|сом
KHR = Камбожа риели
KMF = Коморос франкы||0
KPW = Түндүк Корея уону||0
KRW = Түштүк Корея уону||0
KWD = Кувейт динары||3
KYD = Кайман доллары|$
KZT = Казакстан теӊгеси|₸
LAK = Лаос киби||0
LBP = Ливан фунту||0
LKR = Шри Ланка руписи
LRD = Либерия доллары
LTL = Литва литасы
LVL = Латвия латсы|||1
LYD = Ливия динары||3
MAD = Марокко дирхамы
MDL = Молдова лейи
MGA = Мадагаскар ариариси||0
MKD = Македония денары
MMK = Мйанмар кйаты||0
MNT = Монгол тугриги||0
MOP = Макау патакасы
MRO = Мавритания угиясы||0
MUR = Мавританий руписи||0
MVR = Малдив Руфийасы
MWK = Малави квачасы
MXN = Мексика песосу|$
MYR = Малайзия ринггити
MZN = Мозамбик метикалы
NAD = Намибия доллары|$
NGN = Нигерия найрасы
NIO = Никарагуа кордобасы
NOK = Норвегия крону
NPR = Непал руписи
NZD = Жаӊы Зеландия доллары|$
OMR = Оман риалы||3
PAB = Панама балбоасы
PEN = Перу нуэво солу
PGK = Папуа Жаӊы Гине кинасы
PHP = Филиппин песосу
PKR = Пакистан руписи||0
PLN = Польша злотыйы
PYG = Парагвай гуараниси|₲|0
QAR = Катар риалы
RON = Румыния лейи
RSD = Сербия динары||0
RUB = Орусия рублу
RWF = Руанда франкы||0
SAR = Сауд риалы
SBD = Соломон доллары|$
SCR = Сейшел руписи
SDG = Судан фунту
SEK = Швеция крону
SGD = Сингапур доллары|$
SHP = Ыйык Елена фунту
SLL = Сиерра Леоне леонеси||0
SOS = Сомали шиллинги||0
SRD = Суринам доллары
SSP = Түштүк Судан фунту|£
STD = Сао Томе жана Принсипе добрасы||0
SYP = Сирия фунту||0
SZL = Свази лилангени
THB = Тай баты|฿
TJS = Тажикстан сомониси
TMT = Түркмөнстан манаты
TND = Тунис динары||3
TOP = Тонга паангасы
TRY = Түркия лирасы
TTD = Тринидад жана Тобаго доллары|$
TWD = Тайвань жаӊы доллары|NT$
TZS = Танзания шиллинги||0
UAH = Украина гривени|₴
UGX = Уганда шиллинги||0
USD = АКШ доллары|$
UYU = Уругвай песосу
UZS = Өзбекстан сому||0
VEF = Венесуэла боливары
VND = Вьетнам доӊу|₫|0
VUV = Вануату ватусу||0
WST = Самоа таласы
XAF = Борбор Африка CFA франкы|FCFA|0
XCD = Чыгыш Кариб доллары
XOF = Батыш Африка CFA франкы|CFA|0
XPF = CFP франкы|CFPF|0
XXX = Белгисиз акча|||1
YER = Йемен риалы||0
ZAR = Түштүк Африка ранды
ZMW = Замбия квачасы
