# 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 = Rabisiekab Kibagegeitab arabuk
AOA = Rabisiekab Angolan
AUD = Dolaitab Australian|A$
BHD = Rabisiekab Bahrain||3
BIF = Rabisiekab Burundi||0
BWP = Rabisiekab Botswana
CAD = Dolaitab Kanada|CA$
CDF = Rabisiekab Congo
CHF = Rabisiekab Swiss
CNY = Rabisiekab China|CN¥
CVE = Rabisiekab Kepuvede
DJF = Rabisiekab Jibuti||0
DZD = Rabisiekab Algerian
EGP = Pauditab Misri
ERN = Rabisiekab Eritrea
ETB = Rabisiekab Ethiopia
EUR = Yuroit|€
GBP = pounditab Uingereza|£
GHC = Rabisiekab Ghana|||1
GMD = Rabisiekab Gambia
GNS = Rabisiekab Guinea|||1
INR = Rabisiekab India|₹
JPY = Rabisiekab Japan|JP¥|0
KES = Silingitab ya Kenya|Ksh
KMF = Rabisiekab Komoro||0
LRD = Dolaitab Liberia
LSL = Rabisiekab Lesoto
LYD = Rabisiekab Libya||3
MAD = Rabisiekab Moroccan
MGA = Rabisiekab Malagasy||0
MRO = Rabisiekab Mauritania (1973–2017)||0|1
MRU = Rabisiekab Mauritania
MUR = Rabisiekab Mauritius
MWK = Rabisiekaby Malawi
MZM = Rabisiekab Msumbiji|||1
NAD = Dolaitab Namibia
NGN = Rabisiekab Nigeria
RWF = Rabisiekab Rwanda||0
SAR = Rabisiekab Saudia
SCR = Rabisiekab Shelisheli
SDG = Pouditab Sudan
SHP = Pouditab helena ne tilil
SLL = Leonit||0
SOS = siligitab Somalia||0
STD = Rabisiekab Sao Tome ak Principe (1977–2017)||0|1
STN = Rabisiekab Sao Tome ak Principe
SZL = Lilangenit
TND = RabisiekabTunisia||3
TZS = silingitab Tanzania
UGX = Silingitab Uganda||0
USD = Dolaitab ya Amareka|US$
XAF = Rabisiekab CFA BEAC|FCFA|0
XOF = Rabisiekab CFA BCEAO|CFA|0
ZAR = Randitab Afrika nebo murot tai
ZMK = Kwachaitab Zambia (1968–2012)||0|1
ZMW = Kwachaitab Zambia
ZWD = Dolaitab ya Zimbabwe||0|1
