# Do not edit - generated from Unicode CLDR data
#   main/fur.xml - r4184 2009-06-15 16:34:50 -0400 (Mon, 15 Jun 2009)
#
# The key is an ISO4217 currency code, and the value is of the form:
#   display name|symbol|decimal digits|not-used-flag
# 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
# Trailing empty fields can be omitted

ADP = ADP||0|1
AED = AED
AFA = AFA|||1
AFN = AFN|Af|0
ALL = ALL||0
AMD = AMD||0
ANG = ANG|NAf.
AOA = AOA|Kz
AOK = AOK|||1
AON = AON|||1
AOR = AOR|||1
ARA = ARA|₳||1
ARL = ARL|$L||1
ARM = ARM|m$n||1
ARP = ARP|||1
ARS = Peso argjentin|AR$
ATS = Selin austriac|||1
AUD = Dolar australian|AU$
AWG = AWG|Afl.
AZM = AZM|||1
AZN = AZN|man.
BAD = BAD|||1
BAM = BAM|KM
BBD = BBD|Bds$
BDT = BDT|Tk
BEC = BEC
BEF = Franc de Belgjiche|BF||1
BEL = BEL
BGL = BGL|||1
BGN = BGN
BHD = BHD|BD|3
BIF = Franc burundês|FBu|0
BMD = BMD|BD$
BND = Dolar dal Brunei|BN$
BOB = BOB|Bs
BOP = BOP|$b.||1
BOV = BOV
BRB = BRB|||1
BRC = BRC|||1
BRE = BRE|||1
BRL = Real brasilian|R$
BRN = BRN|||1
BRR = BRR|||1
BSD = BSD|BS$
BTN = BTN|Nu.
BUK = BUK|||1
BWP = BWP
BYB = BYB|||1
BYR = Rubli bielorùs||0
BZD = BZD|BZ$
CAD = Dolar canadês|CA$
CDF = CDF
CHE = CHE
CHF = Franc svuizar|Fr.
CHW = CHW
CLE = CLE|Eº||1
CLF = CLF||0
CLP = CLP|CL$|0
CNY = Yuan Renminbi cinês|CN¥
COP = COP|CO$|0
COU = COU
CRC = CRC|₡|0
CSD = Vieri dinar serp|||1
CSK = CSK|||1
CUC = CUC|CUC$
CUP = Peso cuban|CU$
CVE = CVE|CV$
CYP = CYP|CY£||1
CZK = Corone de Republiche Ceche|Kč
DDM = DDM|||1
DEM = Marc todesc|DM||1
DJF = DJF|Fdj|0
DKK = Corone danês|Dkr
DOP = DOP|RD$
DZD = Dinar algerin|DA
ECS = ECS|||1
ECV = ECV
EEK = EEK|Ekr
EGP = EGP|EG£
EQE = EQE|||1
ERN = ERN|Nfk
ESA = ESA
ESB = ESB
ESP = ESP|Pts|0|1
ETB = ETB|Br
EUR = Euro|€
FIM = FIM|mk||1
FJD = FJD|FJ$
FKP = FKP|FK£
FRF = Franc francês|₣||1
GBP = Sterline britaniche|£
GEK = GEK|||1
GEL = GEL
GHC = GHC|₵||1
GHS = GHS|GH₵
GIP = GIP|GI£
GMD = GMD
GNF = GNF|FG|0
GNS = GNS|||1
GQE = GQE|||1
GRD = GRD|₯||1
GTQ = GTQ
GWE = GWE|||1
GWP = GWP
GYD = GYD|GY$|0
HKD = HKD|HK$
HNL = HNL
HRD = Dinar cravuat|||1
HRK = Kuna cravuate|kn
HTG = HTG
HUF = HUF|Ft|0
IDR = IDR|Rp|0
IEP = IEP|IR£||1
ILP = ILP|I£||1
ILS = ILS|₪
INR = Rupie indiane|Rs
IQD = IQD||0
IRR = Rial iranian||0
ISK = ISK|Ikr|0
ITL = Lire taliane|IT₤|0|1
JMD = JMD|J$
JOD = JOD|JD|3
JPY = Yen gjaponês|JP¥|0
KES = KES|Ksh
KGS = KGS
KHR = KHR
KMF = KMF|CF|0
KPW = KPW||0
KRW = Won de Coree dal Sud|₩|0
KWD = KWD|KD|3
KYD = KYD|KY$
KZT = KZT
LAK = LAK|₭|0
LBP = LBP|LB£|0
LKR = LKR|SLRs
LRD = LRD|L$
LSL = LSL
LSM = LSM|||1
LTL = LTL|Lt
LTT = LTT|||1
LUC = LUC
LUF = LUF||0|1
LUL = LUL
LVL = Lats leton|Ls
LVR = LVR|||1
LYD = LYD|LD|3
MAD = MAD
MAF = MAF|||1
MDL = MDL
MGA = MGA||0
MGF = MGF||0|1
MKD = MKD
MLF = MLF|||1
MMK = MMK||0
MNT = MNT|₮|0
MOP = MOP|MOP$
MRO = MRO|UM|0
MTL = MTL|Lm||1
MTP = MTP|MT£||1
MUR = MUR|MURs|0
MVR = MVR
MWK = MWK
MXN = Peso messican
MXP = MXP|MX$||1
MXV = MXV
MYR = MYR|RM
MZE = MZE|||1
MZM = MZM|Mt||1
MZN = MZN|MTn
NAD = Dolar namibian|N$
NGN = NGN|₦
NIC = NIC|||1
NIO = Córdoba oro nicaraguan|C$
NLG = NLG|fl||1
NOK = Corone norvegjêse|Nkr
NPR = NPR|NPRs
NZD = Dollar neozelandês|NZ$
OMR = OMR||3
PAB = PAB|B/.
PEI = PEI|I/.||1
PEN = PEN|S/.
PES = PES|||1
PGK = PGK
PHP = PHP|₱
PKR = Rupie pachistane|PKRs|0
PLN = Zloty polac|zł
PLZ = PLZ|||1
PTE = PTE|Esc||1
PYG = PYG|₲|0
QAR = QAR|QR
RHD = RHD|RH$||1
ROL = ROL|||1
RON = RON
RSD = Dinar serp|din.|0
RUB = Rubli rus
RUR = RUR|||1
RWF = RWF||0
SAR = SAR|SR
SBD = SBD|SI$
SCR = SCR|SRe
SDD = SDD|LSd||1
SDG = SDG
SDP = SDP|||1
SEK = Corone svedese|Skr
SGD = SGD|S$
SHP = SHP|SH£
SIT = Talar sloven|||1
SKK = Corone slovache|Sk||1
SLL = SLL|Le|0
SOS = SOS|Ssh|0
SRD = SRD|SR$
SRG = SRG|Sf||1
STD = STD|Db|0
SUR = SUR|||1
SVC = SVC|SV₡||1
SYP = SYP|SY£|0
SZL = SZL
THB = THB|฿
TJR = TJR|||1
TJS = TJS
TMM = TMM||0|1
TND = TND|DT|3
TOP = TOP|T$
TPE = TPE|||1
TRL = Viere Lire turche||0|1
TRY = Lire turche|TL
TTD = TTD|TT$
TWD = TWD|NT$
TZS = TZS|TSh|0
UAH = UAH|₴
UAK = UAK|||1
UGS = UGS|||1
UGX = UGX|USh|0
USD = Dolar american|US$
USN = Dolar american (prossime zornade)
USS = Dolar american (stesse zornade)
UYI = UYI
UYP = UYP|||1
UYU = UYU|$U
UZS = UZS||0
VEB = VEB|||1
VEF = VEF|Bs.F.
VND = VND|₫|0
VUV = VUV|VT|0
WST = WST|WS$
XAF = XAF|FCFA|0
XAG = Arint
XAU = Aur
XBA = Unitât composite europeane
XBB = Unitât monetarie europeane
XBC = Unitât di acont europeane (XBC)
XBD = Unitât di acont europeane (XBD)
XCD = XCD|EC$
XDR = Dirits speciâi di incas
XEU = XEU
XFO = Franc aur francês
XFU = Franc UIC francês
XOF = XOF|CFA|0
XPD = Paladi
XPF = XPF|CFPF|0
XPT = Platin
XRE = fonts RINET
XTS = codiç di verifiche de monede
XXX = Monede no valide o no cognossude
YDD = YDD|||1
YER = YER|YR|0
YUD = YUD|||1
YUM = YUM|||1
YUN = YUN|||1
ZAL = ZAL
ZAR = Rand sudafrican|R
ZMK = ZMK|ZK|0
ZRN = ZRN|NZ||1
ZRZ = ZRZ|||1
ZWD = ZWD|Z$|0|1
