Ignore:
Timestamp:
Oct 2, 2017, 12:54:34 PM (2 years ago)
Author:
cameron
Message:

UCD corrections and additional properties

Location:
icGREP/icgrep-devel/icgrep/UCD
Files:
26 edited

Legend:

Unmodified
Added
Removed
  • icGREP/icgrep-devel/icgrep/UCD/Blocks.h

    r5656 r5660  
    99 */
    1010
     11#include "PropertyAliases.h"
    1112#include "PropertyObjects.h"
    1213#include "PropertyValueAliases.h"
  • icGREP/icgrep-devel/icgrep/UCD/CompositionExclusions.h

    r5657 r5660  
    1010
    1111#include "PropertyAliases.h"
     12#include "PropertyObjects.h"
     13#include "PropertyValueAliases.h"
    1214#include "unicode_set.h"
    13 #include <vector>
    1415
    1516namespace UCD {
     
    3940}
    4041
    41 
    4242#endif
  • icGREP/icgrep-devel/icgrep/UCD/DerivedAge.h

    r5656 r5660  
    99 */
    1010
     11#include "PropertyAliases.h"
    1112#include "PropertyObjects.h"
    1213#include "PropertyValueAliases.h"
  • icGREP/icgrep-devel/icgrep/UCD/DerivedBidiClass.h

    r5656 r5660  
    99 */
    1010
     11#include "PropertyAliases.h"
    1112#include "PropertyObjects.h"
    1213#include "PropertyValueAliases.h"
  • icGREP/icgrep-devel/icgrep/UCD/DerivedBinaryProperties.h

    r5656 r5660  
    1010
    1111#include "PropertyAliases.h"
     12#include "PropertyObjects.h"
     13#include "PropertyValueAliases.h"
    1214#include "unicode_set.h"
    13 #include <vector>
    1415
    1516namespace UCD {
  • icGREP/icgrep-devel/icgrep/UCD/DerivedCombiningClass.h

    r5656 r5660  
    99 */
    1010
     11#include "PropertyAliases.h"
    1112#include "PropertyObjects.h"
    1213#include "PropertyValueAliases.h"
  • icGREP/icgrep-devel/icgrep/UCD/DerivedCoreProperties.h

    r5656 r5660  
    1010
    1111#include "PropertyAliases.h"
     12#include "PropertyObjects.h"
     13#include "PropertyValueAliases.h"
    1214#include "unicode_set.h"
    13 #include <vector>
    1415
    1516namespace UCD {
  • icGREP/icgrep-devel/icgrep/UCD/DerivedDecompositionType.h

    r5656 r5660  
    99 */
    1010
     11#include "PropertyAliases.h"
    1112#include "PropertyObjects.h"
    1213#include "PropertyValueAliases.h"
  • icGREP/icgrep-devel/icgrep/UCD/DerivedGeneralCategory.h

    r5656 r5660  
    99 */
    1010
     11#include "PropertyAliases.h"
    1112#include "PropertyObjects.h"
    1213#include "PropertyValueAliases.h"
  • icGREP/icgrep-devel/icgrep/UCD/DerivedJoiningGroup.h

    r5656 r5660  
    99 */
    1010
     11#include "PropertyAliases.h"
    1112#include "PropertyObjects.h"
    1213#include "PropertyValueAliases.h"
  • icGREP/icgrep-devel/icgrep/UCD/DerivedJoiningType.h

    r5656 r5660  
    99 */
    1010
     11#include "PropertyAliases.h"
    1112#include "PropertyObjects.h"
    1213#include "PropertyValueAliases.h"
  • icGREP/icgrep-devel/icgrep/UCD/DerivedNormalizationProps.h

    r5656 r5660  
    1010
    1111#include "PropertyAliases.h"
     12#include "PropertyObjects.h"
     13#include "PropertyValueAliases.h"
    1214#include "unicode_set.h"
    13 #include <vector>
    1415
    1516namespace UCD {
     
    334335        static BinaryPropertyObject property_object{Comp_Ex, codepoint_set};
    335336    }
    336     namespace FC_NFKC_ns {
    337         /** Code Point Ranges for FC_NFKC
    338         [037a, 037a], [03d2, 03d4], [03f2, 03f2], [03f9, 03f9],
    339         [1d2c, 1d2e], [1d30, 1d3a], [1d3c, 1d42], [20a8, 20a8],
    340         [2102, 2103], [2107, 2107], [2109, 2109], [210b, 210d],
    341         [2110, 2112], [2115, 2116], [2119, 211d], [2120, 2122],
    342         [2124, 2124], [2128, 2128], [212c, 212d], [2130, 2131],
    343         [2133, 2133], [213b, 213b], [213e, 213f], [2145, 2145],
    344         [2c7d, 2c7d], [3250, 3250], [32cc, 32cc], [32ce, 32cf],
    345         [3371, 3371], [3373, 3373], [3375, 3375], [337a, 337a],
    346         [3380, 3387], [338a, 338c], [3390, 3394], [33a9, 33ac],
    347         [33b4, 33c1], [33c3, 33c3], [33c6, 33c9], [33cb, 33cb],
    348         [33cd, 33ce], [33d7, 33d7], [33d9, 33da], [33dc, 33df],
    349         [a7f8, a7f8], [1d400, 1d419], [1d434, 1d44d], [1d468, 1d481],
    350         [1d49c, 1d49c], [1d49e, 1d49f], [1d4a2, 1d4a2], [1d4a5, 1d4a6],
    351         [1d4a9, 1d4ac], [1d4ae, 1d4b5], [1d4d0, 1d4e9], [1d504, 1d505],
    352         [1d507, 1d50a], [1d50d, 1d514], [1d516, 1d51c], [1d538, 1d539],
    353         [1d53b, 1d53e], [1d540, 1d544], [1d546, 1d546], [1d54a, 1d550],
    354         [1d56c, 1d585], [1d5a0, 1d5b9], [1d5d4, 1d5ed], [1d608, 1d621],
    355         [1d63c, 1d655], [1d670, 1d689], [1d6a8, 1d6c0], [1d6d3, 1d6d3],
    356         [1d6e2, 1d6fa], [1d70d, 1d70d], [1d71c, 1d734], [1d747, 1d747],
    357         [1d756, 1d76e], [1d781, 1d781], [1d790, 1d7a8], [1d7bb, 1d7bb],
    358         [1d7ca, 1d7ca], [1f110, 1f12e], [1f130, 1f14f], [1f16a, 1f16b],
    359         [1f190, 1f190]**/
    360         const UnicodeSet codepoint_set
    361             {{{Empty, 27}, {Mixed, 1}, {Empty, 2}, {Mixed, 2}, {Empty, 201},
    362               {Mixed, 2}, {Empty, 26}, {Mixed, 1}, {Empty, 2}, {Mixed, 3},
    363               {Empty, 88}, {Mixed, 1}, {Empty, 46}, {Mixed, 1}, {Empty, 3},
    364               {Mixed, 1}, {Empty, 4}, {Mixed, 4}, {Empty, 928}, {Mixed, 1},
    365               {Empty, 2400}, {Mixed, 31}, {Empty, 201}, {Mixed, 5},
    366               {Empty, 30835}},
    367              {0x04000000, 0x001c0000, 0x02040000, 0xf7ff7000, 0x00000007,
    368               0x00000100, 0x3e673a8c, 0xc80b3117, 0x00000020, 0x20000000,
    369               0x00010000, 0x0000d000, 0x042a0000, 0x001f1cff, 0xfff01e00,
    370               0xf6806bcb, 0x01000000, 0x03ffffff, 0xfff00000, 0x00003fff,
    371               0xffffff00, 0xd0000003, 0x003fde64, 0xffff0000, 0x000003ff,
    372               0x1fdfe7b0, 0x7b000000, 0x0001fc5f, 0xfffff000, 0x0000003f,
    373               0x03ffffff, 0xfff00000, 0x00003fff, 0xffffff00, 0xf0000003,
    374               0x003fffff, 0xffff0000, 0x000003ff, 0xffffff00, 0x00080001,
    375               0x07fffffc, 0xf0002000, 0x001fffff, 0xffc00080, 0x00007fff,
    376               0xffff0002, 0x080001ff, 0x00000400, 0xffff0000, 0xffff7fff,
    377               0x0000ffff, 0x00000c00, 0x00010000}};
    378         static BinaryPropertyObject property_object{FC_NFKC, codepoint_set};
     337  namespace NFC_QC_ns {
     338    const unsigned independent_prop_values = 3;
     339    /** Code Point Ranges for Y
     340    [0000, 02ff], [0305, 0305], [030d, 030e], [0310, 0310], [0312, 0312],
     341    [0315, 031a], [031c, 0322], [0329, 032c], [032f, 032f], [0332, 0337],
     342    [0339, 033f], [0346, 0373], [0375, 037d], [037f, 0386], [0388, 0652],
     343    [0656, 093b], [093d, 0957], [0960, 09bd], [09bf, 09d6], [09d8, 09db],
     344    [09de, 09de], [09e0, 0a32], [0a34, 0a35], [0a37, 0a58], [0a5c, 0a5d],
     345    [0a5f, 0b3d], [0b3f, 0b55], [0b58, 0b5b], [0b5e, 0bbd], [0bbf, 0bd6],
     346    [0bd8, 0c55], [0c57, 0cc1], [0cc3, 0cd4], [0cd7, 0d3d], [0d3f, 0d56],
     347    [0d58, 0dc9], [0dcb, 0dce], [0dd0, 0dde], [0de0, 0f42], [0f44, 0f4c],
     348    [0f4e, 0f51], [0f53, 0f56], [0f58, 0f5b], [0f5d, 0f68], [0f6a, 0f72],
     349    [0f74, 0f74], [0f77, 0f77], [0f79, 0f80], [0f82, 0f92], [0f94, 0f9c],
     350    [0f9e, 0fa1], [0fa3, 0fa6], [0fa8, 0fab], [0fad, 0fb8], [0fba, 102d],
     351    [102f, 1160], [1176, 11a7], [11c3, 1b34], [1b36, 1f70], [1f72, 1f72],
     352    [1f74, 1f74], [1f76, 1f76], [1f78, 1f78], [1f7a, 1f7a], [1f7c, 1f7c],
     353    [1f7e, 1fba], [1fbc, 1fbd], [1fbf, 1fc8], [1fca, 1fca], [1fcc, 1fd2],
     354    [1fd4, 1fda], [1fdc, 1fe2], [1fe4, 1fea], [1fec, 1fed], [1ff0, 1ff8],
     355    [1ffa, 1ffa], [1ffc, 1ffc], [1ffe, 1fff], [2002, 2125], [2127, 2129],
     356    [212c, 2328], [232b, 2adb], [2add, 3098], [309b, f8ff], [fa0e, fa0f],
     357    [fa11, fa11], [fa13, fa14], [fa1f, fa1f], [fa21, fa21], [fa23, fa24],
     358    [fa27, fa29], [fa6e, fa6f], [fada, fb1c], [fb1e, fb1e], [fb20, fb29],
     359    [fb37, fb37], [fb3d, fb3d], [fb3f, fb3f], [fb42, fb42], [fb45, fb45],
     360    [fb4f, 110b9], [110bb, 11126], [11128, 1133d], [1133f, 11356],
     361    [11358, 114af], [114b1, 114b9], [114bb, 114bc], [114be, 115ae],
     362    [115b0, 1d15d], [1d165, 1d1ba], [1d1c1, 2f7ff], [2fa1e, 10ffff]**/
     363    const UnicodeSet y_Set
     364        {{{Full, 24}, {Mixed, 5}, {Full, 21}, {Mixed, 1}, {Full, 22},
     365          {Mixed, 2}, {Full, 2}, {Mixed, 2}, {Full, 2}, {Mixed, 2},
     366          {Full, 6}, {Mixed, 2}, {Full, 2}, {Mixed, 2}, {Full, 3},
     367          {Mixed, 1}, {Full, 3}, {Mixed, 1}, {Full, 2}, {Mixed, 2},
     368          {Full, 3}, {Mixed, 1}, {Full, 11}, {Mixed, 4}, {Full, 3},
     369          {Mixed, 1}, {Full, 9}, {Mixed, 1}, {Full, 1}, {Mixed, 2},
     370          {Full, 74}, {Mixed, 1}, {Full, 33}, {Mixed, 1}, {Full, 1},
     371          {Mixed, 4}, {Full, 8}, {Mixed, 1}, {Full, 15}, {Mixed, 1},
     372          {Full, 60}, {Mixed, 1}, {Full, 45}, {Mixed, 1}, {Full, 1603},
     373          {Empty, 8}, {Mixed, 2}, {Empty, 1}, {Mixed, 1}, {Empty, 2},
     374          {Mixed, 1}, {Full, 1}, {Mixed, 3}, {Full, 170}, {Mixed, 1},
     375          {Full, 3}, {Mixed, 1}, {Full, 15}, {Mixed, 2}, {Full, 10},
     376          {Mixed, 1}, {Full, 7}, {Mixed, 1}, {Full, 1500}, {Mixed, 2},
     377          {Full, 1}, {Mixed, 2}, {Full, 2353}, {Empty, 16}, {Mixed, 1},
     378          {Full, 28719}},
     379         {0xf7e56020, 0xfefc9e07, 0xffffffc0, 0xbfefffff, 0xffffff7f,
     380          0xffc7ffff, 0xefffffff, 0x00ffffff, 0xbfffffff, 0x4f7fffff,
     381          0xffb7ffff, 0xb1ffffff, 0xbfffffff, 0xcf3fffff, 0xbfffffff,
     382          0xff7fffff, 0xffbfffff, 0xff9ffffb, 0xbfffffff, 0xff7fffff,
     383          0x7fff7bff, 0xef7bdff7, 0xfe97fdff, 0xdff7fffd, 0xfdffef7b,
     384          0xffffbfff, 0xffc00001, 0x000000ff, 0xfffffff8, 0xffdfffff,
     385          0xd555ffff, 0xb7ffffff, 0xf7f7f5ff, 0xd5ff37f7, 0xfffffffc,
     386          0xfffff3bf, 0xfffff9ff, 0xefffffff, 0xf9ffffff, 0x801ac000,
     387          0x0000039a, 0x0000c000, 0xfc000000, 0x5fffffff, 0xa08003ff,
     388          0xffff8024, 0xfbffffff, 0xffffff7f, 0xbfffffff, 0xff7fffff,
     389          0xdbfeffff, 0xffff7fff, 0x3fffffff, 0xffffffe0, 0x07ffffff,
     390          0xfffffffe, 0xc0000000}};
     391    /** Code Point Ranges for N
     392    [0340, 0341], [0343, 0344], [0374, 0374], [037e, 037e], [0387, 0387],
     393    [0958, 095f], [09dc, 09dd], [09df, 09df], [0a33, 0a33], [0a36, 0a36],
     394    [0a59, 0a5b], [0a5e, 0a5e], [0b5c, 0b5d], [0f43, 0f43], [0f4d, 0f4d],
     395    [0f52, 0f52], [0f57, 0f57], [0f5c, 0f5c], [0f69, 0f69], [0f73, 0f73],
     396    [0f75, 0f76], [0f78, 0f78], [0f81, 0f81], [0f93, 0f93], [0f9d, 0f9d],
     397    [0fa2, 0fa2], [0fa7, 0fa7], [0fac, 0fac], [0fb9, 0fb9], [1f71, 1f71],
     398    [1f73, 1f73], [1f75, 1f75], [1f77, 1f77], [1f79, 1f79], [1f7b, 1f7b],
     399    [1f7d, 1f7d], [1fbb, 1fbb], [1fbe, 1fbe], [1fc9, 1fc9], [1fcb, 1fcb],
     400    [1fd3, 1fd3], [1fdb, 1fdb], [1fe3, 1fe3], [1feb, 1feb], [1fee, 1fef],
     401    [1ff9, 1ff9], [1ffb, 1ffb], [1ffd, 1ffd], [2000, 2001], [2126, 2126],
     402    [212a, 212b], [2329, 232a], [2adc, 2adc], [f900, fa0d], [fa10, fa10],
     403    [fa12, fa12], [fa15, fa1e], [fa20, fa20], [fa22, fa22], [fa25, fa26],
     404    [fa2a, fa6d], [fa70, fad9], [fb1d, fb1d], [fb1f, fb1f], [fb2a, fb36],
     405    [fb38, fb3c], [fb3e, fb3e], [fb40, fb41], [fb43, fb44], [fb46, fb4e],
     406    [1d15e, 1d164], [1d1bb, 1d1c0], [2f800, 2fa1d]**/
     407    const UnicodeSet n_Set
     408        {{{Empty, 26}, {Mixed, 3}, {Empty, 45}, {Mixed, 1}, {Empty, 3},
     409          {Mixed, 1}, {Empty, 2}, {Mixed, 2}, {Empty, 7}, {Mixed, 1},
     410          {Empty, 31}, {Mixed, 4}, {Empty, 125}, {Mixed, 1}, {Empty, 1},
     411          {Mixed, 4}, {Empty, 8}, {Mixed, 1}, {Empty, 15}, {Mixed, 1},
     412          {Empty, 60}, {Mixed, 1}, {Empty, 1649}, {Full, 8}, {Mixed, 2},
     413          {Full, 1}, {Mixed, 1}, {Full, 2}, {Mixed, 1}, {Empty, 1},
     414          {Mixed, 3}, {Empty, 1711}, {Mixed, 2}, {Empty, 1}, {Mixed, 2},
     415          {Empty, 2353}, {Full, 16}, {Mixed, 1}, {Empty, 28719}},
     416         {0x0000001b, 0x40100000, 0x00000080, 0xff000000, 0xb0000000,
     417          0x00480000, 0x4e000000, 0x30000000, 0x10842008, 0x01680200,
     418          0x20080002, 0x02001084, 0x2aaa0000, 0x48000000, 0x08080a00,
     419          0x2a00c808, 0x00000003, 0x00000c40, 0x00000600, 0x10000000,
     420          0x7fe53fff, 0xfffffc65, 0xffff3fff, 0x03ffffff, 0xa0000000,
     421          0x5f7ffc00, 0x00007fdb, 0xc0000000, 0x0000001f, 0xf8000000,
     422          0x00000001, 0x3fffffff}};
     423    /** Code Point Ranges for M
     424    [0300, 0304], [0306, 030c], [030f, 030f], [0311, 0311], [0313, 0314],
     425    [031b, 031b], [0323, 0328], [032d, 032e], [0330, 0331], [0338, 0338],
     426    [0342, 0342], [0345, 0345], [0653, 0655], [093c, 093c], [09be, 09be],
     427    [09d7, 09d7], [0b3e, 0b3e], [0b56, 0b57], [0bbe, 0bbe], [0bd7, 0bd7],
     428    [0c56, 0c56], [0cc2, 0cc2], [0cd5, 0cd6], [0d3e, 0d3e], [0d57, 0d57],
     429    [0dca, 0dca], [0dcf, 0dcf], [0ddf, 0ddf], [102e, 102e], [1161, 1175],
     430    [11a8, 11c2], [1b35, 1b35], [3099, 309a], [110ba, 110ba],
     431    [11127, 11127], [1133e, 1133e], [11357, 11357], [114b0, 114b0],
     432    [114ba, 114ba], [114bd, 114bd], [115af, 115af]**/
     433    const UnicodeSet m_Set
     434        {{{Empty, 24}, {Mixed, 3}, {Empty, 23}, {Mixed, 1}, {Empty, 22},
     435          {Mixed, 1}, {Empty, 3}, {Mixed, 2}, {Empty, 10}, {Mixed, 2},
     436          {Empty, 2}, {Mixed, 2}, {Empty, 3}, {Mixed, 1}, {Empty, 3},
     437          {Mixed, 1}, {Empty, 2}, {Mixed, 2}, {Empty, 3}, {Mixed, 1},
     438          {Empty, 18}, {Mixed, 1}, {Empty, 9}, {Mixed, 1}, {Empty, 1},
     439          {Mixed, 2}, {Empty, 74}, {Mixed, 1}, {Empty, 170}, {Mixed, 1},
     440          {Empty, 1792}, {Mixed, 1}, {Empty, 3}, {Mixed, 1}, {Empty, 15},
     441          {Mixed, 2}, {Empty, 10}, {Mixed, 1}, {Empty, 7}, {Mixed, 1},
     442          {Empty, 32594}},
     443         {0x081a9fdf, 0x010361f8, 0x00000024, 0x00380000, 0x10000000,
     444          0x40000000, 0x00800000, 0x40000000, 0x00c00000, 0x40000000,
     445          0x00800000, 0x00400000, 0x00600004, 0x40000000, 0x00800000,
     446          0x80008400, 0x00004000, 0x003ffffe, 0xffffff00, 0x00000007,
     447          0x00200000, 0x06000000, 0x04000000, 0x00000080, 0x40000000,
     448          0x00800000, 0x24010000, 0x00008000}};
     449    static EnumeratedPropertyObject property_object
     450        {NFC_QC,
     451         NFC_QC_ns::independent_prop_values,
     452         NFC_QC_ns::enum_names,
     453         NFC_QC_ns::value_names,
     454         NFC_QC_ns::aliases_only_map,
     455         {&y_Set, &n_Set, &m_Set
     456         }};
    379457    }
    380     namespace NFC_QC_ns {
    381         /** Code Point Ranges for NFC_QC
    382         [0300, 0304], [0306, 030c], [030f, 030f], [0311, 0311],
    383         [0313, 0314], [031b, 031b], [0323, 0328], [032d, 032e],
    384         [0330, 0331], [0338, 0338], [0340, 0345], [0374, 0374],
    385         [037e, 037e], [0387, 0387], [0653, 0655], [093c, 093c],
    386         [0958, 095f], [09be, 09be], [09d7, 09d7], [09dc, 09dd],
    387         [09df, 09df], [0a33, 0a33], [0a36, 0a36], [0a59, 0a5b],
    388         [0a5e, 0a5e], [0b3e, 0b3e], [0b56, 0b57], [0b5c, 0b5d],
    389         [0bbe, 0bbe], [0bd7, 0bd7], [0c56, 0c56], [0cc2, 0cc2],
    390         [0cd5, 0cd6], [0d3e, 0d3e], [0d57, 0d57], [0dca, 0dca],
    391         [0dcf, 0dcf], [0ddf, 0ddf], [0f43, 0f43], [0f4d, 0f4d],
    392         [0f52, 0f52], [0f57, 0f57], [0f5c, 0f5c], [0f69, 0f69],
    393         [0f73, 0f73], [0f75, 0f76], [0f78, 0f78], [0f81, 0f81],
    394         [0f93, 0f93], [0f9d, 0f9d], [0fa2, 0fa2], [0fa7, 0fa7],
    395         [0fac, 0fac], [0fb9, 0fb9], [102e, 102e], [1161, 1175],
    396         [11a8, 11c2], [1b35, 1b35], [1f71, 1f71], [1f73, 1f73],
    397         [1f75, 1f75], [1f77, 1f77], [1f79, 1f79], [1f7b, 1f7b],
    398         [1f7d, 1f7d], [1fbb, 1fbb], [1fbe, 1fbe], [1fc9, 1fc9],
    399         [1fcb, 1fcb], [1fd3, 1fd3], [1fdb, 1fdb], [1fe3, 1fe3],
    400         [1feb, 1feb], [1fee, 1fef], [1ff9, 1ff9], [1ffb, 1ffb],
    401         [1ffd, 1ffd], [2000, 2001], [2126, 2126], [212a, 212b],
    402         [2329, 232a], [2adc, 2adc], [3099, 309a], [f900, fa0d],
    403         [fa10, fa10], [fa12, fa12], [fa15, fa1e], [fa20, fa20],
    404         [fa22, fa22], [fa25, fa26], [fa2a, fa6d], [fa70, fad9],
    405         [fb1d, fb1d], [fb1f, fb1f], [fb2a, fb36], [fb38, fb3c],
    406         [fb3e, fb3e], [fb40, fb41], [fb43, fb44], [fb46, fb4e],
    407         [110ba, 110ba], [11127, 11127], [1133e, 1133e], [11357, 11357],
    408         [114b0, 114b0], [114ba, 114ba], [114bd, 114bd], [115af, 115af],
    409         [1d15e, 1d164], [1d1bb, 1d1c0], [2f800, 2fa1d]**/
    410         const UnicodeSet codepoint_set
    411             {{{Empty, 24}, {Mixed, 5}, {Empty, 21}, {Mixed, 1}, {Empty, 22},
    412               {Mixed, 2}, {Empty, 2}, {Mixed, 2}, {Empty, 2}, {Mixed, 2},
    413               {Empty, 6}, {Mixed, 2}, {Empty, 2}, {Mixed, 2}, {Empty, 3},
    414               {Mixed, 1}, {Empty, 3}, {Mixed, 1}, {Empty, 2}, {Mixed, 2},
    415               {Empty, 3}, {Mixed, 1}, {Empty, 11}, {Mixed, 4}, {Empty, 3},
    416               {Mixed, 1}, {Empty, 9}, {Mixed, 1}, {Empty, 1}, {Mixed, 2},
    417               {Empty, 74}, {Mixed, 1}, {Empty, 33}, {Mixed, 1}, {Empty, 1},
    418               {Mixed, 4}, {Empty, 8}, {Mixed, 1}, {Empty, 15}, {Mixed, 1},
    419               {Empty, 60}, {Mixed, 1}, {Empty, 45}, {Mixed, 1},
    420               {Empty, 1603}, {Full, 8}, {Mixed, 2}, {Full, 1}, {Mixed, 1},
    421               {Full, 2}, {Mixed, 1}, {Empty, 1}, {Mixed, 3}, {Empty, 170},
    422               {Mixed, 1}, {Empty, 3}, {Mixed, 1}, {Empty, 15}, {Mixed, 2},
    423               {Empty, 10}, {Mixed, 1}, {Empty, 7}, {Mixed, 1},
    424               {Empty, 1500}, {Mixed, 2}, {Empty, 1}, {Mixed, 2},
    425               {Empty, 2353}, {Full, 16}, {Mixed, 1}, {Empty, 28719}},
    426              {0x081a9fdf, 0x010361f8, 0x0000003f, 0x40100000, 0x00000080,
    427               0x00380000, 0x10000000, 0xff000000, 0x40000000, 0xb0800000,
    428               0x00480000, 0x4e000000, 0x40000000, 0x30c00000, 0x40000000,
    429               0x00800000, 0x00400000, 0x00600004, 0x40000000, 0x00800000,
    430               0x80008400, 0x10842008, 0x01680200, 0x20080002, 0x02001084,
    431               0x00004000, 0x003ffffe, 0xffffff00, 0x00000007, 0x00200000,
    432               0x2aaa0000, 0x48000000, 0x08080a00, 0x2a00c808, 0x00000003,
    433               0x00000c40, 0x00000600, 0x10000000, 0x06000000, 0x7fe53fff,
    434               0xfffffc65, 0xffff3fff, 0x03ffffff, 0xa0000000, 0x5f7ffc00,
    435               0x00007fdb, 0x04000000, 0x00000080, 0x40000000, 0x00800000,
    436               0x24010000, 0x00008000, 0xc0000000, 0x0000001f, 0xf8000000,
    437               0x00000001, 0x3fffffff}};
    438         static BinaryPropertyObject property_object{NFC_QC, codepoint_set};
     458  namespace NFD_QC_ns {
     459    const unsigned independent_prop_values = 2;
     460    /** Code Point Ranges for Y
     461    [0000, 00bf], [00c6, 00c6], [00d0, 00d0], [00d7, 00d8], [00de, 00df],
     462    [00e6, 00e6], [00f0, 00f0], [00f7, 00f8], [00fe, 00fe], [0110, 0111],
     463    [0126, 0127], [0131, 0133], [0138, 0138], [013f, 0142], [0149, 014b],
     464    [0152, 0153], [0166, 0167], [017f, 019f], [01a2, 01ae], [01b1, 01cc],
     465    [01dd, 01dd], [01e4, 01e5], [01f1, 01f3], [01f6, 01f7], [021c, 021d],
     466    [0220, 0225], [0234, 033f], [0342, 0342], [0345, 0373], [0375, 037d],
     467    [037f, 0384], [038b, 038b], [038d, 038d], [0391, 03a9], [03b1, 03c9],
     468    [03cf, 03d2], [03d5, 03ff], [0402, 0402], [0404, 0406], [0408, 040b],
     469    [040f, 0418], [041a, 0438], [043a, 044f], [0452, 0452], [0454, 0456],
     470    [0458, 045b], [045f, 0475], [0478, 04c0], [04c3, 04cf], [04d4, 04d5],
     471    [04d8, 04d9], [04e0, 04e1], [04e8, 04e9], [04f6, 04f7], [04fa, 0621],
     472    [0627, 06bf], [06c1, 06c1], [06c3, 06d2], [06d4, 0928], [092a, 0930],
     473    [0932, 0933], [0935, 0957], [0960, 09ca], [09cd, 09db], [09de, 09de],
     474    [09e0, 0a32], [0a34, 0a35], [0a37, 0a58], [0a5c, 0a5d], [0a5f, 0b47],
     475    [0b49, 0b4a], [0b4d, 0b5b], [0b5e, 0b93], [0b95, 0bc9], [0bcd, 0c47],
     476    [0c49, 0cbf], [0cc1, 0cc6], [0cc9, 0cc9], [0ccc, 0d49], [0d4d, 0dd9],
     477    [0ddb, 0ddb], [0ddf, 0f42], [0f44, 0f4c], [0f4e, 0f51], [0f53, 0f56],
     478    [0f58, 0f5b], [0f5d, 0f68], [0f6a, 0f72], [0f74, 0f74], [0f77, 0f77],
     479    [0f79, 0f80], [0f82, 0f92], [0f94, 0f9c], [0f9e, 0fa1], [0fa3, 0fa6],
     480    [0fa8, 0fab], [0fad, 0fb8], [0fba, 1025], [1027, 1b05], [1b07, 1b07],
     481    [1b09, 1b09], [1b0b, 1b0b], [1b0d, 1b0d], [1b0f, 1b11], [1b13, 1b3a],
     482    [1b3c, 1b3c], [1b3e, 1b3f], [1b42, 1b42], [1b44, 1dff], [1e9a, 1e9a],
     483    [1e9c, 1e9f], [1efa, 1eff], [1f16, 1f17], [1f1e, 1f1f], [1f46, 1f47],
     484    [1f4e, 1f4f], [1f58, 1f58], [1f5a, 1f5a], [1f5c, 1f5c], [1f5e, 1f5e],
     485    [1f7e, 1f7f], [1fb5, 1fb5], [1fbd, 1fbd], [1fbf, 1fc0], [1fc5, 1fc5],
     486    [1fd4, 1fd5], [1fdc, 1fdc], [1ff0, 1ff1], [1ff5, 1ff5], [1ffe, 1fff],
     487    [2002, 2125], [2127, 2129], [212c, 2199], [219c, 21ad], [21af, 21cc],
     488    [21d0, 2203], [2205, 2208], [220a, 220b], [220d, 2223], [2225, 2225],
     489    [2227, 2240], [2242, 2243], [2245, 2246], [2248, 2248], [224a, 225f],
     490    [2261, 2261], [2263, 226c], [2272, 2273], [2276, 2277], [227a, 227f],
     491    [2282, 2283], [2286, 2287], [228a, 22ab], [22b0, 22df], [22e4, 22e9],
     492    [22ee, 2328], [232b, 2adb], [2add, 304b], [304d, 304d], [304f, 304f],
     493    [3051, 3051], [3053, 3053], [3055, 3055], [3057, 3057], [3059, 3059],
     494    [305b, 305b], [305d, 305d], [305f, 305f], [3061, 3061], [3063, 3064],
     495    [3066, 3066], [3068, 3068], [306a, 306f], [3072, 3072], [3075, 3075],
     496    [3078, 3078], [307b, 307b], [307e, 3093], [3095, 309d], [309f, 30ab],
     497    [30ad, 30ad], [30af, 30af], [30b1, 30b1], [30b3, 30b3], [30b5, 30b5],
     498    [30b7, 30b7], [30b9, 30b9], [30bb, 30bb], [30bd, 30bd], [30bf, 30bf],
     499    [30c1, 30c1], [30c3, 30c4], [30c6, 30c6], [30c8, 30c8], [30ca, 30cf],
     500    [30d2, 30d2], [30d5, 30d5], [30d8, 30d8], [30db, 30db], [30de, 30f3],
     501    [30f5, 30f6], [30fb, 30fd], [30ff, abff], [d7a4, f8ff], [fa0e, fa0f],
     502    [fa11, fa11], [fa13, fa14], [fa1f, fa1f], [fa21, fa21], [fa23, fa24],
     503    [fa27, fa29], [fa6e, fa6f], [fada, fb1c], [fb1e, fb1e], [fb20, fb29],
     504    [fb37, fb37], [fb3d, fb3d], [fb3f, fb3f], [fb42, fb42], [fb45, fb45],
     505    [fb4f, 11099], [1109b, 1109b], [1109d, 110aa], [110ac, 1112d],
     506    [11130, 1134a], [1134d, 114ba], [114bd, 114bd], [114bf, 115b9],
     507    [115bc, 1d15d], [1d165, 1d1ba], [1d1c1, 2f7ff], [2fa1e, 10ffff]**/
     508    const UnicodeSet y_Set
     509        {{{Full, 6}, {Mixed, 6}, {Full, 1}, {Mixed, 5}, {Full, 8},
     510          {Mixed, 5}, {Full, 1}, {Mixed, 4}, {Full, 2}, {Mixed, 2},
     511          {Full, 9}, {Mixed, 1}, {Full, 4}, {Mixed, 1}, {Full, 18},
     512          {Mixed, 2}, {Full, 3}, {Mixed, 1}, {Full, 2}, {Mixed, 2},
     513          {Full, 7}, {Mixed, 1}, {Full, 1}, {Mixed, 1}, {Full, 1},
     514          {Mixed, 1}, {Full, 3}, {Mixed, 1}, {Full, 3}, {Mixed, 1},
     515          {Full, 3}, {Mixed, 1}, {Full, 3}, {Mixed, 1}, {Full, 11},
     516          {Mixed, 4}, {Full, 3}, {Mixed, 1}, {Full, 86}, {Mixed, 3},
     517          {Full, 21}, {Empty, 4}, {Mixed, 1}, {Empty, 2}, {Mixed, 2},
     518          {Empty, 1}, {Mixed, 2}, {Empty, 1}, {Mixed, 4}, {Full, 8},
     519          {Mixed, 1}, {Full, 2}, {Mixed, 3}, {Full, 1}, {Mixed, 6},
     520          {Full, 1}, {Mixed, 1}, {Full, 1}, {Mixed, 1}, {Full, 60},
     521          {Mixed, 1}, {Full, 43}, {Mixed, 6}, {Full, 984}, {Empty, 349},
     522          {Mixed, 1}, {Full, 266}, {Empty, 8}, {Mixed, 2}, {Empty, 1},
     523          {Mixed, 1}, {Empty, 2}, {Mixed, 1}, {Full, 1}, {Mixed, 3},
     524          {Full, 169}, {Mixed, 2}, {Full, 3}, {Mixed, 1}, {Full, 16},
     525          {Mixed, 1}, {Full, 10}, {Mixed, 1}, {Full, 7}, {Mixed, 1},
     526          {Full, 1500}, {Mixed, 2}, {Full, 1}, {Mixed, 2}, {Full, 2353},
     527          {Empty, 16}, {Mixed, 1}, {Full, 28719}},
     528         {0xc1810040, 0x41810040, 0x00030000, 0x810e00c0, 0x000c0e07,
     529          0x800000c0, 0xfffe7ffc, 0x20001fff, 0x00ce0030, 0x30000000,
     530          0xfff0003f, 0xffffffe4, 0xbfefffff, 0xfffe281f, 0xfffe03ff,
     531          0xffe783ff, 0xfdff8f74, 0xfdffffff, 0x8f74ffff, 0xff3fffff,
     532          0x0330fff9, 0xfcc00303, 0xffffff83, 0xfff7fffa, 0xffedfdff,
     533          0x00ffffff, 0x4fffe7ff, 0xffb7ffff, 0xb1ffffff, 0xcfffe6ff,
     534          0xffefffff, 0xffffe3ff, 0xfffffeff, 0xfffff27e, 0xffffe3ff,
     535          0x8bffffff, 0xef7bdff7, 0xfe97fdff, 0xdff7fffd, 0xfdffef7b,
     536          0xffffffbf, 0xfffbaabf, 0xd7ffffff, 0xfffffff4, 0xf4000000,
     537          0xfc000000, 0xc0c00000, 0x5500c0c0, 0xc0000000, 0xa0200000,
     538          0x10300021, 0xc0230000, 0xfffffffc, 0xfffff3bf, 0xf3ffffff,
     539          0xffffbfff, 0xffff1fff, 0xffffedef, 0xffffffaf, 0xfffffd6d,
     540          0xfccc1ffa, 0xfffffccc, 0xffff0fff, 0xffffc3f0, 0xfffff9ff,
     541          0xefffffff, 0xaaaaafff, 0xc924fd5a, 0xbfefffff, 0xaaaaafff,
     542          0xc924fd5a, 0xb86fffff, 0xfffffff0, 0x801ac000, 0x0000039a,
     543          0x0000c000, 0xfc000000, 0x5fffffff, 0xa08003ff, 0xffff8024,
     544          0xebffffff, 0xfffff7ff, 0xffff3fff, 0xffffe7ff, 0xa7ffffff,
     545          0xf3ffffff, 0x3fffffff, 0xffffffe0, 0x07ffffff, 0xfffffffe,
     546          0xc0000000}};
     547    /** Code Point Ranges for N
     548    [00c0, 00c5], [00c7, 00cf], [00d1, 00d6], [00d9, 00dd], [00e0, 00e5],
     549    [00e7, 00ef], [00f1, 00f6], [00f9, 00fd], [00ff, 010f], [0112, 0125],
     550    [0128, 0130], [0134, 0137], [0139, 013e], [0143, 0148], [014c, 0151],
     551    [0154, 0165], [0168, 017e], [01a0, 01a1], [01af, 01b0], [01cd, 01dc],
     552    [01de, 01e3], [01e6, 01f0], [01f4, 01f5], [01f8, 021b], [021e, 021f],
     553    [0226, 0233], [0340, 0341], [0343, 0344], [0374, 0374], [037e, 037e],
     554    [0385, 038a], [038c, 038c], [038e, 0390], [03aa, 03b0], [03ca, 03ce],
     555    [03d3, 03d4], [0400, 0401], [0403, 0403], [0407, 0407], [040c, 040e],
     556    [0419, 0419], [0439, 0439], [0450, 0451], [0453, 0453], [0457, 0457],
     557    [045c, 045e], [0476, 0477], [04c1, 04c2], [04d0, 04d3], [04d6, 04d7],
     558    [04da, 04df], [04e2, 04e7], [04ea, 04f5], [04f8, 04f9], [0622, 0626],
     559    [06c0, 06c0], [06c2, 06c2], [06d3, 06d3], [0929, 0929], [0931, 0931],
     560    [0934, 0934], [0958, 095f], [09cb, 09cc], [09dc, 09dd], [09df, 09df],
     561    [0a33, 0a33], [0a36, 0a36], [0a59, 0a5b], [0a5e, 0a5e], [0b48, 0b48],
     562    [0b4b, 0b4c], [0b5c, 0b5d], [0b94, 0b94], [0bca, 0bcc], [0c48, 0c48],
     563    [0cc0, 0cc0], [0cc7, 0cc8], [0cca, 0ccb], [0d4a, 0d4c], [0dda, 0dda],
     564    [0ddc, 0dde], [0f43, 0f43], [0f4d, 0f4d], [0f52, 0f52], [0f57, 0f57],
     565    [0f5c, 0f5c], [0f69, 0f69], [0f73, 0f73], [0f75, 0f76], [0f78, 0f78],
     566    [0f81, 0f81], [0f93, 0f93], [0f9d, 0f9d], [0fa2, 0fa2], [0fa7, 0fa7],
     567    [0fac, 0fac], [0fb9, 0fb9], [1026, 1026], [1b06, 1b06], [1b08, 1b08],
     568    [1b0a, 1b0a], [1b0c, 1b0c], [1b0e, 1b0e], [1b12, 1b12], [1b3b, 1b3b],
     569    [1b3d, 1b3d], [1b40, 1b41], [1b43, 1b43], [1e00, 1e99], [1e9b, 1e9b],
     570    [1ea0, 1ef9], [1f00, 1f15], [1f18, 1f1d], [1f20, 1f45], [1f48, 1f4d],
     571    [1f50, 1f57], [1f59, 1f59], [1f5b, 1f5b], [1f5d, 1f5d], [1f5f, 1f7d],
     572    [1f80, 1fb4], [1fb6, 1fbc], [1fbe, 1fbe], [1fc1, 1fc4], [1fc6, 1fd3],
     573    [1fd6, 1fdb], [1fdd, 1fef], [1ff2, 1ff4], [1ff6, 1ffd], [2000, 2001],
     574    [2126, 2126], [212a, 212b], [219a, 219b], [21ae, 21ae], [21cd, 21cf],
     575    [2204, 2204], [2209, 2209], [220c, 220c], [2224, 2224], [2226, 2226],
     576    [2241, 2241], [2244, 2244], [2247, 2247], [2249, 2249], [2260, 2260],
     577    [2262, 2262], [226d, 2271], [2274, 2275], [2278, 2279], [2280, 2281],
     578    [2284, 2285], [2288, 2289], [22ac, 22af], [22e0, 22e3], [22ea, 22ed],
     579    [2329, 232a], [2adc, 2adc], [304c, 304c], [304e, 304e], [3050, 3050],
     580    [3052, 3052], [3054, 3054], [3056, 3056], [3058, 3058], [305a, 305a],
     581    [305c, 305c], [305e, 305e], [3060, 3060], [3062, 3062], [3065, 3065],
     582    [3067, 3067], [3069, 3069], [3070, 3071], [3073, 3074], [3076, 3077],
     583    [3079, 307a], [307c, 307d], [3094, 3094], [309e, 309e], [30ac, 30ac],
     584    [30ae, 30ae], [30b0, 30b0], [30b2, 30b2], [30b4, 30b4], [30b6, 30b6],
     585    [30b8, 30b8], [30ba, 30ba], [30bc, 30bc], [30be, 30be], [30c0, 30c0],
     586    [30c2, 30c2], [30c5, 30c5], [30c7, 30c7], [30c9, 30c9], [30d0, 30d1],
     587    [30d3, 30d4], [30d6, 30d7], [30d9, 30da], [30dc, 30dd], [30f4, 30f4],
     588    [30f7, 30fa], [30fe, 30fe], [ac00, d7a3], [f900, fa0d], [fa10, fa10],
     589    [fa12, fa12], [fa15, fa1e], [fa20, fa20], [fa22, fa22], [fa25, fa26],
     590    [fa2a, fa6d], [fa70, fad9], [fb1d, fb1d], [fb1f, fb1f], [fb2a, fb36],
     591    [fb38, fb3c], [fb3e, fb3e], [fb40, fb41], [fb43, fb44], [fb46, fb4e],
     592    [1109a, 1109a], [1109c, 1109c], [110ab, 110ab], [1112e, 1112f],
     593    [1134b, 1134c], [114bb, 114bc], [114be, 114be], [115ba, 115bb],
     594    [1d15e, 1d164], [1d1bb, 1d1c0], [2f800, 2fa1d]**/
     595    const UnicodeSet n_Set
     596        {{{Empty, 6}, {Mixed, 6}, {Empty, 1}, {Mixed, 5}, {Empty, 8},
     597          {Mixed, 5}, {Empty, 1}, {Mixed, 4}, {Empty, 2}, {Mixed, 2},
     598          {Empty, 9}, {Mixed, 1}, {Empty, 4}, {Mixed, 1}, {Empty, 18},
     599          {Mixed, 2}, {Empty, 3}, {Mixed, 1}, {Empty, 2}, {Mixed, 2},
     600          {Empty, 7}, {Mixed, 1}, {Empty, 1}, {Mixed, 1}, {Empty, 1},
     601          {Mixed, 1}, {Empty, 3}, {Mixed, 1}, {Empty, 3}, {Mixed, 1},
     602          {Empty, 3}, {Mixed, 1}, {Empty, 3}, {Mixed, 1}, {Empty, 11},
     603          {Mixed, 4}, {Empty, 3}, {Mixed, 1}, {Empty, 86}, {Mixed, 3},
     604          {Empty, 21}, {Full, 4}, {Mixed, 1}, {Full, 2}, {Mixed, 2},
     605          {Full, 1}, {Mixed, 2}, {Full, 1}, {Mixed, 4}, {Empty, 8},
     606          {Mixed, 1}, {Empty, 2}, {Mixed, 3}, {Empty, 1}, {Mixed, 6},
     607          {Empty, 1}, {Mixed, 1}, {Empty, 1}, {Mixed, 1}, {Empty, 60},
     608          {Mixed, 1}, {Empty, 43}, {Mixed, 6}, {Empty, 984}, {Full, 349},
     609          {Mixed, 1}, {Empty, 266}, {Full, 8}, {Mixed, 2}, {Full, 1},
     610          {Mixed, 1}, {Full, 2}, {Mixed, 1}, {Empty, 1}, {Mixed, 3},
     611          {Empty, 169}, {Mixed, 2}, {Empty, 3}, {Mixed, 1}, {Empty, 16},
     612          {Mixed, 1}, {Empty, 10}, {Mixed, 1}, {Empty, 7}, {Mixed, 1},
     613          {Empty, 1500}, {Mixed, 2}, {Empty, 1}, {Mixed, 2}, {Empty, 2353},
     614          {Full, 16}, {Mixed, 1}, {Empty, 28719}},
     615         {0x3e7effbf, 0xbe7effbf, 0xfffcffff, 0x7ef1ff3f, 0xfff3f1f8,
     616          0x7fffff3f, 0x00018003, 0xdfffe000, 0xff31ffcf, 0xcfffffff,
     617          0x000fffc0, 0x0000001b, 0x40100000, 0x0001d7e0, 0x0001fc00,
     618          0x00187c00, 0x0200708b, 0x02000000, 0x708b0000, 0x00c00000,
     619          0xfccf0006, 0x033ffcfc, 0x0000007c, 0x00080005, 0x00120200,
     620          0xff000000, 0xb0001800, 0x00480000, 0x4e000000, 0x30001900,
     621          0x00100000, 0x00001c00, 0x00000100, 0x00000d81, 0x00001c00,
     622          0x74000000, 0x10842008, 0x01680200, 0x20080002, 0x02001084,
     623          0x00000040, 0x00045540, 0x28000000, 0x0000000b, 0x0bffffff,
     624          0x03ffffff, 0x3f3fffff, 0xaaff3f3f, 0x3fffffff, 0x5fdfffff,
     625          0xefcfffde, 0x3fdcffff, 0x00000003, 0x00000c40, 0x0c000000,
     626          0x00004000, 0x0000e000, 0x00001210, 0x00000050, 0x00000292,
     627          0x0333e005, 0x00000333, 0x0000f000, 0x00003c0f, 0x00000600,
     628          0x10000000, 0x55555000, 0x36db02a5, 0x40100000, 0x55555000,
     629          0x36db02a5, 0x47900000, 0x0000000f, 0x7fe53fff, 0xfffffc65,
     630          0xffff3fff, 0x03ffffff, 0xa0000000, 0x5f7ffc00, 0x00007fdb,
     631          0x14000000, 0x00000800, 0x0000c000, 0x00001800, 0x58000000,
     632          0x0c000000, 0xc0000000, 0x0000001f, 0xf8000000, 0x00000001,
     633          0x3fffffff}};
     634    static EnumeratedPropertyObject property_object
     635        {NFD_QC,
     636         NFD_QC_ns::independent_prop_values,
     637         NFD_QC_ns::enum_names,
     638         NFD_QC_ns::value_names,
     639         NFD_QC_ns::aliases_only_map,
     640         {&y_Set, &n_Set
     641         }};
    439642    }
    440     namespace NFD_QC_ns {
    441         /** Code Point Ranges for NFD_QC
    442         [00c0, 00c5], [00c7, 00cf], [00d1, 00d6], [00d9, 00dd],
    443         [00e0, 00e5], [00e7, 00ef], [00f1, 00f6], [00f9, 00fd],
    444         [00ff, 010f], [0112, 0125], [0128, 0130], [0134, 0137],
    445         [0139, 013e], [0143, 0148], [014c, 0151], [0154, 0165],
    446         [0168, 017e], [01a0, 01a1], [01af, 01b0], [01cd, 01dc],
    447         [01de, 01e3], [01e6, 01f0], [01f4, 01f5], [01f8, 021b],
    448         [021e, 021f], [0226, 0233], [0340, 0341], [0343, 0344],
    449         [0374, 0374], [037e, 037e], [0385, 038a], [038c, 038c],
    450         [038e, 0390], [03aa, 03b0], [03ca, 03ce], [03d3, 03d4],
    451         [0400, 0401], [0403, 0403], [0407, 0407], [040c, 040e],
    452         [0419, 0419], [0439, 0439], [0450, 0451], [0453, 0453],
    453         [0457, 0457], [045c, 045e], [0476, 0477], [04c1, 04c2],
    454         [04d0, 04d3], [04d6, 04d7], [04da, 04df], [04e2, 04e7],
    455         [04ea, 04f5], [04f8, 04f9], [0622, 0626], [06c0, 06c0],
    456         [06c2, 06c2], [06d3, 06d3], [0929, 0929], [0931, 0931],
    457         [0934, 0934], [0958, 095f], [09cb, 09cc], [09dc, 09dd],
    458         [09df, 09df], [0a33, 0a33], [0a36, 0a36], [0a59, 0a5b],
    459         [0a5e, 0a5e], [0b48, 0b48], [0b4b, 0b4c], [0b5c, 0b5d],
    460         [0b94, 0b94], [0bca, 0bcc], [0c48, 0c48], [0cc0, 0cc0],
    461         [0cc7, 0cc8], [0cca, 0ccb], [0d4a, 0d4c], [0dda, 0dda],
    462         [0ddc, 0dde], [0f43, 0f43], [0f4d, 0f4d], [0f52, 0f52],
    463         [0f57, 0f57], [0f5c, 0f5c], [0f69, 0f69], [0f73, 0f73],
    464         [0f75, 0f76], [0f78, 0f78], [0f81, 0f81], [0f93, 0f93],
    465         [0f9d, 0f9d], [0fa2, 0fa2], [0fa7, 0fa7], [0fac, 0fac],
    466         [0fb9, 0fb9], [1026, 1026], [1b06, 1b06], [1b08, 1b08],
    467         [1b0a, 1b0a], [1b0c, 1b0c], [1b0e, 1b0e], [1b12, 1b12],
    468         [1b3b, 1b3b], [1b3d, 1b3d], [1b40, 1b41], [1b43, 1b43],
    469         [1e00, 1e99], [1e9b, 1e9b], [1ea0, 1ef9], [1f00, 1f15],
    470         [1f18, 1f1d], [1f20, 1f45], [1f48, 1f4d], [1f50, 1f57],
    471         [1f59, 1f59], [1f5b, 1f5b], [1f5d, 1f5d], [1f5f, 1f7d],
    472         [1f80, 1fb4], [1fb6, 1fbc], [1fbe, 1fbe], [1fc1, 1fc4],
    473         [1fc6, 1fd3], [1fd6, 1fdb], [1fdd, 1fef], [1ff2, 1ff4],
    474         [1ff6, 1ffd], [2000, 2001], [2126, 2126], [212a, 212b],
    475         [219a, 219b], [21ae, 21ae], [21cd, 21cf], [2204, 2204],
    476         [2209, 2209], [220c, 220c], [2224, 2224], [2226, 2226],
    477         [2241, 2241], [2244, 2244], [2247, 2247], [2249, 2249],
    478         [2260, 2260], [2262, 2262], [226d, 2271], [2274, 2275],
    479         [2278, 2279], [2280, 2281], [2284, 2285], [2288, 2289],
    480         [22ac, 22af], [22e0, 22e3], [22ea, 22ed], [2329, 232a],
    481         [2adc, 2adc], [304c, 304c], [304e, 304e], [3050, 3050],
    482         [3052, 3052], [3054, 3054], [3056, 3056], [3058, 3058],
    483         [305a, 305a], [305c, 305c], [305e, 305e], [3060, 3060],
    484         [3062, 3062], [3065, 3065], [3067, 3067], [3069, 3069],
    485         [3070, 3071], [3073, 3074], [3076, 3077], [3079, 307a],
    486         [307c, 307d], [3094, 3094], [309e, 309e], [30ac, 30ac],
    487         [30ae, 30ae], [30b0, 30b0], [30b2, 30b2], [30b4, 30b4],
    488         [30b6, 30b6], [30b8, 30b8], [30ba, 30ba], [30bc, 30bc],
    489         [30be, 30be], [30c0, 30c0], [30c2, 30c2], [30c5, 30c5],
    490         [30c7, 30c7], [30c9, 30c9], [30d0, 30d1], [30d3, 30d4],
    491         [30d6, 30d7], [30d9, 30da], [30dc, 30dd], [30f4, 30f4],
    492         [30f7, 30fa], [30fe, 30fe], [ac00, d7a3], [f900, fa0d],
    493         [fa10, fa10], [fa12, fa12], [fa15, fa1e], [fa20, fa20],
    494         [fa22, fa22], [fa25, fa26], [fa2a, fa6d], [fa70, fad9],
    495         [fb1d, fb1d], [fb1f, fb1f], [fb2a, fb36], [fb38, fb3c],
    496         [fb3e, fb3e], [fb40, fb41], [fb43, fb44], [fb46, fb4e],
    497         [1109a, 1109a], [1109c, 1109c], [110ab, 110ab], [1112e, 1112f],
    498         [1134b, 1134c], [114bb, 114bc], [114be, 114be], [115ba, 115bb],
    499         [1d15e, 1d164], [1d1bb, 1d1c0], [2f800, 2fa1d]**/
    500         const UnicodeSet codepoint_set
    501             {{{Empty, 6}, {Mixed, 6}, {Empty, 1}, {Mixed, 5}, {Empty, 8},
    502               {Mixed, 5}, {Empty, 1}, {Mixed, 4}, {Empty, 2}, {Mixed, 2},
    503               {Empty, 9}, {Mixed, 1}, {Empty, 4}, {Mixed, 1}, {Empty, 18},
    504               {Mixed, 2}, {Empty, 3}, {Mixed, 1}, {Empty, 2}, {Mixed, 2},
    505               {Empty, 7}, {Mixed, 1}, {Empty, 1}, {Mixed, 1}, {Empty, 1},
    506               {Mixed, 1}, {Empty, 3}, {Mixed, 1}, {Empty, 3}, {Mixed, 1},
    507               {Empty, 3}, {Mixed, 1}, {Empty, 3}, {Mixed, 1}, {Empty, 11},
    508               {Mixed, 4}, {Empty, 3}, {Mixed, 1}, {Empty, 86}, {Mixed, 3},
    509               {Empty, 21}, {Full, 4}, {Mixed, 1}, {Full, 2}, {Mixed, 2},
    510               {Full, 1}, {Mixed, 2}, {Full, 1}, {Mixed, 4}, {Empty, 8},
    511               {Mixed, 1}, {Empty, 2}, {Mixed, 3}, {Empty, 1}, {Mixed, 6},
    512               {Empty, 1}, {Mixed, 1}, {Empty, 1}, {Mixed, 1}, {Empty, 60},
    513               {Mixed, 1}, {Empty, 43}, {Mixed, 6}, {Empty, 984},
    514               {Full, 349}, {Mixed, 1}, {Empty, 266}, {Full, 8}, {Mixed, 2},
    515               {Full, 1}, {Mixed, 1}, {Full, 2}, {Mixed, 1}, {Empty, 1},
    516               {Mixed, 3}, {Empty, 169}, {Mixed, 2}, {Empty, 3}, {Mixed, 1},
    517               {Empty, 16}, {Mixed, 1}, {Empty, 10}, {Mixed, 1}, {Empty, 7},
    518               {Mixed, 1}, {Empty, 1500}, {Mixed, 2}, {Empty, 1}, {Mixed, 2},
    519               {Empty, 2353}, {Full, 16}, {Mixed, 1}, {Empty, 28719}},
    520              {0x3e7effbf, 0xbe7effbf, 0xfffcffff, 0x7ef1ff3f, 0xfff3f1f8,
    521               0x7fffff3f, 0x00018003, 0xdfffe000, 0xff31ffcf, 0xcfffffff,
    522               0x000fffc0, 0x0000001b, 0x40100000, 0x0001d7e0, 0x0001fc00,
    523               0x00187c00, 0x0200708b, 0x02000000, 0x708b0000, 0x00c00000,
    524               0xfccf0006, 0x033ffcfc, 0x0000007c, 0x00080005, 0x00120200,
    525               0xff000000, 0xb0001800, 0x00480000, 0x4e000000, 0x30001900,
    526               0x00100000, 0x00001c00, 0x00000100, 0x00000d81, 0x00001c00,
    527               0x74000000, 0x10842008, 0x01680200, 0x20080002, 0x02001084,
    528               0x00000040, 0x00045540, 0x28000000, 0x0000000b, 0x0bffffff,
    529               0x03ffffff, 0x3f3fffff, 0xaaff3f3f, 0x3fffffff, 0x5fdfffff,
    530               0xefcfffde, 0x3fdcffff, 0x00000003, 0x00000c40, 0x0c000000,
    531               0x00004000, 0x0000e000, 0x00001210, 0x00000050, 0x00000292,
    532               0x0333e005, 0x00000333, 0x0000f000, 0x00003c0f, 0x00000600,
    533               0x10000000, 0x55555000, 0x36db02a5, 0x40100000, 0x55555000,
    534               0x36db02a5, 0x47900000, 0x0000000f, 0x7fe53fff, 0xfffffc65,
    535               0xffff3fff, 0x03ffffff, 0xa0000000, 0x5f7ffc00, 0x00007fdb,
    536               0x14000000, 0x00000800, 0x0000c000, 0x00001800, 0x58000000,
    537               0x0c000000, 0xc0000000, 0x0000001f, 0xf8000000, 0x00000001,
    538               0x3fffffff}};
    539         static BinaryPropertyObject property_object{NFD_QC, codepoint_set};
     643  namespace NFKC_QC_ns {
     644    const unsigned independent_prop_values = 3;
     645    /** Code Point Ranges for Y
     646    [0000, 009f], [00a1, 00a7], [00a9, 00a9], [00ab, 00ae], [00b0, 00b1],
     647    [00b6, 00b7], [00bb, 00bb], [00bf, 0131], [0134, 013e], [0141, 0148],
     648    [014a, 017e], [0180, 01c3], [01cd, 01f0], [01f4, 02af], [02b9, 02d7],
     649    [02de, 02df], [02e5, 02ff], [0305, 0305], [030d, 030e], [0310, 0310],
     650    [0312, 0312], [0315, 031a], [031c, 0322], [0329, 032c], [032f, 032f],
     651    [0332, 0337], [0339, 033f], [0346, 0373], [0375, 0379], [037b, 037d],
     652    [037f, 0383], [0386, 0386], [0388, 03cf], [03d7, 03ef], [03f3, 03f3],
     653    [03f6, 03f8], [03fa, 0586], [0588, 0652], [0656, 0674], [0679, 093b],
     654    [093d, 0957], [0960, 09bd], [09bf, 09d6], [09d8, 09db], [09de, 09de],
     655    [09e0, 0a32], [0a34, 0a35], [0a37, 0a58], [0a5c, 0a5d], [0a5f, 0b3d],
     656    [0b3f, 0b55], [0b58, 0b5b], [0b5e, 0bbd], [0bbf, 0bd6], [0bd8, 0c55],
     657    [0c57, 0cc1], [0cc3, 0cd4], [0cd7, 0d3d], [0d3f, 0d56], [0d58, 0dc9],
     658    [0dcb, 0dce], [0dd0, 0dde], [0de0, 0e32], [0e34, 0eb2], [0eb4, 0edb],
     659    [0ede, 0f0b], [0f0d, 0f42], [0f44, 0f4c], [0f4e, 0f51], [0f53, 0f56],
     660    [0f58, 0f5b], [0f5d, 0f68], [0f6a, 0f72], [0f74, 0f74], [0f7a, 0f80],
     661    [0f82, 0f92], [0f94, 0f9c], [0f9e, 0fa1], [0fa3, 0fa6], [0fa8, 0fab],
     662    [0fad, 0fb8], [0fba, 102d], [102f, 10fb], [10fd, 1160], [1176, 11a7],
     663    [11c3, 1b34], [1b36, 1d2b], [1d2f, 1d2f], [1d3b, 1d3b], [1d4e, 1d4e],
     664    [1d6b, 1d77], [1d79, 1d9a], [1dc0, 1e99], [1e9c, 1f70], [1f72, 1f72],
     665    [1f74, 1f74], [1f76, 1f76], [1f78, 1f78], [1f7a, 1f7a], [1f7c, 1f7c],
     666    [1f7e, 1fba], [1fbc, 1fbc], [1fc2, 1fc8], [1fca, 1fca], [1fcc, 1fcc],
     667    [1fd0, 1fd2], [1fd4, 1fda], [1fdc, 1fdc], [1fe0, 1fe2], [1fe4, 1fea],
     668    [1fec, 1fec], [1ff0, 1ff8], [1ffa, 1ffa], [1ffc, 1ffc], [1fff, 1fff],
     669    [200b, 2010], [2012, 2016], [2018, 2023], [2027, 202e], [2030, 2032],
     670    [2035, 2035], [2038, 203b], [203d, 203d], [203f, 2046], [204a, 2056],
     671    [2058, 205e], [2060, 206f], [2072, 2073], [208f, 208f], [209d, 20a7],
     672    [20a9, 20ff], [2104, 2104], [2108, 2108], [2114, 2114], [2117, 2118],
     673    [211e, 211f], [2123, 2123], [2125, 2125], [2127, 2127], [2129, 2129],
     674    [212e, 212e], [2132, 2132], [213a, 213a], [2141, 2144], [214a, 214f],
     675    [2180, 2188], [218a, 222b], [222e, 222e], [2231, 2328], [232b, 245f],
     676    [24eb, 2a0b], [2a0d, 2a73], [2a77, 2adb], [2add, 2c7b], [2c7e, 2d6e],
     677    [2d70, 2e9e], [2ea0, 2ef2], [2ef4, 2eff], [2fd6, 2fff], [3001, 3035],
     678    [3037, 3037], [303b, 3098], [309d, 309e], [30a0, 30fe], [3100, 3130],
     679    [318f, 3191], [31a0, 31ff], [321f, 321f], [3248, 324f], [327f, 327f],
     680    [32ff, 32ff], [3400, a69b], [a69e, a76f], [a771, a7f7], [a7fa, ab5b],
     681    [ab60, f8ff], [fa0e, fa0f], [fa11, fa11], [fa13, fa14], [fa1f, fa1f],
     682    [fa21, fa21], [fa23, fa24], [fa27, fa29], [fa6e, fa6f], [fada, faff],
     683    [fb07, fb12], [fb18, fb1c], [fb1e, fb1e], [fb37, fb37], [fb3d, fb3d],
     684    [fb3f, fb3f], [fb42, fb42], [fb45, fb45], [fbb2, fbd2], [fd3e, fd4f],
     685    [fd90, fd91], [fdc8, fdef], [fdfd, fe0f], [fe1a, fe2f], [fe45, fe46],
     686    [fe53, fe53], [fe67, fe67], [fe6c, fe6f], [fe73, fe73], [fe75, fe75],
     687    [fefd, ff00], [ffbf, ffc1], [ffc8, ffc9], [ffd0, ffd1], [ffd8, ffd9],
     688    [ffdd, ffdf], [ffe7, ffe7], [ffef, 110b9], [110bb, 11126],
     689    [11128, 1133d], [1133f, 11356], [11358, 114af], [114b1, 114b9],
     690    [114bb, 114bc], [114be, 115ae], [115b0, 1d15d], [1d165, 1d1ba],
     691    [1d1c1, 1d3ff], [1d455, 1d455], [1d49d, 1d49d], [1d4a0, 1d4a1],
     692    [1d4a3, 1d4a4], [1d4a7, 1d4a8], [1d4ad, 1d4ad], [1d4ba, 1d4ba],
     693    [1d4bc, 1d4bc], [1d4c4, 1d4c4], [1d506, 1d506], [1d50b, 1d50c],
     694    [1d515, 1d515], [1d51d, 1d51d], [1d53a, 1d53a], [1d53f, 1d53f],
     695    [1d545, 1d545], [1d547, 1d549], [1d551, 1d551], [1d6a6, 1d6a7],
     696    [1d7cc, 1d7cd], [1d800, 1edff], [1ee04, 1ee04], [1ee20, 1ee20],
     697    [1ee23, 1ee23], [1ee25, 1ee26], [1ee28, 1ee28], [1ee33, 1ee33],
     698    [1ee38, 1ee38], [1ee3a, 1ee3a], [1ee3c, 1ee41], [1ee43, 1ee46],
     699    [1ee48, 1ee48], [1ee4a, 1ee4a], [1ee4c, 1ee4c], [1ee50, 1ee50],
     700    [1ee53, 1ee53], [1ee55, 1ee56], [1ee58, 1ee58], [1ee5a, 1ee5a],
     701    [1ee5c, 1ee5c], [1ee5e, 1ee5e], [1ee60, 1ee60], [1ee63, 1ee63],
     702    [1ee65, 1ee66], [1ee6b, 1ee6b], [1ee73, 1ee73], [1ee78, 1ee78],
     703    [1ee7d, 1ee7d], [1ee7f, 1ee7f], [1ee8a, 1ee8a], [1ee9c, 1eea0],
     704    [1eea4, 1eea4], [1eeaa, 1eeaa], [1eebc, 1f0ff], [1f10b, 1f10f],
     705    [1f12f, 1f12f], [1f150, 1f169], [1f16c, 1f18f], [1f191, 1f1ff],
     706    [1f203, 1f20f], [1f23c, 1f23f], [1f249, 1f24f], [1f252, 2f7ff],
     707    [2fa1e, 10ffff]**/
     708    const UnicodeSet y_Set
     709        {{{Full, 5}, {Mixed, 1}, {Full, 3}, {Mixed, 3}, {Full, 2},
     710          {Mixed, 2}, {Full, 5}, {Mixed, 8}, {Full, 1}, {Mixed, 2},
     711          {Full, 12}, {Mixed, 1}, {Full, 5}, {Mixed, 2}, {Full, 21},
     712          {Mixed, 2}, {Full, 2}, {Mixed, 2}, {Full, 2}, {Mixed, 2},
     713          {Full, 6}, {Mixed, 2}, {Full, 2}, {Mixed, 2}, {Full, 3},
     714          {Mixed, 1}, {Full, 3}, {Mixed, 1}, {Full, 2}, {Mixed, 2},
     715          {Full, 3}, {Mixed, 1}, {Full, 2}, {Mixed, 1}, {Full, 3},
     716          {Mixed, 2}, {Full, 1}, {Mixed, 1}, {Full, 1}, {Mixed, 4},
     717          {Full, 3}, {Mixed, 1}, {Full, 5}, {Mixed, 1}, {Full, 3},
     718          {Mixed, 1}, {Full, 1}, {Mixed, 2}, {Full, 74}, {Mixed, 1},
     719          {Full, 15}, {Mixed, 4}, {Empty, 1}, {Full, 6}, {Mixed, 1},
     720          {Full, 6}, {Mixed, 1}, {Full, 1}, {Mixed, 9}, {Full, 2},
     721          {Mixed, 3}, {Empty, 1}, {Mixed, 1}, {Full, 4}, {Mixed, 1},
     722          {Full, 7}, {Mixed, 1}, {Full, 9}, {Empty, 4}, {Mixed, 1},
     723          {Full, 40}, {Mixed, 1}, {Full, 2}, {Mixed, 1}, {Full, 2},
     724          {Mixed, 1}, {Full, 12}, {Mixed, 1}, {Full, 7}, {Mixed, 1},
     725          {Full, 8}, {Mixed, 1}, {Full, 2}, {Mixed, 1}, {Empty, 6},
     726          {Mixed, 1}, {Full, 1}, {Mixed, 2}, {Full, 2}, {Mixed, 1},
     727          {Full, 2}, {Mixed, 1}, {Full, 1}, {Mixed, 1}, {Empty, 2},
     728          {Mixed, 1}, {Full, 3}, {Mixed, 1}, {Empty, 1}, {Mixed, 2},
     729          {Empty, 3}, {Mixed, 1}, {Empty, 8}, {Full, 916}, {Mixed, 1},
     730          {Full, 6}, {Mixed, 1}, {Full, 3}, {Mixed, 1}, {Full, 26},
     731          {Mixed, 1}, {Full, 621}, {Empty, 8}, {Mixed, 2}, {Empty, 1},
     732          {Mixed, 1}, {Empty, 2}, {Mixed, 1}, {Full, 1}, {Mixed, 3},
     733          {Empty, 2}, {Mixed, 2}, {Empty, 10}, {Mixed, 2}, {Empty, 1},
     734          {Mixed, 1}, {Empty, 1}, {Mixed, 6}, {Empty, 3}, {Mixed, 2},
     735          {Empty, 4}, {Mixed, 3}, {Full, 133}, {Mixed, 1}, {Full, 3},
     736          {Mixed, 1}, {Full, 15}, {Mixed, 2}, {Full, 10}, {Mixed, 1},
     737          {Full, 7}, {Mixed, 1}, {Full, 1500}, {Mixed, 2}, {Full, 1},
     738          {Mixed, 2}, {Full, 17}, {Empty, 2}, {Mixed, 1}, {Empty, 1},
     739          {Mixed, 3}, {Empty, 1}, {Mixed, 3}, {Empty, 10}, {Mixed, 1},
     740          {Empty, 8}, {Mixed, 1}, {Empty, 1}, {Full, 176}, {Mixed, 6},
     741          {Full, 18}, {Mixed, 5}, {Full, 3}, {Mixed, 3}, {Full, 2093},
     742          {Empty, 16}, {Mixed, 1}, {Full, 28719}},
     743         {0x88c37afe, 0x7ff3ffff, 0xfffffdfe, 0x7fffffff, 0xffffe00f,
     744          0xfff1ffff, 0xfe00ffff, 0xc0ffffff, 0xffffffe0, 0xf7e56020,
     745          0xfefc9e07, 0xffffffc0, 0xbbefffff, 0xffffff4f, 0xff80ffff,
     746          0xfdc8ffff, 0xffffff7f, 0xffc7ffff, 0xfe1fffff, 0xefffffff,
     747          0x00ffffff, 0xbfffffff, 0x4f7fffff, 0xffb7ffff, 0xb1ffffff,
     748          0xbfffffff, 0xcf3fffff, 0xbfffffff, 0xff7fffff, 0xffbfffff,
     749          0xff9ffffb, 0xbfffffff, 0xff7fffff, 0x7fff7bff, 0xfff7ffff,
     750          0xfff7ffff, 0xcfffffff, 0xffffefff, 0xef7bdff7, 0xfc17fdff,
     751          0xdff7fffd, 0xfdffef7b, 0xffffbfff, 0xefffffff, 0xffc00001,
     752          0x000000ff, 0xfffffff8, 0xffdfffff, 0x08008fff, 0x00004000,
     753          0xfefff800, 0x07ffffff, 0xf3ffffff, 0xd555ffff, 0x17ffffff,
     754          0x17f715fc, 0x95ff17f7, 0xff7df800, 0xaf277f8f, 0x7f7ffc7f,
     755          0x000cffff, 0xe0008000, 0xfffffeff, 0xc1900110, 0x040442a8,
     756          0x0000fc1e, 0xfffffdff, 0xfffe4fff, 0xfffff9ff, 0xfffff800,
     757          0xffffefff, 0xff8fffff, 0xefffffff, 0xcfffffff, 0xffff7fff,
     758          0x7fffffff, 0xfff7ffff, 0xffc00000, 0xfffffffe, 0xf8bfffff,
     759          0x61ffffff, 0x7fffffff, 0x0001ffff, 0x00038000, 0x80000000,
     760          0x0000ff00, 0x80000000, 0x80000000, 0xcfffffff, 0xfffeffff,
     761          0xfcffffff, 0x0fffffff, 0x801ac000, 0x0000039a, 0x0000c000,
     762          0xfc000000, 0x5f07ff80, 0xa0800000, 0x00000024, 0xfffc0000,
     763          0x0007ffff, 0xc0000000, 0x0000ffff, 0x00030000, 0xffffff00,
     764          0xe000ffff, 0xfc00ffff, 0x0000ffff, 0x00080060, 0x0028f080,
     765          0xe0000000, 0x00000001, 0x80000000, 0xe3030303, 0xffff8080,
     766          0xfbffffff, 0xffffff7f, 0xbfffffff, 0xff7fffff, 0xdbfeffff,
     767          0xffff7fff, 0x3fffffff, 0xffffffe0, 0x07ffffff, 0xfffffffe,
     768          0x00200000, 0x20000000, 0x1400219b, 0x00000010, 0x20201840,
     769          0x84000000, 0x000203a0, 0x000000c0, 0x00003000, 0x00000010,
     770          0xf5080169, 0x5569157b, 0xa1080869, 0xf0000400, 0xf0000411,
     771          0x0000f800, 0x00008000, 0xffff0000, 0xfffff3ff, 0xfffeffff,
     772          0x0000fff8, 0xf0000000, 0xfffcfe00, 0xc0000000}};
     773    /** Code Point Ranges for N
     774    [00a0, 00a0], [00a8, 00a8], [00aa, 00aa], [00af, 00af], [00b2, 00b5],
     775    [00b8, 00ba], [00bc, 00be], [0132, 0133], [013f, 0140], [0149, 0149],
     776    [017f, 017f], [01c4, 01cc], [01f1, 01f3], [02b0, 02b8], [02d8, 02dd],
     777    [02e0, 02e4], [0340, 0341], [0343, 0344], [0374, 0374], [037a, 037a],
     778    [037e, 037e], [0384, 0385], [0387, 0387], [03d0, 03d6], [03f0, 03f2],
     779    [03f4, 03f5], [03f9, 03f9], [0587, 0587], [0675, 0678], [0958, 095f],
     780    [09dc, 09dd], [09df, 09df], [0a33, 0a33], [0a36, 0a36], [0a59, 0a5b],
     781    [0a5e, 0a5e], [0b5c, 0b5d], [0e33, 0e33], [0eb3, 0eb3], [0edc, 0edd],
     782    [0f0c, 0f0c], [0f43, 0f43], [0f4d, 0f4d], [0f52, 0f52], [0f57, 0f57],
     783    [0f5c, 0f5c], [0f69, 0f69], [0f73, 0f73], [0f75, 0f79], [0f81, 0f81],
     784    [0f93, 0f93], [0f9d, 0f9d], [0fa2, 0fa2], [0fa7, 0fa7], [0fac, 0fac],
     785    [0fb9, 0fb9], [10fc, 10fc], [1d2c, 1d2e], [1d30, 1d3a], [1d3c, 1d4d],
     786    [1d4f, 1d6a], [1d78, 1d78], [1d9b, 1dbf], [1e9a, 1e9b], [1f71, 1f71],
     787    [1f73, 1f73], [1f75, 1f75], [1f77, 1f77], [1f79, 1f79], [1f7b, 1f7b],
     788    [1f7d, 1f7d], [1fbb, 1fbb], [1fbd, 1fc1], [1fc9, 1fc9], [1fcb, 1fcb],
     789    [1fcd, 1fcf], [1fd3, 1fd3], [1fdb, 1fdb], [1fdd, 1fdf], [1fe3, 1fe3],
     790    [1feb, 1feb], [1fed, 1fef], [1ff9, 1ff9], [1ffb, 1ffb], [1ffd, 1ffe],
     791    [2000, 200a], [2011, 2011], [2017, 2017], [2024, 2026], [202f, 202f],
     792    [2033, 2034], [2036, 2037], [203c, 203c], [203e, 203e], [2047, 2049],
     793    [2057, 2057], [205f, 205f], [2070, 2071], [2074, 208e], [2090, 209c],
     794    [20a8, 20a8], [2100, 2103], [2105, 2107], [2109, 2113], [2115, 2116],
     795    [2119, 211d], [2120, 2122], [2124, 2124], [2126, 2126], [2128, 2128],
     796    [212a, 212d], [212f, 2131], [2133, 2139], [213b, 2140], [2145, 2149],
     797    [2150, 217f], [2189, 2189], [222c, 222d], [222f, 2230], [2329, 232a],
     798    [2460, 24ea], [2a0c, 2a0c], [2a74, 2a76], [2adc, 2adc], [2c7c, 2c7d],
     799    [2d6f, 2d6f], [2e9f, 2e9f], [2ef3, 2ef3], [2f00, 2fd5], [3000, 3000],
     800    [3036, 3036], [3038, 303a], [309b, 309c], [309f, 309f], [30ff, 30ff],
     801    [3131, 318e], [3192, 319f], [3200, 321e], [3220, 3247], [3250, 327e],
     802    [3280, 32fe], [3300, 33ff], [a69c, a69d], [a770, a770], [a7f8, a7f9],
     803    [ab5c, ab5f], [f900, fa0d], [fa10, fa10], [fa12, fa12], [fa15, fa1e],
     804    [fa20, fa20], [fa22, fa22], [fa25, fa26], [fa2a, fa6d], [fa70, fad9],
     805    [fb00, fb06], [fb13, fb17], [fb1d, fb1d], [fb1f, fb36], [fb38, fb3c],
     806    [fb3e, fb3e], [fb40, fb41], [fb43, fb44], [fb46, fbb1], [fbd3, fd3d],
     807    [fd50, fd8f], [fd92, fdc7], [fdf0, fdfc], [fe10, fe19], [fe30, fe44],
     808    [fe47, fe52], [fe54, fe66], [fe68, fe6b], [fe70, fe72], [fe74, fe74],
     809    [fe76, fefc], [ff01, ffbe], [ffc2, ffc7], [ffca, ffcf], [ffd2, ffd7],
     810    [ffda, ffdc], [ffe0, ffe6], [ffe8, ffee], [1d15e, 1d164],
     811    [1d1bb, 1d1c0], [1d400, 1d454], [1d456, 1d49c], [1d49e, 1d49f],
     812    [1d4a2, 1d4a2], [1d4a5, 1d4a6], [1d4a9, 1d4ac], [1d4ae, 1d4b9],
     813    [1d4bb, 1d4bb], [1d4bd, 1d4c3], [1d4c5, 1d505], [1d507, 1d50a],
     814    [1d50d, 1d514], [1d516, 1d51c], [1d51e, 1d539], [1d53b, 1d53e],
     815    [1d540, 1d544], [1d546, 1d546], [1d54a, 1d550], [1d552, 1d6a5],
     816    [1d6a8, 1d7cb], [1d7ce, 1d7ff], [1ee00, 1ee03], [1ee05, 1ee1f],
     817    [1ee21, 1ee22], [1ee24, 1ee24], [1ee27, 1ee27], [1ee29, 1ee32],
     818    [1ee34, 1ee37], [1ee39, 1ee39], [1ee3b, 1ee3b], [1ee42, 1ee42],
     819    [1ee47, 1ee47], [1ee49, 1ee49], [1ee4b, 1ee4b], [1ee4d, 1ee4f],
     820    [1ee51, 1ee52], [1ee54, 1ee54], [1ee57, 1ee57], [1ee59, 1ee59],
     821    [1ee5b, 1ee5b], [1ee5d, 1ee5d], [1ee5f, 1ee5f], [1ee61, 1ee62],
     822    [1ee64, 1ee64], [1ee67, 1ee6a], [1ee6c, 1ee72], [1ee74, 1ee77],
     823    [1ee79, 1ee7c], [1ee7e, 1ee7e], [1ee80, 1ee89], [1ee8b, 1ee9b],
     824    [1eea1, 1eea3], [1eea5, 1eea9], [1eeab, 1eebb], [1f100, 1f10a],
     825    [1f110, 1f12e], [1f130, 1f14f], [1f16a, 1f16b], [1f190, 1f190],
     826    [1f200, 1f202], [1f210, 1f23b], [1f240, 1f248], [1f250, 1f251],
     827    [2f800, 2fa1d]**/
     828    const UnicodeSet n_Set
     829        {{{Empty, 5}, {Mixed, 1}, {Empty, 3}, {Mixed, 3}, {Empty, 2},
     830          {Mixed, 2}, {Empty, 5}, {Mixed, 3}, {Empty, 2}, {Mixed, 3},
     831          {Empty, 1}, {Mixed, 2}, {Empty, 12}, {Mixed, 1}, {Empty, 6},
     832          {Mixed, 1}, {Empty, 22}, {Mixed, 1}, {Empty, 3}, {Mixed, 1},
     833          {Empty, 2}, {Mixed, 2}, {Empty, 7}, {Mixed, 1}, {Empty, 22},
     834          {Mixed, 1}, {Empty, 3}, {Mixed, 2}, {Empty, 1}, {Mixed, 1},
     835          {Empty, 1}, {Mixed, 4}, {Empty, 9}, {Mixed, 1}, {Empty, 97},
     836          {Mixed, 4}, {Full, 1}, {Empty, 6}, {Mixed, 1}, {Empty, 6},
     837          {Mixed, 1}, {Empty, 1}, {Mixed, 9}, {Empty, 2}, {Mixed, 3},
     838          {Full, 1}, {Mixed, 1}, {Empty, 4}, {Mixed, 1}, {Empty, 7},
     839          {Mixed, 1}, {Empty, 9}, {Full, 4}, {Mixed, 1}, {Empty, 40},
     840          {Mixed, 1}, {Empty, 2}, {Mixed, 1}, {Empty, 2}, {Mixed, 1},
     841          {Empty, 12}, {Mixed, 1}, {Empty, 7}, {Mixed, 1}, {Empty, 8},
     842          {Mixed, 1}, {Empty, 2}, {Mixed, 1}, {Full, 6}, {Mixed, 1},
     843          {Empty, 1}, {Mixed, 2}, {Empty, 2}, {Mixed, 1}, {Empty, 2},
     844          {Mixed, 1}, {Empty, 1}, {Mixed, 1}, {Full, 2}, {Mixed, 1},
     845          {Empty, 3}, {Mixed, 1}, {Full, 1}, {Mixed, 2}, {Full, 3},
     846          {Mixed, 1}, {Full, 8}, {Empty, 916}, {Mixed, 1}, {Empty, 6},
     847          {Mixed, 1}, {Empty, 3}, {Mixed, 1}, {Empty, 26}, {Mixed, 1},
     848          {Empty, 621}, {Full, 8}, {Mixed, 2}, {Full, 1}, {Mixed, 1},
     849          {Full, 2}, {Mixed, 1}, {Empty, 1}, {Mixed, 3}, {Full, 2},
     850          {Mixed, 2}, {Full, 10}, {Mixed, 2}, {Full, 1}, {Mixed, 1},
     851          {Full, 1}, {Mixed, 6}, {Full, 3}, {Mixed, 2}, {Full, 4},
     852          {Mixed, 3}, {Empty, 1674}, {Mixed, 2}, {Empty, 1}, {Mixed, 2},
     853          {Empty, 17}, {Full, 2}, {Mixed, 1}, {Full, 1}, {Mixed, 3},
     854          {Full, 1}, {Mixed, 3}, {Full, 10}, {Mixed, 1}, {Full, 8},
     855          {Mixed, 1}, {Full, 1}, {Empty, 176}, {Mixed, 6}, {Empty, 18},
     856          {Mixed, 5}, {Empty, 3}, {Mixed, 3}, {Empty, 2093}, {Full, 16},
     857          {Mixed, 1}, {Empty, 28719}},
     858         {0x773c8501, 0x800c0000, 0x00000201, 0x80000000, 0x00001ff0,
     859          0x000e0000, 0x01ff0000, 0x3f000000, 0x0000001f, 0x0000001b,
     860          0x44100000, 0x000000b0, 0x007f0000, 0x02370000, 0x00000080,
     861          0x01e00000, 0xff000000, 0xb0000000, 0x00480000, 0x4e000000,
     862          0x30000000, 0x00080000, 0x00080000, 0x30000000, 0x00001000,
     863          0x10842008, 0x03e80200, 0x20080002, 0x02001084, 0x10000000,
     864          0xf7ff7000, 0xffffbfff, 0x010007ff, 0xf8000000, 0x0c000000,
     865          0x2aaa0000, 0xe8000000, 0xe808ea03, 0x6a00e808, 0x008207ff,
     866          0x50d88070, 0x80800380, 0xfff30000, 0x1fff7fff, 0x00000100,
     867          0x3e6ffeef, 0xfbfbbd57, 0xffff03e1, 0x00000200, 0x0001b000,
     868          0x00000600, 0x000007ff, 0x00001000, 0x00700000, 0x10000000,
     869          0x30000000, 0x00008000, 0x80000000, 0x00080000, 0x003fffff,
     870          0x00000001, 0x07400000, 0x98000000, 0x80000000, 0xfffe0000,
     871          0xfffc7fff, 0x7fffffff, 0xffff00ff, 0x7fffffff, 0x7fffffff,
     872          0x30000000, 0x00010000, 0x03000000, 0xf0000000, 0x7fe53fff,
     873          0xfffffc65, 0xffff3fff, 0x03ffffff, 0xa0f8007f, 0x5f7fffff,
     874          0xffffffdb, 0x0003ffff, 0xfff80000, 0x3fffffff, 0xffff0000,
     875          0xfffcffff, 0x000000ff, 0x1fff0000, 0x03ff0000, 0xffff0000,
     876          0xfff7ff9f, 0xffd70f7f, 0x1fffffff, 0xfffffffe, 0x7fffffff,
     877          0x1cfcfcfc, 0x00007f7f, 0xc0000000, 0x0000001f, 0xf8000000,
     878          0x00000001, 0xffdfffff, 0xdfffffff, 0xebffde64, 0xffffffef,
     879          0xdfdfe7bf, 0x7bffffff, 0xfffdfc5f, 0xffffff3f, 0xffffcfff,
     880          0xffffffef, 0x0af7fe96, 0xaa96ea84, 0x5ef7f796, 0x0ffffbff,
     881          0x0ffffbee, 0xffff07ff, 0xffff7fff, 0x0000ffff, 0x00000c00,
     882          0x00010000, 0xffff0007, 0x0fffffff, 0x000301ff, 0x3fffffff}};
     883    /** Code Point Ranges for M
     884    [0300, 0304], [0306, 030c], [030f, 030f], [0311, 0311], [0313, 0314],
     885    [031b, 031b], [0323, 0328], [032d, 032e], [0330, 0331], [0338, 0338],
     886    [0342, 0342], [0345, 0345], [0653, 0655], [093c, 093c], [09be, 09be],
     887    [09d7, 09d7], [0b3e, 0b3e], [0b56, 0b57], [0bbe, 0bbe], [0bd7, 0bd7],
     888    [0c56, 0c56], [0cc2, 0cc2], [0cd5, 0cd6], [0d3e, 0d3e], [0d57, 0d57],
     889    [0dca, 0dca], [0dcf, 0dcf], [0ddf, 0ddf], [102e, 102e], [1161, 1175],
     890    [11a8, 11c2], [1b35, 1b35], [3099, 309a], [110ba, 110ba],
     891    [11127, 11127], [1133e, 1133e], [11357, 11357], [114b0, 114b0],
     892    [114ba, 114ba], [114bd, 114bd], [115af, 115af]**/
     893    const UnicodeSet m_Set
     894        {{{Empty, 24}, {Mixed, 3}, {Empty, 23}, {Mixed, 1}, {Empty, 22},
     895          {Mixed, 1}, {Empty, 3}, {Mixed, 2}, {Empty, 10}, {Mixed, 2},
     896          {Empty, 2}, {Mixed, 2}, {Empty, 3}, {Mixed, 1}, {Empty, 3},
     897          {Mixed, 1}, {Empty, 2}, {Mixed, 2}, {Empty, 3}, {Mixed, 1},
     898          {Empty, 18}, {Mixed, 1}, {Empty, 9}, {Mixed, 1}, {Empty, 1},
     899          {Mixed, 2}, {Empty, 74}, {Mixed, 1}, {Empty, 170}, {Mixed, 1},
     900          {Empty, 1792}, {Mixed, 1}, {Empty, 3}, {Mixed, 1}, {Empty, 15},
     901          {Mixed, 2}, {Empty, 10}, {Mixed, 1}, {Empty, 7}, {Mixed, 1},
     902          {Empty, 32594}},
     903         {0x081a9fdf, 0x010361f8, 0x00000024, 0x00380000, 0x10000000,
     904          0x40000000, 0x00800000, 0x40000000, 0x00c00000, 0x40000000,
     905          0x00800000, 0x00400000, 0x00600004, 0x40000000, 0x00800000,
     906          0x80008400, 0x00004000, 0x003ffffe, 0xffffff00, 0x00000007,
     907          0x00200000, 0x06000000, 0x04000000, 0x00000080, 0x40000000,
     908          0x00800000, 0x24010000, 0x00008000}};
     909    static EnumeratedPropertyObject property_object
     910        {NFKC_QC,
     911         NFKC_QC_ns::independent_prop_values,
     912         NFKC_QC_ns::enum_names,
     913         NFKC_QC_ns::value_names,
     914         NFKC_QC_ns::aliases_only_map,
     915         {&y_Set, &n_Set, &m_Set
     916         }};
    540917    }
    541     namespace NFKC_CF_ns {
    542         /** Code Point Ranges for NFKC_CF
    543         [0041, 005a], [00a0, 00a0], [00a8, 00a8], [00aa, 00aa],
    544         [00ad, 00ad], [00af, 00af], [00b2, 00b5], [00b8, 00ba],
    545         [00bc, 00be], [00c0, 00d6], [00d8, 00df], [0100, 0100],
    546         [0102, 0102], [0104, 0104], [0106, 0106], [0108, 0108],
    547         [010a, 010a], [010c, 010c], [010e, 010e], [0110, 0110],
    548         [0112, 0112], [0114, 0114], [0116, 0116], [0118, 0118],
    549         [011a, 011a], [011c, 011c], [011e, 011e], [0120, 0120],
    550         [0122, 0122], [0124, 0124], [0126, 0126], [0128, 0128],
    551         [012a, 012a], [012c, 012c], [012e, 012e], [0130, 0130],
    552         [0132, 0134], [0136, 0136], [0139, 0139], [013b, 013b],
    553         [013d, 013d], [013f, 0141], [0143, 0143], [0145, 0145],
    554         [0147, 0147], [0149, 014a], [014c, 014c], [014e, 014e],
    555         [0150, 0150], [0152, 0152], [0154, 0154], [0156, 0156],
    556         [0158, 0158], [015a, 015a], [015c, 015c], [015e, 015e],
    557         [0160, 0160], [0162, 0162], [0164, 0164], [0166, 0166],
    558         [0168, 0168], [016a, 016a], [016c, 016c], [016e, 016e],
    559         [0170, 0170], [0172, 0172], [0174, 0174], [0176, 0176],
    560         [0178, 0179], [017b, 017b], [017d, 017d], [017f, 017f],
    561         [0181, 0182], [0184, 0184], [0186, 0187], [0189, 018b],
    562         [018e, 0191], [0193, 0194], [0196, 0198], [019c, 019d],
    563         [019f, 01a0], [01a2, 01a2], [01a4, 01a4], [01a6, 01a7],
    564         [01a9, 01a9], [01ac, 01ac], [01ae, 01af], [01b1, 01b3],
    565         [01b5, 01b5], [01b7, 01b8], [01bc, 01bc], [01c4, 01cd],
    566         [01cf, 01cf], [01d1, 01d1], [01d3, 01d3], [01d5, 01d5],
    567         [01d7, 01d7], [01d9, 01d9], [01db, 01db], [01de, 01de],
    568         [01e0, 01e0], [01e2, 01e2], [01e4, 01e4], [01e6, 01e6],
    569         [01e8, 01e8], [01ea, 01ea], [01ec, 01ec], [01ee, 01ee],
    570         [01f1, 01f4], [01f6, 01f8], [01fa, 01fa], [01fc, 01fc],
    571         [01fe, 01fe], [0200, 0200], [0202, 0202], [0204, 0204],
    572         [0206, 0206], [0208, 0208], [020a, 020a], [020c, 020c],
    573         [020e, 020e], [0210, 0210], [0212, 0212], [0214, 0214],
    574         [0216, 0216], [0218, 0218], [021a, 021a], [021c, 021c],
    575         [021e, 021e], [0220, 0220], [0222, 0222], [0224, 0224],
    576         [0226, 0226], [0228, 0228], [022a, 022a], [022c, 022c],
    577         [022e, 022e], [0230, 0230], [0232, 0232], [023a, 023b],
    578         [023d, 023e], [0241, 0241], [0243, 0246], [0248, 0248],
    579         [024a, 024a], [024c, 024c], [024e, 024e], [02b0, 02b8],
    580         [02d8, 02dd], [02e0, 02e4], [0340, 0341], [0343, 0345],
    581         [034f, 034f], [0370, 0370], [0372, 0372], [0374, 0374],
    582         [0376, 0376], [037a, 037a], [037e, 037f], [0384, 038a],
    583         [038c, 038c], [038e, 038f], [0391, 03a1], [03a3, 03ab],
    584         [03c2, 03c2], [03cf, 03d6], [03d8, 03d8], [03da, 03da],
    585         [03dc, 03dc], [03de, 03de], [03e0, 03e0], [03e2, 03e2],
    586         [03e4, 03e4], [03e6, 03e6], [03e8, 03e8], [03ea, 03ea],
    587         [03ec, 03ec], [03ee, 03ee], [03f0, 03f2], [03f4, 03f5],
    588         [03f7, 03f7], [03f9, 03fa], [03fd, 042f], [0460, 0460],
    589         [0462, 0462], [0464, 0464], [0466, 0466], [0468, 0468],
    590         [046a, 046a], [046c, 046c], [046e, 046e], [0470, 0470],
    591         [0472, 0472], [0474, 0474], [0476, 0476], [0478, 0478],
    592         [047a, 047a], [047c, 047c], [047e, 047e], [0480, 0480],
    593         [048a, 048a], [048c, 048c], [048e, 048e], [0490, 0490],
    594         [0492, 0492], [0494, 0494], [0496, 0496], [0498, 0498],
    595         [049a, 049a], [049c, 049c], [049e, 049e], [04a0, 04a0],
    596         [04a2, 04a2], [04a4, 04a4], [04a6, 04a6], [04a8, 04a8],
    597         [04aa, 04aa], [04ac, 04ac], [04ae, 04ae], [04b0, 04b0],
    598         [04b2, 04b2], [04b4, 04b4], [04b6, 04b6], [04b8, 04b8],
    599         [04ba, 04ba], [04bc, 04bc], [04be, 04be], [04c0, 04c1],
    600         [04c3, 04c3], [04c5, 04c5], [04c7, 04c7], [04c9, 04c9],
    601         [04cb, 04cb], [04cd, 04cd], [04d0, 04d0], [04d2, 04d2],
    602         [04d4, 04d4], [04d6, 04d6], [04d8, 04d8], [04da, 04da],
    603         [04dc, 04dc], [04de, 04de], [04e0, 04e0], [04e2, 04e2],
    604         [04e4, 04e4], [04e6, 04e6], [04e8, 04e8], [04ea, 04ea],
    605         [04ec, 04ec], [04ee, 04ee], [04f0, 04f0], [04f2, 04f2],
    606         [04f4, 04f4], [04f6, 04f6], [04f8, 04f8], [04fa, 04fa],
    607         [04fc, 04fc], [04fe, 04fe], [0500, 0500], [0502, 0502],
    608         [0504, 0504], [0506, 0506], [0508, 0508], [050a, 050a],
    609         [050c, 050c], [050e, 050e], [0510, 0510], [0512, 0512],
    610         [0514, 0514], [0516, 0516], [0518, 0518], [051a, 051a],
    611         [051c, 051c], [051e, 051e], [0520, 0520], [0522, 0522],
    612         [0524, 0524], [0526, 0526], [0528, 0528], [052a, 052a],
    613         [052c, 052c], [052e, 052e], [0531, 0556], [0587, 0587],
    614         [061c, 061c], [0675, 0678], [0958, 095f], [09dc, 09dd],
    615         [09df, 09df], [0a33, 0a33], [0a36, 0a36], [0a59, 0a5b],
    616         [0a5e, 0a5e], [0b5c, 0b5d], [0e33, 0e33], [0eb3, 0eb3],
    617         [0edc, 0edd], [0f0c, 0f0c], [0f43, 0f43], [0f4d, 0f4d],
    618         [0f52, 0f52], [0f57, 0f57], [0f5c, 0f5c], [0f69, 0f69],
    619         [0f73, 0f73], [0f75, 0f79], [0f81, 0f81], [0f93, 0f93],
    620         [0f9d, 0f9d], [0fa2, 0fa2], [0fa7, 0fa7], [0fac, 0fac],
    621         [0fb9, 0fb9], [10a0, 10c5], [10c7, 10c7], [10cd, 10cd],
    622         [10fc, 10fc], [115f, 1160], [13f8, 13fd], [17b4, 17b5],
    623         [180b, 180e], [1c80, 1c88], [1d2c, 1d2e], [1d30, 1d3a],
    624         [1d3c, 1d4d], [1d4f, 1d6a], [1d78, 1d78], [1d9b, 1dbf],
    625         [1e00, 1e00], [1e02, 1e02], [1e04, 1e04], [1e06, 1e06],
    626         [1e08, 1e08], [1e0a, 1e0a], [1e0c, 1e0c], [1e0e, 1e0e],
    627         [1e10, 1e10], [1e12, 1e12], [1e14, 1e14], [1e16, 1e16],
    628         [1e18, 1e18], [1e1a, 1e1a], [1e1c, 1e1c], [1e1e, 1e1e],
    629         [1e20, 1e20], [1e22, 1e22], [1e24, 1e24], [1e26, 1e26],
    630         [1e28, 1e28], [1e2a, 1e2a], [1e2c, 1e2c], [1e2e, 1e2e],
    631         [1e30, 1e30], [1e32, 1e32], [1e34, 1e34], [1e36, 1e36],
    632         [1e38, 1e38], [1e3a, 1e3a], [1e3c, 1e3c], [1e3e, 1e3e],
    633         [1e40, 1e40], [1e42, 1e42], [1e44, 1e44], [1e46, 1e46],
    634         [1e48, 1e48], [1e4a, 1e4a], [1e4c, 1e4c], [1e4e, 1e4e],
    635         [1e50, 1e50], [1e52, 1e52], [1e54, 1e54], [1e56, 1e56],
    636         [1e58, 1e58], [1e5a, 1e5a], [1e5c, 1e5c], [1e5e, 1e5e],
    637         [1e60, 1e60], [1e62, 1e62], [1e64, 1e64], [1e66, 1e66],
    638         [1e68, 1e68], [1e6a, 1e6a], [1e6c, 1e6c], [1e6e, 1e6e],
    639         [1e70, 1e70], [1e72, 1e72], [1e74, 1e74], [1e76, 1e76],
    640         [1e78, 1e78], [1e7a, 1e7a], [1e7c, 1e7c], [1e7e, 1e7e],
    641         [1e80, 1e80], [1e82, 1e82], [1e84, 1e84], [1e86, 1e86],
    642         [1e88, 1e88], [1e8a, 1e8a], [1e8c, 1e8c], [1e8e, 1e8e],
    643         [1e90, 1e90], [1e92, 1e92], [1e94, 1e94], [1e9a, 1e9b],
    644         [1e9e, 1e9e], [1ea0, 1ea0], [1ea2, 1ea2], [1ea4, 1ea4],
    645         [1ea6, 1ea6], [1ea8, 1ea8], [1eaa, 1eaa], [1eac, 1eac],
    646         [1eae, 1eae], [1eb0, 1eb0], [1eb2, 1eb2], [1eb4, 1eb4],
    647         [1eb6, 1eb6], [1eb8, 1eb8], [1eba, 1eba], [1ebc, 1ebc],
    648         [1ebe, 1ebe], [1ec0, 1ec0], [1ec2, 1ec2], [1ec4, 1ec4],
    649         [1ec6, 1ec6], [1ec8, 1ec8], [1eca, 1eca], [1ecc, 1ecc],
    650         [1ece, 1ece], [1ed0, 1ed0], [1ed2, 1ed2], [1ed4, 1ed4],
    651         [1ed6, 1ed6], [1ed8, 1ed8], [1eda, 1eda], [1edc, 1edc],
    652         [1ede, 1ede], [1ee0, 1ee0], [1ee2, 1ee2], [1ee4, 1ee4],
    653         [1ee6, 1ee6], [1ee8, 1ee8], [1eea, 1eea], [1eec, 1eec],
    654         [1eee, 1eee], [1ef0, 1ef0], [1ef2, 1ef2], [1ef4, 1ef4],
    655         [1ef6, 1ef6], [1ef8, 1ef8], [1efa, 1efa], [1efc, 1efc],
    656         [1efe, 1efe], [1f08, 1f0f], [1f18, 1f1d], [1f28, 1f2f],
    657         [1f38, 1f3f], [1f48, 1f4d], [1f59, 1f59], [1f5b, 1f5b],
    658         [1f5d, 1f5d], [1f5f, 1f5f], [1f68, 1f6f], [1f71, 1f71],
    659         [1f73, 1f73], [1f75, 1f75], [1f77, 1f77], [1f79, 1f79],
    660         [1f7b, 1f7b], [1f7d, 1f7d], [1f80, 1faf], [1fb2, 1fb4],
    661         [1fb7, 1fc4], [1fc7, 1fcf], [1fd3, 1fd3], [1fd8, 1fdb],
    662         [1fdd, 1fdf], [1fe3, 1fe3], [1fe8, 1fef], [1ff2, 1ff4],
    663         [1ff7, 1ffe], [2000, 200f], [2011, 2011], [2017, 2017],
    664         [2024, 2026], [202a, 202f], [2033, 2034], [2036, 2037],
    665         [203c, 203c], [203e, 203e], [2047, 2049], [2057, 2057],
    666         [205f, 2071], [2074, 208e], [2090, 209c], [20a8, 20a8],
    667         [2100, 2103], [2105, 2107], [2109, 2113], [2115, 2116],
    668         [2119, 211d], [2120, 2122], [2124, 2124], [2126, 2126],
    669         [2128, 2128], [212a, 212d], [212f, 2139], [213b, 2140],
    670         [2145, 2149], [2150, 217f], [2183, 2183], [2189, 2189],
    671         [222c, 222d], [222f, 2230], [2329, 232a], [2460, 24ea],
    672         [2a0c, 2a0c], [2a74, 2a76], [2adc, 2adc], [2c00, 2c2e],
    673         [2c60, 2c60], [2c62, 2c64], [2c67, 2c67], [2c69, 2c69],
    674         [2c6b, 2c6b], [2c6d, 2c70], [2c72, 2c72], [2c75, 2c75],
    675         [2c7c, 2c80], [2c82, 2c82], [2c84, 2c84], [2c86, 2c86],
    676         [2c88, 2c88], [2c8a, 2c8a], [2c8c, 2c8c], [2c8e, 2c8e],
    677         [2c90, 2c90], [2c92, 2c92], [2c94, 2c94], [2c96, 2c96],
    678         [2c98, 2c98], [2c9a, 2c9a], [2c9c, 2c9c], [2c9e, 2c9e],
    679         [2ca0, 2ca0], [2ca2, 2ca2], [2ca4, 2ca4], [2ca6, 2ca6],
    680         [2ca8, 2ca8], [2caa, 2caa], [2cac, 2cac], [2cae, 2cae],
    681         [2cb0, 2cb0], [2cb2, 2cb2], [2cb4, 2cb4], [2cb6, 2cb6],
    682         [2cb8, 2cb8], [2cba, 2cba], [2cbc, 2cbc], [2cbe, 2cbe],
    683         [2cc0, 2cc0], [2cc2, 2cc2], [2cc4, 2cc4], [2cc6, 2cc6],
    684         [2cc8, 2cc8], [2cca, 2cca], [2ccc, 2ccc], [2cce, 2cce],
    685         [2cd0, 2cd0], [2cd2, 2cd2], [2cd4, 2cd4], [2cd6, 2cd6],
    686         [2cd8, 2cd8], [2cda, 2cda], [2cdc, 2cdc], [2cde, 2cde],
    687         [2ce0, 2ce0], [2ce2, 2ce2], [2ceb, 2ceb], [2ced, 2ced],
    688         [2cf2, 2cf2], [2d6f, 2d6f], [2e9f, 2e9f], [2ef3, 2ef3],
    689         [2f00, 2fd5], [3000, 3000], [3036, 3036], [3038, 303a],
    690         [309b, 309c], [309f, 309f], [30ff, 30ff], [3131, 318e],
    691         [3192, 319f], [3200, 321e], [3220, 3247], [3250, 327e],
    692         [3280, 32fe], [3300, 33ff], [a640, a640], [a642, a642],
    693         [a644, a644], [a646, a646], [a648, a648], [a64a, a64a],
    694         [a64c, a64c], [a64e, a64e], [a650, a650], [a652, a652],
    695         [a654, a654], [a656, a656], [a658, a658], [a65a, a65a],
    696         [a65c, a65c], [a65e, a65e], [a660, a660], [a662, a662],
    697         [a664, a664], [a666, a666], [a668, a668], [a66a, a66a],
    698         [a66c, a66c], [a680, a680], [a682, a682], [a684, a684],
    699         [a686, a686], [a688, a688], [a68a, a68a], [a68c, a68c],
    700         [a68e, a68e], [a690, a690], [a692, a692], [a694, a694],
    701         [a696, a696], [a698, a698], [a69a, a69a], [a69c, a69d],
    702         [a722, a722], [a724, a724], [a726, a726], [a728, a728],
    703         [a72a, a72a], [a72c, a72c], [a72e, a72e], [a732, a732],
    704         [a734, a734], [a736, a736], [a738, a738], [a73a, a73a],
    705         [a73c, a73c], [a73e, a73e], [a740, a740], [a742, a742],
    706         [a744, a744], [a746, a746], [a748, a748], [a74a, a74a],
    707         [a74c, a74c], [a74e, a74e], [a750, a750], [a752, a752],
    708         [a754, a754], [a756, a756], [a758, a758], [a75a, a75a],
    709         [a75c, a75c], [a75e, a75e], [a760, a760], [a762, a762],
    710         [a764, a764], [a766, a766], [a768, a768], [a76a, a76a],
    711         [a76c, a76c], [a76e, a76e], [a770, a770], [a779, a779],
    712         [a77b, a77b], [a77d, a77e], [a780, a780], [a782, a782],
    713         [a784, a784], [a786, a786], [a78b, a78b], [a78d, a78d],
    714         [a790, a790], [a792, a792], [a796, a796], [a798, a798],
    715         [a79a, a79a], [a79c, a79c], [a79e, a79e], [a7a0, a7a0],
    716         [a7a2, a7a2], [a7a4, a7a4], [a7a6, a7a6], [a7a8, a7a8],
    717         [a7aa, a7ae], [a7b0, a7b4], [a7b6, a7b6], [a7f8, a7f9],
    718         [ab5c, ab5f], [ab70, abbf], [f900, fa0d], [fa10, fa10],
    719         [fa12, fa12], [fa15, fa1e], [fa20, fa20], [fa22, fa22],
    720         [fa25, fa26], [fa2a, fa6d], [fa70, fad9], [fb00, fb06],
    721         [fb13, fb17], [fb1d, fb1d], [fb1f, fb36], [fb38, fb3c],
    722         [fb3e, fb3e], [fb40, fb41], [fb43, fb44], [fb46, fbb1],
    723         [fbd3, fd3d], [fd50, fd8f], [fd92, fdc7], [fdf0, fdfc],
    724         [fe00, fe19], [fe30, fe44], [fe47, fe52], [fe54, fe66],
    725         [fe68, fe6b], [fe70, fe72], [fe74, fe74], [fe76, fefc],
    726         [feff, feff], [ff01, ffbe], [ffc2, ffc7], [ffca, ffcf],
    727         [ffd2, ffd7], [ffda, ffdc], [ffe0, ffe6], [ffe8, ffee],
    728         [fff0, fff8], [10400, 10427], [104b0, 104d3], [10c80, 10cb2],
    729         [118a0, 118bf], [1bca0, 1bca3], [1d15e, 1d164], [1d173, 1d17a],
    730         [1d1bb, 1d1c0], [1d400, 1d454], [1d456, 1d49c], [1d49e, 1d49f],
    731         [1d4a2, 1d4a2], [1d4a5, 1d4a6], [1d4a9, 1d4ac], [1d4ae, 1d4b9],
    732         [1d4bb, 1d4bb], [1d4bd, 1d4c3], [1d4c5, 1d505], [1d507, 1d50a],
    733         [1d50d, 1d514], [1d516, 1d51c], [1d51e, 1d539], [1d53b, 1d53e],
    734         [1d540, 1d544], [1d546, 1d546], [1d54a, 1d550], [1d552, 1d6a5],
    735         [1d6a8, 1d7cb], [1d7ce, 1d7ff], [1e900, 1e921], [1ee00, 1ee03],
    736         [1ee05, 1ee1f], [1ee21, 1ee22], [1ee24, 1ee24], [1ee27, 1ee27],
    737         [1ee29, 1ee32], [1ee34, 1ee37], [1ee39, 1ee39], [1ee3b, 1ee3b],
    738         [1ee42, 1ee42], [1ee47, 1ee47], [1ee49, 1ee49], [1ee4b, 1ee4b],
    739         [1ee4d, 1ee4f], [1ee51, 1ee52], [1ee54, 1ee54], [1ee57, 1ee57],
    740         [1ee59, 1ee59], [1ee5b, 1ee5b], [1ee5d, 1ee5d], [1ee5f, 1ee5f],
    741         [1ee61, 1ee62], [1ee64, 1ee64], [1ee67, 1ee6a], [1ee6c, 1ee72],
    742         [1ee74, 1ee77], [1ee79, 1ee7c], [1ee7e, 1ee7e], [1ee80, 1ee89],
    743         [1ee8b, 1ee9b], [1eea1, 1eea3], [1eea5, 1eea9], [1eeab, 1eebb],
    744         [1f100, 1f10a], [1f110, 1f12e], [1f130, 1f14f], [1f16a, 1f16b],
    745         [1f190, 1f190], [1f200, 1f202], [1f210, 1f23b], [1f240, 1f248],
    746         [1f250, 1f251], [2f800, 2fa1d], [e0000, e0fff]**/
    747         const UnicodeSet codepoint_set
    748             {{{Empty, 2}, {Mixed, 1}, {Empty, 2}, {Mixed, 2}, {Empty, 1},
    749               {Mixed, 11}, {Empty, 2}, {Mixed, 3}, {Empty, 2}, {Mixed, 6},
    750               {Full, 1}, {Mixed, 1}, {Empty, 1}, {Mixed, 8}, {Empty, 1},
    751               {Mixed, 1}, {Empty, 3}, {Mixed, 1}, {Empty, 2}, {Mixed, 1},
    752               {Empty, 22}, {Mixed, 1}, {Empty, 3}, {Mixed, 1}, {Empty, 2},
    753               {Mixed, 2}, {Empty, 7}, {Mixed, 1}, {Empty, 22}, {Mixed, 1},
    754               {Empty, 3}, {Mixed, 2}, {Empty, 1}, {Mixed, 1}, {Empty, 1},
    755               {Mixed, 4}, {Empty, 7}, {Full, 1}, {Mixed, 2}, {Empty, 2},
    756               {Mixed, 2}, {Empty, 19}, {Mixed, 1}, {Empty, 29}, {Mixed, 1},
    757               {Empty, 2}, {Mixed, 1}, {Empty, 35}, {Mixed, 1}, {Empty, 4},
    758               {Mixed, 4}, {Full, 1}, {Empty, 2}, {Mixed, 12}, {Full, 1},
    759               {Mixed, 9}, {Empty, 2}, {Mixed, 3}, {Full, 1}, {Mixed, 1},
    760               {Empty, 4}, {Mixed, 1}, {Empty, 7}, {Mixed, 1}, {Empty, 9},
    761               {Full, 4}, {Mixed, 1}, {Empty, 40}, {Mixed, 1}, {Empty, 2},
    762               {Mixed, 1}, {Empty, 2}, {Mixed, 1}, {Empty, 9}, {Full, 1},
    763               {Mixed, 1}, {Empty, 1}, {Mixed, 5}, {Empty, 3}, {Mixed, 1},
    764               {Empty, 8}, {Mixed, 1}, {Empty, 2}, {Mixed, 1}, {Full, 6},
    765               {Mixed, 1}, {Empty, 1}, {Mixed, 2}, {Empty, 2}, {Mixed, 1},
    766               {Empty, 2}, {Mixed, 1}, {Empty, 1}, {Mixed, 1}, {Full, 2},
    767               {Mixed, 1}, {Empty, 3}, {Mixed, 1}, {Full, 1}, {Mixed, 2},
    768               {Full, 3}, {Mixed, 1}, {Full, 8}, {Empty, 914}, {Mixed, 3},
    769               {Empty, 4}, {Mixed, 5}, {Empty, 1}, {Mixed, 1}, {Empty, 26},
    770               {Mixed, 2}, {Full, 2}, {Empty, 618}, {Full, 8}, {Mixed, 2},
    771               {Full, 1}, {Mixed, 1}, {Full, 2}, {Mixed, 1}, {Empty, 1},
    772               {Mixed, 3}, {Full, 2}, {Mixed, 2}, {Full, 10}, {Mixed, 2},
    773               {Full, 1}, {Mixed, 1}, {Full, 1}, {Mixed, 6}, {Full, 3},
    774               {Mixed, 2}, {Full, 4}, {Mixed, 3}, {Empty, 32}, {Full, 1},
    775               {Mixed, 1}, {Empty, 3}, {Mixed, 2}, {Empty, 61}, {Full, 1},
    776               {Mixed, 1}, {Empty, 95}, {Full, 1}, {Empty, 1311}, {Mixed, 1},
    777               {Empty, 164}, {Mixed, 2}, {Empty, 1}, {Mixed, 2}, {Empty, 17},
    778               {Full, 2}, {Mixed, 1}, {Full, 1}, {Mixed, 3}, {Full, 1},
    779               {Mixed, 3}, {Full, 10}, {Mixed, 1}, {Full, 8}, {Mixed, 1},
    780               {Full, 1}, {Empty, 136}, {Full, 1}, {Mixed, 1}, {Empty, 38},
    781               {Mixed, 6}, {Empty, 18}, {Mixed, 5}, {Empty, 3}, {Mixed, 3},
    782               {Empty, 2093}, {Full, 16}, {Mixed, 1}, {Empty, 22575},
    783               {Full, 128}, {Empty, 6016}},
    784              {0x07fffffe, 0x773ca501, 0xff7fffff, 0x55555555, 0xaa5d5555,
    785               0x555556ab, 0xab555555, 0xb1dbced6, 0x11aed2d5, 0x4aaabff0,
    786               0x55de5555, 0x55555555, 0x6c055555, 0x0000557a, 0x01ff0000,
    787               0x3f000000, 0x0000001f, 0x0000803b, 0xc4550000, 0xfffed7f0,
    788               0x00000ffb, 0x557f8004, 0xe6b75555, 0x0000ffff, 0x55555555,
    789               0x55555401, 0x55555555, 0x55552aab, 0x55555555, 0x55555555,
    790               0xfffe5555, 0x007fffff, 0x00000080, 0x10000000, 0x01e00000,
    791               0xff000000, 0xb0000000, 0x00480000, 0x4e000000, 0x30000000,
    792               0x00080000, 0x00080000, 0x30000000, 0x00001000, 0x10842008,
    793               0x03e80200, 0x20080002, 0x02001084, 0x000020bf, 0x10000000,
    794               0x80000000, 0x00000001, 0x3f000000, 0x00300000, 0x00007800,
    795               0x000001ff, 0xf7ff7000, 0xffffbfff, 0x010007ff, 0xf8000000,
    796               0x55555555, 0x55555555, 0x55555555, 0x55555555, 0x4c155555,
    797               0x55555555, 0x55555555, 0x55555555, 0x3f00ff00, 0xff00ff00,
    798               0xaa003f00, 0x2aaaff00, 0xff9cffff, 0xef08ff9f, 0x7f9cff08,
    799               0x0082ffff, 0x50d8fc70, 0x80800380, 0xfff3ffff, 0x1fff7fff,
    800               0x00000100, 0x3e6ffeef, 0xfbffbd57, 0xffff03e1, 0x00000208,
    801               0x0001b000, 0x00000600, 0x000007ff, 0x00001000, 0x00700000,
    802               0x10000000, 0x00007fff, 0xf025ea9d, 0x55555555, 0x55555555,
    803               0x55555555, 0x00042805, 0x00008000, 0x80000000, 0x00080000,
    804               0x003fffff, 0x00000001, 0x07400000, 0x98000000, 0x80000000,
    805               0xfffe0000, 0xfffc7fff, 0x7fffffff, 0xffff00ff, 0x7fffffff,
    806               0x7fffffff, 0x55555555, 0x00001555, 0x35555555, 0x55545554,
    807               0x55555555, 0x6a015555, 0x55452855, 0x005f7d55, 0x03000000,
    808               0xf0000000, 0xffff0000, 0x7fe53fff, 0xfffffc65, 0xffff3fff,
    809               0x03ffffff, 0xa0f8007f, 0x5f7fffff, 0xffffffdb, 0x0003ffff,
    810               0xfff80000, 0x3fffffff, 0xffff0000, 0xfffcffff, 0x000000ff,
    811               0x1fff0000, 0x03ffffff, 0xffff0000, 0xfff7ff9f, 0xffd70f7f,
    812               0x9fffffff, 0xfffffffe, 0x7fffffff, 0x1cfcfcfc, 0x01ff7f7f,
    813               0x000000ff, 0xffff0000, 0x000fffff, 0x0007ffff, 0x0000000f,
    814               0xc0000000, 0x07f8001f, 0xf8000000, 0x00000001, 0xffdfffff,
    815               0xdfffffff, 0xebffde64, 0xffffffef, 0xdfdfe7bf, 0x7bffffff,
    816               0xfffdfc5f, 0xffffff3f, 0xffffcfff, 0x00000003, 0xffffffef,
    817               0x0af7fe96, 0xaa96ea84, 0x5ef7f796, 0x0ffffbff, 0x0ffffbee,
    818               0xffff07ff, 0xffff7fff, 0x0000ffff, 0x00000c00, 0x00010000,
    819               0xffff0007, 0x0fffffff, 0x000301ff, 0x3fffffff}};
    820         static BinaryPropertyObject property_object{NFKC_CF, codepoint_set};
    821     }
    822     namespace NFKC_QC_ns {
    823         /** Code Point Ranges for NFKC_QC
    824         [00a0, 00a0], [00a8, 00a8], [00aa, 00aa], [00af, 00af],
    825         [00b2, 00b5], [00b8, 00ba], [00bc, 00be], [0132, 0133],
    826         [013f, 0140], [0149, 0149], [017f, 017f], [01c4, 01cc],
    827         [01f1, 01f3], [02b0, 02b8], [02d8, 02dd], [02e0, 02e4],
    828         [0300, 0304], [0306, 030c], [030f, 030f], [0311, 0311],
    829         [0313, 0314], [031b, 031b], [0323, 0328], [032d, 032e],
    830         [0330, 0331], [0338, 0338], [0340, 0345], [0374, 0374],
    831         [037a, 037a], [037e, 037e], [0384, 0385], [0387, 0387],
    832         [03d0, 03d6], [03f0, 03f2], [03f4, 03f5], [03f9, 03f9],
    833         [0587, 0587], [0653, 0655], [0675, 0678], [093c, 093c],
    834         [0958, 095f], [09be, 09be], [09d7, 09d7], [09dc, 09dd],
    835         [09df, 09df], [0a33, 0a33], [0a36, 0a36], [0a59, 0a5b],
    836         [0a5e, 0a5e], [0b3e, 0b3e], [0b56, 0b57], [0b5c, 0b5d],
    837         [0bbe, 0bbe], [0bd7, 0bd7], [0c56, 0c56], [0cc2, 0cc2],
    838         [0cd5, 0cd6], [0d3e, 0d3e], [0d57, 0d57], [0dca, 0dca],
    839         [0dcf, 0dcf], [0ddf, 0ddf], [0e33, 0e33], [0eb3, 0eb3],
    840         [0edc, 0edd], [0f0c, 0f0c], [0f43, 0f43], [0f4d, 0f4d],
    841         [0f52, 0f52], [0f57, 0f57], [0f5c, 0f5c], [0f69, 0f69],
    842         [0f73, 0f73], [0f75, 0f79], [0f81, 0f81], [0f93, 0f93],
    843         [0f9d, 0f9d], [0fa2, 0fa2], [0fa7, 0fa7], [0fac, 0fac],
    844         [0fb9, 0fb9], [102e, 102e], [10fc, 10fc], [1161, 1175],
    845         [11a8, 11c2], [1b35, 1b35], [1d2c, 1d2e], [1d30, 1d3a],
    846         [1d3c, 1d4d], [1d4f, 1d6a], [1d78, 1d78], [1d9b, 1dbf],
    847         [1e9a, 1e9b], [1f71, 1f71], [1f73, 1f73], [1f75, 1f75],
    848         [1f77, 1f77], [1f79, 1f79], [1f7b, 1f7b], [1f7d, 1f7d],
    849         [1fbb, 1fbb], [1fbd, 1fc1], [1fc9, 1fc9], [1fcb, 1fcb],
    850         [1fcd, 1fcf], [1fd3, 1fd3], [1fdb, 1fdb], [1fdd, 1fdf],
    851         [1fe3, 1fe3], [1feb, 1feb], [1fed, 1fef], [1ff9, 1ff9],
    852         [1ffb, 1ffb], [1ffd, 1ffe], [2000, 200a], [2011, 2011],
    853         [2017, 2017], [2024, 2026], [202f, 202f], [2033, 2034],
    854         [2036, 2037], [203c, 203c], [203e, 203e], [2047, 2049],
    855         [2057, 2057], [205f, 205f], [2070, 2071], [2074, 208e],
    856         [2090, 209c], [20a8, 20a8], [2100, 2103], [2105, 2107],
    857         [2109, 2113], [2115, 2116], [2119, 211d], [2120, 2122],
    858         [2124, 2124], [2126, 2126], [2128, 2128], [212a, 212d],
    859         [212f, 2131], [2133, 2139], [213b, 2140], [2145, 2149],
    860         [2150, 217f], [2189, 2189], [222c, 222d], [222f, 2230],
    861         [2329, 232a], [2460, 24ea], [2a0c, 2a0c], [2a74, 2a76],
    862         [2adc, 2adc], [2c7c, 2c7d], [2d6f, 2d6f], [2e9f, 2e9f],
    863         [2ef3, 2ef3], [2f00, 2fd5], [3000, 3000], [3036, 3036],
    864         [3038, 303a], [3099, 309c], [309f, 309f], [30ff, 30ff],
    865         [3131, 318e], [3192, 319f], [3200, 321e], [3220, 3247],
    866         [3250, 327e], [3280, 32fe], [3300, 33ff], [a69c, a69d],
    867         [a770, a770], [a7f8, a7f9], [ab5c, ab5f], [f900, fa0d],
    868         [fa10, fa10], [fa12, fa12], [fa15, fa1e], [fa20, fa20],
    869         [fa22, fa22], [fa25, fa26], [fa2a, fa6d], [fa70, fad9],
    870         [fb00, fb06], [fb13, fb17], [fb1d, fb1d], [fb1f, fb36],
    871         [fb38, fb3c], [fb3e, fb3e], [fb40, fb41], [fb43, fb44],
    872         [fb46, fbb1], [fbd3, fd3d], [fd50, fd8f], [fd92, fdc7],
    873         [fdf0, fdfc], [fe10, fe19], [fe30, fe44], [fe47, fe52],
    874         [fe54, fe66], [fe68, fe6b], [fe70, fe72], [fe74, fe74],
    875         [fe76, fefc], [ff01, ffbe], [ffc2, ffc7], [ffca, ffcf],
    876         [ffd2, ffd7], [ffda, ffdc], [ffe0, ffe6], [ffe8, ffee],
    877         [110ba, 110ba], [11127, 11127], [1133e, 1133e], [11357, 11357],
    878         [114b0, 114b0], [114ba, 114ba], [114bd, 114bd], [115af, 115af],
    879         [1d15e, 1d164], [1d1bb, 1d1c0], [1d400, 1d454], [1d456, 1d49c],
    880         [1d49e, 1d49f], [1d4a2, 1d4a2], [1d4a5, 1d4a6], [1d4a9, 1d4ac],
    881         [1d4ae, 1d4b9], [1d4bb, 1d4bb], [1d4bd, 1d4c3], [1d4c5, 1d505],
    882         [1d507, 1d50a], [1d50d, 1d514], [1d516, 1d51c], [1d51e, 1d539],
    883         [1d53b, 1d53e], [1d540, 1d544], [1d546, 1d546], [1d54a, 1d550],
    884         [1d552, 1d6a5], [1d6a8, 1d7cb], [1d7ce, 1d7ff], [1ee00, 1ee03],
    885         [1ee05, 1ee1f], [1ee21, 1ee22], [1ee24, 1ee24], [1ee27, 1ee27],
    886         [1ee29, 1ee32], [1ee34, 1ee37], [1ee39, 1ee39], [1ee3b, 1ee3b],
    887         [1ee42, 1ee42], [1ee47, 1ee47], [1ee49, 1ee49], [1ee4b, 1ee4b],
    888         [1ee4d, 1ee4f], [1ee51, 1ee52], [1ee54, 1ee54], [1ee57, 1ee57],
    889         [1ee59, 1ee59], [1ee5b, 1ee5b], [1ee5d, 1ee5d], [1ee5f, 1ee5f],
    890         [1ee61, 1ee62], [1ee64, 1ee64], [1ee67, 1ee6a], [1ee6c, 1ee72],
    891         [1ee74, 1ee77], [1ee79, 1ee7c], [1ee7e, 1ee7e], [1ee80, 1ee89],
    892         [1ee8b, 1ee9b], [1eea1, 1eea3], [1eea5, 1eea9], [1eeab, 1eebb],
    893         [1f100, 1f10a], [1f110, 1f12e], [1f130, 1f14f], [1f16a, 1f16b],
    894         [1f190, 1f190], [1f200, 1f202], [1f210, 1f23b], [1f240, 1f248],
    895         [1f250, 1f251], [2f800, 2fa1d]**/
    896         const UnicodeSet codepoint_set
    897             {{{Empty, 5}, {Mixed, 1}, {Empty, 3}, {Mixed, 3}, {Empty, 2},
    898               {Mixed, 2}, {Empty, 5}, {Mixed, 8}, {Empty, 1}, {Mixed, 2},
    899               {Empty, 12}, {Mixed, 1}, {Empty, 5}, {Mixed, 2}, {Empty, 21},
    900               {Mixed, 2}, {Empty, 2}, {Mixed, 2}, {Empty, 2}, {Mixed, 2},
    901               {Empty, 6}, {Mixed, 2}, {Empty, 2}, {Mixed, 2}, {Empty, 3},
    902               {Mixed, 1}, {Empty, 3}, {Mixed, 1}, {Empty, 2}, {Mixed, 2},
    903               {Empty, 3}, {Mixed, 1}, {Empty, 2}, {Mixed, 1}, {Empty, 3},
    904               {Mixed, 2}, {Empty, 1}, {Mixed, 1}, {Empty, 1}, {Mixed, 4},
    905               {Empty, 3}, {Mixed, 1}, {Empty, 5}, {Mixed, 1}, {Empty, 3},
    906               {Mixed, 1}, {Empty, 1}, {Mixed, 2}, {Empty, 74}, {Mixed, 1},
    907               {Empty, 15}, {Mixed, 4}, {Full, 1}, {Empty, 6}, {Mixed, 1},
    908               {Empty, 6}, {Mixed, 1}, {Empty, 1}, {Mixed, 9}, {Empty, 2},
    909               {Mixed, 3}, {Full, 1}, {Mixed, 1}, {Empty, 4}, {Mixed, 1},
    910               {Empty, 7}, {Mixed, 1}, {Empty, 9}, {Full, 4}, {Mixed, 1},
    911               {Empty, 40}, {Mixed, 1}, {Empty, 2}, {Mixed, 1}, {Empty, 2},
    912               {Mixed, 1}, {Empty, 12}, {Mixed, 1}, {Empty, 7}, {Mixed, 1},
    913               {Empty, 8}, {Mixed, 1}, {Empty, 2}, {Mixed, 1}, {Full, 6},
    914               {Mixed, 1}, {Empty, 1}, {Mixed, 2}, {Empty, 2}, {Mixed, 1},
    915               {Empty, 2}, {Mixed, 1}, {Empty, 1}, {Mixed, 1}, {Full, 2},
    916               {Mixed, 1}, {Empty, 3}, {Mixed, 1}, {Full, 1}, {Mixed, 2},
    917               {Full, 3}, {Mixed, 1}, {Full, 8}, {Empty, 916}, {Mixed, 1},
    918               {Empty, 6}, {Mixed, 1}, {Empty, 3}, {Mixed, 1}, {Empty, 26},
    919               {Mixed, 1}, {Empty, 621}, {Full, 8}, {Mixed, 2}, {Full, 1},
    920               {Mixed, 1}, {Full, 2}, {Mixed, 1}, {Empty, 1}, {Mixed, 3},
    921               {Full, 2}, {Mixed, 2}, {Full, 10}, {Mixed, 2}, {Full, 1},
    922               {Mixed, 1}, {Full, 1}, {Mixed, 6}, {Full, 3}, {Mixed, 2},
    923               {Full, 4}, {Mixed, 3}, {Empty, 133}, {Mixed, 1}, {Empty, 3},
    924               {Mixed, 1}, {Empty, 15}, {Mixed, 2}, {Empty, 10}, {Mixed, 1},
    925               {Empty, 7}, {Mixed, 1}, {Empty, 1500}, {Mixed, 2}, {Empty, 1},
    926               {Mixed, 2}, {Empty, 17}, {Full, 2}, {Mixed, 1}, {Full, 1},
    927               {Mixed, 3}, {Full, 1}, {Mixed, 3}, {Full, 10}, {Mixed, 1},
    928               {Full, 8}, {Mixed, 1}, {Full, 1}, {Empty, 176}, {Mixed, 6},
    929               {Empty, 18}, {Mixed, 5}, {Empty, 3}, {Mixed, 3},
    930               {Empty, 2093}, {Full, 16}, {Mixed, 1}, {Empty, 28719}},
    931              {0x773c8501, 0x800c0000, 0x00000201, 0x80000000, 0x00001ff0,
    932               0x000e0000, 0x01ff0000, 0x3f000000, 0x0000001f, 0x081a9fdf,
    933               0x010361f8, 0x0000003f, 0x44100000, 0x000000b0, 0x007f0000,
    934               0x02370000, 0x00000080, 0x00380000, 0x01e00000, 0x10000000,
    935               0xff000000, 0x40000000, 0xb0800000, 0x00480000, 0x4e000000,
    936               0x40000000, 0x30c00000, 0x40000000, 0x00800000, 0x00400000,
    937               0x00600004, 0x40000000, 0x00800000, 0x80008400, 0x00080000,
    938               0x00080000, 0x30000000, 0x00001000, 0x10842008, 0x03e80200,
    939               0x20080002, 0x02001084, 0x00004000, 0x10000000, 0x003ffffe,
    940               0xffffff00, 0x00000007, 0x00200000, 0xf7ff7000, 0xffffbfff,
    941               0x010007ff, 0xf8000000, 0x0c000000, 0x2aaa0000, 0xe8000000,
    942               0xe808ea03, 0x6a00e808, 0x008207ff, 0x50d88070, 0x80800380,
    943               0xfff30000, 0x1fff7fff, 0x00000100, 0x3e6ffeef, 0xfbfbbd57,
    944               0xffff03e1, 0x00000200, 0x0001b000, 0x00000600, 0x000007ff,
    945               0x00001000, 0x00700000, 0x10000000, 0x30000000, 0x00008000,
    946               0x80000000, 0x00080000, 0x003fffff, 0x00000001, 0x07400000,
    947               0x9e000000, 0x80000000, 0xfffe0000, 0xfffc7fff, 0x7fffffff,
    948               0xffff00ff, 0x7fffffff, 0x7fffffff, 0x30000000, 0x00010000,
    949               0x03000000, 0xf0000000, 0x7fe53fff, 0xfffffc65, 0xffff3fff,
    950               0x03ffffff, 0xa0f8007f, 0x5f7fffff, 0xffffffdb, 0x0003ffff,
    951               0xfff80000, 0x3fffffff, 0xffff0000, 0xfffcffff, 0x000000ff,
    952               0x1fff0000, 0x03ff0000, 0xffff0000, 0xfff7ff9f, 0xffd70f7f,
    953               0x1fffffff, 0xfffffffe, 0x7fffffff, 0x1cfcfcfc, 0x00007f7f,
    954               0x04000000, 0x00000080, 0x40000000, 0x00800000, 0x24010000,
    955               0x00008000, 0xc0000000, 0x0000001f, 0xf8000000, 0x00000001,
    956               0xffdfffff, 0xdfffffff, 0xebffde64, 0xffffffef, 0xdfdfe7bf,
    957               0x7bffffff, 0xfffdfc5f, 0xffffff3f, 0xffffcfff, 0xffffffef,
    958               0x0af7fe96, 0xaa96ea84, 0x5ef7f796, 0x0ffffbff, 0x0ffffbee,
    959               0xffff07ff, 0xffff7fff, 0x0000ffff, 0x00000c00, 0x00010000,
    960               0xffff0007, 0x0fffffff, 0x000301ff, 0x3fffffff}};
    961         static BinaryPropertyObject property_object{NFKC_QC, codepoint_set};
    962     }
    963     namespace NFKD_QC_ns {
    964         /** Code Point Ranges for NFKD_QC
    965         [00a0, 00a0], [00a8, 00a8], [00aa, 00aa], [00af, 00af],
    966         [00b2, 00b5], [00b8, 00ba], [00bc, 00be], [00c0, 00c5],
    967         [00c7, 00cf], [00d1, 00d6], [00d9, 00dd], [00e0, 00e5],
    968         [00e7, 00ef], [00f1, 00f6], [00f9, 00fd], [00ff, 010f],
    969         [0112, 0125], [0128, 0130], [0132, 0137], [0139, 0140],
    970         [0143, 0149], [014c, 0151], [0154, 0165], [0168, 017f],
    971         [01a0, 01a1], [01af, 01b0], [01c4, 01dc], [01de, 01e3],
    972         [01e6, 01f5], [01f8, 021b], [021e, 021f], [0226, 0233],
    973         [02b0, 02b8], [02d8, 02dd], [02e0, 02e4], [0340, 0341],
    974         [0343, 0344], [0374, 0374], [037a, 037a], [037e, 037e],
    975         [0384, 038a], [038c, 038c], [038e, 0390], [03aa, 03b0],
    976         [03ca, 03ce], [03d0, 03d6], [03f0, 03f2], [03f4, 03f5],
    977         [03f9, 03f9], [0400, 0401], [0403, 0403], [0407, 0407],
    978         [040c, 040e], [0419, 0419], [0439, 0439], [0450, 0451],
    979         [0453, 0453], [0457, 0457], [045c, 045e], [0476, 0477],
    980         [04c1, 04c2], [04d0, 04d3], [04d6, 04d7], [04da, 04df],
    981         [04e2, 04e7], [04ea, 04f5], [04f8, 04f9], [0587, 0587],
    982         [0622, 0626], [0675, 0678], [06c0, 06c0], [06c2, 06c2],
    983         [06d3, 06d3], [0929, 0929], [0931, 0931], [0934, 0934],
    984         [0958, 095f], [09cb, 09cc], [09dc, 09dd], [09df, 09df],
    985         [0a33, 0a33], [0a36, 0a36], [0a59, 0a5b], [0a5e, 0a5e],
    986         [0b48, 0b48], [0b4b, 0b4c], [0b5c, 0b5d], [0b94, 0b94],
    987         [0bca, 0bcc], [0c48, 0c48], [0cc0, 0cc0], [0cc7, 0cc8],
    988         [0cca, 0ccb], [0d4a, 0d4c], [0dda, 0dda], [0ddc, 0dde],
    989         [0e33, 0e33], [0eb3, 0eb3], [0edc, 0edd], [0f0c, 0f0c],
    990         [0f43, 0f43], [0f4d, 0f4d], [0f52, 0f52], [0f57, 0f57],
    991         [0f5c, 0f5c], [0f69, 0f69], [0f73, 0f73], [0f75, 0f79],
    992         [0f81, 0f81], [0f93, 0f93], [0f9d, 0f9d], [0fa2, 0fa2],
    993         [0fa7, 0fa7], [0fac, 0fac], [0fb9, 0fb9], [1026, 1026],
    994         [10fc, 10fc], [1b06, 1b06], [1b08, 1b08], [1b0a, 1b0a],
    995         [1b0c, 1b0c], [1b0e, 1b0e], [1b12, 1b12], [1b3b, 1b3b],
    996         [1b3d, 1b3d], [1b40, 1b41], [1b43, 1b43], [1d2c, 1d2e],
    997         [1d30, 1d3a], [1d3c, 1d4d], [1d4f, 1d6a], [1d78, 1d78],
    998         [1d9b, 1dbf], [1e00, 1e9b], [1ea0, 1ef9], [1f00, 1f15],
    999         [1f18, 1f1d], [1f20, 1f45], [1f48, 1f4d], [1f50, 1f57],
    1000         [1f59, 1f59], [1f5b, 1f5b], [1f5d, 1f5d], [1f5f, 1f7d],
    1001         [1f80, 1fb4], [1fb6, 1fc4], [1fc6, 1fd3], [1fd6, 1fdb],
    1002         [1fdd, 1fef], [1ff2, 1ff4], [1ff6, 1ffe], [2000, 200a],
    1003         [2011, 2011], [2017, 2017], [2024, 2026], [202f, 202f],
    1004         [2033, 2034], [2036, 2037], [203c, 203c], [203e, 203e],
    1005         [2047, 2049], [2057, 2057], [205f, 205f], [2070, 2071],
    1006         [2074, 208e], [2090, 209c], [20a8, 20a8], [2100, 2103],
    1007         [2105, 2107], [2109, 2113], [2115, 2116], [2119, 211d],
    1008         [2120, 2122], [2124, 2124], [2126, 2126], [2128, 2128],
    1009         [212a, 212d], [212f, 2131], [2133, 2139], [213b, 2140],
    1010         [2145, 2149], [2150, 217f], [2189, 2189], [219a, 219b],
    1011         [21ae, 21ae], [21cd, 21cf], [2204, 2204], [2209, 2209],
    1012         [220c, 220c], [2224, 2224], [2226, 2226], [222c, 222d],
    1013         [222f, 2230], [2241, 2241], [2244, 2244], [2247, 2247],
    1014         [2249, 2249], [2260, 2260], [2262, 2262], [226d, 2271],
    1015         [2274, 2275], [2278, 2279], [2280, 2281], [2284, 2285],
    1016         [2288, 2289], [22ac, 22af], [22e0, 22e3], [22ea, 22ed],
    1017         [2329, 232a], [2460, 24ea], [2a0c, 2a0c], [2a74, 2a76],
    1018         [2adc, 2adc], [2c7c, 2c7d], [2d6f, 2d6f], [2e9f, 2e9f],
    1019         [2ef3, 2ef3], [2f00, 2fd5], [3000, 3000], [3036, 3036],
    1020         [3038, 303a], [304c, 304c], [304e, 304e], [3050, 3050],
    1021         [3052, 3052], [3054, 3054], [3056, 3056], [3058, 3058],
    1022         [305a, 305a], [305c, 305c], [305e, 305e], [3060, 3060],
    1023         [3062, 3062], [3065, 3065], [3067, 3067], [3069, 3069],
    1024         [3070, 3071], [3073, 3074], [3076, 3077], [3079, 307a],
    1025         [307c, 307d], [3094, 3094], [309b, 309c], [309e, 309f],
    1026         [30ac, 30ac], [30ae, 30ae], [30b0, 30b0], [30b2, 30b2],
    1027         [30b4, 30b4], [30b6, 30b6], [30b8, 30b8], [30ba, 30ba],
    1028         [30bc, 30bc], [30be, 30be], [30c0, 30c0], [30c2, 30c2],
    1029         [30c5, 30c5], [30c7, 30c7], [30c9, 30c9], [30d0, 30d1],
    1030         [30d3, 30d4], [30d6, 30d7], [30d9, 30da], [30dc, 30dd],
    1031         [30f4, 30f4], [30f7, 30fa], [30fe, 30ff], [3131, 318e],
    1032         [3192, 319f], [3200, 321e], [3220, 3247], [3250, 327e],
    1033         [3280, 32fe], [3300, 33ff], [a69c, a69d], [a770, a770],
    1034         [a7f8, a7f9], [ab5c, ab5f], [ac00, d7a3], [f900, fa0d],
    1035         [fa10, fa10], [fa12, fa12], [fa15, fa1e], [fa20, fa20],
    1036         [fa22, fa22], [fa25, fa26], [fa2a, fa6d], [fa70, fad9],
    1037         [fb00, fb06], [fb13, fb17], [fb1d, fb1d], [fb1f, fb36],
    1038         [fb38, fb3c], [fb3e, fb3e], [fb40, fb41], [fb43, fb44],
    1039         [fb46, fbb1], [fbd3, fd3d], [fd50, fd8f], [fd92, fdc7],
    1040         [fdf0, fdfc], [fe10, fe19], [fe30, fe44], [fe47, fe52],
    1041         [fe54, fe66], [fe68, fe6b], [fe70, fe72], [fe74, fe74],
    1042         [fe76, fefc], [ff01, ffbe], [ffc2, ffc7], [ffca, ffcf],
    1043         [ffd2, ffd7], [ffda, ffdc], [ffe0, ffe6], [ffe8, ffee],
    1044         [1109a, 1109a], [1109c, 1109c], [110ab, 110ab], [1112e, 1112f],
    1045         [1134b, 1134c], [114bb, 114bc], [114be, 114be], [115ba, 115bb],
    1046         [1d15e, 1d164], [1d1bb, 1d1c0], [1d400, 1d454], [1d456, 1d49c],
    1047         [1d49e, 1d49f], [1d4a2, 1d4a2], [1d4a5, 1d4a6], [1d4a9, 1d4ac],
    1048         [1d4ae, 1d4b9], [1d4bb, 1d4bb], [1d4bd, 1d4c3], [1d4c5, 1d505],
    1049         [1d507, 1d50a], [1d50d, 1d514], [1d516, 1d51c], [1d51e, 1d539],
    1050         [1d53b, 1d53e], [1d540, 1d544], [1d546, 1d546], [1d54a, 1d550],
    1051         [1d552, 1d6a5], [1d6a8, 1d7cb], [1d7ce, 1d7ff], [1ee00, 1ee03],
    1052         [1ee05, 1ee1f], [1ee21, 1ee22], [1ee24, 1ee24], [1ee27, 1ee27],
    1053         [1ee29, 1ee32], [1ee34, 1ee37], [1ee39, 1ee39], [1ee3b, 1ee3b],
    1054         [1ee42, 1ee42], [1ee47, 1ee47], [1ee49, 1ee49], [1ee4b, 1ee4b],
    1055         [1ee4d, 1ee4f], [1ee51, 1ee52], [1ee54, 1ee54], [1ee57, 1ee57],
    1056         [1ee59, 1ee59], [1ee5b, 1ee5b], [1ee5d, 1ee5d], [1ee5f, 1ee5f],
    1057         [1ee61, 1ee62], [1ee64, 1ee64], [1ee67, 1ee6a], [1ee6c, 1ee72],
    1058         [1ee74, 1ee77], [1ee79, 1ee7c], [1ee7e, 1ee7e], [1ee80, 1ee89],
    1059         [1ee8b, 1ee9b], [1eea1, 1eea3], [1eea5, 1eea9], [1eeab, 1eebb],
    1060         [1f100, 1f10a], [1f110, 1f12e], [1f130, 1f14f], [1f16a, 1f16b],
    1061         [1f190, 1f190], [1f200, 1f202], [1f210, 1f23b], [1f240, 1f248],
    1062         [1f250, 1f251], [2f800, 2fa1d]**/
    1063         const UnicodeSet codepoint_set
    1064             {{{Empty, 5}, {Mixed, 7}, {Empty, 1}, {Mixed, 5}, {Empty, 3},
    1065               {Mixed, 3}, {Empty, 2}, {Mixed, 10}, {Empty, 2}, {Mixed, 2},
    1066               {Empty, 4}, {Mixed, 1}, {Empty, 4}, {Mixed, 1}, {Empty, 1},
    1067               {Mixed, 1}, {Empty, 2}, {Mixed, 1}, {Empty, 18}, {Mixed, 2},
    1068               {Empty, 3}, {Mixed, 1}, {Empty, 2}, {Mixed, 2}, {Empty, 7},
    1069               {Mixed, 1}, {Empty, 1}, {Mixed, 1}, {Empty, 1}, {Mixed, 1},
    1070               {Empty, 3}, {Mixed, 1}, {Empty, 3}, {Mixed, 1}, {Empty, 3},
    1071               {Mixed, 1}, {Empty, 3}, {Mixed, 1}, {Empty, 2}, {Mixed, 1},
    1072               {Empty, 3}, {Mixed, 2}, {Empty, 1}, {Mixed, 1}, {Empty, 1},
    1073               {Mixed, 4}, {Empty, 3}, {Mixed, 1}, {Empty, 5}, {Mixed, 1},
    1074               {Empty, 80}, {Mixed, 3}, {Empty, 14}, {Mixed, 4}, {Full, 1},
    1075               {Empty, 2}, {Full, 4}, {Mixed, 1}, {Full, 2}, {Mixed, 2},
    1076               {Full, 1}, {Mixed, 2}, {Full, 1}, {Mixed, 9}, {Empty, 2},
    1077               {Mixed, 3}, {Full, 1}, {Mixed, 3}, {Empty, 1}, {Mixed, 6},
    1078               {Empty, 1}, {Mixed, 1}, {Empty, 1}, {Mixed, 1}, {Empty, 9},
    1079               {Full, 4}, {Mixed, 1}, {Empty, 40}, {Mixed, 1}, {Empty, 2},
    1080               {Mixed, 1}, {Empty, 2}, {Mixed, 1}, {Empty, 12}, {Mixed, 1},
    1081               {Empty, 7}, {Mixed, 1}, {Empty, 8}, {Mixed, 1}, {Empty, 2},
    1082               {Mixed, 1}, {Full, 6}, {Mixed, 1}, {Empty, 1}, {Mixed, 8},
    1083               {Empty, 1}, {Mixed, 1}, {Full, 2}, {Mixed, 1}, {Empty, 3},
    1084               {Mixed, 1}, {Full, 1}, {Mixed, 2}, {Full, 3}, {Mixed, 1},
    1085               {Full, 8}, {Empty, 916}, {Mixed, 1}, {Empty, 6}, {Mixed, 1},
    1086               {Empty, 3}, {Mixed, 1}, {Empty, 26}, {Mixed, 1}, {Empty, 5},
    1087               {Full, 349}, {Mixed, 1}, {Empty, 266}, {Full, 8}, {Mixed, 2},
    1088               {Full, 1}, {Mixed, 1}, {Full, 2}, {Mixed, 1}, {Empty, 1},
    1089               {Mixed, 3}, {Full, 2}, {Mixed, 2}, {Full, 10}, {Mixed, 2},
    1090               {Full, 1}, {Mixed, 1}, {Full, 1}, {Mixed, 6}, {Full, 3},
    1091               {Mixed, 2}, {Full, 4}, {Mixed, 3}, {Empty, 132}, {Mixed, 2},
    1092               {Empty, 3}, {Mixed, 1}, {Empty, 16}, {Mixed, 1}, {Empty, 10},
    1093               {Mixed, 1}, {Empty, 7}, {Mixed, 1}, {Empty, 1500}, {Mixed, 2},
    1094               {Empty, 1}, {Mixed, 2}, {Empty, 17}, {Full, 2}, {Mixed, 1},
    1095               {Full, 1}, {Mixed, 3}, {Full, 1}, {Mixed, 3}, {Full, 10},
    1096               {Mixed, 1}, {Full, 8}, {Mixed, 1}, {Full, 1}, {Empty, 176},
    1097               {Mixed, 6}, {Empty, 18}, {Mixed, 5}, {Empty, 3}, {Mixed, 3},
    1098               {Empty, 2093}, {Full, 16}, {Mixed, 1}, {Empty, 28719}},
    1099              {0x773c8501, 0x3e7effbf, 0xbe7effbf, 0xfffcffff, 0xfefdff3f,
    1100               0xfff3f3f9, 0xffffff3f, 0x00018003, 0xdffffff0, 0xff3fffcf,
    1101               0xcfffffff, 0x000fffc0, 0x01ff0000, 0x3f000000, 0x0000001f,
    1102               0x0000001b, 0x44100000, 0x0001d7f0, 0x0001fc00, 0x007f7c00,
    1103               0x02370000, 0x0200708b, 0x02000000, 0x708b0000, 0x00c00000,
    1104               0xfccf0006, 0x033ffcfc, 0x00000080, 0x0000007c, 0x01e00000,
    1105               0x00080005, 0x00120200, 0xff000000, 0xb0001800, 0x00480000,
    1106               0x4e000000, 0x30001900, 0x00100000, 0x00001c00, 0x00000100,
    1107               0x00000d81, 0x00001c00, 0x74000000, 0x00080000, 0x00080000,
    1108               0x30000000, 0x00001000, 0x10842008, 0x03e80200, 0x20080002,
    1109               0x02001084, 0x00000040, 0x10000000, 0x00045540, 0x28000000,
    1110               0x0000000b, 0xf7ff7000, 0xffffbfff, 0x010007ff, 0xf8000000,
    1111               0x0fffffff, 0x03ffffff, 0x3f3fffff, 0xaaff3f3f, 0x3fffffff,
    1112               0xffdfffff, 0xefcfffdf, 0x7fdcffff, 0x008207ff, 0x50d88070,
    1113               0x80800380, 0xfff30000, 0x1fff7fff, 0x00000100, 0x3e6ffeef,
    1114               0xfbfbbd57, 0xffff03e1, 0x0c000200, 0x00004000, 0x0000e000,
    1115               0x00001210, 0x0001b050, 0x00000292, 0x0333e005, 0x00000333,
    1116               0x0000f000, 0x00003c0f, 0x00000600, 0x000007ff, 0x00001000,
    1117               0x00700000, 0x10000000, 0x30000000, 0x00008000, 0x80000000,
    1118               0x00080000, 0x003fffff, 0x00000001, 0x07400000, 0x55555000,
    1119               0x36db02a5, 0xd8100000, 0x55555000, 0x36db02a5, 0xc7900000,
    1120               0xfffe0000, 0xfffc7fff, 0x7fffffff, 0xffff00ff, 0x7fffffff,
    1121               0x7fffffff, 0x30000000, 0x00010000, 0x03000000, 0xf0000000,
    1122               0x0000000f, 0x7fe53fff, 0xfffffc65, 0xffff3fff, 0x03ffffff,
    1123               0xa0f8007f, 0x5f7fffff, 0xffffffdb, 0x0003ffff, 0xfff80000,
    1124               0x3fffffff, 0xffff0000, 0xfffcffff, 0x000000ff, 0x1fff0000,
    1125               0x03ff0000, 0xffff0000, 0xfff7ff9f, 0xffd70f7f, 0x1fffffff,
    1126               0xfffffffe, 0x7fffffff, 0x1cfcfcfc, 0x00007f7f, 0x14000000,
    1127               0x00000800, 0x0000c000, 0x00001800, 0x58000000, 0x0c000000,
    1128               0xc0000000, 0x0000001f, 0xf8000000, 0x00000001, 0xffdfffff,
    1129               0xdfffffff, 0xebffde64, 0xffffffef, 0xdfdfe7bf, 0x7bffffff,
    1130               0xfffdfc5f, 0xffffff3f, 0xffffcfff, 0xffffffef, 0x0af7fe96,
    1131               0xaa96ea84, 0x5ef7f796, 0x0ffffbff, 0x0ffffbee, 0xffff07ff,
    1132               0xffff7fff, 0x0000ffff, 0x00000c00, 0x00010000, 0xffff0007,
    1133               0x0fffffff, 0x000301ff, 0x3fffffff}};
    1134         static BinaryPropertyObject property_object{NFKD_QC, codepoint_set};
     918  namespace NFKD_QC_ns {
     919    const unsigned independent_prop_values = 2;
     920    /** Code Point Ranges for Y
     921    [0000, 009f], [00a1, 00a7], [00a9, 00a9], [00ab, 00ae], [00b0, 00b1],
     922    [00b6, 00b7], [00bb, 00bb], [00bf, 00bf], [00c6, 00c6], [00d0, 00d0],
     923    [00d7, 00d8], [00de, 00df], [00e6, 00e6], [00f0, 00f0], [00f7, 00f8],
     924    [00fe, 00fe], [0110, 0111], [0126, 0127], [0131, 0131], [0138, 0138],
     925    [0141, 0142], [014a, 014b], [0152, 0153], [0166, 0167], [0180, 019f],
     926    [01a2, 01ae], [01b1, 01c3], [01dd, 01dd], [01e4, 01e5], [01f6, 01f7],
     927    [021c, 021d], [0220, 0225], [0234, 02af], [02b9, 02d7], [02de, 02df],
     928    [02e5, 033f], [0342, 0342], [0345, 0373], [0375, 0379], [037b, 037d],
     929    [037f, 0383], [038b, 038b], [038d, 038d], [0391, 03a9], [03b1, 03c9],
     930    [03cf, 03cf], [03d7, 03ef], [03f3, 03f3], [03f6, 03f8], [03fa, 03ff],
     931    [0402, 0402], [0404, 0406], [0408, 040b], [040f, 0418], [041a, 0438],
     932    [043a, 044f], [0452, 0452], [0454, 0456], [0458, 045b], [045f, 0475],
     933    [0478, 04c0], [04c3, 04cf], [04d4, 04d5], [04d8, 04d9], [04e0, 04e1],
     934    [04e8, 04e9], [04f6, 04f7], [04fa, 0586], [0588, 0621], [0627, 0674],
     935    [0679, 06bf], [06c1, 06c1], [06c3, 06d2], [06d4, 0928], [092a, 0930],
     936    [0932, 0933], [0935, 0957], [0960, 09ca], [09cd, 09db], [09de, 09de],
     937    [09e0, 0a32], [0a34, 0a35], [0a37, 0a58], [0a5c, 0a5d], [0a5f, 0b47],
     938    [0b49, 0b4a], [0b4d, 0b5b], [0b5e, 0b93], [0b95, 0bc9], [0bcd, 0c47],
     939    [0c49, 0cbf], [0cc1, 0cc6], [0cc9, 0cc9], [0ccc, 0d49], [0d4d, 0dd9],
     940    [0ddb, 0ddb], [0ddf, 0e32], [0e34, 0eb2], [0eb4, 0edb], [0ede, 0f0b],
     941    [0f0d, 0f42], [0f44, 0f4c], [0f4e, 0f51], [0f53, 0f56], [0f58, 0f5b],
     942    [0f5d, 0f68], [0f6a, 0f72], [0f74, 0f74], [0f7a, 0f80], [0f82, 0f92],
     943    [0f94, 0f9c], [0f9e, 0fa1], [0fa3, 0fa6], [0fa8, 0fab], [0fad, 0fb8],
     944    [0fba, 1025], [1027, 10fb], [10fd, 1b05], [1b07, 1b07], [1b09, 1b09],
     945    [1b0b, 1b0b], [1b0d, 1b0d], [1b0f, 1b11], [1b13, 1b3a], [1b3c, 1b3c],
     946    [1b3e, 1b3f], [1b42, 1b42], [1b44, 1d2b], [1d2f, 1d2f], [1d3b, 1d3b],
     947    [1d4e, 1d4e], [1d6b, 1d77], [1d79, 1d9a], [1dc0, 1dff], [1e9c, 1e9f],
     948    [1efa, 1eff], [1f16, 1f17], [1f1e, 1f1f], [1f46, 1f47], [1f4e, 1f4f],
     949    [1f58, 1f58], [1f5a, 1f5a], [1f5c, 1f5c], [1f5e, 1f5e], [1f7e, 1f7f],
     950    [1fb5, 1fb5], [1fc5, 1fc5], [1fd4, 1fd5], [1fdc, 1fdc], [1ff0, 1ff1],
     951    [1ff5, 1ff5], [1fff, 1fff], [200b, 2010], [2012, 2016], [2018, 2023],
     952    [2027, 202e], [2030, 2032], [2035, 2035], [2038, 203b], [203d, 203d],
     953    [203f, 2046], [204a, 2056], [2058, 205e], [2060, 206f], [2072, 2073],
     954    [208f, 208f], [209d, 20a7], [20a9, 20ff], [2104, 2104], [2108, 2108],
     955    [2114, 2114], [2117, 2118], [211e, 211f], [2123, 2123], [2125, 2125],
     956    [2127, 2127], [2129, 2129], [212e, 212e], [2132, 2132], [213a, 213a],
     957    [2141, 2144], [214a, 214f], [2180, 2188], [218a, 2199], [219c, 21ad],
     958    [21af, 21cc], [21d0, 2203], [2205, 2208], [220a, 220b], [220d, 2223],
     959    [2225, 2225], [2227, 222b], [222e, 222e], [2231, 2240], [2242, 2243],
     960    [2245, 2246], [2248, 2248], [224a, 225f], [2261, 2261], [2263, 226c],
     961    [2272, 2273], [2276, 2277], [227a, 227f], [2282, 2283], [2286, 2287],
     962    [228a, 22ab], [22b0, 22df], [22e4, 22e9], [22ee, 2328], [232b, 245f],
     963    [24eb, 2a0b], [2a0d, 2a73], [2a77, 2adb], [2add, 2c7b], [2c7e, 2d6e],
     964    [2d70, 2e9e], [2ea0, 2ef2], [2ef4, 2eff], [2fd6, 2fff], [3001, 3035],
     965    [3037, 3037], [303b, 304b], [304d, 304d], [304f, 304f], [3051, 3051],
     966    [3053, 3053], [3055, 3055], [3057, 3057], [3059, 3059], [305b, 305b],
     967    [305d, 305d], [305f, 305f], [3061, 3061], [3063, 3064], [3066, 3066],
     968    [3068, 3068], [306a, 306f], [3072, 3072], [3075, 3075], [3078, 3078],
     969    [307b, 307b], [307e, 3093], [3095, 309a], [309d, 309d], [30a0, 30ab],
     970    [30ad, 30ad], [30af, 30af], [30b1, 30b1], [30b3, 30b3], [30b5, 30b5],
     971    [30b7, 30b7], [30b9, 30b9], [30bb, 30bb], [30bd, 30bd], [30bf, 30bf],
     972    [30c1, 30c1], [30c3, 30c4], [30c6, 30c6], [30c8, 30c8], [30ca, 30cf],
     973    [30d2, 30d2], [30d5, 30d5], [30d8, 30d8], [30db, 30db], [30de, 30f3],
     974    [30f5, 30f6], [30fb, 30fd], [3100, 3130], [318f, 3191], [31a0, 31ff],
     975    [321f, 321f], [3248, 324f], [327f, 327f], [32ff, 32ff], [3400, a69b],
     976    [a69e, a76f], [a771, a7f7], [a7fa, ab5b], [ab60, abff], [d7a4, f8ff],
     977    [fa0e, fa0f], [fa11, fa11], [fa13, fa14], [fa1f, fa1f], [fa21, fa21],
     978    [fa23, fa24], [fa27, fa29], [fa6e, fa6f], [fada, faff], [fb07, fb12],
     979    [fb18, fb1c], [fb1e, fb1e], [fb37, fb37], [fb3d, fb3d], [fb3f, fb3f],
     980    [fb42, fb42], [fb45, fb45], [fbb2, fbd2], [fd3e, fd4f], [fd90, fd91],
     981    [fdc8, fdef], [fdfd, fe0f], [fe1a, fe2f], [fe45, fe46], [fe53, fe53],
     982    [fe67, fe67], [fe6c, fe6f], [fe73, fe73], [fe75, fe75], [fefd, ff00],
     983    [ffbf, ffc1], [ffc8, ffc9], [ffd0, ffd1], [ffd8, ffd9], [ffdd, ffdf],
     984    [ffe7, ffe7], [ffef, 11099], [1109b, 1109b], [1109d, 110aa],
     985    [110ac, 1112d], [11130, 1134a], [1134d, 114ba], [114bd, 114bd],
     986    [114bf, 115b9], [115bc, 1d15d], [1d165, 1d1ba], [1d1c1, 1d3ff],
     987    [1d455, 1d455], [1d49d, 1d49d], [1d4a0, 1d4a1], [1d4a3, 1d4a4],
     988    [1d4a7, 1d4a8], [1d4ad, 1d4ad], [1d4ba, 1d4ba], [1d4bc, 1d4bc],
     989    [1d4c4, 1d4c4], [1d506, 1d506], [1d50b, 1d50c], [1d515, 1d515],
     990    [1d51d, 1d51d], [1d53a, 1d53a], [1d53f, 1d53f], [1d545, 1d545],
     991    [1d547, 1d549], [1d551, 1d551], [1d6a6, 1d6a7], [1d7cc, 1d7cd],
     992    [1d800, 1edff], [1ee04, 1ee04], [1ee20, 1ee20], [1ee23, 1ee23],
     993    [1ee25, 1ee26], [1ee28, 1ee28], [1ee33, 1ee33], [1ee38, 1ee38],
     994    [1ee3a, 1ee3a], [1ee3c, 1ee41], [1ee43, 1ee46], [1ee48, 1ee48],
     995    [1ee4a, 1ee4a], [1ee4c, 1ee4c], [1ee50, 1ee50], [1ee53, 1ee53],
     996    [1ee55, 1ee56], [1ee58, 1ee58], [1ee5a, 1ee5a], [1ee5c, 1ee5c],
     997    [1ee5e, 1ee5e], [1ee60, 1ee60], [1ee63, 1ee63], [1ee65, 1ee66],
     998    [1ee6b, 1ee6b], [1ee73, 1ee73], [1ee78, 1ee78], [1ee7d, 1ee7d],
     999    [1ee7f, 1ee7f], [1ee8a, 1ee8a], [1ee9c, 1eea0], [1eea4, 1eea4],
     1000    [1eeaa, 1eeaa], [1eebc, 1f0ff], [1f10b, 1f10f], [1f12f, 1f12f],
     1001    [1f150, 1f169], [1f16c, 1f18f], [1f191, 1f1ff], [1f203, 1f20f],
     1002    [1f23c, 1f23f], [1f249, 1f24f], [1f252, 2f7ff], [2fa1e, 10ffff]**/
     1003    const UnicodeSet y_Set
     1004        {{{Full, 5}, {Mixed, 7}, {Full, 1}, {Mixed, 5}, {Full, 3},
     1005          {Mixed, 3}, {Full, 2}, {Mixed, 10}, {Full, 2}, {Mixed, 2},
     1006          {Full, 4}, {Mixed, 1}, {Full, 4}, {Mixed, 1}, {Full, 1},
     1007          {Mixed, 1}, {Full, 2}, {Mixed, 1}, {Full, 18}, {Mixed, 2},
     1008          {Full, 3}, {Mixed, 1}, {Full, 2}, {Mixed, 2}, {Full, 7},
     1009          {Mixed, 1}, {Full, 1}, {Mixed, 1}, {Full, 1}, {Mixed, 1},
     1010          {Full, 3}, {Mixed, 1}, {Full, 3}, {Mixed, 1}, {Full, 3},
     1011          {Mixed, 1}, {Full, 3}, {Mixed, 1}, {Full, 2}, {Mixed, 1},
     1012          {Full, 3}, {Mixed, 2}, {Full, 1}, {Mixed, 1}, {Full, 1},
     1013          {Mixed, 4}, {Full, 3}, {Mixed, 1}, {Full, 5}, {Mixed, 1},
     1014          {Full, 80}, {Mixed, 3}, {Full, 14}, {Mixed, 4}, {Empty, 1},
     1015          {Full, 2}, {Empty, 4}, {Mixed, 1}, {Empty, 2}, {Mixed, 2},
     1016          {Empty, 1}, {Mixed, 2}, {Empty, 1}, {Mixed, 9}, {Full, 2},
     1017          {Mixed, 3}, {Empty, 1}, {Mixed, 3}, {Full, 1}, {Mixed, 6},
     1018          {Full, 1}, {Mixed, 1}, {Full, 1}, {Mixed, 1}, {Full, 9},
     1019          {Empty, 4}, {Mixed, 1}, {Full, 40}, {Mixed, 1}, {Full, 2},
     1020          {Mixed, 1}, {Full, 2}, {Mixed, 1}, {Full, 12}, {Mixed, 1},
     1021          {Full, 7}, {Mixed, 1}, {Full, 8}, {Mixed, 1}, {Full, 2},
     1022          {Mixed, 1}, {Empty, 6}, {Mixed, 1}, {Full, 1}, {Mixed, 8},
     1023          {Full, 1}, {Mixed, 1}, {Empty, 2}, {Mixed, 1}, {Full, 3},
     1024          {Mixed, 1}, {Empty, 1}, {Mixed, 2}, {Empty, 3}, {Mixed, 1},
     1025          {Empty, 8}, {Full, 916}, {Mixed, 1}, {Full, 6}, {Mixed, 1},
     1026          {Full, 3}, {Mixed, 1}, {Full, 26}, {Mixed, 1}, {Full, 5},
     1027          {Empty, 349}, {Mixed, 1}, {Full, 266}, {Empty, 8}, {Mixed, 2},
     1028          {Empty, 1}, {Mixed, 1}, {Empty, 2}, {Mixed, 1}, {Full, 1},
     1029          {Mixed, 3}, {Empty, 2}, {Mixed, 2}, {Empty, 10}, {Mixed, 2},
     1030          {Empty, 1}, {Mixed, 1}, {Empty, 1}, {Mixed, 6}, {Empty, 3},
     1031          {Mixed, 2}, {Empty, 4}, {Mixed, 3}, {Full, 132}, {Mixed, 2},
     1032          {Full, 3}, {Mixed, 1}, {Full, 16}, {Mixed, 1}, {Full, 10},
     1033          {Mixed, 1}, {Full, 7}, {Mixed, 1}, {Full, 1500}, {Mixed, 2},
     1034          {Full, 1}, {Mixed, 2}, {Full, 17}, {Empty, 2}, {Mixed, 1},
     1035          {Empty, 1}, {Mixed, 3}, {Empty, 1}, {Mixed, 3}, {Empty, 10},
     1036          {Mixed, 1}, {Empty, 8}, {Mixed, 1}, {Empty, 1}, {Full, 176},
     1037          {Mixed, 6}, {Full, 18}, {Mixed, 5}, {Full, 3}, {Mixed, 3},
     1038          {Full, 2093}, {Empty, 16}, {Mixed, 1}, {Full, 28719}},
     1039         {0x88c37afe, 0xc1810040, 0x41810040, 0x00030000, 0x010200c0,
     1040          0x000c0c06, 0x000000c0, 0xfffe7ffc, 0x2000000f, 0x00c00030,
     1041          0x30000000, 0xfff0003f, 0xfe00ffff, 0xc0ffffff, 0xffffffe0,
     1042          0xffffffe4, 0xbbefffff, 0xfffe280f, 0xfffe03ff, 0xff8083ff,
     1043          0xfdc8ffff, 0xfdff8f74, 0xfdffffff, 0x8f74ffff, 0xff3fffff,
     1044          0x0330fff9, 0xfcc00303, 0xffffff7f, 0xffffff83, 0xfe1fffff,
     1045          0xfff7fffa, 0xffedfdff, 0x00ffffff, 0x4fffe7ff, 0xffb7ffff,
     1046          0xb1ffffff, 0xcfffe6ff, 0xffefffff, 0xffffe3ff, 0xfffffeff,
     1047          0xfffff27e, 0xffffe3ff, 0x8bffffff, 0xfff7ffff, 0xfff7ffff,
     1048          0xcfffffff, 0xffffefff, 0xef7bdff7, 0xfc17fdff, 0xdff7fffd,
     1049          0xfdffef7b, 0xffffffbf, 0xefffffff, 0xfffbaabf, 0xd7ffffff,
     1050          0xfffffff4, 0x08008fff, 0x00004000, 0xfefff800, 0x07ffffff,
     1051          0xf0000000, 0xfc000000, 0xc0c00000, 0x5500c0c0, 0xc0000000,
     1052          0x00200000, 0x10300020, 0x80230000, 0xff7df800, 0xaf277f8f,
     1053          0x7f7ffc7f, 0x000cffff, 0xe0008000, 0xfffffeff, 0xc1900110,
     1054          0x040442a8, 0x0000fc1e, 0xf3fffdff, 0xffffbfff, 0xffff1fff,
     1055          0xffffedef, 0xfffe4faf, 0xfffffd6d, 0xfccc1ffa, 0xfffffccc,
     1056          0xffff0fff, 0xffffc3f0, 0xfffff9ff, 0xfffff800, 0xffffefff,
     1057          0xff8fffff, 0xefffffff, 0xcfffffff, 0xffff7fff, 0x7fffffff,
     1058          0xfff7ffff, 0xffc00000, 0xfffffffe, 0xf8bfffff, 0xaaaaafff,
     1059          0xc924fd5a, 0x27efffff, 0xaaaaafff, 0xc924fd5a, 0x386fffff,
     1060          0x0001ffff, 0x00038000, 0x80000000, 0x0000ff00, 0x80000000,
     1061          0x80000000, 0xcfffffff, 0xfffeffff, 0xfcffffff, 0x0fffffff,
     1062          0xfffffff0, 0x801ac000, 0x0000039a, 0x0000c000, 0xfc000000,
     1063          0x5f07ff80, 0xa0800000, 0x00000024, 0xfffc0000, 0x0007ffff,
     1064          0xc0000000, 0x0000ffff, 0x00030000, 0xffffff00, 0xe000ffff,
     1065          0xfc00ffff, 0x0000ffff, 0x00080060, 0x0028f080, 0xe0000000,
     1066          0x00000001, 0x80000000, 0xe3030303, 0xffff8080, 0xebffffff,
     1067          0xfffff7ff, 0xffff3fff, 0xffffe7ff, 0xa7ffffff, 0xf3ffffff,
     1068          0x3fffffff, 0xffffffe0, 0x07ffffff, 0xfffffffe, 0x00200000,
     1069          0x20000000, 0x1400219b, 0x00000010, 0x20201840, 0x84000000,
     1070          0x000203a0, 0x000000c0, 0x00003000, 0x00000010, 0xf5080169,
     1071          0x5569157b, 0xa1080869, 0xf0000400, 0xf0000411, 0x0000f800,
     1072          0x00008000, 0xffff0000, 0xfffff3ff, 0xfffeffff, 0x0000fff8,
     1073          0xf0000000, 0xfffcfe00, 0xc0000000}};
     1074    /** Code Point Ranges for N
     1075    [00a0, 00a0], [00a8, 00a8], [00aa, 00aa], [00af, 00af], [00b2, 00b5],
     1076    [00b8, 00ba], [00bc, 00be], [00c0, 00c5], [00c7, 00cf], [00d1, 00d6],
     1077    [00d9, 00dd], [00e0, 00e5], [00e7, 00ef], [00f1, 00f6], [00f9, 00fd],
     1078    [00ff, 010f], [0112, 0125], [0128, 0130], [0132, 0137], [0139, 0140],
     1079    [0143, 0149], [014c, 0151], [0154, 0165], [0168, 017f], [01a0, 01a1],
     1080    [01af, 01b0], [01c4, 01dc], [01de, 01e3], [01e6, 01f5], [01f8, 021b],
     1081    [021e, 021f], [0226, 0233], [02b0, 02b8], [02d8, 02dd], [02e0, 02e4],
     1082    [0340, 0341], [0343, 0344], [0374, 0374], [037a, 037a], [037e, 037e],
     1083    [0384, 038a], [038c, 038c], [038e, 0390], [03aa, 03b0], [03ca, 03ce],
     1084    [03d0, 03d6], [03f0, 03f2], [03f4, 03f5], [03f9, 03f9], [0400, 0401],
     1085    [0403, 0403], [0407, 0407], [040c, 040e], [0419, 0419], [0439, 0439],
     1086    [0450, 0451], [0453, 0453], [0457, 0457], [045c, 045e], [0476, 0477],
     1087    [04c1, 04c2], [04d0, 04d3], [04d6, 04d7], [04da, 04df], [04e2, 04e7],
     1088    [04ea, 04f5], [04f8, 04f9], [0587, 0587], [0622, 0626], [0675, 0678],
     1089    [06c0, 06c0], [06c2, 06c2], [06d3, 06d3], [0929, 0929], [0931, 0931],
     1090    [0934, 0934], [0958, 095f], [09cb, 09cc], [09dc, 09dd], [09df, 09df],
     1091    [0a33, 0a33], [0a36, 0a36], [0a59, 0a5b], [0a5e, 0a5e], [0b48, 0b48],
     1092    [0b4b, 0b4c], [0b5c, 0b5d], [0b94, 0b94], [0bca, 0bcc], [0c48, 0c48],
     1093    [0cc0, 0cc0], [0cc7, 0cc8], [0cca, 0ccb], [0d4a, 0d4c], [0dda, 0dda],
     1094    [0ddc, 0dde], [0e33, 0e33], [0eb3, 0eb3], [0edc, 0edd], [0f0c, 0f0c],
     1095    [0f43, 0f43], [0f4d, 0f4d], [0f52, 0f52], [0f57, 0f57], [0f5c, 0f5c],
     1096    [0f69, 0f69], [0f73, 0f73], [0f75, 0f79], [0f81, 0f81], [0f93, 0f93],
     1097    [0f9d, 0f9d], [0fa2, 0fa2], [0fa7, 0fa7], [0fac, 0fac], [0fb9, 0fb9],
     1098    [1026, 1026], [10fc, 10fc], [1b06, 1b06], [1b08, 1b08], [1b0a, 1b0a],
     1099    [1b0c, 1b0c], [1b0e, 1b0e], [1b12, 1b12], [1b3b, 1b3b], [1b3d, 1b3d],
     1100    [1b40, 1b41], [1b43, 1b43], [1d2c, 1d2e], [1d30, 1d3a], [1d3c, 1d4d],
     1101    [1d4f, 1d6a], [1d78, 1d78], [1d9b, 1dbf], [1e00, 1e9b], [1ea0, 1ef9],
     1102    [1f00, 1f15], [1f18, 1f1d], [1f20, 1f45], [1f48, 1f4d], [1f50, 1f57],
     1103    [1f59, 1f59], [1f5b, 1f5b], [1f5d, 1f5d], [1f5f, 1f7d], [1f80, 1fb4],
     1104    [1fb6, 1fc4], [1fc6, 1fd3], [1fd6, 1fdb], [1fdd, 1fef], [1ff2, 1ff4],
     1105    [1ff6, 1ffe], [2000, 200a], [2011, 2011], [2017, 2017], [2024, 2026],
     1106    [202f, 202f], [2033, 2034], [2036, 2037], [203c, 203c], [203e, 203e],
     1107    [2047, 2049], [2057, 2057], [205f, 205f], [2070, 2071], [2074, 208e],
     1108    [2090, 209c], [20a8, 20a8], [2100, 2103], [2105, 2107], [2109, 2113],
     1109    [2115, 2116], [2119, 211d], [2120, 2122], [2124, 2124], [2126, 2126],
     1110    [2128, 2128], [212a, 212d], [212f, 2131], [2133, 2139], [213b, 2140],
     1111    [2145, 2149], [2150, 217f], [2189, 2189], [219a, 219b], [21ae, 21ae],
     1112    [21cd, 21cf], [2204, 2204], [2209, 2209], [220c, 220c], [2224, 2224],
     1113    [2226, 2226], [222c, 222d], [222f, 2230], [2241, 2241], [2244, 2244],
     1114    [2247, 2247], [2249, 2249], [2260, 2260], [2262, 2262], [226d, 2271],
     1115    [2274, 2275], [2278, 2279], [2280, 2281], [2284, 2285], [2288, 2289],
     1116    [22ac, 22af], [22e0, 22e3], [22ea, 22ed], [2329, 232a], [2460, 24ea],
     1117    [2a0c, 2a0c], [2a74, 2a76], [2adc, 2adc], [2c7c, 2c7d], [2d6f, 2d6f],
     1118    [2e9f, 2e9f], [2ef3, 2ef3], [2f00, 2fd5], [3000, 3000], [3036, 3036],
     1119    [3038, 303a], [304c, 304c], [304e, 304e], [3050, 3050], [3052, 3052],
     1120    [3054, 3054], [3056, 3056], [3058, 3058], [305a, 305a], [305c, 305c],
     1121    [305e, 305e], [3060, 3060], [3062, 3062], [3065, 3065], [3067, 3067],
     1122    [3069, 3069], [3070, 3071], [3073, 3074], [3076, 3077], [3079, 307a],
     1123    [307c, 307d], [3094, 3094], [309b, 309c], [309e, 309f], [30ac, 30ac],
     1124    [30ae, 30ae], [30b0, 30b0], [30b2, 30b2], [30b4, 30b4], [30b6, 30b6],
     1125    [30b8, 30b8], [30ba, 30ba], [30bc, 30bc], [30be, 30be], [30c0, 30c0],
     1126    [30c2, 30c2], [30c5, 30c5], [30c7, 30c7], [30c9, 30c9], [30d0, 30d1],
     1127    [30d3, 30d4], [30d6, 30d7], [30d9, 30da], [30dc, 30dd], [30f4, 30f4],
     1128    [30f7, 30fa], [30fe, 30ff], [3131, 318e], [3192, 319f], [3200, 321e],
     1129    [3220, 3247], [3250, 327e], [3280, 32fe], [3300, 33ff], [a69c, a69d],
     1130    [a770, a770], [a7f8, a7f9], [ab5c, ab5f], [ac00, d7a3], [f900, fa0d],
     1131    [fa10, fa10], [fa12, fa12], [fa15, fa1e], [fa20, fa20], [fa22, fa22],
     1132    [fa25, fa26], [fa2a, fa6d], [fa70, fad9], [fb00, fb06], [fb13, fb17],
     1133    [fb1d, fb1d], [fb1f, fb36], [fb38, fb3c], [fb3e, fb3e], [fb40, fb41],
     1134    [fb43, fb44], [fb46, fbb1], [fbd3, fd3d], [fd50, fd8f], [fd92, fdc7],
     1135    [fdf0, fdfc], [fe10, fe19], [fe30, fe44], [fe47, fe52], [fe54, fe66],
     1136    [fe68, fe6b], [fe70, fe72], [fe74, fe74], [fe76, fefc], [ff01, ffbe],
     1137    [ffc2, ffc7], [ffca, ffcf], [ffd2, ffd7], [ffda, ffdc], [ffe0, ffe6],
     1138    [ffe8, ffee], [1109a, 1109a], [1109c, 1109c], [110ab, 110ab],
     1139    [1112e, 1112f], [1134b, 1134c], [114bb, 114bc], [114be, 114be],
     1140    [115ba, 115bb], [1d15e, 1d164], [1d1bb, 1d1c0], [1d400, 1d454],
     1141    [1d456, 1d49c], [1d49e, 1d49f], [1d4a2, 1d4a2], [1d4a5, 1d4a6],
     1142    [1d4a9, 1d4ac], [1d4ae, 1d4b9], [1d4bb, 1d4bb], [1d4bd, 1d4c3],
     1143    [1d4c5, 1d505], [1d507, 1d50a], [1d50d, 1d514], [1d516, 1d51c],
     1144    [1d51e, 1d539], [1d53b, 1d53e], [1d540, 1d544], [1d546, 1d546],
     1145    [1d54a, 1d550], [1d552, 1d6a5], [1d6a8, 1d7cb], [1d7ce, 1d7ff],
     1146    [1ee00, 1ee03], [1ee05, 1ee1f], [1ee21, 1ee22], [1ee24, 1ee24],
     1147    [1ee27, 1ee27], [1ee29, 1ee32], [1ee34, 1ee37], [1ee39, 1ee39],
     1148    [1ee3b, 1ee3b], [1ee42, 1ee42], [1ee47, 1ee47], [1ee49, 1ee49],
     1149    [1ee4b, 1ee4b], [1ee4d, 1ee4f], [1ee51, 1ee52], [1ee54, 1ee54],
     1150    [1ee57, 1ee57], [1ee59, 1ee59], [1ee5b, 1ee5b], [1ee5d, 1ee5d],
     1151    [1ee5f, 1ee5f], [1ee61, 1ee62], [1ee64, 1ee64], [1ee67, 1ee6a],
     1152    [1ee6c, 1ee72], [1ee74, 1ee77], [1ee79, 1ee7c], [1ee7e, 1ee7e],
     1153    [1ee80, 1ee89], [1ee8b, 1ee9b], [1eea1, 1eea3], [1eea5, 1eea9],
     1154    [1eeab, 1eebb], [1f100, 1f10a], [1f110, 1f12e], [1f130, 1f14f],
     1155    [1f16a, 1f16b], [1f190, 1f190], [1f200, 1f202], [1f210, 1f23b],
     1156    [1f240, 1f248], [1f250, 1f251], [2f800, 2fa1d]**/
     1157    const UnicodeSet n_Set
     1158        {{{Empty, 5}, {Mixed, 7}, {Empty, 1}, {Mixed, 5}, {Empty, 3},
     1159          {Mixed, 3}, {Empty, 2}, {Mixed, 10}, {Empty, 2}, {Mixed, 2},
     1160          {Empty, 4}, {Mixed, 1}, {Empty, 4}, {Mixed, 1}, {Empty, 1},
     1161          {Mixed, 1}, {Empty, 2}, {Mixed, 1}, {Empty, 18}, {Mixed, 2},
     1162          {Empty, 3}, {Mixed, 1}, {Empty, 2}, {Mixed, 2}, {Empty, 7},
     1163          {Mixed, 1}, {Empty, 1}, {Mixed, 1}, {Empty, 1}, {Mixed, 1},
     1164          {Empty, 3}, {Mixed, 1}, {Empty, 3}, {Mixed, 1}, {Empty, 3},
     1165          {Mixed, 1}, {Empty, 3}, {Mixed, 1}, {Empty, 2}, {Mixed, 1},
     1166          {Empty, 3}, {Mixed, 2}, {Empty, 1}, {Mixed, 1}, {Empty, 1},
     1167          {Mixed, 4}, {Empty, 3}, {Mixed, 1}, {Empty, 5}, {Mixed, 1},
     1168          {Empty, 80}, {Mixed, 3}, {Empty, 14}, {Mixed, 4}, {Full, 1},
     1169          {Empty, 2}, {Full, 4}, {Mixed, 1}, {Full, 2}, {Mixed, 2},
     1170          {Full, 1}, {Mixed, 2}, {Full, 1}, {Mixed, 9}, {Empty, 2},
     1171          {Mixed, 3}, {Full, 1}, {Mixed, 3}, {Empty, 1}, {Mixed, 6},
     1172          {Empty, 1}, {Mixed, 1}, {Empty, 1}, {Mixed, 1}, {Empty, 9},
     1173          {Full, 4}, {Mixed, 1}, {Empty, 40}, {Mixed, 1}, {Empty, 2},
     1174          {Mixed, 1}, {Empty, 2}, {Mixed, 1}, {Empty, 12}, {Mixed, 1},
     1175          {Empty, 7}, {Mixed, 1}, {Empty, 8}, {Mixed, 1}, {Empty, 2},
     1176          {Mixed, 1}, {Full, 6}, {Mixed, 1}, {Empty, 1}, {Mixed, 8},
     1177          {Empty, 1}, {Mixed, 1}, {Full, 2}, {Mixed, 1}, {Empty, 3},
     1178          {Mixed, 1}, {Full, 1}, {Mixed, 2}, {Full, 3}, {Mixed, 1},
     1179          {Full, 8}, {Empty, 916}, {Mixed, 1}, {Empty, 6}, {Mixed, 1},
     1180          {Empty, 3}, {Mixed, 1}, {Empty, 26}, {Mixed, 1}, {Empty, 5},
     1181          {Full, 349}, {Mixed, 1}, {Empty, 266}, {Full, 8}, {Mixed, 2},
     1182          {Full, 1}, {Mixed, 1}, {Full, 2}, {Mixed, 1}, {Empty, 1},
     1183          {Mixed, 3}, {Full, 2}, {Mixed, 2}, {Full, 10}, {Mixed, 2},
     1184          {Full, 1}, {Mixed, 1}, {Full, 1}, {Mixed, 6}, {Full, 3},
     1185          {Mixed, 2}, {Full, 4}, {Mixed, 3}, {Empty, 132}, {Mixed, 2},
     1186          {Empty, 3}, {Mixed, 1}, {Empty, 16}, {Mixed, 1}, {Empty, 10},
     1187          {Mixed, 1}, {Empty, 7}, {Mixed, 1}, {Empty, 1500}, {Mixed, 2},
     1188          {Empty, 1}, {Mixed, 2}, {Empty, 17}, {Full, 2}, {Mixed, 1},
     1189          {Full, 1}, {Mixed, 3}, {Full, 1}, {Mixed, 3}, {Full, 10},
     1190          {Mixed, 1}, {Full, 8}, {Mixed, 1}, {Full, 1}, {Empty, 176},
     1191          {Mixed, 6}, {Empty, 18}, {Mixed, 5}, {Empty, 3}, {Mixed, 3},
     1192          {Empty, 2093}, {Full, 16}, {Mixed, 1}, {Empty, 28719}},
     1193         {0x773c8501, 0x3e7effbf, 0xbe7effbf, 0xfffcffff, 0xfefdff3f,
     1194          0xfff3f3f9, 0xffffff3f, 0x00018003, 0xdffffff0, 0xff3fffcf,
     1195          0xcfffffff, 0x000fffc0, 0x01ff0000, 0x3f000000, 0x0000001f,
     1196          0x0000001b, 0x44100000, 0x0001d7f0, 0x0001fc00, 0x007f7c00,
     1197          0x02370000, 0x0200708b, 0x02000000, 0x708b0000, 0x00c00000,
     1198          0xfccf0006, 0x033ffcfc, 0x00000080, 0x0000007c, 0x01e00000,
     1199          0x00080005, 0x00120200, 0xff000000, 0xb0001800, 0x00480000,
     1200          0x4e000000, 0x30001900, 0x00100000, 0x00001c00, 0x00000100,
     1201          0x00000d81, 0x00001c00, 0x74000000, 0x00080000, 0x00080000,
     1202          0x30000000, 0x00001000, 0x10842008, 0x03e80200, 0x20080002,
     1203          0x02001084, 0x00000040, 0x10000000, 0x00045540, 0x28000000,
     1204          0x0000000b, 0xf7ff7000, 0xffffbfff, 0x010007ff, 0xf8000000,
     1205          0x0fffffff, 0x03ffffff, 0x3f3fffff, 0xaaff3f3f, 0x3fffffff,
     1206          0xffdfffff, 0xefcfffdf, 0x7fdcffff, 0x008207ff, 0x50d88070,
     1207          0x80800380, 0xfff30000, 0x1fff7fff, 0x00000100, 0x3e6ffeef,
     1208          0xfbfbbd57, 0xffff03e1, 0x0c000200, 0x00004000, 0x0000e000,
     1209          0x00001210, 0x0001b050, 0x00000292, 0x0333e005, 0x00000333,
     1210          0x0000f000, 0x00003c0f, 0x00000600, 0x000007ff, 0x00001000,
     1211          0x00700000, 0x10000000, 0x30000000, 0x00008000, 0x80000000,
     1212          0x00080000, 0x003fffff, 0x00000001, 0x07400000, 0x55555000,
     1213          0x36db02a5, 0xd8100000, 0x55555000, 0x36db02a5, 0xc7900000,
     1214          0xfffe0000, 0xfffc7fff, 0x7fffffff, 0xffff00ff, 0x7fffffff,
     1215          0x7fffffff, 0x30000000, 0x00010000, 0x03000000, 0xf0000000,
     1216          0x0000000f, 0x7fe53fff, 0xfffffc65, 0xffff3fff, 0x03ffffff,
     1217          0xa0f8007f, 0x5f7fffff, 0xffffffdb, 0x0003ffff, 0xfff80000,
     1218          0x3fffffff, 0xffff0000, 0xfffcffff, 0x000000ff, 0x1fff0000,
     1219          0x03ff0000, 0xffff0000, 0xfff7ff9f, 0xffd70f7f, 0x1fffffff,
     1220          0xfffffffe, 0x7fffffff, 0x1cfcfcfc, 0x00007f7f, 0x14000000,
     1221          0x00000800, 0x0000c000, 0x00001800, 0x58000000, 0x0c000000,
     1222          0xc0000000, 0x0000001f, 0xf8000000, 0x00000001, 0xffdfffff,
     1223          0xdfffffff, 0xebffde64, 0xffffffef, 0xdfdfe7bf, 0x7bffffff,
     1224          0xfffdfc5f, 0xffffff3f, 0xffffcfff, 0xffffffef, 0x0af7fe96,
     1225          0xaa96ea84, 0x5ef7f796, 0x0ffffbff, 0x0ffffbee, 0xffff07ff,
     1226          0xffff7fff, 0x0000ffff, 0x00000c00, 0x00010000, 0xffff0007,
     1227          0x0fffffff, 0x000301ff, 0x3fffffff}};
     1228    static EnumeratedPropertyObject property_object
     1229        {NFKD_QC,
     1230         NFKD_QC_ns::independent_prop_values,
     1231         NFKD_QC_ns::enum_names,
     1232         NFKD_QC_ns::value_names,
     1233         NFKD_QC_ns::aliases_only_map,
     1234         {&y_Set, &n_Set
     1235         }};
    11351236    }
    11361237    namespace XO_NFC_ns {
  • icGREP/icgrep-devel/icgrep/UCD/DerivedNumericType.h

    r5656 r5660  
    99 */
    1010
     11#include "PropertyAliases.h"
    1112#include "PropertyObjects.h"
    1213#include "PropertyValueAliases.h"
  • icGREP/icgrep-devel/icgrep/UCD/EastAsianWidth.h

    r5656 r5660  
    99 */
    1010
     11#include "PropertyAliases.h"
    1112#include "PropertyObjects.h"
    1213#include "PropertyValueAliases.h"
  • icGREP/icgrep-devel/icgrep/UCD/GraphemeBreakProperty.h

    r5656 r5660  
    99 */
    1010
     11#include "PropertyAliases.h"
    1112#include "PropertyObjects.h"
    1213#include "PropertyValueAliases.h"
  • icGREP/icgrep-devel/icgrep/UCD/HangulSyllableType.h

    r5656 r5660  
    99 */
    1010
     11#include "PropertyAliases.h"
    1112#include "PropertyObjects.h"
    1213#include "PropertyValueAliases.h"
  • icGREP/icgrep-devel/icgrep/UCD/IndicPositionalCategory.h

    r5657 r5660  
    99 */
    1010
     11#include "PropertyAliases.h"
    1112#include "PropertyObjects.h"
    1213#include "PropertyValueAliases.h"
  • icGREP/icgrep-devel/icgrep/UCD/IndicSyllabicCategory.h

    r5657 r5660  
    99 */
    1010
     11#include "PropertyAliases.h"
    1112#include "PropertyObjects.h"
    1213#include "PropertyValueAliases.h"
  • icGREP/icgrep-devel/icgrep/UCD/LineBreak.h

    r5656 r5660  
    99 */
    1010
     11#include "PropertyAliases.h"
    1112#include "PropertyObjects.h"
    1213#include "PropertyValueAliases.h"
  • icGREP/icgrep-devel/icgrep/UCD/PropList.h

    r5656 r5660  
    1010
    1111#include "PropertyAliases.h"
     12#include "PropertyObjects.h"
     13#include "PropertyValueAliases.h"
    1214#include "unicode_set.h"
    13 #include <vector>
    1415
    1516namespace UCD {
  • icGREP/icgrep-devel/icgrep/UCD/PropertyObjectTable.h

    r5656 r5660  
    4747    new UnsupportedPropertyObject(cjkCompatibilityVariant, PropertyObject::ClassTypeId::StringProperty),
    4848    new UnsupportedPropertyObject(dm, PropertyObject::ClassTypeId::StringProperty),
    49     &FC_NFKC_ns::property_object,
     49    new UnsupportedPropertyObject(FC_NFKC, PropertyObject::ClassTypeId::StringProperty),
    5050    new UnsupportedPropertyObject(lc, PropertyObject::ClassTypeId::StringProperty),
    51     &NFKC_CF_ns::property_object,
     51    new UnsupportedPropertyObject(NFKC_CF, PropertyObject::ClassTypeId::StringProperty),
    5252    new UnsupportedPropertyObject(scf, PropertyObject::ClassTypeId::CodepointProperty),
    5353    new UnsupportedPropertyObject(slc, PropertyObject::ClassTypeId::CodepointProperty),
     
    5656    new UnsupportedPropertyObject(tc, PropertyObject::ClassTypeId::StringProperty),
    5757    new UnsupportedPropertyObject(uc, PropertyObject::ClassTypeId::StringProperty),
    58     new UnsupportedPropertyObject(bmg, PropertyObject::ClassTypeId::MiscellaneousProperty),
    59     new UnsupportedPropertyObject(bpb, PropertyObject::ClassTypeId::MiscellaneousProperty),
    60     new UnsupportedPropertyObject(cjkIICore, PropertyObject::ClassTypeId::MiscellaneousProperty),
    61     new UnsupportedPropertyObject(cjkIRG_GSource, PropertyObject::ClassTypeId::MiscellaneousProperty),
    62     new UnsupportedPropertyObject(cjkIRG_HSource, PropertyObject::ClassTypeId::MiscellaneousProperty),
    63     new UnsupportedPropertyObject(cjkIRG_JSource, PropertyObject::ClassTypeId::MiscellaneousProperty),
    64     new UnsupportedPropertyObject(cjkIRG_KPSource, PropertyObject::ClassTypeId::MiscellaneousProperty),
    65     new UnsupportedPropertyObject(cjkIRG_KSource, PropertyObject::ClassTypeId::MiscellaneousProperty),
    66     new UnsupportedPropertyObject(cjkIRG_MSource, PropertyObject::ClassTypeId::MiscellaneousProperty),
    67     new UnsupportedPropertyObject(cjkIRG_TSource, PropertyObject::ClassTypeId::MiscellaneousProperty),
    68     new UnsupportedPropertyObject(cjkIRG_USource, PropertyObject::ClassTypeId::MiscellaneousProperty),
    69     new UnsupportedPropertyObject(cjkIRG_VSource, PropertyObject::ClassTypeId::MiscellaneousProperty),
    70     new UnsupportedPropertyObject(cjkRSUnicode, PropertyObject::ClassTypeId::MiscellaneousProperty),
    71     new UnsupportedPropertyObject(isc, PropertyObject::ClassTypeId::MiscellaneousProperty),
    72     new UnsupportedPropertyObject(JSN, PropertyObject::ClassTypeId::MiscellaneousProperty),
    73     new UnsupportedPropertyObject(na, PropertyObject::ClassTypeId::MiscellaneousProperty),
    74     new UnsupportedPropertyObject(na1, PropertyObject::ClassTypeId::MiscellaneousProperty),
    75     new UnsupportedPropertyObject(Name_Alias, PropertyObject::ClassTypeId::MiscellaneousProperty),
     58    new UnsupportedPropertyObject(bmg, PropertyObject::ClassTypeId::StringProperty),
     59    new UnsupportedPropertyObject(bpb, PropertyObject::ClassTypeId::StringProperty),
     60    new UnsupportedPropertyObject(cjkIICore, PropertyObject::ClassTypeId::StringProperty),
     61    new UnsupportedPropertyObject(cjkIRG_GSource, PropertyObject::ClassTypeId::StringProperty),
     62    new UnsupportedPropertyObject(cjkIRG_HSource, PropertyObject::ClassTypeId::StringProperty),
     63    new UnsupportedPropertyObject(cjkIRG_JSource, PropertyObject::ClassTypeId::StringProperty),
     64    new UnsupportedPropertyObject(cjkIRG_KPSource, PropertyObject::ClassTypeId::StringProperty),
     65    new UnsupportedPropertyObject(cjkIRG_KSource, PropertyObject::ClassTypeId::StringProperty),
     66    new UnsupportedPropertyObject(cjkIRG_MSource, PropertyObject::ClassTypeId::StringProperty),
     67    new UnsupportedPropertyObject(cjkIRG_TSource, PropertyObject::ClassTypeId::StringProperty),
     68    new UnsupportedPropertyObject(cjkIRG_USource, PropertyObject::ClassTypeId::StringProperty),
     69    new UnsupportedPropertyObject(cjkIRG_VSource, PropertyObject::ClassTypeId::StringProperty),
     70    new UnsupportedPropertyObject(cjkRSUnicode, PropertyObject::ClassTypeId::StringProperty),
     71    new UnsupportedPropertyObject(isc, PropertyObject::ClassTypeId::StringProperty),
     72    new UnsupportedPropertyObject(JSN, PropertyObject::ClassTypeId::StringProperty),
     73    new UnsupportedPropertyObject(na, PropertyObject::ClassTypeId::StringProperty),
     74    new UnsupportedPropertyObject(na1, PropertyObject::ClassTypeId::StringProperty),
     75    new UnsupportedPropertyObject(Name_Alias, PropertyObject::ClassTypeId::StringProperty),
    7676    &SCX_ns::property_object,
    7777    &AGE_ns::property_object,
  • icGREP/icgrep-devel/icgrep/UCD/PropertyValueAliases.h

    r5656 r5660  
    2525            {"n", N}, {"y", Y}, {"no", N}, {"yes", Y}, {"f", N}, {"t", Y},
    2626            {"false", N}, {"true", Y}}};
    27     }
    28 
    29     namespace JSN_ns {
    30         enum value_t {
    31             A, AE, B, BB, BS, C, D, DD, E, EO, EU, G, GG, GS, H, I, J, JJ,
    32             K, L, LB, LG, LH, LM, LP, LS, LT, M, N, NG, NH, NJ, O, OE, P, R,
    33             S, SS, T, U, WA, WAE, WE, WEO, WI, YA, YAE, YE, YEO, YI, YO, YU};
    34         const static std::vector<std::string> enum_names = {
    35             "A", "AE", "B", "BB", "BS", "C", "D", "DD", "E", "EO", "EU",
    36             "G", "GG", "GS", "H", "I", "J", "JJ", "K", "L", "LB", "LG",
    37             "LH", "LM", "LP", "LS", "LT", "M", "N", "NG", "NH", "NJ", "O",
    38             "OE", "P", "R", "S", "SS", "T", "U", "WA", "WAE", "WE", "WEO",
    39             "WI", "YA", "YAE", "YE", "YEO", "YI", "YO", "YU"};
    40         const static std::vector<std::string> value_names = {
    41             "A", "AE", "B", "BB", "BS", "C", "D", "DD", "E", "EO", "EU",
    42             "G", "GG", "GS", "H", "I", "J", "JJ", "K", "L", "LB", "LG",
    43             "LH", "LM", "LP", "LS", "LT", "M", "N", "NG", "NH", "NJ", "O",
    44             "OE", "P", "R", "S", "SS", "T", "U", "WA", "WAE", "WE", "WEO",
    45             "WI", "YA", "YAE", "YE", "YEO", "YI", "YO", "YU"};
    46         static std::unordered_map<std::string, int> aliases_only_map {{
    47             }};
    48     }
    49 
    50     namespace SCX_ns {
    51         enum value_t {
    52             Adlm, Aghb, Ahom, Arab, Armi, Armn, Avst, Bali, Bamu, Bass,
    53             Batk, Beng, Bhks, Bopo, Brah, Brai, Bugi, Buhd, Cakm, Cans,
    54             Cari, Cham, Cher, Copt, Cprt, Cyrl, Deva, Dsrt, Dupl, Egyp,
    55             Elba, Ethi, Geor, Glag, Goth, Gran, Grek, Gujr, Guru, Hang,
    56             Hani, Hano, Hatr, Hebr, Hira, Hluw, Hmng, Hrkt, Hung, Ital,
    57             Java, Kali, Kana, Khar, Khmr, Khoj, Knda, Kthi, Lana, Laoo,
    58             Latn, Lepc, Limb, Lina, Linb, Lisu, Lyci, Lydi, Mahj, Mand,
    59             Mani, Marc, Mend, Merc, Mero, Mlym, Modi, Mong, Mroo, Mtei,
    60             Mult, Mymr, Narb, Nbat, Newa, Nkoo, Ogam, Olck, Orkh, Orya,
    61             Osge, Osma, Palm, Pauc, Perm, Phag, Phli, Phlp, Phnx, Plrd,
    62             Prti, Rjng, Runr, Samr, Sarb, Saur, Sgnw, Shaw, Shrd, Sidd,
    63             Sind, Sinh, Sora, Sund, Sylo, Syrc, Tagb, Takr, Tale, Talu,
    64             Taml, Tang, Tavt, Telu, Tfng, Tglg, Thaa, Thai, Tibt, Tirh,
    65             Ugar, Vaii, Wara, Xpeo, Xsux, Yiii, Zinh, Zyyy, Zzzz};
    66         const static std::vector<std::string> enum_names = {
    67             "Adlm", "Aghb", "Ahom", "Arab", "Armi", "Armn", "Avst", "Bali",
    68             "Bamu", "Bass", "Batk", "Beng", "Bhks", "Bopo", "Brah", "Brai",
    69             "Bugi", "Buhd", "Cakm", "Cans", "Cari", "Cham", "Cher", "Copt",
    70             "Cprt", "Cyrl", "Deva", "Dsrt", "Dupl", "Egyp", "Elba", "Ethi",
    71             "Geor", "Glag", "Goth", "Gran", "Grek", "Gujr", "Guru", "Hang",
    72             "Hani", "Hano", "Hatr", "Hebr", "Hira", "Hluw", "Hmng", "Hrkt",
    73             "Hung", "Ital", "Java", "Kali", "Kana", "Khar", "Khmr", "Khoj",
    74             "Knda", "Kthi", "Lana", "Laoo", "Latn", "Lepc", "Limb", "Lina",
    75             "Linb", "Lisu", "Lyci", "Lydi", "Mahj", "Mand", "Mani", "Marc",
    76             "Mend", "Merc", "Mero", "Mlym", "Modi", "Mong", "Mroo", "Mtei",
    77             "Mult", "Mymr", "Narb", "Nbat", "Newa", "Nkoo", "Ogam", "Olck",
    78             "Orkh", "Orya", "Osge", "Osma", "Palm", "Pauc", "Perm", "Phag",
    79             "Phli", "Phlp", "Phnx", "Plrd", "Prti", "Rjng", "Runr", "Samr",
    80             "Sarb", "Saur", "Sgnw", "Shaw", "Shrd", "Sidd", "Sind", "Sinh",
    81             "Sora", "Sund", "Sylo", "Syrc", "Tagb", "Takr", "Tale", "Talu",
    82             "Taml", "Tang", "Tavt", "Telu", "Tfng", "Tglg", "Thaa", "Thai",
    83             "Tibt", "Tirh", "Ugar", "Vaii", "Wara", "Xpeo", "Xsux", "Yiii",
    84             "Zinh", "Zyyy", "Zzzz"};
    85         const static std::vector<std::string> value_names = {
    86             "Adlam", "Caucasian_Albanian", "Ahom", "Arabic",
    87             "Imperial_Aramaic", "Armenian", "Avestan", "Balinese", "Bamum",
    88             "Bassa_Vah", "Batak", "Bengali", "Bhaiksuki", "Bopomofo",
    89             "Brahmi", "Braille", "Buginese", "Buhid", "Chakma",
    90             "Canadian_Aboriginal", "Carian", "Cham", "Cherokee", "Coptic",
    91             "Cypriot", "Cyrillic", "Devanagari", "Deseret", "Duployan",
    92             "Egyptian_Hieroglyphs", "Elbasan", "Ethiopic", "Georgian",
    93             "Glagolitic", "Gothic", "Grantha", "Greek", "Gujarati",
    94             "Gurmukhi", "Hangul", "Han", "Hanunoo", "Hatran", "Hebrew",
    95             "Hiragana", "Anatolian_Hieroglyphs", "Pahawh_Hmong",
    96             "Katakana_Or_Hiragana", "Old_Hungarian", "Old_Italic",
    97             "Javanese", "Kayah_Li", "Katakana", "Kharoshthi", "Khmer",
    98             "Khojki", "Kannada", "Kaithi", "Tai_Tham", "Lao", "Latin",
    99             "Lepcha", "Limbu", "Linear_A", "Linear_B", "Lisu", "Lycian",
    100             "Lydian", "Mahajani", "Mandaic", "Manichaean", "Marchen",
    101             "Mende_Kikakui", "Meroitic_Cursive", "Meroitic_Hieroglyphs",
    102             "Malayalam", "Modi", "Mongolian", "Mro", "Meetei_Mayek",
    103             "Multani", "Myanmar", "Old_North_Arabian", "Nabataean", "Newa",
    104             "Nko", "Ogham", "Ol_Chiki", "Old_Turkic", "Oriya", "Osage",
    105             "Osmanya", "Palmyrene", "Pau_Cin_Hau", "Old_Permic", "Phags_Pa",
    106             "Inscriptional_Pahlavi", "Psalter_Pahlavi", "Phoenician",
    107             "Miao", "Inscriptional_Parthian", "Rejang", "Runic",
    108             "Samaritan", "Old_South_Arabian", "Saurashtra", "SignWriting",
    109             "Shavian", "Sharada", "Siddham", "Khudawadi", "Sinhala",
    110             "Sora_Sompeng", "Sundanese", "Syloti_Nagri", "Syriac",
    111             "Tagbanwa", "Takri", "Tai_Le", "New_Tai_Lue", "Tamil", "Tangut",
    112             "Tai_Viet", "Telugu", "Tifinagh", "Tagalog", "Thaana", "Thai",
    113             "Tibetan", "Tirhuta", "Ugaritic", "Vai", "Warang_Citi",
    114             "Old_Persian", "Cuneiform", "Yi", "Inherited", "Common",
    115             "Unknown"};
    116         static std::unordered_map<std::string, int> aliases_only_map {{
    117             {"qaac", SCX_ns::Copt}, {"qaai", SCX_ns::Zinh}}};
    11827    }
    11928
     
    498407        };
    499408        const uint16_t enum_val[] = {
    500           0, 1, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21,
     409              0, 1, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21,
    501410            22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 84,
    502411            91, 103, 107, 118, 122, 129, 130, 132, 202, 214, 216, 218, 220,
     
    799708    namespace NFC_QC_ns {
    800709        enum value_t {
    801             M, N, Y};
    802         const static std::vector<std::string> enum_names = {
    803             "M", "N", "Y"};
    804         const static std::vector<std::string> value_names = {
    805             "Maybe", "No", "Yes"};
     710            Y, N, M};
     711        const static std::vector<std::string> enum_names = {
     712            "Y", "N", "M"};
     713        const static std::vector<std::string> value_names = {
     714            "Yes", "No", "Maybe"};
    806715        static std::unordered_map<std::string, int> aliases_only_map {{
    807716            }};
     
    810719    namespace NFD_QC_ns {
    811720        enum value_t {
    812             N, Y};
    813         const static std::vector<std::string> enum_names = {
    814             "N", "Y"};
    815         const static std::vector<std::string> value_names = {
    816             "No", "Yes"};
     721            Y, N};
     722        const static std::vector<std::string> enum_names = {
     723            "Y", "N"};
     724        const static std::vector<std::string> value_names = {
     725            "Yes", "No"};
    817726        static std::unordered_map<std::string, int> aliases_only_map {{
    818727            }};
     
    821730    namespace NFKC_QC_ns {
    822731        enum value_t {
    823             M, N, Y};
    824         const static std::vector<std::string> enum_names = {
    825             "M", "N", "Y"};
    826         const static std::vector<std::string> value_names = {
    827             "Maybe", "No", "Yes"};
     732            Y, N, M};
     733        const static std::vector<std::string> enum_names = {
     734            "Y", "N", "M"};
     735        const static std::vector<std::string> value_names = {
     736            "Yes", "No", "Maybe"};
    828737        static std::unordered_map<std::string, int> aliases_only_map {{
    829738            }};
     
    832741    namespace NFKD_QC_ns {
    833742        enum value_t {
    834             N, Y};
    835         const static std::vector<std::string> enum_names = {
    836             "N", "Y"};
    837         const static std::vector<std::string> value_names = {
    838             "No", "Yes"};
     743            Y, N};
     744        const static std::vector<std::string> enum_names = {
     745            "Y", "N"};
     746        const static std::vector<std::string> value_names = {
     747            "Yes", "No"};
    839748        static std::unordered_map<std::string, int> aliases_only_map {{
    840749            }};
  • icGREP/icgrep-devel/icgrep/UCD/ScriptExtensions.h

    r5656 r5660  
    99 */
    1010
     11#include "PropertyAliases.h"
    1112#include "PropertyObjects.h"
    1213#include "PropertyValueAliases.h"
     
    330331        [00bb, 00bf], [00d7, 00d7], [00f7, 00f7], [02b9, 02df],
    331332        [02e5, 02e9], [02ec, 02ff], [0374, 0374], [037e, 037e],
    332         [0385, 0385], [0387, 0387], [0589, 0589], [0605, 0605],
    333         [060c, 060c], [061b, 061c], [061f, 061f], [0640, 0640],
    334         [06dd, 06dd], [08e2, 08e2], [0964, 0965], [0e3f, 0e3f],
    335         [0fd5, 0fd8], [10fb, 10fb], [16eb, 16ed], [1735, 1736],
    336         [1802, 1803], [1805, 1805], [1cd3, 1cd3], [1ce1, 1ce1],
    337         [1ce9, 1cec], [1cee, 1cf3], [1cf5, 1cf6], [2000, 200b],
    338         [200e, 2064], [2066, 2070], [2074, 207e], [2080, 208e],
    339         [20a0, 20be], [2100, 2125], [2127, 2129], [212c, 2131],
    340         [2133, 214d], [214f, 215f], [2189, 218b], [2190, 23fe],
    341         [2400, 2426], [2440, 244a], [2460, 27ff], [2900, 2b73],
    342         [2b76, 2b95], [2b98, 2bb9], [2bbd, 2bc8], [2bca, 2bd1],
    343         [2bec, 2bef], [2e00, 2e44], [2ff0, 2ffb], [3000, 3004],
    344         [3006, 3006], [3008, 3020], [3030, 3037], [303c, 303f],
    345         [309b, 309c], [30a0, 30a0], [30fb, 30fc], [3190, 319f],
    346         [31c0, 31e3], [3220, 325f], [327f, 32cf], [3358, 33ff],
    347         [4dc0, 4dff], [a700, a721], [a788, a78a], [a830, a839],
    348         [a92e, a92e], [a9cf, a9cf], [ab5b, ab5b], [fd3e, fd3f],
    349         [fe10, fe19], [fe30, fe52], [fe54, fe66], [fe68, fe6b],
    350         [feff, feff], [ff01, ff20], [ff3b, ff40], [ff5b, ff65],
    351         [ff70, ff70], [ff9e, ff9f], [ffe0, ffe6], [ffe8, ffee],
    352         [fff9, fffd], [10100, 10102], [10107, 10133], [10137, 1013f],
    353         [10190, 1019b], [101d0, 101fc], [102e1, 102fb], [1bca0, 1bca3],
    354         [1d000, 1d0f5], [1d100, 1d126], [1d129, 1d166], [1d16a, 1d17a],
    355         [1d183, 1d184], [1d18c, 1d1a9], [1d1ae, 1d1e8], [1d300, 1d356],
    356         [1d360, 1d371], [1d400, 1d454], [1d456, 1d49c], [1d49e, 1d49f],
     333        [0385, 0385], [0387, 0387], [0605, 0605], [061c, 061c],
     334        [06dd, 06dd], [08e2, 08e2], [0e3f, 0e3f], [0fd5, 0fd8],
     335        [16eb, 16ed], [2000, 200b], [200e, 2064], [2066, 2070],
     336        [2074, 207e], [2080, 208e], [20a0, 20be], [2100, 2125],
     337        [2127, 2129], [212c, 2131], [2133, 214d], [214f, 215f],
     338        [2189, 218b], [2190, 23fe], [2400, 2426], [2440, 244a],
     339        [2460, 27ff], [2900, 2b73], [2b76, 2b95], [2b98, 2bb9],
     340        [2bbd, 2bc8], [2bca, 2bd1], [2bec, 2bef], [2e00, 2e42],
     341        [2e44, 2e44], [2ff0, 2ffb], [3000, 3000], [3004, 3004],
     342        [3012, 3012], [3020, 3020], [3036, 3036], [3248, 325f],
     343        [327f, 327f], [32b1, 32bf], [32cc, 32cf], [3371, 337a],
     344        [3380, 33df], [33ff, 33ff], [4dc0, 4dff], [a700, a721],
     345        [a788, a78a], [ab5b, ab5b], [fd3e, fd3f], [fe10, fe19],
     346        [fe30, fe44], [fe47, fe52], [fe54, fe66], [fe68, fe6b],
     347        [feff, feff], [ff01, ff20], [ff3b, ff40], [ff5b, ff60],
     348        [ffe0, ffe6], [ffe8, ffee], [fff9, fffd], [10190, 1019b],
     349        [101d0, 101fc], [1d000, 1d0f5], [1d100, 1d126], [1d129, 1d166],
     350        [1d16a, 1d17a], [1d183, 1d184], [1d18c, 1d1a9], [1d1ae, 1d1e8],
     351        [1d300, 1d356], [1d400, 1d454], [1d456, 1d49c], [1d49e, 1d49f],
    357352        [1d4a2, 1d4a2], [1d4a5, 1d4a6], [1d4a9, 1d4ac], [1d4ae, 1d4b9],
    358353        [1d4bb, 1d4bb], [1d4bd, 1d4c3], [1d4c5, 1d505], [1d507, 1d50a],
     
    363358        [1f100, 1f10c], [1f110, 1f12e], [1f130, 1f16b], [1f170, 1f1ac],
    364359        [1f1e6, 1f1ff], [1f201, 1f202], [1f210, 1f23b], [1f240, 1f248],
    365         [1f250, 1f251], [1f300, 1f6d2], [1f6e0, 1f6ec], [1f6f0, 1f6f6],
    366         [1f700, 1f773], [1f780, 1f7d4], [1f800, 1f80b], [1f810, 1f847],
    367         [1f850, 1f859], [1f860, 1f887], [1f890, 1f8ad], [1f910, 1f91e],
    368         [1f920, 1f927], [1f930, 1f930], [1f933, 1f93e], [1f940, 1f94b],
    369         [1f950, 1f95e], [1f980, 1f991], [1f9c0, 1f9c0], [e0001, e0001],
    370         [e0020, e007f]**/
     360        [1f300, 1f6d2], [1f6e0, 1f6ec], [1f6f0, 1f6f6], [1f700, 1f773],
     361        [1f780, 1f7d4], [1f800, 1f80b], [1f810, 1f847], [1f850, 1f859],
     362        [1f860, 1f887], [1f890, 1f8ad], [1f910, 1f91e], [1f920, 1f927],
     363        [1f930, 1f930], [1f933, 1f93e], [1f940, 1f94b], [1f950, 1f95e],
     364        [1f980, 1f991], [1f9c0, 1f9c0], [e0001, e0001], [e0020, e007f]**/
    371365        const UnicodeSet zyyy_Ext
    372366            {{{Full, 2}, {Mixed, 2}, {Full, 1}, {Mixed, 3}, {Empty, 13},
    373367              {Mixed, 1}, {Full, 1}, {Mixed, 1}, {Empty, 3}, {Mixed, 2},
    374               {Empty, 15}, {Mixed, 1}, {Empty, 3}, {Mixed, 1}, {Empty, 1},
    375               {Mixed, 1}, {Empty, 3}, {Mixed, 1}, {Empty, 16}, {Mixed, 1},
    376               {Empty, 3}, {Mixed, 1}, {Empty, 37}, {Mixed, 1}, {Empty, 12},
    377               {Mixed, 1}, {Empty, 8}, {Mixed, 1}, {Empty, 47}, {Mixed, 1},
    378               {Empty, 1}, {Mixed, 1}, {Empty, 6}, {Mixed, 1}, {Empty, 37},
    379               {Mixed, 2}, {Empty, 24}, {Mixed, 1}, {Full, 2}, {Mixed, 3},
    380               {Empty, 2}, {Full, 1}, {Mixed, 2}, {Empty, 1}, {Mixed, 1},
    381               {Full, 18}, {Mixed, 1}, {Full, 1}, {Mixed, 2}, {Full, 29},
    382               {Empty, 8}, {Full, 19}, {Mixed, 5}, {Empty, 16}, {Full, 2},
    383               {Mixed, 1}, {Empty, 12}, {Mixed, 3}, {Empty, 2}, {Mixed, 2},
    384               {Empty, 1}, {Mixed, 1}, {Empty, 4}, {Mixed, 1}, {Empty, 1},
    385               {Full, 1}, {Mixed, 1}, {Empty, 1}, {Full, 2}, {Mixed, 1},
    386               {Full, 2}, {Mixed, 1}, {Empty, 3}, {Mixed, 1}, {Full, 5},
    387               {Empty, 206}, {Full, 2}, {Empty, 712}, {Full, 1}, {Mixed, 1},
    388               {Empty, 2}, {Mixed, 1}, {Empty, 4}, {Mixed, 1}, {Empty, 7},
    389               {Mixed, 1}, {Empty, 4}, {Mixed, 1}, {Empty, 11}, {Mixed, 1},
    390               {Empty, 654}, {Mixed, 1}, {Empty, 6}, {Mixed, 4}, {Empty, 3},
    391               {Mixed, 6}, {Empty, 2}, {Mixed, 1}, {Empty, 8}, {Mixed, 2},
    392               {Empty, 2}, {Mixed, 1}, {Empty, 1}, {Mixed, 2}, {Empty, 7},
    393               {Mixed, 1}, {Empty, 1485}, {Mixed, 1}, {Empty, 154},
    394               {Full, 7}, {Mixed, 1}, {Full, 1}, {Mixed, 1}, {Full, 1},
    395               {Mixed, 3}, {Full, 1}, {Mixed, 1}, {Empty, 8}, {Full, 2},
    396               {Mixed, 2}, {Empty, 4}, {Full, 2}, {Mixed, 1}, {Full, 1},
    397               {Mixed, 3}, {Full, 1}, {Mixed, 3}, {Full, 10}, {Mixed, 1},
    398               {Full, 8}, {Mixed, 1}, {Full, 1}, {Empty, 192}, {Full, 1},
    399               {Mixed, 1}, {Full, 2}, {Mixed, 6}, {Full, 1}, {Mixed, 1},
    400               {Full, 1}, {Mixed, 1}, {Empty, 1}, {Mixed, 4}, {Empty, 5},
    401               {Full, 30}, {Mixed, 2}, {Full, 3}, {Mixed, 1}, {Full, 2},
    402               {Mixed, 1}, {Empty, 1}, {Mixed, 1}, {Full, 1}, {Mixed, 1},
    403               {Full, 1}, {Mixed, 2}, {Empty, 2}, {Mixed, 3}, {Empty, 1},
    404               {Mixed, 1}, {Empty, 1}, {Mixed, 1}, {Empty, 24625},
    405               {Mixed, 1}, {Full, 3}, {Empty, 6140}},
     368              {Empty, 19}, {Mixed, 1}, {Empty, 5}, {Mixed, 1}, {Empty, 16},
     369              {Mixed, 1}, {Empty, 41}, {Mixed, 1}, {Empty, 12}, {Mixed, 1},
     370              {Empty, 56}, {Mixed, 1}, {Empty, 72}, {Mixed, 1}, {Full, 2},
     371              {Mixed, 3}, {Empty, 2}, {Full, 1}, {Mixed, 2}, {Empty, 1},
     372              {Mixed, 1}, {Full, 18}, {Mixed, 1}, {Full, 1}, {Mixed, 2},
     373              {Full, 29}, {Empty, 8}, {Full, 19}, {Mixed, 5}, {Empty, 16},
     374              {Full, 2}, {Mixed, 1}, {Empty, 12}, {Mixed, 3}, {Empty, 16},
     375              {Mixed, 2}, {Empty, 1}, {Mixed, 2}, {Empty, 4}, {Mixed, 1},
     376              {Full, 3}, {Mixed, 1}, {Empty, 206}, {Full, 2}, {Empty, 712},
     377              {Full, 1}, {Mixed, 1}, {Empty, 2}, {Mixed, 1}, {Empty, 29},
     378              {Mixed, 1}, {Empty, 654}, {Mixed, 1}, {Empty, 6}, {Mixed, 4},
     379              {Empty, 3}, {Mixed, 5}, {Empty, 3}, {Mixed, 1}, {Empty, 12},
     380              {Mixed, 1}, {Empty, 1}, {Mixed, 2}, {Empty, 1648}, {Full, 7},
     381              {Mixed, 1}, {Full, 1}, {Mixed, 1}, {Full, 1}, {Mixed, 3},
     382              {Full, 1}, {Mixed, 1}, {Empty, 8}, {Full, 2}, {Mixed, 1},
     383              {Empty, 5}, {Full, 2}, {Mixed, 1}, {Full, 1}, {Mixed, 3},
     384              {Full, 1}, {Mixed, 3}, {Full, 10}, {Mixed, 1}, {Full, 8},
     385              {Mixed, 1}, {Full, 1}, {Empty, 192}, {Full, 1}, {Mixed, 1},
     386              {Full, 2}, {Mixed, 6}, {Full, 1}, {Mixed, 1}, {Full, 1},
     387              {Mixed, 1}, {Empty, 1}, {Mixed, 4}, {Empty, 5}, {Full, 30},
     388              {Mixed, 2}, {Full, 3}, {Mixed, 1}, {Full, 2}, {Mixed, 1},
     389              {Empty, 1}, {Mixed, 1}, {Full, 1}, {Mixed, 1}, {Full, 1},
     390              {Mixed, 2}, {Empty, 2}, {Mixed, 3}, {Empty, 1}, {Mixed, 1},
     391              {Empty, 1}, {Mixed, 1}, {Empty, 24625}, {Mixed, 1}, {Full, 3},
     392              {Empty, 6140}},
    406393             {0xf8000001, 0xf8000001, 0xfbfffbff, 0x00800000, 0x00800000,
    407               0xfe000000, 0xfffff3e0, 0x40100000, 0x000000a0, 0x00000200,
    408               0x98001020, 0x00000001, 0x20000000, 0x00000004, 0x00000030,
    409               0x80000000, 0x01e00000, 0x08000000, 0x00003800, 0x00600000,
    410               0x0000002c, 0x00080000, 0x006fde02, 0xffffcfff, 0x7ff1ffdf,
    411               0x00007fff, 0x7fffffff, 0xfffbf3bf, 0xffffbfff, 0xffff0e00,
    412               0x7fffffff, 0x0000007f, 0x000007ff, 0xffcfffff, 0xff3fffff,
    413               0xe3ffffff, 0x0003fdff, 0x0000f000, 0x0000001f, 0x0fff0000,
    414               0xffffff5f, 0xf0ff0001, 0x18000000, 0x00000001, 0x18000000,
    415               0xffff0000, 0x0000000f, 0x80000000, 0x0000ffff, 0xff000000,
    416               0x00000003, 0x00000700, 0x03ff0000, 0x00004000, 0x00008000,
    417               0x08000000, 0xc0000000, 0x03ff0000, 0xffff0000, 0xfff7ffff,
    418               0x00000f7f, 0x80000000, 0xfffffffe, 0xf8000001, 0xf8000001,
    419               0x0001003f, 0xc0000000, 0x3e007f7f, 0xffffff87, 0xff8fffff,
    420               0x0fff0000, 0xffff0000, 0x1fffffff, 0x0ffffffe, 0x0000000f,
    421               0x003fffff, 0xfffffe7f, 0x07fffc7f, 0xfffff018, 0xffffc3ff,
    422               0x000001ff, 0x007fffff, 0x0003ffff, 0xffdfffff, 0xdfffffff,
    423               0xebffde64, 0xffffffef, 0xdfdfe7bf, 0x7bffffff, 0xfffdfc5f,
    424               0xffffff3f, 0xffffcfff, 0xffff0fff, 0x000fffff, 0xfffe7fff,
    425               0xfffefffe, 0x003fffff, 0xffff1fff, 0xffff7fff, 0xffff0fff,
    426               0x00001fff, 0xffffffc0, 0xffff0006, 0x0fffffff, 0x000301ff,
    427               0x0007ffff, 0x007f1fff, 0x000fffff, 0x001fffff, 0xffff0fff,
    428               0x03ff00ff, 0xffff00ff, 0x00003fff, 0x7fff0000, 0x7ff900ff,
    429               0x7fff0fff, 0x0003ffff, 0x00000001, 0x00000002}};
     394              0xfe000000, 0xfffff3e0, 0x40100000, 0x000000a0, 0x10000020,
     395              0x20000000, 0x00000004, 0x80000000, 0x01e00000, 0x00003800,
     396              0xffffcfff, 0x7ff1ffdf, 0x00007fff, 0x7fffffff, 0xfffbf3bf,
     397              0xffffbfff, 0xffff0e00, 0x7fffffff, 0x0000007f, 0x000007ff,
     398              0xffcfffff, 0xff3fffff, 0xe3ffffff, 0x0003fdff, 0x0000f000,
     399              0x00000017, 0x0fff0000, 0x00040011, 0x00400001, 0xffffff00,
     400              0x80000000, 0xfffe0000, 0x0000f000, 0x07fe0000, 0x80000000,
     401              0x00000003, 0x00000700, 0x08000000, 0xc0000000, 0x03ff0000,
     402              0xffff0000, 0xfff7ff9f, 0x00000f7f, 0x80000000, 0xfffffffe,
     403              0xf8000001, 0xf8000001, 0x00000001, 0x3e007f7f, 0x0fff0000,
     404              0xffff0000, 0x1fffffff, 0x003fffff, 0xfffffe7f, 0x07fffc7f,
     405              0xfffff018, 0xffffc3ff, 0x000001ff, 0x007fffff, 0xffdfffff,
     406              0xdfffffff, 0xebffde64, 0xffffffef, 0xdfdfe7bf, 0x7bffffff,
     407              0xfffdfc5f, 0xffffff3f, 0xffffcfff, 0xffff0fff, 0x000fffff,
     408              0xfffe7fff, 0xfffefffe, 0x003fffff, 0xffff1fff, 0xffff7fff,
     409              0xffff0fff, 0x00001fff, 0xffffffc0, 0xffff0006, 0x0fffffff,
     410              0x000001ff, 0x0007ffff, 0x007f1fff, 0x000fffff, 0x001fffff,
     411              0xffff0fff, 0x03ff00ff, 0xffff00ff, 0x00003fff, 0x7fff0000,
     412              0x7ff900ff, 0x7fff0fff, 0x0003ffff, 0x00000001, 0x00000002}};
    430413        /** Code Point Ranges for Latn
    431414        [0041, 005a], [0061, 007a], [00aa, 00aa], [00ba, 00ba],
     
    844827             {0x0000ffff}};
    845828        /** Code Point Ranges for Zinh
    846         [0300, 036f], [0485, 0486], [064b, 0655], [0670, 0670],
    847         [0951, 0952], [1ab0, 1abe], [1cd0, 1cd2], [1cd4, 1ce0],
    848         [1ce2, 1ce8], [1ced, 1ced], [1cf4, 1cf4], [1cf8, 1cf9],
    849         [1dc0, 1df5], [1dfb, 1dff], [200c, 200d], [20d0, 20f0],
    850         [302a, 302d], [3099, 309a], [fe00, fe0f], [fe20, fe2d],
    851         [101fd, 101fd], [102e0, 102e0], [1d167, 1d169], [1d17b, 1d182],
    852         [1d185, 1d18b], [1d1aa, 1d1ad], [e0100, e01ef]**/
     829        [0300, 0341], [0343, 0344], [0346, 0362], [1ab0, 1abe],
     830        [1dc2, 1df5], [1dfb, 1dff], [200c, 200d], [20d0, 20ef],
     831        [fe00, fe0f], [fe20, fe2d], [101fd, 101fd], [1d167, 1d169],
     832        [1d17b, 1d182], [1d185, 1d18b], [1d1aa, 1d1ad], [e0100, e01ef]**/
    853833        const UnicodeSet zinh_Ext
    854             {{{Empty, 24}, {Full, 3}, {Mixed, 1}, {Empty, 8}, {Mixed, 1},
    855               {Empty, 13}, {Mixed, 2}, {Empty, 22}, {Mixed, 1},
    856               {Empty, 138}, {Mixed, 1}, {Empty, 16}, {Mixed, 2}, {Empty, 6},
    857               {Full, 1}, {Mixed, 1}, {Empty, 16}, {Mixed, 1}, {Empty, 5},
    858               {Mixed, 2}, {Empty, 121}, {Mixed, 1}, {Empty, 2}, {Mixed, 1},
    859               {Empty, 1643}, {Mixed, 2}, {Empty, 29}, {Mixed, 1},
    860               {Empty, 7}, {Mixed, 1}, {Empty, 1651}, {Mixed, 3},
    861               {Empty, 24954}, {Full, 7}, {Mixed, 1}, {Empty, 6128}},
    862              {0x0000ffff, 0x00000060, 0x003ff800, 0x00010000, 0x00060000,
    863               0x7fff0000, 0xfff70000, 0x031021fd, 0xf83fffff, 0x00003000,
    864               0xffff0000, 0x0001ffff, 0x00003c00, 0x06000000, 0x0000ffff,
    865               0x00003fff, 0x20000000, 0x00000001, 0xf8000380, 0x00000fe7,
    866               0x00003c00, 0x0000ffff}};
     834            {{{Empty, 24}, {Full, 2}, {Mixed, 2}, {Empty, 185}, {Mixed, 1},
     835              {Empty, 24}, {Mixed, 2}, {Empty, 16}, {Mixed, 1}, {Empty, 5},
     836              {Mixed, 2}, {Empty, 1768}, {Mixed, 2}, {Empty, 29},
     837              {Mixed, 1}, {Empty, 1659}, {Mixed, 3}, {Empty, 24954},
     838              {Full, 7}, {Mixed, 1}, {Empty, 6128}},
     839             {0xffffffdb, 0x00000007, 0x7fff0000, 0xfffffffc, 0xf83fffff,
     840              0x00003000, 0xffff0000, 0x0000ffff, 0x0000ffff, 0x00003fff,
     841              0x20000000, 0xf8000380, 0x00000fe7, 0x00003c00, 0x0000ffff}};
    867842        /** Code Point Ranges for Tglg
    868843        [1700, 170c], [170e, 1714], [1735, 1736]**/
  • icGREP/icgrep-devel/icgrep/UCD/Scripts.h

    r5656 r5660  
    99 */
    1010
     11#include "PropertyAliases.h"
    1112#include "PropertyObjects.h"
    1213#include "PropertyValueAliases.h"
  • icGREP/icgrep-devel/icgrep/UCD/SentenceBreakProperty.h

    r5656 r5660  
    99 */
    1010
     11#include "PropertyAliases.h"
    1112#include "PropertyObjects.h"
    1213#include "PropertyValueAliases.h"
  • icGREP/icgrep-devel/icgrep/UCD/WordBreakProperty.h

    r5656 r5660  
    99 */
    1010
     11#include "PropertyAliases.h"
    1112#include "PropertyObjects.h"
    1213#include "PropertyValueAliases.h"
Note: See TracChangeset for help on using the changeset viewer.