CharacterEncoderImplementations__AdobeStandard.st
author Claus Gittinger <cg@exept.de>
Tue, 09 Jul 2019 20:55:17 +0200
changeset 24417 03b083548da2
parent 21722 3c2efef11f14
permissions -rw-r--r--
#REFACTORING by exept class: Smalltalk class changed: #recursiveInstallAutoloadedClassesFrom:rememberIn:maxLevels:noAutoload:packageTop:showSplashInLevels: Transcript showCR:(... bindWith:...) -> Transcript showCR:... with:...

"{ Encoding: utf8 }"

"
 COPYRIGHT (c) 2017 by eXept Software AG
              All Rights Reserved

 This software is furnished under a license and may be used
 only in accordance with the terms of that license and with the
 inclusion of the above copyright notice.   This software may not
 be provided or otherwise made available to, or used by, any
 other person.  No title to or ownership of the software is
 hereby transferred.
"
"{ Package: 'stx:libbasic' }"

"{ NameSpace: CharacterEncoderImplementations }"

SingleByteEncoder subclass:#AdobeStandard
	instanceVariableNames:''
	classVariableNames:''
	poolDictionaries:''
	category:'Collections-Text-Encodings'
!

!AdobeStandard class methodsFor:'documentation'!

copyright
"
 COPYRIGHT (c) 2017 by eXept Software AG
              All Rights Reserved

 This software is furnished under a license and may be used
 only in accordance with the terms of that license and with the
 inclusion of the above copyright notice.   This software may not
 be provided or otherwise made available to, or used by, any
 other person.  No title to or ownership of the software is
 hereby transferred.
"
!

documentation
"
    Adobe Standard Encoding.
    see https://www.compart.com/en/unicode/charsets/Adobe-Standard-Encoding
    and http://www.unicode.org/Public/MAPPINGS/VENDORS/ADOBE/stdenc.txt

    [see with:]
        CharacterEncoderImplementations::AdobeStandard showCharacterSet

    [author:]
        Claus Gittinger
"
! !

!AdobeStandard class methodsFor:'mapping'!

mapFileURL1_relativePathName
    ^ 'VENDORS/ADOBE/stdenc.txt'
!

mapping
"
# From: http://www.unicode.org/Public/MAPPINGS/VENDORS/ADOBE/stdenc.txt

#
#  Name:             Adobe Standard Encoding to Unicode
#  Unicode version:  2.0
#  Table version:    1.0
#  Date:             2011 July 12
#  
#  Copyright (c) 1991-2011 Unicode, Inc. All Rights reserved.
#  
#  This file is provided as-is by Unicode, Inc. (The Unicode Consortium). No
#  claims are made as to fitness for any particular purpose. No warranties of
#  any kind are expressed or implied. The recipient agrees to determine
#  applicability of information provided. If this file has been provided on
#  magnetic media by Unicode, Inc., the sole remedy for any claim will be
#  exchange of defective media within 90 days of receipt.
#  
#  Unicode, Inc. hereby grants the right to freely use the information
#  supplied in this file in the creation of products supporting the
#  Unicode Standard, and to make copies of this file in any form for
#  internal or external distribution as long as this notice remains
#  attached.
#
#  Format: 4 tab-delimited fields:
#
#    (1) The Unicode value (in hexadecimal)
#    (2) The Adobe Standard Encoding code point (in hexadecimal)
#    (3) # Unicode name
#    (4) # PostScript character name
#  
#  General Notes:
# 
#    The Unicode values in this table were produced as the result of applying
#    the algorithm described in the section 'Populating a Unicode space' in the
#    document 'Unicode and Glyph Names,' at
#    http://partners.adobe.com/asn/developer/typeforum/unicodegn.html
#    to the characters encoded in Adobe Standard Encoding. Note that some
#    Standard Encoding characters, such as 'space', are mapped to 2 Unicode
#    values. Refer to the above document for more details.
#
#    2011 July 12: The above link is no longer valid. For comparable,
#    more current information, see the document, 'Glyph', at:
#    <http://www.adobe.com/devnet/opentype/archives/glyph.html>
#
#  Revision History:
#
#    [v1.0, 2011 July 12]
#    Updated terms of use to current wording.
#    Updated contact information and document link.
#    No changes to the mapping data.
#
#    [v0.2, 30 March 1999]
#    Different algorithm to produce Unicode values (see notes above) results in
#    some character codes being mapped to 2 Unicode values. Updated Unicode
#    names to Unicode 2.0 names.
#    
#    [v0.1, 5 May 1995] First release.
#
#  Use the Unicode reporting form <http://www.unicode.org/reporting.html>
#    for any questions or comments or to report errors in the data.
#
0020    20      # SPACE # space
00A0    20      # NO-BREAK SPACE        # space
0021    21      # EXCLAMATION MARK      # exclam
0022    22      # QUOTATION MARK        # quotedbl
0023    23      # NUMBER SIGN   # numbersign
0024    24      # DOLLAR SIGN   # dollar
0025    25      # PERCENT SIGN  # percent
0026    26      # AMPERSAND     # ampersand
2019    27      # RIGHT SINGLE QUOTATION MARK   # quoteright
0028    28      # LEFT PARENTHESIS      # parenleft
0029    29      # RIGHT PARENTHESIS     # parenright
002A    2A      # ASTERISK      # asterisk
002B    2B      # PLUS SIGN     # plus
002C    2C      # COMMA # comma
002D    2D      # HYPHEN-MINUS  # hyphen
00AD    2D      # SOFT HYPHEN   # hyphen
002E    2E      # FULL STOP     # period
002F    2F      # SOLIDUS       # slash
0030    30      # DIGIT ZERO    # zero
0031    31      # DIGIT ONE     # one
0032    32      # DIGIT TWO     # two
0033    33      # DIGIT THREE   # three
0034    34      # DIGIT FOUR    # four
0035    35      # DIGIT FIVE    # five
0036    36      # DIGIT SIX     # six
0037    37      # DIGIT SEVEN   # seven
0038    38      # DIGIT EIGHT   # eight
0039    39      # DIGIT NINE    # nine
003A    3A      # COLON # colon
003B    3B      # SEMICOLON     # semicolon
003C    3C      # LESS-THAN SIGN        # less
003D    3D      # EQUALS SIGN   # equal
003E    3E      # GREATER-THAN SIGN     # greater
003F    3F      # QUESTION MARK # question
0040    40      # COMMERCIAL AT # at
0041    41      # LATIN CAPITAL LETTER A        # A
0042    42      # LATIN CAPITAL LETTER B        # B
0043    43      # LATIN CAPITAL LETTER C        # C
0044    44      # LATIN CAPITAL LETTER D        # D
0045    45      # LATIN CAPITAL LETTER E        # E
0046    46      # LATIN CAPITAL LETTER F        # F
0047    47      # LATIN CAPITAL LETTER G        # G
0048    48      # LATIN CAPITAL LETTER H        # H
0049    49      # LATIN CAPITAL LETTER I        # I
004A    4A      # LATIN CAPITAL LETTER J        # J
004B    4B      # LATIN CAPITAL LETTER K        # K
004C    4C      # LATIN CAPITAL LETTER L        # L
004D    4D      # LATIN CAPITAL LETTER M        # M
004E    4E      # LATIN CAPITAL LETTER N        # N
004F    4F      # LATIN CAPITAL LETTER O        # O
0050    50      # LATIN CAPITAL LETTER P        # P
0051    51      # LATIN CAPITAL LETTER Q        # Q
0052    52      # LATIN CAPITAL LETTER R        # R
0053    53      # LATIN CAPITAL LETTER S        # S
0054    54      # LATIN CAPITAL LETTER T        # T
0055    55      # LATIN CAPITAL LETTER U        # U
0056    56      # LATIN CAPITAL LETTER V        # V
0057    57      # LATIN CAPITAL LETTER W        # W
0058    58      # LATIN CAPITAL LETTER X        # X
0059    59      # LATIN CAPITAL LETTER Y        # Y
005A    5A      # LATIN CAPITAL LETTER Z        # Z
005B    5B      # LEFT SQUARE BRACKET   # bracketleft
005C    5C      # REVERSE SOLIDUS       # backslash
005D    5D      # RIGHT SQUARE BRACKET  # bracketright
005E    5E      # CIRCUMFLEX ACCENT     # asciicircum
005F    5F      # LOW LINE      # underscore
2018    60      # LEFT SINGLE QUOTATION MARK    # quoteleft
0061    61      # LATIN SMALL LETTER A  # a
0062    62      # LATIN SMALL LETTER B  # b
0063    63      # LATIN SMALL LETTER C  # c
0064    64      # LATIN SMALL LETTER D  # d
0065    65      # LATIN SMALL LETTER E  # e
0066    66      # LATIN SMALL LETTER F  # f
0067    67      # LATIN SMALL LETTER G  # g
0068    68      # LATIN SMALL LETTER H  # h
0069    69      # LATIN SMALL LETTER I  # i
006A    6A      # LATIN SMALL LETTER J  # j
006B    6B      # LATIN SMALL LETTER K  # k
006C    6C      # LATIN SMALL LETTER L  # l
006D    6D      # LATIN SMALL LETTER M  # m
006E    6E      # LATIN SMALL LETTER N  # n
006F    6F      # LATIN SMALL LETTER O  # o
0070    70      # LATIN SMALL LETTER P  # p
0071    71      # LATIN SMALL LETTER Q  # q
0072    72      # LATIN SMALL LETTER R  # r
0073    73      # LATIN SMALL LETTER S  # s
0074    74      # LATIN SMALL LETTER T  # t
0075    75      # LATIN SMALL LETTER U  # u
0076    76      # LATIN SMALL LETTER V  # v
0077    77      # LATIN SMALL LETTER W  # w
0078    78      # LATIN SMALL LETTER X  # x
0079    79      # LATIN SMALL LETTER Y  # y
007A    7A      # LATIN SMALL LETTER Z  # z
007B    7B      # LEFT CURLY BRACKET    # braceleft
007C    7C      # VERTICAL LINE # bar
007D    7D      # RIGHT CURLY BRACKET   # braceright
007E    7E      # TILDE # asciitilde
00A1    A1      # INVERTED EXCLAMATION MARK     # exclamdown
00A2    A2      # CENT SIGN     # cent
00A3    A3      # POUND SIGN    # sterling
2044    A4      # FRACTION SLASH        # fraction
2215    A4      # DIVISION SLASH        # fraction
00A5    A5      # YEN SIGN      # yen
0192    A6      # LATIN SMALL LETTER F WITH HOOK        # florin
00A7    A7      # SECTION SIGN  # section
00A4    A8      # CURRENCY SIGN # currency
0027    A9      # APOSTROPHE    # quotesingle
201C    AA      # LEFT DOUBLE QUOTATION MARK    # quotedblleft
00AB    AB      # LEFT-POINTING DOUBLE ANGLE QUOTATION MARK     # guillemotleft
2039    AC      # SINGLE LEFT-POINTING ANGLE QUOTATION MARK     # guilsinglleft
203A    AD      # SINGLE RIGHT-POINTING ANGLE QUOTATION MARK    # guilsinglright
FB01    AE      # LATIN SMALL LIGATURE FI       # fi
FB02    AF      # LATIN SMALL LIGATURE FL       # fl
2013    B1      # EN DASH       # endash
2020    B2      # DAGGER        # dagger
2021    B3      # DOUBLE DAGGER # daggerdbl
00B7    B4      # MIDDLE DOT    # periodcentered
2219    B4      # BULLET OPERATOR       # periodcentered
00B6    B6      # PILCROW SIGN  # paragraph
2022    B7      # BULLET        # bullet
201A    B8      # SINGLE LOW-9 QUOTATION MARK   # quotesinglbase
201E    B9      # DOUBLE LOW-9 QUOTATION MARK   # quotedblbase
201D    BA      # RIGHT DOUBLE QUOTATION MARK   # quotedblright
00BB    BB      # RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK    # guillemotright
2026    BC      # HORIZONTAL ELLIPSIS   # ellipsis
2030    BD      # PER MILLE SIGN        # perthousand
00BF    BF      # INVERTED QUESTION MARK        # questiondown
0060    C1      # GRAVE ACCENT  # grave
00B4    C2      # ACUTE ACCENT  # acute
02C6    C3      # MODIFIER LETTER CIRCUMFLEX ACCENT     # circumflex
02DC    C4      # SMALL TILDE   # tilde
00AF    C5      # MACRON        # macron
02C9    C5      # MODIFIER LETTER MACRON        # macron
02D8    C6      # BREVE # breve
02D9    C7      # DOT ABOVE     # dotaccent
00A8    C8      # DIAERESIS     # dieresis
02DA    CA      # RING ABOVE    # ring
00B8    CB      # CEDILLA       # cedilla
02DD    CD      # DOUBLE ACUTE ACCENT   # hungarumlaut
02DB    CE      # OGONEK        # ogonek
02C7    CF      # CARON # caron
2014    D0      # EM DASH       # emdash
00C6    E1      # LATIN CAPITAL LETTER AE       # AE
00AA    E3      # FEMININE ORDINAL INDICATOR    # ordfeminine
0141    E8      # LATIN CAPITAL LETTER L WITH STROKE    # Lslash
00D8    E9      # LATIN CAPITAL LETTER O WITH STROKE    # Oslash
0152    EA      # LATIN CAPITAL LIGATURE OE     # OE
00BA    EB      # MASCULINE ORDINAL INDICATOR   # ordmasculine
00E6    F1      # LATIN SMALL LETTER AE # ae
0131    F5      # LATIN SMALL LETTER DOTLESS I  # dotlessi
0142    F8      # LATIN SMALL LETTER L WITH STROKE      # lslash
00F8    F9      # LATIN SMALL LETTER O WITH STROKE      # oslash
0153    FA      # LATIN SMALL LIGATURE OE       # oe
00DF    FB      # LATIN SMALL LETTER SHARP S    # germandbls

"
! !

!AdobeStandard methodsFor:'encoding & decoding'!

decode:codeArg
    "Automagically generated by generateCode - do not modify.
     Decode from my encoding into unicode."

    |code "{ Class: SmallInteger }"|

    code := codeArg.
    code <= 16r1F ifTrue:[
        ^ self decodingError.
    ].
    code > 16rFB ifTrue:[
        ^ self decodingError.
    ].
    [
        |t|
        t := #(
           "16r0020"    16r0020 " NO-BREAK SPACE        # space " 
           "16r0021"    16r0021 " EXCLAMATION MARK      # exclam " 
           "16r0022"    16r0022 " QUOTATION MARK        # quotedbl " 
           "16r0023"    16r0023 " NUMBER SIGN   # numbersign " 
           "16r0024"    16r0024 " DOLLAR SIGN   # dollar " 
           "16r0025"    16r0025 " PERCENT SIGN  # percent " 
           "16r0026"    16r0026 " AMPERSAND     # ampersand " 
           "16r0027"    16r2019 " RIGHT SINGLE QUOTATION MARK   # quoteright " 
           "16r0028"    16r0028 " LEFT PARENTHESIS      # parenleft " 
           "16r0029"    16r0029 " RIGHT PARENTHESIS     # parenright " 
           "16r002A"    16r002A " ASTERISK      # asterisk " 
           "16r002B"    16r002B " PLUS SIGN     # plus " 
           "16r002C"    16r002C " COMMA # comma " 
           "16r002D"    16r00AD " SOFT HYPHEN   # hyphen " 
           "16r002E"    16r002E " FULL STOP     # period " 
           "16r002F"    16r002F " SOLIDUS       # slash " 
           "16r0030"    16r0030 " DIGIT ZERO    # zero " 
           "16r0031"    16r0031 " DIGIT ONE     # one " 
           "16r0032"    16r0032 " DIGIT TWO     # two " 
           "16r0033"    16r0033 " DIGIT THREE   # three " 
           "16r0034"    16r0034 " DIGIT FOUR    # four " 
           "16r0035"    16r0035 " DIGIT FIVE    # five " 
           "16r0036"    16r0036 " DIGIT SIX     # six " 
           "16r0037"    16r0037 " DIGIT SEVEN   # seven " 
           "16r0038"    16r0038 " DIGIT EIGHT   # eight " 
           "16r0039"    16r0039 " DIGIT NINE    # nine " 
           "16r003A"    16r003A " COLON # colon " 
           "16r003B"    16r003B " SEMICOLON     # semicolon " 
           "16r003C"    16r003C " LESS-THAN SIGN        # less " 
           "16r003D"    16r003D " EQUALS SIGN   # equal " 
           "16r003E"    16r003E " GREATER-THAN SIGN     # greater " 
           "16r003F"    16r003F " QUESTION MARK # question " 
           "16r0040"    16r0040 " COMMERCIAL AT # at " 
           "16r0041"    16r0041 " LATIN CAPITAL LETTER A        # A " 
           "16r0042"    16r0042 " LATIN CAPITAL LETTER B        # B " 
           "16r0043"    16r0043 " LATIN CAPITAL LETTER C        # C " 
           "16r0044"    16r0044 " LATIN CAPITAL LETTER D        # D " 
           "16r0045"    16r0045 " LATIN CAPITAL LETTER E        # E " 
           "16r0046"    16r0046 " LATIN CAPITAL LETTER F        # F " 
           "16r0047"    16r0047 " LATIN CAPITAL LETTER G        # G " 
           "16r0048"    16r0048 " LATIN CAPITAL LETTER H        # H " 
           "16r0049"    16r0049 " LATIN CAPITAL LETTER I        # I " 
           "16r004A"    16r004A " LATIN CAPITAL LETTER J        # J " 
           "16r004B"    16r004B " LATIN CAPITAL LETTER K        # K " 
           "16r004C"    16r004C " LATIN CAPITAL LETTER L        # L " 
           "16r004D"    16r004D " LATIN CAPITAL LETTER M        # M " 
           "16r004E"    16r004E " LATIN CAPITAL LETTER N        # N " 
           "16r004F"    16r004F " LATIN CAPITAL LETTER O        # O " 
           "16r0050"    16r0050 " LATIN CAPITAL LETTER P        # P " 
           "16r0051"    16r0051 " LATIN CAPITAL LETTER Q        # Q " 
           "16r0052"    16r0052 " LATIN CAPITAL LETTER R        # R " 
           "16r0053"    16r0053 " LATIN CAPITAL LETTER S        # S " 
           "16r0054"    16r0054 " LATIN CAPITAL LETTER T        # T " 
           "16r0055"    16r0055 " LATIN CAPITAL LETTER U        # U " 
           "16r0056"    16r0056 " LATIN CAPITAL LETTER V        # V " 
           "16r0057"    16r0057 " LATIN CAPITAL LETTER W        # W " 
           "16r0058"    16r0058 " LATIN CAPITAL LETTER X        # X " 
           "16r0059"    16r0059 " LATIN CAPITAL LETTER Y        # Y " 
           "16r005A"    16r005A " LATIN CAPITAL LETTER Z        # Z " 
           "16r005B"    16r005B " LEFT SQUARE BRACKET   # bracketleft " 
           "16r005C"    16r005C " REVERSE SOLIDUS       # backslash " 
           "16r005D"    16r005D " RIGHT SQUARE BRACKET  # bracketright " 
           "16r005E"    16r005E " CIRCUMFLEX ACCENT     # asciicircum " 
           "16r005F"    16r005F " LOW LINE      # underscore " 
           "16r0060"    16r2018 " LEFT SINGLE QUOTATION MARK    # quoteleft " 
           "16r0061"    16r0061 " LATIN SMALL LETTER A  # a " 
           "16r0062"    16r0062 " LATIN SMALL LETTER B  # b " 
           "16r0063"    16r0063 " LATIN SMALL LETTER C  # c " 
           "16r0064"    16r0064 " LATIN SMALL LETTER D  # d " 
           "16r0065"    16r0065 " LATIN SMALL LETTER E  # e " 
           "16r0066"    16r0066 " LATIN SMALL LETTER F  # f " 
           "16r0067"    16r0067 " LATIN SMALL LETTER G  # g " 
           "16r0068"    16r0068 " LATIN SMALL LETTER H  # h " 
           "16r0069"    16r0069 " LATIN SMALL LETTER I  # i " 
           "16r006A"    16r006A " LATIN SMALL LETTER J  # j " 
           "16r006B"    16r006B " LATIN SMALL LETTER K  # k " 
           "16r006C"    16r006C " LATIN SMALL LETTER L  # l " 
           "16r006D"    16r006D " LATIN SMALL LETTER M  # m " 
           "16r006E"    16r006E " LATIN SMALL LETTER N  # n " 
           "16r006F"    16r006F " LATIN SMALL LETTER O  # o " 
           "16r0070"    16r0070 " LATIN SMALL LETTER P  # p " 
           "16r0071"    16r0071 " LATIN SMALL LETTER Q  # q " 
           "16r0072"    16r0072 " LATIN SMALL LETTER R  # r " 
           "16r0073"    16r0073 " LATIN SMALL LETTER S  # s " 
           "16r0074"    16r0074 " LATIN SMALL LETTER T  # t " 
           "16r0075"    16r0075 " LATIN SMALL LETTER U  # u " 
           "16r0076"    16r0076 " LATIN SMALL LETTER V  # v " 
           "16r0077"    16r0077 " LATIN SMALL LETTER W  # w " 
           "16r0078"    16r0078 " LATIN SMALL LETTER X  # x " 
           "16r0079"    16r0079 " LATIN SMALL LETTER Y  # y " 
           "16r007A"    16r007A " LATIN SMALL LETTER Z  # z " 
           "16r007B"    16r007B " LEFT CURLY BRACKET    # braceleft " 
           "16r007C"    16r007C " VERTICAL LINE # bar " 
           "16r007D"    16r007D " RIGHT CURLY BRACKET   # braceright " 
           "16r007E"    16r007E " TILDE # asciitilde " 
           "16r007F"    16r0000 " invalid " 
           "16r0080"    16r0000 " invalid " 
           "16r0081"    16r0000 " invalid " 
           "16r0082"    16r0000 " invalid " 
           "16r0083"    16r0000 " invalid " 
           "16r0084"    16r0000 " invalid " 
           "16r0085"    16r0000 " invalid " 
           "16r0086"    16r0000 " invalid " 
           "16r0087"    16r0000 " invalid " 
           "16r0088"    16r0000 " invalid " 
           "16r0089"    16r0000 " invalid " 
           "16r008A"    16r0000 " invalid " 
           "16r008B"    16r0000 " invalid " 
           "16r008C"    16r0000 " invalid " 
           "16r008D"    16r0000 " invalid " 
           "16r008E"    16r0000 " invalid " 
           "16r008F"    16r0000 " invalid " 
           "16r0090"    16r0000 " invalid " 
           "16r0091"    16r0000 " invalid " 
           "16r0092"    16r0000 " invalid " 
           "16r0093"    16r0000 " invalid " 
           "16r0094"    16r0000 " invalid " 
           "16r0095"    16r0000 " invalid " 
           "16r0096"    16r0000 " invalid " 
           "16r0097"    16r0000 " invalid " 
           "16r0098"    16r0000 " invalid " 
           "16r0099"    16r0000 " invalid " 
           "16r009A"    16r0000 " invalid " 
           "16r009B"    16r0000 " invalid " 
           "16r009C"    16r0000 " invalid " 
           "16r009D"    16r0000 " invalid " 
           "16r009E"    16r0000 " invalid " 
           "16r009F"    16r0000 " invalid " 
           "16r00A0"    16r0020 " invalid " 
           "16r00A1"    16r00A1 " INVERTED EXCLAMATION MARK     # exclamdown " 
           "16r00A2"    16r00A2 " CENT SIGN     # cent " 
           "16r00A3"    16r00A3 " POUND SIGN    # sterling " 
           "16r00A4"    16r2215 " DIVISION SLASH        # fraction " 
           "16r00A5"    16r00A5 " YEN SIGN      # yen " 
           "16r00A6"    16r0192 " LATIN SMALL LETTER F WITH HOOK        # florin " 
           "16r00A7"    16r00A7 " SECTION SIGN  # section " 
           "16r00A8"    16r00A4 " CURRENCY SIGN # currency " 
           "16r00A9"    16r0027 " APOSTROPHE    # quotesingle " 
           "16r00AA"    16r201C " LEFT DOUBLE QUOTATION MARK    # quotedblleft " 
           "16r00AB"    16r00AB " LEFT-POINTING DOUBLE ANGLE QUOTATION MARK     # guillemotleft " 
           "16r00AC"    16r2039 " SINGLE LEFT-POINTING ANGLE QUOTATION MARK     # guilsinglleft " 
           "16r00AD"    16r203A " SINGLE RIGHT-POINTING ANGLE QUOTATION MARK    # guilsinglright " 
           "16r00AE"    16rFB01 " LATIN SMALL LIGATURE FI       # fi " 
           "16r00AF"    16rFB02 " LATIN SMALL LIGATURE FL       # fl " 
           "16r00B0"    16r0000 " invalid " 
           "16r00B1"    16r2013 " EN DASH       # endash " 
           "16r00B2"    16r2020 " DAGGER        # dagger " 
           "16r00B3"    16r2021 " DOUBLE DAGGER # daggerdbl " 
           "16r00B4"    16r2219 " BULLET OPERATOR       # periodcentered " 
           "16r00B5"    16r0000 " invalid " 
           "16r00B6"    16r00B6 " PILCROW SIGN  # paragraph " 
           "16r00B7"    16r2022 " BULLET        # bullet " 
           "16r00B8"    16r201A " SINGLE LOW-9 QUOTATION MARK   # quotesinglbase " 
           "16r00B9"    16r201E " DOUBLE LOW-9 QUOTATION MARK   # quotedblbase " 
           "16r00BA"    16r201D " RIGHT DOUBLE QUOTATION MARK   # quotedblright " 
           "16r00BB"    16r00BB " RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK    # guillemotright " 
           "16r00BC"    16r2026 " HORIZONTAL ELLIPSIS   # ellipsis " 
           "16r00BD"    16r2030 " PER MILLE SIGN        # perthousand " 
           "16r00BE"    16r0000 " invalid " 
           "16r00BF"    16r00BF " INVERTED QUESTION MARK        # questiondown " 
           "16r00C0"    16r0000 " invalid " 
           "16r00C1"    16r0060 " GRAVE ACCENT  # grave " 
           "16r00C2"    16r00B4 " ACUTE ACCENT  # acute " 
           "16r00C3"    16r02C6 " MODIFIER LETTER CIRCUMFLEX ACCENT     # circumflex " 
           "16r00C4"    16r02DC " SMALL TILDE   # tilde " 
           "16r00C5"    16r02C9 " MODIFIER LETTER MACRON        # macron " 
           "16r00C6"    16r02D8 " BREVE # breve " 
           "16r00C7"    16r02D9 " DOT ABOVE     # dotaccent " 
           "16r00C8"    16r00A8 " DIAERESIS     # dieresis " 
           "16r00C9"    16r0000 " invalid " 
           "16r00CA"    16r02DA " RING ABOVE    # ring " 
           "16r00CB"    16r00B8 " CEDILLA       # cedilla " 
           "16r00CC"    16r0000 " invalid " 
           "16r00CD"    16r02DD " DOUBLE ACUTE ACCENT   # hungarumlaut " 
           "16r00CE"    16r02DB " OGONEK        # ogonek " 
           "16r00CF"    16r02C7 " CARON # caron " 
           "16r00D0"    16r2014 " EM DASH       # emdash " 
           "16r00D1"    16r0000 " invalid " 
           "16r00D2"    16r0000 " invalid " 
           "16r00D3"    16r0000 " invalid " 
           "16r00D4"    16r0000 " invalid " 
           "16r00D5"    16r0000 " invalid " 
           "16r00D6"    16r0000 " invalid " 
           "16r00D7"    16r0000 " invalid " 
           "16r00D8"    16r0000 " invalid " 
           "16r00D9"    16r0000 " invalid " 
           "16r00DA"    16r0000 " invalid " 
           "16r00DB"    16r0000 " invalid " 
           "16r00DC"    16r0000 " invalid " 
           "16r00DD"    16r0000 " invalid " 
           "16r00DE"    16r0000 " invalid " 
           "16r00DF"    16r0000 " invalid " 
           "16r00E0"    16r0000 " invalid " 
           "16r00E1"    16r00C6 " LATIN CAPITAL LETTER AE       # AE " 
           "16r00E2"    16r0000 " invalid " 
           "16r00E3"    16r00AA " FEMININE ORDINAL INDICATOR    # ordfeminine " 
           "16r00E4"    16r0000 " invalid " 
           "16r00E5"    16r0000 " invalid " 
           "16r00E6"    16r0000 " invalid " 
           "16r00E7"    16r0000 " invalid " 
           "16r00E8"    16r0141 " LATIN CAPITAL LETTER L WITH STROKE    # Lslash " 
           "16r00E9"    16r00D8 " LATIN CAPITAL LETTER O WITH STROKE    # Oslash " 
           "16r00EA"    16r0152 " LATIN CAPITAL LIGATURE OE     # OE " 
           "16r00EB"    16r00BA " MASCULINE ORDINAL INDICATOR   # ordmasculine " 
           "16r00EC"    16r0000 " invalid " 
           "16r00ED"    16r0000 " invalid " 
           "16r00EE"    16r0000 " invalid " 
           "16r00EF"    16r0000 " invalid " 
           "16r00F0"    16r0000 " invalid " 
           "16r00F1"    16r00E6 " LATIN SMALL LETTER AE # ae " 
           "16r00F2"    16r0000 " invalid " 
           "16r00F3"    16r0000 " invalid " 
           "16r00F4"    16r0000 " invalid " 
           "16r00F5"    16r0131 " LATIN SMALL LETTER DOTLESS I  # dotlessi " 
           "16r00F6"    16r0000 " invalid " 
           "16r00F7"    16r0000 " invalid " 
           "16r00F8"    16r0142 " LATIN SMALL LETTER L WITH STROKE      # lslash " 
           "16r00F9"    16r00F8 " LATIN SMALL LETTER O WITH STROKE      # oslash " 
           "16r00FA"    16r0153 " LATIN SMALL LIGATURE OE       # oe " 
           "16r00FB"    16r00DF " LATIN SMALL LETTER SHARP S    # germandbls " 
           ) at:(code - 16r1F).
        t == 0 ifFalse:[^ t].
        ^ self decodingError.
    ] value.
!

encode:unicodeArg
    "Automagically generated by generateCode - do not modify.
     Encode from unicode into my encoding."

    |unicode "{ Class: SmallInteger }"|

    unicode := unicodeArg.
    unicode < 16r20 ifTrue:[
        ^ self decodingError.
    ].
    unicode <= 16r26 ifTrue:[ ^ unicode ].
    unicode > 16rFB02 ifTrue:[
        ^ self encodingError.
    ].
    unicode <= 16r2219 ifTrue:[
        unicode <= 16r2DD ifTrue:[
            unicode <= 16r192 ifTrue:[
                unicode <= 16r153 ifTrue:[
                    unicode <= 16rF8 ifTrue:[
                        [
                            |t|
                            t := #[
                               "16r0027"    16rA9 " APOSTROPHE    # quotesingle " 
                               "16r0028"    16r28 " LEFT PARENTHESIS      # parenleft " 
                               "16r0029"    16r29 " RIGHT PARENTHESIS     # parenright " 
                               "16r002A"    16r2A " ASTERISK      # asterisk " 
                               "16r002B"    16r2B " PLUS SIGN     # plus " 
                               "16r002C"    16r2C " COMMA # comma " 
                               "16r002D"    16r00 " invalid " 
                               "16r002E"    16r2E " FULL STOP     # period " 
                               "16r002F"    16r2F " SOLIDUS       # slash " 
                               "16r0030"    16r30 " DIGIT ZERO    # zero " 
                               "16r0031"    16r31 " DIGIT ONE     # one " 
                               "16r0032"    16r32 " DIGIT TWO     # two " 
                               "16r0033"    16r33 " DIGIT THREE   # three " 
                               "16r0034"    16r34 " DIGIT FOUR    # four " 
                               "16r0035"    16r35 " DIGIT FIVE    # five " 
                               "16r0036"    16r36 " DIGIT SIX     # six " 
                               "16r0037"    16r37 " DIGIT SEVEN   # seven " 
                               "16r0038"    16r38 " DIGIT EIGHT   # eight " 
                               "16r0039"    16r39 " DIGIT NINE    # nine " 
                               "16r003A"    16r3A " COLON # colon " 
                               "16r003B"    16r3B " SEMICOLON     # semicolon " 
                               "16r003C"    16r3C " LESS-THAN SIGN        # less " 
                               "16r003D"    16r3D " EQUALS SIGN   # equal " 
                               "16r003E"    16r3E " GREATER-THAN SIGN     # greater " 
                               "16r003F"    16r3F " QUESTION MARK # question " 
                               "16r0040"    16r40 " COMMERCIAL AT # at " 
                               "16r0041"    16r41 " LATIN CAPITAL LETTER A        # A " 
                               "16r0042"    16r42 " LATIN CAPITAL LETTER B        # B " 
                               "16r0043"    16r43 " LATIN CAPITAL LETTER C        # C " 
                               "16r0044"    16r44 " LATIN CAPITAL LETTER D        # D " 
                               "16r0045"    16r45 " LATIN CAPITAL LETTER E        # E " 
                               "16r0046"    16r46 " LATIN CAPITAL LETTER F        # F " 
                               "16r0047"    16r47 " LATIN CAPITAL LETTER G        # G " 
                               "16r0048"    16r48 " LATIN CAPITAL LETTER H        # H " 
                               "16r0049"    16r49 " LATIN CAPITAL LETTER I        # I " 
                               "16r004A"    16r4A " LATIN CAPITAL LETTER J        # J " 
                               "16r004B"    16r4B " LATIN CAPITAL LETTER K        # K " 
                               "16r004C"    16r4C " LATIN CAPITAL LETTER L        # L " 
                               "16r004D"    16r4D " LATIN CAPITAL LETTER M        # M " 
                               "16r004E"    16r4E " LATIN CAPITAL LETTER N        # N " 
                               "16r004F"    16r4F " LATIN CAPITAL LETTER O        # O " 
                               "16r0050"    16r50 " LATIN CAPITAL LETTER P        # P " 
                               "16r0051"    16r51 " LATIN CAPITAL LETTER Q        # Q " 
                               "16r0052"    16r52 " LATIN CAPITAL LETTER R        # R " 
                               "16r0053"    16r53 " LATIN CAPITAL LETTER S        # S " 
                               "16r0054"    16r54 " LATIN CAPITAL LETTER T        # T " 
                               "16r0055"    16r55 " LATIN CAPITAL LETTER U        # U " 
                               "16r0056"    16r56 " LATIN CAPITAL LETTER V        # V " 
                               "16r0057"    16r57 " LATIN CAPITAL LETTER W        # W " 
                               "16r0058"    16r58 " LATIN CAPITAL LETTER X        # X " 
                               "16r0059"    16r59 " LATIN CAPITAL LETTER Y        # Y " 
                               "16r005A"    16r5A " LATIN CAPITAL LETTER Z        # Z " 
                               "16r005B"    16r5B " LEFT SQUARE BRACKET   # bracketleft " 
                               "16r005C"    16r5C " REVERSE SOLIDUS       # backslash " 
                               "16r005D"    16r5D " RIGHT SQUARE BRACKET  # bracketright " 
                               "16r005E"    16r5E " CIRCUMFLEX ACCENT     # asciicircum " 
                               "16r005F"    16r5F " LOW LINE      # underscore " 
                               "16r0060"    16rC1 " GRAVE ACCENT  # grave " 
                               "16r0061"    16r61 " LATIN SMALL LETTER A  # a " 
                               "16r0062"    16r62 " LATIN SMALL LETTER B  # b " 
                               "16r0063"    16r63 " LATIN SMALL LETTER C  # c " 
                               "16r0064"    16r64 " LATIN SMALL LETTER D  # d " 
                               "16r0065"    16r65 " LATIN SMALL LETTER E  # e " 
                               "16r0066"    16r66 " LATIN SMALL LETTER F  # f " 
                               "16r0067"    16r67 " LATIN SMALL LETTER G  # g " 
                               "16r0068"    16r68 " LATIN SMALL LETTER H  # h " 
                               "16r0069"    16r69 " LATIN SMALL LETTER I  # i " 
                               "16r006A"    16r6A " LATIN SMALL LETTER J  # j " 
                               "16r006B"    16r6B " LATIN SMALL LETTER K  # k " 
                               "16r006C"    16r6C " LATIN SMALL LETTER L  # l " 
                               "16r006D"    16r6D " LATIN SMALL LETTER M  # m " 
                               "16r006E"    16r6E " LATIN SMALL LETTER N  # n " 
                               "16r006F"    16r6F " LATIN SMALL LETTER O  # o " 
                               "16r0070"    16r70 " LATIN SMALL LETTER P  # p " 
                               "16r0071"    16r71 " LATIN SMALL LETTER Q  # q " 
                               "16r0072"    16r72 " LATIN SMALL LETTER R  # r " 
                               "16r0073"    16r73 " LATIN SMALL LETTER S  # s " 
                               "16r0074"    16r74 " LATIN SMALL LETTER T  # t " 
                               "16r0075"    16r75 " LATIN SMALL LETTER U  # u " 
                               "16r0076"    16r76 " LATIN SMALL LETTER V  # v " 
                               "16r0077"    16r77 " LATIN SMALL LETTER W  # w " 
                               "16r0078"    16r78 " LATIN SMALL LETTER X  # x " 
                               "16r0079"    16r79 " LATIN SMALL LETTER Y  # y " 
                               "16r007A"    16r7A " LATIN SMALL LETTER Z  # z " 
                               "16r007B"    16r7B " LEFT CURLY BRACKET    # braceleft " 
                               "16r007C"    16r7C " VERTICAL LINE # bar " 
                               "16r007D"    16r7D " RIGHT CURLY BRACKET   # braceright " 
                               "16r007E"    16r7E " TILDE # asciitilde " 
                               "16r007F"    16r00 " invalid " 
                               "16r0080"    16r00 " invalid " 
                               "16r0081"    16r00 " invalid " 
                               "16r0082"    16r00 " invalid " 
                               "16r0083"    16r00 " invalid " 
                               "16r0084"    16r00 " invalid " 
                               "16r0085"    16r00 " invalid " 
                               "16r0086"    16r00 " invalid " 
                               "16r0087"    16r00 " invalid " 
                               "16r0088"    16r00 " invalid " 
                               "16r0089"    16r00 " invalid " 
                               "16r008A"    16r00 " invalid " 
                               "16r008B"    16r00 " invalid " 
                               "16r008C"    16r00 " invalid " 
                               "16r008D"    16r00 " invalid " 
                               "16r008E"    16r00 " invalid " 
                               "16r008F"    16r00 " invalid " 
                               "16r0090"    16r00 " invalid " 
                               "16r0091"    16r00 " invalid " 
                               "16r0092"    16r00 " invalid " 
                               "16r0093"    16r00 " invalid " 
                               "16r0094"    16r00 " invalid " 
                               "16r0095"    16r00 " invalid " 
                               "16r0096"    16r00 " invalid " 
                               "16r0097"    16r00 " invalid " 
                               "16r0098"    16r00 " invalid " 
                               "16r0099"    16r00 " invalid " 
                               "16r009A"    16r00 " invalid " 
                               "16r009B"    16r00 " invalid " 
                               "16r009C"    16r00 " invalid " 
                               "16r009D"    16r00 " invalid " 
                               "16r009E"    16r00 " invalid " 
                               "16r009F"    16r00 " invalid " 
                               "16r00A0"    16r20 " NO-BREAK SPACE        # space " 
                               "16r00A1"    16rA1 " INVERTED EXCLAMATION MARK     # exclamdown " 
                               "16r00A2"    16rA2 " CENT SIGN     # cent " 
                               "16r00A3"    16rA3 " POUND SIGN    # sterling " 
                               "16r00A4"    16rA8 " CURRENCY SIGN # currency " 
                               "16r00A5"    16rA5 " YEN SIGN      # yen " 
                               "16r00A6"    16r00 " invalid " 
                               "16r00A7"    16rA7 " SECTION SIGN  # section " 
                               "16r00A8"    16rC8 " DIAERESIS     # dieresis " 
                               "16r00A9"    16r00 " invalid " 
                               "16r00AA"    16rE3 " FEMININE ORDINAL INDICATOR    # ordfeminine " 
                               "16r00AB"    16rAB " LEFT-POINTING DOUBLE ANGLE QUOTATION MARK     # guillemotleft " 
                               "16r00AC"    16r00 " invalid " 
                               "16r00AD"    16r2D " SOFT HYPHEN   # hyphen " 
                               "16r00AE"    16r00 " invalid " 
                               "16r00AF"    16r00 " invalid " 
                               "16r00B0"    16r00 " invalid " 
                               "16r00B1"    16r00 " invalid " 
                               "16r00B2"    16r00 " invalid " 
                               "16r00B3"    16r00 " invalid " 
                               "16r00B4"    16rC2 " ACUTE ACCENT  # acute " 
                               "16r00B5"    16r00 " invalid " 
                               "16r00B6"    16rB6 " PILCROW SIGN  # paragraph " 
                               "16r00B7"    16r00 " invalid " 
                               "16r00B8"    16rCB " CEDILLA       # cedilla " 
                               "16r00B9"    16r00 " invalid " 
                               "16r00BA"    16rEB " MASCULINE ORDINAL INDICATOR   # ordmasculine " 
                               "16r00BB"    16rBB " RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK    # guillemotright " 
                               "16r00BC"    16r00 " invalid " 
                               "16r00BD"    16r00 " invalid " 
                               "16r00BE"    16r00 " invalid " 
                               "16r00BF"    16rBF " INVERTED QUESTION MARK        # questiondown " 
                               "16r00C0"    16r00 " invalid " 
                               "16r00C1"    16r00 " invalid " 
                               "16r00C2"    16r00 " invalid " 
                               "16r00C3"    16r00 " invalid " 
                               "16r00C4"    16r00 " invalid " 
                               "16r00C5"    16r00 " invalid " 
                               "16r00C6"    16rE1 " LATIN CAPITAL LETTER AE       # AE " 
                               "16r00C7"    16r00 " invalid " 
                               "16r00C8"    16r00 " invalid " 
                               "16r00C9"    16r00 " invalid " 
                               "16r00CA"    16r00 " invalid " 
                               "16r00CB"    16r00 " invalid " 
                               "16r00CC"    16r00 " invalid " 
                               "16r00CD"    16r00 " invalid " 
                               "16r00CE"    16r00 " invalid " 
                               "16r00CF"    16r00 " invalid " 
                               "16r00D0"    16r00 " invalid " 
                               "16r00D1"    16r00 " invalid " 
                               "16r00D2"    16r00 " invalid " 
                               "16r00D3"    16r00 " invalid " 
                               "16r00D4"    16r00 " invalid " 
                               "16r00D5"    16r00 " invalid " 
                               "16r00D6"    16r00 " invalid " 
                               "16r00D7"    16r00 " invalid " 
                               "16r00D8"    16rE9 " LATIN CAPITAL LETTER O WITH STROKE    # Oslash " 
                               "16r00D9"    16r00 " invalid " 
                               "16r00DA"    16r00 " invalid " 
                               "16r00DB"    16r00 " invalid " 
                               "16r00DC"    16r00 " invalid " 
                               "16r00DD"    16r00 " invalid " 
                               "16r00DE"    16r00 " invalid " 
                               "16r00DF"    16rFB " LATIN SMALL LETTER SHARP S    # germandbls " 
                               "16r00E0"    16r00 " invalid " 
                               "16r00E1"    16r00 " invalid " 
                               "16r00E2"    16r00 " invalid " 
                               "16r00E3"    16r00 " invalid " 
                               "16r00E4"    16r00 " invalid " 
                               "16r00E5"    16r00 " invalid " 
                               "16r00E6"    16rF1 " LATIN SMALL LETTER AE # ae " 
                               "16r00E7"    16r00 " invalid " 
                               "16r00E8"    16r00 " invalid " 
                               "16r00E9"    16r00 " invalid " 
                               "16r00EA"    16r00 " invalid " 
                               "16r00EB"    16r00 " invalid " 
                               "16r00EC"    16r00 " invalid " 
                               "16r00ED"    16r00 " invalid " 
                               "16r00EE"    16r00 " invalid " 
                               "16r00EF"    16r00 " invalid " 
                               "16r00F0"    16r00 " invalid " 
                               "16r00F1"    16r00 " invalid " 
                               "16r00F2"    16r00 " invalid " 
                               "16r00F3"    16r00 " invalid " 
                               "16r00F4"    16r00 " invalid " 
                               "16r00F5"    16r00 " invalid " 
                               "16r00F6"    16r00 " invalid " 
                               "16r00F7"    16r00 " invalid " 
                               "16r00F8"    16rF9 " LATIN SMALL LETTER O WITH STROKE      # oslash " 
                               ] at:(unicode - 16r26).
                            t == 0 ifFalse:[^ t].
                            ^ self encodingError
                        ] value.
                    ].
                    unicode <= 16r130 ifTrue:[
                        ^ self encodingError
                    ].
                    unicode == 16r131 ifTrue:[
                        (#[
                           "16r0131"    1 " LATIN SMALL LETTER DOTLESS I  # dotlessi " 
                        ] at:(unicode - 304)) ~~ 0 ifTrue:[^ unicode].
                        ^ self encodingError
                    ].
                    unicode <= 16r140 ifTrue:[
                        ^ self encodingError
                    ].
                    [
                        |t|
                        t := #[
                           "16r0141"    16rE8 " LATIN CAPITAL LETTER L WITH STROKE    # Lslash " 
                           "16r0142"    16rF8 " LATIN SMALL LETTER L WITH STROKE      # lslash " 
                           "16r0143"    16r00 " invalid " 
                           "16r0144"    16r00 " invalid " 
                           "16r0145"    16r00 " invalid " 
                           "16r0146"    16r00 " invalid " 
                           "16r0147"    16r00 " invalid " 
                           "16r0148"    16r00 " invalid " 
                           "16r0149"    16r00 " invalid " 
                           "16r014A"    16r00 " invalid " 
                           "16r014B"    16r00 " invalid " 
                           "16r014C"    16r00 " invalid " 
                           "16r014D"    16r00 " invalid " 
                           "16r014E"    16r00 " invalid " 
                           "16r014F"    16r00 " invalid " 
                           "16r0150"    16r00 " invalid " 
                           "16r0151"    16r00 " invalid " 
                           "16r0152"    16rEA " LATIN CAPITAL LIGATURE OE     # OE " 
                           "16r0153"    16rFA " LATIN SMALL LIGATURE OE       # oe " 
                           ] at:(unicode - 16r140).
                        t == 0 ifFalse:[^ t].
                        ^ self encodingError
                    ] value.
                ].
                unicode <= 16r191 ifTrue:[
                    ^ self encodingError
                ].
                ^  "16r0192" 16r00A6 " LATIN SMALL LETTER F WITH HOOK        # florin " 
            ].
            unicode <= 16r2C5 ifTrue:[
                ^ self encodingError
            ].
            [
                |t|
                t := #[
                   "16r02C6"    16rC3 " MODIFIER LETTER CIRCUMFLEX ACCENT     # circumflex " 
                   "16r02C7"    16rCF " CARON # caron " 
                   "16r02C8"    16r00 " invalid " 
                   "16r02C9"    16rC5 " MODIFIER LETTER MACRON        # macron " 
                   "16r02CA"    16r00 " invalid " 
                   "16r02CB"    16r00 " invalid " 
                   "16r02CC"    16r00 " invalid " 
                   "16r02CD"    16r00 " invalid " 
                   "16r02CE"    16r00 " invalid " 
                   "16r02CF"    16r00 " invalid " 
                   "16r02D0"    16r00 " invalid " 
                   "16r02D1"    16r00 " invalid " 
                   "16r02D2"    16r00 " invalid " 
                   "16r02D3"    16r00 " invalid " 
                   "16r02D4"    16r00 " invalid " 
                   "16r02D5"    16r00 " invalid " 
                   "16r02D6"    16r00 " invalid " 
                   "16r02D7"    16r00 " invalid " 
                   "16r02D8"    16rC6 " BREVE # breve " 
                   "16r02D9"    16rC7 " DOT ABOVE     # dotaccent " 
                   "16r02DA"    16rCA " RING ABOVE    # ring " 
                   "16r02DB"    16rCE " OGONEK        # ogonek " 
                   "16r02DC"    16rC4 " SMALL TILDE   # tilde " 
                   "16r02DD"    16rCD " DOUBLE ACUTE ACCENT   # hungarumlaut " 
                   ] at:(unicode - 16r2C5).
                t == 0 ifFalse:[^ t].
                ^ self encodingError
            ] value.
        ].
        unicode <= 16r2012 ifTrue:[
            ^ self encodingError
        ].
        unicode <= 16r203A ifTrue:[
            [
                |t|
                t := #[
                   "16r2013"    16rB1 " EN DASH       # endash " 
                   "16r2014"    16rD0 " EM DASH       # emdash " 
                   "16r2015"    16r00 " invalid " 
                   "16r2016"    16r00 " invalid " 
                   "16r2017"    16r00 " invalid " 
                   "16r2018"    16r60 " LEFT SINGLE QUOTATION MARK    # quoteleft " 
                   "16r2019"    16r27 " RIGHT SINGLE QUOTATION MARK   # quoteright " 
                   "16r201A"    16rB8 " SINGLE LOW-9 QUOTATION MARK   # quotesinglbase " 
                   "16r201B"    16r00 " invalid " 
                   "16r201C"    16rAA " LEFT DOUBLE QUOTATION MARK    # quotedblleft " 
                   "16r201D"    16rBA " RIGHT DOUBLE QUOTATION MARK   # quotedblright " 
                   "16r201E"    16rB9 " DOUBLE LOW-9 QUOTATION MARK   # quotedblbase " 
                   "16r201F"    16r00 " invalid " 
                   "16r2020"    16rB2 " DAGGER        # dagger " 
                   "16r2021"    16rB3 " DOUBLE DAGGER # daggerdbl " 
                   "16r2022"    16rB7 " BULLET        # bullet " 
                   "16r2023"    16r00 " invalid " 
                   "16r2024"    16r00 " invalid " 
                   "16r2025"    16r00 " invalid " 
                   "16r2026"    16rBC " HORIZONTAL ELLIPSIS   # ellipsis " 
                   "16r2027"    16r00 " invalid " 
                   "16r2028"    16r00 " invalid " 
                   "16r2029"    16r00 " invalid " 
                   "16r202A"    16r00 " invalid " 
                   "16r202B"    16r00 " invalid " 
                   "16r202C"    16r00 " invalid " 
                   "16r202D"    16r00 " invalid " 
                   "16r202E"    16r00 " invalid " 
                   "16r202F"    16r00 " invalid " 
                   "16r2030"    16rBD " PER MILLE SIGN        # perthousand " 
                   "16r2031"    16r00 " invalid " 
                   "16r2032"    16r00 " invalid " 
                   "16r2033"    16r00 " invalid " 
                   "16r2034"    16r00 " invalid " 
                   "16r2035"    16r00 " invalid " 
                   "16r2036"    16r00 " invalid " 
                   "16r2037"    16r00 " invalid " 
                   "16r2038"    16r00 " invalid " 
                   "16r2039"    16rAC " SINGLE LEFT-POINTING ANGLE QUOTATION MARK     # guilsinglleft " 
                   "16r203A"    16rAD " SINGLE RIGHT-POINTING ANGLE QUOTATION MARK    # guilsinglright " 
                   ] at:(unicode - 16r2012).
                t == 0 ifFalse:[^ t].
                ^ self encodingError
            ] value.
        ].
        unicode <= 16r2214 ifTrue:[
            ^ self encodingError
        ].
        [
            |t|
            t := #[
               "16r2215"    16rA4 " DIVISION SLASH        # fraction " 
               "16r2216"    16r00 " invalid " 
               "16r2217"    16r00 " invalid " 
               "16r2218"    16r00 " invalid " 
               "16r2219"    16rB4 " BULLET OPERATOR       # periodcentered " 
               ] at:(unicode - 16r2214).
            t == 0 ifFalse:[^ t].
            ^ self encodingError
        ] value.
    ].
    unicode <= 16rFB00 ifTrue:[
        ^ self encodingError
    ].
    ^ #[
       "16rFB01"    16rAE " LATIN SMALL LIGATURE FI       # fi " 
       "16rFB02"    16rAF " LATIN SMALL LIGATURE FL       # fl " 
       ] at:(unicode - 16rFB00).
! !

!AdobeStandard class methodsFor:'documentation'!

version
    ^ '$Header$'
!

version_CVS
    ^ '$Header$'
! !