#
# fontconfig/fc-lang/bua.orth
#
# 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 the author(s) not be used in
# advertising or publicity pertaining to distribution of the software without
# specific, written prior permission.  The authors make no
# representations about the suitability of this software for any purpose.  It
# is provided "as is" without express or implied warranty.
#
# THE AUTHOR(S) DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
# INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
# EVENT SHALL THE AUTHOR(S) 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.
#
# Coverage taken from TITUS (Thesaurus Indogermanischer Text und
# Sprachmaterialien)
#
# http://titus.uni-frankfurt.de/unicode/alphabet/nslatest.htm
#
# Buriat (Buryat) (BUA)
#
0401
0410
0411
0412
0413
0414
0415
0416
0417
0418
0419
041a
041b
041c
041d
041e
041f
0420
0421
0422
0423
0424
0425
0426
0427
0428
0429
042a
042b
042c
042d
042e
042f
0430
0431
0432
0433
0434
0435
0436
0437
0438
0439
043a
043b
043c
043d
043e
043f
0440
0441
0442
0443
0444
0445
0446
0447
0448
0449
044a
044b
044c
044d
044e
044f
0451
#0472	# CYRILLIC CAPITAL LETTER FITA (Historic cyrillic letter)
#0473	# CYRILLIC SMALL LETTER FITA (Historic cyrillic letter)
04ae
04af
04ba
04bb
