# Copyright 2014 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=25
#  date=$Date: 2014-02-13 05:14:13 +0100 (Thu, 13 Feb 2014) $
#  number=$Revision: 9728 $
#  type=root
AED = ⴰⴷⵔⵉⵎ ⵏ ⵍⵉⵎⴰⵔⴰⵜ
AOA = ⴽⵡⴰⵏⵣⴰ ⵏ ⴰⵏⴳⵓⵍⴰ
AUD = ⴰⴷⵓⵍⴰⵔ ⵏ ⵓⵙⵜⵔⴰⵍⵢⴰ|$
BHD = ⴰⴷⵉⵏⴰⵔ ⵏ ⴱⵃⵔⴰⵢⵏ||3
BIF = ⴼⵔⴰⵏⴽ ⵏ ⴱⵓⵔⵓⵏⴷⵉ||0
BWP = ⴰⴱⵓⵍⴰ ⵏ ⴱⵓⵜⵙⵡⴰⵏⴰ
CAD = ⴰⴷⵓⵍⴰⵔ ⵏ ⴽⴰⵏⴰⴷⴰ|CA$
CDF = ⴼⵔⴰⵏⴽ ⵏ ⴽⵓⵏⴳⵓ
CHF = ⴰⴼⵔⴰⵏⴽ ⵏ ⵙⵡⵉⵙⵔⴰ
CNY = ⴰⵢⴰⵏ ⵏ ⵛⵛⵉⵏⵡⴰ|¥
CVE = ⵉⵙⴽⵓⴷⵓ ⵏ ⴽⴰⴱⴱⵉⵔⴷⵉ
DJF = ⴼⵔⴰⵏⴽ ⵏ ⴷⵊⵉⴱⵓⵜⵉ||0
DZD = ⴰⴷⵉⵏⴰⵔ ⵏ ⴷⵣⴰⵢⵔ
EGP = ⴰⵊⵏⵉⵀ ⵏ ⵎⵉⵚⵕ
ERN = ⵏⴰⴼⴽⴰ ⵏ ⵉⵔⵉⵜⵉⵔⵢⴰ
ETB = ⴱⵉⵔ ⵏ ⵉⵜⵢⵓⴱⵢⴰ
EUR = ⵓⵔⵓ|€
GBP = ⴰⵊⵏⵉⵀ ⴰⵙⵜⵔⵍⵉⵏⵉ ⵏ ⵏⵏⴳⵍⵉⵣ|£
GHC = ⵙⵉⴷⵉ ⵏ ⵖⴰⵏⴰ|||1
GMD = ⴷⴰⵍⴰⵙⵉ ⵏ ⴳⴰⵎⴱⵢⴰ
GNS = ⴼⵔⴰⵏⴽ ⵏ ⵖⵉⵏⵢⴰ|||1
INR = ⴰⵔⵓⴱⵉ ⵏ ⵍⵀⵉⵏⴷ|Rs.
JPY = ⴰⵢⴰⵏ ⵏ ⵍⵢⴰⴱⴰⵏ|¥|0
KES = ⴰⵛⵉⵍⵉⵏ ⵏ ⴽⵉⵏⵢⴰ
KMF = ⴼⵔⴰⵏⴽ ⵏ ⵇⵓⵎⵓⵕ||0
LRD = ⴰⴷⵓⵍⴰⵔ ⵏ ⵍⵉⴱⵉⵔⵢⴰ
LSL = ⵍⵓⵜⵉ ⵏ ⵍⵉⵚⵓⵟⵓ
LYD = ⴰⴷⵉⵏⴰⵔ ⵏ ⵍⵉⴱⵢⴰ||3
MAD = ⴰⴷⵔⵉⵎ ⵏ ⵍⵎⵖⵔⵉⴱ
MGA = ⴼⵔⴰⵏⴽ ⵏ ⵎⴰⴷⴰⵖⴰⵛⵇⴰⵔ||0
MRO = ⵓⵇⵉⵢⵢⴰ ⵏ ⵎⵓⵕⵉⵟⴰⵏⵢⴰ||0
MUR = ⴰⵔⵓⴱⵉ ⵏ ⵎⵓⵔⵉⵙ||0
MWK = ⴽⵡⴰⵛⴰ ⵏ ⵎⴰⵍⴰⵡⵉ
MZM = ⴰⵎⵉⵜⵉⴽⵍ ⵏ ⵎⵓⵣⵏⴱⵉⵇ|||1
NAD = ⴰⴷⵓⵍⴰⵔ ⵏ ⵏⴰⵎⵉⴱⵢⴰ|$
NGN = ⵏⴰⵢⵔⴰ ⵏ ⵏⵉⵊⵉⵔⵢⴰ
RWF = ⴰⴼⵔⴰⵏⴽ ⵏ ⵔⵡⴰⵏⴷⴰ||0
SAR = ⴰⵔⵢⴰⵍ ⵏ ⵙⵙⴰⵄⵓⴷⵉⵢⴰ
SCR = ⴰⵔⵓⴱⵉ ⵏ ⵙⵙⵉⵛⵉⵍ
SDG = ⴰⴷⵉⵏⴰⵔ ⵏ ⵙⵙⵓⴷⴰⵏ
SDP = ⴰⵊⵏⵉⵀ ⵏ ⵙⵙⵓⴷⴰⵏ|||1
SHP = ⴰⵊⵏⵉⵀ ⵏ ⵙⴰⵏⵜⵉⵍⵉⵏ
SLL = ⵍⵉⵢⵓⵏ||0
SOS = ⴰⵛⵉⵍⵉⵏ ⵏ ⵚⵚⵓⵎⴰⵍ||0
STD = ⴰⴷⵓⴱⵔⴰ ⵏ ⵙⴰⵏⵟⵓⵎⵉ||0
SZL = ⵍⵉⵍⴰⵏⵊⵉⵏⵉ
TND = ⴰⴷⵉⵏⴰⵔ ⵏ ⵜⵓⵏⵙ||3
TZS = ⴰⵛⵉⵍⵉⵏ ⵏ ⵟⴰⵏⵥⴰⵏⵢⴰ||0
UGX = ⴰⵛⵉⵍⵉⵏ ⵏ ⵓⵖⴰⵏⴷⴰ||0
USD = ⴰⴷⵓⵍⴰⵔ ⵏ ⵉⵡⵓⵏⴰⴽ ⵉⵎⵓⵏⵏ|$
XAF = ⴼⵔⴰⵏⴽ ⵚⵉⴼⴰ|FCFA|0
XOF = ⴼⵔⴰⵏⴽ ⵚⵉⴼⴰ ⴱⵉⵙⴰⵡ|CFA|0
ZAR = ⴰⵔⴰⵏⴷ ⵏ ⴰⴼⵔⵉⵇⵢⴰ ⵏ ⵉⴼⴼⵓⵙ
ZMK = ⴰⴽⵡⴰⵛⴰ ⵏ ⵣⴰⵎⴱⵢⴰ (1968–2012)||0|1
ZMW = ⴰⴽⵡⴰⵛⴰ ⵏ ⵣⴰⵎⴱⵢⴰ
ZWD = ⴰⴷⵓⵍⴰⵔ ⵏ ⵣⵉⵎⴱⴰⴱⵡⵉ||0|1
