/* Generated by re2c */
#line 1 "encodings/unicode_group_Lm_u.re"
// re2c $INPUT -o $OUTPUT -u
#include <stdint.h>
#include <stdio.h>
#define YYCTYPE uint32_t

bool scan(const YYCTYPE* start, const YYCTYPE* const limit) {
	__attribute__((unused)) const YYCTYPE* YYMARKER;
#define YYCURSOR start
Lm:

#line 14 "encodings/unicode_group_Lm_u.c"
{
	YYCTYPE yych;
	yych = *YYCURSOR;
	if (yych <= 0x0000A4F7) {
		if (yych <= 0x000010FB) {
			if (yych <= 0x000006E4) {
				if (yych <= 0x000002ED) {
					if (yych <= 0x000002D1) {
						if (yych <= 0x000002AF) goto yy1;
						if (yych <= 0x000002C1) goto yy2;
						if (yych >= 0x000002C6) goto yy2;
					} else {
						if (yych <= 0x000002E4) {
							if (yych >= 0x000002E0) goto yy2;
						} else {
							if (yych == 0x000002EC) goto yy2;
						}
					}
				} else {
					if (yych <= 0x0000037A) {
						if (yych <= 0x00000373) {
							if (yych <= 0x000002EE) goto yy2;
						} else {
							if (yych <= 0x00000374) goto yy2;
							if (yych >= 0x0000037A) goto yy2;
						}
					} else {
						if (yych <= 0x00000559) {
							if (yych >= 0x00000559) goto yy2;
						} else {
							if (yych == 0x00000640) goto yy2;
						}
					}
				}
			} else {
				if (yych <= 0x00000827) {
					if (yych <= 0x000007FA) {
						if (yych <= 0x000007F3) {
							if (yych <= 0x000006E6) goto yy2;
						} else {
							if (yych <= 0x000007F5) goto yy2;
							if (yych >= 0x000007FA) goto yy2;
						}
					} else {
						if (yych <= 0x0000081A) {
							if (yych >= 0x0000081A) goto yy2;
						} else {
							if (yych == 0x00000824) goto yy2;
						}
					}
				} else {
					if (yych <= 0x00000971) {
						if (yych <= 0x000008C8) {
							if (yych <= 0x00000828) goto yy2;
						} else {
							if (yych <= 0x000008C9) goto yy2;
							if (yych >= 0x00000971) goto yy2;
						}
					} else {
						if (yych <= 0x00000E46) {
							if (yych >= 0x00000E46) goto yy2;
						} else {
							if (yych == 0x00000EC6) goto yy2;
						}
					}
				}
			}
		} else {
			if (yych <= 0x0000208F) {
				if (yych <= 0x00001D2B) {
					if (yych <= 0x00001843) {
						if (yych <= 0x000017D6) {
							if (yych <= 0x000010FC) goto yy2;
						} else {
							if (yych <= 0x000017D7) goto yy2;
							if (yych >= 0x00001843) goto yy2;
						}
					} else {
						if (yych <= 0x00001AA7) {
							if (yych >= 0x00001AA7) goto yy2;
						} else {
							if (yych <= 0x00001C77) goto yy1;
							if (yych <= 0x00001C7D) goto yy2;
						}
					}
				} else {
					if (yych <= 0x00001DBF) {
						if (yych <= 0x00001D77) {
							if (yych <= 0x00001D6A) goto yy2;
						} else {
							if (yych <= 0x00001D78) goto yy2;
							if (yych >= 0x00001D9B) goto yy2;
						}
					} else {
						if (yych <= 0x00002071) {
							if (yych >= 0x00002071) goto yy2;
						} else {
							if (yych == 0x0000207F) goto yy2;
						}
					}
				}
			} else {
				if (yych <= 0x00003030) {
					if (yych <= 0x00002D6F) {
						if (yych <= 0x00002C7B) {
							if (yych <= 0x0000209C) goto yy2;
						} else {
							if (yych <= 0x00002C7D) goto yy2;
							if (yych >= 0x00002D6F) goto yy2;
						}
					} else {
						if (yych <= 0x00002E2F) {
							if (yych >= 0x00002E2F) goto yy2;
						} else {
							if (yych == 0x00003005) goto yy2;
						}
					}
				} else {
					if (yych <= 0x0000309E) {
						if (yych <= 0x0000303A) {
							if (yych <= 0x00003035) goto yy2;
						} else {
							if (yych <= 0x0000303B) goto yy2;
							if (yych >= 0x0000309D) goto yy2;
						}
					} else {
						if (yych <= 0x000030FE) {
							if (yych >= 0x000030FC) goto yy2;
						} else {
							if (yych == 0x0000A015) goto yy2;
						}
					}
				}
			}
		}
	} else {
		if (yych <= 0x000107B1) {
			if (yych <= 0x0000A9E5) {
				if (yych <= 0x0000A76F) {
					if (yych <= 0x0000A67F) {
						if (yych <= 0x0000A60B) {
							if (yych <= 0x0000A4FD) goto yy2;
						} else {
							if (yych <= 0x0000A60C) goto yy2;
							if (yych >= 0x0000A67F) goto yy2;
						}
					} else {
						if (yych <= 0x0000A69D) {
							if (yych >= 0x0000A69C) goto yy2;
						} else {
							if (yych <= 0x0000A716) goto yy1;
							if (yych <= 0x0000A71F) goto yy2;
						}
					}
				} else {
					if (yych <= 0x0000A7F4) {
						if (yych <= 0x0000A787) {
							if (yych <= 0x0000A770) goto yy2;
						} else {
							if (yych <= 0x0000A788) goto yy2;
							if (yych >= 0x0000A7F1) goto yy2;
						}
					} else {
						if (yych <= 0x0000A7F9) {
							if (yych >= 0x0000A7F8) goto yy2;
						} else {
							if (yych == 0x0000A9CF) goto yy2;
						}
					}
				}
			} else {
				if (yych <= 0x0000AB68) {
					if (yych <= 0x0000AADD) {
						if (yych <= 0x0000AA6F) {
							if (yych <= 0x0000A9E6) goto yy2;
						} else {
							if (yych <= 0x0000AA70) goto yy2;
							if (yych >= 0x0000AADD) goto yy2;
						}
					} else {
						if (yych <= 0x0000AAF4) {
							if (yych >= 0x0000AAF3) goto yy2;
						} else {
							if (yych <= 0x0000AB5B) goto yy1;
							if (yych <= 0x0000AB5F) goto yy2;
						}
					}
				} else {
					if (yych <= 0x0000FF9F) {
						if (yych <= 0x0000FF6F) {
							if (yych <= 0x0000AB69) goto yy2;
						} else {
							if (yych <= 0x0000FF70) goto yy2;
							if (yych >= 0x0000FF9E) goto yy2;
						}
					} else {
						if (yych <= 0x00010785) {
							if (yych >= 0x00010780) goto yy2;
						} else {
							if (yych <= 0x00010786) goto yy1;
							if (yych <= 0x000107B0) goto yy2;
						}
					}
				}
			}
		} else {
			if (yych <= 0x00016FE2) {
				if (yych <= 0x00016B3F) {
					if (yych <= 0x00010D6F) {
						if (yych <= 0x00010D4D) {
							if (yych <= 0x000107BA) goto yy2;
						} else {
							if (yych <= 0x00010D4E) goto yy2;
							if (yych >= 0x00010D6F) goto yy2;
						}
					} else {
						if (yych <= 0x00010EC5) {
							if (yych >= 0x00010EC5) goto yy2;
						} else {
							if (yych == 0x00011DD9) goto yy2;
						}
					}
				} else {
					if (yych <= 0x00016D6C) {
						if (yych <= 0x00016D3F) {
							if (yych <= 0x00016B43) goto yy2;
						} else {
							if (yych <= 0x00016D42) goto yy2;
							if (yych >= 0x00016D6B) goto yy2;
						}
					} else {
						if (yych <= 0x00016F9F) {
							if (yych >= 0x00016F93) goto yy2;
						} else {
							if (yych <= 0x00016FDF) goto yy1;
							if (yych <= 0x00016FE1) goto yy2;
						}
					}
				}
			} else {
				if (yych <= 0x0001E02F) {
					if (yych <= 0x0001AFF3) {
						if (yych <= 0x00016FF1) {
							if (yych <= 0x00016FE3) goto yy2;
						} else {
							if (yych <= 0x00016FF3) goto yy2;
							if (yych >= 0x0001AFF0) goto yy2;
						}
					} else {
						if (yych <= 0x0001AFFB) {
							if (yych >= 0x0001AFF5) goto yy2;
						} else {
							if (yych <= 0x0001AFFC) goto yy1;
							if (yych <= 0x0001AFFE) goto yy2;
						}
					}
				} else {
					if (yych <= 0x0001E4EB) {
						if (yych <= 0x0001E136) {
							if (yych <= 0x0001E06D) goto yy2;
						} else {
							if (yych <= 0x0001E13D) goto yy2;
							if (yych >= 0x0001E4EB) goto yy2;
						}
					} else {
						if (yych <= 0x0001E6FF) {
							if (yych >= 0x0001E6FF) goto yy2;
						} else {
							if (yych == 0x0001E94B) goto yy2;
						}
					}
				}
			}
		}
	}
yy1:
	++YYCURSOR;
#line 14 "encodings/unicode_group_Lm_u.re"
	{ return YYCURSOR - 1 == limit; }
#line 294 "encodings/unicode_group_Lm_u.c"
yy2:
	++YYCURSOR;
#line 13 "encodings/unicode_group_Lm_u.re"
	{ goto Lm; }
#line 299 "encodings/unicode_group_Lm_u.c"
}
#line 15 "encodings/unicode_group_Lm_u.re"

}

static const uint32_t chars_Lm[] = {0x2b0,0x2c1,0x2c6,0x2d1,0x2e0,0x2e4,0x2ec,0x2ec,0x2ee,0x2ee,0x374,0x374,0x37a,0x37a,0x559,0x559,0x640,0x640,0x6e5,0x6e6,0x7f4,0x7f5,0x7fa,0x7fa,0x81a,0x81a,0x824,0x824,0x828,0x828,0x8c9,0x8c9,0x971,0x971,0xe46,0xe46,0xec6,0xec6,0x10fc,0x10fc,0x17d7,0x17d7,0x1843,0x1843,0x1aa7,0x1aa7,0x1c78,0x1c7d,0x1d2c,0x1d6a,0x1d78,0x1d78,0x1d9b,0x1dbf,0x2071,0x2071,0x207f,0x207f,0x2090,0x209c,0x2c7c,0x2c7d,0x2d6f,0x2d6f,0x2e2f,0x2e2f,0x3005,0x3005,0x3031,0x3035,0x303b,0x303b,0x309d,0x309e,0x30fc,0x30fe,0xa015,0xa015,0xa4f8,0xa4fd,0xa60c,0xa60c,0xa67f,0xa67f,0xa69c,0xa69d,0xa717,0xa71f,0xa770,0xa770,0xa788,0xa788,0xa7f1,0xa7f4,0xa7f8,0xa7f9,0xa9cf,0xa9cf,0xa9e6,0xa9e6,0xaa70,0xaa70,0xaadd,0xaadd,0xaaf3,0xaaf4,0xab5c,0xab5f,0xab69,0xab69,0xff70,0xff70,0xff9e,0xff9f,0x10780,0x10785,0x10787,0x107b0,0x107b2,0x107ba,0x10d4e,0x10d4e,0x10d6f,0x10d6f,0x10ec5,0x10ec5,0x11dd9,0x11dd9,0x16b40,0x16b43,0x16d40,0x16d42,0x16d6b,0x16d6c,0x16f93,0x16f9f,0x16fe0,0x16fe1,0x16fe3,0x16fe3,0x16ff2,0x16ff3,0x1aff0,0x1aff3,0x1aff5,0x1affb,0x1affd,0x1affe,0x1e030,0x1e06d,0x1e137,0x1e13d,0x1e4eb,0x1e4eb,0x1e6ff,0x1e6ff,0x1e94b,0x1e94b,};

static uint32_t encode_utf32(const uint32_t* ranges, uint32_t ranges_count, uint32_t* s) {
	uint32_t* const s0 = s;
	for (uint32_t i = 0; i < ranges_count; i += 2)
		for (uint32_t j = ranges[i]; j <= ranges[i + 1]; ++j) *s++ = j;
	for (uint32_t i = 0; i < 1; ++i) s[i] = 0;
	return s - s0;
}

int main() {
	YYCTYPE* buffer_Lm = new YYCTYPE[411];
	uint32_t buffer_Lm_len = encode_utf32(chars_Lm, sizeof(chars_Lm) / sizeof(uint32_t), buffer_Lm);
	if (!scan(buffer_Lm, buffer_Lm + buffer_Lm_len)) printf("test 'Lm' failed\n");
	delete[] buffer_Lm;
	return 0;
}
