# 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 = mɔni mǝ á bǝlɔŋ bǝ kaksa bɛ táatáaŋzǝn
AOA = mɔni mǝ á angóla
AUD = mɔni mǝ á ɔstralí|A$
BHD = mɔni mǝ á barǝ́n||3
BIF = mɔni mǝ á burundí||0
BWP = mɔni mǝ á botswana
CAD = mɔni mǝ á kanada|CA$
CDF = mɔni mǝ á kɔngó
CHF = mɔni mǝ á swís
CNY = mɔni mǝ á cín|CN¥
CVE = mɔni mǝ á kapvɛr
DJF = mɔni mǝ á dyibutí||0
DZD = mɔni mǝ á aljɛrí
EGP = mɔni mǝ á ɛjípt
ERN = mɔni mǝ á ɛritrɛ́
ETB = mɔni mǝ á ɛtyɔpí
EUR = mɔni mǝ á pɛrɛsǝ́|€
GBP = mɔni mǝ á ingɛrís|£
GHC = mɔni mǝ á gána|||1
GMD = mɔni mǝ á gambí
GNS = mɔni mǝ á ginɛ́|||1
INR = mɔni mǝ á indí|₹
JPY = mɔni mǝ á japɔ́ŋ|JP¥|0
KES = mɔni mǝ á kɛnya
KMF = mɔni mǝ á komɔr||0
LRD = mɔni mǝ á libɛrya
LSL = mɔni mǝ á lǝsóto
LYD = mɔni mǝ á libí||3
MAD = mɔni mǝ á marɔk
MGA = mɔni mǝ á madagaska||0
MRO = mɔni mǝ á mwaritaní||0
MUR = mɔni mǝ á mwarís||0
MWK = mɔni mǝ á malawi
MZM = mɔni mǝ á mosambík|||1
NAD = mɔni mǝ á namibí
NGN = mɔni mǝ á nijɛ́rya
RWF = mɔni mǝ á rwanda||0
SAR = mɔni mǝ á arabí saodí
SCR = mɔni mǝ á sɛcɛl
SDG = mɔni mǝ á sudan
SHP = mɔni mǝ á sɛntɛ́len
SLL = mɔni mǝ á syɛraleon||0
SOS = mɔni mǝ á somalí||0
STD = mɔni mǝ á saotomɛ́ ri priŋsib||0|1
SZL = mɔni mǝ á swazilan
TND = mɔni mǝ á tunɛsí||3
TZS = mɔni mǝ á tanzaní||0
UGX = mɔni mǝ á uganda||0
USD = mɔni mǝ á amɛrika|US$
XAF = fráŋ|FCFA|0
XOF = mɔni mǝ á afríka aná wɛs|CFA|0
ZAR = mɔni mǝ á afrik anǝ a sud
ZMK = mɔni mǝ á zambí (1968–2012)||0|1
ZMW = mɔni mǝ á zambí
ZWD = mɔni mǝ á zimbabwɛ́||0|1
