# Copyright 2012 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
AED = арабын нэгдсэн эмиратын дирхам
AFN = афганистан афгани||0
ALL = албанийн лек||0
AMD = арменийн драм||0
ANG = нидерландын антиллъя гулдер
AOA = ангол кванза
ARS = аргентин песо
AUD = австрали доллар|A$
AWG = арубын флорин
AZN = азербайжаны манат
BAM = босни-герцеговин хөрвөгч марк
BBD = барбадос доллар
BDT = бангладеш така
BGN = болгарын лев
BHD = бахрейн динар||3
BIF = бурунд франк||0
BMD = бермуд доллар
BND = бруней доллар
BOB = боливи боливиано
BRL = бразилийн рил|R$
BSD = багам доллар
BTN = бутаны нгултрум
BWP = ботсвани пула
BYN = беларусь рубль
BYR = беларусь рубль (2000–2016)||0|1
BZD = белиз доллар
CAD = канад доллар|CA$
CDF = конго франк
CHF = швейцарь франк
CLP = чилийн песо||0
CNH = Хятадын юань|||1
CNY = хятад юань|CN¥
COP = колумбын песо||0
CRC = коста рикагийн колон
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 = хонгконг доллар|HK$
HNL = гондурасын лемпира
HRK = хорватын куна
HTG = гаитийн гоурд
HUF = унгарын форинт
IDR = индонези рупи||0
ILS = израилийн шинэ шекел|₪
INR = энэтхэг рупи|₹
IQD = ирак динар||0
IRR = иран риал||0
ISK = исландын крон||0
JMD = ямайк доллар
JOD = йордан динар||3
JPY = япон иен|JP¥|0
KES = кени шиллинг
KGS = кыргыз сом
KHR = камбож риел
KMF = комор франк||0
KPW = хойд солонгос вон||0
KRW = өмнөд солонгос вон|₩|0
KWD = кувейт динар||3
KYD = кайман арлын доллар
KZT = казахын тэнгэ
LAK = лаосын кип||0
LBP = ливан паунд||0
LKR = шри-ланк рупи
LRD = либери доллар
LTL = литвийн литас|||1
LVL = латвийн лац|||1
LYD = ливи доллар||3
MAD = мароккогийн дирхам
MDL = молдавын леу
MGA = малайн ариари||0
MKD = македони динар
MMK = мьянмарын киат||0
MNT = төгрөг|₮|0
MOP = макаогийн патака
MRO = мавритан угия||0
MUR = мавритын рупи||0
MVR = мальдив руфия
MWK = малави квача
MXN = мексикийн песо|MX$
MYR = малайзын рингит
MZN = мозамбик метикал
NAD = намиби доллар
NGN = нигери найра
NIO = никарагуагийн кордоба
NOK = норвегийн крон
NPR = балба рупи
NZD = шинэ зеланд доллар|NZ$
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|1
SYP = сири паунд||0
SZL = свазиланд лилангени
THB = тайландын бат|฿
TJS = тажикийн сомон
TMT = туркмен манат
TND = тунис доллар||3
TOP = тонгагийн панга
TRY = туркийн лира|TL
TTD = тринидад ба тобаго доллар
TWD = шинэ тайвань доллар|NT$
TZS = танзани шиллинг||0
UAH = украины гривня
UGX = уганд шиллинг||0
USD = америк доллар|$
UYU = уругвайн песо
UZS = узбекийн сом||0
VEF = венесуэлийн боливар
VND = вьетнамын донг|₫|0
VUV = вануатугийн вату||0
WST = самоагийн тала
XAF = төв африкийн франк|FCFA|0
XCD = зүүн карибийн доллар|EC$
XOF = баруун африкийн франк|CFA|0
XPF = францын колоний франк|CFPF|0
XXX = тодорхойгүй мөнгөн тэмдэгт|||1
YER = йемен риал||0
ZAR = өмнөд африкийн ранд
ZMK = Замби квача (1968–2012)||0|1
ZMW = замби квача
