# This file is obsolete. Do not use!

# liblouis: uni-text.dis
#
# Copyright (C) 1995-2004 by The BRLTTY Team
# Copyright (C) 2004 ViewPlus Technologies, Inc., www.viewplustech.com
# Copyright (C) 2004 Computers to Help People, Inc., www.chpi.org

# This file is free software; you can redistribute it and/or
# modify it under the terms of the GNU Lesser General Public
# License as published by the Free Software Foundation; either
# version 2.1 of the License, or (at your option) any later version.

# This file is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
# Lesser General Public License for more details.

# You should have received a copy of the GNU Lesser General Public
# License along with this file; if not, write to the Free Software
# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
# liblouis  comes with ABSOLUTELY NO WARRANTY.

# This is a description of the default text translation table used by BRLTTY.  


        #Hex   Dots				Dec		Char Description
display \x0020 0					#32					space
display \x0021  2346			#33		!			exclamation mark
display \x0022    5				#34		"			quotation mark
display \x0023   3456			#35		#			number sign
display \x0024 1246				#36		$			dollar sign
display \x0025 146				#37		%			percent sign
display \x0026 12346			#38		&			ampersand
display \x0027  3					#39		'			apostrophe
display \x0028	12356			#40		(			left parenthesis
display \x0029   23456		#41		)			right parenthesis
display \x002A 16					#42		*			asterisk
display \x002B	346				#43		+			plus sign
display \x002C    6				#44		,			comma
display \x002D	36				#45		-			hyphen-minus
display \x002E	46				#46		.			full stop
display \x002F	34				#47		/			solidus

display \x0030	356		#480			digit zero
display \x0031	2			#491			digit one
display \x0032	23		#502			digit two
display \x0033	25		#513			digit three
display \x0034  256		#524			digit four
display \x0035  26		#535			digit five
display \x0036  235		#546			digit six
display \x0037  2356	#557			digit seven
display \x0038  236		#568			digit eight
display \x0039	35		#579			digit nine

display \x003A	156			#58		:		colon
display \x003B   56			#59		;		semicolon
display \x003C 126			#60		<		less-than sign
display \x003D 123456		#61		=		equals sign
display \x003E 345			#62		>		greater-than sign
display \x003F 1456			#63		?		question mark
display \x0040  47			#64		@	commercial at

        #Hex   Dots		Dec	Char Description
display \x0041 1				#65	A Latin capital letter a
display \x0042 12				#66	B Latin capital letter b
display \x0043 14				#67	C Latin capital letter c
display \x0044 145			#68	D Latin capital letter d
display \x0045 15				#69	E Latin capital letter e
display \x0046 124			#70	F Latin capital letter f
display \x0047 1245			#71	G Latin capital letter g
display \x0048 125			#72	H Latin capital letter h
display \x0049 24				#73	I Latin capital letter i
display \x004A 245			#74	J Latin capital letter j
display \x004B 13				#75	K Latin capital letter k
display \x004C 123			#76	L Latin capital letter l
display \x004D 134			#77	M Latin capital letter m
display \x004E 1345			#78	N Latin capital letter n
display \x004F 1357			#79	O Latin capital letter o
display \x0050 1234			#80	P Latin capital letter p
display \x0051 12345		#81	Q Latin capital letter q
display \x0052 1235			#82	R Latin capital letter r
display \x0053 234			#83	S Latin capital letter s
display \x0054 2345			#84	T Latin capital letter t
display \x0055 136			#85	U Latin capital letter u
display \x0056 1236			#86	V Latin capital letter v
display \x0057 2456			#87	W Latin capital letter w
display \x0058 1346			#88	X Latin capital letter x
display \x0059 13456		#89	Y Latin capital letter y
display \x005A 1356			#90	Z Latin capital letter z

display \x005B 246			#	91  [		left square bracket
display \x005C 12567		#	92	\		reverse solidus
display \x005D 12456		# 93  ]		right square bracket
display \x005E 2346		# 94 ^	circumflex accent
display \x005F 456		# 95 _	low line
display \x0060 345		# 96 `	grave accent

display \x0061 1			#97  a  Latin small letter a
display \x0062 12			#98  b Latin small letter b
display \x0063 14			#99  c Latin small letter c
display \x0064 145		#100 d Latin small letter d
display \x0065 15			#101 e Latin small letter e
display \x0066 124		#102 f Latin small letter f
display \x0067 1245		#103 g Latin small letter g
display \x0068 125		#104 h Latin small letter h
display \x0069  24		#105 i Latin small letter i
display \x006A  245		#106 j Latin small letter j
display \x006B 13			#107 k Latin small letter k
display \x006C 123		#108 l Latin small letter l
display \x006D 134		#109 m Latin small letter m
display \x006E 1345		#110 n Latin small letter n
display \x006F 135		#111 o Latin small letter o
display \x0070 1234		#112 p Latin small letter p
display \x0071 12345	#113 q Latin small letter q
display \x0072 1235		#114 r Latin small letter r
display \x0073 234		#115 s Latin small letter s
display \x0074  2345	#116 t Latin small letter t
display \x0075 136		#117 u Latin small letter u
display \x0076 1236		#118 v Latin small letter v
display \x0077  2456	#119 w Latin small letter w
display \x0078 1346		#120 x Latin small letter x
display \x0079 13456	#121 y Latin small letter y
display \x007A 1356		#122 z Latin small letter z

display \x007B  12356			# 123 {		left curly bracket
display \x007C 34					# 124 |		vertical line
display \x007D 23456			#	125 }		right curly bracket
display \x007E   45				#	126 ~   tilde
display \x007F 4568				# 127	^		?delete

					#Hex Dots Dec Char Description
display \x0080 48			# 128		~@<control>
display \x0081 18			# 129		~A<control>
display \x0082 128		# 130		~Bbreak permitted here
display \x0083 148		# 131		~Cno break here
display \x0084 1458		# 132		~D<control>
display \x0085 158		# 133		~Enext line
display \x0086 1248		# 134		~Fstart of selected area
display \x0087 12458	# 135		~Gend of selected area
display \x0088 1258		# 136		~Hcharacter tabulation set
display \x0089  248		# 137		~Icharacter tabulation with justification
display \x008A  2458	# 138		~Jline tabulation set
display \x008B 138	# 139~Kpartial line down
display \x008C 1238 # 140~Lpartial line up
display \x008D 1348 # 141~Mreverse line feed
display \x008E 13458 # 142~Nsingle shift two
display \x008F 1358 # 143~Osingle shift three
display \x0090 12348 # 144~Pdevice control string
display \x0091 123458 # 145~Qprivate use one
display \x0092 12358 # 146~Rprivate use two
display \x0093 2348 # 147~Sset transmit state
display \x0094  23458 # 148~Tcancel character
display \x0095 1368 # 149~Umessage waiting
display \x0096 12368 # 150~Vstart of guarded area
display \x0097  24568 # 151~Wend of guarded area
display \x0098 13468 # 152~Xstart of string
display \x0099 134568 # 153~Y<control>
display \x009A 13568 # 154~Zsingle character introducer
display \x009B  2468 # 155~[control sequence introducer
display \x009C 12568 # 156~\string terminator
display \x009D 124568 # 157~]operating system command
display \x009E 458 # 158~^privacy message
display \x009F 4568		# 159				~_application program command
display \x00A0 0			#160			no-break space

#Hex Dots Dec Char Description
display \x0000 478 #0^@null
display \x0001 178 #1^Astart of heading
display \x0002 1278 #2^Bstart of text
display \x0003 1478 #3^Cend of text
display \x0004 14578 #4^Dend of transmission
display \x0005 1578 #5^Eenquiry
display \x0006 12478 #6^Facknowledge
display \x0007 124578 #7^Gbell
display \x0008 12578 #8^Hbackspace
display \x0009  2478 #9^Ihorizontal tabulation
display \x000A  24578 #10^Jline feed
display \x000B 1378 #11^Kvertical tabulation
display \x000C 12378 #12^Lform feed
display \x000D 13478 #13^Mcarriage return
display \x000E 134578 #14^Nshift out
display \x000F 13578 #15^Oshift in
display \x0010 123478 #16^Pdata link escape
display \x0011 1234578 #17^Qdevice control one
display \x0012 123578 #18^Rdevice control two
display \x0013 23478 #19^Sdevice control three
display \x0014  234578 #20^Tdevice control four
display \x0015 13678 #21^Unegative acknowledge
display \x0016 123678 #22^Vsynchronous idle
display \x0017  245678 #23^Wend of transmission block
display \x0018 134678 #24^Xcancel
display \x0019 1345678 #25^Yend of medium
display \x001A 135678 #26^Zsubstitute
display \x001B  24678 #27^[escape
display \x001C 125678 #28^\file separator
display \x001D 1245678 #29^]group separator
display \x001E 4578 #30^^record separator
display \x001F 45678 #31^_unit separator

				#Hex	 Dots			Dec	Char	Description
display \x00A1 23467  #	161 ¡			inverted exclamation mark
display \x00A2 58			#162	¢			cent sign 
display \x00A3 34567  # 163	£			pound sign
display \x00A4 1467		# 164	¤			currency sign
display \x00A5 123467 # 165	¥			yen sign
display \x00A6 1567		# 166	¦			broken bar
display \x00A7 357		# 167	§			section sign
display \x00A8  57		# 168	¨			diaeresis
display \x00A9  23567 # 169	©			copyright sign
display \x00AA 8			# 170	ª			feminine ordinal indicator
display \x00AB 1267		# 171	«			left-pointing double angle quotation mark
display \x00AC  2567  # 172	¬			not sign
display \x00AD 367		# 173	­			soft hyphen
display \x00AE  2367  # 174	®			registered sign
display \x00AF  267		# 175	¯			macron
display \x00B0 3567		# 176	°			degree sign

display \x00C0  23578		# 192		À		Latin capital letter a with grave
display \x00C1	1678		# 193		Á		Latin capital letter a with acute
display \x00C2	16			# 194		Â		Latin capital letter a with circumflex
display \x00C3	578 # 195Ã Latin capital letter a with tilde
display \x00C4	1234678 # 196Ä Latin capital letter a with diaeresis
display \x00C5	34578 # 197Å Latin capital letter a with ring above
display \x00C6	378 # 198Æ Latin capital letter ae
display \x00C7	34678 # 199Ç Latin capital letter c with cedilla
display \x00C8  23567		#	200		È		Latin capital letter e with grave
display \x00C9	12678		# 201É Latin capital letter e with acute
display \x00CA  2378	# 202		Ê		Latin capital letter e with circumflex
display \x00CB 12345678 # 203Ë Latin capital letter e with diaeresis
display \x00CC  23678 # 204Ì Latin capital letter i with grave
display \x00CD 14678 # 205Í Latin capital letter i with acute
display \x00CE  2578	# 206		Î		Latin capital letter i with circumflex
display \x00CF 1235678 # 207Ï Latin capital letter i with diaeresis
display \x00D0 678 # 208Ð Latin capital letter eth
display \x00D1 4678 # 209Ñ Latin capital letter n with tilde
display \x00D2 3578 # 210Ò Latin capital letter o with grave
display \x00D3 145678 # 211Ó Latin capital letter o with acute
display \x00D4  25678 # 212		Ô		Latin capital letter o with circumflex
display \x00D5  5678 # 213Õ Latin capital letter o with tilde
display \x00D6  234678 # 214Ö Latin capital letter o with diaeresis
display \x00D7 167  # 215×multiplication sign
display \x00D8 3478 # 216Ø Latin capital letter o with stroke
display \x00D9 35678 # 217Ù Latin capital letter u with grave
display \x00DA 15678 # 218Ú Latin capital letter u with acute
display \x00DB  2678	# 219		Û		Latin capital letter u with circumflex
display \x00DC  2345678 # 220Ü Latin capital letter u with diaeresis
display \x00DD 124678 # 221Ý Latin capital letter y with acute
display \x00DE 3678 # 222Þ Latin capital letter thorn
display \x00DF 345678 # 223ß Latin small letter sharp s
display \x00E0  2358 # 224à Latin small letter a with grave
display \x00E1 168 # 225á Latin small letter a with acute
display \x00E2	16		# 226		â		Latin small letter a with circumflex
display \x00E3 58 # 227ã Latin small letter a with tilde
display \x00E4 123468 # 228ä Latin small letter a with diaeresis
display \x00E5 3458 # 229å Latin small letter a with ring above
display \x00E6 38 # 230æ Latin small letter ae
display \x00E7 3468 # 231ç Latin small letter c with cedilla
display \x00E8  23568 # 232è Latin small letter e with grave
display \x00E9 1268 # 233é Latin small letter e with acute
display \x00EA  238		# 234		ê		Latin small letter e with circumflex
display \x00EB 1234568 # 235ë Latin small letter e with diaeresis
display \x00EC  2368 # 236ì Latin small letter i with grave
display \x00ED 1468 # 237í Latin small letter i with acute
display \x00EE  258		# 238		î		Latin small letter i with circumflex
display \x00EF 123568 # 239ï Latin small letter i with diaeresis
display \x00F0 68 # 240ð Latin small letter eth
display \x00F1 468 # 241ñ Latin small letter n with tilde
display \x00F2 358 # 242ò Latin small letter o with grave
display \x00F3 14568 # 243ó Latin small letter o with acute
display \x00F4  2568	# 244		ô		Latin small letter o with circumflex
display \x00F5  568 # 245õ Latin small letter o with tilde
display \x00F6  23468 # 246ö Latin small letter o with diaeresis
display \x00F7 347  # 247÷division sign
display \x00F8 348 # 248ø Latin small letter o with stroke
display \x00F9 3568 # 249ù Latin small letter u with grave
display \x00FA 1568 # 250ú Latin small letter u with acute
display \x00FB  268		# 251		û		Latin small letter u with circumflex
display \x00FC  234568 # 252ü Latin small letter u with diaeresis
display \x00FD 12468 # 253ý Latin small letter y with acute
display \x00FE 368 # 254þ Latin small letter thorn
display \x00FF 34568 # 255ÿ Latin small letter y with diaeresis


display \x00BB 3457  # 187»right-pointing double angle quotation mark
display \x00B9  27  # 185¹superscript one
display \x00B2 237  # 178²superscript two
display \x00B3 257  # 179³superscript three
display \x00B1 3467  # 177±plus-minus sign
display \x00D7 167  # 215×multiplication sign

display \x00B7 467  # 183·middle dot

display \x00BF 14567  # 191¿inverted question mark


display \x00B6  2357  # 182	¶		pilcrow sign


#Hex Dots Dec Char Description
display \x00BC 123567  # 188¼vulgar fraction one quarter
display \x00BD 1234567  # 189½vulgar fraction one half
display \x00BE  234567  # 190¾vulgar fraction three quarters

# Each of the three extended accent characters is the same as its conventional
# compose character but with dot7 added:

#Hex Dots Dec Char Description
display \x00B4 37  # 180´acute accent
display \x00B8 67  # 184¸cedilla


# The two gender symbols are:

#Hex Dots Dec Char Description
display \x00BA 7  # 186ºmasculine ordinal indicator


# The three remaining characters are:

#Hex Dots Dec Char Description

display \x00B5  567  # 181µmicro sign


# The nonbreaking space is dots 7 and 8 because this presents a sequence of
# nonbreaking spaces as a smooth low line segment.

#Hex Dots Dec Char Description

