blob: 3649135886916a0fca270118b4729991d67495f2 [file] [log] [blame]
/********************************************************************
* COPYRIGHT:
* Copyright (c) 1997-1999, International Business Machines Corporation and
* others. All Rights Reserved.
********************************************************************/
//===============================================================================
//
// File engcoll.cpp
//
//
//
// Created by: Helena Shih
//
// Modification History:
//
// Date Name Description
//
//===============================================================================
#ifndef _IOSTREAM
#include <iostream.h>
#endif
#define generate_source 1
#if generate_source
#include <stdio.h>
#endif
#ifndef _COLL
#include "unicode/coll.h"
#endif
#ifndef _TBLCOLL
#include "unicode/tblcoll.h"
#endif
#ifndef _UNISTR
#include "unicode/unistr.h"
#endif
#ifndef _SORTKEY
#include "unicode/sortkey.h"
#endif
#ifndef _ISOCOLL
#include "isocoll.h"
#endif
const UChar CollationISOTest::testCases[][CollationISOTest::MAX_TOKEN_LEN] = {
{0X0000, 0},
{0X0001, 0},
{0X0002, 0},
{0X0003, 0},
{0X0004, 0},
{0X0005, 0},
{0X0006, 0},
{0X0007, 0},
{0X0008, 0},
{0X000E, 0},
{0X000F, 0},
{0X0010, 0},
{0X0011, 0},
{0X0012, 0},
{0X0013, 0},
{0X0014, 0},
{0X0015, 0},
{0X0016, 0},
{0X0017, 0},
{0X0018, 0},
{0X0019, 0},
{0X001A, 0},
{0X001B, 0},
{0X001C, 0},
{0X001D, 0},
{0X001E, 0},
{0X001F, 0},
{0X200B, 0},
{0X200C, 0},
{0X200D, 0},
{0X200E, 0},
{0X200F, 0},
{0X0020, 0},
{0X00A0, 0},
{0X2000, 0},
{0X2001, 0},
{0X2002, 0},
{0X2003, 0},
{0X2004, 0},
{0X2005, 0},
{0X2006, 0},
{0X2007, 0},
{0X2008, 0},
{0X2009, 0},
{0X200A, 0},
{0X000D, 0},
{0X0009, 0},
{0X000A, 0},
{0X000C, 0},
{0X000B, 0},
{0X0301, 0},
{0X0341, 0},
{0X0340, 0},
{0X0300, 0},
{0X0306, 0},
{0X0302, 0},
{0X030C, 0},
{0X030A, 0},
{0X030D, 0},
{0X0308, 0},
{0X030B, 0},
{0X0303, 0},
{0X0307, 0},
{0X0304, 0},
{0X0337, 0},
{0X0327, 0},
{0X0328, 0},
{0X0323, 0},
{0X0332, 0},
{0X0305, 0},
{0X0309, 0},
{0X030E, 0},
{0X030F, 0},
{0X0310, 0},
{0X0311, 0},
{0X0312, 0},
{0X0314, 0},
{0X0315, 0},
{0X0316, 0},
{0X0317, 0},
{0X0318, 0},
{0X0319, 0},
{0X031A, 0},
{0X031B, 0},
{0X031C, 0},
{0X031D, 0},
{0X031E, 0},
{0X031F, 0},
{0X0320, 0},
{0X0321, 0},
{0X0322, 0},
{0X0324, 0},
{0X0325, 0},
{0X0326, 0},
{0X0329, 0},
{0X032A, 0},
{0X032B, 0},
{0X032C, 0},
{0X032D, 0},
{0X032E, 0},
{0X032F, 0},
{0X0330, 0},
{0X0331, 0},
{0X0333, 0},
{0X0334, 0},
{0X0335, 0},
{0X0336, 0},
{0X0338, 0},
{0X0339, 0},
{0X033A, 0},
{0X033B, 0},
{0X033C, 0},
{0X033D, 0},
{0X033E, 0},
{0X033F, 0},
{0X0313, 0},
{0X0483, 0},
{0X0484, 0},
{0X0485, 0},
{0X0486, 0},
{0X20D0, 0},
{0X20D1, 0},
{0X20D2, 0},
{0X20D3, 0},
{0X20D4, 0},
{0X20D5, 0},
{0X20D6, 0},
{0X20D7, 0},
{0X20D8, 0},
{0X20D9, 0},
{0X20DA, 0},
{0X20DB, 0},
{0X20DC, 0},
{0X20DD, 0},
{0X20DE, 0},
{0X20DF, 0},
{0X20E0, 0},
{0X20E1, 0},
{0X002D, 0},
{0X00AD, 0},
{0X2010, 0},
{0X2011, 0},
{0X2012, 0},
{0X2013, 0},
{0X2014, 0},
{0X2015, 0},
{0X2212, 0},
{0X005F, 0},
{0X00AF, 0},
{0X002C, 0},
{0X003B, 0},
{0X037E, 0},
{0X003A, 0},
{0X0021, 0},
{0X00A1, 0},
{0X003F, 0},
{0X00BF, 0},
{0X002F, 0},
{0X002E, 0},
{0X00B4, 0},
{0X0060, 0},
{0X005E, 0},
{0X00A8, 0},
{0X007E, 0},
{0X2241, 0},
{0X00B7, 0},
{0X0387, 0},
{0X00B8, 0},
{0X0027, 0},
{0X0022, 0},
{0X00AB, 0},
{0X00BB, 0},
{0X0028, 0},
{0X0029, 0},
{0X005B, 0},
{0X005D, 0},
{0X007B, 0},
{0X007D, 0},
{0X00A7, 0},
{0X00B6, 0},
{0X00A9, 0},
{0X00AE, 0},
{0X0040, 0},
{0X00A4, 0},
{0X0E3F, 0},
{0X00A2, 0},
{0X20A1, 0},
{0X20A2, 0},
{0X0024, 0},
{0X20AB, 0},
{0X20A3, 0},
{0X20A4, 0},
{0X20A5, 0},
{0X20A6, 0},
{0X20A7, 0},
{0X00A3, 0},
{0X20A8, 0},
{0X20AA, 0},
{0X20A9, 0},
{0X00A5, 0},
{0X002A, 0},
{0X005C, 0},
{0X0026, 0},
{0X0023, 0},
{0X0025, 0},
{0X002B, 0},
{0X00B1, 0},
{0X00F7, 0},
{0X00D7, 0},
{0X003C, 0},
{0X226E, 0},
{0X003D, 0},
{0X2260, 0},
{0X2260, 0},
{0X003E, 0},
{0X226F, 0},
{0X00AC, 0},
{0X007C, 0},
{0X00A6, 0},
{0X00B0, 0},
{0X00B5, 0},
{0X0030, 0},
{0X0031, 0},
{0X0032, 0},
{0X0033, 0},
{0X0034, 0},
{0X0035, 0},
{0X0036, 0},
{0X0037, 0},
{0X0038, 0},
{0X0039, 0},
{0X00BC, 0},
{0X00BD, 0},
{0X00BE, 0},
{0X0061, 0},
{0X0041, 0},
{0X00E1, 0},
{0X00C1, 0},
{0X00E0, 0},
{0X00C0, 0},
{0X0103, 0},
{0X0102, 0},
{0X1EAF, 0},
{0X1EAE, 0},
{0X1EB1, 0},
{0X1EB0, 0},
{0X1EB5, 0},
{0X1EB4, 0},
{0X1EB7, 0},
{0X1EB6, 0},
{0X1EB3, 0},
{0X1EB2, 0},
{0X00E2, 0},
{0X00C2, 0},
{0X1EA5, 0},
{0X1EA4, 0},
{0X1EA7, 0},
{0X1EA6, 0},
{0X1EAB, 0},
{0X1EAA, 0},
{0X1EAD, 0},
{0X1EAC, 0},
{0X1EA9, 0},
{0X1EA8, 0},
{0X01CE, 0},
{0X01CD, 0},
{0X00E5, 0},
{0X212B, 0},
{0X00C5, 0},
{0X01FB, 0},
{0X01FA, 0},
{0X00E4, 0},
{0X00C4, 0},
{0X01DF, 0},
{0X01DE, 0},
{0X00E3, 0},
{0X00C3, 0},
{0X01E1, 0},
{0X01E0, 0},
{0X0101, 0},
{0X0100, 0},
{0X0105, 0},
{0X0104, 0},
{0X1EA1, 0},
{0X1EA0, 0},
{0X1EA3, 0},
{0X1EA2, 0},
{0X0201, 0},
{0X0200, 0},
{0X0203, 0},
{0X0202, 0},
{0X1E01, 0},
{0X1E00, 0},
{0X00E6, 0},
{0X00C6, 0},
{0X0062, 0},
{0X0042, 0},
{0X1E03, 0},
{0X1E02, 0},
{0X1E05, 0},
{0X1E04, 0},
{0X1E07, 0},
{0X1E06, 0},
{0X0063, 0},
{0X0043, 0},
{0X0107, 0},
{0X0106, 0},
{0X0109, 0},
{0X0108, 0},
{0X010D, 0},
{0X010C, 0},
{0X010B, 0},
{0X010A, 0},
{0X00E7, 0},
{0X00C7, 0},
{0X1E09, 0},
{0X1E08, 0},
{0X0064, 0},
{0X0044, 0},
{0X010F, 0},
{0X010E, 0},
{0X1E0B, 0},
{0X1E0A, 0},
{0X1E11, 0},
{0X1E10, 0},
{0X1E0D, 0},
{0X1E0C, 0},
{0X1E13, 0},
{0X1E12, 0},
{0X1E0F, 0},
{0X1E0E, 0},
{0X00F0, 0},
{0X00D0, 0},
{0X0065, 0},
{0X0045, 0},
{0X00E9, 0},
{0X00C9, 0},
{0X00E8, 0},
{0X00C8, 0},
{0X0115, 0},
{0X0114, 0},
{0X1E1D, 0},
{0X1E1C, 0},
{0X00EA, 0},
{0X00CA, 0},
{0X1EBF, 0},
{0X1EBE, 0},
{0X1EC1, 0},
{0X1EC0, 0},
{0X1EC5, 0},
{0X1EC4, 0},
{0X1EC7, 0},
{0X1EC6, 0},
{0X1EC3, 0},
{0X1EC2, 0},
{0X011B, 0},
{0X011A, 0},
{0X00EB, 0},
{0X00CB, 0},
{0X1EBD, 0},
{0X1EBC, 0},
{0X0117, 0},
{0X0116, 0},
{0X0113, 0},
{0X0112, 0},
{0X1E17, 0},
{0X1E16, 0},
{0X1E15, 0},
{0X1E14, 0},
{0X0119, 0},
{0X0118, 0},
{0X1EB9, 0},
{0X1EB8, 0},
{0X1EBB, 0},
{0X1EBA, 0},
{0X0205, 0},
{0X0204, 0},
{0X0207, 0},
{0X0206, 0},
{0X1E19, 0},
{0X1E18, 0},
{0X1E1B, 0},
{0X1E1A, 0},
{0X0066, 0},
{0X0046, 0},
{0X1E1F, 0},
{0X1E1E, 0},
{0X0067, 0},
{0X0047, 0},
{0X01F5, 0},
{0X01F4, 0},
{0X011F, 0},
{0X011E, 0},
{0X011D, 0},
{0X011C, 0},
{0X01E7, 0},
{0X01E6, 0},
{0X0121, 0},
{0X0120, 0},
{0X1E21, 0},
{0X1E20, 0},
{0X0123, 0},
{0X0122, 0},
{0X0068, 0},
{0X0048, 0},
{0X0125, 0},
{0X0124, 0},
{0X1E27, 0},
{0X1E26, 0},
{0X1E23, 0},
{0X1E22, 0},
{0X1E29, 0},
{0X1E28, 0},
{0X1E25, 0},
{0X1E24, 0},
{0X1E2B, 0},
{0X1E2A, 0},
{0X1E96, 0},
{0X0069, 0},
{0X0049, 0},
{0X00ED, 0},
{0X00CD, 0},
{0X00EC, 0},
{0X00CC, 0},
{0X012D, 0},
{0X012C, 0},
{0X00EE, 0},
{0X00CE, 0},
{0X01D0, 0},
{0X01CF, 0},
{0X00EF, 0},
{0X00CF, 0},
{0X1E2F, 0},
{0X1E2E, 0},
{0X0129, 0},
{0X0128, 0},
{0X0130, 0},
{0X012B, 0},
{0X012A, 0},
{0X012F, 0},
{0X012E, 0},
{0X1ECB, 0},
{0X1ECA, 0},
{0X1EC9, 0},
{0X1EC8, 0},
{0X0209, 0},
{0X0208, 0},
{0X020B, 0},
{0X020A, 0},
{0X1E2D, 0},
{0X1E2C, 0},
{0X006A, 0},
{0X004A, 0},
{0X0135, 0},
{0X0134, 0},
{0X01F0, 0},
{0X006B, 0},
{0X212A, 0},
{0X004B, 0},
{0X1E31, 0},
{0X1E30, 0},
{0X01E9, 0},
{0X01E8, 0},
{0X0137, 0},
{0X0136, 0},
{0X1E33, 0},
{0X1E32, 0},
{0X1E35, 0},
{0X1E34, 0},
{0X006C, 0},
{0X004C, 0},
{0X013A, 0},
{0X0139, 0},
{0X013E, 0},
{0X013D, 0},
{0X013C, 0},
{0X013B, 0},
{0X1E37, 0},
{0X1E36, 0},
{0X1E39, 0},
{0X1E38, 0},
{0X1E3D, 0},
{0X1E3C, 0},
{0X1E3B, 0},
{0X1E3A, 0},
{0X006D, 0},
{0X004D, 0},
{0X1E3F, 0},
{0X1E3E, 0},
{0X1E41, 0},
{0X1E40, 0},
{0X1E43, 0},
{0X1E42, 0},
{0X006E, 0},
{0X004E, 0},
{0X0144, 0},
{0X0143, 0},
{0X0148, 0},
{0X0147, 0},
{0X00F1, 0},
{0X00D1, 0},
{0X1E45, 0},
{0X1E44, 0},
{0X0146, 0},
{0X0145, 0},
{0X1E47, 0},
{0X1E46, 0},
{0X1E4B, 0},
{0X1E4A, 0},
{0X1E49, 0},
{0X1E48, 0},
{0X006F, 0},
{0X004F, 0},
{0X00F3, 0},
{0X00D3, 0},
{0X00F2, 0},
{0X00D2, 0},
{0X014F, 0},
{0X014E, 0},
{0X00F4, 0},
{0X00D4, 0},
{0X1ED1, 0},
{0X1ED0, 0},
{0X1ED3, 0},
{0X1ED2, 0},
{0X1ED7, 0},
{0X1ED6, 0},
{0X1ED9, 0},
{0X1ED8, 0},
{0X1ED5, 0},
{0X1ED4, 0},
{0X01D2, 0},
{0X01D1, 0},
{0X00F6, 0},
{0X00D6, 0},
{0X0151, 0},
{0X0150, 0},
{0X00F5, 0},
{0X00D5, 0},
{0X1E4D, 0},
{0X1E4C, 0},
{0X1E4F, 0},
{0X1E4E, 0},
{0X014D, 0},
{0X014C, 0},
{0X1E53, 0},
{0X1E52, 0},
{0X1E51, 0},
{0X1E50, 0},
{0X01EB, 0},
{0X01EA, 0},
{0X01ED, 0},
{0X01EC, 0},
{0X1ECD, 0},
{0X1ECC, 0},
{0X1ECF, 0},
{0X1ECE, 0},
{0X020D, 0},
{0X020C, 0},
{0X020F, 0},
{0X020E, 0},
{0X01A1, 0},
{0X01A0, 0},
{0X1EDB, 0},
{0X1EDA, 0},
{0X1EDD, 0},
{0X1EDC, 0},
{0X1EE1, 0},
{0X1EE0, 0},
{0X1EE3, 0},
{0X1EE2, 0},
{0X1EDF, 0},
{0X1EDE, 0},
{0X0153, 0},
{0X0152, 0},
{0X0070, 0},
{0X0050, 0},
{0X1E55, 0},
{0X1E54, 0},
{0X1E57, 0},
{0X1E56, 0},
{0X0071, 0},
{0X0051, 0},
{0X0072, 0},
{0X0052, 0},
{0X0155, 0},
{0X0154, 0},
{0X0159, 0},
{0X0158, 0},
{0X1E59, 0},
{0X1E58, 0},
{0X0157, 0},
{0X0156, 0},
{0X1E5B, 0},
{0X1E5A, 0},
{0X1E5D, 0},
{0X1E5C, 0},
{0X0211, 0},
{0X0210, 0},
{0X0213, 0},
{0X0212, 0},
{0X1E5F, 0},
{0X1E5E, 0},
{0X0073, 0},
{0X0053, 0},
{0X015B, 0},
{0X015A, 0},
{0X1E65, 0},
{0X1E64, 0},
{0X015D, 0},
{0X015C, 0},
{0X0161, 0},
{0X0160, 0},
{0X1E67, 0},
{0X1E66, 0},
{0X1E61, 0},
{0X1E60, 0},
{0X015F, 0},
{0X015E, 0},
{0X1E63, 0},
{0X1E62, 0},
{0X1E69, 0},
{0X1E68, 0},
{0X00DF, 0},
{0X0074, 0},
{0X0054, 0},
{0X0165, 0},
{0X0164, 0},
{0X1E97, 0},
{0X1E6B, 0},
{0X1E6A, 0},
{0X0163, 0},
{0X0162, 0},
{0X1E6D, 0},
{0X1E6C, 0},
{0X1E71, 0},
{0X1E70, 0},
{0X1E6F, 0},
{0X1E6E, 0},
{0X00FE, 0},
{0X00DE, 0},
{0X0075, 0},
{0X0055, 0},
{0X00FA, 0},
{0X00DA, 0},
{0X00F9, 0},
{0X00D9, 0},
{0X016D, 0},
{0X016C, 0},
{0X00FB, 0},
{0X00DB, 0},
{0X01D4, 0},
{0X01D3, 0},
{0X016F, 0},
{0X016E, 0},
{0X00FC, 0},
{0X00DC, 0},
{0X01D8, 0},
{0X01D7, 0},
{0X01DC, 0},
{0X01DB, 0},
{0X01DA, 0},
{0X01D9, 0},
{0X01D6, 0},
{0X01D5, 0},
{0X0171, 0},
{0X0170, 0},
{0X0169, 0},
{0X0168, 0},
{0X1E79, 0},
{0X1E78, 0},
{0X016B, 0},
{0X016A, 0},
{0X1E7B, 0},
{0X1E7A, 0},
{0X0173, 0},
{0X0172, 0},
{0X1EE5, 0},
{0X1EE4, 0},
{0X1EE7, 0},
{0X1EE6, 0},
{0X0215, 0},
{0X0214, 0},
{0X0217, 0},
{0X0216, 0},
{0X01B0, 0},
{0X01AF, 0},
{0X1EE9, 0},
{0X1EE8, 0},
{0X1EEB, 0},
{0X1EEA, 0},
{0X1EEF, 0},
{0X1EEE, 0},
{0X1EF1, 0},
{0X1EF0, 0},
{0X1EED, 0},
{0X1EEC, 0},
{0X1E73, 0},
{0X1E72, 0},
{0X1E77, 0},
{0X1E76, 0},
{0X1E75, 0},
{0X1E74, 0},
{0X0076, 0},
{0X0056, 0},
{0X1E7D, 0},
{0X1E7C, 0},
{0X1E7F, 0},
{0X1E7E, 0},
{0X0077, 0},
{0X0057, 0},
{0X1E83, 0},
{0X1E82, 0},
{0X1E81, 0},
{0X1E80, 0},
{0X0175, 0},
{0X0174, 0},
{0X1E98, 0},
{0X1E85, 0},
{0X1E84, 0},
{0X1E87, 0},
{0X1E86, 0},
{0X1E89, 0},
{0X1E88, 0},
{0X0078, 0},
{0X0058, 0},
{0X1E8D, 0},
{0X1E8C, 0},
{0X1E8B, 0},
{0X1E8A, 0},
{0X0079, 0},
{0X0059, 0},
{0X00FD, 0},
{0X00DD, 0},
{0X1EF3, 0},
{0X1EF2, 0},
{0X0177, 0},
{0X0176, 0},
{0X1E99, 0},
{0X00FF, 0},
{0X0178, 0},
{0X1EF9, 0},
{0X1EF8, 0},
{0X1E8F, 0},
{0X1E8E, 0},
{0X1EF5, 0},
{0X1EF4, 0},
{0X1EF7, 0},
{0X1EF6, 0},
{0X007A, 0},
{0X005A, 0},
{0X017A, 0},
{0X0179, 0},
{0X1E91, 0},
{0X1E90, 0},
{0X017E, 0},
{0X017D, 0},
{0X017C, 0},
{0X017B, 0},
{0X1E93, 0},
{0X1E92, 0},
{0X1E95, 0},
{0X1E94, 0},
{0X04D5, 0},
{0X04D4, 0},
{0X01FD, 0},
{0X01FC, 0},
{0X01E3, 0},
{0X01E2, 0},
{0X00AA, 0},
{0X00B2, 0},
{0X00B3, 0},
{0X00B9, 0},
{0X00BA, 0},
{0X00D8, 0},
{0X00F8, 0},
{0X0110, 0},
{0X0111, 0},
{0X0126, 0},
{0X0127, 0},
{0X0131, 0},
{0X0132, 0},
{0X0133, 0},
{0X0138, 0},
{0X013F, 0},
{0X0140, 0},
{0X0141, 0},
{0X0142, 0},
{0X0149, 0},
{0X014A, 0},
{0X014B, 0},
{0X0166, 0},
{0X0167, 0},
{0X017F, 0},
{0X0180, 0},
{0X0181, 0},
{0X0182, 0},
{0X0183, 0},
{0X0184, 0},
{0X0185, 0},
{0X0186, 0},
{0X0187, 0},
{0X0188, 0},
{0X0189, 0},
{0X018A, 0},
{0X018B, 0},
{0X018C, 0},
{0X018D, 0},
{0X018E, 0},
{0X018F, 0},
{0X0190, 0},
{0X0191, 0},
{0X0192, 0},
{0X0193, 0},
{0X0194, 0},
{0X0195, 0},
{0X0196, 0},
{0X0197, 0},
{0X0198, 0},
{0X0199, 0},
{0X019A, 0},
{0X019B, 0},
{0X019C, 0},
{0X019D, 0},
{0X019E, 0},
{0X019F, 0},
{0X01A2, 0},
{0X01A3, 0},
{0X01A4, 0},
{0X01A5, 0},
{0X01A6, 0},
{0X01A7, 0},
{0X01A8, 0},
{0X01A9, 0},
{0X01AA, 0},
{0X01AB, 0},
{0X01AC, 0},
{0X01AD, 0},
{0X01AE, 0},
{0X01B1, 0},
{0X01B2, 0},
{0X01B3, 0},
{0X01B4, 0},
{0X01B5, 0},
{0X01B6, 0},
{0X01B7, 0},
{0X01B8, 0},
{0X01B9, 0},
{0X01BA, 0},
{0X01BB, 0},
{0X01BC, 0},
{0X01BD, 0},
{0X01BE, 0},
{0X01BF, 0},
{0X01C0, 0},
{0X01C1, 0},
{0X01C2, 0},
{0X01C3, 0},
{0X01C4, 0},
{0X01C5, 0},
{0X01C6, 0},
{0X01C7, 0},
{0X01C8, 0},
{0X01C9, 0},
{0X01CA, 0},
{0X01CB, 0},
{0X01CC, 0},
{0X01DD, 0},
{0X01E4, 0},
{0X01E5, 0},
{0X01EE, 0},
{0X01EF, 0},
{0X01F1, 0},
{0X01F2, 0},
{0X01F3, 0},
{0X01FE, 0},
{0X01FF, 0},
{0X0250, 0},
{0X0251, 0},
{0X0252, 0},
{0X0253, 0},
{0X0254, 0},
{0X0255, 0},
{0X0256, 0},
{0X0257, 0},
{0X0258, 0},
{0X0259, 0},
{0X025A, 0},
{0X025B, 0},
{0X025C, 0},
{0X025D, 0},
{0X025E, 0},
{0X025F, 0},
{0X0260, 0},
{0X0261, 0},
{0X0262, 0},
{0X0263, 0},
{0X0264, 0},
{0X0265, 0},
{0X0266, 0},
{0X0267, 0},
{0X0268, 0},
{0X0269, 0},
{0X026A, 0},
{0X026B, 0},
{0X026C, 0},
{0X026D, 0},
{0X026E, 0},
{0X026F, 0},
{0X0270, 0},
{0X0271, 0},
{0X0272, 0},
{0X0273, 0},
{0X0274, 0},
{0X0275, 0},
{0X0276, 0},
{0X0277, 0},
{0X0278, 0},
{0X0279, 0},
{0X027A, 0},
{0X027B, 0},
{0X027C, 0},
{0X027D, 0},
{0X027E, 0},
{0X027F, 0},
{0X0280, 0},
{0X0281, 0},
{0X0282, 0},
{0X0283, 0},
{0X0284, 0},
{0X0285, 0},
{0X0286, 0},
{0X0287, 0},
{0X0288, 0},
{0X0289, 0},
{0X028A, 0},
{0X028B, 0},
{0X028C, 0},
{0X028D, 0},
{0X028E, 0},
{0X028F, 0},
{0X0290, 0},
{0X0291, 0},
{0X0292, 0},
{0X0293, 0},
{0X0294, 0},
{0X0295, 0},
{0X0296, 0},
{0X0297, 0},
{0X0298, 0},
{0X0299, 0},
{0X029A, 0},
{0X029B, 0},
{0X029C, 0},
{0X029D, 0},
{0X029E, 0},
{0X029F, 0},
{0X02A0, 0},
{0X02A1, 0},
{0X02A2, 0},
{0X02A3, 0},
{0X02A4, 0},
{0X02A5, 0},
{0X02A6, 0},
{0X02A7, 0},
{0X02A8, 0},
{0X02B0, 0},
{0X02B1, 0},
{0X02B2, 0},
{0X02B3, 0},
{0X02B4, 0},
{0X02B5, 0},
{0X02B6, 0},
{0X02B7, 0},
{0X02B8, 0},
{0X02B9, 0},
{0X02BA, 0},
{0X02BB, 0},
{0X02BC, 0},
{0X02BD, 0},
{0X02BE, 0},
{0X02BF, 0},
{0X02C0, 0},
{0X02C1, 0},
{0X02C2, 0},
{0X02C3, 0},
{0X02C4, 0},
{0X02C5, 0},
{0X02C6, 0},
{0X02C7, 0},
{0X02C8, 0},
{0X02C9, 0},
{0X02CA, 0},
{0X02CB, 0},
{0X02CC, 0},
{0X02CD, 0},
{0X02CE, 0},
{0X02CF, 0},
{0X02D0, 0},
{0X02D1, 0},
{0X02D2, 0},
{0X02D3, 0},
{0X02D4, 0},
{0X02D5, 0},
{0X02D6, 0},
{0X02D7, 0},
{0X02D8, 0},
{0X02D9, 0},
{0X02DA, 0},
{0X02DB, 0},
{0X02DC, 0},
{0X02DD, 0},
{0X02DE, 0},
{0X02E0, 0},
{0X02E1, 0},
{0X02E2, 0},
{0X02E3, 0},
{0X02E4, 0},
{0X02E5, 0},
{0X02E6, 0},
{0X02E7, 0},
{0X02E8, 0},
{0X02E9, 0},
{0X0374, 0},
{0X0375, 0},
{0X037A, 0},
{0X0384, 0},
{0X0385, 0},
{0X0386, 0},
{0X0388, 0},
{0X0389, 0},
{0X038A, 0},
{0X038C, 0},
{0X038E, 0},
{0X038F, 0},
{0X0390, 0},
{0X0391, 0},
{0X0392, 0},
{0X0393, 0},
{0X0394, 0},
{0X0395, 0},
{0X0396, 0},
{0X0397, 0},
{0X0398, 0},
{0X0399, 0},
{0X039A, 0},
{0X039B, 0},
{0X039C, 0},
{0X039D, 0},
{0X039E, 0},
{0X039F, 0},
{0X03A0, 0},
{0X03A1, 0},
{0X03A3, 0},
{0X03A4, 0},
{0X03A5, 0},
{0X03A6, 0},
{0X03A7, 0},
{0X03A8, 0},
{0X03A9, 0},
{0X03AA, 0},
{0X03AB, 0},
{0X03AC, 0},
{0X03AD, 0},
{0X03AE, 0},
{0X03AF, 0},
{0X03B0, 0},
{0X03B1, 0},
{0X03B2, 0},
{0X03B3, 0},
{0X03B4, 0},
{0X03B5, 0},
{0X03B6, 0},
{0X03B7, 0},
{0X03B8, 0},
{0X03B9, 0},
{0X03BA, 0},
{0X03BB, 0},
{0X03BC, 0},
{0X03BD, 0},
{0X03BE, 0},
{0X03BF, 0},
{0X03C0, 0},
{0X03C1, 0},
{0X03C2, 0},
{0X03C3, 0},
{0X03C4, 0},
{0X03C5, 0},
{0X03C6, 0},
{0X03C7, 0},
{0X03C8, 0},
{0X03C9, 0},
{0X03CA, 0},
{0X03CB, 0},
{0X03CC, 0},
{0X03CD, 0},
{0X03CE, 0},
{0X03D0, 0},
{0X03D1, 0},
{0X03D2, 0},
{0X03D3, 0},
{0X03D4, 0},
{0X03D5, 0},
{0X03D6, 0},
{0X03DA, 0},
{0X03DC, 0},
{0X03DE, 0},
{0X03E0, 0},
{0X03E2, 0},
{0X03E3, 0},
{0X03E4, 0},
{0X03E5, 0},
{0X03E6, 0},
{0X03E7, 0},
{0X03E8, 0},
{0X03E9, 0},
{0X03EA, 0},
{0X03EB, 0},
{0X03EC, 0},
{0X03ED, 0},
{0X03EE, 0},
{0X03EF, 0},
{0X03F0, 0},
{0X03F1, 0},
{0X03F2, 0},
{0X03F3, 0},
{0X0401, 0},
{0X0402, 0},
{0X0403, 0},
{0X0404, 0},
{0X0405, 0},
{0X0406, 0},
{0X0407, 0},
{0X0408, 0},
{0X0409, 0},
{0X040A, 0},
{0X040B, 0},
{0X040C, 0},
{0X040E, 0},
{0X040F, 0},
{0X0410, 0},
{0X0411, 0},
{0X0412, 0},
{0X0413, 0},
{0X0414, 0},
{0X0415, 0},
{0X0416, 0},
{0X0417, 0},
{0X0418, 0},
{0X0419, 0},
{0X041A, 0},
{0X041B, 0},
{0X041C, 0},
{0X041D, 0},
{0X041E, 0},
{0X041F, 0},
{0X0420, 0},
{0X0421, 0},
{0X0422, 0},
{0X0423, 0},
{0X0424, 0},
{0X0425, 0},
{0X0426, 0},
{0X0427, 0},
{0X0428, 0},
{0X0429, 0},
{0X042A, 0},
{0X042B, 0},
{0X042C, 0},
{0X042D, 0},
{0X042E, 0},
{0X042F, 0},
{0X0430, 0},
{0X0431, 0},
{0X0432, 0},
{0X0433, 0},
{0X0434, 0},
{0X0435, 0},
{0X0436, 0},
{0X0437, 0},
{0X0438, 0},
{0X0439, 0},
{0X043A, 0},
{0X043B, 0},
{0X043C, 0},
{0X043D, 0},
{0X043E, 0},
{0X043F, 0},
{0X0440, 0},
{0X0441, 0},
{0X0442, 0},
{0X0443, 0},
{0X0444, 0},
{0X0445, 0},
{0X0446, 0},
{0X0447, 0},
{0X0448, 0},
{0X0449, 0},
{0X044A, 0},
{0X044B, 0},
{0X044C, 0},
{0X044D, 0},
{0X044E, 0},
{0X044F, 0},
{0X0451, 0},
{0X0452, 0},
{0X0453, 0},
{0X0454, 0},
{0X0455, 0},
{0X0456, 0},
{0X0457, 0},
{0X0458, 0},
{0X0459, 0},
{0X045A, 0},
{0X045B, 0},
{0X045C, 0},
{0X045E, 0},
{0X045F, 0},
{0X0460, 0},
{0X0461, 0},
{0X0462, 0},
{0X0463, 0},
{0X0464, 0},
{0X0465, 0},
{0X0466, 0},
{0X0467, 0},
{0X0468, 0},
{0X0469, 0},
{0X046A, 0},
{0X046B, 0},
{0X046C, 0},
{0X046D, 0},
{0X046E, 0},
{0X046F, 0},
{0X0470, 0},
{0X0471, 0},
{0X0472, 0},
{0X0473, 0},
{0X0474, 0},
{0X0475, 0},
{0X0476, 0},
{0X0477, 0},
{0X0478, 0},
{0X0479, 0},
{0X047A, 0},
{0X047B, 0},
{0X047C, 0},
{0X047D, 0},
{0X047E, 0},
{0X047F, 0},
{0X0480, 0},
{0X0481, 0},
{0X0482, 0},
{0X0490, 0},
{0X0491, 0},
{0X0492, 0},
{0X0493, 0},
{0X0494, 0},
{0X0495, 0},
{0X0496, 0},
{0X0497, 0},
{0X0498, 0},
{0X0499, 0},
{0X049A, 0},
{0X049B, 0},
{0X049C, 0},
{0X049D, 0},
{0X049E, 0},
{0X049F, 0},
{0X04A0, 0},
{0X04A1, 0},
{0X04A2, 0},
{0X04A3, 0},
{0X04A4, 0},
{0X04A5, 0},
{0X04A6, 0},
{0X04A7, 0},
{0X04A8, 0},
{0X04A9, 0},
{0X04AA, 0},
{0X04AB, 0},
{0X04AC, 0},
{0X04AD, 0},
{0X04AE, 0},
{0X04AF, 0},
{0X04B0, 0},
{0X04B1, 0},
{0X04B2, 0},
{0X04B3, 0},
{0X04B4, 0},
{0X04B5, 0},
{0X04B6, 0},
{0X04B7, 0},
{0X04B8, 0},
{0X04B9, 0},
{0X04BA, 0},
{0X04BB, 0},
{0X04BC, 0},
{0X04BD, 0},
{0X04BE, 0},
{0X04BF, 0},
{0X04C0, 0},
{0X04C1, 0},
{0X04C2, 0},
{0X04C3, 0},
{0X04C4, 0},
{0X04C7, 0},
{0X04C8, 0},
{0X04CB, 0},
{0X04CC, 0},
{0X04D0, 0},
{0X04D1, 0},
{0X04D2, 0},
{0X04D3, 0},
{0X04D6, 0},
{0X04D7, 0},
{0X04D8, 0},
{0X04D9, 0},
{0X04DA, 0},
{0X04DB, 0},
{0X04DC, 0},
{0X04DD, 0},
{0X04DE, 0},
{0X04DF, 0},
{0X04E0, 0},
{0X04E1, 0},
{0X04E2, 0},
{0X04E3, 0},
{0X04E4, 0},
{0X04E5, 0},
{0X04E6, 0},
{0X04E7, 0},
{0X04E8, 0},
{0X04E9, 0},
{0X04EA, 0},
{0X04EB, 0},
{0X04EE, 0},
{0X04EF, 0},
{0X04F0, 0},
{0X04F1, 0},
{0X04F2, 0},
{0X04F3, 0},
{0X04F4, 0},
{0X04F5, 0},
{0X04F8, 0},
{0X04F9, 0},
{0X0531, 0},
{0X0532, 0},
{0X0533, 0},
{0X0534, 0},
{0X0535, 0},
{0X0536, 0},
{0X0537, 0},
{0X0538, 0},
{0X0539, 0},
{0X053A, 0},
{0X053B, 0},
{0X053C, 0},
{0X053D, 0},
{0X053E, 0},
{0X053F, 0},
{0X0540, 0},
{0X0541, 0},
{0X0542, 0},
{0X0543, 0},
{0X0544, 0},
{0X0545, 0},
{0X0546, 0},
{0X0547, 0},
{0X0548, 0},
{0X0549, 0},
{0X054A, 0},
{0X054B, 0},
{0X054C, 0},
{0X054D, 0},
{0X054E, 0},
{0X054F, 0},
{0X0550, 0},
{0X0551, 0},
{0X0552, 0},
{0X0553, 0},
{0X0554, 0},
{0X0555, 0},
{0X0556, 0},
{0X0559, 0},
{0X055A, 0},
{0X055B, 0},
{0X055C, 0},
{0X055D, 0},
{0X055E, 0},
{0X055F, 0},
{0X0561, 0},
{0X0562, 0},
{0X0563, 0},
{0X0564, 0},
{0X0565, 0},
{0X0566, 0},
{0X0567, 0},
{0X0568, 0},
{0X0569, 0},
{0X056A, 0},
{0X056B, 0},
{0X056C, 0},
{0X056D, 0},
{0X056E, 0},
{0X056F, 0},
{0X0570, 0},
{0X0571, 0},
{0X0572, 0},
{0X0573, 0},
{0X0574, 0},
{0X0575, 0},
{0X0576, 0},
{0X0577, 0},
{0X0578, 0},
{0X0579, 0},
{0X057A, 0},
{0X057B, 0},
{0X057C, 0},
{0X057D, 0},
{0X057E, 0},
{0X057F, 0},
{0X0580, 0},
{0X0581, 0},
{0X0582, 0},
{0X0583, 0},
{0X0584, 0},
{0X0585, 0},
{0X0586, 0},
{0X0587, 0},
{0X0589, 0},
{0X0591, 0},
{0X0592, 0},
{0X0593, 0},
{0X0594, 0},
{0X0595, 0},
{0X0596, 0},
{0X0597, 0},
{0X0598, 0},
{0X0599, 0},
{0X059A, 0},
{0X059B, 0},
{0X059C, 0},
{0X059D, 0},
{0X059E, 0},
{0X059F, 0},
{0X05A0, 0},
{0X05A1, 0},
{0X05A3, 0},
{0X05A4, 0},
{0X05A5, 0},
{0X05A6, 0},
{0X05A7, 0},
{0X05A8, 0},
{0X05A9, 0},
{0X05AA, 0},
{0X05AB, 0},
{0X05AC, 0},
{0X05AD, 0},
{0X05AE, 0},
{0X05AF, 0},
{0X05B0, 0},
{0X05B1, 0},
{0X05B2, 0},
{0X05B3, 0},
{0X05B4, 0},
{0X05B5, 0},
{0X05B6, 0},
{0X05B7, 0},
{0X05B8, 0},
{0X05B9, 0},
{0X05BB, 0},
{0X05BC, 0},
{0X05BD, 0},
{0X05BE, 0},
{0X05BF, 0},
{0X05C0, 0},
{0X05C1, 0},
{0X05C2, 0},
{0X05C3, 0},
{0X05C4, 0},
{0X05D0, 0},
{0X05D1, 0},
{0X05D2, 0},
{0X05D3, 0},
{0X05D4, 0},
{0X05D5, 0},
{0X05D6, 0},
{0X05D7, 0},
{0X05D8, 0},
{0X05D9, 0},
{0X05DA, 0},
{0X05DB, 0},
{0X05DC, 0},
{0X05DD, 0},
{0X05DE, 0},
{0X05DF, 0},
{0X05E0, 0},
{0X05E1, 0},
{0X05E2, 0},
{0X05E3, 0},
{0X05E4, 0},
{0X05E5, 0},
{0X05E6, 0},
{0X05E7, 0},
{0X05E8, 0},
{0X05E9, 0},
{0X05EA, 0},
{0X05F0, 0},
{0X05F1, 0},
{0X05F2, 0},
{0X05F3, 0},
{0X05F4, 0},
{0X0621, 0},
{0X0622, 0},
{0X0623, 0},
{0X0624, 0},
{0X0625, 0},
{0X0626, 0},
{0X0627, 0},
{0X0628, 0},
{0X0629, 0},
{0X062A, 0},
{0X062B, 0},
{0X062C, 0},
{0X062D, 0},
{0X062E, 0},
{0X062F, 0},
{0X0630, 0},
{0X0631, 0},
{0X0632, 0},
{0X0633, 0},
{0X0634, 0},
{0X0635, 0},
{0X0636, 0},
{0X0637, 0},
{0X0638, 0},
{0X0639, 0},
{0X063A, 0},
{0X0641, 0},
{0X0642, 0},
{0X0643, 0},
{0X0644, 0},
{0X0645, 0},
{0X0646, 0},
{0X0647, 0},
{0X0648, 0},
{0X0649, 0},
{0X064A, 0},
{0X0660, 0},
{0X0661, 0},
{0X0662, 0},
{0X0663, 0},
{0X0664, 0},
{0X0665, 0},
{0X0666, 0},
{0X0667, 0},
{0X0668, 0},
{0X0669, 0},
{0X0679, 0},
{0X067E, 0},
{0X0686, 0},
{0X0688, 0},
{0X0691, 0},
{0X0698, 0},
{0X06A9, 0},
{0X06AF, 0},
{0X06BA, 0},
{0X06C0, 0},
{0X06D2, 0},
{0X06D3, 0},
{0X06F0, 0},
{0X06F1, 0},
{0X06F2, 0},
{0X06F3, 0},
{0X06F4, 0},
{0X06F5, 0},
{0X06F6, 0},
{0X06F7, 0},
{0X06F8, 0},
{0X06F9, 0},
{0X0950, 0},
{0X0964, 0},
{0X0965, 0},
{0X0966, 0},
{0X0967, 0},
{0X0968, 0},
{0X0969, 0},
{0X096A, 0},
{0X096B, 0},
{0X096C, 0},
{0X096D, 0},
{0X096E, 0},
{0X096F, 0},
{0X0970, 0},
{0X09E6, 0},
{0X09E7, 0},
{0X09E8, 0},
{0X09E9, 0},
{0X09EA, 0},
{0X09EB, 0},
{0X09EC, 0},
{0X09ED, 0},
{0X09EE, 0},
{0X09EF, 0},
{0X09F4, 0},
{0X09F5, 0},
{0X09F6, 0},
{0X09F7, 0},
{0X09F8, 0},
{0X09F9, 0},
{0X0A66, 0},
{0X0A67, 0},
{0X0A68, 0},
{0X0A69, 0},
{0X0A6A, 0},
{0X0A6B, 0},
{0X0A6C, 0},
{0X0A6D, 0},
{0X0A6E, 0},
{0X0A6F, 0},
{0X0A74, 0},
{0X0AD0, 0},
{0X0AE6, 0},
{0X0AE7, 0},
{0X0AE8, 0},
{0X0AE9, 0},
{0X0AEA, 0},
{0X0AEB, 0},
{0X0AEC, 0},
{0X0AED, 0},
{0X0AEE, 0},
{0X0AEF, 0},
{0X0B66, 0},
{0X0B67, 0},
{0X0B68, 0},
{0X0B69, 0},
{0X0B6A, 0},
{0X0B6B, 0},
{0X0B6C, 0},
{0X0B6D, 0},
{0X0B6E, 0},
{0X0B6F, 0},
{0X0BE7, 0},
{0X0BE8, 0},
{0X0BE9, 0},
{0X0BEA, 0},
{0X0BEB, 0},
{0X0BEC, 0},
{0X0BED, 0},
{0X0BEE, 0},
{0X0BEF, 0},
{0X0BF0, 0},
{0X0BF1, 0},
{0X0BF2, 0},
{0X0D66, 0},
{0X0D67, 0},
{0X0D68, 0},
{0X0D69, 0},
{0X0D6A, 0},
{0X0D6B, 0},
{0X0D6C, 0},
{0X0D6D, 0},
{0X0D6E, 0},
{0X0D6F, 0},
{0X0DE6, 0},
{0X0DE7, 0},
{0X0DE8, 0},
{0X0DE9, 0},
{0X0DEA, 0},
{0X0DEB, 0},
{0X0DEC, 0},
{0X0DED, 0},
{0X0DEE, 0},
{0X0DEF, 0},
{0X0E50, 0},
{0X0E51, 0},
{0X0E52, 0},
{0X0E53, 0},
{0X0E54, 0},
{0X0E55, 0},
{0X0E56, 0},
{0X0E57, 0},
{0X0E58, 0},
{0X0E59, 0},
{0X0E66, 0},
{0X0E67, 0},
{0X0E68, 0},
{0X0E69, 0},
{0X0E6A, 0},
{0X0E6B, 0},
{0X0E6C, 0},
{0X0E6D, 0},
{0X0E6E, 0},
{0X0E6F, 0},
{0X0ED0, 0},
{0X0ED1, 0},
{0X0ED2, 0},
{0X0ED3, 0},
{0X0ED4, 0},
{0X0ED5, 0},
{0X0ED6, 0},
{0X0ED7, 0},
{0X0ED8, 0},
{0X0ED9, 0},
{0X0F20, 0},
{0X0F21, 0},
{0X0F22, 0},
{0X0F23, 0},
{0X0F24, 0},
{0X0F25, 0},
{0X0F26, 0},
{0X0F27, 0},
{0X0F28, 0},
{0X0F29, 0},
{0X10A0, 0},
{0X10A1, 0},
{0X10A2, 0},
{0X10A3, 0},
{0X10A4, 0},
{0X10A5, 0},
{0X10A6, 0},
{0X10A7, 0},
{0X10A8, 0},
{0X10A9, 0},
{0X10AA, 0},
{0X10AB, 0},
{0X10AC, 0},
{0X10AD, 0},
{0X10AE, 0},
{0X10AF, 0},
{0X10B0, 0},
{0X10B1, 0},
{0X10B2, 0},
{0X10B3, 0},
{0X10B4, 0},
{0X10B5, 0},
{0X10B6, 0},
{0X10B7, 0},
{0X10B8, 0},
{0X10B9, 0},
{0X10BA, 0},
{0X10BB, 0},
{0X10BC, 0},
{0X10BD, 0},
{0X10BE, 0},
{0X10BF, 0},
{0X10C0, 0},
{0X10C1, 0},
{0X10C2, 0},
{0X10C3, 0},
{0X10C4, 0},
{0X10C5, 0},
{0X10D0, 0},
{0X10D1, 0},
{0X10D2, 0},
{0X10D3, 0},
{0X10D4, 0},
{0X10D5, 0},
{0X10D6, 0},
{0X10D7, 0},
{0X10D8, 0},
{0X10D9, 0},
{0X10DA, 0},
{0X10DB, 0},
{0X10DC, 0},
{0X10DD, 0},
{0X10DE, 0},
{0X10DF, 0},
{0X10E0, 0},
{0X10E1, 0},
{0X10E2, 0},
{0X10E3, 0},
{0X10E4, 0},
{0X10E5, 0},
{0X10E6, 0},
{0X10E7, 0},
{0X10E8, 0},
{0X10E9, 0},
{0X10EA, 0},
{0X10EB, 0},
{0X10EC, 0},
{0X10ED, 0},
{0X10EE, 0},
{0X10EF, 0},
{0X10F0, 0},
{0X10F1, 0},
{0X10F2, 0},
{0X10F3, 0},
{0X10F4, 0},
{0X10F5, 0},
{0X10F6, 0},
{0X10FB, 0},
{0X1E9A, 0},
{0X1E9B, 0},
{0X1F00, 0},
{0X1F01, 0},
{0X1F02, 0},
{0X1F03, 0},
{0X1F04, 0},
{0X1F05, 0},
{0X1F06, 0},
{0X1F07, 0},
{0X1F08, 0},
{0X1F09, 0},
{0X1F0A, 0},
{0X1F0B, 0},
{0X1F0C, 0},
{0X1F0D, 0},
{0X1F0E, 0},
{0X1F0F, 0},
{0X1F10, 0},
{0X1F11, 0},
{0X1F12, 0},
{0X1F13, 0},
{0X1F14, 0},
{0X1F15, 0},
{0X1F18, 0},
{0X1F19, 0},
{0X1F1A, 0},
{0X1F1B, 0},
{0X1F1C, 0},
{0X1F1D, 0},
{0X1F20, 0},
{0X1F21, 0},
{0X1F22, 0},
{0X1F23, 0},
{0X1F24, 0},
{0X1F25, 0},
{0X1F26, 0},
{0X1F27, 0},
{0X1F28, 0},
{0X1F29, 0},
{0X1F2A, 0},
{0X1F2B, 0},
{0X1F2C, 0},
{0X1F2D, 0},
{0X1F2E, 0},
{0X1F2F, 0},
{0X1F30, 0},
{0X1F31, 0},
{0X1F32, 0},
{0X1F33, 0},
{0X1F34, 0},
{0X1F35, 0},
{0X1F36, 0},
{0X1F37, 0},
{0X1F38, 0},
{0X1F39, 0},
{0X1F3A, 0},
{0X1F3B, 0},
{0X1F3C, 0},
{0X1F3D, 0},
{0X1F3E, 0},
{0X1F3F, 0},
{0X1F40, 0},
{0X1F41, 0},
{0X1F42, 0},
{0X1F43, 0},
{0X1F44, 0},
{0X1F45, 0},
{0X1F48, 0},
{0X1F49, 0},
{0X1F4A, 0},
{0X1F4B, 0},
{0X1F4C, 0},
{0X1F4D, 0},
{0X1F50, 0},
{0X1F51, 0},
{0X1F52, 0},
{0X1F53, 0},
{0X1F54, 0},
{0X1F55, 0},
{0X1F56, 0},
{0X1F57, 0},
{0X1F59, 0},
{0X1F5B, 0},
{0X1F5D, 0},
{0X1F5F, 0},
{0X1F60, 0},
{0X1F61, 0},
{0X1F62, 0},
{0X1F63, 0},
{0X1F64, 0},
{0X1F65, 0},
{0X1F66, 0},
{0X1F67, 0},
{0X1F68, 0},
{0X1F69, 0},
{0X1F6A, 0},
{0X1F6B, 0},
{0X1F6C, 0},
{0X1F6D, 0},
{0X1F6E, 0},
{0X1F6F, 0},
{0X1F70, 0},
{0X1F71, 0},
{0X1F72, 0},
{0X1F73, 0},
{0X1F74, 0},
{0X1F75, 0},
{0X1F76, 0},
{0X1F77, 0},
{0X1F78, 0},
{0X1F79, 0},
{0X1F7A, 0},
{0X1F7B, 0},
{0X1F7C, 0},
{0X1F7D, 0},
{0X1F80, 0},
{0X1F81, 0},
{0X1F82, 0},
{0X1F83, 0},
{0X1F84, 0},
{0X1F85, 0},
{0X1F86, 0},
{0X1F87, 0},
{0X1F88, 0},
{0X1F89, 0},
{0X1F8A, 0},
{0X1F8B, 0},
{0X1F8C, 0},
{0X1F8D, 0},
{0X1F8E, 0},
{0X1F8F, 0},
{0X1F90, 0},
{0X1F91, 0},
{0X1F92, 0},
{0X1F93, 0},
{0X1F94, 0},
{0X1F95, 0},
{0X1F96, 0},
{0X1F97, 0},
{0X1F98, 0},
{0X1F99, 0},
{0X1F9A, 0},
{0X1F9B, 0},
{0X1F9C, 0},
{0X1F9D, 0},
{0X1F9E, 0},
{0X1F9F, 0},
{0X1FA0, 0},
{0X1FA1, 0},
{0X1FA2, 0},
{0X1FA3, 0},
{0X1FA4, 0},
{0X1FA5, 0},
{0X1FA6, 0},
{0X1FA7, 0},
{0X1FA8, 0},
{0X1FA9, 0},
{0X1FAA, 0},
{0X1FAB, 0},
{0X1FAC, 0},
{0X1FAD, 0},
{0X1FAE, 0},
{0X1FAF, 0},
{0X1FB0, 0},
{0X1FB1, 0},
{0X1FB2, 0},
{0X1FB3, 0},
{0X1FB4, 0},
{0X1FB6, 0},
{0X1FB7, 0},
{0X1FB8, 0},
{0X1FB9, 0},
{0X1FBA, 0},
{0X1FBB, 0},
{0X1FBC, 0},
{0X1FBD, 0},
{0X1FBE, 0},
{0X1FBF, 0},
{0X1FC0, 0},
{0X1FC1, 0},
{0X1FC2, 0},
{0X1FC3, 0},
{0X1FC4, 0},
{0X1FC6, 0},
{0X1FC7, 0},
{0X1FC8, 0},
{0X1FC9, 0},
{0X1FCA, 0},
{0X1FCB, 0},
{0X1FCC, 0},
{0X1FCD, 0},
{0X1FCE, 0},
{0X1FCF, 0},
{0X1FD0, 0},
{0X1FD1, 0},
{0X1FD2, 0},
{0X1FD3, 0},
{0X1FD6, 0},
{0X1FD7, 0},
{0X1FD8, 0},
{0X1FD9, 0},
{0X1FDA, 0},
{0X1FDB, 0},
{0X1FDD, 0},
{0X1FDE, 0},
{0X1FDF, 0},
{0X1FE0, 0},
{0X1FE1, 0},
{0X1FE2, 0},
{0X1FE3, 0},
{0X1FE4, 0},
{0X1FE5, 0},
{0X1FE6, 0},
{0X1FE7, 0},
{0X1FE8, 0},
{0X1FE9, 0},
{0X1FEA, 0},
{0X1FEB, 0},
{0X1FEC, 0},
{0X1FED, 0},
{0X1FEE, 0},
{0X1FEF, 0},
{0X1FF2, 0},
{0X1FF3, 0},
{0X1FF4, 0},
{0X1FF6, 0},
{0X1FF7, 0},
{0X1FF8, 0},
{0X1FF9, 0},
{0X1FFA, 0},
{0X1FFB, 0},
{0X1FFC, 0},
{0X1FFD, 0},
{0X1FFE, 0},
{0X2016, 0},
{0X2017, 0},
{0X2018, 0},
{0X2019, 0},
{0X201A, 0},
{0X201B, 0},
{0X201C, 0},
{0X201D, 0},
{0X201E, 0},
{0X201F, 0},
{0X2020, 0},
{0X2021, 0},
{0X2022, 0},
{0X2023, 0},
{0X2024, 0},
{0X2025, 0},
{0X2026, 0},
{0X2027, 0},
{0X2028, 0},
{0X2029, 0},
{0X202A, 0},
{0X202B, 0},
{0X202C, 0},
{0X202D, 0},
{0X202E, 0},
{0X2030, 0},
{0X2031, 0},
{0X2032, 0},
{0X2033, 0},
{0X2034, 0},
{0X2035, 0},
{0X2036, 0},
{0X2037, 0},
{0X2038, 0},
{0X2039, 0},
{0X203A, 0},
{0X203B, 0},
{0X203C, 0},
{0X203D, 0},
{0X203E, 0},
{0X203F, 0},
{0X2040, 0},
{0X2041, 0},
{0X2042, 0},
{0X2043, 0},
{0X2044, 0},
{0X2045, 0},
{0X2046, 0},
{0X2070, 0},
{0X2074, 0},
{0X2075, 0},
{0X2076, 0},
{0X2077, 0},
{0X2078, 0},
{0X2079, 0},
{0X207A, 0},
{0X207B, 0},
{0X207C, 0},
{0X207D, 0},
{0X207E, 0},
{0X207F, 0},
{0X2080, 0},
{0X2081, 0},
{0X2082, 0},
{0X2083, 0},
{0X2084, 0},
{0X2085, 0},
{0X2086, 0},
{0X2087, 0},
{0X2088, 0},
{0X2089, 0},
{0X208A, 0},
{0X208B, 0},
{0X208C, 0},
{0X208D, 0},
{0X208E, 0},
{0X20A0, 0},
{0X2100, 0},
{0X2101, 0},
{0X2102, 0},
{0X2103, 0},
{0X2104, 0},
{0X2105, 0},
{0X2106, 0},
{0X2107, 0},
{0X2108, 0},
{0X2109, 0},
{0X210A, 0},
{0X210B, 0},
{0X210C, 0},
{0X210D, 0},
{0X210E, 0},
{0X210F, 0},
{0X2110, 0},
{0X2111, 0},
{0X2112, 0},
{0X2113, 0},
{0X2114, 0},
{0X2115, 0},
{0X2116, 0},
{0X2117, 0},
{0X2118, 0},
{0X2119, 0},
{0X211A, 0},
{0X211B, 0},
{0X211C, 0},
{0X211D, 0},
{0X211E, 0},
{0X211F, 0},
{0X2120, 0},
{0X2121, 0},
{0X2122, 0},
{0X2123, 0},
{0X2124, 0},
{0X2125, 0},
{0X2126, 0},
{0X2127, 0},
{0X2128, 0},
{0X2129, 0},
{0X212C, 0},
{0X212D, 0},
{0X212E, 0},
{0X212F, 0},
{0X2130, 0},
{0X2131, 0},
{0X2132, 0},
{0X2133, 0},
{0X2134, 0},
{0X2135, 0},
{0X2136, 0},
{0X2137, 0},
{0X2138, 0},
{0X2153, 0},
{0X2154, 0},
{0X2155, 0},
{0X2156, 0},
{0X2157, 0},
{0X2158, 0},
{0X2159, 0},
{0X215A, 0},
{0X215B, 0},
{0X215C, 0},
{0X215D, 0},
{0X215E, 0},
{0X215F, 0},
{0X2160, 0},
{0X2161, 0},
{0X2162, 0},
{0X2163, 0},
{0X2164, 0},
{0X2165, 0},
{0X2166, 0},
{0X2167, 0},
{0X2168, 0},
{0X2169, 0},
{0X216A, 0},
{0X216B, 0},
{0X216C, 0},
{0X216D, 0},
{0X216E, 0},
{0X216F, 0},
{0X2170, 0},
{0X2171, 0},
{0X2172, 0},
{0X2173, 0},
{0X2174, 0},
{0X2175, 0},
{0X2176, 0},
{0X2177, 0},
{0X2178, 0},
{0X2179, 0},
{0X217A, 0},
{0X217B, 0},
{0X217C, 0},
{0X217D, 0},
{0X217E, 0},
{0X217F, 0},
{0X2180, 0},
{0X2181, 0},
{0X2182, 0},
{0X2190, 0},
{0X2191, 0},
{0X2192, 0},
{0X2193, 0},
{0X2194, 0},
{0X2195, 0},
{0X2196, 0},
{0X2197, 0},
{0X2198, 0},
{0X2199, 0},
{0X219A, 0},
{0X219B, 0},
{0X219C, 0},
{0X219D, 0},
{0X219E, 0},
{0X219F, 0},
{0X21A0, 0},
{0X21A1, 0},
{0X21A2, 0},
{0X21A3, 0},
{0X21A4, 0},
{0X21A5, 0},
{0X21A6, 0},
{0X21A7, 0},
{0X21A8, 0},
{0X21A9, 0},
{0X21AA, 0},
{0X21AB, 0},
{0X21AC, 0},
{0X21AD, 0},
{0X21AE, 0},
{0X21AF, 0},
{0X21B0, 0},
{0X21B1, 0},
{0X21B2, 0},
{0X21B3, 0},
{0X21B4, 0},
{0X21B5, 0},
{0X21B6, 0},
{0X21B7, 0},
{0X21B8, 0},
{0X21B9, 0},
{0X21BA, 0},
{0X21BB, 0},
{0X21BC, 0},
{0X21BD, 0},
{0X21BE, 0},
{0X21BF, 0},
{0X21C0, 0},
{0X21C1, 0},
{0X21C2, 0},
{0X21C3, 0},
{0X21C4, 0},
{0X21C5, 0},
{0X21C6, 0},
{0X21C7, 0},
{0X21C8, 0},
{0X21C9, 0},
{0X21CA, 0},
{0X21CB, 0},
{0X21CC, 0},
{0X21CD, 0},
{0X21CE, 0},
{0X21CF, 0},
{0X21D0, 0},
{0X21D1, 0},
{0X21D2, 0},
{0X21D3, 0},
{0X21D4, 0},
{0X21D5, 0},
{0X21D6, 0},
{0X21D7, 0},
{0X21D8, 0},
{0X21D9, 0},
{0X21DA, 0},
{0X21DB, 0},
{0X21DC, 0},
{0X21DD, 0},
{0X21DE, 0},
{0X21DF, 0},
{0X21E0, 0},
{0X21E1, 0},
{0X21E2, 0},
{0X21E3, 0},
{0X21E4, 0},
{0X21E5, 0},
{0X21E6, 0},
{0X21E7, 0},
{0X21E8, 0},
{0X21E9, 0},
{0X21EA, 0},
{0X2200, 0},
{0X2201, 0},
{0X2202, 0},
{0X2203, 0},
{0X2204, 0},
{0X2205, 0},
{0X2206, 0},
{0X2207, 0},
{0X2208, 0},
{0X2209, 0},
{0X220A, 0},
{0X220B, 0},
{0X220C, 0},
{0X220D, 0},
{0X220E, 0},
{0X220F, 0},
{0X2210, 0},
{0X2211, 0},
{0X2213, 0},
{0X2214, 0},
{0X2215, 0},
{0X2216, 0},
{0X2217, 0},
{0X2218, 0},
{0X2219, 0},
{0X221A, 0},
{0X221B, 0},
{0X221C, 0},
{0X221D, 0},
{0X221E, 0},
{0X221F, 0},
{0X2220, 0},
{0X2221, 0},
{0X2222, 0},
{0X2223, 0},
{0X2224, 0},
{0X2225, 0},
{0X2226, 0},
{0X2227, 0},
{0X2228, 0},
{0X2229, 0},
{0X222A, 0},
{0X222B, 0},
{0X222C, 0},
{0X222D, 0},
{0X222E, 0},
{0X222F, 0},
{0X2230, 0},
{0X2231, 0},
{0X2232, 0},
{0X2233, 0},
{0X2234, 0},
{0X2235, 0},
{0X2236, 0},
{0X2237, 0},
{0X2238, 0},
{0X2239, 0},
{0X223A, 0},
{0X223B, 0},
{0X223C, 0},
{0X223D, 0},
{0X223E, 0},
{0X223F, 0},
{0X2240, 0},
{0X2242, 0},
{0X2243, 0},
{0X2244, 0},
{0X2245, 0},
{0X2246, 0},
{0X2247, 0},
{0X2248, 0},
{0X2248, 0},
{0X2249, 0},
{0X224A, 0},
{0X224B, 0},
{0X224C, 0},
{0X224D, 0},
{0X224E, 0},
{0X224F, 0},
{0X2250, 0},
{0X2251, 0},
{0X2252, 0},
{0X2253, 0},
{0X2254, 0},
{0X2255, 0},
{0X2256, 0},
{0X2257, 0},
{0X2258, 0},
{0X2259, 0},
{0X225A, 0},
{0X225B, 0},
{0X225C, 0},
{0X225D, 0},
{0X225E, 0},
{0X225F, 0},
{0X2261, 0},
{0X2261, 0},
{0X2262, 0},
{0X2263, 0},
{0X2264, 0},
{0X2265, 0},
{0X2266, 0},
{0X2267, 0},
{0X2268, 0},
{0X2269, 0},
{0X226A, 0},
{0X226B, 0},
{0X226C, 0},
{0X226D, 0},
{0X2270, 0},
{0X2271, 0},
{0X2272, 0},
{0X2273, 0},
{0X2274, 0},
{0X2275, 0},
{0X2276, 0},
{0X2277, 0},
{0X2278, 0},
{0X2279, 0},
{0X227A, 0},
{0X227B, 0},
{0X227C, 0},
{0X227D, 0},
{0X227E, 0},
{0X227F, 0},
{0X2280, 0},
{0X2281, 0},
{0X2282, 0},
{0X2283, 0},
{0X2284, 0},
{0X2285, 0},
{0X2286, 0},
{0X2287, 0},
{0X2288, 0},
{0X2289, 0},
{0X228A, 0},
{0X228B, 0},
{0X228C, 0},
{0X228D, 0},
{0X228E, 0},
{0X228F, 0},
{0X2290, 0},
{0X2291, 0},
{0X2292, 0},
{0X2293, 0},
{0X2294, 0},
{0X2295, 0},
{0X2296, 0},
{0X2297, 0},
{0X2298, 0},
{0X2299, 0},
{0X229A, 0},
{0X229B, 0},
{0X229C, 0},
{0X229D, 0},
{0X229E, 0},
{0X229F, 0},
{0X22A0, 0},
{0X22A1, 0},
{0X22A2, 0},
{0X22A3, 0},
{0X22A4, 0},
{0X22A5, 0},
{0X22A6, 0},
{0X22A7, 0},
{0X22A8, 0},
{0X22A9, 0},
{0X22AA, 0},
{0X22AB, 0},
{0X22AC, 0},
{0X22AD, 0},
{0X22AE, 0},
{0X22AF, 0},
{0X22B0, 0},
{0X22B1, 0},
{0X22B2, 0},
{0X22B3, 0},
{0X22B4, 0},
{0X22B5, 0},
{0X22B6, 0},
{0X22B7, 0},
{0X22B8, 0},
{0X22B9, 0},
{0X22BA, 0},
{0X22BB, 0},
{0X22BC, 0},
{0X22BD, 0},
{0X22BE, 0},
{0X22BF, 0},
{0X22C0, 0},
{0X22C1, 0},
{0X22C2, 0},
{0X22C3, 0},
{0X22C4, 0},
{0X22C5, 0},
{0X22C6, 0},
{0X22C7, 0},
{0X22C8, 0},
{0X22C9, 0},
{0X22CA, 0},
{0X22CB, 0},
{0X22CC, 0},
{0X22CD, 0},
{0X22CE, 0},
{0X22CF, 0},
{0X22D0, 0},
{0X22D1, 0},
{0X22D2, 0},
{0X22D3, 0},
{0X22D4, 0},
{0X22D5, 0},
{0X22D6, 0},
{0X22D7, 0},
{0X22D8, 0},
{0X22D9, 0},
{0X22DA, 0},
{0X22DB, 0},
{0X22DC, 0},
{0X22DD, 0},
{0X22DE, 0},
{0X22DF, 0},
{0X22E0, 0},
{0X22E1, 0},
{0X22E2, 0},
{0X22E3, 0},
{0X22E4, 0},
{0X22E5, 0},
{0X22E6, 0},
{0X22E7, 0},
{0X22E8, 0},
{0X22E9, 0},
{0X22EA, 0},
{0X22EB, 0},
{0X22EC, 0},
{0X22ED, 0},
{0X22EE, 0},
{0X22EF, 0},
{0X22F0, 0},
{0X22F1, 0},
{0X2300, 0},
{0X2302, 0},
{0X2302, 0},
{0X2303, 0},
{0X2304, 0},
{0X2305, 0},
{0X2306, 0},
{0X2307, 0},
{0X2308, 0},
{0X2309, 0},
{0X230A, 0},
{0X230B, 0},
{0X230C, 0},
{0X230D, 0},
{0X230E, 0},
{0X230F, 0},
{0X2310, 0},
{0X2310, 0},
{0X2311, 0},
{0X2312, 0},
{0X2313, 0},
{0X2314, 0},
{0X2315, 0},
{0X2316, 0},
{0X2317, 0},
{0X2318, 0},
{0X2319, 0},
{0X231A, 0},
{0X231B, 0},
{0X231C, 0},
{0X231D, 0},
{0X231E, 0},
{0X231F, 0},
{0X2320, 0},
{0X2320, 0},
{0X2321, 0},
{0X2321, 0},
{0X2322, 0},
{0X2323, 0},
{0X2324, 0},
{0X2325, 0},
{0X2326, 0},
{0X2327, 0},
{0X2328, 0},
{0X2329, 0},
{0X232A, 0},
{0X232B, 0},
{0X232C, 0},
{0X232D, 0},
{0X232E, 0},
{0X232F, 0},
{0X2330, 0},
{0X2331, 0},
{0X2332, 0},
{0X2333, 0},
{0X2334, 0},
{0X2335, 0},
{0X2336, 0},
{0X2337, 0},
{0X2338, 0},
{0X2339, 0},
{0X233A, 0},
{0X233B, 0},
{0X233C, 0},
{0X233D, 0},
{0X233E, 0},
{0X233F, 0},
{0X2340, 0},
{0X2341, 0},
{0X2342, 0},
{0X2343, 0},
{0X2344, 0},
{0X2345, 0},
{0X2346, 0},
{0X2347, 0},
{0X2348, 0},
{0X2349, 0},
{0X234A, 0},
{0X234B, 0},
{0X234C, 0},
{0X234D, 0},
{0X234E, 0},
{0X234F, 0},
{0X2350, 0},
{0X2351, 0},
{0X2352, 0},
{0X2353, 0},
{0X2354, 0},
{0X2355, 0},
{0X2356, 0},
{0X2357, 0},
{0X2358, 0},
{0X2359, 0},
{0X235A, 0},
{0X235B, 0},
{0X235C, 0},
{0X235D, 0},
{0X235E, 0},
{0X235F, 0},
{0X2360, 0},
{0X2361, 0},
{0X2362, 0},
{0X2363, 0},
{0X2364, 0},
{0X2365, 0},
{0X2366, 0},
{0X2367, 0},
{0X2368, 0},
{0X2369, 0},
{0X236A, 0},
{0X236B, 0},
{0X236C, 0},
{0X236D, 0},
{0X236E, 0},
{0X236F, 0},
{0X2370, 0},
{0X2371, 0},
{0X2372, 0},
{0X2373, 0},
{0X2374, 0},
{0X2375, 0},
{0X2376, 0},
{0X2377, 0},
{0X2378, 0},
{0X2379, 0},
{0X237A, 0},
{0X2400, 0},
{0X2401, 0},
{0X2402, 0},
{0X2403, 0},
{0X2404, 0},
{0X2405, 0},
{0X2406, 0},
{0X2407, 0},
{0X2408, 0},
{0X2409, 0},
{0X240A, 0},
{0X240B, 0},
{0X240C, 0},
{0X240D, 0},
{0X240E, 0},
{0X240F, 0},
{0X2410, 0},
{0X2411, 0},
{0X2412, 0},
{0X2413, 0},
{0X2414, 0},
{0X2415, 0},
{0X2416, 0},
{0X2417, 0},
{0X2418, 0},
{0X2419, 0},
{0X241A, 0},
{0X241B, 0},
{0X241C, 0},
{0X241D, 0},
{0X241E, 0},
{0X241F, 0},
{0X2420, 0},
{0X2421, 0},
{0X2422, 0},
{0X2423, 0},
{0X2424, 0},
{0X2440, 0},
{0X2441, 0},
{0X2442, 0},
{0X2443, 0},
{0X2444, 0},
{0X2445, 0},
{0X2446, 0},
{0X2447, 0},
{0X2448, 0},
{0X2449, 0},
{0X244A, 0},
{0X2460, 0},
{0X2461, 0},
{0X2462, 0},
{0X2463, 0},
{0X2464, 0},
{0X2465, 0},
{0X2466, 0},
{0X2467, 0},
{0X2468, 0},
{0X24EA, 0},
{0X2500, 0},
{0X2501, 0},
{0X2502, 0},
{0X2503, 0},
{0X2504, 0},
{0X2505, 0},
{0X2506, 0},
{0X2507, 0},
{0X2508, 0},
{0X2509, 0},
{0X250A, 0},
{0X250B, 0},
{0X250C, 0},
{0X250D, 0},
{0X250E, 0},
{0X250F, 0},
{0X2510, 0},
{0X2511, 0},
{0X2512, 0},
{0X2513, 0},
{0X2514, 0},
{0X2515, 0},
{0X2516, 0},
{0X2517, 0},
{0X2518, 0},
{0X2519, 0},
{0X251A, 0},
{0X251B, 0},
{0X251C, 0},
{0X251D, 0},
{0X251E, 0},
{0X251F, 0},
{0X2520, 0},
{0X2521, 0},
{0X2522, 0},
{0X2523, 0},
{0X2524, 0},
{0X2525, 0},
{0X2526, 0},
{0X2527, 0},
{0X2528, 0},
{0X2529, 0},
{0X252A, 0},
{0X252B, 0},
{0X252C, 0},
{0X252D, 0},
{0X252E, 0},
{0X252F, 0},
{0X2530, 0},
{0X2531, 0},
{0X2532, 0},
{0X2533, 0},
{0X2534, 0},
{0X2535, 0},
{0X2536, 0},
{0X2537, 0},
{0X2538, 0},
{0X2539, 0},
{0X253A, 0},
{0X253B, 0},
{0X253C, 0},
{0X253D, 0},
{0X253E, 0},
{0X253F, 0},
{0X2540, 0},
{0X2541, 0},
{0X2542, 0},
{0X2543, 0},
{0X2544, 0},
{0X2545, 0},
{0X2546, 0},
{0X2547, 0},
{0X2548, 0},
{0X2549, 0},
{0X254A, 0},
{0X254B, 0},
{0X254C, 0},
{0X254D, 0},
{0X254E, 0},
{0X254F, 0},
{0X2550, 0},
{0X2551, 0},
{0X2552, 0},
{0X2553, 0},
{0X2554, 0},
{0X2555, 0},
{0X2556, 0},
{0X2557, 0},
{0X2558, 0},
{0X2559, 0},
{0X255A, 0},
{0X255B, 0},
{0X255C, 0},
{0X255D, 0},
{0X255E, 0},
{0X255F, 0},
{0X2560, 0},
{0X2561, 0},
{0X2562, 0},
{0X2563, 0},
{0X2564, 0},
{0X2565, 0},
{0X2566, 0},
{0X2567, 0},
{0X2568, 0},
{0X2569, 0},
{0X256A, 0},
{0X256B, 0},
{0X256C, 0},
{0X256D, 0},
{0X256E, 0},
{0X256F, 0},
{0X2570, 0},
{0X2571, 0},
{0X2572, 0},
{0X2573, 0},
{0X2574, 0},
{0X2575, 0},
{0X2576, 0},
{0X2577, 0},
{0X2578, 0},
{0X2579, 0},
{0X257A, 0},
{0X257B, 0},
{0X257C, 0},
{0X257D, 0},
{0X257E, 0},
{0X257F, 0},
{0X2580, 0},
{0X2581, 0},
{0X2582, 0},
{0X2583, 0},
{0X2584, 0},
{0X2585, 0},
{0X2586, 0},
{0X2587, 0},
{0X2588, 0},
{0X2589, 0},
{0X258A, 0},
{0X258B, 0},
{0X258C, 0},
{0X258D, 0},
{0X258E, 0},
{0X258F, 0},
{0X2590, 0},
{0X2591, 0},
{0X2592, 0},
{0X2593, 0},
{0X2594, 0},
{0X2595, 0},
{0X25A0, 0},
{0X25A0, 0},
{0X25A1, 0},
{0X25A2, 0},
{0X25A3, 0},
{0X25A4, 0},
{0X25A5, 0},
{0X25A6, 0},
{0X25A7, 0},
{0X25A8, 0},
{0X25A9, 0},
{0X25AA, 0},
{0X25AB, 0},
{0X25AC, 0},
{0X25AC, 0},
{0X25AD, 0},
{0X25AE, 0},
{0X25AF, 0},
{0X25B0, 0},
{0X25B1, 0},
{0X25B2, 0},
{0X25B2, 0},
{0X25B3, 0},
{0X25B4, 0},
{0X25B5, 0},
{0X25B6, 0},
{0X25B7, 0},
{0X25B8, 0},
{0X25B9, 0},
{0X25BA, 0},
{0X25BA, 0},
{0X25BB, 0},
{0X25BC, 0},
{0X25BC, 0},
{0X25BD, 0},
{0X25BE, 0},
{0X25BF, 0},
{0X25C0, 0},
{0X25C1, 0},
{0X25C2, 0},
{0X25C3, 0},
{0X25C4, 0},
{0X25C4, 0},
{0X25C5, 0},
{0X25C6, 0},
{0X25C7, 0},
{0X25C8, 0},
{0X25C9, 0},
{0X25CA, 0},
{0X25CB, 0},
{0X25CB, 0},
{0X25CC, 0},
{0X25CD, 0},
{0X25CE, 0},
{0X25CF, 0},
{0X25D0, 0},
{0X25D1, 0},
{0X25D2, 0},
{0X25D3, 0},
{0X25D4, 0},
{0X25D5, 0},
{0X25D6, 0},
{0X25D7, 0},
{0X25D8, 0},
{0X25D9, 0},
{0X25DA, 0},
{0X25DB, 0},
{0X25DC, 0},
{0X25DD, 0},
{0X25DE, 0},
{0X25DF, 0},
{0X25E0, 0},
{0X25E1, 0},
{0X25E2, 0},
{0X25E3, 0},
{0X25E4, 0},
{0X25E5, 0},
{0X25E6, 0},
{0X25E7, 0},
{0X25E8, 0},
{0X25E9, 0},
{0X25EA, 0},
{0X25EB, 0},
{0X25EC, 0},
{0X25ED, 0},
{0X25EE, 0},
{0X25EF, 0},
{0X2600, 0},
{0X2601, 0},
{0X2602, 0},
{0X2603, 0},
{0X2604, 0},
{0X2605, 0},
{0X2606, 0},
{0X2607, 0},
{0X2608, 0},
{0X2609, 0},
{0X260A, 0},
{0X260B, 0},
{0X260C, 0},
{0X260D, 0},
{0X260E, 0},
{0X260F, 0},
{0X2610, 0},
{0X2611, 0},
{0X2612, 0},
{0X2613, 0},
{0X261A, 0},
{0X261B, 0},
{0X261C, 0},
{0X261D, 0},
{0X261E, 0},
{0X261F, 0},
{0X2620, 0},
{0X2621, 0},
{0X2622, 0},
{0X2623, 0},
{0X2624, 0},
{0X2625, 0},
{0X2626, 0},
{0X2627, 0},
{0X2628, 0},
{0X2629, 0},
{0X262A, 0},
{0X262B, 0},
{0X262C, 0},
{0X262D, 0},
{0X262E, 0},
{0X262F, 0},
{0X2630, 0},
{0X2631, 0},
{0X2632, 0},
{0X2633, 0},
{0X2634, 0},
{0X2635, 0},
{0X2636, 0},
{0X2637, 0},
{0X2638, 0},
{0X2639, 0},
{0X263A, 0},
{0X263B, 0},
{0X263C, 0},
{0X263D, 0},
{0X263E, 0},
{0X263F, 0},
{0X2640, 0},
{0X2641, 0},
{0X2642, 0},
{0X2643, 0},
{0X2644, 0},
{0X2645, 0},
{0X2646, 0},
{0X2647, 0},
{0X2648, 0},
{0X2649, 0},
{0X264A, 0},
{0X264B, 0},
{0X264C, 0},
{0X264D, 0},
{0X264E, 0},
{0X264F, 0},
{0X2650, 0},
{0X2651, 0},
{0X2652, 0},
{0X2653, 0},
{0X2654, 0},
{0X2655, 0},
{0X2656, 0},
{0X2657, 0},
{0X2658, 0},
{0X2659, 0},
{0X265A, 0},
{0X265B, 0},
{0X265C, 0},
{0X265D, 0},
{0X265E, 0},
{0X265F, 0},
{0X2660, 0},
{0X2661, 0},
{0X2662, 0},
{0X2663, 0},
{0X2664, 0},
{0X2665, 0},
{0X2666, 0},
{0X2667, 0},
{0X2668, 0},
{0X2669, 0},
{0X266A, 0},
{0X266B, 0},
{0X266C, 0},
{0X266D, 0},
{0X266E, 0},
{0X266F, 0},
{0X2701, 0},
{0X2702, 0},
{0X2703, 0},
{0X2704, 0},
{0X2706, 0},
{0X2707, 0},
{0X2708, 0},
{0X2709, 0},
{0X270C, 0},
{0X270D, 0},
{0X270E, 0},
{0X270F, 0},
{0X2710, 0},
{0X2711, 0},
{0X2712, 0},
{0X2713, 0},
{0X2714, 0},
{0X2715, 0},
{0X2716, 0},
{0X2717, 0},
{0X2718, 0},
{0X2719, 0},
{0X271A, 0},
{0X271B, 0},
{0X271C, 0},
{0X271D, 0},
{0X271E, 0},
{0X271F, 0},
{0X2720, 0},
{0X2721, 0},
{0X2722, 0},
{0X2723, 0},
{0X2724, 0},
{0X2725, 0},
{0X2726, 0},
{0X2727, 0},
{0X2729, 0},
{0X272A, 0},
{0X272B, 0},
{0X272C, 0},
{0X272D, 0},
{0X272E, 0},
{0X272F, 0},
{0X2730, 0},
{0X2731, 0},
{0X2732, 0},
{0X2733, 0},
{0X2734, 0},
{0X2735, 0},
{0X2736, 0},
{0X2737, 0},
{0X2738, 0},
{0X2739, 0},
{0X273A, 0},
{0X273B, 0},
{0X273C, 0},
{0X273D, 0},
{0X273E, 0},
{0X273F, 0},
{0X2740, 0},
{0X2741, 0},
{0X2742, 0},
{0X2743, 0},
{0X2744, 0},
{0X2745, 0},
{0X2746, 0},
{0X2747, 0},
{0X2748, 0},
{0X2749, 0},
{0X274A, 0},
{0X274B, 0},
{0X274D, 0},
{0X274F, 0},
{0X2750, 0},
{0X2751, 0},
{0X2752, 0},
{0X2756, 0},
{0X2758, 0},
{0X2759, 0},
{0X275A, 0},
{0X275B, 0},
{0X275C, 0},
{0X275D, 0},
{0X275E, 0},
{0X2761, 0},
{0X2762, 0},
{0X2763, 0},
{0X2764, 0},
{0X2765, 0},
{0X2766, 0},
{0X2767, 0},
{0X2776, 0},
{0X2777, 0},
{0X2778, 0},
{0X2779, 0},
{0X277A, 0},
{0X277B, 0},
{0X277C, 0},
{0X277D, 0},
{0X277E, 0},
{0X277F, 0},
{0X2780, 0},
{0X2781, 0},
{0X2782, 0},
{0X2783, 0},
{0X2784, 0},
{0X2785, 0},
{0X2786, 0},
{0X2787, 0},
{0X2788, 0},
{0X2789, 0},
{0X278A, 0},
{0X278B, 0},
{0X278C, 0},
{0X278D, 0},
{0X278E, 0},
{0X278F, 0},
{0X2790, 0},
{0X2791, 0},
{0X2792, 0},
{0X2793, 0},
{0X2794, 0},
{0X2798, 0},
{0X2799, 0},
{0X279A, 0},
{0X279B, 0},
{0X279C, 0},
{0X279D, 0},
{0X279E, 0},
{0X279F, 0},
{0X27A0, 0},
{0X27A1, 0},
{0X27A2, 0},
{0X27A3, 0},
{0X27A4, 0},
{0X27A5, 0},
{0X27A6, 0},
{0X27A7, 0},
{0X27A8, 0},
{0X27A9, 0},
{0X27AA, 0},
{0X27AB, 0},
{0X27AC, 0},
{0X27AD, 0},
{0X27AE, 0},
{0X27AF, 0},
{0X27B1, 0},
{0X27B2, 0},
{0X27B3, 0},
{0X27B4, 0},
{0X27B5, 0},
{0X27B6, 0},
{0X27B7, 0},
{0X27B8, 0},
{0X27B9, 0},
{0X27BA, 0},
{0X27BB, 0},
{0X27BC, 0},
{0X27BD, 0},
{0X27BE, 0},
{0XFB00, 0},
{0XFB01, 0},
{0XFB02, 0},
{0XFB03, 0},
{0XFB04, 0},
{0XFB05, 0},
{0XFB06, 0},
{0XFB13, 0},
{0XFB14, 0},
{0XFB15, 0},
{0XFB16, 0},
{0XFB17, 0},
{0XFB1D, 0},
{0XFB1E, 0},
{0XFB1F, 0},
{0XFB20, 0},
{0XFB21, 0},
{0XFB22, 0},
{0XFB23, 0},
{0XFB24, 0},
{0XFB25, 0},
{0XFB26, 0},
{0XFB27, 0},
{0XFB28, 0},
{0XFB29, 0},
{0XFB2A, 0},
{0XFB2B, 0},
{0XFB2C, 0},
{0XFB2D, 0},
{0XFB2E, 0},
{0XFB2F, 0},
{0XFB30, 0},
{0XFB31, 0},
{0XFB32, 0},
{0XFB33, 0},
{0XFB34, 0},
{0XFB35, 0},
{0XFB36, 0},
{0XFB38, 0},
{0XFB39, 0},
{0XFB3A, 0},
{0XFB3B, 0},
{0XFB3C, 0},
{0XFB3E, 0},
{0XFB40, 0},
{0XFB41, 0},
{0XFB43, 0},
{0XFB44, 0},
{0XFB46, 0},
{0XFB47, 0},
{0XFB48, 0},
{0XFB49, 0},
{0XFB4A, 0},
{0XFB4B, 0},
{0XFB4C, 0},
{0XFB4D, 0},
{0XFB4E, 0},
{0XFB4F, 0},
{0XFB56, 0},
{0XFB57, 0},
{0XFB58, 0},
{0XFB59, 0},
{0XFB66, 0},
{0XFB67, 0},
{0XFB68, 0},
{0XFB69, 0},
{0XFB7A, 0},
{0XFB7B, 0},
{0XFB7C, 0},
{0XFB7D, 0},
{0XFB88, 0},
{0XFB89, 0},
{0XFB8A, 0},
{0XFB8B, 0},
{0XFB8C, 0},
{0XFB8D, 0},
{0XFB8E, 0},
{0XFB8F, 0},
{0XFB90, 0},
{0XFB91, 0},
{0XFB92, 0},
{0XFB93, 0},
{0XFB94, 0},
{0XFB95, 0},
{0XFB9E, 0},
{0XFB9F, 0},
{0XFBA4, 0},
{0XFBA5, 0},
{0XFBAE, 0},
{0XFBAF, 0},
{0XFBB0, 0},
{0XFBB1, 0},
{0XFE20, 0},
{0XFE21, 0},
{0XFE22, 0},
{0XFE23, 0},
{0XFE80, 0},
{0XFE81, 0},
{0XFE82, 0},
{0XFE83, 0},
{0XFE84, 0},
{0XFE85, 0},
{0XFE86, 0},
{0XFE87, 0},
{0XFE88, 0},
{0XFE89, 0},
{0XFE8A, 0},
{0XFE8B, 0},
{0XFE8C, 0},
{0XFE8D, 0},
{0XFE8E, 0},
{0XFE8F, 0},
{0XFE90, 0},
{0XFE91, 0},
{0XFE92, 0},
{0XFE93, 0},
{0XFE94, 0},
{0XFE95, 0},
{0XFE96, 0},
{0XFE97, 0},
{0XFE98, 0},
{0XFE99, 0},
{0XFE9A, 0},
{0XFE9B, 0},
{0XFE9C, 0},
{0XFE9D, 0},
{0XFE9E, 0},
{0XFE9F, 0},
{0XFEA0, 0},
{0XFEA1, 0},
{0XFEA2, 0},
{0XFEA3, 0},
{0XFEA4, 0},
{0XFEA5, 0},
{0XFEA6, 0},
{0XFEA7, 0},
{0XFEA8, 0},
{0XFEA9, 0},
{0XFEAA, 0},
{0XFEAB, 0},
{0XFEAC, 0},
{0XFEAD, 0},
{0XFEAE, 0},
{0XFEAF, 0},
{0XFEB0, 0},
{0XFEB1, 0},
{0XFEB2, 0},
{0XFEB3, 0},
{0XFEB4, 0},
{0XFEB5, 0},
{0XFEB6, 0},
{0XFEB7, 0},
{0XFEB8, 0},
{0XFEB9, 0},
{0XFEBA, 0},
{0XFEBB, 0},
{0XFEBC, 0},
{0XFEBD, 0},
{0XFEBE, 0},
{0XFEBF, 0},
{0XFEC0, 0},
{0XFEC1, 0},
{0XFEC2, 0},
{0XFEC3, 0},
{0XFEC4, 0},
{0XFEC5, 0},
{0XFEC6, 0},
{0XFEC7, 0},
{0XFEC8, 0},
{0XFEC9, 0},
{0XFECA, 0},
{0XFECB, 0},
{0XFECC, 0},
{0XFECD, 0},
{0XFECE, 0},
{0XFECF, 0},
{0XFED0, 0},
{0XFED1, 0},
{0XFED2, 0},
{0XFED3, 0},
{0XFED4, 0},
{0XFED5, 0},
{0XFED6, 0},
{0XFED7, 0},
{0XFED8, 0},
{0XFED9, 0},
{0XFEDA, 0},
{0XFEDB, 0},
{0XFEDC, 0},
{0XFEDD, 0},
{0XFEDE, 0},
{0XFEDF, 0},
{0XFEE0, 0},
{0XFEE1, 0},
{0XFEE2, 0},
{0XFEE3, 0},
{0XFEE4, 0},
{0XFEE5, 0},
{0XFEE6, 0},
{0XFEE7, 0},
{0XFEE8, 0},
{0XFEE9, 0},
{0XFEEA, 0},
{0XFEEB, 0},
{0XFEEC, 0},
{0XFEED, 0},
{0XFEEE, 0},
{0XFEEF, 0},
{0XFEF0, 0},
{0XFEF1, 0},
{0XFEF2, 0},
{0XFEF3, 0},
{0XFEF4, 0},
{0XFEF5, 0},
{0XFEF6, 0},
{0XFEF7, 0},
{0XFEF8, 0},
{0XFEF9, 0},
{0XFEFA, 0},
{0XFEFB, 0},
{0XFEFC, 0},
{0XFFFD, 0}
};
int8_t expected_equals[] = {
31,
30,
29,
28,
27,
26,
25,
24,
23,
22,
21,
20,
19,
18,
17,
16,
15,
14,
13,
12,
11,
10,
9,
8,
7,
6,
5,
4,
3,
2,
1,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
1,
0,
1,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
1,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
1,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
1,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
1,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
1,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
1,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
1,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
1,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
1,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
1,
0,
1,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
1,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
1,
0,
0,
0,
0,
0,
0,
1,
0,
0,
0,
0,
0,
0,
0,
0,
1,
0,
0,
1,
0,
0,
0,
0,
0,
0,
0,
0,
1,
0,
0,
0,
0,
0,
0,
0,
1,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0
};
void CollationISOTest::quickSort(CollationKey** keyArray, int *indexes, int lo0, int hi0)
{
int lo = lo0;
int hi = hi0;
CollationKey *mid;
if ( hi0 > lo0)
{
/* Arbitrarily establishing partition element as the midpoint of
* the array.
*/
mid = keyArray[ ( lo0 + hi0 ) / 2 ];
// loop through the array until indices cross
while( lo <= hi )
{
/* find the first element that is greater than or equal to
* the partition element starting from the left Index.
*/
while( ( lo < hi0 ) &&
( keyArray[lo]->compareTo(*mid) <= Collator::LESS ) )
++lo;
/* find an element that is smaller than or equal to
* the partition element starting from the right Index.
*/
while( ( hi > lo0 ) &&
( keyArray[hi]->compareTo(*mid) >= Collator::GREATER ) )
--hi;
// if the indexes have not crossed, swap
if( lo <= hi )
{
int tempindex = indexes[lo];
CollationKey *temp = keyArray[lo];
keyArray[lo] = keyArray[hi];
indexes[lo] = indexes[hi];
keyArray[hi] = temp;
indexes[hi] = tempindex;
++lo;
--hi;
}
}
/* If the right index has not reached the left side of array
* must now sort the left partition.
*/
if( lo0 < hi )
quickSort( keyArray, indexes, lo0, hi );
/* If the left index has not reached the right side of array
* must now sort the right partition.
*/
if( lo < hi0 )
quickSort( keyArray, indexes, lo, hi0 );
}
}
CollationISOTest::CollationISOTest()
: myCollation(0)
{
UErrorCode status = U_ZERO_ERROR;
myCollation = Collator::createInstance(Locale::FRENCH, status);
}
CollationISOTest::~CollationISOTest()
{
delete myCollation;
}
void CollationISOTest::TestAll( char* par )
{
int32_t i = 0;
// bubble sort
const int32_t n_limit = 3447; // fixed value
UnicodeString *testArray[n_limit];
CollationKey *keyArray[n_limit];
int32_t n;
if (quick) {
logln("Quick version: Tests 150 entries of ISO 14651 characters");
n = 150;
}else{
logln("Tests 3447 entries of ISO 14651 characters");
logln("This test debug build takes about 8 mins to complete on a P133 PC");
n = n_limit;
}
for (i = 0; i < n; i++) {
UErrorCode status = U_ZERO_ERROR;
testArray[i] = new UnicodeString(testCases[i], 1);
keyArray[i] = new CollationKey();
myCollation->getCollationKey(*testArray[i], *keyArray[i], status);
if (U_FAILURE(status)) {
err("Creating collation key failed");
return;
}
}
#if generate_source
//define as 1 to generate source code in a text file for initializing expected_equals
//also serves as definition of the values in expected_equals
// Dynamically generates an array parrallel to testCases containing the
// expected value of the thorough collation test, assumes the testCases array
// is sorted, expected[] basically stores the number of adajacent cells that are equal
int indexes[n_limit];
for (i = 0; i < n_limit; i++)
indexes[i] = i;
quickSort(keyArray, indexes, 0, n_limit-1);
int8_t expected[n_limit];
for (i = 0; i < n; i++) {
expected[i] = 0;
}
for (i = 0; i < n; i++)
{
int32_t j = i + 1;
while ( (j < n) && (keyArray[indexes[i]]->compareTo(*(keyArray[indexes[j]])) == 0))
{
j++;
}
expected[i] = (int8_t) (j - i - 1);
}
const char *path = IntlTest::getTestDirectory();
FILE *srcfile = fopen( path, "w");
if (srcfile) {
for (i = 0; i < n; i++) {
fprintf( srcfile, " {0X%.4X, 0},\n",(UChar)testCases[indexes[i]][0]);
}
fprintf(srcfile, "\n\n");
for (i = 0; i < n; i++) {
fprintf( srcfile, " %d,\n",expected[i]);
}
fclose(srcfile);
}
#else
Collator::EComparisonResult keyResult, compareResult, empiricalResult;
for (i = 0; i < n - 1; i++) {
for (int32_t j = n - 1; i < j; j--) {
keyResult = keyArray[j]->compareTo(*(keyArray[i]));
compareResult = myCollation->compare(*testArray[j], *testArray[i]);
if ((i + (int32_t)expected_equals[i]) >= j) {
empiricalResult = Collator::EQUAL;
}else{
empiricalResult = Collator::GREATER;
}
reportCResult( *testArray[j], *testArray[i], *keyArray[j], *keyArray[i], compareResult, keyResult, empiricalResult );
}
}
#endif
for (i = 0; i < n; i++) {
delete testArray[i];
delete keyArray[i];
}
}
void CollationISOTest::runIndexedTest( int32_t index, bool_t exec, char* &name, char* par )
{
if (exec) logln("TestSuite CollationISOTest: ");
switch (index) {
case 0: name = "TestAll"; if (exec) TestAll( par ); break;
default: name = ""; break;
}
}