/* SPDX-License-Identifier: MIT * HTML character-reference decoder, authored with OpenAI GPT-6 (Codex). * Entity mappings: WHATWG HTML named character reference data, obtained from * Python html.entities.html5. Front-coded sorted names in blocks of eight. * Build: zig cc -target wasm32-freestanding -Oz -msimd128 -nostdlib * -Wl,--no-entry -Wl,--export-memory -Wl,-z,stack-size=16384 * -Wl,--initial-memory=1310720 -Wl,--max-memory=1310720 * -Wl,--export=input_ptr -Wl,--export=input_utf8_cap * -Wl,--export=output_utf8_cap -Wl,--export=render * -Wl,--strip-all unescape.c -o unescape.wasm */ #include #include #define EXPORT __attribute__((visibility("default"))) /* Input starts 209744 bytes ahead of output. The maximum expansion is one * byte per five input bytes (≫⃒ and ≪⃒), at most 209715 bytes for 1 MiB, * so writes cannot overwrite unread input, including 16-byte SIMD copies. * Values are LEB128 codepoints, NUL-terminated (code point 0 is unused). */ static unsigned char buffer[1258320]; EXPORT uint32_t input_ptr(void) { return (uint32_t)(buffer+209744); } EXPORT uint32_t input_utf8_cap(void) { return 1048576; } EXPORT uint32_t output_utf8_cap(void) { return 1258298; } static const unsigned char names[]={ 0,65,69,108,105,103,0,1,77,80,0,1,97,99,117,116,101,0,1,98,114,101,118,101, 0,1,99,105,114,99,0,2,121,0,1,102,114,0,1,103,114,97,118,101,0,0,65,108, 112,104,97,0,1,109,97,99,114,0,1,110,100,0,1,111,103,111,110,0,2,112,102,0, 1,112,112,108,121,70,117,110,99,116,105,111,110,0,1,114,105,110,103,0,1,115,99,114, 0,0,65,115,115,105,103,110,0,1,116,105,108,100,101,0,1,117,109,108,0,0,66,97, 99,107,115,108,97,115,104,0,2,114,118,0,3,119,101,100,0,1,99,121,0,1,101,99, 97,117,115,101,0,0,66,101,114,110,111,117,108,108,105,115,0,2,116,97,0,1,102,114, 0,1,111,112,102,0,1,114,101,118,101,0,1,115,99,114,0,1,117,109,112,101,113,0, 0,67,72,99,121,0,0,67,79,80,89,0,1,97,99,117,116,101,0,2,112,0,3,105, 116,97,108,68,105,102,102,101,114,101,110,116,105,97,108,68,0,2,121,108,101,121,115,0, 1,99,97,114,111,110,0,2,101,100,105,108,0,2,105,114,99,0,0,67,99,111,110,105, 110,116,0,1,100,111,116,0,1,101,100,105,108,108,97,0,2,110,116,101,114,68,111,116, 0,1,102,114,0,1,104,105,0,1,105,114,99,108,101,68,111,116,0,6,77,105,110,117, 115,0,0,67,105,114,99,108,101,80,108,117,115,0,6,84,105,109,101,115,0,1,108,111, 99,107,119,105,115,101,67,111,110,116,111,117,114,73,110,116,101,103,114,97,108,0,3,115, 101,67,117,114,108,121,68,111,117,98,108,101,81,117,111,116,101,0,10,81,117,111,116,101, 0,1,111,108,111,110,0,5,101,0,2,110,103,114,117,101,110,116,0,0,67,111,110,105, 110,116,0,3,116,111,117,114,73,110,116,101,103,114,97,108,0,2,112,102,0,3,114,111, 100,117,99,116,0,2,117,110,116,101,114,67,108,111,99,107,119,105,115,101,67,111,110,116, 111,117,114,73,110,116,101,103,114,97,108,0,1,114,111,115,115,0,1,115,99,114,0,1, 117,112,0,0,67,117,112,67,97,112,0,0,68,68,0,2,111,116,114,97,104,100,0,1, 74,99,121,0,1,83,99,121,0,1,90,99,121,0,1,97,103,103,101,114,0,2,114,114, 0,0,68,97,115,104,118,0,1,99,97,114,111,110,0,2,121,0,1,101,108,0,3,116, 97,0,1,102,114,0,1,105,97,99,114,105,116,105,99,97,108,65,99,117,116,101,0,11, 68,111,116,0,0,68,105,97,99,114,105,116,105,99,97,108,68,111,117,98,108,101,65,99, 117,116,101,0,11,71,114,97,118,101,0,11,84,105,108,100,101,0,3,109,111,110,100,0, 2,102,102,101,114,101,110,116,105,97,108,68,0,1,111,112,102,0,2,116,0,3,68,111, 116,0,0,68,111,116,69,113,117,97,108,0,2,117,98,108,101,67,111,110,116,111,117,114, 73,110,116,101,103,114,97,108,0,6,68,111,116,0,8,119,110,65,114,114,111,119,0,6, 76,101,102,116,65,114,114,111,119,0,10,82,105,103,104,116,65,114,114,111,119,0,10,84, 101,101,0,7,111,110,103,76,101,102,116,65,114,114,111,119,0,0,68,111,117,98,108,101, 76,111,110,103,76,101,102,116,82,105,103,104,116,65,114,114,111,119,0,10,82,105,103,104, 116,65,114,114,111,119,0,6,82,105,103,104,116,65,114,114,111,119,0,11,84,101,101,0, 6,85,112,65,114,114,111,119,0,8,68,111,119,110,65,114,114,111,119,0,6,86,101,114, 116,105,99,97,108,66,97,114,0,2,119,110,65,114,114,111,119,0,0,68,111,119,110,65, 114,114,111,119,66,97,114,0,9,85,112,65,114,114,111,119,0,4,66,114,101,118,101,0, 4,76,101,102,116,82,105,103,104,116,86,101,99,116,111,114,0,8,84,101,101,86,101,99, 116,111,114,0,8,86,101,99,116,111,114,0,14,66,97,114,0,4,82,105,103,104,116,84, 101,101,86,101,99,116,111,114,0,0,68,111,119,110,82,105,103,104,116,86,101,99,116,111, 114,0,15,66,97,114,0,4,84,101,101,0,7,65,114,114,111,119,0,4,97,114,114,111, 119,0,1,115,99,114,0,2,116,114,111,107,0,0,69,78,71,0,0,69,84,72,0,1, 97,99,117,116,101,0,1,99,97,114,111,110,0,2,105,114,99,0,2,121,0,1,100,111, 116,0,1,102,114,0,1,103,114,97,118,101,0,0,69,108,101,109,101,110,116,0,1,109, 97,99,114,0,2,112,116,121,83,109,97,108,108,83,113,117,97,114,101,0,5,86,101,114, 121,83,109,97,108,108,83,113,117,97,114,101,0,1,111,103,111,110,0,2,112,102,0,1, 112,115,105,108,111,110,0,1,113,117,97,108,0,0,69,113,117,97,108,84,105,108,100,101, 0,3,105,108,105,98,114,105,117,109,0,1,115,99,114,0,2,105,109,0,1,116,97,0, 1,117,109,108,0,1,120,105,115,116,115,0,2,112,111,110,101,110,116,105,97,108,69,0, 0,70,99,121,0,1,102,114,0,1,105,108,108,101,100,83,109,97,108,108,83,113,117,97, 114,101,0,6,86,101,114,121,83,109,97,108,108,83,113,117,97,114,101,0,1,111,112,102, 0,2,114,65,108,108,0,2,117,114,105,101,114,116,114,102,0,1,115,99,114,0,0,71, 74,99,121,0,1,84,0,1,97,109,109,97,0,5,100,0,1,98,114,101,118,101,0,1, 99,101,100,105,108,0,2,105,114,99,0,2,121,0,0,71,100,111,116,0,1,102,114,0, 1,103,0,1,111,112,102,0,1,114,101,97,116,101,114,69,113,117,97,108,0,12,76,101, 115,115,0,7,70,117,108,108,69,113,117,97,108,0,7,71,114,101,97,116,101,114,0,0, 71,114,101,97,116,101,114,76,101,115,115,0,7,83,108,97,110,116,69,113,117,97,108,0, 7,84,105,108,100,101,0,1,115,99,114,0,1,116,0,0,72,65,82,68,99,121,0,1, 97,99,101,107,0,2,116,0,0,72,99,105,114,99,0,1,102,114,0,1,105,108,98,101, 114,116,83,112,97,99,101,0,1,111,112,102,0,2,114,105,122,111,110,116,97,108,76,105, 110,101,0,1,115,99,114,0,2,116,114,111,107,0,1,117,109,112,68,111,119,110,72,117, 109,112,0,0,72,117,109,112,69,113,117,97,108,0,0,73,69,99,121,0,1,74,108,105, 103,0,1,79,99,121,0,1,97,99,117,116,101,0,1,99,105,114,99,0,2,121,0,1, 100,111,116,0,0,73,102,114,0,1,103,114,97,118,101,0,1,109,0,2,97,99,114,0, 3,103,105,110,97,114,121,73,0,2,112,108,105,101,115,0,1,110,116,0,3,101,103,114, 97,108,0,0,73,110,116,101,114,115,101,99,116,105,111,110,0,2,118,105,115,105,98,108, 101,67,111,109,109,97,0,9,84,105,109,101,115,0,1,111,103,111,110,0,2,112,102,0, 2,116,97,0,1,115,99,114,0,1,116,105,108,100,101,0,0,73,117,107,99,121,0,2, 109,108,0,0,74,99,105,114,99,0,2,121,0,1,102,114,0,1,111,112,102,0,1,115, 99,114,0,2,101,114,99,121,0,0,74,117,107,99,121,0,0,75,72,99,121,0,1,74, 99,121,0,1,97,112,112,97,0,1,99,101,100,105,108,0,2,121,0,1,102,114,0,1, 111,112,102,0,0,75,115,99,114,0,0,76,74,99,121,0,1,84,0,1,97,99,117,116, 101,0,2,109,98,100,97,0,2,110,103,0,2,112,108,97,99,101,116,114,102,0,2,114, 114,0,0,76,99,97,114,111,110,0,2,101,100,105,108,0,2,121,0,1,101,102,116,65, 110,103,108,101,66,114,97,99,107,101,116,0,5,114,114,111,119,0,9,66,97,114,0,9, 82,105,103,104,116,65,114,114,111,119,0,4,67,101,105,108,105,110,103,0,0,76,101,102, 116,68,111,117,98,108,101,66,114,97,99,107,101,116,0,6,119,110,84,101,101,86,101,99, 116,111,114,0,8,86,101,99,116,111,114,0,14,66,97,114,0,4,70,108,111,111,114,0, 4,82,105,103,104,116,65,114,114,111,119,0,9,86,101,99,116,111,114,0,4,84,101,101, 0,0,76,101,102,116,84,101,101,65,114,114,111,119,0,7,86,101,99,116,111,114,0,5, 114,105,97,110,103,108,101,0,12,66,97,114,0,12,69,113,117,97,108,0,4,85,112,68, 111,119,110,86,101,99,116,111,114,0,6,84,101,101,86,101,99,116,111,114,0,6,86,101, 99,116,111,114,0,0,76,101,102,116,85,112,86,101,99,116,111,114,66,97,114,0,4,86, 101,99,116,111,114,0,10,66,97,114,0,4,97,114,114,111,119,0,4,114,105,103,104,116, 97,114,114,111,119,0,2,115,115,69,113,117,97,108,71,114,101,97,116,101,114,0,4,70, 117,108,108,69,113,117,97,108,0,4,71,114,101,97,116,101,114,0,0,76,101,115,115,76, 101,115,115,0,4,83,108,97,110,116,69,113,117,97,108,0,4,84,105,108,100,101,0,1, 102,114,0,1,108,0,2,101,102,116,97,114,114,111,119,0,1,109,105,100,111,116,0,1, 111,110,103,76,101,102,116,65,114,114,111,119,0,0,76,111,110,103,76,101,102,116,82,105, 103,104,116,65,114,114,111,119,0,4,82,105,103,104,116,65,114,114,111,119,0,4,108,101, 102,116,97,114,114,111,119,0,8,114,105,103,104,116,97,114,114,111,119,0,4,114,105,103, 104,116,97,114,114,111,119,0,2,112,102,0,2,119,101,114,76,101,102,116,65,114,114,111, 119,0,5,82,105,103,104,116,65,114,114,111,119,0,0,76,115,99,114,0,2,104,0,2, 116,114,111,107,0,1,116,0,0,77,97,112,0,1,99,121,0,1,101,100,105,117,109,83, 112,97,99,101,0,2,108,108,105,110,116,114,102,0,0,77,102,114,0,1,105,110,117,115, 80,108,117,115,0,1,111,112,102,0,1,115,99,114,0,1,117,0,0,78,74,99,121,0, 1,97,99,117,116,101,0,1,99,97,114,111,110,0,0,78,99,101,100,105,108,0,2,121, 0,1,101,103,97,116,105,118,101,77,101,100,105,117,109,83,112,97,99,101,0,8,84,104, 105,99,107,83,112,97,99,101,0,11,110,83,112,97,99,101,0,8,86,101,114,121,84,104, 105,110,83,112,97,99,101,0,2,115,116,101,100,71,114,101,97,116,101,114,71,114,101,97, 116,101,114,0,6,76,101,115,115,76,101,115,115,0,0,78,101,119,76,105,110,101,0,1, 102,114,0,1,111,66,114,101,97,107,0,2,110,66,114,101,97,107,105,110,103,83,112,97, 99,101,0,2,112,102,0,2,116,0,3,67,111,110,103,114,117,101,110,116,0,4,117,112, 67,97,112,0,0,78,111,116,68,111,117,98,108,101,86,101,114,116,105,99,97,108,66,97, 114,0,3,69,108,101,109,101,110,116,0,4,113,117,97,108,0,8,84,105,108,100,101,0, 4,120,105,115,116,115,0,3,71,114,101,97,116,101,114,0,10,69,113,117,97,108,0,10, 70,117,108,108,69,113,117,97,108,0,0,78,111,116,71,114,101,97,116,101,114,71,114,101, 97,116,101,114,0,10,76,101,115,115,0,10,83,108,97,110,116,69,113,117,97,108,0,10, 84,105,108,100,101,0,3,72,117,109,112,68,111,119,110,72,117,109,112,0,7,69,113,117, 97,108,0,3,76,101,102,116,84,114,105,97,110,103,108,101,0,15,66,97,114,0,0,78, 111,116,76,101,102,116,84,114,105,97,110,103,108,101,69,113,117,97,108,0,5,115,115,0, 7,69,113,117,97,108,0,7,71,114,101,97,116,101,114,0,7,76,101,115,115,0,7,83, 108,97,110,116,69,113,117,97,108,0,7,84,105,108,100,101,0,3,78,101,115,116,101,100, 71,114,101,97,116,101,114,71,114,101,97,116,101,114,0,0,78,111,116,78,101,115,116,101, 100,76,101,115,115,76,101,115,115,0,3,80,114,101,99,101,100,101,115,0,11,69,113,117, 97,108,0,11,83,108,97,110,116,69,113,117,97,108,0,3,82,101,118,101,114,115,101,69, 108,101,109,101,110,116,0,4,105,103,104,116,84,114,105,97,110,103,108,101,0,16,66,97, 114,0,16,69,113,117,97,108,0,0,78,111,116,83,113,117,97,114,101,83,117,98,115,101, 116,0,15,69,113,117,97,108,0,11,112,101,114,115,101,116,0,17,69,113,117,97,108,0, 4,117,98,115,101,116,0,9,69,113,117,97,108,0,5,99,99,101,101,100,115,0,11,69, 113,117,97,108,0,0,78,111,116,83,117,99,99,101,101,100,115,83,108,97,110,116,69,113, 117,97,108,0,11,84,105,108,100,101,0,5,112,101,114,115,101,116,0,11,69,113,117,97, 108,0,3,84,105,108,100,101,0,8,69,113,117,97,108,0,8,70,117,108,108,69,113,117, 97,108,0,8,84,105,108,100,101,0,0,78,111,116,86,101,114,116,105,99,97,108,66,97, 114,0,1,115,99,114,0,1,116,105,108,100,101,0,1,117,0,0,79,69,108,105,103,0, 1,97,99,117,116,101,0,1,99,105,114,99,0,2,121,0,0,79,100,98,108,97,99,0, 1,102,114,0,1,103,114,97,118,101,0,1,109,97,99,114,0,2,101,103,97,0,2,105, 99,114,111,110,0,1,111,112,102,0,1,112,101,110,67,117,114,108,121,68,111,117,98,108, 101,81,117,111,116,101,0,0,79,112,101,110,67,117,114,108,121,81,117,111,116,101,0,1, 114,0,1,115,99,114,0,2,108,97,115,104,0,1,116,105,108,100,101,0,3,109,101,115, 0,1,117,109,108,0,1,118,101,114,66,97,114,0,0,79,118,101,114,66,114,97,99,101, 0,8,107,101,116,0,4,80,97,114,101,110,116,104,101,115,105,115,0,0,80,97,114,116, 105,97,108,68,0,1,99,121,0,1,102,114,0,1,104,105,0,1,105,0,0,80,108,117, 115,77,105,110,117,115,0,1,111,105,110,99,97,114,101,112,108,97,110,101,0,2,112,102, 0,1,114,0,2,101,99,101,100,101,115,0,8,69,113,117,97,108,0,8,83,108,97,110, 116,69,113,117,97,108,0,8,84,105,108,100,101,0,0,80,114,105,109,101,0,2,111,100, 117,99,116,0,3,112,111,114,116,105,111,110,0,10,97,108,0,1,115,99,114,0,2,105, 0,0,81,85,79,84,0,1,102,114,0,0,81,111,112,102,0,1,115,99,114,0,0,82, 66,97,114,114,0,1,69,71,0,1,97,99,117,116,101,0,2,110,103,0,2,114,114,0, 4,116,108,0,0,82,99,97,114,111,110,0,2,101,100,105,108,0,2,121,0,1,101,0, 2,118,101,114,115,101,69,108,101,109,101,110,116,0,8,113,117,105,108,105,98,114,105,117, 109,0,7,85,112,69,113,117,105,108,105,98,114,105,117,109,0,1,102,114,0,0,82,104, 111,0,1,105,103,104,116,65,110,103,108,101,66,114,97,99,107,101,116,0,6,114,114,111, 119,0,10,66,97,114,0,10,76,101,102,116,65,114,114,111,119,0,5,67,101,105,108,105, 110,103,0,5,68,111,117,98,108,101,66,114,97,99,107,101,116,0,7,119,110,84,101,101, 86,101,99,116,111,114,0,0,82,105,103,104,116,68,111,119,110,86,101,99,116,111,114,0, 15,66,97,114,0,5,70,108,111,111,114,0,5,84,101,101,0,8,65,114,114,111,119,0, 8,86,101,99,116,111,114,0,6,114,105,97,110,103,108,101,0,13,66,97,114,0,0,82, 105,103,104,116,84,114,105,97,110,103,108,101,69,113,117,97,108,0,5,85,112,68,111,119, 110,86,101,99,116,111,114,0,7,84,101,101,86,101,99,116,111,114,0,7,86,101,99,116, 111,114,0,13,66,97,114,0,5,86,101,99,116,111,114,0,11,66,97,114,0,5,97,114, 114,111,119,0,0,82,111,112,102,0,2,117,110,100,73,109,112,108,105,101,115,0,1,114, 105,103,104,116,97,114,114,111,119,0,1,115,99,114,0,2,104,0,1,117,108,101,68,101, 108,97,121,101,100,0,0,83,72,67,72,99,121,0,2,99,121,0,0,83,79,70,84,99, 121,0,1,97,99,117,116,101,0,1,99,0,2,97,114,111,110,0,2,101,100,105,108,0, 2,105,114,99,0,2,121,0,1,102,114,0,0,83,104,111,114,116,68,111,119,110,65,114, 114,111,119,0,5,76,101,102,116,65,114,114,111,119,0,5,82,105,103,104,116,65,114,114, 111,119,0,5,85,112,65,114,114,111,119,0,1,105,103,109,97,0,1,109,97,108,108,67, 105,114,99,108,101,0,1,111,112,102,0,1,113,114,116,0,0,83,113,117,97,114,101,0, 6,73,110,116,101,114,115,101,99,116,105,111,110,0,6,83,117,98,115,101,116,0,12,69, 113,117,97,108,0,8,112,101,114,115,101,116,0,14,69,113,117,97,108,0,6,85,110,105, 111,110,0,1,115,99,114,0,0,83,116,97,114,0,1,117,98,0,3,115,101,116,0,6, 69,113,117,97,108,0,2,99,99,101,101,100,115,0,8,69,113,117,97,108,0,8,83,108, 97,110,116,69,113,117,97,108,0,8,84,105,108,100,101,0,0,83,117,99,104,84,104,97, 116,0,2,109,0,2,112,0,3,101,114,115,101,116,0,8,69,113,117,97,108,0,3,115, 101,116,0,0,84,72,79,82,78,0,1,82,65,68,69,0,0,84,83,72,99,121,0,2, 99,121,0,1,97,98,0,2,117,0,1,99,97,114,111,110,0,2,101,100,105,108,0,2, 121,0,1,102,114,0,0,84,104,101,114,101,102,111,114,101,0,3,116,97,0,2,105,99, 107,83,112,97,99,101,0,3,110,83,112,97,99,101,0,1,105,108,100,101,0,5,69,113, 117,97,108,0,5,70,117,108,108,69,113,117,97,108,0,5,84,105,108,100,101,0,0,84, 111,112,102,0,1,114,105,112,108,101,68,111,116,0,1,115,99,114,0,2,116,114,111,107, 0,0,85,97,99,117,116,101,0,2,114,114,0,4,111,99,105,114,0,1,98,114,99,121, 0,0,85,98,114,101,118,101,0,1,99,105,114,99,0,2,121,0,1,100,98,108,97,99, 0,1,102,114,0,1,103,114,97,118,101,0,1,109,97,99,114,0,1,110,100,101,114,66, 97,114,0,0,85,110,100,101,114,66,114,97,99,101,0,9,107,101,116,0,5,80,97,114, 101,110,116,104,101,115,105,115,0,2,105,111,110,0,5,80,108,117,115,0,1,111,103,111, 110,0,2,112,102,0,1,112,65,114,114,111,119,0,0,85,112,65,114,114,111,119,66,97, 114,0,7,68,111,119,110,65,114,114,111,119,0,2,68,111,119,110,65,114,114,111,119,0, 2,69,113,117,105,108,105,98,114,105,117,109,0,2,84,101,101,0,5,65,114,114,111,119, 0,2,97,114,114,111,119,0,2,100,111,119,110,97,114,114,111,119,0,0,85,112,112,101, 114,76,101,102,116,65,114,114,111,119,0,5,82,105,103,104,116,65,114,114,111,119,0,2, 115,105,0,4,108,111,110,0,1,114,105,110,103,0,1,115,99,114,0,1,116,105,108,100, 101,0,1,117,109,108,0,0,86,68,97,115,104,0,1,98,97,114,0,1,99,121,0,1, 100,97,115,104,0,5,108,0,1,101,101,0,2,114,98,97,114,0,3,116,0,0,86,101, 114,116,105,99,97,108,66,97,114,0,8,76,105,110,101,0,8,83,101,112,97,114,97,116, 111,114,0,8,84,105,108,100,101,0,3,121,84,104,105,110,83,112,97,99,101,0,1,102, 114,0,1,111,112,102,0,1,115,99,114,0,0,86,118,100,97,115,104,0,0,87,99,105, 114,99,0,1,101,100,103,101,0,1,102,114,0,1,111,112,102,0,1,115,99,114,0,0, 88,102,114,0,1,105,0,0,88,111,112,102,0,1,115,99,114,0,0,89,65,99,121,0, 1,73,99,121,0,1,85,99,121,0,1,97,99,117,116,101,0,1,99,105,114,99,0,2, 121,0,0,89,102,114,0,1,111,112,102,0,1,115,99,114,0,1,117,109,108,0,0,90, 72,99,121,0,1,97,99,117,116,101,0,1,99,97,114,111,110,0,2,121,0,0,90,100, 111,116,0,1,101,114,111,87,105,100,116,104,83,112,97,99,101,0,2,116,97,0,1,102, 114,0,1,111,112,102,0,1,115,99,114,0,0,97,97,99,117,116,101,0,1,98,114,101, 118,101,0,0,97,99,0,2,69,0,2,100,0,2,105,114,99,0,2,117,116,101,0,2, 121,0,1,101,108,105,103,0,1,102,0,0,97,102,114,0,1,103,114,97,118,101,0,1, 108,101,102,115,121,109,0,3,112,104,0,2,112,104,97,0,1,109,97,99,114,0,3,108, 103,0,2,112,0,0,97,110,100,0,3,97,110,100,0,3,100,0,3,115,108,111,112,101, 0,3,118,0,2,103,0,3,101,0,3,108,101,0,0,97,110,103,109,115,100,0,6,97, 97,0,7,98,0,7,99,0,7,100,0,7,101,0,7,102,0,7,103,0,0,97,110,103, 109,115,100,97,104,0,3,114,116,0,5,118,98,0,7,100,0,3,115,112,104,0,4,116, 0,3,122,97,114,114,0,1,111,103,111,110,0,0,97,111,112,102,0,1,112,0,2,69, 0,2,97,99,105,114,0,2,101,0,2,105,100,0,2,111,115,0,2,112,114,111,120,0, 0,97,112,112,114,111,120,101,113,0,1,114,105,110,103,0,1,115,99,114,0,2,116,0, 2,121,109,112,0,5,101,113,0,1,116,105,108,100,101,0,1,117,109,108,0,0,97,119, 99,111,110,105,110,116,0,2,105,110,116,0,0,98,78,111,116,0,1,97,99,107,99,111, 110,103,0,4,101,112,115,105,108,111,110,0,4,112,114,105,109,101,0,4,115,105,109,0, 7,101,113,0,0,98,97,114,118,101,101,0,3,119,101,100,0,6,103,101,0,1,98,114, 107,0,4,116,98,114,107,0,1,99,111,110,103,0,2,121,0,1,100,113,117,111,0,0, 98,101,99,97,117,115,0,6,101,0,2,109,112,116,121,118,0,2,112,115,105,0,2,114, 110,111,117,0,2,116,97,0,3,104,0,3,119,101,101,110,0,0,98,102,114,0,1,105, 103,99,97,112,0,4,105,114,99,0,4,117,112,0,3,111,100,111,116,0,4,112,108,117, 115,0,4,116,105,109,101,115,0,3,115,113,99,117,112,0,0,98,105,103,115,116,97,114, 0,3,116,114,105,97,110,103,108,101,100,111,119,110,0,11,117,112,0,3,117,112,108,117, 115,0,3,118,101,101,0,3,119,101,100,103,101,0,1,107,97,114,111,119,0,1,108,97, 99,107,108,111,122,101,110,103,101,0,0,98,108,97,99,107,115,113,117,97,114,101,0,5, 116,114,105,97,110,103,108,101,0,13,100,111,119,110,0,13,108,101,102,116,0,13,114,105, 103,104,116,0,3,110,107,0,2,107,49,50,0,4,52,0,0,98,108,107,51,52,0,2, 111,99,107,0,1,110,101,0,3,113,117,105,118,0,2,111,116,0,1,111,112,102,0,2, 116,0,3,116,111,109,0,0,98,111,119,116,105,101,0,2,120,68,76,0,4,82,0,4, 108,0,4,114,0,3,72,0,4,68,0,4,85,0,0,98,111,120,72,100,0,4,117,0, 3,85,76,0,4,82,0,4,108,0,4,114,0,3,86,0,4,72,0,0,98,111,120,86, 76,0,4,82,0,4,104,0,4,108,0,4,114,0,3,98,111,120,0,3,100,76,0,4, 82,0,0,98,111,120,100,108,0,4,114,0,3,104,0,4,68,0,4,85,0,4,100,0, 4,117,0,3,109,105,110,117,115,0,0,98,111,120,112,108,117,115,0,3,116,105,109,101, 115,0,3,117,76,0,4,82,0,4,108,0,4,114,0,3,118,0,4,72,0,0,98,111, 120,118,76,0,4,82,0,4,104,0,4,108,0,4,114,0,1,112,114,105,109,101,0,1, 114,101,118,101,0,2,118,98,97,114,0,0,98,115,99,114,0,2,101,109,105,0,2,105, 109,0,4,101,0,2,111,108,0,4,98,0,4,104,115,117,98,0,1,117,108,108,0,0, 98,117,108,108,101,116,0,2,109,112,0,4,69,0,4,101,0,5,113,0,0,99,97,99, 117,116,101,0,2,112,0,3,97,110,100,0,0,99,97,112,98,114,99,117,112,0,3,99, 97,112,0,4,117,112,0,3,100,111,116,0,3,115,0,2,114,101,116,0,3,111,110,0, 1,99,97,112,115,0,0,99,99,97,114,111,110,0,2,101,100,105,108,0,2,105,114,99, 0,2,117,112,115,0,5,115,109,0,1,100,111,116,0,1,101,100,105,108,0,2,109,112, 116,121,118,0,0,99,101,110,116,0,4,101,114,100,111,116,0,1,102,114,0,1,104,99, 121,0,2,101,99,107,0,5,109,97,114,107,0,2,105,0,1,105,114,0,0,99,105,114, 69,0,3,99,0,4,101,113,0,4,108,101,97,114,114,111,119,108,101,102,116,0,11,114, 105,103,104,116,0,6,100,82,0,7,83,0,7,97,115,116,0,0,99,105,114,99,108,101, 100,99,105,114,99,0,7,100,97,115,104,0,3,101,0,3,102,110,105,110,116,0,3,109, 105,100,0,3,115,99,105,114,0,1,108,117,98,115,0,5,117,105,116,0,0,99,111,108, 111,110,0,5,101,0,6,113,0,2,109,109,97,0,5,116,0,3,112,0,4,102,110,0, 4,108,101,109,101,110,116,0,0,99,111,109,112,108,101,120,101,115,0,2,110,103,0,4, 100,111,116,0,3,105,110,116,0,2,112,102,0,3,114,111,100,0,3,121,0,4,115,114, 0,0,99,114,97,114,114,0,2,111,115,115,0,1,115,99,114,0,2,117,98,0,4,101, 0,3,112,0,4,101,0,1,116,100,111,116,0,0,99,117,100,97,114,114,108,0,6,114, 0,2,101,112,114,0,3,115,99,0,2,108,97,114,114,0,6,112,0,2,112,0,3,98, 114,99,97,112,0,0,99,117,112,99,97,112,0,4,117,112,0,3,100,111,116,0,3,111, 114,0,3,115,0,2,114,97,114,114,0,6,109,0,3,108,121,101,113,112,114,101,99,0, 0,99,117,114,108,121,101,113,115,117,99,99,0,5,118,101,101,0,5,119,101,100,103,101, 0,3,114,101,110,0,3,118,101,97,114,114,111,119,108,101,102,116,0,10,114,105,103,104, 116,0,2,118,101,101,0,2,119,101,100,0,0,99,119,99,111,110,105,110,116,0,2,105, 110,116,0,1,121,108,99,116,121,0,0,100,65,114,114,0,1,72,97,114,0,1,97,103, 103,101,114,0,2,108,101,116,104,0,2,114,114,0,0,100,97,115,104,0,4,118,0,1, 98,107,97,114,111,119,0,2,108,97,99,0,1,99,97,114,111,110,0,2,121,0,1,100, 0,2,97,103,103,101,114,0,0,100,100,97,114,114,0,2,111,116,115,101,113,0,1,101, 103,0,2,108,116,97,0,2,109,112,116,121,118,0,1,102,105,115,104,116,0,2,114,0, 1,104,97,114,108,0,0,100,104,97,114,114,0,1,105,97,109,0,4,111,110,100,0,7, 115,117,105,116,0,4,115,0,2,101,0,2,103,97,109,109,97,0,2,115,105,110,0,0, 100,105,118,0,3,105,100,101,0,6,111,110,116,105,109,101,115,0,3,111,110,120,0,1, 106,99,121,0,1,108,99,111,114,110,0,3,114,111,112,0,1,111,108,108,97,114,0,0, 100,111,112,102,0,2,116,0,3,101,113,0,5,100,111,116,0,3,109,105,110,117,115,0, 3,112,108,117,115,0,3,115,113,117,97,114,101,0,2,117,98,108,101,98,97,114,119,101, 100,103,101,0,0,100,111,119,110,97,114,114,111,119,0,4,100,111,119,110,97,114,114,111, 119,115,0,4,104,97,114,112,111,111,110,108,101,102,116,0,11,114,105,103,104,116,0,1, 114,98,107,97,114,111,119,0,2,99,111,114,110,0,3,114,111,112,0,1,115,99,114,0, 0,100,115,99,121,0,2,111,108,0,2,116,114,111,107,0,1,116,100,111,116,0,2,114, 105,0,4,102,0,1,117,97,114,114,0,2,104,97,114,0,0,100,119,97,110,103,108,101, 0,1,122,99,121,0,2,105,103,114,97,114,114,0,0,101,68,68,111,116,0,2,111,116, 0,1,97,99,117,116,101,0,2,115,116,101,114,0,1,99,97,114,111,110,0,0,101,99, 105,114,0,4,99,0,2,111,108,111,110,0,2,121,0,1,100,111,116,0,1,101,0,1, 102,68,111,116,0,2,114,0,0,101,103,0,2,114,97,118,101,0,2,115,0,3,100,111, 116,0,1,108,0,2,105,110,116,101,114,115,0,2,108,0,2,115,0,0,101,108,115,100, 111,116,0,1,109,97,99,114,0,2,112,116,121,0,5,115,101,116,0,5,118,0,2,115, 112,0,4,49,51,0,5,52,0,0,101,110,103,0,2,115,112,0,1,111,103,111,110,0, 2,112,102,0,1,112,97,114,0,4,115,108,0,2,108,117,115,0,2,115,105,0,0,101, 112,115,105,108,111,110,0,4,118,0,1,113,99,105,114,99,0,3,111,108,111,110,0,2, 115,105,109,0,3,108,97,110,116,103,116,114,0,7,108,101,115,115,0,2,117,97,108,115, 0,0,101,113,117,101,115,116,0,3,105,118,0,5,68,68,0,2,118,112,97,114,115,108, 0,1,114,68,111,116,0,2,97,114,114,0,1,115,99,114,0,2,100,111,116,0,0,101, 115,105,109,0,1,116,97,0,2,104,0,1,117,109,108,0,2,114,111,0,1,120,99,108, 0,2,105,115,116,0,2,112,101,99,116,97,116,105,111,110,0,0,101,120,112,111,110,101, 110,116,105,97,108,101,0,0,102,97,108,108,105,110,103,100,111,116,115,101,113,0,1,99, 121,0,1,101,109,97,108,101,0,1,102,105,108,105,103,0,2,108,105,103,0,3,108,105, 103,0,2,114,0,0,102,105,108,105,103,0,1,106,108,105,103,0,1,108,97,116,0,2, 108,105,103,0,2,116,110,115,0,1,110,111,102,0,1,111,112,102,0,2,114,97,108,108, 0,0,102,111,114,107,0,4,118,0,1,112,97,114,116,105,110,116,0,1,114,97,99,49, 50,0,5,51,0,5,52,0,5,53,0,5,54,0,0,102,114,97,99,49,56,0,4,50, 51,0,5,53,0,4,51,52,0,5,53,0,5,56,0,4,52,53,0,4,53,54,0,0, 102,114,97,99,53,56,0,4,55,56,0,3,115,108,0,2,111,119,110,0,1,115,99,114, 0,0,103,69,0,2,108,0,1,97,99,117,116,101,0,0,103,97,109,109,97,0,5,100, 0,2,112,0,1,98,114,101,118,101,0,1,99,105,114,99,0,2,121,0,1,100,111,116, 0,1,101,0,0,103,101,108,0,2,113,0,3,113,0,3,115,108,97,110,116,0,2,115, 0,3,99,99,0,3,100,111,116,0,6,111,0,0,103,101,115,100,111,116,111,108,0,3, 108,0,4,101,115,0,1,102,114,0,1,103,0,2,103,0,1,105,109,101,108,0,1,106, 99,121,0,0,103,108,0,2,69,0,2,97,0,2,106,0,1,110,69,0,2,97,112,0, 4,112,114,111,120,0,2,101,0,0,103,110,101,113,0,4,113,0,2,115,105,109,0,1, 111,112,102,0,1,114,97,118,101,0,1,115,99,114,0,2,105,109,0,4,101,0,0,103, 115,105,109,108,0,1,116,0,2,99,99,0,3,105,114,0,2,100,111,116,0,2,108,80, 97,114,0,2,113,117,101,115,116,0,2,114,97,112,112,114,111,120,0,0,103,116,114,97, 114,114,0,3,100,111,116,0,3,101,113,108,101,115,115,0,5,113,108,101,115,115,0,3, 108,101,115,115,0,3,115,105,109,0,1,118,101,114,116,110,101,113,113,0,2,110,69,0, 0,104,65,114,114,0,1,97,105,114,115,112,0,2,108,102,0,2,109,105,108,116,0,2, 114,100,99,121,0,3,114,0,4,99,105,114,0,4,119,0,0,104,98,97,114,0,1,99, 105,114,99,0,1,101,97,114,116,115,0,6,117,105,116,0,2,108,108,105,112,0,2,114, 99,111,110,0,1,102,114,0,1,107,115,101,97,114,111,119,0,0,104,107,115,119,97,114, 111,119,0,1,111,97,114,114,0,2,109,116,104,116,0,2,111,107,108,101,102,116,97,114, 114,111,119,0,4,114,105,103,104,116,97,114,114,111,119,0,2,112,102,0,2,114,98,97, 114,0,1,115,99,114,0,0,104,115,108,97,115,104,0,2,116,114,111,107,0,1,121,98, 117,108,108,0,2,112,104,101,110,0,0,105,97,99,117,116,101,0,1,99,0,2,105,114, 99,0,2,121,0,0,105,101,99,121,0,2,120,99,108,0,1,102,102,0,2,114,0,1, 103,114,97,118,101,0,1,105,0,2,105,105,110,116,0,3,110,116,0,0,105,105,110,102, 105,110,0,2,111,116,97,0,1,106,108,105,103,0,1,109,97,99,114,0,3,103,101,0, 4,108,105,110,101,0,4,112,97,114,116,0,3,116,104,0,0,105,109,111,102,0,2,112, 101,100,0,1,110,0,2,99,97,114,101,0,2,102,105,110,0,5,116,105,101,0,2,111, 100,111,116,0,2,116,0,0,105,110,116,99,97,108,0,3,101,103,101,114,115,0,4,114, 99,97,108,0,3,108,97,114,104,107,0,3,112,114,111,100,0,1,111,99,121,0,2,103, 111,110,0,2,112,102,0,0,105,111,116,97,0,1,112,114,111,100,0,1,113,117,101,115, 116,0,1,115,99,114,0,2,105,110,0,4,69,0,4,100,111,116,0,4,115,0,0,105, 115,105,110,115,118,0,4,118,0,1,116,0,2,105,108,100,101,0,1,117,107,99,121,0, 2,109,108,0,0,106,99,105,114,99,0,2,121,0,0,106,102,114,0,1,109,97,116,104, 0,1,111,112,102,0,1,115,99,114,0,2,101,114,99,121,0,1,117,107,99,121,0,0, 107,97,112,112,97,0,5,118,0,0,107,99,101,100,105,108,0,2,121,0,1,102,114,0, 1,103,114,101,101,110,0,1,104,99,121,0,1,106,99,121,0,1,111,112,102,0,1,115, 99,114,0,0,108,65,97,114,114,0,2,114,114,0,2,116,97,105,108,0,1,66,97,114, 114,0,1,69,0,2,103,0,1,72,97,114,0,1,97,99,117,116,101,0,0,108,97,101, 109,112,116,121,118,0,2,103,114,97,110,0,2,109,98,100,97,0,2,110,103,0,4,100, 0,4,108,101,0,2,112,0,2,113,117,111,0,0,108,97,114,114,0,4,98,0,5,102, 115,0,4,102,115,0,4,104,107,0,4,108,112,0,4,112,108,0,4,115,105,109,0,0, 108,97,114,114,116,108,0,2,116,0,3,97,105,108,0,3,101,0,4,115,0,1,98,97, 114,114,0,2,98,114,107,0,2,114,97,99,101,0,0,108,98,114,97,99,107,0,3,107, 101,0,4,115,108,100,0,6,117,0,1,99,97,114,111,110,0,2,101,100,105,108,0,3, 105,108,0,2,117,98,0,0,108,99,121,0,1,100,99,97,0,2,113,117,111,0,5,114, 0,2,114,100,104,97,114,0,3,117,115,104,97,114,0,2,115,104,0,1,101,0,0,108, 101,102,116,97,114,114,111,119,0,9,116,97,105,108,0,4,104,97,114,112,111,111,110,100, 111,119,110,0,11,117,112,0,4,108,101,102,116,97,114,114,111,119,115,0,4,114,105,103, 104,116,97,114,114,111,119,0,14,115,0,9,104,97,114,112,111,111,110,115,0,0,108,101, 102,116,114,105,103,104,116,115,113,117,105,103,97,114,114,111,119,0,4,116,104,114,101,101, 116,105,109,101,115,0,2,103,0,2,113,0,3,113,0,3,115,108,97,110,116,0,2,115, 0,3,99,99,0,0,108,101,115,100,111,116,0,6,111,0,7,114,0,3,103,0,4,101, 115,0,3,115,97,112,112,114,111,120,0,4,100,111,116,0,4,101,113,103,116,114,0,0, 108,101,115,115,101,113,113,103,116,114,0,4,103,116,114,0,4,115,105,109,0,1,102,105, 115,104,116,0,2,108,111,111,114,0,2,114,0,1,103,0,2,69,0,0,108,104,97,114, 100,0,4,117,0,5,108,0,2,98,108,107,0,1,106,99,121,0,1,108,0,2,97,114, 114,0,2,99,111,114,110,101,114,0,0,108,108,104,97,114,100,0,2,116,114,105,0,1, 109,105,100,111,116,0,2,111,117,115,116,0,6,97,99,104,101,0,1,110,69,0,2,97, 112,0,4,112,114,111,120,0,0,108,110,101,0,3,113,0,4,113,0,2,115,105,109,0, 1,111,97,110,103,0,3,114,114,0,2,98,114,107,0,2,110,103,108,101,102,116,97,114, 114,111,119,0,0,108,111,110,103,108,101,102,116,114,105,103,104,116,97,114,114,111,119,0, 4,109,97,112,115,116,111,0,4,114,105,103,104,116,97,114,114,111,119,0,2,111,112,97, 114,114,111,119,108,101,102,116,0,9,114,105,103,104,116,0,2,112,97,114,0,3,102,0, 3,108,117,115,0,0,108,111,116,105,109,101,115,0,2,119,97,115,116,0,3,98,97,114, 0,2,122,0,3,101,110,103,101,0,3,102,0,1,112,97,114,0,4,108,116,0,0,108, 114,97,114,114,0,2,99,111,114,110,101,114,0,2,104,97,114,0,5,100,0,2,109,0, 2,116,114,105,0,1,115,97,113,117,111,0,2,99,114,0,0,108,115,104,0,2,105,109, 0,4,101,0,4,103,0,2,113,98,0,3,117,111,0,5,114,0,2,116,114,111,107,0, 0,108,116,0,2,99,99,0,3,105,114,0,2,100,111,116,0,2,104,114,101,101,0,2, 105,109,101,115,0,2,108,97,114,114,0,2,113,117,101,115,116,0,0,108,116,114,80,97, 114,0,3,105,0,4,101,0,4,102,0,1,117,114,100,115,104,97,114,0,3,117,104,97, 114,0,1,118,101,114,116,110,101,113,113,0,2,110,69,0,0,109,68,68,111,116,0,1, 97,99,114,0,2,108,101,0,3,116,0,4,101,115,101,0,2,112,0,3,115,116,111,0, 6,100,111,119,110,0,0,109,97,112,115,116,111,108,101,102,116,0,6,117,112,0,2,114, 107,101,114,0,1,99,111,109,109,97,0,2,121,0,1,100,97,115,104,0,1,101,97,115, 117,114,101,100,97,110,103,108,101,0,1,102,114,0,0,109,104,111,0,1,105,99,114,111, 0,2,100,0,3,97,115,116,0,3,99,105,114,0,3,100,111,116,0,2,110,117,115,0, 5,98,0,0,109,105,110,117,115,100,0,6,117,0,1,108,99,112,0,2,100,114,0,1, 110,112,108,117,115,0,1,111,100,101,108,115,0,2,112,102,0,1,112,0,0,109,115,99, 114,0,2,116,112,111,115,0,1,117,0,2,108,116,105,109,97,112,0,2,109,97,112,0, 0,110,71,103,0,2,116,0,3,118,0,0,110,76,101,102,116,97,114,114,111,119,0,5, 114,105,103,104,116,97,114,114,111,119,0,2,108,0,2,116,0,3,118,0,1,82,105,103, 104,116,97,114,114,111,119,0,1,86,68,97,115,104,0,2,100,97,115,104,0,0,110,97, 98,108,97,0,2,99,117,116,101,0,2,110,103,0,2,112,0,3,69,0,3,105,100,0, 3,111,115,0,3,112,114,111,120,0,0,110,97,116,117,114,0,5,97,108,0,7,115,0, 1,98,115,112,0,2,117,109,112,0,5,101,0,1,99,97,112,0,3,114,111,110,0,0, 110,99,101,100,105,108,0,2,111,110,103,0,5,100,111,116,0,2,117,112,0,2,121,0, 1,100,97,115,104,0,1,101,0,2,65,114,114,0,0,110,101,97,114,104,107,0,4,114, 0,5,111,119,0,2,100,111,116,0,2,113,117,105,118,0,2,115,101,97,114,0,3,105, 109,0,2,120,105,115,116,0,0,110,101,120,105,115,116,115,0,1,102,114,0,1,103,69, 0,2,101,0,3,113,0,4,113,0,4,115,108,97,110,116,0,3,115,0,0,110,103,115, 105,109,0,2,116,0,3,114,0,1,104,65,114,114,0,2,97,114,114,0,2,112,97,114, 0,1,105,0,2,115,0,0,110,105,115,100,0,2,118,0,1,106,99,121,0,1,108,65, 114,114,0,2,69,0,2,97,114,114,0,2,100,114,0,2,101,0,0,110,108,101,102,116, 97,114,114,111,119,0,5,114,105,103,104,116,97,114,114,111,119,0,3,113,0,4,113,0, 4,115,108,97,110,116,0,3,115,0,4,115,0,2,115,105,109,0,0,110,108,116,0,3, 114,105,0,5,101,0,1,109,105,100,0,1,111,112,102,0,2,116,0,3,105,110,0,5, 69,0,0,110,111,116,105,110,100,111,116,0,5,118,97,0,6,98,0,6,99,0,3,110, 105,0,5,118,97,0,6,98,0,6,99,0,0,110,112,97,114,0,4,97,108,108,101,108, 0,4,115,108,0,4,116,0,2,111,108,105,110,116,0,2,114,0,3,99,117,101,0,3, 101,0,0,110,112,114,101,99,0,5,101,113,0,1,114,65,114,114,0,2,97,114,114,0, 5,99,0,5,119,0,2,105,103,104,116,97,114,114,111,119,0,2,116,114,105,0,0,110, 114,116,114,105,101,0,1,115,99,0,3,99,117,101,0,3,101,0,3,114,0,2,104,111, 114,116,109,105,100,0,6,112,97,114,97,108,108,101,108,0,2,105,109,0,0,110,115,105, 109,101,0,5,113,0,2,109,105,100,0,2,112,97,114,0,2,113,115,117,98,101,0,5, 112,101,0,2,117,98,0,4,69,0,0,110,115,117,98,101,0,4,115,101,116,0,7,101, 113,0,9,113,0,3,99,99,0,5,101,113,0,3,112,0,4,69,0,0,110,115,117,112, 101,0,4,115,101,116,0,7,101,113,0,9,113,0,1,116,103,108,0,2,105,108,100,101, 0,2,108,103,0,2,114,105,97,110,103,108,101,108,101,102,116,0,0,110,116,114,105,97, 110,103,108,101,108,101,102,116,101,113,0,9,114,105,103,104,116,0,14,101,113,0,1,117, 0,2,109,0,3,101,114,111,0,3,115,112,0,1,118,68,97,115,104,0,0,110,118,72, 97,114,114,0,2,97,112,0,2,100,97,115,104,0,2,103,101,0,3,116,0,2,105,110, 102,105,110,0,2,108,65,114,114,0,3,101,0,0,110,118,108,116,0,4,114,105,101,0, 2,114,65,114,114,0,3,116,114,105,101,0,2,115,105,109,0,1,119,65,114,114,0,2, 97,114,104,107,0,4,114,0,0,110,119,97,114,114,111,119,0,2,110,101,97,114,0,0, 111,83,0,1,97,99,117,116,101,0,2,115,116,0,1,99,105,114,0,4,99,0,2,121, 0,0,111,100,97,115,104,0,2,98,108,97,99,0,2,105,118,0,2,111,116,0,2,115, 111,108,100,0,1,101,108,105,103,0,1,102,99,105,114,0,2,114,0,0,111,103,111,110, 0,2,114,97,118,101,0,2,116,0,1,104,98,97,114,0,2,109,0,1,105,110,116,0, 1,108,97,114,114,0,2,99,105,114,0,0,111,108,99,114,111,115,115,0,2,105,110,101, 0,2,116,0,1,109,97,99,114,0,2,101,103,97,0,2,105,99,114,111,110,0,3,100, 0,3,110,117,115,0,0,111,111,112,102,0,1,112,97,114,0,2,101,114,112,0,2,108, 117,115,0,1,114,0,2,97,114,114,0,2,100,0,3,101,114,0,0,111,114,100,101,114, 111,102,0,3,102,0,3,109,0,2,105,103,111,102,0,2,111,114,0,2,115,108,111,112, 101,0,2,118,0,1,115,99,114,0,0,111,115,108,97,115,104,0,2,111,108,0,1,116, 105,108,100,101,0,3,109,101,115,0,6,97,115,0,1,117,109,108,0,1,118,98,97,114, 0,0,112,97,114,0,0,112,97,114,97,0,4,108,108,101,108,0,3,115,105,109,0,4, 108,0,3,116,0,1,99,121,0,1,101,114,99,110,116,0,3,105,111,100,0,0,112,101, 114,109,105,108,0,3,112,0,3,116,101,110,107,0,1,102,114,0,1,104,105,0,3,118, 0,2,109,109,97,116,0,2,111,110,101,0,0,112,105,0,2,116,99,104,102,111,114,107, 0,2,118,0,1,108,97,110,99,107,0,6,104,0,4,107,118,0,2,117,115,0,4,97, 99,105,114,0,0,112,108,117,115,98,0,4,99,105,114,0,4,100,111,0,5,117,0,4, 101,0,4,109,110,0,4,115,105,109,0,4,116,119,111,0,0,112,109,0,1,111,105,110, 116,105,110,116,0,2,112,102,0,2,117,110,100,0,1,114,0,2,69,0,2,97,112,0, 2,99,117,101,0,0,112,114,101,0,3,99,0,4,97,112,112,114,111,120,0,4,99,117, 114,108,121,101,113,0,4,101,113,0,4,110,97,112,112,114,111,120,0,5,101,113,113,0, 5,115,105,109,0,0,112,114,101,99,115,105,109,0,2,105,109,101,0,5,115,0,2,110, 69,0,3,97,112,0,3,115,105,109,0,2,111,100,0,3,102,97,108,97,114,0,0,112, 114,111,102,108,105,110,101,0,4,115,117,114,102,0,3,112,0,4,116,111,0,2,115,105, 109,0,2,117,114,101,108,0,1,115,99,114,0,2,105,0,0,112,117,110,99,115,112,0, 0,113,102,114,0,1,105,110,116,0,1,111,112,102,0,1,112,114,105,109,101,0,1,115, 99,114,0,1,117,97,116,101,114,110,105,111,110,115,0,4,105,110,116,0,0,113,117,101, 115,116,0,5,101,113,0,2,111,116,0,0,114,65,97,114,114,0,2,114,114,0,2,116, 97,105,108,0,1,66,97,114,114,0,1,72,97,114,0,0,114,97,99,101,0,3,117,116, 101,0,2,100,105,99,0,2,101,109,112,116,121,118,0,2,110,103,0,4,100,0,4,101, 0,4,108,101,0,0,114,97,113,117,111,0,2,114,114,0,4,97,112,0,4,98,0,5, 102,115,0,4,99,0,4,102,115,0,4,104,107,0,0,114,97,114,114,108,112,0,4,112, 108,0,4,115,105,109,0,4,116,108,0,4,119,0,2,116,97,105,108,0,3,105,111,0, 5,110,97,108,115,0,0,114,98,97,114,114,0,2,98,114,107,0,2,114,97,99,101,0, 5,107,0,3,107,101,0,4,115,108,100,0,6,117,0,1,99,97,114,111,110,0,0,114, 99,101,100,105,108,0,3,105,108,0,2,117,98,0,2,121,0,1,100,99,97,0,2,108, 100,104,97,114,0,2,113,117,111,0,5,114,0,0,114,100,115,104,0,1,101,97,108,0, 4,105,110,101,0,4,112,97,114,116,0,4,115,0,2,99,116,0,2,103,0,1,102,105, 115,104,116,0,0,114,102,108,111,111,114,0,2,114,0,1,104,97,114,100,0,4,117,0, 5,108,0,2,111,0,3,118,0,1,105,103,104,116,97,114,114,111,119,0,0,114,105,103, 104,116,97,114,114,111,119,116,97,105,108,0,5,104,97,114,112,111,111,110,100,111,119,110, 0,12,117,112,0,5,108,101,102,116,97,114,114,111,119,115,0,9,104,97,114,112,111,111, 110,115,0,5,114,105,103,104,116,97,114,114,111,119,115,0,5,115,113,117,105,103,97,114, 114,111,119,0,5,116,104,114,101,101,116,105,109,101,115,0,0,114,105,110,103,0,2,115, 105,110,103,100,111,116,115,101,113,0,1,108,97,114,114,0,2,104,97,114,0,2,109,0, 1,109,111,117,115,116,0,6,97,99,104,101,0,1,110,109,105,100,0,0,114,111,97,110, 103,0,3,114,114,0,2,98,114,107,0,2,112,97,114,0,3,102,0,3,108,117,115,0, 2,116,105,109,101,115,0,1,112,97,114,0,0,114,112,97,114,103,116,0,2,112,111,108, 105,110,116,0,1,114,97,114,114,0,1,115,97,113,117,111,0,2,99,114,0,2,104,0, 2,113,98,0,3,117,111,0,0,114,115,113,117,111,114,0,1,116,104,114,101,101,0,2, 105,109,101,115,0,2,114,105,0,4,101,0,4,102,0,4,108,116,114,105,0,1,117,108, 117,104,97,114,0,0,114,120,0,0,115,97,99,117,116,101,0,1,98,113,117,111,0,1, 99,0,2,69,0,2,97,112,0,3,114,111,110,0,2,99,117,101,0,0,115,99,101,0, 3,100,105,108,0,2,105,114,99,0,2,110,69,0,3,97,112,0,3,115,105,109,0,2, 112,111,108,105,110,116,0,2,115,105,109,0,0,115,99,121,0,1,100,111,116,0,4,98, 0,4,101,0,1,101,65,114,114,0,2,97,114,104,107,0,4,114,0,5,111,119,0,0, 115,101,99,116,0,2,109,105,0,2,115,119,97,114,0,2,116,109,105,110,117,115,0,4, 110,0,2,120,116,0,1,102,114,0,3,111,119,110,0,0,115,104,97,114,112,0,2,99, 104,99,121,0,3,121,0,2,111,114,116,109,105,100,0,5,112,97,114,97,108,108,101,108, 0,2,121,0,1,105,103,109,97,0,5,102,0,0,115,105,103,109,97,118,0,2,109,0, 3,100,111,116,0,3,101,0,4,113,0,3,103,0,4,69,0,3,108,0,0,115,105,109, 108,69,0,3,110,101,0,3,112,108,117,115,0,3,114,97,114,114,0,1,108,97,114,114, 0,1,109,97,108,108,115,101,116,109,105,110,117,115,0,3,115,104,112,0,2,101,112,97, 114,115,108,0,0,115,109,105,100,0,3,108,101,0,2,116,0,3,101,0,4,115,0,1, 111,102,116,99,121,0,2,108,0,3,98,0,0,115,111,108,98,97,114,0,2,112,102,0, 1,112,97,100,101,115,0,6,117,105,116,0,3,114,0,1,113,99,97,112,0,5,115,0, 3,117,112,0,0,115,113,99,117,112,115,0,2,115,117,98,0,5,101,0,5,115,101,116, 0,8,101,113,0,4,112,0,5,101,0,5,115,101,116,0,0,115,113,115,117,112,115,101, 116,101,113,0,2,117,0,3,97,114,101,0,5,102,0,3,102,0,1,114,97,114,114,0, 1,115,99,114,0,2,101,116,109,110,0,0,115,115,109,105,108,101,0,2,116,97,114,102, 0,1,116,97,114,0,4,102,0,2,114,97,105,103,104,116,101,112,115,105,108,111,110,0, 8,112,104,105,0,3,110,115,0,1,117,98,0,0,115,117,98,69,0,3,100,111,116,0, 3,101,0,4,100,111,116,0,3,109,117,108,116,0,3,110,69,0,4,101,0,3,112,108, 117,115,0,0,115,117,98,114,97,114,114,0,3,115,101,116,0,6,101,113,0,8,113,0, 6,110,101,113,0,9,113,0,4,105,109,0,4,117,98,0,0,115,117,98,115,117,112,0, 2,99,99,0,4,97,112,112,114,111,120,0,4,99,117,114,108,121,101,113,0,4,101,113, 0,4,110,97,112,112,114,111,120,0,5,101,113,113,0,5,115,105,109,0,0,115,117,99, 99,115,105,109,0,2,109,0,2,110,103,0,2,112,0,3,49,0,3,50,0,3,51,0, 3,69,0,0,115,117,112,100,111,116,0,4,115,117,98,0,3,101,0,4,100,111,116,0, 3,104,115,111,108,0,5,117,98,0,3,108,97,114,114,0,3,109,117,108,116,0,0,115, 117,112,110,69,0,4,101,0,3,112,108,117,115,0,3,115,101,116,0,6,101,113,0,8, 113,0,6,110,101,113,0,9,113,0,0,115,117,112,115,105,109,0,4,117,98,0,5,112, 0,1,119,65,114,114,0,2,97,114,104,107,0,4,114,0,5,111,119,0,2,110,119,97, 114,0,0,115,122,108,105,103,0,0,116,97,114,103,101,116,0,2,117,0,1,98,114,107, 0,1,99,97,114,111,110,0,2,101,100,105,108,0,2,121,0,1,100,111,116,0,0,116, 101,108,114,101,99,0,1,102,114,0,1,104,101,114,101,52,0,5,102,111,114,101,0,3, 116,97,0,5,115,121,109,0,5,118,0,2,105,99,107,97,112,112,114,111,120,0,0,116, 104,105,99,107,115,105,109,0,3,110,115,112,0,2,107,97,112,0,3,115,105,109,0,2, 111,114,110,0,1,105,108,100,101,0,2,109,101,115,0,5,98,0,0,116,105,109,101,115, 98,97,114,0,5,100,0,2,110,116,0,1,111,101,97,0,2,112,0,3,98,111,116,0, 3,99,105,114,0,3,102,0,0,116,111,112,102,111,114,107,0,2,115,97,0,1,112,114, 105,109,101,0,1,114,97,100,101,0,2,105,97,110,103,108,101,0,8,100,111,119,110,0, 8,108,101,102,116,0,12,101,113,0,0,116,114,105,97,110,103,108,101,113,0,8,114,105, 103,104,116,0,13,101,113,0,3,100,111,116,0,3,101,0,3,109,105,110,117,115,0,3, 112,108,117,115,0,3,115,98,0,0,116,114,105,116,105,109,101,0,2,112,101,122,105,117, 109,0,1,115,99,114,0,3,121,0,2,104,99,121,0,2,116,114,111,107,0,1,119,105, 120,116,0,2,111,104,101,97,100,108,101,102,116,97,114,114,111,119,0,0,116,119,111,104, 101,97,100,114,105,103,104,116,97,114,114,111,119,0,0,117,65,114,114,0,1,72,97,114, 0,1,97,99,117,116,101,0,2,114,114,0,1,98,114,99,121,0,3,101,118,101,0,1, 99,105,114,99,0,0,117,99,121,0,1,100,97,114,114,0,2,98,108,97,99,0,2,104, 97,114,0,1,102,105,115,104,116,0,2,114,0,1,103,114,97,118,101,0,1,104,97,114, 108,0,0,117,104,97,114,114,0,2,98,108,107,0,1,108,99,111,114,110,0,6,101,114, 0,3,114,111,112,0,2,116,114,105,0,1,109,97,99,114,0,2,108,0,0,117,111,103, 111,110,0,2,112,102,0,1,112,97,114,114,111,119,0,2,100,111,119,110,97,114,114,111, 119,0,2,104,97,114,112,111,111,110,108,101,102,116,0,9,114,105,103,104,116,0,2,108, 117,115,0,2,115,105,0,0,117,112,115,105,104,0,4,108,111,110,0,2,117,112,97,114, 114,111,119,115,0,1,114,99,111,114,110,0,6,101,114,0,3,114,111,112,0,2,105,110, 103,0,2,116,114,105,0,0,117,115,99,114,0,1,116,100,111,116,0,2,105,108,100,101, 0,2,114,105,0,4,102,0,1,117,97,114,114,0,2,109,108,0,1,119,97,110,103,108, 101,0,0,118,65,114,114,0,1,66,97,114,0,4,118,0,1,68,97,115,104,0,1,97, 110,103,114,116,0,2,114,101,112,115,105,108,111,110,0,3,107,97,112,112,97,0,3,110, 111,116,104,105,110,103,0,0,118,97,114,112,104,105,0,4,105,0,4,114,111,112,116,111, 0,3,114,0,4,104,111,0,3,115,105,103,109,97,0,4,117,98,115,101,116,110,101,113, 0,12,113,0,0,118,97,114,115,117,112,115,101,116,110,101,113,0,12,113,0,3,116,104, 101,116,97,0,4,114,105,97,110,103,108,101,108,101,102,116,0,11,114,105,103,104,116,0, 1,99,121,0,1,100,97,115,104,0,1,101,101,0,0,118,101,101,98,97,114,0,3,101, 113,0,2,108,108,105,112,0,2,114,98,97,114,0,3,116,0,1,102,114,0,1,108,116, 114,105,0,1,110,115,117,98,0,0,118,110,115,117,112,0,1,111,112,102,0,1,112,114, 111,112,0,1,114,116,114,105,0,1,115,99,114,0,2,117,98,110,69,0,5,101,0,3, 112,110,69,0,0,118,115,117,112,110,101,0,1,122,105,103,122,97,103,0,0,119,99,105, 114,99,0,1,101,100,98,97,114,0,3,103,101,0,5,113,0,2,105,101,114,112,0,1, 102,114,0,0,119,111,112,102,0,1,112,0,1,114,0,2,101,97,116,104,0,1,115,99, 114,0,0,120,99,97,112,0,2,105,114,99,0,2,117,112,0,0,120,100,116,114,105,0, 1,102,114,0,1,104,65,114,114,0,2,97,114,114,0,1,105,0,1,108,65,114,114,0, 2,97,114,114,0,1,109,97,112,0,0,120,110,105,115,0,1,111,100,111,116,0,2,112, 102,0,3,108,117,115,0,2,116,105,109,101,0,1,114,65,114,114,0,2,97,114,114,0, 1,115,99,114,0,0,120,115,113,99,117,112,0,1,117,112,108,117,115,0,2,116,114,105, 0,1,118,101,101,0,1,119,101,100,103,101,0,0,121,97,99,117,116,101,0,3,121,0, 1,99,105,114,99,0,0,121,99,121,0,1,101,110,0,1,102,114,0,1,105,99,121,0, 1,111,112,102,0,1,115,99,114,0,1,117,99,121,0,2,109,108,0,0,122,97,99,117, 116,101,0,1,99,97,114,111,110,0,2,121,0,1,100,111,116,0,1,101,101,116,114,102, 0,2,116,97,0,1,102,114,0,1,104,99,121,0,0,122,105,103,114,97,114,114,0,1, 111,112,102,0,1,115,99,114,0,1,119,106,0,2,110,106,0 }; static const uint16_t groups[]={ 0,45,97,149,198,258,314,403,483,529,580,650,737,834,921,978,1021,1093,1152,1222,1262,1319,1376,1443, 1492,1539,1600,1641,1684,1730,1796,1873,1949,2034,2101,2198,2246,2294,2390,2452,2530,2614,2703,2793,2861,2938,2992,3055, 3110,3164,3230,3275,3316,3381,3463,3526,3604,3666,3708,3784,3848,3904,3952,3990,4054,4105,4155,4214,4291,4351,4389,4452, 4495,4538,4581,4635,4667,4709,4742,4772,4813,4848,4893,4948,4991,5033,5080,5146,5200,5239,5270,5299,5330,5362,5397,5435, 5471,5508,5550,5596,5636,5681,5732,5768,5809,5845,5885,5928,5988,6038,6080,6126,6167,6215,6268,6336,6376,6429,6464,6499, 6537,6574,6625,6670,6713,6773,6817,6854,6887,6927,6964,6997,7035,7065,7102,7147,7200,7240,7289,7351,7397,7435,7480,7519, 7567,7606,7646,7689,7731,7772,7813,7847,7886,7927,7966,8037,8093,8135,8179,8218,8264,8308,8381,8422,8464,8496,8538,8584, 8622,8678,8715,8756,8795,8853,8890,8927,8966,9008,9044,9079,9114,9162,9194,9228,9266,9310,9356,9394,9427,9474,9524,9565, 9608,9649,9691,9731,9774,9810,9850,9894,9933,9972,10012,10048,10085,10133,10174,10216,10268,10311,10349,10382,10422,10462,10501,10540, 10580,10672,10723,10764,10808,10853,10891,10932,10967,11007,11053,11084,11140,11172,11212,11248,11291,11341,11379,11416,11468,11499,11542,11578, 11618,11662,11710,11754,11792,11842,11889,11947,12005,12050,12092,12151,12199,12242,12295,12340,12398,12441,12484,12531,12569,12610,12653,12702, 12739,12782 }; static const uint16_t refs[]={ 32768,32771,32773,8,32779,14,17,32789,24,27,30,33,36,40,32811,46, 50,32821,32824,59,62,65,68,71,74,77,80,84,88,74,91,94, 32865,100,103,106,109,112,32883,118,121,124,127,130,109,133,136,139, 142,145,148,151,154,157,160,163,166,169,172,175,178,181,184,188, 191,106,194,197,200,203,206,209,212,215,218,221,224,227,231,234, 237,240,242,245,248,251,255,258,261,166,255,264,267,270,212,273, 276,279,282,285,288,291,294,297,300,303,306,309,312,315,318,321, 324,327,330,333,264,336,340,343,33114,33117,352,33123,358,361,364,33136, 371,374,377,380,383,386,390,393,396,399,402,405,408,33179,414,417, 420,423,427,430,433,437,440,440,443,33214,448,451,454,457,460,463, 466,469,473,476,480,483,486,489,492,495,498,501,505,508,511,514, 516,519,522,525,528,522,531,91,534,537,540,543,33314,33317,552,555, 558,33329,558,564,567,282,570,573,576,579,582,585,588,592,595,598, 601,33372,607,610,613,617,621,625,628,631,634,637,640,643,646,650, 654,658,33429,663,666,669,672,675,678,681,684,687,690,693,696,699, 702,705,708,711,714,717,720,723,726,729,732,735,738,741,744,747, 750,753,756,267,270,759,762,765,768,771,774,777,781,784,787,790, 793,796,273,276,279,799,803,806,672,809,812,815,818,821,824,827, 830,834,837,827,841,844,847,850,853,856,859,859,859,859,505,815, 862,864,868,871,874,877,880,883,886,889,892,895,900,903,906,909, 914,919,922,927,930,935,940,943,948,951,954,957,960,965,970,973, 978,983,986,991,994,997,1000,1005,1008,1013,1016,1021,1024,1029,1032,1035, 1040,1043,1048,1053,1056,1059,1062,1065,1068,1071,33843,1078,1081,33852,33855,1090, 1093,1096,33868,1103,1106,1109,1112,1116,1119,1122,1125,33897,33900,1135,33906,1141, 1144,1147,1150,1153,1156,1159,1163,1166,1169,519,1172,1175,1178,1181,1184,1187, 1190,1193,157,1196,1199,1203,33974,1208,1212,1215,1219,33990,1225,1228,1231,1234, 1237,1240,1243,1246,1249,1252,1255,1246,1258,1261,1264,1267,1270,1273,1276,1279, 1282,1285,1288,1291,1294,1297,1300,1303,1306,1309,1312,1315,1318,1321,1324,282, 1327,1330,1333,1336,1339,1342,1345,1348,1351,1354,1357,1360,1363,1366,1369,1372, 297,690,1264,1376,1379,1382,1385,1389,1392,1395,1398,1401,1404,1407,1410,1413, 1417,1420,1420,1423,1426,1429,1432,1435,1249,1438,1441,1444,1447,1441,34218,1453, 1456,1459,1462,1464,1467,1470,1473,1476,1480,1483,1486,1491,1494,1497,1500,1503, 1506,1510,1513,1517,34288,1523,1526,1529,1532,34303,1538,1541,1544,34316,1551,1554, 1556,1559,1562,1565,1568,1571,1574,1376,1578,1581,1584,1587,1590,1593,288,291, 1596,1599,1602,1605,1608,1611,1615,34386,1621,1624,1627,1630,1633,1636,1639,1639, 1642,1645,1647,1650,1653,1656,1660,1664,1668,1671,1674,1677,1681,1685,1689,1693, 1696,1700,1704,1707,1710,34481,1716,1719,1722,1726,1730,1734,1737,1740,1743,1746, 1749,859,1752,1755,1758,1761,34533,1768,1771,1774,1779,34550,32999,1785,34556,40, 1791,34563,1798,1798,1801,1804,1807,32771,1810,1813,1816,1819,1822,1825,1828,1825, 1831,1834,1837,1840,1843,1846,1849,1852,1855,1858,1861,1864,1867,43,1870,1873, 1876,1503,1880,1883,1886,1889,1892,1503,1886,34662,1897,1901,1503,191,34671,34674, 178,1909,1912,1915,1918,1921,1924,1927,1930,1933,1933,1559,1936,1915,1939,1942, 71,71,1945,1918,74,1948,1951,1954,1957,576,1961,1565,1964,1967,1970,1973, 1976,1979,1982,1985,1636,1674,1988,1991,430,1994,1997,2000,2003,2006,2009,2012, 2015,2018,2021,2025,2030,2033,1590,1590,2037,2040,2043,2046,2049,2052,2055,2058, 2061,2064,2067,2070,2073,2076,2079,2082,2085,2088,2091,2094,2097,2100,2103,2106, 2109,2112,528,2115,2118,2121,2124,2127,2130,2133,2136,2139,2142,2145,2148,2151, 2154,2157,2160,2163,2166,1921,88,34937,2172,2176,1924,1927,2179,2181,2184,2187, 2187,91,2190,534,534,2193,2196,2199,2202,2205,2208,2211,2214,2220,511,2223, 2226,34997,2232,2235,2238,2241,32895,2244,35015,130,2250,2254,2257,2257,2260,2263, 2266,2269,2272,2275,2278,1222,2281,2284,2287,2290,2272,2293,2296,2299,2302,2302, 2305,50,50,2307,2309,2311,1382,2311,172,1500,2314,169,2317,175,32865,2321, 2324,2327,2330,2334,2337,2340,2343,2346,2349,2352,2355,2358,2361,2364,2367,2370, 2373,2376,2379,2382,2385,2391,2394,2355,2358,2397,2400,35171,2361,2391,2397,2400, 148,2406,2409,264,2412,2415,2418,297,2421,723,2424,237,2427,2430,248,206, 2433,2436,35207,2442,2445,2448,2451,708,1282,245,245,2455,2455,255,2458,2461, 2464,35232,2467,2467,2470,2473,2476,2479,2481,234,261,2485,2488,2491,2494,65, 297,2433,708,1282,1219,2497,2500,2503,2507,2510,2513,2516,2519,1997,303,1255, 2522,2525,2528,2436,2485,35299,2534,2537,2540,35311,2546,2549,2552,417,2555,2558, 2562,35333,2568,2571,2574,2577,2580,2583,2586,2589,2592,2592,2592,2595,2598,2601, 2604,2607,2610,2613,2617,2620,2623,2626,2626,2629,2540,2546,396,2568,2583,2632, 2634,163,2637,2640,2643,2646,2649,261,396,2652,35423,35426,2661,2664,414,402, 417,2555,2666,2669,2672,2676,2680,2684,2688,2692,2695,2698,2702,2705,2708,437, 2712,2715,2718,35489,2724,35495,2730,2733,2736,2739,2742,35513,2748,2751,2754,2757, 2760,2763,2766,2769,2772,486,2776,2779,2782,2458,2785,2788,2791,2794,2797,480, 483,480,486,495,495,2800,2803,2806,2809,2812,2818,2821,505,473,2825,2828, 492,2831,2834,2837,2840,2843,2843,2846,2846,2840,2849,2852,240,2856,498,2859, 2862,33214,2865,2868,2871,2874,2877,2785,2880,2871,483,2776,492,498,2883,2883, 270,1653,2721,522,2889,717,2892,2895,2898,2901,2904,2904,2907,2910,2913,2917, 2920,2923,2926,2929,2932,2935,2939,2942,2898,2946,2949,2421,35720,579,35723,2958, 2961,35732,270,2967,35739,567,2974,2977,2980,2983,2986,2989,558,595,558,2992, 2995,2998,371,3001,3004,3007,2992,573,3010,1758,3010,3013,3016,3019,3022,3025, 3029,3016,35800,3035,371,3039,3042,3045,3048,371,582,3051,3054,35825,3060,3063, 3066,3070,3073,3077,3081,3084,3087,3090,3093,3096,3099,3103,3106,3109,3112,3116, 784,267,3120,3123,762,3126,3129,3132,3135,672,3138,687,3141,687,3144,35915, 690,693,3150,3153,2929,3156,3159,3162,3165,3168,3171,3174,3177,3183,3186,3189, 3191,3193,3196,3199,3202,3205,699,3189,3208,3211,1116,1942,3214,3217,3220,3223, 690,3165,315,753,3226,717,696,1252,2895,3229,759,3223,762,771,771,3232, 3235,3238,3241,3244,3250,3144,3253,759,3126,765,774,3256,714,3259,765,3263, 315,753,3266,3269,3272,815,3226,2473,3275,3278,3281,3284,3284,3287,3290,3290, 3293,3293,3287,3296,3299,3302,702,790,793,3305,796,3156,3308,3311,3314,3318, 3321,3324,1554,3327,3327,1991,3330,3332,696,2497,1252,3335,3338,3341,3344,3347, 809,774,3351,3354,3191,1119,3357,3360,33429,3363,3366,3253,3229,3369,3372,3375, 3378,3381,738,2000,3384,3387,3390,3390,3396,36167,3402,3405,3405,1294,1294,333, 726,1593,3408,3411,3414,3417,1831,3420,3424,36195,1642,1901,3430,32898,3433,2127, 2488,3436,3439,2907,834,3442,3445,834,3449,1771,3453,3456,3456,3459,3464,914, 3469,3472,3475,3480,960,3485,3488,3491,221,3494,3497,1065,3502,3507,3512,1065, 3515,3515,874,33639,930,935,3518,3521,3524,1062,3527,3532,3535,3538,892,3541, 3544,1599,1599,3547,880,3552,895,900,900,3555,909,906,906,909,922,922, 927,903,903,3472,3559,3562,1249,3565,3568,1249,3571,3469,3574,3579,3582,954, 3579,3559,954,3574,965,965,951,970,951,940,948,1068,3585,36357,889,3592, 3597,889,3602,3605,994,994,3608,3611,886,886,3614,3619,3624,983,991,986, 983,986,3485,3627,3630,3635,3627,997,1005,1032,1040,1035,3640,1068,886,1056, 1059,1059,1068,886,1013,1021,3644,3647,1029,1024,1029,3647,1032,1035,3652,3655, 1053,1048,1053,3655,919,36428,957,940,948,997,1005,3663,3666,3668,3671,3674, 3677,3680,3685,3688,3693,3697,3700,3703,3708,3712,3717,3720,3725,3730,3733,1596, 1596,3736,2281,36507,2284,2287,36510,3745,2290,3748,3751,136,3754,3757,3760,3763, 3767,36538,3773,3776,1106,169,2275,3779,3782,1141,3785,3788,3791,3794,3797,139, 3800,3804,3807,142,3810,2278,3813,3816,3816,36587,36590,3825,3828,3831,3834,3816, 36605,3840,36611,145,3846,36617,3852,294,36623,294,3858,3861,1153,3864,3867,3869, 3871,1590,3874,3877,3881,3884,827,3887,3890,2712,3893,2898,3896,2898,3899,3901, 2130,3904,2491,3907,3910,33937,3913,3916,1169,3919,3922,36694,1178,3929,3932,1184, 1181,1178,3932,1184,1181,3935,3938,3941,1187,3944,1172,3938,3935,3941,1193,3947, 3950,3953,1196,1196,1187,3956,3959,3963,3966,3969,2974,3973,3977,3980,525,3984, 3987,2634,33974,1333,282,3989,2424,3992,3995,4000,1389,4003,1261,4006,4009,1261, 36780,1264,4015,1267,4018,4021,4024,2932,3308,4027,4030,4033,4036,4039,4042,1212, 1988,4045,4048,4050,4052,4055,4058,4061,4064,1273,4048,4067,4070,4073,151,151, 4076,1246,1336,1246,1327,4079,33990,4082,1288,4085,324,1321,4089,4092,4095,1264, 4033,324,1321,1270,399,4098,4036,4101,4104,2643,1270,399,4107,4110,4110,4113, 4116,4119,1276,4122,4125,4129,4132,4135,4137,4140,4098,4143,4146,1339,4050,154, 154,4101,4150,4153,1306,2003,4156,4159,4162,4165,3357,1426,4168,4171,4174,1432, 1429,4177,4180,4183,4186,4189,4192,1435,4195,4198,2494,4201,4204,2917,806,806, 36975,4210,4212,59,59,4215,4218,2769,4222,4225,4228,1642,294,36999,4234,4237, 4237,1494,4240,1497,1497,4243,4246,4249,4252,4255,4258,4261,690,59,4264,4267, 1642,4270,4273,4276,4279,4285,4288,4290,4293,4296,4300,4300,294,1395,4303,1410, 4309,1398,1401,1398,1401,1404,1407,1404,1407,1392,1392,430,430,1264,4315,59, 4270,1417,4319,1976,2629,3884,3399,4322,4325,4328,1423,4331,4334,4337,4340,4343, 4346,4322,1423,4325,4340,4337,4349,4352,4355,1426,4171,1432,1429,4186,4183,4189, 1435,1438,4358,1444,37129,37132,37135,4370,4373,4376,1447,4379,4382,4385,4388,4391, 4394,4397,4400,1444,1447,4370,4397,4394,4403,4406,4409,4412,2920,803,803,4415, 37186,4421,4424,1147,4427,4430,4433,1510,4436,4439,1480,1480,4443,4446,4446,1503, 1494,1491,1503,1494,37217,242,37220,2133,4455,4458,2977,3552,330,4461,4464,4467, 4471,4212,4474,1453,4477,2519,3381,738,4480,4153,1306,4483,4480,4486,4489,4492, 4495,4498,4501,4505,4508,4511,1954,675,1231,288,4514,37285,1376,4520,4523,37294, 4529,1581,4532,1587,4535,4538,37310,747,1315,4545,4548,4548,4551,4554,4557,33023, 4560,4563,1376,1584,747,1315,1568,4567,1602,4567,4570,4573,4573,4576,4579,4582, 4585,4589,4592,4477,1994,4570,37363,4598,291,4601,4604,285,4607,2629,3090,2592, 3884,3893,1196,1584,4095,4237,4610,4616,4622,4628,4446,732,1300,4634,1291,3810, 4637,4640,4643,1645,1645,4646,732,1024,1048,4650,1196,1300,4654,4616,4610,4628, 4622,4658,4661,4664,1810,4667,4670,4673,4677,4670,1650,1650,4681,576,1961,1565, 1979,4685,276,793,4689,273,790,3305,4692,1964,4695,1967,1970,279,796,4699, 1973,1985,1982,1636,1674,37471,4706,4709,4712,37483,4718,4722,4725,4729,4733,37504, 4739,4742,4745,4748,1755,4751,4754,4758,4761,4764,4768,4772,4775, }; static const unsigned char values[]={ 198,1,0,38,0,193,1,0,130,2,0,194,1,0,144,8, 0,132,170,7,0,192,1,0,145,7,0,128,2,0,211,84, 0,132,2,0,184,170,7,0,225,64,0,197,1,0,156,169, 7,0,212,68,0,195,1,0,196,1,0,150,68,0,231,85, 0,134,70,0,145,8,0,181,68,0,172,66,0,146,7,0, 133,170,7,0,185,170,7,0,216,5,0,206,68,0,167,8, 0,169,1,0,134,2,0,210,69,0,197,66,0,173,66,0, 140,2,0,199,1,0,136,2,0,176,68,0,138,2,0,184, 1,0,183,1,0,167,7,0,153,69,0,150,69,0,149,69, 0,151,69,0,178,68,0,157,64,0,153,64,0,183,68,0, 244,84,0,225,68,0,175,68,0,174,68,0,130,66,0,144, 68,0,179,68,0,175,84,0,158,169,7,0,211,69,0,205, 68,0,145,82,0,130,8,0,133,8,0,143,8,0,161,64, 0,161,67,0,228,85,0,142,2,0,148,8,0,135,68,0, 148,7,0,135,170,7,0,180,1,0,217,5,0,221,5,0, 96,0,220,5,0,196,69,0,198,66,0,187,170,7,0,168, 1,0,220,65,0,208,68,0,211,67,0,208,67,0,212,67, 0,248,79,0,250,79,0,249,79,0,210,67,0,168,69,0, 209,67,0,213,67,0,165,68,0,147,67,0,147,82,0,245, 67,0,145,6,0,208,82,0,222,82,0,189,67,0,214,82, 0,223,82,0,193,67,0,215,82,0,164,69,0,167,67,0, 159,169,7,0,144,2,0,202,2,0,208,1,0,201,1,0, 154,2,0,202,1,0,173,8,0,150,2,0,136,170,7,0, 200,1,0,136,68,0,146,2,0,251,75,0,171,75,0,152, 2,0,188,170,7,0,149,7,0,245,84,0,194,68,0,204, 67,0,176,66,0,243,84,0,151,7,0,203,1,0,131,68, 0,199,66,0,164,8,0,137,170,7,0,252,75,0,170,75, 0,189,170,7,0,128,68,0,177,66,0,131,8,0,62,0, 147,7,0,220,7,0,158,2,0,162,2,0,156,2,0,147, 8,0,160,2,0,138,170,7,0,217,69,0,190,170,7,0, 229,68,0,219,69,0,231,68,0,162,85,0,247,68,0,254, 84,0,243,68,0,162,169,7,0,235,68,0,170,8,0,199, 5,0,94,0,164,2,0,140,66,0,139,66,0,141,66,0, 128,74,0,166,2,0,207,68,0,149,8,0,178,2,0,129, 8,0,205,1,0,206,1,0,152,8,0,176,2,0,145,66, 0,204,1,0,170,2,0,200,66,0,172,68,0,171,68,0, 194,69,0,227,64,0,226,64,0,174,2,0,192,170,7,0, 153,7,0,144,66,0,168,2,0,134,8,0,207,1,0,180, 2,0,153,8,0,141,170,7,0,193,170,7,0,165,169,7, 0,136,8,0,132,8,0,165,8,0,140,8,0,154,7,0, 182,2,0,154,8,0,142,170,7,0,194,170,7,0,166,169, 7,0,137,8,0,60,0,185,2,0,155,7,0,234,79,0, 146,66,0,158,67,0,189,2,0,187,2,0,155,8,0,232, 79,0,144,67,0,228,67,0,198,67,0,136,70,0,230,79, 0,225,82,0,195,67,0,217,82,0,138,70,0,148,67,0, 206,82,0,163,69,0,164,67,0,218,82,0,178,69,0,207, 83,0,180,69,0,209,82,0,224,82,0,191,67,0,216,82, 0,188,67,0,210,82,0,218,69,0,230,68,0,246,68,0, 161,85,0,253,84,0,242,68,0,143,170,7,0,216,69,0, 218,67,0,191,2,0,245,79,0,247,79,0,246,79,0,195, 170,7,0,153,67,0,152,67,0,176,67,0,193,2,0,234, 68,0,133,82,0,156,8,0,223,64,0,179,66,0,144,170, 7,0,147,68,0,196,170,7,0,156,7,0,138,8,0,195, 2,0,199,2,0,197,2,0,157,8,0,139,64,0,10,0, 145,170,7,0,224,64,0,160,1,0,149,66,0,236,85,0, 226,68,0,237,68,0,166,68,0,137,68,0,224,68,0,194, 68,184,6,0,132,68,0,239,68,0,241,68,0,231,68,184, 6,0,235,68,184,6,0,249,68,0,254,84,184,6,0,245, 68,0,206,68,184,6,0,207,68,184,6,0,234,69,0,207, 83,184,6,0,236,69,0,238,68,0,240,68,0,248,68,0, 234,68,184,6,0,253,84,184,6,0,244,68,0,162,85,184, 6,0,161,85,184,6,0,128,69,0,175,85,184,6,0,224, 69,0,140,68,0,235,69,0,208,83,184,6,0,237,69,0, 143,69,184,6,0,226,69,0,144,69,184,6,0,227,69,0, 130,69,210,65,0,136,69,0,129,69,0,176,85,184,6,0, 225,69,0,255,68,184,6,0,131,69,210,65,0,137,69,0, 193,68,0,196,68,0,199,68,0,201,68,0,164,68,0,169, 169,7,0,209,1,0,157,7,0,210,2,0,211,1,0,212, 1,0,158,8,0,208,2,0,146,170,7,0,210,1,0,204, 2,0,169,7,0,159,7,0,198,170,7,0,156,64,0,152, 64,0,212,84,0,170,169,7,0,216,1,0,213,1,0,183, 84,0,214,1,0,190,64,0,222,71,0,180,71,0,220,71, 0,130,68,0,159,8,0,147,170,7,0,166,7,0,160,7, 0,177,1,0,153,66,0,187,85,0,250,68,0,175,85,0, 252,68,0,254,68,0,179,64,0,143,68,0,157,68,0,171, 169,7,0,168,7,0,34,0,148,170,7,0,154,66,0,172, 169,7,0,144,82,0,174,1,0,212,2,0,235,79,0,160, 67,0,150,82,0,216,2,0,214,2,0,160,8,0,156,66, 0,139,68,0,203,67,0,239,82,0,161,7,0,233,79,0, 146,67,0,229,67,0,196,67,0,137,70,0,231,79,0,221, 82,0,194,67,0,213,82,0,139,70,0,162,69,0,166,67, 0,219,82,0,179,69,0,208,83,0,181,69,0,207,82,0, 220,82,0,190,67,0,212,82,0,192,67,0,211,82,0,157, 66,0,240,82,0,219,67,0,155,66,0,177,67,0,244,83, 0,169,8,0,168,8,0,172,8,0,218,2,0,188,85,0, 224,2,0,222,2,0,220,2,0,161,8,0,150,170,7,0, 145,67,0,163,7,0,152,68,0,202,170,7,0,154,68,0, 161,75,0,147,69,0,143,69,0,145,69,0,144,69,0,146, 69,0,148,69,0,174,169,7,0,198,69,0,208,69,0,134, 69,0,251,68,0,176,85,0,253,68,0,255,68,0,145,68, 0,209,69,0,131,69,0,135,69,0,222,1,0,162,66,0, 139,8,0,166,8,0,9,0,164,7,0,228,2,0,226,2, 0,162,8,0,151,170,7,0,180,68,0,152,7,0,223,64, 138,64,0,137,64,0,188,68,0,195,68,0,197,68,0,200, 68,0,203,170,7,0,219,65,0,175,169,7,0,230,2,0, 218,1,0,159,67,0,201,82,0,142,8,0,236,2,0,219, 1,0,163,8,0,240,2,0,152,170,7,0,217,1,0,234, 2,0,95,0,223,71,0,181,71,0,221,71,0,195,69,0, 142,69,0,242,2,0,204,170,7,0,146,82,0,197,67,0, 149,67,0,238,82,0,165,69,0,165,67,0,150,67,0,151, 67,0,210,7,0,165,7,0,238,2,0,176,169,7,0,232, 2,0,220,1,0,171,69,0,235,85,0,146,8,0,169,69, 0,230,85,0,193,69,0,150,64,0,163,68,0,124,0,216, 78,0,192,68,0,138,64,0,153,170,7,0,205,170,7,0, 177,169,7,0,170,69,0,244,2,0,192,69,0,154,170,7, 0,206,170,7,0,178,169,7,0,155,170,7,0,158,7,0, 207,170,7,0,179,169,7,0,175,8,0,135,8,0,174,8, 0,221,1,0,246,2,0,171,8,0,156,170,7,0,208,170, 7,0,180,169,7,0,248,2,0,150,8,0,249,2,0,253, 2,0,151,8,0,251,2,0,150,7,0,168,66,0,164,66, 0,181,169,7,0,225,1,0,131,2,0,190,68,0,190,68, 179,6,0,191,68,0,226,1,0,176,8,0,230,1,0,158, 170,7,0,224,1,0,181,66,0,177,7,0,129,2,0,191, 84,0,167,68,0,213,84,0,220,84,0,216,84,0,218,84, 0,160,68,0,164,83,0,161,68,0,168,83,0,169,83,0, 170,83,0,171,83,0,172,83,0,173,83,0,174,83,0,175, 83,0,159,68,0,190,69,0,157,83,0,162,68,0,252,70, 0,133,2,0,210,170,7,0,240,84,0,239,84,0,202,68, 0,203,68,0,39,0,229,1,0,182,169,7,0,42,0,227, 1,0,228,1,0,145,84,0,237,85,0,204,68,0,246,7, 0,181,64,0,189,68,0,205,69,0,189,69,0,133,70,0, 182,71,0,177,8,0,158,64,0,176,83,0,178,7,0,182, 66,0,236,68,0,159,170,7,0,239,75,0,128,84,0,129, 84,0,130,84,0,134,84,0,133,76,0,189,75,0,179,75, 0,132,84,0,141,82,0,235,83,0,180,75,0,190,75,0, 194,75,0,184,75,0,163,72,0,146,75,0,145,75,0,147, 75,0,136,75,0,61,229,65,0,225,68,229,65,0,144,70, 0,211,170,7,0,200,69,0,215,74,0,212,74,0,214,74, 0,211,74,0,208,74,0,230,74,0,233,74,0,228,74,0, 231,74,0,221,74,0,218,74,0,220,74,0,217,74,0,209, 74,0,236,74,0,227,74,0,224,74,0,235,74,0,226,74, 0,223,74,0,201,83,0,213,74,0,210,74,0,144,74,0, 140,74,0,229,74,0,232,74,0,172,74,0,180,74,0,159, 69,0,158,69,0,160,69,0,219,74,0,216,74,0,152,74, 0,148,74,0,130,74,0,234,74,0,225,74,0,222,74,0, 188,74,0,164,74,0,156,74,0,166,1,0,183,169,7,0, 207,64,0,92,0,197,83,0,200,79,0,162,64,0,174,85, 0,135,2,0,169,68,0,196,84,0,201,84,0,203,84,0, 199,84,0,192,84,0,169,68,128,252,3,0,193,64,0,205, 84,0,141,2,0,231,1,0,137,2,0,204,84,0,208,84, 0,139,2,0,178,83,0,162,1,0,160,170,7,0,199,8, 0,147,78,0,199,7,0,203,75,0,195,83,0,198,5,0, 215,68,0,186,67,0,187,67,0,200,73,0,155,69,0,154, 69,0,157,69,0,144,84,0,239,85,0,194,83,0,227,76, 0,58,0,44,0,64,0,129,68,0,237,84,0,212,170,7, 0,151,66,0,181,67,0,151,78,0,184,169,7,0,207,85, 0,209,85,0,208,85,0,210,85,0,239,69,0,184,82,0, 181,82,0,222,69,0,223,69,0,182,67,0,189,82,0,170, 68,0,200,84,0,198,84,0,202,84,0,141,69,0,197,84, 0,170,68,128,252,3,0,183,67,0,188,82,0,206,69,0, 207,69,0,164,1,0,177,68,0,173,70,0,229,82,0,160, 64,0,184,66,0,144,64,0,143,82,0,143,2,0,180,8, 0,202,67,0,247,84,0,176,1,0,180,7,0,177,83,0, 255,82,0,161,170,7,0,230,76,0,221,7,0,242,69,0, 247,1,0,199,69,0,210,8,0,158,70,0,141,70,0,36, 0,213,170,7,0,209,68,0,184,68,0,148,68,0,161,69, 0,159,70,0,140,70,0,185,169,7,0,213,8,0,246,83, 0,145,2,0,241,69,0,191,75,0,166,83,0,223,8,0, 255,79,0,233,1,0,238,84,0,155,2,0,214,68,0,234, 1,0,213,68,0,205,8,0,151,2,0,210,68,0,162,170, 7,0,154,85,0,232,1,0,150,85,0,152,85,0,153,85, 0,231,71,0,147,66,0,149,85,0,151,85,0,147,2,0, 133,68,0,131,64,0,132,64,0,133,64,0,203,2,0,130, 64,0,153,2,0,214,170,7,0,213,69,0,227,83,0,241, 84,0,181,7,0,245,7,0,61,0,223,68,0,248,84,0, 229,83,0,211,68,0,241,82,0,175,66,0,183,7,0,240, 1,0,235,1,0,172,65,0,33,0,196,8,0,192,76,0, 131,246,3,0,128,246,3,0,132,246,3,0,163,170,7,0, 129,246,3,0,102,106,0,237,76,0,130,246,3,0,177,75, 0,146,3,0,215,170,7,0,212,69,0,217,85,0,141,84, 0,189,1,0,211,66,0,188,1,0,213,66,0,217,66,0, 219,66,0,212,66,0,214,66,0,190,1,0,215,66,0,220, 66,0,216,66,0,218,66,0,221,66,0,222,66,0,196,64, 0,162,70,0,187,169,7,0,140,85,0,245,3,0,179,7, 0,134,85,0,159,2,0,157,2,0,179,8,0,161,2,0, 169,85,0,128,85,0,130,85,0,132,85,0,219,69,128,252, 3,0,148,85,0,164,170,7,0,183,66,0,211,8,0,146, 85,0,165,85,0,164,85,0,233,68,0,138,85,0,136,85, 0,231,69,0,216,170,7,0,138,66,0,142,85,0,144,85, 0,167,85,0,250,84,0,215,69,0,149,83,0,252,84,0, 248,82,0,233,68,128,252,3,0,202,8,0,200,82,0,173, 67,0,143,66,0,165,2,0,229,76,0,166,64,0,185,69, 0,165,170,7,0,165,82,0,166,82,0,255,67,0,187,68, 0,169,67,0,170,67,0,217,170,7,0,149,64,0,189,169, 7,0,167,2,0,195,64,0,237,1,0,238,1,0,184,8, 0,181,8,0,161,1,0,166,170,7,0,236,1,0,140,84, 0,173,68,0,220,83,0,169,66,0,179,2,0,171,2,0, 177,2,0,183,69,0,181,3,0,133,66,0,158,68,0,221, 83,0,186,69,0,151,84,0,188,84,0,209,8,0,175,2, 0,218,170,7,0,185,7,0,191,1,0,190,169,7,0,249, 69,0,245,69,0,244,69,0,243,69,0,169,2,0,214,8, 0,239,1,0,181,2,0,185,8,0,167,170,7,0,183,4, 0,219,170,7,0,191,169,7,0,216,8,0,212,8,0,186, 7,0,240,7,0,183,2,0,186,8,0,168,170,7,0,184, 2,0,197,8,0,220,8,0,220,170,7,0,192,169,7,0, 155,82,0,142,82,0,139,85,0,226,82,0,186,2,0,180, 83,0,187,7,0,145,83,0,133,85,0,171,1,0,159,82, 0,157,82,0,171,67,0,185,82,0,243,82,0,162,67,0, 171,85,0,153,82,0,173,85,0,173,85,128,252,3,0,140, 82,0,242,78,0,123,0,91,0,139,83,0,143,83,0,141, 83,0,190,2,0,188,2,0,187,8,0,182,82,0,231,82, 0,203,82,0,178,67,0,228,68,0,199,67,0,203,69,0, 168,85,0,255,84,0,129,85,0,131,85,0,218,69,128,252, 3,0,147,85,0,214,69,0,252,82,0,169,170,7,0,145, 85,0,234,82,0,132,75,0,217,8,0,235,82,0,250,75, 0,192,2,0,176,71,0,232,68,0,137,85,0,135,85,0, 230,69,0,236,79,0,253,67,0,252,79,0,172,67,0,133, 83,0,221,170,7,0,173,84,0,180,84,0,151,68,0,202, 75,0,40,0,147,83,0,237,82,0,142,64,0,191,69,0, 185,64,0,193,169,7,0,141,85,0,143,85,0,154,64,0, 194,2,0,166,85,0,249,84,0,201,69,0,246,82,0,251, 84,0,150,83,0,195,75,0,202,82,0,230,82,0,232,68, 128,252,3,0,186,68,0,175,1,0,194,76,0,160,78,0, 174,75,0,169,84,0,188,8,0,148,64,0,170,170,7,0, 167,66,0,181,1,0,240,85,0,146,68,0,170,84,0,219, 85,0,167,69,0,222,170,7,0,194,169,7,0,188,7,0, 184,69,0,217,69,184,6,0,235,68,210,65,0,205,67,0, 206,67,0,216,69,184,6,0,234,68,210,65,0,207,67,0, 175,69,0,174,69,0,196,2,0,160,68,210,65,0,240,84, 184,6,0,203,68,184,6,0,201,2,0,238,76,0,195,84, 0,200,2,0,198,2,0,237,84,184,6,0,194,84,0,189, 8,0,147,64,0,215,67,0,164,82,0,208,68,184,6,0, 168,82,0,171,170,7,0,174,67,0,242,85,0,252,69,0, 250,69,0,218,8,0,230,68,184,6,0,154,67,0,165,64, 0,223,170,7,0,172,1,0,249,69,184,6,0,245,69,184, 6,0,247,69,0,246,69,0,254,69,0,253,69,0,253,85, 229,65,0,130,68,184,6,0,148,84,0,155,67,0,179,82, 184,6,0,157,67,184,6,0,195,169,7,0,132,69,0,197, 85,184,6,0,133,69,0,198,85,184,6,0,241,1,0,189, 7,0,35,0,150,66,0,135,64,0,173,69,0,132,82,0, 205,68,210,65,0,172,69,0,229,68,210,65,0,62,210,65, 0,222,83,0,130,82,0,228,68,210,65,0,60,210,65,0, 180,69,210,65,0,131,82,0,181,69,210,65,0,188,68,210, 65,0,214,67,0,163,82,0,167,82,0,243,1,0,244,1, 0,190,8,0,209,2,0,184,84,0,188,83,0,211,2,0, 191,83,0,172,170,7,0,219,5,0,242,1,0,193,83,0, 181,83,0,190,83,0,187,83,0,192,83,0,205,2,0,201, 7,0,191,7,0,182,83,0,224,170,7,0,183,83,0,185, 83,0,168,68,0,221,84,0,180,66,0,170,1,0,186,1, 0,182,69,0,214,84,0,215,84,0,219,84,0,248,1,0, 152,69,0,245,1,0,182,84,0,246,1,0,189,70,0,182, 1,0,243,85,0,253,85,0,191,8,0,37,0,46,0,176, 64,0,177,64,0,173,170,7,0,198,7,0,213,7,0,142, 76,0,192,7,0,214,7,0,142,66,0,43,0,163,84,0, 162,84,0,165,84,0,242,84,0,166,84,0,167,84,0,149, 84,0,225,170,7,0,163,1,0,179,85,0,183,85,0,185, 85,0,181,85,0,232,69,0,178,64,0,174,70,0,146,70, 0,147,70,0,176,69,0,197,169,7,0,200,7,0,136,64, 0,174,170,7,0,226,170,7,0,215,64,0,198,169,7,0, 150,84,0,63,0,156,82,0,228,82,0,189,68,177,6,0, 213,2,0,179,83,0,146,83,0,165,83,0,187,1,0,245, 82,0,160,82,0,179,82,0,158,82,0,197,82,0,244,82, 0,163,67,0,157,67,0,154,82,0,182,68,0,243,78,0, 125,0,93,0,140,83,0,142,83,0,144,83,0,217,2,0, 215,2,0,192,8,0,183,82,0,233,82,0,179,67,0,173, 75,0,253,82,0,175,170,7,0,236,82,0,193,7,0,241, 7,0,201,67,0,204,69,0,218,5,0,143,64,0,177,71, 0,238,85,0,237,79,0,254,67,0,134,83,0,227,170,7, 0,174,84,0,181,84,0,41,0,148,83,0,146,84,0,186, 64,0,199,169,7,0,202,69,0,185,75,0,206,83,0,232, 82,0,158,66,0,219,2,0,180,85,0,184,85,0,225,2, 0,223,2,0,221,2,0,182,85,0,186,85,0,233,69,0, 147,84,0,193,8,0,197,69,0,230,84,0,216,67,0,167, 1,0,59,0,169,82,0,182,78,0,176,170,7,0,239,76, 0,201,8,0,200,8,0,173,1,0,195,7,0,194,7,0, 234,84,0,158,85,0,160,85,0,157,85,0,159,85,0,198, 68,0,164,84,0,242,82,0,179,84,0,228,83,0,163,70, 0,170,85,0,172,85,0,172,85,128,252,3,0,204,8,0, 47,0,196,83,0,191,70,0,228,170,7,0,224,76,0,147, 69,128,252,3,0,148,69,128,252,3,0,200,169,7,0,134, 76,0,130,69,0,197,85,0,189,85,0,195,85,0,193,85, 0,203,85,0,138,69,0,191,85,0,249,82,0,199,85,0, 213,85,0,211,85,0,234,76,0,185,1,0,178,1,0,179, 1,0,198,85,0,190,85,0,216,85,0,196,85,0,201,79, 0,215,85,0,251,82,0,194,85,0,204,85,0,139,69,0, 192,85,0,200,85,0,212,85,0,214,85,0,217,67,0,170, 82,0,223,1,0,150,70,0,196,7,0,229,2,0,227,2, 0,194,8,0,149,70,0,177,170,7,0,184,7,0,209,7, 0,254,1,0,215,1,0,177,84,0,176,84,0,182,70,0, 241,85,0,229,170,7,0,218,85,0,180,64,0,181,75,0, 220,68,0,236,75,0,186,84,0,185,84,0,205,83,0,187, 84,0,226,71,0,201,169,7,0,198,8,0,219,8,0,231, 2,0,227,82,0,250,1,0,222,8,0,237,2,0,251,1, 0,195,8,0,241,2,0,254,82,0,178,170,7,0,249,1, 0,128,75,0,156,70,0,143,70,0,248,75,0,235,2,0, 243,2,0,230,170,7,0,197,7,0,200,67,0,157,70,0, 142,70,0,239,2,0,249,75,0,202,169,7,0,240,69,0, 233,2,0,252,1,0,167,83,0,232,85,0,233,85,0,156, 83,0,138,69,128,252,3,0,203,85,128,252,3,0,139,69, 128,252,3,0,204,85,128,252,3,0,178,8,0,187,69,0, 218,68,0,238,69,0,179,170,7,0,231,170,7,0,203,169, 7,0,154,83,0,245,2,0,223,84,0,217,68,0,152,66, 0,180,170,7,0,232,170,7,0,204,169,7,0,181,170,7, 0,190,7,0,251,69,0,233,170,7,0,205,169,7,0,253, 1,0,207,8,0,247,2,0,203,8,0,165,1,0,182,170, 7,0,215,8,0,234,170,7,0,206,169,7,0,206,8,0, 255,1,0,250,2,0,254,2,0,183,8,0,252,2,0,182, 7,0,183,170,7,0,182,8,0,221,67,0,235,170,7,0, 207,169,7,0,141,64,0,140,64,0, }; /* Return a value offset and a legacy flag, or -1. */ static int lookup(const unsigned char *s, unsigned n) { unsigned lo=0,hi=sizeof(refs)/sizeof(refs[0]); while(lo0) hi=mid; else return refs[mid]; } return -1; } static unsigned utf8(unsigned o,uint32_t c) { if(c<128) buffer[o++]=c; else if(c<2048) { buffer[o++]=192|(c>>6); buffer[o++]=128|(c&63); } else if(c<65536) { buffer[o++]=224|(c>>12); buffer[o++]=128|((c>>6)&63); buffer[o++]=128|(c&63); } else { buffer[o++]=240|(c>>18); buffer[o++]=128|((c>>12)&63); buffer[o++]=128|((c>>6)&63); buffer[o++]=128|(c&63); } return o; } static const uint16_t c1[]={8364,129,8218,402,8222,8230,8224,8225,710,8240,352,8249,338,141,381,143,144,8216,8217,8220,8221,8226,8211,8212,732,8482,353,8250,339,157,382,376}; EXPORT uint64_t render(uint32_t len) { const unsigned char *in=buffer+209744; if(len>1048576) len=1048576; unsigned i=0,o=0; while(i=16) { v128_t v=wasm_v128_load(in+i); unsigned mask=wasm_i8x16_bitmask(wasm_i8x16_eq(v,wasm_i8x16_splat('&'))); if(!mask) { wasm_v128_store(buffer+o,v); i+=16; o+=16; continue; } unsigned count=__builtin_ctz(mask); for(unsigned k=0;k9) { d=(in[j]|32)-'a'+10; if(base!=16 || d<10 || d>15) break; } c=c*base+d; if(c>0x110000) c=0x110000; j++; } if(j!=start) { if(j=128 && c<=159) c=c1[c-128]; else if(!c || (c>=0xd800 && c<=0xdfff) || c>0x10ffff) c=0xfffd; o=utf8(o,c); i=j;continue; } } else { unsigned j=i+1; while(j='0' && c<='9') || ((c|32)>='a' && (c|32)<='z'))) break; j++; } int ref=-1; unsigned used=0; if(j=0) used=j-i+1; } if(!used) { unsigned n=j-i-1; if(n>6) n=6; for(;n>=2;n--) { ref=lookup(in+i+1,n); if(ref>=0 && (ref&32768)) { used=n+1;break; } } } if(used) { const unsigned char *v=values+(ref&32767); for(;;) { uint32_t c=0; unsigned s=0,b; do { b=*v++; c|=(uint32_t)(b&127)<