# 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 = Arabiar Emirerri Batuetako dirhama
AFN = Afganistango afghania||0
ALL = Albaniako leka||0
AMD = Armeniako drama||0
ANG = Holandarren Antilletako guilderra
AOA = Angolako kwanza
ARS = Argentinako pesoa
AUD = Australiako dolarra|A$
AWG = Arubako florina
AZN = Azerbaijango manata
BAM = Bosnia-Herzegovinako marko trukakorra
BBD = Barbadosetako dolarra
BDT = Bangladesheko taka
BGN = Bulgariako leva
BHD = Bahraingo dinarra||3
BIF = Burundiko frankoa||0
BMD = Bermudetako dolarra
BND = Bruneiko dolarra
BOB = Boliviako bolivianoa
BRL = Brasilgo erreala|R$
BSD = Bahametako dolarra
BTN = Bhutango ngultruma
BWP = Bosniako pula
BYN = Bielorrusiako errubloa
BYR = Bielorrusiako errubloa (2000–2016)||0|1
BZD = Belizeko dolarra
CAD = Kanadako dolarra|CA$
CDF = Kongoko frankoa
CHF = Suitzako frankoa
CLP = Txileko pesoa||0
CNH = yuan txinatar (itsasoz haraindikoa)|||1
CNY = Txinako yuana|CN¥
COP = Kolonbiako pesoa||0
CRC = Costa Ricako colona
CUC = Kubako peso trukakorra
CUP = Kubako pesoa
CVE = Cabo Verdeko ezkutua
CZK = Txekiar Errepublikako koroa
DJF = Djibutiko frankoa||0
DKK = Danimarkako koroa
DOP = Dominikar Errepublikako pesoa
DZD = Aljeriako dinarra
EGP = Egiptoko libera
ERN = Eritreako nakfa
ESP = ESP|₧|0|1
ETB = Etiopiako birra
EUR = euroa|€
FJD = Fijiko dolarra
FKP = Falkland uharteetako libera
GBP = Libera esterlina|£
GEL = Georgiako laria
GHS = Ghanako cedia
GIP = Gibraltarreko libera
GMD = Ganbiako dalasia
GNF = Gineako frankoa||0
GTQ = Guatemalako quetzala
GYD = Guyanako dolarra||0
HKD = Hong Kongeko dolarra|HK$
HNL = Hondurasko lempira
HRK = Kroaziako kuna
HTG = Haitiko gourdea
HUF = Hungariako florina
IDR = Indonesiako errupia||0
ILS = Israelgo shekel berria|₪
INR = Indiako errupia|₹
IQD = Irakeko dinarra||0
IRR = Irango riala||0
ISK = Islandiako koroa||0
JMD = Jamaikako dolarra
JOD = Jordaniako dinarra||3
JPY = Japoniako yena|JP¥|0
KES = Kenyako txelina
KGS = Kirgizistango soma
KHR = Kanbodiako riela
KMF = Komoreetako frankoa||0
KPW = Ipar Koreako wona||0
KRW = Hego Koreako wona|₩|0
KWD = Kuwaiteko dinarra||3
KYD = Kaiman uharteetako dolarra
KZT = Kazakhstango tengea
LAK = Laoseko kipa||0
LBP = Libanoko libera||0
LKR = Sri Lankako errupia
LRD = Liberiako dolarra
LSL = Lesothoko lotia
LTL = Lituaniako litasa|||1
LVL = Letoniako latsa|||1
LYD = Libiako dinarra||3
MAD = Marokoko dirhama
MDL = Moldaviako leua
MGA = Madagaskarreko ariarya||0
MKD = Mazedoniako dinarra
MMK = Myanmarreko kyata||0
MNT = Mongoliako tugrika||0
MOP = Macanako pataca
MRO = Mauritaniako ouguiya||0
MUR = Maurizio uharteetako errupia||0
MVR = Maldivetako rufiyaa
MWK = Malawiko kwacha
MXN = Mexikoko pesoa|MX$
MYR = Malaysiako ringgita
MZN = Mozambikeko metikala
NAD = Namibiako dolarra
NGN = Nigeriako naira
NIO = Nikaraguako cordoba
NOK = Norvegiako koroa
NPR = Nepalgo errupia
NZD = Zeelanda Berriko dolarra|NZ$
OMR = Omango riala||3
PAB = Panamako balboa
PEN = Peruko sol
PGK = Papua Ginea Berriko kina
PHP = Filipinetako pesoa
PKR = Pakistango errupia||0
PLN = Poloniako zlotya
PYG = Paraguaiko guarania||0
QAR = Qatarreko riala
RON = Errumaniako leua
RSD = Serbiako dinarra||0
RUB = Errusiako errubloa
RWF = Ruandako frankoa||0
SAR = Arabia Saudiko riala
SBD = Salomon uharteetako dolarra
SCR = Seychelleetako errupia
SDG = Sudango libera
SEK = Suediako koroa
SGD = Singapurreko dolarra
SHP = Santa Helenako libera
SLL = Sierra Leonako leona||0
SOS = Somaliako txelina||0
SRD = Surinameko dolarra
SSP = Hego Sudango libera
STD = Sao Tomeko eta Principeko dobra||0|1
SYP = Siriako libera||0
SZL = Swazilandiako lilangenia
THB = Thailandiako bahta|฿
TJS = Tajikistango somonia
TMT = Turkmenistango manata
TND = Tunisiako dinarra||3
TOP = Tongako Paʻanga
TRY = Turkiako lira|TL
TTD = Trinidad eta Tobagoko dolarra
TWD = Taiwango dolar berria|NT$
TZS = Tanzaniako txelina||0
UAH = Ukrainako hryvnia
UGX = Ugandako txelina||0
USD = AEBko dolarra|US$
UYU = Uruguaiko pesoa
UZS = Uzbekistango soma||0
VEF = Venezuelako bolivarra
VND = Vietnameko donga|₫|0
VUV = Vanuatuko vatua||0
WST = Samoko tala
XAF = Afrika erdialdeko CFA frankoa|FCFA|0
XCD = Karibe ekialdeko dolarra|EC$
XOF = Afrika mendebaldeko CFA frankoa|CFA|0
XPF = CFP frankoa|CFPF|0
XXX = Moneta ezezaguna|||1
YER = Yemengo riala||0
ZAR = Hegoafrikako randa
ZMK = Zambiako kwacha (1968–2012)||0|1
ZMW = Zambiako kwacha
