# 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

