# 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:
#  cldrVersion=21.0
#  number=$Revision: 6546 Google $
#  date=$Date: 2012-02-07 13:32:35 -0500 (Tue, 07 Feb 2012) $
#  type=root

AED = United Arab Emirates Dirham
AFN = Afghan Afghani||0
ALL = Albanian Lek||0
AMD = Armenian Dram||0
ANG = Netherlands Antillean Guilder
AOA = Angolan Kwanza
ARS = Argentine Peso
AUD = Australian Dollar|AU$
AWG = Aruban Florin
AZN = Azerbaijani Manat
BAM = Bosnia-Herzegovina Convertible Mark
BBD = Barbadian Dollar
BDT = Bangladeshi Taka
BGN = Bulgarian Lev
BHD = Bahraini Dinar||3
BIF = Burundian Franc||0
BMD = Bermudan Dollar
BND = Brunei Dollar
BOB = Bolivian Boliviano
BRL = Brazilian Real|R$
BSD = Bahamian Dollar
BTN = Bhutanese Ngultrum
BWP = Botswanan Pula
BYR = Belarusian Ruble||0
BZD = Belize Dollar
CAD = Canadian Dollar|CA$
CDF = Congolese Franc
CHF = Swiss Francs||||5
CLP = Chilean Peso||0
CNY = Yuan Renminbi|CN¥
COP = Colombian Peso||0
CRC = Costa Rican Colón||0
CUC = Cuban Convertible Peso
CUP = Cuban Peso
CVE = Cape Verdean Escudo
CZK = Czech Koruna
DEM = Deutsche Marks|||1
DJF = Djiboutian Franc||0
DKK = Denmark Kroner
DOP = Dominican Peso
DZD = Algerian Dinar
EEK = Estonian Kroon|||1
EGP = Egyptian Pound
ERN = Eritrean Nakfa
ETB = Ethiopian Birr
EUR = Euros|€
FJD = Fijian Dollar
FKP = Falkland Islands Pound
FRF = French Franc|||1
GBP = British Pounds Sterling|UK£
GEL = Georgian Lari
GHS = Ghanaian Cedi
GIP = Gibraltar Pound
GMD = Gambian Dalasi
GNF = Guinean Franc||0
GTQ = Guatemalan Quetzal
GYD = Guyanaese Dollar||0
HKD = Hong Kong Dollars|HK$
HNL = Honduran Lempira
HRK = Croatian Kuna
HTG = Haitian Gourde
HUF = Hungarian Forint||0
IDR = Indonesian Rupiah||0
ILS = Israeli Shekel|₪
INR = Indian Rupee|Rs.
IQD = Iraqi Dinar||0
IRR = Iranian Rial||0
ISK = Icelandic Króna||0
JMD = Jamaican Dollar
JOD = Jordanian Dinar||3
JPY = Japanese Yen|JP¥|0
KES = Kenyan Shilling
KGS = Kyrgystani Som
KHR = Cambodian Riel
KMF = Comorian Franc||0
KPW = North Korean Won||0
KRW = South Korean Won|₩|0
KWD = Kuwaiti Dinar||3
KYD = Cayman Islands Dollar
KZT = Kazakhstani Tenge
LAK = Laotian Kip||0
LBP = Lebanese Pound||0
LKR = Sri Lankan Rupee
LRD = Liberian Dollar
LSL = Lesotho Loti
LTL = Lithuanian Litas
LVL = Latvian Lats
LYD = Libyan Dinar||3
MAD = Moroccan Dirham
MDL = Moldovan Leu
MGA = Malagasy Ariary||0
MKD = Macedonian Denar
MMK = Myanma Kyat||0
MNT = Mongolian Tugrik||0
MOP = Macanese Pataca
MRO = Mauritanian Ouguiya||0
MUR = Mauritian Rupee||0
MVR = Maldivian Rufiyaa
MWK = Malawian Kwacha
MXN = Mexico Peso|MX$
MYR = Malaysian Ringgit
NAD = Namibian Dollar
NGN = Nigerian Naira
NIO = Nicaraguan Córdoba
NOK = Norwegian Kroner
NPR = Nepalese Rupee
NZD = New Zealand Dollars|NZ$
OMR = Omani Rial||3
PAB = Panamanian Balboa
PEN = Peruvian Nuevo Sol
PGK = Papua New Guinean Kina
PHP = Philippine Peso|₱
PKR = Pakistan Rupee||0
PLN = Polish NewZloty
PYG = Paraguayan Guarani||0
QAR = Qatari Rial
RON = Romanian Leu
RSD = Serbian Dinar||0
RUB = Russian Ruble
RWF = Rwandan Franc||0
SAR = Saudi Riyal
SBD = Solomon Islands Dollar
SCR = Seychellois Rupee
SDG = Sudanese Pound
SEK = Sweden Kronor
SGD = Singapore Dollars
SHP = Saint Helena Pound
SIT = Slovenian Tolar|||1
SKK = Slovak Koruna|||1
SLL = Sierra Leonean Leone||0
SOS = Somali Shilling||0
SRD = Surinamese Dollar
STD = São Tomé and Príncipe Dobra||0
SYP = Syrian Pound||0
SZL = Swazi Lilangeni
THB = Thai Baht|฿
TJS = Tajikistani Somoni
TMT = Turkmenistani Manat
TND = Tunisian Dinar||3
TOP = Tongan Paʻanga
TRY = Turkish Lira
TTD = Trinidad and Tobago Dollar
TWD = New Taiwan Dollar|NT$
TZS = Tanzanian Shilling||0
UAH = Ukrainian Hryvnia
UGX = Ugandan Shilling||0
USD = US Dollar|US$
UYU = Uruguayan Peso
UZS = Uzbekistan Som||0
VEB = Venezuela Bolivar|||1
VEF = Venezuelan Bolívar
VND = Vietnamese Dong|₫|0
VUV = Vanuatu Vatu||0
WST = Samoan Tala
XAF = CFA Franc BEAC|FCFA|0
XCD = East Caribbean Dollar|EC$
XOF = CFA Franc BCEAO|CFA|0
XPF = CFP Franc|CFPF|0
YER = Yemeni Rial||0
ZAR = South African Rand
ZMK = Zambian Kwacha||0
