From 68979bc75e2471a06e44bccd88de9a260845b015 Mon Sep 17 00:00:00 2001 From: Chien Wong Date: Tue, 27 Feb 2024 20:48:32 +0800 Subject: [PATCH 01/19] Add missing ARM64 and RISCV filter in lzma module --- Doc/library/lzma.rst | 2 ++ Lib/lzma.py | 1 + Modules/_lzmamodule.c | 16 +++++++++++++++- 3 files changed, 18 insertions(+), 1 deletion(-) diff --git a/Doc/library/lzma.rst b/Doc/library/lzma.rst index 0d69c3bc01d1e2..e3c2c6e6283f09 100644 --- a/Doc/library/lzma.rst +++ b/Doc/library/lzma.rst @@ -349,6 +349,8 @@ options. Valid filter IDs are as follows: * :const:`FILTER_ARMTHUMB` * :const:`FILTER_POWERPC` * :const:`FILTER_SPARC` + * :const:`FILTER_ARM64` + * :const:`FILTER_RISCV` A filter chain can consist of up to 4 filters, and cannot be empty. The last filter in the chain must be a compression filter, and any other filters must be diff --git a/Lib/lzma.py b/Lib/lzma.py index 800f52198fbb79..ec621a40f0d433 100644 --- a/Lib/lzma.py +++ b/Lib/lzma.py @@ -13,6 +13,7 @@ "CHECK_ID_MAX", "CHECK_UNKNOWN", "FILTER_LZMA1", "FILTER_LZMA2", "FILTER_DELTA", "FILTER_X86", "FILTER_IA64", "FILTER_ARM", "FILTER_ARMTHUMB", "FILTER_POWERPC", "FILTER_SPARC", + "FILTER_ARM64", "FILTER_RISCV", "FORMAT_AUTO", "FORMAT_XZ", "FORMAT_ALONE", "FORMAT_RAW", "MF_HC3", "MF_HC4", "MF_BT2", "MF_BT3", "MF_BT4", "MODE_FAST", "MODE_NORMAL", "PRESET_DEFAULT", "PRESET_EXTREME", diff --git a/Modules/_lzmamodule.c b/Modules/_lzmamodule.c index f6bfbfa62687b8..d72887ec58382e 100644 --- a/Modules/_lzmamodule.c +++ b/Modules/_lzmamodule.c @@ -24,6 +24,14 @@ #error "The maximum block size accepted by liblzma is SIZE_MAX." #endif + +#ifndef LZMA_FILTER_ARM64 +#define LZMA_FILTER_ARM64 LZMA_VLI_C(0x0A) +#endif +#ifndef LZMA_FILTER_RISCV +#define LZMA_FILTER_RISCV LZMA_VLI_C(0x0B) +#endif + /* On success, return value >= 0 On failure, return -1 */ static inline Py_ssize_t @@ -372,6 +380,8 @@ lzma_filter_converter(_lzma_state *state, PyObject *spec, void *ptr) case LZMA_FILTER_ARM: case LZMA_FILTER_ARMTHUMB: case LZMA_FILTER_SPARC: + case LZMA_FILTER_ARM64: + case LZMA_FILTER_RISCV: f->options = parse_filter_spec_bcj(state, spec); return f->options != NULL; default: @@ -490,7 +500,9 @@ build_filter_spec(const lzma_filter *f) case LZMA_FILTER_IA64: case LZMA_FILTER_ARM: case LZMA_FILTER_ARMTHUMB: - case LZMA_FILTER_SPARC: { + case LZMA_FILTER_SPARC: + case LZMA_FILTER_ARM64: + case LZMA_FILTER_RISCV: { lzma_options_bcj *options = f->options; if (options) { ADD_FIELD(options, start_offset); @@ -1551,6 +1563,8 @@ lzma_exec(PyObject *module) ADD_INT_PREFIX_MACRO(module, FILTER_ARMTHUMB); ADD_INT_PREFIX_MACRO(module, FILTER_SPARC); ADD_INT_PREFIX_MACRO(module, FILTER_POWERPC); + ADD_INT_PREFIX_MACRO(module, FILTER_ARM64); + ADD_INT_PREFIX_MACRO(module, FILTER_RISCV); ADD_INT_PREFIX_MACRO(module, MF_HC3); ADD_INT_PREFIX_MACRO(module, MF_HC4); ADD_INT_PREFIX_MACRO(module, MF_BT2); From 3fa0c17ad4163dcd9556190a7b0a3a17ed0ce4ba Mon Sep 17 00:00:00 2001 From: Chien Wong Date: Wed, 28 Feb 2024 12:24:58 +0800 Subject: [PATCH 02/19] Suppress doc warning "py:const reference target not found" --- Doc/library/lzma.rst | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/Doc/library/lzma.rst b/Doc/library/lzma.rst index e3c2c6e6283f09..b36e28bcf9f0a6 100644 --- a/Doc/library/lzma.rst +++ b/Doc/library/lzma.rst @@ -343,14 +343,14 @@ options. Valid filter IDs are as follows: * Branch-Call-Jump (BCJ) filters: - * :const:`FILTER_X86` - * :const:`FILTER_IA64` - * :const:`FILTER_ARM` - * :const:`FILTER_ARMTHUMB` - * :const:`FILTER_POWERPC` - * :const:`FILTER_SPARC` - * :const:`FILTER_ARM64` - * :const:`FILTER_RISCV` + * :const:`!FILTER_X86` + * :const:`!FILTER_IA64` + * :const:`!FILTER_ARM` + * :const:`!FILTER_ARMTHUMB` + * :const:`!FILTER_POWERPC` + * :const:`!FILTER_SPARC` + * :const:`!FILTER_ARM64` + * :const:`!FILTER_RISCV` A filter chain can consist of up to 4 filters, and cannot be empty. The last filter in the chain must be a compression filter, and any other filters must be From c1e166af46d4f9ff4ca2de4f4d16d1433bc4e5b8 Mon Sep 17 00:00:00 2001 From: Chien Wong Date: Sun, 17 Mar 2024 17:27:57 +0800 Subject: [PATCH 03/19] Add lzma version --- Doc/library/lzma.rst | 20 ++++++++++++++++++++ Modules/_lzmamodule.c | 9 +++++++++ 2 files changed, 29 insertions(+) diff --git a/Doc/library/lzma.rst b/Doc/library/lzma.rst index b36e28bcf9f0a6..53a61a113f426d 100644 --- a/Doc/library/lzma.rst +++ b/Doc/library/lzma.rst @@ -387,6 +387,26 @@ These filters support one option, ``start_offset``. This specifies the address that should be mapped to the beginning of the input data. The default is 0. +Information about the version of the lzma library in use is available through +the following constants: + + +.. data:: LZMA_VERSION + + The version string of the lzma library that was used for building the module. + This may be different from the lzma library actually used at runtime, which + is available as :const:`LZMA_RUNTIME_VERSION`. + + .. versionadded:: 3.13 + + +.. data:: LZMA_RUNTIME_VERSION + + The version string of the lzma library actually loaded by the interpreter. + + .. versionadded:: 3.13 + + Examples -------- diff --git a/Modules/_lzmamodule.c b/Modules/_lzmamodule.c index d72887ec58382e..c08e81da6426be 100644 --- a/Modules/_lzmamodule.c +++ b/Modules/_lzmamodule.c @@ -1605,6 +1605,15 @@ lzma_exec(PyObject *module) return -1; } + if (PyModule_Add(module, "LZMA_VERSION", + PyUnicode_FromString(LZMA_VERSION_STRING)) < 0) { + return -1; + } + if (PyModule_Add(module, "LZMA_RUNTIME_VERSION", + PyUnicode_FromString(lzma_version_string())) < 0) { + return -1; + } + return 0; } From ea51476320fb141a708f1aab380a620609e9fb30 Mon Sep 17 00:00:00 2001 From: Chien Wong Date: Sun, 17 Mar 2024 21:57:42 +0800 Subject: [PATCH 04/19] Add ARM64, RISC-V filter test case --- Lib/test/test_lzma.py | 1443 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 1443 insertions(+) diff --git a/Lib/test/test_lzma.py b/Lib/test/test_lzma.py index 65e6488c5d7b10..81e04b8a260977 100644 --- a/Lib/test/test_lzma.py +++ b/Lib/test/test_lzma.py @@ -5,6 +5,7 @@ import pathlib import pickle import random +import re import sys from test import support import unittest @@ -19,6 +20,16 @@ from lzma import LZMACompressor, LZMADecompressor, LZMAError, LZMAFile +def _lzma_runtime_version_tuple(lzma_version=lzma.LZMA_RUNTIME_VERSION): + v = lzma_version.split('.', 3) + if not v[-1].isnumeric(): + v[-1] = re.search(r'\d+', v[-1]).group() + return tuple(map(int, v)) + + +LZMA_RUNTIME_VERSION_TUPLE = _lzma_runtime_version_tuple() + + class CompressorDecompressorTestCase(unittest.TestCase): # Test error cases. @@ -384,6 +395,48 @@ def test_uninitialized_LZMADecompressor_crash(self): self.assertEqual(LZMADecompressor.__new__(LZMADecompressor). decompress(bytes()), b'') + # Test relative new BCJ filters + + def test_riscv_filter_compress(self): + # RISC-V filter is only available on lzma 5.6.0 or later + if LZMA_RUNTIME_VERSION_TUPLE >= (5, 6, 0): + lzc = LZMACompressor(filters=RISCV_BCJ_CASE_FILTERS) + compressed = lzc.compress(RISCV_BCJ_CASE_INPUT) + lzc.flush() + lzd = LZMADecompressor() + decompressed = lzd.decompress(compressed) + self.assertEqual(RISCV_BCJ_CASE_INPUT, decompressed) + else: + self.assertRaises(LZMAError, LZMACompressor, filters=RISCV_BCJ_CASE_FILTERS) + + def test_riscv_filter_decompress(self): + lzd = LZMADecompressor() + # RISC-V filter is only available on lzma 5.6.0 or later + if LZMA_RUNTIME_VERSION_TUPLE >= (5, 6, 0): + decompressed = lzd.decompress(RISCV_BCJ_CASE_COMPRESSED) + self.assertEqual(RISCV_BCJ_CASE_INPUT, decompressed) + else: + self.assertRaises(LZMAError, lzd.decompress, RISCV_BCJ_CASE_COMPRESSED) + + def test_arm64_filter_compress(self): + # ARM64 filter is only available on lzma 5.4.0 or later + if LZMA_RUNTIME_VERSION_TUPLE >= (5, 4, 0): + lzc = LZMACompressor(filters=ARM64_BCJ_CASE_FILTERS) + compressed = lzc.compress(ARM64_BCJ_CASE_INPUT) + lzc.flush() + lzd = LZMADecompressor() + decompressed = lzd.decompress(compressed) + self.assertEqual(ARM64_BCJ_CASE_INPUT, decompressed) + else: + self.assertRaises(LZMAError, LZMACompressor, filters=ARM64_BCJ_CASE_FILTERS) + + def test_arm64_filter_decompress(self): + lzd = LZMADecompressor() + # ARM64 filter is only available on lzma 5.4.0 or later + if LZMA_RUNTIME_VERSION_TUPLE >= (5, 4, 0): + decompressed = lzd.decompress(ARM64_BCJ_CASE_COMPRESSED) + self.assertEqual(ARM64_BCJ_CASE_INPUT, decompressed) + else: + self.assertRaises(LZMAError, lzd.decompress, ARM64_BCJ_CASE_COMPRESSED) + class CompressDecompressFunctionTestCase(unittest.TestCase): @@ -1938,6 +1991,1396 @@ def test_filter_properties_roundtrip(self): b'\xeb#\x182\x96I\xf7l\xf3r\x00' ) +ARM64_BCJ_CASE_FILTERS = [{"id": lzma.FILTER_ARM64}, {"id": lzma.FILTER_LZMA2}] +# Test case from xz 5.6.1 tests/files/good-1-arm64-lzma2-1.xz +ARM64_BCJ_CASE_COMPRESSED = ( + b'\xfd\x37\x7a\x58\x5a\x00\x00\x01\x69\x22\xde\x36\x02\x01\x0a\x00\x21\x01' + b'\x08\x00\xa2\xd8\x7e\xf1\xe0\x21\x7f\x01\xc3\x6e\x00\x00\x68\x23\x88\x71' + b'\x63\xc2\x8f\x53\x0a\xe6\xb1\xdf\xd0\x8a\xae\x1b\xa1\xb0\x78\xab\x28\x43' + b'\x13\x5e\x7f\xe4\x97\xc5\x69\xcf\xc1\x0a\xcd\xda\x89\x2e\x3a\x9e\xf2\xac' + b'\x4f\x83\xdc\x79\xb5\x0b\xc3\xfb\xf1\xf8\x14\x14\xba\xa1\xf6\xc3\x11\x97' + b'\x9e\x53\x71\x7a\x6b\x4d\xde\x7f\xab\xb5\x81\x19\xd2\x87\xb3\x8e\x59\xcc' + b'\xad\x32\xf5\x73\x9a\x90\x0d\x99\x7d\x46\x55\x52\xa0\x15\x03\xe7\x1c\xf0' + b'\x97\x4f\xaf\xc1\x8b\xca\x2b\x76\x63\xc6\xd3\xdc\x68\xd9\xbf\x04\x20\x1a' + b'\x1d\x80\x25\x28\x83\x30\x32\xa3\x64\xe4\x26\xdd\xc0\x16\xd6\x8b\xb0\x11' + b'\x37\x88\xbd\xe2\xd9\xbc\x2d\xb7\x45\x3c\xca\x5a\x0f\xaa\x26\x98\x9d\xb9' + b'\xf8\x18\xa3\x55\xcd\xae\x02\x30\x27\xf2\x62\xa8\x0d\x0d\x20\x4d\xb1\x80' + b'\xaa\x48\x92\x7c\x98\x99\x5a\x8e\x0f\x5f\xf8\x58\x7e\x5f\x79\x36\xf3\xd8' + b'\x3c\xef\x03\xd4\x50\x2a\xb7\xc9\x3a\x3c\xa6\xeb\x33\x8a\xd7\xfb\x8c\xbe' + b'\x31\xd3\x76\x72\x2e\x6b\x89\x1f\x27\x74\xe1\x02\xf7\x5d\x1e\x59\xe0\x6f' + b'\xe1\xdd\xcc\xf9\x90\xcb\x27\x59\xa0\xa3\x6f\x96\x73\x82\xcf\x4d\x71\x21' + b'\x1e\x4e\xbf\xcf\xd0\x29\xb2\xcf\x56\x6e\x21\x8f\xc8\x77\x95\xeb\x6a\xef' + b'\x3c\xdc\x00\x76\xb0\x94\x63\x70\x8c\x94\x5f\x7f\x1f\x83\xf9\x1f\xce\x64' + b'\x4f\x45\xbd\xf8\x13\x5a\x78\x0c\x1a\xdf\xe4\x0b\xdc\xba\x07\x33\xec\x53' + b'\xa9\xfb\x31\xe5\xcc\xc3\x87\x95\x90\xf5\x93\x8e\x02\xee\xe3\x56\xa6\xf9' + b'\xd3\xa3\x78\xa5\x08\x24\xbc\x1e\x2a\xa9\x99\x78\x4b\xe8\xbb\x73\x47\xce' + b'\x08\x0c\x5a\x01\xce\xe1\xc5\x9d\x85\xdc\xd4\x19\x59\xb5\x3d\xaf\xf5\xa4' + b'\xcf\x66\x12\xfd\x5b\xfe\x0a\x7a\xee\xf7\x61\x81\x0a\x06\x09\x5d\xcb\x10' + b'\xc5\x6f\x68\x4f\xed\xed\x97\xc7\x37\x1f\xde\x6d\x2d\xc2\x26\xa0\xe6\x94' + b'\x18\x06\xc3\xa8\xc0\x0f\x4c\xe3\x1c\x0a\x9b\x03\xf7\x10\xb6\x81\xab\x8a' + b'\x5d\xae\x0c\xaa\xa8\xab\xb1\x65\x55\x7f\x33\x52\xf6\x23\x0f\xac\x21\xa4' + b'\xc5\xf1\x44\x9d\xe0\xb7\x39\x6d\x2d\x48\x20\x8c\x81\x51\x50\x60\xef\xa1' + b'\x00\x71\xd9\xe3\xb5\x4f\xfd\x57\xb6\x0e\xfc\x40\x48\xd3\x00\x00\xa0\x7c' + b'\xe1\xd4\x00\x01\xdb\x03\x80\x43\x00\x00\x43\xc7\x89\x63\x3e\x30\x0d\x8b' + b'\x02\x00\x00\x00\x00\x01\x59\x5a' +) +ARM64_BCJ_CASE_INPUT = ( + b'\x00\x00\x00\x94\xff\xff\xff\x97\xfe\xff\xff\x97\xfd\xff\xff\x97\x03\x00' + b'\x00\x94\x02\x00\x00\x94\x01\x00\x00\x94\x00\x00\x00\x94\x01\x00\x00\x96' + b'\x00\x00\x00\x96\xff\xff\xff\x95\xfe\xff\xff\x95\x17\x11\x11\x95\x16\x11' + b'\x11\x95\x15\x11\x11\x95\x14\x11\x11\x95\x27\x22\x22\x96\x26\x22\x22\x96' + b'\x25\x22\x22\x96\x24\x22\x22\x96\xec\xff\xff\x97\xeb\xff\xff\x97\xea\xff' + b'\xff\x97\xe9\xff\xff\x97\x03\x00\x00\x90\x28\x00\x00\xb0\xad\x00\x00\xb0' + b'\x32\x01\x00\xb0\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55' + b'\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55' + b'\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55' + b'\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55' + b'\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55' + b'\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55' + b'\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55' + b'\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55' + b'\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55' + b'\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55' + b'\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55' + b'\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55' + b'\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55' + b'\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55' + b'\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55' + b'\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55' + b'\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55' + b'\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55' + b'\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55' + b'\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55' + b'\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55' + b'\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55' + b'\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55' + b'\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55' + b'\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55' + b'\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55' + b'\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55' + b'\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55' + b'\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55' + b'\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55' + b'\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55' + b'\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55' + b'\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55' + b'\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55' + b'\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55' + b'\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55' + b'\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55' + b'\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55' + b'\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55' + b'\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55' + b'\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55' + b'\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55' + b'\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55' + b'\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55' + b'\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55' + b'\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55' + b'\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55' + b'\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55' + b'\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55' + b'\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55' + b'\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55' + b'\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55' + b'\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55' + b'\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55' + b'\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55' + b'\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55' + b'\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55' + b'\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55' + b'\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55' + b'\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55' + b'\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55' + b'\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55' + b'\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55' + b'\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55' + b'\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55' + b'\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55' + b'\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55' + b'\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55' + b'\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55' + b'\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55' + b'\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55' + b'\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55' + b'\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55' + b'\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55' + b'\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55' + b'\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55' + b'\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55' + b'\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55' + b'\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55' + b'\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55' + b'\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55' + b'\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55' + b'\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55' + b'\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55' + b'\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55' + b'\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55' + b'\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55' + b'\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55' + b'\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55' + b'\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55' + b'\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55' + b'\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55' + b'\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55' + b'\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55' + b'\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55' + b'\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55' + b'\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55' + b'\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55' + b'\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55' + b'\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55' + b'\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55' + b'\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55' + b'\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55' + b'\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55' + b'\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55' + b'\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55' + b'\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55' + b'\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55' + b'\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55' + b'\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55' + b'\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55' + b'\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55' + b'\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55' + b'\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55' + b'\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55' + b'\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55' + b'\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55' + b'\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55' + b'\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55' + b'\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55' + b'\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55' + b'\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55' + b'\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55' + b'\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55' + b'\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55' + b'\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55' + b'\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55' + b'\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55' + b'\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55' + b'\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55' + b'\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55' + b'\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55' + b'\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55' + b'\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55' + b'\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55' + b'\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55' + b'\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55' + b'\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55' + b'\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55' + b'\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55' + b'\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55' + b'\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55' + b'\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55' + b'\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55' + b'\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55' + b'\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55' + b'\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55' + b'\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55' + b'\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55' + b'\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55' + b'\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55' + b'\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55' + b'\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55' + b'\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55' + b'\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55' + b'\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55' + b'\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55' + b'\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55' + b'\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55' + b'\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55' + b'\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55' + b'\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55' + b'\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55' + b'\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55' + b'\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55' + b'\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55' + b'\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55' + b'\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55' + b'\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55' + b'\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55' + b'\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55' + b'\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55' + b'\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55' + b'\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55' + b'\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55' + b'\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55' + b'\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55' + b'\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55' + b'\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55' + b'\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55' + b'\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55' + b'\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55' + b'\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55' + b'\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55' + b'\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55' + b'\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55' + b'\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55' + b'\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55' + b'\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55' + b'\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55' + b'\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55' + b'\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55' + b'\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55' + b'\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55' + b'\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55' + b'\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55' + b'\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55' + b'\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55' + b'\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55' + b'\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55' + b'\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55' + b'\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55' + b'\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55' + b'\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55' + b'\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55' + b'\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55' + b'\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55' + b'\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55' + b'\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55' + b'\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55' + b'\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55' + b'\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55' + b'\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55' + b'\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55' + b'\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55' + b'\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55' + b'\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55' + b'\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55' + b'\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55' + b'\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55' + b'\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55' + b'\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x0b\x10\x00\x90\x30\x10\x00\xb0' + b'\xf5\x17\x00\xd0\xfa\x17\x00\xf0\x1f\x18\x00\x90\x24\x18\x00\xb0\xe9\x1f' + b'\x00\xd0\xee\x1f\x00\xf0\x13\x20\x00\x90\x38\x20\x00\xb0\xfd\x27\x00\xd0' + b'\xe2\x27\x00\xf0\x07\x38\x00\x90\x2c\x38\x00\xb0\xf1\x3f\x00\xd0\xf6\x3f' + b'\x00\xf0\x1b\x40\x00\x90\x20\x40\x00\xb0\xe5\x47\x00\xd0\xea\x47\x00\xf0' + b'\x0f\x78\x00\x90\x34\x78\x00\xb0\xf9\x7f\x00\xd0\xfe\x7f\x00\xf0\x03\x80' + b'\x00\x90\x28\x80\x00\xb0\xed\x87\x00\xd0\xf2\x87\x00\xf0\x17\xf8\x00\x90' + b'\x3c\xf8\x00\xb0\xe1\xff\x00\xd0\xe6\xff\x00\xf0\x0b\x00\x01\x90\x30\x00' + b'\x01\xb0\xf5\x07\x01\xd0\xfa\x07\x01\xf0\x1f\xf8\x01\x90\x24\xf8\x01\xb0' + b'\xe9\xff\x01\xd0\xee\xff\x01\xf0\x13\x00\x02\x90\x38\x00\x02\xb0\xfd\x07' + b'\x02\xd0\xe2\x07\x02\xf0\x07\xf8\x03\x90\x2c\xf8\x03\xb0\xf1\xff\x03\xd0' + b'\xf6\xff\x03\xf0\x1b\x00\x04\x90\x20\x00\x04\xb0\xe5\x07\x04\xd0\xea\x07' + b'\x04\xf0\x0f\xf8\x07\x90\x34\xf8\x07\xb0\xf9\xff\x07\xd0\xfe\xff\x07\xf0' + b'\x03\x00\x08\x90\x28\x00\x08\xb0\xed\x07\x08\xd0\xf2\x07\x08\xf0\x17\xf8' + b'\x0f\x90\x3c\xf8\x0f\xb0\xe1\xff\x0f\xd0\xe6\xff\x0f\xf0\x0b\x00\x10\x90' + b'\x30\x00\x10\xb0\xf5\x07\x10\xd0\xfa\x07\x10\xf0\x1f\xf8\x1f\x90\x24\xf8' + b'\x1f\xb0\xe9\xff\x1f\xd0\xee\xff\x1f\xf0\x13\x00\x20\x90\x38\x00\x20\xb0' + b'\xfd\x07\x20\xd0\xe2\x07\x20\xf0\x07\xf8\x3f\x90\x2c\xf8\x3f\xb0\xf1\xff' + b'\x3f\xd0\xf6\xff\x3f\xf0\x1b\x00\x40\x90\x20\x00\x40\xb0\xe5\x07\x40\xd0' + b'\xea\x07\x40\xf0\x0f\xf8\x7f\x90\x34\xf8\x7f\xb0\xf9\xff\x7f\xd0\xfe\xff' + b'\x7f\xf0\x03\x00\x80\x90\x28\x00\x80\xb0\xed\x07\x80\xd0\xf2\x07\x80\xf0' + b'\x17\xf8\xff\x90\x3c\xf8\xff\xb0\xe1\xff\xff\xd0\xe6\xff\xff\xf0\x55\x55' + b'\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55' + b'\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55' + b'\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55' + b'\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55' + b'\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55' + b'\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55' + b'\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55' + b'\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55' + b'\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55' + b'\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55' + b'\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55' + b'\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55' + b'\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55' + b'\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55' + b'\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55' + b'\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55' + b'\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55' + b'\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55' + b'\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55' + b'\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55' + b'\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55' + b'\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55' + b'\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55' + b'\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55' + b'\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55' + b'\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55' + b'\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55' + b'\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55' + b'\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55' + b'\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55' + b'\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55' + b'\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55' + b'\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55' + b'\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55' + b'\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55' + b'\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55' + b'\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55' + b'\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55' + b'\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55' + b'\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55' + b'\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55' + b'\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55' + b'\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55' + b'\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55' + b'\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55' + b'\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55' + b'\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55' + b'\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55' + b'\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55' + b'\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55' + b'\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55' + b'\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55' + b'\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55' + b'\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55' + b'\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55' + b'\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55' + b'\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55' + b'\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55' + b'\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55' + b'\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55' + b'\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55' + b'\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55' + b'\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55' + b'\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55' + b'\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55' + b'\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55' + b'\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55' + b'\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55' + b'\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55' + b'\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55' + b'\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55' + b'\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55' + b'\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55' + b'\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55' + b'\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55' + b'\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55' + b'\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55' + b'\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55' + b'\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55' + b'\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55' + b'\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55' + b'\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55' + b'\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55' + b'\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55' + b'\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55' + b'\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55' + b'\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55' + b'\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55' + b'\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55' + b'\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55' + b'\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55' + b'\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55' + b'\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55' + b'\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55' + b'\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55' + b'\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55' + b'\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55' + b'\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55' + b'\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55' + b'\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55' + b'\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55' + b'\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55' + b'\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55' + b'\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55' + b'\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55' + b'\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55' + b'\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55' + b'\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55' + b'\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55' + b'\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55' + b'\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55' + b'\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55' + b'\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55' + b'\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55' + b'\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55' + b'\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55' + b'\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55' + b'\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55' + b'\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55' + b'\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55' + b'\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55' + b'\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55' + b'\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55' + b'\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55' + b'\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55' + b'\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55' + b'\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55' + b'\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55' + b'\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55' + b'\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55' + b'\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55' + b'\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55' + b'\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55' + b'\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55' + b'\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55' + b'\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55' + b'\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55' + b'\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55' + b'\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55' + b'\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55' + b'\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55' + b'\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55' + b'\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55' + b'\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55' + b'\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55' + b'\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55' + b'\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55' + b'\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55' + b'\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55' + b'\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55' + b'\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55' + b'\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55' + b'\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55' + b'\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55' + b'\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55' + b'\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55' + b'\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55' + b'\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55' + b'\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55' + b'\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55' + b'\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55' + b'\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55' + b'\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55' + b'\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55' + b'\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55' + b'\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55' + b'\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55' + b'\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55' + b'\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55' + b'\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55' + b'\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55' + b'\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55' + b'\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55' + b'\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55' + b'\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55' + b'\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55' + b'\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55' + b'\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55' + b'\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55' + b'\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55' + b'\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55' + b'\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55' + b'\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55' + b'\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55' + b'\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55' + b'\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55' + b'\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55' + b'\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55' + b'\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55' + b'\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55' + b'\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55' + b'\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55' + b'\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55' + b'\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55' + b'\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55' + b'\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55' + b'\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55' + b'\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55' + b'\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55' + b'\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55' + b'\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55' + b'\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55' + b'\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55' + b'\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55' + b'\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55' + b'\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55' + b'\x55\x55\x0b\x10\x00\x90\x30\x10\x00\xb0\xf5\x17\x00\xd0\xfa\x17\x00\xf0' + b'\x1f\x18\x00\x90\x24\x18\x00\xb0\xe9\x1f\x00\xd0\xee\x1f\x00\xf0\x13\x20' + b'\x00\x90\x38\x20\x00\xb0\xfd\x27\x00\xd0\xe2\x27\x00\xf0\x07\x38\x00\x90' + b'\x2c\x38\x00\xb0\xf1\x3f\x00\xd0\xf6\x3f\x00\xf0\x1b\x40\x00\x90\x20\x40' + b'\x00\xb0\xe5\x47\x00\xd0\xea\x47\x00\xf0\x0f\x78\x00\x90\x34\x78\x00\xb0' + b'\xf9\x7f\x00\xd0\xfe\x7f\x00\xf0\x03\x80\x00\x90\x28\x80\x00\xb0\xed\x87' + b'\x00\xd0\xf2\x87\x00\xf0\x17\xf8\x00\x90\x3c\xf8\x00\xb0\xe1\xff\x00\xd0' + b'\xe6\xff\x00\xf0\x0b\x00\x01\x90\x30\x00\x01\xb0\xf5\x07\x01\xd0\xfa\x07' + b'\x01\xf0\x1f\xf8\x01\x90\x24\xf8\x01\xb0\xe9\xff\x01\xd0\xee\xff\x01\xf0' + b'\x13\x00\x02\x90\x38\x00\x02\xb0\xfd\x07\x02\xd0\xe2\x07\x02\xf0\x07\xf8' + b'\x03\x90\x2c\xf8\x03\xb0\xf1\xff\x03\xd0\xf6\xff\x03\xf0\x1b\x00\x04\x90' + b'\x20\x00\x04\xb0\xe5\x07\x04\xd0\xea\x07\x04\xf0\x0f\xf8\x07\x90\x34\xf8' + b'\x07\xb0\xf9\xff\x07\xd0\xfe\xff\x07\xf0\x03\x00\x08\x90\x28\x00\x08\xb0' + b'\xed\x07\x08\xd0\xf2\x07\x08\xf0\x17\xf8\x0f\x90\x3c\xf8\x0f\xb0\xe1\xff' + b'\x0f\xd0\xe6\xff\x0f\xf0\x0b\x00\x10\x90\x30\x00\x10\xb0\xf5\x07\x10\xd0' + b'\xfa\x07\x10\xf0\x1f\xf8\x1f\x90\x24\xf8\x1f\xb0\xe9\xff\x1f\xd0\xee\xff' + b'\x1f\xf0\x13\x00\x20\x90\x38\x00\x20\xb0\xfd\x07\x20\xd0\xe2\x07\x20\xf0' + b'\x07\xf8\x3f\x90\x2c\xf8\x3f\xb0\xf1\xff\x3f\xd0\xf6\xff\x3f\xf0\x1b\x00' + b'\x40\x90\x20\x00\x40\xb0\xe5\x07\x40\xd0\xea\x07\x40\xf0\x0f\xf8\x7f\x90' + b'\x34\xf8\x7f\xb0\xf9\xff\x7f\xd0\xfe\xff\x7f\xf0\x03\x00\x80\x90\x28\x00' + b'\x80\xb0\xed\x07\x80\xd0\xf2\x07\x80\xf0\x17\xf8\xff\x90\x3c\xf8\xff\xb0' + b'\xe1\xff\xff\xd0\xe6\xff\xff\xf0' +) + +RISCV_BCJ_CASE_FILTERS = [{"id": lzma.FILTER_RISCV}, {"id": lzma.FILTER_LZMA2}] +# Test case from xz 5.6.1 tests/files/good-1-riscv-lzma2-1.xz +RISCV_BCJ_CASE_COMPRESSED = ( + b'\xfd\x37\x7a\x58\x5a\x00\x00\x04\xe6\xd6\xb4\x46\x02\x01\x0b\x00\x21\x01' + b'\x08\x00\x07\x0b\x22\x3a\xe0\x20\x12\x1c\xbf\x39\x00\x77\x80\x30\x7f\x0b' + b'\xb1\x8b\xe9\x84\xce\x87\xa6\x19\xc5\x30\xfd\x82\xb7\x7c\x82\xc7\xf7\xb4' + b'\x7e\x2e\x07\x18\xf5\x4f\xac\xf2\x0d\xd7\xc5\xfc\x82\x44\x1e\xe0\x22\xb0' + b'\xea\x5f\x18\x25\x92\x0f\x27\xbb\xa3\x27\xcb\xae\x80\x71\x6b\xdd\x8a\x09' + b'\x3c\x01\xe5\x10\x79\x0e\x73\x34\x07\xbe\x1a\x6b\xea\xe5\xee\x95\xbd\x30' + b'\xc5\xea\xca\xf7\x94\x37\x99\xac\x1e\x04\xc4\xb0\xa4\xe7\x8e\x6f\x3f\x74' + b'\x4c\x2a\x0c\x8b\x0a\x1d\x2b\x72\x57\xb6\x1e\xdd\x84\xb8\xb3\xa9\x25\x0e' + b'\x8a\x5b\x11\xd2\xd0\x8f\x50\x75\x48\x2c\xfc\x5e\x23\xc1\x68\x9b\xa7\xd4' + b'\xe6\x97\xe9\x41\xfc\xec\x58\xd1\x6c\x9e\xc1\x19\xaa\xe8\xaf\x14\x4e\x69' + b'\xc3\xe6\x9b\xb1\x61\x1a\xd4\x88\xaf\x4d\x68\x82\xdf\x0c\xa4\x5a\xd7\x12' + b'\x99\xf0\x9c\x4b\x06\x3d\x29\x4e\xbd\x3e\xdf\x40\xd0\x48\x09\x39\xcc\x19' + b'\xfb\x18\x5c\x02\x0e\x85\x21\x2d\x0c\x94\x25\x0c\x17\xc7\xb1\xaf\xb9\xb3' + b'\x61\x14\x98\x39\x7a\x05\x79\xe9\x94\x3c\x0a\xec\xf0\x6f\xb1\xf7\x38\x80' + b'\x2a\xf8\xfb\x57\x32\x6c\x5d\x43\xee\x9c\x35\x07\x27\x42\x6a\x1f\x4e\x74' + b'\x8f\xa3\x7e\x64\x99\xde\xa7\xe8\x9a\xd6\xd5\x7f\xe3\x90\x47\xee\x4b\x5d' + b'\x97\xca\x24\xfe\x81\xea\xfc\x92\x2d\xac\x9a\x64\x5f\xa2\x7f\x46\x89\xb5' + b'\x75\xe6\xcf\xfc\x68\x47\x6f\xdd\x7c\x2d\x02\xae\xb5\xe9\xa0\xf7\xc3\x22' + b'\xf5\x21\x2e\xcc\x2e\x37\x0d\xd5\x0b\xef\xd5\x14\x1e\x7d\xd5\x23\x18\xef' + b'\x7b\x62\xd6\xca\x2b\x01\x1d\x5e\x64\x69\x94\xe2\x6e\x2d\xc4\xd7\x07\xbf' + b'\xdc\x73\x1c\xc2\x26\xdd\x7d\x58\x2a\xb3\xbb\xaa\x2a\x55\xb4\xfb\x3f\x41' + b'\xa9\x65\xdb\xdf\xcc\x1d\xa0\xdd\xf1\x0a\x83\x8a\x09\x03\x02\xd2\x85\xb6' + b'\xf6\x59\xf3\x7b\xfb\x55\xdb\x1b\x02\x63\xd0\x3c\xc7\x65\x51\xa2\xd5\xd9' + b'\x41\x86\x43\x15\x1c\x54\xd6\xad\xb3\x1a\x24\xac\x07\xe9\x6c\x55\x40\xff' + b'\x9b\x11\x57\x49\x8a\x29\x00\x2f\x80\x6d\xce\x78\xf1\x02\x07\xe8\xeb\x14' + b'\xc2\xf8\x9c\x04\x4e\x64\xde\xbc\xed\x35\x7c\x4d\x90\xfe\xfa\x2a\x04\xd8' + b'\x41\x4a\x3d\x7c\xd0\x88\xc3\x40\x37\xaf\xed\x63\x98\x07\xad\x72\x3c\xb7' + b'\xcf\x18\x3d\x0e\x05\x15\xc3\x95\xdd\x09\x93\xd8\xc8\xed\x15\x9f\xc2\xda' + b'\x95\x14\x1e\x4c\x27\xbe\xc0\xe0\x5e\xc4\xa4\x0e\xd8\x8d\x26\x64\x38\x62' + b'\x6b\xab\xec\xeb\x36\x9c\x72\xc5\xe5\xf6\x49\x81\x06\xfd\xad\xe5\x19\xd7' + b'\x9f\xd1\x15\x73\xc2\x30\x90\x27\xff\xc4\x9b\xda\x35\x72\xe0\x11\xd4\xba' + b'\x40\xbc\x01\x23\x75\x6a\xc4\xf4\x9a\xcc\xf8\xcd\x0b\xa2\xd9\xf5\x67\x8e' + b'\xca\xe7\x2e\x5f\x43\x9c\xe2\x83\xac\xcd\xb4\xfc\xf0\x11\x73\xd8\xb9\xd3' + b'\xad\xbf\x9b\xc5\x83\xaf\x51\x7d\xe8\x95\x51\x0e\x51\x96\x06\xea\x82\x58' + b'\xac\x5c\xe6\xa9\xba\xa5\xf9\xe9\x98\x62\x0b\x8a\xd2\xf0\x13\x82\xcb\x77' + b'\x06\x33\x55\xdd\x50\xf1\xe3\x1e\xfc\x99\x14\xd2\xdb\xb9\x8b\x54\x3b\x35' + b'\xa1\xd1\xa6\xc9\x69\xca\xd9\x58\x0c\xa1\x59\x98\x68\x63\x8c\x07\x34\x37' + b'\xb0\x3f\xd2\x6f\x78\x40\x9e\x23\x47\x83\x9e\x82\xb1\xf5\x20\x53\x87\xf6' + b'\x7c\x3e\x24\x76\xcb\x03\x16\xd9\xd3\x39\x64\xbd\xf9\xf6\x24\xd4\x41\xfa' + b'\x2f\x06\xf8\xd3\x6c\x8e\x30\x8e\x46\x94\x74\x28\xb1\xe2\x2a\xcd\x4a\x7a' + b'\x27\x9b\x99\x64\x95\x10\xcf\x3e\x9a\x48\x73\xe0\xf6\xbc\xcc\x7d\xbe\xea' + b'\x1c\x09\xb4\xbb\x2a\xe4\x53\x91\xac\x2f\x54\xf9\x25\x22\x34\x45\x60\xcd' + b'\x63\xa8\x8c\xea\xfa\x6c\x2c\x2c\x05\x06\x38\xa4\x08\x09\x51\x31\xcf\x98' + b'\x48\x4f\xfe\x3b\x57\x42\x2c\xcb\xe5\x59\xc4\x11\x86\xed\x20\xbd\x99\x68' + b'\x76\xa4\x62\xad\x10\xad\xc8\x60\x38\x83\xd3\xf1\x99\xf3\x8e\xe4\xda\xee' + b'\xcc\x86\xfe\x7d\x27\xc6\x0a\xbc\x4a\xa1\x81\x12\xca\x61\xb7\x64\x9f\x8d' + b'\x5e\xb7\x2d\xd7\x23\xfe\x28\x57\x42\x38\xc1\x35\x02\x70\xb5\xb3\x89\xf0' + b'\x37\xd9\xf0\x61\xe0\x53\x04\x8c\xbf\x4b\xe1\x60\x52\x22\x9f\x37\xad\xda' + b'\x9a\xab\xdd\x29\xb1\x3a\xf0\x53\xe1\x8e\xb3\x96\xb2\xcf\xc2\x10\xec\x20' + b'\x7d\x2e\xd1\x65\x83\x85\xac\x63\x4c\x14\xfa\x84\xa1\xe0\x70\x10\xfc\xa6' + b'\xe0\xf0\xad\x1f\xc8\xa4\xe4\xa2\x91\x79\x25\xfb\xbd\xf5\x36\x4a\xb1\x02' + b'\x3a\x67\xfd\x69\x3b\xfd\xe2\x59\xbe\x5f\x93\xa3\x4d\x09\xa8\xbe\x5e\x4c' + b'\xb3\x22\xb6\x6d\x67\x64\xf3\xb7\xd3\xe9\x65\x2e\xad\x0c\x9f\x6b\xf0\xc1' + b'\x96\x2f\xfb\xa3\x0c\xe7\x23\xaa\x52\xac\x9d\xf2\x7f\x69\xab\x28\x39\x61' + b'\xf4\x2b\x42\xbc\x69\x7d\x69\xb9\xd0\xba\x37\xe3\xfc\x3b\xa8\xe6\x9c\x81' + b'\x8f\x28\xa3\xde\x1c\xf3\x87\x61\x62\xcb\x7f\x48\x22\x80\xdf\xb7\x02\x5a' + b'\x31\x3b\xf2\xdc\x8a\xde\xd6\xc8\xf9\x60\x11\xda\x5c\xe9\x4c\x32\xc0\xea' + b'\x1d\x35\x54\x60\xea\x8f\xe7\x39\xe6\x75\xc0\x72\x04\x2a\x74\x0a\x52\x04' + b'\x7c\x6f\xba\xfb\xa9\xa7\x3f\x99\x04\xbe\xc3\x6f\x15\x57\x37\x14\x89\xe2' + b'\x70\x1d\x74\x4b\x8c\xe4\x07\x6f\x7b\x80\xe9\xad\x89\xc7\x9e\xe5\x43\x54' + b'\xdf\x47\xee\x41\x53\x94\x6b\x83\x04\x28\x65\x9a\x68\x01\x76\xe3\xe2\xe6' + b'\xb1\xf6\x0c\x70\x29\xbe\x13\xae\xcd\x6b\x63\x32\xb4\xe7\x29\xfe\xee\x17' + b'\x7b\x29\x6c\x8a\xe5\x1d\x1a\x1f\x31\x3e\xa8\xfe\xf6\xa3\xce\xfb\x2e\x5e' + b'\x4f\x12\x17\x88\x90\xcc\x64\x9b\x91\x31\xe6\x61\x06\xc3\x88\x4a\x15\x24' + b'\x3c\x13\x69\xfd\x9e\xb1\x93\xb1\xe0\x15\xd5\x1c\xca\xea\x20\xa3\x03\xce' + b'\x7e\x31\xf1\x52\x7d\x1c\xc5\xb3\x13\x7e\x66\xe0\x4a\x4e\x6b\xae\x96\xfb' + b'\x98\x79\x7e\x78\xf5\xf5\xab\x95\x57\x07\x35\x7a\xb4\x2c\xdf\xfd\x93\x1d' + b'\x67\x7d\x3f\xb7\x6a\x1b\x66\x53\x49\xb3\xa8\xc9\x8e\x89\xcf\x5b\xe2\xd8' + b'\x9d\x7b\xf3\xbb\x62\x95\xd6\x2f\xb4\x2d\x8e\x93\x8b\x21\x6e\x89\x26\xf2' + b'\xa0\x3d\x94\x83\x4f\xfa\x74\x20\xba\x0d\xe8\x67\x7b\x48\xed\xc7\x5b\x32' + b'\x2f\xc6\xaa\x79\xee\xca\xe6\xff\x62\x85\x57\xc4\x9f\xb3\xf8\x5b\x2f\xda' + b'\xd0\x95\x0e\x8b\xd4\xf6\xf6\xa0\x78\x8e\x1c\x66\xdf\x45\xc6\x22\x6f\x22' + b'\xf7\xa6\x4e\x6a\x16\xb0\x78\x72\xce\x1c\xb3\xb5\x2c\x35\xa8\x7a\xe4\x2f' + b'\x62\x52\x74\x69\x90\xf8\xea\xf3\xac\x44\x84\x45\x36\x5a\x9f\x7b\x0b\x78' + b'\x6f\xe1\x9b\x1f\x61\xbb\x49\x4b\xe5\xe0\x39\xc2\x60\xfd\xc4\x01\x42\xec' + b'\x4e\xc8\x5b\xf3\xf3\xec\xd6\x66\x3a\xad\x0c\xa9\xb0\xc2\xcf\xae\xc2\xd8' + b'\x67\x96\x95\x6e\xb9\xc7\x21\xb1\x24\x64\xbc\x2b\x0c\x87\x87\xa8\x8a\x88' + b'\xf4\xf8\x39\x15\x82\x58\xff\x4d\x31\x61\x96\x38\xe0\x12\x4c\x79\xbb\xcf' + b'\x9e\x94\xce\x7a\xcd\xcb\xfd\xc4\xb5\xe1\x27\x8e\x6f\x07\xbe\x3c\x23\x8a' + b'\x75\x6d\x09\x23\x3b\xfa\xdd\x7a\x82\x5a\xbf\x96\xf2\xe8\x5e\xad\xe0\xdc' + b'\x60\x02\x1f\x81\x12\x73\x71\xb2\x4e\xf7\xbe\x19\x81\x82\xc0\xb1\x03\x35' + b'\x93\xad\x3d\xc6\x08\x71\xfa\xfc\xe7\x41\xb5\x01\x4c\x99\x06\x78\x2f\xbd' + b'\x0d\x08\x63\x67\x59\xa9\xdd\x1d\x9c\xab\xb5\x98\xa8\xd2\x74\xca\x40\x1f' + b'\x39\xed\x5e\x9b\x4c\xdb\x8f\x2e\x8f\x3d\x75\xb7\x37\xd0\xbb\xc3\x43\x30' + b'\xee\x9c\x2f\xb0\x51\x96\x49\x10\xa3\xa2\xa5\xe8\xaf\x95\xc4\xab\xdd\x5e' + b'\x9c\x5f\x65\xb0\x4f\xa6\xb6\x66\x77\x7e\x60\xe3\xf2\xfb\x26\x27\xd1\x75' + b'\x1f\xad\xdf\x7f\x0d\xba\x59\xa6\xd5\x77\x81\x2a\xaf\xce\xc7\x1c\xdd\xf3' + b'\x70\x8d\x66\x9d\xc6\x8b\xdc\xaa\xee\x14\xd0\xbf\xac\x17\xa1\x95\x7e\x3c' + b'\xb5\xdf\x38\x33\x64\xe4\x19\x2a\x52\x1e\x99\x28\x2c\xc7\x75\x6b\x82\xdf' + b'\x99\x6f\x0a\x8b\x2a\x71\x83\x48\x68\xf4\x38\xbc\xd8\x0f\xf0\xbc\xed\x46' + b'\x59\xaf\x17\x5f\x30\xd3\x9b\x4d\x82\x45\x42\x24\xce\xf5\x2a\xbc\xf1\x3e' + b'\x52\x59\xd3\xe4\xa4\xff\x18\xe0\x8b\xb2\x48\xbb\xb7\xdd\xee\x6e\x86\xd2' + b'\x3a\xf1\x8c\x0b\x65\x42\xb7\x52\x2b\x19\xf9\xc6\x5f\x2d\x2a\x87\xef\x6e' + b'\x49\x2a\x77\x1c\x68\x6c\xb5\xbf\x4d\x38\xe4\x97\xac\xd4\x08\x4d\x1f\x6a' + b'\xf9\x0e\x5c\xd3\x08\xee\xcf\xf1\xd0\x2a\x2f\x15\x30\x77\xf5\xa3\x48\xc0' + b'\x08\xaf\xd1\x18\xe6\x08\xe3\x0b\x5d\xb6\xea\x8d\x51\xf3\x2f\xbe\xad\xe0' + b'\x4c\x3f\xdc\xc4\x27\x34\x87\x4f\xa5\x86\x24\xf4\xb8\x4d\xa0\x01\x5e\x7d' + b'\x97\x78\x77\x83\x52\x90\xd6\x90\xfe\x25\xa2\x79\xc8\xa5\xe8\x9f\x74\x44' + b'\x62\x0f\x12\x99\xcd\xee\xc4\x2e\x45\x9c\x6b\xce\x24\x93\x23\xcb\xf0\x73' + b'\xb6\x1d\xe1\x32\x0b\x87\x82\x03\x25\x6b\x17\xf7\xf4\xd2\x16\xa9\x82\x1f' + b'\x79\x87\x82\x32\xce\x9b\x93\xee\x4f\xd7\x79\x6b\x30\xbd\x75\xc9\x22\xa1' + b'\xd0\x5d\xa2\xd2\x01\x20\x6e\x1a\x3f\x16\xd9\x9a\x7d\x69\xb4\xdd\x61\x52' + b'\x6d\xee\x78\x9d\x0e\x6a\x64\xe8\x99\xca\xf3\x01\xee\x46\xa7\xf5\x0c\x54' + b'\x54\xbb\x90\xb7\x1f\x32\x77\x33\x00\x01\x0c\xd7\xb9\xe1\xd6\xe0\xf9\x2b' + b'\x8d\x2f\x18\x47\x4a\x32\x36\x95\xdd\xfe\xd1\x9e\x3d\xba\xc2\x3d\xa2\x56' + b'\x90\x8a\xfa\x68\x7d\x98\x93\xed\xfc\xa8\xf7\x00\x02\xff\xd4\x76\xd1\x0e' + b'\xe9\xce\xc3\xa7\x03\x5d\xf2\x62\x20\x79\x99\x23\x89\xc6\x3c\xde\xf4\xbb' + b'\xe3\x7d\x59\xce\x20\xe2\x16\x29\x82\xd4\x83\xb1\x2a\xfe\x59\x81\x16\xbd' + b'\x9b\xab\x71\x30\x7c\x91\x73\xe5\xce\x52\x55\x53\xcf\x9c\x06\xb1\x21\x2a' + b'\x09\x4a\xc9\xcf\xb3\x8a\xd8\xa7\x29\xb5\xc4\x9d\xb5\xb2\x22\x22\xca\x6b' + b'\x01\xf8\x3b\x26\x9d\xeb\x55\xef\xe2\xa3\x9e\x24\xd2\x10\xdb\x05\x9b\x36' + b'\x9c\x5f\x1c\xf0\xf4\xd3\x44\xcb\x52\xe2\x77\x14\x8d\x7c\x87\x82\xe2\x0c' + b'\xea\x33\x47\xc6\xa2\x5c\xa4\xbd\x6c\xf0\x9c\x80\x7d\x23\x7c\x91\x51\x94' + b'\x67\x65\xeb\xde\x00\x13\x97\x3c\x7d\x93\x70\xbd\x78\x61\x4f\x98\xd5\xb0' + b'\x8b\x3f\xd1\xaf\xa2\xc4\xaa\x3c\xcc\x2b\x84\x75\x91\x9f\x0e\xc5\xef\xb6' + b'\x19\x63\xf2\x3e\x6d\x1f\x1d\x07\x41\x96\x30\xfb\xfe\x99\x93\x5b\x67\x78' + b'\xfd\x0d\x24\x5d\x6a\xe6\x8f\xe7\x31\x30\x94\xff\x6a\xf7\x56\xf0\x83\xbf' + b'\x77\x76\x67\xec\xcb\x77\x47\x31\x05\xf7\x4c\xe3\x6c\xa3\x02\x96\x2d\x99' + b'\x5a\x91\x04\x38\x2a\xb6\xa3\x2b\xcd\x09\x47\xeb\x0e\x70\x2c\xbb\x42\x50' + b'\xc1\x0f\xfe\x7a\xbc\x6d\x4a\xa6\x6a\x1f\x09\x27\xda\x63\xba\x0d\x60\x01' + b'\xe2\xdb\xdf\xd0\xb1\x91\x96\x7d\x37\x55\x59\x25\x14\x7b\xb3\x9d\xb7\xc6' + b'\x06\xc8\x36\x04\x13\x63\x12\x0f\xb5\x79\x6c\x62\xb0\xb1\x7b\x1f\x82\x0b' + b'\xcd\x84\xc3\xeb\xcc\x6b\x24\x72\x4b\xd6\xe7\x4d\x23\x5d\xcf\x2d\x0c\xde' + b'\xb2\x2f\x66\x08\xdc\x93\x84\x66\x99\x41\x16\x01\xd7\x1d\x15\x57\x53\x77' + b'\x7e\x67\x1c\x16\x70\xb1\x67\xf4\xca\x80\xf2\x3c\x8b\xe5\x50\x7a\xe8\x96' + b'\x9d\xe9\xcd\x80\xd7\xa7\x16\x6e\xa7\x56\x98\xa0\x9c\xb5\x52\x9b\x3b\xf4' + b'\x97\x58\xe8\x7f\x8c\xe6\xc4\xe2\x67\x9d\x12\x4c\x68\x43\xe1\x26\x55\xb7' + b'\xa6\x33\x84\x74\x30\xd0\x42\xb0\x20\xb7\x6f\x4d\x52\xe7\x9f\xf7\x1c\x2c' + b'\x66\x18\x00\xed\xe7\x15\xaf\xe8\x38\xb8\x8d\x01\x86\xbf\xc6\x7b\x1f\x71' + b'\x13\x28\x17\x3c\x01\x42\xe8\xd6\x85\x21\xc0\xcd\x0b\x19\xc2\xad\x5c\x16' + b'\x39\x1c\x48\xc9\xcf\xd1\xa1\x8e\xfb\xb3\x77\x67\xec\x89\x7c\xef\x96\x69' + b'\xbd\x05\x30\xf2\xbe\x27\x24\x2a\xa4\x23\xe7\x4e\x87\xd7\x06\x1c\x3c\x1e' + b'\x2b\xd9\x6c\x67\xd0\x53\x2d\x8c\x28\xc9\xfa\x3b\x0d\xf7\xde\x90\x76\xe4' + b'\xe3\x29\xdf\x40\x2b\x95\x25\x3e\x88\x23\x04\xbf\xee\xb8\x7b\x69\xc6\x11' + b'\x41\x24\xa9\x18\xd5\x8c\xff\x57\xe0\xc8\x3f\x17\x8f\x53\x9c\x14\x67\xaa' + b'\xb9\xdd\x1f\x60\x91\xe5\x67\xb2\x34\x20\x93\x3c\xe4\xd4\x23\xf9\x0c\xb2' + b'\x9d\x8a\x25\x78\x4e\xbb\xbd\x73\x20\xe6\x16\x66\x3e\x4c\xed\x0e\x3f\xdb' + b'\x4b\x3e\x4e\x4e\x84\x30\xaf\xe4\x60\x1b\xa0\x2f\x39\x7a\xd4\x86\x47\xbe' + b'\x64\x13\x59\xf0\x61\x9c\x72\x31\xc9\xc7\x6f\x40\xa3\x33\xbf\x62\x81\x5c' + b'\xbb\x53\x88\xf8\x0e\x64\xd0\x2f\x9e\x11\x5c\x6f\x2d\x16\xf8\x4e\xc6\x0d' + b'\xec\xbf\x60\xe5\x8b\xe5\xe8\x12\x9a\xf3\xa6\x60\x8e\x04\x9a\x56\x3f\x59' + b'\x63\x0f\xc2\xc7\x92\x80\x71\xb7\xd7\xac\x2b\x67\xfa\xfa\x91\xbe\x4d\x03' + b'\x61\xe7\xa2\x8d\xa0\x13\x77\x45\x7e\x54\xec\x64\x86\x78\x39\x5e\x7f\x2e' + b'\x0b\x14\x53\x76\x05\xc1\x7f\x47\xb5\xe0\x52\x87\x0b\xf8\xaf\x8d\x63\x43' + b'\x87\x5f\x22\x81\x69\xae\x30\xbe\xfa\x79\x88\x8c\xba\xf8\x72\x47\x2c\x0f' + b'\x2e\xc8\x3f\x55\x1f\x17\xdd\x07\x25\xc3\xd1\x6a\x76\xeb\xca\x4b\xd7\x86' + b'\x3b\x3b\x5c\xea\xb6\x2c\x01\x25\x17\x4a\x46\x7d\x78\xa1\x14\xf0\x43\x36' + b'\x6c\x1e\x93\x00\x03\x1d\x53\x55\x30\xa2\xd2\x66\xe7\x6e\xc3\x45\x0a\x13' + b'\x18\x2a\x5e\x9a\xf9\xb9\xfb\x3e\xbc\xac\x03\x36\xa8\xae\x4a\x1e\x0c\x2c' + b'\x26\x40\xe1\xe9\x2b\xe6\x82\xca\x9c\x15\x11\x3a\x52\x7d\x10\xc6\x11\x34' + b'\x37\x9b\xf7\x59\x4f\x31\x4b\xd2\x3b\x98\xfd\xdf\x32\x87\xf5\x54\x77\xf2' + b'\x3c\xdb\x23\x95\x70\x5d\x60\x0c\x4a\xf5\x80\xf2\xfc\x96\xad\x70\x07\xcc' + b'\x8d\xb4\x91\x13\x25\xee\x68\x04\xdc\x3f\x21\xfb\x8e\x8b\xd5\x42\xcc\x5b' + b'\x26\xa0\xcc\xc4\x4f\xb5\x02\x1a\x1f\x29\x64\x6b\xb5\x8c\xa6\x73\x6e\x27' + b'\xd6\x69\x71\xf1\xde\xec\x4b\x16\x5f\x1d\xf6\xee\x0b\x10\x2d\xb4\x1e\xd0' + b'\x35\x46\xff\x02\x32\x1b\x8a\xa9\xd3\x19\x7d\x3f\x6d\x6d\xc8\xe2\xa3\x68' + b'\x99\x1c\x2d\xd1\xe4\x1d\x2f\x62\x67\xf9\x3d\xb2\x9f\x20\x9b\xe3\x0c\x02' + b'\xb7\x35\xbb\xbc\xd3\x06\x1c\x72\xf9\x4f\x40\x20\x50\xc7\x02\xf2\x0b\x7e' + b'\x62\x81\x99\x6d\xee\x7a\xd7\xa7\x11\xf9\x77\xab\xf1\xa0\x6d\x0d\xc6\xaf' + b'\x69\xa9\x8b\x92\xee\xa4\x9e\x09\x62\x9a\xf3\x15\xcb\x9a\xb2\x3d\x8f\xa8' + b'\x7d\xe4\x68\x40\x05\xf3\x8d\xfc\xaf\x38\x15\xfb\xf1\xdb\x22\xf5\x85\xdb' + b'\x64\x47\xb4\xf2\x63\x17\x46\xf5\x01\x4a\x2b\xa4\x41\x4a\xb1\xf2\x29\xc0' + b'\x95\xe2\xe8\x7c\x5c\xf9\x4b\xbb\x30\x97\xb7\xa4\x1d\x49\xc9\xec\xce\x4c' + b'\x92\x0a\x92\x3f\xc5\x0e\x31\xfb\x19\x38\x10\xdb\x5c\x24\x99\x99\xfb\xfd' + b'\x11\x31\x84\x8f\x70\x1d\xd0\x77\x78\x41\xad\xd7\xdd\x9a\x02\xc4\x3b\xde' + b'\xfd\xae\xf8\x74\xf2\x7b\xbf\x22\x50\xad\xff\xf5\x7a\xc2\x88\x01\x89\xbf' + b'\x04\x25\x58\xcd\x57\x18\xe2\x76\x3b\x3b\x72\x69\x90\x1d\x8f\x30\x89\x31' + b'\xa7\xd6\x35\x3d\x40\xfb\x56\x0f\x9f\xff\xdc\xb7\x1c\x03\x83\x9d\xbc\x79' + b'\x79\x79\xb4\xb4\x2e\x8e\x19\x8a\x94\x72\xcd\x56\xfd\x29\x12\x6c\x6e\x4a' + b'\xaf\x41\x25\xc3\x50\x57\xfd\x9e\x02\x2c\x9c\x70\x90\xe9\x89\x67\xea\x14' + b'\x80\x0e\xa8\x40\x50\xa3\xd6\x75\xca\x1b\xf9\x1f\xa5\xe1\x00\xd3\xd4\xae' + b'\xa2\xdc\xf5\x21\xd2\x78\x3a\xe3\x91\x02\x03\xf0\x7b\x86\x08\x04\xbf\x77' + b'\x55\xaf\x3c\x95\x61\xf3\xd5\xc1\xa6\xeb\x62\xf0\x3b\x9e\x53\x47\xda\x45' + b'\x10\xa8\x05\x95\x42\x29\xdb\xfd\x72\xad\xfa\x1e\x15\x07\x29\xeb\x2d\xc6' + b'\x2f\x9b\x13\xb9\x6a\x87\xf5\xa1\x91\xbc\x91\x2d\xef\xcc\x0d\x64\xf9\x19' + b'\xa0\x27\x78\xbf\x44\x87\x15\x5f\x31\xb1\xc9\xb7\x59\xf1\x16\x70\x17\x98' + b'\x8a\xee\x9f\xff\xf7\x7d\x3d\x51\x53\xaa\x9c\x36\x58\xb8\x3b\xea\xed\xe9' + b'\x9d\x00\xa9\x7c\x1d\xc8\xab\x2f\x51\x9a\x55\x0e\xde\xe4\x85\x8d\x12\xd7' + b'\xe7\xd7\x48\xd6\x63\x13\x81\xf6\x17\x9f\x4d\xb8\xe8\xc2\x58\x81\x11\xbe' + b'\xbc\x11\x06\xec\xf9\xd9\x4c\xbe\x02\xf1\x36\x5a\x63\x79\xd8\xcf\xec\x4c' + b'\x4d\x56\xaa\x97\x7b\x6d\x3d\x68\xeb\xe9\x4c\xa1\x34\x9c\xf2\x6f\xe5\xdc' + b'\xc4\x24\xcd\x17\xb0\xd5\x89\xf7\xff\xdf\x19\x78\x28\x93\xbe\x0e\x54\x4a' + b'\x89\x10\x1d\xb8\x32\xad\x28\x29\x7c\xe3\xab\x28\xfd\x28\x96\xf0\xab\xf6' + b'\x54\x66\xa8\xba\x0c\x04\x57\x37\x20\xd4\xc3\x92\xf4\x13\x26\x52\x49\x32' + b'\xc9\xc3\xac\xb5\xb0\x89\x90\x55\xb6\xd1\x65\x1f\x71\x6a\x9a\x64\x5a\xe6' + b'\xc2\xa4\x3d\x52\xb3\xe8\x74\x53\xd8\x51\x71\x54\x7a\x5c\x29\xa4\x54\x8b' + b'\x91\xcb\x53\xa5\x0b\x14\xb3\x81\xce\x18\xeb\xde\x26\x6d\xc6\x33\xc4\x07' + b'\xef\x25\xb1\xf2\x81\x8e\x4e\x1d\x7e\xeb\x3f\xd2\x01\x35\x1f\xce\x96\x3f' + b'\x5b\x9f\x02\xdb\xe3\xfc\x1f\x35\x5c\x2b\x83\x72\x86\xf2\x0b\xe2\xbe\x1b' + b'\x12\xa7\x19\x0e\x2b\x0b\xb6\xff\x5a\xc1\x94\x88\xf1\xea\x7e\xad\x46\xe4' + b'\xa3\xa6\xc5\x00\xfe\x8e\xee\xdd\x33\x1b\xba\xcc\xf5\x3a\x22\xdd\x7d\xa5' + b'\x95\xff\xe1\x47\x04\xb4\x76\xbc\x3b\xb6\xb5\x99\x5d\xea\xb2\x65\xdf\xad' + b'\xc3\x52\x37\xeb\xfd\xd3\x9a\xc3\xfb\xd0\xc5\xb1\x41\xb6\xe4\xd9\xed\x29' + b'\x53\xd0\x14\xc4\x57\x39\x8a\x12\xb1\xe4\x04\x67\x26\x3d\x74\x7b\xb1\x7e' + b'\x4b\x3d\x11\x17\x11\xe8\x1f\x6e\xb7\x2c\x4b\x79\x35\xfc\x47\x2a\xf4\xa1' + b'\xa9\xaf\x92\xa2\x97\xff\xe0\x14\xc7\x74\x23\x9e\x9f\x87\x12\xca\xef\x1e' + b'\x7b\x94\x69\x36\x8e\x33\xb4\xa2\x9e\x79\x21\x16\x7b\x54\xdd\x22\x89\x58' + b'\x37\x43\x47\xd6\x2f\xb0\xed\x49\xfe\x84\xbc\x77\x82\xf5\xd9\xf6\x3a\xb8' + b'\x07\x56\xf7\xac\xb4\xc3\x17\xc9\x0f\x9b\xe3\xb3\x8c\xd3\x56\x43\x47\x8f' + b'\x47\x66\x9a\x45\x24\x30\x22\x60\xc9\x60\x22\xe4\x2e\x73\x20\x6d\x60\xa4' + b'\xcf\xc9\x18\x03\xc9\xd4\x1d\x47\x0b\x7e\xed\xb1\xd3\x3c\x56\xf2\x50\x04' + b'\x27\xa0\x38\xea\xbd\x19\x4f\xee\xb4\x3b\x78\xa6\x06\x2d\x9f\xea\x5f\x1e' + b'\x35\xa4\x77\xb9\x74\x9f\x7b\x43\x85\xc9\x34\xb5\xb7\x98\x91\x08\xd5\x88' + b'\x5e\x58\x1f\x59\x83\xa7\x61\xe8\x1f\x49\xea\x47\xb8\xb1\xcb\xf0\x4b\x00' + b'\x3a\xf3\x31\xa7\x10\xe7\x3a\xc3\x2d\xfc\x2c\x70\xe4\x66\x52\x5c\x08\x08' + b'\x7e\x3e\xb0\x6b\xe6\xbb\xc0\xca\x46\x16\x7c\x23\xad\xe9\x6b\x77\x3e\x6e' + b'\xb8\xf2\xce\x30\x3e\x81\x54\xa4\x7c\x50\xe1\x97\xf2\xa5\x9b\x17\x60\xef' + b'\x78\x73\xed\x85\x91\xcd\x28\x63\x19\x58\x92\xea\x91\xc2\x72\x22\x9c\x7b' + b'\xac\x8f\xf7\x1c\x82\xca\xa6\xf6\xc2\x84\x9d\xc5\xa2\xc5\xf8\xa1\x8d\x67' + b'\x3f\x26\xf5\xa1\x63\x98\xe7\x6f\x6f\x0a\x61\x2e\x2a\x5b\x06\x11\x5d\xa4' + b'\xed\x19\xed\x10\xa0\x73\xee\x8a\xd6\xcf\x09\x75\xc3\x67\x61\xce\x86\x49' + b'\x4c\x65\x73\x76\xa6\x15\xde\x26\x89\xb0\xc6\xe1\xc7\x35\x9e\x67\xd0\x1f' + b'\x29\xa1\x56\xbe\x12\xf4\x62\x6d\x2b\xc3\x91\x54\x82\x7a\x32\x95\x54\x0a' + b'\x58\x34\xad\x9f\xaf\xf4\x14\xd5\x4c\x74\x27\xd4\x2a\xae\xea\x54\x3d\x1d' + b'\x21\x41\xba\x0c\xda\xfc\x10\x2f\x5c\x57\x40\xf2\x6b\x6f\xea\xa5\xca\x9e' + b'\x8c\x46\xd6\x2d\xea\x62\xd0\xd8\xb8\x49\x74\x70\x87\x8a\xd3\xfe\x67\x42' + b'\x5a\x33\xfa\x62\x90\x8f\x2e\xbc\x09\xec\x99\x34\x2d\xc4\x5b\xb8\x20\xa2' + b'\x57\x00\xd9\x95\x69\x95\xaa\x17\xaf\xdc\x39\xd0\x4f\xde\x80\x88\x07\x6d' + b'\xbe\xd5\xff\x7a\x86\x13\xca\x3c\x23\x28\x73\x40\x7e\x1c\xa7\xe8\x88\x9e' + b'\x95\x2c\xa1\x8a\x95\x23\xa2\x70\x17\x57\x63\xe2\x42\x54\xf0\x4e\x5d\xc9' + b'\x35\xad\x53\xa1\x7a\x16\xaa\xf3\xcd\x18\x48\xdd\x81\xce\xec\x76\x5f\x56' + b'\xd8\x1c\xaf\xab\xab\xc5\x0c\x05\x53\x64\x37\xed\x75\x74\x8b\xf8\x5f\x40' + b'\x86\xbd\xd5\x5e\x32\xfe\x28\x2a\xab\xb1\x31\xaf\x3a\x82\x73\x78\x65\x37' + b'\x96\x43\xff\x68\xb0\x99\x7d\x68\xa5\x5e\x36\xe0\x84\xa1\x07\xfc\xb2\x68' + b'\xc6\x89\xf4\x16\xde\xe5\x07\xbf\x00\x86\x9b\x2b\x76\x17\x65\xd4\x73\x55' + b'\xe8\x74\xe9\xa1\xe3\xde\xa3\xc2\xe8\xe6\xc4\xde\x49\x0c\xf7\x24\xed\x02' + b'\x34\xd8\xbd\xf1\x0d\x9c\x48\xcc\xb7\x99\x22\x66\x3a\xcf\x4b\x25\x3d\xf0' + b'\xc5\x42\x8d\x92\x48\xaa\x61\x6d\xb7\x5d\x11\x44\xea\xd9\x2f\x7d\x33\x52' + b'\xb0\x8f\xf8\x24\xd9\x25\x39\xfb\x0f\x27\xc1\xc2\xf9\x24\x72\x99\xa6\x7f' + b'\x4c\xfe\x82\xa7\xe0\x36\xb7\x58\x27\x6b\xa4\x49\xb2\xc1\x7f\xf7\x3b\x1d' + b'\x81\xbc\x7f\x7f\x62\x73\x48\x58\x6d\x8b\xa2\x9e\x14\x16\x70\xb6\x87\x48' + b'\xd8\x83\x8b\xb0\x34\x0f\xe2\x68\xb3\x3e\x47\xdb\xbf\x49\x54\x28\xf3\x01' + b'\x78\x8f\x27\x01\xf4\x50\x23\xdb\x5b\xe9\xe9\x2c\x27\x68\x6c\xaf\x8e\x86' + b'\x88\x1c\x8f\x1c\x97\xc1\xb1\x9f\x8c\xa2\xe2\x7f\x3b\x97\x52\xd5\x4f\x1e' + b'\xc6\x6b\xa4\x5e\x27\xec\xf0\xb2\x9e\x66\x9b\x90\x6c\x8f\x9c\x24\x69\xda' + b'\x4c\x5b\x6e\xd5\xca\xa6\xb6\xd5\x60\x11\xdb\x1e\x08\x98\x70\xec\x7a\xf6' + b'\x25\xef\x35\x64\x79\xaa\xdb\xc2\x7f\x9e\xd8\xa1\x86\x47\xcf\xfe\xd0\x5e' + b'\xc3\x9c\xa9\x0e\x10\x47\xeb\xe9\xfa\x51\x6f\x63\x1b\x85\xdc\x36\x64\x12' + b'\x56\x4b\x11\x23\x5f\x98\x44\x31\x6b\xa0\xce\x38\x31\xfd\x46\x60\x53\x85' + b'\xba\xa9\xe5\x15\xcf\x25\x59\x84\x3c\x72\xe0\xee\x17\x9f\xca\x4c\x98\xc5' + b'\x4d\x6a\xa5\xaf\xed\x61\x0c\x3e\x82\x67\x0d\xe2\x90\x47\x12\x53\xb2\xcb' + b'\x79\xb2\xe2\xe4\x45\x83\x3a\x25\x28\x67\xb5\x40\x0d\xd0\xe3\x08\x1f\xc8' + b'\xe6\xea\x84\x97\x0a\x82\x75\xae\x30\xc2\xff\x62\xdb\x20\x79\x0b\x58\x9f' + b'\xe5\xa7\x27\x80\x3e\x57\xcf\x1f\xaa\xf8\x67\xf2\xaa\xc6\x7f\x44\x8b\x92' + b'\x98\x72\x9c\x44\x97\x1e\x8d\xa0\xef\x38\xc5\xb8\xff\xb9\xa6\xdb\x15\x9a' + b'\x45\xa4\x34\xc8\xda\xb4\x4c\x75\xe3\xf9\xeb\x67\x1d\xe5\x81\x35\x96\xec' + b'\xcc\x0d\x5f\xb8\xdc\x7e\x9b\x9b\x6b\x86\x5b\x27\xec\x1f\xae\xa6\x52\x5e' + b'\x74\xad\x3c\xea\xb1\x59\x43\x38\x75\x69\x46\x51\xca\x38\x53\x56\xab\x7c' + b'\x51\x8d\x87\xb2\xd7\xa1\x75\xd9\x80\xe4\x9f\x70\x5d\xb7\xb2\x6e\x37\x1a' + b'\xac\x7c\x77\xae\x9f\x5b\x33\x58\x53\xca\xb0\x74\x66\x66\xcd\x8f\xb1\xa3' + b'\x57\x19\xd8\xf6\x4f\xe3\xb7\xb1\x91\x9b\xa3\x9a\xc0\xab\x53\xf6\x93\x0f' + b'\x5f\x28\xba\xf8\x47\xe8\x38\x3a\x56\xe6\x78\xdb\xe5\x3b\xb0\x90\x03\x27' + b'\xac\xc8\x94\xce\x82\xeb\x8a\x92\xb4\xb7\xdc\xbf\x27\xfe\xca\xec\x39\x82' + b'\x14\x52\x4a\x0a\x82\x2e\x52\xb9\x29\xd3\x35\x5d\xed\x08\xf9\xf9\xcf\xea' + b'\x3c\x62\xc9\x07\x8a\xc2\xc2\x2d\x7c\xf3\xa0\x33\x5f\x84\xac\x21\x59\xcd' + b'\x0f\xbb\xd6\xf5\x16\xeb\xdb\xe6\xa0\x32\x00\xf6\x42\x40\xdc\x19\x14\xdb' + b'\x88\x5a\x53\xf8\x0a\x71\x6b\xf0\x95\xe5\xe1\xdd\x7b\x09\xe4\x59\xa3\xae' + b'\x47\x7f\x4a\x9d\xf2\x63\x76\x5d\x5d\x38\x78\xc2\xf8\x05\xb4\xf7\x1b\x6e' + b'\x00\x6b\x1e\xac\x0c\xd1\xb1\xab\xb2\x68\x86\x4f\x5a\x5f\xdd\xed\x46\x27' + b'\xaf\xa0\xc3\x88\xef\x98\x7a\x11\xac\x75\xff\xbe\x12\x30\x3c\x4d\x16\x04' + b'\x97\x1e\x79\x59\x01\x52\x11\x7b\x88\x54\x37\x88\xe0\x8e\x7a\xb2\x32\x7b' + b'\xb5\x66\x73\x9d\xaa\x83\xe8\x47\x11\x96\x53\x94\x95\x2c\xd6\x4e\xaf\x3d' + b'\xdc\x33\x5b\xc4\xfe\x29\x98\xb4\xd3\x96\x42\x34\x14\x80\x71\x2f\x8f\xaa' + b'\x0b\x86\x6a\x68\x81\x55\xaf\xce\xed\x1c\x3d\xd6\x9a\x19\x7a\xb8\xae\xd0' + b'\x9f\xb2\x0b\xfe\x4c\x96\xe6\xf0\x7e\x5c\xf4\xd1\xfe\x10\x94\x28\x98\xd0' + b'\x9a\xa7\x60\x77\x21\x08\xe9\x67\x6f\x01\x7d\x2d\x43\x0b\x87\x01\x27\x39' + b'\x89\xcd\x17\x3b\xf8\x88\x0a\xd3\xdd\x17\xe3\x78\x0c\xd5\x7d\x8d\x48\xbf' + b'\xbb\xca\x45\x15\x61\x5e\x07\x16\xb6\xa8\x30\x52\x96\xff\xa5\x57\xa7\xc2' + b'\x0f\xe2\x0d\xc9\x6d\xcd\x8c\xe4\xff\x31\x06\x1a\x06\xf2\xfd\x5d\xb5\x9e' + b'\x69\x2a\x58\x49\x28\x9c\x97\xb8\x7c\xb3\xe7\x78\x12\xcd\x1c\x13\xdf\xea' + b'\x70\x30\x2d\x8d\x6d\x60\x4b\x63\x16\xfc\xc9\xe4\x25\x07\xcb\xc2\xbb\x57' + b'\x7f\xe5\xf8\xe3\xf6\x8d\x39\xc5\x3f\x43\xcc\x8a\x53\x71\x1a\x7e\xed\x84' + b'\x5d\x93\x89\xe5\xde\x09\xe2\x22\x27\x82\x0b\x85\x4a\x5e\xe8\x1b\xb3\xdc' + b'\x36\xdd\xf8\x2f\x70\xd0\xab\x98\x2f\x88\xac\x6a\x9e\xa0\xbf\xd8\x50\x4e' + b'\x19\x85\x09\x2d\x5c\x82\x5f\xf3\x3b\x57\xf5\xfa\x7a\x19\x69\xbe\x07\xb3' + b'\x35\x01\x63\x37\x74\x22\x72\x2d\x7f\xbf\x01\xe9\xd3\x17\x04\x0b\x3d\xda' + b'\x42\x03\x71\xb2\x64\x74\x78\x17\x9e\xd2\xde\x58\x8a\x10\xaf\x92\x98\x20' + b'\xf8\x9b\x30\x98\x60\xe6\xf1\x90\x74\xb3\xeb\xa0\x5c\x43\x36\xa0\x3e\xcc' + b'\x8d\x60\x1c\xa7\xef\xb1\x1d\x0d\xc3\x44\xbc\x25\x2b\xf5\x70\x5f\xa9\x67' + b'\x8f\x18\x1c\xd8\x21\xd0\xb2\x0f\x96\x2d\x8d\x18\xf1\x05\xc3\xa5\x57\xb2' + b'\x79\x0f\xf6\xdd\x77\x62\x3b\x11\xc5\xb9\xa4\x9f\xe0\x4d\xe8\xcc\xc3\x66' + b'\x0d\x78\xb6\xb4\x41\xea\x6a\xe7\x9f\x40\x64\x8e\xb8\xf5\xe3\xdc\x2f\x6a' + b'\x1e\xde\x01\x35\x9a\x70\x13\x94\xd1\xfb\xff\x8f\x86\xcf\x58\x1d\xeb\x93' + b'\x1b\x56\x33\x35\x51\x08\x41\x44\x2f\x11\xdf\xe2\x57\x3f\x1e\x2d\x27\xf4' + b'\xcc\x1b\xfc\xf2\x93\x77\x79\x88\x40\x5b\xcc\x5a\x12\x3c\x68\xa6\x28\xd5' + b'\xef\xbd\xb6\x1e\x3c\x92\x47\x8a\xac\xda\xfb\x20\xce\x0d\xe6\xf9\xeb\x27' + b'\x5d\xcc\x25\x69\x16\x09\xce\xbb\x0a\xd4\xb3\x45\xf2\x7c\x0c\xd0\xbf\x25' + b'\x04\xb3\xe3\x4a\x41\x67\x60\x1d\x68\xaf\x54\x7b\xcb\x28\x4d\xd1\x95\x30' + b'\x40\x41\x6b\xe6\x13\x3c\x64\x60\xe1\x90\x2a\xcb\xb4\xa1\xc7\xbe\x7c\x81' + b'\xe0\xea\xf3\x3c\x2f\x20\xe4\x04\x66\x69\xc7\xda\x9f\x85\x30\x7b\x23\x5b' + b'\xb0\x9f\x00\xb0\xa2\x5e\x66\xb3\xd4\xbd\x94\x93\xf5\xac\xfc\x2c\xc1\xa5' + b'\xb6\x84\xcb\x3d\xa4\xa6\x9d\x06\x86\x3d\x76\x04\x02\xda\x59\x90\x57\xba' + b'\x90\x8b\x16\x01\x1d\x63\x50\x32\x7f\x2f\x05\x32\x02\x2e\x5c\x90\xa4\x8b' + b'\x67\x4c\x38\xc9\x43\x92\x1c\x3e\x79\xcf\xe1\x95\x34\x63\xe2\x44\x36\xc6' + b'\x14\x70\x5b\x46\x62\x27\x9a\x76\x84\xcd\xf0\xcb\xa3\x9c\xe4\x56\x38\x9f' + b'\xd6\x97\x38\xe6\x3a\x8b\x1e\xd9\x21\xf8\x3a\x98\x42\x9f\x93\xe1\x36\x8f' + b'\x2d\x2e\x1e\xb8\x56\x2c\x83\x5e\xb0\x11\x45\x23\x54\x29\x18\x4e\xf8\x8b' + b'\xe0\xf3\x17\xb3\xe0\x58\x37\x0a\x56\xdd\x0e\x05\x29\x03\xd7\x98\x6d\x77' + b'\xe3\xf5\xab\xea\x29\x4e\x7e\x89\x4d\xde\x05\xeb\x27\x3b\x33\xd9\xfd\xab' + b'\x9e\xe8\x39\x52\x32\x33\x25\x47\x5c\x76\xb4\x5d\xf2\xaa\x24\xf7\x20\x31' + b'\x98\x86\x28\xd9\x23\x2d\xe9\x6b\x44\x2f\xb0\x6f\x54\x9e\xea\x4b\xee\x72' + b'\x3b\x66\xfa\x51\x77\xa8\xf6\x38\xe6\xa3\x38\x3d\x51\xb1\x2f\xdb\x57\xdb' + b'\xd0\x44\xbe\x39\xfe\xc9\x73\x55\x4e\xe4\x75\xac\x4f\x6e\xdd\x3b\xef\xed' + b'\x0c\xb8\xab\xc5\x5f\xc3\x59\x71\xac\x86\xd6\x7a\x5e\x2e\x41\xd2\xe0\xd6' + b'\xca\xa9\xe4\x6a\x08\xb5\x61\x95\x69\xf4\xc4\x75\x59\xe0\x65\x62\x67\x55' + b'\x4a\xd2\xad\xab\x09\x4d\x52\x66\xec\xf1\xbf\x5d\x5f\x65\xa3\x19\x8a\x89' + b'\x80\x80\x62\x46\xfe\xdf\x82\x24\x04\xcc\xdf\x45\x29\x2a\xff\x61\x63\xcf' + b'\x93\x39\xeb\x5b\x9e\x2c\xad\xdf\x8d\x93\x5c\x7e\x0b\x24\x90\xfc\xa1\xbd' + b'\x76\xb0\x93\x77\x5c\x0e\x70\x5e\x28\x61\xcd\x36\x93\x39\xba\xf8\x15\xc3' + b'\x2d\x19\x53\x8e\x8f\xb1\x47\xf3\x97\xb9\x8c\x5e\x8c\xc9\xab\xcb\x81\xa2' + b'\xdf\x0b\xa4\x3e\x36\xea\x36\xab\xce\xbd\x45\xd7\xbb\xf8\xbc\x53\x2d\xc0' + b'\x46\x8b\xa4\xba\xb3\x35\xd6\x86\x19\xa7\xf8\x95\x1d\x57\x88\x5d\x96\xdf' + b'\xb6\x35\xd7\x67\x78\x87\x3c\x62\x6f\x2a\x04\x7b\x4b\x55\x73\xac\xfd\x96' + b'\x1c\x00\xdc\x43\x8c\x9e\x63\x54\x66\x0c\x59\x5b\x01\x89\x51\x7e\x2a\xf5' + b'\xf7\x46\xfe\x94\x41\x7d\x84\x15\x38\xa6\xcf\xa3\x61\xc0\xff\x34\x61\x66' + b'\xea\xa7\x61\x53\xfc\x80\xc7\x2c\x34\x28\x32\xfa\xb9\x21\x99\x94\x30\x7d' + b'\x1a\xca\x82\x08\x12\xe8\x87\xfe\xa8\x7b\x17\xc2\x6b\x5b\x2a\x7b\x6c\x3b' + b'\x39\x88\xd7\x41\xb2\x8c\x1a\x3f\xd3\x4a\x70\xce\x24\xe3\x1c\x21\x9d\x69' + b'\x30\xb0\x13\xe8\x40\x4f\x36\xf8\x11\x9b\x87\xde\xeb\x56\xc7\xae\x73\x9c' + b'\xe0\x64\xc9\x6e\x52\x51\x0b\x34\xcd\xc5\x4b\xda\xd2\x98\xe1\xb8\xad\x67' + b'\x43\x4e\x9d\x9b\x8d\x37\x63\x8c\x66\x90\xa2\x1f\x1b\x87\x56\x3c\x17\x38' + b'\x5e\x63\xad\x76\xf0\x84\x2f\xf1\x82\xb2\x0c\xa0\x5f\x30\xfd\x51\x79\x4b' + b'\x89\x6b\xe7\xf4\x8c\x62\x7e\x5f\x97\x7a\xa3\xd6\x4f\x8e\x69\xc5\x9e\xd6' + b'\xab\xc8\xc4\xfa\x06\x6d\xbc\x34\xee\x1b\xb8\x78\x4a\x6b\x8e\x2c\x3e\x42' + b'\xc2\xca\x7e\x7e\x0c\xbd\xc4\x44\xbc\x60\x33\xdd\x77\x46\x7f\x88\x1f\xc1' + b'\xc7\xd7\x9c\x8d\xc9\x8c\x32\x1f\xbd\x3e\xca\x83\x43\xe9\xa3\x7f\xd8\x4b' + b'\x35\x98\x18\xf2\x85\x9e\x88\xd4\xa4\x6d\x72\xfa\x83\x54\xc1\xf8\xcb\xef' + b'\x89\x25\x33\x83\xf3\x22\x23\x0c\x2e\xa3\xe2\xcc\x27\x08\x68\xde\xaa\x2e' + b'\x7d\xcd\xc9\x8f\x14\xbf\x4a\x98\x6f\x08\xf7\x41\x02\xe3\x19\xa7\xfd\xaa' + b'\x20\x79\x88\x7a\x0c\xff\x3f\xc3\x99\x23\x44\x9b\xa3\xa2\x86\x78\x82\xad' + b'\xfe\x6d\x7c\x65\xb4\xdf\x6a\x63\x1a\xf4\xca\x5e\xdd\x7c\x7a\x53\x96\xbd' + b'\x6e\x4f\x9e\xa4\xe7\xf8\x07\xfe\x07\xdf\x15\x93\x51\x90\xea\xde\xb9\xd5' + b'\x54\x6e\x1f\xfb\xc3\x6f\xd7\x32\x2c\xad\x84\x36\xa7\x0d\xd9\x65\xc1\x38' + b'\x45\x3a\x53\x60\xa0\x4e\xba\x26\xcf\x23\x58\x7b\x61\x20\x69\xc8\xc6\xf6' + b'\x7a\x9d\x92\x4b\x52\x37\x00\xf2\x30\x53\x2f\x29\x43\x38\xb1\x65\x1d\x35' + b'\xdd\x03\x78\x7e\xe5\xb1\x73\xad\xfc\xa7\x50\xc7\x61\x08\x5e\x8e\x79\xd0' + b'\x86\x46\x96\xeb\x77\x71\xcc\x9e\x08\x54\x05\xfb\x78\x54\xc8\x9c\x65\x3b' + b'\x0a\x1e\x5a\x05\x16\x6e\xc1\x78\x51\xe5\xe3\x6e\x52\xe8\x93\xef\xc9\xaa' + b'\xd0\xa6\x17\xad\xdd\x29\x2b\xda\x50\x01\xe1\xd5\xca\xe6\x54\x0a\x65\xf5' + b'\x20\x35\xe4\x93\x05\xfc\xe5\xc6\x81\xe8\x60\x40\xbc\xa7\x52\xe2\xfb\x72' + b'\xfd\x98\x6a\xa8\x6e\x96\x37\x8f\xac\xd0\xb2\x14\x8a\xfa\x36\xe7\x5a\x7b' + b'\x81\x90\xd4\xe9\x76\xa1\xbc\x2e\x17\x54\x05\x3e\x35\x14\xf9\x7b\x2e\xb2' + b'\x9b\xfa\xd2\x01\x7d\xa8\x6d\x9c\x9e\x37\xe0\xb2\x60\xd3\xc4\x55\xaa\x58' + b'\x3a\x5f\xbf\x9d\x72\x57\x45\x69\xa1\x82\x2b\xad\x76\xf1\x5c\x2d\x8b\xb1' + b'\x6a\x5b\xbf\x8e\x81\x85\x05\x15\xbf\x4b\x09\x9e\x00\xc8\x70\xaa\x75\xd8' + b'\xc0\x94\x88\x0b\x00\xc7\x55\xf4\x82\xbb\xa2\x03\x4c\xc1\xc0\x1c\xa5\xa7' + b'\xf2\xfc\x76\x24\xfc\x27\xca\x8b\xdb\xb9\xdc\x35\xec\xe8\xef\x85\xf6\x80' + b'\x0b\x4d\x9a\xaa\xe4\x12\x21\x66\xa9\xc0\x2b\x74\x78\xe5\x73\x6d\xd7\x9a' + b'\xb8\x49\x9e\x43\x2c\x1a\x7d\x7e\x78\x7f\x9d\x52\x0c\x98\x1b\xf6\x8b\xb6' + b'\x55\x4d\x54\x07\xe8\x6a\x38\xfd\xd0\x67\x89\x0c\x69\x70\x7b\xf6\x66\xce' + b'\xf2\xec\x04\xe0\xad\x50\x41\x6e\xfc\x7f\x31\x21\xf3\x5e\xb6\xe1\x30\xd9' + b'\x39\xb6\xe5\xbf\xa8\x1e\x93\x45\x12\x8c\xec\x22\x39\xd4\x63\xba\xe7\x9a' + b'\x0c\x22\xd0\x45\x73\x6b\x01\x89\x2a\x76\xf2\xbc\x04\xee\x58\x97\x07\xc4' + b'\x19\xf6\x40\x56\x80\x82\x18\x0a\xbf\x40\xee\xfa\x86\xb9\x69\x49\x17\xce' + b'\xa9\x1d\x44\xf5\xfe\x46\x75\x43\xa0\xc4\x2c\x55\xca\xe5\x72\x8c\xc8\x6e' + b'\x1e\x69\x7b\x2e\x41\x23\x4c\xb9\x6d\x2f\x0e\xe2\x92\xe3\xf7\xdd\x61\x89' + b'\xa6\x2b\xfd\xde\x79\x3b\x0f\xa7\x48\xde\x31\x21\x6b\xaf\x3a\xf3\x0d\x5d' + b'\x42\x0a\xa8\x10\xe8\x50\x8f\xb6\x3f\x37\x9a\xcd\xa2\x97\x38\xa7\xa3\x66' + b'\x83\x47\x26\xbb\x73\xa5\x13\x74\x3f\x1b\x9a\xd0\xfc\x04\xba\xa4\xaf\x7c' + b'\x8f\x13\x4d\x0c\xa5\x69\x69\xd1\x09\x91\x2d\x77\xdc\xf4\xc1\x92\xff\x0f' + b'\x67\x5e\x0d\x8c\xc4\x43\x66\x14\x5e\x3b\x44\x22\x74\x8c\x66\x15\xcc\x74' + b'\xe8\x4e\xf7\x21\x62\xcf\xbf\x2c\xf8\xbf\x10\x45\xbc\xb7\x33\xcc\xa4\xd1' + b'\x67\xaa\x01\xda\xc9\x94\x8d\xd9\xfc\xb6\x19\x7f\x42\xac\x20\x3b\x77\x34' + b'\x8d\x2a\x9e\xc8\x00\xf7\xf3\x6a\x52\x96\x82\xab\xac\xfa\x58\x4c\xc0\xc7' + b'\xbc\x3a\x7c\xb9\xc4\xcd\xcf\x67\x2a\x4c\xef\xd9\xc1\x13\xc4\xf0\xb9\x12' + b'\x8b\x08\x7e\x70\x00\x08\x9b\x28\xce\x59\xb5\x1d\xe6\x82\x52\x9e\xce\x08' + b'\x40\x8e\xc5\x65\x46\x86\xe5\x9e\x9c\x7d\x4f\x02\xbc\x57\xdb\xd2\x3d\x36' + b'\x4d\x9c\xfc\xf9\x4c\xb8\x0a\x27\xa4\x09\x6f\x3b\x3b\x2b\x30\x3f\x40\xe9' + b'\x4b\x4b\xe2\xbf\x87\x5a\x4d\xab\x38\xbb\x36\x03\x87\x67\x40\x18\x63\x52' + b'\x3a\xe4\xc7\xe1\x78\x88\x1b\xd3\xf5\x53\xf9\x09\x16\xa9\xcc\x57\x96\x49' + b'\x2f\x2e\xc9\x77\xac\x7a\x4d\x01\x98\x5b\xcb\x54\xee\x2f\x03\xa8\xfa\xea' + b'\xca\x70\x84\x4c\xd4\xbd\x7a\x50\xac\xc1\x9d\x3e\x36\xb5\x4d\xa4\xf8\x04' + b'\xe2\x66\x25\x94\x3c\xf8\x66\xed\x25\xc2\x00\x97\x60\xeb\xc1\xe8\x1b\x0b' + b'\xf5\x5c\x91\xa7\x43\xe0\x30\xec\x52\x01\x7d\xb9\x41\x31\x36\x20\xca\xe7' + b'\x45\x93\x5f\xf4\xdb\x98\x1a\x6e\x6a\x84\x05\x61\x57\xb7\x28\x9d\x4e\x4b' + b'\xf5\xac\xf3\xd1\x28\xde\x57\xb1\x0e\x1a\x00\x49\xdb\xc4\x71\xd6\x95\x65' + b'\xa3\xab\x13\x96\x54\xbb\x96\xdb\x07\x30\x5f\x43\x6a\x5e\xb8\xa5\xc4\x70' + b'\x5e\x3a\x56\xdb\x08\x11\x9b\x7a\x12\x75\x71\xd9\x8a\x43\xc0\x19\xe6\xb7' + b'\x8a\x4b\x04\xad\xdd\x8f\xdf\x45\xdf\x61\xfe\xea\x7b\x4b\xa5\xfb\x95\xb5' + b'\x70\xec\x77\x28\x0a\x10\x82\x89\x52\x2e\x73\x27\xce\xb0\x50\x7d\x3f\x27' + b'\x78\x66\xf1\x51\x45\x82\xa3\x1f\xfa\x0b\xce\xdc\x2d\x6f\xe8\xa3\x36\x58' + b'\x10\x10\x71\x1f\xfc\xb4\xf8\xbe\xfb\x78\x40\x6f\x6f\xf5\x4b\xda\xf6\xa0' + b'\xa2\xe4\x3c\x4d\x3d\x2e\xdb\x45\x5b\x63\x1a\xf9\x95\x31\x29\xf8\x8a\xe8' + b'\xdf\xb7\x98\x72\x1a\xd6\x76\xfb\x95\x97\xbd\xcc\x12\x1a\xab\x91\x7e\x62' + b'\x8e\x9e\x27\x00\x09\x8b\x7e\x9d\x48\xb2\x12\x11\xcc\x14\x21\xfd\x9e\x82' + b'\xe2\xc0\x1f\x29\x23\xfd\x8f\xb6\xe3\xdf\x2a\x6c\x0f\x85\xca\x44\x0b\x36' + b'\x5e\xd8\x93\xcb\x9a\x12\x73\x48\x1c\xf4\x1c\xc3\x2d\xe3\x4d\xe2\x94\x0a' + b'\x56\x9e\xf2\x0f\x95\x9b\xc8\xb0\x25\xf3\xdf\x32\x4f\x5a\xe4\x67\x7f\xec' + b'\xe8\x45\xd4\xf4\x7c\x45\x00\x04\x69\xd3\x80\x8f\xe3\xf9\xd2\x49\x21\x57' + b'\x20\xf8\x9b\x40\x1a\xad\x44\xc9\x59\xc3\x7e\xc5\x0b\x0e\xf9\xbe\x63\xf8' + b'\x89\x75\x03\xe3\x6c\xf2\x46\x6d\xfb\xf9\xa6\x68\x77\x08\x13\x31\xde\xdb' + b'\xeb\x3a\x0b\x2c\xbe\x41\x71\x42\x97\x9e\xfb\x14\xec\x73\xc0\x1d\x73\x97' + b'\x3a\x73\xae\x2e\x10\xf1\x0f\xe8\x8e\xfe\xe2\x6d\xb4\xda\x28\x27\xf7\xd8' + b'\x93\x25\x01\xea\x3c\x1d\xc1\xc3\x40\xbf\xf5\xbe\x7c\x0c\xdd\x8a\xa5\x54' + b'\xb4\x87\xf1\xfe\xa8\x89\xc7\xba\x47\x1c\xb1\x5d\x62\x68\x12\x9c\x41\x80' + b'\x09\xdc\x12\x2f\x21\xa5\x6f\x1c\xd1\xff\xab\xf2\xaa\x4f\x1c\xa4\xaa\x71' + b'\xb4\x9c\xcf\xfa\x53\x5d\xdc\xd2\x66\xad\xbc\x85\x7d\x1c\x1f\x9e\x6f\xd6' + b'\x64\xff\x21\xe2\x7e\x64\xe8\x69\x78\xe8\x33\xc9\xb9\xfa\xc8\x81\x8c\x17' + b'\x94\x64\xa3\x48\x29\x55\x5c\x1c\x2c\x71\xee\x45\x53\xf7\x4d\xd2\xf8\x6a' + b'\x9a\x2f\x07\x25\x19\xfe\xd2\x32\x21\x19\x0f\xc5\x2d\xf2\xa8\x01\x90\x42' + b'\x9a\x54\x6b\x5c\x17\x9a\x1b\x9f\x50\x3d\x20\xb2\x11\x8d\x4c\x70\x01\xb2' + b'\x96\xf5\x51\xf0\x85\x5d\x71\x36\x2e\x73\x4d\xe4\xe9\x63\xa9\xa6\x4f\xf6' + b'\xa7\x2b\xfd\x52\x8a\xa5\xba\x56\x0c\x7b\x8d\x69\xbd\xc7\x70\xc7\x7b\x1c' + b'\x84\x09\x98\x4a\x9f\xb7\xe2\xac\xf1\x2d\x27\xb5\xd1\xc3\x3b\x16\x33\x54' + b'\x33\xde\xdf\xf8\x86\x23\xb4\x41\x51\x16\xdd\x67\xbe\x56\xa4\xa1\x6f\xf8' + b'\xb3\x4f\xce\x07\x45\x1d\xcb\x55\x4f\x9d\x20\x97\xad\x98\xfe\xbe\x2f\x6b' + b'\x36\x9f\xa3\x6a\x4f\x4b\xb3\xa1\x7f\x69\x4b\xfa\xbf\xc2\xa4\x94\xda\x4f' + b'\x83\x9a\x2f\x8e\x57\x7c\x29\x5e\xb2\x2e\xac\xbd\x0f\x38\x7b\xb2\x13\x6b' + b'\x1d\x0d\x13\xbb\xc9\xc5\xf9\x2d\x20\x2b\xf4\x5f\x4d\x2f\x83\x5b\x31\x01' + b'\x5d\x67\x56\x95\x3e\xc0\x7e\x36\xcd\x13\x2b\x23\xe0\xa4\x4e\xbd\x7d\x1d' + b'\xe3\x1b\x4c\x89\x75\xfc\x74\x00\x00\x00\x00\x00\xdb\xde\xbf\xd4\xe3\xf0' + b'\xdc\x24\x00\x01\xdb\x39\x93\x40\x00\x00\x4c\x21\xf2\xc8\xb1\xc4\x67\xfb' + b'\x02\x00\x00\x00\x00\x04\x59\x5a' +) +RISCV_BCJ_CASE_INPUT = ( + b'\xef\x00\x00\x00\xef\x10\x40\x23\xef\x10\x00\x00\xef\x02\x00\x00\xef\x12' + b'\x40\x23\xef\x12\x00\x00\xef\xf0\xff\xff\xef\x7f\x00\x00\x6f\x10\x40\x23' + b'\xef\x7f\xef\x00\x00\x00\x97\x00\x00\x00\x67\x00\x00\x00\x97\x40\x23\x01' + b'\x67\x80\x40\x23\x17\x33\x54\x06\xe7\x00\x03\x00\x17\x31\x50\x04\xe7\x00' + b'\x03\x00\x17\x00\x00\x01\xe7\x00\x00\x10\x97\x00\x00\x00\x13\x80\x00\x00' + b'\x97\x40\x23\x01\x13\x83\x60\x45\x17\x33\x54\x06\x93\x02\x22\x01\x17\x00' + b'\x00\x01\xe7\x00\x10\x10\x17\x00\x97\x00\x00\x00\x03\x81\x00\x00\x17\x31' + b'\x50\x04\x03\x05\x11\x32\x17\x33\x54\x06\x83\x80\x32\x12\x17\x00\x00\x01' + b'\x83\x00\x30\x12\x97\x00\x00\x00\x23\x80\x00\x00\x17\x31\x50\x04\x23\x00' + b'\x01\x20\x97\x40\x23\x01\x23\x80\x02\x30\x17\x00\x00\x01\x23\x00\x00\x30' + b'\x17\x00\x97\x00\x00\x00\x03\x91\x00\x00\x17\x31\x50\x04\x03\x15\x11\x32' + b'\x17\x33\x54\x06\x83\x90\x32\x12\x17\x00\x00\x01\x83\x10\x30\x12\x97\x00' + b'\x00\x00\x23\x90\x00\x00\x17\x31\x50\x04\x23\x10\x01\x20\x97\x40\x23\x01' + b'\x23\x90\x02\x30\x17\x00\x00\x01\x23\x10\x00\x30\x17\x00\x97\x00\x00\x00' + b'\x03\xa1\x00\x00\x17\x31\x50\x04\x03\x25\x11\x32\x17\x33\x54\x06\x83\xa0' + b'\x32\x12\x17\x00\x00\x01\x83\x20\x30\x12\x97\x00\x00\x00\x23\xa0\x00\x00' + b'\x17\x31\x50\x04\x23\x20\x01\x20\x97\x40\x23\x01\x23\xa0\x02\x30\x17\x00' + b'\x00\x01\x23\x20\x00\x30\x97\x00\x00\x00\x07\x91\x00\x00\x17\x00\x97\x40' + b'\x23\x01\x87\x90\x60\x45\x17\x31\x50\x04\x07\x93\x72\x16\x17\x00\x00\x01' + b'\x87\x10\x50\x55\x97\x00\x00\x00\x27\x90\x00\x00\x97\x40\x23\x01\xa7\x91' + b'\x00\x12\x17\x31\x50\x04\x27\x91\x02\x22\x17\x00\x00\x01\xa7\x11\x00\x30' + b'\x17\x33\x54\x06\xb3\x10\x23\x21\x17\x33\x54\x06\x8b\x10\x23\x21\x17\x33' + b'\x54\x06\xbb\x10\x23\x21\x97\x00\x00\x00\x07\xa1\x00\x00\x17\x00\x97\x40' + b'\x23\x01\x87\xa0\x60\x45\x17\x31\x50\x04\x07\xa3\x72\x16\x17\x00\x00\x01' + b'\x87\x20\x50\x55\x97\x00\x00\x00\x27\xa0\x00\x00\x97\x40\x23\x01\xa7\xa1' + b'\x00\x12\x17\x31\x50\x04\x27\xa1\x02\x22\x17\x00\x00\x01\xa7\x21\x00\x30' + b'\x17\x33\x54\x06\xb3\x20\x23\x21\x17\x33\x54\x06\x8b\x20\x23\x21\x17\x33' + b'\x54\x06\xbb\x20\x23\x21\x97\x00\x00\x00\x07\xb1\x00\x00\x17\x00\x97\x40' + b'\x23\x01\x87\xb0\x60\x45\x17\x31\x50\x04\x07\xb3\x72\x16\x17\x00\x00\x01' + b'\x87\x30\x50\x55\x97\x00\x00\x00\x27\xb0\x00\x00\x97\x40\x23\x01\xa7\xb1' + b'\x00\x12\x17\x31\x50\x04\x27\xb1\x02\x22\x17\x00\x00\x01\xa7\x31\x00\x30' + b'\x17\x33\x54\x06\xb3\x30\x23\x21\x17\x33\x54\x06\x8b\x30\x23\x21\x17\x33' + b'\x54\x06\xbb\x30\x23\x21\x97\x00\x00\x00\x07\xc1\x00\x00\x17\x00\x97\x40' + b'\x23\x01\x87\xc0\x60\x45\x17\x31\x50\x04\x07\xc3\x72\x16\x17\x00\x00\x01' + b'\x87\x40\x50\x55\x97\x00\x00\x00\x27\xc0\x00\x00\x97\x40\x23\x01\xa7\xc1' + b'\x00\x12\x17\x31\x50\x04\x27\xc1\x02\x22\x17\x00\x00\x01\xa7\x41\x00\x30' + b'\x17\x33\x54\x06\xb3\x40\x23\x21\x17\x33\x54\x06\x8b\x40\x23\x21\x17\x33' + b'\x54\x06\xbb\x40\x23\x21\x97\x00\x00\x00\x07\xd1\x00\x00\x17\x00\x97\x40' + b'\x23\x01\x87\xd0\x60\x45\x17\x31\x50\x04\x07\xd3\x72\x16\x17\x00\x00\x01' + b'\x87\x50\x50\x55\x97\x00\x00\x00\x27\xd0\x00\x00\x97\x40\x23\x01\xa7\xd1' + b'\x00\x12\x17\x31\x50\x04\x27\xd1\x02\x22\x17\x00\x00\x01\xa7\x51\x00\x30' + b'\x17\x33\x54\x06\xb3\x50\x23\x21\x17\x33\x54\x06\x8b\x50\x23\x21\x17\x33' + b'\x54\x06\xbb\x50\x23\x21\x17\x00\x00\x01\x01\x11\x30\x12\x97\x40\x23\x01' + b'\x01\x91\x60\x45\x17\x31\x50\x04\x01\x12\x31\x12\x97\x21\x21\x01\x01\x91' + b'\x31\x12\x17\x31\x00\x21\x01\x91\x60\x45\x17\x00\x00\x01\x02\x11\x30\x12' + b'\x97\x40\x23\x01\x02\x91\x60\x45\x17\x31\x50\x04\x02\x12\x31\x12\x97\x21' + b'\x21\x01\x02\x91\x31\x12\x17\x31\x00\x21\x02\x91\x60\x45\x17\x00\x00\x01' + b'\x03\x11\x30\x12\x97\x40\x23\x01\x03\x91\x60\x45\x17\x31\x50\x04\x03\x12' + b'\x31\x12\x97\x21\x21\x01\x03\x91\x31\x12\x17\x31\x00\x21\x03\x91\x60\x45' + b'\x17\x00\x00\x01\x04\x11\x30\x12\x97\x40\x23\x01\x04\x91\x60\x45\x17\x31' + b'\x50\x04\x04\x12\x31\x12\x97\x21\x21\x01\x04\x91\x31\x12\x17\x31\x00\x21' + b'\x04\x91\x60\x45\x17\x00\x00\x01\x05\x11\x30\x12\x97\x40\x23\x01\x05\x91' + b'\x60\x45\x17\x31\x50\x04\x05\x12\x31\x12\x97\x21\x21\x01\x05\x91\x31\x12' + b'\x17\x31\x00\x21\x05\x91\x60\x45\x17\x00\x00\x01\x06\x11\x30\x12\x97\x40' + b'\x23\x01\x06\x91\x60\x45\x17\x31\x50\x04\x06\x12\x31\x12\x97\x21\x21\x01' + b'\x06\x91\x31\x12\x17\x31\x00\x21\x06\x91\x60\x45\x17\x00\x00\x01\x07\x11' + b'\x30\x12\x97\x40\x23\x01\x07\x91\x60\x45\x17\x31\x50\x04\x07\x12\x31\x12' + b'\x97\x21\x21\x01\x07\x91\x31\x12\x17\x31\x00\x21\x07\x91\x60\x45\x17\x00' + b'\x00\x01\x08\x11\x30\x12\x97\x40\x23\x01\x08\x91\x60\x45\x17\x31\x50\x04' + b'\x08\x12\x31\x12\x97\x21\x21\x01\x08\x91\x31\x12\x17\x31\x00\x21\x08\x91' + b'\x60\x45\x17\x00\x00\x01\x09\x11\x30\x12\x97\x40\x23\x01\x09\x91\x60\x45' + b'\x17\x31\x50\x04\x09\x12\x31\x12\x97\x21\x21\x01\x09\x91\x31\x12\x17\x31' + b'\x00\x21\x09\x91\x60\x45\x17\x00\x00\x01\x0a\x11\x30\x12\x97\x40\x23\x01' + b'\x0a\x91\x60\x45\x17\x31\x50\x04\x0a\x12\x31\x12\x97\x21\x21\x01\x0a\x91' + b'\x31\x12\x17\x31\x00\x21\x0a\x91\x60\x45\x17\x00\x00\x01\x0b\x11\x30\x12' + b'\x97\x40\x23\x01\x0b\x91\x60\x45\x17\x31\x50\x04\x0b\x12\x31\x12\x97\x21' + b'\x21\x01\x0b\x91\x31\x12\x17\x31\x00\x21\x0b\x91\x60\x45\x17\x00\x00\x01' + b'\x0c\x11\x30\x12\x97\x40\x23\x01\x0c\x91\x60\x45\x17\x31\x50\x04\x0c\x12' + b'\x31\x12\x97\x21\x21\x01\x0c\x91\x31\x12\x17\x31\x00\x21\x0c\x91\x60\x45' + b'\x17\x00\x00\x01\x0d\x11\x30\x12\x97\x40\x23\x01\x0d\x91\x60\x45\x17\x31' + b'\x50\x04\x0d\x12\x31\x12\x97\x21\x21\x01\x0d\x91\x31\x12\x17\x31\x00\x21' + b'\x0d\x91\x60\x45\x17\x00\x00\x01\x0e\x11\x30\x12\x97\x40\x23\x01\x0e\x91' + b'\x60\x45\x17\x31\x50\x04\x0e\x12\x31\x12\x97\x21\x21\x01\x0e\x91\x31\x12' + b'\x17\x31\x00\x21\x0e\x91\x60\x45\x17\x00\x00\x01\x0f\x11\x30\x12\x97\x40' + b'\x23\x01\x0f\x91\x60\x45\x17\x31\x50\x04\x0f\x12\x31\x12\x97\x21\x21\x01' + b'\x0f\x91\x31\x12\x17\x31\x00\x21\x0f\x91\x60\x45\x17\x00\x00\x01\x97\x40' + b'\x23\x01\x13\x83\x60\x45\x00\x00\x00\x00\x17\x31\x50\x04\x97\x40\x23\x01' + b'\x13\x83\x60\x45\x00\x00\x00\x00\x97\x21\x21\x01\x17\x32\x54\x06\x93\x02' + b'\x22\x01\x00\x00\x00\x00\x97\x21\x21\x01\x00\x00\x17\x32\x54\x06\x93\x02' + b'\x22\x01\x00\x00\x8d\x24\x97\x40\x23\x01\x8d\x24\x97\x40\x23\x01\x01\x20' + b'\x97\x40\x23\x01\xcd\x20\x97\x40\x23\x01\x01\x20\x01\x20\xcd\x20\x01\x20' + b'\x97\x40\x23\x01\xb3\xc0\x00\x50\x97\x40\x23\x01\xb7\x40\x23\x01\x97\xff' + b'\xff\xff\x93\x80\xff\xff\x97\x0f\x00\x80\x93\x80\xff\xff\x17\x31\x00\x80' + b'\x93\x8f\xf0\xff\x97\x0f\x00\x80\x93\x80\x1f\x00\xff\xaf\xf6\x31\x5c\x1c' + b'\x5b\xa1\xb7\x51\xfe\x46\x0e\x56\x9c\xaf\x4c\x03\x8a\xe7\xda\x61\xfe\x6b' + b'\x18\x84\xc1\x6b\x0b\x38\xdb\x0b\xe7\xd1\x3c\x43\xed\x97\xe5\xa4\xe8\xe3' + b'\xeb\xf7\x39\x87\xa6\x86\x8a\x31\x6d\x64\x92\x6b\xcf\xaa\xf0\x90\x15\xfb' + b'\xc8\xf0\x06\xb0\xc1\x42\xf3\xae\xda\xd8\x53\xc2\xbc\x3e\xb9\xf5\xc5\x60' + b'\x7b\x4f\x91\xe9\xb3\x23\x54\x83\xcd\x44\x13\xe3\x40\xdc\xd3\x46\x8c\x95' + b'\x89\x7f\x43\x63\x58\x96\x25\x14\xd4\xdf\x09\x99\x3f\x85\xe8\xd0\x6e\x9c' + b'\xf3\xc2\x1f\xc0\x07\x32\xa3\x47\x0e\x77\x8d\x9a\x0c\x16\x1a\x4f\x79\x72' + b'\xe6\x9f\x86\xba\x7e\x8f\x54\xbd\x14\x3c\x8d\x82\xd8\x80\x45\xf7\x40\x4c' + b'\x2a\xe4\x93\x38\x5b\x20\xd3\x67\x37\xed\xb6\xb0\x5f\x9c\x4f\xe5\x57\xcd' + b'\x74\xab\x8a\x89\xe7\x17\x0b\xc0\x97\x50\xb7\xd8\x9c\xe1\xbc\x2f\x1a\x17' + b'\x50\xed\x7e\x87\xda\x34\x37\x39\xd1\x87\x1e\x28\x54\x92\xd3\xdf\x1b\xba' + b'\xf6\x27\x7a\x8e\x77\x32\x66\x14\x13\x22\x43\x2d\x39\x93\x1a\xb7\x1a\xf4' + b'\xeb\x52\x2d\xbc\xd9\x4b\xe4\x2d\xde\xb7\x0c\xf9\x72\x03\x20\xec\x91\x98' + b'\x1e\xf7\xac\x32\x19\xef\x5f\x52\x83\x7a\x09\x9d\x6e\xf4\xef\x9c\xb1\xc8' + b'\xe7\x95\xf6\xc5\x4d\x02\xbf\xbf\x05\xdf\xab\x96\x77\xca\x8d\x23\xfc\xa6' + b'\x13\x5b\xf8\x96\xd5\x01\x33\x44\xf6\x23\xe0\xa7\xeb\xc7\x3c\xe1\x8d\x89' + b'\xe4\x4c\x48\xe9\x2b\xf4\x80\xa3\xbe\x0d\xc6\xba\xb4\xd9\x15\xac\x6f\xeb' + b'\xae\xa3\x2f\xa4\xc6\x0f\x4b\xb1\xd6\x87\x93\x63\x11\x77\xaf\x59\x60\xdb' + b'\x4d\xe0\x7e\x0b\xee\x44\xc5\xa2\x1e\xdb\x4e\x8d\xc6\xfc\x30\xf5\xa0\xf6' + b'\x04\xeb\xa8\xda\x73\x3b\x3e\x84\xb2\xed\xdd\x12\xc8\x2b\xf3\x46\x36\xe1' + b'\x8b\xfc\x83\xa9\xd7\xd1\x36\x9d\xce\x67\x92\x6e\x5d\x96\x5a\x05\x70\xcd' + b'\x40\xae\x51\xf2\x9c\x2e\x05\x64\x59\xf8\xab\x90\xd9\x36\x8c\x5c\xdf\x63' + b'\x2d\x15\x00\xfb\x7c\x92\x6a\xda\x28\xc4\xdf\x98\x91\x20\x47\xe2\x12\xe3' + b'\x10\x17\x47\x6a\x0f\xf2\xfa\xe8\x28\x86\x44\x07\xe9\x72\x1d\xe9\x6d\x99' + b'\x7b\xd7\x73\xa3\x9b\x53\x3b\x2c\x73\x82\x0e\x85\x65\x1f\x9d\xad\x89\xac' + b'\x9f\x83\x95\xc8\x09\xd9\xcf\xf2\x4b\xec\xdb\xb9\x86\x56\x90\xf9\xf9\x2c' + b'\x4c\x34\x58\xbf\xb7\x67\x45\x1c\x86\xe2\xc9\x0f\x8e\x69\x92\x23\x31\x9b' + b'\xfd\x00\x8d\x48\xed\x68\x01\x73\xbe\x92\x6c\xb7\xbe\xb9\xeb\x16\x78\xa2' + b'\x7d\xbd\xbf\x03\x9f\x88\x12\x2e\xf1\xa4\x51\x22\x3f\x4e\x23\xcc\x97\x10' + b'\x34\x98\x83\xf2\x2a\xef\xa9\xe8\xa8\x95\xff\x21\x37\x7c\xde\xf6\x80\x7e' + b'\x7f\x92\xac\x70\x37\xfd\x93\x76\x4c\xb6\x43\xe3\xc6\x77\x7b\x49\x6a\xa6' + b'\x38\x13\x8e\xe1\xa8\x8d\x02\xe0\x0a\xe0\xd6\x8a\x5e\x55\x1c\x0a\xc6\x53' + b'\x08\x59\xca\x54\x0f\x0d\x37\xd5\x84\xb2\x1e\xee\x58\x56\x02\xe7\x37\xaa' + b'\x74\x39\x8a\x7e\x1a\x61\x08\x78\xb6\x25\x83\x7c\x78\x8b\xd5\x42\xdf\xe4' + b'\x4f\x16\xb9\xd4\xc8\xd7\xc2\x21\x2e\xc4\x08\x65\x6f\x7c\x9f\xf9\xfb\xb9' + b'\x5a\x03\x31\x11\x28\xb4\x8d\xa1\x3f\x63\xe3\x1e\x47\x33\x34\x01\x07\xfd' + b'\xd8\xc9\x1e\x06\x8e\x26\x6c\xfd\xa2\x0b\xf6\x9d\xc4\x51\xa1\xf5\x62\xc9' + b'\xaa\xef\x6a\xe9\x52\x4e\x08\x9a\x81\x3c\x9b\x88\x39\x73\x51\x57\x7a\xdf' + b'\x7d\xe6\xdc\x20\xf1\xd3\xbd\xb5\x24\x5e\xaa\x86\x28\x54\x75\x92\x3e\xc8' + b'\xe0\x46\x62\x61\x82\xfd\xe9\xbc\x70\x3b\x13\xea\x1a\x91\xd0\xf7\xb1\xc1' + b'\xca\x6e\x76\xee\xcd\x21\x74\xf5\x75\xe9\x87\xb3\xb1\x68\xf9\x13\xc9\x7c' + b'\x10\xb3\x38\x81\xee\x4b\x6b\x08\xdc\x3c\xff\x8d\xfd\xc9\xfc\x74\xb7\xc9' + b'\x95\x2b\xbe\x0a\x15\x45\xbe\xc6\xad\xb7\xda\x77\x33\xea\x2a\x6b\x6b\x18' + b'\xb7\xd7\x20\x93\x13\x20\x21\x10\xe9\x1d\x84\xa1\xe6\x19\xcc\xa4\x24\xe1' + b'\xe9\xe2\xa8\x97\x99\x82\x0e\xcd\x6c\x38\x38\xd8\x50\xef\xaf\x70\x83\xc2' + b'\x90\xa4\xd2\x7a\xc1\x57\x1b\xa7\x70\xe7\x4b\x94\xc9\x34\x76\x71\xcb\x10' + b'\xf3\xd9\xdd\x5f\x11\x15\x37\x61\x05\xe6\xd2\x88\xa8\x62\x2c\x7b\xdc\xed' + b'\xd2\xf7\x94\x42\xdf\xdf\xd7\xa8\x13\x4d\x19\xdf\x5d\x0c\xb8\x3a\x6b\xca' + b'\x50\xa3\x2b\x55\x89\xfd\xdd\x32\x60\x09\xad\x3c\xf6\x7f\x34\x8a\xc1\x13' + b'\x69\x98\xbb\x7c\xe6\xd4\x5b\x43\xe0\x14\x7e\x4b\xde\xce\xee\x09\x23\x78' + b'\x07\x00\xaa\x67\x09\x57\xa3\xff\xd6\xd7\x89\x97\xea\xf2\x30\xa5\x6e\x16' + b'\x79\xca\x59\x59\xde\xd7\xa5\xbc\xa5\x93\xc5\xc8\x0b\xcc\xc8\xb5\x33\xd1' + b'\x0c\xd7\xd0\xe2\xae\x59\x7a\x99\x4b\xaa\x3e\xba\xc0\xb8\x84\x19\x11\x62' + b'\xf1\xb6\x1e\x96\x4a\xe3\x5f\x55\xb0\x27\x0b\xe3\xf9\x17\xba\xc9\xfa\x69' + b'\x23\x74\x02\x6e\x1e\x40\x28\xde\xf8\xac\xf7\x0a\x0e\xe8\xc0\x2c\x7f\x0a' + b'\x10\xde\x60\xc0\x05\x6b\xa3\xfe\x82\x5e\xc8\x7c\xc7\xeb\xf0\xc9\x59\x0e' + b'\x09\x82\xec\x02\x2e\xe4\x0c\x3d\xcc\xcc\x69\x4b\xd7\x79\x29\x37\x39\x2f' + b'\xa2\xdd\x2d\x24\x3b\xf5\xa1\x02\xe0\x91\xcb\x3a\xa0\xd4\xbc\x8c\xd6\xea' + b'\x70\xe2\x27\x3d\xaf\x91\x88\x86\x0a\xb2\xbd\x44\xe1\x5f\x21\x0e\x83\x5c' + b'\x04\x24\x5e\xe4\xb6\x29\x1e\x56\xfd\xda\xe2\xd4\xc5\x53\xb6\xec\x90\x65' + b'\x7d\x18\xeb\x88\xca\xa8\xcc\xab\x07\xed\xba\x8b\x49\xbe\xaf\xa7\xa2\x65' + b'\xd0\xc1\xbb\xcd\x9b\x9e\xa1\x60\xf1\x58\x4d\x81\xbd\xca\x99\xa9\x52\x64' + b'\x51\x1e\x0f\x59\x0b\xc9\xe4\x54\x87\x93\xfb\x2a\xf9\xcb\xeb\xb4\x99\x86' + b'\x52\x3a\xe7\x43\x92\x34\xc4\x50\xfe\x5e\xf9\x51\xc2\x4a\x6f\xd1\xa3\x7b' + b'\x9b\x87\xcf\x22\x1b\xcb\x4c\x14\x96\x37\xc8\x2f\xbe\x1b\x6a\xa5\x5e\xfc' + b'\xd9\x23\x4c\xd7\x81\x45\x28\x43\x90\x98\x14\x33\x13\xaf\xbb\xe2\xd2\xd6' + b'\xad\x1e\xea\x44\x56\xb2\x73\x14\xcd\xdd\xb9\x2c\xda\x92\x4f\x26\x69\xd0' + b'\x6c\x92\x13\xfc\x2a\x27\x2f\x3d\xd7\xea\x1f\xa9\xc0\xcd\xc7\xaa\x11\x1d' + b'\x5d\x84\x31\x2a\x62\xea\x56\x3c\x7c\xa5\x62\xe6\x75\xce\x78\x88\xca\xa2' + b'\xb0\xfa\xdf\x87\xe4\xfe\x30\xa5\xcb\xf7\x4f\xdc\x15\xac\x61\x46\xd7\xc3' + b'\x31\x2d\xff\xad\xd3\x61\x93\x48\x30\x0b\xd1\xfa\xad\x81\xf4\x8c\x08\xd9' + b'\x8b\x38\x7e\x56\x2f\xcd\x33\x44\x7a\x94\x8b\x51\x57\xbc\x7e\x56\x69\x51' + b'\xb7\xfd\x9a\xe7\x08\x6b\xe2\xb6\xec\xd6\x42\xf4\xaf\xcd\x2c\x2d\x24\x5b' + b'\xfb\x57\xa0\x75\xeb\x2b\xc6\x42\xe7\x44\x98\x50\x96\x4f\x4d\x30\x37\x56' + b'\x9b\x19\x0c\x87\xef\x4e\x7b\x9f\x1c\xa7\xcc\x40\x02\xc7\x97\xa2\x3c\x82' + b'\xcd\x02\xc4\xb4\x47\x5c\x05\xdd\xab\x52\x0d\xe2\xa8\xa8\xfb\xb4\x2f\xeb' + b'\x03\xaa\x8a\x1f\x51\x56\x5f\x53\x1e\xf6\xf6\x5a\x78\xc3\x5d\x3c\x78\xa4' + b'\x98\x7d\x81\x43\xcf\x8e\x26\x78\x36\x21\x2c\x65\x0c\x2f\x0f\x96\x4e\x60' + b'\xed\xad\xb3\x0b\xa3\xa9\x65\x1b\x6d\xc2\x57\xe5\x66\xef\x62\xe7\x33\x31' + b'\x75\x59\xa9\xab\x7a\xd6\x10\x87\x05\x1f\x1d\x54\x7f\x0a\x01\x33\x15\xa5' + b'\xdc\x7b\xc0\x49\x3d\x18\x2e\xa4\x07\x90\x8b\x3a\xc2\x01\x93\x6b\xac\x0e' + b'\x41\xbd\x95\x47\xdc\xb2\x9b\x5c\xbd\x9c\x8f\xd2\x41\x6b\x4d\x02\xb5\x8b' + b'\x1a\xe3\x2f\x21\x74\xba\x5c\x36\xbb\xef\xa1\x68\xfd\xe3\x25\x92\x2a\x01' + b'\x45\xc5\x5d\x02\x61\xec\xd4\xa3\x58\x22\xa5\x0d\xad\xbf\xf0\xdc\xe0\x64' + b'\x96\x3c\x9a\x52\x2c\x3c\xba\x29\x1f\xdf\xbc\x49\xe0\x01\x0e\x3e\x03\x6f' + b'\x2a\xd7\x12\x82\xf9\xb7\x8f\xa6\x76\x80\x82\x57\xe4\x19\x93\x7f\x6b\xbf' + b'\xbb\x25\xe9\xda\x04\xa5\x23\xe4\xa6\x31\x22\xa9\xa0\x4d\x80\xb3\xcf\x7a' + b'\x6a\x5f\x20\xe1\xdf\xa3\x38\xc3\xbc\xcb\x42\x27\x8b\xfd\x4c\x74\xd7\x50' + b'\x19\xfa\x34\xbf\x2b\x57\x68\xcc\xa4\xe8\x7f\x73\x62\xe9\xd2\x83\xca\xb1' + b'\x26\x02\x75\xe2\xce\xb7\x09\x59\xb5\x55\xcd\x8c\xa5\xe6\x87\xd9\xa5\xb2' + b'\x30\x0d\x7e\xd4\xf5\xfd\x48\x58\xe7\x1a\xdb\xb1\xcc\x01\xb4\x41\xe3\x82' + b'\xf8\xec\xdb\xad\x41\xa8\x3a\xe6\x8e\xc1\xbf\x33\x73\xf0\x40\xf2\xc4\x35' + b'\xef\x0c\x8d\xd6\x27\x68\x88\xf3\x69\x3c\x34\x4c\xbe\x2c\x38\x99\xda\x79' + b'\x41\x14\x5f\xcf\xd5\x1f\x02\x48\x0f\x42\x3a\xd3\x77\x2a\xe0\x05\x00\x07' + b'\x6d\x88\xfa\xd7\xc4\x2e\x23\x82\x5a\x5c\x1b\x34\xd5\x5c\x48\x35\x2b\x1d' + b'\x54\x2d\x66\x63\x6f\xa0\x36\xe7\xca\x16\xec\xcb\x1d\x59\x53\x17\x30\x18' + b'\x45\x54\x9a\xa0\xb0\xb6\xd4\x85\x12\x1d\xba\x3e\x3a\x0e\x6b\xa0\x71\xdb' + b'\x41\xa8\xc2\x0b\xbe\xae\xd6\xdc\x07\x2a\xf3\x38\x42\x39\x8c\xdc\xd9\x3c' + b'\x92\xad\xc1\xa5\xca\x7c\xe3\x05\x8a\x4e\xa5\xfc\x29\xe6\xa4\xeb\xf2\x62' + b'\x99\xc8\x3e\xa1\xf2\x32\xd9\x34\x6b\x65\x11\x44\xa1\xa3\xf1\x62\x48\xbc' + b'\xde\x2b\xc1\x69\x7a\x66\x65\xa3\x4d\x09\x8f\x3f\x6b\x28\x07\xaa\xc9\xfa' + b'\xdc\xa2\x2e\x47\x07\x3f\x8b\xa8\xe3\x7c\x0b\x2b\x38\xe9\x57\xf9\x52\xd1' + b'\x60\xb7\x74\xad\xc0\x03\xec\x2c\x2c\xf3\xd6\xf5\xed\xb2\x98\x1c\xf9\x9f' + b'\x5b\x84\x48\x3e\x00\x53\x6a\x39\x3c\xc1\x32\x8f\x92\x92\x46\x06\x3f\x07' + b'\x0a\x2b\x33\x36\x1f\x09\x2b\x0c\xbb\xc3\x28\xb4\x63\x84\x38\xab\xc2\x38' + b'\xfe\x2c\x71\x3a\xed\xa4\xc9\x7f\x36\x10\x86\x76\x17\x90\xa1\x4a\xc6\xc0' + b'\x53\xf1\xcd\x0e\xb5\xf5\xc2\x18\x79\xfa\xc3\x3c\x32\xc1\x68\xa4\xfb\x56' + b'\x48\xc5\xd5\x7e\xd5\x5b\xf4\xec\xeb\x96\x36\xb1\x56\x89\xa3\x23\x97\x58' + b'\x19\x59\x70\x92\x53\x33\xce\x85\xf4\x37\x29\xef\x8d\x71\xb4\x62\xf0\x89' + b'\xbe\xe4\x75\xa9\x7a\xab\x5b\xd1\x34\xfe\xf4\xcb\x56\x0d\x24\xc6\xa0\x77' + b'\xf9\x6e\xfd\xed\xa5\x26\xdc\x32\x98\x91\x95\x88\x1a\x53\x6c\x90\xfc\xe7' + b'\x3b\x57\xb8\x70\x55\xac\x3b\xab\xba\x60\x71\x5a\xd7\x6a\xc8\xd4\x57\x6e' + b'\xfb\x34\xa0\x93\xc5\x35\x1b\xdf\x88\x87\x6f\x85\x6e\xab\xdc\x26\x1b\x32' + b'\xd3\x56\xdd\x8d\xb6\x4f\xe7\x8e\xb9\xaf\x62\x11\x1d\x5d\x45\xbe\xf0\x0a' + b'\xf3\x0b\xe9\x7c\x93\x59\x01\x01\x04\xdd\x28\x1f\x0f\xfb\x75\xed\x88\x2c' + b'\x3c\x6f\xba\xf5\x1e\x1c\x06\x3c\x7a\x4b\xfa\x6a\x55\xed\x76\x3f\x69\x09' + b'\x98\x6a\x0a\x9c\x48\x32\xbb\x57\x2d\x30\x44\xb5\x5c\x80\x24\x16\x76\x43' + b'\x33\x7c\x7f\xad\xc8\x79\x17\x1d\x66\x8d\x5c\xd0\x96\xf4\x3a\xa1\x90\x82' + b'\xd3\x4b\xda\x01\x7c\x1e\xb6\xd8\x9f\xdb\xef\x15\x1e\x22\x91\x9d\xcf\x59' + b'\x16\xe6\x77\x7c\x74\xd3\x4c\x0a\xc8\x87\xab\x58\x09\x7f\xa4\xe3\x80\x20' + b'\x02\x36\xf8\xa1\x11\xe7\xb6\x2f\x09\x47\xcc\xd8\xa1\xe2\xbf\x18\x5f\x33' + b'\xeb\xab\x3d\xb3\x32\xe9\x0c\x3c\x68\xb0\x1f\xe8\xd0\x21\x1e\xc8\xc2\x30' + b'\xb0\x78\x5f\xb9\xc0\x2c\x92\x61\x0e\x51\x79\x6d\x84\x64\x19\xc1\x18\x4b' + b'\xaa\x24\x87\x12\xd4\xa7\xfa\xa4\xc8\x19\x6c\x8b\x49\x1c\x03\xa8\xd6\xc3' + b'\xd4\x68\x24\xe3\xb9\x9d\x50\x3d\x02\x69\xfe\x1a\xb5\xa9\x3e\x3c\xbb\x12' + b'\xe3\xb6\xb6\xac\xcf\x22\x37\x18\x3f\x3a\xc0\x15\xfe\x95\x7d\x22\x78\x36' + b'\xc0\xc8\x73\xc2\x32\x71\xdc\xe7\x1a\x1a\x23\xd6\x2c\x07\x8c\xe2\xb3\x5b' + b'\x04\xea\x73\x43\x24\x33\x58\x22\xc8\xd5\x45\x40\x0b\x05\x09\x7e\xc7\x3b' + b'\xf0\xa3\x22\x0a\xbd\x45\xe0\xe9\x4c\x6c\xcb\xff\xc7\xcf\xe9\x3a\x13\x0e' + b'\x6e\x6b\x30\x36\x41\x75\x77\x4c\x7a\x80\xcb\x41\xbb\xbb\xe4\xdd\xc5\xa1' + b'\x22\xa6\x8a\x6f\x12\x55\x6e\xda\x25\x58\x14\x38\x66\x82\xa3\x96\xb9\xe4' + b'\x0c\x30\x31\x86\xb0\xfc\xc8\x6b\xb7\xac\x48\x7c\x4e\x6a\x22\xd8\xd9\x35' + b'\x2e\x48\x0f\x53\xa0\x23\x8b\x06\xa6\x2e\x9c\x5f\x13\xa8\x8f\x44\x2f\x3f' + b'\x40\xf7\xaa\xf7\xa3\xf2\x73\xf1\x5c\x96\xca\x36\xcb\xf8\x7e\xda\x4b\x1e' + b'\xfd\xd6\x24\xa3\x04\xc0\x02\x17\x69\x91\x5b\x98\xd0\x9b\x8f\x7a\x92\x32' + b'\x6c\x06\x24\xc9\x9c\xee\xff\x67\xe6\x7d\x41\x31\x9b\x3e\x07\xbf\xe2\x0b' + b'\x7f\xe4\x23\xe8\x76\x7e\x80\x46\x1a\x0f\xc1\xac\x42\x2d\xb2\x66\xf6\x4e' + b'\x54\xf5\xb5\x3a\x72\xf6\x6b\x0d\x35\x72\xcc\x17\x7d\x4c\xfb\xa0\x34\x71' + b'\x1f\xb5\xb8\x39\xc4\x79\xe5\x06\xa6\x98\x6c\x9d\xe6\xc0\x92\x9c\xfa\x05' + b'\x92\x65\x12\xc7\xd7\xdf\xde\x55\x2b\xda\xf5\x5f\x4b\x14\x14\x03\x4d\xd9' + b'\x7c\x33\xdf\x23\xcb\x4c\xc0\xb1\x0c\x52\x4d\x07\x57\xe0\x6c\x6a\xa7\x44' + b'\x49\x86\x99\x74\x60\x8e\xd3\xab\xa3\xe8\xaf\xf0\xc1\x2b\x23\xa0\x4e\xee' + b'\xec\x0e\xa0\xf9\x61\xed\x00\xb8\xcd\x6c\x22\x75\xb0\x6b\xfb\x49\xdf\x5b' + b'\xd8\xb3\x06\x7b\x9b\xb5\x6b\x5c\xe1\x8f\xfc\x2f\x7d\xe9\x3e\x1d\xe2\x9f' + b'\x0b\xe2\x57\xd8\x4e\x7a\x4d\xff\xe5\x48\x48\xc5\xa3\x20\x78\xaa\x9b\x13' + b'\x5f\x07\x6f\x40\x96\x6b\x70\x13\x54\xae\x31\x36\x4d\x3c\x18\xa4\x14\x67' + b'\x1e\x62\x66\x04\xaa\xae\xc9\x4e\xcf\x41\xf8\x6a\x54\x57\x71\xc3\x98\x07' + b'\x2e\x08\x1b\x83\xb6\x4c\xb9\x03\x88\xd2\xa7\x9c\x39\xc6\xfe\x9f\xca\xa9' + b'\x4d\x93\xf7\x1c\xd4\xef\x87\x28\x46\xf8\xeb\xde\x00\x19\xe6\x1b\x9c\x9c' + b'\x67\x56\x9f\xef\x28\x47\x8b\x61\x0d\x8a\x00\xd7\x33\x4d\x6a\x2a\x6a\x3e' + b'\x19\xf1\x66\x5f\xe9\x51\x3e\xe9\x6a\x24\x04\x07\xc1\x6b\x5d\x60\x5a\x85' + b'\xa7\xe6\xe6\xb4\x70\xe6\x8b\xa3\x33\xf5\xcd\x9d\x33\xe6\x8e\x99\x45\x78' + b'\xea\x83\x61\x55\xa8\x66\x5c\x69\xd1\xb9\xc9\x2c\x3e\x71\x12\x24\x25\x82' + b'\x0a\xb1\x25\x3d\xa6\xf2\xdb\xda\xd8\x69\x73\x1d\xe1\x5e\xa1\x43\xb3\x49' + b'\xa9\x0f\xb2\x7a\xc8\x7b\xa6\x06\xec\xb8\x2a\x12\x3a\x34\xc3\x5f\x71\x69' + b'\x51\x4c\x43\x29\xb6\xb7\x47\x97\x15\xe8\xda\xc8\x31\x83\xd7\xe3\xfe\x9f' + b'\x5e\xa4\xa5\x4b\x5d\xcf\x5d\x97\x03\x20\xf7\x74\x89\x48\xc1\xcd\x72\x77' + b'\x84\xb9\x0e\x99\xa1\xe9\x61\xd2\x6c\x38\xb5\x6a\xd7\x13\x0f\x7c\x5e\x6c' + b'\x4b\xbb\x03\x4e\xdb\xfa\xc2\x65\x43\x83\x32\xb5\xfa\xb6\x6e\x09\x4f\x0f' + b'\xf2\xb0\xe1\x5e\xe8\x96\xc9\xbf\xa9\xd8\x3b\x08\x44\x86\xc3\x47\xd4\x9f' + b'\x42\x96\x04\x85\x1a\x36\x3a\x14\xec\xa8\x1d\x3b\xb7\x0f\xeb\x98\x6e\xd3' + b'\x2e\x37\x92\xd7\x0f\xcd\xdf\x53\x53\xa3\x9a\x27\x42\xdc\xbd\x46\x61\xd7' + b'\x7c\x9b\xec\x68\x43\x09\xa3\xfa\x19\x8e\x92\x87\x61\xc0\xbe\xf3\x98\xcd' + b'\xc0\x77\x20\x13\x1a\xba\x3a\x5c\x97\xf7\xa2\xf8\xcf\x1e\x94\xbb\x86\xd7' + b'\xc4\x29\xd2\xdd\xb7\x64\x64\x18\x25\x22\x0b\xbd\xef\xcb\x34\x0f\xde\x4f' + b'\xca\x18\xab\x61\x10\x4e\x59\xdf\x6c\xed\x9a\xf3\xc5\x5e\x1c\x97\x3c\xd4' + b'\xfb\xa0\xec\x20\xc3\xf8\xdd\xb2\xc3\x12\xc2\xa2\x61\x8c\xba\x0c\xed\xca' + b'\x5a\x46\xa9\xc7\x34\x43\xba\xf9\xa2\xd6\x90\xde\xaa\x8b\x7e\x97\xac\x41' + b'\x8f\x89\xf4\x52\x9b\xb6\xf4\xfc\x42\xaf\x09\x2f\x79\x63\x75\x23\x2a\xa9' + b'\x66\xe4\xa2\x08\xbb\x32\xe6\x65\xbe\x65\xfc\x6a\xa6\x8b\xf3\x9a\xde\x8f' + b'\x50\xd2\x8b\x92\x81\x94\xc1\xfb\xf8\x37\x1e\x22\xe0\x84\x07\x83\x8d\xc2' + b'\xb5\x73\x27\x73\xd8\x24\xdd\x7f\xaf\xd1\x19\x8d\x60\x6a\x60\xeb\xfc\xe1' + b'\x80\xbe\xdc\x78\xf5\xfa\x9a\xd5\x7f\xa1\x58\x0c\x63\x0e\x7f\x8b\x81\x58' + b'\xaf\x5f\xd7\x5e\x30\xf0\xec\x90\x5a\x4c\x7b\x57\x2d\xfb\x15\x0a\x73\x0a' + b'\x04\x0e\xdf\x83\xaf\x38\x8f\x13\x46\x0f\x9e\xc7\x67\x4d\x26\x3e\xab\x56' + b'\x2e\x97\xe6\x89\xe3\x62\xe0\x11\x5d\xf5\x1b\xd1\xff\x1f\xdf\xde\xa3\x8e' + b'\x16\x32\xa1\x5c\x41\x3f\x24\xa8\x8c\x4a\xe6\x38\xa1\x15\xcf\x87\x9e\xb3' + b'\xe9\x7e\xc4\x47\x73\xdf\x18\x72\xfe\xf7\x50\xa1\x85\x67\xd4\x27\xc3\x15' + b'\x66\xe7\xbe\xf3\x32\xa4\x2b\xd3\xb9\xfa\x5a\x57\xad\x44\xd5\x71\x8b\x48' + b'\x50\xa3\xba\x4f\x9a\x0b\xf0\x1f\x72\xc4\x46\x35\xda\xad\x1d\x98\xa0\x4f' + b'\x3c\xcb\x22\xf6\xc5\x7c\x4d\x73\xc0\x23\xe4\x4b\x6b\x35\xee\x26\x84\x88' + b'\x31\x74\xa8\xa3\x39\xee\xd8\x13\x9b\xf5\xab\x3b\x44\xe7\x06\x66\xdd\xcc' + b'\xe3\x2b\x3f\xa3\x4e\x23\xef\xb9\x58\xdd\xdf\xdc\x66\x10\x51\x0e\xb3\x8a' + b'\xfc\x8c\x9d\x98\x81\x48\xd3\xc6\x2f\xda\x2c\x0d\xa6\x0f\x38\xe5\xb3\x86' + b'\x08\xa2\x3f\x61\x7f\x1f\x3d\xe5\x2f\x8e\xf3\xe3\x18\xf0\x6f\xb5\x88\xf0' + b'\xfd\x5b\xb6\x2d\x35\xe3\x3a\xdb\xf2\x72\xc0\xa5\xf8\xc9\x47\x37\x2a\xc7' + b'\x56\x67\xac\x86\xf6\xa0\x69\x0e\x90\xd8\xc4\x18\xc8\xc1\x73\x7f\xee\xa9' + b'\x62\x28\x84\x54\x9a\x45\xfa\x92\x0e\x41\xca\x38\x08\x20\x9f\xb5\xa6\x95' + b'\x55\x0f\xa4\xe5\xe7\x68\xfd\xb0\x29\x70\x2f\x18\x19\x91\x40\x9e\xe5\xdb' + b'\xe3\xdf\x6d\xf1\x21\x37\x29\x29\x58\xc8\xde\xfe\x5e\x33\x0e\x02\x18\xf5' + b'\x6a\x15\xa5\x93\x86\xd4\xab\x9f\x65\xec\x3d\x4b\xc7\x20\x2a\x34\x11\x4b' + b'\x6c\x3a\x75\xc4\x03\x53\xc2\x61\x87\xd0\x63\x9f\xc6\xcd\xb5\x6b\x60\x3b' + b'\x40\x0c\xda\xa5\xf8\x18\xf0\xbf\x38\x1b\xf3\x4a\x66\x5f\x84\xdb\x23\x87' + b'\x2f\xe6\xe8\xb6\xb6\x4b\x55\x7c\x18\x0a\xe8\x79\x45\x28\x85\x20\xcd\x7d' + b'\x38\xbe\x3c\x70\xd9\x2f\xba\x3f\x8f\x3f\x1b\xb2\xc6\x4a\x98\xaf\x00\x4f' + b'\xfa\x55\xcb\x13\x60\xb3\x8c\xa5\xdb\x11\xc5\xa9\x8e\xfd\x67\xca\x6e\x40' + b'\xf9\x28\x7f\x88\x67\x9a\x3b\x2e\xe4\xd3\xdd\xe4\x22\xd7\x3a\xee\xea\x9a' + b'\xa1\x76\x3f\x7d\x87\x05\x26\x15\x02\x8d\xdf\x70\xcd\xd9\x99\x4c\x61\x00' + b'\xe7\x9c\x2e\xcb\x70\x0b\xb0\x92\xe3\xea\x80\xcd\x84\x22\x44\xc3\x9f\xcb' + b'\xc8\xc5\xe1\xcb\x52\xc0\x3b\x1f\x99\xd4\x6b\xfb\xd5\x52\x97\x03\x1e\x07' + b'\x0f\xce\x9a\xf2\xb8\x1a\xbf\x3c\x3c\x03\xff\xdb\xcf\xc8\xa0\xb0\x93\xf2' + b'\x70\xce\x11\x0a\xa3\x7d\x05\x78\xcf\x9c\x7b\xed\xa4\x8a\xbb\x3e\x7c\x73' + b'\x58\x3c\xaf\x95\x3f\xaf\x70\x0e\x77\x11\xbe\x0a\x03\x2f\xd8\x15\x39\x7b' + b'\x92\x3e\xf3\x61\xda\x6f\x4f\x7e\xf9\x0a\xbc\x76\x7e\x15\xb2\x2d\xaa\xf1' + b'\xdc\x1a\x00\x53\x2b\xbe\x5d\x2f\xed\x36\x44\x26\xb1\xd6\x64\xa5\x37\x3f' + b'\x14\x86\xbd\x0d\x91\x7a\x83\x0f\x8f\x35\x3c\x39\x27\x19\x53\x27\x6c\x7f' + b'\xe5\xca\xae\xd3\x00\xf2\xf9\xb1\xc8\x5e\x56\xff\x9d\x6a\x86\x5a\x78\x17' + b'\xd4\xfb\x26\x63\x31\x62\x9c\x58\x7b\xf0\x7f\xe8\x6f\x64\xb2\x1d\x37\xb2' + b'\x0f\x31\x63\xd7\x8f\xba\xd6\x2c\x24\x5c\x86\x9c\x73\x5b\x98\x99\xbe\xc9' + b'\xfc\x5b\x21\x77\x4b\xa0\x5f\xba\x04\x11\xd7\x3c\xc3\xe6\x6d\x27\xbd\xfc' + b'\xe1\x93\x28\x05\xf0\xae\xa2\x63\x09\x3a\xfd\xc8\x03\xf9\x23\x24\x70\x6e' + b'\xc4\xd0\x28\xc8\xe1\xff\x04\xa5\xe5\x71\xcc\xa2\x6d\xad\x35\x95\xb2\x25' + b'\x44\x54\x89\x4d\x8e\x86\x15\x91\x7f\x38\xb5\xef\xa6\x79\xbf\xce\x42\xa1' + b'\xcd\x46\x46\xb2\xb8\x12\x54\x25\xbf\x8a\xbb\x71\xaf\xff\xc6\x38\x4c\x54' + b'\xbe\x62\xe6\x3d\x9a\x9b\x2d\x41\x15\xec\x0f\x57\x8d\xdd\x9d\xd3\x8f\x55' + b'\xe5\xe4\x7b\xa4\x6e\x36\x16\x1d\x35\xdc\x56\x81\x30\x14\xe3\x16\x52\x7e' + b'\xb2\x7f\xbf\xc7\x6b\xce\x1e\xf9\xab\xbb\xcc\x3b\x11\xb2\x1f\x8c\x56\x8d' + b'\xc2\x6c\xaa\xf7\x48\x00\x78\x79\x15\x5c\x8f\x67\xda\x41\xe6\x99\x08\x51' + b'\x67\x26\x4a\x13\xe2\x17\x4e\xf3\xc9\x6d\x7f\x1f\xfa\x41\x8c\xa4\x38\xd4' + b'\xa5\xb0\x4d\xba\x0c\xdd\x21\xe6\x1e\x07\x7f\x27\x58\xe7\x4d\xa3\xfa\x2f' + b'\xba\x48\x22\x83\xb5\xa1\xa2\xaf\xe2\x2e\x53\x1a\x03\xf8\xcb\x50\xb2\xd7' + b'\x2d\xd3\xbe\x4c\xda\x3d\x73\x33\x24\xc0\xd6\x1e\xf0\x90\x66\x12\x13\x1b' + b'\xb4\xb5\xca\x96\xe4\x1e\xb1\xe7\x16\x7c\x37\xc9\x53\x65\x9c\x11\xb1\x77' + b'\x4f\x24\xaa\x73\xe4\x80\x92\xd4\x10\xf8\xe7\x23\x14\x9b\xd8\xde\x31\xbc' + b'\xfc\xe2\xa3\x13\x5e\xdb\xdc\xb2\x40\x78\xc3\xf1\xef\x12\x15\x99\x86\xf9' + b'\x19\x18\xce\x29\x10\xb5\x4c\x24\x50\x25\x03\x81\xe1\xff\x64\x85\x12\xc2' + b'\x60\xee\x74\xa0\x67\x38\x91\x56\x4a\xa6\xf0\xd0\x9f\x09\xe8\x6d\x33\xf9' + b'\x22\x7f\x1d\x72\xa4\x20\xf4\x86\x20\x58\x0b\x32\x1a\x6b\x21\x8f\x0b\x88' + b'\xc7\x9c\xde\x11\x42\xce\xe2\xe1\xd8\xca\x4f\x0b\xc3\x71\x8a\xe1\xe4\x2f' + b'\x01\xd8\xb5\x21\x30\xc0\x54\x4a\x2b\x75\xd9\x36\xfd\xa0\xd2\xdb\xb2\x14' + b'\xaa\x94\xf5\x82\x5e\x44\x8d\x22\xb6\x17\x03\x9a\x46\x04\x72\xfb\x26\xa2' + b'\xbb\x7a\xec\xe6\xef\xc6\x1c\xec\x66\xee\xc7\x18\x02\x71\xac\xf8\xf3\x0b' + b'\x3c\x80\x2d\xf2\x98\x30\x8c\xde\x34\xfe\xda\x5a\xa0\x95\xd4\x8d\x7c\xc3' + b'\x53\x98\xaf\xb9\x87\x77\xd2\x89\xe8\x7e\x81\xdc\x89\xbe\x5c\xb6\xb0\xf4' + b'\xe6\x3d\xd3\x1b\x3b\xad\x75\xdc\x42\x4a\x69\xbe\x0d\xbc\x57\xbd\x75\xde' + b'\x34\x47\x67\x1c\xc6\xe9\xf8\x4f\xa7\x55\x06\x57\x49\xec\x94\x1c\x07\xd0' + b'\xc9\x7d\xac\x0c\xc7\x15\xca\xd4\xd1\x21\x91\x46\xff\xc5\x8e\x67\xe2\x54' + b'\x50\xda\xa3\xf7\x2f\xa9\x4e\x79\x96\xe3\x95\x9d\xb3\x5f\x1a\x5f\x6b\xe1' + b'\x74\x35\xb6\x45\x57\x47\x8b\x56\x0d\x19\xbd\xef\x6d\x0d\xc9\x11\x04\xf9' + b'\xba\x53\x72\x50\x36\x07\xee\xe9\x66\x08\x48\xd1\xea\xbc\x07\xa0\x01\x5e' + b'\xe7\x8c\xb4\xf4\xa6\x72\xe3\x13\x7f\xad\x24\x84\xa6\xdf\xd7\x18\x2f\x0d' + b'\x1f\x1d\xf6\x86\x26\x3e\x57\x10\xfa\x5e\xb0\xfb\xbc\x97\x87\x71\x8c\x2d' + b'\xe3\x6f\x41\x62\x1c\x65\xe6\xc2\x44\xbd\xda\x74\xca\xfa\x91\xc0\x80\xb7' + b'\xfe\xd7\xc7\xf8\x36\x77\xf3\xf2\x0f\x7b\x63\x9b\xa8\x46\x0a\xe9\xa9\x27' + b'\x4f\x8f\xe9\x93\x4d\xc4\x07\x17\xbe\x99\xd8\x3e\x50\xd6\x15\x18\xcf\x4b' + b'\x8f\xc2\x3e\x9e\x3d\xa1\x39\xe6\xe8\x44\xcf\x91\x6b\x1e\x20\x54\xb2\x6d' + b'\x18\xb9\x85\xd6\x52\x5d\x14\xa3\x33\x2a\xbb\x02\x75\x4a\xc5\xb3\xe9\x02' + b'\x55\x22\xe8\x3d\x66\xb8\xce\xd1\xd6\xee\x26\x88\x5c\x3e\x42\xe1\x15\x94' + b'\x3e\x29\x37\x71\x53\xf2\x74\xc9\x3d\x39\x7c\x26\x3b\xd1\x48\x24\x0e\xaf' + b'\xdc\xdc\x80\xb2\xcb\xa6\x3b\x27\xe5\x7d\x08\xfa\x11\x46\x23\x49\xb7\x77' + b'\x3b\x2b\x40\x78\x64\xbc\x9e\xa0\x8e\xe7\xc4\x9c\x96\xa0\x79\x16\x52\x44' + b'\xbd\x8d\x6b\xa2\x0a\x73\x9c\x1c\xb9\xbf\x65\x70\x36\xa0\x9c\x76\x19\x00' + b'\x33\xb7\xa0\xc1\x9e\x64\x5d\x34\x04\xd6\x4b\x57\x1a\x08\xe4\x85\xaa\xef' + b'\xf8\x46\x0b\xb1\x05\x70\x22\x3c\x10\xbe\xb2\x29\xbe\xe5\xe1\x5f\xa6\x7f' + b'\xc3\x04\xb4\xc8\xda\xff\x1f\xf5\x07\x03\x7a\xb1\xf2\x73\xf7\xfd\x24\xfc' + b'\x6d\x46\x38\x7e\x04\xeb\xa7\xc3\xd0\x88\x22\x77\x08\xe5\x7b\xbc\xad\x55' + b'\xbb\xcc\x4a\xc2\xd0\xc5\x73\xc2\x38\x6a\xc0\x5c\x66\x2d\xa3\x9f\xab\xa7' + b'\x8a\x53\x6a\x5a\xdb\x8c\xd1\xe3\x72\x4c\x9f\x1f\xa2\x5a\xec\xec\x1c\xbc' + b'\xb1\x8f\x7e\xe9\xf9\x3e\x46\x60\x6c\xe9\xff\x17\x90\x89\x6a\xfb\xe3\x46' + b'\x87\xb5\x29\xf9\x01\xc9\x19\xa3\x23\x05\x90\x40\xc1\x41\xcf\x3f\x2b\xc9' + b'\x7e\x71\x29\xea\x5a\x28\x01\xea\xb1\x6c\xe5\x94\xb2\x6d\x49\xdb\x66\x4b' + b'\xa4\x7f\xee\xc8\x84\x7e\x08\x45\xc0\xd7\x85\xeb\xa0\x03\x5c\xc9\xed\xb6' + b'\xf1\xee\xa0\xa2\x5a\x86\x37\x0c\xf3\x80\xe8\x59\xcb\x8c\xd9\xba\x54\x5d' + b'\x38\x5c\xa3\xf8\x34\x28\xe3\xd4\x2b\x3f\x9e\x18\xf5\x8f\x06\x96\x32\x61' + b'\x1c\x69\x6d\x0f\xe9\x55\x68\xb5\xe2\x41\x6f\x36\x9f\xa7\x93\x42\xa0\xc7' + b'\x6a\x83\x9b\x95\xc3\x39\xad\xb8\xc9\xb3\x4e\xfb\x14\x6a\x64\x82\x79\x4d' + b'\xd7\xe2\x02\xb9\x23\x71\xf0\xc2\x19\x83\x04\xb9\x4a\x6e\x3c\xe5\x03\xff' + b'\x1f\xb0\xb8\xe8\x64\x06\xe3\x78\x71\x47\xfa\xea\x94\xd2\xcc\x97\x8b\xf0' + b'\x08\x7b\xb2\x21\xfe\xb7\xda\x48\x25\x17\x2e\x29\x16\x4d\xd9\xce\x35\x3d' + b'\xd5\x18\xb6\x46\x5f\xb0\x30\xf3\x82\xfd\x8a\x0e\xed\x93\x89\x9f\xb4\x88' + b'\x56\x8f\xd0\x7c\xa6\xfe\xa5\xbc\x4b\x7e\x8b\x80\xbc\x60\x98\x72\xa6\xf7' + b'\x22\xd6\xeb\xa5\xd3\x75\xb3\xc0\x08\x3c\x60\xbd\xc4\xb6\x4c\x95\x32\xf2' + b'\x93\xd7\xae\xdf\x56\x39\x5f\x12\x99\xf8\x84\x3f\xef\xa6\x16\xda\x4b\xe9' + b'\x50\xfe\xaa\x58\x3b\x0a\x15\xff\xc0\x61\x94\xf3\x53\x28\xca\x02\x07\x20' + b'\x3b\x66\x32\xd5\x5e\xb6\x14\x4e\x5d\x2a\x28\xa8\x14\x78\xa7\xbe\xd1\xe2' + b'\xc8\xe6\xe1\x88\x48\x76\x7b\x9b\x9e\x46\x9d\xa5\x66\xd9\x0b\x99\xae\x6a' + b'\x4f\xc2\xb8\xac\xed\xe0\x55\x01\x59\xfc\xbf\x2a\xde\x87\x10\xbf\x0f\x58' + b'\x35\x8b\xf4\xd3\xd1\x91\x78\x37\x6a\x84\xd0\x18\xee\x20\xdb\xa6\xcc\xc8' + b'\x86\x21\xc9\xdf\x1d\x88\x09\xfb\x0f\x1a\xbb\x1e\x72\xf0\xa9\x66\xc4\x7a' + b'\xf8\x3c\xb2\x62\xc0\x82\x7b\xae\xa2\x56\x54\x6f\x1e\xdb\x90\xe7\xba\xae' + b'\x6f\xc4\xa9\x7e\xde\x64\x9c\x50\x55\x46\xb7\x19\xc0\xaf\x55\x72\x11\x16' + b'\xf5\x8c\xc4\x97\xe2\x19\x06\x00\xf4\x97\xe7\xae\x45\x56\x72\xee\xd4\x50' + b'\x53\x71\xa1\xa8\xb7\x58\xc1\x77\x07\x16\xea\x18\x2c\xdf\xa5\xf1\x76\x87' + b'\x0a\x7d\x88\xfe\x14\x6f\xac\x59\xc6\x1f\x47\x9a\x6f\x9a\x0b\x10\x42\xc2' + b'\x68\x03\x3a\x6f\x1a\x24\x88\x46\x03\x2d\x37\x79\xb4\x41\xf6\x3c\x3f\x0a' + b'\xac\xec\x63\x72\x0b\xab\x0c\x7a\x45\x18\x8b\x88\xda\xf3\x8b\x14\x63\xa5' + b'\x38\xeb\xec\x3b\x18\x23\xb5\xcc\x65\xab\x09\xa4\xb6\xb5\x90\x19\x27\x9b' + b'\xc4\x33\x16\x0a\x4b\xa1\x92\x26\x94\x1d\x3a\xf7\xc3\x73\xe2\xaf\xae\xfa' + b'\xd2\x63\xc7\x37\x0f\xd0\xdc\xc5\x85\x6c\xde\xac\x08\xa3\xdf\x1e\xad\x2b' + b'\xbf\x3f\x51\x53\x5c\x8b\x4b\x1f\xfe\x2d\xce\xad\x28\xa1\x10\xef\xd8\x1f' + b'\xbf\xb4\xe4\x44\x21\xc3\xf0\x29\x66\xcf\x47\x13\xfa\x06\x52\x4b\x59\xae' + b'\xd7\xa4\xce\xd5\xd2\x9c\x82\xfa\x3d\x93\xe9\x16\xb2\xa8\xca\x97\xec\xeb' + b'\x5a\xdc\x14\xc0\xab\x5b\xd3\xa6\x61\x25\xf1\xbb\xd3\xc8\x5f\xa1\x9e\x31' + b'\x3e\x20\x2b\x7b\xb3\x14\x91\x66\xbc\x5c\xfd\xa8\x47\x57\x84\x5c\x17\x30' + b'\xb7\xea\xd6\x19\x0f\xc7\xd4\xe2\x90\x33\x84\x2e\x65\xc2\x4e\x90\x3d\x02' + b'\xa5\xcf\x68\x61\x2b\x65\x0a\x72\xbc\x8e\xce\xd3\xbe\x86\xbd\x94\x9f\xcc' + b'\x5c\x73\xae\xec\xa6\x32\x1a\x0b\xf4\x68\x9c\x32\x6a\x41\x01\xd2\xa2\x2c' + b'\x37\xac\x9e\xf3\x3b\x6d\xc6\xf9\xf3\x83\x8e\x92\x4f\xea\x05\xfe\xd6\xab' + b'\x30\xf0\xb7\x25\x58\x53\x57\xc3\x94\x58\x95\x36\x84\xcd\xe3\x22\xc0\x1e' + b'\x8f\x87\x17\x82\x0a\xa5\x14\x5a\x8f\x19\x58\x65\xc5\x88\x55\x7c\xad\xae' + b'\xcf\x04\x71\x63\x5c\x06\x99\xe0\xd3\x7c\x03\x94\x9a\x92\x1b\xb2\x15\x25' + b'\x57\x29\x7f\xe7\x43\xd7\x4c\x08\x60\xa2\x84\x0d\x50\x53\x12\xc1\xb6\x6e' + b'\xc7\x4f\x4f\x9b\xcc\x52\x2f\x66\xe4\x4a\x18\xf9\x6f\x70\x23\xef\x57\x66' + b'\xc6\xa3\x6e\x26\x45\xf2\x34\x95\x45\x46\x56\xfb\xb4\x1e\x4a\x03\xb9\x16' + b'\x55\xe8\x7d\x3a\x32\x95\x33\xa1\x05\x56\x90\x5c\xbc\x57\x00\x2a\x7d\x45' + b'\x1c\xb1\xdb\x61\xf7\x31\x5c\xac\x4f\xa7\xaf\x08\xbd\x05\xf0\x3a\x3f\x22' + b'\xd0\x72\xc4\xd5\xc9\x54\x32\x85\xab\x32\xb0\x29\x77\xcc\xda\x52\x2e\xd2' + b'\x84\x8a\x7e\xd3\x31\x2d\xdc\xef\x32\xcc\x29\x71\xef\xf9\xe4\xb3\xcf\xad' + b'\x07\x01\x32\xb3\x33\xe2\xdc\xaa\xaf\xb6\xfd\xdd\x88\x81\x67\x06\x54\x99' + b'\x34\x30\x88\x66\xfd\xb1\xd8\xec\xab\xbc\x9f\x7a\x69\xa6\x7b\x9b\x59\xae' + b'\x7e\x35\x58\x2d\xec\x55\x0a\x74\xd6\x71\x7b\x2b\x0a\xaf\x5b\x92\x15\x58' + b'\x44\xed\x44\xef\xa9\xe3\x69\x12\x8a\xe4\xae\xe3\x92\x2c\x19\xea\x59\x05' + b'\x40\x63\x79\x16\xd4\xf4\x41\xdf\xa3\x9d\x71\xb9\xf5\xb5\xa6\x3a\xa4\x50' + b'\x1d\x0d\x62\xa7\xf1\x10\x8b\x83\x3c\xa4\x6e\x95\xa9\xae\xf8\x22\xc4\xcd' + b'\x17\x06\xac\xba\xa3\x1d\x73\x98\xd3\x1a\xd2\x77\x6a\xf0\x85\xcc\x97\x76' + b'\xdd\x22\xfa\x19\xc6\x68\xaf\x6f\x16\xa7\x92\xda\x74\xa9\xe0\x20\x63\x83' + b'\x3e\xd7\x1c\x11\xf1\xee\x88\x5b\xde\x0d\x27\x76\x84\x04\x98\x7e\x1e\x5f' + b'\xe6\xcd\xce\xfc\x74\x60\xd6\xe9\x09\xb7\x09\x6d\x3a\x47\x44\x56\x58\x35' + b'\x45\xe1\x90\x23\xee\xb7\x99\x72\xbc\x32\xf0\xda\x91\xd6\xa7\x5f\xd2\x1b' + b'\xc0\xa9\x04\xc9\x60\x0e\x36\x9a\x55\x7a\xf1\xae\xaf\x36\x8f\x3f\x59\x7d' + b'\xf7\xf3\xf0\xb3\x25\xe0\x8d\xb6\xb7\x34\x15\x89\x4f\xd5\x32\x54\x9f\x92' + b'\x62\xd5\x2d\xb7\x50\x1e\x65\xff\x54\xf4\x3f\xad\x72\x36\xa0\x62\xe9\xc5' + b'\x42\x76\x7b\xf9\xaa\x91\x83\xf9\x66\xb5\x4d\x05\x48\xaf\xdb\x75\x67\x2b' + b'\x93\xcc\x2a\xe7\xc1\x69\x94\x33\x9f\x35\x95\x88\xfa\xd7\xfe\x76\xd1\xa8' + b'\x07\x54\xa2\x6d\x09\xef\x73\x51\x9f\x4e\xc6\x06\x79\x59\xd2\xa3\x40\x93' + b'\x0d\xd5\xc6\xac\x0a\x5b\x35\x04\x33\x33\x7a\x04\xdc\x81\x58\x7e\xef\x61' + b'\x6d\x62\xb3\x0c\xb0\x79\x12\x29\xd3\xe5\xcc\x13\x78\xd9\xe8\x3f\x86\xf2' + b'\x9a\xbb\xf7\xcd\xee\x71\xd1\xca\xf3\x29\x48\xe2\x8b\xb6\x44\x3e\xc2\xf4' + b'\xb7\xd5\x1d\x8a\xba\xe9\x9e\x32\xc3\x86\x71\x49\x79\x0c\x04\x70\xd9\xf2' + b'\xe1\xab\xbd\xd4\xd4\x05\xb6\x5f\xbb\xfa\x9d\x7e\xee\x55\x53\x0b\xdf\x0d' + b'\xf5\x7d\x3f\xb8\x04\xb1\x01\x7d\xbd\x05\xed\x96\xf7\xce\x41\xb4\xa3\x16' + b'\xba\x59\x75\x75\x54\x13\xf3\x42\x68\x46\x4e\x47\x53\x43\xc5\x93\xfb\xc9' + b'\x44\xfc\x46\x01\x01\x33\x97\xf8\x01\xd9\xad\xa4\xef\x67\xfe\x64\xdc\x52' + b'\x77\xd0\x94\xdf\x16\xe2\x27\x6a\x25\xec\xfd\x20\xb5\x41\x1c\xfb\x42\x1d' + b'\x2e\xd9\x16\x2f\xb2\xc3\xd4\xa1\x2a\xd2\x06\x06\x24\x7d\xd6\xb8\x5d\xed' + b'\x9b\x84\x57\xc0\x70\x54\xe1\x25\x95\xfd\x20\xd7\x1b\x4e\xb0\x31\x7d\x63' + b'\xf4\x51\x04\x1e\x23\x0a\x24\x47\x88\xfb\x00\xe5\xe8\x9b\x69\x3f\x5b\xd9' + b'\x93\x3c\xfe\x28\x3a\x1e\xff\x55\x6c\xaf\x86\xe9\x12\x7a\x3b\x17\x98\x5e' + b'\x21\xbc\xa6\xa9\xb7\xa6\x8e\x9f\x41\xf7\xde\x9c\xd0\x71\xd9\xce\x99\x13' + b'\xec\x98\x68\x58\x48\xee\x42\x5a\x68\x7d\x71\x00\xdb\x93\xbc\x81\x3c\x74' + b'\x27\xcb\x13\x68\xc2\xf2\x05\x93\x63\xde\x61\xfd\xf1\x4e\x95\x59\xa6\xdd' + b'\x47\xe8\x38\xaf\x65\xa9\xaf\x41\x3c\x6b\xc2\x79\xdf\xea\x44\xf3\x52\x06' + b'\xe5\x57\x99\x48\x35\xfb\x45\x26\x49\xdb\x7f\xef\xb8\xc6\xd8\xf0\x75\x3d' + b'\x9a\x24\x7e\xd6\x90\x41\x4f\x6f\x2b\x93\x62\x7d\x9a\x47\xd5\x33\x90\x0a' + b'\x2e\xd5\x31\x77\xb0\xb0\x67\x69\x77\x3f\x59\xec\x7c\xf3\x11\xfb\xca\xa1' + b'\x3c\x19\x10\x67\xad\x73\xe4\x47\xba\xb9\x7a\x4a\xc4\xa9\x20\xf5\x20\xd0' + b'\xa5\x87\x39\x1c\xc6\x93\x09\x43\x86\x1a\x3e\x50\xbb\x7a\x6a\xcb\xe1\x17' + b'\x3e\xc5\x5e\xf9\x7f\xd8\x43\x43\x81\x63\x38\xa2\x34\xdd\x29\x6d\xfa\xf0' + b'\x00\x03\x33\x87\x1d\x71\xd7\xd8\xeb\x41\xa3\xcc\x58\xe2\x91\xb6\xdb\x10' + b'\x8f\x1e\x53\x10\x82\x8b\xb2\xb6\x69\xdc\x23\x63\xcc\x24\x66\xff\xab\x83' + b'\x70\x82\x5b\x5b\xc4\xfe\x27\x1c\xe0\xb8\xd3\xbb\xc9\x62\xda\x1c\x72\x5c' + b'\xa8\x25\x12\x11\x01\x35\x74\xcd\x59\xda\xcc\x04\x5d\x3c\x87\xb8\x97\x4b' + b'\xb6\xbe\x67\x97\x76\x3a\x52\x3f\x9c\x2c\x5c\x0f\x88\x04\x34\x9a\x15\x35' + b'\xd0\x89\x02\x29\x63\xce\x2e\xc0\x0a\xb5\x78\xa1\x00\x2e\x5f\x67\xc5\xd5' + b'\xa2\x18\x15\x3e\x44\x71\x4d\xcd\x75\x81\x67\x8a\xb6\x37\x13\xb8\x61\x76' + b'\x86\x8f\x36\x90\x44\xae\x31\x44\xdc\x90\xab\xa2\x66\x4d\xba\x7b\x8c\xfe' + b'\xec\xd9\xcb\x61\x5b\x33\xeb\x11\x6a\xfe\xca\xcb\x74\x50\x5a\xaa\xe1\x9e' + b'\x58\x12\xe2\x34\xa3\x8e\xd6\x09\xdb\x90\x84\x67\x8f\x70\x41\x5a\xd1\x9c' + b'\x8d\xbc\xad\xf8\xba\x77\xc3\x2e\xc8\x1e\xd8\xa9\xbc\x30\xbb\x9f\x64\x5e' + b'\x2d\x3b\x67\x08\xcb\xeb\x70\x5a\x5b\xb1\xb5\x2c\x4d\x42\xe8\xfa\x3a\xa2' + b'\x72\xfe\xd0\x3a\x1c\xa8\xe3\xd8\xd8\x9e\x77\x3d\xfd\xa4\x78\x64\xad\x43' + b'\x50\x1d\x9e\xab\xce\x53\xd8\x1b\x95\xc0\x15\xd0\x63\x87\xce\x33\xc1\xea' + b'\xdc\xa4\xc2\xb4\x43\x3a\xf1\x40\xde\x69\xa4\x8b\xad\xf4\xa8\x4b\xa0\x76' + b'\x9e\x78\x91\x33\x38\xa7\x03\x9b\x2e\xd1\xcf\xf0\xbb\xab\x94\x7e\x5f\xd7' + b'\xb8\x51\x17\x96\xba\xbc\x22\x67\xb0\xca\xb2\x50\x41\x50\xc8\xd2\x84\x01' + b'\x79\x87\x9c\xa8\x59\x6b\x98\x14\x16\x2c\x92\x76\x04\x4a\xc7\x1b\xe1\x81' + b'\xd7\x03\xe9\x88\xcd\x9b\xd8\x0e\xec\xa1\xe1\x70\xa2\x5a\xf7\x3e\x02\x50' + b'\xaa\x9a\x65\xc0\xc7\xf7\x36\xcb\x42\xfd\xe6\x23\x7f\xbe\x26\x68\x46\xf3' + b'\x03\x1e\x02\xef\xbf\xe3\x5f\x61\x3d\x57\xa0\x40\xa7\x4a\xda\x0c\x0a\xa1' + b'\x04\x41\x6c\x46\x3e\x53\x69\xbd\x11\x8f\x25\x57\x82\x29\x75\x84\x18\x35' + b'\x67\x78\x96\xa5\xcf\x36\xe5\x76\x80\xbf\x83\x8b\x61\x87\xcc\xcd\xcd\x0a' + b'\x20\x36\x97\xff\xff\xff\x93\x80\xf0\x7f\xef\x00\xe0\x00\xef\x10\x40\x23' + b'\x00\x00\x00' +) + if __name__ == "__main__": unittest.main() From 6189ceb1073981c823e3bb4ad024463180032c06 Mon Sep 17 00:00:00 2001 From: Chien Wong Date: Sun, 17 Mar 2024 22:04:41 +0800 Subject: [PATCH 05/19] Update lzma doc --- Doc/library/lzma.rst | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/Doc/library/lzma.rst b/Doc/library/lzma.rst index 53a61a113f426d..5c0c913c50fbda 100644 --- a/Doc/library/lzma.rst +++ b/Doc/library/lzma.rst @@ -350,8 +350,17 @@ options. Valid filter IDs are as follows: * :const:`!FILTER_POWERPC` * :const:`!FILTER_SPARC` * :const:`!FILTER_ARM64` + + Only works if lzma runtime library version is 5.4.0 or later. + + .. versionadded:: 3.13 + * :const:`!FILTER_RISCV` + Only works if lzma runtime library version is 5.6.0 or later. + + .. versionadded:: 3.13 + A filter chain can consist of up to 4 filters, and cannot be empty. The last filter in the chain must be a compression filter, and any other filters must be delta or BCJ filters. From 0f6fd63b03fce73c9ff4847a8ff5fd66c4935dff Mon Sep 17 00:00:00 2001 From: Chien Wong Date: Sun, 17 Mar 2024 22:17:26 +0800 Subject: [PATCH 06/19] Add NEWS entry --- .../next/Library/2024-03-17-22-16-53.gh-issue-115988.EshSDM.rst | 2 ++ 1 file changed, 2 insertions(+) create mode 100644 Misc/NEWS.d/next/Library/2024-03-17-22-16-53.gh-issue-115988.EshSDM.rst diff --git a/Misc/NEWS.d/next/Library/2024-03-17-22-16-53.gh-issue-115988.EshSDM.rst b/Misc/NEWS.d/next/Library/2024-03-17-22-16-53.gh-issue-115988.EshSDM.rst new file mode 100644 index 00000000000000..9b197271390220 --- /dev/null +++ b/Misc/NEWS.d/next/Library/2024-03-17-22-16-53.gh-issue-115988.EshSDM.rst @@ -0,0 +1,2 @@ +The lzma module adds build and runtime version info and supports new BCJ +filters: ARM64 and RISC-V. From 973122568f7cc4b7fea2fbd769b8021837ba3b9a Mon Sep 17 00:00:00 2001 From: Chien Wong Date: Mon, 18 Mar 2024 20:55:14 +0800 Subject: [PATCH 07/19] Optimise NEWS --- .../Library/2024-03-17-22-16-53.gh-issue-115988.EshSDM.rst | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Misc/NEWS.d/next/Library/2024-03-17-22-16-53.gh-issue-115988.EshSDM.rst b/Misc/NEWS.d/next/Library/2024-03-17-22-16-53.gh-issue-115988.EshSDM.rst index 9b197271390220..37514ae14bed9c 100644 --- a/Misc/NEWS.d/next/Library/2024-03-17-22-16-53.gh-issue-115988.EshSDM.rst +++ b/Misc/NEWS.d/next/Library/2024-03-17-22-16-53.gh-issue-115988.EshSDM.rst @@ -1,2 +1,2 @@ -The lzma module adds build and runtime version info and supports new BCJ -filters: ARM64 and RISC-V. +The lzma module adds build and runtime version info of the underlying C library +and supports new BCJ filters: ARM64 and RISC-V. From 40e9d345e372609902d116a01ef0037e4ab6c4e7 Mon Sep 17 00:00:00 2001 From: Chien Wong Date: Tue, 19 Mar 2024 20:57:26 +0800 Subject: [PATCH 08/19] Move version doc section --- Doc/library/lzma.rst | 41 +++++++++++++++++++++-------------------- 1 file changed, 21 insertions(+), 20 deletions(-) diff --git a/Doc/library/lzma.rst b/Doc/library/lzma.rst index 5c0c913c50fbda..8457336d389a3c 100644 --- a/Doc/library/lzma.rst +++ b/Doc/library/lzma.rst @@ -324,6 +324,27 @@ Miscellaneous .. _filter-chain-specs: + +Information about the version of the lzma library in use is available through +the following constants: + + +.. data:: LZMA_VERSION + + The version string of the lzma library that was used for building the module. + This may be different from the lzma library actually used at runtime, which + is available as :const:`LZMA_RUNTIME_VERSION`. + + .. versionadded:: 3.13 + + +.. data:: LZMA_RUNTIME_VERSION + + The version string of the lzma library actually loaded by the interpreter. + + .. versionadded:: 3.13 + + Specifying custom filter chains ------------------------------- @@ -396,26 +417,6 @@ These filters support one option, ``start_offset``. This specifies the address that should be mapped to the beginning of the input data. The default is 0. -Information about the version of the lzma library in use is available through -the following constants: - - -.. data:: LZMA_VERSION - - The version string of the lzma library that was used for building the module. - This may be different from the lzma library actually used at runtime, which - is available as :const:`LZMA_RUNTIME_VERSION`. - - .. versionadded:: 3.13 - - -.. data:: LZMA_RUNTIME_VERSION - - The version string of the lzma library actually loaded by the interpreter. - - .. versionadded:: 3.13 - - Examples -------- From 8c922f7c0b22ccd6eb332a6dbc63726390d80c27 Mon Sep 17 00:00:00 2001 From: Chien Wong Date: Tue, 19 Mar 2024 21:24:27 +0800 Subject: [PATCH 09/19] Add WHATSNEW entry --- Doc/whatsnew/3.13.rst | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/Doc/whatsnew/3.13.rst b/Doc/whatsnew/3.13.rst index ca5a0e7515994f..bc5463507eb57c 100644 --- a/Doc/whatsnew/3.13.rst +++ b/Doc/whatsnew/3.13.rst @@ -329,6 +329,20 @@ itertools than the specified batch size. (Contributed by Raymond Hettinger in :gh:`113202`.) +lzma +---- + +* Add :const:`lzma.LZMA_VERSION` and :const:`lzma.LZMA_RUNTIME_VERSION`. The former + reports the version string of the underlying ``lzma`` library during build while + the later reports runtime version. + (Contributed by Chien Wong in :gh:`115988`.) + +* Add support of new BCJ filters ARM64 and RISC-V via :const:`lzma.FILTER_ARM64` and + :const:`lzma.FILTER_RISCV`. + Note that the new filters will work only if runtime library supports them. ARM64 filter + requires ``lzma`` 5.4.0 or newer while RISC-V requires 5.6.0 or newer. + (Contributed by Chien Wong in :gh:`115988`.) + marshal ------- From 9cd4cb84efbeffa746ab7f95e66145eeb1240b7b Mon Sep 17 00:00:00 2001 From: Chien Wong Date: Tue, 19 Mar 2024 21:45:50 +0800 Subject: [PATCH 10/19] Fix filter chain specs position --- Doc/library/lzma.rst | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/Doc/library/lzma.rst b/Doc/library/lzma.rst index 8457336d389a3c..a4a1a67e20d339 100644 --- a/Doc/library/lzma.rst +++ b/Doc/library/lzma.rst @@ -322,9 +322,6 @@ Miscellaneous feature set. -.. _filter-chain-specs: - - Information about the version of the lzma library in use is available through the following constants: @@ -344,6 +341,7 @@ the following constants: .. versionadded:: 3.13 +.. _filter-chain-specs: Specifying custom filter chains ------------------------------- From 8a85c483f0548d3efb97c539f3ae1fdd9ce24d28 Mon Sep 17 00:00:00 2001 From: Chien Wong Date: Fri, 22 Mar 2024 20:59:00 +0800 Subject: [PATCH 11/19] Suppress doc warning --- Doc/whatsnew/3.13.rst | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Doc/whatsnew/3.13.rst b/Doc/whatsnew/3.13.rst index bc5463507eb57c..264591c30e791c 100644 --- a/Doc/whatsnew/3.13.rst +++ b/Doc/whatsnew/3.13.rst @@ -337,8 +337,8 @@ lzma the later reports runtime version. (Contributed by Chien Wong in :gh:`115988`.) -* Add support of new BCJ filters ARM64 and RISC-V via :const:`lzma.FILTER_ARM64` and - :const:`lzma.FILTER_RISCV`. +* Add support of new BCJ filters ARM64 and RISC-V via :const:`!lzma.FILTER_ARM64` and + :const:`!lzma.FILTER_RISCV`. Note that the new filters will work only if runtime library supports them. ARM64 filter requires ``lzma`` 5.4.0 or newer while RISC-V requires 5.6.0 or newer. (Contributed by Chien Wong in :gh:`115988`.) From 32725a7f39641d670b57db26941e6dfa12c34666 Mon Sep 17 00:00:00 2001 From: "Gregory P. Smith [Google LLC]" Date: Sat, 30 Mar 2024 17:30:47 +0000 Subject: [PATCH 12/19] Elide upstream binary data from the test. We only test that the constants are defined if the library we compiled against was supposed to define them. Their functionality is up to the external library and not something we need to test ourselves. We don't want to accept new binary data from the ill-fated backdoored xz project into CPython itself. --- Lib/test/test_lzma.py | 1445 +---------------------------------------- 1 file changed, 14 insertions(+), 1431 deletions(-) diff --git a/Lib/test/test_lzma.py b/Lib/test/test_lzma.py index 81e04b8a260977..3a064e8219406c 100644 --- a/Lib/test/test_lzma.py +++ b/Lib/test/test_lzma.py @@ -395,47 +395,20 @@ def test_uninitialized_LZMADecompressor_crash(self): self.assertEqual(LZMADecompressor.__new__(LZMADecompressor). decompress(bytes()), b'') - # Test relative new BCJ filters - - def test_riscv_filter_compress(self): - # RISC-V filter is only available on lzma 5.6.0 or later - if LZMA_RUNTIME_VERSION_TUPLE >= (5, 6, 0): - lzc = LZMACompressor(filters=RISCV_BCJ_CASE_FILTERS) - compressed = lzc.compress(RISCV_BCJ_CASE_INPUT) + lzc.flush() - lzd = LZMADecompressor() - decompressed = lzd.decompress(compressed) - self.assertEqual(RISCV_BCJ_CASE_INPUT, decompressed) - else: - self.assertRaises(LZMAError, LZMACompressor, filters=RISCV_BCJ_CASE_FILTERS) - - def test_riscv_filter_decompress(self): - lzd = LZMADecompressor() - # RISC-V filter is only available on lzma 5.6.0 or later - if LZMA_RUNTIME_VERSION_TUPLE >= (5, 6, 0): - decompressed = lzd.decompress(RISCV_BCJ_CASE_COMPRESSED) - self.assertEqual(RISCV_BCJ_CASE_INPUT, decompressed) - else: - self.assertRaises(LZMAError, lzd.decompress, RISCV_BCJ_CASE_COMPRESSED) - - def test_arm64_filter_compress(self): - # ARM64 filter is only available on lzma 5.4.0 or later - if LZMA_RUNTIME_VERSION_TUPLE >= (5, 4, 0): - lzc = LZMACompressor(filters=ARM64_BCJ_CASE_FILTERS) - compressed = lzc.compress(ARM64_BCJ_CASE_INPUT) + lzc.flush() - lzd = LZMADecompressor() - decompressed = lzd.decompress(compressed) - self.assertEqual(ARM64_BCJ_CASE_INPUT, decompressed) - else: - self.assertRaises(LZMAError, LZMACompressor, filters=ARM64_BCJ_CASE_FILTERS) - - def test_arm64_filter_decompress(self): - lzd = LZMADecompressor() - # ARM64 filter is only available on lzma 5.4.0 or later - if LZMA_RUNTIME_VERSION_TUPLE >= (5, 4, 0): - decompressed = lzd.decompress(ARM64_BCJ_CASE_COMPRESSED) - self.assertEqual(ARM64_BCJ_CASE_INPUT, decompressed) - else: - self.assertRaises(LZMAError, lzd.decompress, ARM64_BCJ_CASE_COMPRESSED) + # Test the existence of the relatively new BCJ filters. These just + # ensure that the constant was found at compile time and exposed. + + @unittest.skipUnless( + LZMA_RUNTIME_VERSION_TUPLE >= (5, 6, 0), + "RISC-V filter is only available on lzma 5.6.0 or later") + def test_riscv_filter_exists(self): + self.assertTrue(lzma.FILTER_RISCV) + + @unittest.skipUnless( + LZMA_RUNTIME_VERSION_TUPLE >= (5, 4, 0), + "ARM64 filter is only available on lzma 5.4.0 or later") + def test_arm64_filter_exists(self): + self.assertTrue(lzma.FILTER_ARM64) class CompressDecompressFunctionTestCase(unittest.TestCase): @@ -1991,1396 +1964,6 @@ def test_filter_properties_roundtrip(self): b'\xeb#\x182\x96I\xf7l\xf3r\x00' ) -ARM64_BCJ_CASE_FILTERS = [{"id": lzma.FILTER_ARM64}, {"id": lzma.FILTER_LZMA2}] -# Test case from xz 5.6.1 tests/files/good-1-arm64-lzma2-1.xz -ARM64_BCJ_CASE_COMPRESSED = ( - b'\xfd\x37\x7a\x58\x5a\x00\x00\x01\x69\x22\xde\x36\x02\x01\x0a\x00\x21\x01' - b'\x08\x00\xa2\xd8\x7e\xf1\xe0\x21\x7f\x01\xc3\x6e\x00\x00\x68\x23\x88\x71' - b'\x63\xc2\x8f\x53\x0a\xe6\xb1\xdf\xd0\x8a\xae\x1b\xa1\xb0\x78\xab\x28\x43' - b'\x13\x5e\x7f\xe4\x97\xc5\x69\xcf\xc1\x0a\xcd\xda\x89\x2e\x3a\x9e\xf2\xac' - b'\x4f\x83\xdc\x79\xb5\x0b\xc3\xfb\xf1\xf8\x14\x14\xba\xa1\xf6\xc3\x11\x97' - b'\x9e\x53\x71\x7a\x6b\x4d\xde\x7f\xab\xb5\x81\x19\xd2\x87\xb3\x8e\x59\xcc' - b'\xad\x32\xf5\x73\x9a\x90\x0d\x99\x7d\x46\x55\x52\xa0\x15\x03\xe7\x1c\xf0' - b'\x97\x4f\xaf\xc1\x8b\xca\x2b\x76\x63\xc6\xd3\xdc\x68\xd9\xbf\x04\x20\x1a' - b'\x1d\x80\x25\x28\x83\x30\x32\xa3\x64\xe4\x26\xdd\xc0\x16\xd6\x8b\xb0\x11' - b'\x37\x88\xbd\xe2\xd9\xbc\x2d\xb7\x45\x3c\xca\x5a\x0f\xaa\x26\x98\x9d\xb9' - b'\xf8\x18\xa3\x55\xcd\xae\x02\x30\x27\xf2\x62\xa8\x0d\x0d\x20\x4d\xb1\x80' - b'\xaa\x48\x92\x7c\x98\x99\x5a\x8e\x0f\x5f\xf8\x58\x7e\x5f\x79\x36\xf3\xd8' - b'\x3c\xef\x03\xd4\x50\x2a\xb7\xc9\x3a\x3c\xa6\xeb\x33\x8a\xd7\xfb\x8c\xbe' - b'\x31\xd3\x76\x72\x2e\x6b\x89\x1f\x27\x74\xe1\x02\xf7\x5d\x1e\x59\xe0\x6f' - b'\xe1\xdd\xcc\xf9\x90\xcb\x27\x59\xa0\xa3\x6f\x96\x73\x82\xcf\x4d\x71\x21' - b'\x1e\x4e\xbf\xcf\xd0\x29\xb2\xcf\x56\x6e\x21\x8f\xc8\x77\x95\xeb\x6a\xef' - b'\x3c\xdc\x00\x76\xb0\x94\x63\x70\x8c\x94\x5f\x7f\x1f\x83\xf9\x1f\xce\x64' - b'\x4f\x45\xbd\xf8\x13\x5a\x78\x0c\x1a\xdf\xe4\x0b\xdc\xba\x07\x33\xec\x53' - b'\xa9\xfb\x31\xe5\xcc\xc3\x87\x95\x90\xf5\x93\x8e\x02\xee\xe3\x56\xa6\xf9' - b'\xd3\xa3\x78\xa5\x08\x24\xbc\x1e\x2a\xa9\x99\x78\x4b\xe8\xbb\x73\x47\xce' - b'\x08\x0c\x5a\x01\xce\xe1\xc5\x9d\x85\xdc\xd4\x19\x59\xb5\x3d\xaf\xf5\xa4' - b'\xcf\x66\x12\xfd\x5b\xfe\x0a\x7a\xee\xf7\x61\x81\x0a\x06\x09\x5d\xcb\x10' - b'\xc5\x6f\x68\x4f\xed\xed\x97\xc7\x37\x1f\xde\x6d\x2d\xc2\x26\xa0\xe6\x94' - b'\x18\x06\xc3\xa8\xc0\x0f\x4c\xe3\x1c\x0a\x9b\x03\xf7\x10\xb6\x81\xab\x8a' - b'\x5d\xae\x0c\xaa\xa8\xab\xb1\x65\x55\x7f\x33\x52\xf6\x23\x0f\xac\x21\xa4' - b'\xc5\xf1\x44\x9d\xe0\xb7\x39\x6d\x2d\x48\x20\x8c\x81\x51\x50\x60\xef\xa1' - b'\x00\x71\xd9\xe3\xb5\x4f\xfd\x57\xb6\x0e\xfc\x40\x48\xd3\x00\x00\xa0\x7c' - b'\xe1\xd4\x00\x01\xdb\x03\x80\x43\x00\x00\x43\xc7\x89\x63\x3e\x30\x0d\x8b' - b'\x02\x00\x00\x00\x00\x01\x59\x5a' -) -ARM64_BCJ_CASE_INPUT = ( - b'\x00\x00\x00\x94\xff\xff\xff\x97\xfe\xff\xff\x97\xfd\xff\xff\x97\x03\x00' - b'\x00\x94\x02\x00\x00\x94\x01\x00\x00\x94\x00\x00\x00\x94\x01\x00\x00\x96' - b'\x00\x00\x00\x96\xff\xff\xff\x95\xfe\xff\xff\x95\x17\x11\x11\x95\x16\x11' - b'\x11\x95\x15\x11\x11\x95\x14\x11\x11\x95\x27\x22\x22\x96\x26\x22\x22\x96' - b'\x25\x22\x22\x96\x24\x22\x22\x96\xec\xff\xff\x97\xeb\xff\xff\x97\xea\xff' - b'\xff\x97\xe9\xff\xff\x97\x03\x00\x00\x90\x28\x00\x00\xb0\xad\x00\x00\xb0' - b'\x32\x01\x00\xb0\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55' - b'\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55' - b'\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55' - b'\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55' - b'\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55' - b'\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55' - b'\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55' - b'\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55' - b'\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55' - b'\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55' - b'\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55' - b'\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55' - b'\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55' - b'\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55' - b'\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55' - b'\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55' - b'\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55' - b'\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55' - b'\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55' - b'\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55' - b'\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55' - b'\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55' - b'\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55' - b'\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55' - b'\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55' - b'\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55' - b'\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55' - b'\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55' - b'\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55' - b'\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55' - b'\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55' - b'\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55' - b'\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55' - b'\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55' - b'\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55' - b'\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55' - b'\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55' - b'\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55' - b'\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55' - b'\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55' - b'\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55' - b'\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55' - b'\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55' - b'\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55' - b'\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55' - b'\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55' - b'\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55' - b'\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55' - b'\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55' - b'\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55' - b'\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55' - b'\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55' - b'\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55' - b'\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55' - b'\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55' - b'\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55' - b'\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55' - b'\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55' - b'\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55' - b'\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55' - b'\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55' - b'\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55' - b'\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55' - b'\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55' - b'\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55' - b'\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55' - b'\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55' - b'\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55' - b'\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55' - b'\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55' - b'\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55' - b'\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55' - b'\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55' - b'\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55' - b'\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55' - b'\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55' - b'\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55' - b'\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55' - b'\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55' - b'\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55' - b'\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55' - b'\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55' - b'\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55' - b'\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55' - b'\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55' - b'\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55' - b'\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55' - b'\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55' - b'\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55' - b'\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55' - b'\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55' - b'\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55' - b'\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55' - b'\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55' - b'\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55' - b'\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55' - b'\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55' - b'\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55' - b'\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55' - b'\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55' - b'\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55' - b'\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55' - b'\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55' - b'\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55' - b'\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55' - b'\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55' - b'\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55' - b'\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55' - b'\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55' - b'\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55' - b'\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55' - b'\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55' - b'\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55' - b'\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55' - b'\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55' - b'\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55' - b'\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55' - b'\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55' - b'\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55' - b'\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55' - b'\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55' - b'\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55' - b'\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55' - b'\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55' - b'\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55' - b'\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55' - b'\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55' - b'\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55' - b'\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55' - b'\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55' - b'\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55' - b'\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55' - b'\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55' - b'\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55' - b'\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55' - b'\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55' - b'\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55' - b'\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55' - b'\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55' - b'\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55' - b'\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55' - b'\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55' - b'\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55' - b'\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55' - b'\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55' - b'\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55' - b'\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55' - b'\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55' - b'\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55' - b'\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55' - b'\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55' - b'\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55' - b'\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55' - b'\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55' - b'\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55' - b'\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55' - b'\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55' - b'\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55' - b'\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55' - b'\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55' - b'\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55' - b'\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55' - b'\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55' - b'\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55' - b'\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55' - b'\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55' - b'\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55' - b'\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55' - b'\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55' - b'\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55' - b'\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55' - b'\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55' - b'\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55' - b'\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55' - b'\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55' - b'\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55' - b'\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55' - b'\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55' - b'\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55' - b'\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55' - b'\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55' - b'\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55' - b'\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55' - b'\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55' - b'\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55' - b'\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55' - b'\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55' - b'\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55' - b'\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55' - b'\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55' - b'\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55' - b'\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55' - b'\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55' - b'\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55' - b'\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55' - b'\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55' - b'\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55' - b'\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55' - b'\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55' - b'\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55' - b'\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55' - b'\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55' - b'\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55' - b'\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55' - b'\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55' - b'\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55' - b'\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55' - b'\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55' - b'\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55' - b'\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55' - b'\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55' - b'\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55' - b'\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55' - b'\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55' - b'\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55' - b'\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55' - b'\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55' - b'\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55' - b'\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55' - b'\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55' - b'\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55' - b'\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x0b\x10\x00\x90\x30\x10\x00\xb0' - b'\xf5\x17\x00\xd0\xfa\x17\x00\xf0\x1f\x18\x00\x90\x24\x18\x00\xb0\xe9\x1f' - b'\x00\xd0\xee\x1f\x00\xf0\x13\x20\x00\x90\x38\x20\x00\xb0\xfd\x27\x00\xd0' - b'\xe2\x27\x00\xf0\x07\x38\x00\x90\x2c\x38\x00\xb0\xf1\x3f\x00\xd0\xf6\x3f' - b'\x00\xf0\x1b\x40\x00\x90\x20\x40\x00\xb0\xe5\x47\x00\xd0\xea\x47\x00\xf0' - b'\x0f\x78\x00\x90\x34\x78\x00\xb0\xf9\x7f\x00\xd0\xfe\x7f\x00\xf0\x03\x80' - b'\x00\x90\x28\x80\x00\xb0\xed\x87\x00\xd0\xf2\x87\x00\xf0\x17\xf8\x00\x90' - b'\x3c\xf8\x00\xb0\xe1\xff\x00\xd0\xe6\xff\x00\xf0\x0b\x00\x01\x90\x30\x00' - b'\x01\xb0\xf5\x07\x01\xd0\xfa\x07\x01\xf0\x1f\xf8\x01\x90\x24\xf8\x01\xb0' - b'\xe9\xff\x01\xd0\xee\xff\x01\xf0\x13\x00\x02\x90\x38\x00\x02\xb0\xfd\x07' - b'\x02\xd0\xe2\x07\x02\xf0\x07\xf8\x03\x90\x2c\xf8\x03\xb0\xf1\xff\x03\xd0' - b'\xf6\xff\x03\xf0\x1b\x00\x04\x90\x20\x00\x04\xb0\xe5\x07\x04\xd0\xea\x07' - b'\x04\xf0\x0f\xf8\x07\x90\x34\xf8\x07\xb0\xf9\xff\x07\xd0\xfe\xff\x07\xf0' - b'\x03\x00\x08\x90\x28\x00\x08\xb0\xed\x07\x08\xd0\xf2\x07\x08\xf0\x17\xf8' - b'\x0f\x90\x3c\xf8\x0f\xb0\xe1\xff\x0f\xd0\xe6\xff\x0f\xf0\x0b\x00\x10\x90' - b'\x30\x00\x10\xb0\xf5\x07\x10\xd0\xfa\x07\x10\xf0\x1f\xf8\x1f\x90\x24\xf8' - b'\x1f\xb0\xe9\xff\x1f\xd0\xee\xff\x1f\xf0\x13\x00\x20\x90\x38\x00\x20\xb0' - b'\xfd\x07\x20\xd0\xe2\x07\x20\xf0\x07\xf8\x3f\x90\x2c\xf8\x3f\xb0\xf1\xff' - b'\x3f\xd0\xf6\xff\x3f\xf0\x1b\x00\x40\x90\x20\x00\x40\xb0\xe5\x07\x40\xd0' - b'\xea\x07\x40\xf0\x0f\xf8\x7f\x90\x34\xf8\x7f\xb0\xf9\xff\x7f\xd0\xfe\xff' - b'\x7f\xf0\x03\x00\x80\x90\x28\x00\x80\xb0\xed\x07\x80\xd0\xf2\x07\x80\xf0' - b'\x17\xf8\xff\x90\x3c\xf8\xff\xb0\xe1\xff\xff\xd0\xe6\xff\xff\xf0\x55\x55' - b'\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55' - b'\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55' - b'\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55' - b'\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55' - b'\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55' - b'\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55' - b'\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55' - b'\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55' - b'\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55' - b'\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55' - b'\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55' - b'\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55' - b'\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55' - b'\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55' - b'\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55' - b'\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55' - b'\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55' - b'\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55' - b'\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55' - b'\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55' - b'\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55' - b'\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55' - b'\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55' - b'\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55' - b'\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55' - b'\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55' - b'\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55' - b'\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55' - b'\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55' - b'\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55' - b'\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55' - b'\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55' - b'\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55' - b'\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55' - b'\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55' - b'\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55' - b'\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55' - b'\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55' - b'\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55' - b'\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55' - b'\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55' - b'\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55' - b'\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55' - b'\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55' - b'\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55' - b'\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55' - b'\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55' - b'\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55' - b'\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55' - b'\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55' - b'\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55' - b'\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55' - b'\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55' - b'\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55' - b'\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55' - b'\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55' - b'\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55' - b'\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55' - b'\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55' - b'\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55' - b'\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55' - b'\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55' - b'\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55' - b'\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55' - b'\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55' - b'\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55' - b'\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55' - b'\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55' - b'\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55' - b'\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55' - b'\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55' - b'\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55' - b'\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55' - b'\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55' - b'\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55' - b'\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55' - b'\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55' - b'\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55' - b'\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55' - b'\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55' - b'\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55' - b'\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55' - b'\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55' - b'\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55' - b'\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55' - b'\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55' - b'\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55' - b'\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55' - b'\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55' - b'\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55' - b'\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55' - b'\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55' - b'\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55' - b'\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55' - b'\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55' - b'\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55' - b'\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55' - b'\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55' - b'\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55' - b'\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55' - b'\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55' - b'\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55' - b'\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55' - b'\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55' - b'\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55' - b'\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55' - b'\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55' - b'\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55' - b'\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55' - b'\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55' - b'\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55' - b'\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55' - b'\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55' - b'\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55' - b'\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55' - b'\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55' - b'\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55' - b'\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55' - b'\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55' - b'\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55' - b'\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55' - b'\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55' - b'\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55' - b'\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55' - b'\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55' - b'\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55' - b'\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55' - b'\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55' - b'\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55' - b'\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55' - b'\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55' - b'\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55' - b'\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55' - b'\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55' - b'\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55' - b'\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55' - b'\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55' - b'\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55' - b'\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55' - b'\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55' - b'\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55' - b'\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55' - b'\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55' - b'\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55' - b'\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55' - b'\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55' - b'\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55' - b'\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55' - b'\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55' - b'\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55' - b'\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55' - b'\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55' - b'\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55' - b'\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55' - b'\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55' - b'\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55' - b'\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55' - b'\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55' - b'\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55' - b'\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55' - b'\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55' - b'\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55' - b'\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55' - b'\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55' - b'\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55' - b'\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55' - b'\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55' - b'\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55' - b'\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55' - b'\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55' - b'\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55' - b'\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55' - b'\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55' - b'\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55' - b'\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55' - b'\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55' - b'\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55' - b'\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55' - b'\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55' - b'\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55' - b'\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55' - b'\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55' - b'\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55' - b'\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55' - b'\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55' - b'\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55' - b'\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55' - b'\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55' - b'\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55' - b'\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55' - b'\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55' - b'\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55' - b'\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55' - b'\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55' - b'\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55' - b'\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55' - b'\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55' - b'\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55' - b'\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55' - b'\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55' - b'\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55' - b'\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55' - b'\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55' - b'\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55' - b'\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55' - b'\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55' - b'\x55\x55\x0b\x10\x00\x90\x30\x10\x00\xb0\xf5\x17\x00\xd0\xfa\x17\x00\xf0' - b'\x1f\x18\x00\x90\x24\x18\x00\xb0\xe9\x1f\x00\xd0\xee\x1f\x00\xf0\x13\x20' - b'\x00\x90\x38\x20\x00\xb0\xfd\x27\x00\xd0\xe2\x27\x00\xf0\x07\x38\x00\x90' - b'\x2c\x38\x00\xb0\xf1\x3f\x00\xd0\xf6\x3f\x00\xf0\x1b\x40\x00\x90\x20\x40' - b'\x00\xb0\xe5\x47\x00\xd0\xea\x47\x00\xf0\x0f\x78\x00\x90\x34\x78\x00\xb0' - b'\xf9\x7f\x00\xd0\xfe\x7f\x00\xf0\x03\x80\x00\x90\x28\x80\x00\xb0\xed\x87' - b'\x00\xd0\xf2\x87\x00\xf0\x17\xf8\x00\x90\x3c\xf8\x00\xb0\xe1\xff\x00\xd0' - b'\xe6\xff\x00\xf0\x0b\x00\x01\x90\x30\x00\x01\xb0\xf5\x07\x01\xd0\xfa\x07' - b'\x01\xf0\x1f\xf8\x01\x90\x24\xf8\x01\xb0\xe9\xff\x01\xd0\xee\xff\x01\xf0' - b'\x13\x00\x02\x90\x38\x00\x02\xb0\xfd\x07\x02\xd0\xe2\x07\x02\xf0\x07\xf8' - b'\x03\x90\x2c\xf8\x03\xb0\xf1\xff\x03\xd0\xf6\xff\x03\xf0\x1b\x00\x04\x90' - b'\x20\x00\x04\xb0\xe5\x07\x04\xd0\xea\x07\x04\xf0\x0f\xf8\x07\x90\x34\xf8' - b'\x07\xb0\xf9\xff\x07\xd0\xfe\xff\x07\xf0\x03\x00\x08\x90\x28\x00\x08\xb0' - b'\xed\x07\x08\xd0\xf2\x07\x08\xf0\x17\xf8\x0f\x90\x3c\xf8\x0f\xb0\xe1\xff' - b'\x0f\xd0\xe6\xff\x0f\xf0\x0b\x00\x10\x90\x30\x00\x10\xb0\xf5\x07\x10\xd0' - b'\xfa\x07\x10\xf0\x1f\xf8\x1f\x90\x24\xf8\x1f\xb0\xe9\xff\x1f\xd0\xee\xff' - b'\x1f\xf0\x13\x00\x20\x90\x38\x00\x20\xb0\xfd\x07\x20\xd0\xe2\x07\x20\xf0' - b'\x07\xf8\x3f\x90\x2c\xf8\x3f\xb0\xf1\xff\x3f\xd0\xf6\xff\x3f\xf0\x1b\x00' - b'\x40\x90\x20\x00\x40\xb0\xe5\x07\x40\xd0\xea\x07\x40\xf0\x0f\xf8\x7f\x90' - b'\x34\xf8\x7f\xb0\xf9\xff\x7f\xd0\xfe\xff\x7f\xf0\x03\x00\x80\x90\x28\x00' - b'\x80\xb0\xed\x07\x80\xd0\xf2\x07\x80\xf0\x17\xf8\xff\x90\x3c\xf8\xff\xb0' - b'\xe1\xff\xff\xd0\xe6\xff\xff\xf0' -) - -RISCV_BCJ_CASE_FILTERS = [{"id": lzma.FILTER_RISCV}, {"id": lzma.FILTER_LZMA2}] -# Test case from xz 5.6.1 tests/files/good-1-riscv-lzma2-1.xz -RISCV_BCJ_CASE_COMPRESSED = ( - b'\xfd\x37\x7a\x58\x5a\x00\x00\x04\xe6\xd6\xb4\x46\x02\x01\x0b\x00\x21\x01' - b'\x08\x00\x07\x0b\x22\x3a\xe0\x20\x12\x1c\xbf\x39\x00\x77\x80\x30\x7f\x0b' - b'\xb1\x8b\xe9\x84\xce\x87\xa6\x19\xc5\x30\xfd\x82\xb7\x7c\x82\xc7\xf7\xb4' - b'\x7e\x2e\x07\x18\xf5\x4f\xac\xf2\x0d\xd7\xc5\xfc\x82\x44\x1e\xe0\x22\xb0' - b'\xea\x5f\x18\x25\x92\x0f\x27\xbb\xa3\x27\xcb\xae\x80\x71\x6b\xdd\x8a\x09' - b'\x3c\x01\xe5\x10\x79\x0e\x73\x34\x07\xbe\x1a\x6b\xea\xe5\xee\x95\xbd\x30' - b'\xc5\xea\xca\xf7\x94\x37\x99\xac\x1e\x04\xc4\xb0\xa4\xe7\x8e\x6f\x3f\x74' - b'\x4c\x2a\x0c\x8b\x0a\x1d\x2b\x72\x57\xb6\x1e\xdd\x84\xb8\xb3\xa9\x25\x0e' - b'\x8a\x5b\x11\xd2\xd0\x8f\x50\x75\x48\x2c\xfc\x5e\x23\xc1\x68\x9b\xa7\xd4' - b'\xe6\x97\xe9\x41\xfc\xec\x58\xd1\x6c\x9e\xc1\x19\xaa\xe8\xaf\x14\x4e\x69' - b'\xc3\xe6\x9b\xb1\x61\x1a\xd4\x88\xaf\x4d\x68\x82\xdf\x0c\xa4\x5a\xd7\x12' - b'\x99\xf0\x9c\x4b\x06\x3d\x29\x4e\xbd\x3e\xdf\x40\xd0\x48\x09\x39\xcc\x19' - b'\xfb\x18\x5c\x02\x0e\x85\x21\x2d\x0c\x94\x25\x0c\x17\xc7\xb1\xaf\xb9\xb3' - b'\x61\x14\x98\x39\x7a\x05\x79\xe9\x94\x3c\x0a\xec\xf0\x6f\xb1\xf7\x38\x80' - b'\x2a\xf8\xfb\x57\x32\x6c\x5d\x43\xee\x9c\x35\x07\x27\x42\x6a\x1f\x4e\x74' - b'\x8f\xa3\x7e\x64\x99\xde\xa7\xe8\x9a\xd6\xd5\x7f\xe3\x90\x47\xee\x4b\x5d' - b'\x97\xca\x24\xfe\x81\xea\xfc\x92\x2d\xac\x9a\x64\x5f\xa2\x7f\x46\x89\xb5' - b'\x75\xe6\xcf\xfc\x68\x47\x6f\xdd\x7c\x2d\x02\xae\xb5\xe9\xa0\xf7\xc3\x22' - b'\xf5\x21\x2e\xcc\x2e\x37\x0d\xd5\x0b\xef\xd5\x14\x1e\x7d\xd5\x23\x18\xef' - b'\x7b\x62\xd6\xca\x2b\x01\x1d\x5e\x64\x69\x94\xe2\x6e\x2d\xc4\xd7\x07\xbf' - b'\xdc\x73\x1c\xc2\x26\xdd\x7d\x58\x2a\xb3\xbb\xaa\x2a\x55\xb4\xfb\x3f\x41' - b'\xa9\x65\xdb\xdf\xcc\x1d\xa0\xdd\xf1\x0a\x83\x8a\x09\x03\x02\xd2\x85\xb6' - b'\xf6\x59\xf3\x7b\xfb\x55\xdb\x1b\x02\x63\xd0\x3c\xc7\x65\x51\xa2\xd5\xd9' - b'\x41\x86\x43\x15\x1c\x54\xd6\xad\xb3\x1a\x24\xac\x07\xe9\x6c\x55\x40\xff' - b'\x9b\x11\x57\x49\x8a\x29\x00\x2f\x80\x6d\xce\x78\xf1\x02\x07\xe8\xeb\x14' - b'\xc2\xf8\x9c\x04\x4e\x64\xde\xbc\xed\x35\x7c\x4d\x90\xfe\xfa\x2a\x04\xd8' - b'\x41\x4a\x3d\x7c\xd0\x88\xc3\x40\x37\xaf\xed\x63\x98\x07\xad\x72\x3c\xb7' - b'\xcf\x18\x3d\x0e\x05\x15\xc3\x95\xdd\x09\x93\xd8\xc8\xed\x15\x9f\xc2\xda' - b'\x95\x14\x1e\x4c\x27\xbe\xc0\xe0\x5e\xc4\xa4\x0e\xd8\x8d\x26\x64\x38\x62' - b'\x6b\xab\xec\xeb\x36\x9c\x72\xc5\xe5\xf6\x49\x81\x06\xfd\xad\xe5\x19\xd7' - b'\x9f\xd1\x15\x73\xc2\x30\x90\x27\xff\xc4\x9b\xda\x35\x72\xe0\x11\xd4\xba' - b'\x40\xbc\x01\x23\x75\x6a\xc4\xf4\x9a\xcc\xf8\xcd\x0b\xa2\xd9\xf5\x67\x8e' - b'\xca\xe7\x2e\x5f\x43\x9c\xe2\x83\xac\xcd\xb4\xfc\xf0\x11\x73\xd8\xb9\xd3' - b'\xad\xbf\x9b\xc5\x83\xaf\x51\x7d\xe8\x95\x51\x0e\x51\x96\x06\xea\x82\x58' - b'\xac\x5c\xe6\xa9\xba\xa5\xf9\xe9\x98\x62\x0b\x8a\xd2\xf0\x13\x82\xcb\x77' - b'\x06\x33\x55\xdd\x50\xf1\xe3\x1e\xfc\x99\x14\xd2\xdb\xb9\x8b\x54\x3b\x35' - b'\xa1\xd1\xa6\xc9\x69\xca\xd9\x58\x0c\xa1\x59\x98\x68\x63\x8c\x07\x34\x37' - b'\xb0\x3f\xd2\x6f\x78\x40\x9e\x23\x47\x83\x9e\x82\xb1\xf5\x20\x53\x87\xf6' - b'\x7c\x3e\x24\x76\xcb\x03\x16\xd9\xd3\x39\x64\xbd\xf9\xf6\x24\xd4\x41\xfa' - b'\x2f\x06\xf8\xd3\x6c\x8e\x30\x8e\x46\x94\x74\x28\xb1\xe2\x2a\xcd\x4a\x7a' - b'\x27\x9b\x99\x64\x95\x10\xcf\x3e\x9a\x48\x73\xe0\xf6\xbc\xcc\x7d\xbe\xea' - b'\x1c\x09\xb4\xbb\x2a\xe4\x53\x91\xac\x2f\x54\xf9\x25\x22\x34\x45\x60\xcd' - b'\x63\xa8\x8c\xea\xfa\x6c\x2c\x2c\x05\x06\x38\xa4\x08\x09\x51\x31\xcf\x98' - b'\x48\x4f\xfe\x3b\x57\x42\x2c\xcb\xe5\x59\xc4\x11\x86\xed\x20\xbd\x99\x68' - b'\x76\xa4\x62\xad\x10\xad\xc8\x60\x38\x83\xd3\xf1\x99\xf3\x8e\xe4\xda\xee' - b'\xcc\x86\xfe\x7d\x27\xc6\x0a\xbc\x4a\xa1\x81\x12\xca\x61\xb7\x64\x9f\x8d' - b'\x5e\xb7\x2d\xd7\x23\xfe\x28\x57\x42\x38\xc1\x35\x02\x70\xb5\xb3\x89\xf0' - b'\x37\xd9\xf0\x61\xe0\x53\x04\x8c\xbf\x4b\xe1\x60\x52\x22\x9f\x37\xad\xda' - b'\x9a\xab\xdd\x29\xb1\x3a\xf0\x53\xe1\x8e\xb3\x96\xb2\xcf\xc2\x10\xec\x20' - b'\x7d\x2e\xd1\x65\x83\x85\xac\x63\x4c\x14\xfa\x84\xa1\xe0\x70\x10\xfc\xa6' - b'\xe0\xf0\xad\x1f\xc8\xa4\xe4\xa2\x91\x79\x25\xfb\xbd\xf5\x36\x4a\xb1\x02' - b'\x3a\x67\xfd\x69\x3b\xfd\xe2\x59\xbe\x5f\x93\xa3\x4d\x09\xa8\xbe\x5e\x4c' - b'\xb3\x22\xb6\x6d\x67\x64\xf3\xb7\xd3\xe9\x65\x2e\xad\x0c\x9f\x6b\xf0\xc1' - b'\x96\x2f\xfb\xa3\x0c\xe7\x23\xaa\x52\xac\x9d\xf2\x7f\x69\xab\x28\x39\x61' - b'\xf4\x2b\x42\xbc\x69\x7d\x69\xb9\xd0\xba\x37\xe3\xfc\x3b\xa8\xe6\x9c\x81' - b'\x8f\x28\xa3\xde\x1c\xf3\x87\x61\x62\xcb\x7f\x48\x22\x80\xdf\xb7\x02\x5a' - b'\x31\x3b\xf2\xdc\x8a\xde\xd6\xc8\xf9\x60\x11\xda\x5c\xe9\x4c\x32\xc0\xea' - b'\x1d\x35\x54\x60\xea\x8f\xe7\x39\xe6\x75\xc0\x72\x04\x2a\x74\x0a\x52\x04' - b'\x7c\x6f\xba\xfb\xa9\xa7\x3f\x99\x04\xbe\xc3\x6f\x15\x57\x37\x14\x89\xe2' - b'\x70\x1d\x74\x4b\x8c\xe4\x07\x6f\x7b\x80\xe9\xad\x89\xc7\x9e\xe5\x43\x54' - b'\xdf\x47\xee\x41\x53\x94\x6b\x83\x04\x28\x65\x9a\x68\x01\x76\xe3\xe2\xe6' - b'\xb1\xf6\x0c\x70\x29\xbe\x13\xae\xcd\x6b\x63\x32\xb4\xe7\x29\xfe\xee\x17' - b'\x7b\x29\x6c\x8a\xe5\x1d\x1a\x1f\x31\x3e\xa8\xfe\xf6\xa3\xce\xfb\x2e\x5e' - b'\x4f\x12\x17\x88\x90\xcc\x64\x9b\x91\x31\xe6\x61\x06\xc3\x88\x4a\x15\x24' - b'\x3c\x13\x69\xfd\x9e\xb1\x93\xb1\xe0\x15\xd5\x1c\xca\xea\x20\xa3\x03\xce' - b'\x7e\x31\xf1\x52\x7d\x1c\xc5\xb3\x13\x7e\x66\xe0\x4a\x4e\x6b\xae\x96\xfb' - b'\x98\x79\x7e\x78\xf5\xf5\xab\x95\x57\x07\x35\x7a\xb4\x2c\xdf\xfd\x93\x1d' - b'\x67\x7d\x3f\xb7\x6a\x1b\x66\x53\x49\xb3\xa8\xc9\x8e\x89\xcf\x5b\xe2\xd8' - b'\x9d\x7b\xf3\xbb\x62\x95\xd6\x2f\xb4\x2d\x8e\x93\x8b\x21\x6e\x89\x26\xf2' - b'\xa0\x3d\x94\x83\x4f\xfa\x74\x20\xba\x0d\xe8\x67\x7b\x48\xed\xc7\x5b\x32' - b'\x2f\xc6\xaa\x79\xee\xca\xe6\xff\x62\x85\x57\xc4\x9f\xb3\xf8\x5b\x2f\xda' - b'\xd0\x95\x0e\x8b\xd4\xf6\xf6\xa0\x78\x8e\x1c\x66\xdf\x45\xc6\x22\x6f\x22' - b'\xf7\xa6\x4e\x6a\x16\xb0\x78\x72\xce\x1c\xb3\xb5\x2c\x35\xa8\x7a\xe4\x2f' - b'\x62\x52\x74\x69\x90\xf8\xea\xf3\xac\x44\x84\x45\x36\x5a\x9f\x7b\x0b\x78' - b'\x6f\xe1\x9b\x1f\x61\xbb\x49\x4b\xe5\xe0\x39\xc2\x60\xfd\xc4\x01\x42\xec' - b'\x4e\xc8\x5b\xf3\xf3\xec\xd6\x66\x3a\xad\x0c\xa9\xb0\xc2\xcf\xae\xc2\xd8' - b'\x67\x96\x95\x6e\xb9\xc7\x21\xb1\x24\x64\xbc\x2b\x0c\x87\x87\xa8\x8a\x88' - b'\xf4\xf8\x39\x15\x82\x58\xff\x4d\x31\x61\x96\x38\xe0\x12\x4c\x79\xbb\xcf' - b'\x9e\x94\xce\x7a\xcd\xcb\xfd\xc4\xb5\xe1\x27\x8e\x6f\x07\xbe\x3c\x23\x8a' - b'\x75\x6d\x09\x23\x3b\xfa\xdd\x7a\x82\x5a\xbf\x96\xf2\xe8\x5e\xad\xe0\xdc' - b'\x60\x02\x1f\x81\x12\x73\x71\xb2\x4e\xf7\xbe\x19\x81\x82\xc0\xb1\x03\x35' - b'\x93\xad\x3d\xc6\x08\x71\xfa\xfc\xe7\x41\xb5\x01\x4c\x99\x06\x78\x2f\xbd' - b'\x0d\x08\x63\x67\x59\xa9\xdd\x1d\x9c\xab\xb5\x98\xa8\xd2\x74\xca\x40\x1f' - b'\x39\xed\x5e\x9b\x4c\xdb\x8f\x2e\x8f\x3d\x75\xb7\x37\xd0\xbb\xc3\x43\x30' - b'\xee\x9c\x2f\xb0\x51\x96\x49\x10\xa3\xa2\xa5\xe8\xaf\x95\xc4\xab\xdd\x5e' - b'\x9c\x5f\x65\xb0\x4f\xa6\xb6\x66\x77\x7e\x60\xe3\xf2\xfb\x26\x27\xd1\x75' - b'\x1f\xad\xdf\x7f\x0d\xba\x59\xa6\xd5\x77\x81\x2a\xaf\xce\xc7\x1c\xdd\xf3' - b'\x70\x8d\x66\x9d\xc6\x8b\xdc\xaa\xee\x14\xd0\xbf\xac\x17\xa1\x95\x7e\x3c' - b'\xb5\xdf\x38\x33\x64\xe4\x19\x2a\x52\x1e\x99\x28\x2c\xc7\x75\x6b\x82\xdf' - b'\x99\x6f\x0a\x8b\x2a\x71\x83\x48\x68\xf4\x38\xbc\xd8\x0f\xf0\xbc\xed\x46' - b'\x59\xaf\x17\x5f\x30\xd3\x9b\x4d\x82\x45\x42\x24\xce\xf5\x2a\xbc\xf1\x3e' - b'\x52\x59\xd3\xe4\xa4\xff\x18\xe0\x8b\xb2\x48\xbb\xb7\xdd\xee\x6e\x86\xd2' - b'\x3a\xf1\x8c\x0b\x65\x42\xb7\x52\x2b\x19\xf9\xc6\x5f\x2d\x2a\x87\xef\x6e' - b'\x49\x2a\x77\x1c\x68\x6c\xb5\xbf\x4d\x38\xe4\x97\xac\xd4\x08\x4d\x1f\x6a' - b'\xf9\x0e\x5c\xd3\x08\xee\xcf\xf1\xd0\x2a\x2f\x15\x30\x77\xf5\xa3\x48\xc0' - b'\x08\xaf\xd1\x18\xe6\x08\xe3\x0b\x5d\xb6\xea\x8d\x51\xf3\x2f\xbe\xad\xe0' - b'\x4c\x3f\xdc\xc4\x27\x34\x87\x4f\xa5\x86\x24\xf4\xb8\x4d\xa0\x01\x5e\x7d' - b'\x97\x78\x77\x83\x52\x90\xd6\x90\xfe\x25\xa2\x79\xc8\xa5\xe8\x9f\x74\x44' - b'\x62\x0f\x12\x99\xcd\xee\xc4\x2e\x45\x9c\x6b\xce\x24\x93\x23\xcb\xf0\x73' - b'\xb6\x1d\xe1\x32\x0b\x87\x82\x03\x25\x6b\x17\xf7\xf4\xd2\x16\xa9\x82\x1f' - b'\x79\x87\x82\x32\xce\x9b\x93\xee\x4f\xd7\x79\x6b\x30\xbd\x75\xc9\x22\xa1' - b'\xd0\x5d\xa2\xd2\x01\x20\x6e\x1a\x3f\x16\xd9\x9a\x7d\x69\xb4\xdd\x61\x52' - b'\x6d\xee\x78\x9d\x0e\x6a\x64\xe8\x99\xca\xf3\x01\xee\x46\xa7\xf5\x0c\x54' - b'\x54\xbb\x90\xb7\x1f\x32\x77\x33\x00\x01\x0c\xd7\xb9\xe1\xd6\xe0\xf9\x2b' - b'\x8d\x2f\x18\x47\x4a\x32\x36\x95\xdd\xfe\xd1\x9e\x3d\xba\xc2\x3d\xa2\x56' - b'\x90\x8a\xfa\x68\x7d\x98\x93\xed\xfc\xa8\xf7\x00\x02\xff\xd4\x76\xd1\x0e' - b'\xe9\xce\xc3\xa7\x03\x5d\xf2\x62\x20\x79\x99\x23\x89\xc6\x3c\xde\xf4\xbb' - b'\xe3\x7d\x59\xce\x20\xe2\x16\x29\x82\xd4\x83\xb1\x2a\xfe\x59\x81\x16\xbd' - b'\x9b\xab\x71\x30\x7c\x91\x73\xe5\xce\x52\x55\x53\xcf\x9c\x06\xb1\x21\x2a' - b'\x09\x4a\xc9\xcf\xb3\x8a\xd8\xa7\x29\xb5\xc4\x9d\xb5\xb2\x22\x22\xca\x6b' - b'\x01\xf8\x3b\x26\x9d\xeb\x55\xef\xe2\xa3\x9e\x24\xd2\x10\xdb\x05\x9b\x36' - b'\x9c\x5f\x1c\xf0\xf4\xd3\x44\xcb\x52\xe2\x77\x14\x8d\x7c\x87\x82\xe2\x0c' - b'\xea\x33\x47\xc6\xa2\x5c\xa4\xbd\x6c\xf0\x9c\x80\x7d\x23\x7c\x91\x51\x94' - b'\x67\x65\xeb\xde\x00\x13\x97\x3c\x7d\x93\x70\xbd\x78\x61\x4f\x98\xd5\xb0' - b'\x8b\x3f\xd1\xaf\xa2\xc4\xaa\x3c\xcc\x2b\x84\x75\x91\x9f\x0e\xc5\xef\xb6' - b'\x19\x63\xf2\x3e\x6d\x1f\x1d\x07\x41\x96\x30\xfb\xfe\x99\x93\x5b\x67\x78' - b'\xfd\x0d\x24\x5d\x6a\xe6\x8f\xe7\x31\x30\x94\xff\x6a\xf7\x56\xf0\x83\xbf' - b'\x77\x76\x67\xec\xcb\x77\x47\x31\x05\xf7\x4c\xe3\x6c\xa3\x02\x96\x2d\x99' - b'\x5a\x91\x04\x38\x2a\xb6\xa3\x2b\xcd\x09\x47\xeb\x0e\x70\x2c\xbb\x42\x50' - b'\xc1\x0f\xfe\x7a\xbc\x6d\x4a\xa6\x6a\x1f\x09\x27\xda\x63\xba\x0d\x60\x01' - b'\xe2\xdb\xdf\xd0\xb1\x91\x96\x7d\x37\x55\x59\x25\x14\x7b\xb3\x9d\xb7\xc6' - b'\x06\xc8\x36\x04\x13\x63\x12\x0f\xb5\x79\x6c\x62\xb0\xb1\x7b\x1f\x82\x0b' - b'\xcd\x84\xc3\xeb\xcc\x6b\x24\x72\x4b\xd6\xe7\x4d\x23\x5d\xcf\x2d\x0c\xde' - b'\xb2\x2f\x66\x08\xdc\x93\x84\x66\x99\x41\x16\x01\xd7\x1d\x15\x57\x53\x77' - b'\x7e\x67\x1c\x16\x70\xb1\x67\xf4\xca\x80\xf2\x3c\x8b\xe5\x50\x7a\xe8\x96' - b'\x9d\xe9\xcd\x80\xd7\xa7\x16\x6e\xa7\x56\x98\xa0\x9c\xb5\x52\x9b\x3b\xf4' - b'\x97\x58\xe8\x7f\x8c\xe6\xc4\xe2\x67\x9d\x12\x4c\x68\x43\xe1\x26\x55\xb7' - b'\xa6\x33\x84\x74\x30\xd0\x42\xb0\x20\xb7\x6f\x4d\x52\xe7\x9f\xf7\x1c\x2c' - b'\x66\x18\x00\xed\xe7\x15\xaf\xe8\x38\xb8\x8d\x01\x86\xbf\xc6\x7b\x1f\x71' - b'\x13\x28\x17\x3c\x01\x42\xe8\xd6\x85\x21\xc0\xcd\x0b\x19\xc2\xad\x5c\x16' - b'\x39\x1c\x48\xc9\xcf\xd1\xa1\x8e\xfb\xb3\x77\x67\xec\x89\x7c\xef\x96\x69' - b'\xbd\x05\x30\xf2\xbe\x27\x24\x2a\xa4\x23\xe7\x4e\x87\xd7\x06\x1c\x3c\x1e' - b'\x2b\xd9\x6c\x67\xd0\x53\x2d\x8c\x28\xc9\xfa\x3b\x0d\xf7\xde\x90\x76\xe4' - b'\xe3\x29\xdf\x40\x2b\x95\x25\x3e\x88\x23\x04\xbf\xee\xb8\x7b\x69\xc6\x11' - b'\x41\x24\xa9\x18\xd5\x8c\xff\x57\xe0\xc8\x3f\x17\x8f\x53\x9c\x14\x67\xaa' - b'\xb9\xdd\x1f\x60\x91\xe5\x67\xb2\x34\x20\x93\x3c\xe4\xd4\x23\xf9\x0c\xb2' - b'\x9d\x8a\x25\x78\x4e\xbb\xbd\x73\x20\xe6\x16\x66\x3e\x4c\xed\x0e\x3f\xdb' - b'\x4b\x3e\x4e\x4e\x84\x30\xaf\xe4\x60\x1b\xa0\x2f\x39\x7a\xd4\x86\x47\xbe' - b'\x64\x13\x59\xf0\x61\x9c\x72\x31\xc9\xc7\x6f\x40\xa3\x33\xbf\x62\x81\x5c' - b'\xbb\x53\x88\xf8\x0e\x64\xd0\x2f\x9e\x11\x5c\x6f\x2d\x16\xf8\x4e\xc6\x0d' - b'\xec\xbf\x60\xe5\x8b\xe5\xe8\x12\x9a\xf3\xa6\x60\x8e\x04\x9a\x56\x3f\x59' - b'\x63\x0f\xc2\xc7\x92\x80\x71\xb7\xd7\xac\x2b\x67\xfa\xfa\x91\xbe\x4d\x03' - b'\x61\xe7\xa2\x8d\xa0\x13\x77\x45\x7e\x54\xec\x64\x86\x78\x39\x5e\x7f\x2e' - b'\x0b\x14\x53\x76\x05\xc1\x7f\x47\xb5\xe0\x52\x87\x0b\xf8\xaf\x8d\x63\x43' - b'\x87\x5f\x22\x81\x69\xae\x30\xbe\xfa\x79\x88\x8c\xba\xf8\x72\x47\x2c\x0f' - b'\x2e\xc8\x3f\x55\x1f\x17\xdd\x07\x25\xc3\xd1\x6a\x76\xeb\xca\x4b\xd7\x86' - b'\x3b\x3b\x5c\xea\xb6\x2c\x01\x25\x17\x4a\x46\x7d\x78\xa1\x14\xf0\x43\x36' - b'\x6c\x1e\x93\x00\x03\x1d\x53\x55\x30\xa2\xd2\x66\xe7\x6e\xc3\x45\x0a\x13' - b'\x18\x2a\x5e\x9a\xf9\xb9\xfb\x3e\xbc\xac\x03\x36\xa8\xae\x4a\x1e\x0c\x2c' - b'\x26\x40\xe1\xe9\x2b\xe6\x82\xca\x9c\x15\x11\x3a\x52\x7d\x10\xc6\x11\x34' - b'\x37\x9b\xf7\x59\x4f\x31\x4b\xd2\x3b\x98\xfd\xdf\x32\x87\xf5\x54\x77\xf2' - b'\x3c\xdb\x23\x95\x70\x5d\x60\x0c\x4a\xf5\x80\xf2\xfc\x96\xad\x70\x07\xcc' - b'\x8d\xb4\x91\x13\x25\xee\x68\x04\xdc\x3f\x21\xfb\x8e\x8b\xd5\x42\xcc\x5b' - b'\x26\xa0\xcc\xc4\x4f\xb5\x02\x1a\x1f\x29\x64\x6b\xb5\x8c\xa6\x73\x6e\x27' - b'\xd6\x69\x71\xf1\xde\xec\x4b\x16\x5f\x1d\xf6\xee\x0b\x10\x2d\xb4\x1e\xd0' - b'\x35\x46\xff\x02\x32\x1b\x8a\xa9\xd3\x19\x7d\x3f\x6d\x6d\xc8\xe2\xa3\x68' - b'\x99\x1c\x2d\xd1\xe4\x1d\x2f\x62\x67\xf9\x3d\xb2\x9f\x20\x9b\xe3\x0c\x02' - b'\xb7\x35\xbb\xbc\xd3\x06\x1c\x72\xf9\x4f\x40\x20\x50\xc7\x02\xf2\x0b\x7e' - b'\x62\x81\x99\x6d\xee\x7a\xd7\xa7\x11\xf9\x77\xab\xf1\xa0\x6d\x0d\xc6\xaf' - b'\x69\xa9\x8b\x92\xee\xa4\x9e\x09\x62\x9a\xf3\x15\xcb\x9a\xb2\x3d\x8f\xa8' - b'\x7d\xe4\x68\x40\x05\xf3\x8d\xfc\xaf\x38\x15\xfb\xf1\xdb\x22\xf5\x85\xdb' - b'\x64\x47\xb4\xf2\x63\x17\x46\xf5\x01\x4a\x2b\xa4\x41\x4a\xb1\xf2\x29\xc0' - b'\x95\xe2\xe8\x7c\x5c\xf9\x4b\xbb\x30\x97\xb7\xa4\x1d\x49\xc9\xec\xce\x4c' - b'\x92\x0a\x92\x3f\xc5\x0e\x31\xfb\x19\x38\x10\xdb\x5c\x24\x99\x99\xfb\xfd' - b'\x11\x31\x84\x8f\x70\x1d\xd0\x77\x78\x41\xad\xd7\xdd\x9a\x02\xc4\x3b\xde' - b'\xfd\xae\xf8\x74\xf2\x7b\xbf\x22\x50\xad\xff\xf5\x7a\xc2\x88\x01\x89\xbf' - b'\x04\x25\x58\xcd\x57\x18\xe2\x76\x3b\x3b\x72\x69\x90\x1d\x8f\x30\x89\x31' - b'\xa7\xd6\x35\x3d\x40\xfb\x56\x0f\x9f\xff\xdc\xb7\x1c\x03\x83\x9d\xbc\x79' - b'\x79\x79\xb4\xb4\x2e\x8e\x19\x8a\x94\x72\xcd\x56\xfd\x29\x12\x6c\x6e\x4a' - b'\xaf\x41\x25\xc3\x50\x57\xfd\x9e\x02\x2c\x9c\x70\x90\xe9\x89\x67\xea\x14' - b'\x80\x0e\xa8\x40\x50\xa3\xd6\x75\xca\x1b\xf9\x1f\xa5\xe1\x00\xd3\xd4\xae' - b'\xa2\xdc\xf5\x21\xd2\x78\x3a\xe3\x91\x02\x03\xf0\x7b\x86\x08\x04\xbf\x77' - b'\x55\xaf\x3c\x95\x61\xf3\xd5\xc1\xa6\xeb\x62\xf0\x3b\x9e\x53\x47\xda\x45' - b'\x10\xa8\x05\x95\x42\x29\xdb\xfd\x72\xad\xfa\x1e\x15\x07\x29\xeb\x2d\xc6' - b'\x2f\x9b\x13\xb9\x6a\x87\xf5\xa1\x91\xbc\x91\x2d\xef\xcc\x0d\x64\xf9\x19' - b'\xa0\x27\x78\xbf\x44\x87\x15\x5f\x31\xb1\xc9\xb7\x59\xf1\x16\x70\x17\x98' - b'\x8a\xee\x9f\xff\xf7\x7d\x3d\x51\x53\xaa\x9c\x36\x58\xb8\x3b\xea\xed\xe9' - b'\x9d\x00\xa9\x7c\x1d\xc8\xab\x2f\x51\x9a\x55\x0e\xde\xe4\x85\x8d\x12\xd7' - b'\xe7\xd7\x48\xd6\x63\x13\x81\xf6\x17\x9f\x4d\xb8\xe8\xc2\x58\x81\x11\xbe' - b'\xbc\x11\x06\xec\xf9\xd9\x4c\xbe\x02\xf1\x36\x5a\x63\x79\xd8\xcf\xec\x4c' - b'\x4d\x56\xaa\x97\x7b\x6d\x3d\x68\xeb\xe9\x4c\xa1\x34\x9c\xf2\x6f\xe5\xdc' - b'\xc4\x24\xcd\x17\xb0\xd5\x89\xf7\xff\xdf\x19\x78\x28\x93\xbe\x0e\x54\x4a' - b'\x89\x10\x1d\xb8\x32\xad\x28\x29\x7c\xe3\xab\x28\xfd\x28\x96\xf0\xab\xf6' - b'\x54\x66\xa8\xba\x0c\x04\x57\x37\x20\xd4\xc3\x92\xf4\x13\x26\x52\x49\x32' - b'\xc9\xc3\xac\xb5\xb0\x89\x90\x55\xb6\xd1\x65\x1f\x71\x6a\x9a\x64\x5a\xe6' - b'\xc2\xa4\x3d\x52\xb3\xe8\x74\x53\xd8\x51\x71\x54\x7a\x5c\x29\xa4\x54\x8b' - b'\x91\xcb\x53\xa5\x0b\x14\xb3\x81\xce\x18\xeb\xde\x26\x6d\xc6\x33\xc4\x07' - b'\xef\x25\xb1\xf2\x81\x8e\x4e\x1d\x7e\xeb\x3f\xd2\x01\x35\x1f\xce\x96\x3f' - b'\x5b\x9f\x02\xdb\xe3\xfc\x1f\x35\x5c\x2b\x83\x72\x86\xf2\x0b\xe2\xbe\x1b' - b'\x12\xa7\x19\x0e\x2b\x0b\xb6\xff\x5a\xc1\x94\x88\xf1\xea\x7e\xad\x46\xe4' - b'\xa3\xa6\xc5\x00\xfe\x8e\xee\xdd\x33\x1b\xba\xcc\xf5\x3a\x22\xdd\x7d\xa5' - b'\x95\xff\xe1\x47\x04\xb4\x76\xbc\x3b\xb6\xb5\x99\x5d\xea\xb2\x65\xdf\xad' - b'\xc3\x52\x37\xeb\xfd\xd3\x9a\xc3\xfb\xd0\xc5\xb1\x41\xb6\xe4\xd9\xed\x29' - b'\x53\xd0\x14\xc4\x57\x39\x8a\x12\xb1\xe4\x04\x67\x26\x3d\x74\x7b\xb1\x7e' - b'\x4b\x3d\x11\x17\x11\xe8\x1f\x6e\xb7\x2c\x4b\x79\x35\xfc\x47\x2a\xf4\xa1' - b'\xa9\xaf\x92\xa2\x97\xff\xe0\x14\xc7\x74\x23\x9e\x9f\x87\x12\xca\xef\x1e' - b'\x7b\x94\x69\x36\x8e\x33\xb4\xa2\x9e\x79\x21\x16\x7b\x54\xdd\x22\x89\x58' - b'\x37\x43\x47\xd6\x2f\xb0\xed\x49\xfe\x84\xbc\x77\x82\xf5\xd9\xf6\x3a\xb8' - b'\x07\x56\xf7\xac\xb4\xc3\x17\xc9\x0f\x9b\xe3\xb3\x8c\xd3\x56\x43\x47\x8f' - b'\x47\x66\x9a\x45\x24\x30\x22\x60\xc9\x60\x22\xe4\x2e\x73\x20\x6d\x60\xa4' - b'\xcf\xc9\x18\x03\xc9\xd4\x1d\x47\x0b\x7e\xed\xb1\xd3\x3c\x56\xf2\x50\x04' - b'\x27\xa0\x38\xea\xbd\x19\x4f\xee\xb4\x3b\x78\xa6\x06\x2d\x9f\xea\x5f\x1e' - b'\x35\xa4\x77\xb9\x74\x9f\x7b\x43\x85\xc9\x34\xb5\xb7\x98\x91\x08\xd5\x88' - b'\x5e\x58\x1f\x59\x83\xa7\x61\xe8\x1f\x49\xea\x47\xb8\xb1\xcb\xf0\x4b\x00' - b'\x3a\xf3\x31\xa7\x10\xe7\x3a\xc3\x2d\xfc\x2c\x70\xe4\x66\x52\x5c\x08\x08' - b'\x7e\x3e\xb0\x6b\xe6\xbb\xc0\xca\x46\x16\x7c\x23\xad\xe9\x6b\x77\x3e\x6e' - b'\xb8\xf2\xce\x30\x3e\x81\x54\xa4\x7c\x50\xe1\x97\xf2\xa5\x9b\x17\x60\xef' - b'\x78\x73\xed\x85\x91\xcd\x28\x63\x19\x58\x92\xea\x91\xc2\x72\x22\x9c\x7b' - b'\xac\x8f\xf7\x1c\x82\xca\xa6\xf6\xc2\x84\x9d\xc5\xa2\xc5\xf8\xa1\x8d\x67' - b'\x3f\x26\xf5\xa1\x63\x98\xe7\x6f\x6f\x0a\x61\x2e\x2a\x5b\x06\x11\x5d\xa4' - b'\xed\x19\xed\x10\xa0\x73\xee\x8a\xd6\xcf\x09\x75\xc3\x67\x61\xce\x86\x49' - b'\x4c\x65\x73\x76\xa6\x15\xde\x26\x89\xb0\xc6\xe1\xc7\x35\x9e\x67\xd0\x1f' - b'\x29\xa1\x56\xbe\x12\xf4\x62\x6d\x2b\xc3\x91\x54\x82\x7a\x32\x95\x54\x0a' - b'\x58\x34\xad\x9f\xaf\xf4\x14\xd5\x4c\x74\x27\xd4\x2a\xae\xea\x54\x3d\x1d' - b'\x21\x41\xba\x0c\xda\xfc\x10\x2f\x5c\x57\x40\xf2\x6b\x6f\xea\xa5\xca\x9e' - b'\x8c\x46\xd6\x2d\xea\x62\xd0\xd8\xb8\x49\x74\x70\x87\x8a\xd3\xfe\x67\x42' - b'\x5a\x33\xfa\x62\x90\x8f\x2e\xbc\x09\xec\x99\x34\x2d\xc4\x5b\xb8\x20\xa2' - b'\x57\x00\xd9\x95\x69\x95\xaa\x17\xaf\xdc\x39\xd0\x4f\xde\x80\x88\x07\x6d' - b'\xbe\xd5\xff\x7a\x86\x13\xca\x3c\x23\x28\x73\x40\x7e\x1c\xa7\xe8\x88\x9e' - b'\x95\x2c\xa1\x8a\x95\x23\xa2\x70\x17\x57\x63\xe2\x42\x54\xf0\x4e\x5d\xc9' - b'\x35\xad\x53\xa1\x7a\x16\xaa\xf3\xcd\x18\x48\xdd\x81\xce\xec\x76\x5f\x56' - b'\xd8\x1c\xaf\xab\xab\xc5\x0c\x05\x53\x64\x37\xed\x75\x74\x8b\xf8\x5f\x40' - b'\x86\xbd\xd5\x5e\x32\xfe\x28\x2a\xab\xb1\x31\xaf\x3a\x82\x73\x78\x65\x37' - b'\x96\x43\xff\x68\xb0\x99\x7d\x68\xa5\x5e\x36\xe0\x84\xa1\x07\xfc\xb2\x68' - b'\xc6\x89\xf4\x16\xde\xe5\x07\xbf\x00\x86\x9b\x2b\x76\x17\x65\xd4\x73\x55' - b'\xe8\x74\xe9\xa1\xe3\xde\xa3\xc2\xe8\xe6\xc4\xde\x49\x0c\xf7\x24\xed\x02' - b'\x34\xd8\xbd\xf1\x0d\x9c\x48\xcc\xb7\x99\x22\x66\x3a\xcf\x4b\x25\x3d\xf0' - b'\xc5\x42\x8d\x92\x48\xaa\x61\x6d\xb7\x5d\x11\x44\xea\xd9\x2f\x7d\x33\x52' - b'\xb0\x8f\xf8\x24\xd9\x25\x39\xfb\x0f\x27\xc1\xc2\xf9\x24\x72\x99\xa6\x7f' - b'\x4c\xfe\x82\xa7\xe0\x36\xb7\x58\x27\x6b\xa4\x49\xb2\xc1\x7f\xf7\x3b\x1d' - b'\x81\xbc\x7f\x7f\x62\x73\x48\x58\x6d\x8b\xa2\x9e\x14\x16\x70\xb6\x87\x48' - b'\xd8\x83\x8b\xb0\x34\x0f\xe2\x68\xb3\x3e\x47\xdb\xbf\x49\x54\x28\xf3\x01' - b'\x78\x8f\x27\x01\xf4\x50\x23\xdb\x5b\xe9\xe9\x2c\x27\x68\x6c\xaf\x8e\x86' - b'\x88\x1c\x8f\x1c\x97\xc1\xb1\x9f\x8c\xa2\xe2\x7f\x3b\x97\x52\xd5\x4f\x1e' - b'\xc6\x6b\xa4\x5e\x27\xec\xf0\xb2\x9e\x66\x9b\x90\x6c\x8f\x9c\x24\x69\xda' - b'\x4c\x5b\x6e\xd5\xca\xa6\xb6\xd5\x60\x11\xdb\x1e\x08\x98\x70\xec\x7a\xf6' - b'\x25\xef\x35\x64\x79\xaa\xdb\xc2\x7f\x9e\xd8\xa1\x86\x47\xcf\xfe\xd0\x5e' - b'\xc3\x9c\xa9\x0e\x10\x47\xeb\xe9\xfa\x51\x6f\x63\x1b\x85\xdc\x36\x64\x12' - b'\x56\x4b\x11\x23\x5f\x98\x44\x31\x6b\xa0\xce\x38\x31\xfd\x46\x60\x53\x85' - b'\xba\xa9\xe5\x15\xcf\x25\x59\x84\x3c\x72\xe0\xee\x17\x9f\xca\x4c\x98\xc5' - b'\x4d\x6a\xa5\xaf\xed\x61\x0c\x3e\x82\x67\x0d\xe2\x90\x47\x12\x53\xb2\xcb' - b'\x79\xb2\xe2\xe4\x45\x83\x3a\x25\x28\x67\xb5\x40\x0d\xd0\xe3\x08\x1f\xc8' - b'\xe6\xea\x84\x97\x0a\x82\x75\xae\x30\xc2\xff\x62\xdb\x20\x79\x0b\x58\x9f' - b'\xe5\xa7\x27\x80\x3e\x57\xcf\x1f\xaa\xf8\x67\xf2\xaa\xc6\x7f\x44\x8b\x92' - b'\x98\x72\x9c\x44\x97\x1e\x8d\xa0\xef\x38\xc5\xb8\xff\xb9\xa6\xdb\x15\x9a' - b'\x45\xa4\x34\xc8\xda\xb4\x4c\x75\xe3\xf9\xeb\x67\x1d\xe5\x81\x35\x96\xec' - b'\xcc\x0d\x5f\xb8\xdc\x7e\x9b\x9b\x6b\x86\x5b\x27\xec\x1f\xae\xa6\x52\x5e' - b'\x74\xad\x3c\xea\xb1\x59\x43\x38\x75\x69\x46\x51\xca\x38\x53\x56\xab\x7c' - b'\x51\x8d\x87\xb2\xd7\xa1\x75\xd9\x80\xe4\x9f\x70\x5d\xb7\xb2\x6e\x37\x1a' - b'\xac\x7c\x77\xae\x9f\x5b\x33\x58\x53\xca\xb0\x74\x66\x66\xcd\x8f\xb1\xa3' - b'\x57\x19\xd8\xf6\x4f\xe3\xb7\xb1\x91\x9b\xa3\x9a\xc0\xab\x53\xf6\x93\x0f' - b'\x5f\x28\xba\xf8\x47\xe8\x38\x3a\x56\xe6\x78\xdb\xe5\x3b\xb0\x90\x03\x27' - b'\xac\xc8\x94\xce\x82\xeb\x8a\x92\xb4\xb7\xdc\xbf\x27\xfe\xca\xec\x39\x82' - b'\x14\x52\x4a\x0a\x82\x2e\x52\xb9\x29\xd3\x35\x5d\xed\x08\xf9\xf9\xcf\xea' - b'\x3c\x62\xc9\x07\x8a\xc2\xc2\x2d\x7c\xf3\xa0\x33\x5f\x84\xac\x21\x59\xcd' - b'\x0f\xbb\xd6\xf5\x16\xeb\xdb\xe6\xa0\x32\x00\xf6\x42\x40\xdc\x19\x14\xdb' - b'\x88\x5a\x53\xf8\x0a\x71\x6b\xf0\x95\xe5\xe1\xdd\x7b\x09\xe4\x59\xa3\xae' - b'\x47\x7f\x4a\x9d\xf2\x63\x76\x5d\x5d\x38\x78\xc2\xf8\x05\xb4\xf7\x1b\x6e' - b'\x00\x6b\x1e\xac\x0c\xd1\xb1\xab\xb2\x68\x86\x4f\x5a\x5f\xdd\xed\x46\x27' - b'\xaf\xa0\xc3\x88\xef\x98\x7a\x11\xac\x75\xff\xbe\x12\x30\x3c\x4d\x16\x04' - b'\x97\x1e\x79\x59\x01\x52\x11\x7b\x88\x54\x37\x88\xe0\x8e\x7a\xb2\x32\x7b' - b'\xb5\x66\x73\x9d\xaa\x83\xe8\x47\x11\x96\x53\x94\x95\x2c\xd6\x4e\xaf\x3d' - b'\xdc\x33\x5b\xc4\xfe\x29\x98\xb4\xd3\x96\x42\x34\x14\x80\x71\x2f\x8f\xaa' - b'\x0b\x86\x6a\x68\x81\x55\xaf\xce\xed\x1c\x3d\xd6\x9a\x19\x7a\xb8\xae\xd0' - b'\x9f\xb2\x0b\xfe\x4c\x96\xe6\xf0\x7e\x5c\xf4\xd1\xfe\x10\x94\x28\x98\xd0' - b'\x9a\xa7\x60\x77\x21\x08\xe9\x67\x6f\x01\x7d\x2d\x43\x0b\x87\x01\x27\x39' - b'\x89\xcd\x17\x3b\xf8\x88\x0a\xd3\xdd\x17\xe3\x78\x0c\xd5\x7d\x8d\x48\xbf' - b'\xbb\xca\x45\x15\x61\x5e\x07\x16\xb6\xa8\x30\x52\x96\xff\xa5\x57\xa7\xc2' - b'\x0f\xe2\x0d\xc9\x6d\xcd\x8c\xe4\xff\x31\x06\x1a\x06\xf2\xfd\x5d\xb5\x9e' - b'\x69\x2a\x58\x49\x28\x9c\x97\xb8\x7c\xb3\xe7\x78\x12\xcd\x1c\x13\xdf\xea' - b'\x70\x30\x2d\x8d\x6d\x60\x4b\x63\x16\xfc\xc9\xe4\x25\x07\xcb\xc2\xbb\x57' - b'\x7f\xe5\xf8\xe3\xf6\x8d\x39\xc5\x3f\x43\xcc\x8a\x53\x71\x1a\x7e\xed\x84' - b'\x5d\x93\x89\xe5\xde\x09\xe2\x22\x27\x82\x0b\x85\x4a\x5e\xe8\x1b\xb3\xdc' - b'\x36\xdd\xf8\x2f\x70\xd0\xab\x98\x2f\x88\xac\x6a\x9e\xa0\xbf\xd8\x50\x4e' - b'\x19\x85\x09\x2d\x5c\x82\x5f\xf3\x3b\x57\xf5\xfa\x7a\x19\x69\xbe\x07\xb3' - b'\x35\x01\x63\x37\x74\x22\x72\x2d\x7f\xbf\x01\xe9\xd3\x17\x04\x0b\x3d\xda' - b'\x42\x03\x71\xb2\x64\x74\x78\x17\x9e\xd2\xde\x58\x8a\x10\xaf\x92\x98\x20' - b'\xf8\x9b\x30\x98\x60\xe6\xf1\x90\x74\xb3\xeb\xa0\x5c\x43\x36\xa0\x3e\xcc' - b'\x8d\x60\x1c\xa7\xef\xb1\x1d\x0d\xc3\x44\xbc\x25\x2b\xf5\x70\x5f\xa9\x67' - b'\x8f\x18\x1c\xd8\x21\xd0\xb2\x0f\x96\x2d\x8d\x18\xf1\x05\xc3\xa5\x57\xb2' - b'\x79\x0f\xf6\xdd\x77\x62\x3b\x11\xc5\xb9\xa4\x9f\xe0\x4d\xe8\xcc\xc3\x66' - b'\x0d\x78\xb6\xb4\x41\xea\x6a\xe7\x9f\x40\x64\x8e\xb8\xf5\xe3\xdc\x2f\x6a' - b'\x1e\xde\x01\x35\x9a\x70\x13\x94\xd1\xfb\xff\x8f\x86\xcf\x58\x1d\xeb\x93' - b'\x1b\x56\x33\x35\x51\x08\x41\x44\x2f\x11\xdf\xe2\x57\x3f\x1e\x2d\x27\xf4' - b'\xcc\x1b\xfc\xf2\x93\x77\x79\x88\x40\x5b\xcc\x5a\x12\x3c\x68\xa6\x28\xd5' - b'\xef\xbd\xb6\x1e\x3c\x92\x47\x8a\xac\xda\xfb\x20\xce\x0d\xe6\xf9\xeb\x27' - b'\x5d\xcc\x25\x69\x16\x09\xce\xbb\x0a\xd4\xb3\x45\xf2\x7c\x0c\xd0\xbf\x25' - b'\x04\xb3\xe3\x4a\x41\x67\x60\x1d\x68\xaf\x54\x7b\xcb\x28\x4d\xd1\x95\x30' - b'\x40\x41\x6b\xe6\x13\x3c\x64\x60\xe1\x90\x2a\xcb\xb4\xa1\xc7\xbe\x7c\x81' - b'\xe0\xea\xf3\x3c\x2f\x20\xe4\x04\x66\x69\xc7\xda\x9f\x85\x30\x7b\x23\x5b' - b'\xb0\x9f\x00\xb0\xa2\x5e\x66\xb3\xd4\xbd\x94\x93\xf5\xac\xfc\x2c\xc1\xa5' - b'\xb6\x84\xcb\x3d\xa4\xa6\x9d\x06\x86\x3d\x76\x04\x02\xda\x59\x90\x57\xba' - b'\x90\x8b\x16\x01\x1d\x63\x50\x32\x7f\x2f\x05\x32\x02\x2e\x5c\x90\xa4\x8b' - b'\x67\x4c\x38\xc9\x43\x92\x1c\x3e\x79\xcf\xe1\x95\x34\x63\xe2\x44\x36\xc6' - b'\x14\x70\x5b\x46\x62\x27\x9a\x76\x84\xcd\xf0\xcb\xa3\x9c\xe4\x56\x38\x9f' - b'\xd6\x97\x38\xe6\x3a\x8b\x1e\xd9\x21\xf8\x3a\x98\x42\x9f\x93\xe1\x36\x8f' - b'\x2d\x2e\x1e\xb8\x56\x2c\x83\x5e\xb0\x11\x45\x23\x54\x29\x18\x4e\xf8\x8b' - b'\xe0\xf3\x17\xb3\xe0\x58\x37\x0a\x56\xdd\x0e\x05\x29\x03\xd7\x98\x6d\x77' - b'\xe3\xf5\xab\xea\x29\x4e\x7e\x89\x4d\xde\x05\xeb\x27\x3b\x33\xd9\xfd\xab' - b'\x9e\xe8\x39\x52\x32\x33\x25\x47\x5c\x76\xb4\x5d\xf2\xaa\x24\xf7\x20\x31' - b'\x98\x86\x28\xd9\x23\x2d\xe9\x6b\x44\x2f\xb0\x6f\x54\x9e\xea\x4b\xee\x72' - b'\x3b\x66\xfa\x51\x77\xa8\xf6\x38\xe6\xa3\x38\x3d\x51\xb1\x2f\xdb\x57\xdb' - b'\xd0\x44\xbe\x39\xfe\xc9\x73\x55\x4e\xe4\x75\xac\x4f\x6e\xdd\x3b\xef\xed' - b'\x0c\xb8\xab\xc5\x5f\xc3\x59\x71\xac\x86\xd6\x7a\x5e\x2e\x41\xd2\xe0\xd6' - b'\xca\xa9\xe4\x6a\x08\xb5\x61\x95\x69\xf4\xc4\x75\x59\xe0\x65\x62\x67\x55' - b'\x4a\xd2\xad\xab\x09\x4d\x52\x66\xec\xf1\xbf\x5d\x5f\x65\xa3\x19\x8a\x89' - b'\x80\x80\x62\x46\xfe\xdf\x82\x24\x04\xcc\xdf\x45\x29\x2a\xff\x61\x63\xcf' - b'\x93\x39\xeb\x5b\x9e\x2c\xad\xdf\x8d\x93\x5c\x7e\x0b\x24\x90\xfc\xa1\xbd' - b'\x76\xb0\x93\x77\x5c\x0e\x70\x5e\x28\x61\xcd\x36\x93\x39\xba\xf8\x15\xc3' - b'\x2d\x19\x53\x8e\x8f\xb1\x47\xf3\x97\xb9\x8c\x5e\x8c\xc9\xab\xcb\x81\xa2' - b'\xdf\x0b\xa4\x3e\x36\xea\x36\xab\xce\xbd\x45\xd7\xbb\xf8\xbc\x53\x2d\xc0' - b'\x46\x8b\xa4\xba\xb3\x35\xd6\x86\x19\xa7\xf8\x95\x1d\x57\x88\x5d\x96\xdf' - b'\xb6\x35\xd7\x67\x78\x87\x3c\x62\x6f\x2a\x04\x7b\x4b\x55\x73\xac\xfd\x96' - b'\x1c\x00\xdc\x43\x8c\x9e\x63\x54\x66\x0c\x59\x5b\x01\x89\x51\x7e\x2a\xf5' - b'\xf7\x46\xfe\x94\x41\x7d\x84\x15\x38\xa6\xcf\xa3\x61\xc0\xff\x34\x61\x66' - b'\xea\xa7\x61\x53\xfc\x80\xc7\x2c\x34\x28\x32\xfa\xb9\x21\x99\x94\x30\x7d' - b'\x1a\xca\x82\x08\x12\xe8\x87\xfe\xa8\x7b\x17\xc2\x6b\x5b\x2a\x7b\x6c\x3b' - b'\x39\x88\xd7\x41\xb2\x8c\x1a\x3f\xd3\x4a\x70\xce\x24\xe3\x1c\x21\x9d\x69' - b'\x30\xb0\x13\xe8\x40\x4f\x36\xf8\x11\x9b\x87\xde\xeb\x56\xc7\xae\x73\x9c' - b'\xe0\x64\xc9\x6e\x52\x51\x0b\x34\xcd\xc5\x4b\xda\xd2\x98\xe1\xb8\xad\x67' - b'\x43\x4e\x9d\x9b\x8d\x37\x63\x8c\x66\x90\xa2\x1f\x1b\x87\x56\x3c\x17\x38' - b'\x5e\x63\xad\x76\xf0\x84\x2f\xf1\x82\xb2\x0c\xa0\x5f\x30\xfd\x51\x79\x4b' - b'\x89\x6b\xe7\xf4\x8c\x62\x7e\x5f\x97\x7a\xa3\xd6\x4f\x8e\x69\xc5\x9e\xd6' - b'\xab\xc8\xc4\xfa\x06\x6d\xbc\x34\xee\x1b\xb8\x78\x4a\x6b\x8e\x2c\x3e\x42' - b'\xc2\xca\x7e\x7e\x0c\xbd\xc4\x44\xbc\x60\x33\xdd\x77\x46\x7f\x88\x1f\xc1' - b'\xc7\xd7\x9c\x8d\xc9\x8c\x32\x1f\xbd\x3e\xca\x83\x43\xe9\xa3\x7f\xd8\x4b' - b'\x35\x98\x18\xf2\x85\x9e\x88\xd4\xa4\x6d\x72\xfa\x83\x54\xc1\xf8\xcb\xef' - b'\x89\x25\x33\x83\xf3\x22\x23\x0c\x2e\xa3\xe2\xcc\x27\x08\x68\xde\xaa\x2e' - b'\x7d\xcd\xc9\x8f\x14\xbf\x4a\x98\x6f\x08\xf7\x41\x02\xe3\x19\xa7\xfd\xaa' - b'\x20\x79\x88\x7a\x0c\xff\x3f\xc3\x99\x23\x44\x9b\xa3\xa2\x86\x78\x82\xad' - b'\xfe\x6d\x7c\x65\xb4\xdf\x6a\x63\x1a\xf4\xca\x5e\xdd\x7c\x7a\x53\x96\xbd' - b'\x6e\x4f\x9e\xa4\xe7\xf8\x07\xfe\x07\xdf\x15\x93\x51\x90\xea\xde\xb9\xd5' - b'\x54\x6e\x1f\xfb\xc3\x6f\xd7\x32\x2c\xad\x84\x36\xa7\x0d\xd9\x65\xc1\x38' - b'\x45\x3a\x53\x60\xa0\x4e\xba\x26\xcf\x23\x58\x7b\x61\x20\x69\xc8\xc6\xf6' - b'\x7a\x9d\x92\x4b\x52\x37\x00\xf2\x30\x53\x2f\x29\x43\x38\xb1\x65\x1d\x35' - b'\xdd\x03\x78\x7e\xe5\xb1\x73\xad\xfc\xa7\x50\xc7\x61\x08\x5e\x8e\x79\xd0' - b'\x86\x46\x96\xeb\x77\x71\xcc\x9e\x08\x54\x05\xfb\x78\x54\xc8\x9c\x65\x3b' - b'\x0a\x1e\x5a\x05\x16\x6e\xc1\x78\x51\xe5\xe3\x6e\x52\xe8\x93\xef\xc9\xaa' - b'\xd0\xa6\x17\xad\xdd\x29\x2b\xda\x50\x01\xe1\xd5\xca\xe6\x54\x0a\x65\xf5' - b'\x20\x35\xe4\x93\x05\xfc\xe5\xc6\x81\xe8\x60\x40\xbc\xa7\x52\xe2\xfb\x72' - b'\xfd\x98\x6a\xa8\x6e\x96\x37\x8f\xac\xd0\xb2\x14\x8a\xfa\x36\xe7\x5a\x7b' - b'\x81\x90\xd4\xe9\x76\xa1\xbc\x2e\x17\x54\x05\x3e\x35\x14\xf9\x7b\x2e\xb2' - b'\x9b\xfa\xd2\x01\x7d\xa8\x6d\x9c\x9e\x37\xe0\xb2\x60\xd3\xc4\x55\xaa\x58' - b'\x3a\x5f\xbf\x9d\x72\x57\x45\x69\xa1\x82\x2b\xad\x76\xf1\x5c\x2d\x8b\xb1' - b'\x6a\x5b\xbf\x8e\x81\x85\x05\x15\xbf\x4b\x09\x9e\x00\xc8\x70\xaa\x75\xd8' - b'\xc0\x94\x88\x0b\x00\xc7\x55\xf4\x82\xbb\xa2\x03\x4c\xc1\xc0\x1c\xa5\xa7' - b'\xf2\xfc\x76\x24\xfc\x27\xca\x8b\xdb\xb9\xdc\x35\xec\xe8\xef\x85\xf6\x80' - b'\x0b\x4d\x9a\xaa\xe4\x12\x21\x66\xa9\xc0\x2b\x74\x78\xe5\x73\x6d\xd7\x9a' - b'\xb8\x49\x9e\x43\x2c\x1a\x7d\x7e\x78\x7f\x9d\x52\x0c\x98\x1b\xf6\x8b\xb6' - b'\x55\x4d\x54\x07\xe8\x6a\x38\xfd\xd0\x67\x89\x0c\x69\x70\x7b\xf6\x66\xce' - b'\xf2\xec\x04\xe0\xad\x50\x41\x6e\xfc\x7f\x31\x21\xf3\x5e\xb6\xe1\x30\xd9' - b'\x39\xb6\xe5\xbf\xa8\x1e\x93\x45\x12\x8c\xec\x22\x39\xd4\x63\xba\xe7\x9a' - b'\x0c\x22\xd0\x45\x73\x6b\x01\x89\x2a\x76\xf2\xbc\x04\xee\x58\x97\x07\xc4' - b'\x19\xf6\x40\x56\x80\x82\x18\x0a\xbf\x40\xee\xfa\x86\xb9\x69\x49\x17\xce' - b'\xa9\x1d\x44\xf5\xfe\x46\x75\x43\xa0\xc4\x2c\x55\xca\xe5\x72\x8c\xc8\x6e' - b'\x1e\x69\x7b\x2e\x41\x23\x4c\xb9\x6d\x2f\x0e\xe2\x92\xe3\xf7\xdd\x61\x89' - b'\xa6\x2b\xfd\xde\x79\x3b\x0f\xa7\x48\xde\x31\x21\x6b\xaf\x3a\xf3\x0d\x5d' - b'\x42\x0a\xa8\x10\xe8\x50\x8f\xb6\x3f\x37\x9a\xcd\xa2\x97\x38\xa7\xa3\x66' - b'\x83\x47\x26\xbb\x73\xa5\x13\x74\x3f\x1b\x9a\xd0\xfc\x04\xba\xa4\xaf\x7c' - b'\x8f\x13\x4d\x0c\xa5\x69\x69\xd1\x09\x91\x2d\x77\xdc\xf4\xc1\x92\xff\x0f' - b'\x67\x5e\x0d\x8c\xc4\x43\x66\x14\x5e\x3b\x44\x22\x74\x8c\x66\x15\xcc\x74' - b'\xe8\x4e\xf7\x21\x62\xcf\xbf\x2c\xf8\xbf\x10\x45\xbc\xb7\x33\xcc\xa4\xd1' - b'\x67\xaa\x01\xda\xc9\x94\x8d\xd9\xfc\xb6\x19\x7f\x42\xac\x20\x3b\x77\x34' - b'\x8d\x2a\x9e\xc8\x00\xf7\xf3\x6a\x52\x96\x82\xab\xac\xfa\x58\x4c\xc0\xc7' - b'\xbc\x3a\x7c\xb9\xc4\xcd\xcf\x67\x2a\x4c\xef\xd9\xc1\x13\xc4\xf0\xb9\x12' - b'\x8b\x08\x7e\x70\x00\x08\x9b\x28\xce\x59\xb5\x1d\xe6\x82\x52\x9e\xce\x08' - b'\x40\x8e\xc5\x65\x46\x86\xe5\x9e\x9c\x7d\x4f\x02\xbc\x57\xdb\xd2\x3d\x36' - b'\x4d\x9c\xfc\xf9\x4c\xb8\x0a\x27\xa4\x09\x6f\x3b\x3b\x2b\x30\x3f\x40\xe9' - b'\x4b\x4b\xe2\xbf\x87\x5a\x4d\xab\x38\xbb\x36\x03\x87\x67\x40\x18\x63\x52' - b'\x3a\xe4\xc7\xe1\x78\x88\x1b\xd3\xf5\x53\xf9\x09\x16\xa9\xcc\x57\x96\x49' - b'\x2f\x2e\xc9\x77\xac\x7a\x4d\x01\x98\x5b\xcb\x54\xee\x2f\x03\xa8\xfa\xea' - b'\xca\x70\x84\x4c\xd4\xbd\x7a\x50\xac\xc1\x9d\x3e\x36\xb5\x4d\xa4\xf8\x04' - b'\xe2\x66\x25\x94\x3c\xf8\x66\xed\x25\xc2\x00\x97\x60\xeb\xc1\xe8\x1b\x0b' - b'\xf5\x5c\x91\xa7\x43\xe0\x30\xec\x52\x01\x7d\xb9\x41\x31\x36\x20\xca\xe7' - b'\x45\x93\x5f\xf4\xdb\x98\x1a\x6e\x6a\x84\x05\x61\x57\xb7\x28\x9d\x4e\x4b' - b'\xf5\xac\xf3\xd1\x28\xde\x57\xb1\x0e\x1a\x00\x49\xdb\xc4\x71\xd6\x95\x65' - b'\xa3\xab\x13\x96\x54\xbb\x96\xdb\x07\x30\x5f\x43\x6a\x5e\xb8\xa5\xc4\x70' - b'\x5e\x3a\x56\xdb\x08\x11\x9b\x7a\x12\x75\x71\xd9\x8a\x43\xc0\x19\xe6\xb7' - b'\x8a\x4b\x04\xad\xdd\x8f\xdf\x45\xdf\x61\xfe\xea\x7b\x4b\xa5\xfb\x95\xb5' - b'\x70\xec\x77\x28\x0a\x10\x82\x89\x52\x2e\x73\x27\xce\xb0\x50\x7d\x3f\x27' - b'\x78\x66\xf1\x51\x45\x82\xa3\x1f\xfa\x0b\xce\xdc\x2d\x6f\xe8\xa3\x36\x58' - b'\x10\x10\x71\x1f\xfc\xb4\xf8\xbe\xfb\x78\x40\x6f\x6f\xf5\x4b\xda\xf6\xa0' - b'\xa2\xe4\x3c\x4d\x3d\x2e\xdb\x45\x5b\x63\x1a\xf9\x95\x31\x29\xf8\x8a\xe8' - b'\xdf\xb7\x98\x72\x1a\xd6\x76\xfb\x95\x97\xbd\xcc\x12\x1a\xab\x91\x7e\x62' - b'\x8e\x9e\x27\x00\x09\x8b\x7e\x9d\x48\xb2\x12\x11\xcc\x14\x21\xfd\x9e\x82' - b'\xe2\xc0\x1f\x29\x23\xfd\x8f\xb6\xe3\xdf\x2a\x6c\x0f\x85\xca\x44\x0b\x36' - b'\x5e\xd8\x93\xcb\x9a\x12\x73\x48\x1c\xf4\x1c\xc3\x2d\xe3\x4d\xe2\x94\x0a' - b'\x56\x9e\xf2\x0f\x95\x9b\xc8\xb0\x25\xf3\xdf\x32\x4f\x5a\xe4\x67\x7f\xec' - b'\xe8\x45\xd4\xf4\x7c\x45\x00\x04\x69\xd3\x80\x8f\xe3\xf9\xd2\x49\x21\x57' - b'\x20\xf8\x9b\x40\x1a\xad\x44\xc9\x59\xc3\x7e\xc5\x0b\x0e\xf9\xbe\x63\xf8' - b'\x89\x75\x03\xe3\x6c\xf2\x46\x6d\xfb\xf9\xa6\x68\x77\x08\x13\x31\xde\xdb' - b'\xeb\x3a\x0b\x2c\xbe\x41\x71\x42\x97\x9e\xfb\x14\xec\x73\xc0\x1d\x73\x97' - b'\x3a\x73\xae\x2e\x10\xf1\x0f\xe8\x8e\xfe\xe2\x6d\xb4\xda\x28\x27\xf7\xd8' - b'\x93\x25\x01\xea\x3c\x1d\xc1\xc3\x40\xbf\xf5\xbe\x7c\x0c\xdd\x8a\xa5\x54' - b'\xb4\x87\xf1\xfe\xa8\x89\xc7\xba\x47\x1c\xb1\x5d\x62\x68\x12\x9c\x41\x80' - b'\x09\xdc\x12\x2f\x21\xa5\x6f\x1c\xd1\xff\xab\xf2\xaa\x4f\x1c\xa4\xaa\x71' - b'\xb4\x9c\xcf\xfa\x53\x5d\xdc\xd2\x66\xad\xbc\x85\x7d\x1c\x1f\x9e\x6f\xd6' - b'\x64\xff\x21\xe2\x7e\x64\xe8\x69\x78\xe8\x33\xc9\xb9\xfa\xc8\x81\x8c\x17' - b'\x94\x64\xa3\x48\x29\x55\x5c\x1c\x2c\x71\xee\x45\x53\xf7\x4d\xd2\xf8\x6a' - b'\x9a\x2f\x07\x25\x19\xfe\xd2\x32\x21\x19\x0f\xc5\x2d\xf2\xa8\x01\x90\x42' - b'\x9a\x54\x6b\x5c\x17\x9a\x1b\x9f\x50\x3d\x20\xb2\x11\x8d\x4c\x70\x01\xb2' - b'\x96\xf5\x51\xf0\x85\x5d\x71\x36\x2e\x73\x4d\xe4\xe9\x63\xa9\xa6\x4f\xf6' - b'\xa7\x2b\xfd\x52\x8a\xa5\xba\x56\x0c\x7b\x8d\x69\xbd\xc7\x70\xc7\x7b\x1c' - b'\x84\x09\x98\x4a\x9f\xb7\xe2\xac\xf1\x2d\x27\xb5\xd1\xc3\x3b\x16\x33\x54' - b'\x33\xde\xdf\xf8\x86\x23\xb4\x41\x51\x16\xdd\x67\xbe\x56\xa4\xa1\x6f\xf8' - b'\xb3\x4f\xce\x07\x45\x1d\xcb\x55\x4f\x9d\x20\x97\xad\x98\xfe\xbe\x2f\x6b' - b'\x36\x9f\xa3\x6a\x4f\x4b\xb3\xa1\x7f\x69\x4b\xfa\xbf\xc2\xa4\x94\xda\x4f' - b'\x83\x9a\x2f\x8e\x57\x7c\x29\x5e\xb2\x2e\xac\xbd\x0f\x38\x7b\xb2\x13\x6b' - b'\x1d\x0d\x13\xbb\xc9\xc5\xf9\x2d\x20\x2b\xf4\x5f\x4d\x2f\x83\x5b\x31\x01' - b'\x5d\x67\x56\x95\x3e\xc0\x7e\x36\xcd\x13\x2b\x23\xe0\xa4\x4e\xbd\x7d\x1d' - b'\xe3\x1b\x4c\x89\x75\xfc\x74\x00\x00\x00\x00\x00\xdb\xde\xbf\xd4\xe3\xf0' - b'\xdc\x24\x00\x01\xdb\x39\x93\x40\x00\x00\x4c\x21\xf2\xc8\xb1\xc4\x67\xfb' - b'\x02\x00\x00\x00\x00\x04\x59\x5a' -) -RISCV_BCJ_CASE_INPUT = ( - b'\xef\x00\x00\x00\xef\x10\x40\x23\xef\x10\x00\x00\xef\x02\x00\x00\xef\x12' - b'\x40\x23\xef\x12\x00\x00\xef\xf0\xff\xff\xef\x7f\x00\x00\x6f\x10\x40\x23' - b'\xef\x7f\xef\x00\x00\x00\x97\x00\x00\x00\x67\x00\x00\x00\x97\x40\x23\x01' - b'\x67\x80\x40\x23\x17\x33\x54\x06\xe7\x00\x03\x00\x17\x31\x50\x04\xe7\x00' - b'\x03\x00\x17\x00\x00\x01\xe7\x00\x00\x10\x97\x00\x00\x00\x13\x80\x00\x00' - b'\x97\x40\x23\x01\x13\x83\x60\x45\x17\x33\x54\x06\x93\x02\x22\x01\x17\x00' - b'\x00\x01\xe7\x00\x10\x10\x17\x00\x97\x00\x00\x00\x03\x81\x00\x00\x17\x31' - b'\x50\x04\x03\x05\x11\x32\x17\x33\x54\x06\x83\x80\x32\x12\x17\x00\x00\x01' - b'\x83\x00\x30\x12\x97\x00\x00\x00\x23\x80\x00\x00\x17\x31\x50\x04\x23\x00' - b'\x01\x20\x97\x40\x23\x01\x23\x80\x02\x30\x17\x00\x00\x01\x23\x00\x00\x30' - b'\x17\x00\x97\x00\x00\x00\x03\x91\x00\x00\x17\x31\x50\x04\x03\x15\x11\x32' - b'\x17\x33\x54\x06\x83\x90\x32\x12\x17\x00\x00\x01\x83\x10\x30\x12\x97\x00' - b'\x00\x00\x23\x90\x00\x00\x17\x31\x50\x04\x23\x10\x01\x20\x97\x40\x23\x01' - b'\x23\x90\x02\x30\x17\x00\x00\x01\x23\x10\x00\x30\x17\x00\x97\x00\x00\x00' - b'\x03\xa1\x00\x00\x17\x31\x50\x04\x03\x25\x11\x32\x17\x33\x54\x06\x83\xa0' - b'\x32\x12\x17\x00\x00\x01\x83\x20\x30\x12\x97\x00\x00\x00\x23\xa0\x00\x00' - b'\x17\x31\x50\x04\x23\x20\x01\x20\x97\x40\x23\x01\x23\xa0\x02\x30\x17\x00' - b'\x00\x01\x23\x20\x00\x30\x97\x00\x00\x00\x07\x91\x00\x00\x17\x00\x97\x40' - b'\x23\x01\x87\x90\x60\x45\x17\x31\x50\x04\x07\x93\x72\x16\x17\x00\x00\x01' - b'\x87\x10\x50\x55\x97\x00\x00\x00\x27\x90\x00\x00\x97\x40\x23\x01\xa7\x91' - b'\x00\x12\x17\x31\x50\x04\x27\x91\x02\x22\x17\x00\x00\x01\xa7\x11\x00\x30' - b'\x17\x33\x54\x06\xb3\x10\x23\x21\x17\x33\x54\x06\x8b\x10\x23\x21\x17\x33' - b'\x54\x06\xbb\x10\x23\x21\x97\x00\x00\x00\x07\xa1\x00\x00\x17\x00\x97\x40' - b'\x23\x01\x87\xa0\x60\x45\x17\x31\x50\x04\x07\xa3\x72\x16\x17\x00\x00\x01' - b'\x87\x20\x50\x55\x97\x00\x00\x00\x27\xa0\x00\x00\x97\x40\x23\x01\xa7\xa1' - b'\x00\x12\x17\x31\x50\x04\x27\xa1\x02\x22\x17\x00\x00\x01\xa7\x21\x00\x30' - b'\x17\x33\x54\x06\xb3\x20\x23\x21\x17\x33\x54\x06\x8b\x20\x23\x21\x17\x33' - b'\x54\x06\xbb\x20\x23\x21\x97\x00\x00\x00\x07\xb1\x00\x00\x17\x00\x97\x40' - b'\x23\x01\x87\xb0\x60\x45\x17\x31\x50\x04\x07\xb3\x72\x16\x17\x00\x00\x01' - b'\x87\x30\x50\x55\x97\x00\x00\x00\x27\xb0\x00\x00\x97\x40\x23\x01\xa7\xb1' - b'\x00\x12\x17\x31\x50\x04\x27\xb1\x02\x22\x17\x00\x00\x01\xa7\x31\x00\x30' - b'\x17\x33\x54\x06\xb3\x30\x23\x21\x17\x33\x54\x06\x8b\x30\x23\x21\x17\x33' - b'\x54\x06\xbb\x30\x23\x21\x97\x00\x00\x00\x07\xc1\x00\x00\x17\x00\x97\x40' - b'\x23\x01\x87\xc0\x60\x45\x17\x31\x50\x04\x07\xc3\x72\x16\x17\x00\x00\x01' - b'\x87\x40\x50\x55\x97\x00\x00\x00\x27\xc0\x00\x00\x97\x40\x23\x01\xa7\xc1' - b'\x00\x12\x17\x31\x50\x04\x27\xc1\x02\x22\x17\x00\x00\x01\xa7\x41\x00\x30' - b'\x17\x33\x54\x06\xb3\x40\x23\x21\x17\x33\x54\x06\x8b\x40\x23\x21\x17\x33' - b'\x54\x06\xbb\x40\x23\x21\x97\x00\x00\x00\x07\xd1\x00\x00\x17\x00\x97\x40' - b'\x23\x01\x87\xd0\x60\x45\x17\x31\x50\x04\x07\xd3\x72\x16\x17\x00\x00\x01' - b'\x87\x50\x50\x55\x97\x00\x00\x00\x27\xd0\x00\x00\x97\x40\x23\x01\xa7\xd1' - b'\x00\x12\x17\x31\x50\x04\x27\xd1\x02\x22\x17\x00\x00\x01\xa7\x51\x00\x30' - b'\x17\x33\x54\x06\xb3\x50\x23\x21\x17\x33\x54\x06\x8b\x50\x23\x21\x17\x33' - b'\x54\x06\xbb\x50\x23\x21\x17\x00\x00\x01\x01\x11\x30\x12\x97\x40\x23\x01' - b'\x01\x91\x60\x45\x17\x31\x50\x04\x01\x12\x31\x12\x97\x21\x21\x01\x01\x91' - b'\x31\x12\x17\x31\x00\x21\x01\x91\x60\x45\x17\x00\x00\x01\x02\x11\x30\x12' - b'\x97\x40\x23\x01\x02\x91\x60\x45\x17\x31\x50\x04\x02\x12\x31\x12\x97\x21' - b'\x21\x01\x02\x91\x31\x12\x17\x31\x00\x21\x02\x91\x60\x45\x17\x00\x00\x01' - b'\x03\x11\x30\x12\x97\x40\x23\x01\x03\x91\x60\x45\x17\x31\x50\x04\x03\x12' - b'\x31\x12\x97\x21\x21\x01\x03\x91\x31\x12\x17\x31\x00\x21\x03\x91\x60\x45' - b'\x17\x00\x00\x01\x04\x11\x30\x12\x97\x40\x23\x01\x04\x91\x60\x45\x17\x31' - b'\x50\x04\x04\x12\x31\x12\x97\x21\x21\x01\x04\x91\x31\x12\x17\x31\x00\x21' - b'\x04\x91\x60\x45\x17\x00\x00\x01\x05\x11\x30\x12\x97\x40\x23\x01\x05\x91' - b'\x60\x45\x17\x31\x50\x04\x05\x12\x31\x12\x97\x21\x21\x01\x05\x91\x31\x12' - b'\x17\x31\x00\x21\x05\x91\x60\x45\x17\x00\x00\x01\x06\x11\x30\x12\x97\x40' - b'\x23\x01\x06\x91\x60\x45\x17\x31\x50\x04\x06\x12\x31\x12\x97\x21\x21\x01' - b'\x06\x91\x31\x12\x17\x31\x00\x21\x06\x91\x60\x45\x17\x00\x00\x01\x07\x11' - b'\x30\x12\x97\x40\x23\x01\x07\x91\x60\x45\x17\x31\x50\x04\x07\x12\x31\x12' - b'\x97\x21\x21\x01\x07\x91\x31\x12\x17\x31\x00\x21\x07\x91\x60\x45\x17\x00' - b'\x00\x01\x08\x11\x30\x12\x97\x40\x23\x01\x08\x91\x60\x45\x17\x31\x50\x04' - b'\x08\x12\x31\x12\x97\x21\x21\x01\x08\x91\x31\x12\x17\x31\x00\x21\x08\x91' - b'\x60\x45\x17\x00\x00\x01\x09\x11\x30\x12\x97\x40\x23\x01\x09\x91\x60\x45' - b'\x17\x31\x50\x04\x09\x12\x31\x12\x97\x21\x21\x01\x09\x91\x31\x12\x17\x31' - b'\x00\x21\x09\x91\x60\x45\x17\x00\x00\x01\x0a\x11\x30\x12\x97\x40\x23\x01' - b'\x0a\x91\x60\x45\x17\x31\x50\x04\x0a\x12\x31\x12\x97\x21\x21\x01\x0a\x91' - b'\x31\x12\x17\x31\x00\x21\x0a\x91\x60\x45\x17\x00\x00\x01\x0b\x11\x30\x12' - b'\x97\x40\x23\x01\x0b\x91\x60\x45\x17\x31\x50\x04\x0b\x12\x31\x12\x97\x21' - b'\x21\x01\x0b\x91\x31\x12\x17\x31\x00\x21\x0b\x91\x60\x45\x17\x00\x00\x01' - b'\x0c\x11\x30\x12\x97\x40\x23\x01\x0c\x91\x60\x45\x17\x31\x50\x04\x0c\x12' - b'\x31\x12\x97\x21\x21\x01\x0c\x91\x31\x12\x17\x31\x00\x21\x0c\x91\x60\x45' - b'\x17\x00\x00\x01\x0d\x11\x30\x12\x97\x40\x23\x01\x0d\x91\x60\x45\x17\x31' - b'\x50\x04\x0d\x12\x31\x12\x97\x21\x21\x01\x0d\x91\x31\x12\x17\x31\x00\x21' - b'\x0d\x91\x60\x45\x17\x00\x00\x01\x0e\x11\x30\x12\x97\x40\x23\x01\x0e\x91' - b'\x60\x45\x17\x31\x50\x04\x0e\x12\x31\x12\x97\x21\x21\x01\x0e\x91\x31\x12' - b'\x17\x31\x00\x21\x0e\x91\x60\x45\x17\x00\x00\x01\x0f\x11\x30\x12\x97\x40' - b'\x23\x01\x0f\x91\x60\x45\x17\x31\x50\x04\x0f\x12\x31\x12\x97\x21\x21\x01' - b'\x0f\x91\x31\x12\x17\x31\x00\x21\x0f\x91\x60\x45\x17\x00\x00\x01\x97\x40' - b'\x23\x01\x13\x83\x60\x45\x00\x00\x00\x00\x17\x31\x50\x04\x97\x40\x23\x01' - b'\x13\x83\x60\x45\x00\x00\x00\x00\x97\x21\x21\x01\x17\x32\x54\x06\x93\x02' - b'\x22\x01\x00\x00\x00\x00\x97\x21\x21\x01\x00\x00\x17\x32\x54\x06\x93\x02' - b'\x22\x01\x00\x00\x8d\x24\x97\x40\x23\x01\x8d\x24\x97\x40\x23\x01\x01\x20' - b'\x97\x40\x23\x01\xcd\x20\x97\x40\x23\x01\x01\x20\x01\x20\xcd\x20\x01\x20' - b'\x97\x40\x23\x01\xb3\xc0\x00\x50\x97\x40\x23\x01\xb7\x40\x23\x01\x97\xff' - b'\xff\xff\x93\x80\xff\xff\x97\x0f\x00\x80\x93\x80\xff\xff\x17\x31\x00\x80' - b'\x93\x8f\xf0\xff\x97\x0f\x00\x80\x93\x80\x1f\x00\xff\xaf\xf6\x31\x5c\x1c' - b'\x5b\xa1\xb7\x51\xfe\x46\x0e\x56\x9c\xaf\x4c\x03\x8a\xe7\xda\x61\xfe\x6b' - b'\x18\x84\xc1\x6b\x0b\x38\xdb\x0b\xe7\xd1\x3c\x43\xed\x97\xe5\xa4\xe8\xe3' - b'\xeb\xf7\x39\x87\xa6\x86\x8a\x31\x6d\x64\x92\x6b\xcf\xaa\xf0\x90\x15\xfb' - b'\xc8\xf0\x06\xb0\xc1\x42\xf3\xae\xda\xd8\x53\xc2\xbc\x3e\xb9\xf5\xc5\x60' - b'\x7b\x4f\x91\xe9\xb3\x23\x54\x83\xcd\x44\x13\xe3\x40\xdc\xd3\x46\x8c\x95' - b'\x89\x7f\x43\x63\x58\x96\x25\x14\xd4\xdf\x09\x99\x3f\x85\xe8\xd0\x6e\x9c' - b'\xf3\xc2\x1f\xc0\x07\x32\xa3\x47\x0e\x77\x8d\x9a\x0c\x16\x1a\x4f\x79\x72' - b'\xe6\x9f\x86\xba\x7e\x8f\x54\xbd\x14\x3c\x8d\x82\xd8\x80\x45\xf7\x40\x4c' - b'\x2a\xe4\x93\x38\x5b\x20\xd3\x67\x37\xed\xb6\xb0\x5f\x9c\x4f\xe5\x57\xcd' - b'\x74\xab\x8a\x89\xe7\x17\x0b\xc0\x97\x50\xb7\xd8\x9c\xe1\xbc\x2f\x1a\x17' - b'\x50\xed\x7e\x87\xda\x34\x37\x39\xd1\x87\x1e\x28\x54\x92\xd3\xdf\x1b\xba' - b'\xf6\x27\x7a\x8e\x77\x32\x66\x14\x13\x22\x43\x2d\x39\x93\x1a\xb7\x1a\xf4' - b'\xeb\x52\x2d\xbc\xd9\x4b\xe4\x2d\xde\xb7\x0c\xf9\x72\x03\x20\xec\x91\x98' - b'\x1e\xf7\xac\x32\x19\xef\x5f\x52\x83\x7a\x09\x9d\x6e\xf4\xef\x9c\xb1\xc8' - b'\xe7\x95\xf6\xc5\x4d\x02\xbf\xbf\x05\xdf\xab\x96\x77\xca\x8d\x23\xfc\xa6' - b'\x13\x5b\xf8\x96\xd5\x01\x33\x44\xf6\x23\xe0\xa7\xeb\xc7\x3c\xe1\x8d\x89' - b'\xe4\x4c\x48\xe9\x2b\xf4\x80\xa3\xbe\x0d\xc6\xba\xb4\xd9\x15\xac\x6f\xeb' - b'\xae\xa3\x2f\xa4\xc6\x0f\x4b\xb1\xd6\x87\x93\x63\x11\x77\xaf\x59\x60\xdb' - b'\x4d\xe0\x7e\x0b\xee\x44\xc5\xa2\x1e\xdb\x4e\x8d\xc6\xfc\x30\xf5\xa0\xf6' - b'\x04\xeb\xa8\xda\x73\x3b\x3e\x84\xb2\xed\xdd\x12\xc8\x2b\xf3\x46\x36\xe1' - b'\x8b\xfc\x83\xa9\xd7\xd1\x36\x9d\xce\x67\x92\x6e\x5d\x96\x5a\x05\x70\xcd' - b'\x40\xae\x51\xf2\x9c\x2e\x05\x64\x59\xf8\xab\x90\xd9\x36\x8c\x5c\xdf\x63' - b'\x2d\x15\x00\xfb\x7c\x92\x6a\xda\x28\xc4\xdf\x98\x91\x20\x47\xe2\x12\xe3' - b'\x10\x17\x47\x6a\x0f\xf2\xfa\xe8\x28\x86\x44\x07\xe9\x72\x1d\xe9\x6d\x99' - b'\x7b\xd7\x73\xa3\x9b\x53\x3b\x2c\x73\x82\x0e\x85\x65\x1f\x9d\xad\x89\xac' - b'\x9f\x83\x95\xc8\x09\xd9\xcf\xf2\x4b\xec\xdb\xb9\x86\x56\x90\xf9\xf9\x2c' - b'\x4c\x34\x58\xbf\xb7\x67\x45\x1c\x86\xe2\xc9\x0f\x8e\x69\x92\x23\x31\x9b' - b'\xfd\x00\x8d\x48\xed\x68\x01\x73\xbe\x92\x6c\xb7\xbe\xb9\xeb\x16\x78\xa2' - b'\x7d\xbd\xbf\x03\x9f\x88\x12\x2e\xf1\xa4\x51\x22\x3f\x4e\x23\xcc\x97\x10' - b'\x34\x98\x83\xf2\x2a\xef\xa9\xe8\xa8\x95\xff\x21\x37\x7c\xde\xf6\x80\x7e' - b'\x7f\x92\xac\x70\x37\xfd\x93\x76\x4c\xb6\x43\xe3\xc6\x77\x7b\x49\x6a\xa6' - b'\x38\x13\x8e\xe1\xa8\x8d\x02\xe0\x0a\xe0\xd6\x8a\x5e\x55\x1c\x0a\xc6\x53' - b'\x08\x59\xca\x54\x0f\x0d\x37\xd5\x84\xb2\x1e\xee\x58\x56\x02\xe7\x37\xaa' - b'\x74\x39\x8a\x7e\x1a\x61\x08\x78\xb6\x25\x83\x7c\x78\x8b\xd5\x42\xdf\xe4' - b'\x4f\x16\xb9\xd4\xc8\xd7\xc2\x21\x2e\xc4\x08\x65\x6f\x7c\x9f\xf9\xfb\xb9' - b'\x5a\x03\x31\x11\x28\xb4\x8d\xa1\x3f\x63\xe3\x1e\x47\x33\x34\x01\x07\xfd' - b'\xd8\xc9\x1e\x06\x8e\x26\x6c\xfd\xa2\x0b\xf6\x9d\xc4\x51\xa1\xf5\x62\xc9' - b'\xaa\xef\x6a\xe9\x52\x4e\x08\x9a\x81\x3c\x9b\x88\x39\x73\x51\x57\x7a\xdf' - b'\x7d\xe6\xdc\x20\xf1\xd3\xbd\xb5\x24\x5e\xaa\x86\x28\x54\x75\x92\x3e\xc8' - b'\xe0\x46\x62\x61\x82\xfd\xe9\xbc\x70\x3b\x13\xea\x1a\x91\xd0\xf7\xb1\xc1' - b'\xca\x6e\x76\xee\xcd\x21\x74\xf5\x75\xe9\x87\xb3\xb1\x68\xf9\x13\xc9\x7c' - b'\x10\xb3\x38\x81\xee\x4b\x6b\x08\xdc\x3c\xff\x8d\xfd\xc9\xfc\x74\xb7\xc9' - b'\x95\x2b\xbe\x0a\x15\x45\xbe\xc6\xad\xb7\xda\x77\x33\xea\x2a\x6b\x6b\x18' - b'\xb7\xd7\x20\x93\x13\x20\x21\x10\xe9\x1d\x84\xa1\xe6\x19\xcc\xa4\x24\xe1' - b'\xe9\xe2\xa8\x97\x99\x82\x0e\xcd\x6c\x38\x38\xd8\x50\xef\xaf\x70\x83\xc2' - b'\x90\xa4\xd2\x7a\xc1\x57\x1b\xa7\x70\xe7\x4b\x94\xc9\x34\x76\x71\xcb\x10' - b'\xf3\xd9\xdd\x5f\x11\x15\x37\x61\x05\xe6\xd2\x88\xa8\x62\x2c\x7b\xdc\xed' - b'\xd2\xf7\x94\x42\xdf\xdf\xd7\xa8\x13\x4d\x19\xdf\x5d\x0c\xb8\x3a\x6b\xca' - b'\x50\xa3\x2b\x55\x89\xfd\xdd\x32\x60\x09\xad\x3c\xf6\x7f\x34\x8a\xc1\x13' - b'\x69\x98\xbb\x7c\xe6\xd4\x5b\x43\xe0\x14\x7e\x4b\xde\xce\xee\x09\x23\x78' - b'\x07\x00\xaa\x67\x09\x57\xa3\xff\xd6\xd7\x89\x97\xea\xf2\x30\xa5\x6e\x16' - b'\x79\xca\x59\x59\xde\xd7\xa5\xbc\xa5\x93\xc5\xc8\x0b\xcc\xc8\xb5\x33\xd1' - b'\x0c\xd7\xd0\xe2\xae\x59\x7a\x99\x4b\xaa\x3e\xba\xc0\xb8\x84\x19\x11\x62' - b'\xf1\xb6\x1e\x96\x4a\xe3\x5f\x55\xb0\x27\x0b\xe3\xf9\x17\xba\xc9\xfa\x69' - b'\x23\x74\x02\x6e\x1e\x40\x28\xde\xf8\xac\xf7\x0a\x0e\xe8\xc0\x2c\x7f\x0a' - b'\x10\xde\x60\xc0\x05\x6b\xa3\xfe\x82\x5e\xc8\x7c\xc7\xeb\xf0\xc9\x59\x0e' - b'\x09\x82\xec\x02\x2e\xe4\x0c\x3d\xcc\xcc\x69\x4b\xd7\x79\x29\x37\x39\x2f' - b'\xa2\xdd\x2d\x24\x3b\xf5\xa1\x02\xe0\x91\xcb\x3a\xa0\xd4\xbc\x8c\xd6\xea' - b'\x70\xe2\x27\x3d\xaf\x91\x88\x86\x0a\xb2\xbd\x44\xe1\x5f\x21\x0e\x83\x5c' - b'\x04\x24\x5e\xe4\xb6\x29\x1e\x56\xfd\xda\xe2\xd4\xc5\x53\xb6\xec\x90\x65' - b'\x7d\x18\xeb\x88\xca\xa8\xcc\xab\x07\xed\xba\x8b\x49\xbe\xaf\xa7\xa2\x65' - b'\xd0\xc1\xbb\xcd\x9b\x9e\xa1\x60\xf1\x58\x4d\x81\xbd\xca\x99\xa9\x52\x64' - b'\x51\x1e\x0f\x59\x0b\xc9\xe4\x54\x87\x93\xfb\x2a\xf9\xcb\xeb\xb4\x99\x86' - b'\x52\x3a\xe7\x43\x92\x34\xc4\x50\xfe\x5e\xf9\x51\xc2\x4a\x6f\xd1\xa3\x7b' - b'\x9b\x87\xcf\x22\x1b\xcb\x4c\x14\x96\x37\xc8\x2f\xbe\x1b\x6a\xa5\x5e\xfc' - b'\xd9\x23\x4c\xd7\x81\x45\x28\x43\x90\x98\x14\x33\x13\xaf\xbb\xe2\xd2\xd6' - b'\xad\x1e\xea\x44\x56\xb2\x73\x14\xcd\xdd\xb9\x2c\xda\x92\x4f\x26\x69\xd0' - b'\x6c\x92\x13\xfc\x2a\x27\x2f\x3d\xd7\xea\x1f\xa9\xc0\xcd\xc7\xaa\x11\x1d' - b'\x5d\x84\x31\x2a\x62\xea\x56\x3c\x7c\xa5\x62\xe6\x75\xce\x78\x88\xca\xa2' - b'\xb0\xfa\xdf\x87\xe4\xfe\x30\xa5\xcb\xf7\x4f\xdc\x15\xac\x61\x46\xd7\xc3' - b'\x31\x2d\xff\xad\xd3\x61\x93\x48\x30\x0b\xd1\xfa\xad\x81\xf4\x8c\x08\xd9' - b'\x8b\x38\x7e\x56\x2f\xcd\x33\x44\x7a\x94\x8b\x51\x57\xbc\x7e\x56\x69\x51' - b'\xb7\xfd\x9a\xe7\x08\x6b\xe2\xb6\xec\xd6\x42\xf4\xaf\xcd\x2c\x2d\x24\x5b' - b'\xfb\x57\xa0\x75\xeb\x2b\xc6\x42\xe7\x44\x98\x50\x96\x4f\x4d\x30\x37\x56' - b'\x9b\x19\x0c\x87\xef\x4e\x7b\x9f\x1c\xa7\xcc\x40\x02\xc7\x97\xa2\x3c\x82' - b'\xcd\x02\xc4\xb4\x47\x5c\x05\xdd\xab\x52\x0d\xe2\xa8\xa8\xfb\xb4\x2f\xeb' - b'\x03\xaa\x8a\x1f\x51\x56\x5f\x53\x1e\xf6\xf6\x5a\x78\xc3\x5d\x3c\x78\xa4' - b'\x98\x7d\x81\x43\xcf\x8e\x26\x78\x36\x21\x2c\x65\x0c\x2f\x0f\x96\x4e\x60' - b'\xed\xad\xb3\x0b\xa3\xa9\x65\x1b\x6d\xc2\x57\xe5\x66\xef\x62\xe7\x33\x31' - b'\x75\x59\xa9\xab\x7a\xd6\x10\x87\x05\x1f\x1d\x54\x7f\x0a\x01\x33\x15\xa5' - b'\xdc\x7b\xc0\x49\x3d\x18\x2e\xa4\x07\x90\x8b\x3a\xc2\x01\x93\x6b\xac\x0e' - b'\x41\xbd\x95\x47\xdc\xb2\x9b\x5c\xbd\x9c\x8f\xd2\x41\x6b\x4d\x02\xb5\x8b' - b'\x1a\xe3\x2f\x21\x74\xba\x5c\x36\xbb\xef\xa1\x68\xfd\xe3\x25\x92\x2a\x01' - b'\x45\xc5\x5d\x02\x61\xec\xd4\xa3\x58\x22\xa5\x0d\xad\xbf\xf0\xdc\xe0\x64' - b'\x96\x3c\x9a\x52\x2c\x3c\xba\x29\x1f\xdf\xbc\x49\xe0\x01\x0e\x3e\x03\x6f' - b'\x2a\xd7\x12\x82\xf9\xb7\x8f\xa6\x76\x80\x82\x57\xe4\x19\x93\x7f\x6b\xbf' - b'\xbb\x25\xe9\xda\x04\xa5\x23\xe4\xa6\x31\x22\xa9\xa0\x4d\x80\xb3\xcf\x7a' - b'\x6a\x5f\x20\xe1\xdf\xa3\x38\xc3\xbc\xcb\x42\x27\x8b\xfd\x4c\x74\xd7\x50' - b'\x19\xfa\x34\xbf\x2b\x57\x68\xcc\xa4\xe8\x7f\x73\x62\xe9\xd2\x83\xca\xb1' - b'\x26\x02\x75\xe2\xce\xb7\x09\x59\xb5\x55\xcd\x8c\xa5\xe6\x87\xd9\xa5\xb2' - b'\x30\x0d\x7e\xd4\xf5\xfd\x48\x58\xe7\x1a\xdb\xb1\xcc\x01\xb4\x41\xe3\x82' - b'\xf8\xec\xdb\xad\x41\xa8\x3a\xe6\x8e\xc1\xbf\x33\x73\xf0\x40\xf2\xc4\x35' - b'\xef\x0c\x8d\xd6\x27\x68\x88\xf3\x69\x3c\x34\x4c\xbe\x2c\x38\x99\xda\x79' - b'\x41\x14\x5f\xcf\xd5\x1f\x02\x48\x0f\x42\x3a\xd3\x77\x2a\xe0\x05\x00\x07' - b'\x6d\x88\xfa\xd7\xc4\x2e\x23\x82\x5a\x5c\x1b\x34\xd5\x5c\x48\x35\x2b\x1d' - b'\x54\x2d\x66\x63\x6f\xa0\x36\xe7\xca\x16\xec\xcb\x1d\x59\x53\x17\x30\x18' - b'\x45\x54\x9a\xa0\xb0\xb6\xd4\x85\x12\x1d\xba\x3e\x3a\x0e\x6b\xa0\x71\xdb' - b'\x41\xa8\xc2\x0b\xbe\xae\xd6\xdc\x07\x2a\xf3\x38\x42\x39\x8c\xdc\xd9\x3c' - b'\x92\xad\xc1\xa5\xca\x7c\xe3\x05\x8a\x4e\xa5\xfc\x29\xe6\xa4\xeb\xf2\x62' - b'\x99\xc8\x3e\xa1\xf2\x32\xd9\x34\x6b\x65\x11\x44\xa1\xa3\xf1\x62\x48\xbc' - b'\xde\x2b\xc1\x69\x7a\x66\x65\xa3\x4d\x09\x8f\x3f\x6b\x28\x07\xaa\xc9\xfa' - b'\xdc\xa2\x2e\x47\x07\x3f\x8b\xa8\xe3\x7c\x0b\x2b\x38\xe9\x57\xf9\x52\xd1' - b'\x60\xb7\x74\xad\xc0\x03\xec\x2c\x2c\xf3\xd6\xf5\xed\xb2\x98\x1c\xf9\x9f' - b'\x5b\x84\x48\x3e\x00\x53\x6a\x39\x3c\xc1\x32\x8f\x92\x92\x46\x06\x3f\x07' - b'\x0a\x2b\x33\x36\x1f\x09\x2b\x0c\xbb\xc3\x28\xb4\x63\x84\x38\xab\xc2\x38' - b'\xfe\x2c\x71\x3a\xed\xa4\xc9\x7f\x36\x10\x86\x76\x17\x90\xa1\x4a\xc6\xc0' - b'\x53\xf1\xcd\x0e\xb5\xf5\xc2\x18\x79\xfa\xc3\x3c\x32\xc1\x68\xa4\xfb\x56' - b'\x48\xc5\xd5\x7e\xd5\x5b\xf4\xec\xeb\x96\x36\xb1\x56\x89\xa3\x23\x97\x58' - b'\x19\x59\x70\x92\x53\x33\xce\x85\xf4\x37\x29\xef\x8d\x71\xb4\x62\xf0\x89' - b'\xbe\xe4\x75\xa9\x7a\xab\x5b\xd1\x34\xfe\xf4\xcb\x56\x0d\x24\xc6\xa0\x77' - b'\xf9\x6e\xfd\xed\xa5\x26\xdc\x32\x98\x91\x95\x88\x1a\x53\x6c\x90\xfc\xe7' - b'\x3b\x57\xb8\x70\x55\xac\x3b\xab\xba\x60\x71\x5a\xd7\x6a\xc8\xd4\x57\x6e' - b'\xfb\x34\xa0\x93\xc5\x35\x1b\xdf\x88\x87\x6f\x85\x6e\xab\xdc\x26\x1b\x32' - b'\xd3\x56\xdd\x8d\xb6\x4f\xe7\x8e\xb9\xaf\x62\x11\x1d\x5d\x45\xbe\xf0\x0a' - b'\xf3\x0b\xe9\x7c\x93\x59\x01\x01\x04\xdd\x28\x1f\x0f\xfb\x75\xed\x88\x2c' - b'\x3c\x6f\xba\xf5\x1e\x1c\x06\x3c\x7a\x4b\xfa\x6a\x55\xed\x76\x3f\x69\x09' - b'\x98\x6a\x0a\x9c\x48\x32\xbb\x57\x2d\x30\x44\xb5\x5c\x80\x24\x16\x76\x43' - b'\x33\x7c\x7f\xad\xc8\x79\x17\x1d\x66\x8d\x5c\xd0\x96\xf4\x3a\xa1\x90\x82' - b'\xd3\x4b\xda\x01\x7c\x1e\xb6\xd8\x9f\xdb\xef\x15\x1e\x22\x91\x9d\xcf\x59' - b'\x16\xe6\x77\x7c\x74\xd3\x4c\x0a\xc8\x87\xab\x58\x09\x7f\xa4\xe3\x80\x20' - b'\x02\x36\xf8\xa1\x11\xe7\xb6\x2f\x09\x47\xcc\xd8\xa1\xe2\xbf\x18\x5f\x33' - b'\xeb\xab\x3d\xb3\x32\xe9\x0c\x3c\x68\xb0\x1f\xe8\xd0\x21\x1e\xc8\xc2\x30' - b'\xb0\x78\x5f\xb9\xc0\x2c\x92\x61\x0e\x51\x79\x6d\x84\x64\x19\xc1\x18\x4b' - b'\xaa\x24\x87\x12\xd4\xa7\xfa\xa4\xc8\x19\x6c\x8b\x49\x1c\x03\xa8\xd6\xc3' - b'\xd4\x68\x24\xe3\xb9\x9d\x50\x3d\x02\x69\xfe\x1a\xb5\xa9\x3e\x3c\xbb\x12' - b'\xe3\xb6\xb6\xac\xcf\x22\x37\x18\x3f\x3a\xc0\x15\xfe\x95\x7d\x22\x78\x36' - b'\xc0\xc8\x73\xc2\x32\x71\xdc\xe7\x1a\x1a\x23\xd6\x2c\x07\x8c\xe2\xb3\x5b' - b'\x04\xea\x73\x43\x24\x33\x58\x22\xc8\xd5\x45\x40\x0b\x05\x09\x7e\xc7\x3b' - b'\xf0\xa3\x22\x0a\xbd\x45\xe0\xe9\x4c\x6c\xcb\xff\xc7\xcf\xe9\x3a\x13\x0e' - b'\x6e\x6b\x30\x36\x41\x75\x77\x4c\x7a\x80\xcb\x41\xbb\xbb\xe4\xdd\xc5\xa1' - b'\x22\xa6\x8a\x6f\x12\x55\x6e\xda\x25\x58\x14\x38\x66\x82\xa3\x96\xb9\xe4' - b'\x0c\x30\x31\x86\xb0\xfc\xc8\x6b\xb7\xac\x48\x7c\x4e\x6a\x22\xd8\xd9\x35' - b'\x2e\x48\x0f\x53\xa0\x23\x8b\x06\xa6\x2e\x9c\x5f\x13\xa8\x8f\x44\x2f\x3f' - b'\x40\xf7\xaa\xf7\xa3\xf2\x73\xf1\x5c\x96\xca\x36\xcb\xf8\x7e\xda\x4b\x1e' - b'\xfd\xd6\x24\xa3\x04\xc0\x02\x17\x69\x91\x5b\x98\xd0\x9b\x8f\x7a\x92\x32' - b'\x6c\x06\x24\xc9\x9c\xee\xff\x67\xe6\x7d\x41\x31\x9b\x3e\x07\xbf\xe2\x0b' - b'\x7f\xe4\x23\xe8\x76\x7e\x80\x46\x1a\x0f\xc1\xac\x42\x2d\xb2\x66\xf6\x4e' - b'\x54\xf5\xb5\x3a\x72\xf6\x6b\x0d\x35\x72\xcc\x17\x7d\x4c\xfb\xa0\x34\x71' - b'\x1f\xb5\xb8\x39\xc4\x79\xe5\x06\xa6\x98\x6c\x9d\xe6\xc0\x92\x9c\xfa\x05' - b'\x92\x65\x12\xc7\xd7\xdf\xde\x55\x2b\xda\xf5\x5f\x4b\x14\x14\x03\x4d\xd9' - b'\x7c\x33\xdf\x23\xcb\x4c\xc0\xb1\x0c\x52\x4d\x07\x57\xe0\x6c\x6a\xa7\x44' - b'\x49\x86\x99\x74\x60\x8e\xd3\xab\xa3\xe8\xaf\xf0\xc1\x2b\x23\xa0\x4e\xee' - b'\xec\x0e\xa0\xf9\x61\xed\x00\xb8\xcd\x6c\x22\x75\xb0\x6b\xfb\x49\xdf\x5b' - b'\xd8\xb3\x06\x7b\x9b\xb5\x6b\x5c\xe1\x8f\xfc\x2f\x7d\xe9\x3e\x1d\xe2\x9f' - b'\x0b\xe2\x57\xd8\x4e\x7a\x4d\xff\xe5\x48\x48\xc5\xa3\x20\x78\xaa\x9b\x13' - b'\x5f\x07\x6f\x40\x96\x6b\x70\x13\x54\xae\x31\x36\x4d\x3c\x18\xa4\x14\x67' - b'\x1e\x62\x66\x04\xaa\xae\xc9\x4e\xcf\x41\xf8\x6a\x54\x57\x71\xc3\x98\x07' - b'\x2e\x08\x1b\x83\xb6\x4c\xb9\x03\x88\xd2\xa7\x9c\x39\xc6\xfe\x9f\xca\xa9' - b'\x4d\x93\xf7\x1c\xd4\xef\x87\x28\x46\xf8\xeb\xde\x00\x19\xe6\x1b\x9c\x9c' - b'\x67\x56\x9f\xef\x28\x47\x8b\x61\x0d\x8a\x00\xd7\x33\x4d\x6a\x2a\x6a\x3e' - b'\x19\xf1\x66\x5f\xe9\x51\x3e\xe9\x6a\x24\x04\x07\xc1\x6b\x5d\x60\x5a\x85' - b'\xa7\xe6\xe6\xb4\x70\xe6\x8b\xa3\x33\xf5\xcd\x9d\x33\xe6\x8e\x99\x45\x78' - b'\xea\x83\x61\x55\xa8\x66\x5c\x69\xd1\xb9\xc9\x2c\x3e\x71\x12\x24\x25\x82' - b'\x0a\xb1\x25\x3d\xa6\xf2\xdb\xda\xd8\x69\x73\x1d\xe1\x5e\xa1\x43\xb3\x49' - b'\xa9\x0f\xb2\x7a\xc8\x7b\xa6\x06\xec\xb8\x2a\x12\x3a\x34\xc3\x5f\x71\x69' - b'\x51\x4c\x43\x29\xb6\xb7\x47\x97\x15\xe8\xda\xc8\x31\x83\xd7\xe3\xfe\x9f' - b'\x5e\xa4\xa5\x4b\x5d\xcf\x5d\x97\x03\x20\xf7\x74\x89\x48\xc1\xcd\x72\x77' - b'\x84\xb9\x0e\x99\xa1\xe9\x61\xd2\x6c\x38\xb5\x6a\xd7\x13\x0f\x7c\x5e\x6c' - b'\x4b\xbb\x03\x4e\xdb\xfa\xc2\x65\x43\x83\x32\xb5\xfa\xb6\x6e\x09\x4f\x0f' - b'\xf2\xb0\xe1\x5e\xe8\x96\xc9\xbf\xa9\xd8\x3b\x08\x44\x86\xc3\x47\xd4\x9f' - b'\x42\x96\x04\x85\x1a\x36\x3a\x14\xec\xa8\x1d\x3b\xb7\x0f\xeb\x98\x6e\xd3' - b'\x2e\x37\x92\xd7\x0f\xcd\xdf\x53\x53\xa3\x9a\x27\x42\xdc\xbd\x46\x61\xd7' - b'\x7c\x9b\xec\x68\x43\x09\xa3\xfa\x19\x8e\x92\x87\x61\xc0\xbe\xf3\x98\xcd' - b'\xc0\x77\x20\x13\x1a\xba\x3a\x5c\x97\xf7\xa2\xf8\xcf\x1e\x94\xbb\x86\xd7' - b'\xc4\x29\xd2\xdd\xb7\x64\x64\x18\x25\x22\x0b\xbd\xef\xcb\x34\x0f\xde\x4f' - b'\xca\x18\xab\x61\x10\x4e\x59\xdf\x6c\xed\x9a\xf3\xc5\x5e\x1c\x97\x3c\xd4' - b'\xfb\xa0\xec\x20\xc3\xf8\xdd\xb2\xc3\x12\xc2\xa2\x61\x8c\xba\x0c\xed\xca' - b'\x5a\x46\xa9\xc7\x34\x43\xba\xf9\xa2\xd6\x90\xde\xaa\x8b\x7e\x97\xac\x41' - b'\x8f\x89\xf4\x52\x9b\xb6\xf4\xfc\x42\xaf\x09\x2f\x79\x63\x75\x23\x2a\xa9' - b'\x66\xe4\xa2\x08\xbb\x32\xe6\x65\xbe\x65\xfc\x6a\xa6\x8b\xf3\x9a\xde\x8f' - b'\x50\xd2\x8b\x92\x81\x94\xc1\xfb\xf8\x37\x1e\x22\xe0\x84\x07\x83\x8d\xc2' - b'\xb5\x73\x27\x73\xd8\x24\xdd\x7f\xaf\xd1\x19\x8d\x60\x6a\x60\xeb\xfc\xe1' - b'\x80\xbe\xdc\x78\xf5\xfa\x9a\xd5\x7f\xa1\x58\x0c\x63\x0e\x7f\x8b\x81\x58' - b'\xaf\x5f\xd7\x5e\x30\xf0\xec\x90\x5a\x4c\x7b\x57\x2d\xfb\x15\x0a\x73\x0a' - b'\x04\x0e\xdf\x83\xaf\x38\x8f\x13\x46\x0f\x9e\xc7\x67\x4d\x26\x3e\xab\x56' - b'\x2e\x97\xe6\x89\xe3\x62\xe0\x11\x5d\xf5\x1b\xd1\xff\x1f\xdf\xde\xa3\x8e' - b'\x16\x32\xa1\x5c\x41\x3f\x24\xa8\x8c\x4a\xe6\x38\xa1\x15\xcf\x87\x9e\xb3' - b'\xe9\x7e\xc4\x47\x73\xdf\x18\x72\xfe\xf7\x50\xa1\x85\x67\xd4\x27\xc3\x15' - b'\x66\xe7\xbe\xf3\x32\xa4\x2b\xd3\xb9\xfa\x5a\x57\xad\x44\xd5\x71\x8b\x48' - b'\x50\xa3\xba\x4f\x9a\x0b\xf0\x1f\x72\xc4\x46\x35\xda\xad\x1d\x98\xa0\x4f' - b'\x3c\xcb\x22\xf6\xc5\x7c\x4d\x73\xc0\x23\xe4\x4b\x6b\x35\xee\x26\x84\x88' - b'\x31\x74\xa8\xa3\x39\xee\xd8\x13\x9b\xf5\xab\x3b\x44\xe7\x06\x66\xdd\xcc' - b'\xe3\x2b\x3f\xa3\x4e\x23\xef\xb9\x58\xdd\xdf\xdc\x66\x10\x51\x0e\xb3\x8a' - b'\xfc\x8c\x9d\x98\x81\x48\xd3\xc6\x2f\xda\x2c\x0d\xa6\x0f\x38\xe5\xb3\x86' - b'\x08\xa2\x3f\x61\x7f\x1f\x3d\xe5\x2f\x8e\xf3\xe3\x18\xf0\x6f\xb5\x88\xf0' - b'\xfd\x5b\xb6\x2d\x35\xe3\x3a\xdb\xf2\x72\xc0\xa5\xf8\xc9\x47\x37\x2a\xc7' - b'\x56\x67\xac\x86\xf6\xa0\x69\x0e\x90\xd8\xc4\x18\xc8\xc1\x73\x7f\xee\xa9' - b'\x62\x28\x84\x54\x9a\x45\xfa\x92\x0e\x41\xca\x38\x08\x20\x9f\xb5\xa6\x95' - b'\x55\x0f\xa4\xe5\xe7\x68\xfd\xb0\x29\x70\x2f\x18\x19\x91\x40\x9e\xe5\xdb' - b'\xe3\xdf\x6d\xf1\x21\x37\x29\x29\x58\xc8\xde\xfe\x5e\x33\x0e\x02\x18\xf5' - b'\x6a\x15\xa5\x93\x86\xd4\xab\x9f\x65\xec\x3d\x4b\xc7\x20\x2a\x34\x11\x4b' - b'\x6c\x3a\x75\xc4\x03\x53\xc2\x61\x87\xd0\x63\x9f\xc6\xcd\xb5\x6b\x60\x3b' - b'\x40\x0c\xda\xa5\xf8\x18\xf0\xbf\x38\x1b\xf3\x4a\x66\x5f\x84\xdb\x23\x87' - b'\x2f\xe6\xe8\xb6\xb6\x4b\x55\x7c\x18\x0a\xe8\x79\x45\x28\x85\x20\xcd\x7d' - b'\x38\xbe\x3c\x70\xd9\x2f\xba\x3f\x8f\x3f\x1b\xb2\xc6\x4a\x98\xaf\x00\x4f' - b'\xfa\x55\xcb\x13\x60\xb3\x8c\xa5\xdb\x11\xc5\xa9\x8e\xfd\x67\xca\x6e\x40' - b'\xf9\x28\x7f\x88\x67\x9a\x3b\x2e\xe4\xd3\xdd\xe4\x22\xd7\x3a\xee\xea\x9a' - b'\xa1\x76\x3f\x7d\x87\x05\x26\x15\x02\x8d\xdf\x70\xcd\xd9\x99\x4c\x61\x00' - b'\xe7\x9c\x2e\xcb\x70\x0b\xb0\x92\xe3\xea\x80\xcd\x84\x22\x44\xc3\x9f\xcb' - b'\xc8\xc5\xe1\xcb\x52\xc0\x3b\x1f\x99\xd4\x6b\xfb\xd5\x52\x97\x03\x1e\x07' - b'\x0f\xce\x9a\xf2\xb8\x1a\xbf\x3c\x3c\x03\xff\xdb\xcf\xc8\xa0\xb0\x93\xf2' - b'\x70\xce\x11\x0a\xa3\x7d\x05\x78\xcf\x9c\x7b\xed\xa4\x8a\xbb\x3e\x7c\x73' - b'\x58\x3c\xaf\x95\x3f\xaf\x70\x0e\x77\x11\xbe\x0a\x03\x2f\xd8\x15\x39\x7b' - b'\x92\x3e\xf3\x61\xda\x6f\x4f\x7e\xf9\x0a\xbc\x76\x7e\x15\xb2\x2d\xaa\xf1' - b'\xdc\x1a\x00\x53\x2b\xbe\x5d\x2f\xed\x36\x44\x26\xb1\xd6\x64\xa5\x37\x3f' - b'\x14\x86\xbd\x0d\x91\x7a\x83\x0f\x8f\x35\x3c\x39\x27\x19\x53\x27\x6c\x7f' - b'\xe5\xca\xae\xd3\x00\xf2\xf9\xb1\xc8\x5e\x56\xff\x9d\x6a\x86\x5a\x78\x17' - b'\xd4\xfb\x26\x63\x31\x62\x9c\x58\x7b\xf0\x7f\xe8\x6f\x64\xb2\x1d\x37\xb2' - b'\x0f\x31\x63\xd7\x8f\xba\xd6\x2c\x24\x5c\x86\x9c\x73\x5b\x98\x99\xbe\xc9' - b'\xfc\x5b\x21\x77\x4b\xa0\x5f\xba\x04\x11\xd7\x3c\xc3\xe6\x6d\x27\xbd\xfc' - b'\xe1\x93\x28\x05\xf0\xae\xa2\x63\x09\x3a\xfd\xc8\x03\xf9\x23\x24\x70\x6e' - b'\xc4\xd0\x28\xc8\xe1\xff\x04\xa5\xe5\x71\xcc\xa2\x6d\xad\x35\x95\xb2\x25' - b'\x44\x54\x89\x4d\x8e\x86\x15\x91\x7f\x38\xb5\xef\xa6\x79\xbf\xce\x42\xa1' - b'\xcd\x46\x46\xb2\xb8\x12\x54\x25\xbf\x8a\xbb\x71\xaf\xff\xc6\x38\x4c\x54' - b'\xbe\x62\xe6\x3d\x9a\x9b\x2d\x41\x15\xec\x0f\x57\x8d\xdd\x9d\xd3\x8f\x55' - b'\xe5\xe4\x7b\xa4\x6e\x36\x16\x1d\x35\xdc\x56\x81\x30\x14\xe3\x16\x52\x7e' - b'\xb2\x7f\xbf\xc7\x6b\xce\x1e\xf9\xab\xbb\xcc\x3b\x11\xb2\x1f\x8c\x56\x8d' - b'\xc2\x6c\xaa\xf7\x48\x00\x78\x79\x15\x5c\x8f\x67\xda\x41\xe6\x99\x08\x51' - b'\x67\x26\x4a\x13\xe2\x17\x4e\xf3\xc9\x6d\x7f\x1f\xfa\x41\x8c\xa4\x38\xd4' - b'\xa5\xb0\x4d\xba\x0c\xdd\x21\xe6\x1e\x07\x7f\x27\x58\xe7\x4d\xa3\xfa\x2f' - b'\xba\x48\x22\x83\xb5\xa1\xa2\xaf\xe2\x2e\x53\x1a\x03\xf8\xcb\x50\xb2\xd7' - b'\x2d\xd3\xbe\x4c\xda\x3d\x73\x33\x24\xc0\xd6\x1e\xf0\x90\x66\x12\x13\x1b' - b'\xb4\xb5\xca\x96\xe4\x1e\xb1\xe7\x16\x7c\x37\xc9\x53\x65\x9c\x11\xb1\x77' - b'\x4f\x24\xaa\x73\xe4\x80\x92\xd4\x10\xf8\xe7\x23\x14\x9b\xd8\xde\x31\xbc' - b'\xfc\xe2\xa3\x13\x5e\xdb\xdc\xb2\x40\x78\xc3\xf1\xef\x12\x15\x99\x86\xf9' - b'\x19\x18\xce\x29\x10\xb5\x4c\x24\x50\x25\x03\x81\xe1\xff\x64\x85\x12\xc2' - b'\x60\xee\x74\xa0\x67\x38\x91\x56\x4a\xa6\xf0\xd0\x9f\x09\xe8\x6d\x33\xf9' - b'\x22\x7f\x1d\x72\xa4\x20\xf4\x86\x20\x58\x0b\x32\x1a\x6b\x21\x8f\x0b\x88' - b'\xc7\x9c\xde\x11\x42\xce\xe2\xe1\xd8\xca\x4f\x0b\xc3\x71\x8a\xe1\xe4\x2f' - b'\x01\xd8\xb5\x21\x30\xc0\x54\x4a\x2b\x75\xd9\x36\xfd\xa0\xd2\xdb\xb2\x14' - b'\xaa\x94\xf5\x82\x5e\x44\x8d\x22\xb6\x17\x03\x9a\x46\x04\x72\xfb\x26\xa2' - b'\xbb\x7a\xec\xe6\xef\xc6\x1c\xec\x66\xee\xc7\x18\x02\x71\xac\xf8\xf3\x0b' - b'\x3c\x80\x2d\xf2\x98\x30\x8c\xde\x34\xfe\xda\x5a\xa0\x95\xd4\x8d\x7c\xc3' - b'\x53\x98\xaf\xb9\x87\x77\xd2\x89\xe8\x7e\x81\xdc\x89\xbe\x5c\xb6\xb0\xf4' - b'\xe6\x3d\xd3\x1b\x3b\xad\x75\xdc\x42\x4a\x69\xbe\x0d\xbc\x57\xbd\x75\xde' - b'\x34\x47\x67\x1c\xc6\xe9\xf8\x4f\xa7\x55\x06\x57\x49\xec\x94\x1c\x07\xd0' - b'\xc9\x7d\xac\x0c\xc7\x15\xca\xd4\xd1\x21\x91\x46\xff\xc5\x8e\x67\xe2\x54' - b'\x50\xda\xa3\xf7\x2f\xa9\x4e\x79\x96\xe3\x95\x9d\xb3\x5f\x1a\x5f\x6b\xe1' - b'\x74\x35\xb6\x45\x57\x47\x8b\x56\x0d\x19\xbd\xef\x6d\x0d\xc9\x11\x04\xf9' - b'\xba\x53\x72\x50\x36\x07\xee\xe9\x66\x08\x48\xd1\xea\xbc\x07\xa0\x01\x5e' - b'\xe7\x8c\xb4\xf4\xa6\x72\xe3\x13\x7f\xad\x24\x84\xa6\xdf\xd7\x18\x2f\x0d' - b'\x1f\x1d\xf6\x86\x26\x3e\x57\x10\xfa\x5e\xb0\xfb\xbc\x97\x87\x71\x8c\x2d' - b'\xe3\x6f\x41\x62\x1c\x65\xe6\xc2\x44\xbd\xda\x74\xca\xfa\x91\xc0\x80\xb7' - b'\xfe\xd7\xc7\xf8\x36\x77\xf3\xf2\x0f\x7b\x63\x9b\xa8\x46\x0a\xe9\xa9\x27' - b'\x4f\x8f\xe9\x93\x4d\xc4\x07\x17\xbe\x99\xd8\x3e\x50\xd6\x15\x18\xcf\x4b' - b'\x8f\xc2\x3e\x9e\x3d\xa1\x39\xe6\xe8\x44\xcf\x91\x6b\x1e\x20\x54\xb2\x6d' - b'\x18\xb9\x85\xd6\x52\x5d\x14\xa3\x33\x2a\xbb\x02\x75\x4a\xc5\xb3\xe9\x02' - b'\x55\x22\xe8\x3d\x66\xb8\xce\xd1\xd6\xee\x26\x88\x5c\x3e\x42\xe1\x15\x94' - b'\x3e\x29\x37\x71\x53\xf2\x74\xc9\x3d\x39\x7c\x26\x3b\xd1\x48\x24\x0e\xaf' - b'\xdc\xdc\x80\xb2\xcb\xa6\x3b\x27\xe5\x7d\x08\xfa\x11\x46\x23\x49\xb7\x77' - b'\x3b\x2b\x40\x78\x64\xbc\x9e\xa0\x8e\xe7\xc4\x9c\x96\xa0\x79\x16\x52\x44' - b'\xbd\x8d\x6b\xa2\x0a\x73\x9c\x1c\xb9\xbf\x65\x70\x36\xa0\x9c\x76\x19\x00' - b'\x33\xb7\xa0\xc1\x9e\x64\x5d\x34\x04\xd6\x4b\x57\x1a\x08\xe4\x85\xaa\xef' - b'\xf8\x46\x0b\xb1\x05\x70\x22\x3c\x10\xbe\xb2\x29\xbe\xe5\xe1\x5f\xa6\x7f' - b'\xc3\x04\xb4\xc8\xda\xff\x1f\xf5\x07\x03\x7a\xb1\xf2\x73\xf7\xfd\x24\xfc' - b'\x6d\x46\x38\x7e\x04\xeb\xa7\xc3\xd0\x88\x22\x77\x08\xe5\x7b\xbc\xad\x55' - b'\xbb\xcc\x4a\xc2\xd0\xc5\x73\xc2\x38\x6a\xc0\x5c\x66\x2d\xa3\x9f\xab\xa7' - b'\x8a\x53\x6a\x5a\xdb\x8c\xd1\xe3\x72\x4c\x9f\x1f\xa2\x5a\xec\xec\x1c\xbc' - b'\xb1\x8f\x7e\xe9\xf9\x3e\x46\x60\x6c\xe9\xff\x17\x90\x89\x6a\xfb\xe3\x46' - b'\x87\xb5\x29\xf9\x01\xc9\x19\xa3\x23\x05\x90\x40\xc1\x41\xcf\x3f\x2b\xc9' - b'\x7e\x71\x29\xea\x5a\x28\x01\xea\xb1\x6c\xe5\x94\xb2\x6d\x49\xdb\x66\x4b' - b'\xa4\x7f\xee\xc8\x84\x7e\x08\x45\xc0\xd7\x85\xeb\xa0\x03\x5c\xc9\xed\xb6' - b'\xf1\xee\xa0\xa2\x5a\x86\x37\x0c\xf3\x80\xe8\x59\xcb\x8c\xd9\xba\x54\x5d' - b'\x38\x5c\xa3\xf8\x34\x28\xe3\xd4\x2b\x3f\x9e\x18\xf5\x8f\x06\x96\x32\x61' - b'\x1c\x69\x6d\x0f\xe9\x55\x68\xb5\xe2\x41\x6f\x36\x9f\xa7\x93\x42\xa0\xc7' - b'\x6a\x83\x9b\x95\xc3\x39\xad\xb8\xc9\xb3\x4e\xfb\x14\x6a\x64\x82\x79\x4d' - b'\xd7\xe2\x02\xb9\x23\x71\xf0\xc2\x19\x83\x04\xb9\x4a\x6e\x3c\xe5\x03\xff' - b'\x1f\xb0\xb8\xe8\x64\x06\xe3\x78\x71\x47\xfa\xea\x94\xd2\xcc\x97\x8b\xf0' - b'\x08\x7b\xb2\x21\xfe\xb7\xda\x48\x25\x17\x2e\x29\x16\x4d\xd9\xce\x35\x3d' - b'\xd5\x18\xb6\x46\x5f\xb0\x30\xf3\x82\xfd\x8a\x0e\xed\x93\x89\x9f\xb4\x88' - b'\x56\x8f\xd0\x7c\xa6\xfe\xa5\xbc\x4b\x7e\x8b\x80\xbc\x60\x98\x72\xa6\xf7' - b'\x22\xd6\xeb\xa5\xd3\x75\xb3\xc0\x08\x3c\x60\xbd\xc4\xb6\x4c\x95\x32\xf2' - b'\x93\xd7\xae\xdf\x56\x39\x5f\x12\x99\xf8\x84\x3f\xef\xa6\x16\xda\x4b\xe9' - b'\x50\xfe\xaa\x58\x3b\x0a\x15\xff\xc0\x61\x94\xf3\x53\x28\xca\x02\x07\x20' - b'\x3b\x66\x32\xd5\x5e\xb6\x14\x4e\x5d\x2a\x28\xa8\x14\x78\xa7\xbe\xd1\xe2' - b'\xc8\xe6\xe1\x88\x48\x76\x7b\x9b\x9e\x46\x9d\xa5\x66\xd9\x0b\x99\xae\x6a' - b'\x4f\xc2\xb8\xac\xed\xe0\x55\x01\x59\xfc\xbf\x2a\xde\x87\x10\xbf\x0f\x58' - b'\x35\x8b\xf4\xd3\xd1\x91\x78\x37\x6a\x84\xd0\x18\xee\x20\xdb\xa6\xcc\xc8' - b'\x86\x21\xc9\xdf\x1d\x88\x09\xfb\x0f\x1a\xbb\x1e\x72\xf0\xa9\x66\xc4\x7a' - b'\xf8\x3c\xb2\x62\xc0\x82\x7b\xae\xa2\x56\x54\x6f\x1e\xdb\x90\xe7\xba\xae' - b'\x6f\xc4\xa9\x7e\xde\x64\x9c\x50\x55\x46\xb7\x19\xc0\xaf\x55\x72\x11\x16' - b'\xf5\x8c\xc4\x97\xe2\x19\x06\x00\xf4\x97\xe7\xae\x45\x56\x72\xee\xd4\x50' - b'\x53\x71\xa1\xa8\xb7\x58\xc1\x77\x07\x16\xea\x18\x2c\xdf\xa5\xf1\x76\x87' - b'\x0a\x7d\x88\xfe\x14\x6f\xac\x59\xc6\x1f\x47\x9a\x6f\x9a\x0b\x10\x42\xc2' - b'\x68\x03\x3a\x6f\x1a\x24\x88\x46\x03\x2d\x37\x79\xb4\x41\xf6\x3c\x3f\x0a' - b'\xac\xec\x63\x72\x0b\xab\x0c\x7a\x45\x18\x8b\x88\xda\xf3\x8b\x14\x63\xa5' - b'\x38\xeb\xec\x3b\x18\x23\xb5\xcc\x65\xab\x09\xa4\xb6\xb5\x90\x19\x27\x9b' - b'\xc4\x33\x16\x0a\x4b\xa1\x92\x26\x94\x1d\x3a\xf7\xc3\x73\xe2\xaf\xae\xfa' - b'\xd2\x63\xc7\x37\x0f\xd0\xdc\xc5\x85\x6c\xde\xac\x08\xa3\xdf\x1e\xad\x2b' - b'\xbf\x3f\x51\x53\x5c\x8b\x4b\x1f\xfe\x2d\xce\xad\x28\xa1\x10\xef\xd8\x1f' - b'\xbf\xb4\xe4\x44\x21\xc3\xf0\x29\x66\xcf\x47\x13\xfa\x06\x52\x4b\x59\xae' - b'\xd7\xa4\xce\xd5\xd2\x9c\x82\xfa\x3d\x93\xe9\x16\xb2\xa8\xca\x97\xec\xeb' - b'\x5a\xdc\x14\xc0\xab\x5b\xd3\xa6\x61\x25\xf1\xbb\xd3\xc8\x5f\xa1\x9e\x31' - b'\x3e\x20\x2b\x7b\xb3\x14\x91\x66\xbc\x5c\xfd\xa8\x47\x57\x84\x5c\x17\x30' - b'\xb7\xea\xd6\x19\x0f\xc7\xd4\xe2\x90\x33\x84\x2e\x65\xc2\x4e\x90\x3d\x02' - b'\xa5\xcf\x68\x61\x2b\x65\x0a\x72\xbc\x8e\xce\xd3\xbe\x86\xbd\x94\x9f\xcc' - b'\x5c\x73\xae\xec\xa6\x32\x1a\x0b\xf4\x68\x9c\x32\x6a\x41\x01\xd2\xa2\x2c' - b'\x37\xac\x9e\xf3\x3b\x6d\xc6\xf9\xf3\x83\x8e\x92\x4f\xea\x05\xfe\xd6\xab' - b'\x30\xf0\xb7\x25\x58\x53\x57\xc3\x94\x58\x95\x36\x84\xcd\xe3\x22\xc0\x1e' - b'\x8f\x87\x17\x82\x0a\xa5\x14\x5a\x8f\x19\x58\x65\xc5\x88\x55\x7c\xad\xae' - b'\xcf\x04\x71\x63\x5c\x06\x99\xe0\xd3\x7c\x03\x94\x9a\x92\x1b\xb2\x15\x25' - b'\x57\x29\x7f\xe7\x43\xd7\x4c\x08\x60\xa2\x84\x0d\x50\x53\x12\xc1\xb6\x6e' - b'\xc7\x4f\x4f\x9b\xcc\x52\x2f\x66\xe4\x4a\x18\xf9\x6f\x70\x23\xef\x57\x66' - b'\xc6\xa3\x6e\x26\x45\xf2\x34\x95\x45\x46\x56\xfb\xb4\x1e\x4a\x03\xb9\x16' - b'\x55\xe8\x7d\x3a\x32\x95\x33\xa1\x05\x56\x90\x5c\xbc\x57\x00\x2a\x7d\x45' - b'\x1c\xb1\xdb\x61\xf7\x31\x5c\xac\x4f\xa7\xaf\x08\xbd\x05\xf0\x3a\x3f\x22' - b'\xd0\x72\xc4\xd5\xc9\x54\x32\x85\xab\x32\xb0\x29\x77\xcc\xda\x52\x2e\xd2' - b'\x84\x8a\x7e\xd3\x31\x2d\xdc\xef\x32\xcc\x29\x71\xef\xf9\xe4\xb3\xcf\xad' - b'\x07\x01\x32\xb3\x33\xe2\xdc\xaa\xaf\xb6\xfd\xdd\x88\x81\x67\x06\x54\x99' - b'\x34\x30\x88\x66\xfd\xb1\xd8\xec\xab\xbc\x9f\x7a\x69\xa6\x7b\x9b\x59\xae' - b'\x7e\x35\x58\x2d\xec\x55\x0a\x74\xd6\x71\x7b\x2b\x0a\xaf\x5b\x92\x15\x58' - b'\x44\xed\x44\xef\xa9\xe3\x69\x12\x8a\xe4\xae\xe3\x92\x2c\x19\xea\x59\x05' - b'\x40\x63\x79\x16\xd4\xf4\x41\xdf\xa3\x9d\x71\xb9\xf5\xb5\xa6\x3a\xa4\x50' - b'\x1d\x0d\x62\xa7\xf1\x10\x8b\x83\x3c\xa4\x6e\x95\xa9\xae\xf8\x22\xc4\xcd' - b'\x17\x06\xac\xba\xa3\x1d\x73\x98\xd3\x1a\xd2\x77\x6a\xf0\x85\xcc\x97\x76' - b'\xdd\x22\xfa\x19\xc6\x68\xaf\x6f\x16\xa7\x92\xda\x74\xa9\xe0\x20\x63\x83' - b'\x3e\xd7\x1c\x11\xf1\xee\x88\x5b\xde\x0d\x27\x76\x84\x04\x98\x7e\x1e\x5f' - b'\xe6\xcd\xce\xfc\x74\x60\xd6\xe9\x09\xb7\x09\x6d\x3a\x47\x44\x56\x58\x35' - b'\x45\xe1\x90\x23\xee\xb7\x99\x72\xbc\x32\xf0\xda\x91\xd6\xa7\x5f\xd2\x1b' - b'\xc0\xa9\x04\xc9\x60\x0e\x36\x9a\x55\x7a\xf1\xae\xaf\x36\x8f\x3f\x59\x7d' - b'\xf7\xf3\xf0\xb3\x25\xe0\x8d\xb6\xb7\x34\x15\x89\x4f\xd5\x32\x54\x9f\x92' - b'\x62\xd5\x2d\xb7\x50\x1e\x65\xff\x54\xf4\x3f\xad\x72\x36\xa0\x62\xe9\xc5' - b'\x42\x76\x7b\xf9\xaa\x91\x83\xf9\x66\xb5\x4d\x05\x48\xaf\xdb\x75\x67\x2b' - b'\x93\xcc\x2a\xe7\xc1\x69\x94\x33\x9f\x35\x95\x88\xfa\xd7\xfe\x76\xd1\xa8' - b'\x07\x54\xa2\x6d\x09\xef\x73\x51\x9f\x4e\xc6\x06\x79\x59\xd2\xa3\x40\x93' - b'\x0d\xd5\xc6\xac\x0a\x5b\x35\x04\x33\x33\x7a\x04\xdc\x81\x58\x7e\xef\x61' - b'\x6d\x62\xb3\x0c\xb0\x79\x12\x29\xd3\xe5\xcc\x13\x78\xd9\xe8\x3f\x86\xf2' - b'\x9a\xbb\xf7\xcd\xee\x71\xd1\xca\xf3\x29\x48\xe2\x8b\xb6\x44\x3e\xc2\xf4' - b'\xb7\xd5\x1d\x8a\xba\xe9\x9e\x32\xc3\x86\x71\x49\x79\x0c\x04\x70\xd9\xf2' - b'\xe1\xab\xbd\xd4\xd4\x05\xb6\x5f\xbb\xfa\x9d\x7e\xee\x55\x53\x0b\xdf\x0d' - b'\xf5\x7d\x3f\xb8\x04\xb1\x01\x7d\xbd\x05\xed\x96\xf7\xce\x41\xb4\xa3\x16' - b'\xba\x59\x75\x75\x54\x13\xf3\x42\x68\x46\x4e\x47\x53\x43\xc5\x93\xfb\xc9' - b'\x44\xfc\x46\x01\x01\x33\x97\xf8\x01\xd9\xad\xa4\xef\x67\xfe\x64\xdc\x52' - b'\x77\xd0\x94\xdf\x16\xe2\x27\x6a\x25\xec\xfd\x20\xb5\x41\x1c\xfb\x42\x1d' - b'\x2e\xd9\x16\x2f\xb2\xc3\xd4\xa1\x2a\xd2\x06\x06\x24\x7d\xd6\xb8\x5d\xed' - b'\x9b\x84\x57\xc0\x70\x54\xe1\x25\x95\xfd\x20\xd7\x1b\x4e\xb0\x31\x7d\x63' - b'\xf4\x51\x04\x1e\x23\x0a\x24\x47\x88\xfb\x00\xe5\xe8\x9b\x69\x3f\x5b\xd9' - b'\x93\x3c\xfe\x28\x3a\x1e\xff\x55\x6c\xaf\x86\xe9\x12\x7a\x3b\x17\x98\x5e' - b'\x21\xbc\xa6\xa9\xb7\xa6\x8e\x9f\x41\xf7\xde\x9c\xd0\x71\xd9\xce\x99\x13' - b'\xec\x98\x68\x58\x48\xee\x42\x5a\x68\x7d\x71\x00\xdb\x93\xbc\x81\x3c\x74' - b'\x27\xcb\x13\x68\xc2\xf2\x05\x93\x63\xde\x61\xfd\xf1\x4e\x95\x59\xa6\xdd' - b'\x47\xe8\x38\xaf\x65\xa9\xaf\x41\x3c\x6b\xc2\x79\xdf\xea\x44\xf3\x52\x06' - b'\xe5\x57\x99\x48\x35\xfb\x45\x26\x49\xdb\x7f\xef\xb8\xc6\xd8\xf0\x75\x3d' - b'\x9a\x24\x7e\xd6\x90\x41\x4f\x6f\x2b\x93\x62\x7d\x9a\x47\xd5\x33\x90\x0a' - b'\x2e\xd5\x31\x77\xb0\xb0\x67\x69\x77\x3f\x59\xec\x7c\xf3\x11\xfb\xca\xa1' - b'\x3c\x19\x10\x67\xad\x73\xe4\x47\xba\xb9\x7a\x4a\xc4\xa9\x20\xf5\x20\xd0' - b'\xa5\x87\x39\x1c\xc6\x93\x09\x43\x86\x1a\x3e\x50\xbb\x7a\x6a\xcb\xe1\x17' - b'\x3e\xc5\x5e\xf9\x7f\xd8\x43\x43\x81\x63\x38\xa2\x34\xdd\x29\x6d\xfa\xf0' - b'\x00\x03\x33\x87\x1d\x71\xd7\xd8\xeb\x41\xa3\xcc\x58\xe2\x91\xb6\xdb\x10' - b'\x8f\x1e\x53\x10\x82\x8b\xb2\xb6\x69\xdc\x23\x63\xcc\x24\x66\xff\xab\x83' - b'\x70\x82\x5b\x5b\xc4\xfe\x27\x1c\xe0\xb8\xd3\xbb\xc9\x62\xda\x1c\x72\x5c' - b'\xa8\x25\x12\x11\x01\x35\x74\xcd\x59\xda\xcc\x04\x5d\x3c\x87\xb8\x97\x4b' - b'\xb6\xbe\x67\x97\x76\x3a\x52\x3f\x9c\x2c\x5c\x0f\x88\x04\x34\x9a\x15\x35' - b'\xd0\x89\x02\x29\x63\xce\x2e\xc0\x0a\xb5\x78\xa1\x00\x2e\x5f\x67\xc5\xd5' - b'\xa2\x18\x15\x3e\x44\x71\x4d\xcd\x75\x81\x67\x8a\xb6\x37\x13\xb8\x61\x76' - b'\x86\x8f\x36\x90\x44\xae\x31\x44\xdc\x90\xab\xa2\x66\x4d\xba\x7b\x8c\xfe' - b'\xec\xd9\xcb\x61\x5b\x33\xeb\x11\x6a\xfe\xca\xcb\x74\x50\x5a\xaa\xe1\x9e' - b'\x58\x12\xe2\x34\xa3\x8e\xd6\x09\xdb\x90\x84\x67\x8f\x70\x41\x5a\xd1\x9c' - b'\x8d\xbc\xad\xf8\xba\x77\xc3\x2e\xc8\x1e\xd8\xa9\xbc\x30\xbb\x9f\x64\x5e' - b'\x2d\x3b\x67\x08\xcb\xeb\x70\x5a\x5b\xb1\xb5\x2c\x4d\x42\xe8\xfa\x3a\xa2' - b'\x72\xfe\xd0\x3a\x1c\xa8\xe3\xd8\xd8\x9e\x77\x3d\xfd\xa4\x78\x64\xad\x43' - b'\x50\x1d\x9e\xab\xce\x53\xd8\x1b\x95\xc0\x15\xd0\x63\x87\xce\x33\xc1\xea' - b'\xdc\xa4\xc2\xb4\x43\x3a\xf1\x40\xde\x69\xa4\x8b\xad\xf4\xa8\x4b\xa0\x76' - b'\x9e\x78\x91\x33\x38\xa7\x03\x9b\x2e\xd1\xcf\xf0\xbb\xab\x94\x7e\x5f\xd7' - b'\xb8\x51\x17\x96\xba\xbc\x22\x67\xb0\xca\xb2\x50\x41\x50\xc8\xd2\x84\x01' - b'\x79\x87\x9c\xa8\x59\x6b\x98\x14\x16\x2c\x92\x76\x04\x4a\xc7\x1b\xe1\x81' - b'\xd7\x03\xe9\x88\xcd\x9b\xd8\x0e\xec\xa1\xe1\x70\xa2\x5a\xf7\x3e\x02\x50' - b'\xaa\x9a\x65\xc0\xc7\xf7\x36\xcb\x42\xfd\xe6\x23\x7f\xbe\x26\x68\x46\xf3' - b'\x03\x1e\x02\xef\xbf\xe3\x5f\x61\x3d\x57\xa0\x40\xa7\x4a\xda\x0c\x0a\xa1' - b'\x04\x41\x6c\x46\x3e\x53\x69\xbd\x11\x8f\x25\x57\x82\x29\x75\x84\x18\x35' - b'\x67\x78\x96\xa5\xcf\x36\xe5\x76\x80\xbf\x83\x8b\x61\x87\xcc\xcd\xcd\x0a' - b'\x20\x36\x97\xff\xff\xff\x93\x80\xf0\x7f\xef\x00\xe0\x00\xef\x10\x40\x23' - b'\x00\x00\x00' -) - if __name__ == "__main__": unittest.main() From 6d94a0869c1ea06dc2a2b493a9b06b5be92d162d Mon Sep 17 00:00:00 2001 From: "Gregory P. Smith [Google LLC]" Date: Sat, 30 Mar 2024 17:41:30 +0000 Subject: [PATCH 13/19] Clarify the documentation a bit. --- Doc/library/lzma.rst | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/Doc/library/lzma.rst b/Doc/library/lzma.rst index a4a1a67e20d339..5695d9b46fd08c 100644 --- a/Doc/library/lzma.rst +++ b/Doc/library/lzma.rst @@ -368,15 +368,18 @@ options. Valid filter IDs are as follows: * :const:`!FILTER_ARMTHUMB` * :const:`!FILTER_POWERPC` * :const:`!FILTER_SPARC` + + The above work on all lzma runtime library versions. + * :const:`!FILTER_ARM64` - Only works if lzma runtime library version is 5.4.0 or later. + Only works if :data:`LZMA_VERSION` and :data:`LZMA_RUNTIME_VERSION` are 5.4.0 or later. .. versionadded:: 3.13 * :const:`!FILTER_RISCV` - Only works if lzma runtime library version is 5.6.0 or later. + Only works if :data:`LZMA_VERSION` and :data:`LZMA_RUNTIME_VERSION` are 5.6.0 or later. .. versionadded:: 3.13 From c62ca63fa15141bd52c4530a3b7ef65ef2373fbc Mon Sep 17 00:00:00 2001 From: "Gregory P. Smith [Google LLC]" Date: Sat, 30 Mar 2024 17:50:56 +0000 Subject: [PATCH 14/19] Clarifying comment, docs accuracy. --- Doc/library/lzma.rst | 4 ++-- Modules/_lzmamodule.c | 6 ++++++ 2 files changed, 8 insertions(+), 2 deletions(-) diff --git a/Doc/library/lzma.rst b/Doc/library/lzma.rst index 5695d9b46fd08c..6cf47e07a8831a 100644 --- a/Doc/library/lzma.rst +++ b/Doc/library/lzma.rst @@ -373,13 +373,13 @@ options. Valid filter IDs are as follows: * :const:`!FILTER_ARM64` - Only works if :data:`LZMA_VERSION` and :data:`LZMA_RUNTIME_VERSION` are 5.4.0 or later. + Only works if :data:`LZMA_RUNTIME_VERSION` is 5.4.0 or later. .. versionadded:: 3.13 * :const:`!FILTER_RISCV` - Only works if :data:`LZMA_VERSION` and :data:`LZMA_RUNTIME_VERSION` are 5.6.0 or later. + Only works if :data:`LZMA_RUNTIME_VERSION` is 5.6.0 or later. .. versionadded:: 3.13 diff --git a/Modules/_lzmamodule.c b/Modules/_lzmamodule.c index c08e81da6426be..cf856671668e66 100644 --- a/Modules/_lzmamodule.c +++ b/Modules/_lzmamodule.c @@ -25,6 +25,12 @@ #endif +/* + * If the lzma.h we're building against is so old as not to define these, this + * provides their equivalent values so that the names remain defined in Python + * regardless. lzma.LZMA_RUNTIME_VERSION is exposed to Python and is what + * people can use to decide if they can use them at runtime. + */ #ifndef LZMA_FILTER_ARM64 #define LZMA_FILTER_ARM64 LZMA_VLI_C(0x0A) #endif From 045aa40ba582b05f8f8531342401e34669f5e612 Mon Sep 17 00:00:00 2001 From: "Gregory P. Smith [Google LLC]" Date: Sat, 30 Mar 2024 19:00:09 +0000 Subject: [PATCH 15/19] Expose the version as a number. We make lzma_version be the runtime version as that is the one most interestin to users. The compile time version remains exposed as the header version. --- Doc/library/lzma.rst | 30 ++++++++++++++++++++++-------- Lib/lzma.py | 2 ++ Lib/test/test_lzma.py | 31 ++++++++++--------------------- Modules/_lzmamodule.c | 22 ++++++++++++++++------ 4 files changed, 50 insertions(+), 35 deletions(-) diff --git a/Doc/library/lzma.rst b/Doc/library/lzma.rst index 6cf47e07a8831a..97a127343470d1 100644 --- a/Doc/library/lzma.rst +++ b/Doc/library/lzma.rst @@ -327,20 +327,34 @@ the following constants: .. data:: LZMA_VERSION +.. data:: LZMA_VERSION_STRING - The version string of the lzma library that was used for building the module. - This may be different from the lzma library actually used at runtime, which - is available as :const:`LZMA_RUNTIME_VERSION`. + The version of the lzma C library actually loaded at runtime, in both + integer and string forms. .. versionadded:: 3.13 +.. data:: LZMA_HEADER_VERSION +.. data:: LZMA_HEADER_VERSION_STRING -.. data:: LZMA_RUNTIME_VERSION - - The version string of the lzma library actually loaded by the interpreter. + The version of the lzma library that was used for building the module, in + both integer and string forms. This may be different from the lzma library + actually used at runtime. .. versionadded:: 3.13 +The version number and string formats are as defined in by C library. The +integer is represented in decimal digits as ``MJJJPPPS`` where ``M`` is the +major version, ``JJJ`` is the minor version, ``PPP`` is the patch level, and +``S`` is the "stability indicator" (2 means stable):: + + >>> import lzma + >>> lzma.LZMA_VERSION + 50020052 + >>> lzma.LZMA_VERSION_STRING + '5.2.5' + + .. _filter-chain-specs: Specifying custom filter chains @@ -373,13 +387,13 @@ options. Valid filter IDs are as follows: * :const:`!FILTER_ARM64` - Only works if :data:`LZMA_RUNTIME_VERSION` is 5.4.0 or later. + Only works if the lzma version is 5.4.0 or later. .. versionadded:: 3.13 * :const:`!FILTER_RISCV` - Only works if :data:`LZMA_RUNTIME_VERSION` is 5.6.0 or later. + Only works if the lzma version is 5.6.0 or later. .. versionadded:: 3.13 diff --git a/Lib/lzma.py b/Lib/lzma.py index ec621a40f0d433..cdebef4b1723a1 100644 --- a/Lib/lzma.py +++ b/Lib/lzma.py @@ -15,6 +15,8 @@ "FILTER_ARM", "FILTER_ARMTHUMB", "FILTER_POWERPC", "FILTER_SPARC", "FILTER_ARM64", "FILTER_RISCV", "FORMAT_AUTO", "FORMAT_XZ", "FORMAT_ALONE", "FORMAT_RAW", + "LZMA_HEADER_VERSION", "LZMA_HEADER_VERSION_STRING", + "LZMA_VERSION", "LZMA_VERSION_STRING", "MF_HC3", "MF_HC4", "MF_BT2", "MF_BT3", "MF_BT4", "MODE_FAST", "MODE_NORMAL", "PRESET_DEFAULT", "PRESET_EXTREME", diff --git a/Lib/test/test_lzma.py b/Lib/test/test_lzma.py index 3a064e8219406c..ba613f7bd85920 100644 --- a/Lib/test/test_lzma.py +++ b/Lib/test/test_lzma.py @@ -20,16 +20,6 @@ from lzma import LZMACompressor, LZMADecompressor, LZMAError, LZMAFile -def _lzma_runtime_version_tuple(lzma_version=lzma.LZMA_RUNTIME_VERSION): - v = lzma_version.split('.', 3) - if not v[-1].isnumeric(): - v[-1] = re.search(r'\d+', v[-1]).group() - return tuple(map(int, v)) - - -LZMA_RUNTIME_VERSION_TUPLE = _lzma_runtime_version_tuple() - - class CompressorDecompressorTestCase(unittest.TestCase): # Test error cases. @@ -395,21 +385,20 @@ def test_uninitialized_LZMADecompressor_crash(self): self.assertEqual(LZMADecompressor.__new__(LZMADecompressor). decompress(bytes()), b'') - # Test the existence of the relatively new BCJ filters. These just - # ensure that the constant was found at compile time and exposed. - - @unittest.skipUnless( - LZMA_RUNTIME_VERSION_TUPLE >= (5, 6, 0), - "RISC-V filter is only available on lzma 5.6.0 or later") - def test_riscv_filter_exists(self): + def test_riscv_filter_constant_exists(self): self.assertTrue(lzma.FILTER_RISCV) - @unittest.skipUnless( - LZMA_RUNTIME_VERSION_TUPLE >= (5, 4, 0), - "ARM64 filter is only available on lzma 5.4.0 or later") - def test_arm64_filter_exists(self): + def test_arm64_filter_constant_exists(self): self.assertTrue(lzma.FILTER_ARM64) + def test_lzma_header_versions(self): + self.assertIsInstance(lzma.LZMA_HEADER_VERSION_STRING, str) + self.assertGreater(lzma.LZMA_HEADER_VERSION, 0) + + def test_lzma_versions(self): + self.assertIsInstance(lzma.LZMA_VERSION_STRING, str) + self.assertGreater(lzma.LZMA_VERSION, 0) + class CompressDecompressFunctionTestCase(unittest.TestCase): diff --git a/Modules/_lzmamodule.c b/Modules/_lzmamodule.c index cf856671668e66..3fa397bf04f34e 100644 --- a/Modules/_lzmamodule.c +++ b/Modules/_lzmamodule.c @@ -28,8 +28,7 @@ /* * If the lzma.h we're building against is so old as not to define these, this * provides their equivalent values so that the names remain defined in Python - * regardless. lzma.LZMA_RUNTIME_VERSION is exposed to Python and is what - * people can use to decide if they can use them at runtime. + * regardless of the header versions used at build time. */ #ifndef LZMA_FILTER_ARM64 #define LZMA_FILTER_ARM64 LZMA_VLI_C(0x0A) @@ -1611,12 +1610,23 @@ lzma_exec(PyObject *module) return -1; } - if (PyModule_Add(module, "LZMA_VERSION", - PyUnicode_FromString(LZMA_VERSION_STRING)) < 0) { + if (PyModule_AddStringConstant( + module, "LZMA_HEADER_VERSION_STRING", LZMA_VERSION_STRING) < 0) { return -1; } - if (PyModule_Add(module, "LZMA_RUNTIME_VERSION", - PyUnicode_FromString(lzma_version_string())) < 0) { + if (PyModule_AddStringConstant( + module, "LZMA_VERSION_STRING", + lzma_version_string()) < 0) { + return -1; + } + PyObject *uint32_obj = PyLong_FromUnsignedLong(LZMA_VERSION); + if (PyModule_AddObject(module, "LZMA_HEADER_VERSION", uint32_obj) < 0) { + Py_XDECREF(uint32_obj); + return -1; + } + uint32_obj = PyLong_FromUnsignedLong(lzma_version_number()); + if (PyModule_AddObject(module, "LZMA_VERSION", uint32_obj) < 0) { + Py_XDECREF(uint32_obj); return -1; } From 832335de80b18d9187fac81f5fd6e5364ec1ab18 Mon Sep 17 00:00:00 2001 From: "Gregory P. Smith [Google LLC]" Date: Sat, 30 Mar 2024 19:05:08 +0000 Subject: [PATCH 16/19] minor version explanation tweak. --- Doc/library/lzma.rst | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/Doc/library/lzma.rst b/Doc/library/lzma.rst index 97a127343470d1..0fdf8de7667182 100644 --- a/Doc/library/lzma.rst +++ b/Doc/library/lzma.rst @@ -344,9 +344,9 @@ the following constants: .. versionadded:: 3.13 The version number and string formats are as defined in by C library. The -integer is represented in decimal digits as ``MJJJPPPS`` where ``M`` is the -major version, ``JJJ`` is the minor version, ``PPP`` is the patch level, and -``S`` is the "stability indicator" (2 means stable):: +integer is represented in decimal digits as ``jmmmppps`` where ``j`` is the +major version, ``mmm`` is the minor version, ``ppp`` is the patch level, and +``s`` is the "stability indicator" (2 means stable):: >>> import lzma >>> lzma.LZMA_VERSION From 728f28677114fabb9bde9916201f01de984a4c7f Mon Sep 17 00:00:00 2001 From: "Gregory P. Smith [Google LLC]" Date: Sat, 30 Mar 2024 19:09:27 +0000 Subject: [PATCH 17/19] Adjust the whats new text. --- Doc/whatsnew/3.13.rst | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/Doc/whatsnew/3.13.rst b/Doc/whatsnew/3.13.rst index f1edd705bf9020..1426031ef95765 100644 --- a/Doc/whatsnew/3.13.rst +++ b/Doc/whatsnew/3.13.rst @@ -421,14 +421,14 @@ itertools lzma ---- -* Add :const:`lzma.LZMA_VERSION` and :const:`lzma.LZMA_RUNTIME_VERSION`. The former - reports the version string of the underlying ``lzma`` library during build while - the later reports runtime version. +* Add :const:`lzma.LZMA_VERSION`, :const:`lzma.LZMA_HEADER_VERSION`, and + related constants. They report the version of the underlying ``lzma`` library + found at runtime and the header versions used at build time. (Contributed by Chien Wong in :gh:`115988`.) -* Add support of new BCJ filters ARM64 and RISC-V via :const:`!lzma.FILTER_ARM64` and - :const:`!lzma.FILTER_RISCV`. - Note that the new filters will work only if runtime library supports them. ARM64 filter +* Add support of new BCJ filters ARM64 and RISC-V via + :const:`!lzma.FILTER_ARM64` and :const:`!lzma.FILTER_RISCV`. Note that the + new filters will work only if runtime library supports them. ARM64 filter requires ``lzma`` 5.4.0 or newer while RISC-V requires 5.6.0 or newer. (Contributed by Chien Wong in :gh:`115988`.) From 61c4adf4a52ec1793353972849fdbeaadccca502 Mon Sep 17 00:00:00 2001 From: "Gregory P. Smith [Google LLC]" Date: Sat, 30 Mar 2024 19:11:46 +0000 Subject: [PATCH 18/19] NEWS wording and formatting tweak. --- .../Library/2024-03-17-22-16-53.gh-issue-115988.EshSDM.rst | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Misc/NEWS.d/next/Library/2024-03-17-22-16-53.gh-issue-115988.EshSDM.rst b/Misc/NEWS.d/next/Library/2024-03-17-22-16-53.gh-issue-115988.EshSDM.rst index 37514ae14bed9c..e0d18a88d49d8b 100644 --- a/Misc/NEWS.d/next/Library/2024-03-17-22-16-53.gh-issue-115988.EshSDM.rst +++ b/Misc/NEWS.d/next/Library/2024-03-17-22-16-53.gh-issue-115988.EshSDM.rst @@ -1,2 +1,2 @@ -The lzma module adds build and runtime version info of the underlying C library -and supports new BCJ filters: ARM64 and RISC-V. +:mod:`lzma` gains C library version info constants and adds constants to +support the newer BCJ filters for ARM64 and RISC-V. From 98adeee0f9e13cbfec2d1538e96c82876fbcffd0 Mon Sep 17 00:00:00 2001 From: "Gregory P. Smith [Google LLC]" Date: Sat, 30 Mar 2024 19:13:54 +0000 Subject: [PATCH 19/19] line length --- Modules/_lzmamodule.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/Modules/_lzmamodule.c b/Modules/_lzmamodule.c index 3fa397bf04f34e..cda4a563cb1f89 100644 --- a/Modules/_lzmamodule.c +++ b/Modules/_lzmamodule.c @@ -1611,7 +1611,8 @@ lzma_exec(PyObject *module) } if (PyModule_AddStringConstant( - module, "LZMA_HEADER_VERSION_STRING", LZMA_VERSION_STRING) < 0) { + module, "LZMA_HEADER_VERSION_STRING", + LZMA_VERSION_STRING) < 0) { return -1; } if (PyModule_AddStringConstant(