# 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=rm
ADP = peseta andorrana||0|1
AED = dirham dals Emirats Arabs Unids
AFA = afghani (1927–2002)|||1
AFN = afghani||0
ALK = lek albanais (1947–1961)|||1
ALL = lek||0
AMD = dram armen||0
ANG = flurin da las Antillas Olandaisas
AOA = kwanza angolan
AOK = kwanza angolan (1977–1990)|||1
AON = nov kwanza angolan|||1
AOR = kwanza angolan reajustado|||1
ARA = austral argentin|||1
ARL = peso argentin ley|||1
ARM = peso argentin moneda nacional|||1
ARP = peso argentin (1983–1985)|||1
ARS = peso argentin
ATS = schilling austriac|||1
AUD = dollar australian|$
AWG = flurin da l'Aruba
AZM = manat aserbaidschanic (1993–2006)|||1
AZN = manat aserbaidschanic
BAD = dinar da la Bosnia ed Erzegovina|||1
BAM = marc convertibel bosniac
BAN = nov dinar da la Bosnia ed Erzegovina|||1
BBD = dollar da Barbados
BDT = taka bangladais|৳
BEC = franc beltg (convertibel)|||1
BEF = franc beltg|||1
BEL = franc beltg (finanzial)|||1
BGL = lev bulgar|||1
BGM = lev bulgar socialistic|||1
BGN = nov lev bulgar
BGO = vegl lev bulgar|||1
BHD = dinar dal Bahrain||3
BIF = franc dal Burundi||0
BMD = dollar da las Bermudas|$
BND = dollar dal Brunei
BOB = boliviano
BOL = vegl boliviano|||1
BOP = peso bolivian|||1
BOV = mvdol bolivian|||1
BRB = cruzeiro novo brasilian (1967–1986)|||1
BRC = cruzado brasilian|||1
BRE = cruzeiro brasilian (1990–1993)|||1
BRL = real brasilian|R$
BRN = cruzado novo brasilian|||1
BRR = cruzeiro brasilian|||1
BRZ = vegl cruzeiro brasilian|||1
BSD = dollar da las Bahamas|$
BTN = ngultrum butanais
BUK = Kyat burmais|||1
BWP = pula da la Botswana
BYB = nov rubel bieloruss (1994–1999)|||1
BYR = rubel bieloruss||0
BZD = dollar dal Belize|$
CAD = dollar canadais|CA$
CDF = franc congolais
CHE = euro WIR|||1
CHF = franc svizzer
CHW = franc WIR|||1
CLE = escudo chilen|||1
CLF = unidades de fomento chilenas||0|1
CLP = peso chilen|$|0
CNY = yuan renminbi chinais|¥
COP = peso columbian||0
COU = unidad de valor real|||1
CRC = colon da la Costa Rica||0
CSD = vegl dinar serb|||1
CSK = cruna tschecoslovaca|||1
CUP = peso cuban|$
CVE = escudo dal Cap Verd
CYP = glivra cipriota|||1
CZK = cruna tscheca
DDM = marc da la Germania da l'Ost|||1
DEM = marc tudestg|||1
DJF = franc dal Dschibuti||0
DKK = cruna danaisa
DOP = peso dominican|$
DZD = dinar algerian
ECS = sucre equadorian|||1
ECV = unitad da scuntrada da l'Ecuador|||1
EEK = cruna estona|||1
EGP = glivra egipziana
ERN = nakfa eritreic
ESA = peseta spagnola (conto A)|||1
ESB = peseta spagnola (conto convertibel)|||1
ESP = peseta spagnola|₧|0|1
ETB = birr etiopic
EUR = euro|€
FIM = marc finlandais|||1
FJD = dollar dal Fidschi
FKP = glivra dal Falkland
FRF = franc franzos|||1
GBP = glivra sterlina|£
GEK = kupon larit georgian|||1
GEL = lari georgian
GHC = cedi ghanais (1979–2007)|||1
GHS = cedi ghanais
GIP = glivra da Gibraltar|£
GMD = dalasi gambic
GNF = franc da la Guinea||0
GNS = syli da la Guinea|||1
GQE = ekwele da la Guinea Equatoriala|||1
GRD = drachma greca|||1
GTQ = quetzal da la Guatemala
GWE = escudo da la Guinea Portugaisa|||1
GWP = peso da la Guinea-Bissau|||1
GYD = dollar da la Guyana||0
HKD = dollar da Hongkong|$
HNL = lempira hondurian
HRD = dinar croat|||1
HRK = kuna croata
HTG = gourde haitian
HUF = forint ungarais||0
IDR = rupia indonaisa||0
IEP = glivra indonaisa|||1
ILP = glivra israeliana|||1
ILR = vegl sheqel israelian|||1
ILS = sheqel|₪
INR = rupia indica|Rs.
IQD = dinar iracais||0
IRR = rial iranais||0
ISJ = veglia cruna islandaisa|||1
ISK = cruna islandaisa||0
ITL = lira taliana||0|1
JMD = dollar giamaican
JOD = dinar jordanic||3
JPY = yen giapunais|¥|0
KES = schilling kenian
KGS = som kirghis
KHR = riel cambodschan
KMF = franc comorian||0
KPW = won da la Corea dal Nord||0
KRH = hwan da la Corea dal Sid|||1
KRO = vegl won da la Corea dal Sid|||1
KRW = won da la Corea dal Sid|₩|0
KWD = dinar dal Kuwait||3
KYD = dollar da las Inslas Cayman|$
KZT = tenge casac|₸
LAK = kip laot||0
LBP = glivra libanaisa||0
LKR = rupia da la Sri Lanka
LRD = dollar liberian
LSL = loti dal Lesotho
LTL = litas lituan
LTT = talonas lituan|||1
LUC = franc convertibel luxemburgais|||1
LUF = franc luxemburgais||0|1
LUL = franc finanzial luxemburgais|||1
LVL = lats letton|||1
LVR = rubel letton|||1
LYD = dinar libic||3
MAD = dirham marocan
MAF = franc marocan|||1
MCF = franc monegas|||1
MDC = cupon moldav|||1
MDL = leu moldav
MGA = ariary madagasc||0
MGF = franc madagasc||0|1
MKD = dinar da la Macedonia
MKN = vegl dinar macedon|||1
MLF = franc dal Mali|||1
MMK = Kyat dal Myanmar||0
MNT = tugrik mongolic||0
MOP = pataca dal Macao
MRO = ouguiya da la Mauretania||0
MTL = lira maltaisa|||1
MTP = glivra maltaisa|||1
MUR = rupia dal Mauritius||0
MVP = rupia da las Maledivas|||1
MVR = rufiyaa da las Maledivas
MWK = kwacha dal Malawi
MXN = peso mexican|$
MXP = peso d'argient mexican (1861–1992)|||1
MXV = unidad de inversion mexicana (UDI)|||1
MYR = ringgit da la Malaisia
MZE = escudo dal mozambican|||1
MZM = vegl metical mozambican|||1
MZN = metical dal mozambican
NAD = dollar namibian|$
NGN = naira nigeriana
NIC = cordoba nicaraguan|||1
NIO = cordoba oro nicaraguan
NLG = flurin ollandais|||1
NOK = cruna norvegiaisa
NPR = rupia nepalaisa
NZD = dollar da la Nova Zelanda|$
OMR = rial da l'Oman||3
PAB = balboa dal Panama
PEI = inti peruan|||1
PEN = nov sol peruan
PES = sol peruan|||1
PGK = kina da la Papua Nova Guinea
PHP = peso filippin
PKR = rupia pakistana||0
PLN = zloty polac
PLZ = zloty polac (1950–1995)|||1
PTE = escudo portugais|||1
PYG = guarani paraguaian|₲|0
QAR = riyal da Katar
RHD = dollar rodesian|||1
ROL = vegl leu rumen|||1
RON = leu rumen
RSD = dinar serb||0
RUB = rubel russ (nov)
RUR = rubel russ (vegl)|р.||1
RWF = franc ruandais||0
SAR = riyal saudit
SBD = dollar da las Salomonas|$
SCR = rupia da las Seychellas
SDD = dinar sudanais|||1
SDG = glivra sudanaisa
SDP = glivra sudanaisa (1956–2007)|||1
SEK = cruna svedaisa
SGD = dollar dal Singapur|$
SHP = glivra da Sontg'Elena
SIT = tolar sloven|||1
SKK = cruna slovaca|||1
SLL = leone da la Sierra Leone||0
SOS = schilling somalian||0
SRD = dollar surinam
SRG = flurin surinam|||1
STD = dobra da São Tomé e Principe||0
SUR = rubel sovietic|||1
SVC = colon da l'El Salvador|||1
SYP = glivra siriana||0
SZL = lilangeni dal Swaziland
THB = baht tailandais|฿
TJR = rubel dal Tadschikistan|||1
TJS = somoni dal Tadschikistan
TMM = manat turkmen||0|1
TND = dinar tunesian||3
TOP = pa'anga da Tonga
TPE = escudo da Timor|||1
TRL = lira tirca||0|1
TRY = nova lira tirca
TTD = dollar da Trinidad e Tobago|$
TWD = nov dollar taiwanais|NT$
TZS = schilling tansanian||0
UAH = hryvnia ucranais|₴
UAK = karbovanetz ucranais|||1
UGS = schilling ucranais|||1
UGX = schilling ugandais||0
USD = dollar dals Stadis Unids da l'America|$
USN = dollar dals Stadis Unids da l'America (proxim di)|||1
USS = dollar dals Stadis Unids da l'America (medem di)|||1
UYI = peso da l'Uruguay (unidades indexadas)||0|1
UYP = nov peso da l'Uruguay (1975–1993)|||1
UYU = peso da l'Uruguay
UZS = sum usbec||0
VEB = bolivar venezuelan (1871–2008)|||1
VEF = bolivar venezuelan
VND = dong vietnamais|₫|0
VNN = vegl dong vietnamais|||1
VUV = vatu dal Vanuatu||0
WST = tala da la Samoa
XAF = franc CFA BEAC|FCFA|0
XAG = argient|||1
XAU = aur|||1
XBA = unitad europeica cumponida|||1
XBC = unitad dal quint europeica (XBC)|||1
XBD = unitad dal quint europeica (XBD)|||1
XCD = dollar da la Caribica Orientala|EC$
XDR = dretgs da prelevaziun spezials|||1
XFO = franc d'aur franzos|||1
XFU = franc UIC franzos|||1
XOF = franc CFA BCEAO|CFA|0
XPD = palladi|||1
XPF = franc CFP|CFPF|0
XPT = platin|||1
XRE = fonds RINET|||1
XTS = code per verifitgar la valuta|||1
XXX = valuta nunenconuschenta|||1
YDD = dinar dal Jemen|||1
YER = rial dal Jemen||0
YUD = dinar jugoslav (1966–1990)|||1
YUM = nov dinar jugoslav|||1
YUN = dinar jugoslav convertibel|||1
YUR = dinar jugoslav refurmà|||1
ZAL = rand sidafrican (finanzial)|||1
ZAR = rand sidafrican
ZMK = kwacha da la sambia (1968–2012)||0|1
ZMW = kwacha da la sambia
ZRN = nov zaire dal Zaire|||1
ZRZ = zaire dal Zaire|||1
ZWD = dollar dal Simbabwe||0|1
