# This file is obsolete. Do not use!

# liblouis: Se-Se.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 to used with Swedish translation tables.


        #Hex   Dots				Dec		Char Description
display \X0020 0					#32					space
display \X0021  235				#33		!			exclamation mark
display \X0022    56			#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 \X0026 346				#38		&			ampersand
display \X0027  5					#39		'			apostrophe
display \X0028	236		#40	(			left parenthesis
display \X0029  356		#41	)			right parenthesis
display \X002A  35		#42	*			asterisk
display \X002B	256		#43	+			plus sign
display \X002C      2		#44 ,			comma
display \X002D	36		#45	-			hyphen-minus
display \X002E	3			#46 .			full stop
display \X002F	34		#47	/			solidus

display \X0030	356		#480			digit zero
display \X0031  2	 		#491			digit one
display \X0032	126		#502			digit two
display \X0033	146		#513			digit three
display \X0034  1456	#524			digit four
display \X0035  156		#535			digit five
display \X0036  1246	#546			digit six
display \X0037  12456 #557			digit seven
display \X0038  236		#568			digit eight
display \X0039	35		#579			digit nine
display \X003A	25		#58 :			colon
display \X003B  23		#59 ;			semicolon
display \X003C  56			#60  <	less-than sign
# display \X003D 156		#61  =	equals sign
display \X003D 2356		#61  =	equals sign
# display \X003E 45			#62  >	greater-than sign
display \X003F  26		#63 ?			question mark

# display \X0040   4				#64  @	commercial at
display \X0040 123567			#64  @	commercial at

        #Hex   Dots		Dec	Char Description
display \X0041 17				#65	A Latin capital letter a
display \X0042 127			#66	B Latin capital letter b
display \X0043 147			#67	C Latin capital letter c
display \X0044 1457			#68	D Latin capital letter d
display \X0045 157			#69	E Latin capital letter e
display \X0046 1247			#70	F Latin capital letter f
display \X0047 12457		#71	G Latin capital letter g
display \X0048 1257			#72	H Latin capital letter h
display \X0049 247			#73	I Latin capital letter i
display \X004A 2457			#74	J Latin capital letter j
display \X004B 137			#75	K Latin capital letter k
display \X004C 1237			#76	L Latin capital letter l
display \X004D 1347			#77	M Latin capital letter m
display \X004E 13457		#78	N Latin capital letter n
display \X004F 1357			#79	O Latin capital letter o
display \X0050 12347		#80	P Latin capital letter p
display \X0051 123457		#81	Q Latin capital letter q
display \X0052 12357		#82	R Latin capital letter r
display \X0053 2347			#83	S Latin capital letter s
display \X0054 23457		#84	T Latin capital letter t
display \X0055 1367			#85	U Latin capital letter u
display \X0056 12367		#86	V Latin capital letter v
display \X0057 24567		#87	W Latin capital letter w
display \X0058 13467		#88	X Latin capital letter x
display \X0059 134567		#89	Y Latin capital letter y
display \X005A 13567		#90	Z Latin capital letter z

display \X005B 12356	#	91  [	left square bracket
display \X005C 347		#	92	\	reverse solidus
display \X005D 23456	# 93  ]	right square bracket
display \X005E 4		# 94 ^	circumflex accent
display \X005F 6		# 95 _	low line
display \X0060 46		# 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 456					# 124 |		vertical line
display \X007D 23456			#	125 }		right curly bracket
# display \X007E   2356     #	126 ~   tilde
display \X007E  45				#	126 ~   tilde
display \X007F 4					# 127	^		?delete

#Hex Dots Dec Char Description
display \X0080 48					# Eurosign
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 346		# 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	1678		# 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	168		# 226		â		Latin small letter a with circumflex
display \X00E3 58 # 227ã Latin small letter a with tilde
display \X00E4 345 # 228ä Latin small letter a with diaeresis
display \X00E5 16						# 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 123456					# 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  246 # 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 1256				# 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

