/* generated automatically by mkrunetype.c from UnicodeData-6.0.0.txt */

static Rune __isspacer[] = {
	0x0009, 0x000d,
	0x0020, 0x0020,
	0x0085, 0x0085,
	0x00a0, 0x00a0,
	0x1680, 0x1680,
	0x180e, 0x180e,
	0x2000, 0x200a,
	0x2028, 0x2029,
	0x202f, 0x202f,
	0x205f, 0x205f,
	0x3000, 0x3000,
	0xfeff, 0xfeff,
};

int
isspacerune(Rune c)
{
	Rune *p;

	p = rbsearch(c, __isspacer, nelem(__isspacer)/2, 2);
	if(p && c >= p[0] && c <= p[1])
		return 1;
	return 0;
}

static Rune __isdigitr[] = {
	0x0030, 0x0039,
	0x0660, 0x0669,
	0x06f0, 0x06f9,
	0x07c0, 0x07c9,
	0x0966, 0x096f,
	0x09e6, 0x09ef,
	0x0a66, 0x0a6f,
	0x0ae6, 0x0aef,
	0x0b66, 0x0b6f,
	0x0be6, 0x0bef,
	0x0c66, 0x0c6f,
	0x0ce6, 0x0cef,
	0x0d66, 0x0d6f,
	0x0e50, 0x0e59,
	0x0ed0, 0x0ed9,
	0x0f20, 0x0f29,
	0x1040, 0x1049,
	0x1090, 0x1099,
	0x17e0, 0x17e9,
	0x1810, 0x1819,
	0x1946, 0x194f,
	0x19d0, 0x19d9,
	0x1a80, 0x1a89,
	0x1a90, 0x1a99,
	0x1b50, 0x1b59,
	0x1bb0, 0x1bb9,
	0x1c40, 0x1c49,
	0x1c50, 0x1c59,
	0xa620, 0xa629,
	0xa8d0, 0xa8d9,
	0xa900, 0xa909,
	0xa9d0, 0xa9d9,
	0xaa50, 0xaa59,
	0xabf0, 0xabf9,
	0xff10, 0xff19,
	0x104a0, 0x104a9,
	0x11066, 0x1106f,
	0x1d7ce, 0x1d7ff,
};

int
isdigitrune(Rune c)
{
	Rune *p;

	p = rbsearch(c, __isdigitr, nelem(__isdigitr)/2, 2);
	if(p && c >= p[0] && c <= p[1])
		return 1;
	return 0;
}

static Rune __isalphar[] = {
	0x0041, 0x005a,
	0x0061, 0x007a,
	0x00c0, 0x00d6,
	0x00d8, 0x00f6,
	0x00f8, 0x02c1,
	0x02c6, 0x02d1,
	0x02e0, 0x02e4,
	0x0370, 0x0374,
	0x0376, 0x0377,
	0x037a, 0x037d,
	0x0388, 0x038a,
	0x038e, 0x03a1,
	0x03a3, 0x03f5,
	0x03f7, 0x0481,
	0x048a, 0x0527,
	0x0531, 0x0556,
	0x0561, 0x0587,
	0x05d0, 0x05ea,
	0x05f0, 0x05f2,
	0x0620, 0x064a,
	0x066e, 0x066f,
	0x0671, 0x06d3,
	0x06e5, 0x06e6,
	0x06ee, 0x06ef,
	0x06fa, 0x06fc,
	0x0712, 0x072f,
	0x074d, 0x07a5,
	0x07ca, 0x07ea,
	0x07f4, 0x07f5,
	0x0800, 0x0815,
	0x0840, 0x0858,
	0x0904, 0x0939,
	0x0958, 0x0961,
	0x0971, 0x0977,
	0x0979, 0x097f,
	0x0985, 0x098c,
	0x098f, 0x0990,
	0x0993, 0x09a8,
	0x09aa, 0x09b0,
	0x09b6, 0x09b9,
	0x09dc, 0x09dd,
	0x09df, 0x09e1,
	0x09f0, 0x09f1,
	0x0a05, 0x0a0a,
	0x0a0f, 0x0a10,
	0x0a13, 0x0a28,
	0x0a2a, 0x0a30,
	0x0a32, 0x0a33,
	0x0a35, 0x0a36,
	0x0a38, 0x0a39,
	0x0a59, 0x0a5c,
	0x0a72, 0x0a74,
	0x0a85, 0x0a8d,
	0x0a8f, 0x0a91,
	0x0a93, 0x0aa8,
	0x0aaa, 0x0ab0,
	0x0ab2, 0x0ab3,
	0x0ab5, 0x0ab9,
	0x0ae0, 0x0ae1,
	0x0b05, 0x0b0c,
	0x0b0f, 0x0b10,
	0x0b13, 0x0b28,
	0x0b2a, 0x0b30,
	0x0b32, 0x0b33,
	0x0b35, 0x0b39,
	0x0b5c, 0x0b5d,
	0x0b5f, 0x0b61,
	0x0b85, 0x0b8a,
	0x0b8e, 0x0b90,
	0x0b92, 0x0b95,
	0x0b99, 0x0b9a,
	0x0b9e, 0x0b9f,
	0x0ba3, 0x0ba4,
	0x0ba8, 0x0baa,
	0x0bae, 0x0bb9,
	0x0c05, 0x0c0c,
	0x0c0e, 0x0c10,
	0x0c12, 0x0c28,
	0x0c2a, 0x0c33,
	0x0c35, 0x0c39,
	0x0c58, 0x0c59,
	0x0c60, 0x0c61,
	0x0c85, 0x0c8c,
	0x0c8e, 0x0c90,
	0x0c92, 0x0ca8,
	0x0caa, 0x0cb3,
	0x0cb5, 0x0cb9,
	0x0ce0, 0x0ce1,
	0x0cf1, 0x0cf2,
	0x0d05, 0x0d0c,
	0x0d0e, 0x0d10,
	0x0d12, 0x0d3a,
	0x0d60, 0x0d61,
	0x0d7a, 0x0d7f,
	0x0d85, 0x0d96,
	0x0d9a, 0x0db1,
	0x0db3, 0x0dbb,
	0x0dc0, 0x0dc6,
	0x0e01, 0x0e30,
	0x0e32, 0x0e33,
	0x0e40, 0x0e46,
	0x0e81, 0x0e82,
	0x0e87, 0x0e88,
	0x0e94, 0x0e97,
	0x0e99, 0x0e9f,
	0x0ea1, 0x0ea3,
	0x0eaa, 0x0eab,
	0x0ead, 0x0eb0,
	0x0eb2, 0x0eb3,
	0x0ec0, 0x0ec4,
	0x0edc, 0x0edd,
	0x0f40, 0x0f47,
	0x0f49, 0x0f6c,
	0x0f88, 0x0f8c,
	0x1000, 0x102a,
	0x1050, 0x1055,
	0x105a, 0x105d,
	0x1065, 0x1066,
	0x106e, 0x1070,
	0x1075, 0x1081,
	0x10a0, 0x10c5,
	0x10d0, 0x10fa,
	0x1100, 0x1248,
	0x124a, 0x124d,
	0x1250, 0x1256,
	0x125a, 0x125d,
	0x1260, 0x1288,
	0x128a, 0x128d,
	0x1290, 0x12b0,
	0x12b2, 0x12b5,
	0x12b8, 0x12be,
	0x12c2, 0x12c5,
	0x12c8, 0x12d6,
	0x12d8, 0x1310,
	0x1312, 0x1315,
	0x1318, 0x135a,
	0x1380, 0x138f,
	0x13a0, 0x13f4,
	0x1401, 0x166c,
	0x166f, 0x167f,
	0x1681, 0x169a,
	0x16a0, 0x16ea,
	0x1700, 0x170c,
	0x170e, 0x1711,
	0x1720, 0x1731,
	0x1740, 0x1751,
	0x1760, 0x176c,
	0x176e, 0x1770,
	0x1780, 0x17b3,
	0x1820, 0x1877,
	0x1880, 0x18a8,
	0x18b0, 0x18f5,
	0x1900, 0x191c,
	0x1950, 0x196d,
	0x1970, 0x1974,
	0x1980, 0x19ab,
	0x19c1, 0x19c7,
	0x1a00, 0x1a16,
	0x1a20, 0x1a54,
	0x1b05, 0x1b33,
	0x1b45, 0x1b4b,
	0x1b83, 0x1ba0,
	0x1bae, 0x1baf,
	0x1bc0, 0x1be5,
	0x1c00, 0x1c23,
	0x1c4d, 0x1c4f,
	0x1c5a, 0x1c7d,
	0x1ce9, 0x1cec,
	0x1cee, 0x1cf1,
	0x1d00, 0x1dbf,
	0x1e00, 0x1f15,
	0x1f18, 0x1f1d,
	0x1f20, 0x1f45,
	0x1f48, 0x1f4d,
	0x1f50, 0x1f57,
	0x1f5f, 0x1f7d,
	0x1f80, 0x1fb4,
	0x1fb6, 0x1fbc,
	0x1fc2, 0x1fc4,
	0x1fc6, 0x1fcc,
	0x1fd0, 0x1fd3,
	0x1fd6, 0x1fdb,
	0x1fe0, 0x1fec,
	0x1ff2, 0x1ff4,
	0x1ff6, 0x1ffc,
	0x2090, 0x209c,
	0x210a, 0x2113,
	0x2119, 0x211d,
	0x212a, 0x212d,
	0x212f, 0x2139,
	0x213c, 0x213f,
	0x2145, 0x2149,
	0x2183, 0x2184,
	0x2c00, 0x2c2e,
	0x2c30, 0x2c5e,
	0x2c60, 0x2ce4,
	0x2ceb, 0x2cee,
	0x2d00, 0x2d25,
	0x2d30, 0x2d65,
	0x2d80, 0x2d96,
	0x2da0, 0x2da6,
	0x2da8, 0x2dae,
	0x2db0, 0x2db6,
	0x2db8, 0x2dbe,
	0x2dc0, 0x2dc6,
	0x2dc8, 0x2dce,
	0x2dd0, 0x2dd6,
	0x2dd8, 0x2dde,
	0x3005, 0x3006,
	0x3031, 0x3035,
	0x303b, 0x303c,
	0x3041, 0x3096,
	0x309d, 0x309f,
	0x30a1, 0x30fa,
	0x30fc, 0x30ff,
	0x3105, 0x312d,
	0x3131, 0x318e,
	0x31a0, 0x31ba,
	0x31f0, 0x31ff,
	0x3400, 0x4db5,
	0x4e00, 0x9fcb,
	0xa000, 0xa48c,
	0xa4d0, 0xa4fd,
	0xa500, 0xa60c,
	0xa610, 0xa61f,
	0xa62a, 0xa62b,
	0xa640, 0xa66e,
	0xa67f, 0xa697,
	0xa6a0, 0xa6e5,
	0xa717, 0xa71f,
	0xa722, 0xa788,
	0xa78b, 0xa78e,
	0xa790, 0xa791,
	0xa7a0, 0xa7a9,
	0xa7fa, 0xa801,
	0xa803, 0xa805,
	0xa807, 0xa80a,
	0xa80c, 0xa822,
	0xa840, 0xa873,
	0xa882, 0xa8b3,
	0xa8f2, 0xa8f7,
	0xa90a, 0xa925,
	0xa930, 0xa946,
	0xa960, 0xa97c,
	0xa984, 0xa9b2,
	0xaa00, 0xaa28,
	0xaa40, 0xaa42,
	0xaa44, 0xaa4b,
	0xaa60, 0xaa76,
	0xaa80, 0xaaaf,
	0xaab5, 0xaab6,
	0xaab9, 0xaabd,
	0xaadb, 0xaadd,
	0xab01, 0xab06,
	0xab09, 0xab0e,
	0xab11, 0xab16,
	0xab20, 0xab26,
	0xab28, 0xab2e,
	0xabc0, 0xabe2,
	0xac00, 0xd7a3,
	0xd7b0, 0xd7c6,
	0xd7cb, 0xd7fb,
	0xf900, 0xfa2d,
	0xfa30, 0xfa6d,
	0xfa70, 0xfad9,
	0xfb00, 0xfb06,
	0xfb13, 0xfb17,
	0xfb1f, 0xfb28,
	0xfb2a, 0xfb36,
	0xfb38, 0xfb3c,
	0xfb40, 0xfb41,
	0xfb43, 0xfb44,
	0xfb46, 0xfbb1,
	0xfbd3, 0xfd3d,
	0xfd50, 0xfd8f,
	0xfd92, 0xfdc7,
	0xfdf0, 0xfdfb,
	0xfe70, 0xfe74,
	0xfe76, 0xfefc,
	0xff21, 0xff3a,
	0xff41, 0xff5a,
	0xff66, 0xffbe,
	0xffc2, 0xffc7,
	0xffca, 0xffcf,
	0xffd2, 0xffd7,
	0xffda, 0xffdc,
	0x10000, 0x1000b,
	0x1000d, 0x10026,
	0x10028, 0x1003a,
	0x1003c, 0x1003d,
	0x1003f, 0x1004d,
	0x10050, 0x1005d,
	0x10080, 0x100fa,
	0x10280, 0x1029c,
	0x102a0, 0x102d0,
	0x10300, 0x1031e,
	0x10330, 0x10340,
	0x10342, 0x10349,
	0x10380, 0x1039d,
	0x103a0, 0x103c3,
	0x103c8, 0x103cf,
	0x10400, 0x1049d,
	0x10800, 0x10805,
	0x1080a, 0x10835,
	0x10837, 0x10838,
	0x1083f, 0x10855,
	0x10900, 0x10915,
	0x10920, 0x10939,
	0x10a10, 0x10a13,
	0x10a15, 0x10a17,
	0x10a19, 0x10a33,
	0x10a60, 0x10a7c,
	0x10b00, 0x10b35,
	0x10b40, 0x10b55,
	0x10b60, 0x10b72,
	0x10c00, 0x10c48,
	0x11003, 0x11037,
	0x11083, 0x110af,
	0x12000, 0x1236e,
	0x13000, 0x1342e,
	0x16800, 0x16a38,
	0x1b000, 0x1b001,
	0x1d400, 0x1d454,
	0x1d456, 0x1d49c,
	0x1d49e, 0x1d49f,
	0x1d4a5, 0x1d4a6,
	0x1d4a9, 0x1d4ac,
	0x1d4ae, 0x1d4b9,
	0x1d4bd, 0x1d4c3,
	0x1d4c5, 0x1d505,
	0x1d507, 0x1d50a,
	0x1d50d, 0x1d514,
	0x1d516, 0x1d51c,
	0x1d51e, 0x1d539,
	0x1d53b, 0x1d53e,
	0x1d540, 0x1d544,
	0x1d54a, 0x1d550,
	0x1d552, 0x1d6a5,
	0x1d6a8, 0x1d6c0,
	0x1d6c2, 0x1d6da,
	0x1d6dc, 0x1d6fa,
	0x1d6fc, 0x1d714,
	0x1d716, 0x1d734,
	0x1d736, 0x1d74e,
	0x1d750, 0x1d76e,
	0x1d770, 0x1d788,
	0x1d78a, 0x1d7a8,
	0x1d7aa, 0x1d7c2,
	0x1d7c4, 0x1d7cb,
	0x20000, 0x2a6d6,
	0x2a700, 0x2b734,
	0x2b740, 0x2b81d,
	0x2f800, 0x2fa1d,
};

static Rune __isalphas[] = {
	0x00aa,
	0x00b5,
	0x00ba,
	0x02ec,
	0x02ee,
	0x0386,
	0x038c,
	0x0559,
	0x06d5,
	0x06ff,
	0x0710,
	0x07b1,
	0x07fa,
	0x081a,
	0x0824,
	0x0828,
	0x093d,
	0x0950,
	0x09b2,
	0x09bd,
	0x09ce,
	0x0a5e,
	0x0abd,
	0x0ad0,
	0x0b3d,
	0x0b71,
	0x0b83,
	0x0b9c,
	0x0bd0,
	0x0c3d,
	0x0cbd,
	0x0cde,
	0x0d3d,
	0x0d4e,
	0x0dbd,
	0x0e84,
	0x0e8a,
	0x0e8d,
	0x0ea5,
	0x0ea7,
	0x0ebd,
	0x0ec6,
	0x0f00,
	0x103f,
	0x1061,
	0x108e,
	0x10fc,
	0x1258,
	0x12c0,
	0x17d7,
	0x17dc,
	0x18aa,
	0x1aa7,
	0x1f59,
	0x1f5b,
	0x1f5d,
	0x1fbe,
	0x2071,
	0x207f,
	0x2102,
	0x2107,
	0x2115,
	0x2124,
	0x2126,
	0x2128,
	0x214e,
	0x2d6f,
	0x2e2f,
	0xa8fb,
	0xa9cf,
	0xaa7a,
	0xaab1,
	0xaac0,
	0xaac2,
	0xfb1d,
	0xfb3e,
	0x10808,
	0x1083c,
	0x10a00,
	0x1d4a2,
	0x1d4bb,
	0x1d546,
};

int
isalpharune(Rune c)
{
	Rune *p;

	p = rbsearch(c, __isalphar, nelem(__isalphar)/2, 2);
	if(p && c >= p[0] && c <= p[1])
		return 1;
	p = rbsearch(c, __isalphas, nelem(__isalphas), 1);
	if(p && c == p[0])
		return 1;
	return 0;
}

static Rune __isupperr[] = {
	0x0041, 0x005a,
	0x00c0, 0x00d6,
	0x00d8, 0x00de,
	0x0178, 0x0179,
	0x0181, 0x0182,
	0x0186, 0x0187,
	0x0189, 0x018b,
	0x018e, 0x0191,
	0x0193, 0x0194,
	0x0196, 0x0198,
	0x019c, 0x019d,
	0x019f, 0x01a0,
	0x01a6, 0x01a7,
	0x01ae, 0x01af,
	0x01b1, 0x01b3,
	0x01b7, 0x01b8,
	0x01f6, 0x01f8,
	0x023a, 0x023b,
	0x023d, 0x023e,
	0x0243, 0x0246,
	0x0388, 0x038a,
	0x038e, 0x038f,
	0x0391, 0x03a1,
	0x03a3, 0x03ab,
	0x03d2, 0x03d4,
	0x03f9, 0x03fa,
	0x03fd, 0x042f,
	0x04c0, 0x04c1,
	0x0531, 0x0556,
	0x10a0, 0x10c5,
	0x1f08, 0x1f0f,
	0x1f18, 0x1f1d,
	0x1f28, 0x1f2f,
	0x1f38, 0x1f3f,
	0x1f48, 0x1f4d,
	0x1f68, 0x1f6f,
	0x1f88, 0x1f8f,
	0x1f98, 0x1f9f,
	0x1fa8, 0x1faf,
	0x1fb8, 0x1fbc,
	0x1fc8, 0x1fcc,
	0x1fd8, 0x1fdb,
	0x1fe8, 0x1fec,
	0x1ff8, 0x1ffc,
	0x210b, 0x210d,
	0x2110, 0x2112,
	0x2119, 0x211d,
	0x212a, 0x212d,
	0x2130, 0x2133,
	0x213e, 0x213f,
	0x2160, 0x216f,
	0x24b6, 0x24cf,
	0x2c00, 0x2c2e,
	0x2c62, 0x2c64,
	0x2c6d, 0x2c70,
	0x2c7e, 0x2c80,
	0xa77d, 0xa77e,
	0xff21, 0xff3a,
	0x10400, 0x10427,
	0x1d400, 0x1d419,
	0x1d434, 0x1d44d,
	0x1d468, 0x1d481,
	0x1d49e, 0x1d49f,
	0x1d4a5, 0x1d4a6,
	0x1d4a9, 0x1d4ac,
	0x1d4ae, 0x1d4b5,
	0x1d4d0, 0x1d4e9,
	0x1d504, 0x1d505,
	0x1d507, 0x1d50a,
	0x1d50d, 0x1d514,
	0x1d516, 0x1d51c,
	0x1d538, 0x1d539,
	0x1d53b, 0x1d53e,
	0x1d540, 0x1d544,
	0x1d54a, 0x1d550,
	0x1d56c, 0x1d585,
	0x1d5a0, 0x1d5b9,
	0x1d5d4, 0x1d5ed,
	0x1d608, 0x1d621,
	0x1d63c, 0x1d655,
	0x1d670, 0x1d689,
	0x1d6a8, 0x1d6c0,
	0x1d6e2, 0x1d6fa,
	0x1d71c, 0x1d734,
	0x1d756, 0x1d76e,
	0x1d790, 0x1d7a8,
};

static Rune __isupperp[] = {
	0x0100, 0x0136,
	0x0139, 0x0147,
	0x014a, 0x0176,
	0x017b, 0x017d,
	0x01a2, 0x01a4,
	0x01cd, 0x01db,
	0x01de, 0x01ee,
	0x01fa, 0x0232,
	0x0248, 0x024e,
	0x0370, 0x0372,
	0x03d8, 0x03ee,
	0x0460, 0x0480,
	0x048a, 0x04be,
	0x04c3, 0x04cd,
	0x04d0, 0x0526,
	0x1e00, 0x1e94,
	0x1e9e, 0x1efe,
	0x1f59, 0x1f5f,
	0x2124, 0x2128,
	0x2c67, 0x2c6b,
	0x2c82, 0x2ce2,
	0x2ceb, 0x2ced,
	0xa640, 0xa66c,
	0xa680, 0xa696,
	0xa722, 0xa72e,
	0xa732, 0xa76e,
	0xa779, 0xa77b,
	0xa780, 0xa786,
	0xa78b, 0xa78d,
	0xa7a0, 0xa7a8,
};

static Rune __isuppers[] = {
	0x0184,
	0x01a9,
	0x01ac,
	0x01b5,
	0x01bc,
	0x01c4,
	0x01c7,
	0x01ca,
	0x01f1,
	0x01f4,
	0x0241,
	0x0376,
	0x0386,
	0x038c,
	0x03cf,
	0x03f4,
	0x03f7,
	0x2102,
	0x2107,
	0x2115,
	0x2145,
	0x2183,
	0x2c60,
	0x2c72,
	0x2c75,
	0xa790,
	0x1d49c,
	0x1d4a2,
	0x1d546,
	0x1d7ca,
};

int
isupperrune(Rune c)
{
	Rune *p;

	p = rbsearch(c, __isupperr, nelem(__isupperr)/2, 2);
	if(p && c >= p[0] && c <= p[1])
		return 1;
	p = rbsearch(c, __isupperp, nelem(__isupperp)/2, 2);
	if(p && c >= p[0] && c <= p[1] && !((c - p[0]) & 1))
		return 1;
	p = rbsearch(c, __isuppers, nelem(__isuppers), 1);
	if(p && c == p[0])
		return 1;
	return 0;
}

static Rune __islowerr[] = {
	0x0061, 0x007a,
	0x00df, 0x00f6,
	0x00f8, 0x00ff,
	0x0137, 0x0138,
	0x0148, 0x0149,
	0x017e, 0x0180,
	0x018c, 0x018d,
	0x0199, 0x019b,
	0x01aa, 0x01ab,
	0x01b9, 0x01ba,
	0x01bd, 0x01bf,
	0x01dc, 0x01dd,
	0x01ef, 0x01f0,
	0x0233, 0x0239,
	0x023f, 0x0240,
	0x024f, 0x0293,
	0x0295, 0x02af,
	0x037b, 0x037d,
	0x03ac, 0x03ce,
	0x03d0, 0x03d1,
	0x03d5, 0x03d7,
	0x03ef, 0x03f3,
	0x03fb, 0x03fc,
	0x0430, 0x045f,
	0x04ce, 0x04cf,
	0x0561, 0x0587,
	0x1d00, 0x1d2b,
	0x1d62, 0x1d77,
	0x1d79, 0x1d9a,
	0x1e95, 0x1e9d,
	0x1eff, 0x1f07,
	0x1f10, 0x1f15,
	0x1f20, 0x1f27,
	0x1f30, 0x1f37,
	0x1f40, 0x1f45,
	0x1f50, 0x1f57,
	0x1f60, 0x1f67,
	0x1f70, 0x1f7d,
	0x1f80, 0x1f87,
	0x1f90, 0x1f97,
	0x1fa0, 0x1fa7,
	0x1fb0, 0x1fb4,
	0x1fb6, 0x1fb7,
	0x1fc2, 0x1fc4,
	0x1fc6, 0x1fc7,
	0x1fd0, 0x1fd3,
	0x1fd6, 0x1fd7,
	0x1fe0, 0x1fe7,
	0x1ff2, 0x1ff4,
	0x1ff6, 0x1ff7,
	0x210e, 0x210f,
	0x213c, 0x213d,
	0x2146, 0x2149,
	0x2170, 0x217f,
	0x24d0, 0x24e9,
	0x2c30, 0x2c5e,
	0x2c65, 0x2c66,
	0x2c73, 0x2c74,
	0x2c76, 0x2c7c,
	0x2ce3, 0x2ce4,
	0x2d00, 0x2d25,
	0xa72f, 0xa731,
	0xa771, 0xa778,
	0xfb00, 0xfb06,
	0xfb13, 0xfb17,
	0xff41, 0xff5a,
	0x10428, 0x1044f,
	0x1d41a, 0x1d433,
	0x1d44e, 0x1d454,
	0x1d456, 0x1d467,
	0x1d482, 0x1d49b,
	0x1d4b6, 0x1d4b9,
	0x1d4bd, 0x1d4c3,
	0x1d4c5, 0x1d4cf,
	0x1d4ea, 0x1d503,
	0x1d51e, 0x1d537,
	0x1d552, 0x1d56b,
	0x1d586, 0x1d59f,
	0x1d5ba, 0x1d5d3,
	0x1d5ee, 0x1d607,
	0x1d622, 0x1d63b,
	0x1d656, 0x1d66f,
	0x1d68a, 0x1d6a5,
	0x1d6c2, 0x1d6da,
	0x1d6dc, 0x1d6e1,
	0x1d6fc, 0x1d714,
	0x1d716, 0x1d71b,
	0x1d736, 0x1d74e,
	0x1d750, 0x1d755,
	0x1d770, 0x1d788,
	0x1d78a, 0x1d78f,
	0x1d7aa, 0x1d7c2,
	0x1d7c4, 0x1d7c9,
};

static Rune __islowerp[] = {
	0x0101, 0x0135,
	0x013a, 0x0146,
	0x014b, 0x0177,
	0x017a, 0x017c,
	0x0183, 0x0185,
	0x01a1, 0x01a5,
	0x01b4, 0x01b6,
	0x01cc, 0x01da,
	0x01df, 0x01ed,
	0x01f3, 0x01f5,
	0x01f9, 0x0231,
	0x0247, 0x024d,
	0x0371, 0x0373,
	0x03d9, 0x03ed,
	0x0461, 0x0481,
	0x048b, 0x04bf,
	0x04c2, 0x04cc,
	0x04d1, 0x0527,
	0x1e01, 0x1e93,
	0x1e9f, 0x1efd,
	0x2c68, 0x2c6c,
	0x2c81, 0x2ce1,
	0x2cec, 0x2cee,
	0xa641, 0xa66d,
	0xa681, 0xa697,
	0xa723, 0xa72d,
	0xa733, 0xa76f,
	0xa77a, 0xa77c,
	0xa77f, 0xa787,
	0xa78c, 0xa78e,
	0xa7a1, 0xa7a9,
};

static Rune __islowers[] = {
	0x00aa,
	0x00b5,
	0x00ba,
	0x0188,
	0x0192,
	0x0195,
	0x019e,
	0x01a8,
	0x01ad,
	0x01b0,
	0x01c6,
	0x01c9,
	0x023c,
	0x0242,
	0x0377,
	0x0390,
	0x03f5,
	0x03f8,
	0x1fbe,
	0x210a,
	0x2113,
	0x212f,
	0x2134,
	0x2139,
	0x214e,
	0x2184,
	0x2c61,
	0x2c71,
	0xa791,
	0xa7fa,
	0x1d4bb,
	0x1d7cb,
};

int
islowerrune(Rune c)
{
	Rune *p;

	p = rbsearch(c, __islowerr, nelem(__islowerr)/2, 2);
	if(p && c >= p[0] && c <= p[1])
		return 1;
	p = rbsearch(c, __islowerp, nelem(__islowerp)/2, 2);
	if(p && c >= p[0] && c <= p[1] && !((c - p[0]) & 1))
		return 1;
	p = rbsearch(c, __islowers, nelem(__islowers), 1);
	if(p && c == p[0])
		return 1;
	return 0;
}

static Rune __istitler[] = {
	0x0041, 0x005a,
	0x00c0, 0x00d6,
	0x00d8, 0x00de,
	0x0178, 0x0179,
	0x0181, 0x0182,
	0x0186, 0x0187,
	0x0189, 0x018b,
	0x018e, 0x0191,
	0x0193, 0x0194,
	0x0196, 0x0198,
	0x019c, 0x019d,
	0x019f, 0x01a0,
	0x01a6, 0x01a7,
	0x01ae, 0x01af,
	0x01b1, 0x01b3,
	0x01b7, 0x01b8,
	0x01f6, 0x01f8,
	0x023a, 0x023b,
	0x023d, 0x023e,
	0x0243, 0x0246,
	0x0388, 0x038a,
	0x038e, 0x038f,
	0x0391, 0x03a1,
	0x03a3, 0x03ab,
	0x03f9, 0x03fa,
	0x03fd, 0x042f,
	0x04c0, 0x04c1,
	0x0531, 0x0556,
	0x10a0, 0x10c5,
	0x1f08, 0x1f0f,
	0x1f18, 0x1f1d,
	0x1f28, 0x1f2f,
	0x1f38, 0x1f3f,
	0x1f48, 0x1f4d,
	0x1f68, 0x1f6f,
	0x1f88, 0x1f8f,
	0x1f98, 0x1f9f,
	0x1fa8, 0x1faf,
	0x1fb8, 0x1fbc,
	0x1fc8, 0x1fcc,
	0x1fd8, 0x1fdb,
	0x1fe8, 0x1fec,
	0x1ff8, 0x1ffc,
	0x2160, 0x216f,
	0x24b6, 0x24cf,
	0x2c00, 0x2c2e,
	0x2c62, 0x2c64,
	0x2c6d, 0x2c70,
	0x2c7e, 0x2c80,
	0xa77d, 0xa77e,
	0xff21, 0xff3a,
	0x10400, 0x10427,
};

static Rune __istitlep[] = {
	0x0100, 0x012e,
	0x0132, 0x0136,
	0x0139, 0x0147,
	0x014a, 0x0176,
	0x017b, 0x017d,
	0x01a2, 0x01a4,
	0x01cb, 0x01db,
	0x01de, 0x01ee,
	0x01f2, 0x01f4,
	0x01fa, 0x0232,
	0x0248, 0x024e,
	0x0370, 0x0372,
	0x03d8, 0x03ee,
	0x0460, 0x0480,
	0x048a, 0x04be,
	0x04c3, 0x04cd,
	0x04d0, 0x0526,
	0x1e00, 0x1e94,
	0x1ea0, 0x1efe,
	0x1f59, 0x1f5f,
	0x2c67, 0x2c6b,
	0x2c82, 0x2ce2,
	0x2ceb, 0x2ced,
	0xa640, 0xa66c,
	0xa680, 0xa696,
	0xa722, 0xa72e,
	0xa732, 0xa76e,
	0xa779, 0xa77b,
	0xa780, 0xa786,
	0xa78b, 0xa78d,
	0xa7a0, 0xa7a8,
};

static Rune __istitles[] = {
	0x0184,
	0x01a9,
	0x01ac,
	0x01b5,
	0x01bc,
	0x01c5,
	0x01c8,
	0x0241,
	0x0376,
	0x0386,
	0x038c,
	0x03cf,
	0x03f7,
	0x2132,
	0x2183,
	0x2c60,
	0x2c72,
	0x2c75,
	0xa790,
};

int
istitlerune(Rune c)
{
	Rune *p;

	p = rbsearch(c, __istitler, nelem(__istitler)/2, 2);
	if(p && c >= p[0] && c <= p[1])
		return 1;
	p = rbsearch(c, __istitlep, nelem(__istitlep)/2, 2);
	if(p && c >= p[0] && c <= p[1] && !((c - p[0]) & 1))
		return 1;
	p = rbsearch(c, __istitles, nelem(__istitles), 1);
	if(p && c == p[0])
		return 1;
	return 0;
}

static Rune __toupperr[] = {
	0x0061, 0x007a, 1048544,
	0x00e0, 0x00f6, 1048544,
	0x00f8, 0x00fe, 1048544,
	0x023f, 0x0240, 1059391,
	0x0256, 0x0257, 1048371,
	0x028a, 0x028b, 1048359,
	0x037b, 0x037d, 1048706,
	0x03ad, 0x03af, 1048539,
	0x03b1, 0x03c1, 1048544,
	0x03c3, 0x03cb, 1048544,
	0x03cd, 0x03ce, 1048513,
	0x0430, 0x044f, 1048544,
	0x0450, 0x045f, 1048496,
	0x0561, 0x0586, 1048528,
	0x1f00, 0x1f07, 1048584,
	0x1f10, 0x1f15, 1048584,
	0x1f20, 0x1f27, 1048584,
	0x1f30, 0x1f37, 1048584,
	0x1f40, 0x1f45, 1048584,
	0x1f60, 0x1f67, 1048584,
	0x1f70, 0x1f71, 1048650,
	0x1f72, 0x1f75, 1048662,
	0x1f76, 0x1f77, 1048676,
	0x1f78, 0x1f79, 1048704,
	0x1f7a, 0x1f7b, 1048688,
	0x1f7c, 0x1f7d, 1048702,
	0x1f80, 0x1f87, 1048584,
	0x1f90, 0x1f97, 1048584,
	0x1fa0, 0x1fa7, 1048584,
	0x1fb0, 0x1fb1, 1048584,
	0x1fd0, 0x1fd1, 1048584,
	0x1fe0, 0x1fe1, 1048584,
	0x2170, 0x217f, 1048560,
	0x24d0, 0x24e9, 1048550,
	0x2c30, 0x2c5e, 1048528,
	0x2d00, 0x2d25, 1041312,
	0xff41, 0xff5a, 1048544,
	0x10428, 0x1044f, 1048536,
};

static Rune __toupperp[] = {
	0x0101, 0x012f, 1048575,
	0x0133, 0x0137, 1048575,
	0x013a, 0x0148, 1048575,
	0x014b, 0x0177, 1048575,
	0x017a, 0x017e, 1048575,
	0x0183, 0x0185, 1048575,
	0x01a1, 0x01a5, 1048575,
	0x01b4, 0x01b6, 1048575,
	0x01ce, 0x01dc, 1048575,
	0x01df, 0x01ef, 1048575,
	0x01f9, 0x021f, 1048575,
	0x0223, 0x0233, 1048575,
	0x0247, 0x024f, 1048575,
	0x0371, 0x0373, 1048575,
	0x03d9, 0x03ef, 1048575,
	0x0461, 0x0481, 1048575,
	0x048b, 0x04bf, 1048575,
	0x04c2, 0x04ce, 1048575,
	0x04d1, 0x0527, 1048575,
	0x1e01, 0x1e95, 1048575,
	0x1ea1, 0x1eff, 1048575,
	0x1f51, 0x1f57, 1048584,
	0x2c68, 0x2c6c, 1048575,
	0x2c81, 0x2ce3, 1048575,
	0x2cec, 0x2cee, 1048575,
	0xa641, 0xa66d, 1048575,
	0xa681, 0xa697, 1048575,
	0xa723, 0xa72f, 1048575,
	0xa733, 0xa76f, 1048575,
	0xa77a, 0xa77c, 1048575,
	0xa77f, 0xa787, 1048575,
	0xa7a1, 0xa7a9, 1048575,
};

static Rune __touppers[] = {
	0x00b5, 1049319,
	0x00ff, 1048697,
	0x0131, 1048344,
	0x017f, 1048276,
	0x0180, 1048771,
	0x0188, 1048575,
	0x018c, 1048575,
	0x0192, 1048575,
	0x0195, 1048673,
	0x0199, 1048575,
	0x019a, 1048739,
	0x019e, 1048706,
	0x01a8, 1048575,
	0x01ad, 1048575,
	0x01b0, 1048575,
	0x01b9, 1048575,
	0x01bd, 1048575,
	0x01bf, 1048632,
	0x01c5, 1048575,
	0x01c6, 1048574,
	0x01c8, 1048575,
	0x01c9, 1048574,
	0x01cb, 1048575,
	0x01cc, 1048574,
	0x01dd, 1048497,
	0x01f2, 1048575,
	0x01f3, 1048574,
	0x01f5, 1048575,
	0x023c, 1048575,
	0x0242, 1048575,
	0x0250, 1059359,
	0x0251, 1059356,
	0x0252, 1059358,
	0x0253, 1048366,
	0x0254, 1048370,
	0x0259, 1048374,
	0x025b, 1048373,
	0x0260, 1048371,
	0x0263, 1048369,
	0x0265, 1090856,
	0x0268, 1048367,
	0x0269, 1048365,
	0x026b, 1059319,
	0x026f, 1048365,
	0x0271, 1059325,
	0x0272, 1048363,
	0x0275, 1048362,
	0x027d, 1059303,
	0x0280, 1048358,
	0x0283, 1048358,
	0x0288, 1048358,
	0x0289, 1048507,
	0x028c, 1048505,
	0x0292, 1048357,
	0x0345, 1048660,
	0x0377, 1048575,
	0x03ac, 1048538,
	0x03c2, 1048545,
	0x03cc, 1048512,
	0x03d0, 1048514,
	0x03d1, 1048519,
	0x03d5, 1048529,
	0x03d6, 1048522,
	0x03d7, 1048568,
	0x03f0, 1048490,
	0x03f1, 1048496,
	0x03f2, 1048583,
	0x03f5, 1048480,
	0x03f8, 1048575,
	0x03fb, 1048575,
	0x04cf, 1048561,
	0x1d79, 1083908,
	0x1d7d, 1052390,
	0x1e9b, 1048517,
	0x1fb3, 1048585,
	0x1fbe, 1041371,
	0x1fc3, 1048585,
	0x1fe5, 1048583,
	0x1ff3, 1048585,
	0x214e, 1048548,
	0x2184, 1048575,
	0x2c61, 1048575,
	0x2c65, 1037781,
	0x2c66, 1037784,
	0x2c73, 1048575,
	0x2c76, 1048575,
	0xa78c, 1048575,
	0xa791, 1048575,
};

Rune
toupperrune(Rune c)
{
	Rune *p;

	p = rbsearch(c, __toupperr, nelem(__toupperr)/3, 3);
	if(p && c >= p[0] && c <= p[1])
		return c + p[2] - 1048576;
	p = rbsearch(c, __toupperp, nelem(__toupperp)/3, 3);
	if(p && c >= p[0] && c <= p[1] && !((c - p[0]) & 1))
		return c + p[2] - 1048576;
	p = rbsearch(c, __touppers, nelem(__touppers)/2, 2);
	if(p && c == p[0])
		return c + p[1] - 1048576;
	return c;
}

static Rune __tolowerr[] = {
	0x0041, 0x005a, 1048608,
	0x00c0, 0x00d6, 1048608,
	0x00d8, 0x00de, 1048608,
	0x0189, 0x018a, 1048781,
	0x01b1, 0x01b2, 1048793,
	0x0388, 0x038a, 1048613,
	0x038e, 0x038f, 1048639,
	0x0391, 0x03a1, 1048608,
	0x03a3, 0x03ab, 1048608,
	0x03fd, 0x03ff, 1048446,
	0x0400, 0x040f, 1048656,
	0x0410, 0x042f, 1048608,
	0x0531, 0x0556, 1048624,
	0x10a0, 0x10c5, 1055840,
	0x1f08, 0x1f0f, 1048568,
	0x1f18, 0x1f1d, 1048568,
	0x1f28, 0x1f2f, 1048568,
	0x1f38, 0x1f3f, 1048568,
	0x1f48, 0x1f4d, 1048568,
	0x1f68, 0x1f6f, 1048568,
	0x1f88, 0x1f8f, 1048568,
	0x1f98, 0x1f9f, 1048568,
	0x1fa8, 0x1faf, 1048568,
	0x1fb8, 0x1fb9, 1048568,
	0x1fba, 0x1fbb, 1048502,
	0x1fc8, 0x1fcb, 1048490,
	0x1fd8, 0x1fd9, 1048568,
	0x1fda, 0x1fdb, 1048476,
	0x1fe8, 0x1fe9, 1048568,
	0x1fea, 0x1feb, 1048464,
	0x1ff8, 0x1ff9, 1048448,
	0x1ffa, 0x1ffb, 1048450,
	0x2160, 0x216f, 1048592,
	0x24b6, 0x24cf, 1048602,
	0x2c00, 0x2c2e, 1048624,
	0x2c7e, 0x2c7f, 1037761,
	0xff21, 0xff3a, 1048608,
	0x10400, 0x10427, 1048616,
};

static Rune __tolowerp[] = {
	0x0100, 0x012e, 1048577,
	0x0132, 0x0136, 1048577,
	0x0139, 0x0147, 1048577,
	0x014a, 0x0176, 1048577,
	0x017b, 0x017d, 1048577,
	0x01a2, 0x01a4, 1048577,
	0x01b3, 0x01b5, 1048577,
	0x01cd, 0x01db, 1048577,
	0x01de, 0x01ee, 1048577,
	0x01f8, 0x021e, 1048577,
	0x0222, 0x0232, 1048577,
	0x0248, 0x024e, 1048577,
	0x0370, 0x0372, 1048577,
	0x03d8, 0x03ee, 1048577,
	0x0460, 0x0480, 1048577,
	0x048a, 0x04be, 1048577,
	0x04c3, 0x04cd, 1048577,
	0x04d0, 0x0526, 1048577,
	0x1e00, 0x1e94, 1048577,
	0x1ea0, 0x1efe, 1048577,
	0x1f59, 0x1f5f, 1048568,
	0x2c67, 0x2c6b, 1048577,
	0x2c80, 0x2ce2, 1048577,
	0x2ceb, 0x2ced, 1048577,
	0xa640, 0xa66c, 1048577,
	0xa680, 0xa696, 1048577,
	0xa722, 0xa72e, 1048577,
	0xa732, 0xa76e, 1048577,
	0xa779, 0xa77b, 1048577,
	0xa780, 0xa786, 1048577,
	0xa7a0, 0xa7a8, 1048577,
};

static Rune __tolowers[] = {
	0x0130, 1048377,
	0x0178, 1048455,
	0x0179, 1048577,
	0x0181, 1048786,
	0x0182, 1048577,
	0x0184, 1048577,
	0x0186, 1048782,
	0x0187, 1048577,
	0x018b, 1048577,
	0x018e, 1048655,
	0x018f, 1048778,
	0x0190, 1048779,
	0x0191, 1048577,
	0x0193, 1048781,
	0x0194, 1048783,
	0x0196, 1048787,
	0x0197, 1048785,
	0x0198, 1048577,
	0x019c, 1048787,
	0x019d, 1048789,
	0x019f, 1048790,
	0x01a0, 1048577,
	0x01a6, 1048794,
	0x01a7, 1048577,
	0x01a9, 1048794,
	0x01ac, 1048577,
	0x01ae, 1048794,
	0x01af, 1048577,
	0x01b7, 1048795,
	0x01b8, 1048577,
	0x01bc, 1048577,
	0x01c4, 1048578,
	0x01c5, 1048577,
	0x01c7, 1048578,
	0x01c8, 1048577,
	0x01ca, 1048578,
	0x01cb, 1048577,
	0x01f1, 1048578,
	0x01f2, 1048577,
	0x01f4, 1048577,
	0x01f6, 1048479,
	0x01f7, 1048520,
	0x0220, 1048446,
	0x023a, 1059371,
	0x023b, 1048577,
	0x023d, 1048413,
	0x023e, 1059368,
	0x0241, 1048577,
	0x0243, 1048381,
	0x0244, 1048645,
	0x0245, 1048647,
	0x0246, 1048577,
	0x0376, 1048577,
	0x0386, 1048614,
	0x038c, 1048640,
	0x03cf, 1048584,
	0x03f4, 1048516,
	0x03f7, 1048577,
	0x03f9, 1048569,
	0x03fa, 1048577,
	0x04c0, 1048591,
	0x04c1, 1048577,
	0x1e9e, 1040961,
	0x1fbc, 1048567,
	0x1fcc, 1048567,
	0x1fec, 1048569,
	0x1ffc, 1048567,
	0x2126, 1041059,
	0x212a, 1040193,
	0x212b, 1040314,
	0x2132, 1048604,
	0x2183, 1048577,
	0x2c60, 1048577,
	0x2c62, 1037833,
	0x2c63, 1044762,
	0x2c64, 1037849,
	0x2c6d, 1037796,
	0x2c6e, 1037827,
	0x2c6f, 1037793,
	0x2c70, 1037794,
	0x2c72, 1048577,
	0x2c75, 1048577,
	0xa77d, 1013244,
	0xa77e, 1048577,
	0xa78b, 1048577,
	0xa78d, 1006296,
	0xa790, 1048577,
};

Rune
tolowerrune(Rune c)
{
	Rune *p;

	p = rbsearch(c, __tolowerr, nelem(__tolowerr)/3, 3);
	if(p && c >= p[0] && c <= p[1])
		return c + p[2] - 1048576;
	p = rbsearch(c, __tolowerp, nelem(__tolowerp)/3, 3);
	if(p && c >= p[0] && c <= p[1] && !((c - p[0]) & 1))
		return c + p[2] - 1048576;
	p = rbsearch(c, __tolowers, nelem(__tolowers)/2, 2);
	if(p && c == p[0])
		return c + p[1] - 1048576;
	return c;
}

static Rune __totitler[] = {
	0x0061, 0x007a, 1048544,
	0x00e0, 0x00f6, 1048544,
	0x00f8, 0x00fe, 1048544,
	0x023f, 0x0240, 1059391,
	0x0256, 0x0257, 1048371,
	0x028a, 0x028b, 1048359,
	0x037b, 0x037d, 1048706,
	0x03ad, 0x03af, 1048539,
	0x03b1, 0x03c1, 1048544,
	0x03c3, 0x03cb, 1048544,
	0x03cd, 0x03ce, 1048513,
	0x0430, 0x044f, 1048544,
	0x0450, 0x045f, 1048496,
	0x0561, 0x0586, 1048528,
	0x1f00, 0x1f07, 1048584,
	0x1f10, 0x1f15, 1048584,
	0x1f20, 0x1f27, 1048584,
	0x1f30, 0x1f37, 1048584,
	0x1f40, 0x1f45, 1048584,
	0x1f60, 0x1f67, 1048584,
	0x1f70, 0x1f71, 1048650,
	0x1f72, 0x1f75, 1048662,
	0x1f76, 0x1f77, 1048676,
	0x1f78, 0x1f79, 1048704,
	0x1f7a, 0x1f7b, 1048688,
	0x1f7c, 0x1f7d, 1048702,
	0x1f80, 0x1f87, 1048584,
	0x1f90, 0x1f97, 1048584,
	0x1fa0, 0x1fa7, 1048584,
	0x1fb0, 0x1fb1, 1048584,
	0x1fd0, 0x1fd1, 1048584,
	0x1fe0, 0x1fe1, 1048584,
	0x2170, 0x217f, 1048560,
	0x24d0, 0x24e9, 1048550,
	0x2c30, 0x2c5e, 1048528,
	0x2d00, 0x2d25, 1041312,
	0xff41, 0xff5a, 1048544,
	0x10428, 0x1044f, 1048536,
};

static Rune __totitlep[] = {
	0x0101, 0x012f, 1048575,
	0x0133, 0x0137, 1048575,
	0x013a, 0x0148, 1048575,
	0x014b, 0x0177, 1048575,
	0x017a, 0x017e, 1048575,
	0x0183, 0x0185, 1048575,
	0x01a1, 0x01a5, 1048575,
	0x01b4, 0x01b6, 1048575,
	0x01cc, 0x01dc, 1048575,
	0x01df, 0x01ef, 1048575,
	0x01f3, 0x01f5, 1048575,
	0x01f9, 0x021f, 1048575,
	0x0223, 0x0233, 1048575,
	0x0247, 0x024f, 1048575,
	0x0371, 0x0373, 1048575,
	0x03d9, 0x03ef, 1048575,
	0x0461, 0x0481, 1048575,
	0x048b, 0x04bf, 1048575,
	0x04c2, 0x04ce, 1048575,
	0x04d1, 0x0527, 1048575,
	0x1e01, 0x1e95, 1048575,
	0x1ea1, 0x1eff, 1048575,
	0x1f51, 0x1f57, 1048584,
	0x2c68, 0x2c6c, 1048575,
	0x2c81, 0x2ce3, 1048575,
	0x2cec, 0x2cee, 1048575,
	0xa641, 0xa66d, 1048575,
	0xa681, 0xa697, 1048575,
	0xa723, 0xa72f, 1048575,
	0xa733, 0xa76f, 1048575,
	0xa77a, 0xa77c, 1048575,
	0xa77f, 0xa787, 1048575,
	0xa7a1, 0xa7a9, 1048575,
};

static Rune __totitles[] = {
	0x00b5, 1049319,
	0x00ff, 1048697,
	0x0131, 1048344,
	0x017f, 1048276,
	0x0180, 1048771,
	0x0188, 1048575,
	0x018c, 1048575,
	0x0192, 1048575,
	0x0195, 1048673,
	0x0199, 1048575,
	0x019a, 1048739,
	0x019e, 1048706,
	0x01a8, 1048575,
	0x01ad, 1048575,
	0x01b0, 1048575,
	0x01b9, 1048575,
	0x01bd, 1048575,
	0x01bf, 1048632,
	0x01c4, 1048577,
	0x01c6, 1048575,
	0x01c7, 1048577,
	0x01c9, 1048575,
	0x01ca, 1048577,
	0x01dd, 1048497,
	0x01f1, 1048577,
	0x023c, 1048575,
	0x0242, 1048575,
	0x0250, 1059359,
	0x0251, 1059356,
	0x0252, 1059358,
	0x0253, 1048366,
	0x0254, 1048370,
	0x0259, 1048374,
	0x025b, 1048373,
	0x0260, 1048371,
	0x0263, 1048369,
	0x0265, 1090856,
	0x0268, 1048367,
	0x0269, 1048365,
	0x026b, 1059319,
	0x026f, 1048365,
	0x0271, 1059325,
	0x0272, 1048363,
	0x0275, 1048362,
	0x027d, 1059303,
	0x0280, 1048358,
	0x0283, 1048358,
	0x0288, 1048358,
	0x0289, 1048507,
	0x028c, 1048505,
	0x0292, 1048357,
	0x0345, 1048660,
	0x0377, 1048575,
	0x03ac, 1048538,
	0x03c2, 1048545,
	0x03cc, 1048512,
	0x03d0, 1048514,
	0x03d1, 1048519,
	0x03d5, 1048529,
	0x03d6, 1048522,
	0x03d7, 1048568,
	0x03f0, 1048490,
	0x03f1, 1048496,
	0x03f2, 1048583,
	0x03f5, 1048480,
	0x03f8, 1048575,
	0x03fb, 1048575,
	0x04cf, 1048561,
	0x1d79, 1083908,
	0x1d7d, 1052390,
	0x1e9b, 1048517,
	0x1fb3, 1048585,
	0x1fbe, 1041371,
	0x1fc3, 1048585,
	0x1fe5, 1048583,
	0x1ff3, 1048585,
	0x214e, 1048548,
	0x2184, 1048575,
	0x2c61, 1048575,
	0x2c65, 1037781,
	0x2c66, 1037784,
	0x2c73, 1048575,
	0x2c76, 1048575,
	0xa78c, 1048575,
	0xa791, 1048575,
};

Rune
totitlerune(Rune c)
{
	Rune *p;

	p = rbsearch(c, __totitler, nelem(__totitler)/3, 3);
	if(p && c >= p[0] && c <= p[1])
		return c + p[2] - 1048576;
	p = rbsearch(c, __totitlep, nelem(__totitlep)/3, 3);
	if(p && c >= p[0] && c <= p[1] && !((c - p[0]) & 1))
		return c + p[2] - 1048576;
	p = rbsearch(c, __totitles, nelem(__totitles)/2, 2);
	if(p && c == p[0])
		return c + p[1] - 1048576;
	return c;
}

