| /* This file was converted by gperf_fold_key_conv.py
      from gperf output file. */
/* ANSI-C code produced by gperf version 3.0.3 */
/* Command-line: /Library/Developer/CommandLineTools/usr/bin/gperf -n -C -T -c -t -j1 -L ANSI-C -F,-1 -N unicode_fold1_key unicode_fold1_key.gperf  */
/* Computed positions: -k'1-3' */
/* This gperf source file was generated by make_unicode_fold_data.py */
#include <string.h>
#include "regenc.h"
#define TOTAL_KEYWORDS 1055
#define MIN_WORD_LENGTH 3
#define MAX_WORD_LENGTH 3
#define MIN_HASH_VALUE 6
#define MAX_HASH_VALUE 1196
/* maximum key range = 1191, duplicates = 0 */
#ifdef __GNUC__
__inline
#else
#ifdef __cplusplus
inline
#endif
#endif
/*ARGSUSED*/
static unsigned int
hash(OnigCodePoint codes[])
{
  static const unsigned short asso_values[] =
    {
         7,    5,    9,   57,    1,   12,  682,  788,  676,  782,
       665,  294,  885,  291,  884,  288,  879,  275,  873,  776,
       659,  772,  379,  745,   45,  272,  871,  266,  865,  157,
         2,   14,  815,  198,  697,  675,   28,  628,  479,  615,
       471,  545,  463,  551,    0,  303,  650,  524,  454,  504,
       648, 1054,  637, 1051,  262, 1045,  450, 1042,  440, 1073,
       864, 1035,  860,  849,  845, 1032,  632,  621,  252,  429,
       242,  614,  232,  838,  221,  835,  210, 1028,  139, 1022,
       127,  832,  115, 1017,   97, 1011,   87,  963,  200,  949,
        77,  178,  190,    0,  417, 1038,  602,  724,  117,  634,
        44, 1055,   60,  331,   27,  816,  168, 1007,  156,  997,
       144, 1001,  408,  387,  396,  991,  280,  763,  272,  981,
       294,  769,  321,  532,  497,  535,  587,  560,  488,  964,
        82,  125,  584,  474,  371,  213,  555,  457,  813,  667,
        64,  448,  810,  508,  990, 1197,  954, 1197,  798,  519,
       793, 1197,  787, 1197,  986, 1197,  188,  431,  374, 1197,
       319,  288,  166, 1197,  763, 1197,   16,    8,  747, 1197,
       981,  397,  945, 1197,  108,  313,  740,  306,  942,  180,
       494,  298,  939,  469,  927,  390,  923,  279,  734,  267,
       920,  257,  727,  234,  721,  304,  917,  264,  914, 1023,
       909,  329,  908, 1014,  181,  555,  869,  212,  623,  202,
       905,  887,  552,  813,  718,  688,  581,  664,  536,  439,
       533,  418,  530,  384,  364,  255,  357,  221,  311,  281,
       349,  229,  339,  143,  520,  114,  513,  268,  710,   63,
       703,   48,  696,  240,  604,   97,  505,  155,  897,  152,
        36,   24,  850,  105,   18,  100,  749,   15,  430
    };
  return asso_values[(unsigned char)onig_codes_byte_at(codes, 2)+3] + asso_values[(unsigned char)onig_codes_byte_at(codes, 1)] + asso_values[(unsigned char)onig_codes_byte_at(codes, 0)];
}
int
unicode_fold1_key(OnigCodePoint codes[])
{
  static const int wordlist[] =
    {
      -1, -1, -1, -1, -1, -1,
      2970,
      2286,
      1013,
      1511,
      1451,
      1490,
      231,
      171,
      210,
      2724,
      559,
      502,
      541,
      1319,
      1259,
      1298,
      1824,
      2376,
      1118,
      1680,
      1250,
      1812,
      387,
      165,
      493,
      2877,
      156,
      1827,
      2304,
      1037,
      1602,
      1499,
      147,
      315,
      219,
      12,
      2811,
      643,
      1244,
      1806,
      1343,
      1307,
      1956,
      1866,
      2658,
      2301,
      1031,
      1595,
      1481,
      2478,
      309,
      201,
      0,
      2805,
      637,
      532,
      120,
      1331,
      1289,
      1944,
      1860,
      2652,
      1034,
      1599,
      2475,
      2337,
      312,
      1656,
      6,
      2808,
      640,
      114,
      1821,
      1337,
      688,
      1950,
      884,
      2655,
      2277,
      1004,
      1580,
      2685,
      881,
      294,
      1076,
      1641,
      2790,
      622,
      2265,
      992,
      1574,
      2835,
      1938,
      288,
      2637,
      1421,
      2784,
      613,
      2259,
      986,
      1571,
      2964,
      1932,
      285,
      2631,
      132,
      2781,
      607,
      159,
      2388,
      1130,
      1692,
      1929,
      153,
      2628,
      3084,
      2253,
      980,
      1568,
      1028,
      1592,
      282,
      102,
      306,
      2778,
      601,
      2802,
      3078,
      2247,
      974,
      1565,
      354,
      2625,
      279,
      2649,
      676,
      2775,
      598,
      1424,
      3072,
      2241,
      968,
      1562,
      2154,
      2622,
      276,
      1046,
      1611,
      2772,
      595,
      324,
      96,
      27,
      2820,
      655,
      875,
      2619,
      1361,
      1043,
      1608,
      144,
      2667,
      321,
      138,
      3183,
      2817,
      652,
      2370,
      1112,
      1355,
      1040,
      1605,
      2148,
      2664,
      318,
      2871,
      18,
      2814,
      2955,
      2280,
      1007,
      1349,
      2433,
      1962,
      1737,
      2661,
      399,
      421,
      2943,
      2361,
      1103,
      2283,
      1010,
      1583,
      375,
      2007,
      297,
      2862,
      2937,
      2793,
      625,
      2271,
      998,
      1577,
      1181,
      2709,
      291,
      2640,
      429,
      2787,
      3066,
      2235,
      962,
      1559,
      1178,
      1935,
      2931,
      2634,
      425,
      2769,
      592,
      3060,
      2229,
      956,
      1556,
      3114,
      1436,
      2616,
      2925,
      77,
      2766,
      589,
      3054,
      2223,
      950,
      1553,
      2019,
      89,
      2613,
      817,
      2919,
      2763,
      3048,
      2217,
      944,
      1550,
      3129,
      1926,
      126,
      2610,
      2130,
      2760,
      3042,
      2211,
      938,
      1547,
      3123,
      1920,
      2142,
      2607,
      833,
      2757,
      3000,
      2169,
      896,
      1526,
      1163,
      1914,
      243,
      2604,
      827,
      2736,
      574,
      2319,
      1058,
      1623,
      108,
      1896,
      336,
      2958,
      52,
      2076,
      1055,
      1620,
      2124,
      1385,
      333,
      1974,
      46,
      83,
      664,
      2961,
      783,
      1379,
      381,
      1968,
      1061,
      1626,
      703,
      3177,
      339,
      2949,
      59,
      2973,
      670,
      2487,
      2565,
      1391,
      3093,
      1980,
      2136,
      2913,
      2469,
      1211,
      1773,
      776,
      2490,
      459,
      2568,
      80,
      2367,
      1109,
      2907,
      1064,
      1629,
      769,
      2022,
      342,
      2868,
      65,
      709,
      1169,
      2583,
      2901,
      1397,
      417,
      1986,
      759,
      706,
      9,
      2133,
      1217,
      1779,
      2895,
      1340,
      465,
      1953,
      92,
      3087,
      2547,
      2472,
      1214,
      1776,
      2889,
      2025,
      462,
      739,
      86,
      2466,
      1208,
      1770,
      2484,
      789,
      456,
      730,
      2463,
      1205,
      1767,
      2145,
      851,
      453,
      724,
      2328,
      3105,
      1647,
      2364,
      1106,
      357,
      2139,
      712,
      2841,
      679,
      1478,
      2865,
      1433,
      198,
      2127,
      807,
      2676,
      529,
      450,
      2712,
      1286,
      2121,
      1854,
      37,
      405,
      857,
      1052,
      1617,
      1370,
      3180,
      330,
      393,
      40,
      2826,
      661,
      854,
      3174,
      1373,
      1049,
      1614,
      2079,
      2118,
      327,
      848,
      34,
      2823,
      2289,
      1016,
      1586,
      1367,
      845,
      300,
      447,
      2670,
      2796,
      628,
      3171,
      3045,
      2214,
      941,
      1256,
      1818,
      2643,
      264,
      499,
      378,
      168,
      586,
      3012,
      2181,
      908,
      1532,
      1917,
      444,
      249,
      2112,
      753,
      2742,
      3006,
      2175,
      902,
      1529,
      2982,
      1908,
      246,
      1517,
      691,
      2739,
      237,
      2562,
      3165,
      2730,
      565,
      1902,
      1508,
      1325,
      2106,
      228,
      1442,
      2040,
      2721,
      556,
      1505,
      402,
      1316,
      225,
      1884,
      2034,
      2718,
      553,
      1502,
      3159,
      1313,
      222,
      1878,
      1430,
      2715,
      550,
      1073,
      1638,
      1310,
      2046,
      1872,
      2397,
      1139,
      1701,
      673,
      1067,
      1632,
      1415,
      2574,
      2004,
      2985,
      71,
      2481,
      1238,
      1800,
      2010,
      1403,
      483,
      1992,
      135,
      366,
      1223,
      1785,
      2850,
      697,
      471,
      2052,
      105,
      1220,
      1782,
      2979,
      369,
      468,
      746,
      99,
      700,
      2892,
      2460,
      1202,
      1764,
      2457,
      1199,
      1761,
      2454,
      1196,
      1758,
      68,
      345,
      2157,
      74,
      2829,
      1400,
      721,
      1989,
      1406,
      2151,
      1995,
      2967,
      736,
      2445,
      1187,
      1749,
      2331,
      1175,
      1650,
      2115,
      1881,
      360,
      2109,
      878,
      2844,
      2103,
      348,
      2016,
      1439,
      2832,
      2556,
      863,
      2679,
      1412,
      3168,
      2001,
      2550,
      3162,
      860,
      2526,
      3156,
      2085,
      2451,
      1193,
      1755,
      2325,
      1079,
      1644,
      842,
      1070,
      1635,
      839,
      2520,
      2838,
      836,
      2514,
      3138,
      1427,
      2508,
      3117,
      1409,
      2673,
      1998,
      2295,
      1022,
      1589,
      1235,
      1797,
      303,
      -1,
      2097,
      2799,
      129,
      821,
      3051,
      2220,
      947,
      -1,
      718,
      2646,
      267,
      3039,
      2208,
      935,
      2439,
      3150,
      1743,
      261,
      -1,
      1923,
      1875,
      583,
      3036,
      2205,
      932,
      1544,
      1911,
      2994,
      2163,
      890,
      1523,
      2754,
      580,
      1869,
      634,
      715,
      1448,
      571,
      2988,
      1941,
      2976,
      1520,
      1890,
      1514,
      240,
      1445,
      234,
      2733,
      568,
      2727,
      562,
      1328,
      1475,
      1322,
      -1,
      195,
      -1,
      3126,
      1460,
      526,
      441,
      180,
      1283,
      363,
      1848,
      511,
      -1,
      685,
      1268,
      1457,
      1842,
      830,
      177,
      2541,
      -1,
      1454,
      508,
      2070,
      174,
      1265,
      1863,
      1836,
      505,
      2100,
      438,
      1262,
      2058,
      1830,
      1232,
      1794,
      1496,
      -1,
      480,
      216,
      123,
      1229,
      1791,
      547,
      3153,
      477,
      1304,
      117,
      1226,
      1788,
      -1,
      2898,
      474,
      2094,
      111,
      2448,
      1190,
      1752,
      2418,
      1160,
      1722,
      2298,
      1025,
      414,
      2415,
      1157,
      1719,
      2055,
      3147,
      411,
      2061,
      2409,
      1151,
      1713,
      -1, -1,
      408,
      2391,
      1133,
      1695,
      -1, -1,
      396,
      2091,
      2379,
      1121,
      1683,
      1253,
      1815,
      390,
      872,
      496,
      2880,
      162,
      2601,
      2067,
      1857,
      869,
      3144,
      -1,
      2373,
      1115,
      1677,
      2598,
      866,
      384,
      2322,
      49,
      2874,
      667,
      -1,
      2595,
      1382,
      62,
      1971,
      786,
      -1, -1,
      1394,
      2589,
      1983,
      780,
      2064,
      1851,
      2355,
      1097,
      1674,
      1845,
      764,
      372,
      2352,
      1094,
      1671,
      1839,
      727,
      2349,
      1091,
      1668,
      2856,
      1833,
      2703,
      -1, -1,
      2853,
      -1, -1,
      2700,
      2340,
      1082,
      1659,
      2334,
      2697,
      1653,
      2307,
      1493,
      435,
      694,
      213,
      2847,
      682,
      15,
      544,
      646,
      2688,
      1301,
      1346,
      2682,
      1959,
      3081,
      2250,
      977,
      3063,
      2232,
      959,
      3057,
      2226,
      953,
      273,
      2088,
      -1,
      270,
      3030,
      2199,
      926,
      1541,
      3027,
      2196,
      923,
      1247,
      1809,
      2751,
      255,
      490,
      3141,
      150,
      577,
      3024,
      2193,
      920,
      1538,
      3018,
      2187,
      914,
      1535,
      1487,
      2748,
      2436,
      207,
      1740,
      2745,
      1484,
      538,
      1472,
      204,
      1295,
      192,
      -1,
      535,
      1469,
      523,
      1292,
      189,
      1280,
      1466,
      1463,
      520,
      186,
      183,
      1277,
      432,
      517,
      514,
      -1,
      1274,
      1271,
      1241,
      1803,
      -1,
      2013,
      487,
      -1,
      141,
      2442,
      1184,
      1746,
      2430,
      2427,
      1734,
      1731,
      3120,
      -1,
      2424,
      2082,
      1728,
      2421,
      2592,
      1725,
      2412,
      1154,
      1716,
      2406,
      1148,
      1710,
      824,
      2403,
      1145,
      1707,
      3135,
      2586,
      2928,
      -1, -1,
      2910,
      -1, -1,
      2904,
      2400,
      1142,
      1704,
      2394,
      1136,
      1698,
      2385,
      1127,
      1689,
      3132,
      2274,
      1001,
      3108,
      3102,
      2886,
      2346,
      1088,
      1665,
      3096,
      619,
      -1,
      3090,
      2037,
      2535,
      2268,
      995,
      811,
      804,
      2049,
      2505,
      351,
      2694,
      797,
      616,
      -1,
      793,
      -1,
      1418,
      773,
      2580,
      2499,
      756,
      2382,
      1124,
      1686,
      749,
      2493,
      2358,
      1100,
      56,
      2883,
      2343,
      1085,
      1662,
      1388,
      2859,
      1977,
      743,
      2313,
      43,
      733,
      2577,
      2316,
      2706,
      1376,
      24,
      1965,
      2691,
      2310,
      31,
      1358,
      658,
      2262,
      989,
      1364,
      21,
      1172,
      649,
      2256,
      983,
      1352,
      610,
      3075,
      2244,
      971,
      1166,
      -1,
      604,
      3069,
      2238,
      965,
      2028,
      3033,
      2202,
      929,
      3021,
      2190,
      917,
      258,
      2292,
      1019,
      252,
      3009,
      2178,
      905,
      3003,
      2172,
      899,
      631,
      2544,
      2952,
      2997,
      2166,
      893,
      2991,
      2160,
      887,
      1905,
      3111,
      -1,
      1899,
      -1, -1,
      3,
      2946,
      -1,
      1893,
      3099,
      1334,
      1887,
      1947,
      -1,
      814,
      3015,
      2184,
      911,
      2538,
      -1, -1, -1,
      2532,
      801,
      -1, -1, -1, -1,
      2502,
      -1, -1, -1, -1, -1,
      2496,
      -1, -1, -1, -1, -1, -1,
      -1, -1, -1, -1, -1, -1,
      -1, -1, -1, -1, -1, -1,
      -1,
      2940,
      -1, -1, -1, -1, -1,
      2934,
      2571,
      -1, -1, -1,
      2922,
      -1, -1, -1, -1, -1,
      2916,
      -1, -1, -1, -1, -1, -1,
      -1, -1, -1, -1, -1, -1,
      -1, -1, -1, -1, -1, -1,
      -1, -1, -1, -1, -1, -1,
      -1, -1, -1, -1, -1, -1,
      -1, -1, -1,
      2073,
      -1, -1, -1, -1, -1,
      2559,
      -1, -1, -1, -1, -1,
      2553,
      -1,
      2529,
      -1, -1,
      2043,
      -1, -1,
      2523,
      -1, -1, -1, -1,
      2517,
      2511,
      2031
    };
  if (0 == 0)
    {
      int key = hash(codes);
      if (key <= MAX_HASH_VALUE)
        {
          int index = wordlist[key];
          if (index >= 0 && onig_codes_cmp(codes, OnigUnicodeFolds1 + index, 1) == 0)
            return index;
        }
    }
  return -1;
}
 |