Changeset 5670


Ignore:
Timestamp:
Oct 5, 2017, 1:21:22 PM (20 months ago)
Author:
cameron
Message:

Numeric Property Support and missing SpecialCasing?.h file

Location:
icGREP/icgrep-devel
Files:
1 added
7 edited

Legend:

Unmodified
Added
Removed
  • icGREP/icgrep-devel/UCD-scripts/UCD_parser.py

    r5669 r5670  
    380380        if not stc == '':
    381381            property_object_map['stc'].addDataRecord(cp, cp, stc)
     382        if not decval == '':
     383            property_object_map['nv'].addDataRecord(cp, cp, decval)
     384        if not digitval == '':
     385            property_object_map['nv'].addDataRecord(cp, cp, digitval)
     386        if not numval == '':
     387            property_object_map['nv'].addDataRecord(cp, cp, numval)
     388
    382389    property_object_map['na'].finalizeProperty()
    383390    property_object_map['na1'].finalizeProperty()
     
    387394    property_object_map['suc'].finalizeProperty()
    388395    property_object_map['stc'].finalizeProperty()
     396    property_object_map['nv'].finalizeProperty()
    389397
    390398def parse_SpecialCasing_txt(property_object_map):
  • icGREP/icgrep-devel/UCD-scripts/UCD_properties.py

    r5669 r5670  
    8181    reflexive_set_ranges = cformat.multiline_fill(['[%04x, %04x]' % (lo, hi) for (lo, hi) in uset_to_range_list(reflexive_set)], ',', 8),
    8282    reflexive_set_value = reflexive_set.showC(12),
     83    explicitly_defined_cp_count = len(cps),
     84    explicitly_defined_cps = cformat.multiline_fill(['0x%04x' % cp for cp in cps], ',', 8)
     85    ))
     86
     87def emit_numeric_property(f, property_code, NaN_set, cp_value_map):
     88    s = string.Template(r"""    namespace ${prop_enum_up}_ns {
     89        /** Code Point Ranges for ${prop_enum} mapping to NaN
     90        ${NaN_set_ranges}**/
     91
     92        const UnicodeSet NaN_set
     93        ${NaN_set_value};
     94
     95       const unsigned buffer_length = ${buffer_length};
     96        const static char __attribute__ ((aligned (32))) string_buffer[${allocation_length}] = u8R"__(${string_buffer})__";
     97
     98        const static std::vector<codepoint_t> defined_cps = {
     99        ${explicitly_defined_cps}};
     100        static NumericPropertyObject property_object(${prop_enum},
     101                                                    NaN_set,
     102                                                    static_cast<const char *>(string_buffer),
     103                                                    buffer_length,
     104                                                    defined_cps);
     105    }
     106""")
     107    cps = sorted(cp_value_map.keys())
     108    string_buffer = ""
     109    for cp in cps:
     110        string_buffer += cp_value_map[cp] + "\n"
     111    buffer_length = len(string_buffer.encode("utf-8"))
     112    f.write(s.substitute(prop_enum = property_code,
     113    prop_enum_up = property_code.upper(),
     114    string_buffer = string_buffer,
     115    buffer_length = buffer_length,
     116    allocation_length = (buffer_length + 255) & -256,
     117    NaN_set_ranges = cformat.multiline_fill(['[%04x, %04x]' % (lo, hi) for (lo, hi) in uset_to_range_list(NaN_set)], ',', 8),
     118    NaN_set_value = NaN_set.showC(12),
    83119    explicitly_defined_cp_count = len(cps),
    84120    explicitly_defined_cps = cformat.multiline_fill(['0x%04x' % cp for cp in cps], ',', 8)
     
    203239        elif isinstance(property_object, StringPropertyObject):
    204240            emit_string_property(f, property_code, property_object.null_str_set, property_object.reflexive_set, property_object.cp_value_map)
     241        elif isinstance(property_object, NumericPropertyObject):
     242            emit_numeric_property(f, property_code, property_object.NaN_set, property_object.cp_value_map)
    205243        elif isinstance(property_object, ObsoletePropertyObject):
    206244            emit_Obsolete_property(f, property_code)
    207         else: return
     245        else:
     246            print("%s: unsupported property.")
     247            return
    208248        self.supported_props.append(property_code)
    209249
     
    253293        f = cformat.open_header_file_for_write(basename)
    254294        cformat.write_imports(f, ['"PropertyAliases.h"', '"PropertyObjects.h"', '"PropertyValueAliases.h"', '"unicode_set.h"'])
    255         prop_code_list = ['na', 'dm', 'suc', 'slc', 'stc', 'na1', 'isc']
     295        prop_code_list = ['na', 'dm', 'suc', 'slc', 'stc', 'na1', 'isc', 'nv']
    256296        f.write("\nnamespace UCD {\n")
    257297        for p in prop_code_list:
  • icGREP/icgrep-devel/UCD-scripts/UCD_property_objects.py

    r5668 r5670  
    133133    def getPropertyKind(self): return "Binary"
    134134
    135     def setID(self, prop_code, long_name):
    136         PropertyObject.setID(self, prop_code, long_name)
    137 
    138135    def addDataRecord(self, cp_lo, cp_hi, v):
    139136        if v==None or v in self.property_value_lookup_map[v] == 'Y':
     
    147144    def __init__(self):
    148145        PropertyObject.__init__(self)
     146        self.cp_value_map = {}
     147        self.NaN_set = empty_uset()
    149148
    150149    def getPropertyKind(self): return "Numeric"
     150
     151    def addDataRecord(self, cp_lo, cp_hi, stringValue):
     152        if stringValue == '':
     153            self.NaN_set = uset_union(self.NaN_set, range_uset(cp_lo, cp_hi))
     154        else:
     155            for cp in range(cp_lo, cp_hi+1):
     156                self.cp_value_map[cp] = stringValue
     157
     158    def finalizeProperty(self):
     159        explicitly_defined_cps = empty_uset()
     160        for cp in self.cp_value_map.keys():
     161            explicitly_defined_cps = uset_union(explicitly_defined_cps, singleton_uset(cp))
     162        # set NaN default
     163        self.NaN_set = uset_union(self.NaN_set, uset_complement(explicitly_defined_cps))
     164
    151165
    152166class ExtensionPropertyObject(PropertyObject):
  • icGREP/icgrep-devel/icgrep/UCD/PropertyObjectTable.h

    r5669 r5670  
    4848    new UnsupportedPropertyObject(cjkOtherNumeric, PropertyObject::ClassTypeId::NumericProperty),
    4949    new UnsupportedPropertyObject(cjkPrimaryNumeric, PropertyObject::ClassTypeId::NumericProperty),
    50     new UnsupportedPropertyObject(nv, PropertyObject::ClassTypeId::NumericProperty),
     50    &NV_ns::property_object,
    5151    new UnsupportedPropertyObject(cf, PropertyObject::ClassTypeId::StringProperty),
    5252    new UnsupportedPropertyObject(cjkCompatibilityVariant, PropertyObject::ClassTypeId::StringProperty),
  • icGREP/icgrep-devel/icgrep/UCD/PropertyObjects.cpp

    r5668 r5670  
    196196}
    197197   
     198const UnicodeSet NumericPropertyObject::GetCodepointSet(const std::string & value_spec) {
     199    if (value_spec == "NaN") return mNaNCodepointSet;
     200    else {
     201        UnicodeSet result_set;
     202        unsigned val_bytes = value_spec.length();
     203        const char * value_str = value_spec.c_str();
     204        const char * search_str = mStringBuffer;
     205        unsigned buffer_line = 0;
     206        while (buffer_line < mExplicitCps.size()) {
     207            const char * eol = strchr(search_str, '\n');
     208            unsigned len = eol - search_str;
     209            if ((len == val_bytes) && (memcmp(search_str, value_str, len) == 0)) {
     210                result_set.insert(mExplicitCps[buffer_line]);
     211            }
     212            buffer_line++;
     213            search_str = eol+1;
     214        }
     215        return result_set;
     216    }
     217}
     218
    198219const UnicodeSet StringPropertyObject::GetCodepointSet(const std::string & value_spec) {
    199220    if (value_spec == "") return mNullCodepointSet;
  • icGREP/icgrep-devel/icgrep/UCD/PropertyObjects.h

    r5668 r5670  
    193193    }
    194194   
    195     NumericPropertyObject(property_t p, ClassTypeId)
    196     : PropertyObject(p, ClassTypeId::NumericProperty) {
     195    NumericPropertyObject(UCD::property_t p, UnicodeSet NaN_Set, const char * string_buffer, unsigned bufsize, const std::vector<UCD::codepoint_t> & cps)
     196    : PropertyObject(p, ClassTypeId::NumericProperty)
     197    , mNaNCodepointSet(NaN_Set)
     198    , mStringBuffer(string_buffer)
     199    , mBufSize(bufsize)
     200    , mExplicitCps(cps)
     201    {
    197202       
    198203    }
     204    const UnicodeSet GetCodepointSet(const std::string & numeric_spec) override;
     205
     206private:
     207    UnicodeSet mNaNCodepointSet;  // codepoints for which the property value is NaN (not a number).
     208    const char * mStringBuffer;  // buffer holding all string values for other codepoints, in sorted order.
     209    unsigned mBufSize;
     210    const std::vector<UCD::codepoint_t> & mExplicitCps;
    199211};
    200212
  • icGREP/icgrep-devel/icgrep/UCD/UnicodeData.h

    r5668 r5670  
    4719847198        static ObsoletePropertyObject property_object(isc);
    4719947199    }
     47200    namespace NV_ns {
     47201        /** Code Point Ranges for nv mapping to NaN
     47202        [0000, 002f], [003a, 00b1], [00b4, 00b8], [00ba, 00bb],
     47203        [00bf, 065f], [066a, 06ef], [06fa, 07bf], [07ca, 0965],
     47204        [0970, 09e5], [09f0, 09f3], [09fa, 0a65], [0a70, 0ae5],
     47205        [0af0, 0b65], [0b70, 0b71], [0b78, 0be5], [0bf3, 0c65],
     47206        [0c70, 0c77], [0c7f, 0ce5], [0cf0, 0d57], [0d5f, 0d65],
     47207        [0d79, 0de5], [0df0, 0e4f], [0e5a, 0ecf], [0eda, 0f1f],
     47208        [0f34, 103f], [104a, 108f], [109a, 1368], [137d, 16ed],
     47209        [16f1, 17df], [17ea, 17ef], [17fa, 180f], [181a, 1945],
     47210        [1950, 19cf], [19db, 1a7f], [1a8a, 1a8f], [1a9a, 1b4f],
     47211        [1b5a, 1baf], [1bba, 1c3f], [1c4a, 1c4f], [1c5a, 206f],
     47212        [2071, 2073], [207a, 207f], [208a, 214f], [2183, 2184],
     47213        [218a, 245f], [249c, 24e9], [2500, 2775], [2794, 2cfc],
     47214        [2cfe, 3006], [3008, 3020], [302a, 3037], [303b, 3191],
     47215        [3196, 321f], [322a, 3247], [3250, 3250], [3260, 327f],
     47216        [328a, 32b0], [32c0, a61f], [a62a, a6e5], [a6f0, a82f],
     47217        [a836, a8cf], [a8da, a8ff], [a90a, a9cf], [a9da, a9ef],
     47218        [a9fa, aa4f], [aa5a, abef], [abfa, f96a], [f96c, f972],
     47219        [f974, f977], [f979, f9b1], [f9b3, f9d0], [f9d2, f9d2],
     47220        [f9d4, f9fc], [f9fe, ff0f], [ff1a, 10106], [10134, 1013f],
     47221        [10179, 10189], [1018c, 102e0], [102fc, 1031f], [10324, 10340],
     47222        [10342, 10349], [1034b, 103d0], [103d6, 1049f], [104aa, 10857],
     47223        [10860, 10878], [10880, 108a6], [108b0, 108fa], [10900, 10915],
     47224        [1091c, 109bb], [109be, 109bf], [109d0, 109d1], [10a00, 10a3f],
     47225        [10a48, 10a7c], [10a7f, 10a9c], [10aa0, 10aea], [10af0, 10b57],
     47226        [10b60, 10b77], [10b80, 10ba8], [10bb0, 10cf9], [10d00, 10e5f],
     47227        [10e7f, 11051], [11070, 110ef], [110fa, 11135], [11140, 111cf],
     47228        [111da, 111e0], [111f5, 112ef], [112fa, 1144f], [1145a, 114cf],
     47229        [114da, 1164f], [1165a, 116bf], [116ca, 1172f], [1173c, 118df],
     47230        [118f3, 11c4f], [11c6d, 123ff], [1246f, 16a5f], [16a6a, 16b4f],
     47231        [16b5a, 16b5a], [16b62, 1d35f], [1d372, 1d7cd], [1d800, 1e8c6],
     47232        [1e8d0, 1e94f], [1e95a, 1f0ff], [1f10d, 2f88f], [2f891, 10ffff]**/
     47233
     47234        const UnicodeSet NaN_set
     47235                    {{{Full, 1}, {Mixed, 1}, {Full, 3}, {Mixed, 1}, {Full, 45},
     47236              {Mixed, 1}, {Full, 3}, {Mixed, 1}, {Full, 6}, {Mixed, 1},
     47237              {Full, 12}, {Mixed, 1}, {Full, 3}, {Mixed, 1}, {Full, 3},
     47238              {Mixed, 1}, {Full, 3}, {Mixed, 1}, {Full, 3}, {Mixed, 1},
     47239              {Full, 3}, {Mixed, 1}, {Full, 3}, {Mixed, 1}, {Full, 3},
     47240              {Mixed, 1}, {Full, 2}, {Mixed, 2}, {Full, 3}, {Mixed, 1},
     47241              {Full, 2}, {Mixed, 1}, {Full, 3}, {Mixed, 1}, {Full, 2},
     47242              {Mixed, 1}, {Full, 8}, {Mixed, 1}, {Full, 1}, {Mixed, 1},
     47243              {Full, 22}, {Mixed, 1}, {Full, 27}, {Mixed, 1}, {Full, 7},
     47244              {Mixed, 2}, {Full, 9}, {Mixed, 1}, {Full, 3}, {Mixed, 1},
     47245              {Full, 5}, {Mixed, 1}, {Full, 5}, {Mixed, 1}, {Full, 2},
     47246              {Mixed, 1}, {Full, 4}, {Mixed, 1}, {Full, 32}, {Mixed, 2},
     47247              {Full, 5}, {Mixed, 1}, {Empty, 1}, {Mixed, 1}, {Full, 22},
     47248              {Empty, 1}, {Mixed, 1}, {Full, 2}, {Mixed, 1}, {Full, 19},
     47249              {Mixed, 2}, {Full, 42}, {Mixed, 1}, {Full, 24}, {Mixed, 2},
     47250              {Full, 10}, {Mixed, 1}, {Full, 4}, {Mixed, 2}, {Full, 1},
     47251              {Mixed, 2}, {Full, 923}, {Mixed, 1}, {Full, 5}, {Mixed, 1},
     47252              {Full, 9}, {Mixed, 1}, {Full, 4}, {Mixed, 1}, {Full, 1},
     47253              {Mixed, 1}, {Full, 5}, {Mixed, 2}, {Full, 2}, {Mixed, 1},
     47254              {Full, 12}, {Mixed, 1}, {Full, 619}, {Mixed, 1}, {Full, 1},
     47255              {Mixed, 3}, {Full, 40}, {Mixed, 1}, {Full, 15}, {Mixed, 2},
     47256              {Empty, 1}, {Mixed, 2}, {Full, 10}, {Mixed, 1}, {Full, 1},
     47257              {Mixed, 2}, {Full, 3}, {Mixed, 1}, {Full, 6}, {Mixed, 1},
     47258              {Full, 28}, {Mixed, 2}, {Full, 1}, {Mixed, 1}, {Full, 1},
     47259              {Mixed, 2}, {Full, 4}, {Mixed, 2}, {Empty, 1}, {Full, 2},
     47260              {Mixed, 3}, {Full, 2}, {Mixed, 1}, {Full, 2}, {Mixed, 2},
     47261              {Full, 1}, {Mixed, 1}, {Full, 9}, {Mixed, 1}, {Full, 11},
     47262              {Mixed, 1}, {Full, 14}, {Mixed, 2}, {Full, 3}, {Mixed, 1},
     47263              {Full, 1}, {Mixed, 1}, {Full, 4}, {Mixed, 2}, {Full, 7},
     47264              {Mixed, 1}, {Full, 10}, {Mixed, 1}, {Full, 3}, {Mixed, 1},
     47265              {Full, 11}, {Mixed, 1}, {Full, 3}, {Mixed, 1}, {Full, 2},
     47266              {Mixed, 1}, {Full, 13}, {Mixed, 1}, {Full, 26}, {Mixed, 2},
     47267              {Full, 60}, {Empty, 3}, {Mixed, 1}, {Full, 559}, {Mixed, 1},
     47268              {Full, 6}, {Mixed, 2}, {Full, 831}, {Mixed, 1}, {Full, 34},
     47269              {Mixed, 1}, {Empty, 1}, {Full, 134}, {Mixed, 1}, {Full, 3},
     47270              {Mixed, 1}, {Full, 61}, {Mixed, 1}, {Full, 2107}, {Mixed, 1},
     47271              {Full, 28731}},
     47272             {0xfc00ffff, 0x8df3ffff, 0xfffffc00, 0xfc00ffff, 0xfffffc00,
     47273              0xffff003f, 0xfc0f003f, 0xffff003f, 0xffff003f, 0xff03003f,
     47274              0xfff8003f, 0x80ff003f, 0xffff003f, 0x80ffffff, 0xfe00003f,
     47275              0xffff003f, 0xfc00ffff, 0xfc00ffff, 0xfff00000, 0xfffffc00,
     47276              0xfc00ffff, 0xe00001ff, 0xfffe3fff, 0xfc00fc00, 0xfc00ffff,
     47277              0xffff003f, 0xf800ffff, 0xfc00fc00, 0xfc00ffff, 0xfc00ffff,
     47278              0xfc00fc00, 0xfc0effff, 0xfffffc00, 0x0000ffff, 0xfffffc18,
     47279              0xf0000000, 0x000003ff, 0x003fffff, 0xfff00000, 0xdfffffff,
     47280              0xffffff7f, 0xf8fffc01, 0xffc3ffff, 0xfffffc00, 0x000100ff,
     47281              0xfffffc00, 0x0001ffff, 0xfffffc00, 0xffff003f, 0xffc0ffff,
     47282              0xfc00ffff, 0xfffffc00, 0xfc00ffff, 0xfc00ffff, 0xfc00ffff,
     47283              0xfc00ffff, 0xfef7f7ff, 0xfffbffff, 0xfff5ffff, 0xdfffffff,
     47284              0xfc00ffff, 0x0000007f, 0xfff00000, 0xfe000000, 0xfffff3ff,
     47285              0xf0000001, 0xfffffff0, 0xfffffbfd, 0xffc1ffff, 0xfffffc00,
     47286              0x00ffffff, 0x01ffffff, 0xffff007f, 0x07ffffff, 0xf03fffff,
     47287              0xcfffffff, 0x00030000, 0xffffff00, 0x9fffffff, 0x1fffffff,
     47288              0xffff07ff, 0x00ffffff, 0x00ffffff, 0xffff01ff, 0x03ffffff,
     47289              0x80000000, 0x0003ffff, 0xffff0000, 0xfc00ffff, 0x003fffff,
     47290              0xfc00ffff, 0xffe00001, 0xfc00ffff, 0xfc00ffff, 0xfc00ffff,
     47291              0xfc00ffff, 0xfffffc00, 0xf000ffff, 0xfff80000, 0x0000ffff,
     47292              0xffffe000, 0xffff8000, 0xfffffc00, 0x0400ffff, 0xfffffffc,
     47293              0xfffc0000, 0x00003fff, 0xffff007f, 0xfc00ffff, 0xffffe000,
     47294              0xfffeffff}};
     47295
     47296       const unsigned buffer_length = 3924;
     47297        const static char __attribute__ ((aligned (32))) string_buffer[4096] = u8R"__(0
     472981
     472992
     473003
     473014
     473025
     473036
     473047
     473058
     473069
     473072
     473083
     473091
     473101/4
     473111/2
     473123/4
     473130
     473141
     473152
     473163
     473174
     473185
     473196
     473207
     473218
     473229
     473230
     473241
     473252
     473263
     473274
     473285
     473296
     473307
     473318
     473329
     473330
     473341
     473352
     473363
     473374
     473385
     473396
     473407
     473418
     473429
     473430
     473441
     473452
     473463
     473474
     473485
     473496
     473507
     473518
     473529
     473530
     473541
     473552
     473563
     473574
     473585
     473596
     473607
     473618
     473629
     473631/16
     473641/8
     473653/16
     473661/4
     473673/4
     4736816
     473690
     473701
     473712
     473723
     473734
     473745
     473756
     473767
     473778
     473789
     473790
     473801
     473812
     473823
     473834
     473845
     473856
     473867
     473878
     473889
     473890
     473901
     473912
     473923
     473934
     473945
     473956
     473967
     473978
     473989
     473991/4
     474001/2
     474013/4
     474021/16
     474031/8
     474043/16
     474050
     474061
     474072
     474083
     474094
     474105
     474116
     474127
     474138
     474149
     4741510
     47416100
     474171000
     474180
     474191
     474202
     474213
     474224
     474235
     474246
     474257
     474268
     474279
     474280
     474291
     474302
     474313
     474321
     474332
     474343
     474350
     474361
     474372
     474383
     474394
     474405
     474416
     474427
     474438
     474449
     474451/160
     474461/40
     474473/80
     474481/20
     474491/10
     474503/20
     474511/5
     474520
     474531
     474542
     474553
     474564
     474575
     474586
     474597
     474608
     474619
     4746210
     47463100
     474641000
     474651/4
     474661/2
     474673/4
     474681/16
     474691/8
     474703/16
     474710
     474721
     474732
     474743
     474754
     474765
     474776
     474787
     474798
     474809
     474810
     474821
     474832
     474843
     474854
     474865
     474876
     474887
     474898
     474909
     474910
     474921
     474932
     474943
     474954
     474965
     474976
     474987
     474998
     475009
     475010
     475021
     475032
     475043
     475054
     475065
     475076
     475087
     475098
     475109
     475111/2
     475123/2
     475135/2
     475147/2
     475159/2
     4751611/2
     4751713/2
     4751815/2
     4751917/2
     47520-1/2
     475210
     475221
     475232
     475243
     475254
     475265
     475276
     475287
     475298
     475309
     475310
     475321
     475332
     475343
     475354
     475365
     475376
     475387
     475398
     475409
     475411
     475422
     475433
     475444
     475455
     475466
     475477
     475488
     475499
     4755010
     4755120
     4755230
     4755340
     4755450
     4755560
     4755670
     4755780
     4755890
     47559100
     4756010000
     4756117
     4756218
     4756319
     475640
     475651
     475662
     475673
     475684
     475695
     475706
     475717
     475728
     475739
     475740
     475751
     475762
     475773
     475784
     475795
     475806
     475817
     475828
     475839
     475840
     475851
     475862
     475873
     475884
     475895
     475906
     475917
     475928
     475939
     475940
     475951
     475962
     475973
     475984
     475995
     476006
     476017
     476028
     476039
     476040
     476051
     476062
     476073
     476084
     476095
     476106
     476117
     476128
     476139
     476141
     476150
     476161
     476172
     476183
     476194
     476205
     476216
     476227
     476238
     476249
     476250
     476261
     476272
     476283
     476294
     476305
     476316
     476327
     476338
     476349
     476350
     476361
     476372
     476383
     476394
     476405
     476416
     476427
     476438
     476449
     476450
     476461
     476472
     476483
     476494
     476505
     476516
     476527
     476538
     476549
     476550
     476561
     476572
     476583
     476594
     476605
     476616
     476627
     476638
     476649
     476650
     476661
     476672
     476683
     476694
     476705
     476716
     476727
     476738
     476749
     476750
     476764
     476775
     476786
     476797
     476808
     476819
     476820
     476831
     476842
     476853
     476864
     476875
     476886
     476897
     476908
     476919
     476921/7
     476931/9
     476941/10
     476951/3
     476962/3
     476971/5
     476982/5
     476993/5
     477004/5
     477011/6
     477025/6
     477031/8
     477043/8
     477055/8
     477067/8
     477071
     477081
     477092
     477103
     477114
     477125
     477136
     477147
     477158
     477169
     4771710
     4771811
     4771912
     4772050
     47721100
     47722500
     477231000
     477241
     477252
     477263
     477274
     477285
     477296
     477307
     477318
     477329
     4773310
     4773411
     4773512
     4773650
     47737100
     47738500
     477391000
     477401000
     477415000
     4774210000
     477436
     4774450
     4774550000
     47746100000
     477470
     477481
     477492
     477503
     477514
     477525
     477536
     477547
     477558
     477569
     4775710
     4775811
     4775912
     4776013
     4776114
     4776215
     4776316
     4776417
     4776518
     4776619
     4776720
     477681
     477692
     477703
     477714
     477725
     477736
     477747
     477758
     477769
     4777710
     4777811
     4777912
     4778013
     4778114
     4778215
     4778316
     4778417
     4778518
     4778619
     4778720
     477881
     477892
     477903
     477914
     477925
     477936
     477947
     477958
     477969
     4779710
     4779811
     4779912
     4780013
     4780114
     4780215
     4780316
     4780417
     4780518
     4780619
     4780720
     478080
     4780911
     4781012
     4781113
     4781214
     4781315
     4781416
     4781517
     4781618
     4781719
     4781820
     478191
     478202
     478213
     478224
     478235
     478246
     478257
     478268
     478279
     4782810
     478290
     478301
     478312
     478323
     478334
     478345
     478356
     478367
     478378
     478389
     4783910
     478401
     478412
     478423
     478434
     478445
     478456
     478467
     478478
     478489
     4784910
     478501
     478512
     478523
     478534
     478545
     478556
     478567
     478578
     478589
     4785910
     478601/2
     478610
     478621
     478632
     478643
     478654
     478665
     478676
     478687
     478698
     478709
     4787110
     4787220
     4787330
     478741
     478752
     478763
     478774
     478781
     478792
     478803
     478814
     478825
     478836
     478847
     478858
     478869
     4788710
     4788810
     4788920
     4789030
     4789140
     4789250
     4789360
     4789470
     4789580
     4789621
     4789722
     4789823
     4789924
     4790025
     4790126
     4790227
     4790328
     4790429
     4790530
     4790631
     4790732
     4790833
     4790934
     4791035
     479111
     479122
     479133
     479144
     479155
     479166
     479177
     479188
     479199
     4792010
     4792136
     4792237
     4792338
     4792439
     4792540
     4792641
     4792742
     4792843
     4792944
     4793045
     4793146
     4793247
     4793348
     4793449
     4793550
     479360
     479371
     479382
     479393
     479404
     479415
     479426
     479437
     479448
     479459
     479461
     479472
     479483
     479494
     479505
     479516
     479527
     479538
     479549
     479550
     479561/4
     479571/2
     479583/4
     479591/16
     479601/8
     479613/16
     479620
     479631
     479642
     479653
     479664
     479675
     479686
     479697
     479708
     479719
     479720
     479731
     479742
     479753
     479764
     479775
     479786
     479797
     479808
     479819
     479820
     479831
     479842
     479853
     479864
     479875
     479886
     479897
     479908
     479919
     479920
     479931
     479942
     479953
     479964
     479975
     479986
     479997
     480008
     480019
     480020
     480031
     480042
     480053
     480064
     480075
     480086
     480097
     480108
     480119
     480120
     480131
     480142
     480153
     480164
     480175
     480186
     480197
     480208
     480219
     480223
     4802310
     480242
     480250
     480266
     480276
     4802810
     480290
     480301
     480312
     480323
     480334
     480345
     480356
     480367
     480378
     480389
     480391
     480402
     480413
     480424
     480435
     480446
     480457
     480468
     480479
     4804810
     4804920
     4805030
     4805140
     4805250
     4805360
     4805470
     4805580
     4805690
     48057100
     48058200
     48059300
     48060400
     48061500
     48062600
     48063700
     48064800
     48065900
     480661000
     480672000
     480683000
     480694000
     480705000
     480716000
     480727000
     480738000
     480749000
     4807510000
     4807620000
     4807730000
     4807840000
     4807950000
     4808060000
     4808170000
     4808280000
     4808390000
     480841/4
     480851/2
     480861
     480875
     4808850
     48089500
     480905000
     4809150000
     480925
     4809310
     4809450
     48095100
     48096500
     480971000
     480985000
     480995
     4810010
     4810150
     48102100
     48103500
     481041000
     4810510000
     4810650000
     4810710
     481081
     481091
     481101
     481112
     481122
     481132
     481142
     481155
     4811610
     4811710
     4811810
     4811910
     4812010
     4812130
     4812250
     4812350
     4812450
     4812550
     48126100
     48127300
     48128500
     48129500
     48130500
     48131500
     48132500
     481331000
     481345000
     481355
     4813650
     481371/2
     481381/2
     481392/3
     481403/4
     481410
     481421/4
     481431
     481442
     481453
     481464
     481475
     481486
     481497
     481508
     481519
     4815210
     4815320
     4815430
     4815540
     4815650
     4815760
     4815870
     4815980
     4816090
     48161100
     48162200
     48163300
     48164400
     48165500
     48166600
     48167700
     48168800
     48169900
     481701
     481715
     4817210
     4817350
     4817490
     48175900
     481761
     481772
     4817810
     4817920
     48180100
     481810
     481821
     481832
     481843
     481854
     481865
     481876
     481887
     481898
     481909
     481911
     481922
     481933
     4819410
     4819520
     48196100
     481971000
     4819810000
     481991
     482002
     482013
     482024
     482035
     4820410
     4820520
     482061
     482072
     482083
     482094
     482104
     482115
     4821210
     4821320
     48214100
     482151
     482165
     4821710
     4821820
     48219100
     482201
     4822110
     4822220
     48223100
     482242
     482253
     4822611/12
     482271/2
     482281
     482292
     482303
     482314
     482325
     482336
     482347
     482358
     482369
     4823710
     4823820
     4823930
     4824040
     4824150
     4824260
     4824370
     48244100
     48245200
     48246300
     48247400
     48248500
     48249600
     48250700
     48251800
     48252900
     482531000
     482542000
     482553000
     482564000
     482575000
     482586000
     482597000
     482608000
     482619000
     4826210000
     4826320000
     4826430000
     4826540000
     4826650000
     4826760000
     4826870000
     4826980000
     4827090000
     48271100000
     48272200000
     48273300000
     48274400000
     48275500000
     48276600000
     48277700000
     48278800000
     48279900000
     482801/12
     482812/12
     482823/12
     482834/12
     482845/12
     482856/12
     482867/12
     482878/12
     482889/12
     4828910/12
     482901
     482912
     482923
     482934
     4829410
     4829520
     48296100
     482971000
     482981
     4829950
     483001
     4830110
     4830220
     483031
     483045
     4830510
     4830620
     48307100
     483081
     483092
     483103
     483114
     4831210
     4831320
     48314100
     483151000
     483161
     483172
     483183
     483194
     4832010
     4832120
     48322100
     483231000
     483241
     483252
     483263
     483274
     4832810
     4832920
     48330100
     483311
     483325
     4833310
     4833450
     48335100
     483361000
     483371
     483382
     483393
     483404
     483415
     483426
     483437
     483448
     483459
     4834610
     4834720
     4834830
     4834940
     4835050
     4835160
     4835270
     4835380
     4835490
     48355100
     48356200
     48357300
     48358400
     48359500
     48360600
     48361700
     48362800
     48363900
     483641/2
     483651/4
     483661/3
     483672/3
     483681
     483692
     483703
     483714
     483725
     483736
     483747
     483758
     483769
     4837710
     4837820
     4837930
     4838040
     4838150
     4838260
     4838370
     4838480
     4838590
     48386100
     483871000
     483880
     483891
     483902
     483913
     483924
     483935
     483946
     483957
     483968
     483979
     483980
     483991
     484002
     484013
     484024
     484035
     484046
     484057
     484068
     484079
     484080
     484091
     484102
     484113
     484124
     484135
     484146
     484157
     484168
     484179
     484180
     484191
     484202
     484213
     484224
     484235
     484246
     484257
     484268
     484279
     484281
     484292
     484303
     484314
     484325
     484336
     484347
     484358
     484369
     4843710
     4843820
     4843930
     4844040
     4844150
     4844260
     4844370
     4844480
     4844590
     48446100
     484471000
     484480
     484491
     484502
     484513
     484524
     484535
     484546
     484557
     484568
     484579
     484580
     484591
     484602
     484613
     484624
     484635
     484646
     484657
     484668
     484679
     484680
     484691
     484702
     484713
     484724
     484735
     484746
     484757
     484768
     484779
     484780
     484791
     484802
     484813
     484824
     484835
     484846
     484857
     484868
     484879
     484880
     484891
     484902
     484913
     484924
     484935
     484946
     484957
     484968
     484979
     484980
     484991
     485002
     485013
     485024
     485035
     485046
     485057
     485068
     485079
     4850810
     4850920
     485100
     485111
     485122
     485133
     485144
     485155
     485166
     485177
     485188
     485199
     4852010
     4852120
     4852230
     4852340
     4852450
     4852560
     4852670
     4852780
     4852890
     485290
     485301
     485312
     485323
     485334
     485345
     485356
     485367
     485378
     485389
     485391
     485402
     485413
     485424
     485435
     485446
     485457
     485468
     485479
     4854810
     4854920
     4855030
     4855140
     4855250
     4855360
     4855470
     4855580
     4855690
     48557100
     485582
     485593
     485604
     485615
     485626
     485637
     485648
     485659
     485663
     485674
     485685
     485696
     485707
     485718
     485729
     485734
     485745
     485756
     485767
     485778
     485789
     485791
     485802
     485813
     485824
     485835
     485846
     485857
     485868
     485879
     485881
     485892
     485903
     485914
     485925
     485932
     485943
     485953
     485964
     485975
     485986
     485997
     486008
     486019
     486021
     486032
     486043
     486053
     486064
     486075
     48608216000
     48609432000
     486101
     486112
     486123
     486133
     486144
     486155
     486163
     486173
     486184
     486194
     486204
     486214
     486226
     486237
     486247
     486257
     486268
     486278
     486289
     486299
     486309
     486319
     486322
     486333
     486344
     486355
     486366
     486371
     486382
     486393
     486404
     486414
     486425
     486435
     486442
     486453
     486461
     486472
     486481/3
     486492/3
     486505/6
     486511/3
     486522/3
     486531/8
     486541/4
     486551/6
     486561/4
     486571/4
     486581/2
     486591/3
     486602/3
     4866140
     4866250
     486634
     486645
     486656
     486667
     486678
     486689
     486690
     486701
     486712
     486723
     486734
     486745
     486756
     486767
     486778
     486789
     486790
     486801
     486812
     486823
     486834
     486845
     486856
     486867
     486878
     486889
     4868910
     48690100
     4869110000
     486921000000
     48693100000000
     4869410000000000
     486951000000000000
     486961
     486972
     486983
     486994
     487005
     487016
     487027
     487038
     487049
     4870510
     4870620
     4870730
     4870840
     4870950
     4871060
     4871170
     4871280
     4871390
     487140
     487151
     487162
     487173
     487184
     487195
     487206
     487217
     487228
     487239
     487240
     487251
     487262
     487273
     487284
     487295
     487306
     487317
     487328
     487339
     487340
     487351
     487362
     487373
     487384
     487395
     487406
     487417
     487428
     487439
     487440
     487451
     487462
     487473
     487484
     487495
     487506
     487517
     487528
     487539
     487540
     487551
     487562
     487573
     487584
     487595
     487606
     487617
     487628
     487639
     487641
     487652
     487663
     487674
     487685
     487696
     487707
     487718
     487729
     487730
     487741
     487752
     487763
     487774
     487785
     487796
     487807
     487818
     487829
     487830
     487840
     487851
     487862
     487873
     487884
     487895
     487906
     487917
     487928
     487939
     487940
     487950
     487969
     48797)__";
     48798
     48799        const static std::vector<codepoint_t> defined_cps = {
     48800        0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037,
     48801        0x0038, 0x0039, 0x00b2, 0x00b3, 0x00b9, 0x00bc, 0x00bd, 0x00be,
     48802        0x0660, 0x0661, 0x0662, 0x0663, 0x0664, 0x0665, 0x0666, 0x0667,
     48803        0x0668, 0x0669, 0x06f0, 0x06f1, 0x06f2, 0x06f3, 0x06f4, 0x06f5,
     48804        0x06f6, 0x06f7, 0x06f8, 0x06f9, 0x07c0, 0x07c1, 0x07c2, 0x07c3,
     48805        0x07c4, 0x07c5, 0x07c6, 0x07c7, 0x07c8, 0x07c9, 0x0966, 0x0967,
     48806        0x0968, 0x0969, 0x096a, 0x096b, 0x096c, 0x096d, 0x096e, 0x096f,
     48807        0x09e6, 0x09e7, 0x09e8, 0x09e9, 0x09ea, 0x09eb, 0x09ec, 0x09ed,
     48808        0x09ee, 0x09ef, 0x09f4, 0x09f5, 0x09f6, 0x09f7, 0x09f8, 0x09f9,
     48809        0x0a66, 0x0a67, 0x0a68, 0x0a69, 0x0a6a, 0x0a6b, 0x0a6c, 0x0a6d,
     48810        0x0a6e, 0x0a6f, 0x0ae6, 0x0ae7, 0x0ae8, 0x0ae9, 0x0aea, 0x0aeb,
     48811        0x0aec, 0x0aed, 0x0aee, 0x0aef, 0x0b66, 0x0b67, 0x0b68, 0x0b69,
     48812        0x0b6a, 0x0b6b, 0x0b6c, 0x0b6d, 0x0b6e, 0x0b6f, 0x0b72, 0x0b73,
     48813        0x0b74, 0x0b75, 0x0b76, 0x0b77, 0x0be6, 0x0be7, 0x0be8, 0x0be9,
     48814        0x0bea, 0x0beb, 0x0bec, 0x0bed, 0x0bee, 0x0bef, 0x0bf0, 0x0bf1,
     48815        0x0bf2, 0x0c66, 0x0c67, 0x0c68, 0x0c69, 0x0c6a, 0x0c6b, 0x0c6c,
     48816        0x0c6d, 0x0c6e, 0x0c6f, 0x0c78, 0x0c79, 0x0c7a, 0x0c7b, 0x0c7c,
     48817        0x0c7d, 0x0c7e, 0x0ce6, 0x0ce7, 0x0ce8, 0x0ce9, 0x0cea, 0x0ceb,
     48818        0x0cec, 0x0ced, 0x0cee, 0x0cef, 0x0d58, 0x0d59, 0x0d5a, 0x0d5b,
     48819        0x0d5c, 0x0d5d, 0x0d5e, 0x0d66, 0x0d67, 0x0d68, 0x0d69, 0x0d6a,
     48820        0x0d6b, 0x0d6c, 0x0d6d, 0x0d6e, 0x0d6f, 0x0d70, 0x0d71, 0x0d72,
     48821        0x0d73, 0x0d74, 0x0d75, 0x0d76, 0x0d77, 0x0d78, 0x0de6, 0x0de7,
     48822        0x0de8, 0x0de9, 0x0dea, 0x0deb, 0x0dec, 0x0ded, 0x0dee, 0x0def,
     48823        0x0e50, 0x0e51, 0x0e52, 0x0e53, 0x0e54, 0x0e55, 0x0e56, 0x0e57,
     48824        0x0e58, 0x0e59, 0x0ed0, 0x0ed1, 0x0ed2, 0x0ed3, 0x0ed4, 0x0ed5,
     48825        0x0ed6, 0x0ed7, 0x0ed8, 0x0ed9, 0x0f20, 0x0f21, 0x0f22, 0x0f23,
     48826        0x0f24, 0x0f25, 0x0f26, 0x0f27, 0x0f28, 0x0f29, 0x0f2a, 0x0f2b,
     48827        0x0f2c, 0x0f2d, 0x0f2e, 0x0f2f, 0x0f30, 0x0f31, 0x0f32, 0x0f33,
     48828        0x1040, 0x1041, 0x1042, 0x1043, 0x1044, 0x1045, 0x1046, 0x1047,
     48829        0x1048, 0x1049, 0x1090, 0x1091, 0x1092, 0x1093, 0x1094, 0x1095,
     48830        0x1096, 0x1097, 0x1098, 0x1099, 0x1369, 0x136a, 0x136b, 0x136c,
     48831        0x136d, 0x136e, 0x136f, 0x1370, 0x1371, 0x1372, 0x1373, 0x1374,
     48832        0x1375, 0x1376, 0x1377, 0x1378, 0x1379, 0x137a, 0x137b, 0x137c,
     48833        0x16ee, 0x16ef, 0x16f0, 0x17e0, 0x17e1, 0x17e2, 0x17e3, 0x17e4,
     48834        0x17e5, 0x17e6, 0x17e7, 0x17e8, 0x17e9, 0x17f0, 0x17f1, 0x17f2,
     48835        0x17f3, 0x17f4, 0x17f5, 0x17f6, 0x17f7, 0x17f8, 0x17f9, 0x1810,
     48836        0x1811, 0x1812, 0x1813, 0x1814, 0x1815, 0x1816, 0x1817, 0x1818,
     48837        0x1819, 0x1946, 0x1947, 0x1948, 0x1949, 0x194a, 0x194b, 0x194c,
     48838        0x194d, 0x194e, 0x194f, 0x19d0, 0x19d1, 0x19d2, 0x19d3, 0x19d4,
     48839        0x19d5, 0x19d6, 0x19d7, 0x19d8, 0x19d9, 0x19da, 0x1a80, 0x1a81,
     48840        0x1a82, 0x1a83, 0x1a84, 0x1a85, 0x1a86, 0x1a87, 0x1a88, 0x1a89,
     48841        0x1a90, 0x1a91, 0x1a92, 0x1a93, 0x1a94, 0x1a95, 0x1a96, 0x1a97,
     48842        0x1a98, 0x1a99, 0x1b50, 0x1b51, 0x1b52, 0x1b53, 0x1b54, 0x1b55,
     48843        0x1b56, 0x1b57, 0x1b58, 0x1b59, 0x1bb0, 0x1bb1, 0x1bb2, 0x1bb3,
     48844        0x1bb4, 0x1bb5, 0x1bb6, 0x1bb7, 0x1bb8, 0x1bb9, 0x1c40, 0x1c41,
     48845        0x1c42, 0x1c43, 0x1c44, 0x1c45, 0x1c46, 0x1c47, 0x1c48, 0x1c49,
     48846        0x1c50, 0x1c51, 0x1c52, 0x1c53, 0x1c54, 0x1c55, 0x1c56, 0x1c57,
     48847        0x1c58, 0x1c59, 0x2070, 0x2074, 0x2075, 0x2076, 0x2077, 0x2078,
     48848        0x2079, 0x2080, 0x2081, 0x2082, 0x2083, 0x2084, 0x2085, 0x2086,
     48849        0x2087, 0x2088, 0x2089, 0x2150, 0x2151, 0x2152, 0x2153, 0x2154,
     48850        0x2155, 0x2156, 0x2157, 0x2158, 0x2159, 0x215a, 0x215b, 0x215c,
     48851        0x215d, 0x215e, 0x215f, 0x2160, 0x2161, 0x2162, 0x2163, 0x2164,
     48852        0x2165, 0x2166, 0x2167, 0x2168, 0x2169, 0x216a, 0x216b, 0x216c,
     48853        0x216d, 0x216e, 0x216f, 0x2170, 0x2171, 0x2172, 0x2173, 0x2174,
     48854        0x2175, 0x2176, 0x2177, 0x2178, 0x2179, 0x217a, 0x217b, 0x217c,
     48855        0x217d, 0x217e, 0x217f, 0x2180, 0x2181, 0x2182, 0x2185, 0x2186,
     48856        0x2187, 0x2188, 0x2189, 0x2460, 0x2461, 0x2462, 0x2463, 0x2464,
     48857        0x2465, 0x2466, 0x2467, 0x2468, 0x2469, 0x246a, 0x246b, 0x246c,
     48858        0x246d, 0x246e, 0x246f, 0x2470, 0x2471, 0x2472, 0x2473, 0x2474,
     48859        0x2475, 0x2476, 0x2477, 0x2478, 0x2479, 0x247a, 0x247b, 0x247c,
     48860        0x247d, 0x247e, 0x247f, 0x2480, 0x2481, 0x2482, 0x2483, 0x2484,
     48861        0x2485, 0x2486, 0x2487, 0x2488, 0x2489, 0x248a, 0x248b, 0x248c,
     48862        0x248d, 0x248e, 0x248f, 0x2490, 0x2491, 0x2492, 0x2493, 0x2494,
     48863        0x2495, 0x2496, 0x2497, 0x2498, 0x2499, 0x249a, 0x249b, 0x24ea,
     48864        0x24eb, 0x24ec, 0x24ed, 0x24ee, 0x24ef, 0x24f0, 0x24f1, 0x24f2,
     48865        0x24f3, 0x24f4, 0x24f5, 0x24f6, 0x24f7, 0x24f8, 0x24f9, 0x24fa,
     48866        0x24fb, 0x24fc, 0x24fd, 0x24fe, 0x24ff, 0x2776, 0x2777, 0x2778,
     48867        0x2779, 0x277a, 0x277b, 0x277c, 0x277d, 0x277e, 0x277f, 0x2780,
     48868        0x2781, 0x2782, 0x2783, 0x2784, 0x2785, 0x2786, 0x2787, 0x2788,
     48869        0x2789, 0x278a, 0x278b, 0x278c, 0x278d, 0x278e, 0x278f, 0x2790,
     48870        0x2791, 0x2792, 0x2793, 0x2cfd, 0x3007, 0x3021, 0x3022, 0x3023,
     48871        0x3024, 0x3025, 0x3026, 0x3027, 0x3028, 0x3029, 0x3038, 0x3039,
     48872        0x303a, 0x3192, 0x3193, 0x3194, 0x3195, 0x3220, 0x3221, 0x3222,
     48873        0x3223, 0x3224, 0x3225, 0x3226, 0x3227, 0x3228, 0x3229, 0x3248,
     48874        0x3249, 0x324a, 0x324b, 0x324c, 0x324d, 0x324e, 0x324f, 0x3251,
     48875        0x3252, 0x3253, 0x3254, 0x3255, 0x3256, 0x3257, 0x3258, 0x3259,
     48876        0x325a, 0x325b, 0x325c, 0x325d, 0x325e, 0x325f, 0x3280, 0x3281,
     48877        0x3282, 0x3283, 0x3284, 0x3285, 0x3286, 0x3287, 0x3288, 0x3289,
     48878        0x32b1, 0x32b2, 0x32b3, 0x32b4, 0x32b5, 0x32b6, 0x32b7, 0x32b8,
     48879        0x32b9, 0x32ba, 0x32bb, 0x32bc, 0x32bd, 0x32be, 0x32bf, 0xa620,
     48880        0xa621, 0xa622, 0xa623, 0xa624, 0xa625, 0xa626, 0xa627, 0xa628,
     48881        0xa629, 0xa6e6, 0xa6e7, 0xa6e8, 0xa6e9, 0xa6ea, 0xa6eb, 0xa6ec,
     48882        0xa6ed, 0xa6ee, 0xa6ef, 0xa830, 0xa831, 0xa832, 0xa833, 0xa834,
     48883        0xa835, 0xa8d0, 0xa8d1, 0xa8d2, 0xa8d3, 0xa8d4, 0xa8d5, 0xa8d6,
     48884        0xa8d7, 0xa8d8, 0xa8d9, 0xa900, 0xa901, 0xa902, 0xa903, 0xa904,
     48885        0xa905, 0xa906, 0xa907, 0xa908, 0xa909, 0xa9d0, 0xa9d1, 0xa9d2,
     48886        0xa9d3, 0xa9d4, 0xa9d5, 0xa9d6, 0xa9d7, 0xa9d8, 0xa9d9, 0xa9f0,
     48887        0xa9f1, 0xa9f2, 0xa9f3, 0xa9f4, 0xa9f5, 0xa9f6, 0xa9f7, 0xa9f8,
     48888        0xa9f9, 0xaa50, 0xaa51, 0xaa52, 0xaa53, 0xaa54, 0xaa55, 0xaa56,
     48889        0xaa57, 0xaa58, 0xaa59, 0xabf0, 0xabf1, 0xabf2, 0xabf3, 0xabf4,
     48890        0xabf5, 0xabf6, 0xabf7, 0xabf8, 0xabf9, 0xf96b, 0xf973, 0xf978,
     48891        0xf9b2, 0xf9d1, 0xf9d3, 0xf9fd, 0xff10, 0xff11, 0xff12, 0xff13,
     48892        0xff14, 0xff15, 0xff16, 0xff17, 0xff18, 0xff19, 0x10107, 0x10108,
     48893        0x10109, 0x1010a, 0x1010b, 0x1010c, 0x1010d, 0x1010e, 0x1010f,
     48894        0x10110, 0x10111, 0x10112, 0x10113, 0x10114, 0x10115, 0x10116,
     48895        0x10117, 0x10118, 0x10119, 0x1011a, 0x1011b, 0x1011c, 0x1011d,
     48896        0x1011e, 0x1011f, 0x10120, 0x10121, 0x10122, 0x10123, 0x10124,
     48897        0x10125, 0x10126, 0x10127, 0x10128, 0x10129, 0x1012a, 0x1012b,
     48898        0x1012c, 0x1012d, 0x1012e, 0x1012f, 0x10130, 0x10131, 0x10132,
     48899        0x10133, 0x10140, 0x10141, 0x10142, 0x10143, 0x10144, 0x10145,
     48900        0x10146, 0x10147, 0x10148, 0x10149, 0x1014a, 0x1014b, 0x1014c,
     48901        0x1014d, 0x1014e, 0x1014f, 0x10150, 0x10151, 0x10152, 0x10153,
     48902        0x10154, 0x10155, 0x10156, 0x10157, 0x10158, 0x10159, 0x1015a,
     48903        0x1015b, 0x1015c, 0x1015d, 0x1015e, 0x1015f, 0x10160, 0x10161,
     48904        0x10162, 0x10163, 0x10164, 0x10165, 0x10166, 0x10167, 0x10168,
     48905        0x10169, 0x1016a, 0x1016b, 0x1016c, 0x1016d, 0x1016e, 0x1016f,
     48906        0x10170, 0x10171, 0x10172, 0x10173, 0x10174, 0x10175, 0x10176,
     48907        0x10177, 0x10178, 0x1018a, 0x1018b, 0x102e1, 0x102e2, 0x102e3,
     48908        0x102e4, 0x102e5, 0x102e6, 0x102e7, 0x102e8, 0x102e9, 0x102ea,
     48909        0x102eb, 0x102ec, 0x102ed, 0x102ee, 0x102ef, 0x102f0, 0x102f1,
     48910        0x102f2, 0x102f3, 0x102f4, 0x102f5, 0x102f6, 0x102f7, 0x102f8,
     48911        0x102f9, 0x102fa, 0x102fb, 0x10320, 0x10321, 0x10322, 0x10323,
     48912        0x10341, 0x1034a, 0x103d1, 0x103d2, 0x103d3, 0x103d4, 0x103d5,
     48913        0x104a0, 0x104a1, 0x104a2, 0x104a3, 0x104a4, 0x104a5, 0x104a6,
     48914        0x104a7, 0x104a8, 0x104a9, 0x10858, 0x10859, 0x1085a, 0x1085b,
     48915        0x1085c, 0x1085d, 0x1085e, 0x1085f, 0x10879, 0x1087a, 0x1087b,
     48916        0x1087c, 0x1087d, 0x1087e, 0x1087f, 0x108a7, 0x108a8, 0x108a9,
     48917        0x108aa, 0x108ab, 0x108ac, 0x108ad, 0x108ae, 0x108af, 0x108fb,
     48918        0x108fc, 0x108fd, 0x108fe, 0x108ff, 0x10916, 0x10917, 0x10918,
     48919        0x10919, 0x1091a, 0x1091b, 0x109bc, 0x109bd, 0x109c0, 0x109c1,
     48920        0x109c2, 0x109c3, 0x109c4, 0x109c5, 0x109c6, 0x109c7, 0x109c8,
     48921        0x109c9, 0x109ca, 0x109cb, 0x109cc, 0x109cd, 0x109ce, 0x109cf,
     48922        0x109d2, 0x109d3, 0x109d4, 0x109d5, 0x109d6, 0x109d7, 0x109d8,
     48923        0x109d9, 0x109da, 0x109db, 0x109dc, 0x109dd, 0x109de, 0x109df,
     48924        0x109e0, 0x109e1, 0x109e2, 0x109e3, 0x109e4, 0x109e5, 0x109e6,
     48925        0x109e7, 0x109e8, 0x109e9, 0x109ea, 0x109eb, 0x109ec, 0x109ed,
     48926        0x109ee, 0x109ef, 0x109f0, 0x109f1, 0x109f2, 0x109f3, 0x109f4,
     48927        0x109f5, 0x109f6, 0x109f7, 0x109f8, 0x109f9, 0x109fa, 0x109fb,
     48928        0x109fc, 0x109fd, 0x109fe, 0x109ff, 0x10a40, 0x10a41, 0x10a42,
     48929        0x10a43, 0x10a44, 0x10a45, 0x10a46, 0x10a47, 0x10a7d, 0x10a7e,
     48930        0x10a9d, 0x10a9e, 0x10a9f, 0x10aeb, 0x10aec, 0x10aed, 0x10aee,
     48931        0x10aef, 0x10b58, 0x10b59, 0x10b5a, 0x10b5b, 0x10b5c, 0x10b5d,
     48932        0x10b5e, 0x10b5f, 0x10b78, 0x10b79, 0x10b7a, 0x10b7b, 0x10b7c,
     48933        0x10b7d, 0x10b7e, 0x10b7f, 0x10ba9, 0x10baa, 0x10bab, 0x10bac,
     48934        0x10bad, 0x10bae, 0x10baf, 0x10cfa, 0x10cfb, 0x10cfc, 0x10cfd,
     48935        0x10cfe, 0x10cff, 0x10e60, 0x10e61, 0x10e62, 0x10e63, 0x10e64,
     48936        0x10e65, 0x10e66, 0x10e67, 0x10e68, 0x10e69, 0x10e6a, 0x10e6b,
     48937        0x10e6c, 0x10e6d, 0x10e6e, 0x10e6f, 0x10e70, 0x10e71, 0x10e72,
     48938        0x10e73, 0x10e74, 0x10e75, 0x10e76, 0x10e77, 0x10e78, 0x10e79,
     48939        0x10e7a, 0x10e7b, 0x10e7c, 0x10e7d, 0x10e7e, 0x11052, 0x11053,
     48940        0x11054, 0x11055, 0x11056, 0x11057, 0x11058, 0x11059, 0x1105a,
     48941        0x1105b, 0x1105c, 0x1105d, 0x1105e, 0x1105f, 0x11060, 0x11061,
     48942        0x11062, 0x11063, 0x11064, 0x11065, 0x11066, 0x11067, 0x11068,
     48943        0x11069, 0x1106a, 0x1106b, 0x1106c, 0x1106d, 0x1106e, 0x1106f,
     48944        0x110f0, 0x110f1, 0x110f2, 0x110f3, 0x110f4, 0x110f5, 0x110f6,
     48945        0x110f7, 0x110f8, 0x110f9, 0x11136, 0x11137, 0x11138, 0x11139,
     48946        0x1113a, 0x1113b, 0x1113c, 0x1113d, 0x1113e, 0x1113f, 0x111d0,
     48947        0x111d1, 0x111d2, 0x111d3, 0x111d4, 0x111d5, 0x111d6, 0x111d7,
     48948        0x111d8, 0x111d9, 0x111e1, 0x111e2, 0x111e3, 0x111e4, 0x111e5,
     48949        0x111e6, 0x111e7, 0x111e8, 0x111e9, 0x111ea, 0x111eb, 0x111ec,
     48950        0x111ed, 0x111ee, 0x111ef, 0x111f0, 0x111f1, 0x111f2, 0x111f3,
     48951        0x111f4, 0x112f0, 0x112f1, 0x112f2, 0x112f3, 0x112f4, 0x112f5,
     48952        0x112f6, 0x112f7, 0x112f8, 0x112f9, 0x11450, 0x11451, 0x11452,
     48953        0x11453, 0x11454, 0x11455, 0x11456, 0x11457, 0x11458, 0x11459,
     48954        0x114d0, 0x114d1, 0x114d2, 0x114d3, 0x114d4, 0x114d5, 0x114d6,
     48955        0x114d7, 0x114d8, 0x114d9, 0x11650, 0x11651, 0x11652, 0x11653,
     48956        0x11654, 0x11655, 0x11656, 0x11657, 0x11658, 0x11659, 0x116c0,
     48957        0x116c1, 0x116c2, 0x116c3, 0x116c4, 0x116c5, 0x116c6, 0x116c7,
     48958        0x116c8, 0x116c9, 0x11730, 0x11731, 0x11732, 0x11733, 0x11734,
     48959        0x11735, 0x11736, 0x11737, 0x11738, 0x11739, 0x1173a, 0x1173b,
     48960        0x118e0, 0x118e1, 0x118e2, 0x118e3, 0x118e4, 0x118e5, 0x118e6,
     48961        0x118e7, 0x118e8, 0x118e9, 0x118ea, 0x118eb, 0x118ec, 0x118ed,
     48962        0x118ee, 0x118ef, 0x118f0, 0x118f1, 0x118f2, 0x11c50, 0x11c51,
     48963        0x11c52, 0x11c53, 0x11c54, 0x11c55, 0x11c56, 0x11c57, 0x11c58,
     48964        0x11c59, 0x11c5a, 0x11c5b, 0x11c5c, 0x11c5d, 0x11c5e, 0x11c5f,
     48965        0x11c60, 0x11c61, 0x11c62, 0x11c63, 0x11c64, 0x11c65, 0x11c66,
     48966        0x11c67, 0x11c68, 0x11c69, 0x11c6a, 0x11c6b, 0x11c6c, 0x12400,
     48967        0x12401, 0x12402, 0x12403, 0x12404, 0x12405, 0x12406, 0x12407,
     48968        0x12408, 0x12409, 0x1240a, 0x1240b, 0x1240c, 0x1240d, 0x1240e,
     48969        0x1240f, 0x12410, 0x12411, 0x12412, 0x12413, 0x12414, 0x12415,
     48970        0x12416, 0x12417, 0x12418, 0x12419, 0x1241a, 0x1241b, 0x1241c,
     48971        0x1241d, 0x1241e, 0x1241f, 0x12420, 0x12421, 0x12422, 0x12423,
     48972        0x12424, 0x12425, 0x12426, 0x12427, 0x12428, 0x12429, 0x1242a,
     48973        0x1242b, 0x1242c, 0x1242d, 0x1242e, 0x1242f, 0x12430, 0x12431,
     48974        0x12432, 0x12433, 0x12434, 0x12435, 0x12436, 0x12437, 0x12438,
     48975        0x12439, 0x1243a, 0x1243b, 0x1243c, 0x1243d, 0x1243e, 0x1243f,
     48976        0x12440, 0x12441, 0x12442, 0x12443, 0x12444, 0x12445, 0x12446,
     48977        0x12447, 0x12448, 0x12449, 0x1244a, 0x1244b, 0x1244c, 0x1244d,
     48978        0x1244e, 0x1244f, 0x12450, 0x12451, 0x12452, 0x12453, 0x12454,
     48979        0x12455, 0x12456, 0x12457, 0x12458, 0x12459, 0x1245a, 0x1245b,
     48980        0x1245c, 0x1245d, 0x1245e, 0x1245f, 0x12460, 0x12461, 0x12462,
     48981        0x12463, 0x12464, 0x12465, 0x12466, 0x12467, 0x12468, 0x12469,
     48982        0x1246a, 0x1246b, 0x1246c, 0x1246d, 0x1246e, 0x16a60, 0x16a61,
     48983        0x16a62, 0x16a63, 0x16a64, 0x16a65, 0x16a66, 0x16a67, 0x16a68,
     48984        0x16a69, 0x16b50, 0x16b51, 0x16b52, 0x16b53, 0x16b54, 0x16b55,
     48985        0x16b56, 0x16b57, 0x16b58, 0x16b59, 0x16b5b, 0x16b5c, 0x16b5d,
     48986        0x16b5e, 0x16b5f, 0x16b60, 0x16b61, 0x1d360, 0x1d361, 0x1d362,
     48987        0x1d363, 0x1d364, 0x1d365, 0x1d366, 0x1d367, 0x1d368, 0x1d369,
     48988        0x1d36a, 0x1d36b, 0x1d36c, 0x1d36d, 0x1d36e, 0x1d36f, 0x1d370,
     48989        0x1d371, 0x1d7ce, 0x1d7cf, 0x1d7d0, 0x1d7d1, 0x1d7d2, 0x1d7d3,
     48990        0x1d7d4, 0x1d7d5, 0x1d7d6, 0x1d7d7, 0x1d7d8, 0x1d7d9, 0x1d7da,
     48991        0x1d7db, 0x1d7dc, 0x1d7dd, 0x1d7de, 0x1d7df, 0x1d7e0, 0x1d7e1,
     48992        0x1d7e2, 0x1d7e3, 0x1d7e4, 0x1d7e5, 0x1d7e6, 0x1d7e7, 0x1d7e8,
     48993        0x1d7e9, 0x1d7ea, 0x1d7eb, 0x1d7ec, 0x1d7ed, 0x1d7ee, 0x1d7ef,
     48994        0x1d7f0, 0x1d7f1, 0x1d7f2, 0x1d7f3, 0x1d7f4, 0x1d7f5, 0x1d7f6,
     48995        0x1d7f7, 0x1d7f8, 0x1d7f9, 0x1d7fa, 0x1d7fb, 0x1d7fc, 0x1d7fd,
     48996        0x1d7fe, 0x1d7ff, 0x1e8c7, 0x1e8c8, 0x1e8c9, 0x1e8ca, 0x1e8cb,
     48997        0x1e8cc, 0x1e8cd, 0x1e8ce, 0x1e8cf, 0x1e950, 0x1e951, 0x1e952,
     48998        0x1e953, 0x1e954, 0x1e955, 0x1e956, 0x1e957, 0x1e958, 0x1e959,
     48999        0x1f100, 0x1f101, 0x1f102, 0x1f103, 0x1f104, 0x1f105, 0x1f106,
     49000        0x1f107, 0x1f108, 0x1f109, 0x1f10a, 0x1f10b, 0x1f10c, 0x2f890};
     49001        static NumericPropertyObject property_object(nv,
     49002                                                    NaN_set,
     49003                                                    static_cast<const char *>(string_buffer),
     49004                                                    buffer_length,
     49005                                                    defined_cps);
     49006    }
    4720049007}
    4720149008
Note: See TracChangeset for help on using the changeset viewer.