#
# $RCSId: xc/lib/fontconfig/fc-lang/fo.orth,v 1.2 2002/07/06 23:59:15 keithp Exp $
#
# Copyright © 2002 Keith Packard
#
# Permission to use, copy, modify, distribute, and sell this software and its
# documentation for any purpose is hereby granted without fee, provided that
# the above copyright notice appear in all copies and that both that
# copyright notice and this permission notice appear in supporting
# documentation, and that the name of Keith Packard not be used in
# advertising or publicity pertaining to distribution of the software without
# specific, written prior permission.  Keith Packard makes no
# representations about the suitability of this software for any purpose.  It
# is provided "as is" without express or implied warranty.
#
# KEITH PACKARD DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
# INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
# EVENT SHALL KEITH PACKARD BE LIABLE FOR ANY SPECIAL, INDIRECT OR
# CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
# DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
# TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
# PERFORMANCE OF THIS SOFTWARE.
#
# Faroese (FO)
#
# Sources:
#	www.evertype.com
#	www.eki.ee/letter
#
0041-005a
0061-007a
00C1		# LATIN CAPITAL LETTER A WITH ACUTE
#00C4		# LATIN CAPITAL LETTER A WITH DIAERESIS		evertype.com
#00C5		# LATIN CAPITAL LETTER A WITH RING ABOVE	evertype.com
00C6		# LATIN CAPITAL LETTER AE (ash) *
00CD		# LATIN CAPITAL LETTER I WITH ACUTE
00D0		# LATIN CAPITAL LETTER ETH (Icelandic)
00D3		# LATIN CAPITAL LETTER O WITH ACUTE
#00D6		# LATIN CAPITAL LETTER O WITH DIAERESIS		evertype.com
00D8		# LATIN CAPITAL LETTER O WITH STROKE
00DA		# LATIN CAPITAL LETTER U WITH ACUTE
#00DC		# LATIN CAPITAL LETTER U WITH DIAERESIS		evertype.com
00DD		# LATIN CAPITAL LETTER Y WITH ACUTE
00E1		# LATIN SMALL LETTER A WITH ACUTE
#00E4		# LATIN SMALL LETTER A WITH DIAERESIS		evertype.com
#00E5		# LATIN SMALL LETTER A WITH RING ABOVE		evertype.com
00E6		# LATIN SMALL LETTER AE (ash) *
00ED		# LATIN SMALL LETTER I WITH ACUTE
00F0		# LATIN SMALL LETTER ETH (Icelandic)
00F3		# LATIN SMALL LETTER O WITH ACUTE
#00F6		# LATIN SMALL LETTER O WITH DIAERESIS		evertype.com
00F8		# LATIN SMALL LETTER O WITH STROKE
00FA		# LATIN SMALL LETTER U WITH ACUTE
#00FC		# LATIN SMALL LETTER U WITH DIAERESIS		evertype.com
00FD		# LATIN SMALL LETTER Y WITH ACUTE
#2018		# single quote
#201a		# single quote
#201c		# double quote
#201e		# double quote
