# 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 = Apvienoto Arābu Emirātu dirhēms
AFN = Afganistānas afgāns||0
ALL = Albānijas leks||0
AMD = Armēnijas drams||0
ANG = Nīderlandes Antiļu guldenis
AOA = Angolas kvanza
ARS = Argentīnas peso
ATS = Austrijas šiliņš|||1
AUD = Austrālijas dolārs|AU$
AWG = Arubas guldenis
AZM = Azerbaidžānas manats (1993–2006)|||1
AZN = Azerbaidžānas manats
BAM = Bosnijas un Hercogovinas marka
BBD = Barbadosas dolārs
BDT = Bangladešas taka
BEF = Beļģijas franks|||1
BGN = Bulgārijas leva
BHD = Bahreinas dinārs||3
BIF = Burundi franks||0
BMD = Bermudu dolārs
BND = Brunejas dolārs
BOB = Bolīvijas boliviano
BRL = Brazīlijas reāls|R$
BSD = Bahamu dolārs
BTN = Butānas ngultrums
BWP = Botsvānas pula
BYR = Baltkrievijas rubelis||0
BZD = Belizas dolārs
CAD = Kanādas dolārs|CA$
CDF = KDR franks
CHF = Šveices franks
CLP = Čīles peso||0
CNY = Ķīnas juaņs|CN¥
COP = Kolumbijas peso||0
COU = Kolumbijas reāls|||1
CRC = Kostarikas kolons||0
CUC = Kubas konvertējamais peso
CUP = Kubas peso
CVE = Kaboverdes eskudo
CYP = Kipras mārciņa|||1
CZK = Čehijas krona
DEM = Vācijas marka|||1
DJF = Džibutijas franks||0
DKK = Dānijas krona
DOP = Dominikānas peso
DZD = Alžīrijas dinārs
EEK = Igaunijas krona|||1
EGP = Ēģiptes mārciņa
ERN = Eritrejas nakfa
ESP = Spānijas peseta||0|1
ETB = Etiopijas birs
EUR = eiro|€
FIM = Somijas marka|||1
FJD = Fidži dolārs
FKP = Folklenda salu mārciņa
FRF = Francijas franks|||1
GBP = Lielbritānijas sterliņu mārciņa|£
GEL = Gruzijas lari
GHS = Ganas sedi
GIP = Gibraltāra mārciņa
GMD = Gambijas dalasi
GNF = Gvinejas franks||0
GRD = Grieķijas drahma|||1
GTQ = Gvatemalas ketsals
GYD = Gajānas dolārs||0
HKD = Honkongas dolārs|HK$
HNL = Hondurasas lempīra
HRK = Horvātijas kuna
HTG = Haiti gurds
HUF = Ungārijas forints||0
IDR = Indonēzijas rūpija||0
IEP = Īrijas mārciņa|||1
ILS = Izraēlas šekelis|₪
INR = Indijas rūpija|₹
IQD = Irākas dinārs||0
IRR = Irānas riāls||0
ISK = Īslandes krona||0
ITL = Itālijas lira||0|1
JMD = Jamaikas dolārs
JOD = Jordānas dinārs||3
JPY = Japānas jena|¥|0
KES = Kenijas šiliņš
KGS = Kirgizstānas soms
KHR = Kambodžas riels
KMF = Komoru franks||0
KPW = Ziemeļkorejas vona||0
KRW = Dienvidkorejas vona|₩|0
KWD = Kuveitas dinārs||3
KYD = Kaimanu salu dolārs
KZT = Kazahstānas tenge
LAK = Laosas kips||0
LBP = Libānas mārciņa||0
LKR = Šrilankas rūpija
LRD = Libērijas dolārs
LSL = Lesoto loti
LTL = Lietuvas lits
LUF = Luksemburgas franks||0|1
LVL = Latvijas lats|Ls||1
LVR = Latvijas rublis|||1
LYD = Lībijas dinārs||3
MAD = Marokas dirhēms
MDL = Moldovas leja
MGA = Madagaskaras ariari||0
MKD = Maķedonijas denārs
MLF = CFA (Āfrikas) franks|||1
MMK = Mjanmas kjats||0
MNT = Mongolijas tugriks||0
MOP = Makao pataka
MRO = Mauritānijas ugija||0
MTL = Maltas lira|||1
MTP = Maltas mārciņa|||1
MUR = Maurīcijas rūpija||0
MVR = Maldīvijas rūfija
MWK = Malāvijas kvača
MXN = Meksikas peso|MX$
MYR = Malaizijas ringits
MZE = Mozambikas eskudo|||1
MZM = Mozambikas vecais metikals|||1
MZN = Mozambikas metikals
NAD = Namībijas dolārs
NGN = Nigērijas naira
NIO = Nikaragvas kordoba
NLG = Nīderlandes guldenis|||1
NOK = Norvēģijas krona
NPR = Nepālas rūpija
NZD = Jaunzēlandes dolārs|NZ$
OMR = Omānas riāls||3
PAB = Panamas balboa
PEN = Peru jaunais sols
PGK = Papua-Jaungvinejas kina
PHP = Filipīnu peso
PKR = Pakistānas rūpija||0
PLN = Polijas zlots
PTE = Portugāles eskudo|||1
PYG = Paragvajas guarani||0
QAR = Kataras riāls
ROL = Rumānijas vecā leja|||1
RON = Rumānijas leja
RSD = Serbijas dinārs||0
RUB = Krievijas rublis
RWF = Ruandas franks||0
SAR = Saūda riāls
SBD = Zālamana Salu dolārs
SCR = Seišelu salu rūpija
SDG = Sudānas mārciņa
SEK = Zviedrijas krona
SGD = Singapūras dolārs
SHP = Sv.Helēnas salas mārciņa
SIT = Slovēnijas tolars|||1
SKK = Slovakijas krona|||1
SLL = Sjerraleones leone||0
SOS = Somālijas šiliņš||0
SRD = Surinamas dolārs
SRG = Surinamas guldenis|||1
SSP = Dienvidsudānas mārciņa
STD = Santome un Prinsipi dobra||0
SVC = Salvadoras kolons|||1
SYP = Sīrijas mārciņa||0
SZL = Svazilendas lilangeni
THB = Taizemes bāts|฿
TJS = Tadžikistānas somons
TMM = Turkmenistānas manats||0|1
TMT = Turkmenistānas jaunais manats
TND = Tunisijas dinārs||3
TOP = Tongas paanga
TRL = Turcijas lira||0|1
TRY = Turcijas jaunā lira|TL
TTD = Trinidādas un Tobāgo dolārs
TWD = Taivānas jaunais dolārs|NT$
TZS = Tanzānijas šiliņš||0
UAH = Ukrainas grivna
UGX = Ugandas šiliņš||0
USD = ASV dolārs|$
UYU = Urugvajas peso
UZS = Uzbekistānas sums||0
VEB = Venecuēlas bolivārs (1871–2008)|||1
VEF = Venecuēlas bolivārs
VND = Vjetnamas dongi|₫|0
VUV = Vanuatu vatu||0
WST = Samoa tala
XAF = Centrālāfrikas CFA franks|FCFA|0
XAG = sudrabs|||1
XAU = zelts|||1
XBA = Eiropas norēķinu vienība EURCO|||1
XBB = Eiropas naudas vienība|||1
XBC = Eiropas norēķinu vienība (XBC)|||1
XBD = Eiropas norēķinu vienība (XBD)|||1
XCD = Austrumkarību dolārs|EC$
XDR = Speciālās aizņēmuma tiesības|||1
XEU = Eiropas norēķinu vienība|||1
XFO = Francijas zelta franks|||1
XFU = Francijas UIC franks|||1
XOF = Rietumāfrikas CFA franks|CFA|0
XPD = pallādijs|||1
XPF = CFP franks|CFPF|0
XPT = platīns|||1
XTS = Testa valūtas kods|||1
XXX = Nezināma valūta|||1
YER = Jemenas riāls||0
ZAR = Dienvidāfrikas rands
ZMK = Zambijas kvača (1968–2012)||0|1
ZMW = Zambijas kvača
ZWD = Zimbabves dolārs||0|1
ZWL = Zimbabves dolārs (2009)|||1
