// Generated from Unicode script tables

#ifndef CATEGORY_PROPERTIES_H_
#define CATEGORY_PROPERTIES_H_

#include <stdint.h>
#include "harfbuzz-external.h"

struct category_property {
  uint32_t range_start;
  uint32_t range_end;
  HB_CharCategory category;
};

static const struct category_property category_properties[] = {
  {0x0, 0x1f, HB_Other_Control},
  {0x20, 0x20, HB_Separator_Space},
  {0x21, 0x23, HB_Punctuation_Other},
  {0x24, 0x24, HB_Symbol_Currency},
  {0x25, 0x27, HB_Punctuation_Other},
  {0x28, 0x28, HB_Punctuation_Open},
  {0x29, 0x29, HB_Punctuation_Close},
  {0x2a, 0x2a, HB_Punctuation_Other},
  {0x2b, 0x2b, HB_Symbol_Math},
  {0x2c, 0x2c, HB_Punctuation_Other},
  {0x2d, 0x2d, HB_Punctuation_Dash},
  {0x2e, 0x2f, HB_Punctuation_Other},
  {0x30, 0x39, HB_Number_DecimalDigit},
  {0x3a, 0x3b, HB_Punctuation_Other},
  {0x3c, 0x3e, HB_Symbol_Math},
  {0x3f, 0x40, HB_Punctuation_Other},
  {0x41, 0x5a, HB_Letter_Uppercase},
  {0x5b, 0x5b, HB_Punctuation_Open},
  {0x5c, 0x5c, HB_Punctuation_Other},
  {0x5d, 0x5d, HB_Punctuation_Close},
  {0x5e, 0x5e, HB_Symbol_Modifier},
  {0x5f, 0x5f, HB_Punctuation_Connector},
  {0x60, 0x60, HB_Symbol_Modifier},
  {0x61, 0x7a, HB_Letter_Lowercase},
  {0x7b, 0x7b, HB_Punctuation_Open},
  {0x7c, 0x7c, HB_Symbol_Math},
  {0x7d, 0x7d, HB_Punctuation_Close},
  {0x7e, 0x7e, HB_Symbol_Math},
  {0x7f, 0x9f, HB_Other_Control},
  {0xa0, 0xa0, HB_Separator_Space},
  {0xa1, 0xa1, HB_Punctuation_Other},
  {0xa2, 0xa5, HB_Symbol_Currency},
  {0xa6, 0xa7, HB_Symbol_Other},
  {0xa8, 0xa8, HB_Symbol_Modifier},
  {0xa9, 0xa9, HB_Symbol_Other},
  {0xaa, 0xaa, HB_Letter_Lowercase},
  {0xab, 0xab, HB_Punctuation_InitialQuote},
  {0xac, 0xac, HB_Symbol_Math},
  {0xad, 0xad, HB_Other_Format},
  {0xae, 0xae, HB_Symbol_Other},
  {0xaf, 0xaf, HB_Symbol_Modifier},
  {0xb0, 0xb0, HB_Symbol_Other},
  {0xb1, 0xb1, HB_Symbol_Math},
  {0xb2, 0xb3, HB_Number_Other},
  {0xb4, 0xb4, HB_Symbol_Modifier},
  {0xb5, 0xb5, HB_Letter_Lowercase},
  {0xb6, 0xb6, HB_Symbol_Other},
  {0xb7, 0xb7, HB_Punctuation_Other},
  {0xb8, 0xb8, HB_Symbol_Modifier},
  {0xb9, 0xb9, HB_Number_Other},
  {0xba, 0xba, HB_Letter_Lowercase},
  {0xbb, 0xbb, HB_Punctuation_FinalQuote},
  {0xbc, 0xbe, HB_Number_Other},
  {0xbf, 0xbf, HB_Punctuation_Other},
  {0xc0, 0xd6, HB_Letter_Uppercase},
  {0xd7, 0xd7, HB_Symbol_Math},
  {0xd8, 0xde, HB_Letter_Uppercase},
  {0xdf, 0xf6, HB_Letter_Lowercase},
  {0xf7, 0xf7, HB_Symbol_Math},
  {0xf8, 0xff, HB_Letter_Lowercase},
  {0x100, 0x100, HB_Letter_Uppercase},
  {0x101, 0x101, HB_Letter_Lowercase},
  {0x102, 0x102, HB_Letter_Uppercase},
  {0x103, 0x103, HB_Letter_Lowercase},
  {0x104, 0x104, HB_Letter_Uppercase},
  {0x105, 0x105, HB_Letter_Lowercase},
  {0x106, 0x106, HB_Letter_Uppercase},
  {0x107, 0x107, HB_Letter_Lowercase},
  {0x108, 0x108, HB_Letter_Uppercase},
  {0x109, 0x109, HB_Letter_Lowercase},
  {0x10a, 0x10a, HB_Letter_Uppercase},
  {0x10b, 0x10b, HB_Letter_Lowercase},
  {0x10c, 0x10c, HB_Letter_Uppercase},
  {0x10d, 0x10d, HB_Letter_Lowercase},
  {0x10e, 0x10e, HB_Letter_Uppercase},
  {0x10f, 0x10f, HB_Letter_Lowercase},
  {0x110, 0x110, HB_Letter_Uppercase},
  {0x111, 0x111, HB_Letter_Lowercase},
  {0x112, 0x112, HB_Letter_Uppercase},
  {0x113, 0x113, HB_Letter_Lowercase},
  {0x114, 0x114, HB_Letter_Uppercase},
  {0x115, 0x115, HB_Letter_Lowercase},
  {0x116, 0x116, HB_Letter_Uppercase},
  {0x117, 0x117, HB_Letter_Lowercase},
  {0x118, 0x118, HB_Letter_Uppercase},
  {0x119, 0x119, HB_Letter_Lowercase},
  {0x11a, 0x11a, HB_Letter_Uppercase},
  {0x11b, 0x11b, HB_Letter_Lowercase},
  {0x11c, 0x11c, HB_Letter_Uppercase},
  {0x11d, 0x11d, HB_Letter_Lowercase},
  {0x11e, 0x11e, HB_Letter_Uppercase},
  {0x11f, 0x11f, HB_Letter_Lowercase},
  {0x120, 0x120, HB_Letter_Uppercase},
  {0x121, 0x121, HB_Letter_Lowercase},
  {0x122, 0x122, HB_Letter_Uppercase},
  {0x123, 0x123, HB_Letter_Lowercase},
  {0x124, 0x124, HB_Letter_Uppercase},
  {0x125, 0x125, HB_Letter_Lowercase},
  {0x126, 0x126, HB_Letter_Uppercase},
  {0x127, 0x127, HB_Letter_Lowercase},
  {0x128, 0x128, HB_Letter_Uppercase},
  {0x129, 0x129, HB_Letter_Lowercase},
  {0x12a, 0x12a, HB_Letter_Uppercase},
  {0x12b, 0x12b, HB_Letter_Lowercase},
  {0x12c, 0x12c, HB_Letter_Uppercase},
  {0x12d, 0x12d, HB_Letter_Lowercase},
  {0x12e, 0x12e, HB_Letter_Uppercase},
  {0x12f, 0x12f, HB_Letter_Lowercase},
  {0x130, 0x130, HB_Letter_Uppercase},
  {0x131, 0x131, HB_Letter_Lowercase},
  {0x132, 0x132, HB_Letter_Uppercase},
  {0x133, 0x133, HB_Letter_Lowercase},
  {0x134, 0x134, HB_Letter_Uppercase},
  {0x135, 0x135, HB_Letter_Lowercase},
  {0x136, 0x136, HB_Letter_Uppercase},
  {0x137, 0x138, HB_Letter_Lowercase},
  {0x139, 0x139, HB_Letter_Uppercase},
  {0x13a, 0x13a, HB_Letter_Lowercase},
  {0x13b, 0x13b, HB_Letter_Uppercase},
  {0x13c, 0x13c, HB_Letter_Lowercase},
  {0x13d, 0x13d, HB_Letter_Uppercase},
  {0x13e, 0x13e, HB_Letter_Lowercase},
  {0x13f, 0x13f, HB_Letter_Uppercase},
  {0x140, 0x140, HB_Letter_Lowercase},
  {0x141, 0x141, HB_Letter_Uppercase},
  {0x142, 0x142, HB_Letter_Lowercase},
  {0x143, 0x143, HB_Letter_Uppercase},
  {0x144, 0x144, HB_Letter_Lowercase},
  {0x145, 0x145, HB_Letter_Uppercase},
  {0x146, 0x146, HB_Letter_Lowercase},
  {0x147, 0x147, HB_Letter_Uppercase},
  {0x148, 0x149, HB_Letter_Lowercase},
  {0x14a, 0x14a, HB_Letter_Uppercase},
  {0x14b, 0x14b, HB_Letter_Lowercase},
  {0x14c, 0x14c, HB_Letter_Uppercase},
  {0x14d, 0x14d, HB_Letter_Lowercase},
  {0x14e, 0x14e, HB_Letter_Uppercase},
  {0x14f, 0x14f, HB_Letter_Lowercase},
  {0x150, 0x150, HB_Letter_Uppercase},
  {0x151, 0x151, HB_Letter_Lowercase},
  {0x152, 0x152, HB_Letter_Uppercase},
  {0x153, 0x153, HB_Letter_Lowercase},
  {0x154, 0x154, HB_Letter_Uppercase},
  {0x155, 0x155, HB_Letter_Lowercase},
  {0x156, 0x156, HB_Letter_Uppercase},
  {0x157, 0x157, HB_Letter_Lowercase},
  {0x158, 0x158, HB_Letter_Uppercase},
  {0x159, 0x159, HB_Letter_Lowercase},
  {0x15a, 0x15a, HB_Letter_Uppercase},
  {0x15b, 0x15b, HB_Letter_Lowercase},
  {0x15c, 0x15c, HB_Letter_Uppercase},
  {0x15d, 0x15d, HB_Letter_Lowercase},
  {0x15e, 0x15e, HB_Letter_Uppercase},
  {0x15f, 0x15f, HB_Letter_Lowercase},
  {0x160, 0x160, HB_Letter_Uppercase},
  {0x161, 0x161, HB_Letter_Lowercase},
  {0x162, 0x162, HB_Letter_Uppercase},
  {0x163, 0x163, HB_Letter_Lowercase},
  {0x164, 0x164, HB_Letter_Uppercase},
  {0x165, 0x165, HB_Letter_Lowercase},
  {0x166, 0x166, HB_Letter_Uppercase},
  {0x167, 0x167, HB_Letter_Lowercase},
  {0x168, 0x168, HB_Letter_Uppercase},
  {0x169, 0x169, HB_Letter_Lowercase},
  {0x16a, 0x16a, HB_Letter_Uppercase},
  {0x16b, 0x16b, HB_Letter_Lowercase},
  {0x16c, 0x16c, HB_Letter_Uppercase},
  {0x16d, 0x16d, HB_Letter_Lowercase},
  {0x16e, 0x16e, HB_Letter_Uppercase},
  {0x16f, 0x16f, HB_Letter_Lowercase},
  {0x170, 0x170, HB_Letter_Uppercase},
  {0x171, 0x171, HB_Letter_Lowercase},
  {0x172, 0x172, HB_Letter_Uppercase},
  {0x173, 0x173, HB_Letter_Lowercase},
  {0x174, 0x174, HB_Letter_Uppercase},
  {0x175, 0x175, HB_Letter_Lowercase},
  {0x176, 0x176, HB_Letter_Uppercase},
  {0x177, 0x177, HB_Letter_Lowercase},
  {0x178, 0x179, HB_Letter_Uppercase},
  {0x17a, 0x17a, HB_Letter_Lowercase},
  {0x17b, 0x17b, HB_Letter_Uppercase},
  {0x17c, 0x17c, HB_Letter_Lowercase},
  {0x17d, 0x17d, HB_Letter_Uppercase},
  {0x17e, 0x180, HB_Letter_Lowercase},
  {0x181, 0x182, HB_Letter_Uppercase},
  {0x183, 0x183, HB_Letter_Lowercase},
  {0x184, 0x184, HB_Letter_Uppercase},
  {0x185, 0x185, HB_Letter_Lowercase},
  {0x186, 0x187, HB_Letter_Uppercase},
  {0x188, 0x188, HB_Letter_Lowercase},
  {0x189, 0x18b, HB_Letter_Uppercase},
  {0x18c, 0x18d, HB_Letter_Lowercase},
  {0x18e, 0x191, HB_Letter_Uppercase},
  {0x192, 0x192, HB_Letter_Lowercase},
  {0x193, 0x194, HB_Letter_Uppercase},
  {0x195, 0x195, HB_Letter_Lowercase},
  {0x196, 0x198, HB_Letter_Uppercase},
  {0x199, 0x19b, HB_Letter_Lowercase},
  {0x19c, 0x19d, HB_Letter_Uppercase},
  {0x19e, 0x19e, HB_Letter_Lowercase},
  {0x19f, 0x1a0, HB_Letter_Uppercase},
  {0x1a1, 0x1a1, HB_Letter_Lowercase},
  {0x1a2, 0x1a2, HB_Letter_Uppercase},
  {0x1a3, 0x1a3, HB_Letter_Lowercase},
  {0x1a4, 0x1a4, HB_Letter_Uppercase},
  {0x1a5, 0x1a5, HB_Letter_Lowercase},
  {0x1a6, 0x1a7, HB_Letter_Uppercase},
  {0x1a8, 0x1a8, HB_Letter_Lowercase},
  {0x1a9, 0x1a9, HB_Letter_Uppercase},
  {0x1aa, 0x1ab, HB_Letter_Lowercase},
  {0x1ac, 0x1ac, HB_Letter_Uppercase},
  {0x1ad, 0x1ad, HB_Letter_Lowercase},
  {0x1ae, 0x1af, HB_Letter_Uppercase},
  {0x1b0, 0x1b0, HB_Letter_Lowercase},
  {0x1b1, 0x1b3, HB_Letter_Uppercase},
  {0x1b4, 0x1b4, HB_Letter_Lowercase},
  {0x1b5, 0x1b5, HB_Letter_Uppercase},
  {0x1b6, 0x1b6, HB_Letter_Lowercase},
  {0x1b7, 0x1b8, HB_Letter_Uppercase},
  {0x1b9, 0x1ba, HB_Letter_Lowercase},
  {0x1bb, 0x1bb, HB_Letter_Other},
  {0x1bc, 0x1bc, HB_Letter_Uppercase},
  {0x1bd, 0x1bf, HB_Letter_Lowercase},
  {0x1c0, 0x1c3, HB_Letter_Other},
  {0x1c4, 0x1c4, HB_Letter_Uppercase},
  {0x1c5, 0x1c5, HB_Letter_Titlecase},
  {0x1c6, 0x1c6, HB_Letter_Lowercase},
  {0x1c7, 0x1c7, HB_Letter_Uppercase},
  {0x1c8, 0x1c8, HB_Letter_Titlecase},
  {0x1c9, 0x1c9, HB_Letter_Lowercase},
  {0x1ca, 0x1ca, HB_Letter_Uppercase},
  {0x1cb, 0x1cb, HB_Letter_Titlecase},
  {0x1cc, 0x1cc, HB_Letter_Lowercase},
  {0x1cd, 0x1cd, HB_Letter_Uppercase},
  {0x1ce, 0x1ce, HB_Letter_Lowercase},
  {0x1cf, 0x1cf, HB_Letter_Uppercase},
  {0x1d0, 0x1d0, HB_Letter_Lowercase},
  {0x1d1, 0x1d1, HB_Letter_Uppercase},
  {0x1d2, 0x1d2, HB_Letter_Lowercase},
  {0x1d3, 0x1d3, HB_Letter_Uppercase},
  {0x1d4, 0x1d4, HB_Letter_Lowercase},
  {0x1d5, 0x1d5, HB_Letter_Uppercase},
  {0x1d6, 0x1d6, HB_Letter_Lowercase},
  {0x1d7, 0x1d7, HB_Letter_Uppercase},
  {0x1d8, 0x1d8, HB_Letter_Lowercase},
  {0x1d9, 0x1d9, HB_Letter_Uppercase},
  {0x1da, 0x1da, HB_Letter_Lowercase},
  {0x1db, 0x1db, HB_Letter_Uppercase},
  {0x1dc, 0x1dd, HB_Letter_Lowercase},
  {0x1de, 0x1de, HB_Letter_Uppercase},
  {0x1df, 0x1df, HB_Letter_Lowercase},
  {0x1e0, 0x1e0, HB_Letter_Uppercase},
  {0x1e1, 0x1e1, HB_Letter_Lowercase},
  {0x1e2, 0x1e2, HB_Letter_Uppercase},
  {0x1e3, 0x1e3, HB_Letter_Lowercase},
  {0x1e4, 0x1e4, HB_Letter_Uppercase},
  {0x1e5, 0x1e5, HB_Letter_Lowercase},
  {0x1e6, 0x1e6, HB_Letter_Uppercase},
  {0x1e7, 0x1e7, HB_Letter_Lowercase},
  {0x1e8, 0x1e8, HB_Letter_Uppercase},
  {0x1e9, 0x1e9, HB_Letter_Lowercase},
  {0x1ea, 0x1ea, HB_Letter_Uppercase},
  {0x1eb, 0x1eb, HB_Letter_Lowercase},
  {0x1ec, 0x1ec, HB_Letter_Uppercase},
  {0x1ed, 0x1ed, HB_Letter_Lowercase},
  {0x1ee, 0x1ee, HB_Letter_Uppercase},
  {0x1ef, 0x1f0, HB_Letter_Lowercase},
  {0x1f1, 0x1f1, HB_Letter_Uppercase},
  {0x1f2, 0x1f2, HB_Letter_Titlecase},
  {0x1f3, 0x1f3, HB_Letter_Lowercase},
  {0x1f4, 0x1f4, HB_Letter_Uppercase},
  {0x1f5, 0x1f5, HB_Letter_Lowercase},
  {0x1f6, 0x1f8, HB_Letter_Uppercase},
  {0x1f9, 0x1f9, HB_Letter_Lowercase},
  {0x1fa, 0x1fa, HB_Letter_Uppercase},
  {0x1fb, 0x1fb, HB_Letter_Lowercase},
  {0x1fc, 0x1fc, HB_Letter_Uppercase},
  {0x1fd, 0x1fd, HB_Letter_Lowercase},
  {0x1fe, 0x1fe, HB_Letter_Uppercase},
  {0x1ff, 0x1ff, HB_Letter_Lowercase},
  {0x200, 0x200, HB_Letter_Uppercase},
  {0x201, 0x201, HB_Letter_Lowercase},
  {0x202, 0x202, HB_Letter_Uppercase},
  {0x203, 0x203, HB_Letter_Lowercase},
  {0x204, 0x204, HB_Letter_Uppercase},
  {0x205, 0x205, HB_Letter_Lowercase},
  {0x206, 0x206, HB_Letter_Uppercase},
  {0x207, 0x207, HB_Letter_Lowercase},
  {0x208, 0x208, HB_Letter_Uppercase},
  {0x209, 0x209, HB_Letter_Lowercase},
  {0x20a, 0x20a, HB_Letter_Uppercase},
  {0x20b, 0x20b, HB_Letter_Lowercase},
  {0x20c, 0x20c, HB_Letter_Uppercase},
  {0x20d, 0x20d, HB_Letter_Lowercase},
  {0x20e, 0x20e, HB_Letter_Uppercase},
  {0x20f, 0x20f, HB_Letter_Lowercase},
  {0x210, 0x210, HB_Letter_Uppercase},
  {0x211, 0x211, HB_Letter_Lowercase},
  {0x212, 0x212, HB_Letter_Uppercase},
  {0x213, 0x213, HB_Letter_Lowercase},
  {0x214, 0x214, HB_Letter_Uppercase},
  {0x215, 0x215, HB_Letter_Lowercase},
  {0x216, 0x216, HB_Letter_Uppercase},
  {0x217, 0x217, HB_Letter_Lowercase},
  {0x218, 0x218, HB_Letter_Uppercase},
  {0x219, 0x219, HB_Letter_Lowercase},
  {0x21a, 0x21a, HB_Letter_Uppercase},
  {0x21b, 0x21b, HB_Letter_Lowercase},
  {0x21c, 0x21c, HB_Letter_Uppercase},
  {0x21d, 0x21d, HB_Letter_Lowercase},
  {0x21e, 0x21e, HB_Letter_Uppercase},
  {0x21f, 0x21f, HB_Letter_Lowercase},
  {0x220, 0x220, HB_Letter_Uppercase},
  {0x221, 0x221, HB_Letter_Lowercase},
  {0x222, 0x222, HB_Letter_Uppercase},
  {0x223, 0x223, HB_Letter_Lowercase},
  {0x224, 0x224, HB_Letter_Uppercase},
  {0x225, 0x225, HB_Letter_Lowercase},
  {0x226, 0x226, HB_Letter_Uppercase},
  {0x227, 0x227, HB_Letter_Lowercase},
  {0x228, 0x228, HB_Letter_Uppercase},
  {0x229, 0x229, HB_Letter_Lowercase},
  {0x22a, 0x22a, HB_Letter_Uppercase},
  {0x22b, 0x22b, HB_Letter_Lowercase},
  {0x22c, 0x22c, HB_Letter_Uppercase},
  {0x22d, 0x22d, HB_Letter_Lowercase},
  {0x22e, 0x22e, HB_Letter_Uppercase},
  {0x22f, 0x22f, HB_Letter_Lowercase},
  {0x230, 0x230, HB_Letter_Uppercase},
  {0x231, 0x231, HB_Letter_Lowercase},
  {0x232, 0x232, HB_Letter_Uppercase},
  {0x233, 0x239, HB_Letter_Lowercase},
  {0x23a, 0x23b, HB_Letter_Uppercase},
  {0x23c, 0x23c, HB_Letter_Lowercase},
  {0x23d, 0x23e, HB_Letter_Uppercase},
  {0x23f, 0x240, HB_Letter_Lowercase},
  {0x241, 0x241, HB_Letter_Uppercase},
  {0x242, 0x242, HB_Letter_Lowercase},
  {0x243, 0x246, HB_Letter_Uppercase},
  {0x247, 0x247, HB_Letter_Lowercase},
  {0x248, 0x248, HB_Letter_Uppercase},
  {0x249, 0x249, HB_Letter_Lowercase},
  {0x24a, 0x24a, HB_Letter_Uppercase},
  {0x24b, 0x24b, HB_Letter_Lowercase},
  {0x24c, 0x24c, HB_Letter_Uppercase},
  {0x24d, 0x24d, HB_Letter_Lowercase},
  {0x24e, 0x24e, HB_Letter_Uppercase},
  {0x24f, 0x293, HB_Letter_Lowercase},
  {0x294, 0x294, HB_Letter_Other},
  {0x295, 0x2af, HB_Letter_Lowercase},
  {0x2b0, 0x2c1, HB_Letter_Modifier},
  {0x2c2, 0x2c5, HB_Symbol_Modifier},
  {0x2c6, 0x2d1, HB_Letter_Modifier},
  {0x2d2, 0x2df, HB_Symbol_Modifier},
  {0x2e0, 0x2e4, HB_Letter_Modifier},
  {0x2e5, 0x2eb, HB_Symbol_Modifier},
  {0x2ec, 0x2ec, HB_Letter_Modifier},
  {0x2ed, 0x2ed, HB_Symbol_Modifier},
  {0x2ee, 0x2ee, HB_Letter_Modifier},
  {0x2ef, 0x2ff, HB_Symbol_Modifier},
  {0x300, 0x36f, HB_Mark_NonSpacing},
  {0x370, 0x370, HB_Letter_Uppercase},
  {0x371, 0x371, HB_Letter_Lowercase},
  {0x372, 0x372, HB_Letter_Uppercase},
  {0x373, 0x373, HB_Letter_Lowercase},
  {0x374, 0x374, HB_Letter_Modifier},
  {0x375, 0x375, HB_Symbol_Modifier},
  {0x376, 0x376, HB_Letter_Uppercase},
  {0x377, 0x377, HB_Letter_Lowercase},
  {0x378, 0x379, HB_Other_NotAssigned},
  {0x37a, 0x37a, HB_Letter_Modifier},
  {0x37b, 0x37d, HB_Letter_Lowercase},
  {0x37e, 0x37e, HB_Punctuation_Other},
  {0x37f, 0x383, HB_Other_NotAssigned},
  {0x384, 0x385, HB_Symbol_Modifier},
  {0x386, 0x386, HB_Letter_Uppercase},
  {0x387, 0x387, HB_Punctuation_Other},
  {0x388, 0x38a, HB_Letter_Uppercase},
  {0x38b, 0x38b, HB_Other_NotAssigned},
  {0x38c, 0x38c, HB_Letter_Uppercase},
  {0x38d, 0x38d, HB_Other_NotAssigned},
  {0x38e, 0x38f, HB_Letter_Uppercase},
  {0x390, 0x390, HB_Letter_Lowercase},
  {0x391, 0x3a1, HB_Letter_Uppercase},
  {0x3a2, 0x3a2, HB_Other_NotAssigned},
  {0x3a3, 0x3ab, HB_Letter_Uppercase},
  {0x3ac, 0x3ce, HB_Letter_Lowercase},
  {0x3cf, 0x3cf, HB_Letter_Uppercase},
  {0x3d0, 0x3d1, HB_Letter_Lowercase},
  {0x3d2, 0x3d4, HB_Letter_Uppercase},
  {0x3d5, 0x3d7, HB_Letter_Lowercase},
  {0x3d8, 0x3d8, HB_Letter_Uppercase},
  {0x3d9, 0x3d9, HB_Letter_Lowercase},
  {0x3da, 0x3da, HB_Letter_Uppercase},
  {0x3db, 0x3db, HB_Letter_Lowercase},
  {0x3dc, 0x3dc, HB_Letter_Uppercase},
  {0x3dd, 0x3dd, HB_Letter_Lowercase},
  {0x3de, 0x3de, HB_Letter_Uppercase},
  {0x3df, 0x3df, HB_Letter_Lowercase},
  {0x3e0, 0x3e0, HB_Letter_Uppercase},
  {0x3e1, 0x3e1, HB_Letter_Lowercase},
  {0x3e2, 0x3e2, HB_Letter_Uppercase},
  {0x3e3, 0x3e3, HB_Letter_Lowercase},
  {0x3e4, 0x3e4, HB_Letter_Uppercase},
  {0x3e5, 0x3e5, HB_Letter_Lowercase},
  {0x3e6, 0x3e6, HB_Letter_Uppercase},
  {0x3e7, 0x3e7, HB_Letter_Lowercase},
  {0x3e8, 0x3e8, HB_Letter_Uppercase},
  {0x3e9, 0x3e9, HB_Letter_Lowercase},
  {0x3ea, 0x3ea, HB_Letter_Uppercase},
  {0x3eb, 0x3eb, HB_Letter_Lowercase},
  {0x3ec, 0x3ec, HB_Letter_Uppercase},
  {0x3ed, 0x3ed, HB_Letter_Lowercase},
  {0x3ee, 0x3ee, HB_Letter_Uppercase},
  {0x3ef, 0x3f3, HB_Letter_Lowercase},
  {0x3f4, 0x3f4, HB_Letter_Uppercase},
  {0x3f5, 0x3f5, HB_Letter_Lowercase},
  {0x3f6, 0x3f6, HB_Symbol_Math},
  {0x3f7, 0x3f7, HB_Letter_Uppercase},
  {0x3f8, 0x3f8, HB_Letter_Lowercase},
  {0x3f9, 0x3fa, HB_Letter_Uppercase},
  {0x3fb, 0x3fc, HB_Letter_Lowercase},
  {0x3fd, 0x42f, HB_Letter_Uppercase},
  {0x430, 0x45f, HB_Letter_Lowercase},
  {0x460, 0x460, HB_Letter_Uppercase},
  {0x461, 0x461, HB_Letter_Lowercase},
  {0x462, 0x462, HB_Letter_Uppercase},
  {0x463, 0x463, HB_Letter_Lowercase},
  {0x464, 0x464, HB_Letter_Uppercase},
  {0x465, 0x465, HB_Letter_Lowercase},
  {0x466, 0x466, HB_Letter_Uppercase},
  {0x467, 0x467, HB_Letter_Lowercase},
  {0x468, 0x468, HB_Letter_Uppercase},
  {0x469, 0x469, HB_Letter_Lowercase},
  {0x46a, 0x46a, HB_Letter_Uppercase},
  {0x46b, 0x46b, HB_Letter_Lowercase},
  {0x46c, 0x46c, HB_Letter_Uppercase},
  {0x46d, 0x46d, HB_Letter_Lowercase},
  {0x46e, 0x46e, HB_Letter_Uppercase},
  {0x46f, 0x46f, HB_Letter_Lowercase},
  {0x470, 0x470, HB_Letter_Uppercase},
  {0x471, 0x471, HB_Letter_Lowercase},
  {0x472, 0x472, HB_Letter_Uppercase},
  {0x473, 0x473, HB_Letter_Lowercase},
  {0x474, 0x474, HB_Letter_Uppercase},
  {0x475, 0x475, HB_Letter_Lowercase},
  {0x476, 0x476, HB_Letter_Uppercase},
  {0x477, 0x477, HB_Letter_Lowercase},
  {0x478, 0x478, HB_Letter_Uppercase},
  {0x479, 0x479, HB_Letter_Lowercase},
  {0x47a, 0x47a, HB_Letter_Uppercase},
  {0x47b, 0x47b, HB_Letter_Lowercase},
  {0x47c, 0x47c, HB_Letter_Uppercase},
  {0x47d, 0x47d, HB_Letter_Lowercase},
  {0x47e, 0x47e, HB_Letter_Uppercase},
  {0x47f, 0x47f, HB_Letter_Lowercase},
  {0x480, 0x480, HB_Letter_Uppercase},
  {0x481, 0x481, HB_Letter_Lowercase},
  {0x482, 0x482, HB_Symbol_Other},
  {0x483, 0x487, HB_Mark_NonSpacing},
  {0x488, 0x489, HB_Mark_Enclosing},
  {0x48a, 0x48a, HB_Letter_Uppercase},
  {0x48b, 0x48b, HB_Letter_Lowercase},
  {0x48c, 0x48c, HB_Letter_Uppercase},
  {0x48d, 0x48d, HB_Letter_Lowercase},
  {0x48e, 0x48e, HB_Letter_Uppercase},
  {0x48f, 0x48f, HB_Letter_Lowercase},
  {0x490, 0x490, HB_Letter_Uppercase},
  {0x491, 0x491, HB_Letter_Lowercase},
  {0x492, 0x492, HB_Letter_Uppercase},
  {0x493, 0x493, HB_Letter_Lowercase},
  {0x494, 0x494, HB_Letter_Uppercase},
  {0x495, 0x495, HB_Letter_Lowercase},
  {0x496, 0x496, HB_Letter_Uppercase},
  {0x497, 0x497, HB_Letter_Lowercase},
  {0x498, 0x498, HB_Letter_Uppercase},
  {0x499, 0x499, HB_Letter_Lowercase},
  {0x49a, 0x49a, HB_Letter_Uppercase},
  {0x49b, 0x49b, HB_Letter_Lowercase},
  {0x49c, 0x49c, HB_Letter_Uppercase},
  {0x49d, 0x49d, HB_Letter_Lowercase},
  {0x49e, 0x49e, HB_Letter_Uppercase},
  {0x49f, 0x49f, HB_Letter_Lowercase},
  {0x4a0, 0x4a0, HB_Letter_Uppercase},
  {0x4a1, 0x4a1, HB_Letter_Lowercase},
  {0x4a2, 0x4a2, HB_Letter_Uppercase},
  {0x4a3, 0x4a3, HB_Letter_Lowercase},
  {0x4a4, 0x4a4, HB_Letter_Uppercase},
  {0x4a5, 0x4a5, HB_Letter_Lowercase},
  {0x4a6, 0x4a6, HB_Letter_Uppercase},
  {0x4a7, 0x4a7, HB_Letter_Lowercase},
  {0x4a8, 0x4a8, HB_Letter_Uppercase},
  {0x4a9, 0x4a9, HB_Letter_Lowercase},
  {0x4aa, 0x4aa, HB_Letter_Uppercase},
  {0x4ab, 0x4ab, HB_Letter_Lowercase},
  {0x4ac, 0x4ac, HB_Letter_Uppercase},
  {0x4ad, 0x4ad, HB_Letter_Lowercase},
  {0x4ae, 0x4ae, HB_Letter_Uppercase},
  {0x4af, 0x4af, HB_Letter_Lowercase},
  {0x4b0, 0x4b0, HB_Letter_Uppercase},
  {0x4b1, 0x4b1, HB_Letter_Lowercase},
  {0x4b2, 0x4b2, HB_Letter_Uppercase},
  {0x4b3, 0x4b3, HB_Letter_Lowercase},
  {0x4b4, 0x4b4, HB_Letter_Uppercase},
  {0x4b5, 0x4b5, HB_Letter_Lowercase},
  {0x4b6, 0x4b6, HB_Letter_Uppercase},
  {0x4b7, 0x4b7, HB_Letter_Lowercase},
  {0x4b8, 0x4b8, HB_Letter_Uppercase},
  {0x4b9, 0x4b9, HB_Letter_Lowercase},
  {0x4ba, 0x4ba, HB_Letter_Uppercase},
  {0x4bb, 0x4bb, HB_Letter_Lowercase},
  {0x4bc, 0x4bc, HB_Letter_Uppercase},
  {0x4bd, 0x4bd, HB_Letter_Lowercase},
  {0x4be, 0x4be, HB_Letter_Uppercase},
  {0x4bf, 0x4bf, HB_Letter_Lowercase},
  {0x4c0, 0x4c1, HB_Letter_Uppercase},
  {0x4c2, 0x4c2, HB_Letter_Lowercase},
  {0x4c3, 0x4c3, HB_Letter_Uppercase},
  {0x4c4, 0x4c4, HB_Letter_Lowercase},
  {0x4c5, 0x4c5, HB_Letter_Uppercase},
  {0x4c6, 0x4c6, HB_Letter_Lowercase},
  {0x4c7, 0x4c7, HB_Letter_Uppercase},
  {0x4c8, 0x4c8, HB_Letter_Lowercase},
  {0x4c9, 0x4c9, HB_Letter_Uppercase},
  {0x4ca, 0x4ca, HB_Letter_Lowercase},
  {0x4cb, 0x4cb, HB_Letter_Uppercase},
  {0x4cc, 0x4cc, HB_Letter_Lowercase},
  {0x4cd, 0x4cd, HB_Letter_Uppercase},
  {0x4ce, 0x4cf, HB_Letter_Lowercase},
  {0x4d0, 0x4d0, HB_Letter_Uppercase},
  {0x4d1, 0x4d1, HB_Letter_Lowercase},
  {0x4d2, 0x4d2, HB_Letter_Uppercase},
  {0x4d3, 0x4d3, HB_Letter_Lowercase},
  {0x4d4, 0x4d4, HB_Letter_Uppercase},
  {0x4d5, 0x4d5, HB_Letter_Lowercase},
  {0x4d6, 0x4d6, HB_Letter_Uppercase},
  {0x4d7, 0x4d7, HB_Letter_Lowercase},
  {0x4d8, 0x4d8, HB_Letter_Uppercase},
  {0x4d9, 0x4d9, HB_Letter_Lowercase},
  {0x4da, 0x4da, HB_Letter_Uppercase},
  {0x4db, 0x4db, HB_Letter_Lowercase},
  {0x4dc, 0x4dc, HB_Letter_Uppercase},
  {0x4dd, 0x4dd, HB_Letter_Lowercase},
  {0x4de, 0x4de, HB_Letter_Uppercase},
  {0x4df, 0x4df, HB_Letter_Lowercase},
  {0x4e0, 0x4e0, HB_Letter_Uppercase},
  {0x4e1, 0x4e1, HB_Letter_Lowercase},
  {0x4e2, 0x4e2, HB_Letter_Uppercase},
  {0x4e3, 0x4e3, HB_Letter_Lowercase},
  {0x4e4, 0x4e4, HB_Letter_Uppercase},
  {0x4e5, 0x4e5, HB_Letter_Lowercase},
  {0x4e6, 0x4e6, HB_Letter_Uppercase},
  {0x4e7, 0x4e7, HB_Letter_Lowercase},
  {0x4e8, 0x4e8, HB_Letter_Uppercase},
  {0x4e9, 0x4e9, HB_Letter_Lowercase},
  {0x4ea, 0x4ea, HB_Letter_Uppercase},
  {0x4eb, 0x4eb, HB_Letter_Lowercase},
  {0x4ec, 0x4ec, HB_Letter_Uppercase},
  {0x4ed, 0x4ed, HB_Letter_Lowercase},
  {0x4ee, 0x4ee, HB_Letter_Uppercase},
  {0x4ef, 0x4ef, HB_Letter_Lowercase},
  {0x4f0, 0x4f0, HB_Letter_Uppercase},
  {0x4f1, 0x4f1, HB_Letter_Lowercase},
  {0x4f2, 0x4f2, HB_Letter_Uppercase},
  {0x4f3, 0x4f3, HB_Letter_Lowercase},
  {0x4f4, 0x4f4, HB_Letter_Uppercase},
  {0x4f5, 0x4f5, HB_Letter_Lowercase},
  {0x4f6, 0x4f6, HB_Letter_Uppercase},
  {0x4f7, 0x4f7, HB_Letter_Lowercase},
  {0x4f8, 0x4f8, HB_Letter_Uppercase},
  {0x4f9, 0x4f9, HB_Letter_Lowercase},
  {0x4fa, 0x4fa, HB_Letter_Uppercase},
  {0x4fb, 0x4fb, HB_Letter_Lowercase},
  {0x4fc, 0x4fc, HB_Letter_Uppercase},
  {0x4fd, 0x4fd, HB_Letter_Lowercase},
  {0x4fe, 0x4fe, HB_Letter_Uppercase},
  {0x4ff, 0x4ff, HB_Letter_Lowercase},
  {0x500, 0x500, HB_Letter_Uppercase},
  {0x501, 0x501, HB_Letter_Lowercase},
  {0x502, 0x502, HB_Letter_Uppercase},
  {0x503, 0x503, HB_Letter_Lowercase},
  {0x504, 0x504, HB_Letter_Uppercase},
  {0x505, 0x505, HB_Letter_Lowercase},
  {0x506, 0x506, HB_Letter_Uppercase},
  {0x507, 0x507, HB_Letter_Lowercase},
  {0x508, 0x508, HB_Letter_Uppercase},
  {0x509, 0x509, HB_Letter_Lowercase},
  {0x50a, 0x50a, HB_Letter_Uppercase},
  {0x50b, 0x50b, HB_Letter_Lowercase},
  {0x50c, 0x50c, HB_Letter_Uppercase},
  {0x50d, 0x50d, HB_Letter_Lowercase},
  {0x50e, 0x50e, HB_Letter_Uppercase},
  {0x50f, 0x50f, HB_Letter_Lowercase},
  {0x510, 0x510, HB_Letter_Uppercase},
  {0x511, 0x511, HB_Letter_Lowercase},
  {0x512, 0x512, HB_Letter_Uppercase},
  {0x513, 0x513, HB_Letter_Lowercase},
  {0x514, 0x514, HB_Letter_Uppercase},
  {0x515, 0x515, HB_Letter_Lowercase},
  {0x516, 0x516, HB_Letter_Uppercase},
  {0x517, 0x517, HB_Letter_Lowercase},
  {0x518, 0x518, HB_Letter_Uppercase},
  {0x519, 0x519, HB_Letter_Lowercase},
  {0x51a, 0x51a, HB_Letter_Uppercase},
  {0x51b, 0x51b, HB_Letter_Lowercase},
  {0x51c, 0x51c, HB_Letter_Uppercase},
  {0x51d, 0x51d, HB_Letter_Lowercase},
  {0x51e, 0x51e, HB_Letter_Uppercase},
  {0x51f, 0x51f, HB_Letter_Lowercase},
  {0x520, 0x520, HB_Letter_Uppercase},
  {0x521, 0x521, HB_Letter_Lowercase},
  {0x522, 0x522, HB_Letter_Uppercase},
  {0x523, 0x523, HB_Letter_Lowercase},
  {0x524, 0x530, HB_Other_NotAssigned},
  {0x531, 0x556, HB_Letter_Uppercase},
  {0x557, 0x558, HB_Other_NotAssigned},
  {0x559, 0x559, HB_Letter_Modifier},
  {0x55a, 0x55f, HB_Punctuation_Other},
  {0x560, 0x560, HB_Other_NotAssigned},
  {0x561, 0x587, HB_Letter_Lowercase},
  {0x588, 0x588, HB_Other_NotAssigned},
  {0x589, 0x589, HB_Punctuation_Other},
  {0x58a, 0x58a, HB_Punctuation_Dash},
  {0x58b, 0x590, HB_Other_NotAssigned},
  {0x591, 0x5bd, HB_Mark_NonSpacing},
  {0x5be, 0x5be, HB_Punctuation_Dash},
  {0x5bf, 0x5bf, HB_Mark_NonSpacing},
  {0x5c0, 0x5c0, HB_Punctuation_Other},
  {0x5c1, 0x5c2, HB_Mark_NonSpacing},
  {0x5c3, 0x5c3, HB_Punctuation_Other},
  {0x5c4, 0x5c5, HB_Mark_NonSpacing},
  {0x5c6, 0x5c6, HB_Punctuation_Other},
  {0x5c7, 0x5c7, HB_Mark_NonSpacing},
  {0x5c8, 0x5cf, HB_Other_NotAssigned},
  {0x5d0, 0x5ea, HB_Letter_Other},
  {0x5eb, 0x5ef, HB_Other_NotAssigned},
  {0x5f0, 0x5f2, HB_Letter_Other},
  {0x5f3, 0x5f4, HB_Punctuation_Other},
  {0x5f5, 0x5ff, HB_Other_NotAssigned},
  {0x600, 0x603, HB_Other_Format},
  {0x604, 0x605, HB_Other_NotAssigned},
  {0x606, 0x608, HB_Symbol_Math},
  {0x609, 0x60a, HB_Punctuation_Other},
  {0x60b, 0x60b, HB_Symbol_Currency},
  {0x60c, 0x60d, HB_Punctuation_Other},
  {0x60e, 0x60f, HB_Symbol_Other},
  {0x610, 0x61a, HB_Mark_NonSpacing},
  {0x61b, 0x61b, HB_Punctuation_Other},
  {0x61c, 0x61d, HB_Other_NotAssigned},
  {0x61e, 0x61f, HB_Punctuation_Other},
  {0x620, 0x620, HB_Other_NotAssigned},
  {0x621, 0x63f, HB_Letter_Other},
  {0x640, 0x640, HB_Letter_Modifier},
  {0x641, 0x64a, HB_Letter_Other},
  {0x64b, 0x65e, HB_Mark_NonSpacing},
  {0x65f, 0x65f, HB_Other_NotAssigned},
  {0x660, 0x669, HB_Number_DecimalDigit},
  {0x66a, 0x66d, HB_Punctuation_Other},
  {0x66e, 0x66f, HB_Letter_Other},
  {0x670, 0x670, HB_Mark_NonSpacing},
  {0x671, 0x6d3, HB_Letter_Other},
  {0x6d4, 0x6d4, HB_Punctuation_Other},
  {0x6d5, 0x6d5, HB_Letter_Other},
  {0x6d6, 0x6dc, HB_Mark_NonSpacing},
  {0x6dd, 0x6dd, HB_Other_Format},
  {0x6de, 0x6de, HB_Mark_Enclosing},
  {0x6df, 0x6e4, HB_Mark_NonSpacing},
  {0x6e5, 0x6e6, HB_Letter_Modifier},
  {0x6e7, 0x6e8, HB_Mark_NonSpacing},
  {0x6e9, 0x6e9, HB_Symbol_Other},
  {0x6ea, 0x6ed, HB_Mark_NonSpacing},
  {0x6ee, 0x6ef, HB_Letter_Other},
  {0x6f0, 0x6f9, HB_Number_DecimalDigit},
  {0x6fa, 0x6fc, HB_Letter_Other},
  {0x6fd, 0x6fe, HB_Symbol_Other},
  {0x6ff, 0x6ff, HB_Letter_Other},
  {0x700, 0x70d, HB_Punctuation_Other},
  {0x70e, 0x70e, HB_Other_NotAssigned},
  {0x70f, 0x70f, HB_Other_Format},
  {0x710, 0x710, HB_Letter_Other},
  {0x711, 0x711, HB_Mark_NonSpacing},
  {0x712, 0x72f, HB_Letter_Other},
  {0x730, 0x74a, HB_Mark_NonSpacing},
  {0x74b, 0x74c, HB_Other_NotAssigned},
  {0x74d, 0x7a5, HB_Letter_Other},
  {0x7a6, 0x7b0, HB_Mark_NonSpacing},
  {0x7b1, 0x7b1, HB_Letter_Other},
  {0x7b2, 0x7bf, HB_Other_NotAssigned},
  {0x7c0, 0x7c9, HB_Number_DecimalDigit},
  {0x7ca, 0x7ea, HB_Letter_Other},
  {0x7eb, 0x7f3, HB_Mark_NonSpacing},
  {0x7f4, 0x7f5, HB_Letter_Modifier},
  {0x7f6, 0x7f6, HB_Symbol_Other},
  {0x7f7, 0x7f9, HB_Punctuation_Other},
  {0x7fa, 0x7fa, HB_Letter_Modifier},
  {0x7fb, 0x900, HB_Other_NotAssigned},
  {0x901, 0x902, HB_Mark_NonSpacing},
  {0x903, 0x903, HB_Mark_SpacingCombining},
  {0x904, 0x939, HB_Letter_Other},
  {0x93a, 0x93b, HB_Other_NotAssigned},
  {0x93c, 0x93c, HB_Mark_NonSpacing},
  {0x93d, 0x93d, HB_Letter_Other},
  {0x93e, 0x940, HB_Mark_SpacingCombining},
  {0x941, 0x948, HB_Mark_NonSpacing},
  {0x949, 0x94c, HB_Mark_SpacingCombining},
  {0x94d, 0x94d, HB_Mark_NonSpacing},
  {0x94e, 0x94f, HB_Other_NotAssigned},
  {0x950, 0x950, HB_Letter_Other},
  {0x951, 0x954, HB_Mark_NonSpacing},
  {0x955, 0x957, HB_Other_NotAssigned},
  {0x958, 0x961, HB_Letter_Other},
  {0x962, 0x963, HB_Mark_NonSpacing},
  {0x964, 0x965, HB_Punctuation_Other},
  {0x966, 0x96f, HB_Number_DecimalDigit},
  {0x970, 0x970, HB_Punctuation_Other},
  {0x971, 0x971, HB_Letter_Modifier},
  {0x972, 0x972, HB_Letter_Other},
  {0x973, 0x97a, HB_Other_NotAssigned},
  {0x97b, 0x97f, HB_Letter_Other},
  {0x980, 0x980, HB_Other_NotAssigned},
  {0x981, 0x981, HB_Mark_NonSpacing},
  {0x982, 0x983, HB_Mark_SpacingCombining},
  {0x984, 0x984, HB_Other_NotAssigned},
  {0x985, 0x98c, HB_Letter_Other},
  {0x98d, 0x98e, HB_Other_NotAssigned},
  {0x98f, 0x990, HB_Letter_Other},
  {0x991, 0x992, HB_Other_NotAssigned},
  {0x993, 0x9a8, HB_Letter_Other},
  {0x9a9, 0x9a9, HB_Other_NotAssigned},
  {0x9aa, 0x9b0, HB_Letter_Other},
  {0x9b1, 0x9b1, HB_Other_NotAssigned},
  {0x9b2, 0x9b2, HB_Letter_Other},
  {0x9b3, 0x9b5, HB_Other_NotAssigned},
  {0x9b6, 0x9b9, HB_Letter_Other},
  {0x9ba, 0x9bb, HB_Other_NotAssigned},
  {0x9bc, 0x9bc, HB_Mark_NonSpacing},
  {0x9bd, 0x9bd, HB_Letter_Other},
  {0x9be, 0x9c0, HB_Mark_SpacingCombining},
  {0x9c1, 0x9c4, HB_Mark_NonSpacing},
  {0x9c5, 0x9c6, HB_Other_NotAssigned},
  {0x9c7, 0x9c8, HB_Mark_SpacingCombining},
  {0x9c9, 0x9ca, HB_Other_NotAssigned},
  {0x9cb, 0x9cc, HB_Mark_SpacingCombining},
  {0x9cd, 0x9cd, HB_Mark_NonSpacing},
  {0x9ce, 0x9ce, HB_Letter_Other},
  {0x9cf, 0x9d6, HB_Other_NotAssigned},
  {0x9d7, 0x9d7, HB_Mark_SpacingCombining},
  {0x9d8, 0x9db, HB_Other_NotAssigned},
  {0x9dc, 0x9dd, HB_Letter_Other},
  {0x9de, 0x9de, HB_Other_NotAssigned},
  {0x9df, 0x9e1, HB_Letter_Other},
  {0x9e2, 0x9e3, HB_Mark_NonSpacing},
  {0x9e4, 0x9e5, HB_Other_NotAssigned},
  {0x9e6, 0x9ef, HB_Number_DecimalDigit},
  {0x9f0, 0x9f1, HB_Letter_Other},
  {0x9f2, 0x9f3, HB_Symbol_Currency},
  {0x9f4, 0x9f9, HB_Number_Other},
  {0x9fa, 0x9fa, HB_Symbol_Other},
  {0x9fb, 0xa00, HB_Other_NotAssigned},
  {0xa01, 0xa02, HB_Mark_NonSpacing},
  {0xa03, 0xa03, HB_Mark_SpacingCombining},
  {0xa04, 0xa04, HB_Other_NotAssigned},
  {0xa05, 0xa0a, HB_Letter_Other},
  {0xa0b, 0xa0e, HB_Other_NotAssigned},
  {0xa0f, 0xa10, HB_Letter_Other},
  {0xa11, 0xa12, HB_Other_NotAssigned},
  {0xa13, 0xa28, HB_Letter_Other},
  {0xa29, 0xa29, HB_Other_NotAssigned},
  {0xa2a, 0xa30, HB_Letter_Other},
  {0xa31, 0xa31, HB_Other_NotAssigned},
  {0xa32, 0xa33, HB_Letter_Other},
  {0xa34, 0xa34, HB_Other_NotAssigned},
  {0xa35, 0xa36, HB_Letter_Other},
  {0xa37, 0xa37, HB_Other_NotAssigned},
  {0xa38, 0xa39, HB_Letter_Other},
  {0xa3a, 0xa3b, HB_Other_NotAssigned},
  {0xa3c, 0xa3c, HB_Mark_NonSpacing},
  {0xa3d, 0xa3d, HB_Other_NotAssigned},
  {0xa3e, 0xa40, HB_Mark_SpacingCombining},
  {0xa41, 0xa42, HB_Mark_NonSpacing},
  {0xa43, 0xa46, HB_Other_NotAssigned},
  {0xa47, 0xa48, HB_Mark_NonSpacing},
  {0xa49, 0xa4a, HB_Other_NotAssigned},
  {0xa4b, 0xa4d, HB_Mark_NonSpacing},
  {0xa4e, 0xa50, HB_Other_NotAssigned},
  {0xa51, 0xa51, HB_Mark_NonSpacing},
  {0xa52, 0xa58, HB_Other_NotAssigned},
  {0xa59, 0xa5c, HB_Letter_Other},
  {0xa5d, 0xa5d, HB_Other_NotAssigned},
  {0xa5e, 0xa5e, HB_Letter_Other},
  {0xa5f, 0xa65, HB_Other_NotAssigned},
  {0xa66, 0xa6f, HB_Number_DecimalDigit},
  {0xa70, 0xa71, HB_Mark_NonSpacing},
  {0xa72, 0xa74, HB_Letter_Other},
  {0xa75, 0xa75, HB_Mark_NonSpacing},
  {0xa76, 0xa80, HB_Other_NotAssigned},
  {0xa81, 0xa82, HB_Mark_NonSpacing},
  {0xa83, 0xa83, HB_Mark_SpacingCombining},
  {0xa84, 0xa84, HB_Other_NotAssigned},
  {0xa85, 0xa8d, HB_Letter_Other},
  {0xa8e, 0xa8e, HB_Other_NotAssigned},
  {0xa8f, 0xa91, HB_Letter_Other},
  {0xa92, 0xa92, HB_Other_NotAssigned},
  {0xa93, 0xaa8, HB_Letter_Other},
  {0xaa9, 0xaa9, HB_Other_NotAssigned},
  {0xaaa, 0xab0, HB_Letter_Other},
  {0xab1, 0xab1, HB_Other_NotAssigned},
  {0xab2, 0xab3, HB_Letter_Other},
  {0xab4, 0xab4, HB_Other_NotAssigned},
  {0xab5, 0xab9, HB_Letter_Other},
  {0xaba, 0xabb, HB_Other_NotAssigned},
  {0xabc, 0xabc, HB_Mark_NonSpacing},
  {0xabd, 0xabd, HB_Letter_Other},
  {0xabe, 0xac0, HB_Mark_SpacingCombining},
  {0xac1, 0xac5, HB_Mark_NonSpacing},
  {0xac6, 0xac6, HB_Other_NotAssigned},
  {0xac7, 0xac8, HB_Mark_NonSpacing},
  {0xac9, 0xac9, HB_Mark_SpacingCombining},
  {0xaca, 0xaca, HB_Other_NotAssigned},
  {0xacb, 0xacc, HB_Mark_SpacingCombining},
  {0xacd, 0xacd, HB_Mark_NonSpacing},
  {0xace, 0xacf, HB_Other_NotAssigned},
  {0xad0, 0xad0, HB_Letter_Other},
  {0xad1, 0xadf, HB_Other_NotAssigned},
  {0xae0, 0xae1, HB_Letter_Other},
  {0xae2, 0xae3, HB_Mark_NonSpacing},
  {0xae4, 0xae5, HB_Other_NotAssigned},
  {0xae6, 0xaef, HB_Number_DecimalDigit},
  {0xaf0, 0xaf0, HB_Other_NotAssigned},
  {0xaf1, 0xaf1, HB_Symbol_Currency},
  {0xaf2, 0xb00, HB_Other_NotAssigned},
  {0xb01, 0xb01, HB_Mark_NonSpacing},
  {0xb02, 0xb03, HB_Mark_SpacingCombining},
  {0xb04, 0xb04, HB_Other_NotAssigned},
  {0xb05, 0xb0c, HB_Letter_Other},
  {0xb0d, 0xb0e, HB_Other_NotAssigned},
  {0xb0f, 0xb10, HB_Letter_Other},
  {0xb11, 0xb12, HB_Other_NotAssigned},
  {0xb13, 0xb28, HB_Letter_Other},
  {0xb29, 0xb29, HB_Other_NotAssigned},
  {0xb2a, 0xb30, HB_Letter_Other},
  {0xb31, 0xb31, HB_Other_NotAssigned},
  {0xb32, 0xb33, HB_Letter_Other},
  {0xb34, 0xb34, HB_Other_NotAssigned},
  {0xb35, 0xb39, HB_Letter_Other},
  {0xb3a, 0xb3b, HB_Other_NotAssigned},
  {0xb3c, 0xb3c, HB_Mark_NonSpacing},
  {0xb3d, 0xb3d, HB_Letter_Other},
  {0xb3e, 0xb3e, HB_Mark_SpacingCombining},
  {0xb3f, 0xb3f, HB_Mark_NonSpacing},
  {0xb40, 0xb40, HB_Mark_SpacingCombining},
  {0xb41, 0xb44, HB_Mark_NonSpacing},
  {0xb45, 0xb46, HB_Other_NotAssigned},
  {0xb47, 0xb48, HB_Mark_SpacingCombining},
  {0xb49, 0xb4a, HB_Other_NotAssigned},
  {0xb4b, 0xb4c, HB_Mark_SpacingCombining},
  {0xb4d, 0xb4d, HB_Mark_NonSpacing},
  {0xb4e, 0xb55, HB_Other_NotAssigned},
  {0xb56, 0xb56, HB_Mark_NonSpacing},
  {0xb57, 0xb57, HB_Mark_SpacingCombining},
  {0xb58, 0xb5b, HB_Other_NotAssigned},
  {0xb5c, 0xb5d, HB_Letter_Other},
  {0xb5e, 0xb5e, HB_Other_NotAssigned},
  {0xb5f, 0xb61, HB_Letter_Other},
  {0xb62, 0xb63, HB_Mark_NonSpacing},
  {0xb64, 0xb65, HB_Other_NotAssigned},
  {0xb66, 0xb6f, HB_Number_DecimalDigit},
  {0xb70, 0xb70, HB_Symbol_Other},
  {0xb71, 0xb71, HB_Letter_Other},
  {0xb72, 0xb81, HB_Other_NotAssigned},
  {0xb82, 0xb82, HB_Mark_NonSpacing},
  {0xb83, 0xb83, HB_Letter_Other},
  {0xb84, 0xb84, HB_Other_NotAssigned},
  {0xb85, 0xb8a, HB_Letter_Other},
  {0xb8b, 0xb8d, HB_Other_NotAssigned},
  {0xb8e, 0xb90, HB_Letter_Other},
  {0xb91, 0xb91, HB_Other_NotAssigned},
  {0xb92, 0xb95, HB_Letter_Other},
  {0xb96, 0xb98, HB_Other_NotAssigned},
  {0xb99, 0xb9a, HB_Letter_Other},
  {0xb9b, 0xb9b, HB_Other_NotAssigned},
  {0xb9c, 0xb9c, HB_Letter_Other},
  {0xb9d, 0xb9d, HB_Other_NotAssigned},
  {0xb9e, 0xb9f, HB_Letter_Other},
  {0xba0, 0xba2, HB_Other_NotAssigned},
  {0xba3, 0xba4, HB_Letter_Other},
  {0xba5, 0xba7, HB_Other_NotAssigned},
  {0xba8, 0xbaa, HB_Letter_Other},
  {0xbab, 0xbad, HB_Other_NotAssigned},
  {0xbae, 0xbb9, HB_Letter_Other},
  {0xbba, 0xbbd, HB_Other_NotAssigned},
  {0xbbe, 0xbbf, HB_Mark_SpacingCombining},
  {0xbc0, 0xbc0, HB_Mark_NonSpacing},
  {0xbc1, 0xbc2, HB_Mark_SpacingCombining},
  {0xbc3, 0xbc5, HB_Other_NotAssigned},
  {0xbc6, 0xbc8, HB_Mark_SpacingCombining},
  {0xbc9, 0xbc9, HB_Other_NotAssigned},
  {0xbca, 0xbcc, HB_Mark_SpacingCombining},
  {0xbcd, 0xbcd, HB_Mark_NonSpacing},
  {0xbce, 0xbcf, HB_Other_NotAssigned},
  {0xbd0, 0xbd0, HB_Letter_Other},
  {0xbd1, 0xbd6, HB_Other_NotAssigned},
  {0xbd7, 0xbd7, HB_Mark_SpacingCombining},
  {0xbd8, 0xbe5, HB_Other_NotAssigned},
  {0xbe6, 0xbef, HB_Number_DecimalDigit},
  {0xbf0, 0xbf2, HB_Number_Other},
  {0xbf3, 0xbf8, HB_Symbol_Other},
  {0xbf9, 0xbf9, HB_Symbol_Currency},
  {0xbfa, 0xbfa, HB_Symbol_Other},
  {0xbfb, 0xc00, HB_Other_NotAssigned},
  {0xc01, 0xc03, HB_Mark_SpacingCombining},
  {0xc04, 0xc04, HB_Other_NotAssigned},
  {0xc05, 0xc0c, HB_Letter_Other},
  {0xc0d, 0xc0d, HB_Other_NotAssigned},
  {0xc0e, 0xc10, HB_Letter_Other},
  {0xc11, 0xc11, HB_Other_NotAssigned},
  {0xc12, 0xc28, HB_Letter_Other},
  {0xc29, 0xc29, HB_Other_NotAssigned},
  {0xc2a, 0xc33, HB_Letter_Other},
  {0xc34, 0xc34, HB_Other_NotAssigned},
  {0xc35, 0xc39, HB_Letter_Other},
  {0xc3a, 0xc3c, HB_Other_NotAssigned},
  {0xc3d, 0xc3d, HB_Letter_Other},
  {0xc3e, 0xc40, HB_Mark_NonSpacing},
  {0xc41, 0xc44, HB_Mark_SpacingCombining},
  {0xc45, 0xc45, HB_Other_NotAssigned},
  {0xc46, 0xc48, HB_Mark_NonSpacing},
  {0xc49, 0xc49, HB_Other_NotAssigned},
  {0xc4a, 0xc4d, HB_Mark_NonSpacing},
  {0xc4e, 0xc54, HB_Other_NotAssigned},
  {0xc55, 0xc56, HB_Mark_NonSpacing},
  {0xc57, 0xc57, HB_Other_NotAssigned},
  {0xc58, 0xc59, HB_Letter_Other},
  {0xc5a, 0xc5f, HB_Other_NotAssigned},
  {0xc60, 0xc61, HB_Letter_Other},
  {0xc62, 0xc63, HB_Mark_NonSpacing},
  {0xc64, 0xc65, HB_Other_NotAssigned},
  {0xc66, 0xc6f, HB_Number_DecimalDigit},
  {0xc70, 0xc77, HB_Other_NotAssigned},
  {0xc78, 0xc7e, HB_Number_Other},
  {0xc7f, 0xc7f, HB_Symbol_Other},
  {0xc80, 0xc81, HB_Other_NotAssigned},
  {0xc82, 0xc83, HB_Mark_SpacingCombining},
  {0xc84, 0xc84, HB_Other_NotAssigned},
  {0xc85, 0xc8c, HB_Letter_Other},
  {0xc8d, 0xc8d, HB_Other_NotAssigned},
  {0xc8e, 0xc90, HB_Letter_Other},
  {0xc91, 0xc91, HB_Other_NotAssigned},
  {0xc92, 0xca8, HB_Letter_Other},
  {0xca9, 0xca9, HB_Other_NotAssigned},
  {0xcaa, 0xcb3, HB_Letter_Other},
  {0xcb4, 0xcb4, HB_Other_NotAssigned},
  {0xcb5, 0xcb9, HB_Letter_Other},
  {0xcba, 0xcbb, HB_Other_NotAssigned},
  {0xcbc, 0xcbc, HB_Mark_NonSpacing},
  {0xcbd, 0xcbd, HB_Letter_Other},
  {0xcbe, 0xcbe, HB_Mark_SpacingCombining},
  {0xcbf, 0xcbf, HB_Mark_NonSpacing},
  {0xcc0, 0xcc4, HB_Mark_SpacingCombining},
  {0xcc5, 0xcc5, HB_Other_NotAssigned},
  {0xcc6, 0xcc6, HB_Mark_NonSpacing},
  {0xcc7, 0xcc8, HB_Mark_SpacingCombining},
  {0xcc9, 0xcc9, HB_Other_NotAssigned},
  {0xcca, 0xccb, HB_Mark_SpacingCombining},
  {0xccc, 0xccd, HB_Mark_NonSpacing},
  {0xcce, 0xcd4, HB_Other_NotAssigned},
  {0xcd5, 0xcd6, HB_Mark_SpacingCombining},
  {0xcd7, 0xcdd, HB_Other_NotAssigned},
  {0xcde, 0xcde, HB_Letter_Other},
  {0xcdf, 0xcdf, HB_Other_NotAssigned},
  {0xce0, 0xce1, HB_Letter_Other},
  {0xce2, 0xce3, HB_Mark_NonSpacing},
  {0xce4, 0xce5, HB_Other_NotAssigned},
  {0xce6, 0xcef, HB_Number_DecimalDigit},
  {0xcf0, 0xcf0, HB_Other_NotAssigned},
  {0xcf1, 0xcf2, HB_Symbol_Other},
  {0xcf3, 0xd01, HB_Other_NotAssigned},
  {0xd02, 0xd03, HB_Mark_SpacingCombining},
  {0xd04, 0xd04, HB_Other_NotAssigned},
  {0xd05, 0xd0c, HB_Letter_Other},
  {0xd0d, 0xd0d, HB_Other_NotAssigned},
  {0xd0e, 0xd10, HB_Letter_Other},
  {0xd11, 0xd11, HB_Other_NotAssigned},
  {0xd12, 0xd28, HB_Letter_Other},
  {0xd29, 0xd29, HB_Other_NotAssigned},
  {0xd2a, 0xd39, HB_Letter_Other},
  {0xd3a, 0xd3c, HB_Other_NotAssigned},
  {0xd3d, 0xd3d, HB_Letter_Other},
  {0xd3e, 0xd40, HB_Mark_SpacingCombining},
  {0xd41, 0xd44, HB_Mark_NonSpacing},
  {0xd45, 0xd45, HB_Other_NotAssigned},
  {0xd46, 0xd48, HB_Mark_SpacingCombining},
  {0xd49, 0xd49, HB_Other_NotAssigned},
  {0xd4a, 0xd4c, HB_Mark_SpacingCombining},
  {0xd4d, 0xd4d, HB_Mark_NonSpacing},
  {0xd4e, 0xd56, HB_Other_NotAssigned},
  {0xd57, 0xd57, HB_Mark_SpacingCombining},
  {0xd58, 0xd5f, HB_Other_NotAssigned},
  {0xd60, 0xd61, HB_Letter_Other},
  {0xd62, 0xd63, HB_Mark_NonSpacing},
  {0xd64, 0xd65, HB_Other_NotAssigned},
  {0xd66, 0xd6f, HB_Number_DecimalDigit},
  {0xd70, 0xd75, HB_Number_Other},
  {0xd76, 0xd78, HB_Other_NotAssigned},
  {0xd79, 0xd79, HB_Symbol_Other},
  {0xd7a, 0xd7f, HB_Letter_Other},
  {0xd80, 0xd81, HB_Other_NotAssigned},
  {0xd82, 0xd83, HB_Mark_SpacingCombining},
  {0xd84, 0xd84, HB_Other_NotAssigned},
  {0xd85, 0xd96, HB_Letter_Other},
  {0xd97, 0xd99, HB_Other_NotAssigned},
  {0xd9a, 0xdb1, HB_Letter_Other},
  {0xdb2, 0xdb2, HB_Other_NotAssigned},
  {0xdb3, 0xdbb, HB_Letter_Other},
  {0xdbc, 0xdbc, HB_Other_NotAssigned},
  {0xdbd, 0xdbd, HB_Letter_Other},
  {0xdbe, 0xdbf, HB_Other_NotAssigned},
  {0xdc0, 0xdc6, HB_Letter_Other},
  {0xdc7, 0xdc9, HB_Other_NotAssigned},
  {0xdca, 0xdca, HB_Mark_NonSpacing},
  {0xdcb, 0xdce, HB_Other_NotAssigned},
  {0xdcf, 0xdd1, HB_Mark_SpacingCombining},
  {0xdd2, 0xdd4, HB_Mark_NonSpacing},
  {0xdd5, 0xdd5, HB_Other_NotAssigned},
  {0xdd6, 0xdd6, HB_Mark_NonSpacing},
  {0xdd7, 0xdd7, HB_Other_NotAssigned},
  {0xdd8, 0xddf, HB_Mark_SpacingCombining},
  {0xde0, 0xdf1, HB_Other_NotAssigned},
  {0xdf2, 0xdf3, HB_Mark_SpacingCombining},
  {0xdf4, 0xdf4, HB_Punctuation_Other},
  {0xdf5, 0xe00, HB_Other_NotAssigned},
  {0xe01, 0xe30, HB_Letter_Other},
  {0xe31, 0xe31, HB_Mark_NonSpacing},
  {0xe32, 0xe33, HB_Letter_Other},
  {0xe34, 0xe3a, HB_Mark_NonSpacing},
  {0xe3b, 0xe3e, HB_Other_NotAssigned},
  {0xe3f, 0xe3f, HB_Symbol_Currency},
  {0xe40, 0xe45, HB_Letter_Other},
  {0xe46, 0xe46, HB_Letter_Modifier},
  {0xe47, 0xe4e, HB_Mark_NonSpacing},
  {0xe4f, 0xe4f, HB_Punctuation_Other},
  {0xe50, 0xe59, HB_Number_DecimalDigit},
  {0xe5a, 0xe5b, HB_Punctuation_Other},
  {0xe5c, 0xe80, HB_Other_NotAssigned},
  {0xe81, 0xe82, HB_Letter_Other},
  {0xe83, 0xe83, HB_Other_NotAssigned},
  {0xe84, 0xe84, HB_Letter_Other},
  {0xe85, 0xe86, HB_Other_NotAssigned},
  {0xe87, 0xe88, HB_Letter_Other},
  {0xe89, 0xe89, HB_Other_NotAssigned},
  {0xe8a, 0xe8a, HB_Letter_Other},
  {0xe8b, 0xe8c, HB_Other_NotAssigned},
  {0xe8d, 0xe8d, HB_Letter_Other},
  {0xe8e, 0xe93, HB_Other_NotAssigned},
  {0xe94, 0xe97, HB_Letter_Other},
  {0xe98, 0xe98, HB_Other_NotAssigned},
  {0xe99, 0xe9f, HB_Letter_Other},
  {0xea0, 0xea0, HB_Other_NotAssigned},
  {0xea1, 0xea3, HB_Letter_Other},
  {0xea4, 0xea4, HB_Other_NotAssigned},
  {0xea5, 0xea5, HB_Letter_Other},
  {0xea6, 0xea6, HB_Other_NotAssigned},
  {0xea7, 0xea7, HB_Letter_Other},
  {0xea8, 0xea9, HB_Other_NotAssigned},
  {0xeaa, 0xeab, HB_Letter_Other},
  {0xeac, 0xeac, HB_Other_NotAssigned},
  {0xead, 0xeb0, HB_Letter_Other},
  {0xeb1, 0xeb1, HB_Mark_NonSpacing},
  {0xeb2, 0xeb3, HB_Letter_Other},
  {0xeb4, 0xeb9, HB_Mark_NonSpacing},
  {0xeba, 0xeba, HB_Other_NotAssigned},
  {0xebb, 0xebc, HB_Mark_NonSpacing},
  {0xebd, 0xebd, HB_Letter_Other},
  {0xebe, 0xebf, HB_Other_NotAssigned},
  {0xec0, 0xec4, HB_Letter_Other},
  {0xec5, 0xec5, HB_Other_NotAssigned},
  {0xec6, 0xec6, HB_Letter_Modifier},
  {0xec7, 0xec7, HB_Other_NotAssigned},
  {0xec8, 0xecd, HB_Mark_NonSpacing},
  {0xece, 0xecf, HB_Other_NotAssigned},
  {0xed0, 0xed9, HB_Number_DecimalDigit},
  {0xeda, 0xedb, HB_Other_NotAssigned},
  {0xedc, 0xedd, HB_Letter_Other},
  {0xede, 0xeff, HB_Other_NotAssigned},
  {0xf00, 0xf00, HB_Letter_Other},
  {0xf01, 0xf03, HB_Symbol_Other},
  {0xf04, 0xf12, HB_Punctuation_Other},
  {0xf13, 0xf17, HB_Symbol_Other},
  {0xf18, 0xf19, HB_Mark_NonSpacing},
  {0xf1a, 0xf1f, HB_Symbol_Other},
  {0xf20, 0xf29, HB_Number_DecimalDigit},
  {0xf2a, 0xf33, HB_Number_Other},
  {0xf34, 0xf34, HB_Symbol_Other},
  {0xf35, 0xf35, HB_Mark_NonSpacing},
  {0xf36, 0xf36, HB_Symbol_Other},
  {0xf37, 0xf37, HB_Mark_NonSpacing},
  {0xf38, 0xf38, HB_Symbol_Other},
  {0xf39, 0xf39, HB_Mark_NonSpacing},
  {0xf3a, 0xf3a, HB_Punctuation_Open},
  {0xf3b, 0xf3b, HB_Punctuation_Close},
  {0xf3c, 0xf3c, HB_Punctuation_Open},
  {0xf3d, 0xf3d, HB_Punctuation_Close},
  {0xf3e, 0xf3f, HB_Mark_SpacingCombining},
  {0xf40, 0xf47, HB_Letter_Other},
  {0xf48, 0xf48, HB_Other_NotAssigned},
  {0xf49, 0xf6c, HB_Letter_Other},
  {0xf6d, 0xf70, HB_Other_NotAssigned},
  {0xf71, 0xf7e, HB_Mark_NonSpacing},
  {0xf7f, 0xf7f, HB_Mark_SpacingCombining},
  {0xf80, 0xf84, HB_Mark_NonSpacing},
  {0xf85, 0xf85, HB_Punctuation_Other},
  {0xf86, 0xf87, HB_Mark_NonSpacing},
  {0xf88, 0xf8b, HB_Letter_Other},
  {0xf8c, 0xf8f, HB_Other_NotAssigned},
  {0xf90, 0xf97, HB_Mark_NonSpacing},
  {0xf98, 0xf98, HB_Other_NotAssigned},
  {0xf99, 0xfbc, HB_Mark_NonSpacing},
  {0xfbd, 0xfbd, HB_Other_NotAssigned},
  {0xfbe, 0xfc5, HB_Symbol_Other},
  {0xfc6, 0xfc6, HB_Mark_NonSpacing},
  {0xfc7, 0xfcc, HB_Symbol_Other},
  {0xfcd, 0xfcd, HB_Other_NotAssigned},
  {0xfce, 0xfcf, HB_Symbol_Other},
  {0xfd0, 0xfd4, HB_Punctuation_Other},
  {0xfd5, 0xfff, HB_Other_NotAssigned},
  {0x1000, 0x102a, HB_Letter_Other},
  {0x102b, 0x102c, HB_Mark_SpacingCombining},
  {0x102d, 0x1030, HB_Mark_NonSpacing},
  {0x1031, 0x1031, HB_Mark_SpacingCombining},
  {0x1032, 0x1037, HB_Mark_NonSpacing},
  {0x1038, 0x1038, HB_Mark_SpacingCombining},
  {0x1039, 0x103a, HB_Mark_NonSpacing},
  {0x103b, 0x103c, HB_Mark_SpacingCombining},
  {0x103d, 0x103e, HB_Mark_NonSpacing},
  {0x103f, 0x103f, HB_Letter_Other},
  {0x1040, 0x1049, HB_Number_DecimalDigit},
  {0x104a, 0x104f, HB_Punctuation_Other},
  {0x1050, 0x1055, HB_Letter_Other},
  {0x1056, 0x1057, HB_Mark_SpacingCombining},
  {0x1058, 0x1059, HB_Mark_NonSpacing},
  {0x105a, 0x105d, HB_Letter_Other},
  {0x105e, 0x1060, HB_Mark_NonSpacing},
  {0x1061, 0x1061, HB_Letter_Other},
  {0x1062, 0x1064, HB_Mark_SpacingCombining},
  {0x1065, 0x1066, HB_Letter_Other},
  {0x1067, 0x106d, HB_Mark_SpacingCombining},
  {0x106e, 0x1070, HB_Letter_Other},
  {0x1071, 0x1074, HB_Mark_NonSpacing},
  {0x1075, 0x1081, HB_Letter_Other},
  {0x1082, 0x1082, HB_Mark_NonSpacing},
  {0x1083, 0x1084, HB_Mark_SpacingCombining},
  {0x1085, 0x1086, HB_Mark_NonSpacing},
  {0x1087, 0x108c, HB_Mark_SpacingCombining},
  {0x108d, 0x108d, HB_Mark_NonSpacing},
  {0x108e, 0x108e, HB_Letter_Other},
  {0x108f, 0x108f, HB_Mark_SpacingCombining},
  {0x1090, 0x1099, HB_Number_DecimalDigit},
  {0x109a, 0x109d, HB_Other_NotAssigned},
  {0x109e, 0x109f, HB_Symbol_Other},
  {0x10a0, 0x10c5, HB_Letter_Uppercase},
  {0x10c6, 0x10cf, HB_Other_NotAssigned},
  {0x10d0, 0x10fa, HB_Letter_Other},
  {0x10fb, 0x10fb, HB_Punctuation_Other},
  {0x10fc, 0x10fc, HB_Letter_Modifier},
  {0x10fd, 0x10ff, HB_Other_NotAssigned},
  {0x1100, 0x1159, HB_Letter_Other},
  {0x115a, 0x115e, HB_Other_NotAssigned},
  {0x115f, 0x11a2, HB_Letter_Other},
  {0x11a3, 0x11a7, HB_Other_NotAssigned},
  {0x11a8, 0x11f9, HB_Letter_Other},
  {0x11fa, 0x11ff, HB_Other_NotAssigned},
  {0x1200, 0x1248, HB_Letter_Other},
  {0x1249, 0x1249, HB_Other_NotAssigned},
  {0x124a, 0x124d, HB_Letter_Other},
  {0x124e, 0x124f, HB_Other_NotAssigned},
  {0x1250, 0x1256, HB_Letter_Other},
  {0x1257, 0x1257, HB_Other_NotAssigned},
  {0x1258, 0x1258, HB_Letter_Other},
  {0x1259, 0x1259, HB_Other_NotAssigned},
  {0x125a, 0x125d, HB_Letter_Other},
  {0x125e, 0x125f, HB_Other_NotAssigned},
  {0x1260, 0x1288, HB_Letter_Other},
  {0x1289, 0x1289, HB_Other_NotAssigned},
  {0x128a, 0x128d, HB_Letter_Other},
  {0x128e, 0x128f, HB_Other_NotAssigned},
  {0x1290, 0x12b0, HB_Letter_Other},
  {0x12b1, 0x12b1, HB_Other_NotAssigned},
  {0x12b2, 0x12b5, HB_Letter_Other},
  {0x12b6, 0x12b7, HB_Other_NotAssigned},
  {0x12b8, 0x12be, HB_Letter_Other},
  {0x12bf, 0x12bf, HB_Other_NotAssigned},
  {0x12c0, 0x12c0, HB_Letter_Other},
  {0x12c1, 0x12c1, HB_Other_NotAssigned},
  {0x12c2, 0x12c5, HB_Letter_Other},
  {0x12c6, 0x12c7, HB_Other_NotAssigned},
  {0x12c8, 0x12d6, HB_Letter_Other},
  {0x12d7, 0x12d7, HB_Other_NotAssigned},
  {0x12d8, 0x1310, HB_Letter_Other},
  {0x1311, 0x1311, HB_Other_NotAssigned},
  {0x1312, 0x1315, HB_Letter_Other},
  {0x1316, 0x1317, HB_Other_NotAssigned},
  {0x1318, 0x135a, HB_Letter_Other},
  {0x135b, 0x135e, HB_Other_NotAssigned},
  {0x135f, 0x135f, HB_Mark_NonSpacing},
  {0x1360, 0x1360, HB_Symbol_Other},
  {0x1361, 0x1368, HB_Punctuation_Other},
  {0x1369, 0x137c, HB_Number_Other},
  {0x137d, 0x137f, HB_Other_NotAssigned},
  {0x1380, 0x138f, HB_Letter_Other},
  {0x1390, 0x1399, HB_Symbol_Other},
  {0x139a, 0x139f, HB_Other_NotAssigned},
  {0x13a0, 0x13f4, HB_Letter_Other},
  {0x13f5, 0x1400, HB_Other_NotAssigned},
  {0x1401, 0x166c, HB_Letter_Other},
  {0x166d, 0x166e, HB_Punctuation_Other},
  {0x166f, 0x1676, HB_Letter_Other},
  {0x1677, 0x167f, HB_Other_NotAssigned},
  {0x1680, 0x1680, HB_Separator_Space},
  {0x1681, 0x169a, HB_Letter_Other},
  {0x169b, 0x169b, HB_Punctuation_Open},
  {0x169c, 0x169c, HB_Punctuation_Close},
  {0x169d, 0x169f, HB_Other_NotAssigned},
  {0x16a0, 0x16ea, HB_Letter_Other},
  {0x16eb, 0x16ed, HB_Punctuation_Other},
  {0x16ee, 0x16f0, HB_Number_Letter},
  {0x16f1, 0x16ff, HB_Other_NotAssigned},
  {0x1700, 0x170c, HB_Letter_Other},
  {0x170d, 0x170d, HB_Other_NotAssigned},
  {0x170e, 0x1711, HB_Letter_Other},
  {0x1712, 0x1714, HB_Mark_NonSpacing},
  {0x1715, 0x171f, HB_Other_NotAssigned},
  {0x1720, 0x1731, HB_Letter_Other},
  {0x1732, 0x1734, HB_Mark_NonSpacing},
  {0x1735, 0x1736, HB_Punctuation_Other},
  {0x1737, 0x173f, HB_Other_NotAssigned},
  {0x1740, 0x1751, HB_Letter_Other},
  {0x1752, 0x1753, HB_Mark_NonSpacing},
  {0x1754, 0x175f, HB_Other_NotAssigned},
  {0x1760, 0x176c, HB_Letter_Other},
  {0x176d, 0x176d, HB_Other_NotAssigned},
  {0x176e, 0x1770, HB_Letter_Other},
  {0x1771, 0x1771, HB_Other_NotAssigned},
  {0x1772, 0x1773, HB_Mark_NonSpacing},
  {0x1774, 0x177f, HB_Other_NotAssigned},
  {0x1780, 0x17b3, HB_Letter_Other},
  {0x17b4, 0x17b5, HB_Other_Format},
  {0x17b6, 0x17b6, HB_Mark_SpacingCombining},
  {0x17b7, 0x17bd, HB_Mark_NonSpacing},
  {0x17be, 0x17c5, HB_Mark_SpacingCombining},
  {0x17c6, 0x17c6, HB_Mark_NonSpacing},
  {0x17c7, 0x17c8, HB_Mark_SpacingCombining},
  {0x17c9, 0x17d3, HB_Mark_NonSpacing},
  {0x17d4, 0x17d6, HB_Punctuation_Other},
  {0x17d7, 0x17d7, HB_Letter_Modifier},
  {0x17d8, 0x17da, HB_Punctuation_Other},
  {0x17db, 0x17db, HB_Symbol_Currency},
  {0x17dc, 0x17dc, HB_Letter_Other},
  {0x17dd, 0x17dd, HB_Mark_NonSpacing},
  {0x17de, 0x17df, HB_Other_NotAssigned},
  {0x17e0, 0x17e9, HB_Number_DecimalDigit},
  {0x17ea, 0x17ef, HB_Other_NotAssigned},
  {0x17f0, 0x17f9, HB_Number_Other},
  {0x17fa, 0x17ff, HB_Other_NotAssigned},
  {0x1800, 0x1805, HB_Punctuation_Other},
  {0x1806, 0x1806, HB_Punctuation_Dash},
  {0x1807, 0x180a, HB_Punctuation_Other},
  {0x180b, 0x180d, HB_Mark_NonSpacing},
  {0x180e, 0x180e, HB_Separator_Space},
  {0x180f, 0x180f, HB_Other_NotAssigned},
  {0x1810, 0x1819, HB_Number_DecimalDigit},
  {0x181a, 0x181f, HB_Other_NotAssigned},
  {0x1820, 0x1842, HB_Letter_Other},
  {0x1843, 0x1843, HB_Letter_Modifier},
  {0x1844, 0x1877, HB_Letter_Other},
  {0x1878, 0x187f, HB_Other_NotAssigned},
  {0x1880, 0x18a8, HB_Letter_Other},
  {0x18a9, 0x18a9, HB_Mark_NonSpacing},
  {0x18aa, 0x18aa, HB_Letter_Other},
  {0x18ab, 0x18ff, HB_Other_NotAssigned},
  {0x1900, 0x191c, HB_Letter_Other},
  {0x191d, 0x191f, HB_Other_NotAssigned},
  {0x1920, 0x1922, HB_Mark_NonSpacing},
  {0x1923, 0x1926, HB_Mark_SpacingCombining},
  {0x1927, 0x1928, HB_Mark_NonSpacing},
  {0x1929, 0x192b, HB_Mark_SpacingCombining},
  {0x192c, 0x192f, HB_Other_NotAssigned},
  {0x1930, 0x1931, HB_Mark_SpacingCombining},
  {0x1932, 0x1932, HB_Mark_NonSpacing},
  {0x1933, 0x1938, HB_Mark_SpacingCombining},
  {0x1939, 0x193b, HB_Mark_NonSpacing},
  {0x193c, 0x193f, HB_Other_NotAssigned},
  {0x1940, 0x1940, HB_Symbol_Other},
  {0x1941, 0x1943, HB_Other_NotAssigned},
  {0x1944, 0x1945, HB_Punctuation_Other},
  {0x1946, 0x194f, HB_Number_DecimalDigit},
  {0x1950, 0x196d, HB_Letter_Other},
  {0x196e, 0x196f, HB_Other_NotAssigned},
  {0x1970, 0x1974, HB_Letter_Other},
  {0x1975, 0x197f, HB_Other_NotAssigned},
  {0x1980, 0x19a9, HB_Letter_Other},
  {0x19aa, 0x19af, HB_Other_NotAssigned},
  {0x19b0, 0x19c0, HB_Mark_SpacingCombining},
  {0x19c1, 0x19c7, HB_Letter_Other},
  {0x19c8, 0x19c9, HB_Mark_SpacingCombining},
  {0x19ca, 0x19cf, HB_Other_NotAssigned},
  {0x19d0, 0x19d9, HB_Number_DecimalDigit},
  {0x19da, 0x19dd, HB_Other_NotAssigned},
  {0x19de, 0x19df, HB_Punctuation_Other},
  {0x19e0, 0x19ff, HB_Symbol_Other},
  {0x1a00, 0x1a16, HB_Letter_Other},
  {0x1a17, 0x1a18, HB_Mark_NonSpacing},
  {0x1a19, 0x1a1b, HB_Mark_SpacingCombining},
  {0x1a1c, 0x1a1d, HB_Other_NotAssigned},
  {0x1a1e, 0x1a1f, HB_Punctuation_Other},
  {0x1a20, 0x1aff, HB_Other_NotAssigned},
  {0x1b00, 0x1b03, HB_Mark_NonSpacing},
  {0x1b04, 0x1b04, HB_Mark_SpacingCombining},
  {0x1b05, 0x1b33, HB_Letter_Other},
  {0x1b34, 0x1b34, HB_Mark_NonSpacing},
  {0x1b35, 0x1b35, HB_Mark_SpacingCombining},
  {0x1b36, 0x1b3a, HB_Mark_NonSpacing},
  {0x1b3b, 0x1b3b, HB_Mark_SpacingCombining},
  {0x1b3c, 0x1b3c, HB_Mark_NonSpacing},
  {0x1b3d, 0x1b41, HB_Mark_SpacingCombining},
  {0x1b42, 0x1b42, HB_Mark_NonSpacing},
  {0x1b43, 0x1b44, HB_Mark_SpacingCombining},
  {0x1b45, 0x1b4b, HB_Letter_Other},
  {0x1b4c, 0x1b4f, HB_Other_NotAssigned},
  {0x1b50, 0x1b59, HB_Number_DecimalDigit},
  {0x1b5a, 0x1b60, HB_Punctuation_Other},
  {0x1b61, 0x1b6a, HB_Symbol_Other},
  {0x1b6b, 0x1b73, HB_Mark_NonSpacing},
  {0x1b74, 0x1b7c, HB_Symbol_Other},
  {0x1b7d, 0x1b7f, HB_Other_NotAssigned},
  {0x1b80, 0x1b81, HB_Mark_NonSpacing},
  {0x1b82, 0x1b82, HB_Mark_SpacingCombining},
  {0x1b83, 0x1ba0, HB_Letter_Other},
  {0x1ba1, 0x1ba1, HB_Mark_SpacingCombining},
  {0x1ba2, 0x1ba5, HB_Mark_NonSpacing},
  {0x1ba6, 0x1ba7, HB_Mark_SpacingCombining},
  {0x1ba8, 0x1ba9, HB_Mark_NonSpacing},
  {0x1baa, 0x1baa, HB_Mark_SpacingCombining},
  {0x1bab, 0x1bad, HB_Other_NotAssigned},
  {0x1bae, 0x1baf, HB_Letter_Other},
  {0x1bb0, 0x1bb9, HB_Number_DecimalDigit},
  {0x1bba, 0x1bff, HB_Other_NotAssigned},
  {0x1c00, 0x1c23, HB_Letter_Other},
  {0x1c24, 0x1c2b, HB_Mark_SpacingCombining},
  {0x1c2c, 0x1c33, HB_Mark_NonSpacing},
  {0x1c34, 0x1c35, HB_Mark_SpacingCombining},
  {0x1c36, 0x1c37, HB_Mark_NonSpacing},
  {0x1c38, 0x1c3a, HB_Other_NotAssigned},
  {0x1c3b, 0x1c3f, HB_Punctuation_Other},
  {0x1c40, 0x1c49, HB_Number_DecimalDigit},
  {0x1c4a, 0x1c4c, HB_Other_NotAssigned},
  {0x1c4d, 0x1c4f, HB_Letter_Other},
  {0x1c50, 0x1c59, HB_Number_DecimalDigit},
  {0x1c5a, 0x1c77, HB_Letter_Other},
  {0x1c78, 0x1c7d, HB_Letter_Modifier},
  {0x1c7e, 0x1c7f, HB_Punctuation_Other},
  {0x1c80, 0x1cff, HB_Other_NotAssigned},
  {0x1d00, 0x1d2b, HB_Letter_Lowercase},
  {0x1d2c, 0x1d61, HB_Letter_Modifier},
  {0x1d62, 0x1d77, HB_Letter_Lowercase},
  {0x1d78, 0x1d78, HB_Letter_Modifier},
  {0x1d79, 0x1d9a, HB_Letter_Lowercase},
  {0x1d9b, 0x1dbf, HB_Letter_Modifier},
  {0x1dc0, 0x1de6, HB_Mark_NonSpacing},
  {0x1de7, 0x1dfd, HB_Other_NotAssigned},
  {0x1dfe, 0x1dff, HB_Mark_NonSpacing},
  {0x1e00, 0x1e00, HB_Letter_Uppercase},
  {0x1e01, 0x1e01, HB_Letter_Lowercase},
  {0x1e02, 0x1e02, HB_Letter_Uppercase},
  {0x1e03, 0x1e03, HB_Letter_Lowercase},
  {0x1e04, 0x1e04, HB_Letter_Uppercase},
  {0x1e05, 0x1e05, HB_Letter_Lowercase},
  {0x1e06, 0x1e06, HB_Letter_Uppercase},
  {0x1e07, 0x1e07, HB_Letter_Lowercase},
  {0x1e08, 0x1e08, HB_Letter_Uppercase},
  {0x1e09, 0x1e09, HB_Letter_Lowercase},
  {0x1e0a, 0x1e0a, HB_Letter_Uppercase},
  {0x1e0b, 0x1e0b, HB_Letter_Lowercase},
  {0x1e0c, 0x1e0c, HB_Letter_Uppercase},
  {0x1e0d, 0x1e0d, HB_Letter_Lowercase},
  {0x1e0e, 0x1e0e, HB_Letter_Uppercase},
  {0x1e0f, 0x1e0f, HB_Letter_Lowercase},
  {0x1e10, 0x1e10, HB_Letter_Uppercase},
  {0x1e11, 0x1e11, HB_Letter_Lowercase},
  {0x1e12, 0x1e12, HB_Letter_Uppercase},
  {0x1e13, 0x1e13, HB_Letter_Lowercase},
  {0x1e14, 0x1e14, HB_Letter_Uppercase},
  {0x1e15, 0x1e15, HB_Letter_Lowercase},
  {0x1e16, 0x1e16, HB_Letter_Uppercase},
  {0x1e17, 0x1e17, HB_Letter_Lowercase},
  {0x1e18, 0x1e18, HB_Letter_Uppercase},
  {0x1e19, 0x1e19, HB_Letter_Lowercase},
  {0x1e1a, 0x1e1a, HB_Letter_Uppercase},
  {0x1e1b, 0x1e1b, HB_Letter_Lowercase},
  {0x1e1c, 0x1e1c, HB_Letter_Uppercase},
  {0x1e1d, 0x1e1d, HB_Letter_Lowercase},
  {0x1e1e, 0x1e1e, HB_Letter_Uppercase},
  {0x1e1f, 0x1e1f, HB_Letter_Lowercase},
  {0x1e20, 0x1e20, HB_Letter_Uppercase},
  {0x1e21, 0x1e21, HB_Letter_Lowercase},
  {0x1e22, 0x1e22, HB_Letter_Uppercase},
  {0x1e23, 0x1e23, HB_Letter_Lowercase},
  {0x1e24, 0x1e24, HB_Letter_Uppercase},
  {0x1e25, 0x1e25, HB_Letter_Lowercase},
  {0x1e26, 0x1e26, HB_Letter_Uppercase},
  {0x1e27, 0x1e27, HB_Letter_Lowercase},
  {0x1e28, 0x1e28, HB_Letter_Uppercase},
  {0x1e29, 0x1e29, HB_Letter_Lowercase},
  {0x1e2a, 0x1e2a, HB_Letter_Uppercase},
  {0x1e2b, 0x1e2b, HB_Letter_Lowercase},
  {0x1e2c, 0x1e2c, HB_Letter_Uppercase},
  {0x1e2d, 0x1e2d, HB_Letter_Lowercase},
  {0x1e2e, 0x1e2e, HB_Letter_Uppercase},
  {0x1e2f, 0x1e2f, HB_Letter_Lowercase},
  {0x1e30, 0x1e30, HB_Letter_Uppercase},
  {0x1e31, 0x1e31, HB_Letter_Lowercase},
  {0x1e32, 0x1e32, HB_Letter_Uppercase},
  {0x1e33, 0x1e33, HB_Letter_Lowercase},
  {0x1e34, 0x1e34, HB_Letter_Uppercase},
  {0x1e35, 0x1e35, HB_Letter_Lowercase},
  {0x1e36, 0x1e36, HB_Letter_Uppercase},
  {0x1e37, 0x1e37, HB_Letter_Lowercase},
  {0x1e38, 0x1e38, HB_Letter_Uppercase},
  {0x1e39, 0x1e39, HB_Letter_Lowercase},
  {0x1e3a, 0x1e3a, HB_Letter_Uppercase},
  {0x1e3b, 0x1e3b, HB_Letter_Lowercase},
  {0x1e3c, 0x1e3c, HB_Letter_Uppercase},
  {0x1e3d, 0x1e3d, HB_Letter_Lowercase},
  {0x1e3e, 0x1e3e, HB_Letter_Uppercase},
  {0x1e3f, 0x1e3f, HB_Letter_Lowercase},
  {0x1e40, 0x1e40, HB_Letter_Uppercase},
  {0x1e41, 0x1e41, HB_Letter_Lowercase},
  {0x1e42, 0x1e42, HB_Letter_Uppercase},
  {0x1e43, 0x1e43, HB_Letter_Lowercase},
  {0x1e44, 0x1e44, HB_Letter_Uppercase},
  {0x1e45, 0x1e45, HB_Letter_Lowercase},
  {0x1e46, 0x1e46, HB_Letter_Uppercase},
  {0x1e47, 0x1e47, HB_Letter_Lowercase},
  {0x1e48, 0x1e48, HB_Letter_Uppercase},
  {0x1e49, 0x1e49, HB_Letter_Lowercase},
  {0x1e4a, 0x1e4a, HB_Letter_Uppercase},
  {0x1e4b, 0x1e4b, HB_Letter_Lowercase},
  {0x1e4c, 0x1e4c, HB_Letter_Uppercase},
  {0x1e4d, 0x1e4d, HB_Letter_Lowercase},
  {0x1e4e, 0x1e4e, HB_Letter_Uppercase},
  {0x1e4f, 0x1e4f, HB_Letter_Lowercase},
  {0x1e50, 0x1e50, HB_Letter_Uppercase},
  {0x1e51, 0x1e51, HB_Letter_Lowercase},
  {0x1e52, 0x1e52, HB_Letter_Uppercase},
  {0x1e53, 0x1e53, HB_Letter_Lowercase},
  {0x1e54, 0x1e54, HB_Letter_Uppercase},
  {0x1e55, 0x1e55, HB_Letter_Lowercase},
  {0x1e56, 0x1e56, HB_Letter_Uppercase},
  {0x1e57, 0x1e57, HB_Letter_Lowercase},
  {0x1e58, 0x1e58, HB_Letter_Uppercase},
  {0x1e59, 0x1e59, HB_Letter_Lowercase},
  {0x1e5a, 0x1e5a, HB_Letter_Uppercase},
  {0x1e5b, 0x1e5b, HB_Letter_Lowercase},
  {0x1e5c, 0x1e5c, HB_Letter_Uppercase},
  {0x1e5d, 0x1e5d, HB_Letter_Lowercase},
  {0x1e5e, 0x1e5e, HB_Letter_Uppercase},
  {0x1e5f, 0x1e5f, HB_Letter_Lowercase},
  {0x1e60, 0x1e60, HB_Letter_Uppercase},
  {0x1e61, 0x1e61, HB_Letter_Lowercase},
  {0x1e62, 0x1e62, HB_Letter_Uppercase},
  {0x1e63, 0x1e63, HB_Letter_Lowercase},
  {0x1e64, 0x1e64, HB_Letter_Uppercase},
  {0x1e65, 0x1e65, HB_Letter_Lowercase},
  {0x1e66, 0x1e66, HB_Letter_Uppercase},
  {0x1e67, 0x1e67, HB_Letter_Lowercase},
  {0x1e68, 0x1e68, HB_Letter_Uppercase},
  {0x1e69, 0x1e69, HB_Letter_Lowercase},
  {0x1e6a, 0x1e6a, HB_Letter_Uppercase},
  {0x1e6b, 0x1e6b, HB_Letter_Lowercase},
  {0x1e6c, 0x1e6c, HB_Letter_Uppercase},
  {0x1e6d, 0x1e6d, HB_Letter_Lowercase},
  {0x1e6e, 0x1e6e, HB_Letter_Uppercase},
  {0x1e6f, 0x1e6f, HB_Letter_Lowercase},
  {0x1e70, 0x1e70, HB_Letter_Uppercase},
  {0x1e71, 0x1e71, HB_Letter_Lowercase},
  {0x1e72, 0x1e72, HB_Letter_Uppercase},
  {0x1e73, 0x1e73, HB_Letter_Lowercase},
  {0x1e74, 0x1e74, HB_Letter_Uppercase},
  {0x1e75, 0x1e75, HB_Letter_Lowercase},
  {0x1e76, 0x1e76, HB_Letter_Uppercase},
  {0x1e77, 0x1e77, HB_Letter_Lowercase},
  {0x1e78, 0x1e78, HB_Letter_Uppercase},
  {0x1e79, 0x1e79, HB_Letter_Lowercase},
  {0x1e7a, 0x1e7a, HB_Letter_Uppercase},
  {0x1e7b, 0x1e7b, HB_Letter_Lowercase},
  {0x1e7c, 0x1e7c, HB_Letter_Uppercase},
  {0x1e7d, 0x1e7d, HB_Letter_Lowercase},
  {0x1e7e, 0x1e7e, HB_Letter_Uppercase},
  {0x1e7f, 0x1e7f, HB_Letter_Lowercase},
  {0x1e80, 0x1e80, HB_Letter_Uppercase},
  {0x1e81, 0x1e81, HB_Letter_Lowercase},
  {0x1e82, 0x1e82, HB_Letter_Uppercase},
  {0x1e83, 0x1e83, HB_Letter_Lowercase},
  {0x1e84, 0x1e84, HB_Letter_Uppercase},
  {0x1e85, 0x1e85, HB_Letter_Lowercase},
  {0x1e86, 0x1e86, HB_Letter_Uppercase},
  {0x1e87, 0x1e87, HB_Letter_Lowercase},
  {0x1e88, 0x1e88, HB_Letter_Uppercase},
  {0x1e89, 0x1e89, HB_Letter_Lowercase},
  {0x1e8a, 0x1e8a, HB_Letter_Uppercase},
  {0x1e8b, 0x1e8b, HB_Letter_Lowercase},
  {0x1e8c, 0x1e8c, HB_Letter_Uppercase},
  {0x1e8d, 0x1e8d, HB_Letter_Lowercase},
  {0x1e8e, 0x1e8e, HB_Letter_Uppercase},
  {0x1e8f, 0x1e8f, HB_Letter_Lowercase},
  {0x1e90, 0x1e90, HB_Letter_Uppercase},
  {0x1e91, 0x1e91, HB_Letter_Lowercase},
  {0x1e92, 0x1e92, HB_Letter_Uppercase},
  {0x1e93, 0x1e93, HB_Letter_Lowercase},
  {0x1e94, 0x1e94, HB_Letter_Uppercase},
  {0x1e95, 0x1e9d, HB_Letter_Lowercase},
  {0x1e9e, 0x1e9e, HB_Letter_Uppercase},
  {0x1e9f, 0x1e9f, HB_Letter_Lowercase},
  {0x1ea0, 0x1ea0, HB_Letter_Uppercase},
  {0x1ea1, 0x1ea1, HB_Letter_Lowercase},
  {0x1ea2, 0x1ea2, HB_Letter_Uppercase},
  {0x1ea3, 0x1ea3, HB_Letter_Lowercase},
  {0x1ea4, 0x1ea4, HB_Letter_Uppercase},
  {0x1ea5, 0x1ea5, HB_Letter_Lowercase},
  {0x1ea6, 0x1ea6, HB_Letter_Uppercase},
  {0x1ea7, 0x1ea7, HB_Letter_Lowercase},
  {0x1ea8, 0x1ea8, HB_Letter_Uppercase},
  {0x1ea9, 0x1ea9, HB_Letter_Lowercase},
  {0x1eaa, 0x1eaa, HB_Letter_Uppercase},
  {0x1eab, 0x1eab, HB_Letter_Lowercase},
  {0x1eac, 0x1eac, HB_Letter_Uppercase},
  {0x1ead, 0x1ead, HB_Letter_Lowercase},
  {0x1eae, 0x1eae, HB_Letter_Uppercase},
  {0x1eaf, 0x1eaf, HB_Letter_Lowercase},
  {0x1eb0, 0x1eb0, HB_Letter_Uppercase},
  {0x1eb1, 0x1eb1, HB_Letter_Lowercase},
  {0x1eb2, 0x1eb2, HB_Letter_Uppercase},
  {0x1eb3, 0x1eb3, HB_Letter_Lowercase},
  {0x1eb4, 0x1eb4, HB_Letter_Uppercase},
  {0x1eb5, 0x1eb5, HB_Letter_Lowercase},
  {0x1eb6, 0x1eb6, HB_Letter_Uppercase},
  {0x1eb7, 0x1eb7, HB_Letter_Lowercase},
  {0x1eb8, 0x1eb8, HB_Letter_Uppercase},
  {0x1eb9, 0x1eb9, HB_Letter_Lowercase},
  {0x1eba, 0x1eba, HB_Letter_Uppercase},
  {0x1ebb, 0x1ebb, HB_Letter_Lowercase},
  {0x1ebc, 0x1ebc, HB_Letter_Uppercase},
  {0x1ebd, 0x1ebd, HB_Letter_Lowercase},
  {0x1ebe, 0x1ebe, HB_Letter_Uppercase},
  {0x1ebf, 0x1ebf, HB_Letter_Lowercase},
  {0x1ec0, 0x1ec0, HB_Letter_Uppercase},
  {0x1ec1, 0x1ec1, HB_Letter_Lowercase},
  {0x1ec2, 0x1ec2, HB_Letter_Uppercase},
  {0x1ec3, 0x1ec3, HB_Letter_Lowercase},
  {0x1ec4, 0x1ec4, HB_Letter_Uppercase},
  {0x1ec5, 0x1ec5, HB_Letter_Lowercase},
  {0x1ec6, 0x1ec6, HB_Letter_Uppercase},
  {0x1ec7, 0x1ec7, HB_Letter_Lowercase},
  {0x1ec8, 0x1ec8, HB_Letter_Uppercase},
  {0x1ec9, 0x1ec9, HB_Letter_Lowercase},
  {0x1eca, 0x1eca, HB_Letter_Uppercase},
  {0x1ecb, 0x1ecb, HB_Letter_Lowercase},
  {0x1ecc, 0x1ecc, HB_Letter_Uppercase},
  {0x1ecd, 0x1ecd, HB_Letter_Lowercase},
  {0x1ece, 0x1ece, HB_Letter_Uppercase},
  {0x1ecf, 0x1ecf, HB_Letter_Lowercase},
  {0x1ed0, 0x1ed0, HB_Letter_Uppercase},
  {0x1ed1, 0x1ed1, HB_Letter_Lowercase},
  {0x1ed2, 0x1ed2, HB_Letter_Uppercase},
  {0x1ed3, 0x1ed3, HB_Letter_Lowercase},
  {0x1ed4, 0x1ed4, HB_Letter_Uppercase},
  {0x1ed5, 0x1ed5, HB_Letter_Lowercase},
  {0x1ed6, 0x1ed6, HB_Letter_Uppercase},
  {0x1ed7, 0x1ed7, HB_Letter_Lowercase},
  {0x1ed8, 0x1ed8, HB_Letter_Uppercase},
  {0x1ed9, 0x1ed9, HB_Letter_Lowercase},
  {0x1eda, 0x1eda, HB_Letter_Uppercase},
  {0x1edb, 0x1edb, HB_Letter_Lowercase},
  {0x1edc, 0x1edc, HB_Letter_Uppercase},
  {0x1edd, 0x1edd, HB_Letter_Lowercase},
  {0x1ede, 0x1ede, HB_Letter_Uppercase},
  {0x1edf, 0x1edf, HB_Letter_Lowercase},
  {0x1ee0, 0x1ee0, HB_Letter_Uppercase},
  {0x1ee1, 0x1ee1, HB_Letter_Lowercase},
  {0x1ee2, 0x1ee2, HB_Letter_Uppercase},
  {0x1ee3, 0x1ee3, HB_Letter_Lowercase},
  {0x1ee4, 0x1ee4, HB_Letter_Uppercase},
  {0x1ee5, 0x1ee5, HB_Letter_Lowercase},
  {0x1ee6, 0x1ee6, HB_Letter_Uppercase},
  {0x1ee7, 0x1ee7, HB_Letter_Lowercase},
  {0x1ee8, 0x1ee8, HB_Letter_Uppercase},
  {0x1ee9, 0x1ee9, HB_Letter_Lowercase},
  {0x1eea, 0x1eea, HB_Letter_Uppercase},
  {0x1eeb, 0x1eeb, HB_Letter_Lowercase},
  {0x1eec, 0x1eec, HB_Letter_Uppercase},
  {0x1eed, 0x1eed, HB_Letter_Lowercase},
  {0x1eee, 0x1eee, HB_Letter_Uppercase},
  {0x1eef, 0x1eef, HB_Letter_Lowercase},
  {0x1ef0, 0x1ef0, HB_Letter_Uppercase},
  {0x1ef1, 0x1ef1, HB_Letter_Lowercase},
  {0x1ef2, 0x1ef2, HB_Letter_Uppercase},
  {0x1ef3, 0x1ef3, HB_Letter_Lowercase},
  {0x1ef4, 0x1ef4, HB_Letter_Uppercase},
  {0x1ef5, 0x1ef5, HB_Letter_Lowercase},
  {0x1ef6, 0x1ef6, HB_Letter_Uppercase},
  {0x1ef7, 0x1ef7, HB_Letter_Lowercase},
  {0x1ef8, 0x1ef8, HB_Letter_Uppercase},
  {0x1ef9, 0x1ef9, HB_Letter_Lowercase},
  {0x1efa, 0x1efa, HB_Letter_Uppercase},
  {0x1efb, 0x1efb, HB_Letter_Lowercase},
  {0x1efc, 0x1efc, HB_Letter_Uppercase},
  {0x1efd, 0x1efd, HB_Letter_Lowercase},
  {0x1efe, 0x1efe, HB_Letter_Uppercase},
  {0x1eff, 0x1f07, HB_Letter_Lowercase},
  {0x1f08, 0x1f0f, HB_Letter_Uppercase},
  {0x1f10, 0x1f15, HB_Letter_Lowercase},
  {0x1f16, 0x1f17, HB_Other_NotAssigned},
  {0x1f18, 0x1f1d, HB_Letter_Uppercase},
  {0x1f1e, 0x1f1f, HB_Other_NotAssigned},
  {0x1f20, 0x1f27, HB_Letter_Lowercase},
  {0x1f28, 0x1f2f, HB_Letter_Uppercase},
  {0x1f30, 0x1f37, HB_Letter_Lowercase},
  {0x1f38, 0x1f3f, HB_Letter_Uppercase},
  {0x1f40, 0x1f45, HB_Letter_Lowercase},
  {0x1f46, 0x1f47, HB_Other_NotAssigned},
  {0x1f48, 0x1f4d, HB_Letter_Uppercase},
  {0x1f4e, 0x1f4f, HB_Other_NotAssigned},
  {0x1f50, 0x1f57, HB_Letter_Lowercase},
  {0x1f58, 0x1f58, HB_Other_NotAssigned},
  {0x1f59, 0x1f59, HB_Letter_Uppercase},
  {0x1f5a, 0x1f5a, HB_Other_NotAssigned},
  {0x1f5b, 0x1f5b, HB_Letter_Uppercase},
  {0x1f5c, 0x1f5c, HB_Other_NotAssigned},
  {0x1f5d, 0x1f5d, HB_Letter_Uppercase},
  {0x1f5e, 0x1f5e, HB_Other_NotAssigned},
  {0x1f5f, 0x1f5f, HB_Letter_Uppercase},
  {0x1f60, 0x1f67, HB_Letter_Lowercase},
  {0x1f68, 0x1f6f, HB_Letter_Uppercase},
  {0x1f70, 0x1f7d, HB_Letter_Lowercase},
  {0x1f7e, 0x1f7f, HB_Other_NotAssigned},
  {0x1f80, 0x1f87, HB_Letter_Lowercase},
  {0x1f88, 0x1f8f, HB_Letter_Titlecase},
  {0x1f90, 0x1f97, HB_Letter_Lowercase},
  {0x1f98, 0x1f9f, HB_Letter_Titlecase},
  {0x1fa0, 0x1fa7, HB_Letter_Lowercase},
  {0x1fa8, 0x1faf, HB_Letter_Titlecase},
  {0x1fb0, 0x1fb4, HB_Letter_Lowercase},
  {0x1fb5, 0x1fb5, HB_Other_NotAssigned},
  {0x1fb6, 0x1fb7, HB_Letter_Lowercase},
  {0x1fb8, 0x1fbb, HB_Letter_Uppercase},
  {0x1fbc, 0x1fbc, HB_Letter_Titlecase},
  {0x1fbd, 0x1fbd, HB_Symbol_Modifier},
  {0x1fbe, 0x1fbe, HB_Letter_Lowercase},
  {0x1fbf, 0x1fc1, HB_Symbol_Modifier},
  {0x1fc2, 0x1fc4, HB_Letter_Lowercase},
  {0x1fc5, 0x1fc5, HB_Other_NotAssigned},
  {0x1fc6, 0x1fc7, HB_Letter_Lowercase},
  {0x1fc8, 0x1fcb, HB_Letter_Uppercase},
  {0x1fcc, 0x1fcc, HB_Letter_Titlecase},
  {0x1fcd, 0x1fcf, HB_Symbol_Modifier},
  {0x1fd0, 0x1fd3, HB_Letter_Lowercase},
  {0x1fd4, 0x1fd5, HB_Other_NotAssigned},
  {0x1fd6, 0x1fd7, HB_Letter_Lowercase},
  {0x1fd8, 0x1fdb, HB_Letter_Uppercase},
  {0x1fdc, 0x1fdc, HB_Other_NotAssigned},
  {0x1fdd, 0x1fdf, HB_Symbol_Modifier},
  {0x1fe0, 0x1fe7, HB_Letter_Lowercase},
  {0x1fe8, 0x1fec, HB_Letter_Uppercase},
  {0x1fed, 0x1fef, HB_Symbol_Modifier},
  {0x1ff0, 0x1ff1, HB_Other_NotAssigned},
  {0x1ff2, 0x1ff4, HB_Letter_Lowercase},
  {0x1ff5, 0x1ff5, HB_Other_NotAssigned},
  {0x1ff6, 0x1ff7, HB_Letter_Lowercase},
  {0x1ff8, 0x1ffb, HB_Letter_Uppercase},
  {0x1ffc, 0x1ffc, HB_Letter_Titlecase},
  {0x1ffd, 0x1ffe, HB_Symbol_Modifier},
  {0x1fff, 0x1fff, HB_Other_NotAssigned},
  {0x2000, 0x200a, HB_Separator_Space},
  {0x200b, 0x200f, HB_Other_Format},
  {0x2010, 0x2015, HB_Punctuation_Dash},
  {0x2016, 0x2017, HB_Punctuation_Other},
  {0x2018, 0x2018, HB_Punctuation_InitialQuote},
  {0x2019, 0x2019, HB_Punctuation_FinalQuote},
  {0x201a, 0x201a, HB_Punctuation_Open},
  {0x201b, 0x201c, HB_Punctuation_InitialQuote},
  {0x201d, 0x201d, HB_Punctuation_FinalQuote},
  {0x201e, 0x201e, HB_Punctuation_Open},
  {0x201f, 0x201f, HB_Punctuation_InitialQuote},
  {0x2020, 0x2027, HB_Punctuation_Other},
  {0x2028, 0x2028, HB_Separator_Line},
  {0x2029, 0x2029, HB_Separator_Paragraph},
  {0x202a, 0x202e, HB_Other_Format},
  {0x202f, 0x202f, HB_Separator_Space},
  {0x2030, 0x2038, HB_Punctuation_Other},
  {0x2039, 0x2039, HB_Punctuation_InitialQuote},
  {0x203a, 0x203a, HB_Punctuation_FinalQuote},
  {0x203b, 0x203e, HB_Punctuation_Other},
  {0x203f, 0x2040, HB_Punctuation_Connector},
  {0x2041, 0x2043, HB_Punctuation_Other},
  {0x2044, 0x2044, HB_Symbol_Math},
  {0x2045, 0x2045, HB_Punctuation_Open},
  {0x2046, 0x2046, HB_Punctuation_Close},
  {0x2047, 0x2051, HB_Punctuation_Other},
  {0x2052, 0x2052, HB_Symbol_Math},
  {0x2053, 0x2053, HB_Punctuation_Other},
  {0x2054, 0x2054, HB_Punctuation_Connector},
  {0x2055, 0x205e, HB_Punctuation_Other},
  {0x205f, 0x205f, HB_Separator_Space},
  {0x2060, 0x2064, HB_Other_Format},
  {0x2065, 0x2069, HB_Other_NotAssigned},
  {0x206a, 0x206f, HB_Other_Format},
  {0x2070, 0x2070, HB_Number_Other},
  {0x2071, 0x2071, HB_Letter_Lowercase},
  {0x2072, 0x2073, HB_Other_NotAssigned},
  {0x2074, 0x2079, HB_Number_Other},
  {0x207a, 0x207c, HB_Symbol_Math},
  {0x207d, 0x207d, HB_Punctuation_Open},
  {0x207e, 0x207e, HB_Punctuation_Close},
  {0x207f, 0x207f, HB_Letter_Lowercase},
  {0x2080, 0x2089, HB_Number_Other},
  {0x208a, 0x208c, HB_Symbol_Math},
  {0x208d, 0x208d, HB_Punctuation_Open},
  {0x208e, 0x208e, HB_Punctuation_Close},
  {0x208f, 0x208f, HB_Other_NotAssigned},
  {0x2090, 0x2094, HB_Letter_Modifier},
  {0x2095, 0x209f, HB_Other_NotAssigned},
  {0x20a0, 0x20b5, HB_Symbol_Currency},
  {0x20b6, 0x20cf, HB_Other_NotAssigned},
  {0x20d0, 0x20dc, HB_Mark_NonSpacing},
  {0x20dd, 0x20e0, HB_Mark_Enclosing},
  {0x20e1, 0x20e1, HB_Mark_NonSpacing},
  {0x20e2, 0x20e4, HB_Mark_Enclosing},
  {0x20e5, 0x20f0, HB_Mark_NonSpacing},
  {0x20f1, 0x20ff, HB_Other_NotAssigned},
  {0x2100, 0x2101, HB_Symbol_Other},
  {0x2102, 0x2102, HB_Letter_Uppercase},
  {0x2103, 0x2106, HB_Symbol_Other},
  {0x2107, 0x2107, HB_Letter_Uppercase},
  {0x2108, 0x2109, HB_Symbol_Other},
  {0x210a, 0x210a, HB_Letter_Lowercase},
  {0x210b, 0x210d, HB_Letter_Uppercase},
  {0x210e, 0x210f, HB_Letter_Lowercase},
  {0x2110, 0x2112, HB_Letter_Uppercase},
  {0x2113, 0x2113, HB_Letter_Lowercase},
  {0x2114, 0x2114, HB_Symbol_Other},
  {0x2115, 0x2115, HB_Letter_Uppercase},
  {0x2116, 0x2118, HB_Symbol_Other},
  {0x2119, 0x211d, HB_Letter_Uppercase},
  {0x211e, 0x2123, HB_Symbol_Other},
  {0x2124, 0x2124, HB_Letter_Uppercase},
  {0x2125, 0x2125, HB_Symbol_Other},
  {0x2126, 0x2126, HB_Letter_Uppercase},
  {0x2127, 0x2127, HB_Symbol_Other},
  {0x2128, 0x2128, HB_Letter_Uppercase},
  {0x2129, 0x2129, HB_Symbol_Other},
  {0x212a, 0x212d, HB_Letter_Uppercase},
  {0x212e, 0x212e, HB_Symbol_Other},
  {0x212f, 0x212f, HB_Letter_Lowercase},
  {0x2130, 0x2133, HB_Letter_Uppercase},
  {0x2134, 0x2134, HB_Letter_Lowercase},
  {0x2135, 0x2138, HB_Letter_Other},
  {0x2139, 0x2139, HB_Letter_Lowercase},
  {0x213a, 0x213b, HB_Symbol_Other},
  {0x213c, 0x213d, HB_Letter_Lowercase},
  {0x213e, 0x213f, HB_Letter_Uppercase},
  {0x2140, 0x2144, HB_Symbol_Math},
  {0x2145, 0x2145, HB_Letter_Uppercase},
  {0x2146, 0x2149, HB_Letter_Lowercase},
  {0x214a, 0x214a, HB_Symbol_Other},
  {0x214b, 0x214b, HB_Symbol_Math},
  {0x214c, 0x214d, HB_Symbol_Other},
  {0x214e, 0x214e, HB_Letter_Lowercase},
  {0x214f, 0x214f, HB_Symbol_Other},
  {0x2150, 0x2152, HB_Other_NotAssigned},
  {0x2153, 0x215f, HB_Number_Other},
  {0x2160, 0x2182, HB_Number_Letter},
  {0x2183, 0x2183, HB_Letter_Uppercase},
  {0x2184, 0x2184, HB_Letter_Lowercase},
  {0x2185, 0x2188, HB_Number_Letter},
  {0x2189, 0x218f, HB_Other_NotAssigned},
  {0x2190, 0x2194, HB_Symbol_Math},
  {0x2195, 0x2199, HB_Symbol_Other},
  {0x219a, 0x219b, HB_Symbol_Math},
  {0x219c, 0x219f, HB_Symbol_Other},
  {0x21a0, 0x21a0, HB_Symbol_Math},
  {0x21a1, 0x21a2, HB_Symbol_Other},
  {0x21a3, 0x21a3, HB_Symbol_Math},
  {0x21a4, 0x21a5, HB_Symbol_Other},
  {0x21a6, 0x21a6, HB_Symbol_Math},
  {0x21a7, 0x21ad, HB_Symbol_Other},
  {0x21ae, 0x21ae, HB_Symbol_Math},
  {0x21af, 0x21cd, HB_Symbol_Other},
  {0x21ce, 0x21cf, HB_Symbol_Math},
  {0x21d0, 0x21d1, HB_Symbol_Other},
  {0x21d2, 0x21d2, HB_Symbol_Math},
  {0x21d3, 0x21d3, HB_Symbol_Other},
  {0x21d4, 0x21d4, HB_Symbol_Math},
  {0x21d5, 0x21f3, HB_Symbol_Other},
  {0x21f4, 0x22ff, HB_Symbol_Math},
  {0x2300, 0x2307, HB_Symbol_Other},
  {0x2308, 0x230b, HB_Symbol_Math},
  {0x230c, 0x231f, HB_Symbol_Other},
  {0x2320, 0x2321, HB_Symbol_Math},
  {0x2322, 0x2328, HB_Symbol_Other},
  {0x2329, 0x2329, HB_Punctuation_Open},
  {0x232a, 0x232a, HB_Punctuation_Close},
  {0x232b, 0x237b, HB_Symbol_Other},
  {0x237c, 0x237c, HB_Symbol_Math},
  {0x237d, 0x239a, HB_Symbol_Other},
  {0x239b, 0x23b3, HB_Symbol_Math},
  {0x23b4, 0x23db, HB_Symbol_Other},
  {0x23dc, 0x23e1, HB_Symbol_Math},
  {0x23e2, 0x23e7, HB_Symbol_Other},
  {0x23e8, 0x23ff, HB_Other_NotAssigned},
  {0x2400, 0x2426, HB_Symbol_Other},
  {0x2427, 0x243f, HB_Other_NotAssigned},
  {0x2440, 0x244a, HB_Symbol_Other},
  {0x244b, 0x245f, HB_Other_NotAssigned},
  {0x2460, 0x249b, HB_Number_Other},
  {0x249c, 0x24e9, HB_Symbol_Other},
  {0x24ea, 0x24ff, HB_Number_Other},
  {0x2500, 0x25b6, HB_Symbol_Other},
  {0x25b7, 0x25b7, HB_Symbol_Math},
  {0x25b8, 0x25c0, HB_Symbol_Other},
  {0x25c1, 0x25c1, HB_Symbol_Math},
  {0x25c2, 0x25f7, HB_Symbol_Other},
  {0x25f8, 0x25ff, HB_Symbol_Math},
  {0x2600, 0x266e, HB_Symbol_Other},
  {0x266f, 0x266f, HB_Symbol_Math},
  {0x2670, 0x269d, HB_Symbol_Other},
  {0x269e, 0x269f, HB_Other_NotAssigned},
  {0x26a0, 0x26bc, HB_Symbol_Other},
  {0x26bd, 0x26bf, HB_Other_NotAssigned},
  {0x26c0, 0x26c3, HB_Symbol_Other},
  {0x26c4, 0x2700, HB_Other_NotAssigned},
  {0x2701, 0x2704, HB_Symbol_Other},
  {0x2705, 0x2705, HB_Other_NotAssigned},
  {0x2706, 0x2709, HB_Symbol_Other},
  {0x270a, 0x270b, HB_Other_NotAssigned},
  {0x270c, 0x2727, HB_Symbol_Other},
  {0x2728, 0x2728, HB_Other_NotAssigned},
  {0x2729, 0x274b, HB_Symbol_Other},
  {0x274c, 0x274c, HB_Other_NotAssigned},
  {0x274d, 0x274d, HB_Symbol_Other},
  {0x274e, 0x274e, HB_Other_NotAssigned},
  {0x274f, 0x2752, HB_Symbol_Other},
  {0x2753, 0x2755, HB_Other_NotAssigned},
  {0x2756, 0x2756, HB_Symbol_Other},
  {0x2757, 0x2757, HB_Other_NotAssigned},
  {0x2758, 0x275e, HB_Symbol_Other},
  {0x275f, 0x2760, HB_Other_NotAssigned},
  {0x2761, 0x2767, HB_Symbol_Other},
  {0x2768, 0x2768, HB_Punctuation_Open},
  {0x2769, 0x2769, HB_Punctuation_Close},
  {0x276a, 0x276a, HB_Punctuation_Open},
  {0x276b, 0x276b, HB_Punctuation_Close},
  {0x276c, 0x276c, HB_Punctuation_Open},
  {0x276d, 0x276d, HB_Punctuation_Close},
  {0x276e, 0x276e, HB_Punctuation_Open},
  {0x276f, 0x276f, HB_Punctuation_Close},
  {0x2770, 0x2770, HB_Punctuation_Open},
  {0x2771, 0x2771, HB_Punctuation_Close},
  {0x2772, 0x2772, HB_Punctuation_Open},
  {0x2773, 0x2773, HB_Punctuation_Close},
  {0x2774, 0x2774, HB_Punctuation_Open},
  {0x2775, 0x2775, HB_Punctuation_Close},
  {0x2776, 0x2793, HB_Number_Other},
  {0x2794, 0x2794, HB_Symbol_Other},
  {0x2795, 0x2797, HB_Other_NotAssigned},
  {0x2798, 0x27af, HB_Symbol_Other},
  {0x27b0, 0x27b0, HB_Other_NotAssigned},
  {0x27b1, 0x27be, HB_Symbol_Other},
  {0x27bf, 0x27bf, HB_Other_NotAssigned},
  {0x27c0, 0x27c4, HB_Symbol_Math},
  {0x27c5, 0x27c5, HB_Punctuation_Open},
  {0x27c6, 0x27c6, HB_Punctuation_Close},
  {0x27c7, 0x27ca, HB_Symbol_Math},
  {0x27cb, 0x27cb, HB_Other_NotAssigned},
  {0x27cc, 0x27cc, HB_Symbol_Math},
  {0x27cd, 0x27cf, HB_Other_NotAssigned},
  {0x27d0, 0x27e5, HB_Symbol_Math},
  {0x27e6, 0x27e6, HB_Punctuation_Open},
  {0x27e7, 0x27e7, HB_Punctuation_Close},
  {0x27e8, 0x27e8, HB_Punctuation_Open},
  {0x27e9, 0x27e9, HB_Punctuation_Close},
  {0x27ea, 0x27ea, HB_Punctuation_Open},
  {0x27eb, 0x27eb, HB_Punctuation_Close},
  {0x27ec, 0x27ec, HB_Punctuation_Open},
  {0x27ed, 0x27ed, HB_Punctuation_Close},
  {0x27ee, 0x27ee, HB_Punctuation_Open},
  {0x27ef, 0x27ef, HB_Punctuation_Close},
  {0x27f0, 0x27ff, HB_Symbol_Math},
  {0x2800, 0x28ff, HB_Symbol_Other},
  {0x2900, 0x2982, HB_Symbol_Math},
  {0x2983, 0x2983, HB_Punctuation_Open},
  {0x2984, 0x2984, HB_Punctuation_Close},
  {0x2985, 0x2985, HB_Punctuation_Open},
  {0x2986, 0x2986, HB_Punctuation_Close},
  {0x2987, 0x2987, HB_Punctuation_Open},
  {0x2988, 0x2988, HB_Punctuation_Close},
  {0x2989, 0x2989, HB_Punctuation_Open},
  {0x298a, 0x298a, HB_Punctuation_Close},
  {0x298b, 0x298b, HB_Punctuation_Open},
  {0x298c, 0x298c, HB_Punctuation_Close},
  {0x298d, 0x298d, HB_Punctuation_Open},
  {0x298e, 0x298e, HB_Punctuation_Close},
  {0x298f, 0x298f, HB_Punctuation_Open},
  {0x2990, 0x2990, HB_Punctuation_Close},
  {0x2991, 0x2991, HB_Punctuation_Open},
  {0x2992, 0x2992, HB_Punctuation_Close},
  {0x2993, 0x2993, HB_Punctuation_Open},
  {0x2994, 0x2994, HB_Punctuation_Close},
  {0x2995, 0x2995, HB_Punctuation_Open},
  {0x2996, 0x2996, HB_Punctuation_Close},
  {0x2997, 0x2997, HB_Punctuation_Open},
  {0x2998, 0x2998, HB_Punctuation_Close},
  {0x2999, 0x29d7, HB_Symbol_Math},
  {0x29d8, 0x29d8, HB_Punctuation_Open},
  {0x29d9, 0x29d9, HB_Punctuation_Close},
  {0x29da, 0x29da, HB_Punctuation_Open},
  {0x29db, 0x29db, HB_Punctuation_Close},
  {0x29dc, 0x29fb, HB_Symbol_Math},
  {0x29fc, 0x29fc, HB_Punctuation_Open},
  {0x29fd, 0x29fd, HB_Punctuation_Close},
  {0x29fe, 0x2aff, HB_Symbol_Math},
  {0x2b00, 0x2b2f, HB_Symbol_Other},
  {0x2b30, 0x2b44, HB_Symbol_Math},
  {0x2b45, 0x2b46, HB_Symbol_Other},
  {0x2b47, 0x2b4c, HB_Symbol_Math},
  {0x2b4d, 0x2b4f, HB_Other_NotAssigned},
  {0x2b50, 0x2b54, HB_Symbol_Other},
  {0x2b55, 0x2bff, HB_Other_NotAssigned},
  {0x2c00, 0x2c2e, HB_Letter_Uppercase},
  {0x2c2f, 0x2c2f, HB_Other_NotAssigned},
  {0x2c30, 0x2c5e, HB_Letter_Lowercase},
  {0x2c5f, 0x2c5f, HB_Other_NotAssigned},
  {0x2c60, 0x2c60, HB_Letter_Uppercase},
  {0x2c61, 0x2c61, HB_Letter_Lowercase},
  {0x2c62, 0x2c64, HB_Letter_Uppercase},
  {0x2c65, 0x2c66, HB_Letter_Lowercase},
  {0x2c67, 0x2c67, HB_Letter_Uppercase},
  {0x2c68, 0x2c68, HB_Letter_Lowercase},
  {0x2c69, 0x2c69, HB_Letter_Uppercase},
  {0x2c6a, 0x2c6a, HB_Letter_Lowercase},
  {0x2c6b, 0x2c6b, HB_Letter_Uppercase},
  {0x2c6c, 0x2c6c, HB_Letter_Lowercase},
  {0x2c6d, 0x2c6f, HB_Letter_Uppercase},
  {0x2c70, 0x2c70, HB_Other_NotAssigned},
  {0x2c71, 0x2c71, HB_Letter_Lowercase},
  {0x2c72, 0x2c72, HB_Letter_Uppercase},
  {0x2c73, 0x2c74, HB_Letter_Lowercase},
  {0x2c75, 0x2c75, HB_Letter_Uppercase},
  {0x2c76, 0x2c7c, HB_Letter_Lowercase},
  {0x2c7d, 0x2c7d, HB_Letter_Modifier},
  {0x2c7e, 0x2c7f, HB_Other_NotAssigned},
  {0x2c80, 0x2c80, HB_Letter_Uppercase},
  {0x2c81, 0x2c81, HB_Letter_Lowercase},
  {0x2c82, 0x2c82, HB_Letter_Uppercase},
  {0x2c83, 0x2c83, HB_Letter_Lowercase},
  {0x2c84, 0x2c84, HB_Letter_Uppercase},
  {0x2c85, 0x2c85, HB_Letter_Lowercase},
  {0x2c86, 0x2c86, HB_Letter_Uppercase},
  {0x2c87, 0x2c87, HB_Letter_Lowercase},
  {0x2c88, 0x2c88, HB_Letter_Uppercase},
  {0x2c89, 0x2c89, HB_Letter_Lowercase},
  {0x2c8a, 0x2c8a, HB_Letter_Uppercase},
  {0x2c8b, 0x2c8b, HB_Letter_Lowercase},
  {0x2c8c, 0x2c8c, HB_Letter_Uppercase},
  {0x2c8d, 0x2c8d, HB_Letter_Lowercase},
  {0x2c8e, 0x2c8e, HB_Letter_Uppercase},
  {0x2c8f, 0x2c8f, HB_Letter_Lowercase},
  {0x2c90, 0x2c90, HB_Letter_Uppercase},
  {0x2c91, 0x2c91, HB_Letter_Lowercase},
  {0x2c92, 0x2c92, HB_Letter_Uppercase},
  {0x2c93, 0x2c93, HB_Letter_Lowercase},
  {0x2c94, 0x2c94, HB_Letter_Uppercase},
  {0x2c95, 0x2c95, HB_Letter_Lowercase},
  {0x2c96, 0x2c96, HB_Letter_Uppercase},
  {0x2c97, 0x2c97, HB_Letter_Lowercase},
  {0x2c98, 0x2c98, HB_Letter_Uppercase},
  {0x2c99, 0x2c99, HB_Letter_Lowercase},
  {0x2c9a, 0x2c9a, HB_Letter_Uppercase},
  {0x2c9b, 0x2c9b, HB_Letter_Lowercase},
  {0x2c9c, 0x2c9c, HB_Letter_Uppercase},
  {0x2c9d, 0x2c9d, HB_Letter_Lowercase},
  {0x2c9e, 0x2c9e, HB_Letter_Uppercase},
  {0x2c9f, 0x2c9f, HB_Letter_Lowercase},
  {0x2ca0, 0x2ca0, HB_Letter_Uppercase},
  {0x2ca1, 0x2ca1, HB_Letter_Lowercase},
  {0x2ca2, 0x2ca2, HB_Letter_Uppercase},
  {0x2ca3, 0x2ca3, HB_Letter_Lowercase},
  {0x2ca4, 0x2ca4, HB_Letter_Uppercase},
  {0x2ca5, 0x2ca5, HB_Letter_Lowercase},
  {0x2ca6, 0x2ca6, HB_Letter_Uppercase},
  {0x2ca7, 0x2ca7, HB_Letter_Lowercase},
  {0x2ca8, 0x2ca8, HB_Letter_Uppercase},
  {0x2ca9, 0x2ca9, HB_Letter_Lowercase},
  {0x2caa, 0x2caa, HB_Letter_Uppercase},
  {0x2cab, 0x2cab, HB_Letter_Lowercase},
  {0x2cac, 0x2cac, HB_Letter_Uppercase},
  {0x2cad, 0x2cad, HB_Letter_Lowercase},
  {0x2cae, 0x2cae, HB_Letter_Uppercase},
  {0x2caf, 0x2caf, HB_Letter_Lowercase},
  {0x2cb0, 0x2cb0, HB_Letter_Uppercase},
  {0x2cb1, 0x2cb1, HB_Letter_Lowercase},
  {0x2cb2, 0x2cb2, HB_Letter_Uppercase},
  {0x2cb3, 0x2cb3, HB_Letter_Lowercase},
  {0x2cb4, 0x2cb4, HB_Letter_Uppercase},
  {0x2cb5, 0x2cb5, HB_Letter_Lowercase},
  {0x2cb6, 0x2cb6, HB_Letter_Uppercase},
  {0x2cb7, 0x2cb7, HB_Letter_Lowercase},
  {0x2cb8, 0x2cb8, HB_Letter_Uppercase},
  {0x2cb9, 0x2cb9, HB_Letter_Lowercase},
  {0x2cba, 0x2cba, HB_Letter_Uppercase},
  {0x2cbb, 0x2cbb, HB_Letter_Lowercase},
  {0x2cbc, 0x2cbc, HB_Letter_Uppercase},
  {0x2cbd, 0x2cbd, HB_Letter_Lowercase},
  {0x2cbe, 0x2cbe, HB_Letter_Uppercase},
  {0x2cbf, 0x2cbf, HB_Letter_Lowercase},
  {0x2cc0, 0x2cc0, HB_Letter_Uppercase},
  {0x2cc1, 0x2cc1, HB_Letter_Lowercase},
  {0x2cc2, 0x2cc2, HB_Letter_Uppercase},
  {0x2cc3, 0x2cc3, HB_Letter_Lowercase},
  {0x2cc4, 0x2cc4, HB_Letter_Uppercase},
  {0x2cc5, 0x2cc5, HB_Letter_Lowercase},
  {0x2cc6, 0x2cc6, HB_Letter_Uppercase},
  {0x2cc7, 0x2cc7, HB_Letter_Lowercase},
  {0x2cc8, 0x2cc8, HB_Letter_Uppercase},
  {0x2cc9, 0x2cc9, HB_Letter_Lowercase},
  {0x2cca, 0x2cca, HB_Letter_Uppercase},
  {0x2ccb, 0x2ccb, HB_Letter_Lowercase},
  {0x2ccc, 0x2ccc, HB_Letter_Uppercase},
  {0x2ccd, 0x2ccd, HB_Letter_Lowercase},
  {0x2cce, 0x2cce, HB_Letter_Uppercase},
  {0x2ccf, 0x2ccf, HB_Letter_Lowercase},
  {0x2cd0, 0x2cd0, HB_Letter_Uppercase},
  {0x2cd1, 0x2cd1, HB_Letter_Lowercase},
  {0x2cd2, 0x2cd2, HB_Letter_Uppercase},
  {0x2cd3, 0x2cd3, HB_Letter_Lowercase},
  {0x2cd4, 0x2cd4, HB_Letter_Uppercase},
  {0x2cd5, 0x2cd5, HB_Letter_Lowercase},
  {0x2cd6, 0x2cd6, HB_Letter_Uppercase},
  {0x2cd7, 0x2cd7, HB_Letter_Lowercase},
  {0x2cd8, 0x2cd8, HB_Letter_Uppercase},
  {0x2cd9, 0x2cd9, HB_Letter_Lowercase},
  {0x2cda, 0x2cda, HB_Letter_Uppercase},
  {0x2cdb, 0x2cdb, HB_Letter_Lowercase},
  {0x2cdc, 0x2cdc, HB_Letter_Uppercase},
  {0x2cdd, 0x2cdd, HB_Letter_Lowercase},
  {0x2cde, 0x2cde, HB_Letter_Uppercase},
  {0x2cdf, 0x2cdf, HB_Letter_Lowercase},
  {0x2ce0, 0x2ce0, HB_Letter_Uppercase},
  {0x2ce1, 0x2ce1, HB_Letter_Lowercase},
  {0x2ce2, 0x2ce2, HB_Letter_Uppercase},
  {0x2ce3, 0x2ce4, HB_Letter_Lowercase},
  {0x2ce5, 0x2cea, HB_Symbol_Other},
  {0x2ceb, 0x2cf8, HB_Other_NotAssigned},
  {0x2cf9, 0x2cfc, HB_Punctuation_Other},
  {0x2cfd, 0x2cfd, HB_Number_Other},
  {0x2cfe, 0x2cff, HB_Punctuation_Other},
  {0x2d00, 0x2d25, HB_Letter_Lowercase},
  {0x2d26, 0x2d2f, HB_Other_NotAssigned},
  {0x2d30, 0x2d65, HB_Letter_Other},
  {0x2d66, 0x2d6e, HB_Other_NotAssigned},
  {0x2d6f, 0x2d6f, HB_Letter_Modifier},
  {0x2d70, 0x2d7f, HB_Other_NotAssigned},
  {0x2d80, 0x2d96, HB_Letter_Other},
  {0x2d97, 0x2d9f, HB_Other_NotAssigned},
  {0x2da0, 0x2da6, HB_Letter_Other},
  {0x2da7, 0x2da7, HB_Other_NotAssigned},
  {0x2da8, 0x2dae, HB_Letter_Other},
  {0x2daf, 0x2daf, HB_Other_NotAssigned},
  {0x2db0, 0x2db6, HB_Letter_Other},
  {0x2db7, 0x2db7, HB_Other_NotAssigned},
  {0x2db8, 0x2dbe, HB_Letter_Other},
  {0x2dbf, 0x2dbf, HB_Other_NotAssigned},
  {0x2dc0, 0x2dc6, HB_Letter_Other},
  {0x2dc7, 0x2dc7, HB_Other_NotAssigned},
  {0x2dc8, 0x2dce, HB_Letter_Other},
  {0x2dcf, 0x2dcf, HB_Other_NotAssigned},
  {0x2dd0, 0x2dd6, HB_Letter_Other},
  {0x2dd7, 0x2dd7, HB_Other_NotAssigned},
  {0x2dd8, 0x2dde, HB_Letter_Other},
  {0x2ddf, 0x2ddf, HB_Other_NotAssigned},
  {0x2de0, 0x2dff, HB_Mark_NonSpacing},
  {0x2e00, 0x2e01, HB_Punctuation_Other},
  {0x2e02, 0x2e02, HB_Punctuation_InitialQuote},
  {0x2e03, 0x2e03, HB_Punctuation_FinalQuote},
  {0x2e04, 0x2e04, HB_Punctuation_InitialQuote},
  {0x2e05, 0x2e05, HB_Punctuation_FinalQuote},
  {0x2e06, 0x2e08, HB_Punctuation_Other},
  {0x2e09, 0x2e09, HB_Punctuation_InitialQuote},
  {0x2e0a, 0x2e0a, HB_Punctuation_FinalQuote},
  {0x2e0b, 0x2e0b, HB_Punctuation_Other},
  {0x2e0c, 0x2e0c, HB_Punctuation_InitialQuote},
  {0x2e0d, 0x2e0d, HB_Punctuation_FinalQuote},
  {0x2e0e, 0x2e16, HB_Punctuation_Other},
  {0x2e17, 0x2e17, HB_Punctuation_Dash},
  {0x2e18, 0x2e19, HB_Punctuation_Other},
  {0x2e1a, 0x2e1a, HB_Punctuation_Dash},
  {0x2e1b, 0x2e1b, HB_Punctuation_Other},
  {0x2e1c, 0x2e1c, HB_Punctuation_InitialQuote},
  {0x2e1d, 0x2e1d, HB_Punctuation_FinalQuote},
  {0x2e1e, 0x2e1f, HB_Punctuation_Other},
  {0x2e20, 0x2e20, HB_Punctuation_InitialQuote},
  {0x2e21, 0x2e21, HB_Punctuation_FinalQuote},
  {0x2e22, 0x2e22, HB_Punctuation_Open},
  {0x2e23, 0x2e23, HB_Punctuation_Close},
  {0x2e24, 0x2e24, HB_Punctuation_Open},
  {0x2e25, 0x2e25, HB_Punctuation_Close},
  {0x2e26, 0x2e26, HB_Punctuation_Open},
  {0x2e27, 0x2e27, HB_Punctuation_Close},
  {0x2e28, 0x2e28, HB_Punctuation_Open},
  {0x2e29, 0x2e29, HB_Punctuation_Close},
  {0x2e2a, 0x2e2e, HB_Punctuation_Other},
  {0x2e2f, 0x2e2f, HB_Letter_Modifier},
  {0x2e30, 0x2e30, HB_Punctuation_Other},
  {0x2e31, 0x2e7f, HB_Other_NotAssigned},
  {0x2e80, 0x2e99, HB_Symbol_Other},
  {0x2e9a, 0x2e9a, HB_Other_NotAssigned},
  {0x2e9b, 0x2ef3, HB_Symbol_Other},
  {0x2ef4, 0x2eff, HB_Other_NotAssigned},
  {0x2f00, 0x2fd5, HB_Symbol_Other},
  {0x2fd6, 0x2fef, HB_Other_NotAssigned},
  {0x2ff0, 0x2ffb, HB_Symbol_Other},
  {0x2ffc, 0x2fff, HB_Other_NotAssigned},
  {0x3000, 0x3000, HB_Separator_Space},
  {0x3001, 0x3003, HB_Punctuation_Other},
  {0x3004, 0x3004, HB_Symbol_Other},
  {0x3005, 0x3005, HB_Letter_Modifier},
  {0x3006, 0x3006, HB_Letter_Other},
  {0x3007, 0x3007, HB_Number_Letter},
  {0x3008, 0x3008, HB_Punctuation_Open},
  {0x3009, 0x3009, HB_Punctuation_Close},
  {0x300a, 0x300a, HB_Punctuation_Open},
  {0x300b, 0x300b, HB_Punctuation_Close},
  {0x300c, 0x300c, HB_Punctuation_Open},
  {0x300d, 0x300d, HB_Punctuation_Close},
  {0x300e, 0x300e, HB_Punctuation_Open},
  {0x300f, 0x300f, HB_Punctuation_Close},
  {0x3010, 0x3010, HB_Punctuation_Open},
  {0x3011, 0x3011, HB_Punctuation_Close},
  {0x3012, 0x3013, HB_Symbol_Other},
  {0x3014, 0x3014, HB_Punctuation_Open},
  {0x3015, 0x3015, HB_Punctuation_Close},
  {0x3016, 0x3016, HB_Punctuation_Open},
  {0x3017, 0x3017, HB_Punctuation_Close},
  {0x3018, 0x3018, HB_Punctuation_Open},
  {0x3019, 0x3019, HB_Punctuation_Close},
  {0x301a, 0x301a, HB_Punctuation_Open},
  {0x301b, 0x301b, HB_Punctuation_Close},
  {0x301c, 0x301c, HB_Punctuation_Dash},
  {0x301d, 0x301d, HB_Punctuation_Open},
  {0x301e, 0x301f, HB_Punctuation_Close},
  {0x3020, 0x3020, HB_Symbol_Other},
  {0x3021, 0x3029, HB_Number_Letter},
  {0x302a, 0x302f, HB_Mark_NonSpacing},
  {0x3030, 0x3030, HB_Punctuation_Dash},
  {0x3031, 0x3035, HB_Letter_Modifier},
  {0x3036, 0x3037, HB_Symbol_Other},
  {0x3038, 0x303a, HB_Number_Letter},
  {0x303b, 0x303b, HB_Letter_Modifier},
  {0x303c, 0x303c, HB_Letter_Other},
  {0x303d, 0x303d, HB_Punctuation_Other},
  {0x303e, 0x303f, HB_Symbol_Other},
  {0x3040, 0x3040, HB_Other_NotAssigned},
  {0x3041, 0x3096, HB_Letter_Other},
  {0x3097, 0x3098, HB_Other_NotAssigned},
  {0x3099, 0x309a, HB_Mark_NonSpacing},
  {0x309b, 0x309c, HB_Symbol_Modifier},
  {0x309d, 0x309e, HB_Letter_Modifier},
  {0x309f, 0x309f, HB_Letter_Other},
  {0x30a0, 0x30a0, HB_Punctuation_Dash},
  {0x30a1, 0x30fa, HB_Letter_Other},
  {0x30fb, 0x30fb, HB_Punctuation_Other},
  {0x30fc, 0x30fe, HB_Letter_Modifier},
  {0x30ff, 0x30ff, HB_Letter_Other},
  {0x3100, 0x3104, HB_Other_NotAssigned},
  {0x3105, 0x312d, HB_Letter_Other},
  {0x312e, 0x3130, HB_Other_NotAssigned},
  {0x3131, 0x318e, HB_Letter_Other},
  {0x318f, 0x318f, HB_Other_NotAssigned},
  {0x3190, 0x3191, HB_Symbol_Other},
  {0x3192, 0x3195, HB_Number_Other},
  {0x3196, 0x319f, HB_Symbol_Other},
  {0x31a0, 0x31b7, HB_Letter_Other},
  {0x31b8, 0x31bf, HB_Other_NotAssigned},
  {0x31c0, 0x31e3, HB_Symbol_Other},
  {0x31e4, 0x31ef, HB_Other_NotAssigned},
  {0x31f0, 0x31ff, HB_Letter_Other},
  {0x3200, 0x321e, HB_Symbol_Other},
  {0x321f, 0x321f, HB_Other_NotAssigned},
  {0x3220, 0x3229, HB_Number_Other},
  {0x322a, 0x3243, HB_Symbol_Other},
  {0x3244, 0x324f, HB_Other_NotAssigned},
  {0x3250, 0x3250, HB_Symbol_Other},
  {0x3251, 0x325f, HB_Number_Other},
  {0x3260, 0x327f, HB_Symbol_Other},
  {0x3280, 0x3289, HB_Number_Other},
  {0x328a, 0x32b0, HB_Symbol_Other},
  {0x32b1, 0x32bf, HB_Number_Other},
  {0x32c0, 0x32fe, HB_Symbol_Other},
  {0x32ff, 0x32ff, HB_Other_NotAssigned},
  {0x3300, 0x33ff, HB_Symbol_Other},
  {0x3400, 0x4db5, HB_Letter_Other},
  {0x4db6, 0x4dbf, HB_Other_NotAssigned},
  {0x4dc0, 0x4dff, HB_Symbol_Other},
  {0x4e00, 0x9fc3, HB_Letter_Other},
  {0x9fc4, 0x9fff, HB_Other_NotAssigned},
  {0xa000, 0xa014, HB_Letter_Other},
  {0xa015, 0xa015, HB_Letter_Modifier},
  {0xa016, 0xa48c, HB_Letter_Other},
  {0xa48d, 0xa48f, HB_Other_NotAssigned},
  {0xa490, 0xa4c6, HB_Symbol_Other},
  {0xa4c7, 0xa4ff, HB_Other_NotAssigned},
  {0xa500, 0xa60b, HB_Letter_Other},
  {0xa60c, 0xa60c, HB_Letter_Modifier},
  {0xa60d, 0xa60f, HB_Punctuation_Other},
  {0xa610, 0xa61f, HB_Letter_Other},
  {0xa620, 0xa629, HB_Number_DecimalDigit},
  {0xa62a, 0xa62b, HB_Letter_Other},
  {0xa62c, 0xa63f, HB_Other_NotAssigned},
  {0xa640, 0xa640, HB_Letter_Uppercase},
  {0xa641, 0xa641, HB_Letter_Lowercase},
  {0xa642, 0xa642, HB_Letter_Uppercase},
  {0xa643, 0xa643, HB_Letter_Lowercase},
  {0xa644, 0xa644, HB_Letter_Uppercase},
  {0xa645, 0xa645, HB_Letter_Lowercase},
  {0xa646, 0xa646, HB_Letter_Uppercase},
  {0xa647, 0xa647, HB_Letter_Lowercase},
  {0xa648, 0xa648, HB_Letter_Uppercase},
  {0xa649, 0xa649, HB_Letter_Lowercase},
  {0xa64a, 0xa64a, HB_Letter_Uppercase},
  {0xa64b, 0xa64b, HB_Letter_Lowercase},
  {0xa64c, 0xa64c, HB_Letter_Uppercase},
  {0xa64d, 0xa64d, HB_Letter_Lowercase},
  {0xa64e, 0xa64e, HB_Letter_Uppercase},
  {0xa64f, 0xa64f, HB_Letter_Lowercase},
  {0xa650, 0xa650, HB_Letter_Uppercase},
  {0xa651, 0xa651, HB_Letter_Lowercase},
  {0xa652, 0xa652, HB_Letter_Uppercase},
  {0xa653, 0xa653, HB_Letter_Lowercase},
  {0xa654, 0xa654, HB_Letter_Uppercase},
  {0xa655, 0xa655, HB_Letter_Lowercase},
  {0xa656, 0xa656, HB_Letter_Uppercase},
  {0xa657, 0xa657, HB_Letter_Lowercase},
  {0xa658, 0xa658, HB_Letter_Uppercase},
  {0xa659, 0xa659, HB_Letter_Lowercase},
  {0xa65a, 0xa65a, HB_Letter_Uppercase},
  {0xa65b, 0xa65b, HB_Letter_Lowercase},
  {0xa65c, 0xa65c, HB_Letter_Uppercase},
  {0xa65d, 0xa65d, HB_Letter_Lowercase},
  {0xa65e, 0xa65e, HB_Letter_Uppercase},
  {0xa65f, 0xa65f, HB_Letter_Lowercase},
  {0xa660, 0xa661, HB_Other_NotAssigned},
  {0xa662, 0xa662, HB_Letter_Uppercase},
  {0xa663, 0xa663, HB_Letter_Lowercase},
  {0xa664, 0xa664, HB_Letter_Uppercase},
  {0xa665, 0xa665, HB_Letter_Lowercase},
  {0xa666, 0xa666, HB_Letter_Uppercase},
  {0xa667, 0xa667, HB_Letter_Lowercase},
  {0xa668, 0xa668, HB_Letter_Uppercase},
  {0xa669, 0xa669, HB_Letter_Lowercase},
  {0xa66a, 0xa66a, HB_Letter_Uppercase},
  {0xa66b, 0xa66b, HB_Letter_Lowercase},
  {0xa66c, 0xa66c, HB_Letter_Uppercase},
  {0xa66d, 0xa66d, HB_Letter_Lowercase},
  {0xa66e, 0xa66e, HB_Letter_Other},
  {0xa66f, 0xa66f, HB_Mark_NonSpacing},
  {0xa670, 0xa672, HB_Mark_Enclosing},
  {0xa673, 0xa673, HB_Punctuation_Other},
  {0xa674, 0xa67b, HB_Other_NotAssigned},
  {0xa67c, 0xa67d, HB_Mark_NonSpacing},
  {0xa67e, 0xa67e, HB_Punctuation_Other},
  {0xa67f, 0xa67f, HB_Letter_Modifier},
  {0xa680, 0xa680, HB_Letter_Uppercase},
  {0xa681, 0xa681, HB_Letter_Lowercase},
  {0xa682, 0xa682, HB_Letter_Uppercase},
  {0xa683, 0xa683, HB_Letter_Lowercase},
  {0xa684, 0xa684, HB_Letter_Uppercase},
  {0xa685, 0xa685, HB_Letter_Lowercase},
  {0xa686, 0xa686, HB_Letter_Uppercase},
  {0xa687, 0xa687, HB_Letter_Lowercase},
  {0xa688, 0xa688, HB_Letter_Uppercase},
  {0xa689, 0xa689, HB_Letter_Lowercase},
  {0xa68a, 0xa68a, HB_Letter_Uppercase},
  {0xa68b, 0xa68b, HB_Letter_Lowercase},
  {0xa68c, 0xa68c, HB_Letter_Uppercase},
  {0xa68d, 0xa68d, HB_Letter_Lowercase},
  {0xa68e, 0xa68e, HB_Letter_Uppercase},
  {0xa68f, 0xa68f, HB_Letter_Lowercase},
  {0xa690, 0xa690, HB_Letter_Uppercase},
  {0xa691, 0xa691, HB_Letter_Lowercase},
  {0xa692, 0xa692, HB_Letter_Uppercase},
  {0xa693, 0xa693, HB_Letter_Lowercase},
  {0xa694, 0xa694, HB_Letter_Uppercase},
  {0xa695, 0xa695, HB_Letter_Lowercase},
  {0xa696, 0xa696, HB_Letter_Uppercase},
  {0xa697, 0xa697, HB_Letter_Lowercase},
  {0xa698, 0xa6ff, HB_Other_NotAssigned},
  {0xa700, 0xa716, HB_Symbol_Modifier},
  {0xa717, 0xa71f, HB_Letter_Modifier},
  {0xa720, 0xa721, HB_Symbol_Modifier},
  {0xa722, 0xa722, HB_Letter_Uppercase},
  {0xa723, 0xa723, HB_Letter_Lowercase},
  {0xa724, 0xa724, HB_Letter_Uppercase},
  {0xa725, 0xa725, HB_Letter_Lowercase},
  {0xa726, 0xa726, HB_Letter_Uppercase},
  {0xa727, 0xa727, HB_Letter_Lowercase},
  {0xa728, 0xa728, HB_Letter_Uppercase},
  {0xa729, 0xa729, HB_Letter_Lowercase},
  {0xa72a, 0xa72a, HB_Letter_Uppercase},
  {0xa72b, 0xa72b, HB_Letter_Lowercase},
  {0xa72c, 0xa72c, HB_Letter_Uppercase},
  {0xa72d, 0xa72d, HB_Letter_Lowercase},
  {0xa72e, 0xa72e, HB_Letter_Uppercase},
  {0xa72f, 0xa731, HB_Letter_Lowercase},
  {0xa732, 0xa732, HB_Letter_Uppercase},
  {0xa733, 0xa733, HB_Letter_Lowercase},
  {0xa734, 0xa734, HB_Letter_Uppercase},
  {0xa735, 0xa735, HB_Letter_Lowercase},
  {0xa736, 0xa736, HB_Letter_Uppercase},
  {0xa737, 0xa737, HB_Letter_Lowercase},
  {0xa738, 0xa738, HB_Letter_Uppercase},
  {0xa739, 0xa739, HB_Letter_Lowercase},
  {0xa73a, 0xa73a, HB_Letter_Uppercase},
  {0xa73b, 0xa73b, HB_Letter_Lowercase},
  {0xa73c, 0xa73c, HB_Letter_Uppercase},
  {0xa73d, 0xa73d, HB_Letter_Lowercase},
  {0xa73e, 0xa73e, HB_Letter_Uppercase},
  {0xa73f, 0xa73f, HB_Letter_Lowercase},
  {0xa740, 0xa740, HB_Letter_Uppercase},
  {0xa741, 0xa741, HB_Letter_Lowercase},
  {0xa742, 0xa742, HB_Letter_Uppercase},
  {0xa743, 0xa743, HB_Letter_Lowercase},
  {0xa744, 0xa744, HB_Letter_Uppercase},
  {0xa745, 0xa745, HB_Letter_Lowercase},
  {0xa746, 0xa746, HB_Letter_Uppercase},
  {0xa747, 0xa747, HB_Letter_Lowercase},
  {0xa748, 0xa748, HB_Letter_Uppercase},
  {0xa749, 0xa749, HB_Letter_Lowercase},
  {0xa74a, 0xa74a, HB_Letter_Uppercase},
  {0xa74b, 0xa74b, HB_Letter_Lowercase},
  {0xa74c, 0xa74c, HB_Letter_Uppercase},
  {0xa74d, 0xa74d, HB_Letter_Lowercase},
  {0xa74e, 0xa74e, HB_Letter_Uppercase},
  {0xa74f, 0xa74f, HB_Letter_Lowercase},
  {0xa750, 0xa750, HB_Letter_Uppercase},
  {0xa751, 0xa751, HB_Letter_Lowercase},
  {0xa752, 0xa752, HB_Letter_Uppercase},
  {0xa753, 0xa753, HB_Letter_Lowercase},
  {0xa754, 0xa754, HB_Letter_Uppercase},
  {0xa755, 0xa755, HB_Letter_Lowercase},
  {0xa756, 0xa756, HB_Letter_Uppercase},
  {0xa757, 0xa757, HB_Letter_Lowercase},
  {0xa758, 0xa758, HB_Letter_Uppercase},
  {0xa759, 0xa759, HB_Letter_Lowercase},
  {0xa75a, 0xa75a, HB_Letter_Uppercase},
  {0xa75b, 0xa75b, HB_Letter_Lowercase},
  {0xa75c, 0xa75c, HB_Letter_Uppercase},
  {0xa75d, 0xa75d, HB_Letter_Lowercase},
  {0xa75e, 0xa75e, HB_Letter_Uppercase},
  {0xa75f, 0xa75f, HB_Letter_Lowercase},
  {0xa760, 0xa760, HB_Letter_Uppercase},
  {0xa761, 0xa761, HB_Letter_Lowercase},
  {0xa762, 0xa762, HB_Letter_Uppercase},
  {0xa763, 0xa763, HB_Letter_Lowercase},
  {0xa764, 0xa764, HB_Letter_Uppercase},
  {0xa765, 0xa765, HB_Letter_Lowercase},
  {0xa766, 0xa766, HB_Letter_Uppercase},
  {0xa767, 0xa767, HB_Letter_Lowercase},
  {0xa768, 0xa768, HB_Letter_Uppercase},
  {0xa769, 0xa769, HB_Letter_Lowercase},
  {0xa76a, 0xa76a, HB_Letter_Uppercase},
  {0xa76b, 0xa76b, HB_Letter_Lowercase},
  {0xa76c, 0xa76c, HB_Letter_Uppercase},
  {0xa76d, 0xa76d, HB_Letter_Lowercase},
  {0xa76e, 0xa76e, HB_Letter_Uppercase},
  {0xa76f, 0xa76f, HB_Letter_Lowercase},
  {0xa770, 0xa770, HB_Letter_Modifier},
  {0xa771, 0xa778, HB_Letter_Lowercase},
  {0xa779, 0xa779, HB_Letter_Uppercase},
  {0xa77a, 0xa77a, HB_Letter_Lowercase},
  {0xa77b, 0xa77b, HB_Letter_Uppercase},
  {0xa77c, 0xa77c, HB_Letter_Lowercase},
  {0xa77d, 0xa77e, HB_Letter_Uppercase},
  {0xa77f, 0xa77f, HB_Letter_Lowercase},
  {0xa780, 0xa780, HB_Letter_Uppercase},
  {0xa781, 0xa781, HB_Letter_Lowercase},
  {0xa782, 0xa782, HB_Letter_Uppercase},
  {0xa783, 0xa783, HB_Letter_Lowercase},
  {0xa784, 0xa784, HB_Letter_Uppercase},
  {0xa785, 0xa785, HB_Letter_Lowercase},
  {0xa786, 0xa786, HB_Letter_Uppercase},
  {0xa787, 0xa787, HB_Letter_Lowercase},
  {0xa788, 0xa788, HB_Letter_Modifier},
  {0xa789, 0xa78a, HB_Symbol_Modifier},
  {0xa78b, 0xa78b, HB_Letter_Uppercase},
  {0xa78c, 0xa78c, HB_Letter_Lowercase},
  {0xa78d, 0xa7fa, HB_Other_NotAssigned},
  {0xa7fb, 0xa801, HB_Letter_Other},
  {0xa802, 0xa802, HB_Mark_NonSpacing},
  {0xa803, 0xa805, HB_Letter_Other},
  {0xa806, 0xa806, HB_Mark_NonSpacing},
  {0xa807, 0xa80a, HB_Letter_Other},
  {0xa80b, 0xa80b, HB_Mark_NonSpacing},
  {0xa80c, 0xa822, HB_Letter_Other},
  {0xa823, 0xa824, HB_Mark_SpacingCombining},
  {0xa825, 0xa826, HB_Mark_NonSpacing},
  {0xa827, 0xa827, HB_Mark_SpacingCombining},
  {0xa828, 0xa82b, HB_Symbol_Other},
  {0xa82c, 0xa83f, HB_Other_NotAssigned},
  {0xa840, 0xa873, HB_Letter_Other},
  {0xa874, 0xa877, HB_Punctuation_Other},
  {0xa878, 0xa87f, HB_Other_NotAssigned},
  {0xa880, 0xa881, HB_Mark_SpacingCombining},
  {0xa882, 0xa8b3, HB_Letter_Other},
  {0xa8b4, 0xa8c3, HB_Mark_SpacingCombining},
  {0xa8c4, 0xa8c4, HB_Mark_NonSpacing},
  {0xa8c5, 0xa8cd, HB_Other_NotAssigned},
  {0xa8ce, 0xa8cf, HB_Punctuation_Other},
  {0xa8d0, 0xa8d9, HB_Number_DecimalDigit},
  {0xa8da, 0xa8ff, HB_Other_NotAssigned},
  {0xa900, 0xa909, HB_Number_DecimalDigit},
  {0xa90a, 0xa925, HB_Letter_Other},
  {0xa926, 0xa92d, HB_Mark_NonSpacing},
  {0xa92e, 0xa92f, HB_Punctuation_Other},
  {0xa930, 0xa946, HB_Letter_Other},
  {0xa947, 0xa951, HB_Mark_NonSpacing},
  {0xa952, 0xa953, HB_Mark_SpacingCombining},
  {0xa954, 0xa95e, HB_Other_NotAssigned},
  {0xa95f, 0xa95f, HB_Punctuation_Other},
  {0xa960, 0xa9ff, HB_Other_NotAssigned},
  {0xaa00, 0xaa28, HB_Letter_Other},
  {0xaa29, 0xaa2e, HB_Mark_NonSpacing},
  {0xaa2f, 0xaa30, HB_Mark_SpacingCombining},
  {0xaa31, 0xaa32, HB_Mark_NonSpacing},
  {0xaa33, 0xaa34, HB_Mark_SpacingCombining},
  {0xaa35, 0xaa36, HB_Mark_NonSpacing},
  {0xaa37, 0xaa3f, HB_Other_NotAssigned},
  {0xaa40, 0xaa42, HB_Letter_Other},
  {0xaa43, 0xaa43, HB_Mark_NonSpacing},
  {0xaa44, 0xaa4b, HB_Letter_Other},
  {0xaa4c, 0xaa4c, HB_Mark_NonSpacing},
  {0xaa4d, 0xaa4d, HB_Mark_SpacingCombining},
  {0xaa4e, 0xaa4f, HB_Other_NotAssigned},
  {0xaa50, 0xaa59, HB_Number_DecimalDigit},
  {0xaa5a, 0xaa5b, HB_Other_NotAssigned},
  {0xaa5c, 0xaa5f, HB_Punctuation_Other},
  {0xaa60, 0xabff, HB_Other_NotAssigned},
  {0xac00, 0xd7a3, HB_Letter_Other},
  {0xd7a4, 0xd7ff, HB_Other_NotAssigned},
  {0xd800, 0xdfff, HB_Other_Surrogate},
  {0xe000, 0xf8ff, HB_Other_PrivateUse},
  {0xf900, 0xfa2d, HB_Letter_Other},
  {0xfa2e, 0xfa2f, HB_Other_NotAssigned},
  {0xfa30, 0xfa6a, HB_Letter_Other},
  {0xfa6b, 0xfa6f, HB_Other_NotAssigned},
  {0xfa70, 0xfad9, HB_Letter_Other},
  {0xfada, 0xfaff, HB_Other_NotAssigned},
  {0xfb00, 0xfb06, HB_Letter_Lowercase},
  {0xfb07, 0xfb12, HB_Other_NotAssigned},
  {0xfb13, 0xfb17, HB_Letter_Lowercase},
  {0xfb18, 0xfb1c, HB_Other_NotAssigned},
  {0xfb1d, 0xfb1d, HB_Letter_Other},
  {0xfb1e, 0xfb1e, HB_Mark_NonSpacing},
  {0xfb1f, 0xfb28, HB_Letter_Other},
  {0xfb29, 0xfb29, HB_Symbol_Math},
  {0xfb2a, 0xfb36, HB_Letter_Other},
  {0xfb37, 0xfb37, HB_Other_NotAssigned},
  {0xfb38, 0xfb3c, HB_Letter_Other},
  {0xfb3d, 0xfb3d, HB_Other_NotAssigned},
  {0xfb3e, 0xfb3e, HB_Letter_Other},
  {0xfb3f, 0xfb3f, HB_Other_NotAssigned},
  {0xfb40, 0xfb41, HB_Letter_Other},
  {0xfb42, 0xfb42, HB_Other_NotAssigned},
  {0xfb43, 0xfb44, HB_Letter_Other},
  {0xfb45, 0xfb45, HB_Other_NotAssigned},
  {0xfb46, 0xfbb1, HB_Letter_Other},
  {0xfbb2, 0xfbd2, HB_Other_NotAssigned},
  {0xfbd3, 0xfd3d, HB_Letter_Other},
  {0xfd3e, 0xfd3e, HB_Punctuation_Open},
  {0xfd3f, 0xfd3f, HB_Punctuation_Close},
  {0xfd40, 0xfd4f, HB_Other_NotAssigned},
  {0xfd50, 0xfd8f, HB_Letter_Other},
  {0xfd90, 0xfd91, HB_Other_NotAssigned},
  {0xfd92, 0xfdc7, HB_Letter_Other},
  {0xfdc8, 0xfdef, HB_Other_NotAssigned},
  {0xfdf0, 0xfdfb, HB_Letter_Other},
  {0xfdfc, 0xfdfc, HB_Symbol_Currency},
  {0xfdfd, 0xfdfd, HB_Symbol_Other},
  {0xfdfe, 0xfdff, HB_Other_NotAssigned},
  {0xfe00, 0xfe0f, HB_Mark_NonSpacing},
  {0xfe10, 0xfe16, HB_Punctuation_Other},
  {0xfe17, 0xfe17, HB_Punctuation_Open},
  {0xfe18, 0xfe18, HB_Punctuation_Close},
  {0xfe19, 0xfe19, HB_Punctuation_Other},
  {0xfe1a, 0xfe1f, HB_Other_NotAssigned},
  {0xfe20, 0xfe26, HB_Mark_NonSpacing},
  {0xfe27, 0xfe2f, HB_Other_NotAssigned},
  {0xfe30, 0xfe30, HB_Punctuation_Other},
  {0xfe31, 0xfe32, HB_Punctuation_Dash},
  {0xfe33, 0xfe34, HB_Punctuation_Connector},
  {0xfe35, 0xfe35, HB_Punctuation_Open},
  {0xfe36, 0xfe36, HB_Punctuation_Close},
  {0xfe37, 0xfe37, HB_Punctuation_Open},
  {0xfe38, 0xfe38, HB_Punctuation_Close},
  {0xfe39, 0xfe39, HB_Punctuation_Open},
  {0xfe3a, 0xfe3a, HB_Punctuation_Close},
  {0xfe3b, 0xfe3b, HB_Punctuation_Open},
  {0xfe3c, 0xfe3c, HB_Punctuation_Close},
  {0xfe3d, 0xfe3d, HB_Punctuation_Open},
  {0xfe3e, 0xfe3e, HB_Punctuation_Close},
  {0xfe3f, 0xfe3f, HB_Punctuation_Open},
  {0xfe40, 0xfe40, HB_Punctuation_Close},
  {0xfe41, 0xfe41, HB_Punctuation_Open},
  {0xfe42, 0xfe42, HB_Punctuation_Close},
  {0xfe43, 0xfe43, HB_Punctuation_Open},
  {0xfe44, 0xfe44, HB_Punctuation_Close},
  {0xfe45, 0xfe46, HB_Punctuation_Other},
  {0xfe47, 0xfe47, HB_Punctuation_Open},
  {0xfe48, 0xfe48, HB_Punctuation_Close},
  {0xfe49, 0xfe4c, HB_Punctuation_Other},
  {0xfe4d, 0xfe4f, HB_Punctuation_Connector},
  {0xfe50, 0xfe52, HB_Punctuation_Other},
  {0xfe53, 0xfe53, HB_Other_NotAssigned},
  {0xfe54, 0xfe57, HB_Punctuation_Other},
  {0xfe58, 0xfe58, HB_Punctuation_Dash},
  {0xfe59, 0xfe59, HB_Punctuation_Open},
  {0xfe5a, 0xfe5a, HB_Punctuation_Close},
  {0xfe5b, 0xfe5b, HB_Punctuation_Open},
  {0xfe5c, 0xfe5c, HB_Punctuation_Close},
  {0xfe5d, 0xfe5d, HB_Punctuation_Open},
  {0xfe5e, 0xfe5e, HB_Punctuation_Close},
  {0xfe5f, 0xfe61, HB_Punctuation_Other},
  {0xfe62, 0xfe62, HB_Symbol_Math},
  {0xfe63, 0xfe63, HB_Punctuation_Dash},
  {0xfe64, 0xfe66, HB_Symbol_Math},
  {0xfe67, 0xfe67, HB_Other_NotAssigned},
  {0xfe68, 0xfe68, HB_Punctuation_Other},
  {0xfe69, 0xfe69, HB_Symbol_Currency},
  {0xfe6a, 0xfe6b, HB_Punctuation_Other},
  {0xfe6c, 0xfe6f, HB_Other_NotAssigned},
  {0xfe70, 0xfe74, HB_Letter_Other},
  {0xfe75, 0xfe75, HB_Other_NotAssigned},
  {0xfe76, 0xfefc, HB_Letter_Other},
  {0xfefd, 0xfefe, HB_Other_NotAssigned},
  {0xfeff, 0xfeff, HB_Other_Format},
  {0xff00, 0xff00, HB_Other_NotAssigned},
  {0xff01, 0xff03, HB_Punctuation_Other},
  {0xff04, 0xff04, HB_Symbol_Currency},
  {0xff05, 0xff07, HB_Punctuation_Other},
  {0xff08, 0xff08, HB_Punctuation_Open},
  {0xff09, 0xff09, HB_Punctuation_Close},
  {0xff0a, 0xff0a, HB_Punctuation_Other},
  {0xff0b, 0xff0b, HB_Symbol_Math},
  {0xff0c, 0xff0c, HB_Punctuation_Other},
  {0xff0d, 0xff0d, HB_Punctuation_Dash},
  {0xff0e, 0xff0f, HB_Punctuation_Other},
  {0xff10, 0xff19, HB_Number_DecimalDigit},
  {0xff1a, 0xff1b, HB_Punctuation_Other},
  {0xff1c, 0xff1e, HB_Symbol_Math},
  {0xff1f, 0xff20, HB_Punctuation_Other},
  {0xff21, 0xff3a, HB_Letter_Uppercase},
  {0xff3b, 0xff3b, HB_Punctuation_Open},
  {0xff3c, 0xff3c, HB_Punctuation_Other},
  {0xff3d, 0xff3d, HB_Punctuation_Close},
  {0xff3e, 0xff3e, HB_Symbol_Modifier},
  {0xff3f, 0xff3f, HB_Punctuation_Connector},
  {0xff40, 0xff40, HB_Symbol_Modifier},
  {0xff41, 0xff5a, HB_Letter_Lowercase},
  {0xff5b, 0xff5b, HB_Punctuation_Open},
  {0xff5c, 0xff5c, HB_Symbol_Math},
  {0xff5d, 0xff5d, HB_Punctuation_Close},
  {0xff5e, 0xff5e, HB_Symbol_Math},
  {0xff5f, 0xff5f, HB_Punctuation_Open},
  {0xff60, 0xff60, HB_Punctuation_Close},
  {0xff61, 0xff61, HB_Punctuation_Other},
  {0xff62, 0xff62, HB_Punctuation_Open},
  {0xff63, 0xff63, HB_Punctuation_Close},
  {0xff64, 0xff65, HB_Punctuation_Other},
  {0xff66, 0xff6f, HB_Letter_Other},
  {0xff70, 0xff70, HB_Letter_Modifier},
  {0xff71, 0xff9d, HB_Letter_Other},
  {0xff9e, 0xff9f, HB_Letter_Modifier},
  {0xffa0, 0xffbe, HB_Letter_Other},
  {0xffbf, 0xffc1, HB_Other_NotAssigned},
  {0xffc2, 0xffc7, HB_Letter_Other},
  {0xffc8, 0xffc9, HB_Other_NotAssigned},
  {0xffca, 0xffcf, HB_Letter_Other},
  {0xffd0, 0xffd1, HB_Other_NotAssigned},
  {0xffd2, 0xffd7, HB_Letter_Other},
  {0xffd8, 0xffd9, HB_Other_NotAssigned},
  {0xffda, 0xffdc, HB_Letter_Other},
  {0xffdd, 0xffdf, HB_Other_NotAssigned},
  {0xffe0, 0xffe1, HB_Symbol_Currency},
  {0xffe2, 0xffe2, HB_Symbol_Math},
  {0xffe3, 0xffe3, HB_Symbol_Modifier},
  {0xffe4, 0xffe4, HB_Symbol_Other},
  {0xffe5, 0xffe6, HB_Symbol_Currency},
  {0xffe7, 0xffe7, HB_Other_NotAssigned},
  {0xffe8, 0xffe8, HB_Symbol_Other},
  {0xffe9, 0xffec, HB_Symbol_Math},
  {0xffed, 0xffee, HB_Symbol_Other},
  {0xffef, 0xfff8, HB_Other_NotAssigned},
  {0xfff9, 0xfffb, HB_Other_Format},
  {0xfffc, 0xfffd, HB_Symbol_Other},
  {0xfffe, 0xffff, HB_Other_NotAssigned},
  {0x10000, 0x1000b, HB_Letter_Other},
  {0x1000c, 0x1000c, HB_Other_NotAssigned},
  {0x1000d, 0x10026, HB_Letter_Other},
  {0x10027, 0x10027, HB_Other_NotAssigned},
  {0x10028, 0x1003a, HB_Letter_Other},
  {0x1003b, 0x1003b, HB_Other_NotAssigned},
  {0x1003c, 0x1003d, HB_Letter_Other},
  {0x1003e, 0x1003e, HB_Other_NotAssigned},
  {0x1003f, 0x1004d, HB_Letter_Other},
  {0x1004e, 0x1004f, HB_Other_NotAssigned},
  {0x10050, 0x1005d, HB_Letter_Other},
  {0x1005e, 0x1007f, HB_Other_NotAssigned},
  {0x10080, 0x100fa, HB_Letter_Other},
  {0x100fb, 0x100ff, HB_Other_NotAssigned},
  {0x10100, 0x10101, HB_Punctuation_Other},
  {0x10102, 0x10102, HB_Symbol_Other},
  {0x10103, 0x10106, HB_Other_NotAssigned},
  {0x10107, 0x10133, HB_Number_Other},
  {0x10134, 0x10136, HB_Other_NotAssigned},
  {0x10137, 0x1013f, HB_Symbol_Other},
  {0x10140, 0x10174, HB_Number_Letter},
  {0x10175, 0x10178, HB_Number_Other},
  {0x10179, 0x10189, HB_Symbol_Other},
  {0x1018a, 0x1018a, HB_Number_Other},
  {0x1018b, 0x1018f, HB_Other_NotAssigned},
  {0x10190, 0x1019b, HB_Symbol_Other},
  {0x1019c, 0x101cf, HB_Other_NotAssigned},
  {0x101d0, 0x101fc, HB_Symbol_Other},
  {0x101fd, 0x101fd, HB_Mark_NonSpacing},
  {0x101fe, 0x1027f, HB_Other_NotAssigned},
  {0x10280, 0x1029c, HB_Letter_Other},
  {0x1029d, 0x1029f, HB_Other_NotAssigned},
  {0x102a0, 0x102d0, HB_Letter_Other},
  {0x102d1, 0x102ff, HB_Other_NotAssigned},
  {0x10300, 0x1031e, HB_Letter_Other},
  {0x1031f, 0x1031f, HB_Other_NotAssigned},
  {0x10320, 0x10323, HB_Number_Other},
  {0x10324, 0x1032f, HB_Other_NotAssigned},
  {0x10330, 0x10340, HB_Letter_Other},
  {0x10341, 0x10341, HB_Number_Letter},
  {0x10342, 0x10349, HB_Letter_Other},
  {0x1034a, 0x1034a, HB_Number_Letter},
  {0x1034b, 0x1037f, HB_Other_NotAssigned},
  {0x10380, 0x1039d, HB_Letter_Other},
  {0x1039e, 0x1039e, HB_Other_NotAssigned},
  {0x1039f, 0x1039f, HB_Punctuation_Other},
  {0x103a0, 0x103c3, HB_Letter_Other},
  {0x103c4, 0x103c7, HB_Other_NotAssigned},
  {0x103c8, 0x103cf, HB_Letter_Other},
  {0x103d0, 0x103d0, HB_Punctuation_Other},
  {0x103d1, 0x103d5, HB_Number_Letter},
  {0x103d6, 0x103ff, HB_Other_NotAssigned},
  {0x10400, 0x10427, HB_Letter_Uppercase},
  {0x10428, 0x1044f, HB_Letter_Lowercase},
  {0x10450, 0x1049d, HB_Letter_Other},
  {0x1049e, 0x1049f, HB_Other_NotAssigned},
  {0x104a0, 0x104a9, HB_Number_DecimalDigit},
  {0x104aa, 0x107ff, HB_Other_NotAssigned},
  {0x10800, 0x10805, HB_Letter_Other},
  {0x10806, 0x10807, HB_Other_NotAssigned},
  {0x10808, 0x10808, HB_Letter_Other},
  {0x10809, 0x10809, HB_Other_NotAssigned},
  {0x1080a, 0x10835, HB_Letter_Other},
  {0x10836, 0x10836, HB_Other_NotAssigned},
  {0x10837, 0x10838, HB_Letter_Other},
  {0x10839, 0x1083b, HB_Other_NotAssigned},
  {0x1083c, 0x1083c, HB_Letter_Other},
  {0x1083d, 0x1083e, HB_Other_NotAssigned},
  {0x1083f, 0x1083f, HB_Letter_Other},
  {0x10840, 0x108ff, HB_Other_NotAssigned},
  {0x10900, 0x10915, HB_Letter_Other},
  {0x10916, 0x10919, HB_Number_Other},
  {0x1091a, 0x1091e, HB_Other_NotAssigned},
  {0x1091f, 0x1091f, HB_Punctuation_Other},
  {0x10920, 0x10939, HB_Letter_Other},
  {0x1093a, 0x1093e, HB_Other_NotAssigned},
  {0x1093f, 0x1093f, HB_Punctuation_Other},
  {0x10940, 0x109ff, HB_Other_NotAssigned},
  {0x10a00, 0x10a00, HB_Letter_Other},
  {0x10a01, 0x10a03, HB_Mark_NonSpacing},
  {0x10a04, 0x10a04, HB_Other_NotAssigned},
  {0x10a05, 0x10a06, HB_Mark_NonSpacing},
  {0x10a07, 0x10a0b, HB_Other_NotAssigned},
  {0x10a0c, 0x10a0f, HB_Mark_NonSpacing},
  {0x10a10, 0x10a13, HB_Letter_Other},
  {0x10a14, 0x10a14, HB_Other_NotAssigned},
  {0x10a15, 0x10a17, HB_Letter_Other},
  {0x10a18, 0x10a18, HB_Other_NotAssigned},
  {0x10a19, 0x10a33, HB_Letter_Other},
  {0x10a34, 0x10a37, HB_Other_NotAssigned},
  {0x10a38, 0x10a3a, HB_Mark_NonSpacing},
  {0x10a3b, 0x10a3e, HB_Other_NotAssigned},
  {0x10a3f, 0x10a3f, HB_Mark_NonSpacing},
  {0x10a40, 0x10a47, HB_Number_Other},
  {0x10a48, 0x10a4f, HB_Other_NotAssigned},
  {0x10a50, 0x10a58, HB_Punctuation_Other},
  {0x10a59, 0x11fff, HB_Other_NotAssigned},
  {0x12000, 0x1236e, HB_Letter_Other},
  {0x1236f, 0x123ff, HB_Other_NotAssigned},
  {0x12400, 0x12462, HB_Number_Letter},
  {0x12463, 0x1246f, HB_Other_NotAssigned},
  {0x12470, 0x12473, HB_Punctuation_Other},
  {0x12474, 0x1cfff, HB_Other_NotAssigned},
  {0x1d000, 0x1d0f5, HB_Symbol_Other},
  {0x1d0f6, 0x1d0ff, HB_Other_NotAssigned},
  {0x1d100, 0x1d126, HB_Symbol_Other},
  {0x1d127, 0x1d128, HB_Other_NotAssigned},
  {0x1d129, 0x1d164, HB_Symbol_Other},
  {0x1d165, 0x1d166, HB_Mark_SpacingCombining},
  {0x1d167, 0x1d169, HB_Mark_NonSpacing},
  {0x1d16a, 0x1d16c, HB_Symbol_Other},
  {0x1d16d, 0x1d172, HB_Mark_SpacingCombining},
  {0x1d173, 0x1d17a, HB_Other_Format},
  {0x1d17b, 0x1d182, HB_Mark_NonSpacing},
  {0x1d183, 0x1d184, HB_Symbol_Other},
  {0x1d185, 0x1d18b, HB_Mark_NonSpacing},
  {0x1d18c, 0x1d1a9, HB_Symbol_Other},
  {0x1d1aa, 0x1d1ad, HB_Mark_NonSpacing},
  {0x1d1ae, 0x1d1dd, HB_Symbol_Other},
  {0x1d1de, 0x1d1ff, HB_Other_NotAssigned},
  {0x1d200, 0x1d241, HB_Symbol_Other},
  {0x1d242, 0x1d244, HB_Mark_NonSpacing},
  {0x1d245, 0x1d245, HB_Symbol_Other},
  {0x1d246, 0x1d2ff, HB_Other_NotAssigned},
  {0x1d300, 0x1d356, HB_Symbol_Other},
  {0x1d357, 0x1d35f, HB_Other_NotAssigned},
  {0x1d360, 0x1d371, HB_Number_Other},
  {0x1d372, 0x1d3ff, HB_Other_NotAssigned},
  {0x1d400, 0x1d419, HB_Letter_Uppercase},
  {0x1d41a, 0x1d433, HB_Letter_Lowercase},
  {0x1d434, 0x1d44d, HB_Letter_Uppercase},
  {0x1d44e, 0x1d454, HB_Letter_Lowercase},
  {0x1d455, 0x1d455, HB_Other_NotAssigned},
  {0x1d456, 0x1d467, HB_Letter_Lowercase},
  {0x1d468, 0x1d481, HB_Letter_Uppercase},
  {0x1d482, 0x1d49b, HB_Letter_Lowercase},
  {0x1d49c, 0x1d49c, HB_Letter_Uppercase},
  {0x1d49d, 0x1d49d, HB_Other_NotAssigned},
  {0x1d49e, 0x1d49f, HB_Letter_Uppercase},
  {0x1d4a0, 0x1d4a1, HB_Other_NotAssigned},
  {0x1d4a2, 0x1d4a2, HB_Letter_Uppercase},
  {0x1d4a3, 0x1d4a4, HB_Other_NotAssigned},
  {0x1d4a5, 0x1d4a6, HB_Letter_Uppercase},
  {0x1d4a7, 0x1d4a8, HB_Other_NotAssigned},
  {0x1d4a9, 0x1d4ac, HB_Letter_Uppercase},
  {0x1d4ad, 0x1d4ad, HB_Other_NotAssigned},
  {0x1d4ae, 0x1d4b5, HB_Letter_Uppercase},
  {0x1d4b6, 0x1d4b9, HB_Letter_Lowercase},
  {0x1d4ba, 0x1d4ba, HB_Other_NotAssigned},
  {0x1d4bb, 0x1d4bb, HB_Letter_Lowercase},
  {0x1d4bc, 0x1d4bc, HB_Other_NotAssigned},
  {0x1d4bd, 0x1d4c3, HB_Letter_Lowercase},
  {0x1d4c4, 0x1d4c4, HB_Other_NotAssigned},
  {0x1d4c5, 0x1d4cf, HB_Letter_Lowercase},
  {0x1d4d0, 0x1d4e9, HB_Letter_Uppercase},
  {0x1d4ea, 0x1d503, HB_Letter_Lowercase},
  {0x1d504, 0x1d505, HB_Letter_Uppercase},
  {0x1d506, 0x1d506, HB_Other_NotAssigned},
  {0x1d507, 0x1d50a, HB_Letter_Uppercase},
  {0x1d50b, 0x1d50c, HB_Other_NotAssigned},
  {0x1d50d, 0x1d514, HB_Letter_Uppercase},
  {0x1d515, 0x1d515, HB_Other_NotAssigned},
  {0x1d516, 0x1d51c, HB_Letter_Uppercase},
  {0x1d51d, 0x1d51d, HB_Other_NotAssigned},
  {0x1d51e, 0x1d537, HB_Letter_Lowercase},
  {0x1d538, 0x1d539, HB_Letter_Uppercase},
  {0x1d53a, 0x1d53a, HB_Other_NotAssigned},
  {0x1d53b, 0x1d53e, HB_Letter_Uppercase},
  {0x1d53f, 0x1d53f, HB_Other_NotAssigned},
  {0x1d540, 0x1d544, HB_Letter_Uppercase},
  {0x1d545, 0x1d545, HB_Other_NotAssigned},
  {0x1d546, 0x1d546, HB_Letter_Uppercase},
  {0x1d547, 0x1d549, HB_Other_NotAssigned},
  {0x1d54a, 0x1d550, HB_Letter_Uppercase},
  {0x1d551, 0x1d551, HB_Other_NotAssigned},
  {0x1d552, 0x1d56b, HB_Letter_Lowercase},
  {0x1d56c, 0x1d585, HB_Letter_Uppercase},
  {0x1d586, 0x1d59f, HB_Letter_Lowercase},
  {0x1d5a0, 0x1d5b9, HB_Letter_Uppercase},
  {0x1d5ba, 0x1d5d3, HB_Letter_Lowercase},
  {0x1d5d4, 0x1d5ed, HB_Letter_Uppercase},
  {0x1d5ee, 0x1d607, HB_Letter_Lowercase},
  {0x1d608, 0x1d621, HB_Letter_Uppercase},
  {0x1d622, 0x1d63b, HB_Letter_Lowercase},
  {0x1d63c, 0x1d655, HB_Letter_Uppercase},
  {0x1d656, 0x1d66f, HB_Letter_Lowercase},
  {0x1d670, 0x1d689, HB_Letter_Uppercase},
  {0x1d68a, 0x1d6a5, HB_Letter_Lowercase},
  {0x1d6a6, 0x1d6a7, HB_Other_NotAssigned},
  {0x1d6a8, 0x1d6c0, HB_Letter_Uppercase},
  {0x1d6c1, 0x1d6c1, HB_Symbol_Math},
  {0x1d6c2, 0x1d6da, HB_Letter_Lowercase},
  {0x1d6db, 0x1d6db, HB_Symbol_Math},
  {0x1d6dc, 0x1d6e1, HB_Letter_Lowercase},
  {0x1d6e2, 0x1d6fa, HB_Letter_Uppercase},
  {0x1d6fb, 0x1d6fb, HB_Symbol_Math},
  {0x1d6fc, 0x1d714, HB_Letter_Lowercase},
  {0x1d715, 0x1d715, HB_Symbol_Math},
  {0x1d716, 0x1d71b, HB_Letter_Lowercase},
  {0x1d71c, 0x1d734, HB_Letter_Uppercase},
  {0x1d735, 0x1d735, HB_Symbol_Math},
  {0x1d736, 0x1d74e, HB_Letter_Lowercase},
  {0x1d74f, 0x1d74f, HB_Symbol_Math},
  {0x1d750, 0x1d755, HB_Letter_Lowercase},
  {0x1d756, 0x1d76e, HB_Letter_Uppercase},
  {0x1d76f, 0x1d76f, HB_Symbol_Math},
  {0x1d770, 0x1d788, HB_Letter_Lowercase},
  {0x1d789, 0x1d789, HB_Symbol_Math},
  {0x1d78a, 0x1d78f, HB_Letter_Lowercase},
  {0x1d790, 0x1d7a8, HB_Letter_Uppercase},
  {0x1d7a9, 0x1d7a9, HB_Symbol_Math},
  {0x1d7aa, 0x1d7c2, HB_Letter_Lowercase},
  {0x1d7c3, 0x1d7c3, HB_Symbol_Math},
  {0x1d7c4, 0x1d7c9, HB_Letter_Lowercase},
  {0x1d7ca, 0x1d7ca, HB_Letter_Uppercase},
  {0x1d7cb, 0x1d7cb, HB_Letter_Lowercase},
  {0x1d7cc, 0x1d7cd, HB_Other_NotAssigned},
  {0x1d7ce, 0x1d7ff, HB_Number_DecimalDigit},
  {0x1d800, 0x1efff, HB_Other_NotAssigned},
  {0x1f000, 0x1f02b, HB_Symbol_Other},
  {0x1f02c, 0x1f02f, HB_Other_NotAssigned},
  {0x1f030, 0x1f093, HB_Symbol_Other},
  {0x1f094, 0x1ffff, HB_Other_NotAssigned},
  {0x20000, 0x2a6d6, HB_Letter_Other},
  {0x2a6d7, 0x2f7ff, HB_Other_NotAssigned},
  {0x2f800, 0x2fa1d, HB_Letter_Other},
  {0x2fa1e, 0xe0000, HB_Other_NotAssigned},
  {0xe0001, 0xe0001, HB_Other_Format},
  {0xe0002, 0xe001f, HB_Other_NotAssigned},
  {0xe0020, 0xe007f, HB_Other_Format},
  {0xe0080, 0xe00ff, HB_Other_NotAssigned},
  {0xe0100, 0xe01ef, HB_Mark_NonSpacing},
  {0xe01f0, 0xeffff, HB_Other_NotAssigned},
  {0xf0000, 0xffffd, HB_Other_PrivateUse},
  {0xffffe, 0xfffff, HB_Other_NotAssigned},
  {0x100000, 0x10fffd, HB_Other_PrivateUse},
  {0x10fffe, 0x10ffff, HB_Other_NotAssigned},
};

static const unsigned category_properties_count = 2849;

#endif  // CATEGORY_PROPERTIES_H_
