# 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 = Lupila lwa Hufalme dza Huhihalabu
AOA = Lupila lwa Huangola
AUD = Lupila lwa Huaustlalia|A$
BHD = Lupila lwa Hubahareni||3
BIF = Lupila lwa Huburundi||0
BWP = Lupila lwa Hubotswana
CAD = Lupila lwa Hukanada|CA$
CDF = Lupila lwa Hukongo
CHF = Lupila lwa Huuswisi
CNY = Lupila lwa Huchina|CN¥
CVE = Lupila lwa Hukepuvede
DJF = Lupila lwa Hujibuti||0
DZD = Lupila lwa Hualjelia
EGP = Lupila lwa Humisri
ERN = Lupila lwa Hueritrea
ETB = Lupila lwa Huuhabeshi
EUR = Lupila lwa Yulo|€
GBP = Lupila lwa Huuingereza|£
GHC = Lupila lwa Hughana|||1
GMD = Lupila lwa Hugambia
GNS = Lupila lwa Hujine|||1
INR = Lupila lwa Huindia|₹
JPY = Lupila lwa Hijapani|JP¥|0
KES = Shilingi ya Hukenya
KMF = Lupila lwa Hukomoro||0
LRD = Lupila lwa Hulibelia
LSL = Lupila lwa Hulesoto
LYD = Lupila lwa Hulibya||3
MAD = Lupila lwa Humoloko
MGA = Lupila lwa Hubukini||0
MRO = Lupila lwa Humolitania||0
MUR = Lupila lwa Humolisi||0
MWK = Lupila lwa Humalawi
MZM = Lupila lwa Humsumbiji|||1
NAD = Lupila lwa Hunamibia
NGN = Lupila lwa Hunijelia
RWF = Lupila lwa Hurwanda||0
SAR = Lupila lwa Husaudi
SCR = Lupila lwa Hushelisheli
SDG = Lupila lwa Husudani
SHP = Lupila lwa Husantahelena
SLL = Lupila lwa Lioni||0
SOS = Lupila lwa Husomalia||0
STD = Lupila lwa Husaotome na Huprinisipe||0|1
SZL = Lupila lwa Lilangeni
TND = Lupila lwa Hutunisia||3
TZS = Shilingi ya Hutanzania|TSh|0
UGX = Shilingi ya Huuganda||0
USD = Lupila lwa Humalekani|US$
XAF = Lupila lwa CFA BEAC|FCFA|0
XOF = Lupila lwa CFA BCEAO|CFA|0
ZAR = Lupila lwa Huafriaka ya Hukusini
ZMK = Lupila lwa Huzambia (1968–2012)||0|1
ZMW = Lupila lwa Huzambia
ZWD = Lupila lwa Huzimbabwe||0|1
