libraries/base/cbits/WCsubst.c (5,040 lines of code) (raw):
/*-------------------------------------------------------------------------
This is an automatically generated file: do not edit
Generated by ubconfc at Tue Aug 14 10:04:18 UTC 2018
@generated
-------------------------------------------------------------------------*/
#include "WCsubst.h"
/* Unicode general categories, listed in the same order as in the Unicode
* standard -- this must be the same order as in GHC.Unicode.
*/
enum {
NUMCAT_LU, /* Letter, Uppercase */
NUMCAT_LL, /* Letter, Lowercase */
NUMCAT_LT, /* Letter, Titlecase */
NUMCAT_LM, /* Letter, Modifier */
NUMCAT_LO, /* Letter, Other */
NUMCAT_MN, /* Mark, Non-Spacing */
NUMCAT_MC, /* Mark, Spacing Combining */
NUMCAT_ME, /* Mark, Enclosing */
NUMCAT_ND, /* Number, Decimal */
NUMCAT_NL, /* Number, Letter */
NUMCAT_NO, /* Number, Other */
NUMCAT_PC, /* Punctuation, Connector */
NUMCAT_PD, /* Punctuation, Dash */
NUMCAT_PS, /* Punctuation, Open */
NUMCAT_PE, /* Punctuation, Close */
NUMCAT_PI, /* Punctuation, Initial quote */
NUMCAT_PF, /* Punctuation, Final quote */
NUMCAT_PO, /* Punctuation, Other */
NUMCAT_SM, /* Symbol, Math */
NUMCAT_SC, /* Symbol, Currency */
NUMCAT_SK, /* Symbol, Modifier */
NUMCAT_SO, /* Symbol, Other */
NUMCAT_ZS, /* Separator, Space */
NUMCAT_ZL, /* Separator, Line */
NUMCAT_ZP, /* Separator, Paragraph */
NUMCAT_CC, /* Other, Control */
NUMCAT_CF, /* Other, Format */
NUMCAT_CS, /* Other, Surrogate */
NUMCAT_CO, /* Other, Private Use */
NUMCAT_CN /* Other, Not Assigned */
};
struct _convrule_
{
unsigned int category;
unsigned int catnumber;
int possible;
int updist;
int lowdist;
int titledist;
};
struct _charblock_
{
int start;
int length;
const struct _convrule_ *rule;
};
#define GENCAT_ZP 67108864
#define GENCAT_MC 8388608
#define GENCAT_NO 131072
#define GENCAT_SK 1024
#define GENCAT_CO 268435456
#define GENCAT_ME 4194304
#define GENCAT_ND 256
#define GENCAT_PO 4
#define GENCAT_LT 524288
#define GENCAT_PC 2048
#define GENCAT_SM 64
#define GENCAT_ZS 2
#define GENCAT_CC 1
#define GENCAT_LU 512
#define GENCAT_PD 128
#define GENCAT_SO 8192
#define GENCAT_PE 32
#define GENCAT_CS 134217728
#define GENCAT_PF 262144
#define GENCAT_CF 65536
#define GENCAT_PS 16
#define GENCAT_SC 8
#define GENCAT_LL 4096
#define GENCAT_ZL 33554432
#define GENCAT_LM 1048576
#define GENCAT_PI 32768
#define GENCAT_NL 16777216
#define GENCAT_MN 2097152
#define GENCAT_LO 16384
#define MAX_UNI_CHAR 1114109
#define NUM_BLOCKS 3349
#define NUM_CONVBLOCKS 1326
#define NUM_SPACEBLOCKS 7
#define NUM_LAT1BLOCKS 63
#define NUM_RULES 205
static const struct _convrule_ rule183={GENCAT_LU, NUMCAT_LU, 1, 0, -35332, 0};
static const struct _convrule_ rule171={GENCAT_SO, NUMCAT_SO, 1, -26, 0, -26};
static const struct _convrule_ rule182={GENCAT_LL, NUMCAT_LL, 1, -7264, 0, -7264};
static const struct _convrule_ rule188={GENCAT_LU, NUMCAT_LU, 1, 0, -42315, 0};
static const struct _convrule_ rule143={GENCAT_LL, NUMCAT_LL, 1, 8, 0, 8};
static const struct _convrule_ rule127={GENCAT_LU, NUMCAT_LU, 1, 0, 38864, 0};
static const struct _convrule_ rule90={GENCAT_LL, NUMCAT_LL, 1, 42258, 0, 42258};
static const struct _convrule_ rule20={GENCAT_LL, NUMCAT_LL, 0, 0, 0, 0};
static const struct _convrule_ rule76={GENCAT_LL, NUMCAT_LL, 1, 10743, 0, 10743};
static const struct _convrule_ rule61={GENCAT_LL, NUMCAT_LL, 1, 10783, 0, 10783};
static const struct _convrule_ rule132={GENCAT_LL, NUMCAT_LL, 1, -6242, 0, -6242};
static const struct _convrule_ rule37={GENCAT_LU, NUMCAT_LU, 1, 0, 211, 0};
static const struct _convrule_ rule197={GENCAT_LL, NUMCAT_LL, 1, -928, 0, -928};
static const struct _convrule_ rule80={GENCAT_LL, NUMCAT_LL, 1, -214, 0, -214};
static const struct _convrule_ rule75={GENCAT_LL, NUMCAT_LL, 1, -211, 0, -211};
static const struct _convrule_ rule123={GENCAT_LL, NUMCAT_LL, 1, -48, 0, -48};
static const struct _convrule_ rule52={GENCAT_LU, NUMCAT_LU, 1, 0, -56, 0};
static const struct _convrule_ rule149={GENCAT_LL, NUMCAT_LL, 1, 112, 0, 112};
static const struct _convrule_ rule71={GENCAT_LL, NUMCAT_LL, 1, -207, 0, -207};
static const struct _convrule_ rule125={GENCAT_LU, NUMCAT_LU, 1, 0, 7264, 0};
static const struct _convrule_ rule166={GENCAT_LU, NUMCAT_LU, 1, 0, 28, 0};
static const struct _convrule_ rule173={GENCAT_LU, NUMCAT_LU, 1, 0, -3814, 0};
static const struct _convrule_ rule45={GENCAT_LU, NUMCAT_LU, 1, 0, 219, 0};
static const struct _convrule_ rule7={GENCAT_PD, NUMCAT_PD, 0, 0, 0, 0};
static const struct _convrule_ rule202={GENCAT_LL, NUMCAT_LL, 1, -40, 0, -40};
static const struct _convrule_ rule99={GENCAT_LL, NUMCAT_LL, 1, -38, 0, -38};
static const struct _convrule_ rule97={GENCAT_LU, NUMCAT_LU, 1, 0, 64, 0};
static const struct _convrule_ rule1={GENCAT_ZS, NUMCAT_ZS, 0, 0, 0, 0};
static const struct _convrule_ rule89={GENCAT_LL, NUMCAT_LL, 1, 42261, 0, 42261};
static const struct _convrule_ rule29={GENCAT_LU, NUMCAT_LU, 1, 0, 210, 0};
static const struct _convrule_ rule35={GENCAT_LU, NUMCAT_LU, 1, 0, 207, 0};
static const struct _convrule_ rule168={GENCAT_NL, NUMCAT_NL, 1, 0, 16, 0};
static const struct _convrule_ rule13={GENCAT_SO, NUMCAT_SO, 0, 0, 0, 0};
static const struct _convrule_ rule163={GENCAT_LU, NUMCAT_LU, 1, 0, -7517, 0};
static const struct _convrule_ rule142={GENCAT_LU, NUMCAT_LU, 1, 0, -7615, 0};
static const struct _convrule_ rule137={GENCAT_LU, NUMCAT_LU, 1, 0, -3008, 0};
static const struct _convrule_ rule100={GENCAT_LL, NUMCAT_LL, 1, -37, 0, -37};
static const struct _convrule_ rule2={GENCAT_PO, NUMCAT_PO, 0, 0, 0, 0};
static const struct _convrule_ rule69={GENCAT_LL, NUMCAT_LL, 1, 42319, 0, 42319};
static const struct _convrule_ rule56={GENCAT_LU, NUMCAT_LU, 1, 0, 10792, 0};
static const struct _convrule_ rule25={GENCAT_LL, NUMCAT_LL, 1, -232, 0, -232};
static const struct _convrule_ rule43={GENCAT_LU, NUMCAT_LU, 1, 0, 218, 0};
static const struct _convrule_ rule179={GENCAT_LU, NUMCAT_LU, 1, 0, -10783, 0};
static const struct _convrule_ rule147={GENCAT_LL, NUMCAT_LL, 1, 100, 0, 100};
static const struct _convrule_ rule98={GENCAT_LU, NUMCAT_LU, 1, 0, 63, 0};
static const struct _convrule_ rule92={GENCAT_MN, NUMCAT_MN, 0, 0, 0, 0};
static const struct _convrule_ rule12={GENCAT_LL, NUMCAT_LL, 1, -32, 0, -32};
static const struct _convrule_ rule95={GENCAT_LU, NUMCAT_LU, 1, 0, 38, 0};
static const struct _convrule_ rule140={GENCAT_LL, NUMCAT_LL, 1, 35384, 0, 35384};
static const struct _convrule_ rule101={GENCAT_LL, NUMCAT_LL, 1, -31, 0, -31};
static const struct _convrule_ rule204={GENCAT_LL, NUMCAT_LL, 1, -34, 0, -34};
static const struct _convrule_ rule107={GENCAT_LU, NUMCAT_LU, 0, 0, 0, 0};
static const struct _convrule_ rule11={GENCAT_PC, NUMCAT_PC, 0, 0, 0, 0};
static const struct _convrule_ rule192={GENCAT_LU, NUMCAT_LU, 1, 0, -42261, 0};
static const struct _convrule_ rule190={GENCAT_LU, NUMCAT_LU, 1, 0, -42258, 0};
static const struct _convrule_ rule158={GENCAT_LU, NUMCAT_LU, 1, 0, -112, 0};
static const struct _convrule_ rule15={GENCAT_PI, NUMCAT_PI, 0, 0, 0, 0};
static const struct _convrule_ rule146={GENCAT_LL, NUMCAT_LL, 1, 86, 0, 86};
static const struct _convrule_ rule124={GENCAT_MC, NUMCAT_MC, 0, 0, 0, 0};
static const struct _convrule_ rule139={GENCAT_LL, NUMCAT_LL, 1, 3814, 0, 3814};
static const struct _convrule_ rule44={GENCAT_LU, NUMCAT_LU, 1, 0, 217, 0};
static const struct _convrule_ rule167={GENCAT_LL, NUMCAT_LL, 1, -28, 0, -28};
static const struct _convrule_ rule200={GENCAT_CO, NUMCAT_CO, 0, 0, 0, 0};
static const struct _convrule_ rule196={GENCAT_LU, NUMCAT_LU, 1, 0, -35384, 0};
static const struct _convrule_ rule116={GENCAT_LL, NUMCAT_LL, 1, -96, 0, -96};
static const struct _convrule_ rule185={GENCAT_LL, NUMCAT_LL, 1, 48, 0, 48};
static const struct _convrule_ rule51={GENCAT_LU, NUMCAT_LU, 1, 0, -97, 0};
static const struct _convrule_ rule39={GENCAT_LL, NUMCAT_LL, 1, 163, 0, 163};
static const struct _convrule_ rule201={GENCAT_LU, NUMCAT_LU, 1, 0, 40, 0};
static const struct _convrule_ rule128={GENCAT_NL, NUMCAT_NL, 0, 0, 0, 0};
static const struct _convrule_ rule126={GENCAT_LL, NUMCAT_LL, 1, 3008, 0, 0};
static const struct _convrule_ rule96={GENCAT_LU, NUMCAT_LU, 1, 0, 37, 0};
static const struct _convrule_ rule82={GENCAT_LL, NUMCAT_LL, 1, -218, 0, -218};
static const struct _convrule_ rule120={GENCAT_LU, NUMCAT_LU, 1, 0, 15, 0};
static const struct _convrule_ rule67={GENCAT_LL, NUMCAT_LL, 1, -202, 0, -202};
static const struct _convrule_ rule66={GENCAT_LL, NUMCAT_LL, 1, -205, 0, -205};
static const struct _convrule_ rule47={GENCAT_LU, NUMCAT_LU, 1, 0, 2, 1};
static const struct _convrule_ rule136={GENCAT_LL, NUMCAT_LL, 1, 35266, 0, 35266};
static const struct _convrule_ rule83={GENCAT_LL, NUMCAT_LL, 1, 42307, 0, 42307};
static const struct _convrule_ rule30={GENCAT_LU, NUMCAT_LU, 1, 0, 206, 0};
static const struct _convrule_ rule111={GENCAT_LL, NUMCAT_LL, 1, -86, 0, -86};
static const struct _convrule_ rule4={GENCAT_PS, NUMCAT_PS, 0, 0, 0, 0};
static const struct _convrule_ rule3={GENCAT_SC, NUMCAT_SC, 0, 0, 0, 0};
static const struct _convrule_ rule164={GENCAT_LU, NUMCAT_LU, 1, 0, -8383, 0};
static const struct _convrule_ rule122={GENCAT_LU, NUMCAT_LU, 1, 0, 48, 0};
static const struct _convrule_ rule14={GENCAT_LO, NUMCAT_LO, 0, 0, 0, 0};
static const struct _convrule_ rule18={GENCAT_LL, NUMCAT_LL, 1, 743, 0, 743};
static const struct _convrule_ rule161={GENCAT_ZL, NUMCAT_ZL, 0, 0, 0, 0};
static const struct _convrule_ rule156={GENCAT_LU, NUMCAT_LU, 1, 0, -86, 0};
static const struct _convrule_ rule186={GENCAT_LU, NUMCAT_LU, 1, 0, -42308, 0};
static const struct _convrule_ rule176={GENCAT_LL, NUMCAT_LL, 1, -10792, 0, -10792};
static const struct _convrule_ rule180={GENCAT_LU, NUMCAT_LU, 1, 0, -10782, 0};
static const struct _convrule_ rule198={GENCAT_LL, NUMCAT_LL, 1, -38864, 0, -38864};
static const struct _convrule_ rule153={GENCAT_LU, NUMCAT_LU, 1, 0, -74, 0};
static const struct _convrule_ rule24={GENCAT_LU, NUMCAT_LU, 1, 0, -199, 0};
static const struct _convrule_ rule157={GENCAT_LU, NUMCAT_LU, 1, 0, -100, 0};
static const struct _convrule_ rule138={GENCAT_LL, NUMCAT_LL, 1, 35332, 0, 35332};
static const struct _convrule_ rule155={GENCAT_LL, NUMCAT_LL, 1, -7205, 0, -7205};
static const struct _convrule_ rule152={GENCAT_LL, NUMCAT_LL, 1, 9, 0, 9};
static const struct _convrule_ rule27={GENCAT_LL, NUMCAT_LL, 1, -300, 0, -300};
static const struct _convrule_ rule187={GENCAT_LU, NUMCAT_LU, 1, 0, -42319, 0};
static const struct _convrule_ rule31={GENCAT_LU, NUMCAT_LU, 1, 0, 205, 0};
static const struct _convrule_ rule59={GENCAT_LU, NUMCAT_LU, 1, 0, 69, 0};
static const struct _convrule_ rule6={GENCAT_SM, NUMCAT_SM, 0, 0, 0, 0};
static const struct _convrule_ rule121={GENCAT_LL, NUMCAT_LL, 1, -15, 0, -15};
static const struct _convrule_ rule112={GENCAT_LL, NUMCAT_LL, 1, -80, 0, -80};
static const struct _convrule_ rule191={GENCAT_LU, NUMCAT_LU, 1, 0, -42282, 0};
static const struct _convrule_ rule133={GENCAT_LL, NUMCAT_LL, 1, -6243, 0, -6243};
static const struct _convrule_ rule130={GENCAT_LL, NUMCAT_LL, 1, -6253, 0, -6253};
static const struct _convrule_ rule165={GENCAT_LU, NUMCAT_LU, 1, 0, -8262, 0};
static const struct _convrule_ rule144={GENCAT_LU, NUMCAT_LU, 1, 0, -8, 0};
static const struct _convrule_ rule26={GENCAT_LU, NUMCAT_LU, 1, 0, -121, 0};
static const struct _convrule_ rule0={GENCAT_CC, NUMCAT_CC, 0, 0, 0, 0};
static const struct _convrule_ rule113={GENCAT_LL, NUMCAT_LL, 1, 7, 0, 7};
static const struct _convrule_ rule93={GENCAT_MN, NUMCAT_MN, 1, 84, 0, 84};
static const struct _convrule_ rule78={GENCAT_LL, NUMCAT_LL, 1, 10749, 0, 10749};
static const struct _convrule_ rule77={GENCAT_LL, NUMCAT_LL, 1, 42305, 0, 42305};
static const struct _convrule_ rule70={GENCAT_LL, NUMCAT_LL, 1, 42315, 0, 42315};
static const struct _convrule_ rule50={GENCAT_LL, NUMCAT_LL, 1, -79, 0, -79};
static const struct _convrule_ rule60={GENCAT_LU, NUMCAT_LU, 1, 0, 71, 0};
static const struct _convrule_ rule22={GENCAT_LU, NUMCAT_LU, 1, 0, 1, 0};
static const struct _convrule_ rule49={GENCAT_LL, NUMCAT_LL, 1, -2, 0, -1};
static const struct _convrule_ rule94={GENCAT_LU, NUMCAT_LU, 1, 0, 116, 0};
static const struct _convrule_ rule84={GENCAT_LL, NUMCAT_LL, 1, 42282, 0, 42282};
static const struct _convrule_ rule169={GENCAT_NL, NUMCAT_NL, 1, -16, 0, -16};
static const struct _convrule_ rule104={GENCAT_LU, NUMCAT_LU, 1, 0, 8, 0};
static const struct _convrule_ rule23={GENCAT_LL, NUMCAT_LL, 1, -1, 0, -1};
static const struct _convrule_ rule88={GENCAT_LL, NUMCAT_LL, 1, -219, 0, -219};
static const struct _convrule_ rule79={GENCAT_LL, NUMCAT_LL, 1, -213, 0, -213};
static const struct _convrule_ rule64={GENCAT_LL, NUMCAT_LL, 1, -210, 0, -210};
static const struct _convrule_ rule177={GENCAT_LU, NUMCAT_LU, 1, 0, -10780, 0};
static const struct _convrule_ rule87={GENCAT_LL, NUMCAT_LL, 1, -71, 0, -71};
static const struct _convrule_ rule85={GENCAT_LL, NUMCAT_LL, 1, -69, 0, -69};
static const struct _convrule_ rule32={GENCAT_LU, NUMCAT_LU, 1, 0, 79, 0};
static const struct _convrule_ rule195={GENCAT_LU, NUMCAT_LU, 1, 0, -42307, 0};
static const struct _convrule_ rule117={GENCAT_LU, NUMCAT_LU, 1, 0, -7, 0};
static const struct _convrule_ rule74={GENCAT_LL, NUMCAT_LL, 1, -209, 0, -209};
static const struct _convrule_ rule199={GENCAT_CS, NUMCAT_CS, 0, 0, 0, 0};
static const struct _convrule_ rule154={GENCAT_LT, NUMCAT_LT, 1, 0, -9, 0};
static const struct _convrule_ rule57={GENCAT_LL, NUMCAT_LL, 1, 10815, 0, 10815};
static const struct _convrule_ rule72={GENCAT_LL, NUMCAT_LL, 1, 42280, 0, 42280};
static const struct _convrule_ rule34={GENCAT_LU, NUMCAT_LU, 1, 0, 203, 0};
static const struct _convrule_ rule194={GENCAT_LU, NUMCAT_LU, 1, 0, -48, 0};
static const struct _convrule_ rule63={GENCAT_LL, NUMCAT_LL, 1, 10782, 0, 10782};
static const struct _convrule_ rule184={GENCAT_LU, NUMCAT_LU, 1, 0, -42280, 0};
static const struct _convrule_ rule159={GENCAT_LU, NUMCAT_LU, 1, 0, -128, 0};
static const struct _convrule_ rule102={GENCAT_LL, NUMCAT_LL, 1, -64, 0, -64};
static const struct _convrule_ rule17={GENCAT_NO, NUMCAT_NO, 0, 0, 0, 0};
static const struct _convrule_ rule91={GENCAT_LM, NUMCAT_LM, 0, 0, 0, 0};
static const struct _convrule_ rule46={GENCAT_LL, NUMCAT_LL, 1, 56, 0, 56};
static const struct _convrule_ rule145={GENCAT_LL, NUMCAT_LL, 1, 74, 0, 74};
static const struct _convrule_ rule42={GENCAT_LU, NUMCAT_LU, 1, 0, 214, 0};
static const struct _convrule_ rule162={GENCAT_ZP, NUMCAT_ZP, 0, 0, 0, 0};
static const struct _convrule_ rule103={GENCAT_LL, NUMCAT_LL, 1, -63, 0, -63};
static const struct _convrule_ rule36={GENCAT_LL, NUMCAT_LL, 1, 97, 0, 97};
static const struct _convrule_ rule151={GENCAT_LT, NUMCAT_LT, 1, 0, -8, 0};
static const struct _convrule_ rule148={GENCAT_LL, NUMCAT_LL, 1, 128, 0, 128};
static const struct _convrule_ rule81={GENCAT_LL, NUMCAT_LL, 1, 10727, 0, 10727};
static const struct _convrule_ rule62={GENCAT_LL, NUMCAT_LL, 1, 10780, 0, 10780};
static const struct _convrule_ rule41={GENCAT_LL, NUMCAT_LL, 1, 130, 0, 130};
static const struct _convrule_ rule203={GENCAT_LU, NUMCAT_LU, 1, 0, 34, 0};
static const struct _convrule_ rule134={GENCAT_LL, NUMCAT_LL, 1, -6236, 0, -6236};
static const struct _convrule_ rule68={GENCAT_LL, NUMCAT_LL, 1, -203, 0, -203};
static const struct _convrule_ rule65={GENCAT_LL, NUMCAT_LL, 1, -206, 0, -206};
static const struct _convrule_ rule48={GENCAT_LT, NUMCAT_LT, 1, -1, 1, 0};
static const struct _convrule_ rule19={GENCAT_PF, NUMCAT_PF, 0, 0, 0, 0};
static const struct _convrule_ rule33={GENCAT_LU, NUMCAT_LU, 1, 0, 202, 0};
static const struct _convrule_ rule105={GENCAT_LL, NUMCAT_LL, 1, -62, 0, -62};
static const struct _convrule_ rule8={GENCAT_ND, NUMCAT_ND, 0, 0, 0, 0};
static const struct _convrule_ rule193={GENCAT_LU, NUMCAT_LU, 1, 0, 928, 0};
static const struct _convrule_ rule53={GENCAT_LU, NUMCAT_LU, 1, 0, -130, 0};
static const struct _convrule_ rule28={GENCAT_LL, NUMCAT_LL, 1, 195, 0, 195};
static const struct _convrule_ rule172={GENCAT_LU, NUMCAT_LU, 1, 0, -10743, 0};
static const struct _convrule_ rule141={GENCAT_LL, NUMCAT_LL, 1, -59, 0, -59};
static const struct _convrule_ rule115={GENCAT_LU, NUMCAT_LU, 1, 0, -60, 0};
static const struct _convrule_ rule110={GENCAT_LL, NUMCAT_LL, 1, -8, 0, -8};
static const struct _convrule_ rule73={GENCAT_LL, NUMCAT_LL, 1, 42308, 0, 42308};
static const struct _convrule_ rule40={GENCAT_LU, NUMCAT_LU, 1, 0, 213, 0};
static const struct _convrule_ rule150={GENCAT_LL, NUMCAT_LL, 1, 126, 0, 126};
static const struct _convrule_ rule131={GENCAT_LL, NUMCAT_LL, 1, -6244, 0, -6244};
static const struct _convrule_ rule129={GENCAT_LL, NUMCAT_LL, 1, -6254, 0, -6254};
static const struct _convrule_ rule118={GENCAT_LU, NUMCAT_LU, 1, 0, 80, 0};
static const struct _convrule_ rule55={GENCAT_LU, NUMCAT_LU, 1, 0, -163, 0};
static const struct _convrule_ rule189={GENCAT_LU, NUMCAT_LU, 1, 0, -42305, 0};
static const struct _convrule_ rule175={GENCAT_LL, NUMCAT_LL, 1, -10795, 0, -10795};
static const struct _convrule_ rule58={GENCAT_LU, NUMCAT_LU, 1, 0, -195, 0};
static const struct _convrule_ rule54={GENCAT_LU, NUMCAT_LU, 1, 0, 10795, 0};
static const struct _convrule_ rule135={GENCAT_LL, NUMCAT_LL, 1, -6181, 0, -6181};
static const struct _convrule_ rule109={GENCAT_LL, NUMCAT_LL, 1, -54, 0, -54};
static const struct _convrule_ rule160={GENCAT_LU, NUMCAT_LU, 1, 0, -126, 0};
static const struct _convrule_ rule106={GENCAT_LL, NUMCAT_LL, 1, -57, 0, -57};
static const struct _convrule_ rule21={GENCAT_LL, NUMCAT_LL, 1, 121, 0, 121};
static const struct _convrule_ rule170={GENCAT_SO, NUMCAT_SO, 1, 0, 26, 0};
static const struct _convrule_ rule86={GENCAT_LL, NUMCAT_LL, 1, -217, 0, -217};
static const struct _convrule_ rule16={GENCAT_CF, NUMCAT_CF, 0, 0, 0, 0};
static const struct _convrule_ rule114={GENCAT_LL, NUMCAT_LL, 1, -116, 0, -116};
static const struct _convrule_ rule38={GENCAT_LU, NUMCAT_LU, 1, 0, 209, 0};
static const struct _convrule_ rule10={GENCAT_SK, NUMCAT_SK, 0, 0, 0, 0};
static const struct _convrule_ rule181={GENCAT_LU, NUMCAT_LU, 1, 0, -10815, 0};
static const struct _convrule_ rule5={GENCAT_PE, NUMCAT_PE, 0, 0, 0, 0};
static const struct _convrule_ rule178={GENCAT_LU, NUMCAT_LU, 1, 0, -10749, 0};
static const struct _convrule_ rule119={GENCAT_ME, NUMCAT_ME, 0, 0, 0, 0};
static const struct _convrule_ rule108={GENCAT_LL, NUMCAT_LL, 1, -47, 0, -47};
static const struct _convrule_ rule174={GENCAT_LU, NUMCAT_LU, 1, 0, -10727, 0};
static const struct _convrule_ rule9={GENCAT_LU, NUMCAT_LU, 1, 0, 32, 0};
static const struct _charblock_ allchars[]={
{0, 32, &rule0},
{32, 1, &rule1},
{33, 3, &rule2},
{36, 1, &rule3},
{37, 3, &rule2},
{40, 1, &rule4},
{41, 1, &rule5},
{42, 1, &rule2},
{43, 1, &rule6},
{44, 1, &rule2},
{45, 1, &rule7},
{46, 2, &rule2},
{48, 10, &rule8},
{58, 2, &rule2},
{60, 3, &rule6},
{63, 2, &rule2},
{65, 26, &rule9},
{91, 1, &rule4},
{92, 1, &rule2},
{93, 1, &rule5},
{94, 1, &rule10},
{95, 1, &rule11},
{96, 1, &rule10},
{97, 26, &rule12},
{123, 1, &rule4},
{124, 1, &rule6},
{125, 1, &rule5},
{126, 1, &rule6},
{127, 33, &rule0},
{160, 1, &rule1},
{161, 1, &rule2},
{162, 4, &rule3},
{166, 1, &rule13},
{167, 1, &rule2},
{168, 1, &rule10},
{169, 1, &rule13},
{170, 1, &rule14},
{171, 1, &rule15},
{172, 1, &rule6},
{173, 1, &rule16},
{174, 1, &rule13},
{175, 1, &rule10},
{176, 1, &rule13},
{177, 1, &rule6},
{178, 2, &rule17},
{180, 1, &rule10},
{181, 1, &rule18},
{182, 2, &rule2},
{184, 1, &rule10},
{185, 1, &rule17},
{186, 1, &rule14},
{187, 1, &rule19},
{188, 3, &rule17},
{191, 1, &rule2},
{192, 23, &rule9},
{215, 1, &rule6},
{216, 7, &rule9},
{223, 1, &rule20},
{224, 23, &rule12},
{247, 1, &rule6},
{248, 7, &rule12},
{255, 1, &rule21},
{256, 1, &rule22},
{257, 1, &rule23},
{258, 1, &rule22},
{259, 1, &rule23},
{260, 1, &rule22},
{261, 1, &rule23},
{262, 1, &rule22},
{263, 1, &rule23},
{264, 1, &rule22},
{265, 1, &rule23},
{266, 1, &rule22},
{267, 1, &rule23},
{268, 1, &rule22},
{269, 1, &rule23},
{270, 1, &rule22},
{271, 1, &rule23},
{272, 1, &rule22},
{273, 1, &rule23},
{274, 1, &rule22},
{275, 1, &rule23},
{276, 1, &rule22},
{277, 1, &rule23},
{278, 1, &rule22},
{279, 1, &rule23},
{280, 1, &rule22},
{281, 1, &rule23},
{282, 1, &rule22},
{283, 1, &rule23},
{284, 1, &rule22},
{285, 1, &rule23},
{286, 1, &rule22},
{287, 1, &rule23},
{288, 1, &rule22},
{289, 1, &rule23},
{290, 1, &rule22},
{291, 1, &rule23},
{292, 1, &rule22},
{293, 1, &rule23},
{294, 1, &rule22},
{295, 1, &rule23},
{296, 1, &rule22},
{297, 1, &rule23},
{298, 1, &rule22},
{299, 1, &rule23},
{300, 1, &rule22},
{301, 1, &rule23},
{302, 1, &rule22},
{303, 1, &rule23},
{304, 1, &rule24},
{305, 1, &rule25},
{306, 1, &rule22},
{307, 1, &rule23},
{308, 1, &rule22},
{309, 1, &rule23},
{310, 1, &rule22},
{311, 1, &rule23},
{312, 1, &rule20},
{313, 1, &rule22},
{314, 1, &rule23},
{315, 1, &rule22},
{316, 1, &rule23},
{317, 1, &rule22},
{318, 1, &rule23},
{319, 1, &rule22},
{320, 1, &rule23},
{321, 1, &rule22},
{322, 1, &rule23},
{323, 1, &rule22},
{324, 1, &rule23},
{325, 1, &rule22},
{326, 1, &rule23},
{327, 1, &rule22},
{328, 1, &rule23},
{329, 1, &rule20},
{330, 1, &rule22},
{331, 1, &rule23},
{332, 1, &rule22},
{333, 1, &rule23},
{334, 1, &rule22},
{335, 1, &rule23},
{336, 1, &rule22},
{337, 1, &rule23},
{338, 1, &rule22},
{339, 1, &rule23},
{340, 1, &rule22},
{341, 1, &rule23},
{342, 1, &rule22},
{343, 1, &rule23},
{344, 1, &rule22},
{345, 1, &rule23},
{346, 1, &rule22},
{347, 1, &rule23},
{348, 1, &rule22},
{349, 1, &rule23},
{350, 1, &rule22},
{351, 1, &rule23},
{352, 1, &rule22},
{353, 1, &rule23},
{354, 1, &rule22},
{355, 1, &rule23},
{356, 1, &rule22},
{357, 1, &rule23},
{358, 1, &rule22},
{359, 1, &rule23},
{360, 1, &rule22},
{361, 1, &rule23},
{362, 1, &rule22},
{363, 1, &rule23},
{364, 1, &rule22},
{365, 1, &rule23},
{366, 1, &rule22},
{367, 1, &rule23},
{368, 1, &rule22},
{369, 1, &rule23},
{370, 1, &rule22},
{371, 1, &rule23},
{372, 1, &rule22},
{373, 1, &rule23},
{374, 1, &rule22},
{375, 1, &rule23},
{376, 1, &rule26},
{377, 1, &rule22},
{378, 1, &rule23},
{379, 1, &rule22},
{380, 1, &rule23},
{381, 1, &rule22},
{382, 1, &rule23},
{383, 1, &rule27},
{384, 1, &rule28},
{385, 1, &rule29},
{386, 1, &rule22},
{387, 1, &rule23},
{388, 1, &rule22},
{389, 1, &rule23},
{390, 1, &rule30},
{391, 1, &rule22},
{392, 1, &rule23},
{393, 2, &rule31},
{395, 1, &rule22},
{396, 1, &rule23},
{397, 1, &rule20},
{398, 1, &rule32},
{399, 1, &rule33},
{400, 1, &rule34},
{401, 1, &rule22},
{402, 1, &rule23},
{403, 1, &rule31},
{404, 1, &rule35},
{405, 1, &rule36},
{406, 1, &rule37},
{407, 1, &rule38},
{408, 1, &rule22},
{409, 1, &rule23},
{410, 1, &rule39},
{411, 1, &rule20},
{412, 1, &rule37},
{413, 1, &rule40},
{414, 1, &rule41},
{415, 1, &rule42},
{416, 1, &rule22},
{417, 1, &rule23},
{418, 1, &rule22},
{419, 1, &rule23},
{420, 1, &rule22},
{421, 1, &rule23},
{422, 1, &rule43},
{423, 1, &rule22},
{424, 1, &rule23},
{425, 1, &rule43},
{426, 2, &rule20},
{428, 1, &rule22},
{429, 1, &rule23},
{430, 1, &rule43},
{431, 1, &rule22},
{432, 1, &rule23},
{433, 2, &rule44},
{435, 1, &rule22},
{436, 1, &rule23},
{437, 1, &rule22},
{438, 1, &rule23},
{439, 1, &rule45},
{440, 1, &rule22},
{441, 1, &rule23},
{442, 1, &rule20},
{443, 1, &rule14},
{444, 1, &rule22},
{445, 1, &rule23},
{446, 1, &rule20},
{447, 1, &rule46},
{448, 4, &rule14},
{452, 1, &rule47},
{453, 1, &rule48},
{454, 1, &rule49},
{455, 1, &rule47},
{456, 1, &rule48},
{457, 1, &rule49},
{458, 1, &rule47},
{459, 1, &rule48},
{460, 1, &rule49},
{461, 1, &rule22},
{462, 1, &rule23},
{463, 1, &rule22},
{464, 1, &rule23},
{465, 1, &rule22},
{466, 1, &rule23},
{467, 1, &rule22},
{468, 1, &rule23},
{469, 1, &rule22},
{470, 1, &rule23},
{471, 1, &rule22},
{472, 1, &rule23},
{473, 1, &rule22},
{474, 1, &rule23},
{475, 1, &rule22},
{476, 1, &rule23},
{477, 1, &rule50},
{478, 1, &rule22},
{479, 1, &rule23},
{480, 1, &rule22},
{481, 1, &rule23},
{482, 1, &rule22},
{483, 1, &rule23},
{484, 1, &rule22},
{485, 1, &rule23},
{486, 1, &rule22},
{487, 1, &rule23},
{488, 1, &rule22},
{489, 1, &rule23},
{490, 1, &rule22},
{491, 1, &rule23},
{492, 1, &rule22},
{493, 1, &rule23},
{494, 1, &rule22},
{495, 1, &rule23},
{496, 1, &rule20},
{497, 1, &rule47},
{498, 1, &rule48},
{499, 1, &rule49},
{500, 1, &rule22},
{501, 1, &rule23},
{502, 1, &rule51},
{503, 1, &rule52},
{504, 1, &rule22},
{505, 1, &rule23},
{506, 1, &rule22},
{507, 1, &rule23},
{508, 1, &rule22},
{509, 1, &rule23},
{510, 1, &rule22},
{511, 1, &rule23},
{512, 1, &rule22},
{513, 1, &rule23},
{514, 1, &rule22},
{515, 1, &rule23},
{516, 1, &rule22},
{517, 1, &rule23},
{518, 1, &rule22},
{519, 1, &rule23},
{520, 1, &rule22},
{521, 1, &rule23},
{522, 1, &rule22},
{523, 1, &rule23},
{524, 1, &rule22},
{525, 1, &rule23},
{526, 1, &rule22},
{527, 1, &rule23},
{528, 1, &rule22},
{529, 1, &rule23},
{530, 1, &rule22},
{531, 1, &rule23},
{532, 1, &rule22},
{533, 1, &rule23},
{534, 1, &rule22},
{535, 1, &rule23},
{536, 1, &rule22},
{537, 1, &rule23},
{538, 1, &rule22},
{539, 1, &rule23},
{540, 1, &rule22},
{541, 1, &rule23},
{542, 1, &rule22},
{543, 1, &rule23},
{544, 1, &rule53},
{545, 1, &rule20},
{546, 1, &rule22},
{547, 1, &rule23},
{548, 1, &rule22},
{549, 1, &rule23},
{550, 1, &rule22},
{551, 1, &rule23},
{552, 1, &rule22},
{553, 1, &rule23},
{554, 1, &rule22},
{555, 1, &rule23},
{556, 1, &rule22},
{557, 1, &rule23},
{558, 1, &rule22},
{559, 1, &rule23},
{560, 1, &rule22},
{561, 1, &rule23},
{562, 1, &rule22},
{563, 1, &rule23},
{564, 6, &rule20},
{570, 1, &rule54},
{571, 1, &rule22},
{572, 1, &rule23},
{573, 1, &rule55},
{574, 1, &rule56},
{575, 2, &rule57},
{577, 1, &rule22},
{578, 1, &rule23},
{579, 1, &rule58},
{580, 1, &rule59},
{581, 1, &rule60},
{582, 1, &rule22},
{583, 1, &rule23},
{584, 1, &rule22},
{585, 1, &rule23},
{586, 1, &rule22},
{587, 1, &rule23},
{588, 1, &rule22},
{589, 1, &rule23},
{590, 1, &rule22},
{591, 1, &rule23},
{592, 1, &rule61},
{593, 1, &rule62},
{594, 1, &rule63},
{595, 1, &rule64},
{596, 1, &rule65},
{597, 1, &rule20},
{598, 2, &rule66},
{600, 1, &rule20},
{601, 1, &rule67},
{602, 1, &rule20},
{603, 1, &rule68},
{604, 1, &rule69},
{605, 3, &rule20},
{608, 1, &rule66},
{609, 1, &rule70},
{610, 1, &rule20},
{611, 1, &rule71},
{612, 1, &rule20},
{613, 1, &rule72},
{614, 1, &rule73},
{615, 1, &rule20},
{616, 1, &rule74},
{617, 1, &rule75},
{618, 1, &rule73},
{619, 1, &rule76},
{620, 1, &rule77},
{621, 2, &rule20},
{623, 1, &rule75},
{624, 1, &rule20},
{625, 1, &rule78},
{626, 1, &rule79},
{627, 2, &rule20},
{629, 1, &rule80},
{630, 7, &rule20},
{637, 1, &rule81},
{638, 2, &rule20},
{640, 1, &rule82},
{641, 1, &rule20},
{642, 1, &rule83},
{643, 1, &rule82},
{644, 3, &rule20},
{647, 1, &rule84},
{648, 1, &rule82},
{649, 1, &rule85},
{650, 2, &rule86},
{652, 1, &rule87},
{653, 5, &rule20},
{658, 1, &rule88},
{659, 1, &rule20},
{660, 1, &rule14},
{661, 8, &rule20},
{669, 1, &rule89},
{670, 1, &rule90},
{671, 17, &rule20},
{688, 18, &rule91},
{706, 4, &rule10},
{710, 12, &rule91},
{722, 14, &rule10},
{736, 5, &rule91},
{741, 7, &rule10},
{748, 1, &rule91},
{749, 1, &rule10},
{750, 1, &rule91},
{751, 17, &rule10},
{768, 69, &rule92},
{837, 1, &rule93},
{838, 42, &rule92},
{880, 1, &rule22},
{881, 1, &rule23},
{882, 1, &rule22},
{883, 1, &rule23},
{884, 1, &rule91},
{885, 1, &rule10},
{886, 1, &rule22},
{887, 1, &rule23},
{890, 1, &rule91},
{891, 3, &rule41},
{894, 1, &rule2},
{895, 1, &rule94},
{900, 2, &rule10},
{902, 1, &rule95},
{903, 1, &rule2},
{904, 3, &rule96},
{908, 1, &rule97},
{910, 2, &rule98},
{912, 1, &rule20},
{913, 17, &rule9},
{931, 9, &rule9},
{940, 1, &rule99},
{941, 3, &rule100},
{944, 1, &rule20},
{945, 17, &rule12},
{962, 1, &rule101},
{963, 9, &rule12},
{972, 1, &rule102},
{973, 2, &rule103},
{975, 1, &rule104},
{976, 1, &rule105},
{977, 1, &rule106},
{978, 3, &rule107},
{981, 1, &rule108},
{982, 1, &rule109},
{983, 1, &rule110},
{984, 1, &rule22},
{985, 1, &rule23},
{986, 1, &rule22},
{987, 1, &rule23},
{988, 1, &rule22},
{989, 1, &rule23},
{990, 1, &rule22},
{991, 1, &rule23},
{992, 1, &rule22},
{993, 1, &rule23},
{994, 1, &rule22},
{995, 1, &rule23},
{996, 1, &rule22},
{997, 1, &rule23},
{998, 1, &rule22},
{999, 1, &rule23},
{1000, 1, &rule22},
{1001, 1, &rule23},
{1002, 1, &rule22},
{1003, 1, &rule23},
{1004, 1, &rule22},
{1005, 1, &rule23},
{1006, 1, &rule22},
{1007, 1, &rule23},
{1008, 1, &rule111},
{1009, 1, &rule112},
{1010, 1, &rule113},
{1011, 1, &rule114},
{1012, 1, &rule115},
{1013, 1, &rule116},
{1014, 1, &rule6},
{1015, 1, &rule22},
{1016, 1, &rule23},
{1017, 1, &rule117},
{1018, 1, &rule22},
{1019, 1, &rule23},
{1020, 1, &rule20},
{1021, 3, &rule53},
{1024, 16, &rule118},
{1040, 32, &rule9},
{1072, 32, &rule12},
{1104, 16, &rule112},
{1120, 1, &rule22},
{1121, 1, &rule23},
{1122, 1, &rule22},
{1123, 1, &rule23},
{1124, 1, &rule22},
{1125, 1, &rule23},
{1126, 1, &rule22},
{1127, 1, &rule23},
{1128, 1, &rule22},
{1129, 1, &rule23},
{1130, 1, &rule22},
{1131, 1, &rule23},
{1132, 1, &rule22},
{1133, 1, &rule23},
{1134, 1, &rule22},
{1135, 1, &rule23},
{1136, 1, &rule22},
{1137, 1, &rule23},
{1138, 1, &rule22},
{1139, 1, &rule23},
{1140, 1, &rule22},
{1141, 1, &rule23},
{1142, 1, &rule22},
{1143, 1, &rule23},
{1144, 1, &rule22},
{1145, 1, &rule23},
{1146, 1, &rule22},
{1147, 1, &rule23},
{1148, 1, &rule22},
{1149, 1, &rule23},
{1150, 1, &rule22},
{1151, 1, &rule23},
{1152, 1, &rule22},
{1153, 1, &rule23},
{1154, 1, &rule13},
{1155, 5, &rule92},
{1160, 2, &rule119},
{1162, 1, &rule22},
{1163, 1, &rule23},
{1164, 1, &rule22},
{1165, 1, &rule23},
{1166, 1, &rule22},
{1167, 1, &rule23},
{1168, 1, &rule22},
{1169, 1, &rule23},
{1170, 1, &rule22},
{1171, 1, &rule23},
{1172, 1, &rule22},
{1173, 1, &rule23},
{1174, 1, &rule22},
{1175, 1, &rule23},
{1176, 1, &rule22},
{1177, 1, &rule23},
{1178, 1, &rule22},
{1179, 1, &rule23},
{1180, 1, &rule22},
{1181, 1, &rule23},
{1182, 1, &rule22},
{1183, 1, &rule23},
{1184, 1, &rule22},
{1185, 1, &rule23},
{1186, 1, &rule22},
{1187, 1, &rule23},
{1188, 1, &rule22},
{1189, 1, &rule23},
{1190, 1, &rule22},
{1191, 1, &rule23},
{1192, 1, &rule22},
{1193, 1, &rule23},
{1194, 1, &rule22},
{1195, 1, &rule23},
{1196, 1, &rule22},
{1197, 1, &rule23},
{1198, 1, &rule22},
{1199, 1, &rule23},
{1200, 1, &rule22},
{1201, 1, &rule23},
{1202, 1, &rule22},
{1203, 1, &rule23},
{1204, 1, &rule22},
{1205, 1, &rule23},
{1206, 1, &rule22},
{1207, 1, &rule23},
{1208, 1, &rule22},
{1209, 1, &rule23},
{1210, 1, &rule22},
{1211, 1, &rule23},
{1212, 1, &rule22},
{1213, 1, &rule23},
{1214, 1, &rule22},
{1215, 1, &rule23},
{1216, 1, &rule120},
{1217, 1, &rule22},
{1218, 1, &rule23},
{1219, 1, &rule22},
{1220, 1, &rule23},
{1221, 1, &rule22},
{1222, 1, &rule23},
{1223, 1, &rule22},
{1224, 1, &rule23},
{1225, 1, &rule22},
{1226, 1, &rule23},
{1227, 1, &rule22},
{1228, 1, &rule23},
{1229, 1, &rule22},
{1230, 1, &rule23},
{1231, 1, &rule121},
{1232, 1, &rule22},
{1233, 1, &rule23},
{1234, 1, &rule22},
{1235, 1, &rule23},
{1236, 1, &rule22},
{1237, 1, &rule23},
{1238, 1, &rule22},
{1239, 1, &rule23},
{1240, 1, &rule22},
{1241, 1, &rule23},
{1242, 1, &rule22},
{1243, 1, &rule23},
{1244, 1, &rule22},
{1245, 1, &rule23},
{1246, 1, &rule22},
{1247, 1, &rule23},
{1248, 1, &rule22},
{1249, 1, &rule23},
{1250, 1, &rule22},
{1251, 1, &rule23},
{1252, 1, &rule22},
{1253, 1, &rule23},
{1254, 1, &rule22},
{1255, 1, &rule23},
{1256, 1, &rule22},
{1257, 1, &rule23},
{1258, 1, &rule22},
{1259, 1, &rule23},
{1260, 1, &rule22},
{1261, 1, &rule23},
{1262, 1, &rule22},
{1263, 1, &rule23},
{1264, 1, &rule22},
{1265, 1, &rule23},
{1266, 1, &rule22},
{1267, 1, &rule23},
{1268, 1, &rule22},
{1269, 1, &rule23},
{1270, 1, &rule22},
{1271, 1, &rule23},
{1272, 1, &rule22},
{1273, 1, &rule23},
{1274, 1, &rule22},
{1275, 1, &rule23},
{1276, 1, &rule22},
{1277, 1, &rule23},
{1278, 1, &rule22},
{1279, 1, &rule23},
{1280, 1, &rule22},
{1281, 1, &rule23},
{1282, 1, &rule22},
{1283, 1, &rule23},
{1284, 1, &rule22},
{1285, 1, &rule23},
{1286, 1, &rule22},
{1287, 1, &rule23},
{1288, 1, &rule22},
{1289, 1, &rule23},
{1290, 1, &rule22},
{1291, 1, &rule23},
{1292, 1, &rule22},
{1293, 1, &rule23},
{1294, 1, &rule22},
{1295, 1, &rule23},
{1296, 1, &rule22},
{1297, 1, &rule23},
{1298, 1, &rule22},
{1299, 1, &rule23},
{1300, 1, &rule22},
{1301, 1, &rule23},
{1302, 1, &rule22},
{1303, 1, &rule23},
{1304, 1, &rule22},
{1305, 1, &rule23},
{1306, 1, &rule22},
{1307, 1, &rule23},
{1308, 1, &rule22},
{1309, 1, &rule23},
{1310, 1, &rule22},
{1311, 1, &rule23},
{1312, 1, &rule22},
{1313, 1, &rule23},
{1314, 1, &rule22},
{1315, 1, &rule23},
{1316, 1, &rule22},
{1317, 1, &rule23},
{1318, 1, &rule22},
{1319, 1, &rule23},
{1320, 1, &rule22},
{1321, 1, &rule23},
{1322, 1, &rule22},
{1323, 1, &rule23},
{1324, 1, &rule22},
{1325, 1, &rule23},
{1326, 1, &rule22},
{1327, 1, &rule23},
{1329, 38, &rule122},
{1369, 1, &rule91},
{1370, 6, &rule2},
{1376, 1, &rule20},
{1377, 38, &rule123},
{1415, 2, &rule20},
{1417, 1, &rule2},
{1418, 1, &rule7},
{1421, 2, &rule13},
{1423, 1, &rule3},
{1425, 45, &rule92},
{1470, 1, &rule7},
{1471, 1, &rule92},
{1472, 1, &rule2},
{1473, 2, &rule92},
{1475, 1, &rule2},
{1476, 2, &rule92},
{1478, 1, &rule2},
{1479, 1, &rule92},
{1488, 27, &rule14},
{1519, 4, &rule14},
{1523, 2, &rule2},
{1536, 6, &rule16},
{1542, 3, &rule6},
{1545, 2, &rule2},
{1547, 1, &rule3},
{1548, 2, &rule2},
{1550, 2, &rule13},
{1552, 11, &rule92},
{1563, 1, &rule2},
{1564, 1, &rule16},
{1566, 2, &rule2},
{1568, 32, &rule14},
{1600, 1, &rule91},
{1601, 10, &rule14},
{1611, 21, &rule92},
{1632, 10, &rule8},
{1642, 4, &rule2},
{1646, 2, &rule14},
{1648, 1, &rule92},
{1649, 99, &rule14},
{1748, 1, &rule2},
{1749, 1, &rule14},
{1750, 7, &rule92},
{1757, 1, &rule16},
{1758, 1, &rule13},
{1759, 6, &rule92},
{1765, 2, &rule91},
{1767, 2, &rule92},
{1769, 1, &rule13},
{1770, 4, &rule92},
{1774, 2, &rule14},
{1776, 10, &rule8},
{1786, 3, &rule14},
{1789, 2, &rule13},
{1791, 1, &rule14},
{1792, 14, &rule2},
{1807, 1, &rule16},
{1808, 1, &rule14},
{1809, 1, &rule92},
{1810, 30, &rule14},
{1840, 27, &rule92},
{1869, 89, &rule14},
{1958, 11, &rule92},
{1969, 1, &rule14},
{1984, 10, &rule8},
{1994, 33, &rule14},
{2027, 9, &rule92},
{2036, 2, &rule91},
{2038, 1, &rule13},
{2039, 3, &rule2},
{2042, 1, &rule91},
{2045, 1, &rule92},
{2046, 2, &rule3},
{2048, 22, &rule14},
{2070, 4, &rule92},
{2074, 1, &rule91},
{2075, 9, &rule92},
{2084, 1, &rule91},
{2085, 3, &rule92},
{2088, 1, &rule91},
{2089, 5, &rule92},
{2096, 15, &rule2},
{2112, 25, &rule14},
{2137, 3, &rule92},
{2142, 1, &rule2},
{2144, 11, &rule14},
{2208, 21, &rule14},
{2230, 8, &rule14},
{2259, 15, &rule92},
{2274, 1, &rule16},
{2275, 32, &rule92},
{2307, 1, &rule124},
{2308, 54, &rule14},
{2362, 1, &rule92},
{2363, 1, &rule124},
{2364, 1, &rule92},
{2365, 1, &rule14},
{2366, 3, &rule124},
{2369, 8, &rule92},
{2377, 4, &rule124},
{2381, 1, &rule92},
{2382, 2, &rule124},
{2384, 1, &rule14},
{2385, 7, &rule92},
{2392, 10, &rule14},
{2402, 2, &rule92},
{2404, 2, &rule2},
{2406, 10, &rule8},
{2416, 1, &rule2},
{2417, 1, &rule91},
{2418, 15, &rule14},
{2433, 1, &rule92},
{2434, 2, &rule124},
{2437, 8, &rule14},
{2447, 2, &rule14},
{2451, 22, &rule14},
{2474, 7, &rule14},
{2482, 1, &rule14},
{2486, 4, &rule14},
{2492, 1, &rule92},
{2493, 1, &rule14},
{2494, 3, &rule124},
{2497, 4, &rule92},
{2503, 2, &rule124},
{2507, 2, &rule124},
{2509, 1, &rule92},
{2510, 1, &rule14},
{2519, 1, &rule124},
{2524, 2, &rule14},
{2527, 3, &rule14},
{2530, 2, &rule92},
{2534, 10, &rule8},
{2544, 2, &rule14},
{2546, 2, &rule3},
{2548, 6, &rule17},
{2554, 1, &rule13},
{2555, 1, &rule3},
{2556, 1, &rule14},
{2557, 1, &rule2},
{2558, 1, &rule92},
{2561, 2, &rule92},
{2563, 1, &rule124},
{2565, 6, &rule14},
{2575, 2, &rule14},
{2579, 22, &rule14},
{2602, 7, &rule14},
{2610, 2, &rule14},
{2613, 2, &rule14},
{2616, 2, &rule14},
{2620, 1, &rule92},
{2622, 3, &rule124},
{2625, 2, &rule92},
{2631, 2, &rule92},
{2635, 3, &rule92},
{2641, 1, &rule92},
{2649, 4, &rule14},
{2654, 1, &rule14},
{2662, 10, &rule8},
{2672, 2, &rule92},
{2674, 3, &rule14},
{2677, 1, &rule92},
{2678, 1, &rule2},
{2689, 2, &rule92},
{2691, 1, &rule124},
{2693, 9, &rule14},
{2703, 3, &rule14},
{2707, 22, &rule14},
{2730, 7, &rule14},
{2738, 2, &rule14},
{2741, 5, &rule14},
{2748, 1, &rule92},
{2749, 1, &rule14},
{2750, 3, &rule124},
{2753, 5, &rule92},
{2759, 2, &rule92},
{2761, 1, &rule124},
{2763, 2, &rule124},
{2765, 1, &rule92},
{2768, 1, &rule14},
{2784, 2, &rule14},
{2786, 2, &rule92},
{2790, 10, &rule8},
{2800, 1, &rule2},
{2801, 1, &rule3},
{2809, 1, &rule14},
{2810, 6, &rule92},
{2817, 1, &rule92},
{2818, 2, &rule124},
{2821, 8, &rule14},
{2831, 2, &rule14},
{2835, 22, &rule14},
{2858, 7, &rule14},
{2866, 2, &rule14},
{2869, 5, &rule14},
{2876, 1, &rule92},
{2877, 1, &rule14},
{2878, 1, &rule124},
{2879, 1, &rule92},
{2880, 1, &rule124},
{2881, 4, &rule92},
{2887, 2, &rule124},
{2891, 2, &rule124},
{2893, 1, &rule92},
{2902, 1, &rule92},
{2903, 1, &rule124},
{2908, 2, &rule14},
{2911, 3, &rule14},
{2914, 2, &rule92},
{2918, 10, &rule8},
{2928, 1, &rule13},
{2929, 1, &rule14},
{2930, 6, &rule17},
{2946, 1, &rule92},
{2947, 1, &rule14},
{2949, 6, &rule14},
{2958, 3, &rule14},
{2962, 4, &rule14},
{2969, 2, &rule14},
{2972, 1, &rule14},
{2974, 2, &rule14},
{2979, 2, &rule14},
{2984, 3, &rule14},
{2990, 12, &rule14},
{3006, 2, &rule124},
{3008, 1, &rule92},
{3009, 2, &rule124},
{3014, 3, &rule124},
{3018, 3, &rule124},
{3021, 1, &rule92},
{3024, 1, &rule14},
{3031, 1, &rule124},
{3046, 10, &rule8},
{3056, 3, &rule17},
{3059, 6, &rule13},
{3065, 1, &rule3},
{3066, 1, &rule13},
{3072, 1, &rule92},
{3073, 3, &rule124},
{3076, 1, &rule92},
{3077, 8, &rule14},
{3086, 3, &rule14},
{3090, 23, &rule14},
{3114, 16, &rule14},
{3133, 1, &rule14},
{3134, 3, &rule92},
{3137, 4, &rule124},
{3142, 3, &rule92},
{3146, 4, &rule92},
{3157, 2, &rule92},
{3160, 3, &rule14},
{3168, 2, &rule14},
{3170, 2, &rule92},
{3174, 10, &rule8},
{3191, 1, &rule2},
{3192, 7, &rule17},
{3199, 1, &rule13},
{3200, 1, &rule14},
{3201, 1, &rule92},
{3202, 2, &rule124},
{3204, 1, &rule2},
{3205, 8, &rule14},
{3214, 3, &rule14},
{3218, 23, &rule14},
{3242, 10, &rule14},
{3253, 5, &rule14},
{3260, 1, &rule92},
{3261, 1, &rule14},
{3262, 1, &rule124},
{3263, 1, &rule92},
{3264, 5, &rule124},
{3270, 1, &rule92},
{3271, 2, &rule124},
{3274, 2, &rule124},
{3276, 2, &rule92},
{3285, 2, &rule124},
{3294, 1, &rule14},
{3296, 2, &rule14},
{3298, 2, &rule92},
{3302, 10, &rule8},
{3313, 2, &rule14},
{3328, 2, &rule92},
{3330, 2, &rule124},
{3333, 8, &rule14},
{3342, 3, &rule14},
{3346, 41, &rule14},
{3387, 2, &rule92},
{3389, 1, &rule14},
{3390, 3, &rule124},
{3393, 4, &rule92},
{3398, 3, &rule124},
{3402, 3, &rule124},
{3405, 1, &rule92},
{3406, 1, &rule14},
{3407, 1, &rule13},
{3412, 3, &rule14},
{3415, 1, &rule124},
{3416, 7, &rule17},
{3423, 3, &rule14},
{3426, 2, &rule92},
{3430, 10, &rule8},
{3440, 9, &rule17},
{3449, 1, &rule13},
{3450, 6, &rule14},
{3458, 2, &rule124},
{3461, 18, &rule14},
{3482, 24, &rule14},
{3507, 9, &rule14},
{3517, 1, &rule14},
{3520, 7, &rule14},
{3530, 1, &rule92},
{3535, 3, &rule124},
{3538, 3, &rule92},
{3542, 1, &rule92},
{3544, 8, &rule124},
{3558, 10, &rule8},
{3570, 2, &rule124},
{3572, 1, &rule2},
{3585, 48, &rule14},
{3633, 1, &rule92},
{3634, 2, &rule14},
{3636, 7, &rule92},
{3647, 1, &rule3},
{3648, 6, &rule14},
{3654, 1, &rule91},
{3655, 8, &rule92},
{3663, 1, &rule2},
{3664, 10, &rule8},
{3674, 2, &rule2},
{3713, 2, &rule14},
{3716, 1, &rule14},
{3718, 5, &rule14},
{3724, 24, &rule14},
{3749, 1, &rule14},
{3751, 10, &rule14},
{3761, 1, &rule92},
{3762, 2, &rule14},
{3764, 9, &rule92},
{3773, 1, &rule14},
{3776, 5, &rule14},
{3782, 1, &rule91},
{3784, 6, &rule92},
{3792, 10, &rule8},
{3804, 4, &rule14},
{3840, 1, &rule14},
{3841, 3, &rule13},
{3844, 15, &rule2},
{3859, 1, &rule13},
{3860, 1, &rule2},
{3861, 3, &rule13},
{3864, 2, &rule92},
{3866, 6, &rule13},
{3872, 10, &rule8},
{3882, 10, &rule17},
{3892, 1, &rule13},
{3893, 1, &rule92},
{3894, 1, &rule13},
{3895, 1, &rule92},
{3896, 1, &rule13},
{3897, 1, &rule92},
{3898, 1, &rule4},
{3899, 1, &rule5},
{3900, 1, &rule4},
{3901, 1, &rule5},
{3902, 2, &rule124},
{3904, 8, &rule14},
{3913, 36, &rule14},
{3953, 14, &rule92},
{3967, 1, &rule124},
{3968, 5, &rule92},
{3973, 1, &rule2},
{3974, 2, &rule92},
{3976, 5, &rule14},
{3981, 11, &rule92},
{3993, 36, &rule92},
{4030, 8, &rule13},
{4038, 1, &rule92},
{4039, 6, &rule13},
{4046, 2, &rule13},
{4048, 5, &rule2},
{4053, 4, &rule13},
{4057, 2, &rule2},
{4096, 43, &rule14},
{4139, 2, &rule124},
{4141, 4, &rule92},
{4145, 1, &rule124},
{4146, 6, &rule92},
{4152, 1, &rule124},
{4153, 2, &rule92},
{4155, 2, &rule124},
{4157, 2, &rule92},
{4159, 1, &rule14},
{4160, 10, &rule8},
{4170, 6, &rule2},
{4176, 6, &rule14},
{4182, 2, &rule124},
{4184, 2, &rule92},
{4186, 4, &rule14},
{4190, 3, &rule92},
{4193, 1, &rule14},
{4194, 3, &rule124},
{4197, 2, &rule14},
{4199, 7, &rule124},
{4206, 3, &rule14},
{4209, 4, &rule92},
{4213, 13, &rule14},
{4226, 1, &rule92},
{4227, 2, &rule124},
{4229, 2, &rule92},
{4231, 6, &rule124},
{4237, 1, &rule92},
{4238, 1, &rule14},
{4239, 1, &rule124},
{4240, 10, &rule8},
{4250, 3, &rule124},
{4253, 1, &rule92},
{4254, 2, &rule13},
{4256, 38, &rule125},
{4295, 1, &rule125},
{4301, 1, &rule125},
{4304, 43, &rule126},
{4347, 1, &rule2},
{4348, 1, &rule91},
{4349, 3, &rule126},
{4352, 329, &rule14},
{4682, 4, &rule14},
{4688, 7, &rule14},
{4696, 1, &rule14},
{4698, 4, &rule14},
{4704, 41, &rule14},
{4746, 4, &rule14},
{4752, 33, &rule14},
{4786, 4, &rule14},
{4792, 7, &rule14},
{4800, 1, &rule14},
{4802, 4, &rule14},
{4808, 15, &rule14},
{4824, 57, &rule14},
{4882, 4, &rule14},
{4888, 67, &rule14},
{4957, 3, &rule92},
{4960, 9, &rule2},
{4969, 20, &rule17},
{4992, 16, &rule14},
{5008, 10, &rule13},
{5024, 80, &rule127},
{5104, 6, &rule104},
{5112, 6, &rule110},
{5120, 1, &rule7},
{5121, 620, &rule14},
{5741, 2, &rule2},
{5743, 17, &rule14},
{5760, 1, &rule1},
{5761, 26, &rule14},
{5787, 1, &rule4},
{5788, 1, &rule5},
{5792, 75, &rule14},
{5867, 3, &rule2},
{5870, 3, &rule128},
{5873, 8, &rule14},
{5888, 13, &rule14},
{5902, 4, &rule14},
{5906, 3, &rule92},
{5920, 18, &rule14},
{5938, 3, &rule92},
{5941, 2, &rule2},
{5952, 18, &rule14},
{5970, 2, &rule92},
{5984, 13, &rule14},
{5998, 3, &rule14},
{6002, 2, &rule92},
{6016, 52, &rule14},
{6068, 2, &rule92},
{6070, 1, &rule124},
{6071, 7, &rule92},
{6078, 8, &rule124},
{6086, 1, &rule92},
{6087, 2, &rule124},
{6089, 11, &rule92},
{6100, 3, &rule2},
{6103, 1, &rule91},
{6104, 3, &rule2},
{6107, 1, &rule3},
{6108, 1, &rule14},
{6109, 1, &rule92},
{6112, 10, &rule8},
{6128, 10, &rule17},
{6144, 6, &rule2},
{6150, 1, &rule7},
{6151, 4, &rule2},
{6155, 3, &rule92},
{6158, 1, &rule16},
{6160, 10, &rule8},
{6176, 35, &rule14},
{6211, 1, &rule91},
{6212, 53, &rule14},
{6272, 5, &rule14},
{6277, 2, &rule92},
{6279, 34, &rule14},
{6313, 1, &rule92},
{6314, 1, &rule14},
{6320, 70, &rule14},
{6400, 31, &rule14},
{6432, 3, &rule92},
{6435, 4, &rule124},
{6439, 2, &rule92},
{6441, 3, &rule124},
{6448, 2, &rule124},
{6450, 1, &rule92},
{6451, 6, &rule124},
{6457, 3, &rule92},
{6464, 1, &rule13},
{6468, 2, &rule2},
{6470, 10, &rule8},
{6480, 30, &rule14},
{6512, 5, &rule14},
{6528, 44, &rule14},
{6576, 26, &rule14},
{6608, 10, &rule8},
{6618, 1, &rule17},
{6622, 34, &rule13},
{6656, 23, &rule14},
{6679, 2, &rule92},
{6681, 2, &rule124},
{6683, 1, &rule92},
{6686, 2, &rule2},
{6688, 53, &rule14},
{6741, 1, &rule124},
{6742, 1, &rule92},
{6743, 1, &rule124},
{6744, 7, &rule92},
{6752, 1, &rule92},
{6753, 1, &rule124},
{6754, 1, &rule92},
{6755, 2, &rule124},
{6757, 8, &rule92},
{6765, 6, &rule124},
{6771, 10, &rule92},
{6783, 1, &rule92},
{6784, 10, &rule8},
{6800, 10, &rule8},
{6816, 7, &rule2},
{6823, 1, &rule91},
{6824, 6, &rule2},
{6832, 14, &rule92},
{6846, 1, &rule119},
{6912, 4, &rule92},
{6916, 1, &rule124},
{6917, 47, &rule14},
{6964, 1, &rule92},
{6965, 1, &rule124},
{6966, 5, &rule92},
{6971, 1, &rule124},
{6972, 1, &rule92},
{6973, 5, &rule124},
{6978, 1, &rule92},
{6979, 2, &rule124},
{6981, 7, &rule14},
{6992, 10, &rule8},
{7002, 7, &rule2},
{7009, 10, &rule13},
{7019, 9, &rule92},
{7028, 9, &rule13},
{7040, 2, &rule92},
{7042, 1, &rule124},
{7043, 30, &rule14},
{7073, 1, &rule124},
{7074, 4, &rule92},
{7078, 2, &rule124},
{7080, 2, &rule92},
{7082, 1, &rule124},
{7083, 3, &rule92},
{7086, 2, &rule14},
{7088, 10, &rule8},
{7098, 44, &rule14},
{7142, 1, &rule92},
{7143, 1, &rule124},
{7144, 2, &rule92},
{7146, 3, &rule124},
{7149, 1, &rule92},
{7150, 1, &rule124},
{7151, 3, &rule92},
{7154, 2, &rule124},
{7164, 4, &rule2},
{7168, 36, &rule14},
{7204, 8, &rule124},
{7212, 8, &rule92},
{7220, 2, &rule124},
{7222, 2, &rule92},
{7227, 5, &rule2},
{7232, 10, &rule8},
{7245, 3, &rule14},
{7248, 10, &rule8},
{7258, 30, &rule14},
{7288, 6, &rule91},
{7294, 2, &rule2},
{7296, 1, &rule129},
{7297, 1, &rule130},
{7298, 1, &rule131},
{7299, 2, &rule132},
{7301, 1, &rule133},
{7302, 1, &rule134},
{7303, 1, &rule135},
{7304, 1, &rule136},
{7312, 43, &rule137},
{7357, 3, &rule137},
{7360, 8, &rule2},
{7376, 3, &rule92},
{7379, 1, &rule2},
{7380, 13, &rule92},
{7393, 1, &rule124},
{7394, 7, &rule92},
{7401, 4, &rule14},
{7405, 1, &rule92},
{7406, 6, &rule14},
{7412, 1, &rule92},
{7413, 2, &rule14},
{7415, 1, &rule124},
{7416, 2, &rule92},
{7418, 1, &rule14},
{7424, 44, &rule20},
{7468, 63, &rule91},
{7531, 13, &rule20},
{7544, 1, &rule91},
{7545, 1, &rule138},
{7546, 3, &rule20},
{7549, 1, &rule139},
{7550, 16, &rule20},
{7566, 1, &rule140},
{7567, 12, &rule20},
{7579, 37, &rule91},
{7616, 58, &rule92},
{7675, 5, &rule92},
{7680, 1, &rule22},
{7681, 1, &rule23},
{7682, 1, &rule22},
{7683, 1, &rule23},
{7684, 1, &rule22},
{7685, 1, &rule23},
{7686, 1, &rule22},
{7687, 1, &rule23},
{7688, 1, &rule22},
{7689, 1, &rule23},
{7690, 1, &rule22},
{7691, 1, &rule23},
{7692, 1, &rule22},
{7693, 1, &rule23},
{7694, 1, &rule22},
{7695, 1, &rule23},
{7696, 1, &rule22},
{7697, 1, &rule23},
{7698, 1, &rule22},
{7699, 1, &rule23},
{7700, 1, &rule22},
{7701, 1, &rule23},
{7702, 1, &rule22},
{7703, 1, &rule23},
{7704, 1, &rule22},
{7705, 1, &rule23},
{7706, 1, &rule22},
{7707, 1, &rule23},
{7708, 1, &rule22},
{7709, 1, &rule23},
{7710, 1, &rule22},
{7711, 1, &rule23},
{7712, 1, &rule22},
{7713, 1, &rule23},
{7714, 1, &rule22},
{7715, 1, &rule23},
{7716, 1, &rule22},
{7717, 1, &rule23},
{7718, 1, &rule22},
{7719, 1, &rule23},
{7720, 1, &rule22},
{7721, 1, &rule23},
{7722, 1, &rule22},
{7723, 1, &rule23},
{7724, 1, &rule22},
{7725, 1, &rule23},
{7726, 1, &rule22},
{7727, 1, &rule23},
{7728, 1, &rule22},
{7729, 1, &rule23},
{7730, 1, &rule22},
{7731, 1, &rule23},
{7732, 1, &rule22},
{7733, 1, &rule23},
{7734, 1, &rule22},
{7735, 1, &rule23},
{7736, 1, &rule22},
{7737, 1, &rule23},
{7738, 1, &rule22},
{7739, 1, &rule23},
{7740, 1, &rule22},
{7741, 1, &rule23},
{7742, 1, &rule22},
{7743, 1, &rule23},
{7744, 1, &rule22},
{7745, 1, &rule23},
{7746, 1, &rule22},
{7747, 1, &rule23},
{7748, 1, &rule22},
{7749, 1, &rule23},
{7750, 1, &rule22},
{7751, 1, &rule23},
{7752, 1, &rule22},
{7753, 1, &rule23},
{7754, 1, &rule22},
{7755, 1, &rule23},
{7756, 1, &rule22},
{7757, 1, &rule23},
{7758, 1, &rule22},
{7759, 1, &rule23},
{7760, 1, &rule22},
{7761, 1, &rule23},
{7762, 1, &rule22},
{7763, 1, &rule23},
{7764, 1, &rule22},
{7765, 1, &rule23},
{7766, 1, &rule22},
{7767, 1, &rule23},
{7768, 1, &rule22},
{7769, 1, &rule23},
{7770, 1, &rule22},
{7771, 1, &rule23},
{7772, 1, &rule22},
{7773, 1, &rule23},
{7774, 1, &rule22},
{7775, 1, &rule23},
{7776, 1, &rule22},
{7777, 1, &rule23},
{7778, 1, &rule22},
{7779, 1, &rule23},
{7780, 1, &rule22},
{7781, 1, &rule23},
{7782, 1, &rule22},
{7783, 1, &rule23},
{7784, 1, &rule22},
{7785, 1, &rule23},
{7786, 1, &rule22},
{7787, 1, &rule23},
{7788, 1, &rule22},
{7789, 1, &rule23},
{7790, 1, &rule22},
{7791, 1, &rule23},
{7792, 1, &rule22},
{7793, 1, &rule23},
{7794, 1, &rule22},
{7795, 1, &rule23},
{7796, 1, &rule22},
{7797, 1, &rule23},
{7798, 1, &rule22},
{7799, 1, &rule23},
{7800, 1, &rule22},
{7801, 1, &rule23},
{7802, 1, &rule22},
{7803, 1, &rule23},
{7804, 1, &rule22},
{7805, 1, &rule23},
{7806, 1, &rule22},
{7807, 1, &rule23},
{7808, 1, &rule22},
{7809, 1, &rule23},
{7810, 1, &rule22},
{7811, 1, &rule23},
{7812, 1, &rule22},
{7813, 1, &rule23},
{7814, 1, &rule22},
{7815, 1, &rule23},
{7816, 1, &rule22},
{7817, 1, &rule23},
{7818, 1, &rule22},
{7819, 1, &rule23},
{7820, 1, &rule22},
{7821, 1, &rule23},
{7822, 1, &rule22},
{7823, 1, &rule23},
{7824, 1, &rule22},
{7825, 1, &rule23},
{7826, 1, &rule22},
{7827, 1, &rule23},
{7828, 1, &rule22},
{7829, 1, &rule23},
{7830, 5, &rule20},
{7835, 1, &rule141},
{7836, 2, &rule20},
{7838, 1, &rule142},
{7839, 1, &rule20},
{7840, 1, &rule22},
{7841, 1, &rule23},
{7842, 1, &rule22},
{7843, 1, &rule23},
{7844, 1, &rule22},
{7845, 1, &rule23},
{7846, 1, &rule22},
{7847, 1, &rule23},
{7848, 1, &rule22},
{7849, 1, &rule23},
{7850, 1, &rule22},
{7851, 1, &rule23},
{7852, 1, &rule22},
{7853, 1, &rule23},
{7854, 1, &rule22},
{7855, 1, &rule23},
{7856, 1, &rule22},
{7857, 1, &rule23},
{7858, 1, &rule22},
{7859, 1, &rule23},
{7860, 1, &rule22},
{7861, 1, &rule23},
{7862, 1, &rule22},
{7863, 1, &rule23},
{7864, 1, &rule22},
{7865, 1, &rule23},
{7866, 1, &rule22},
{7867, 1, &rule23},
{7868, 1, &rule22},
{7869, 1, &rule23},
{7870, 1, &rule22},
{7871, 1, &rule23},
{7872, 1, &rule22},
{7873, 1, &rule23},
{7874, 1, &rule22},
{7875, 1, &rule23},
{7876, 1, &rule22},
{7877, 1, &rule23},
{7878, 1, &rule22},
{7879, 1, &rule23},
{7880, 1, &rule22},
{7881, 1, &rule23},
{7882, 1, &rule22},
{7883, 1, &rule23},
{7884, 1, &rule22},
{7885, 1, &rule23},
{7886, 1, &rule22},
{7887, 1, &rule23},
{7888, 1, &rule22},
{7889, 1, &rule23},
{7890, 1, &rule22},
{7891, 1, &rule23},
{7892, 1, &rule22},
{7893, 1, &rule23},
{7894, 1, &rule22},
{7895, 1, &rule23},
{7896, 1, &rule22},
{7897, 1, &rule23},
{7898, 1, &rule22},
{7899, 1, &rule23},
{7900, 1, &rule22},
{7901, 1, &rule23},
{7902, 1, &rule22},
{7903, 1, &rule23},
{7904, 1, &rule22},
{7905, 1, &rule23},
{7906, 1, &rule22},
{7907, 1, &rule23},
{7908, 1, &rule22},
{7909, 1, &rule23},
{7910, 1, &rule22},
{7911, 1, &rule23},
{7912, 1, &rule22},
{7913, 1, &rule23},
{7914, 1, &rule22},
{7915, 1, &rule23},
{7916, 1, &rule22},
{7917, 1, &rule23},
{7918, 1, &rule22},
{7919, 1, &rule23},
{7920, 1, &rule22},
{7921, 1, &rule23},
{7922, 1, &rule22},
{7923, 1, &rule23},
{7924, 1, &rule22},
{7925, 1, &rule23},
{7926, 1, &rule22},
{7927, 1, &rule23},
{7928, 1, &rule22},
{7929, 1, &rule23},
{7930, 1, &rule22},
{7931, 1, &rule23},
{7932, 1, &rule22},
{7933, 1, &rule23},
{7934, 1, &rule22},
{7935, 1, &rule23},
{7936, 8, &rule143},
{7944, 8, &rule144},
{7952, 6, &rule143},
{7960, 6, &rule144},
{7968, 8, &rule143},
{7976, 8, &rule144},
{7984, 8, &rule143},
{7992, 8, &rule144},
{8000, 6, &rule143},
{8008, 6, &rule144},
{8016, 1, &rule20},
{8017, 1, &rule143},
{8018, 1, &rule20},
{8019, 1, &rule143},
{8020, 1, &rule20},
{8021, 1, &rule143},
{8022, 1, &rule20},
{8023, 1, &rule143},
{8025, 1, &rule144},
{8027, 1, &rule144},
{8029, 1, &rule144},
{8031, 1, &rule144},
{8032, 8, &rule143},
{8040, 8, &rule144},
{8048, 2, &rule145},
{8050, 4, &rule146},
{8054, 2, &rule147},
{8056, 2, &rule148},
{8058, 2, &rule149},
{8060, 2, &rule150},
{8064, 8, &rule143},
{8072, 8, &rule151},
{8080, 8, &rule143},
{8088, 8, &rule151},
{8096, 8, &rule143},
{8104, 8, &rule151},
{8112, 2, &rule143},
{8114, 1, &rule20},
{8115, 1, &rule152},
{8116, 1, &rule20},
{8118, 2, &rule20},
{8120, 2, &rule144},
{8122, 2, &rule153},
{8124, 1, &rule154},
{8125, 1, &rule10},
{8126, 1, &rule155},
{8127, 3, &rule10},
{8130, 1, &rule20},
{8131, 1, &rule152},
{8132, 1, &rule20},
{8134, 2, &rule20},
{8136, 4, &rule156},
{8140, 1, &rule154},
{8141, 3, &rule10},
{8144, 2, &rule143},
{8146, 2, &rule20},
{8150, 2, &rule20},
{8152, 2, &rule144},
{8154, 2, &rule157},
{8157, 3, &rule10},
{8160, 2, &rule143},
{8162, 3, &rule20},
{8165, 1, &rule113},
{8166, 2, &rule20},
{8168, 2, &rule144},
{8170, 2, &rule158},
{8172, 1, &rule117},
{8173, 3, &rule10},
{8178, 1, &rule20},
{8179, 1, &rule152},
{8180, 1, &rule20},
{8182, 2, &rule20},
{8184, 2, &rule159},
{8186, 2, &rule160},
{8188, 1, &rule154},
{8189, 2, &rule10},
{8192, 11, &rule1},
{8203, 5, &rule16},
{8208, 6, &rule7},
{8214, 2, &rule2},
{8216, 1, &rule15},
{8217, 1, &rule19},
{8218, 1, &rule4},
{8219, 2, &rule15},
{8221, 1, &rule19},
{8222, 1, &rule4},
{8223, 1, &rule15},
{8224, 8, &rule2},
{8232, 1, &rule161},
{8233, 1, &rule162},
{8234, 5, &rule16},
{8239, 1, &rule1},
{8240, 9, &rule2},
{8249, 1, &rule15},
{8250, 1, &rule19},
{8251, 4, &rule2},
{8255, 2, &rule11},
{8257, 3, &rule2},
{8260, 1, &rule6},
{8261, 1, &rule4},
{8262, 1, &rule5},
{8263, 11, &rule2},
{8274, 1, &rule6},
{8275, 1, &rule2},
{8276, 1, &rule11},
{8277, 10, &rule2},
{8287, 1, &rule1},
{8288, 5, &rule16},
{8294, 10, &rule16},
{8304, 1, &rule17},
{8305, 1, &rule91},
{8308, 6, &rule17},
{8314, 3, &rule6},
{8317, 1, &rule4},
{8318, 1, &rule5},
{8319, 1, &rule91},
{8320, 10, &rule17},
{8330, 3, &rule6},
{8333, 1, &rule4},
{8334, 1, &rule5},
{8336, 13, &rule91},
{8352, 32, &rule3},
{8400, 13, &rule92},
{8413, 4, &rule119},
{8417, 1, &rule92},
{8418, 3, &rule119},
{8421, 12, &rule92},
{8448, 2, &rule13},
{8450, 1, &rule107},
{8451, 4, &rule13},
{8455, 1, &rule107},
{8456, 2, &rule13},
{8458, 1, &rule20},
{8459, 3, &rule107},
{8462, 2, &rule20},
{8464, 3, &rule107},
{8467, 1, &rule20},
{8468, 1, &rule13},
{8469, 1, &rule107},
{8470, 2, &rule13},
{8472, 1, &rule6},
{8473, 5, &rule107},
{8478, 6, &rule13},
{8484, 1, &rule107},
{8485, 1, &rule13},
{8486, 1, &rule163},
{8487, 1, &rule13},
{8488, 1, &rule107},
{8489, 1, &rule13},
{8490, 1, &rule164},
{8491, 1, &rule165},
{8492, 2, &rule107},
{8494, 1, &rule13},
{8495, 1, &rule20},
{8496, 2, &rule107},
{8498, 1, &rule166},
{8499, 1, &rule107},
{8500, 1, &rule20},
{8501, 4, &rule14},
{8505, 1, &rule20},
{8506, 2, &rule13},
{8508, 2, &rule20},
{8510, 2, &rule107},
{8512, 5, &rule6},
{8517, 1, &rule107},
{8518, 4, &rule20},
{8522, 1, &rule13},
{8523, 1, &rule6},
{8524, 2, &rule13},
{8526, 1, &rule167},
{8527, 1, &rule13},
{8528, 16, &rule17},
{8544, 16, &rule168},
{8560, 16, &rule169},
{8576, 3, &rule128},
{8579, 1, &rule22},
{8580, 1, &rule23},
{8581, 4, &rule128},
{8585, 1, &rule17},
{8586, 2, &rule13},
{8592, 5, &rule6},
{8597, 5, &rule13},
{8602, 2, &rule6},
{8604, 4, &rule13},
{8608, 1, &rule6},
{8609, 2, &rule13},
{8611, 1, &rule6},
{8612, 2, &rule13},
{8614, 1, &rule6},
{8615, 7, &rule13},
{8622, 1, &rule6},
{8623, 31, &rule13},
{8654, 2, &rule6},
{8656, 2, &rule13},
{8658, 1, &rule6},
{8659, 1, &rule13},
{8660, 1, &rule6},
{8661, 31, &rule13},
{8692, 268, &rule6},
{8960, 8, &rule13},
{8968, 1, &rule4},
{8969, 1, &rule5},
{8970, 1, &rule4},
{8971, 1, &rule5},
{8972, 20, &rule13},
{8992, 2, &rule6},
{8994, 7, &rule13},
{9001, 1, &rule4},
{9002, 1, &rule5},
{9003, 81, &rule13},
{9084, 1, &rule6},
{9085, 30, &rule13},
{9115, 25, &rule6},
{9140, 40, &rule13},
{9180, 6, &rule6},
{9186, 69, &rule13},
{9280, 11, &rule13},
{9312, 60, &rule17},
{9372, 26, &rule13},
{9398, 26, &rule170},
{9424, 26, &rule171},
{9450, 22, &rule17},
{9472, 183, &rule13},
{9655, 1, &rule6},
{9656, 9, &rule13},
{9665, 1, &rule6},
{9666, 54, &rule13},
{9720, 8, &rule6},
{9728, 111, &rule13},
{9839, 1, &rule6},
{9840, 248, &rule13},
{10088, 1, &rule4},
{10089, 1, &rule5},
{10090, 1, &rule4},
{10091, 1, &rule5},
{10092, 1, &rule4},
{10093, 1, &rule5},
{10094, 1, &rule4},
{10095, 1, &rule5},
{10096, 1, &rule4},
{10097, 1, &rule5},
{10098, 1, &rule4},
{10099, 1, &rule5},
{10100, 1, &rule4},
{10101, 1, &rule5},
{10102, 30, &rule17},
{10132, 44, &rule13},
{10176, 5, &rule6},
{10181, 1, &rule4},
{10182, 1, &rule5},
{10183, 31, &rule6},
{10214, 1, &rule4},
{10215, 1, &rule5},
{10216, 1, &rule4},
{10217, 1, &rule5},
{10218, 1, &rule4},
{10219, 1, &rule5},
{10220, 1, &rule4},
{10221, 1, &rule5},
{10222, 1, &rule4},
{10223, 1, &rule5},
{10224, 16, &rule6},
{10240, 256, &rule13},
{10496, 131, &rule6},
{10627, 1, &rule4},
{10628, 1, &rule5},
{10629, 1, &rule4},
{10630, 1, &rule5},
{10631, 1, &rule4},
{10632, 1, &rule5},
{10633, 1, &rule4},
{10634, 1, &rule5},
{10635, 1, &rule4},
{10636, 1, &rule5},
{10637, 1, &rule4},
{10638, 1, &rule5},
{10639, 1, &rule4},
{10640, 1, &rule5},
{10641, 1, &rule4},
{10642, 1, &rule5},
{10643, 1, &rule4},
{10644, 1, &rule5},
{10645, 1, &rule4},
{10646, 1, &rule5},
{10647, 1, &rule4},
{10648, 1, &rule5},
{10649, 63, &rule6},
{10712, 1, &rule4},
{10713, 1, &rule5},
{10714, 1, &rule4},
{10715, 1, &rule5},
{10716, 32, &rule6},
{10748, 1, &rule4},
{10749, 1, &rule5},
{10750, 258, &rule6},
{11008, 48, &rule13},
{11056, 21, &rule6},
{11077, 2, &rule13},
{11079, 6, &rule6},
{11085, 39, &rule13},
{11126, 32, &rule13},
{11160, 104, &rule13},
{11264, 47, &rule122},
{11312, 47, &rule123},
{11360, 1, &rule22},
{11361, 1, &rule23},
{11362, 1, &rule172},
{11363, 1, &rule173},
{11364, 1, &rule174},
{11365, 1, &rule175},
{11366, 1, &rule176},
{11367, 1, &rule22},
{11368, 1, &rule23},
{11369, 1, &rule22},
{11370, 1, &rule23},
{11371, 1, &rule22},
{11372, 1, &rule23},
{11373, 1, &rule177},
{11374, 1, &rule178},
{11375, 1, &rule179},
{11376, 1, &rule180},
{11377, 1, &rule20},
{11378, 1, &rule22},
{11379, 1, &rule23},
{11380, 1, &rule20},
{11381, 1, &rule22},
{11382, 1, &rule23},
{11383, 5, &rule20},
{11388, 2, &rule91},
{11390, 2, &rule181},
{11392, 1, &rule22},
{11393, 1, &rule23},
{11394, 1, &rule22},
{11395, 1, &rule23},
{11396, 1, &rule22},
{11397, 1, &rule23},
{11398, 1, &rule22},
{11399, 1, &rule23},
{11400, 1, &rule22},
{11401, 1, &rule23},
{11402, 1, &rule22},
{11403, 1, &rule23},
{11404, 1, &rule22},
{11405, 1, &rule23},
{11406, 1, &rule22},
{11407, 1, &rule23},
{11408, 1, &rule22},
{11409, 1, &rule23},
{11410, 1, &rule22},
{11411, 1, &rule23},
{11412, 1, &rule22},
{11413, 1, &rule23},
{11414, 1, &rule22},
{11415, 1, &rule23},
{11416, 1, &rule22},
{11417, 1, &rule23},
{11418, 1, &rule22},
{11419, 1, &rule23},
{11420, 1, &rule22},
{11421, 1, &rule23},
{11422, 1, &rule22},
{11423, 1, &rule23},
{11424, 1, &rule22},
{11425, 1, &rule23},
{11426, 1, &rule22},
{11427, 1, &rule23},
{11428, 1, &rule22},
{11429, 1, &rule23},
{11430, 1, &rule22},
{11431, 1, &rule23},
{11432, 1, &rule22},
{11433, 1, &rule23},
{11434, 1, &rule22},
{11435, 1, &rule23},
{11436, 1, &rule22},
{11437, 1, &rule23},
{11438, 1, &rule22},
{11439, 1, &rule23},
{11440, 1, &rule22},
{11441, 1, &rule23},
{11442, 1, &rule22},
{11443, 1, &rule23},
{11444, 1, &rule22},
{11445, 1, &rule23},
{11446, 1, &rule22},
{11447, 1, &rule23},
{11448, 1, &rule22},
{11449, 1, &rule23},
{11450, 1, &rule22},
{11451, 1, &rule23},
{11452, 1, &rule22},
{11453, 1, &rule23},
{11454, 1, &rule22},
{11455, 1, &rule23},
{11456, 1, &rule22},
{11457, 1, &rule23},
{11458, 1, &rule22},
{11459, 1, &rule23},
{11460, 1, &rule22},
{11461, 1, &rule23},
{11462, 1, &rule22},
{11463, 1, &rule23},
{11464, 1, &rule22},
{11465, 1, &rule23},
{11466, 1, &rule22},
{11467, 1, &rule23},
{11468, 1, &rule22},
{11469, 1, &rule23},
{11470, 1, &rule22},
{11471, 1, &rule23},
{11472, 1, &rule22},
{11473, 1, &rule23},
{11474, 1, &rule22},
{11475, 1, &rule23},
{11476, 1, &rule22},
{11477, 1, &rule23},
{11478, 1, &rule22},
{11479, 1, &rule23},
{11480, 1, &rule22},
{11481, 1, &rule23},
{11482, 1, &rule22},
{11483, 1, &rule23},
{11484, 1, &rule22},
{11485, 1, &rule23},
{11486, 1, &rule22},
{11487, 1, &rule23},
{11488, 1, &rule22},
{11489, 1, &rule23},
{11490, 1, &rule22},
{11491, 1, &rule23},
{11492, 1, &rule20},
{11493, 6, &rule13},
{11499, 1, &rule22},
{11500, 1, &rule23},
{11501, 1, &rule22},
{11502, 1, &rule23},
{11503, 3, &rule92},
{11506, 1, &rule22},
{11507, 1, &rule23},
{11513, 4, &rule2},
{11517, 1, &rule17},
{11518, 2, &rule2},
{11520, 38, &rule182},
{11559, 1, &rule182},
{11565, 1, &rule182},
{11568, 56, &rule14},
{11631, 1, &rule91},
{11632, 1, &rule2},
{11647, 1, &rule92},
{11648, 23, &rule14},
{11680, 7, &rule14},
{11688, 7, &rule14},
{11696, 7, &rule14},
{11704, 7, &rule14},
{11712, 7, &rule14},
{11720, 7, &rule14},
{11728, 7, &rule14},
{11736, 7, &rule14},
{11744, 32, &rule92},
{11776, 2, &rule2},
{11778, 1, &rule15},
{11779, 1, &rule19},
{11780, 1, &rule15},
{11781, 1, &rule19},
{11782, 3, &rule2},
{11785, 1, &rule15},
{11786, 1, &rule19},
{11787, 1, &rule2},
{11788, 1, &rule15},
{11789, 1, &rule19},
{11790, 9, &rule2},
{11799, 1, &rule7},
{11800, 2, &rule2},
{11802, 1, &rule7},
{11803, 1, &rule2},
{11804, 1, &rule15},
{11805, 1, &rule19},
{11806, 2, &rule2},
{11808, 1, &rule15},
{11809, 1, &rule19},
{11810, 1, &rule4},
{11811, 1, &rule5},
{11812, 1, &rule4},
{11813, 1, &rule5},
{11814, 1, &rule4},
{11815, 1, &rule5},
{11816, 1, &rule4},
{11817, 1, &rule5},
{11818, 5, &rule2},
{11823, 1, &rule91},
{11824, 10, &rule2},
{11834, 2, &rule7},
{11836, 4, &rule2},
{11840, 1, &rule7},
{11841, 1, &rule2},
{11842, 1, &rule4},
{11843, 13, &rule2},
{11904, 26, &rule13},
{11931, 89, &rule13},
{12032, 214, &rule13},
{12272, 12, &rule13},
{12288, 1, &rule1},
{12289, 3, &rule2},
{12292, 1, &rule13},
{12293, 1, &rule91},
{12294, 1, &rule14},
{12295, 1, &rule128},
{12296, 1, &rule4},
{12297, 1, &rule5},
{12298, 1, &rule4},
{12299, 1, &rule5},
{12300, 1, &rule4},
{12301, 1, &rule5},
{12302, 1, &rule4},
{12303, 1, &rule5},
{12304, 1, &rule4},
{12305, 1, &rule5},
{12306, 2, &rule13},
{12308, 1, &rule4},
{12309, 1, &rule5},
{12310, 1, &rule4},
{12311, 1, &rule5},
{12312, 1, &rule4},
{12313, 1, &rule5},
{12314, 1, &rule4},
{12315, 1, &rule5},
{12316, 1, &rule7},
{12317, 1, &rule4},
{12318, 2, &rule5},
{12320, 1, &rule13},
{12321, 9, &rule128},
{12330, 4, &rule92},
{12334, 2, &rule124},
{12336, 1, &rule7},
{12337, 5, &rule91},
{12342, 2, &rule13},
{12344, 3, &rule128},
{12347, 1, &rule91},
{12348, 1, &rule14},
{12349, 1, &rule2},
{12350, 2, &rule13},
{12353, 86, &rule14},
{12441, 2, &rule92},
{12443, 2, &rule10},
{12445, 2, &rule91},
{12447, 1, &rule14},
{12448, 1, &rule7},
{12449, 90, &rule14},
{12539, 1, &rule2},
{12540, 3, &rule91},
{12543, 1, &rule14},
{12549, 43, &rule14},
{12593, 94, &rule14},
{12688, 2, &rule13},
{12690, 4, &rule17},
{12694, 10, &rule13},
{12704, 27, &rule14},
{12736, 36, &rule13},
{12784, 16, &rule14},
{12800, 31, &rule13},
{12832, 10, &rule17},
{12842, 30, &rule13},
{12872, 8, &rule17},
{12880, 1, &rule13},
{12881, 15, &rule17},
{12896, 32, &rule13},
{12928, 10, &rule17},
{12938, 39, &rule13},
{12977, 15, &rule17},
{12992, 63, &rule13},
{13056, 256, &rule13},
{13312, 6582, &rule14},
{19904, 64, &rule13},
{19968, 20976, &rule14},
{40960, 21, &rule14},
{40981, 1, &rule91},
{40982, 1143, &rule14},
{42128, 55, &rule13},
{42192, 40, &rule14},
{42232, 6, &rule91},
{42238, 2, &rule2},
{42240, 268, &rule14},
{42508, 1, &rule91},
{42509, 3, &rule2},
{42512, 16, &rule14},
{42528, 10, &rule8},
{42538, 2, &rule14},
{42560, 1, &rule22},
{42561, 1, &rule23},
{42562, 1, &rule22},
{42563, 1, &rule23},
{42564, 1, &rule22},
{42565, 1, &rule23},
{42566, 1, &rule22},
{42567, 1, &rule23},
{42568, 1, &rule22},
{42569, 1, &rule23},
{42570, 1, &rule22},
{42571, 1, &rule23},
{42572, 1, &rule22},
{42573, 1, &rule23},
{42574, 1, &rule22},
{42575, 1, &rule23},
{42576, 1, &rule22},
{42577, 1, &rule23},
{42578, 1, &rule22},
{42579, 1, &rule23},
{42580, 1, &rule22},
{42581, 1, &rule23},
{42582, 1, &rule22},
{42583, 1, &rule23},
{42584, 1, &rule22},
{42585, 1, &rule23},
{42586, 1, &rule22},
{42587, 1, &rule23},
{42588, 1, &rule22},
{42589, 1, &rule23},
{42590, 1, &rule22},
{42591, 1, &rule23},
{42592, 1, &rule22},
{42593, 1, &rule23},
{42594, 1, &rule22},
{42595, 1, &rule23},
{42596, 1, &rule22},
{42597, 1, &rule23},
{42598, 1, &rule22},
{42599, 1, &rule23},
{42600, 1, &rule22},
{42601, 1, &rule23},
{42602, 1, &rule22},
{42603, 1, &rule23},
{42604, 1, &rule22},
{42605, 1, &rule23},
{42606, 1, &rule14},
{42607, 1, &rule92},
{42608, 3, &rule119},
{42611, 1, &rule2},
{42612, 10, &rule92},
{42622, 1, &rule2},
{42623, 1, &rule91},
{42624, 1, &rule22},
{42625, 1, &rule23},
{42626, 1, &rule22},
{42627, 1, &rule23},
{42628, 1, &rule22},
{42629, 1, &rule23},
{42630, 1, &rule22},
{42631, 1, &rule23},
{42632, 1, &rule22},
{42633, 1, &rule23},
{42634, 1, &rule22},
{42635, 1, &rule23},
{42636, 1, &rule22},
{42637, 1, &rule23},
{42638, 1, &rule22},
{42639, 1, &rule23},
{42640, 1, &rule22},
{42641, 1, &rule23},
{42642, 1, &rule22},
{42643, 1, &rule23},
{42644, 1, &rule22},
{42645, 1, &rule23},
{42646, 1, &rule22},
{42647, 1, &rule23},
{42648, 1, &rule22},
{42649, 1, &rule23},
{42650, 1, &rule22},
{42651, 1, &rule23},
{42652, 2, &rule91},
{42654, 2, &rule92},
{42656, 70, &rule14},
{42726, 10, &rule128},
{42736, 2, &rule92},
{42738, 6, &rule2},
{42752, 23, &rule10},
{42775, 9, &rule91},
{42784, 2, &rule10},
{42786, 1, &rule22},
{42787, 1, &rule23},
{42788, 1, &rule22},
{42789, 1, &rule23},
{42790, 1, &rule22},
{42791, 1, &rule23},
{42792, 1, &rule22},
{42793, 1, &rule23},
{42794, 1, &rule22},
{42795, 1, &rule23},
{42796, 1, &rule22},
{42797, 1, &rule23},
{42798, 1, &rule22},
{42799, 1, &rule23},
{42800, 2, &rule20},
{42802, 1, &rule22},
{42803, 1, &rule23},
{42804, 1, &rule22},
{42805, 1, &rule23},
{42806, 1, &rule22},
{42807, 1, &rule23},
{42808, 1, &rule22},
{42809, 1, &rule23},
{42810, 1, &rule22},
{42811, 1, &rule23},
{42812, 1, &rule22},
{42813, 1, &rule23},
{42814, 1, &rule22},
{42815, 1, &rule23},
{42816, 1, &rule22},
{42817, 1, &rule23},
{42818, 1, &rule22},
{42819, 1, &rule23},
{42820, 1, &rule22},
{42821, 1, &rule23},
{42822, 1, &rule22},
{42823, 1, &rule23},
{42824, 1, &rule22},
{42825, 1, &rule23},
{42826, 1, &rule22},
{42827, 1, &rule23},
{42828, 1, &rule22},
{42829, 1, &rule23},
{42830, 1, &rule22},
{42831, 1, &rule23},
{42832, 1, &rule22},
{42833, 1, &rule23},
{42834, 1, &rule22},
{42835, 1, &rule23},
{42836, 1, &rule22},
{42837, 1, &rule23},
{42838, 1, &rule22},
{42839, 1, &rule23},
{42840, 1, &rule22},
{42841, 1, &rule23},
{42842, 1, &rule22},
{42843, 1, &rule23},
{42844, 1, &rule22},
{42845, 1, &rule23},
{42846, 1, &rule22},
{42847, 1, &rule23},
{42848, 1, &rule22},
{42849, 1, &rule23},
{42850, 1, &rule22},
{42851, 1, &rule23},
{42852, 1, &rule22},
{42853, 1, &rule23},
{42854, 1, &rule22},
{42855, 1, &rule23},
{42856, 1, &rule22},
{42857, 1, &rule23},
{42858, 1, &rule22},
{42859, 1, &rule23},
{42860, 1, &rule22},
{42861, 1, &rule23},
{42862, 1, &rule22},
{42863, 1, &rule23},
{42864, 1, &rule91},
{42865, 8, &rule20},
{42873, 1, &rule22},
{42874, 1, &rule23},
{42875, 1, &rule22},
{42876, 1, &rule23},
{42877, 1, &rule183},
{42878, 1, &rule22},
{42879, 1, &rule23},
{42880, 1, &rule22},
{42881, 1, &rule23},
{42882, 1, &rule22},
{42883, 1, &rule23},
{42884, 1, &rule22},
{42885, 1, &rule23},
{42886, 1, &rule22},
{42887, 1, &rule23},
{42888, 1, &rule91},
{42889, 2, &rule10},
{42891, 1, &rule22},
{42892, 1, &rule23},
{42893, 1, &rule184},
{42894, 1, &rule20},
{42895, 1, &rule14},
{42896, 1, &rule22},
{42897, 1, &rule23},
{42898, 1, &rule22},
{42899, 1, &rule23},
{42900, 1, &rule185},
{42901, 1, &rule20},
{42902, 1, &rule22},
{42903, 1, &rule23},
{42904, 1, &rule22},
{42905, 1, &rule23},
{42906, 1, &rule22},
{42907, 1, &rule23},
{42908, 1, &rule22},
{42909, 1, &rule23},
{42910, 1, &rule22},
{42911, 1, &rule23},
{42912, 1, &rule22},
{42913, 1, &rule23},
{42914, 1, &rule22},
{42915, 1, &rule23},
{42916, 1, &rule22},
{42917, 1, &rule23},
{42918, 1, &rule22},
{42919, 1, &rule23},
{42920, 1, &rule22},
{42921, 1, &rule23},
{42922, 1, &rule186},
{42923, 1, &rule187},
{42924, 1, &rule188},
{42925, 1, &rule189},
{42926, 1, &rule186},
{42927, 1, &rule20},
{42928, 1, &rule190},
{42929, 1, &rule191},
{42930, 1, &rule192},
{42931, 1, &rule193},
{42932, 1, &rule22},
{42933, 1, &rule23},
{42934, 1, &rule22},
{42935, 1, &rule23},
{42936, 1, &rule22},
{42937, 1, &rule23},
{42938, 1, &rule22},
{42939, 1, &rule23},
{42940, 1, &rule22},
{42941, 1, &rule23},
{42942, 1, &rule22},
{42943, 1, &rule23},
{42946, 1, &rule22},
{42947, 1, &rule23},
{42948, 1, &rule194},
{42949, 1, &rule195},
{42950, 1, &rule196},
{42999, 1, &rule14},
{43000, 2, &rule91},
{43002, 1, &rule20},
{43003, 7, &rule14},
{43010, 1, &rule92},
{43011, 3, &rule14},
{43014, 1, &rule92},
{43015, 4, &rule14},
{43019, 1, &rule92},
{43020, 23, &rule14},
{43043, 2, &rule124},
{43045, 2, &rule92},
{43047, 1, &rule124},
{43048, 4, &rule13},
{43056, 6, &rule17},
{43062, 2, &rule13},
{43064, 1, &rule3},
{43065, 1, &rule13},
{43072, 52, &rule14},
{43124, 4, &rule2},
{43136, 2, &rule124},
{43138, 50, &rule14},
{43188, 16, &rule124},
{43204, 2, &rule92},
{43214, 2, &rule2},
{43216, 10, &rule8},
{43232, 18, &rule92},
{43250, 6, &rule14},
{43256, 3, &rule2},
{43259, 1, &rule14},
{43260, 1, &rule2},
{43261, 2, &rule14},
{43263, 1, &rule92},
{43264, 10, &rule8},
{43274, 28, &rule14},
{43302, 8, &rule92},
{43310, 2, &rule2},
{43312, 23, &rule14},
{43335, 11, &rule92},
{43346, 2, &rule124},
{43359, 1, &rule2},
{43360, 29, &rule14},
{43392, 3, &rule92},
{43395, 1, &rule124},
{43396, 47, &rule14},
{43443, 1, &rule92},
{43444, 2, &rule124},
{43446, 4, &rule92},
{43450, 2, &rule124},
{43452, 1, &rule92},
{43453, 4, &rule124},
{43457, 13, &rule2},
{43471, 1, &rule91},
{43472, 10, &rule8},
{43486, 2, &rule2},
{43488, 5, &rule14},
{43493, 1, &rule92},
{43494, 1, &rule91},
{43495, 9, &rule14},
{43504, 10, &rule8},
{43514, 5, &rule14},
{43520, 41, &rule14},
{43561, 6, &rule92},
{43567, 2, &rule124},
{43569, 2, &rule92},
{43571, 2, &rule124},
{43573, 2, &rule92},
{43584, 3, &rule14},
{43587, 1, &rule92},
{43588, 8, &rule14},
{43596, 1, &rule92},
{43597, 1, &rule124},
{43600, 10, &rule8},
{43612, 4, &rule2},
{43616, 16, &rule14},
{43632, 1, &rule91},
{43633, 6, &rule14},
{43639, 3, &rule13},
{43642, 1, &rule14},
{43643, 1, &rule124},
{43644, 1, &rule92},
{43645, 1, &rule124},
{43646, 50, &rule14},
{43696, 1, &rule92},
{43697, 1, &rule14},
{43698, 3, &rule92},
{43701, 2, &rule14},
{43703, 2, &rule92},
{43705, 5, &rule14},
{43710, 2, &rule92},
{43712, 1, &rule14},
{43713, 1, &rule92},
{43714, 1, &rule14},
{43739, 2, &rule14},
{43741, 1, &rule91},
{43742, 2, &rule2},
{43744, 11, &rule14},
{43755, 1, &rule124},
{43756, 2, &rule92},
{43758, 2, &rule124},
{43760, 2, &rule2},
{43762, 1, &rule14},
{43763, 2, &rule91},
{43765, 1, &rule124},
{43766, 1, &rule92},
{43777, 6, &rule14},
{43785, 6, &rule14},
{43793, 6, &rule14},
{43808, 7, &rule14},
{43816, 7, &rule14},
{43824, 35, &rule20},
{43859, 1, &rule197},
{43860, 7, &rule20},
{43867, 1, &rule10},
{43868, 4, &rule91},
{43872, 8, &rule20},
{43888, 80, &rule198},
{43968, 35, &rule14},
{44003, 2, &rule124},
{44005, 1, &rule92},
{44006, 2, &rule124},
{44008, 1, &rule92},
{44009, 2, &rule124},
{44011, 1, &rule2},
{44012, 1, &rule124},
{44013, 1, &rule92},
{44016, 10, &rule8},
{44032, 11172, &rule14},
{55216, 23, &rule14},
{55243, 49, &rule14},
{55296, 896, &rule199},
{56192, 128, &rule199},
{56320, 1024, &rule199},
{57344, 6400, &rule200},
{63744, 366, &rule14},
{64112, 106, &rule14},
{64256, 7, &rule20},
{64275, 5, &rule20},
{64285, 1, &rule14},
{64286, 1, &rule92},
{64287, 10, &rule14},
{64297, 1, &rule6},
{64298, 13, &rule14},
{64312, 5, &rule14},
{64318, 1, &rule14},
{64320, 2, &rule14},
{64323, 2, &rule14},
{64326, 108, &rule14},
{64434, 16, &rule10},
{64467, 363, &rule14},
{64830, 1, &rule5},
{64831, 1, &rule4},
{64848, 64, &rule14},
{64914, 54, &rule14},
{65008, 12, &rule14},
{65020, 1, &rule3},
{65021, 1, &rule13},
{65024, 16, &rule92},
{65040, 7, &rule2},
{65047, 1, &rule4},
{65048, 1, &rule5},
{65049, 1, &rule2},
{65056, 16, &rule92},
{65072, 1, &rule2},
{65073, 2, &rule7},
{65075, 2, &rule11},
{65077, 1, &rule4},
{65078, 1, &rule5},
{65079, 1, &rule4},
{65080, 1, &rule5},
{65081, 1, &rule4},
{65082, 1, &rule5},
{65083, 1, &rule4},
{65084, 1, &rule5},
{65085, 1, &rule4},
{65086, 1, &rule5},
{65087, 1, &rule4},
{65088, 1, &rule5},
{65089, 1, &rule4},
{65090, 1, &rule5},
{65091, 1, &rule4},
{65092, 1, &rule5},
{65093, 2, &rule2},
{65095, 1, &rule4},
{65096, 1, &rule5},
{65097, 4, &rule2},
{65101, 3, &rule11},
{65104, 3, &rule2},
{65108, 4, &rule2},
{65112, 1, &rule7},
{65113, 1, &rule4},
{65114, 1, &rule5},
{65115, 1, &rule4},
{65116, 1, &rule5},
{65117, 1, &rule4},
{65118, 1, &rule5},
{65119, 3, &rule2},
{65122, 1, &rule6},
{65123, 1, &rule7},
{65124, 3, &rule6},
{65128, 1, &rule2},
{65129, 1, &rule3},
{65130, 2, &rule2},
{65136, 5, &rule14},
{65142, 135, &rule14},
{65279, 1, &rule16},
{65281, 3, &rule2},
{65284, 1, &rule3},
{65285, 3, &rule2},
{65288, 1, &rule4},
{65289, 1, &rule5},
{65290, 1, &rule2},
{65291, 1, &rule6},
{65292, 1, &rule2},
{65293, 1, &rule7},
{65294, 2, &rule2},
{65296, 10, &rule8},
{65306, 2, &rule2},
{65308, 3, &rule6},
{65311, 2, &rule2},
{65313, 26, &rule9},
{65339, 1, &rule4},
{65340, 1, &rule2},
{65341, 1, &rule5},
{65342, 1, &rule10},
{65343, 1, &rule11},
{65344, 1, &rule10},
{65345, 26, &rule12},
{65371, 1, &rule4},
{65372, 1, &rule6},
{65373, 1, &rule5},
{65374, 1, &rule6},
{65375, 1, &rule4},
{65376, 1, &rule5},
{65377, 1, &rule2},
{65378, 1, &rule4},
{65379, 1, &rule5},
{65380, 2, &rule2},
{65382, 10, &rule14},
{65392, 1, &rule91},
{65393, 45, &rule14},
{65438, 2, &rule91},
{65440, 31, &rule14},
{65474, 6, &rule14},
{65482, 6, &rule14},
{65490, 6, &rule14},
{65498, 3, &rule14},
{65504, 2, &rule3},
{65506, 1, &rule6},
{65507, 1, &rule10},
{65508, 1, &rule13},
{65509, 2, &rule3},
{65512, 1, &rule13},
{65513, 4, &rule6},
{65517, 2, &rule13},
{65529, 3, &rule16},
{65532, 2, &rule13},
{65536, 12, &rule14},
{65549, 26, &rule14},
{65576, 19, &rule14},
{65596, 2, &rule14},
{65599, 15, &rule14},
{65616, 14, &rule14},
{65664, 123, &rule14},
{65792, 3, &rule2},
{65799, 45, &rule17},
{65847, 9, &rule13},
{65856, 53, &rule128},
{65909, 4, &rule17},
{65913, 17, &rule13},
{65930, 2, &rule17},
{65932, 3, &rule13},
{65936, 12, &rule13},
{65952, 1, &rule13},
{66000, 45, &rule13},
{66045, 1, &rule92},
{66176, 29, &rule14},
{66208, 49, &rule14},
{66272, 1, &rule92},
{66273, 27, &rule17},
{66304, 32, &rule14},
{66336, 4, &rule17},
{66349, 20, &rule14},
{66369, 1, &rule128},
{66370, 8, &rule14},
{66378, 1, &rule128},
{66384, 38, &rule14},
{66422, 5, &rule92},
{66432, 30, &rule14},
{66463, 1, &rule2},
{66464, 36, &rule14},
{66504, 8, &rule14},
{66512, 1, &rule2},
{66513, 5, &rule128},
{66560, 40, &rule201},
{66600, 40, &rule202},
{66640, 78, &rule14},
{66720, 10, &rule8},
{66736, 36, &rule201},
{66776, 36, &rule202},
{66816, 40, &rule14},
{66864, 52, &rule14},
{66927, 1, &rule2},
{67072, 311, &rule14},
{67392, 22, &rule14},
{67424, 8, &rule14},
{67584, 6, &rule14},
{67592, 1, &rule14},
{67594, 44, &rule14},
{67639, 2, &rule14},
{67644, 1, &rule14},
{67647, 23, &rule14},
{67671, 1, &rule2},
{67672, 8, &rule17},
{67680, 23, &rule14},
{67703, 2, &rule13},
{67705, 7, &rule17},
{67712, 31, &rule14},
{67751, 9, &rule17},
{67808, 19, &rule14},
{67828, 2, &rule14},
{67835, 5, &rule17},
{67840, 22, &rule14},
{67862, 6, &rule17},
{67871, 1, &rule2},
{67872, 26, &rule14},
{67903, 1, &rule2},
{67968, 56, &rule14},
{68028, 2, &rule17},
{68030, 2, &rule14},
{68032, 16, &rule17},
{68050, 46, &rule17},
{68096, 1, &rule14},
{68097, 3, &rule92},
{68101, 2, &rule92},
{68108, 4, &rule92},
{68112, 4, &rule14},
{68117, 3, &rule14},
{68121, 29, &rule14},
{68152, 3, &rule92},
{68159, 1, &rule92},
{68160, 9, &rule17},
{68176, 9, &rule2},
{68192, 29, &rule14},
{68221, 2, &rule17},
{68223, 1, &rule2},
{68224, 29, &rule14},
{68253, 3, &rule17},
{68288, 8, &rule14},
{68296, 1, &rule13},
{68297, 28, &rule14},
{68325, 2, &rule92},
{68331, 5, &rule17},
{68336, 7, &rule2},
{68352, 54, &rule14},
{68409, 7, &rule2},
{68416, 22, &rule14},
{68440, 8, &rule17},
{68448, 19, &rule14},
{68472, 8, &rule17},
{68480, 18, &rule14},
{68505, 4, &rule2},
{68521, 7, &rule17},
{68608, 73, &rule14},
{68736, 51, &rule97},
{68800, 51, &rule102},
{68858, 6, &rule17},
{68864, 36, &rule14},
{68900, 4, &rule92},
{68912, 10, &rule8},
{69216, 31, &rule17},
{69376, 29, &rule14},
{69405, 10, &rule17},
{69415, 1, &rule14},
{69424, 22, &rule14},
{69446, 11, &rule92},
{69457, 4, &rule17},
{69461, 5, &rule2},
{69600, 23, &rule14},
{69632, 1, &rule124},
{69633, 1, &rule92},
{69634, 1, &rule124},
{69635, 53, &rule14},
{69688, 15, &rule92},
{69703, 7, &rule2},
{69714, 20, &rule17},
{69734, 10, &rule8},
{69759, 3, &rule92},
{69762, 1, &rule124},
{69763, 45, &rule14},
{69808, 3, &rule124},
{69811, 4, &rule92},
{69815, 2, &rule124},
{69817, 2, &rule92},
{69819, 2, &rule2},
{69821, 1, &rule16},
{69822, 4, &rule2},
{69837, 1, &rule16},
{69840, 25, &rule14},
{69872, 10, &rule8},
{69888, 3, &rule92},
{69891, 36, &rule14},
{69927, 5, &rule92},
{69932, 1, &rule124},
{69933, 8, &rule92},
{69942, 10, &rule8},
{69952, 4, &rule2},
{69956, 1, &rule14},
{69957, 2, &rule124},
{69968, 35, &rule14},
{70003, 1, &rule92},
{70004, 2, &rule2},
{70006, 1, &rule14},
{70016, 2, &rule92},
{70018, 1, &rule124},
{70019, 48, &rule14},
{70067, 3, &rule124},
{70070, 9, &rule92},
{70079, 2, &rule124},
{70081, 4, &rule14},
{70085, 4, &rule2},
{70089, 4, &rule92},
{70093, 1, &rule2},
{70096, 10, &rule8},
{70106, 1, &rule14},
{70107, 1, &rule2},
{70108, 1, &rule14},
{70109, 3, &rule2},
{70113, 20, &rule17},
{70144, 18, &rule14},
{70163, 25, &rule14},
{70188, 3, &rule124},
{70191, 3, &rule92},
{70194, 2, &rule124},
{70196, 1, &rule92},
{70197, 1, &rule124},
{70198, 2, &rule92},
{70200, 6, &rule2},
{70206, 1, &rule92},
{70272, 7, &rule14},
{70280, 1, &rule14},
{70282, 4, &rule14},
{70287, 15, &rule14},
{70303, 10, &rule14},
{70313, 1, &rule2},
{70320, 47, &rule14},
{70367, 1, &rule92},
{70368, 3, &rule124},
{70371, 8, &rule92},
{70384, 10, &rule8},
{70400, 2, &rule92},
{70402, 2, &rule124},
{70405, 8, &rule14},
{70415, 2, &rule14},
{70419, 22, &rule14},
{70442, 7, &rule14},
{70450, 2, &rule14},
{70453, 5, &rule14},
{70459, 2, &rule92},
{70461, 1, &rule14},
{70462, 2, &rule124},
{70464, 1, &rule92},
{70465, 4, &rule124},
{70471, 2, &rule124},
{70475, 3, &rule124},
{70480, 1, &rule14},
{70487, 1, &rule124},
{70493, 5, &rule14},
{70498, 2, &rule124},
{70502, 7, &rule92},
{70512, 5, &rule92},
{70656, 53, &rule14},
{70709, 3, &rule124},
{70712, 8, &rule92},
{70720, 2, &rule124},
{70722, 3, &rule92},
{70725, 1, &rule124},
{70726, 1, &rule92},
{70727, 4, &rule14},
{70731, 5, &rule2},
{70736, 10, &rule8},
{70747, 1, &rule2},
{70749, 1, &rule2},
{70750, 1, &rule92},
{70751, 1, &rule14},
{70784, 48, &rule14},
{70832, 3, &rule124},
{70835, 6, &rule92},
{70841, 1, &rule124},
{70842, 1, &rule92},
{70843, 4, &rule124},
{70847, 2, &rule92},
{70849, 1, &rule124},
{70850, 2, &rule92},
{70852, 2, &rule14},
{70854, 1, &rule2},
{70855, 1, &rule14},
{70864, 10, &rule8},
{71040, 47, &rule14},
{71087, 3, &rule124},
{71090, 4, &rule92},
{71096, 4, &rule124},
{71100, 2, &rule92},
{71102, 1, &rule124},
{71103, 2, &rule92},
{71105, 23, &rule2},
{71128, 4, &rule14},
{71132, 2, &rule92},
{71168, 48, &rule14},
{71216, 3, &rule124},
{71219, 8, &rule92},
{71227, 2, &rule124},
{71229, 1, &rule92},
{71230, 1, &rule124},
{71231, 2, &rule92},
{71233, 3, &rule2},
{71236, 1, &rule14},
{71248, 10, &rule8},
{71264, 13, &rule2},
{71296, 43, &rule14},
{71339, 1, &rule92},
{71340, 1, &rule124},
{71341, 1, &rule92},
{71342, 2, &rule124},
{71344, 6, &rule92},
{71350, 1, &rule124},
{71351, 1, &rule92},
{71352, 1, &rule14},
{71360, 10, &rule8},
{71424, 27, &rule14},
{71453, 3, &rule92},
{71456, 2, &rule124},
{71458, 4, &rule92},
{71462, 1, &rule124},
{71463, 5, &rule92},
{71472, 10, &rule8},
{71482, 2, &rule17},
{71484, 3, &rule2},
{71487, 1, &rule13},
{71680, 44, &rule14},
{71724, 3, &rule124},
{71727, 9, &rule92},
{71736, 1, &rule124},
{71737, 2, &rule92},
{71739, 1, &rule2},
{71840, 32, &rule9},
{71872, 32, &rule12},
{71904, 10, &rule8},
{71914, 9, &rule17},
{71935, 1, &rule14},
{72096, 8, &rule14},
{72106, 39, &rule14},
{72145, 1, &rule124},
{72146, 1, &rule92},
{72147, 1, &rule124},
{72148, 4, &rule92},
{72154, 2, &rule92},
{72156, 4, &rule124},
{72160, 1, &rule92},
{72161, 3, &rule14},
{72164, 1, &rule124},
{72192, 1, &rule14},
{72193, 10, &rule92},
{72203, 40, &rule14},
{72243, 6, &rule92},
{72249, 1, &rule124},
{72250, 1, &rule14},
{72251, 4, &rule92},
{72255, 8, &rule2},
{72263, 1, &rule92},
{72272, 1, &rule14},
{72273, 6, &rule92},
{72279, 2, &rule124},
{72281, 3, &rule92},
{72284, 46, &rule14},
{72330, 13, &rule92},
{72343, 1, &rule124},
{72344, 2, &rule92},
{72346, 3, &rule2},
{72349, 1, &rule14},
{72350, 5, &rule2},
{72384, 57, &rule14},
{72704, 9, &rule14},
{72714, 37, &rule14},
{72751, 1, &rule124},
{72752, 7, &rule92},
{72760, 6, &rule92},
{72766, 1, &rule124},
{72767, 1, &rule92},
{72768, 1, &rule14},
{72769, 5, &rule2},
{72784, 10, &rule8},
{72794, 19, &rule17},
{72816, 2, &rule2},
{72818, 30, &rule14},
{72850, 22, &rule92},
{72873, 1, &rule124},
{72874, 7, &rule92},
{72881, 1, &rule124},
{72882, 2, &rule92},
{72884, 1, &rule124},
{72885, 2, &rule92},
{72960, 7, &rule14},
{72968, 2, &rule14},
{72971, 38, &rule14},
{73009, 6, &rule92},
{73018, 1, &rule92},
{73020, 2, &rule92},
{73023, 7, &rule92},
{73030, 1, &rule14},
{73031, 1, &rule92},
{73040, 10, &rule8},
{73056, 6, &rule14},
{73063, 2, &rule14},
{73066, 32, &rule14},
{73098, 5, &rule124},
{73104, 2, &rule92},
{73107, 2, &rule124},
{73109, 1, &rule92},
{73110, 1, &rule124},
{73111, 1, &rule92},
{73112, 1, &rule14},
{73120, 10, &rule8},
{73440, 19, &rule14},
{73459, 2, &rule92},
{73461, 2, &rule124},
{73463, 2, &rule2},
{73664, 21, &rule17},
{73685, 8, &rule13},
{73693, 4, &rule3},
{73697, 17, &rule13},
{73727, 1, &rule2},
{73728, 922, &rule14},
{74752, 111, &rule128},
{74864, 5, &rule2},
{74880, 196, &rule14},
{77824, 1071, &rule14},
{78896, 9, &rule16},
{82944, 583, &rule14},
{92160, 569, &rule14},
{92736, 31, &rule14},
{92768, 10, &rule8},
{92782, 2, &rule2},
{92880, 30, &rule14},
{92912, 5, &rule92},
{92917, 1, &rule2},
{92928, 48, &rule14},
{92976, 7, &rule92},
{92983, 5, &rule2},
{92988, 4, &rule13},
{92992, 4, &rule91},
{92996, 1, &rule2},
{92997, 1, &rule13},
{93008, 10, &rule8},
{93019, 7, &rule17},
{93027, 21, &rule14},
{93053, 19, &rule14},
{93760, 32, &rule9},
{93792, 32, &rule12},
{93824, 23, &rule17},
{93847, 4, &rule2},
{93952, 75, &rule14},
{94031, 1, &rule92},
{94032, 1, &rule14},
{94033, 55, &rule124},
{94095, 4, &rule92},
{94099, 13, &rule91},
{94176, 2, &rule91},
{94178, 1, &rule2},
{94179, 1, &rule91},
{94208, 6136, &rule14},
{100352, 755, &rule14},
{110592, 287, &rule14},
{110928, 3, &rule14},
{110948, 4, &rule14},
{110960, 396, &rule14},
{113664, 107, &rule14},
{113776, 13, &rule14},
{113792, 9, &rule14},
{113808, 10, &rule14},
{113820, 1, &rule13},
{113821, 2, &rule92},
{113823, 1, &rule2},
{113824, 4, &rule16},
{118784, 246, &rule13},
{119040, 39, &rule13},
{119081, 60, &rule13},
{119141, 2, &rule124},
{119143, 3, &rule92},
{119146, 3, &rule13},
{119149, 6, &rule124},
{119155, 8, &rule16},
{119163, 8, &rule92},
{119171, 2, &rule13},
{119173, 7, &rule92},
{119180, 30, &rule13},
{119210, 4, &rule92},
{119214, 59, &rule13},
{119296, 66, &rule13},
{119362, 3, &rule92},
{119365, 1, &rule13},
{119520, 20, &rule17},
{119552, 87, &rule13},
{119648, 25, &rule17},
{119808, 26, &rule107},
{119834, 26, &rule20},
{119860, 26, &rule107},
{119886, 7, &rule20},
{119894, 18, &rule20},
{119912, 26, &rule107},
{119938, 26, &rule20},
{119964, 1, &rule107},
{119966, 2, &rule107},
{119970, 1, &rule107},
{119973, 2, &rule107},
{119977, 4, &rule107},
{119982, 8, &rule107},
{119990, 4, &rule20},
{119995, 1, &rule20},
{119997, 7, &rule20},
{120005, 11, &rule20},
{120016, 26, &rule107},
{120042, 26, &rule20},
{120068, 2, &rule107},
{120071, 4, &rule107},
{120077, 8, &rule107},
{120086, 7, &rule107},
{120094, 26, &rule20},
{120120, 2, &rule107},
{120123, 4, &rule107},
{120128, 5, &rule107},
{120134, 1, &rule107},
{120138, 7, &rule107},
{120146, 26, &rule20},
{120172, 26, &rule107},
{120198, 26, &rule20},
{120224, 26, &rule107},
{120250, 26, &rule20},
{120276, 26, &rule107},
{120302, 26, &rule20},
{120328, 26, &rule107},
{120354, 26, &rule20},
{120380, 26, &rule107},
{120406, 26, &rule20},
{120432, 26, &rule107},
{120458, 28, &rule20},
{120488, 25, &rule107},
{120513, 1, &rule6},
{120514, 25, &rule20},
{120539, 1, &rule6},
{120540, 6, &rule20},
{120546, 25, &rule107},
{120571, 1, &rule6},
{120572, 25, &rule20},
{120597, 1, &rule6},
{120598, 6, &rule20},
{120604, 25, &rule107},
{120629, 1, &rule6},
{120630, 25, &rule20},
{120655, 1, &rule6},
{120656, 6, &rule20},
{120662, 25, &rule107},
{120687, 1, &rule6},
{120688, 25, &rule20},
{120713, 1, &rule6},
{120714, 6, &rule20},
{120720, 25, &rule107},
{120745, 1, &rule6},
{120746, 25, &rule20},
{120771, 1, &rule6},
{120772, 6, &rule20},
{120778, 1, &rule107},
{120779, 1, &rule20},
{120782, 50, &rule8},
{120832, 512, &rule13},
{121344, 55, &rule92},
{121399, 4, &rule13},
{121403, 50, &rule92},
{121453, 8, &rule13},
{121461, 1, &rule92},
{121462, 14, &rule13},
{121476, 1, &rule92},
{121477, 2, &rule13},
{121479, 5, &rule2},
{121499, 5, &rule92},
{121505, 15, &rule92},
{122880, 7, &rule92},
{122888, 17, &rule92},
{122907, 7, &rule92},
{122915, 2, &rule92},
{122918, 5, &rule92},
{123136, 45, &rule14},
{123184, 7, &rule92},
{123191, 7, &rule91},
{123200, 10, &rule8},
{123214, 2, &rule14},
{123584, 44, &rule14},
{123628, 4, &rule92},
{123632, 10, &rule8},
{123647, 1, &rule3},
{124928, 197, &rule14},
{125127, 9, &rule17},
{125136, 7, &rule92},
{125184, 34, &rule203},
{125218, 34, &rule204},
{125252, 7, &rule92},
{125264, 10, &rule8},
{125278, 2, &rule2},
{126065, 59, &rule17},
{126124, 1, &rule13},
{126125, 3, &rule17},
{126128, 1, &rule3},
{126129, 4, &rule17},
{126209, 45, &rule17},
{126254, 1, &rule13},
{126255, 15, &rule17},
{126464, 4, &rule14},
{126469, 27, &rule14},
{126497, 2, &rule14},
{126500, 1, &rule14},
{126503, 1, &rule14},
{126505, 10, &rule14},
{126516, 4, &rule14},
{126521, 1, &rule14},
{126523, 1, &rule14},
{126530, 1, &rule14},
{126535, 1, &rule14},
{126537, 1, &rule14},
{126539, 1, &rule14},
{126541, 3, &rule14},
{126545, 2, &rule14},
{126548, 1, &rule14},
{126551, 1, &rule14},
{126553, 1, &rule14},
{126555, 1, &rule14},
{126557, 1, &rule14},
{126559, 1, &rule14},
{126561, 2, &rule14},
{126564, 1, &rule14},
{126567, 4, &rule14},
{126572, 7, &rule14},
{126580, 4, &rule14},
{126585, 4, &rule14},
{126590, 1, &rule14},
{126592, 10, &rule14},
{126603, 17, &rule14},
{126625, 3, &rule14},
{126629, 5, &rule14},
{126635, 17, &rule14},
{126704, 2, &rule6},
{126976, 44, &rule13},
{127024, 100, &rule13},
{127136, 15, &rule13},
{127153, 15, &rule13},
{127169, 15, &rule13},
{127185, 37, &rule13},
{127232, 13, &rule17},
{127248, 93, &rule13},
{127344, 61, &rule13},
{127462, 29, &rule13},
{127504, 44, &rule13},
{127552, 9, &rule13},
{127568, 2, &rule13},
{127584, 6, &rule13},
{127744, 251, &rule13},
{127995, 5, &rule10},
{128000, 726, &rule13},
{128736, 13, &rule13},
{128752, 11, &rule13},
{128768, 116, &rule13},
{128896, 89, &rule13},
{128992, 12, &rule13},
{129024, 12, &rule13},
{129040, 56, &rule13},
{129104, 10, &rule13},
{129120, 40, &rule13},
{129168, 30, &rule13},
{129280, 12, &rule13},
{129293, 101, &rule13},
{129395, 4, &rule13},
{129402, 41, &rule13},
{129445, 6, &rule13},
{129454, 29, &rule13},
{129485, 135, &rule13},
{129632, 14, &rule13},
{129648, 4, &rule13},
{129656, 3, &rule13},
{129664, 3, &rule13},
{129680, 6, &rule13},
{131072, 42711, &rule14},
{173824, 4149, &rule14},
{177984, 222, &rule14},
{178208, 5762, &rule14},
{183984, 7473, &rule14},
{194560, 542, &rule14},
{917505, 1, &rule16},
{917536, 96, &rule16},
{917760, 240, &rule92},
{983040, 65534, &rule200},
{1048576, 65534, &rule200}
};
static const struct _charblock_ convchars[]={
{65, 26, &rule9},
{97, 26, &rule12},
{181, 1, &rule18},
{192, 23, &rule9},
{216, 7, &rule9},
{224, 23, &rule12},
{248, 7, &rule12},
{255, 1, &rule21},
{256, 1, &rule22},
{257, 1, &rule23},
{258, 1, &rule22},
{259, 1, &rule23},
{260, 1, &rule22},
{261, 1, &rule23},
{262, 1, &rule22},
{263, 1, &rule23},
{264, 1, &rule22},
{265, 1, &rule23},
{266, 1, &rule22},
{267, 1, &rule23},
{268, 1, &rule22},
{269, 1, &rule23},
{270, 1, &rule22},
{271, 1, &rule23},
{272, 1, &rule22},
{273, 1, &rule23},
{274, 1, &rule22},
{275, 1, &rule23},
{276, 1, &rule22},
{277, 1, &rule23},
{278, 1, &rule22},
{279, 1, &rule23},
{280, 1, &rule22},
{281, 1, &rule23},
{282, 1, &rule22},
{283, 1, &rule23},
{284, 1, &rule22},
{285, 1, &rule23},
{286, 1, &rule22},
{287, 1, &rule23},
{288, 1, &rule22},
{289, 1, &rule23},
{290, 1, &rule22},
{291, 1, &rule23},
{292, 1, &rule22},
{293, 1, &rule23},
{294, 1, &rule22},
{295, 1, &rule23},
{296, 1, &rule22},
{297, 1, &rule23},
{298, 1, &rule22},
{299, 1, &rule23},
{300, 1, &rule22},
{301, 1, &rule23},
{302, 1, &rule22},
{303, 1, &rule23},
{304, 1, &rule24},
{305, 1, &rule25},
{306, 1, &rule22},
{307, 1, &rule23},
{308, 1, &rule22},
{309, 1, &rule23},
{310, 1, &rule22},
{311, 1, &rule23},
{313, 1, &rule22},
{314, 1, &rule23},
{315, 1, &rule22},
{316, 1, &rule23},
{317, 1, &rule22},
{318, 1, &rule23},
{319, 1, &rule22},
{320, 1, &rule23},
{321, 1, &rule22},
{322, 1, &rule23},
{323, 1, &rule22},
{324, 1, &rule23},
{325, 1, &rule22},
{326, 1, &rule23},
{327, 1, &rule22},
{328, 1, &rule23},
{330, 1, &rule22},
{331, 1, &rule23},
{332, 1, &rule22},
{333, 1, &rule23},
{334, 1, &rule22},
{335, 1, &rule23},
{336, 1, &rule22},
{337, 1, &rule23},
{338, 1, &rule22},
{339, 1, &rule23},
{340, 1, &rule22},
{341, 1, &rule23},
{342, 1, &rule22},
{343, 1, &rule23},
{344, 1, &rule22},
{345, 1, &rule23},
{346, 1, &rule22},
{347, 1, &rule23},
{348, 1, &rule22},
{349, 1, &rule23},
{350, 1, &rule22},
{351, 1, &rule23},
{352, 1, &rule22},
{353, 1, &rule23},
{354, 1, &rule22},
{355, 1, &rule23},
{356, 1, &rule22},
{357, 1, &rule23},
{358, 1, &rule22},
{359, 1, &rule23},
{360, 1, &rule22},
{361, 1, &rule23},
{362, 1, &rule22},
{363, 1, &rule23},
{364, 1, &rule22},
{365, 1, &rule23},
{366, 1, &rule22},
{367, 1, &rule23},
{368, 1, &rule22},
{369, 1, &rule23},
{370, 1, &rule22},
{371, 1, &rule23},
{372, 1, &rule22},
{373, 1, &rule23},
{374, 1, &rule22},
{375, 1, &rule23},
{376, 1, &rule26},
{377, 1, &rule22},
{378, 1, &rule23},
{379, 1, &rule22},
{380, 1, &rule23},
{381, 1, &rule22},
{382, 1, &rule23},
{383, 1, &rule27},
{384, 1, &rule28},
{385, 1, &rule29},
{386, 1, &rule22},
{387, 1, &rule23},
{388, 1, &rule22},
{389, 1, &rule23},
{390, 1, &rule30},
{391, 1, &rule22},
{392, 1, &rule23},
{393, 2, &rule31},
{395, 1, &rule22},
{396, 1, &rule23},
{398, 1, &rule32},
{399, 1, &rule33},
{400, 1, &rule34},
{401, 1, &rule22},
{402, 1, &rule23},
{403, 1, &rule31},
{404, 1, &rule35},
{405, 1, &rule36},
{406, 1, &rule37},
{407, 1, &rule38},
{408, 1, &rule22},
{409, 1, &rule23},
{410, 1, &rule39},
{412, 1, &rule37},
{413, 1, &rule40},
{414, 1, &rule41},
{415, 1, &rule42},
{416, 1, &rule22},
{417, 1, &rule23},
{418, 1, &rule22},
{419, 1, &rule23},
{420, 1, &rule22},
{421, 1, &rule23},
{422, 1, &rule43},
{423, 1, &rule22},
{424, 1, &rule23},
{425, 1, &rule43},
{428, 1, &rule22},
{429, 1, &rule23},
{430, 1, &rule43},
{431, 1, &rule22},
{432, 1, &rule23},
{433, 2, &rule44},
{435, 1, &rule22},
{436, 1, &rule23},
{437, 1, &rule22},
{438, 1, &rule23},
{439, 1, &rule45},
{440, 1, &rule22},
{441, 1, &rule23},
{444, 1, &rule22},
{445, 1, &rule23},
{447, 1, &rule46},
{452, 1, &rule47},
{453, 1, &rule48},
{454, 1, &rule49},
{455, 1, &rule47},
{456, 1, &rule48},
{457, 1, &rule49},
{458, 1, &rule47},
{459, 1, &rule48},
{460, 1, &rule49},
{461, 1, &rule22},
{462, 1, &rule23},
{463, 1, &rule22},
{464, 1, &rule23},
{465, 1, &rule22},
{466, 1, &rule23},
{467, 1, &rule22},
{468, 1, &rule23},
{469, 1, &rule22},
{470, 1, &rule23},
{471, 1, &rule22},
{472, 1, &rule23},
{473, 1, &rule22},
{474, 1, &rule23},
{475, 1, &rule22},
{476, 1, &rule23},
{477, 1, &rule50},
{478, 1, &rule22},
{479, 1, &rule23},
{480, 1, &rule22},
{481, 1, &rule23},
{482, 1, &rule22},
{483, 1, &rule23},
{484, 1, &rule22},
{485, 1, &rule23},
{486, 1, &rule22},
{487, 1, &rule23},
{488, 1, &rule22},
{489, 1, &rule23},
{490, 1, &rule22},
{491, 1, &rule23},
{492, 1, &rule22},
{493, 1, &rule23},
{494, 1, &rule22},
{495, 1, &rule23},
{497, 1, &rule47},
{498, 1, &rule48},
{499, 1, &rule49},
{500, 1, &rule22},
{501, 1, &rule23},
{502, 1, &rule51},
{503, 1, &rule52},
{504, 1, &rule22},
{505, 1, &rule23},
{506, 1, &rule22},
{507, 1, &rule23},
{508, 1, &rule22},
{509, 1, &rule23},
{510, 1, &rule22},
{511, 1, &rule23},
{512, 1, &rule22},
{513, 1, &rule23},
{514, 1, &rule22},
{515, 1, &rule23},
{516, 1, &rule22},
{517, 1, &rule23},
{518, 1, &rule22},
{519, 1, &rule23},
{520, 1, &rule22},
{521, 1, &rule23},
{522, 1, &rule22},
{523, 1, &rule23},
{524, 1, &rule22},
{525, 1, &rule23},
{526, 1, &rule22},
{527, 1, &rule23},
{528, 1, &rule22},
{529, 1, &rule23},
{530, 1, &rule22},
{531, 1, &rule23},
{532, 1, &rule22},
{533, 1, &rule23},
{534, 1, &rule22},
{535, 1, &rule23},
{536, 1, &rule22},
{537, 1, &rule23},
{538, 1, &rule22},
{539, 1, &rule23},
{540, 1, &rule22},
{541, 1, &rule23},
{542, 1, &rule22},
{543, 1, &rule23},
{544, 1, &rule53},
{546, 1, &rule22},
{547, 1, &rule23},
{548, 1, &rule22},
{549, 1, &rule23},
{550, 1, &rule22},
{551, 1, &rule23},
{552, 1, &rule22},
{553, 1, &rule23},
{554, 1, &rule22},
{555, 1, &rule23},
{556, 1, &rule22},
{557, 1, &rule23},
{558, 1, &rule22},
{559, 1, &rule23},
{560, 1, &rule22},
{561, 1, &rule23},
{562, 1, &rule22},
{563, 1, &rule23},
{570, 1, &rule54},
{571, 1, &rule22},
{572, 1, &rule23},
{573, 1, &rule55},
{574, 1, &rule56},
{575, 2, &rule57},
{577, 1, &rule22},
{578, 1, &rule23},
{579, 1, &rule58},
{580, 1, &rule59},
{581, 1, &rule60},
{582, 1, &rule22},
{583, 1, &rule23},
{584, 1, &rule22},
{585, 1, &rule23},
{586, 1, &rule22},
{587, 1, &rule23},
{588, 1, &rule22},
{589, 1, &rule23},
{590, 1, &rule22},
{591, 1, &rule23},
{592, 1, &rule61},
{593, 1, &rule62},
{594, 1, &rule63},
{595, 1, &rule64},
{596, 1, &rule65},
{598, 2, &rule66},
{601, 1, &rule67},
{603, 1, &rule68},
{604, 1, &rule69},
{608, 1, &rule66},
{609, 1, &rule70},
{611, 1, &rule71},
{613, 1, &rule72},
{614, 1, &rule73},
{616, 1, &rule74},
{617, 1, &rule75},
{618, 1, &rule73},
{619, 1, &rule76},
{620, 1, &rule77},
{623, 1, &rule75},
{625, 1, &rule78},
{626, 1, &rule79},
{629, 1, &rule80},
{637, 1, &rule81},
{640, 1, &rule82},
{642, 1, &rule83},
{643, 1, &rule82},
{647, 1, &rule84},
{648, 1, &rule82},
{649, 1, &rule85},
{650, 2, &rule86},
{652, 1, &rule87},
{658, 1, &rule88},
{669, 1, &rule89},
{670, 1, &rule90},
{837, 1, &rule93},
{880, 1, &rule22},
{881, 1, &rule23},
{882, 1, &rule22},
{883, 1, &rule23},
{886, 1, &rule22},
{887, 1, &rule23},
{891, 3, &rule41},
{895, 1, &rule94},
{902, 1, &rule95},
{904, 3, &rule96},
{908, 1, &rule97},
{910, 2, &rule98},
{913, 17, &rule9},
{931, 9, &rule9},
{940, 1, &rule99},
{941, 3, &rule100},
{945, 17, &rule12},
{962, 1, &rule101},
{963, 9, &rule12},
{972, 1, &rule102},
{973, 2, &rule103},
{975, 1, &rule104},
{976, 1, &rule105},
{977, 1, &rule106},
{981, 1, &rule108},
{982, 1, &rule109},
{983, 1, &rule110},
{984, 1, &rule22},
{985, 1, &rule23},
{986, 1, &rule22},
{987, 1, &rule23},
{988, 1, &rule22},
{989, 1, &rule23},
{990, 1, &rule22},
{991, 1, &rule23},
{992, 1, &rule22},
{993, 1, &rule23},
{994, 1, &rule22},
{995, 1, &rule23},
{996, 1, &rule22},
{997, 1, &rule23},
{998, 1, &rule22},
{999, 1, &rule23},
{1000, 1, &rule22},
{1001, 1, &rule23},
{1002, 1, &rule22},
{1003, 1, &rule23},
{1004, 1, &rule22},
{1005, 1, &rule23},
{1006, 1, &rule22},
{1007, 1, &rule23},
{1008, 1, &rule111},
{1009, 1, &rule112},
{1010, 1, &rule113},
{1011, 1, &rule114},
{1012, 1, &rule115},
{1013, 1, &rule116},
{1015, 1, &rule22},
{1016, 1, &rule23},
{1017, 1, &rule117},
{1018, 1, &rule22},
{1019, 1, &rule23},
{1021, 3, &rule53},
{1024, 16, &rule118},
{1040, 32, &rule9},
{1072, 32, &rule12},
{1104, 16, &rule112},
{1120, 1, &rule22},
{1121, 1, &rule23},
{1122, 1, &rule22},
{1123, 1, &rule23},
{1124, 1, &rule22},
{1125, 1, &rule23},
{1126, 1, &rule22},
{1127, 1, &rule23},
{1128, 1, &rule22},
{1129, 1, &rule23},
{1130, 1, &rule22},
{1131, 1, &rule23},
{1132, 1, &rule22},
{1133, 1, &rule23},
{1134, 1, &rule22},
{1135, 1, &rule23},
{1136, 1, &rule22},
{1137, 1, &rule23},
{1138, 1, &rule22},
{1139, 1, &rule23},
{1140, 1, &rule22},
{1141, 1, &rule23},
{1142, 1, &rule22},
{1143, 1, &rule23},
{1144, 1, &rule22},
{1145, 1, &rule23},
{1146, 1, &rule22},
{1147, 1, &rule23},
{1148, 1, &rule22},
{1149, 1, &rule23},
{1150, 1, &rule22},
{1151, 1, &rule23},
{1152, 1, &rule22},
{1153, 1, &rule23},
{1162, 1, &rule22},
{1163, 1, &rule23},
{1164, 1, &rule22},
{1165, 1, &rule23},
{1166, 1, &rule22},
{1167, 1, &rule23},
{1168, 1, &rule22},
{1169, 1, &rule23},
{1170, 1, &rule22},
{1171, 1, &rule23},
{1172, 1, &rule22},
{1173, 1, &rule23},
{1174, 1, &rule22},
{1175, 1, &rule23},
{1176, 1, &rule22},
{1177, 1, &rule23},
{1178, 1, &rule22},
{1179, 1, &rule23},
{1180, 1, &rule22},
{1181, 1, &rule23},
{1182, 1, &rule22},
{1183, 1, &rule23},
{1184, 1, &rule22},
{1185, 1, &rule23},
{1186, 1, &rule22},
{1187, 1, &rule23},
{1188, 1, &rule22},
{1189, 1, &rule23},
{1190, 1, &rule22},
{1191, 1, &rule23},
{1192, 1, &rule22},
{1193, 1, &rule23},
{1194, 1, &rule22},
{1195, 1, &rule23},
{1196, 1, &rule22},
{1197, 1, &rule23},
{1198, 1, &rule22},
{1199, 1, &rule23},
{1200, 1, &rule22},
{1201, 1, &rule23},
{1202, 1, &rule22},
{1203, 1, &rule23},
{1204, 1, &rule22},
{1205, 1, &rule23},
{1206, 1, &rule22},
{1207, 1, &rule23},
{1208, 1, &rule22},
{1209, 1, &rule23},
{1210, 1, &rule22},
{1211, 1, &rule23},
{1212, 1, &rule22},
{1213, 1, &rule23},
{1214, 1, &rule22},
{1215, 1, &rule23},
{1216, 1, &rule120},
{1217, 1, &rule22},
{1218, 1, &rule23},
{1219, 1, &rule22},
{1220, 1, &rule23},
{1221, 1, &rule22},
{1222, 1, &rule23},
{1223, 1, &rule22},
{1224, 1, &rule23},
{1225, 1, &rule22},
{1226, 1, &rule23},
{1227, 1, &rule22},
{1228, 1, &rule23},
{1229, 1, &rule22},
{1230, 1, &rule23},
{1231, 1, &rule121},
{1232, 1, &rule22},
{1233, 1, &rule23},
{1234, 1, &rule22},
{1235, 1, &rule23},
{1236, 1, &rule22},
{1237, 1, &rule23},
{1238, 1, &rule22},
{1239, 1, &rule23},
{1240, 1, &rule22},
{1241, 1, &rule23},
{1242, 1, &rule22},
{1243, 1, &rule23},
{1244, 1, &rule22},
{1245, 1, &rule23},
{1246, 1, &rule22},
{1247, 1, &rule23},
{1248, 1, &rule22},
{1249, 1, &rule23},
{1250, 1, &rule22},
{1251, 1, &rule23},
{1252, 1, &rule22},
{1253, 1, &rule23},
{1254, 1, &rule22},
{1255, 1, &rule23},
{1256, 1, &rule22},
{1257, 1, &rule23},
{1258, 1, &rule22},
{1259, 1, &rule23},
{1260, 1, &rule22},
{1261, 1, &rule23},
{1262, 1, &rule22},
{1263, 1, &rule23},
{1264, 1, &rule22},
{1265, 1, &rule23},
{1266, 1, &rule22},
{1267, 1, &rule23},
{1268, 1, &rule22},
{1269, 1, &rule23},
{1270, 1, &rule22},
{1271, 1, &rule23},
{1272, 1, &rule22},
{1273, 1, &rule23},
{1274, 1, &rule22},
{1275, 1, &rule23},
{1276, 1, &rule22},
{1277, 1, &rule23},
{1278, 1, &rule22},
{1279, 1, &rule23},
{1280, 1, &rule22},
{1281, 1, &rule23},
{1282, 1, &rule22},
{1283, 1, &rule23},
{1284, 1, &rule22},
{1285, 1, &rule23},
{1286, 1, &rule22},
{1287, 1, &rule23},
{1288, 1, &rule22},
{1289, 1, &rule23},
{1290, 1, &rule22},
{1291, 1, &rule23},
{1292, 1, &rule22},
{1293, 1, &rule23},
{1294, 1, &rule22},
{1295, 1, &rule23},
{1296, 1, &rule22},
{1297, 1, &rule23},
{1298, 1, &rule22},
{1299, 1, &rule23},
{1300, 1, &rule22},
{1301, 1, &rule23},
{1302, 1, &rule22},
{1303, 1, &rule23},
{1304, 1, &rule22},
{1305, 1, &rule23},
{1306, 1, &rule22},
{1307, 1, &rule23},
{1308, 1, &rule22},
{1309, 1, &rule23},
{1310, 1, &rule22},
{1311, 1, &rule23},
{1312, 1, &rule22},
{1313, 1, &rule23},
{1314, 1, &rule22},
{1315, 1, &rule23},
{1316, 1, &rule22},
{1317, 1, &rule23},
{1318, 1, &rule22},
{1319, 1, &rule23},
{1320, 1, &rule22},
{1321, 1, &rule23},
{1322, 1, &rule22},
{1323, 1, &rule23},
{1324, 1, &rule22},
{1325, 1, &rule23},
{1326, 1, &rule22},
{1327, 1, &rule23},
{1329, 38, &rule122},
{1377, 38, &rule123},
{4256, 38, &rule125},
{4295, 1, &rule125},
{4301, 1, &rule125},
{4304, 43, &rule126},
{4349, 3, &rule126},
{5024, 80, &rule127},
{5104, 6, &rule104},
{5112, 6, &rule110},
{7296, 1, &rule129},
{7297, 1, &rule130},
{7298, 1, &rule131},
{7299, 2, &rule132},
{7301, 1, &rule133},
{7302, 1, &rule134},
{7303, 1, &rule135},
{7304, 1, &rule136},
{7312, 43, &rule137},
{7357, 3, &rule137},
{7545, 1, &rule138},
{7549, 1, &rule139},
{7566, 1, &rule140},
{7680, 1, &rule22},
{7681, 1, &rule23},
{7682, 1, &rule22},
{7683, 1, &rule23},
{7684, 1, &rule22},
{7685, 1, &rule23},
{7686, 1, &rule22},
{7687, 1, &rule23},
{7688, 1, &rule22},
{7689, 1, &rule23},
{7690, 1, &rule22},
{7691, 1, &rule23},
{7692, 1, &rule22},
{7693, 1, &rule23},
{7694, 1, &rule22},
{7695, 1, &rule23},
{7696, 1, &rule22},
{7697, 1, &rule23},
{7698, 1, &rule22},
{7699, 1, &rule23},
{7700, 1, &rule22},
{7701, 1, &rule23},
{7702, 1, &rule22},
{7703, 1, &rule23},
{7704, 1, &rule22},
{7705, 1, &rule23},
{7706, 1, &rule22},
{7707, 1, &rule23},
{7708, 1, &rule22},
{7709, 1, &rule23},
{7710, 1, &rule22},
{7711, 1, &rule23},
{7712, 1, &rule22},
{7713, 1, &rule23},
{7714, 1, &rule22},
{7715, 1, &rule23},
{7716, 1, &rule22},
{7717, 1, &rule23},
{7718, 1, &rule22},
{7719, 1, &rule23},
{7720, 1, &rule22},
{7721, 1, &rule23},
{7722, 1, &rule22},
{7723, 1, &rule23},
{7724, 1, &rule22},
{7725, 1, &rule23},
{7726, 1, &rule22},
{7727, 1, &rule23},
{7728, 1, &rule22},
{7729, 1, &rule23},
{7730, 1, &rule22},
{7731, 1, &rule23},
{7732, 1, &rule22},
{7733, 1, &rule23},
{7734, 1, &rule22},
{7735, 1, &rule23},
{7736, 1, &rule22},
{7737, 1, &rule23},
{7738, 1, &rule22},
{7739, 1, &rule23},
{7740, 1, &rule22},
{7741, 1, &rule23},
{7742, 1, &rule22},
{7743, 1, &rule23},
{7744, 1, &rule22},
{7745, 1, &rule23},
{7746, 1, &rule22},
{7747, 1, &rule23},
{7748, 1, &rule22},
{7749, 1, &rule23},
{7750, 1, &rule22},
{7751, 1, &rule23},
{7752, 1, &rule22},
{7753, 1, &rule23},
{7754, 1, &rule22},
{7755, 1, &rule23},
{7756, 1, &rule22},
{7757, 1, &rule23},
{7758, 1, &rule22},
{7759, 1, &rule23},
{7760, 1, &rule22},
{7761, 1, &rule23},
{7762, 1, &rule22},
{7763, 1, &rule23},
{7764, 1, &rule22},
{7765, 1, &rule23},
{7766, 1, &rule22},
{7767, 1, &rule23},
{7768, 1, &rule22},
{7769, 1, &rule23},
{7770, 1, &rule22},
{7771, 1, &rule23},
{7772, 1, &rule22},
{7773, 1, &rule23},
{7774, 1, &rule22},
{7775, 1, &rule23},
{7776, 1, &rule22},
{7777, 1, &rule23},
{7778, 1, &rule22},
{7779, 1, &rule23},
{7780, 1, &rule22},
{7781, 1, &rule23},
{7782, 1, &rule22},
{7783, 1, &rule23},
{7784, 1, &rule22},
{7785, 1, &rule23},
{7786, 1, &rule22},
{7787, 1, &rule23},
{7788, 1, &rule22},
{7789, 1, &rule23},
{7790, 1, &rule22},
{7791, 1, &rule23},
{7792, 1, &rule22},
{7793, 1, &rule23},
{7794, 1, &rule22},
{7795, 1, &rule23},
{7796, 1, &rule22},
{7797, 1, &rule23},
{7798, 1, &rule22},
{7799, 1, &rule23},
{7800, 1, &rule22},
{7801, 1, &rule23},
{7802, 1, &rule22},
{7803, 1, &rule23},
{7804, 1, &rule22},
{7805, 1, &rule23},
{7806, 1, &rule22},
{7807, 1, &rule23},
{7808, 1, &rule22},
{7809, 1, &rule23},
{7810, 1, &rule22},
{7811, 1, &rule23},
{7812, 1, &rule22},
{7813, 1, &rule23},
{7814, 1, &rule22},
{7815, 1, &rule23},
{7816, 1, &rule22},
{7817, 1, &rule23},
{7818, 1, &rule22},
{7819, 1, &rule23},
{7820, 1, &rule22},
{7821, 1, &rule23},
{7822, 1, &rule22},
{7823, 1, &rule23},
{7824, 1, &rule22},
{7825, 1, &rule23},
{7826, 1, &rule22},
{7827, 1, &rule23},
{7828, 1, &rule22},
{7829, 1, &rule23},
{7835, 1, &rule141},
{7838, 1, &rule142},
{7840, 1, &rule22},
{7841, 1, &rule23},
{7842, 1, &rule22},
{7843, 1, &rule23},
{7844, 1, &rule22},
{7845, 1, &rule23},
{7846, 1, &rule22},
{7847, 1, &rule23},
{7848, 1, &rule22},
{7849, 1, &rule23},
{7850, 1, &rule22},
{7851, 1, &rule23},
{7852, 1, &rule22},
{7853, 1, &rule23},
{7854, 1, &rule22},
{7855, 1, &rule23},
{7856, 1, &rule22},
{7857, 1, &rule23},
{7858, 1, &rule22},
{7859, 1, &rule23},
{7860, 1, &rule22},
{7861, 1, &rule23},
{7862, 1, &rule22},
{7863, 1, &rule23},
{7864, 1, &rule22},
{7865, 1, &rule23},
{7866, 1, &rule22},
{7867, 1, &rule23},
{7868, 1, &rule22},
{7869, 1, &rule23},
{7870, 1, &rule22},
{7871, 1, &rule23},
{7872, 1, &rule22},
{7873, 1, &rule23},
{7874, 1, &rule22},
{7875, 1, &rule23},
{7876, 1, &rule22},
{7877, 1, &rule23},
{7878, 1, &rule22},
{7879, 1, &rule23},
{7880, 1, &rule22},
{7881, 1, &rule23},
{7882, 1, &rule22},
{7883, 1, &rule23},
{7884, 1, &rule22},
{7885, 1, &rule23},
{7886, 1, &rule22},
{7887, 1, &rule23},
{7888, 1, &rule22},
{7889, 1, &rule23},
{7890, 1, &rule22},
{7891, 1, &rule23},
{7892, 1, &rule22},
{7893, 1, &rule23},
{7894, 1, &rule22},
{7895, 1, &rule23},
{7896, 1, &rule22},
{7897, 1, &rule23},
{7898, 1, &rule22},
{7899, 1, &rule23},
{7900, 1, &rule22},
{7901, 1, &rule23},
{7902, 1, &rule22},
{7903, 1, &rule23},
{7904, 1, &rule22},
{7905, 1, &rule23},
{7906, 1, &rule22},
{7907, 1, &rule23},
{7908, 1, &rule22},
{7909, 1, &rule23},
{7910, 1, &rule22},
{7911, 1, &rule23},
{7912, 1, &rule22},
{7913, 1, &rule23},
{7914, 1, &rule22},
{7915, 1, &rule23},
{7916, 1, &rule22},
{7917, 1, &rule23},
{7918, 1, &rule22},
{7919, 1, &rule23},
{7920, 1, &rule22},
{7921, 1, &rule23},
{7922, 1, &rule22},
{7923, 1, &rule23},
{7924, 1, &rule22},
{7925, 1, &rule23},
{7926, 1, &rule22},
{7927, 1, &rule23},
{7928, 1, &rule22},
{7929, 1, &rule23},
{7930, 1, &rule22},
{7931, 1, &rule23},
{7932, 1, &rule22},
{7933, 1, &rule23},
{7934, 1, &rule22},
{7935, 1, &rule23},
{7936, 8, &rule143},
{7944, 8, &rule144},
{7952, 6, &rule143},
{7960, 6, &rule144},
{7968, 8, &rule143},
{7976, 8, &rule144},
{7984, 8, &rule143},
{7992, 8, &rule144},
{8000, 6, &rule143},
{8008, 6, &rule144},
{8017, 1, &rule143},
{8019, 1, &rule143},
{8021, 1, &rule143},
{8023, 1, &rule143},
{8025, 1, &rule144},
{8027, 1, &rule144},
{8029, 1, &rule144},
{8031, 1, &rule144},
{8032, 8, &rule143},
{8040, 8, &rule144},
{8048, 2, &rule145},
{8050, 4, &rule146},
{8054, 2, &rule147},
{8056, 2, &rule148},
{8058, 2, &rule149},
{8060, 2, &rule150},
{8064, 8, &rule143},
{8072, 8, &rule151},
{8080, 8, &rule143},
{8088, 8, &rule151},
{8096, 8, &rule143},
{8104, 8, &rule151},
{8112, 2, &rule143},
{8115, 1, &rule152},
{8120, 2, &rule144},
{8122, 2, &rule153},
{8124, 1, &rule154},
{8126, 1, &rule155},
{8131, 1, &rule152},
{8136, 4, &rule156},
{8140, 1, &rule154},
{8144, 2, &rule143},
{8152, 2, &rule144},
{8154, 2, &rule157},
{8160, 2, &rule143},
{8165, 1, &rule113},
{8168, 2, &rule144},
{8170, 2, &rule158},
{8172, 1, &rule117},
{8179, 1, &rule152},
{8184, 2, &rule159},
{8186, 2, &rule160},
{8188, 1, &rule154},
{8486, 1, &rule163},
{8490, 1, &rule164},
{8491, 1, &rule165},
{8498, 1, &rule166},
{8526, 1, &rule167},
{8544, 16, &rule168},
{8560, 16, &rule169},
{8579, 1, &rule22},
{8580, 1, &rule23},
{9398, 26, &rule170},
{9424, 26, &rule171},
{11264, 47, &rule122},
{11312, 47, &rule123},
{11360, 1, &rule22},
{11361, 1, &rule23},
{11362, 1, &rule172},
{11363, 1, &rule173},
{11364, 1, &rule174},
{11365, 1, &rule175},
{11366, 1, &rule176},
{11367, 1, &rule22},
{11368, 1, &rule23},
{11369, 1, &rule22},
{11370, 1, &rule23},
{11371, 1, &rule22},
{11372, 1, &rule23},
{11373, 1, &rule177},
{11374, 1, &rule178},
{11375, 1, &rule179},
{11376, 1, &rule180},
{11378, 1, &rule22},
{11379, 1, &rule23},
{11381, 1, &rule22},
{11382, 1, &rule23},
{11390, 2, &rule181},
{11392, 1, &rule22},
{11393, 1, &rule23},
{11394, 1, &rule22},
{11395, 1, &rule23},
{11396, 1, &rule22},
{11397, 1, &rule23},
{11398, 1, &rule22},
{11399, 1, &rule23},
{11400, 1, &rule22},
{11401, 1, &rule23},
{11402, 1, &rule22},
{11403, 1, &rule23},
{11404, 1, &rule22},
{11405, 1, &rule23},
{11406, 1, &rule22},
{11407, 1, &rule23},
{11408, 1, &rule22},
{11409, 1, &rule23},
{11410, 1, &rule22},
{11411, 1, &rule23},
{11412, 1, &rule22},
{11413, 1, &rule23},
{11414, 1, &rule22},
{11415, 1, &rule23},
{11416, 1, &rule22},
{11417, 1, &rule23},
{11418, 1, &rule22},
{11419, 1, &rule23},
{11420, 1, &rule22},
{11421, 1, &rule23},
{11422, 1, &rule22},
{11423, 1, &rule23},
{11424, 1, &rule22},
{11425, 1, &rule23},
{11426, 1, &rule22},
{11427, 1, &rule23},
{11428, 1, &rule22},
{11429, 1, &rule23},
{11430, 1, &rule22},
{11431, 1, &rule23},
{11432, 1, &rule22},
{11433, 1, &rule23},
{11434, 1, &rule22},
{11435, 1, &rule23},
{11436, 1, &rule22},
{11437, 1, &rule23},
{11438, 1, &rule22},
{11439, 1, &rule23},
{11440, 1, &rule22},
{11441, 1, &rule23},
{11442, 1, &rule22},
{11443, 1, &rule23},
{11444, 1, &rule22},
{11445, 1, &rule23},
{11446, 1, &rule22},
{11447, 1, &rule23},
{11448, 1, &rule22},
{11449, 1, &rule23},
{11450, 1, &rule22},
{11451, 1, &rule23},
{11452, 1, &rule22},
{11453, 1, &rule23},
{11454, 1, &rule22},
{11455, 1, &rule23},
{11456, 1, &rule22},
{11457, 1, &rule23},
{11458, 1, &rule22},
{11459, 1, &rule23},
{11460, 1, &rule22},
{11461, 1, &rule23},
{11462, 1, &rule22},
{11463, 1, &rule23},
{11464, 1, &rule22},
{11465, 1, &rule23},
{11466, 1, &rule22},
{11467, 1, &rule23},
{11468, 1, &rule22},
{11469, 1, &rule23},
{11470, 1, &rule22},
{11471, 1, &rule23},
{11472, 1, &rule22},
{11473, 1, &rule23},
{11474, 1, &rule22},
{11475, 1, &rule23},
{11476, 1, &rule22},
{11477, 1, &rule23},
{11478, 1, &rule22},
{11479, 1, &rule23},
{11480, 1, &rule22},
{11481, 1, &rule23},
{11482, 1, &rule22},
{11483, 1, &rule23},
{11484, 1, &rule22},
{11485, 1, &rule23},
{11486, 1, &rule22},
{11487, 1, &rule23},
{11488, 1, &rule22},
{11489, 1, &rule23},
{11490, 1, &rule22},
{11491, 1, &rule23},
{11499, 1, &rule22},
{11500, 1, &rule23},
{11501, 1, &rule22},
{11502, 1, &rule23},
{11506, 1, &rule22},
{11507, 1, &rule23},
{11520, 38, &rule182},
{11559, 1, &rule182},
{11565, 1, &rule182},
{42560, 1, &rule22},
{42561, 1, &rule23},
{42562, 1, &rule22},
{42563, 1, &rule23},
{42564, 1, &rule22},
{42565, 1, &rule23},
{42566, 1, &rule22},
{42567, 1, &rule23},
{42568, 1, &rule22},
{42569, 1, &rule23},
{42570, 1, &rule22},
{42571, 1, &rule23},
{42572, 1, &rule22},
{42573, 1, &rule23},
{42574, 1, &rule22},
{42575, 1, &rule23},
{42576, 1, &rule22},
{42577, 1, &rule23},
{42578, 1, &rule22},
{42579, 1, &rule23},
{42580, 1, &rule22},
{42581, 1, &rule23},
{42582, 1, &rule22},
{42583, 1, &rule23},
{42584, 1, &rule22},
{42585, 1, &rule23},
{42586, 1, &rule22},
{42587, 1, &rule23},
{42588, 1, &rule22},
{42589, 1, &rule23},
{42590, 1, &rule22},
{42591, 1, &rule23},
{42592, 1, &rule22},
{42593, 1, &rule23},
{42594, 1, &rule22},
{42595, 1, &rule23},
{42596, 1, &rule22},
{42597, 1, &rule23},
{42598, 1, &rule22},
{42599, 1, &rule23},
{42600, 1, &rule22},
{42601, 1, &rule23},
{42602, 1, &rule22},
{42603, 1, &rule23},
{42604, 1, &rule22},
{42605, 1, &rule23},
{42624, 1, &rule22},
{42625, 1, &rule23},
{42626, 1, &rule22},
{42627, 1, &rule23},
{42628, 1, &rule22},
{42629, 1, &rule23},
{42630, 1, &rule22},
{42631, 1, &rule23},
{42632, 1, &rule22},
{42633, 1, &rule23},
{42634, 1, &rule22},
{42635, 1, &rule23},
{42636, 1, &rule22},
{42637, 1, &rule23},
{42638, 1, &rule22},
{42639, 1, &rule23},
{42640, 1, &rule22},
{42641, 1, &rule23},
{42642, 1, &rule22},
{42643, 1, &rule23},
{42644, 1, &rule22},
{42645, 1, &rule23},
{42646, 1, &rule22},
{42647, 1, &rule23},
{42648, 1, &rule22},
{42649, 1, &rule23},
{42650, 1, &rule22},
{42651, 1, &rule23},
{42786, 1, &rule22},
{42787, 1, &rule23},
{42788, 1, &rule22},
{42789, 1, &rule23},
{42790, 1, &rule22},
{42791, 1, &rule23},
{42792, 1, &rule22},
{42793, 1, &rule23},
{42794, 1, &rule22},
{42795, 1, &rule23},
{42796, 1, &rule22},
{42797, 1, &rule23},
{42798, 1, &rule22},
{42799, 1, &rule23},
{42802, 1, &rule22},
{42803, 1, &rule23},
{42804, 1, &rule22},
{42805, 1, &rule23},
{42806, 1, &rule22},
{42807, 1, &rule23},
{42808, 1, &rule22},
{42809, 1, &rule23},
{42810, 1, &rule22},
{42811, 1, &rule23},
{42812, 1, &rule22},
{42813, 1, &rule23},
{42814, 1, &rule22},
{42815, 1, &rule23},
{42816, 1, &rule22},
{42817, 1, &rule23},
{42818, 1, &rule22},
{42819, 1, &rule23},
{42820, 1, &rule22},
{42821, 1, &rule23},
{42822, 1, &rule22},
{42823, 1, &rule23},
{42824, 1, &rule22},
{42825, 1, &rule23},
{42826, 1, &rule22},
{42827, 1, &rule23},
{42828, 1, &rule22},
{42829, 1, &rule23},
{42830, 1, &rule22},
{42831, 1, &rule23},
{42832, 1, &rule22},
{42833, 1, &rule23},
{42834, 1, &rule22},
{42835, 1, &rule23},
{42836, 1, &rule22},
{42837, 1, &rule23},
{42838, 1, &rule22},
{42839, 1, &rule23},
{42840, 1, &rule22},
{42841, 1, &rule23},
{42842, 1, &rule22},
{42843, 1, &rule23},
{42844, 1, &rule22},
{42845, 1, &rule23},
{42846, 1, &rule22},
{42847, 1, &rule23},
{42848, 1, &rule22},
{42849, 1, &rule23},
{42850, 1, &rule22},
{42851, 1, &rule23},
{42852, 1, &rule22},
{42853, 1, &rule23},
{42854, 1, &rule22},
{42855, 1, &rule23},
{42856, 1, &rule22},
{42857, 1, &rule23},
{42858, 1, &rule22},
{42859, 1, &rule23},
{42860, 1, &rule22},
{42861, 1, &rule23},
{42862, 1, &rule22},
{42863, 1, &rule23},
{42873, 1, &rule22},
{42874, 1, &rule23},
{42875, 1, &rule22},
{42876, 1, &rule23},
{42877, 1, &rule183},
{42878, 1, &rule22},
{42879, 1, &rule23},
{42880, 1, &rule22},
{42881, 1, &rule23},
{42882, 1, &rule22},
{42883, 1, &rule23},
{42884, 1, &rule22},
{42885, 1, &rule23},
{42886, 1, &rule22},
{42887, 1, &rule23},
{42891, 1, &rule22},
{42892, 1, &rule23},
{42893, 1, &rule184},
{42896, 1, &rule22},
{42897, 1, &rule23},
{42898, 1, &rule22},
{42899, 1, &rule23},
{42900, 1, &rule185},
{42902, 1, &rule22},
{42903, 1, &rule23},
{42904, 1, &rule22},
{42905, 1, &rule23},
{42906, 1, &rule22},
{42907, 1, &rule23},
{42908, 1, &rule22},
{42909, 1, &rule23},
{42910, 1, &rule22},
{42911, 1, &rule23},
{42912, 1, &rule22},
{42913, 1, &rule23},
{42914, 1, &rule22},
{42915, 1, &rule23},
{42916, 1, &rule22},
{42917, 1, &rule23},
{42918, 1, &rule22},
{42919, 1, &rule23},
{42920, 1, &rule22},
{42921, 1, &rule23},
{42922, 1, &rule186},
{42923, 1, &rule187},
{42924, 1, &rule188},
{42925, 1, &rule189},
{42926, 1, &rule186},
{42928, 1, &rule190},
{42929, 1, &rule191},
{42930, 1, &rule192},
{42931, 1, &rule193},
{42932, 1, &rule22},
{42933, 1, &rule23},
{42934, 1, &rule22},
{42935, 1, &rule23},
{42936, 1, &rule22},
{42937, 1, &rule23},
{42938, 1, &rule22},
{42939, 1, &rule23},
{42940, 1, &rule22},
{42941, 1, &rule23},
{42942, 1, &rule22},
{42943, 1, &rule23},
{42946, 1, &rule22},
{42947, 1, &rule23},
{42948, 1, &rule194},
{42949, 1, &rule195},
{42950, 1, &rule196},
{43859, 1, &rule197},
{43888, 80, &rule198},
{65313, 26, &rule9},
{65345, 26, &rule12},
{66560, 40, &rule201},
{66600, 40, &rule202},
{66736, 36, &rule201},
{66776, 36, &rule202},
{68736, 51, &rule97},
{68800, 51, &rule102},
{71840, 32, &rule9},
{71872, 32, &rule12},
{93760, 32, &rule9},
{93792, 32, &rule12},
{125184, 34, &rule203},
{125218, 34, &rule204}
};
static const struct _charblock_ spacechars[]={
{32, 1, &rule1},
{160, 1, &rule1},
{5760, 1, &rule1},
{8192, 11, &rule1},
{8239, 1, &rule1},
{8287, 1, &rule1},
{12288, 1, &rule1}
};
/*
Obtain the reference to character rule by doing
binary search over the specified array of blocks.
To make checkattr shorter, the address of
nullrule is returned if the search fails:
this rule defines no category and no conversion
distances. The compare function returns 0 when
key->start is within the block. Otherwise
result of comparison of key->start and start of the
current block is returned as usual.
*/
static const struct _convrule_ nullrule={0,NUMCAT_CN,0,0,0,0};
static int blkcmp(const void *vk,const void *vb)
{
const struct _charblock_ *key,*cur;
key=vk;
cur=vb;
if((key->start>=cur->start)&&(key->start<(cur->start+cur->length)))
{
return 0;
}
if(key->start>cur->start) return 1;
return -1;
}
static const struct _convrule_ *getrule(
const struct _charblock_ *blocks,
int numblocks,
int unichar)
{
struct _charblock_ key={unichar,1,(void *)0};
struct _charblock_ *cb=bsearch(&key,blocks,numblocks,sizeof(key),blkcmp);
if(cb==(void *)0) return &nullrule;
return cb->rule;
}
/*
Check whether a character (internal code) has certain attributes.
Attributes (category flags) may be ORed. The function ANDs
character category flags and the mask and returns the result.
If the character belongs to one of the categories requested,
the result will be nonzero.
*/
inline static int checkattr(int c,unsigned int catmask)
{
return (catmask & (getrule(allchars,(c<256)?NUM_LAT1BLOCKS:NUM_BLOCKS,c)->category));
}
inline static int checkattr_s(int c,unsigned int catmask)
{
return (catmask & (getrule(spacechars,NUM_SPACEBLOCKS,c)->category));
}
/*
Define predicate functions for some combinations of categories.
*/
#define unipred(p,m) \
HsInt p(HsInt c) \
{ \
return checkattr(c,m); \
}
#define unipred_s(p,m) \
HsInt p(HsInt c) \
{ \
return checkattr_s(c,m); \
}
/*
Make these rules as close to Hugs as possible.
*/
unipred(u_iswcntrl,GENCAT_CC)
unipred(u_iswprint, (GENCAT_MC | GENCAT_NO | GENCAT_SK | GENCAT_ME | GENCAT_ND | GENCAT_PO | GENCAT_LT | GENCAT_PC | GENCAT_SM | GENCAT_ZS | GENCAT_LU | GENCAT_PD | GENCAT_SO | GENCAT_PE | GENCAT_PF | GENCAT_PS | GENCAT_SC | GENCAT_LL | GENCAT_LM | GENCAT_PI | GENCAT_NL | GENCAT_MN | GENCAT_LO))
unipred_s(u_iswspace,GENCAT_ZS)
unipred(u_iswupper,(GENCAT_LU|GENCAT_LT))
unipred(u_iswlower,GENCAT_LL)
unipred(u_iswalpha,(GENCAT_LL|GENCAT_LU|GENCAT_LT|GENCAT_LM|GENCAT_LO))
unipred(u_iswdigit,GENCAT_ND)
unipred(u_iswalnum,(GENCAT_LT|GENCAT_LU|GENCAT_LL|GENCAT_LM|GENCAT_LO|
GENCAT_NO|GENCAT_ND|GENCAT_NL))
#define caseconv(p,to) \
HsInt p(HsInt c) \
{ \
const struct _convrule_ *rule=getrule(convchars,NUM_CONVBLOCKS,c);\
if(rule==&nullrule) return c;\
return c+rule->to;\
}
caseconv(u_towupper,updist)
caseconv(u_towlower,lowdist)
caseconv(u_towtitle,titledist)
HsInt u_gencat(HsInt c)
{
return getrule(allchars,NUM_BLOCKS,c)->catnumber;
}