# 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 = de vereineschte arraabesche Emiraate ier Dirham
AFN = Afjahni||0
ALL = albaanesche Lek||0
AMD = armeenesche Dram||0
ANG = neederlängsch antillesche Jullde
AOA = angjolaanesche Kwansa
ARS = ajentiinesche Peeso
AUD = austraalesche Dollaa|A$
AWG = arubesche Florin
AZM = Asserbaidschaani Manat (1993–2006)|||1
AZN = Asserbaidschaani Manat
BAM = ömtuuschbaa Mark us Boßnije un dä Hächejovvina
BBD = Barbados-Dollaa
BDT = Taka us Bangladäsch
BGN = buljaaresche Lev
BHD = Bachrainesche Denaa||3
BIF = burundesche Frang||0
BMD = Bermuuda-Dollaa
BND = Brunei-Dollaa
BOB = Bollivijano
BRL = brasilljaanesche Real|R$
BSD = bahama’sche Dollaa
BTN = bhutanesesche Ngultrum
BWP = Pula us Bozwaana
BYN = wiißrußesche Rubel
BYR = wiißrußesche Rubel (2000–2016)||0|1
BZD = belizjaanesche Dollaa
CAD = kannaadesche Dollaa|CA$
CDF = kongjoleesesche Frang
CHF = schweijzer Fränkli
CLP = schileenesche Peeso||0
CNY = schineesesche Yuan Renminbi|CN¥
COP = kolumbesche Peso||0
CRC = koßtarikaanesche Colón
CUC = ömtuuschbaa kubaanesche Pesos
CUP = kubaanesche Peesos
CVE = kapverdesche Eskuudos
CZK = tschäschesche Kruhne
DJF = Frang uß Dschibuti||0
DKK = dänesche Kruhne
DOP = dommenikaanesche Peesos
DZD = aljeresche Denaa
EEK = Äßnesche Kruhne|||1
EGP = äjiptesche Pongk
ERN = Nafka uß Erritreja
ETB = ätejoopesche Birr
EUR = Euro|€
FJD = Fidschi-Dollaa
FKP = Pongk vun de Falkland-Enselle
GBP = brittesche £|£
GEL = jeorjesche Lari
GHS = janaaesche Cedi
GIP = jibraltaa’sche Pongk
GMD = jambesche Dalasi
GNF = Jineea-Frang||0
GTQ = juatemalesche Quetzal
GYD = Juaana-Dollaa||0
HKD = Hongkong-Dollaa|HK$
HNL = hondureanesche Lempira
HRK = krowaatesche Kuna
HTG = haiitesche Gourde
HUF = unjarresche Forint
IDR = indoneesesche Ruupije||0
ILS = ißraeelesche Schekel|₪
INR = indesche Ruupije|₹
IQD = iraakesche Denaa||0
IRR = persesche Rial||0
ISK = ißländesche Kruhne||0
JMD = jamaikaanesche Dollaa
JOD = Jordaanesche Dollaa||3
JPY = japaanesche Jen|JP¥|0
KES = Kenjaanesche Schillinge
KGS = kirjiisesche Som
KHR = kambodschaanesche Riel
KMF = kommooresche Frang||0
KPW = noodkorejaansche Won||0
KRW = söödkorejaansche Won|₩|0
KWD = kuwaitesche Denaa||3
KYD = Kaimann-Dollaa
KZT = kasakesche Tenge
LAK = loaatesche Kip||0
LBP = libaneesesche Pongk||0
LKR = schrilankesche Ruupije
LRD = liberijaanesche Dollaa
LSL = lesoothesche Loti
LTL = littouesche Litas|||1
LVL = lättesche Lats|||1
LYD = libesche Denaa||3
MAD = marrokaanesche Dirhamm
MDL = moldaavesche Leu
MGA = madajaskesche Ariary||0
MKD = mazedoonesche Denaa
MMK = burmeesesche Kyat||0
MNT = mongjoolesche Tugrik||0
MOP = makaneesesche Pataca
MRO = mauretanesche Ouguiya||0
MUR = maurizjahnesche Ruupije||0
MVR = mallediivesche Rufiyaa
MWK = malaawesche Kwache
MXN = mexekaanesche Peeso|MX$
MYR = malaisesche Ringgit
MZM = mosambikaanesche Metical (1980–2006)|||1
MZN = mossambikaanesche Metical
NAD = namiibesche Dollaa
NGN = nijerijaanesche Naira
NIO = nikarajaanesche Córdoba
NOK = norrweejesche Kruhne
NPR = nepaleesesche Ruupije
NZD = neuseeländesche Dollaa|NZ$
OMR = ommaanesche Rijal||3
PAB = pannameesesche Balboa
PEN = perruaanesche Sol
PGK = papua neujinejaanesche Kina
PHP = fillipiinesche Pesos
PKR = pakestaanesche Ruupije||0
PLN = polnesche Złoty
PYG = parajuaanesche Juarani||0
QAR = kataaresche Rijal
ROL = romäänesche Leu (1952–2006)|||1
RON = romäänesche Leu
RSD = särbesche Denaare||0
RUB = russesche Ruubel
RWF = ruandesche Frang||0
SAR = saudesche Rijal
SBD = solomonesche Dollaa
SCR = seischellesche Ruupije
SDG = sudaneesesche Pongk
SEK = schweedesche Kruhne
SGD = singjapurejaanesche Dollaa
SHP = Zint-Hellena-Pongk
SKK = ßlovaakesche Kruhne|||1
SLL = ẞjärra-lejoneesesche Leone||0
SOS = somaalesche Schillenge||0
SRD = sürinameesesche Dollaa
SSP = södsudaneesesche Pongk
STD = Dobra vun São Tomé un Príncipe||0|1
SVC = asalvadorejaanesche Cosan|||1
SYP = süüresche Pund||0
SZL = swasiländesche Lilangeni
THB = tailändesche Baht
TJS = tadschikißtaanesche Somoni
TMM = turkmeneßtaanesche Manat (1993–2009)||0|1
TMT = turkmeneßtaanesche Manat
TND = tuneesesche Denaa||3
TOP = tongjanes Paʻangache
TRY = törkesche Liire|TL
TTD = Dollaa uß Trinidad un Tobääjo
TWD = neu taiwaneesesche Dollaa|NT$
TZS = tansaanesche Schillenge||0
UAH = ukraijnesche Hryvnia
UGX = ujandesche Schillenge||0
USD = ammärrikaanesche Dollaa|US$
UYU = urrujuwaische Peeso
UZS = ußbeekesche Som||0
VEF = venezuelaanesche Bolívar
VND = vijätnammeesesche Dong|₫|0
VUV = vanuatesche Vatu||0
WST = samowaanesche Tala
XAF = Kmmeruhner Frang|FCFA|0
XAG = Sellver|||1
XAU = Jold|||1
XCD = oß-karribbesche Dollaa|EC$
XFO = franzüüsesche Joldfranke|||1
XOF = Frang uß de Älfebeinköß|CFA|0
XPD = Palladijum|||1
XPF = polineesesche Frang|CFPF|0
XPT = Plaatin|||1
XTS = Währong zum Prööfe|||1
XXX = onbikannte Währong|||1
YER = jemenitesche Rijal||0
ZAR = södaffrekaanesche Rand
ZMK = sambesche Kwacha (1968–2012)||0|1
ZMW = sambesche Kwacha
ZWD = simbabwesche Dollaa (1980–2008)||0|1
ZWL = simbabwesche Dollaa (2009)|||1
